From 1912898ec41dca85dc700b86a7418ccbaba6008b921fb2b8d2cb5aba1e840dfc Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 30 Jul 2010 11:59:59 +0000 Subject: [PATCH 001/221] Accepting request 43879 from Base:System Copy from Base:System/systemd based on submit request 43879 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/43879 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=1 --- ...s390_con3270_disable_ANSI_colour_esc.patch | 180 - ...sh-for-reboot-or-hddown-for-poweroff.patch | 84 - ...network-device-after-NFS-mount-units.patch | 315 - ...id-abort-due-timeout-at-user-service.patch | 21 - 0001-bnc888612-logind-polkit-acpi.patch | 101 - ...systemctl-completion-ignore-at-names.patch | 17 - ...-do-not-allow-overlong-machine-names.patch | 37 - ...XDG_RUNTIME_DIR_of_the_original_user.patch | 43 - ...t-install-sulogin-unit-with-poweroff.patch | 19 - 0014-journald-with-journaling-FS.patch | 75 - ...pletion-smart-to-be-able-to-redirect.patch | 272 - ...ate-by-id-scsi-links-for-ATA-devices.patch | 24 - 1003-udev-netlink-null-rules.patch | 22 - ...fault-links-for-primary-cd_dvd-drive.patch | 24 - 1006-udev-always-rename-network.patch | 77 - 1007-physical-hotplug-cpu-and-memory.patch | 37 - ...kip-btrfs-check-if-devices-are-not-r.patch | 24 - ...device-link-creation-on-multipath-de.patch | 40 - ...-Ignore-devices-with-SYSTEMD_READY-0.patch | 29 - ...dev-exclude-cd-dvd-from-block-device.patch | 20 - ...r-target-name-for-btrfs-device-ready.patch | 45 - ...fault-permissions-for-GenWQE-devices.patch | 15 - ...lity-links-for-truncated-by-id-links.patch | 175 - ...t-ssd-disk-to-use-deadline-scheduler.patch | 33 - 1096-new-udev-root-symlink-generator.patch | 108 - ...-increase-maximum-number-of-children.patch | 26 - ...stemd-networkd-alias-network-service.patch | 14 - Correct_assert_on_unexpected_error_code.patch | 21 - ...es-permissions-to-follow-openSUSE-po.patch | 40 - after-local.service | 17 - allow-multiple-sulogin-to-be-started.patch | 47 - apply-ACL-for-nvidia-device-nodes.patch | 31 - apply-ACL-for-nvidia-uvm-device-node.patch | 23 - avoid-divide-by-zero-sigtrap.patch | 34 - ...andom-hangs-on-timeouts-due-lost-cwd.patch | 29 - baselibs.conf | 8 - boot-local-start.patch | 17 - ...assword-wall-starts-after-getty-tty1.patch | 25 - ...rtname-is-set-as-hostname-bnc-820213.patch | 31 - ...-boot-prefixed-initscript-bnc-746506.patch | 38 - ...plock-and-compose_table-and-kbd_rate.patch | 216 - ...lock-value-in-etc-sysconfig-keyboard.patch | 193 - ...lang-value-in-etc-sysconfig-language.patch | 72 - hostname-NULL.patch | 13 - insserv-generator.patch | 399 - journald-advice-about-use-of-memory.patch | 138 - kbd-model-map.patch | 28 - ...linker-find-libudev-for-libdevmapper.patch | 19 - ...et-properties-only-once-to-copy-them.patch | 84 - libgcrypt.m4 | 123 - macros.systemd.upstream | 105 - ....service-conflict-with-syslog.socket.patch | 25 - nss-myhostname-config | 31 - parse-crypttab-for-noauto-option.patch | 67 - ...-quit-and-wait-for-emergency-service.patch | 46 - portmap-wants-rpcbind-socket.patch | 13 - pre_checkin.sh | 16 - rescue-emergency-target-conflicts.patch | 29 - respect-nfs-bg-option.patch | 22 - ...r-lock-bind-mount-if-they-aren-t-sym.patch | 87 - set-and-use-default-logconsole.patch | 175 - shut-up-rpmlint-on-var-log-journal.patch | 25 - suse-sysv-bootd-support.diff | 80 - systemctl-set-default-target.patch | 30 - systemd-4.tar.bz2 | 3 + systemd-add-user-keep.patch | 92 - systemd-dbus-system-bus-address.patch | 33 - systemd-install-compat_pkgconfig-always.patch | 34 - systemd-mini-rpmlintrc | 29 - systemd-mini.changes | 7278 ----------------- systemd-mini.spec | 1573 ---- systemd-pam_config.patch | 32 - systemd-remount-tmpfs | 15 - systemd-rpmlintrc | 31 +- systemd-sysv-convert | 179 - systemd-sysv-install | 26 - systemd-tmp-safe-defaults.patch | 26 - systemd.changes | 7053 ---------------- systemd.spec | 1571 +--- tomcat6-var-lock-subsys-legacy.patch | 20 - tty-ask-password-agent-on-console.patch | 376 - ...addentropy-ioctl-to-load-random-seed.patch | 155 - v228.tar.gz | 3 - vhangup-on-all-consoles.patch | 40 - watch_resolv.conf_for_become_changed.patch | 153 - 85 files changed, 107 insertions(+), 22889 deletions(-) delete mode 100644 0001-On_s390_con3270_disable_ANSI_colour_esc.patch delete mode 100644 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch delete mode 100644 0001-add-network-device-after-NFS-mount-units.patch delete mode 100644 0001-avoid-abort-due-timeout-at-user-service.patch delete mode 100644 0001-bnc888612-logind-polkit-acpi.patch delete mode 100644 0001-let-systemctl-completion-ignore-at-names.patch delete mode 100644 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch delete mode 100644 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch delete mode 100644 0010-do-not-install-sulogin-unit-with-poweroff.patch delete mode 100644 0014-journald-with-journaling-FS.patch delete mode 100644 0019-make-completion-smart-to-be-able-to-redirect.patch delete mode 100644 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch delete mode 100644 1003-udev-netlink-null-rules.patch delete mode 100644 1005-create-default-links-for-primary-cd_dvd-drive.patch delete mode 100644 1006-udev-always-rename-network.patch delete mode 100644 1007-physical-hotplug-cpu-and-memory.patch delete mode 100644 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch delete mode 100644 1012-Skip-persistent-device-link-creation-on-multipath-de.patch delete mode 100644 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch delete mode 100644 1037-udev-exclude-cd-dvd-from-block-device.patch delete mode 100644 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch delete mode 100644 1062-rules-set-default-permissions-for-GenWQE-devices.patch delete mode 100644 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch delete mode 100644 1095-set-ssd-disk-to-use-deadline-scheduler.patch delete mode 100644 1096-new-udev-root-symlink-generator.patch delete mode 100644 1097-udevd-increase-maximum-number-of-children.patch delete mode 100644 1098-systemd-networkd-alias-network-service.patch delete mode 100644 Correct_assert_on_unexpected_error_code.patch delete mode 100644 Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch delete mode 100644 after-local.service delete mode 100644 allow-multiple-sulogin-to-be-started.patch delete mode 100644 apply-ACL-for-nvidia-device-nodes.patch delete mode 100644 apply-ACL-for-nvidia-uvm-device-node.patch delete mode 100644 avoid-divide-by-zero-sigtrap.patch delete mode 100644 avoid-random-hangs-on-timeouts-due-lost-cwd.patch delete mode 100644 baselibs.conf delete mode 100644 boot-local-start.patch delete mode 100644 ensure-ask-password-wall-starts-after-getty-tty1.patch delete mode 100644 ensure-shortname-is-set-as-hostname-bnc-820213.patch delete mode 100644 fix-support-for-boot-prefixed-initscript-bnc-746506.patch delete mode 100644 handle-disable_caplock-and-compose_table-and-kbd_rate.patch delete mode 100644 handle-numlock-value-in-etc-sysconfig-keyboard.patch delete mode 100644 handle-root_uses_lang-value-in-etc-sysconfig-language.patch delete mode 100644 hostname-NULL.patch delete mode 100644 insserv-generator.patch delete mode 100644 journald-advice-about-use-of-memory.patch delete mode 100644 kbd-model-map.patch delete mode 100644 let-linker-find-libudev-for-libdevmapper.patch delete mode 100644 let-vconsole-setup-get-properties-only-once-to-copy-them.patch delete mode 100644 libgcrypt.m4 delete mode 100644 macros.systemd.upstream delete mode 100644 make-emergency.service-conflict-with-syslog.socket.patch delete mode 100644 nss-myhostname-config delete mode 100644 parse-crypttab-for-noauto-option.patch delete mode 100644 plymouth-quit-and-wait-for-emergency-service.patch delete mode 100644 portmap-wants-rpcbind-socket.patch delete mode 100644 pre_checkin.sh delete mode 100644 rescue-emergency-target-conflicts.patch delete mode 100644 respect-nfs-bg-option.patch delete mode 100644 restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch delete mode 100644 set-and-use-default-logconsole.patch delete mode 100644 shut-up-rpmlint-on-var-log-journal.patch delete mode 100644 suse-sysv-bootd-support.diff delete mode 100644 systemctl-set-default-target.patch create mode 100644 systemd-4.tar.bz2 delete mode 100644 systemd-add-user-keep.patch delete mode 100644 systemd-dbus-system-bus-address.patch delete mode 100644 systemd-install-compat_pkgconfig-always.patch delete mode 100644 systemd-mini-rpmlintrc delete mode 100644 systemd-mini.changes delete mode 100644 systemd-mini.spec delete mode 100644 systemd-pam_config.patch delete mode 100644 systemd-remount-tmpfs delete mode 100644 systemd-sysv-convert delete mode 100644 systemd-sysv-install delete mode 100644 systemd-tmp-safe-defaults.patch delete mode 100644 tomcat6-var-lock-subsys-legacy.patch delete mode 100644 tty-ask-password-agent-on-console.patch delete mode 100644 use-rndaddentropy-ioctl-to-load-random-seed.patch delete mode 100644 v228.tar.gz delete mode 100644 vhangup-on-all-consoles.patch delete mode 100644 watch_resolv.conf_for_become_changed.patch diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch deleted file mode 100644 index 3dd400a3..00000000 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ /dev/null @@ -1,180 +0,0 @@ ---- - rules/99-systemd.rules.in | 2 - - src/basic/terminal-util.c | 55 ++++++++++++++++++++++++++++++++++++++++++++-- - src/basic/terminal-util.h | 1 - src/core/manager.c | 24 +++++++++++++++----- - 4 files changed, 74 insertions(+), 8 deletions(-) - - -Index: systemd-228/rules/99-systemd.rules.in -=================================================================== ---- systemd-228.orig/rules/99-systemd.rules.in -+++ systemd-228/rules/99-systemd.rules.in -@@ -7,7 +7,7 @@ - - ACTION=="remove", GOTO="systemd_end" - --SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd" -+SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" - KERNEL=="vport*", TAG+="systemd" - - SUBSYSTEM=="block", TAG+="systemd" -Index: systemd-228/src/basic/terminal-util.c -=================================================================== ---- systemd-228.orig/src/basic/terminal-util.c -+++ systemd-228/src/basic/terminal-util.c -@@ -717,10 +717,47 @@ bool tty_is_vc_resolve(const char *tty) - return tty_is_vc(tty); - } - -+bool ansi_console(int fd) { -+ static int cached_ansi_console = -1; -+ -+ if (_likely_(cached_ansi_console >= 0)) -+ return cached_ansi_console; -+ -+ cached_ansi_console = isatty(fd) > 0; -+#if defined(__s390__) || defined(__s390x__) -+ if (cached_ansi_console) { -+ const char *e = getenv("TERM"); -+ if (e != NULL && (streq(e, "dumb") || strneq(e, "ibm3", 4))) { -+ _cleanup_free_ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, -+ "conmode", &mode, NULL); -+ if (r < 0 || mode == NULL || !streq(mode, "3270")) -+ cached_ansi_console = 0; -+ } -+ } -+#endif -+ return cached_ansi_console; -+} -+ - const char *default_term_for_tty(const char *tty) { - assert(tty); - -- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220"; -+ if (tty_is_vc_resolve(tty)) -+ return "TERM=linux"; -+ if (startswith(tty, "/dev/")) -+ tty += 5; -+#if defined (__s390__) || defined (__s390x__) -+ if (streq(tty, "ttyS0")) { -+ _cleanup_free_ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", -+ &mode, NULL); -+ if (r < 0 || mode == NULL || !streq(mode, "3270")) -+ return "TERM=dumb"; -+ if (streq(mode, "3270")) -+ return "TERM=ibm327x"; -+ } -+#endif -+ return "TERM=vt220"; - } - - int fd_columns(int fd) { -@@ -800,8 +837,22 @@ void columns_lines_cache_reset(int signu - bool on_tty(void) { - static int cached_on_tty = -1; - -- if (_unlikely_(cached_on_tty < 0)) -+ if (_unlikely_(cached_on_tty < 0)) { - cached_on_tty = isatty(STDOUT_FILENO) > 0; -+#if defined (__s390__) || defined (__s390x__) -+ if (cached_on_tty) { -+ const char *e = getenv("TERM"); -+ if (!e) -+ return cached_on_tty; -+ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) { -+ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); -+ if (r < 0 || !mode || !streq(mode, "3270")) -+ cached_on_tty = 0; -+ } -+ } -+#endif -+ } - - return cached_on_tty; - } -Index: systemd-228/src/basic/terminal-util.h -=================================================================== ---- systemd-228.orig/src/basic/terminal-util.h -+++ systemd-228/src/basic/terminal-util.h -@@ -78,6 +78,7 @@ unsigned lines(void); - void columns_lines_cache_reset(int _unused_ signum); - - bool on_tty(void); -+bool ansi_console(int fd); - - static inline const char *ansi_underline(void) { - return on_tty() ? ANSI_UNDERLINE : ""; -Index: systemd-228/src/core/manager.c -=================================================================== ---- systemd-228.orig/src/core/manager.c -+++ systemd-228/src/core/manager.c -@@ -126,7 +126,7 @@ static void manager_watch_jobs_in_progre - - #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED)-1) + sizeof(ANSI_HIGHLIGHT_RED)-1 + 2*(sizeof(ANSI_NORMAL)-1)) - --static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) { -+static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) { - char *p = buffer; - - assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); -@@ -135,12 +135,14 @@ static void draw_cylon(char buffer[], si - if (pos > 1) { - if (pos > 2) - p = mempset(p, ' ', pos-2); -- p = stpcpy(p, ANSI_RED); -+ if (ansi_console) -+ p = stpcpy(p, ANSI_RED); - *p++ = '*'; - } - - if (pos > 0 && pos <= width) { -- p = stpcpy(p, ANSI_HIGHLIGHT_RED); -+ if (ansi_console) -+ p = stpcpy(p, ANSI_HIGHLIGHT_RED); - *p++ = '*'; - } - -@@ -151,7 +153,8 @@ static void draw_cylon(char buffer[], si - *p++ = '*'; - if (pos < width-1) - p = mempset(p, ' ', width-1-pos); -- strcpy(p, ANSI_NORMAL); -+ if (ansi_console) -+ strcpy(p, ANSI_NORMAL); - } - } - -@@ -168,6 +171,7 @@ void manager_flip_auto_status(Manager *m - } - - static void manager_print_jobs_in_progress(Manager *m) { -+ static int is_ansi_console = -1; - _cleanup_free_ char *job_of_n = NULL; - Iterator i; - Job *j; -@@ -193,10 +197,20 @@ static void manager_print_jobs_in_progre - assert(counter == print_nr + 1); - assert(j); - -+ if (_unlikely_(is_ansi_console < 0)) { -+ int fd = open_terminal("/dev/console", O_RDONLY|O_NOCTTY|O_CLOEXEC); -+ if (fd < 0) -+ is_ansi_console = 0; -+ else { -+ is_ansi_console = (int)ansi_console(fd); -+ close(fd); -+ } -+ } -+ - cylon_pos = m->jobs_in_progress_iteration % 14; - if (cylon_pos >= 8) - cylon_pos = 14 - cylon_pos; -- draw_cylon(cylon, sizeof(cylon), 6, cylon_pos); -+ draw_cylon(cylon, sizeof(cylon), 6, cylon_pos, (bool)is_ansi_console); - - m->jobs_in_progress_iteration++; - diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch deleted file mode 100644 index f370239f..00000000 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- - src/core/shutdown.c | 4 ++++ - src/systemctl/systemctl.c | 18 ++++++++++++------ - 2 files changed, 16 insertions(+), 6 deletions(-) - -Index: systemd-227/src/core/shutdown.c -=================================================================== ---- systemd-227.orig/src/core/shutdown.c -+++ systemd-227/src/core/shutdown.c -@@ -418,6 +418,10 @@ int main(int argc, char *argv[]) { - } - - reboot(cmd); -+ -+ if (cmd == (int)RB_POWER_OFF) -+ reboot(RB_HALT_SYSTEM); -+ - if (errno == EPERM && in_container) { - /* If we are in a container, and we lacked - * CAP_SYS_BOOT just exit, this will kill our -Index: systemd-227/src/systemctl/systemctl.c -=================================================================== ---- systemd-227.orig/src/systemctl/systemctl.c -+++ systemd-227/src/systemctl/systemctl.c -@@ -94,6 +94,7 @@ static bool arg_no_pager = false; - static bool arg_no_wtmp = false; - static bool arg_no_wall = false; - static bool arg_no_reload = false; -+static bool arg_no_sync = false; - static bool arg_show_types = false; - static bool arg_ignore_inhibitors = false; - static bool arg_dry = false; -@@ -6938,6 +6939,7 @@ static int halt_parse_argv(int argc, cha - { "reboot", no_argument, NULL, ARG_REBOOT }, - { "force", no_argument, NULL, 'f' }, - { "wtmp-only", no_argument, NULL, 'w' }, -+ { "no-sync", no_argument, NULL, 'n' }, - { "no-wtmp", no_argument, NULL, 'd' }, - { "no-wall", no_argument, NULL, ARG_NO_WALL }, - {} -@@ -6990,10 +6992,13 @@ static int halt_parse_argv(int argc, cha - - case 'i': - case 'h': -- case 'n': - /* Compatibility nops */ - break; - -+ case 'n': -+ arg_no_sync = true; -+ break; -+ - case '?': - return -EINVAL; - -@@ -7506,7 +7511,8 @@ static int halt_now(enum action a) { - /* The kernel will automaticall flush ATA disks and suchlike - * on reboot(), but the file systems need to be synce'd - * explicitly in advance. */ -- (void) sync(); -+ if (!arg_no_sync) -+ (void) sync(); - - /* Make sure C-A-D is handled by the kernel from this point - * on... */ -@@ -7514,14 +7520,13 @@ static int halt_now(enum action a) { - - switch (a) { - -- case ACTION_HALT: -- log_info("Halting."); -- (void) reboot(RB_HALT_SYSTEM); -- return -errno; -- - case ACTION_POWEROFF: - log_info("Powering off."); - (void) reboot(RB_POWER_OFF); -+ /* fall-through */ -+ case ACTION_HALT: -+ log_info("Halting."); -+ (void) reboot(RB_HALT_SYSTEM); - return -errno; - - case ACTION_KEXEC: diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch deleted file mode 100644 index dc30e64f..00000000 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ /dev/null @@ -1,315 +0,0 @@ -Avoid possible race on NFS shares in which may that the network devices disappears -before the associated NFS share becomes unmounted (bug #861489). -To do this make sure that sys-subsystem-net-devices-.device used for the -NFS share is added as "After=" dependency to the .mount. - ---- - Makefile.am | 2 - src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ - src/core/mount-iface.h | 25 +++++++ - src/core/mount.c | 35 +++++++++ - 4 files changed, 233 insertions(+), 2 deletions(-) - -Index: systemd-228/Makefile.am -=================================================================== ---- systemd-228.orig/Makefile.am -+++ systemd-228/Makefile.am -@@ -1223,6 +1223,8 @@ libcore_la_SOURCES = \ - src/core/machine-id-setup.h \ - src/core/mount-setup.c \ - src/core/mount-setup.h \ -+ src/core/mount-iface.c \ -+ src/core/mount-iface.h \ - src/core/kmod-setup.c \ - src/core/kmod-setup.h \ - src/core/loopback-setup.h \ -Index: systemd-228/src/core/mount-iface.c -=================================================================== ---- /dev/null -+++ systemd-228/src/core/mount-iface.c -@@ -0,0 +1,173 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2014 Werner Fink -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+***/ -+ -+/* -+ * Find the name of the network interface to which a IP address belongs to. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "log.h" -+#include "def.h" -+#include "mount-iface.h" -+ -+static struct ifaddrs *ifa_list; -+ -+_pure_ static unsigned int mask2prefix(const void* ipv6) -+{ -+ unsigned int nippels = 0; -+ unsigned int i; -+ -+ assert(ipv6); -+ -+ for (i = 0; i < sizeof(struct in6_addr); i++) { -+ uint8_t byte = ((const uint8_t*)ipv6)[i]; -+ if (byte == 0xFF) { -+ nippels += sizeof(uint8_t); -+ continue; -+ } -+ while (byte & 0x80) { -+ nippels++; -+ byte <<= 1; -+ } -+ break; -+ } -+ -+ return nippels; -+} -+ -+static void netmask(unsigned int prefix, const void* in6, void* out6) -+{ -+ unsigned int nippels; -+ unsigned int i; -+ -+ assert(in6); -+ assert(out6); -+ -+ for (i = 0; i < sizeof(struct in6_addr); i++) { -+ nippels = (prefix < sizeof(uint8_t)) ? prefix : sizeof(uint8_t); -+ ((uint8_t*)out6)[i] = ((const uint8_t*)in6)[i] & (0xFF00>>nippels); -+ prefix -= nippels; -+ } -+} -+ -+char *host2iface(const char *ip) -+{ -+ const struct ifaddrs *ifa; -+ uint32_t ip4 = 0; -+ char *ret = NULL; -+ struct search { -+ union { -+ struct in_addr addr; -+ struct in6_addr addr6; -+ }; -+ int family; -+ } host; -+ int r; -+ -+ if (!ifa_list && (getifaddrs(&ifa_list) < 0)) { -+ log_oom(); -+ goto err; -+ } -+ -+ if (strchr(ip, ':')) { -+ r = inet_pton(AF_INET6, ip, &host.addr6); -+ host.family = AF_INET6; -+ } else { -+ r = inet_pton(AF_INET, ip, &host.addr); -+ host.family = AF_INET; -+ } -+ -+ if (r < 0) { -+ log_error("Failed to convert IP address %s from text to binary: %m", ip); -+ goto err; -+ } -+ -+ for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) { -+ -+ if (!ifa->ifa_addr) -+ continue; -+ if (ifa->ifa_flags & IFF_POINTOPOINT) -+ continue; -+ if (!ifa->ifa_addr) -+ continue; -+ if (!ifa->ifa_netmask) -+ continue; -+ -+ if (ifa->ifa_addr->sa_family == AF_INET) { -+ uint32_t addr, dest, mask; -+ -+ if (host.family != AF_INET) -+ continue; -+ if (!ifa->ifa_broadaddr) -+ continue; -+ -+ if (!ip4) -+ ip4 = (uint32_t)ntohl(host.addr.s_addr); -+ -+ addr = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr); -+ if ((addr & 0xFF000000) == 0x7F000000) /* IPV4 loopback */ -+ continue; -+ -+ mask = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_netmask)->sin_addr.s_addr); -+ dest = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr.s_addr); -+ if ((ip4 & mask) != (dest & mask)) -+ continue; -+ -+ ret = ifa->ifa_name; -+ break; -+ } else if (ifa->ifa_addr->sa_family == AF_INET6) { -+ struct in6_addr *addr, *mask, dest, ip6; -+ unsigned int prefix; -+ -+ if (host.family != AF_INET6) -+ continue; -+ -+ addr = &((struct sockaddr_in6*)ifa->ifa_addr)->sin6_addr; -+ mask = &((struct sockaddr_in6*)ifa->ifa_netmask)->sin6_addr; -+ prefix = mask2prefix(mask); -+ -+ netmask(prefix, addr, &dest); -+ netmask(prefix, &host.addr6, &ip6); -+ -+ if (memcmp(&dest, &ip6, sizeof(struct in6_addr)) != 0) -+ continue; -+ -+ ret = ifa->ifa_name; -+ break; -+ } -+ } -+err: -+ return ret; -+} -+ -+void freeroutes(void) -+{ -+ if (ifa_list) -+ freeifaddrs(ifa_list); -+ ifa_list = NULL; -+} -Index: systemd-228/src/core/mount-iface.h -=================================================================== ---- /dev/null -+++ systemd-228/src/core/mount-iface.h -@@ -0,0 +1,25 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+#pragma once -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2014 Werner Fink -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+***/ -+ -+char *host2iface(const char *ip); -+void freeroutes(void); -Index: systemd-228/src/core/mount.c -=================================================================== ---- systemd-228.orig/src/core/mount.c -+++ systemd-228/src/core/mount.c -@@ -36,6 +36,7 @@ - #include "manager.h" - #include "mkdir.h" - #include "mount-setup.h" -+#include "mount-iface.h" - #include "mount-util.h" - #include "mount.h" - #include "parse-util.h" -@@ -1344,8 +1345,9 @@ static int mount_setup_unit( - _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; - bool load_extras = false; - MountParameters *p; -- bool delete, changed = false; -+ bool delete, changed = false, isnetwork; - Unit *u; -+ char *c; - int r; - - assert(m); -@@ -1370,6 +1372,8 @@ static int mount_setup_unit( - if (r < 0) - return r; - -+ isnetwork = fstype_is_network(fstype); -+ - u = manager_get_unit(m, e); - if (!u) { - delete = true; -@@ -1397,7 +1401,7 @@ static int mount_setup_unit( - if (m->running_as == MANAGER_SYSTEM) { - const char* target; - -- target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; -+ target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; - r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); - if (r < 0) - goto fail; -@@ -1483,6 +1487,32 @@ static int mount_setup_unit( - goto fail; - } - -+ if (isnetwork && (c = strrchr(p->what, ':')) && *(c+1) == '/') { -+ _cleanup_free_ char *opt = strdup(p->options); -+ char *addr; -+ -+ if (opt && (addr = strstr(opt, ",addr="))) { -+ char *colon, *iface; -+ -+ addr += 6; -+ if ((colon = strchr(addr, ','))) -+ *colon = '\0'; -+ -+ iface = host2iface(addr); -+ if (iface) { -+ _cleanup_free_ char* target = NULL; -+ if (asprintf(&target, "sys-subsystem-net-devices-%s.device", iface) < 0) -+ log_oom(); -+ else { -+ r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); -+ if (r < 0) -+ log_unit_error(u, "Failed to add dependency on %s, ignoring: %s", -+ target, strerror(-r)); -+ } -+ } -+ } -+ } -+ - if (changed) - unit_add_to_dbus_queue(u); - -@@ -1549,6 +1579,7 @@ static int mount_load_proc_self_mountinf - if (r == 0 && k < 0) - r = k; - } -+ freeroutes(); /* Just in case of using the routing table with host2iface() */ - - return r; - } diff --git a/0001-avoid-abort-due-timeout-at-user-service.patch b/0001-avoid-abort-due-timeout-at-user-service.patch deleted file mode 100644 index af7fed5d..00000000 --- a/0001-avoid-abort-due-timeout-at-user-service.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- - src/login/logind-session.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: systemd-221/src/login/logind-session.c -=================================================================== ---- systemd-221.orig/src/login/logind-session.c -+++ systemd-221/src/login/logind-session.c -@@ -548,6 +548,12 @@ int session_start(Session *s) { - if (r < 0) - return r; - -+ if (!s->user->slice) { -+ if (errno) -+ return -errno; -+ return -ESTALE; -+ } -+ - /* Create cgroup */ - r = session_start_scope(s); - if (r < 0) diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch deleted file mode 100644 index 8729f452..00000000 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ /dev/null @@ -1,101 +0,0 @@ ---- - src/login/logind-action.c | 5 +++++ - src/login/logind-dbus.c | 31 +++++++++++++++++++++++-------- - 2 files changed, 28 insertions(+), 8 deletions(-) - -Index: systemd-227/src/login/logind-action.c -=================================================================== ---- systemd-227.orig/src/login/logind-action.c -+++ systemd-227/src/login/logind-action.c -@@ -85,6 +85,11 @@ int manager_handle_action( - - /* If the key handling is inhibited, don't do anything */ - if (inhibit_key > 0) { -+ if (inhibit_key == INHIBIT_HANDLE_POWER_KEY) { -+ int fd; -+ fd = open("/run/systemd/acpi-shutdown", O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR); -+ close(fd); -+ } - if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { - log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); - return 0; -Index: systemd-227/src/login/logind-dbus.c -=================================================================== ---- systemd-227.orig/src/login/logind-dbus.c -+++ systemd-227/src/login/logind-dbus.c -@@ -1646,12 +1646,13 @@ static int verify_shutdown_creds( - const char *action, - const char *action_multiple_sessions, - const char *action_ignore_inhibit, -- sd_bus_error *error) { -+ sd_bus_error *error, const char *sleep_verb) { - - _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; -- bool multiple_sessions, blocked; -+ bool multiple_sessions, blocked, shutdown_through_acpi; - uid_t uid; -- int r; -+ int r, fd; -+ struct stat buf; - - assert(m); - assert(message); -@@ -1673,7 +1674,19 @@ static int verify_shutdown_creds( - multiple_sessions = r > 0; - blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); - -- if (multiple_sessions && action_multiple_sessions) { -+ fd = open ("/run/systemd/acpi-shutdown", O_NOFOLLOW|O_PATH|O_CLOEXEC); -+ if (fd >= 0) { -+ shutdown_through_acpi = fstat(fd, &buf) == 0 && -+ time(NULL) - buf.st_mtime <= 65 && -+ sleep_verb == NULL; -+ close(fd); -+ unlink ("/run/systemd/acpi-shutdown"); -+ } -+ else -+ shutdown_through_acpi = false; -+ -+ if (multiple_sessions && action_multiple_sessions && -+ !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, NULL, interactive, UID_INVALID, &m->polkit_registry, error); - if (r < 0) - return r; -@@ -1681,7 +1694,7 @@ static int verify_shutdown_creds( - return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - -- if (blocked && action_ignore_inhibit) { -+ if (blocked && action_ignore_inhibit && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, NULL, interactive, UID_INVALID, &m->polkit_registry, error); - if (r < 0) - return r; -@@ -1689,7 +1702,8 @@ static int verify_shutdown_creds( - return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - -- if (!multiple_sessions && !blocked && action) { -+ if (!multiple_sessions && !blocked && action && -+ !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, NULL, interactive, UID_INVALID, &m->polkit_registry, error); - if (r < 0) - return r; -@@ -1737,7 +1751,7 @@ static int method_do_shutdown_or_sleep( - } - - r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions, -- action_ignore_inhibit, error); -+ action_ignore_inhibit, error, sleep_verb); - if (r != 0) - return r; - -@@ -1931,7 +1945,8 @@ static int method_schedule_shutdown(sd_b - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type"); - - r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false, -- action, action_multiple_sessions, action_ignore_inhibit, error); -+ action, action_multiple_sessions, -+ action_ignore_inhibit, error, "UNUSED"); - if (r != 0) - return r; - diff --git a/0001-let-systemctl-completion-ignore-at-names.patch b/0001-let-systemctl-completion-ignore-at-names.patch deleted file mode 100644 index 4159038e..00000000 --- a/0001-let-systemctl-completion-ignore-at-names.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- - shell-completion/bash/systemctl.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-221/shell-completion/bash/systemctl.in -=================================================================== ---- systemd-221.orig/shell-completion/bash/systemctl.in -+++ systemd-221/shell-completion/bash/systemctl.in -@@ -43,7 +43,7 @@ __filter_units_by_property () { - local units=("$@") - local props - IFS=$'\n' read -rd '' -a props < \ -- <(__systemctl $mode show --property "$property" -- "${units[@]}") -+ <(__systemctl $mode show --property "$property" -- "${units[@]}" 2> /dev/null) - for ((i=0; $i < ${#units[*]}; i++)); do - if [[ "${props[i]}" = "$property=$value" ]]; then - echo " ${units[i]}" diff --git a/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch b/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch deleted file mode 100644 index f6af8080..00000000 --- a/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch +++ /dev/null @@ -1,37 +0,0 @@ -From cb31827d62066a04b02111df3052949fda4b6888 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 23 Nov 2015 13:59:43 -0500 -Subject: [PATCH] nss-mymachines: do not allow overlong machine names - -https://github.com/systemd/systemd/issues/2002 ---- - src/nss-mymachines/nss-mymachines.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c -index 969fa96..c98a959 100644 ---- a/src/nss-mymachines/nss-mymachines.c -+++ b/src/nss-mymachines/nss-mymachines.c -@@ -416,6 +416,9 @@ enum nss_status _nss_mymachines_getpwnam_r( - if (!e || e == p) - goto not_found; - -+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */ -+ goto not_found; -+ - r = parse_uid(e + 1, &uid); - if (r < 0) - goto not_found; -@@ -573,6 +576,9 @@ enum nss_status _nss_mymachines_getgrnam_r( - if (!e || e == p) - goto not_found; - -+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */ -+ goto not_found; -+ - r = parse_gid(e + 1, &gid); - if (r < 0) - goto not_found; --- -2.1.4 - diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch deleted file mode 100644 index 0375d595..00000000 --- a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Werner Fink -Date: Wed Feb 26 14:36:27 UTC 2014 -Subject: Do not clobber XDG_RUNTIME_DIR if su command preserve environment - -Make sure that even if a su command without option -l or with option -m -is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. - -This belongs to BNC#852015 and also to BNC#855160 - ---- - src/login/pam_systemd.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -Index: systemd-221/src/login/pam_systemd.c -=================================================================== ---- systemd-221.orig/src/login/pam_systemd.c -+++ systemd-221/src/login/pam_systemd.c -@@ -445,6 +445,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess - r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); - if (r != PAM_SUCCESS) - return r; -+ } else if (getenv("XDG_RUNTIME_DIR")) { -+ _cleanup_free_ char *p = NULL; -+ -+ /* Make sure that after running YaST2 or the xdg-su scripts -+ * the runtime directory is not clobbered. Even a normal su -+ * command without -l or with -m may clobber. */ -+ -+ if ((r = asprintf(&p, "/run/user/%lu", (unsigned long)pw->pw_uid)) < 0) -+ return PAM_BUF_ERR; -+ -+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", p, 0); -+ if (r != PAM_SUCCESS) { -+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); -+ return r; -+ } -+ -+ r = export_legacy_dbus_address(handle, pw->pw_uid, p); -+ if (r != PAM_SUCCESS) -+ return r; - } - - if (!isempty(seat)) { diff --git a/0010-do-not-install-sulogin-unit-with-poweroff.patch b/0010-do-not-install-sulogin-unit-with-poweroff.patch deleted file mode 100644 index af9d7f53..00000000 --- a/0010-do-not-install-sulogin-unit-with-poweroff.patch +++ /dev/null @@ -1,19 +0,0 @@ -| -| Belongs to bnc#849071 that is do not install console-shell.service -| in any system target as this will cause automatic poweroff at boot. -| ---- - units/console-shell.service.m4.in | 3 --- - 1 file changed, 3 deletions(-) - -Index: systemd-221/units/console-shell.service.m4.in -=================================================================== ---- systemd-221.orig/units/console-shell.service.m4.in -+++ systemd-221/units/console-shell.service.m4.in -@@ -28,6 +28,3 @@ StandardError=inherit - KillMode=process - IgnoreSIGPIPE=no - SendSIGHUP=yes -- --[Install] --WantedBy=getty.target diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch deleted file mode 100644 index 00577b3d..00000000 --- a/0014-journald-with-journaling-FS.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: werner@suse.de -Upstream: marked as openSUSE-specific fix originally, but may well - worth be to be sent upstream. - -Original description: - (none) - -Augmented description [jengelh@inai.de]: -Disable COW on journal files, as that is naturally leading to a lot -of unwanted fragmentation on btrfs. -No word on compression… ---- - src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -Index: systemd-227/src/journal/journald-server.c -=================================================================== ---- systemd-227.orig/src/journal/journald-server.c -+++ systemd-227/src/journal/journald-server.c -@@ -24,6 +24,7 @@ - #include - #endif - #include -+#include - #include - #include - #include -@@ -861,6 +862,39 @@ void server_driver_message(Server *s, sd - dispatch_message_real(s, iovec, n, ELEMENTSOF(iovec), &ucred, NULL, NULL, 0, NULL, LOG_INFO, 0); - } - -+/* -+ * On journaling and/or compressing file systems, avoid doubling the efforts -+ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every -+ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on -+ * a single unkown flag (like Btrfs does). -+ * -+ * …but src/journal/journal-file.c already sets NOCOW too…⸘ -+ */ -+static void disable_cow(const char *dir, const Server *serv) -+{ -+ unsigned long flags; -+ int fd = open(dir, O_DIRECTORY); -+ -+ if (fd < 0) -+ return; -+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { -+ unsigned long old = flags; -+ if (!(flags & FS_NOATIME_FL) && -+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOATIME_FL) == 0) -+ flags |= FS_NOATIME_FL; -+ if (!(flags & FS_NOCOW_FL) && -+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOCOW_FL) == 0) -+ flags |= FS_NOCOW_FL; -+ if (!(flags & FS_NOCOMP_FL) && serv->compress) { -+ flags &= ~FS_COMPR_FL; -+ flags |= FS_NOCOMP_FL; -+ } -+ if (old != flags) -+ ioctl(fd, FS_IOC_SETFLAGS, flags); -+ } -+ close(fd); -+} -+ - void server_dispatch_message( - Server *s, - struct iovec *iovec, unsigned n, unsigned m, -@@ -948,6 +982,7 @@ static int system_journal_open(Server *s - - fn = strjoina("/var/log/journal/", SERVER_MACHINE_ID(s)); - (void) mkdir(fn, 0755); -+ disable_cow(fn, s); - - fn = strjoina(fn, "/system.journal"); - r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch deleted file mode 100644 index c8ab5fa7..00000000 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ /dev/null @@ -1,272 +0,0 @@ ---- - shell-completion/bash/coredumpctl | 6 +++++- - shell-completion/bash/hostnamectl | 6 +++++- - shell-completion/bash/journalctl | 6 +++++- - shell-completion/bash/kernel-install | 13 ++++++++++++- - shell-completion/bash/localectl | 6 +++++- - shell-completion/bash/loginctl | 6 +++++- - shell-completion/bash/systemctl.in | 6 +++++- - shell-completion/bash/systemd-analyze | 6 +++++- - shell-completion/bash/systemd-run | 14 +++++++++++++- - shell-completion/bash/timedatectl | 6 +++++- - shell-completion/bash/udevadm | 6 +++++- - 11 files changed, 70 insertions(+), 11 deletions(-) - -Index: systemd-228/shell-completion/bash/coredumpctl -=================================================================== ---- systemd-228.orig/shell-completion/bash/coredumpctl -+++ systemd-228/shell-completion/bash/coredumpctl -@@ -44,6 +44,10 @@ _coredumpctl() { - [DUMP]='dump gdb' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" '--output -o'; then - comps=$( compgen -A file -- "$cur" ) - compopt -o filenames -@@ -82,4 +86,4 @@ _coredumpctl() { - return 0 - } - --complete -F _coredumpctl coredumpctl -+complete -o default -o bashdefault -F _coredumpctl coredumpctl -Index: systemd-228/shell-completion/bash/hostnamectl -=================================================================== ---- systemd-228.orig/shell-completion/bash/hostnamectl -+++ systemd-228/shell-completion/bash/hostnamectl -@@ -30,6 +30,10 @@ _hostnamectl() { - local OPTS='-h --help --version --transient --static --pretty - --no-ask-password -H --host --machine' - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if [[ $cur = -* ]]; then - COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) - return 0 -@@ -61,4 +65,4 @@ _hostnamectl() { - return 0 - } - --complete -F _hostnamectl hostnamectl -+complete -o default -o bashdefault -F _hostnamectl hostnamectl -Index: systemd-228/shell-completion/bash/journalctl -=================================================================== ---- systemd-228.orig/shell-completion/bash/journalctl -+++ systemd-228/shell-completion/bash/journalctl -@@ -56,6 +56,10 @@ _journalctl() { - --root -M --machine' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then - case $prev in - --boot|--this-boot|-b) -@@ -121,4 +125,4 @@ _journalctl() { - fi - } - --complete -F _journalctl journalctl -+complete -o default -o bashdefault -F _journalctl journalctl -Index: systemd-228/shell-completion/bash/kernel-install -=================================================================== ---- systemd-228.orig/shell-completion/bash/kernel-install -+++ systemd-228/shell-completion/bash/kernel-install -@@ -18,11 +18,22 @@ - # You should have received a copy of the GNU Lesser General Public License - # along with systemd; If not, see . - -+__contains_word () { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ - _kernel_install() { - local comps - local MACHINE_ID - local cur=${COMP_WORDS[COMP_CWORD]} - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - case $COMP_CWORD in - 1) - comps="add remove" -@@ -47,4 +58,4 @@ _kernel_install() { - return 0 - } - --complete -F _kernel_install kernel-install -+complete -o default -o bashdefault -F _kernel_install kernel-install -Index: systemd-228/shell-completion/bash/localectl -=================================================================== ---- systemd-228.orig/shell-completion/bash/localectl -+++ systemd-228/shell-completion/bash/localectl -@@ -36,6 +36,10 @@ _localectl() { - local OPTS='-h --help --version --no-convert --no-pager --no-ask-password - -H --host --machine' - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" $OPTS; then - case $prev in - --host|-H) -@@ -89,4 +93,4 @@ _localectl() { - return 0 - } - --complete -F _localectl localectl -+complete -o default -o bashdefault -F _localectl localectl -Index: systemd-228/shell-completion/bash/loginctl -=================================================================== ---- systemd-228.orig/shell-completion/bash/loginctl -+++ systemd-228/shell-completion/bash/loginctl -@@ -38,6 +38,10 @@ _loginctl () { - [ARG]='--host -H --kill-who --property -p --signal -s --machine' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" ${OPTS[ARG]}; then - case $prev in - --signal|-s) -@@ -107,4 +111,4 @@ _loginctl () { - return 0 - } - --complete -F _loginctl loginctl -+complete -o default -o bashdefault -F _loginctl loginctl -Index: systemd-228/shell-completion/bash/systemctl.in -=================================================================== ---- systemd-228.orig/shell-completion/bash/systemctl.in -+++ systemd-228/shell-completion/bash/systemctl.in -@@ -104,6 +104,10 @@ _systemctl () { - --preset-mode -n --lines -o --output -M --machine' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "--user" ${COMP_WORDS[*]}; then - mode=--user - elif __contains_word "--global" ${COMP_WORDS[*]}; then -@@ -280,4 +284,4 @@ _systemctl () { - return 0 - } - --complete -F _systemctl systemctl -+complete -o default -o bashdefault -F _systemctl systemctl -Index: systemd-228/shell-completion/bash/systemd-analyze -=================================================================== ---- systemd-228.orig/shell-completion/bash/systemd-analyze -+++ systemd-228/shell-completion/bash/systemd-analyze -@@ -47,6 +47,10 @@ _systemd_analyze() { - [VERIFY]='verify' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - _init_completion || return - - for ((i=0; i < COMP_CWORD; i++)); do -@@ -114,4 +118,4 @@ _systemd_analyze() { - return 0 - } - --complete -F _systemd_analyze systemd-analyze -+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze -Index: systemd-228/shell-completion/bash/systemd-run -=================================================================== ---- systemd-228.orig/shell-completion/bash/systemd-run -+++ systemd-228/shell-completion/bash/systemd-run -@@ -17,6 +17,13 @@ - # You should have received a copy of the GNU Lesser General Public License - # along with systemd; If not, see . - -+__contains_word () { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ - __systemctl() { - local mode=$1; shift 1 - systemctl $mode --full --no-legend "$@" -@@ -40,6 +47,11 @@ _systemd_run() { - - local mode=--system - local i -+ -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - local opts_with_values=( - --unit --description --slice --service-type -H --host -M --machine -p --property --on-active - --on-boot --on-startup --on-unit-active --on-unit-inactive --on-calendar --timer-property -@@ -114,4 +126,4 @@ _systemd_run() { - return 0 - } - --complete -F _systemd_run systemd-run -+complete -o default -o bashdefault -F _systemd_run systemd-run -Index: systemd-228/shell-completion/bash/timedatectl -=================================================================== ---- systemd-228.orig/shell-completion/bash/timedatectl -+++ systemd-228/shell-completion/bash/timedatectl -@@ -30,6 +30,10 @@ _timedatectl() { - local OPTS='-h --help --version --adjust-system-clock --no-pager - --no-ask-password -H --host --machine' - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" $OPTS; then - case $prev in - --host|-H) -@@ -73,4 +77,4 @@ _timedatectl() { - return 0 - } - --complete -F _timedatectl timedatectl -+complete -o default -o bashdefault -F _timedatectl timedatectl -Index: systemd-228/shell-completion/bash/udevadm -=================================================================== ---- systemd-228.orig/shell-completion/bash/udevadm -+++ systemd-228/shell-completion/bash/udevadm -@@ -36,6 +36,10 @@ _udevadm() { - - local verbs=(info trigger settle control monitor hwdb test-builtin test) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - for ((i=0; i < COMP_CWORD; i++)); do - if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" && - ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then -@@ -94,4 +98,4 @@ _udevadm() { - return 0 - } - --complete -F _udevadm udevadm -+complete -o default -o bashdefault -F _udevadm udevadm diff --git a/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch deleted file mode 100644 index cea9163a..00000000 --- a/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Robert Milasan -Date: Wed, 27 Jun 2012 08:55:59 +0000 -Subject: rules create by id scsi links for ATA devices - -Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) ---- - rules/60-persistent-storage.rules | 4 ++++ - 1 file changed, 4 insertions(+) - -Index: systemd-221/rules/60-persistent-storage.rules -=================================================================== ---- systemd-221.orig/rules/60-persistent-storage.rules -+++ systemd-221/rules/60-persistent-storage.rules -@@ -36,6 +36,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", - KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" - KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" - -+# scsi compat links for ATA devices -+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" -+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" -+ - # FireWire - KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" - KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" diff --git a/1003-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch deleted file mode 100644 index 92bfef99..00000000 --- a/1003-udev-netlink-null-rules.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Robert Milasan -Date: Mon, 6 Aug 2012 13:35:34 +0000 -Subject: udev netlink null rules - -udevd race for netlink events (bnc#774646) ---- - src/udev/udevd.c | 2 ++ - 1 file changed, 2 insertions(+) - -Index: systemd-221/src/udev/udevd.c -=================================================================== ---- systemd-221.orig/src/udev/udevd.c -+++ systemd-221/src/udev/udevd.c -@@ -917,6 +917,8 @@ static int on_uevent(sd_event_source *s, - dev = udev_monitor_receive_device(manager->monitor); - if (dev) { - udev_device_ensure_usec_initialized(dev, NULL); -+ if (manager->rules == NULL) -+ manager->rules = udev_rules_new(manager->udev, arg_resolve_names); - r = event_queue_insert(manager, dev); - if (r < 0) - udev_device_unref(dev); diff --git a/1005-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch deleted file mode 100644 index 868247ed..00000000 --- a/1005-create-default-links-for-primary-cd_dvd-drive.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Robert Milasan -Date: Tue, 12 Feb 2013 09:16:23 +0000 -Subject: create default links for primary cd_dvd drive - -cdrom_id: created links for the default cd/dvd drive (bnc#783054). ---- - rules/60-cdrom_id.rules | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -Index: systemd-221/rules/60-cdrom_id.rules -=================================================================== ---- systemd-221.orig/rules/60-cdrom_id.rules -+++ systemd-221/rules/60-cdrom_id.rules -@@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $ - # stale mounts after ejecting - ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0" - --KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM_CD_RW}=="1", SYMLINK+="cdrw", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM_DVD_RW}=="1", SYMLINK+="dvdrw", OPTIONS+="link_priority=-100" - - LABEL="cdrom_end" diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch deleted file mode 100644 index 36bb93ba..00000000 --- a/1006-udev-always-rename-network.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Robert Milasan -Cc: Werner Fink -Subject: udev always rename network - -Date: Thu, 28 Mar 2013 09:24:43 +0000 -udev: ensure that the network interfaces are renamed even if they exist (bnc#809843). - -Date: Tue, 4 Mar 2014 10:29:21 +0000 -Port the patch of Robert to systemd v210 and test it out. - ---- - src/udev/udev-event.c | 41 +++++++++++++++++++++++++++++++++++++---- - 1 file changed, 37 insertions(+), 4 deletions(-) - - -Index: systemd-221/src/udev/udev-event.c -=================================================================== ---- systemd-221.orig/src/udev/udev-event.c -+++ systemd-221/src/udev/udev-event.c -@@ -796,20 +796,53 @@ out: - static int rename_netif(struct udev_event *event) { - struct udev_device *dev = event->dev; - char name[IFNAMSIZ]; -+ char interim[IFNAMSIZ], *ptr = &interim[0]; - const char *oldname; -- int r; -+ int r, loop; - - oldname = udev_device_get_sysname(dev); - - strscpy(name, IFNAMSIZ, event->name); - - r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); -- if (r < 0) -+ if (r == 0) { -+ log_info("renamed network interface %s to %s\n", oldname, name); -+ return r; -+ } else if (r != -EEXIST) { - return log_error_errno(r, "Error changing net interface name '%s' to '%s': %m", oldname, name); -+ } - -- log_debug("renamed network interface '%s' to '%s'", oldname, name); -+ /* free our own name, another process may wait for us */ -+ strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); - -- return 0; -+ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), interim); -+ if (r < 0) { -+ log_error("error changing net interface name %s to %s: %s", -+ oldname, interim, strerror(-r)); -+ return r; -+ } -+ -+ /* log temporary name */ -+ log_info("renamed network interface %s to %s\n", oldname, interim); -+ -+ loop = 90 * 20; -+ while (loop--) { -+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; -+ nanosleep(&duration, NULL); -+ -+ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); -+ if (r == 0) { -+ log_info("renamed network interface %s to %s\n", interim, name); -+ break; -+ } -+ -+ if (r != -EEXIST) { -+ log_error("error changing net interface name %s to %s: %s", -+ interim, name, strerror(-r)); -+ break; -+ } -+ } -+ return r; - } - - void udev_event_execute_rules(struct udev_event *event, diff --git a/1007-physical-hotplug-cpu-and-memory.patch b/1007-physical-hotplug-cpu-and-memory.patch deleted file mode 100644 index 5365f17c..00000000 --- a/1007-physical-hotplug-cpu-and-memory.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- - Makefile.am | 4 ++++ - rules/80-hotplug-cpu-mem.rules | 12 ++++++++++++ - 2 files changed, 16 insertions(+) - -Index: systemd-221/Makefile.am -=================================================================== ---- systemd-221.orig/Makefile.am -+++ systemd-221/Makefile.am -@@ -3841,6 +3841,10 @@ dist_udevrules_DATA += \ - rules/73-seat-numlock.rules - - # ------------------------------------------------------------------------------ -+dist_udevrules_DATA += \ -+ rules/80-hotplug-cpu-mem.rules -+ -+# ------------------------------------------------------------------------------ - mtd_probe_SOURCES = \ - src/udev/mtd_probe/mtd_probe.c \ - src/udev/mtd_probe/mtd_probe.h \ -Index: systemd-221/rules/80-hotplug-cpu-mem.rules -=================================================================== ---- /dev/null -+++ systemd-221/rules/80-hotplug-cpu-mem.rules -@@ -0,0 +1,12 @@ -+# do not edit this file, it will be overwritten on update -+ -+# Hotplug physical CPU -+SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", \ -+ ATTR{online}="1" -+ -+# Hotplug physical memory -+SUBSYSTEM=="memory", ACTION=="add", TEST=="state", ATTR{state}=="offline", \ -+ ATTR{state}="online", TAG+="tmpfs" -+ -+# -+TAG=="tmpfs", RUN+="/usr/lib/udev/remount-tmpfs" diff --git a/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch b/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch deleted file mode 100644 index 9d5a39f0..00000000 --- a/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch +++ /dev/null @@ -1,24 +0,0 @@ -From e26a5bb50b8aa741c5b2e57749d576c488e7ab32 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Thu, 10 Apr 2014 11:10:41 +0200 -Subject: [PATCH 1/2] 64-btrfs.rules: skip btrfs check if devices are not ready - -If any devices are marked with 'SYSTEMD_READY=0' then -we shouldn't run any btrfs check on them. - ---- - rules/64-btrfs.rules | 1 + - 1 file changed, 1 insertion(+) - -Index: systemd-221/rules/64-btrfs.rules -=================================================================== ---- systemd-221.orig/rules/64-btrfs.rules -+++ systemd-221/rules/64-btrfs.rules -@@ -3,6 +3,7 @@ - SUBSYSTEM!="block", GOTO="btrfs_end" - ACTION=="remove", GOTO="btrfs_end" - ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end" -+ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end" - - # let the kernel know about this btrfs filesystem, and check if it is complete - IMPORT{builtin}="btrfs ready $devnode" diff --git a/1012-Skip-persistent-device-link-creation-on-multipath-de.patch b/1012-Skip-persistent-device-link-creation-on-multipath-de.patch deleted file mode 100644 index c5bd4a13..00000000 --- a/1012-Skip-persistent-device-link-creation-on-multipath-de.patch +++ /dev/null @@ -1,40 +0,0 @@ -From f9e1ee09fadbd4fb146d4f7bb45a6212773dff63 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Thu, 10 Apr 2014 11:14:20 +0200 -Subject: [PATCH 2/2] Skip persistent device link creation on multipath device - paths - -When a device is marked as a multipath device path by setting -DM_MULTIPATH_DEVICE_PATH="1" udev should not create any -persistent symlinks to that device. -Otherwise systemd will get confused about which device to use. - ---- - rules/60-persistent-storage.rules | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-221/rules/60-persistent-storage.rules -=================================================================== ---- systemd-221.orig/rules/60-persistent-storage.rules -+++ systemd-221/rules/60-persistent-storage.rules -@@ -33,8 +33,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}! - # SCSI devices - KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi" - KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss" --KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" --KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" -+KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{DM_MULTIPATH_DEVICE_PATH}!="1", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" -+KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{DM_MULTIPATH_DEVICE_PATH}!="1", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" - - # scsi compat links for ATA devices - KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" -@@ -66,6 +66,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!= - KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \ - IMPORT{builtin}="blkid --noraid" - -+# Skip blkid on multipath device paths -+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="persistent_storage_end" -+ - # probe filesystem metadata of disks - KERNEL!="sr*", IMPORT{builtin}="blkid" - diff --git a/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch b/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch deleted file mode 100644 index 400cd94d..00000000 --- a/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c9af1be90db5a29ac86605c67bc2bb4bc5780520 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Thu, 12 Jun 2014 12:25:03 +0200 -Subject: [PATCH] 99-systemd.rules: Ignore devices with 'SYSTEMD_READY=0' - -Whenever a rule sets 'SYSTEMD_READY=0' it tries to indicate -that systemd should ignore this device. So we should not -set the 'systemd' tag in these cases; otherwise systemd -will pick up the device. - -References: bnc#881942 - -Signed-off-by: Hannes Reinecke ---- - rules/99-systemd.rules.in | 1 + - 1 file changed, 1 insertion(+) - -Index: systemd-221/rules/99-systemd.rules.in -=================================================================== ---- systemd-221.orig/rules/99-systemd.rules.in -+++ systemd-221/rules/99-systemd.rules.in -@@ -10,6 +10,7 @@ ACTION=="remove", GOTO="systemd_end" - SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" - KERNEL=="vport*", TAG+="systemd" - -+SUBSYSTEM=="block", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end" - SUBSYSTEM=="block", TAG+="systemd" - SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" - diff --git a/1037-udev-exclude-cd-dvd-from-block-device.patch b/1037-udev-exclude-cd-dvd-from-block-device.patch deleted file mode 100644 index 2b001518..00000000 --- a/1037-udev-exclude-cd-dvd-from-block-device.patch +++ /dev/null @@ -1,20 +0,0 @@ -Exclude cd/dvd as well (bnc#882714) - ---- - src/udev/udevd.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: systemd-221/src/udev/udevd.c -=================================================================== ---- systemd-221.orig/src/udev/udevd.c -+++ systemd-221/src/udev/udevd.c -@@ -1022,7 +1022,8 @@ static int synthesize_change(struct udev - - if (streq_ptr("block", udev_device_get_subsystem(dev)) && - streq_ptr("disk", udev_device_get_devtype(dev)) && -- !startswith(udev_device_get_sysname(dev), "dm-")) { -+ !startswith(udev_device_get_sysname(dev), "dm-") && -+ !startswith(udev_device_get_sysname(dev), "sr")) { - bool part_table_read = false; - bool has_partitions = false; - int fd; diff --git a/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch b/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch deleted file mode 100644 index 02ead8c8..00000000 --- a/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: Jeff Mahoney -Subject: udev: use device mapper target name for btrfs device ready -References: bnc#888215 - -When udev gets a change event for a block device, it calls the builtin -btrfs helper to scan it for a btrfs file system. If the file system was -mounted using a device mapper node, mount(8) will have looked up the -device mapper table and used the /dev/mapper/ node for mount. - -If something like partprobe runs, and then causes change events to be -handled, the btrfs ready event is handled using /dev/dm-N instead of -the device mapper named node. Btrfs caches the last name passed to -the scanning ioctl and uses that to report the device name for -things like /proc/mounts. - -So, after running partprobe we go from: -/dev/mapper/test-test on /mnt type btrfs (rw,relatime,space_cache) -... to ... -/dev/dm-0 on /mnt type btrfs (rw,relatime,space_cache) - -This doesn't apply only to LVM device, but multipath as well. - -If the device is a DM device, udev will have already cached the table name -from sysfs and we can use that to pass /dev/mapper/ to the builtin -so that the correct name is used. - -Signed-off-by: Jeff Mahoney ---- - rules/64-btrfs.rules | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: systemd-221/rules/64-btrfs.rules -=================================================================== ---- systemd-221.orig/rules/64-btrfs.rules -+++ systemd-221/rules/64-btrfs.rules -@@ -6,7 +6,8 @@ ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_en - ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end" - - # let the kernel know about this btrfs filesystem, and check if it is complete --IMPORT{builtin}="btrfs ready $devnode" -+ENV{DM_NAME}=="", IMPORT{builtin}="btrfs ready $devnode" -+ENV{DM_NAME}=="?*", IMPORT{builtin}="btrfs ready /dev/mapper/$env{DM_NAME}" - - # mark the device as not ready to be used by the system - ENV{ID_BTRFS_READY}=="0", ENV{SYSTEMD_READY}="0" diff --git a/1062-rules-set-default-permissions-for-GenWQE-devices.patch b/1062-rules-set-default-permissions-for-GenWQE-devices.patch deleted file mode 100644 index 80c434dc..00000000 --- a/1062-rules-set-default-permissions-for-GenWQE-devices.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- - rules/50-udev-default.rules | 2 ++ - 1 file changed, 2 insertions(+) - -Index: systemd-221/rules/50-udev-default.rules -=================================================================== ---- systemd-221.orig/rules/50-udev-default.rules -+++ systemd-221/rules/50-udev-default.rules -@@ -74,4 +74,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st - - KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse" - -+KERNEL=="genwqe*", MODE="0666" -+ - LABEL="default_end" diff --git a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch deleted file mode 100644 index 637c2be8..00000000 --- a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +++ /dev/null @@ -1,175 +0,0 @@ -From: Jeff Mahoney -Subject: udev: add option to generate old 'buggy' serials -References: bnc#886852 - -Prior to udev 184, scsi_id would truncate the last character of the model -string when generating the ID_SERIAL value. If a system was installed -prior to that fix being available in udev, there may be configuration -information that refers to the truncated link. - -This patch adds a --truncated-serial option and a udev rule will created -the old truncated links. - -Signed-off-by: Jeff Mahoney ---- - rules/60-persistent-storage.rules | 4 ++++ - src/udev/scsi_id/scsi_id.c | 15 ++++++++++++++- - src/udev/scsi_id/scsi_id.h | 1 + - src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------ - 4 files changed, 32 insertions(+), 7 deletions(-) - -Index: systemd-221/rules/60-persistent-storage.rules -=================================================================== ---- systemd-221.orig/rules/60-persistent-storage.rules -+++ systemd-221/rules/60-persistent-storage.rules -@@ -40,6 +40,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par - KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" - KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" - -+# scsi compat links for ATA devices (for compatibility with udev < 184) -+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --truncated-serial --whitelisted --replace-whitespace -p0x80 -d$tempnode", RESULT=="?*", ENV{ID_SCSI_COMPAT_TRUNCATED}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}" -+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT_TRUNCATED}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}-part%n" -+ - # FireWire - KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" - KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" -Index: systemd-221/src/udev/scsi_id/scsi_id.c -=================================================================== ---- systemd-221.orig/src/udev/scsi_id/scsi_id.c -+++ systemd-221/src/udev/scsi_id/scsi_id.c -@@ -43,6 +43,7 @@ static const struct option options[] = { - { "replace-whitespace", no_argument, NULL, 'u' }, - { "sg-version", required_argument, NULL, 's' }, - { "verbose", no_argument, NULL, 'v' }, -+ { "truncated-serial", no_argument, NULL, '9' }, - { "version", no_argument, NULL, 'V' }, /* don't advertise -V */ - { "export", no_argument, NULL, 'x' }, - { "help", no_argument, NULL, 'h' }, -@@ -54,6 +55,7 @@ static bool dev_specified = false; - static char config_file[MAX_PATH_LEN] = "/etc/scsi_id.config"; - static enum page_code default_page_code = PAGE_UNSPECIFIED; - static int sg_version = 4; -+static bool compat_truncated = false; - static bool reformat_serial = false; - static bool export = false; - static char vendor_str[64]; -@@ -316,6 +318,7 @@ static void help(void) { - " -g --whitelisted Treat device as whitelisted\n" - " -u --replace-whitespace Replace all whitespace by underscores\n" - " -v --verbose Verbose logging\n" -+ " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n" - " -x --export Print values as environment keys\n" - , program_invocation_short_name); - -@@ -387,6 +390,10 @@ static int set_options(struct udev *udev - log_open(); - break; - -+ case '9': -+ compat_truncated = true; -+ break; -+ - case 'V': - printf("%s\n", VERSION); - exit(0); -@@ -528,6 +535,9 @@ static int scsi_id(struct udev *udev, ch - util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); - util_replace_chars(serial_str, NULL); - printf("ID_SERIAL=%s\n", serial_str); -+ util_replace_whitespace(dev_scsi.serial_compat, serial_str, sizeof(serial_str)); -+ util_replace_chars(serial_str, NULL); -+ printf("ID_SERIAL_COMPAT=%s\n", serial_str); - util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str)); - util_replace_chars(serial_str, NULL); - printf("ID_SERIAL_SHORT=%s\n", serial_str); -@@ -558,7 +568,10 @@ static int scsi_id(struct udev *udev, ch - if (reformat_serial) { - char serial_str[MAX_SERIAL_LEN]; - -- util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); -+ if (compat_truncated) -+ util_replace_whitespace(dev_scsi.serial_compat, serial_str, sizeof(serial_str)); -+ else -+ util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); - util_replace_chars(serial_str, NULL); - printf("%s\n", serial_str); - goto out; -Index: systemd-221/src/udev/scsi_id/scsi_id.h -=================================================================== ---- systemd-221.orig/src/udev/scsi_id/scsi_id.h -+++ systemd-221/src/udev/scsi_id/scsi_id.h -@@ -45,6 +45,7 @@ struct scsi_id_device { - char kernel[64]; - char serial[MAX_SERIAL_LEN]; - char serial_short[MAX_SERIAL_LEN]; -+ char serial_compat[MAX_SERIAL_LEN]; - int use_sg; - - /* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */ -Index: systemd-221/src/udev/scsi_id/scsi_serial.c -=================================================================== ---- systemd-221.orig/src/udev/scsi_id/scsi_serial.c -+++ systemd-221/src/udev/scsi_id/scsi_serial.c -@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a - - static int do_scsi_page80_inquiry(struct udev *udev, - struct scsi_id_device *dev_scsi, int fd, -- char *serial, char *serial_short, int max_len); -+ char *serial, char *serial_short, -+ char *serial_compat, int max_len); - - static int sg_err_category_new(struct udev *udev, - int scsi_status, int msg_status, int -@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct - unsigned char page_83[SCSI_INQ_BUFF_LEN]; - - /* also pick up the page 80 serial number */ -- do_scsi_page80_inquiry(udev, dev_scsi, fd, NULL, unit_serial_number, MAX_SERIAL_LEN); -+ do_scsi_page80_inquiry(udev, dev_scsi, fd, NULL, unit_serial_number, NULL, MAX_SERIAL_LEN); - - memzero(page_83, SCSI_INQ_BUFF_LEN); - retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83, -@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir - /* Get unit serial number VPD page */ - static int do_scsi_page80_inquiry(struct udev *udev, - struct scsi_id_device *dev_scsi, int fd, -- char *serial, char *serial_short, int max_len) -+ char *serial, char *serial_short, -+ char *serial_compat, int max_len) - { - int retval; - int ser_ind; -@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct - ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]); - if (ser_ind < 0) - return 1; -+ if (serial_compat) -+ strcpy(serial_compat, serial); - ser_ind++; /* for the leading 'S' */ -- for (i = 4; i < len + 4; i++, ser_ind++) -+ for (i = 4; i < len + 4; i++, ser_ind++) { - serial[ser_ind] = buf[i]; -+ if (serial_compat) -+ serial_compat[ser_ind - 1] = buf[i]; -+ } - } - if (serial_short != NULL) { - memcpy(serial_short, &buf[4], len); -@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev, - return 1; - - if (page_code == PAGE_80) { -- if (do_scsi_page80_inquiry(udev, dev_scsi, fd, dev_scsi->serial, dev_scsi->serial_short, len)) { -+ if (do_scsi_page80_inquiry(udev, dev_scsi, fd, dev_scsi->serial, dev_scsi->serial_short, dev_scsi->serial_compat, len)) { - retval = 1; - goto completed; - } else { -@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev, - for (ind = 4; ind <= page0[3] + 3; ind++) - if (page0[ind] == PAGE_80) - if (!do_scsi_page80_inquiry(udev, dev_scsi, fd, -- dev_scsi->serial, dev_scsi->serial_short, len)) { -+ dev_scsi->serial, dev_scsi->serial_short, dev_scsi->serial_compat, len)) { - /* - * Success - */ diff --git a/1095-set-ssd-disk-to-use-deadline-scheduler.patch b/1095-set-ssd-disk-to-use-deadline-scheduler.patch deleted file mode 100644 index 932ea747..00000000 --- a/1095-set-ssd-disk-to-use-deadline-scheduler.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- - Makefile.am | 1 + - rules/60-ssd-scheduler.rules | 11 +++++++++++ - 2 files changed, 12 insertions(+) - -Index: systemd-221/Makefile.am -=================================================================== ---- systemd-221.orig/Makefile.am -+++ systemd-221/Makefile.am -@@ -3501,6 +3501,7 @@ dist_udevrules_DATA += \ - rules/60-persistent-input.rules \ - rules/60-persistent-alsa.rules \ - rules/60-persistent-storage.rules \ -+ rules/60-ssd-scheduler.rules \ - rules/60-serial.rules \ - rules/64-btrfs.rules \ - rules/70-mouse.rules \ -Index: systemd-221/rules/60-ssd-scheduler.rules -=================================================================== ---- /dev/null -+++ systemd-221/rules/60-ssd-scheduler.rules -@@ -0,0 +1,11 @@ -+# do not edit this file, it will be overwritten on update -+ -+ACTION!="add", GOTO="ssd_scheduler_end" -+SUBSYSTEM!="block", GOTO="ssd_scheduler_end" -+ -+IMPORT{cmdline}="elevator" -+ENV{elevator}=="*?", GOTO="ssd_scheduler_end" -+ -+KERNEL=="sd*[!0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" -+ -+LABEL="ssd_scheduler_end" diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch deleted file mode 100644 index e6a0c0de..00000000 --- a/1096-new-udev-root-symlink-generator.patch +++ /dev/null @@ -1,108 +0,0 @@ ---- - Makefile.am | 19 +++++ - src/udev/rootsymlink_generator/rootsymlink_generator.c | 57 +++++++++++++++++ - units/systemd-udev-root-symlink.service | 10 ++ - units/systemd-udev-root-symlink.service.in | 10 ++ - 4 files changed, 96 insertions(+) - ---- systemd-222.orig/Makefile.am -+++ systemd-222/Makefile.am -@@ -3759,6 +3759,25 @@ EXTRA_DIST += \ - test/mocks/fsck - - # ------------------------------------------------------------------------------ -+rootsymlink_generator_SOURCES = \ -+ src/udev/rootsymlink_generator/rootsymlink_generator.c -+ -+rootsymlink_generator_CFLAGS = \ -+ $(AM_CFLAGS) -+ -+udevlibexec_PROGRAMS += \ -+ rootsymlink-generator -+ -+nodist_systemunit_DATA += \ -+ units/systemd-udev-root-symlink.service -+ -+SYSINIT_TARGET_WANTS += \ -+ systemd-udev-root-symlink.service -+ -+EXTRA_DIST += \ -+ units/systemd-udev-root-symlink.service.in -+ -+# ------------------------------------------------------------------------------ - ata_id_SOURCES = \ - src/udev/ata_id/ata_id.c - ---- /dev/null -+++ systemd-222/src/udev/rootsymlink_generator/rootsymlink_generator.c -@@ -0,0 +1,57 @@ -+/* -+ * Copyright (C) 2014-2015 Robert Milasan -+ * -+ * 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. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define BUFFER_SIZE 128 -+ -+#define _ROOTDEV_ "/" -+#define _PATH_ "/run/udev/rules.d" -+#define _FILE_ "10-root-symlink.rules" -+ -+int main(void) -+{ -+ char filename[BUFFER_SIZE], buf[BUFFER_SIZE]; -+ struct stat statbuf; -+ int fd; -+ -+ if (stat(_ROOTDEV_, &statbuf) < 0) -+ return 1; -+ if (major(statbuf.st_dev) <= 0) -+ return 0; -+ if (mkdir(_PATH_, 0755) < 0 && errno != EEXIST) -+ return errno; -+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); -+ fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644); -+ if (fd < 0) -+ return errno; -+ snprintf(buf, BUFFER_SIZE, -+ "ACTION==\"add|change\", SUBSYSTEM==\"block\", " -+ "ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", -+ major(statbuf.st_dev), minor(statbuf.st_dev)); -+ if (write(fd, buf, strlen(buf)) < 0) -+ return errno; -+ if (close(fd) < 0) -+ return errno; -+ return 0; -+} ---- /dev/null -+++ systemd-222/units/systemd-udev-root-symlink.service.in -@@ -0,0 +1,10 @@ -+[Unit] -+Description=Rule generator for /dev/root symlink -+Before=systemd-udevd.service -+DefaultDependencies=no -+ConditionPathIsReadWrite=/run/udev -+ -+[Service] -+Type=oneshot -+RemainAfterExit=yes -+ExecStart=@udevlibexecdir@/rootsymlink-generator diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch deleted file mode 100644 index f71c96a4..00000000 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-227/src/udev/udevd.c -=================================================================== ---- systemd-227.orig/src/udev/udevd.c -+++ systemd-227/src/udev/udevd.c -@@ -568,7 +568,7 @@ static void event_run(Manager *manager, - - if (hashmap_size(manager->workers) >= arg_children_max) { - if (arg_children_max > 1) -- log_debug("maximum number (%i) of children reached", hashmap_size(manager->workers)); -+ log_error("maximum number (%i) of children reached", hashmap_size(manager->workers)); - return; - } - -@@ -1672,7 +1672,7 @@ int main(int argc, char *argv[]) { - arg_children_max = 8; - - if (sched_getaffinity(0, sizeof(cpu_set), &cpu_set) == 0) -- arg_children_max += CPU_COUNT(&cpu_set) * 2; -+ arg_children_max += CPU_COUNT(&cpu_set) * 64; - - log_debug("set children_max to %u", arg_children_max); - } diff --git a/1098-systemd-networkd-alias-network-service.patch b/1098-systemd-networkd-alias-network-service.patch deleted file mode 100644 index a3c666f4..00000000 --- a/1098-systemd-networkd-alias-network-service.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- - units/systemd-networkd.service.m4.in | 1 + - 1 file changed, 1 insertion(+) - -Index: systemd-221/units/systemd-networkd.service.m4.in -=================================================================== ---- systemd-221.orig/units/systemd-networkd.service.m4.in -+++ systemd-221/units/systemd-networkd.service.m4.in -@@ -34,4 +34,5 @@ WatchdogSec=1min - - [Install] - WantedBy=multi-user.target -+Alias=network.service - Also=systemd-networkd.socket diff --git a/Correct_assert_on_unexpected_error_code.patch b/Correct_assert_on_unexpected_error_code.patch deleted file mode 100644 index 43e686ca..00000000 --- a/Correct_assert_on_unexpected_error_code.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- - src/login/pam_systemd.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -Index: systemd-228/src/login/pam_systemd.c -=================================================================== ---- systemd-228.orig/src/login/pam_systemd.c -+++ systemd-228/src/login/pam_systemd.c -@@ -515,7 +515,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess - r = pam_set_data(handle, "systemd.session-fd", FD_TO_PTR(session_fd), NULL); - if (r != PAM_SUCCESS) { - pam_syslog(handle, LOG_ERR, "Failed to install session fd."); -- safe_close(session_fd); -+ if (session_fd >= 0) { -+ PROTECT_ERRNO; -+ if (_unlikely_(!(close_nointr(session_fd) != -EBADF))) -+ pam_syslog(handle, LOG_ERR, "Unexpected error code on closing session fd: %m"); -+ } - return r; - } - } diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch deleted file mode 100644 index d780d327..00000000 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Frederic Crozat -Date: Wed, 7 Dec 2011 15:15:07 +0000 -Subject: Fix /run/lock directories permissions to follow openSUSE policy - -disable /var/lock/{subsys,lockdev} and change default permissions on -/var/lock (bnc#733523). ---- - tmpfiles.d/legacy.conf | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -Index: systemd-221/tmpfiles.d/legacy.conf -=================================================================== ---- systemd-221.orig/tmpfiles.d/legacy.conf -+++ systemd-221/tmpfiles.d/legacy.conf -@@ -10,13 +10,14 @@ - # These files are considered legacy and are unnecessary on legacy-free - # systems. - --d /run/lock 0755 root root - -+# changed for openSUSE: only /run/lock should be available. -+d /run/lock 0775 root lock - - L /var/lock - - - - ../run/lock - - # /run/lock/subsys is used for serializing SysV service execution, and - # hence without use on SysV-less systems. - --d /run/lock/subsys 0755 root root - -+#d /run/lock/subsys 0755 root root - - - # /run/lock/lockdev is used to serialize access to tty devices via - # LCK..xxx style lock files, For more information see: -@@ -24,7 +25,7 @@ d /run/lock/subsys 0755 root root - - # On modern systems a BSD file lock is a better choice if - # serialization is needed on those devices. - --d /run/lock/lockdev 0775 root lock - -+#d /run/lock/lockdev 0775 root lock - - - # /forcefsck, /fastboot and /forcequotacheck are deprecated in favor of the - # kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and diff --git a/after-local.service b/after-local.service deleted file mode 100644 index 500c2370..00000000 --- a/after-local.service +++ /dev/null @@ -1,17 +0,0 @@ -# This file is part of systemd. -# -# systemd 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. - -[Unit] -Description=/etc/init.d/after.local Compatibility -ConditionFileIsExecutable=/etc/init.d/after.local -After=getty.target - -[Service] -Type=idle -ExecStart=/etc/init.d/after.local -TimeoutSec=0 -RemainAfterExit=yes diff --git a/allow-multiple-sulogin-to-be-started.patch b/allow-multiple-sulogin-to-be-started.patch deleted file mode 100644 index 8bc6e24f..00000000 --- a/allow-multiple-sulogin-to-be-started.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Frederic Crozat -Date: Thu, 10 Jan 2013 15:43:25 +0000 -Subject: allow multiple sulogin to be started - -allows multiple sulogin instance (bnc#793182). ---- - units/getty@.service.m4 | 1 + - units/rescue.target | 1 + - units/serial-getty@.service.m4 | 1 + - 3 files changed, 3 insertions(+) - -Index: systemd-221/units/getty@.service.m4 -=================================================================== ---- systemd-221.orig/units/getty@.service.m4 -+++ systemd-221/units/getty@.service.m4 -@@ -9,6 +9,7 @@ - Description=Getty on %I - Documentation=man:agetty(8) man:systemd-getty-generator(8) - Documentation=http://0pointer.de/blog/projects/serial-console.html -+Conflicts=rescue.service - After=systemd-user-sessions.service plymouth-quit-wait.service - m4_ifdef(`HAVE_SYSV_COMPAT', - After=rc-local.service -Index: systemd-221/units/rescue.target -=================================================================== ---- systemd-221.orig/units/rescue.target -+++ systemd-221/units/rescue.target -@@ -10,6 +10,7 @@ Description=Rescue Mode - Documentation=man:systemd.special(7) - Requires=sysinit.target rescue.service - After=sysinit.target rescue.service -+Conflicts=getty.target - AllowIsolate=yes - - [Install] -Index: systemd-221/units/serial-getty@.service.m4 -=================================================================== ---- systemd-221.orig/units/serial-getty@.service.m4 -+++ systemd-221/units/serial-getty@.service.m4 -@@ -10,6 +10,7 @@ Description=Serial Getty on %I - Documentation=man:agetty(8) man:systemd-getty-generator(8) - Documentation=http://0pointer.de/blog/projects/serial-console.html - BindsTo=dev-%i.device -+Conflicts=rescue.service - After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service - m4_ifdef(`HAVE_SYSV_COMPAT', - After=rc-local.service diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch deleted file mode 100644 index 257c329b..00000000 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Ludwig Nussel -Date: Mon, 8 Apr 2013 14:51:47 +0200 -Subject: apply ACL for nvidia device nodes - -set ACL on nvidia devices (bnc#808319). ---- - src/login/logind-acl.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -Index: systemd-221/src/login/logind-acl.c -=================================================================== ---- systemd-221.orig/src/login/logind-acl.c -+++ systemd-221/src/login/logind-acl.c -@@ -285,5 +285,17 @@ int devnode_acl_all(struct udev *udev, - r = k; - } - -+ /* only apply ACL on nvidia* if /dev/nvidiactl exists */ -+ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { -+ int j; -+ for (j = 0; j <= 256 ; j++) { -+ _cleanup_free_ char *devname = NULL; -+ if (asprintf(&devname, "/dev/nvidia%d", j) < 0) -+ break; -+ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) -+ break; -+ } -+ } -+ - return r; - } diff --git a/apply-ACL-for-nvidia-uvm-device-node.patch b/apply-ACL-for-nvidia-uvm-device-node.patch deleted file mode 100644 index 00a7c608..00000000 --- a/apply-ACL-for-nvidia-uvm-device-node.patch +++ /dev/null @@ -1,23 +0,0 @@ -From c79437b7967cf5a23faa881bc5da6b88b63a1ada Mon Sep 17 00:00:00 2001 -From: Stefan Dirsch -Date: Tue, 3 Jun 2014 15:05:55 +0200 -Subject: [PATCH] apply ACL for nvidia-uvm device node - -set ACL on nvidia-uvm device (bnc#879767). ---- - src/login/logind-acl.c | 2 ++ - 1 file changed, 2 insertions(+) - -Index: systemd-221/src/login/logind-acl.c -=================================================================== ---- systemd-221.orig/src/login/logind-acl.c -+++ systemd-221/src/login/logind-acl.c -@@ -295,6 +295,8 @@ int devnode_acl_all(struct udev *udev, - if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) - break; - } -+ /* required for additional CUDA support (nvidia-uvm module with appropriate device), bnc#879767 */ -+ devnode_acl("/dev/nvidia-uvm", flush, del, old_uid, add, new_uid); - } - - return r; diff --git a/avoid-divide-by-zero-sigtrap.patch b/avoid-divide-by-zero-sigtrap.patch deleted file mode 100644 index 60e42c9e..00000000 --- a/avoid-divide-by-zero-sigtrap.patch +++ /dev/null @@ -1,34 +0,0 @@ -Nasty bug reported on boo#867663 - ---- - src/basic/def.h | 2 +- - src/core/manager.c | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -Index: systemd-228/src/basic/def.h -=================================================================== ---- systemd-228.orig/src/basic/def.h -+++ systemd-228/src/basic/def.h -@@ -40,7 +40,7 @@ - - #define SYSTEMD_CGROUP_CONTROLLER "name=systemd" - --#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT -+#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS - #define SIGNALS_IGNORE SIGPIPE - - #define REBOOT_PARAM_FILE "/run/systemd/reboot-param" -Index: systemd-228/src/core/manager.c -=================================================================== ---- systemd-228.orig/src/core/manager.c -+++ systemd-228/src/core/manager.c -@@ -2003,7 +2003,8 @@ static int manager_dispatch_jobs_in_prog - assert(m); - assert(source); - -- manager_print_jobs_in_progress(m); -+ if (m->n_running_jobs > 0) -+ manager_print_jobs_in_progress(m); - - next = now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_PERIOD_USEC; - r = sd_event_source_set_time(source, next); diff --git a/avoid-random-hangs-on-timeouts-due-lost-cwd.patch b/avoid-random-hangs-on-timeouts-due-lost-cwd.patch deleted file mode 100644 index 45208124..00000000 --- a/avoid-random-hangs-on-timeouts-due-lost-cwd.patch +++ /dev/null @@ -1,29 +0,0 @@ -Found this during debugging an other problem. The issue was that -after ``sudo -i'' and a ``cd /usr/lib/systemd/system/'' followed -later by a shutdown may fail with (journalctl -b -1): - - systemd-exit.service: Failed at step CHDIR spawning: /usr/bin/kill - -which then caused the subsequent fault that umounting the users -home directories done by automount are busy. - ---- - units/user/systemd-exit.service.in | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -Index: systemd-221/units/user/systemd-exit.service.in -=================================================================== ---- systemd-221.orig/units/user/systemd-exit.service.in -+++ systemd-221/units/user/systemd-exit.service.in -@@ -10,8 +10,9 @@ Description=Exit the Session - Documentation=man:systemd.special(7) - DefaultDependencies=no - Requires=shutdown.target --After=shutdown.target -+After=shutdown.target multi-user.target - - [Service] - Type=oneshot --ExecStart=@KILL@ -s 58 $MANAGERPID -+WorkingDirectory=/ -+ExecStart=@KILL@ -s SIGRTMIN+24 $MANAGERPID diff --git a/baselibs.conf b/baselibs.conf deleted file mode 100644 index 5df8c49f..00000000 --- a/baselibs.conf +++ /dev/null @@ -1,8 +0,0 @@ -systemd - supplements "packageand(systemd:pam-)" - -/lib/systemd/system/ - post "%{_sbindir}/pam-config -a --systemd || :" -libsystemd0 -libudev1 -nss-myhostname -nss-mymachines diff --git a/boot-local-start.patch b/boot-local-start.patch deleted file mode 100644 index 67576b9f..00000000 --- a/boot-local-start.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- - units/rc-local.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-221/units/rc-local.service.in -=================================================================== ---- systemd-221.orig/units/rc-local.service.in -+++ systemd-221/units/rc-local.service.in -@@ -10,7 +10,7 @@ - [Unit] - Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility - ConditionFileIsExecutable=@RC_LOCAL_SCRIPT_PATH_START@ --After=network.target -+After=basic.target - - [Service] - Type=forking diff --git a/ensure-ask-password-wall-starts-after-getty-tty1.patch b/ensure-ask-password-wall-starts-after-getty-tty1.patch deleted file mode 100644 index eb2fa9a4..00000000 --- a/ensure-ask-password-wall-starts-after-getty-tty1.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Frederic Crozat -Cc: Werner Fink -Date: Wed, 24 Aug 2011 13:02:12 +0000 -Subject: ensure ask-password-wall starts after getty@tty1 - -ensure passphrase is handled before starting getty on tty1. - ---- - units/systemd-ask-password-wall.service.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: systemd-221/units/systemd-ask-password-wall.service.in -=================================================================== ---- systemd-221.orig/units/systemd-ask-password-wall.service.in -+++ systemd-221/units/systemd-ask-password-wall.service.in -@@ -8,7 +8,8 @@ - [Unit] - Description=Forward Password Requests to Wall - Documentation=man:systemd-ask-password-console.service(8) --After=systemd-user-sessions.service -+Wants=getty.target -+After=systemd-user-sessions.service getty.target - - [Service] - ExecStartPre=-@SYSTEMCTL@ stop systemd-ask-password-console.path systemd-ask-password-console.service systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch deleted file mode 100644 index 7771f1c9..00000000 --- a/ensure-shortname-is-set-as-hostname-bnc-820213.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Frederic Crozat -Date: Tue, 28 May 2013 15:17:35 +0200 -Subject: ensure shortname is set as hostname (bnc#820213) - -strip hostname so the domain part isn't set as part of the hostname ---- - src/core/hostname-setup.c | 4 ++++ - 1 file changed, 4 insertions(+) - -Index: systemd-221/src/core/hostname-setup.c -=================================================================== ---- systemd-221.orig/src/core/hostname-setup.c -+++ systemd-221/src/core/hostname-setup.c -@@ -34,6 +34,7 @@ int hostname_setup(void) { - int r; - _cleanup_free_ char *b = NULL; - const char *hn; -+ char *domain; - bool enoent = false; - - r = read_hostname_config("/etc/hostname", &b); -@@ -46,6 +47,9 @@ int hostname_setup(void) { - hn = NULL; - } else - hn = b; -+ /* strip any leftover of a domain name */ -+ if ((domain = strchr(hn, '.')) != NULL) -+ *domain = '\0'; - - if (isempty(hn)) { - /* Don't override the hostname if it is already set diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch deleted file mode 100644 index ded80983..00000000 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Frederic Crozat -Date: Thu, 23 Aug 2012 11:08:25 +0200 -Subject: fix support for boot prefixed initscript (bnc#746506) - ---- - src/systemctl/systemctl.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -Index: systemd-221/src/systemctl/systemctl.c -=================================================================== ---- systemd-221.orig/src/systemctl/systemctl.c -+++ systemd-221/src/systemctl/systemctl.c -@@ -5165,8 +5165,24 @@ static int enable_sysv_units(const char - - p[strlen(p) - strlen(".service")] = 0; - found_sysv = access(p, F_OK) >= 0; -- if (!found_sysv) -+ if (!found_sysv) { -+#ifdef HAVE_SYSV_COMPAT -+ free(p); -+ p = NULL; -+ if (!isempty(arg_root)) -+ asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); -+ else -+ asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -+ if (!p) -+ return -ENOMEM; -+ p[strlen(p) - sizeof(".service") + 1] = 0; -+ found_sysv = access(p, F_OK) >= 0; -+ if (!found_sysv) -+ continue; -+#else - continue; -+#endif -+ } - - if (found_native) - log_info("Synchronizing state of %s with SysV init with %s...", name, argv[0]); diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch deleted file mode 100644 index d7c4477f..00000000 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ /dev/null @@ -1,216 +0,0 @@ -Original-From: Frederic Crozat -Original-Date: Fri, 19 Aug 2011 15:29:49 +0000 -Subject: handle disable_caplock and compose_table and kbd_rate -References: https://bugzilla.opensuse.org/746595 -Last-Editor: Jan Engelhardt -Date: Fri Jun 19 21:36:27 CEST 2015 - ---- - src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 147 insertions(+), 4 deletions(-) - -Index: systemd-228/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-228.orig/src/vconsole/vconsole-setup.c -+++ systemd-228/src/vconsole/vconsole-setup.c -@@ -34,6 +34,8 @@ - #include "alloc-util.h" - #include "fd-util.h" - #include "fileio.h" -+#include "macro.h" -+#include "strv.h" - #include "io-util.h" - #include "locale-util.h" - #include "log.h" -@@ -104,8 +106,10 @@ static int enable_utf8(int fd) { - return r; - } - --static int keyboard_load_and_wait(const char *vc, const char *map, const char *map_toggle, bool utf8) { -- const char *args[8]; -+static int keyboard_load_and_wait(const char *vc, const char *map, -+ const char *map_toggle, bool utf8, bool disable_capslock) -+{ -+ const char *args[9]; - int i = 0, r; - pid_t pid; - -@@ -122,6 +126,8 @@ static int keyboard_load_and_wait(const - args[i++] = map; - if (map_toggle) - args[i++] = map_toggle; -+ if (disable_capslock) -+ args[i++] = "disable.capslock"; - args[i++] = NULL; - - pid = fork(); -@@ -251,11 +257,117 @@ static void font_copy_to_all_vcs(int fd) - } - } - -+#ifdef HAVE_SYSV_COMPAT -+static int compose_load_and_wait(const char *vc, const char *compose_table) -+{ -+ const char *args[1024]; -+ unsigned int i = 0, j = 0; -+ int ret; -+ pid_t pid; -+ char **strv_compose_table = NULL; -+ char *to_free[1024]; -+ -+ if (isempty(compose_table)) -+ /* An empty map means no compose table */ -+ return 1; -+ -+ args[i++] = KBD_LOADKEYS; -+ args[i++] = "-q"; -+ args[i++] = "-C"; -+ args[i++] = vc; -+ -+ strv_compose_table = strv_split(compose_table, WHITESPACE); -+ if (strv_compose_table) { -+ bool compose_loaded = false; -+ bool compose_clear = false; -+ char **name; -+ char *arg; -+ -+ STRV_FOREACH(name, strv_compose_table) { -+ if (streq(*name, "-c") || streq(*name, "clear")) { -+ compose_clear = true; -+ continue; -+ } -+ if (!compose_loaded && compose_clear) -+ args[i++] = "-c"; -+ asprintf(&arg, "compose.%s", *name); -+ compose_loaded = true; -+ args[i++] = to_free[j++] = arg; -+ if (i >= ELEMENTSOF(args) - 1) -+ break; -+ } -+ strv_free(strv_compose_table); -+ } -+ args[i++] = NULL; -+ -+ pid = fork(); -+ if (pid < 0) -+ return log_error_errno(errno, "Failed to fork: %m"); -+ if (pid == 0) { -+ reset_all_signal_handlers(); -+ reset_signal_mask(); -+ execv(args[0], (char **) args); -+ _exit(EXIT_FAILURE); -+ } -+ -+ ret = wait_for_terminate_and_warn(args[0], pid, true); -+ for (i = 0; i < j; ++i) -+ free(to_free[i]); -+ if (ret < 0) -+ return ret; -+ return ret == 0; -+} -+#endif -+ -+static int kbdrate_set_and_wait(const char *vc, const char *kbd_rate, -+ const char *kbd_delay) -+{ -+ const char *args[7]; -+ int i = 0, ret; -+ pid_t pid; -+ -+ if (isempty(kbd_rate) && isempty(kbd_delay)) -+ return 1; -+ -+ args[i++] = "/bin/kbdrate"; -+ if (!isempty(kbd_rate)) { -+ args[i++] = "-r"; -+ args[i++] = kbd_rate; -+ } -+ if (!isempty(kbd_delay)) { -+ args[i++] = "-d"; -+ args[i++] = kbd_delay; -+ } -+ args[i++] = "-s"; -+ args[i++] = NULL; -+ -+ pid = fork(); -+ if (pid < 0) -+ return log_error_errno(errno, "Failed to fork: %m"); -+ if (pid == 0) { -+ reset_all_signal_handlers(); -+ reset_signal_mask(); -+ execv(args[0], (char **) args); -+ _exit(EXIT_FAILURE); -+ } -+ ret = wait_for_terminate_and_warn(args[0], pid, true); -+ if (ret < 0) -+ return ret; -+ return ret == 0; -+} -+ - int main(int argc, char **argv) { - const char *vc; - _cleanup_free_ char - *vc_keymap = NULL, *vc_keymap_toggle = NULL, - *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; -+#ifdef HAVE_SYSV_COMPAT -+ _cleanup_free_ char -+ *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, -+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; -+#endif -+ bool disable_capslock = false; -+ bool comp_ok, rate_ok; - _cleanup_close_ int fd = -1; - bool utf8, font_copy = false, font_ok, keyboard_ok; - int r = EXIT_FAILURE; -@@ -286,6 +398,31 @@ int main(int argc, char **argv) { - - utf8 = is_locale_utf8(); - -+#ifdef HAVE_SYSV_COMPAT -+ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, -+ "KEYTABLE", &vc_keymap, -+ "KBD_DELAY", &vc_kbd_delay, -+ "KBD_RATE", &vc_kbd_rate, -+ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "COMPOSETABLE", &vc_compose_table, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/keyboard: %s", -+ strerror(-r)); -+ -+ r = parse_env_file("/etc/sysconfig/console", NEWLINE, -+ "CONSOLE_FONT", &vc_font, -+ "CONSOLE_SCREENMAP", &vc_font_map, -+ "CONSOLE_UNICODEMAP", &vc_font_unimap, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/console: %s", -+ strerror(-r)); -+ -+ disable_capslock = vc_kbd_disable_caps_lock && -+ strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+#endif /* HAVE_SYSV_COMPAT */ -+ - r = parse_env_file("/etc/vconsole.conf", NEWLINE, - "KEYMAP", &vc_keymap, - "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -317,11 +454,17 @@ int main(int argc, char **argv) { - (void) disable_utf8(fd); - - font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; -- keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8) > 0; -+ keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, -+ utf8, disable_capslock) > 0; -+#ifdef HAVE_SYSV_COMPAT -+ comp_ok = compose_load_and_wait(vc, vc_compose_table); -+ rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay); -+#endif - - /* Only copy the font when we executed setfont successfully */ - if (font_copy && font_ok) - (void) font_copy_to_all_vcs(fd); - -- return font_ok && keyboard_ok ? EXIT_SUCCESS : EXIT_FAILURE; -+ return font_ok && keyboard_ok && comp_ok && rate_ok ? -+ EXIT_SUCCESS : EXIT_FAILURE; - } diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch deleted file mode 100644 index 18fd4f61..00000000 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ /dev/null @@ -1,193 +0,0 @@ -Set NumLock according to /etc/sysconfig/keyboard. - -https://bugzilla.novell.com/show_bug.cgi?id=746595 - -Authors: -Stanislav Brabec -Cristian Rodríguez - ---- - Makefile.am | 13 ++++++++++ - rules/73-seat-numlock.rules | 8 ++++++ - src/login/numlock-on.c | 34 ++++++++++++++++++++++++++ - src/vconsole/vconsole-setup.c | 41 ++++++++++++++++++++++++++++++-- - units/systemd-vconsole-setup.service.in | 2 - - 5 files changed, 95 insertions(+), 3 deletions(-) - -Index: systemd-228/Makefile.am -=================================================================== ---- systemd-228.orig/Makefile.am -+++ systemd-228/Makefile.am -@@ -3825,6 +3825,19 @@ dist_udevrules_DATA += \ - rules/60-persistent-v4l.rules - - # ------------------------------------------------------------------------------ -+numlock_on_SOURCES = \ -+ src/login/numlock-on.c -+ -+numlock_on_CFLAGS = \ -+ $(AM_CFLAGS) -+ -+udevlibexec_PROGRAMS += \ -+ numlock-on -+ -+dist_udevrules_DATA += \ -+ rules/73-seat-numlock.rules -+ -+# ------------------------------------------------------------------------------ - mtd_probe_SOURCES = \ - src/udev/mtd_probe/mtd_probe.c \ - src/udev/mtd_probe/mtd_probe.h \ -Index: systemd-228/rules/73-seat-numlock.rules -=================================================================== ---- /dev/null -+++ systemd-228/rules/73-seat-numlock.rules -@@ -0,0 +1,8 @@ -+# This file is part of SUSE customization of systemd. -+# -+# systemd 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. -+ -+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-228/src/login/numlock-on.c -=================================================================== ---- /dev/null -+++ systemd-228/src/login/numlock-on.c -@@ -0,0 +1,34 @@ -+/* -+ * numlock-on.c: Turn numlock-on -+ * -+ * This file may be freely copied under the terms of the GNU General -+ * Public License (GPL), version 2, or at your option any later -+ * version. -+ -+ * Copyright (C) 2013 Stanislav Brabec, SUSE -+ * -+ * based on setleds.c, which is -+ * Copyright (C) 1994-1999 Andries E. Brouwer -+ */ -+ -+#include -+#include -+#include -+#include -+ -+int -+main(int argc, char **argv) { -+ char flags; -+ -+ if (ioctl(0, KDGKBLED, &flags)) { -+ perror("KDGKBLED"); -+ exit(1); -+ } -+ -+ if (ioctl(0, KDSKBLED, flags | LED_NUM | (LED_NUM << 4))) { -+ perror("KDSKBLED"); -+ exit(1); -+ } -+ -+ exit(0); -+} -Index: systemd-228/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-228.orig/src/vconsole/vconsole-setup.c -+++ systemd-228/src/vconsole/vconsole-setup.c -@@ -36,6 +36,7 @@ - #include "fileio.h" - #include "macro.h" - #include "strv.h" -+#include "fs-util.h" - #include "io-util.h" - #include "locale-util.h" - #include "log.h" -@@ -46,6 +47,10 @@ - #include "util.h" - #include "virt.h" - -+#define BIOS_DATA_AREA 0x400 -+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 -+#define BDA_KSF4_NUMLOCK_MASK 0x02 -+ - static bool is_vconsole(int fd) { - unsigned char data[1]; - -@@ -364,9 +369,10 @@ int main(int argc, char **argv) { - #ifdef HAVE_SYSV_COMPAT - _cleanup_free_ char - *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, -- *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; -+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL, -+ *vc_kbd_numlock = NULL; - #endif -- bool disable_capslock = false; -+ bool disable_capslock = false, numlock = false; - bool comp_ok, rate_ok; - _cleanup_close_ int fd = -1; - bool utf8, font_copy = false, font_ok, keyboard_ok; -@@ -404,6 +410,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -421,6 +428,32 @@ int main(int argc, char **argv) { - - disable_capslock = vc_kbd_disable_caps_lock && - strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); -+#if defined(__i386__) || defined(__x86_64__) -+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { -+ int _cleanup_close_ fdmem; -+ char c; -+ -+ fdmem = open ("/dev/mem", O_RDONLY); -+ if (fdmem < 0) { -+ log_error("Failed to open /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } -+ -+ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { -+ log_error("Failed to seek /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } -+ -+ if (read(fdmem, &c, sizeof(char)) == -1) { -+ log_error("Failed to read /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } -+ -+ if (c & BDA_KSF4_NUMLOCK_MASK) -+ numlock = true; -+ } -+#endif /* x86 */ - #endif /* HAVE_SYSV_COMPAT */ - - r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -456,6 +489,10 @@ int main(int argc, char **argv) { - font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; - keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, - utf8, disable_capslock) > 0; -+ if (numlock) -+ touch("/run/numlock-on"); -+ else -+ unlink("/run/numlock-on"); - #ifdef HAVE_SYSV_COMPAT - comp_ok = compose_load_and_wait(vc, vc_compose_table); - rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay); -Index: systemd-228/units/systemd-vconsole-setup.service.in -=================================================================== ---- systemd-228.orig/units/systemd-vconsole-setup.service.in -+++ systemd-228/units/systemd-vconsole-setup.service.in -@@ -10,7 +10,7 @@ Description=Setup Virtual Console - Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) - DefaultDependencies=no - Conflicts=shutdown.target --Before=sysinit.target shutdown.target -+Before=sysinit.target shutdown.target systemd-udev-trigger.service - ConditionPathExists=/dev/tty0 - - [Service] diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch deleted file mode 100644 index 118f333d..00000000 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ /dev/null @@ -1,72 +0,0 @@ -From: Frederic Crozat -Date: Tue, 4 Dec 2012 16:51:32 +0000 -Subject: handle root_uses_lang value in /etc/sysconfig/language - -handle ROOT_USES_LANG=ctype (boo#792182). ---- - src/core/locale-setup.c | 40 ++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 40 insertions(+) - -Index: systemd-228/src/core/locale-setup.c -=================================================================== ---- systemd-228.orig/src/core/locale-setup.c -+++ systemd-228/src/core/locale-setup.c -@@ -30,11 +30,16 @@ - #include "strv.h" - #include "util.h" - #include "virt.h" -+#include "alloc-util.h" - - int locale_setup(char ***environment) { - char **add; - char *variables[_VARIABLE_LC_MAX] = {}; - int r = 0, i; -+#ifdef HAVE_SYSV_COMPAT -+ char _cleanup_free_ *rc_lang = NULL, *rc_lc_ctype = NULL; -+ char _cleanup_free_ *root_uses_lang = NULL; -+#endif - - if (detect_container() <= 0) { - r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -81,6 +86,41 @@ int locale_setup(char ***environment) { - if (r < 0 && r != -ENOENT) - log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); - } -+#ifdef HAVE_SYSV_COMPAT -+ r = parse_env_file("/etc/sysconfig/language", NEWLINE, -+ "RC_LANG", &rc_lang, -+ "RC_LC_CTYPE", &rc_lc_ctype, -+ "ROOT_USES_LANG", &root_uses_lang, -+ NULL); -+ -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); -+ -+ /* -+ * Use the values of the interactive locale configuration in /etc/sysconfig/language -+ * as fallback if /etc/locale.conf does not exist and no locale was specified on the -+ * kernel's command line. The special case ROOT_USES_LANG=ctype allows to set LC_CTYPE -+ * even if LANG for root is set to e.g. POSIX. But do this only if no LC_CTYPE has been -+ * set in /etc/locale.conf and on the kernel's command line. -+ */ -+ if (root_uses_lang) { -+ if (strcaseeq(root_uses_lang, "yes") && !variables[VARIABLE_LANG]) { -+ variables[VARIABLE_LANG] = rc_lang; -+ rc_lang = NULL; -+ } -+ if (strcaseeq(root_uses_lang, "ctype") && !variables[VARIABLE_LC_CTYPE]) { -+ if (variables[VARIABLE_LANG]) -+ variables[VARIABLE_LC_CTYPE] = strdup(variables[VARIABLE_LANG]); -+ else if (rc_lc_ctype && *rc_lc_ctype) { -+ variables[VARIABLE_LC_CTYPE] = rc_lc_ctype; -+ rc_lc_ctype = NULL; -+ } else if (rc_lang && *rc_lang) { -+ variables[VARIABLE_LC_CTYPE] = rc_lang; -+ rc_lang = NULL; -+ } -+ } -+ } -+#endif - - add = NULL; - for (i = 0; i < _VARIABLE_LC_MAX; i++) { diff --git a/hostname-NULL.patch b/hostname-NULL.patch deleted file mode 100644 index ccd9133c..00000000 --- a/hostname-NULL.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-222/src/core/hostname-setup.c -=================================================================== ---- systemd-222.orig/src/core/hostname-setup.c -+++ systemd-222/src/core/hostname-setup.c -@@ -44,7 +44,7 @@ int hostname_setup(void) { - else - log_warning_errno(r, "Failed to read configured hostname: %m"); - -- hn = NULL; -+ hn = strdup("nohostname.set.site"); - } else - hn = b; - /* strip any leftover of a domain name */ diff --git a/insserv-generator.patch b/insserv-generator.patch deleted file mode 100644 index 833d0d66..00000000 --- a/insserv-generator.patch +++ /dev/null @@ -1,399 +0,0 @@ -From a8cbe79c77836cc2466e3534157864abc98ef3ef Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Fri, 28 Jun 2013 17:54:41 +0200 -Subject: [PATCH] insserv.conf generator - -parse /etc/insserv.conf.dd content and /etc/insserv.conf and generate -systemd unit drop-in files to add dependencies ---- - Makefile.am | 9 - src/insserv-generator/Makefile | 28 ++ - src/insserv-generator/insserv-generator.c | 319 ++++++++++++++++++++++++++++++ - 3 files changed, 355 insertions(+), 1 deletion(-) - create mode 100644 src/insserv-generator/Makefile - create mode 100644 src/insserv-generator/insserv-generator.c - -Index: systemd-228/Makefile.am -=================================================================== ---- systemd-228.orig/Makefile.am -+++ systemd-228/Makefile.am -@@ -626,7 +626,8 @@ nodist_systemunit_DATA += \ - - systemgenerator_PROGRAMS += \ - systemd-sysv-generator \ -- systemd-rc-local-generator -+ systemd-rc-local-generator \ -+ systemd-insserv-generator - endif - - EXTRA_DIST += \ -@@ -2682,6 +2683,12 @@ $(systemd_boot): $(systemd_boot_solib) - endif - endif - -+#------------------------------------------------------------------------------- -+systemd_insserv_generator_SOURCES = \ -+ src/insserv-generator/insserv-generator.c -+ -+systemd_insserv_generator_LDADD = libbasic.la -+ - # ------------------------------------------------------------------------------ - stub_headers = \ - src/boot/efi/util.h \ -Index: systemd-228/src/insserv-generator/Makefile -=================================================================== ---- /dev/null -+++ systemd-228/src/insserv-generator/Makefile -@@ -0,0 +1,28 @@ -+# This file is part of systemd. -+# -+# Copyright 2010 Lennart Poettering -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+# -+# systemd 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 -+# Lesser General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public License -+# along with systemd; If not, see . -+ -+# This file is a dirty trick to simplify compilation from within -+# emacs. This file is not intended to be distributed. So, don't touch -+# it, even better ignore it! -+ -+all: -+ $(MAKE) -C .. -+ -+clean: -+ $(MAKE) -C .. clean -+ -+.PHONY: all clean -Index: systemd-228/src/insserv-generator/insserv-generator.c -=================================================================== ---- /dev/null -+++ systemd-228/src/insserv-generator/insserv-generator.c -@@ -0,0 +1,319 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2012 Lennart Poettering -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+ ***/ -+ -+#include -+#include -+#include -+#include -+ -+#include "mkdir.h" -+#include "log.h" -+#include "fileio.h" -+#include "unit-name.h" -+#include "special.h" -+#include "path-util.h" -+#include "util.h" -+#include "strv.h" -+#include "alloc-util.h" -+#include "string-util.h" -+#include "fd-util.h" -+ -+static const char *arg_dest = "/tmp"; -+ -+static char *sysv_translate_name(const char *name) { -+ char *r; -+ -+ r = new(char, strlen(name) + sizeof(".service")); -+ if (!r) -+ return NULL; -+ -+ if (endswith(name, ".sh")) -+ /* Drop .sh suffix */ -+ strcpy(stpcpy(r, name) - 3, ".service"); -+ if (startswith(name, "boot.")) -+ /* Drop SuSE-style boot. prefix */ -+ strcpy(stpcpy(r, name + 5), ".service"); -+ else -+ /* Normal init script name */ -+ strcpy(stpcpy(r, name), ".service"); -+ -+ return r; -+} -+ -+static int sysv_translate_facility(const char *name, const char *filename, char **_r) { -+ -+ /* We silently ignore the $ prefix here. According to the LSB -+ * spec it simply indicates whether something is a -+ * standardized name or a distribution-specific one. Since we -+ * just follow what already exists and do not introduce new -+ * uses or names we don't care who introduced a new name. */ -+ -+ static const char * const table[] = { -+ /* LSB defined facilities */ -+ "local_fs", NULL, -+ "network", SPECIAL_NETWORK_ONLINE_TARGET, -+ "named", SPECIAL_NSS_LOOKUP_TARGET, -+ "portmap", SPECIAL_RPCBIND_TARGET, -+ "remote_fs", SPECIAL_REMOTE_FS_TARGET, -+ "syslog", NULL, -+ "time", SPECIAL_TIME_SYNC_TARGET, -+ }; -+ -+ unsigned i; -+ char *r; -+ const char *n; -+ int ret; -+ -+ assert(name); -+ assert(_r); -+ -+ n = *name == '$' ? name + 1 : name; -+ -+ for (i = 0; i < ELEMENTSOF(table); i += 2) { -+ -+ if (!streq(table[i], n)) -+ continue; -+ -+ if (!table[i+1]) -+ return 0; -+ -+ r = strdup(table[i+1]); -+ if (!r) -+ return log_oom(); -+ -+ goto finish; -+ } -+ -+ /* If we don't know this name, fallback heuristics to figure -+ * out whether something is a target or a service alias. */ -+ -+ if (*name == '$') { -+ if (!unit_prefix_is_valid(n)) -+ return -EINVAL; -+ -+ /* Facilities starting with $ are most likely targets */ -+ ret = unit_name_build(n, NULL, ".target", &r); -+ if (ret < 0) -+ return ret; -+ } else if (filename && streq(name, filename)) -+ /* Names equaling the file name of the services are redundant */ -+ return 0; -+ else -+ /* Everything else we assume to be normal service names */ -+ r = sysv_translate_name(n); -+ -+ if (!r) -+ return -ENOMEM; -+ -+finish: -+ *_r = r; -+ -+ return 1; -+} -+ -+ -+ -+static int parse_insserv_conf(const char* filename) { -+ _cleanup_fclose_ FILE *f = NULL; -+ int r; -+ -+ if (!(f = fopen(filename, "re"))) { -+ log_debug("Failed to open file %s", filename); -+ r = errno == ENOENT ? 0 : -errno; -+ return r; -+ } -+ -+ while (!feof(f)) { -+ char l[LINE_MAX], *t; -+ _cleanup_strv_free_ char **parsed = NULL; -+ -+ if (!fgets(l, sizeof(l), f)) { -+ if (feof(f)) -+ break; -+ -+ r = -errno; -+ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r)); -+ return -r; -+ } -+ -+ t = strstrip(l); -+ if (*t != '$' && *t != '<') -+ continue; -+ -+ parsed = strv_split(t,WHITESPACE); -+ /* we ignore , not used, equivalent to X-Interactive */ -+ if (parsed && !startswith_no_case (parsed[0], "")) { -+ _cleanup_free_ char *facility = NULL; -+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0 || !facility) -+ continue; -+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { -+ _cleanup_free_ char *unit = NULL; -+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */ -+ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",basename(filename),".conf", NULL); -+ if (!unit) -+ return log_oom(); -+ -+ mkdir_parents_label(unit, 0755); -+ -+ r = write_string_file(unit, -+ "# Automatically generated by systemd-insserv-generator\n\n" -+ "[Unit]\n" -+ "Wants=remote-fs-pre.target\n", -+ WRITE_STRING_FILE_CREATE); -+ if (r) -+ return r; -+ free (facility); -+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); -+ } -+ if (facility && endswith(facility, ".target")) { -+ char *name, **j; -+ FILE *file = NULL; -+ -+ STRV_FOREACH (j, parsed+1) { -+ _cleanup_free_ char *unit = NULL; -+ _cleanup_free_ char *dep = NULL; -+ -+ if (*j[0] == '+') -+ name = *j+1; -+ else -+ name = *j; -+ if (streq(name, "boot.localfs") || -+ streq(name, "boot.crypto")) -+ continue; -+ if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep) -+ continue; -+ -+ unit = strjoin(arg_dest, "/", dep, ".d/50-",basename(filename),"-",parsed[0],".conf", NULL); -+ if (!unit) -+ return log_oom(); -+ -+ mkdir_parents_label(unit, 0755); -+ -+ file = fopen(unit, "wxe"); -+ if (!file) { -+ if (errno == EEXIST) -+ log_error("Failed to create drop-in file %s", unit); -+ else -+ log_error("Failed to create drop-in file %s: %m", unit); -+ return -errno; -+ } -+ -+ fprintf(file, -+ "# Automatically generated by systemd-insserv-generator\n\n" -+ "[Unit]\n" -+ "Wants=%s\n" -+ "Before=%s\n", -+ facility, facility); -+ -+ fflush(file); -+ if (ferror(file)) { -+ log_error("Failed to write unit file %s: %m", unit); -+ return -errno; -+ } -+ fclose(file); -+ -+ if (*j[0] != '+') { -+ free (unit); -+ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",basename(filename),"-",parsed[0],".conf", NULL); -+ if (!unit) -+ return log_oom(); -+ -+ mkdir_parents_label(unit, 0755); -+ -+ file = fopen(unit, "wxe"); -+ if (!file) { -+ if (errno == EEXIST) -+ log_error("Failed to create drop-in file %s, as it already exists", unit); -+ else -+ log_error("Failed to create drop-in file %s: %m", unit); -+ return -errno; -+ } -+ -+ -+ fprintf(file, -+ "# Automatically generated by systemd-insserv-generator\n\n" -+ "[Unit]\n" -+ "SourcePath=%s\n" -+ "Requires=%s\n", -+ filename, dep); -+ fflush(file); -+ if (ferror(file)) { -+ log_error("Failed to write unit file %s: %m", unit); -+ return -errno; -+ } -+ fclose(file); -+ } -+ } -+ } -+ } -+ } -+ return r; -+} -+ -+static int parse_insserv(void) { -+ DIR *d = NULL; -+ struct dirent *de; -+ int r = 0; -+ -+ if (!(d = opendir("/etc/insserv.conf.d/"))) { -+ if (errno != ENOENT) { -+ log_debug("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno)); -+ } -+ } else { -+ -+ while ((de = readdir(d))) { -+ char *path = NULL; -+ if (hidden_file(de->d_name)) -+ continue; -+ -+ path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL); -+ parse_insserv_conf(path); -+ free(path); -+ } -+ closedir (d); -+ } -+ -+ r = parse_insserv_conf("/etc/insserv.conf"); -+ -+ return r; -+} -+ -+int main(int argc, char *argv[]) { -+ int r = 0; -+ -+ if (argc > 1 && argc != 4) { -+ log_error("This program takes three or no arguments."); -+ return EXIT_FAILURE; -+ } -+ -+ if (argc > 1) -+ arg_dest = argv[1]; -+ -+ log_set_target(LOG_TARGET_SAFE); -+ log_parse_environment(); -+ log_open(); -+ -+ umask(0022); -+ -+ r = parse_insserv(); -+ -+ return (r < 0) ? EXIT_FAILURE : EXIT_SUCCESS; -+} diff --git a/journald-advice-about-use-of-memory.patch b/journald-advice-about-use-of-memory.patch deleted file mode 100644 index 46a3e446..00000000 --- a/journald-advice-about-use-of-memory.patch +++ /dev/null @@ -1,138 +0,0 @@ -From: werner@suse.de -Upstream: marked as openSUSE-specific fix originally, but may well - worth be to be sent upstream. - -Original description: - (none) - -Notes [jengelh@inai.de]: -MAP_NONBLOCK is documented (mmap(2) in man-pages-3.69+) to render -MAP_POPULATE ineffective. Why do we have it? -What is the rationale for MAP_STACK? ---- - src/journal/catalog.c | 12 +++++++++++- - src/journal/journal-authenticate.c | 7 +++++-- - src/journal/journald-kmsg.c | 3 ++- - src/journal/mmap-cache.c | 16 +++++++++++++++- - 4 files changed, 33 insertions(+), 5 deletions(-) - -Index: systemd-221/src/journal/catalog.c -=================================================================== ---- systemd-221.orig/src/journal/catalog.c -+++ systemd-221/src/journal/catalog.c -@@ -469,6 +469,10 @@ finish: - - static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) { - const CatalogHeader *h; -+ static const unsigned int advice[] = -+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; -+ unsigned int n; -+ size_t psize; - int fd; - void *p; - struct stat st; -@@ -491,12 +495,18 @@ static int open_mmap(const char *databas - return -EINVAL; - } - -- p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0); -+ psize = PAGE_ALIGN(st.st_size); -+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED | MAP_POPULATE | -+ MAP_NONBLOCK, fd, 0); - if (p == MAP_FAILED) { - safe_close(fd); - return -errno; - } - -+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) -+ if (madvise(p, psize, advice[n]) < 0) -+ log_warning("Failed to give advice about use of memory: %m"); -+ - h = p; - if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 || - le64toh(h->header_size) < sizeof(CatalogHeader) || -Index: systemd-221/src/journal/journal-authenticate.c -=================================================================== ---- systemd-221.orig/src/journal/journal-authenticate.c -+++ systemd-221/src/journal/journal-authenticate.c -@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f - goto finish; - } - -- m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0); -+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, -+ MAP_SHARED | MAP_STACK, fd, 0); - if (m == MAP_FAILED) { - m = NULL; - r = -errno; -@@ -399,7 +400,9 @@ int journal_file_fss_load(JournalFile *f - goto finish; - } - -- f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), -+ PROT_READ | PROT_WRITE, MAP_SHARED | MAP_STACK, -+ fd, 0); - if (f->fss_file == MAP_FAILED) { - f->fss_file = NULL; - r = -errno; -Index: systemd-221/src/journal/journald-kmsg.c -=================================================================== ---- systemd-221.orig/src/journal/journald-kmsg.c -+++ systemd-221/src/journal/journald-kmsg.c -@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s) - return 0; - } - -- p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ p = mmap(NULL, sizeof(uint64_t), PROT_READ | PROT_WRITE, -+ MAP_SHARED | MAP_STACK, fd, 0); - if (p == MAP_FAILED) { - log_error_errno(errno, "Failed to map sequential number file, ignoring: %m"); - return 0; -Index: systemd-221/src/journal/mmap-cache.c -=================================================================== ---- systemd-221.orig/src/journal/mmap-cache.c -+++ systemd-221/src/journal/mmap-cache.c -@@ -466,11 +466,14 @@ static int add_mmap( - struct stat *st, - void **ret) { - -+ static const unsigned int advice[] = -+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; - uint64_t woffset, wsize; - Context *c; - FileDescriptor *f; - Window *w; - void *d; -+ unsigned int n; - int r; - - assert(m); -@@ -509,7 +512,8 @@ static int add_mmap( - } - - for (;;) { -- d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset); -+ d = mmap(NULL, wsize, prot, MAP_SHARED | MAP_POPULATE | -+ MAP_NONBLOCK, fd, woffset); - if (d != MAP_FAILED) - break; - if (errno != ENOMEM) -@@ -522,6 +526,16 @@ static int add_mmap( - return -ENOMEM; - } - -+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) { -+ if (advice[n] == MADV_DONTFORK) { -+ int flags = fcntl(fd, F_GETFD); -+ if (flags < 0 || !(flags & FD_CLOEXEC)) -+ continue; -+ } -+ if (madvise(d, wsize, advice[n]) < 0) -+ log_warning("Failed to give advice about use of memory: %m"); -+ } -+ - c = context_add(m, context); - if (!c) - goto outofmem; diff --git a/kbd-model-map.patch b/kbd-model-map.patch deleted file mode 100644 index f45b0874..00000000 --- a/kbd-model-map.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: werner@suse.de -Date: Tue Jan 20 11:33:59 UTC 2015 - ---- - src/locale/kbd-model-map | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -Index: systemd-221/src/locale/kbd-model-map -=================================================================== ---- systemd-221.orig/src/locale/kbd-model-map -+++ systemd-221/src/locale/kbd-model-map -@@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a - lt.l4 lt pc105 - terminate:ctrl_alt_bksp - lt lt pc105 - terminate:ctrl_alt_bksp - khmer kh,us pc105 - terminate:ctrl_alt_bksp -+# Additional layouts offered by YaST -+Pl02 pl pc105 - terminate:ctrl_alt_bksp -+arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle -+cn-latin1 ca pc105 multix terminate:ctrl_alt_bksp -+cz-lat2-us cz,us pc105 qwerty,basic terminate:ctrl_alt_bksp,grp:shift_toggle -+es-cp850 es pc105 - terminate:ctrl_alt_bksp -+khmer us,kh pc105 - terminate:ctrl_alt_bksp,grp:alt_shift_toggle -+korean kr pc105 - terminate:ctrl_alt_bksp -+lt.baltic lt pc105 - terminate:ctrl_alt_bksp -+lt.std lt pc105 std terminate:ctrl_alt_bksp -+no-latin1 no pc105 - terminate:ctrl_alt_bksp -+ruwin_alt-UTF-8 us,ru pc105 ,winkeys terminate:ctrl_alt_bksp,grp:ctrl_shift_toggle,grp_led:scroll -+sk-qwertz sk,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle diff --git a/let-linker-find-libudev-for-libdevmapper.patch b/let-linker-find-libudev-for-libdevmapper.patch deleted file mode 100644 index 274d103c..00000000 --- a/let-linker-find-libudev-for-libdevmapper.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- - configure.ac | 4 ---- - 1 file changed, 4 deletions(-) - -Index: systemd-224/configure.ac -=================================================================== ---- systemd-224.orig/configure.ac -+++ systemd-224/configure.ac -@@ -199,10 +199,6 @@ AS_CASE([$CC], [*clang*], - -Wno-gnu-variable-sized-type-not-at-end \ - ])]) - --AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], -- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -- -flto])], -- [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) - AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") - - AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], diff --git a/let-vconsole-setup-get-properties-only-once-to-copy-them.patch b/let-vconsole-setup-get-properties-only-once-to-copy-them.patch deleted file mode 100644 index b106fc22..00000000 --- a/let-vconsole-setup-get-properties-only-once-to-copy-them.patch +++ /dev/null @@ -1,84 +0,0 @@ -From: Werner Fink -Date: Wed Sep 23 12:37:23 UTC 2015 -Subject: Do not bother vistual console to much with GIO/PIO - -This avoids broken virtual console mapping due stressed ioctl API -for the virtual consoles (boo#904214) - ---- - src/vconsole/vconsole-setup.c | 39 +++++++++++++++++++++++++-------------- - 1 file changed, 25 insertions(+), 14 deletions(-) - ---- src/vconsole/vconsole-setup.c -+++ src/vconsole/vconsole-setup.c 2015-09-23 12:34:33.854018750 +0000 -@@ -202,8 +202,13 @@ static void font_copy_to_all_vcs(int fd) - unsigned short map16[E_TABSZ]; - struct unimapdesc unimapd; - struct unipair unipairs[USHRT_MAX]; -+ struct console_font_op cfo = {}; - int i, r; - -+ bool hasmap8; -+ bool hasmap16; -+ bool hasunimap; -+ - /* get active, and 16 bit mask of used VT numbers */ - r = ioctl(fd, VT_GETSTATE, &vcs); - if (r < 0) { -@@ -211,10 +216,22 @@ static void font_copy_to_all_vcs(int fd) - return; - } - -+ /* copy font from active VT, where the font was uploaded to */ -+ cfo.op = KD_FONT_OP_COPY; -+ cfo.height = vcs.v_active-1; /* tty1 == index 0 */ -+ -+ hasmap8 = (ioctl(fd, GIO_SCRNMAP, map8) >= 0); -+ hasmap16 = (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0); -+ -+ /* unimapd is a ushort count and a pointer to an -+ * array of struct unipair { ushort, ushort } */ -+ unimapd.entries = unipairs; -+ unimapd.entry_ct = USHRT_MAX; -+ hasunimap = (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0); -+ - for (i = 1; i <= 15; i++) { - char vcname[strlen("/dev/vcs") + DECIMAL_STR_MAX(int)]; - _cleanup_close_ int vcfd = -1; -- struct console_font_op cfo = {}; - - if (i == vcs.v_active) - continue; -@@ -229,25 +246,19 @@ static void font_copy_to_all_vcs(int fd) - if (vcfd < 0) - continue; - -- /* copy font from active VT, where the font was uploaded to */ -- cfo.op = KD_FONT_OP_COPY; -- cfo.height = vcs.v_active-1; /* tty1 == index 0 */ -+ /* copy font from active VT to vcs */ - (void) ioctl(vcfd, KDFONTOP, &cfo); - -- /* copy map of 8bit chars */ -- if (ioctl(fd, GIO_SCRNMAP, map8) >= 0) -+ /* copy map of 8bit chars to vcs */ -+ if (hasmap8) - (void) ioctl(vcfd, PIO_SCRNMAP, map8); - -- /* copy map of 8bit chars -> 16bit Unicode values */ -- if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0) -+ /* copy map of 8bit chars -> 16bit Unicode values to vcs */ -+ if (hasmap16) - (void) ioctl(vcfd, PIO_UNISCRNMAP, map16); - -- /* copy unicode translation table */ -- /* unimapd is a ushort count and a pointer to an -- array of struct unipair { ushort, ushort } */ -- unimapd.entries = unipairs; -- unimapd.entry_ct = USHRT_MAX; -- if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) { -+ /* copy unicode translation table to vcs */ -+ if (hasunimap) { - struct unimapinit adv = { 0, 0, 0 }; - - (void) ioctl(vcfd, PIO_UNIMAPCLR, &adv); diff --git a/libgcrypt.m4 b/libgcrypt.m4 deleted file mode 100644 index b0aeccd2..00000000 --- a/libgcrypt.m4 +++ /dev/null @@ -1,123 +0,0 @@ -dnl Autoconf macros for libgcrypt -dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc. -dnl -dnl This file is free software; as a special exception the author gives -dnl unlimited permission to copy and/or distribute it, with or without -dnl modifications, as long as this notice is preserved. -dnl -dnl This file is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - -dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, -dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) -dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. -dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed -dnl with the API version to also check the API compatibility. Example: -dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed -dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using -dnl this features allows to prevent build against newer versions of libgcrypt -dnl with a changed API. -dnl -AC_DEFUN([AM_PATH_LIBGCRYPT], -[ AC_ARG_WITH(libgcrypt-prefix, - AC_HELP_STRING([--with-libgcrypt-prefix=PFX], - [prefix where LIBGCRYPT is installed (optional)]), - libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") - if test x$libgcrypt_config_prefix != x ; then - if test x${LIBGCRYPT_CONFIG+set} != xset ; then - LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config - fi - fi - - AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) - tmp=ifelse([$1], ,1:1.2.0,$1) - if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then - req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` - min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` - else - req_libgcrypt_api=0 - min_libgcrypt_version="$tmp" - fi - - AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) - ok=no - if test "$LIBGCRYPT_CONFIG" != "no" ; then - req_major=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` - req_minor=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - req_micro=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` - libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` - major=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` - minor=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` - micro=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` - if test "$major" -gt "$req_major"; then - ok=yes - else - if test "$major" -eq "$req_major"; then - if test "$minor" -gt "$req_minor"; then - ok=yes - else - if test "$minor" -eq "$req_minor"; then - if test "$micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi - if test $ok = yes; then - AC_MSG_RESULT([yes ($libgcrypt_config_version)]) - else - AC_MSG_RESULT(no) - fi - if test $ok = yes; then - # If we have a recent libgcrypt, we should also check that the - # API is compatible - if test "$req_libgcrypt_api" -gt 0 ; then - tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` - if test "$tmp" -gt 0 ; then - AC_MSG_CHECKING([LIBGCRYPT API version]) - if test "$req_libgcrypt_api" -eq "$tmp" ; then - AC_MSG_RESULT([okay]) - else - ok=no - AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) - fi - fi - fi - fi - if test $ok = yes; then - LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` - LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` - ifelse([$2], , :, [$2]) - if test x"$host" != x ; then - libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` - if test x"$libgcrypt_config_host" != xnone ; then - if test x"$libgcrypt_config_host" != x"$host" ; then - AC_MSG_WARN([[ -*** -*** The config script $LIBGCRYPT_CONFIG was -*** built for $libgcrypt_config_host and thus may not match the -*** used host $host. -*** You may want to use the configure option --with-libgcrypt-prefix -*** to specify a matching config script. -***]]) - fi - fi - fi - else - LIBGCRYPT_CFLAGS="" - LIBGCRYPT_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(LIBGCRYPT_CFLAGS) - AC_SUBST(LIBGCRYPT_LIBS) -]) diff --git a/macros.systemd.upstream b/macros.systemd.upstream deleted file mode 100644 index 2ba0ff05..00000000 --- a/macros.systemd.upstream +++ /dev/null @@ -1,105 +0,0 @@ -# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */ -# -# This file is part of systemd. -# -# Copyright 2012 Lennart Poettering -# -# systemd is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation; either version 2.1 of the License, or -# (at your option) any later version. -# -# systemd 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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with systemd; If not, see . - -# RPM macros for packages installing systemd unit files - -%_unitdir @systemunitdir@ -%_userunitdir @userunitdir@ -%_presetdir @systempresetdir@ -%_udevhwdbdir @udevhwdbdir@ -%_udevrulesdir @udevrulesdir@ -%_journalcatalogdir @catalogdir@ -%_tmpfilesdir @tmpfilesdir@ -%_sysusersdir @sysusersdir@ -%_sysctldir @sysctldir@ -%_binfmtdir @binfmtdir@ - -%systemd_requires \ -Requires(post): systemd \ -Requires(preun): systemd \ -Requires(postun): systemd \ -%{nil} - -%systemd_post() \ -if [ $1 -eq 1 ] ; then \ - # Initial installation \ - systemctl --no-reload preset %{?*} >/dev/null 2>&1 || : \ -fi \ -%{nil} - -%systemd_user_post() %systemd_post --user --global %{?*} - -%systemd_preun() \ -if [ $1 -eq 0 ] ; then \ - # Package removal, not upgrade \ - systemctl --no-reload disable --now %{?*} > /dev/null 2>&1 || : \ -fi \ -%{nil} - -%systemd_user_preun() \ -if [ $1 -eq 0 ] ; then \ - # Package removal, not upgrade \ - systemctl --no-reload --user --global disable %{?*} > /dev/null 2>&1 || : \ -fi \ -%{nil} - -%systemd_postun() %{nil} - -%systemd_user_postun() %{nil} - -%systemd_postun_with_restart() \ -if [ $1 -ge 1 ] ; then \ - # Package upgrade, not uninstall \ - systemctl try-restart %{?*} >/dev/null 2>&1 || : \ -fi \ -%{nil} - -%systemd_user_postun_with_restart() %{nil} - -%udev_hwdb_update() \ -udevadm hwdb --update >/dev/null 2>&1 || : \ -%{nil} - -%udev_rules_update() \ -udevadm control --reload >/dev/null 2>&1 || : \ -%{nil} - -%journal_catalog_update() \ -journalctl --update-catalog >/dev/null 2>&1 || : \ -%{nil} - -%tmpfiles_create() \ -systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ -%{nil} - -%sysusers_create() \ -systemd-sysusers %{?*} >/dev/null 2>&1 || : \ -%{nil} - -%sysusers_create_inline() \ -echo %{?*} | systemd-sysusers - >/dev/null 2>&1 || : \ -%{nil} - -%sysctl_apply() \ -@rootlibexecdir@/systemd-sysctl %{?*} >/dev/null 2>&1 || : \ -%{nil} - -%binfmt_apply() \ -@rootlibexecdir@/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ -%{nil} diff --git a/make-emergency.service-conflict-with-syslog.socket.patch b/make-emergency.service-conflict-with-syslog.socket.patch deleted file mode 100644 index 808fc9a2..00000000 --- a/make-emergency.service-conflict-with-syslog.socket.patch +++ /dev/null @@ -1,25 +0,0 @@ -If after emergency service had been started there is incoming -traffic on syslog.socket emergency.service gets killed due to -implicit dependencies on basic.target => sysinit.target which in -turn conflict with emergency.target. - -As a workaround explicitly stop syslog.socket when entering -emergency.service. - -Reference: bnc#852232 ---- - units/emergency.service.in | 1 + - 1 file changed, 1 insertion(+) - -Index: systemd-221/units/emergency.service.in -=================================================================== ---- systemd-221.orig/units/emergency.service.in -+++ systemd-221/units/emergency.service.in -@@ -11,6 +11,7 @@ Documentation=man:sulogin(8) - DefaultDependencies=no - Conflicts=shutdown.target - Conflicts=rescue.service -+Conflicts=syslog.socket - Before=shutdown.target - - [Service] diff --git a/nss-myhostname-config b/nss-myhostname-config deleted file mode 100644 index 110db7a2..00000000 --- a/nss-myhostname-config +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# sed calls copied from fedora package -set -e - -case "$1" in - --help) - echo "$0 [--enable|--disable]" - exit 0 - ;; - --enable) - sed -i.bak -e ' - /^hosts:/ !b - /\/ b - s/[[:blank:]]*$/ myhostname/ - ' /etc/nsswitch.conf - ;; - --disable) - sed -i.bak -e ' - /^hosts:/ !b - s/[[:blank:]]\+myhostname\>// - ' /etc/nsswitch.conf - ;; - "") - if grep -q "^hosts:.*\" /etc/nsswitch.conf; then - echo "enabled" - else - echo "disabled" - fi - ;; - *) echo "invalid argument $1"; exit 1 ;; -esac diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch deleted file mode 100644 index cd65edec..00000000 --- a/parse-crypttab-for-noauto-option.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- - src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++- - 1 file changed, 44 insertions(+), 1 deletion(-) - -Index: systemd-221/src/fstab-generator/fstab-generator.c -=================================================================== ---- systemd-221.orig/src/fstab-generator/fstab-generator.c -+++ systemd-221/src/fstab-generator/fstab-generator.c -@@ -47,6 +47,49 @@ static char *arg_usr_what = NULL; - static char *arg_usr_fstype = NULL; - static char *arg_usr_options = NULL; - -+static int check_crypttab(const char *what) { -+ _cleanup_fclose_ FILE *f = NULL; -+ unsigned n = 0; -+ -+ f = fopen("/etc/crypttab", "re"); -+ if (!f) { -+ if (errno != ENOENT) -+ log_error("Failed to open /etc/crypttab: %m"); -+ -+ return 1; -+ } -+ -+ -+ for (;;) { -+ char line[LINE_MAX], *l; -+ _cleanup_free_ char *name = NULL, *device = NULL, *password = NULL, *options = NULL; -+ int k; -+ -+ if (!fgets(line, sizeof(line), f)) -+ break; -+ -+ n++; -+ -+ l = strstrip(line); -+ if (*l == '#' || *l == 0) -+ continue; -+ -+ k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options); -+ if (k < 2 || k > 4) { -+ log_error("Failed to parse /etc/crypttab:%u, ignoring.", n); -+ continue; -+ } -+ -+ if (strcmp((what + 12), name) == 0) { -+ if (options && strstr(options, "noauto")) -+ return 0; -+ -+ return 1; -+ } -+ } -+ return 1; -+} -+ - static int add_swap( - const char *what, - struct mntent *me, -@@ -108,7 +151,7 @@ static int add_swap( - if (r < 0) - return r; - -- if (!noauto) { -+ if (!noauto && check_crypttab(what) != 0) { - lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET, - nofail ? ".wants/" : ".requires/", name, NULL); - if (!lnk) diff --git a/plymouth-quit-and-wait-for-emergency-service.patch b/plymouth-quit-and-wait-for-emergency-service.patch deleted file mode 100644 index 331034ec..00000000 --- a/plymouth-quit-and-wait-for-emergency-service.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- - units/console-shell.service.m4.in | 2 ++ - units/emergency.service.in | 2 +- - units/rescue.service.in | 3 ++- - 3 files changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-224/units/console-shell.service.m4.in -=================================================================== ---- systemd-224.orig/units/console-shell.service.m4.in -+++ systemd-224/units/console-shell.service.m4.in -@@ -17,6 +17,8 @@ Before=getty.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root -+ExecStartPre=-/usr/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth --wait - ExecStart=-@SULOGIN@ - ExecStopPost=-@SYSTEMCTL@ poweroff - Type=idle -Index: systemd-224/units/emergency.service.in -=================================================================== ---- systemd-224.orig/units/emergency.service.in -+++ systemd-224/units/emergency.service.in -@@ -17,7 +17,7 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth --wait quit -+ExecStartPre=-/usr/bin/plymouth --wait quit - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" - Type=idle -Index: systemd-224/units/rescue.service.in -=================================================================== ---- systemd-224.orig/units/rescue.service.in -+++ systemd-224/units/rescue.service.in -@@ -16,7 +16,8 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" - Type=idle diff --git a/portmap-wants-rpcbind-socket.patch b/portmap-wants-rpcbind-socket.patch deleted file mode 100644 index 77fb2871..00000000 --- a/portmap-wants-rpcbind-socket.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- - units/rpcbind.target | 1 + - 1 file changed, 1 insertion(+) - -Index: systemd-221/units/rpcbind.target -=================================================================== ---- systemd-221.orig/units/rpcbind.target -+++ systemd-221/units/rpcbind.target -@@ -12,3 +12,4 @@ - Description=RPC Port Mapper - Documentation=man:systemd.special(7) - RefuseManualStart=yes -+Wants=rpcbind.socket diff --git a/pre_checkin.sh b/pre_checkin.sh deleted file mode 100644 index 80ae3ad6..00000000 --- a/pre_checkin.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# This script is based on libcdio_spec-prepare.sh (thanks to sbrabec@suse.cz) -# create a -mini spec for systemd for bootstrapping - -ORIG_SPEC=systemd -EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n" -sed "s/^%define bootstrap .*$/${EDIT_WARNING}%define bootstrap 1/; - s/^%define mini .*$/${EDIT_WARNING}%define mini -mini/; - s/^\(Name:.*\)$/\1-mini/; - s/^BuildRoot.*/&\n\nProvides: %{real} = %{version}-%{release}\n/ - " < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec -cp ${ORIG_SPEC}.changes ${ORIG_SPEC}-mini.changes -cp ${ORIG_SPEC}-rpmlintrc ${ORIG_SPEC}-mini-rpmlintrc - -osc service localrun format_spec_file diff --git a/rescue-emergency-target-conflicts.patch b/rescue-emergency-target-conflicts.patch deleted file mode 100644 index a02e7ed3..00000000 --- a/rescue-emergency-target-conflicts.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- - units/emergency.target | 1 + - units/rescue.target | 3 ++- - 2 files changed, 3 insertions(+), 1 deletion(-) - -Index: systemd-221/units/emergency.target -=================================================================== ---- systemd-221.orig/units/emergency.target -+++ systemd-221/units/emergency.target -@@ -10,4 +10,5 @@ Description=Emergency Mode - Documentation=man:systemd.special(7) - Requires=emergency.service - After=emergency.service -+Conflicts=getty.target rescue.target - AllowIsolate=yes -Index: systemd-221/units/rescue.target -=================================================================== ---- systemd-221.orig/units/rescue.target -+++ systemd-221/units/rescue.target -@@ -10,7 +10,8 @@ Description=Rescue Mode - Documentation=man:systemd.special(7) - Requires=sysinit.target rescue.service - After=sysinit.target rescue.service --Conflicts=getty.target -+Conflicts=getty.target emergency.target -+Before=emergency.target - AllowIsolate=yes - - [Install] diff --git a/respect-nfs-bg-option.patch b/respect-nfs-bg-option.patch deleted file mode 100644 index a4a4ba65..00000000 --- a/respect-nfs-bg-option.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- - src/fstab-generator/fstab-generator.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-221/src/fstab-generator/fstab-generator.c -=================================================================== ---- systemd-221.orig/src/fstab-generator/fstab-generator.c -+++ systemd-221/src/fstab-generator/fstab-generator.c -@@ -289,8 +289,11 @@ static int add_mount( - "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", - source); - -- if (post && !noauto && !nofail && !automount) -- fprintf(f, "Before=%s\n", post); -+ if (post && !noauto && !nofail && !automount) { -+ bool is_nfs = fstype != NULL && streq(fstype, "nfs"); -+ if (!is_nfs || strstr(opts, "bg") == NULL) -+ fprintf(f, "Before=%s\n", post); -+ } - - if (!automount && opts) { - r = write_requires_after(f, opts); diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch deleted file mode 100644 index 37147945..00000000 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ /dev/null @@ -1,87 +0,0 @@ -From: Frederic Crozat -Date: Mon, 29 Oct 2012 13:01:20 +0000 -Subject: restore /var/run and /var/lock bind mount if they aren't symlink - ---- - Makefile.am | 9 +++++++++ - units/var-lock.mount | 19 +++++++++++++++++++ - units/var-run.mount | 19 +++++++++++++++++++ - 3 files changed, 47 insertions(+) - create mode 100644 units/var-lock.mount - create mode 100644 units/var-run.mount - -Index: systemd-221/Makefile.am -=================================================================== ---- systemd-221.orig/Makefile.am -+++ systemd-221/Makefile.am -@@ -526,6 +526,12 @@ dist_systemunit_DATA += \ - dist_systemunit_DATA_busnames += \ - units/busnames.target - -+if HAVE_SYSV_COMPAT -+dist_systemunit_DATA += \ -+ units/var-run.mount \ -+ units/var-lock.mount -+endif -+ - nodist_systemunit_DATA = \ - units/getty@.service \ - units/serial-getty@.service \ -@@ -6123,6 +6129,9 @@ GRAPHICAL_TARGET_WANTS += \ - systemd-update-utmp-runlevel.service - RESCUE_TARGET_WANTS += \ - systemd-update-utmp-runlevel.service -+LOCAL_FS_TARGET_WANTS += \ -+ var-run.mount \ -+ var-lock.mount - endif - - SYSINIT_TARGET_WANTS += \ -Index: systemd-221/units/var-lock.mount -=================================================================== ---- /dev/null -+++ systemd-221/units/var-lock.mount -@@ -0,0 +1,19 @@ -+# This file is part of systemd. -+# -+# systemd 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. -+ -+[Unit] -+Description=Lock Directory -+Before=local-fs.target -+# skip mounting if the directory does not exist or is a symlink -+ConditionPathIsDirectory=/var/lock -+ConditionPathIsSymbolicLink=!/var/lock -+ -+[Mount] -+What=/run/lock -+Where=/var/lock -+Type=bind -+Options=bind -Index: systemd-221/units/var-run.mount -=================================================================== ---- /dev/null -+++ systemd-221/units/var-run.mount -@@ -0,0 +1,19 @@ -+# This file is part of systemd. -+# -+# systemd 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. -+ -+[Unit] -+Description=Runtime Directory -+Before=local-fs.target -+# skip mounting if the directory does not exist or is a symlink -+ConditionPathIsDirectory=/var/run -+ConditionPathIsSymbolicLink=!/var/run -+ -+[Mount] -+What=/run -+Where=/var/run -+Type=bind -+Options=bind diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch deleted file mode 100644 index e6474d8d..00000000 --- a/set-and-use-default-logconsole.patch +++ /dev/null @@ -1,175 +0,0 @@ -Use and set default logging console for both journald and kernel messages - ---- - src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++ - src/journal/journald-console.h | 3 + - src/journal/journald-server.c | 5 ++ - 3 files changed, 108 insertions(+) - -Index: systemd-228/src/journal/journald-console.c -=================================================================== ---- systemd-228.orig/src/journal/journald-console.c -+++ systemd-228/src/journal/journald-console.c -@@ -22,6 +22,14 @@ - #include - #include - #include -+#ifdef HAVE_SYSV_COMPAT -+# include -+# include -+# include -+# include -+# include -+# include "string-util.h" -+#endif - - #include "alloc-util.h" - #include "fd-util.h" -@@ -50,6 +58,76 @@ static bool prefix_timestamp(void) { - return cached_printk_time; - } - -+void default_tty_path(Server *s) -+{ -+#ifdef HAVE_SYSV_COMPAT -+ static const char list[] = "/dev/tty10\0" "/dev/console\0"; -+ const char *vc; -+ -+ if (s->tty_path) -+ return; -+ -+ NULSTR_FOREACH(vc, list) { -+ _cleanup_close_ int fd = -1; -+ -+ if (access(vc, F_OK) < 0) -+ continue; -+ -+ fd = open_terminal(vc, O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ if (fd < 0) -+ continue; -+ -+ s->tty_path = strdup(vc); -+ break; -+ } -+#endif -+} -+ -+void klogconsole(Server *s) -+{ -+#ifdef HAVE_SYSV_COMPAT -+ _cleanup_free_ char *klogconsole_params = NULL; -+ _cleanup_close_ int fd = -1; -+ const char *vc = s->tty_path; -+ const char *num; -+ int tiocl[2]; -+ int r; -+ -+ if (!vc || *vc == 0 || !strneq("/dev/tty", vc, 8)) -+ return; -+ -+ num = vc + strcspn(vc, "0123456789"); -+ if (safe_atoi(num, &r) < 0) -+ return; -+ -+ if (access(vc, F_OK) < 0) -+ return; -+ -+ fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC); -+ if (fd < 0) -+ return; -+ -+ tiocl[0] = TIOCL_SETKMSGREDIRECT; -+ tiocl[1] = r; -+ -+ if (ioctl(fd, TIOCLINUX, tiocl) < 0) -+ return; -+ -+ zero(klogconsole_params); -+ r = parse_env_file("/etc/sysconfig/boot", NEWLINE, -+ "KLOGCONSOLE_PARAMS", &klogconsole_params, -+ NULL); -+ if (r < 0) -+ return; -+ if (!klogconsole_params || *klogconsole_params == 0) -+ return; -+ -+ num = klogconsole_params + strcspn(klogconsole_params, "0123456789"); -+ if (safe_atoi(num, &r) == 0) -+ klogctl(8, 0, r); -+#endif -+} -+ - void server_forward_console( - Server *s, - int priority, -@@ -71,6 +149,12 @@ void server_forward_console( - if (LOG_PRI(priority) > s->max_level_console) - return; - -+#ifdef HAVE_SYSV_COMPAT -+ /* Do not write security/authorization (private) messages to console */ -+ if ((priority & LOG_FACMASK) == LOG_AUTHPRIV) -+ return; -+#endif -+ - /* First: timestamp */ - if (prefix_timestamp()) { - assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -107,7 +191,23 @@ void server_forward_console( - fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); - if (fd < 0) { - log_debug_errno(fd, "Failed to open %s for logging: %m", tty); -+#ifdef HAVE_SYSV_COMPAT -+ if (fd != -ENOENT && fd != -ENODEV) -+ return; -+ if (tty != s->tty_path) -+ return; -+ if (!streq("/dev/console", tty)) { -+ if (s->tty_path) -+ free(s->tty_path); -+ s->tty_path = NULL; -+ tty = "/dev/console"; -+ fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ if (fd < 0) -+ return; -+ } -+#else - return; -+#endif - } - - if (writev(fd, iovec, n) < 0) -Index: systemd-228/src/journal/journald-console.h -=================================================================== ---- systemd-228.orig/src/journal/journald-console.h -+++ systemd-228/src/journal/journald-console.h -@@ -24,3 +24,6 @@ - #include "journald-server.h" - - void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred); -+ -+void klogconsole(Server *s); -+void default_tty_path(Server *s); -Index: systemd-228/src/journal/journald-server.c -=================================================================== ---- systemd-228.orig/src/journal/journald-server.c -+++ systemd-228/src/journal/journald-server.c -@@ -55,6 +55,7 @@ - #include "journald-audit.h" - #include "journald-kmsg.h" - #include "journald-native.h" -+#include "journald-console.h" - #include "journald-rate-limit.h" - #include "journald-server.h" - #include "journald-stream.h" -@@ -1751,6 +1752,10 @@ int server_init(Server *s) { - - server_parse_config_file(s); - server_parse_proc_cmdline(s); -+ default_tty_path(s); -+ -+ if (s->tty_path) -+ klogconsole(s); - - if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { - log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0", diff --git a/shut-up-rpmlint-on-var-log-journal.patch b/shut-up-rpmlint-on-var-log-journal.patch deleted file mode 100644 index d7ffac19..00000000 --- a/shut-up-rpmlint-on-var-log-journal.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- - Makefile.am | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -Index: systemd-221/Makefile.am -=================================================================== ---- systemd-221.orig/Makefile.am -+++ systemd-221/Makefile.am -@@ -4129,11 +4129,11 @@ noinst_LTLIBRARIES += \ - libjournal-core.la - - journal-install-hook: -- -$(MKDIR_P) $(DESTDIR)/var/log/journal -- -chown 0:0 $(DESTDIR)/var/log/journal -- -chmod 755 $(DESTDIR)/var/log/journal -- -setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/ -- -setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ -+ -$(MKDIR_P) $(DESTDIR)/var/log/journal/ -+ -@echo chown 0:0 $(DESTDIR)/var/log/journal/ -+ -chmod 755 $(DESTDIR)/var/log/journal/ -+ -@echo setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/ -+ -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ - - journal-uninstall-hook: - -rmdir $(DESTDIR)/var/log/journal/remote diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff deleted file mode 100644 index ce772aac..00000000 --- a/suse-sysv-bootd-support.diff +++ /dev/null @@ -1,80 +0,0 @@ -From: Frederic Crozat -Date: Fri, 12 Apr 2013 16:56:26 +0200 -Subject: Revert "service: drop support for SysV scripts for the early boot" - -This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. - -[Implementation note: currently, the unit is generated, but not -activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] ---- - src/sysv-generator/sysv-generator.c | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) - -Index: systemd-228/src/sysv-generator/sysv-generator.c -=================================================================== ---- systemd-228.orig/src/sysv-generator/sysv-generator.c -+++ systemd-228/src/sysv-generator/sysv-generator.c -@@ -46,7 +46,8 @@ - - typedef enum RunlevelType { - RUNLEVEL_UP, -- RUNLEVEL_DOWN -+ RUNLEVEL_DOWN, -+ RUNLEVEL_SYSINIT, - } RunlevelType; - - static const struct { -@@ -54,6 +55,9 @@ static const struct { - const char *target; - const RunlevelType type; - } rcnd_table[] = { -+ /* SUSE style boot.d */ -+ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, -+ - /* Standard SysV runlevels for start-up */ - { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, - { "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP }, -@@ -69,10 +73,10 @@ static const struct { - directories in this order, and we want to make sure that - sysv_start_priority is known when we first load the - unit. And that value we only know from S links. Hence -- UP must be read before DOWN */ -+ UP/SYSINIT must be read before DOWN */ - }; - --const char *arg_dest = "/tmp"; -+static const char *arg_dest = "/tmp"; - - typedef struct SysvStub { - char *name; -@@ -261,6 +265,10 @@ static char *sysv_translate_name(const c - _cleanup_free_ char *c = NULL; - char *res; - -+ if (startswith(name, "boot.")) -+ /* Drop SuSE-style boot. prefix */ -+ name += 5; -+ - c = strdup(name); - if (!c) - return NULL; -@@ -882,7 +890,8 @@ static int set_dependencies_from_rcnd(co - - if (de->d_name[0] == 'S') { - -- if (rcnd_table[i].type == RUNLEVEL_UP) -+ if (rcnd_table[i].type == RUNLEVEL_UP || -+ rcnd_table[i].type == RUNLEVEL_SYSINIT) - service->sysv_start_priority = MAX(a*10 + b, service->sysv_start_priority); - - r = set_ensure_allocated(&runlevel_services[i], NULL); -@@ -898,7 +907,8 @@ static int set_dependencies_from_rcnd(co - } - - } else if (de->d_name[0] == 'K' && -- (rcnd_table[i].type == RUNLEVEL_DOWN)) { -+ (rcnd_table[i].type == RUNLEVEL_DOWN || -+ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { - - r = set_ensure_allocated(&shutdown_services, NULL); - if (r < 0) { diff --git a/systemctl-set-default-target.patch b/systemctl-set-default-target.patch deleted file mode 100644 index de694a4b..00000000 --- a/systemctl-set-default-target.patch +++ /dev/null @@ -1,30 +0,0 @@ -Mention that --force is required to override an already existing default.target - -This solves the bug bnc#868439 - ---- - man/systemctl.xml | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -Index: systemd-221/man/systemctl.xml -=================================================================== ---- systemd-221.orig/man/systemctl.xml -+++ systemd-221/man/systemctl.xml -@@ -439,7 +439,7 @@ - - - -- When used with enable, overwrite -+ When used with enable or set-default, overwrite - any existing conflicting symlinks. - - When used with halt, -@@ -1237,6 +1237,8 @@ kobject-uevent 1 systemd-udevd-kernel.so - Return the default target to boot into. This returns - the target unit name default.target - is aliased (symlinked) to. -+ If combined with , override -+ an already existing symlink for the default target. - - - diff --git a/systemd-4.tar.bz2 b/systemd-4.tar.bz2 new file mode 100644 index 00000000..33cb8239 --- /dev/null +++ b/systemd-4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d569a0624d7ce409cd76ace49d2d853f9e030674e24ea585427b9079f10ba5ba +size 637332 diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch deleted file mode 100644 index bc7985dc..00000000 --- a/systemd-add-user-keep.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- - man/tmpfiles.d.xml | 3 +++ - src/tmpfiles/tmpfiles.c | 46 ++++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 43 insertions(+), 6 deletions(-) - -Index: systemd-228/man/tmpfiles.d.xml -=================================================================== ---- systemd-228.orig/man/tmpfiles.d.xml -+++ systemd-228/man/tmpfiles.d.xml -@@ -599,6 +599,9 @@ - f, F, and - w, the argument may be used to specify a short string that - is written to the file, suffixed by a newline. For -+ x, X, a comma separated list of -+ usernames. If given, only paths belonging to these users will be excluded -+ during directory cleanup. Ignored for all other lines. For - C, specifies the source file or - directory. For t and T, - determines extended attributes to be set. For -Index: systemd-228/src/tmpfiles/tmpfiles.c -=================================================================== ---- systemd-228.orig/src/tmpfiles/tmpfiles.c -+++ systemd-228/src/tmpfiles/tmpfiles.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - - #include "acl-util.h" - #include "alloc-util.h" -@@ -378,6 +379,7 @@ static int dir_cleanup( - struct timespec times[2]; - bool deleted = false; - int r = 0; -+ Item *found = NULL; - - while ((dent = readdir(d))) { - struct stat s; -@@ -428,14 +430,46 @@ static int dir_cleanup( - } - - /* Is there an item configured for this path? */ -- if (ordered_hashmap_get(items, sub_path)) { -- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); -- continue; -+ bool found_glob = false; -+ found = ordered_hashmap_get(items, sub_path); -+ if (!found) { -+ found_glob = true; -+ found = find_glob(globs, sub_path); - } - -- if (find_glob(globs, sub_path)) { -- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); -- continue; -+ if (found) { -+ struct passwd *pw; -+ char *userfound = NULL, *args; -+ bool match = false; -+ uid_t uid = -1; -+ -+ /* evaluate username arguments in ignore statements */ -+ if ((found->type != IGNORE_PATH && found->type != IGNORE_DIRECTORY_PATH) || -+ !found->argument) { -+ if (found_glob) -+ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); -+ else -+ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); -+ continue; -+ } -+ args = strdup(found->argument); -+ assert_se(args != NULL); -+ while ((userfound = strsep(&args, ",")) != NULL) { -+ pw = getpwnam(userfound); -+ if (pw == NULL) { -+ log_error("Unknown user '%s' in ignore statement.", userfound); -+ continue; -+ } -+ uid = pw->pw_uid; -+ if (s.st_uid == uid) { -+ match = true; -+ break; -+ } -+ } -+ if (match) { -+ found = NULL; -+ continue; -+ } - } - - if (S_ISDIR(s.st_mode)) { diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch deleted file mode 100644 index 60b98265..00000000 --- a/systemd-dbus-system-bus-address.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- - src/basic/def.h | 2 +- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -Index: systemd-221/src/basic/def.h -=================================================================== ---- systemd-221.orig/src/basic/def.h -+++ systemd-221/src/basic/def.h -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus" - #define DEFAULT_SYSTEM_BUS_ADDRESS KERNEL_SYSTEM_BUS_ADDRESS ";" UNIX_SYSTEM_BUS_ADDRESS - #define UNIX_USER_BUS_ADDRESS_FMT "unix:path=%s/bus" -Index: systemd-221/src/libsystemd/sd-bus/sd-bus.c -=================================================================== ---- systemd-221.orig/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-221/src/libsystemd/sd-bus/sd-bus.c -@@ -837,8 +837,8 @@ static int parse_container_unix_address( - b->nspid = 0; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); -+ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); - - return 0; - } diff --git a/systemd-install-compat_pkgconfig-always.patch b/systemd-install-compat_pkgconfig-always.patch deleted file mode 100644 index 57fb6129..00000000 --- a/systemd-install-compat_pkgconfig-always.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- - Makefile.am | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -Index: systemd-221/Makefile.am -=================================================================== ---- systemd-221.orig/Makefile.am -+++ systemd-221/Makefile.am -@@ -5876,12 +5876,6 @@ lib_LTLIBRARIES += \ - libsystemd-id128.la \ - libsystemd-daemon.la - --pkgconfiglib_DATA += \ -- src/compat-libs/libsystemd-journal.pc \ -- src/compat-libs/libsystemd-login.pc \ -- src/compat-libs/libsystemd-id128.pc \ -- src/compat-libs/libsystemd-daemon.pc -- - # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed - compat-lib-install-hook: - libname=libsystemd-login.so && $(move-to-rootlibdir) -@@ -5899,6 +5893,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install - UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook - endif - -+pkgconfiglib_DATA += \ -+ src/compat-libs/libsystemd-journal.pc \ -+ src/compat-libs/libsystemd-login.pc \ -+ src/compat-libs/libsystemd-id128.pc \ -+ src/compat-libs/libsystemd-daemon.pc -+ - EXTRA_DIST += \ - src/compat-libs/linkwarning.h \ - src/compat-libs/libsystemd-journal.pc.in \ diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc deleted file mode 100644 index a9e12af8..00000000 --- a/systemd-mini-rpmlintrc +++ /dev/null @@ -1,29 +0,0 @@ -addFilter("invalid-pkgconfig-file") -addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") -addFilter(".*dangling-symlink .* /dev/null.*") -addFilter(".*files-duplicate .*/reboot\.8.*") -addFilter(".*files-duplicate .*/sd_is_socket\.3.*") -addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh") -addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd") -addFilter(".*dbus-policy-allow-receive") -addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*") -addFilter(".*dangling-symlink /lib/udev/devices/core.*") -addFilter(".*dangling-symlink /lib/udev/devices/fd.*") -addFilter(".*incoherent-init-script-name boot\.udev.*") -addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev") -addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev") -addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") -addFilter(".*libgudev-.*shlib-fixed-dependency.*") -addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") -addFilter("libudev-mini.*shlib-policy-name-error.*") -addFilter("nss-myhostname.*shlib-policy-name-error.*") -addFilter("nss-mymachines.*shlib-policy-name-error.*") -addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") -addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") -addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") -addFilter(".*files-duplicate.*/systemd-logger.*") -addFilter(".*missing-call-to-setgroups-before-setuid.*") -addFilter(".*missing-call-to-chdir-with-chroot.*") -addFilter(".*systemd-service-without-service.*") -addFilter(".*shlib-policy-missing-suffix.*") -addFilter(".*suse-missing-rclink.*") diff --git a/systemd-mini.changes b/systemd-mini.changes deleted file mode 100644 index a7adef16..00000000 --- a/systemd-mini.changes +++ /dev/null @@ -1,7278 +0,0 @@ -------------------------------------------------------------------- -Mon Dec 21 16:25:44 UTC 2015 - fbui@suse.com - -- Make sure we don't use tmpfs on /tmp by default (bsc#940522) - -------------------------------------------------------------------- -Mon Dec 21 10:07:38 UTC 2015 - jengelh@inai.de - -- Avoid enabling readahead services; they have been removed. -- In %install, only process kbd-model-map.xkb-generated if it - exists. Resolves a build failure in 13.2/42.1. - -------------------------------------------------------------------- -Mon Nov 30 13:59:52 UTC 2015 - thomas.blume@suse.com - -- fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) - Add 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch - -------------------------------------------------------------------- -Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 228 -* The various memory-related resource limit settings (such as - LimitAS=) now understand the usual K, M, G, ... suffixes to - the base of 1024 (IEC). Similar, the time-related settings - understand the usual min, h, day, ... suffixes now. -* CPUAffinity= now takes CPU index ranges in addition to just - individual indexes. -* A number of properties previously only settable in unit - files are now also available as properties to set when - creating transient units programmatically via the bus. -- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch - (merged upstream) - -------------------------------------------------------------------- -Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru - -- Update to 227. -- Rebase systemd-pam_config.patch, - handle-root_uses_lang-value-in-etc-sysconfig-language.patch, - 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch, - 0014-journald-with-journaling-FS.patch, - 0019-make-completion-smart-to-be-able-to-redirect.patch, - avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch, - set-and-use-default-logconsole.patch, - tty-ask-password-agent-on-console.patch, - 0001-bnc888612-logind-polkit-acpi.patch, - watch_resolv.conf_for_become_changed.patch, - 1097-udevd-increase-maximum-number-of-children.patch. -- Remove - 0002-units-enable-waiting-for-unit-termination-in-certain.patch, - 1001-re-enable-by_path-links-for-ata-devices.patch, - rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch: - fixed upstream. - -------------------------------------------------------------------- -Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de - -- Modify patch handle-root_uses_lang-value-in-etc-sysconfig-language.patch - to handle locale at boot time well (boo#927250) -- Be able to use build service environments several times - -------------------------------------------------------------------- -Tue Nov 10 18:06:43 UTC 2015 - schwab@suse.de - -- 1096-new-udev-root-symlink-generator.patch: fix substitution in - ExecStart value - -------------------------------------------------------------------- -Wed Oct 21 20:18:58 UTC 2015 - dmueller@suse.com - -- enable seccomp for aarch64 (fate#318444) - -------------------------------------------------------------------- -Thu Oct 15 14:12:44 UTC 2015 - fbui@suse.com - -- Fix again UEFI for mini package - -------------------------------------------------------------------- -Thu Oct 15 09:07:51 UTC 2015 - jengelh@inai.de - -- Drop one more undesirable Obsoletes/Provides. This should have - been a Conflicts. (There was already a Conflicts, and since - Conflicts go both ways, we won't need a second one.) - -------------------------------------------------------------------- -Thu Oct 15 08:19:00 UTC 2015 - werner@suse.de - -- No UEFI for systemd-mini - -------------------------------------------------------------------- -Mon Oct 12 11:34:13 UTC 2015 - fbui@suse.com - -- Add 2 upstream patches to fix boo#949574 and bsc#932284 - 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch - 0002-units-enable-waiting-for-unit-termination-in-certain.patch - -------------------------------------------------------------------- -Fri Oct 9 18:03:02 UTC 2015 - fbui@suse.com - -- Disable systemd-boot on aarch64 since it fails to build. - Error while compiling src/boot/efi/util.o is: - usr/include/efi/aarch64/efibind.h:2:20: fatal error: stdint.h: No such file or directory - -------------------------------------------------------------------- -Fri Oct 9 07:16:45 UTC 2015 - fbui@suse.com - -- Fix UEFI detection logic: basically we let configure.ac figure out - if UEFI is supported by the current build environment. No need to - clutter the spec file with a new conditionnal %has_efi. - -- Provide systemd-bootx64.efi (aka gummiboot) - -------------------------------------------------------------------- -Tue Oct 6 15:13:04 UTC 2015 - werner@suse.de - -- Modify patch tty-ask-password-agent-on-console.patch to reflect - the changes done for pull request 1432 - -------------------------------------------------------------------- -Thu Oct 1 15:58:32 UTC 2015 - jengelh@inai.de - -- Undo Obsoletes/Provides (from Aug 11), creates too big a cycle. -- Provide systemd-sysv-install program/link [bnc#948353] - -------------------------------------------------------------------- -Fri Sep 25 14:20:41 UTC 2015 - werner@suse.de - -- Fix patch tty-ask-password-agent-on-console.patch not to crash - away but enable it to ask on all devices of /dev/console - -------------------------------------------------------------------- -Wed Sep 23 14:19:32 UTC 2015 - jengelh@inai.de - -- Avoid "file not found /etc/udev/rules.d/70-persistent-net.rules" - waring occurring in %post - -------------------------------------------------------------------- -Wed Sep 23 12:41:19 UTC 2015 - werner@suse.de - -- Add patch let-vconsole-setup-get-properties-only-once-to-copy-them.patch - to avoid broken virtual console mapping due stressed ioctl API - for the virtual consoles (boo#904214) - -------------------------------------------------------------------- -Mon Sep 7 12:21:06 UTC 2015 - werner@suse.de - -- Fix last change that is use the new name for udev packages in %pretrans. - -------------------------------------------------------------------- -Mon Sep 7 11:50:21 UTC 2015 - fbui@suse.com - -- restore usage of LUA in %pretrans. - -------------------------------------------------------------------- -Mon Sep 7 08:09:05 UTC 2015 - werner@suse.de - -- Try to generate the systemd users and groups always in same order - to avoid republish other packages (boo#944660) - -------------------------------------------------------------------- -Fri Aug 21 07:49:33 UTC 2015 - fbui@suse.com - -- cleanup specfile by removing commands that were dealing with systemd - pre-generated files: we're now using systemd tarball generated directly - from the git repo which doesn't contain any of these files. -- there's no point in using LUA in %pretrans - -------------------------------------------------------------------- -Wed Aug 19 09:34:41 UTC 2015 - fbui@suse.com - -- Drop 0009-make-xsltproc-use-correct-ROFF-links.patch - -This patch was initialy added to workaround bsc#842844. But it -appears that man(1) was fixed (included since 13.2 at least) to -handle manual pages that consist only of a .so directive such as -'.so '. - -------------------------------------------------------------------- -Thu Aug 13 11:46:12 UTC 2015 - werner@suse.de - -- Change use-rndaddentropy-ioctl-to-load-random-seed.patch to - make it work on big endian - -------------------------------------------------------------------- -Tue Aug 11 09:48:26 UTC 2015 - jengelh@inai.de - -- Use Obsolete/Provides strategy from - windows:mingw:mingw64/mingw64-cross-gcc to do the bootstrap - cycle and kick out -mini afterwards. - -------------------------------------------------------------------- -Tue Aug 11 05:15:09 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 224 -* systemd-networkd gained a number of new configuration options - for DHCP, tunnels and bridges -* systemd-efi-boot-generator functionality was merged into - systemd-gpt-auto-generator. - -------------------------------------------------------------------- -Mon Aug 10 13:16:54 UTC 2015 - sndirsch@suse.com - -- /usr/share/systemd/kbd-model-map: added entries for - xkeyboard-config converted keymaps; mappings, which already - exist in original systemd mapping table are being ignored - though, i.e. not overwritten; needs kbd in buildrequires - (FATE#318426) - -------------------------------------------------------------------- -Wed Jul 29 18:10:53 UTC 2015 - meissner@suse.com - -- hostname-NULL.patch: Work around a crash on XEN hosts - in OBS. /etc/hostname is not present and systemd then does - strchr(hostname,soemthing) with hostname NULL. - -------------------------------------------------------------------- -Wed Jul 29 09:02:21 UTC 2015 - werner@suse.de - -- Add Correct_assert_on_unexpected_error_code.patch to work around - a problem of an assert on ENODEV for closing fd on an input - event device (boo#939571) - -------------------------------------------------------------------- -Mon Jul 13 15:31:46 UTC 2015 - jengelh@inai.de - -- Remove udev-generate-rules.sh, apparently not used by anything in - the systemd nor udev-persistent-ifnames package. - -------------------------------------------------------------------- -Wed Jul 8 20:44:57 UTC 2015 - crrodriguez@opensuse.org - -- Systemd v222, bugfix release. -- Drop upstream patches -0006-pam_systemd-Properly-check-kdbus-availability.patch -0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch -0031-install-fix-bad-memory-access.patch -1032-ata_id-unbotch-format-specifier.patch -- Drop SUSE patch 1013-no-runtime-PM-for-IBM-consoles.patch - udev does no longer enable USB HID power management at all. -- The udev accelerometer helper was removed, obsoleted by - iio-sensor-proxy package. -- networkd gained a new configuration option IPv6PrivacyExtensions. -- udev does not longer support the WAIT_FOR_SYSFS= key in udev - rules. There are no known issues with current sysfs, - and udev does not need or should be used to work around such bugs. - -------------------------------------------------------------------- -Tue Jul 7 08:54:38 UTC 2015 - jengelh@inai.de - -- Avoid restarting logind [bnc#934901] -- Do not suppress errors in any case, even if they are ignored - -------------------------------------------------------------------- -Sun Jul 5 15:52:33 UTC 2015 - hrvoje.senjan@gmail.com - -- Fix devel package requires (both mini and real required real libsystemd0) - -------------------------------------------------------------------- -Fri Jul 3 11:17:01 UTC 2015 - werner@suse.de - -- Rework patch tty-ask-password-agent-on-console.patch to fit the - requisition of https://bugs.freedesktop.org/show_bug.cgi?id=82004 - -------------------------------------------------------------------- -Wed Jul 1 09:42:44 UTC 2015 - jengelh@inai.de - -- Rework "-mini" package logic to not conflict with itself and - then add libsystemd0 to mini. - -------------------------------------------------------------------- -Wed Jul 1 03:43:51 UTC 2015 - crrodriguez@opensuse.org - -- remove SysVStartPriority= from after-local.service, - unsupported since v218. - Note that this option was only parsed and that's it. the logic - to give "start priority" was never implemented. - -------------------------------------------------------------------- -Wed Jul 1 03:20:20 UTC 2015 - crrodriguez@opensuse.org - -- change the default fallback ntp servers to the opensuse - pool.ntp.org vendor zone. -- We still need to run systemd-sysctl.service after local-fs.target - otherwise it works only when /boot is in the root filesystem but - not when it is a separate partition. - -------------------------------------------------------------------- -Fri Jun 26 17:14:46 CEST 2015 - sbrabec@suse.com - -- Obsolete pm-utils and suspend (boo#925873). -- Remove pm-utils support - (remove Forward-suspend-hibernate-calls-to-pm-utils.patch). - -------------------------------------------------------------------- -Thu Jun 25 17:27:06 UTC 2015 - crrodriguez@opensuse.org - -- remove patch sysctl-handle-boot-sysctl.conf-kernel_release.patch - from the filelist. - -------------------------------------------------------------------- -Thu Jun 25 05:56:55 UTC 2015 - crrodriguez@opensuse.org - -- libpcre, glib2 and libusb are not used by systemd, remove - from buildrequires. - -------------------------------------------------------------------- -Thu Jun 25 05:19:54 UTC 2015 - crrodriguez@opensuse.org - -- 1032-ata_id-unbotch-format-specifier.patch: fix udev ata_id - output. -- 0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch - fix StopWhenUnneeded=true in combination with a Requisite= - dependency. -- 0031-install-fix-bad-memory-access.patch: Fix Bad memory access -- 0006-pam_systemd-Properly-check-kdbus-availability.patch: if - kdbus is enabled (i.e boot with kdbus=1) DBUS_SESSION_BUS_ADDRESS - must not be exported. -- spec: add a min_kernel_version macro to ensure the package - conflicts with kernel versions in which systemd cannot run. - -------------------------------------------------------------------- -Wed Jun 24 20:06:27 UTC 2015 - crrodriguez@opensuse.org - -- sysctl-handle-boot-sysctl.conf-kernel_release.patch dropped, - replaced by a tmpfiles.d snippet "current-kernel-sysctl.conf" - (feature implemented in v220 just for our usecase) - -------------------------------------------------------------------- -Wed Jun 24 19:45:17 UTC 2015 - crrodriguez@opensuse.org - -- fix build when resolved is enabled -- remove fsck -l test in spec file, systemd requires util-linux - 2.26 or later where this feature is already available. - -------------------------------------------------------------------- -Wed Jun 24 17:43:22 UTC 2015 - hrvoje.senjan@gmail.com - -- Fix bootstrap build by guarding filelists (man pages don't get - built in bootstrap mode) -- Drop commented sections from baselibs.conf, allows format_spec_file - to have a successful run - -------------------------------------------------------------------- -Wed Jun 24 14:17:04 UTC 2015 - mpluskal@suse.com - -- Install 50-coredump.conf as coredumpctl is now installed by - default and does not use journal anymore as default storage - -------------------------------------------------------------------- -Fri Jun 19 20:51:14 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 221 -* From 220: -* libgudev was moved into a package of its own -* Runlevels 2, 3 and 4 are no longer distinct, they all map to - multi-user.target. -* The EFI System Partition mounted to /boot will be unmounted - 2 minutes after boot. -* systemd does not support direct live-upgrades (via `systemctl - daemon-reexec`) from versions older than v44 anymore. -* systemd-nspawn may now be called as part of a shell pipeline. -* systemd-shutdownd has been removed. This service was - previously responsible for implementing scheduled shutdowns - as exposed in /usr/bin/shutdown's time parameter. This - functionality has now been moved into systemd-logind and is - accessible via a bus interface. -* udev will no longer call blkid and create symlinks for all - block devices, but merely those from a whitelist - (cf. 60-persistent-storage.rules). -* /usr/lib/os-release gained a new optional field VARIANT= -* Details at - http://lists.freedesktop.org/archives/systemd-devel/2015-May/032147.html -* From 221: -* New sd-bus and sd-event APIs in libsystemd -* If there is both a systemd unit and a SysV init script for the - same service name, and `systemctl enable` or other operation is - run, both will now be enabled (or execute the related operation - on both), not just the unit. -- Split libsystemd0 to support systemd-less nspawn containers -- Redo manpage file lists without %exclude, tends to hide - unpackaged files. -- hwdb belongs to udev -- Resolve memory leak and add missing _cleanup_free_ to - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch -- Remove systemd-powerd-initctl-support.patch - (no longer builds because shutdownd is gone) -- Remove quilt-patches/0001-core-rework-device-state-logic.patch, - 0001-Let-some-boolean-survive-a-daemon-reload.patch - (merged upstream), - 0001-Let-some-boolean-survive-a-daemon-reload.patch - (obsolete) - -------------------------------------------------------------------- -Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de - -- Remove libudev0 from baselibs.conf - -------------------------------------------------------------------- -Thu Jun 11 12:12:58 UTC 2015 - werner@suse.de - -- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch - as now upstream code -- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix - bsc#933365 and boo#934077 - -------------------------------------------------------------------- -Tue Jun 2 13:33:24 UTC 2015 - pwieczorkiewicz@suse.com - -- Add 1098-systemd-networkd-alias-network-service.patch to alias - network.service the same way NetworkManager and wicked does. - This is needed by yast2 and other parts of the system. boo#933092 - -------------------------------------------------------------------- -Mon May 18 14:39:47 UTC 2015 - werner@suse.de - -- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use - the new return values of proc_cmdline() in enable_name_policy() - this should fix boo#931165 - -------------------------------------------------------------------- -Mon May 18 12:25:54 UTC 2015 - jengelh@inai.de - -- Drop 1021-udev-re-add-persistent-net-rules.patch, - 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, - 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, - 1046-fix-duplicated-rules-with-layer3-interfaces.patch, - 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, - 1051-check-if-NAME-has-a-value.patch, - 1053-better-checks-in-write_net_rules.patch, - 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. - 1021 originally broke parsing of net.ifnames=0 [bnc#931165], - and given that neither the kernel command line needs to be - touched nor the source be patched to reach the unpredictable - naming setup for SLE, all these parts are moved to a separate - package. - -------------------------------------------------------------------- -Mon Mar 16 15:35:31 UTC 2015 - werner@suse.de - -- Add upstream patch - 0001-core-don-t-change-removed-devices-to-state-tentative.patch - to fix the fix of the last backport (bsc#921898) - -------------------------------------------------------------------- -Thu Mar 5 11:36:11 UTC 2015 - jengelh@inai.de - -- Reenable networkd which was silently disabled on Feb 18 - -------------------------------------------------------------------- -Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de - -- Add 0001-core-rework-device-state-logic.patch to fix spurious - automated umount after mount. - -------------------------------------------------------------------- -Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com - -- mark more subpackages as !bootstrap for systemd-mini usage. - -------------------------------------------------------------------- -Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org - -- spec : remove --with-firmware-path, firmware loader was removed in v217 -- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) -- spec: Do not enable systemd-readahead-collect.service and -systemd-readahead-replay.service as these do not exist anymore. -- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch - Yast was fixed to write all timezone changes exactly how timedated expects - things to be done. -- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg - package handles the migration from /etc/HOSTNAME to /etc/hostname - and owns both files. --spec: remove boot.udev and systemd-journald.init as they currently - serve no purpose. -- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we - are in sysvcompat-only codepath, also remove the code targetting other - distributions, never compiled as the TARGET_$DISTRO macros are never defined. -- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT -- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards -- insserv-generator.patch: Only build when sysvcompat is enabled -- vhangup-on-all-consoles.patch add a comment indicating this is a workaround - for a kernel bug. -- spec: Add option to allow disabling sysvinit compat at build time. -- spec: Add option to enable resolved at build time. -- spec: Remove all %ifs for !factory products, current systemd releases can - neither be built nor installed in older products without upgrading - several components of the base system. - (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) -- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when - those init scripts still existed. (dummy localfs.service source: gone) -- systemd-sleep-grub: moved to the grub2 package where it belongs as a - suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) -- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds - config.h everywhere in the preprocessor cmdline. - -------------------------------------------------------------------- -Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 219 -* systemd units can now be "unsupported" (like, for example, - .device in a containers), similar to the "skipped" state in - SUSE's prior sysvinit scripts. -* tmpfiles gained the 'v' type for creating btrfs subvolumes. -* tmpfiles gained the 'a' type for setting ACLs. -* systemd-nspawn gained new switches: --ephemeral, --template -* The /var/lib/containers location is deprecated and replaced by - /var/lib/machines. -* machinectl gained the copy-from and copy-to commands. -* machinectl now knows a "bind" command (for use with nspawn) -* new "systemd-importd" daemon to download container images and run - them as nspawn containers. -* networkd collects LLDP network announcements, if available, and - so shown in networkctl. -* The fallback terminal type was changed from "vt102" to "vt220", - allowing PgUp/PgDn keys to work. -* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, - useful should the regular shutdown hang. -* Removing storage will cause systemd to unmount the associated - mountpoints so that they don't linger around. - -------------------------------------------------------------------- -Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de - -- Add suse-sysv-bootd-support.diff (reinstate old - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) - -------------------------------------------------------------------- -Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de - -- Update to systemd v218-1050-g38ab096 -- Remove patches - use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) -- Reinstate and improve (remove huge indents from) - tty-ask-password-agent-on-console.patch, - 0014-journald-with-journaling-FS.patch, rootsymlink_generator. - -------------------------------------------------------------------- -Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com - -- disable systemd-resolved for now as it interacts not well with - our methods and security has concerns regarding spoofing. bsc#917781 - -------------------------------------------------------------------- -Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - -- Add patch kbd-model-map.patch to add missed keyboard layouts - which are offered by YaST2 (bsc#910643 and boo#897803) - -------------------------------------------------------------------- -Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 218 -* New utilities: systemd-timesyncd (SNTP client), - systemd-resolved, systemd-networkd, networkctl, - systemd-sysusers -* machinectl gained a "poweroff" command for clean container shutdown -* The udev hwdb now contains DPI information for mice. -* Userspace firmware loading support has been removed and - the minimum supported kernel version is thus bumped to 3.7. -- Remove patches: - G=gone locally, is upstream; - D=dropped: no longer needed; - N=no longer applies to source nor is it deemed needed; - K=killed: no longer applicable and too complex to resolve: - ---- - G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch - K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch - K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch - K handle-SYSTEMCTL_OPTIONS-environment-variable.patch - K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch - K log-target-null-instead-kmsg.patch - K tty-ask-password-agent-on-console.patch - K 513-nspawn-veth.patch - K 1087-infinit-timeout-for-kmod-loaded-modules.patch - D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - D avoid-leaking-socket-descriptors.patch - D 0001-make-fortify-happy-with-ppoll.patch - N fix-owner-of-var-log-btmp.patch - N disable-nss-myhostname-warning-bnc-783841.patch - N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch - N 0001-make-209-working-on-older-dist.patch - N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch - N tmpfiles-do-not-clean-for-mandb-index-files.patch - G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc - G optionally-warn-if-nss-myhostname-is-called.patch - G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch - G 0004-getty-generator-properly-escape-instance-names.patch - G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch - G 0008-Reset-signal-mask-on-re-exec-to-init.patch - G 0001-login-fix-pos-array-allocation.patch - G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch - G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - G 0005-Replace-var-run-with-run-in-remaining-places.patch - G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch - G 0007-README-document-that-var-run-must-be-a-symlink-run.patch - G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch - G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch - G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - G 0001-Fix-systemd-stdio-bridge-symlink.patch - G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch - G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch - G 0004-man-document-missing-options-of-systemd-run.patch - G 0005-systemd-run-add-some-extra-safety-checks.patch - G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch - G 0007-journal-forget-file-after-encountering-an-error.patch - G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch - G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch - G 0010-man-update-link-to-LSB.patch - G 0011-man-systemd-bootchart-fix-spacing-in-command.patch - G 0012-man-add-missing-comma.patch - G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch - G 0002-manager-flush-memory-stream-before-using-the-buffer.patch - G 0003-busname-don-t-drop-service-from-the-result-string.patch - G 0004-fix-off-by-one-error-in-array-index-assertion.patch - G 0005-logind-fix-policykit-checks.patch - G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch - G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch - G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch - G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch - G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch - G 0007-networkd-fix-typo.patch - G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch - G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch - G 0012-journald-remove-stray-reset-of-error-return-value.patch - G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch - G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch - G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch - G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch - G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch - G 0005-sd-daemon-fix-incorrect-variable-access.patch - G 0006-sd-event-initialization-perturbation-value-right-bef.patch - G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch - G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch - G 0001-journal-fix-export-of-messages-containing-newlines.patch - G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch - G 0003-tty-ask-password-agent-return-negative-errno.patch - G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch - G 0005-systemd-python-fix-failing-assert.patch - G 0007-dbus-suppress-duplicate-and-misleading-messages.patch - G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch - G 0001-bash-completion-fix-__get_startable_units.patch - G 0002-sysctl-replaces-some-slashes-with-dots.patch - G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch - G 0004-implement-a-union-to-pad-out-file_handle.patch - G shut-up-annoying-assertion-monotonic-clock-message.patch - G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch - G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch - G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch - G 0003-analyze-fix-plot-with-bad-y-size.patch - G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch - G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch - G 0002-backlight-do-nothing-if-max_brightness-is-0.patch - G 0003-backlight-unify-error-messages.patch - G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch - G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch - G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch - G 0001-core-close-socket-fds-asynchronously.patch - G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch - G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch - G 0002-logind-fix-printf-format.patch - G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch - G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch - G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch - G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch - G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch - G 0008-man-update-journald-rate-limit-defaults.patch - G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch - G 0010-logind-allow-suspending-if-there-are-no-displays.patch - G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch - G 0002-man-note-that-entire-sections-can-now-be-ignored.patch - G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch - G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch - G 0006-login-add-mir-to-the-list-of-session-types.patch - G 0007-logind-fix-Display-property-of-user-objects.patch - G 0001-hwdb-update.patch - G 0002-hwdb-update.patch - G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch - G 0004-hwdb-update.patch - G 0005-hwdb-update.patch - G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch - G 0002-journal-properly-detect-language-specified-in-line.patch - G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch - G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch - G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch - G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch - G 0002-nspawn-restore-journal-directory-is-empty-check.patch - G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - G 0004-socket-properly-handle-if-our-service-vanished-durin.patch - G 0001-Do-not-unescape-unit-names-in-Install-section.patch - G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - G 0001-virt-rework-container-detection-logic.patch - G 0002-fsck-include-device-name-in-the-message-about-missin.patch - G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch - G 0004-util-ignore_file-should-not-allow-files-ending-with.patch - G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch - G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch - G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch - G 0001-hwdb-fix-case-sensitive-match.patch - G 0001-sd-event-restore-correct-timeout-behaviour.patch - G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch - G 0001-umount-modernizations.patch - G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch - G 0003-core-allow-transient-mount-units.patch - G 0004-systemd-detect-virt-only-discover-Xen-domU.patch - G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch - G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch - G 0001-core-fix-invalid-free-in-killall.patch - G 0003-install-fix-invalid-free-in-unit_file_mask.patch - G 0001-systemd-detect-virt-detect-s390-virtualization.patch - G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch - G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch - G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch - G 0005-po-add-Greek-translation.patch - G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0007-po-add-German-translation.patch - G 0009-core-clean-up-signal-reset-logic-when-reexec.patch - G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch - G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch - G 0012-core-transaction-avoid-misleading-error-message-when.patch - G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch - G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch - G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch - G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch - G 0005-man-fix-path-in-crypttab-5.patch - G 0001-units-order-network-online.target-after-network.targ.patch - G 0001-core-use-correct-format-string-for-UIDs.patch - G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch - G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch - G 0002-journald-make-MaxFileSec-really-default-to-1month.patch - G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch - G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch - G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch - G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch - G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch - G 0001-parse_uid-return-ENXIO-for-1-uids.patch - G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch - G 0003-localed-consider-an-unset-model-as-a-wildcard.patch - G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch - G 0005-bus-close-a-bus-that-failed-to-connect.patch - G 0006-hwdb-update.patch - G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-architecture-Add-tilegx.patch - G 0002-architecture-Add-cris.patch - G 0003-arch-add-crisv32-to-uname-check.patch - G 0004-architecture-remove-cris-from-uname-list.patch - G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch - G 0002-namespace-fix-uninitialized-memory-access.patch - G 0001-machine-don-t-return-uninitialized-variable.patch - G 0002-vconsole-setup-run-setfont-before-loadkeys.patch - G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch - G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch - G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch - G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch - G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch - G 0007-service-flush-status-text-and-errno-values-each-time.patch - G 0001-journal-compress-return-early-in-uncompress_startswi.patch - G 0002-journal-compress-improve-xz-compression-performance.patch - G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch - G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch - G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch - G 0001-event-pull-in-sd-event.h-from-event-util.h.patch - G 0002-util-fix-has-cc-check-and-add-test.patch - G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch - G 0004-fileio-quote-more-shell-characters-in-envfiles.patch - G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch - G 0002-units-serial-getty-.service-use-the-default-RestartS.patch - G 0001-po-add-Ukrainian-translation.patch - G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch - G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch - G 0001-detect-virt-Fix-Xen-domU-discovery.patch - G 0002-Be-more-verbose-when-bind-or-listen-fails.patch - G 0003-Add-quotes-to-warning-message.patch - G 0004-systemd-return-the-first-error-from-manager_startup.patch - G 0001-bash-completion-p-option-for-journalctl.patch - G 0002-journalctl-man-allow-only-between-terms.patch - G 0003-systemd-use-pager-for-test-and-help.patch - G 0001-bus-proxyd-fix-incorrect-comparison.patch - G 0002-shell-completion-prevent-mangling-unit-names.patch - G 0003-Always-check-asprintf-return-code.patch - G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch - G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch - G 0006-parse_boolean-require-exact-matches.patch - G 0007-drop_duplicates-copy-full-BindMount-struct.patch - G 0008-shell-completion-prevent-mangling-unit-names-bash.patch - G 0009-journald-always-add-syslog-facility-for-messages-com.patch - G 0001-sysv-order-initscripts-which-provide-network-before-.patch - G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch - G 0003-keymap-Annotate-all-micmute-workarounds.patch - G 0007-hwdb-update.patch - G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch - G 0002-switch-root-umount-the-old-root-correctly.patch - G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch - G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch - G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch - G 0006-login-share-VT-signal-handler-between-sessions.patch - G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch - G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch - G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch - G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch - G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch - G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch - G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch - G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch - G 0003-keymap-Fix-HP-Pavillon-DV7.patch - G 0004-hwdb-update-format-description-and-document-reloadin.patch - G 0008-hwdb-update.patch - G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch - G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch - G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - G 0001-login-fix-memory-leak-on-DropController.patch - G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch - G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch - G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - G 0001-nspawn-fix-network-interface.patch - G 0001-completion-filter-templates-from-restartable-units.patch - G 0002-systemd-fix-error-message.patch - G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch - G 0004-config-parser-fix-mem-leak.patch - G 0005-login-fix-mem-leak.patch - G 0001-login-simplify-controller-handling.patch - G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch - G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0009-hwdb-update.patch - G 0001-systemctl-allow-to-change-the-default-target-without.patch - G 0001-activate-fix-fd-leak-in-do_accept.patch - G 0002-analyze-avoid-a-null-dereference.patch - G 0003-analyze-fix-mem-leak.patch - G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch - G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch - G 0006-bus-unref-buscreds-on-failure.patch - G 0007-core-fix-a-potential-mem-leak.patch - G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch - G 0009-journal-do-not-leak-mmaps-on-OOM.patch - G 0010-manager-use-correct-cleanup-function.patch - G 0001-core-fix-resource-leak-in-manager_environment_add.patch - G 0002-util-remove-a-unnecessary-check.patch - G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch - G 0004-shared-conf-parser.patch - G 0005-logind-fix-typo.patch - G 0006-systemctl-fix-resource-leak-CID-1237747.patch - G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch - G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch - G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch - G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch - G 0003-mount-order-options-before-other-arguments-to-mount.patch - G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch - G 0005-shared-label.h-add-missing-stdio.h-include.patch - G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch - G 0001-login-pause-devices-before-acknowledging-VT-switches.patch - G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch - G 0001-socket-introduce-SELinuxContextFromNet-option.patch - G 0002-util-avoid-non-portable-__WORDSIZE.patch - G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch - G 0002-bus-remove-unused-check.patch - G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch - G 0001-logind-add-support-for-Triton2-Power-Button.patch - G 0002-logind-add-support-for-TPS65217-Power-Button.patch - G 0001-shutdownd-clean-up-initialization-of-struct.patch - G 0003-bootchart-parse-userinput-with-safe_atoi.patch - G 0004-bootchart-check-return-of-strftime.patch - G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch - G 0001-journalctl-do-not-output-reboot-markers-when-running.patch - G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch - G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch - G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch - G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch - G 0003-fileio-label-return-error-when-writing-fails.patch - G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch - G 0004-sd-event-check-the-value-of-received-signal.patch - G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch - G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch - G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch - G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch - G 0003-sd-bus-check-return-value-of-vasprintf.patch - G 0004-core-map-the-rescue-argument-to-rescue.target.patch - G 0005-util-avoid-double-close-of-fd.patch - G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch - G 0001-tmpfiles-compare-return-against-correct-errno.patch - G 0001-shell-completion-fix-completion-of-inactive-units.patch - G 0002-shell-completion-propose-templates-for-disable-re-en.patch - G 0003-man-we-don-t-have-Wanted-dependency.patch - G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch - G 0001-systemd-continue-switch-root-even-if-umount-fails.patch - G 0002-systemd-try-harder-to-bind-to-notify-socket.patch - G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch - G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch - G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch - G 0004-journal-do-server_vacuum-for-sigusr1.patch - G 0005-cryptsetup-fix-an-OOM-check.patch - G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch - G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch - G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch - G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch - G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch - G 0005-journalctl-correct-help-text-for-until.patch - G 0006-calendarspec-fix-typo-in-annually.patch - G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch - G 0008-util-introduce-sethostname_idempotent.patch - G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch - G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch - G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch - G 0012-manager-do-not-print-anything-while-passwords-are-be.patch - G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch - G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch - G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch - G 0002-snapshot-return-error-when-snapshot-exists.patch - G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch - G 0004-Raise-level-of-Found-dependency.-lines.patch - G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch - G 0006-journald-fix-minor-memory-leak.patch - G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch - G 0008-journald-fix-memory-leak-on-error-path.patch - G 0009-units-make-systemd-journald.service-Type-notify.patch - G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch - G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch - G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch - G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch - G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch - G 0001-systemctl-let-list-units-unit-files-honour-type.patch - G 0002-systemctl-obey-state-in-list-unit-files.patch - G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch - G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch - G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch - G 0001-selinux-access-fix-broken-ternary-operator.patch - G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch - G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch - G 0004-core-fix-transaction-destructiveness-check-once-more.patch - G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch - G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch - G 1009-cdrom_id-use-the-old-MMC-fallback.patch - G 1010-udev-increase-result-size-for-programs.patch - G 1014-udev-update-net_id-comments.patch - G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch - G 1017-udev-serialize-synchronize-block-device-event-handli.patch - G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch - G 1019-udev-avoid-use-of-uninitialized-err.patch - G 1020-udev-keyboard-also-hook-into-change-events.patch - G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch - G 1024-udev-always-close-lock-file-descriptor.patch - G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch - G 1026-udevd-inotify-modernizations.patch - G 1027-udev-synthesize-change-events-for-partitions-when-to.patch - G 1028-udev-link-config-fix-mem-leak.patch - G 1029-udev-try-first-re-reading-the-partition-table.patch - G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch - G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch - G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch - G 1033-udev-really-exclude-device-mapper-from-block-device.patch - G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch - G 1038-udev-fix-invalid-free-in-enable_name_policy.patch - G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch - G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch - G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch - G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch - G 1044-rules-update-qemu-hid-rules.patch - G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch - G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch - G 1048-udev-net_setup_link-add-a-bit-more-logging.patch - G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch - G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch - G 1056-udevd-add-event-timeout-commandline-option.patch - G 1057-udev-unify-event-timeout-handling.patch - G 1058-udev-unify-event-timeout-handling.patch - G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch - G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch - G 1065-udev-bump-event-timeout-to-60-seconds.patch - G 1067-udev-always-resolve-correctly-database-names-on-chan.patch - G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch - G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch - G 1070-rules-net-setup-link-remove-stray-linebreak.patch - G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch - G 1072-udev-netif_rename-don-t-log-to-kmsg.patch - G 1073-udev-drop-print_kmsg.patch - G 1074-udev-fix-copy-paste-error-in-log-message.patch - G 1075-udev-timeout-increase-timeout.patch - G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1078-udev-remove-userspace-firmware-loading-support.patch - G 1079-udev-remove-userspace-firmware-loading-support.patch - G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch - G 1081-udevd-check-return-of-various-functions.patch - G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch - G 1083-udev-node-warn-if-chmod-chown-fails.patch - G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch - G 1085-udev-fix-typos.patch - G 1086-udevd-don-t-fail-if-run-udev-exists.patch - G 1089-fix-cgroup-device-controller.patch - G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - G 1091-udev-path_id-update-comments.patch - G 1092-libudev-do-not-accept-invalid-log-levels.patch - G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch - G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch - G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - -------------------------------------------------------------------- -Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com - -- update set-and-use-default-logconsole.patch - fix comparison of - console log facility that caused journald to skip output to console - (boo#912030) - -------------------------------------------------------------------- -Thu Dec 18 13:47:36 UTC 2014 - werner@suse.de - -- Use Robert's latest patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - which drops NAMEPOLICY_KERNEL as this breaks all on current - systems out there - -------------------------------------------------------------------- -Wed Dec 17 14:57:42 UTC 2014 - thomas.blume@suse.com - -- remove 0022-systemd-tmpfiles-ownerkeep.patch since this is now - implemented into the systemd-tmpfiles binary -- add user based ignore statements in tmpfiles removal directives - (bnc#903009) - add systemd-add-user-keep.patch - -------------------------------------------------------------------- -Tue Dec 16 09:45:38 UTC 2014 - thomas.blume@suse.com - -- use --boot option in systemd-tmpfiles-setup-dev.service (bnc#908476) - add upstream patches: - 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch - 0002-man-tmpfiles.d-recommend-using-b-and-c.patch (adapted) - -------------------------------------------------------------------- -Tue Dec 16 08:59:08 UTC 2014 - werner@suse.de - -- Update patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - to Robert's version - -------------------------------------------------------------------- -Mon Dec 15 15:02:22 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-selinux-access-fix-broken-ternary-operator.patch - 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch - 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch - 0004-core-fix-transaction-destructiveness-check-once-more.patch -- Avoid old net devices naming scheme on openSUSE 13.2 and less - maybe caused by patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - -------------------------------------------------------------------- -Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com - -- fix systemd-nspawn network-veth support (bnc#906709) - add 513-nspawn-veth.patch - -------------------------------------------------------------------- -Fri Dec 5 12:51:15 UTC 2014 - werner@suse.de - -- Add upstream patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - which may solve bsc#907318 - -------------------------------------------------------------------- -Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch - 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - -------------------------------------------------------------------- -Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com - -- Change the maximum number of children from CPU_COUNT * 256 to - CPU_COUNT * 64. - Update 1097-udevd-increase-maximum-number-of-children.patch - -------------------------------------------------------------------- -Thu Nov 27 20:30:35 UTC 2014 - rmilasan@suse.com - -- Increase number of children/workers to CPU_COUNT * 256 to avoid - 'maximum number of children reached' (bnc#907393). - Add 1097-udevd-increase-maximum-number-of-children.patch - -------------------------------------------------------------------- -Tue Nov 25 09:44:42 UTC 2014 - rmilasan@suse.com - -- Fix error return in rootsymlink_generator.c - Update 1096-new-udev-root-symlink-generator.patch - -------------------------------------------------------------------- -Fri Nov 21 13:35:40 UTC 2014 - werner@suse.de - -- Remove upstream patch - 0001-systemd-logind.service-set-Type-notify.patch - as systemd-logind.service is already from DBus type, compare with - upstream commit eab459bc0639b81b32735f36d3e929e4bfa2cb4b - -------------------------------------------------------------------- -Thu Nov 20 13:45:28 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemd-logind.service-set-Type-notify.patch - 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch - 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch - -------------------------------------------------------------------- -Thu Nov 20 12:18:57 UTC 2014 - werner@suse.de - -- Re-add directory /usr/lib/systemd/system/basic.target.wants - -------------------------------------------------------------------- -Wed Nov 19 15:07:43 UTC 2014 - gber@opensuse.org - -- remove pm-utils-hooks-compat.sh again, pm-utils built-in hooks - partially duplicate hooks run by systemd which may potentially - lead to problems, instead temporarily re-enable - Forward-suspend-hibernate-calls-to-pm-utils.patch until - boo#904828 can be addressed properly - -------------------------------------------------------------------- -Wed Nov 19 00:58:00 UTC 2014 - Led - -- fix bashisms in write_net_rules script -- update patches: - * 1053-better-checks-in-write_net_rules.patch - -------------------------------------------------------------------- -Tue Nov 18 10:26:08 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemctl-let-list-units-unit-files-honour-type.patch - 0002-systemctl-obey-state-in-list-unit-files.patch - which allows to use --type in the systemctl command list-units - and list-unit-files. - -------------------------------------------------------------------- -Tue Nov 18 10:10:28 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch - 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch - -------------------------------------------------------------------- -Thu Nov 13 14:47:17 UTC 2014 - rmilasan@suse.com - -- New root symlink rule generator - Add 1096-new-udev-root-symlink-generator.patch -- Remove write_dev_root_rule and systemd-udev-root-symlink - -------------------------------------------------------------------- -Thu Nov 13 12:59:05 UTC 2014 - werner@suse.de - -- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - to skip hdflush as well as hddown but only use halt as fallback - for poweroff as well as synch in systemctl before any reboot command - (compare with commit 4a3ad39957399c4a30fc472a804e72907ecaa4f9) - -------------------------------------------------------------------- -Thu Nov 13 09:54:35 UTC 2014 - rmilasan@suse.com - -- Create rule to set I/O scheduler to deadline if device attribute - 'rotational' equals 0, usually SSDs (bnc#904517). - Add 1095-set-ssd-disk-to-use-deadline-scheduler.patch - -------------------------------------------------------------------- -Thu Nov 13 07:50:49 UTC 2014 - thomas.blume@suse.com - -- fix systemd-fstab-generator crypttab parsing (bnc#903963) - -------------------------------------------------------------------- -Tue Nov 11 19:10:35 UTC 2014 - gber@opensuse.org - -- Add pm-utils-hooks-compat.sh in order to run pm-utils sleep hooks - from systemd (boo#904828) - -------------------------------------------------------------------- -Mon Nov 10 14:23:00 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch - 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch - 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch - -------------------------------------------------------------------- -Mon Nov 10 12:39:35 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-don-t-allow-enabling-if-unit-is-masked.patch - 0002-snapshot-return-error-when-snapshot-exists.patch - 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch - 0004-Raise-level-of-Found-dependency.-lines.patch - 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch - 0006-journald-fix-minor-memory-leak.patch - 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch - 0008-journald-fix-memory-leak-on-error-path.patch - 0009-units-make-systemd-journald.service-Type-notify.patch - 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Mon Nov 10 12:36:34 UTC 2014 - werner@suse.de - -- Add upstream patches - 1092-libudev-do-not-accept-invalid-log-levels.patch - 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch - 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch - -------------------------------------------------------------------- -Fri Nov 7 09:45:20 UTC 2014 - werner@suse.de - -- Add patch watch_resolv.conf_for_become_changed.patch to add an - inotify watch on /etc/resolv.conf which enables the reload of - a changed resolver configuration on the fly (bsc#902901) -- Do not apply patch 0022-systemd-tmpfiles-ownerkeep.patch in case - if the script /usr/bin/systemd-tmpfiles-keep is missed - -------------------------------------------------------------------- -Mon Nov 3 14:23:02 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch - 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch - -------------------------------------------------------------------- -Mon Nov 3 14:17:48 UTC 2014 - werner@suse.de - -- Add upstream patches - 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - 1091-udev-path_id-update-comments.patch - which will be applied if patch - 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - is applied a this may fix the trouble with iSCSI (bnc#898233) - -------------------------------------------------------------------- -Thu Oct 30 10:45:01 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch - 0002-time-also-support-infinity-syntax-in-parse_nsec.patch - 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch - 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch - 0005-journalctl-correct-help-text-for-until.patch - 0006-calendarspec-fix-typo-in-annually.patch - 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch - 0008-util-introduce-sethostname_idempotent.patch - 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch - 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch - 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch -- Replace patch - keep-crypt-password-prompt.patch as this with - upstream patch - 0012-manager-do-not-print-anything-while-passwords-are-be.patch - -------------------------------------------------------------------- -Fri Oct 24 13:02:45 UTC 2014 - werner@suse.de - -- Add upstream patch - 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch -- Add patch journald-advice-about-use-of-memory.patch to use mmap() - flags as well as madvise(2) for journal files. - -------------------------------------------------------------------- -Thu Oct 23 14:05:08 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-strv-add-an-additional-overflow-check-when-enlarging.patch - 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch - 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch - 0004-journal-do-server_vacuum-for-sigusr1.patch - 0005-cryptsetup-fix-an-OOM-check.patch - -------------------------------------------------------------------- -Wed Oct 22 13:56:22 UTC 2014 - werner@suse.de - -- Add upstream patch 1089-fix-cgroup-device-controller.patch - to avoid trouble on existing /dev/console with nspawn (bsc#902240) - -------------------------------------------------------------------- -Tue Oct 21 11:03:31 UTC 2014 - werner@suse.de - -- Modify patch avoid-leaking-socket-descriptors.patch to close - file descriptors for incomming connections in pam module in case - of short memory. - -------------------------------------------------------------------- -Mon Oct 20 14:10:47 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemd-continue-switch-root-even-if-umount-fails.patch - 0002-systemd-try-harder-to-bind-to-notify-socket.patch -- Add patch avoid-leaking-socket-descriptors.patch to close - file descriptors if an incomming connection can not be handled - due e.g. short memory. Could be related to bsc #901481 - -------------------------------------------------------------------- -Wed Oct 15 12:03:36 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-shell-completion-fix-completion-of-inactive-units.patch - 0002-shell-completion-propose-templates-for-disable-re-en.patch - 0003-man-we-don-t-have-Wanted-dependency.patch - 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch - -------------------------------------------------------------------- -Wed Oct 15 08:48:36 UTC 2014 - werner@suse.de - -- Adapt patch - rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch - to make it work even with patch #438 and #439 - -------------------------------------------------------------------- -Tue Oct 14 16:23:51 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch - 0001-tmpfiles-compare-return-against-correct-errno.patch - -------------------------------------------------------------------- -Tue Oct 14 16:19:42 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch - 0001-units-introduce-network-pre.target-as-place-to-hook-.patch - 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch - 0003-sd-bus-check-return-value-of-vasprintf.patch - 0004-core-map-the-rescue-argument-to-rescue.target.patch - 0005-util-avoid-double-close-of-fd.patch - -------------------------------------------------------------------- -Tue Oct 14 16:18:36 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch - 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch - 0003-fileio-label-return-error-when-writing-fails.patch - 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch - 0004-sd-event-check-the-value-of-received-signal.patch - 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch - -------------------------------------------------------------------- -Tue Oct 14 14:46:58 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch - 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Tue Oct 14 14:16:52 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-journalctl-do-not-output-reboot-markers-when-running.patch - 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch - -------------------------------------------------------------------- -Tue Oct 14 13:58:45 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-logind-add-support-for-Triton2-Power-Button.patch - 0002-logind-add-support-for-TPS65217-Power-Button.patch -- Add upstream patches - 0001-shutdownd-clean-up-initialization-of-struct.patch - 0003-bootchart-parse-userinput-with-safe_atoi.patch - 0004-bootchart-check-return-of-strftime.patch - 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch - -------------------------------------------------------------------- -Thu Oct 2 07:21:42 PDT 2014 - lduncan@suse.com - -- Revert patch 1063, which incorrectly disallows - /dev/disk/by-path links for iSCSI (and other) - devices. Will be corrected and re-added once - upstream is consulted. (bnc#898233). Disable: - 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patc - -------------------------------------------------------------------- -Fri Sep 26 16:11:10 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch - for bsc#893797 - -------------------------------------------------------------------- -Fri Sep 26 09:34:22 UTC 2014 - rmilasan@suse.com - -- Drop renaming virtual interfaces in a guest (bnc#898432). - Add 1088-drop-renaming-of-virtual-interfaces-in-guest.patch - -------------------------------------------------------------------- -Thu Sep 25 14:08:35 UTC 2014 - werner@suse.de - -- Rename patch 0001-infinit-timeout-for-kmod-loaded-modules.patch - to patch 1087-infinit-timeout-for-kmod-loaded-modules.patch - and apply this one - -------------------------------------------------------------------- -Thu Sep 25 13:45:46 UTC 2014 - werner@suse.de - -- Change patch - 0003-mount-order-options-before-other-arguments-to-mount.patch - to fix bsc#898240 - -------------------------------------------------------------------- -Thu Sep 25 09:06:14 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-Fix-warning-about-unused-variable-with-SELINUX.patch - 0002-bus-remove-unused-check.patch - -------------------------------------------------------------------- -Wed Sep 24 15:05:49 UTC 2014 - werner@suse.de - -- Add patch 0001-infinit-timeout-for-kmod-loaded-modules.patch to - be able to avoid killing a running kmod/modprobe (bnc#889297) - -------------------------------------------------------------------- -Wed Sep 24 08:36:42 UTC 2014 - werner@suse.de - -- Update patch 0001-bnc888612-logind-polkit-acpi.patch - -------------------------------------------------------------------- -Wed Sep 24 07:47:54 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-login-pause-devices-before-acknowledging-VT-switches.patch - May help that history of the shell is saved - 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch - 0001-socket-introduce-SELinuxContextFromNet-option.patch (bsc#897801) - 0002-util-avoid-non-portable-__WORDSIZE.patch - -------------------------------------------------------------------- -Fri Sep 19 13:08:14 UTC 2014 - werner@suse.de - -- Add patch 0001-bnc888612-logind-polkit-acpi.patch from Frederic - to solve bnc#888612 - AUDIT-0: Power button press at gdm login - should not prompt for credentials - -------------------------------------------------------------------- -Fri Sep 19 11:36:48 UTC 2014 - werner@suse.de - -- Add upstream bugfix patches - 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch - 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch - 0003-mount-order-options-before-other-arguments-to-mount.patch - 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch - 0005-shared-label.h-add-missing-stdio.h-include.patch - 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch - 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch - 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch - 1081-udevd-check-return-of-various-functions.patch - 1082-udevadm-hwdb-check-return-value-of-fseeko.patch - 1083-udev-node-warn-if-chmod-chown-fails.patch - 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch - 1085-udev-fix-typos.patch - 1086-udevd-don-t-fail-if-run-udev-exists.patch - -------------------------------------------------------------------- -Thu Sep 18 13:21:45 UTC 2014 - werner@suse.de - -- Add upstream bugfix patches - 0001-core-fix-resource-leak-in-manager_environment_add.patch - 0002-util-remove-a-unnecessary-check.patch - 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch - 0004-shared-conf-parser.patch - 0005-logind-fix-typo.patch - 0006-systemctl-fix-resource-leak-CID-1237747.patch - 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patc - 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch -- Remove 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch as - 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch - is the upstream solution - -------------------------------------------------------------------- -Wed Sep 17 16:02:33 UTC 2014 - werner@suse.de - -- Add patch 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch to - fix for the size of the gcc builtin type bool also known as _Bool - from the include header stdbool.h. - -------------------------------------------------------------------- -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 - -- Add upstream patches - 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch - 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Thu Sep 4 13:10:28 UTC 2014 - werner@suse.de - -- Disable patch - module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - for SLES-12 as well as for openSUSE-13.2 (bnc#895087) - -------------------------------------------------------------------- -Tue Sep 2 12:56:47 UTC 2014 - rmilasan@suse.com - -- udev: add option to generate old 'buggy' serials (bnc#886852) - Add 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch - -------------------------------------------------------------------- -Tue Sep 2 09:14:03 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-login-simplify-controller-handling.patch - -------------------------------------------------------------------- -Mon Sep 1 13:00:29 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-completion-filter-templates-from-restartable-units.patch - 0002-systemd-fix-error-message.patch - 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch - 0004-config-parser-fix-mem-leak.patch - 0005-login-fix-mem-leak.patch - 1065-udev-bump-event-timeout-to-60-seconds.patch - -------------------------------------------------------------------- -Fri Aug 29 14:14:06 UTC 2014 - werner@suse.de - -- Add upstream patch 0001-nspawn-fix-network-interface.patch to - make option network-interface of systemd-nspawn work - -------------------------------------------------------------------- -Thu Aug 28 10:07:10 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-login-fix-memory-leak-on-DropController.patch - 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch - 0003-sd-journal-properly-convert-object-size-on-big-endia.patch - 0004-sd-journal-verify-that-object-start-with-the-field-n.patch -- Add upstream patch - 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch - to avoid that hwdb ID's for unrecognised USB device are taken - from the USB hub. - -------------------------------------------------------------------- -Wed Aug 27 16:01:17 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch - 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch - 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - -------------------------------------------------------------------- -Wed Aug 27 12:52:09 UTC 2014 - werner@suse.de - -- Add patch use-rndaddentropy-ioctl-to-load-random-seed.patch to - use RNDADDENTROPY ioctl to load random-seed and to increase - entropy count as well (bnc#892096) - -------------------------------------------------------------------- -Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de - -- Add upstream patches for hwdb - 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch - 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch - 0003-keymap-Fix-HP-Pavillon-DV7.patch - 0004-hwdb-update-format-description-and-document-reloadin.patch - 0008-hwdb-update.patch - -------------------------------------------------------------------- -Tue Aug 26 11:25:57 UTC 2014 - werner@suse.de - -- Port back and add the missed upstream patches from 2014/08/22 - 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch - 0006-login-share-VT-signal-handler-between-sessions.patch - -------------------------------------------------------------------- -Fri Aug 22 15:12:23 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch - 0002-switch-root-umount-the-old-root-correctly.patch - 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch - 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch - 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch - 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch - 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch - 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch - 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch - 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch - 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - -------------------------------------------------------------------- -Fri Aug 22 01:29:06 UTC 2014 - crrodriguez@opensuse.org - -- man pages from section 3 are developer docs, move them to - the -devel package. - -------------------------------------------------------------------- -Wed Aug 20 15:06:25 UTC 2014 - werner@suse.de - -- Add patch 0001-let-systemctl-completion-ignore-at-names.patch to - remove error messages for tab completion for systemctl isolate (bnc#892162) - -------------------------------------------------------------------- -Mon Aug 18 14:40:55 UTC 2014 - werner@suse.de - -- Disable the usage of the systemd groups wheel and adm (bnc#892300) - -------------------------------------------------------------------- -Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com - -- Set default permissions for GenWQE device nodes to 0666 (bnc#890977). - Add 1062-rules-set-default-permissions-for-GenWQE-devices.patch - -------------------------------------------------------------------- -Fri Aug 1 09:53:30 UTC 2014 - werner@suse.de - -- Add upstream patches - 0007-hwdb-update.patch - 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - -------------------------------------------------------------------- -Thu Jul 31 07:55:47 UTC 2014 - rmilasan@suse.com - -- Rename: - udev-use-device-mapper-target-name-for-btrfs-device-ready.patch - to - 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch - -------------------------------------------------------------------- -Wed Jul 30 21:10:21 UTC 2014 - jeffm@suse.com - -- udev: use device mapper target name for btrfs device ready (bnc#888215). -- Add udev-use-device-mapper-target-name-for-btrfs-device-ready.patch - -------------------------------------------------------------------- -Wed Jul 30 12:53:07 UTC 2014 - werner@suse.de - -- Add patch tomcat6-var-lock-subsys-legacy.patch to add the - compatibility directory /var/lock/subsys (bnc#889357) - -------------------------------------------------------------------- -Wed Jul 30 11:45:21 UTC 2014 - werner@suse.de - -- Add portabiltiy patch - 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch - -------------------------------------------------------------------- -Wed Jul 30 11:32:23 UTC 2014 - werner@suse.de - -- Port and add upstream patch - 0001-sysv-order-initscripts-which-provide-network-before-.patch - 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch - 0003-keymap-Annotate-all-micmute-workarounds.patch - -------------------------------------------------------------------- -Wed Jul 30 11:10:34 UTC 2014 - werner@suse.de - -- Add patch tty-ask-password-agent-on-console.patch that is for system - console do ask passphrases on all devices of the console (bnc#886211) - -------------------------------------------------------------------- -Wed Jul 30 11:02:27 UTC 2014 - werner@suse.de - -- Add former SUSE and/now upstream patches (bnc#889297) - 1056-udevd-add-event-timeout-commandline-option.patch - 1057-udev-unify-event-timeout-handling.patch - 1058-udev-unify-event-timeout-handling.patch (backport for - compatibility if patch 1022 is not applied) - 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch - -------------------------------------------------------------------- -Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de - -- Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid - rpmlink warning -- Add upstream patches - 0001-bus-proxyd-fix-incorrect-comparison.patch - 0002-shell-completion-prevent-mangling-unit-names.patch - 0003-Always-check-asprintf-return-code.patch - 0004-bash-completion-use-list-unit-files-to-get-all-units.patch - 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch - 0006-parse_boolean-require-exact-matches.patch - 0007-drop_duplicates-copy-full-BindMount-struct.patch - 0008-shell-completion-prevent-mangling-unit-names-bash.patch - 0009-journald-always-add-syslog-facility-for-messages-com.patch - -------------------------------------------------------------------- -Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de - -- Disable blkrrpart for SLES12 and below - -------------------------------------------------------------------- -Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de - -- Add upstream patch - 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch -- Add with condition blkrrpart to be able to disable the patches - 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 - which uses the BLKRRPART ioctl for e.g. synthesize change events - which may interfere with other tools like parted. - -------------------------------------------------------------------- -Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com - -- Update - handle-disable_caplock-and-compose_table-and-kbd_rate.patch, - handle-numlock-value-in-etc-sysconfig-keyboard.patch: read - /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) - otherwise empty value in /etc/sysconfig/keyboard might override - /etc/vconsole.conf values. -- Update : - 0001-journal-compress-return-early-in-uncompress_startswi.patch - 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - 0002-vconsole-setup-run-setfont-before-loadkeys.patch - 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - apply-ACL-for-nvidia-device-nodes.patch - keep-crypt-password-prompt.patch - log-target-null-instead-kmsg.patch - parse-crypttab-for-noauto-option.patch - set-and-use-default-logconsole.patch: fix all warnings in code -- Remove 0001-compress-fix-return-value.patch: not relevant to - systemd v210 code. - -------------------------------------------------------------------- -Thu Jul 24 10:07:08 UTC 2014 - werner@suse.de - -- Also change udev-generate-peristent-rule to udev-generate-persistent-rule - in file list - -------------------------------------------------------------------- -Thu Jul 24 09:00:43 UTC 2014 - rmilasan@suse.com - -- Rename (fix typo in script name): - udev-generate-peristent-rule.sh to udev-generate-persistent-rule.sh - -------------------------------------------------------------------- -Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com - -- Enable better checks in write_net_rules to skip adding duplicated - entries in the generate rules (bnc#888178). - Add 1053-better-checks-in-write_net_rules.patch - -------------------------------------------------------------------- -Wed Jul 23 09:13:43 UTC 2014 - werner@suse.de - -- Change patch set-and-use-default-logconsole.patch to avoid to - write security/authorization (private) messages to console - -------------------------------------------------------------------- -Tue Jul 22 11:50:44 UTC 2014 - werner@suse.de - -- Add patch set-and-use-default-logconsole.patch to use and set - the default logging console for both journald and kernel messages - -------------------------------------------------------------------- -Mon Jul 21 13:22:35 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-bash-completion-p-option-for-journalctl.patch - 0002-journalctl-man-allow-only-between-terms.patch - 0003-systemd-use-pager-for-test-and-help.patch - -------------------------------------------------------------------- -Mon Jul 21 12:49:00 UTC 2014 - werner@suse.de - -- Use verify scripts and add permission files for systemd logger -- Avoid useless warning about static systemd unit files -- Make pam file a config file -- Remove non-break-space from this changelog - -------------------------------------------------------------------- -Mon Jul 21 11:09:44 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-compress-fix-return-value.patch - 0002-Be-more-verbose-when-bind-or-listen-fails.patch - 0003-Add-quotes-to-warning-message.patch - 0004-systemd-return-the-first-error-from-manager_startup.patch - -------------------------------------------------------------------- -Mon Jul 21 10:42:10 UTC 2014 - werner@suse.de - -- Replace patch 0001-fix-only-discover-Xen-domU.patch with - upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch -- Replace patch 0001-detect-s390-virt.patch with upstream - patch 0001-systemd-detect-virt-detect-s390-virtualization.patch - -------------------------------------------------------------------- -Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-po-add-Ukrainian-translation.patch - 0002-man-document-yearly-and-annually-in-systemd.time-7.patch - 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -- Add patch 0001-fix-only-discover-Xen-domU.patch to fix upstream - patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch - -------------------------------------------------------------------- -Thu Jul 17 06:32:51 UTC 2014 - rmilasan@suse.com - -- Check if NAME key has a value before going thru the rule (bnc#885232). - Add 1051-check-if-NAME-has-a-value.patch - -------------------------------------------------------------------- -Wed Jul 16 16:33:12 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch - 0002-units-serial-getty-.service-use-the-default-RestartS.patch - 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - -------------------------------------------------------------------- -Tue Jul 15 12:30:31 UTC 2014 - rmilasan@suse.com - -- Only rename SRIOV-VF devices if device name start with eth (bnc#885232). - Add 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch - -------------------------------------------------------------------- -Tue Jul 15 07:39:40 UTC 2014 - werner@suse.de - -- Add patch vhangup-on-all-consoles.patch that is do a vhangup on - lines (bnc#886599) - -------------------------------------------------------------------- -Tue Jul 15 06:29:54 UTC 2014 - jlee@suse.com - -- Removed %{_libexecdir}/modules-load.d/efivars.conf because the kernel - patch of autoload efivars driver accepted by linux-efi upstream. - (bnc#881559) - https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=next&id=be756a5327fe3d4686d74d3e9b273010424e230c - -------------------------------------------------------------------- -Mon Jul 14 14:53:21 UTC 2014 - werner@suse.de - -- Update patch - 1007-physical-hotplug-cpu-and-memory.patch (bnc#869603) -- Add script systemd-remount-tmpfs (bnc#869603) as helper script - for the rule changed in patch 1007-physical-hotplug-cpu-and-memory.patch - -------------------------------------------------------------------- -Mon Jul 14 11:43:12 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-event-pull-in-sd-event.h-from-event-util.h.patch - 0002-util-fix-has-cc-check-and-add-test.patch - 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch - 0004-fileio-quote-more-shell-characters-in-envfiles.patch - -------------------------------------------------------------------- -Fri Jul 11 12:21:06 UTC 2014 - werner@suse.de - -- Only on SLES12 seccomp is available on ppc64 and s390x - -------------------------------------------------------------------- -Thu Jul 10 13:33:32 UTC 2014 - werner@suse.de - -- Port and add upstream patch - 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch - -------------------------------------------------------------------- -Wed Jul 9 13:14:02 UTC 2014 - werner@suse.de - -- Add patches - 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch - 0002-hostnamed-add-a-new-chassis-type-for-watches.patch -- Port and add upstream patches - 0001-journal-compress-return-early-in-uncompress_startswi.patch - 0002-journal-compress-improve-xz-compression-performance.patch - -------------------------------------------------------------------- -Wed Jul 9 12:41:53 UTC 2014 - meissner@suse.com - -- enable seccomp also for ppc64 and s390x - -------------------------------------------------------------------- -Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de - -- Port and add upstream patches - 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch - 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - 0003-architecture-add-string-table-entries-for-mips-le-ar.patch - 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch - 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch - 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch - 0007-service-flush-status-text-and-errno-values-each-time.patch - -------------------------------------------------------------------- -Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de - -- Add upstream patch - 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch - -------------------------------------------------------------------- -Mon Jul 7 13:06:35 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-machine-don-t-return-uninitialized-variable.patch -- Port and add upstream patch - 0002-vconsole-setup-run-setfont-before-loadkeys.patch - -------------------------------------------------------------------- -Mon Jul 7 13:04:00 UTC 2014 - rmilasan@suse.com - -- Rename - 0001-udev-net_setup_link-add-a-bit-more-logging.patch - to - 1048-udev-net_setup_link-add-a-bit-more-logging.patch - -------------------------------------------------------------------- -Fri Jul 4 10:01:07 UTC 2014 - werner@suse.de - -- Port and add upstream patches - 0001-udev-net_setup_link-add-a-bit-more-logging.patch - 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch - 0002-namespace-fix-uninitialized-memory-access.patch - -------------------------------------------------------------------- -Fri Jul 4 09:43:12 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-architecture-Add-tilegx.patch - 0002-architecture-Add-cris.patch - 0003-arch-add-crisv32-to-uname-check.patch - 0004-architecture-remove-cris-from-uname-list.patch - -------------------------------------------------------------------- -Fri Jul 4 09:32:47 UTC 2014 - werner@suse.de - -- Add upstream patches - 0006-hwdb-update.patch - 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Thu Jul 3 12:48:27 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-parse_uid-return-ENXIO-for-1-uids.patch - 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch - 0003-localed-consider-an-unset-model-as-a-wildcard.patch - 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch - 0005-bus-close-a-bus-that-failed-to-connect.patch - 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch - -------------------------------------------------------------------- -Wed Jul 2 18:06:32 UTC 2014 - rmilasan@suse.com - -- Fix duplicated rules when having layer3 interfaces (bnc#882714). - Add 1046-fix-duplicated-rules-with-layer3-interfaces.patch - -------------------------------------------------------------------- -Tue Jul 1 14:53:44 UTC 2014 - werner@suse.de - -- Require correct pam-config version overall even for scriptlets (bnc#885288) - -------------------------------------------------------------------- -Tue Jul 1 12:19:27 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch - 0002-journald-make-MaxFileSec-really-default-to-1month.patch - 0003-units-remove-RefuseManualStart-from-units-which-are-.patch - 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch - 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch - 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch - 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch - -------------------------------------------------------------------- -Tue Jul 1 09:58:04 UTC 2014 - werner@suse.de - -- Be aware that close_nointr_nofail() may fail whereas safe_close() not - -------------------------------------------------------------------- -Tue Jul 1 08:56:48 UTC 2014 - werner@suse.de - -- Add upstream patches - 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch - 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch - 1044-rules-update-qemu-hid-rules.patch - 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch - -------------------------------------------------------------------- -Fri Jun 27 12:46:12 UTC 2014 - werner@suse.de - -- Add upstream bug fix patch - 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch (bnc#882714) - -------------------------------------------------------------------- -Fri Jun 27 08:17:47 UTC 2014 - werner@suse.de - -- Update of patch 0001-detect-s390-virt.patch (bnc#880438) - -------------------------------------------------------------------- -Thu Jun 26 10:02:26 UTC 2014 - werner@suse.de - -- Shut up stupid check scripts crying for not mentioned systemd-mini-rpmlintrc - -------------------------------------------------------------------- -Thu Jun 26 09:31:19 UTC 2014 - werner@suse.de - -- Add upstream patchs - 0001-core-use-correct-format-string-for-UIDs.patch - 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch - 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - -------------------------------------------------------------------- -Thu Jun 26 06:44:09 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-units-order-network-online.target-after-network.targ.patch - to make sure that etwork-online.target follows network.target - -------------------------------------------------------------------- -Wed Jun 25 18:09:52 UTC 2014 - rmilasan@suse.com - -- rules: re-enable dev_id conditionally in persistent rules - (bnc#884403 and bnc#882714). - Add 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch - -------------------------------------------------------------------- -Wed Jun 25 17:27:55 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch - 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch - 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch - 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch - 0005-man-fix-path-in-crypttab-5.patch - -------------------------------------------------------------------- -Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de - -- Add upstream patch - 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it - fixes udevadm settle exit code which may had broken dracut scripts - (bnc#884271 comment#18) - -------------------------------------------------------------------- -Wed Jun 25 14:12:52 UTC 2014 - werner@suse.de - -- Temporary disable patch 1022 (bnc#884271 and bnc#882714). - -------------------------------------------------------------------- -Tue Jun 24 11:55:39 UTC 2014 - rmilasan@suse.com - -- Rename 0002-udev-fix-invalid-free-in-enable_name_policy.patch - to 1038-udev-fix-invalid-free-in-enable_name_policy.patch - -------------------------------------------------------------------- -Tue Jun 24 11:27:27 UTC 2014 - werner@suse.de - -- Replace patches - 0001-systemd-empty-sigmask-on-reexec.patch with - upstream 0008-Reset-signal-mask-on-re-exec-to-init.patch - ensure-sysctl-are-applied-after-modules-are-loaded.patch with - upstream 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch - getty-generator-with-serial-3270-tty.patch with - upstream 0004-getty-generator-properly-escape-instance-names.patch -- Add upstream patches - 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch - 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch - 0005-po-add-Greek-translation.patch - 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0007-po-add-German-translation.patch - 0009-core-clean-up-signal-reset-logic-when-reexec.patch - 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch - 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch - 0012-core-transaction-avoid-misleading-error-message-when.patch - -------------------------------------------------------------------- -Tue Jun 24 10:04:21 UTC 2014 - werner@suse.de - -- Invert of the boolean for locking scheme of fsck (bnc#881125) -- Remove the ghost entry /etc/hostname and require the netcfg - -------------------------------------------------------------------- -Mon Jun 23 16:39:50 UTC 2014 - arvidjaar@gmail.com - -- make sure legacy services that depend on network are started after - network is available (bnc#883565) - * 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch - * update insserv-generator.patch to translate $network into - network-online.target - -------------------------------------------------------------------- -Wed Jun 18 13:35:58 UTC 2014 - werner@suse.de - -- Add patch 0001-detect-s390-virt.patch from Thomas Blume (bnc#880438) - to detect the virtualization layers on s390x as well - -------------------------------------------------------------------- -Wed Jun 18 12:58:42 UTC 2014 - werner@suse.de - -- Do not generate synthesize change for cd/dvd (bnc#882714, comment #51) - add patch 1037-udev-exclude-cd-dvd-from-block-device.patch from - Roberts suggestion as well as readd - 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - -------------------------------------------------------------------- -Tue Jun 17 14:21:56 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-fix-invalid-free-in-killall.patch - 0002-udev-fix-invalid-free-in-enable_name_policy.patch - 0003-install-fix-invalid-free-in-unit_file_mask.patch - -------------------------------------------------------------------- -Tue Jun 17 11:43:23 UTC 2014 - rmilasan@suse.com - -- rules: disable usage of dev_id in persistent rules (bnc#882714). - add: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch -- Disable patch (bnc#882714). - 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - -------------------------------------------------------------------- -Thu Jun 12 12:14:11 UTC 2014 - werner@suse.de - -- Add patch - 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch - from Hannes Reinecke to avoid a race condition between variable - 'SYSTEMD_READY=0' and 'systemd' tag within udev rules (bnc#881942) - -------------------------------------------------------------------- -Thu Jun 12 09:40:54 UTC 2014 - werner@suse.de - -- Add workaround for bnc#882393 by adding the systemd update utmp - runlevel service to the wanted unit of e.g. the graphical target -- Add some later on created files to our file list - -------------------------------------------------------------------- -Thu Jun 12 03:33:01 UTC 2014 - jlee@suse.com - -- Generate %{_libexecdir}/modules-load.d/efivars.conf so we load efivars - module at boot time not from udev (bnc#881559). - -------------------------------------------------------------------- -Wed Jun 11 21:59:29 UTC 2014 - crrodriguez@opensuse.org - -- Do not build EFI support code in architectures on which - the kernel does not support CONFIG_EFI, it won't work. - (ia64 also supports it, but that's dead so is not included) - -------------------------------------------------------------------- -Wed Jun 11 14:09:30 UTC 2014 - werner@suse.de - -- Add patch tmpfiles-do-not-clean-for-mandb-index-files.patch - there is no need to clean out all 30 days the index data base - files nor the cachedir tags of mandb. Those files are used - for whatis(1) as well as for apropos(1). - -------------------------------------------------------------------- -Wed Jun 11 13:31:53 UTC 2014 - werner@suse.de - -- Do not override predictable names for openSUSE - -------------------------------------------------------------------- -Wed Jun 11 11:03:45 UTC 2014 - werner@suse.de - -- Remove systemd-detect-xendom.patch as it becomes obsolete with - upstream patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -- Add upstream patches - 0001-umount-modernizations.patch - 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch - 0003-core-allow-transient-mount-units.patch - 0004-systemd-detect-virt-only-discover-Xen-domU.patch - 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch - 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch - -------------------------------------------------------------------- -Tue Jun 10 19:58:56 UTC 2014 - rmilasan@suse.com - -- Add upstream patches - 1033-udev-really-exclude-device-mapper-from-block-device.patch - 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch - -------------------------------------------------------------------- -Tue Jun 10 15:29:49 UTC 2014 - werner@suse.de - -- Change detection of new locking scheme of fsck - -------------------------------------------------------------------- -Tue Jun 10 11:11:55 UTC 2014 - werner@suse.de - -- Change 1021-udev-re-add-persistent-net-rules.patch to use persistent - rules as a default on SLES-12 and predictable rules as a default - otherwise -- Add cflags shell function to check possible flags for the compiler - as well as for the linker - -------------------------------------------------------------------- -Mon Jun 9 08:38:33 UTC 2014 - rmilasan@suse.com - -- Add upstream patches - 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch - 1026-udevd-inotify-modernizations.patch - 1027-udev-synthesize-change-events-for-partitions-when-to.patch - 1028-udev-link-config-fix-mem-leak.patch - 1029-udev-try-first-re-reading-the-partition-table.patch - 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch - 1031-udev-make-sure-we-always-get-change-for-the-disk.patch - 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch - -------------------------------------------------------------------- -Fri Jun 6 10:24:19 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-sd-event-restore-correct-timeout-behaviour.patch - 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch - -------------------------------------------------------------------- -Thu Jun 5 13:29:20 UTC 2014 - werner@suse.de - -- Add upstream patch 0001-hwdb-fix-case-sensitive-match.patch - -------------------------------------------------------------------- -Thu Jun 5 13:23:24 UTC 2014 - werner@suse.de - -- Add dynamic detection of util-linux version to be able to - disable the fsck option -l for version less than 2.25.0 - -------------------------------------------------------------------- -Thu Jun 5 08:06:02 UTC 2014 - werner@suse.de - -- Add changes from Cristian Rodríguez: - * The patches - delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch and - ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch - indeed mention unit files which do not exist anymore. -- Make sure that systemd-ask-password-wall.service has a tty as - it is not sure that a tty1 exists -- Avoid broken firmware loading on newer distributions as 13.1 - -------------------------------------------------------------------- -Thu Jun 5 07:24:35 UTC 2014 - werner@suse.de - -- Correct version check for the tcp-devel drop -- Use correct permissions for /var/log/journal -- Use ACLs for /var/log/journal as described in man:systemd-journald.service(8) - -------------------------------------------------------------------- -Thu Jun 5 02:33:48 UTC 2014 - crrodriguez@opensuse.org - -- Correct the libseccomp distribution version test must be >= 13.1 -- In order to use unit directive AppArmorProfile= libapparmor-devel - must be present in buildRequires. - -------------------------------------------------------------------- -Tue Jun 3 16:31:44 UTC 2014 - sndirsch@suse.com - -- apply-ACL-for-nvidia-uvm-device-node.patch: set ACL on nvidia-uvm - device (bnc#879767). - -------------------------------------------------------------------- -Tue Jun 3 15:56:01 UTC 2014 - werner@suse.de - -- Add changes from Cristian Rodríguez: - * fix keep-crypt-password-prompt.patch which floods the system - logs with bogus opendir failures, still the wrong thing to do however. - * Use %find_lang to collect locale files - * systemd-no-libattr.patch: systemd does not require libattr - but just sys/xattr.h, therefore drop the dependency. - (from upstream) - * Again, drop tcp-devel from buildRequires, this time it is not a - SUSE specific feature removal, tcpd supportdisappeared in systemd - 212 and we shouldn't keep it around. -- Add patch 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch - that is rename systemd-no-libattr.patch to git format -- Drop tcp-devel only for *next* openSUSE and not for SLES-12 nor - for openSUSE 13.1 - -------------------------------------------------------------------- -Tue Jun 3 14:23:40 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-virt-rework-container-detection-logic.patch - 0002-fsck-include-device-name-in-the-message-about-missin.patch - 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch - 0004-util-ignore_file-should-not-allow-files-ending-with.patch - 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch -- Add upstream patches to update keyboard data base - 0007-keyboard-add-Plantronics-.Audio-mute-button.patch -- Add upstream patches for udev - 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch - 1024-udev-always-close-lock-file-descriptor.patch - -------------------------------------------------------------------- -Tue Jun 3 12:55:53 UTC 2014 - rmilasan@suse.com - -- Fix enabling predictable rules when using net.ifnames=1. - update: 1021-udev-re-add-persistent-net-rules.patch - -------------------------------------------------------------------- -Fri May 30 07:35:07 UTC 2014 - rmilasan@suse.com - -- Re-add persistent rules as a default and make predictable rules as - fallback (bnc#880732). - add: 1021-udev-re-add-persistent-net-rules.patch -- udev: remove seqnum API and all assumptions about seqnums - add: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - -------------------------------------------------------------------- -Tue May 27 07:23:47 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-Do-not-unescape-unit-names-in-Install-section.patch - 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - -------------------------------------------------------------------- -Mon May 26 16:34:10 UTC 2014 - werner@suse.de - -- Add upstream patch - 1020-udev-keyboard-also-hook-into-change-events.patch - -------------------------------------------------------------------- -Mon May 26 15:25:28 UTC 2014 - werner@suse.de - -- Add upstream patches to update keyboard data base - 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch - 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -- Add upstream patches - 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch - 0002-nspawn-restore-journal-directory-is-empty-check.patch - 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - 0004-socket-properly-handle-if-our-service-vanished-durin.patch - -------------------------------------------------------------------- -Wed May 21 19:23:32 UTC 2014 - coolo@suse.com - -- fix file list of systemd.pc - -------------------------------------------------------------------- -Wed May 21 13:24:13 UTC 2014 - werner@suse.de - -- Add a workaround for old distributions like 13.1 to avoid - deadlocks due NFS shares stopped after network - -------------------------------------------------------------------- -Wed May 21 10:23:14 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-journal-cleanup-up-error-handling-in-update_catalog.patch - 0002-journal-properly-detect-language-specified-in-line.patch - 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch - -------------------------------------------------------------------- -Wed May 21 10:14:32 UTC 2014 - werner@suse.de - -- Add upstream patches to update usb and pci company identifiers - 0001-hwdb-update.patch - 0002-hwdb-update.patch - 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch - 0004-hwdb-update.patch - 0005-hwdb-update.patch - -------------------------------------------------------------------- -Wed May 21 08:33:34 UTC 2014 - werner@suse.de - -- Move systemd.pc and udev.pc to their main packages (bnc#876587) - -------------------------------------------------------------------- -Tue May 20 12:13:05 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-conf-parser-silently-ignore-sections-starting-with-X.patch - 0002-man-note-that-entire-sections-can-now-be-ignored.patch - 0004-machined-make-sure-GetMachineAddresses-is-available-.patch - 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch - 0006-login-add-mir-to-the-list-of-session-types.patch - 0007-logind-fix-Display-property-of-user-objects.patch - -------------------------------------------------------------------- -Tue May 20 11:31:46 UTC 2014 - werner@suse.de - -- Add upstream patches to update BluTooth company identifiers - 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Tue May 20 11:03:54 UTC 2014 - werner@suse.de - -- Add upstream patches to allow processes to serialize block device - events, also do execute the RUN tag if rename of a network device - fails: - 1016-udev-serialize-synchronize-block-device-event-handli.patch - 1017-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch - 1018-udev-avoid-use-of-uninitialized-err.patch -- Rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch - to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch - -------------------------------------------------------------------- -Mon May 19 13:21:18 UTC 2014 - werner@suse.de - -- Add upstream patches mainly for better lid handling (bnc#878525 - and bnc#868019) - 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch - 0002-logind-fix-printf-format.patch - 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch - 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch - 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch - 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch - 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch - 0008-man-update-journald-rate-limit-defaults.patch - 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch - 0010-logind-allow-suspending-if-there-are-no-displays.patch - -------------------------------------------------------------------- -Fri May 16 12:00:12 UTC 2014 - werner@suse.de - -- Make baselibs.conf aware to use the appropiate %post and %postun - scriptlets which includes pam-config (bnc#877674) - -------------------------------------------------------------------- -Fri May 16 11:47:06 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-close-socket-fds-asynchronously.patch - 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch - 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - -------------------------------------------------------------------- -Wed May 14 07:37:08 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch - 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch - to avoid that in pam session unwanted file descriptors are inherited - -------------------------------------------------------------------- -Tue May 13 08:28:05 UTC 2014 - werner@suse.de - -- Add patch log-target-null-instead-kmsg.patch from Thomas Blume - to enable the kernel developers to see a clean kmsg ring buffer - without any systemd/udev messages included (bnc#877021) - -------------------------------------------------------------------- -Mon May 12 13:35:25 UTC 2014 - werner@suse.de - -- Add upstream patches for backlight - 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch - 0002-backlight-do-nothing-if-max_brightness-is-0.patch - 0003-backlight-unify-error-messages.patch - 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch - 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - -------------------------------------------------------------------- -Mon May 12 13:28:20 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch - 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch - 0003-analyze-fix-plot-with-bad-y-size.patch - 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch - 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - -------------------------------------------------------------------- -Mon May 12 12:25:13 UTC 2014 - rmilasan@suse.com - -- Drop upstream-net_id-changes.patch and replace them with the correct - patches from upstream and their commits: - add: 1014-udev-update-net_id-comments.patch - add: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - -------------------------------------------------------------------- -Wed May 7 10:42:27 UTC 2014 - werner@suse.de - -- Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume - to handle the option 'noauto' in /etc/crypttab (bnc#742774) - -------------------------------------------------------------------- -Wed May 7 09:23:01 UTC 2014 - werner@suse.de - -- Modify and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to have the correct terminal type used with agetty -- Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch - to allow users to access systemd user journal (bnc#876694) - -------------------------------------------------------------------- -Mon May 5 14:02:16 UTC 2014 - werner@suse.de - -- Port upstream patch - 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch - back to 210 -- Add patch keep-crypt-password-prompt.patch from Thomas Blume - to fix bnc#875502 - fails to boot when swap space is encrypted -- Port upstream patch set for net_id back in patch - upstream-net_id-changes.patch - -------------------------------------------------------------------- -Fri May 2 10:12:26 UTC 2014 - werner@suse.de - -- Add patch shut-up-annoying-assertion-monotonic-clock-message.patch - to avoid annyoing messages on failing dual_timestamp_is_set in the - kernel's message ring buffer - -------------------------------------------------------------------- -Wed Apr 30 12:14:32 UTC 2014 - werner@suse.de - -- Update udev-generate-peristent-rule.sh from latest git - -------------------------------------------------------------------- -Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de - -- Modify and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to avoid also ANSI escape sequences for busy jobs on s390 - -------------------------------------------------------------------- -Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-bash-completion-fix-__get_startable_units.patch - 0002-sysctl-replaces-some-slashes-with-dots.patch - 0003-delta-do-not-use-unicode-chars-in-C-locale.patch - 0004-implement-a-union-to-pad-out-file_handle.patch -- Add patch respect-nfs-bg-option.patch from Thomas Blume: - System fails to boot if nfs mounts get added to fstab (bnc#874665) - -------------------------------------------------------------------- -Wed Apr 23 11:46:41 UTC 2014 - oneukum@suse.com - -- Do not use runtime PM for some IBM consoles (bnc#868931) - 1013-no-runtime-PM-for-IBM-consoles.patch - -------------------------------------------------------------------- -Thu Apr 17 13:56:31 UTC 2014 - werner@suse.de - -- Extend avoid-divide-by-zero-sigtrap.patch to make the crash - handler know about SIGTRAP and SIGSYS - -------------------------------------------------------------------- -Thu Apr 17 13:37:06 UTC 2014 - werner@suse.de - -- Add avoid-divide-by-zero-sigtrap.patch which fixes bnc#867663 - that is a divide by zero on a jobless system - -------------------------------------------------------------------- -Wed Apr 16 10:17:13 UTC 2014 - werner@suse.de - -- Use latest regenerate-initrd rpm macros (fate#313506) -- Add rescue-emergency-target-conflicts.patch to avoid that - emergency and rescue sulogin are fighting on console - -------------------------------------------------------------------- -Tue Apr 15 12:19:24 UTC 2014 - werner@suse.de - -- Modify systemd-sleep-grub to let hybrid-sleep.target work even - on XEN, changes from Thomas Blume (bnc#873432) - -------------------------------------------------------------------- -Mon Apr 14 13:55:36 UTC 2014 - werner@suse.de - -- Add backported upstream patch - 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -- Add patch systemd-detect-xendom.patch from Thomas Blume - to be able to detect XEN dom0 as well as domU -- systemd conflicts with sysvinit, ven if the package systemd-sysvinit - does already conflict with sysvinit-init (bnc#873444) - -------------------------------------------------------------------- -Thu Apr 10 10:17:47 UTC 2014 - werner@suse.de - -- Add two patches from hare@suse.com - 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch - 1012-Skip-persistent-device-link-creation-on-multipath-de.patch - to solve bnc#872929 - -------------------------------------------------------------------- -Wed Apr 9 08:53:21 UTC 2014 - rmilasan@suse.com - -- Increase result size for programs stdout (bnc#867840). - add: 1010-udev-increase-result-size-for-programs.patch -- Update udev-generate-peristent-rule.sh to the latest version. -- Clean-up spec file, re-arange patch to suit the setup, all udev - patches start with 1XXX-*.{patch,diff}. -- Rename: 0013-cdrom_id-use-the-old-MMC-fallback.patch to - 1009-cdrom_id-use-the-old-MMC-fallback.patch -- Rename: 1009-make-xsltproc-use-correct-ROFF-links.patch to - 0009-make-xsltproc-use-correct-ROFF-links.patch -- Rename: 1010-do-not-install-sulogin-unit-with-poweroff.patch to - 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Rename: 1014-journald-with-journaling-FS.patch to - 0014-journald-with-journaling-FS.patch -- Rename: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch to - 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch -- Rename: 1019-make-completion-smart-to-be-able-to-redirect.patch to - 0019-make-completion-smart-to-be-able-to-redirect.patch -- Rename: 1022-systemd-tmpfiles-ownerkeep.patch to - 0022-systemd-tmpfiles-ownerkeep.patch - -------------------------------------------------------------------- -Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de - -- Add patch portmap-wants-rpcbind-socket.patch to make sure that - rpcbind socket as well as service is up with the target -- Add or port upstream bugfix patches: - 0001-journal-fix-export-of-messages-containing-newlines.patch - 0002-systemctl-update-NAME-to-PATTERN-in-help.patch - 0003-tty-ask-password-agent-return-negative-errno.patch - 0004-systemd-python-use-.hex-instead-of-.get_hex.patch - 0005-systemd-python-fix-failing-assert.patch - -------------------------------------------------------------------- -Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch - 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch - 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch - 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch - 0005-sd-daemon-fix-incorrect-variable-access.patch - 0006-sd-event-initialization-perturbation-value-right-bef.patch - 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch - 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - 0009-ask-password-when-the-user-types-a-overly-long-passw.patch -- Modify patch - 1019-make-completion-smart-to-be-able-to-redirect.patch - to work together with - 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - -------------------------------------------------------------------- -Fri Mar 28 08:10:13 UTC 2014 - werner@suse.de - -- Use Robert's revised 1006-udev-always-rename-network.patch - -------------------------------------------------------------------- -Tue Mar 25 17:28:18 UTC 2014 - werner@suse.de - -- Readd patch Forward-suspend-hibernate-calls-to-pm-utils.patch - older code base as 13.1 only -- Add patch avoid-random-hangs-on-timeouts-due-lost-cwd.patch - to be able to terminate the user manager even if cwd of the - user is gone - -------------------------------------------------------------------- -Tue Mar 25 13:08:56 UTC 2014 - thomas.blume@suse.com - -- add prepare-suspend-to-disk.patch - enable suspend conditions check and preparation for systemd-sleep - (fate#316824, bnc#856389, bnc#856392) -- remove Forward-suspend-hibernate-calls-to-pm-utils.patch since it is obsolete - (bnc#856392#c20) -- add boot-local-start.patch - fix startup for /etc/init.d/boot.local (bnc#869142) - -------------------------------------------------------------------- -Mon Mar 24 11:19:38 UTC 2014 - coolo@suse.com - -- also autoreconf in systemd-mini to simplify spec file logic - and fix build in staging:gcc49 - (obsoleting 0002-make-209-working-on-older-dist.patch) - -------------------------------------------------------------------- -Wed Mar 19 13:21:37 UTC 2014 - werner@suse.de - -- Be sure that the refreshed manual pages are installed - -------------------------------------------------------------------- -Wed Mar 19 12:09:31 UTC 2014 - werner@suse.de - -- Add patch systemctl-set-default-target.patch which explain how - to override the default.target by using --force (bnc#868439) - -------------------------------------------------------------------- -Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de - -- Add Robert's udev-generate-peristent-rule shell script to - udev's tool library -- Add or port upstream bugfix patches: - 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch - 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch - 0006-Do-not-return-1-EINVAL-on-allocation-error.patch - 0007-networkd-fix-typo.patch - 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch - 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch - 0012-journald-remove-stray-reset-of-error-return-value.patch - 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch - -------------------------------------------------------------------- -Fri Mar 14 14:24:56 UTC 2014 - werner@suse.de - -- Add patch getty-generator-with-serial-3270-tty.patch to avoid - harmless error messages on not existing getty@3270 files - -------------------------------------------------------------------- -Fri Mar 14 11:07:29 UTC 2014 - werner@suse.de - -- Replace systemd-big-endian-reply-matching.patch with upstream - 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch - to solve broken systemd communication with and over dbus (bnc#866732) - -------------------------------------------------------------------- -Fri Mar 14 08:30:57 UTC 2014 - werner@suse.de - -- Readd patch 1008-add-msft-compability-rules.patch for - older code base as 13.1 -- Modify pre_checkin.sh to throw an error if a patch will be - applied which modifies one of Makefile.am, Makefile.in, or - configiure.ac as this breaks bootstrapping -- Add second version of make-209-working-on-older-dist.patch - to be able to apply for bootstrapping version - -------------------------------------------------------------------- -Thu Mar 13 17:35:11 UTC 2014 - schwab@linux-m68k.org - -- Don't require non-existing binutils-gold - -------------------------------------------------------------------- -Thu Mar 13 15:43:19 UTC 2014 - werner@suse.de - -- Avoid file conflict between udev and systemd (bnc#868230) - -------------------------------------------------------------------- -Wed Mar 12 16:52:09 UTC 2014 - werner@suse.de - -- Modify patch - module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - to ignore if /etc/sysconfig/kernel does not exist (bnc#865834) - -------------------------------------------------------------------- -Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de - -- Add patch systemd-big-endian-reply-matching.patch - make sure that systemd can talk with dbus-daemon even on big - endian systems (bnc#866732) - -------------------------------------------------------------------- -Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com - -- Due to previous reason, resurrect systemd-dbus-system-bus-address.patch -- Removed pkgconfig(dbus-1) BuildRequires - with 209 and newer, itis only - needed for quering default DBus directories, which we nowpass to configure. - This also unbreaks libdbus <-> systemd-miniBuild Cycle - -------------------------------------------------------------------- -Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch - 0002-manager-flush-memory-stream-before-using-the-buffer.patch - 0003-busname-don-t-drop-service-from-the-result-string.patch - 0004-fix-off-by-one-error-in-array-index-assertion.patch - 0005-logind-fix-policykit-checks.patch - 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch - 0007-dbus-suppress-duplicate-and-misleading-messages.patch - 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch - -------------------------------------------------------------------- -Tue Mar 11 07:47:55 UTC 2014 - werner@suse.de - -- Make compeletion file parser work (bnc#867664) - -------------------------------------------------------------------- -Fri Mar 7 14:50:39 CET 2014 - hare@suse.de - -- Integrate powerd handling in initctl service - + Remove 1016-support-powerfail-with-powerstatus.patch - + Remove systemd-powerfail - + Add systemd-powerd-initctl-support.patch -- Remove 61-msft.rules; superseded by sg3_utils (bnc#866933) -- Persistent by-path links for ATA devices (FATE#317063) - + Update 1001-re-enable-by_path-links-for-ata-devices.patch - -------------------------------------------------------------------- -Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-Fix-systemd-stdio-bridge-symlink.patch - 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch - 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch - 0004-man-document-missing-options-of-systemd-run.patch - 0005-systemd-run-add-some-extra-safety-checks.patch - 0006-journal-assume-that-next-entry-is-after-previous-ent.patch - 0007-journal-forget-file-after-encountering-an-error.patch - 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch - 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch - 0010-man-update-link-to-LSB.patch - 0011-man-systemd-bootchart-fix-spacing-in-command.patch - 0012-man-add-missing-comma.patch - 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - -------------------------------------------------------------------- -Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de - -- Add linker scripts as place holder of the old systemd shared - libraries now all included in libsystemd.so (bnc#867128) - -------------------------------------------------------------------- -Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de - -- Make patch 1006-udev-always-rename-network.patch work again - and add it again. - -------------------------------------------------------------------- -Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com - -- address missing owner functionality in systemd-tmpfiles (fate#314974) - 1022-systemd-tmpfiles-ownerkeep.patch - -------------------------------------------------------------------- -Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de - -- Generate the bash completion files on the fly for the case of - not having the package bash-completion around -- Add or port upstream bugfix patches: - 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - 0002-cdrom_id-use-the-old-MMC-fallback.patch - 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch - 0004-logs-show-fix-corrupt-output-with-empty-messages.patch - 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - 0008-README-document-that-var-run-must-be-a-symlink-run.patch - 0010-Replace-var-run-with-run-in-remaining-places.patch - 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch - 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch - 0014-login-fix-pos-array-allocation.patch - -------------------------------------------------------------------- -Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de - -- Update to Release v210 - + systemd will now relabel /dev after loading the SMACK policy - according to SMACK rules. - + A new unit file option AppArmoreProfile= has been added to - set the AppArmor profile for the processes of a unit. - + A new condition check ConditionArchitecture= has been added - to conditionalize units based on the system architecture, as - reported by uname()'s "machine" field. - + systemd-networkd now supports matching on the system - virtualization, architecture, kernel command line, host name - and machine ID. - + logind is now a lot more aggressive when suspending the - machine due to a closed laptop lid. - + logind will now watch SW_DOCK switches and inhibit reaction - to the lid switch if it is pressed. - + nspawn will now make use of the devices cgroup controller by - default, and only permit creation of and access to the usual - API device nodes like /dev/null or /dev/random, as well as - access to (but not creation of) the pty devices. - + systemd will now understand the usual M, K, G, T suffixes - according to SI conventions (i.e. to the base 1000) when - referring to throughput and hardware metrics. - + The DeviceAllow= setting in unit files now supports a syntax - to whitelist an entire group of devices node majors at once, - based on the /proc/devices listing. For example, with the - string "char-pts" it is now possible to whitelist all - current and future pseudo-TTYs at once. - + sd-event learned a new "post" event source. Event sources of - this type are triggered by the dispatching of any event - source of a type that is not "post". This is useful for - implementing clean-up and check event sources that are - triggered by other work being done in the program. - + The compatibility libraries for libsystemd-journal.so, - libsystem-id128.so, libsystemd-login.so and - libsystemd-daemon.so do not make use of IFUNC - anymore. -- Dropped systemd patches as those are fixed upstream: - * 0001-units-serial-getty-.service-add-Install-section.patch - * 0001-shared-architecture.h-fix-preprocessor-directives.patch - * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch - * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patchc - * 0001-make-tests-with-libseccomp-work.patch - * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch - * 0001-units-serial-getty-.service-add-Install-section.patch -- Dropped patches as those do not work anymore - * 1006-udev-always-rename-network.patch -- Renamed systemd patches as seen from git log: - * 0001-cdrom_id-use-the-old-MMC-fallback.patch - become 0002-cdrom_id-use-the-old-MMC-fallback.patch - * 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch - become 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch - * 0001-logs-show-fix-corrupt-output-with-empty-messages.patch - become 0004-logs-show-fix-corrupt-output-with-empty-messages.patch -- Add several upstream bugfix patches which are missed: - * 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch - * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch - * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch - * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch - * 0001-shared-architecture.h-fix-preprocessor-directives.patch - * 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - * 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - * 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - * 0008-README-document-that-var-run-must-be-a-symlink-run.patch - * 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch - * 0010-Replace-var-run-with-run-in-remaining-places.patch - * 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - * 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - * 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch - * 0014-login-fix-pos-array-allocation.patch -- Modified patches to make is build - * 0001-add-network-device-after-NFS-mount-units.patch -- Reenable libseccomp for the architecture for which libseccomp exists - -------------------------------------------------------------------- -Sun Mar 2 15:51:24 CET 2014 - ro@suse.de - -- always install compat pkgconfig files, regardless if - compat libs is enabled or not - -------------------------------------------------------------------- -Sun Mar 2 14:47:23 CET 2014 - ro@suse.de - -- disable use of libseccomp for sle12, library has not been ported - to most architectures -- do not use binutils-gold on s390/s390x, does not exist there -- fix exclude statements for bootstrap case - -------------------------------------------------------------------- -Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de - -- Add upstream patches - + 0001-cdrom_id-use-the-old-MMC-fallback.patch - + 0001-logs-show-fix-corrupt-output-with-empty-messages.patch - + 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch - -------------------------------------------------------------------- -Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de - -- Add patch - 0001-systemd-empty-sigmask-on-reexec.patch - which corrects sigmaks for reexec in initrd (bnc#864904) - -------------------------------------------------------------------- -Fri Feb 28 17:38:06 UTC 2014 - werner@suse.de - -- Add patch - 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - to avoid error on not existing file /proc/self/loginuid - -------------------------------------------------------------------- -Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de - -- Make patch - 0001-make-209-working-on-older-dist.patch - more smart that is make configure script les restrictive -- Make patch - apply-ACL-for-nvidia-device-nodes.patch - apply to v209 - -------------------------------------------------------------------- -Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de - -- Update to Release v209 on the base of the work of Stefan Brüns - from declined submit request 223602: - + A new tool "systemd-socket-proxyd" has been added - + Add a new tool to save/restore rfkill state on - shutdown/boot. - + Save/restore state of keyboard backlights in addition to - display backlights on shutdown/boot. - + udev learned a new SECLABEL{} construct to label device - nodes with a specific security label when they appear. For - now, only SECLABEL{selinux} is supported, but the syntax is - prepared for additional security frameworks. - + When the User= switch is used in a unit file, also - initialize $SHELL= based on the user database entry. - + systemd no longer depends on libdbus. All communication is - now done with sd-bus, systemd's low-level bus library - implementation. - + sd-bus: add a light-weight vtable implementation that allows - defining objects on the bus with a simple static const - vtable array of its methods, signals and properties. - + systemd will not generate or install static dbus - introspection data anymore to /usr/share/dbus-1/interfaces, - as the precise format of these files is unclear, and - nothing makes use of it. - + A proxy daemon is now provided to proxy clients connecting - via classic D-Bus AF_UNIX sockets to kdbus, to provide full - compatibility with classic D-Bus. - + A bus driver implementation has been added that supports the - classic D-Bus bus driver calls on kdbus, also for - compatibility purposes. - + A new API "sd-event.h" has been added that implements a - minimal event loop API built around epoll. - + A new API "sd-rntl.h" has been added that provides an API - around the route netlink interface of the kernel, similar in - style to "sd-bus.h". - + A new API "sd-dhcp-client.h" has been added that provides a - small DHCPv4 client-side implementation. This is used by - "systemd-networkd". - + There is a new kernel command line option - "systemd.restore_state=0|1". When set to "0", none of the - systemd tools will restore saved runtime state to hardware - devices. More specifically, the rfkill and backlight states - are not restored. - + The FsckPassNo= compatibility option in mount/service units - has been removed. The fstab generator will now add the - necessary dependencies automatically, and does not require - PID1's support for that anymore. - + journalctl gained a new switch, --list-boots, that lists - recent boots with their times and boot IDs. - + The various tools like systemctl, loginctl, timedatectl, - busctl, systemd-run, ... have gained a new switch "-M" to - connect to a specific, local OS container (as direct - connection, without requiring SSH). - + systemd-run and systemd-analyze also gained support for "-H" - to connect to remote hosts via SSH. This is particularly - useful for systemd-run because it enables queuing of jobs - onto remote systems. - + machinectl gained a new command "login" to open a getty - login in any local container. This works with any container - that is registered with machined (such as those created by - libvirt-lxc or nspawn), and which runs systemd inside. - + machinectl gained a new "reboot" command that may be used to - trigger a reboot on a specific container that is registered - with machined. This works on any container that runs an init - system of some kind. - + systemctl gained a new "list-timers" command to print a nice - listing of installed timer units with the times they elapse - next. - + Alternative reboot() parameters may now be specified on the - "systemctl reboot" command line and are passed to the - reboot() system call. - + systemctl gained a new --job-mode= switch to configure the - mode to queue a job with. This is a more generic version of - --fail, --irreversible, and --ignore-dependencies, which are - still available but not advertised anymore. - + /etc/systemd/system.conf gained new settings to configure - various default timeouts of units, as well as the default - start limit interval and burst. These may still be overridden - within each Unit. - + PID1 will now export on the bus profile data of the security - policy upload process (such as the SELinux policy upload to - the kernel). - + journald: when forwarding logs to the console, include - timestamps (following the setting in - /sys/module/printk/parameters/time). - + OnCalendar= in timer units now understands the special - strings "yearly" and "annually". (Both are equivalent) - + The accuracy of timer units is now configurable with the new - AccuracySec= setting. It defaults to 1min. - + A new dependency type JoinsNamespaceOf= has been added that - allows running two services within the same /tmp and network - namespace, if PrivateNetwork= or PrivateTmp= are used. - + A new command "cat" has been added to systemctl. It outputs - the original unit file of a unit, and concatenates the - contents of additional "drop-in" unit file snippets, so that - the full configuration is shown. - + systemctl now supports globbing on the various "list-xyz" - commands, like "list-units" or "list-sockets", as well as on - those commands which take multiple unit names. - + journalctl's --unit= switch gained support for globbing. - + All systemd daemons now make use of the watchdog logic so - that systemd automatically notices when they hang. - + If the $container_ttys environment variable is set, - getty-generator will automatically spawn a getty for each - listed tty. This is useful for container managers to request - login gettys to be spawned on as many ttys as needed. - + %h, %s, %U specifier support is not available anymore when - used in unit files for PID 1. This is because NSS calls are - not safe from PID 1. They stay available for --user - instances of systemd, and as special case for the root user. - + loginctl gained a new "--no-legend" switch to turn off output - of the legend text. - + The "sd-login.h" API gained three new calls: - sd_session_is_remote(), sd_session_get_remote_user(), - sd_session_get_remote_host() to query information about - remote sessions. - + The udev hardware database now also carries vendor/product - information of SDIO devices. - + The "sd-daemon.h" API gained a new sd_watchdog_enabled() to - determine whether watchdog notifications are requested by - the system manager. - + Socket-activated per-connection services now include a - short description of the connection parameters in the - description. - + tmpfiles gained a new "--boot" option. When this is not used, - only lines where the command character is not suffixed with - "!" are executed. When this option is specified, those - options are executed too. - + systemctl gained a new "import-environment" command which - uploads the caller's environment (or parts thereof) into the - service manager so that it is inherited by services started - by the manager. This is useful to upload variables like - $DISPLAY into the user service manager. - + A new PrivateDevices= switch has been added to service units - which allows running a service with a namespaced /dev - directory that does not contain any device nodes for - physical devices. More specifically, it only includes devices - such as /dev/null, /dev/urandom, and /dev/zero which are API - entry points. - + logind has been extended to support behaviour like VT - switching on seats that do not support a VT. This makes - multi-session available on seats that are not the first seat - (seat0), and on systems where kernel support for VTs has - been disabled at compile-time. - + If a process holds a delay lock for system sleep or shutdown - and fails to release it in time, we will now log its - identity. This makes it easier to identify processes that - cause slow suspends or power-offs. - + When parsing /etc/crypttab, support for a new key-slot= - option as supported by Debian is added. It allows indicating - which LUKS slot to use on disk, speeding up key loading. - + The sd_journald_sendv() API call has been checked and - officially declared to be async-signal-safe so that it may - be invoked from signal handlers for logging purposes. - + Boot-time status output is now enabled automatically after a - short timeout if boot does not progress, in order to give - the user an indication what she or he is waiting for. - + The boot-time output has been improved to show how much time - remains until jobs expire. - + The KillMode= switch in service units gained a new possible - value "mixed". If set, and the unit is shut down, then the - initial SIGTERM signal is sent only to the main daemon - process, while the following SIGKILL signal is sent to - all remaining processes of the service. - + logind will now also track a "Desktop" identifier for each - session which encodes the desktop environment of it. This is - useful for desktop environments that want to identify - multiple running sessions of itself easily. - + A new SELinuxContext= setting for service units has been - added that allows setting a specific SELinux execution - context for a service. - + Most systemd client tools will now honour $SYSTEMD_LESS for - settings of the "less" pager. - + systemd's "seccomp" hook-up has been changed to make use of - the libseccomp library instead of using its own - implementation. This has benefits for portability among - other things. -- Dropped systemd patches as those are fixed upstream: - * 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch - * 0002-fix-lingering-references-to-var-lib-backlight-random.patch - * 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch - * 0004-systemctl-fix-name-mangling-for-sysv-units.patch - * 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch - * 0006-journald-add-missing-error-check.patch - * 0007-bus-fix-potentially-uninitialized-memory-access.patch - * 0008-dbus-fix-return-value-of-dispatch_rqueue.patch - * 0009-modules-load-fix-error-handling.patch - * 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch - * 0011-strv-don-t-access-potentially-NULL-string-arrays.patch - * 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch - * 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch - * 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch - * 0001-gpt-auto-generator-exit-immediately-if-in-container.patch - * 0001-manager-when-verifying-whether-clients-may-change-en.patch - * 0001-logind-fix-bus-introspection-data-for-TakeControl.patch - * 0001-mount-check-for-NULL-before-reading-pm-what.patch - * 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch - * 0001-systemd-serialize-deserialize-forbid_restart-value.patch - * 0001-core-unify-the-way-we-denote-serialization-attribute.patch - * 0001-journald-fix-minor-memory-leak.patch - * 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch - * 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch - * 0001-login-fix-invalid-free-in-sd_session_get_vt.patch - * 0001-login-make-sd_session_get_vt-actually-work.patch - * 0001-Never-call-qsort-on-potentially-NULL-arrays.patch - * 0001-dbus-common-avoid-leak-in-error-path.patch - * 0001-drop-ins-check-return-value.patch - * 0001-shared-util-Fix-glob_extend-argument.patch - * 0001-Fix-bad-assert-in-show_pid_array.patch - * 0001-analyze-set-white-background.patch - * 0001-analyze-set-text-on-side-with-most-space.patch - * analyze-fix-crash-in-command-line-parsing.patch - * 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch - * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch - * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch - * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch - * U_logind_revert_lazy_session_activation_on_non_vt_seats.patch - * build-sys-make-multi-seat-x-optional.patch - * 1017-skip-native-unit-handling-if-sysv-already-handled.patch - * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch - * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch - * 0031-man-document-the-b-special-boot-option.patch - * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch - * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch - * 0035-activate-mention-E-in-the-help-text.patch - * 0036-activate-fix-crash-when-s-is-passed.patch - * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch - * 0038-core-socket-fix-SO_REUSEPORT.patch - * 0039-journal-when-appending-to-journal-file-allocate-larg.patch - * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch - * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch - * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch - * 0043-journal-simplify-pre-allocation-logic.patch - * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch - * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch - * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch - * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch - * 0049-systemd-treat-reload-failure-as-failure.patch -- Dropped backported systemd patches as those are fixed upstream - * 0145-logind-use-correct-who-enum-values-with-KillUnit.patch - * 1011-check-4-valid-kmsg-device.patch - * 0001-logind-garbage-collect-stale-users.patch -- Dropped udev patches as those are fixed fixed upstream: - * 0026-udevadm.xml-document-resolve-names-option-for-test.patch - * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch -- Modified patches - * 1006-udev-always-rename-network.patch -- Replaced patches - * the patch - 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - is upstream now but has to be replaced by patch - 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - to fix an further issue similar to the upstream patch (bnc#852015) - * the patch - 0001-upstream-systemctl-halt-reboot-error-handling.patch - is upstream now, only the part with the halt after a failed poweroff - has been added to the patch - 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - -------------------------------------------------------------------- -Thu Feb 27 15:13:09 UTC 2014 - werner@suse.de - -- Add patch 0001-make-209-working-on-older-dist.patch to make - it usable on older distributions like 13.1 - -------------------------------------------------------------------- -Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de - -- Add patch 0001-add-network-device-after-NFS-mount-units.patch to - add "After" dependency to all NFS shares to the network interface - device as this ensures at shutdown that the NFS share becomes - unmounted before the interface is down (bnc#861489) - -+------------------------------------------------------------------- -------------------------------------------------------------------- -Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de - -- enable compat-libs, BuildRequires binutils-gold - ("old" ld fails on ifunc magic) - -------------------------------------------------------------------- -Sun Feb 23 16:11:22 UTC 2014 - stefan.bruens@rwth-aachen.de - -- add network link configuration for udev - -------------------------------------------------------------------- -Sun Feb 23 15:44:01 UTC 2014 - stefan.bruens@rwth-aachen.de - -- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, - move to core and link in directly to avoid libudev dep all over -- Disable networkd -- Disable compat-libs, adapt files section -- add and remove some entries in the files section - -------------------------------------------------------------------- -Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de - -- Modify patch 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch - to avoid WantedBy for Should-Start/Start-Before/Start-After SysVinit - scripts (bnc#863217) - -------------------------------------------------------------------- -Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de - -- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - to do a final sync() and flush the disks - -------------------------------------------------------------------- -Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de - -- Add several upstream bugfix patches which are missed: - * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch - * 0026-udevadm.xml-document-resolve-names-option-for-test.patch - * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch - * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch - * 0031-man-document-the-b-special-boot-option.patch - * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch - * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch - * 0035-activate-mention-E-in-the-help-text.patch - * 0036-activate-fix-crash-when-s-is-passed.patch - * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch - * 0038-core-socket-fix-SO_REUSEPORT.patch - * 0039-journal-when-appending-to-journal-file-allocate-larg.patch - * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch - * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch - * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch - * 0043-journal-simplify-pre-allocation-logic.patch - * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch - * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch - * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch - * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch - * 0049-systemd-treat-reload-failure-as-failure.patch -- Add patch 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch - to avoid potential NULL pointer -- Reorder patches to reflect udev/systemd usage - -------------------------------------------------------------------- -Tue Feb 11 10:53:48 UTC 2014 - coolo@suse.com - -- don't build bash-completions for bootstrap package - -------------------------------------------------------------------- -Tue Feb 11 10:25:26 UTC 2014 - coolo@suse.com - -- add more requires to this-is-only-for-build-envs to avoid - problems in kiwi configs - -------------------------------------------------------------------- -Mon Feb 10 15:15:35 UTC 2014 - werner@suse.de - -- Add patch 0145-logind-use-correct-who-enum-values-with-KillUnit.patch - to be able to kill sessions (bnc#860574) - -------------------------------------------------------------------- -Mon Feb 10 11:19:31 UTC 2014 - werner@suse.de - -- Do not return from main shell script but simply exit (bnc#862789) - -------------------------------------------------------------------- -Sun Feb 9 18:43:38 UTC 2014 - werner@suse.de - -- ... as only the systemd-analyze completion depends on - bash-completion I prefere a without which has to be defined - for SLES 12 - -------------------------------------------------------------------- -Sun Feb 9 11:21:07 UTC 2014 - coolo@suse.com - -- avoid bootstrap cycle with libusb and systemd-mini - -------------------------------------------------------------------- -Sat Feb 8 06:12:55 UTC 2014 - coolo@suse.com - -- split bash-completion support into its own package, - no need for sles_version - -------------------------------------------------------------------- -Fri Feb 7 13:02:28 UTC 2014 - werner@suse.de - -- Split off systemd-rpm-macros as a separate package to avoid - a rebuild of all packages due new systemd package -- Define a sles_version 12 for suse_version 1315 - -------------------------------------------------------------------- -Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de - -- Change and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to disable the workaround to find /dev/3270/tty1 as this now - should be done by a) the kernel patch - http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html - and the changed udev rule 99-systemd.rules - -------------------------------------------------------------------- -Sun Feb 2 08:53:17 UTC 2014 - ohering@suse.com - -- Remove PreReq pidof from udev, nothing in this pkg uses it - -------------------------------------------------------------------- -Fri Jan 31 14:24:35 UTC 2014 - werner@suse.de - -- Change and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to re-enable colouring if 3270 console was enforced on the kernel - command line as 3270 cna handle colour ANSI escape sequences. - Also let the serial getty generator find the /dev/3270/tty1 - character device (bnc#861316) - -------------------------------------------------------------------- -Thu Jan 30 12:33:08 UTC 2014 - werner@suse.de - -- Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to strip the colouring ANSI escape sequences from the console - messages (bnc#860937) - -------------------------------------------------------------------- -Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de - -- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - to skip already by the kernel managed devices - -------------------------------------------------------------------- -Wed Jan 29 18:03:39 UTC 2014 - arvidjaar@gmail.com - -- fix timeout stopping user@.service (bnc#841544) - * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch - * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch - * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch - -------------------------------------------------------------------- -Tue Jan 28 12:44:07 UTC 2014 - werner@suse.de - -- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch - to be able to detect if the sysctl reboot() returns. -- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - A check for unmaintained disk like devices is added to be able to - flush and maybe shut them down. Also the missing sync() system - call is added for the direct halt/reboot systemctl command. Then - the system halt is used as fallback if poweroff fails for both - the direct poweroff systemctl command as well as for the - systemd-shutdown utility. - -------------------------------------------------------------------- -Thu Jan 23 13:24:53 UTC 2014 - werner@suse.de - -- Make systemd-mini build - -------------------------------------------------------------------- -Thu Jan 23 13:18:39 UTC 2014 - werner@suse.de - -- Make requires bash-completion a recommends - -------------------------------------------------------------------- -Tue Jan 21 13:05:59 UTC 2014 - werner@suse.de - -- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch - to avoid that enabled boot scripts will be handled as unit files - by systemctl status command (bnc#818044) - -------------------------------------------------------------------- -Tue Jan 21 12:51:20 UTC 2014 - werner@suse.de - -- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch - as the original code behaves exactly as the shutdown code of - the old SysVinit (bnc#750845) -- Rename support-powerfail-with-powerstatus.patch to - 1016-support-powerfail-with-powerstatus.patch - -------------------------------------------------------------------- -Mon Jan 20 10:18:20 UTC 2014 - fcrozat@suse.com - -- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in - systemd-analyze (bnc#859365) - -------------------------------------------------------------------- -Fri Jan 17 16:09:24 UTC 2014 - werner@suse.de - -- Add patch - 1019-make-completion-smart-to-be-able-to-redirect.patch - to make redirections work with the bash command completions for - for systemd command tools (bnc#856858, bnc#859072) - -------------------------------------------------------------------- -Fri Jan 17 12:24:13 UTC 2014 - werner@suse.de - -- Add patch - 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch - to support the "+" to tag wanted dependencies as well as make - sure that required dependencies are handles as required ones. - This should fix bnc#858864 and bnc#857204. - -------------------------------------------------------------------- -Thu Jan 16 16:08:00 UTC 2014 - lnussel@suse.de - -- apply preset also to service files that are new in upgrade - -------------------------------------------------------------------- -Wed Jan 15 14:11:02 UTC 2014 - werner@suse.de - -- Change support-powerfail-with-powerstatus.patch to use BindsTo - instead of BindTo - -------------------------------------------------------------------- -Wed Jan 15 12:34:53 UTC 2014 - werner@suse.de - -- Add patch 1017-enforce-sufficient-shutdown-warnings.patch - Warn once per hour in the last 3 hours, then all 30 minutes in last - hour, all 15 minutes in the last 45 minutes, all 10 minutes in the - last 15 minutes, and then all minute in the last 10 minutes (bnc#750845) - -------------------------------------------------------------------- -Tue Jan 14 18:28:09 UTC 2014 - werner@suse.de - -- Add patch support-powerfail-with-powerstatus.patch and source - file systemd-powerfail to implement SIGPWR support with evaluation - of the file /var/run/powerstatus (bnc#737690) - -------------------------------------------------------------------- -Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de - -- Adapt patch - 1011-check-4-valid-kmsg-device.patch - to fit current upstream version maybe related to bnc#854884 -- Change patch - 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - to check if XDG_RUNTIME_DIR is set before the call of pam_putenv() - may fix bnc#855160 - -------------------------------------------------------------------- -Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com - -- Disable multi-seat-x build, since package xorg-x11-server - currently in Factory no longer needs it. - -------------------------------------------------------------------- -Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com - -- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a - running user manager from garbage-collecting the user. Original - behavior caused bnc#849870 - -------------------------------------------------------------------- -Mon Dec 16 11:08:33 UTC 2013 - lbsousajr@gmail.com - -- Add build-sys-make-multi-seat-x-optional.patch - * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297 - * Now systemd-multi-seat-x build can be disabled with configure option - --disable-multi-seat-x. It should be done when xorg-x11-server - no longer needs it (work in progress). - -------------------------------------------------------------------- -Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com - -- Update insserv-generator.patch: fix crash in insserv generator - (bnc#854314). -- Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes - for Nvidia cards (bnc#808319). - -------------------------------------------------------------------- -Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de - -- Add patch - 1014-journald-with-journaling-FS.patch - which now uses the file system ioctls for switching off atime, - compression, and copy-on-write of the journal directory of the - the systemd-journald (bnc#838475) -- Let us build require the package config for libpcre (bnc#853293) - -------------------------------------------------------------------- -Sat Nov 30 08:16:02 UTC 2013 - arvidjaar@gmail.com - -- Add patch - 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch - Make sure emergency shell is not killed by attempt to start another unit - (bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653. -- Add patch - make-emergency.service-conflict-with-syslog.socket.patch - Previous patch did not fix problem if syslog connection request came - after emergency shell was already started. So forcibly stop syslog.socket - when starting emergency.service. (bnc#852232) - -------------------------------------------------------------------- -Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com - -- Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch - * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50 - -------------------------------------------------------------------- -Tue Nov 26 15:12:58 UTC 2013 - werner@suse.de - -- Add patch - 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - to avoid (xdg-)su to set XDG_RUNTIME_DIR to the original user and - avoid that e.g. pulseaudio will create /run/user//pulse owned - by root (bnc#852015) - -------------------------------------------------------------------- -Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de - -- Add patch - 1011-check-4-valid-kmsg-device.patch - to avoid a busy systemd-journald (bnc#851393) - -------------------------------------------------------------------- -Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de - -- Add patch - 1010-do-not-install-sulogin-unit-with-poweroff.patch - that is do not install console-shell.service in any system target - as this will cause automatic poweroff at boot (bnc#849071) - -------------------------------------------------------------------- -Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de - -- Add upstream patch - 0001-analyze-set-text-on-side-with-most-space.patch - to place the text on the side with most space - -------------------------------------------------------------------- -Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de - -- Add upstream patch - 0001-analyze-set-white-background.patch - to make SVG output of systemd analyze readable - -------------------------------------------------------------------- -Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de - -- Add patch - 1009-make-xsltproc-use-correct-ROFF-links.patch - to have valid ROFF links in manual pages working again (bnc#842844) - -------------------------------------------------------------------- -Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com - -- Add - 0001-gpt-auto-generator-exit-immediately-if-in-container.patch: - don't start gpt auto-generator in container (git). -- Add - 0001-manager-when-verifying-whether-clients-may-change-en.patch: - fix reload check in selinux case (git). -- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch: - fix introspection for TakeControl (git). -- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix - crash when parsing some incorrect unit (git). -- Add - 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch: - Fix udev rules parsing (git). -- Add - 0001-systemd-serialize-deserialize-forbid_restart-value.patch: - Fix incorrect deserialization for forbid_restart (git). -- Add - 0001-core-unify-the-way-we-denote-serialization-attribute.patch: - Ensure forbid_restart is named like other attributes (git). -- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in - journald (git). -- Add - 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch: - Improve ACPI firmware performance parsing (git). -- Add - 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch: - Fix journal rotation (git). -- Add - 0001-login-fix-invalid-free-in-sd_session_get_vt.patch: - Fix memory corruption in sd_session_get_vt (git). -- Add 0001-login-make-sd_session_get_vt-actually-work.patch: Ensure - sd_session_get_vt returns correct value (git). -- Add 0001-Never-call-qsort-on-potentially-NULL-arrays.patch: Don't - call qsort on NULL arrays (git). -- Add 0001-dbus-common-avoid-leak-in-error-path.patch: Fix memleak - in dbus-common code (git). -- Add 0001-drop-ins-check-return-value.patch: Fix return value for - drop-ins checks (git). -- Add 0001-shared-util-Fix-glob_extend-argument.patch: Fix - glob_extend argument (git). -- Add 0001-Fix-bad-assert-in-show_pid_array.patch: Fix bad assert - in show_pid_array (git). - - -------------------------------------------------------------------- -Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com - -- Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch: - fix acpi memleak. -- Add - 0002-fix-lingering-references-to-var-lib-backlight-random.patch: - fix invalid path in documentation. -- Add - 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch: - fix invalid memory free. -- Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix - name mangling for sysv units. -- Add - 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch: - fix OOM handling. -- Add 0006-journald-add-missing-error-check.patch: add missing - error check. -- Add 0007-bus-fix-potentially-uninitialized-memory-access.patch: - fix uninitialized memory access. -- Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix - return value. -- Add 0009-modules-load-fix-error-handling.patch: fix error - handling. -- Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch: - fix incorrect memory access. -- Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch: - fix incorrect memory access. -- Add - 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch: - fix invalid pointer. -- Add - 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch: - fix permission on /run/log/journal. -- Add - 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch: - order remote mount points properly before remote-fs.target. - -------------------------------------------------------------------- -Wed Oct 2 14:10:41 UTC 2013 - hrvoje.senjan@gmail.com - -- Explicitly require pam-config for %post of the main package - -------------------------------------------------------------------- -Wed Oct 2 08:03:30 UTC 2013 - fcrozat@suse.com - -- Release v208: - + logind gained support for facilitating privileged input and drm - devices access for unprivileged clients (helps Wayland / - kmscon). - + New kernel command line luks.options= allows to specify LUKS - options, when used with luks.uuid= - + tmpfileS.d snippets can uses specifier expansion in path names - (%m, %b, %H, %v). - + New tmpfiles.d command "m" introduced to change - owner/group/access mode of a file/directory only if it exists. - + MemorySoftLimit= cgroup settings is no longer supported - (underlying kernel cgroup attribute will disappear in the - future). - + memeory.use_hierarchy cgroup attribute is enabled for all - cgroups systemd creates in memory cgroup hierarchy. - + New filed _SYSTEMD_SLICE= is logged in journal messages related - to a slice. - + systemd-journald will no longer adjust the group of journal - files it creates to "systemd-journal" group. Permissions and - owernship is adjusted when package is upgraded. - + Backlight and random seed files are now stored in - /var/lib/systemd. - + Boot time performance measurements included ACPI 5.0 FPDT - informations if available. -- Drop merged patches: - 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch, - 0002-cgroup-correct-the-log-information.patch, - 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch, - 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch, - 0005-core-cgroup-first-print-then-free.patch, - 0006-swap-fix-reverse-dependencies.patch, - 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch, - 0009-polkit-Avoid-race-condition-in-scraping-proc.patch, - Fix-timeout-when-stopping-Type-notify-service.patch, - set-ignoreonisolate-noauto-cryptsetup.patch, - 0001-Fix-buffer-overrun-when-enumerating-files.patch, - 0007-libudev-fix-move_later-comparison.patch. -- Refresh patches - remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, - delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch, - handle-root_uses_lang-value-in-etc-sysconfig-language.patch, - handle-SYSTEMCTL_OPTIONS-environment-variable.patch, - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch. -- Own more ghost files. -- Do not run pam-config in systemd-mini %post. -- Add after-local.service to run after.local late during the boot - process (bnc#778715). - -------------------------------------------------------------------- -Tue Oct 1 17:09:01 UTC 2013 - fcrozat@suse.com - -- Update Fix-timeout-when-stopping-Type-notify-service.patch with - upstream fix. -- No longer start ask-password-wall, was causing too much spam on - terminals (bnc#747783). - -------------------------------------------------------------------- -Mon Sep 30 15:42:45 UTC 2013 - fcrozat@suse.com - -- Add set-ignoreonisolate-noauto-cryptsetup.patch: ensure noauto - encrypted mounts survives runlevel changes (bnc#843085). -- Add 0001-Fix-buffer-overrun-when-enumerating-files.patch: fix - logind crash when /run/systemd/sessions was too big (bnc#840055, - initial fix from hpj@suse.com). -- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to - only check for /boot/sysctl.conf- presence. -- Add service wrapper for after.local (bnc#778715). - -------------------------------------------------------------------- -Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com - -- Update use-usr-sbin-sulogin-for-emergency-service.patch to apply - to all services using sulogin and remove generated files from - upstream tarball (bnc#841398). - -------------------------------------------------------------------- -Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com - -- Fix-timeout-when-stopping-Type-notify-service.patch - Make sure MAINPID is watched when it becomes known (bnc#841544) - -------------------------------------------------------------------- -Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com - -- Remove output and error redirection to /dev/null in install - script, it might help tracing pam related issue (bnc#841573). - -------------------------------------------------------------------- -Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com - -- Move symlink migration trigger to post (bnc#821800). - -------------------------------------------------------------------- -Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org - -- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch - VUL-0: polkit: process subject race condition [bnc#835827] - CVE-2013-4288 - -------------------------------------------------------------------- -Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org - -- Build with --disable-ima as the openSUSE kernel - does not support IMA (CONFIG_IMA is not set) - -------------------------------------------------------------------- -Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org - -- Build with --disable-smack as the openSUSE kernel - does not support smack (CONFIG_SECURITY_SMACK is not set) - -------------------------------------------------------------------- -Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com - -- Don't use a trigger to create symlink for sysctl.conf, always run - the test on %post (bnc#840864). -- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to - ensure /boot is mounted before reading /boot/sysctl.conf-* - (bnc#809420). - -------------------------------------------------------------------- -Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org - -- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch - really fixes the swap unit problem mentioned in previous - commit & the opensuse-factory mailing list. - -------------------------------------------------------------------- -Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org - -- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch - missing important check on return value. -- 0002-cgroup-correct-the-log-information.patch fix misleading - log information. -- 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix - setting memory cgroup -- 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch - should fail if write fails. -- 0005-core-cgroup-first-print-then-free.patch use-after-free - will trigger if there is an error condition. -- 0006-swap-fix-reverse-dependencies.patch reported in - opensuse-factory list, topic "swap isn't activated" -- 0007-libudev-fix-move_later-comparison.patch libudev - invalid usage of "move_later". - -------------------------------------------------------------------- -Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org - -- while testing this new release I get in the logs ocassionally - at boot "systemd[1]: Failed to open private bus connection: - Failed to connect to socket /var/run/dbus/system_bus_socket: - No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS - is defined to /var/run/dbus/system_bus_socket instead of - /run/dbus/system_bus_socket and that does not fly when /var/run - is not yet available. (systemd-dbus-system-bus-address.patch) - -------------------------------------------------------------------- -Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com - -- Enable Predictable Network interface names (bnc#829526). - -------------------------------------------------------------------- -Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org - -- version 207, distribution specific changes follow, for overall - release notes see NEWS. -- Fixed: - * Failed at step PAM spawning /usr/lib/systemd/systemd: - Operation not permitted - * Fix shutdown hang "a stop job is running for Session 1 of user root" - that was reported in opensuse-factory list. -- systemd-sysctl no longer reads /etc/sysctl.conf however backward - compatbility is to be provides by a symlink created at %post. -- removed previously disabled upstream patches (merged): - 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch, - 0004-disable-the-cgroups-release-agent-when-shutting-down.patch, - 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch, - 0006-suppress-status-message-output-at-shutdown-when-quie.patch, -- removed upstream merged patches: - exclude-dev-from-tmpfiles.patch, - logind_update_state_file_after_generating_....patch -- Add systemd-pam_config.patch: use correct include name for PAM - configuration on openSUSE. - -------------------------------------------------------------------- -Mon Sep 9 14:39:46 UTC 2013 - fcrozat@suse.com - -- Add exclude-dev-from-tmpfiles.patch: allow to exclude /dev from - tmpfiles (bnc#835813). - -------------------------------------------------------------------- -Fri Sep 6 15:02:08 UTC 2013 - fcrozat@suse.com - -- Remove - force-lvm-restart-after-cryptsetup-target-is-reached.patch and - remove additional dependencies on LVM in other patches: LVM has - now systemd support, no need to work around it anymore in - systemd. - -------------------------------------------------------------------- -Wed Aug 21 10:42:35 UTC 2013 - idonmez@suse.com - -- Add patch logind_update_state_file_after_generating_the_session_fifo_not_before.patch - to fix https://bugs.freedesktop.org/show_bug.cgi?id=67273 - -------------------------------------------------------------------- -Tue Aug 6 09:24:07 UTC 2013 - lnussel@suse.de - -- explicitly enable getty@tty1.service instead of getty@.service as - the tty1 alias has been removed from the file (bnc#833494) - -------------------------------------------------------------------- -Thu Aug 1 15:52:20 UTC 2013 - fcrozat@suse.com - -- Ensure /usr/lib/systemd/system/shutdown.target.wants is created - and owned by systemd package. - -------------------------------------------------------------------- -Mon Jul 29 14:01:48 UTC 2013 - fcrozat@suse.com - -- Fix drop-in for getty@tty1.service - -------------------------------------------------------------------- -Thu Jul 25 12:35:29 UTC 2013 - fcrozat@suse.com - -- Move systemd-journal-gateway to subpackage to lower dependencies - in default install. - -------------------------------------------------------------------- -Tue Jul 23 01:32:38 UTC 2013 - crrodriguez@opensuse.org - -- version 206 , highlights: -* Unit files now understand the new %v specifier which - resolves to the kernel version string as returned by "uname-r". -* "journalctl -b" may now be used to look for boot output of a - specific boot. Try "journalctl -b -1" -* Creation of "dead" device nodes has been moved from udev - into kmod and tmpfiles. -* The udev "keymap" data files and tools to apply keyboard - specific mappings of scan to key codes, and force-release - scan code lists have been entirely replaced by a udev - "keyboard" builtin and a hwdb data file. - -- remove patches now in upstream -- systemd now requires libkmod >=14 and cryptsetup >= 1.6.0 -- systemd now require the kmod tool in addition to the library. - -------------------------------------------------------------------- -Sun Jul 14 05:25:51 UTC 2013 - arvidjaar@gmail.com - -- use-usr-sbin-sulogin-for-emergency-service.patch - emergency.service failed to start because sulogin is in /usr/sbin now - -------------------------------------------------------------------- -Fri Jul 12 17:09:23 CEST 2013 - mls@suse.de - -- fix build with rpm-4.11.1: /etc/xdg/system/user is a symlink, - not a directory - -------------------------------------------------------------------- -Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org - -- 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch - fix segfault at shutdown -- 0004-disable-the-cgroups-release-agent-when-shutting-down.patch - disable the cgroups release agent when shutting down. -- 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch - remove ancient fallback code; turn connection error into warning -- 006-suppress-status-message-output-at-shutdown-when-quie.patch - make shutdown honour "quiet" kernel cmdline. - -------------------------------------------------------------------- -Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org - -- fix broken symlink, service is called systemd-random-seed now. - -------------------------------------------------------------------- -Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com - -- Update to release 205: - + two new unit types have been introduced: - - Scope units are very similar to service units, however, are - created out of pre-existing processes -- instead of PID 1 - forking off the processes. - - Slice units may be used to partition system resources in an - hierarchial fashion and then assign other units to them. By - default there are now three slices: system.slice (for all - system services), user.slice (for all user sessions), - machine.slice (for VMs and containers). - + new concept of "transient" units, which are created at runtime - using an API and not based on configuration from disk. - + logind has been updated to make use of scope and slice units to - manage user sessions. Logind will no longer create cgroups - hierchies itself but will relying on PID 1. - + A new mini-daemon "systemd-machined" has been added which - may be used by virtualization managers to register local - VMs/containers. machinectl tool has been added to query - meta-data from systemd-machined. - + Low-level cgroup configuration options ControlGroup=, - ControlGroupModify=, ControlGroupPersistent=, - ControlGroupAttribute= have been removed. High-level attribute - settings or slice units should be used instead? - + A new bus call SetUnitProperties() has been added to alter - various runtime parameters of a unit, including cgroup - parameters. systemctl gained set-properties command to wrap - this call. - + A new tool "systemd-run" has been added which can be used to - run arbitrary command lines as transient services or scopes, - while configuring a number of settings via the command - line. - + nspawn will now inform the user explicitly that kernels with - audit enabled break containers, and suggest the user to turn - off audit. - + Support for detecting the IMA and AppArmor security - frameworks with ConditionSecurity= has been added. - + journalctl gained a new "-k" switch for showing only kernel - messages, mimicking dmesg output; in addition to "--user" - and "--system" switches for showing only user's own logs - and system logs. - + systemd-delta can now show information about drop-in - snippets extending unit files. - + systemd will now look for the "debug" argument on the kernel - command line and enable debug logging, similar to - "systemd.log_level=debug" already did before. - + "systemctl set-default", "systemctl get-default" has been - added to configure the default.target symlink, which - controls what to boot into by default. - + "systemctl set-log-level" has been added as a convenient - way to raise and lower systemd logging threshold. - + "systemd-analyze plot" will now show the time the various - generators needed for execution, as well as information - about the unit file loading. - + libsystemd-journal gained a new sd_journal_open_files() call - for opening specific journal files. journactl also gained a - new switch to expose this new functionality (useful for - debugging). - + systemd gained the new DefaultEnvironment= setting in - /etc/systemd/system.conf to set environment variables for - all services. - + If a privileged process logs a journal message with the - OBJECT_PID= field set, then journald will automatically - augment this with additional OBJECT_UID=, OBJECT_GID=, - OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if - system services want to log events about specific client - processes. journactl/systemctl has been updated to make use - of this information if all log messages regarding a specific - unit is requested. -- Remove 0001-journal-letting-interleaved-seqnums-go.patch, - 0002-journal-remember-last-direction-of-search-and-keep-o.patch, - 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch, - 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch, - 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch, - 0160-mount-when-learning-about-the-root-mount-from-mounti.patch, - 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch, - Start-ctrl-alt-del.target-irreversibly.patch, - systemctl-does-not-expand-u-so-revert-back-to-I.patch: merged - upstream. -- Regenerate patches 1007-physical-hotplug-cpu-and-memory.patch, - 1008-add-msft-compability-rules.patch, - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch, - fix-support-for-boot-prefixed-initscript-bnc-746506.patch, - handle-SYSTEMCTL_OPTIONS-environment-variable.patch, - handle-numlock-value-in-etc-sysconfig-keyboard.patch, - insserv-generator.patch, - optionally-warn-if-nss-myhostname-is-called.patch, - remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, - restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch, - service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch. -- Update macros.systemd.upstream with latest upstream revision. - -------------------------------------------------------------------- -Mon Jul 1 13:43:31 UTC 2013 - fcrozat@suse.com - -- Replace - parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch - patch with insserv-generator.patch: no longer patch systemd main - binary but generate systemd drop-in files using a generator, for - insserv.conf compatibility. - -------------------------------------------------------------------- -Mon Jul 1 09:14:55 UTC 2013 - coolo@suse.com - -- systemd-mini doesn't need dbus-1, only dbus-1-devel - -------------------------------------------------------------------- -Wed Jun 26 09:31:14 UTC 2013 - rmilasan@suse.com - -- Re-add fixed udev MSFT compability rules (bnc#805059, bnc#826528). - add: 1008-add-msft-compability-rules.patch - -------------------------------------------------------------------- -Wed Jun 26 08:51:29 UTC 2013 - rmilasan@suse.com - -- Drop 1007-add-msft-compability-rules.patch, breaks boot and links - in /dev/disk/by-id, will need proper rework (bnc#826528). - -------------------------------------------------------------------- -Mon Jun 24 00:15:24 UTC 2013 - crrodriguez@opensuse.org - -- 0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another - case where we are trying to umount the root directory at shutdown. -- 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch - only attempt to connect to a session bus if one likely exists - -------------------------------------------------------------------- -Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com - -- Automatically online CPUs/Memory on CPU/Memory hotplug add events - (bnc#703100, fate#311831). - add: 1008-physical-hotplug-cpu-and-memory.patch - -------------------------------------------------------------------- -Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com - -- Dropped backward compatibility -- Added check for upstream rpm macros changes - -------------------------------------------------------------------- -Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com - -- Split out RPM macros into separate package to simplify dependencies - -------------------------------------------------------------------- -Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org - -- 0001-journal-letting-interleaved-seqnums-go.patch and - 0002-journal-remember-last-direction-of-search-and-keep-o.patch - fix possible infinite loops in the journal code, related to - bnc #817778 - -------------------------------------------------------------------- -Sun Jun 16 23:59:28 UTC 2013 - jengelh@inai.de - -- Explicitly list libattr-devel as BuildRequires -- More robust make install call. Remove redundant %clean section. - -------------------------------------------------------------------- -Thu Jun 13 16:00:25 CEST 2013 - sbrabec@suse.cz - -- Cleanup NumLock setting code - (handle-numlock-value-in-etc-sysconfig-keyboard.patch). - -------------------------------------------------------------------- -Wed Jun 12 10:00:53 UTC 2013 - fcrozat@suse.com - -- Only apply 1007-add-msft-compability-rules.patch when not - building systemd-mini. - -------------------------------------------------------------------- -Tue Jun 11 11:01:46 UTC 2013 - rmilasan@suse.com - -- Add udev MSFT compability rules (bnc#805059). - add: 1007-add-msft-compability-rules.patch -- Add sg3_utils requires, need it by 61-msft.rules (bnc#805059). -- Clean-up spec file, put udev patches after systemd patches. -- Rebase patches so they would apply nicely. - -------------------------------------------------------------------- -Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org - -- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch - fixes : - * systemd-journald[347]: Failed to set ACL on - /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, - ignoring: Invalid argument -- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch - systemctl disable should remove dangling symlinks. -- 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch - alien childs are reported as alive when they are really dead. - -------------------------------------------------------------------- -Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com - -- Update to release 204: - + systemd-nspawn creates etc/resolv.conf in container if needed. - + systemd-nspawn will store metadata about container in container - cgroup including its root directory. - + cgroup hierarchy has been reworked, all objects are now suffxed - (with .session for user sessions, .user for users, .nspawn for - containers). All cgroup names are now escaped to preven - collision of object names. - + systemctl list-dependencies gained --plain, --reverse, --after - and --before switches. - + systemd-inhibit shows processes name taking inhibitor lock. - + nss-myhostname will now resolve "localhost" implicitly. - + .include is not allowed recursively anymore and only in unit - files. Drop-in files should be favored in most cases. - + systemd-analyze gained "critical-chain" command, to get slowest - chain of units run during boot-up. - + systemd-nspawn@.service has been added to easily run nspawn - container for system services. Just start - "systemd-nspawn@foobar.service" and container from - /var/lib/container/foobar" will be booted. - + systemd-cgls has new --machine parameter to list processes from - one container. - + ConditionSecurity= can now check for apparmor and SMACK. - + /etc/systemd/sleep.conf has been introduced to configure which - kernel operation will be execute when "suspend", "hibernate" or - "hybrid-sleep" is requrested. It allow new kernel "freeze" - state to be used too. (This setting won't have any effect if - pm-utils is installed). - + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape - passed argument if applicable. -- Regenerate some patches for this new release. -- Rename hostname-setup-shortname.patch to - ensure-shortname-is-set-as-hostname-bnc-820213.patch to be git - format-patch friendly. -- Update apply-ACL-for-nvidia-device-nodes.patch to apply ACL to - /dev/nvidia* (bnc#808319). -- Remove Ensure-debugshell-has-a-correct-value.patch, doable with a - configure option. -- Add systemctl-does-not-expand-u-so-revert-back-to-I.patch: avoids - expansion errors. -- Add Start-ctrl-alt-del.target-irreversibly.patch: ctrl-alt-del - should be irreversible for reliability. - -------------------------------------------------------------------- -Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org - -- Drop Add-bootsplash-handling-for-password-dialogs.patch bootsplash -support has been removed from the kernel. -- Drop ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch -fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166 -- Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -only on ARM, patch rejected upstream because is too generic. -- no such define TARGET_SUSE exists but it is used in -Revert-service-drop-support-for-SysV-scripts-for-the-early.patch -use HAVE_SYSV_COMPAT instead. - -------------------------------------------------------------------- -Fri May 24 11:37:49 UTC 2013 - fcrozat@suse.com - -- Do no ship defaults for sysctl, they should be part of aaa_base - (currently in procps). -- Add hostname-setup-shortname.patch: ensure shortname is set as - hostname (bnc#820213). - -------------------------------------------------------------------- -Fri May 17 15:53:33 UTC 2013 - fcrozat@suse.com - -- Rebase - parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch to - fix memory corruption (thanks to Michal Vyskocil) (bnc#820454). - -------------------------------------------------------------------- -Fri May 17 11:46:02 UTC 2013 - fcrozat@suse.com - -- Add sysctl-handle-boot-sysctl.conf-kernel_release.patch: ensure - /boot/sysctl.conf- is handled (bnc#809420). - -------------------------------------------------------------------- -Wed May 15 13:02:05 UTC 2013 - fcrozat@suse.com - -- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch: don't - free variable whose content is still be used (bnc#819970). - -------------------------------------------------------------------- -Tue May 14 14:22:05 UTC 2013 - fcrozat@suse.com - -- Add configure flags to ensure boot.local/halt.local are run on - startup/shutdown. - -------------------------------------------------------------------- -Mon May 13 18:08:41 UTC 2013 - rmilasan@suse.com - -- Fix firmware loading by enabling --with-firmware-path (bnc#817551). - -------------------------------------------------------------------- -Mon Apr 29 14:50:37 UTC 2013 - dschung@cs.uni-kl.de - -- Fix systemd-sysv-convert, so empty runlevel folders don't lead - to "line 44: [: too many arguments" - -------------------------------------------------------------------- -Fri Apr 26 16:37:28 CEST 2013 - fcrozat@suse.com - -- Fix handle-etc-HOSTNAME.patch to properly set hostname at startup - when using /etc/HOSTNAME. - -------------------------------------------------------------------- -Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com - -- Rename remaning udev patches (clean-up). -- Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at - boot time not from udev (bnc#761109). -- Drop unused patches: - 1001-Reinstate-TIMEOUT-handling.patch - 1005-udev-fix-sg-autoload-regression.patch - 1026-re-add-persistent-net.patch - -------------------------------------------------------------------- -Tue Apr 23 14:58:47 CEST 2013 - fcrozat@suse.com - -- Use drop-in file to fix bnc#804158. - -------------------------------------------------------------------- -Tue Apr 23 12:44:16 UTC 2013 - coolo@suse.com - -- add some more conflicts to make bootstrap work - -------------------------------------------------------------------- -Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com - -- Do not provide %{release} for systemd-analyze -- Add more conflicts to -mini packages -- Disable Predictable Network interface names until it has been - reviewed by network team, with /usr/lib/tmpfiles.d/network.conf. -- Don't package /usr/lib/firmware/update (not used) - -------------------------------------------------------------------- -Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org - -- Fix packaging error, there is no syslog.target anymore - do not pretend there is one. - -------------------------------------------------------------------- -Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com - -- Update to release 202: - + 'systemctl list-jobs' got some polishing. '--type=' argument - may now be passed more than once. 'systemctl list-sockets' has - been added. - + systemd gained a new unit 'systemd-static-nodes.service' - that generates static device nodes earlier during boot, and - can run in conjunction with udev. - + systemd-nspawn now places all containers in the new /machine - top-level cgroup directory in the name=systemd hierarchy. - + bootchart can now store its data in the journal. - + journactl can now take multiple --unit= and --user-unit= - switches. - + The cryptsetup logic now understands the "luks.key=" kernel - line switch. If a configured key file is missing, it - will fallback to prompting the user. -- Rebase some patches -- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to - properly handle SYSTEMCTL_OPTIONS - -------------------------------------------------------------------- -Fri Apr 19 12:47:13 UTC 2013 - max@suse.com - -- Fix regression in the default for tmp auto-deletion - (systemd-tmp-safe-defaults.patch, FATE#314974). - -------------------------------------------------------------------- -Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com - -- Update to release 201: - + udev now supports different nameng policies for network - interface for predictable names. - + udev gained support for loading additional device properties - from an indexed database. %udev_hwdb_update macro should be - used by packages adding entries to this database. - + Journal gained support for "Message Catalog", indexed database - to link up additional information with journal entries. - %journal_catalog_update macro should be used by packages adding - %entries to this database. - + "age" field for tmpfiles entries can be set to 0, forcing - removal of files matching this entry. - + coredumpctl gained "gdb" verb to invoke gdb on selected - coredump. - + New rpm macros has been added: %udev_rules_update(), - %_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir, - %_tmpfilesdir, %_sysctldir. - + In service files, %U can be used for configured user name of - the service. - + nspawn can be invoked without a controlling TTY. - + systemd and nspawn can accept socket file descriptors when - started for socket activation. This allow socket activated - nspawn containers. - + logind can now automatically suspend/hibernate/shutdown system - on idle. - + ConditionACPower can be used in unit file to detect if AC power - source is connected or if system is on battery power. - + EnvironmentFile= in unit files supports file globbing. - + Behaviour of PrivateTmp=, ReadWriteDirectories=, - ReadOnlyDirectories= and InaccessibleDirectories= has - changed. The private /tmp and /var/tmp directories are now - shared by all processes of a service (which means - ExecStartPre= may now leave data in /tmp that ExecStart= of - the same service can still access). When a service is - stopped its temporary directories are immediately deleted - (normal clean-up with tmpfiles is still done in addition to - this though). - + Resource limits (as exposed by cgroup controlers) can be - controlled dynamically at runtime for all units, using - "systemctl set-cgroup-attr foobar.server cgroup.attribute - value". Those settings are stored persistenly on disk. - + systemd-vconsole-setup will now copy all fonts settings to all - allocated VTs. - + timedated now exposes CanNTP property to indicate if a local - NTP service is available. - + pstore file system is mounted by default, if available. - + SMACK policies are loaded at early boot, if available. - + Timer units now support calendar time events. - + systemd-detect-virt detect xen PVs. - + Some distributions specific LSB targets has been dropped: - $x-display-manager, $mail-transfer-agent, - $mail-transport-agent, $mail-transfer-agent, $smtp, $null. As - well mail-transfer-agent.target and syslog.target has been - removed. - + systemd-journal-gatewayd gained SSL support and now runs as - unprivileged user/group - "systemd-journal-gateway:systemd-journal-gateway" - + systemd-analyze will read, when available, boot time - performance from EFI variable from boot loader supporting it. - + A new generator for automatically mounting EFI System Partition - (ESP) to /boot (if empty and no other file system has been - configured in fstab for it). - + logind will now send out PrepareForSleep(false) out - unconditionally, after coming back from suspend. - + tmpfiles gained a new "X" line type, that allows - configuration of files and directories (with wildcards) that - shall be excluded from automatic cleanup ("aging"). - + udev default rules set the device node permissions now only - at "add" events, and do not change them any longer with a - later "change" event. - + A new bootctl tool has been added that is an interface for - certain EFI boot loader operations. - + A new tool kernel-install has been added to install kernel - images according to Boot Loader Specification. - + A new tool systemd-activate can be used to test socket - activation. - + A new group "systemd-journal" is now owning journal files, - replacing "adm" group. - + journalctl gained "--reverse" to show output in reverse order, - "--pager-end" to jump at the end of the journal in the - pager (only less is supported) and "--user-unit" to filter for - user units. - + New unit files has been addedto ease for systemd usage in - initrd. - + "systemctl start" now supports "--irreversible" to queue - operations which can be reserved. It is now used to make - shutdown requests more robust. - + Auke Kok's bootchart has been merged and relicensed to - LGPLv2.1+. - + nss-myhostname has been merged in systemd codebase. - + some defaults sysctl values are now set by default: the safe - sysrq options are turned on, IP route verification is turned - on, and source routing disabled. The recently added hardlink - and softlink protection of the kernel is turned on. - + Add support for predictable network naming logic. It can be - turned off with kernel command line switch: net.ifnames=0 - + journald will now explicitly flush journal files to disk at the - latest 5 min after each write and will mark file offline until - next read. This should increase reliability in case of crash. - + remote-fs-setup.target target has been added to pull in - specific services when at least one remote file system is to be - mounted. - + timers.target and paths.target have been added as canonical - targets to pull user timer and path units, similar to - sockets.targets. - + udev daemon now sets default number of worker processes in - parallel based on number of CPUs instead of RAM. - + Most unit file settings which takes likst of items can now be -reset by assigning empty string to them, using drop-in. - + Add support for drop-in configuration file for units. - + Most unit file settings which takes likst of items can now be - reset by assigning empty string to them, using drop-in. - + improve systemg-cgtop output. - + improve 'systemctl status' output for socket, drop-in for units. - + 'hostnamectl set-hostname' allows setting FQDN hostnames. - + fractional time intervals are now parsed properly. - + localectl can list available X11 keymaps. - + systemd-analyze dot can filter for specific units and has been - rewritten in C. - + systemctl gained "list-dependencies" command. - + Inhibitors are now honored no only in GNOME. -- Many patches has been dropped, being merged upstream. -- Many patches has been renamed and regenerated with git, to have - consistent naming, authorship and comments embedded. -- Add - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch: - re-add support for boot.* initscripts until they are all migrated - to systemd unit files. -- Merge patches for nss-myhostname package to this package. - -------------------------------------------------------------------- -Fri Apr 12 16:17:04 UTC 2013 - rschweikert@suse.com - -- Add chromebook lid switch as a power switch to logind rule to - enable suspend on lid close - -------------------------------------------------------------------- -Mon Apr 8 14:51:47 CEST 2013 - fcrozat@suse.com - -- Add improve-readahead-spinning.patch: improve readahead - performance on spinning media with ext4. -- Add fix-journal-vacuum-logic.patch: fix vacuum logic in journal - (bnc#789589). -- Add fix-lsb-provides.patch: ensure LSB provides are correctly - handled if also referenced as dependencies (bnc#809646). -- Add fix-loopback-mount.patch: ensure udevd is started (and - therefore static devices are created) before mounting - (bnc#809820). -- Update systemd-sysv-convert to search services files in new - location (bnc#809695). -- Add logind-nvidia-acl.diff: set ACL on nvidia devices - (bnc#808319). -- Add do-no-isolate-on-fsck-failure.patch: do not turn off services - if fsck fails (bnc#812874) -- Add wait-for-processes-killed.patch: wait for processes killed by - SIGTERM before killing them with SIGKILL. -- Update systemctl-options.patch to only apply SYSTEMCTL_OPTIONS to - systemctl command (bnc#801878). - -------------------------------------------------------------------- -Tue Apr 2 22:09:42 CEST 2013 - sbrabec@suse.cz - -- Fixed disabling CapsLock and enabling NumLock (bnc#746595, - 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, - systemd-numlock-suse.patch). -- Explicitly require libgcrypt-devel to fix build failure. - -------------------------------------------------------------------- -Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com - -- udev: ensure that the network interfaces are renamed even if they - exist (bnc#809843). - add: 1027-udev-always-rename-network.patch - -------------------------------------------------------------------- -Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com - -- udev: re-add persistent network rules (bnc#809843). - add: 1026-re-add-persistent-net.patch -- rebase all patches, ensure that they apply properly. - -------------------------------------------------------------------- -Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com - -- Add rbind-mount.patch: handle rbind mount points correctly - (bnc#804575). - -------------------------------------------------------------------- -Tue Feb 19 11:20:31 CET 2013 - fcrozat@suse.com - -- Ensure journal is flushed on disk when systemd-logger is - installed for the first time. -- Add improve-journal-perf.patch: improve journal performance on - query. -- Add support-hybrid-suspend.patch: add support for hybrid suspend. -- Add forward-to-pmutils.patch: forward suspend/hibernation calls - to pm-utils, if installed (bnc#790157). - -------------------------------------------------------------------- -Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com - -- udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer - add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch -- udev: expose new ISO9660 properties from libblkid - add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch - -------------------------------------------------------------------- -Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de - -- Create getty@tty1.service to restore traditional SUSE behavior - of not clearing tty1. (bnc#804158) -- Better use of find -exec - -------------------------------------------------------------------- -Fri Feb 15 16:04:39 UTC 2013 - fcrozat@suse.com - -- Add early-sync-shutdown.patch: start sync just when - shutdown.target is beginning -- Update parse-multiline-env-file.patch to better handle continuing - lines. -- Add handle-HOSTNAME.patch: handle /etc/HOSTNAME (bnc#803653). -- Add systemctl-print-wall-on-if-successful.patch: only print on - wall if successful. -- Add improve-bash-completion.patch: improve bash completion. - -------------------------------------------------------------------- -Fri Feb 15 13:05:19 UTC 2013 - lnussel@suse.de - -- disable nss-myhostname warning (bnc#783841) - => disable-nss-myhostname-warning-bnc-783841.diff - -------------------------------------------------------------------- -Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com - -- rework patch: - 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch -- udev: use unique names for temporary files created in /dev. - add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch -- cdrom_id: add data track count for bad virtual drive. - add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch - -------------------------------------------------------------------- -Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com - -- usb_id: ensure we have a valid serial number as a string (bnc#779493). - add: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch -- cdrom_id: created links for the default cd/dvd drive (bnc#783054). - add: 1021-create-default-links-for-primary-cd_dvd-drive.patch - -------------------------------------------------------------------- -Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com - -- Add cryptsetup-accept-read-only.patch: accept "read-only" in - addition to "readonly" in crypttab -- Update parse-multiline-env-file.patch to correctly handle - commented lines (bnc#793411) - -------------------------------------------------------------------- -Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com - -- udev: Fix device matching in the accelerometer - add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch -- keymap: add aditional support for some keyboard keys - add: 1018-keymap-add-aditional-support.patch -- journalctl: require argument for --priority - add: journalctl-require-argument-for-priority -- dropped useless patches: - libudev-validate-argument-udev_enumerate_new.patch - kmod-fix-builtin-typo.patch -- rename udev-root-symlink.service to systemd-udev-root-symlink.service. -- fix in udev package missing link in basic.target.wants for - systemd-udev-root-symlink.service - -------------------------------------------------------------------- -Mon Jan 28 10:49:21 UTC 2013 - fcrozat@suse.com - -- Add tmpfiles-X-type.patch: allow to clean directories with - removing them. -- Add systemd-fix-merge-ignore-dependencies.patch: fix merging with - --ignore-dependencies waiting for dependencies (bnc#800365). -- Update systemd-numlock-suse.patch: udev-trigger.service is now - called systemd-udev-trigger.service. -- Add improve-man-environment.patch: improve manpage regarding - Environment value. - -------------------------------------------------------------------- -Tue Jan 22 17:02:04 UTC 2013 - fcrozat@suse.com - -- Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly - (bnc#798620). -- Update crypt-loop-file.patch to correctly detect crypto loop - files (bnc#799514). -- Add journalctl-remove-leftover-message.patch: remove debug - message in systemctl. -- Add job-avoid-recursion-when-cancelling.patch: prevent potential - recursion when cancelling a service. -- Add sysctl-parse-all-keys.patch: ensure sysctl file is fully - parsed. -- Add journal-fix-cutoff-max-date.patch: fix computation of cutoff - max date for journal. -- Add reword-rescue-mode-hints.patch: reword rescue prompt. -- Add improve-overflow-checks.patch: improve time overflow checks. -- Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour - with symlinks. -- Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure - hostnamectl requires an argument when called with set-hostname - option. -- Add agetty-overrides-term.patch: pass correctly terminal type to - agetty. -- Add check-for-empty-strings-in-strto-conversions.patch: better - check for empty strings in strto* conversions. -- Add strv-cleanup-error-path-loops.patch: cleanup strv on error - path. -- Add cryptsetup-handle-plain.patch: correctly handle "plain" - option in cryptsetup. -- Add fstab-generator-improve-error-message.patch: improve error - message in fstab-generator. -- Add delta-accept-t-option.patch: accept -t option in - systemd-delta. -- Add highlight-ordering-cycle-deletions.patch: highlight ordering - cycle deletions in logs. -- Add core-interpret-escaped-semicolon-as-escaped.patch: accept \; - in ExecStart. -- Add hostnamectl-fix-parsing-no-ask-password.patch: accept - no-ask-password in hostnamectl. -- Add systemd-cgls-fix-piping-output.patch: fix piping output of - systemd-cgls. -- Add core-load-fragment-improve-error-message.patch: improve error - message when parsing fragments. -- Add fix-potential-bad-mem-access.patch: fix potential bad memory - access. -- Add socket-improve-error-message.patch: improve error message in - socket handling. -- Add journal-send-always-send-syslog_identifier.patch: always send - syslog_identifier if available for journal. -- Add crypsetup-handle-nofail.patch: handle nofail in cryptsetup. -- Add crypsetup-generator-state-file-name-in-error-message.patch: - add filename in error message from crypsetup-generator. -- Add fstab-generator-error-message-on-duplicates.patch: improve - error message on duplicate in fstab-generator. -- Add systemctl-verbose-message-on-missing-install.patch: reword - missing install error message in systemctl. -- Add shutdown-improvements.patch: various improvements at - shutdown. -- Add localectl-fix-assertion.patch: fix assertion in localectl. -- Add path-util-fix-potential-crash.patch: fix potential crash in - path-util. -- Add coredumpctl-fix-crash.patch: fix crash in coredumpctl. -- Add socket-verbose-error-message.patch: add more verbose error - message in socket handling. -- Add pam-properly-handle-ssh-logins-without-pam-tty-field.patch: - handle properly ssh-logins without pam tty field. -- Add fstab-generator-properly-detect-bind-mounts.patch: properly - detect bind-mounts in fstab-generator. -- Add localectl-support-systems-without-locale-archive.patch: - localectl now supports systemd without locale-archive file. -- Add logind-capability-making-seats-without-fb.patch: allows - capability of making seats without fb. -- Add service-forking-ignore-exit-status-main-process.patch: ignore - exit-statis of main process when forking, if specified in unit - file. -- Add systemctl-no-assert-on-reboot-without-dbus.patch: don't - assert on reboot if dbus isn't there. -- Add logind-ignore-non-tty-non-x11-session-on-shutdown.patch: - ignore non tty non-x11 session on shutdown. -- Add journalctl-quit-on-io-error.patch: fix journalctl quit on io - error. -- Add do-not-make-sockets-dependent-on-lo.patch: do not make - sockets dependent on lo interface. -- Add shutdown-dont-force-mnt-force-on-final-umount.patch: don't - force MNT_FORCE on final umount at shutdown. -- Add shutdown-ignore-loop-devices-without-backing-file.patch: - ignore loop devices without backing file at shutdown. -- Add fix-bad-mem-access.patch: fix bad memory access -- Add parse-multiline-env-file.patch: correctly parse multiline - environment files (bnc#793411). - -------------------------------------------------------------------- -Thu Jan 10 15:43:25 UTC 2013 - fcrozat@suse.com - -- Add multiple-sulogin.patch: allows multiple sulogin instance - (bnc#793182). - -------------------------------------------------------------------- -Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com - -- udev: path_id - handle Hyper-V devices - add: 1008-udev-path_id-handle-Hyper-V-devices.patch -- keymap: Update the list of Samsung Series 9 models - add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch -- keymap: Add Samsung 700T - add: 1010-keymap-Add-Samsung-700T.patch -- libudev: avoid leak during realloc failure - add: 1011-libudev-avoid-leak-during-realloc-failure.patch -- libudev: do not resolve $attr{device} symlinks - add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch -- libudev: validate 'udev' argument to udev_enumerate_new() - add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch -- udev: fix whitespace - add: 1014-udev-fix-whitespace.patch -- udev: properly handle symlink removal by 'change' event - add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch -- udev: builtin - do not fail builtin initialization if one of - them returns an error - add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch -- udev: use usec_t and now() - add: 1017-udev-use-usec_t-and-now.patch - -------------------------------------------------------------------- -Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com - -- udevd: add missing ':' to getopt_long 'e'. - add: 1007-udevd-add-missing-to-getopt_long-e.patch -- clean up systemd.spec, make it easy to see which are udev and - systemd patches. -- make 'reload' and 'force-reload' LSB compliant (bnc#793936). - -------------------------------------------------------------------- -Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org - -- detect-btrfs-ssd.patch: Fix btrfs detection on SSD. -- timedated-donot-close-bogus-dbus-connection.patch: Avoid - closing an non-existent dbus connection and getting assertion - failures. - -------------------------------------------------------------------- -Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com - -- add conflicts between udev-mini and udev-mini-devel to libudev1 - -------------------------------------------------------------------- -Thu Dec 6 22:47:09 UTC 2012 - crrodriguez@opensuse.org - -- revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch: - do not consider failure to umount / and /usr an error. - -------------------------------------------------------------------- -Wed Dec 5 15:13:27 UTC 2012 - fcrozat@suse.com - -- Add fix-devname-prefix.patch: fix modules.devname path, it isn't - in /usr. -- Move post script to fix symlinks in /etc/systemd/system to a - trigger to run it after old systemd is uninstalled. - -------------------------------------------------------------------- -Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com - -- Add fix-debugshell.patch: use /bin/bash if sushell isn't - installed (bnc#789052). -- Add handle-root-uses-lang.patch: handle ROOT_USES_LANG=ctype - (bnc#792182). -- Ensure libudev1 and libudev-mini1 conflicts. - -------------------------------------------------------------------- -Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com - -- Fix creation of /dev/root link. - -------------------------------------------------------------------- -Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com - -- Add remount-ro-before-unmount.patch: always remount read-only - before unmounting in final shutdown loop. -- Add switch-root-try-pivot-root.patch: try pivot_root before - overmounting / - -------------------------------------------------------------------- -Tue Nov 20 09:36:43 UTC 2012 - fcrozat@suse.com - -- links more manpages for migrated tools (from Christopher - Yeleighton). -- disable boot.localnet service, ypbind service will do the right - thing now (bnc#716746) -- add xdm-display-manager.patch: pull xdm.service instead of - display-manager.service (needed until xdm initscript is migrated - to native systemd service). -- Add fix-permissions-btmp.patch: ensure btmp is owned only by root - (bnc#777405). -- Have the udev package create a tape group, as referenced by - 50-udev-default.rules and 60-persistent-storage-tape.rules - (DimStar). -- Add fix-bad-memory-access.patch: fix crash in journal rotation. -- Add fix-dbus-crash.patch: fix D-Bus caused crash. -- Add sync-on-shutdown.patch: ensure sync is done when initiating - shutdown. -- Add mount-efivars.patch: mount efivars if booting on UEFI. - - -------------------------------------------------------------------- -Thu Nov 15 14:31:28 UTC 2012 - fcrozat@suse.com - -- Ship a empty systemd-journald initscript in systemd-logger to - stop insserv to complain about missing syslog dependency. -- Update - 0001-service-Fix-dependencies-added-when-parsing-insserv..patch - with bug fixes from Debian. - -------------------------------------------------------------------- -Wed Nov 14 17:36:05 UTC 2012 - fcrozat@suse.com - -- /var/log/journal is now only provided by systemd-logger (journal - won't be persistent for people using another syslog - implementation). -- install README in /var/log (in systemd-logger) and /etc/init.d -- create adm group when installing systemd. -- fix path in udev-root-symlink.systemd. -- Enforce Requires(post) dependency on libudev in main systemd - package (help upgrade). -- Ensure configuration is reloaded when upgrading and save random - seed when installing. -- Create /lib/udev symlink, if we do a fresh install. -- Add fix-build-glibc217.patch: fix build with latest glibc. -- Add libgcrypt.m4: copy of autoconf macro from libgcrypt, only - used to bootstrap systemd-mini. - -------------------------------------------------------------------- -Tue Nov 6 14:40:37 UTC 2012 - coolo@suse.com - -- adding a package systemd-logger that blocks syslog implementations - from installation to make an installation that only uses the journal - -------------------------------------------------------------------- -Mon Nov 5 14:37:46 UTC 2012 - fcrozat@suse.com - -- Don't hardcode path for systemctl in udev post script. -- Ensure systemd-udevd.service is shadowing boot.udev when booting - under systemd. -- Fix udev daemon upgrade under both systemd and sysvinit. -- Add fix-logind-pty-seat.patch: fix logind complaining when doing - su/sudo in X terminal. - -------------------------------------------------------------------- -Sat Nov 3 07:21:44 UTC 2012 - coolo@suse.com - -- add libudev1 to baselibs.conf - -------------------------------------------------------------------- -Fri Nov 2 14:07:15 UTC 2012 - coolo@suse.com - -- udev is GPL-2.0, the rest remains LGPL-2.1+ (bnc#787824) - -------------------------------------------------------------------- -Mon Oct 29 13:01:20 UTC 2012 - fcrozat@suse.com - -- Add var-run-lock.patch: make sure /var/run and /var/lock are - handled as bind mount if they aren't symlinks. -- Update storage-after-cryptsetup.patch with new systemctl path. -- Migrate broken symlinks in /etc/systemd/system due to new systemd - location. - -------------------------------------------------------------------- -Fri Oct 26 13:37:52 UTC 2012 - fcrozat@suse.com - -- Update to release 195: - + journalctl agained --since and --until, as well as filtering - for units with --unit=/-u. - + allow ExecReload properly for Type=oneshot (needed for - iptables.service, rpc-nfsd.service). - + journal daemon supports time-based rotation and vaccuming. - + journalctl -F allow to list all values of a certain field in - journal database. - + new commandline clients for timedated, locald and hostnamed - + new tool systemd-coredumpctl to list and extract coredumps from - journal. - + improve gatewayd: follow mode, filtering, support for - HTML5/JSON Server-Sent-Events. - + reload support in SysV initscripts is now detected when file is - parted. - + "systemctl status --follow" as been removed, use "journalctl -fu - instead" - + journald.conf RuntimeMinSize and PersistentMinSize settings - have been removed. -- Add compatibility symlink for systemd-ask-password and systemctl - in /bin. - -------------------------------------------------------------------- -Thu Oct 18 12:27:07 UTC 2012 - fcrozat@suse.com - -- Create and own more systemd drop-in directories. - -------------------------------------------------------------------- -Tue Oct 16 13:18:13 UTC 2012 - fcrozat@suse.com - -- Improve mini packages for bootstrapping. -- do not mount /tmp as tmpfs by default. - -------------------------------------------------------------------- -Tue Oct 16 07:40:23 UTC 2012 - fcrozat@suse.com - -- Fix install script when there is no inittab - -------------------------------------------------------------------- -Mon Oct 15 14:48:47 UTC 2012 - fcrozat@suse.com - -- Create a systemd-mini specfile to prevent cycle in bootstrapping - -------------------------------------------------------------------- -Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com - -- udev and its subpackages are now generated by systemd source - package. -- migrate udev and systemd to /usr -- Update to version 194: - + if /etc/vconsole.conf is non-existent or empty and if - /etc/sysconfig/console:CONSOLE_FONT (resp - /etc/sysconfig/keyboard:KEYTABLE) set, console font (resp - keymap) is not modified. -- Changes from version 44 to 193: - + journalctl gained --cursor= to show entries starting from a - specified location in journal. - + Size limit enforced to 4K for fields exported with "-o json" in - journalctl. Use --all to disable this behavior. - + Optional journal gateway daemon - (systemd-journal-gatewayd.service) to access journal via HTTP - and JSON. Use "wget http://localhost:19531/entries" to get - /var/log/messages compatible format and - 'curl -H"Accept: application/json" - http://localhost:19531/entries' for JSON formatted content. - HTML5 static page is also available as explained on - http://0pointer.de/public/journal-gatewayd - + do not mount cpuset controler, doesn't work well by default - ATM. - + improved nspawn behaviour with /etc/localtime - + journald logs its maximize size on disk - + multi-seat X wrapper (partially merged in upstream X server). - + HandleSleepKey has been splitted into HandleSuspendKey and - HandleHibernateKey. - + systemd and logind now handle system sleep states, in - particular suspending and hibernating. - + new cgroups are mounted by default (cpu, cpuacct, - net_cls, net_pri) - + sync at shutdown is now handled by kernel - + imported journalctl output (colors, filtering, pager, bash - completion). - + suffix ".service" may now be ommited on most systemctl command - involving service unit names. - + much improved nspawn containers support. - + new conditions added : ConditionFileNotEmpty, ConditionHost, - ConditionPathIsReadWrite - + tmpfiles "w" supports file globbing - + logind handles lid switch, power and sleep keys all the time, - unless systemd-inhibit - --what=handle-power-key:handle-sleep-key:handle-lid-switch is - run by Desktop Environments. - + support for reading structured kernel message is used by - default (need kernel >= 3.5). /proc/kmsg is now used only by - classic syslog daemons. - + Forward Secure Sealing is now support for Journal files. - + RestartPrevenExitStatus and SuccessExitStatus allow configure - of exit status (exit code or signal). - + handles keyfile-size and keyfile-offset in /etc/crypttab. - + TimeoutSec settings has been splitted into TimeoutStartSec and - TimeoutStopSec. - + add SystemCallFilters option to add blacklist/whitelist to - system calls, using SECCOMP mode 2 of kernel >= 3.5. - + systemctl udevadm info now takes a /dev or /sys path as argument: - - udevadm info /dev/sda - + XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames. - + systemd-loginctl and systemd-journalctl have been renamed - to loginctl and journalctl to match systemctl. - + udev: RUN+="socket:..." and udev_monitor_new_from_socket() is - no longer supported. udev_monitor_new_from_netlink() needs to - be used to subscribe to events. - + udev: when udevd is started by systemd, processes which are left - behind by forking them off of udev rules, are unconditionally - cleaned up and killed now after the event handling has finished. - Services or daemons must be started as systemd services. - Services can be pulled-in by udev to get started, but they can - no longer be directly forked by udev rules. - + For almost all files, license is now LGPL2.1+ (from previous - GPL2.0+). Exception are some minor stuff in udev (will be - changed to LGPL2.1 eventually) and MIT license sd-daemon.[ch] - library. - + var-run.mount and var-lock.mount are no longer provided - (should be converted to symlinks). - + A new service type Type=idle to avoid ugly interleaving of - getty output and boot status messages. - + systemd-delta has been added, a tool to explore differences - between user/admin configuration and vendor defaults. - + /tmp mouted as tmpfs by default. - + /media is now longer mounted as tmpfs - + GTK tool has been split off to systemd-ui package. - + much improved documentation. -- Merge BuildRequires from udev package: - gobject-introspection-devel, gtk-doc, libsepol-devel, - libusb-devel, pkgconfig(blkid), pkgconfig-glib-2.0), - pjgconfig(libcryptsetup), pkgconfig(libpci), - pkgconfig(libqrencode), pkgconfig(libselinux), - pkgconfig(usbutils). -- Add pkgconfig(libqrencode) and pkgconfig(libmicrohttpd) -- Merge sources from udev package: boot.udev, write_dev_root.rules, - udev-root-symlink.systemd. -- Merge patches from udev package: numbered started from 1000): - 0001-Reinstate-TIMEOUT-handling.patch, - 0013-re-enable-by_path-links-for-ata-devices.patch, - 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch, - 0026-udev-netlink-null-rules.patch, - 0027-udev-fix-sg-autoload-regression.patch. -- Remove following patches, merged upstream: - 0001-util-never-follow-symlinks-in-rm_rf_children.patch, - fixppc.patch, logind-logout.patch, fix-getty-isolate.patch, - fix-swap-priority.patch, improve-restart-behaviour.patch, - fix-dir-noatime-tmpfiles.patch, journal-bugfixes.patch, - ulimit-support.patch, change-terminal.patch, - fix-tty-startup.patch, fix-write-user-state-file.patch, - fix-analyze-exception.patch, use_localtime.patch, - journalctl-pager-improvement.patch, - avoid-random-seed-cycle.patch, - 0001-add-sparse-support-to-detect-endianness-bug.patch, - drop-timezone.patch. -- Rebase the following patches: - 0001-Add-bootsplash-handling-for-password-dialogs.patch, - 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, - 0001-service-Fix-dependencies-added-when-parsing-insserv..patch, - 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch, - crypt-loop-file.patch, - delay-fsck-cryptsetup-after-md-lvm-dmraid.patch, - dm-lvm-after-local-fs-pre-target.patch, fastboot-forcefsck.patch, - fix-enable-disable-boot-initscript.patch, modules_on_boot.patch, - new-lsb-headers.patch, storage-after-cryptsetup.patch, - support-suse-clock-sysconfig.patch, support-sysvinit.patch, - sysctl-modules.patch, systemd-numlock-suse.patch, tty1.patch. - -------------------------------------------------------------------- -Thu Aug 23 11:11:25 CEST 2012 - fcrozat@suse.com - -- Add use_localtime.patch: use /etc/localtime instead of - /etc/timezone (bnc#773491) -- Add support-suse-clock-sysconfig.patch: read SUSE - /etc/sysconfig/clock file. -- Add drop-timezone.patch: drop support for /etc/timezone, never - supported on openSUSE. -- Add journalctl-pager-improvement.patch: better handle output when - using pager. -- Add fix-enable-disable-boot-initscript.patch: support boot.* - initscripts for systemctl enable /disable (bnc#746506). - -------------------------------------------------------------------- -Mon Jul 30 11:37:17 UTC 2012 - fcrozat@suse.com - -- Ensure systemd macros never fails (if systemd isn't install) - -------------------------------------------------------------------- -Mon Jul 23 08:28:15 UTC 2012 - fcrozat@suse.com - -- Add fix-analyze-exception.patch: prevent exception if running - systemd-analyze before boot is complete (bnc#772506) - -------------------------------------------------------------------- -Fri Jul 20 19:24:08 CEST 2012 - sbrabec@suse.cz - -- Fix NumLock detection/set race condition (bnc#746595#c47). - -------------------------------------------------------------------- -Wed Jul 18 13:14:37 UTC 2012 - fcrozat@suse.com - -- Move systemd-analyse to a subpackage, to remove any python - dependencies from systemd main package (bnc#772039). - -------------------------------------------------------------------- -Tue Jul 10 16:48:20 UTC 2012 - fcrozat@suse.com - -- Add fastboot-forcefsck.patch: ensure fastboot and forcefsck on - kernel commandline are handled. -- Add fix-write-user-state-file.patch: write logind state file - correctly. -- Disable logind-logout.patch: cause too many issues (bnc#769531). - -------------------------------------------------------------------- -Mon Jul 9 11:01:20 UTC 2012 - fcrozat@suse.com - -- Add fix-tty-startup.patch: don't limit tty VT to 12 (bnc#770182). - -------------------------------------------------------------------- -Tue Jul 3 20:07:47 CEST 2012 - sbrabec@suse.cz - -- Fix SUSE specific sysconfig numlock logic for 12.2 (bnc#746595). - -------------------------------------------------------------------- -Tue Jul 3 17:58:39 CEST 2012 - fcrozat@suse.com - -- Add fix-dir-noatime-tmpfiles.patch: do not modify directory - atime, which was preventing removing empty directories - (bnc#751253, rh#810257). -- Add improve-restart-behaviour.patch: prevent deadlock during - try-restart (bnc#743218). -- Add journal-bugfixes.patch: don't crash when rotating journal - (bnc#768953) and prevent memleak at rotation time too. -- Add ulimit-support.patch: add support for system wide ulimit - (bnc#744818). -- Add change-terminal.patch: use vt102 instead of vt100 as terminal - for non-vc tty. -- Package various .wants directories, which were no longer packaged - due to plymouth units being removed from systemd package. -- Fix buildrequires for manpages build. - -------------------------------------------------------------------- -Mon Jul 2 15:44:28 UTC 2012 - fcrozat@suse.com - -- Do not ship plymouth units, they are shipped by plymouth package - now (bnc#769397). -- Fix module loading (bnc#769462) - -------------------------------------------------------------------- -Thu Jun 7 13:14:40 UTC 2012 - fcrozat@suse.com - -- Add fix-swap-priority: fix default swap priority (bnc#731601). - -------------------------------------------------------------------- -Fri May 25 11:08:27 UTC 2012 - fcrozat@suse.com - -- Re-enable logind-logout.patch, fix in xdm-np PAM file is the real - fix. - -------------------------------------------------------------------- -Thu May 24 11:45:54 UTC 2012 - fcrozat@suse.com - -- Update new-lsb-headers.patch to handle entries written after - description tag (bnc#727771, bnc#747931). - -------------------------------------------------------------------- -Thu May 3 11:40:20 UTC 2012 - fcrozat@suse.com - -- Disable logind-logout.patch: it crashes sudo session (if called - after su -l) (bnc#746704). - -------------------------------------------------------------------- -Tue Apr 24 15:46:54 UTC 2012 - fcrozat@suse.com - -- Add fix-getty-isolate.patch: don't quit getty when changing - runlevel (bnc#746594) - -------------------------------------------------------------------- -Fri Apr 20 17:16:37 CEST 2012 - sbrabec@suse.cz - -- Implemented SUSE specific sysconfig numlock logic (bnc#746595). - -------------------------------------------------------------------- -Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com - -- Add dbus-1 as BuildRequires to fix build. - -------------------------------------------------------------------- -Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com - -- apply ppc patch to systemd-gtk too (fixes build) - -------------------------------------------------------------------- -Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com - -- Update fixppc.patch with upstream patches -- Add comments from upstream in - 0001-util-never-follow-symlinks-in-rm_rf_children.patch. -- Add logind-logout.patch: it should fix sudo / su with pam_systemd - (bnc#746704). - -------------------------------------------------------------------- -Mon Mar 19 14:07:23 UTC 2012 - fcrozat@suse.com - -- Add 0001-add-sparse-support-to-detect-endianness-bug.patch: fix - endianness error, preventing journal to work properly on ppc. -- Add fixppc.patch: fix build and warnings on ppc. - -------------------------------------------------------------------- -Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com - -- Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix - CVE-2012-1174 (bnc#752281). - -------------------------------------------------------------------- -Fri Mar 16 09:21:54 UTC 2012 - fcrozat@suse.com - -- Update to version 43: - + Support optional initialization of the machine ID from the KVM - or container configured UUID. - + Support immediate reboots with "systemctl reboot -ff" - + Show /etc/os-release data in systemd-analyze output - + Many bugfixes for the journal, including endianess fixes and - ensuring that disk space enforcement works - + non-UTF8 strings are refused if used in configuration and unit - files. - + Register Mimo USB Screens as suitable for automatic seat - configuration - + Reorder configuration file lookup order. /etc now always - overrides /run. - + manpages for journal utilities. -- Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, - systemd-journald-fix-endianess-bug.patch. -- Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). - -------------------------------------------------------------------- -Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com - -- Add fix-c++-compat.patch: fix C++ compatibility error in header. - -------------------------------------------------------------------- -Wed Feb 29 13:22:17 UTC 2012 - fcrozat@suse.com - -- Add systemd-journald-fix-endianess-bug.patch: fix journald not - starting on ppc architecture. -- Add correct_plymouth_paths_and_conflicts.patch: ensure plymouth - is correctly called and conflicts with bootsplash. - -------------------------------------------------------------------- -Tue Feb 21 08:58:31 UTC 2012 - fcrozat@suse.com - -- Remove rsyslog listen.conf, handled directly by rsyslog now - (bnc#747871). - -------------------------------------------------------------------- -Mon Feb 20 13:33:45 UTC 2012 - fcrozat@suse.com - -- Update to version 43: - + requires /etc/os-release, support for /etc/SuSE-release is no - longer present. - + Track class of PAM logins to distinguish greeters from normal - user logins. - + Various bug fixes. - -------------------------------------------------------------------- -Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de - -- Use pkgconfig symbols for BuildRequires and specify version - -------------------------------------------------------------------- -Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com - -- Enable Plymouth integration. - * Bootsplash related files will be moved to the bootsplash - package - -------------------------------------------------------------------- -Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com - -- Update to version 42: - + Various bug fixes - + Watchdog support for supervising services is now usable - + Service start rate limiting is now configurable and can be - turned off per service. - + New CanReboot(), CanPowerOff() bus calls in systemd-logind -- Dropped fix-kmod-build.patch, fix-message-after-chkconfig.patch, - is-enabled-non-existing-service.patch (merged upstream) -- Add libxslt1 / docbook-xsl-stylesheets as BuildRequires for - manpage generation - -------------------------------------------------------------------- -Thu Feb 9 16:19:38 UTC 2012 - fcrozat@suse.com - -- Update to version 41: - + systemd binary is now installed in /lib/systemd (symlink for - /bin/systemd is available now) - + kernel modules are now loaded through libkmod - + Watchdog support is now useful (not complete) - + new kernel command line available to set system wide - environment variable: systemd.setenv - + journald capabilities set is now limited - + SIGPIPE is ignored by default. This can be disabled with - IgnoreSIGPIPE=no in unit files. -- Add fix-kmod-build.patch: fix build with libkmod -- Drop remote-fs-after-network.patch (merged upstream) -- Add dm-lvm-after-local-fs-pre-target.patch: ensure md / lvm - /dmraid is started before mounting partitions, if fsck was - disabled for them (bnc#733283). -- Update lsb-header patch to correctly disable heuristic if - X-Systemd-RemainAfterExit is specified (whatever its value) -- Add fix-message-after-chkconfig.patch: don't complain if only - sysv services are called in systemctl. -- Add is-enabled-non-existing-service.patch: fix error message when - running is-enabled on non-existing service. - -------------------------------------------------------------------- -Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com - -- Update to version 40: - + reason why a service failed is now exposed in the"Result" D-Bus - property. - + Rudimentary service watchdog support (not complete) - + Improve bootcharts, by immediatly changing argv[0] after - forking to to reflect which process will be executed. - + Various bug fixes. -- Add remote-fs-after-network.patch and update insserv patch: - ensure remote-fs-pre.target is enabled and started before network - mount points (bnc#744293). -- Ensure journald doesn't prevent syslogs to read from /proc/kmsg. - -------------------------------------------------------------------- -Tue Jan 31 13:40:51 CET 2012 - fcrozat@suse.com - -- Ensure systemd show service status when started behind bootsplash - (bnc#736225). -- Disable core dump redirection to journal, not stable atm. - -------------------------------------------------------------------- -Thu Jan 26 16:00:27 UTC 2012 - fcrozat@suse.com - -- Update modules_on_boot.patch to not cause failed state for - systemd-modules-load.service (bnc#741481). - -------------------------------------------------------------------- -Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com - -- Update to version 39: - + New systemd-cgtop tool to show control groups by their resource - usage. - + Linking against libacl for ACLs is optional again. - + If a group "adm" exists, journal files are automatically owned - by them, thus allow members of this group full access to the - system journal as well as all user journals. - + The journal now stores the SELinux context of the logging - client for all entries. - + Add C++ inclusion guards to all public headers. - + New output mode "cat" in the journal to print only text - messages, without any meta data like date or time. - + Include tiny X server wrapper as a temporary stop-gap to teach - XOrg udev display enumeration (until XOrg supports udev - hotplugging for display devices). - + Add new systemd-cat tool for executing arbitrary programs with - STDERR/STDOUT connected to the journal. Can also act as BSD - logger replacement, and does so by default. - + Optionally store all locally generated coredumps in the journal - along with meta data. - + systemd-tmpfiles learnt four new commands: n, L, c, b, for - writing short strings to files (for usage for /sys), and for - creating symlinks, character and block device nodes. - + New unit file option ControlGroupPersistent= to make cgroups - persistent. - + Support multiple local RTCs in a sane way. - + No longer monopolize IO when replaying readahead data on - rotating disks. - + Don't show kernel threads in systemd-cgls anymore, unless - requested with new -k switch. -- Drop systemd-syslog_away_early_on_shutdown.patch: fixed upstream. -- Add fdupes to BuildRequires and use it at build time. - -------------------------------------------------------------------- -Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com - -- Make the systemd journal persistent by creating the - /var/log/journal directory - -------------------------------------------------------------------- -Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com - -- Update to version 38 : - - Bugfixes - - Implementation of a Journal Utility Library - - Implementation of a 128 Bit ID Utility Library -- 11 Patches integrated upstream -- Add systemd-syslog_away_early_on_shutdown.patch: make sure - syslog socket goes away early during shutdown. -- Add listen.conf for rsyslog. This will ensure that it will still - work fine with rsyslog and the new journal. - -------------------------------------------------------------------- -Mon Jan 9 17:01:22 UTC 2012 - fcrozat@suse.com - -- Add fix-is-enabled.patch: ensure systemctl is-enabled work - properly when systemd isn't running. -- Add logind-console.patch: do not bail logind if /dev/tty0 doesn't - exist (bnc#733022, bnc#735047). -- Add sysctl-modules.patch: ensure sysctl is started after modules - are loaded (bnc#725412). -- Fix warning in insserv patch. -- Update avoid-random-seed-cycle.patch with better upstream - approach. -- Update storage-after-cryptsetup.patch to restart lvm before - local-fs.target, not after it (bnc#740106). -- Increase pam-config dependency (bnc#713319). - -------------------------------------------------------------------- -Wed Dec 7 15:15:07 UTC 2011 - fcrozat@suse.com - -- Remove storage-after-cryptsetup.service, add - storage-after-cryptsetup.patch instead to prevent dependency - cycle (bnc#722539). -- Add delay-fsck-cryptsetup-after-md-lvm-dmraid.patch: ensure - fsck/cryptsetup is run after lvm/md/dmraid have landed - (bnc#724912). -- Add cron-tty-pam.patch: Fix cron filling logs (bnc#731358). -- Add do_not_warn_pidfile.patch: Fix PID warning in logs - (bnc#732912). -- Add mount-swap-log.patch: Ensure swap and mount output is - redirected to default log target (rhb#750032). -- Add color-on-boot.patch: ensure colored status are displayed at - boot time. -- Update modules_on_boot.patch to fix bnc#732041. -- Replace private_tmp_crash.patch with log_on_close.patch, better - upstream fix for bnc#699829 and fix bnc#731719. -- Update vconsole patch to fix memleaks and crash (bnc#734527). -- Add handle-racy-daemon.patch: fix warnings with sendmail - (bnc#732912). -- Add new-lsb-headers.patch: support PIDFile: and - X-Systemd-RemainAfterExit: header in initscript (bnc#727771). -- Update bootsplash services to not start if vga= is missing from - cmdline (bnc#727771) -- Add lock-opensuse.patch: disable /var/lock/{subsys,lockdev} and - change default permissions on /var/lock (bnc#733523). -- Add garbage_collect_units: ensure error units are correctly - garbage collected (rhb#680122). -- Add crypt-loop-file.patch: add support for crypt file loop - (bnc#730496). - -------------------------------------------------------------------- -Sat Nov 19 15:40:38 UTC 2011 - coolo@suse.com - -- add libtool as buildrequire to avoid implicit dependency - -------------------------------------------------------------------- -Fri Nov 4 14:44:18 UTC 2011 - fcrozat@suse.com - -- Fix rpm macros to only call presets on initial install - (bnc#728104). - -------------------------------------------------------------------- -Thu Oct 27 13:39:03 UTC 2011 - fcrozat@suse.com - -- Add no-tmpfs-fsck.patch: don't try to fsck tmpfs mountpoint - (bnc#726791). - -------------------------------------------------------------------- -Wed Oct 19 13:18:54 UTC 2011 - fcrozat@suse.com - -- Add avoid-random-seed-cycle.patch: fix dependency cycle between - cryptsetup and random-seed-load (bnc#721666). -- Add crash-isolating.patch: fix crash when isolating a service. -- Fix bootsplash being killed too early. -- Fix some manpages not being redirected properly. -- Add storage-after-cryptsetup.service to restart lvm after - cryptsetup. Fixes lvm on top of LUKS (bnc#724238). - -------------------------------------------------------------------- -Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com - -- Recommends dbus-1-python, do not requires python (bnc#716939) -- Add private_tmp_crash.patch: prevent crash in debug mode - (bnc#699829). -- Add systemctl-completion-fix.patch: fix incorrect bash completion - with some commands (git). - -------------------------------------------------------------------- -Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com - -- Shadow single sysv service, it was breaking runlevel 1. -- Add modules_on_boot.patch to handle /etc/sysconfig/kernel - MODULES_ON_BOOT variable (bnc#721662). - -------------------------------------------------------------------- -Wed Oct 12 08:38:36 UTC 2011 - fcrozat@suse.com - -- Update to release 37: - - many bugfixes - - ConditionCapability added, useful for containers. - - locale mechanism got extend to kbd configuration for - both X and the console - - don't try to guess PID for SysV services anymore (bnc#723194) -- Drop detect-non-running.patch, logind-warning.patch. -- Rewrite systemd-sysv-convert in bash (bnc#716939) -------------------------------------------------------------------- -Tue Oct 11 13:57:32 UTC 2011 - coolo@suse.com - -- make sure updaters get in the /sbin/init from here - the sub package - of the split package will decide which init wins in update case - -------------------------------------------------------------------- -Tue Oct 11 13:10:27 UTC 2011 - coolo@suse.com - -- under openSUSE if it's not systemd, chances are good it's - sysvinit - -------------------------------------------------------------------- -Tue Oct 11 11:07:02 UTC 2011 - coolo@suse.com - -- do not list specific sbin_init providers - -------------------------------------------------------------------- -Wed Oct 5 16:18:48 UTC 2011 - fcrozat@suse.com - -- Add logind-warning.patch: fix pam warning (bnc#716384) - -------------------------------------------------------------------- -Fri Sep 30 13:55:31 UTC 2011 - fcrozat@suse.com - -- Update to version 36 : - - many bugfixes - - systemd now requires socket-activated syslog implementations - - After=syslog.target is no longer needed in .service files - - X-Interactive is ignored in LSB headers (was not working) -- Enable back insserv.conf parsing in systemd core and fix added - dependencies (bnc#721428). -- Fix detection of LSB services status when running daemon - (bnc#721426). -- Drop 0001-execute-fix-bus-serialization-for-commands.patch, - fix-reload.patch - -------------------------------------------------------------------- -Thu Sep 29 16:08:33 UTC 2011 - fcrozat@suse.com - -- Add services to stop bootsplash at end of startup and start it at - beginning of shutdown. -- Fix bootsplash call and ensure dependencies are set right. - -------------------------------------------------------------------- -Thu Sep 29 13:43:00 UTC 2011 - fcrozat@suse.com - -- Add detect-non-running.patch: fix assertion when running - systemctl under non systemd system (git). -- Requires presets branding package. -- Improve macros a little bit. - -------------------------------------------------------------------- -Mon Sep 26 14:52:46 UTC 2011 - fcrozat@suse.com - -- Merge migration rpm macros into service_add/service_del macros. -- Use systemd presets in rpm macros -- Add fix-reload.patch: handle daemon-reload and start condition - properly (bnc#719221). - -------------------------------------------------------------------- -Fri Sep 23 15:39:03 UTC 2011 - fcrozat@suse.com - -- Add systemd-splash / bootsplash-startup.service: enable - bootsplash at startup. - -------------------------------------------------------------------- -Fri Sep 16 15:54:54 UTC 2011 - fcrozat@suse.com - -- Create -32bit package (bnc#713319) - -------------------------------------------------------------------- -Mon Sep 12 08:33:04 UTC 2011 - fcrozat@suse.com - -- Do not mask localnet service, it is not yet handled by systemd. - (bnc#716746) - -------------------------------------------------------------------- -Fri Sep 9 09:28:54 UTC 2011 - fcrozat@suse.com - -- Add revert_insserv_conf_parsing.patch and systemd-insserv_conf: - remove insserv.conf parsing from systemd and use generator - instead. -- put back default.target creation at package install and remove - inittab generator, Yast2 is now able to create it. - -------------------------------------------------------------------- -Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com - -- Update to version 34: - * Bugfixes - * optionaly apply cgroup attributes to cgroups systemd creates - * honour sticky bit when trimming cgroup trees - * improve readahead -- Add libacl-devel as BuildRequires (needed for systemd-uaccess) -- Add some %{nil} to systemd.macros to fix some build issues. -- Fix dbus assertion -- move gtk part to its own package, to reduce bootstrapping - (bnc#713981). - -------------------------------------------------------------------- -Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com - -- Update compose_table patch to use two separate loadkeys call, - compose table overflows otherwise (spotted by Werner Fink). - -------------------------------------------------------------------- -Wed Aug 24 13:02:12 UTC 2011 - fcrozat@novell.com - -- Add tty1.patch: ensure passphrase are handled before starting - gettty on tty1. -- Add inittab generator, creating default.target at startup based - on /etc/inittab value. -- No longer try to create /etc/systemd/system/default.target at - initial package install (bnc#707418) -- Fix configuration path used for systemd user manager. -- Ensure pam-config output is no display in install script. -- Remove buildrequires on vala, no longer needed. - -------------------------------------------------------------------- -Fri Aug 19 15:29:49 UTC 2011 - fcrozat@suse.com - -- Handle disable_capslock, compose table and kbd_rate -- Add rpm macros.systemd file. -- Do not disable klogd, it has its own service now. -- Handle kexec correctly (bnc#671673). -- Disable preload services, they are conflicting with systemd. - -------------------------------------------------------------------- -Fri Aug 19 08:15:15 UTC 2011 - fcrozat@suse.com - -- enable pam_systemd module, using pam-config. - -------------------------------------------------------------------- -Thu Aug 18 07:31:12 UTC 2011 - aj@suse.de - -- Fix crash with systemctl enable. - -------------------------------------------------------------------- -Tue Aug 16 17:02:27 UTC 2011 - fcrozat@suse.com - -- Fix localfs.service to no cause cycle and starts it after - local-fs.target. - -------------------------------------------------------------------- -Thu Aug 4 15:59:58 UTC 2011 - fcrozat@suse.com - -- Remove root-fsck.patch, mkinitrd will use the same path as - dracut. -- Add systemd-cryptsetup.patch: don't complain on "none" option in - crypttab. -- Add systemd-cryptsetup-query.patch: block boot until passphrase - is typed. - -------------------------------------------------------------------- -Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com - -- Add root-fsck.patch: do not run fsck on / if it is rw -- Ship a non null localfs.service, fixes static mount points not - being mounted properly. - -------------------------------------------------------------------- -Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de - -- Update to version 33: - * optimizations and bugfixes. - * New PrivateNetwork= service setting which allows you to shut off - networking for a specific service (i.e. all routable network - interfaces will disappear for that service). - * Merged insserv-parsing.patch and bash-completion-restart.patch - patches. - -------------------------------------------------------------------- -Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com - -- Add insserv-parsing.patch: read/parse insserv.conf. -- Add bash-completion-restart.patch: fix restart service list - (bnc#704782). - -------------------------------------------------------------------- -Mon Aug 1 09:04:53 UTC 2011 - aj@suse.de - -- Split up devel package. -- restart logind after upgrade. -- Adjust rpmlintrc for changes. - -------------------------------------------------------------------- -Fri Jul 29 10:48:20 UTC 2011 - aj@suse.de - -- Update to version 32: - * bugfixes - * improve selinux setup - -------------------------------------------------------------------- -Thu Jul 28 07:27:32 UTC 2011 - aj@suse.de - -- Update to version 31: - * rewrite of enable/disable code: New features systemctl --runtime, - systemctl mask, systemctl link and presets. - * sd-daemon is now shared library. - -------------------------------------------------------------------- -Tue Jul 19 11:56:43 UTC 2011 - aj@suse.de - -- Update to version 30: - + Logic from pam_systemd has been moved to new systemd-login. - + VT gettys are autospawn only when needed - + Handle boot.local/halt.local on SUSE distribution - + add support for systemctl --root - -------------------------------------------------------------------- -Wed Jun 29 12:54:24 UTC 2011 - fcrozat@suse.com - -- Make sure to not start kbd initscript, it is handled by systemd - natively. - -------------------------------------------------------------------- -Fri Jun 17 09:34:24 UTC 2011 - fcrozat@novell.com - -- version 29: - + enable chkconfig support in systemctl for openSUSE. - + systemctl: plug a leak upon create_symlink mismatch - + mount /run without MS_NOEXEC - + dbus: fix name of capability property - + systemctl: fix double unref of a dbus message - + cryptsetup-generator: fix /etc/cryptsetup options - + selinux: selinuxfs can be mounted on /sys/fs/selinux - + readahead-common: fix total memory size detection - + systemctl: fix 'is-enabled' for native units under /lib - + systemctl: fix a FILE* leak - + pam-module: add debug= parameter - + remote-fs.target: do not order after network.target -- update tarball url. - -------------------------------------------------------------------- -Wed Jun 15 10:00:29 UTC 2011 - saschpe@suse.de - -- Use RPM macros instead of $RPM_FOO variables -- Don't require %{version}-%{release} of the base package, - %{version} is sufficient - -------------------------------------------------------------------- -Tue Jun 14 15:10:41 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - mount /run without MS_NOEXEC - - readahead-common: fix total memory size detection - - enable chkconfig support in systemctl for openSUSE - - selinux: selinuxfs can be mounted on /sys/fs/selinux - - cryptsetup-generator: fix /etc/cryptsetup options - - systemctl: fix double unref of a dbus message -- drop merged chkconfig patch - -------------------------------------------------------------------- -Tue Jun 14 12:39:25 UTC 2011 - fcrozat@novell.com - -- Add sysv chkconfig patch to be able to enable / disable sysv - initscripts with systemctl. -- Ensure plymouth support is buildable conditionnally. - -------------------------------------------------------------------- -Thu May 26 21:16:06 CEST 2011 - kay.sievers@novell.com - -- version 28 - - drop hwclock-save.service - - fix segfault when a DBus message has no interface - - man: update the list of unit search locations - - readahead-collect: ignore EACCES for fanotify - - rtc in localtime: use settimeofday(NULL, tz) - instead of hwclock(8) - -------------------------------------------------------------------- -Sat May 21 23:57:30 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - fix crash in D-Bus code - -------------------------------------------------------------------- -Sat May 21 18:17:59 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - socket: always use SO_{RCV,SND}BUFFORCE to allow larger values - - util: use new VT ESC sequence to clear scrollback buffer - - sd-daemon: move _sd_hidden_ from .h to .c file - - missing: add IP_TRANSPARENT - -------------------------------------------------------------------- -Sat May 21 16:17:38 CEST 2011 - kay.sievers@novell.com - -- version 27 - - util: use open_terminal() in chvt() too - - socket: expose SO_BROADCAST - - git: add .mailmap - - exec: expose tty reset options in dbus introspection data - - socket: expose IP_TRANSPARENT - - exec: hangup/reset/deallocate VTs in gettys - - socket: use 666 socket mode by default since neither fifos, - nor sockets, nor mqueues need to be executable - - socket: add POSIX mqueue support - - README: document relation to nss-myhostname - - hostnamed: check that nss-myhostname is installed - -------------------------------------------------------------------- -Tue May 17 19:15:17 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - sysctl: apply /etc/sysctl.conf last - - systemd-analyze: print hostname, kernelversion and arch at - the top of the plot - - pam: downgrade a few log msgs - - hostnamed: SetPrettyHostname() should check PK action - org.freedesktop.hostname1.set-static-hostname - - user-sessions: ignore EROFS when unlinking /etc/nologin if - the file doesn't exist anyway - - unit: make ignoring in snapshots a per unit property, - instead of a per unit type property - - vconsole: use open_terminal() instead of open() - - units: enable automount units only if the kernel supports them - -------------------------------------------------------------------- -Thu May 5 07:45:46 UTC 2011 - coolo@opensuse.org - -- remove policy filter - -------------------------------------------------------------------- -Thu May 5 08:59:46 CEST 2011 - meissner@suse.de - -- add missing buildrequires dbus-1-devel, vala, libxslt-devel -- touch vala files for rebuilding to unbreak Factory - -------------------------------------------------------------------- -Mon May 2 23:05:35 CEST 2011 - kay.sievers@novell.com - -- also delete plymouth files - -------------------------------------------------------------------- -Mon May 2 19:00:41 CEST 2011 - kay.sievers@novell.com - -- disable plymouth sub-package until plymouth gets into Factory - -------------------------------------------------------------------- -Sun May 1 22:51:28 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - binfmt, modules-load, sysctl, tmpfiles: add missing - ConditionDirectoryNotEmpty= - - binfmt, modules-load, sysctl, tmpfiles: read /usr/local/lib - and where appropriate /lib directories - -------------------------------------------------------------------- -Sat Apr 30 04:56:55 CEST 2011 - kay.sievers@novell.com - -- version 26 - - plymouth: introduce plymouth.enable=0 kernel command line - - util: don't AND cx with cx - - man: typo in sd_daemon reference - - util: conf_files_list() return list as parameter - - dbus: make daemon reexecution synchronous - -------------------------------------------------------------------- -Thu Apr 28 14:07:12 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - service: properly notice when services with a main process - that isn't a child of init die - - unit: fix assert when trying to load unit instances for - uninstanciable types - - def: lower default timeout to 90s - - manager: fix serialization counter - -------------------------------------------------------------------- -Wed Apr 27 04:19:05 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - dbus: don't hit assert when dumping properties - - cryptsetup: fix keyfile size option processing - - socket: improve warning message when we get POLLHUP - - mount: failure to mount cgroup hierarchies should not be fatal - - configure: add AC_SYS_LARGEFILE - -------------------------------------------------------------------- -Mon Apr 25 21:45:02 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - tmpfiles.d: switch to stacked config dirs in /lib, /etc, /run - - sysctl.d, binfmt.d, modules-load.d: switch to stacked config - dirs in /lib, /etc, /run - - manager: mkdir /run/systemd/system when starting up - - man: Spelling fixes - -------------------------------------------------------------------- -Thu Apr 21 04:39:57 CEST 2011 - kay.sievers@novell.com - -- version 25 - - mount: Allow creating mount units for /var/lib/nfs/rpc_pipefs - and /proc/fs/nfsd. - - socket: support ListeSpecial= sockets - - vconsole: don't set console font/keymap if settings are empty - - nspawn: don't fail when we receive SIGCHLD - - cgroup: don't accidentaly trim on reload - - units: set capability bounding set for syslog services - - socket: log more information about invalid poll events - - man: fix specification of default timeouts - - mount,crypto: rework meaning of noauto/nofail - - fsck: don't fsck against basic.target in order to properly - allow automount /home - - manager: when running in test mode, do not write generated - unit files to /run/systemd/generator - - mount: properly parse timeouts options in the middle of - the string - - hostnamed: drop all caps but CAP_SYS_ADMIN - - execute: when we run as PID 1 the kernel doesn't give us - CAP_SETPCAP by default. Get that temporarily when dropping - capabilities for good - - mount: make device timeout configurable - - cryptsetup: do not order crypto DM devices against the - cryptsetup service - - socket: reuse existing FIFOs - - socket: guarantee order in which sockets are passed to be - the one of the configuration file - - systemctl: always consider unit files with no - [Install] section but stored in /lib enabled - - job: also print status messages when we successfully started - a unit - - hostnamed: add reference to SMBIOS specs - - man: runlevel 5 is usually more comprehensive, so use it - instead of 3 to detect whether a sysv service is enabled - - polkit: follow the usual syntax for polkit actions - - hostnamed: introduce systemd-hostnamed - - units: order quotacheck after remount-rootfs - - hostname: split out hostname validation into util.c - - dbus: split out object management code into dbus-common, - and simplify it - - strv: properly override settings in env_append() - - strv: detect non-assignments in env blocks properly in - env_append() - - strv: handle empty lists in strv_copy() properly - - util: truncate newline inside of read_one_line_file() - - util: modernize get_parent_of_pid() a bit - - crypto: let the cryptsetup binary handles its own - configurable timeouts - - logger,initctl: use global exit timeout - - ask-password: use default timeout - - manager: drop all pending jobs when isolating - - manager: introduce IgnoreOnIsolate flag so that we can keep - systemd-logger around when isolating - - units: never pull in sysinit from utmp, so that we can - shutdown from emergency mode without pulling in sysinit - - manager: downgrade a few log messages - - units: require syslog.socket from the logger because we - simply fail if we don't have it - - logger: adjust socket description to match service - - units: set stdout of kmsg syslogd to /dev/null - - units: add --no-block when starting normal service after - shell exited - - ask-password: use kill(PID, 0) before querying a password - - ask-password: support passwords without timeouts - - ask-password: always send final NUL char - - ask-password: properly accept empty passwords from agent - - unit: skip default cgroup setup if we have no hierarchy - - units: isolate emergency.target instead of emergency.service - when we fail to mount all file systems - - mount: don't pull in stdio logger for root mount unit - - cgroup: be nice to Ingo Molnar - - pam: use /proc/self/sessionid only with CAP_AUDIT_CONTROL - - pam: use /proc/self/loginuid only with CAP_AUDIT_CONTROL - - socket: try creating a socket under our own identity if we - have no perms to consult the selinux database - - socket: fix check for SEQPACKET - - execute: don't fail if we cannot fix OOM in a container - - unit: fix dump output - - socket: be a bit more verbose when refusing to start a - socket unit - - socket: support netlink sockets - - local-fs: invoke emergency.service mounting at boot fails - - path: optionally, create watched directories in .path units - - tmpfiles: don't warn if two identical lines are configured - - man: add man page for ask-password - - dbus: expose monotonic timestamps on the bus - - manager: no need to use randomized generator dir when running - as system manager - - don't make up buffer sizes, use standard LINE_MAX instead - - unit: disallow configuration of more than one on_failure - dependencies if OnFailureIsolate= is on - - unit: pull in logger unit only when running in system mode - - manager: serialize/deserialize max job id and /usr taint flag - - manager: don't garbage collect jobs when isolating, to change - global state - - unit: introduce OnFailureIsolate= - - mount: relabel both before and after a mount, just in case - - cmdline: we actually want to parse the kernel cmdline in VMs, - just not in containers - - units: rename rtc-set.target to time-sync.target and pull it - in by hwclock-load.service - - job: fix deserialization of jobs: do not ignore ordering - - systemctl: properly parse JobNew signals - - service: fix units with more than one socket - - systemctl: make most operations NOPs in a chroot - - manager: don't show PID for incoming signals if it is 0 - - man: fix description of systemctl reload-or-try-restart - - mount: block creation of mount units for API file systems - - units: call the logger a bridge too - - build-sys: always place user units in /usr/lib/systemd - - pkgconfig: update .pc file accordingly - - lookup: always also look into /usr/lib for units - - exec: support unlimited resources - - selinux: relabel /run the same way as /dev after loading - the policy since they both come pre-filled and unlabelled - - manager: fd must be int, not char - - change remaining /var/run to /run - - units: move user units from /usr/share to /usr/lib since - they might be arch-dependent - - man: document /etc/sysctl.d/ - - binfmt: add binfmt tool to set up binfmt_misc at boot - - tmpfiles: create leading directories for d/D instructions - - condition: add ConditionSecurity - - load-fragment: unify config_parse_condition_{kernel, virt} - - condition: fix dumping of conditions - - initctl: /dev/initctl is a named pipe, not a socket - - kmsg-syslogd: pass facility value into kmsg - - move /var/lock to HAVE_SYSV_COMPAT - - tmpfiles: split off rules for legacy systems into legacy.conf - - general: replace a few uses of /var/run by /run - - tmpfiles: enforce new /var/lock semantics - - man: document ConditionPathIsDirectory= - - mount: also relabel pre-mounted API dirs - - log: don't strip facility when writing to kmsg - - build-sys: create a number of drop-in config dirs - - random: do not print warning if random seed doesn't exist - - plymouth: use PID file to detect whether ply is running - - build-sys: install systemd-analyze by default - - analyze: improve output - - analyze: add plotter - - unit: when deserializing do reconnect to dbus/syslog when - they show up - - analyze: beautify output a bit - - add systemd-analyze tool - - unit: don't override timestamps due to state changes when - deserializing - - plymouth: don't explicitly enable status message when - plymouth is up - - status: show status messages unconditionally if plymouth - is around - - taint: add missing cgroups taint flag - - locale: don't access misinitialized variable - - quota: do not pull in quota tools for mounts that do not - originate in neither /etc/fstab nor fragment files - - manager: fix taint check for /usr - - unit: never apply /etc/rcN.d/ priority to native services - - unit: fix parsing of condition-result - - unit: don't complain about failed units when deserializing - - exec: drop process group kill mode since it has little use - and confuses the user - - cgroup: explain when we cannot initialize the cgroup stuff - - systemctl: don't truncate description when using pager - - ask-password: also accept Backspace as first keypress as - silent mode switch - - unit: when deserializing jobs, don't pull in dependencies - - locale: fix LC_MESSAGES variable name - - plymouth: Remove the calls to plymouth message - - udev: systemd-tag all ttys - - tmpfiles fix /run/lock permissions - - ask-password: use TAB to disable asterisk password echo - - execute: socket isn't abstract anymore - - use /run instead of /dev/.run - - man: explain a couple of default dependencies - - mount: pull in quota services from local mountpoints with - usr/grpquota options - - service: pull in sysv facility targets from the sysv units, - not the other way round - - units: pull in syslog.target from syslog.socket - - units: don't ever pull in SysV targets from other SysV - targets - - units: document that some targets exists only for compat - with SysV - - man: document pidns containers - - units: deemphesize Names= settings, and explain why nobody - whould use them - - units: on mandriva/fedora create single.service alias via - symlink, not Names= - - units: get rid of runlevel Names=, the symlinks in - /lib/systemd/system are much more useful - - rework syslog detection so that we need no compile-time - option what the name of the syslog implementation is - - man: document .requires/ directories - - special: get rid of dbus.target - - exec: properly apply capability bounding set, add inverted - bounding sets - - dbus: add service D-Bus property "Sockets" - - dbus: consolidate service SysV conditionals - - unit: serialize condition test results - - def: centralize definition of default timeout in one place - - chkconfig: check against runlevel 5 instead of 3, since it is - a superset of the latter - - systemctl: accept condstop as alias for stop - - dbus: allow LoadUnit to unprivileged users - - umount: make sure skip_ro is always correctly initialized -- create /run (link it to /var/run) -- refresh splash password patch -- conflict with old mkinitrd version (we need /run) -- conflict with old udev (we need /run) - -------------------------------------------------------------------- -Wed Mar 16 18:38:04 CET 2011 - kay.sievers@novell.com - -- new snapshot - - man: fix systemctl try-restart description - - Add Frugalware display-manager service - - main: revert recognition of "b" argument - - main: interpret all argv[] arguments unconditionally when - run in a container - - loopback: downgrade an error to warning - - nspawn: bind mount /etc/localtime - - nspawn: make tty code more robust against closed/reopened - /dev/console - - util: make touched files non-writable by default - - nspawn: allocate a new pty instead of passing ours through - to avoid terminal settings chaos - - main: parse the whole arv[] as kernel command line - - main: check if we have a valid PID before getting the name - - ask-password: reset signal mask after we are done - - cgroup: don't recheck all the time whether the systemd - hierarchy is mounted, to make strace outputs nicer and save - a few stat()s - - man: document systemd-nspawn - - cgls: don't strip user processes and kernel threads from - default output - - umount: don't try to remount bind mounts ro during shutdown - - getty: move automatic serial getty logic into generator - - container: skip a few things when we are run in a container - such as accessing /proc/cmdline - - cgls: by default start with group of PID 1 - - pam: determine user cgroup tree from cgroup of PID 1 - - nspawn: move container into its own name=systemd cgroup - - manager: don't show kernel boot-up time for containers - - manager: show who killed us - - units: add console-shell.service which can be used insted of - the gettys to get a shell on /dev/console - -------------------------------------------------------------------- -Mon Mar 14 18:29:23 CET 2011 - kay.sievers@novell.com - -- new snapshot - - build-sys: move remaining tools from sbin/ to bin/ since they - might eventually be useful for user execution - - hostname: don't override the hostname with localhost if it - is already set and /etc/hostname unset - - audit: give up sending auditing messages when it failed due - to EPERM - - nspawn: don't require selinux on if it is compiled in - - main: remove AF_UNIX sockets before binding - - shutdown: print a nice message when terminating a container - - nspawn: mount /selinux if needed - - shutdown: just call exit() if we are in a container - - umount: assume that a non-existing /dev/loop device means it - is already detached - - socket: use 777 as default mode for sockets - - main: log to the console in a container - - main: don't parse /proc/cmdline in containers - - util: add detect_container() - - nspawn: reset environment and load login shell - - core: move abstract namespace sockets to /dev/.run - - nspawn: add simple chroot(1) like tool to execute commands - in a namespace container - - util: return exit status in wait_for_terminate_and_warn() - - util: properly identify pty devices by their major - -------------------------------------------------------------------- -Sat Mar 12 14:26:28 CET 2011 - kay.sievers@novell.com - -- new snapshot - - polkit: autogenerate polkit policy with correct paths - - systemctl: support remote and privileged systemctl access - via SSH and pkexec - - gnome-ask-password-agent: fix path to watch - -------------------------------------------------------------------- -Fri Mar 11 13:59:34 CET 2011 - kay.sievers@novell.com - -- fix broken sysctl.service linking - -------------------------------------------------------------------- -Fri Mar 11 01:39:41 CET 2011 - kay.sievers@novell.com - -- new snapshot - - units: move the last flag files to /dev/.run - - util: close all fds before freezing execution - - dbus: timeout connection setup - - main: properly handle -b boot option - - pam: do not leak file descriptor if flock fails -- disable sysv services natively provided by systemd - -------------------------------------------------------------------- -Thu Mar 10 14:16:50 CET 2011 - kay.sievers@novell.com - -- new snapshot - - main: refuse system to be started in a chroot - - main: don't check if /usr really is a mount point, since it is - fine if it is passed pre-mounted to us from the initrd - - condition: take a timestamp and store last result of conditions - - dev: use /dev/.run/systemd as runtime directory, instead of - /dev/.systemd - - machine-id: move machine-id-setup to /sbin - - pkconfig: export full search path as .pc variable - - selinux: bump up error level when in non-enforcing mode - - dbus: fix dbus assert due to uninitialized error - - dbus: properly generate UnknownInterface, UnknownProperty - and PropertyReadOnly errors - - mount: use /dev/.run as an early boot alias for /var/run - -------------------------------------------------------------------- -Tue Mar 8 19:06:45 UTC 2011 - kay.sievers@novell.com - -- version 20 - - service: prefix description with LSB only if script has LSB header, - use 'SysV:' otherwise - - unit: don't accidently create ordering links to targets when - default deps are off for either target and unit - - mount: support less cumbersome x-systemd-xxx mount options - - unit: distuingish mandatory from triggering conditions - - dbus: return DBUS_ERROR_UNKNOWN_OBJECT when an object - is unknown - - systemctl: when forwarding is-enabled to chkconfig - hardcode runlevel 3 - - job: introduce new job result code 'skipped' to use when pre - conditions of job did not apply - - job: convert job type as early as we can, to simplify things - - Keep emacs configuration in one configuration file. - - syslog: make sure the kmsg bridge is always pulled in and - never terminated automatically - - mount: make /media a tmpfs - -------------------------------------------------------------------- -Mon Mar 7 17:24:46 CET 2011 - kay.sievers@novell.com - -- new snapshot - - add org.freedesktop.DBus.Properies.Set method - - main: introduce /etc/machine-id - - systemctl: fix exit code when directing is-enabled - to chkconfig - - dbus: add 'Tainted' property to Manager object - - dbus: expose distribution name and features on manager - object as properties - - man: document changed EnvironmentFile= behaviour - - main: add link to wiki page with longer explanation of the - /usr madness - - execute: load environment files at time of execution, not - when we load the service configuration - - path: after installing inotify watches, recheck file again - to fix race - - path: don't use IN_ATTRIB on parent dirs when watching a - file, since those cannot be removed without emptying the dir - first anyway and we need IN_ATTRIB only to detect the link - count dropping to 0 - - kill: always send SIGCONT after SIGTERM - - readahead: disable collector automatically on read-only media - - sysctl: use scandir() instead of nftw() to guarantee - systematic ordering - - support DT_UNKNOWN where necessary for compat with reiserfs - - systemctl: always null-terminate the password -- call systemd-machine-id-setup at installation - -------------------------------------------------------------------- -Tue Mar 1 12:28:01 CET 2011 - kay.sievers@novell.com - -- version 19 - - udev: don't ignore non-encrypted block devices with no - superblock - - udev: expose ttyUSB devices too - - udev: mark hvc devices for exposure in systemd - - cryptsetup: add a terse help - - agent: don't print warnings if a password was removed or - timed out - - systemctl: shutdown agent explicitly so that it can reset - the tty properly - - never clean up a service that still has a process in it - - label: udev might be making changes in /dev while we - iterate through it - - systemctl: properly handle job results - - job: also trigger on-failure dependencies when jobs faile - due to dependencies, timeout - - job: when cancelling jobs, make sure to propagate this - properly to depending jobs - - job: start job timeout on enqueuing not when we start to - process a job - - unit: increase default timeout to 3min - - logger: leave the logger longer around and allow it do - handle more connections - - dbus: pass along information why a job failed when it - failed (dbus api change!) - - general: unify error code we generate on timeout - - units: synchronize gettys to plymouth even if plymouth is - killed by gdm - - job: start job timer when we begin running the job, not - already when we add it to the queue of jobs - - cryptsetup: try to show the mount point for a crypto disk - if we can - - rescue: terminate plymouth entirely when going into - rescue mode - - ask-password: fix handling of timeouts when waiting - for password - - ask-password: supported plymouth cached passwords - - main: print warning if /usr is on a seperate partition - - ensure we start not a single getty before plymouth is - gone because we never know which ttys plymouth still controls - - unit: introduce ConditionVirtualization= - -------------------------------------------------------------------- -Mon Feb 21 19:30:30 CET 2011 - kay.sievers@novell.com - -- new snapshot - - dbus: don't rely that timer/path units have an initialized - unit field (bnc#671561) - -------------------------------------------------------------------- -Mon Feb 21 13:58:51 CET 2011 - kay.sievers@novell.com - -- new snapshot - - order network mounts after network.target (bnc#672855) - -------------------------------------------------------------------- -Mon Feb 21 04:19:15 CET 2011 - kay.sievers@novell.com - -- new snapshot - - kmsg-syslogd: increase terminate timeout to 5min to generte - less debug spew - - shutdown(8) - call kexec if kexec kernel is loaded (bnc#671673) - - unit: don't timeout fsck - - man: fixed typo in SyslogIdentifier= - - tmpfiles: never clean up block devices - - main: refuse --test as root - -------------------------------------------------------------------- -Fri Feb 18 13:52:22 CET 2011 - kay.sievers@novell.com - -- new snapshot - - units: order fsck@.service before basic.target - instead of local-fs.target to relax things a little - - readahead: remove misleading error messages - - man: don't do more reloads than necessary in spec files - - util: retry opening a TTY on EIO - - util: beef up logic to find ctty name - - tmpfiles: kill double slashes in unix socket names -- drop vhangup patch, it is fixed in login(3) by forwarding the - SIGHUP to the child process - -------------------------------------------------------------------- -Fri Feb 18 09:33:55 UTC 2011 - coolo@novell.com - -- revert back to conflicts: sysvinit - -------------------------------------------------------------------- -Thu Feb 17 15:04:44 CET 2011 - werner@suse.de - -- Add temporary workaround for bnc#652633, that is do a vhangup - to all processes on a tty line used for a getty - -------------------------------------------------------------------- -Wed Feb 16 21:39:20 CET 2011 - kay.sievers@novell.com - -- version 18 - - systemctl: introduce --ignore-dependencies - - systemctl: introduce --failed to show only failed services - - systemctl: introduce --failed to show only failed services - - rescue: make 'systemctl default' fail if there is already - something running when the shell exited - - util: seperate welcome line from other output by empty lines - - manager: don't consider transaction jobs conflicting with - queued jobs redundant - - udev: ignore block devices which no known contents, to avoid - trying of mounts/swapons when devices aren't set up full yet - - swap: handle "nofail" from fstab - - mount,swap: properly add dependencies to logger if needed - - service: change default std output to inherit - - exec: introduce global defaults for the standard output - of services - - udev: use SYSTEMD_READY to mask uninitialized DM devices - - fsck: output to /dev/console by default in addition to syslog - - execute: optionally forward program output to /dev/console in - addition to syslog/kmsg - - socket: refuse socket activation for SysV services - - fsck: do not fail boot if fsck returns with an error code that - hasn't 2 or 6 set - - shutdown: execute all binaries in /lib/systemd/system-shutdown - as last step before invoking reboot() - - job: make status message printing more verbose - - cryptsetup: fix unit file description - - tmpfiles: never delete AF_UNIX sockets that are alive - - getty: don't parse console= anymore, use - /sys/class/tty/console/active instead - - properly resolve /dev/console if more than once console= - argument was passed on the kernel command line - - getty: do not auto-spawn getty's on VC ttys if console=ttyN - - fsck: skip root fsck if dracut already did it - - util: when determining the right TERM for /dev/console - consult /sys/class/tty/console/active - - pam: introduce whitelist and blacklist user list feature - - systemctl: minor optimizations - - systemctl: don't unnecessarily close stdin/stdout/stderr for - tty agent so that locking by tty works - - readahead: disable readahead in virtual machines - - tmpfiles: move binary to /bin to make it publicly available - - tmpfiles: take names of tmpfiles configuration files on the - command line - - tmpfiles: log to stderr if possible - - tmpfiles: support globs - - units: introduce and hook up sound.target - - dbus: allow all clients access to org.freedesktop.DBus.Peer - - consider udev devices with SYSTEMD_READY=0 as unplugged - - systemctl: don't start agent for --user - - systemctl: make sure the tty agent does not retain a copy - of stdio - -------------------------------------------------------------------- -Tue Feb 8 19:10:06 CET 2011 - kay.sievers@novell.com - -- new snapshot - - plymouth: move plymouth out of TARGET_FEDORA - - build-sys: fix AC_COMPILE_IFELSE tests - - build-sys: ensure selinux configure check follows logic of - other optional features - - build-sys: autodetect and use pkg-config for libselinux - - dbus: use ControlGroup as property name to match config option - - pam: optionally reset cgroup memberships for login sessions - - load-fragment: properly parse Nice= value - - automount: use unit_pending_inactive() where appropriate - -------------------------------------------------------------------- -Tue Feb 8 17:40:29 CET 2011 - jeffm@suse.de - -- Removed unecessary workaround for plymouth startup. - -------------------------------------------------------------------- -Fri Feb 4 21:24:11 CET 2011 - jeffm@suse.de - -- Split plymouth support into systemd-plymouth package. - -------------------------------------------------------------------- -Sat Jan 22 14:42:34 CET 2011 - kay.sievers@novell.com - -- new snapshot - - clang: fix some issues found with clang-analyzer - - gcc: make gcc shut up - -------------------------------------------------------------------- -Sat Jan 22 14:40:24 CET 2011 - kay.sievers@novell.com - -- version 17 - - vala 0.10 seem to work fine - - cryptsetup: fix ordering loop when dealing with encrypted - swap devices - - main: don't warn if /etc/mtab is a symlink to /proc/mounts - - socket: don't crash if the .service unit for a .socket unit - is not found - - mount: ignore if an fsck is requested for a bind mount, - so that we don't wait for the bind 'device' to show up - - automount: fix segfault when shutting down - - man: give an example for vconsole.conf - - dbus: don't try to connect to the system bus before it is - actually up - - service: make chain of main commands and control commands - independent of each other, so that both can be executed - simultaneously and independently - - service: don't allow reload operations for oneshot services - - vala: convert from dbus-glib to gdbus - - systemctl: highlight failed processes in systemctl status - - systemctl: show process type along process exit codes - - service: when reloading a service fails don't fail the entire - service but just the reload job - -------------------------------------------------------------------- -Wed Jan 19 12:55:40 CET 2011 - kay.sievers@novell.com - -- new snapshot - - shutdown: use correct kexec options - - serial-getty: do not invoke /sbin/securetty; recent - pam_securetty looks for console= in /proc/cmdline - - systemctl: before spawning pager cache number of columns - - pam: optionally keep processes of root user around - - service: if a reload operation fails, don't shut down - the service - - execute: make sending of SIGKILL on shutdown optional - - mount: do not translate uuids to lowercase - - man: document missing KillSignal= and swap options -- require recent util-linux -- drop mtab symlink creation which is done in util-linux - -------------------------------------------------------------------- -Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com - -- version 16 - - device: don't warn if we cannot bump the udev socket buffer - - logger: when passing on PID info, fall back to our own if - originating process is already gone - - service: don't hit an assert if information in LSB headers is - incorrectly formatted - - execute,util: fix two small memory leaks - - getty: unset locale before execution - - execute: drop empty assignments from env blocks on execution - but keep them around otherwise to make them visible - - umount: don't try to detach the dm device the root dir is on, - to minimize warning messages - - locale: fix variable names - - fragment: allow prefixing of the EnvironmentFile= - path with - to ignore errors - - util: don't pass invalid fd to fdopendir() on error to avoid - corruption of errno - - tmpfiles: nicer message when two or more conflicting lines - are configured for the same file - - fragment: properly handle quotes in assignments in - EnvironmentFile= files - - sysctl: don't warn if sysctls are gone - - readahead: ignore if files are removed during collection or - before replay - - serial: use TERM=vt100 instead of TERM=vt100-nav - - cryptsetup: call mkswap on dm device, not on source device - - mount-setup: mount /dev/pts with mode=620,gid=5 by default - and make GID overridable via configure switch - - systemctl: implement auto-pager a la git - - shutdown: drop redundant sync() invocation - - util: invoke sync() implicitly on freeze() - - tmpfiles: do no follow symlinks when cleaning up dirs - -------------------------------------------------------------------- -Tue Dec 28 22:08:28 CET 2010 - jeffm@suse.de - -- Add support for building plymouth support with openSUSE - -------------------------------------------------------------------- -Mon Dec 27 22:15:41 CET 2010 - kay.sievers@novell.com - -- new snapshot - - pam: do not sort user sessions into their own cgroups in - the 'cpu' hierarchy - - mount-setup: drop noexec flag from default mount options - for /dev/shm - - systemd.pc: change 'session' to 'user' - -------------------------------------------------------------------- -Thu Dec 16 16:52:04 CET 2010 - kay.sievers@novell.com - -- new snapshot - - ifdef suse-only sysv script lookup code - -------------------------------------------------------------------- -Thu Dec 16 12:49:00 UTC 2010 - seife@opensuse.org - -- add bootsplash handling patch to be able to enter e.g. - crypto passphrases (bnc#659885) - -------------------------------------------------------------------- -Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com - -- new snapshot - - add LSB 'smtp' alias for mail-transport-agent.target - -------------------------------------------------------------------- -Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com - -- new snapshot - - path: fix watching the root directory - - update README - -------------------------------------------------------------------- -Fri Nov 26 19:17:46 CET 2010 - kay.sievers@novell.com - -- new snapshot - - gnome-ask-password-agent: also support libnotify < 0.7 for now - - udev: increase event buffer size -- require fsck -l - -------------------------------------------------------------------- -Thu Nov 25 06:45:41 CET 2010 - kay.sievers@novell.com - -- version 15 - - dbus: use the right data slot allocator - - manager: bump up max number of units to 128K - - build-sys: allow cross-compilation -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Tue Nov 23 11:49:43 CET 2010 - kay.sievers@novell.com - -- new snapshot - - units: simplify shutdown scripts - - logger: fix error handling - - swap: order file-based swap devices after remount-rootfs -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Mon Nov 22 10:10:59 CET 2010 - kay.sievers@novell.com - -- new snapshot - - systemctl: don't return LSB status error codes for 'show' - - mount: do not try to mount disabled cgroup controllers - - man: document /etc/modules-load.d/, /etc/os-release, - locale.conf, /etc/vconsole.conf, /etc/hostname - - units: move a couple of units from base.target to - sysinit.target - - man: reorder things to follow the same order everywhere -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Sat Nov 20 19:58:14 CET 2010 - kay.sievers@novell.com - -- version 13 - - cryptsetup: actually show disk name - - cryptsetup: show udev device name when asking for password - - sysctl: implement native tool and support /etc/sysctl.d - - units: enable console ask-password agent by default - - introduce /etc/os-release distro description - - job: make sure we don't fail umount.target if a mount unit - failed to stop - - cgroup: after killing cgroup processes, ensure the group is - really dead gone. wait for 3s at max - - cgroup: if we couldn't remove a cgroup after killing - evertyhing in it then it's fine - - cryptsetup: automatically order crypt partitions before - cryptsetup.target - - man: trivial BindTo description fix - - manager: make list of default controllers configurable - - build: expose libcryptsetup dependency in build string - - pam: document controllers= switch - - cgroup: by default, duplicate service cgroup in the cpu hierarchy - - pam: duplicate cgroup tree in the cpu hierarchy by default, - optionally more -- enable native crypto handling instead of boot.crypto -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Wed Nov 17 01:32:04 CET 2010 - kay.sievers@novell.com - -- version 12 - - ask-password: add --console mode to ask /dev/console -- revert too new libnotify code/requirement - -------------------------------------------------------------------- -Tue Nov 16 11:47:28 CET 2010 - kay.sievers@novell.com - -- new snapshot - - cryptsetup: reword questions a little - - units: order hwclock after readahead - - path: don't mention too many inotify msgs - - cryptsetup: include device name in password question - - cryptsetup: lock ourselves into memory as long as we deal - with passwords - - plymouth: use updated socket name - - units: set TERM for gettys again, since they acquire a TTY - - units: allow start-up of plymouth ask-password agent very early - - units: enable ask-paswword .path units early enough to be useful - for early mounts - - units: delay getty until logins are allowed - - pam: always rely on loginuid instead of uid to determine cgroup - and XDG_RUNTIME_DIR name - - cgroup: call root cgroup system instead of systemd-1 - - exec: determine right TERM= setting based on tty name - - pam: rename master user cgroup to 'master' - - drop support for MANAGER_SESSION, introduce MANAGER_USER - - units: use ConditionDirectoryNotEmpty= where applicable - - unit: introduce ConditionDirectoryNotEmpty= - - delete tmp.mount which may conflict with an unrelated fstab - entry -- revert too new libnotify code/requirement -- disable native crypto handling - -------------------------------------------------------------------- -Mon Nov 15 18:45:31 CET 2010 - kay.sievers@novell.com - -- new snapshot - - load-dropin: add support for .requires directories - - manager: consider jobs already installed as redundant when - reducing new transactions - - manager: always pull 'following' units into transaction - - util: always highlight distro name - - units: make use of agetty mandatory - - manager: don't fail transaction if adding CONFLICTED_BY job fails - - job: make it possible to wait for devices to be unplugged - - tmpfiles: ignore files marked with the sticky bit - - cryptsetup: handle password=none properly - - cryptsetup: properly parse cipher= switch - - cryptsetup: support non-LUKS crypto partitions - - ask-password: enable password agent - - automatically start cryptsetup when looking for mount source - - log: add automatic log target - - cryptsetup: hook up tool with ask-password - - manager: hookup generators - - split mount_point_is_api() and mount_point_ignore() -- replace boot.crypto job with systemd native crypto handling -- enable readahead (requires 2.6.37+ kernel's fanotify to work) - -------------------------------------------------------------------- -Thu Nov 11 07:44:02 CET 2010 - kay.sievers@novell.com - -- new snapshot - - tmpfiles: include reference to man page in tmpfiles files - - vconsole: support additional keymap for toggling layouts - - main: warn if /etc/mtab is not a symlink - - add bash completion for systemctl --system - - man: minor tmpfiles(5) updates and reindenting - - main: rename process on startup to 'systemd' to avoid confusion - - unit: add ConditionNull= condition - - ac-power: make ac-power a proper binary that scripts can call - - manager: parse RD_TIMESTAMP passed from initrd - - modules-load: fix minor race - - label: use internal utility functions wher epossible - - cryptsetup: minimal cryptsetup unit generator - - selinux: relabel /dev after loading policy - - log: downgrade syslog connection failure message - - service: delay automatic restart if job is pending - - manager: when isolating undo all pending jobs, too - - manager: only minimize impact if we are in fail mode -- replace /etc/mtab with link to /proc/self/mounts - -------------------------------------------------------------------- -Fri Nov 5 00:28:10 CET 2010 - kay.sievers@novell.com - -- new snapshot - - man/tmpfiles.d.xml: add a manpage for tmpfiles - - do not overwrite other udev tags - - readahead: shortcut replay if /.readahead doesn't exist - -------------------------------------------------------------------- -Fri Oct 29 21:20:57 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - fsck: return SUCCESS when we skip the check - - fsck: skip checking / if it is writable - - units: fix variable expansion - - mount: don't pull in nofail mounts by default, but use them - if they are around - - job: recursively fail BoundBy dependencies - - fsck: fix target name to check for - - units: rename fedora/single.service to rescue.service - - units: introduce plymouth-start and plymouth-kexec - - unit: get rid of IgnoreDependencyFailure= - - use util-linux:agetty instead of mingetty - - unit: replace StopRetroactively= by BindTo= dependencies - - automount: show who's triggering an automount - - units: run sysctl only if /etc/sysctl.conf exists - - systemctl: always show what and where for mount units - - shutdown: reword a few messages a little - - manager: show which jobs are actually installed after a transaction - - timer: when deserializing timer state stay elapsed - - device: set recursive_stop=true by default - - unit: suppress incorrect deserialization errors - - swap: there's no reason not order swap after sysinit - - socket: fix IPv6 availability detection - -------------------------------------------------------------------- -Wed Oct 27 12:00:26 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - create /dev/stderr and friends early on boot - - run sysv related scripts with TERM=linux - - add only swaps listed in /etc/fstab automatically to swap.target - - errors: refer to systemctl status when useful - - swap: add default cgroup to swap exec env - - readahead: bump a device's request_nr when enabling readahead - - shutdown: properly handle sigtimedwait() timing out - - main: fix typo in kernel cmdline parameters help - - ord-tty: properly handle SIGINT/SIGTERM - - systemctl: automatically spawn temporary password agent - - ask-password: properly handle multiple pending passwords - - ask-password: enable plymouth agent by default - - ask-password: add minimal plymouth password agent - -------------------------------------------------------------------- -Tue Oct 26 13:10:01 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - make sure to pass TERM=linux to all sysv scripts - - don't unset HOME/TERM when run in session mode - - mount: add nosuid,nodev,noexec switches to /var/lock and /var/run - - tmpfiles: Don't clean /var/lock/subsys - - tmpfiles: Make wtmp match utmp perms, and add btmp - - umount: Make sure / is remounted ro on shutdown - - unset HOME and TERM set from the kernel - - activate wall agent automatically - - ask-password: add basic tty agent - -------------------------------------------------------------------- -Sat Oct 23 18:09:23 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - rename ask-password-agent to gnome-ask-password-agent - - fsck: suppress error message if we cannot change into single - user mode since - - dbus: epose FsckPassNo property for service objects - - man: document systemctl --force - - introduce 'systemctl kill' - -------------------------------------------------------------------- -Sat Oct 23 14:57:57 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - syslog: enable kmsg bridge by default - - fsck: add initial version of fsck and quotacheck wrappers - - tmpfiles: remove forcefsck/fastboot flag files after boot - - swap: listen for POLLPRI events on /proc/swaps if availabled - - tmpfiles: integrate native tmpwatch - - shutdown: loop only as long as we manage to unmount/detach devices - - umount: disable dm devices by devnode, not by path name - - introduce final.target - - replace distro-specific shutdown scripts with native services - - try to get rid of DM devices - - log to console by default - - introduce kexec.service, kexec.target and exit.target - - hook in fsck@.service instance for all mount points with passno > 0 - - systemctl: warn if user enables unit with no installation instructions - - dbus: add introspection to midlevel paths - - look for dynamic throw-away units in /dev/.systemd/system - - major rework, use /sbin/swapon for setting up swaps - - introduce Restart=on-failure and Restart=on-abort - - units: enable utmp for serial gettys too - - rename 'banned' load state to 'masked' - - optionally, create INIT_PROCESS/DEAD_PROCESS entries for a service -- use systemd-native fsck/mount -- use systemd-native tmpfiles.d/ instead of tmpwatch - -------------------------------------------------------------------- -Fri Oct 8 14:49:04 CEST 2010 - kay.sievers@novell.com - -new snapshot - - fix 'systemctl enable getty@.service' - - properly support 'banning' of services - - handle nologin - - add native reboot/shutdown implementation - -------------------------------------------------------------------- -Thu Oct 7 15:58:10 CEST 2010 - kay.sievers@novell.com - -- version 11 - -------------------------------------------------------------------- -Wed Oct 6 09:27:13 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - readahead fixes - -------------------------------------------------------------------- -Sun Oct 3 08:08:13 UTC 2010 - aj@suse.de - -- /etc/modules.d was renamed to modules-load.d -- only include tmpfiles.d/*conf files - -------------------------------------------------------------------- -Wed Sep 29 11:55:11 CEST 2010 - kay.sievers@novell.com - -- don't create sysv order deps on merged units -- fix Provides: handling in LSB headers (network.target) -- native (optional) readahead - -------------------------------------------------------------------- -Sun Sep 26 20:39:53 UTC 2010 - aj@suse.de - -- Do not package man pages twice. - -------------------------------------------------------------------- -Wed Sep 22 11:40:02 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - basic services are enabled by default now - -------------------------------------------------------------------- -Tue Sep 21 14:39:02 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - vconsole and locale setup - - hook up tmpwatch - -------------------------------------------------------------------- -Fri Sep 17 10:58:24 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - add new utility to initialize the virtual console - - initialize locale from /etc/locale by default - - ask-password: allow services query SSL/harddisk passphrases - -------------------------------------------------------------------- -Fri Sep 17 10:54:24 CEST 2010 - kay.sievers@novell.com - -- version 10 - - logger: support SOCK_STREAM /dev/log sockets - - make sure the file system is writable before we write utmp data - - systemctl: use isolate when called as telinit for a runlevel - - initctl: properly use isolate when activating runlevels - - set HOME=/root when running shells - - make sure we don't crash if there's an automount unit without - mount unit - - start logger only after syslog is up - -------------------------------------------------------------------- -Fri Sep 3 11:52:42 CEST 2010 - kay.sievers@novell.com - -- version 9 - - units: don't add shutdown conflicts dep to umount.target - - dbus: don't send cgroup agent messages directly to system bus - - dbus: don't accept activation requests anymore if we are going - down anyway - - systemctl: fix return value of systemctl start and friends - - service: wait for process exit only if we actually killed - somebody - -------------------------------------------------------------------- -Thu Aug 26 22:14:04 CEST 2010 - kay.sievers@novell.com - -- version 8 - - KERNEL 2.6.36+ REQUIRED! - - mount cgroup file systems to /sys/fs/cgroup instead of /cgroup - - invoke sulogin instead of /bin/sh - - systemctl: show timestamps for state changes - - add global configuration options for handling of auto mounts - -------------------------------------------------------------------- -Fri Aug 20 06:51:26 CEST 2010 - kay.sievers@novell.com - -- apply /etc/fstab mount options to all api mounts -- properly handle LABEL="" in fstab -- do not consider LSB exit codes 5 and 6 as failure - -------------------------------------------------------------------- -Tue Aug 17 22:54:41 CEST 2010 - kay.sievers@novell.com - -- prefix sysv job descriptions with LSB: -- add native sysctl + hwclock + random seed service files -- properly fallback to rescue.target if default.target is hosed -- rename ValidNoProcess= to RemainAfterExit= -- add systemd-modules-load tool to handle /etc/modules.d/ - -------------------------------------------------------------------- -Tue Aug 17 09:01:04 CEST 2010 - kay.sievers@novell.com - -- add support for delayed shutdown, similar to sysv in style -- rename Type=finish to Type=oneshot and allow multiple ExecStart= -- don't show ENOENT for non exitent configuration files -- log build time features on startup -- rearrange structs to make them smaller -- move runlevel[2-5] links to /lib -- create default.target link to /lib not /etc -- handle random-seed -- write utmp record before we kill all processes -- create /var/lock/subsys, /var/run/utmp - -------------------------------------------------------------------- -Wed Aug 11 11:29:17 CEST 2010 - kay.sievers@novell.com - -- add audit messages for service changes -- update utmp with external program -- all to refuse manual service starting/stopping - -------------------------------------------------------------------- -Tue Aug 10 06:54:23 CEST 2010 - kay.sievers@novell.com - -- version 7 - - hide output if quiet is passed on the kernel cmdline - - fix auto restarting of units after a configuration reload - - don't call bus_path_escape() with NULL unit name - -------------------------------------------------------------------- -Fri Aug 6 13:07:35 CEST 2010 - kay.sievers@novell.com - -- version 6 - - man page update - -------------------------------------------------------------------- -Fri Aug 6 09:48:34 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - downgrade a few log messages - - properly handle devices which are referenced before they exist - -------------------------------------------------------------------- -Fri Aug 6 01:59:50 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - fix dependency cycle of boot.* by splitting fsck.target - - sort boot.* before other sysv services - from sysinint.target - - start getty for serial console - -------------------------------------------------------------------- -Thu Aug 5 23:12:32 CEST 2010 - kay.sievers@novell.com - -- add licence to subpackages - -------------------------------------------------------------------- -Wed Aug 4 12:42:23 CEST 2010 - kay.sievers@novell.com - -- version 5 - - selinux fixes -- fix hanging 'reboot' started from vc - -------------------------------------------------------------------- -Mon Aug 2 16:33:20 CEST 2010 - kay.sievers@novell.com - -- enable getty.target by default - -------------------------------------------------------------------- -Sat Jul 24 11:16:52 CEST 2010 - kay.sievers@novell.com - -- at install, read old inittab for the defaul target/runlevel -- disable services on package uninstall - -------------------------------------------------------------------- -Sat Jul 24 09:50:05 CEST 2010 - kay.sievers@novell.com - -- version 4 - - merge systemd-install into systemctl - -------------------------------------------------------------------- -Fri Jul 23 10:39:19 CEST 2010 - kay.sievers@novell.com - -- create config files in /etc in %post -- mark files in /etc as config -- remove nodev from /dev/pts -- add selinux support - -------------------------------------------------------------------- -Thu Jul 22 10:51:16 CEST 2010 - kay.sievers@novell.com - -- version 4 (pre) - - require newer vala - - add [Install] section to getty.target and remote-fs.target -- re-enable post-build check - -------------------------------------------------------------------- -Wed Jul 21 08:51:22 CEST 2010 - kay.sievers@novell.com - -- do not add sysv services that are not enabled in /etc/rcN.d/ -- allow symlinking unit files to /dev/null -- remove only pam sessions we ourselves created -- unit files in /etc/ always take precedence, even over link targets - -------------------------------------------------------------------- -Tue Jul 20 21:20:43 CEST 2010 - kay.sievers@novell.com - -- fix access mode verification of FIFOs - -------------------------------------------------------------------- -Sun Jul 18 11:31:06 CEST 2010 - kay.sievers@novell.com - -- fix default mode of /var/run and /var/lock -- force /var/run and /var/lock to be on tmpfs - -------------------------------------------------------------------- -Wed Jul 14 17:49:57 CEST 2010 - kay.sievers@novell.com - -- always enable udev and dbus until we can require systemd from - packages providing systemd service files - -------------------------------------------------------------------- -Wed Jul 14 01:10:27 CEST 2010 - kay.sievers@novell.com - -- drop systemd-units.rpm - -------------------------------------------------------------------- -Wed Jul 14 00:07:24 CEST 2010 - kay.sievers@novell.com - -- version 3 - - treat non-existing cgroups like empty ones, to deal with races - - replace --running-as= by --session and --system - - always allow stopping of units that failed to load - -------------------------------------------------------------------- -Tue Jul 13 06:22:56 CEST 2010 - kay.sievers@novell.com - -- update - -------------------------------------------------------------------- -Mon Jul 12 18:23:41 CEST 2010 - kay.sievers@novell.com - -- drop libcgroup - -------------------------------------------------------------------- -Mon Jul 12 10:04:26 CEST 2010 - kay.sievers@novell.com - -- trim cgroups for services that are "active" but "exited" -- drop /bin/init hack and require now fixed mkinitrd - -------------------------------------------------------------------- -Sun Jul 11 23:38:45 CEST 2010 - kay.sievers@novell.com - -- fix reboot issue -- fix abstract namespace name handling (needs udev update) -- prefer private D-Bus socket wherever possible - -------------------------------------------------------------------- -Sun Jul 11 00:50:14 CEST 2010 - kay.sievers@novell.com - -- D-Bus 1.3.2 support -- use COLD_BOOT=1 on reboot to skip sysv boot.d/ handling - -------------------------------------------------------------------- -Fri Jul 9 10:05:00 CEST 2010 - kay.sievers@novell.com - -- fix typo in spec file - -------------------------------------------------------------------- -Fri Jul 9 09:09:33 CEST 2010 - kay.sievers@novell.com - -- provide /bin/init to be found by 'too simple' mkinitrd, and work - around mindless relinking of relative links in the buildsystem -- add rpmlintrc to silent warnings about intentional behavior - -------------------------------------------------------------------- -Fri Jul 9 06:18:52 CEST 2010 - kay.sievers@novell.com - -- version 2 - -------------------------------------------------------------------- -Thu Jul 8 23:48:09 CEST 2010 - kay.sievers@novell.com - -- fix 'reboot -w' to skip the actual reboot -- fix segfault in D-Bus code -- use unique instead of multiple keys in config file -- support continuation lines in config files -- support multiple commands in a single key in config files -- adapt log level of some messages - -------------------------------------------------------------------- -Wed Jul 7 06:20:00 CEST 2010 - kay.sievers@novell.com - -- version 1 - - default log level to INFO - - show welcome message - -------------------------------------------------------------------- -Tue Jul 6 08:55:03 CEST 2010 - kay.sievers@novell.com - -- add systemd-install --start option -- add more documentation - -------------------------------------------------------------------- -Mon Jul 5 16:23:28 CEST 2010 - kay.sievers@novell.com - -- new snapshot with extended D-Bus support - -------------------------------------------------------------------- -Sun Jul 4 21:31:49 CEST 2010 - kay.sievers@novell.com - -- new snapshot with default unit dependency handling - -------------------------------------------------------------------- -Sat Jul 3 16:54:19 CEST 2010 - kay.sievers@novell.com - -- new snapshot - -------------------------------------------------------------------- -Fri Jul 2 10:04:26 CEST 2010 - kay.sievers@novell.com - -- add more documentation - -------------------------------------------------------------------- -Thu Jul 1 17:40:28 CEST 2010 - kay.sievers@novell.com - -- new snapshot - -------------------------------------------------------------------- -Fri Jun 25 00:34:03 CEST 2010 - kay.sievers@novell.com - -- split off systemd-units.rpm which can be pulled-in by other - packages without further dependencies - -------------------------------------------------------------------- -Thu Jun 24 09:40:06 CEST 2010 - kay.sievers@novell.com - -- add more documentation - -------------------------------------------------------------------- -Tue Jun 22 22:13:02 CEST 2010 - kay.sievers@novell.com - -- more man pages and documentation - -------------------------------------------------------------------- -Tue Jun 22 18:14:05 CEST 2010 - kay.sievers@novell.com - -- conflict with upstart -- include all installed doc files - -------------------------------------------------------------------- -Tue Jun 22 09:33:44 CEST 2010 - kay.sievers@novell.com - -- provide pam module - -------------------------------------------------------------------- -Mon Jun 21 10:21:20 CEST 2010 - kay.sievers@novell.com - -- use private D-Bus connection -- properly handle replacing a running upstart - -------------------------------------------------------------------- -Fri Jun 18 09:37:46 CEST 2010 - kay.sievers@novell.com - -- implement wall message in halt/reboot/... -- speak /dev/initctl to old /sbin/init after installing - -------------------------------------------------------------------- -Thu Jun 17 23:54:59 CEST 2010 - kay.sievers@novell.com - -- drop no longer needed -fno-strict-aliasing -- add README and examples - -------------------------------------------------------------------- -Thu Jun 17 23:23:42 CEST 2010 - kay.sievers@novell.com - -- enable pam and libwrap - -------------------------------------------------------------------- -Thu Jun 17 23:10:57 CEST 2010 - kay.sievers@novell.com - -- provide systemd-sysvinit.rpm with /sbin/init and friends - -------------------------------------------------------------------- -Thu Jun 17 11:06:14 CEST 2010 - kay.sievers@novell.com - -- libwrap / pam support - -------------------------------------------------------------------- -Wed Jun 16 09:46:15 CEST 2010 - kay.sievers@novell.com - -- initial packaging of experimental version 0 - diff --git a/systemd-mini.spec b/systemd-mini.spec deleted file mode 100644 index 28262652..00000000 --- a/systemd-mini.spec +++ /dev/null @@ -1,1573 +0,0 @@ -# -# spec file for package systemd-mini -# -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### -%define bootstrap 1 -##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### -%define mini -mini -%define real systemd -%define min_kernel_version 3.7 - -%bcond_without bash_completion -%bcond_without networkd -%bcond_without sysvcompat -%bcond_with resolved -%bcond_with python -%bcond_with parentpathid -%if 0%{?suse_version} > 1315 -%bcond_without permission -%bcond_without blkrrpart -%bcond_without udevsettle -%else -%bcond_with permission -%bcond_with blkrrpart -%bcond_with udevsettle -%endif -%bcond_with systemgrps - -Name: systemd-mini -Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 228 -Release: 0 -Summary: A System and Session Manager -License: LGPL-2.1+ -Group: System/Base -BuildRoot: %{_tmppath}/%{name}-%{version}-build - -Provides: %{real} = %{version}-%{release} - -BuildRequires: acl -BuildRequires: audit-devel -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: fdupes -BuildRequires: gperf -BuildRequires: intltool -BuildRequires: kbd -BuildRequires: libacl-devel -BuildRequires: libcap-devel -BuildRequires: libsepol-devel -BuildRequires: libtool -BuildRequires: pam-devel -BuildRequires: systemd-rpm-macros -BuildRequires: xz -BuildRequires: config(suse-module-tools) -BuildRequires: pkgconfig(blkid) >= 2.26 -BuildRequires: pkgconfig(libkmod) >= 15 -BuildRequires: pkgconfig(liblzma) -BuildRequires: pkgconfig(libpci) >= 3 -BuildRequires: pkgconfig(mount) >= 2.26 -%ifarch aarch64 %ix86 x86_64 x32 %arm ppc64le s390x -BuildRequires: pkgconfig(libseccomp) -%endif -%ifarch %{ix86} x86_64 -BuildRequires: gnu-efi -%endif -BuildRequires: pkgconfig(libselinux) >= 2.1.9 -BuildRequires: pkgconfig(libsepol) -Conflicts: sysvinit -Conflicts: otherproviders(systemd) -%if 0%{?bootstrap} -#!BuildIgnore: dbus-1 -Requires: this-is-only-for-build-envs -Provides: systemd = %version-%release -Conflicts: kiwi -%else -BuildRequires: docbook-xsl-stylesheets -BuildRequires: libgcrypt-devel -BuildRequires: libxslt-tools -%if %{with python} -BuildRequires: python -%endif -BuildRequires: libapparmor-devel -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -BuildRequires: pkgconfig(libmicrohttpd) -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 -# the buildignore is important for bootstrapping -#!BuildIgnore: udev -Requires: udev >= 172 -Recommends: %{name}-bash-completion -Requires: dbus-1 >= 1.4.0 -Requires: kbd -Requires: kmod >= 15 -Requires: netcfg -Requires: pam-config >= 0.79-5 -BuildRequires: pam-config >= 0.79-5 -Requires: pwdutils -Requires: systemd-presets-branding -Requires: sysvinit-tools -Requires: util-linux >= 2.27 -Requires(post): coreutils -Requires(post): findutils -Requires(post): pam-config >= 0.79-5 -%endif -Requires(pre): /usr/bin/getent -Requires(pre): /usr/sbin/groupadd -Requires(post): /usr/bin/awk -Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl -Conflicts: filesystem < 11.5 -Conflicts: mkinitrd < 2.7.0 -Conflicts: kernel < %{min_kernel_version} -Obsoletes: systemd-analyze < 201 -Provides: systemd-analyze = %{version} -Obsoletes: pm-utils <= 1.4.1 -Obsoletes: suspend <= 1.0 - -#Git-Clone: git://github.com/systemd/systemd -Source: https://github.com/systemd/systemd/archive/v%version.tar.gz -%if ! 0%{?bootstrap} -Source1: systemd-rpmlintrc -%else -Source1: systemd-mini-rpmlintrc -%endif -Source3: systemd-sysv-convert -Source6: baselibs.conf -Source7: libgcrypt.m4 -Source9: nss-myhostname-config -Source10: macros.systemd.upstream -Source11: after-local.service -Source12: systemd-sysv-install - -Source1065: systemd-remount-tmpfs - -# handle SUSE specific kbd settings -Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch -Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch -Patch6: insserv-generator.patch -Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch -Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch - -# PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done -Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch -# PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype -Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch -# PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin -Patch21: allow-multiple-sulogin-to-be-started.patch -# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices -Patch27: apply-ACL-for-nvidia-device-nodes.patch -# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device -Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -Patch37: suse-sysv-bootd-support.diff -# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. -Patch39: systemd-tmp-safe-defaults.patch -# PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname -Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch -Patch42: systemd-pam_config.patch - -# Upstream First - Policy: -# Never add any patches to this package without the upstream commit id -# in the patch. Any patches added here without a very good reason to make -# an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) -Patch84: make-emergency.service-conflict-with-syslog.socket.patch -# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch -Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch -# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty -Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com -Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) -Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch -# PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch -Patch180: 0014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch -Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch -# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch183: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE systemctl-set-default-target.patch -Patch186: systemctl-set-default-target.patch -# PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) -Patch188: boot-local-start.patch -# PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager -Patch189: avoid-random-hangs-on-timeouts-due-lost-cwd.patch -# PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch -Patch190: systemd-install-compat_pkgconfig-always.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch191: systemd-dbus-system-bus-address.patch -# PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper -Patch192: let-linker-find-libudev-for-libdevmapper.patch -# PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target -Patch193: portmap-wants-rpcbind-socket.patch -# PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console -Patch197: rescue-emergency-target-conflicts.patch -# PATCH-FIX-SUSE Avoid a divide by zero sigtrap -Patch198: avoid-divide-by-zero-sigtrap.patch -# PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) -Patch203: respect-nfs-bg-option.patch -# PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) -Patch208: parse-crypttab-for-noauto-option.patch -# PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) -Patch338: vhangup-on-all-consoles.patch -# PATCH-FIX-SUSE Shut up rpmlint warning -Patch345: shut-up-rpmlint-on-var-log-journal.patch -# PATCH-FIX-SUSE -Patch352: set-and-use-default-logconsole.patch -Patch362: tty-ask-password-agent-on-console.patch -# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) -Patch366: tomcat6-var-lock-subsys-legacy.patch -# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) -Patch368: 0001-let-systemctl-completion-ignore-at-names.patch -# PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) -Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch -# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) -Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-SUSE added on 2014/10/24 -Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-SUSE added on 2014/11/05 -Patch490: watch_resolv.conf_for_become_changed.patch -# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) -Patch520: systemd-add-user-keep.patch -# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) -Patch521: kbd-model-map.patch -# PATCH-WORKAROUND-SUSE (boo#939571) -Patch522: Correct_assert_on_unexpected_error_code.patch -# PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) -Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch -# PATCH-FIX-UPSTREAM (bsc#956712) -Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch - -# UDEV PATCHES -# ============ -# NOTE: all udev patches start with 1XXX-*.patch, do not use anything else. -# Udev patches mean: patches that affect udev code, src/{udev,libudev} -# nothing else, even if the patch might affect indirectly udev, as long -# as it's not changing the code of udev and libudev, then is not a udev -# patch. Further patches which add and/or changes udev rules. - -# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch -Patch1003: 1003-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch -Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch -Patch1006: 1006-udev-always-rename-network.patch -# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch -Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) -Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch -# PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) -Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch -# PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE See bnc#882714 comment #51 -Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) -Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.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-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) -Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch -# PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch -Patch1096: 1096-new-udev-root-symlink-generator.patch -# PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch -Patch1097: 1097-udevd-increase-maximum-number-of-children.patch -# PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch -Patch1098: 1098-systemd-networkd-alias-network-service.patch -# PATCH-FIX-OPENSUSE hostname-NULL.patch - fix crash on xen build hosts in OBS Marcus Meissner -Patch1099: hostname-NULL.patch - -%description -Systemd is a system and service manager, compatible with SysV and LSB -init scripts for Linux. systemd provides aggressive parallelization -capabilities, uses socket and D-Bus activation for starting services, -offers on-demand starting of daemons, keeps track of processes using -Linux cgroups, supports snapshotting and restoring of the system state, -maintains mount and automount points and implements an elaborate -transactional dependency-based service control logic. It can work as a -drop-in replacement for sysvinit. - - -%package bash-completion -Summary: Bash completion support for systemd -License: LGPL-2.1+ -Group: System/Base -Requires: bash -%if %{with bash_completion} -Requires: bash-completion -%endif -BuildArch: noarch - -%description bash-completion -Some systemd commands offer bash completion, but it's an optional dependency. - -%package devel -Summary: Development headers for systemd -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: libsystemd0%{?mini} = %version -Requires: systemd-rpm-macros -%if 0%{?bootstrap} -Provides: systemd-devel = %version-%release -%endif -Conflicts: otherproviders(systemd-devel) - -%description devel -Development headers and auxiliary files for developing applications for systemd. - -%package sysvinit -Summary: System V init tools -License: LGPL-2.1+ -Group: System/Base -Requires: %{name} = %{version} -Provides: sbin_init -Conflicts: otherproviders(sbin_init) -Provides: sysvinit:/sbin/init - -%description sysvinit -Drop-in replacement of System V init tools. - -%package -n libsystemd0%{?mini} -Summary: Component library for systemd -License: LGPL-2.1+ -Group: System/Libraries -%if 0%{?bootstrap} -Conflicts: libsystemd0 -Requires: this-is-only-for-build-envs -%endif - -%description -n libsystemd0%{?mini} -This library provides several of the systemd C APIs: - -* sd-bus implements an alternative D-Bus client library that is - relatively easy to use, very efficient and supports both classic - D-Bus as well as kdbus as transport backend. - -* sd-daemon(3): for system services (daemons) to report their status - to systemd and to make easy use of socket-based activation logic - -* sd-event is a generic event loop abstraction that is built around - Linux epoll, but adds features such as event prioritization or - efficient timer handling. - -* sd-id128(3): generation and processing of 128-bit IDs - -* sd-journal(3): API to submit and query journal log entries - -* sd-login(3): APIs to introspect and monitor seat, login session and - user status information on the local system. - -%package -n udev%{?mini} -Summary: A rule-based device node and kernel event manager -License: GPL-2.0 -Group: System/Kernel -Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/rm -PreReq: %insserv_prereq -PreReq: %fillup_prereq -PreReq: /usr/bin/sg_inq -Requires(pre): /usr/bin/stat -Requires(pre): /usr/sbin/groupadd -Requires(pre): /usr/bin/getent -Requires(post): libudev%{?mini}1 -Requires(post): sed -Requires(post): /usr/bin/systemctl -%if %{defined regenerate_initrd_post} -Requires(post): coreutils -Requires(post): /usr/bin/stat -Requires(postun): coreutils -Requires(posttrans): suse-module-tools -Requires(posttrans): /sbin/mkinitrd -%else -Requires(post): /sbin/mkinitrd -Requires(postun): /sbin/mkinitrd -%endif -Conflicts: systemd < 39 -Conflicts: aaa_base < 11.5 -Conflicts: filesystem < 11.5 -Conflicts: mkinitrd < 2.7.0 -Conflicts: util-linux < 2.16 -Conflicts: ConsoleKit < 0.4.1 -Requires: filesystem -%if 0%{?bootstrap} -Provides: udev = %version-%release -Conflicts: kiwi -%endif -Conflicts: otherproviders(udev) - -%description -n udev%{?mini} -Udev creates and removes device nodes in /dev for devices discovered or -removed from the system. It receives events via kernel netlink messages -and dispatches them according to rules in /lib/udev/rules.d/. Matching -rules may name a device node, create additional symlinks to the node, -call tools to initialize a device, or load needed kernel modules. - - - -%package -n libudev%{?mini}1 -# This really should have been libudev1%{?mini}, but requires changes to prjconf :-/ -Summary: Dynamic library to access udev device information -License: LGPL-2.1+ -Group: System/Libraries -%if 0%{?bootstrap} -Conflicts: libudev1 -%endif - -%description -n libudev%{?mini}1 -This package contains the dynamic library libudev, which provides -access to udev device information - -%package -n libudev%{?mini}-devel -Summary: Development files for libudev -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: libudev%{?mini}1 = %version-%release -%if 0%{?bootstrap} -Provides: libudev-devel = %version-%release -%endif -Conflicts: otherproviders(libudev-devel) - -%description -n libudev%{?mini}-devel -This package contains the development files for the library libudev, a -dynamic library, which provides access to udev device information. - -%if ! 0%{?bootstrap} -%package logger -Summary: Journal only logging -License: LGPL-2.1+ -Group: System/Base -Provides: syslog -Provides: sysvinit(syslog) -Requires(pre): /usr/bin/getent -Requires(pre): /usr/sbin/groupadd -Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl -Requires(post): /usr/bin/systemctl -Requires(post): permissions -Conflicts: otherproviders(syslog) - -%description logger -This package marks the installation to not use syslog but only the journal. - -%package -n nss-myhostname -Summary: Plugin for local system host name resolution -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-myhostname -nss-myhostname is a plugin for the GNU Name Service Switch (NSS) -functionality of the GNU C Library (glibc) providing host name -resolution for the locally configured system hostname as returned by -gethostname(2). Various software relies on an always resolvable local -host name. When using dynamic hostnames this is usually achieved by -patching /etc/hosts at the same time as changing the host name. This -however is not ideal since it requires a writable /etc file system and -is fragile because the file might be edited by the administrator at -the same time. nss-myhostname simply returns all locally -configured public IP addresses, or -- if none are configured -- -the IPv4 address 127.0.0.2 (wich is on the local loopback) and the -IPv6 address ::1 (which is the local host) for whatever system -hostname is configured locally. Patching /etc/hosts is thus no -longer necessary. - -Note that nss-myhostname only provides a workaround for broken -software. If nss-myhostname is trigged by an application a message -is logged to /var/log/messages. Please check whether that's worth -a bug report then. -This package marks the installation to not use syslog but only the journal. - -%package -n nss-mymachines -Summary: Plugin for local virtual host name resolution -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-mymachines -nss-myhostname is a plugin for the GNU Name Service Switch (NSS) -functionality of the GNU C Library (glibc) providing host name -resolution for the locally configured containers and virtual machines -systemd-machined knows about. - -%package -n nss-resolve -Summary: Plugin for local hostname resolution via systemd-resolved -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-resolve - -%package journal-gateway -Summary: Gateway for serving journal events over the network using HTTP -License: LGPL-2.1+ -Group: System/Base -Requires: %{name} = %{version}-%{release} -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd - -%description journal-gateway -systemd-journal-gatewayd serves journal events over the network using HTTP. -%endif - -%prep -%setup -q -n systemd-%version -echo "Checking whether upstream rpm macros changed..." -diff -au "%{S:10}" src/core/macros.systemd.in - -# only needed for bootstrap -%if 0%{?bootstrap} -cp %{SOURCE7} m4/ -%endif - -# systemd patches -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch12 -p1 -%patch16 -p1 -%patch17 -p1 -%patch20 -p1 -%patch21 -p1 -# check if this is still needed, or can be derived from fbdev uaccess rule -# http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html -%patch27 -p1 -%patch28 -p1 -%patch37 -p1 -%patch39 -p1 -%patch41 -p1 -%patch42 -p1 -%patch84 -p1 -%patch86 -p1 -%patch90 -p1 -%patch91 -p1 -%patch120 -p1 -%patch178 -p1 -%patch179 -p1 -%patch180 -p1 -%patch182 -p1 -%patch183 -p1 -%patch186 -p1 -%patch188 -p1 -%patch189 -p1 -%patch190 -p1 -%patch191 -p1 -%patch192 -p1 -%patch193 -p1 -%patch197 -p1 -%patch198 -p1 -%patch203 -p1 -%patch208 -p1 -%patch338 -p1 -%patch345 -p1 -%patch352 -p1 -%patch362 -p1 -%patch366 -p1 -%patch368 -p1 -%patch386 -p1 -%patch430 -p1 -%patch475 -p1 -%patch490 -p1 -%patch520 -p1 -%patch521 -p1 -%patch522 -p1 -%patch523 -p0 -%patch524 -p1 - -# udev patches -%patch1002 -p1 -%patch1003 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1035 -p1 -%if %{with blkrrpart} -%patch1037 -p1 -%endif -%patch1060 -p1 -%patch1062 -p1 -%patch1066 -p1 -%patch1095 -p1 -%patch1096 -p1 -%patch1097 -p1 -%patch1098 -p1 -%patch1099 -p1 - -# -# In combination with Patch352 set-and-use-default-logconsole.patch -# Ensure that journald log on tty10 -# -%ifarch %ix86 x86_64 x32 -sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf -%endif - -%build -cflags () -{ - local flag=$1; shift - local var=$1; shift - local gold - test -n "${flag}" -a -n "${var}" || return - case "${!var}" in - *${flag}*) return - esac - if type ld.gold > /dev/null 2>&1 ; then - gold=-Wl,-fuse-ld=gold - fi - set -o noclobber - case "$flag" in - -Wl,*) - if echo 'int main () { return 0; }' | \ - ${CC:-gcc} -Werror $gold $flag -o /dev/null -xc - > /dev/null 2>&1 ; then - eval $var=\${$var:+\$$var\ }$flag - fi - rm -f ldtest.c - ;; - *) - if ${CC:-gcc} -Werror $gold $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then - eval $var=\${$var:+\$$var\ }$flag - fi - if ${CXX:-g++} -Werror $gold $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then - eval $var=\${$var:+\$$var\ }$flag - fi - esac - set +o noclobber -} - -# -# Be sure that fresh build libudev is linked as otherwise no errors are found -# -sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ -systemd_cryptsetup_LDFLAGS = \\\ - $(AM_LDFLAGS) \\\ - -Wl,-rpath-link=$(top_srcdir)/.libs\ - -}' Makefile.am -sh autogen.sh - -export V=e -export CFLAGS="%{optflags}" -export LDFLAGS -%if 0%{?suse_version} == 1315 - CFLAGS="$CFLAGS -DNET_IFNAMES=1" -%else - CFLAGS="$CFLAGS -DNET_IFNAMES=0" -%endif -cflags -pipe CFLAGS -cflags -Wl,-O2 LDFLAGS -cflags -Wl,--hash-size=8599 LDFLAGS -# keep split-usr until all packages have moved their systemd rules to /usr -%configure \ - --with-ntp-servers="0.opensuse.pool.ntp.org 1.opensuse.pool.ntp.org 2.opensuse.pool.ntp.org 3.opensuse.pool.ntp.org" \ - --docdir=%{_docdir}/systemd \ - --with-pamlibdir=/%{_lib}/security \ - --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ - --with-dbussessionservicedir=%{_datadir}/dbus-1/services \ - --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ - --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ -%if 0%{?bootstrap} - --disable-myhostname \ - --disable-manpages \ - --disable-machined \ -%else - --enable-manpages \ -%if %{with python} - --with-python \ -%endif - --with-nss-my-hostname-warning \ -%endif - --enable-selinux \ - --enable-split-usr \ - --disable-static \ - --with-rc-local-script-path-start=/etc/init.d/boot.local \ - --with-rc-local-script-path-stop=/etc/init.d/halt.local \ - --with-debug-shell=/bin/bash \ - --disable-smack \ - --disable-ima \ -%if %{without networkd} - --disable-networkd \ -%endif -%if %{without sysvcompat} - --with-sysvinit-path= \ - --with-sysvrcnd-path= \ -%endif -%if %{without resolved} - --disable-resolved \ -%endif - --disable-kdbus -make %{?_smp_mflags} -%if ! 0%{?bootstrap} -make %{?_smp_mflags} update-man-list man -%endif - -%install -%make_install -install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" - -# move to %{_lib} -%if ! 0%{?bootstrap} -mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} -%endif - -mkdir -p %{buildroot}/{sbin,lib,bin} -ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm -ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password -ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl -ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd - -%if ! 0%{?bootstrap} -ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 -%endif - -%if ! 0%{?bootstrap} -install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config -%endif - -ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service -install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs -mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants -rm -rf %{buildroot}%{_sysconfdir}/rpm -find %{buildroot} -type f -name '*.la' -delete -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} - -install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert -ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd -ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init -ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot -ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt -ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown -ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff -ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit -ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel -rm -rf %{buildroot}/etc/systemd/system/*.target.wants -rm -f %{buildroot}/etc/systemd/system/default.target - -# We keep a copy of tmp.mount because it may be removed if not used -# (see %post): we want to be sure tmpfs won't be used for /tmp by -# default on Suse distros. -rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount -cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ - -# don't enable wall ask password service, it spams every console (bnc#747783) -rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path - -# create %{_libexecdir}/modules-load.d -mkdir -p %{buildroot}%{_libexecdir}/modules-load.d -cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf -# load sg module at boot time -sg -EOF - -# do not ship sysctl defaults in systemd package, will be part of -# aaa_base (in procps for now) -rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf - -# remove README file for now -rm -f %{buildroot}/etc/init.d/README -%if 0%{?bootstrap} -rm -f %{buildroot}%{_localstatedir}/log/README -rm -rf %{buildroot}%{_datadir}/bash-completion -%endif - -# legacy links -for f in loginctl journalctl ; do - ln -s $f %{buildroot}%{_bindir}/systemd-$f -%if ! 0%{?bootstrap} - ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 -%endif -done -ln -s /usr/lib/udev %{buildroot}/lib/udev - -# Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}%{_localstatedir}/log/journal/ - -# Make sure directories in /var exist -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog -#create ghost databases -touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database -touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin - -# Make sure the NTP units dir exists -mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ - -# Make sure the shutdown/sleep drop-in dirs exist -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/ -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ - -# Make sure these directories are properly owned -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants - -# create drop-in to prevent tty1 to be cleared (bnc#804158) -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ -cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf -[Service] -# ensure tty1 isn't cleared (bnc#804158) -TTYVTDisallocate=no -EOF - -#ensure we get the running kernel sysctl settings. - -cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/current-kernel-sysctl.conf -d! /run/sysctl.d -L! /run/sysctl.d/00-kernel-%v.conf - - - - /boot/sysctl.conf-%v -EOF - -mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d - -cat << EOF > %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf -[Unit] -After=local-fs.target -EOF - -# ensure after.local wrapper is called -install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ -ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ - -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed - -%fdupes -s %{buildroot}%{_mandir} - -%if ! 0%{?bootstrap} -for f in %{buildroot}%{_datadir}/bash-completion/completions/* -do - test -e "$f" || break - grep -q _init_completion "$f" || continue - echo "%exclude %{_datadir}/bash-completion/completions/${f##*/}" -done > files.completion -%else -> files.completion -%endif - -# packaged in systemd-rpm-macros -rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd - -%if %{without compat_libs} -lib=%{_libdir}/libsystemd.so -for lnk in daemon login id128 journal -do - lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so - echo '/* GNU ld script */' > ${lnk} - echo 'INPUT('${lib}')' >> ${lnk} -done -%endif - -# Some files which may created by us or by the admin later on -mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d -for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ - machine-id machine-info \ - systemd/system/runlevel2.target \ - systemd/system/runlevel3.target \ - systemd/system/runlevel4.target \ - systemd/system/runlevel4.target \ - systemd/system/runlevel5.target -do - > %{buildroot}%{_sysconfdir}/$ghost -done - -# Workaround for bug #882393 -for runlevel in poweroff rescue multi-user graphical reboot -do - mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants - ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ -done - -# add entries for xkeyboard-config converted keymaps; mappings, -# which already exist in original systemd mapping table are being -# ignored though, i.e. not overwritten -if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then - cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >>"%buildroot/usr/share/systemd/kbd-model-map" -fi - -%find_lang systemd - -%pre -for name in journal timesync network resolve bus-proxy -do - getent group systemd-$name >/dev/null && continue - groupadd -r systemd-$name || : -done -for name in timesync network resolve bus-proxy -do - getent passwd systemd-$name >/dev/null && continue - case "$name" in - timesync) descr="Systemd Time Synchronization" ;; - network) descr="Systemd Network Management" ;; - resolve) descr="Systemd Resolver" ;; - bus-proxy) descr="Systemd Bus Proxy" ;; - esac - useradd -r -l -g systemd-$name systemd-$name -s /usr/sbin/nologin -d / -c "$descr" || : -done -exit 0 - -%post -%if ! 0%{?bootstrap} -/usr/sbin/pam-config -a --systemd || : -%endif -/sbin/ldconfig -[ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : -/usr/bin/systemd-machine-id-setup || : -/usr/lib/systemd/systemd-random-seed save || : -/usr/bin/systemctl daemon-reexec || : -/usr/bin/journalctl --update-catalog || : -# Make sure new journal files -chgrp systemd-journal %{_localstatedir}/log/journal/ || : -chmod g+s %{_localstatedir}/log/journal/ || : -if read ID < /etc/machine-id > /dev/null 2>&1 ; then - chgrp systemd-journal "%{_localstatedir}/log/journal/$ID" || : - chmod g+s "%{_localstatedir}/log/journal/$ID" || : -fi -%if %{with systemgrps} -getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -%endif -systemd-sysusers || : - -# Try to read default runlevel from the old inittab if it exists -if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then - runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) - if [ -n "$runlevel" ] ; then - /bin/ln -sf /usr/lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : - fi -fi -# Create default config in /etc at first install. -# Later package updates should not overwrite these settings. -if [ "$1" -eq 1 ]; then - # Enable these services by default. - # Specifying multiple units can cause the entire operation to not - # execute if one of them is missing, so run systemctl with one unit - # at a time only. - for i in getty@tty1.service remote-fs.target; do - /usr/bin/systemctl enable "$i" || : - done -fi - -# since v207 /etc/sysctl.conf is no longer parsed, however -# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf -if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then - /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : -fi - -# migrate any symlink which may refer to the old path -for f in $(find /etc/systemd/system -type l -xtype l); do - new_target="/usr$(readlink $f)" - [ -f "$new_target" ] && ln -s -f $new_target $f || : -done - -# Keep tmp.mount if it's been enabled explicitly by the user otherwise -# make sure it wont be activated since it's the default for Suse -# distros. This unit can be pulled (implicitely) in various ways -# (private /tmp, etc..) and it's required by the basic.target -# explicitly since v220. -case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in -enabled) ;; -*) rm -f %{_prefix}/lib/systemd/system/tmp.mount -esac - -%postun -/sbin/ldconfig -if [ $1 -ge 1 ]; then - /usr/bin/systemctl daemon-reload || : - #Avoid restarting logind [bnc#934901] until fixed upstream - #/usr/bin/systemctl try-restart systemd-logind.service || : -fi -%if ! 0%{?bootstrap} -if [ $1 -eq 0 ]; then - /usr/sbin/pam-config -d --systemd || : -fi -%endif - -%preun -if [ $1 -eq 0 ]; then - /usr/bin/systemctl disable \ - getty@.service \ - remote-fs.target || : - rm -f /etc/systemd/system/default.target 2>&1 || : -fi - -# pretrans section must always use lua -%pretrans -n udev%{?mini} -p -if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then - posix.symlink("/lib/udev", "/usr/lib/udev") -end - -%pre -n udev%{?mini} -if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then - rm /usr/lib/udev - mv /lib/udev /usr/lib - ln -s /usr/lib/udev /lib/udev -elif [ ! -e /lib/udev ]; then - ln -s /usr/lib/udev /lib/udev -fi -# Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules -getent group tape >/dev/null || groupadd -r tape || : -# kill daemon if we are not in a chroot -if test -f /proc/1/exe -a -d /proc/1/root ; then - if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket || : - udevadm control --exit || : - fi -fi - -%post -n udev%{?mini} -/usr/bin/udevadm hwdb --update || : -if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then - # add KERNEL name match to existing persistent net rules - sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ - /etc/udev/rules.d/70-persistent-net.rules || : -fi -# cleanup old stuff -rm -f /etc/sysconfig/udev -rm -f /etc/udev/rules.d/20-cdrom.rules -rm -f /etc/udev/rules.d/55-cdrom.rules -rm -f /etc/udev/rules.d/65-cdrom.rules -systemctl daemon-reload || : -# start daemon if we are not in a chroot -if test -f /proc/1/exe -a -d /proc/1/root; then - if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - if ! systemctl start systemd-udevd.service; then - /usr/lib/systemd/systemd-udevd --daemon || : - fi - fi -fi - -if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" -%if %{defined regenerate_initrd_post} - else - %regenerate_initrd_post -%else - elif [ -x /sbin/mkinitrd ]; then - [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup - /sbin/mkinitrd || : -%endif - fi -fi - -%postun -n udev%{?mini} -%insserv_cleanup -systemctl daemon-reload || : - -if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" -%if %{defined regenerate_initrd_post} - else - %regenerate_initrd_post -%else - elif [ -x /sbin/mkinitrd ]; then - [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup - /sbin/mkinitrd || : -%endif - fi -fi - -%if %{defined regenerate_initrd_post} -%posttrans -n udev%{?mini} -%regenerate_initrd_posttrans -%endif - -%post -n libsystemd0%{?mini} -p /sbin/ldconfig -%postun -n libsystemd0%{?mini} -p /sbin/ldconfig -%post -n libudev%{?mini}1 -p /sbin/ldconfig -%postun -n libudev%{?mini}1 -p /sbin/ldconfig - -%if ! 0%{?bootstrap} - -%if %{with permission} -%verifyscript logger -%verify_permissions -e %{_localstatedir}/log/journal/ -%endif - -%pre logger -getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : -exit 0 - -%post logger -%if %{with permission} -%set_permissions %{_localstatedir}/log/journal/ -%endif -%if %{with systemgrps} -getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -%endif -if [ "$1" -eq 1 ]; then -# tell journal to start logging on disk if directory didn't exist before - systemctl --no-block restart systemd-journal-flush.service || : -fi - -%preun -n nss-myhostname -if [ "$1" -eq 0 -a -f /etc/nsswitch.conf ] ; then - %{_sbindir}/nss-myhostname-config --disable -fi - -%post -n nss-myhostname -p /sbin/ldconfig - -%postun -n nss-myhostname -p /sbin/ldconfig - -%post -n nss-mymachines -p /sbin/ldconfig -%postun -n nss-mymachines -p /sbin/ldconfig - -%pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Systemd Journal Gateway" systemd-journal-gateway || : -getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : -%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service -exit 0 - -%post journal-gateway -%service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service - -%preun journal-gateway -%service_del_preun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service - -%postun journal-gateway -%service_del_postun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service - -%endif - -%files -f systemd.lang -%defattr(-,root,root) -/bin/systemd -/bin/systemd-ask-password -/bin/systemctl -%if %{with networkd} -%{_bindir}/networkctl -%endif -%{_bindir}/busctl -%{_bindir}/bootctl -%{_bindir}/kernel-install -%{_bindir}/hostnamectl -%{_bindir}/localectl -%if ! 0%{?bootstrap} -%{_bindir}/machinectl -%endif -%{_bindir}/systemctl -%{_bindir}/systemd-analyze -%{_bindir}/coredumpctl -%{_bindir}/systemd-delta -%{_bindir}/systemd-escape -%{_bindir}/systemd-firstboot -%{_bindir}/systemd-path -%{_bindir}/systemd-sysusers -%{_bindir}/systemd-notify -%{_bindir}/systemd-run -%{_bindir}/systemd-journalctl -%{_bindir}/journalctl -%{_bindir}/systemd-ask-password -%{_bindir}/loginctl -%{_bindir}/systemd-loginctl -%{_bindir}/systemd-inhibit -%{_bindir}/systemd-tty-ask-password-agent -%{_bindir}/systemd-tmpfiles -%{_bindir}/systemd-machine-id-setup -%{_bindir}/systemd-nspawn -%{_bindir}/systemd-stdio-bridge -%{_bindir}/systemd-detect-virt -%{_bindir}/timedatectl -%{_sbindir}/systemd-sysv-convert -%{_bindir}/systemd-cgls -%{_bindir}/systemd-cgtop -%{_bindir}/systemd-cat -%dir %{_prefix}/lib/kernel -%dir %{_prefix}/lib/kernel/install.d -%{_prefix}/lib/kernel/install.d/50-depmod.install -%{_prefix}/lib/kernel/install.d/90-loaderentry.install -%dir %{_prefix}/lib/systemd -%dir %{_prefix}/lib/systemd/user -%dir %{_prefix}/lib/systemd/system -%exclude %{_prefix}/lib/systemd/systemd-sysv* -%exclude %{_prefix}/lib/systemd/system/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/udev.service -%exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service -%exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -%exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev-root-symlink.service -%if ! 0%{?bootstrap} -%exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* -%endif -%{_prefix}/lib/systemd/system/*.automount -%{_prefix}/lib/systemd/system/*.service -%{_prefix}/lib/systemd/system/*.slice -%{_prefix}/lib/systemd/system/*.target -%{_prefix}/lib/systemd/system/*.mount -%{_prefix}/lib/systemd/system/*.timer -%{_prefix}/lib/systemd/system/*.socket -%{_prefix}/lib/systemd/system/*.wants -%{_prefix}/lib/systemd/system/*.path -%{_prefix}/lib/systemd/user/*.target -%{_prefix}/lib/systemd/user/*.service -%{_prefix}/lib/systemd/user/*.socket -%exclude %{_prefix}/lib/systemd/systemd-udevd -%if ! 0%{?bootstrap} -%exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd -%endif -%{_prefix}/lib/systemd/systemd-* -%{_prefix}/lib/systemd/systemd -%dir %{_prefix}/lib/systemd/catalog -%{_prefix}/lib/systemd/catalog/systemd.catalog -%{_prefix}/lib/systemd/catalog/systemd.*.catalog -%dir %{_prefix}/lib/systemd/system-shutdown -%dir %{_prefix}/lib/systemd/system-preset -%dir %{_prefix}/lib/systemd/user-preset -%dir %{_prefix}/lib/systemd/system-generators -%dir %{_prefix}/lib/systemd/user-generators -%{_prefix}/lib/systemd/user-generators/systemd-dbus1-generator -%dir %{_prefix}/lib/systemd/ntp-units.d/ -%dir %{_prefix}/lib/systemd/system-shutdown/ -%dir %{_prefix}/lib/systemd/system-sleep/ -%dir %{_prefix}/lib/systemd/system/default.target.wants -%dir %{_prefix}/lib/systemd/system/dbus.target.wants -%dir %{_prefix}/lib/systemd/system/getty@tty1.service.d -%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf -%dir %{_prefix}/lib/systemd/system/systemd-sysctl.service.d -%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf -%if ! 0%{?bootstrap} -%{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator -%endif -%{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator -%{_prefix}/lib/systemd/system-generators/systemd-debug-generator -%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator -%if %{with sysvcompat} -%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator -%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator -%endif -%{_prefix}/lib/systemd/system-generators/systemd-getty-generator -%{_prefix}/lib/systemd/system-generators/systemd-fstab-generator -%{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator -%{_prefix}/lib/systemd/system-preset/ -%{_prefix}/lib/sysusers.d/ -/%{_lib}/security/pam_systemd.so -%config /etc/pam.d/systemd-user - -%ifarch %{ix86} x86_64 -%dir %{_prefix}/lib/systemd/boot -%dir %{_prefix}/lib/systemd/boot/efi -%{_prefix}/lib/systemd/boot/efi/*.efi -%{_prefix}/lib/systemd/boot/efi/*.stub -%endif - -%dir %{_libexecdir}/modules-load.d -%dir %{_sysconfdir}/modules-load.d -%{_libexecdir}/modules-load.d/sg.conf - -%dir %{_libexecdir}/tmpfiles.d -%dir %{_sysconfdir}/tmpfiles.d -%{_libexecdir}/tmpfiles.d/*.conf - -%dir %{_libexecdir}/binfmt.d -%dir %{_sysconfdir}/binfmt.d - -%dir %{_libexecdir}/sysctl.d -%dir %{_sysconfdir}/sysctl.d -%{_prefix}/lib/sysctl.d/50-coredump.conf - -%dir %{_sysconfdir}/systemd -%dir %{_sysconfdir}/systemd/system -%dir %{_sysconfdir}/systemd/user -%dir %{_sysconfdir}/xdg/systemd -%dir %{_sysconfdir}/dbus-1 -%dir %{_sysconfdir}/dbus-1/system.d -%{_sysconfdir}/xdg/systemd/user -%dir %{_datadir}/dbus-1 -%dir %{_datadir}/dbus-1/services -%dir %{_datadir}/dbus-1/system-services -%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf -%config(noreplace) %{_sysconfdir}/systemd/coredump.conf -%if !0%{?bootstrap} -%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf -%endif -%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf -%config(noreplace) %{_sysconfdir}/systemd/system.conf -%config(noreplace) %{_sysconfdir}/systemd/logind.conf -%config(noreplace) %{_sysconfdir}/systemd/journald.conf -%config(noreplace) %{_sysconfdir}/systemd/user.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf -%if !0%{?bootstrap} -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf -%endif -%if %{with networkd} -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf -%endif -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf - -%{_sysconfdir}/X11/xinit/ -# Some files which may created by us -%dir %{_sysconfdir}/X11/xorg.conf.d -%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf -%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf -%ghost %config(noreplace) %{_sysconfdir}/locale.conf -%ghost %config(noreplace) %{_sysconfdir}/machine-id -%ghost %config(noreplace) %{_sysconfdir}/machine-info -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target - -%{_datadir}/factory/ -%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service -%if %{with networkd} -%{_prefix}/lib/systemd/system/org.freedesktop.network1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service -%endif -%{_prefix}/lib/systemd/system/org.freedesktop.systemd1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service -%{_prefix}/lib/systemd/system/org.freedesktop.locale1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service -%{_prefix}/lib/systemd/system/org.freedesktop.login1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service -%{_prefix}/lib/systemd/system/org.freedesktop.hostname1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service -%if !0%{?bootstrap} -%{_prefix}/lib/systemd/system/org.freedesktop.machine1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service -%endif -%{_prefix}/lib/systemd/system/org.freedesktop.timedate1.busname - -%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service -%dir %{_datadir}/polkit-1 -%dir %{_datadir}/polkit-1/actions -%if !0%{?bootstrap} -%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy -%endif -%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy -%if ! 0%{?bootstrap} -%exclude %{_datadir}/systemd/gatewayd -%endif -%{_datadir}/systemd - -%if ! 0%{?bootstrap} -%_mandir/man1/[a-rt-z]*ctl.1* -%_mandir/man1/systemc*.1* -%_mandir/man1/systemd*.1* -%_mandir/man5/[a-tv-z]* -%_mandir/man5/user* -%_mandir/man7/[bdfks]* -%_mandir/man8/kern* -%_mandir/man8/pam_* -%_mandir/man8/systemd-[a-gik-tv]* -%_mandir/man8/systemd-h[aioy]* -%_mandir/man8/systemd-journal-remote.* -%_mandir/man8/systemd-journal-upload.* -%_mandir/man8/systemd-journald* -%_mandir/man8/systemd-u[ps]* -%endif -%{_docdir}/systemd -%{_prefix}/lib/udev/rules.d/70-uaccess.rules -%{_prefix}/lib/udev/rules.d/71-seat.rules -%{_prefix}/lib/udev/rules.d/73-seat-late.rules -%if ! 0%{?bootstrap} -%{_prefix}/lib/udev/rules.d/73-seat-numlock.rules -%endif -%{_prefix}/lib/udev/rules.d/99-systemd.rules -%{_prefix}/lib/udev/numlock-on -%if 0%{suse_version} < 1310 -%{_sysconfdir}/rpm/macros.systemd -%endif -%dir %{_localstatedir}/lib/systemd -%dir %{_localstatedir}/lib/systemd/sysv-convert -%dir %{_localstatedir}/lib/systemd/migrated -%dir %{_localstatedir}/lib/systemd/catalog -%ghost %{_localstatedir}/lib/systemd/catalog/database -%dir %{_localstatedir}/lib/systemd/coredump -%dir %{_datadir}/zsh -%dir %{_datadir}/zsh/site-functions -%{_datadir}/zsh/site-functions/* -%ghost %{_localstatedir}/lib/systemd/backlight -%ghost %{_localstatedir}/lib/systemd/random-seed -%if %{with resolved} -%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf -%{_sysconfdir}/systemd/resolved.conf -%{_libdir}/libnss_resolve.so.2 -%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service -%{_prefix}/lib/systemd/system/org.freedesktop.resolve1.busname -%endif - -%if ! 0%{?bootstrap} -%files bash-completion -f files.completion -%defattr(-,root,root,-) -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/* -%endif - -%files devel -%defattr(-,root,root,-) -%{_libdir}/libsystemd.so -%{_libdir}/libsystemd-daemon.so -%{_libdir}/libsystemd-login.so -%{_libdir}/libsystemd-id128.so -%{_libdir}/libsystemd-journal.so -%{_includedir}/systemd/ -%{_datadir}/pkgconfig/systemd.pc -%{_libdir}/pkgconfig/libsystemd.pc -%{_libdir}/pkgconfig/libsystemd-daemon.pc -%{_libdir}/pkgconfig/libsystemd-login.pc -%{_libdir}/pkgconfig/libsystemd-id128.pc -%{_libdir}/pkgconfig/libsystemd-journal.pc -%if ! 0%{?bootstrap} -%_mandir/man3/SD*.3* -%_mandir/man3/sd*.3* -%endif - -%files sysvinit -%defattr(-,root,root,-) -/sbin/init -/sbin/reboot -/sbin/halt -/sbin/shutdown -/sbin/poweroff -/sbin/telinit -/sbin/runlevel -%if ! 0%{?bootstrap} -%{_mandir}/man1/init.1* -%{_mandir}/man8/halt.8* -%{_mandir}/man8/reboot.8* -%{_mandir}/man8/shutdown.8* -%{_mandir}/man8/poweroff.8* -%{_mandir}/man8/telinit.8* -%{_mandir}/man8/runlevel.8* -%endif -%dir %_prefix/lib/systemd -%_prefix/lib/systemd/systemd-sysv-install - -%files -n udev%{?mini} -%defattr(-,root,root) -/sbin/udevd -/sbin/udevadm -# keep for compatibility -%ghost /lib/udev -%{_bindir}/udevadm -%if 0%{?suse_version} <= 1310 -%{_prefix}/lib/firmware -%endif -%{_bindir}/systemd-hwdb -%dir %{_prefix}/lib/udev/ -%{_prefix}/lib/udev/ata_id -%{_prefix}/lib/udev/cdrom_id -%{_prefix}/lib/udev/collect -%{_prefix}/lib/udev/mtd_probe -%{_prefix}/lib/udev/scsi_id -%{_prefix}/lib/udev/v4l_id -%{_prefix}/lib/udev/remount-tmpfs -%{_prefix}/lib/udev/rootsymlink-generator -%dir %{_prefix}/lib/udev/rules.d/ -%exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules -%exclude %{_prefix}/lib/udev/rules.d/71-seat.rules -%exclude %{_prefix}/lib/udev/rules.d/73-seat-late.rules -%exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules -%exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules -%{_prefix}/lib/udev/rules.d/*.rules -%{_prefix}/lib/udev/hwdb.d/ -%dir %{_sysconfdir}/udev/ -%dir %{_sysconfdir}/udev/rules.d/ -%ghost %{_sysconfdir}/udev/hwdb.bin -%config(noreplace) %{_sysconfdir}/udev/udev.conf -%if ! 0%{?bootstrap} -%_mandir/man5/udev* -%_mandir/man7/hwdb* -%_mandir/man7/udev* -%_mandir/man8/systemd-hwdb* -%_mandir/man8/systemd-udev* -%_mandir/man8/udev* -%endif -%dir %{_prefix}/lib/systemd/system -%{_prefix}/lib/systemd/systemd-udevd -%{_prefix}/lib/systemd/system/*udev*.service -%{_prefix}/lib/systemd/system/systemd-udevd*.socket -%dir %{_prefix}/lib/systemd/system/sysinit.target.wants -%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service -%dir %{_prefix}/lib/systemd/system/sockets.target.wants -%{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket -%dir %{_prefix}/lib/systemd/network -%{_prefix}/lib/systemd/network/*.link -%{_prefix}/lib/systemd/network/*.network -%if 0%{?suse_version} > 1310 -%{_datadir}/pkgconfig/udev.pc -%endif - -%files -n libsystemd0%{?mini} -%defattr(-,root,root) -%_libdir/libsystemd.so.* -%if %{with compat_libs} -%_libdir/libsystemd-daemon.so.* -%_libdir/libsystemd-login.so.* -%_libdir/libsystemd-id128.so.* -%_libdir/libsystemd-journal.so.* -%endif - -%files -n libudev%{?mini}1 -%defattr(-,root,root) -%{_libdir}/libudev.so.* - -%files -n libudev%{?mini}-devel -%defattr(-,root,root) -%{_includedir}/libudev.h -%{_libdir}/libudev.so -%{_libdir}/pkgconfig/libudev.pc -%if ! 0%{?bootstrap} -%{_mandir}/man3/*udev*.3* -%endif - -%if ! 0%{?bootstrap} -%files logger -%defattr(-,root,root) -%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ -%if %{with sysvcompat} -%{_localstatedir}/log/README -%endif - -%files -n nss-myhostname -%defattr(-, root, root) -%{_sbindir}/nss-myhostname-config -%if !0%{?bootstrap} -%{_mandir}/man8/libnss_myhostname.* -%{_mandir}/man8/nss-myhostname.* -%endif -/%{_lib}/*nss_myhostname* - -%files journal-gateway -%defattr(-, root, root) -%{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* -%{_prefix}/lib/systemd/systemd-journal-gatewayd -%{_mandir}/man8/systemd-journal-gatewayd.* -%{_datadir}/systemd/gatewayd - -%files -n nss-mymachines -%defattr(-,root,root) -%_libdir/libnss_mymachines.so* -%if !0%{?bootstrap} -%_mandir/man8/libnss_mymachines.* -%_mandir/man8/nss-mymachines.* -%endif -%endif - -%changelog diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch deleted file mode 100644 index 7850822e..00000000 --- a/systemd-pam_config.patch +++ /dev/null @@ -1,32 +0,0 @@ -Index: systemd-227/factory/etc/pam.d/other -=================================================================== ---- systemd-227.orig/factory/etc/pam.d/other -+++ systemd-227/factory/etc/pam.d/other -@@ -1,6 +1,6 @@ - # This file is part of systemd. - --auth include system-auth --account include system-auth --password include system-auth --session include system-auth -+auth include common-auth -+account include common-account -+password include common-password -+session include common-session -Index: systemd-227/src/login/systemd-user.m4 -=================================================================== ---- systemd-227.orig/src/login/systemd-user.m4 -+++ systemd-227/src/login/systemd-user.m4 -@@ -2,10 +2,10 @@ - # - # Used by systemd --user instances. - --account include system-auth -+account include common-account - - m4_ifdef(`HAVE_SELINUX', - session required pam_selinux.so close - session required pam_selinux.so nottys open - )m4_dnl --session include system-auth -+session include common-session diff --git a/systemd-remount-tmpfs b/systemd-remount-tmpfs deleted file mode 100644 index 2e326469..00000000 --- a/systemd-remount-tmpfs +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -PATH=/usr/bin:/bin:/usr/sbin:/sbin -DIR=$(sed -rn '/^#/d;\@^[[:graph:]]+[[:space:]]+/[[:graph:]]+[[:space:]]+tmpfs[[:space:]]+.*size=[0-9]+[kmg,[:space:]]@{ s@^[[:graph:]]+[[:space:]]+(/[[:graph:]]+).*@\1@p }' /etc/fstab) - -if [ -n "$DIR" ]; then - for i in $DIR; do - echo $i - mount -o remount "$i" >/dev/null 2>&1 - STATE=$? - if [ "$STATE" -gt 0 ]; then - logger "Remount of $i failed with state $STATE" - fi - done -fi diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index a9e12af8..32735bde 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,29 +1,4 @@ -addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") -addFilter(".*dangling-symlink .* /dev/null.*") -addFilter(".*files-duplicate .*/reboot\.8.*") -addFilter(".*files-duplicate .*/sd_is_socket\.3.*") -addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh") -addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd") -addFilter(".*dbus-policy-allow-receive") -addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*") -addFilter(".*dangling-symlink /lib/udev/devices/core.*") -addFilter(".*dangling-symlink /lib/udev/devices/fd.*") -addFilter(".*incoherent-init-script-name boot\.udev.*") -addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev") -addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev") -addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") -addFilter(".*libgudev-.*shlib-fixed-dependency.*") -addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") -addFilter("libudev-mini.*shlib-policy-name-error.*") -addFilter("nss-myhostname.*shlib-policy-name-error.*") -addFilter("nss-mymachines.*shlib-policy-name-error.*") -addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") -addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") -addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") -addFilter(".*files-duplicate.*/systemd-logger.*") -addFilter(".*missing-call-to-setgroups-before-setuid.*") -addFilter(".*missing-call-to-chdir-with-chroot.*") -addFilter(".*systemd-service-without-service.*") -addFilter(".*shlib-policy-missing-suffix.*") -addFilter(".*suse-missing-rclink.*") +addFilter(".*devel-file-in-non-devel-package.*systemd.pc.*") +addFilter(".*files-duplicate .*/reboot.8.*") +addFilter(".*files-duplicate .*/sd_is_socket.3.*") diff --git a/systemd-sysv-convert b/systemd-sysv-convert deleted file mode 100644 index 8ba3f211..00000000 --- a/systemd-sysv-convert +++ /dev/null @@ -1,179 +0,0 @@ -#!/bin/bash - -if [ "$UID" != "0" ]; then - echo Need to be root. - exit 1 -fi - -declare -A results_runlevel -declare -A results_priority - -usage() { -cat << EOF -usage: systemd-sysv-convert [-h] [--save] [--show] [--apply] - SERVICE [SERVICE ...] -EOF -} - -help() { -usage -cat << EOF -Save and Restore SysV Service Runlevel Information - -positional arguments: - SERVICE Service names - -optional arguments: - -h, --help show this help message and exit - --save Save SysV runlevel information for one or more services - --show Show saved SysV runlevel information for one or more services - --apply Apply saved SysV runlevel information for one or more services - to systemd counterparts -EOF -} - -find_service() { -local service -local runlevel -declare -i priority -service=$1 -runlevel=$2 -priority=-1 -for l in $(ls /etc/rc.d/rc$runlevel.d/) ; do - initscript=$(basename $l) - if [ ${initscript:0:1} != "S" -o ${initscript:3} != "$service" ]; then - continue - fi - if [ ${initscript:1:2} -ge 0 -a ${initscript:1:2} -le 99 -a ${initscript:1:2} -ge $priority ]; then - if [ ${initscript:1:1} == 0 ]; then - priority=${initscript:2:1} - else - priority=${initscript:1:2} - fi - fi -done -if [ $priority -ge 0 ]; then - return $priority -else - return 255 -fi -} - -lookup_database() { -local services -local service -local service_file -local runlevel -local priority -local -i k -declare -a parsed -services=$@ -k=0 -results_runlevel=() -results_priority=() -while read line ; do - k+=1 - parsed=($line) - service=${parsed[0]} - runlevel=${parsed[1]} - priority=${parsed[2]} - if [ $runlevel -lt 2 -o $runlevel -gt 5 ]; then - echo "Runlevel out of bounds in database line $k. Ignoring" >/dev/stderr - continue - fi - if [ $priority -lt 0 -o $priority -gt 99 ]; then - echo "Priority out of bounds in database line $k. Ignoring" >/dev/stderr - continue - fi - - declare -i found - found=0 - for s in $services ; do - if [ $s == $service ]; then - found=1 - continue - fi - done - if [ $found -eq 0 ]; then - continue - fi - results_runlevel[$service]+=" $runlevel" - results_priority[$service]+=" $priority" -done < /var/lib/systemd/sysv-convert/database -} - -case "$1" in - -h|--help) - help - exit 0 - ;; - --save) - shift - for service in $@ ; do - if [ ! -r "/etc/init.d/$service" ]; then - echo "SysV service $service does not exist" >/dev/stderr - exit 1 - fi - for runlevel in 2 3 4 5; do - find_service $service $runlevel - priority=$? - if [ $priority -lt 255 ]; then - echo "$service $runlevel $priority" >> /var/lib/systemd/sysv-convert/database - fi - done - done - ;; - --show) - shift - services=$@ - lookup_database $services - fail=0 - for service in $services; do - if [ -z "${results_runlevel[$service]}" ]; then - echo No information found about service $service found. >/dev/stderr - fail=1 - continue - fi - declare -i count - count=0 - priority=(${results_priority[$service]}) - for runlevel in ${results_runlevel[$service]}; do - echo SysV service $service enabled in runlevel $runlevel at priority ${priority[$count]} - count+=1 - done - done - exit $fail - ;; - --apply) - shift - services=$@ - for service in $services; do - if [ ! -f "/lib/systemd/system/$service.service" -a ! -f "/usr/lib/systemd/system/$service.service" ]; then - echo systemd service $service.service does not exist. >/dev/stderr - exit 1 - fi - done - lookup_database $services - for service in $services; do - [ -f "/lib/systemd/system/$service.service" ] && service_file="/lib/systemd/system/$service.service" - [ -f "/usr/lib/systemd/system/$service.service" ] && service_file="/usr/lib/systemd/system/$service.service" - - if [ -z "${results_runlevel[$service]}" ]; then - echo No information found about service $service found. >/dev/stderr - fail=1 - continue - fi - for runlevel in ${results_runlevel[$service]}; do - echo ln -sf $service_file /etc/systemd/system/runlevel$runlevel.target.wants/$service.service >/dev/stderr - mkdir -p "/etc/systemd/system/runlevel$runlevel.target.wants" - /bin/ln -sf $service_file /etc/systemd/system/runlevel$runlevel.target.wants/$service.service - done - - done - ;; - *) usage - exit 2;; -esac - - - diff --git a/systemd-sysv-install b/systemd-sysv-install deleted file mode 100644 index d116728e..00000000 --- a/systemd-sysv-install +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -set -e - -usage() { - echo "Usage: $0 [--root=path] enable|disable|is-enabled " >&2 - exit 1 -} -eval set -- "$(getopt -o r: --long root: -- "$@")" -while true; do - case "$1" in - -r|--root) - ROOT="$2" - shift 2 ;; - --) shift ; break ;; - *) usage ;; - esac -done -NAME="$2" -ROOT="${ROOT:+--root=$ROOT}" -[ -n "$NAME" ] || usage -case "$1" in - enable) chkconfig $ROOT -a "$NAME" ;; - disable) chkconfig $ROOT -r "$NAME" ;; - is-enabled) chkconfig $ROOT -t "$NAME" ;; - *) usage ;; -esac diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch deleted file mode 100644 index 1233b3b2..00000000 --- a/systemd-tmp-safe-defaults.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Reinhard Max -Date: Fri, 19 Apr 2013 16:12:28 +0200 -Subject: systemd tmp safe defaults - -Fix regression in the default for tmp auto-deletion (FATE#314974). -SUSE policy is to not clean /tmp by default. ---- - tmpfiles.d/tmp.conf | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -Index: systemd-228/tmpfiles.d/tmp.conf -=================================================================== ---- systemd-228.orig/tmpfiles.d/tmp.conf -+++ systemd-228/tmpfiles.d/tmp.conf -@@ -8,8 +8,9 @@ - # See tmpfiles.d(5) for details - - # Clear tmp directories separately, to make them easier to override --q /tmp 1777 root root 10d --q /var/tmp 1777 root root 30d -+# SUSE policy: we do not clean these directories -+q /tmp 1777 root root - -+q /var/tmp 1777 root root - - - # Exclude namespace mountpoints created with PrivateTmp=yes - x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index a7adef16..7b38d516 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,7056 +1,3 @@ -------------------------------------------------------------------- -Mon Dec 21 16:25:44 UTC 2015 - fbui@suse.com - -- Make sure we don't use tmpfs on /tmp by default (bsc#940522) - -------------------------------------------------------------------- -Mon Dec 21 10:07:38 UTC 2015 - jengelh@inai.de - -- Avoid enabling readahead services; they have been removed. -- In %install, only process kbd-model-map.xkb-generated if it - exists. Resolves a build failure in 13.2/42.1. - -------------------------------------------------------------------- -Mon Nov 30 13:59:52 UTC 2015 - thomas.blume@suse.com - -- fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) - Add 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch - -------------------------------------------------------------------- -Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 228 -* The various memory-related resource limit settings (such as - LimitAS=) now understand the usual K, M, G, ... suffixes to - the base of 1024 (IEC). Similar, the time-related settings - understand the usual min, h, day, ... suffixes now. -* CPUAffinity= now takes CPU index ranges in addition to just - individual indexes. -* A number of properties previously only settable in unit - files are now also available as properties to set when - creating transient units programmatically via the bus. -- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch - (merged upstream) - -------------------------------------------------------------------- -Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru - -- Update to 227. -- Rebase systemd-pam_config.patch, - handle-root_uses_lang-value-in-etc-sysconfig-language.patch, - 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch, - 0014-journald-with-journaling-FS.patch, - 0019-make-completion-smart-to-be-able-to-redirect.patch, - avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch, - set-and-use-default-logconsole.patch, - tty-ask-password-agent-on-console.patch, - 0001-bnc888612-logind-polkit-acpi.patch, - watch_resolv.conf_for_become_changed.patch, - 1097-udevd-increase-maximum-number-of-children.patch. -- Remove - 0002-units-enable-waiting-for-unit-termination-in-certain.patch, - 1001-re-enable-by_path-links-for-ata-devices.patch, - rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch: - fixed upstream. - -------------------------------------------------------------------- -Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de - -- Modify patch handle-root_uses_lang-value-in-etc-sysconfig-language.patch - to handle locale at boot time well (boo#927250) -- Be able to use build service environments several times - -------------------------------------------------------------------- -Tue Nov 10 18:06:43 UTC 2015 - schwab@suse.de - -- 1096-new-udev-root-symlink-generator.patch: fix substitution in - ExecStart value - -------------------------------------------------------------------- -Wed Oct 21 20:18:58 UTC 2015 - dmueller@suse.com - -- enable seccomp for aarch64 (fate#318444) - -------------------------------------------------------------------- -Thu Oct 15 14:12:44 UTC 2015 - fbui@suse.com - -- Fix again UEFI for mini package - -------------------------------------------------------------------- -Thu Oct 15 09:07:51 UTC 2015 - jengelh@inai.de - -- Drop one more undesirable Obsoletes/Provides. This should have - been a Conflicts. (There was already a Conflicts, and since - Conflicts go both ways, we won't need a second one.) - -------------------------------------------------------------------- -Thu Oct 15 08:19:00 UTC 2015 - werner@suse.de - -- No UEFI for systemd-mini - -------------------------------------------------------------------- -Mon Oct 12 11:34:13 UTC 2015 - fbui@suse.com - -- Add 2 upstream patches to fix boo#949574 and bsc#932284 - 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch - 0002-units-enable-waiting-for-unit-termination-in-certain.patch - -------------------------------------------------------------------- -Fri Oct 9 18:03:02 UTC 2015 - fbui@suse.com - -- Disable systemd-boot on aarch64 since it fails to build. - Error while compiling src/boot/efi/util.o is: - usr/include/efi/aarch64/efibind.h:2:20: fatal error: stdint.h: No such file or directory - -------------------------------------------------------------------- -Fri Oct 9 07:16:45 UTC 2015 - fbui@suse.com - -- Fix UEFI detection logic: basically we let configure.ac figure out - if UEFI is supported by the current build environment. No need to - clutter the spec file with a new conditionnal %has_efi. - -- Provide systemd-bootx64.efi (aka gummiboot) - -------------------------------------------------------------------- -Tue Oct 6 15:13:04 UTC 2015 - werner@suse.de - -- Modify patch tty-ask-password-agent-on-console.patch to reflect - the changes done for pull request 1432 - -------------------------------------------------------------------- -Thu Oct 1 15:58:32 UTC 2015 - jengelh@inai.de - -- Undo Obsoletes/Provides (from Aug 11), creates too big a cycle. -- Provide systemd-sysv-install program/link [bnc#948353] - -------------------------------------------------------------------- -Fri Sep 25 14:20:41 UTC 2015 - werner@suse.de - -- Fix patch tty-ask-password-agent-on-console.patch not to crash - away but enable it to ask on all devices of /dev/console - -------------------------------------------------------------------- -Wed Sep 23 14:19:32 UTC 2015 - jengelh@inai.de - -- Avoid "file not found /etc/udev/rules.d/70-persistent-net.rules" - waring occurring in %post - -------------------------------------------------------------------- -Wed Sep 23 12:41:19 UTC 2015 - werner@suse.de - -- Add patch let-vconsole-setup-get-properties-only-once-to-copy-them.patch - to avoid broken virtual console mapping due stressed ioctl API - for the virtual consoles (boo#904214) - -------------------------------------------------------------------- -Mon Sep 7 12:21:06 UTC 2015 - werner@suse.de - -- Fix last change that is use the new name for udev packages in %pretrans. - -------------------------------------------------------------------- -Mon Sep 7 11:50:21 UTC 2015 - fbui@suse.com - -- restore usage of LUA in %pretrans. - -------------------------------------------------------------------- -Mon Sep 7 08:09:05 UTC 2015 - werner@suse.de - -- Try to generate the systemd users and groups always in same order - to avoid republish other packages (boo#944660) - -------------------------------------------------------------------- -Fri Aug 21 07:49:33 UTC 2015 - fbui@suse.com - -- cleanup specfile by removing commands that were dealing with systemd - pre-generated files: we're now using systemd tarball generated directly - from the git repo which doesn't contain any of these files. -- there's no point in using LUA in %pretrans - -------------------------------------------------------------------- -Wed Aug 19 09:34:41 UTC 2015 - fbui@suse.com - -- Drop 0009-make-xsltproc-use-correct-ROFF-links.patch - -This patch was initialy added to workaround bsc#842844. But it -appears that man(1) was fixed (included since 13.2 at least) to -handle manual pages that consist only of a .so directive such as -'.so '. - -------------------------------------------------------------------- -Thu Aug 13 11:46:12 UTC 2015 - werner@suse.de - -- Change use-rndaddentropy-ioctl-to-load-random-seed.patch to - make it work on big endian - -------------------------------------------------------------------- -Tue Aug 11 09:48:26 UTC 2015 - jengelh@inai.de - -- Use Obsolete/Provides strategy from - windows:mingw:mingw64/mingw64-cross-gcc to do the bootstrap - cycle and kick out -mini afterwards. - -------------------------------------------------------------------- -Tue Aug 11 05:15:09 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 224 -* systemd-networkd gained a number of new configuration options - for DHCP, tunnels and bridges -* systemd-efi-boot-generator functionality was merged into - systemd-gpt-auto-generator. - -------------------------------------------------------------------- -Mon Aug 10 13:16:54 UTC 2015 - sndirsch@suse.com - -- /usr/share/systemd/kbd-model-map: added entries for - xkeyboard-config converted keymaps; mappings, which already - exist in original systemd mapping table are being ignored - though, i.e. not overwritten; needs kbd in buildrequires - (FATE#318426) - -------------------------------------------------------------------- -Wed Jul 29 18:10:53 UTC 2015 - meissner@suse.com - -- hostname-NULL.patch: Work around a crash on XEN hosts - in OBS. /etc/hostname is not present and systemd then does - strchr(hostname,soemthing) with hostname NULL. - -------------------------------------------------------------------- -Wed Jul 29 09:02:21 UTC 2015 - werner@suse.de - -- Add Correct_assert_on_unexpected_error_code.patch to work around - a problem of an assert on ENODEV for closing fd on an input - event device (boo#939571) - -------------------------------------------------------------------- -Mon Jul 13 15:31:46 UTC 2015 - jengelh@inai.de - -- Remove udev-generate-rules.sh, apparently not used by anything in - the systemd nor udev-persistent-ifnames package. - -------------------------------------------------------------------- -Wed Jul 8 20:44:57 UTC 2015 - crrodriguez@opensuse.org - -- Systemd v222, bugfix release. -- Drop upstream patches -0006-pam_systemd-Properly-check-kdbus-availability.patch -0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch -0031-install-fix-bad-memory-access.patch -1032-ata_id-unbotch-format-specifier.patch -- Drop SUSE patch 1013-no-runtime-PM-for-IBM-consoles.patch - udev does no longer enable USB HID power management at all. -- The udev accelerometer helper was removed, obsoleted by - iio-sensor-proxy package. -- networkd gained a new configuration option IPv6PrivacyExtensions. -- udev does not longer support the WAIT_FOR_SYSFS= key in udev - rules. There are no known issues with current sysfs, - and udev does not need or should be used to work around such bugs. - -------------------------------------------------------------------- -Tue Jul 7 08:54:38 UTC 2015 - jengelh@inai.de - -- Avoid restarting logind [bnc#934901] -- Do not suppress errors in any case, even if they are ignored - -------------------------------------------------------------------- -Sun Jul 5 15:52:33 UTC 2015 - hrvoje.senjan@gmail.com - -- Fix devel package requires (both mini and real required real libsystemd0) - -------------------------------------------------------------------- -Fri Jul 3 11:17:01 UTC 2015 - werner@suse.de - -- Rework patch tty-ask-password-agent-on-console.patch to fit the - requisition of https://bugs.freedesktop.org/show_bug.cgi?id=82004 - -------------------------------------------------------------------- -Wed Jul 1 09:42:44 UTC 2015 - jengelh@inai.de - -- Rework "-mini" package logic to not conflict with itself and - then add libsystemd0 to mini. - -------------------------------------------------------------------- -Wed Jul 1 03:43:51 UTC 2015 - crrodriguez@opensuse.org - -- remove SysVStartPriority= from after-local.service, - unsupported since v218. - Note that this option was only parsed and that's it. the logic - to give "start priority" was never implemented. - -------------------------------------------------------------------- -Wed Jul 1 03:20:20 UTC 2015 - crrodriguez@opensuse.org - -- change the default fallback ntp servers to the opensuse - pool.ntp.org vendor zone. -- We still need to run systemd-sysctl.service after local-fs.target - otherwise it works only when /boot is in the root filesystem but - not when it is a separate partition. - -------------------------------------------------------------------- -Fri Jun 26 17:14:46 CEST 2015 - sbrabec@suse.com - -- Obsolete pm-utils and suspend (boo#925873). -- Remove pm-utils support - (remove Forward-suspend-hibernate-calls-to-pm-utils.patch). - -------------------------------------------------------------------- -Thu Jun 25 17:27:06 UTC 2015 - crrodriguez@opensuse.org - -- remove patch sysctl-handle-boot-sysctl.conf-kernel_release.patch - from the filelist. - -------------------------------------------------------------------- -Thu Jun 25 05:56:55 UTC 2015 - crrodriguez@opensuse.org - -- libpcre, glib2 and libusb are not used by systemd, remove - from buildrequires. - -------------------------------------------------------------------- -Thu Jun 25 05:19:54 UTC 2015 - crrodriguez@opensuse.org - -- 1032-ata_id-unbotch-format-specifier.patch: fix udev ata_id - output. -- 0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch - fix StopWhenUnneeded=true in combination with a Requisite= - dependency. -- 0031-install-fix-bad-memory-access.patch: Fix Bad memory access -- 0006-pam_systemd-Properly-check-kdbus-availability.patch: if - kdbus is enabled (i.e boot with kdbus=1) DBUS_SESSION_BUS_ADDRESS - must not be exported. -- spec: add a min_kernel_version macro to ensure the package - conflicts with kernel versions in which systemd cannot run. - -------------------------------------------------------------------- -Wed Jun 24 20:06:27 UTC 2015 - crrodriguez@opensuse.org - -- sysctl-handle-boot-sysctl.conf-kernel_release.patch dropped, - replaced by a tmpfiles.d snippet "current-kernel-sysctl.conf" - (feature implemented in v220 just for our usecase) - -------------------------------------------------------------------- -Wed Jun 24 19:45:17 UTC 2015 - crrodriguez@opensuse.org - -- fix build when resolved is enabled -- remove fsck -l test in spec file, systemd requires util-linux - 2.26 or later where this feature is already available. - -------------------------------------------------------------------- -Wed Jun 24 17:43:22 UTC 2015 - hrvoje.senjan@gmail.com - -- Fix bootstrap build by guarding filelists (man pages don't get - built in bootstrap mode) -- Drop commented sections from baselibs.conf, allows format_spec_file - to have a successful run - -------------------------------------------------------------------- -Wed Jun 24 14:17:04 UTC 2015 - mpluskal@suse.com - -- Install 50-coredump.conf as coredumpctl is now installed by - default and does not use journal anymore as default storage - -------------------------------------------------------------------- -Fri Jun 19 20:51:14 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 221 -* From 220: -* libgudev was moved into a package of its own -* Runlevels 2, 3 and 4 are no longer distinct, they all map to - multi-user.target. -* The EFI System Partition mounted to /boot will be unmounted - 2 minutes after boot. -* systemd does not support direct live-upgrades (via `systemctl - daemon-reexec`) from versions older than v44 anymore. -* systemd-nspawn may now be called as part of a shell pipeline. -* systemd-shutdownd has been removed. This service was - previously responsible for implementing scheduled shutdowns - as exposed in /usr/bin/shutdown's time parameter. This - functionality has now been moved into systemd-logind and is - accessible via a bus interface. -* udev will no longer call blkid and create symlinks for all - block devices, but merely those from a whitelist - (cf. 60-persistent-storage.rules). -* /usr/lib/os-release gained a new optional field VARIANT= -* Details at - http://lists.freedesktop.org/archives/systemd-devel/2015-May/032147.html -* From 221: -* New sd-bus and sd-event APIs in libsystemd -* If there is both a systemd unit and a SysV init script for the - same service name, and `systemctl enable` or other operation is - run, both will now be enabled (or execute the related operation - on both), not just the unit. -- Split libsystemd0 to support systemd-less nspawn containers -- Redo manpage file lists without %exclude, tends to hide - unpackaged files. -- hwdb belongs to udev -- Resolve memory leak and add missing _cleanup_free_ to - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch -- Remove systemd-powerd-initctl-support.patch - (no longer builds because shutdownd is gone) -- Remove quilt-patches/0001-core-rework-device-state-logic.patch, - 0001-Let-some-boolean-survive-a-daemon-reload.patch - (merged upstream), - 0001-Let-some-boolean-survive-a-daemon-reload.patch - (obsolete) - -------------------------------------------------------------------- -Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de - -- Remove libudev0 from baselibs.conf - -------------------------------------------------------------------- -Thu Jun 11 12:12:58 UTC 2015 - werner@suse.de - -- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch - as now upstream code -- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix - bsc#933365 and boo#934077 - -------------------------------------------------------------------- -Tue Jun 2 13:33:24 UTC 2015 - pwieczorkiewicz@suse.com - -- Add 1098-systemd-networkd-alias-network-service.patch to alias - network.service the same way NetworkManager and wicked does. - This is needed by yast2 and other parts of the system. boo#933092 - -------------------------------------------------------------------- -Mon May 18 14:39:47 UTC 2015 - werner@suse.de - -- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use - the new return values of proc_cmdline() in enable_name_policy() - this should fix boo#931165 - -------------------------------------------------------------------- -Mon May 18 12:25:54 UTC 2015 - jengelh@inai.de - -- Drop 1021-udev-re-add-persistent-net-rules.patch, - 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, - 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, - 1046-fix-duplicated-rules-with-layer3-interfaces.patch, - 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, - 1051-check-if-NAME-has-a-value.patch, - 1053-better-checks-in-write_net_rules.patch, - 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. - 1021 originally broke parsing of net.ifnames=0 [bnc#931165], - and given that neither the kernel command line needs to be - touched nor the source be patched to reach the unpredictable - naming setup for SLE, all these parts are moved to a separate - package. - -------------------------------------------------------------------- -Mon Mar 16 15:35:31 UTC 2015 - werner@suse.de - -- Add upstream patch - 0001-core-don-t-change-removed-devices-to-state-tentative.patch - to fix the fix of the last backport (bsc#921898) - -------------------------------------------------------------------- -Thu Mar 5 11:36:11 UTC 2015 - jengelh@inai.de - -- Reenable networkd which was silently disabled on Feb 18 - -------------------------------------------------------------------- -Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de - -- Add 0001-core-rework-device-state-logic.patch to fix spurious - automated umount after mount. - -------------------------------------------------------------------- -Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com - -- mark more subpackages as !bootstrap for systemd-mini usage. - -------------------------------------------------------------------- -Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org - -- spec : remove --with-firmware-path, firmware loader was removed in v217 -- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) -- spec: Do not enable systemd-readahead-collect.service and -systemd-readahead-replay.service as these do not exist anymore. -- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch - Yast was fixed to write all timezone changes exactly how timedated expects - things to be done. -- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg - package handles the migration from /etc/HOSTNAME to /etc/hostname - and owns both files. --spec: remove boot.udev and systemd-journald.init as they currently - serve no purpose. -- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we - are in sysvcompat-only codepath, also remove the code targetting other - distributions, never compiled as the TARGET_$DISTRO macros are never defined. -- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT -- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards -- insserv-generator.patch: Only build when sysvcompat is enabled -- vhangup-on-all-consoles.patch add a comment indicating this is a workaround - for a kernel bug. -- spec: Add option to allow disabling sysvinit compat at build time. -- spec: Add option to enable resolved at build time. -- spec: Remove all %ifs for !factory products, current systemd releases can - neither be built nor installed in older products without upgrading - several components of the base system. - (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) -- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when - those init scripts still existed. (dummy localfs.service source: gone) -- systemd-sleep-grub: moved to the grub2 package where it belongs as a - suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) -- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds - config.h everywhere in the preprocessor cmdline. - -------------------------------------------------------------------- -Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 219 -* systemd units can now be "unsupported" (like, for example, - .device in a containers), similar to the "skipped" state in - SUSE's prior sysvinit scripts. -* tmpfiles gained the 'v' type for creating btrfs subvolumes. -* tmpfiles gained the 'a' type for setting ACLs. -* systemd-nspawn gained new switches: --ephemeral, --template -* The /var/lib/containers location is deprecated and replaced by - /var/lib/machines. -* machinectl gained the copy-from and copy-to commands. -* machinectl now knows a "bind" command (for use with nspawn) -* new "systemd-importd" daemon to download container images and run - them as nspawn containers. -* networkd collects LLDP network announcements, if available, and - so shown in networkctl. -* The fallback terminal type was changed from "vt102" to "vt220", - allowing PgUp/PgDn keys to work. -* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, - useful should the regular shutdown hang. -* Removing storage will cause systemd to unmount the associated - mountpoints so that they don't linger around. - -------------------------------------------------------------------- -Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de - -- Add suse-sysv-bootd-support.diff (reinstate old - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) - -------------------------------------------------------------------- -Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de - -- Update to systemd v218-1050-g38ab096 -- Remove patches - use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) -- Reinstate and improve (remove huge indents from) - tty-ask-password-agent-on-console.patch, - 0014-journald-with-journaling-FS.patch, rootsymlink_generator. - -------------------------------------------------------------------- -Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com - -- disable systemd-resolved for now as it interacts not well with - our methods and security has concerns regarding spoofing. bsc#917781 - -------------------------------------------------------------------- -Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - -- Add patch kbd-model-map.patch to add missed keyboard layouts - which are offered by YaST2 (bsc#910643 and boo#897803) - -------------------------------------------------------------------- -Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 218 -* New utilities: systemd-timesyncd (SNTP client), - systemd-resolved, systemd-networkd, networkctl, - systemd-sysusers -* machinectl gained a "poweroff" command for clean container shutdown -* The udev hwdb now contains DPI information for mice. -* Userspace firmware loading support has been removed and - the minimum supported kernel version is thus bumped to 3.7. -- Remove patches: - G=gone locally, is upstream; - D=dropped: no longer needed; - N=no longer applies to source nor is it deemed needed; - K=killed: no longer applicable and too complex to resolve: - ---- - G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch - K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch - K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch - K handle-SYSTEMCTL_OPTIONS-environment-variable.patch - K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch - K log-target-null-instead-kmsg.patch - K tty-ask-password-agent-on-console.patch - K 513-nspawn-veth.patch - K 1087-infinit-timeout-for-kmod-loaded-modules.patch - D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - D avoid-leaking-socket-descriptors.patch - D 0001-make-fortify-happy-with-ppoll.patch - N fix-owner-of-var-log-btmp.patch - N disable-nss-myhostname-warning-bnc-783841.patch - N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch - N 0001-make-209-working-on-older-dist.patch - N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch - N tmpfiles-do-not-clean-for-mandb-index-files.patch - G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc - G optionally-warn-if-nss-myhostname-is-called.patch - G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch - G 0004-getty-generator-properly-escape-instance-names.patch - G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch - G 0008-Reset-signal-mask-on-re-exec-to-init.patch - G 0001-login-fix-pos-array-allocation.patch - G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch - G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - G 0005-Replace-var-run-with-run-in-remaining-places.patch - G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch - G 0007-README-document-that-var-run-must-be-a-symlink-run.patch - G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch - G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch - G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - G 0001-Fix-systemd-stdio-bridge-symlink.patch - G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch - G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch - G 0004-man-document-missing-options-of-systemd-run.patch - G 0005-systemd-run-add-some-extra-safety-checks.patch - G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch - G 0007-journal-forget-file-after-encountering-an-error.patch - G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch - G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch - G 0010-man-update-link-to-LSB.patch - G 0011-man-systemd-bootchart-fix-spacing-in-command.patch - G 0012-man-add-missing-comma.patch - G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch - G 0002-manager-flush-memory-stream-before-using-the-buffer.patch - G 0003-busname-don-t-drop-service-from-the-result-string.patch - G 0004-fix-off-by-one-error-in-array-index-assertion.patch - G 0005-logind-fix-policykit-checks.patch - G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch - G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch - G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch - G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch - G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch - G 0007-networkd-fix-typo.patch - G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch - G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch - G 0012-journald-remove-stray-reset-of-error-return-value.patch - G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch - G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch - G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch - G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch - G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch - G 0005-sd-daemon-fix-incorrect-variable-access.patch - G 0006-sd-event-initialization-perturbation-value-right-bef.patch - G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch - G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch - G 0001-journal-fix-export-of-messages-containing-newlines.patch - G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch - G 0003-tty-ask-password-agent-return-negative-errno.patch - G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch - G 0005-systemd-python-fix-failing-assert.patch - G 0007-dbus-suppress-duplicate-and-misleading-messages.patch - G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch - G 0001-bash-completion-fix-__get_startable_units.patch - G 0002-sysctl-replaces-some-slashes-with-dots.patch - G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch - G 0004-implement-a-union-to-pad-out-file_handle.patch - G shut-up-annoying-assertion-monotonic-clock-message.patch - G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch - G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch - G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch - G 0003-analyze-fix-plot-with-bad-y-size.patch - G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch - G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch - G 0002-backlight-do-nothing-if-max_brightness-is-0.patch - G 0003-backlight-unify-error-messages.patch - G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch - G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch - G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch - G 0001-core-close-socket-fds-asynchronously.patch - G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch - G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch - G 0002-logind-fix-printf-format.patch - G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch - G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch - G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch - G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch - G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch - G 0008-man-update-journald-rate-limit-defaults.patch - G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch - G 0010-logind-allow-suspending-if-there-are-no-displays.patch - G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch - G 0002-man-note-that-entire-sections-can-now-be-ignored.patch - G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch - G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch - G 0006-login-add-mir-to-the-list-of-session-types.patch - G 0007-logind-fix-Display-property-of-user-objects.patch - G 0001-hwdb-update.patch - G 0002-hwdb-update.patch - G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch - G 0004-hwdb-update.patch - G 0005-hwdb-update.patch - G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch - G 0002-journal-properly-detect-language-specified-in-line.patch - G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch - G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch - G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch - G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch - G 0002-nspawn-restore-journal-directory-is-empty-check.patch - G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - G 0004-socket-properly-handle-if-our-service-vanished-durin.patch - G 0001-Do-not-unescape-unit-names-in-Install-section.patch - G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - G 0001-virt-rework-container-detection-logic.patch - G 0002-fsck-include-device-name-in-the-message-about-missin.patch - G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch - G 0004-util-ignore_file-should-not-allow-files-ending-with.patch - G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch - G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch - G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch - G 0001-hwdb-fix-case-sensitive-match.patch - G 0001-sd-event-restore-correct-timeout-behaviour.patch - G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch - G 0001-umount-modernizations.patch - G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch - G 0003-core-allow-transient-mount-units.patch - G 0004-systemd-detect-virt-only-discover-Xen-domU.patch - G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch - G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch - G 0001-core-fix-invalid-free-in-killall.patch - G 0003-install-fix-invalid-free-in-unit_file_mask.patch - G 0001-systemd-detect-virt-detect-s390-virtualization.patch - G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch - G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch - G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch - G 0005-po-add-Greek-translation.patch - G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0007-po-add-German-translation.patch - G 0009-core-clean-up-signal-reset-logic-when-reexec.patch - G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch - G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch - G 0012-core-transaction-avoid-misleading-error-message-when.patch - G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch - G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch - G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch - G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch - G 0005-man-fix-path-in-crypttab-5.patch - G 0001-units-order-network-online.target-after-network.targ.patch - G 0001-core-use-correct-format-string-for-UIDs.patch - G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch - G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch - G 0002-journald-make-MaxFileSec-really-default-to-1month.patch - G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch - G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch - G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch - G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch - G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch - G 0001-parse_uid-return-ENXIO-for-1-uids.patch - G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch - G 0003-localed-consider-an-unset-model-as-a-wildcard.patch - G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch - G 0005-bus-close-a-bus-that-failed-to-connect.patch - G 0006-hwdb-update.patch - G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-architecture-Add-tilegx.patch - G 0002-architecture-Add-cris.patch - G 0003-arch-add-crisv32-to-uname-check.patch - G 0004-architecture-remove-cris-from-uname-list.patch - G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch - G 0002-namespace-fix-uninitialized-memory-access.patch - G 0001-machine-don-t-return-uninitialized-variable.patch - G 0002-vconsole-setup-run-setfont-before-loadkeys.patch - G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch - G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch - G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch - G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch - G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch - G 0007-service-flush-status-text-and-errno-values-each-time.patch - G 0001-journal-compress-return-early-in-uncompress_startswi.patch - G 0002-journal-compress-improve-xz-compression-performance.patch - G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch - G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch - G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch - G 0001-event-pull-in-sd-event.h-from-event-util.h.patch - G 0002-util-fix-has-cc-check-and-add-test.patch - G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch - G 0004-fileio-quote-more-shell-characters-in-envfiles.patch - G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch - G 0002-units-serial-getty-.service-use-the-default-RestartS.patch - G 0001-po-add-Ukrainian-translation.patch - G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch - G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch - G 0001-detect-virt-Fix-Xen-domU-discovery.patch - G 0002-Be-more-verbose-when-bind-or-listen-fails.patch - G 0003-Add-quotes-to-warning-message.patch - G 0004-systemd-return-the-first-error-from-manager_startup.patch - G 0001-bash-completion-p-option-for-journalctl.patch - G 0002-journalctl-man-allow-only-between-terms.patch - G 0003-systemd-use-pager-for-test-and-help.patch - G 0001-bus-proxyd-fix-incorrect-comparison.patch - G 0002-shell-completion-prevent-mangling-unit-names.patch - G 0003-Always-check-asprintf-return-code.patch - G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch - G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch - G 0006-parse_boolean-require-exact-matches.patch - G 0007-drop_duplicates-copy-full-BindMount-struct.patch - G 0008-shell-completion-prevent-mangling-unit-names-bash.patch - G 0009-journald-always-add-syslog-facility-for-messages-com.patch - G 0001-sysv-order-initscripts-which-provide-network-before-.patch - G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch - G 0003-keymap-Annotate-all-micmute-workarounds.patch - G 0007-hwdb-update.patch - G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch - G 0002-switch-root-umount-the-old-root-correctly.patch - G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch - G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch - G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch - G 0006-login-share-VT-signal-handler-between-sessions.patch - G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch - G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch - G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch - G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch - G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch - G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch - G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch - G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch - G 0003-keymap-Fix-HP-Pavillon-DV7.patch - G 0004-hwdb-update-format-description-and-document-reloadin.patch - G 0008-hwdb-update.patch - G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch - G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch - G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - G 0001-login-fix-memory-leak-on-DropController.patch - G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch - G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch - G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - G 0001-nspawn-fix-network-interface.patch - G 0001-completion-filter-templates-from-restartable-units.patch - G 0002-systemd-fix-error-message.patch - G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch - G 0004-config-parser-fix-mem-leak.patch - G 0005-login-fix-mem-leak.patch - G 0001-login-simplify-controller-handling.patch - G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch - G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0009-hwdb-update.patch - G 0001-systemctl-allow-to-change-the-default-target-without.patch - G 0001-activate-fix-fd-leak-in-do_accept.patch - G 0002-analyze-avoid-a-null-dereference.patch - G 0003-analyze-fix-mem-leak.patch - G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch - G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch - G 0006-bus-unref-buscreds-on-failure.patch - G 0007-core-fix-a-potential-mem-leak.patch - G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch - G 0009-journal-do-not-leak-mmaps-on-OOM.patch - G 0010-manager-use-correct-cleanup-function.patch - G 0001-core-fix-resource-leak-in-manager_environment_add.patch - G 0002-util-remove-a-unnecessary-check.patch - G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch - G 0004-shared-conf-parser.patch - G 0005-logind-fix-typo.patch - G 0006-systemctl-fix-resource-leak-CID-1237747.patch - G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch - G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch - G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch - G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch - G 0003-mount-order-options-before-other-arguments-to-mount.patch - G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch - G 0005-shared-label.h-add-missing-stdio.h-include.patch - G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch - G 0001-login-pause-devices-before-acknowledging-VT-switches.patch - G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch - G 0001-socket-introduce-SELinuxContextFromNet-option.patch - G 0002-util-avoid-non-portable-__WORDSIZE.patch - G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch - G 0002-bus-remove-unused-check.patch - G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch - G 0001-logind-add-support-for-Triton2-Power-Button.patch - G 0002-logind-add-support-for-TPS65217-Power-Button.patch - G 0001-shutdownd-clean-up-initialization-of-struct.patch - G 0003-bootchart-parse-userinput-with-safe_atoi.patch - G 0004-bootchart-check-return-of-strftime.patch - G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch - G 0001-journalctl-do-not-output-reboot-markers-when-running.patch - G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch - G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch - G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch - G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch - G 0003-fileio-label-return-error-when-writing-fails.patch - G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch - G 0004-sd-event-check-the-value-of-received-signal.patch - G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch - G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch - G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch - G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch - G 0003-sd-bus-check-return-value-of-vasprintf.patch - G 0004-core-map-the-rescue-argument-to-rescue.target.patch - G 0005-util-avoid-double-close-of-fd.patch - G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch - G 0001-tmpfiles-compare-return-against-correct-errno.patch - G 0001-shell-completion-fix-completion-of-inactive-units.patch - G 0002-shell-completion-propose-templates-for-disable-re-en.patch - G 0003-man-we-don-t-have-Wanted-dependency.patch - G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch - G 0001-systemd-continue-switch-root-even-if-umount-fails.patch - G 0002-systemd-try-harder-to-bind-to-notify-socket.patch - G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch - G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch - G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch - G 0004-journal-do-server_vacuum-for-sigusr1.patch - G 0005-cryptsetup-fix-an-OOM-check.patch - G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch - G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch - G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch - G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch - G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch - G 0005-journalctl-correct-help-text-for-until.patch - G 0006-calendarspec-fix-typo-in-annually.patch - G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch - G 0008-util-introduce-sethostname_idempotent.patch - G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch - G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch - G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch - G 0012-manager-do-not-print-anything-while-passwords-are-be.patch - G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch - G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch - G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch - G 0002-snapshot-return-error-when-snapshot-exists.patch - G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch - G 0004-Raise-level-of-Found-dependency.-lines.patch - G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch - G 0006-journald-fix-minor-memory-leak.patch - G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch - G 0008-journald-fix-memory-leak-on-error-path.patch - G 0009-units-make-systemd-journald.service-Type-notify.patch - G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch - G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch - G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch - G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch - G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch - G 0001-systemctl-let-list-units-unit-files-honour-type.patch - G 0002-systemctl-obey-state-in-list-unit-files.patch - G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch - G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch - G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch - G 0001-selinux-access-fix-broken-ternary-operator.patch - G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch - G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch - G 0004-core-fix-transaction-destructiveness-check-once-more.patch - G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch - G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch - G 1009-cdrom_id-use-the-old-MMC-fallback.patch - G 1010-udev-increase-result-size-for-programs.patch - G 1014-udev-update-net_id-comments.patch - G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch - G 1017-udev-serialize-synchronize-block-device-event-handli.patch - G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch - G 1019-udev-avoid-use-of-uninitialized-err.patch - G 1020-udev-keyboard-also-hook-into-change-events.patch - G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch - G 1024-udev-always-close-lock-file-descriptor.patch - G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch - G 1026-udevd-inotify-modernizations.patch - G 1027-udev-synthesize-change-events-for-partitions-when-to.patch - G 1028-udev-link-config-fix-mem-leak.patch - G 1029-udev-try-first-re-reading-the-partition-table.patch - G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch - G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch - G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch - G 1033-udev-really-exclude-device-mapper-from-block-device.patch - G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch - G 1038-udev-fix-invalid-free-in-enable_name_policy.patch - G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch - G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch - G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch - G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch - G 1044-rules-update-qemu-hid-rules.patch - G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch - G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch - G 1048-udev-net_setup_link-add-a-bit-more-logging.patch - G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch - G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch - G 1056-udevd-add-event-timeout-commandline-option.patch - G 1057-udev-unify-event-timeout-handling.patch - G 1058-udev-unify-event-timeout-handling.patch - G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch - G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch - G 1065-udev-bump-event-timeout-to-60-seconds.patch - G 1067-udev-always-resolve-correctly-database-names-on-chan.patch - G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch - G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch - G 1070-rules-net-setup-link-remove-stray-linebreak.patch - G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch - G 1072-udev-netif_rename-don-t-log-to-kmsg.patch - G 1073-udev-drop-print_kmsg.patch - G 1074-udev-fix-copy-paste-error-in-log-message.patch - G 1075-udev-timeout-increase-timeout.patch - G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1078-udev-remove-userspace-firmware-loading-support.patch - G 1079-udev-remove-userspace-firmware-loading-support.patch - G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch - G 1081-udevd-check-return-of-various-functions.patch - G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch - G 1083-udev-node-warn-if-chmod-chown-fails.patch - G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch - G 1085-udev-fix-typos.patch - G 1086-udevd-don-t-fail-if-run-udev-exists.patch - G 1089-fix-cgroup-device-controller.patch - G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - G 1091-udev-path_id-update-comments.patch - G 1092-libudev-do-not-accept-invalid-log-levels.patch - G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch - G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch - G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - -------------------------------------------------------------------- -Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com - -- update set-and-use-default-logconsole.patch - fix comparison of - console log facility that caused journald to skip output to console - (boo#912030) - -------------------------------------------------------------------- -Thu Dec 18 13:47:36 UTC 2014 - werner@suse.de - -- Use Robert's latest patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - which drops NAMEPOLICY_KERNEL as this breaks all on current - systems out there - -------------------------------------------------------------------- -Wed Dec 17 14:57:42 UTC 2014 - thomas.blume@suse.com - -- remove 0022-systemd-tmpfiles-ownerkeep.patch since this is now - implemented into the systemd-tmpfiles binary -- add user based ignore statements in tmpfiles removal directives - (bnc#903009) - add systemd-add-user-keep.patch - -------------------------------------------------------------------- -Tue Dec 16 09:45:38 UTC 2014 - thomas.blume@suse.com - -- use --boot option in systemd-tmpfiles-setup-dev.service (bnc#908476) - add upstream patches: - 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch - 0002-man-tmpfiles.d-recommend-using-b-and-c.patch (adapted) - -------------------------------------------------------------------- -Tue Dec 16 08:59:08 UTC 2014 - werner@suse.de - -- Update patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - to Robert's version - -------------------------------------------------------------------- -Mon Dec 15 15:02:22 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-selinux-access-fix-broken-ternary-operator.patch - 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch - 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch - 0004-core-fix-transaction-destructiveness-check-once-more.patch -- Avoid old net devices naming scheme on openSUSE 13.2 and less - maybe caused by patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - -------------------------------------------------------------------- -Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com - -- fix systemd-nspawn network-veth support (bnc#906709) - add 513-nspawn-veth.patch - -------------------------------------------------------------------- -Fri Dec 5 12:51:15 UTC 2014 - werner@suse.de - -- Add upstream patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - which may solve bsc#907318 - -------------------------------------------------------------------- -Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch - 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - -------------------------------------------------------------------- -Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com - -- Change the maximum number of children from CPU_COUNT * 256 to - CPU_COUNT * 64. - Update 1097-udevd-increase-maximum-number-of-children.patch - -------------------------------------------------------------------- -Thu Nov 27 20:30:35 UTC 2014 - rmilasan@suse.com - -- Increase number of children/workers to CPU_COUNT * 256 to avoid - 'maximum number of children reached' (bnc#907393). - Add 1097-udevd-increase-maximum-number-of-children.patch - -------------------------------------------------------------------- -Tue Nov 25 09:44:42 UTC 2014 - rmilasan@suse.com - -- Fix error return in rootsymlink_generator.c - Update 1096-new-udev-root-symlink-generator.patch - -------------------------------------------------------------------- -Fri Nov 21 13:35:40 UTC 2014 - werner@suse.de - -- Remove upstream patch - 0001-systemd-logind.service-set-Type-notify.patch - as systemd-logind.service is already from DBus type, compare with - upstream commit eab459bc0639b81b32735f36d3e929e4bfa2cb4b - -------------------------------------------------------------------- -Thu Nov 20 13:45:28 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemd-logind.service-set-Type-notify.patch - 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch - 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch - -------------------------------------------------------------------- -Thu Nov 20 12:18:57 UTC 2014 - werner@suse.de - -- Re-add directory /usr/lib/systemd/system/basic.target.wants - -------------------------------------------------------------------- -Wed Nov 19 15:07:43 UTC 2014 - gber@opensuse.org - -- remove pm-utils-hooks-compat.sh again, pm-utils built-in hooks - partially duplicate hooks run by systemd which may potentially - lead to problems, instead temporarily re-enable - Forward-suspend-hibernate-calls-to-pm-utils.patch until - boo#904828 can be addressed properly - -------------------------------------------------------------------- -Wed Nov 19 00:58:00 UTC 2014 - Led - -- fix bashisms in write_net_rules script -- update patches: - * 1053-better-checks-in-write_net_rules.patch - -------------------------------------------------------------------- -Tue Nov 18 10:26:08 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemctl-let-list-units-unit-files-honour-type.patch - 0002-systemctl-obey-state-in-list-unit-files.patch - which allows to use --type in the systemctl command list-units - and list-unit-files. - -------------------------------------------------------------------- -Tue Nov 18 10:10:28 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch - 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch - -------------------------------------------------------------------- -Thu Nov 13 14:47:17 UTC 2014 - rmilasan@suse.com - -- New root symlink rule generator - Add 1096-new-udev-root-symlink-generator.patch -- Remove write_dev_root_rule and systemd-udev-root-symlink - -------------------------------------------------------------------- -Thu Nov 13 12:59:05 UTC 2014 - werner@suse.de - -- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - to skip hdflush as well as hddown but only use halt as fallback - for poweroff as well as synch in systemctl before any reboot command - (compare with commit 4a3ad39957399c4a30fc472a804e72907ecaa4f9) - -------------------------------------------------------------------- -Thu Nov 13 09:54:35 UTC 2014 - rmilasan@suse.com - -- Create rule to set I/O scheduler to deadline if device attribute - 'rotational' equals 0, usually SSDs (bnc#904517). - Add 1095-set-ssd-disk-to-use-deadline-scheduler.patch - -------------------------------------------------------------------- -Thu Nov 13 07:50:49 UTC 2014 - thomas.blume@suse.com - -- fix systemd-fstab-generator crypttab parsing (bnc#903963) - -------------------------------------------------------------------- -Tue Nov 11 19:10:35 UTC 2014 - gber@opensuse.org - -- Add pm-utils-hooks-compat.sh in order to run pm-utils sleep hooks - from systemd (boo#904828) - -------------------------------------------------------------------- -Mon Nov 10 14:23:00 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch - 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch - 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch - -------------------------------------------------------------------- -Mon Nov 10 12:39:35 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-don-t-allow-enabling-if-unit-is-masked.patch - 0002-snapshot-return-error-when-snapshot-exists.patch - 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch - 0004-Raise-level-of-Found-dependency.-lines.patch - 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch - 0006-journald-fix-minor-memory-leak.patch - 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch - 0008-journald-fix-memory-leak-on-error-path.patch - 0009-units-make-systemd-journald.service-Type-notify.patch - 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Mon Nov 10 12:36:34 UTC 2014 - werner@suse.de - -- Add upstream patches - 1092-libudev-do-not-accept-invalid-log-levels.patch - 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch - 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch - -------------------------------------------------------------------- -Fri Nov 7 09:45:20 UTC 2014 - werner@suse.de - -- Add patch watch_resolv.conf_for_become_changed.patch to add an - inotify watch on /etc/resolv.conf which enables the reload of - a changed resolver configuration on the fly (bsc#902901) -- Do not apply patch 0022-systemd-tmpfiles-ownerkeep.patch in case - if the script /usr/bin/systemd-tmpfiles-keep is missed - -------------------------------------------------------------------- -Mon Nov 3 14:23:02 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch - 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch - -------------------------------------------------------------------- -Mon Nov 3 14:17:48 UTC 2014 - werner@suse.de - -- Add upstream patches - 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - 1091-udev-path_id-update-comments.patch - which will be applied if patch - 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - is applied a this may fix the trouble with iSCSI (bnc#898233) - -------------------------------------------------------------------- -Thu Oct 30 10:45:01 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch - 0002-time-also-support-infinity-syntax-in-parse_nsec.patch - 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch - 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch - 0005-journalctl-correct-help-text-for-until.patch - 0006-calendarspec-fix-typo-in-annually.patch - 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch - 0008-util-introduce-sethostname_idempotent.patch - 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch - 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch - 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch -- Replace patch - keep-crypt-password-prompt.patch as this with - upstream patch - 0012-manager-do-not-print-anything-while-passwords-are-be.patch - -------------------------------------------------------------------- -Fri Oct 24 13:02:45 UTC 2014 - werner@suse.de - -- Add upstream patch - 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch -- Add patch journald-advice-about-use-of-memory.patch to use mmap() - flags as well as madvise(2) for journal files. - -------------------------------------------------------------------- -Thu Oct 23 14:05:08 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-strv-add-an-additional-overflow-check-when-enlarging.patch - 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch - 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch - 0004-journal-do-server_vacuum-for-sigusr1.patch - 0005-cryptsetup-fix-an-OOM-check.patch - -------------------------------------------------------------------- -Wed Oct 22 13:56:22 UTC 2014 - werner@suse.de - -- Add upstream patch 1089-fix-cgroup-device-controller.patch - to avoid trouble on existing /dev/console with nspawn (bsc#902240) - -------------------------------------------------------------------- -Tue Oct 21 11:03:31 UTC 2014 - werner@suse.de - -- Modify patch avoid-leaking-socket-descriptors.patch to close - file descriptors for incomming connections in pam module in case - of short memory. - -------------------------------------------------------------------- -Mon Oct 20 14:10:47 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemd-continue-switch-root-even-if-umount-fails.patch - 0002-systemd-try-harder-to-bind-to-notify-socket.patch -- Add patch avoid-leaking-socket-descriptors.patch to close - file descriptors if an incomming connection can not be handled - due e.g. short memory. Could be related to bsc #901481 - -------------------------------------------------------------------- -Wed Oct 15 12:03:36 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-shell-completion-fix-completion-of-inactive-units.patch - 0002-shell-completion-propose-templates-for-disable-re-en.patch - 0003-man-we-don-t-have-Wanted-dependency.patch - 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch - -------------------------------------------------------------------- -Wed Oct 15 08:48:36 UTC 2014 - werner@suse.de - -- Adapt patch - rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch - to make it work even with patch #438 and #439 - -------------------------------------------------------------------- -Tue Oct 14 16:23:51 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch - 0001-tmpfiles-compare-return-against-correct-errno.patch - -------------------------------------------------------------------- -Tue Oct 14 16:19:42 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch - 0001-units-introduce-network-pre.target-as-place-to-hook-.patch - 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch - 0003-sd-bus-check-return-value-of-vasprintf.patch - 0004-core-map-the-rescue-argument-to-rescue.target.patch - 0005-util-avoid-double-close-of-fd.patch - -------------------------------------------------------------------- -Tue Oct 14 16:18:36 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch - 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch - 0003-fileio-label-return-error-when-writing-fails.patch - 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch - 0004-sd-event-check-the-value-of-received-signal.patch - 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch - -------------------------------------------------------------------- -Tue Oct 14 14:46:58 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch - 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Tue Oct 14 14:16:52 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-journalctl-do-not-output-reboot-markers-when-running.patch - 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch - -------------------------------------------------------------------- -Tue Oct 14 13:58:45 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-logind-add-support-for-Triton2-Power-Button.patch - 0002-logind-add-support-for-TPS65217-Power-Button.patch -- Add upstream patches - 0001-shutdownd-clean-up-initialization-of-struct.patch - 0003-bootchart-parse-userinput-with-safe_atoi.patch - 0004-bootchart-check-return-of-strftime.patch - 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch - -------------------------------------------------------------------- -Thu Oct 2 07:21:42 PDT 2014 - lduncan@suse.com - -- Revert patch 1063, which incorrectly disallows - /dev/disk/by-path links for iSCSI (and other) - devices. Will be corrected and re-added once - upstream is consulted. (bnc#898233). Disable: - 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patc - -------------------------------------------------------------------- -Fri Sep 26 16:11:10 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch - for bsc#893797 - -------------------------------------------------------------------- -Fri Sep 26 09:34:22 UTC 2014 - rmilasan@suse.com - -- Drop renaming virtual interfaces in a guest (bnc#898432). - Add 1088-drop-renaming-of-virtual-interfaces-in-guest.patch - -------------------------------------------------------------------- -Thu Sep 25 14:08:35 UTC 2014 - werner@suse.de - -- Rename patch 0001-infinit-timeout-for-kmod-loaded-modules.patch - to patch 1087-infinit-timeout-for-kmod-loaded-modules.patch - and apply this one - -------------------------------------------------------------------- -Thu Sep 25 13:45:46 UTC 2014 - werner@suse.de - -- Change patch - 0003-mount-order-options-before-other-arguments-to-mount.patch - to fix bsc#898240 - -------------------------------------------------------------------- -Thu Sep 25 09:06:14 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-Fix-warning-about-unused-variable-with-SELINUX.patch - 0002-bus-remove-unused-check.patch - -------------------------------------------------------------------- -Wed Sep 24 15:05:49 UTC 2014 - werner@suse.de - -- Add patch 0001-infinit-timeout-for-kmod-loaded-modules.patch to - be able to avoid killing a running kmod/modprobe (bnc#889297) - -------------------------------------------------------------------- -Wed Sep 24 08:36:42 UTC 2014 - werner@suse.de - -- Update patch 0001-bnc888612-logind-polkit-acpi.patch - -------------------------------------------------------------------- -Wed Sep 24 07:47:54 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-login-pause-devices-before-acknowledging-VT-switches.patch - May help that history of the shell is saved - 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch - 0001-socket-introduce-SELinuxContextFromNet-option.patch (bsc#897801) - 0002-util-avoid-non-portable-__WORDSIZE.patch - -------------------------------------------------------------------- -Fri Sep 19 13:08:14 UTC 2014 - werner@suse.de - -- Add patch 0001-bnc888612-logind-polkit-acpi.patch from Frederic - to solve bnc#888612 - AUDIT-0: Power button press at gdm login - should not prompt for credentials - -------------------------------------------------------------------- -Fri Sep 19 11:36:48 UTC 2014 - werner@suse.de - -- Add upstream bugfix patches - 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch - 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch - 0003-mount-order-options-before-other-arguments-to-mount.patch - 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch - 0005-shared-label.h-add-missing-stdio.h-include.patch - 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch - 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch - 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch - 1081-udevd-check-return-of-various-functions.patch - 1082-udevadm-hwdb-check-return-value-of-fseeko.patch - 1083-udev-node-warn-if-chmod-chown-fails.patch - 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch - 1085-udev-fix-typos.patch - 1086-udevd-don-t-fail-if-run-udev-exists.patch - -------------------------------------------------------------------- -Thu Sep 18 13:21:45 UTC 2014 - werner@suse.de - -- Add upstream bugfix patches - 0001-core-fix-resource-leak-in-manager_environment_add.patch - 0002-util-remove-a-unnecessary-check.patch - 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch - 0004-shared-conf-parser.patch - 0005-logind-fix-typo.patch - 0006-systemctl-fix-resource-leak-CID-1237747.patch - 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patc - 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch -- Remove 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch as - 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch - is the upstream solution - -------------------------------------------------------------------- -Wed Sep 17 16:02:33 UTC 2014 - werner@suse.de - -- Add patch 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch to - fix for the size of the gcc builtin type bool also known as _Bool - from the include header stdbool.h. - -------------------------------------------------------------------- -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 - -- Add upstream patches - 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch - 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Thu Sep 4 13:10:28 UTC 2014 - werner@suse.de - -- Disable patch - module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - for SLES-12 as well as for openSUSE-13.2 (bnc#895087) - -------------------------------------------------------------------- -Tue Sep 2 12:56:47 UTC 2014 - rmilasan@suse.com - -- udev: add option to generate old 'buggy' serials (bnc#886852) - Add 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch - -------------------------------------------------------------------- -Tue Sep 2 09:14:03 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-login-simplify-controller-handling.patch - -------------------------------------------------------------------- -Mon Sep 1 13:00:29 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-completion-filter-templates-from-restartable-units.patch - 0002-systemd-fix-error-message.patch - 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch - 0004-config-parser-fix-mem-leak.patch - 0005-login-fix-mem-leak.patch - 1065-udev-bump-event-timeout-to-60-seconds.patch - -------------------------------------------------------------------- -Fri Aug 29 14:14:06 UTC 2014 - werner@suse.de - -- Add upstream patch 0001-nspawn-fix-network-interface.patch to - make option network-interface of systemd-nspawn work - -------------------------------------------------------------------- -Thu Aug 28 10:07:10 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-login-fix-memory-leak-on-DropController.patch - 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch - 0003-sd-journal-properly-convert-object-size-on-big-endia.patch - 0004-sd-journal-verify-that-object-start-with-the-field-n.patch -- Add upstream patch - 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch - to avoid that hwdb ID's for unrecognised USB device are taken - from the USB hub. - -------------------------------------------------------------------- -Wed Aug 27 16:01:17 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch - 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch - 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - -------------------------------------------------------------------- -Wed Aug 27 12:52:09 UTC 2014 - werner@suse.de - -- Add patch use-rndaddentropy-ioctl-to-load-random-seed.patch to - use RNDADDENTROPY ioctl to load random-seed and to increase - entropy count as well (bnc#892096) - -------------------------------------------------------------------- -Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de - -- Add upstream patches for hwdb - 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch - 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch - 0003-keymap-Fix-HP-Pavillon-DV7.patch - 0004-hwdb-update-format-description-and-document-reloadin.patch - 0008-hwdb-update.patch - -------------------------------------------------------------------- -Tue Aug 26 11:25:57 UTC 2014 - werner@suse.de - -- Port back and add the missed upstream patches from 2014/08/22 - 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch - 0006-login-share-VT-signal-handler-between-sessions.patch - -------------------------------------------------------------------- -Fri Aug 22 15:12:23 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch - 0002-switch-root-umount-the-old-root-correctly.patch - 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch - 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch - 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch - 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch - 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch - 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch - 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch - 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch - 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - -------------------------------------------------------------------- -Fri Aug 22 01:29:06 UTC 2014 - crrodriguez@opensuse.org - -- man pages from section 3 are developer docs, move them to - the -devel package. - -------------------------------------------------------------------- -Wed Aug 20 15:06:25 UTC 2014 - werner@suse.de - -- Add patch 0001-let-systemctl-completion-ignore-at-names.patch to - remove error messages for tab completion for systemctl isolate (bnc#892162) - -------------------------------------------------------------------- -Mon Aug 18 14:40:55 UTC 2014 - werner@suse.de - -- Disable the usage of the systemd groups wheel and adm (bnc#892300) - -------------------------------------------------------------------- -Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com - -- Set default permissions for GenWQE device nodes to 0666 (bnc#890977). - Add 1062-rules-set-default-permissions-for-GenWQE-devices.patch - -------------------------------------------------------------------- -Fri Aug 1 09:53:30 UTC 2014 - werner@suse.de - -- Add upstream patches - 0007-hwdb-update.patch - 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - -------------------------------------------------------------------- -Thu Jul 31 07:55:47 UTC 2014 - rmilasan@suse.com - -- Rename: - udev-use-device-mapper-target-name-for-btrfs-device-ready.patch - to - 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch - -------------------------------------------------------------------- -Wed Jul 30 21:10:21 UTC 2014 - jeffm@suse.com - -- udev: use device mapper target name for btrfs device ready (bnc#888215). -- Add udev-use-device-mapper-target-name-for-btrfs-device-ready.patch - -------------------------------------------------------------------- -Wed Jul 30 12:53:07 UTC 2014 - werner@suse.de - -- Add patch tomcat6-var-lock-subsys-legacy.patch to add the - compatibility directory /var/lock/subsys (bnc#889357) - -------------------------------------------------------------------- -Wed Jul 30 11:45:21 UTC 2014 - werner@suse.de - -- Add portabiltiy patch - 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch - -------------------------------------------------------------------- -Wed Jul 30 11:32:23 UTC 2014 - werner@suse.de - -- Port and add upstream patch - 0001-sysv-order-initscripts-which-provide-network-before-.patch - 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch - 0003-keymap-Annotate-all-micmute-workarounds.patch - -------------------------------------------------------------------- -Wed Jul 30 11:10:34 UTC 2014 - werner@suse.de - -- Add patch tty-ask-password-agent-on-console.patch that is for system - console do ask passphrases on all devices of the console (bnc#886211) - -------------------------------------------------------------------- -Wed Jul 30 11:02:27 UTC 2014 - werner@suse.de - -- Add former SUSE and/now upstream patches (bnc#889297) - 1056-udevd-add-event-timeout-commandline-option.patch - 1057-udev-unify-event-timeout-handling.patch - 1058-udev-unify-event-timeout-handling.patch (backport for - compatibility if patch 1022 is not applied) - 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch - -------------------------------------------------------------------- -Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de - -- Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid - rpmlink warning -- Add upstream patches - 0001-bus-proxyd-fix-incorrect-comparison.patch - 0002-shell-completion-prevent-mangling-unit-names.patch - 0003-Always-check-asprintf-return-code.patch - 0004-bash-completion-use-list-unit-files-to-get-all-units.patch - 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch - 0006-parse_boolean-require-exact-matches.patch - 0007-drop_duplicates-copy-full-BindMount-struct.patch - 0008-shell-completion-prevent-mangling-unit-names-bash.patch - 0009-journald-always-add-syslog-facility-for-messages-com.patch - -------------------------------------------------------------------- -Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de - -- Disable blkrrpart for SLES12 and below - -------------------------------------------------------------------- -Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de - -- Add upstream patch - 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch -- Add with condition blkrrpart to be able to disable the patches - 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 - which uses the BLKRRPART ioctl for e.g. synthesize change events - which may interfere with other tools like parted. - -------------------------------------------------------------------- -Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com - -- Update - handle-disable_caplock-and-compose_table-and-kbd_rate.patch, - handle-numlock-value-in-etc-sysconfig-keyboard.patch: read - /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) - otherwise empty value in /etc/sysconfig/keyboard might override - /etc/vconsole.conf values. -- Update : - 0001-journal-compress-return-early-in-uncompress_startswi.patch - 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - 0002-vconsole-setup-run-setfont-before-loadkeys.patch - 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - apply-ACL-for-nvidia-device-nodes.patch - keep-crypt-password-prompt.patch - log-target-null-instead-kmsg.patch - parse-crypttab-for-noauto-option.patch - set-and-use-default-logconsole.patch: fix all warnings in code -- Remove 0001-compress-fix-return-value.patch: not relevant to - systemd v210 code. - -------------------------------------------------------------------- -Thu Jul 24 10:07:08 UTC 2014 - werner@suse.de - -- Also change udev-generate-peristent-rule to udev-generate-persistent-rule - in file list - -------------------------------------------------------------------- -Thu Jul 24 09:00:43 UTC 2014 - rmilasan@suse.com - -- Rename (fix typo in script name): - udev-generate-peristent-rule.sh to udev-generate-persistent-rule.sh - -------------------------------------------------------------------- -Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com - -- Enable better checks in write_net_rules to skip adding duplicated - entries in the generate rules (bnc#888178). - Add 1053-better-checks-in-write_net_rules.patch - -------------------------------------------------------------------- -Wed Jul 23 09:13:43 UTC 2014 - werner@suse.de - -- Change patch set-and-use-default-logconsole.patch to avoid to - write security/authorization (private) messages to console - -------------------------------------------------------------------- -Tue Jul 22 11:50:44 UTC 2014 - werner@suse.de - -- Add patch set-and-use-default-logconsole.patch to use and set - the default logging console for both journald and kernel messages - -------------------------------------------------------------------- -Mon Jul 21 13:22:35 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-bash-completion-p-option-for-journalctl.patch - 0002-journalctl-man-allow-only-between-terms.patch - 0003-systemd-use-pager-for-test-and-help.patch - -------------------------------------------------------------------- -Mon Jul 21 12:49:00 UTC 2014 - werner@suse.de - -- Use verify scripts and add permission files for systemd logger -- Avoid useless warning about static systemd unit files -- Make pam file a config file -- Remove non-break-space from this changelog - -------------------------------------------------------------------- -Mon Jul 21 11:09:44 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-compress-fix-return-value.patch - 0002-Be-more-verbose-when-bind-or-listen-fails.patch - 0003-Add-quotes-to-warning-message.patch - 0004-systemd-return-the-first-error-from-manager_startup.patch - -------------------------------------------------------------------- -Mon Jul 21 10:42:10 UTC 2014 - werner@suse.de - -- Replace patch 0001-fix-only-discover-Xen-domU.patch with - upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch -- Replace patch 0001-detect-s390-virt.patch with upstream - patch 0001-systemd-detect-virt-detect-s390-virtualization.patch - -------------------------------------------------------------------- -Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-po-add-Ukrainian-translation.patch - 0002-man-document-yearly-and-annually-in-systemd.time-7.patch - 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -- Add patch 0001-fix-only-discover-Xen-domU.patch to fix upstream - patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch - -------------------------------------------------------------------- -Thu Jul 17 06:32:51 UTC 2014 - rmilasan@suse.com - -- Check if NAME key has a value before going thru the rule (bnc#885232). - Add 1051-check-if-NAME-has-a-value.patch - -------------------------------------------------------------------- -Wed Jul 16 16:33:12 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch - 0002-units-serial-getty-.service-use-the-default-RestartS.patch - 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - -------------------------------------------------------------------- -Tue Jul 15 12:30:31 UTC 2014 - rmilasan@suse.com - -- Only rename SRIOV-VF devices if device name start with eth (bnc#885232). - Add 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch - -------------------------------------------------------------------- -Tue Jul 15 07:39:40 UTC 2014 - werner@suse.de - -- Add patch vhangup-on-all-consoles.patch that is do a vhangup on - lines (bnc#886599) - -------------------------------------------------------------------- -Tue Jul 15 06:29:54 UTC 2014 - jlee@suse.com - -- Removed %{_libexecdir}/modules-load.d/efivars.conf because the kernel - patch of autoload efivars driver accepted by linux-efi upstream. - (bnc#881559) - https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=next&id=be756a5327fe3d4686d74d3e9b273010424e230c - -------------------------------------------------------------------- -Mon Jul 14 14:53:21 UTC 2014 - werner@suse.de - -- Update patch - 1007-physical-hotplug-cpu-and-memory.patch (bnc#869603) -- Add script systemd-remount-tmpfs (bnc#869603) as helper script - for the rule changed in patch 1007-physical-hotplug-cpu-and-memory.patch - -------------------------------------------------------------------- -Mon Jul 14 11:43:12 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-event-pull-in-sd-event.h-from-event-util.h.patch - 0002-util-fix-has-cc-check-and-add-test.patch - 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch - 0004-fileio-quote-more-shell-characters-in-envfiles.patch - -------------------------------------------------------------------- -Fri Jul 11 12:21:06 UTC 2014 - werner@suse.de - -- Only on SLES12 seccomp is available on ppc64 and s390x - -------------------------------------------------------------------- -Thu Jul 10 13:33:32 UTC 2014 - werner@suse.de - -- Port and add upstream patch - 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch - -------------------------------------------------------------------- -Wed Jul 9 13:14:02 UTC 2014 - werner@suse.de - -- Add patches - 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch - 0002-hostnamed-add-a-new-chassis-type-for-watches.patch -- Port and add upstream patches - 0001-journal-compress-return-early-in-uncompress_startswi.patch - 0002-journal-compress-improve-xz-compression-performance.patch - -------------------------------------------------------------------- -Wed Jul 9 12:41:53 UTC 2014 - meissner@suse.com - -- enable seccomp also for ppc64 and s390x - -------------------------------------------------------------------- -Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de - -- Port and add upstream patches - 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch - 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - 0003-architecture-add-string-table-entries-for-mips-le-ar.patch - 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch - 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch - 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch - 0007-service-flush-status-text-and-errno-values-each-time.patch - -------------------------------------------------------------------- -Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de - -- Add upstream patch - 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch - -------------------------------------------------------------------- -Mon Jul 7 13:06:35 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-machine-don-t-return-uninitialized-variable.patch -- Port and add upstream patch - 0002-vconsole-setup-run-setfont-before-loadkeys.patch - -------------------------------------------------------------------- -Mon Jul 7 13:04:00 UTC 2014 - rmilasan@suse.com - -- Rename - 0001-udev-net_setup_link-add-a-bit-more-logging.patch - to - 1048-udev-net_setup_link-add-a-bit-more-logging.patch - -------------------------------------------------------------------- -Fri Jul 4 10:01:07 UTC 2014 - werner@suse.de - -- Port and add upstream patches - 0001-udev-net_setup_link-add-a-bit-more-logging.patch - 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch - 0002-namespace-fix-uninitialized-memory-access.patch - -------------------------------------------------------------------- -Fri Jul 4 09:43:12 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-architecture-Add-tilegx.patch - 0002-architecture-Add-cris.patch - 0003-arch-add-crisv32-to-uname-check.patch - 0004-architecture-remove-cris-from-uname-list.patch - -------------------------------------------------------------------- -Fri Jul 4 09:32:47 UTC 2014 - werner@suse.de - -- Add upstream patches - 0006-hwdb-update.patch - 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Thu Jul 3 12:48:27 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-parse_uid-return-ENXIO-for-1-uids.patch - 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch - 0003-localed-consider-an-unset-model-as-a-wildcard.patch - 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch - 0005-bus-close-a-bus-that-failed-to-connect.patch - 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch - -------------------------------------------------------------------- -Wed Jul 2 18:06:32 UTC 2014 - rmilasan@suse.com - -- Fix duplicated rules when having layer3 interfaces (bnc#882714). - Add 1046-fix-duplicated-rules-with-layer3-interfaces.patch - -------------------------------------------------------------------- -Tue Jul 1 14:53:44 UTC 2014 - werner@suse.de - -- Require correct pam-config version overall even for scriptlets (bnc#885288) - -------------------------------------------------------------------- -Tue Jul 1 12:19:27 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch - 0002-journald-make-MaxFileSec-really-default-to-1month.patch - 0003-units-remove-RefuseManualStart-from-units-which-are-.patch - 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch - 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch - 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch - 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch - -------------------------------------------------------------------- -Tue Jul 1 09:58:04 UTC 2014 - werner@suse.de - -- Be aware that close_nointr_nofail() may fail whereas safe_close() not - -------------------------------------------------------------------- -Tue Jul 1 08:56:48 UTC 2014 - werner@suse.de - -- Add upstream patches - 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch - 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch - 1044-rules-update-qemu-hid-rules.patch - 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch - -------------------------------------------------------------------- -Fri Jun 27 12:46:12 UTC 2014 - werner@suse.de - -- Add upstream bug fix patch - 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch (bnc#882714) - -------------------------------------------------------------------- -Fri Jun 27 08:17:47 UTC 2014 - werner@suse.de - -- Update of patch 0001-detect-s390-virt.patch (bnc#880438) - -------------------------------------------------------------------- -Thu Jun 26 10:02:26 UTC 2014 - werner@suse.de - -- Shut up stupid check scripts crying for not mentioned systemd-mini-rpmlintrc - -------------------------------------------------------------------- -Thu Jun 26 09:31:19 UTC 2014 - werner@suse.de - -- Add upstream patchs - 0001-core-use-correct-format-string-for-UIDs.patch - 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch - 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - -------------------------------------------------------------------- -Thu Jun 26 06:44:09 UTC 2014 - werner@suse.de - -- Add upstream patch - 0001-units-order-network-online.target-after-network.targ.patch - to make sure that etwork-online.target follows network.target - -------------------------------------------------------------------- -Wed Jun 25 18:09:52 UTC 2014 - rmilasan@suse.com - -- rules: re-enable dev_id conditionally in persistent rules - (bnc#884403 and bnc#882714). - Add 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch - -------------------------------------------------------------------- -Wed Jun 25 17:27:55 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch - 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch - 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch - 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch - 0005-man-fix-path-in-crypttab-5.patch - -------------------------------------------------------------------- -Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de - -- Add upstream patch - 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it - fixes udevadm settle exit code which may had broken dracut scripts - (bnc#884271 comment#18) - -------------------------------------------------------------------- -Wed Jun 25 14:12:52 UTC 2014 - werner@suse.de - -- Temporary disable patch 1022 (bnc#884271 and bnc#882714). - -------------------------------------------------------------------- -Tue Jun 24 11:55:39 UTC 2014 - rmilasan@suse.com - -- Rename 0002-udev-fix-invalid-free-in-enable_name_policy.patch - to 1038-udev-fix-invalid-free-in-enable_name_policy.patch - -------------------------------------------------------------------- -Tue Jun 24 11:27:27 UTC 2014 - werner@suse.de - -- Replace patches - 0001-systemd-empty-sigmask-on-reexec.patch with - upstream 0008-Reset-signal-mask-on-re-exec-to-init.patch - ensure-sysctl-are-applied-after-modules-are-loaded.patch with - upstream 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch - getty-generator-with-serial-3270-tty.patch with - upstream 0004-getty-generator-properly-escape-instance-names.patch -- Add upstream patches - 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch - 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch - 0005-po-add-Greek-translation.patch - 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0007-po-add-German-translation.patch - 0009-core-clean-up-signal-reset-logic-when-reexec.patch - 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch - 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch - 0012-core-transaction-avoid-misleading-error-message-when.patch - -------------------------------------------------------------------- -Tue Jun 24 10:04:21 UTC 2014 - werner@suse.de - -- Invert of the boolean for locking scheme of fsck (bnc#881125) -- Remove the ghost entry /etc/hostname and require the netcfg - -------------------------------------------------------------------- -Mon Jun 23 16:39:50 UTC 2014 - arvidjaar@gmail.com - -- make sure legacy services that depend on network are started after - network is available (bnc#883565) - * 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch - * update insserv-generator.patch to translate $network into - network-online.target - -------------------------------------------------------------------- -Wed Jun 18 13:35:58 UTC 2014 - werner@suse.de - -- Add patch 0001-detect-s390-virt.patch from Thomas Blume (bnc#880438) - to detect the virtualization layers on s390x as well - -------------------------------------------------------------------- -Wed Jun 18 12:58:42 UTC 2014 - werner@suse.de - -- Do not generate synthesize change for cd/dvd (bnc#882714, comment #51) - add patch 1037-udev-exclude-cd-dvd-from-block-device.patch from - Roberts suggestion as well as readd - 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - -------------------------------------------------------------------- -Tue Jun 17 14:21:56 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-fix-invalid-free-in-killall.patch - 0002-udev-fix-invalid-free-in-enable_name_policy.patch - 0003-install-fix-invalid-free-in-unit_file_mask.patch - -------------------------------------------------------------------- -Tue Jun 17 11:43:23 UTC 2014 - rmilasan@suse.com - -- rules: disable usage of dev_id in persistent rules (bnc#882714). - add: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch -- Disable patch (bnc#882714). - 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - -------------------------------------------------------------------- -Thu Jun 12 12:14:11 UTC 2014 - werner@suse.de - -- Add patch - 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch - from Hannes Reinecke to avoid a race condition between variable - 'SYSTEMD_READY=0' and 'systemd' tag within udev rules (bnc#881942) - -------------------------------------------------------------------- -Thu Jun 12 09:40:54 UTC 2014 - werner@suse.de - -- Add workaround for bnc#882393 by adding the systemd update utmp - runlevel service to the wanted unit of e.g. the graphical target -- Add some later on created files to our file list - -------------------------------------------------------------------- -Thu Jun 12 03:33:01 UTC 2014 - jlee@suse.com - -- Generate %{_libexecdir}/modules-load.d/efivars.conf so we load efivars - module at boot time not from udev (bnc#881559). - -------------------------------------------------------------------- -Wed Jun 11 21:59:29 UTC 2014 - crrodriguez@opensuse.org - -- Do not build EFI support code in architectures on which - the kernel does not support CONFIG_EFI, it won't work. - (ia64 also supports it, but that's dead so is not included) - -------------------------------------------------------------------- -Wed Jun 11 14:09:30 UTC 2014 - werner@suse.de - -- Add patch tmpfiles-do-not-clean-for-mandb-index-files.patch - there is no need to clean out all 30 days the index data base - files nor the cachedir tags of mandb. Those files are used - for whatis(1) as well as for apropos(1). - -------------------------------------------------------------------- -Wed Jun 11 13:31:53 UTC 2014 - werner@suse.de - -- Do not override predictable names for openSUSE - -------------------------------------------------------------------- -Wed Jun 11 11:03:45 UTC 2014 - werner@suse.de - -- Remove systemd-detect-xendom.patch as it becomes obsolete with - upstream patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -- Add upstream patches - 0001-umount-modernizations.patch - 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch - 0003-core-allow-transient-mount-units.patch - 0004-systemd-detect-virt-only-discover-Xen-domU.patch - 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch - 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch - -------------------------------------------------------------------- -Tue Jun 10 19:58:56 UTC 2014 - rmilasan@suse.com - -- Add upstream patches - 1033-udev-really-exclude-device-mapper-from-block-device.patch - 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch - -------------------------------------------------------------------- -Tue Jun 10 15:29:49 UTC 2014 - werner@suse.de - -- Change detection of new locking scheme of fsck - -------------------------------------------------------------------- -Tue Jun 10 11:11:55 UTC 2014 - werner@suse.de - -- Change 1021-udev-re-add-persistent-net-rules.patch to use persistent - rules as a default on SLES-12 and predictable rules as a default - otherwise -- Add cflags shell function to check possible flags for the compiler - as well as for the linker - -------------------------------------------------------------------- -Mon Jun 9 08:38:33 UTC 2014 - rmilasan@suse.com - -- Add upstream patches - 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch - 1026-udevd-inotify-modernizations.patch - 1027-udev-synthesize-change-events-for-partitions-when-to.patch - 1028-udev-link-config-fix-mem-leak.patch - 1029-udev-try-first-re-reading-the-partition-table.patch - 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch - 1031-udev-make-sure-we-always-get-change-for-the-disk.patch - 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch - -------------------------------------------------------------------- -Fri Jun 6 10:24:19 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-sd-event-restore-correct-timeout-behaviour.patch - 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch - -------------------------------------------------------------------- -Thu Jun 5 13:29:20 UTC 2014 - werner@suse.de - -- Add upstream patch 0001-hwdb-fix-case-sensitive-match.patch - -------------------------------------------------------------------- -Thu Jun 5 13:23:24 UTC 2014 - werner@suse.de - -- Add dynamic detection of util-linux version to be able to - disable the fsck option -l for version less than 2.25.0 - -------------------------------------------------------------------- -Thu Jun 5 08:06:02 UTC 2014 - werner@suse.de - -- Add changes from Cristian Rodríguez: - * The patches - delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch and - ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch - indeed mention unit files which do not exist anymore. -- Make sure that systemd-ask-password-wall.service has a tty as - it is not sure that a tty1 exists -- Avoid broken firmware loading on newer distributions as 13.1 - -------------------------------------------------------------------- -Thu Jun 5 07:24:35 UTC 2014 - werner@suse.de - -- Correct version check for the tcp-devel drop -- Use correct permissions for /var/log/journal -- Use ACLs for /var/log/journal as described in man:systemd-journald.service(8) - -------------------------------------------------------------------- -Thu Jun 5 02:33:48 UTC 2014 - crrodriguez@opensuse.org - -- Correct the libseccomp distribution version test must be >= 13.1 -- In order to use unit directive AppArmorProfile= libapparmor-devel - must be present in buildRequires. - -------------------------------------------------------------------- -Tue Jun 3 16:31:44 UTC 2014 - sndirsch@suse.com - -- apply-ACL-for-nvidia-uvm-device-node.patch: set ACL on nvidia-uvm - device (bnc#879767). - -------------------------------------------------------------------- -Tue Jun 3 15:56:01 UTC 2014 - werner@suse.de - -- Add changes from Cristian Rodríguez: - * fix keep-crypt-password-prompt.patch which floods the system - logs with bogus opendir failures, still the wrong thing to do however. - * Use %find_lang to collect locale files - * systemd-no-libattr.patch: systemd does not require libattr - but just sys/xattr.h, therefore drop the dependency. - (from upstream) - * Again, drop tcp-devel from buildRequires, this time it is not a - SUSE specific feature removal, tcpd supportdisappeared in systemd - 212 and we shouldn't keep it around. -- Add patch 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch - that is rename systemd-no-libattr.patch to git format -- Drop tcp-devel only for *next* openSUSE and not for SLES-12 nor - for openSUSE 13.1 - -------------------------------------------------------------------- -Tue Jun 3 14:23:40 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-virt-rework-container-detection-logic.patch - 0002-fsck-include-device-name-in-the-message-about-missin.patch - 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch - 0004-util-ignore_file-should-not-allow-files-ending-with.patch - 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch -- Add upstream patches to update keyboard data base - 0007-keyboard-add-Plantronics-.Audio-mute-button.patch -- Add upstream patches for udev - 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch - 1024-udev-always-close-lock-file-descriptor.patch - -------------------------------------------------------------------- -Tue Jun 3 12:55:53 UTC 2014 - rmilasan@suse.com - -- Fix enabling predictable rules when using net.ifnames=1. - update: 1021-udev-re-add-persistent-net-rules.patch - -------------------------------------------------------------------- -Fri May 30 07:35:07 UTC 2014 - rmilasan@suse.com - -- Re-add persistent rules as a default and make predictable rules as - fallback (bnc#880732). - add: 1021-udev-re-add-persistent-net-rules.patch -- udev: remove seqnum API and all assumptions about seqnums - add: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - -------------------------------------------------------------------- -Tue May 27 07:23:47 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-Do-not-unescape-unit-names-in-Install-section.patch - 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - -------------------------------------------------------------------- -Mon May 26 16:34:10 UTC 2014 - werner@suse.de - -- Add upstream patch - 1020-udev-keyboard-also-hook-into-change-events.patch - -------------------------------------------------------------------- -Mon May 26 15:25:28 UTC 2014 - werner@suse.de - -- Add upstream patches to update keyboard data base - 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch - 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -- Add upstream patches - 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch - 0002-nspawn-restore-journal-directory-is-empty-check.patch - 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - 0004-socket-properly-handle-if-our-service-vanished-durin.patch - -------------------------------------------------------------------- -Wed May 21 19:23:32 UTC 2014 - coolo@suse.com - -- fix file list of systemd.pc - -------------------------------------------------------------------- -Wed May 21 13:24:13 UTC 2014 - werner@suse.de - -- Add a workaround for old distributions like 13.1 to avoid - deadlocks due NFS shares stopped after network - -------------------------------------------------------------------- -Wed May 21 10:23:14 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-journal-cleanup-up-error-handling-in-update_catalog.patch - 0002-journal-properly-detect-language-specified-in-line.patch - 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch - -------------------------------------------------------------------- -Wed May 21 10:14:32 UTC 2014 - werner@suse.de - -- Add upstream patches to update usb and pci company identifiers - 0001-hwdb-update.patch - 0002-hwdb-update.patch - 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch - 0004-hwdb-update.patch - 0005-hwdb-update.patch - -------------------------------------------------------------------- -Wed May 21 08:33:34 UTC 2014 - werner@suse.de - -- Move systemd.pc and udev.pc to their main packages (bnc#876587) - -------------------------------------------------------------------- -Tue May 20 12:13:05 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-conf-parser-silently-ignore-sections-starting-with-X.patch - 0002-man-note-that-entire-sections-can-now-be-ignored.patch - 0004-machined-make-sure-GetMachineAddresses-is-available-.patch - 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch - 0006-login-add-mir-to-the-list-of-session-types.patch - 0007-logind-fix-Display-property-of-user-objects.patch - -------------------------------------------------------------------- -Tue May 20 11:31:46 UTC 2014 - werner@suse.de - -- Add upstream patches to update BluTooth company identifiers - 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch - 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch - -------------------------------------------------------------------- -Tue May 20 11:03:54 UTC 2014 - werner@suse.de - -- Add upstream patches to allow processes to serialize block device - events, also do execute the RUN tag if rename of a network device - fails: - 1016-udev-serialize-synchronize-block-device-event-handli.patch - 1017-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch - 1018-udev-avoid-use-of-uninitialized-err.patch -- Rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch - to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch - -------------------------------------------------------------------- -Mon May 19 13:21:18 UTC 2014 - werner@suse.de - -- Add upstream patches mainly for better lid handling (bnc#878525 - and bnc#868019) - 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch - 0002-logind-fix-printf-format.patch - 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch - 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch - 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch - 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch - 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch - 0008-man-update-journald-rate-limit-defaults.patch - 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch - 0010-logind-allow-suspending-if-there-are-no-displays.patch - -------------------------------------------------------------------- -Fri May 16 12:00:12 UTC 2014 - werner@suse.de - -- Make baselibs.conf aware to use the appropiate %post and %postun - scriptlets which includes pam-config (bnc#877674) - -------------------------------------------------------------------- -Fri May 16 11:47:06 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-core-close-socket-fds-asynchronously.patch - 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch - 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - -------------------------------------------------------------------- -Wed May 14 07:37:08 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch - 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch - to avoid that in pam session unwanted file descriptors are inherited - -------------------------------------------------------------------- -Tue May 13 08:28:05 UTC 2014 - werner@suse.de - -- Add patch log-target-null-instead-kmsg.patch from Thomas Blume - to enable the kernel developers to see a clean kmsg ring buffer - without any systemd/udev messages included (bnc#877021) - -------------------------------------------------------------------- -Mon May 12 13:35:25 UTC 2014 - werner@suse.de - -- Add upstream patches for backlight - 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch - 0002-backlight-do-nothing-if-max_brightness-is-0.patch - 0003-backlight-unify-error-messages.patch - 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch - 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - -------------------------------------------------------------------- -Mon May 12 13:28:20 UTC 2014 - werner@suse.de - -- Add upstream patches - 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch - 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch - 0003-analyze-fix-plot-with-bad-y-size.patch - 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch - 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - -------------------------------------------------------------------- -Mon May 12 12:25:13 UTC 2014 - rmilasan@suse.com - -- Drop upstream-net_id-changes.patch and replace them with the correct - patches from upstream and their commits: - add: 1014-udev-update-net_id-comments.patch - add: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - -------------------------------------------------------------------- -Wed May 7 10:42:27 UTC 2014 - werner@suse.de - -- Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume - to handle the option 'noauto' in /etc/crypttab (bnc#742774) - -------------------------------------------------------------------- -Wed May 7 09:23:01 UTC 2014 - werner@suse.de - -- Modify and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to have the correct terminal type used with agetty -- Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch - to allow users to access systemd user journal (bnc#876694) - -------------------------------------------------------------------- -Mon May 5 14:02:16 UTC 2014 - werner@suse.de - -- Port upstream patch - 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch - back to 210 -- Add patch keep-crypt-password-prompt.patch from Thomas Blume - to fix bnc#875502 - fails to boot when swap space is encrypted -- Port upstream patch set for net_id back in patch - upstream-net_id-changes.patch - -------------------------------------------------------------------- -Fri May 2 10:12:26 UTC 2014 - werner@suse.de - -- Add patch shut-up-annoying-assertion-monotonic-clock-message.patch - to avoid annyoing messages on failing dual_timestamp_is_set in the - kernel's message ring buffer - -------------------------------------------------------------------- -Wed Apr 30 12:14:32 UTC 2014 - werner@suse.de - -- Update udev-generate-peristent-rule.sh from latest git - -------------------------------------------------------------------- -Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de - -- Modify and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to avoid also ANSI escape sequences for busy jobs on s390 - -------------------------------------------------------------------- -Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-bash-completion-fix-__get_startable_units.patch - 0002-sysctl-replaces-some-slashes-with-dots.patch - 0003-delta-do-not-use-unicode-chars-in-C-locale.patch - 0004-implement-a-union-to-pad-out-file_handle.patch -- Add patch respect-nfs-bg-option.patch from Thomas Blume: - System fails to boot if nfs mounts get added to fstab (bnc#874665) - -------------------------------------------------------------------- -Wed Apr 23 11:46:41 UTC 2014 - oneukum@suse.com - -- Do not use runtime PM for some IBM consoles (bnc#868931) - 1013-no-runtime-PM-for-IBM-consoles.patch - -------------------------------------------------------------------- -Thu Apr 17 13:56:31 UTC 2014 - werner@suse.de - -- Extend avoid-divide-by-zero-sigtrap.patch to make the crash - handler know about SIGTRAP and SIGSYS - -------------------------------------------------------------------- -Thu Apr 17 13:37:06 UTC 2014 - werner@suse.de - -- Add avoid-divide-by-zero-sigtrap.patch which fixes bnc#867663 - that is a divide by zero on a jobless system - -------------------------------------------------------------------- -Wed Apr 16 10:17:13 UTC 2014 - werner@suse.de - -- Use latest regenerate-initrd rpm macros (fate#313506) -- Add rescue-emergency-target-conflicts.patch to avoid that - emergency and rescue sulogin are fighting on console - -------------------------------------------------------------------- -Tue Apr 15 12:19:24 UTC 2014 - werner@suse.de - -- Modify systemd-sleep-grub to let hybrid-sleep.target work even - on XEN, changes from Thomas Blume (bnc#873432) - -------------------------------------------------------------------- -Mon Apr 14 13:55:36 UTC 2014 - werner@suse.de - -- Add backported upstream patch - 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -- Add patch systemd-detect-xendom.patch from Thomas Blume - to be able to detect XEN dom0 as well as domU -- systemd conflicts with sysvinit, ven if the package systemd-sysvinit - does already conflict with sysvinit-init (bnc#873444) - -------------------------------------------------------------------- -Thu Apr 10 10:17:47 UTC 2014 - werner@suse.de - -- Add two patches from hare@suse.com - 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch - 1012-Skip-persistent-device-link-creation-on-multipath-de.patch - to solve bnc#872929 - -------------------------------------------------------------------- -Wed Apr 9 08:53:21 UTC 2014 - rmilasan@suse.com - -- Increase result size for programs stdout (bnc#867840). - add: 1010-udev-increase-result-size-for-programs.patch -- Update udev-generate-peristent-rule.sh to the latest version. -- Clean-up spec file, re-arange patch to suit the setup, all udev - patches start with 1XXX-*.{patch,diff}. -- Rename: 0013-cdrom_id-use-the-old-MMC-fallback.patch to - 1009-cdrom_id-use-the-old-MMC-fallback.patch -- Rename: 1009-make-xsltproc-use-correct-ROFF-links.patch to - 0009-make-xsltproc-use-correct-ROFF-links.patch -- Rename: 1010-do-not-install-sulogin-unit-with-poweroff.patch to - 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Rename: 1014-journald-with-journaling-FS.patch to - 0014-journald-with-journaling-FS.patch -- Rename: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch to - 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch -- Rename: 1019-make-completion-smart-to-be-able-to-redirect.patch to - 0019-make-completion-smart-to-be-able-to-redirect.patch -- Rename: 1022-systemd-tmpfiles-ownerkeep.patch to - 0022-systemd-tmpfiles-ownerkeep.patch - -------------------------------------------------------------------- -Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de - -- Add patch portmap-wants-rpcbind-socket.patch to make sure that - rpcbind socket as well as service is up with the target -- Add or port upstream bugfix patches: - 0001-journal-fix-export-of-messages-containing-newlines.patch - 0002-systemctl-update-NAME-to-PATTERN-in-help.patch - 0003-tty-ask-password-agent-return-negative-errno.patch - 0004-systemd-python-use-.hex-instead-of-.get_hex.patch - 0005-systemd-python-fix-failing-assert.patch - -------------------------------------------------------------------- -Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch - 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch - 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch - 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch - 0005-sd-daemon-fix-incorrect-variable-access.patch - 0006-sd-event-initialization-perturbation-value-right-bef.patch - 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch - 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - 0009-ask-password-when-the-user-types-a-overly-long-passw.patch -- Modify patch - 1019-make-completion-smart-to-be-able-to-redirect.patch - to work together with - 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - -------------------------------------------------------------------- -Fri Mar 28 08:10:13 UTC 2014 - werner@suse.de - -- Use Robert's revised 1006-udev-always-rename-network.patch - -------------------------------------------------------------------- -Tue Mar 25 17:28:18 UTC 2014 - werner@suse.de - -- Readd patch Forward-suspend-hibernate-calls-to-pm-utils.patch - older code base as 13.1 only -- Add patch avoid-random-hangs-on-timeouts-due-lost-cwd.patch - to be able to terminate the user manager even if cwd of the - user is gone - -------------------------------------------------------------------- -Tue Mar 25 13:08:56 UTC 2014 - thomas.blume@suse.com - -- add prepare-suspend-to-disk.patch - enable suspend conditions check and preparation for systemd-sleep - (fate#316824, bnc#856389, bnc#856392) -- remove Forward-suspend-hibernate-calls-to-pm-utils.patch since it is obsolete - (bnc#856392#c20) -- add boot-local-start.patch - fix startup for /etc/init.d/boot.local (bnc#869142) - -------------------------------------------------------------------- -Mon Mar 24 11:19:38 UTC 2014 - coolo@suse.com - -- also autoreconf in systemd-mini to simplify spec file logic - and fix build in staging:gcc49 - (obsoleting 0002-make-209-working-on-older-dist.patch) - -------------------------------------------------------------------- -Wed Mar 19 13:21:37 UTC 2014 - werner@suse.de - -- Be sure that the refreshed manual pages are installed - -------------------------------------------------------------------- -Wed Mar 19 12:09:31 UTC 2014 - werner@suse.de - -- Add patch systemctl-set-default-target.patch which explain how - to override the default.target by using --force (bnc#868439) - -------------------------------------------------------------------- -Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de - -- Add Robert's udev-generate-peristent-rule shell script to - udev's tool library -- Add or port upstream bugfix patches: - 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch - 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch - 0006-Do-not-return-1-EINVAL-on-allocation-error.patch - 0007-networkd-fix-typo.patch - 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch - 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch - 0012-journald-remove-stray-reset-of-error-return-value.patch - 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch - -------------------------------------------------------------------- -Fri Mar 14 14:24:56 UTC 2014 - werner@suse.de - -- Add patch getty-generator-with-serial-3270-tty.patch to avoid - harmless error messages on not existing getty@3270 files - -------------------------------------------------------------------- -Fri Mar 14 11:07:29 UTC 2014 - werner@suse.de - -- Replace systemd-big-endian-reply-matching.patch with upstream - 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch - to solve broken systemd communication with and over dbus (bnc#866732) - -------------------------------------------------------------------- -Fri Mar 14 08:30:57 UTC 2014 - werner@suse.de - -- Readd patch 1008-add-msft-compability-rules.patch for - older code base as 13.1 -- Modify pre_checkin.sh to throw an error if a patch will be - applied which modifies one of Makefile.am, Makefile.in, or - configiure.ac as this breaks bootstrapping -- Add second version of make-209-working-on-older-dist.patch - to be able to apply for bootstrapping version - -------------------------------------------------------------------- -Thu Mar 13 17:35:11 UTC 2014 - schwab@linux-m68k.org - -- Don't require non-existing binutils-gold - -------------------------------------------------------------------- -Thu Mar 13 15:43:19 UTC 2014 - werner@suse.de - -- Avoid file conflict between udev and systemd (bnc#868230) - -------------------------------------------------------------------- -Wed Mar 12 16:52:09 UTC 2014 - werner@suse.de - -- Modify patch - module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - to ignore if /etc/sysconfig/kernel does not exist (bnc#865834) - -------------------------------------------------------------------- -Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de - -- Add patch systemd-big-endian-reply-matching.patch - make sure that systemd can talk with dbus-daemon even on big - endian systems (bnc#866732) - -------------------------------------------------------------------- -Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com - -- Due to previous reason, resurrect systemd-dbus-system-bus-address.patch -- Removed pkgconfig(dbus-1) BuildRequires - with 209 and newer, itis only - needed for quering default DBus directories, which we nowpass to configure. - This also unbreaks libdbus <-> systemd-miniBuild Cycle - -------------------------------------------------------------------- -Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch - 0002-manager-flush-memory-stream-before-using-the-buffer.patch - 0003-busname-don-t-drop-service-from-the-result-string.patch - 0004-fix-off-by-one-error-in-array-index-assertion.patch - 0005-logind-fix-policykit-checks.patch - 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch - 0007-dbus-suppress-duplicate-and-misleading-messages.patch - 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch - -------------------------------------------------------------------- -Tue Mar 11 07:47:55 UTC 2014 - werner@suse.de - -- Make compeletion file parser work (bnc#867664) - -------------------------------------------------------------------- -Fri Mar 7 14:50:39 CET 2014 - hare@suse.de - -- Integrate powerd handling in initctl service - + Remove 1016-support-powerfail-with-powerstatus.patch - + Remove systemd-powerfail - + Add systemd-powerd-initctl-support.patch -- Remove 61-msft.rules; superseded by sg3_utils (bnc#866933) -- Persistent by-path links for ATA devices (FATE#317063) - + Update 1001-re-enable-by_path-links-for-ata-devices.patch - -------------------------------------------------------------------- -Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de - -- Add or port upstream bugfix patches: - 0001-Fix-systemd-stdio-bridge-symlink.patch - 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch - 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch - 0004-man-document-missing-options-of-systemd-run.patch - 0005-systemd-run-add-some-extra-safety-checks.patch - 0006-journal-assume-that-next-entry-is-after-previous-ent.patch - 0007-journal-forget-file-after-encountering-an-error.patch - 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch - 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch - 0010-man-update-link-to-LSB.patch - 0011-man-systemd-bootchart-fix-spacing-in-command.patch - 0012-man-add-missing-comma.patch - 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - -------------------------------------------------------------------- -Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de - -- Add linker scripts as place holder of the old systemd shared - libraries now all included in libsystemd.so (bnc#867128) - -------------------------------------------------------------------- -Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de - -- Make patch 1006-udev-always-rename-network.patch work again - and add it again. - -------------------------------------------------------------------- -Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com - -- address missing owner functionality in systemd-tmpfiles (fate#314974) - 1022-systemd-tmpfiles-ownerkeep.patch - -------------------------------------------------------------------- -Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de - -- Generate the bash completion files on the fly for the case of - not having the package bash-completion around -- Add or port upstream bugfix patches: - 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - 0002-cdrom_id-use-the-old-MMC-fallback.patch - 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch - 0004-logs-show-fix-corrupt-output-with-empty-messages.patch - 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - 0008-README-document-that-var-run-must-be-a-symlink-run.patch - 0010-Replace-var-run-with-run-in-remaining-places.patch - 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch - 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch - 0014-login-fix-pos-array-allocation.patch - -------------------------------------------------------------------- -Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de - -- Update to Release v210 - + systemd will now relabel /dev after loading the SMACK policy - according to SMACK rules. - + A new unit file option AppArmoreProfile= has been added to - set the AppArmor profile for the processes of a unit. - + A new condition check ConditionArchitecture= has been added - to conditionalize units based on the system architecture, as - reported by uname()'s "machine" field. - + systemd-networkd now supports matching on the system - virtualization, architecture, kernel command line, host name - and machine ID. - + logind is now a lot more aggressive when suspending the - machine due to a closed laptop lid. - + logind will now watch SW_DOCK switches and inhibit reaction - to the lid switch if it is pressed. - + nspawn will now make use of the devices cgroup controller by - default, and only permit creation of and access to the usual - API device nodes like /dev/null or /dev/random, as well as - access to (but not creation of) the pty devices. - + systemd will now understand the usual M, K, G, T suffixes - according to SI conventions (i.e. to the base 1000) when - referring to throughput and hardware metrics. - + The DeviceAllow= setting in unit files now supports a syntax - to whitelist an entire group of devices node majors at once, - based on the /proc/devices listing. For example, with the - string "char-pts" it is now possible to whitelist all - current and future pseudo-TTYs at once. - + sd-event learned a new "post" event source. Event sources of - this type are triggered by the dispatching of any event - source of a type that is not "post". This is useful for - implementing clean-up and check event sources that are - triggered by other work being done in the program. - + The compatibility libraries for libsystemd-journal.so, - libsystem-id128.so, libsystemd-login.so and - libsystemd-daemon.so do not make use of IFUNC - anymore. -- Dropped systemd patches as those are fixed upstream: - * 0001-units-serial-getty-.service-add-Install-section.patch - * 0001-shared-architecture.h-fix-preprocessor-directives.patch - * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch - * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patchc - * 0001-make-tests-with-libseccomp-work.patch - * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch - * 0001-units-serial-getty-.service-add-Install-section.patch -- Dropped patches as those do not work anymore - * 1006-udev-always-rename-network.patch -- Renamed systemd patches as seen from git log: - * 0001-cdrom_id-use-the-old-MMC-fallback.patch - become 0002-cdrom_id-use-the-old-MMC-fallback.patch - * 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch - become 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch - * 0001-logs-show-fix-corrupt-output-with-empty-messages.patch - become 0004-logs-show-fix-corrupt-output-with-empty-messages.patch -- Add several upstream bugfix patches which are missed: - * 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch - * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch - * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch - * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch - * 0001-shared-architecture.h-fix-preprocessor-directives.patch - * 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - * 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - * 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - * 0008-README-document-that-var-run-must-be-a-symlink-run.patch - * 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch - * 0010-Replace-var-run-with-run-in-remaining-places.patch - * 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - * 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - * 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch - * 0014-login-fix-pos-array-allocation.patch -- Modified patches to make is build - * 0001-add-network-device-after-NFS-mount-units.patch -- Reenable libseccomp for the architecture for which libseccomp exists - -------------------------------------------------------------------- -Sun Mar 2 15:51:24 CET 2014 - ro@suse.de - -- always install compat pkgconfig files, regardless if - compat libs is enabled or not - -------------------------------------------------------------------- -Sun Mar 2 14:47:23 CET 2014 - ro@suse.de - -- disable use of libseccomp for sle12, library has not been ported - to most architectures -- do not use binutils-gold on s390/s390x, does not exist there -- fix exclude statements for bootstrap case - -------------------------------------------------------------------- -Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de - -- Add upstream patches - + 0001-cdrom_id-use-the-old-MMC-fallback.patch - + 0001-logs-show-fix-corrupt-output-with-empty-messages.patch - + 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch - -------------------------------------------------------------------- -Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de - -- Add patch - 0001-systemd-empty-sigmask-on-reexec.patch - which corrects sigmaks for reexec in initrd (bnc#864904) - -------------------------------------------------------------------- -Fri Feb 28 17:38:06 UTC 2014 - werner@suse.de - -- Add patch - 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - to avoid error on not existing file /proc/self/loginuid - -------------------------------------------------------------------- -Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de - -- Make patch - 0001-make-209-working-on-older-dist.patch - more smart that is make configure script les restrictive -- Make patch - apply-ACL-for-nvidia-device-nodes.patch - apply to v209 - -------------------------------------------------------------------- -Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de - -- Update to Release v209 on the base of the work of Stefan Brüns - from declined submit request 223602: - + A new tool "systemd-socket-proxyd" has been added - + Add a new tool to save/restore rfkill state on - shutdown/boot. - + Save/restore state of keyboard backlights in addition to - display backlights on shutdown/boot. - + udev learned a new SECLABEL{} construct to label device - nodes with a specific security label when they appear. For - now, only SECLABEL{selinux} is supported, but the syntax is - prepared for additional security frameworks. - + When the User= switch is used in a unit file, also - initialize $SHELL= based on the user database entry. - + systemd no longer depends on libdbus. All communication is - now done with sd-bus, systemd's low-level bus library - implementation. - + sd-bus: add a light-weight vtable implementation that allows - defining objects on the bus with a simple static const - vtable array of its methods, signals and properties. - + systemd will not generate or install static dbus - introspection data anymore to /usr/share/dbus-1/interfaces, - as the precise format of these files is unclear, and - nothing makes use of it. - + A proxy daemon is now provided to proxy clients connecting - via classic D-Bus AF_UNIX sockets to kdbus, to provide full - compatibility with classic D-Bus. - + A bus driver implementation has been added that supports the - classic D-Bus bus driver calls on kdbus, also for - compatibility purposes. - + A new API "sd-event.h" has been added that implements a - minimal event loop API built around epoll. - + A new API "sd-rntl.h" has been added that provides an API - around the route netlink interface of the kernel, similar in - style to "sd-bus.h". - + A new API "sd-dhcp-client.h" has been added that provides a - small DHCPv4 client-side implementation. This is used by - "systemd-networkd". - + There is a new kernel command line option - "systemd.restore_state=0|1". When set to "0", none of the - systemd tools will restore saved runtime state to hardware - devices. More specifically, the rfkill and backlight states - are not restored. - + The FsckPassNo= compatibility option in mount/service units - has been removed. The fstab generator will now add the - necessary dependencies automatically, and does not require - PID1's support for that anymore. - + journalctl gained a new switch, --list-boots, that lists - recent boots with their times and boot IDs. - + The various tools like systemctl, loginctl, timedatectl, - busctl, systemd-run, ... have gained a new switch "-M" to - connect to a specific, local OS container (as direct - connection, without requiring SSH). - + systemd-run and systemd-analyze also gained support for "-H" - to connect to remote hosts via SSH. This is particularly - useful for systemd-run because it enables queuing of jobs - onto remote systems. - + machinectl gained a new command "login" to open a getty - login in any local container. This works with any container - that is registered with machined (such as those created by - libvirt-lxc or nspawn), and which runs systemd inside. - + machinectl gained a new "reboot" command that may be used to - trigger a reboot on a specific container that is registered - with machined. This works on any container that runs an init - system of some kind. - + systemctl gained a new "list-timers" command to print a nice - listing of installed timer units with the times they elapse - next. - + Alternative reboot() parameters may now be specified on the - "systemctl reboot" command line and are passed to the - reboot() system call. - + systemctl gained a new --job-mode= switch to configure the - mode to queue a job with. This is a more generic version of - --fail, --irreversible, and --ignore-dependencies, which are - still available but not advertised anymore. - + /etc/systemd/system.conf gained new settings to configure - various default timeouts of units, as well as the default - start limit interval and burst. These may still be overridden - within each Unit. - + PID1 will now export on the bus profile data of the security - policy upload process (such as the SELinux policy upload to - the kernel). - + journald: when forwarding logs to the console, include - timestamps (following the setting in - /sys/module/printk/parameters/time). - + OnCalendar= in timer units now understands the special - strings "yearly" and "annually". (Both are equivalent) - + The accuracy of timer units is now configurable with the new - AccuracySec= setting. It defaults to 1min. - + A new dependency type JoinsNamespaceOf= has been added that - allows running two services within the same /tmp and network - namespace, if PrivateNetwork= or PrivateTmp= are used. - + A new command "cat" has been added to systemctl. It outputs - the original unit file of a unit, and concatenates the - contents of additional "drop-in" unit file snippets, so that - the full configuration is shown. - + systemctl now supports globbing on the various "list-xyz" - commands, like "list-units" or "list-sockets", as well as on - those commands which take multiple unit names. - + journalctl's --unit= switch gained support for globbing. - + All systemd daemons now make use of the watchdog logic so - that systemd automatically notices when they hang. - + If the $container_ttys environment variable is set, - getty-generator will automatically spawn a getty for each - listed tty. This is useful for container managers to request - login gettys to be spawned on as many ttys as needed. - + %h, %s, %U specifier support is not available anymore when - used in unit files for PID 1. This is because NSS calls are - not safe from PID 1. They stay available for --user - instances of systemd, and as special case for the root user. - + loginctl gained a new "--no-legend" switch to turn off output - of the legend text. - + The "sd-login.h" API gained three new calls: - sd_session_is_remote(), sd_session_get_remote_user(), - sd_session_get_remote_host() to query information about - remote sessions. - + The udev hardware database now also carries vendor/product - information of SDIO devices. - + The "sd-daemon.h" API gained a new sd_watchdog_enabled() to - determine whether watchdog notifications are requested by - the system manager. - + Socket-activated per-connection services now include a - short description of the connection parameters in the - description. - + tmpfiles gained a new "--boot" option. When this is not used, - only lines where the command character is not suffixed with - "!" are executed. When this option is specified, those - options are executed too. - + systemctl gained a new "import-environment" command which - uploads the caller's environment (or parts thereof) into the - service manager so that it is inherited by services started - by the manager. This is useful to upload variables like - $DISPLAY into the user service manager. - + A new PrivateDevices= switch has been added to service units - which allows running a service with a namespaced /dev - directory that does not contain any device nodes for - physical devices. More specifically, it only includes devices - such as /dev/null, /dev/urandom, and /dev/zero which are API - entry points. - + logind has been extended to support behaviour like VT - switching on seats that do not support a VT. This makes - multi-session available on seats that are not the first seat - (seat0), and on systems where kernel support for VTs has - been disabled at compile-time. - + If a process holds a delay lock for system sleep or shutdown - and fails to release it in time, we will now log its - identity. This makes it easier to identify processes that - cause slow suspends or power-offs. - + When parsing /etc/crypttab, support for a new key-slot= - option as supported by Debian is added. It allows indicating - which LUKS slot to use on disk, speeding up key loading. - + The sd_journald_sendv() API call has been checked and - officially declared to be async-signal-safe so that it may - be invoked from signal handlers for logging purposes. - + Boot-time status output is now enabled automatically after a - short timeout if boot does not progress, in order to give - the user an indication what she or he is waiting for. - + The boot-time output has been improved to show how much time - remains until jobs expire. - + The KillMode= switch in service units gained a new possible - value "mixed". If set, and the unit is shut down, then the - initial SIGTERM signal is sent only to the main daemon - process, while the following SIGKILL signal is sent to - all remaining processes of the service. - + logind will now also track a "Desktop" identifier for each - session which encodes the desktop environment of it. This is - useful for desktop environments that want to identify - multiple running sessions of itself easily. - + A new SELinuxContext= setting for service units has been - added that allows setting a specific SELinux execution - context for a service. - + Most systemd client tools will now honour $SYSTEMD_LESS for - settings of the "less" pager. - + systemd's "seccomp" hook-up has been changed to make use of - the libseccomp library instead of using its own - implementation. This has benefits for portability among - other things. -- Dropped systemd patches as those are fixed upstream: - * 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch - * 0002-fix-lingering-references-to-var-lib-backlight-random.patch - * 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch - * 0004-systemctl-fix-name-mangling-for-sysv-units.patch - * 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch - * 0006-journald-add-missing-error-check.patch - * 0007-bus-fix-potentially-uninitialized-memory-access.patch - * 0008-dbus-fix-return-value-of-dispatch_rqueue.patch - * 0009-modules-load-fix-error-handling.patch - * 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch - * 0011-strv-don-t-access-potentially-NULL-string-arrays.patch - * 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch - * 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch - * 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch - * 0001-gpt-auto-generator-exit-immediately-if-in-container.patch - * 0001-manager-when-verifying-whether-clients-may-change-en.patch - * 0001-logind-fix-bus-introspection-data-for-TakeControl.patch - * 0001-mount-check-for-NULL-before-reading-pm-what.patch - * 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch - * 0001-systemd-serialize-deserialize-forbid_restart-value.patch - * 0001-core-unify-the-way-we-denote-serialization-attribute.patch - * 0001-journald-fix-minor-memory-leak.patch - * 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch - * 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch - * 0001-login-fix-invalid-free-in-sd_session_get_vt.patch - * 0001-login-make-sd_session_get_vt-actually-work.patch - * 0001-Never-call-qsort-on-potentially-NULL-arrays.patch - * 0001-dbus-common-avoid-leak-in-error-path.patch - * 0001-drop-ins-check-return-value.patch - * 0001-shared-util-Fix-glob_extend-argument.patch - * 0001-Fix-bad-assert-in-show_pid_array.patch - * 0001-analyze-set-white-background.patch - * 0001-analyze-set-text-on-side-with-most-space.patch - * analyze-fix-crash-in-command-line-parsing.patch - * 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch - * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch - * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch - * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch - * U_logind_revert_lazy_session_activation_on_non_vt_seats.patch - * build-sys-make-multi-seat-x-optional.patch - * 1017-skip-native-unit-handling-if-sysv-already-handled.patch - * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch - * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch - * 0031-man-document-the-b-special-boot-option.patch - * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch - * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch - * 0035-activate-mention-E-in-the-help-text.patch - * 0036-activate-fix-crash-when-s-is-passed.patch - * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch - * 0038-core-socket-fix-SO_REUSEPORT.patch - * 0039-journal-when-appending-to-journal-file-allocate-larg.patch - * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch - * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch - * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch - * 0043-journal-simplify-pre-allocation-logic.patch - * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch - * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch - * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch - * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch - * 0049-systemd-treat-reload-failure-as-failure.patch -- Dropped backported systemd patches as those are fixed upstream - * 0145-logind-use-correct-who-enum-values-with-KillUnit.patch - * 1011-check-4-valid-kmsg-device.patch - * 0001-logind-garbage-collect-stale-users.patch -- Dropped udev patches as those are fixed fixed upstream: - * 0026-udevadm.xml-document-resolve-names-option-for-test.patch - * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch -- Modified patches - * 1006-udev-always-rename-network.patch -- Replaced patches - * the patch - 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - is upstream now but has to be replaced by patch - 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - to fix an further issue similar to the upstream patch (bnc#852015) - * the patch - 0001-upstream-systemctl-halt-reboot-error-handling.patch - is upstream now, only the part with the halt after a failed poweroff - has been added to the patch - 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - -------------------------------------------------------------------- -Thu Feb 27 15:13:09 UTC 2014 - werner@suse.de - -- Add patch 0001-make-209-working-on-older-dist.patch to make - it usable on older distributions like 13.1 - -------------------------------------------------------------------- -Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de - -- Add patch 0001-add-network-device-after-NFS-mount-units.patch to - add "After" dependency to all NFS shares to the network interface - device as this ensures at shutdown that the NFS share becomes - unmounted before the interface is down (bnc#861489) - -+------------------------------------------------------------------- -------------------------------------------------------------------- -Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de - -- enable compat-libs, BuildRequires binutils-gold - ("old" ld fails on ifunc magic) - -------------------------------------------------------------------- -Sun Feb 23 16:11:22 UTC 2014 - stefan.bruens@rwth-aachen.de - -- add network link configuration for udev - -------------------------------------------------------------------- -Sun Feb 23 15:44:01 UTC 2014 - stefan.bruens@rwth-aachen.de - -- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, - move to core and link in directly to avoid libudev dep all over -- Disable networkd -- Disable compat-libs, adapt files section -- add and remove some entries in the files section - -------------------------------------------------------------------- -Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de - -- Modify patch 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch - to avoid WantedBy for Should-Start/Start-Before/Start-After SysVinit - scripts (bnc#863217) - -------------------------------------------------------------------- -Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de - -- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - to do a final sync() and flush the disks - -------------------------------------------------------------------- -Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de - -- Add several upstream bugfix patches which are missed: - * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch - * 0026-udevadm.xml-document-resolve-names-option-for-test.patch - * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch - * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch - * 0031-man-document-the-b-special-boot-option.patch - * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch - * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch - * 0035-activate-mention-E-in-the-help-text.patch - * 0036-activate-fix-crash-when-s-is-passed.patch - * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch - * 0038-core-socket-fix-SO_REUSEPORT.patch - * 0039-journal-when-appending-to-journal-file-allocate-larg.patch - * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch - * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch - * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch - * 0043-journal-simplify-pre-allocation-logic.patch - * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch - * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch - * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch - * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch - * 0049-systemd-treat-reload-failure-as-failure.patch -- Add patch 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch - to avoid potential NULL pointer -- Reorder patches to reflect udev/systemd usage - -------------------------------------------------------------------- -Tue Feb 11 10:53:48 UTC 2014 - coolo@suse.com - -- don't build bash-completions for bootstrap package - -------------------------------------------------------------------- -Tue Feb 11 10:25:26 UTC 2014 - coolo@suse.com - -- add more requires to this-is-only-for-build-envs to avoid - problems in kiwi configs - -------------------------------------------------------------------- -Mon Feb 10 15:15:35 UTC 2014 - werner@suse.de - -- Add patch 0145-logind-use-correct-who-enum-values-with-KillUnit.patch - to be able to kill sessions (bnc#860574) - -------------------------------------------------------------------- -Mon Feb 10 11:19:31 UTC 2014 - werner@suse.de - -- Do not return from main shell script but simply exit (bnc#862789) - -------------------------------------------------------------------- -Sun Feb 9 18:43:38 UTC 2014 - werner@suse.de - -- ... as only the systemd-analyze completion depends on - bash-completion I prefere a without which has to be defined - for SLES 12 - -------------------------------------------------------------------- -Sun Feb 9 11:21:07 UTC 2014 - coolo@suse.com - -- avoid bootstrap cycle with libusb and systemd-mini - -------------------------------------------------------------------- -Sat Feb 8 06:12:55 UTC 2014 - coolo@suse.com - -- split bash-completion support into its own package, - no need for sles_version - -------------------------------------------------------------------- -Fri Feb 7 13:02:28 UTC 2014 - werner@suse.de - -- Split off systemd-rpm-macros as a separate package to avoid - a rebuild of all packages due new systemd package -- Define a sles_version 12 for suse_version 1315 - -------------------------------------------------------------------- -Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de - -- Change and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to disable the workaround to find /dev/3270/tty1 as this now - should be done by a) the kernel patch - http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html - and the changed udev rule 99-systemd.rules - -------------------------------------------------------------------- -Sun Feb 2 08:53:17 UTC 2014 - ohering@suse.com - -- Remove PreReq pidof from udev, nothing in this pkg uses it - -------------------------------------------------------------------- -Fri Jan 31 14:24:35 UTC 2014 - werner@suse.de - -- Change and extend patch - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to re-enable colouring if 3270 console was enforced on the kernel - command line as 3270 cna handle colour ANSI escape sequences. - Also let the serial getty generator find the /dev/3270/tty1 - character device (bnc#861316) - -------------------------------------------------------------------- -Thu Jan 30 12:33:08 UTC 2014 - werner@suse.de - -- Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch - to strip the colouring ANSI escape sequences from the console - messages (bnc#860937) - -------------------------------------------------------------------- -Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de - -- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - to skip already by the kernel managed devices - -------------------------------------------------------------------- -Wed Jan 29 18:03:39 UTC 2014 - arvidjaar@gmail.com - -- fix timeout stopping user@.service (bnc#841544) - * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch - * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch - * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch - -------------------------------------------------------------------- -Tue Jan 28 12:44:07 UTC 2014 - werner@suse.de - -- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch - to be able to detect if the sysctl reboot() returns. -- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch - A check for unmaintained disk like devices is added to be able to - flush and maybe shut them down. Also the missing sync() system - call is added for the direct halt/reboot systemctl command. Then - the system halt is used as fallback if poweroff fails for both - the direct poweroff systemctl command as well as for the - systemd-shutdown utility. - -------------------------------------------------------------------- -Thu Jan 23 13:24:53 UTC 2014 - werner@suse.de - -- Make systemd-mini build - -------------------------------------------------------------------- -Thu Jan 23 13:18:39 UTC 2014 - werner@suse.de - -- Make requires bash-completion a recommends - -------------------------------------------------------------------- -Tue Jan 21 13:05:59 UTC 2014 - werner@suse.de - -- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch - to avoid that enabled boot scripts will be handled as unit files - by systemctl status command (bnc#818044) - -------------------------------------------------------------------- -Tue Jan 21 12:51:20 UTC 2014 - werner@suse.de - -- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch - as the original code behaves exactly as the shutdown code of - the old SysVinit (bnc#750845) -- Rename support-powerfail-with-powerstatus.patch to - 1016-support-powerfail-with-powerstatus.patch - -------------------------------------------------------------------- -Mon Jan 20 10:18:20 UTC 2014 - fcrozat@suse.com - -- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in - systemd-analyze (bnc#859365) - -------------------------------------------------------------------- -Fri Jan 17 16:09:24 UTC 2014 - werner@suse.de - -- Add patch - 1019-make-completion-smart-to-be-able-to-redirect.patch - to make redirections work with the bash command completions for - for systemd command tools (bnc#856858, bnc#859072) - -------------------------------------------------------------------- -Fri Jan 17 12:24:13 UTC 2014 - werner@suse.de - -- Add patch - 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch - to support the "+" to tag wanted dependencies as well as make - sure that required dependencies are handles as required ones. - This should fix bnc#858864 and bnc#857204. - -------------------------------------------------------------------- -Thu Jan 16 16:08:00 UTC 2014 - lnussel@suse.de - -- apply preset also to service files that are new in upgrade - -------------------------------------------------------------------- -Wed Jan 15 14:11:02 UTC 2014 - werner@suse.de - -- Change support-powerfail-with-powerstatus.patch to use BindsTo - instead of BindTo - -------------------------------------------------------------------- -Wed Jan 15 12:34:53 UTC 2014 - werner@suse.de - -- Add patch 1017-enforce-sufficient-shutdown-warnings.patch - Warn once per hour in the last 3 hours, then all 30 minutes in last - hour, all 15 minutes in the last 45 minutes, all 10 minutes in the - last 15 minutes, and then all minute in the last 10 minutes (bnc#750845) - -------------------------------------------------------------------- -Tue Jan 14 18:28:09 UTC 2014 - werner@suse.de - -- Add patch support-powerfail-with-powerstatus.patch and source - file systemd-powerfail to implement SIGPWR support with evaluation - of the file /var/run/powerstatus (bnc#737690) - -------------------------------------------------------------------- -Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de - -- Adapt patch - 1011-check-4-valid-kmsg-device.patch - to fit current upstream version maybe related to bnc#854884 -- Change patch - 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - to check if XDG_RUNTIME_DIR is set before the call of pam_putenv() - may fix bnc#855160 - -------------------------------------------------------------------- -Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com - -- Disable multi-seat-x build, since package xorg-x11-server - currently in Factory no longer needs it. - -------------------------------------------------------------------- -Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com - -- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a - running user manager from garbage-collecting the user. Original - behavior caused bnc#849870 - -------------------------------------------------------------------- -Mon Dec 16 11:08:33 UTC 2013 - lbsousajr@gmail.com - -- Add build-sys-make-multi-seat-x-optional.patch - * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297 - * Now systemd-multi-seat-x build can be disabled with configure option - --disable-multi-seat-x. It should be done when xorg-x11-server - no longer needs it (work in progress). - -------------------------------------------------------------------- -Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com - -- Update insserv-generator.patch: fix crash in insserv generator - (bnc#854314). -- Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes - for Nvidia cards (bnc#808319). - -------------------------------------------------------------------- -Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de - -- Add patch - 1014-journald-with-journaling-FS.patch - which now uses the file system ioctls for switching off atime, - compression, and copy-on-write of the journal directory of the - the systemd-journald (bnc#838475) -- Let us build require the package config for libpcre (bnc#853293) - -------------------------------------------------------------------- -Sat Nov 30 08:16:02 UTC 2013 - arvidjaar@gmail.com - -- Add patch - 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch - Make sure emergency shell is not killed by attempt to start another unit - (bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653. -- Add patch - make-emergency.service-conflict-with-syslog.socket.patch - Previous patch did not fix problem if syslog connection request came - after emergency shell was already started. So forcibly stop syslog.socket - when starting emergency.service. (bnc#852232) - -------------------------------------------------------------------- -Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com - -- Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch - * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50 - -------------------------------------------------------------------- -Tue Nov 26 15:12:58 UTC 2013 - werner@suse.de - -- Add patch - 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch - to avoid (xdg-)su to set XDG_RUNTIME_DIR to the original user and - avoid that e.g. pulseaudio will create /run/user//pulse owned - by root (bnc#852015) - -------------------------------------------------------------------- -Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de - -- Add patch - 1011-check-4-valid-kmsg-device.patch - to avoid a busy systemd-journald (bnc#851393) - -------------------------------------------------------------------- -Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de - -- Add patch - 1010-do-not-install-sulogin-unit-with-poweroff.patch - that is do not install console-shell.service in any system target - as this will cause automatic poweroff at boot (bnc#849071) - -------------------------------------------------------------------- -Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de - -- Add upstream patch - 0001-analyze-set-text-on-side-with-most-space.patch - to place the text on the side with most space - -------------------------------------------------------------------- -Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de - -- Add upstream patch - 0001-analyze-set-white-background.patch - to make SVG output of systemd analyze readable - -------------------------------------------------------------------- -Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de - -- Add patch - 1009-make-xsltproc-use-correct-ROFF-links.patch - to have valid ROFF links in manual pages working again (bnc#842844) - -------------------------------------------------------------------- -Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com - -- Add - 0001-gpt-auto-generator-exit-immediately-if-in-container.patch: - don't start gpt auto-generator in container (git). -- Add - 0001-manager-when-verifying-whether-clients-may-change-en.patch: - fix reload check in selinux case (git). -- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch: - fix introspection for TakeControl (git). -- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix - crash when parsing some incorrect unit (git). -- Add - 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch: - Fix udev rules parsing (git). -- Add - 0001-systemd-serialize-deserialize-forbid_restart-value.patch: - Fix incorrect deserialization for forbid_restart (git). -- Add - 0001-core-unify-the-way-we-denote-serialization-attribute.patch: - Ensure forbid_restart is named like other attributes (git). -- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in - journald (git). -- Add - 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch: - Improve ACPI firmware performance parsing (git). -- Add - 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch: - Fix journal rotation (git). -- Add - 0001-login-fix-invalid-free-in-sd_session_get_vt.patch: - Fix memory corruption in sd_session_get_vt (git). -- Add 0001-login-make-sd_session_get_vt-actually-work.patch: Ensure - sd_session_get_vt returns correct value (git). -- Add 0001-Never-call-qsort-on-potentially-NULL-arrays.patch: Don't - call qsort on NULL arrays (git). -- Add 0001-dbus-common-avoid-leak-in-error-path.patch: Fix memleak - in dbus-common code (git). -- Add 0001-drop-ins-check-return-value.patch: Fix return value for - drop-ins checks (git). -- Add 0001-shared-util-Fix-glob_extend-argument.patch: Fix - glob_extend argument (git). -- Add 0001-Fix-bad-assert-in-show_pid_array.patch: Fix bad assert - in show_pid_array (git). - - -------------------------------------------------------------------- -Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com - -- Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch: - fix acpi memleak. -- Add - 0002-fix-lingering-references-to-var-lib-backlight-random.patch: - fix invalid path in documentation. -- Add - 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch: - fix invalid memory free. -- Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix - name mangling for sysv units. -- Add - 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch: - fix OOM handling. -- Add 0006-journald-add-missing-error-check.patch: add missing - error check. -- Add 0007-bus-fix-potentially-uninitialized-memory-access.patch: - fix uninitialized memory access. -- Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix - return value. -- Add 0009-modules-load-fix-error-handling.patch: fix error - handling. -- Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch: - fix incorrect memory access. -- Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch: - fix incorrect memory access. -- Add - 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch: - fix invalid pointer. -- Add - 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch: - fix permission on /run/log/journal. -- Add - 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch: - order remote mount points properly before remote-fs.target. - -------------------------------------------------------------------- -Wed Oct 2 14:10:41 UTC 2013 - hrvoje.senjan@gmail.com - -- Explicitly require pam-config for %post of the main package - -------------------------------------------------------------------- -Wed Oct 2 08:03:30 UTC 2013 - fcrozat@suse.com - -- Release v208: - + logind gained support for facilitating privileged input and drm - devices access for unprivileged clients (helps Wayland / - kmscon). - + New kernel command line luks.options= allows to specify LUKS - options, when used with luks.uuid= - + tmpfileS.d snippets can uses specifier expansion in path names - (%m, %b, %H, %v). - + New tmpfiles.d command "m" introduced to change - owner/group/access mode of a file/directory only if it exists. - + MemorySoftLimit= cgroup settings is no longer supported - (underlying kernel cgroup attribute will disappear in the - future). - + memeory.use_hierarchy cgroup attribute is enabled for all - cgroups systemd creates in memory cgroup hierarchy. - + New filed _SYSTEMD_SLICE= is logged in journal messages related - to a slice. - + systemd-journald will no longer adjust the group of journal - files it creates to "systemd-journal" group. Permissions and - owernship is adjusted when package is upgraded. - + Backlight and random seed files are now stored in - /var/lib/systemd. - + Boot time performance measurements included ACPI 5.0 FPDT - informations if available. -- Drop merged patches: - 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch, - 0002-cgroup-correct-the-log-information.patch, - 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch, - 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch, - 0005-core-cgroup-first-print-then-free.patch, - 0006-swap-fix-reverse-dependencies.patch, - 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch, - 0009-polkit-Avoid-race-condition-in-scraping-proc.patch, - Fix-timeout-when-stopping-Type-notify-service.patch, - set-ignoreonisolate-noauto-cryptsetup.patch, - 0001-Fix-buffer-overrun-when-enumerating-files.patch, - 0007-libudev-fix-move_later-comparison.patch. -- Refresh patches - remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, - delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch, - handle-root_uses_lang-value-in-etc-sysconfig-language.patch, - handle-SYSTEMCTL_OPTIONS-environment-variable.patch, - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch. -- Own more ghost files. -- Do not run pam-config in systemd-mini %post. -- Add after-local.service to run after.local late during the boot - process (bnc#778715). - -------------------------------------------------------------------- -Tue Oct 1 17:09:01 UTC 2013 - fcrozat@suse.com - -- Update Fix-timeout-when-stopping-Type-notify-service.patch with - upstream fix. -- No longer start ask-password-wall, was causing too much spam on - terminals (bnc#747783). - -------------------------------------------------------------------- -Mon Sep 30 15:42:45 UTC 2013 - fcrozat@suse.com - -- Add set-ignoreonisolate-noauto-cryptsetup.patch: ensure noauto - encrypted mounts survives runlevel changes (bnc#843085). -- Add 0001-Fix-buffer-overrun-when-enumerating-files.patch: fix - logind crash when /run/systemd/sessions was too big (bnc#840055, - initial fix from hpj@suse.com). -- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to - only check for /boot/sysctl.conf- presence. -- Add service wrapper for after.local (bnc#778715). - -------------------------------------------------------------------- -Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com - -- Update use-usr-sbin-sulogin-for-emergency-service.patch to apply - to all services using sulogin and remove generated files from - upstream tarball (bnc#841398). - -------------------------------------------------------------------- -Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com - -- Fix-timeout-when-stopping-Type-notify-service.patch - Make sure MAINPID is watched when it becomes known (bnc#841544) - -------------------------------------------------------------------- -Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com - -- Remove output and error redirection to /dev/null in install - script, it might help tracing pam related issue (bnc#841573). - -------------------------------------------------------------------- -Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com - -- Move symlink migration trigger to post (bnc#821800). - -------------------------------------------------------------------- -Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org - -- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch - VUL-0: polkit: process subject race condition [bnc#835827] - CVE-2013-4288 - -------------------------------------------------------------------- -Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org - -- Build with --disable-ima as the openSUSE kernel - does not support IMA (CONFIG_IMA is not set) - -------------------------------------------------------------------- -Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org - -- Build with --disable-smack as the openSUSE kernel - does not support smack (CONFIG_SECURITY_SMACK is not set) - -------------------------------------------------------------------- -Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com - -- Don't use a trigger to create symlink for sysctl.conf, always run - the test on %post (bnc#840864). -- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to - ensure /boot is mounted before reading /boot/sysctl.conf-* - (bnc#809420). - -------------------------------------------------------------------- -Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org - -- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch - really fixes the swap unit problem mentioned in previous - commit & the opensuse-factory mailing list. - -------------------------------------------------------------------- -Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org - -- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch - missing important check on return value. -- 0002-cgroup-correct-the-log-information.patch fix misleading - log information. -- 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix - setting memory cgroup -- 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch - should fail if write fails. -- 0005-core-cgroup-first-print-then-free.patch use-after-free - will trigger if there is an error condition. -- 0006-swap-fix-reverse-dependencies.patch reported in - opensuse-factory list, topic "swap isn't activated" -- 0007-libudev-fix-move_later-comparison.patch libudev - invalid usage of "move_later". - -------------------------------------------------------------------- -Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org - -- while testing this new release I get in the logs ocassionally - at boot "systemd[1]: Failed to open private bus connection: - Failed to connect to socket /var/run/dbus/system_bus_socket: - No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS - is defined to /var/run/dbus/system_bus_socket instead of - /run/dbus/system_bus_socket and that does not fly when /var/run - is not yet available. (systemd-dbus-system-bus-address.patch) - -------------------------------------------------------------------- -Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com - -- Enable Predictable Network interface names (bnc#829526). - -------------------------------------------------------------------- -Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org - -- version 207, distribution specific changes follow, for overall - release notes see NEWS. -- Fixed: - * Failed at step PAM spawning /usr/lib/systemd/systemd: - Operation not permitted - * Fix shutdown hang "a stop job is running for Session 1 of user root" - that was reported in opensuse-factory list. -- systemd-sysctl no longer reads /etc/sysctl.conf however backward - compatbility is to be provides by a symlink created at %post. -- removed previously disabled upstream patches (merged): - 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch, - 0004-disable-the-cgroups-release-agent-when-shutting-down.patch, - 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch, - 0006-suppress-status-message-output-at-shutdown-when-quie.patch, -- removed upstream merged patches: - exclude-dev-from-tmpfiles.patch, - logind_update_state_file_after_generating_....patch -- Add systemd-pam_config.patch: use correct include name for PAM - configuration on openSUSE. - -------------------------------------------------------------------- -Mon Sep 9 14:39:46 UTC 2013 - fcrozat@suse.com - -- Add exclude-dev-from-tmpfiles.patch: allow to exclude /dev from - tmpfiles (bnc#835813). - -------------------------------------------------------------------- -Fri Sep 6 15:02:08 UTC 2013 - fcrozat@suse.com - -- Remove - force-lvm-restart-after-cryptsetup-target-is-reached.patch and - remove additional dependencies on LVM in other patches: LVM has - now systemd support, no need to work around it anymore in - systemd. - -------------------------------------------------------------------- -Wed Aug 21 10:42:35 UTC 2013 - idonmez@suse.com - -- Add patch logind_update_state_file_after_generating_the_session_fifo_not_before.patch - to fix https://bugs.freedesktop.org/show_bug.cgi?id=67273 - -------------------------------------------------------------------- -Tue Aug 6 09:24:07 UTC 2013 - lnussel@suse.de - -- explicitly enable getty@tty1.service instead of getty@.service as - the tty1 alias has been removed from the file (bnc#833494) - -------------------------------------------------------------------- -Thu Aug 1 15:52:20 UTC 2013 - fcrozat@suse.com - -- Ensure /usr/lib/systemd/system/shutdown.target.wants is created - and owned by systemd package. - -------------------------------------------------------------------- -Mon Jul 29 14:01:48 UTC 2013 - fcrozat@suse.com - -- Fix drop-in for getty@tty1.service - -------------------------------------------------------------------- -Thu Jul 25 12:35:29 UTC 2013 - fcrozat@suse.com - -- Move systemd-journal-gateway to subpackage to lower dependencies - in default install. - -------------------------------------------------------------------- -Tue Jul 23 01:32:38 UTC 2013 - crrodriguez@opensuse.org - -- version 206 , highlights: -* Unit files now understand the new %v specifier which - resolves to the kernel version string as returned by "uname-r". -* "journalctl -b" may now be used to look for boot output of a - specific boot. Try "journalctl -b -1" -* Creation of "dead" device nodes has been moved from udev - into kmod and tmpfiles. -* The udev "keymap" data files and tools to apply keyboard - specific mappings of scan to key codes, and force-release - scan code lists have been entirely replaced by a udev - "keyboard" builtin and a hwdb data file. - -- remove patches now in upstream -- systemd now requires libkmod >=14 and cryptsetup >= 1.6.0 -- systemd now require the kmod tool in addition to the library. - -------------------------------------------------------------------- -Sun Jul 14 05:25:51 UTC 2013 - arvidjaar@gmail.com - -- use-usr-sbin-sulogin-for-emergency-service.patch - emergency.service failed to start because sulogin is in /usr/sbin now - -------------------------------------------------------------------- -Fri Jul 12 17:09:23 CEST 2013 - mls@suse.de - -- fix build with rpm-4.11.1: /etc/xdg/system/user is a symlink, - not a directory - -------------------------------------------------------------------- -Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org - -- 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch - fix segfault at shutdown -- 0004-disable-the-cgroups-release-agent-when-shutting-down.patch - disable the cgroups release agent when shutting down. -- 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch - remove ancient fallback code; turn connection error into warning -- 006-suppress-status-message-output-at-shutdown-when-quie.patch - make shutdown honour "quiet" kernel cmdline. - -------------------------------------------------------------------- -Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org - -- fix broken symlink, service is called systemd-random-seed now. - -------------------------------------------------------------------- -Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com - -- Update to release 205: - + two new unit types have been introduced: - - Scope units are very similar to service units, however, are - created out of pre-existing processes -- instead of PID 1 - forking off the processes. - - Slice units may be used to partition system resources in an - hierarchial fashion and then assign other units to them. By - default there are now three slices: system.slice (for all - system services), user.slice (for all user sessions), - machine.slice (for VMs and containers). - + new concept of "transient" units, which are created at runtime - using an API and not based on configuration from disk. - + logind has been updated to make use of scope and slice units to - manage user sessions. Logind will no longer create cgroups - hierchies itself but will relying on PID 1. - + A new mini-daemon "systemd-machined" has been added which - may be used by virtualization managers to register local - VMs/containers. machinectl tool has been added to query - meta-data from systemd-machined. - + Low-level cgroup configuration options ControlGroup=, - ControlGroupModify=, ControlGroupPersistent=, - ControlGroupAttribute= have been removed. High-level attribute - settings or slice units should be used instead? - + A new bus call SetUnitProperties() has been added to alter - various runtime parameters of a unit, including cgroup - parameters. systemctl gained set-properties command to wrap - this call. - + A new tool "systemd-run" has been added which can be used to - run arbitrary command lines as transient services or scopes, - while configuring a number of settings via the command - line. - + nspawn will now inform the user explicitly that kernels with - audit enabled break containers, and suggest the user to turn - off audit. - + Support for detecting the IMA and AppArmor security - frameworks with ConditionSecurity= has been added. - + journalctl gained a new "-k" switch for showing only kernel - messages, mimicking dmesg output; in addition to "--user" - and "--system" switches for showing only user's own logs - and system logs. - + systemd-delta can now show information about drop-in - snippets extending unit files. - + systemd will now look for the "debug" argument on the kernel - command line and enable debug logging, similar to - "systemd.log_level=debug" already did before. - + "systemctl set-default", "systemctl get-default" has been - added to configure the default.target symlink, which - controls what to boot into by default. - + "systemctl set-log-level" has been added as a convenient - way to raise and lower systemd logging threshold. - + "systemd-analyze plot" will now show the time the various - generators needed for execution, as well as information - about the unit file loading. - + libsystemd-journal gained a new sd_journal_open_files() call - for opening specific journal files. journactl also gained a - new switch to expose this new functionality (useful for - debugging). - + systemd gained the new DefaultEnvironment= setting in - /etc/systemd/system.conf to set environment variables for - all services. - + If a privileged process logs a journal message with the - OBJECT_PID= field set, then journald will automatically - augment this with additional OBJECT_UID=, OBJECT_GID=, - OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if - system services want to log events about specific client - processes. journactl/systemctl has been updated to make use - of this information if all log messages regarding a specific - unit is requested. -- Remove 0001-journal-letting-interleaved-seqnums-go.patch, - 0002-journal-remember-last-direction-of-search-and-keep-o.patch, - 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch, - 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch, - 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch, - 0160-mount-when-learning-about-the-root-mount-from-mounti.patch, - 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch, - Start-ctrl-alt-del.target-irreversibly.patch, - systemctl-does-not-expand-u-so-revert-back-to-I.patch: merged - upstream. -- Regenerate patches 1007-physical-hotplug-cpu-and-memory.patch, - 1008-add-msft-compability-rules.patch, - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch, - fix-support-for-boot-prefixed-initscript-bnc-746506.patch, - handle-SYSTEMCTL_OPTIONS-environment-variable.patch, - handle-numlock-value-in-etc-sysconfig-keyboard.patch, - insserv-generator.patch, - optionally-warn-if-nss-myhostname-is-called.patch, - remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, - restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch, - service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch. -- Update macros.systemd.upstream with latest upstream revision. - -------------------------------------------------------------------- -Mon Jul 1 13:43:31 UTC 2013 - fcrozat@suse.com - -- Replace - parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch - patch with insserv-generator.patch: no longer patch systemd main - binary but generate systemd drop-in files using a generator, for - insserv.conf compatibility. - -------------------------------------------------------------------- -Mon Jul 1 09:14:55 UTC 2013 - coolo@suse.com - -- systemd-mini doesn't need dbus-1, only dbus-1-devel - -------------------------------------------------------------------- -Wed Jun 26 09:31:14 UTC 2013 - rmilasan@suse.com - -- Re-add fixed udev MSFT compability rules (bnc#805059, bnc#826528). - add: 1008-add-msft-compability-rules.patch - -------------------------------------------------------------------- -Wed Jun 26 08:51:29 UTC 2013 - rmilasan@suse.com - -- Drop 1007-add-msft-compability-rules.patch, breaks boot and links - in /dev/disk/by-id, will need proper rework (bnc#826528). - -------------------------------------------------------------------- -Mon Jun 24 00:15:24 UTC 2013 - crrodriguez@opensuse.org - -- 0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another - case where we are trying to umount the root directory at shutdown. -- 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch - only attempt to connect to a session bus if one likely exists - -------------------------------------------------------------------- -Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com - -- Automatically online CPUs/Memory on CPU/Memory hotplug add events - (bnc#703100, fate#311831). - add: 1008-physical-hotplug-cpu-and-memory.patch - -------------------------------------------------------------------- -Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com - -- Dropped backward compatibility -- Added check for upstream rpm macros changes - -------------------------------------------------------------------- -Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com - -- Split out RPM macros into separate package to simplify dependencies - -------------------------------------------------------------------- -Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org - -- 0001-journal-letting-interleaved-seqnums-go.patch and - 0002-journal-remember-last-direction-of-search-and-keep-o.patch - fix possible infinite loops in the journal code, related to - bnc #817778 - -------------------------------------------------------------------- -Sun Jun 16 23:59:28 UTC 2013 - jengelh@inai.de - -- Explicitly list libattr-devel as BuildRequires -- More robust make install call. Remove redundant %clean section. - -------------------------------------------------------------------- -Thu Jun 13 16:00:25 CEST 2013 - sbrabec@suse.cz - -- Cleanup NumLock setting code - (handle-numlock-value-in-etc-sysconfig-keyboard.patch). - -------------------------------------------------------------------- -Wed Jun 12 10:00:53 UTC 2013 - fcrozat@suse.com - -- Only apply 1007-add-msft-compability-rules.patch when not - building systemd-mini. - -------------------------------------------------------------------- -Tue Jun 11 11:01:46 UTC 2013 - rmilasan@suse.com - -- Add udev MSFT compability rules (bnc#805059). - add: 1007-add-msft-compability-rules.patch -- Add sg3_utils requires, need it by 61-msft.rules (bnc#805059). -- Clean-up spec file, put udev patches after systemd patches. -- Rebase patches so they would apply nicely. - -------------------------------------------------------------------- -Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org - -- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch - fixes : - * systemd-journald[347]: Failed to set ACL on - /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, - ignoring: Invalid argument -- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch - systemctl disable should remove dangling symlinks. -- 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch - alien childs are reported as alive when they are really dead. - -------------------------------------------------------------------- -Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com - -- Update to release 204: - + systemd-nspawn creates etc/resolv.conf in container if needed. - + systemd-nspawn will store metadata about container in container - cgroup including its root directory. - + cgroup hierarchy has been reworked, all objects are now suffxed - (with .session for user sessions, .user for users, .nspawn for - containers). All cgroup names are now escaped to preven - collision of object names. - + systemctl list-dependencies gained --plain, --reverse, --after - and --before switches. - + systemd-inhibit shows processes name taking inhibitor lock. - + nss-myhostname will now resolve "localhost" implicitly. - + .include is not allowed recursively anymore and only in unit - files. Drop-in files should be favored in most cases. - + systemd-analyze gained "critical-chain" command, to get slowest - chain of units run during boot-up. - + systemd-nspawn@.service has been added to easily run nspawn - container for system services. Just start - "systemd-nspawn@foobar.service" and container from - /var/lib/container/foobar" will be booted. - + systemd-cgls has new --machine parameter to list processes from - one container. - + ConditionSecurity= can now check for apparmor and SMACK. - + /etc/systemd/sleep.conf has been introduced to configure which - kernel operation will be execute when "suspend", "hibernate" or - "hybrid-sleep" is requrested. It allow new kernel "freeze" - state to be used too. (This setting won't have any effect if - pm-utils is installed). - + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape - passed argument if applicable. -- Regenerate some patches for this new release. -- Rename hostname-setup-shortname.patch to - ensure-shortname-is-set-as-hostname-bnc-820213.patch to be git - format-patch friendly. -- Update apply-ACL-for-nvidia-device-nodes.patch to apply ACL to - /dev/nvidia* (bnc#808319). -- Remove Ensure-debugshell-has-a-correct-value.patch, doable with a - configure option. -- Add systemctl-does-not-expand-u-so-revert-back-to-I.patch: avoids - expansion errors. -- Add Start-ctrl-alt-del.target-irreversibly.patch: ctrl-alt-del - should be irreversible for reliability. - -------------------------------------------------------------------- -Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org - -- Drop Add-bootsplash-handling-for-password-dialogs.patch bootsplash -support has been removed from the kernel. -- Drop ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch -fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166 -- Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -only on ARM, patch rejected upstream because is too generic. -- no such define TARGET_SUSE exists but it is used in -Revert-service-drop-support-for-SysV-scripts-for-the-early.patch -use HAVE_SYSV_COMPAT instead. - -------------------------------------------------------------------- -Fri May 24 11:37:49 UTC 2013 - fcrozat@suse.com - -- Do no ship defaults for sysctl, they should be part of aaa_base - (currently in procps). -- Add hostname-setup-shortname.patch: ensure shortname is set as - hostname (bnc#820213). - -------------------------------------------------------------------- -Fri May 17 15:53:33 UTC 2013 - fcrozat@suse.com - -- Rebase - parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch to - fix memory corruption (thanks to Michal Vyskocil) (bnc#820454). - -------------------------------------------------------------------- -Fri May 17 11:46:02 UTC 2013 - fcrozat@suse.com - -- Add sysctl-handle-boot-sysctl.conf-kernel_release.patch: ensure - /boot/sysctl.conf- is handled (bnc#809420). - -------------------------------------------------------------------- -Wed May 15 13:02:05 UTC 2013 - fcrozat@suse.com - -- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch: don't - free variable whose content is still be used (bnc#819970). - -------------------------------------------------------------------- -Tue May 14 14:22:05 UTC 2013 - fcrozat@suse.com - -- Add configure flags to ensure boot.local/halt.local are run on - startup/shutdown. - -------------------------------------------------------------------- -Mon May 13 18:08:41 UTC 2013 - rmilasan@suse.com - -- Fix firmware loading by enabling --with-firmware-path (bnc#817551). - -------------------------------------------------------------------- -Mon Apr 29 14:50:37 UTC 2013 - dschung@cs.uni-kl.de - -- Fix systemd-sysv-convert, so empty runlevel folders don't lead - to "line 44: [: too many arguments" - -------------------------------------------------------------------- -Fri Apr 26 16:37:28 CEST 2013 - fcrozat@suse.com - -- Fix handle-etc-HOSTNAME.patch to properly set hostname at startup - when using /etc/HOSTNAME. - -------------------------------------------------------------------- -Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com - -- Rename remaning udev patches (clean-up). -- Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at - boot time not from udev (bnc#761109). -- Drop unused patches: - 1001-Reinstate-TIMEOUT-handling.patch - 1005-udev-fix-sg-autoload-regression.patch - 1026-re-add-persistent-net.patch - -------------------------------------------------------------------- -Tue Apr 23 14:58:47 CEST 2013 - fcrozat@suse.com - -- Use drop-in file to fix bnc#804158. - -------------------------------------------------------------------- -Tue Apr 23 12:44:16 UTC 2013 - coolo@suse.com - -- add some more conflicts to make bootstrap work - -------------------------------------------------------------------- -Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com - -- Do not provide %{release} for systemd-analyze -- Add more conflicts to -mini packages -- Disable Predictable Network interface names until it has been - reviewed by network team, with /usr/lib/tmpfiles.d/network.conf. -- Don't package /usr/lib/firmware/update (not used) - -------------------------------------------------------------------- -Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org - -- Fix packaging error, there is no syslog.target anymore - do not pretend there is one. - -------------------------------------------------------------------- -Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com - -- Update to release 202: - + 'systemctl list-jobs' got some polishing. '--type=' argument - may now be passed more than once. 'systemctl list-sockets' has - been added. - + systemd gained a new unit 'systemd-static-nodes.service' - that generates static device nodes earlier during boot, and - can run in conjunction with udev. - + systemd-nspawn now places all containers in the new /machine - top-level cgroup directory in the name=systemd hierarchy. - + bootchart can now store its data in the journal. - + journactl can now take multiple --unit= and --user-unit= - switches. - + The cryptsetup logic now understands the "luks.key=" kernel - line switch. If a configured key file is missing, it - will fallback to prompting the user. -- Rebase some patches -- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to - properly handle SYSTEMCTL_OPTIONS - -------------------------------------------------------------------- -Fri Apr 19 12:47:13 UTC 2013 - max@suse.com - -- Fix regression in the default for tmp auto-deletion - (systemd-tmp-safe-defaults.patch, FATE#314974). - -------------------------------------------------------------------- -Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com - -- Update to release 201: - + udev now supports different nameng policies for network - interface for predictable names. - + udev gained support for loading additional device properties - from an indexed database. %udev_hwdb_update macro should be - used by packages adding entries to this database. - + Journal gained support for "Message Catalog", indexed database - to link up additional information with journal entries. - %journal_catalog_update macro should be used by packages adding - %entries to this database. - + "age" field for tmpfiles entries can be set to 0, forcing - removal of files matching this entry. - + coredumpctl gained "gdb" verb to invoke gdb on selected - coredump. - + New rpm macros has been added: %udev_rules_update(), - %_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir, - %_tmpfilesdir, %_sysctldir. - + In service files, %U can be used for configured user name of - the service. - + nspawn can be invoked without a controlling TTY. - + systemd and nspawn can accept socket file descriptors when - started for socket activation. This allow socket activated - nspawn containers. - + logind can now automatically suspend/hibernate/shutdown system - on idle. - + ConditionACPower can be used in unit file to detect if AC power - source is connected or if system is on battery power. - + EnvironmentFile= in unit files supports file globbing. - + Behaviour of PrivateTmp=, ReadWriteDirectories=, - ReadOnlyDirectories= and InaccessibleDirectories= has - changed. The private /tmp and /var/tmp directories are now - shared by all processes of a service (which means - ExecStartPre= may now leave data in /tmp that ExecStart= of - the same service can still access). When a service is - stopped its temporary directories are immediately deleted - (normal clean-up with tmpfiles is still done in addition to - this though). - + Resource limits (as exposed by cgroup controlers) can be - controlled dynamically at runtime for all units, using - "systemctl set-cgroup-attr foobar.server cgroup.attribute - value". Those settings are stored persistenly on disk. - + systemd-vconsole-setup will now copy all fonts settings to all - allocated VTs. - + timedated now exposes CanNTP property to indicate if a local - NTP service is available. - + pstore file system is mounted by default, if available. - + SMACK policies are loaded at early boot, if available. - + Timer units now support calendar time events. - + systemd-detect-virt detect xen PVs. - + Some distributions specific LSB targets has been dropped: - $x-display-manager, $mail-transfer-agent, - $mail-transport-agent, $mail-transfer-agent, $smtp, $null. As - well mail-transfer-agent.target and syslog.target has been - removed. - + systemd-journal-gatewayd gained SSL support and now runs as - unprivileged user/group - "systemd-journal-gateway:systemd-journal-gateway" - + systemd-analyze will read, when available, boot time - performance from EFI variable from boot loader supporting it. - + A new generator for automatically mounting EFI System Partition - (ESP) to /boot (if empty and no other file system has been - configured in fstab for it). - + logind will now send out PrepareForSleep(false) out - unconditionally, after coming back from suspend. - + tmpfiles gained a new "X" line type, that allows - configuration of files and directories (with wildcards) that - shall be excluded from automatic cleanup ("aging"). - + udev default rules set the device node permissions now only - at "add" events, and do not change them any longer with a - later "change" event. - + A new bootctl tool has been added that is an interface for - certain EFI boot loader operations. - + A new tool kernel-install has been added to install kernel - images according to Boot Loader Specification. - + A new tool systemd-activate can be used to test socket - activation. - + A new group "systemd-journal" is now owning journal files, - replacing "adm" group. - + journalctl gained "--reverse" to show output in reverse order, - "--pager-end" to jump at the end of the journal in the - pager (only less is supported) and "--user-unit" to filter for - user units. - + New unit files has been addedto ease for systemd usage in - initrd. - + "systemctl start" now supports "--irreversible" to queue - operations which can be reserved. It is now used to make - shutdown requests more robust. - + Auke Kok's bootchart has been merged and relicensed to - LGPLv2.1+. - + nss-myhostname has been merged in systemd codebase. - + some defaults sysctl values are now set by default: the safe - sysrq options are turned on, IP route verification is turned - on, and source routing disabled. The recently added hardlink - and softlink protection of the kernel is turned on. - + Add support for predictable network naming logic. It can be - turned off with kernel command line switch: net.ifnames=0 - + journald will now explicitly flush journal files to disk at the - latest 5 min after each write and will mark file offline until - next read. This should increase reliability in case of crash. - + remote-fs-setup.target target has been added to pull in - specific services when at least one remote file system is to be - mounted. - + timers.target and paths.target have been added as canonical - targets to pull user timer and path units, similar to - sockets.targets. - + udev daemon now sets default number of worker processes in - parallel based on number of CPUs instead of RAM. - + Most unit file settings which takes likst of items can now be -reset by assigning empty string to them, using drop-in. - + Add support for drop-in configuration file for units. - + Most unit file settings which takes likst of items can now be - reset by assigning empty string to them, using drop-in. - + improve systemg-cgtop output. - + improve 'systemctl status' output for socket, drop-in for units. - + 'hostnamectl set-hostname' allows setting FQDN hostnames. - + fractional time intervals are now parsed properly. - + localectl can list available X11 keymaps. - + systemd-analyze dot can filter for specific units and has been - rewritten in C. - + systemctl gained "list-dependencies" command. - + Inhibitors are now honored no only in GNOME. -- Many patches has been dropped, being merged upstream. -- Many patches has been renamed and regenerated with git, to have - consistent naming, authorship and comments embedded. -- Add - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch: - re-add support for boot.* initscripts until they are all migrated - to systemd unit files. -- Merge patches for nss-myhostname package to this package. - -------------------------------------------------------------------- -Fri Apr 12 16:17:04 UTC 2013 - rschweikert@suse.com - -- Add chromebook lid switch as a power switch to logind rule to - enable suspend on lid close - -------------------------------------------------------------------- -Mon Apr 8 14:51:47 CEST 2013 - fcrozat@suse.com - -- Add improve-readahead-spinning.patch: improve readahead - performance on spinning media with ext4. -- Add fix-journal-vacuum-logic.patch: fix vacuum logic in journal - (bnc#789589). -- Add fix-lsb-provides.patch: ensure LSB provides are correctly - handled if also referenced as dependencies (bnc#809646). -- Add fix-loopback-mount.patch: ensure udevd is started (and - therefore static devices are created) before mounting - (bnc#809820). -- Update systemd-sysv-convert to search services files in new - location (bnc#809695). -- Add logind-nvidia-acl.diff: set ACL on nvidia devices - (bnc#808319). -- Add do-no-isolate-on-fsck-failure.patch: do not turn off services - if fsck fails (bnc#812874) -- Add wait-for-processes-killed.patch: wait for processes killed by - SIGTERM before killing them with SIGKILL. -- Update systemctl-options.patch to only apply SYSTEMCTL_OPTIONS to - systemctl command (bnc#801878). - -------------------------------------------------------------------- -Tue Apr 2 22:09:42 CEST 2013 - sbrabec@suse.cz - -- Fixed disabling CapsLock and enabling NumLock (bnc#746595, - 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, - systemd-numlock-suse.patch). -- Explicitly require libgcrypt-devel to fix build failure. - -------------------------------------------------------------------- -Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com - -- udev: ensure that the network interfaces are renamed even if they - exist (bnc#809843). - add: 1027-udev-always-rename-network.patch - -------------------------------------------------------------------- -Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com - -- udev: re-add persistent network rules (bnc#809843). - add: 1026-re-add-persistent-net.patch -- rebase all patches, ensure that they apply properly. - -------------------------------------------------------------------- -Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com - -- Add rbind-mount.patch: handle rbind mount points correctly - (bnc#804575). - -------------------------------------------------------------------- -Tue Feb 19 11:20:31 CET 2013 - fcrozat@suse.com - -- Ensure journal is flushed on disk when systemd-logger is - installed for the first time. -- Add improve-journal-perf.patch: improve journal performance on - query. -- Add support-hybrid-suspend.patch: add support for hybrid suspend. -- Add forward-to-pmutils.patch: forward suspend/hibernation calls - to pm-utils, if installed (bnc#790157). - -------------------------------------------------------------------- -Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com - -- udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer - add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch -- udev: expose new ISO9660 properties from libblkid - add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch - -------------------------------------------------------------------- -Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de - -- Create getty@tty1.service to restore traditional SUSE behavior - of not clearing tty1. (bnc#804158) -- Better use of find -exec - -------------------------------------------------------------------- -Fri Feb 15 16:04:39 UTC 2013 - fcrozat@suse.com - -- Add early-sync-shutdown.patch: start sync just when - shutdown.target is beginning -- Update parse-multiline-env-file.patch to better handle continuing - lines. -- Add handle-HOSTNAME.patch: handle /etc/HOSTNAME (bnc#803653). -- Add systemctl-print-wall-on-if-successful.patch: only print on - wall if successful. -- Add improve-bash-completion.patch: improve bash completion. - -------------------------------------------------------------------- -Fri Feb 15 13:05:19 UTC 2013 - lnussel@suse.de - -- disable nss-myhostname warning (bnc#783841) - => disable-nss-myhostname-warning-bnc-783841.diff - -------------------------------------------------------------------- -Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com - -- rework patch: - 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch -- udev: use unique names for temporary files created in /dev. - add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch -- cdrom_id: add data track count for bad virtual drive. - add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch - -------------------------------------------------------------------- -Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com - -- usb_id: ensure we have a valid serial number as a string (bnc#779493). - add: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch -- cdrom_id: created links for the default cd/dvd drive (bnc#783054). - add: 1021-create-default-links-for-primary-cd_dvd-drive.patch - -------------------------------------------------------------------- -Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com - -- Add cryptsetup-accept-read-only.patch: accept "read-only" in - addition to "readonly" in crypttab -- Update parse-multiline-env-file.patch to correctly handle - commented lines (bnc#793411) - -------------------------------------------------------------------- -Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com - -- udev: Fix device matching in the accelerometer - add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch -- keymap: add aditional support for some keyboard keys - add: 1018-keymap-add-aditional-support.patch -- journalctl: require argument for --priority - add: journalctl-require-argument-for-priority -- dropped useless patches: - libudev-validate-argument-udev_enumerate_new.patch - kmod-fix-builtin-typo.patch -- rename udev-root-symlink.service to systemd-udev-root-symlink.service. -- fix in udev package missing link in basic.target.wants for - systemd-udev-root-symlink.service - -------------------------------------------------------------------- -Mon Jan 28 10:49:21 UTC 2013 - fcrozat@suse.com - -- Add tmpfiles-X-type.patch: allow to clean directories with - removing them. -- Add systemd-fix-merge-ignore-dependencies.patch: fix merging with - --ignore-dependencies waiting for dependencies (bnc#800365). -- Update systemd-numlock-suse.patch: udev-trigger.service is now - called systemd-udev-trigger.service. -- Add improve-man-environment.patch: improve manpage regarding - Environment value. - -------------------------------------------------------------------- -Tue Jan 22 17:02:04 UTC 2013 - fcrozat@suse.com - -- Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly - (bnc#798620). -- Update crypt-loop-file.patch to correctly detect crypto loop - files (bnc#799514). -- Add journalctl-remove-leftover-message.patch: remove debug - message in systemctl. -- Add job-avoid-recursion-when-cancelling.patch: prevent potential - recursion when cancelling a service. -- Add sysctl-parse-all-keys.patch: ensure sysctl file is fully - parsed. -- Add journal-fix-cutoff-max-date.patch: fix computation of cutoff - max date for journal. -- Add reword-rescue-mode-hints.patch: reword rescue prompt. -- Add improve-overflow-checks.patch: improve time overflow checks. -- Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour - with symlinks. -- Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure - hostnamectl requires an argument when called with set-hostname - option. -- Add agetty-overrides-term.patch: pass correctly terminal type to - agetty. -- Add check-for-empty-strings-in-strto-conversions.patch: better - check for empty strings in strto* conversions. -- Add strv-cleanup-error-path-loops.patch: cleanup strv on error - path. -- Add cryptsetup-handle-plain.patch: correctly handle "plain" - option in cryptsetup. -- Add fstab-generator-improve-error-message.patch: improve error - message in fstab-generator. -- Add delta-accept-t-option.patch: accept -t option in - systemd-delta. -- Add highlight-ordering-cycle-deletions.patch: highlight ordering - cycle deletions in logs. -- Add core-interpret-escaped-semicolon-as-escaped.patch: accept \; - in ExecStart. -- Add hostnamectl-fix-parsing-no-ask-password.patch: accept - no-ask-password in hostnamectl. -- Add systemd-cgls-fix-piping-output.patch: fix piping output of - systemd-cgls. -- Add core-load-fragment-improve-error-message.patch: improve error - message when parsing fragments. -- Add fix-potential-bad-mem-access.patch: fix potential bad memory - access. -- Add socket-improve-error-message.patch: improve error message in - socket handling. -- Add journal-send-always-send-syslog_identifier.patch: always send - syslog_identifier if available for journal. -- Add crypsetup-handle-nofail.patch: handle nofail in cryptsetup. -- Add crypsetup-generator-state-file-name-in-error-message.patch: - add filename in error message from crypsetup-generator. -- Add fstab-generator-error-message-on-duplicates.patch: improve - error message on duplicate in fstab-generator. -- Add systemctl-verbose-message-on-missing-install.patch: reword - missing install error message in systemctl. -- Add shutdown-improvements.patch: various improvements at - shutdown. -- Add localectl-fix-assertion.patch: fix assertion in localectl. -- Add path-util-fix-potential-crash.patch: fix potential crash in - path-util. -- Add coredumpctl-fix-crash.patch: fix crash in coredumpctl. -- Add socket-verbose-error-message.patch: add more verbose error - message in socket handling. -- Add pam-properly-handle-ssh-logins-without-pam-tty-field.patch: - handle properly ssh-logins without pam tty field. -- Add fstab-generator-properly-detect-bind-mounts.patch: properly - detect bind-mounts in fstab-generator. -- Add localectl-support-systems-without-locale-archive.patch: - localectl now supports systemd without locale-archive file. -- Add logind-capability-making-seats-without-fb.patch: allows - capability of making seats without fb. -- Add service-forking-ignore-exit-status-main-process.patch: ignore - exit-statis of main process when forking, if specified in unit - file. -- Add systemctl-no-assert-on-reboot-without-dbus.patch: don't - assert on reboot if dbus isn't there. -- Add logind-ignore-non-tty-non-x11-session-on-shutdown.patch: - ignore non tty non-x11 session on shutdown. -- Add journalctl-quit-on-io-error.patch: fix journalctl quit on io - error. -- Add do-not-make-sockets-dependent-on-lo.patch: do not make - sockets dependent on lo interface. -- Add shutdown-dont-force-mnt-force-on-final-umount.patch: don't - force MNT_FORCE on final umount at shutdown. -- Add shutdown-ignore-loop-devices-without-backing-file.patch: - ignore loop devices without backing file at shutdown. -- Add fix-bad-mem-access.patch: fix bad memory access -- Add parse-multiline-env-file.patch: correctly parse multiline - environment files (bnc#793411). - -------------------------------------------------------------------- -Thu Jan 10 15:43:25 UTC 2013 - fcrozat@suse.com - -- Add multiple-sulogin.patch: allows multiple sulogin instance - (bnc#793182). - -------------------------------------------------------------------- -Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com - -- udev: path_id - handle Hyper-V devices - add: 1008-udev-path_id-handle-Hyper-V-devices.patch -- keymap: Update the list of Samsung Series 9 models - add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch -- keymap: Add Samsung 700T - add: 1010-keymap-Add-Samsung-700T.patch -- libudev: avoid leak during realloc failure - add: 1011-libudev-avoid-leak-during-realloc-failure.patch -- libudev: do not resolve $attr{device} symlinks - add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch -- libudev: validate 'udev' argument to udev_enumerate_new() - add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch -- udev: fix whitespace - add: 1014-udev-fix-whitespace.patch -- udev: properly handle symlink removal by 'change' event - add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch -- udev: builtin - do not fail builtin initialization if one of - them returns an error - add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch -- udev: use usec_t and now() - add: 1017-udev-use-usec_t-and-now.patch - -------------------------------------------------------------------- -Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com - -- udevd: add missing ':' to getopt_long 'e'. - add: 1007-udevd-add-missing-to-getopt_long-e.patch -- clean up systemd.spec, make it easy to see which are udev and - systemd patches. -- make 'reload' and 'force-reload' LSB compliant (bnc#793936). - -------------------------------------------------------------------- -Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org - -- detect-btrfs-ssd.patch: Fix btrfs detection on SSD. -- timedated-donot-close-bogus-dbus-connection.patch: Avoid - closing an non-existent dbus connection and getting assertion - failures. - -------------------------------------------------------------------- -Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com - -- add conflicts between udev-mini and udev-mini-devel to libudev1 - -------------------------------------------------------------------- -Thu Dec 6 22:47:09 UTC 2012 - crrodriguez@opensuse.org - -- revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch: - do not consider failure to umount / and /usr an error. - -------------------------------------------------------------------- -Wed Dec 5 15:13:27 UTC 2012 - fcrozat@suse.com - -- Add fix-devname-prefix.patch: fix modules.devname path, it isn't - in /usr. -- Move post script to fix symlinks in /etc/systemd/system to a - trigger to run it after old systemd is uninstalled. - -------------------------------------------------------------------- -Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com - -- Add fix-debugshell.patch: use /bin/bash if sushell isn't - installed (bnc#789052). -- Add handle-root-uses-lang.patch: handle ROOT_USES_LANG=ctype - (bnc#792182). -- Ensure libudev1 and libudev-mini1 conflicts. - -------------------------------------------------------------------- -Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com - -- Fix creation of /dev/root link. - -------------------------------------------------------------------- -Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com - -- Add remount-ro-before-unmount.patch: always remount read-only - before unmounting in final shutdown loop. -- Add switch-root-try-pivot-root.patch: try pivot_root before - overmounting / - -------------------------------------------------------------------- -Tue Nov 20 09:36:43 UTC 2012 - fcrozat@suse.com - -- links more manpages for migrated tools (from Christopher - Yeleighton). -- disable boot.localnet service, ypbind service will do the right - thing now (bnc#716746) -- add xdm-display-manager.patch: pull xdm.service instead of - display-manager.service (needed until xdm initscript is migrated - to native systemd service). -- Add fix-permissions-btmp.patch: ensure btmp is owned only by root - (bnc#777405). -- Have the udev package create a tape group, as referenced by - 50-udev-default.rules and 60-persistent-storage-tape.rules - (DimStar). -- Add fix-bad-memory-access.patch: fix crash in journal rotation. -- Add fix-dbus-crash.patch: fix D-Bus caused crash. -- Add sync-on-shutdown.patch: ensure sync is done when initiating - shutdown. -- Add mount-efivars.patch: mount efivars if booting on UEFI. - - -------------------------------------------------------------------- -Thu Nov 15 14:31:28 UTC 2012 - fcrozat@suse.com - -- Ship a empty systemd-journald initscript in systemd-logger to - stop insserv to complain about missing syslog dependency. -- Update - 0001-service-Fix-dependencies-added-when-parsing-insserv..patch - with bug fixes from Debian. - -------------------------------------------------------------------- -Wed Nov 14 17:36:05 UTC 2012 - fcrozat@suse.com - -- /var/log/journal is now only provided by systemd-logger (journal - won't be persistent for people using another syslog - implementation). -- install README in /var/log (in systemd-logger) and /etc/init.d -- create adm group when installing systemd. -- fix path in udev-root-symlink.systemd. -- Enforce Requires(post) dependency on libudev in main systemd - package (help upgrade). -- Ensure configuration is reloaded when upgrading and save random - seed when installing. -- Create /lib/udev symlink, if we do a fresh install. -- Add fix-build-glibc217.patch: fix build with latest glibc. -- Add libgcrypt.m4: copy of autoconf macro from libgcrypt, only - used to bootstrap systemd-mini. - -------------------------------------------------------------------- -Tue Nov 6 14:40:37 UTC 2012 - coolo@suse.com - -- adding a package systemd-logger that blocks syslog implementations - from installation to make an installation that only uses the journal - -------------------------------------------------------------------- -Mon Nov 5 14:37:46 UTC 2012 - fcrozat@suse.com - -- Don't hardcode path for systemctl in udev post script. -- Ensure systemd-udevd.service is shadowing boot.udev when booting - under systemd. -- Fix udev daemon upgrade under both systemd and sysvinit. -- Add fix-logind-pty-seat.patch: fix logind complaining when doing - su/sudo in X terminal. - -------------------------------------------------------------------- -Sat Nov 3 07:21:44 UTC 2012 - coolo@suse.com - -- add libudev1 to baselibs.conf - -------------------------------------------------------------------- -Fri Nov 2 14:07:15 UTC 2012 - coolo@suse.com - -- udev is GPL-2.0, the rest remains LGPL-2.1+ (bnc#787824) - -------------------------------------------------------------------- -Mon Oct 29 13:01:20 UTC 2012 - fcrozat@suse.com - -- Add var-run-lock.patch: make sure /var/run and /var/lock are - handled as bind mount if they aren't symlinks. -- Update storage-after-cryptsetup.patch with new systemctl path. -- Migrate broken symlinks in /etc/systemd/system due to new systemd - location. - -------------------------------------------------------------------- -Fri Oct 26 13:37:52 UTC 2012 - fcrozat@suse.com - -- Update to release 195: - + journalctl agained --since and --until, as well as filtering - for units with --unit=/-u. - + allow ExecReload properly for Type=oneshot (needed for - iptables.service, rpc-nfsd.service). - + journal daemon supports time-based rotation and vaccuming. - + journalctl -F allow to list all values of a certain field in - journal database. - + new commandline clients for timedated, locald and hostnamed - + new tool systemd-coredumpctl to list and extract coredumps from - journal. - + improve gatewayd: follow mode, filtering, support for - HTML5/JSON Server-Sent-Events. - + reload support in SysV initscripts is now detected when file is - parted. - + "systemctl status --follow" as been removed, use "journalctl -fu - instead" - + journald.conf RuntimeMinSize and PersistentMinSize settings - have been removed. -- Add compatibility symlink for systemd-ask-password and systemctl - in /bin. - -------------------------------------------------------------------- -Thu Oct 18 12:27:07 UTC 2012 - fcrozat@suse.com - -- Create and own more systemd drop-in directories. - -------------------------------------------------------------------- -Tue Oct 16 13:18:13 UTC 2012 - fcrozat@suse.com - -- Improve mini packages for bootstrapping. -- do not mount /tmp as tmpfs by default. - -------------------------------------------------------------------- -Tue Oct 16 07:40:23 UTC 2012 - fcrozat@suse.com - -- Fix install script when there is no inittab - -------------------------------------------------------------------- -Mon Oct 15 14:48:47 UTC 2012 - fcrozat@suse.com - -- Create a systemd-mini specfile to prevent cycle in bootstrapping - -------------------------------------------------------------------- -Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com - -- udev and its subpackages are now generated by systemd source - package. -- migrate udev and systemd to /usr -- Update to version 194: - + if /etc/vconsole.conf is non-existent or empty and if - /etc/sysconfig/console:CONSOLE_FONT (resp - /etc/sysconfig/keyboard:KEYTABLE) set, console font (resp - keymap) is not modified. -- Changes from version 44 to 193: - + journalctl gained --cursor= to show entries starting from a - specified location in journal. - + Size limit enforced to 4K for fields exported with "-o json" in - journalctl. Use --all to disable this behavior. - + Optional journal gateway daemon - (systemd-journal-gatewayd.service) to access journal via HTTP - and JSON. Use "wget http://localhost:19531/entries" to get - /var/log/messages compatible format and - 'curl -H"Accept: application/json" - http://localhost:19531/entries' for JSON formatted content. - HTML5 static page is also available as explained on - http://0pointer.de/public/journal-gatewayd - + do not mount cpuset controler, doesn't work well by default - ATM. - + improved nspawn behaviour with /etc/localtime - + journald logs its maximize size on disk - + multi-seat X wrapper (partially merged in upstream X server). - + HandleSleepKey has been splitted into HandleSuspendKey and - HandleHibernateKey. - + systemd and logind now handle system sleep states, in - particular suspending and hibernating. - + new cgroups are mounted by default (cpu, cpuacct, - net_cls, net_pri) - + sync at shutdown is now handled by kernel - + imported journalctl output (colors, filtering, pager, bash - completion). - + suffix ".service" may now be ommited on most systemctl command - involving service unit names. - + much improved nspawn containers support. - + new conditions added : ConditionFileNotEmpty, ConditionHost, - ConditionPathIsReadWrite - + tmpfiles "w" supports file globbing - + logind handles lid switch, power and sleep keys all the time, - unless systemd-inhibit - --what=handle-power-key:handle-sleep-key:handle-lid-switch is - run by Desktop Environments. - + support for reading structured kernel message is used by - default (need kernel >= 3.5). /proc/kmsg is now used only by - classic syslog daemons. - + Forward Secure Sealing is now support for Journal files. - + RestartPrevenExitStatus and SuccessExitStatus allow configure - of exit status (exit code or signal). - + handles keyfile-size and keyfile-offset in /etc/crypttab. - + TimeoutSec settings has been splitted into TimeoutStartSec and - TimeoutStopSec. - + add SystemCallFilters option to add blacklist/whitelist to - system calls, using SECCOMP mode 2 of kernel >= 3.5. - + systemctl udevadm info now takes a /dev or /sys path as argument: - - udevadm info /dev/sda - + XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames. - + systemd-loginctl and systemd-journalctl have been renamed - to loginctl and journalctl to match systemctl. - + udev: RUN+="socket:..." and udev_monitor_new_from_socket() is - no longer supported. udev_monitor_new_from_netlink() needs to - be used to subscribe to events. - + udev: when udevd is started by systemd, processes which are left - behind by forking them off of udev rules, are unconditionally - cleaned up and killed now after the event handling has finished. - Services or daemons must be started as systemd services. - Services can be pulled-in by udev to get started, but they can - no longer be directly forked by udev rules. - + For almost all files, license is now LGPL2.1+ (from previous - GPL2.0+). Exception are some minor stuff in udev (will be - changed to LGPL2.1 eventually) and MIT license sd-daemon.[ch] - library. - + var-run.mount and var-lock.mount are no longer provided - (should be converted to symlinks). - + A new service type Type=idle to avoid ugly interleaving of - getty output and boot status messages. - + systemd-delta has been added, a tool to explore differences - between user/admin configuration and vendor defaults. - + /tmp mouted as tmpfs by default. - + /media is now longer mounted as tmpfs - + GTK tool has been split off to systemd-ui package. - + much improved documentation. -- Merge BuildRequires from udev package: - gobject-introspection-devel, gtk-doc, libsepol-devel, - libusb-devel, pkgconfig(blkid), pkgconfig-glib-2.0), - pjgconfig(libcryptsetup), pkgconfig(libpci), - pkgconfig(libqrencode), pkgconfig(libselinux), - pkgconfig(usbutils). -- Add pkgconfig(libqrencode) and pkgconfig(libmicrohttpd) -- Merge sources from udev package: boot.udev, write_dev_root.rules, - udev-root-symlink.systemd. -- Merge patches from udev package: numbered started from 1000): - 0001-Reinstate-TIMEOUT-handling.patch, - 0013-re-enable-by_path-links-for-ata-devices.patch, - 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch, - 0026-udev-netlink-null-rules.patch, - 0027-udev-fix-sg-autoload-regression.patch. -- Remove following patches, merged upstream: - 0001-util-never-follow-symlinks-in-rm_rf_children.patch, - fixppc.patch, logind-logout.patch, fix-getty-isolate.patch, - fix-swap-priority.patch, improve-restart-behaviour.patch, - fix-dir-noatime-tmpfiles.patch, journal-bugfixes.patch, - ulimit-support.patch, change-terminal.patch, - fix-tty-startup.patch, fix-write-user-state-file.patch, - fix-analyze-exception.patch, use_localtime.patch, - journalctl-pager-improvement.patch, - avoid-random-seed-cycle.patch, - 0001-add-sparse-support-to-detect-endianness-bug.patch, - drop-timezone.patch. -- Rebase the following patches: - 0001-Add-bootsplash-handling-for-password-dialogs.patch, - 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, - 0001-service-Fix-dependencies-added-when-parsing-insserv..patch, - 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch, - crypt-loop-file.patch, - delay-fsck-cryptsetup-after-md-lvm-dmraid.patch, - dm-lvm-after-local-fs-pre-target.patch, fastboot-forcefsck.patch, - fix-enable-disable-boot-initscript.patch, modules_on_boot.patch, - new-lsb-headers.patch, storage-after-cryptsetup.patch, - support-suse-clock-sysconfig.patch, support-sysvinit.patch, - sysctl-modules.patch, systemd-numlock-suse.patch, tty1.patch. - -------------------------------------------------------------------- -Thu Aug 23 11:11:25 CEST 2012 - fcrozat@suse.com - -- Add use_localtime.patch: use /etc/localtime instead of - /etc/timezone (bnc#773491) -- Add support-suse-clock-sysconfig.patch: read SUSE - /etc/sysconfig/clock file. -- Add drop-timezone.patch: drop support for /etc/timezone, never - supported on openSUSE. -- Add journalctl-pager-improvement.patch: better handle output when - using pager. -- Add fix-enable-disable-boot-initscript.patch: support boot.* - initscripts for systemctl enable /disable (bnc#746506). - -------------------------------------------------------------------- -Mon Jul 30 11:37:17 UTC 2012 - fcrozat@suse.com - -- Ensure systemd macros never fails (if systemd isn't install) - -------------------------------------------------------------------- -Mon Jul 23 08:28:15 UTC 2012 - fcrozat@suse.com - -- Add fix-analyze-exception.patch: prevent exception if running - systemd-analyze before boot is complete (bnc#772506) - -------------------------------------------------------------------- -Fri Jul 20 19:24:08 CEST 2012 - sbrabec@suse.cz - -- Fix NumLock detection/set race condition (bnc#746595#c47). - -------------------------------------------------------------------- -Wed Jul 18 13:14:37 UTC 2012 - fcrozat@suse.com - -- Move systemd-analyse to a subpackage, to remove any python - dependencies from systemd main package (bnc#772039). - -------------------------------------------------------------------- -Tue Jul 10 16:48:20 UTC 2012 - fcrozat@suse.com - -- Add fastboot-forcefsck.patch: ensure fastboot and forcefsck on - kernel commandline are handled. -- Add fix-write-user-state-file.patch: write logind state file - correctly. -- Disable logind-logout.patch: cause too many issues (bnc#769531). - -------------------------------------------------------------------- -Mon Jul 9 11:01:20 UTC 2012 - fcrozat@suse.com - -- Add fix-tty-startup.patch: don't limit tty VT to 12 (bnc#770182). - -------------------------------------------------------------------- -Tue Jul 3 20:07:47 CEST 2012 - sbrabec@suse.cz - -- Fix SUSE specific sysconfig numlock logic for 12.2 (bnc#746595). - -------------------------------------------------------------------- -Tue Jul 3 17:58:39 CEST 2012 - fcrozat@suse.com - -- Add fix-dir-noatime-tmpfiles.patch: do not modify directory - atime, which was preventing removing empty directories - (bnc#751253, rh#810257). -- Add improve-restart-behaviour.patch: prevent deadlock during - try-restart (bnc#743218). -- Add journal-bugfixes.patch: don't crash when rotating journal - (bnc#768953) and prevent memleak at rotation time too. -- Add ulimit-support.patch: add support for system wide ulimit - (bnc#744818). -- Add change-terminal.patch: use vt102 instead of vt100 as terminal - for non-vc tty. -- Package various .wants directories, which were no longer packaged - due to plymouth units being removed from systemd package. -- Fix buildrequires for manpages build. - -------------------------------------------------------------------- -Mon Jul 2 15:44:28 UTC 2012 - fcrozat@suse.com - -- Do not ship plymouth units, they are shipped by plymouth package - now (bnc#769397). -- Fix module loading (bnc#769462) - -------------------------------------------------------------------- -Thu Jun 7 13:14:40 UTC 2012 - fcrozat@suse.com - -- Add fix-swap-priority: fix default swap priority (bnc#731601). - -------------------------------------------------------------------- -Fri May 25 11:08:27 UTC 2012 - fcrozat@suse.com - -- Re-enable logind-logout.patch, fix in xdm-np PAM file is the real - fix. - -------------------------------------------------------------------- -Thu May 24 11:45:54 UTC 2012 - fcrozat@suse.com - -- Update new-lsb-headers.patch to handle entries written after - description tag (bnc#727771, bnc#747931). - -------------------------------------------------------------------- -Thu May 3 11:40:20 UTC 2012 - fcrozat@suse.com - -- Disable logind-logout.patch: it crashes sudo session (if called - after su -l) (bnc#746704). - -------------------------------------------------------------------- -Tue Apr 24 15:46:54 UTC 2012 - fcrozat@suse.com - -- Add fix-getty-isolate.patch: don't quit getty when changing - runlevel (bnc#746594) - -------------------------------------------------------------------- -Fri Apr 20 17:16:37 CEST 2012 - sbrabec@suse.cz - -- Implemented SUSE specific sysconfig numlock logic (bnc#746595). - -------------------------------------------------------------------- -Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com - -- Add dbus-1 as BuildRequires to fix build. - -------------------------------------------------------------------- -Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com - -- apply ppc patch to systemd-gtk too (fixes build) - -------------------------------------------------------------------- -Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com - -- Update fixppc.patch with upstream patches -- Add comments from upstream in - 0001-util-never-follow-symlinks-in-rm_rf_children.patch. -- Add logind-logout.patch: it should fix sudo / su with pam_systemd - (bnc#746704). - -------------------------------------------------------------------- -Mon Mar 19 14:07:23 UTC 2012 - fcrozat@suse.com - -- Add 0001-add-sparse-support-to-detect-endianness-bug.patch: fix - endianness error, preventing journal to work properly on ppc. -- Add fixppc.patch: fix build and warnings on ppc. - -------------------------------------------------------------------- -Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com - -- Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix - CVE-2012-1174 (bnc#752281). - -------------------------------------------------------------------- -Fri Mar 16 09:21:54 UTC 2012 - fcrozat@suse.com - -- Update to version 43: - + Support optional initialization of the machine ID from the KVM - or container configured UUID. - + Support immediate reboots with "systemctl reboot -ff" - + Show /etc/os-release data in systemd-analyze output - + Many bugfixes for the journal, including endianess fixes and - ensuring that disk space enforcement works - + non-UTF8 strings are refused if used in configuration and unit - files. - + Register Mimo USB Screens as suitable for automatic seat - configuration - + Reorder configuration file lookup order. /etc now always - overrides /run. - + manpages for journal utilities. -- Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, - systemd-journald-fix-endianess-bug.patch. -- Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). - -------------------------------------------------------------------- -Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com - -- Add fix-c++-compat.patch: fix C++ compatibility error in header. - -------------------------------------------------------------------- -Wed Feb 29 13:22:17 UTC 2012 - fcrozat@suse.com - -- Add systemd-journald-fix-endianess-bug.patch: fix journald not - starting on ppc architecture. -- Add correct_plymouth_paths_and_conflicts.patch: ensure plymouth - is correctly called and conflicts with bootsplash. - -------------------------------------------------------------------- -Tue Feb 21 08:58:31 UTC 2012 - fcrozat@suse.com - -- Remove rsyslog listen.conf, handled directly by rsyslog now - (bnc#747871). - -------------------------------------------------------------------- -Mon Feb 20 13:33:45 UTC 2012 - fcrozat@suse.com - -- Update to version 43: - + requires /etc/os-release, support for /etc/SuSE-release is no - longer present. - + Track class of PAM logins to distinguish greeters from normal - user logins. - + Various bug fixes. - -------------------------------------------------------------------- -Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de - -- Use pkgconfig symbols for BuildRequires and specify version - -------------------------------------------------------------------- -Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com - -- Enable Plymouth integration. - * Bootsplash related files will be moved to the bootsplash - package - -------------------------------------------------------------------- -Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com - -- Update to version 42: - + Various bug fixes - + Watchdog support for supervising services is now usable - + Service start rate limiting is now configurable and can be - turned off per service. - + New CanReboot(), CanPowerOff() bus calls in systemd-logind -- Dropped fix-kmod-build.patch, fix-message-after-chkconfig.patch, - is-enabled-non-existing-service.patch (merged upstream) -- Add libxslt1 / docbook-xsl-stylesheets as BuildRequires for - manpage generation - -------------------------------------------------------------------- -Thu Feb 9 16:19:38 UTC 2012 - fcrozat@suse.com - -- Update to version 41: - + systemd binary is now installed in /lib/systemd (symlink for - /bin/systemd is available now) - + kernel modules are now loaded through libkmod - + Watchdog support is now useful (not complete) - + new kernel command line available to set system wide - environment variable: systemd.setenv - + journald capabilities set is now limited - + SIGPIPE is ignored by default. This can be disabled with - IgnoreSIGPIPE=no in unit files. -- Add fix-kmod-build.patch: fix build with libkmod -- Drop remote-fs-after-network.patch (merged upstream) -- Add dm-lvm-after-local-fs-pre-target.patch: ensure md / lvm - /dmraid is started before mounting partitions, if fsck was - disabled for them (bnc#733283). -- Update lsb-header patch to correctly disable heuristic if - X-Systemd-RemainAfterExit is specified (whatever its value) -- Add fix-message-after-chkconfig.patch: don't complain if only - sysv services are called in systemctl. -- Add is-enabled-non-existing-service.patch: fix error message when - running is-enabled on non-existing service. - -------------------------------------------------------------------- -Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com - -- Update to version 40: - + reason why a service failed is now exposed in the"Result" D-Bus - property. - + Rudimentary service watchdog support (not complete) - + Improve bootcharts, by immediatly changing argv[0] after - forking to to reflect which process will be executed. - + Various bug fixes. -- Add remote-fs-after-network.patch and update insserv patch: - ensure remote-fs-pre.target is enabled and started before network - mount points (bnc#744293). -- Ensure journald doesn't prevent syslogs to read from /proc/kmsg. - -------------------------------------------------------------------- -Tue Jan 31 13:40:51 CET 2012 - fcrozat@suse.com - -- Ensure systemd show service status when started behind bootsplash - (bnc#736225). -- Disable core dump redirection to journal, not stable atm. - -------------------------------------------------------------------- -Thu Jan 26 16:00:27 UTC 2012 - fcrozat@suse.com - -- Update modules_on_boot.patch to not cause failed state for - systemd-modules-load.service (bnc#741481). - -------------------------------------------------------------------- -Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com - -- Update to version 39: - + New systemd-cgtop tool to show control groups by their resource - usage. - + Linking against libacl for ACLs is optional again. - + If a group "adm" exists, journal files are automatically owned - by them, thus allow members of this group full access to the - system journal as well as all user journals. - + The journal now stores the SELinux context of the logging - client for all entries. - + Add C++ inclusion guards to all public headers. - + New output mode "cat" in the journal to print only text - messages, without any meta data like date or time. - + Include tiny X server wrapper as a temporary stop-gap to teach - XOrg udev display enumeration (until XOrg supports udev - hotplugging for display devices). - + Add new systemd-cat tool for executing arbitrary programs with - STDERR/STDOUT connected to the journal. Can also act as BSD - logger replacement, and does so by default. - + Optionally store all locally generated coredumps in the journal - along with meta data. - + systemd-tmpfiles learnt four new commands: n, L, c, b, for - writing short strings to files (for usage for /sys), and for - creating symlinks, character and block device nodes. - + New unit file option ControlGroupPersistent= to make cgroups - persistent. - + Support multiple local RTCs in a sane way. - + No longer monopolize IO when replaying readahead data on - rotating disks. - + Don't show kernel threads in systemd-cgls anymore, unless - requested with new -k switch. -- Drop systemd-syslog_away_early_on_shutdown.patch: fixed upstream. -- Add fdupes to BuildRequires and use it at build time. - -------------------------------------------------------------------- -Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com - -- Make the systemd journal persistent by creating the - /var/log/journal directory - -------------------------------------------------------------------- -Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com - -- Update to version 38 : - - Bugfixes - - Implementation of a Journal Utility Library - - Implementation of a 128 Bit ID Utility Library -- 11 Patches integrated upstream -- Add systemd-syslog_away_early_on_shutdown.patch: make sure - syslog socket goes away early during shutdown. -- Add listen.conf for rsyslog. This will ensure that it will still - work fine with rsyslog and the new journal. - -------------------------------------------------------------------- -Mon Jan 9 17:01:22 UTC 2012 - fcrozat@suse.com - -- Add fix-is-enabled.patch: ensure systemctl is-enabled work - properly when systemd isn't running. -- Add logind-console.patch: do not bail logind if /dev/tty0 doesn't - exist (bnc#733022, bnc#735047). -- Add sysctl-modules.patch: ensure sysctl is started after modules - are loaded (bnc#725412). -- Fix warning in insserv patch. -- Update avoid-random-seed-cycle.patch with better upstream - approach. -- Update storage-after-cryptsetup.patch to restart lvm before - local-fs.target, not after it (bnc#740106). -- Increase pam-config dependency (bnc#713319). - -------------------------------------------------------------------- -Wed Dec 7 15:15:07 UTC 2011 - fcrozat@suse.com - -- Remove storage-after-cryptsetup.service, add - storage-after-cryptsetup.patch instead to prevent dependency - cycle (bnc#722539). -- Add delay-fsck-cryptsetup-after-md-lvm-dmraid.patch: ensure - fsck/cryptsetup is run after lvm/md/dmraid have landed - (bnc#724912). -- Add cron-tty-pam.patch: Fix cron filling logs (bnc#731358). -- Add do_not_warn_pidfile.patch: Fix PID warning in logs - (bnc#732912). -- Add mount-swap-log.patch: Ensure swap and mount output is - redirected to default log target (rhb#750032). -- Add color-on-boot.patch: ensure colored status are displayed at - boot time. -- Update modules_on_boot.patch to fix bnc#732041. -- Replace private_tmp_crash.patch with log_on_close.patch, better - upstream fix for bnc#699829 and fix bnc#731719. -- Update vconsole patch to fix memleaks and crash (bnc#734527). -- Add handle-racy-daemon.patch: fix warnings with sendmail - (bnc#732912). -- Add new-lsb-headers.patch: support PIDFile: and - X-Systemd-RemainAfterExit: header in initscript (bnc#727771). -- Update bootsplash services to not start if vga= is missing from - cmdline (bnc#727771) -- Add lock-opensuse.patch: disable /var/lock/{subsys,lockdev} and - change default permissions on /var/lock (bnc#733523). -- Add garbage_collect_units: ensure error units are correctly - garbage collected (rhb#680122). -- Add crypt-loop-file.patch: add support for crypt file loop - (bnc#730496). - -------------------------------------------------------------------- -Sat Nov 19 15:40:38 UTC 2011 - coolo@suse.com - -- add libtool as buildrequire to avoid implicit dependency - -------------------------------------------------------------------- -Fri Nov 4 14:44:18 UTC 2011 - fcrozat@suse.com - -- Fix rpm macros to only call presets on initial install - (bnc#728104). - -------------------------------------------------------------------- -Thu Oct 27 13:39:03 UTC 2011 - fcrozat@suse.com - -- Add no-tmpfs-fsck.patch: don't try to fsck tmpfs mountpoint - (bnc#726791). - -------------------------------------------------------------------- -Wed Oct 19 13:18:54 UTC 2011 - fcrozat@suse.com - -- Add avoid-random-seed-cycle.patch: fix dependency cycle between - cryptsetup and random-seed-load (bnc#721666). -- Add crash-isolating.patch: fix crash when isolating a service. -- Fix bootsplash being killed too early. -- Fix some manpages not being redirected properly. -- Add storage-after-cryptsetup.service to restart lvm after - cryptsetup. Fixes lvm on top of LUKS (bnc#724238). - -------------------------------------------------------------------- -Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com - -- Recommends dbus-1-python, do not requires python (bnc#716939) -- Add private_tmp_crash.patch: prevent crash in debug mode - (bnc#699829). -- Add systemctl-completion-fix.patch: fix incorrect bash completion - with some commands (git). - -------------------------------------------------------------------- -Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com - -- Shadow single sysv service, it was breaking runlevel 1. -- Add modules_on_boot.patch to handle /etc/sysconfig/kernel - MODULES_ON_BOOT variable (bnc#721662). - -------------------------------------------------------------------- -Wed Oct 12 08:38:36 UTC 2011 - fcrozat@suse.com - -- Update to release 37: - - many bugfixes - - ConditionCapability added, useful for containers. - - locale mechanism got extend to kbd configuration for - both X and the console - - don't try to guess PID for SysV services anymore (bnc#723194) -- Drop detect-non-running.patch, logind-warning.patch. -- Rewrite systemd-sysv-convert in bash (bnc#716939) -------------------------------------------------------------------- -Tue Oct 11 13:57:32 UTC 2011 - coolo@suse.com - -- make sure updaters get in the /sbin/init from here - the sub package - of the split package will decide which init wins in update case - -------------------------------------------------------------------- -Tue Oct 11 13:10:27 UTC 2011 - coolo@suse.com - -- under openSUSE if it's not systemd, chances are good it's - sysvinit - -------------------------------------------------------------------- -Tue Oct 11 11:07:02 UTC 2011 - coolo@suse.com - -- do not list specific sbin_init providers - -------------------------------------------------------------------- -Wed Oct 5 16:18:48 UTC 2011 - fcrozat@suse.com - -- Add logind-warning.patch: fix pam warning (bnc#716384) - -------------------------------------------------------------------- -Fri Sep 30 13:55:31 UTC 2011 - fcrozat@suse.com - -- Update to version 36 : - - many bugfixes - - systemd now requires socket-activated syslog implementations - - After=syslog.target is no longer needed in .service files - - X-Interactive is ignored in LSB headers (was not working) -- Enable back insserv.conf parsing in systemd core and fix added - dependencies (bnc#721428). -- Fix detection of LSB services status when running daemon - (bnc#721426). -- Drop 0001-execute-fix-bus-serialization-for-commands.patch, - fix-reload.patch - -------------------------------------------------------------------- -Thu Sep 29 16:08:33 UTC 2011 - fcrozat@suse.com - -- Add services to stop bootsplash at end of startup and start it at - beginning of shutdown. -- Fix bootsplash call and ensure dependencies are set right. - -------------------------------------------------------------------- -Thu Sep 29 13:43:00 UTC 2011 - fcrozat@suse.com - -- Add detect-non-running.patch: fix assertion when running - systemctl under non systemd system (git). -- Requires presets branding package. -- Improve macros a little bit. - -------------------------------------------------------------------- -Mon Sep 26 14:52:46 UTC 2011 - fcrozat@suse.com - -- Merge migration rpm macros into service_add/service_del macros. -- Use systemd presets in rpm macros -- Add fix-reload.patch: handle daemon-reload and start condition - properly (bnc#719221). - -------------------------------------------------------------------- -Fri Sep 23 15:39:03 UTC 2011 - fcrozat@suse.com - -- Add systemd-splash / bootsplash-startup.service: enable - bootsplash at startup. - -------------------------------------------------------------------- -Fri Sep 16 15:54:54 UTC 2011 - fcrozat@suse.com - -- Create -32bit package (bnc#713319) - -------------------------------------------------------------------- -Mon Sep 12 08:33:04 UTC 2011 - fcrozat@suse.com - -- Do not mask localnet service, it is not yet handled by systemd. - (bnc#716746) - -------------------------------------------------------------------- -Fri Sep 9 09:28:54 UTC 2011 - fcrozat@suse.com - -- Add revert_insserv_conf_parsing.patch and systemd-insserv_conf: - remove insserv.conf parsing from systemd and use generator - instead. -- put back default.target creation at package install and remove - inittab generator, Yast2 is now able to create it. - -------------------------------------------------------------------- -Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com - -- Update to version 34: - * Bugfixes - * optionaly apply cgroup attributes to cgroups systemd creates - * honour sticky bit when trimming cgroup trees - * improve readahead -- Add libacl-devel as BuildRequires (needed for systemd-uaccess) -- Add some %{nil} to systemd.macros to fix some build issues. -- Fix dbus assertion -- move gtk part to its own package, to reduce bootstrapping - (bnc#713981). - -------------------------------------------------------------------- -Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com - -- Update compose_table patch to use two separate loadkeys call, - compose table overflows otherwise (spotted by Werner Fink). - -------------------------------------------------------------------- -Wed Aug 24 13:02:12 UTC 2011 - fcrozat@novell.com - -- Add tty1.patch: ensure passphrase are handled before starting - gettty on tty1. -- Add inittab generator, creating default.target at startup based - on /etc/inittab value. -- No longer try to create /etc/systemd/system/default.target at - initial package install (bnc#707418) -- Fix configuration path used for systemd user manager. -- Ensure pam-config output is no display in install script. -- Remove buildrequires on vala, no longer needed. - -------------------------------------------------------------------- -Fri Aug 19 15:29:49 UTC 2011 - fcrozat@suse.com - -- Handle disable_capslock, compose table and kbd_rate -- Add rpm macros.systemd file. -- Do not disable klogd, it has its own service now. -- Handle kexec correctly (bnc#671673). -- Disable preload services, they are conflicting with systemd. - -------------------------------------------------------------------- -Fri Aug 19 08:15:15 UTC 2011 - fcrozat@suse.com - -- enable pam_systemd module, using pam-config. - -------------------------------------------------------------------- -Thu Aug 18 07:31:12 UTC 2011 - aj@suse.de - -- Fix crash with systemctl enable. - -------------------------------------------------------------------- -Tue Aug 16 17:02:27 UTC 2011 - fcrozat@suse.com - -- Fix localfs.service to no cause cycle and starts it after - local-fs.target. - -------------------------------------------------------------------- -Thu Aug 4 15:59:58 UTC 2011 - fcrozat@suse.com - -- Remove root-fsck.patch, mkinitrd will use the same path as - dracut. -- Add systemd-cryptsetup.patch: don't complain on "none" option in - crypttab. -- Add systemd-cryptsetup-query.patch: block boot until passphrase - is typed. - -------------------------------------------------------------------- -Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com - -- Add root-fsck.patch: do not run fsck on / if it is rw -- Ship a non null localfs.service, fixes static mount points not - being mounted properly. - -------------------------------------------------------------------- -Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de - -- Update to version 33: - * optimizations and bugfixes. - * New PrivateNetwork= service setting which allows you to shut off - networking for a specific service (i.e. all routable network - interfaces will disappear for that service). - * Merged insserv-parsing.patch and bash-completion-restart.patch - patches. - -------------------------------------------------------------------- -Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com - -- Add insserv-parsing.patch: read/parse insserv.conf. -- Add bash-completion-restart.patch: fix restart service list - (bnc#704782). - -------------------------------------------------------------------- -Mon Aug 1 09:04:53 UTC 2011 - aj@suse.de - -- Split up devel package. -- restart logind after upgrade. -- Adjust rpmlintrc for changes. - -------------------------------------------------------------------- -Fri Jul 29 10:48:20 UTC 2011 - aj@suse.de - -- Update to version 32: - * bugfixes - * improve selinux setup - -------------------------------------------------------------------- -Thu Jul 28 07:27:32 UTC 2011 - aj@suse.de - -- Update to version 31: - * rewrite of enable/disable code: New features systemctl --runtime, - systemctl mask, systemctl link and presets. - * sd-daemon is now shared library. - -------------------------------------------------------------------- -Tue Jul 19 11:56:43 UTC 2011 - aj@suse.de - -- Update to version 30: - + Logic from pam_systemd has been moved to new systemd-login. - + VT gettys are autospawn only when needed - + Handle boot.local/halt.local on SUSE distribution - + add support for systemctl --root - -------------------------------------------------------------------- -Wed Jun 29 12:54:24 UTC 2011 - fcrozat@suse.com - -- Make sure to not start kbd initscript, it is handled by systemd - natively. - -------------------------------------------------------------------- -Fri Jun 17 09:34:24 UTC 2011 - fcrozat@novell.com - -- version 29: - + enable chkconfig support in systemctl for openSUSE. - + systemctl: plug a leak upon create_symlink mismatch - + mount /run without MS_NOEXEC - + dbus: fix name of capability property - + systemctl: fix double unref of a dbus message - + cryptsetup-generator: fix /etc/cryptsetup options - + selinux: selinuxfs can be mounted on /sys/fs/selinux - + readahead-common: fix total memory size detection - + systemctl: fix 'is-enabled' for native units under /lib - + systemctl: fix a FILE* leak - + pam-module: add debug= parameter - + remote-fs.target: do not order after network.target -- update tarball url. - -------------------------------------------------------------------- -Wed Jun 15 10:00:29 UTC 2011 - saschpe@suse.de - -- Use RPM macros instead of $RPM_FOO variables -- Don't require %{version}-%{release} of the base package, - %{version} is sufficient - -------------------------------------------------------------------- -Tue Jun 14 15:10:41 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - mount /run without MS_NOEXEC - - readahead-common: fix total memory size detection - - enable chkconfig support in systemctl for openSUSE - - selinux: selinuxfs can be mounted on /sys/fs/selinux - - cryptsetup-generator: fix /etc/cryptsetup options - - systemctl: fix double unref of a dbus message -- drop merged chkconfig patch - -------------------------------------------------------------------- -Tue Jun 14 12:39:25 UTC 2011 - fcrozat@novell.com - -- Add sysv chkconfig patch to be able to enable / disable sysv - initscripts with systemctl. -- Ensure plymouth support is buildable conditionnally. - -------------------------------------------------------------------- -Thu May 26 21:16:06 CEST 2011 - kay.sievers@novell.com - -- version 28 - - drop hwclock-save.service - - fix segfault when a DBus message has no interface - - man: update the list of unit search locations - - readahead-collect: ignore EACCES for fanotify - - rtc in localtime: use settimeofday(NULL, tz) - instead of hwclock(8) - -------------------------------------------------------------------- -Sat May 21 23:57:30 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - fix crash in D-Bus code - -------------------------------------------------------------------- -Sat May 21 18:17:59 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - socket: always use SO_{RCV,SND}BUFFORCE to allow larger values - - util: use new VT ESC sequence to clear scrollback buffer - - sd-daemon: move _sd_hidden_ from .h to .c file - - missing: add IP_TRANSPARENT - -------------------------------------------------------------------- -Sat May 21 16:17:38 CEST 2011 - kay.sievers@novell.com - -- version 27 - - util: use open_terminal() in chvt() too - - socket: expose SO_BROADCAST - - git: add .mailmap - - exec: expose tty reset options in dbus introspection data - - socket: expose IP_TRANSPARENT - - exec: hangup/reset/deallocate VTs in gettys - - socket: use 666 socket mode by default since neither fifos, - nor sockets, nor mqueues need to be executable - - socket: add POSIX mqueue support - - README: document relation to nss-myhostname - - hostnamed: check that nss-myhostname is installed - -------------------------------------------------------------------- -Tue May 17 19:15:17 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - sysctl: apply /etc/sysctl.conf last - - systemd-analyze: print hostname, kernelversion and arch at - the top of the plot - - pam: downgrade a few log msgs - - hostnamed: SetPrettyHostname() should check PK action - org.freedesktop.hostname1.set-static-hostname - - user-sessions: ignore EROFS when unlinking /etc/nologin if - the file doesn't exist anyway - - unit: make ignoring in snapshots a per unit property, - instead of a per unit type property - - vconsole: use open_terminal() instead of open() - - units: enable automount units only if the kernel supports them - -------------------------------------------------------------------- -Thu May 5 07:45:46 UTC 2011 - coolo@opensuse.org - -- remove policy filter - -------------------------------------------------------------------- -Thu May 5 08:59:46 CEST 2011 - meissner@suse.de - -- add missing buildrequires dbus-1-devel, vala, libxslt-devel -- touch vala files for rebuilding to unbreak Factory - -------------------------------------------------------------------- -Mon May 2 23:05:35 CEST 2011 - kay.sievers@novell.com - -- also delete plymouth files - -------------------------------------------------------------------- -Mon May 2 19:00:41 CEST 2011 - kay.sievers@novell.com - -- disable plymouth sub-package until plymouth gets into Factory - -------------------------------------------------------------------- -Sun May 1 22:51:28 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - binfmt, modules-load, sysctl, tmpfiles: add missing - ConditionDirectoryNotEmpty= - - binfmt, modules-load, sysctl, tmpfiles: read /usr/local/lib - and where appropriate /lib directories - -------------------------------------------------------------------- -Sat Apr 30 04:56:55 CEST 2011 - kay.sievers@novell.com - -- version 26 - - plymouth: introduce plymouth.enable=0 kernel command line - - util: don't AND cx with cx - - man: typo in sd_daemon reference - - util: conf_files_list() return list as parameter - - dbus: make daemon reexecution synchronous - -------------------------------------------------------------------- -Thu Apr 28 14:07:12 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - service: properly notice when services with a main process - that isn't a child of init die - - unit: fix assert when trying to load unit instances for - uninstanciable types - - def: lower default timeout to 90s - - manager: fix serialization counter - -------------------------------------------------------------------- -Wed Apr 27 04:19:05 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - dbus: don't hit assert when dumping properties - - cryptsetup: fix keyfile size option processing - - socket: improve warning message when we get POLLHUP - - mount: failure to mount cgroup hierarchies should not be fatal - - configure: add AC_SYS_LARGEFILE - -------------------------------------------------------------------- -Mon Apr 25 21:45:02 CEST 2011 - kay.sievers@novell.com - -- new snapshot - - tmpfiles.d: switch to stacked config dirs in /lib, /etc, /run - - sysctl.d, binfmt.d, modules-load.d: switch to stacked config - dirs in /lib, /etc, /run - - manager: mkdir /run/systemd/system when starting up - - man: Spelling fixes - -------------------------------------------------------------------- -Thu Apr 21 04:39:57 CEST 2011 - kay.sievers@novell.com - -- version 25 - - mount: Allow creating mount units for /var/lib/nfs/rpc_pipefs - and /proc/fs/nfsd. - - socket: support ListeSpecial= sockets - - vconsole: don't set console font/keymap if settings are empty - - nspawn: don't fail when we receive SIGCHLD - - cgroup: don't accidentaly trim on reload - - units: set capability bounding set for syslog services - - socket: log more information about invalid poll events - - man: fix specification of default timeouts - - mount,crypto: rework meaning of noauto/nofail - - fsck: don't fsck against basic.target in order to properly - allow automount /home - - manager: when running in test mode, do not write generated - unit files to /run/systemd/generator - - mount: properly parse timeouts options in the middle of - the string - - hostnamed: drop all caps but CAP_SYS_ADMIN - - execute: when we run as PID 1 the kernel doesn't give us - CAP_SETPCAP by default. Get that temporarily when dropping - capabilities for good - - mount: make device timeout configurable - - cryptsetup: do not order crypto DM devices against the - cryptsetup service - - socket: reuse existing FIFOs - - socket: guarantee order in which sockets are passed to be - the one of the configuration file - - systemctl: always consider unit files with no - [Install] section but stored in /lib enabled - - job: also print status messages when we successfully started - a unit - - hostnamed: add reference to SMBIOS specs - - man: runlevel 5 is usually more comprehensive, so use it - instead of 3 to detect whether a sysv service is enabled - - polkit: follow the usual syntax for polkit actions - - hostnamed: introduce systemd-hostnamed - - units: order quotacheck after remount-rootfs - - hostname: split out hostname validation into util.c - - dbus: split out object management code into dbus-common, - and simplify it - - strv: properly override settings in env_append() - - strv: detect non-assignments in env blocks properly in - env_append() - - strv: handle empty lists in strv_copy() properly - - util: truncate newline inside of read_one_line_file() - - util: modernize get_parent_of_pid() a bit - - crypto: let the cryptsetup binary handles its own - configurable timeouts - - logger,initctl: use global exit timeout - - ask-password: use default timeout - - manager: drop all pending jobs when isolating - - manager: introduce IgnoreOnIsolate flag so that we can keep - systemd-logger around when isolating - - units: never pull in sysinit from utmp, so that we can - shutdown from emergency mode without pulling in sysinit - - manager: downgrade a few log messages - - units: require syslog.socket from the logger because we - simply fail if we don't have it - - logger: adjust socket description to match service - - units: set stdout of kmsg syslogd to /dev/null - - units: add --no-block when starting normal service after - shell exited - - ask-password: use kill(PID, 0) before querying a password - - ask-password: support passwords without timeouts - - ask-password: always send final NUL char - - ask-password: properly accept empty passwords from agent - - unit: skip default cgroup setup if we have no hierarchy - - units: isolate emergency.target instead of emergency.service - when we fail to mount all file systems - - mount: don't pull in stdio logger for root mount unit - - cgroup: be nice to Ingo Molnar - - pam: use /proc/self/sessionid only with CAP_AUDIT_CONTROL - - pam: use /proc/self/loginuid only with CAP_AUDIT_CONTROL - - socket: try creating a socket under our own identity if we - have no perms to consult the selinux database - - socket: fix check for SEQPACKET - - execute: don't fail if we cannot fix OOM in a container - - unit: fix dump output - - socket: be a bit more verbose when refusing to start a - socket unit - - socket: support netlink sockets - - local-fs: invoke emergency.service mounting at boot fails - - path: optionally, create watched directories in .path units - - tmpfiles: don't warn if two identical lines are configured - - man: add man page for ask-password - - dbus: expose monotonic timestamps on the bus - - manager: no need to use randomized generator dir when running - as system manager - - don't make up buffer sizes, use standard LINE_MAX instead - - unit: disallow configuration of more than one on_failure - dependencies if OnFailureIsolate= is on - - unit: pull in logger unit only when running in system mode - - manager: serialize/deserialize max job id and /usr taint flag - - manager: don't garbage collect jobs when isolating, to change - global state - - unit: introduce OnFailureIsolate= - - mount: relabel both before and after a mount, just in case - - cmdline: we actually want to parse the kernel cmdline in VMs, - just not in containers - - units: rename rtc-set.target to time-sync.target and pull it - in by hwclock-load.service - - job: fix deserialization of jobs: do not ignore ordering - - systemctl: properly parse JobNew signals - - service: fix units with more than one socket - - systemctl: make most operations NOPs in a chroot - - manager: don't show PID for incoming signals if it is 0 - - man: fix description of systemctl reload-or-try-restart - - mount: block creation of mount units for API file systems - - units: call the logger a bridge too - - build-sys: always place user units in /usr/lib/systemd - - pkgconfig: update .pc file accordingly - - lookup: always also look into /usr/lib for units - - exec: support unlimited resources - - selinux: relabel /run the same way as /dev after loading - the policy since they both come pre-filled and unlabelled - - manager: fd must be int, not char - - change remaining /var/run to /run - - units: move user units from /usr/share to /usr/lib since - they might be arch-dependent - - man: document /etc/sysctl.d/ - - binfmt: add binfmt tool to set up binfmt_misc at boot - - tmpfiles: create leading directories for d/D instructions - - condition: add ConditionSecurity - - load-fragment: unify config_parse_condition_{kernel, virt} - - condition: fix dumping of conditions - - initctl: /dev/initctl is a named pipe, not a socket - - kmsg-syslogd: pass facility value into kmsg - - move /var/lock to HAVE_SYSV_COMPAT - - tmpfiles: split off rules for legacy systems into legacy.conf - - general: replace a few uses of /var/run by /run - - tmpfiles: enforce new /var/lock semantics - - man: document ConditionPathIsDirectory= - - mount: also relabel pre-mounted API dirs - - log: don't strip facility when writing to kmsg - - build-sys: create a number of drop-in config dirs - - random: do not print warning if random seed doesn't exist - - plymouth: use PID file to detect whether ply is running - - build-sys: install systemd-analyze by default - - analyze: improve output - - analyze: add plotter - - unit: when deserializing do reconnect to dbus/syslog when - they show up - - analyze: beautify output a bit - - add systemd-analyze tool - - unit: don't override timestamps due to state changes when - deserializing - - plymouth: don't explicitly enable status message when - plymouth is up - - status: show status messages unconditionally if plymouth - is around - - taint: add missing cgroups taint flag - - locale: don't access misinitialized variable - - quota: do not pull in quota tools for mounts that do not - originate in neither /etc/fstab nor fragment files - - manager: fix taint check for /usr - - unit: never apply /etc/rcN.d/ priority to native services - - unit: fix parsing of condition-result - - unit: don't complain about failed units when deserializing - - exec: drop process group kill mode since it has little use - and confuses the user - - cgroup: explain when we cannot initialize the cgroup stuff - - systemctl: don't truncate description when using pager - - ask-password: also accept Backspace as first keypress as - silent mode switch - - unit: when deserializing jobs, don't pull in dependencies - - locale: fix LC_MESSAGES variable name - - plymouth: Remove the calls to plymouth message - - udev: systemd-tag all ttys - - tmpfiles fix /run/lock permissions - - ask-password: use TAB to disable asterisk password echo - - execute: socket isn't abstract anymore - - use /run instead of /dev/.run - - man: explain a couple of default dependencies - - mount: pull in quota services from local mountpoints with - usr/grpquota options - - service: pull in sysv facility targets from the sysv units, - not the other way round - - units: pull in syslog.target from syslog.socket - - units: don't ever pull in SysV targets from other SysV - targets - - units: document that some targets exists only for compat - with SysV - - man: document pidns containers - - units: deemphesize Names= settings, and explain why nobody - whould use them - - units: on mandriva/fedora create single.service alias via - symlink, not Names= - - units: get rid of runlevel Names=, the symlinks in - /lib/systemd/system are much more useful - - rework syslog detection so that we need no compile-time - option what the name of the syslog implementation is - - man: document .requires/ directories - - special: get rid of dbus.target - - exec: properly apply capability bounding set, add inverted - bounding sets - - dbus: add service D-Bus property "Sockets" - - dbus: consolidate service SysV conditionals - - unit: serialize condition test results - - def: centralize definition of default timeout in one place - - chkconfig: check against runlevel 5 instead of 3, since it is - a superset of the latter - - systemctl: accept condstop as alias for stop - - dbus: allow LoadUnit to unprivileged users - - umount: make sure skip_ro is always correctly initialized -- create /run (link it to /var/run) -- refresh splash password patch -- conflict with old mkinitrd version (we need /run) -- conflict with old udev (we need /run) - -------------------------------------------------------------------- -Wed Mar 16 18:38:04 CET 2011 - kay.sievers@novell.com - -- new snapshot - - man: fix systemctl try-restart description - - Add Frugalware display-manager service - - main: revert recognition of "b" argument - - main: interpret all argv[] arguments unconditionally when - run in a container - - loopback: downgrade an error to warning - - nspawn: bind mount /etc/localtime - - nspawn: make tty code more robust against closed/reopened - /dev/console - - util: make touched files non-writable by default - - nspawn: allocate a new pty instead of passing ours through - to avoid terminal settings chaos - - main: parse the whole arv[] as kernel command line - - main: check if we have a valid PID before getting the name - - ask-password: reset signal mask after we are done - - cgroup: don't recheck all the time whether the systemd - hierarchy is mounted, to make strace outputs nicer and save - a few stat()s - - man: document systemd-nspawn - - cgls: don't strip user processes and kernel threads from - default output - - umount: don't try to remount bind mounts ro during shutdown - - getty: move automatic serial getty logic into generator - - container: skip a few things when we are run in a container - such as accessing /proc/cmdline - - cgls: by default start with group of PID 1 - - pam: determine user cgroup tree from cgroup of PID 1 - - nspawn: move container into its own name=systemd cgroup - - manager: don't show kernel boot-up time for containers - - manager: show who killed us - - units: add console-shell.service which can be used insted of - the gettys to get a shell on /dev/console - -------------------------------------------------------------------- -Mon Mar 14 18:29:23 CET 2011 - kay.sievers@novell.com - -- new snapshot - - build-sys: move remaining tools from sbin/ to bin/ since they - might eventually be useful for user execution - - hostname: don't override the hostname with localhost if it - is already set and /etc/hostname unset - - audit: give up sending auditing messages when it failed due - to EPERM - - nspawn: don't require selinux on if it is compiled in - - main: remove AF_UNIX sockets before binding - - shutdown: print a nice message when terminating a container - - nspawn: mount /selinux if needed - - shutdown: just call exit() if we are in a container - - umount: assume that a non-existing /dev/loop device means it - is already detached - - socket: use 777 as default mode for sockets - - main: log to the console in a container - - main: don't parse /proc/cmdline in containers - - util: add detect_container() - - nspawn: reset environment and load login shell - - core: move abstract namespace sockets to /dev/.run - - nspawn: add simple chroot(1) like tool to execute commands - in a namespace container - - util: return exit status in wait_for_terminate_and_warn() - - util: properly identify pty devices by their major - -------------------------------------------------------------------- -Sat Mar 12 14:26:28 CET 2011 - kay.sievers@novell.com - -- new snapshot - - polkit: autogenerate polkit policy with correct paths - - systemctl: support remote and privileged systemctl access - via SSH and pkexec - - gnome-ask-password-agent: fix path to watch - -------------------------------------------------------------------- -Fri Mar 11 13:59:34 CET 2011 - kay.sievers@novell.com - -- fix broken sysctl.service linking - -------------------------------------------------------------------- -Fri Mar 11 01:39:41 CET 2011 - kay.sievers@novell.com - -- new snapshot - - units: move the last flag files to /dev/.run - - util: close all fds before freezing execution - - dbus: timeout connection setup - - main: properly handle -b boot option - - pam: do not leak file descriptor if flock fails -- disable sysv services natively provided by systemd - -------------------------------------------------------------------- -Thu Mar 10 14:16:50 CET 2011 - kay.sievers@novell.com - -- new snapshot - - main: refuse system to be started in a chroot - - main: don't check if /usr really is a mount point, since it is - fine if it is passed pre-mounted to us from the initrd - - condition: take a timestamp and store last result of conditions - - dev: use /dev/.run/systemd as runtime directory, instead of - /dev/.systemd - - machine-id: move machine-id-setup to /sbin - - pkconfig: export full search path as .pc variable - - selinux: bump up error level when in non-enforcing mode - - dbus: fix dbus assert due to uninitialized error - - dbus: properly generate UnknownInterface, UnknownProperty - and PropertyReadOnly errors - - mount: use /dev/.run as an early boot alias for /var/run - -------------------------------------------------------------------- -Tue Mar 8 19:06:45 UTC 2011 - kay.sievers@novell.com - -- version 20 - - service: prefix description with LSB only if script has LSB header, - use 'SysV:' otherwise - - unit: don't accidently create ordering links to targets when - default deps are off for either target and unit - - mount: support less cumbersome x-systemd-xxx mount options - - unit: distuingish mandatory from triggering conditions - - dbus: return DBUS_ERROR_UNKNOWN_OBJECT when an object - is unknown - - systemctl: when forwarding is-enabled to chkconfig - hardcode runlevel 3 - - job: introduce new job result code 'skipped' to use when pre - conditions of job did not apply - - job: convert job type as early as we can, to simplify things - - Keep emacs configuration in one configuration file. - - syslog: make sure the kmsg bridge is always pulled in and - never terminated automatically - - mount: make /media a tmpfs - -------------------------------------------------------------------- -Mon Mar 7 17:24:46 CET 2011 - kay.sievers@novell.com - -- new snapshot - - add org.freedesktop.DBus.Properies.Set method - - main: introduce /etc/machine-id - - systemctl: fix exit code when directing is-enabled - to chkconfig - - dbus: add 'Tainted' property to Manager object - - dbus: expose distribution name and features on manager - object as properties - - man: document changed EnvironmentFile= behaviour - - main: add link to wiki page with longer explanation of the - /usr madness - - execute: load environment files at time of execution, not - when we load the service configuration - - path: after installing inotify watches, recheck file again - to fix race - - path: don't use IN_ATTRIB on parent dirs when watching a - file, since those cannot be removed without emptying the dir - first anyway and we need IN_ATTRIB only to detect the link - count dropping to 0 - - kill: always send SIGCONT after SIGTERM - - readahead: disable collector automatically on read-only media - - sysctl: use scandir() instead of nftw() to guarantee - systematic ordering - - support DT_UNKNOWN where necessary for compat with reiserfs - - systemctl: always null-terminate the password -- call systemd-machine-id-setup at installation - -------------------------------------------------------------------- -Tue Mar 1 12:28:01 CET 2011 - kay.sievers@novell.com - -- version 19 - - udev: don't ignore non-encrypted block devices with no - superblock - - udev: expose ttyUSB devices too - - udev: mark hvc devices for exposure in systemd - - cryptsetup: add a terse help - - agent: don't print warnings if a password was removed or - timed out - - systemctl: shutdown agent explicitly so that it can reset - the tty properly - - never clean up a service that still has a process in it - - label: udev might be making changes in /dev while we - iterate through it - - systemctl: properly handle job results - - job: also trigger on-failure dependencies when jobs faile - due to dependencies, timeout - - job: when cancelling jobs, make sure to propagate this - properly to depending jobs - - job: start job timeout on enqueuing not when we start to - process a job - - unit: increase default timeout to 3min - - logger: leave the logger longer around and allow it do - handle more connections - - dbus: pass along information why a job failed when it - failed (dbus api change!) - - general: unify error code we generate on timeout - - units: synchronize gettys to plymouth even if plymouth is - killed by gdm - - job: start job timer when we begin running the job, not - already when we add it to the queue of jobs - - cryptsetup: try to show the mount point for a crypto disk - if we can - - rescue: terminate plymouth entirely when going into - rescue mode - - ask-password: fix handling of timeouts when waiting - for password - - ask-password: supported plymouth cached passwords - - main: print warning if /usr is on a seperate partition - - ensure we start not a single getty before plymouth is - gone because we never know which ttys plymouth still controls - - unit: introduce ConditionVirtualization= - -------------------------------------------------------------------- -Mon Feb 21 19:30:30 CET 2011 - kay.sievers@novell.com - -- new snapshot - - dbus: don't rely that timer/path units have an initialized - unit field (bnc#671561) - -------------------------------------------------------------------- -Mon Feb 21 13:58:51 CET 2011 - kay.sievers@novell.com - -- new snapshot - - order network mounts after network.target (bnc#672855) - -------------------------------------------------------------------- -Mon Feb 21 04:19:15 CET 2011 - kay.sievers@novell.com - -- new snapshot - - kmsg-syslogd: increase terminate timeout to 5min to generte - less debug spew - - shutdown(8) - call kexec if kexec kernel is loaded (bnc#671673) - - unit: don't timeout fsck - - man: fixed typo in SyslogIdentifier= - - tmpfiles: never clean up block devices - - main: refuse --test as root - -------------------------------------------------------------------- -Fri Feb 18 13:52:22 CET 2011 - kay.sievers@novell.com - -- new snapshot - - units: order fsck@.service before basic.target - instead of local-fs.target to relax things a little - - readahead: remove misleading error messages - - man: don't do more reloads than necessary in spec files - - util: retry opening a TTY on EIO - - util: beef up logic to find ctty name - - tmpfiles: kill double slashes in unix socket names -- drop vhangup patch, it is fixed in login(3) by forwarding the - SIGHUP to the child process - -------------------------------------------------------------------- -Fri Feb 18 09:33:55 UTC 2011 - coolo@novell.com - -- revert back to conflicts: sysvinit - -------------------------------------------------------------------- -Thu Feb 17 15:04:44 CET 2011 - werner@suse.de - -- Add temporary workaround for bnc#652633, that is do a vhangup - to all processes on a tty line used for a getty - -------------------------------------------------------------------- -Wed Feb 16 21:39:20 CET 2011 - kay.sievers@novell.com - -- version 18 - - systemctl: introduce --ignore-dependencies - - systemctl: introduce --failed to show only failed services - - systemctl: introduce --failed to show only failed services - - rescue: make 'systemctl default' fail if there is already - something running when the shell exited - - util: seperate welcome line from other output by empty lines - - manager: don't consider transaction jobs conflicting with - queued jobs redundant - - udev: ignore block devices which no known contents, to avoid - trying of mounts/swapons when devices aren't set up full yet - - swap: handle "nofail" from fstab - - mount,swap: properly add dependencies to logger if needed - - service: change default std output to inherit - - exec: introduce global defaults for the standard output - of services - - udev: use SYSTEMD_READY to mask uninitialized DM devices - - fsck: output to /dev/console by default in addition to syslog - - execute: optionally forward program output to /dev/console in - addition to syslog/kmsg - - socket: refuse socket activation for SysV services - - fsck: do not fail boot if fsck returns with an error code that - hasn't 2 or 6 set - - shutdown: execute all binaries in /lib/systemd/system-shutdown - as last step before invoking reboot() - - job: make status message printing more verbose - - cryptsetup: fix unit file description - - tmpfiles: never delete AF_UNIX sockets that are alive - - getty: don't parse console= anymore, use - /sys/class/tty/console/active instead - - properly resolve /dev/console if more than once console= - argument was passed on the kernel command line - - getty: do not auto-spawn getty's on VC ttys if console=ttyN - - fsck: skip root fsck if dracut already did it - - util: when determining the right TERM for /dev/console - consult /sys/class/tty/console/active - - pam: introduce whitelist and blacklist user list feature - - systemctl: minor optimizations - - systemctl: don't unnecessarily close stdin/stdout/stderr for - tty agent so that locking by tty works - - readahead: disable readahead in virtual machines - - tmpfiles: move binary to /bin to make it publicly available - - tmpfiles: take names of tmpfiles configuration files on the - command line - - tmpfiles: log to stderr if possible - - tmpfiles: support globs - - units: introduce and hook up sound.target - - dbus: allow all clients access to org.freedesktop.DBus.Peer - - consider udev devices with SYSTEMD_READY=0 as unplugged - - systemctl: don't start agent for --user - - systemctl: make sure the tty agent does not retain a copy - of stdio - -------------------------------------------------------------------- -Tue Feb 8 19:10:06 CET 2011 - kay.sievers@novell.com - -- new snapshot - - plymouth: move plymouth out of TARGET_FEDORA - - build-sys: fix AC_COMPILE_IFELSE tests - - build-sys: ensure selinux configure check follows logic of - other optional features - - build-sys: autodetect and use pkg-config for libselinux - - dbus: use ControlGroup as property name to match config option - - pam: optionally reset cgroup memberships for login sessions - - load-fragment: properly parse Nice= value - - automount: use unit_pending_inactive() where appropriate - -------------------------------------------------------------------- -Tue Feb 8 17:40:29 CET 2011 - jeffm@suse.de - -- Removed unecessary workaround for plymouth startup. - -------------------------------------------------------------------- -Fri Feb 4 21:24:11 CET 2011 - jeffm@suse.de - -- Split plymouth support into systemd-plymouth package. - -------------------------------------------------------------------- -Sat Jan 22 14:42:34 CET 2011 - kay.sievers@novell.com - -- new snapshot - - clang: fix some issues found with clang-analyzer - - gcc: make gcc shut up - -------------------------------------------------------------------- -Sat Jan 22 14:40:24 CET 2011 - kay.sievers@novell.com - -- version 17 - - vala 0.10 seem to work fine - - cryptsetup: fix ordering loop when dealing with encrypted - swap devices - - main: don't warn if /etc/mtab is a symlink to /proc/mounts - - socket: don't crash if the .service unit for a .socket unit - is not found - - mount: ignore if an fsck is requested for a bind mount, - so that we don't wait for the bind 'device' to show up - - automount: fix segfault when shutting down - - man: give an example for vconsole.conf - - dbus: don't try to connect to the system bus before it is - actually up - - service: make chain of main commands and control commands - independent of each other, so that both can be executed - simultaneously and independently - - service: don't allow reload operations for oneshot services - - vala: convert from dbus-glib to gdbus - - systemctl: highlight failed processes in systemctl status - - systemctl: show process type along process exit codes - - service: when reloading a service fails don't fail the entire - service but just the reload job - -------------------------------------------------------------------- -Wed Jan 19 12:55:40 CET 2011 - kay.sievers@novell.com - -- new snapshot - - shutdown: use correct kexec options - - serial-getty: do not invoke /sbin/securetty; recent - pam_securetty looks for console= in /proc/cmdline - - systemctl: before spawning pager cache number of columns - - pam: optionally keep processes of root user around - - service: if a reload operation fails, don't shut down - the service - - execute: make sending of SIGKILL on shutdown optional - - mount: do not translate uuids to lowercase - - man: document missing KillSignal= and swap options -- require recent util-linux -- drop mtab symlink creation which is done in util-linux - -------------------------------------------------------------------- -Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com - -- version 16 - - device: don't warn if we cannot bump the udev socket buffer - - logger: when passing on PID info, fall back to our own if - originating process is already gone - - service: don't hit an assert if information in LSB headers is - incorrectly formatted - - execute,util: fix two small memory leaks - - getty: unset locale before execution - - execute: drop empty assignments from env blocks on execution - but keep them around otherwise to make them visible - - umount: don't try to detach the dm device the root dir is on, - to minimize warning messages - - locale: fix variable names - - fragment: allow prefixing of the EnvironmentFile= - path with - to ignore errors - - util: don't pass invalid fd to fdopendir() on error to avoid - corruption of errno - - tmpfiles: nicer message when two or more conflicting lines - are configured for the same file - - fragment: properly handle quotes in assignments in - EnvironmentFile= files - - sysctl: don't warn if sysctls are gone - - readahead: ignore if files are removed during collection or - before replay - - serial: use TERM=vt100 instead of TERM=vt100-nav - - cryptsetup: call mkswap on dm device, not on source device - - mount-setup: mount /dev/pts with mode=620,gid=5 by default - and make GID overridable via configure switch - - systemctl: implement auto-pager a la git - - shutdown: drop redundant sync() invocation - - util: invoke sync() implicitly on freeze() - - tmpfiles: do no follow symlinks when cleaning up dirs - -------------------------------------------------------------------- -Tue Dec 28 22:08:28 CET 2010 - jeffm@suse.de - -- Add support for building plymouth support with openSUSE - -------------------------------------------------------------------- -Mon Dec 27 22:15:41 CET 2010 - kay.sievers@novell.com - -- new snapshot - - pam: do not sort user sessions into their own cgroups in - the 'cpu' hierarchy - - mount-setup: drop noexec flag from default mount options - for /dev/shm - - systemd.pc: change 'session' to 'user' - -------------------------------------------------------------------- -Thu Dec 16 16:52:04 CET 2010 - kay.sievers@novell.com - -- new snapshot - - ifdef suse-only sysv script lookup code - -------------------------------------------------------------------- -Thu Dec 16 12:49:00 UTC 2010 - seife@opensuse.org - -- add bootsplash handling patch to be able to enter e.g. - crypto passphrases (bnc#659885) - -------------------------------------------------------------------- -Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com - -- new snapshot - - add LSB 'smtp' alias for mail-transport-agent.target - -------------------------------------------------------------------- -Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com - -- new snapshot - - path: fix watching the root directory - - update README - -------------------------------------------------------------------- -Fri Nov 26 19:17:46 CET 2010 - kay.sievers@novell.com - -- new snapshot - - gnome-ask-password-agent: also support libnotify < 0.7 for now - - udev: increase event buffer size -- require fsck -l - -------------------------------------------------------------------- -Thu Nov 25 06:45:41 CET 2010 - kay.sievers@novell.com - -- version 15 - - dbus: use the right data slot allocator - - manager: bump up max number of units to 128K - - build-sys: allow cross-compilation -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Tue Nov 23 11:49:43 CET 2010 - kay.sievers@novell.com - -- new snapshot - - units: simplify shutdown scripts - - logger: fix error handling - - swap: order file-based swap devices after remount-rootfs -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Mon Nov 22 10:10:59 CET 2010 - kay.sievers@novell.com - -- new snapshot - - systemctl: don't return LSB status error codes for 'show' - - mount: do not try to mount disabled cgroup controllers - - man: document /etc/modules-load.d/, /etc/os-release, - locale.conf, /etc/vconsole.conf, /etc/hostname - - units: move a couple of units from base.target to - sysinit.target - - man: reorder things to follow the same order everywhere -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Sat Nov 20 19:58:14 CET 2010 - kay.sievers@novell.com - -- version 13 - - cryptsetup: actually show disk name - - cryptsetup: show udev device name when asking for password - - sysctl: implement native tool and support /etc/sysctl.d - - units: enable console ask-password agent by default - - introduce /etc/os-release distro description - - job: make sure we don't fail umount.target if a mount unit - failed to stop - - cgroup: after killing cgroup processes, ensure the group is - really dead gone. wait for 3s at max - - cgroup: if we couldn't remove a cgroup after killing - evertyhing in it then it's fine - - cryptsetup: automatically order crypt partitions before - cryptsetup.target - - man: trivial BindTo description fix - - manager: make list of default controllers configurable - - build: expose libcryptsetup dependency in build string - - pam: document controllers= switch - - cgroup: by default, duplicate service cgroup in the cpu hierarchy - - pam: duplicate cgroup tree in the cpu hierarchy by default, - optionally more -- enable native crypto handling instead of boot.crypto -- revert too new libnotify code/requirement -- revert fsck -l option requirement - -------------------------------------------------------------------- -Wed Nov 17 01:32:04 CET 2010 - kay.sievers@novell.com - -- version 12 - - ask-password: add --console mode to ask /dev/console -- revert too new libnotify code/requirement - -------------------------------------------------------------------- -Tue Nov 16 11:47:28 CET 2010 - kay.sievers@novell.com - -- new snapshot - - cryptsetup: reword questions a little - - units: order hwclock after readahead - - path: don't mention too many inotify msgs - - cryptsetup: include device name in password question - - cryptsetup: lock ourselves into memory as long as we deal - with passwords - - plymouth: use updated socket name - - units: set TERM for gettys again, since they acquire a TTY - - units: allow start-up of plymouth ask-password agent very early - - units: enable ask-paswword .path units early enough to be useful - for early mounts - - units: delay getty until logins are allowed - - pam: always rely on loginuid instead of uid to determine cgroup - and XDG_RUNTIME_DIR name - - cgroup: call root cgroup system instead of systemd-1 - - exec: determine right TERM= setting based on tty name - - pam: rename master user cgroup to 'master' - - drop support for MANAGER_SESSION, introduce MANAGER_USER - - units: use ConditionDirectoryNotEmpty= where applicable - - unit: introduce ConditionDirectoryNotEmpty= - - delete tmp.mount which may conflict with an unrelated fstab - entry -- revert too new libnotify code/requirement -- disable native crypto handling - -------------------------------------------------------------------- -Mon Nov 15 18:45:31 CET 2010 - kay.sievers@novell.com - -- new snapshot - - load-dropin: add support for .requires directories - - manager: consider jobs already installed as redundant when - reducing new transactions - - manager: always pull 'following' units into transaction - - util: always highlight distro name - - units: make use of agetty mandatory - - manager: don't fail transaction if adding CONFLICTED_BY job fails - - job: make it possible to wait for devices to be unplugged - - tmpfiles: ignore files marked with the sticky bit - - cryptsetup: handle password=none properly - - cryptsetup: properly parse cipher= switch - - cryptsetup: support non-LUKS crypto partitions - - ask-password: enable password agent - - automatically start cryptsetup when looking for mount source - - log: add automatic log target - - cryptsetup: hook up tool with ask-password - - manager: hookup generators - - split mount_point_is_api() and mount_point_ignore() -- replace boot.crypto job with systemd native crypto handling -- enable readahead (requires 2.6.37+ kernel's fanotify to work) - -------------------------------------------------------------------- -Thu Nov 11 07:44:02 CET 2010 - kay.sievers@novell.com - -- new snapshot - - tmpfiles: include reference to man page in tmpfiles files - - vconsole: support additional keymap for toggling layouts - - main: warn if /etc/mtab is not a symlink - - add bash completion for systemctl --system - - man: minor tmpfiles(5) updates and reindenting - - main: rename process on startup to 'systemd' to avoid confusion - - unit: add ConditionNull= condition - - ac-power: make ac-power a proper binary that scripts can call - - manager: parse RD_TIMESTAMP passed from initrd - - modules-load: fix minor race - - label: use internal utility functions wher epossible - - cryptsetup: minimal cryptsetup unit generator - - selinux: relabel /dev after loading policy - - log: downgrade syslog connection failure message - - service: delay automatic restart if job is pending - - manager: when isolating undo all pending jobs, too - - manager: only minimize impact if we are in fail mode -- replace /etc/mtab with link to /proc/self/mounts - -------------------------------------------------------------------- -Fri Nov 5 00:28:10 CET 2010 - kay.sievers@novell.com - -- new snapshot - - man/tmpfiles.d.xml: add a manpage for tmpfiles - - do not overwrite other udev tags - - readahead: shortcut replay if /.readahead doesn't exist - -------------------------------------------------------------------- -Fri Oct 29 21:20:57 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - fsck: return SUCCESS when we skip the check - - fsck: skip checking / if it is writable - - units: fix variable expansion - - mount: don't pull in nofail mounts by default, but use them - if they are around - - job: recursively fail BoundBy dependencies - - fsck: fix target name to check for - - units: rename fedora/single.service to rescue.service - - units: introduce plymouth-start and plymouth-kexec - - unit: get rid of IgnoreDependencyFailure= - - use util-linux:agetty instead of mingetty - - unit: replace StopRetroactively= by BindTo= dependencies - - automount: show who's triggering an automount - - units: run sysctl only if /etc/sysctl.conf exists - - systemctl: always show what and where for mount units - - shutdown: reword a few messages a little - - manager: show which jobs are actually installed after a transaction - - timer: when deserializing timer state stay elapsed - - device: set recursive_stop=true by default - - unit: suppress incorrect deserialization errors - - swap: there's no reason not order swap after sysinit - - socket: fix IPv6 availability detection - -------------------------------------------------------------------- -Wed Oct 27 12:00:26 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - create /dev/stderr and friends early on boot - - run sysv related scripts with TERM=linux - - add only swaps listed in /etc/fstab automatically to swap.target - - errors: refer to systemctl status when useful - - swap: add default cgroup to swap exec env - - readahead: bump a device's request_nr when enabling readahead - - shutdown: properly handle sigtimedwait() timing out - - main: fix typo in kernel cmdline parameters help - - ord-tty: properly handle SIGINT/SIGTERM - - systemctl: automatically spawn temporary password agent - - ask-password: properly handle multiple pending passwords - - ask-password: enable plymouth agent by default - - ask-password: add minimal plymouth password agent - -------------------------------------------------------------------- -Tue Oct 26 13:10:01 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - make sure to pass TERM=linux to all sysv scripts - - don't unset HOME/TERM when run in session mode - - mount: add nosuid,nodev,noexec switches to /var/lock and /var/run - - tmpfiles: Don't clean /var/lock/subsys - - tmpfiles: Make wtmp match utmp perms, and add btmp - - umount: Make sure / is remounted ro on shutdown - - unset HOME and TERM set from the kernel - - activate wall agent automatically - - ask-password: add basic tty agent - -------------------------------------------------------------------- -Sat Oct 23 18:09:23 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - rename ask-password-agent to gnome-ask-password-agent - - fsck: suppress error message if we cannot change into single - user mode since - - dbus: epose FsckPassNo property for service objects - - man: document systemctl --force - - introduce 'systemctl kill' - -------------------------------------------------------------------- -Sat Oct 23 14:57:57 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - syslog: enable kmsg bridge by default - - fsck: add initial version of fsck and quotacheck wrappers - - tmpfiles: remove forcefsck/fastboot flag files after boot - - swap: listen for POLLPRI events on /proc/swaps if availabled - - tmpfiles: integrate native tmpwatch - - shutdown: loop only as long as we manage to unmount/detach devices - - umount: disable dm devices by devnode, not by path name - - introduce final.target - - replace distro-specific shutdown scripts with native services - - try to get rid of DM devices - - log to console by default - - introduce kexec.service, kexec.target and exit.target - - hook in fsck@.service instance for all mount points with passno > 0 - - systemctl: warn if user enables unit with no installation instructions - - dbus: add introspection to midlevel paths - - look for dynamic throw-away units in /dev/.systemd/system - - major rework, use /sbin/swapon for setting up swaps - - introduce Restart=on-failure and Restart=on-abort - - units: enable utmp for serial gettys too - - rename 'banned' load state to 'masked' - - optionally, create INIT_PROCESS/DEAD_PROCESS entries for a service -- use systemd-native fsck/mount -- use systemd-native tmpfiles.d/ instead of tmpwatch - -------------------------------------------------------------------- -Fri Oct 8 14:49:04 CEST 2010 - kay.sievers@novell.com - -new snapshot - - fix 'systemctl enable getty@.service' - - properly support 'banning' of services - - handle nologin - - add native reboot/shutdown implementation - -------------------------------------------------------------------- -Thu Oct 7 15:58:10 CEST 2010 - kay.sievers@novell.com - -- version 11 - -------------------------------------------------------------------- -Wed Oct 6 09:27:13 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - readahead fixes - -------------------------------------------------------------------- -Sun Oct 3 08:08:13 UTC 2010 - aj@suse.de - -- /etc/modules.d was renamed to modules-load.d -- only include tmpfiles.d/*conf files - -------------------------------------------------------------------- -Wed Sep 29 11:55:11 CEST 2010 - kay.sievers@novell.com - -- don't create sysv order deps on merged units -- fix Provides: handling in LSB headers (network.target) -- native (optional) readahead - -------------------------------------------------------------------- -Sun Sep 26 20:39:53 UTC 2010 - aj@suse.de - -- Do not package man pages twice. - -------------------------------------------------------------------- -Wed Sep 22 11:40:02 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - basic services are enabled by default now - -------------------------------------------------------------------- -Tue Sep 21 14:39:02 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - vconsole and locale setup - - hook up tmpwatch - -------------------------------------------------------------------- -Fri Sep 17 10:58:24 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - add new utility to initialize the virtual console - - initialize locale from /etc/locale by default - - ask-password: allow services query SSL/harddisk passphrases - -------------------------------------------------------------------- -Fri Sep 17 10:54:24 CEST 2010 - kay.sievers@novell.com - -- version 10 - - logger: support SOCK_STREAM /dev/log sockets - - make sure the file system is writable before we write utmp data - - systemctl: use isolate when called as telinit for a runlevel - - initctl: properly use isolate when activating runlevels - - set HOME=/root when running shells - - make sure we don't crash if there's an automount unit without - mount unit - - start logger only after syslog is up - -------------------------------------------------------------------- -Fri Sep 3 11:52:42 CEST 2010 - kay.sievers@novell.com - -- version 9 - - units: don't add shutdown conflicts dep to umount.target - - dbus: don't send cgroup agent messages directly to system bus - - dbus: don't accept activation requests anymore if we are going - down anyway - - systemctl: fix return value of systemctl start and friends - - service: wait for process exit only if we actually killed - somebody - -------------------------------------------------------------------- -Thu Aug 26 22:14:04 CEST 2010 - kay.sievers@novell.com - -- version 8 - - KERNEL 2.6.36+ REQUIRED! - - mount cgroup file systems to /sys/fs/cgroup instead of /cgroup - - invoke sulogin instead of /bin/sh - - systemctl: show timestamps for state changes - - add global configuration options for handling of auto mounts - -------------------------------------------------------------------- -Fri Aug 20 06:51:26 CEST 2010 - kay.sievers@novell.com - -- apply /etc/fstab mount options to all api mounts -- properly handle LABEL="" in fstab -- do not consider LSB exit codes 5 and 6 as failure - -------------------------------------------------------------------- -Tue Aug 17 22:54:41 CEST 2010 - kay.sievers@novell.com - -- prefix sysv job descriptions with LSB: -- add native sysctl + hwclock + random seed service files -- properly fallback to rescue.target if default.target is hosed -- rename ValidNoProcess= to RemainAfterExit= -- add systemd-modules-load tool to handle /etc/modules.d/ - -------------------------------------------------------------------- -Tue Aug 17 09:01:04 CEST 2010 - kay.sievers@novell.com - -- add support for delayed shutdown, similar to sysv in style -- rename Type=finish to Type=oneshot and allow multiple ExecStart= -- don't show ENOENT for non exitent configuration files -- log build time features on startup -- rearrange structs to make them smaller -- move runlevel[2-5] links to /lib -- create default.target link to /lib not /etc -- handle random-seed -- write utmp record before we kill all processes -- create /var/lock/subsys, /var/run/utmp - -------------------------------------------------------------------- -Wed Aug 11 11:29:17 CEST 2010 - kay.sievers@novell.com - -- add audit messages for service changes -- update utmp with external program -- all to refuse manual service starting/stopping - -------------------------------------------------------------------- -Tue Aug 10 06:54:23 CEST 2010 - kay.sievers@novell.com - -- version 7 - - hide output if quiet is passed on the kernel cmdline - - fix auto restarting of units after a configuration reload - - don't call bus_path_escape() with NULL unit name - -------------------------------------------------------------------- -Fri Aug 6 13:07:35 CEST 2010 - kay.sievers@novell.com - -- version 6 - - man page update - -------------------------------------------------------------------- -Fri Aug 6 09:48:34 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - downgrade a few log messages - - properly handle devices which are referenced before they exist - -------------------------------------------------------------------- -Fri Aug 6 01:59:50 CEST 2010 - kay.sievers@novell.com - -- new snapshot - - fix dependency cycle of boot.* by splitting fsck.target - - sort boot.* before other sysv services - from sysinint.target - - start getty for serial console - -------------------------------------------------------------------- -Thu Aug 5 23:12:32 CEST 2010 - kay.sievers@novell.com - -- add licence to subpackages - -------------------------------------------------------------------- -Wed Aug 4 12:42:23 CEST 2010 - kay.sievers@novell.com - -- version 5 - - selinux fixes -- fix hanging 'reboot' started from vc - -------------------------------------------------------------------- -Mon Aug 2 16:33:20 CEST 2010 - kay.sievers@novell.com - -- enable getty.target by default - ------------------------------------------------------------------- Sat Jul 24 11:16:52 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index e3224592..959e32b8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # -# spec file for package systemd +# spec file for package systemd (Version 4) # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,279 +15,32 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +# norootforbuild -%define bootstrap 0 -%define mini %nil -%define real systemd -%define min_kernel_version 3.7 - -%bcond_without bash_completion -%bcond_without networkd -%bcond_without sysvcompat -%bcond_with resolved -%bcond_with python -%bcond_with parentpathid -%if 0%{?suse_version} > 1315 -%bcond_without permission -%bcond_without blkrrpart -%bcond_without udevsettle -%else -%bcond_with permission -%bcond_with blkrrpart -%bcond_with udevsettle -%endif -%bcond_with systemgrps Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 228 -Release: 0 -Summary: A System and Session Manager -License: LGPL-2.1+ +Version: 4 +Release: 1 +License: GPLv2+ Group: System/Base +Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: acl -BuildRequires: audit-devel -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: fdupes -BuildRequires: gperf -BuildRequires: intltool -BuildRequires: kbd -BuildRequires: libacl-devel +BuildRequires: libudev-devel udev BuildRequires: libcap-devel -BuildRequires: libsepol-devel -BuildRequires: libtool +BuildRequires: tcpd-devel BuildRequires: pam-devel -BuildRequires: systemd-rpm-macros -BuildRequires: xz -BuildRequires: config(suse-module-tools) -BuildRequires: pkgconfig(blkid) >= 2.26 -BuildRequires: pkgconfig(libkmod) >= 15 -BuildRequires: pkgconfig(liblzma) -BuildRequires: pkgconfig(libpci) >= 3 -BuildRequires: pkgconfig(mount) >= 2.26 -%ifarch aarch64 %ix86 x86_64 x32 %arm ppc64le s390x -BuildRequires: pkgconfig(libseccomp) -%endif -%ifarch %{ix86} x86_64 -BuildRequires: gnu-efi -%endif -BuildRequires: pkgconfig(libselinux) >= 2.1.9 -BuildRequires: pkgconfig(libsepol) -Conflicts: sysvinit -Conflicts: otherproviders(systemd) -%if 0%{?bootstrap} -#!BuildIgnore: dbus-1 -Requires: this-is-only-for-build-envs -Provides: systemd = %version-%release -Conflicts: kiwi -%else -BuildRequires: docbook-xsl-stylesheets -BuildRequires: libgcrypt-devel -BuildRequires: libxslt-tools -%if %{with python} -BuildRequires: python -%endif -BuildRequires: libapparmor-devel -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -BuildRequires: pkgconfig(libmicrohttpd) -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 -# the buildignore is important for bootstrapping -#!BuildIgnore: udev -Requires: udev >= 172 -Recommends: %{name}-bash-completion -Requires: dbus-1 >= 1.4.0 -Requires: kbd -Requires: kmod >= 15 -Requires: netcfg -Requires: pam-config >= 0.79-5 -BuildRequires: pam-config >= 0.79-5 -Requires: pwdutils -Requires: systemd-presets-branding -Requires: sysvinit-tools -Requires: util-linux >= 2.27 -Requires(post): coreutils -Requires(post): findutils -Requires(post): pam-config >= 0.79-5 -%endif -Requires(pre): /usr/bin/getent -Requires(pre): /usr/sbin/groupadd -Requires(post): /usr/bin/awk -Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl -Conflicts: filesystem < 11.5 -Conflicts: mkinitrd < 2.7.0 -Conflicts: kernel < %{min_kernel_version} -Obsoletes: systemd-analyze < 201 -Provides: systemd-analyze = %{version} -Obsoletes: pm-utils <= 1.4.1 -Obsoletes: suspend <= 1.0 - -#Git-Clone: git://github.com/systemd/systemd -Source: https://github.com/systemd/systemd/archive/v%version.tar.gz -%if ! 0%{?bootstrap} +BuildRequires: pkg-config +BuildRequires: dbus-1-glib-devel gtk2-devel +BuildRequires: libselinux-devel libsepol-devel +Requires: udev >= 160 +Requires: dbus-1 >= 1.3.2 +Conflicts: mkinitrd < 2.6.0-5 +Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc -%else -Source1: systemd-mini-rpmlintrc -%endif -Source3: systemd-sysv-convert -Source6: baselibs.conf -Source7: libgcrypt.m4 -Source9: nss-myhostname-config -Source10: macros.systemd.upstream -Source11: after-local.service -Source12: systemd-sysv-install - -Source1065: systemd-remount-tmpfs - -# handle SUSE specific kbd settings -Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch -Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch -Patch6: insserv-generator.patch -Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch -Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch - -# PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done -Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch -# PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype -Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch -# PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin -Patch21: allow-multiple-sulogin-to-be-started.patch -# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices -Patch27: apply-ACL-for-nvidia-device-nodes.patch -# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device -Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -Patch37: suse-sysv-bootd-support.diff -# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. -Patch39: systemd-tmp-safe-defaults.patch -# PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname -Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch -Patch42: systemd-pam_config.patch - -# Upstream First - Policy: -# Never add any patches to this package without the upstream commit id -# in the patch. Any patches added here without a very good reason to make -# an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) -Patch84: make-emergency.service-conflict-with-syslog.socket.patch -# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch -Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch -# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty -Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com -Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) -Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch -# PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch -Patch180: 0014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch -Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch -# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch183: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE systemctl-set-default-target.patch -Patch186: systemctl-set-default-target.patch -# PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) -Patch188: boot-local-start.patch -# PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager -Patch189: avoid-random-hangs-on-timeouts-due-lost-cwd.patch -# PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch -Patch190: systemd-install-compat_pkgconfig-always.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch191: systemd-dbus-system-bus-address.patch -# PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper -Patch192: let-linker-find-libudev-for-libdevmapper.patch -# PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target -Patch193: portmap-wants-rpcbind-socket.patch -# PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console -Patch197: rescue-emergency-target-conflicts.patch -# PATCH-FIX-SUSE Avoid a divide by zero sigtrap -Patch198: avoid-divide-by-zero-sigtrap.patch -# PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) -Patch203: respect-nfs-bg-option.patch -# PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) -Patch208: parse-crypttab-for-noauto-option.patch -# PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) -Patch338: vhangup-on-all-consoles.patch -# PATCH-FIX-SUSE Shut up rpmlint warning -Patch345: shut-up-rpmlint-on-var-log-journal.patch -# PATCH-FIX-SUSE -Patch352: set-and-use-default-logconsole.patch -Patch362: tty-ask-password-agent-on-console.patch -# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) -Patch366: tomcat6-var-lock-subsys-legacy.patch -# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) -Patch368: 0001-let-systemctl-completion-ignore-at-names.patch -# PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) -Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch -# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) -Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-SUSE added on 2014/10/24 -Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-SUSE added on 2014/11/05 -Patch490: watch_resolv.conf_for_become_changed.patch -# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) -Patch520: systemd-add-user-keep.patch -# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) -Patch521: kbd-model-map.patch -# PATCH-WORKAROUND-SUSE (boo#939571) -Patch522: Correct_assert_on_unexpected_error_code.patch -# PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) -Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch -# PATCH-FIX-UPSTREAM (bsc#956712) -Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch - -# UDEV PATCHES -# ============ -# NOTE: all udev patches start with 1XXX-*.patch, do not use anything else. -# Udev patches mean: patches that affect udev code, src/{udev,libudev} -# nothing else, even if the patch might affect indirectly udev, as long -# as it's not changing the code of udev and libudev, then is not a udev -# patch. Further patches which add and/or changes udev rules. - -# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch -Patch1003: 1003-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch -Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch -Patch1006: 1006-udev-always-rename-network.patch -# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch -Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) -Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch -# PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) -Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch -# PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE See bnc#882714 comment #51 -Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) -Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.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-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) -Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch -# PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch -Patch1096: 1096-new-udev-root-symlink-generator.patch -# PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch -Patch1097: 1097-udevd-increase-maximum-number-of-children.patch -# PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch -Patch1098: 1098-systemd-networkd-alias-network-service.patch -# PATCH-FIX-OPENSUSE hostname-NULL.patch - fix crash on xen build hosts in OBS Marcus Meissner -Patch1099: hostname-NULL.patch %description -Systemd is a system and service manager, compatible with SysV and LSB +Systemd is a system and session manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using @@ -296,1142 +49,135 @@ maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. - -%package bash-completion -Summary: Bash completion support for systemd -License: LGPL-2.1+ +%package gtk +License: GPLv2+ Group: System/Base -Requires: bash -%if %{with bash_completion} -Requires: bash-completion -%endif -BuildArch: noarch +Summary: Graphical front-end for systemd +Requires: %{name} = %{version}-%{release} -%description bash-completion -Some systemd commands offer bash completion, but it's an optional dependency. - -%package devel -Summary: Development headers for systemd -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: libsystemd0%{?mini} = %version -Requires: systemd-rpm-macros -%if 0%{?bootstrap} -Provides: systemd-devel = %version-%release -%endif -Conflicts: otherproviders(systemd-devel) - -%description devel -Development headers and auxiliary files for developing applications for systemd. +%description gtk +Graphical front-end for systemd system and session manager. %package sysvinit -Summary: System V init tools -License: LGPL-2.1+ +License: GPLv2+ Group: System/Base -Requires: %{name} = %{version} +Summary: System V init tools +Requires: %{name} = %{version}-%{release} Provides: sbin_init -Conflicts: otherproviders(sbin_init) -Provides: sysvinit:/sbin/init +Conflicts: sysvinit +Conflicts: upstart %description sysvinit Drop-in replacement of System V init tools. -%package -n libsystemd0%{?mini} -Summary: Component library for systemd -License: LGPL-2.1+ -Group: System/Libraries -%if 0%{?bootstrap} -Conflicts: libsystemd0 -Requires: this-is-only-for-build-envs -%endif - -%description -n libsystemd0%{?mini} -This library provides several of the systemd C APIs: - -* sd-bus implements an alternative D-Bus client library that is - relatively easy to use, very efficient and supports both classic - D-Bus as well as kdbus as transport backend. - -* sd-daemon(3): for system services (daemons) to report their status - to systemd and to make easy use of socket-based activation logic - -* sd-event is a generic event loop abstraction that is built around - Linux epoll, but adds features such as event prioritization or - efficient timer handling. - -* sd-id128(3): generation and processing of 128-bit IDs - -* sd-journal(3): API to submit and query journal log entries - -* sd-login(3): APIs to introspect and monitor seat, login session and - user status information on the local system. - -%package -n udev%{?mini} -Summary: A rule-based device node and kernel event manager -License: GPL-2.0 -Group: System/Kernel -Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/rm -PreReq: %insserv_prereq -PreReq: %fillup_prereq -PreReq: /usr/bin/sg_inq -Requires(pre): /usr/bin/stat -Requires(pre): /usr/sbin/groupadd -Requires(pre): /usr/bin/getent -Requires(post): libudev%{?mini}1 -Requires(post): sed -Requires(post): /usr/bin/systemctl -%if %{defined regenerate_initrd_post} -Requires(post): coreutils -Requires(post): /usr/bin/stat -Requires(postun): coreutils -Requires(posttrans): suse-module-tools -Requires(posttrans): /sbin/mkinitrd -%else -Requires(post): /sbin/mkinitrd -Requires(postun): /sbin/mkinitrd -%endif -Conflicts: systemd < 39 -Conflicts: aaa_base < 11.5 -Conflicts: filesystem < 11.5 -Conflicts: mkinitrd < 2.7.0 -Conflicts: util-linux < 2.16 -Conflicts: ConsoleKit < 0.4.1 -Requires: filesystem -%if 0%{?bootstrap} -Provides: udev = %version-%release -Conflicts: kiwi -%endif -Conflicts: otherproviders(udev) - -%description -n udev%{?mini} -Udev creates and removes device nodes in /dev for devices discovered or -removed from the system. It receives events via kernel netlink messages -and dispatches them according to rules in /lib/udev/rules.d/. Matching -rules may name a device node, create additional symlinks to the node, -call tools to initialize a device, or load needed kernel modules. - - - -%package -n libudev%{?mini}1 -# This really should have been libudev1%{?mini}, but requires changes to prjconf :-/ -Summary: Dynamic library to access udev device information -License: LGPL-2.1+ -Group: System/Libraries -%if 0%{?bootstrap} -Conflicts: libudev1 -%endif - -%description -n libudev%{?mini}1 -This package contains the dynamic library libudev, which provides -access to udev device information - -%package -n libudev%{?mini}-devel -Summary: Development files for libudev -License: LGPL-2.1+ -Group: Development/Libraries/C and C++ -Requires: libudev%{?mini}1 = %version-%release -%if 0%{?bootstrap} -Provides: libudev-devel = %version-%release -%endif -Conflicts: otherproviders(libudev-devel) - -%description -n libudev%{?mini}-devel -This package contains the development files for the library libudev, a -dynamic library, which provides access to udev device information. - -%if ! 0%{?bootstrap} -%package logger -Summary: Journal only logging -License: LGPL-2.1+ -Group: System/Base -Provides: syslog -Provides: sysvinit(syslog) -Requires(pre): /usr/bin/getent -Requires(pre): /usr/sbin/groupadd -Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl -Requires(post): /usr/bin/systemctl -Requires(post): permissions -Conflicts: otherproviders(syslog) - -%description logger -This package marks the installation to not use syslog but only the journal. - -%package -n nss-myhostname -Summary: Plugin for local system host name resolution -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-myhostname -nss-myhostname is a plugin for the GNU Name Service Switch (NSS) -functionality of the GNU C Library (glibc) providing host name -resolution for the locally configured system hostname as returned by -gethostname(2). Various software relies on an always resolvable local -host name. When using dynamic hostnames this is usually achieved by -patching /etc/hosts at the same time as changing the host name. This -however is not ideal since it requires a writable /etc file system and -is fragile because the file might be edited by the administrator at -the same time. nss-myhostname simply returns all locally -configured public IP addresses, or -- if none are configured -- -the IPv4 address 127.0.0.2 (wich is on the local loopback) and the -IPv6 address ::1 (which is the local host) for whatever system -hostname is configured locally. Patching /etc/hosts is thus no -longer necessary. - -Note that nss-myhostname only provides a workaround for broken -software. If nss-myhostname is trigged by an application a message -is logged to /var/log/messages. Please check whether that's worth -a bug report then. -This package marks the installation to not use syslog but only the journal. - -%package -n nss-mymachines -Summary: Plugin for local virtual host name resolution -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-mymachines -nss-myhostname is a plugin for the GNU Name Service Switch (NSS) -functionality of the GNU C Library (glibc) providing host name -resolution for the locally configured containers and virtual machines -systemd-machined knows about. - -%package -n nss-resolve -Summary: Plugin for local hostname resolution via systemd-resolved -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-resolve - -%package journal-gateway -Summary: Gateway for serving journal events over the network using HTTP -License: LGPL-2.1+ -Group: System/Base -Requires: %{name} = %{version}-%{release} -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd - -%description journal-gateway -systemd-journal-gatewayd serves journal events over the network using HTTP. -%endif - %prep -%setup -q -n systemd-%version -echo "Checking whether upstream rpm macros changed..." -diff -au "%{S:10}" src/core/macros.systemd.in - -# only needed for bootstrap -%if 0%{?bootstrap} -cp %{SOURCE7} m4/ -%endif - -# systemd patches -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch12 -p1 -%patch16 -p1 -%patch17 -p1 -%patch20 -p1 -%patch21 -p1 -# check if this is still needed, or can be derived from fbdev uaccess rule -# http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html -%patch27 -p1 -%patch28 -p1 -%patch37 -p1 -%patch39 -p1 -%patch41 -p1 -%patch42 -p1 -%patch84 -p1 -%patch86 -p1 -%patch90 -p1 -%patch91 -p1 -%patch120 -p1 -%patch178 -p1 -%patch179 -p1 -%patch180 -p1 -%patch182 -p1 -%patch183 -p1 -%patch186 -p1 -%patch188 -p1 -%patch189 -p1 -%patch190 -p1 -%patch191 -p1 -%patch192 -p1 -%patch193 -p1 -%patch197 -p1 -%patch198 -p1 -%patch203 -p1 -%patch208 -p1 -%patch338 -p1 -%patch345 -p1 -%patch352 -p1 -%patch362 -p1 -%patch366 -p1 -%patch368 -p1 -%patch386 -p1 -%patch430 -p1 -%patch475 -p1 -%patch490 -p1 -%patch520 -p1 -%patch521 -p1 -%patch522 -p1 -%patch523 -p0 -%patch524 -p1 - -# udev patches -%patch1002 -p1 -%patch1003 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch1007 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1035 -p1 -%if %{with blkrrpart} -%patch1037 -p1 -%endif -%patch1060 -p1 -%patch1062 -p1 -%patch1066 -p1 -%patch1095 -p1 -%patch1096 -p1 -%patch1097 -p1 -%patch1098 -p1 -%patch1099 -p1 - -# -# In combination with Patch352 set-and-use-default-logconsole.patch -# Ensure that journald log on tty10 -# -%ifarch %ix86 x86_64 x32 -sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf -%endif +%setup -q %build -cflags () -{ - local flag=$1; shift - local var=$1; shift - local gold - test -n "${flag}" -a -n "${var}" || return - case "${!var}" in - *${flag}*) return - esac - if type ld.gold > /dev/null 2>&1 ; then - gold=-Wl,-fuse-ld=gold - fi - set -o noclobber - case "$flag" in - -Wl,*) - if echo 'int main () { return 0; }' | \ - ${CC:-gcc} -Werror $gold $flag -o /dev/null -xc - > /dev/null 2>&1 ; then - eval $var=\${$var:+\$$var\ }$flag - fi - rm -f ldtest.c - ;; - *) - if ${CC:-gcc} -Werror $gold $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then - eval $var=\${$var:+\$$var\ }$flag - fi - if ${CXX:-g++} -Werror $gold $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then - eval $var=\${$var:+\$$var\ }$flag - fi - esac - set +o noclobber -} - -# -# Be sure that fresh build libudev is linked as otherwise no errors are found -# -sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ -systemd_cryptsetup_LDFLAGS = \\\ - $(AM_LDFLAGS) \\\ - -Wl,-rpath-link=$(top_srcdir)/.libs\ - -}' Makefile.am -sh autogen.sh - -export V=e -export CFLAGS="%{optflags}" -export LDFLAGS -%if 0%{?suse_version} == 1315 - CFLAGS="$CFLAGS -DNET_IFNAMES=1" -%else - CFLAGS="$CFLAGS -DNET_IFNAMES=0" -%endif -cflags -pipe CFLAGS -cflags -Wl,-O2 LDFLAGS -cflags -Wl,--hash-size=8599 LDFLAGS -# keep split-usr until all packages have moved their systemd rules to /usr +# prevent pre-generated and distributed files from re-building +find . -name "*.[1-8]" -exec touch '{}' \; +touch src/systemadm.c +export V=1 %configure \ - --with-ntp-servers="0.opensuse.pool.ntp.org 1.opensuse.pool.ntp.org 2.opensuse.pool.ntp.org 3.opensuse.pool.ntp.org" \ + --with-distro=suse \ --docdir=%{_docdir}/systemd \ - --with-pamlibdir=/%{_lib}/security \ - --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ - --with-dbussessionservicedir=%{_datadir}/dbus-1/services \ - --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ - --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ -%if 0%{?bootstrap} - --disable-myhostname \ - --disable-manpages \ - --disable-machined \ -%else - --enable-manpages \ -%if %{with python} - --with-python \ -%endif - --with-nss-my-hostname-warning \ -%endif - --enable-selinux \ - --enable-split-usr \ - --disable-static \ - --with-rc-local-script-path-start=/etc/init.d/boot.local \ - --with-rc-local-script-path-stop=/etc/init.d/halt.local \ - --with-debug-shell=/bin/bash \ - --disable-smack \ - --disable-ima \ -%if %{without networkd} - --disable-networkd \ -%endif -%if %{without sysvcompat} - --with-sysvinit-path= \ - --with-sysvrcnd-path= \ -%endif -%if %{without resolved} - --disable-resolved \ -%endif - --disable-kdbus + --with-rootdir= \ + CFLAGS="$RPM_OPT_FLAGS" make %{?_smp_mflags} -%if ! 0%{?bootstrap} -make %{?_smp_mflags} update-man-list man -%endif %install -%make_install -install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" - -# move to %{_lib} -%if ! 0%{?bootstrap} -mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} -%endif - -mkdir -p %{buildroot}/{sbin,lib,bin} -ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm -ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password -ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl -ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd - -%if ! 0%{?bootstrap} -ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 -%endif - -%if ! 0%{?bootstrap} -install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config -%endif - -ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service -install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs -mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants -rm -rf %{buildroot}%{_sysconfdir}/rpm -find %{buildroot} -type f -name '*.la' -delete -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} - -install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert -ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd -ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init -ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot -ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt -ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown -ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff -ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit -ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel -rm -rf %{buildroot}/etc/systemd/system/*.target.wants -rm -f %{buildroot}/etc/systemd/system/default.target - -# We keep a copy of tmp.mount because it may be removed if not used -# (see %post): we want to be sure tmpfs won't be used for /tmp by -# default on Suse distros. -rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount -cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ - -# don't enable wall ask password service, it spams every console (bnc#747783) -rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path - -# create %{_libexecdir}/modules-load.d -mkdir -p %{buildroot}%{_libexecdir}/modules-load.d -cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf -# load sg module at boot time -sg -EOF - -# do not ship sysctl defaults in systemd package, will be part of -# aaa_base (in procps for now) -rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf - -# remove README file for now -rm -f %{buildroot}/etc/init.d/README -%if 0%{?bootstrap} -rm -f %{buildroot}%{_localstatedir}/log/README -rm -rf %{buildroot}%{_datadir}/bash-completion -%endif - -# legacy links -for f in loginctl journalctl ; do - ln -s $f %{buildroot}%{_bindir}/systemd-$f -%if ! 0%{?bootstrap} - ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 -%endif -done -ln -s /usr/lib/udev %{buildroot}/lib/udev - -# Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}%{_localstatedir}/log/journal/ - -# Make sure directories in /var exist -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog -#create ghost databases -touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database -touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin - -# Make sure the NTP units dir exists -mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ - -# Make sure the shutdown/sleep drop-in dirs exist -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/ -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ - -# Make sure these directories are properly owned -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants - -# create drop-in to prevent tty1 to be cleared (bnc#804158) -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ -cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf -[Service] -# ensure tty1 isn't cleared (bnc#804158) -TTYVTDisallocate=no -EOF - -#ensure we get the running kernel sysctl settings. - -cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/current-kernel-sysctl.conf -d! /run/sysctl.d -L! /run/sysctl.d/00-kernel-%v.conf - - - - /boot/sysctl.conf-%v -EOF - -mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d - -cat << EOF > %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf -[Unit] -After=local-fs.target -EOF - -# ensure after.local wrapper is called -install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ -ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ - -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight -mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed - -%fdupes -s %{buildroot}%{_mandir} - -%if ! 0%{?bootstrap} -for f in %{buildroot}%{_datadir}/bash-completion/completions/* -do - test -e "$f" || break - grep -q _init_completion "$f" || continue - echo "%exclude %{_datadir}/bash-completion/completions/${f##*/}" -done > files.completion -%else -> files.completion -%endif - -# packaged in systemd-rpm-macros -rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd - -%if %{without compat_libs} -lib=%{_libdir}/libsystemd.so -for lnk in daemon login id128 journal -do - lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so - echo '/* GNU ld script */' > ${lnk} - echo 'INPUT('${lib}')' >> ${lnk} -done -%endif - -# Some files which may created by us or by the admin later on -mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d -for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ - machine-id machine-info \ - systemd/system/runlevel2.target \ - systemd/system/runlevel3.target \ - systemd/system/runlevel4.target \ - systemd/system/runlevel4.target \ - systemd/system/runlevel5.target -do - > %{buildroot}%{_sysconfdir}/$ghost -done - -# Workaround for bug #882393 -for runlevel in poweroff rescue multi-user graphical reboot -do - mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants - ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ -done - -# add entries for xkeyboard-config converted keymaps; mappings, -# which already exist in original systemd mapping table are being -# ignored though, i.e. not overwritten -if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then - cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >>"%buildroot/usr/share/systemd/kbd-model-map" -fi - -%find_lang systemd +%makeinstall +find $RPM_BUILD_ROOT -type f -name '*.la' -exec rm -f {} ';' +mkdir -p $RPM_BUILD_ROOT/sbin +ln -s ../bin/systemd $RPM_BUILD_ROOT/sbin/init +ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/reboot +ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/halt +ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/shutdown +ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/poweroff +ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit +ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel +rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants +rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target %pre -for name in journal timesync network resolve bus-proxy -do - getent group systemd-$name >/dev/null && continue - groupadd -r systemd-$name || : -done -for name in timesync network resolve bus-proxy -do - getent passwd systemd-$name >/dev/null && continue - case "$name" in - timesync) descr="Systemd Time Synchronization" ;; - network) descr="Systemd Network Management" ;; - resolve) descr="Systemd Resolver" ;; - bus-proxy) descr="Systemd Bus Proxy" ;; - esac - useradd -r -l -g systemd-$name systemd-$name -s /usr/sbin/nologin -d / -c "$descr" || : -done -exit 0 +# kernel changes are pending to move this to /sys/fs/cgroup +mkdir -p -m 0755 /cgroup || : %post -%if ! 0%{?bootstrap} -/usr/sbin/pam-config -a --systemd || : -%endif -/sbin/ldconfig -[ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : -/usr/bin/systemd-machine-id-setup || : -/usr/lib/systemd/systemd-random-seed save || : -/usr/bin/systemctl daemon-reexec || : -/usr/bin/journalctl --update-catalog || : -# Make sure new journal files -chgrp systemd-journal %{_localstatedir}/log/journal/ || : -chmod g+s %{_localstatedir}/log/journal/ || : -if read ID < /etc/machine-id > /dev/null 2>&1 ; then - chgrp systemd-journal "%{_localstatedir}/log/journal/$ID" || : - chmod g+s "%{_localstatedir}/log/journal/$ID" || : -fi -%if %{with systemgrps} -getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -%endif -systemd-sysusers || : - -# Try to read default runlevel from the old inittab if it exists -if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then - runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) - if [ -n "$runlevel" ] ; then - /bin/ln -sf /usr/lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : - fi -fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then - # Enable these services by default. - # Specifying multiple units can cause the entire operation to not - # execute if one of them is missing, so run systemctl with one unit - # at a time only. - for i in getty@tty1.service remote-fs.target; do - /usr/bin/systemctl enable "$i" || : - done + # Try to read default runlevel from the old inittab if it exists + runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) + if [ -z "$runlevel" ] ; then + target="/lib/systemd/system/graphical.target" + else + target="/etc/systemd/system/runlevel$runlevel.target" + fi + /bin/ln -sf "$target" /etc/systemd/system/default.target 2>&1 || : + # Enable the services we install by default. + /bin/systemctl enable getty@.service >/dev/null 2>&1 || : + /bin/systemctl enable remote-fs.target >/dev/null 2>&1 || : + /bin/systemctl enable var-run.mount >/dev/null 2>&1 || : + /bin/systemctl enable var-lock.mount >/dev/null 2>&1 || : fi - -# since v207 /etc/sysctl.conf is no longer parsed, however -# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf -if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then - /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : -fi - -# migrate any symlink which may refer to the old path -for f in $(find /etc/systemd/system -type l -xtype l); do - new_target="/usr$(readlink $f)" - [ -f "$new_target" ] && ln -s -f $new_target $f || : -done - -# Keep tmp.mount if it's been enabled explicitly by the user otherwise -# make sure it wont be activated since it's the default for Suse -# distros. This unit can be pulled (implicitely) in various ways -# (private /tmp, etc..) and it's required by the basic.target -# explicitly since v220. -case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in -enabled) ;; -*) rm -f %{_prefix}/lib/systemd/system/tmp.mount -esac - -%postun -/sbin/ldconfig -if [ $1 -ge 1 ]; then - /usr/bin/systemctl daemon-reload || : - #Avoid restarting logind [bnc#934901] until fixed upstream - #/usr/bin/systemctl try-restart systemd-logind.service || : -fi -%if ! 0%{?bootstrap} -if [ $1 -eq 0 ]; then - /usr/sbin/pam-config -d --systemd || : -fi -%endif +# Make sure we always enable these basic services, in case something went +# wrong at the time these packages got installed. Usual systems can not +# properly bootup without these services. +/bin/systemctl enable udev.service >/dev/null 2>&1 || : +/bin/systemctl enable dbus.service >/dev/null 2>&1 || : %preun if [ $1 -eq 0 ]; then - /usr/bin/systemctl disable \ - getty@.service \ - remote-fs.target || : + /bin/systemctl disable getty@.service >/dev/null 2>&1 || : + /bin/systemctl disable remote-fs.target >/dev/null 2>&1 || : + /bin/systemctl disable var-run.mount >/dev/null 2>&1 || : + /bin/systemctl disable var-lock.mount >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi -# pretrans section must always use lua -%pretrans -n udev%{?mini} -p -if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then - posix.symlink("/lib/udev", "/usr/lib/udev") -end +%clean +rm -rf $RPM_BUILD_ROOT -%pre -n udev%{?mini} -if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then - rm /usr/lib/udev - mv /lib/udev /usr/lib - ln -s /usr/lib/udev /lib/udev -elif [ ! -e /lib/udev ]; then - ln -s /usr/lib/udev /lib/udev -fi -# Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules -getent group tape >/dev/null || groupadd -r tape || : -# kill daemon if we are not in a chroot -if test -f /proc/1/exe -a -d /proc/1/root ; then - if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket || : - udevadm control --exit || : - fi -fi - -%post -n udev%{?mini} -/usr/bin/udevadm hwdb --update || : -if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then - # add KERNEL name match to existing persistent net rules - sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ - /etc/udev/rules.d/70-persistent-net.rules || : -fi -# cleanup old stuff -rm -f /etc/sysconfig/udev -rm -f /etc/udev/rules.d/20-cdrom.rules -rm -f /etc/udev/rules.d/55-cdrom.rules -rm -f /etc/udev/rules.d/65-cdrom.rules -systemctl daemon-reload || : -# start daemon if we are not in a chroot -if test -f /proc/1/exe -a -d /proc/1/root; then - if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - if ! systemctl start systemd-udevd.service; then - /usr/lib/systemd/systemd-udevd --daemon || : - fi - fi -fi - -if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" -%if %{defined regenerate_initrd_post} - else - %regenerate_initrd_post -%else - elif [ -x /sbin/mkinitrd ]; then - [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup - /sbin/mkinitrd || : -%endif - fi -fi - -%postun -n udev%{?mini} -%insserv_cleanup -systemctl daemon-reload || : - -if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" -%if %{defined regenerate_initrd_post} - else - %regenerate_initrd_post -%else - elif [ -x /sbin/mkinitrd ]; then - [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup - /sbin/mkinitrd || : -%endif - fi -fi - -%if %{defined regenerate_initrd_post} -%posttrans -n udev%{?mini} -%regenerate_initrd_posttrans -%endif - -%post -n libsystemd0%{?mini} -p /sbin/ldconfig -%postun -n libsystemd0%{?mini} -p /sbin/ldconfig -%post -n libudev%{?mini}1 -p /sbin/ldconfig -%postun -n libudev%{?mini}1 -p /sbin/ldconfig - -%if ! 0%{?bootstrap} - -%if %{with permission} -%verifyscript logger -%verify_permissions -e %{_localstatedir}/log/journal/ -%endif - -%pre logger -getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : -exit 0 - -%post logger -%if %{with permission} -%set_permissions %{_localstatedir}/log/journal/ -%endif -%if %{with systemgrps} -getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -%endif -if [ "$1" -eq 1 ]; then -# tell journal to start logging on disk if directory didn't exist before - systemctl --no-block restart systemd-journal-flush.service || : -fi - -%preun -n nss-myhostname -if [ "$1" -eq 0 -a -f /etc/nsswitch.conf ] ; then - %{_sbindir}/nss-myhostname-config --disable -fi - -%post -n nss-myhostname -p /sbin/ldconfig - -%postun -n nss-myhostname -p /sbin/ldconfig - -%post -n nss-mymachines -p /sbin/ldconfig -%postun -n nss-mymachines -p /sbin/ldconfig - -%pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Systemd Journal Gateway" systemd-journal-gateway || : -getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : -%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service -exit 0 - -%post journal-gateway -%service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service - -%preun journal-gateway -%service_del_preun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service - -%postun journal-gateway -%service_del_postun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service - -%endif - -%files -f systemd.lang +%files %defattr(-,root,root) /bin/systemd -/bin/systemd-ask-password /bin/systemctl -%if %{with networkd} -%{_bindir}/networkctl -%endif -%{_bindir}/busctl -%{_bindir}/bootctl -%{_bindir}/kernel-install -%{_bindir}/hostnamectl -%{_bindir}/localectl -%if ! 0%{?bootstrap} -%{_bindir}/machinectl -%endif -%{_bindir}/systemctl -%{_bindir}/systemd-analyze -%{_bindir}/coredumpctl -%{_bindir}/systemd-delta -%{_bindir}/systemd-escape -%{_bindir}/systemd-firstboot -%{_bindir}/systemd-path -%{_bindir}/systemd-sysusers -%{_bindir}/systemd-notify -%{_bindir}/systemd-run -%{_bindir}/systemd-journalctl -%{_bindir}/journalctl -%{_bindir}/systemd-ask-password -%{_bindir}/loginctl -%{_bindir}/systemd-loginctl -%{_bindir}/systemd-inhibit -%{_bindir}/systemd-tty-ask-password-agent -%{_bindir}/systemd-tmpfiles -%{_bindir}/systemd-machine-id-setup -%{_bindir}/systemd-nspawn -%{_bindir}/systemd-stdio-bridge -%{_bindir}/systemd-detect-virt -%{_bindir}/timedatectl -%{_sbindir}/systemd-sysv-convert +/bin/systemd-notify %{_bindir}/systemd-cgls -%{_bindir}/systemd-cgtop -%{_bindir}/systemd-cat -%dir %{_prefix}/lib/kernel -%dir %{_prefix}/lib/kernel/install.d -%{_prefix}/lib/kernel/install.d/50-depmod.install -%{_prefix}/lib/kernel/install.d/90-loaderentry.install -%dir %{_prefix}/lib/systemd -%dir %{_prefix}/lib/systemd/user -%dir %{_prefix}/lib/systemd/system -%exclude %{_prefix}/lib/systemd/systemd-sysv* -%exclude %{_prefix}/lib/systemd/system/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/udev.service -%exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service -%exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -%exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev-root-symlink.service -%if ! 0%{?bootstrap} -%exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* -%endif -%{_prefix}/lib/systemd/system/*.automount -%{_prefix}/lib/systemd/system/*.service -%{_prefix}/lib/systemd/system/*.slice -%{_prefix}/lib/systemd/system/*.target -%{_prefix}/lib/systemd/system/*.mount -%{_prefix}/lib/systemd/system/*.timer -%{_prefix}/lib/systemd/system/*.socket -%{_prefix}/lib/systemd/system/*.wants -%{_prefix}/lib/systemd/system/*.path -%{_prefix}/lib/systemd/user/*.target -%{_prefix}/lib/systemd/user/*.service -%{_prefix}/lib/systemd/user/*.socket -%exclude %{_prefix}/lib/systemd/systemd-udevd -%if ! 0%{?bootstrap} -%exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd -%endif -%{_prefix}/lib/systemd/systemd-* -%{_prefix}/lib/systemd/systemd -%dir %{_prefix}/lib/systemd/catalog -%{_prefix}/lib/systemd/catalog/systemd.catalog -%{_prefix}/lib/systemd/catalog/systemd.*.catalog -%dir %{_prefix}/lib/systemd/system-shutdown -%dir %{_prefix}/lib/systemd/system-preset -%dir %{_prefix}/lib/systemd/user-preset -%dir %{_prefix}/lib/systemd/system-generators -%dir %{_prefix}/lib/systemd/user-generators -%{_prefix}/lib/systemd/user-generators/systemd-dbus1-generator -%dir %{_prefix}/lib/systemd/ntp-units.d/ -%dir %{_prefix}/lib/systemd/system-shutdown/ -%dir %{_prefix}/lib/systemd/system-sleep/ -%dir %{_prefix}/lib/systemd/system/default.target.wants -%dir %{_prefix}/lib/systemd/system/dbus.target.wants -%dir %{_prefix}/lib/systemd/system/getty@tty1.service.d -%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf -%dir %{_prefix}/lib/systemd/system/systemd-sysctl.service.d -%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf -%if ! 0%{?bootstrap} -%{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator -%endif -%{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator -%{_prefix}/lib/systemd/system-generators/systemd-debug-generator -%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator -%if %{with sysvcompat} -%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator -%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator -%endif -%{_prefix}/lib/systemd/system-generators/systemd-getty-generator -%{_prefix}/lib/systemd/system-generators/systemd-fstab-generator -%{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator -%{_prefix}/lib/systemd/system-preset/ -%{_prefix}/lib/sysusers.d/ +/lib/systemd/systemd-* /%{_lib}/security/pam_systemd.so -%config /etc/pam.d/systemd-user - -%ifarch %{ix86} x86_64 -%dir %{_prefix}/lib/systemd/boot -%dir %{_prefix}/lib/systemd/boot/efi -%{_prefix}/lib/systemd/boot/efi/*.efi -%{_prefix}/lib/systemd/boot/efi/*.stub -%endif - -%dir %{_libexecdir}/modules-load.d -%dir %{_sysconfdir}/modules-load.d -%{_libexecdir}/modules-load.d/sg.conf - -%dir %{_libexecdir}/tmpfiles.d -%dir %{_sysconfdir}/tmpfiles.d -%{_libexecdir}/tmpfiles.d/*.conf - -%dir %{_libexecdir}/binfmt.d -%dir %{_sysconfdir}/binfmt.d - -%dir %{_libexecdir}/sysctl.d -%dir %{_sysconfdir}/sysctl.d -%{_prefix}/lib/sysctl.d/50-coredump.conf - -%dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system -%dir %{_sysconfdir}/systemd/user -%dir %{_sysconfdir}/xdg/systemd -%dir %{_sysconfdir}/dbus-1 -%dir %{_sysconfdir}/dbus-1/system.d -%{_sysconfdir}/xdg/systemd/user -%dir %{_datadir}/dbus-1 -%dir %{_datadir}/dbus-1/services -%dir %{_datadir}/dbus-1/system-services -%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf -%config(noreplace) %{_sysconfdir}/systemd/coredump.conf -%if !0%{?bootstrap} -%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf -%endif -%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf +%dir %{_sysconfdir}/systemd/session +%dir %{_sysconfdir}/xdg/systemd/session %config(noreplace) %{_sysconfdir}/systemd/system.conf -%config(noreplace) %{_sysconfdir}/systemd/logind.conf -%config(noreplace) %{_sysconfdir}/systemd/journald.conf -%config(noreplace) %{_sysconfdir}/systemd/user.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf -%if !0%{?bootstrap} -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf -%endif -%if %{with networkd} -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf -%endif +%config(noreplace) %{_sysconfdir}/systemd/system/ctrl-alt-del.target +%config(noreplace) %{_sysconfdir}/systemd/system/kbrequest.target +%config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target +%config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target +%config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target +%config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf - -%{_sysconfdir}/X11/xinit/ -# Some files which may created by us -%dir %{_sysconfdir}/X11/xorg.conf.d -%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf -%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf -%ghost %config(noreplace) %{_sysconfdir}/locale.conf -%ghost %config(noreplace) %{_sysconfdir}/machine-id -%ghost %config(noreplace) %{_sysconfdir}/machine-info -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target - -%{_datadir}/factory/ +%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service -%if %{with networkd} -%{_prefix}/lib/systemd/system/org.freedesktop.network1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service -%endif -%{_prefix}/lib/systemd/system/org.freedesktop.systemd1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service -%{_prefix}/lib/systemd/system/org.freedesktop.locale1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service -%{_prefix}/lib/systemd/system/org.freedesktop.login1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service -%{_prefix}/lib/systemd/system/org.freedesktop.hostname1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service -%if !0%{?bootstrap} -%{_prefix}/lib/systemd/system/org.freedesktop.machine1.busname -%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service -%endif -%{_prefix}/lib/systemd/system/org.freedesktop.timedate1.busname - -%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service -%dir %{_datadir}/polkit-1 -%dir %{_datadir}/polkit-1/actions -%if !0%{?bootstrap} -%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy -%endif -%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy -%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy -%if ! 0%{?bootstrap} -%exclude %{_datadir}/systemd/gatewayd -%endif %{_datadir}/systemd - -%if ! 0%{?bootstrap} -%_mandir/man1/[a-rt-z]*ctl.1* -%_mandir/man1/systemc*.1* -%_mandir/man1/systemd*.1* -%_mandir/man5/[a-tv-z]* -%_mandir/man5/user* -%_mandir/man7/[bdfks]* -%_mandir/man8/kern* -%_mandir/man8/pam_* -%_mandir/man8/systemd-[a-gik-tv]* -%_mandir/man8/systemd-h[aioy]* -%_mandir/man8/systemd-journal-remote.* -%_mandir/man8/systemd-journal-upload.* -%_mandir/man8/systemd-journald* -%_mandir/man8/systemd-u[ps]* -%endif -%{_docdir}/systemd -%{_prefix}/lib/udev/rules.d/70-uaccess.rules -%{_prefix}/lib/udev/rules.d/71-seat.rules -%{_prefix}/lib/udev/rules.d/73-seat-late.rules -%if ! 0%{?bootstrap} -%{_prefix}/lib/udev/rules.d/73-seat-numlock.rules -%endif -%{_prefix}/lib/udev/rules.d/99-systemd.rules -%{_prefix}/lib/udev/numlock-on -%if 0%{suse_version} < 1310 -%{_sysconfdir}/rpm/macros.systemd -%endif -%dir %{_localstatedir}/lib/systemd -%dir %{_localstatedir}/lib/systemd/sysv-convert -%dir %{_localstatedir}/lib/systemd/migrated -%dir %{_localstatedir}/lib/systemd/catalog -%ghost %{_localstatedir}/lib/systemd/catalog/database -%dir %{_localstatedir}/lib/systemd/coredump -%dir %{_datadir}/zsh -%dir %{_datadir}/zsh/site-functions -%{_datadir}/zsh/site-functions/* -%ghost %{_localstatedir}/lib/systemd/backlight -%ghost %{_localstatedir}/lib/systemd/random-seed -%if %{with resolved} -%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf -%{_sysconfdir}/systemd/resolved.conf -%{_libdir}/libnss_resolve.so.2 -%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service -%{_prefix}/lib/systemd/system/org.freedesktop.resolve1.busname -%endif - -%if ! 0%{?bootstrap} -%files bash-completion -f files.completion -%defattr(-,root,root,-) -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/* -%endif - -%files devel -%defattr(-,root,root,-) -%{_libdir}/libsystemd.so -%{_libdir}/libsystemd-daemon.so -%{_libdir}/libsystemd-login.so -%{_libdir}/libsystemd-id128.so -%{_libdir}/libsystemd-journal.so -%{_includedir}/systemd/ %{_datadir}/pkgconfig/systemd.pc -%{_libdir}/pkgconfig/libsystemd.pc -%{_libdir}/pkgconfig/libsystemd-daemon.pc -%{_libdir}/pkgconfig/libsystemd-login.pc -%{_libdir}/pkgconfig/libsystemd-id128.pc -%{_libdir}/pkgconfig/libsystemd-journal.pc -%if ! 0%{?bootstrap} -%_mandir/man3/SD*.3* -%_mandir/man3/sd*.3* -%endif +%{_mandir}/man1/*.1* +%{_mandir}/man3/*.3* +%{_mandir}/man5/*.5* +%{_mandir}/man7/*.7* +%{_mandir}/man8/*.8* +%{_docdir}/systemd +/lib/udev/rules.d/*.rules +%dir /lib/systemd +/lib/systemd/system +%dir %{_sysconfdir}/systemd + +%files gtk +%defattr(-,root,root,-) +%{_bindir}/systemadm +%{_mandir}/man1/systemadm.1* %files sysvinit %defattr(-,root,root,-) @@ -1442,7 +188,6 @@ exit 0 /sbin/poweroff /sbin/telinit /sbin/runlevel -%if ! 0%{?bootstrap} %{_mandir}/man1/init.1* %{_mandir}/man8/halt.8* %{_mandir}/man8/reboot.8* @@ -1450,119 +195,5 @@ exit 0 %{_mandir}/man8/poweroff.8* %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* -%endif -%dir %_prefix/lib/systemd -%_prefix/lib/systemd/systemd-sysv-install - -%files -n udev%{?mini} -%defattr(-,root,root) -/sbin/udevd -/sbin/udevadm -# keep for compatibility -%ghost /lib/udev -%{_bindir}/udevadm -%if 0%{?suse_version} <= 1310 -%{_prefix}/lib/firmware -%endif -%{_bindir}/systemd-hwdb -%dir %{_prefix}/lib/udev/ -%{_prefix}/lib/udev/ata_id -%{_prefix}/lib/udev/cdrom_id -%{_prefix}/lib/udev/collect -%{_prefix}/lib/udev/mtd_probe -%{_prefix}/lib/udev/scsi_id -%{_prefix}/lib/udev/v4l_id -%{_prefix}/lib/udev/remount-tmpfs -%{_prefix}/lib/udev/rootsymlink-generator -%dir %{_prefix}/lib/udev/rules.d/ -%exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules -%exclude %{_prefix}/lib/udev/rules.d/71-seat.rules -%exclude %{_prefix}/lib/udev/rules.d/73-seat-late.rules -%exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules -%exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules -%{_prefix}/lib/udev/rules.d/*.rules -%{_prefix}/lib/udev/hwdb.d/ -%dir %{_sysconfdir}/udev/ -%dir %{_sysconfdir}/udev/rules.d/ -%ghost %{_sysconfdir}/udev/hwdb.bin -%config(noreplace) %{_sysconfdir}/udev/udev.conf -%if ! 0%{?bootstrap} -%_mandir/man5/udev* -%_mandir/man7/hwdb* -%_mandir/man7/udev* -%_mandir/man8/systemd-hwdb* -%_mandir/man8/systemd-udev* -%_mandir/man8/udev* -%endif -%dir %{_prefix}/lib/systemd/system -%{_prefix}/lib/systemd/systemd-udevd -%{_prefix}/lib/systemd/system/*udev*.service -%{_prefix}/lib/systemd/system/systemd-udevd*.socket -%dir %{_prefix}/lib/systemd/system/sysinit.target.wants -%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service -%dir %{_prefix}/lib/systemd/system/sockets.target.wants -%{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket -%dir %{_prefix}/lib/systemd/network -%{_prefix}/lib/systemd/network/*.link -%{_prefix}/lib/systemd/network/*.network -%if 0%{?suse_version} > 1310 -%{_datadir}/pkgconfig/udev.pc -%endif - -%files -n libsystemd0%{?mini} -%defattr(-,root,root) -%_libdir/libsystemd.so.* -%if %{with compat_libs} -%_libdir/libsystemd-daemon.so.* -%_libdir/libsystemd-login.so.* -%_libdir/libsystemd-id128.so.* -%_libdir/libsystemd-journal.so.* -%endif - -%files -n libudev%{?mini}1 -%defattr(-,root,root) -%{_libdir}/libudev.so.* - -%files -n libudev%{?mini}-devel -%defattr(-,root,root) -%{_includedir}/libudev.h -%{_libdir}/libudev.so -%{_libdir}/pkgconfig/libudev.pc -%if ! 0%{?bootstrap} -%{_mandir}/man3/*udev*.3* -%endif - -%if ! 0%{?bootstrap} -%files logger -%defattr(-,root,root) -%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ -%if %{with sysvcompat} -%{_localstatedir}/log/README -%endif - -%files -n nss-myhostname -%defattr(-, root, root) -%{_sbindir}/nss-myhostname-config -%if !0%{?bootstrap} -%{_mandir}/man8/libnss_myhostname.* -%{_mandir}/man8/nss-myhostname.* -%endif -/%{_lib}/*nss_myhostname* - -%files journal-gateway -%defattr(-, root, root) -%{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* -%{_prefix}/lib/systemd/systemd-journal-gatewayd -%{_mandir}/man8/systemd-journal-gatewayd.* -%{_datadir}/systemd/gatewayd - -%files -n nss-mymachines -%defattr(-,root,root) -%_libdir/libnss_mymachines.so* -%if !0%{?bootstrap} -%_mandir/man8/libnss_mymachines.* -%_mandir/man8/nss-mymachines.* -%endif -%endif %changelog diff --git a/tomcat6-var-lock-subsys-legacy.patch b/tomcat6-var-lock-subsys-legacy.patch deleted file mode 100644 index cf9207ba..00000000 --- a/tomcat6-var-lock-subsys-legacy.patch +++ /dev/null @@ -1,20 +0,0 @@ -Provide /run/lock/subsys directory to be able to provide the -/var/lock/subsys via the symbolic link /var/lock (bnc#889357) - ---- - tmpfiles.d/legacy.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-221/tmpfiles.d/legacy.conf -=================================================================== ---- systemd-221.orig/tmpfiles.d/legacy.conf -+++ systemd-221/tmpfiles.d/legacy.conf -@@ -17,7 +17,7 @@ L /var/lock - - - - ../run/lock - # /run/lock/subsys is used for serializing SysV service execution, and - # hence without use on SysV-less systems. - --#d /run/lock/subsys 0755 root root - -+d /run/lock/subsys 0755 root root - - - # /run/lock/lockdev is used to serialize access to tty devices via - # LCK..xxx style lock files, For more information see: diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch deleted file mode 100644 index f96fc24b..00000000 --- a/tty-ask-password-agent-on-console.patch +++ /dev/null @@ -1,376 +0,0 @@ -From 907bc2aa36f58c6050cd4b7b290e0992a4373e49 Mon Sep 17 00:00:00 2001 -From: Werner Fink -Date: Wed, 30 Sep 2015 15:00:41 +0200 -Subject: [PATCH] Ask for passphrases not only on the first console of - /dev/console - -but also on all other consoles. This does help on e.g. mainframes -where often a serial console together with other consoles are -used. Even rack based servers attachted to both a serial console -as well as having a virtual console do sometimes miss a connected -monitor. - -To be able to ask on all terminal devices of /dev/console the devices -are collected. If more than one device are found, then on each of the -terminals a inquiring task for passphrase is forked and do not return -to the caller. - -Every task has its own session and its own controlling terminal. -If one of the tasks does handle a password, the remaining tasks -will be terminated. - -Also let contradictory options on the command of -systemd-tty-ask-password-agent fail. - -Spwan for each device of the system console /dev/console a own process. - -Replace the system call wait() with with system call waitid(). ---- - src/tty-ask-password-agent/tty-ask-password-agent.c | 264 +++++++++++++++++++- - 1 file changed, 254 insertions(+), 10 deletions(-) - -Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c -=================================================================== ---- systemd-228.orig/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -4,6 +4,7 @@ - This file is part of systemd. - - Copyright 2010 Lennart Poettering -+ Copyright 2015 Werner Fink - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by -@@ -21,6 +22,9 @@ - - #include - #include -+#include -+#include -+#include - #include - #include - #include -@@ -49,6 +53,8 @@ - #include "terminal-util.h" - #include "util.h" - #include "utmp-wtmp.h" -+#include "fileio.h" -+#include "macro.h" - - static enum { - ACTION_LIST, -@@ -57,8 +63,21 @@ static enum { - ACTION_WALL - } arg_action = ACTION_QUERY; - -+struct console { -+ pid_t pid; -+ char *tty; -+}; -+ -+static volatile sig_atomic_t sigchild; -+ -+static void chld_handler(int sig) { -+ ++sigchild; -+} -+ - static bool arg_plymouth = false; - static bool arg_console = false; -+static bool arg_device = false; -+static const char *current_dev = "/dev/console"; - - static int ask_password_plymouth( - const char *message, -@@ -240,6 +259,80 @@ finish: - return r; - } - -+static void free_consoles(struct console *con, unsigned int num) { -+ unsigned int n; -+ -+ if (!con || num == 0) -+ return; -+ -+ for (n = 0; n < num; n++) -+ free(con[n].tty); -+ -+ free(con); -+} -+ -+static int collect_consoles(struct console **consoles, unsigned int *num) { -+ _cleanup_free_ char *active = NULL; -+ const char *word, *state; -+ struct console *con = NULL; -+ size_t con_len = 0, len; -+ unsigned int count = 0; -+ int ret; -+ -+ assert(num); -+ assert(consoles); -+ -+ ret = read_one_line_file("/sys/class/tty/console/active", &active); -+ if (ret < 0) -+ return log_error_errno(ret, "Failed to read /sys/class/tty/console/active: %m"); -+ -+ FOREACH_WORD(word, len, active, state) { -+ _cleanup_free_ char *tty = NULL; -+ -+ if (len == 4 && strneq(word, "tty0", 4)) { -+ -+ ret = read_one_line_file("/sys/class/tty/tty0/active", &tty); -+ if (ret < 0) -+ return log_error_errno(ret, "Failed to read /sys/class/tty/tty0/active: %m"); -+ -+ word = tty; -+ len = strlen(tty); -+ } -+ -+ con = GREEDY_REALLOC(con, con_len, 1+count); -+ if (!con) -+ return log_oom(); -+ -+ if (asprintf(&con[count].tty, "/dev/%.*s", (int)len, word) < 0) { -+ free_consoles(con, count); -+ return log_oom(); -+ } -+ -+ con[count].pid = 0; -+ count++; -+ } -+ -+ if (!con) { -+ con = GREEDY_REALLOC(con, con_len, 1); -+ if (!con) -+ return log_oom(); -+ -+ con[0].tty = strdup(current_dev); -+ if (!con[0].tty) { -+ free_consoles(con, 1); -+ return log_oom(); -+ } -+ -+ con[0].pid = 0; -+ count++; -+ } -+ -+ *num = count; -+ *consoles = con; -+ -+ return 0; -+} -+ - static int parse_password(const char *filename, char **wall) { - _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; - bool accept_cached = false, echo = false; -@@ -340,7 +433,7 @@ static int parse_password(const char *fi - int tty_fd = -1; - - if (arg_console) { -- tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY); -+ tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY); - if (tty_fd < 0) - return log_error_errno(tty_fd, "Failed to acquire /dev/console: %m"); - -@@ -601,7 +694,7 @@ static int parse_argv(int argc, char *ar - { "watch", no_argument, NULL, ARG_WATCH }, - { "wall", no_argument, NULL, ARG_WALL }, - { "plymouth", no_argument, NULL, ARG_PLYMOUTH }, -- { "console", no_argument, NULL, ARG_CONSOLE }, -+ { "console", optional_argument, NULL, ARG_CONSOLE }, - {} - }; - -@@ -643,6 +736,10 @@ static int parse_argv(int argc, char *ar - - case ARG_CONSOLE: - arg_console = true; -+ if (optarg && *optarg) { -+ current_dev = optarg; -+ arg_device = true; -+ } - break; - - case '?': -@@ -657,9 +754,143 @@ static int parse_argv(int argc, char *ar - return -EINVAL; - } - -+ if (arg_plymouth || arg_console) { -+ -+ if (!IN_SET(arg_action, ACTION_QUERY, ACTION_WATCH)) { -+ log_error("%s conflicting options --query and --watch.", program_invocation_short_name); -+ return -EINVAL; -+ } -+ -+ if (arg_plymouth && arg_console) { -+ log_error("%s conflicting options --plymouth and --console.", program_invocation_short_name); -+ return -EINVAL; -+ } -+ } -+ - return 1; - } - -+/* -+ * To be able to ask on all terminal devices of /dev/console -+ * the devices are collected. If more than one device are found, -+ * then on each of the terminals a inquiring task is forked. -+ * Every task has its own session and its own controlling terminal. -+ * If one of the tasks does handle a password, the remaining tasks -+ * will be terminated. -+ */ -+static int ask_on_consoles(int argc, char *argv[]) { -+ struct console *consoles = NULL; -+ struct sigaction sig = { -+ .sa_handler = chld_handler, -+ .sa_flags = SA_NOCLDSTOP | SA_RESTART, -+ }; -+ struct sigaction oldsig; -+ sigset_t oldset; -+ unsigned int num = 0, id; -+ siginfo_t status = {}; -+ int ret; -+ -+ ret = collect_consoles(&consoles, &num); -+ if (ret < 0) -+ return log_error_errno(ret, "Failed to query password: %m"); -+ -+ assert_se(sigprocmask_many(SIG_UNBLOCK, &oldset, SIGHUP, SIGCHLD, -1) >= 0); -+ -+ assert_se(sigemptyset(&sig.sa_mask) >= 0); -+ assert_se(sigaction(SIGCHLD, &sig, &oldsig) >= 0); -+ -+ sig.sa_handler = SIG_DFL; -+ assert_se(sigaction(SIGHUP, &sig, NULL) >= 0); -+ -+ for (id = 0; id < num; id++) { -+ consoles[id].pid = fork(); -+ -+ if (consoles[id].pid < 0) -+ return log_error_errno(errno, "Failed to query password: %m"); -+ -+ if (consoles[id].pid == 0) { -+ char *conarg; -+ int ac; -+ -+ conarg = strjoina("--console=", consoles[id].tty); -+ if (!conarg) -+ return log_oom(); -+ -+ free_consoles(consoles, num); /* not used anymore */ -+ -+ assert_se(prctl(PR_SET_PDEATHSIG, SIGHUP) >= 0); -+ -+ zero(sig); -+ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) >= 0); -+ assert_se(sigaction(SIGCHLD, &oldsig, NULL) >= 0); -+ -+ for (ac = 0; ac < argc; ac++) { -+ if (streq(argv[ac], "--console")) { -+ argv[ac] = conarg; -+ break; -+ } -+ } -+ -+ execv(SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH, argv); -+ -+ return log_error_errno(errno, "Failed to execute %s: %m", program_invocation_name); -+ } -+ } -+ -+ ret = 0; -+ while (true) { -+ -+ if ((ret = waitid(P_ALL, 0, &status, WEXITED)) < 0) { -+ -+ if (errno != EINTR) { -+ ret = -errno; -+ if (errno == ECHILD) -+ ret = EXIT_SUCCESS; -+ break; -+ } -+ continue; -+ } -+ -+ for (id = 0; id < num; id++) { -+ struct timespec timeout; -+ sigset_t set; -+ int signum; -+ -+ if (consoles[id].pid == status.si_pid || kill(consoles[id].pid, 0) < 0) -+ consoles[id].pid = -1; -+ -+ if (consoles[id].pid < 0) -+ continue; -+ -+ kill(consoles[id].pid, SIGHUP); -+ -+ assert_se(sigemptyset(&set) >= 0); -+ assert_se(sigaddset(&set, SIGCHLD) >= 0); -+ -+ timespec_store(&timeout, 50 * USEC_PER_MSEC); -+ signum = sigtimedwait(&set, NULL, &timeout); -+ -+ if (signum != SIGCHLD) { -+ -+ if (signum < 0 && errno != EAGAIN) -+ return log_error_errno(errno, "sigtimedwait() failed: %m"); -+ -+ if (signum >= 0) -+ log_warning("sigtimedwait() returned unexpected signal."); -+ } -+ -+ kill(consoles[id].pid, SIGKILL); -+ } -+ -+ if (WIFEXITED(status.si_status) && ret == 0) -+ ret = WEXITSTATUS(status.si_status); -+ } -+ -+ free_consoles(consoles, num); -+ -+ return ret; -+} -+ - int main(int argc, char *argv[]) { - int r; - -@@ -673,16 +904,29 @@ int main(int argc, char *argv[]) { - if (r <= 0) - goto finish; - -- if (arg_console) { -- (void) setsid(); -- (void) release_terminal(); -+ if (arg_console && !arg_device) -+ /* -+ * Spawn for each console device a own process -+ */ -+ r = ask_on_consoles(argc, argv); -+ else { -+ -+ if (arg_device) { -+ /* -+ * Later on a controlling terminal will be will be acquired, -+ * therefore the current process has to become a session -+ * leader and should not have a controlling terminal already. -+ */ -+ (void) setsid(); -+ (void) release_terminal(); -+ } -+ -+ if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) -+ r = watch_passwords(); -+ else -+ r = show_passwords(); - } - -- if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) -- r = watch_passwords(); -- else -- r = show_passwords(); -- - finish: - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; - } diff --git a/use-rndaddentropy-ioctl-to-load-random-seed.patch b/use-rndaddentropy-ioctl-to-load-random-seed.patch deleted file mode 100644 index 2e655400..00000000 --- a/use-rndaddentropy-ioctl-to-load-random-seed.patch +++ /dev/null @@ -1,155 +0,0 @@ -Simply writing /var/lib/systemd/random-seed back to /dev/(u)random does not -increase the entropy bit count. Therefore use the RNDADDENTROPY ioctl to -write back the bytes and increase the entropy bit counter. - -Related to bnc#892096 - ---- - src/random-seed/random-seed.c | 71 ++++++++++++++++++++++++++++++++++++------ - 1 file changed, 61 insertions(+), 10 deletions(-) - -Index: systemd-228/src/random-seed/random-seed.c -=================================================================== ---- systemd-228.orig/src/random-seed/random-seed.c -+++ systemd-228/src/random-seed/random-seed.c -@@ -24,6 +24,8 @@ - #include - #include - #include -+#include -+#include - - #include "alloc-util.h" - #include "fd-util.h" -@@ -36,8 +38,8 @@ - #define POOL_SIZE_MIN 512 - - int main(int argc, char *argv[]) { -- _cleanup_close_ int seed_fd = -1, random_fd = -1; -- _cleanup_free_ void* buf = NULL; -+ _cleanup_close_ int seed_fd = -1, random_fd = -1, entropy_fd = -1; -+ _cleanup_free_ struct rand_pool_info *entropy = NULL; - size_t buf_size = 0; - ssize_t k; - int r; -@@ -68,11 +70,12 @@ int main(int argc, char *argv[]) { - if (buf_size <= POOL_SIZE_MIN) - buf_size = POOL_SIZE_MIN; - -- buf = malloc(buf_size); -- if (!buf) { -+ entropy = (struct rand_pool_info*) malloc(sizeof(struct rand_pool_info) + buf_size); -+ if (!entropy) { - r = log_oom(); - goto finish; - } -+ entropy->buf_size = (typeof(entropy->buf_size)) buf_size; - - r = mkdir_parents_label(RANDOM_SEED, 0755); - if (r < 0) { -@@ -86,6 +89,23 @@ int main(int argc, char *argv[]) { - - if (streq(argv[1], "load")) { - -+ entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); -+ if (entropy_fd < 0) { -+ entropy->entropy_count = 0; -+ if (errno != ENOENT) { -+ log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); -+ r = -errno; -+ goto finish; -+ } -+ } else { -+ r = read(entropy_fd, &entropy->entropy_count, sizeof(entropy->entropy_count)); -+ if (r < 0) { -+ log_error("Failed to read entropy count file: %m"); -+ r = -errno; -+ goto finish; -+ } -+ } -+ - seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); - if (seed_fd < 0) { - seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -106,7 +126,7 @@ int main(int argc, char *argv[]) { - } - } - -- k = loop_read(seed_fd, buf, buf_size, false); -+ k = loop_read(seed_fd, entropy->buf, (size_t) entropy->buf_size, false); - if (k < 0) - r = log_error_errno(k, "Failed to read seed from " RANDOM_SEED ": %m"); - else if (k == 0) -@@ -114,13 +134,29 @@ int main(int argc, char *argv[]) { - else { - (void) lseek(seed_fd, 0, SEEK_SET); - -- r = loop_write(random_fd, buf, (size_t) k, false); -- if (r < 0) -- log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); -+ if (entropy->entropy_count && (size_t)k == (size_t)entropy->buf_size) { -+ r = ioctl(random_fd, RNDADDENTROPY, entropy); -+ if (r < 0) { -+ log_error_errno(errno, "Failed to write seed to /dev/urandom: %m"); -+ r = -errno; -+ } -+ } else { -+ r = loop_write(random_fd, entropy->buf, (size_t) k, false); -+ if (r < 0) -+ log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); -+ } - } - - } else if (streq(argv[1], "save")) { - -+ /* Read available entropy count, if possible */ -+ f = fopen("/proc/sys/kernel/random/entropy_avail", "re"); -+ if (f) { -+ if (fscanf(f, "%d", &entropy->entropy_count) < 0) -+ entropy->entropy_count = 0; -+ fclose(f); -+ } -+ - seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); - if (seed_fd < 0) { - r = log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m"); -@@ -133,6 +169,21 @@ int main(int argc, char *argv[]) { - goto finish; - } - -+ if (entropy->entropy_count) { -+ entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); -+ if (seed_fd < 0) { -+ log_error("Failed to open " RANDOM_SEED_DIR "entropy_count: %m"); -+ r = -errno; -+ goto finish; -+ } -+ r = write(entropy_fd, &entropy->entropy_count, sizeof(entropy->entropy_count)); -+ if (r < 0) { -+ log_error("Failed to write entropy count file: %m"); -+ r = -errno; -+ goto finish; -+ } -+ } -+ - } else { - log_error("Unknown verb '%s'.", argv[1]); - r = -EINVAL; -@@ -147,7 +198,7 @@ int main(int argc, char *argv[]) { - (void) fchmod(seed_fd, 0600); - (void) fchown(seed_fd, 0, 0); - -- k = loop_read(random_fd, buf, buf_size, false); -+ k = loop_read(random_fd, entropy->buf, (size_t) entropy->buf_size, false); - if (k < 0) { - r = log_error_errno(k, "Failed to read new seed from /dev/urandom: %m"); - goto finish; -@@ -158,7 +209,7 @@ int main(int argc, char *argv[]) { - goto finish; - } - -- r = loop_write(seed_fd, buf, (size_t) k, false); -+ r = loop_write(seed_fd, entropy->buf, (size_t) k, false); - if (r < 0) - log_error_errno(r, "Failed to write new random seed file: %m"); - } diff --git a/v228.tar.gz b/v228.tar.gz deleted file mode 100644 index 84f9e59d..00000000 --- a/v228.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd124ff561a07e6439ed2b3713f38ca914df7747f110ce86deea17b56d245ae6 -size 4034401 diff --git a/vhangup-on-all-consoles.patch b/vhangup-on-all-consoles.patch deleted file mode 100644 index c0f4d74f..00000000 --- a/vhangup-on-all-consoles.patch +++ /dev/null @@ -1,40 +0,0 @@ -Related to bnc#886599 and others. That is use the vhangup(8) tool -to explicit do a virtually hangup on the specified on the terminal -line to give e.g. the bash a few seconds to e.g. safe its history. - -[crrodriguez@opensuse.org: Feb 2015 -This a known kernel bug, no notification from the cgroup subsystem -arrives and the processes in the "scope" units have -to be SIGKILL'ed without delay in order not to hang shutdown -Status: fix not available as of Feb 16 2015 -track progress: https://bugzilla.redhat.com/show_bug.cgi?id=1141137 -] - ---- - units/getty@.service.m4 | 1 + - units/serial-getty@.service.m4 | 1 + - 2 files changed, 2 insertions(+) -Index: systemd-221/units/getty@.service.m4 -=================================================================== ---- systemd-221.orig/units/getty@.service.m4 -+++ systemd-221/units/getty@.service.m4 -@@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0 - [Service] - # the VT is cleared by TTYVTDisallocate - ExecStart=-/sbin/agetty --noclear %I $TERM -+ExecStopPost=-/sbin/vhangup /dev/%I - Type=idle - Restart=always - RestartSec=0 -Index: systemd-221/units/serial-getty@.service.m4 -=================================================================== ---- systemd-221.orig/units/serial-getty@.service.m4 -+++ systemd-221/units/serial-getty@.service.m4 -@@ -24,6 +24,7 @@ IgnoreOnIsolate=yes - - [Service] - ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM -+ExecStopPost=-/sbin/vhangup /dev/%I - Type=idle - Restart=always - UtmpIdentifier=%I diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch deleted file mode 100644 index e6df8c6e..00000000 --- a/watch_resolv.conf_for_become_changed.patch +++ /dev/null @@ -1,153 +0,0 @@ ---- - src/core/manager.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/core/manager.h | 5 ++ - 2 files changed, 98 insertions(+) - -Index: systemd-227/src/core/manager.c -=================================================================== ---- systemd-227.orig/src/core/manager.c -+++ systemd-227/src/core/manager.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - #ifdef HAVE_AUDIT - #include -@@ -294,6 +295,91 @@ static int manager_check_ask_password(Ma - return m->have_ask_password; - } - -+static int manager_setup_resolv_conf_change(Manager *); -+ -+static int manager_dispatch_resolv_conf_fd(sd_event_source *source, -+ int fd, uint32_t revents, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(m); -+ assert(m->resolv_conf_inotify_fd == fd); -+ -+ if (revents != EPOLLIN) { -+ log_warning("Got unexpected poll event for notify fd."); -+ return 0; -+ } -+ -+ if (fd >= 0) -+ flush_fd(fd); -+ -+ m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); -+ manager_setup_resolv_conf_change(m); -+ return m->resolv_conf_noent ? 0 : res_init(); -+} -+ -+static int manager_setup_resolv_conf_change(Manager *m) { -+ int r; -+ -+ assert(m); -+ assert(m->resolv_conf_inotify_fd < 0); -+ -+ m->resolv_conf_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); -+ if (m->resolv_conf_inotify_fd < 0) { -+ log_error("inotify_init1() failed: %m"); -+ r = -errno; -+ goto fail; -+ } -+ if (inotify_add_watch(m->resolv_conf_inotify_fd, "/etc/resolv.conf", -+ IN_CLOSE_WRITE|IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF) < 0) { -+ if (errno == ENOENT) { -+ m->resolv_conf_noent = true; -+ if (inotify_add_watch(m->resolv_conf_inotify_fd, "/etc", IN_CREATE|IN_MOVED_TO) < 0) { -+ log_error("Failed to add watch on /etc: %m"); -+ r = -errno; -+ goto fail; -+ } -+ } else { -+ log_error("Failed to add watch on /etc/resolv.conf: %m"); -+ r = -errno; -+ goto fail; -+ } -+ } -+ if (inotify_add_watch(m->resolv_conf_inotify_fd, "/etc/host.conf", -+ IN_CLOSE_WRITE|IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF) < 0 && errno != ENOENT) { -+ log_error("Failed to add watch on /etc/host.conf: %m"); -+ r = -errno; -+ goto fail; -+ } -+ -+ r = sd_event_add_io(m->event, &m->resolv_conf_event_source, -+ m->resolv_conf_inotify_fd, EPOLLIN, -+ manager_dispatch_resolv_conf_fd, m); -+ if (r < 0) { -+ log_error("Failed to add event source for resolver: %s", strerror(-r)); -+ goto fail; -+ } -+ -+ r = sd_event_source_set_priority(m->resolv_conf_event_source, -10); -+ if (r < 0) { -+ log_error("Failed to add event source for resolver: %s", strerror(-r)); -+ m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ goto fail; -+ } -+ -+ return 0; -+fail: -+ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); -+ return 0; /* Ignore error here */ -+} -+ -+static void manager_shutdown_resolv_conf_change(Manager *m) { -+ assert(m); -+ -+ m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); -+} -+ - static int manager_watch_idle_pipe(Manager *m) { - int r; - -@@ -576,6 +662,7 @@ int manager_new(ManagerRunningAs running - - m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ - -+ m->resolv_conf_inotify_fd = -1; - m->ask_password_inotify_fd = -1; - m->have_ask_password = -EINVAL; /* we don't know */ - m->first_boot = -1; -@@ -637,6 +724,10 @@ int manager_new(ManagerRunningAs running - if (r < 0) - goto fail; - -+ r = manager_setup_resolv_conf_change(m); -+ if (r < 0) -+ goto fail; -+ - m->udev = udev_new(); - if (!m->udev) { - r = -ENOMEM; -@@ -914,6 +1005,8 @@ Manager* manager_free(Manager *m) { - if (!m) - return NULL; - -+ manager_shutdown_resolv_conf_change(m); -+ - manager_clear_jobs_and_units(m); - - for (c = 0; c < _UNIT_TYPE_MAX; c++) -Index: systemd-227/src/core/manager.h -=================================================================== ---- systemd-227.orig/src/core/manager.h -+++ systemd-227/src/core/manager.h -@@ -180,6 +180,11 @@ struct Manager { - struct libmnt_monitor *mount_monitor; - sd_event_source *mount_event_source; - -+ /* Watch out any change of /etc/resolv.conf */ -+ int resolv_conf_inotify_fd; -+ sd_event_source *resolv_conf_event_source; -+ bool resolv_conf_noent; -+ - /* Data specific to the swap filesystem */ - FILE *proc_swaps; - sd_event_source *swap_event_source; From 894558d816c5da10e5fe1826006a6e48bb27f3dbbeb7e456bfd5d790fb1110ac Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Wed, 4 Aug 2010 21:10:35 +0000 Subject: [PATCH 002/221] Accepting request 44548 from Base:System Copy from Base:System/systemd based on submit request 44548 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/44548 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=2 --- systemd-4.tar.bz2 | 3 --- systemd-5.tar.bz2 | 3 +++ systemd.changes | 12 ++++++++++++ systemd.spec | 10 +++++++--- 4 files changed, 22 insertions(+), 6 deletions(-) delete mode 100644 systemd-4.tar.bz2 create mode 100644 systemd-5.tar.bz2 diff --git a/systemd-4.tar.bz2 b/systemd-4.tar.bz2 deleted file mode 100644 index 33cb8239..00000000 --- a/systemd-4.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d569a0624d7ce409cd76ace49d2d853f9e030674e24ea585427b9079f10ba5ba -size 637332 diff --git a/systemd-5.tar.bz2 b/systemd-5.tar.bz2 new file mode 100644 index 00000000..49731a83 --- /dev/null +++ b/systemd-5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f7460c4b77172e8eeb124dae0b68fc99f30cfa8d38e52c9e6c441fee2c69d5e +size 638175 diff --git a/systemd.changes b/systemd.changes index 7b38d516..cf7bad2d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed Aug 4 12:42:23 CEST 2010 - kay.sievers@novell.com + +- version 5 + - selinux fixes +- fix hanging 'reboot' started from vc + +------------------------------------------------------------------- +Mon Aug 2 16:33:20 CEST 2010 - kay.sievers@novell.com + +- enable getty.target by default + ------------------------------------------------------------------- Sat Jul 24 11:16:52 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 959e32b8..36ab5708 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 4) +# spec file for package systemd (Version 5) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 4 +Version: 5 Release: 1 License: GPLv2+ Group: System/Base @@ -117,19 +117,23 @@ if [ "$1" -eq 1 ]; then /bin/ln -sf "$target" /etc/systemd/system/default.target 2>&1 || : # Enable the services we install by default. /bin/systemctl enable getty@.service >/dev/null 2>&1 || : + /bin/systemctl enable getty.target >/dev/null 2>&1 || : /bin/systemctl enable remote-fs.target >/dev/null 2>&1 || : /bin/systemctl enable var-run.mount >/dev/null 2>&1 || : /bin/systemctl enable var-lock.mount >/dev/null 2>&1 || : fi # Make sure we always enable these basic services, in case something went # wrong at the time these packages got installed. Usual systems can not -# properly bootup without these services. +# properly work without these services. /bin/systemctl enable udev.service >/dev/null 2>&1 || : /bin/systemctl enable dbus.service >/dev/null 2>&1 || : +# temporary fix +/bin/systemctl enable getty.target >/dev/null 2>&1 || : %preun if [ $1 -eq 0 ]; then /bin/systemctl disable getty@.service >/dev/null 2>&1 || : + /bin/systemctl disable getty.target >/dev/null 2>&1 || : /bin/systemctl disable remote-fs.target >/dev/null 2>&1 || : /bin/systemctl disable var-run.mount >/dev/null 2>&1 || : /bin/systemctl disable var-lock.mount >/dev/null 2>&1 || : From 02ee50058d13a68c496e779987a29f8cae136b15c0dea3c5557f40de61f79e8f Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Mon, 9 Aug 2010 00:23:44 +0000 Subject: [PATCH 003/221] Accepting request 44710 from Base:System Copy from Base:System/systemd based on submit request 44710 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/44710 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=3 --- systemd-5.tar.bz2 | 3 --- systemd-6.tar.bz2 | 3 +++ systemd.changes | 27 +++++++++++++++++++++++++++ systemd.spec | 4 ++-- 4 files changed, 32 insertions(+), 5 deletions(-) delete mode 100644 systemd-5.tar.bz2 create mode 100644 systemd-6.tar.bz2 diff --git a/systemd-5.tar.bz2 b/systemd-5.tar.bz2 deleted file mode 100644 index 49731a83..00000000 --- a/systemd-5.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f7460c4b77172e8eeb124dae0b68fc99f30cfa8d38e52c9e6c441fee2c69d5e -size 638175 diff --git a/systemd-6.tar.bz2 b/systemd-6.tar.bz2 new file mode 100644 index 00000000..280fad5e --- /dev/null +++ b/systemd-6.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7bf2fe66aa9feeb53a05d5c0264981247ddeb68a3b68996032e553eae4963a8 +size 640107 diff --git a/systemd.changes b/systemd.changes index cf7bad2d..80abf244 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri Aug 6 13:07:35 CEST 2010 - kay.sievers@novell.com + +- version 6 + - man page update + +------------------------------------------------------------------- +Fri Aug 6 09:48:34 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - downgrade a few log messages + - properly handle devices which are referenced before they exist + +------------------------------------------------------------------- +Fri Aug 6 01:59:50 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - fix dependency cycle of boot.* by splitting fsck.target + - sort boot.* before other sysv services + from sysinint.target + - start getty for serial console + +------------------------------------------------------------------- +Thu Aug 5 23:12:32 CEST 2010 - kay.sievers@novell.com + +- add licence to subpackages + ------------------------------------------------------------------- Wed Aug 4 12:42:23 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 36ab5708..d5d32d18 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 5) +# spec file for package systemd (Version 6) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 5 +Version: 6 Release: 1 License: GPLv2+ Group: System/Base From 82a8164cd8861c4f95d02c80046d4ac21259eae6c0b71c05a3ce498f60fe9a5d Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 13 Aug 2010 00:39:56 +0000 Subject: [PATCH 004/221] Accepting request 45392 from Base:System Copy from Base:System/systemd based on submit request 45392 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/45392 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=4 --- systemd-6.tar.bz2 | 3 --- systemd-7.tar.bz2 | 3 +++ systemd.changes | 15 +++++++++++++++ systemd.spec | 5 +++-- 4 files changed, 21 insertions(+), 5 deletions(-) delete mode 100644 systemd-6.tar.bz2 create mode 100644 systemd-7.tar.bz2 diff --git a/systemd-6.tar.bz2 b/systemd-6.tar.bz2 deleted file mode 100644 index 280fad5e..00000000 --- a/systemd-6.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7bf2fe66aa9feeb53a05d5c0264981247ddeb68a3b68996032e553eae4963a8 -size 640107 diff --git a/systemd-7.tar.bz2 b/systemd-7.tar.bz2 new file mode 100644 index 00000000..edfd95d3 --- /dev/null +++ b/systemd-7.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:951cb958080e24b211d4f24d6bf78358295bfda69d5ab301e94c3ccd8f1b90c1 +size 644164 diff --git a/systemd.changes b/systemd.changes index 80abf244..8e7f8b69 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed Aug 11 11:29:17 CEST 2010 - kay.sievers@novell.com + +- add audit messages for service changes +- update utmp with external program +- all to refuse manual service starting/stopping + +------------------------------------------------------------------- +Tue Aug 10 06:54:23 CEST 2010 - kay.sievers@novell.com + +- version 7 + - hide output if quiet is passed on the kernel cmdline + - fix auto restarting of units after a configuration reload + - don't call bus_path_escape() with NULL unit name + ------------------------------------------------------------------- Fri Aug 6 13:07:35 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index d5d32d18..763d3667 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 6) +# spec file for package systemd (Version 7) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,13 +20,14 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 6 +Version: 7 Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libudev-devel udev +BuildRequires: audit-devel BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel From 027aca1b211e1172b158b001fa4d994aaf61da5e57a2ad9a031217eda49cde68 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 10 Sep 2010 14:07:56 +0000 Subject: [PATCH 005/221] Accepting request 47338 from Base:System Copy from Base:System/systemd based on submit request 47338 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/47338 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=5 --- systemd-7.tar.bz2 | 3 --- systemd-9.tar.bz2 | 3 +++ systemd.changes | 52 +++++++++++++++++++++++++++++++++++++ systemd.spec | 66 +++++++++++++++++++++++++---------------------- 4 files changed, 90 insertions(+), 34 deletions(-) delete mode 100644 systemd-7.tar.bz2 create mode 100644 systemd-9.tar.bz2 diff --git a/systemd-7.tar.bz2 b/systemd-7.tar.bz2 deleted file mode 100644 index edfd95d3..00000000 --- a/systemd-7.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:951cb958080e24b211d4f24d6bf78358295bfda69d5ab301e94c3ccd8f1b90c1 -size 644164 diff --git a/systemd-9.tar.bz2 b/systemd-9.tar.bz2 new file mode 100644 index 00000000..dc66f76c --- /dev/null +++ b/systemd-9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31323d052daff12e86b9971b2ecd20c12f4ac41ed04ee11a1eb2686a2c9bb313 +size 666685 diff --git a/systemd.changes b/systemd.changes index 8e7f8b69..8af63d2d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,55 @@ +------------------------------------------------------------------- +Fri Sep 3 11:52:42 CEST 2010 - kay.sievers@novell.com + +- version 9 + - units: don't add shutdown conflicts dep to umount.target + - dbus: don't send cgroup agent messages directly to system bus + - dbus: don't accept activation requests anymore if we are going + down anyway + - systemctl: fix return value of systemctl start and friends + - service: wait for process exit only if we actually killed + somebody + +------------------------------------------------------------------- +Thu Aug 26 22:14:04 CEST 2010 - kay.sievers@novell.com + +- version 8 + - KERNEL 2.6.36+ REQUIRED! + - mount cgroup file systems to /sys/fs/cgroup instead of /cgroup + - invoke sulogin instead of /bin/sh + - systemctl: show timestamps for state changes + - add global configuration options for handling of auto mounts + +------------------------------------------------------------------- +Fri Aug 20 06:51:26 CEST 2010 - kay.sievers@novell.com + +- apply /etc/fstab mount options to all api mounts +- properly handle LABEL="" in fstab +- do not consider LSB exit codes 5 and 6 as failure + +------------------------------------------------------------------- +Tue Aug 17 22:54:41 CEST 2010 - kay.sievers@novell.com + +- prefix sysv job descriptions with LSB: +- add native sysctl + hwclock + random seed service files +- properly fallback to rescue.target if default.target is hosed +- rename ValidNoProcess= to RemainAfterExit= +- add systemd-modules-load tool to handle /etc/modules.d/ + +------------------------------------------------------------------- +Tue Aug 17 09:01:04 CEST 2010 - kay.sievers@novell.com + +- add support for delayed shutdown, similar to sysv in style +- rename Type=finish to Type=oneshot and allow multiple ExecStart= +- don't show ENOENT for non exitent configuration files +- log build time features on startup +- rearrange structs to make them smaller +- move runlevel[2-5] links to /lib +- create default.target link to /lib not /etc +- handle random-seed +- write utmp record before we kill all processes +- create /var/lock/subsys, /var/run/utmp + ------------------------------------------------------------------- Wed Aug 11 11:29:17 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 763d3667..6da472fa 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 7) +# spec file for package systemd (Version 9) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 7 +Version: 9 Release: 1 License: GPLv2+ Group: System/Base @@ -34,8 +34,8 @@ BuildRequires: pam-devel BuildRequires: pkg-config BuildRequires: dbus-1-glib-devel gtk2-devel BuildRequires: libselinux-devel libsepol-devel -Requires: udev >= 160 -Requires: dbus-1 >= 1.3.2 +Requires: udev >= 162 +Requires: dbus-1 >= 1.4.0 Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc @@ -99,12 +99,14 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target - -%pre -# kernel changes are pending to move this to /sys/fs/cgroup -mkdir -p -m 0755 /cgroup || : +mkdir -p $RPM_BUILD_ROOT/etc/modules.d +# alias for /etc/init.d/* +ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service +ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service %post +/bin/systemctl daemon-reexec >/dev/null 2>&1 || : + # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then @@ -113,31 +115,36 @@ if [ "$1" -eq 1 ]; then if [ -z "$runlevel" ] ; then target="/lib/systemd/system/graphical.target" else - target="/etc/systemd/system/runlevel$runlevel.target" + target="/lib/systemd/system/runlevel$runlevel.target" fi /bin/ln -sf "$target" /etc/systemd/system/default.target 2>&1 || : - # Enable the services we install by default. - /bin/systemctl enable getty@.service >/dev/null 2>&1 || : - /bin/systemctl enable getty.target >/dev/null 2>&1 || : - /bin/systemctl enable remote-fs.target >/dev/null 2>&1 || : - /bin/systemctl enable var-run.mount >/dev/null 2>&1 || : - /bin/systemctl enable var-lock.mount >/dev/null 2>&1 || : + # Enable these services by default. + /bin/systemctl enable \ + getty@.service \ + getty.target \ + remote-fs.target \ + hwclock-save.service \ + sysctl.service \ + systemd-random-seed-load.service \ + systemd-random-seed-save.service \ + systemd-modules-load.service \ + var-run.service \ + var-lock.service >/dev/null 2>&1 || : fi -# Make sure we always enable these basic services, in case something went -# wrong at the time these packages got installed. Usual systems can not -# properly work without these services. -/bin/systemctl enable udev.service >/dev/null 2>&1 || : -/bin/systemctl enable dbus.service >/dev/null 2>&1 || : -# temporary fix -/bin/systemctl enable getty.target >/dev/null 2>&1 || : %preun if [ $1 -eq 0 ]; then - /bin/systemctl disable getty@.service >/dev/null 2>&1 || : - /bin/systemctl disable getty.target >/dev/null 2>&1 || : - /bin/systemctl disable remote-fs.target >/dev/null 2>&1 || : - /bin/systemctl disable var-run.mount >/dev/null 2>&1 || : - /bin/systemctl disable var-lock.mount >/dev/null 2>&1 || : + /bin/systemctl disable \ + getty@.service \ + getty.target \ + remote-fs.target \ + hwclock-save.service \ + sysctl.service \ + systemd-random-seed-load.service \ + systemd-random-seed-save.service \ + systemd-modules-load.service \ + var-run.service \ + var-lock.service >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -155,13 +162,10 @@ rm -rf $RPM_BUILD_ROOT %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/session %dir %{_sysconfdir}/xdg/systemd/session +%dir %{_sysconfdir}/modules.d %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/system/ctrl-alt-del.target %config(noreplace) %{_sysconfdir}/systemd/system/kbrequest.target -%config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target -%config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target -%config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target -%config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service From 1cd7d40c5514a53acda76aab499e91d9bcb031bc1ee65aa6534d87f7247dab1f Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Sun, 26 Sep 2010 22:49:25 +0000 Subject: [PATCH 006/221] Accepting request 49131 from Base:System Copy from Base:System/systemd based on submit request 49131 from user elvigia OBS-URL: https://build.opensuse.org/request/show/49131 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=6 --- systemd-10.tar.bz2 | 3 +++ systemd-9.tar.bz2 | 3 --- systemd.changes | 39 +++++++++++++++++++++++++++++++++++ systemd.spec | 51 +++++++++++++++++++++------------------------- 4 files changed, 65 insertions(+), 31 deletions(-) create mode 100644 systemd-10.tar.bz2 delete mode 100644 systemd-9.tar.bz2 diff --git a/systemd-10.tar.bz2 b/systemd-10.tar.bz2 new file mode 100644 index 00000000..7b9bf091 --- /dev/null +++ b/systemd-10.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dde1144e7ac56da7c022dd1aefe3587c70e92fe8c393039cbf1f02269f8f2265 +size 680700 diff --git a/systemd-9.tar.bz2 b/systemd-9.tar.bz2 deleted file mode 100644 index dc66f76c..00000000 --- a/systemd-9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:31323d052daff12e86b9971b2ecd20c12f4ac41ed04ee11a1eb2686a2c9bb313 -size 666685 diff --git a/systemd.changes b/systemd.changes index 8af63d2d..c5ba6a82 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Sun Sep 26 20:39:53 UTC 2010 - aj@suse.de + +- Do not package man pages twice. + +------------------------------------------------------------------- +Wed Sep 22 11:40:02 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - basic services are enabled by default now + +------------------------------------------------------------------- +Tue Sep 21 14:39:02 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - vconsole and locale setup + - hook up tmpwatch + +------------------------------------------------------------------- +Fri Sep 17 10:58:24 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - add new utility to initialize the virtual console + - initialize locale from /etc/locale by default + - ask-password: allow services query SSL/harddisk passphrases + +------------------------------------------------------------------- +Fri Sep 17 10:54:24 CEST 2010 - kay.sievers@novell.com + +- version 10 + - logger: support SOCK_STREAM /dev/log sockets + - make sure the file system is writable before we write utmp data + - systemctl: use isolate when called as telinit for a runlevel + - initctl: properly use isolate when activating runlevels + - set HOME=/root when running shells + - make sure we don't crash if there's an automount unit without + mount unit + - start logger only after syslog is up + ------------------------------------------------------------------- Fri Sep 3 11:52:42 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 6da472fa..17c2231c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 9) +# spec file for package systemd (Version 10) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 9 +Version: 10 Release: 1 License: GPLv2+ Group: System/Base @@ -32,10 +32,13 @@ BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: pkg-config -BuildRequires: dbus-1-glib-devel gtk2-devel +BuildRequires: dbus-1-glib-devel gtk2-devel libnotify-devel BuildRequires: libselinux-devel libsepol-devel Requires: udev >= 162 Requires: dbus-1 >= 1.4.0 +Requires: kbd +Requires: util-linux +Requires: tmpwatch Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc @@ -112,39 +115,20 @@ ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random if [ "$1" -eq 1 ]; then # Try to read default runlevel from the old inittab if it exists runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) - if [ -z "$runlevel" ] ; then - target="/lib/systemd/system/graphical.target" - else - target="/lib/systemd/system/runlevel$runlevel.target" + if [ -n "$runlevel" ] ; then + /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : fi - /bin/ln -sf "$target" /etc/systemd/system/default.target 2>&1 || : # Enable these services by default. /bin/systemctl enable \ getty@.service \ - getty.target \ - remote-fs.target \ - hwclock-save.service \ - sysctl.service \ - systemd-random-seed-load.service \ - systemd-random-seed-save.service \ - systemd-modules-load.service \ - var-run.service \ - var-lock.service >/dev/null 2>&1 || : + remote-fs.target >/dev/null 2>&1 || : fi %preun if [ $1 -eq 0 ]; then /bin/systemctl disable \ getty@.service \ - getty.target \ - remote-fs.target \ - hwclock-save.service \ - sysctl.service \ - systemd-random-seed-load.service \ - systemd-random-seed-save.service \ - systemd-modules-load.service \ - var-run.service \ - var-lock.service >/dev/null 2>&1 || : + remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -156,6 +140,7 @@ rm -rf $RPM_BUILD_ROOT /bin/systemd /bin/systemctl /bin/systemd-notify +/bin/systemd-ask-password %{_bindir}/systemd-cgls /lib/systemd/systemd-* /%{_lib}/security/pam_systemd.so @@ -164,14 +149,23 @@ rm -rf $RPM_BUILD_ROOT %dir %{_sysconfdir}/xdg/systemd/session %dir %{_sysconfdir}/modules.d %config(noreplace) %{_sysconfdir}/systemd/system.conf -%config(noreplace) %{_sysconfdir}/systemd/system/ctrl-alt-del.target -%config(noreplace) %{_sysconfdir}/systemd/system/kbrequest.target %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/systemd %{_datadir}/pkgconfig/systemd.pc +# Packaged in gtk subpackage +%exclude %{_mandir}/man1/systemadm.1* +# Packaged in sysvinit subpackage +%exclude %{_mandir}/man1/init.1* +%exclude %{_mandir}/man8/halt.8* +%exclude %{_mandir}/man8/reboot.8* +%exclude %{_mandir}/man8/shutdown.8* +%exclude %{_mandir}/man8/poweroff.8* +%exclude %{_mandir}/man8/telinit.8* +%exclude %{_mandir}/man8/runlevel.8* %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -186,6 +180,7 @@ rm -rf $RPM_BUILD_ROOT %files gtk %defattr(-,root,root,-) %{_bindir}/systemadm +%{_bindir}/systemd-ask-password-agent %{_mandir}/man1/systemadm.1* %files sysvinit From 97cf942bc1ec85ce1bc289c03d31b9af59883193bdf921f958d1df2fa7152371 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Sun, 3 Oct 2010 20:36:13 +0000 Subject: [PATCH 007/221] Accepting request 49682 from Base:System Copy from Base:System/systemd based on submit request 49682 from user elvigia OBS-URL: https://build.opensuse.org/request/show/49682 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=7 --- systemd-10.tar.bz2 | 4 ++-- systemd.changes | 13 +++++++++++++ systemd.spec | 8 +++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/systemd-10.tar.bz2 b/systemd-10.tar.bz2 index 7b9bf091..ebfd337b 100644 --- a/systemd-10.tar.bz2 +++ b/systemd-10.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dde1144e7ac56da7c022dd1aefe3587c70e92fe8c393039cbf1f02269f8f2265 -size 680700 +oid sha256:7b66daacfd0716ea2d5292391932a215b6a48f7869e63da73b7a705f9e0ff071 +size 701858 diff --git a/systemd.changes b/systemd.changes index c5ba6a82..9057cb9f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Sun Oct 3 08:08:13 UTC 2010 - aj@suse.de + +- /etc/modules.d was renamed to modules.load.d +- only include tmpfiles.d/*conf files + +------------------------------------------------------------------- +Wed Sep 29 11:55:11 CEST 2010 - kay.sievers@novell.com + +- don't create sysv order deps on merged units +- fix Provides: handling in LSB headers (network.target) +- native (optional) readahead + ------------------------------------------------------------------- Sun Sep 26 20:39:53 UTC 2010 - aj@suse.de diff --git a/systemd.spec b/systemd.spec index 17c2231c..ceb9721a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 10 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -102,7 +102,7 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target -mkdir -p $RPM_BUILD_ROOT/etc/modules.d +mkdir -p $RPM_BUILD_ROOT/etc/modules.load.d # alias for /etc/init.d/* ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service @@ -147,7 +147,9 @@ rm -rf $RPM_BUILD_ROOT %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/session %dir %{_sysconfdir}/xdg/systemd/session -%dir %{_sysconfdir}/modules.d +%dir %{_sysconfdir}/modules.load.d +%dir %{_sysconfdir}/tmpfiles.d +%{_sysconfdir}/tmpfiles.d/*conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml From be0e871d28499c113344e13fcfe0029aae41a881f377fe8d017a8ad25ec9968e Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Mon, 11 Oct 2010 14:32:06 +0000 Subject: [PATCH 008/221] Accepting request 50060 from Base:System Copy from Base:System/systemd based on submit request 50060 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/50060 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=8 --- systemd-10.tar.bz2 | 3 --- systemd-11.tar.bz2 | 3 +++ systemd.changes | 13 ++++++++++++- systemd.spec | 12 ++++++------ 4 files changed, 21 insertions(+), 10 deletions(-) delete mode 100644 systemd-10.tar.bz2 create mode 100644 systemd-11.tar.bz2 diff --git a/systemd-10.tar.bz2 b/systemd-10.tar.bz2 deleted file mode 100644 index ebfd337b..00000000 --- a/systemd-10.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b66daacfd0716ea2d5292391932a215b6a48f7869e63da73b7a705f9e0ff071 -size 701858 diff --git a/systemd-11.tar.bz2 b/systemd-11.tar.bz2 new file mode 100644 index 00000000..a12a4f93 --- /dev/null +++ b/systemd-11.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cd384721c0c63ebd0086db83dc887d307efe6f3e9234be4156ec0e16baa0ed1 +size 707238 diff --git a/systemd.changes b/systemd.changes index 9057cb9f..02c17862 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,7 +1,18 @@ +------------------------------------------------------------------- +Thu Oct 7 15:58:10 CEST 2010 - kay.sievers@novell.com + +- version 11 + +------------------------------------------------------------------- +Wed Oct 6 09:27:13 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - readahead fixes + ------------------------------------------------------------------- Sun Oct 3 08:08:13 UTC 2010 - aj@suse.de -- /etc/modules.d was renamed to modules.load.d +- /etc/modules.d was renamed to modules-load.d - only include tmpfiles.d/*conf files ------------------------------------------------------------------- diff --git a/systemd.spec b/systemd.spec index ceb9721a..d7b66bd6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 10) +# spec file for package systemd (Version 11) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,8 +20,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 10 -Release: 2 +Version: 11 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -102,7 +102,7 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target -mkdir -p $RPM_BUILD_ROOT/etc/modules.load.d +mkdir -p $RPM_BUILD_ROOT/etc/modules-load.d # alias for /etc/init.d/* ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service @@ -147,9 +147,9 @@ rm -rf $RPM_BUILD_ROOT %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/session %dir %{_sysconfdir}/xdg/systemd/session -%dir %{_sysconfdir}/modules.load.d +%dir %{_sysconfdir}/modules-load.d %dir %{_sysconfdir}/tmpfiles.d -%{_sysconfdir}/tmpfiles.d/*conf +%{_sysconfdir}/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml From 44e5f2b35fbae370781fe812219d2f3e42d9298f48fbae49a079f2277d3b82c1 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Thu, 28 Oct 2010 12:40:42 +0000 Subject: [PATCH 009/221] Accepting request 51446 from Base:System Accepted submit request 51446 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/51446 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=9 --- systemd-11.tar.bz2 | 4 +-- systemd-rpmlintrc | 2 ++ systemd.changes | 62 ++++++++++++++++++++++++++++++++++++++++++++++ systemd.spec | 10 +++++--- 4 files changed, 73 insertions(+), 5 deletions(-) diff --git a/systemd-11.tar.bz2 b/systemd-11.tar.bz2 index a12a4f93..ceff8feb 100644 --- a/systemd-11.tar.bz2 +++ b/systemd-11.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cd384721c0c63ebd0086db83dc887d307efe6f3e9234be4156ec0e16baa0ed1 -size 707238 +oid sha256:5aaddd148e3a2eb03cbe3fdca989930ff45632d3c446fb92ad3a51ed51f72a51 +size 736356 diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index 32735bde..d7a7e967 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,4 +1,6 @@ addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") +addFilter(".*dangling-symlink .* /dev/null.*") +addFilter(".*suse-dbus-unauthorized-service.*") addFilter(".*devel-file-in-non-devel-package.*systemd.pc.*") addFilter(".*files-duplicate .*/reboot.8.*") addFilter(".*files-duplicate .*/sd_is_socket.3.*") diff --git a/systemd.changes b/systemd.changes index 02c17862..1d128269 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,65 @@ +------------------------------------------------------------------- +Tue Oct 26 13:10:01 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - make sure to pass TERM=linux to all sysv scripts + - don't unset HOME/TERM when run in session mode + - mount: add nosuid,nodev,noexec switches to /var/lock and /var/run + - tmpfiles: Don't clean /var/lock/subsys + - tmpfiles: Make wtmp match utmp perms, and add btmp + - umount: Make sure / is remounted ro on shutdown + - unset HOME and TERM set from the kernel + - activate wall agent automatically + - ask-password: add basic tty agent + +------------------------------------------------------------------- +Sat Oct 23 18:09:23 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - rename ask-password-agent to gnome-ask-password-agent + - fsck: suppress error message if we cannot change into single + user mode since + - dbus: epose FsckPassNo property for service objects + - man: document systemctl --force + - introduce 'systemctl kill' + +------------------------------------------------------------------- +Sat Oct 23 14:57:57 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - syslog: enable kmsg bridge by default + - fsck: add initial version of fsck and quotacheck wrappers + - tmpfiles: remove forcefsck/fastboot flag files after boot + - swap: listen for POLLPRI events on /proc/swaps if availabled + - tmpfiles: integrate native tmpwatch + - shutdown: loop only as long as we manage to unmount/detach devices + - umount: disable dm devices by devnode, not by path name + - introduce final.target + - replace distro-specific shutdown scripts with native services + - try to get rid of DM devices + - log to console by default + - introduce kexec.service, kexec.target and exit.target + - hook in fsck@.service instance for all mount points with passno > 0 + - systemctl: warn if user enables unit with no installation instructions + - dbus: add introspection to midlevel paths + - look for dynamic throw-away units in /dev/.systemd/system + - major rework, use /sbin/swapon for setting up swaps + - introduce Restart=on-failure and Restart=on-abort + - units: enable utmp for serial gettys too + - rename 'banned' load state to 'masked' + - optionally, create INIT_PROCESS/DEAD_PROCESS entries for a service +- use systemd-native fsck/mount +- use systemd-native tmpfiles.d/ instead of tmpwatch + +------------------------------------------------------------------- +Fri Oct 8 14:49:04 CEST 2010 - kay.sievers@novell.com + +new snapshot + - fix 'systemctl enable getty@.service' + - properly support 'banning' of services + - handle nologin + - add native reboot/shutdown implementation + ------------------------------------------------------------------- Thu Oct 7 15:58:10 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index d7b66bd6..bee1416a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -34,11 +34,10 @@ BuildRequires: pam-devel BuildRequires: pkg-config BuildRequires: dbus-1-glib-devel gtk2-devel libnotify-devel BuildRequires: libselinux-devel libsepol-devel -Requires: udev >= 162 +Requires: udev >= 164 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux -Requires: tmpwatch Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc @@ -106,6 +105,10 @@ mkdir -p $RPM_BUILD_ROOT/etc/modules-load.d # alias for /etc/init.d/* ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service +ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup.service +ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service %post /bin/systemctl daemon-reexec >/dev/null 2>&1 || : @@ -141,6 +144,7 @@ rm -rf $RPM_BUILD_ROOT /bin/systemctl /bin/systemd-notify /bin/systemd-ask-password +/bin/systemd-tty-ask-password-agent %{_bindir}/systemd-cgls /lib/systemd/systemd-* /%{_lib}/security/pam_systemd.so @@ -182,7 +186,7 @@ rm -rf $RPM_BUILD_ROOT %files gtk %defattr(-,root,root,-) %{_bindir}/systemadm -%{_bindir}/systemd-ask-password-agent +%{_bindir}/systemd-gnome-ask-password-agent %{_mandir}/man1/systemadm.1* %files sysvinit From 8fd0a09c28a60d87cc9b01d03004e6d546f5b0b9a3f2ed2b42243b619788e6d1 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Thu, 28 Oct 2010 12:40:49 +0000 Subject: [PATCH 010/221] Autobuild autoformatter for 51446 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=10 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index bee1416a..d4bc5895 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 11 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From ceab99797e60fc1e8b2813f6d6b13d6f2c824c837304dc8eebcf625014afe1df Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Tue, 2 Nov 2010 12:53:20 +0000 Subject: [PATCH 011/221] Accepting request 51667 from Base:System Accepted submit request 51667 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/51667 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=11 --- systemd-11.tar.bz2 | 4 ++-- systemd.changes | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/systemd-11.tar.bz2 b/systemd-11.tar.bz2 index ceff8feb..55c877bb 100644 --- a/systemd-11.tar.bz2 +++ b/systemd-11.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5aaddd148e3a2eb03cbe3fdca989930ff45632d3c446fb92ad3a51ed51f72a51 -size 736356 +oid sha256:f67f8cd3e71b60399d5369e464adfb97f97a04092c8d58ac8c0c04951dba988a +size 739665 diff --git a/systemd.changes b/systemd.changes index 1d128269..93e74970 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,48 @@ +------------------------------------------------------------------- +Fri Oct 29 21:20:57 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - fsck: return SUCCESS when we skip the check + - fsck: skip checking / if it is writable + - units: fix variable expansion + - mount: don't pull in nofail mounts by default, but use them + if they are around + - job: recursively fail BoundBy dependencies + - fsck: fix target name to check for + - units: rename fedora/single.service to rescue.service + - units: introduce plymouth-start and plymouth-kexec + - unit: get rid of IgnoreDependencyFailure= + - use util-linux:agetty instead of mingetty + - unit: replace StopRetroactively= by BindTo= dependencies + - automount: show who's triggering an automount + - units: run sysctl only if /etc/sysctl.conf exists + - systemctl: always show what and where for mount units + - shutdown: reword a few messages a little + - manager: show which jobs are actually installed after a transaction + - timer: when deserializing timer state stay elapsed + - device: set recursive_stop=true by default + - unit: suppress incorrect deserialization errors + - swap: there's no reason not order swap after sysinit + - socket: fix IPv6 availability detection + +------------------------------------------------------------------- +Wed Oct 27 12:00:26 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - create /dev/stderr and friends early on boot + - run sysv related scripts with TERM=linux + - add only swaps listed in /etc/fstab automatically to swap.target + - errors: refer to systemctl status when useful + - swap: add default cgroup to swap exec env + - readahead: bump a device's request_nr when enabling readahead + - shutdown: properly handle sigtimedwait() timing out + - main: fix typo in kernel cmdline parameters help + - ord-tty: properly handle SIGINT/SIGTERM + - systemctl: automatically spawn temporary password agent + - ask-password: properly handle multiple pending passwords + - ask-password: enable plymouth agent by default + - ask-password: add minimal plymouth password agent + ------------------------------------------------------------------- Tue Oct 26 13:10:01 CEST 2010 - kay.sievers@novell.com From 5824efe9f65db406a03dd96ad4a8c43d1b8a0bb826833d43a33969f16f546ce1 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 2 Nov 2010 12:53:25 +0000 Subject: [PATCH 012/221] Autobuild autoformatter for 51667 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=12 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index d4bc5895..9533b5b4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 11 -Release: 2 +Release: 3 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 98de0dd6674e5b625d02b3b44956c00d34a3fde106de8acf1ede6a2bceab319b Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Mon, 15 Nov 2010 17:11:15 +0000 Subject: [PATCH 013/221] Accepting request 52831 from Base:System Accepted submit request 52831 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/52831 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=13 --- systemd-11.tar.bz2 | 4 ++-- systemd.changes | 31 +++++++++++++++++++++++++++++++ systemd.spec | 7 +++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/systemd-11.tar.bz2 b/systemd-11.tar.bz2 index 55c877bb..03e373ee 100644 --- a/systemd-11.tar.bz2 +++ b/systemd-11.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f67f8cd3e71b60399d5369e464adfb97f97a04092c8d58ac8c0c04951dba988a -size 739665 +oid sha256:788abe068e41eeabc177f519e15d5380daa8d2d8b7de809637fae851a8c27280 +size 748317 diff --git a/systemd.changes b/systemd.changes index 93e74970..9c995676 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Thu Nov 11 07:44:02 CET 2010 - kay.sievers@novell.com + +- new snapshot + - tmpfiles: include reference to man page in tmpfiles files + - vconsole: support additional keymap for toggling layouts + - main: warn if /etc/mtab is not a symlink + - add bash completion for systemctl --system + - man: minor tmpfiles(5) updates and reindenting + - main: rename process on startup to 'systemd' to avoid confusion + - unit: add ConditionNull= condition + - ac-power: make ac-power a proper binary that scripts can call + - manager: parse RD_TIMESTAMP passed from initrd + - modules-load: fix minor race + - label: use internal utility functions wher epossible + - cryptsetup: minimal cryptsetup unit generator + - selinux: relabel /dev after loading policy + - log: downgrade syslog connection failure message + - service: delay automatic restart if job is pending + - manager: when isolating undo all pending jobs, too + - manager: only minimize impact if we are in fail mode +- replace /etc/mtab with link to /proc/self/mounts + +------------------------------------------------------------------- +Fri Nov 5 00:28:10 CET 2010 - kay.sievers@novell.com + +- new snapshot + - man/tmpfiles.d.xml: add a manpage for tmpfiles + - do not overwrite other udev tags + - readahead: shortcut replay if /.readahead doesn't exist + ------------------------------------------------------------------- Fri Oct 29 21:20:57 CEST 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 9533b5b4..b38cf823 100644 --- a/systemd.spec +++ b/systemd.spec @@ -126,6 +126,8 @@ if [ "$1" -eq 1 ]; then getty@.service \ remote-fs.target >/dev/null 2>&1 || : fi +# regular mtab is not written/cleaned-up/supported +ln -sf /proc/self/mounts /etc/mtab || : %preun if [ $1 -eq 0 ]; then @@ -150,6 +152,7 @@ rm -rf $RPM_BUILD_ROOT /%{_lib}/security/pam_systemd.so %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/session +%dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/xdg/systemd/session %dir %{_sysconfdir}/modules-load.d %dir %{_sysconfdir}/tmpfiles.d @@ -159,6 +162,8 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_datadir}/polkit-1 +%{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/systemd %{_datadir}/pkgconfig/systemd.pc @@ -182,6 +187,8 @@ rm -rf $RPM_BUILD_ROOT %dir /lib/systemd /lib/systemd/system %dir %{_sysconfdir}/systemd +%dir %{_sysconfdir}/bash_completion.d +/etc/bash_completion.d/systemctl-bash-completion.sh %files gtk %defattr(-,root,root,-) From 0e79c92117395cb927fe9cc0dc459c0c397ea8f3542e34be68f93ec64d5d54ee Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Mon, 15 Nov 2010 17:11:22 +0000 Subject: [PATCH 014/221] Autobuild autoformatter for 52831 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=14 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index b38cf823..a842e94a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 11 -Release: 3 +Release: 4 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 46dfeb7ddbb59ea00c1215157e360a864768e6abec797961ac48c8bcb3609211 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Thu, 18 Nov 2010 15:50:27 +0000 Subject: [PATCH 015/221] Accepting request 53250 from Base:System Accepted submit request 53250 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/53250 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=15 --- systemd-11.tar.bz2 | 3 --- systemd-12.tar.bz2 | 3 +++ systemd.changes | 61 ++++++++++++++++++++++++++++++++++++++++++++++ systemd.spec | 23 ++++++++++++----- 4 files changed, 81 insertions(+), 9 deletions(-) delete mode 100644 systemd-11.tar.bz2 create mode 100644 systemd-12.tar.bz2 diff --git a/systemd-11.tar.bz2 b/systemd-11.tar.bz2 deleted file mode 100644 index 03e373ee..00000000 --- a/systemd-11.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:788abe068e41eeabc177f519e15d5380daa8d2d8b7de809637fae851a8c27280 -size 748317 diff --git a/systemd-12.tar.bz2 b/systemd-12.tar.bz2 new file mode 100644 index 00000000..e6a86374 --- /dev/null +++ b/systemd-12.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:870fb4bf129563bd99fd51df73a08c47ea772d73beb26f05238e13cd388cafff +size 753774 diff --git a/systemd.changes b/systemd.changes index 9c995676..693f53ac 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,64 @@ +------------------------------------------------------------------- +Wed Nov 17 01:32:04 CET 2010 - kay.sievers@novell.com + +- version 12 + - ask-password: add --console mode to ask /dev/console +- revert too new libnotify code/requirement + +------------------------------------------------------------------- +Tue Nov 16 11:47:28 CET 2010 - kay.sievers@novell.com + +- new snapshot + - cryptsetup: reword questions a little + - units: order hwclock after readahead + - path: don't mention too many inotify msgs + - cryptsetup: include device name in password question + - cryptsetup: lock ourselves into memory as long as we deal + with passwords + - plymouth: use updated socket name + - units: set TERM for gettys again, since they acquire a TTY + - units: allow start-up of plymouth ask-password agent very early + - units: enable ask-paswword .path units early enough to be useful + for early mounts + - units: delay getty until logins are allowed + - pam: always rely on loginuid instead of uid to determine cgroup + and XDG_RUNTIME_DIR name + - cgroup: call root cgroup system instead of systemd-1 + - exec: determine right TERM= setting based on tty name + - pam: rename master user cgroup to 'master' + - drop support for MANAGER_SESSION, introduce MANAGER_USER + - units: use ConditionDirectoryNotEmpty= where applicable + - unit: introduce ConditionDirectoryNotEmpty= + - delete tmp.mount which may conflict with an unrelated fstab + entry +- revert too new libnotify code/requirement +- disable native crypto handling + +------------------------------------------------------------------- +Mon Nov 15 18:45:31 CET 2010 - kay.sievers@novell.com + +- new snapshot + - load-dropin: add support for .requires directories + - manager: consider jobs already installed as redundant when + reducing new transactions + - manager: always pull 'following' units into transaction + - util: always highlight distro name + - units: make use of agetty mandatory + - manager: don't fail transaction if adding CONFLICTED_BY job fails + - job: make it possible to wait for devices to be unplugged + - tmpfiles: ignore files marked with the sticky bit + - cryptsetup: handle password=none properly + - cryptsetup: properly parse cipher= switch + - cryptsetup: support non-LUKS crypto partitions + - ask-password: enable password agent + - automatically start cryptsetup when looking for mount source + - log: add automatic log target + - cryptsetup: hook up tool with ask-password + - manager: hookup generators + - split mount_point_is_api() and mount_point_ignore() +- replace boot.crypto job with systemd native crypto handling +- enable readahead (requires 2.6.37+ kernel's fanotify to work) + ------------------------------------------------------------------- Thu Nov 11 07:44:02 CET 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index a842e94a..e3b4a628 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,8 +20,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 11 -Release: 4 +Version: 12 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -31,6 +31,7 @@ BuildRequires: audit-devel BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel +BuildRequires: libcryptsetup-devel BuildRequires: pkg-config BuildRequires: dbus-1-glib-devel gtk2-devel libnotify-devel BuildRequires: libselinux-devel libsepol-devel @@ -43,7 +44,7 @@ Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{v Source1: systemd-rpmlintrc %description -Systemd is a system and session manager, compatible with SysV and LSB +Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using @@ -59,7 +60,7 @@ Summary: Graphical front-end for systemd Requires: %{name} = %{version}-%{release} %description gtk -Graphical front-end for systemd system and session manager. +Graphical front-end for systemd system and service manager. %package sysvinit License: GPLv2+ @@ -101,6 +102,7 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target +rm -f $RPM_BUILD_ROOT/lib/systemd/system-generators/* mkdir -p $RPM_BUILD_ROOT/etc/modules-load.d # alias for /etc/init.d/* ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service @@ -109,6 +111,8 @@ ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup. ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service +#ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service +#ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service %post /bin/systemctl daemon-reexec >/dev/null 2>&1 || : @@ -124,6 +128,9 @@ if [ "$1" -eq 1 ]; then # Enable these services by default. /bin/systemctl enable \ getty@.service \ + hwclock-load.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : fi # regular mtab is not written/cleaned-up/supported @@ -133,6 +140,9 @@ ln -sf /proc/self/mounts /etc/mtab || : if [ $1 -eq 0 ]; then /bin/systemctl disable \ getty@.service \ + hwclock-load.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -151,9 +161,9 @@ rm -rf $RPM_BUILD_ROOT /lib/systemd/systemd-* /%{_lib}/security/pam_systemd.so %dir %{_sysconfdir}/systemd/system -%dir %{_sysconfdir}/systemd/session +%dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd -%dir %{_sysconfdir}/xdg/systemd/session +%dir %{_sysconfdir}/xdg/systemd/user %dir %{_sysconfdir}/modules-load.d %dir %{_sysconfdir}/tmpfiles.d %{_sysconfdir}/tmpfiles.d/*.conf @@ -186,6 +196,7 @@ rm -rf $RPM_BUILD_ROOT /lib/udev/rules.d/*.rules %dir /lib/systemd /lib/systemd/system +/lib/systemd/system-generators %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/bash_completion.d /etc/bash_completion.d/systemctl-bash-completion.sh From 78da4aba2d1de1262896df8a49701efcf2bd89b4de72ec59cf56c79b13a7bf54 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Thu, 18 Nov 2010 15:50:36 +0000 Subject: [PATCH 016/221] Autobuild autoformatter for 53250 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=16 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index e3b4a628..219781c4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 11) +# spec file for package systemd (Version 12) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # From 25d65a4bd748559298f3cbfb7b22bbea000cc8d01127cd9147a736bcbfaa0473 Mon Sep 17 00:00:00 2001 From: Berthold Gunreben Date: Tue, 23 Nov 2010 09:35:41 +0000 Subject: [PATCH 017/221] Accepting request 53740 from Base:System Accepted submit request 53740 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/53740 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=17 --- systemd-12.tar.bz2 | 3 --- systemd-13.tar.bz2 | 3 +++ systemd.changes | 42 ++++++++++++++++++++++++++++++++++++++++++ systemd.spec | 8 ++++---- 4 files changed, 49 insertions(+), 7 deletions(-) delete mode 100644 systemd-12.tar.bz2 create mode 100644 systemd-13.tar.bz2 diff --git a/systemd-12.tar.bz2 b/systemd-12.tar.bz2 deleted file mode 100644 index e6a86374..00000000 --- a/systemd-12.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:870fb4bf129563bd99fd51df73a08c47ea772d73beb26f05238e13cd388cafff -size 753774 diff --git a/systemd-13.tar.bz2 b/systemd-13.tar.bz2 new file mode 100644 index 00000000..b51d03a2 --- /dev/null +++ b/systemd-13.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34474765aa0556dfbe1e30dc1fd148a6daddda2a20e47e3283ad88a01ec4db29 +size 762878 diff --git a/systemd.changes b/systemd.changes index 693f53ac..50d69941 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,45 @@ +------------------------------------------------------------------- +Mon Nov 22 10:10:59 CET 2010 - kay.sievers@novell.com + +- new snapshot + - systemctl: don't return LSB status error codes for 'show' + - mount: do not try to mount disabled cgroup controllers + - man: document /etc/modules-load.d/, /etc/os-release, + locale.conf, /etc/vconsole.conf, /etc/hostname + - units: move a couple of units from base.target to + sysinit.target + - man: reorder things to follow the same order everywhere +- revert too new libnotify code/requirement +- revert fsck -l option requirement + +------------------------------------------------------------------- +Sat Nov 20 19:58:14 CET 2010 - kay.sievers@novell.com + +- version 13 + - cryptsetup: actually show disk name + - cryptsetup: show udev device name when asking for password + - sysctl: implement native tool and support /etc/sysctl.d + - units: enable console ask-password agent by default + - introduce /etc/os-release distro description + - job: make sure we don't fail umount.target if a mount unit + failed to stop + - cgroup: after killing cgroup processes, ensure the group is + really dead gone. wait for 3s at max + - cgroup: if we couldn't remove a cgroup after killing + evertyhing in it then it's fine + - cryptsetup: automatically order crypt partitions before + cryptsetup.target + - man: trivial BindTo description fix + - manager: make list of default controllers configurable + - build: expose libcryptsetup dependency in build string + - pam: document controllers= switch + - cgroup: by default, duplicate service cgroup in the cpu hierarchy + - pam: duplicate cgroup tree in the cpu hierarchy by default, + optionally more +- enable native crypto handling instead of boot.crypto +- revert too new libnotify code/requirement +- revert fsck -l option requirement + ------------------------------------------------------------------- Wed Nov 17 01:32:04 CET 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 219781c4..1ab9f924 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 12 +Version: 13 Release: 1 License: GPLv2+ Group: System/Base @@ -102,17 +102,17 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target -rm -f $RPM_BUILD_ROOT/lib/systemd/system-generators/* mkdir -p $RPM_BUILD_ROOT/etc/modules-load.d # alias for /etc/init.d/* ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup.service ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service +ln -s systemd-sysctl.service $RPM_BUILD_ROOT/lib/systemd/system/sysctl.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service -#ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service -#ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service %post /bin/systemctl daemon-reexec >/dev/null 2>&1 || : From 84bec253438415260ae5a54f864b0e34efabb51ab4feccac4692a80a325d9f66 Mon Sep 17 00:00:00 2001 From: Berthold Gunreben Date: Tue, 23 Nov 2010 09:35:47 +0000 Subject: [PATCH 018/221] Autobuild autoformatter for 53740 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=18 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 1ab9f924..f5d3aaab 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 12) +# spec file for package systemd (Version 13) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # From 6820b00d0d0cd37c1d43e585c27eedf8b6ecd6ed33328158638736d4a575a0ad Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Tue, 30 Nov 2010 16:15:02 +0000 Subject: [PATCH 019/221] Accepting request 53948 from Base:System Accepted submit request 53948 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/53948 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=19 --- systemd-13.tar.bz2 | 3 --- systemd-15.tar.bz2 | 3 +++ systemd.changes | 20 ++++++++++++++++++++ systemd.spec | 2 +- 4 files changed, 24 insertions(+), 4 deletions(-) delete mode 100644 systemd-13.tar.bz2 create mode 100644 systemd-15.tar.bz2 diff --git a/systemd-13.tar.bz2 b/systemd-13.tar.bz2 deleted file mode 100644 index b51d03a2..00000000 --- a/systemd-13.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:34474765aa0556dfbe1e30dc1fd148a6daddda2a20e47e3283ad88a01ec4db29 -size 762878 diff --git a/systemd-15.tar.bz2 b/systemd-15.tar.bz2 new file mode 100644 index 00000000..a064c9b9 --- /dev/null +++ b/systemd-15.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4dd001f110a2d05b47ef3dfa65e6689de2b058d2dd5c4c41647b26cf9b95d64 +size 763497 diff --git a/systemd.changes b/systemd.changes index 50d69941..3d0eccaa 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Thu Nov 25 06:45:41 CET 2010 - kay.sievers@novell.com + +- version 15 + - dbus: use the right data slot allocator + - manager: bump up max number of units to 128K + - build-sys: allow cross-compilation +- revert too new libnotify code/requirement +- revert fsck -l option requirement + +------------------------------------------------------------------- +Tue Nov 23 11:49:43 CET 2010 - kay.sievers@novell.com + +- new snapshot + - units: simplify shutdown scripts + - logger: fix error handling + - swap: order file-based swap devices after remount-rootfs +- revert too new libnotify code/requirement +- revert fsck -l option requirement + ------------------------------------------------------------------- Mon Nov 22 10:10:59 CET 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index f5d3aaab..67b9922f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 13 +Version: 15 Release: 1 License: GPLv2+ Group: System/Base From 53cbfb6e624562e5c79fa3b840115976e0c6c1713b97f4fd629d6d8a0bb11e9e Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Tue, 30 Nov 2010 16:15:08 +0000 Subject: [PATCH 020/221] Autobuild autoformatter for 53948 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=20 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 67b9922f..54f91853 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,5 +1,5 @@ # -# spec file for package systemd (Version 13) +# spec file for package systemd (Version 15) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # From 293bf1b3f4829f167ce7d16f1d58984479f46111ed8e0b9bf621ef3cd660e65d Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Thu, 2 Dec 2010 15:26:03 +0000 Subject: [PATCH 021/221] Accepting request 54323 from Base:System Accepted submit request 54323 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/54323 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=21 --- systemd-15.tar.bz2 | 4 ++-- systemd-15.tar.gz | 3 +++ systemd.changes | 8 ++++++++ systemd.spec | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 systemd-15.tar.gz diff --git a/systemd-15.tar.bz2 b/systemd-15.tar.bz2 index a064c9b9..97173f82 100644 --- a/systemd-15.tar.bz2 +++ b/systemd-15.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4dd001f110a2d05b47ef3dfa65e6689de2b058d2dd5c4c41647b26cf9b95d64 -size 763497 +oid sha256:643108e95e22d11920e0c2f1d24ec4f90f77ee4a8dbf5b1690af9ad319715da4 +size 764673 diff --git a/systemd-15.tar.gz b/systemd-15.tar.gz new file mode 100644 index 00000000..ba1622b8 --- /dev/null +++ b/systemd-15.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e100e230779481a854577b385c2093ddb2d0aad570c087f94451ad1c5a2e553d +size 1064632 diff --git a/systemd.changes b/systemd.changes index 3d0eccaa..fb9c0afa 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Nov 26 19:17:46 CET 2010 - kay.sievers@novell.com + +- new snapshot + - gnome-ask-password-agent: also support libnotify < 0.7 for now + - udev: increase event buffer size +- require fsck -l + ------------------------------------------------------------------- Thu Nov 25 06:45:41 CET 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 54f91853..ceac7678 100644 --- a/systemd.spec +++ b/systemd.spec @@ -39,6 +39,7 @@ Requires: udev >= 164 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux +Requires: fsck-with-dev-lock Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc From 5b5b7692026715cf308c827ae35cbc6f11c1ab5fc7c621499a1cb43b172edf37 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Thu, 2 Dec 2010 15:26:13 +0000 Subject: [PATCH 022/221] Autobuild autoformatter for 54323 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=22 --- systemd-15.tar.gz | 3 --- systemd.spec | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 systemd-15.tar.gz diff --git a/systemd-15.tar.gz b/systemd-15.tar.gz deleted file mode 100644 index ba1622b8..00000000 --- a/systemd-15.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e100e230779481a854577b385c2093ddb2d0aad570c087f94451ad1c5a2e553d -size 1064632 diff --git a/systemd.spec b/systemd.spec index ceac7678..731d3dff 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 15 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From dce47ea954f8cd3c4dcc6d432dcb77bc9092031b1fce6e791d174a926a0bf755 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 10 Dec 2010 17:38:41 +0000 Subject: [PATCH 023/221] Accepting request 55456 from Base:System Accepted submit request 55456 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/55456 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=23 --- systemd-15.tar.bz2 | 4 ++-- systemd.changes | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/systemd-15.tar.bz2 b/systemd-15.tar.bz2 index 97173f82..3d5b9feb 100644 --- a/systemd-15.tar.bz2 +++ b/systemd-15.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:643108e95e22d11920e0c2f1d24ec4f90f77ee4a8dbf5b1690af9ad319715da4 -size 764673 +oid sha256:f16e55e8a39169d609a102129ef05344026b0d5938c954d66309a1e1d767e229 +size 765271 diff --git a/systemd.changes b/systemd.changes index fb9c0afa..bf5b5e83 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com + +- add LSB 'smtp' alias for mail-transport-agent.target + +------------------------------------------------------------------- +Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com + +- new snapshot + - path: fix watching the root directory + - update README + ------------------------------------------------------------------- Fri Nov 26 19:17:46 CET 2010 - kay.sievers@novell.com From 3b7f6ab180221b768e63f9733064b7c34d6926c0fcf42d72d696fc6184a62134 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 10 Dec 2010 17:38:46 +0000 Subject: [PATCH 024/221] Autobuild autoformatter for 55456 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=24 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 731d3dff..16a5a1d3 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 15 -Release: 2 +Release: 3 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 1fcc0f789f4c5a9507b09b0826d43ca8af8a82292e633256f70eb266c21a4eb3 Mon Sep 17 00:00:00 2001 From: Berthold Gunreben Date: Mon, 20 Dec 2010 15:03:19 +0000 Subject: [PATCH 025/221] Accepting request 56226 from Base:System Accepted submit request 56226 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/56226 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=25 --- ...splash-handling-for-password-dialogs.patch | 61 +++++++++++++++++++ systemd-15.tar.bz2 | 4 +- systemd.changes | 15 ++++- systemd.spec | 2 + 4 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 0001-Add-bootsplash-handling-for-password-dialogs.patch diff --git a/0001-Add-bootsplash-handling-for-password-dialogs.patch b/0001-Add-bootsplash-handling-for-password-dialogs.patch new file mode 100644 index 00000000..a3907589 --- /dev/null +++ b/0001-Add-bootsplash-handling-for-password-dialogs.patch @@ -0,0 +1,61 @@ +From 81eca00461968aac09f9e8535f4327282698b495 Mon Sep 17 00:00:00 2001 +From: Stefan Seyfried +Date: Thu, 16 Dec 2010 11:30:17 +0100 +Subject: [PATCH] Add bootsplash handling for password dialogs + +openSUSE uses bootsplash.org, so add a crude handling for setting the +splash screen to verbose when a password is asked... +--- + src/ask-password-api.c | 22 ++++++++++++++++++++++ + 1 files changed, 22 insertions(+), 0 deletions(-) + +diff --git a/src/ask-password-api.c b/src/ask-password-api.c +index 9f7023e..2023441 100644 +--- a/src/ask-password-api.c ++++ b/src/ask-password-api.c +@@ -47,6 +47,9 @@ int ask_password_tty( + int r, ttyfd = -1, notify = -1; + struct pollfd pollfd[2]; + bool reset_tty = false; ++ bool splash_silent = false; ++ FILE *procsplash = NULL; ++ char *line = NULL; + enum { + POLL_TTY, + POLL_INOTIFY +@@ -90,6 +93,19 @@ int ask_password_tty( + } + + reset_tty = true; ++ procsplash = fopen("/proc/splash", "r+"); ++ if (procsplash) { ++ getline(&line, &p, procsplash); ++ p = 0; /* reset, just to make sure */ ++ if (line && ++ (strstr(line, "on\n") == line + strlen(line) - 3) && ++ (strstr(line, "silent") != NULL)) { ++ splash_silent = true; ++ rewind(procsplash); ++ fprintf(procsplash, "verbose\n"); ++ fflush(procsplash); ++ } ++ } + } + + zero(pollfd); +@@ -201,6 +217,12 @@ finish: + close_nointr_nofail(ttyfd); + } + ++ if (splash_silent) { /* only set if procsplash != NULL */ ++ rewind(procsplash); ++ fprintf(procsplash, "silent\n"); ++ fclose(procsplash); ++ } ++ + return r; + } + +-- +1.7.3.1 + diff --git a/systemd-15.tar.bz2 b/systemd-15.tar.bz2 index 3d5b9feb..1830f317 100644 --- a/systemd-15.tar.bz2 +++ b/systemd-15.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f16e55e8a39169d609a102129ef05344026b0d5938c954d66309a1e1d767e229 -size 765271 +oid sha256:414f2c94256aebaaceddef8dba1410026f4dd29d3e056be544dd44bcad01d1e8 +size 765361 diff --git a/systemd.changes b/systemd.changes index bf5b5e83..9199183f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,7 +1,20 @@ +------------------------------------------------------------------- +Thu Dec 16 16:52:04 CET 2010 - kay.sievers@novell.com + +- new snapshot + - ifdef suse-only sysv script lookup code + +------------------------------------------------------------------- +Thu Dec 16 12:49:00 UTC 2010 - seife@opensuse.org + +- add bootsplash handling patch to be able to enter e.g. + crypto passphrases (bnc#659885) + ------------------------------------------------------------------- Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com -- add LSB 'smtp' alias for mail-transport-agent.target +- new snapshot + - add LSB 'smtp' alias for mail-transport-agent.target ------------------------------------------------------------------- Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 16a5a1d3..5c47c886 100644 --- a/systemd.spec +++ b/systemd.spec @@ -43,6 +43,7 @@ Requires: fsck-with-dev-lock Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc +Patch42: 0001-Add-bootsplash-handling-for-password-dialogs.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -77,6 +78,7 @@ Drop-in replacement of System V init tools. %prep %setup -q +%patch42 -p1 %build # prevent pre-generated and distributed files from re-building From 0ed9e53fa2ee91ce46b251052a149f6d0bb7502f3952369fc1cbeb47a3928455 Mon Sep 17 00:00:00 2001 From: Berthold Gunreben Date: Mon, 20 Dec 2010 15:03:26 +0000 Subject: [PATCH 026/221] Autobuild autoformatter for 56226 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=26 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 5c47c886..8e3e919e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 15 -Release: 3 +Release: 4 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From fa2f46378ea367a480547274844d8dd4cab5dc244c475602a67a1c8909c09fe0 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 14 Jan 2011 02:32:23 +0000 Subject: [PATCH 027/221] Accepting request 57755 from Base:System Accepted submit request 57755 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/57755 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=27 --- systemd-15.tar.bz2 | 3 --- systemd-16.tar.bz2 | 3 +++ systemd.changes | 46 ++++++++++++++++++++++++++++++++++++++++++++++ systemd.spec | 4 ++-- 4 files changed, 51 insertions(+), 5 deletions(-) delete mode 100644 systemd-15.tar.bz2 create mode 100644 systemd-16.tar.bz2 diff --git a/systemd-15.tar.bz2 b/systemd-15.tar.bz2 deleted file mode 100644 index 1830f317..00000000 --- a/systemd-15.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:414f2c94256aebaaceddef8dba1410026f4dd29d3e056be544dd44bcad01d1e8 -size 765361 diff --git a/systemd-16.tar.bz2 b/systemd-16.tar.bz2 new file mode 100644 index 00000000..92d480c1 --- /dev/null +++ b/systemd-16.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e35f25cf6815b7f010718b51abd491fd83ed0ce7d3c7210702e6eb5c0d96873b +size 768175 diff --git a/systemd.changes b/systemd.changes index 9199183f..f886eb74 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,49 @@ +------------------------------------------------------------------- +Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com + +- version 16 + - device: don't warn if we cannot bump the udev socket buffer + - logger: when passing on PID info, fall back to our own if + originating process is already gone + - service: don't hit an assert if information in LSB headers is + incorrectly formatted + - execute,util: fix two small memory leaks + - getty: unset locale before execution + - execute: drop empty assignments from env blocks on execution + but keep them around otherwise to make them visible + - umount: don't try to detach the dm device the root dir is on, + to minimize warning messages + - locale: fix variable names + - fragment: allow prefixing of the EnvironmentFile= + path with - to ignore errors + - util: don't pass invalid fd to fdopendir() on error to avoid + corruption of errno + - tmpfiles: nicer message when two or more conflicting lines + are configured for the same file + - fragment: properly handle quotes in assignments in + EnvironmentFile= files + - sysctl: don't warn if sysctls are gone + - readahead: ignore if files are removed during collection or + before replay + - serial: use TERM=vt100 instead of TERM=vt100-nav + - cryptsetup: call mkswap on dm device, not on source device + - mount-setup: mount /dev/pts with mode=620,gid=5 by default + and make GID overridable via configure switch + - systemctl: implement auto-pager a la git + - shutdown: drop redundant sync() invocation + - util: invoke sync() implicitly on freeze() + - tmpfiles: do no follow symlinks when cleaning up dirs + +------------------------------------------------------------------- +Mon Dec 27 22:15:41 CET 2010 - kay.sievers@novell.com + +- new snapshot + - pam: do not sort user sessions into their own cgroups in + the 'cpu' hierarchy + - mount-setup: drop noexec flag from default mount options + for /dev/shm + - systemd.pc: change 'session' to 'user' + ------------------------------------------------------------------- Thu Dec 16 16:52:04 CET 2010 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 8e3e919e..c72aa8b1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,8 +20,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 15 -Release: 4 +Version: 16 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 6a86e44c3e53c429e848e63674da90b8e5ab7b0c5ff32dd75a8a4f15b90bef05 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Fri, 14 Jan 2011 02:32:33 +0000 Subject: [PATCH 028/221] Autobuild autoformatter for 57755 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=28 --- systemd.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systemd.spec b/systemd.spec index c72aa8b1..925aaf5f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # -# spec file for package systemd (Version 15) +# spec file for package systemd # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed From dd796311b894e355bbeeee7c26e33cd7bdd3bbe3f8db268dd45d1be42c5a5b00 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Mon, 24 Jan 2011 21:26:17 +0000 Subject: [PATCH 029/221] Accepting request 59002 from Base:System Accepted submit request 59002 from user a_jaeger OBS-URL: https://build.opensuse.org/request/show/59002 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=29 --- systemd-16.tar.bz2 | 3 --- systemd-17.tar.bz2 | 3 +++ systemd.changes | 50 ++++++++++++++++++++++++++++++++++++++++++++++ systemd.spec | 9 +++------ 4 files changed, 56 insertions(+), 9 deletions(-) delete mode 100644 systemd-16.tar.bz2 create mode 100644 systemd-17.tar.bz2 diff --git a/systemd-16.tar.bz2 b/systemd-16.tar.bz2 deleted file mode 100644 index 92d480c1..00000000 --- a/systemd-16.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e35f25cf6815b7f010718b51abd491fd83ed0ce7d3c7210702e6eb5c0d96873b -size 768175 diff --git a/systemd-17.tar.bz2 b/systemd-17.tar.bz2 new file mode 100644 index 00000000..44f8b173 --- /dev/null +++ b/systemd-17.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce6db8b30923c2508bd8bcfe957399939b23f958248a6460a6207396f0023fdf +size 755192 diff --git a/systemd.changes b/systemd.changes index f886eb74..c5c7af1d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Sat Jan 22 14:42:34 CET 2011 - kay.sievers@novell.com + +- new snapshot + - clang: fix some issues found with clang-analyzer + - gcc: make gcc shut up + +------------------------------------------------------------------- +Sat Jan 22 14:40:24 CET 2011 - kay.sievers@novell.com + +- version 17 + - vala 0.10 seem to work fine + - cryptsetup: fix ordering loop when dealing with encrypted + swap devices + - main: don't warn if /etc/mtab is a symlink to /proc/mounts + - socket: don't crash if the .service unit for a .socket unit + is not found + - mount: ignore if an fsck is requested for a bind mount, + so that we don't wait for the bind 'device' to show up + - automount: fix segfault when shutting down + - man: give an example for vconsole.conf + - dbus: don't try to connect to the system bus before it is + actually up + - service: make chain of main commands and control commands + independent of each other, so that both can be executed + simultaneously and independently + - service: don't allow reload operations for oneshot services + - vala: convert from dbus-glib to gdbus + - systemctl: highlight failed processes in systemctl status + - systemctl: show process type along process exit codes + - service: when reloading a service fails don't fail the entire + service but just the reload job + +------------------------------------------------------------------- +Wed Jan 19 12:55:40 CET 2011 - kay.sievers@novell.com + +- new snapshot + - shutdown: use correct kexec options + - serial-getty: do not invoke /sbin/securetty; recent + pam_securetty looks for console= in /proc/cmdline + - systemctl: before spawning pager cache number of columns + - pam: optionally keep processes of root user around + - service: if a reload operation fails, don't shut down + the service + - execute: make sending of SIGKILL on shutdown optional + - mount: do not translate uuids to lowercase + - man: document missing KillSignal= and swap options +- require recent util-linux +- drop mtab symlink creation which is done in util-linux + ------------------------------------------------------------------- Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 925aaf5f..beeab891 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 16 +Version: 17 Release: 1 License: GPLv2+ Group: System/Base @@ -33,13 +33,12 @@ BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config -BuildRequires: dbus-1-glib-devel gtk2-devel libnotify-devel +BuildRequires: gtk2-devel libnotify-devel BuildRequires: libselinux-devel libsepol-devel Requires: udev >= 164 Requires: dbus-1 >= 1.4.0 Requires: kbd -Requires: util-linux -Requires: fsck-with-dev-lock +Requires: util-linux >= 2.18.91 Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc @@ -136,8 +135,6 @@ if [ "$1" -eq 1 ]; then systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : fi -# regular mtab is not written/cleaned-up/supported -ln -sf /proc/self/mounts /etc/mtab || : %preun if [ $1 -eq 0 ]; then From 55d4a015ef31e674c95b44354fd66c90084fe7136539f1d127b1cd484698b6ec Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Fri, 11 Feb 2011 00:56:22 +0000 Subject: [PATCH 030/221] Accepting request 60463 from Base:System Accepted submit request 60463 from user kay_sievers OBS-URL: https://build.opensuse.org/request/show/60463 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=30 --- systemd-17.tar.bz2 | 4 ++-- systemd.changes | 35 ++++++++++++++++++++++++++++++++--- systemd.spec | 31 +++++++++++++++++++++++++++---- 3 files changed, 61 insertions(+), 9 deletions(-) diff --git a/systemd-17.tar.bz2 b/systemd-17.tar.bz2 index 44f8b173..744f2f5a 100644 --- a/systemd-17.tar.bz2 +++ b/systemd-17.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce6db8b30923c2508bd8bcfe957399939b23f958248a6460a6207396f0023fdf -size 755192 +oid sha256:47448a4380dcff4bfae57c306f1fac6a3d989b233efd6aff013df635a2c7dc06 +size 756049 diff --git a/systemd.changes b/systemd.changes index c5c7af1d..45df97cb 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Tue Feb 8 19:10:06 CET 2011 - kay.sievers@novell.com + +- new snapshot + - plymouth: move plymouth out of TARGET_FEDORA + - build-sys: fix AC_COMPILE_IFELSE tests + - build-sys: ensure selinux configure check follows logic of + other optional features + - build-sys: autodetect and use pkg-config for libselinux + - dbus: use ControlGroup as property name to match config option + - pam: optionally reset cgroup memberships for login sessions + - load-fragment: properly parse Nice= value + - automount: use unit_pending_inactive() where appropriate + +------------------------------------------------------------------- +Tue Feb 8 17:40:29 CET 2011 - jeffm@suse.de + +- Removed unecessary workaround for plymouth startup. + +------------------------------------------------------------------- +Fri Feb 4 21:24:11 CET 2011 - jeffm@suse.de + +- Split plymouth support into systemd-plymouth package. + ------------------------------------------------------------------- Sat Jan 22 14:42:34 CET 2011 - kay.sievers@novell.com @@ -49,7 +73,7 @@ Wed Jan 19 12:55:40 CET 2011 - kay.sievers@novell.com - drop mtab symlink creation which is done in util-linux ------------------------------------------------------------------- -Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com +Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com - version 16 - device: don't warn if we cannot bump the udev socket buffer @@ -84,6 +108,11 @@ Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com - util: invoke sync() implicitly on freeze() - tmpfiles: do no follow symlinks when cleaning up dirs +------------------------------------------------------------------- +Tue Dec 28 22:08:28 CET 2010 - jeffm@suse.de + +- Add support for building plymouth support with openSUSE + ------------------------------------------------------------------- Mon Dec 27 22:15:41 CET 2010 - kay.sievers@novell.com @@ -107,13 +136,13 @@ Thu Dec 16 12:49:00 UTC 2010 - seife@opensuse.org crypto passphrases (bnc#659885) ------------------------------------------------------------------- -Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com +Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com - new snapshot - add LSB 'smtp' alias for mail-transport-agent.target ------------------------------------------------------------------- -Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com +Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com - new snapshot - path: fix watching the root directory diff --git a/systemd.spec b/systemd.spec index beeab891..b1830323 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 17 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -42,7 +42,7 @@ Requires: util-linux >= 2.18.91 Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc -Patch42: 0001-Add-bootsplash-handling-for-password-dialogs.patch +Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -69,17 +69,28 @@ Group: System/Base Summary: System V init tools Requires: %{name} = %{version}-%{release} Provides: sbin_init -Conflicts: sysvinit +Obsoletes: sysvinit Conflicts: upstart %description sysvinit Drop-in replacement of System V init tools. +%package plymouth +License: GPLv2+ +Group: System/Base +Summary: Plymouth support for systemd +Requires: %{name} = %{version}-%{release} +Requires: plymouth + +%description plymouth +Plymouth integration for systemd + %prep %setup -q -%patch42 -p1 +%patch1 -p1 %build +autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' \; touch src/systemadm.c @@ -116,6 +127,8 @@ ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service +(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth + %post /bin/systemctl daemon-reexec >/dev/null 2>&1 || : @@ -177,6 +190,10 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/systemd %{_datadir}/pkgconfig/systemd.pc +# Packaged in plymouth subpackage +%exclude /lib/systemd/system/plymouth-*.service +%exclude /lib/systemd/system/*.wants/plymouth-*.service +%exclude /lib/systemd/system/systemd-ask-password-plymouth.* # Packaged in gtk subpackage %exclude %{_mandir}/man1/systemadm.1* # Packaged in sysvinit subpackage @@ -207,6 +224,12 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/systemd-gnome-ask-password-agent %{_mandir}/man1/systemadm.1* +%files plymouth +%defattr(-,root,root,-) +/lib/systemd/system/plymouth-*.service +/lib/systemd/system/*.wants/plymouth-*.service +/lib/systemd/system/systemd-ask-password-plymouth.* + %files sysvinit %defattr(-,root,root,-) /sbin/init From 1f54e07f77a474bf7667df5b416c12873d44fb8fab01af32d6a61086e1e9f6d4 Mon Sep 17 00:00:00 2001 From: Ruediger Oertel Date: Fri, 18 Feb 2011 11:31:56 +0000 Subject: [PATCH 031/221] Accepting request 61742 from Base:System Accepted submit request 61742 from user coolo OBS-URL: https://build.opensuse.org/request/show/61742 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=32 --- ...-for-sending-HUP-to-all-procs-on-tty.patch | 12 ++++ systemd-17.tar.bz2 | 3 - systemd-18.tar.bz2 | 3 + systemd.changes | 67 +++++++++++++++++++ systemd.spec | 9 ++- 5 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch delete mode 100644 systemd-17.tar.bz2 create mode 100644 systemd-18.tar.bz2 diff --git a/0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch b/0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch new file mode 100644 index 00000000..1656cb8f --- /dev/null +++ b/0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch @@ -0,0 +1,12 @@ +--- units/getty@.service.m4 ++++ units/getty@.service.m4 2011-02-17 14:02:02.883926195 +0000 +@@ -27,6 +27,9 @@ Before=getty.target + [Service] + Environment=TERM=linux + ExecStart=-/sbin/agetty %I 38400 ++m4_ifdef(`TARGET_SUSE', ++ExecStop=/sbin/vhangup %I ++)m4_dnl + Restart=always + RestartSec=0 + UtmpIdentifier=%I diff --git a/systemd-17.tar.bz2 b/systemd-17.tar.bz2 deleted file mode 100644 index 744f2f5a..00000000 --- a/systemd-17.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47448a4380dcff4bfae57c306f1fac6a3d989b233efd6aff013df635a2c7dc06 -size 756049 diff --git a/systemd-18.tar.bz2 b/systemd-18.tar.bz2 new file mode 100644 index 00000000..9c1e32c0 --- /dev/null +++ b/systemd-18.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5d9921abc036667c3cd0ccaa1d8d64ba5135a7133b93dbdea7d7cb4b76ce242 +size 765009 diff --git a/systemd.changes b/systemd.changes index 45df97cb..a71d3d18 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,70 @@ +------------------------------------------------------------------- +Fri Feb 18 09:33:55 UTC 2011 - coolo@novell.com + +- revert back to conflicts: sysvinit + +------------------------------------------------------------------- +Thu Feb 17 15:04:44 CET 2011 - werner@suse.de + +- Add temporary workaround for bnc#652633, that is do a vhangup + to all processes on a tty line used for a getty + +------------------------------------------------------------------- +Wed Feb 16 21:39:20 CET 2011 - kay.sievers@novell.com + +- version 18 + - systemctl: introduce --ignore-dependencies + - systemctl: introduce --failed to show only failed services + - systemctl: introduce --failed to show only failed services + - rescue: make 'systemctl default' fail if there is already + something running when the shell exited + - util: seperate welcome line from other output by empty lines + - manager: don't consider transaction jobs conflicting with + queued jobs redundant + - udev: ignore block devices which no known contents, to avoid + trying of mounts/swapons when devices aren't set up full yet + - swap: handle "nofail" from fstab + - mount,swap: properly add dependencies to logger if needed + - service: change default std output to inherit + - exec: introduce global defaults for the standard output + of services + - udev: use SYSTEMD_READY to mask uninitialized DM devices + - fsck: output to /dev/console by default in addition to syslog + - execute: optionally forward program output to /dev/console in + addition to syslog/kmsg + - socket: refuse socket activation for SysV services + - fsck: do not fail boot if fsck returns with an error code that + hasn't 2 or 6 set + - shutdown: execute all binaries in /lib/systemd/system-shutdown + as last step before invoking reboot() + - job: make status message printing more verbose + - cryptsetup: fix unit file description + - tmpfiles: never delete AF_UNIX sockets that are alive + - getty: don't parse console= anymore, use + /sys/class/tty/console/active instead + - properly resolve /dev/console if more than once console= + argument was passed on the kernel command line + - getty: do not auto-spawn getty's on VC ttys if console=ttyN + - fsck: skip root fsck if dracut already did it + - util: when determining the right TERM for /dev/console + consult /sys/class/tty/console/active + - pam: introduce whitelist and blacklist user list feature + - systemctl: minor optimizations + - systemctl: don't unnecessarily close stdin/stdout/stderr for + tty agent so that locking by tty works + - readahead: disable readahead in virtual machines + - tmpfiles: move binary to /bin to make it publicly available + - tmpfiles: take names of tmpfiles configuration files on the + command line + - tmpfiles: log to stderr if possible + - tmpfiles: support globs + - units: introduce and hook up sound.target + - dbus: allow all clients access to org.freedesktop.DBus.Peer + - consider udev devices with SYSTEMD_READY=0 as unplugged + - systemctl: don't start agent for --user + - systemctl: make sure the tty agent does not retain a copy + of stdio + ------------------------------------------------------------------- Tue Feb 8 19:10:06 CET 2011 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index b1830323..cf0c8a07 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,8 +20,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 17 -Release: 2 +Version: 18 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -43,6 +43,7 @@ Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch +Patch2: 0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -69,7 +70,7 @@ Group: System/Base Summary: System V init tools Requires: %{name} = %{version}-%{release} Provides: sbin_init -Obsoletes: sysvinit +Conflicts: sysvinit Conflicts: upstart %description sysvinit @@ -88,6 +89,7 @@ Plymouth integration for systemd %prep %setup -q %patch1 -p1 +%patch2 -p0 %build autoreconf -fiv @@ -170,6 +172,7 @@ rm -rf $RPM_BUILD_ROOT /bin/systemd-notify /bin/systemd-ask-password /bin/systemd-tty-ask-password-agent +/bin/systemd-tmpfiles %{_bindir}/systemd-cgls /lib/systemd/systemd-* /%{_lib}/security/pam_systemd.so From c798fced5ffe08d81a1c14eba3e8b96c4a1d06a9db2a6dfe5941913b966af5fa Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 9 Mar 2011 16:37:34 +0000 Subject: [PATCH 032/221] Accepting request 63751 from Base:System Accepted submit request 63751 from user coolo OBS-URL: https://build.opensuse.org/request/show/63751 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=33 --- ...-for-sending-HUP-to-all-procs-on-tty.patch | 12 -- systemd-18.tar.bz2 | 3 - systemd-20.tar.bz2 | 3 + systemd.changes | 136 ++++++++++++++++++ systemd.spec | 6 +- 5 files changed, 142 insertions(+), 18 deletions(-) delete mode 100644 0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch delete mode 100644 systemd-18.tar.bz2 create mode 100644 systemd-20.tar.bz2 diff --git a/0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch b/0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch deleted file mode 100644 index 1656cb8f..00000000 --- a/0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- units/getty@.service.m4 -+++ units/getty@.service.m4 2011-02-17 14:02:02.883926195 +0000 -@@ -27,6 +27,9 @@ Before=getty.target - [Service] - Environment=TERM=linux - ExecStart=-/sbin/agetty %I 38400 -+m4_ifdef(`TARGET_SUSE', -+ExecStop=/sbin/vhangup %I -+)m4_dnl - Restart=always - RestartSec=0 - UtmpIdentifier=%I diff --git a/systemd-18.tar.bz2 b/systemd-18.tar.bz2 deleted file mode 100644 index 9c1e32c0..00000000 --- a/systemd-18.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c5d9921abc036667c3cd0ccaa1d8d64ba5135a7133b93dbdea7d7cb4b76ce242 -size 765009 diff --git a/systemd-20.tar.bz2 b/systemd-20.tar.bz2 new file mode 100644 index 00000000..cbab12db --- /dev/null +++ b/systemd-20.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9267127955ed9afbb41e1568c0db1e7028f6450993876a42e91a621fa04e5b5d +size 754679 diff --git a/systemd.changes b/systemd.changes index a71d3d18..e74823a1 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,139 @@ +------------------------------------------------------------------- +Tue Mar 8 19:06:45 UTC 2011 - kasievers@novell.com + +- version 20 + - service: prefix description with LSB only if script has LSB header, + use 'SysV:' otherwise + - unit: don't accidently create ordering links to targets when + default deps are off for either target and unit + - mount: support less cumbersome x-systemd-xxx mount options + - unit: distuingish mandatory from triggering conditions + - dbus: return DBUS_ERROR_UNKNOWN_OBJECT when an object + is unknown + - systemctl: when forwarding is-enabled to chkconfig + hardcode runlevel 3 + - job: introduce new job result code 'skipped' to use when pre + conditions of job did not apply + - job: convert job type as early as we can, to simplify things + - Keep emacs configuration in one configuration file. + - syslog: make sure the kmsg bridge is always pulled in and + never terminated automatically + - mount: make /media a tmpfs + +------------------------------------------------------------------- +Mon Mar 7 17:24:46 CET 2011 - kay.sievers@novell.com + +- new snapshot + - add org.freedesktop.DBus.Properies.Set method + - main: introduce /etc/machine-id + - systemctl: fix exit code when directing is-enabled + to chkconfig + - dbus: add 'Tainted' property to Manager object + - dbus: expose distribution name and features on manager + object as properties + - man: document changed EnvironmentFile= behaviour + - main: add link to wiki page with longer explanation of the + /usr madness + - execute: load environment files at time of execution, not + when we load the service configuration + - path: after installing inotify watches, recheck file again + to fix race + - path: don't use IN_ATTRIB on parent dirs when watching a + file, since those cannot be removed without emptying the dir + first anyway and we need IN_ATTRIB only to detect the link + count dropping to 0 + - kill: always send SIGCONT after SIGTERM + - readahead: disable collector automatically on read-only media + - sysctl: use scandir() instead of nftw() to guarantee + systematic ordering + - support DT_UNKNOWN where necessary for compat with reiserfs + - systemctl: always null-terminate the password +- call systemd-machine-id-setup at installation + +------------------------------------------------------------------- +Tue Mar 1 12:28:01 CET 2011 - kay.sievers@novell.com + +- version 19 + - udev: don't ignore non-encrypted block devices with no + superblock + - udev: expose ttyUSB devices too + - udev: mark hvc devices for exposure in systemd + - cryptsetup: add a terse help + - agent: don't print warnings if a password was removed or + timed out + - systemctl: shutdown agent explicitly so that it can reset + the tty properly + - never clean up a service that still has a process in it + - label: udev might be making changes in /dev while we + iterate through it + - systemctl: properly handle job results + - job: also trigger on-failure dependencies when jobs faile + due to dependencies, timeout + - job: when cancelling jobs, make sure to propagate this + properly to depending jobs + - job: start job timeout on enqueuing not when we start to + process a job + - unit: increase default timeout to 3min + - logger: leave the logger longer around and allow it do + handle more connections + - dbus: pass along information why a job failed when it + failed (dbus api change!) + - general: unify error code we generate on timeout + - units: synchronize gettys to plymouth even if plymouth is + killed by gdm + - job: start job timer when we begin running the job, not + already when we add it to the queue of jobs + - cryptsetup: try to show the mount point for a crypto disk + if we can + - rescue: terminate plymouth entirely when going into + rescue mode + - ask-password: fix handling of timeouts when waiting + for password + - ask-password: supported plymouth cached passwords + - main: print warning if /usr is on a seperate partition + - ensure we start not a single getty before plymouth is + gone because we never know which ttys plymouth still controls + - unit: introduce ConditionVirtualization= + +------------------------------------------------------------------- +Mon Feb 21 19:30:30 CET 2011 - kay.sievers@novell.com + +- new snapshot + - dbus: don't rely that timer/path units have an initialized + unit field (bnc#671561) + +------------------------------------------------------------------- +Mon Feb 21 13:58:51 CET 2011 - kay.sievers@novell.com + +- new snapshot + - order network mounts after network.target (bnc#672855) + +------------------------------------------------------------------- +Mon Feb 21 04:19:15 CET 2011 - kay.sievers@novell.com + +- new snapshot + - kmsg-syslogd: increase terminate timeout to 5min to generte + less debug spew + - shutdown(8) - call kexec if kexec kernel is loaded (bnc#671673) + - unit: don't timeout fsck + - man: fixed typo in SyslogIdentifier= + - tmpfiles: never clean up block devices + - main: refuse --test as root + +------------------------------------------------------------------- +Fri Feb 18 13:52:22 CET 2011 - kay.sievers@novell.com + +- new snapshot + - units: order fsck@.service before basic.target + instead of local-fs.target to relax things a little + - readahead: remove misleading error messages + - man: don't do more reloads than necessary in spec files + - util: retry opening a TTY on EIO + - util: beef up logic to find ctty name + - tmpfiles: kill double slashes in unix socket names +- drop vhangup patch, it is fixed in login(3) by forwarding the + SIGHUP to the child process + ------------------------------------------------------------------- Fri Feb 18 09:33:55 UTC 2011 - coolo@novell.com diff --git a/systemd.spec b/systemd.spec index cf0c8a07..5a6abe08 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 18 +Version: 20 Release: 1 License: GPLv2+ Group: System/Base @@ -43,7 +43,6 @@ Conflicts: mkinitrd < 2.6.0-5 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch -Patch2: 0002-Add-vhangup-for-sending-HUP-to-all-procs-on-tty.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -89,7 +88,6 @@ Plymouth integration for systemd %prep %setup -q %patch1 -p1 -%patch2 -p0 %build autoreconf -fiv @@ -132,6 +130,7 @@ ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service (cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth %post +/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : # Create default config in /etc at first install. @@ -173,6 +172,7 @@ rm -rf $RPM_BUILD_ROOT /bin/systemd-ask-password /bin/systemd-tty-ask-password-agent /bin/systemd-tmpfiles +/bin/systemd-machine-id-setup %{_bindir}/systemd-cgls /lib/systemd/systemd-* /%{_lib}/security/pam_systemd.so From 8665e3aaa90bc486ab5671417a51edd5a077f5e19b8ce74f8583bd560b3b35b8 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 5 May 2011 12:11:45 +0000 Subject: [PATCH 033/221] Accepting request 69643 from Base:System - remove policy filter OBS-URL: https://build.opensuse.org/request/show/69643 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=34 --- ...splash-handling-for-password-dialogs.patch | 18 +- systemd-20.tar.bz2 | 3 - systemd-26.tar.bz2 | 3 + systemd.changes | 393 +++++++++++++++++- systemd.spec | 85 ++-- 5 files changed, 459 insertions(+), 43 deletions(-) delete mode 100644 systemd-20.tar.bz2 create mode 100644 systemd-26.tar.bz2 diff --git a/0001-Add-bootsplash-handling-for-password-dialogs.patch b/0001-Add-bootsplash-handling-for-password-dialogs.patch index a3907589..e4bdce2b 100644 --- a/0001-Add-bootsplash-handling-for-password-dialogs.patch +++ b/0001-Add-bootsplash-handling-for-password-dialogs.patch @@ -6,24 +6,21 @@ Subject: [PATCH] Add bootsplash handling for password dialogs openSUSE uses bootsplash.org, so add a crude handling for setting the splash screen to verbose when a password is asked... --- - src/ask-password-api.c | 22 ++++++++++++++++++++++ - 1 files changed, 22 insertions(+), 0 deletions(-) - diff --git a/src/ask-password-api.c b/src/ask-password-api.c -index 9f7023e..2023441 100644 +index da967ab..b89bcea 100644 --- a/src/ask-password-api.c +++ b/src/ask-password-api.c -@@ -47,6 +47,9 @@ int ask_password_tty( - int r, ttyfd = -1, notify = -1; - struct pollfd pollfd[2]; +@@ -62,6 +62,9 @@ int ask_password_tty( bool reset_tty = false; + bool silent_mode = false; + bool dirty = false; + bool splash_silent = false; + FILE *procsplash = NULL; + char *line = NULL; enum { POLL_TTY, POLL_INOTIFY -@@ -90,6 +93,19 @@ int ask_password_tty( +@@ -105,6 +108,19 @@ int ask_password_tty( } reset_tty = true; @@ -43,7 +40,7 @@ index 9f7023e..2023441 100644 } zero(pollfd); -@@ -201,6 +217,12 @@ finish: +@@ -239,6 +255,12 @@ finish: close_nointr_nofail(ttyfd); } @@ -56,6 +53,3 @@ index 9f7023e..2023441 100644 return r; } --- -1.7.3.1 - diff --git a/systemd-20.tar.bz2 b/systemd-20.tar.bz2 deleted file mode 100644 index cbab12db..00000000 --- a/systemd-20.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9267127955ed9afbb41e1568c0db1e7028f6450993876a42e91a621fa04e5b5d -size 754679 diff --git a/systemd-26.tar.bz2 b/systemd-26.tar.bz2 new file mode 100644 index 00000000..64ff1bc6 --- /dev/null +++ b/systemd-26.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25664ed77371f1c168267b1a3c2c7eb428981acc2a887b267a7deeff626a7c25 +size 816555 diff --git a/systemd.changes b/systemd.changes index e74823a1..4e858eaa 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,5 +1,396 @@ ------------------------------------------------------------------- -Tue Mar 8 19:06:45 UTC 2011 - kasievers@novell.com +Thu May 5 07:45:46 UTC 2011 - coolo@opensuse.org + +- remove policy filter + +------------------------------------------------------------------- +Thu May 5 08:59:46 CEST 2011 - meissner@suse.de + +- add missing buildrequires dbus-1-devel, vala, libxslt-devel +- touch vala files for rebuilding to unbreak Factory + +------------------------------------------------------------------- +Mon May 2 23:05:35 CEST 2011 - kay.sievers@novell.com + +- also delete plymouth files + +------------------------------------------------------------------- +Mon May 2 19:00:41 CEST 2011 - kay.sievers@novell.com + +- disable plymouth sub-package until plymouth gets into Factory + +------------------------------------------------------------------- +Sun May 1 22:51:28 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - binfmt, modules-load, sysctl, tmpfiles: add missing + ConditionDirectoryNotEmpty= + - binfmt, modules-load, sysctl, tmpfiles: read /usr/local/lib + and where appropriate /lib directories + +------------------------------------------------------------------- +Sat Apr 30 04:56:55 CEST 2011 - kay.sievers@novell.com + +- version 26 + - plymouth: introduce plymouth.enable=0 kernel command line + - util: don't AND cx with cx + - man: typo in sd_daemon reference + - util: conf_files_list() return list as parameter + - dbus: make daemon reexecution synchronous + +------------------------------------------------------------------- +Thu Apr 28 14:07:12 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - service: properly notice when services with a main process + that isn't a child of init die + - unit: fix assert when trying to load unit instances for + uninstanciable types + - def: lower default timeout to 90s + - manager: fix serialization counter + +------------------------------------------------------------------- +Wed Apr 27 04:19:05 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - dbus: don't hit assert when dumping properties + - cryptsetup: fix keyfile size option processing + - socket: improve warning message when we get POLLHUP + - mount: failure to mount cgroup hierarchies should not be fatal + - configure: add AC_SYS_LARGEFILE + +------------------------------------------------------------------- +Mon Apr 25 21:45:02 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - tmpfiles.d: switch to stacked config dirs in /lib, /etc, /run + - sysctl.d, binfmt.d, modules-load.d: switch to stacked config + dirs in /lib, /etc, /run + - manager: mkdir /run/systemd/system when starting up + - man: Spelling fixes + +------------------------------------------------------------------- +Thu Apr 21 04:39:57 CEST 2011 - kay.sievers@novell.com + +- version 25 + - mount: Allow creating mount units for /var/lib/nfs/rpc_pipefs + and /proc/fs/nfsd. + - socket: support ListeSpecial= sockets + - vconsole: don't set console font/keymap if settings are empty + - nspawn: don't fail when we receive SIGCHLD + - cgroup: don't accidentaly trim on reload + - units: set capability bounding set for syslog services + - socket: log more information about invalid poll events + - man: fix specification of default timeouts + - mount,crypto: rework meaning of noauto/nofail + - fsck: don't fsck against basic.target in order to properly + allow automount /home + - manager: when running in test mode, do not write generated + unit files to /run/systemd/generator + - mount: properly parse timeouts options in the middle of + the string + - hostnamed: drop all caps but CAP_SYS_ADMIN + - execute: when we run as PID 1 the kernel doesn't give us + CAP_SETPCAP by default. Get that temporarily when dropping + capabilities for good + - mount: make device timeout configurable + - cryptsetup: do not order crypto DM devices against the + cryptsetup service + - socket: reuse existing FIFOs + - socket: guarantee order in which sockets are passed to be + the one of the configuration file + - systemctl: always consider unit files with no + [Install] section but stored in /lib enabled + - job: also print status messages when we successfully started + a unit + - hostnamed: add reference to SMBIOS specs + - man: runlevel 5 is usually more comprehensive, so use it + instead of 3 to detect whether a sysv service is enabled + - polkit: follow the usual syntax for polkit actions + - hostnamed: introduce systemd-hostnamed + - units: order quotacheck after remount-rootfs + - hostname: split out hostname validation into util.c + - dbus: split out object management code into dbus-common, + and simplify it + - strv: properly override settings in env_append() + - strv: detect non-assignments in env blocks properly in + env_append() + - strv: handle empty lists in strv_copy() properly + - util: truncate newline inside of read_one_line_file() + - util: modernize get_parent_of_pid() a bit + - crypto: let the cryptsetup binary handles its own + configurable timeouts + - logger,initctl: use global exit timeout + - ask-password: use default timeout + - manager: drop all pending jobs when isolating + - manager: introduce IgnoreOnIsolate flag so that we can keep + systemd-logger around when isolating + - units: never pull in sysinit from utmp, so that we can + shutdown from emergency mode without pulling in sysinit + - manager: downgrade a few log messages + - units: require syslog.socket from the logger because we + simply fail if we don't have it + - logger: adjust socket description to match service + - units: set stdout of kmsg syslogd to /dev/null + - units: add --no-block when starting normal service after + shell exited + - ask-password: use kill(PID, 0) before querying a password + - ask-password: support passwords without timeouts + - ask-password: always send final NUL char + - ask-password: properly accept empty passwords from agent + - unit: skip default cgroup setup if we have no hierarchy + - units: isolate emergency.target instead of emergency.service + when we fail to mount all file systems + - mount: don't pull in stdio logger for root mount unit + - cgroup: be nice to Ingo Molnar + - pam: use /proc/self/sessionid only with CAP_AUDIT_CONTROL + - pam: use /proc/self/loginuid only with CAP_AUDIT_CONTROL + - socket: try creating a socket under our own identity if we + have no perms to consult the selinux database + - socket: fix check for SEQPACKET + - execute: don't fail if we cannot fix OOM in a container + - unit: fix dump output + - socket: be a bit more verbose when refusing to start a + socket unit + - socket: support netlink sockets + - local-fs: invoke emergency.service mounting at boot fails + - path: optionally, create watched directories in .path units + - tmpfiles: don't warn if two identical lines are configured + - man: add man page for ask-password + - dbus: expose monotonic timestamps on the bus + - manager: no need to use randomized generator dir when running + as system manager + - don't make up buffer sizes, use standard LINE_MAX instead + - unit: disallow configuration of more than one on_failure + dependencies if OnFailureIsolate= is on + - unit: pull in logger unit only when running in system mode + - manager: serialize/deserialize max job id and /usr taint flag + - manager: don't garbage collect jobs when isolating, to change + global state + - unit: introduce OnFailureIsolate= + - mount: relabel both before and after a mount, just in case + - cmdline: we actually want to parse the kernel cmdline in VMs, + just not in containers + - units: rename rtc-set.target to time-sync.target and pull it + in by hwclock-load.service + - job: fix deserialization of jobs: do not ignore ordering + - systemctl: properly parse JobNew signals + - service: fix units with more than one socket + - systemctl: make most operations NOPs in a chroot + - manager: don't show PID for incoming signals if it is 0 + - man: fix description of systemctl reload-or-try-restart + - mount: block creation of mount units for API file systems + - units: call the logger a bridge too + - build-sys: always place user units in /usr/lib/systemd + - pkgconfig: update .pc file accordingly + - lookup: always also look into /usr/lib for units + - exec: support unlimited resources + - selinux: relabel /run the same way as /dev after loading + the policy since they both come pre-filled and unlabelled + - manager: fd must be int, not char + - change remaining /var/run to /run + - units: move user units from /usr/share to /usr/lib since + they might be arch-dependent + - man: document /etc/sysctl.d/ + - binfmt: add binfmt tool to set up binfmt_misc at boot + - tmpfiles: create leading directories for d/D instructions + - condition: add ConditionSecurity + - load-fragment: unify config_parse_condition_{kernel, virt} + - condition: fix dumping of conditions + - initctl: /dev/initctl is a named pipe, not a socket + - kmsg-syslogd: pass facility value into kmsg + - move /var/lock to HAVE_SYSV_COMPAT + - tmpfiles: split off rules for legacy systems into legacy.conf + - general: replace a few uses of /var/run by /run + - tmpfiles: enforce new /var/lock semantics + - man: document ConditionPathIsDirectory= + - mount: also relabel pre-mounted API dirs + - log: don't strip facility when writing to kmsg + - build-sys: create a number of drop-in config dirs + - random: do not print warning if random seed doesn't exist + - plymouth: use PID file to detect whether ply is running + - build-sys: install systemd-analyze by default + - analyze: improve output + - analyze: add plotter + - unit: when deserializing do reconnect to dbus/syslog when + they show up + - analyze: beautify output a bit + - add systemd-analyze tool + - unit: don't override timestamps due to state changes when + deserializing + - plymouth: don't explicitly enable status message when + plymouth is up + - status: show status messages unconditionally if plymouth + is around + - taint: add missing cgroups taint flag + - locale: don't access misinitialized variable + - quota: do not pull in quota tools for mounts that do not + originate in neither /etc/fstab nor fragment files + - manager: fix taint check for /usr + - unit: never apply /etc/rcN.d/ priority to native services + - unit: fix parsing of condition-result + - unit: don't complain about failed units when deserializing + - exec: drop process group kill mode since it has little use + and confuses the user + - cgroup: explain when we cannot initialize the cgroup stuff + - systemctl: don't truncate description when using pager + - ask-password: also accept Backspace as first keypress as + silent mode switch + - unit: when deserializing jobs, don't pull in dependencies + - locale: fix LC_MESSAGES variable name + - plymouth: Remove the calls to plymouth message + - udev: systemd-tag all ttys + - tmpfiles fix /run/lock permissions + - ask-password: use TAB to disable asterisk password echo + - execute: socket isn't abstract anymore + - use /run instead of /dev/.run + - man: explain a couple of default dependencies + - mount: pull in quota services from local mountpoints with + usr/grpquota options + - service: pull in sysv facility targets from the sysv units, + not the other way round + - units: pull in syslog.target from syslog.socket + - units: don't ever pull in SysV targets from other SysV + targets + - units: document that some targets exists only for compat + with SysV + - man: document pidns containers + - units: deemphesize Names= settings, and explain why nobody + whould use them + - units: on mandriva/fedora create single.service alias via + symlink, not Names= + - units: get rid of runlevel Names=, the symlinks in + /lib/systemd/system are much more useful + - rework syslog detection so that we need no compile-time + option what the name of the syslog implementation is + - man: document .requires/ directories + - special: get rid of dbus.target + - exec: properly apply capability bounding set, add inverted + bounding sets + - dbus: add service D-Bus property "Sockets" + - dbus: consolidate service SysV conditionals + - unit: serialize condition test results + - def: centralize definition of default timeout in one place + - chkconfig: check against runlevel 5 instead of 3, since it is + a superset of the latter + - systemctl: accept condstop as alias for stop + - dbus: allow LoadUnit to unprivileged users + - umount: make sure skip_ro is always correctly initialized +- create /run (link it to /var/run) +- refresh splash password patch +- conflict with old mkinitrd version (we need /run) +- conflict with old udev (we need /run) + +------------------------------------------------------------------- +Wed Mar 16 18:38:04 CET 2011 - kay.sievers@novell.com + +- new snapshot + - man: fix systemctl try-restart description + - Add Frugalware display-manager service + - main: revert recognition of "b" argument + - main: interpret all argv[] arguments unconditionally when + run in a container + - loopback: downgrade an error to warning + - nspawn: bind mount /etc/localtime + - nspawn: make tty code more robust against closed/reopened + /dev/console + - util: make touched files non-writable by default + - nspawn: allocate a new pty instead of passing ours through + to avoid terminal settings chaos + - main: parse the whole arv[] as kernel command line + - main: check if we have a valid PID before getting the name + - ask-password: reset signal mask after we are done + - cgroup: don't recheck all the time whether the systemd + hierarchy is mounted, to make strace outputs nicer and save + a few stat()s + - man: document systemd-nspawn + - cgls: don't strip user processes and kernel threads from + default output + - umount: don't try to remount bind mounts ro during shutdown + - getty: move automatic serial getty logic into generator + - container: skip a few things when we are run in a container + such as accessing /proc/cmdline + - cgls: by default start with group of PID 1 + - pam: determine user cgroup tree from cgroup of PID 1 + - nspawn: move container into its own name=systemd cgroup + - manager: don't show kernel boot-up time for containers + - manager: show who killed us + - units: add console-shell.service which can be used insted of + the gettys to get a shell on /dev/console + +------------------------------------------------------------------- +Mon Mar 14 18:29:23 CET 2011 - kay.sievers@novell.com + +- new snapshot + - build-sys: move remaining tools from sbin/ to bin/ since they + might eventually be useful for user execution + - hostname: don't override the hostname with localhost if it + is already set and /etc/hostname unset + - audit: give up sending auditing messages when it failed due + to EPERM + - nspawn: don't require selinux on if it is compiled in + - main: remove AF_UNIX sockets before binding + - shutdown: print a nice message when terminating a container + - nspawn: mount /selinux if needed + - shutdown: just call exit() if we are in a container + - umount: assume that a non-existing /dev/loop device means it + is already detached + - socket: use 777 as default mode for sockets + - main: log to the console in a container + - main: don't parse /proc/cmdline in containers + - util: add detect_container() + - nspawn: reset environment and load login shell + - core: move abstract namespace sockets to /dev/.run + - nspawn: add simple chroot(1) like tool to execute commands + in a namespace container + - util: return exit status in wait_for_terminate_and_warn() + - util: properly identify pty devices by their major + +------------------------------------------------------------------- +Sat Mar 12 14:26:28 CET 2011 - kay.sievers@novell.com + +- new snapshot + - polkit: autogenerate polkit policy with correct paths + - systemctl: support remote and privileged systemctl access + via SSH and pkexec + - gnome-ask-password-agent: fix path to watch + +------------------------------------------------------------------- +Fri Mar 11 13:59:34 CET 2011 - kay.sievers@novell.com + +- fix broken sysctl.service linking + +------------------------------------------------------------------- +Fri Mar 11 01:39:41 CET 2011 - kay.sievers@novell.com + +- new snapshot + - units: move the last flag files to /dev/.run + - util: close all fds before freezing execution + - dbus: timeout connection setup + - main: properly handle -b boot option + - pam: do not leak file descriptor if flock fails +- disable sysv services natively provided by systemd + +------------------------------------------------------------------- +Thu Mar 10 14:16:50 CET 2011 - kay.sievers@novell.com + +- new snapshot + - main: refuse system to be started in a chroot + - main: don't check if /usr really is a mount point, since it is + fine if it is passed pre-mounted to us from the initrd + - condition: take a timestamp and store last result of conditions + - dev: use /dev/.run/systemd as runtime directory, instead of + /dev/.systemd + - machine-id: move machine-id-setup to /sbin + - pkconfig: export full search path as .pc variable + - selinux: bump up error level when in non-enforcing mode + - dbus: fix dbus assert due to uninitialized error + - dbus: properly generate UnknownInterface, UnknownProperty + and PropertyReadOnly errors + - mount: use /dev/.run as an early boot alias for /var/run + +------------------------------------------------------------------- +Tue Mar 8 19:06:45 UTC 2011 - kay.sievers@novell.com - version 20 - service: prefix description with LSB only if script has LSB header, diff --git a/systemd.spec b/systemd.spec index 5a6abe08..400233e6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,30 +20,36 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 20 +Version: 26 Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: libudev-devel udev +BuildRequires: libudev-devel udev dbus-1-devel BuildRequires: audit-devel BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config -BuildRequires: gtk2-devel libnotify-devel +BuildRequires: gtk2-devel libnotify-devel vala libxslt-devel BuildRequires: libselinux-devel libsepol-devel -Requires: udev >= 164 +Requires: udev >= 167 Requires: dbus-1 >= 1.4.0 Requires: kbd -Requires: util-linux >= 2.18.91 -Conflicts: mkinitrd < 2.6.0-5 +Requires: util-linux >= 2.19 +Conflicts: filesystem < 11.5 +Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch +# Upstream First - Policy: +# Never add any patches to this package without the upstream commit id +# in the patch. Any patches added here without a very good reason to make +# an exception will be silently removed with the next version update. + %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization @@ -75,15 +81,15 @@ Conflicts: upstart %description sysvinit Drop-in replacement of System V init tools. -%package plymouth -License: GPLv2+ -Group: System/Base -Summary: Plymouth support for systemd -Requires: %{name} = %{version}-%{release} -Requires: plymouth - -%description plymouth -Plymouth integration for systemd +#%package plymouth +#License: GPLv2+ +#Group: System/Base +#Summary: Plymouth support for systemd +#Requires: %{name} = %{version}-%{release} +#Requires: plymouth +# +#%description plymouth +#Plymouth integration for systemd %prep %setup -q @@ -100,6 +106,8 @@ export V=1 --docdir=%{_docdir}/systemd \ --with-rootdir= \ CFLAGS="$RPM_OPT_FLAGS" +# rebuild due to libnotify 0.7 in factory +touch *.vala */*.vala make %{?_smp_mflags} %install @@ -115,7 +123,9 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target -mkdir -p $RPM_BUILD_ROOT/etc/modules-load.d +rm -f $RPM_BUILD_ROOT/lib/systemd/system/plymouth-*.service +rm -f $RPM_BUILD_ROOT/lib/systemd/system/*.wants/plymouth-*.service +rm -f $RPM_BUILD_ROOT/lib/systemd/system/systemd-ask-password-plymouth.* # alias for /etc/init.d/* ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service @@ -126,8 +136,15 @@ ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/cgroup.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/klog.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/ldconfig.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/loadmodules.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localnet.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/proc.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/swap.service -(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth +#(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth %post /bin/systemd-machine-id-setup >/dev/null 2>&1 || : @@ -173,30 +190,42 @@ rm -rf $RPM_BUILD_ROOT /bin/systemd-tty-ask-password-agent /bin/systemd-tmpfiles /bin/systemd-machine-id-setup +/usr/bin/systemd-nspawn +/usr/bin/systemd-stdio-bridge +/usr/bin/systemd-analyze %{_bindir}/systemd-cgls /lib/systemd/systemd-* +%dir /lib/systemd/system-shutdown /%{_lib}/security/pam_systemd.so %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/xdg/systemd/user + +%dir /usr/lib/modules-load.d %dir %{_sysconfdir}/modules-load.d +%dir /usr/lib/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d -%{_sysconfdir}/tmpfiles.d/*.conf +%dir /usr/lib/binfmt.d +%dir %{_sysconfdir}/binfmt.d +%dir /usr/lib/sysctl.d +%dir %{_sysconfdir}/sysctl.d +/usr/lib/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service %{_datadir}/polkit-1 %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy -%{_datadir}/systemd %{_datadir}/pkgconfig/systemd.pc # Packaged in plymouth subpackage -%exclude /lib/systemd/system/plymouth-*.service -%exclude /lib/systemd/system/*.wants/plymouth-*.service -%exclude /lib/systemd/system/systemd-ask-password-plymouth.* +#%exclude /lib/systemd/system/plymouth-*.service +#%exclude /lib/systemd/system/*.wants/plymouth-*.service +#%exclude /lib/systemd/system/systemd-ask-password-plymouth.* # Packaged in gtk subpackage %exclude %{_mandir}/man1/systemadm.1* # Packaged in sysvinit subpackage @@ -217,6 +246,8 @@ rm -rf $RPM_BUILD_ROOT %dir /lib/systemd /lib/systemd/system /lib/systemd/system-generators +%dir /usr/lib/systemd +/usr/lib/systemd/user %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/bash_completion.d /etc/bash_completion.d/systemctl-bash-completion.sh @@ -227,11 +258,11 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/systemd-gnome-ask-password-agent %{_mandir}/man1/systemadm.1* -%files plymouth -%defattr(-,root,root,-) -/lib/systemd/system/plymouth-*.service -/lib/systemd/system/*.wants/plymouth-*.service -/lib/systemd/system/systemd-ask-password-plymouth.* +#%files plymouth +#%defattr(-,root,root,-) +#/lib/systemd/system/plymouth-*.service +#/lib/systemd/system/*.wants/plymouth-*.service +#/lib/systemd/system/systemd-ask-password-plymouth.* %files sysvinit %defattr(-,root,root,-) From fcb9fd518afc0b76a162f031d1c22bbb945813cb57234f9babbfab88da1ddefa Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 5 May 2011 12:12:00 +0000 Subject: [PATCH 034/221] Autobuild autoformatter for 69643 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=35 --- systemd.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systemd.spec b/systemd.spec index 400233e6..2a210441 100644 --- a/systemd.spec +++ b/systemd.spec @@ -26,14 +26,14 @@ License: GPLv2+ Group: System/Base Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: libudev-devel udev dbus-1-devel +BuildRequires: dbus-1-devel libudev-devel udev BuildRequires: audit-devel BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config -BuildRequires: gtk2-devel libnotify-devel vala libxslt-devel +BuildRequires: gtk2-devel libnotify-devel libxslt-devel vala BuildRequires: libselinux-devel libsepol-devel Requires: udev >= 167 Requires: dbus-1 >= 1.4.0 From d06ea64b98615c0c0ae810d0fe066049ad57cae71f3828906de5209e4b1fc3b3 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Mon, 30 May 2011 13:48:36 +0000 Subject: [PATCH 035/221] Accepting request 71916 from Base:System Update to 28 OBS-URL: https://build.opensuse.org/request/show/71916 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=36 --- systemd-26.tar.bz2 | 3 --- systemd-28.tar.bz2 | 3 +++ systemd.changes | 59 ++++++++++++++++++++++++++++++++++++++++++++++ systemd.spec | 28 ++++++++++------------ 4 files changed, 75 insertions(+), 18 deletions(-) delete mode 100644 systemd-26.tar.bz2 create mode 100644 systemd-28.tar.bz2 diff --git a/systemd-26.tar.bz2 b/systemd-26.tar.bz2 deleted file mode 100644 index 64ff1bc6..00000000 --- a/systemd-26.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25664ed77371f1c168267b1a3c2c7eb428981acc2a887b267a7deeff626a7c25 -size 816555 diff --git a/systemd-28.tar.bz2 b/systemd-28.tar.bz2 new file mode 100644 index 00000000..3057c822 --- /dev/null +++ b/systemd-28.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90691dd21bd9a296ec7cc2e6edaa5bc813c847b3219891afd9f38fb9696ddf70 +size 816801 diff --git a/systemd.changes b/systemd.changes index 4e858eaa..619a1e8e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,62 @@ +------------------------------------------------------------------- +Thu May 26 21:16:06 CEST 2011 - kay.sievers@novell.com + +- version 28 + - drop hwclock-save.service + - fix segfault when a DBus message has no interface + - man: update the list of unit search locations + - readahead-collect: ignore EACCES for fanotify + - rtc in localtime: use settimeofday(NULL, tz) + instead of hwclock(8) + +------------------------------------------------------------------- +Sat May 21 23:57:30 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - fix crash in D-Bus code + +------------------------------------------------------------------- +Sat May 21 18:17:59 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - socket: always use SO_{RCV,SND}BUFFORCE to allow larger values + - util: use new VT ESC sequence to clear scrollback buffer + - sd-daemon: move _sd_hidden_ from .h to .c file + - missing: add IP_TRANSPARENT + +------------------------------------------------------------------- +Sat May 21 16:17:38 CEST 2011 - kay.sievers@novell.com + +- version 27 + - util: use open_terminal() in chvt() too + - socket: expose SO_BROADCAST + - git: add .mailmap + - exec: expose tty reset options in dbus introspection data + - socket: expose IP_TRANSPARENT + - exec: hangup/reset/deallocate VTs in gettys + - socket: use 666 socket mode by default since neither fifos, + nor sockets, nor mqueues need to be executable + - socket: add POSIX mqueue support + - README: document relation to nss-myhostname + - hostnamed: check that nss-myhostname is installed + +------------------------------------------------------------------- +Tue May 17 19:15:17 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - sysctl: apply /etc/sysctl.conf last + - systemd-analyze: print hostname, kernelversion and arch at + the top of the plot + - pam: downgrade a few log msgs + - hostnamed: SetPrettyHostname() should check PK action + org.freedesktop.hostname1.set-static-hostname + - user-sessions: ignore EROFS when unlinking /etc/nologin if + the file doesn't exist anyway + - unit: make ignoring in snapshots a per unit property, + instead of a per unit type property + - vconsole: use open_terminal() instead of open() + - units: enable automount units only if the kernel supports them + ------------------------------------------------------------------- Thu May 5 07:45:46 UTC 2011 - coolo@opensuse.org diff --git a/systemd.spec b/systemd.spec index 2a210441..f315f60d 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,13 +20,14 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 26 +Version: 28 Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: dbus-1-devel libudev-devel udev +BuildRequires: libudev-devel udev +BuildRequires: dbus-1-devel BuildRequires: audit-devel BuildRequires: libcap-devel BuildRequires: tcpd-devel @@ -126,24 +127,23 @@ rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target rm -f $RPM_BUILD_ROOT/lib/systemd/system/plymouth-*.service rm -f $RPM_BUILD_ROOT/lib/systemd/system/*.wants/plymouth-*.service rm -f $RPM_BUILD_ROOT/lib/systemd/system/systemd-ask-password-plymouth.* -# alias for /etc/init.d/* -ln -s hwclock-load.service $RPM_BUILD_ROOT/lib/systemd/system/clock.service -ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service -ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup.service -ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service -ln -s systemd-sysctl.service $RPM_BUILD_ROOT/lib/systemd/system/sysctl.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service +# aliases for /etc/init.d/* ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/cgroup.service +ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/clock.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/klog.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/ldconfig.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/loadmodules.service +ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localnet.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/proc.service +ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/swap.service - +ln -s systemd-sysctl.service $RPM_BUILD_ROOT/lib/systemd/system/sysctl.service +ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service #(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth %post @@ -161,7 +161,6 @@ if [ "$1" -eq 1 ]; then # Enable these services by default. /bin/systemctl enable \ getty@.service \ - hwclock-load.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : @@ -171,7 +170,6 @@ fi if [ $1 -eq 0 ]; then /bin/systemctl disable \ getty@.service \ - hwclock-load.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : From 99950c02e54ea99b4b63de2c4d8578fb8795add49011e70bd638a7dd8a0f3c36 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 15 Jun 2011 09:53:36 +0000 Subject: [PATCH 036/221] Accepting request 73658 from Base:System New snapshot OBS-URL: https://build.opensuse.org/request/show/73658 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=37 --- systemd-28.tar.bz2 | 4 ++-- systemd.changes | 19 +++++++++++++++++++ systemd.spec | 47 ++++++++++++++++++++++++++++------------------ 3 files changed, 50 insertions(+), 20 deletions(-) diff --git a/systemd-28.tar.bz2 b/systemd-28.tar.bz2 index 3057c822..4c2dabb2 100644 --- a/systemd-28.tar.bz2 +++ b/systemd-28.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:90691dd21bd9a296ec7cc2e6edaa5bc813c847b3219891afd9f38fb9696ddf70 -size 816801 +oid sha256:92e98fe32c7cff50933a3b865e28efba870fbacfa51cd58f2d13f117eb31a2c6 +size 816790 diff --git a/systemd.changes b/systemd.changes index 619a1e8e..c89d0919 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Jun 14 15:10:41 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - mount /run without MS_NOEXEC + - readahead-common: fix total memory size detection + - enable chkconfig support in systemctl for openSUSE + - selinux: selinuxfs can be mounted on /sys/fs/selinux + - cryptsetup-generator: fix /etc/cryptsetup options + - systemctl: fix double unref of a dbus message +- drop merged chkconfig patch + +------------------------------------------------------------------- +Tue Jun 14 12:39:25 UTC 2011 - fcrozat@novell.com + +- Add sysv chkconfig patch to be able to enable / disable sysv + initscripts with systemctl. +- Ensure plymouth support is buildable conditionnally. + ------------------------------------------------------------------- Thu May 26 21:16:06 CEST 2011 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index f315f60d..0f6a3511 100644 --- a/systemd.spec +++ b/systemd.spec @@ -17,6 +17,7 @@ # norootforbuild +%define build_plymouth 0 Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -82,15 +83,17 @@ Conflicts: upstart %description sysvinit Drop-in replacement of System V init tools. -#%package plymouth -#License: GPLv2+ -#Group: System/Base -#Summary: Plymouth support for systemd -#Requires: %{name} = %{version}-%{release} -#Requires: plymouth -# -#%description plymouth -#Plymouth integration for systemd +%if %{build_plymouth} +%package plymouth +License: GPLv2+ +Group: System/Base +Summary: Plymouth support for systemd +Requires: %{name} = %{version}-%{release} +Requires: plymouth + +%description plymouth +Plymouth integration for systemd +%endif %prep %setup -q @@ -124,9 +127,11 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target +%if !%{build_plymouth} rm -f $RPM_BUILD_ROOT/lib/systemd/system/plymouth-*.service rm -f $RPM_BUILD_ROOT/lib/systemd/system/*.wants/plymouth-*.service rm -f $RPM_BUILD_ROOT/lib/systemd/system/systemd-ask-password-plymouth.* +%endif # aliases for /etc/init.d/* ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/cgroup.service ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup.service @@ -144,7 +149,9 @@ ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/swap.service ln -s systemd-sysctl.service $RPM_BUILD_ROOT/lib/systemd/system/sysctl.service ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service -#(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth +%if %{build_plymouth} +(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth +%endif %post /bin/systemd-machine-id-setup >/dev/null 2>&1 || : @@ -220,10 +227,12 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/pkgconfig/systemd.pc +%if %{build_plymouth} # Packaged in plymouth subpackage -#%exclude /lib/systemd/system/plymouth-*.service -#%exclude /lib/systemd/system/*.wants/plymouth-*.service -#%exclude /lib/systemd/system/systemd-ask-password-plymouth.* +%exclude /lib/systemd/system/plymouth-*.service +%exclude /lib/systemd/system/*.wants/plymouth-*.service +%exclude /lib/systemd/system/systemd-ask-password-plymouth.* +%endif # Packaged in gtk subpackage %exclude %{_mandir}/man1/systemadm.1* # Packaged in sysvinit subpackage @@ -256,11 +265,13 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/systemd-gnome-ask-password-agent %{_mandir}/man1/systemadm.1* -#%files plymouth -#%defattr(-,root,root,-) -#/lib/systemd/system/plymouth-*.service -#/lib/systemd/system/*.wants/plymouth-*.service -#/lib/systemd/system/systemd-ask-password-plymouth.* +%if %{build_plymouth} +%files plymouth +%defattr(-,root,root,-) +/lib/systemd/system/plymouth-*.service +/lib/systemd/system/*.wants/plymouth-*.service +/lib/systemd/system/systemd-ask-password-plymouth.* +%endif %files sysvinit %defattr(-,root,root,-) From 05a6aa08eeeb70fed98da7e311251c9a5e2e01c9f86bbb2913c3545ee037c886 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 15 Jun 2011 09:53:47 +0000 Subject: [PATCH 037/221] Autobuild autoformatter for 73658 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=38 --- systemd.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 0f6a3511..8805480b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 28 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -84,6 +84,7 @@ Conflicts: upstart Drop-in replacement of System V init tools. %if %{build_plymouth} + %package plymouth License: GPLv2+ Group: System/Base @@ -266,6 +267,7 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/systemadm.1* %if %{build_plymouth} + %files plymouth %defattr(-,root,root,-) /lib/systemd/system/plymouth-*.service From e0791e9971c782bb64c1b520c817f7dc35497bd19e09f765516bd3ed175fe5ea Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 20 Jun 2011 07:39:20 +0000 Subject: [PATCH 038/221] Accepting request 74015 from Base:System - version 29: + enable chkconfig support in systemctl for openSUSE. + systemctl: plug a leak upon create_symlink mismatch + mount /run without MS_NOEXEC + dbus: fix name of capability property + systemctl: fix double unref of a dbus message + cryptsetup-generator: fix /etc/cryptsetup options + selinux: selinuxfs can be mounted on /sys/fs/selinux + readahead-common: fix total memory size detection + systemctl: fix 'is-enabled' for native units under /lib + systemctl: fix a FILE* leak + pam-module: add debug= parameter + remote-fs.target: do not order after network.target - update tarball url. - Use RPM macros instead of $RPM_FOO variables - Don't require %{version}-%{release} of the base package, %{version} is sufficient OBS-URL: https://build.opensuse.org/request/show/74015 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=39 --- systemd-28.tar.bz2 | 3 -- systemd-29.tar.bz2 | 3 ++ systemd.changes | 25 ++++++++++++ systemd.spec | 95 +++++++++++++++++++++++++++------------------- 4 files changed, 84 insertions(+), 42 deletions(-) delete mode 100644 systemd-28.tar.bz2 create mode 100644 systemd-29.tar.bz2 diff --git a/systemd-28.tar.bz2 b/systemd-28.tar.bz2 deleted file mode 100644 index 4c2dabb2..00000000 --- a/systemd-28.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:92e98fe32c7cff50933a3b865e28efba870fbacfa51cd58f2d13f117eb31a2c6 -size 816790 diff --git a/systemd-29.tar.bz2 b/systemd-29.tar.bz2 new file mode 100644 index 00000000..b9e21e45 --- /dev/null +++ b/systemd-29.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c41153c3ebab9e25b16fa1670946ce6dfdd1515608a37eedd80d2bbe46629971 +size 810407 diff --git a/systemd.changes b/systemd.changes index c89d0919..00d55141 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Fri Jun 17 09:34:24 UTC 2011 - fcrozat@novell.com + +- version 29: + + enable chkconfig support in systemctl for openSUSE. + + systemctl: plug a leak upon create_symlink mismatch + + mount /run without MS_NOEXEC + + dbus: fix name of capability property + + systemctl: fix double unref of a dbus message + + cryptsetup-generator: fix /etc/cryptsetup options + + selinux: selinuxfs can be mounted on /sys/fs/selinux + + readahead-common: fix total memory size detection + + systemctl: fix 'is-enabled' for native units under /lib + + systemctl: fix a FILE* leak + + pam-module: add debug= parameter + + remote-fs.target: do not order after network.target +- update tarball url. + +------------------------------------------------------------------- +Wed Jun 15 10:00:29 UTC 2011 - saschpe@suse.de + +- Use RPM macros instead of $RPM_FOO variables +- Don't require %{version}-%{release} of the base package, + %{version} is sufficient + ------------------------------------------------------------------- Tue Jun 14 15:10:41 CEST 2011 - kay.sievers@novell.com diff --git a/systemd.spec b/systemd.spec index 8805480b..c8c2e175 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,8 +21,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 28 -Release: 2 +Version: 29 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -43,7 +43,7 @@ Requires: kbd Requires: util-linux >= 2.19 Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 -Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 +Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch @@ -52,6 +52,7 @@ Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. + %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization @@ -66,7 +67,8 @@ drop-in replacement for sysvinit. License: GPLv2+ Group: System/Base Summary: Graphical front-end for systemd -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{version} + %description gtk Graphical front-end for systemd system and service manager. @@ -75,31 +77,36 @@ Graphical front-end for systemd system and service manager. License: GPLv2+ Group: System/Base Summary: System V init tools -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{version} Provides: sbin_init Conflicts: sysvinit Conflicts: upstart + %description sysvinit Drop-in replacement of System V init tools. %if %{build_plymouth} + %package plymouth License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{version} Requires: plymouth + %description plymouth Plymouth integration for systemd %endif + %prep %setup -q %patch1 -p1 + %build autoreconf -fiv # prevent pre-generated and distributed files from re-building @@ -110,50 +117,52 @@ export V=1 --with-distro=suse \ --docdir=%{_docdir}/systemd \ --with-rootdir= \ - CFLAGS="$RPM_OPT_FLAGS" + CFLAGS="%{optflags}" # rebuild due to libnotify 0.7 in factory touch *.vala */*.vala make %{?_smp_mflags} + %install %makeinstall -find $RPM_BUILD_ROOT -type f -name '*.la' -exec rm -f {} ';' -mkdir -p $RPM_BUILD_ROOT/sbin -ln -s ../bin/systemd $RPM_BUILD_ROOT/sbin/init -ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/reboot -ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/halt -ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/shutdown -ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/poweroff -ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit -ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel -rm -rf $RPM_BUILD_ROOT/etc/systemd/system/*.target.wants -rm -f $RPM_BUILD_ROOT/etc/systemd/system/default.target +find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' +mkdir -p %{buildroot}/sbin +ln -s ../bin/systemd %{buildroot}/sbin/init +ln -s ../bin/systemctl %{buildroot}/sbin/reboot +ln -s ../bin/systemctl %{buildroot}/sbin/halt +ln -s ../bin/systemctl %{buildroot}/sbin/shutdown +ln -s ../bin/systemctl %{buildroot}/sbin/poweroff +ln -s ../bin/systemctl %{buildroot}/sbin/telinit +ln -s ../bin/systemctl %{buildroot}/sbin/runlevel +rm -rf %{buildroot}/etc/systemd/system/*.target.wants +rm -f %{buildroot}/etc/systemd/system/default.target %if !%{build_plymouth} -rm -f $RPM_BUILD_ROOT/lib/systemd/system/plymouth-*.service -rm -f $RPM_BUILD_ROOT/lib/systemd/system/*.wants/plymouth-*.service -rm -f $RPM_BUILD_ROOT/lib/systemd/system/systemd-ask-password-plymouth.* +rm -f %{buildroot}/lib/systemd/system/plymouth-*.service +rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-*.service +rm -f %{buildroot}/lib/systemd/system/systemd-ask-password-plymouth.* %endif # aliases for /etc/init.d/* -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/cgroup.service -ln -s systemd-tmpfiles-setup.service $RPM_BUILD_ROOT/lib/systemd/system/cleanup.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/clock.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/earlysyslog.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/klog.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/ldconfig.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/loadmodules.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localnet.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/proc.service -ln -s fsck-root.service $RPM_BUILD_ROOT/lib/systemd/system/rootfsck.service -ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/swap.service -ln -s systemd-sysctl.service $RPM_BUILD_ROOT/lib/systemd/system/sysctl.service -ln -s systemd-random-seed-load.service $RPM_BUILD_ROOT/lib/systemd/system/random.service +ln -s /dev/null %{buildroot}/lib/systemd/system/cgroup.service +ln -s systemd-tmpfiles-setup.service %{buildroot}/lib/systemd/system/cleanup.service +ln -s /dev/null %{buildroot}/lib/systemd/system/clock.service +ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service +ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service +ln -s /dev/null %{buildroot}/lib/systemd/system/klog.service +ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service +ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service +ln -s /dev/null %{buildroot}/lib/systemd/system/localfs.service +ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service +ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service +ln -s /dev/null %{buildroot}/lib/systemd/system/swap.service +ln -s systemd-sysctl.service %{buildroot}/lib/systemd/system/sysctl.service +ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.service %if %{build_plymouth} -(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth +(cd %{buildroot} && find . -name '*plymouth*') > files.plymouth %endif + %post /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : @@ -174,6 +183,7 @@ if [ "$1" -eq 1 ]; then remote-fs.target >/dev/null 2>&1 || : fi + %preun if [ $1 -eq 0 ]; then /bin/systemctl disable \ @@ -184,8 +194,10 @@ if [ $1 -eq 0 ]; then rm -f /etc/systemd/system/default.target 2>&1 || : fi + %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} + %files %defattr(-,root,root) @@ -260,6 +272,7 @@ rm -rf $RPM_BUILD_ROOT %dir %{_sysconfdir}/bash_completion.d /etc/bash_completion.d/systemctl-bash-completion.sh + %files gtk %defattr(-,root,root,-) %{_bindir}/systemadm @@ -268,6 +281,7 @@ rm -rf $RPM_BUILD_ROOT %if %{build_plymouth} + %files plymouth %defattr(-,root,root,-) /lib/systemd/system/plymouth-*.service @@ -275,6 +289,7 @@ rm -rf $RPM_BUILD_ROOT /lib/systemd/system/systemd-ask-password-plymouth.* %endif + %files sysvinit %defattr(-,root,root,-) /sbin/init @@ -292,4 +307,6 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* + + %changelog From d8bee80cd830f19e4128b313cf4669be02a3275f6eaf2d07f0050c496b7b4a34 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 20 Jun 2011 07:39:29 +0000 Subject: [PATCH 039/221] Autobuild autoformatter for 74015 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=40 --- systemd.spec | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/systemd.spec b/systemd.spec index c8c2e175..a04f0231 100644 --- a/systemd.spec +++ b/systemd.spec @@ -52,7 +52,6 @@ Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. - %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization @@ -69,7 +68,6 @@ Group: System/Base Summary: Graphical front-end for systemd Requires: %{name} = %{version} - %description gtk Graphical front-end for systemd system and service manager. @@ -82,13 +80,11 @@ Provides: sbin_init Conflicts: sysvinit Conflicts: upstart - %description sysvinit Drop-in replacement of System V init tools. %if %{build_plymouth} - %package plymouth License: GPLv2+ Group: System/Base @@ -96,17 +92,14 @@ Summary: Plymouth support for systemd Requires: %{name} = %{version} Requires: plymouth - %description plymouth Plymouth integration for systemd %endif - %prep %setup -q %patch1 -p1 - %build autoreconf -fiv # prevent pre-generated and distributed files from re-building @@ -122,7 +115,6 @@ export V=1 touch *.vala */*.vala make %{?_smp_mflags} - %install %makeinstall find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' @@ -162,7 +154,6 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se (cd %{buildroot} && find . -name '*plymouth*') > files.plymouth %endif - %post /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : @@ -183,7 +174,6 @@ if [ "$1" -eq 1 ]; then remote-fs.target >/dev/null 2>&1 || : fi - %preun if [ $1 -eq 0 ]; then /bin/systemctl disable \ @@ -194,11 +184,9 @@ if [ $1 -eq 0 ]; then rm -f /etc/systemd/system/default.target 2>&1 || : fi - %clean rm -rf %{buildroot} - %files %defattr(-,root,root) /bin/systemd @@ -272,7 +260,6 @@ rm -rf %{buildroot} %dir %{_sysconfdir}/bash_completion.d /etc/bash_completion.d/systemctl-bash-completion.sh - %files gtk %defattr(-,root,root,-) %{_bindir}/systemadm @@ -281,7 +268,6 @@ rm -rf %{buildroot} %if %{build_plymouth} - %files plymouth %defattr(-,root,root,-) /lib/systemd/system/plymouth-*.service @@ -289,7 +275,6 @@ rm -rf %{buildroot} /lib/systemd/system/systemd-ask-password-plymouth.* %endif - %files sysvinit %defattr(-,root,root,-) /sbin/init @@ -307,6 +292,4 @@ rm -rf %{buildroot} %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* - - %changelog From 69d14b0d3bb8cefd0ff5f1e6f3c7a5bc0ecfb723f5d83f3cd848bf1e8e38a717 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 1 Jul 2011 14:18:35 +0000 Subject: [PATCH 040/221] Accepting request 75005 from Base:System - Make sure to not start kbd initscript, it is handled by systemd natively. OBS-URL: https://build.opensuse.org/request/show/75005 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=41 --- systemd.changes | 6 ++++++ systemd.spec | 1 + 2 files changed, 7 insertions(+) diff --git a/systemd.changes b/systemd.changes index 00d55141..27c95cb1 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 29 12:54:24 UTC 2011 - fcrozat@suse.com + +- Make sure to not start kbd initscript, it is handled by systemd + natively. + ------------------------------------------------------------------- Fri Jun 17 09:34:24 UTC 2011 - fcrozat@novell.com diff --git a/systemd.spec b/systemd.spec index a04f0231..31508e04 100644 --- a/systemd.spec +++ b/systemd.spec @@ -140,6 +140,7 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/clock.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service +ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/lib/systemd/system/klog.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service From addc4d44e2d6dfbff951cbcdd7c6140ee8aca7cb18114973350e70cf1c4691f2 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 1 Jul 2011 14:18:45 +0000 Subject: [PATCH 041/221] Autobuild autoformatter for 75005 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=42 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 31508e04..ca79b5ac 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 29 -Release: 1 +Release: 3 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 6ae518ac8ec345bc67cdb18a868eb950996918659a2cb52eed5f5e3b0612517a Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 20 Jul 2011 07:12:35 +0000 Subject: [PATCH 042/221] Accepting request 76463 from Base:System Add changes (forwarded request 76462 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/76463 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=43 --- systemd-29.tar.bz2 | 3 --- systemd-30.tar.bz2 | 3 +++ systemd-rpmlintrc | 3 ++- systemd.changes | 9 +++++++++ systemd.spec | 18 ++++++++++++++++-- 5 files changed, 30 insertions(+), 6 deletions(-) delete mode 100644 systemd-29.tar.bz2 create mode 100644 systemd-30.tar.bz2 diff --git a/systemd-29.tar.bz2 b/systemd-29.tar.bz2 deleted file mode 100644 index b9e21e45..00000000 --- a/systemd-29.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c41153c3ebab9e25b16fa1670946ce6dfdd1515608a37eedd80d2bbe46629971 -size 810407 diff --git a/systemd-30.tar.bz2 b/systemd-30.tar.bz2 new file mode 100644 index 00000000..ddfece5d --- /dev/null +++ b/systemd-30.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10f6fffe45fab4c2985267fad25781eb51aa07a216541443806cf7da7f616bb7 +size 868377 diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index d7a7e967..59cfd1a7 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,6 +1,7 @@ addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") -addFilter(".*suse-dbus-unauthorized-service.*") addFilter(".*devel-file-in-non-devel-package.*systemd.pc.*") addFilter(".*files-duplicate .*/reboot.8.*") addFilter(".*files-duplicate .*/sd_is_socket.3.*") +addFilter(".*dbus-policy-allow-receive") + diff --git a/systemd.changes b/systemd.changes index 27c95cb1..06bf6e11 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Jul 19 11:56:43 UTC 2011 - aj@suse.de + +- Update to version 30: + + Logic from pam_systemd has been moved to new systemd-login. + + VT gettys are autospawn only when needed + + Handle boot.local/halt.local on SUSE distribution + + add support for systemctl --root + ------------------------------------------------------------------- Wed Jun 29 12:54:24 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index ca79b5ac..ea3e11e6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 29 +Version: 30 Release: 3 License: GPLv2+ Group: System/Base @@ -37,7 +37,8 @@ BuildRequires: libcryptsetup-devel BuildRequires: pkg-config BuildRequires: gtk2-devel libnotify-devel libxslt-devel vala BuildRequires: libselinux-devel libsepol-devel -Requires: udev >= 167 +BuildRequires: intltool +Requires: udev >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux >= 2.19 @@ -194,6 +195,7 @@ rm -rf %{buildroot} /bin/systemctl /bin/systemd-notify /bin/systemd-ask-password +/bin/systemd-loginctl /bin/systemd-tty-ask-password-agent /bin/systemd-tmpfiles /bin/systemd-machine-id-setup @@ -219,12 +221,24 @@ rm -rf %{buildroot} %dir %{_sysconfdir}/sysctl.d /usr/lib/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf +%config(noreplace) %{_sysconfdir}/systemd/systemd-logind.conf +%config(noreplace) %{_sysconfdir}/systemd/user.conf +%config(noreplace) %{_sysconfdir}/systemd/system.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf +%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %{_datadir}/polkit-1 %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy From a8a39286d04bb16c7361da5e16136820da01f4283e48c1be8049bf64941fdb12 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 20 Jul 2011 07:13:18 +0000 Subject: [PATCH 043/221] Autobuild autoformatter for 76463 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=44 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index ea3e11e6..2384823a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 30 -Release: 3 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 463955367e35493b6abce52ae49da9a671dc45ffeb0294ff25a8910b08ec35e4 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 2 Aug 2011 07:39:24 +0000 Subject: [PATCH 044/221] Accepting request 77637 from Base:System Update to v32, split up devel project, adjust rpmlintrc OBS-URL: https://build.opensuse.org/request/show/77637 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=45 --- systemd-30.tar.bz2 | 3 --- systemd-32.tar.bz2 | 3 +++ systemd-rpmlintrc | 5 ++++- systemd.changes | 22 ++++++++++++++++++++++ systemd.spec | 35 ++++++++++++++++++++++++++++++++--- 5 files changed, 61 insertions(+), 7 deletions(-) delete mode 100644 systemd-30.tar.bz2 create mode 100644 systemd-32.tar.bz2 diff --git a/systemd-30.tar.bz2 b/systemd-30.tar.bz2 deleted file mode 100644 index ddfece5d..00000000 --- a/systemd-30.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10f6fffe45fab4c2985267fad25781eb51aa07a216541443806cf7da7f616bb7 -size 868377 diff --git a/systemd-32.tar.bz2 b/systemd-32.tar.bz2 new file mode 100644 index 00000000..cf746355 --- /dev/null +++ b/systemd-32.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:714bd00ceb44639a675e8a7b7ee4f6bff42b70a442110c70e64ff41056828dae +size 877943 diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index 59cfd1a7..cc21ff25 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,7 +1,10 @@ addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") -addFilter(".*devel-file-in-non-devel-package.*systemd.pc.*") addFilter(".*files-duplicate .*/reboot.8.*") addFilter(".*files-duplicate .*/sd_is_socket.3.*") +addFilter("non-conffile-in-etc /etc/bash_completion.d/systemctl-bash-completion.sh") addFilter(".*dbus-policy-allow-receive") +# Do not enable for submission into openSUSE:Factory, +# just for testing while polkit-default-privs is not checked in +# setBadness('polkit-unauthorized-privilege', 1) diff --git a/systemd.changes b/systemd.changes index 06bf6e11..fc42e955 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Mon Aug 1 09:04:53 UTC 2011 - aj@suse.de + +- Split up devel package. +- restart logind after upgrade. +- Adjust rpmlintrc for changes. + +------------------------------------------------------------------- +Fri Jul 29 10:48:20 UTC 2011 - aj@suse.de + +- Update to version 32: + * bugfixes + * improve selinux setup + +------------------------------------------------------------------- +Thu Jul 28 07:27:32 UTC 2011 - aj@suse.de + +- Update to version 31: + * rewrite of enable/disable code: New features systemctl --runtime, + systemctl mask, systemctl link and presets. + * sd-daemon is now shared library. + ------------------------------------------------------------------- Tue Jul 19 11:56:43 UTC 2011 - aj@suse.de diff --git a/systemd.spec b/systemd.spec index 2384823a..3a7e6a2a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,8 +21,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 30 -Release: 1 +Version: 32 +Release: 3 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -63,6 +63,16 @@ maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. +%package devel +License: GPLv2+ +Group: Development/Libraries/C and C++ +Summary: Development headers for systemd +Requires: %{name} = %{version} +Requires: pkg-config + +%description devel +Development headers and auxiliary files for developing applications for systemd. + %package gtk License: GPLv2+ Group: System/Base @@ -159,6 +169,7 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se %post /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : +/sbin/ldconfig # Create default config in /etc at first install. # Later package updates should not overwrite these settings. @@ -176,6 +187,12 @@ if [ "$1" -eq 1 ]; then remote-fs.target >/dev/null 2>&1 || : fi +%postun +/sbin/ldconfig +if [ $1 -ge 1 ] ; then + /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : +fi + %preun if [ $1 -eq 0 ]; then /bin/systemctl disable \ @@ -202,6 +219,8 @@ rm -rf %{buildroot} /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge /usr/bin/systemd-analyze +%{_libdir}/libsystemd-daemon.so.* +%{_libdir}/libsystemd-login.so.* %{_bindir}/systemd-cgls /lib/systemd/systemd-* %dir /lib/systemd/system-shutdown @@ -242,7 +261,6 @@ rm -rf %{buildroot} %{_datadir}/polkit-1 %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy -%{_datadir}/pkgconfig/systemd.pc %if %{build_plymouth} # Packaged in plymouth subpackage %exclude /lib/systemd/system/plymouth-*.service @@ -281,6 +299,17 @@ rm -rf %{buildroot} %{_bindir}/systemd-gnome-ask-password-agent %{_mandir}/man1/systemadm.1* +%files devel +%defattr(-,root,root,-) +%{_libdir}/libsystemd-daemon.so +%{_libdir}/libsystemd-login.so +%dir %{_includedir}/systemd +%{_includedir}/systemd/sd-login.h +%{_includedir}/systemd/sd-daemon.h +%{_datadir}/pkgconfig/systemd.pc +%{_libdir}/pkgconfig/libsystemd-daemon.pc +%{_libdir}/pkgconfig/libsystemd-login.pc + %if %{build_plymouth} %files plymouth From ddcccda23e8a20058787ec21c4179a7bbfa38116785c0ca5e705265c7e62376a Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 2 Aug 2011 07:39:32 +0000 Subject: [PATCH 045/221] Autobuild autoformatter for 77637 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=46 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 3a7e6a2a..e4720cdf 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 32 -Release: 3 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 552a1ab5063dea8dec939783901670d529c7296e33d01b8a5d11b02ec2a44f82 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 2 Aug 2011 11:57:04 +0000 Subject: [PATCH 046/221] Accepting request 77663 from Base:System - Add insserv-parsing.patch: read/parse insserv.conf. - Add bash-completion-restart.patch: fix restart service list (bnc#704782). OBS-URL: https://build.opensuse.org/request/show/77663 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=47 --- bash-completion-restart.patch | 43 +++++++++++++++ insserv-parsing.patch | 100 ++++++++++++++++++++++++++++++++++ systemd.changes | 7 +++ systemd.spec | 6 ++ 4 files changed, 156 insertions(+) create mode 100644 bash-completion-restart.patch create mode 100644 insserv-parsing.patch diff --git a/bash-completion-restart.patch b/bash-completion-restart.patch new file mode 100644 index 00000000..da169c26 --- /dev/null +++ b/bash-completion-restart.patch @@ -0,0 +1,43 @@ +From 54a437057e83ca41f329f010e2a0e968ed3880b2 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Mon, 1 Aug 2011 18:43:01 +0200 +Subject: [PATCH] bash: Allow to restart already started service. + +Allow to restart all services, not only inactive one. + +https://bugzilla.novell.com/show_bug.cgi?id=704782 +--- + src/systemctl-bash-completion.sh | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh +index acdc086..6369a6c 100644 +--- a/src/systemctl-bash-completion.sh ++++ b/src/systemctl-bash-completion.sh +@@ -79,10 +79,11 @@ _systemctl () { + local -A VERBS=( + [ALL_UNITS]='enable disable is-active is-enabled status show' + [FAILED_UNITS]='reset-failed' +- [STARTABLE_UNITS]='start restart reload-or-restart' ++ [STARTABLE_UNITS]='start' + [STOPPABLE_UNITS]='stop kill try-restart condrestart' + [ISOLATABLE_UNITS]='isolate' + [RELOADABLE_UNITS]='reload reload-or-try-restart force-reload' ++ [RESTARTABLE_UNITS]='restart reload-or-restart' + [JOBS]='cancel' + [SNAPSHOTS]='delete' + [ENVS]='set-environment unset-environment' +@@ -110,6 +111,10 @@ _systemctl () { + comps=$( __filter_units_by_property CanStart yes \ + $( __get_inactive_units | grep -Ev '\.(device|snapshot)$' )) + ++ elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then ++ comps=$( __filter_units_by_property CanStart yes \ ++ $( __get_all_units | grep -Ev '\.(device|snapshot|socket|timer)$' )) ++ + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then + comps=$( __filter_units_by_property CanStop yes \ + $( __get_active_units ) ) +-- +1.7.3.4 + diff --git a/insserv-parsing.patch b/insserv-parsing.patch new file mode 100644 index 00000000..329e3917 --- /dev/null +++ b/insserv-parsing.patch @@ -0,0 +1,100 @@ +From de3910a324aefcb15c26be27033d6917494e5946 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Wed, 29 Jun 2011 13:59:34 +0200 +Subject: [PATCH] service: parse insserv.conf and plugs its system facilities into systemd. + +--- + src/service.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 70 insertions(+), 0 deletions(-) + +diff --git a/src/service.c b/src/service.c +index 4e3b6e7..0464d1e 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -2968,6 +2968,72 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + } + + #ifdef HAVE_SYSV_COMPAT ++ ++#ifdef TARGET_SUSE ++static void sysv_facility_in_insserv_conf(Manager *mgr) { ++ FILE *f=NULL; ++ int r; ++ ++ if (!(f = fopen("/etc/insserv.conf", "re"))) { ++ r = errno == ENOENT ? 0 : -errno; ++ goto finish; ++ } ++ ++ while (!feof(f)) { ++ char l[LINE_MAX], *t; ++ char **parsed = NULL; ++ ++ if (!fgets(l, sizeof(l), f)) { ++ if (feof(f)) ++ break; ++ ++ r = -errno; ++ log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r)); ++ goto finish; ++ } ++ ++ t = strstrip(l); ++ if (*t != '$' && *t != '<') ++ continue; ++ ++ parsed = strv_split(t,WHITESPACE); ++ /* we ignore , not used, equivalent to X-Interactive */ ++ if (parsed && !startswith_no_case (parsed[0], "")) { ++ char *facility; ++ Unit *u; ++ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) ++ continue; ++ if ((u = manager_get_unit(mgr, facility)) && (u->meta.type == UNIT_TARGET)) { ++ UnitDependency e; ++ char *dep = NULL, *name, **j; ++ ++ STRV_FOREACH (j, parsed+1) { ++ if (*j[0]=='+') { ++ e = UNIT_WANTS; ++ name = *j+1; ++ } ++ else { ++ e = UNIT_REQUIRES; ++ name = *j; ++ } ++ if (sysv_translate_facility(name, NULL, &dep) < 0) ++ continue; ++ ++ r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); ++ free(dep); ++ } ++ } ++ free(facility); ++ } ++ strv_free(parsed); ++ } ++finish: ++ if (f) ++ fclose(f); ++ ++} ++#endif ++ + static int service_enumerate(Manager *m) { + char **p; + unsigned i; +@@ -3116,6 +3182,10 @@ static int service_enumerate(Manager *m) { + + r = 0; + ++#ifdef TARGET_SUSE ++ sysv_facility_in_insserv_conf (m); ++#endif ++ + finish: + free(path); + free(fpath); +-- +1.7.3.4 + diff --git a/systemd.changes b/systemd.changes index fc42e955..37ff80fb 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com + +- Add insserv-parsing.patch: read/parse insserv.conf. +- Add bash-completion-restart.patch: fix restart service list + (bnc#704782). + ------------------------------------------------------------------- Mon Aug 1 09:04:53 UTC 2011 - aj@suse.de diff --git a/systemd.spec b/systemd.spec index e4720cdf..fcdf4ae8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -52,6 +52,10 @@ Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-UPSTREAM fcrozat@suse.com -- read/parse insserv.conf (git) +Patch2: insserv-parsing.patch +# PATCH-FIX-UPSTREAM fcrozat@suse.com bnc704782 -- fix bash completion for restart command (git) +Patch3: bash-completion-restart.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -110,6 +114,8 @@ Plymouth integration for systemd %prep %setup -q %patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build autoreconf -fiv From 6e1d6273a327df9d4034efe639753177d7251c70e6f1e0ad2124d7d2bc3945d3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 2 Aug 2011 11:57:13 +0000 Subject: [PATCH 047/221] Autobuild autoformatter for 77663 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=48 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index fcdf4ae8..2ec83934 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 32 -Release: 1 +Release: 5 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From f728a2485a826fa0e25826453d9c5115618c401f7d356f82be02262f908782ba Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 4 Aug 2011 07:21:02 +0000 Subject: [PATCH 048/221] Accepting request 77911 from Base:System - Add root-fsck.patch: do not run fsck on / if it is rw - Ship a non null localfs.service, fixes static mount points not being mounted properly. - Update to version 33: * optimizations and bugfixes. * New PrivateNetwork= service setting which allows you to shut off networking for a specific service (i.e. all routable network interfaces will disappear for that service). * Merged insserv-parsing.patch and bash-completion-restart.patch patches. OBS-URL: https://build.opensuse.org/request/show/77911 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=49 --- bash-completion-restart.patch | 43 --------------- gperf-missing.patch | 25 +++++++++ insserv-parsing.patch | 100 ---------------------------------- localfs.service | 6 ++ root-fsck.patch | 25 +++++++++ systemd-32.tar.bz2 | 3 - systemd-33.tar.bz2 | 3 + systemd.changes | 18 ++++++ systemd.spec | 15 +++-- 9 files changed, 86 insertions(+), 152 deletions(-) delete mode 100644 bash-completion-restart.patch create mode 100644 gperf-missing.patch delete mode 100644 insserv-parsing.patch create mode 100644 localfs.service create mode 100644 root-fsck.patch delete mode 100644 systemd-32.tar.bz2 create mode 100644 systemd-33.tar.bz2 diff --git a/bash-completion-restart.patch b/bash-completion-restart.patch deleted file mode 100644 index da169c26..00000000 --- a/bash-completion-restart.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 54a437057e83ca41f329f010e2a0e968ed3880b2 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 1 Aug 2011 18:43:01 +0200 -Subject: [PATCH] bash: Allow to restart already started service. - -Allow to restart all services, not only inactive one. - -https://bugzilla.novell.com/show_bug.cgi?id=704782 ---- - src/systemctl-bash-completion.sh | 7 ++++++- - 1 files changed, 6 insertions(+), 1 deletions(-) - -diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh -index acdc086..6369a6c 100644 ---- a/src/systemctl-bash-completion.sh -+++ b/src/systemctl-bash-completion.sh -@@ -79,10 +79,11 @@ _systemctl () { - local -A VERBS=( - [ALL_UNITS]='enable disable is-active is-enabled status show' - [FAILED_UNITS]='reset-failed' -- [STARTABLE_UNITS]='start restart reload-or-restart' -+ [STARTABLE_UNITS]='start' - [STOPPABLE_UNITS]='stop kill try-restart condrestart' - [ISOLATABLE_UNITS]='isolate' - [RELOADABLE_UNITS]='reload reload-or-try-restart force-reload' -+ [RESTARTABLE_UNITS]='restart reload-or-restart' - [JOBS]='cancel' - [SNAPSHOTS]='delete' - [ENVS]='set-environment unset-environment' -@@ -110,6 +111,10 @@ _systemctl () { - comps=$( __filter_units_by_property CanStart yes \ - $( __get_inactive_units | grep -Ev '\.(device|snapshot)$' )) - -+ elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then -+ comps=$( __filter_units_by_property CanStart yes \ -+ $( __get_all_units | grep -Ev '\.(device|snapshot|socket|timer)$' )) -+ - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then - comps=$( __filter_units_by_property CanStop yes \ - $( __get_active_units ) ) --- -1.7.3.4 - diff --git a/gperf-missing.patch b/gperf-missing.patch new file mode 100644 index 00000000..49eb98b5 --- /dev/null +++ b/gperf-missing.patch @@ -0,0 +1,25 @@ +From: Thierry Reding +To: systemd-devel@lists.freedesktop.org +Date: Wed, 3 Aug 2011 08:40:27 +0200 +Subject: [systemd-devel] [PATCH] gperf: Include missing.h. + +Older GNU C libraries don't define RLIMIT_RTTIME, so including the +missing.h is required to fix the build. +--- + src/load-fragment-gperf.gperf.m4 | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/src/load-fragment-gperf.gperf.m4 b/src/load-fragment-gperf.gperf.m4 +index 650f444..8e52890 100644 +--- a/src/load-fragment-gperf.gperf.m4 ++++ b/src/load-fragment-gperf.gperf.m4 +@@ -2,6 +2,7 @@ + #include + #include "conf-parser.h" + #include "load-fragment.h" ++#include "missing.h" + %} + struct ConfigPerfItem; + %null_strings +-- +1.7.6 diff --git a/insserv-parsing.patch b/insserv-parsing.patch deleted file mode 100644 index 329e3917..00000000 --- a/insserv-parsing.patch +++ /dev/null @@ -1,100 +0,0 @@ -From de3910a324aefcb15c26be27033d6917494e5946 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Wed, 29 Jun 2011 13:59:34 +0200 -Subject: [PATCH] service: parse insserv.conf and plugs its system facilities into systemd. - ---- - src/service.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 70 insertions(+), 0 deletions(-) - -diff --git a/src/service.c b/src/service.c -index 4e3b6e7..0464d1e 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -2968,6 +2968,72 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - } - - #ifdef HAVE_SYSV_COMPAT -+ -+#ifdef TARGET_SUSE -+static void sysv_facility_in_insserv_conf(Manager *mgr) { -+ FILE *f=NULL; -+ int r; -+ -+ if (!(f = fopen("/etc/insserv.conf", "re"))) { -+ r = errno == ENOENT ? 0 : -errno; -+ goto finish; -+ } -+ -+ while (!feof(f)) { -+ char l[LINE_MAX], *t; -+ char **parsed = NULL; -+ -+ if (!fgets(l, sizeof(l), f)) { -+ if (feof(f)) -+ break; -+ -+ r = -errno; -+ log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r)); -+ goto finish; -+ } -+ -+ t = strstrip(l); -+ if (*t != '$' && *t != '<') -+ continue; -+ -+ parsed = strv_split(t,WHITESPACE); -+ /* we ignore , not used, equivalent to X-Interactive */ -+ if (parsed && !startswith_no_case (parsed[0], "")) { -+ char *facility; -+ Unit *u; -+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) -+ continue; -+ if ((u = manager_get_unit(mgr, facility)) && (u->meta.type == UNIT_TARGET)) { -+ UnitDependency e; -+ char *dep = NULL, *name, **j; -+ -+ STRV_FOREACH (j, parsed+1) { -+ if (*j[0]=='+') { -+ e = UNIT_WANTS; -+ name = *j+1; -+ } -+ else { -+ e = UNIT_REQUIRES; -+ name = *j; -+ } -+ if (sysv_translate_facility(name, NULL, &dep) < 0) -+ continue; -+ -+ r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); -+ free(dep); -+ } -+ } -+ free(facility); -+ } -+ strv_free(parsed); -+ } -+finish: -+ if (f) -+ fclose(f); -+ -+} -+#endif -+ - static int service_enumerate(Manager *m) { - char **p; - unsigned i; -@@ -3116,6 +3182,10 @@ static int service_enumerate(Manager *m) { - - r = 0; - -+#ifdef TARGET_SUSE -+ sysv_facility_in_insserv_conf (m); -+#endif -+ - finish: - free(path); - free(fpath); --- -1.7.3.4 - diff --git a/localfs.service b/localfs.service new file mode 100644 index 00000000..d8ff1048 --- /dev/null +++ b/localfs.service @@ -0,0 +1,6 @@ +[Unit] +Description=Shadow /etc/init.d/boot.localfs + +[Service] +RemainAfterExit=true +ExecStart=/bin/true diff --git a/root-fsck.patch b/root-fsck.patch new file mode 100644 index 00000000..f9ca4f00 --- /dev/null +++ b/root-fsck.patch @@ -0,0 +1,25 @@ +From 687d70cc43b34eb2359598d0ca0b69e996aa1b38 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Wed, 3 Aug 2011 16:46:52 +0200 +Subject: [PATCH] units: detect SUSE initrd and do not run fsck on /. + +--- + units/fsck-root.service.in | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/units/fsck-root.service.in b/units/fsck-root.service.in +index 7b3529d..2f8c8f5 100644 +--- a/units/fsck-root.service.in ++++ b/units/fsck-root.service.in +@@ -13,6 +13,8 @@ Before=local-fs.target shutdown.target + + # Dracut informs us with this flag file if the root fsck was already run + ConditionPathExists=!/run/initramfs/root-fsck ++# Detect SUSE initrd too ++ConditionPathExists=!/dev/shm/initrd_exports.sh + + [Service] + Type=oneshot +-- +1.7.3.4 + diff --git a/systemd-32.tar.bz2 b/systemd-32.tar.bz2 deleted file mode 100644 index cf746355..00000000 --- a/systemd-32.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:714bd00ceb44639a675e8a7b7ee4f6bff42b70a442110c70e64ff41056828dae -size 877943 diff --git a/systemd-33.tar.bz2 b/systemd-33.tar.bz2 new file mode 100644 index 00000000..e014b2bd --- /dev/null +++ b/systemd-33.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0de8b842841859b329dec26ecb3d7c10f6616ef80a074192800315893e3d5c3d +size 879459 diff --git a/systemd.changes b/systemd.changes index 37ff80fb..3e8caacd 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com + +- Add root-fsck.patch: do not run fsck on / if it is rw +- Ship a non null localfs.service, fixes static mount points not + being mounted properly. + +------------------------------------------------------------------- +Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de + +- Update to version 33: + * optimizations and bugfixes. + * New PrivateNetwork= service setting which allows you to shut off + networking for a specific service (i.e. all routable network + interfaces will disappear for that service). + * Merged insserv-parsing.patch and bash-completion-restart.patch + patches. + ------------------------------------------------------------------- Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 2ec83934..e85217c7 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 32 +Version: 33 Release: 5 License: GPLv2+ Group: System/Base @@ -30,6 +30,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libudev-devel udev BuildRequires: dbus-1-devel BuildRequires: audit-devel +BuildRequires: gperf BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel @@ -46,16 +47,18 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc +Source2: localfs.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- read/parse insserv.conf (git) -Patch2: insserv-parsing.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com bnc704782 -- fix bash completion for restart command (git) -Patch3: bash-completion-restart.patch +# PATCH-FIX-UPSTREAM aj@suse.de gperf: Include missing.h +Patch2: gperf-missing.patch +# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't run fsck on rw / +Patch3: root-fsck.patch + %description Systemd is a system and service manager, compatible with SysV and LSB @@ -161,7 +164,7 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/lib/systemd/system/klog.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service -ln -s /dev/null %{buildroot}/lib/systemd/system/localfs.service +install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service From ac5c1e026ec980dbae8423f1cddbf6389e5558ba758d8f6e92d06e723b4e158c Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 4 Aug 2011 07:21:13 +0000 Subject: [PATCH 049/221] Autobuild autoformatter for 77911 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=50 --- systemd.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/systemd.spec b/systemd.spec index e85217c7..68c0413f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 5 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -59,7 +59,6 @@ Patch2: gperf-missing.patch # PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't run fsck on rw / Patch3: root-fsck.patch - %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization From 899738e284b1a6a9ea82213585f589a4c6ca7734e5d5267c20552517201ec347 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Sat, 6 Aug 2011 17:20:20 +0000 Subject: [PATCH 050/221] Accepting request 78055 from Base:System - Remove root-fsck.patch, mkinitrd will use the same path as dracut. - Add systemd-cryptsetup.patch: don't complain on "none" option in crypttab. - Add systemd-cryptsetup-query.patch: block boot until passphrase is typed. OBS-URL: https://build.opensuse.org/request/show/78055 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=51 --- root-fsck.patch | 25 ------------------------- systemd-cryptsetup-query.patch | 28 ++++++++++++++++++++++++++++ systemd-cryptsetup.patch | 25 +++++++++++++++++++++++++ systemd.changes | 10 ++++++++++ systemd.spec | 7 +++++-- 5 files changed, 68 insertions(+), 27 deletions(-) delete mode 100644 root-fsck.patch create mode 100644 systemd-cryptsetup-query.patch create mode 100644 systemd-cryptsetup.patch diff --git a/root-fsck.patch b/root-fsck.patch deleted file mode 100644 index f9ca4f00..00000000 --- a/root-fsck.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 687d70cc43b34eb2359598d0ca0b69e996aa1b38 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Wed, 3 Aug 2011 16:46:52 +0200 -Subject: [PATCH] units: detect SUSE initrd and do not run fsck on /. - ---- - units/fsck-root.service.in | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/units/fsck-root.service.in b/units/fsck-root.service.in -index 7b3529d..2f8c8f5 100644 ---- a/units/fsck-root.service.in -+++ b/units/fsck-root.service.in -@@ -13,6 +13,8 @@ Before=local-fs.target shutdown.target - - # Dracut informs us with this flag file if the root fsck was already run - ConditionPathExists=!/run/initramfs/root-fsck -+# Detect SUSE initrd too -+ConditionPathExists=!/dev/shm/initrd_exports.sh - - [Service] - Type=oneshot --- -1.7.3.4 - diff --git a/systemd-cryptsetup-query.patch b/systemd-cryptsetup-query.patch new file mode 100644 index 00000000..00f60c87 --- /dev/null +++ b/systemd-cryptsetup-query.patch @@ -0,0 +1,28 @@ +From d58446e4b3217f97baca7961154813a563ccdd19 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 4 Aug 2011 16:46:33 +0200 +Subject: [PATCH] cryptsetup-generator: block boot when querying passphrase. + +Ensure we wait for passphrase before starting tty1 or graphical display. +Needed when not using plymouth. +--- + src/cryptsetup-generator.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c +index a340218..6f3aa78 100644 +--- a/src/cryptsetup-generator.c ++++ b/src/cryptsetup-generator.c +@@ -112,7 +112,8 @@ static int create_disk( + "DefaultDependencies=no\n" + "BindTo=%s dev-mapper-%%i.device\n" + "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" +- "Before=umount.target\n", ++ "Before=umount.target\n" ++ "Before=local-fs.target\n", + d, d); + + if (!nofail) +-- +1.7.3.4 + diff --git a/systemd-cryptsetup.patch b/systemd-cryptsetup.patch new file mode 100644 index 00000000..7e02d279 --- /dev/null +++ b/systemd-cryptsetup.patch @@ -0,0 +1,25 @@ +From aa5f34f2109a02db7887c220c5a35b6a8ee3e6c8 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 4 Aug 2011 16:04:43 +0200 +Subject: [PATCH] cryptsetup: accept "none" option + +--- + src/cryptsetup.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/cryptsetup.c b/src/cryptsetup.c +index cf288de..ac7b6d6 100644 +--- a/src/cryptsetup.c ++++ b/src/cryptsetup.c +@@ -110,7 +110,7 @@ static int parse_one_option(const char *option) { + return 0; + } + +- } else ++ } else if (!streq(option, "none")) + log_error("Encountered unknown /etc/crypttab option '%s', ignoring.", option); + + return 0; +-- +1.7.3.4 + diff --git a/systemd.changes b/systemd.changes index 3e8caacd..c7a7547a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Aug 4 15:59:58 UTC 2011 - fcrozat@suse.com + +- Remove root-fsck.patch, mkinitrd will use the same path as + dracut. +- Add systemd-cryptsetup.patch: don't complain on "none" option in + crypttab. +- Add systemd-cryptsetup-query.patch: block boot until passphrase + is typed. + ------------------------------------------------------------------- Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 68c0413f..9fe933a0 100644 --- a/systemd.spec +++ b/systemd.spec @@ -56,8 +56,10 @@ Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # an exception will be silently removed with the next version update. # PATCH-FIX-UPSTREAM aj@suse.de gperf: Include missing.h Patch2: gperf-missing.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't run fsck on rw / -Patch3: root-fsck.patch +# PATCH-FIX-UPSTREAM fcrozat@suse.com -- accept none option in crypttab +Patch3: systemd-cryptsetup.patch +# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't set getty before passphrase is typed +Patch4: systemd-cryptsetup-query.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -118,6 +120,7 @@ Plymouth integration for systemd %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %build autoreconf -fiv From 82f4b6179ab0937480be330484ecbc14c8d57cfff1b40e645d29d3497c9d6b7a Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Sat, 6 Aug 2011 17:20:31 +0000 Subject: [PATCH 051/221] Autobuild autoformatter for 78055 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=52 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 9fe933a0..0b6a81e2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 1 +Release: 7 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From db279886e96e7981121c86d5d30ffd878a2dbc1161134bc40bdf615ad57ec84c Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 17 Aug 2011 08:42:14 +0000 Subject: [PATCH 052/221] Accepting request 79096 from Base:System Fix cycles that broke booting. OBS-URL: https://build.opensuse.org/request/show/79096 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=53 --- localfs.service | 2 ++ systemd.changes | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/localfs.service b/localfs.service index d8ff1048..da3facec 100644 --- a/localfs.service +++ b/localfs.service @@ -1,5 +1,7 @@ [Unit] Description=Shadow /etc/init.d/boot.localfs +DefaultDependencies=no +After=local-fs.target [Service] RemainAfterExit=true diff --git a/systemd.changes b/systemd.changes index c7a7547a..47fc09ae 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 16 17:02:27 UTC 2011 - fcrozat@suse.com + +- Fix localfs.service to no cause cycle and starts it after + local-fs.target. + ------------------------------------------------------------------- Thu Aug 4 15:59:58 UTC 2011 - fcrozat@suse.com From d3a3b003060cc0d59ed803360159f6b70a56c5dd332671a263e11d06cf9250c7 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Wed, 17 Aug 2011 08:42:22 +0000 Subject: [PATCH 053/221] Autobuild autoformatter for 79096 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=54 --- systemd.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 0b6a81e2..eba05e70 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 7 +Release: 9 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -105,6 +105,7 @@ Drop-in replacement of System V init tools. %if %{build_plymouth} %package plymouth + License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd From ba2c6efcabd927d39b98f00d87dec9d5fce0976324f9b07097bb3b3a50411ab1 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 18 Aug 2011 09:48:40 +0000 Subject: [PATCH 054/221] Accepting request 79200 from Base:System Fix crash with systemctl enable. (forwarded request 79198 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/79200 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=55 --- fix-crash.patch | 19 +++++++++++++++++++ systemd.changes | 5 +++++ systemd.spec | 3 +++ 3 files changed, 27 insertions(+) create mode 100644 fix-crash.patch diff --git a/fix-crash.patch b/fix-crash.patch new file mode 100644 index 00000000..76ee6041 --- /dev/null +++ b/fix-crash.patch @@ -0,0 +1,19 @@ +commit e191553d1dc80cd6d65d05f0cb29f8967fab6983 +Author: Kay Sievers +Date: Wed Aug 17 19:38:07 2011 +0200 + + convert int to boolean for dbus_bool_t + +diff --git a/src/dbus-manager.c b/src/dbus-manager.c +index ae88895..cfc2afc 100644 +--- a/src/dbus-manager.c ++++ b/src/dbus-manager.c +@@ -444,7 +444,7 @@ static DBusMessage *message_from_file_changes( + if (carries_install_info >= 0) { + dbus_bool_t b; + +- b = carries_install_info; ++ b = !!carries_install_info; + if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_BOOLEAN, &b)) + goto oom; + } diff --git a/systemd.changes b/systemd.changes index 47fc09ae..50126bea 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Aug 18 07:31:12 UTC 2011 - aj@suse.de + +- Fix crash with systemctl enable. + ------------------------------------------------------------------- Tue Aug 16 17:02:27 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index eba05e70..3292dedf 100644 --- a/systemd.spec +++ b/systemd.spec @@ -60,6 +60,8 @@ Patch2: gperf-missing.patch Patch3: systemd-cryptsetup.patch # PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't set getty before passphrase is typed Patch4: systemd-cryptsetup-query.patch +# PATCH-FIX-UPSTREAM aj@suse.com -- fix crash on systemctl enable +Patch5: fix-crash.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -122,6 +124,7 @@ Plymouth integration for systemd %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 %build autoreconf -fiv From c636adfb211fff77569fa711153cccd9282b2641b70a48d564f0b30b63e1441f Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 18 Aug 2011 09:48:48 +0000 Subject: [PATCH 055/221] Autobuild autoformatter for 79200 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=56 --- systemd.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 3292dedf..899b1da5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 9 +Release: 11 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -108,6 +108,7 @@ Drop-in replacement of System V init tools. %package plymouth + License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd From ac26c95d2712463e30582936c431262675514dacc79b64fec964eafb6df8214b Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 19 Aug 2011 10:27:05 +0000 Subject: [PATCH 056/221] Accepting request 79298 from Base:System - enable pam_systemd module, using pam-config. OBS-URL: https://build.opensuse.org/request/show/79298 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=57 --- systemd.changes | 5 +++++ systemd.spec | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/systemd.changes b/systemd.changes index 50126bea..54376ba8 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Aug 19 08:15:15 UTC 2011 - fcrozat@suse.com + +- enable pam_systemd module, using pam-config. + ------------------------------------------------------------------- Thu Aug 18 07:31:12 UTC 2011 - aj@suse.de diff --git a/systemd.spec b/systemd.spec index 899b1da5..f126b5e8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -43,6 +43,7 @@ Requires: udev >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux >= 2.19 +Requires: pam-config Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 @@ -183,6 +184,7 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se %endif %post +/usr/sbin/pam-config -a --systemd || : /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : /sbin/ldconfig @@ -205,9 +207,12 @@ fi %postun /sbin/ldconfig -if [ $1 -ge 1 ] ; then +if [ $1 -ge 1 ]; then /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi +if [ $1 -eq 0 ]; then + /usr/sbin/pam-config -d --systemd || : +fi %preun if [ $1 -eq 0 ]; then From 0b609519516ca68e9ae2286d7d4993f16a4cbe2ebdd2dc1528ad771f15d41e2d Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 19 Aug 2011 10:27:15 +0000 Subject: [PATCH 057/221] Autobuild autoformatter for 79298 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=58 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index f126b5e8..2863345e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 11 +Release: 13 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 11df4c4a7c53a524b75d349dd7a51502494a18fea7967982a4a30935b31997c2 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 25 Aug 2011 08:07:26 +0000 Subject: [PATCH 058/221] Accepting request 79689 from Base:System - Add tty1.patch: ensure passphrase are handled before starting gettty on tty1. - Add inittab generator, creating default.target at startup based on /etc/inittab value. - No longer try to create /etc/systemd/system/default.target at initial package install (bnc#707418) - Fix configuration path used for systemd user manager. - Ensure pam-config output is no display in install script. - Remove buildrequires on vala, no longer needed. - Handle disable_capslock, compose table and kbd_rate - Add rpm macros.systemd file. - Do not disable klogd, it has its own service now. - Handle kexec correctly (bnc#671673). - Disable preload services, they are conflicting with systemd. OBS-URL: https://build.opensuse.org/request/show/79689 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=59 --- ...aplock-and-compose_table-and-kbd_rat.patch | 180 ++++++++++++++++++ ...r-kexec_loaded-when-reboot-is-reques.patch | 82 ++++++++ ...tor-etc-systemd-user-for-user-manage.patch | 25 +++ macros.systemd | 99 ++++++++++ systemd-inittab | 8 + systemd-sysv-convert | 148 ++++++++++++++ systemd.changes | 22 +++ systemd.spec | 46 +++-- tty1.patch | 13 ++ 9 files changed, 610 insertions(+), 13 deletions(-) create mode 100644 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch create mode 100644 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch create mode 100644 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch create mode 100644 macros.systemd create mode 100644 systemd-inittab create mode 100644 systemd-sysv-convert create mode 100644 tty1.patch diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch new file mode 100644 index 00000000..0dc96ceb --- /dev/null +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -0,0 +1,180 @@ +From e183dbe195058ef921c4bd9760dc3631b425dd92 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 18 Aug 2011 18:28:01 +0200 +Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate + +--- + src/vconsole-setup.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 files changed, 90 insertions(+), 3 deletions(-) + +diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c +index 4347a20..28dc1d9 100644 +--- a/src/vconsole-setup.c ++++ b/src/vconsole-setup.c +@@ -39,6 +39,7 @@ + #include "util.h" + #include "log.h" + #include "macro.h" ++#include "strv.h" + + static bool is_vconsole(int fd) { + unsigned char data[1]; +@@ -78,8 +79,8 @@ static int disable_utf8(int fd) { + return r; + } + +-static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) { +- const char *args[8]; ++static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, const char *compose_table, pid_t *_pid) { ++ const char *args[1024]; + int i = 0; + pid_t pid; + +@@ -98,6 +99,35 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle, + args[i++] = map; + if (map_toggle) + args[i++] = map_toggle; ++ if (disable_capslock) ++ args[i++] = "disable.capslock"; ++ if (compose_table) { ++ char **strv_compose_table = NULL; ++ ++ strv_compose_table = strv_split(compose_table, WHITESPACE); ++ if (strv_compose_table) { ++ bool compose_loaded = false; ++ bool compose_clear = false; ++ char **name; ++ char *arg; ++ ++ STRV_FOREACH (name, strv_compose_table) { ++ if (streq(*name,"-c") || streq(*name,"clear")) { ++ compose_clear = true; ++ continue; ++ } ++ if (!compose_loaded) { ++ if (compose_clear) ++ args[i++] = "-c"; ++ } ++ asprintf(&arg, "compose.%s",*name); ++ compose_loaded = true; ++ args[i++] = arg; ++ ++ } ++ } ++ strv_free(strv_compose_table); ++ } + args[i++] = NULL; + + if ((pid = fork()) < 0) { +@@ -149,6 +179,42 @@ static int load_font(const char *vc, const char *font, const char *map, const ch + return 0; + } + ++#ifdef TARGET_SUSE ++static int set_kbd_rate(const char *vc, const char *kbd_rate, const char *kbd_delay, pid_t *_pid) { ++ const char *args[7]; ++ int i = 0; ++ pid_t pid; ++ ++ if (isempty(kbd_rate) && isempty(kbd_delay)) { ++ *_pid = 0; ++ return 0; ++ } ++ ++ args[i++] = "/bin/kbdrate"; ++ if (!isempty(kbd_rate)) { ++ args[i++] = "-r"; ++ args[i++] = kbd_rate; ++ } ++ if (!isempty(kbd_delay)) { ++ args[i++] = "-d"; ++ args[i++] = kbd_delay; ++ } ++ args[i++] = "-s"; ++ args[i++] = NULL; ++ ++ if ((pid = fork()) < 0) { ++ log_error("Failed to fork: %m"); ++ return -errno; ++ } else if (pid == 0) { ++ execv(args[0], (char **) args); ++ _exit(EXIT_FAILURE); ++ } ++ ++ *_pid = pid; ++ return 0; ++} ++#endif ++ + int main(int argc, char **argv) { + const char *vc; + char *vc_keymap = NULL; +@@ -156,14 +222,22 @@ int main(int argc, char **argv) { + char *vc_font = NULL; + char *vc_font_map = NULL; + char *vc_font_unimap = NULL; ++ char *vc_compose_table = NULL; + #ifdef TARGET_GENTOO + char *vc_unicode = NULL; + #endif + #ifdef TARGET_MANDRIVA + char *vc_keytable = NULL; + #endif ++#ifdef TARGET_SUSE ++ char *vc_kbd_delay = NULL; ++ char *vc_kbd_rate = NULL; ++ char *vc_kbd_disable_caps_lock = NULL; ++ pid_t kbd_rate_pid = 0; ++#endif + int fd = -1; + bool utf8; ++ bool disable_capslock = false; + int r = EXIT_FAILURE; + pid_t font_pid = 0, keymap_pid = 0; + +@@ -268,6 +342,10 @@ int main(int argc, char **argv) { + #elif defined(TARGET_SUSE) + if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, + "KEYTABLE", &vc_keymap, ++ "KBD_DELAY", &vc_kbd_delay, ++ "KBD_RATE", &vc_kbd_rate, ++ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "COMPOSETABLE", &vc_compose_table, + NULL)) < 0) { + + if (r != -ENOENT) +@@ -283,6 +361,7 @@ int main(int argc, char **argv) { + if (r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + } ++ disable_capslock = strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; + + #elif defined(TARGET_ARCH) + if ((r = parse_env_file("/etc/rc.conf", NEWLINE, +@@ -439,7 +518,10 @@ int main(int argc, char **argv) { + if (!utf8) + disable_utf8(fd); + +- if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && ++ if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, vc_compose_table, &keymap_pid) >= 0 && ++#ifdef TARGET_SUSE ++ set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && ++#endif + load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) + r = EXIT_SUCCESS; + +@@ -447,6 +529,11 @@ finish: + if (keymap_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); + ++#ifdef TARGET_SUSE ++ if (kbd_rate_pid > 0) ++ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); ++#endif ++ + if (font_pid > 0) + wait_for_terminate_and_warn(KBD_SETFONT, font_pid); + +-- +1.7.3.4 + diff --git a/0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch b/0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch new file mode 100644 index 00000000..cda7b578 --- /dev/null +++ b/0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch @@ -0,0 +1,82 @@ +From b1e304bb59e1a80abacfd6f0377ae14c3c1a10cc Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Mon, 22 Aug 2011 14:58:50 +0200 +Subject: [PATCH] initctl: check for kexec_loaded when reboot is requested through initctl + +--- + src/initctl.c | 2 ++ + src/systemctl.c | 12 ------------ + src/util.c | 12 ++++++++++++ + src/util.h | 2 ++ + 4 files changed, 16 insertions(+), 12 deletions(-) + +diff --git a/src/initctl.c b/src/initctl.c +index f36f1cc..eaa717a 100644 +--- a/src/initctl.c ++++ b/src/initctl.c +@@ -93,6 +93,8 @@ static const char *translate_runlevel(int runlevel, bool *isolate) { + for (i = 0; i < ELEMENTSOF(table); i++) + if (table[i].runlevel == runlevel) { + *isolate = table[i].isolate; ++ if (runlevel == '6' && kexec_loaded()) ++ return SPECIAL_KEXEC_TARGET; + return table[i].special; + } + +diff --git a/src/systemctl.c b/src/systemctl.c +index bb998d3..0ff9221 100644 +--- a/src/systemctl.c ++++ b/src/systemctl.c +@@ -4403,18 +4403,6 @@ static int parse_time_spec(const char *t, usec_t *_u) { + return 0; + } + +-static bool kexec_loaded(void) { +- bool loaded = false; +- char *s; +- +- if (read_one_line_file("/sys/kernel/kexec_loaded", &s) >= 0) { +- if (s[0] == '1') +- loaded = true; +- free(s); +- } +- return loaded; +-} +- + static int shutdown_parse_argv(int argc, char *argv[]) { + + enum { +diff --git a/src/util.c b/src/util.c +index 8d54049..247156d 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -5680,3 +5680,15 @@ static const char *const signal_table[] = { + }; + + DEFINE_STRING_TABLE_LOOKUP(signal, int); ++ ++bool kexec_loaded(void) { ++ bool loaded = false; ++ char *s; ++ ++ if (read_one_line_file("/sys/kernel/kexec_loaded", &s) >= 0) { ++ if (s[0] == '1') ++ loaded = true; ++ free(s); ++ } ++ return loaded; ++} +diff --git a/src/util.h b/src/util.h +index 407160d..8b31e5b 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -497,4 +497,6 @@ int signal_from_string_try_harder(const char *s); + extern int saved_argc; + extern char **saved_argv; + ++bool kexec_loaded(void); ++ + #endif +-- +1.7.3.4 + diff --git a/0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch b/0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch new file mode 100644 index 00000000..654485f4 --- /dev/null +++ b/0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch @@ -0,0 +1,25 @@ +From 1cf32c016f97b2c99d7df06ce5d5b858f86c507a Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Wed, 24 Aug 2011 13:39:06 +0200 +Subject: [PATCH] path-lookup: monitor /etc/systemd/user for user manager + +--- + src/path-lookup.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/path-lookup.c b/src/path-lookup.c +index bed9175..5f5ad8c 100644 +--- a/src/path-lookup.c ++++ b/src/path-lookup.c +@@ -209,7 +209,7 @@ int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as, bool personal + * the arrays in user_dirs() above! */ + "/run/systemd/user", + USER_CONFIG_UNIT_PATH, +- "/etc/systemd/system", ++ "/etc/systemd/user", + "/usr/local/lib/systemd/user", + "/usr/local/share/systemd/user", + USER_DATA_UNIT_PATH, +-- +1.7.3.4 + diff --git a/macros.systemd b/macros.systemd new file mode 100644 index 00000000..363fb9ff --- /dev/null +++ b/macros.systemd @@ -0,0 +1,99 @@ +# RPM macros for packages installing systemd unit files +# +### +# +# When a package install systemd unit files, it should use the following macros: +# +# add %systemd_requires in the specfile +# +# %post +# %service_add demo.service demo1.service +# +# %preun +# %service_del_preun demo.service +# +# %postun +# %service_del_postun demo.service +# +# +# when migrating a package from sysvinit to systemd : +# %triggerun -- package_name < version_where_switch_occured +# %service_migrate_to_systemd [ -l run_level ] service_name.service +# foobar.socket +# +# -l is optional +### + +# This is for /bin/systemctl +%systemd_requires \ +Requires(pre): systemd \ +Requires(post): systemd \ +Requires(preun): systemd \ +Requires(postun): systemd \ + +%_unitdir /lib/systemd/system + +# On install, tell systemd to reload its unit files +%service_add() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +if [ $FIRST_ARG -eq 1 ]; then \ +# Initial installation \ + /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ +fi + +# On uninstall, disable and stop services +%service_del_preun() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +if [ $FIRST_ARG -eq 0 ]; then \ +# Package removal, not upgrade \ + /bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + /bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ +fi + +# On uninstall, tell systemd to reload its unit files +%service_del_postun() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ +if [ $FIRST_ARG -ge 1 ]; then \ +# Package upgrade, not uninstall \ + /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ +fi + +%service_migrate_to_systemd_pre() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +# disable migration if initial install under systemd \ +if [ $FIRST_ARG -eq 1 ]; then \ + for service in %{?*} ; do \ + touch "/var/lib/systemd/migrated/$service" \ + done \ +else \ + for service in %{?*} ; do \ + if [ ! -e "/var/lib/systemd/migrated/$service" ]; then \ + services_to_migrate="$services_to_migrate $service" \ + fi \ + done \ + if [ -n "$services_to_migrate" ]; then \ + /usr/sbin/systemd-sysv-convert --save $services_to_migrate >/dev/null 2>&1 || : \ + fi \ +fi + +%service_migrate_to_systemd_post() \ +for service in %{?*} ; do \ + if [ ! -e "/var/lib/systemd/migrated/$service" ]; then \ + services_to_migrate="$services_to_migrate $service" \ + touch "/var/lib/systemd/migrated/$service" \ + fi \ +done \ +if [ -n "$services_to_migrate" ]; then \ + /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ + /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ +fi \ + +%service_migrate_to_systemd_postun() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +if [ $FIRST_ARG -eq 0 ]; then \ + for service in %{?*} ; do \ + rm -f "/var/lib/systemd/migrated/$service" 2> /dev/null \ + done \ +fi + diff --git a/systemd-inittab b/systemd-inittab new file mode 100644 index 00000000..7fc3de96 --- /dev/null +++ b/systemd-inittab @@ -0,0 +1,8 @@ +#!/bin/bash +# Try to read default runlevel from the old inittab if it exists +runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) +if [ -n "$runlevel" -a -e /lib/systemd/system/runlevel$runlevel.target ] ; then + /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target $1/default.target 2>&1 && exit 0 +fi +#failsafe +/bin/ln -sf /lib/systemd/system/graphical.target $1/default.target diff --git a/systemd-sysv-convert b/systemd-sysv-convert new file mode 100644 index 00000000..1cf2b025 --- /dev/null +++ b/systemd-sysv-convert @@ -0,0 +1,148 @@ +#!/usr/bin/python +# -*- Mode: Python; python-indent: 8; indent-tabs-mode: t -*- + +import sys, os, argparse, errno + +def find_service(service, runlevel): + priority = -1 + + for l in os.listdir("/etc/rc.d/rc%i.d" % runlevel): + if len(l) < 4: + continue + + if l[0] != 'S' or l[3:] != service: + continue + + p = int(l[1:3]) + + if p >= 0 and p <= 99 and p >= priority: + priority = p; + + return priority + +def lookup_database(services): + try: + database = open("/var/lib/systemd/sysv-convert/database", "r") + except IOError, e: + if e.errno != errno.ENOENT: + raise e + + return {} + + found = {} + k = 0 + + for line in database: + service, r, p = line.strip().split("\t", 3) + k += 1 + + try: + runlevel = int(r) + priority = int(p) + except ValueError, e: + sys.stderr.write("Failed to parse database line %i. Ignoring." % k) + continue + + if runlevel not in (2, 3, 4, 5): + sys.stderr.write("Runlevel out of bounds in database line %i. Ignoring." % k) + continue + + if priority < 0 or priority > 99: + sys.stderr.write("Priority out of bounds in database line %i. Ignoring." % k) + continue + + if service not in services: + continue + + if service not in found: + found[service] = {} + + if runlevel not in found[service] or found[service][runlevel] < priority: + found[service][runlevel] = priority + + return found + +def mkdir_p(path): + try: + os.makedirs(path, 0755) + except OSError, e: + if e.errno != errno.EEXIST: + raise e + +if os.geteuid() != 0: + sys.stderr.write("Need to be root.\n") + sys.exit(1) + +parser = argparse.ArgumentParser(description='Save and Restore SysV Service Runlevel Information') + +parser.add_argument('services', metavar='SERVICE', type=str, nargs='+', + help='Service names') + +parser.add_argument('--save', dest='save', action='store_const', + const=True, default=False, + help='Save SysV runlevel information for one or more services') + +parser.add_argument('--show', dest='show', action='store_const', + const=True, default=False, + help='Show saved SysV runlevel information for one or more services') + +parser.add_argument('--apply', dest='apply', action='store_const', + const=True, default=False, + help='Apply saved SysV runlevel information for one or more services to systemd counterparts') + +a = parser.parse_args() + +if a.save: + for service in a.services: + if not os.access("/etc/init.d/%s" % service, os.F_OK): + sys.stderr.write("SysV service %s does not exist.\n" % service) + sys.exit(1) + + mkdir_p("/var/lib/systemd/sysv-convert") + database = open("/var/lib/systemd/sysv-convert/database", "a") + + for runlevel in (2, 3, 4, 5): + priority = find_service(service, runlevel) + + if priority >= 0: + database.write("%s\t%s\t%s\n" % (service, runlevel, priority)) + +elif a.show: + found = lookup_database(a.services) + + if len(found) <= 0: + sys.stderr.write("No information about passed services found.\n") + sys.exit(1) + + for service, data in found.iteritems(): + for runlevel, priority in data.iteritems(): + sys.stdout.write("SysV service %s enabled in runlevel %s at priority %s\n" % (service, runlevel, priority)) + +elif a.apply: + for service in a.services: + if not os.access("/lib/systemd/system/%s.service" % service, os.F_OK): + sys.stderr.write("systemd service %s.service does not exist.\n" % service) + sys.exit(1) + + found = lookup_database(a.services) + + if len(found) <= 0: + sys.stderr.write("No information about passed services found.\n") + sys.exit(1) + + for service, data in found.iteritems(): + for runlevel in data.iterkeys(): + + sys.stderr.write("ln -sf /lib/systemd/system/%s.service /etc/systemd/system/runlevel%i.target.wants/%s.service\n" % (service, runlevel, service)) + + mkdir_p("/etc/systemd/system/runlevel%i.target.wants" % runlevel) + + try: + os.symlink("/lib/systemd/system/%s.service" % service, + "/etc/systemd/system/runlevel%i.target.wants/%s.service" % (runlevel, service)) + except OSError, e: + if e.errno != errno.EEXIST: + raise e + +else: + parser.print_help() diff --git a/systemd.changes b/systemd.changes index 54376ba8..7c1712a7 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Aug 24 13:02:12 UTC 2011 - fcrozat@novell.com + +- Add tty1.patch: ensure passphrase are handled before starting + gettty on tty1. +- Add inittab generator, creating default.target at startup based + on /etc/inittab value. +- No longer try to create /etc/systemd/system/default.target at + initial package install (bnc#707418) +- Fix configuration path used for systemd user manager. +- Ensure pam-config output is no display in install script. +- Remove buildrequires on vala, no longer needed. + +------------------------------------------------------------------- +Fri Aug 19 15:29:49 UTC 2011 - fcrozat@suse.com + +- Handle disable_capslock, compose table and kbd_rate +- Add rpm macros.systemd file. +- Do not disable klogd, it has its own service now. +- Handle kexec correctly (bnc#671673). +- Disable preload services, they are conflicting with systemd. + ------------------------------------------------------------------- Fri Aug 19 08:15:15 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 2863345e..a47ee755 100644 --- a/systemd.spec +++ b/systemd.spec @@ -36,7 +36,7 @@ BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config -BuildRequires: gtk2-devel libnotify-devel libxslt-devel vala +BuildRequires: gtk2-devel libnotify-devel libxslt-devel BuildRequires: libselinux-devel libsepol-devel BuildRequires: intltool Requires: udev >= 172 @@ -49,7 +49,14 @@ Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc Source2: localfs.service +Source3: systemd-sysv-convert +Source4: macros.systemd +Source5: systemd-inittab Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch +# handle SUSE specific kbd settings +Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +# don't start getty on tty1 until all password request are done +Patch8: tty1.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -63,6 +70,10 @@ Patch3: systemd-cryptsetup.patch Patch4: systemd-cryptsetup-query.patch # PATCH-FIX-UPSTREAM aj@suse.com -- fix crash on systemctl enable Patch5: fix-crash.patch +# PATCH-FIX-UPSTREAM fcrozat@suse.com bnc671673 -- fix kexec support +Patch7: 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch +# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't look for system manager configuration when running user manager +Patch9: 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -127,6 +138,10 @@ Plymouth integration for systemd %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 %build autoreconf -fiv @@ -139,14 +154,16 @@ export V=1 --docdir=%{_docdir}/systemd \ --with-rootdir= \ CFLAGS="%{optflags}" -# rebuild due to libnotify 0.7 in factory -touch *.vala */*.vala make %{?_smp_mflags} %install %makeinstall +mkdir -p %{buildroot}%{_sysconfdir}/rpm +install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' -mkdir -p %{buildroot}/sbin +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} +install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert +install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt @@ -156,6 +173,7 @@ ln -s ../bin/systemctl %{buildroot}/sbin/telinit ln -s ../bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target +rm -f %{buildroot}/lib/systemd/system/default.target %if !%{build_plymouth} rm -f %{buildroot}/lib/systemd/system/plymouth-*.service rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-*.service @@ -169,7 +187,6 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service -ln -s /dev/null %{buildroot}/lib/systemd/system/klog.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service @@ -177,6 +194,9 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service ln -s /dev/null %{buildroot}/lib/systemd/system/swap.service +ln -s /dev/null %{buildroot}/lib/systemd/system/startpreload.service +ln -s /dev/null %{buildroot}/lib/systemd/system/stoppreload.service +ln -s /dev/null %{buildroot}/lib/systemd/system/earlyxdm.service ln -s systemd-sysctl.service %{buildroot}/lib/systemd/system/sysctl.service ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.service %if %{build_plymouth} @@ -184,19 +204,14 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se %endif %post -/usr/sbin/pam-config -a --systemd || : +/usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : +/sbin/ldconfig /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : -/sbin/ldconfig # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then - # Try to read default runlevel from the old inittab if it exists - runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) - if [ -n "$runlevel" ] ; then - /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : - fi # Enable these services by default. /bin/systemctl enable \ getty@.service \ @@ -211,7 +226,7 @@ if [ $1 -ge 1 ]; then /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi if [ $1 -eq 0 ]; then - /usr/sbin/pam-config -d --systemd || : + /usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || : fi %preun @@ -240,6 +255,7 @@ rm -rf %{buildroot} /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge /usr/bin/systemd-analyze +%{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_bindir}/systemd-cgls @@ -313,6 +329,10 @@ rm -rf %{buildroot} %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/bash_completion.d /etc/bash_completion.d/systemctl-bash-completion.sh +/etc/rpm/macros.systemd +%dir /var/lib/systemd +%dir /var/lib/systemd/sysv-convert +%dir /var/lib/systemd/migrated %files gtk %defattr(-,root,root,-) diff --git a/tty1.patch b/tty1.patch new file mode 100644 index 00000000..938066fd --- /dev/null +++ b/tty1.patch @@ -0,0 +1,13 @@ +Index: systemd-29/units/systemd-ask-password-wall.service.in +=================================================================== +--- systemd-29.orig/units/systemd-ask-password-wall.service.in ++++ systemd-29/units/systemd-ask-password-wall.service.in +@@ -7,7 +7,7 @@ + + [Unit] + Description=Forward Password Requests to Wall +-After=systemd-user-sessions.service ++After=systemd-user-sessions.service getty@tty1.service + + [Service] + ExecStartPre=-@rootbindir@/systemctl stop systemd-ask-password-console.path systemd-ask-password-console.service From f6939f6b90d44f2b5b0d53c4ff5a3bbd9530dfcef405456662550d4d46faba12 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Thu, 25 Aug 2011 08:07:35 +0000 Subject: [PATCH 059/221] Autobuild autoformatter for 79689 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=60 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index a47ee755..84dda41e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 13 +Release: 15 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From 64328f27d59110cd4c3062430f7d7d01eac9152862e2e9a178d36a63c87549f0 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 29 Aug 2011 07:14:27 +0000 Subject: [PATCH 060/221] Accepting request 79875 from Base:System - Update compose_table patch to use two separate loadkeys call, compose table overflows otherwise (spotted by Werner Fink). OBS-URL: https://build.opensuse.org/request/show/79875 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=61 --- ...aplock-and-compose_table-and-kbd_rat.patch | 123 +++++++++++------- systemd.changes | 6 + 2 files changed, 80 insertions(+), 49 deletions(-) diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch index 0dc96ceb..cfd57c0a 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -1,14 +1,14 @@ -From e183dbe195058ef921c4bd9760dc3631b425dd92 Mon Sep 17 00:00:00 2001 +From 07f0fb4424105c0e90e2add79efe48109b6c9fd1 Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Thu, 18 Aug 2011 18:28:01 +0200 Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate --- - src/vconsole-setup.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++-- - 1 files changed, 90 insertions(+), 3 deletions(-) + src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 121 insertions(+), 3 deletions(-) diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c -index 4347a20..28dc1d9 100644 +index 4347a20..af558ef 100644 --- a/src/vconsole-setup.c +++ b/src/vconsole-setup.c @@ -39,6 +39,7 @@ @@ -25,52 +25,79 @@ index 4347a20..28dc1d9 100644 -static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) { - const char *args[8]; -+static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, const char *compose_table, pid_t *_pid) { -+ const char *args[1024]; ++static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, pid_t *_pid) { ++ const char *args[9]; int i = 0; pid_t pid; -@@ -98,6 +99,35 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle, +@@ -98,6 +99,8 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle, args[i++] = map; if (map_toggle) args[i++] = map_toggle; + if (disable_capslock) + args[i++] = "disable.capslock"; -+ if (compose_table) { -+ char **strv_compose_table = NULL; -+ -+ strv_compose_table = strv_split(compose_table, WHITESPACE); -+ if (strv_compose_table) { -+ bool compose_loaded = false; -+ bool compose_clear = false; -+ char **name; -+ char *arg; -+ -+ STRV_FOREACH (name, strv_compose_table) { -+ if (streq(*name,"-c") || streq(*name,"clear")) { -+ compose_clear = true; -+ continue; -+ } -+ if (!compose_loaded) { -+ if (compose_clear) -+ args[i++] = "-c"; -+ } -+ asprintf(&arg, "compose.%s",*name); -+ compose_loaded = true; -+ args[i++] = arg; -+ -+ } -+ } -+ strv_free(strv_compose_table); -+ } args[i++] = NULL; if ((pid = fork()) < 0) { -@@ -149,6 +179,42 @@ static int load_font(const char *vc, const char *font, const char *map, const ch +@@ -149,6 +152,96 @@ static int load_font(const char *vc, const char *font, const char *map, const ch return 0; } +#ifdef TARGET_SUSE ++static int load_compose_table(const char *vc, const char *compose_table, pid_t *_pid) { ++ const char *args[1024]; ++ int i = 0; ++ pid_t pid; ++ char **strv_compose_table = NULL; ++ ++ if (isempty(compose_table)) { ++ /* An empty map means no compose table*/ ++ *_pid = 0; ++ return 0; ++ } ++ ++ args[i++] = KBD_LOADKEYS; ++ args[i++] = "-q"; ++ args[i++] = "-C"; ++ args[i++] = vc; ++ ++ strv_compose_table = strv_split(compose_table, WHITESPACE); ++ if (strv_compose_table) { ++ bool compose_loaded = false; ++ bool compose_clear = false; ++ char **name; ++ char *arg; ++ ++ STRV_FOREACH (name, strv_compose_table) { ++ if (streq(*name,"-c") || streq(*name,"clear")) { ++ compose_clear = true; ++ continue; ++ } ++ if (!compose_loaded) { ++ if (compose_clear) ++ args[i++] = "-c"; ++ } ++ asprintf(&arg, "compose.%s",*name); ++ compose_loaded = true; ++ args[i++] = arg; ++ ++ } ++ strv_free(strv_compose_table); ++ } ++ args[i++] = NULL; ++ ++ if ((pid = fork()) < 0) { ++ log_error("Failed to fork: %m"); ++ return -errno; ++ } else if (pid == 0) { ++ execv(args[0], (char **) args); ++ _exit(EXIT_FAILURE); ++ } ++ ++ *_pid = pid; ++ return 0; ++} ++ +static int set_kbd_rate(const char *vc, const char *kbd_rate, const char *kbd_delay, pid_t *_pid) { + const char *args[7]; + int i = 0; @@ -109,14 +136,7 @@ index 4347a20..28dc1d9 100644 int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -156,14 +222,22 @@ int main(int argc, char **argv) { - char *vc_font = NULL; - char *vc_font_map = NULL; - char *vc_font_unimap = NULL; -+ char *vc_compose_table = NULL; - #ifdef TARGET_GENTOO - char *vc_unicode = NULL; - #endif +@@ -162,8 +255,16 @@ int main(int argc, char **argv) { #ifdef TARGET_MANDRIVA char *vc_keytable = NULL; #endif @@ -124,7 +144,8 @@ index 4347a20..28dc1d9 100644 + char *vc_kbd_delay = NULL; + char *vc_kbd_rate = NULL; + char *vc_kbd_disable_caps_lock = NULL; -+ pid_t kbd_rate_pid = 0; ++ char *vc_compose_table = NULL; ++ pid_t kbd_rate_pid = 0, compose_table_pid = 0; +#endif int fd = -1; bool utf8; @@ -132,7 +153,7 @@ index 4347a20..28dc1d9 100644 int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -268,6 +342,10 @@ int main(int argc, char **argv) { +@@ -268,6 +369,10 @@ int main(int argc, char **argv) { #elif defined(TARGET_SUSE) if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, "KEYTABLE", &vc_keymap, @@ -143,7 +164,7 @@ index 4347a20..28dc1d9 100644 NULL)) < 0) { if (r != -ENOENT) -@@ -283,6 +361,7 @@ int main(int argc, char **argv) { +@@ -283,6 +388,7 @@ int main(int argc, char **argv) { if (r != -ENOENT) log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); } @@ -151,23 +172,27 @@ index 4347a20..28dc1d9 100644 #elif defined(TARGET_ARCH) if ((r = parse_env_file("/etc/rc.conf", NEWLINE, -@@ -439,7 +518,10 @@ int main(int argc, char **argv) { +@@ -439,7 +545,11 @@ int main(int argc, char **argv) { if (!utf8) disable_utf8(fd); - if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && -+ if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, vc_compose_table, &keymap_pid) >= 0 && ++ if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +#ifdef TARGET_SUSE ++ load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && + set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && +#endif load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -447,6 +529,11 @@ finish: +@@ -447,6 +557,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); +#ifdef TARGET_SUSE ++ if (compose_table_pid > 0) ++ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); ++ + if (kbd_rate_pid > 0) + wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); +#endif diff --git a/systemd.changes b/systemd.changes index 7c1712a7..61dccc8e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com + +- Update compose_table patch to use two separate loadkeys call, + compose table overflows otherwise (spotted by Werner Fink). + ------------------------------------------------------------------- Wed Aug 24 13:02:12 UTC 2011 - fcrozat@novell.com From dbab8eef9fa5654d2fab1f28d886eefed4bf569ddc229546a0ac22353ed351cd Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 29 Aug 2011 07:14:34 +0000 Subject: [PATCH 061/221] Autobuild autoformatter for 79875 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=62 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 84dda41e..f7b95c1b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 -Release: 15 +Release: 17 License: GPLv2+ Group: System/Base Summary: A System and Session Manager From c1c37027f1c77aaeaba4b8c2181af6cf538daed41fc18337c041f30167fc6182 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Mon, 5 Sep 2011 16:11:40 +0000 Subject: [PATCH 062/221] Accepting request 80666 from Base:System - Update to version 34: * Bugfixes * optionaly apply cgroup attributes to cgroups systemd creates * honour sticky bit when trimming cgroup trees * improve readahead - Add libacl-devel as BuildRequires (needed for systemd-uaccess) - Add some %{nil} to systemd.macros to fix some build issues. - Fix dbus assertion - move gtk part to its own package, to reduce bootstrapping (bnc#713981). old: openSUSE:Factory/systemd new: Base:System/systemd rev NoneIndex: macros.systemd =================================================================== --- macros.systemd (revision 62) +++ macros.systemd (revision 187) @@ -39,7 +39,8 @@ if [ $FIRST_ARG -eq 1 ]; then \ # Initial installation \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -fi +fi \ +%{nil} # On uninstall, disable and stop services %service_del_preun() \ @@ -48,7 +49,8 @@ # Package removal, not upgrade \ /bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ /bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ -fi +fi \ +%{nil} # On uninstall, tell systemd to reload its unit files %service_del_postun() \ @@ -57,7 +59,8 @@ if [ $FIRST_ARG -ge 1 ]; then \ # Package upgrade, not uninstall \ /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ -fi +fi \ +%{nil} %service_migrate_to_systemd_pre() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ @@ -75,7 +78,8 @@ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --save $services_to_migrate >/dev/null 2>&1 || : \ fi \ -fi +fi \ +%{nil} %service_migrate_to_systemd_post() \ for service in %{?*} ; do \ @@ -88,6 +92,7 @@ /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ fi \ +%{nil} %service_migrate_to_systemd_postun() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ @@ -95,5 +100,6 @@ for service in %{?*} ; do \ rm -f "/var/lib/systemd/migrated/$service" 2> /dev/null \ done \ -fi +fi \ +%{nil} Index: systemd.changes =================================================================== --- systemd.changes (revision 62) +++ systemd.changes (revision 187) @@ -1,4 +1,18 @@ ------------------------------------------------------------------- +Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com + +- Update to version 34: + * Bugfixes + * optionaly apply cgroup attributes to cgroups systemd creates + * honour sticky bit when trimming cgroup trees + * improve readahead +- Add libacl-devel as BuildRequires (needed for systemd-uaccess) +- Add some %{nil} to systemd.macros to fix some build issues. +- Fix dbus assertion +- move gtk part to its own package, to reduce bootstrapping + (bnc#713981). + +------------------------------------------------------------------- Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com - Update compose_table patch to use two separate loadkeys call, Index: systemd.spec =================================================================== --- systemd.spec (revision 62) +++ systemd.spec (revision 187) @@ -21,8 +21,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 33 -Release: 17 +Version: 34 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -32,11 +32,11 @@ BuildRequires: audit-devel BuildRequires: gperf BuildRequires: libcap-devel +BuildRequires: libacl-devel BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config -BuildRequires: gtk2-devel libnotify-devel libxslt-devel BuildRequires: libselinux-devel libsepol-devel BuildRequires: intltool Requires: udev >= 172 @@ -62,18 +62,7 @@ # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM aj@suse.de gperf: Include missing.h -Patch2: gperf-missing.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- accept none option in crypttab -Patch3: systemd-cryptsetup.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't set getty before passphrase is typed -Patch4: systemd-cryptsetup-query.patch -# PATCH-FIX-UPSTREAM aj@suse.com -- fix crash on systemctl enable -Patch5: fix-crash.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com bnc671673 -- fix kexec support -Patch7: 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't look for system manager configuration when running user manager -Patch9: 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch +Patch9: 0001-execute-fix-bus-serialization-for-commands.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -95,15 +84,6 @@ %description devel Development headers and auxiliary files for developing applications for systemd. -%package gtk -License: GPLv2+ -Group: System/Base -Summary: Graphical front-end for systemd -Requires: %{name} = %{version} - -%description gtk -Graphical front-end for systemd system and service manager. - %package sysvinit License: GPLv2+ Group: System/Base @@ -134,12 +114,7 @@ %prep %setup -q %patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 %patch6 -p1 -%patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -153,6 +128,7 @@ --with-distro=suse \ --docdir=%{_docdir}/systemd \ --with-rootdir= \ + --disable-gtk \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -185,6 +161,7 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/clock.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/lib/systemd/system/device-mapper.service ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service @@ -334,11 +311,6 @@ %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated -%files gtk -%defattr(-,root,root,-) -%{_bindir}/systemadm -%{_bindir}/systemd-gnome-ask-password-agent -%{_mandir}/man1/systemadm.1* %files devel %defattr(-,root,root,-) Index: 0001-execute-fix-bus-serialization-for-commands.patch =================================================================== --- 0001-execute-fix-bus-serialization-for-commands.patch (added) +++ 0001-execute-fix-bus-serialization-for-commands.patch (revision 187) @@ -0,0 +1,44 @@ +From 7daa9e6e29b546275566084512ea4e547bc79b91 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 29 Aug 2011 19:44:52 +0200 +Subject: [PATCH] execute: fix bus serialization for commands + +--- + src/dbus-execute.c | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/dbus-execute.c b/src/dbus-execute.c +index 6ceffc5..201f6b5 100644 +--- a/src/dbus-execute.c ++++ b/src/dbus-execute.c +@@ -308,13 +308,14 @@ int bus_execute_append_command(DBusMessageIter *i, const char *property, void *d + assert(i); + assert(property); + +- if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttuii)", &sub)) ++ if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttttuii)", &sub)) + return -ENOMEM; + + LIST_FOREACH(command, c, c) { + char **l; + uint32_t pid; + int32_t code, status; ++ dbus_bool_t b; + + if (!c->path) + continue; +@@ -332,8 +333,10 @@ int bus_execute_append_command(DBusMessageIter *i, const char *property, void *d + code = (int32_t) c->exec_status.code; + status = (int32_t) c->exec_status.status; + ++ b = !!c->ignore; ++ + if (!dbus_message_iter_close_container(&sub2, &sub3) || +- !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &c->ignore) || ++ !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &b) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.realtime) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.monotonic) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.exit_timestamp.realtime) || +-- +1.7.3.4 + Index: pre_checkin.sh =================================================================== --- pre_checkin.sh (added) +++ pre_checkin.sh (revision 187) @@ -0,0 +1,6 @@ +#!/bin/sh + +VERSION=`sed -e '/^Version:/!d' -e 's/Version: *//' systemd.spec` +RELEASE=`sed -e '/^Release:/!d' -e 's/Release: *//' systemd.spec` +sed -i -e "s,^\(Version:[ tab]*\).*,\1$VERSION," -e "s,^\(Release:[ tab]*\).*,\1$RELEASE," systemd-gtk.spec +cp systemd.changes systemd-gtk.changes Index: systemd-34.tar.bz2 =================================================================== Binary files systemd-34.tar.bz2 (revision 187) added Index: systemd-gtk.changes =================================================================== --- systemd-gtk.changes (added) +++ systemd-gtk.changes (revision 187) @@ -0,0 +1,1640 @@ +------------------------------------------------------------------- +Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com + +- Update to version 34: + * Bugfixes + * optionaly apply cgroup attributes to cgroups systemd creates + * honour sticky bit when trimming cgroup trees + * improve readahead +- Add libacl-devel as BuildRequires (needed for systemd-uaccess) +- Add some %{nil} to systemd.macros to fix some build issues. +- Fix dbus assertion +- move gtk part to its own package, to reduce bootstrapping + (bnc#713981). + +------------------------------------------------------------------- +Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com + +- Update compose_table patch to use two separate loadkeys call, + compose table overflows otherwise (spotted by Werner Fink). + +------------------------------------------------------------------- +Wed Aug 24 13:02:12 UTC 2011 - fcrozat@novell.com + +- Add tty1.patch: ensure passphrase are handled before starting + gettty on tty1. +- Add inittab generator, creating default.target at startup based + on /etc/inittab value. +- No longer try to create /etc/systemd/system/default.target at + initial package install (bnc#707418) +- Fix configuration path used for systemd user manager. +- Ensure pam-config output is no display in install script. +- Remove buildrequires on vala, no longer needed. + +------------------------------------------------------------------- +Fri Aug 19 15:29:49 UTC 2011 - fcrozat@suse.com + +- Handle disable_capslock, compose table and kbd_rate +- Add rpm macros.systemd file. +- Do not disable klogd, it has its own service now. +- Handle kexec correctly (bnc#671673). +- Disable preload services, they are conflicting with systemd. + +------------------------------------------------------------------- +Fri Aug 19 08:15:15 UTC 2011 - fcrozat@suse.com + +- enable pam_systemd module, using pam-config. + +------------------------------------------------------------------- +Thu Aug 18 07:31:12 UTC 2011 - aj@suse.de + +- Fix crash with systemctl enable. + +------------------------------------------------------------------- +Tue Aug 16 17:02:27 UTC 2011 - fcrozat@suse.com + +- Fix localfs.service to no cause cycle and starts it after + local-fs.target. + +------------------------------------------------------------------- +Thu Aug 4 15:59:58 UTC 2011 - fcrozat@suse.com + +- Remove root-fsck.patch, mkinitrd will use the same path as + dracut. +- Add systemd-cryptsetup.patch: don't complain on "none" option in + crypttab. +- Add systemd-cryptsetup-query.patch: block boot until passphrase + is typed. + +------------------------------------------------------------------- +Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com + +- Add root-fsck.patch: do not run fsck on / if it is rw +- Ship a non null localfs.service, fixes static mount points not + being mounted properly. + +------------------------------------------------------------------- +Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de + +- Update to version 33: + * optimizations and bugfixes. + * New PrivateNetwork= service setting which allows you to shut off + networking for a specific service (i.e. all routable network + interfaces will disappear for that service). + * Merged insserv-parsing.patch and bash-completion-restart.patch + patches. + +------------------------------------------------------------------- +Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com + +- Add insserv-parsing.patch: read/parse insserv.conf. +- Add bash-completion-restart.patch: fix restart service list + (bnc#704782). + +------------------------------------------------------------------- +Mon Aug 1 09:04:53 UTC 2011 - aj@suse.de + +- Split up devel package. +- restart logind after upgrade. +- Adjust rpmlintrc for changes. + +------------------------------------------------------------------- +Fri Jul 29 10:48:20 UTC 2011 - aj@suse.de + +- Update to version 32: + * bugfixes + * improve selinux setup + +------------------------------------------------------------------- +Thu Jul 28 07:27:32 UTC 2011 - aj@suse.de + +- Update to version 31: + * rewrite of enable/disable code: New features systemctl --runtime, + systemctl mask, systemctl link and presets. + * sd-daemon is now shared library. + +------------------------------------------------------------------- +Tue Jul 19 11:56:43 UTC 2011 - aj@suse.de + +- Update to version 30: + + Logic from pam_systemd has been moved to new systemd-login. + + VT gettys are autospawn only when needed + + Handle boot.local/halt.local on SUSE distribution + + add support for systemctl --root + +------------------------------------------------------------------- +Wed Jun 29 12:54:24 UTC 2011 - fcrozat@suse.com + +- Make sure to not start kbd initscript, it is handled by systemd + natively. + +------------------------------------------------------------------- +Fri Jun 17 09:34:24 UTC 2011 - fcrozat@novell.com + +- version 29: + + enable chkconfig support in systemctl for openSUSE. + + systemctl: plug a leak upon create_symlink mismatch + + mount /run without MS_NOEXEC + + dbus: fix name of capability property + + systemctl: fix double unref of a dbus message + + cryptsetup-generator: fix /etc/cryptsetup options + + selinux: selinuxfs can be mounted on /sys/fs/selinux + + readahead-common: fix total memory size detection + + systemctl: fix 'is-enabled' for native units under /lib + + systemctl: fix a FILE* leak + + pam-module: add debug= parameter + + remote-fs.target: do not order after network.target +- update tarball url. + +------------------------------------------------------------------- +Wed Jun 15 10:00:29 UTC 2011 - saschpe@suse.de + +- Use RPM macros instead of $RPM_FOO variables +- Don't require %{version}-%{release} of the base package, + %{version} is sufficient + +------------------------------------------------------------------- +Tue Jun 14 15:10:41 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - mount /run without MS_NOEXEC + - readahead-common: fix total memory size detection + - enable chkconfig support in systemctl for openSUSE + - selinux: selinuxfs can be mounted on /sys/fs/selinux + - cryptsetup-generator: fix /etc/cryptsetup options + - systemctl: fix double unref of a dbus message +- drop merged chkconfig patch + +------------------------------------------------------------------- +Tue Jun 14 12:39:25 UTC 2011 - fcrozat@novell.com + +- Add sysv chkconfig patch to be able to enable / disable sysv + initscripts with systemctl. +- Ensure plymouth support is buildable conditionnally. + +------------------------------------------------------------------- +Thu May 26 21:16:06 CEST 2011 - kay.sievers@novell.com + +- version 28 + - drop hwclock-save.service + - fix segfault when a DBus message has no interface + - man: update the list of unit search locations + - readahead-collect: ignore EACCES for fanotify + - rtc in localtime: use settimeofday(NULL, tz) + instead of hwclock(8) + +------------------------------------------------------------------- +Sat May 21 23:57:30 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - fix crash in D-Bus code + +------------------------------------------------------------------- +Sat May 21 18:17:59 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - socket: always use SO_{RCV,SND}BUFFORCE to allow larger values + - util: use new VT ESC sequence to clear scrollback buffer + - sd-daemon: move _sd_hidden_ from .h to .c file + - missing: add IP_TRANSPARENT (1441 more lines skipped) Index: systemd-gtk.spec =================================================================== --- systemd-gtk.spec (added) +++ systemd-gtk.spec (revision 187) @@ -0,0 +1,83 @@ +# +# spec file for package systemd-gtk +# +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: systemd-gtk +Url: http://www.freedesktop.org/wiki/Software/systemd +Version: 34 +Release: 1 +License: GPLv2+ +Group: System/Base +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: libudev-devel udev +BuildRequires: dbus-1-devel +BuildRequires: audit-devel +BuildRequires: gperf +BuildRequires: libcap-devel +BuildRequires: libacl-devel +BuildRequires: tcpd-devel +BuildRequires: pam-devel +BuildRequires: libcryptsetup-devel +BuildRequires: pkg-config +BuildRequires: libselinux-devel libsepol-devel +BuildRequires: intltool +BuildRequires: gtk2-devel libnotify-devel +Summary: Graphical front-end for systemd +Requires: systemd = %{version} +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.bz2 +Source1: systemd-rpmlintrc + +# Upstream First - Policy: +# Never add any patches to this package without the upstream commit id +# in the patch. Any patches added here without a very good reason to make +# an exception will be silently removed with the next version update. + +%description +Graphical front-end for systemd system and service manager. + +%prep +%setup -q -n systemd-%{version} + +%build +autoreconf -fiv +# prevent pre-generated and distributed files from re-building +find . -name "*.[1-8]" -exec touch '{}' \; +touch src/systemadm.c +export V=1 +%configure \ + --with-distro=suse \ + --docdir=%{_docdir}/systemd \ + --with-rootdir= \ + CFLAGS="%{optflags}" +make %{?_smp_mflags} + +%install +%makeinstall +# remove everything but systemadm and password agent +find %{buildroot} -not -type d -not -name 'systemadm*' -not -name systemd-gnome-ask-password-agent -delete + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%{_bindir}/systemadm +%{_bindir}/systemd-gnome-ask-password-agent +%{_mandir}/man1/systemadm.1* + +%changelog Index: 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch =================================================================== --- 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch (revision 62) +++ 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch (deleted) @@ -1,82 +0,0 @@ -From b1e304bb59e1a80abacfd6f0377ae14c3c1a10cc Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 22 Aug 2011 14:58:50 +0200 -Subject: [PATCH] initctl: check for kexec_loaded when reboot is requested through initctl - ---- - src/initctl.c | 2 ++ - src/systemctl.c | 12 ------------ - src/util.c | 12 ++++++++++++ - src/util.h | 2 ++ - 4 files changed, 16 insertions(+), 12 deletions(-) - -diff --git a/src/initctl.c b/src/initctl.c -index f36f1cc..eaa717a 100644 ---- a/src/initctl.c -+++ b/src/initctl.c -@@ -93,6 +93,8 @@ static const char *translate_runlevel(int runlevel, bool *isolate) { - for (i = 0; i < ELEMENTSOF(table); i++) - if (table[i].runlevel == runlevel) { - *isolate = table[i].isolate; -+ if (runlevel == '6' && kexec_loaded()) -+ return SPECIAL_KEXEC_TARGET; - return table[i].special; - } - -diff --git a/src/systemctl.c b/src/systemctl.c -index bb998d3..0ff9221 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -4403,18 +4403,6 @@ static int parse_time_spec(const char *t, usec_t *_u) { - return 0; - } - --static bool kexec_loaded(void) { -- bool loaded = false; -- char *s; -- -- if (read_one_line_file("/sys/kernel/kexec_loaded", &s) >= 0) { -- if (s[0] == '1') -- loaded = true; -- free(s); -- } -- return loaded; --} -- - static int shutdown_parse_argv(int argc, char *argv[]) { - - enum { -diff --git a/src/util.c b/src/util.c -index 8d54049..247156d 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -5680,3 +5680,15 @@ static const char *const signal_table[] = { - }; - - DEFINE_STRING_TABLE_LOOKUP(signal, int); -+ -+bool kexec_loaded(void) { -+ bool loaded = false; -+ char *s; -+ -+ if (read_one_line_file("/sys/kernel/kexec_loaded", &s) >= 0) { -+ if (s[0] == '1') -+ loaded = true; -+ free(s); -+ } -+ return loaded; -+} -diff --git a/src/util.h b/src/util.h -index 407160d..8b31e5b 100644 ---- a/src/util.h -+++ b/src/util.h -@@ -497,4 +497,6 @@ int signal_from_string_try_harder(const char *s); - extern int saved_argc; - extern char **saved_argv; - -+bool kexec_loaded(void); -+ - #endif --- -1.7.3.4 - Index: 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch =================================================================== --- 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch (revision 62) +++ 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch (deleted) @@ -1,25 +0,0 @@ -From 1cf32c016f97b2c99d7df06ce5d5b858f86c507a Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Wed, 24 Aug 2011 13:39:06 +0200 -Subject: [PATCH] path-lookup: monitor /etc/systemd/user for user manager - ---- - src/path-lookup.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/path-lookup.c b/src/path-lookup.c -index bed9175..5f5ad8c 100644 ---- a/src/path-lookup.c -+++ b/src/path-lookup.c -@@ -209,7 +209,7 @@ int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as, bool personal - * the arrays in user_dirs() above! */ - "/run/systemd/user", - USER_CONFIG_UNIT_PATH, -- "/etc/systemd/system", -+ "/etc/systemd/user", - "/usr/local/lib/systemd/user", - "/usr/local/share/systemd/user", - USER_DATA_UNIT_PATH, --- -1.7.3.4 - Index: fix-crash.patch =================================================================== --- fix-crash.patch (revision 62) +++ fix-crash.patch (deleted) @@ -1,19 +0,0 @@ -commit e191553d1dc80cd6d65d05f0cb29f8967fab6983 -Author: Kay Sievers -Date: Wed Aug 17 19:38:07 2011 +0200 - - convert int to boolean for dbus_bool_t - -diff --git a/src/dbus-manager.c b/src/dbus-manager.c -index ae88895..cfc2afc 100644 ---- a/src/dbus-manager.c -+++ b/src/dbus-manager.c -@@ -444,7 +444,7 @@ static DBusMessage *message_from_file_changes( - if (carries_install_info >= 0) { - dbus_bool_t b; - -- b = carries_install_info; -+ b = !!carries_install_info; - if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_BOOLEAN, &b)) - goto oom; - } Index: gperf-missing.patch =================================================================== --- gperf-missing.patch (revision 62) +++ gperf-missing.patch (deleted) @@ -1,25 +0,0 @@ -From: Thierry Reding -To: systemd-devel@lists.freedesktop.org -Date: Wed, 3 Aug 2011 08:40:27 +0200 -Subject: [systemd-devel] [PATCH] gperf: Include missing.h. - -Older GNU C libraries don't define RLIMIT_RTTIME, so including the -missing.h is required to fix the build. ---- - src/load-fragment-gperf.gperf.m4 | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/src/load-fragment-gperf.gperf.m4 b/src/load-fragment-gperf.gperf.m4 -index 650f444..8e52890 100644 ---- a/src/load-fragment-gperf.gperf.m4 -+++ b/src/load-fragment-gperf.gperf.m4 -@@ -2,6 +2,7 @@ - #include - #include "conf-parser.h" - #include "load-fragment.h" -+#include "missing.h" - %} - struct ConfigPerfItem; - %null_strings --- -1.7.6 Index: systemd-33.tar.bz2 =================================================================== Binary files systemd-33.tar.bz2 (revision 62) deleted Index: systemd-cryptsetup-query.patch =================================================================== --- systemd-cryptsetup-query.patch (revision 62) +++ systemd-cryptsetup-query.patch (deleted) @@ -1,28 +0,0 @@ -From d58446e4b3217f97baca7961154813a563ccdd19 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 4 Aug 2011 16:46:33 +0200 -Subject: [PATCH] cryptsetup-generator: block boot when querying passphrase. - -Ensure we wait for passphrase before starting tty1 or graphical display. -Needed when not using plymouth. ---- - src/cryptsetup-generator.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c -index a340218..6f3aa78 100644 ---- a/src/cryptsetup-generator.c -+++ b/src/cryptsetup-generator.c -@@ -112,7 +112,8 @@ static int create_disk( - "DefaultDependencies=no\n" - "BindTo=%s dev-mapper-%%i.device\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" -- "Before=umount.target\n", -+ "Before=umount.target\n" -+ "Before=local-fs.target\n", - d, d); - - if (!nofail) --- -1.7.3.4 - Index: systemd-cryptsetup.patch =================================================================== --- systemd-cryptsetup.patch (revision 62) +++ systemd-cryptsetup.patch (deleted) @@ -1,25 +0,0 @@ -From aa5f34f2109a02db7887c220c5a35b6a8ee3e6c8 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 4 Aug 2011 16:04:43 +0200 -Subject: [PATCH] cryptsetup: accept "none" option - ---- - src/cryptsetup.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/cryptsetup.c b/src/cryptsetup.c -index cf288de..ac7b6d6 100644 ---- a/src/cryptsetup.c -+++ b/src/cryptsetup.c -@@ -110,7 +110,7 @@ static int parse_one_option(const char *option) { - return 0; - } - -- } else -+ } else if (!streq(option, "none")) - log_error("Encountered unknown /etc/crypttab option '%s', ignoring.", option); - - return 0; --- -1.7.3.4 - OBS-URL: https://build.opensuse.org/request/show/80666 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=63 --- ...e-fix-bus-serialization-for-commands.patch | 44 + ...r-kexec_loaded-when-reboot-is-reques.patch | 82 - ...tor-etc-systemd-user-for-user-manage.patch | 25 - fix-crash.patch | 19 - gperf-missing.patch | 25 - macros.systemd | 16 +- pre_checkin.sh | 6 + systemd-33.tar.bz2 | 3 - systemd-34.tar.bz2 | 3 + systemd-cryptsetup-query.patch | 28 - systemd-cryptsetup.patch | 25 - systemd-gtk.changes | 1640 +++++++++++++++++ systemd-gtk.spec | 83 + systemd.changes | 14 + systemd.spec | 40 +- 15 files changed, 1807 insertions(+), 246 deletions(-) create mode 100644 0001-execute-fix-bus-serialization-for-commands.patch delete mode 100644 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch delete mode 100644 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch delete mode 100644 fix-crash.patch delete mode 100644 gperf-missing.patch create mode 100644 pre_checkin.sh delete mode 100644 systemd-33.tar.bz2 create mode 100644 systemd-34.tar.bz2 delete mode 100644 systemd-cryptsetup-query.patch delete mode 100644 systemd-cryptsetup.patch create mode 100644 systemd-gtk.changes create mode 100644 systemd-gtk.spec diff --git a/0001-execute-fix-bus-serialization-for-commands.patch b/0001-execute-fix-bus-serialization-for-commands.patch new file mode 100644 index 00000000..5389a3bd --- /dev/null +++ b/0001-execute-fix-bus-serialization-for-commands.patch @@ -0,0 +1,44 @@ +From 7daa9e6e29b546275566084512ea4e547bc79b91 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 29 Aug 2011 19:44:52 +0200 +Subject: [PATCH] execute: fix bus serialization for commands + +--- + src/dbus-execute.c | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/dbus-execute.c b/src/dbus-execute.c +index 6ceffc5..201f6b5 100644 +--- a/src/dbus-execute.c ++++ b/src/dbus-execute.c +@@ -308,13 +308,14 @@ int bus_execute_append_command(DBusMessageIter *i, const char *property, void *d + assert(i); + assert(property); + +- if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttuii)", &sub)) ++ if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttttuii)", &sub)) + return -ENOMEM; + + LIST_FOREACH(command, c, c) { + char **l; + uint32_t pid; + int32_t code, status; ++ dbus_bool_t b; + + if (!c->path) + continue; +@@ -332,8 +333,10 @@ int bus_execute_append_command(DBusMessageIter *i, const char *property, void *d + code = (int32_t) c->exec_status.code; + status = (int32_t) c->exec_status.status; + ++ b = !!c->ignore; ++ + if (!dbus_message_iter_close_container(&sub2, &sub3) || +- !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &c->ignore) || ++ !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &b) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.realtime) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.monotonic) || + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.exit_timestamp.realtime) || +-- +1.7.3.4 + diff --git a/0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch b/0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch deleted file mode 100644 index cda7b578..00000000 --- a/0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch +++ /dev/null @@ -1,82 +0,0 @@ -From b1e304bb59e1a80abacfd6f0377ae14c3c1a10cc Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 22 Aug 2011 14:58:50 +0200 -Subject: [PATCH] initctl: check for kexec_loaded when reboot is requested through initctl - ---- - src/initctl.c | 2 ++ - src/systemctl.c | 12 ------------ - src/util.c | 12 ++++++++++++ - src/util.h | 2 ++ - 4 files changed, 16 insertions(+), 12 deletions(-) - -diff --git a/src/initctl.c b/src/initctl.c -index f36f1cc..eaa717a 100644 ---- a/src/initctl.c -+++ b/src/initctl.c -@@ -93,6 +93,8 @@ static const char *translate_runlevel(int runlevel, bool *isolate) { - for (i = 0; i < ELEMENTSOF(table); i++) - if (table[i].runlevel == runlevel) { - *isolate = table[i].isolate; -+ if (runlevel == '6' && kexec_loaded()) -+ return SPECIAL_KEXEC_TARGET; - return table[i].special; - } - -diff --git a/src/systemctl.c b/src/systemctl.c -index bb998d3..0ff9221 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -4403,18 +4403,6 @@ static int parse_time_spec(const char *t, usec_t *_u) { - return 0; - } - --static bool kexec_loaded(void) { -- bool loaded = false; -- char *s; -- -- if (read_one_line_file("/sys/kernel/kexec_loaded", &s) >= 0) { -- if (s[0] == '1') -- loaded = true; -- free(s); -- } -- return loaded; --} -- - static int shutdown_parse_argv(int argc, char *argv[]) { - - enum { -diff --git a/src/util.c b/src/util.c -index 8d54049..247156d 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -5680,3 +5680,15 @@ static const char *const signal_table[] = { - }; - - DEFINE_STRING_TABLE_LOOKUP(signal, int); -+ -+bool kexec_loaded(void) { -+ bool loaded = false; -+ char *s; -+ -+ if (read_one_line_file("/sys/kernel/kexec_loaded", &s) >= 0) { -+ if (s[0] == '1') -+ loaded = true; -+ free(s); -+ } -+ return loaded; -+} -diff --git a/src/util.h b/src/util.h -index 407160d..8b31e5b 100644 ---- a/src/util.h -+++ b/src/util.h -@@ -497,4 +497,6 @@ int signal_from_string_try_harder(const char *s); - extern int saved_argc; - extern char **saved_argv; - -+bool kexec_loaded(void); -+ - #endif --- -1.7.3.4 - diff --git a/0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch b/0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch deleted file mode 100644 index 654485f4..00000000 --- a/0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 1cf32c016f97b2c99d7df06ce5d5b858f86c507a Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Wed, 24 Aug 2011 13:39:06 +0200 -Subject: [PATCH] path-lookup: monitor /etc/systemd/user for user manager - ---- - src/path-lookup.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/path-lookup.c b/src/path-lookup.c -index bed9175..5f5ad8c 100644 ---- a/src/path-lookup.c -+++ b/src/path-lookup.c -@@ -209,7 +209,7 @@ int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as, bool personal - * the arrays in user_dirs() above! */ - "/run/systemd/user", - USER_CONFIG_UNIT_PATH, -- "/etc/systemd/system", -+ "/etc/systemd/user", - "/usr/local/lib/systemd/user", - "/usr/local/share/systemd/user", - USER_DATA_UNIT_PATH, --- -1.7.3.4 - diff --git a/fix-crash.patch b/fix-crash.patch deleted file mode 100644 index 76ee6041..00000000 --- a/fix-crash.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit e191553d1dc80cd6d65d05f0cb29f8967fab6983 -Author: Kay Sievers -Date: Wed Aug 17 19:38:07 2011 +0200 - - convert int to boolean for dbus_bool_t - -diff --git a/src/dbus-manager.c b/src/dbus-manager.c -index ae88895..cfc2afc 100644 ---- a/src/dbus-manager.c -+++ b/src/dbus-manager.c -@@ -444,7 +444,7 @@ static DBusMessage *message_from_file_changes( - if (carries_install_info >= 0) { - dbus_bool_t b; - -- b = carries_install_info; -+ b = !!carries_install_info; - if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_BOOLEAN, &b)) - goto oom; - } diff --git a/gperf-missing.patch b/gperf-missing.patch deleted file mode 100644 index 49eb98b5..00000000 --- a/gperf-missing.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Thierry Reding -To: systemd-devel@lists.freedesktop.org -Date: Wed, 3 Aug 2011 08:40:27 +0200 -Subject: [systemd-devel] [PATCH] gperf: Include missing.h. - -Older GNU C libraries don't define RLIMIT_RTTIME, so including the -missing.h is required to fix the build. ---- - src/load-fragment-gperf.gperf.m4 | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/src/load-fragment-gperf.gperf.m4 b/src/load-fragment-gperf.gperf.m4 -index 650f444..8e52890 100644 ---- a/src/load-fragment-gperf.gperf.m4 -+++ b/src/load-fragment-gperf.gperf.m4 -@@ -2,6 +2,7 @@ - #include - #include "conf-parser.h" - #include "load-fragment.h" -+#include "missing.h" - %} - struct ConfigPerfItem; - %null_strings --- -1.7.6 diff --git a/macros.systemd b/macros.systemd index 363fb9ff..59a96433 100644 --- a/macros.systemd +++ b/macros.systemd @@ -39,7 +39,8 @@ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ if [ $FIRST_ARG -eq 1 ]; then \ # Initial installation \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -fi +fi \ +%{nil} # On uninstall, disable and stop services %service_del_preun() \ @@ -48,7 +49,8 @@ if [ $FIRST_ARG -eq 0 ]; then \ # Package removal, not upgrade \ /bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ /bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ -fi +fi \ +%{nil} # On uninstall, tell systemd to reload its unit files %service_del_postun() \ @@ -57,7 +59,8 @@ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ if [ $FIRST_ARG -ge 1 ]; then \ # Package upgrade, not uninstall \ /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ -fi +fi \ +%{nil} %service_migrate_to_systemd_pre() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ @@ -75,7 +78,8 @@ else \ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --save $services_to_migrate >/dev/null 2>&1 || : \ fi \ -fi +fi \ +%{nil} %service_migrate_to_systemd_post() \ for service in %{?*} ; do \ @@ -88,6 +92,7 @@ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ fi \ +%{nil} %service_migrate_to_systemd_postun() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ @@ -95,5 +100,6 @@ if [ $FIRST_ARG -eq 0 ]; then \ for service in %{?*} ; do \ rm -f "/var/lib/systemd/migrated/$service" 2> /dev/null \ done \ -fi +fi \ +%{nil} diff --git a/pre_checkin.sh b/pre_checkin.sh new file mode 100644 index 00000000..3f06f653 --- /dev/null +++ b/pre_checkin.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +VERSION=`sed -e '/^Version:/!d' -e 's/Version: *//' systemd.spec` +RELEASE=`sed -e '/^Release:/!d' -e 's/Release: *//' systemd.spec` +sed -i -e "s,^\(Version:[ tab]*\).*,\1$VERSION," -e "s,^\(Release:[ tab]*\).*,\1$RELEASE," systemd-gtk.spec +cp systemd.changes systemd-gtk.changes diff --git a/systemd-33.tar.bz2 b/systemd-33.tar.bz2 deleted file mode 100644 index e014b2bd..00000000 --- a/systemd-33.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0de8b842841859b329dec26ecb3d7c10f6616ef80a074192800315893e3d5c3d -size 879459 diff --git a/systemd-34.tar.bz2 b/systemd-34.tar.bz2 new file mode 100644 index 00000000..75e28471 --- /dev/null +++ b/systemd-34.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:046b9f23a3e24f481877fdb552638c61b558c7f306cbbec137204cc4e074e614 +size 899705 diff --git a/systemd-cryptsetup-query.patch b/systemd-cryptsetup-query.patch deleted file mode 100644 index 00f60c87..00000000 --- a/systemd-cryptsetup-query.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d58446e4b3217f97baca7961154813a563ccdd19 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 4 Aug 2011 16:46:33 +0200 -Subject: [PATCH] cryptsetup-generator: block boot when querying passphrase. - -Ensure we wait for passphrase before starting tty1 or graphical display. -Needed when not using plymouth. ---- - src/cryptsetup-generator.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c -index a340218..6f3aa78 100644 ---- a/src/cryptsetup-generator.c -+++ b/src/cryptsetup-generator.c -@@ -112,7 +112,8 @@ static int create_disk( - "DefaultDependencies=no\n" - "BindTo=%s dev-mapper-%%i.device\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" -- "Before=umount.target\n", -+ "Before=umount.target\n" -+ "Before=local-fs.target\n", - d, d); - - if (!nofail) --- -1.7.3.4 - diff --git a/systemd-cryptsetup.patch b/systemd-cryptsetup.patch deleted file mode 100644 index 7e02d279..00000000 --- a/systemd-cryptsetup.patch +++ /dev/null @@ -1,25 +0,0 @@ -From aa5f34f2109a02db7887c220c5a35b6a8ee3e6c8 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 4 Aug 2011 16:04:43 +0200 -Subject: [PATCH] cryptsetup: accept "none" option - ---- - src/cryptsetup.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/cryptsetup.c b/src/cryptsetup.c -index cf288de..ac7b6d6 100644 ---- a/src/cryptsetup.c -+++ b/src/cryptsetup.c -@@ -110,7 +110,7 @@ static int parse_one_option(const char *option) { - return 0; - } - -- } else -+ } else if (!streq(option, "none")) - log_error("Encountered unknown /etc/crypttab option '%s', ignoring.", option); - - return 0; --- -1.7.3.4 - diff --git a/systemd-gtk.changes b/systemd-gtk.changes new file mode 100644 index 00000000..59ee88b4 --- /dev/null +++ b/systemd-gtk.changes @@ -0,0 +1,1640 @@ +------------------------------------------------------------------- +Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com + +- Update to version 34: + * Bugfixes + * optionaly apply cgroup attributes to cgroups systemd creates + * honour sticky bit when trimming cgroup trees + * improve readahead +- Add libacl-devel as BuildRequires (needed for systemd-uaccess) +- Add some %{nil} to systemd.macros to fix some build issues. +- Fix dbus assertion +- move gtk part to its own package, to reduce bootstrapping + (bnc#713981). + +------------------------------------------------------------------- +Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com + +- Update compose_table patch to use two separate loadkeys call, + compose table overflows otherwise (spotted by Werner Fink). + +------------------------------------------------------------------- +Wed Aug 24 13:02:12 UTC 2011 - fcrozat@novell.com + +- Add tty1.patch: ensure passphrase are handled before starting + gettty on tty1. +- Add inittab generator, creating default.target at startup based + on /etc/inittab value. +- No longer try to create /etc/systemd/system/default.target at + initial package install (bnc#707418) +- Fix configuration path used for systemd user manager. +- Ensure pam-config output is no display in install script. +- Remove buildrequires on vala, no longer needed. + +------------------------------------------------------------------- +Fri Aug 19 15:29:49 UTC 2011 - fcrozat@suse.com + +- Handle disable_capslock, compose table and kbd_rate +- Add rpm macros.systemd file. +- Do not disable klogd, it has its own service now. +- Handle kexec correctly (bnc#671673). +- Disable preload services, they are conflicting with systemd. + +------------------------------------------------------------------- +Fri Aug 19 08:15:15 UTC 2011 - fcrozat@suse.com + +- enable pam_systemd module, using pam-config. + +------------------------------------------------------------------- +Thu Aug 18 07:31:12 UTC 2011 - aj@suse.de + +- Fix crash with systemctl enable. + +------------------------------------------------------------------- +Tue Aug 16 17:02:27 UTC 2011 - fcrozat@suse.com + +- Fix localfs.service to no cause cycle and starts it after + local-fs.target. + +------------------------------------------------------------------- +Thu Aug 4 15:59:58 UTC 2011 - fcrozat@suse.com + +- Remove root-fsck.patch, mkinitrd will use the same path as + dracut. +- Add systemd-cryptsetup.patch: don't complain on "none" option in + crypttab. +- Add systemd-cryptsetup-query.patch: block boot until passphrase + is typed. + +------------------------------------------------------------------- +Wed Aug 3 16:03:25 UTC 2011 - fcrozat@suse.com + +- Add root-fsck.patch: do not run fsck on / if it is rw +- Ship a non null localfs.service, fixes static mount points not + being mounted properly. + +------------------------------------------------------------------- +Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de + +- Update to version 33: + * optimizations and bugfixes. + * New PrivateNetwork= service setting which allows you to shut off + networking for a specific service (i.e. all routable network + interfaces will disappear for that service). + * Merged insserv-parsing.patch and bash-completion-restart.patch + patches. + +------------------------------------------------------------------- +Tue Aug 2 08:29:30 UTC 2011 - fcrozat@suse.com + +- Add insserv-parsing.patch: read/parse insserv.conf. +- Add bash-completion-restart.patch: fix restart service list + (bnc#704782). + +------------------------------------------------------------------- +Mon Aug 1 09:04:53 UTC 2011 - aj@suse.de + +- Split up devel package. +- restart logind after upgrade. +- Adjust rpmlintrc for changes. + +------------------------------------------------------------------- +Fri Jul 29 10:48:20 UTC 2011 - aj@suse.de + +- Update to version 32: + * bugfixes + * improve selinux setup + +------------------------------------------------------------------- +Thu Jul 28 07:27:32 UTC 2011 - aj@suse.de + +- Update to version 31: + * rewrite of enable/disable code: New features systemctl --runtime, + systemctl mask, systemctl link and presets. + * sd-daemon is now shared library. + +------------------------------------------------------------------- +Tue Jul 19 11:56:43 UTC 2011 - aj@suse.de + +- Update to version 30: + + Logic from pam_systemd has been moved to new systemd-login. + + VT gettys are autospawn only when needed + + Handle boot.local/halt.local on SUSE distribution + + add support for systemctl --root + +------------------------------------------------------------------- +Wed Jun 29 12:54:24 UTC 2011 - fcrozat@suse.com + +- Make sure to not start kbd initscript, it is handled by systemd + natively. + +------------------------------------------------------------------- +Fri Jun 17 09:34:24 UTC 2011 - fcrozat@novell.com + +- version 29: + + enable chkconfig support in systemctl for openSUSE. + + systemctl: plug a leak upon create_symlink mismatch + + mount /run without MS_NOEXEC + + dbus: fix name of capability property + + systemctl: fix double unref of a dbus message + + cryptsetup-generator: fix /etc/cryptsetup options + + selinux: selinuxfs can be mounted on /sys/fs/selinux + + readahead-common: fix total memory size detection + + systemctl: fix 'is-enabled' for native units under /lib + + systemctl: fix a FILE* leak + + pam-module: add debug= parameter + + remote-fs.target: do not order after network.target +- update tarball url. + +------------------------------------------------------------------- +Wed Jun 15 10:00:29 UTC 2011 - saschpe@suse.de + +- Use RPM macros instead of $RPM_FOO variables +- Don't require %{version}-%{release} of the base package, + %{version} is sufficient + +------------------------------------------------------------------- +Tue Jun 14 15:10:41 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - mount /run without MS_NOEXEC + - readahead-common: fix total memory size detection + - enable chkconfig support in systemctl for openSUSE + - selinux: selinuxfs can be mounted on /sys/fs/selinux + - cryptsetup-generator: fix /etc/cryptsetup options + - systemctl: fix double unref of a dbus message +- drop merged chkconfig patch + +------------------------------------------------------------------- +Tue Jun 14 12:39:25 UTC 2011 - fcrozat@novell.com + +- Add sysv chkconfig patch to be able to enable / disable sysv + initscripts with systemctl. +- Ensure plymouth support is buildable conditionnally. + +------------------------------------------------------------------- +Thu May 26 21:16:06 CEST 2011 - kay.sievers@novell.com + +- version 28 + - drop hwclock-save.service + - fix segfault when a DBus message has no interface + - man: update the list of unit search locations + - readahead-collect: ignore EACCES for fanotify + - rtc in localtime: use settimeofday(NULL, tz) + instead of hwclock(8) + +------------------------------------------------------------------- +Sat May 21 23:57:30 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - fix crash in D-Bus code + +------------------------------------------------------------------- +Sat May 21 18:17:59 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - socket: always use SO_{RCV,SND}BUFFORCE to allow larger values + - util: use new VT ESC sequence to clear scrollback buffer + - sd-daemon: move _sd_hidden_ from .h to .c file + - missing: add IP_TRANSPARENT + +------------------------------------------------------------------- +Sat May 21 16:17:38 CEST 2011 - kay.sievers@novell.com + +- version 27 + - util: use open_terminal() in chvt() too + - socket: expose SO_BROADCAST + - git: add .mailmap + - exec: expose tty reset options in dbus introspection data + - socket: expose IP_TRANSPARENT + - exec: hangup/reset/deallocate VTs in gettys + - socket: use 666 socket mode by default since neither fifos, + nor sockets, nor mqueues need to be executable + - socket: add POSIX mqueue support + - README: document relation to nss-myhostname + - hostnamed: check that nss-myhostname is installed + +------------------------------------------------------------------- +Tue May 17 19:15:17 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - sysctl: apply /etc/sysctl.conf last + - systemd-analyze: print hostname, kernelversion and arch at + the top of the plot + - pam: downgrade a few log msgs + - hostnamed: SetPrettyHostname() should check PK action + org.freedesktop.hostname1.set-static-hostname + - user-sessions: ignore EROFS when unlinking /etc/nologin if + the file doesn't exist anyway + - unit: make ignoring in snapshots a per unit property, + instead of a per unit type property + - vconsole: use open_terminal() instead of open() + - units: enable automount units only if the kernel supports them + +------------------------------------------------------------------- +Thu May 5 07:45:46 UTC 2011 - coolo@opensuse.org + +- remove policy filter + +------------------------------------------------------------------- +Thu May 5 08:59:46 CEST 2011 - meissner@suse.de + +- add missing buildrequires dbus-1-devel, vala, libxslt-devel +- touch vala files for rebuilding to unbreak Factory + +------------------------------------------------------------------- +Mon May 2 23:05:35 CEST 2011 - kay.sievers@novell.com + +- also delete plymouth files + +------------------------------------------------------------------- +Mon May 2 19:00:41 CEST 2011 - kay.sievers@novell.com + +- disable plymouth sub-package until plymouth gets into Factory + +------------------------------------------------------------------- +Sun May 1 22:51:28 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - binfmt, modules-load, sysctl, tmpfiles: add missing + ConditionDirectoryNotEmpty= + - binfmt, modules-load, sysctl, tmpfiles: read /usr/local/lib + and where appropriate /lib directories + +------------------------------------------------------------------- +Sat Apr 30 04:56:55 CEST 2011 - kay.sievers@novell.com + +- version 26 + - plymouth: introduce plymouth.enable=0 kernel command line + - util: don't AND cx with cx + - man: typo in sd_daemon reference + - util: conf_files_list() return list as parameter + - dbus: make daemon reexecution synchronous + +------------------------------------------------------------------- +Thu Apr 28 14:07:12 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - service: properly notice when services with a main process + that isn't a child of init die + - unit: fix assert when trying to load unit instances for + uninstanciable types + - def: lower default timeout to 90s + - manager: fix serialization counter + +------------------------------------------------------------------- +Wed Apr 27 04:19:05 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - dbus: don't hit assert when dumping properties + - cryptsetup: fix keyfile size option processing + - socket: improve warning message when we get POLLHUP + - mount: failure to mount cgroup hierarchies should not be fatal + - configure: add AC_SYS_LARGEFILE + +------------------------------------------------------------------- +Mon Apr 25 21:45:02 CEST 2011 - kay.sievers@novell.com + +- new snapshot + - tmpfiles.d: switch to stacked config dirs in /lib, /etc, /run + - sysctl.d, binfmt.d, modules-load.d: switch to stacked config + dirs in /lib, /etc, /run + - manager: mkdir /run/systemd/system when starting up + - man: Spelling fixes + +------------------------------------------------------------------- +Thu Apr 21 04:39:57 CEST 2011 - kay.sievers@novell.com + +- version 25 + - mount: Allow creating mount units for /var/lib/nfs/rpc_pipefs + and /proc/fs/nfsd. + - socket: support ListeSpecial= sockets + - vconsole: don't set console font/keymap if settings are empty + - nspawn: don't fail when we receive SIGCHLD + - cgroup: don't accidentaly trim on reload + - units: set capability bounding set for syslog services + - socket: log more information about invalid poll events + - man: fix specification of default timeouts + - mount,crypto: rework meaning of noauto/nofail + - fsck: don't fsck against basic.target in order to properly + allow automount /home + - manager: when running in test mode, do not write generated + unit files to /run/systemd/generator + - mount: properly parse timeouts options in the middle of + the string + - hostnamed: drop all caps but CAP_SYS_ADMIN + - execute: when we run as PID 1 the kernel doesn't give us + CAP_SETPCAP by default. Get that temporarily when dropping + capabilities for good + - mount: make device timeout configurable + - cryptsetup: do not order crypto DM devices against the + cryptsetup service + - socket: reuse existing FIFOs + - socket: guarantee order in which sockets are passed to be + the one of the configuration file + - systemctl: always consider unit files with no + [Install] section but stored in /lib enabled + - job: also print status messages when we successfully started + a unit + - hostnamed: add reference to SMBIOS specs + - man: runlevel 5 is usually more comprehensive, so use it + instead of 3 to detect whether a sysv service is enabled + - polkit: follow the usual syntax for polkit actions + - hostnamed: introduce systemd-hostnamed + - units: order quotacheck after remount-rootfs + - hostname: split out hostname validation into util.c + - dbus: split out object management code into dbus-common, + and simplify it + - strv: properly override settings in env_append() + - strv: detect non-assignments in env blocks properly in + env_append() + - strv: handle empty lists in strv_copy() properly + - util: truncate newline inside of read_one_line_file() + - util: modernize get_parent_of_pid() a bit + - crypto: let the cryptsetup binary handles its own + configurable timeouts + - logger,initctl: use global exit timeout + - ask-password: use default timeout + - manager: drop all pending jobs when isolating + - manager: introduce IgnoreOnIsolate flag so that we can keep + systemd-logger around when isolating + - units: never pull in sysinit from utmp, so that we can + shutdown from emergency mode without pulling in sysinit + - manager: downgrade a few log messages + - units: require syslog.socket from the logger because we + simply fail if we don't have it + - logger: adjust socket description to match service + - units: set stdout of kmsg syslogd to /dev/null + - units: add --no-block when starting normal service after + shell exited + - ask-password: use kill(PID, 0) before querying a password + - ask-password: support passwords without timeouts + - ask-password: always send final NUL char + - ask-password: properly accept empty passwords from agent + - unit: skip default cgroup setup if we have no hierarchy + - units: isolate emergency.target instead of emergency.service + when we fail to mount all file systems + - mount: don't pull in stdio logger for root mount unit + - cgroup: be nice to Ingo Molnar + - pam: use /proc/self/sessionid only with CAP_AUDIT_CONTROL + - pam: use /proc/self/loginuid only with CAP_AUDIT_CONTROL + - socket: try creating a socket under our own identity if we + have no perms to consult the selinux database + - socket: fix check for SEQPACKET + - execute: don't fail if we cannot fix OOM in a container + - unit: fix dump output + - socket: be a bit more verbose when refusing to start a + socket unit + - socket: support netlink sockets + - local-fs: invoke emergency.service mounting at boot fails + - path: optionally, create watched directories in .path units + - tmpfiles: don't warn if two identical lines are configured + - man: add man page for ask-password + - dbus: expose monotonic timestamps on the bus + - manager: no need to use randomized generator dir when running + as system manager + - don't make up buffer sizes, use standard LINE_MAX instead + - unit: disallow configuration of more than one on_failure + dependencies if OnFailureIsolate= is on + - unit: pull in logger unit only when running in system mode + - manager: serialize/deserialize max job id and /usr taint flag + - manager: don't garbage collect jobs when isolating, to change + global state + - unit: introduce OnFailureIsolate= + - mount: relabel both before and after a mount, just in case + - cmdline: we actually want to parse the kernel cmdline in VMs, + just not in containers + - units: rename rtc-set.target to time-sync.target and pull it + in by hwclock-load.service + - job: fix deserialization of jobs: do not ignore ordering + - systemctl: properly parse JobNew signals + - service: fix units with more than one socket + - systemctl: make most operations NOPs in a chroot + - manager: don't show PID for incoming signals if it is 0 + - man: fix description of systemctl reload-or-try-restart + - mount: block creation of mount units for API file systems + - units: call the logger a bridge too + - build-sys: always place user units in /usr/lib/systemd + - pkgconfig: update .pc file accordingly + - lookup: always also look into /usr/lib for units + - exec: support unlimited resources + - selinux: relabel /run the same way as /dev after loading + the policy since they both come pre-filled and unlabelled + - manager: fd must be int, not char + - change remaining /var/run to /run + - units: move user units from /usr/share to /usr/lib since + they might be arch-dependent + - man: document /etc/sysctl.d/ + - binfmt: add binfmt tool to set up binfmt_misc at boot + - tmpfiles: create leading directories for d/D instructions + - condition: add ConditionSecurity + - load-fragment: unify config_parse_condition_{kernel, virt} + - condition: fix dumping of conditions + - initctl: /dev/initctl is a named pipe, not a socket + - kmsg-syslogd: pass facility value into kmsg + - move /var/lock to HAVE_SYSV_COMPAT + - tmpfiles: split off rules for legacy systems into legacy.conf + - general: replace a few uses of /var/run by /run + - tmpfiles: enforce new /var/lock semantics + - man: document ConditionPathIsDirectory= + - mount: also relabel pre-mounted API dirs + - log: don't strip facility when writing to kmsg + - build-sys: create a number of drop-in config dirs + - random: do not print warning if random seed doesn't exist + - plymouth: use PID file to detect whether ply is running + - build-sys: install systemd-analyze by default + - analyze: improve output + - analyze: add plotter + - unit: when deserializing do reconnect to dbus/syslog when + they show up + - analyze: beautify output a bit + - add systemd-analyze tool + - unit: don't override timestamps due to state changes when + deserializing + - plymouth: don't explicitly enable status message when + plymouth is up + - status: show status messages unconditionally if plymouth + is around + - taint: add missing cgroups taint flag + - locale: don't access misinitialized variable + - quota: do not pull in quota tools for mounts that do not + originate in neither /etc/fstab nor fragment files + - manager: fix taint check for /usr + - unit: never apply /etc/rcN.d/ priority to native services + - unit: fix parsing of condition-result + - unit: don't complain about failed units when deserializing + - exec: drop process group kill mode since it has little use + and confuses the user + - cgroup: explain when we cannot initialize the cgroup stuff + - systemctl: don't truncate description when using pager + - ask-password: also accept Backspace as first keypress as + silent mode switch + - unit: when deserializing jobs, don't pull in dependencies + - locale: fix LC_MESSAGES variable name + - plymouth: Remove the calls to plymouth message + - udev: systemd-tag all ttys + - tmpfiles fix /run/lock permissions + - ask-password: use TAB to disable asterisk password echo + - execute: socket isn't abstract anymore + - use /run instead of /dev/.run + - man: explain a couple of default dependencies + - mount: pull in quota services from local mountpoints with + usr/grpquota options + - service: pull in sysv facility targets from the sysv units, + not the other way round + - units: pull in syslog.target from syslog.socket + - units: don't ever pull in SysV targets from other SysV + targets + - units: document that some targets exists only for compat + with SysV + - man: document pidns containers + - units: deemphesize Names= settings, and explain why nobody + whould use them + - units: on mandriva/fedora create single.service alias via + symlink, not Names= + - units: get rid of runlevel Names=, the symlinks in + /lib/systemd/system are much more useful + - rework syslog detection so that we need no compile-time + option what the name of the syslog implementation is + - man: document .requires/ directories + - special: get rid of dbus.target + - exec: properly apply capability bounding set, add inverted + bounding sets + - dbus: add service D-Bus property "Sockets" + - dbus: consolidate service SysV conditionals + - unit: serialize condition test results + - def: centralize definition of default timeout in one place + - chkconfig: check against runlevel 5 instead of 3, since it is + a superset of the latter + - systemctl: accept condstop as alias for stop + - dbus: allow LoadUnit to unprivileged users + - umount: make sure skip_ro is always correctly initialized +- create /run (link it to /var/run) +- refresh splash password patch +- conflict with old mkinitrd version (we need /run) +- conflict with old udev (we need /run) + +------------------------------------------------------------------- +Wed Mar 16 18:38:04 CET 2011 - kay.sievers@novell.com + +- new snapshot + - man: fix systemctl try-restart description + - Add Frugalware display-manager service + - main: revert recognition of "b" argument + - main: interpret all argv[] arguments unconditionally when + run in a container + - loopback: downgrade an error to warning + - nspawn: bind mount /etc/localtime + - nspawn: make tty code more robust against closed/reopened + /dev/console + - util: make touched files non-writable by default + - nspawn: allocate a new pty instead of passing ours through + to avoid terminal settings chaos + - main: parse the whole arv[] as kernel command line + - main: check if we have a valid PID before getting the name + - ask-password: reset signal mask after we are done + - cgroup: don't recheck all the time whether the systemd + hierarchy is mounted, to make strace outputs nicer and save + a few stat()s + - man: document systemd-nspawn + - cgls: don't strip user processes and kernel threads from + default output + - umount: don't try to remount bind mounts ro during shutdown + - getty: move automatic serial getty logic into generator + - container: skip a few things when we are run in a container + such as accessing /proc/cmdline + - cgls: by default start with group of PID 1 + - pam: determine user cgroup tree from cgroup of PID 1 + - nspawn: move container into its own name=systemd cgroup + - manager: don't show kernel boot-up time for containers + - manager: show who killed us + - units: add console-shell.service which can be used insted of + the gettys to get a shell on /dev/console + +------------------------------------------------------------------- +Mon Mar 14 18:29:23 CET 2011 - kay.sievers@novell.com + +- new snapshot + - build-sys: move remaining tools from sbin/ to bin/ since they + might eventually be useful for user execution + - hostname: don't override the hostname with localhost if it + is already set and /etc/hostname unset + - audit: give up sending auditing messages when it failed due + to EPERM + - nspawn: don't require selinux on if it is compiled in + - main: remove AF_UNIX sockets before binding + - shutdown: print a nice message when terminating a container + - nspawn: mount /selinux if needed + - shutdown: just call exit() if we are in a container + - umount: assume that a non-existing /dev/loop device means it + is already detached + - socket: use 777 as default mode for sockets + - main: log to the console in a container + - main: don't parse /proc/cmdline in containers + - util: add detect_container() + - nspawn: reset environment and load login shell + - core: move abstract namespace sockets to /dev/.run + - nspawn: add simple chroot(1) like tool to execute commands + in a namespace container + - util: return exit status in wait_for_terminate_and_warn() + - util: properly identify pty devices by their major + +------------------------------------------------------------------- +Sat Mar 12 14:26:28 CET 2011 - kay.sievers@novell.com + +- new snapshot + - polkit: autogenerate polkit policy with correct paths + - systemctl: support remote and privileged systemctl access + via SSH and pkexec + - gnome-ask-password-agent: fix path to watch + +------------------------------------------------------------------- +Fri Mar 11 13:59:34 CET 2011 - kay.sievers@novell.com + +- fix broken sysctl.service linking + +------------------------------------------------------------------- +Fri Mar 11 01:39:41 CET 2011 - kay.sievers@novell.com + +- new snapshot + - units: move the last flag files to /dev/.run + - util: close all fds before freezing execution + - dbus: timeout connection setup + - main: properly handle -b boot option + - pam: do not leak file descriptor if flock fails +- disable sysv services natively provided by systemd + +------------------------------------------------------------------- +Thu Mar 10 14:16:50 CET 2011 - kay.sievers@novell.com + +- new snapshot + - main: refuse system to be started in a chroot + - main: don't check if /usr really is a mount point, since it is + fine if it is passed pre-mounted to us from the initrd + - condition: take a timestamp and store last result of conditions + - dev: use /dev/.run/systemd as runtime directory, instead of + /dev/.systemd + - machine-id: move machine-id-setup to /sbin + - pkconfig: export full search path as .pc variable + - selinux: bump up error level when in non-enforcing mode + - dbus: fix dbus assert due to uninitialized error + - dbus: properly generate UnknownInterface, UnknownProperty + and PropertyReadOnly errors + - mount: use /dev/.run as an early boot alias for /var/run + +------------------------------------------------------------------- +Tue Mar 8 19:06:45 UTC 2011 - kay.sievers@novell.com + +- version 20 + - service: prefix description with LSB only if script has LSB header, + use 'SysV:' otherwise + - unit: don't accidently create ordering links to targets when + default deps are off for either target and unit + - mount: support less cumbersome x-systemd-xxx mount options + - unit: distuingish mandatory from triggering conditions + - dbus: return DBUS_ERROR_UNKNOWN_OBJECT when an object + is unknown + - systemctl: when forwarding is-enabled to chkconfig + hardcode runlevel 3 + - job: introduce new job result code 'skipped' to use when pre + conditions of job did not apply + - job: convert job type as early as we can, to simplify things + - Keep emacs configuration in one configuration file. + - syslog: make sure the kmsg bridge is always pulled in and + never terminated automatically + - mount: make /media a tmpfs + +------------------------------------------------------------------- +Mon Mar 7 17:24:46 CET 2011 - kay.sievers@novell.com + +- new snapshot + - add org.freedesktop.DBus.Properies.Set method + - main: introduce /etc/machine-id + - systemctl: fix exit code when directing is-enabled + to chkconfig + - dbus: add 'Tainted' property to Manager object + - dbus: expose distribution name and features on manager + object as properties + - man: document changed EnvironmentFile= behaviour + - main: add link to wiki page with longer explanation of the + /usr madness + - execute: load environment files at time of execution, not + when we load the service configuration + - path: after installing inotify watches, recheck file again + to fix race + - path: don't use IN_ATTRIB on parent dirs when watching a + file, since those cannot be removed without emptying the dir + first anyway and we need IN_ATTRIB only to detect the link + count dropping to 0 + - kill: always send SIGCONT after SIGTERM + - readahead: disable collector automatically on read-only media + - sysctl: use scandir() instead of nftw() to guarantee + systematic ordering + - support DT_UNKNOWN where necessary for compat with reiserfs + - systemctl: always null-terminate the password +- call systemd-machine-id-setup at installation + +------------------------------------------------------------------- +Tue Mar 1 12:28:01 CET 2011 - kay.sievers@novell.com + +- version 19 + - udev: don't ignore non-encrypted block devices with no + superblock + - udev: expose ttyUSB devices too + - udev: mark hvc devices for exposure in systemd + - cryptsetup: add a terse help + - agent: don't print warnings if a password was removed or + timed out + - systemctl: shutdown agent explicitly so that it can reset + the tty properly + - never clean up a service that still has a process in it + - label: udev might be making changes in /dev while we + iterate through it + - systemctl: properly handle job results + - job: also trigger on-failure dependencies when jobs faile + due to dependencies, timeout + - job: when cancelling jobs, make sure to propagate this + properly to depending jobs + - job: start job timeout on enqueuing not when we start to + process a job + - unit: increase default timeout to 3min + - logger: leave the logger longer around and allow it do + handle more connections + - dbus: pass along information why a job failed when it + failed (dbus api change!) + - general: unify error code we generate on timeout + - units: synchronize gettys to plymouth even if plymouth is + killed by gdm + - job: start job timer when we begin running the job, not + already when we add it to the queue of jobs + - cryptsetup: try to show the mount point for a crypto disk + if we can + - rescue: terminate plymouth entirely when going into + rescue mode + - ask-password: fix handling of timeouts when waiting + for password + - ask-password: supported plymouth cached passwords + - main: print warning if /usr is on a seperate partition + - ensure we start not a single getty before plymouth is + gone because we never know which ttys plymouth still controls + - unit: introduce ConditionVirtualization= + +------------------------------------------------------------------- +Mon Feb 21 19:30:30 CET 2011 - kay.sievers@novell.com + +- new snapshot + - dbus: don't rely that timer/path units have an initialized + unit field (bnc#671561) + +------------------------------------------------------------------- +Mon Feb 21 13:58:51 CET 2011 - kay.sievers@novell.com + +- new snapshot + - order network mounts after network.target (bnc#672855) + +------------------------------------------------------------------- +Mon Feb 21 04:19:15 CET 2011 - kay.sievers@novell.com + +- new snapshot + - kmsg-syslogd: increase terminate timeout to 5min to generte + less debug spew + - shutdown(8) - call kexec if kexec kernel is loaded (bnc#671673) + - unit: don't timeout fsck + - man: fixed typo in SyslogIdentifier= + - tmpfiles: never clean up block devices + - main: refuse --test as root + +------------------------------------------------------------------- +Fri Feb 18 13:52:22 CET 2011 - kay.sievers@novell.com + +- new snapshot + - units: order fsck@.service before basic.target + instead of local-fs.target to relax things a little + - readahead: remove misleading error messages + - man: don't do more reloads than necessary in spec files + - util: retry opening a TTY on EIO + - util: beef up logic to find ctty name + - tmpfiles: kill double slashes in unix socket names +- drop vhangup patch, it is fixed in login(3) by forwarding the + SIGHUP to the child process + +------------------------------------------------------------------- +Fri Feb 18 09:33:55 UTC 2011 - coolo@novell.com + +- revert back to conflicts: sysvinit + +------------------------------------------------------------------- +Thu Feb 17 15:04:44 CET 2011 - werner@suse.de + +- Add temporary workaround for bnc#652633, that is do a vhangup + to all processes on a tty line used for a getty + +------------------------------------------------------------------- +Wed Feb 16 21:39:20 CET 2011 - kay.sievers@novell.com + +- version 18 + - systemctl: introduce --ignore-dependencies + - systemctl: introduce --failed to show only failed services + - systemctl: introduce --failed to show only failed services + - rescue: make 'systemctl default' fail if there is already + something running when the shell exited + - util: seperate welcome line from other output by empty lines + - manager: don't consider transaction jobs conflicting with + queued jobs redundant + - udev: ignore block devices which no known contents, to avoid + trying of mounts/swapons when devices aren't set up full yet + - swap: handle "nofail" from fstab + - mount,swap: properly add dependencies to logger if needed + - service: change default std output to inherit + - exec: introduce global defaults for the standard output + of services + - udev: use SYSTEMD_READY to mask uninitialized DM devices + - fsck: output to /dev/console by default in addition to syslog + - execute: optionally forward program output to /dev/console in + addition to syslog/kmsg + - socket: refuse socket activation for SysV services + - fsck: do not fail boot if fsck returns with an error code that + hasn't 2 or 6 set + - shutdown: execute all binaries in /lib/systemd/system-shutdown + as last step before invoking reboot() + - job: make status message printing more verbose + - cryptsetup: fix unit file description + - tmpfiles: never delete AF_UNIX sockets that are alive + - getty: don't parse console= anymore, use + /sys/class/tty/console/active instead + - properly resolve /dev/console if more than once console= + argument was passed on the kernel command line + - getty: do not auto-spawn getty's on VC ttys if console=ttyN + - fsck: skip root fsck if dracut already did it + - util: when determining the right TERM for /dev/console + consult /sys/class/tty/console/active + - pam: introduce whitelist and blacklist user list feature + - systemctl: minor optimizations + - systemctl: don't unnecessarily close stdin/stdout/stderr for + tty agent so that locking by tty works + - readahead: disable readahead in virtual machines + - tmpfiles: move binary to /bin to make it publicly available + - tmpfiles: take names of tmpfiles configuration files on the + command line + - tmpfiles: log to stderr if possible + - tmpfiles: support globs + - units: introduce and hook up sound.target + - dbus: allow all clients access to org.freedesktop.DBus.Peer + - consider udev devices with SYSTEMD_READY=0 as unplugged + - systemctl: don't start agent for --user + - systemctl: make sure the tty agent does not retain a copy + of stdio + +------------------------------------------------------------------- +Tue Feb 8 19:10:06 CET 2011 - kay.sievers@novell.com + +- new snapshot + - plymouth: move plymouth out of TARGET_FEDORA + - build-sys: fix AC_COMPILE_IFELSE tests + - build-sys: ensure selinux configure check follows logic of + other optional features + - build-sys: autodetect and use pkg-config for libselinux + - dbus: use ControlGroup as property name to match config option + - pam: optionally reset cgroup memberships for login sessions + - load-fragment: properly parse Nice= value + - automount: use unit_pending_inactive() where appropriate + +------------------------------------------------------------------- +Tue Feb 8 17:40:29 CET 2011 - jeffm@suse.de + +- Removed unecessary workaround for plymouth startup. + +------------------------------------------------------------------- +Fri Feb 4 21:24:11 CET 2011 - jeffm@suse.de + +- Split plymouth support into systemd-plymouth package. + +------------------------------------------------------------------- +Sat Jan 22 14:42:34 CET 2011 - kay.sievers@novell.com + +- new snapshot + - clang: fix some issues found with clang-analyzer + - gcc: make gcc shut up + +------------------------------------------------------------------- +Sat Jan 22 14:40:24 CET 2011 - kay.sievers@novell.com + +- version 17 + - vala 0.10 seem to work fine + - cryptsetup: fix ordering loop when dealing with encrypted + swap devices + - main: don't warn if /etc/mtab is a symlink to /proc/mounts + - socket: don't crash if the .service unit for a .socket unit + is not found + - mount: ignore if an fsck is requested for a bind mount, + so that we don't wait for the bind 'device' to show up + - automount: fix segfault when shutting down + - man: give an example for vconsole.conf + - dbus: don't try to connect to the system bus before it is + actually up + - service: make chain of main commands and control commands + independent of each other, so that both can be executed + simultaneously and independently + - service: don't allow reload operations for oneshot services + - vala: convert from dbus-glib to gdbus + - systemctl: highlight failed processes in systemctl status + - systemctl: show process type along process exit codes + - service: when reloading a service fails don't fail the entire + service but just the reload job + +------------------------------------------------------------------- +Wed Jan 19 12:55:40 CET 2011 - kay.sievers@novell.com + +- new snapshot + - shutdown: use correct kexec options + - serial-getty: do not invoke /sbin/securetty; recent + pam_securetty looks for console= in /proc/cmdline + - systemctl: before spawning pager cache number of columns + - pam: optionally keep processes of root user around + - service: if a reload operation fails, don't shut down + the service + - execute: make sending of SIGKILL on shutdown optional + - mount: do not translate uuids to lowercase + - man: document missing KillSignal= and swap options +- require recent util-linux +- drop mtab symlink creation which is done in util-linux + +------------------------------------------------------------------- +Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com + +- version 16 + - device: don't warn if we cannot bump the udev socket buffer + - logger: when passing on PID info, fall back to our own if + originating process is already gone + - service: don't hit an assert if information in LSB headers is + incorrectly formatted + - execute,util: fix two small memory leaks + - getty: unset locale before execution + - execute: drop empty assignments from env blocks on execution + but keep them around otherwise to make them visible + - umount: don't try to detach the dm device the root dir is on, + to minimize warning messages + - locale: fix variable names + - fragment: allow prefixing of the EnvironmentFile= + path with - to ignore errors + - util: don't pass invalid fd to fdopendir() on error to avoid + corruption of errno + - tmpfiles: nicer message when two or more conflicting lines + are configured for the same file + - fragment: properly handle quotes in assignments in + EnvironmentFile= files + - sysctl: don't warn if sysctls are gone + - readahead: ignore if files are removed during collection or + before replay + - serial: use TERM=vt100 instead of TERM=vt100-nav + - cryptsetup: call mkswap on dm device, not on source device + - mount-setup: mount /dev/pts with mode=620,gid=5 by default + and make GID overridable via configure switch + - systemctl: implement auto-pager a la git + - shutdown: drop redundant sync() invocation + - util: invoke sync() implicitly on freeze() + - tmpfiles: do no follow symlinks when cleaning up dirs + +------------------------------------------------------------------- +Tue Dec 28 22:08:28 CET 2010 - jeffm@suse.de + +- Add support for building plymouth support with openSUSE + +------------------------------------------------------------------- +Mon Dec 27 22:15:41 CET 2010 - kay.sievers@novell.com + +- new snapshot + - pam: do not sort user sessions into their own cgroups in + the 'cpu' hierarchy + - mount-setup: drop noexec flag from default mount options + for /dev/shm + - systemd.pc: change 'session' to 'user' + +------------------------------------------------------------------- +Thu Dec 16 16:52:04 CET 2010 - kay.sievers@novell.com + +- new snapshot + - ifdef suse-only sysv script lookup code + +------------------------------------------------------------------- +Thu Dec 16 12:49:00 UTC 2010 - seife@opensuse.org + +- add bootsplash handling patch to be able to enter e.g. + crypto passphrases (bnc#659885) + +------------------------------------------------------------------- +Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com + +- new snapshot + - add LSB 'smtp' alias for mail-transport-agent.target + +------------------------------------------------------------------- +Wed Dec 8 12:43:53 CET 2010 - kay.sievers@novell.com + +- new snapshot + - path: fix watching the root directory + - update README + +------------------------------------------------------------------- +Fri Nov 26 19:17:46 CET 2010 - kay.sievers@novell.com + +- new snapshot + - gnome-ask-password-agent: also support libnotify < 0.7 for now + - udev: increase event buffer size +- require fsck -l + +------------------------------------------------------------------- +Thu Nov 25 06:45:41 CET 2010 - kay.sievers@novell.com + +- version 15 + - dbus: use the right data slot allocator + - manager: bump up max number of units to 128K + - build-sys: allow cross-compilation +- revert too new libnotify code/requirement +- revert fsck -l option requirement + +------------------------------------------------------------------- +Tue Nov 23 11:49:43 CET 2010 - kay.sievers@novell.com + +- new snapshot + - units: simplify shutdown scripts + - logger: fix error handling + - swap: order file-based swap devices after remount-rootfs +- revert too new libnotify code/requirement +- revert fsck -l option requirement + +------------------------------------------------------------------- +Mon Nov 22 10:10:59 CET 2010 - kay.sievers@novell.com + +- new snapshot + - systemctl: don't return LSB status error codes for 'show' + - mount: do not try to mount disabled cgroup controllers + - man: document /etc/modules-load.d/, /etc/os-release, + locale.conf, /etc/vconsole.conf, /etc/hostname + - units: move a couple of units from base.target to + sysinit.target + - man: reorder things to follow the same order everywhere +- revert too new libnotify code/requirement +- revert fsck -l option requirement + +------------------------------------------------------------------- +Sat Nov 20 19:58:14 CET 2010 - kay.sievers@novell.com + +- version 13 + - cryptsetup: actually show disk name + - cryptsetup: show udev device name when asking for password + - sysctl: implement native tool and support /etc/sysctl.d + - units: enable console ask-password agent by default + - introduce /etc/os-release distro description + - job: make sure we don't fail umount.target if a mount unit + failed to stop + - cgroup: after killing cgroup processes, ensure the group is + really dead gone. wait for 3s at max + - cgroup: if we couldn't remove a cgroup after killing + evertyhing in it then it's fine + - cryptsetup: automatically order crypt partitions before + cryptsetup.target + - man: trivial BindTo description fix + - manager: make list of default controllers configurable + - build: expose libcryptsetup dependency in build string + - pam: document controllers= switch + - cgroup: by default, duplicate service cgroup in the cpu hierarchy + - pam: duplicate cgroup tree in the cpu hierarchy by default, + optionally more +- enable native crypto handling instead of boot.crypto +- revert too new libnotify code/requirement +- revert fsck -l option requirement + +------------------------------------------------------------------- +Wed Nov 17 01:32:04 CET 2010 - kay.sievers@novell.com + +- version 12 + - ask-password: add --console mode to ask /dev/console +- revert too new libnotify code/requirement + +------------------------------------------------------------------- +Tue Nov 16 11:47:28 CET 2010 - kay.sievers@novell.com + +- new snapshot + - cryptsetup: reword questions a little + - units: order hwclock after readahead + - path: don't mention too many inotify msgs + - cryptsetup: include device name in password question + - cryptsetup: lock ourselves into memory as long as we deal + with passwords + - plymouth: use updated socket name + - units: set TERM for gettys again, since they acquire a TTY + - units: allow start-up of plymouth ask-password agent very early + - units: enable ask-paswword .path units early enough to be useful + for early mounts + - units: delay getty until logins are allowed + - pam: always rely on loginuid instead of uid to determine cgroup + and XDG_RUNTIME_DIR name + - cgroup: call root cgroup system instead of systemd-1 + - exec: determine right TERM= setting based on tty name + - pam: rename master user cgroup to 'master' + - drop support for MANAGER_SESSION, introduce MANAGER_USER + - units: use ConditionDirectoryNotEmpty= where applicable + - unit: introduce ConditionDirectoryNotEmpty= + - delete tmp.mount which may conflict with an unrelated fstab + entry +- revert too new libnotify code/requirement +- disable native crypto handling + +------------------------------------------------------------------- +Mon Nov 15 18:45:31 CET 2010 - kay.sievers@novell.com + +- new snapshot + - load-dropin: add support for .requires directories + - manager: consider jobs already installed as redundant when + reducing new transactions + - manager: always pull 'following' units into transaction + - util: always highlight distro name + - units: make use of agetty mandatory + - manager: don't fail transaction if adding CONFLICTED_BY job fails + - job: make it possible to wait for devices to be unplugged + - tmpfiles: ignore files marked with the sticky bit + - cryptsetup: handle password=none properly + - cryptsetup: properly parse cipher= switch + - cryptsetup: support non-LUKS crypto partitions + - ask-password: enable password agent + - automatically start cryptsetup when looking for mount source + - log: add automatic log target + - cryptsetup: hook up tool with ask-password + - manager: hookup generators + - split mount_point_is_api() and mount_point_ignore() +- replace boot.crypto job with systemd native crypto handling +- enable readahead (requires 2.6.37+ kernel's fanotify to work) + +------------------------------------------------------------------- +Thu Nov 11 07:44:02 CET 2010 - kay.sievers@novell.com + +- new snapshot + - tmpfiles: include reference to man page in tmpfiles files + - vconsole: support additional keymap for toggling layouts + - main: warn if /etc/mtab is not a symlink + - add bash completion for systemctl --system + - man: minor tmpfiles(5) updates and reindenting + - main: rename process on startup to 'systemd' to avoid confusion + - unit: add ConditionNull= condition + - ac-power: make ac-power a proper binary that scripts can call + - manager: parse RD_TIMESTAMP passed from initrd + - modules-load: fix minor race + - label: use internal utility functions wher epossible + - cryptsetup: minimal cryptsetup unit generator + - selinux: relabel /dev after loading policy + - log: downgrade syslog connection failure message + - service: delay automatic restart if job is pending + - manager: when isolating undo all pending jobs, too + - manager: only minimize impact if we are in fail mode +- replace /etc/mtab with link to /proc/self/mounts + +------------------------------------------------------------------- +Fri Nov 5 00:28:10 CET 2010 - kay.sievers@novell.com + +- new snapshot + - man/tmpfiles.d.xml: add a manpage for tmpfiles + - do not overwrite other udev tags + - readahead: shortcut replay if /.readahead doesn't exist + +------------------------------------------------------------------- +Fri Oct 29 21:20:57 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - fsck: return SUCCESS when we skip the check + - fsck: skip checking / if it is writable + - units: fix variable expansion + - mount: don't pull in nofail mounts by default, but use them + if they are around + - job: recursively fail BoundBy dependencies + - fsck: fix target name to check for + - units: rename fedora/single.service to rescue.service + - units: introduce plymouth-start and plymouth-kexec + - unit: get rid of IgnoreDependencyFailure= + - use util-linux:agetty instead of mingetty + - unit: replace StopRetroactively= by BindTo= dependencies + - automount: show who's triggering an automount + - units: run sysctl only if /etc/sysctl.conf exists + - systemctl: always show what and where for mount units + - shutdown: reword a few messages a little + - manager: show which jobs are actually installed after a transaction + - timer: when deserializing timer state stay elapsed + - device: set recursive_stop=true by default + - unit: suppress incorrect deserialization errors + - swap: there's no reason not order swap after sysinit + - socket: fix IPv6 availability detection + +------------------------------------------------------------------- +Wed Oct 27 12:00:26 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - create /dev/stderr and friends early on boot + - run sysv related scripts with TERM=linux + - add only swaps listed in /etc/fstab automatically to swap.target + - errors: refer to systemctl status when useful + - swap: add default cgroup to swap exec env + - readahead: bump a device's request_nr when enabling readahead + - shutdown: properly handle sigtimedwait() timing out + - main: fix typo in kernel cmdline parameters help + - ord-tty: properly handle SIGINT/SIGTERM + - systemctl: automatically spawn temporary password agent + - ask-password: properly handle multiple pending passwords + - ask-password: enable plymouth agent by default + - ask-password: add minimal plymouth password agent + +------------------------------------------------------------------- +Tue Oct 26 13:10:01 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - make sure to pass TERM=linux to all sysv scripts + - don't unset HOME/TERM when run in session mode + - mount: add nosuid,nodev,noexec switches to /var/lock and /var/run + - tmpfiles: Don't clean /var/lock/subsys + - tmpfiles: Make wtmp match utmp perms, and add btmp + - umount: Make sure / is remounted ro on shutdown + - unset HOME and TERM set from the kernel + - activate wall agent automatically + - ask-password: add basic tty agent + +------------------------------------------------------------------- +Sat Oct 23 18:09:23 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - rename ask-password-agent to gnome-ask-password-agent + - fsck: suppress error message if we cannot change into single + user mode since + - dbus: epose FsckPassNo property for service objects + - man: document systemctl --force + - introduce 'systemctl kill' + +------------------------------------------------------------------- +Sat Oct 23 14:57:57 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - syslog: enable kmsg bridge by default + - fsck: add initial version of fsck and quotacheck wrappers + - tmpfiles: remove forcefsck/fastboot flag files after boot + - swap: listen for POLLPRI events on /proc/swaps if availabled + - tmpfiles: integrate native tmpwatch + - shutdown: loop only as long as we manage to unmount/detach devices + - umount: disable dm devices by devnode, not by path name + - introduce final.target + - replace distro-specific shutdown scripts with native services + - try to get rid of DM devices + - log to console by default + - introduce kexec.service, kexec.target and exit.target + - hook in fsck@.service instance for all mount points with passno > 0 + - systemctl: warn if user enables unit with no installation instructions + - dbus: add introspection to midlevel paths + - look for dynamic throw-away units in /dev/.systemd/system + - major rework, use /sbin/swapon for setting up swaps + - introduce Restart=on-failure and Restart=on-abort + - units: enable utmp for serial gettys too + - rename 'banned' load state to 'masked' + - optionally, create INIT_PROCESS/DEAD_PROCESS entries for a service +- use systemd-native fsck/mount +- use systemd-native tmpfiles.d/ instead of tmpwatch + +------------------------------------------------------------------- +Fri Oct 8 14:49:04 CEST 2010 - kay.sievers@novell.com + +new snapshot + - fix 'systemctl enable getty@.service' + - properly support 'banning' of services + - handle nologin + - add native reboot/shutdown implementation + +------------------------------------------------------------------- +Thu Oct 7 15:58:10 CEST 2010 - kay.sievers@novell.com + +- version 11 + +------------------------------------------------------------------- +Wed Oct 6 09:27:13 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - readahead fixes + +------------------------------------------------------------------- +Sun Oct 3 08:08:13 UTC 2010 - aj@suse.de + +- /etc/modules.d was renamed to modules-load.d +- only include tmpfiles.d/*conf files + +------------------------------------------------------------------- +Wed Sep 29 11:55:11 CEST 2010 - kay.sievers@novell.com + +- don't create sysv order deps on merged units +- fix Provides: handling in LSB headers (network.target) +- native (optional) readahead + +------------------------------------------------------------------- +Sun Sep 26 20:39:53 UTC 2010 - aj@suse.de + +- Do not package man pages twice. + +------------------------------------------------------------------- +Wed Sep 22 11:40:02 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - basic services are enabled by default now + +------------------------------------------------------------------- +Tue Sep 21 14:39:02 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - vconsole and locale setup + - hook up tmpwatch + +------------------------------------------------------------------- +Fri Sep 17 10:58:24 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - add new utility to initialize the virtual console + - initialize locale from /etc/locale by default + - ask-password: allow services query SSL/harddisk passphrases + +------------------------------------------------------------------- +Fri Sep 17 10:54:24 CEST 2010 - kay.sievers@novell.com + +- version 10 + - logger: support SOCK_STREAM /dev/log sockets + - make sure the file system is writable before we write utmp data + - systemctl: use isolate when called as telinit for a runlevel + - initctl: properly use isolate when activating runlevels + - set HOME=/root when running shells + - make sure we don't crash if there's an automount unit without + mount unit + - start logger only after syslog is up + +------------------------------------------------------------------- +Fri Sep 3 11:52:42 CEST 2010 - kay.sievers@novell.com + +- version 9 + - units: don't add shutdown conflicts dep to umount.target + - dbus: don't send cgroup agent messages directly to system bus + - dbus: don't accept activation requests anymore if we are going + down anyway + - systemctl: fix return value of systemctl start and friends + - service: wait for process exit only if we actually killed + somebody + +------------------------------------------------------------------- +Thu Aug 26 22:14:04 CEST 2010 - kay.sievers@novell.com + +- version 8 + - KERNEL 2.6.36+ REQUIRED! + - mount cgroup file systems to /sys/fs/cgroup instead of /cgroup + - invoke sulogin instead of /bin/sh + - systemctl: show timestamps for state changes + - add global configuration options for handling of auto mounts + +------------------------------------------------------------------- +Fri Aug 20 06:51:26 CEST 2010 - kay.sievers@novell.com + +- apply /etc/fstab mount options to all api mounts +- properly handle LABEL="" in fstab +- do not consider LSB exit codes 5 and 6 as failure + +------------------------------------------------------------------- +Tue Aug 17 22:54:41 CEST 2010 - kay.sievers@novell.com + +- prefix sysv job descriptions with LSB: +- add native sysctl + hwclock + random seed service files +- properly fallback to rescue.target if default.target is hosed +- rename ValidNoProcess= to RemainAfterExit= +- add systemd-modules-load tool to handle /etc/modules.d/ + +------------------------------------------------------------------- +Tue Aug 17 09:01:04 CEST 2010 - kay.sievers@novell.com + +- add support for delayed shutdown, similar to sysv in style +- rename Type=finish to Type=oneshot and allow multiple ExecStart= +- don't show ENOENT for non exitent configuration files +- log build time features on startup +- rearrange structs to make them smaller +- move runlevel[2-5] links to /lib +- create default.target link to /lib not /etc +- handle random-seed +- write utmp record before we kill all processes +- create /var/lock/subsys, /var/run/utmp + +------------------------------------------------------------------- +Wed Aug 11 11:29:17 CEST 2010 - kay.sievers@novell.com + +- add audit messages for service changes +- update utmp with external program +- all to refuse manual service starting/stopping + +------------------------------------------------------------------- +Tue Aug 10 06:54:23 CEST 2010 - kay.sievers@novell.com + +- version 7 + - hide output if quiet is passed on the kernel cmdline + - fix auto restarting of units after a configuration reload + - don't call bus_path_escape() with NULL unit name + +------------------------------------------------------------------- +Fri Aug 6 13:07:35 CEST 2010 - kay.sievers@novell.com + +- version 6 + - man page update + +------------------------------------------------------------------- +Fri Aug 6 09:48:34 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - downgrade a few log messages + - properly handle devices which are referenced before they exist + +------------------------------------------------------------------- +Fri Aug 6 01:59:50 CEST 2010 - kay.sievers@novell.com + +- new snapshot + - fix dependency cycle of boot.* by splitting fsck.target + - sort boot.* before other sysv services + from sysinint.target + - start getty for serial console + +------------------------------------------------------------------- +Thu Aug 5 23:12:32 CEST 2010 - kay.sievers@novell.com + +- add licence to subpackages + +------------------------------------------------------------------- +Wed Aug 4 12:42:23 CEST 2010 - kay.sievers@novell.com + +- version 5 + - selinux fixes +- fix hanging 'reboot' started from vc + +------------------------------------------------------------------- +Mon Aug 2 16:33:20 CEST 2010 - kay.sievers@novell.com + +- enable getty.target by default + +------------------------------------------------------------------- +Sat Jul 24 11:16:52 CEST 2010 - kay.sievers@novell.com + +- at install, read old inittab for the defaul target/runlevel +- disable services on package uninstall + +------------------------------------------------------------------- +Sat Jul 24 09:50:05 CEST 2010 - kay.sievers@novell.com + +- version 4 + - merge systemd-install into systemctl + +------------------------------------------------------------------- +Fri Jul 23 10:39:19 CEST 2010 - kay.sievers@novell.com + +- create config files in /etc in %post +- mark files in /etc as config +- remove nodev from /dev/pts +- add selinux support + +------------------------------------------------------------------- +Thu Jul 22 10:51:16 CEST 2010 - kay.sievers@novell.com + +- version 4 (pre) + - require newer vala + - add [Install] section to getty.target and remote-fs.target +- re-enable post-build check + +------------------------------------------------------------------- +Wed Jul 21 08:51:22 CEST 2010 - kay.sievers@novell.com + +- do not add sysv services that are not enabled in /etc/rcN.d/ +- allow symlinking unit files to /dev/null +- remove only pam sessions we ourselves created +- unit files in /etc/ always take precedence, even over link targets + +------------------------------------------------------------------- +Tue Jul 20 21:20:43 CEST 2010 - kay.sievers@novell.com + +- fix access mode verification of FIFOs + +------------------------------------------------------------------- +Sun Jul 18 11:31:06 CEST 2010 - kay.sievers@novell.com + +- fix default mode of /var/run and /var/lock +- force /var/run and /var/lock to be on tmpfs + +------------------------------------------------------------------- +Wed Jul 14 17:49:57 CEST 2010 - kay.sievers@novell.com + +- always enable udev and dbus until we can require systemd from + packages providing systemd service files + +------------------------------------------------------------------- +Wed Jul 14 01:10:27 CEST 2010 - kay.sievers@novell.com + +- drop systemd-units.rpm + +------------------------------------------------------------------- +Wed Jul 14 00:07:24 CEST 2010 - kay.sievers@novell.com + +- version 3 + - treat non-existing cgroups like empty ones, to deal with races + - replace --running-as= by --session and --system + - always allow stopping of units that failed to load + +------------------------------------------------------------------- +Tue Jul 13 06:22:56 CEST 2010 - kay.sievers@novell.com + +- update + +------------------------------------------------------------------- +Mon Jul 12 18:23:41 CEST 2010 - kay.sievers@novell.com + +- drop libcgroup + +------------------------------------------------------------------- +Mon Jul 12 10:04:26 CEST 2010 - kay.sievers@novell.com + +- trim cgroups for services that are "active" but "exited" +- drop /bin/init hack and require now fixed mkinitrd + +------------------------------------------------------------------- +Sun Jul 11 23:38:45 CEST 2010 - kay.sievers@novell.com + +- fix reboot issue +- fix abstract namespace name handling (needs udev update) +- prefer private D-Bus socket wherever possible + +------------------------------------------------------------------- +Sun Jul 11 00:50:14 CEST 2010 - kay.sievers@novell.com + +- D-Bus 1.3.2 support +- use COLD_BOOT=1 on reboot to skip sysv boot.d/ handling + +------------------------------------------------------------------- +Fri Jul 9 10:05:00 CEST 2010 - kay.sievers@novell.com + +- fix typo in spec file + +------------------------------------------------------------------- +Fri Jul 9 09:09:33 CEST 2010 - kay.sievers@novell.com + +- provide /bin/init to be found by 'too simple' mkinitrd, and work + around mindless relinking of relative links in the buildsystem +- add rpmlintrc to silent warnings about intentional behavior + +------------------------------------------------------------------- +Fri Jul 9 06:18:52 CEST 2010 - kay.sievers@novell.com + +- version 2 + +------------------------------------------------------------------- +Thu Jul 8 23:48:09 CEST 2010 - kay.sievers@novell.com + +- fix 'reboot -w' to skip the actual reboot +- fix segfault in D-Bus code +- use unique instead of multiple keys in config file +- support continuation lines in config files +- support multiple commands in a single key in config files +- adapt log level of some messages + +------------------------------------------------------------------- +Wed Jul 7 06:20:00 CEST 2010 - kay.sievers@novell.com + +- version 1 + - default log level to INFO + - show welcome message + +------------------------------------------------------------------- +Tue Jul 6 08:55:03 CEST 2010 - kay.sievers@novell.com + +- add systemd-install --start option +- add more documentation + +------------------------------------------------------------------- +Mon Jul 5 16:23:28 CEST 2010 - kay.sievers@novell.com + +- new snapshot with extended D-Bus support + +------------------------------------------------------------------- +Sun Jul 4 21:31:49 CEST 2010 - kay.sievers@novell.com + +- new snapshot with default unit dependency handling + +------------------------------------------------------------------- +Sat Jul 3 16:54:19 CEST 2010 - kay.sievers@novell.com + +- new snapshot + +------------------------------------------------------------------- +Fri Jul 2 10:04:26 CEST 2010 - kay.sievers@novell.com + +- add more documentation + +------------------------------------------------------------------- +Thu Jul 1 17:40:28 CEST 2010 - kay.sievers@novell.com + +- new snapshot + +------------------------------------------------------------------- +Fri Jun 25 00:34:03 CEST 2010 - kay.sievers@novell.com + +- split off systemd-units.rpm which can be pulled-in by other + packages without further dependencies + +------------------------------------------------------------------- +Thu Jun 24 09:40:06 CEST 2010 - kay.sievers@novell.com + +- add more documentation + +------------------------------------------------------------------- +Tue Jun 22 22:13:02 CEST 2010 - kay.sievers@novell.com + +- more man pages and documentation + +------------------------------------------------------------------- +Tue Jun 22 18:14:05 CEST 2010 - kay.sievers@novell.com + +- conflict with upstart +- include all installed doc files + +------------------------------------------------------------------- +Tue Jun 22 09:33:44 CEST 2010 - kay.sievers@novell.com + +- provide pam module + +------------------------------------------------------------------- +Mon Jun 21 10:21:20 CEST 2010 - kay.sievers@novell.com + +- use private D-Bus connection +- properly handle replacing a running upstart + +------------------------------------------------------------------- +Fri Jun 18 09:37:46 CEST 2010 - kay.sievers@novell.com + +- implement wall message in halt/reboot/... +- speak /dev/initctl to old /sbin/init after installing + +------------------------------------------------------------------- +Thu Jun 17 23:54:59 CEST 2010 - kay.sievers@novell.com + +- drop no longer needed -fno-strict-aliasing +- add README and examples + +------------------------------------------------------------------- +Thu Jun 17 23:23:42 CEST 2010 - kay.sievers@novell.com + +- enable pam and libwrap + +------------------------------------------------------------------- +Thu Jun 17 23:10:57 CEST 2010 - kay.sievers@novell.com + +- provide systemd-sysvinit.rpm with /sbin/init and friends + +------------------------------------------------------------------- +Thu Jun 17 11:06:14 CEST 2010 - kay.sievers@novell.com + +- libwrap / pam support + +------------------------------------------------------------------- +Wed Jun 16 09:46:15 CEST 2010 - kay.sievers@novell.com + +- initial packaging of experimental version 0 + diff --git a/systemd-gtk.spec b/systemd-gtk.spec new file mode 100644 index 00000000..284c6913 --- /dev/null +++ b/systemd-gtk.spec @@ -0,0 +1,83 @@ +# +# spec file for package systemd-gtk +# +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: systemd-gtk +Url: http://www.freedesktop.org/wiki/Software/systemd +Version: 34 +Release: 1 +License: GPLv2+ +Group: System/Base +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: libudev-devel udev +BuildRequires: dbus-1-devel +BuildRequires: audit-devel +BuildRequires: gperf +BuildRequires: libcap-devel +BuildRequires: libacl-devel +BuildRequires: tcpd-devel +BuildRequires: pam-devel +BuildRequires: libcryptsetup-devel +BuildRequires: pkg-config +BuildRequires: libselinux-devel libsepol-devel +BuildRequires: intltool +BuildRequires: gtk2-devel libnotify-devel +Summary: Graphical front-end for systemd +Requires: systemd = %{version} +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.bz2 +Source1: systemd-rpmlintrc + +# Upstream First - Policy: +# Never add any patches to this package without the upstream commit id +# in the patch. Any patches added here without a very good reason to make +# an exception will be silently removed with the next version update. + +%description +Graphical front-end for systemd system and service manager. + +%prep +%setup -q -n systemd-%{version} + +%build +autoreconf -fiv +# prevent pre-generated and distributed files from re-building +find . -name "*.[1-8]" -exec touch '{}' \; +touch src/systemadm.c +export V=1 +%configure \ + --with-distro=suse \ + --docdir=%{_docdir}/systemd \ + --with-rootdir= \ + CFLAGS="%{optflags}" +make %{?_smp_mflags} + +%install +%makeinstall +# remove everything but systemadm and password agent +find %{buildroot} -not -type d -not -name 'systemadm*' -not -name systemd-gnome-ask-password-agent -delete + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%{_bindir}/systemadm +%{_bindir}/systemd-gnome-ask-password-agent +%{_mandir}/man1/systemadm.1* + +%changelog diff --git a/systemd.changes b/systemd.changes index 61dccc8e..59ee88b4 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com + +- Update to version 34: + * Bugfixes + * optionaly apply cgroup attributes to cgroups systemd creates + * honour sticky bit when trimming cgroup trees + * improve readahead +- Add libacl-devel as BuildRequires (needed for systemd-uaccess) +- Add some %{nil} to systemd.macros to fix some build issues. +- Fix dbus assertion +- move gtk part to its own package, to reduce bootstrapping + (bnc#713981). + ------------------------------------------------------------------- Fri Aug 26 14:10:30 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index f7b95c1b..bd651be2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,8 +21,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 33 -Release: 17 +Version: 34 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -32,11 +32,11 @@ BuildRequires: dbus-1-devel BuildRequires: audit-devel BuildRequires: gperf BuildRequires: libcap-devel +BuildRequires: libacl-devel BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config -BuildRequires: gtk2-devel libnotify-devel libxslt-devel BuildRequires: libselinux-devel libsepol-devel BuildRequires: intltool Requires: udev >= 172 @@ -62,18 +62,7 @@ Patch8: tty1.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM aj@suse.de gperf: Include missing.h -Patch2: gperf-missing.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- accept none option in crypttab -Patch3: systemd-cryptsetup.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't set getty before passphrase is typed -Patch4: systemd-cryptsetup-query.patch -# PATCH-FIX-UPSTREAM aj@suse.com -- fix crash on systemctl enable -Patch5: fix-crash.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com bnc671673 -- fix kexec support -Patch7: 0001-initctl-check-for-kexec_loaded-when-reboot-is-reques.patch -# PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't look for system manager configuration when running user manager -Patch9: 0001-path-lookup-monitor-etc-systemd-user-for-user-manage.patch +Patch9: 0001-execute-fix-bus-serialization-for-commands.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -95,15 +84,6 @@ Requires: pkg-config %description devel Development headers and auxiliary files for developing applications for systemd. -%package gtk -License: GPLv2+ -Group: System/Base -Summary: Graphical front-end for systemd -Requires: %{name} = %{version} - -%description gtk -Graphical front-end for systemd system and service manager. - %package sysvinit License: GPLv2+ Group: System/Base @@ -134,12 +114,7 @@ Plymouth integration for systemd %prep %setup -q %patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 %patch6 -p1 -%patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -153,6 +128,7 @@ export V=1 --with-distro=suse \ --docdir=%{_docdir}/systemd \ --with-rootdir= \ + --disable-gtk \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -185,6 +161,7 @@ ln -s systemd-tmpfiles-setup.service %{buildroot}/lib/systemd/system/cleanup.ser ln -s /dev/null %{buildroot}/lib/systemd/system/clock.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/lib/systemd/system/device-mapper.service ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service @@ -334,11 +311,6 @@ rm -rf %{buildroot} %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated -%files gtk -%defattr(-,root,root,-) -%{_bindir}/systemadm -%{_bindir}/systemd-gnome-ask-password-agent -%{_mandir}/man1/systemadm.1* %files devel %defattr(-,root,root,-) From 46e2c8a6138edc22fa9081655a52853b0fb96220507e3712f18d8315282cc922 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Mon, 5 Sep 2011 16:12:00 +0000 Subject: [PATCH 063/221] Autobuild autoformatter for 80666 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=64 --- systemd-gtk.spec | 1 + systemd.spec | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 284c6913..5a5d1025 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -17,6 +17,7 @@ # norootforbuild + Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd Version: 34 diff --git a/systemd.spec b/systemd.spec index bd651be2..665fe7ee 100644 --- a/systemd.spec +++ b/systemd.spec @@ -311,7 +311,6 @@ rm -rf %{buildroot} %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated - %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd-daemon.so From 27ab9ee58f30c347fa47715b4e0d2b486f13f96f894d9f3d4d4477c591c626fa Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Sun, 11 Sep 2011 17:42:54 +0000 Subject: [PATCH 064/221] Accepting request 81718 from Base:System - Add revert_insserv_conf_parsing.patch and systemd-insserv_conf: remove insserv.conf parsing from systemd and use generator instead. - put back default.target creation at package install and remove inittab generator, Yast2 is now able to create it. - Add revert_insserv_conf_parsing.patch and systemd-insserv_conf: remove insserv.conf parsing from systemd and use generator instead. - put back default.target creation at package install and remove inittab generator, Yast2 is now able to create it. (forwarded request 81717 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/81718 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=65 --- revert_insserv_conf_parsing.patch | 103 ++++++++++++++++++++++++++++++ systemd-gtk.changes | 9 +++ systemd-inittab | 8 --- systemd-insserv_conf | 34 ++++++++++ systemd.changes | 9 +++ systemd.spec | 13 +++- 6 files changed, 165 insertions(+), 11 deletions(-) create mode 100644 revert_insserv_conf_parsing.patch delete mode 100644 systemd-inittab create mode 100644 systemd-insserv_conf diff --git a/revert_insserv_conf_parsing.patch b/revert_insserv_conf_parsing.patch new file mode 100644 index 00000000..3279bd1d --- /dev/null +++ b/revert_insserv_conf_parsing.patch @@ -0,0 +1,103 @@ +From b0ff66c6e92ca9d9458f3236ee37397635bb0f0e Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Fri, 9 Sep 2011 11:19:26 +0200 +Subject: [PATCH] Revert "service: parse insserv.conf and plugs its system facilities into systemd." + +Let's use a generator instead + +This reverts commit de3910a324aefcb15c26be27033d6917494e5946. +--- + src/service.c | 70 --------------------------------------------------------- + 1 files changed, 0 insertions(+), 70 deletions(-) + +diff --git a/src/service.c b/src/service.c +index abd8f36..37cb0bc 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -2969,72 +2969,6 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + } + + #ifdef HAVE_SYSV_COMPAT +- +-#ifdef TARGET_SUSE +-static void sysv_facility_in_insserv_conf(Manager *mgr) { +- FILE *f=NULL; +- int r; +- +- if (!(f = fopen("/etc/insserv.conf", "re"))) { +- r = errno == ENOENT ? 0 : -errno; +- goto finish; +- } +- +- while (!feof(f)) { +- char l[LINE_MAX], *t; +- char **parsed = NULL; +- +- if (!fgets(l, sizeof(l), f)) { +- if (feof(f)) +- break; +- +- r = -errno; +- log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r)); +- goto finish; +- } +- +- t = strstrip(l); +- if (*t != '$' && *t != '<') +- continue; +- +- parsed = strv_split(t,WHITESPACE); +- /* we ignore , not used, equivalent to X-Interactive */ +- if (parsed && !startswith_no_case (parsed[0], "")) { +- char *facility; +- Unit *u; +- if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) +- continue; +- if ((u = manager_get_unit(mgr, facility)) && (u->meta.type == UNIT_TARGET)) { +- UnitDependency e; +- char *dep = NULL, *name, **j; +- +- STRV_FOREACH (j, parsed+1) { +- if (*j[0]=='+') { +- e = UNIT_WANTS; +- name = *j+1; +- } +- else { +- e = UNIT_REQUIRES; +- name = *j; +- } +- if (sysv_translate_facility(name, NULL, &dep) < 0) +- continue; +- +- r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); +- free(dep); +- } +- } +- free(facility); +- } +- strv_free(parsed); +- } +-finish: +- if (f) +- fclose(f); +- +-} +-#endif +- + static int service_enumerate(Manager *m) { + char **p; + unsigned i; +@@ -3183,10 +3117,6 @@ static int service_enumerate(Manager *m) { + + r = 0; + +-#ifdef TARGET_SUSE +- sysv_facility_in_insserv_conf (m); +-#endif +- + finish: + free(path); + free(fpath); +-- +1.7.3.4 + diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 59ee88b4..079c1cca 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Sep 9 09:28:54 UTC 2011 - fcrozat@suse.com + +- Add revert_insserv_conf_parsing.patch and systemd-insserv_conf: + remove insserv.conf parsing from systemd and use generator + instead. +- put back default.target creation at package install and remove + inittab generator, Yast2 is now able to create it. + ------------------------------------------------------------------- Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com diff --git a/systemd-inittab b/systemd-inittab deleted file mode 100644 index 7fc3de96..00000000 --- a/systemd-inittab +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# Try to read default runlevel from the old inittab if it exists -runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) -if [ -n "$runlevel" -a -e /lib/systemd/system/runlevel$runlevel.target ] ; then - /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target $1/default.target 2>&1 && exit 0 -fi -#failsafe -/bin/ln -sf /lib/systemd/system/graphical.target $1/default.target diff --git a/systemd-insserv_conf b/systemd-insserv_conf new file mode 100644 index 00000000..f77de73a --- /dev/null +++ b/systemd-insserv_conf @@ -0,0 +1,34 @@ +#!/bin/bash + +[ -r /etc/insserv.conf ] || exit 0 + +declare -A facilities +facilities["local_fs"]="local-fs.target" +facilities["localfs"]="local-fs.target" +facilities["named"]="nss-lookup.target" +facilities["network"]="network.target" +# done in systemd code +#facilities["portmap"]="rpcbind.target" +facilities["remote_fs"]="remote-fs.target" +facilities["syslog"]="syslog.target" +facilities["time"]="time-sync.target" + +while read line ; do + case "$line" in + \#*|"" ) continue;; + \<* ) continue;; + \$*) t=${line%% *} + target=${facilities[${t:1}]} + [ -z $target ] && continue + mkdir -p $1/$target.{requires,wants} + for dep in ${line##* } ; do + stripped_dep=${dep/boot./} + case "$stripped_dep" in + +*) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:2}]:-${stripped_dep:1}.service} $1/$target.wants/ ;; + *) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:1}]:-${stripped_dep}.service} $1/$target.wants/ ;; + esac + done + ;; + esac +done < /etc/insserv.conf + diff --git a/systemd.changes b/systemd.changes index 59ee88b4..079c1cca 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Sep 9 09:28:54 UTC 2011 - fcrozat@suse.com + +- Add revert_insserv_conf_parsing.patch and systemd-insserv_conf: + remove insserv.conf parsing from systemd and use generator + instead. +- put back default.target creation at package install and remove + inittab generator, Yast2 is now able to create it. + ------------------------------------------------------------------- Thu Sep 1 09:25:40 UTC 2011 - fcrozat@novell.com diff --git a/systemd.spec b/systemd.spec index 665fe7ee..f4eddd49 100644 --- a/systemd.spec +++ b/systemd.spec @@ -51,12 +51,13 @@ Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert Source4: macros.systemd -Source5: systemd-inittab +Source5: systemd-insserv_conf Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch # don't start getty on tty1 until all password request are done Patch8: tty1.patch +Patch10: revert_insserv_conf_parsing.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -100,7 +101,6 @@ Drop-in replacement of System V init tools. %package plymouth - License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd @@ -117,6 +117,7 @@ Plymouth integration for systemd %patch6 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 %build autoreconf -fiv @@ -149,7 +150,6 @@ ln -s ../bin/systemctl %{buildroot}/sbin/telinit ln -s ../bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -rm -f %{buildroot}/lib/systemd/system/default.target %if !%{build_plymouth} rm -f %{buildroot}/lib/systemd/system/plymouth-*.service rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-*.service @@ -186,6 +186,13 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : +# Try to read default runlevel from the old inittab if it exists +if [ ! -e /etc/systemd/system/default.target ]; then + runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) + if [ -n "$runlevel" ] ; then + /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : + fi +fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then From 8534619c8c2d442dc95d9b3770d5236eb75633c4bbb2bbc5df59bccdb5005417 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Sun, 11 Sep 2011 17:43:32 +0000 Subject: [PATCH 065/221] Autobuild autoformatter for 81718 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=66 --- systemd-gtk.spec | 2 +- systemd.spec | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 5a5d1025..715856ca 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -21,7 +21,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd Version: 34 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/systemd.spec b/systemd.spec index f4eddd49..8e03ed9c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 34 -Release: 1 +Release: 3 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -101,6 +101,7 @@ Drop-in replacement of System V init tools. %package plymouth + License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd From a28caebf3e75cc67c2b5609f18f029334fce2085dcca860e895bc2fbd9255380 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 13 Sep 2011 10:33:24 +0000 Subject: [PATCH 066/221] Accepting request 81891 from Base:System - Do not mask localnet service, it is not yet handled by systemd. (bnc#716746) - Do not mask localnet service, it is not yet handled by systemd. (bnc#716746) OBS-URL: https://build.opensuse.org/request/show/81891 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=67 --- systemd-gtk.changes | 6 ++++++ systemd-gtk.spec | 2 +- systemd.changes | 6 ++++++ systemd.spec | 4 ++-- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 079c1cca..0d245b9c 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 12 08:33:04 UTC 2011 - fcrozat@suse.com + +- Do not mask localnet service, it is not yet handled by systemd. + (bnc#716746) + ------------------------------------------------------------------- Fri Sep 9 09:28:54 UTC 2011 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 715856ca..7046fa6e 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -21,7 +21,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd Version: 34 -Release: 2 +Release: 3 License: GPLv2+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/systemd.changes b/systemd.changes index 079c1cca..0d245b9c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 12 08:33:04 UTC 2011 - fcrozat@suse.com + +- Do not mask localnet service, it is not yet handled by systemd. + (bnc#716746) + ------------------------------------------------------------------- Fri Sep 9 09:28:54 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 8e03ed9c..d716adb3 100644 --- a/systemd.spec +++ b/systemd.spec @@ -101,7 +101,6 @@ Drop-in replacement of System V init tools. %package plymouth - License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd @@ -168,7 +167,8 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service -ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service +# need to be implemented in systemd directly +#ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service ln -s /dev/null %{buildroot}/lib/systemd/system/swap.service From e40d6976ed6de9cae0b538755ad2f5ee8a21b6fd6c369ac1bad8fab1162522a3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 13 Sep 2011 10:33:34 +0000 Subject: [PATCH 067/221] Autobuild autoformatter for 81891 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=68 --- systemd.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index d716adb3..ea15225f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 34 -Release: 3 +Release: 5 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -101,6 +101,7 @@ Drop-in replacement of System V init tools. %package plymouth + License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd From c59834472bb2388e1f0a603efab12f2e46aaebd8fc12ddf8dacb46b7c88ce446 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Mon, 19 Sep 2011 16:05:32 +0000 Subject: [PATCH 068/221] Accepting request 82495 from Base:System - Create -32bit package (bnc#713319) (forwarded request 82494 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/82495 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=69 --- baselibs.conf | 3 +++ systemd-gtk.changes | 5 +++++ systemd-gtk.spec | 2 +- systemd.changes | 5 +++++ systemd.spec | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 baselibs.conf diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 00000000..e0865a24 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,3 @@ +systemd + supplements "packageand(systemd:pam-)" + -/lib/systemd/system/ diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 0d245b9c..0a375c0a 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Sep 16 15:54:54 UTC 2011 - fcrozat@suse.com + +- Create -32bit package (bnc#713319) + ------------------------------------------------------------------- Mon Sep 12 08:33:04 UTC 2011 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 7046fa6e..2ec7b288 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -21,7 +21,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd Version: 34 -Release: 3 +Release: 5 License: GPLv2+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/systemd.changes b/systemd.changes index 0d245b9c..0a375c0a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Sep 16 15:54:54 UTC 2011 - fcrozat@suse.com + +- Create -32bit package (bnc#713319) + ------------------------------------------------------------------- Mon Sep 12 08:33:04 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index ea15225f..7d036375 100644 --- a/systemd.spec +++ b/systemd.spec @@ -52,6 +52,7 @@ Source2: localfs.service Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf +Source6: baselibs.conf Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -101,7 +102,6 @@ Drop-in replacement of System V init tools. %package plymouth - License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd From 45e73fd3a1d5599fc9d114548b31b2d9fff60da32924c534fcac75757e4145ff Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 26 Sep 2011 08:20:30 +0000 Subject: [PATCH 069/221] Accepting request 84643 from Base:System - Add systemd-splash / bootsplash-startup.service: enable bootsplash at startup. (forwarded request 84642 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/84643 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=70 --- bootsplash-startup.service | 9 +++++++++ systemd-bootsplash | 3 +++ systemd-gtk.changes | 6 ++++++ systemd.changes | 6 ++++++ systemd.spec | 4 ++++ 5 files changed, 28 insertions(+) create mode 100644 bootsplash-startup.service create mode 100644 systemd-bootsplash diff --git a/bootsplash-startup.service b/bootsplash-startup.service new file mode 100644 index 00000000..8ed061fe --- /dev/null +++ b/bootsplash-startup.service @@ -0,0 +1,9 @@ +[Unit] +Description=Start bootsplash +DefaultDependencies=no +ConditionKernelCommandLine=splash=silent + +[Service] +ExecStart=/lib/system/systemd-bootsplash B +Type=oneshot +RemainAfterExit=true diff --git a/systemd-bootsplash b/systemd-bootsplash new file mode 100644 index 00000000..653cbe7d --- /dev/null +++ b/systemd-bootsplash @@ -0,0 +1,3 @@ +#! /bin/bash +. /etc/rc.splash $1 +splashtrigger "rlchange $1" diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 0a375c0a..0a3b1e3f 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Sep 23 15:39:03 UTC 2011 - fcrozat@suse.com + +- Add systemd-splash / bootsplash-startup.service: enable + bootsplash at startup. + ------------------------------------------------------------------- Fri Sep 16 15:54:54 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 0a375c0a..0a3b1e3f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Sep 23 15:39:03 UTC 2011 - fcrozat@suse.com + +- Add systemd-splash / bootsplash-startup.service: enable + bootsplash at startup. + ------------------------------------------------------------------- Fri Sep 16 15:54:54 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 7d036375..1e9dca3e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -53,6 +53,8 @@ Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf Source6: baselibs.conf +Source7: systemd-bootsplash +Source8: bootsplash-startup.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -142,6 +144,8 @@ find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators +install -m755 %{S:7} %{buildroot}/lib/systemd/ +install -m644 %{S:8} %{buildroot}/lib/systemd/system/ ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt From 189e99161d82134a826956e5b0b59b6314afa2cead6b7a08f03aa09e4a0f4636 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 27 Sep 2011 14:06:18 +0000 Subject: [PATCH 070/221] Accepting request 84932 from Base:System - Merge migration rpm macros into service_add/service_del macros. - Use systemd presets in rpm macros - Add fix-reload.patch: handle daemon-reload and start condition properly (bnc#719221). OBS-URL: https://build.opensuse.org/request/show/84932 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=71 --- fix-reload.patch | 43 ++++++++++++++++++ macros.systemd | 107 ++++++++++++++++++++------------------------ systemd-gtk.changes | 8 ++++ systemd.changes | 8 ++++ systemd.spec | 7 ++- 5 files changed, 113 insertions(+), 60 deletions(-) create mode 100644 fix-reload.patch diff --git a/fix-reload.patch b/fix-reload.patch new file mode 100644 index 00000000..46462058 --- /dev/null +++ b/fix-reload.patch @@ -0,0 +1,43 @@ +From a82e5507a6e03766957d43ca8818112ae9766288 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 Sep 2011 21:32:18 +0200 +Subject: [PATCH] unit: don't recheck conditions when a unit is already starting but unit_start() is invoked + +--- + src/unit.c | 16 ++++++++++------ + 1 files changed, 10 insertions(+), 6 deletions(-) + +diff --git a/src/unit.c b/src/unit.c +index 3ce87ea..0b435cb 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -888,16 +888,20 @@ int unit_start(Unit *u) { + if (u->meta.load_state != UNIT_LOADED) + return -EINVAL; + +- /* If this is already (being) started, then this will +- * succeed. Note that this will even succeed if this unit is +- * not startable by the user. This is relied on to detect when +- * we need to wait for units and when waiting is finished. */ ++ /* If this is already started, then this will succeed. Note ++ * that this will even succeed if this unit is not startable ++ * by the user. This is relied on to detect when we need to ++ * wait for units and when waiting is finished. */ + state = unit_active_state(u); + if (UNIT_IS_ACTIVE_OR_RELOADING(state)) + return -EALREADY; + +- /* If the conditions failed, don't do anything at all */ +- if (!unit_condition_test(u)) { ++ /* If the conditions failed, don't do anything at all. If we ++ * already are activating this call might still be useful to ++ * speed up activation in case there is some hold-off time, ++ * but we don't want to recheck the condition in that case. */ ++ if (state != UNIT_ACTIVATING && ++ !unit_condition_test(u)) { + log_debug("Starting of %s requested but condition failed. Ignoring.", u->meta.id); + return -EALREADY; + } +-- +1.7.3.4 + diff --git a/macros.systemd b/macros.systemd index 59a96433..8995a9a7 100644 --- a/macros.systemd +++ b/macros.systemd @@ -6,8 +6,11 @@ # # add %systemd_requires in the specfile # +# %pre +# %service_add_pre demo.service demo1.service +# # %post -# %service_add demo.service demo1.service +# %service_add_post demo.service demo1.service # # %preun # %service_del_preun demo.service @@ -15,64 +18,30 @@ # %postun # %service_del_postun demo.service # -# -# when migrating a package from sysvinit to systemd : -# %triggerun -- package_name < version_where_switch_occured -# %service_migrate_to_systemd [ -l run_level ] service_name.service -# foobar.socket -# -# -l is optional ### # This is for /bin/systemctl -%systemd_requires \ -Requires(pre): systemd \ -Requires(post): systemd \ -Requires(preun): systemd \ -Requires(postun): systemd \ +%systemd_requires \ +Requires(pre): systemd \ +Requires(post): systemd \ +Requires(preun): systemd \ +Requires(postun): systemd \ %_unitdir /lib/systemd/system -# On install, tell systemd to reload its unit files -%service_add() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -if [ $FIRST_ARG -eq 1 ]; then \ -# Initial installation \ - /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -fi \ -%{nil} - -# On uninstall, disable and stop services -%service_del_preun() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -if [ $FIRST_ARG -eq 0 ]; then \ -# Package removal, not upgrade \ - /bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - /bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ -fi \ -%{nil} - -# On uninstall, tell systemd to reload its unit files -%service_del_postun() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -if [ $FIRST_ARG -ge 1 ]; then \ -# Package upgrade, not uninstall \ - /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ -fi \ -%{nil} - -%service_migrate_to_systemd_pre() \ +%service_add_pre() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ # disable migration if initial install under systemd \ if [ $FIRST_ARG -eq 1 ]; then \ for service in %{?*} ; do \ - touch "/var/lib/systemd/migrated/$service" \ + sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + touch "/var/lib/systemd/migrated/$sysv_service" \ done \ else \ for service in %{?*} ; do \ - if [ ! -e "/var/lib/systemd/migrated/$service" ]; then \ - services_to_migrate="$services_to_migrate $service" \ + sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ + services_to_migrate="$services_to_migrate $sysv_service" \ fi \ done \ if [ -n "$services_to_migrate" ]; then \ @@ -81,25 +50,45 @@ else \ fi \ %{nil} -%service_migrate_to_systemd_post() \ +# On install, tell systemd to reload its unit files +%service_add_post() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ for service in %{?*} ; do \ - if [ ! -e "/var/lib/systemd/migrated/$service" ]; then \ - services_to_migrate="$services_to_migrate $service" \ - touch "/var/lib/systemd/migrated/$service" \ + sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ + services_to_migrate="$services_to_migrate $sysv_service" \ + touch "/var/lib/systemd/migrated/$sysv_service" \ fi \ done \ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ +fi \ +/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ +/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ +%{nil} + +# On uninstall, disable and stop services +%service_del_preun() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +if [ $FIRST_ARG -eq 0 ]; then \ +# Package removal, not upgrade \ + /bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + /bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ +fi \ +%{nil} + +# On uninstall, tell systemd to reload its unit files +%service_del_postun() \ +test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +if [ $FIRST_ARG -ge 1 ]; then \ +# Package upgrade, not uninstall \ + /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ +else # package uninstall \ + for service in %{?*} ; do \ + sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + rm -f "/var/lib/systemd/migrated/$sysv_service" 2> /dev/null \ + done \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ fi \ %{nil} -%service_migrate_to_systemd_postun() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -if [ $FIRST_ARG -eq 0 ]; then \ - for service in %{?*} ; do \ - rm -f "/var/lib/systemd/migrated/$service" 2> /dev/null \ - done \ -fi \ -%{nil} - diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 0a3b1e3f..7f8c2257 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Sep 26 14:52:46 UTC 2011 - fcrozat@suse.com + +- Merge migration rpm macros into service_add/service_del macros. +- Use systemd presets in rpm macros +- Add fix-reload.patch: handle daemon-reload and start condition + properly (bnc#719221). + ------------------------------------------------------------------- Fri Sep 23 15:39:03 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 0a3b1e3f..7f8c2257 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Sep 26 14:52:46 UTC 2011 - fcrozat@suse.com + +- Merge migration rpm macros into service_add/service_del macros. +- Use systemd presets in rpm macros +- Add fix-reload.patch: handle daemon-reload and start condition + properly (bnc#719221). + ------------------------------------------------------------------- Fri Sep 23 15:39:03 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 1e9dca3e..3b98d1f4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -67,6 +67,8 @@ Patch10: revert_insserv_conf_parsing.patch # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. Patch9: 0001-execute-fix-bus-serialization-for-commands.patch +# PATCH-FIX-UPSTREAM fix-reload.patch fcrozat@suse.com bnc#719221 -- Fix daemon-reload and conditions when service is starting +Patch11: fix-reload.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -121,6 +123,7 @@ Plymouth integration for systemd %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 %build autoreconf -fiv @@ -141,7 +144,7 @@ make %{?_smp_mflags} mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/lib/systemd/{system.preset,user.preset} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators install -m755 %{S:7} %{buildroot}/lib/systemd/ @@ -251,6 +254,8 @@ rm -rf %{buildroot} %{_bindir}/systemd-cgls /lib/systemd/systemd-* %dir /lib/systemd/system-shutdown +%dir /lib/systemd/system.preset +%dir /lib/systemd/user.preset /%{_lib}/security/pam_systemd.so %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user From 7d34008a224cbf4228994ada99f8a189b4f327aaeb7c90e6f606a9aee7cd7c91 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Sun, 2 Oct 2011 09:16:05 +0000 Subject: [PATCH 071/221] Accepting request 85490 from Base:System - Add services to stop bootsplash at end of startup and start it at beginning of shutdown. - Fix bootsplash call and ensure dependencies are set right. - Add services to stop bootsplash at end of startup and start it at beginning of shutdown. - Fix bootsplash call and ensure dependencies are set right. (forwarded request 85489 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/85490 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=72 --- bootsplash-quit.service | 10 ++++++++++ bootsplash-shutdown.service | 10 ++++++++++ bootsplash-startup.service | 2 +- detect-non-running.patch | 30 ++++++++++++++++++++++++++++++ macros.systemd | 8 ++++---- systemd-bootsplash | 9 ++++++++- systemd-gtk.changes | 15 +++++++++++++++ systemd.changes | 15 +++++++++++++++ systemd.spec | 11 ++++++++++- 9 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 bootsplash-quit.service create mode 100644 bootsplash-shutdown.service create mode 100644 detect-non-running.patch diff --git a/bootsplash-quit.service b/bootsplash-quit.service new file mode 100644 index 00000000..b2908458 --- /dev/null +++ b/bootsplash-quit.service @@ -0,0 +1,10 @@ +[Unit] +Description=Terminate bootsplash +After=xdm.service rc-local.service bootsplash-startup.service +DefaultDependencies=no +Names=plymout-quit-wait.service + +[Service] +ExecStart=/lib/systemd/systemd-bootsplash 5 +Type=oneshot +RemainAfterExit=true diff --git a/bootsplash-shutdown.service b/bootsplash-shutdown.service new file mode 100644 index 00000000..76d4344c --- /dev/null +++ b/bootsplash-shutdown.service @@ -0,0 +1,10 @@ +[Unit] +Description=Start bootsplash for shutdown/reboot +Before=shutdown.service halt.service +DefaultDependencies=no +ConditionKernelCommandLine=splash=silent + +[Service] +ExecStart=/lib/systemd/systemd-bootsplash 0 +Type=oneshot +RemainAfterExit=true diff --git a/bootsplash-startup.service b/bootsplash-startup.service index 8ed061fe..a10976c6 100644 --- a/bootsplash-startup.service +++ b/bootsplash-startup.service @@ -4,6 +4,6 @@ DefaultDependencies=no ConditionKernelCommandLine=splash=silent [Service] -ExecStart=/lib/system/systemd-bootsplash B +ExecStart=/lib/systemd/systemd-bootsplash 0 Type=oneshot RemainAfterExit=true diff --git a/detect-non-running.patch b/detect-non-running.patch new file mode 100644 index 00000000..eedcac3c --- /dev/null +++ b/detect-non-running.patch @@ -0,0 +1,30 @@ +From 8185a5090a34531b9ef0a65ed3e948e7b6839754 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 29 Sep 2011 15:31:53 +0200 +Subject: [PATCH] systemctl: fix detection whether the dbus connection is available + +--- + src/systemctl.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/src/systemctl.c b/src/systemctl.c +index 848d6a8..7af0f73 100644 +--- a/src/systemctl.c ++++ b/src/systemctl.c +@@ -4989,6 +4989,13 @@ static int systemctl_main(DBusConnection *bus, int argc, char *argv[], DBusError + return 0; + } + ++ if (!bus) { ++ log_error("Failed to get D-Bus connection: %s", error->message); ++ return -EIO; ++ } ++ ++ } else { ++ + if (!bus && !avoid_bus()) { + log_error("Failed to get D-Bus connection: %s", error->message); + return -EIO; +-- +1.7.3.4 + diff --git a/macros.systemd b/macros.systemd index 8995a9a7..87621abe 100644 --- a/macros.systemd +++ b/macros.systemd @@ -34,12 +34,12 @@ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ # disable migration if initial install under systemd \ if [ $FIRST_ARG -eq 1 ]; then \ for service in %{?*} ; do \ - sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + sysv_service=${service%.*} \ touch "/var/lib/systemd/migrated/$sysv_service" \ done \ else \ for service in %{?*} ; do \ - sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + sysv_service=${service%.*} \ if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ services_to_migrate="$services_to_migrate $sysv_service" \ fi \ @@ -54,7 +54,7 @@ fi \ %service_add_post() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ for service in %{?*} ; do \ - sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + sysv_service=${service%.*} \ if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ services_to_migrate="$services_to_migrate $sysv_service" \ touch "/var/lib/systemd/migrated/$sysv_service" \ @@ -85,7 +85,7 @@ if [ $FIRST_ARG -ge 1 ]; then \ /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ else # package uninstall \ for service in %{?*} ; do \ - sysv_service=`echo $service | sed -e 's/\\.[a-z]*//g'` \ + sysv_service=${service%.*} \ rm -f "/var/lib/systemd/migrated/$sysv_service" 2> /dev/null \ done \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ diff --git a/systemd-bootsplash b/systemd-bootsplash index 653cbe7d..1f5839a5 100644 --- a/systemd-bootsplash +++ b/systemd-bootsplash @@ -1,3 +1,10 @@ #! /bin/bash . /etc/rc.splash $1 -splashtrigger "rlchange $1" +export RUNLEVEL=$1 +export PREVLEVEL=N +if [ "$1" == "5" ]; then + splashtrigger "rlreached $1" +else + splashtrigger "rlchange $1" + splashtrigger "coolo" +fi diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 7f8c2257..81c87426 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Thu Sep 29 16:08:33 UTC 2011 - fcrozat@suse.com + +- Add services to stop bootsplash at end of startup and start it at + beginning of shutdown. +- Fix bootsplash call and ensure dependencies are set right. + +------------------------------------------------------------------- +Thu Sep 29 13:43:00 UTC 2011 - fcrozat@suse.com + +- Add detect-non-running.patch: fix assertion when running + systemctl under non systemd system (git). +- Requires presets branding package. +- Improve macros a little bit. + ------------------------------------------------------------------- Mon Sep 26 14:52:46 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 7f8c2257..81c87426 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Thu Sep 29 16:08:33 UTC 2011 - fcrozat@suse.com + +- Add services to stop bootsplash at end of startup and start it at + beginning of shutdown. +- Fix bootsplash call and ensure dependencies are set right. + +------------------------------------------------------------------- +Thu Sep 29 13:43:00 UTC 2011 - fcrozat@suse.com + +- Add detect-non-running.patch: fix assertion when running + systemctl under non systemd system (git). +- Requires presets branding package. +- Improve macros a little bit. + ------------------------------------------------------------------- Mon Sep 26 14:52:46 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 3b98d1f4..f9f02fc6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -44,6 +44,7 @@ Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux >= 2.19 Requires: pam-config +Requires: systemd-presets-branding Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 @@ -55,6 +56,8 @@ Source5: systemd-insserv_conf Source6: baselibs.conf Source7: systemd-bootsplash Source8: bootsplash-startup.service +Source9: bootsplash-quit.service +Source10: bootsplash-shutdown.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -69,6 +72,7 @@ Patch10: revert_insserv_conf_parsing.patch Patch9: 0001-execute-fix-bus-serialization-for-commands.patch # PATCH-FIX-UPSTREAM fix-reload.patch fcrozat@suse.com bnc#719221 -- Fix daemon-reload and conditions when service is starting Patch11: fix-reload.patch +Patch12: detect-non-running.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -124,6 +128,7 @@ Plymouth integration for systemd %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 %build autoreconf -fiv @@ -148,7 +153,11 @@ mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrate install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators install -m755 %{S:7} %{buildroot}/lib/systemd/ -install -m644 %{S:8} %{buildroot}/lib/systemd/system/ +install -m644 %{S:8} %{S:9} %{S:10} %{buildroot}/lib/systemd/system/ +ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target.wants/ +ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/ +ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/ +ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/ ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt From fc5292bb65cab5f9076fdcc635f06be9317974da304e9661da0e06f0aa471de3 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Sat, 8 Oct 2011 09:44:34 +0000 Subject: [PATCH 072/221] Accepting request 87081 from Base:System - Add logind-warning.patch: fix pam warning (bnc#716384) (forwarded request 87080 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/87081 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=73 --- ...e-fix-bus-serialization-for-commands.patch | 44 -------- ...aplock-and-compose_table-and-kbd_rat.patch | 24 ++-- ...ndencies-added-when-parsing-insserv..patch | 44 ++++++++ ...sv-service-with-detected-pid-as-Rema.patch | 38 +++++++ fix-reload.patch | 43 -------- logind-warning.patch | 35 ++++++ revert_insserv_conf_parsing.patch | 103 ------------------ systemd-34.tar.bz2 | 3 - systemd-36.tar.bz2 | 3 + systemd-gtk.changes | 20 ++++ systemd-gtk.spec | 4 +- systemd-insserv_conf | 2 +- systemd.changes | 20 ++++ systemd.spec | 18 +-- 14 files changed, 184 insertions(+), 217 deletions(-) delete mode 100644 0001-execute-fix-bus-serialization-for-commands.patch create mode 100644 0001-service-Fix-dependencies-added-when-parsing-insserv..patch create mode 100644 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch delete mode 100644 fix-reload.patch create mode 100644 logind-warning.patch delete mode 100644 revert_insserv_conf_parsing.patch delete mode 100644 systemd-34.tar.bz2 create mode 100644 systemd-36.tar.bz2 diff --git a/0001-execute-fix-bus-serialization-for-commands.patch b/0001-execute-fix-bus-serialization-for-commands.patch deleted file mode 100644 index 5389a3bd..00000000 --- a/0001-execute-fix-bus-serialization-for-commands.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 7daa9e6e29b546275566084512ea4e547bc79b91 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 29 Aug 2011 19:44:52 +0200 -Subject: [PATCH] execute: fix bus serialization for commands - ---- - src/dbus-execute.c | 7 +++++-- - 1 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/dbus-execute.c b/src/dbus-execute.c -index 6ceffc5..201f6b5 100644 ---- a/src/dbus-execute.c -+++ b/src/dbus-execute.c -@@ -308,13 +308,14 @@ int bus_execute_append_command(DBusMessageIter *i, const char *property, void *d - assert(i); - assert(property); - -- if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttuii)", &sub)) -+ if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sasbttttuii)", &sub)) - return -ENOMEM; - - LIST_FOREACH(command, c, c) { - char **l; - uint32_t pid; - int32_t code, status; -+ dbus_bool_t b; - - if (!c->path) - continue; -@@ -332,8 +333,10 @@ int bus_execute_append_command(DBusMessageIter *i, const char *property, void *d - code = (int32_t) c->exec_status.code; - status = (int32_t) c->exec_status.status; - -+ b = !!c->ignore; -+ - if (!dbus_message_iter_close_container(&sub2, &sub3) || -- !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &c->ignore) || -+ !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_BOOLEAN, &b) || - !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.realtime) || - !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.start_timestamp.monotonic) || - !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &c->exec_status.exit_timestamp.realtime) || --- -1.7.3.4 - diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch index cfd57c0a..7b91b90f 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -1,4 +1,4 @@ -From 07f0fb4424105c0e90e2add79efe48109b6c9fd1 Mon Sep 17 00:00:00 2001 +From 5c894bc1e45f7c34bf7fc4ca0d20bf1c3b679bef Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Thu, 18 Aug 2011 18:28:01 +0200 Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate @@ -8,18 +8,18 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate 1 files changed, 121 insertions(+), 3 deletions(-) diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c -index 4347a20..af558ef 100644 +index c5f3628..6603a75 100644 --- a/src/vconsole-setup.c +++ b/src/vconsole-setup.c -@@ -39,6 +39,7 @@ - #include "util.h" +@@ -40,6 +40,7 @@ #include "log.h" #include "macro.h" + #include "virt.h" +#include "strv.h" static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -78,8 +79,8 @@ static int disable_utf8(int fd) { +@@ -79,8 +80,8 @@ static int disable_utf8(int fd) { return r; } @@ -30,7 +30,7 @@ index 4347a20..af558ef 100644 int i = 0; pid_t pid; -@@ -98,6 +99,8 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle, +@@ -99,6 +100,8 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle, args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,7 +39,7 @@ index 4347a20..af558ef 100644 args[i++] = NULL; if ((pid = fork()) < 0) { -@@ -149,6 +152,96 @@ static int load_font(const char *vc, const char *font, const char *map, const ch +@@ -150,6 +153,96 @@ static int load_font(const char *vc, const char *font, const char *map, const ch return 0; } @@ -136,7 +136,7 @@ index 4347a20..af558ef 100644 int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -162,8 +255,16 @@ int main(int argc, char **argv) { +@@ -163,8 +256,16 @@ int main(int argc, char **argv) { #ifdef TARGET_MANDRIVA char *vc_keytable = NULL; #endif @@ -153,7 +153,7 @@ index 4347a20..af558ef 100644 int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -268,6 +369,10 @@ int main(int argc, char **argv) { +@@ -265,6 +366,10 @@ int main(int argc, char **argv) { #elif defined(TARGET_SUSE) if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, "KEYTABLE", &vc_keymap, @@ -164,7 +164,7 @@ index 4347a20..af558ef 100644 NULL)) < 0) { if (r != -ENOENT) -@@ -283,6 +388,7 @@ int main(int argc, char **argv) { +@@ -280,6 +385,7 @@ int main(int argc, char **argv) { if (r != -ENOENT) log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); } @@ -172,7 +172,7 @@ index 4347a20..af558ef 100644 #elif defined(TARGET_ARCH) if ((r = parse_env_file("/etc/rc.conf", NEWLINE, -@@ -439,7 +545,11 @@ int main(int argc, char **argv) { +@@ -436,7 +542,11 @@ int main(int argc, char **argv) { if (!utf8) disable_utf8(fd); @@ -185,7 +185,7 @@ index 4347a20..af558ef 100644 load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -447,6 +557,14 @@ finish: +@@ -444,6 +554,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch new file mode 100644 index 00000000..28910fc4 --- /dev/null +++ b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -0,0 +1,44 @@ +From 6620bceb7233a830be3635a4f7a7dc75c13a9c8e Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Fri, 30 Sep 2011 14:12:45 +0200 +Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf + +--- + src/service.c | 16 +++++++++------- + 1 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/src/service.c b/src/service.c +index c2053ce..4abc7e7 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -3031,18 +3031,20 @@ static void sysv_facility_in_insserv_conf(Manager *mgr) { + char *dep = NULL, *name, **j; + + STRV_FOREACH (j, parsed+1) { +- if (*j[0]=='+') { +- e = UNIT_WANTS; ++ if (*j[0]=='+') + name = *j+1; +- } +- else { +- e = UNIT_REQUIRES; ++ else + name = *j; +- } ++ if (streq(name, "boot.localfs") || ++ streq(name, "boot.crypto")) ++ continue; ++ + if (sysv_translate_facility(name, NULL, &dep) < 0) + continue; + +- r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); ++ r = unit_add_dependency_by_name_inverse(u, UNIT_BEFORE, dep, NULL, true); ++ if (*j[0]!='+') ++ r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true); + free(dep); + } + } +-- +1.7.3.4 + diff --git a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch new file mode 100644 index 00000000..a71df5c4 --- /dev/null +++ b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch @@ -0,0 +1,38 @@ +From 700b1261115a67392014ff2c887a9cffc28108ab Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Fri, 30 Sep 2011 12:58:17 +0200 +Subject: [PATCH] service: flags sysv service with detected pid as RemainAfterExit=false + +LSB header doesn't give pidfile, so all LSB initscripts have +RemainAfterExit=false, causing daemon termination to not be reported as +such by systemd. Checking at startup if daemon is still running for +sysv initscript to disable RemainAfterExit helps a lot. +Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 +--- + src/service.c | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/src/service.c b/src/service.c +index 6b7064a..eb2699c 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -2012,9 +2012,15 @@ static void service_enter_running(Service *s, bool success) { + main_pid_ok = main_pid_good(s); + cgroup_ok = cgroup_good(s); + ++ + if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && +- (s->bus_name_good || s->type != SERVICE_DBUS)) ++ (s->bus_name_good || s->type != SERVICE_DBUS)) { ++#ifdef HAVE_SYSV_COMPAT ++ if (s->sysv_enabled && !s->pid_file) ++ s->remain_after_exit = false; ++#endif + service_set_state(s, SERVICE_RUNNING); ++ } + else if (s->remain_after_exit) + service_set_state(s, SERVICE_EXITED); + else +-- +1.7.3.4 + diff --git a/fix-reload.patch b/fix-reload.patch deleted file mode 100644 index 46462058..00000000 --- a/fix-reload.patch +++ /dev/null @@ -1,43 +0,0 @@ -From a82e5507a6e03766957d43ca8818112ae9766288 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 Sep 2011 21:32:18 +0200 -Subject: [PATCH] unit: don't recheck conditions when a unit is already starting but unit_start() is invoked - ---- - src/unit.c | 16 ++++++++++------ - 1 files changed, 10 insertions(+), 6 deletions(-) - -diff --git a/src/unit.c b/src/unit.c -index 3ce87ea..0b435cb 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -888,16 +888,20 @@ int unit_start(Unit *u) { - if (u->meta.load_state != UNIT_LOADED) - return -EINVAL; - -- /* If this is already (being) started, then this will -- * succeed. Note that this will even succeed if this unit is -- * not startable by the user. This is relied on to detect when -- * we need to wait for units and when waiting is finished. */ -+ /* If this is already started, then this will succeed. Note -+ * that this will even succeed if this unit is not startable -+ * by the user. This is relied on to detect when we need to -+ * wait for units and when waiting is finished. */ - state = unit_active_state(u); - if (UNIT_IS_ACTIVE_OR_RELOADING(state)) - return -EALREADY; - -- /* If the conditions failed, don't do anything at all */ -- if (!unit_condition_test(u)) { -+ /* If the conditions failed, don't do anything at all. If we -+ * already are activating this call might still be useful to -+ * speed up activation in case there is some hold-off time, -+ * but we don't want to recheck the condition in that case. */ -+ if (state != UNIT_ACTIVATING && -+ !unit_condition_test(u)) { - log_debug("Starting of %s requested but condition failed. Ignoring.", u->meta.id); - return -EALREADY; - } --- -1.7.3.4 - diff --git a/logind-warning.patch b/logind-warning.patch new file mode 100644 index 00000000..4ccf2f67 --- /dev/null +++ b/logind-warning.patch @@ -0,0 +1,35 @@ +From 3887b5abcb3870db9ed53de3875a465c230ddd3f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 4 Oct 2011 01:38:13 +0200 +Subject: [PATCH] logind: properly generate session creation response on dbus + +This fixes the various reported issues with dbus message parsing when +running su. +--- + src/logind-dbus.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/src/logind-dbus.c b/src/logind-dbus.c +index b33a096..bc1e49d 100644 +--- a/src/logind-dbus.c ++++ b/src/logind-dbus.c +@@ -405,12 +405,16 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess + goto fail; + } + ++ seat = session->seat ? session->seat->id : ""; ++ vtnr = session->vtnr; + b = dbus_message_append_args( + reply, + DBUS_TYPE_STRING, &session->id, + DBUS_TYPE_OBJECT_PATH, &p, + DBUS_TYPE_STRING, &session->user->runtime_path, + DBUS_TYPE_UNIX_FD, &fifo_fd, ++ DBUS_TYPE_STRING, &seat, ++ DBUS_TYPE_UINT32, &vtnr, + DBUS_TYPE_INVALID); + free(p); + +-- +1.7.3.4 + diff --git a/revert_insserv_conf_parsing.patch b/revert_insserv_conf_parsing.patch deleted file mode 100644 index 3279bd1d..00000000 --- a/revert_insserv_conf_parsing.patch +++ /dev/null @@ -1,103 +0,0 @@ -From b0ff66c6e92ca9d9458f3236ee37397635bb0f0e Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Fri, 9 Sep 2011 11:19:26 +0200 -Subject: [PATCH] Revert "service: parse insserv.conf and plugs its system facilities into systemd." - -Let's use a generator instead - -This reverts commit de3910a324aefcb15c26be27033d6917494e5946. ---- - src/service.c | 70 --------------------------------------------------------- - 1 files changed, 0 insertions(+), 70 deletions(-) - -diff --git a/src/service.c b/src/service.c -index abd8f36..37cb0bc 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -2969,72 +2969,6 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - } - - #ifdef HAVE_SYSV_COMPAT -- --#ifdef TARGET_SUSE --static void sysv_facility_in_insserv_conf(Manager *mgr) { -- FILE *f=NULL; -- int r; -- -- if (!(f = fopen("/etc/insserv.conf", "re"))) { -- r = errno == ENOENT ? 0 : -errno; -- goto finish; -- } -- -- while (!feof(f)) { -- char l[LINE_MAX], *t; -- char **parsed = NULL; -- -- if (!fgets(l, sizeof(l), f)) { -- if (feof(f)) -- break; -- -- r = -errno; -- log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r)); -- goto finish; -- } -- -- t = strstrip(l); -- if (*t != '$' && *t != '<') -- continue; -- -- parsed = strv_split(t,WHITESPACE); -- /* we ignore , not used, equivalent to X-Interactive */ -- if (parsed && !startswith_no_case (parsed[0], "")) { -- char *facility; -- Unit *u; -- if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) -- continue; -- if ((u = manager_get_unit(mgr, facility)) && (u->meta.type == UNIT_TARGET)) { -- UnitDependency e; -- char *dep = NULL, *name, **j; -- -- STRV_FOREACH (j, parsed+1) { -- if (*j[0]=='+') { -- e = UNIT_WANTS; -- name = *j+1; -- } -- else { -- e = UNIT_REQUIRES; -- name = *j; -- } -- if (sysv_translate_facility(name, NULL, &dep) < 0) -- continue; -- -- r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); -- free(dep); -- } -- } -- free(facility); -- } -- strv_free(parsed); -- } --finish: -- if (f) -- fclose(f); -- --} --#endif -- - static int service_enumerate(Manager *m) { - char **p; - unsigned i; -@@ -3183,10 +3117,6 @@ static int service_enumerate(Manager *m) { - - r = 0; - --#ifdef TARGET_SUSE -- sysv_facility_in_insserv_conf (m); --#endif -- - finish: - free(path); - free(fpath); --- -1.7.3.4 - diff --git a/systemd-34.tar.bz2 b/systemd-34.tar.bz2 deleted file mode 100644 index 75e28471..00000000 --- a/systemd-34.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:046b9f23a3e24f481877fdb552638c61b558c7f306cbbec137204cc4e074e614 -size 899705 diff --git a/systemd-36.tar.bz2 b/systemd-36.tar.bz2 new file mode 100644 index 00000000..45d542d5 --- /dev/null +++ b/systemd-36.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:693cd0a8ad63c5e22c0fc45115e05180f0d33f60118972c0d5d080957fc69774 +size 921952 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 81c87426..9891b612 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Wed Oct 5 16:18:48 UTC 2011 - fcrozat@suse.com + +- Add logind-warning.patch: fix pam warning (bnc#716384) + +------------------------------------------------------------------- +Fri Sep 30 13:55:31 UTC 2011 - fcrozat@suse.com + +- Update to version 36 : + - many bugfixes + - systemd now requires socket-activated syslog implementations + - After=syslog.target is no longer needed in .service files + - X-Interactive is ignored in LSB headers (was not working) +- Enable back insserv.conf parsing in systemd core and fix added + dependencies (bnc#721428). +- Fix detection of LSB services status when running daemon + (bnc#721426). +- Drop 0001-execute-fix-bus-serialization-for-commands.patch, + fix-reload.patch + ------------------------------------------------------------------- Thu Sep 29 16:08:33 UTC 2011 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 2ec7b288..6cc184cf 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -20,8 +20,8 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 34 -Release: 5 +Version: 36 +Release: 1 License: GPLv2+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build diff --git a/systemd-insserv_conf b/systemd-insserv_conf index f77de73a..5bdebd1b 100644 --- a/systemd-insserv_conf +++ b/systemd-insserv_conf @@ -25,7 +25,7 @@ while read line ; do stripped_dep=${dep/boot./} case "$stripped_dep" in +*) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:2}]:-${stripped_dep:1}.service} $1/$target.wants/ ;; - *) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:1}]:-${stripped_dep}.service} $1/$target.wants/ ;; + *) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:1}]:-${stripped_dep}.service} $1/$target.requires/ ;; esac done ;; diff --git a/systemd.changes b/systemd.changes index 81c87426..9891b612 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Wed Oct 5 16:18:48 UTC 2011 - fcrozat@suse.com + +- Add logind-warning.patch: fix pam warning (bnc#716384) + +------------------------------------------------------------------- +Fri Sep 30 13:55:31 UTC 2011 - fcrozat@suse.com + +- Update to version 36 : + - many bugfixes + - systemd now requires socket-activated syslog implementations + - After=syslog.target is no longer needed in .service files + - X-Interactive is ignored in LSB headers (was not working) +- Enable back insserv.conf parsing in systemd core and fix added + dependencies (bnc#721428). +- Fix detection of LSB services status when running daemon + (bnc#721426). +- Drop 0001-execute-fix-bus-serialization-for-commands.patch, + fix-reload.patch + ------------------------------------------------------------------- Thu Sep 29 16:08:33 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index f9f02fc6..33a01022 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,8 +21,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 34 -Release: 5 +Version: 36 +Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager @@ -63,16 +63,15 @@ Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch # don't start getty on tty1 until all password request are done Patch8: tty1.patch -Patch10: revert_insserv_conf_parsing.patch +Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch +Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -Patch9: 0001-execute-fix-bus-serialization-for-commands.patch -# PATCH-FIX-UPSTREAM fix-reload.patch fcrozat@suse.com bnc#719221 -- Fix daemon-reload and conditions when service is starting -Patch11: fix-reload.patch Patch12: detect-non-running.patch +Patch14: logind-warning.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -125,10 +124,10 @@ Plymouth integration for systemd %patch1 -p1 %patch6 -p1 %patch8 -p1 -%patch9 -p1 %patch10 -p1 -%patch11 -p1 %patch12 -p1 +%patch13 -p1 +%patch14 -p1 %build autoreconf -fiv @@ -151,7 +150,8 @@ install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/lib/systemd/{system.preset,user.preset} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert -install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators +# do not install, code has been fixed, might be useful in the future +#install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators install -m755 %{S:7} %{buildroot}/lib/systemd/ install -m644 %{S:8} %{S:9} %{S:10} %{buildroot}/lib/systemd/system/ ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target.wants/ From 135fa85fb7e456363f5fa560abaa3269a23b62c304094a64b15cf25c7968e988 Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Tue, 11 Oct 2011 15:59:42 +0000 Subject: [PATCH 073/221] Accepting request 87397 from Base:System - make sure updaters get in the /sbin/init from here - the sub package of the split package will decide which init wins in update case - under openSUSE if it's not systemd, chances are good it's sysvinit - do not list specific sbin_init providers OBS-URL: https://build.opensuse.org/request/show/87397 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=74 --- support-sysvinit.patch | 21 +++++++++++++++++++++ systemd.changes | 17 +++++++++++++++++ systemd.spec | 12 ++++-------- 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 support-sysvinit.patch diff --git a/support-sysvinit.patch b/support-sysvinit.patch new file mode 100644 index 00000000..627a3082 --- /dev/null +++ b/support-sysvinit.patch @@ -0,0 +1,21 @@ +Index: systemd-36/src/systemctl.c +=================================================================== +--- systemd-36.orig/src/systemctl.c ++++ systemd-36/src/systemctl.c +@@ -4672,10 +4672,13 @@ static int parse_argv(int argc, char *ar + /* Hmm, so some other init system is + * running, we need to forward this + * request to it. For now we simply +- * guess that it is Upstart. */ +- +- execv("/lib/upstart/telinit", argv); ++ * guess that it is Sysvinit or Upstart. */ + ++ if (!access("/lib/sysvinit/telinit", X_OK)) { ++ execv("/lib/sysvinit/telinit", argv); ++ } else { ++ execv("/lib/upstart/telinit", argv); ++ } + log_error("Couldn't find an alternative telinit implementation to spawn."); + return -EIO; + } diff --git a/systemd.changes b/systemd.changes index 9891b612..b45fab37 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Tue Oct 11 13:57:32 UTC 2011 - coolo@suse.com + +- make sure updaters get in the /sbin/init from here - the sub package + of the split package will decide which init wins in update case + +------------------------------------------------------------------- +Tue Oct 11 13:10:27 UTC 2011 - coolo@suse.com + +- under openSUSE if it's not systemd, chances are good it's + sysvinit + +------------------------------------------------------------------- +Tue Oct 11 11:07:02 UTC 2011 - coolo@suse.com + +- do not list specific sbin_init providers + ------------------------------------------------------------------- Wed Oct 5 16:18:48 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 33a01022..bec7ce20 100644 --- a/systemd.spec +++ b/systemd.spec @@ -65,6 +65,7 @@ Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch Patch8: tty1.patch Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch +Patch15: support-sysvinit.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -84,7 +85,6 @@ transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. %package devel -License: GPLv2+ Group: Development/Libraries/C and C++ Summary: Development headers for systemd Requires: %{name} = %{version} @@ -94,13 +94,11 @@ Requires: pkg-config Development headers and auxiliary files for developing applications for systemd. %package sysvinit -License: GPLv2+ -Group: System/Base Summary: System V init tools Requires: %{name} = %{version} Provides: sbin_init -Conflicts: sysvinit -Conflicts: upstart +Conflicts: otherproviders(sbin_init) +Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. @@ -108,9 +106,6 @@ Drop-in replacement of System V init tools. %if %{build_plymouth} %package plymouth - -License: GPLv2+ -Group: System/Base Summary: Plymouth support for systemd Requires: %{name} = %{version} Requires: plymouth @@ -128,6 +123,7 @@ Plymouth integration for systemd %patch12 -p1 %patch13 -p1 %patch14 -p1 +%patch15 -p1 %build autoreconf -fiv From d0dc7c30237eee85965f0c3e5e4b8dc39aef1b4ffb1108c40147536021b82f4d Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Wed, 12 Oct 2011 22:02:20 +0000 Subject: [PATCH 074/221] Accepting request 87532 from Base:System - Shadow single sysv service, it was breaking runlevel 1. - Add modules_on_boot.patch to handle /etc/sysconfig/kernel MODULES_ON_BOOT variable (bnc#721662). (forwarded request 87530 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/87532 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=75 --- detect-non-running.patch | 30 ---- logind-warning.patch | 35 ----- modules_on_boot.patch | 79 ++++++++++ systemd-36.tar.bz2 | 3 - systemd-37.tar.bz2 | 3 + systemd-gtk.changes | 35 +++++ systemd-gtk.spec | 2 +- systemd-sysv-convert | 301 +++++++++++++++++++++------------------ systemd.changes | 18 +++ systemd.spec | 10 +- 10 files changed, 305 insertions(+), 211 deletions(-) delete mode 100644 detect-non-running.patch delete mode 100644 logind-warning.patch create mode 100644 modules_on_boot.patch delete mode 100644 systemd-36.tar.bz2 create mode 100644 systemd-37.tar.bz2 diff --git a/detect-non-running.patch b/detect-non-running.patch deleted file mode 100644 index eedcac3c..00000000 --- a/detect-non-running.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8185a5090a34531b9ef0a65ed3e948e7b6839754 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 29 Sep 2011 15:31:53 +0200 -Subject: [PATCH] systemctl: fix detection whether the dbus connection is available - ---- - src/systemctl.c | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/src/systemctl.c b/src/systemctl.c -index 848d6a8..7af0f73 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -4989,6 +4989,13 @@ static int systemctl_main(DBusConnection *bus, int argc, char *argv[], DBusError - return 0; - } - -+ if (!bus) { -+ log_error("Failed to get D-Bus connection: %s", error->message); -+ return -EIO; -+ } -+ -+ } else { -+ - if (!bus && !avoid_bus()) { - log_error("Failed to get D-Bus connection: %s", error->message); - return -EIO; --- -1.7.3.4 - diff --git a/logind-warning.patch b/logind-warning.patch deleted file mode 100644 index 4ccf2f67..00000000 --- a/logind-warning.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3887b5abcb3870db9ed53de3875a465c230ddd3f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 4 Oct 2011 01:38:13 +0200 -Subject: [PATCH] logind: properly generate session creation response on dbus - -This fixes the various reported issues with dbus message parsing when -running su. ---- - src/logind-dbus.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/src/logind-dbus.c b/src/logind-dbus.c -index b33a096..bc1e49d 100644 ---- a/src/logind-dbus.c -+++ b/src/logind-dbus.c -@@ -405,12 +405,16 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess - goto fail; - } - -+ seat = session->seat ? session->seat->id : ""; -+ vtnr = session->vtnr; - b = dbus_message_append_args( - reply, - DBUS_TYPE_STRING, &session->id, - DBUS_TYPE_OBJECT_PATH, &p, - DBUS_TYPE_STRING, &session->user->runtime_path, - DBUS_TYPE_UNIX_FD, &fifo_fd, -+ DBUS_TYPE_STRING, &seat, -+ DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_INVALID); - free(p); - --- -1.7.3.4 - diff --git a/modules_on_boot.patch b/modules_on_boot.patch new file mode 100644 index 00000000..929a2caa --- /dev/null +++ b/modules_on_boot.patch @@ -0,0 +1,79 @@ +From 051e407e1af70e779c092c81733a98832c29d6b4 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Wed, 12 Oct 2011 15:18:29 +0200 +Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list + +--- + src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 42 insertions(+), 0 deletions(-) + +diff --git a/src/modules-load.c b/src/modules-load.c +index 8dd98f7..73ef5f5 100644 +--- a/src/modules-load.c ++++ b/src/modules-load.c +@@ -36,6 +36,9 @@ int main(int argc, char *argv[]) { + char **arguments = NULL; + unsigned n_arguments = 0, n_allocated = 0; + char **files, **fn; ++#if defined(TARGET_SUSE) ++ char *modules_on_boot = NULL; ++#endif + + if (argc > 1) { + log_error("This program takes no argument."); +@@ -126,6 +129,42 @@ int main(int argc, char *argv[]) { + } + + strv_free(files); ++#if defined(TARGET_SUSE) ++ if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, ++ "MODULES_LOADED_ON_BOOT", &modules_on_boot, ++ NULL)) < 0) { ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); ++ } ++ if (modules_on_boot) { ++ char **modules = strv_split(modules_on_boot,WHITESPACE); ++ char **module; ++ if (modules) { ++ STRV_FOREACH(module, modules) { ++ if (n_arguments >= n_allocated) { ++ char **a; ++ unsigned m; ++ ++ m = MAX(16U, n_arguments*2); ++ ++ if (!(a = realloc(arguments, sizeof(char*) * (m+1)))) { ++ log_error("Failed to increase module array size."); ++ free(*module); ++ r = EXIT_FAILURE; ++ continue; ++ } ++ ++ arguments = a; ++ n_allocated = m; ++ } ++ log_debug("adding module: %s\n", *module); ++ arguments[n_arguments++] = strdup(*module); ++ } ++ } ++ strv_free(modules); ++ } ++#endif ++ + finish: + + if (n_arguments > 3) { +@@ -138,6 +177,9 @@ finish: + } + + strv_free(arguments); ++#if defined(TARGET_SUSE) ++ free(modules_on_boot); ++#endif + + return r; + } +-- +1.7.3.4 + diff --git a/systemd-36.tar.bz2 b/systemd-36.tar.bz2 deleted file mode 100644 index 45d542d5..00000000 --- a/systemd-36.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:693cd0a8ad63c5e22c0fc45115e05180f0d33f60118972c0d5d080957fc69774 -size 921952 diff --git a/systemd-37.tar.bz2 b/systemd-37.tar.bz2 new file mode 100644 index 00000000..6c1ba106 --- /dev/null +++ b/systemd-37.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b38492bde73649cc3520953354ef446c268169c1d342614183655e9ee1a1bbc5 +size 931101 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 9891b612..2391e022 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com + +- Shadow single sysv service, it was breaking runlevel 1. +- Add modules_on_boot.patch to handle /etc/sysconfig/kernel + MODULES_ON_BOOT variable (bnc#721662). + +------------------------------------------------------------------- +Wed Oct 12 08:38:36 UTC 2011 - fcrozat@suse.com + +- Update to release 37: + - many bugfixes + - ConditionCapability added, useful for containers. + - locale mechanism got extend to kbd configuration for + both X and the console + - don't try to guess PID for SysV services anymore (bnc#723194) +- Drop detect-non-running.patch, logind-warning.patch. +- Rewrite systemd-sysv-convert in bash (bnc#716939) +------------------------------------------------------------------- +Tue Oct 11 13:57:32 UTC 2011 - coolo@suse.com + +- make sure updaters get in the /sbin/init from here - the sub package + of the split package will decide which init wins in update case + +------------------------------------------------------------------- +Tue Oct 11 13:10:27 UTC 2011 - coolo@suse.com + +- under openSUSE if it's not systemd, chances are good it's + sysvinit + +------------------------------------------------------------------- +Tue Oct 11 11:07:02 UTC 2011 - coolo@suse.com + +- do not list specific sbin_init providers + ------------------------------------------------------------------- Wed Oct 5 16:18:48 UTC 2011 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 6cc184cf..900f4dba 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -20,7 +20,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 36 +Version: 37 Release: 1 License: GPLv2+ Group: System/Base diff --git a/systemd-sysv-convert b/systemd-sysv-convert index 1cf2b025..3645f435 100644 --- a/systemd-sysv-convert +++ b/systemd-sysv-convert @@ -1,148 +1,175 @@ -#!/usr/bin/python -# -*- Mode: Python; python-indent: 8; indent-tabs-mode: t -*- +#!/bin/bash -import sys, os, argparse, errno +if [ "$UID" != "0" ]; then + echo Need to be root. + exit 1 +fi -def find_service(service, runlevel): - priority = -1 +declare -A results_runlevel +declare -A results_priority - for l in os.listdir("/etc/rc.d/rc%i.d" % runlevel): - if len(l) < 4: +usage() { +cat << EOF +usage: systemd-sysv-convert [-h] [--save] [--show] [--apply] + SERVICE [SERVICE ...] +EOF +} + +help() { +usage +cat << EOF +Save and Restore SusV Service Runlevel Information + +positional arguments: + SERVICE Service names + +optional arguments: + -h, --help show this help message and exit + --save Save SysV runlevel information for one or more services + --show Show saved SysV runlevel information for one or more services + --apply Apply saved SysV runlevel information for one or more services + to systemd counterparts +EOF +} + +find_service() { +local service +local runlevel +declare -i priority +service=$1 +runlevel=$2 +priority=-1 +for l in /etc/rc.d/rc$runlevel.d/* ; do + initscript=$(basename $l) + if [ ${initscript:0:1} != "S" -o ${initscript:3} != "$service" ]; then + continue + fi + if [ ${initscript:1:2} -ge 0 -a ${initscript:1:2} -le 99 -a ${initscript:1:2} -ge $priority ]; then + if [ ${initscript:1:1} == 0 ]; then + priority=${initscript:2:1} + else + priority=${initscript:1:2} + fi + fi +done +if [ $priority -ge 0 ]; then + return $priority +else + return 255 +fi +} + +lookup_database() { +local services +local service +local runlevel +local priority +local -i k +declare -a parsed +services=$@ +k=0 +results_runlevel=() +results_priority=() +while read line ; do + k+=1 + parsed=($line) + service=${parsed[0]} + runlevel=${parsed[1]} + priority=${parsed[2]} + if [ $runlevel -lt 2 -o $runlevel -gt 5 ]; then + echo "Runlevel out of bounds in database line $k. Ignoring" >/dev/stderr continue - - if l[0] != 'S' or l[3:] != service: + fi + if [ $priority -lt 0 -o $priority -gt 99 ]; then + echo "Priority out of bounds in database line $k. Ignoring" >/dev/stderr continue - - p = int(l[1:3]) - - if p >= 0 and p <= 99 and p >= priority: - priority = p; - - return priority - -def lookup_database(services): - try: - database = open("/var/lib/systemd/sysv-convert/database", "r") - except IOError, e: - if e.errno != errno.ENOENT: - raise e - - return {} - - found = {} - k = 0 - - for line in database: - service, r, p = line.strip().split("\t", 3) - k += 1 - - try: - runlevel = int(r) - priority = int(p) - except ValueError, e: - sys.stderr.write("Failed to parse database line %i. Ignoring." % k) + fi + + declare -i found + found=0 + for s in $services ; do + if [ $s == $service ]; then + found=1 + continue + fi + done + if [ $found -eq 0 ]; then continue + fi + results_runlevel[$service]+=" $runlevel" + results_priority[$service]+=" $priority" +done < /var/lib/systemd/sysv-convert/database +} - if runlevel not in (2, 3, 4, 5): - sys.stderr.write("Runlevel out of bounds in database line %i. Ignoring." % k) - continue +case "$1" in + -h|--help) + help + exit 0 + ;; + --save) + shift + for service in $@ ; do + if [ ! -r "/etc/init.d/$service" ]; then + echo "SysV service $service does not exist" >/dev/stderr + exit 1 + fi + for runlevel in 2 3 4 5; do + find_service $service $runlevel + priority=$? + if [ $priority -lt 255 ]; then + echo "$service $runlevel $priority" >> /var/lib/systemd/sysv-convert/database + fi + done + done + ;; + --show) + shift + services=$@ + lookup_database $services + fail=0 + for service in $services; do + if [ -z "${results_runlevel[$service]}" ]; then + echo No information found about service $service found. >/dev/stderr + fail=1 + continue + fi + declare -i count + count=0 + priority=(${results_priority[$service]}) + for runlevel in ${results_runlevel[$service]}; do + echo SysV service $service enabled in runlevel $runlevel at priority ${priority[$count]} + count+=1 + done + done + exit $fail + ;; + --apply) + shift + services=$@ + for service in $services; do + if [ ! -f "/lib/systemd/system/$service.service" ]; then + echo systemd service $service.service does not exist. >/dev/stderr + exit 1 + fi + done + lookup_database $services + for service in $services; do + if [ -z "${results_runlevel[$service]}" ]; then + echo No information found about service $service found. >/dev/stderr + fail=1 + continue + fi + for runlevel in ${results_runlevel[$service]}; do + echo ln -sf /lib/systemd/system/$service.service /etc/systemd/system/runlevel$runlevel.target.wants/$service.service >/dev/stderr + mkdir -p "/etc/systemd/system/runlevel$runlevel.target.wants" + /bin/ln -sf /lib/systemd/system/$service.service /etc/systemd/system/runlevel$runlevel.target.wants/$service.service + done - if priority < 0 or priority > 99: - sys.stderr.write("Priority out of bounds in database line %i. Ignoring." % k) - continue + done + ;; + *) usage + exit 2;; +esac - if service not in services: - continue - if service not in found: - found[service] = {} - if runlevel not in found[service] or found[service][runlevel] < priority: - found[service][runlevel] = priority - - return found - -def mkdir_p(path): - try: - os.makedirs(path, 0755) - except OSError, e: - if e.errno != errno.EEXIST: - raise e - -if os.geteuid() != 0: - sys.stderr.write("Need to be root.\n") - sys.exit(1) - -parser = argparse.ArgumentParser(description='Save and Restore SysV Service Runlevel Information') - -parser.add_argument('services', metavar='SERVICE', type=str, nargs='+', - help='Service names') - -parser.add_argument('--save', dest='save', action='store_const', - const=True, default=False, - help='Save SysV runlevel information for one or more services') - -parser.add_argument('--show', dest='show', action='store_const', - const=True, default=False, - help='Show saved SysV runlevel information for one or more services') - -parser.add_argument('--apply', dest='apply', action='store_const', - const=True, default=False, - help='Apply saved SysV runlevel information for one or more services to systemd counterparts') - -a = parser.parse_args() - -if a.save: - for service in a.services: - if not os.access("/etc/init.d/%s" % service, os.F_OK): - sys.stderr.write("SysV service %s does not exist.\n" % service) - sys.exit(1) - - mkdir_p("/var/lib/systemd/sysv-convert") - database = open("/var/lib/systemd/sysv-convert/database", "a") - - for runlevel in (2, 3, 4, 5): - priority = find_service(service, runlevel) - - if priority >= 0: - database.write("%s\t%s\t%s\n" % (service, runlevel, priority)) - -elif a.show: - found = lookup_database(a.services) - - if len(found) <= 0: - sys.stderr.write("No information about passed services found.\n") - sys.exit(1) - - for service, data in found.iteritems(): - for runlevel, priority in data.iteritems(): - sys.stdout.write("SysV service %s enabled in runlevel %s at priority %s\n" % (service, runlevel, priority)) - -elif a.apply: - for service in a.services: - if not os.access("/lib/systemd/system/%s.service" % service, os.F_OK): - sys.stderr.write("systemd service %s.service does not exist.\n" % service) - sys.exit(1) - - found = lookup_database(a.services) - - if len(found) <= 0: - sys.stderr.write("No information about passed services found.\n") - sys.exit(1) - - for service, data in found.iteritems(): - for runlevel in data.iterkeys(): - - sys.stderr.write("ln -sf /lib/systemd/system/%s.service /etc/systemd/system/runlevel%i.target.wants/%s.service\n" % (service, runlevel, service)) - - mkdir_p("/etc/systemd/system/runlevel%i.target.wants" % runlevel) - - try: - os.symlink("/lib/systemd/system/%s.service" % service, - "/etc/systemd/system/runlevel%i.target.wants/%s.service" % (runlevel, service)) - except OSError, e: - if e.errno != errno.EEXIST: - raise e - -else: - parser.print_help() diff --git a/systemd.changes b/systemd.changes index b45fab37..2391e022 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,4 +1,22 @@ ------------------------------------------------------------------- +Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com + +- Shadow single sysv service, it was breaking runlevel 1. +- Add modules_on_boot.patch to handle /etc/sysconfig/kernel + MODULES_ON_BOOT variable (bnc#721662). + +------------------------------------------------------------------- +Wed Oct 12 08:38:36 UTC 2011 - fcrozat@suse.com + +- Update to release 37: + - many bugfixes + - ConditionCapability added, useful for containers. + - locale mechanism got extend to kbd configuration for + both X and the console + - don't try to guess PID for SysV services anymore (bnc#723194) +- Drop detect-non-running.patch, logind-warning.patch. +- Rewrite systemd-sysv-convert in bash (bnc#716939) +------------------------------------------------------------------- Tue Oct 11 13:57:32 UTC 2011 - coolo@suse.com - make sure updaters get in the /sbin/init from here - the sub package diff --git a/systemd.spec b/systemd.spec index bec7ce20..6c973dc4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 36 +Version: 37 Release: 1 License: GPLv2+ Group: System/Base @@ -66,13 +66,12 @@ Patch8: tty1.patch Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch Patch15: support-sysvinit.patch +Patch16: modules_on_boot.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -Patch12: detect-non-running.patch -Patch14: logind-warning.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -120,10 +119,9 @@ Plymouth integration for systemd %patch6 -p1 %patch8 -p1 %patch10 -p1 -%patch12 -p1 %patch13 -p1 -%patch14 -p1 %patch15 -p1 +%patch16 -p1 %build autoreconf -fiv @@ -184,6 +182,7 @@ install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service #ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service +ln -s /dev/null %{buildroot}/lib/systemd/system/single.service ln -s /dev/null %{buildroot}/lib/systemd/system/swap.service ln -s /dev/null %{buildroot}/lib/systemd/system/startpreload.service ln -s /dev/null %{buildroot}/lib/systemd/system/stoppreload.service @@ -298,6 +297,7 @@ rm -rf %{buildroot} %{_datadir}/polkit-1 %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy +%{_datadir}/systemd %if %{build_plymouth} # Packaged in plymouth subpackage %exclude /lib/systemd/system/plymouth-*.service From d34c2a9aaef03886c72cb7a57ba694e5e774b642f6d05807556e0d9cbf79321e Mon Sep 17 00:00:00 2001 From: Lars Vogdt Date: Sun, 16 Oct 2011 10:58:13 +0000 Subject: [PATCH 075/221] Accepting request 87884 from Base:System - Recommends dbus-1-python, do not requires python (bnc#716939) - Add private_tmp_crash.patch: prevent crash in debug mode (bnc#699829). - Add systemctl-completion-fix.patch: fix incorrect bash completion with some commands (git). (forwarded request 87882 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/87884 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=76 --- private_tmp_crash.patch | 12 ++++++ systemctl-completion-fix.patch | 77 ++++++++++++++++++++++++++++++++++ systemd-gtk.changes | 9 ++++ systemd.changes | 9 ++++ systemd.spec | 12 +++++- 5 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 private_tmp_crash.patch create mode 100644 systemctl-completion-fix.patch diff --git a/private_tmp_crash.patch b/private_tmp_crash.patch new file mode 100644 index 00000000..c7bb783b --- /dev/null +++ b/private_tmp_crash.patch @@ -0,0 +1,12 @@ +Index: systemd-37/src/namespace.c +=================================================================== +--- systemd-37.orig/src/namespace.c ++++ systemd-37/src/namespace.c +@@ -157,7 +157,6 @@ static int apply_mount(Path *p, const ch + } + + if ((r = mount(what, where, NULL, MS_BIND|MS_REC, NULL)) >= 0) { +- log_debug("Successfully mounted %s to %s", what, where); + + /* The bind mount will always inherit the original + * flags. If we want to set any flag we need diff --git a/systemctl-completion-fix.patch b/systemctl-completion-fix.patch new file mode 100644 index 00000000..3f5b2e37 --- /dev/null +++ b/systemctl-completion-fix.patch @@ -0,0 +1,77 @@ +In the case of completion for the 'restart' verb, passing the invalid +unit name (the colums header) causes completion to cease functioning +entirely, with the error: + + Failed to issue method call: Unit name UNIT is not valid. + +This adds a small wrapper function for systemctl which can have common +options added to it. + +--- + src/systemctl-bash-completion.sh | 20 ++++++++++++-------- + 1 files changed, 12 insertions(+), 8 deletions(-) + +diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh +index 6369a6c..6ebb792 100644 +--- a/src/systemctl-bash-completion.sh ++++ b/src/systemctl-bash-completion.sh +@@ -15,6 +15,10 @@ + # You should have received a copy of the GNU General Public License + # along with systemd; If not, see . + ++__systemctl() { ++ systemctl --no-legend "$@" ++} ++ + __contains_word () { + local word=$1; shift + for w in $*; do [[ $w = $word ]] && return 0; done +@@ -24,7 +28,7 @@ __contains_word () { + __filter_units_by_property () { + local property=$1 value=$2 ; shift ; shift + local -a units=( $* ) +- local -a props=( $(systemctl show --property "$property" -- ${units[*]} | grep -v ^$) ) ++ local -a props=( $(__systemctl show --property "$property" -- ${units[*]} | grep -v ^$) ) + for ((i=0; $i < ${#units[*]}; i++)); do + if [[ "${props[i]}" = "$property=$value" ]]; then + echo "${units[i]}" +@@ -32,10 +36,10 @@ __filter_units_by_property () { + done + } + +-__get_all_units () { systemctl list-units --full --all | awk ' {print $1}' ; } +-__get_active_units () { systemctl list-units --full | awk ' {print $1}' ; } +-__get_inactive_units () { systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; } +-__get_failed_units () { systemctl list-units --full | awk '$3 == "failed" {print $1}' ; } ++__get_all_units () { __systemctl list-units --full --all | awk ' {print $1}' ; } ++__get_active_units () { __systemctl list-units --full | awk ' {print $1}' ; } ++__get_inactive_units () { __systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; } ++__get_failed_units () { __systemctl list-units --full | awk '$3 == "failed" {print $1}' ; } + + _systemctl () { + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} +@@ -134,13 +138,13 @@ _systemctl () { + comps='' + + elif __contains_word "$verb" ${VERBS[JOBS]}; then +- comps=$( systemctl list-jobs | awk '{print $1}' ) ++ comps=$( __systemctl list-jobs | awk '{print $1}' ) + + elif __contains_word "$verb" ${VERBS[SNAPSHOTS]}; then +- comps=$( systemctl list-units --type snapshot --full --all | awk '{print $1}' ) ++ comps=$( __systemctl list-units --type snapshot --full --all | awk '{print $1}' ) + + elif __contains_word "$verb" ${VERBS[ENVS]}; then +- comps=$( systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' ) ++ comps=$( __systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' ) + compopt -o nospace + fi + +-- +1.7.7 + +_______________________________________________ +systemd-devel mailing list +systemd-devel@lists.freedesktop.org +http://lists.freedesktop.org/mailman/listinfo/systemd-devel + diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 2391e022..e807819c 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com + +- Recommends dbus-1-python, do not requires python (bnc#716939) +- Add private_tmp_crash.patch: prevent crash in debug mode + (bnc#699829). +- Add systemctl-completion-fix.patch: fix incorrect bash completion + with some commands (git). + ------------------------------------------------------------------- Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 2391e022..e807819c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com + +- Recommends dbus-1-python, do not requires python (bnc#716939) +- Add private_tmp_crash.patch: prevent crash in debug mode + (bnc#699829). +- Add systemctl-completion-fix.patch: fix incorrect bash completion + with some commands (git). + ------------------------------------------------------------------- Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 6c973dc4..3cccecbf 100644 --- a/systemd.spec +++ b/systemd.spec @@ -19,6 +19,8 @@ %define build_plymouth 0 +#don't require python, use recommends (bnc#716939) + Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 37 @@ -45,6 +47,7 @@ Requires: kbd Requires: util-linux >= 2.19 Requires: pam-config Requires: systemd-presets-branding +Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 @@ -67,6 +70,8 @@ Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch Patch15: support-sysvinit.patch Patch16: modules_on_boot.patch +Patch17: private_tmp_crash.patch +Patch18: systemctl-completion-fix.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -122,6 +127,8 @@ Plymouth integration for systemd %patch13 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 +%patch18 -p1 %build autoreconf -fiv @@ -139,6 +146,9 @@ make %{?_smp_mflags} %install %makeinstall + +#workaround for 716939 +chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' @@ -251,7 +261,7 @@ rm -rf %{buildroot} /bin/systemd-machine-id-setup /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge -/usr/bin/systemd-analyze +%attr(0755,root,root) /usr/bin/systemd-analyze %{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* From dc86215535b2be221bb6d9c0135bb157a8e424bdf82f62bc8bddcc0acc9dfc33 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 26 Oct 2011 13:48:17 +0000 Subject: [PATCH 076/221] Accepting request 89338 from Base:System - Add avoid-random-seed-cycle.patch: fix dependency cycle between cryptsetup and random-seed-load (bnc#721666). - Add crash-isolating.patch: fix crash when isolating a service. - Fix bootsplash being killed too early. - Fix some manpages not being redirected properly. - Add storage-after-cryptsetup.service to restart lvm after cryptsetup. Fixes lvm on top of LUKS (bnc#724238). - Add avoid-random-seed-cycle.patch: fix dependency cycle between cryptsetup and random-seed-load (bnc#721666). - Add crash-isolating.patch: fix crash when isolating a service. - Fix bootsplash being killed too early. - Fix some manpages not being redirected properly. - Add storage-after-cryptsetup.service to restart lvm after cryptsetup. Fixes lvm on top of LUKS (bnc#724238). (forwarded request 89336 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/89338 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=78 --- avoid-random-seed-cycle.patch | 40 +++++++++++ bootsplash-quit.service | 1 + crash-isolating.patch | 117 +++++++++++++++++++++++++++++++ storage-after-cryptsetup.service | 12 ++++ systemd-bootsplash | 11 +++ systemd-gtk.changes | 11 +++ systemd.changes | 11 +++ systemd.spec | 11 ++- 8 files changed, 213 insertions(+), 1 deletion(-) create mode 100644 avoid-random-seed-cycle.patch create mode 100644 crash-isolating.patch create mode 100644 storage-after-cryptsetup.service diff --git a/avoid-random-seed-cycle.patch b/avoid-random-seed-cycle.patch new file mode 100644 index 00000000..1490674c --- /dev/null +++ b/avoid-random-seed-cycle.patch @@ -0,0 +1,40 @@ + +Devices with random keys (swap), should not be ordered before local-fs.target, +as this creates a cycle with systemd-load-random-seed.service (and also it +does not make sense, a swap device is not a local-fs). +--- + src/cryptsetup-generator.c | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c +index 6f3aa78..a48b7a4 100644 +--- a/src/cryptsetup-generator.c ++++ b/src/cryptsetup-generator.c +@@ -112,8 +112,7 @@ static int create_disk( + "DefaultDependencies=no\n" + "BindTo=%s dev-mapper-%%i.device\n" + "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" +- "Before=umount.target\n" +- "Before=local-fs.target\n", ++ "Before=umount.target\n", + d, d); + + if (!nofail) +@@ -125,6 +124,9 @@ static int create_disk( + streq(password, "/dev/hw_random"))) + fprintf(f, + "After=systemd-random-seed-load.service\n"); ++ else ++ fprintf(f, ++ "Before=local-fs.target\n"); + + fprintf(f, + "\n[Service]\n" +-- +1.7.7 + +_______________________________________________ +systemd-devel mailing list +systemd-devel@lists.freedesktop.org +http://lists.freedesktop.org/mailman/listinfo/systemd-devel + diff --git a/bootsplash-quit.service b/bootsplash-quit.service index b2908458..6e20630d 100644 --- a/bootsplash-quit.service +++ b/bootsplash-quit.service @@ -1,6 +1,7 @@ [Unit] Description=Terminate bootsplash After=xdm.service rc-local.service bootsplash-startup.service +Before=getty@tty1.service DefaultDependencies=no Names=plymout-quit-wait.service diff --git a/crash-isolating.patch b/crash-isolating.patch new file mode 100644 index 00000000..fded4f32 --- /dev/null +++ b/crash-isolating.patch @@ -0,0 +1,117 @@ +From 563ba9ea6e60774086555998b957edf923e24b46 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Mon, 17 Oct 2011 11:12:12 +0200 +Subject: [PATCH] manager: fix a crash in isolating + +HASHMAP_FOREACH is safe against the removal of the current entry, but +not against the removal of other entries. job_finish_and_invalidate() +can recursively remove other entries. + +It triggered an assertion failure: + Assertion 'j->installed' failed at src/manager.c:1218, function + transaction_apply(). Aborting. + +Fix the crash by iterating from the beginning when there is a +possibility that the iterator could be invalid. + +It is O(n^2) in the worst case, but that's better than a crash. + +https://bugzilla.redhat.com/show_bug.cgi?id=717325 +--- + src/job.c | 19 ++++++++++++++----- + src/manager.c | 7 ++++++- + 2 files changed, 20 insertions(+), 6 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 5c0913b..20971da 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -527,6 +527,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + Unit *other; + JobType t; + Iterator i; ++ bool recursed = false; + + assert(j); + assert(j->installed); +@@ -573,23 +574,29 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + if (other->meta.job && + (other->meta.job->type == JOB_START || + other->meta.job->type == JOB_VERIFY_ACTIVE || +- other->meta.job->type == JOB_RELOAD_OR_START)) ++ other->meta.job->type == JOB_RELOAD_OR_START)) { + job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); ++ recursed = true; ++ } + + SET_FOREACH(other, u->meta.dependencies[UNIT_BOUND_BY], i) + if (other->meta.job && + (other->meta.job->type == JOB_START || + other->meta.job->type == JOB_VERIFY_ACTIVE || +- other->meta.job->type == JOB_RELOAD_OR_START)) ++ other->meta.job->type == JOB_RELOAD_OR_START)) { + job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); ++ recursed = true; ++ } + + SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) + if (other->meta.job && + !other->meta.job->override && + (other->meta.job->type == JOB_START || + other->meta.job->type == JOB_VERIFY_ACTIVE || +- other->meta.job->type == JOB_RELOAD_OR_START)) ++ other->meta.job->type == JOB_RELOAD_OR_START)) { + job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); ++ recursed = true; ++ } + + } else if (t == JOB_STOP) { + +@@ -597,8 +604,10 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + if (other->meta.job && + (other->meta.job->type == JOB_START || + other->meta.job->type == JOB_VERIFY_ACTIVE || +- other->meta.job->type == JOB_RELOAD_OR_START)) ++ other->meta.job->type == JOB_RELOAD_OR_START)) { + job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); ++ recursed = true; ++ } + } + } + +@@ -626,7 +635,7 @@ finish: + + manager_check_finished(u->meta.manager); + +- return 0; ++ return recursed; + } + + int job_start_timer(Job *j) { +diff --git a/src/manager.c b/src/manager.c +index e626347..6d20258 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -1214,13 +1214,18 @@ static int transaction_apply(Manager *m, JobMode mode) { + + /* When isolating first kill all installed jobs which + * aren't part of the new transaction */ ++ rescan: + HASHMAP_FOREACH(j, m->jobs, i) { + assert(j->installed); + + if (hashmap_get(m->transaction_jobs, j->unit)) + continue; + +- job_finish_and_invalidate(j, JOB_CANCELED); ++ /* 'j' itself is safe to remove, but if other jobs ++ are invalidated recursively, our iterator may become ++ invalid and we need to start over. */ ++ if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) ++ goto rescan; + } + } + +-- +1.7.3.4 + diff --git a/storage-after-cryptsetup.service b/storage-after-cryptsetup.service new file mode 100644 index 00000000..d47acc63 --- /dev/null +++ b/storage-after-cryptsetup.service @@ -0,0 +1,12 @@ +[Unit] +Description=Restart storage after crypsetup +DefaultDependencies=no +Before=local-fs.target shutdown.target +After=cryptsetup.target +Wants=cryptsetup.target + +[Service] +RemainAfterExit=true +Type=oneshot +TimeoutSec=0 +ExecStart=/bin/systemctl restart lvm.service diff --git a/systemd-bootsplash b/systemd-bootsplash index 1f5839a5..3cf8438d 100644 --- a/systemd-bootsplash +++ b/systemd-bootsplash @@ -3,6 +3,17 @@ export RUNLEVEL=$1 export PREVLEVEL=N if [ "$1" == "5" ]; then + /bin/systemctl status --no-pager default.target | grep -q graphical.target + if [ $? -eq 0 ]; then + declare -i timeout + timeout=0 + console=`fgconsole` + while [ $console -eq 1 -a $timeout -lt 30 ] ; do + sleep 1 + timeout+=1 + console=`fgconsole` + done + fi splashtrigger "rlreached $1" else splashtrigger "rlchange $1" diff --git a/systemd-gtk.changes b/systemd-gtk.changes index e807819c..3c1b5e6e 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Oct 19 13:18:54 UTC 2011 - fcrozat@suse.com + +- Add avoid-random-seed-cycle.patch: fix dependency cycle between + cryptsetup and random-seed-load (bnc#721666). +- Add crash-isolating.patch: fix crash when isolating a service. +- Fix bootsplash being killed too early. +- Fix some manpages not being redirected properly. +- Add storage-after-cryptsetup.service to restart lvm after + cryptsetup. Fixes lvm on top of LUKS (bnc#724238). + ------------------------------------------------------------------- Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index e807819c..3c1b5e6e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Oct 19 13:18:54 UTC 2011 - fcrozat@suse.com + +- Add avoid-random-seed-cycle.patch: fix dependency cycle between + cryptsetup and random-seed-load (bnc#721666). +- Add crash-isolating.patch: fix crash when isolating a service. +- Fix bootsplash being killed too early. +- Fix some manpages not being redirected properly. +- Add storage-after-cryptsetup.service to restart lvm after + cryptsetup. Fixes lvm on top of LUKS (bnc#724238). + ------------------------------------------------------------------- Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 3cccecbf..529a6404 100644 --- a/systemd.spec +++ b/systemd.spec @@ -61,6 +61,7 @@ Source7: systemd-bootsplash Source8: bootsplash-startup.service Source9: bootsplash-quit.service Source10: bootsplash-shutdown.service +Source11: storage-after-cryptsetup.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -72,11 +73,13 @@ Patch15: support-sysvinit.patch Patch16: modules_on_boot.patch Patch17: private_tmp_crash.patch Patch18: systemctl-completion-fix.patch +Patch19: avoid-random-seed-cycle.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +Patch20: crash-isolating.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -129,6 +132,8 @@ Plymouth integration for systemd %patch16 -p1 %patch17 -p1 %patch18 -p1 +%patch19 -p1 +%patch20 -p1 %build autoreconf -fiv @@ -147,6 +152,9 @@ make %{?_smp_mflags} %install %makeinstall +#fix manpages +sed -i -e 's,^\(\.so \)\(.*\.\)\([0-9]\),\1man\3/\2\3,g' %{buildroot}/%{_mandir}/*/* + #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm @@ -157,11 +165,12 @@ install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future #install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators install -m755 %{S:7} %{buildroot}/lib/systemd/ -install -m644 %{S:8} %{S:9} %{S:10} %{buildroot}/lib/systemd/system/ +install -m644 %{S:8} %{S:9} %{S:10} %{S:11} %{buildroot}/lib/systemd/system/ ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target.wants/ ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/ +ln -s ../storage-after-cryptsetup.service %{buildroot}/lib/systemd/system/local-fs.target.wants/ ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt From 17e0c6ab9808cb5f8c6c582fe674280f41c6320d15e547365c877e6349c3bead Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 27 Oct 2011 17:34:45 +0000 Subject: [PATCH 077/221] Accepting request 89556 from Base:System - Add no-tmpfs-fsck.patch: don't try to fsck tmpfs mountpoint (bnc#726791). (forwarded request 89555 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/89556 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=79 --- no-tmpfs-fsck.patch | 25 +++++++++++++++++++++++++ systemd-gtk.changes | 6 ++++++ systemd.changes | 6 ++++++ systemd.spec | 2 ++ 4 files changed, 39 insertions(+) create mode 100644 no-tmpfs-fsck.patch diff --git a/no-tmpfs-fsck.patch b/no-tmpfs-fsck.patch new file mode 100644 index 00000000..cfa7bda3 --- /dev/null +++ b/no-tmpfs-fsck.patch @@ -0,0 +1,25 @@ +From cca125c2758b48ba8f1afdc4b5751b104f0bd809 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 27 Oct 2011 15:36:57 +0200 +Subject: [PATCH] mount: do not try to fsck tmpfs mountpoint with non-null + passno. + +--- + src/mount.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/src/mount.c b/src/mount.c +index ef953f0..5da4047 100644 +--- a/src/mount.c ++++ b/src/mount.c +@@ -434,6 +434,7 @@ static int mount_add_device_links(Mount *m) { + + if (p->passno > 0 && + !mount_is_bind(p) && ++ !streq(p->fstype,"tmpfs") && + UNIT(m)->meta.manager->running_as == MANAGER_SYSTEM && + !path_equal(m->where, "/")) { + char *name; +-- +1.7.7 + diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 3c1b5e6e..b900778c 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Oct 27 13:39:03 UTC 2011 - fcrozat@suse.com + +- Add no-tmpfs-fsck.patch: don't try to fsck tmpfs mountpoint + (bnc#726791). + ------------------------------------------------------------------- Wed Oct 19 13:18:54 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 3c1b5e6e..b900778c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Oct 27 13:39:03 UTC 2011 - fcrozat@suse.com + +- Add no-tmpfs-fsck.patch: don't try to fsck tmpfs mountpoint + (bnc#726791). + ------------------------------------------------------------------- Wed Oct 19 13:18:54 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 529a6404..053814af 100644 --- a/systemd.spec +++ b/systemd.spec @@ -80,6 +80,7 @@ Patch19: avoid-random-seed-cycle.patch # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. Patch20: crash-isolating.patch +Patch21: no-tmpfs-fsck.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -134,6 +135,7 @@ Plymouth integration for systemd %patch18 -p1 %patch19 -p1 %patch20 -p1 +%patch21 -p1 %build autoreconf -fiv From 9f338aa7f4ccaa8b5b9bb946585500e8f8b440364578489074edc71309141118 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 5 Nov 2011 10:27:37 +0000 Subject: [PATCH 078/221] Accepting request 90129 from Base:System - Fix rpm macros to only call presets on initial install (bnc#728104). (forwarded request 90127 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/90129 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=80 --- macros.systemd | 5 +++-- systemd-gtk.changes | 6 ++++++ systemd.changes | 6 ++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/macros.systemd b/macros.systemd index 87621abe..9cb43928 100644 --- a/macros.systemd +++ b/macros.systemd @@ -60,11 +60,12 @@ for service in %{?*} ; do \ touch "/var/lib/systemd/migrated/$sysv_service" \ fi \ done \ +/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ +elif [ $FIRST_ARG -eq 1 ]; then \ + /bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ fi \ -/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ %{nil} # On uninstall, disable and stop services diff --git a/systemd-gtk.changes b/systemd-gtk.changes index b900778c..b6076ad4 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Nov 4 14:44:18 UTC 2011 - fcrozat@suse.com + +- Fix rpm macros to only call presets on initial install + (bnc#728104). + ------------------------------------------------------------------- Thu Oct 27 13:39:03 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index b900778c..b6076ad4 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Nov 4 14:44:18 UTC 2011 - fcrozat@suse.com + +- Fix rpm macros to only call presets on initial install + (bnc#728104). + ------------------------------------------------------------------- Thu Oct 27 13:39:03 UTC 2011 - fcrozat@suse.com From 7ad544279784f592b339abf5fbb6bd7b90ec621c2649f3656239285274948db7 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 21 Nov 2011 14:50:15 +0000 Subject: [PATCH 079/221] Accepting request 92813 from Base:System - add libtool as buildrequire to avoid implicit dependency (forwarded request 92485 from coolo) OBS-URL: https://build.opensuse.org/request/show/92813 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=81 --- systemd.changes | 5 +++++ systemd.spec | 1 + 2 files changed, 6 insertions(+) diff --git a/systemd.changes b/systemd.changes index b6076ad4..cf784743 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Nov 19 15:40:38 UTC 2011 - coolo@suse.com + +- add libtool as buildrequire to avoid implicit dependency + ------------------------------------------------------------------- Fri Nov 4 14:44:18 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 053814af..d5fba46c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -35,6 +35,7 @@ BuildRequires: audit-devel BuildRequires: gperf BuildRequires: libcap-devel BuildRequires: libacl-devel +BuildRequires: libtool BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel From 15e9898ef68cb37d8230b42f2711aa092b53ac4110f04caaa5331f701be085ef Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 6 Dec 2011 18:06:58 +0000 Subject: [PATCH 080/221] replace license with spdx.org variant OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=82 --- systemd-gtk.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 900f4dba..1c0e06d5 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -22,7 +22,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd Version: 37 Release: 1 -License: GPLv2+ +License: GPL-2.0+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libudev-devel udev From 021c08f8c630f46007a40a4fe90c8622d1be8f3280c92592fc58ce26da8b412d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 6 Dec 2011 18:07:00 +0000 Subject: [PATCH 081/221] replace license with spdx.org variant OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=83 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index d5fba46c..94c5cb89 100644 --- a/systemd.spec +++ b/systemd.spec @@ -25,7 +25,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 37 Release: 1 -License: GPLv2+ +License: GPL-2.0+ Group: System/Base Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build From fd27f5b8ab5795e5d2465279c2d9c239aaba92d1dd2a2d62f94a9142f17322cd Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 12 Dec 2011 15:59:25 +0000 Subject: [PATCH 082/221] Accepting request 96193 from Base:System - Remove storage-after-cryptsetup.service, add storage-after-cryptsetup.patch instead to prevent dependency cycle (bnc#722539). - Add delay-fsck-cryptsetup-after-md-lvm-dmraid.patch: ensure fsck/cryptsetup is run after lvm/md/dmraid have landed (bnc#724912). - Add cron-tty-pam.patch: Fix cron filling logs (bnc#731358). - Add do_not_warn_pidfile.patch: Fix PID warning in logs (bnc#732912). - Add mount-swap-log.patch: Ensure swap and mount output is redirected to default log target (rhb#750032). - Add color-on-boot.patch: ensure colored status are displayed at boot time. - Update modules_on_boot.patch to fix bnc#732041. - Replace private_tmp_crash.patch with log_on_close.patch, better upstream fix for bnc#699829 and fix bnc#731719. - Update vconsole patch to fix memleaks and crash (bnc#734527). - Add handle-racy-daemon.patch: fix warnings with sendmail (bnc#732912). - Add new-lsb-headers.patch: support PIDFile: and X-Systemd-RemainAfterExit: header in initscript (bnc#727771). - Update bootsplash services to not start if vga= is missing from cmdline (bnc#727771) - Add lock-opensuse.patch: disable /var/lock/{subsys,lockdev} and change default permissions on /var/lock (bnc#733523). - Add garbage_collect_units: ensure error units are correctly garbage collected (rhb#680122). - Add crypt-loop-file.patch: add support for crypt file loop (bnc#730496). OBS-URL: https://build.opensuse.org/request/show/96193 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=84 --- ...aplock-and-compose_table-and-kbd_rat.patch | 49 +- bootsplash-quit.service | 4 +- bootsplash-startup.service | 1 + color-on-boot.patch | 131 ++ cron-tty-pam.patch | 81 ++ crypt-loop-file.patch | 76 ++ ...-fsck-cryptsetup-after-md-lvm-dmraid.patch | 38 + do_not_warn_pidfile.patch | 60 + garbage_collect_units.patch | 29 + handle-racy-daemon.patch | 1066 +++++++++++++++++ lock-opensuse.patch | 16 + log_on_close.patch | 586 +++++++++ modules_on_boot.patch | 23 +- mount-swap-log.patch | 54 + new-lsb-headers.patch | 65 + private_tmp_crash.patch | 12 - storage-after-cryptsetup.patch | 132 ++ storage-after-cryptsetup.service | 12 - systemd-gtk.changes | 38 + systemd-gtk.spec | 1 + systemd.changes | 33 + systemd.spec | 30 +- 22 files changed, 2483 insertions(+), 54 deletions(-) create mode 100644 color-on-boot.patch create mode 100644 cron-tty-pam.patch create mode 100644 crypt-loop-file.patch create mode 100644 delay-fsck-cryptsetup-after-md-lvm-dmraid.patch create mode 100644 do_not_warn_pidfile.patch create mode 100644 garbage_collect_units.patch create mode 100644 handle-racy-daemon.patch create mode 100644 lock-opensuse.patch create mode 100644 log_on_close.patch create mode 100644 mount-swap-log.patch create mode 100644 new-lsb-headers.patch delete mode 100644 private_tmp_crash.patch create mode 100644 storage-after-cryptsetup.patch delete mode 100644 storage-after-cryptsetup.service diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch index 7b91b90f..9d981f20 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -7,10 +7,10 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 121 insertions(+), 3 deletions(-) -diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c -index c5f3628..6603a75 100644 ---- a/src/vconsole-setup.c -+++ b/src/vconsole-setup.c +Index: systemd-37/src/vconsole-setup.c +=================================================================== +--- systemd-37.orig/src/vconsole-setup.c ++++ systemd-37/src/vconsole-setup.c @@ -40,6 +40,7 @@ #include "log.h" #include "macro.h" @@ -30,7 +30,7 @@ index c5f3628..6603a75 100644 int i = 0; pid_t pid; -@@ -99,6 +100,8 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle, +@@ -99,6 +100,8 @@ static int load_keymap(const char *vc, c args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,16 +39,17 @@ index c5f3628..6603a75 100644 args[i++] = NULL; if ((pid = fork()) < 0) { -@@ -150,6 +153,96 @@ static int load_font(const char *vc, const char *font, const char *map, const ch +@@ -150,6 +153,101 @@ static int load_font(const char *vc, con return 0; } +#ifdef TARGET_SUSE +static int load_compose_table(const char *vc, const char *compose_table, pid_t *_pid) { + const char *args[1024]; -+ int i = 0; ++ int i = 0, j = 0; + pid_t pid; + char **strv_compose_table = NULL; ++ char *to_free[1024]; + + if (isempty(compose_table)) { + /* An empty map means no compose table*/ @@ -79,7 +80,7 @@ index c5f3628..6603a75 100644 + } + asprintf(&arg, "compose.%s",*name); + compose_loaded = true; -+ args[i++] = arg; ++ args[i++] = to_free[j++] = arg; + + } + strv_free(strv_compose_table); @@ -95,6 +96,10 @@ index c5f3628..6603a75 100644 + } + + *_pid = pid; ++ ++ for (i=0 ; i < j ; i++) ++ free (to_free[i]); ++ + return 0; +} + @@ -136,7 +141,7 @@ index c5f3628..6603a75 100644 int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -163,8 +256,16 @@ int main(int argc, char **argv) { +@@ -163,8 +261,16 @@ int main(int argc, char **argv) { #ifdef TARGET_MANDRIVA char *vc_keytable = NULL; #endif @@ -153,7 +158,7 @@ index c5f3628..6603a75 100644 int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -265,6 +366,10 @@ int main(int argc, char **argv) { +@@ -265,6 +371,10 @@ int main(int argc, char **argv) { #elif defined(TARGET_SUSE) if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, "KEYTABLE", &vc_keymap, @@ -164,15 +169,15 @@ index c5f3628..6603a75 100644 NULL)) < 0) { if (r != -ENOENT) -@@ -280,6 +385,7 @@ int main(int argc, char **argv) { +@@ -280,6 +390,7 @@ int main(int argc, char **argv) { if (r != -ENOENT) log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); } -+ disable_capslock = strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; #elif defined(TARGET_ARCH) if ((r = parse_env_file("/etc/rc.conf", NEWLINE, -@@ -436,7 +542,11 @@ int main(int argc, char **argv) { +@@ -436,7 +547,11 @@ int main(int argc, char **argv) { if (!utf8) disable_utf8(fd); @@ -185,7 +190,7 @@ index c5f3628..6603a75 100644 load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -444,6 +554,14 @@ finish: +@@ -444,6 +559,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -200,6 +205,16 @@ index c5f3628..6603a75 100644 if (font_pid > 0) wait_for_terminate_and_warn(KBD_SETFONT, font_pid); --- -1.7.3.4 - +@@ -451,6 +574,12 @@ finish: + free(vc_font); + free(vc_font_map); + free(vc_font_unimap); ++#ifdef TARGET_SUSE ++ free(vc_kbd_delay); ++ free(vc_kbd_rate); ++ free(vc_kbd_disable_caps_lock); ++ free(vc_compose_table); ++#endif + + if (fd >= 0) + close_nointr_nofail(fd); diff --git a/bootsplash-quit.service b/bootsplash-quit.service index 6e20630d..272deb89 100644 --- a/bootsplash-quit.service +++ b/bootsplash-quit.service @@ -3,7 +3,9 @@ Description=Terminate bootsplash After=xdm.service rc-local.service bootsplash-startup.service Before=getty@tty1.service DefaultDependencies=no -Names=plymout-quit-wait.service +Names=plymouth-quit-wait.service +ConditionKernelCommandLine=splash=silent +ConditionKernelCommandLine=vga [Service] ExecStart=/lib/systemd/systemd-bootsplash 5 diff --git a/bootsplash-startup.service b/bootsplash-startup.service index a10976c6..9f70d06b 100644 --- a/bootsplash-startup.service +++ b/bootsplash-startup.service @@ -2,6 +2,7 @@ Description=Start bootsplash DefaultDependencies=no ConditionKernelCommandLine=splash=silent +ConditionKernelCommandLine=vga [Service] ExecStart=/lib/systemd/systemd-bootsplash 0 diff --git a/color-on-boot.patch b/color-on-boot.patch new file mode 100644 index 00000000..8be6e081 --- /dev/null +++ b/color-on-boot.patch @@ -0,0 +1,131 @@ +From 5831e9b726ab6e76b28a94861a014d3bc2aa3015 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 10 Nov 2011 12:53:39 +0100 +Subject: [PATCH] job: colored status messages on boot + +The lack or green/red status marks on boot has been described by some +users as "critical", "dramatic", "dealbreaker", "showstopper". Seriously. +--- + src/job.c | 13 +++++++------ + src/unit.c | 24 ++++++++++++++++++++---- + src/unit.h | 2 +- + 3 files changed, 28 insertions(+), 11 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 20971da..1520d81 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -484,19 +484,20 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { + switch (result) { + + case JOB_DONE: +- unit_status_printf(u, "Started %s.\n", unit_description(u)); ++ unit_status_printf(u, ANSI_HIGHLIGHT_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, "Started %s", unit_description(u)); + break; + + case JOB_FAILED: +- unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ", see 'systemctl status %s' for details.\n", unit_description(u), u->meta.id); ++ unit_status_printf(u, ANSI_HIGHLIGHT_ON "FAILED" ANSI_HIGHLIGHT_OFF, "Failed to start %s", unit_description(u)); ++ unit_status_printf(u, NULL, "See 'systemctl status %s' for details.", u->meta.id); + break; + + case JOB_DEPENDENCY: +- unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "aborted" ANSI_HIGHLIGHT_OFF " because a dependency failed.\n", unit_description(u)); ++ unit_status_printf(u, ANSI_HIGHLIGHT_ON " ABORT" ANSI_HIGHLIGHT_OFF, "Dependency failed. Aborted start of %s", unit_description(u)); + break; + + case JOB_TIMEOUT: +- unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); ++ unit_status_printf(u, ANSI_HIGHLIGHT_ON " TIME " ANSI_HIGHLIGHT_OFF, "Timed out starting %s", unit_description(u)); + break; + + default: +@@ -508,12 +509,12 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { + switch (result) { + + case JOB_TIMEOUT: +- unit_status_printf(u, "Stopping %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); ++ unit_status_printf(u, ANSI_HIGHLIGHT_ON " TIME " ANSI_HIGHLIGHT_OFF, "Timed out stopping %s", unit_description(u)); + break; + + case JOB_DONE: + case JOB_FAILED: +- unit_status_printf(u, "Stopped %s.\n", unit_description(u)); ++ unit_status_printf(u, ANSI_HIGHLIGHT_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, "Stopped %s", unit_description(u)); + break; + + default: +diff --git a/src/unit.c b/src/unit.c +index 903a8e4..ad4063b 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -924,7 +924,7 @@ int unit_start(Unit *u) { + + unit_add_to_dbus_queue(u); + +- unit_status_printf(u, "Starting %s...\n", unit_description(u)); ++ unit_status_printf(u, NULL, "Starting %s...", unit_description(u)); + return UNIT_VTABLE(u)->start(u); + } + +@@ -966,7 +966,7 @@ int unit_stop(Unit *u) { + + unit_add_to_dbus_queue(u); + +- unit_status_printf(u, "Stopping %s...\n", unit_description(u)); ++ unit_status_printf(u, NULL, "Stopping %s...", unit_description(u)); + return UNIT_VTABLE(u)->stop(u); + } + +@@ -2426,8 +2426,11 @@ int unit_coldplug(Unit *u) { + return 0; + } + +-void unit_status_printf(Unit *u, const char *format, ...) { ++void unit_status_printf(Unit *u, const char *status, const char *format, ...) { + va_list ap; ++ char *s, *e; ++ int err; ++ const unsigned emax = status ? 80 - (sizeof("[ OK ]")-1) : 80; + + assert(u); + assert(format); +@@ -2442,8 +2445,21 @@ void unit_status_printf(Unit *u, const char *format, ...) { + return; + + va_start(ap, format); +- status_vprintf(format, ap); ++ err = vasprintf(&s, format, ap); + va_end(ap); ++ if (err < 0) ++ return; ++ ++ e = ellipsize(s, emax, 100); ++ free(s); ++ if (!e) ++ return; ++ ++ if (status) ++ status_printf("%s%*s[%s]\n", e, emax - strlen(e), "", status); ++ else ++ status_printf("%s\n", e); ++ free(e); + } + + bool unit_need_daemon_reload(Unit *u) { +diff --git a/src/unit.h b/src/unit.h +index 7da5723..b32c1a7 100644 +--- a/src/unit.h ++++ b/src/unit.h +@@ -512,7 +512,7 @@ int unit_add_node_link(Unit *u, const char *what, bool wants); + + int unit_coldplug(Unit *u); + +-void unit_status_printf(Unit *u, const char *format, ...); ++void unit_status_printf(Unit *u, const char *status, const char *format, ...); + + bool unit_need_daemon_reload(Unit *u); + +-- +1.7.7 + diff --git a/cron-tty-pam.patch b/cron-tty-pam.patch new file mode 100644 index 00000000..ecacaf35 --- /dev/null +++ b/cron-tty-pam.patch @@ -0,0 +1,81 @@ +From 1dc995370987660ff045ff4d7cf512da0390cf96 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 19 Nov 2011 01:14:11 +0100 +Subject: [PATCH 1/2] pam-module: use the correct session type "unspecified" + +logind does not understand "other". +--- + src/pam-module.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/pam-module.c b/src/pam-module.c +index dd05f93..e650886 100644 +--- a/src/pam-module.c ++++ b/src/pam-module.c +@@ -472,7 +472,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( + get_seat_from_display(display, &seat, &vtnr); + + type = !isempty(display) ? "x11" : +- !isempty(tty) ? "tty" : "other"; ++ !isempty(tty) ? "tty" : "unspecified"; + + remote = !isempty(remote_host) && !streq(remote_host, "localhost") && !streq(remote_host, "localhost.localdomain"); + +-- +1.7.7 + + +From 1a4459d63323cdfdb8751077e555ddbbf80564b1 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 19 Nov 2011 01:17:46 +0100 +Subject: [PATCH 2/2] pam-module: treat "cron" in PAM_TTY as empty tty + +cron sets PAM_TTY to "cron" and it has been doing it for a long time. +It cannot be changed because user configurations may depend on it. + +https://bugzilla.redhat.com/show_bug.cgi?id=727315 +--- + src/logind-session.c | 4 ++-- + src/pam-module.c | 4 ++++ + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/logind-session.c b/src/logind-session.c +index b0a09e3..63ee758 100644 +--- a/src/logind-session.c ++++ b/src/logind-session.c +@@ -536,7 +536,7 @@ int session_start(Session *s) { + if (r < 0) + return r; + +- log_full(s->display || s->tty ? LOG_INFO : LOG_DEBUG, ++ log_full(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG, + "New session %s of user %s.", s->id, s->user->name); + + /* Create cgroup */ +@@ -659,7 +659,7 @@ int session_stop(Session *s) { + assert(s); + + if (s->started) +- log_full(s->display || s->tty ? LOG_INFO : LOG_DEBUG, ++ log_full(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG, + "Removed session %s.", s->id); + + /* Kill cgroup */ +diff --git a/src/pam-module.c b/src/pam-module.c +index e650886..46b7bec 100644 +--- a/src/pam-module.c ++++ b/src/pam-module.c +@@ -463,6 +463,10 @@ _public_ PAM_EXTERN int pam_sm_open_session( + if (isempty(display)) + display = tty; + tty = ""; ++ } else if (streq(tty, "cron")) { ++ /* cron has been setting PAM_TTY to "cron" for a very long time ++ * and it cannot stop doing that for compatibility reasons. */ ++ tty = ""; + } + + if (!isempty(cvtnr)) +-- +1.7.7 + diff --git a/crypt-loop-file.patch b/crypt-loop-file.patch new file mode 100644 index 00000000..7869601b --- /dev/null +++ b/crypt-loop-file.patch @@ -0,0 +1,76 @@ +Index: systemd-37/src/cryptsetup-generator.c +=================================================================== +--- systemd-37.orig/src/cryptsetup-generator.c ++++ systemd-37/src/cryptsetup-generator.c +@@ -138,7 +138,7 @@ static int create_disk( + const char *password, + const char *options) { + +- char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *from = NULL, *to = NULL, *e = NULL; ++ char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *from = NULL, *to = NULL, *e = NULL, *path_file = NULL; + int r; + FILE *f = NULL; + bool noauto, nofail; +@@ -167,10 +167,50 @@ static int create_disk( + goto fail; + } + +- if (!(d = unit_name_from_path(u, ".device"))) { +- r = -ENOMEM; +- log_error("Failed to allocate device name."); +- goto fail; ++ if (!startswith(device,"/dev/")) { ++ ++ if (!(d = unit_name_build_escape("cryptsetup", name, ".path"))) { ++ r = -ENOMEM; ++ log_error("Failed to allocate path name."); ++ goto fail; ++ } ++ ++ if (asprintf(&path_file, "%s/%s", arg_dest, d) < 0) { ++ r = -ENOMEM; ++ log_error("Failed to allocate unit file name."); ++ goto fail; ++ } ++ ++ if (!(f = fopen(path_file, "wxe"))) { ++ r = -errno; ++ log_error("Failed to create unit file: %m"); ++ goto fail; ++ } ++ ++ fprintf(f, ++ "[Unit]\n" ++ "Description=Cryptography Setup for %s\n" ++ "DefaultDependencies=no\n" ++ "[Path]\n" ++ "PathExists=%s\n", ++ device, device); ++ ++ fflush(f); ++ ++ if (ferror(f)) { ++ r = -errno; ++ log_error("Failed to write file: %m"); ++ goto fail; ++ } ++ ++ f = NULL; ++ } else { ++ ++ if (!(d = unit_name_from_path(u, ".device"))) { ++ r = -ENOMEM; ++ log_error("Failed to allocate device name."); ++ goto fail; ++ } + } + + if (!(f = fopen(p, "wxe"))) { +@@ -300,6 +340,7 @@ fail: + free(n); + free(d); + free(e); ++ free(path_file); + + free(from); + free(to); diff --git a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch new file mode 100644 index 00000000..403c9ed0 --- /dev/null +++ b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch @@ -0,0 +1,38 @@ +From c6170719e7afbcecc04e8939e93e9678529e6391 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Wed, 9 Nov 2011 11:10:49 +0100 +Subject: [PATCH] delay fsck / cryptsetup after md / dmraid / lvm are started + +--- + src/cryptsetup-generator.c | 1 + + units/fsck@.service.in | 2 +- + 2 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c +index 14fcce8..e62f0e0 100644 +--- a/src/cryptsetup-generator.c ++++ b/src/cryptsetup-generator.c +@@ -186,6 +186,7 @@ static int create_disk( + "DefaultDependencies=no\n" + "BindTo=%s dev-mapper-%%i.device\n" + "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" ++ "After=md.service dmraid.service lvm.service\n" + "Before=umount.target\n", + d, d); + +diff --git a/units/fsck@.service.in b/units/fsck@.service.in +index e1f7736..c1870ce 100644 +--- a/units/fsck@.service.in ++++ b/units/fsck@.service.in +@@ -9,7 +9,7 @@ + Description=File System Check on %f + DefaultDependencies=no + BindTo=%i.device +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device lvm.service md.service dmraid.service + Before=shutdown.target + + [Service] +-- +1.7.7 + diff --git a/do_not_warn_pidfile.patch b/do_not_warn_pidfile.patch new file mode 100644 index 00000000..83002c89 --- /dev/null +++ b/do_not_warn_pidfile.patch @@ -0,0 +1,60 @@ +From c5419d4239ceb4c3bd0263a0a810cf24a072b3c0 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 10 Nov 2011 09:55:47 +0100 +Subject: [PATCH] service: don't warn if the pidfile still exists after + SIGCHLD + +A service that drops its privileges may not be able to remove it when it +exits. The stale pidfile is not a problem as long as the service +carefully recognizes it on its next start. + +systemd would produce a warning after the service exits: + PID ... read from file ... does not exist. Your service or init + script might be broken. + +Silence the warning in this case. Still warn if this error is detected +when loading the pidfile after service start. + +Noticed by Miroslav Lichvar in + https://bugzilla.redhat.com/show_bug.cgi?id=752396 +--- + src/service.c | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/service.c b/src/service.c +index eb475d9..6fc2484 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -1290,7 +1290,7 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { + free(p2); + } + +-static int service_load_pid_file(Service *s, bool warn_if_missing) { ++static int service_load_pid_file(Service *s, bool may_warn) { + char *k; + int r; + pid_t pid; +@@ -1301,7 +1301,7 @@ static int service_load_pid_file(Service *s, bool warn_if_missing) { + return -ENOENT; + + if ((r = read_one_line_file(s->pid_file, &k)) < 0) { +- if (warn_if_missing) ++ if (may_warn) + log_warning("Failed to read PID file %s after %s. The service might be broken.", + s->pid_file, service_state_to_string(s->state)); + return r; +@@ -1314,8 +1314,9 @@ static int service_load_pid_file(Service *s, bool warn_if_missing) { + return r; + + if (kill(pid, 0) < 0 && errno != EPERM) { +- log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.", +- (unsigned long) pid, s->pid_file); ++ if (may_warn) ++ log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.", ++ (unsigned long) pid, s->pid_file); + return -ESRCH; + } + +-- +1.7.7 + diff --git a/garbage_collect_units.patch b/garbage_collect_units.patch new file mode 100644 index 00000000..3ea2bd2e --- /dev/null +++ b/garbage_collect_units.patch @@ -0,0 +1,29 @@ +From 9a46fc3b9014de1bf0ed1f3004a536b08a19ebb3 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 6 Dec 2011 00:47:28 +0100 +Subject: [PATCH] unit: garbage collect units with load error + +Units that failed to load were never cleaned up. It was possible to +reach the 128K limit of units by attempting to load a bunch of nonsense. + +Bug observed by Reartes Guillermo in +https://bugzilla.redhat.com/show_bug.cgi?id=680122 +--- + src/unit.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/src/unit.c b/src/unit.c +index 2a549e2..018e986 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -858,6 +858,7 @@ fail: + u->meta.load_state = UNIT_ERROR; + u->meta.load_error = r; + unit_add_to_dbus_queue(u); ++ unit_add_to_gc_queue(u); + + log_debug("Failed to load configuration for %s: %s", u->meta.id, strerror(-r)); + +-- +1.7.7 + diff --git a/handle-racy-daemon.patch b/handle-racy-daemon.patch new file mode 100644 index 00000000..4a8a07f1 --- /dev/null +++ b/handle-racy-daemon.patch @@ -0,0 +1,1066 @@ +From 35d50f55f346c71fd5e957d35ebcae1c50b1f9ce Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 3 Dec 2011 00:41:34 +0100 +Subject: [PATCH 1/5] util: fix error checking after fgets() + +fgets() does not set errno on EOF. +--- + src/util.c | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/util.c b/src/util.c +index e93e6f6..da71e4d 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -516,7 +516,7 @@ int get_parent_of_pid(pid_t pid, pid_t *_ppid) { + return -errno; + + if (!(fgets(line, sizeof(line), f))) { +- r = -errno; ++ r = feof(f) ? -EIO : -errno; + fclose(f); + return r; + } +@@ -561,7 +561,7 @@ int get_starttime_of_pid(pid_t pid, unsigned long long *st) { + return -errno; + + if (!(fgets(line, sizeof(line), f))) { +- r = -errno; ++ r = feof(f) ? -EIO : -errno; + fclose(f); + return r; + } +@@ -708,7 +708,7 @@ int read_one_line_file(const char *fn, char **line) { + return -errno; + + if (!(fgets(t, sizeof(t), f))) { +- r = -errno; ++ r = feof(f) ? -EIO : -errno; + goto finish; + } + +@@ -3266,7 +3266,7 @@ int get_ctty_devnr(pid_t pid, dev_t *d) { + return -errno; + + if (!fgets(line, sizeof(line), f)) { +- k = -errno; ++ k = feof(f) ? -EIO : -errno; + fclose(f); + return k; + } +-- +1.7.7 + + +From 768147d13d0877a4c3e5f6f986c3064de62ff4f1 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 3 Dec 2011 01:36:05 +0100 +Subject: [PATCH 2/5] path: use %m instead of strerror(errno) + +and strerror(-errno) was just wrong. +--- + src/path.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/path.c b/src/path.c +index f15c921..142fd2d 100644 +--- a/src/path.c ++++ b/src/path.c +@@ -556,7 +556,7 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { + } + + if (ioctl(fd, FIONREAD, &l) < 0) { +- log_error("FIONREAD failed: %s", strerror(errno)); ++ log_error("FIONREAD failed: %m"); + goto fail; + } + +@@ -568,7 +568,7 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { + } + + if ((k = read(fd, buf, l)) < 0) { +- log_error("Failed to read inotify event: %s", strerror(-errno)); ++ log_error("Failed to read inotify event: %m"); + goto fail; + } + +-- +1.7.7 + + +From 4b562198c79e4ebfc3d84b69a1dae374bc6cf9f5 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 3 Dec 2011 01:38:30 +0100 +Subject: [PATCH 3/5] path: refactor PathSpec usage + +path_*() functions operate on "Path *p" and they do not touch PathSpec +internals directly. + +pathspec_*() functions operate on "PathSpec *s". The PathSpec class will +be useful outside of path.c. +--- + src/path.c | 356 +++++++++++++++++++++++++++++++++--------------------------- + src/path.h | 8 ++ + 2 files changed, 203 insertions(+), 161 deletions(-) + +diff --git a/src/path.c b/src/path.c +index 142fd2d..db6f873 100644 +--- a/src/path.c ++++ b/src/path.c +@@ -39,26 +39,202 @@ static const UnitActiveState state_translation_table[_PATH_STATE_MAX] = { + [PATH_FAILED] = UNIT_FAILED + }; + +-static void path_init(Unit *u) { +- Path *p = PATH(u); ++int pathspec_watch(PathSpec *s, Unit *u) { ++ static const int flags_table[_PATH_TYPE_MAX] = { ++ [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, ++ [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, ++ [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, ++ [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO ++ }; ++ ++ bool exists = false; ++ char *k, *slash; ++ int r; + + assert(u); +- assert(u->meta.load_state == UNIT_STUB); ++ assert(s); + +- p->directory_mode = 0755; ++ pathspec_unwatch(s, u); ++ ++ if (!(k = strdup(s->path))) ++ return -ENOMEM; ++ ++ if ((s->inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC)) < 0) { ++ r = -errno; ++ goto fail; ++ } ++ ++ if (unit_watch_fd(u, s->inotify_fd, EPOLLIN, &s->watch) < 0) { ++ r = -errno; ++ goto fail; ++ } ++ ++ if ((s->primary_wd = inotify_add_watch(s->inotify_fd, k, flags_table[s->type])) >= 0) ++ exists = true; ++ ++ do { ++ int flags; ++ ++ /* This assumes the path was passed through path_kill_slashes()! */ ++ if (!(slash = strrchr(k, '/'))) ++ break; ++ ++ /* Trim the path at the last slash. Keep the slash if it's the root dir. */ ++ slash[slash == k] = 0; ++ ++ flags = IN_MOVE_SELF; ++ if (!exists) ++ flags |= IN_DELETE_SELF | IN_ATTRIB | IN_CREATE | IN_MOVED_TO; ++ ++ if (inotify_add_watch(s->inotify_fd, k, flags) >= 0) ++ exists = true; ++ } while (slash != k); ++ ++ return 0; ++ ++fail: ++ free(k); ++ ++ pathspec_unwatch(s, u); ++ return r; + } + +-static void path_unwatch_one(Path *p, PathSpec *s) { ++void pathspec_unwatch(PathSpec *s, Unit *u) { + + if (s->inotify_fd < 0) + return; + +- unit_unwatch_fd(UNIT(p), &s->watch); ++ unit_unwatch_fd(u, &s->watch); + + close_nointr_nofail(s->inotify_fd); + s->inotify_fd = -1; + } + ++int pathspec_fd_event(PathSpec *s, uint32_t events) { ++ uint8_t *buf = NULL; ++ struct inotify_event *e; ++ ssize_t k; ++ int l; ++ int r = 0; ++ ++ if (events != EPOLLIN) { ++ log_error("Got Invalid poll event on inotify."); ++ r = -EINVAL; ++ goto out; ++ } ++ ++ if (ioctl(s->inotify_fd, FIONREAD, &l) < 0) { ++ log_error("FIONREAD failed: %m"); ++ r = -errno; ++ goto out; ++ } ++ ++ assert(l > 0); ++ ++ if (!(buf = malloc(l))) { ++ log_error("Failed to allocate buffer: %m"); ++ r = -errno; ++ goto out; ++ } ++ ++ if ((k = read(s->inotify_fd, buf, l)) < 0) { ++ log_error("Failed to read inotify event: %m"); ++ r = -errno; ++ goto out; ++ } ++ ++ e = (struct inotify_event*) buf; ++ ++ while (k > 0) { ++ size_t step; ++ ++ if (s->type == PATH_CHANGED && s->primary_wd == e->wd) ++ r = 1; ++ ++ step = sizeof(struct inotify_event) + e->len; ++ assert(step <= (size_t) k); ++ ++ e = (struct inotify_event*) ((uint8_t*) e + step); ++ k -= step; ++ } ++out: ++ free(buf); ++ return r; ++} ++ ++static bool pathspec_check_good(PathSpec *s, bool initial) { ++ bool good = false; ++ ++ switch (s->type) { ++ ++ case PATH_EXISTS: ++ good = access(s->path, F_OK) >= 0; ++ break; ++ ++ case PATH_EXISTS_GLOB: ++ good = glob_exists(s->path) > 0; ++ break; ++ ++ case PATH_DIRECTORY_NOT_EMPTY: { ++ int k; ++ ++ k = dir_is_empty(s->path); ++ good = !(k == -ENOENT || k > 0); ++ break; ++ } ++ ++ case PATH_CHANGED: { ++ bool b; ++ ++ b = access(s->path, F_OK) >= 0; ++ good = !initial && b != s->previous_exists; ++ s->previous_exists = b; ++ break; ++ } ++ ++ default: ++ ; ++ } ++ ++ return good; ++} ++ ++static bool pathspec_startswith(PathSpec *s, const char *what) { ++ return path_startswith(s->path, what); ++} ++ ++static void pathspec_mkdir(PathSpec *s, mode_t mode) { ++ int r; ++ ++ if (s->type == PATH_EXISTS || s->type == PATH_EXISTS_GLOB) ++ return; ++ ++ if ((r = mkdir_p(s->path, mode)) < 0) ++ log_warning("mkdir(%s) failed: %s", s->path, strerror(-r)); ++} ++ ++static void pathspec_dump(PathSpec *s, FILE *f, const char *prefix) { ++ fprintf(f, ++ "%s%s: %s\n", ++ prefix, ++ path_type_to_string(s->type), ++ s->path); ++} ++ ++void pathspec_done(PathSpec *s) { ++ assert(s->inotify_fd == -1); ++ free(s->path); ++} ++ ++static void path_init(Unit *u) { ++ Path *p = PATH(u); ++ ++ assert(u); ++ assert(u->meta.load_state == UNIT_STUB); ++ ++ p->directory_mode = 0755; ++} ++ + static void path_done(Unit *u) { + Path *p = PATH(u); + PathSpec *s; +@@ -66,9 +242,9 @@ static void path_done(Unit *u) { + assert(p); + + while ((s = p->specs)) { +- path_unwatch_one(p, s); ++ pathspec_unwatch(s, u); + LIST_REMOVE(PathSpec, spec, p->specs, s); +- free(s->path); ++ pathspec_done(s); + free(s); + } + } +@@ -86,7 +262,7 @@ int path_add_one_mount_link(Path *p, Mount *m) { + + LIST_FOREACH(spec, s, p->specs) { + +- if (!path_startswith(s->path, m->where)) ++ if (!pathspec_startswith(s, m->where)) + continue; + + if ((r = unit_add_two_dependencies(UNIT(p), UNIT_AFTER, UNIT_REQUIRES, UNIT(m), true)) < 0) +@@ -187,71 +363,7 @@ static void path_dump(Unit *u, FILE *f, const char *prefix) { + prefix, p->directory_mode); + + LIST_FOREACH(spec, s, p->specs) +- fprintf(f, +- "%s%s: %s\n", +- prefix, +- path_type_to_string(s->type), +- s->path); +-} +- +-static int path_watch_one(Path *p, PathSpec *s) { +- static const int flags_table[_PATH_TYPE_MAX] = { +- [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, +- [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, +- [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, +- [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO +- }; +- +- bool exists = false; +- char *k, *slash; +- int r; +- +- assert(p); +- assert(s); +- +- path_unwatch_one(p, s); +- +- if (!(k = strdup(s->path))) +- return -ENOMEM; +- +- if ((s->inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC)) < 0) { +- r = -errno; +- goto fail; +- } +- +- if (unit_watch_fd(UNIT(p), s->inotify_fd, EPOLLIN, &s->watch) < 0) { +- r = -errno; +- goto fail; +- } +- +- if ((s->primary_wd = inotify_add_watch(s->inotify_fd, k, flags_table[s->type])) >= 0) +- exists = true; +- +- do { +- int flags; +- +- /* This assumes the path was passed through path_kill_slashes()! */ +- if (!(slash = strrchr(k, '/'))) +- break; +- +- /* Trim the path at the last slash. Keep the slash if it's the root dir. */ +- slash[slash == k] = 0; +- +- flags = IN_MOVE_SELF; +- if (!exists) +- flags |= IN_DELETE_SELF | IN_ATTRIB | IN_CREATE | IN_MOVED_TO; +- +- if (inotify_add_watch(s->inotify_fd, k, flags) >= 0) +- exists = true; +- } while (slash != k); +- +- return 0; +- +-fail: +- free(k); +- +- path_unwatch_one(p, s); +- return r; ++ pathspec_dump(s, f, prefix); + } + + static void path_unwatch(Path *p) { +@@ -260,7 +372,7 @@ static void path_unwatch(Path *p) { + assert(p); + + LIST_FOREACH(spec, s, p->specs) +- path_unwatch_one(p, s); ++ pathspec_unwatch(s, UNIT(p)); + } + + static int path_watch(Path *p) { +@@ -270,7 +382,7 @@ static int path_watch(Path *p) { + assert(p); + + LIST_FOREACH(spec, s, p->specs) +- if ((r = path_watch_one(p, s)) < 0) ++ if ((r = pathspec_watch(s, UNIT(p))) < 0) + return r; + + return 0; +@@ -361,37 +473,7 @@ static bool path_check_good(Path *p, bool initial) { + assert(p); + + LIST_FOREACH(spec, s, p->specs) { +- +- switch (s->type) { +- +- case PATH_EXISTS: +- good = access(s->path, F_OK) >= 0; +- break; +- +- case PATH_EXISTS_GLOB: +- good = glob_exists(s->path) > 0; +- break; +- +- case PATH_DIRECTORY_NOT_EMPTY: { +- int k; +- +- k = dir_is_empty(s->path); +- good = !(k == -ENOENT || k > 0); +- break; +- } +- +- case PATH_CHANGED: { +- bool b; +- +- b = access(s->path, F_OK) >= 0; +- good = !initial && b != s->previous_exists; +- s->previous_exists = b; +- break; +- } +- +- default: +- ; +- } ++ good = pathspec_check_good(s, initial); + + if (good) + break; +@@ -440,15 +522,8 @@ static void path_mkdir(Path *p) { + if (!p->make_directory) + return; + +- LIST_FOREACH(spec, s, p->specs) { +- int r; +- +- if (s->type == PATH_EXISTS || s->type == PATH_EXISTS_GLOB) +- continue; +- +- if ((r = mkdir_p(s->path, p->directory_mode)) < 0) +- log_warning("mkdir(%s) failed: %s", s->path, strerror(-r)); +- } ++ LIST_FOREACH(spec, s, p->specs) ++ pathspec_mkdir(s, p->directory_mode); + } + + static int path_start(Unit *u) { +@@ -525,12 +600,8 @@ static const char *path_sub_state_to_string(Unit *u) { + + static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { + Path *p = PATH(u); +- int l; +- ssize_t k; +- uint8_t *buf = NULL; +- struct inotify_event *e; + PathSpec *s; +- bool changed; ++ int changed; + + assert(p); + assert(fd >= 0); +@@ -541,13 +612,8 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { + + /* log_debug("inotify wakeup on %s.", u->meta.id); */ + +- if (events != EPOLLIN) { +- log_error("Got Invalid poll event on inotify."); +- goto fail; +- } +- + LIST_FOREACH(spec, s, p->specs) +- if (s->inotify_fd == fd) ++ if (pathspec_owns_inotify_fd(s, fd)) + break; + + if (!s) { +@@ -555,55 +621,23 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { + goto fail; + } + +- if (ioctl(fd, FIONREAD, &l) < 0) { +- log_error("FIONREAD failed: %m"); +- goto fail; +- } +- +- assert(l > 0); +- +- if (!(buf = malloc(l))) { +- log_error("Failed to allocate buffer: %s", strerror(ENOMEM)); +- goto fail; +- } +- +- if ((k = read(fd, buf, l)) < 0) { +- log_error("Failed to read inotify event: %m"); ++ changed = pathspec_fd_event(s, events); ++ if (changed < 0) + goto fail; +- } + + /* If we are already running, then remember that one event was + * dispatched so that we restart the service only if something + * actually changed on disk */ + p->inotify_triggered = true; + +- e = (struct inotify_event*) buf; +- +- changed = false; +- while (k > 0) { +- size_t step; +- +- if (s->type == PATH_CHANGED && s->primary_wd == e->wd) +- changed = true; +- +- step = sizeof(struct inotify_event) + e->len; +- assert(step <= (size_t) k); +- +- e = (struct inotify_event*) ((uint8_t*) e + step); +- k -= step; +- } +- + if (changed) + path_enter_running(p); + else + path_enter_waiting(p, false, true); + +- free(buf); +- + return; + + fail: +- free(buf); + path_enter_dead(p, false); + } + +diff --git a/src/path.h b/src/path.h +index 116fc63..4e6ccf5 100644 +--- a/src/path.h ++++ b/src/path.h +@@ -60,6 +60,14 @@ typedef struct PathSpec { + + } PathSpec; + ++int pathspec_watch(PathSpec *s, Unit *u); ++void pathspec_unwatch(PathSpec *s, Unit *u); ++int pathspec_fd_event(PathSpec *s, uint32_t events); ++void pathspec_done(PathSpec *s); ++static inline bool pathspec_owns_inotify_fd(PathSpec *s, int fd) { ++ return s->inotify_fd == fd; ++} ++ + struct Path { + Meta meta; + +-- +1.7.7 + + +From e92238567b9fc83ef77e359588d7b005ecae3d70 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 3 Dec 2011 10:22:26 +0100 +Subject: [PATCH 4/5] path: add PathModified (= PathChanged + IN_MODIFY) + +--- + man/systemd.path.xml | 17 ++++++++++------- + src/path.c | 2 ++ + src/path.h | 1 + + 3 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/man/systemd.path.xml b/man/systemd.path.xml +index 10d8f73..5b1ff75 100644 +--- a/man/systemd.path.xml ++++ b/man/systemd.path.xml +@@ -113,6 +113,7 @@ + PathExists= + PathExistsGlob= + PathChanged= ++ PathModified= + DirectoryNotEmpty= + + Defines paths to +@@ -129,8 +130,14 @@ + specified. PathChanged= + may be used to watch a file or + directory and activate the configured +- unit whenever it changes or is +- modified. DirectoryNotEmpty= ++ unit whenever it changes. It is not activated ++ on every write to the watched file but it is ++ activated if the file which was open for writing ++ gets closed. PathModified= ++ is similar, but additionally it is activated ++ also on simple writes to the watched file. ++ ++ DirectoryNotEmpty= + may be used to watch a directory and + activate the configured unit whenever + it contains at least one file. +@@ -154,11 +161,7 @@ + activated, then the configured unit is + immediately activated as + well. Something similar does not apply +- to +- PathChanged=. The +- latter is not activated on simple +- writes but only if files with were +- opened for writing are closed. ++ to PathChanged=. + + + +diff --git a/src/path.c b/src/path.c +index db6f873..1e5d825 100644 +--- a/src/path.c ++++ b/src/path.c +@@ -44,6 +44,7 @@ int pathspec_watch(PathSpec *s, Unit *u) { + [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, + [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, + [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, ++ [PATH_MODIFIED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO|IN_MODIFY, + [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO + }; + +@@ -713,6 +714,7 @@ static const char* const path_type_table[_PATH_TYPE_MAX] = { + [PATH_EXISTS] = "PathExists", + [PATH_EXISTS_GLOB] = "PathExistsGlob", + [PATH_CHANGED] = "PathChanged", ++ [PATH_MODIFIED] = "PathModified", + [PATH_DIRECTORY_NOT_EMPTY] = "DirectoryNotEmpty" + }; + +diff --git a/src/path.h b/src/path.h +index 4e6ccf5..1d78fe4 100644 +--- a/src/path.h ++++ b/src/path.h +@@ -41,6 +41,7 @@ typedef enum PathType { + PATH_EXISTS_GLOB, + PATH_DIRECTORY_NOT_EMPTY, + PATH_CHANGED, ++ PATH_MODIFIED, + _PATH_TYPE_MAX, + _PATH_TYPE_INVALID = -1 + } PathType; +-- +1.7.7 + + +From 3a11183858af30bc9b4e9dac430dd7541deec19b Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 3 Dec 2011 02:13:30 +0100 +Subject: [PATCH 5/5] service: handle services with racy daemonization + gracefully + +There are a lot of forking daemons that do not exactly follow the +initialization steps as described in daemon(7). It is common that they +do not bother waiting in the parent process for the child to write the +PID file before exiting. The daemons' developers often do not perceive +this as a bug and they're unwilling to change. + +Currently systemd warns about the missing PID file and falls back to +guessing the main PID. Being not quite deterministic, the guess can be +wrong with bad consequences. If the guessing is disabled, determinism is +achieved at the cost of losing the ability of noticing when the main +process of the service dies. + +As long as it does not negatively affect properly written services, +systemd should strive for compatibility even with services with racy +daemonization. It is possible to provide determinism _and_ main process +supervision to them. + +If the PID file is not there, rather than guessing and considering the +service running immediately after getting the SIGCHLD from the ExecStart +(or ExecStartPost) process, we can keep the service in the activating +state for a bit longer. We can use inotify to wait for the PID file to +appear. Only when it finally does appear and we read a valid PID from +it, we'll move the service to the running state. If the PID file never +appears, the usual timeout kicks in and the service fails. +--- + src/service.c | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++------- + src/service.h | 3 + + 2 files changed, 157 insertions(+), 21 deletions(-) + +diff --git a/src/service.c b/src/service.c +index 6fc2484..07137d2 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -1302,8 +1302,8 @@ static int service_load_pid_file(Service *s, bool may_warn) { + + if ((r = read_one_line_file(s->pid_file, &k)) < 0) { + if (may_warn) +- log_warning("Failed to read PID file %s after %s. The service might be broken.", +- s->pid_file, service_state_to_string(s->state)); ++ log_info("PID file %s not readable (yet?) after %s.", ++ s->pid_file, service_state_to_string(s->state)); + return r; + } + +@@ -1315,8 +1315,8 @@ static int service_load_pid_file(Service *s, bool may_warn) { + + if (kill(pid, 0) < 0 && errno != EPERM) { + if (may_warn) +- log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.", +- (unsigned long) pid, s->pid_file); ++ log_info("PID %lu read from file %s does not exist.", ++ (unsigned long) pid, s->pid_file); + return -ESRCH; + } + +@@ -1328,7 +1328,8 @@ static int service_load_pid_file(Service *s, bool may_warn) { + (unsigned long) s->main_pid, (unsigned long) pid); + service_unwatch_main_pid(s); + s->main_pid_known = false; +- } ++ } else ++ log_debug("Main PID loaded: %lu", (unsigned long) pid); + + if ((r = service_set_main_pid(s, pid)) < 0) + return r; +@@ -1359,6 +1360,7 @@ static int service_search_main_pid(Service *s) { + if ((pid = cgroup_bonding_search_main_pid_list(s->meta.cgroup_bondings)) <= 0) + return -ENOENT; + ++ log_debug("Main PID guessed: %lu", (unsigned long) pid); + if ((r = service_set_main_pid(s, pid)) < 0) + return r; + +@@ -1451,6 +1453,17 @@ static int service_notify_sockets_dead(Service *s) { + return 0; + } + ++static void service_unwatch_pid_file(Service *s) { ++ if (!s->pid_file_pathspec) ++ return; ++ ++ log_debug("Stopping watch for %s's PID file %s", s->meta.id, s->pid_file_pathspec->path); ++ pathspec_unwatch(s->pid_file_pathspec, UNIT(s)); ++ pathspec_done(s->pid_file_pathspec); ++ free(s->pid_file_pathspec); ++ s->pid_file_pathspec = NULL; ++} ++ + static void service_set_state(Service *s, ServiceState state) { + ServiceState old_state; + assert(s); +@@ -1458,6 +1471,8 @@ static void service_set_state(Service *s, ServiceState state) { + old_state = s->state; + s->state = state; + ++ service_unwatch_pid_file(s); ++ + if (state != SERVICE_START_PRE && + state != SERVICE_START && + state != SERVICE_START_POST && +@@ -2602,6 +2617,95 @@ static bool service_check_snapshot(Unit *u) { + return !s->got_socket_fd; + } + ++static int service_retry_pid_file(Service *s) { ++ int r; ++ ++ assert(s->pid_file); ++ assert(s->state == SERVICE_START || s->state == SERVICE_START_POST); ++ ++ r = service_load_pid_file(s, false); ++ if (r < 0) ++ return r; ++ ++ service_unwatch_pid_file(s); ++ ++ service_enter_running(s, true); ++ return 0; ++} ++ ++static int service_watch_pid_file(Service *s) { ++ int r; ++ ++ log_debug("Setting watch for %s's PID file %s", s->meta.id, s->pid_file_pathspec->path); ++ r = pathspec_watch(s->pid_file_pathspec, UNIT(s)); ++ if (r < 0) ++ goto fail; ++ ++ /* the pidfile might have appeared just before we set the watch */ ++ service_retry_pid_file(s); ++ ++ return 0; ++fail: ++ log_error("Failed to set a watch for %s's PID file %s: %s", ++ s->meta.id, s->pid_file_pathspec->path, strerror(-r)); ++ service_unwatch_pid_file(s); ++ return r; ++} ++ ++static int service_demand_pid_file(Service *s) { ++ PathSpec *ps; ++ ++ assert(s->pid_file); ++ assert(!s->pid_file_pathspec); ++ ++ ps = new0(PathSpec, 1); ++ if (!ps) ++ return -ENOMEM; ++ ++ ps->path = strdup(s->pid_file); ++ if (!ps->path) { ++ free(ps); ++ return -ENOMEM; ++ } ++ ++ path_kill_slashes(ps->path); ++ ++ /* PATH_CHANGED would not be enough. There are daemons (sendmail) that ++ * keep their PID file open all the time. */ ++ ps->type = PATH_MODIFIED; ++ ps->inotify_fd = -1; ++ ++ s->pid_file_pathspec = ps; ++ ++ return service_watch_pid_file(s); ++} ++ ++static void service_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { ++ Service *s = SERVICE(u); ++ ++ assert(s); ++ assert(fd >= 0); ++ assert(s->state == SERVICE_START || s->state == SERVICE_START_POST); ++ assert(s->pid_file_pathspec); ++ assert(pathspec_owns_inotify_fd(s->pid_file_pathspec, fd)); ++ ++ log_debug("inotify event for %s", u->meta.id); ++ ++ if (pathspec_fd_event(s->pid_file_pathspec, events) < 0) ++ goto fail; ++ ++ if (service_retry_pid_file(s) == 0) ++ return; ++ ++ if (service_watch_pid_file(s) < 0) ++ goto fail; ++ ++ return; ++fail: ++ service_unwatch_pid_file(s); ++ service_enter_signal(s, SERVICE_STOP_SIGTERM, false); ++} ++ + static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { + Service *s = SERVICE(u); + bool success; +@@ -2707,7 +2811,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { + success = true; + } + +- log_full(success ? LOG_DEBUG : LOG_NOTICE, ++ log_full(success ? LOG_DEBUG : LOG_NOTICE, + "%s: control process exited, code=%s status=%i", u->meta.id, sigchld_code_to_string(code), status); + s->failure = s->failure || !success; + +@@ -2742,27 +2846,41 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { + case SERVICE_START: + assert(s->type == SERVICE_FORKING); + +- /* Let's try to load the pid +- * file here if we can. We +- * ignore the return value, +- * since the PID file might +- * actually be created by a +- * START_POST script */ +- +- if (success) { +- service_load_pid_file(s, !s->exec_command[SERVICE_EXEC_START_POST]); +- service_search_main_pid(s); ++ if (!success) { ++ service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); ++ break; ++ } + +- service_enter_start_post(s); ++ if (s->pid_file) { ++ /* Let's try to load the pid file here if we can. ++ * The PID file might actually be created by a START_POST ++ * script. In that case don't worry if the loading fails. */ ++ bool has_start_post = !!s->exec_command[SERVICE_EXEC_START_POST]; ++ int r = service_load_pid_file(s, !has_start_post); ++ if (!has_start_post && r < 0) { ++ r = service_demand_pid_file(s); ++ if (r < 0 || !cgroup_good(s)) ++ service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); ++ break; ++ } + } else +- service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); ++ service_search_main_pid(s); + ++ service_enter_start_post(s); + break; + + case SERVICE_START_POST: + if (success) { +- service_load_pid_file(s, true); +- service_search_main_pid(s); ++ if (s->pid_file) { ++ int r = service_load_pid_file(s, true); ++ if (r < 0) { ++ r = service_demand_pid_file(s); ++ if (r < 0 || !cgroup_good(s)) ++ service_enter_stop(s, false); ++ break; ++ } ++ } else ++ service_search_main_pid(s); + } + + s->reload_failure = !success; +@@ -2907,6 +3025,20 @@ static void service_cgroup_notify_event(Unit *u) { + * except when we don't know pid which to expect the + * SIGCHLD for. */ + ++ case SERVICE_START: ++ case SERVICE_START_POST: ++ /* If we were hoping for the daemon to write its PID file, ++ * we can give up now. */ ++ if (s->pid_file_pathspec) { ++ log_warning("%s never wrote its PID file. Failing.", s->meta.id); ++ service_unwatch_pid_file(s); ++ if (s->state == SERVICE_START) ++ service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); ++ else ++ service_enter_stop(s, false); ++ } ++ break; ++ + case SERVICE_RUNNING: + service_enter_running(s, true); + break; +@@ -3216,7 +3348,7 @@ static int service_enumerate(Manager *m) { + r = 0; + + #ifdef TARGET_SUSE +- sysv_facility_in_insserv_conf (m); ++ sysv_facility_in_insserv_conf (m); + #endif + + finish: +@@ -3511,6 +3643,7 @@ const UnitVTable service_vtable = { + + .sigchld_event = service_sigchld_event, + .timer_event = service_timer_event, ++ .fd_event = service_fd_event, + + .reset_failed = service_reset_failed, + +diff --git a/src/service.h b/src/service.h +index e28f74b..15d58cc 100644 +--- a/src/service.h ++++ b/src/service.h +@@ -86,6 +86,8 @@ typedef enum NotifyAccess { + _NOTIFY_ACCESS_INVALID = -1 + } NotifyAccess; + ++typedef struct PathSpec PathSpec; ++ + struct Service { + Meta meta; + +@@ -157,6 +159,7 @@ struct Service { + Set *configured_sockets; + + Watch timer_watch; ++ PathSpec *pid_file_pathspec; + + NotifyAccess notify_access; + }; +-- +1.7.7 + +From 714d943f72417f53bcb98ed45d002aa270e793c4 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 8 Dec 2011 12:09:10 +0100 +Subject: [PATCH] path: add missing pieces for PathModified + +PATH_MODIFIED worked internally for PID files detection, but was unusable +in units. +--- + src/load-fragment-gperf.gperf.m4 | 1 + + src/path.c | 6 ++++-- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/load-fragment-gperf.gperf.m4 b/src/load-fragment-gperf.gperf.m4 +index 84ae28c..35ec005 100644 +--- a/src/load-fragment-gperf.gperf.m4 ++++ b/src/load-fragment-gperf.gperf.m4 +@@ -210,6 +210,7 @@ m4_dnl + Path.PathExists, config_parse_path_spec, 0, 0 + Path.PathExistsGlob, config_parse_path_spec, 0, 0 + Path.PathChanged, config_parse_path_spec, 0, 0 ++Path.PathModified, config_parse_path_spec, 0, 0 + Path.DirectoryNotEmpty, config_parse_path_spec, 0, 0 + Path.Unit, config_parse_path_unit, 0, 0 + Path.MakeDirectory, config_parse_bool, 0, offsetof(Path, make_directory) +diff --git a/src/path.c b/src/path.c +index 1e5d825..3fee247 100644 +--- a/src/path.c ++++ b/src/path.c +@@ -149,7 +149,8 @@ int pathspec_fd_event(PathSpec *s, uint32_t events) { + while (k > 0) { + size_t step; + +- if (s->type == PATH_CHANGED && s->primary_wd == e->wd) ++ if ((s->type == PATH_CHANGED || s->type == PATH_MODIFIED) && ++ s->primary_wd == e->wd) + r = 1; + + step = sizeof(struct inotify_event) + e->len; +@@ -184,7 +185,8 @@ static bool pathspec_check_good(PathSpec *s, bool initial) { + break; + } + +- case PATH_CHANGED: { ++ case PATH_CHANGED: ++ case PATH_MODIFIED: { + bool b; + + b = access(s->path, F_OK) >= 0; +-- +1.7.7 + diff --git a/lock-opensuse.patch b/lock-opensuse.patch new file mode 100644 index 00000000..0fa59df5 --- /dev/null +++ b/lock-opensuse.patch @@ -0,0 +1,16 @@ +Index: systemd-37/tmpfiles.d/legacy.conf +=================================================================== +--- systemd-37.orig/tmpfiles.d/legacy.conf ++++ systemd-37/tmpfiles.d/legacy.conf +@@ -17,6 +17,8 @@ + # On modern systems a BSD file lock is a better choice if + # serialization is needed on those devices. + +-d /run/lock 0755 root root - +-d /run/lock/subsys 0755 root root - +-d /run/lock/lockdev 0775 root lock - ++# changed for openSUSE : only /run/lock should be available ++ ++d /run/lock 0775 root lock - ++#d /run/lock/subsys 0755 root root - ++#d /run/lock/lockdev 0775 root lock - diff --git a/log_on_close.patch b/log_on_close.patch new file mode 100644 index 00000000..eee0eda3 --- /dev/null +++ b/log_on_close.patch @@ -0,0 +1,586 @@ +From 4d8a7798e7f12c6400495cbc4d0ad57ed20ce90a Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 16 Nov 2011 23:45:01 +0100 +Subject: [PATCH 1/3] execute: avoid logging to closed fds + +Several functions called from the "sd(EXEC)" process try to log messages +when all the file descriptors are already closed, including the logging +ones. The logging functions do not expect their fds to be closed and +they hit an assertion failure. The failure wants to be logged too, +so there is an infinite recursion, ended by a SIGSEGV. + +When we close all fds, we must let log.c know about it. +--- + src/execute.c | 1 + + src/log.c | 4 ++++ + src/log.h | 1 + + 3 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/src/execute.c b/src/execute.c +index 250d53a..0651014 100644 +--- a/src/execute.c ++++ b/src/execute.c +@@ -1016,6 +1016,7 @@ int exec_spawn(ExecCommand *command, + /* Close sockets very early to make sure we don't + * block init reexecution because it cannot bind its + * sockets */ ++ log_forget_fds(); + if (close_all_fds(socket_fd >= 0 ? &socket_fd : fds, + socket_fd >= 0 ? 1 : n_fds) < 0) { + r = EXIT_FDS; +diff --git a/src/log.c b/src/log.c +index b8ce122..5c5b734 100644 +--- a/src/log.c ++++ b/src/log.c +@@ -237,6 +237,10 @@ void log_close(void) { + log_close_syslog(); + } + ++void log_forget_fds(void) { ++ console_fd = kmsg_fd = syslog_fd = -1; ++} ++ + void log_set_max_level(int level) { + assert((level & LOG_PRIMASK) == level); + +diff --git a/src/log.h b/src/log.h +index c402afb..9942e3e 100644 +--- a/src/log.h ++++ b/src/log.h +@@ -57,6 +57,7 @@ int log_get_max_level(void); + + int log_open(void); + void log_close(void); ++void log_forget_fds(void); + + void log_close_syslog(void); + void log_close_kmsg(void); +-- +1.7.7 + + +From 9ba353983adc026b75a503c1381f6e5c8062f3e0 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 17 Nov 2011 00:16:22 +0100 +Subject: [PATCH 2/3] execute: make setup_pam() return -errno when possible + +The only caller currently checks if the result is non-zero, +so nothing changes there. +--- + src/execute.c | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/src/execute.c b/src/execute.c +index 0651014..2039861 100644 +--- a/src/execute.c ++++ b/src/execute.c +@@ -716,6 +716,7 @@ static int setup_pam( + pam_handle_t *handle = NULL; + sigset_t ss, old_ss; + int pam_code = PAM_SUCCESS; ++ int err; + char **e = NULL; + bool close_session = false; + pid_t pam_pid = 0, parent_pid; +@@ -835,6 +836,11 @@ static int setup_pam( + return 0; + + fail: ++ if (pam_code != PAM_SUCCESS) ++ err = -EPERM; /* PAM errors do not map to errno */ ++ else ++ err = -errno; ++ + if (handle) { + if (close_session) + pam_code = pam_close_session(handle, PAM_DATA_SILENT); +@@ -851,7 +857,7 @@ fail: + kill(pam_pid, SIGCONT); + } + +- return EXIT_PAM; ++ return err; + } + #endif + +-- +1.7.7 + + +From 4c2630ebf23b6348174f0bdf1110e90efe45259c Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 17 Nov 2011 00:21:16 +0100 +Subject: [PATCH 3/3] execute: log errors from "sd(EXEC)" + +To give the administrator more hints about failures occuring in spawning +of commands than just the exit code, log the strerror. +All fds are closed, so reopen the log. + +Related-to: https://bugzilla.redhat.com/show_bug.cgi?id=752901 +--- + src/execute.c | 138 +++++++++++++++++++++++++++++++++++++++-------------- + src/exit-status.c | 3 + + src/exit-status.h | 3 +- + 3 files changed, 107 insertions(+), 37 deletions(-) + +diff --git a/src/execute.c b/src/execute.c +index 2039861..481725d 100644 +--- a/src/execute.c ++++ b/src/execute.c +@@ -989,7 +989,7 @@ int exec_spawn(ExecCommand *command, + } + + if (pid == 0) { +- int i; ++ int i, err; + sigset_t ss; + const char *username = NULL, *home = NULL; + uid_t uid = (uid_t) -1; +@@ -1015,6 +1015,7 @@ int exec_spawn(ExecCommand *command, + + if (sigemptyset(&ss) < 0 || + sigprocmask(SIG_SETMASK, &ss, NULL) < 0) { ++ err = -errno; + r = EXIT_SIGNAL_MASK; + goto fail_child; + } +@@ -1023,14 +1024,16 @@ int exec_spawn(ExecCommand *command, + * block init reexecution because it cannot bind its + * sockets */ + log_forget_fds(); +- if (close_all_fds(socket_fd >= 0 ? &socket_fd : fds, +- socket_fd >= 0 ? 1 : n_fds) < 0) { ++ err = close_all_fds(socket_fd >= 0 ? &socket_fd : fds, ++ socket_fd >= 0 ? 1 : n_fds); ++ if (err < 0) { + r = EXIT_FDS; + goto fail_child; + } + + if (!context->same_pgrp) + if (setsid() < 0) { ++ err = -errno; + r = EXIT_SETSID; + goto fail_child; + } +@@ -1038,12 +1041,14 @@ int exec_spawn(ExecCommand *command, + if (context->tcpwrap_name) { + if (socket_fd >= 0) + if (!socket_tcpwrap(socket_fd, context->tcpwrap_name)) { ++ err = -EACCES; + r = EXIT_TCPWRAP; + goto fail_child; + } + + for (i = 0; i < (int) n_fds; i++) { + if (!socket_tcpwrap(fds[i], context->tcpwrap_name)) { ++ err = -EACCES; + r = EXIT_TCPWRAP; + goto fail_child; + } +@@ -1059,11 +1064,14 @@ int exec_spawn(ExecCommand *command, + + /* Set up terminal for the question */ + if ((r = setup_confirm_stdio(context, +- &saved_stdin, &saved_stdout))) ++ &saved_stdin, &saved_stdout))) { ++ err = -errno; + goto fail_child; ++ } + + /* Now ask the question. */ + if (!(line = exec_command_line(argv))) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } +@@ -1072,18 +1080,21 @@ int exec_spawn(ExecCommand *command, + free(line); + + if (r < 0 || response == 'n') { ++ err = -ECANCELED; + r = EXIT_CONFIRM; + goto fail_child; + } else if (response == 's') { +- r = 0; ++ err = r = 0; + goto fail_child; + } + + /* Release terminal for the question */ + if ((r = restore_confirm_stdio(context, + &saved_stdin, &saved_stdout, +- &keep_stdin, &keep_stdout))) ++ &keep_stdin, &keep_stdout))) { ++ err = -errno; + goto fail_child; ++ } + } + + /* If a socket is connected to STDIN/STDOUT/STDERR, we +@@ -1091,28 +1102,35 @@ int exec_spawn(ExecCommand *command, + if (socket_fd >= 0) + fd_nonblock(socket_fd, false); + +- if (!keep_stdin) +- if (setup_input(context, socket_fd, apply_tty_stdin) < 0) { ++ if (!keep_stdin) { ++ err = setup_input(context, socket_fd, apply_tty_stdin); ++ if (err < 0) { + r = EXIT_STDIN; + goto fail_child; + } ++ } + +- if (!keep_stdout) +- if (setup_output(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin) < 0) { ++ if (!keep_stdout) { ++ err = setup_output(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin); ++ if (err < 0) { + r = EXIT_STDOUT; + goto fail_child; + } ++ } + +- if (setup_error(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin) < 0) { ++ err = setup_error(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin); ++ if (err < 0) { + r = EXIT_STDERR; + goto fail_child; + } + +- if (cgroup_bondings) +- if (cgroup_bonding_install_list(cgroup_bondings, 0) < 0) { ++ if (cgroup_bondings) { ++ err = cgroup_bonding_install_list(cgroup_bondings, 0); ++ if (err < 0) { + r = EXIT_CGROUP; + goto fail_child; + } ++ } + + if (context->oom_score_adjust_set) { + char t[16]; +@@ -1133,6 +1151,7 @@ int exec_spawn(ExecCommand *command, + + if (write_one_line_file("/proc/self/oom_adj", t) < 0 + && errno != EACCES) { ++ err = -errno; + r = EXIT_OOM_ADJUST; + goto fail_child; + } +@@ -1141,6 +1160,7 @@ int exec_spawn(ExecCommand *command, + + if (context->nice_set) + if (setpriority(PRIO_PROCESS, 0, context->nice) < 0) { ++ err = -errno; + r = EXIT_NICE; + goto fail_child; + } +@@ -1153,6 +1173,7 @@ int exec_spawn(ExecCommand *command, + + if (sched_setscheduler(0, context->cpu_sched_policy | + (context->cpu_sched_reset_on_fork ? SCHED_RESET_ON_FORK : 0), ¶m) < 0) { ++ err = -errno; + r = EXIT_SETSCHEDULER; + goto fail_child; + } +@@ -1160,18 +1181,21 @@ int exec_spawn(ExecCommand *command, + + if (context->cpuset) + if (sched_setaffinity(0, CPU_ALLOC_SIZE(context->cpuset_ncpus), context->cpuset) < 0) { ++ err = -errno; + r = EXIT_CPUAFFINITY; + goto fail_child; + } + + if (context->ioprio_set) + if (ioprio_set(IOPRIO_WHO_PROCESS, 0, context->ioprio) < 0) { ++ err = -errno; + r = EXIT_IOPRIO; + goto fail_child; + } + + if (context->timer_slack_nsec_set) + if (prctl(PR_SET_TIMERSLACK, context->timer_slack_nsec) < 0) { ++ err = -errno; + r = EXIT_TIMERSLACK; + goto fail_child; + } +@@ -1181,36 +1205,45 @@ int exec_spawn(ExecCommand *command, + + if (context->user) { + username = context->user; +- if (get_user_creds(&username, &uid, &gid, &home) < 0) { ++ err = get_user_creds(&username, &uid, &gid, &home); ++ if (err < 0) { + r = EXIT_USER; + goto fail_child; + } + +- if (is_terminal_input(context->std_input)) +- if (chown_terminal(STDIN_FILENO, uid) < 0) { ++ if (is_terminal_input(context->std_input)) { ++ err = chown_terminal(STDIN_FILENO, uid); ++ if (err < 0) { + r = EXIT_STDIN; + goto fail_child; + } ++ } + +- if (cgroup_bondings && context->control_group_modify) +- if (cgroup_bonding_set_group_access_list(cgroup_bondings, 0755, uid, gid) < 0 || +- cgroup_bonding_set_task_access_list(cgroup_bondings, 0644, uid, gid) < 0) { ++ if (cgroup_bondings && context->control_group_modify) { ++ err = cgroup_bonding_set_group_access_list(cgroup_bondings, 0755, uid, gid); ++ if (err >= 0) ++ err = cgroup_bonding_set_task_access_list(cgroup_bondings, 0644, uid, gid); ++ if (err < 0) { + r = EXIT_CGROUP; + goto fail_child; + } ++ } + } + +- if (apply_permissions) +- if (enforce_groups(context, username, gid) < 0) { ++ if (apply_permissions) { ++ err = enforce_groups(context, username, gid); ++ if (err < 0) { + r = EXIT_GROUP; + goto fail_child; + } ++ } + + umask(context->umask); + + #ifdef HAVE_PAM + if (context->pam_name && username) { +- if (setup_pam(context->pam_name, username, context->tty_path, &pam_env, fds, n_fds) != 0) { ++ err = setup_pam(context->pam_name, username, context->tty_path, &pam_env, fds, n_fds); ++ if (err < 0) { + r = EXIT_PAM; + goto fail_child; + } +@@ -1218,6 +1251,7 @@ int exec_spawn(ExecCommand *command, + #endif + if (context->private_network) { + if (unshare(CLONE_NEWNET) < 0) { ++ err = -errno; + r = EXIT_NETWORK; + goto fail_child; + } +@@ -1229,23 +1263,28 @@ int exec_spawn(ExecCommand *command, + strv_length(context->read_only_dirs) > 0 || + strv_length(context->inaccessible_dirs) > 0 || + context->mount_flags != MS_SHARED || +- context->private_tmp) +- if ((r = setup_namespace( +- context->read_write_dirs, +- context->read_only_dirs, +- context->inaccessible_dirs, +- context->private_tmp, +- context->mount_flags)) < 0) ++ context->private_tmp) { ++ err = setup_namespace(context->read_write_dirs, ++ context->read_only_dirs, ++ context->inaccessible_dirs, ++ context->private_tmp, ++ context->mount_flags); ++ if (err < 0) { ++ r = EXIT_NAMESPACE; + goto fail_child; ++ } ++ } + + if (apply_chroot) { + if (context->root_directory) + if (chroot(context->root_directory) < 0) { ++ err = -errno; + r = EXIT_CHROOT; + goto fail_child; + } + + if (chdir(context->working_directory ? context->working_directory : "/") < 0) { ++ err = -errno; + r = EXIT_CHDIR; + goto fail_child; + } +@@ -1256,11 +1295,13 @@ int exec_spawn(ExecCommand *command, + if (asprintf(&d, "%s/%s", + context->root_directory ? context->root_directory : "", + context->working_directory ? context->working_directory : "") < 0) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } + + if (chdir(d) < 0) { ++ err = -errno; + free(d); + r = EXIT_CHDIR; + goto fail_child; +@@ -1271,9 +1312,12 @@ int exec_spawn(ExecCommand *command, + + /* We repeat the fd closing here, to make sure that + * nothing is leaked from the PAM modules */ +- if (close_all_fds(fds, n_fds) < 0 || +- shift_fds(fds, n_fds) < 0 || +- flags_fds(fds, n_fds, context->non_blocking) < 0) { ++ err = close_all_fds(fds, n_fds); ++ if (err >= 0) ++ err = shift_fds(fds, n_fds); ++ if (err >= 0) ++ err = flags_fds(fds, n_fds, context->non_blocking); ++ if (err < 0) { + r = EXIT_FDS; + goto fail_child; + } +@@ -1285,22 +1329,27 @@ int exec_spawn(ExecCommand *command, + continue; + + if (setrlimit(i, context->rlimit[i]) < 0) { ++ err = -errno; + r = EXIT_LIMITS; + goto fail_child; + } + } + +- if (context->capability_bounding_set_drop) +- if (do_capability_bounding_set_drop(context->capability_bounding_set_drop) < 0) { ++ if (context->capability_bounding_set_drop) { ++ err = do_capability_bounding_set_drop(context->capability_bounding_set_drop); ++ if (err < 0) { + r = EXIT_CAPABILITIES; + goto fail_child; + } ++ } + +- if (context->user) +- if (enforce_user(context, uid) < 0) { ++ if (context->user) { ++ err = enforce_user(context, uid); ++ if (err < 0) { + r = EXIT_USER; + goto fail_child; + } ++ } + + /* PR_GET_SECUREBITS is not privileged, while + * PR_SET_SECUREBITS is. So to suppress +@@ -1308,18 +1357,21 @@ int exec_spawn(ExecCommand *command, + * PR_SET_SECUREBITS unless necessary. */ + if (prctl(PR_GET_SECUREBITS) != context->secure_bits) + if (prctl(PR_SET_SECUREBITS, context->secure_bits) < 0) { ++ err = -errno; + r = EXIT_SECUREBITS; + goto fail_child; + } + + if (context->capabilities) + if (cap_set_proc(context->capabilities) < 0) { ++ err = -errno; + r = EXIT_CAPABILITIES; + goto fail_child; + } + } + + if (!(our_env = new0(char*, 7))) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } +@@ -1327,12 +1379,14 @@ int exec_spawn(ExecCommand *command, + if (n_fds > 0) + if (asprintf(our_env + n_env++, "LISTEN_PID=%lu", (unsigned long) getpid()) < 0 || + asprintf(our_env + n_env++, "LISTEN_FDS=%u", n_fds) < 0) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } + + if (home) + if (asprintf(our_env + n_env++, "HOME=%s", home) < 0) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } +@@ -1340,6 +1394,7 @@ int exec_spawn(ExecCommand *command, + if (username) + if (asprintf(our_env + n_env++, "LOGNAME=%s", username) < 0 || + asprintf(our_env + n_env++, "USER=%s", username) < 0) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } +@@ -1348,6 +1403,7 @@ int exec_spawn(ExecCommand *command, + context->std_output == EXEC_OUTPUT_TTY || + context->std_error == EXEC_OUTPUT_TTY) + if (!(our_env[n_env++] = strdup(default_term_for_tty(tty_path(context))))) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } +@@ -1362,11 +1418,13 @@ int exec_spawn(ExecCommand *command, + files_env, + pam_env, + NULL))) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } + + if (!(final_argv = replace_env_argv(argv, final_env))) { ++ err = -ENOMEM; + r = EXIT_MEMORY; + goto fail_child; + } +@@ -1374,9 +1432,17 @@ int exec_spawn(ExecCommand *command, + final_env = strv_env_clean(final_env); + + execve(command->path, final_argv, final_env); ++ err = -errno; + r = EXIT_EXEC; + + fail_child: ++ if (r != 0) { ++ log_open(); ++ log_warning("Failed at step %s spawning %s: %s", ++ exit_status_to_string(r, EXIT_STATUS_SYSTEMD), ++ command->path, strerror(-err)); ++ } ++ + strv_free(our_env); + strv_free(final_env); + strv_free(pam_env); +diff --git a/src/exit-status.c b/src/exit-status.c +index 8ed1a0e..ab8907d 100644 +--- a/src/exit-status.c ++++ b/src/exit-status.c +@@ -119,6 +119,9 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) { + + case EXIT_NETWORK: + return "NETWORK"; ++ ++ case EXIT_NAMESPACE: ++ return "NAMESPACE"; + } + } + +diff --git a/src/exit-status.h b/src/exit-status.h +index 3e977b1..44ef879 100644 +--- a/src/exit-status.h ++++ b/src/exit-status.h +@@ -65,7 +65,8 @@ typedef enum ExitStatus { + EXIT_STDERR, + EXIT_TCPWRAP, + EXIT_PAM, +- EXIT_NETWORK ++ EXIT_NETWORK, ++ EXIT_NAMESPACE + + } ExitStatus; + +-- +1.7.7 + diff --git a/modules_on_boot.patch b/modules_on_boot.patch index 929a2caa..5158a716 100644 --- a/modules_on_boot.patch +++ b/modules_on_boot.patch @@ -7,10 +7,10 @@ Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) -diff --git a/src/modules-load.c b/src/modules-load.c -index 8dd98f7..73ef5f5 100644 ---- a/src/modules-load.c -+++ b/src/modules-load.c +Index: systemd-37/src/modules-load.c +=================================================================== +--- systemd-37.orig/src/modules-load.c ++++ systemd-37/src/modules-load.c @@ -36,6 +36,9 @@ int main(int argc, char *argv[]) { char **arguments = NULL; unsigned n_arguments = 0, n_allocated = 0; @@ -74,6 +74,15 @@ index 8dd98f7..73ef5f5 100644 return r; } --- -1.7.3.4 - +Index: systemd-37/units/systemd-modules-load.service.in +=================================================================== +--- systemd-37.orig/units/systemd-modules-load.service.in ++++ systemd-37/units/systemd-modules-load.service.in +@@ -11,6 +11,7 @@ DefaultDependencies=no + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service + Before=sysinit.target shutdown.target ++ConditionPathExists=|/etc/sysconfig/kernel + ConditionDirectoryNotEmpty=|/lib/modules-load.d + ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d + ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d diff --git a/mount-swap-log.patch b/mount-swap-log.patch new file mode 100644 index 00000000..9117adfe --- /dev/null +++ b/mount-swap-log.patch @@ -0,0 +1,54 @@ +From f6cebb3bd5a00d79c8131637c0f6796a75e6af99 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 19 Nov 2011 02:47:09 +0100 +Subject: [PATCH] let mount and swap units log to the configured defaults + +Related-to: https://bugzilla.redhat.com/show_bug.cgi?id=750032 +--- + src/mount.c | 6 ++++-- + src/swap.c | 5 +++-- + 2 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/src/mount.c b/src/mount.c +index f9cfe91..47422cc 100644 +--- a/src/mount.c ++++ b/src/mount.c +@@ -68,8 +68,10 @@ static void mount_init(Unit *u) { + + /* The stdio/kmsg bridge socket is on /, in order to avoid a + * dep loop, don't use kmsg logging for -.mount */ +- if (!unit_has_name(u, "-.mount")) +- m->exec_context.std_output = EXEC_OUTPUT_KMSG; ++ if (!unit_has_name(u, "-.mount")) { ++ m->exec_context.std_output = u->meta.manager->default_std_output; ++ m->exec_context.std_error = u->meta.manager->default_std_error; ++ } + + /* We need to make sure that /bin/mount is always called in + * the same process group as us, so that the autofs kernel +diff --git a/src/swap.c b/src/swap.c +index 54a8640..4fa30a3 100644 +--- a/src/swap.c ++++ b/src/swap.c +@@ -74,7 +74,7 @@ static void swap_unset_proc_swaps(Swap *s) { + s->parameters_proc_swaps.what = NULL; + } + +- static void swap_init(Unit *u) { ++static void swap_init(Unit *u) { + Swap *s = SWAP(u); + + assert(s); +@@ -83,7 +83,8 @@ static void swap_unset_proc_swaps(Swap *s) { + s->timeout_usec = DEFAULT_TIMEOUT_USEC; + + exec_context_init(&s->exec_context); +- s->exec_context.std_output = EXEC_OUTPUT_KMSG; ++ s->exec_context.std_output = u->meta.manager->default_std_output; ++ s->exec_context.std_error = u->meta.manager->default_std_error; + + s->parameters_etc_fstab.priority = s->parameters_proc_swaps.priority = s->parameters_fragment.priority = -1; + +-- +1.7.7 + diff --git a/new-lsb-headers.patch b/new-lsb-headers.patch new file mode 100644 index 00000000..7565c00f --- /dev/null +++ b/new-lsb-headers.patch @@ -0,0 +1,65 @@ +Index: systemd-37/src/service.c +=================================================================== +--- systemd-37.orig/src/service.c ++++ systemd-37/src/service.c +@@ -116,6 +116,7 @@ static void service_init(Unit *u) { + #ifdef HAVE_SYSV_COMPAT + s->sysv_start_priority = -1; + s->sysv_start_priority_from_rcnd = -1; ++ s->sysv_remain_after_exit_heuristic = true; + #endif + s->socket_fd = -1; + s->guess_main_pid = true; +@@ -805,6 +806,31 @@ static int service_load_sysv_path(Servic + + } else + state = LSB; ++ } else if (startswith_no_case(t, "PIDFile:")) { ++ char *fn; ++ ++ state = LSB; ++ ++ fn = strstrip(t+8); ++ if (!path_is_absolute(fn)) { ++ log_warning("[%s:%u] PID file not absolute. Ignoring.", path, line); ++ continue; ++ } ++ ++ if (!(fn = strdup(fn))) { ++ r = -ENOMEM; ++ goto finish; ++ } ++ ++ free(s->pid_file); ++ s->pid_file = fn; ++ s->sysv_remain_after_exit_heuristic = false; ++ } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) { ++ char *j; ++ ++ state = LSB; ++ if ((j = strstrip(t+26)) && *j) ++ s->sysv_remain_after_exit_heuristic = !parse_boolean(j); + } + } + } +@@ -2017,7 +2043,7 @@ static void service_enter_running(Servic + if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && + (s->bus_name_good || s->type != SERVICE_DBUS)) { + #ifdef HAVE_SYSV_COMPAT +- if (s->sysv_enabled && !s->pid_file) ++ if (s->sysv_enabled && !s->pid_file && s->sysv_remain_after_exit_heuristic) + s->remain_after_exit = false; + #endif + service_set_state(s, SERVICE_RUNNING); +Index: systemd-37/src/service.h +=================================================================== +--- systemd-37.orig/src/service.h ++++ systemd-37/src/service.h +@@ -139,6 +139,7 @@ struct Service { + #ifdef HAVE_SYSV_COMPAT + bool sysv_has_lsb:1; + bool sysv_enabled:1; ++ bool sysv_remain_after_exit_heuristic:1; + int sysv_start_priority_from_rcnd; + int sysv_start_priority; + diff --git a/private_tmp_crash.patch b/private_tmp_crash.patch deleted file mode 100644 index c7bb783b..00000000 --- a/private_tmp_crash.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: systemd-37/src/namespace.c -=================================================================== ---- systemd-37.orig/src/namespace.c -+++ systemd-37/src/namespace.c -@@ -157,7 +157,6 @@ static int apply_mount(Path *p, const ch - } - - if ((r = mount(what, where, NULL, MS_BIND|MS_REC, NULL)) >= 0) { -- log_debug("Successfully mounted %s to %s", what, where); - - /* The bind mount will always inherit the original - * flags. If we want to set any flag we need diff --git a/storage-after-cryptsetup.patch b/storage-after-cryptsetup.patch new file mode 100644 index 00000000..a317015e --- /dev/null +++ b/storage-after-cryptsetup.patch @@ -0,0 +1,132 @@ +From b9841589cf16950af7d123ecd128b84464d15a1d Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Mon, 7 Nov 2011 18:04:20 +0100 +Subject: [PATCH] force lvm restart after cryptsetup target is reached + +--- + src/cryptsetup-generator.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 80 insertions(+), 0 deletions(-) + +diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c +index a48b7a4..14fcce8 100644 +--- a/src/cryptsetup-generator.c ++++ b/src/cryptsetup-generator.c +@@ -22,12 +22,14 @@ + #include + #include + #include ++#include + + #include "log.h" + #include "util.h" + #include "unit-name.h" + + const char *arg_dest = "/tmp"; ++bool random_seed = false; + + static bool has_option(const char *haystack, const char *needle) { + const char *f = haystack; +@@ -58,6 +60,78 @@ static bool has_option(const char *haystack, const char *needle) { + return false; + } + ++static int create_storage_after_cryptsetup (void) { ++ int r; ++ char *to = NULL, *p = NULL; ++ FILE *f = NULL; ++ ++ if (asprintf(&p, "%s/storage-after-cryptsetup.service", arg_dest) < 0) { ++ r = -ENOMEM; ++ log_error("Failed to allocate unit file name."); ++ goto fail; ++ } ++ ++ if (!(f = fopen(p, "wxe"))) { ++ r = -errno; ++ log_error("Failed to create unit file: %m"); ++ goto fail; ++ } ++ ++ fprintf(f, ++ "[Unit]\n" ++ "Description=Restart storage after cryptsetup\n" ++ "DefaultDependencies=no\n" ++ "After=cryptsetup.target\n" ++ "Wants=cryptsetup.target\n" ++ "Before=shutdown.target\n"); ++ if (!random_seed) { ++ fprintf(f, "After=local-fs.target\n"); ++ } ++ ++ fprintf(f, ++ "\n[Service]\n" ++ "RemainAfterExit=true\n" ++ "Type=oneshot\n" ++ "TimeoutSec=0\n" ++ "ExecStart=/bin/systemctl restart lvm.service\n"); ++ ++ fflush(f); ++ ++ if (ferror(f)) { ++ r = -errno; ++ log_error("Failed to write file: %m"); ++ goto fail; ++ } ++ ++ if (asprintf(&to, "%s/local-fs.target.wants/storage-after-cryptsetup.service", arg_dest) < 0) { ++ r = -ENOMEM; ++ goto fail; ++ } ++ ++ mkdir_parents(to, 0755); ++ ++ if (symlink("../storage-after-cryptsetup.service", to) < 0) { ++ log_error("Failed to create symlink ../storage-after-cryptsetup.service to '%s': %m", to); ++ r = -errno; ++ goto fail; ++ } ++ ++ free(to); ++ to = NULL; ++ ++ r = 0; ++ system ("TMPDIR=/run /usr/bin/sed -e 's/\\(After=.*\\) local-fs.target\\(.*\\)/\\1\\2/g' /lib/systemd/system/systemd-random-seed-load.service > /etc/systemd/system/systemd-random-seed-load.service "); ++fail: ++ ++ free(p); ++ free(to); ++ ++ if (f) ++ fclose(f); ++ ++ return r; ++} ++ + static int create_disk( + const char *name, + const char *device, +@@ -122,8 +196,11 @@ static int create_disk( + if (password && (streq(password, "/dev/urandom") || + streq(password, "/dev/random") || + streq(password, "/dev/hw_random"))) ++ { + fprintf(f, + "After=systemd-random-seed-load.service\n"); ++ random_seed = true; ++ } + else + fprintf(f, + "Before=local-fs.target\n"); +@@ -293,6 +370,9 @@ int main(int argc, char *argv[]) { + free(options); + } + ++ if (create_storage_after_cryptsetup () < 0) ++ r = EXIT_FAILURE; ++ + finish: + return r; + } +-- +1.7.7 + diff --git a/storage-after-cryptsetup.service b/storage-after-cryptsetup.service deleted file mode 100644 index d47acc63..00000000 --- a/storage-after-cryptsetup.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Restart storage after crypsetup -DefaultDependencies=no -Before=local-fs.target shutdown.target -After=cryptsetup.target -Wants=cryptsetup.target - -[Service] -RemainAfterExit=true -Type=oneshot -TimeoutSec=0 -ExecStart=/bin/systemctl restart lvm.service diff --git a/systemd-gtk.changes b/systemd-gtk.changes index b6076ad4..6127a51d 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,41 @@ +------------------------------------------------------------------- +Wed Dec 7 15:15:07 UTC 2011 - fcrozat@suse.com + +- Remove storage-after-cryptsetup.service, add + storage-after-cryptsetup.patch instead to prevent dependency + cycle (bnc#722539). +- Add delay-fsck-cryptsetup-after-md-lvm-dmraid.patch: ensure + fsck/cryptsetup is run after lvm/md/dmraid have landed + (bnc#724912). +- Add cron-tty-pam.patch: Fix cron filling logs (bnc#731358). +- Add do_not_warn_pidfile.patch: Fix PID warning in logs + (bnc#732912). +- Add mount-swap-log.patch: Ensure swap and mount output is + redirected to default log target (rhb#750032). +- Add color-on-boot.patch: ensure colored status are displayed at + boot time. +- Update modules_on_boot.patch to fix bnc#732041. +- Replace private_tmp_crash.patch with log_on_close.patch, better + upstream fix for bnc#699829 and fix bnc#731719. +- Update vconsole patch to fix memleaks and crash (bnc#734527). +- Add handle-racy-daemon.patch: fix warnings with sendmail + (bnc#732912). +- Add new-lsb-headers.patch: support PIDFile: and + X-Systemd-RemainAfterExit: header in initscript (bnc#727771). +- Update bootsplash services to not start if vga= is missing from + cmdline (bnc#727771) +- Add lock-opensuse.patch: disable /var/lock/{subsys,lockdev} and + change default permissions on /var/lock (bnc#733523). +- Add garbage_collect_units: ensure error units are correctly + garbage collected (rhb#680122). +- Add crypt-loop-file.patch: add support for crypt file loop + (bnc#730496). + +------------------------------------------------------------------- +Sat Nov 19 15:40:38 UTC 2011 - coolo@suse.com + +- add libtool as buildrequire to avoid implicit dependency + ------------------------------------------------------------------- Fri Nov 4 14:44:18 UTC 2011 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 1c0e06d5..7db95558 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -31,6 +31,7 @@ BuildRequires: audit-devel BuildRequires: gperf BuildRequires: libcap-devel BuildRequires: libacl-devel +BuildRequires: libtool BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel diff --git a/systemd.changes b/systemd.changes index cf784743..6127a51d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,36 @@ +------------------------------------------------------------------- +Wed Dec 7 15:15:07 UTC 2011 - fcrozat@suse.com + +- Remove storage-after-cryptsetup.service, add + storage-after-cryptsetup.patch instead to prevent dependency + cycle (bnc#722539). +- Add delay-fsck-cryptsetup-after-md-lvm-dmraid.patch: ensure + fsck/cryptsetup is run after lvm/md/dmraid have landed + (bnc#724912). +- Add cron-tty-pam.patch: Fix cron filling logs (bnc#731358). +- Add do_not_warn_pidfile.patch: Fix PID warning in logs + (bnc#732912). +- Add mount-swap-log.patch: Ensure swap and mount output is + redirected to default log target (rhb#750032). +- Add color-on-boot.patch: ensure colored status are displayed at + boot time. +- Update modules_on_boot.patch to fix bnc#732041. +- Replace private_tmp_crash.patch with log_on_close.patch, better + upstream fix for bnc#699829 and fix bnc#731719. +- Update vconsole patch to fix memleaks and crash (bnc#734527). +- Add handle-racy-daemon.patch: fix warnings with sendmail + (bnc#732912). +- Add new-lsb-headers.patch: support PIDFile: and + X-Systemd-RemainAfterExit: header in initscript (bnc#727771). +- Update bootsplash services to not start if vga= is missing from + cmdline (bnc#727771) +- Add lock-opensuse.patch: disable /var/lock/{subsys,lockdev} and + change default permissions on /var/lock (bnc#733523). +- Add garbage_collect_units: ensure error units are correctly + garbage collected (rhb#680122). +- Add crypt-loop-file.patch: add support for crypt file loop + (bnc#730496). + ------------------------------------------------------------------- Sat Nov 19 15:40:38 UTC 2011 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index 94c5cb89..733be9ee 100644 --- a/systemd.spec +++ b/systemd.spec @@ -62,7 +62,6 @@ Source7: systemd-bootsplash Source8: bootsplash-startup.service Source9: bootsplash-quit.service Source10: bootsplash-shutdown.service -Source11: storage-after-cryptsetup.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -72,9 +71,13 @@ Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch Patch15: support-sysvinit.patch Patch16: modules_on_boot.patch -Patch17: private_tmp_crash.patch Patch18: systemctl-completion-fix.patch Patch19: avoid-random-seed-cycle.patch +Patch22: new-lsb-headers.patch +Patch23: storage-after-cryptsetup.patch +Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch +Patch31: lock-opensuse.patch +Patch33: crypt-loop-file.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -82,6 +85,13 @@ Patch19: avoid-random-seed-cycle.patch # an exception will be silently removed with the next version update. Patch20: crash-isolating.patch Patch21: no-tmpfs-fsck.patch +Patch25: cron-tty-pam.patch +Patch26: do_not_warn_pidfile.patch +Patch27: mount-swap-log.patch +Patch28: color-on-boot.patch +Patch29: log_on_close.patch +Patch30: handle-racy-daemon.patch +Patch32: garbage_collect_units.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -132,11 +142,22 @@ Plymouth integration for systemd %patch13 -p1 %patch15 -p1 %patch16 -p1 -%patch17 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 +%patch33 -p1 %build autoreconf -fiv @@ -168,12 +189,11 @@ install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future #install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators install -m755 %{S:7} %{buildroot}/lib/systemd/ -install -m644 %{S:8} %{S:9} %{S:10} %{S:11} %{buildroot}/lib/systemd/system/ +install -m644 %{S:8} %{S:9} %{S:10} %{buildroot}/lib/systemd/system/ ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target.wants/ ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/ -ln -s ../storage-after-cryptsetup.service %{buildroot}/lib/systemd/system/local-fs.target.wants/ ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt From 85f340d6afb636fe2e5b02a52456f231dc3768a29cb00ebc497bade6a24ef683 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 26 Jan 2012 15:00:42 +0000 Subject: [PATCH 083/221] Accepting request 101505 from Base:System - Update to version 39: + New systemd-cgtop tool to show control groups by their resource usage. + Linking against libacl for ACLs is optional again. + If a group "adm" exists, journal files are automatically owned by them, thus allow members of this group full access to the system journal as well as all user journals. + The journal now stores the SELinux context of the logging client for all entries. + Add C++ inclusion guards to all public headers. + New output mode "cat" in the journal to print only text messages, without any meta data like date or time. + Include tiny X server wrapper as a temporary stop-gap to teach XOrg udev display enumeration (until XOrg supports udev hotplugging for display devices). + Add new systemd-cat tool for executing arbitrary programs with STDERR/STDOUT connected to the journal. Can also act as BSD logger replacement, and does so by default. + Optionally store all locally generated coredumps in the journal along with meta data. + systemd-tmpfiles learnt four new commands: n, L, c, b, for writing short strings to files (for usage for /sys), and for creating symlinks, character and block device nodes. + New unit file option ControlGroupPersistent= to make cgroups persistent. + Support multiple local RTCs in a sane way. + No longer monopolize IO when replaying readahead data on rotating disks. + Don't show kernel threads in systemd-cgls anymore, unless requested with new -k switch. (forwarded request 101496 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/101505 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=85 --- ...aplock-and-compose_table-and-kbd_rat.patch | 27 +- ...ndencies-added-when-parsing-insserv..patch | 18 +- avoid-random-seed-cycle.patch | 133 +- color-on-boot.patch | 131 -- crash-isolating.patch | 117 -- cron-tty-pam.patch | 81 -- crypt-loop-file.patch | 6 +- ...-fsck-cryptsetup-after-md-lvm-dmraid.patch | 21 +- do_not_warn_pidfile.patch | 60 - garbage_collect_units.patch | 29 - handle-racy-daemon.patch | 1066 ----------------- listen.conf | 1 + log_on_close.patch | 586 --------- mount-swap-log.patch | 54 - no-tmpfs-fsck.patch | 15 +- storage-after-cryptsetup.patch | 47 +- sysctl-modules.patch | 12 + systemctl-completion-fix.patch | 77 -- systemd-37.tar.bz2 | 3 - systemd-39.tar.xz | 3 + systemd-gtk.changes | 71 ++ systemd-gtk.spec | 50 +- systemd.changes | 71 ++ systemd.spec | 96 +- 24 files changed, 395 insertions(+), 2380 deletions(-) delete mode 100644 color-on-boot.patch delete mode 100644 crash-isolating.patch delete mode 100644 cron-tty-pam.patch delete mode 100644 do_not_warn_pidfile.patch delete mode 100644 garbage_collect_units.patch delete mode 100644 handle-racy-daemon.patch create mode 100644 listen.conf delete mode 100644 log_on_close.patch delete mode 100644 mount-swap-log.patch create mode 100644 sysctl-modules.patch delete mode 100644 systemctl-completion-fix.patch delete mode 100644 systemd-37.tar.bz2 create mode 100644 systemd-39.tar.xz diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch index 9d981f20..af4e4fb0 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -1,4 +1,4 @@ -From 5c894bc1e45f7c34bf7fc4ca0d20bf1c3b679bef Mon Sep 17 00:00:00 2001 +m 5c894bc1e45f7c34bf7fc4ca0d20bf1c3b679bef Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Thu, 18 Aug 2011 18:28:01 +0200 Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate @@ -9,8 +9,8 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate Index: systemd-37/src/vconsole-setup.c =================================================================== ---- systemd-37.orig/src/vconsole-setup.c -+++ systemd-37/src/vconsole-setup.c +--- systemd-37.orig/src/vconsole/vconsole-setup.c ++++ systemd-37/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "log.h" #include "macro.h" @@ -19,7 +19,7 @@ Index: systemd-37/src/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -79,8 +80,8 @@ static int disable_utf8(int fd) { +@@ -79,8 +80,8 @@ return r; } @@ -30,7 +30,7 @@ Index: systemd-37/src/vconsole-setup.c int i = 0; pid_t pid; -@@ -99,6 +100,8 @@ static int load_keymap(const char *vc, c +@@ -99,6 +100,8 @@ args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,7 +39,7 @@ Index: systemd-37/src/vconsole-setup.c args[i++] = NULL; if ((pid = fork()) < 0) { -@@ -150,6 +153,101 @@ static int load_font(const char *vc, con +@@ -150,6 +153,101 @@ return 0; } @@ -141,8 +141,8 @@ Index: systemd-37/src/vconsole-setup.c int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -163,8 +261,16 @@ int main(int argc, char **argv) { - #ifdef TARGET_MANDRIVA +@@ -163,8 +261,16 @@ + #if defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) char *vc_keytable = NULL; #endif +#ifdef TARGET_SUSE @@ -158,7 +158,7 @@ Index: systemd-37/src/vconsole-setup.c int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -265,6 +371,10 @@ int main(int argc, char **argv) { +@@ -265,6 +371,10 @@ #elif defined(TARGET_SUSE) if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, "KEYTABLE", &vc_keymap, @@ -169,7 +169,7 @@ Index: systemd-37/src/vconsole-setup.c NULL)) < 0) { if (r != -ENOENT) -@@ -280,6 +390,7 @@ int main(int argc, char **argv) { +@@ -280,6 +390,7 @@ if (r != -ENOENT) log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); } @@ -177,7 +177,7 @@ Index: systemd-37/src/vconsole-setup.c #elif defined(TARGET_ARCH) if ((r = parse_env_file("/etc/rc.conf", NEWLINE, -@@ -436,7 +547,11 @@ int main(int argc, char **argv) { +@@ -436,7 +547,11 @@ if (!utf8) disable_utf8(fd); @@ -190,7 +190,7 @@ Index: systemd-37/src/vconsole-setup.c load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -444,6 +559,14 @@ finish: +@@ -444,6 +559,14 @@ if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -205,7 +205,7 @@ Index: systemd-37/src/vconsole-setup.c if (font_pid > 0) wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -@@ -451,6 +574,12 @@ finish: +@@ -451,6 +574,12 @@ free(vc_font); free(vc_font_map); free(vc_font_unimap); @@ -218,3 +218,4 @@ Index: systemd-37/src/vconsole-setup.c if (fd >= 0) close_nointr_nofail(fd); +Only in new/src/vconsole: vconsole-setup.c.orig diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch index 28910fc4..fd4b2219 100644 --- a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch +++ b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -7,11 +7,15 @@ Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf src/service.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) -diff --git a/src/service.c b/src/service.c -index c2053ce..4abc7e7 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -3031,18 +3031,20 @@ static void sysv_facility_in_insserv_conf(Manager *mgr) { +Index: systemd-39/src/service.c +=================================================================== +--- systemd-39.orig/src/service.c ++++ systemd-39/src/service.c +@@ -3111,22 +3111,22 @@ static void sysv_facility_in_insserv_con + if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) + continue; + if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) { +- UnitDependency e; char *dep = NULL, *name, **j; STRV_FOREACH (j, parsed+1) { @@ -28,7 +32,6 @@ index c2053ce..4abc7e7 100644 + if (streq(name, "boot.localfs") || + streq(name, "boot.crypto")) + continue; -+ if (sysv_translate_facility(name, NULL, &dep) < 0) continue; @@ -39,6 +42,3 @@ index c2053ce..4abc7e7 100644 free(dep); } } --- -1.7.3.4 - diff --git a/avoid-random-seed-cycle.patch b/avoid-random-seed-cycle.patch index 1490674c..daada87f 100644 --- a/avoid-random-seed-cycle.patch +++ b/avoid-random-seed-cycle.patch @@ -1,40 +1,109 @@ -Devices with random keys (swap), should not be ordered before local-fs.target, -as this creates a cycle with systemd-load-random-seed.service (and also it -does not make sense, a swap device is not a local-fs). +Rather than ordering systemd-random-seed-load.service after local-fs.target, +start it by path-activation. + +We need write access to the seed, so we order the path unit after +remount-rootfs.service (in case /var is on the root fs). + +A better solution might be to introduce PathIsWritable=, but that is not +necessary in order to solve the problem, and I don't know of any other +usecases for it. + +Cc: Frederic Crozat +Cc: Michal Schmidt --- - src/cryptsetup-generator.c | 6 ++++-- - 1 files changed, 4 insertions(+), 2 deletions(-) -diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c -index 6f3aa78..a48b7a4 100644 ---- a/src/cryptsetup-generator.c -+++ b/src/cryptsetup-generator.c -@@ -112,8 +112,7 @@ static int create_disk( - "DefaultDependencies=no\n" - "BindTo=%s dev-mapper-%%i.device\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" -- "Before=umount.target\n" -- "Before=local-fs.target\n", -+ "Before=umount.target\n", - d, d); +This is my second attempt at solving this problem. The first one had +some issues as pointed out by Frederic and Michael. + + Makefile.am | 7 +++++-- + TODO | 2 -- + units/.gitignore | 1 + + units/systemd-random-seed-load.path.in | 18 ++++++++++++++++++ + units/systemd-random-seed-load.service.in | 3 +-- + 5 files changed, 25 insertions(+), 6 deletions(-) + create mode 100644 units/systemd-random-seed-load.path.in + +diff -urB systemd-38/Makefile.am new/Makefile.am +--- systemd-38/Makefile.am 2012-01-11 04:01:36.734404653 +0100 ++++ new/Makefile.am 2012-01-18 09:53:12.763115731 +0100 +@@ -1530,11 +1530,14 @@ - if (!nofail) -@@ -125,6 +124,9 @@ static int create_disk( - streq(password, "/dev/hw_random"))) - fprintf(f, - "After=systemd-random-seed-load.service\n"); -+ else -+ fprintf(f, -+ "Before=local-fs.target\n"); + nodist_systemunit_DATA += \ + units/systemd-random-seed-save.service \ +- units/systemd-random-seed-load.service ++ units/systemd-random-seed-load.service \ ++ units/systemd-random-seed-load.path ++ - fprintf(f, - "\n[Service]\n" + EXTRA_DIST += \ + units/systemd-random-seed-save.service.in \ +- units/systemd-random-seed-load.service.in ++ units/systemd-random-seed-load.service.in \ ++ units/systemd-random-seed-load.path.in + + systemd_random_seed_SOURCES = \ + src/random-seed.c +@@ -1550,8 +1553,8 @@ + rm -f systemd-random-seed-save.service && \ + $(LN_S) ../systemd-random-seed-save.service systemd-random-seed-save.service ) + ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ +- rm -f systemd-random-seed-load.service && \ +- $(LN_S) ../systemd-random-seed-load.service systemd-random-seed-load.service ) ++ rm -f systemd-random-seed-load.path && \ ++ $(LN_S) ../systemd-random-seed-load.path systemd-random-seed-load.path ) + + INSTALL_DATA_HOOKS += \ + randomseed-install-data-hook +@@ -2052,6 +2055,7 @@ + -e 's,@exec_prefix\@,$(exec_prefix),g' \ + -e 's,@libdir\@,$(libdir),g' \ + -e 's,@includedir\@,$(includedir),g' \ ++ -e 's,@localstatedir\@,$(localstatedir),g' \ + < $< > $@ || rm $@ + + units/%: units/%.in Makefile +diff --git a/units/systemd-random-seed-load.path.in b/units/systemd-random-seed-load.path.in +new file mode 100644 +index 0000000..614c1d4 +--- /dev/null ++++ b/units/systemd-random-seed-load.path.in +@@ -0,0 +1,18 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++[Unit] ++Description=Random Seed ++DefaultDependencies=no ++Conflicts=shutdown.target ++Before=basic.target shutdown.target ++# in case the seed is on the rootfs, we must ++# wait for the rootfs to be remonuted rw ++After=remount-rootfs.service ++ ++[Path] ++PathExists=@localstatedir@/lib/random-seed +diff --git a/units/systemd-random-seed-load.service.in b/units/systemd-random-seed-load.service.in +index a2b6a55..2bcf1aa 100644 +--- a/units/systemd-random-seed-load.service.in ++++ b/units/systemd-random-seed-load.service.in +@@ -8,9 +8,8 @@ + [Unit] + Description=Load Random Seed + DefaultDependencies=no +-Wants=local-fs.target + Conflicts=shutdown.target +-After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target ++After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-random-seed-load.path + Before=sysinit.target shutdown.target + + [Service] -- -1.7.7 +1.7.8 + -_______________________________________________ -systemd-devel mailing list -systemd-devel@lists.freedesktop.org -http://lists.freedesktop.org/mailman/listinfo/systemd-devel diff --git a/color-on-boot.patch b/color-on-boot.patch deleted file mode 100644 index 8be6e081..00000000 --- a/color-on-boot.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 5831e9b726ab6e76b28a94861a014d3bc2aa3015 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 10 Nov 2011 12:53:39 +0100 -Subject: [PATCH] job: colored status messages on boot - -The lack or green/red status marks on boot has been described by some -users as "critical", "dramatic", "dealbreaker", "showstopper". Seriously. ---- - src/job.c | 13 +++++++------ - src/unit.c | 24 ++++++++++++++++++++---- - src/unit.h | 2 +- - 3 files changed, 28 insertions(+), 11 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 20971da..1520d81 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -484,19 +484,20 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { - switch (result) { - - case JOB_DONE: -- unit_status_printf(u, "Started %s.\n", unit_description(u)); -+ unit_status_printf(u, ANSI_HIGHLIGHT_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, "Started %s", unit_description(u)); - break; - - case JOB_FAILED: -- unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ", see 'systemctl status %s' for details.\n", unit_description(u), u->meta.id); -+ unit_status_printf(u, ANSI_HIGHLIGHT_ON "FAILED" ANSI_HIGHLIGHT_OFF, "Failed to start %s", unit_description(u)); -+ unit_status_printf(u, NULL, "See 'systemctl status %s' for details.", u->meta.id); - break; - - case JOB_DEPENDENCY: -- unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "aborted" ANSI_HIGHLIGHT_OFF " because a dependency failed.\n", unit_description(u)); -+ unit_status_printf(u, ANSI_HIGHLIGHT_ON " ABORT" ANSI_HIGHLIGHT_OFF, "Dependency failed. Aborted start of %s", unit_description(u)); - break; - - case JOB_TIMEOUT: -- unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); -+ unit_status_printf(u, ANSI_HIGHLIGHT_ON " TIME " ANSI_HIGHLIGHT_OFF, "Timed out starting %s", unit_description(u)); - break; - - default: -@@ -508,12 +509,12 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { - switch (result) { - - case JOB_TIMEOUT: -- unit_status_printf(u, "Stopping %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); -+ unit_status_printf(u, ANSI_HIGHLIGHT_ON " TIME " ANSI_HIGHLIGHT_OFF, "Timed out stopping %s", unit_description(u)); - break; - - case JOB_DONE: - case JOB_FAILED: -- unit_status_printf(u, "Stopped %s.\n", unit_description(u)); -+ unit_status_printf(u, ANSI_HIGHLIGHT_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, "Stopped %s", unit_description(u)); - break; - - default: -diff --git a/src/unit.c b/src/unit.c -index 903a8e4..ad4063b 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -924,7 +924,7 @@ int unit_start(Unit *u) { - - unit_add_to_dbus_queue(u); - -- unit_status_printf(u, "Starting %s...\n", unit_description(u)); -+ unit_status_printf(u, NULL, "Starting %s...", unit_description(u)); - return UNIT_VTABLE(u)->start(u); - } - -@@ -966,7 +966,7 @@ int unit_stop(Unit *u) { - - unit_add_to_dbus_queue(u); - -- unit_status_printf(u, "Stopping %s...\n", unit_description(u)); -+ unit_status_printf(u, NULL, "Stopping %s...", unit_description(u)); - return UNIT_VTABLE(u)->stop(u); - } - -@@ -2426,8 +2426,11 @@ int unit_coldplug(Unit *u) { - return 0; - } - --void unit_status_printf(Unit *u, const char *format, ...) { -+void unit_status_printf(Unit *u, const char *status, const char *format, ...) { - va_list ap; -+ char *s, *e; -+ int err; -+ const unsigned emax = status ? 80 - (sizeof("[ OK ]")-1) : 80; - - assert(u); - assert(format); -@@ -2442,8 +2445,21 @@ void unit_status_printf(Unit *u, const char *format, ...) { - return; - - va_start(ap, format); -- status_vprintf(format, ap); -+ err = vasprintf(&s, format, ap); - va_end(ap); -+ if (err < 0) -+ return; -+ -+ e = ellipsize(s, emax, 100); -+ free(s); -+ if (!e) -+ return; -+ -+ if (status) -+ status_printf("%s%*s[%s]\n", e, emax - strlen(e), "", status); -+ else -+ status_printf("%s\n", e); -+ free(e); - } - - bool unit_need_daemon_reload(Unit *u) { -diff --git a/src/unit.h b/src/unit.h -index 7da5723..b32c1a7 100644 ---- a/src/unit.h -+++ b/src/unit.h -@@ -512,7 +512,7 @@ int unit_add_node_link(Unit *u, const char *what, bool wants); - - int unit_coldplug(Unit *u); - --void unit_status_printf(Unit *u, const char *format, ...); -+void unit_status_printf(Unit *u, const char *status, const char *format, ...); - - bool unit_need_daemon_reload(Unit *u); - --- -1.7.7 - diff --git a/crash-isolating.patch b/crash-isolating.patch deleted file mode 100644 index fded4f32..00000000 --- a/crash-isolating.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 563ba9ea6e60774086555998b957edf923e24b46 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Mon, 17 Oct 2011 11:12:12 +0200 -Subject: [PATCH] manager: fix a crash in isolating - -HASHMAP_FOREACH is safe against the removal of the current entry, but -not against the removal of other entries. job_finish_and_invalidate() -can recursively remove other entries. - -It triggered an assertion failure: - Assertion 'j->installed' failed at src/manager.c:1218, function - transaction_apply(). Aborting. - -Fix the crash by iterating from the beginning when there is a -possibility that the iterator could be invalid. - -It is O(n^2) in the worst case, but that's better than a crash. - -https://bugzilla.redhat.com/show_bug.cgi?id=717325 ---- - src/job.c | 19 ++++++++++++++----- - src/manager.c | 7 ++++++- - 2 files changed, 20 insertions(+), 6 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 5c0913b..20971da 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -527,6 +527,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - Unit *other; - JobType t; - Iterator i; -+ bool recursed = false; - - assert(j); - assert(j->installed); -@@ -573,23 +574,29 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - if (other->meta.job && - (other->meta.job->type == JOB_START || - other->meta.job->type == JOB_VERIFY_ACTIVE || -- other->meta.job->type == JOB_RELOAD_OR_START)) -+ other->meta.job->type == JOB_RELOAD_OR_START)) { - job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); -+ recursed = true; -+ } - - SET_FOREACH(other, u->meta.dependencies[UNIT_BOUND_BY], i) - if (other->meta.job && - (other->meta.job->type == JOB_START || - other->meta.job->type == JOB_VERIFY_ACTIVE || -- other->meta.job->type == JOB_RELOAD_OR_START)) -+ other->meta.job->type == JOB_RELOAD_OR_START)) { - job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); -+ recursed = true; -+ } - - SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) - if (other->meta.job && - !other->meta.job->override && - (other->meta.job->type == JOB_START || - other->meta.job->type == JOB_VERIFY_ACTIVE || -- other->meta.job->type == JOB_RELOAD_OR_START)) -+ other->meta.job->type == JOB_RELOAD_OR_START)) { - job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); -+ recursed = true; -+ } - - } else if (t == JOB_STOP) { - -@@ -597,8 +604,10 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - if (other->meta.job && - (other->meta.job->type == JOB_START || - other->meta.job->type == JOB_VERIFY_ACTIVE || -- other->meta.job->type == JOB_RELOAD_OR_START)) -+ other->meta.job->type == JOB_RELOAD_OR_START)) { - job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); -+ recursed = true; -+ } - } - } - -@@ -626,7 +635,7 @@ finish: - - manager_check_finished(u->meta.manager); - -- return 0; -+ return recursed; - } - - int job_start_timer(Job *j) { -diff --git a/src/manager.c b/src/manager.c -index e626347..6d20258 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -1214,13 +1214,18 @@ static int transaction_apply(Manager *m, JobMode mode) { - - /* When isolating first kill all installed jobs which - * aren't part of the new transaction */ -+ rescan: - HASHMAP_FOREACH(j, m->jobs, i) { - assert(j->installed); - - if (hashmap_get(m->transaction_jobs, j->unit)) - continue; - -- job_finish_and_invalidate(j, JOB_CANCELED); -+ /* 'j' itself is safe to remove, but if other jobs -+ are invalidated recursively, our iterator may become -+ invalid and we need to start over. */ -+ if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) -+ goto rescan; - } - } - --- -1.7.3.4 - diff --git a/cron-tty-pam.patch b/cron-tty-pam.patch deleted file mode 100644 index ecacaf35..00000000 --- a/cron-tty-pam.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 1dc995370987660ff045ff4d7cf512da0390cf96 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 19 Nov 2011 01:14:11 +0100 -Subject: [PATCH 1/2] pam-module: use the correct session type "unspecified" - -logind does not understand "other". ---- - src/pam-module.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/pam-module.c b/src/pam-module.c -index dd05f93..e650886 100644 ---- a/src/pam-module.c -+++ b/src/pam-module.c -@@ -472,7 +472,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( - get_seat_from_display(display, &seat, &vtnr); - - type = !isempty(display) ? "x11" : -- !isempty(tty) ? "tty" : "other"; -+ !isempty(tty) ? "tty" : "unspecified"; - - remote = !isempty(remote_host) && !streq(remote_host, "localhost") && !streq(remote_host, "localhost.localdomain"); - --- -1.7.7 - - -From 1a4459d63323cdfdb8751077e555ddbbf80564b1 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 19 Nov 2011 01:17:46 +0100 -Subject: [PATCH 2/2] pam-module: treat "cron" in PAM_TTY as empty tty - -cron sets PAM_TTY to "cron" and it has been doing it for a long time. -It cannot be changed because user configurations may depend on it. - -https://bugzilla.redhat.com/show_bug.cgi?id=727315 ---- - src/logind-session.c | 4 ++-- - src/pam-module.c | 4 ++++ - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/logind-session.c b/src/logind-session.c -index b0a09e3..63ee758 100644 ---- a/src/logind-session.c -+++ b/src/logind-session.c -@@ -536,7 +536,7 @@ int session_start(Session *s) { - if (r < 0) - return r; - -- log_full(s->display || s->tty ? LOG_INFO : LOG_DEBUG, -+ log_full(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG, - "New session %s of user %s.", s->id, s->user->name); - - /* Create cgroup */ -@@ -659,7 +659,7 @@ int session_stop(Session *s) { - assert(s); - - if (s->started) -- log_full(s->display || s->tty ? LOG_INFO : LOG_DEBUG, -+ log_full(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG, - "Removed session %s.", s->id); - - /* Kill cgroup */ -diff --git a/src/pam-module.c b/src/pam-module.c -index e650886..46b7bec 100644 ---- a/src/pam-module.c -+++ b/src/pam-module.c -@@ -463,6 +463,10 @@ _public_ PAM_EXTERN int pam_sm_open_session( - if (isempty(display)) - display = tty; - tty = ""; -+ } else if (streq(tty, "cron")) { -+ /* cron has been setting PAM_TTY to "cron" for a very long time -+ * and it cannot stop doing that for compatibility reasons. */ -+ tty = ""; - } - - if (!isempty(cvtnr)) --- -1.7.7 - diff --git a/crypt-loop-file.patch b/crypt-loop-file.patch index 7869601b..317bec7f 100644 --- a/crypt-loop-file.patch +++ b/crypt-loop-file.patch @@ -1,7 +1,7 @@ -Index: systemd-37/src/cryptsetup-generator.c +Index: systemd-37/src/cryptsetup/cryptsetup-generator.c =================================================================== ---- systemd-37.orig/src/cryptsetup-generator.c -+++ systemd-37/src/cryptsetup-generator.c +--- systemd-37.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-37/src/cryptsetup/cryptsetup-generator.c @@ -138,7 +138,7 @@ static int create_disk( const char *password, const char *options) { diff --git a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch index 403c9ed0..52d4c46e 100644 --- a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch +++ b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch @@ -8,11 +8,11 @@ Subject: [PATCH] delay fsck / cryptsetup after md / dmraid / lvm are started units/fsck@.service.in | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) -diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c -index 14fcce8..e62f0e0 100644 ---- a/src/cryptsetup-generator.c -+++ b/src/cryptsetup-generator.c -@@ -186,6 +186,7 @@ static int create_disk( +Index: systemd-37/src/cryptsetup/cryptsetup-generator.c +=================================================================== +--- systemd-37.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-37/src/cryptsetup/cryptsetup-generator.c +@@ -112,6 +112,7 @@ static int create_disk( "DefaultDependencies=no\n" "BindTo=%s dev-mapper-%%i.device\n" "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" @@ -20,10 +20,10 @@ index 14fcce8..e62f0e0 100644 "Before=umount.target\n", d, d); -diff --git a/units/fsck@.service.in b/units/fsck@.service.in -index e1f7736..c1870ce 100644 ---- a/units/fsck@.service.in -+++ b/units/fsck@.service.in +Index: systemd-37/units/fsck@.service.in +=================================================================== +--- systemd-37.orig/units/fsck@.service.in ++++ systemd-37/units/fsck@.service.in @@ -9,7 +9,7 @@ Description=File System Check on %f DefaultDependencies=no @@ -33,6 +33,3 @@ index e1f7736..c1870ce 100644 Before=shutdown.target [Service] --- -1.7.7 - diff --git a/do_not_warn_pidfile.patch b/do_not_warn_pidfile.patch deleted file mode 100644 index 83002c89..00000000 --- a/do_not_warn_pidfile.patch +++ /dev/null @@ -1,60 +0,0 @@ -From c5419d4239ceb4c3bd0263a0a810cf24a072b3c0 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 10 Nov 2011 09:55:47 +0100 -Subject: [PATCH] service: don't warn if the pidfile still exists after - SIGCHLD - -A service that drops its privileges may not be able to remove it when it -exits. The stale pidfile is not a problem as long as the service -carefully recognizes it on its next start. - -systemd would produce a warning after the service exits: - PID ... read from file ... does not exist. Your service or init - script might be broken. - -Silence the warning in this case. Still warn if this error is detected -when loading the pidfile after service start. - -Noticed by Miroslav Lichvar in - https://bugzilla.redhat.com/show_bug.cgi?id=752396 ---- - src/service.c | 9 +++++---- - 1 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/service.c b/src/service.c -index eb475d9..6fc2484 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -1290,7 +1290,7 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { - free(p2); - } - --static int service_load_pid_file(Service *s, bool warn_if_missing) { -+static int service_load_pid_file(Service *s, bool may_warn) { - char *k; - int r; - pid_t pid; -@@ -1301,7 +1301,7 @@ static int service_load_pid_file(Service *s, bool warn_if_missing) { - return -ENOENT; - - if ((r = read_one_line_file(s->pid_file, &k)) < 0) { -- if (warn_if_missing) -+ if (may_warn) - log_warning("Failed to read PID file %s after %s. The service might be broken.", - s->pid_file, service_state_to_string(s->state)); - return r; -@@ -1314,8 +1314,9 @@ static int service_load_pid_file(Service *s, bool warn_if_missing) { - return r; - - if (kill(pid, 0) < 0 && errno != EPERM) { -- log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.", -- (unsigned long) pid, s->pid_file); -+ if (may_warn) -+ log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.", -+ (unsigned long) pid, s->pid_file); - return -ESRCH; - } - --- -1.7.7 - diff --git a/garbage_collect_units.patch b/garbage_collect_units.patch deleted file mode 100644 index 3ea2bd2e..00000000 --- a/garbage_collect_units.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9a46fc3b9014de1bf0ed1f3004a536b08a19ebb3 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 6 Dec 2011 00:47:28 +0100 -Subject: [PATCH] unit: garbage collect units with load error - -Units that failed to load were never cleaned up. It was possible to -reach the 128K limit of units by attempting to load a bunch of nonsense. - -Bug observed by Reartes Guillermo in -https://bugzilla.redhat.com/show_bug.cgi?id=680122 ---- - src/unit.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/src/unit.c b/src/unit.c -index 2a549e2..018e986 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -858,6 +858,7 @@ fail: - u->meta.load_state = UNIT_ERROR; - u->meta.load_error = r; - unit_add_to_dbus_queue(u); -+ unit_add_to_gc_queue(u); - - log_debug("Failed to load configuration for %s: %s", u->meta.id, strerror(-r)); - --- -1.7.7 - diff --git a/handle-racy-daemon.patch b/handle-racy-daemon.patch deleted file mode 100644 index 4a8a07f1..00000000 --- a/handle-racy-daemon.patch +++ /dev/null @@ -1,1066 +0,0 @@ -From 35d50f55f346c71fd5e957d35ebcae1c50b1f9ce Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 3 Dec 2011 00:41:34 +0100 -Subject: [PATCH 1/5] util: fix error checking after fgets() - -fgets() does not set errno on EOF. ---- - src/util.c | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/util.c b/src/util.c -index e93e6f6..da71e4d 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -516,7 +516,7 @@ int get_parent_of_pid(pid_t pid, pid_t *_ppid) { - return -errno; - - if (!(fgets(line, sizeof(line), f))) { -- r = -errno; -+ r = feof(f) ? -EIO : -errno; - fclose(f); - return r; - } -@@ -561,7 +561,7 @@ int get_starttime_of_pid(pid_t pid, unsigned long long *st) { - return -errno; - - if (!(fgets(line, sizeof(line), f))) { -- r = -errno; -+ r = feof(f) ? -EIO : -errno; - fclose(f); - return r; - } -@@ -708,7 +708,7 @@ int read_one_line_file(const char *fn, char **line) { - return -errno; - - if (!(fgets(t, sizeof(t), f))) { -- r = -errno; -+ r = feof(f) ? -EIO : -errno; - goto finish; - } - -@@ -3266,7 +3266,7 @@ int get_ctty_devnr(pid_t pid, dev_t *d) { - return -errno; - - if (!fgets(line, sizeof(line), f)) { -- k = -errno; -+ k = feof(f) ? -EIO : -errno; - fclose(f); - return k; - } --- -1.7.7 - - -From 768147d13d0877a4c3e5f6f986c3064de62ff4f1 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 3 Dec 2011 01:36:05 +0100 -Subject: [PATCH 2/5] path: use %m instead of strerror(errno) - -and strerror(-errno) was just wrong. ---- - src/path.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/path.c b/src/path.c -index f15c921..142fd2d 100644 ---- a/src/path.c -+++ b/src/path.c -@@ -556,7 +556,7 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { - } - - if (ioctl(fd, FIONREAD, &l) < 0) { -- log_error("FIONREAD failed: %s", strerror(errno)); -+ log_error("FIONREAD failed: %m"); - goto fail; - } - -@@ -568,7 +568,7 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { - } - - if ((k = read(fd, buf, l)) < 0) { -- log_error("Failed to read inotify event: %s", strerror(-errno)); -+ log_error("Failed to read inotify event: %m"); - goto fail; - } - --- -1.7.7 - - -From 4b562198c79e4ebfc3d84b69a1dae374bc6cf9f5 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 3 Dec 2011 01:38:30 +0100 -Subject: [PATCH 3/5] path: refactor PathSpec usage - -path_*() functions operate on "Path *p" and they do not touch PathSpec -internals directly. - -pathspec_*() functions operate on "PathSpec *s". The PathSpec class will -be useful outside of path.c. ---- - src/path.c | 356 +++++++++++++++++++++++++++++++++--------------------------- - src/path.h | 8 ++ - 2 files changed, 203 insertions(+), 161 deletions(-) - -diff --git a/src/path.c b/src/path.c -index 142fd2d..db6f873 100644 ---- a/src/path.c -+++ b/src/path.c -@@ -39,26 +39,202 @@ static const UnitActiveState state_translation_table[_PATH_STATE_MAX] = { - [PATH_FAILED] = UNIT_FAILED - }; - --static void path_init(Unit *u) { -- Path *p = PATH(u); -+int pathspec_watch(PathSpec *s, Unit *u) { -+ static const int flags_table[_PATH_TYPE_MAX] = { -+ [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, -+ [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, -+ [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, -+ [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO -+ }; -+ -+ bool exists = false; -+ char *k, *slash; -+ int r; - - assert(u); -- assert(u->meta.load_state == UNIT_STUB); -+ assert(s); - -- p->directory_mode = 0755; -+ pathspec_unwatch(s, u); -+ -+ if (!(k = strdup(s->path))) -+ return -ENOMEM; -+ -+ if ((s->inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC)) < 0) { -+ r = -errno; -+ goto fail; -+ } -+ -+ if (unit_watch_fd(u, s->inotify_fd, EPOLLIN, &s->watch) < 0) { -+ r = -errno; -+ goto fail; -+ } -+ -+ if ((s->primary_wd = inotify_add_watch(s->inotify_fd, k, flags_table[s->type])) >= 0) -+ exists = true; -+ -+ do { -+ int flags; -+ -+ /* This assumes the path was passed through path_kill_slashes()! */ -+ if (!(slash = strrchr(k, '/'))) -+ break; -+ -+ /* Trim the path at the last slash. Keep the slash if it's the root dir. */ -+ slash[slash == k] = 0; -+ -+ flags = IN_MOVE_SELF; -+ if (!exists) -+ flags |= IN_DELETE_SELF | IN_ATTRIB | IN_CREATE | IN_MOVED_TO; -+ -+ if (inotify_add_watch(s->inotify_fd, k, flags) >= 0) -+ exists = true; -+ } while (slash != k); -+ -+ return 0; -+ -+fail: -+ free(k); -+ -+ pathspec_unwatch(s, u); -+ return r; - } - --static void path_unwatch_one(Path *p, PathSpec *s) { -+void pathspec_unwatch(PathSpec *s, Unit *u) { - - if (s->inotify_fd < 0) - return; - -- unit_unwatch_fd(UNIT(p), &s->watch); -+ unit_unwatch_fd(u, &s->watch); - - close_nointr_nofail(s->inotify_fd); - s->inotify_fd = -1; - } - -+int pathspec_fd_event(PathSpec *s, uint32_t events) { -+ uint8_t *buf = NULL; -+ struct inotify_event *e; -+ ssize_t k; -+ int l; -+ int r = 0; -+ -+ if (events != EPOLLIN) { -+ log_error("Got Invalid poll event on inotify."); -+ r = -EINVAL; -+ goto out; -+ } -+ -+ if (ioctl(s->inotify_fd, FIONREAD, &l) < 0) { -+ log_error("FIONREAD failed: %m"); -+ r = -errno; -+ goto out; -+ } -+ -+ assert(l > 0); -+ -+ if (!(buf = malloc(l))) { -+ log_error("Failed to allocate buffer: %m"); -+ r = -errno; -+ goto out; -+ } -+ -+ if ((k = read(s->inotify_fd, buf, l)) < 0) { -+ log_error("Failed to read inotify event: %m"); -+ r = -errno; -+ goto out; -+ } -+ -+ e = (struct inotify_event*) buf; -+ -+ while (k > 0) { -+ size_t step; -+ -+ if (s->type == PATH_CHANGED && s->primary_wd == e->wd) -+ r = 1; -+ -+ step = sizeof(struct inotify_event) + e->len; -+ assert(step <= (size_t) k); -+ -+ e = (struct inotify_event*) ((uint8_t*) e + step); -+ k -= step; -+ } -+out: -+ free(buf); -+ return r; -+} -+ -+static bool pathspec_check_good(PathSpec *s, bool initial) { -+ bool good = false; -+ -+ switch (s->type) { -+ -+ case PATH_EXISTS: -+ good = access(s->path, F_OK) >= 0; -+ break; -+ -+ case PATH_EXISTS_GLOB: -+ good = glob_exists(s->path) > 0; -+ break; -+ -+ case PATH_DIRECTORY_NOT_EMPTY: { -+ int k; -+ -+ k = dir_is_empty(s->path); -+ good = !(k == -ENOENT || k > 0); -+ break; -+ } -+ -+ case PATH_CHANGED: { -+ bool b; -+ -+ b = access(s->path, F_OK) >= 0; -+ good = !initial && b != s->previous_exists; -+ s->previous_exists = b; -+ break; -+ } -+ -+ default: -+ ; -+ } -+ -+ return good; -+} -+ -+static bool pathspec_startswith(PathSpec *s, const char *what) { -+ return path_startswith(s->path, what); -+} -+ -+static void pathspec_mkdir(PathSpec *s, mode_t mode) { -+ int r; -+ -+ if (s->type == PATH_EXISTS || s->type == PATH_EXISTS_GLOB) -+ return; -+ -+ if ((r = mkdir_p(s->path, mode)) < 0) -+ log_warning("mkdir(%s) failed: %s", s->path, strerror(-r)); -+} -+ -+static void pathspec_dump(PathSpec *s, FILE *f, const char *prefix) { -+ fprintf(f, -+ "%s%s: %s\n", -+ prefix, -+ path_type_to_string(s->type), -+ s->path); -+} -+ -+void pathspec_done(PathSpec *s) { -+ assert(s->inotify_fd == -1); -+ free(s->path); -+} -+ -+static void path_init(Unit *u) { -+ Path *p = PATH(u); -+ -+ assert(u); -+ assert(u->meta.load_state == UNIT_STUB); -+ -+ p->directory_mode = 0755; -+} -+ - static void path_done(Unit *u) { - Path *p = PATH(u); - PathSpec *s; -@@ -66,9 +242,9 @@ static void path_done(Unit *u) { - assert(p); - - while ((s = p->specs)) { -- path_unwatch_one(p, s); -+ pathspec_unwatch(s, u); - LIST_REMOVE(PathSpec, spec, p->specs, s); -- free(s->path); -+ pathspec_done(s); - free(s); - } - } -@@ -86,7 +262,7 @@ int path_add_one_mount_link(Path *p, Mount *m) { - - LIST_FOREACH(spec, s, p->specs) { - -- if (!path_startswith(s->path, m->where)) -+ if (!pathspec_startswith(s, m->where)) - continue; - - if ((r = unit_add_two_dependencies(UNIT(p), UNIT_AFTER, UNIT_REQUIRES, UNIT(m), true)) < 0) -@@ -187,71 +363,7 @@ static void path_dump(Unit *u, FILE *f, const char *prefix) { - prefix, p->directory_mode); - - LIST_FOREACH(spec, s, p->specs) -- fprintf(f, -- "%s%s: %s\n", -- prefix, -- path_type_to_string(s->type), -- s->path); --} -- --static int path_watch_one(Path *p, PathSpec *s) { -- static const int flags_table[_PATH_TYPE_MAX] = { -- [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, -- [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, -- [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, -- [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO -- }; -- -- bool exists = false; -- char *k, *slash; -- int r; -- -- assert(p); -- assert(s); -- -- path_unwatch_one(p, s); -- -- if (!(k = strdup(s->path))) -- return -ENOMEM; -- -- if ((s->inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC)) < 0) { -- r = -errno; -- goto fail; -- } -- -- if (unit_watch_fd(UNIT(p), s->inotify_fd, EPOLLIN, &s->watch) < 0) { -- r = -errno; -- goto fail; -- } -- -- if ((s->primary_wd = inotify_add_watch(s->inotify_fd, k, flags_table[s->type])) >= 0) -- exists = true; -- -- do { -- int flags; -- -- /* This assumes the path was passed through path_kill_slashes()! */ -- if (!(slash = strrchr(k, '/'))) -- break; -- -- /* Trim the path at the last slash. Keep the slash if it's the root dir. */ -- slash[slash == k] = 0; -- -- flags = IN_MOVE_SELF; -- if (!exists) -- flags |= IN_DELETE_SELF | IN_ATTRIB | IN_CREATE | IN_MOVED_TO; -- -- if (inotify_add_watch(s->inotify_fd, k, flags) >= 0) -- exists = true; -- } while (slash != k); -- -- return 0; -- --fail: -- free(k); -- -- path_unwatch_one(p, s); -- return r; -+ pathspec_dump(s, f, prefix); - } - - static void path_unwatch(Path *p) { -@@ -260,7 +372,7 @@ static void path_unwatch(Path *p) { - assert(p); - - LIST_FOREACH(spec, s, p->specs) -- path_unwatch_one(p, s); -+ pathspec_unwatch(s, UNIT(p)); - } - - static int path_watch(Path *p) { -@@ -270,7 +382,7 @@ static int path_watch(Path *p) { - assert(p); - - LIST_FOREACH(spec, s, p->specs) -- if ((r = path_watch_one(p, s)) < 0) -+ if ((r = pathspec_watch(s, UNIT(p))) < 0) - return r; - - return 0; -@@ -361,37 +473,7 @@ static bool path_check_good(Path *p, bool initial) { - assert(p); - - LIST_FOREACH(spec, s, p->specs) { -- -- switch (s->type) { -- -- case PATH_EXISTS: -- good = access(s->path, F_OK) >= 0; -- break; -- -- case PATH_EXISTS_GLOB: -- good = glob_exists(s->path) > 0; -- break; -- -- case PATH_DIRECTORY_NOT_EMPTY: { -- int k; -- -- k = dir_is_empty(s->path); -- good = !(k == -ENOENT || k > 0); -- break; -- } -- -- case PATH_CHANGED: { -- bool b; -- -- b = access(s->path, F_OK) >= 0; -- good = !initial && b != s->previous_exists; -- s->previous_exists = b; -- break; -- } -- -- default: -- ; -- } -+ good = pathspec_check_good(s, initial); - - if (good) - break; -@@ -440,15 +522,8 @@ static void path_mkdir(Path *p) { - if (!p->make_directory) - return; - -- LIST_FOREACH(spec, s, p->specs) { -- int r; -- -- if (s->type == PATH_EXISTS || s->type == PATH_EXISTS_GLOB) -- continue; -- -- if ((r = mkdir_p(s->path, p->directory_mode)) < 0) -- log_warning("mkdir(%s) failed: %s", s->path, strerror(-r)); -- } -+ LIST_FOREACH(spec, s, p->specs) -+ pathspec_mkdir(s, p->directory_mode); - } - - static int path_start(Unit *u) { -@@ -525,12 +600,8 @@ static const char *path_sub_state_to_string(Unit *u) { - - static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { - Path *p = PATH(u); -- int l; -- ssize_t k; -- uint8_t *buf = NULL; -- struct inotify_event *e; - PathSpec *s; -- bool changed; -+ int changed; - - assert(p); - assert(fd >= 0); -@@ -541,13 +612,8 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { - - /* log_debug("inotify wakeup on %s.", u->meta.id); */ - -- if (events != EPOLLIN) { -- log_error("Got Invalid poll event on inotify."); -- goto fail; -- } -- - LIST_FOREACH(spec, s, p->specs) -- if (s->inotify_fd == fd) -+ if (pathspec_owns_inotify_fd(s, fd)) - break; - - if (!s) { -@@ -555,55 +621,23 @@ static void path_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { - goto fail; - } - -- if (ioctl(fd, FIONREAD, &l) < 0) { -- log_error("FIONREAD failed: %m"); -- goto fail; -- } -- -- assert(l > 0); -- -- if (!(buf = malloc(l))) { -- log_error("Failed to allocate buffer: %s", strerror(ENOMEM)); -- goto fail; -- } -- -- if ((k = read(fd, buf, l)) < 0) { -- log_error("Failed to read inotify event: %m"); -+ changed = pathspec_fd_event(s, events); -+ if (changed < 0) - goto fail; -- } - - /* If we are already running, then remember that one event was - * dispatched so that we restart the service only if something - * actually changed on disk */ - p->inotify_triggered = true; - -- e = (struct inotify_event*) buf; -- -- changed = false; -- while (k > 0) { -- size_t step; -- -- if (s->type == PATH_CHANGED && s->primary_wd == e->wd) -- changed = true; -- -- step = sizeof(struct inotify_event) + e->len; -- assert(step <= (size_t) k); -- -- e = (struct inotify_event*) ((uint8_t*) e + step); -- k -= step; -- } -- - if (changed) - path_enter_running(p); - else - path_enter_waiting(p, false, true); - -- free(buf); -- - return; - - fail: -- free(buf); - path_enter_dead(p, false); - } - -diff --git a/src/path.h b/src/path.h -index 116fc63..4e6ccf5 100644 ---- a/src/path.h -+++ b/src/path.h -@@ -60,6 +60,14 @@ typedef struct PathSpec { - - } PathSpec; - -+int pathspec_watch(PathSpec *s, Unit *u); -+void pathspec_unwatch(PathSpec *s, Unit *u); -+int pathspec_fd_event(PathSpec *s, uint32_t events); -+void pathspec_done(PathSpec *s); -+static inline bool pathspec_owns_inotify_fd(PathSpec *s, int fd) { -+ return s->inotify_fd == fd; -+} -+ - struct Path { - Meta meta; - --- -1.7.7 - - -From e92238567b9fc83ef77e359588d7b005ecae3d70 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 3 Dec 2011 10:22:26 +0100 -Subject: [PATCH 4/5] path: add PathModified (= PathChanged + IN_MODIFY) - ---- - man/systemd.path.xml | 17 ++++++++++------- - src/path.c | 2 ++ - src/path.h | 1 + - 3 files changed, 13 insertions(+), 7 deletions(-) - -diff --git a/man/systemd.path.xml b/man/systemd.path.xml -index 10d8f73..5b1ff75 100644 ---- a/man/systemd.path.xml -+++ b/man/systemd.path.xml -@@ -113,6 +113,7 @@ - PathExists= - PathExistsGlob= - PathChanged= -+ PathModified= - DirectoryNotEmpty= - - Defines paths to -@@ -129,8 +130,14 @@ - specified. PathChanged= - may be used to watch a file or - directory and activate the configured -- unit whenever it changes or is -- modified. DirectoryNotEmpty= -+ unit whenever it changes. It is not activated -+ on every write to the watched file but it is -+ activated if the file which was open for writing -+ gets closed. PathModified= -+ is similar, but additionally it is activated -+ also on simple writes to the watched file. -+ -+ DirectoryNotEmpty= - may be used to watch a directory and - activate the configured unit whenever - it contains at least one file. -@@ -154,11 +161,7 @@ - activated, then the configured unit is - immediately activated as - well. Something similar does not apply -- to -- PathChanged=. The -- latter is not activated on simple -- writes but only if files with were -- opened for writing are closed. -+ to PathChanged=. - - - -diff --git a/src/path.c b/src/path.c -index db6f873..1e5d825 100644 ---- a/src/path.c -+++ b/src/path.c -@@ -44,6 +44,7 @@ int pathspec_watch(PathSpec *s, Unit *u) { - [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, - [PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, - [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, -+ [PATH_MODIFIED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO|IN_MODIFY, - [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO - }; - -@@ -713,6 +714,7 @@ static const char* const path_type_table[_PATH_TYPE_MAX] = { - [PATH_EXISTS] = "PathExists", - [PATH_EXISTS_GLOB] = "PathExistsGlob", - [PATH_CHANGED] = "PathChanged", -+ [PATH_MODIFIED] = "PathModified", - [PATH_DIRECTORY_NOT_EMPTY] = "DirectoryNotEmpty" - }; - -diff --git a/src/path.h b/src/path.h -index 4e6ccf5..1d78fe4 100644 ---- a/src/path.h -+++ b/src/path.h -@@ -41,6 +41,7 @@ typedef enum PathType { - PATH_EXISTS_GLOB, - PATH_DIRECTORY_NOT_EMPTY, - PATH_CHANGED, -+ PATH_MODIFIED, - _PATH_TYPE_MAX, - _PATH_TYPE_INVALID = -1 - } PathType; --- -1.7.7 - - -From 3a11183858af30bc9b4e9dac430dd7541deec19b Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 3 Dec 2011 02:13:30 +0100 -Subject: [PATCH 5/5] service: handle services with racy daemonization - gracefully - -There are a lot of forking daemons that do not exactly follow the -initialization steps as described in daemon(7). It is common that they -do not bother waiting in the parent process for the child to write the -PID file before exiting. The daemons' developers often do not perceive -this as a bug and they're unwilling to change. - -Currently systemd warns about the missing PID file and falls back to -guessing the main PID. Being not quite deterministic, the guess can be -wrong with bad consequences. If the guessing is disabled, determinism is -achieved at the cost of losing the ability of noticing when the main -process of the service dies. - -As long as it does not negatively affect properly written services, -systemd should strive for compatibility even with services with racy -daemonization. It is possible to provide determinism _and_ main process -supervision to them. - -If the PID file is not there, rather than guessing and considering the -service running immediately after getting the SIGCHLD from the ExecStart -(or ExecStartPost) process, we can keep the service in the activating -state for a bit longer. We can use inotify to wait for the PID file to -appear. Only when it finally does appear and we read a valid PID from -it, we'll move the service to the running state. If the PID file never -appears, the usual timeout kicks in and the service fails. ---- - src/service.c | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++------- - src/service.h | 3 + - 2 files changed, 157 insertions(+), 21 deletions(-) - -diff --git a/src/service.c b/src/service.c -index 6fc2484..07137d2 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -1302,8 +1302,8 @@ static int service_load_pid_file(Service *s, bool may_warn) { - - if ((r = read_one_line_file(s->pid_file, &k)) < 0) { - if (may_warn) -- log_warning("Failed to read PID file %s after %s. The service might be broken.", -- s->pid_file, service_state_to_string(s->state)); -+ log_info("PID file %s not readable (yet?) after %s.", -+ s->pid_file, service_state_to_string(s->state)); - return r; - } - -@@ -1315,8 +1315,8 @@ static int service_load_pid_file(Service *s, bool may_warn) { - - if (kill(pid, 0) < 0 && errno != EPERM) { - if (may_warn) -- log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.", -- (unsigned long) pid, s->pid_file); -+ log_info("PID %lu read from file %s does not exist.", -+ (unsigned long) pid, s->pid_file); - return -ESRCH; - } - -@@ -1328,7 +1328,8 @@ static int service_load_pid_file(Service *s, bool may_warn) { - (unsigned long) s->main_pid, (unsigned long) pid); - service_unwatch_main_pid(s); - s->main_pid_known = false; -- } -+ } else -+ log_debug("Main PID loaded: %lu", (unsigned long) pid); - - if ((r = service_set_main_pid(s, pid)) < 0) - return r; -@@ -1359,6 +1360,7 @@ static int service_search_main_pid(Service *s) { - if ((pid = cgroup_bonding_search_main_pid_list(s->meta.cgroup_bondings)) <= 0) - return -ENOENT; - -+ log_debug("Main PID guessed: %lu", (unsigned long) pid); - if ((r = service_set_main_pid(s, pid)) < 0) - return r; - -@@ -1451,6 +1453,17 @@ static int service_notify_sockets_dead(Service *s) { - return 0; - } - -+static void service_unwatch_pid_file(Service *s) { -+ if (!s->pid_file_pathspec) -+ return; -+ -+ log_debug("Stopping watch for %s's PID file %s", s->meta.id, s->pid_file_pathspec->path); -+ pathspec_unwatch(s->pid_file_pathspec, UNIT(s)); -+ pathspec_done(s->pid_file_pathspec); -+ free(s->pid_file_pathspec); -+ s->pid_file_pathspec = NULL; -+} -+ - static void service_set_state(Service *s, ServiceState state) { - ServiceState old_state; - assert(s); -@@ -1458,6 +1471,8 @@ static void service_set_state(Service *s, ServiceState state) { - old_state = s->state; - s->state = state; - -+ service_unwatch_pid_file(s); -+ - if (state != SERVICE_START_PRE && - state != SERVICE_START && - state != SERVICE_START_POST && -@@ -2602,6 +2617,95 @@ static bool service_check_snapshot(Unit *u) { - return !s->got_socket_fd; - } - -+static int service_retry_pid_file(Service *s) { -+ int r; -+ -+ assert(s->pid_file); -+ assert(s->state == SERVICE_START || s->state == SERVICE_START_POST); -+ -+ r = service_load_pid_file(s, false); -+ if (r < 0) -+ return r; -+ -+ service_unwatch_pid_file(s); -+ -+ service_enter_running(s, true); -+ return 0; -+} -+ -+static int service_watch_pid_file(Service *s) { -+ int r; -+ -+ log_debug("Setting watch for %s's PID file %s", s->meta.id, s->pid_file_pathspec->path); -+ r = pathspec_watch(s->pid_file_pathspec, UNIT(s)); -+ if (r < 0) -+ goto fail; -+ -+ /* the pidfile might have appeared just before we set the watch */ -+ service_retry_pid_file(s); -+ -+ return 0; -+fail: -+ log_error("Failed to set a watch for %s's PID file %s: %s", -+ s->meta.id, s->pid_file_pathspec->path, strerror(-r)); -+ service_unwatch_pid_file(s); -+ return r; -+} -+ -+static int service_demand_pid_file(Service *s) { -+ PathSpec *ps; -+ -+ assert(s->pid_file); -+ assert(!s->pid_file_pathspec); -+ -+ ps = new0(PathSpec, 1); -+ if (!ps) -+ return -ENOMEM; -+ -+ ps->path = strdup(s->pid_file); -+ if (!ps->path) { -+ free(ps); -+ return -ENOMEM; -+ } -+ -+ path_kill_slashes(ps->path); -+ -+ /* PATH_CHANGED would not be enough. There are daemons (sendmail) that -+ * keep their PID file open all the time. */ -+ ps->type = PATH_MODIFIED; -+ ps->inotify_fd = -1; -+ -+ s->pid_file_pathspec = ps; -+ -+ return service_watch_pid_file(s); -+} -+ -+static void service_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { -+ Service *s = SERVICE(u); -+ -+ assert(s); -+ assert(fd >= 0); -+ assert(s->state == SERVICE_START || s->state == SERVICE_START_POST); -+ assert(s->pid_file_pathspec); -+ assert(pathspec_owns_inotify_fd(s->pid_file_pathspec, fd)); -+ -+ log_debug("inotify event for %s", u->meta.id); -+ -+ if (pathspec_fd_event(s->pid_file_pathspec, events) < 0) -+ goto fail; -+ -+ if (service_retry_pid_file(s) == 0) -+ return; -+ -+ if (service_watch_pid_file(s) < 0) -+ goto fail; -+ -+ return; -+fail: -+ service_unwatch_pid_file(s); -+ service_enter_signal(s, SERVICE_STOP_SIGTERM, false); -+} -+ - static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { - Service *s = SERVICE(u); - bool success; -@@ -2707,7 +2811,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { - success = true; - } - -- log_full(success ? LOG_DEBUG : LOG_NOTICE, -+ log_full(success ? LOG_DEBUG : LOG_NOTICE, - "%s: control process exited, code=%s status=%i", u->meta.id, sigchld_code_to_string(code), status); - s->failure = s->failure || !success; - -@@ -2742,27 +2846,41 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { - case SERVICE_START: - assert(s->type == SERVICE_FORKING); - -- /* Let's try to load the pid -- * file here if we can. We -- * ignore the return value, -- * since the PID file might -- * actually be created by a -- * START_POST script */ -- -- if (success) { -- service_load_pid_file(s, !s->exec_command[SERVICE_EXEC_START_POST]); -- service_search_main_pid(s); -+ if (!success) { -+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); -+ break; -+ } - -- service_enter_start_post(s); -+ if (s->pid_file) { -+ /* Let's try to load the pid file here if we can. -+ * The PID file might actually be created by a START_POST -+ * script. In that case don't worry if the loading fails. */ -+ bool has_start_post = !!s->exec_command[SERVICE_EXEC_START_POST]; -+ int r = service_load_pid_file(s, !has_start_post); -+ if (!has_start_post && r < 0) { -+ r = service_demand_pid_file(s); -+ if (r < 0 || !cgroup_good(s)) -+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); -+ break; -+ } - } else -- service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); -+ service_search_main_pid(s); - -+ service_enter_start_post(s); - break; - - case SERVICE_START_POST: - if (success) { -- service_load_pid_file(s, true); -- service_search_main_pid(s); -+ if (s->pid_file) { -+ int r = service_load_pid_file(s, true); -+ if (r < 0) { -+ r = service_demand_pid_file(s); -+ if (r < 0 || !cgroup_good(s)) -+ service_enter_stop(s, false); -+ break; -+ } -+ } else -+ service_search_main_pid(s); - } - - s->reload_failure = !success; -@@ -2907,6 +3025,20 @@ static void service_cgroup_notify_event(Unit *u) { - * except when we don't know pid which to expect the - * SIGCHLD for. */ - -+ case SERVICE_START: -+ case SERVICE_START_POST: -+ /* If we were hoping for the daemon to write its PID file, -+ * we can give up now. */ -+ if (s->pid_file_pathspec) { -+ log_warning("%s never wrote its PID file. Failing.", s->meta.id); -+ service_unwatch_pid_file(s); -+ if (s->state == SERVICE_START) -+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, false); -+ else -+ service_enter_stop(s, false); -+ } -+ break; -+ - case SERVICE_RUNNING: - service_enter_running(s, true); - break; -@@ -3216,7 +3348,7 @@ static int service_enumerate(Manager *m) { - r = 0; - - #ifdef TARGET_SUSE -- sysv_facility_in_insserv_conf (m); -+ sysv_facility_in_insserv_conf (m); - #endif - - finish: -@@ -3511,6 +3643,7 @@ const UnitVTable service_vtable = { - - .sigchld_event = service_sigchld_event, - .timer_event = service_timer_event, -+ .fd_event = service_fd_event, - - .reset_failed = service_reset_failed, - -diff --git a/src/service.h b/src/service.h -index e28f74b..15d58cc 100644 ---- a/src/service.h -+++ b/src/service.h -@@ -86,6 +86,8 @@ typedef enum NotifyAccess { - _NOTIFY_ACCESS_INVALID = -1 - } NotifyAccess; - -+typedef struct PathSpec PathSpec; -+ - struct Service { - Meta meta; - -@@ -157,6 +159,7 @@ struct Service { - Set *configured_sockets; - - Watch timer_watch; -+ PathSpec *pid_file_pathspec; - - NotifyAccess notify_access; - }; --- -1.7.7 - -From 714d943f72417f53bcb98ed45d002aa270e793c4 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 8 Dec 2011 12:09:10 +0100 -Subject: [PATCH] path: add missing pieces for PathModified - -PATH_MODIFIED worked internally for PID files detection, but was unusable -in units. ---- - src/load-fragment-gperf.gperf.m4 | 1 + - src/path.c | 6 ++++-- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/load-fragment-gperf.gperf.m4 b/src/load-fragment-gperf.gperf.m4 -index 84ae28c..35ec005 100644 ---- a/src/load-fragment-gperf.gperf.m4 -+++ b/src/load-fragment-gperf.gperf.m4 -@@ -210,6 +210,7 @@ m4_dnl - Path.PathExists, config_parse_path_spec, 0, 0 - Path.PathExistsGlob, config_parse_path_spec, 0, 0 - Path.PathChanged, config_parse_path_spec, 0, 0 -+Path.PathModified, config_parse_path_spec, 0, 0 - Path.DirectoryNotEmpty, config_parse_path_spec, 0, 0 - Path.Unit, config_parse_path_unit, 0, 0 - Path.MakeDirectory, config_parse_bool, 0, offsetof(Path, make_directory) -diff --git a/src/path.c b/src/path.c -index 1e5d825..3fee247 100644 ---- a/src/path.c -+++ b/src/path.c -@@ -149,7 +149,8 @@ int pathspec_fd_event(PathSpec *s, uint32_t events) { - while (k > 0) { - size_t step; - -- if (s->type == PATH_CHANGED && s->primary_wd == e->wd) -+ if ((s->type == PATH_CHANGED || s->type == PATH_MODIFIED) && -+ s->primary_wd == e->wd) - r = 1; - - step = sizeof(struct inotify_event) + e->len; -@@ -184,7 +185,8 @@ static bool pathspec_check_good(PathSpec *s, bool initial) { - break; - } - -- case PATH_CHANGED: { -+ case PATH_CHANGED: -+ case PATH_MODIFIED: { - bool b; - - b = access(s->path, F_OK) >= 0; --- -1.7.7 - diff --git a/listen.conf b/listen.conf new file mode 100644 index 00000000..0abbb418 --- /dev/null +++ b/listen.conf @@ -0,0 +1 @@ +$SystemLogSocketName /run/systemd/journal/syslog diff --git a/log_on_close.patch b/log_on_close.patch deleted file mode 100644 index eee0eda3..00000000 --- a/log_on_close.patch +++ /dev/null @@ -1,586 +0,0 @@ -From 4d8a7798e7f12c6400495cbc4d0ad57ed20ce90a Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 16 Nov 2011 23:45:01 +0100 -Subject: [PATCH 1/3] execute: avoid logging to closed fds - -Several functions called from the "sd(EXEC)" process try to log messages -when all the file descriptors are already closed, including the logging -ones. The logging functions do not expect their fds to be closed and -they hit an assertion failure. The failure wants to be logged too, -so there is an infinite recursion, ended by a SIGSEGV. - -When we close all fds, we must let log.c know about it. ---- - src/execute.c | 1 + - src/log.c | 4 ++++ - src/log.h | 1 + - 3 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/src/execute.c b/src/execute.c -index 250d53a..0651014 100644 ---- a/src/execute.c -+++ b/src/execute.c -@@ -1016,6 +1016,7 @@ int exec_spawn(ExecCommand *command, - /* Close sockets very early to make sure we don't - * block init reexecution because it cannot bind its - * sockets */ -+ log_forget_fds(); - if (close_all_fds(socket_fd >= 0 ? &socket_fd : fds, - socket_fd >= 0 ? 1 : n_fds) < 0) { - r = EXIT_FDS; -diff --git a/src/log.c b/src/log.c -index b8ce122..5c5b734 100644 ---- a/src/log.c -+++ b/src/log.c -@@ -237,6 +237,10 @@ void log_close(void) { - log_close_syslog(); - } - -+void log_forget_fds(void) { -+ console_fd = kmsg_fd = syslog_fd = -1; -+} -+ - void log_set_max_level(int level) { - assert((level & LOG_PRIMASK) == level); - -diff --git a/src/log.h b/src/log.h -index c402afb..9942e3e 100644 ---- a/src/log.h -+++ b/src/log.h -@@ -57,6 +57,7 @@ int log_get_max_level(void); - - int log_open(void); - void log_close(void); -+void log_forget_fds(void); - - void log_close_syslog(void); - void log_close_kmsg(void); --- -1.7.7 - - -From 9ba353983adc026b75a503c1381f6e5c8062f3e0 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 17 Nov 2011 00:16:22 +0100 -Subject: [PATCH 2/3] execute: make setup_pam() return -errno when possible - -The only caller currently checks if the result is non-zero, -so nothing changes there. ---- - src/execute.c | 8 +++++++- - 1 files changed, 7 insertions(+), 1 deletions(-) - -diff --git a/src/execute.c b/src/execute.c -index 0651014..2039861 100644 ---- a/src/execute.c -+++ b/src/execute.c -@@ -716,6 +716,7 @@ static int setup_pam( - pam_handle_t *handle = NULL; - sigset_t ss, old_ss; - int pam_code = PAM_SUCCESS; -+ int err; - char **e = NULL; - bool close_session = false; - pid_t pam_pid = 0, parent_pid; -@@ -835,6 +836,11 @@ static int setup_pam( - return 0; - - fail: -+ if (pam_code != PAM_SUCCESS) -+ err = -EPERM; /* PAM errors do not map to errno */ -+ else -+ err = -errno; -+ - if (handle) { - if (close_session) - pam_code = pam_close_session(handle, PAM_DATA_SILENT); -@@ -851,7 +857,7 @@ fail: - kill(pam_pid, SIGCONT); - } - -- return EXIT_PAM; -+ return err; - } - #endif - --- -1.7.7 - - -From 4c2630ebf23b6348174f0bdf1110e90efe45259c Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 17 Nov 2011 00:21:16 +0100 -Subject: [PATCH 3/3] execute: log errors from "sd(EXEC)" - -To give the administrator more hints about failures occuring in spawning -of commands than just the exit code, log the strerror. -All fds are closed, so reopen the log. - -Related-to: https://bugzilla.redhat.com/show_bug.cgi?id=752901 ---- - src/execute.c | 138 +++++++++++++++++++++++++++++++++++++++-------------- - src/exit-status.c | 3 + - src/exit-status.h | 3 +- - 3 files changed, 107 insertions(+), 37 deletions(-) - -diff --git a/src/execute.c b/src/execute.c -index 2039861..481725d 100644 ---- a/src/execute.c -+++ b/src/execute.c -@@ -989,7 +989,7 @@ int exec_spawn(ExecCommand *command, - } - - if (pid == 0) { -- int i; -+ int i, err; - sigset_t ss; - const char *username = NULL, *home = NULL; - uid_t uid = (uid_t) -1; -@@ -1015,6 +1015,7 @@ int exec_spawn(ExecCommand *command, - - if (sigemptyset(&ss) < 0 || - sigprocmask(SIG_SETMASK, &ss, NULL) < 0) { -+ err = -errno; - r = EXIT_SIGNAL_MASK; - goto fail_child; - } -@@ -1023,14 +1024,16 @@ int exec_spawn(ExecCommand *command, - * block init reexecution because it cannot bind its - * sockets */ - log_forget_fds(); -- if (close_all_fds(socket_fd >= 0 ? &socket_fd : fds, -- socket_fd >= 0 ? 1 : n_fds) < 0) { -+ err = close_all_fds(socket_fd >= 0 ? &socket_fd : fds, -+ socket_fd >= 0 ? 1 : n_fds); -+ if (err < 0) { - r = EXIT_FDS; - goto fail_child; - } - - if (!context->same_pgrp) - if (setsid() < 0) { -+ err = -errno; - r = EXIT_SETSID; - goto fail_child; - } -@@ -1038,12 +1041,14 @@ int exec_spawn(ExecCommand *command, - if (context->tcpwrap_name) { - if (socket_fd >= 0) - if (!socket_tcpwrap(socket_fd, context->tcpwrap_name)) { -+ err = -EACCES; - r = EXIT_TCPWRAP; - goto fail_child; - } - - for (i = 0; i < (int) n_fds; i++) { - if (!socket_tcpwrap(fds[i], context->tcpwrap_name)) { -+ err = -EACCES; - r = EXIT_TCPWRAP; - goto fail_child; - } -@@ -1059,11 +1064,14 @@ int exec_spawn(ExecCommand *command, - - /* Set up terminal for the question */ - if ((r = setup_confirm_stdio(context, -- &saved_stdin, &saved_stdout))) -+ &saved_stdin, &saved_stdout))) { -+ err = -errno; - goto fail_child; -+ } - - /* Now ask the question. */ - if (!(line = exec_command_line(argv))) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } -@@ -1072,18 +1080,21 @@ int exec_spawn(ExecCommand *command, - free(line); - - if (r < 0 || response == 'n') { -+ err = -ECANCELED; - r = EXIT_CONFIRM; - goto fail_child; - } else if (response == 's') { -- r = 0; -+ err = r = 0; - goto fail_child; - } - - /* Release terminal for the question */ - if ((r = restore_confirm_stdio(context, - &saved_stdin, &saved_stdout, -- &keep_stdin, &keep_stdout))) -+ &keep_stdin, &keep_stdout))) { -+ err = -errno; - goto fail_child; -+ } - } - - /* If a socket is connected to STDIN/STDOUT/STDERR, we -@@ -1091,28 +1102,35 @@ int exec_spawn(ExecCommand *command, - if (socket_fd >= 0) - fd_nonblock(socket_fd, false); - -- if (!keep_stdin) -- if (setup_input(context, socket_fd, apply_tty_stdin) < 0) { -+ if (!keep_stdin) { -+ err = setup_input(context, socket_fd, apply_tty_stdin); -+ if (err < 0) { - r = EXIT_STDIN; - goto fail_child; - } -+ } - -- if (!keep_stdout) -- if (setup_output(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin) < 0) { -+ if (!keep_stdout) { -+ err = setup_output(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin); -+ if (err < 0) { - r = EXIT_STDOUT; - goto fail_child; - } -+ } - -- if (setup_error(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin) < 0) { -+ err = setup_error(context, socket_fd, file_name_from_path(command->path), apply_tty_stdin); -+ if (err < 0) { - r = EXIT_STDERR; - goto fail_child; - } - -- if (cgroup_bondings) -- if (cgroup_bonding_install_list(cgroup_bondings, 0) < 0) { -+ if (cgroup_bondings) { -+ err = cgroup_bonding_install_list(cgroup_bondings, 0); -+ if (err < 0) { - r = EXIT_CGROUP; - goto fail_child; - } -+ } - - if (context->oom_score_adjust_set) { - char t[16]; -@@ -1133,6 +1151,7 @@ int exec_spawn(ExecCommand *command, - - if (write_one_line_file("/proc/self/oom_adj", t) < 0 - && errno != EACCES) { -+ err = -errno; - r = EXIT_OOM_ADJUST; - goto fail_child; - } -@@ -1141,6 +1160,7 @@ int exec_spawn(ExecCommand *command, - - if (context->nice_set) - if (setpriority(PRIO_PROCESS, 0, context->nice) < 0) { -+ err = -errno; - r = EXIT_NICE; - goto fail_child; - } -@@ -1153,6 +1173,7 @@ int exec_spawn(ExecCommand *command, - - if (sched_setscheduler(0, context->cpu_sched_policy | - (context->cpu_sched_reset_on_fork ? SCHED_RESET_ON_FORK : 0), ¶m) < 0) { -+ err = -errno; - r = EXIT_SETSCHEDULER; - goto fail_child; - } -@@ -1160,18 +1181,21 @@ int exec_spawn(ExecCommand *command, - - if (context->cpuset) - if (sched_setaffinity(0, CPU_ALLOC_SIZE(context->cpuset_ncpus), context->cpuset) < 0) { -+ err = -errno; - r = EXIT_CPUAFFINITY; - goto fail_child; - } - - if (context->ioprio_set) - if (ioprio_set(IOPRIO_WHO_PROCESS, 0, context->ioprio) < 0) { -+ err = -errno; - r = EXIT_IOPRIO; - goto fail_child; - } - - if (context->timer_slack_nsec_set) - if (prctl(PR_SET_TIMERSLACK, context->timer_slack_nsec) < 0) { -+ err = -errno; - r = EXIT_TIMERSLACK; - goto fail_child; - } -@@ -1181,36 +1205,45 @@ int exec_spawn(ExecCommand *command, - - if (context->user) { - username = context->user; -- if (get_user_creds(&username, &uid, &gid, &home) < 0) { -+ err = get_user_creds(&username, &uid, &gid, &home); -+ if (err < 0) { - r = EXIT_USER; - goto fail_child; - } - -- if (is_terminal_input(context->std_input)) -- if (chown_terminal(STDIN_FILENO, uid) < 0) { -+ if (is_terminal_input(context->std_input)) { -+ err = chown_terminal(STDIN_FILENO, uid); -+ if (err < 0) { - r = EXIT_STDIN; - goto fail_child; - } -+ } - -- if (cgroup_bondings && context->control_group_modify) -- if (cgroup_bonding_set_group_access_list(cgroup_bondings, 0755, uid, gid) < 0 || -- cgroup_bonding_set_task_access_list(cgroup_bondings, 0644, uid, gid) < 0) { -+ if (cgroup_bondings && context->control_group_modify) { -+ err = cgroup_bonding_set_group_access_list(cgroup_bondings, 0755, uid, gid); -+ if (err >= 0) -+ err = cgroup_bonding_set_task_access_list(cgroup_bondings, 0644, uid, gid); -+ if (err < 0) { - r = EXIT_CGROUP; - goto fail_child; - } -+ } - } - -- if (apply_permissions) -- if (enforce_groups(context, username, gid) < 0) { -+ if (apply_permissions) { -+ err = enforce_groups(context, username, gid); -+ if (err < 0) { - r = EXIT_GROUP; - goto fail_child; - } -+ } - - umask(context->umask); - - #ifdef HAVE_PAM - if (context->pam_name && username) { -- if (setup_pam(context->pam_name, username, context->tty_path, &pam_env, fds, n_fds) != 0) { -+ err = setup_pam(context->pam_name, username, context->tty_path, &pam_env, fds, n_fds); -+ if (err < 0) { - r = EXIT_PAM; - goto fail_child; - } -@@ -1218,6 +1251,7 @@ int exec_spawn(ExecCommand *command, - #endif - if (context->private_network) { - if (unshare(CLONE_NEWNET) < 0) { -+ err = -errno; - r = EXIT_NETWORK; - goto fail_child; - } -@@ -1229,23 +1263,28 @@ int exec_spawn(ExecCommand *command, - strv_length(context->read_only_dirs) > 0 || - strv_length(context->inaccessible_dirs) > 0 || - context->mount_flags != MS_SHARED || -- context->private_tmp) -- if ((r = setup_namespace( -- context->read_write_dirs, -- context->read_only_dirs, -- context->inaccessible_dirs, -- context->private_tmp, -- context->mount_flags)) < 0) -+ context->private_tmp) { -+ err = setup_namespace(context->read_write_dirs, -+ context->read_only_dirs, -+ context->inaccessible_dirs, -+ context->private_tmp, -+ context->mount_flags); -+ if (err < 0) { -+ r = EXIT_NAMESPACE; - goto fail_child; -+ } -+ } - - if (apply_chroot) { - if (context->root_directory) - if (chroot(context->root_directory) < 0) { -+ err = -errno; - r = EXIT_CHROOT; - goto fail_child; - } - - if (chdir(context->working_directory ? context->working_directory : "/") < 0) { -+ err = -errno; - r = EXIT_CHDIR; - goto fail_child; - } -@@ -1256,11 +1295,13 @@ int exec_spawn(ExecCommand *command, - if (asprintf(&d, "%s/%s", - context->root_directory ? context->root_directory : "", - context->working_directory ? context->working_directory : "") < 0) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } - - if (chdir(d) < 0) { -+ err = -errno; - free(d); - r = EXIT_CHDIR; - goto fail_child; -@@ -1271,9 +1312,12 @@ int exec_spawn(ExecCommand *command, - - /* We repeat the fd closing here, to make sure that - * nothing is leaked from the PAM modules */ -- if (close_all_fds(fds, n_fds) < 0 || -- shift_fds(fds, n_fds) < 0 || -- flags_fds(fds, n_fds, context->non_blocking) < 0) { -+ err = close_all_fds(fds, n_fds); -+ if (err >= 0) -+ err = shift_fds(fds, n_fds); -+ if (err >= 0) -+ err = flags_fds(fds, n_fds, context->non_blocking); -+ if (err < 0) { - r = EXIT_FDS; - goto fail_child; - } -@@ -1285,22 +1329,27 @@ int exec_spawn(ExecCommand *command, - continue; - - if (setrlimit(i, context->rlimit[i]) < 0) { -+ err = -errno; - r = EXIT_LIMITS; - goto fail_child; - } - } - -- if (context->capability_bounding_set_drop) -- if (do_capability_bounding_set_drop(context->capability_bounding_set_drop) < 0) { -+ if (context->capability_bounding_set_drop) { -+ err = do_capability_bounding_set_drop(context->capability_bounding_set_drop); -+ if (err < 0) { - r = EXIT_CAPABILITIES; - goto fail_child; - } -+ } - -- if (context->user) -- if (enforce_user(context, uid) < 0) { -+ if (context->user) { -+ err = enforce_user(context, uid); -+ if (err < 0) { - r = EXIT_USER; - goto fail_child; - } -+ } - - /* PR_GET_SECUREBITS is not privileged, while - * PR_SET_SECUREBITS is. So to suppress -@@ -1308,18 +1357,21 @@ int exec_spawn(ExecCommand *command, - * PR_SET_SECUREBITS unless necessary. */ - if (prctl(PR_GET_SECUREBITS) != context->secure_bits) - if (prctl(PR_SET_SECUREBITS, context->secure_bits) < 0) { -+ err = -errno; - r = EXIT_SECUREBITS; - goto fail_child; - } - - if (context->capabilities) - if (cap_set_proc(context->capabilities) < 0) { -+ err = -errno; - r = EXIT_CAPABILITIES; - goto fail_child; - } - } - - if (!(our_env = new0(char*, 7))) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } -@@ -1327,12 +1379,14 @@ int exec_spawn(ExecCommand *command, - if (n_fds > 0) - if (asprintf(our_env + n_env++, "LISTEN_PID=%lu", (unsigned long) getpid()) < 0 || - asprintf(our_env + n_env++, "LISTEN_FDS=%u", n_fds) < 0) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } - - if (home) - if (asprintf(our_env + n_env++, "HOME=%s", home) < 0) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } -@@ -1340,6 +1394,7 @@ int exec_spawn(ExecCommand *command, - if (username) - if (asprintf(our_env + n_env++, "LOGNAME=%s", username) < 0 || - asprintf(our_env + n_env++, "USER=%s", username) < 0) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } -@@ -1348,6 +1403,7 @@ int exec_spawn(ExecCommand *command, - context->std_output == EXEC_OUTPUT_TTY || - context->std_error == EXEC_OUTPUT_TTY) - if (!(our_env[n_env++] = strdup(default_term_for_tty(tty_path(context))))) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } -@@ -1362,11 +1418,13 @@ int exec_spawn(ExecCommand *command, - files_env, - pam_env, - NULL))) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } - - if (!(final_argv = replace_env_argv(argv, final_env))) { -+ err = -ENOMEM; - r = EXIT_MEMORY; - goto fail_child; - } -@@ -1374,9 +1432,17 @@ int exec_spawn(ExecCommand *command, - final_env = strv_env_clean(final_env); - - execve(command->path, final_argv, final_env); -+ err = -errno; - r = EXIT_EXEC; - - fail_child: -+ if (r != 0) { -+ log_open(); -+ log_warning("Failed at step %s spawning %s: %s", -+ exit_status_to_string(r, EXIT_STATUS_SYSTEMD), -+ command->path, strerror(-err)); -+ } -+ - strv_free(our_env); - strv_free(final_env); - strv_free(pam_env); -diff --git a/src/exit-status.c b/src/exit-status.c -index 8ed1a0e..ab8907d 100644 ---- a/src/exit-status.c -+++ b/src/exit-status.c -@@ -119,6 +119,9 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) { - - case EXIT_NETWORK: - return "NETWORK"; -+ -+ case EXIT_NAMESPACE: -+ return "NAMESPACE"; - } - } - -diff --git a/src/exit-status.h b/src/exit-status.h -index 3e977b1..44ef879 100644 ---- a/src/exit-status.h -+++ b/src/exit-status.h -@@ -65,7 +65,8 @@ typedef enum ExitStatus { - EXIT_STDERR, - EXIT_TCPWRAP, - EXIT_PAM, -- EXIT_NETWORK -+ EXIT_NETWORK, -+ EXIT_NAMESPACE - - } ExitStatus; - --- -1.7.7 - diff --git a/mount-swap-log.patch b/mount-swap-log.patch deleted file mode 100644 index 9117adfe..00000000 --- a/mount-swap-log.patch +++ /dev/null @@ -1,54 +0,0 @@ -From f6cebb3bd5a00d79c8131637c0f6796a75e6af99 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 19 Nov 2011 02:47:09 +0100 -Subject: [PATCH] let mount and swap units log to the configured defaults - -Related-to: https://bugzilla.redhat.com/show_bug.cgi?id=750032 ---- - src/mount.c | 6 ++++-- - src/swap.c | 5 +++-- - 2 files changed, 7 insertions(+), 4 deletions(-) - -diff --git a/src/mount.c b/src/mount.c -index f9cfe91..47422cc 100644 ---- a/src/mount.c -+++ b/src/mount.c -@@ -68,8 +68,10 @@ static void mount_init(Unit *u) { - - /* The stdio/kmsg bridge socket is on /, in order to avoid a - * dep loop, don't use kmsg logging for -.mount */ -- if (!unit_has_name(u, "-.mount")) -- m->exec_context.std_output = EXEC_OUTPUT_KMSG; -+ if (!unit_has_name(u, "-.mount")) { -+ m->exec_context.std_output = u->meta.manager->default_std_output; -+ m->exec_context.std_error = u->meta.manager->default_std_error; -+ } - - /* We need to make sure that /bin/mount is always called in - * the same process group as us, so that the autofs kernel -diff --git a/src/swap.c b/src/swap.c -index 54a8640..4fa30a3 100644 ---- a/src/swap.c -+++ b/src/swap.c -@@ -74,7 +74,7 @@ static void swap_unset_proc_swaps(Swap *s) { - s->parameters_proc_swaps.what = NULL; - } - -- static void swap_init(Unit *u) { -+static void swap_init(Unit *u) { - Swap *s = SWAP(u); - - assert(s); -@@ -83,7 +83,8 @@ static void swap_unset_proc_swaps(Swap *s) { - s->timeout_usec = DEFAULT_TIMEOUT_USEC; - - exec_context_init(&s->exec_context); -- s->exec_context.std_output = EXEC_OUTPUT_KMSG; -+ s->exec_context.std_output = u->meta.manager->default_std_output; -+ s->exec_context.std_error = u->meta.manager->default_std_error; - - s->parameters_etc_fstab.priority = s->parameters_proc_swaps.priority = s->parameters_fragment.priority = -1; - --- -1.7.7 - diff --git a/no-tmpfs-fsck.patch b/no-tmpfs-fsck.patch index cfa7bda3..a5946686 100644 --- a/no-tmpfs-fsck.patch +++ b/no-tmpfs-fsck.patch @@ -8,18 +8,15 @@ Subject: [PATCH] mount: do not try to fsck tmpfs mountpoint with non-null src/mount.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) -diff --git a/src/mount.c b/src/mount.c -index ef953f0..5da4047 100644 ---- a/src/mount.c -+++ b/src/mount.c -@@ -434,6 +434,7 @@ static int mount_add_device_links(Mount *m) { +Index: systemd-39/src/mount.c +=================================================================== +--- systemd-39.orig/src/mount.c ++++ systemd-39/src/mount.c +@@ -428,6 +428,7 @@ static int mount_add_device_links(Mount if (p->passno > 0 && !mount_is_bind(p) && + !streq(p->fstype,"tmpfs") && - UNIT(m)->meta.manager->running_as == MANAGER_SYSTEM && + UNIT(m)->manager->running_as == MANAGER_SYSTEM && !path_equal(m->where, "/")) { char *name; --- -1.7.7 - diff --git a/storage-after-cryptsetup.patch b/storage-after-cryptsetup.patch index a317015e..1716fd6d 100644 --- a/storage-after-cryptsetup.patch +++ b/storage-after-cryptsetup.patch @@ -7,11 +7,11 @@ Subject: [PATCH] force lvm restart after cryptsetup target is reached src/cryptsetup-generator.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) -diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c -index a48b7a4..14fcce8 100644 ---- a/src/cryptsetup-generator.c -+++ b/src/cryptsetup-generator.c -@@ -22,12 +22,14 @@ +Index: systemd-37/src/cryptsetup/cryptsetup-generator.c +=================================================================== +--- systemd-37.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-37/src/cryptsetup/cryptsetup-generator.c +@@ -22,6 +22,7 @@ #include #include #include @@ -19,14 +19,7 @@ index a48b7a4..14fcce8 100644 #include "log.h" #include "util.h" - #include "unit-name.h" - - const char *arg_dest = "/tmp"; -+bool random_seed = false; - - static bool has_option(const char *haystack, const char *needle) { - const char *f = haystack; -@@ -58,6 +60,78 @@ static bool has_option(const char *haystack, const char *needle) { +@@ -58,6 +59,71 @@ static bool has_option(const char *hayst return false; } @@ -53,10 +46,8 @@ index a48b7a4..14fcce8 100644 + "DefaultDependencies=no\n" + "After=cryptsetup.target\n" + "Wants=cryptsetup.target\n" ++ "Before=local-fs.target\n" + "Before=shutdown.target\n"); -+ if (!random_seed) { -+ fprintf(f, "After=local-fs.target\n"); -+ } + + fprintf(f, + "\n[Service]\n" @@ -86,13 +77,8 @@ index a48b7a4..14fcce8 100644 + goto fail; + } + -+ free(to); -+ to = NULL; -+ -+ r = 0; -+ system ("TMPDIR=/run /usr/bin/sed -e 's/\\(After=.*\\) local-fs.target\\(.*\\)/\\1\\2/g' /lib/systemd/system/systemd-random-seed-load.service > /etc/systemd/system/systemd-random-seed-load.service "); ++ r=0; +fail: -+ + free(p); + free(to); + @@ -105,19 +91,7 @@ index a48b7a4..14fcce8 100644 static int create_disk( const char *name, const char *device, -@@ -122,8 +196,11 @@ static int create_disk( - if (password && (streq(password, "/dev/urandom") || - streq(password, "/dev/random") || - streq(password, "/dev/hw_random"))) -+ { - fprintf(f, - "After=systemd-random-seed-load.service\n"); -+ random_seed = true; -+ } - else - fprintf(f, - "Before=local-fs.target\n"); -@@ -293,6 +370,9 @@ int main(int argc, char *argv[]) { +@@ -291,6 +357,9 @@ int main(int argc, char *argv[]) { free(options); } @@ -127,6 +101,3 @@ index a48b7a4..14fcce8 100644 finish: return r; } --- -1.7.7 - diff --git a/sysctl-modules.patch b/sysctl-modules.patch new file mode 100644 index 00000000..9348df0d --- /dev/null +++ b/sysctl-modules.patch @@ -0,0 +1,12 @@ +Index: systemd-37/units/systemd-sysctl.service.in +=================================================================== +--- systemd-37.orig/units/systemd-sysctl.service.in ++++ systemd-37/units/systemd-sysctl.service.in +@@ -10,6 +10,7 @@ Description=Apply Kernel Variables + DefaultDependencies=no + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service ++After=systemd-modules-load.service + Before=sysinit.target shutdown.target + ConditionPathExists=|/etc/sysctl.conf + ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/systemctl-completion-fix.patch b/systemctl-completion-fix.patch deleted file mode 100644 index 3f5b2e37..00000000 --- a/systemctl-completion-fix.patch +++ /dev/null @@ -1,77 +0,0 @@ -In the case of completion for the 'restart' verb, passing the invalid -unit name (the colums header) causes completion to cease functioning -entirely, with the error: - - Failed to issue method call: Unit name UNIT is not valid. - -This adds a small wrapper function for systemctl which can have common -options added to it. - ---- - src/systemctl-bash-completion.sh | 20 ++++++++++++-------- - 1 files changed, 12 insertions(+), 8 deletions(-) - -diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh -index 6369a6c..6ebb792 100644 ---- a/src/systemctl-bash-completion.sh -+++ b/src/systemctl-bash-completion.sh -@@ -15,6 +15,10 @@ - # You should have received a copy of the GNU General Public License - # along with systemd; If not, see . - -+__systemctl() { -+ systemctl --no-legend "$@" -+} -+ - __contains_word () { - local word=$1; shift - for w in $*; do [[ $w = $word ]] && return 0; done -@@ -24,7 +28,7 @@ __contains_word () { - __filter_units_by_property () { - local property=$1 value=$2 ; shift ; shift - local -a units=( $* ) -- local -a props=( $(systemctl show --property "$property" -- ${units[*]} | grep -v ^$) ) -+ local -a props=( $(__systemctl show --property "$property" -- ${units[*]} | grep -v ^$) ) - for ((i=0; $i < ${#units[*]}; i++)); do - if [[ "${props[i]}" = "$property=$value" ]]; then - echo "${units[i]}" -@@ -32,10 +36,10 @@ __filter_units_by_property () { - done - } - --__get_all_units () { systemctl list-units --full --all | awk ' {print $1}' ; } --__get_active_units () { systemctl list-units --full | awk ' {print $1}' ; } --__get_inactive_units () { systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; } --__get_failed_units () { systemctl list-units --full | awk '$3 == "failed" {print $1}' ; } -+__get_all_units () { __systemctl list-units --full --all | awk ' {print $1}' ; } -+__get_active_units () { __systemctl list-units --full | awk ' {print $1}' ; } -+__get_inactive_units () { __systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; } -+__get_failed_units () { __systemctl list-units --full | awk '$3 == "failed" {print $1}' ; } - - _systemctl () { - local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -@@ -134,13 +138,13 @@ _systemctl () { - comps='' - - elif __contains_word "$verb" ${VERBS[JOBS]}; then -- comps=$( systemctl list-jobs | awk '{print $1}' ) -+ comps=$( __systemctl list-jobs | awk '{print $1}' ) - - elif __contains_word "$verb" ${VERBS[SNAPSHOTS]}; then -- comps=$( systemctl list-units --type snapshot --full --all | awk '{print $1}' ) -+ comps=$( __systemctl list-units --type snapshot --full --all | awk '{print $1}' ) - - elif __contains_word "$verb" ${VERBS[ENVS]}; then -- comps=$( systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' ) -+ comps=$( __systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' ) - compopt -o nospace - fi - --- -1.7.7 - -_______________________________________________ -systemd-devel mailing list -systemd-devel@lists.freedesktop.org -http://lists.freedesktop.org/mailman/listinfo/systemd-devel - diff --git a/systemd-37.tar.bz2 b/systemd-37.tar.bz2 deleted file mode 100644 index 6c1ba106..00000000 --- a/systemd-37.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b38492bde73649cc3520953354ef446c268169c1d342614183655e9ee1a1bbc5 -size 931101 diff --git a/systemd-39.tar.xz b/systemd-39.tar.xz new file mode 100644 index 00000000..f8b5c292 --- /dev/null +++ b/systemd-39.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd053f97ab0ed4261ec44f247ec582566319339f523dbe79b79c68cfe5ad677f +size 890892 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 6127a51d..32be4c38 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,74 @@ +------------------------------------------------------------------- +Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com + +- Update to version 39: + + New systemd-cgtop tool to show control groups by their resource + usage. + + Linking against libacl for ACLs is optional again. + + If a group "adm" exists, journal files are automatically owned + by them, thus allow members of this group full access to the + system journal as well as all user journals. + + The journal now stores the SELinux context of the logging + client for all entries. + + Add C++ inclusion guards to all public headers. + + New output mode "cat" in the journal to print only text + messages, without any meta data like date or time. + + Include tiny X server wrapper as a temporary stop-gap to teach + XOrg udev display enumeration (until XOrg supports udev + hotplugging for display devices). + + Add new systemd-cat tool for executing arbitrary programs with + STDERR/STDOUT connected to the journal. Can also act as BSD + logger replacement, and does so by default. + + Optionally store all locally generated coredumps in the journal + along with meta data. + + systemd-tmpfiles learnt four new commands: n, L, c, b, for + writing short strings to files (for usage for /sys), and for + creating symlinks, character and block device nodes. + + New unit file option ControlGroupPersistent= to make cgroups + persistent. + + Support multiple local RTCs in a sane way. + + No longer monopolize IO when replaying readahead data on + rotating disks. + + Don't show kernel threads in systemd-cgls anymore, unless + requested with new -k switch. +- Drop systemd-syslog_away_early_on_shutdown.patch: fixed upstream. +- Add fdupes to BuildRequires and use it at build time. + +------------------------------------------------------------------- +Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com + +- Make the systemd journal persistent by creating the + /var/log/journal directory + +------------------------------------------------------------------- +Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com + +- Update to version 38 : + - Bugfixes + - Implementation of a Journal Utility Library + - Implementation of a 128 Bit ID Utility Library +- 11 Patches integrated upstream +- Add systemd-syslog_away_early_on_shutdown.patch: make sure + syslog socket goes away early during shutdown. +- Add listen.conf for rsyslog. This will ensure that it will still + work fine with rsyslog and the new journal. + +------------------------------------------------------------------- +Mon Jan 9 17:01:22 UTC 2012 - fcrozat@suse.com + +- Add fix-is-enabled.patch: ensure systemctl is-enabled work + properly when systemd isn't running. +- Add logind-console.patch: do not bail logind if /dev/tty0 doesn't + exist (bnc#733022, bnc#735047). +- Add sysctl-modules.patch: ensure sysctl is started after modules + are loaded (bnc#725412). +- Fix warning in insserv patch. +- Update avoid-random-seed-cycle.patch with better upstream + approach. +- Update storage-after-cryptsetup.patch to restart lvm before + local-fs.target, not after it (bnc#740106). +- Increase pam-config dependency (bnc#713319). + ------------------------------------------------------------------- Wed Dec 7 15:15:07 UTC 2011 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 7db95558..4a146aeb 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-gtk # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,33 +15,39 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 37 -Release: 1 +Version: 39 +Release: 0 +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: audit-devel +BuildRequires: dbus-1-devel +BuildRequires: glib2-devel +BuildRequires: gperf +BuildRequires: gtk2-devel +BuildRequires: intltool +BuildRequires: libacl-devel +BuildRequires: libcap-devel +BuildRequires: libcryptsetup-devel +BuildRequires: libgee-devel +BuildRequires: libnotify-devel +BuildRequires: libselinux-devel +BuildRequires: libsepol-devel +BuildRequires: libtool +BuildRequires: libudev-devel +BuildRequires: pam-devel +BuildRequires: pkg-config +BuildRequires: tcpd-devel +BuildRequires: udev +BuildRequires: xz +BuildRequires: xz-devel +Summary: Graphical front-end for systemd License: GPL-2.0+ Group: System/Base -BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: libudev-devel udev -BuildRequires: dbus-1-devel -BuildRequires: audit-devel -BuildRequires: gperf -BuildRequires: libcap-devel -BuildRequires: libacl-devel -BuildRequires: libtool -BuildRequires: tcpd-devel -BuildRequires: pam-devel -BuildRequires: libcryptsetup-devel -BuildRequires: pkg-config -BuildRequires: libselinux-devel libsepol-devel -BuildRequires: intltool -BuildRequires: gtk2-devel libnotify-devel -Summary: Graphical front-end for systemd Requires: systemd = %{version} -Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.bz2 +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz Source1: systemd-rpmlintrc # Upstream First - Policy: @@ -64,7 +70,7 @@ export V=1 %configure \ --with-distro=suse \ --docdir=%{_docdir}/systemd \ - --with-rootdir= \ + --with-rootprefix= \ CFLAGS="%{optflags}" make %{?_smp_mflags} diff --git a/systemd.changes b/systemd.changes index 6127a51d..32be4c38 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,74 @@ +------------------------------------------------------------------- +Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com + +- Update to version 39: + + New systemd-cgtop tool to show control groups by their resource + usage. + + Linking against libacl for ACLs is optional again. + + If a group "adm" exists, journal files are automatically owned + by them, thus allow members of this group full access to the + system journal as well as all user journals. + + The journal now stores the SELinux context of the logging + client for all entries. + + Add C++ inclusion guards to all public headers. + + New output mode "cat" in the journal to print only text + messages, without any meta data like date or time. + + Include tiny X server wrapper as a temporary stop-gap to teach + XOrg udev display enumeration (until XOrg supports udev + hotplugging for display devices). + + Add new systemd-cat tool for executing arbitrary programs with + STDERR/STDOUT connected to the journal. Can also act as BSD + logger replacement, and does so by default. + + Optionally store all locally generated coredumps in the journal + along with meta data. + + systemd-tmpfiles learnt four new commands: n, L, c, b, for + writing short strings to files (for usage for /sys), and for + creating symlinks, character and block device nodes. + + New unit file option ControlGroupPersistent= to make cgroups + persistent. + + Support multiple local RTCs in a sane way. + + No longer monopolize IO when replaying readahead data on + rotating disks. + + Don't show kernel threads in systemd-cgls anymore, unless + requested with new -k switch. +- Drop systemd-syslog_away_early_on_shutdown.patch: fixed upstream. +- Add fdupes to BuildRequires and use it at build time. + +------------------------------------------------------------------- +Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com + +- Make the systemd journal persistent by creating the + /var/log/journal directory + +------------------------------------------------------------------- +Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com + +- Update to version 38 : + - Bugfixes + - Implementation of a Journal Utility Library + - Implementation of a 128 Bit ID Utility Library +- 11 Patches integrated upstream +- Add systemd-syslog_away_early_on_shutdown.patch: make sure + syslog socket goes away early during shutdown. +- Add listen.conf for rsyslog. This will ensure that it will still + work fine with rsyslog and the new journal. + +------------------------------------------------------------------- +Mon Jan 9 17:01:22 UTC 2012 - fcrozat@suse.com + +- Add fix-is-enabled.patch: ensure systemctl is-enabled work + properly when systemd isn't running. +- Add logind-console.patch: do not bail logind if /dev/tty0 doesn't + exist (bnc#733022, bnc#735047). +- Add sysctl-modules.patch: ensure sysctl is started after modules + are loaded (bnc#725412). +- Fix warning in insserv patch. +- Update avoid-random-seed-cycle.patch with better upstream + approach. +- Update storage-after-cryptsetup.patch to restart lvm before + local-fs.target, not after it (bnc#740106). +- Increase pam-config dependency (bnc#713319). + ------------------------------------------------------------------- Wed Dec 7 15:15:07 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 733be9ee..39c85882 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,7 +15,6 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild %define build_plymouth 0 @@ -23,35 +22,40 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 37 -Release: 1 +Version: 39 +Release: 0 +Summary: A System and Session Manager License: GPL-2.0+ Group: System/Base -Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: libudev-devel udev -BuildRequires: dbus-1-devel BuildRequires: audit-devel +BuildRequires: dbus-1-devel +BuildRequires: fdupes BuildRequires: gperf -BuildRequires: libcap-devel -BuildRequires: libacl-devel -BuildRequires: libtool -BuildRequires: tcpd-devel -BuildRequires: pam-devel -BuildRequires: libcryptsetup-devel -BuildRequires: pkg-config -BuildRequires: libselinux-devel libsepol-devel BuildRequires: intltool +BuildRequires: libacl-devel +BuildRequires: libcap-devel +BuildRequires: libcryptsetup-devel +BuildRequires: libselinux-devel +BuildRequires: libsepol-devel +BuildRequires: libtool +BuildRequires: libudev-devel +BuildRequires: pam-devel +BuildRequires: pkg-config +BuildRequires: tcpd-devel +BuildRequires: udev +BuildRequires: xz +BuildRequires: xz-devel Requires: udev >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux >= 2.19 -Requires: pam-config +Requires: pam-config >= 0.79-5 Requires: systemd-presets-branding Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 -Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 +Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert @@ -62,6 +66,8 @@ Source7: systemd-bootsplash Source8: bootsplash-startup.service Source9: bootsplash-quit.service Source10: bootsplash-shutdown.service +# Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away +Source11: listen.conf Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -71,27 +77,19 @@ Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch Patch15: support-sysvinit.patch Patch16: modules_on_boot.patch -Patch18: systemctl-completion-fix.patch Patch19: avoid-random-seed-cycle.patch Patch22: new-lsb-headers.patch Patch23: storage-after-cryptsetup.patch Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch Patch31: lock-opensuse.patch Patch33: crypt-loop-file.patch +Patch36: sysctl-modules.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -Patch20: crash-isolating.patch Patch21: no-tmpfs-fsck.patch -Patch25: cron-tty-pam.patch -Patch26: do_not_warn_pidfile.patch -Patch27: mount-swap-log.patch -Patch28: color-on-boot.patch -Patch29: log_on_close.patch -Patch30: handle-racy-daemon.patch -Patch32: garbage_collect_units.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -104,8 +102,8 @@ transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. %package devel -Group: Development/Libraries/C and C++ Summary: Development headers for systemd +Group: Development/Libraries/C and C++ Requires: %{name} = %{version} Requires: pkg-config @@ -114,6 +112,7 @@ Development headers and auxiliary files for developing applications for systemd. %package sysvinit Summary: System V init tools +Group: System/Base Requires: %{name} = %{version} Provides: sbin_init Conflicts: otherproviders(sbin_init) @@ -126,6 +125,7 @@ Drop-in replacement of System V init tools. %package plymouth Summary: Plymouth support for systemd +Group: System/Base Requires: %{name} = %{version} Requires: plymouth @@ -142,22 +142,14 @@ Plymouth integration for systemd %patch13 -p1 %patch15 -p1 %patch16 -p1 -%patch18 -p1 %patch19 -p1 -%patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 %patch31 -p1 -%patch32 -p1 %patch33 -p1 +%patch36 -p1 %build autoreconf -fiv @@ -168,7 +160,8 @@ export V=1 %configure \ --with-distro=suse \ --docdir=%{_docdir}/systemd \ - --with-rootdir= \ + --with-rootprefix= \ + --with-pamlibdir=/%{_lib}/security \ --disable-gtk \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -231,10 +224,20 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/stoppreload.service ln -s /dev/null %{buildroot}/lib/systemd/system/earlyxdm.service ln -s systemd-sysctl.service %{buildroot}/lib/systemd/system/sysctl.service ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.service + +# Install rsyslog fragment +mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/ +install -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/rsyslog.d/ + +# Create the /var/log/journal directory to change the volatile journal to a persistent one +mkdir -p %{buildroot}/var/log/journal + %if %{build_plymouth} (cd %{buildroot} && find . -name '*plymouth*') > files.plymouth %endif +%fdupes $RPM_BUILD_ROOT + %post /usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : /sbin/ldconfig @@ -286,6 +289,7 @@ rm -rf %{buildroot} /bin/systemd /bin/systemctl /bin/systemd-notify +/bin/systemd-journalctl /bin/systemd-ask-password /bin/systemd-loginctl /bin/systemd-tty-ask-password-agent @@ -297,7 +301,11 @@ rm -rf %{buildroot} %{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* +%{_libdir}/libsystemd-id128.so.* +%{_libdir}/libsystemd-journal.so.* %{_bindir}/systemd-cgls +%{_bindir}/systemd-cgtop +%{_bindir}/systemd-cat /lib/systemd/systemd-* %dir /lib/systemd/system-shutdown %dir /lib/systemd/system.preset @@ -315,10 +323,13 @@ rm -rf %{buildroot} %dir /usr/lib/binfmt.d %dir %{_sysconfdir}/binfmt.d %dir /usr/lib/sysctl.d +/usr/lib/sysctl.d/coredump.conf %dir %{_sysconfdir}/sysctl.d +%dir %{_sysconfdir}/rsyslog.d /usr/lib/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/systemd-logind.conf +%config(noreplace) %{_sysconfdir}/systemd/systemd-journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf @@ -326,6 +337,7 @@ rm -rf %{buildroot} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf +%config(noreplace) %{_sysconfdir}/rsyslog.d/listen.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml @@ -370,22 +382,30 @@ rm -rf %{buildroot} /usr/lib/systemd/user %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/bash_completion.d -/etc/bash_completion.d/systemctl-bash-completion.sh +/etc/bash_completion.d/systemd-bash-completion.sh /etc/rpm/macros.systemd %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated +%dir /var/log/journal %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so +%{_libdir}/libsystemd-id128.so +%{_libdir}/libsystemd-journal.so %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h +%{_includedir}/systemd/sd-id128.h +%{_includedir}/systemd/sd-journal.h +%{_includedir}/systemd/sd-messages.h %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc +%{_libdir}/pkgconfig/libsystemd-id128.pc +%{_libdir}/pkgconfig/libsystemd-journal.pc %if %{build_plymouth} From 6604e39280ba967c4b8a00c9d317b5c643bbbd815f578d0336de28fe8ea059df Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 3 Feb 2012 09:26:59 +0000 Subject: [PATCH 084/221] Accepting request 102201 from Base:System - Ensure systemd show service status when started behind bootsplash (bnc#736225). - Disable core dump redirection to journal, not stable atm. - Update modules_on_boot.patch to not cause failed state for systemd-modules-load.service (bnc#741481). OBS-URL: https://build.opensuse.org/request/show/102201 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=86 --- bootsplash-quit.service | 1 + bootsplash-shutdown.service | 1 + bootsplash-startup.service | 1 + modules_on_boot.patch | 11 ++++++----- systemd-gtk.changes | 13 +++++++++++++ systemd.changes | 13 +++++++++++++ systemd.spec | 7 ++++++- 7 files changed, 41 insertions(+), 6 deletions(-) diff --git a/bootsplash-quit.service b/bootsplash-quit.service index 272deb89..2cbdf369 100644 --- a/bootsplash-quit.service +++ b/bootsplash-quit.service @@ -9,5 +9,6 @@ ConditionKernelCommandLine=vga [Service] ExecStart=/lib/systemd/systemd-bootsplash 5 +ExecStartPost=-/bin/kill -SIGRTMIN+21 1 Type=oneshot RemainAfterExit=true diff --git a/bootsplash-shutdown.service b/bootsplash-shutdown.service index 76d4344c..c1d4ed01 100644 --- a/bootsplash-shutdown.service +++ b/bootsplash-shutdown.service @@ -5,6 +5,7 @@ DefaultDependencies=no ConditionKernelCommandLine=splash=silent [Service] +ExecStartPre=-/bin/kill -SIGRTMIN+20 1 ExecStart=/lib/systemd/systemd-bootsplash 0 Type=oneshot RemainAfterExit=true diff --git a/bootsplash-startup.service b/bootsplash-startup.service index 9f70d06b..465b8bba 100644 --- a/bootsplash-startup.service +++ b/bootsplash-startup.service @@ -5,6 +5,7 @@ ConditionKernelCommandLine=splash=silent ConditionKernelCommandLine=vga [Service] +ExecStartPre=-/bin/kill -SIGRTMIN+20 1 ExecStart=/lib/systemd/systemd-bootsplash 0 Type=oneshot RemainAfterExit=true diff --git a/modules_on_boot.patch b/modules_on_boot.patch index 5158a716..9638b27c 100644 --- a/modules_on_boot.patch +++ b/modules_on_boot.patch @@ -21,7 +21,7 @@ Index: systemd-37/src/modules-load.c if (argc > 1) { log_error("This program takes no argument."); -@@ -126,6 +129,42 @@ int main(int argc, char *argv[]) { +@@ -126,6 +129,43 @@ int main(int argc, char *argv[]) { } strv_free(files); @@ -29,9 +29,10 @@ Index: systemd-37/src/modules-load.c + if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, + "MODULES_LOADED_ON_BOOT", &modules_on_boot, + NULL)) < 0) { -+ if (r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); -+ } ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); ++ } else ++ r = EXIT_SUCCESS; + if (modules_on_boot) { + char **modules = strv_split(modules_on_boot,WHITESPACE); + char **module; @@ -64,7 +65,7 @@ Index: systemd-37/src/modules-load.c finish: if (n_arguments > 3) { -@@ -138,6 +177,9 @@ finish: +@@ -138,6 +178,9 @@ finish: } strv_free(arguments); diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 32be4c38..6929b332 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Tue Jan 31 13:40:51 CET 2012 - fcrozat@suse.com + +- Ensure systemd show service status when started behind bootsplash + (bnc#736225). +- Disable core dump redirection to journal, not stable atm. + +------------------------------------------------------------------- +Thu Jan 26 16:00:27 UTC 2012 - fcrozat@suse.com + +- Update modules_on_boot.patch to not cause failed state for + systemd-modules-load.service (bnc#741481). + ------------------------------------------------------------------- Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 32be4c38..6929b332 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Tue Jan 31 13:40:51 CET 2012 - fcrozat@suse.com + +- Ensure systemd show service status when started behind bootsplash + (bnc#736225). +- Disable core dump redirection to journal, not stable atm. + +------------------------------------------------------------------- +Thu Jan 26 16:00:27 UTC 2012 - fcrozat@suse.com + +- Update modules_on_boot.patch to not cause failed state for + systemd-modules-load.service (bnc#741481). + ------------------------------------------------------------------- Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 39c85882..1aba2128 100644 --- a/systemd.spec +++ b/systemd.spec @@ -225,6 +225,12 @@ ln -s /dev/null %{buildroot}/lib/systemd/system/earlyxdm.service ln -s systemd-sysctl.service %{buildroot}/lib/systemd/system/sysctl.service ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.service +# To avoid making life hard for Factory developers, don't package the +# kernel.core_pattern setting until systemd-coredump is a part of an actual +# systemd release and it's made clear how to get the core dumps out of the +# journal. +rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf + # Install rsyslog fragment mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/ install -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/rsyslog.d/ @@ -323,7 +329,6 @@ rm -rf %{buildroot} %dir /usr/lib/binfmt.d %dir %{_sysconfdir}/binfmt.d %dir /usr/lib/sysctl.d -/usr/lib/sysctl.d/coredump.conf %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/rsyslog.d /usr/lib/tmpfiles.d/*.conf From 6974c336927ff68cce6accfb08da425f411e1e91b3747f50b644fb25c0f3ec47 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 10 Feb 2012 16:20:20 +0000 Subject: [PATCH 085/221] Accepting request 103083 from Base:System - Update to version 40: + reason why a service failed is now exposed in the"Result" D-Bus property. + Rudimentary service watchdog support (not complete) + Improve bootcharts, by immediatly changing argv[0] after forking to to reflect which process will be executed. + Various bug fixes. - Add remote-fs-after-network.patch and update insserv patch: ensure remote-fs-pre.target is enabled and started before network mount points (bnc#744293). - Ensure journald doesn't prevent syslogs to read from /proc/kmsg. OBS-URL: https://build.opensuse.org/request/show/103083 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=87 --- ...ndencies-added-when-parsing-insserv..patch | 18 ++++- bootsplash-quit.service | 1 + bootsplash-shutdown.service | 2 + bootsplash-startup.service | 1 + remote-fs-after-network.patch | 74 +++++++++++++++++++ systemd-39.tar.xz | 3 - systemd-40.tar.xz | 3 + systemd-gtk.changes | 15 ++++ systemd-gtk.spec | 2 +- systemd.changes | 15 ++++ systemd.spec | 7 +- 11 files changed, 132 insertions(+), 9 deletions(-) create mode 100644 remote-fs-after-network.patch delete mode 100644 systemd-39.tar.xz create mode 100644 systemd-40.tar.xz diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch index fd4b2219..1a1ef4da 100644 --- a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch +++ b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -7,13 +7,23 @@ Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf src/service.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) -Index: systemd-39/src/service.c +Index: systemd-40/src/service.c =================================================================== ---- systemd-39.orig/src/service.c -+++ systemd-39/src/service.c -@@ -3111,22 +3111,22 @@ static void sysv_facility_in_insserv_con +--- systemd-40.orig/src/service.c ++++ systemd-40/src/service.c +@@ -3162,23 +3162,32 @@ static void sysv_facility_in_insserv_con + Unit *u; if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) continue; ++ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { ++ /* insert also a Wants dependency from remote-fs-pre on remote-fs */ ++ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET); ++ unit_add_dependency_by_name(u, UNIT_WANTS, ++ SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); ++ free (facility); ++ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); ++ } ++ if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) { - UnitDependency e; char *dep = NULL, *name, **j; diff --git a/bootsplash-quit.service b/bootsplash-quit.service index 2cbdf369..6fd9b0a1 100644 --- a/bootsplash-quit.service +++ b/bootsplash-quit.service @@ -4,6 +4,7 @@ After=xdm.service rc-local.service bootsplash-startup.service Before=getty@tty1.service DefaultDependencies=no Names=plymouth-quit-wait.service +ConditionFileIsExecutable=/sbin/splash ConditionKernelCommandLine=splash=silent ConditionKernelCommandLine=vga diff --git a/bootsplash-shutdown.service b/bootsplash-shutdown.service index c1d4ed01..a1a483ec 100644 --- a/bootsplash-shutdown.service +++ b/bootsplash-shutdown.service @@ -2,7 +2,9 @@ Description=Start bootsplash for shutdown/reboot Before=shutdown.service halt.service DefaultDependencies=no +ConditionFileIsExecutable=/sbin/splash ConditionKernelCommandLine=splash=silent +ConditionKernelCommandLine=vga [Service] ExecStartPre=-/bin/kill -SIGRTMIN+20 1 diff --git a/bootsplash-startup.service b/bootsplash-startup.service index 465b8bba..9d94d9ff 100644 --- a/bootsplash-startup.service +++ b/bootsplash-startup.service @@ -1,6 +1,7 @@ [Unit] Description=Start bootsplash DefaultDependencies=no +ConditionFileIsExecutable=/sbin/splash ConditionKernelCommandLine=splash=silent ConditionKernelCommandLine=vga diff --git a/remote-fs-after-network.patch b/remote-fs-after-network.patch new file mode 100644 index 00000000..e3cbb521 --- /dev/null +++ b/remote-fs-after-network.patch @@ -0,0 +1,74 @@ +From db1355b1c181a4b1ac277064918d7c794dfb6edd Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 7 Feb 2012 11:05:18 +0100 +Subject: [PATCH] mount: adjust dependencies for remote filesystems + +Currently remote mounts automatically get: + After=remote-fs-pre.target network.target + +remote-fs-pre.target is already After=network.target. Just make sure +remote-fs-pre.target is pulled in by remote-fs.target if any remote +filesystems are configured. +For the mount units it is then sufficient to get: + After=remote-fs-pre.target + +Later NetworkManager will hook its NM-wait-online.service into +remote-fs-pre.target.wants in order to remove the need for the administrator +to enable the service manually when he has any remote filesystems. + +https://bugzilla.redhat.com/show_bug.cgi?id=787314 +--- + src/mount.c | 20 ++++++++++++-------- + 1 files changed, 12 insertions(+), 8 deletions(-) + +diff --git a/src/mount.c b/src/mount.c +index 3411b73..0ae964b 100644 +--- a/src/mount.c ++++ b/src/mount.c +@@ -320,7 +320,7 @@ static bool needs_quota(MountParameters *p) { + } + + static int mount_add_fstab_links(Mount *m) { +- const char *target, *after = NULL, *after2 = NULL; ++ const char *target, *after, *tu_wants = NULL; + MountParameters *p; + Unit *tu; + int r; +@@ -350,23 +350,27 @@ static int mount_add_fstab_links(Mount *m) { + + if (mount_is_network(p)) { + target = SPECIAL_REMOTE_FS_TARGET; +- after = SPECIAL_REMOTE_FS_PRE_TARGET; +- after2 = SPECIAL_NETWORK_TARGET; ++ after = tu_wants = SPECIAL_REMOTE_FS_PRE_TARGET; + } else { + target = SPECIAL_LOCAL_FS_TARGET; + after = SPECIAL_LOCAL_FS_PRE_TARGET; + } + +- if ((r = manager_load_unit(UNIT(m)->manager, target, NULL, NULL, &tu)) < 0) ++ r = manager_load_unit(UNIT(m)->manager, target, NULL, NULL, &tu); ++ if (r < 0) + return r; + +- if (after) +- if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true)) < 0) ++ if (tu_wants) { ++ r = unit_add_dependency_by_name(tu, UNIT_WANTS, tu_wants, NULL, true); ++ if (r < 0) + return r; ++ } + +- if (after2) +- if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after2, NULL, true)) < 0) ++ if (after) { ++ r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true); ++ if (r < 0) + return r; ++ } + + if (automount) { + Unit *am; +-- +1.7.7 + diff --git a/systemd-39.tar.xz b/systemd-39.tar.xz deleted file mode 100644 index f8b5c292..00000000 --- a/systemd-39.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd053f97ab0ed4261ec44f247ec582566319339f523dbe79b79c68cfe5ad677f -size 890892 diff --git a/systemd-40.tar.xz b/systemd-40.tar.xz new file mode 100644 index 00000000..670d6da4 --- /dev/null +++ b/systemd-40.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f0c04e45e593c0903698f3ab3eb3e565d68de26a91858c470675a090a05cab5 +size 896004 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 6929b332..07d5a062 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com + +- Update to version 40: + + reason why a service failed is now exposed in the"Result" D-Bus + property. + + Rudimentary service watchdog support (not complete) + + Improve bootcharts, by immediatly changing argv[0] after + forking to to reflect which process will be executed. + + Various bug fixes. +- Add remote-fs-after-network.patch and update insserv patch: + ensure remote-fs-pre.target is enabled and started before network + mount points (bnc#744293). +- Ensure journald doesn't prevent syslogs to read from /proc/kmsg. + ------------------------------------------------------------------- Tue Jan 31 13:40:51 CET 2012 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 4a146aeb..6adbdc19 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -19,7 +19,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 39 +Version: 40 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel diff --git a/systemd.changes b/systemd.changes index 6929b332..07d5a062 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com + +- Update to version 40: + + reason why a service failed is now exposed in the"Result" D-Bus + property. + + Rudimentary service watchdog support (not complete) + + Improve bootcharts, by immediatly changing argv[0] after + forking to to reflect which process will be executed. + + Various bug fixes. +- Add remote-fs-after-network.patch and update insserv patch: + ensure remote-fs-pre.target is enabled and started before network + mount points (bnc#744293). +- Ensure journald doesn't prevent syslogs to read from /proc/kmsg. + ------------------------------------------------------------------- Tue Jan 31 13:40:51 CET 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 1aba2128..39a8f560 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 39 +Version: 40 Release: 0 Summary: A System and Session Manager License: GPL-2.0+ @@ -90,6 +90,7 @@ Patch36: sysctl-modules.patch # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. Patch21: no-tmpfs-fsck.patch +Patch37: remote-fs-after-network.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -150,6 +151,7 @@ Plymouth integration for systemd %patch31 -p1 %patch33 -p1 %patch36 -p1 +%patch37 -p1 %build autoreconf -fiv @@ -231,6 +233,9 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se # journal. rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf +# Let rsyslog read from /proc/kmsg for now +sed -i -e 's/\#ImportKernel=yes/ImportKernel=no/' %{buildroot}%{_sysconfdir}/systemd/systemd-journald.conf + # Install rsyslog fragment mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/ install -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/rsyslog.d/ From 4980fb3c01b18d2c0fece96d841bbb2f61f182591eedd600c32b5d877f630989 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 16 Feb 2012 15:24:03 +0000 Subject: [PATCH 086/221] Accepting request 104941 from Base:System - Update to version 42: + Various bug fixes + Watchdog support for supervising services is now usable + Service start rate limiting is now configurable and can be turned off per service. + New CanReboot(), CanPowerOff() bus calls in systemd-logind - Dropped fix-kmod-build.patch, fix-message-after-chkconfig.patch, is-enabled-non-existing-service.patch (merged upstream) - Add libxslt1 / docbook-xsl-stylesheets as BuildRequires for manpage generation - Update to version 41: + systemd binary is now installed in /lib/systemd (symlink for /bin/systemd is available now) + kernel modules are now loaded through libkmod + Watchdog support is now useful (not complete) + new kernel command line available to set system wide environment variable: systemd.setenv + journald capabilities set is now limited + SIGPIPE is ignored by default. This can be disabled with IgnoreSIGPIPE=no in unit files. - Add fix-kmod-build.patch: fix build with libkmod - Drop remote-fs-after-network.patch (merged upstream) - Add dm-lvm-after-local-fs-pre-target.patch: ensure md / lvm /dmraid is started before mounting partitions, if fsck was disabled for them (bnc#733283). - Update lsb-header patch to correctly disable heuristic if X-Systemd-RemainAfterExit is specified (whatever its value) - Add fix-message-after-chkconfig.patch: don't complain if only sysv services are called in systemctl. OBS-URL: https://build.opensuse.org/request/show/104941 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=88 --- ...ndencies-added-when-parsing-insserv..patch | 12 ++- ...sv-service-with-detected-pid-as-Rema.patch | 15 ++-- dm-lvm-after-local-fs-pre-target.patch | 9 +++ modules_on_boot.patch | 75 ++++++++++--------- new-lsb-headers.patch | 37 ++++++--- remote-fs-after-network.patch | 74 ------------------ systemd-40.tar.xz | 3 - systemd-42.tar.xz | 3 + systemd-gtk.changes | 39 ++++++++++ systemd-gtk.spec | 3 +- systemd.changes | 39 ++++++++++ systemd.spec | 14 +++- 12 files changed, 176 insertions(+), 147 deletions(-) create mode 100644 dm-lvm-after-local-fs-pre-target.patch delete mode 100644 remote-fs-after-network.patch delete mode 100644 systemd-40.tar.xz create mode 100644 systemd-42.tar.xz diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch index 1a1ef4da..67197942 100644 --- a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch +++ b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -7,23 +7,21 @@ Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf src/service.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) -Index: systemd-40/src/service.c +Index: systemd-41/src/service.c =================================================================== ---- systemd-40.orig/src/service.c -+++ systemd-40/src/service.c -@@ -3162,23 +3162,32 @@ static void sysv_facility_in_insserv_con +--- systemd-41.orig/src/service.c ++++ systemd-41/src/service.c +@@ -3210,23 +3210,30 @@ static void sysv_facility_in_insserv_con Unit *u; if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) continue; + if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { + /* insert also a Wants dependency from remote-fs-pre on remote-fs */ + u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET); -+ unit_add_dependency_by_name(u, UNIT_WANTS, -+ SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); ++ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); + free (facility); + facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); + } -+ if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) { - UnitDependency e; char *dep = NULL, *name, **j; diff --git a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch index a71df5c4..3f1770f1 100644 --- a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch +++ b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch @@ -12,15 +12,13 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 src/service.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) -diff --git a/src/service.c b/src/service.c -index 6b7064a..eb2699c 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -2012,9 +2012,15 @@ static void service_enter_running(Service *s, bool success) { - main_pid_ok = main_pid_good(s); +Index: systemd-37/src/service.c +=================================================================== +--- systemd-37.orig/src/service.c ++++ systemd-37/src/service.c +@@ -2014,8 +2014,13 @@ static void service_enter_running(Servic cgroup_ok = cgroup_good(s); -+ if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && - (s->bus_name_good || s->type != SERVICE_DBUS)) + (s->bus_name_good || s->type != SERVICE_DBUS)) { @@ -33,6 +31,3 @@ index 6b7064a..eb2699c 100644 else if (s->remain_after_exit) service_set_state(s, SERVICE_EXITED); else --- -1.7.3.4 - diff --git a/dm-lvm-after-local-fs-pre-target.patch b/dm-lvm-after-local-fs-pre-target.patch new file mode 100644 index 00000000..2e4c0463 --- /dev/null +++ b/dm-lvm-after-local-fs-pre-target.patch @@ -0,0 +1,9 @@ +Index: systemd-37/units/local-fs-pre.target +=================================================================== +--- systemd-37.orig/units/local-fs-pre.target ++++ systemd-37/units/local-fs-pre.target +@@ -9,3 +9,4 @@ + + [Unit] + Description=Local File Systems (Pre) ++After=md.service lvm.service dmraid.service diff --git a/modules_on_boot.patch b/modules_on_boot.patch index 9638b27c..739c2f92 100644 --- a/modules_on_boot.patch +++ b/modules_on_boot.patch @@ -7,25 +7,26 @@ Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) -Index: systemd-37/src/modules-load.c +Index: systemd-41/src/modules-load.c =================================================================== ---- systemd-37.orig/src/modules-load.c -+++ systemd-37/src/modules-load.c -@@ -36,6 +36,9 @@ int main(int argc, char *argv[]) { - char **arguments = NULL; - unsigned n_arguments = 0, n_allocated = 0; +--- systemd-41.orig/src/modules-load.c ++++ systemd-41/src/modules-load.c +@@ -44,6 +44,9 @@ static void systemd_kmod_log(void *data, + int main(int argc, char *argv[]) { + int r = EXIT_FAILURE; char **files, **fn; +#if defined(TARGET_SUSE) + char *modules_on_boot = NULL; +#endif + struct kmod_ctx *ctx; + const int probe_flags = KMOD_PROBE_APPLY_BLACKLIST|KMOD_PROBE_IGNORE_LOADED; - if (argc > 1) { - log_error("This program takes no argument."); -@@ -126,6 +129,43 @@ int main(int argc, char *argv[]) { +@@ -141,9 +144,58 @@ int main(int argc, char *argv[]) { + + fclose(f); } - - strv_free(files); +#if defined(TARGET_SUSE) ++ log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT"); + if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, + "MODULES_LOADED_ON_BOOT", &modules_on_boot, + NULL)) < 0) { @@ -36,49 +37,53 @@ Index: systemd-37/src/modules-load.c + if (modules_on_boot) { + char **modules = strv_split(modules_on_boot,WHITESPACE); + char **module; ++ struct kmod_list *itr, *modlist = NULL; ++ int err; ++ + if (modules) { + STRV_FOREACH(module, modules) { -+ if (n_arguments >= n_allocated) { -+ char **a; -+ unsigned m; ++ err = kmod_module_new_from_lookup(ctx, *module, &modlist); ++ if (err < 0) { ++ log_error("Failed to lookup alias '%s'", *module); ++ r = EXIT_FAILURE; ++ continue; ++ } ++ kmod_list_foreach(itr, modlist) { ++ struct kmod_module *mod = kmod_module_get_module(itr); ++ err = kmod_module_probe_insert_module(mod, probe_flags, ++ NULL, NULL, NULL, NULL); + -+ m = MAX(16U, n_arguments*2); -+ -+ if (!(a = realloc(arguments, sizeof(char*) * (m+1)))) { -+ log_error("Failed to increase module array size."); -+ free(*module); ++ if (err == 0) ++ log_info("Inserted module '%s'", kmod_module_get_name(mod)); ++ else if (err == KMOD_PROBE_APPLY_BLACKLIST) ++ log_info("Module '%s' is blacklisted", kmod_module_get_name(mod)); ++ else { ++ log_error("Failed to insert '%s': %s", kmod_module_get_name(mod), ++ strerror(-err)); + r = EXIT_FAILURE; -+ continue; + } + -+ arguments = a; -+ n_allocated = m; ++ kmod_module_unref(mod); + } -+ log_debug("adding module: %s\n", *module); -+ arguments[n_arguments++] = strdup(*module); + ++ kmod_module_unref_list(modlist); + } + } + strv_free(modules); + } +#endif -+ finish: - - if (n_arguments > 3) { -@@ -138,6 +178,9 @@ finish: - } - - strv_free(arguments); + strv_free(files); +#if defined(TARGET_SUSE) + free(modules_on_boot); +#endif + kmod_unref(ctx); return r; - } -Index: systemd-37/units/systemd-modules-load.service.in +Index: systemd-41/units/systemd-modules-load.service.in =================================================================== ---- systemd-37.orig/units/systemd-modules-load.service.in -+++ systemd-37/units/systemd-modules-load.service.in +--- systemd-41.orig/units/systemd-modules-load.service.in ++++ systemd-41/units/systemd-modules-load.service.in @@ -11,6 +11,7 @@ DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service diff --git a/new-lsb-headers.patch b/new-lsb-headers.patch index 7565c00f..fbf46ede 100644 --- a/new-lsb-headers.patch +++ b/new-lsb-headers.patch @@ -1,8 +1,8 @@ -Index: systemd-37/src/service.c +Index: systemd-41/src/service.c =================================================================== ---- systemd-37.orig/src/service.c -+++ systemd-37/src/service.c -@@ -116,6 +116,7 @@ static void service_init(Unit *u) { +--- systemd-41.orig/src/service.c ++++ systemd-41/src/service.c +@@ -119,6 +119,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; s->sysv_start_priority_from_rcnd = -1; @@ -10,7 +10,7 @@ Index: systemd-37/src/service.c #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -805,6 +806,31 @@ static int service_load_sysv_path(Servic +@@ -861,6 +862,34 @@ static int service_load_sysv_path(Servic } else state = LSB; @@ -33,16 +33,29 @@ Index: systemd-37/src/service.c + free(s->pid_file); + s->pid_file = fn; + s->sysv_remain_after_exit_heuristic = false; ++ s->remain_after_exit = false; + } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) { + char *j; + + state = LSB; -+ if ((j = strstrip(t+26)) && *j) -+ s->sysv_remain_after_exit_heuristic = !parse_boolean(j); ++ if ((j = strstrip(t+26)) && *j) { ++ s->remain_after_exit = parse_boolean(j); ++ s->sysv_remain_after_exit_heuristic = false; ++ } } } } -@@ -2017,7 +2043,7 @@ static void service_enter_running(Servic +@@ -891,7 +920,8 @@ static int service_load_sysv_path(Servic + + /* Special setting for all SysV services */ + s->type = SERVICE_FORKING; +- s->remain_after_exit = !s->pid_file; ++ if (s->sysv_remain_after_exit_heuristic) ++ s->remain_after_exit = !s->pid_file; + s->guess_main_pid = false; + s->restart = SERVICE_RESTART_NO; + s->exec_context.ignore_sigpipe = false; +@@ -2030,7 +2060,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -51,11 +64,11 @@ Index: systemd-37/src/service.c s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); -Index: systemd-37/src/service.h +Index: systemd-41/src/service.h =================================================================== ---- systemd-37.orig/src/service.h -+++ systemd-37/src/service.h -@@ -139,6 +139,7 @@ struct Service { +--- systemd-41.orig/src/service.h ++++ systemd-41/src/service.h +@@ -157,6 +157,7 @@ struct Service { #ifdef HAVE_SYSV_COMPAT bool sysv_has_lsb:1; bool sysv_enabled:1; diff --git a/remote-fs-after-network.patch b/remote-fs-after-network.patch deleted file mode 100644 index e3cbb521..00000000 --- a/remote-fs-after-network.patch +++ /dev/null @@ -1,74 +0,0 @@ -From db1355b1c181a4b1ac277064918d7c794dfb6edd Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 7 Feb 2012 11:05:18 +0100 -Subject: [PATCH] mount: adjust dependencies for remote filesystems - -Currently remote mounts automatically get: - After=remote-fs-pre.target network.target - -remote-fs-pre.target is already After=network.target. Just make sure -remote-fs-pre.target is pulled in by remote-fs.target if any remote -filesystems are configured. -For the mount units it is then sufficient to get: - After=remote-fs-pre.target - -Later NetworkManager will hook its NM-wait-online.service into -remote-fs-pre.target.wants in order to remove the need for the administrator -to enable the service manually when he has any remote filesystems. - -https://bugzilla.redhat.com/show_bug.cgi?id=787314 ---- - src/mount.c | 20 ++++++++++++-------- - 1 files changed, 12 insertions(+), 8 deletions(-) - -diff --git a/src/mount.c b/src/mount.c -index 3411b73..0ae964b 100644 ---- a/src/mount.c -+++ b/src/mount.c -@@ -320,7 +320,7 @@ static bool needs_quota(MountParameters *p) { - } - - static int mount_add_fstab_links(Mount *m) { -- const char *target, *after = NULL, *after2 = NULL; -+ const char *target, *after, *tu_wants = NULL; - MountParameters *p; - Unit *tu; - int r; -@@ -350,23 +350,27 @@ static int mount_add_fstab_links(Mount *m) { - - if (mount_is_network(p)) { - target = SPECIAL_REMOTE_FS_TARGET; -- after = SPECIAL_REMOTE_FS_PRE_TARGET; -- after2 = SPECIAL_NETWORK_TARGET; -+ after = tu_wants = SPECIAL_REMOTE_FS_PRE_TARGET; - } else { - target = SPECIAL_LOCAL_FS_TARGET; - after = SPECIAL_LOCAL_FS_PRE_TARGET; - } - -- if ((r = manager_load_unit(UNIT(m)->manager, target, NULL, NULL, &tu)) < 0) -+ r = manager_load_unit(UNIT(m)->manager, target, NULL, NULL, &tu); -+ if (r < 0) - return r; - -- if (after) -- if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true)) < 0) -+ if (tu_wants) { -+ r = unit_add_dependency_by_name(tu, UNIT_WANTS, tu_wants, NULL, true); -+ if (r < 0) - return r; -+ } - -- if (after2) -- if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after2, NULL, true)) < 0) -+ if (after) { -+ r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true); -+ if (r < 0) - return r; -+ } - - if (automount) { - Unit *am; --- -1.7.7 - diff --git a/systemd-40.tar.xz b/systemd-40.tar.xz deleted file mode 100644 index 670d6da4..00000000 --- a/systemd-40.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5f0c04e45e593c0903698f3ab3eb3e565d68de26a91858c470675a090a05cab5 -size 896004 diff --git a/systemd-42.tar.xz b/systemd-42.tar.xz new file mode 100644 index 00000000..b54e5fff --- /dev/null +++ b/systemd-42.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dc107d488d823eb2203b6f1567096749ea37c1cf9022a6b0507ec07691e0ec2 +size 854808 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 07d5a062..e1d0ade6 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com + +- Update to version 42: + + Various bug fixes + + Watchdog support for supervising services is now usable + + Service start rate limiting is now configurable and can be + turned off per service. + + New CanReboot(), CanPowerOff() bus calls in systemd-logind +- Dropped fix-kmod-build.patch, fix-message-after-chkconfig.patch, + is-enabled-non-existing-service.patch (merged upstream) +- Add libxslt1 / docbook-xsl-stylesheets as BuildRequires for + manpage generation + +------------------------------------------------------------------- +Thu Feb 9 16:19:38 UTC 2012 - fcrozat@suse.com + +- Update to version 41: + + systemd binary is now installed in /lib/systemd (symlink for + /bin/systemd is available now) + + kernel modules are now loaded through libkmod + + Watchdog support is now useful (not complete) + + new kernel command line available to set system wide + environment variable: systemd.setenv + + journald capabilities set is now limited + + SIGPIPE is ignored by default. This can be disabled with + IgnoreSIGPIPE=no in unit files. +- Add fix-kmod-build.patch: fix build with libkmod +- Drop remote-fs-after-network.patch (merged upstream) +- Add dm-lvm-after-local-fs-pre-target.patch: ensure md / lvm + /dmraid is started before mounting partitions, if fsck was + disabled for them (bnc#733283). +- Update lsb-header patch to correctly disable heuristic if + X-Systemd-RemainAfterExit is specified (whatever its value) +- Add fix-message-after-chkconfig.patch: don't complain if only + sysv services are called in systemctl. +- Add is-enabled-non-existing-service.patch: fix error message when + running is-enabled on non-existing service. + ------------------------------------------------------------------- Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 6adbdc19..217ce042 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -16,10 +16,9 @@ # - Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 40 +Version: 42 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel diff --git a/systemd.changes b/systemd.changes index 07d5a062..e1d0ade6 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com + +- Update to version 42: + + Various bug fixes + + Watchdog support for supervising services is now usable + + Service start rate limiting is now configurable and can be + turned off per service. + + New CanReboot(), CanPowerOff() bus calls in systemd-logind +- Dropped fix-kmod-build.patch, fix-message-after-chkconfig.patch, + is-enabled-non-existing-service.patch (merged upstream) +- Add libxslt1 / docbook-xsl-stylesheets as BuildRequires for + manpage generation + +------------------------------------------------------------------- +Thu Feb 9 16:19:38 UTC 2012 - fcrozat@suse.com + +- Update to version 41: + + systemd binary is now installed in /lib/systemd (symlink for + /bin/systemd is available now) + + kernel modules are now loaded through libkmod + + Watchdog support is now useful (not complete) + + new kernel command line available to set system wide + environment variable: systemd.setenv + + journald capabilities set is now limited + + SIGPIPE is ignored by default. This can be disabled with + IgnoreSIGPIPE=no in unit files. +- Add fix-kmod-build.patch: fix build with libkmod +- Drop remote-fs-after-network.patch (merged upstream) +- Add dm-lvm-after-local-fs-pre-target.patch: ensure md / lvm + /dmraid is started before mounting partitions, if fsck was + disabled for them (bnc#733283). +- Update lsb-header patch to correctly disable heuristic if + X-Systemd-RemainAfterExit is specified (whatever its value) +- Add fix-message-after-chkconfig.patch: don't complain if only + sysv services are called in systemctl. +- Add is-enabled-non-existing-service.patch: fix error message when + running is-enabled on non-existing service. + ------------------------------------------------------------------- Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 39a8f560..2d84f46e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -22,7 +22,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 40 +Version: 42 Release: 0 Summary: A System and Session Manager License: GPL-2.0+ @@ -30,16 +30,19 @@ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel BuildRequires: dbus-1-devel +BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gperf BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel BuildRequires: libcryptsetup-devel +BuildRequires: libkmod-devel BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libtool BuildRequires: libudev-devel +BuildRequires: libxslt1 BuildRequires: pam-devel BuildRequires: pkg-config BuildRequires: tcpd-devel @@ -84,13 +87,13 @@ Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch Patch31: lock-opensuse.patch Patch33: crypt-loop-file.patch Patch36: sysctl-modules.patch +Patch38: dm-lvm-after-local-fs-pre-target.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. Patch21: no-tmpfs-fsck.patch -Patch37: remote-fs-after-network.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -151,7 +154,7 @@ Plymouth integration for systemd %patch31 -p1 %patch33 -p1 %patch36 -p1 -%patch37 -p1 +%patch38 -p1 %build autoreconf -fiv @@ -164,6 +167,7 @@ export V=1 --docdir=%{_docdir}/systemd \ --with-rootprefix= \ --with-pamlibdir=/%{_lib}/security \ + --enable-split-usr \ --disable-gtk \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -189,7 +193,8 @@ ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/ -ln -s ../bin/systemd %{buildroot}/sbin/init +ln -s ../lib/systemd/systemd %{buildroot}/bin/systemd +ln -s ../lib/systemd/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt ln -s ../bin/systemctl %{buildroot}/sbin/shutdown @@ -388,6 +393,7 @@ rm -rf %{buildroot} %dir /lib/systemd /lib/systemd/system /lib/systemd/system-generators +/lib/systemd/systemd %dir /usr/lib/systemd /usr/lib/systemd/user %dir %{_sysconfdir}/systemd From 996a97b28d4091ad660b6330439dece5d14b43d5e13049e268f68689fc2c802b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 21 Feb 2012 06:32:50 +0000 Subject: [PATCH 087/221] Accepting request 106010 from Base:System - Use pkgconfig symbols for BuildRequires and specify version - Add missing kmod BuildRequires for systemd-gtk (forwarded request 105839 from jengelh) OBS-URL: https://build.opensuse.org/request/show/106010 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=89 --- bootsplash-quit.service | 15 ------------ bootsplash-shutdown.service | 13 ----------- bootsplash-startup.service | 12 ---------- systemd-bootsplash | 21 ----------------- systemd-gtk.changes | 6 +++++ systemd-gtk.spec | 23 ++++++++++--------- systemd.changes | 12 ++++++++++ systemd.spec | 46 ++++++++----------------------------- 8 files changed, 39 insertions(+), 109 deletions(-) delete mode 100644 bootsplash-quit.service delete mode 100644 bootsplash-shutdown.service delete mode 100644 bootsplash-startup.service delete mode 100644 systemd-bootsplash diff --git a/bootsplash-quit.service b/bootsplash-quit.service deleted file mode 100644 index 6fd9b0a1..00000000 --- a/bootsplash-quit.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Terminate bootsplash -After=xdm.service rc-local.service bootsplash-startup.service -Before=getty@tty1.service -DefaultDependencies=no -Names=plymouth-quit-wait.service -ConditionFileIsExecutable=/sbin/splash -ConditionKernelCommandLine=splash=silent -ConditionKernelCommandLine=vga - -[Service] -ExecStart=/lib/systemd/systemd-bootsplash 5 -ExecStartPost=-/bin/kill -SIGRTMIN+21 1 -Type=oneshot -RemainAfterExit=true diff --git a/bootsplash-shutdown.service b/bootsplash-shutdown.service deleted file mode 100644 index a1a483ec..00000000 --- a/bootsplash-shutdown.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Start bootsplash for shutdown/reboot -Before=shutdown.service halt.service -DefaultDependencies=no -ConditionFileIsExecutable=/sbin/splash -ConditionKernelCommandLine=splash=silent -ConditionKernelCommandLine=vga - -[Service] -ExecStartPre=-/bin/kill -SIGRTMIN+20 1 -ExecStart=/lib/systemd/systemd-bootsplash 0 -Type=oneshot -RemainAfterExit=true diff --git a/bootsplash-startup.service b/bootsplash-startup.service deleted file mode 100644 index 9d94d9ff..00000000 --- a/bootsplash-startup.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Start bootsplash -DefaultDependencies=no -ConditionFileIsExecutable=/sbin/splash -ConditionKernelCommandLine=splash=silent -ConditionKernelCommandLine=vga - -[Service] -ExecStartPre=-/bin/kill -SIGRTMIN+20 1 -ExecStart=/lib/systemd/systemd-bootsplash 0 -Type=oneshot -RemainAfterExit=true diff --git a/systemd-bootsplash b/systemd-bootsplash deleted file mode 100644 index 3cf8438d..00000000 --- a/systemd-bootsplash +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/bash -. /etc/rc.splash $1 -export RUNLEVEL=$1 -export PREVLEVEL=N -if [ "$1" == "5" ]; then - /bin/systemctl status --no-pager default.target | grep -q graphical.target - if [ $? -eq 0 ]; then - declare -i timeout - timeout=0 - console=`fgconsole` - while [ $console -eq 1 -a $timeout -lt 30 ] ; do - sleep 1 - timeout+=1 - console=`fgconsole` - done - fi - splashtrigger "rlreached $1" -else - splashtrigger "rlchange $1" - splashtrigger "coolo" -fi diff --git a/systemd-gtk.changes b/systemd-gtk.changes index e1d0ade6..16e4a504 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de + +- Use pkgconfig symbols for BuildRequires and specify version +- Add missing kmod BuildRequires for systemd-gtk + ------------------------------------------------------------------- Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 217ce042..7e026fa1 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -15,33 +15,34 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd Version: 42 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel -BuildRequires: dbus-1-devel -BuildRequires: glib2-devel BuildRequires: gperf -BuildRequires: gtk2-devel BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel -BuildRequires: libcryptsetup-devel -BuildRequires: libgee-devel -BuildRequires: libnotify-devel -BuildRequires: libselinux-devel -BuildRequires: libsepol-devel BuildRequires: libtool -BuildRequires: libudev-devel BuildRequires: pam-devel BuildRequires: pkg-config BuildRequires: tcpd-devel BuildRequires: udev BuildRequires: xz -BuildRequires: xz-devel +BuildRequires: pkgconfig(dbus-1) >= 1.5.2 +BuildRequires: pkgconfig(gee-1.0) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(glib-2.0) > 2.26 +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(libcryptsetup) +BuildRequires: pkgconfig(libkmod) >= 5 +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(libsepol) +BuildRequires: pkgconfig(udev) >= 172 Summary: Graphical front-end for systemd License: GPL-2.0+ Group: System/Base diff --git a/systemd.changes b/systemd.changes index e1d0ade6..7f6e8373 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de + +- Use pkgconfig symbols for BuildRequires and specify version + +------------------------------------------------------------------- +Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com + +- Enable Plymouth integration. + * Bootsplash related files will be moved to the bootsplash + package + ------------------------------------------------------------------- Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 2d84f46e..19bfe47b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -15,9 +15,6 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - -%define build_plymouth 0 - #don't require python, use recommends (bnc#716939) Name: systemd @@ -29,26 +26,26 @@ License: GPL-2.0+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel -BuildRequires: dbus-1-devel BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gperf BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel -BuildRequires: libcryptsetup-devel -BuildRequires: libkmod-devel -BuildRequires: libselinux-devel -BuildRequires: libsepol-devel BuildRequires: libtool -BuildRequires: libudev-devel BuildRequires: libxslt1 BuildRequires: pam-devel BuildRequires: pkg-config BuildRequires: tcpd-devel BuildRequires: udev BuildRequires: xz -BuildRequires: xz-devel +BuildRequires: pkgconfig(dbus-1) >= 1.3.2 +BuildRequires: pkgconfig(libcryptsetup) +BuildRequires: pkgconfig(libkmod) >= 5 +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(libsepol) +BuildRequires: pkgconfig(udev) >= 172 Requires: udev >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd @@ -65,10 +62,6 @@ Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf Source6: baselibs.conf -Source7: systemd-bootsplash -Source8: bootsplash-startup.service -Source9: bootsplash-quit.service -Source10: bootsplash-shutdown.service # Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away Source11: listen.conf Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch @@ -125,8 +118,6 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. -%if %{build_plymouth} - %package plymouth Summary: Plymouth support for systemd Group: System/Base @@ -135,7 +126,6 @@ Requires: plymouth %description plymouth Plymouth integration for systemd -%endif %prep %setup -q @@ -187,12 +177,6 @@ mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrate install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future #install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators -install -m755 %{S:7} %{buildroot}/lib/systemd/ -install -m644 %{S:8} %{S:9} %{S:10} %{buildroot}/lib/systemd/system/ -ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target.wants/ -ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/ -ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/ -ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/ ln -s ../lib/systemd/systemd %{buildroot}/bin/systemd ln -s ../lib/systemd/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot @@ -203,11 +187,8 @@ ln -s ../bin/systemctl %{buildroot}/sbin/telinit ln -s ../bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -%if !%{build_plymouth} -rm -f %{buildroot}/lib/systemd/system/plymouth-*.service -rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-*.service -rm -f %{buildroot}/lib/systemd/system/systemd-ask-password-plymouth.* -%endif +# Don't activate the plymouth-quit services in order to get a smooth transistion to the DM +rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-quit*.service # aliases for /etc/init.d/* ln -s /dev/null %{buildroot}/lib/systemd/system/cgroup.service ln -s systemd-tmpfiles-setup.service %{buildroot}/lib/systemd/system/cleanup.service @@ -248,10 +229,6 @@ install -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/rsyslog.d/ # Create the /var/log/journal directory to change the volatile journal to a persistent one mkdir -p %{buildroot}/var/log/journal -%if %{build_plymouth} -(cd %{buildroot} && find . -name '*plymouth*') > files.plymouth -%endif - %fdupes $RPM_BUILD_ROOT %post @@ -367,12 +344,10 @@ rm -rf %{buildroot} %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/systemd -%if %{build_plymouth} # Packaged in plymouth subpackage %exclude /lib/systemd/system/plymouth-*.service %exclude /lib/systemd/system/*.wants/plymouth-*.service %exclude /lib/systemd/system/systemd-ask-password-plymouth.* -%endif # Packaged in gtk subpackage %exclude %{_mandir}/man1/systemadm.1* # Packaged in sysvinit subpackage @@ -423,14 +398,11 @@ rm -rf %{buildroot} %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc -%if %{build_plymouth} - %files plymouth %defattr(-,root,root,-) /lib/systemd/system/plymouth-*.service /lib/systemd/system/*.wants/plymouth-*.service /lib/systemd/system/systemd-ask-password-plymouth.* -%endif %files sysvinit %defattr(-,root,root,-) From 3fcc55196d094385c9dd3a4ce79d32830567ac7e34f7fc7cb7f19fcb550e6151 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 7 Mar 2012 19:10:29 +0000 Subject: [PATCH 088/221] Accepting request 106439 from Base:System Added a patch to correct the path to the plymouth binaries (changed to /usr/...) and also to make the two plymouth-quit*.services conflicting with the graphical.target. This would quit plymouth when running in runlevel 3 (non-graphical), but leaves the killing of plymouth up to the displaymanager when running in the graphical target. (forwarded request 106382 from tittiatcoke) OBS-URL: https://build.opensuse.org/request/show/106439 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=90 --- correct_plymouth_paths_and_conflicts.patch | 90 ++++++++++++++++++++++ listen.conf | 1 - systemd-42.tar.xz | 3 - systemd-43.tar.xz | 3 + systemd-gtk.changes | 24 +++++- systemd-gtk.spec | 3 +- systemd.changes | 16 ++++ systemd.spec | 19 ++--- 8 files changed, 140 insertions(+), 19 deletions(-) create mode 100644 correct_plymouth_paths_and_conflicts.patch delete mode 100644 listen.conf delete mode 100644 systemd-42.tar.xz create mode 100644 systemd-43.tar.xz diff --git a/correct_plymouth_paths_and_conflicts.patch b/correct_plymouth_paths_and_conflicts.patch new file mode 100644 index 00000000..b6635875 --- /dev/null +++ b/correct_plymouth_paths_and_conflicts.patch @@ -0,0 +1,90 @@ +--- systemd-43/units/plymouth-halt.service 2012-02-15 04:27:59.626029851 +0100 ++++ new/units/plymouth-halt.service 2012-02-21 18:28:16.225983153 +0100 +@@ -13,6 +13,6 @@ + ConditionKernelCommandLine=!plymouth.enable=0 + + [Service] +-ExecStart=/sbin/plymouthd --mode=shutdown +-ExecStartPost=-/bin/plymouth --show-splash ++ExecStart=/usr/sbin/plymouthd --mode=shutdown ++ExecStartPost=-/usr/bin/plymouth --show-splash + Type=forking +--- systemd-43/units/plymouth-kexec.service 2012-02-15 04:27:59.452029843 +0100 ++++ new/units/plymouth-kexec.service 2012-02-21 18:28:36.056981567 +0100 +@@ -13,6 +13,6 @@ + ConditionKernelCommandLine=!plymouth.enable=0 + + [Service] +-ExecStart=/sbin/plymouthd --mode=shutdown +-ExecStartPost=-/bin/plymouth --show-splash ++ExecStart=/usr/sbin/plymouthd --mode=shutdown ++ExecStartPost=-/usr/bin/plymouth --show-splash + Type=forking +--- systemd-43/units/plymouth-poweroff.service 2012-02-15 04:28:00.144029876 +0100 ++++ new/units/plymouth-poweroff.service 2012-02-21 18:28:45.495981246 +0100 +@@ -13,6 +13,6 @@ + ConditionKernelCommandLine=!plymouth.enable=0 + + [Service] +-ExecStart=/sbin/plymouthd --mode=shutdown +-ExecStartPost=-/bin/plymouth --show-splash ++ExecStart=/usr/sbin/plymouthd --mode=shutdown ++ExecStartPost=-/usr/bin/plymouth --show-splash + Type=forking +--- systemd-43/units/plymouth-quit.service 2012-02-15 04:28:00.134029876 +0100 ++++ new/units/plymouth-quit.service 2012-02-21 18:29:00.855980323 +0100 +@@ -8,8 +8,9 @@ + [Unit] + Description=Terminate Plymouth Boot Screen + After=rc-local.service plymouth-start.service ++Conflicts=graphical.target + + [Service] +-ExecStart=-/bin/plymouth quit ++ExecStart=-/usr/bin/plymouth quit + Type=oneshot + TimeoutSec=20 +--- systemd-43/units/plymouth-quit-wait.service 2012-02-15 04:27:59.894029864 +0100 ++++ new/units/plymouth-quit-wait.service 2012-02-21 18:29:14.904979438 +0100 +@@ -8,8 +8,9 @@ + [Unit] + Description=Wait for Plymouth Boot Screen to Quit + After=rc-local.service plymouth-start.service ++Conflicts=graphical.target + + [Service] +-ExecStart=-/bin/plymouth --wait ++ExecStart=-/usr/bin/plymouth --wait + Type=oneshot + TimeoutSec=20 +--- systemd-43/units/plymouth-read-write.service 2012-02-15 04:27:59.457029843 +0100 ++++ new/units/plymouth-read-write.service 2012-02-21 18:29:29.439978464 +0100 +@@ -12,5 +12,5 @@ + Before=sysinit.target + + [Service] +-ExecStart=-/bin/plymouth update-root-fs --read-write ++ExecStart=-/usr/bin/plymouth update-root-fs --read-write + Type=oneshot +--- systemd-43/units/plymouth-reboot.service 2012-02-15 04:28:00.149029877 +0100 ++++ new/units/plymouth-reboot.service 2012-02-21 18:29:43.718977613 +0100 +@@ -13,6 +13,6 @@ + ConditionKernelCommandLine=!plymouth.enable=0 + + [Service] +-ExecStart=/sbin/plymouthd --mode=shutdown +-ExecStartPost=-/bin/plymouth --show-splash ++ExecStart=/usr/sbin/plymouthd --mode=shutdown ++ExecStartPost=-/usr/bin/plymouth --show-splash + Type=forking +--- systemd-43/units/plymouth-start.service 2012-02-15 04:28:00.174029878 +0100 ++++ new/units/plymouth-start.service 2012-02-21 18:30:01.994976517 +0100 +@@ -17,6 +17,6 @@ + ConditionKernelCommandLine=!plymouth.enable=0 + + [Service] +-ExecStart=/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid +-ExecStartPost=-/bin/plymouth --show-splash ++ExecStart=/usr/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid ++ExecStartPost=-/usr/bin/plymouth --show-splash + Type=forking diff --git a/listen.conf b/listen.conf deleted file mode 100644 index 0abbb418..00000000 --- a/listen.conf +++ /dev/null @@ -1 +0,0 @@ -$SystemLogSocketName /run/systemd/journal/syslog diff --git a/systemd-42.tar.xz b/systemd-42.tar.xz deleted file mode 100644 index b54e5fff..00000000 --- a/systemd-42.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5dc107d488d823eb2203b6f1567096749ea37c1cf9022a6b0507ec07691e0ec2 -size 854808 diff --git a/systemd-43.tar.xz b/systemd-43.tar.xz new file mode 100644 index 00000000..ba1c51e9 --- /dev/null +++ b/systemd-43.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3070e48e43bc0811fa8da5ba4832a11dac73b1625db94d42d4c15dc279335dd7 +size 852432 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 16e4a504..65182444 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,8 +1,30 @@ +------------------------------------------------------------------- +Tue Feb 21 08:58:31 UTC 2012 - fcrozat@suse.com + +- Remove rsyslog listen.conf, handled directly by rsyslog now + (bnc#747871). + +------------------------------------------------------------------- +Mon Feb 20 13:33:45 UTC 2012 - fcrozat@suse.com + +- Update to version 43: + + requires /etc/os-release, support for /etc/SuSE-release is no + longer present. + + Track class of PAM logins to distinguish greeters from normal + user logins. + + Various bug fixes. + ------------------------------------------------------------------- Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de - Use pkgconfig symbols for BuildRequires and specify version -- Add missing kmod BuildRequires for systemd-gtk + +------------------------------------------------------------------- +Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com + +- Enable Plymouth integration. + * Bootsplash related files will be moved to the bootsplash + package ------------------------------------------------------------------- Mon Feb 13 12:11:17 UTC 2012 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 7e026fa1..5b46113e 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -15,9 +15,10 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 42 +Version: 43 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel diff --git a/systemd.changes b/systemd.changes index 7f6e8373..65182444 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Feb 21 08:58:31 UTC 2012 - fcrozat@suse.com + +- Remove rsyslog listen.conf, handled directly by rsyslog now + (bnc#747871). + +------------------------------------------------------------------- +Mon Feb 20 13:33:45 UTC 2012 - fcrozat@suse.com + +- Update to version 43: + + requires /etc/os-release, support for /etc/SuSE-release is no + longer present. + + Track class of PAM logins to distinguish greeters from normal + user logins. + + Various bug fixes. + ------------------------------------------------------------------- Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de diff --git a/systemd.spec b/systemd.spec index 19bfe47b..c455758c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -15,11 +15,12 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + #don't require python, use recommends (bnc#716939) Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 42 +Version: 43 Release: 0 Summary: A System and Session Manager License: GPL-2.0+ @@ -46,12 +47,12 @@ BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libselinux) BuildRequires: pkgconfig(libsepol) BuildRequires: pkgconfig(udev) >= 172 -Requires: udev >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd -Requires: util-linux >= 2.19 Requires: pam-config >= 0.79-5 Requires: systemd-presets-branding +Requires: udev >= 172 +Requires: util-linux >= 2.19 Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 @@ -62,8 +63,6 @@ Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf Source6: baselibs.conf -# Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away -Source11: listen.conf Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -81,6 +80,7 @@ Patch31: lock-opensuse.patch Patch33: crypt-loop-file.patch Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch +Patch39: correct_plymouth_paths_and_conflicts.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -145,6 +145,7 @@ Plymouth integration for systemd %patch33 -p1 %patch36 -p1 %patch38 -p1 +%patch39 -p1 %build autoreconf -fiv @@ -187,8 +188,6 @@ ln -s ../bin/systemctl %{buildroot}/sbin/telinit ln -s ../bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# Don't activate the plymouth-quit services in order to get a smooth transistion to the DM -rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-quit*.service # aliases for /etc/init.d/* ln -s /dev/null %{buildroot}/lib/systemd/system/cgroup.service ln -s systemd-tmpfiles-setup.service %{buildroot}/lib/systemd/system/cleanup.service @@ -222,10 +221,6 @@ rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf # Let rsyslog read from /proc/kmsg for now sed -i -e 's/\#ImportKernel=yes/ImportKernel=no/' %{buildroot}%{_sysconfdir}/systemd/systemd-journald.conf -# Install rsyslog fragment -mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/ -install -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/rsyslog.d/ - # Create the /var/log/journal directory to change the volatile journal to a persistent one mkdir -p %{buildroot}/var/log/journal @@ -317,7 +312,6 @@ rm -rf %{buildroot} %dir %{_sysconfdir}/binfmt.d %dir /usr/lib/sysctl.d %dir %{_sysconfdir}/sysctl.d -%dir %{_sysconfdir}/rsyslog.d /usr/lib/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/systemd-logind.conf @@ -329,7 +323,6 @@ rm -rf %{buildroot} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf -%config(noreplace) %{_sysconfdir}/rsyslog.d/listen.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml From 6861897da1453c309213e6f55946a6022b3e9081ef3775fe15c12e359fff410a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 9 Mar 2012 20:28:31 +0000 Subject: [PATCH 089/221] Accepting request 108532 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/108532 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=91 --- systemd-gtk.changes | 8 ++++++++ systemd-journald-fix-endianess-bug.patch | 25 ++++++++++++++++++++++++ systemd.changes | 8 ++++++++ systemd.spec | 2 ++ 4 files changed, 43 insertions(+) create mode 100644 systemd-journald-fix-endianess-bug.patch diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 65182444..9b996461 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Feb 29 13:22:17 UTC 2012 - fcrozat@suse.com + +- Add systemd-journald-fix-endianess-bug.patch: fix journald not + starting on ppc architecture. +- Add correct_plymouth_paths_and_conflicts.patch: ensure plymouth + is correctly called and conflicts with bootsplash. + ------------------------------------------------------------------- Tue Feb 21 08:58:31 UTC 2012 - fcrozat@suse.com diff --git a/systemd-journald-fix-endianess-bug.patch b/systemd-journald-fix-endianess-bug.patch new file mode 100644 index 00000000..7cb48067 --- /dev/null +++ b/systemd-journald-fix-endianess-bug.patch @@ -0,0 +1,25 @@ +From 8dc6b88fd2dad113d7dab776d623d7b301e4b754 Mon Sep 17 00:00:00 2001 +From: Dirk Eibach +Date: Wed, 29 Feb 2012 12:45:46 +0100 +Subject: [PATCH] systemd-journald: fix endianess bug + +--- + src/journal/journal-file.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 20ca3f6..275caea 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -238,7 +238,7 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) + if (fstat(f->fd, &f->last_stat) < 0) + return -errno; + +- f->header->arena_size = new_size - htole64(f->header->arena_offset); ++ f->header->arena_size = htole64(new_size - le64toh(f->header->arena_offset)); + + return 0; + } +-- +1.7.7 + diff --git a/systemd.changes b/systemd.changes index 65182444..9b996461 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Feb 29 13:22:17 UTC 2012 - fcrozat@suse.com + +- Add systemd-journald-fix-endianess-bug.patch: fix journald not + starting on ppc architecture. +- Add correct_plymouth_paths_and_conflicts.patch: ensure plymouth + is correctly called and conflicts with bootsplash. + ------------------------------------------------------------------- Tue Feb 21 08:58:31 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index c455758c..6d6a0362 100644 --- a/systemd.spec +++ b/systemd.spec @@ -87,6 +87,7 @@ Patch39: correct_plymouth_paths_and_conflicts.patch # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. Patch21: no-tmpfs-fsck.patch +Patch40: systemd-journald-fix-endianess-bug.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -146,6 +147,7 @@ Plymouth integration for systemd %patch36 -p1 %patch38 -p1 %patch39 -p1 +%patch40 -p1 %build autoreconf -fiv From 1a31b163ba19a6d99dc210ea9175a4e78197f3dbcd0cb25e761f38e332554bcc Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 12 Mar 2012 19:17:08 +0000 Subject: [PATCH 090/221] Accepting request 108835 from Base:System - Add fix-c++-compat.patch: fix C++ compatibility error in header. OBS-URL: https://build.opensuse.org/request/show/108835 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=92 --- fix-c++-compat.patch | 25 +++++++++++++++++++++++++ systemd-gtk.changes | 5 +++++ systemd.changes | 5 +++++ systemd.spec | 2 ++ 4 files changed, 37 insertions(+) create mode 100644 fix-c++-compat.patch diff --git a/fix-c++-compat.patch b/fix-c++-compat.patch new file mode 100644 index 00000000..85f78d8d --- /dev/null +++ b/fix-c++-compat.patch @@ -0,0 +1,25 @@ +From e09a9a35a1fdb4e849e63bdaf47d936c272b5e82 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 5 Mar 2012 15:16:10 +0100 +Subject: [PATCH] sd-login: c++ compatibility + +--- + src/systemd/sd-login.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/systemd/sd-login.h b/src/systemd/sd-login.h +index 2f3c90c..6e99cfc 100644 +--- a/src/systemd/sd-login.h ++++ b/src/systemd/sd-login.h +@@ -94,7 +94,7 @@ int sd_session_get_service(const char *session, char **service); + int sd_session_get_type(const char *session, char **type); + + /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ +-int sd_session_get_class(const char *session, char **class); ++int sd_session_get_class(const char *session, char **clazz); + + /* Determine the X11 display of this session. */ + int sd_session_get_display(const char *session, char **display); +-- +1.7.7 + diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 9b996461..c065d07d 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com + +- Add fix-c++-compat.patch: fix C++ compatibility error in header. + ------------------------------------------------------------------- Wed Feb 29 13:22:17 UTC 2012 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 9b996461..c065d07d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com + +- Add fix-c++-compat.patch: fix C++ compatibility error in header. + ------------------------------------------------------------------- Wed Feb 29 13:22:17 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 6d6a0362..04f53eda 100644 --- a/systemd.spec +++ b/systemd.spec @@ -88,6 +88,7 @@ Patch39: correct_plymouth_paths_and_conflicts.patch # an exception will be silently removed with the next version update. Patch21: no-tmpfs-fsck.patch Patch40: systemd-journald-fix-endianess-bug.patch +Patch41: fix-c++-compat.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -148,6 +149,7 @@ Plymouth integration for systemd %patch38 -p1 %patch39 -p1 %patch40 -p1 +%patch41 -p1 %build autoreconf -fiv From 2222e2f7b59a565a2d24b1c26baf6f401b794d1b6c463662294e581550496100 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 20 Mar 2012 11:04:45 +0000 Subject: [PATCH 091/221] Accepting request 109922 from Base:System - Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix CVE-2012-1174 (bnc#752281). - Update to version 43: + Support optional initialization of the machine ID from the KVM or container configured UUID. + Support immediate reboots with "systemctl reboot -ff" + Show /etc/os-release data in systemd-analyze output + Many bugfixes for the journal, including endianess fixes and ensuring that disk space enforcement works + non-UTF8 strings are refused if used in configuration and unit files. + Register Mimo USB Screens as suitable for automatic seat configuration + Reorder configuration file lookup order. /etc now always overrides /run. + manpages for journal utilities. - Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, systemd-journald-fix-endianess-bug.patch. - Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). old: openSUSE:Factory/systemd new: Base:System/systemd rev NoneIndex: systemd-gtk.changes =================================================================== --- systemd-gtk.changes (revision 92) +++ systemd-gtk.changes (revision 260) @@ -1,4 +1,31 @@ ------------------------------------------------------------------- +Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com + +- Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix + CVE-2012-1174 (bnc#752281). + +------------------------------------------------------------------- +Fri Mar 16 09:21:54 UTC 2012 - fcrozat@suse.com + +- Update to version 43: + + Support optional initialization of the machine ID from the KVM + or container configured UUID. + + Support immediate reboots with "systemctl reboot -ff" + + Show /etc/os-release data in systemd-analyze output + + Many bugfixes for the journal, including endianess fixes and + ensuring that disk space enforcement works + + non-UTF8 strings are refused if used in configuration and unit + files. + + Register Mimo USB Screens as suitable for automatic seat + configuration + + Reorder configuration file lookup order. /etc now always + overrides /run. + + manpages for journal utilities. +- Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, + systemd-journald-fix-endianess-bug.patch. +- Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). + +------------------------------------------------------------------- Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com - Add fix-c++-compat.patch: fix C++ compatibility error in header. Index: systemd-gtk.spec =================================================================== --- systemd-gtk.spec (revision 92) +++ systemd-gtk.spec (revision 260) @@ -18,7 +18,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 43 +Version: 44 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel Index: systemd.changes =================================================================== --- systemd.changes (revision 92) +++ systemd.changes (revision 260) @@ -1,4 +1,31 @@ ------------------------------------------------------------------- +Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com + +- Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix + CVE-2012-1174 (bnc#752281). + +------------------------------------------------------------------- +Fri Mar 16 09:21:54 UTC 2012 - fcrozat@suse.com + +- Update to version 43: + + Support optional initialization of the machine ID from the KVM + or container configured UUID. + + Support immediate reboots with "systemctl reboot -ff" + + Show /etc/os-release data in systemd-analyze output + + Many bugfixes for the journal, including endianess fixes and + ensuring that disk space enforcement works + + non-UTF8 strings are refused if used in configuration and unit + files. + + Register Mimo USB Screens as suitable for automatic seat + configuration + + Reorder configuration file lookup order. /etc now always + overrides /run. + + manpages for journal utilities. +- Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, + systemd-journald-fix-endianess-bug.patch. +- Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). + +------------------------------------------------------------------- Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com - Add fix-c++-compat.patch: fix C++ compatibility error in header. Index: systemd.spec =================================================================== --- systemd.spec (revision 92) +++ systemd.spec (revision 260) @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 43 +Version: 44 Release: 0 Summary: A System and Session Manager License: GPL-2.0+ @@ -52,7 +52,7 @@ Requires: pam-config >= 0.79-5 Requires: systemd-presets-branding Requires: udev >= 172 -Requires: util-linux >= 2.19 +Requires: util-linux >= 2.21 Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 @@ -86,9 +86,7 @@ # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -Patch21: no-tmpfs-fsck.patch -Patch40: systemd-journald-fix-endianess-bug.patch -Patch41: fix-c++-compat.patch +Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -139,7 +137,6 @@ %patch15 -p1 %patch16 -p1 %patch19 -p1 -%patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 @@ -149,7 +146,6 @@ %patch38 -p1 %patch39 -p1 %patch40 -p1 -%patch41 -p1 %build autoreconf -fiv Index: 0001-util-never-follow-symlinks-in-rm_rf_children.patch =================================================================== --- 0001-util-never-follow-symlinks-in-rm_rf_children.patch (added) +++ 0001-util-never-follow-symlinks-in-rm_rf_children.patch (revision 260) @@ -0,0 +1,32 @@ +From 5ebff5337594d690b322078c512eb222d34aaa82 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 2 Mar 2012 10:39:10 +0100 +Subject: [PATCH] util: never follow symlinks in rm_rf_children() + +The function checks if the entry is a directory before recursing, but +there is a window between the check and the open, during which the +directory could be replaced with a symlink. + +CVE-2012-1174 +https://bugzilla.redhat.com/show_bug.cgi?id=803358 +--- + src/util.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/src/util.c b/src/util.c +index 20cbc2b..dfc1dc6 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) { + if (is_dir) { + int subdir_fd; + +- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) { ++ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); ++ if (subdir_fd < 0) { + if (ret == 0 && errno != ENOENT) + ret = -errno; + continue; +-- +1.7.7 + Index: systemd-44.tar.xz =================================================================== Binary files systemd-44.tar.xz (revision 260) added Index: fix-c++-compat.patch =================================================================== --- fix-c++-compat.patch (revision 92) +++ fix-c++-compat.patch (deleted) @@ -1,25 +0,0 @@ -From e09a9a35a1fdb4e849e63bdaf47d936c272b5e82 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 5 Mar 2012 15:16:10 +0100 -Subject: [PATCH] sd-login: c++ compatibility - ---- - src/systemd/sd-login.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/systemd/sd-login.h b/src/systemd/sd-login.h -index 2f3c90c..6e99cfc 100644 ---- a/src/systemd/sd-login.h -+++ b/src/systemd/sd-login.h -@@ -94,7 +94,7 @@ int sd_session_get_service(const char *session, char **service); - int sd_session_get_type(const char *session, char **type); - - /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ --int sd_session_get_class(const char *session, char **class); -+int sd_session_get_class(const char *session, char **clazz); - - /* Determine the X11 display of this session. */ - int sd_session_get_display(const char *session, char **display); --- -1.7.7 - Index: no-tmpfs-fsck.patch =================================================================== --- no-tmpfs-fsck.patch (revision 92) +++ no-tmpfs-fsck.patch (deleted) @@ -1,22 +0,0 @@ -From cca125c2758b48ba8f1afdc4b5751b104f0bd809 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 27 Oct 2011 15:36:57 +0200 -Subject: [PATCH] mount: do not try to fsck tmpfs mountpoint with non-null - passno. - ---- - src/mount.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -Index: systemd-39/src/mount.c -=================================================================== ---- systemd-39.orig/src/mount.c -+++ systemd-39/src/mount.c -@@ -428,6 +428,7 @@ static int mount_add_device_links(Mount - - if (p->passno > 0 && - !mount_is_bind(p) && -+ !streq(p->fstype,"tmpfs") && - UNIT(m)->manager->running_as == MANAGER_SYSTEM && - !path_equal(m->where, "/")) { - char *name; Index: systemd-43.tar.xz =================================================================== Binary files systemd-43.tar.xz (revision 92) deleted Index: systemd-journald-fix-endianess-bug.patch =================================================================== --- systemd-journald-fix-endianess-bug.patch (revision 92) +++ systemd-journald-fix-endianess-bug.patch (deleted) @@ -1,25 +0,0 @@ -From 8dc6b88fd2dad113d7dab776d623d7b301e4b754 Mon Sep 17 00:00:00 2001 -From: Dirk Eibach -Date: Wed, 29 Feb 2012 12:45:46 +0100 -Subject: [PATCH] systemd-journald: fix endianess bug - ---- - src/journal/journal-file.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 20ca3f6..275caea 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -238,7 +238,7 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (fstat(f->fd, &f->last_stat) < 0) - return -errno; - -- f->header->arena_size = new_size - htole64(f->header->arena_offset); -+ f->header->arena_size = htole64(new_size - le64toh(f->header->arena_offset)); - - return 0; - } --- -1.7.7 - OBS-URL: https://build.opensuse.org/request/show/109922 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=93 --- ...er-follow-symlinks-in-rm_rf_children.patch | 32 +++++++++++++++++++ fix-c++-compat.patch | 25 --------------- no-tmpfs-fsck.patch | 22 ------------- systemd-43.tar.xz | 3 -- systemd-44.tar.xz | 3 ++ systemd-gtk.changes | 27 ++++++++++++++++ systemd-gtk.spec | 2 +- systemd-journald-fix-endianess-bug.patch | 25 --------------- systemd.changes | 27 ++++++++++++++++ systemd.spec | 10 ++---- 10 files changed, 93 insertions(+), 83 deletions(-) create mode 100644 0001-util-never-follow-symlinks-in-rm_rf_children.patch delete mode 100644 fix-c++-compat.patch delete mode 100644 no-tmpfs-fsck.patch delete mode 100644 systemd-43.tar.xz create mode 100644 systemd-44.tar.xz delete mode 100644 systemd-journald-fix-endianess-bug.patch diff --git a/0001-util-never-follow-symlinks-in-rm_rf_children.patch b/0001-util-never-follow-symlinks-in-rm_rf_children.patch new file mode 100644 index 00000000..8f12746b --- /dev/null +++ b/0001-util-never-follow-symlinks-in-rm_rf_children.patch @@ -0,0 +1,32 @@ +From 5ebff5337594d690b322078c512eb222d34aaa82 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 2 Mar 2012 10:39:10 +0100 +Subject: [PATCH] util: never follow symlinks in rm_rf_children() + +The function checks if the entry is a directory before recursing, but +there is a window between the check and the open, during which the +directory could be replaced with a symlink. + +CVE-2012-1174 +https://bugzilla.redhat.com/show_bug.cgi?id=803358 +--- + src/util.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/src/util.c b/src/util.c +index 20cbc2b..dfc1dc6 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) { + if (is_dir) { + int subdir_fd; + +- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) { ++ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); ++ if (subdir_fd < 0) { + if (ret == 0 && errno != ENOENT) + ret = -errno; + continue; +-- +1.7.7 + diff --git a/fix-c++-compat.patch b/fix-c++-compat.patch deleted file mode 100644 index 85f78d8d..00000000 --- a/fix-c++-compat.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e09a9a35a1fdb4e849e63bdaf47d936c272b5e82 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 5 Mar 2012 15:16:10 +0100 -Subject: [PATCH] sd-login: c++ compatibility - ---- - src/systemd/sd-login.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/systemd/sd-login.h b/src/systemd/sd-login.h -index 2f3c90c..6e99cfc 100644 ---- a/src/systemd/sd-login.h -+++ b/src/systemd/sd-login.h -@@ -94,7 +94,7 @@ int sd_session_get_service(const char *session, char **service); - int sd_session_get_type(const char *session, char **type); - - /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ --int sd_session_get_class(const char *session, char **class); -+int sd_session_get_class(const char *session, char **clazz); - - /* Determine the X11 display of this session. */ - int sd_session_get_display(const char *session, char **display); --- -1.7.7 - diff --git a/no-tmpfs-fsck.patch b/no-tmpfs-fsck.patch deleted file mode 100644 index a5946686..00000000 --- a/no-tmpfs-fsck.patch +++ /dev/null @@ -1,22 +0,0 @@ -From cca125c2758b48ba8f1afdc4b5751b104f0bd809 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 27 Oct 2011 15:36:57 +0200 -Subject: [PATCH] mount: do not try to fsck tmpfs mountpoint with non-null - passno. - ---- - src/mount.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -Index: systemd-39/src/mount.c -=================================================================== ---- systemd-39.orig/src/mount.c -+++ systemd-39/src/mount.c -@@ -428,6 +428,7 @@ static int mount_add_device_links(Mount - - if (p->passno > 0 && - !mount_is_bind(p) && -+ !streq(p->fstype,"tmpfs") && - UNIT(m)->manager->running_as == MANAGER_SYSTEM && - !path_equal(m->where, "/")) { - char *name; diff --git a/systemd-43.tar.xz b/systemd-43.tar.xz deleted file mode 100644 index ba1c51e9..00000000 --- a/systemd-43.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3070e48e43bc0811fa8da5ba4832a11dac73b1625db94d42d4c15dc279335dd7 -size 852432 diff --git a/systemd-44.tar.xz b/systemd-44.tar.xz new file mode 100644 index 00000000..2f31a608 --- /dev/null +++ b/systemd-44.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a5aac4b4b8b3a82bf59292f10e43d8f2c2d7039f34e95714f81d8edcb42233c +size 885636 diff --git a/systemd-gtk.changes b/systemd-gtk.changes index c065d07d..1a6c23fa 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com + +- Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix + CVE-2012-1174 (bnc#752281). + +------------------------------------------------------------------- +Fri Mar 16 09:21:54 UTC 2012 - fcrozat@suse.com + +- Update to version 43: + + Support optional initialization of the machine ID from the KVM + or container configured UUID. + + Support immediate reboots with "systemctl reboot -ff" + + Show /etc/os-release data in systemd-analyze output + + Many bugfixes for the journal, including endianess fixes and + ensuring that disk space enforcement works + + non-UTF8 strings are refused if used in configuration and unit + files. + + Register Mimo USB Screens as suitable for automatic seat + configuration + + Reorder configuration file lookup order. /etc now always + overrides /run. + + manpages for journal utilities. +- Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, + systemd-journald-fix-endianess-bug.patch. +- Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). + ------------------------------------------------------------------- Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 5b46113e..7e1beeab 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -18,7 +18,7 @@ Name: systemd-gtk Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 43 +Version: 44 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel diff --git a/systemd-journald-fix-endianess-bug.patch b/systemd-journald-fix-endianess-bug.patch deleted file mode 100644 index 7cb48067..00000000 --- a/systemd-journald-fix-endianess-bug.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8dc6b88fd2dad113d7dab776d623d7b301e4b754 Mon Sep 17 00:00:00 2001 -From: Dirk Eibach -Date: Wed, 29 Feb 2012 12:45:46 +0100 -Subject: [PATCH] systemd-journald: fix endianess bug - ---- - src/journal/journal-file.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 20ca3f6..275caea 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -238,7 +238,7 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (fstat(f->fd, &f->last_stat) < 0) - return -errno; - -- f->header->arena_size = new_size - htole64(f->header->arena_offset); -+ f->header->arena_size = htole64(new_size - le64toh(f->header->arena_offset)); - - return 0; - } --- -1.7.7 - diff --git a/systemd.changes b/systemd.changes index c065d07d..1a6c23fa 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com + +- Add 0001-util-never-follow-symlinks-in-rm_rf_children.patch: fix + CVE-2012-1174 (bnc#752281). + +------------------------------------------------------------------- +Fri Mar 16 09:21:54 UTC 2012 - fcrozat@suse.com + +- Update to version 43: + + Support optional initialization of the machine ID from the KVM + or container configured UUID. + + Support immediate reboots with "systemctl reboot -ff" + + Show /etc/os-release data in systemd-analyze output + + Many bugfixes for the journal, including endianess fixes and + ensuring that disk space enforcement works + + non-UTF8 strings are refused if used in configuration and unit + files. + + Register Mimo USB Screens as suitable for automatic seat + configuration + + Reorder configuration file lookup order. /etc now always + overrides /run. + + manpages for journal utilities. +- Drop fix-c++-compat.patch, no-tmpfs-fsck.patch, + systemd-journald-fix-endianess-bug.patch. +- Requires util-linux >= 2.21 (needed to fix fsck on tmpfs). + ------------------------------------------------------------------- Mon Mar 12 08:50:36 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 04f53eda..81eb8803 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,7 +20,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 43 +Version: 44 Release: 0 Summary: A System and Session Manager License: GPL-2.0+ @@ -52,7 +52,7 @@ Requires: kbd Requires: pam-config >= 0.79-5 Requires: systemd-presets-branding Requires: udev >= 172 -Requires: util-linux >= 2.19 +Requires: util-linux >= 2.21 Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 @@ -86,9 +86,7 @@ Patch39: correct_plymouth_paths_and_conflicts.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -Patch21: no-tmpfs-fsck.patch -Patch40: systemd-journald-fix-endianess-bug.patch -Patch41: fix-c++-compat.patch +Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -139,7 +137,6 @@ Plymouth integration for systemd %patch15 -p1 %patch16 -p1 %patch19 -p1 -%patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 @@ -149,7 +146,6 @@ Plymouth integration for systemd %patch38 -p1 %patch39 -p1 %patch40 -p1 -%patch41 -p1 %build autoreconf -fiv From 7063139ce7510b7586184ed9bb7fc2a388d62e4a5e956a58b6628d1884b73d80 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 23 Mar 2012 11:11:16 +0000 Subject: [PATCH 092/221] Accepting request 110375 from Base:System - Add 0001-add-sparse-support-to-detect-endianness-bug.patch: fix endianness error, preventing journal to work properly on ppc. - Add fixppc.patch: fix build and warnings on ppc. OBS-URL: https://build.opensuse.org/request/show/110375 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=94 --- ...rse-support-to-detect-endianness-bug.patch | 368 ++++++++++++++++++ fixppc.patch | 26 ++ systemd-gtk.changes | 7 + systemd.changes | 7 + systemd.spec | 4 + 5 files changed, 412 insertions(+) create mode 100644 0001-add-sparse-support-to-detect-endianness-bug.patch create mode 100644 fixppc.patch diff --git a/0001-add-sparse-support-to-detect-endianness-bug.patch b/0001-add-sparse-support-to-detect-endianness-bug.patch new file mode 100644 index 00000000..d4c084d2 --- /dev/null +++ b/0001-add-sparse-support-to-detect-endianness-bug.patch @@ -0,0 +1,368 @@ +From 7644bc8665f39a6428049e81e8c04e4d755e55a1 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Fri, 16 Mar 2012 11:59:04 +0100 +Subject: [PATCH] add sparse support to detect endianness bug + +le16/32/64_t type should be used when storing little-endian value + +header to integrate with sparse from Josh Triplett +--- + src/journal/journal-def.h | 74 +++++++++++++++++----------------- + src/journal/journal-file.c | 15 ++++--- + src/journal/journal-internal.h | 2 +- + src/journal/journald.c | 5 +- + src/journal/sd-journal.c | 10 +++-- + src/journal/sparse-endian.h | 87 ++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 142 insertions(+), 51 deletions(-) + create mode 100644 src/journal/sparse-endian.h + +diff --git a/src/journal/journal-def.h b/src/journal/journal-def.h +index 964e0c2..9cb8051 100644 +--- a/src/journal/journal-def.h ++++ b/src/journal/journal-def.h +@@ -22,7 +22,7 @@ + along with systemd; If not, see . + ***/ + +-#include ++#include "sparse-endian.h" + + #include + +@@ -60,48 +60,48 @@ _packed_ struct ObjectHeader { + uint8_t type; + uint8_t flags; + uint8_t reserved[6]; +- uint64_t size; ++ le64_t size; + uint8_t payload[]; + }; + + _packed_ struct DataObject { + ObjectHeader object; +- uint64_t hash; +- uint64_t next_hash_offset; +- uint64_t next_field_offset; +- uint64_t entry_offset; /* the first array entry we store inline */ +- uint64_t entry_array_offset; +- uint64_t n_entries; ++ le64_t hash; ++ le64_t next_hash_offset; ++ le64_t next_field_offset; ++ le64_t entry_offset; /* the first array entry we store inline */ ++ le64_t entry_array_offset; ++ le64_t n_entries; + uint8_t payload[]; + }; + + _packed_ struct FieldObject { + ObjectHeader object; +- uint64_t hash; +- uint64_t next_hash_offset; +- uint64_t head_data_offset; +- uint64_t tail_data_offset; ++ le64_t hash; ++ le64_t next_hash_offset; ++ le64_t head_data_offset; ++ le64_t tail_data_offset; + uint8_t payload[]; + }; + + _packed_ struct EntryItem { +- uint64_t object_offset; +- uint64_t hash; ++ le64_t object_offset; ++ le64_t hash; + }; + + _packed_ struct EntryObject { + ObjectHeader object; +- uint64_t seqnum; +- uint64_t realtime; +- uint64_t monotonic; ++ le64_t seqnum; ++ le64_t realtime; ++ le64_t monotonic; + sd_id128_t boot_id; +- uint64_t xor_hash; ++ le64_t xor_hash; + EntryItem items[]; + }; + + _packed_ struct HashItem { +- uint64_t head_hash_offset; +- uint64_t tail_hash_offset; ++ le64_t head_hash_offset; ++ le64_t tail_hash_offset; + }; + + _packed_ struct HashTableObject { +@@ -111,8 +111,8 @@ _packed_ struct HashTableObject { + + _packed_ struct EntryArrayObject { + ObjectHeader object; +- uint64_t next_entry_array_offset; +- uint64_t items[]; ++ le64_t next_entry_array_offset; ++ le64_t items[]; + }; + + union Object { +@@ -145,21 +145,21 @@ _packed_ struct Header { + sd_id128_t machine_id; + sd_id128_t boot_id; + sd_id128_t seqnum_id; +- uint64_t arena_offset; +- uint64_t arena_size; +- uint64_t data_hash_table_offset; /* for looking up data objects */ +- uint64_t data_hash_table_size; +- uint64_t field_hash_table_offset; /* for looking up field objects */ +- uint64_t field_hash_table_size; +- uint64_t tail_object_offset; +- uint64_t n_objects; +- uint64_t n_entries; +- uint64_t seqnum; +- uint64_t first_seqnum; +- uint64_t entry_array_offset; +- uint64_t head_entry_realtime; +- uint64_t tail_entry_realtime; +- uint64_t tail_entry_monotonic; ++ le64_t arena_offset; ++ le64_t arena_size; ++ le64_t data_hash_table_offset; /* for looking up data objects */ ++ le64_t data_hash_table_size; ++ le64_t field_hash_table_offset; /* for looking up field objects */ ++ le64_t field_hash_table_size; ++ le64_t tail_object_offset; ++ le64_t n_objects; ++ le64_t n_entries; ++ le64_t seqnum; ++ le64_t first_seqnum; ++ le64_t entry_array_offset; ++ le64_t head_entry_realtime; ++ le64_t tail_entry_realtime; ++ le64_t tail_entry_monotonic; + }; + + #endif +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 474dd5c..e803cec 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -793,8 +793,8 @@ static uint64_t journal_file_entry_array_n_items(Object *o) { + } + + static int link_entry_into_array(JournalFile *f, +- uint64_t *first, +- uint64_t *idx, ++ le64_t *first, ++ le64_t *idx, + uint64_t p) { + int r; + uint64_t n = 0, ap = 0, q, i, a, hidx; +@@ -857,9 +857,9 @@ static int link_entry_into_array(JournalFile *f, + } + + static int link_entry_into_array_plus_one(JournalFile *f, +- uint64_t *extra, +- uint64_t *first, +- uint64_t *idx, ++ le64_t *extra, ++ le64_t *first, ++ le64_t *idx, + uint64_t p) { + + int r; +@@ -873,7 +873,7 @@ static int link_entry_into_array_plus_one(JournalFile *f, + if (*idx == 0) + *extra = htole64(p); + else { +- uint64_t i; ++ le64_t i; + + i = htole64(le64toh(*idx) - 1); + r = link_entry_into_array(f, first, &i, p); +@@ -2141,7 +2141,8 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 + items = alloca(sizeof(EntryItem) * n); + + for (i = 0; i < n; i++) { +- uint64_t le_hash, l, h; ++ uint64_t l, h; ++ le64_t le_hash; + size_t t; + void *data; + Object *u; +diff --git a/src/journal/journal-internal.h b/src/journal/journal-internal.h +index e5914bf..17f1d31 100644 +--- a/src/journal/journal-internal.h ++++ b/src/journal/journal-internal.h +@@ -35,7 +35,7 @@ typedef struct Match Match; + struct Match { + char *data; + size_t size; +- uint64_t le_hash; ++ le64_t le_hash; + + LIST_FIELDS(Match, matches); + }; +diff --git a/src/journal/journald.c b/src/journal/journald.c +index baad3ab..ebb4275 100644 +--- a/src/journal/journald.c ++++ b/src/journal/journald.c +@@ -1251,6 +1251,7 @@ static void process_native_message( + p = e + 1; + continue; + } else { ++ le64_t l_le; + uint64_t l; + char *k; + +@@ -1259,8 +1260,8 @@ static void process_native_message( + break; + } + +- memcpy(&l, e + 1, sizeof(uint64_t)); +- l = le64toh(l); ++ memcpy(&l_le, e + 1, sizeof(uint64_t)); ++ l = le64toh(l_le); + + if (remaining < e - p + 1 + sizeof(uint64_t) + l + 1 || + e[1+sizeof(uint64_t)+l] != '\n') { +diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c +index 86ac267..e9cd26e 100644 +--- a/src/journal/sd-journal.c ++++ b/src/journal/sd-journal.c +@@ -108,7 +108,7 @@ static int same_field(const void *_a, size_t s, const void *_b, size_t t) { + + _public_ int sd_journal_add_match(sd_journal *j, const void *data, size_t size) { + Match *m, *after = NULL; +- uint64_t le_hash; ++ le64_t le_hash; + + if (!j) + return -EINVAL; +@@ -356,7 +356,7 @@ static int find_location(sd_journal *j, JournalFile *f, direction_t direction, O + Object *c, *d; + uint64_t cp, dp; + +- r = journal_file_find_data_object_with_hash(f, m->data, m->size, m->le_hash, &d, &dp); ++ r = journal_file_find_data_object_with_hash(f, m->data, m->size, le64toh(m->le_hash), &d, &dp); + if (r <= 0) + return r; + +@@ -1349,7 +1349,8 @@ _public_ int sd_journal_get_data(sd_journal *j, const char *field, const void ** + + n = journal_file_entry_n_items(o); + for (i = 0; i < n; i++) { +- uint64_t p, l, le_hash; ++ uint64_t p, l; ++ le64_t le_hash; + size_t t; + + p = le64toh(o->entry.items[i].object_offset); +@@ -1410,7 +1411,8 @@ _public_ int sd_journal_get_data(sd_journal *j, const char *field, const void ** + + _public_ int sd_journal_enumerate_data(sd_journal *j, const void **data, size_t *size) { + JournalFile *f; +- uint64_t p, l, n, le_hash; ++ uint64_t p, l, n; ++ le64_t le_hash; + int r; + Object *o; + size_t t; +diff --git a/src/journal/sparse-endian.h b/src/journal/sparse-endian.h +new file mode 100644 +index 0000000..eb4dbf3 +--- /dev/null ++++ b/src/journal/sparse-endian.h +@@ -0,0 +1,87 @@ ++/* Copyright (c) 2012 Josh Triplett ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to ++ * deal in the Software without restriction, including without limitation the ++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS ++ * IN THE SOFTWARE. ++ */ ++#ifndef SPARSE_ENDIAN_H ++#define SPARSE_ENDIAN_H ++ ++#include ++#include ++ ++#ifdef __CHECKER__ ++#define __bitwise __attribute__((bitwise)) ++#define __force __attribute__((force)) ++#else ++#define __bitwise ++#define __force ++#endif ++ ++typedef uint16_t __bitwise le16_t; ++typedef uint16_t __bitwise be16_t; ++typedef uint32_t __bitwise le32_t; ++typedef uint32_t __bitwise be32_t; ++typedef uint64_t __bitwise le64_t; ++typedef uint64_t __bitwise be64_t; ++ ++#undef htobe16 ++#undef htole16 ++#undef be16toh ++#undef le16toh ++#undef htobe32 ++#undef htole32 ++#undef be32toh ++#undef le32toh ++#undef htobe64 ++#undef htole64 ++#undef be64toh ++#undef le64toh ++ ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++#define bswap_16_on_le(x) __bswap_16(x) ++#define bswap_32_on_le(x) __bswap_32(x) ++#define bswap_64_on_le(x) __bswap_64(x) ++#define bswap_16_on_be(x) (x) ++#define bswap_32_on_be(x) (x) ++#define bswap_64_on_be(x) (x) ++#elif __BYTE_ORDER == __BIG_ENDIAN ++#define bswap_16_on_le(x) (x) ++#define bswap_32_on_le(x) (x) ++#define bswap_64_on_le(x) (x) ++#define bswap_16_on_be(x) __bswap_16(x) ++#define bswap_32_on_be(x) __bswap_32(x) ++#define bswap_64_on_be(x) __bswap_64(x) ++#endif ++ ++static inline le16_t htole16(uint16_t value) { return (le16_t __force) bswap_16_on_be(value); } ++static inline le32_t htole32(uint32_t value) { return (le32_t __force) bswap_32_on_be(value); } ++static inline le64_t htole64(uint64_t value) { return (le64_t __force) bswap_64_on_be(value); } ++ ++static inline be16_t htobe16(uint16_t value) { return (be16_t __force) bswap_16_on_le(value); } ++static inline be32_t htobe32(uint32_t value) { return (be32_t __force) bswap_32_on_le(value); } ++static inline be64_t htobe64(uint64_t value) { return (be64_t __force) bswap_64_on_le(value); } ++ ++static inline uint16_t le16toh(le16_t value) { return bswap_16_on_be((uint16_t __force)value); } ++static inline uint32_t le32toh(le32_t value) { return bswap_32_on_be((uint32_t __force)value); } ++static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __force)value); } ++ ++static inline uint16_t be16toh(be16_t value) { return bswap_16_on_le((uint16_t __force)value); } ++static inline uint32_t be32toh(be32_t value) { return bswap_32_on_le((uint32_t __force)value); } ++static inline uint64_t be64toh(be64_t value) { return bswap_64_on_le((uint64_t __force)value); } ++ ++#endif /* SPARSE_ENDIAN_H */ +-- +1.7.7 + diff --git a/fixppc.patch b/fixppc.patch new file mode 100644 index 00000000..e087f608 --- /dev/null +++ b/fixppc.patch @@ -0,0 +1,26 @@ +diff --git a/src/journal/cat.c b/src/journal/cat.c +index 31d76f3..8a51fb7 100644 +--- a/src/journal/cat.c ++++ b/src/journal/cat.c +@@ -33,7 +33,7 @@ + #include "build.h" + + static char *arg_identifier = NULL; +-static char arg_priority = LOG_INFO; ++static int8_t arg_priority = LOG_INFO; + static bool arg_level_prefix = true; + + static int help(void) { +diff --git a/src/journal/journald.c b/src/journal/journald.c +index baad3ab..1899ad6 100644 +--- a/src/journal/journald.c ++++ b/src/journal/journald.c +@@ -2144,7 +2144,7 @@ static int process_event(Server *s, struct epoll_event *ev) { + uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) + + CMSG_SPACE(sizeof(struct timeval)) + + CMSG_SPACE(sizeof(int)) + +- CMSG_SPACE(PAGE_SIZE)]; /* selinux label */ ++ CMSG_SPACE(PATH_MAX)]; /* selinux label */ + } control; + ssize_t n; + int v; diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 1a6c23fa..1119cb17 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 19 14:07:23 UTC 2012 - fcrozat@suse.com + +- Add 0001-add-sparse-support-to-detect-endianness-bug.patch: fix + endianness error, preventing journal to work properly on ppc. +- Add fixppc.patch: fix build and warnings on ppc. + ------------------------------------------------------------------- Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 1a6c23fa..1119cb17 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 19 14:07:23 UTC 2012 - fcrozat@suse.com + +- Add 0001-add-sparse-support-to-detect-endianness-bug.patch: fix + endianness error, preventing journal to work properly on ppc. +- Add fixppc.patch: fix build and warnings on ppc. + ------------------------------------------------------------------- Mon Mar 19 10:11:23 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 81eb8803..2f9371fd 100644 --- a/systemd.spec +++ b/systemd.spec @@ -81,6 +81,8 @@ Patch33: crypt-loop-file.patch Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch Patch39: correct_plymouth_paths_and_conflicts.patch +Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch +Patch42: fixppc.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -146,6 +148,8 @@ Plymouth integration for systemd %patch38 -p1 %patch39 -p1 %patch40 -p1 +%patch41 -p1 +%patch42 -p1 %build autoreconf -fiv From ca5811d78d50aeed88c1ffbcb0fef2506b7c98b5711420e6fa099e40192558c4 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 3 Apr 2012 15:38:59 +0000 Subject: [PATCH 093/221] Accepting request 112342 from Base:System - apply ppc patch to systemd-gtk too (fixes build) - apply ppc patch to systemd-gtk too (fixes build) (forwarded request 112340 from k0da) OBS-URL: https://build.opensuse.org/request/show/112342 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=95 --- ...er-follow-symlinks-in-rm_rf_children.patch | 27 +++ fixppc.patch | 73 ++++++-- logind-logout.patch | 156 ++++++++++++++++++ systemd-gtk.changes | 14 ++ systemd-gtk.spec | 2 + systemd.changes | 14 ++ systemd.spec | 4 +- 7 files changed, 276 insertions(+), 14 deletions(-) create mode 100644 logind-logout.patch diff --git a/0001-util-never-follow-symlinks-in-rm_rf_children.patch b/0001-util-never-follow-symlinks-in-rm_rf_children.patch index 8f12746b..38579dee 100644 --- a/0001-util-never-follow-symlinks-in-rm_rf_children.patch +++ b/0001-util-never-follow-symlinks-in-rm_rf_children.patch @@ -30,3 +30,30 @@ index 20cbc2b..dfc1dc6 100644 -- 1.7.7 +From c9d8629baa09f853fbcc44972c9748e70562270c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 Mar 2012 01:43:36 +0100 +Subject: [PATCH] logind: extend comment about X11 socket symlink + +--- + src/login/logind-session.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/src/login/logind-session.c b/src/login/logind-session.c +index af9c12d..4e0af86 100644 +--- a/src/login/logind-session.c ++++ b/src/login/logind-session.c +@@ -391,6 +391,10 @@ static int session_link_x11_socket(Session *s) { + return -ENOENT; + } + ++ /* Note that this cannot be in a subdir to avoid ++ * vulnerabilities since we are privileged but the runtime ++ * path is owned by the user */ ++ + t = strappend(s->user->runtime_path, "/X11-display"); + if (!t) { + log_error("Out of memory"); +-- +1.7.7 + diff --git a/fixppc.patch b/fixppc.patch index e087f608..eeb7ce56 100644 --- a/fixppc.patch +++ b/fixppc.patch @@ -1,3 +1,60 @@ +From 7264278fbbdc1dc6c30fedc902d1337594aa6ff6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 21 Mar 2012 23:47:44 +0100 +Subject: [PATCH] journal: PAGE_SIZE is not known on ppc and other archs + +Let's use NAME_MAX, as suggested by Dan Walsh +--- + src/journal/journald.c | 15 ++++++++++++--- + 1 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/src/journal/journald.c b/src/journal/journald.c +index d27cb60..87390bd 100644 +--- a/src/journal/journald.c ++++ b/src/journal/journald.c +@@ -29,7 +29,6 @@ + #include + #include + #include +-#include + + #include + #include +@@ -2149,10 +2148,20 @@ static int process_event(Server *s, struct epoll_event *ev) { + size_t label_len = 0; + union { + struct cmsghdr cmsghdr; ++ ++ /* We use NAME_MAX space for the ++ * SELinux label here. The kernel ++ * currently enforces no limit, but ++ * according to suggestions from the ++ * SELinux people this will change and ++ * it will probably be identical to ++ * NAME_MAX. For now we use that, but ++ * this should be updated one day when ++ * the final limit is known.*/ + uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) + + CMSG_SPACE(sizeof(struct timeval)) + +- CMSG_SPACE(sizeof(int)) + +- CMSG_SPACE(PAGE_SIZE)]; /* selinux label */ ++ CMSG_SPACE(sizeof(int)) + /* fd */ ++ CMSG_SPACE(NAME_MAX)]; /* selinux label */ + } control; + ssize_t n; + int v; +-- +1.7.7 + +From dd1e3d5a396284d1afdb2828991a543eb80c8040 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 22 Mar 2012 09:39:54 +0100 +Subject: [PATCH] journal: char is unsigned on ppc, use int8_t instead. + +--- + src/journal/cat.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + diff --git a/src/journal/cat.c b/src/journal/cat.c index 31d76f3..8a51fb7 100644 --- a/src/journal/cat.c @@ -11,16 +68,6 @@ index 31d76f3..8a51fb7 100644 static bool arg_level_prefix = true; static int help(void) { -diff --git a/src/journal/journald.c b/src/journal/journald.c -index baad3ab..1899ad6 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -2144,7 +2144,7 @@ static int process_event(Server *s, struct epoll_event *ev) { - uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) + - CMSG_SPACE(sizeof(struct timeval)) + - CMSG_SPACE(sizeof(int)) + -- CMSG_SPACE(PAGE_SIZE)]; /* selinux label */ -+ CMSG_SPACE(PATH_MAX)]; /* selinux label */ - } control; - ssize_t n; - int v; +-- +1.7.7 + diff --git a/logind-logout.patch b/logind-logout.patch new file mode 100644 index 00000000..5949223a --- /dev/null +++ b/logind-logout.patch @@ -0,0 +1,156 @@ +From 75c8e3cffd7da8eede614cf61384957af2c82a29 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 Mar 2012 02:06:40 +0100 +Subject: [PATCH] logind: close FIFO before ending sessions cleanly + +For clean session endings ask logind explicitly to get rid of the FIFO +before closing it so that the FIFO logic doesn't result in su/sudo to be +terminated immediately. +--- + src/login/logind-dbus.c | 30 ++++++++++++++++++++ + src/login/pam-module.c | 71 +++++++++++++++++++++++++++++++++++++++++++++-- + 2 files changed, 98 insertions(+), 3 deletions(-) + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index d8f4d89..ea6b89f 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -80,6 +80,9 @@ + " \n" \ + " \n" \ + " \n" \ ++ " \n" \ ++ " \n" \ ++ " \n" \ + " \n" \ + " \n" \ + " \n" \ +@@ -1075,6 +1078,33 @@ static DBusHandlerResult manager_message_handler( + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); + ++ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ReleaseSession")) { ++ const char *name; ++ Session *session; ++ ++ if (!dbus_message_get_args( ++ message, ++ &error, ++ DBUS_TYPE_STRING, &name, ++ DBUS_TYPE_INVALID)) ++ return bus_send_error_reply(connection, message, &error, -EINVAL); ++ ++ session = hashmap_get(m->sessions, name); ++ if (!session) ++ return bus_send_error_reply(connection, message, &error, -ENOENT); ++ ++ /* We use the FIFO to detect stray sessions where the ++ process invoking PAM dies abnormally. We need to make ++ sure that that process is not killed if at the clean ++ end of the session it closes the FIFO. Hence, with ++ this call explicitly turn off the FIFO logic, so that ++ the PAM code can finish clean up on its own */ ++ session_remove_fifo(session); ++ ++ reply = dbus_message_new_method_return(message); ++ if (!reply) ++ goto oom; ++ + } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ActivateSession")) { + const char *name; + Session *session; +diff --git a/src/login/pam-module.c b/src/login/pam-module.c +index 8544413..4106d2b 100644 +--- a/src/login/pam-module.c ++++ b/src/login/pam-module.c +@@ -414,7 +414,6 @@ _public_ PAM_EXTERN int pam_sm_open_session( + "/org/freedesktop/login1", + "org.freedesktop.login1.Manager", + "CreateSession"); +- + if (!m) { + pam_syslog(handle, LOG_ERR, "Could not allocate create session message."); + r = PAM_BUF_ERR; +@@ -620,11 +619,77 @@ _public_ PAM_EXTERN int pam_sm_close_session( + int argc, const char **argv) { + + const void *p = NULL; ++ const char *id; ++ DBusConnection *bus = NULL; ++ DBusMessage *m = NULL, *reply = NULL; ++ DBusError error; ++ int r; + +- pam_get_data(handle, "systemd.session-fd", &p); ++ assert(handle); ++ ++ dbus_error_init(&error); ++ ++ id = pam_getenv(handle, "XDG_SESSION_ID"); ++ if (id) { ++ ++ /* Before we go and close the FIFO we need to tell ++ * logind that this is a clean session shutdown, so ++ * that it doesn't just go and slaughter us ++ * immediately after closing the fd */ ++ ++ bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error); ++ if (!bus) { ++ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error)); ++ r = PAM_SESSION_ERR; ++ goto finish; ++ } ++ ++ m = dbus_message_new_method_call( ++ "org.freedesktop.login1", ++ "/org/freedesktop/login1", ++ "org.freedesktop.login1.Manager", ++ "ReleaseSession"); ++ if (!m) { ++ pam_syslog(handle, LOG_ERR, "Could not allocate release session message."); ++ r = PAM_BUF_ERR; ++ goto finish; ++ } ++ ++ if (!dbus_message_append_args(m, ++ DBUS_TYPE_STRING, &id, ++ DBUS_TYPE_INVALID)) { ++ pam_syslog(handle, LOG_ERR, "Could not attach parameters to message."); ++ r = PAM_BUF_ERR; ++ goto finish; ++ } + ++ reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); ++ if (!reply) { ++ pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error)); ++ r = PAM_SESSION_ERR; ++ goto finish; ++ } ++ } ++ ++ r = PAM_SUCCESS; ++ ++finish: ++ pam_get_data(handle, "systemd.session-fd", &p); + if (p) + close_nointr(PTR_TO_INT(p) - 1); + +- return PAM_SUCCESS; ++ dbus_error_free(&error); ++ ++ if (bus) { ++ dbus_connection_close(bus); ++ dbus_connection_unref(bus); ++ } ++ ++ if (m) ++ dbus_message_unref(m); ++ ++ if (reply) ++ dbus_message_unref(reply); ++ ++ return r; + } +-- +1.7.7 + diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 1119cb17..e40aeb84 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com + +- apply ppc patch to systemd-gtk too (fixes build) + +------------------------------------------------------------------- +Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com + +- Update fixppc.patch with upstream patches +- Add comments from upstream in + 0001-util-never-follow-symlinks-in-rm_rf_children.patch. +- Add logind-logout.patch: it should fix sudo / su with pam_systemd + (bnc#746704). + ------------------------------------------------------------------- Mon Mar 19 14:07:23 UTC 2012 - fcrozat@suse.com diff --git a/systemd-gtk.spec b/systemd-gtk.spec index 7e1beeab..1cc8b141 100644 --- a/systemd-gtk.spec +++ b/systemd-gtk.spec @@ -50,6 +50,7 @@ Group: System/Base Requires: systemd = %{version} Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz Source1: systemd-rpmlintrc +Patch0: fixppc.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -61,6 +62,7 @@ Graphical front-end for systemd system and service manager. %prep %setup -q -n systemd-%{version} +%patch0 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 1119cb17..e40aeb84 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com + +- apply ppc patch to systemd-gtk too (fixes build) + +------------------------------------------------------------------- +Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com + +- Update fixppc.patch with upstream patches +- Add comments from upstream in + 0001-util-never-follow-symlinks-in-rm_rf_children.patch. +- Add logind-logout.patch: it should fix sudo / su with pam_systemd + (bnc#746704). + ------------------------------------------------------------------- Mon Mar 19 14:07:23 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 2f9371fd..d424e471 100644 --- a/systemd.spec +++ b/systemd.spec @@ -82,13 +82,14 @@ Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch Patch39: correct_plymouth_paths_and_conflicts.patch Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch -Patch42: fixppc.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch +Patch42: fixppc.patch +Patch43: logind-logout.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -150,6 +151,7 @@ Plymouth integration for systemd %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch43 -p1 %build autoreconf -fiv From 79c9f0f60482d4c851f46433549a2b515045a8bf6e53c2dc58844dd3c00a0ee0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 20 Apr 2012 13:20:18 +0000 Subject: [PATCH 094/221] Accepting request 114575 from Base:System - Add dbus-1 as BuildRequires to fix build. OBS-URL: https://build.opensuse.org/request/show/114575 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=96 --- systemd.changes | 5 +++++ systemd.spec | 1 + 2 files changed, 6 insertions(+) diff --git a/systemd.changes b/systemd.changes index e40aeb84..440b804e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com + +- Add dbus-1 as BuildRequires to fix build. + ------------------------------------------------------------------- Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com diff --git a/systemd.spec b/systemd.spec index d424e471..43bb3cf2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -27,6 +27,7 @@ License: GPL-2.0+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel +BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes BuildRequires: gperf From 15b91769ecc47c9dabd864b11a2fb1d92a48ea4dc40da9582e695aabc85f4b18 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Apr 2012 14:13:33 +0000 Subject: [PATCH 095/221] Accepting request 114876 from Base:System - Implemented SUSE specific sysconfig numlock logic (bnc#746595). (forwarded request 114873 from sbrabec) OBS-URL: https://build.opensuse.org/request/show/114876 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=97 --- systemd-numlock-suse.patch | 144 +++++++++++++++++++++++++++++++++++++ systemd.changes | 5 ++ systemd.spec | 2 + 3 files changed, 151 insertions(+) create mode 100644 systemd-numlock-suse.patch diff --git a/systemd-numlock-suse.patch b/systemd-numlock-suse.patch new file mode 100644 index 00000000..63a8818b --- /dev/null +++ b/systemd-numlock-suse.patch @@ -0,0 +1,144 @@ +Index: systemd-44/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-44.orig/src/vconsole/vconsole-setup.c ++++ systemd-44/src/vconsole/vconsole-setup.c +@@ -265,12 +265,14 @@ int main(int argc, char **argv) { + char *vc_kbd_delay = NULL; + char *vc_kbd_rate = NULL; + char *vc_kbd_disable_caps_lock = NULL; ++ char *vc_kbd_numlock = NULL; + char *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; + #endif + int fd = -1; + bool utf8; + bool disable_capslock = false; ++ bool numlock = false; + int r = EXIT_FAILURE; + pid_t font_pid = 0, keymap_pid = 0; + +@@ -374,6 +376,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL)) < 0) { + +@@ -391,6 +394,37 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + } + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++ if (vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "BIOS") == 0) { ++ int hwinfo_fd[2]; ++ pid_t hwinfo_pid; ++ ++ pipe(hwinfo_fd); ++ if ((hwinfo_pid = fork()) < 0) { ++ log_error("Failed to fork: %m"); ++ _exit(EXIT_FAILURE); ++ } else if (hwinfo_pid == 0) { ++ const char *args[3]; ++ int i = 0; ++ args[i++] = HWINFO; ++ args[i++] = "--bios"; ++ args[i++] = NULL; ++ close(hwinfo_fd[0]); ++ fclose(stdout); ++ dup2(hwinfo_fd[1], STDOUT_FILENO); ++ execv(args[0], (char **) args); ++ _exit(EXIT_FAILURE); ++ } else { ++ char line[17]; ++ FILE *hwinfo_file = fdopen(hwinfo_fd[0], "r"); ++ close(hwinfo_fd[1]); ++ while (fgets(line, 17, hwinfo_file)) ++ if (strstr(line, "Num Lock: on")) ++ numlock = true; ++ close(hwinfo_fd[0]); ++ fclose(hwinfo_file); ++ } ++ } else ++ numlock = vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "YES") == 0; + + #elif defined(TARGET_ARCH) + if ((r = parse_env_file("/etc/rc.conf", NEWLINE, +@@ -558,6 +592,10 @@ int main(int argc, char **argv) { + finish: + if (keymap_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ if (numlock) ++ close(open("/run/numlock-on", O_WRONLY|O_CREAT, 0644)); ++ else ++ unlink("/run/numlock-on"); + + #ifdef TARGET_SUSE + if (compose_table_pid > 0) +Index: systemd-44/Makefile.am +=================================================================== +--- systemd-44.orig/Makefile.am ++++ systemd-44/Makefile.am +@@ -2043,7 +2043,8 @@ dist_udevrules_DATA += \ + src/login/71-seat.rules + + nodist_udevrules_DATA += \ +- src/login/73-seat-late.rules ++ src/login/73-seat-late.rules \ ++ src/login/73-seat-numlock.rules + + MANPAGES += \ + man/systemd-logind.conf.5 \ +@@ -2106,12 +2107,14 @@ EXTRA_DIST += \ + src/login/logind-user.h \ + src/login/logind-acl.h \ + src/login/73-seat-late.rules.in \ ++ src/login/73-seat-numlock.rules.in \ + units/systemd-logind.service.in \ + units/systemd-user-sessions.service.in + + CLEANFILES += \ + src/login/logind-gperf.c \ +- src/login/73-seat-late.rules ++ src/login/73-seat-late.rules \ ++ src/login/73-seat-numlock.rules + endif + # ------------------------------------------------------------------------------ + +@@ -2121,6 +2124,7 @@ SED_PROCESS = \ + -e 's,@rootbindir\@,$(rootbindir),g' \ + -e 's,@bindir\@,$(bindir),g' \ + -e 's,@SYSTEMCTL\@,$(rootbindir)/systemctl,g' \ ++ -e 's,@SETLEDS\@,$(SETLEDS),g' \ + -e 's,@SYSTEMD_NOTIFY\@,$(rootbindir)/systemd-notify,g' \ + -e 's,@pkgsysconfdir\@,$(pkgsysconfdir),g' \ + -e 's,@pkgdatadir\@,$(pkgdatadir),g' \ +Index: systemd-44/configure.ac +=================================================================== +--- systemd-44.orig/configure.ac ++++ systemd-44/configure.ac +@@ -410,6 +410,12 @@ fi + with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` + AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution]) + ++if test z"$with_distro" = z"suse" ; then ++ AC_PATH_PROG([HWINFO], [hwinfo], [/usr/sbin/hwinfo], [/sbin:/usr/sbin:/usr/bin:/bin]) ++ AC_DEFINE_UNQUOTED([HWINFO], ["${HWINFO}"], [Path to hwinfo binary. (SUSE)]) ++fi ++AC_PATH_PROG([SETLEDS], [setleds], [/bin/setleds], [/sbin:/usr/sbin:/usr/bin:/bin]) ++ + # Location of the init scripts as mandated by LSB + SYSTEM_SYSVINIT_PATH=/etc/init.d + SYSTEM_SYSVRCND_PATH=/etc/rc.d +Index: systemd-44/src/login/73-seat-numlock.rules.in +=================================================================== +--- /dev/null ++++ systemd-44/src/login/73-seat-numlock.rules.in +@@ -0,0 +1,8 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TAG=="systemd", TEST=="/run/numlock-on", RUN+="@SETLEDS@ -D +num <$env{DEVNAME}" diff --git a/systemd.changes b/systemd.changes index 440b804e..10da2aa9 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Apr 20 17:16:37 CEST 2012 - sbrabec@suse.cz + +- Implemented SUSE specific sysconfig numlock logic (bnc#746595). + ------------------------------------------------------------------- Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 43bb3cf2..7262e9c5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -67,6 +67,7 @@ Source6: baselibs.conf Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +Patch7: systemd-numlock-suse.patch # don't start getty on tty1 until all password request are done Patch8: tty1.patch Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -135,6 +136,7 @@ Plymouth integration for systemd %setup -q %patch1 -p1 %patch6 -p1 +%patch7 -p1 %patch8 -p1 %patch10 -p1 %patch13 -p1 From 3dfa2c97cfd5b0d77f2b66c62346bdd5791f9a8ef2697aac8bfc36e225cce601 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 8 May 2012 04:48:51 +0000 Subject: [PATCH 096/221] Accepting request 116331 from Base:System - Disable logind-logout.patch: it crashes sudo session (if called after su -l) (bnc#746704). - Add fix-getty-isolate.patch: don't quit getty when changing runlevel (bnc#746594) OBS-URL: https://build.opensuse.org/request/show/116331 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=98 --- fix-getty-isolate.patch | 51 +++++++++++++++++++++++++++++++++++++++++ systemd.changes | 12 ++++++++++ systemd.spec | 5 +++- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 fix-getty-isolate.patch diff --git a/fix-getty-isolate.patch b/fix-getty-isolate.patch new file mode 100644 index 00000000..4cf794ad --- /dev/null +++ b/fix-getty-isolate.patch @@ -0,0 +1,51 @@ +From 4771148bb92ace55eaa6759a53d04a0f2de9b0d2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Apr 2012 21:58:33 +0200 +Subject: [PATCH] units: exclude gettys from isolate requests + +gettys are nowadays mostly autospawned and hence usually subject to +being shut down on isolate requests, since they are no dependency of any +other unit. This is a bad idea if the user isolates between +multi-user.graphical and graphical.target, hence exclude them from the +isolation. + +This has the effect that gettys no longer cleaned up when +emergency.target is isolated, which might actualy be considered a +feature, even though it is a change from previous behaviour... + +Note that the one getty that really matters (the one on tty1) is still +removed when isolating to emergency.target since it conflicts with +emergency.service. +--- + TODO | 4 ++-- + units/getty@.service.m4 | 1 + + units/serial-getty@.service.m4 | 1 + + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 +index a02838d..6b931fb 100644 +--- a/units/getty@.service.m4 ++++ b/units/getty@.service.m4 +@@ -32,6 +32,7 @@ After=rc-local.service + # sure that this is synchronized before getty.target, even though + # getty.target didn't actually pull it in. + Before=getty.target ++IgnoreOnIsolate=yes + + [Service] + Environment=TERM=linux +diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 +index fc8b57b..d1d14d3 100644 +--- a/units/serial-getty@.service.m4 ++++ b/units/serial-getty@.service.m4 +@@ -32,6 +32,7 @@ After=rc-local.service + # sure that this is synchronized before getty.target, even though + # getty.target didn't actually pull it in. + Before=getty.target ++IgnoreOnIsolate=yes + + [Service] + Environment=TERM=vt100 +-- +1.7.7 + diff --git a/systemd.changes b/systemd.changes index 10da2aa9..f1a5ed61 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Thu May 3 11:40:20 UTC 2012 - fcrozat@suse.com + +- Disable logind-logout.patch: it crashes sudo session (if called + after su -l) (bnc#746704). + +------------------------------------------------------------------- +Tue Apr 24 15:46:54 UTC 2012 - fcrozat@suse.com + +- Add fix-getty-isolate.patch: don't quit getty when changing + runlevel (bnc#746594) + ------------------------------------------------------------------- Fri Apr 20 17:16:37 CEST 2012 - sbrabec@suse.cz diff --git a/systemd.spec b/systemd.spec index 7262e9c5..0ebba0b4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -92,6 +92,7 @@ Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch Patch42: fixppc.patch Patch43: logind-logout.patch +Patch44: fix-getty-isolate.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -154,7 +155,9 @@ Plymouth integration for systemd %patch40 -p1 %patch41 -p1 %patch42 -p1 -%patch43 -p1 +# disabled for now, cause sudo session to terminate +#patch43 -p1 +%patch44 -p1 %build autoreconf -fiv From 17b4f0e86720ba575f15c6af79054c099d8ed24797d589236f7822b387c8c8b8 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 26 May 2012 11:00:31 +0000 Subject: [PATCH 097/221] Accepting request 122369 from Base:System - Re-enable logind-logout.patch, fix in xdm-np PAM file is the real fix. - Update new-lsb-headers.patch to handle entries written after description tag (bnc#727771, bnc#747931). OBS-URL: https://build.opensuse.org/request/show/122369 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=99 --- new-lsb-headers.patch | 32 ++++++++++++++++---------------- systemd.changes | 12 ++++++++++++ systemd.spec | 3 +-- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/new-lsb-headers.patch b/new-lsb-headers.patch index fbf46ede..e0b07870 100644 --- a/new-lsb-headers.patch +++ b/new-lsb-headers.patch @@ -1,8 +1,8 @@ -Index: systemd-41/src/service.c +Index: systemd-44/src/service.c =================================================================== ---- systemd-41.orig/src/service.c -+++ systemd-41/src/service.c -@@ -119,6 +119,7 @@ static void service_init(Unit *u) { +--- systemd-44.orig/src/service.c ++++ systemd-44/src/service.c +@@ -122,6 +122,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; s->sysv_start_priority_from_rcnd = -1; @@ -10,10 +10,10 @@ Index: systemd-41/src/service.c #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -861,6 +862,34 @@ static int service_load_sysv_path(Servic +@@ -840,6 +841,34 @@ static int service_load_sysv_path(Servic + free(short_description); + short_description = d; - } else - state = LSB; + } else if (startswith_no_case(t, "PIDFile:")) { + char *fn; + @@ -42,10 +42,10 @@ Index: systemd-41/src/service.c + s->remain_after_exit = parse_boolean(j); + s->sysv_remain_after_exit_heuristic = false; + } - } - } - } -@@ -891,7 +920,8 @@ static int service_load_sysv_path(Servic + } else if (state == LSB_DESCRIPTION) { + + if (startswith(l, "#\t") || startswith(l, "# ")) { +@@ -894,7 +923,8 @@ static int service_load_sysv_path(Servic /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -55,7 +55,7 @@ Index: systemd-41/src/service.c s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2030,7 +2060,7 @@ static void service_enter_running(Servic +@@ -2036,7 +2066,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -64,11 +64,11 @@ Index: systemd-41/src/service.c s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); -Index: systemd-41/src/service.h +Index: systemd-44/src/service.h =================================================================== ---- systemd-41.orig/src/service.h -+++ systemd-41/src/service.h -@@ -157,6 +157,7 @@ struct Service { +--- systemd-44.orig/src/service.h ++++ systemd-44/src/service.h +@@ -166,6 +166,7 @@ struct Service { #ifdef HAVE_SYSV_COMPAT bool sysv_has_lsb:1; bool sysv_enabled:1; diff --git a/systemd.changes b/systemd.changes index f1a5ed61..b77412ed 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri May 25 11:08:27 UTC 2012 - fcrozat@suse.com + +- Re-enable logind-logout.patch, fix in xdm-np PAM file is the real + fix. + +------------------------------------------------------------------- +Thu May 24 11:45:54 UTC 2012 - fcrozat@suse.com + +- Update new-lsb-headers.patch to handle entries written after + description tag (bnc#727771, bnc#747931). + ------------------------------------------------------------------- Thu May 3 11:40:20 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 0ebba0b4..f67da68a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -155,8 +155,7 @@ Plymouth integration for systemd %patch40 -p1 %patch41 -p1 %patch42 -p1 -# disabled for now, cause sudo session to terminate -#patch43 -p1 +%patch43 -p1 %patch44 -p1 %build From 3d49faeb9384fbff0b12f56a78fbc7b776adc38e84474847b69b68b1f77fc011 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 10 Jun 2012 21:18:43 +0000 Subject: [PATCH 098/221] Accepting request 124228 from Base:System - Add fix-swap-priority: fix default swap priority (bnc#731601). OBS-URL: https://build.opensuse.org/request/show/124228 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=100 --- fix-swap-priority.patch | 36 ++++++++++++++++++++++++++++++++++++ systemd.changes | 5 +++++ systemd.spec | 2 ++ 3 files changed, 43 insertions(+) create mode 100644 fix-swap-priority.patch diff --git a/fix-swap-priority.patch b/fix-swap-priority.patch new file mode 100644 index 00000000..2c3fd5f1 --- /dev/null +++ b/fix-swap-priority.patch @@ -0,0 +1,36 @@ +Index: systemd-37/src/mount.c +=================================================================== +--- systemd-37.orig/src/mount.c ++++ systemd-37/src/mount.c +@@ -1485,7 +1485,7 @@ fail: + return r; + } + +-static int mount_find_pri(char *options) { ++static int mount_find_pri(char *options, int *ret) { + char *end, *pri; + unsigned long r; + +@@ -1503,7 +1503,8 @@ static int mount_find_pri(char *options) + if (end == pri || (*end != ',' && *end != 0)) + return -EINVAL; + +- return (int) r; ++ *ret = (int) r; ++ return 1; + } + + static int mount_load_etc_fstab(Manager *m) { +@@ -1539,9 +1540,10 @@ static int mount_load_etc_fstab(Manager + path_kill_slashes(where); + + if (streq(me->mnt_type, "swap")) { +- int pri; ++ int r, pri = -1; + +- if ((pri = mount_find_pri(me->mnt_opts)) < 0) ++ r = mount_find_pri(me->mnt_opts,&pri); ++ if (r < 0) + k = pri; + else + k = swap_add_one(m, diff --git a/systemd.changes b/systemd.changes index b77412ed..102a346e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jun 7 13:14:40 UTC 2012 - fcrozat@suse.com + +- Add fix-swap-priority: fix default swap priority (bnc#731601). + ------------------------------------------------------------------- Fri May 25 11:08:27 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index f67da68a..cace4967 100644 --- a/systemd.spec +++ b/systemd.spec @@ -93,6 +93,7 @@ Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch Patch42: fixppc.patch Patch43: logind-logout.patch Patch44: fix-getty-isolate.patch +Patch45: fix-swap-priority.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -157,6 +158,7 @@ Plymouth integration for systemd %patch42 -p1 %patch43 -p1 %patch44 -p1 +%patch45 -p1 %build autoreconf -fiv From df735c7bb5891041499729a7a30c5ab927b85b2a04cdb5536554ee29d43bddcb Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 3 Jul 2012 12:13:12 +0000 Subject: [PATCH 099/221] Accepting request 126920 from Base:System - Do not ship plymouth units, they are shipped by plymouth package now (bnc#769397). - Fix module loading (bnc#769462) OBS-URL: https://build.opensuse.org/request/show/126920 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=102 --- correct_plymouth_paths_and_conflicts.patch | 90 ---------------------- modules_on_boot.patch | 15 ++-- systemd.changes | 7 ++ systemd.spec | 23 +----- 4 files changed, 17 insertions(+), 118 deletions(-) delete mode 100644 correct_plymouth_paths_and_conflicts.patch diff --git a/correct_plymouth_paths_and_conflicts.patch b/correct_plymouth_paths_and_conflicts.patch deleted file mode 100644 index b6635875..00000000 --- a/correct_plymouth_paths_and_conflicts.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- systemd-43/units/plymouth-halt.service 2012-02-15 04:27:59.626029851 +0100 -+++ new/units/plymouth-halt.service 2012-02-21 18:28:16.225983153 +0100 -@@ -13,6 +13,6 @@ - ConditionKernelCommandLine=!plymouth.enable=0 - - [Service] --ExecStart=/sbin/plymouthd --mode=shutdown --ExecStartPost=-/bin/plymouth --show-splash -+ExecStart=/usr/sbin/plymouthd --mode=shutdown -+ExecStartPost=-/usr/bin/plymouth --show-splash - Type=forking ---- systemd-43/units/plymouth-kexec.service 2012-02-15 04:27:59.452029843 +0100 -+++ new/units/plymouth-kexec.service 2012-02-21 18:28:36.056981567 +0100 -@@ -13,6 +13,6 @@ - ConditionKernelCommandLine=!plymouth.enable=0 - - [Service] --ExecStart=/sbin/plymouthd --mode=shutdown --ExecStartPost=-/bin/plymouth --show-splash -+ExecStart=/usr/sbin/plymouthd --mode=shutdown -+ExecStartPost=-/usr/bin/plymouth --show-splash - Type=forking ---- systemd-43/units/plymouth-poweroff.service 2012-02-15 04:28:00.144029876 +0100 -+++ new/units/plymouth-poweroff.service 2012-02-21 18:28:45.495981246 +0100 -@@ -13,6 +13,6 @@ - ConditionKernelCommandLine=!plymouth.enable=0 - - [Service] --ExecStart=/sbin/plymouthd --mode=shutdown --ExecStartPost=-/bin/plymouth --show-splash -+ExecStart=/usr/sbin/plymouthd --mode=shutdown -+ExecStartPost=-/usr/bin/plymouth --show-splash - Type=forking ---- systemd-43/units/plymouth-quit.service 2012-02-15 04:28:00.134029876 +0100 -+++ new/units/plymouth-quit.service 2012-02-21 18:29:00.855980323 +0100 -@@ -8,8 +8,9 @@ - [Unit] - Description=Terminate Plymouth Boot Screen - After=rc-local.service plymouth-start.service -+Conflicts=graphical.target - - [Service] --ExecStart=-/bin/plymouth quit -+ExecStart=-/usr/bin/plymouth quit - Type=oneshot - TimeoutSec=20 ---- systemd-43/units/plymouth-quit-wait.service 2012-02-15 04:27:59.894029864 +0100 -+++ new/units/plymouth-quit-wait.service 2012-02-21 18:29:14.904979438 +0100 -@@ -8,8 +8,9 @@ - [Unit] - Description=Wait for Plymouth Boot Screen to Quit - After=rc-local.service plymouth-start.service -+Conflicts=graphical.target - - [Service] --ExecStart=-/bin/plymouth --wait -+ExecStart=-/usr/bin/plymouth --wait - Type=oneshot - TimeoutSec=20 ---- systemd-43/units/plymouth-read-write.service 2012-02-15 04:27:59.457029843 +0100 -+++ new/units/plymouth-read-write.service 2012-02-21 18:29:29.439978464 +0100 -@@ -12,5 +12,5 @@ - Before=sysinit.target - - [Service] --ExecStart=-/bin/plymouth update-root-fs --read-write -+ExecStart=-/usr/bin/plymouth update-root-fs --read-write - Type=oneshot ---- systemd-43/units/plymouth-reboot.service 2012-02-15 04:28:00.149029877 +0100 -+++ new/units/plymouth-reboot.service 2012-02-21 18:29:43.718977613 +0100 -@@ -13,6 +13,6 @@ - ConditionKernelCommandLine=!plymouth.enable=0 - - [Service] --ExecStart=/sbin/plymouthd --mode=shutdown --ExecStartPost=-/bin/plymouth --show-splash -+ExecStart=/usr/sbin/plymouthd --mode=shutdown -+ExecStartPost=-/usr/bin/plymouth --show-splash - Type=forking ---- systemd-43/units/plymouth-start.service 2012-02-15 04:28:00.174029878 +0100 -+++ new/units/plymouth-start.service 2012-02-21 18:30:01.994976517 +0100 -@@ -17,6 +17,6 @@ - ConditionKernelCommandLine=!plymouth.enable=0 - - [Service] --ExecStart=/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --ExecStartPost=-/bin/plymouth --show-splash -+ExecStart=/usr/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid -+ExecStartPost=-/usr/bin/plymouth --show-splash - Type=forking diff --git a/modules_on_boot.patch b/modules_on_boot.patch index 739c2f92..f1b6fdb4 100644 --- a/modules_on_boot.patch +++ b/modules_on_boot.patch @@ -7,10 +7,10 @@ Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) -Index: systemd-41/src/modules-load.c +Index: systemd-44/src/modules-load.c =================================================================== ---- systemd-41.orig/src/modules-load.c -+++ systemd-41/src/modules-load.c +--- systemd-44.orig/src/modules-load.c ++++ systemd-44/src/modules-load.c @@ -44,6 +44,9 @@ static void systemd_kmod_log(void *data, int main(int argc, char *argv[]) { int r = EXIT_FAILURE; @@ -21,7 +21,7 @@ Index: systemd-41/src/modules-load.c struct kmod_ctx *ctx; const int probe_flags = KMOD_PROBE_APPLY_BLACKLIST|KMOD_PROBE_IGNORE_LOADED; -@@ -141,9 +144,58 @@ int main(int argc, char *argv[]) { +@@ -141,9 +144,59 @@ int main(int argc, char *argv[]) { fclose(f); } @@ -67,6 +67,7 @@ Index: systemd-41/src/modules-load.c + } + kmod_module_unref_list(modlist); ++ modlist = NULL; + } + } + strv_free(modules); @@ -80,10 +81,10 @@ Index: systemd-41/src/modules-load.c kmod_unref(ctx); return r; -Index: systemd-41/units/systemd-modules-load.service.in +Index: systemd-44/units/systemd-modules-load.service.in =================================================================== ---- systemd-41.orig/units/systemd-modules-load.service.in -+++ systemd-41/units/systemd-modules-load.service.in +--- systemd-44.orig/units/systemd-modules-load.service.in ++++ systemd-44/units/systemd-modules-load.service.in @@ -11,6 +11,7 @@ DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service diff --git a/systemd.changes b/systemd.changes index 102a346e..a6f9884b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jul 2 15:44:28 UTC 2012 - fcrozat@suse.com + +- Do not ship plymouth units, they are shipped by plymouth package + now (bnc#769397). +- Fix module loading (bnc#769462) + ------------------------------------------------------------------- Thu Jun 7 13:14:40 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index cace4967..f670c1a5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -82,7 +82,6 @@ Patch31: lock-opensuse.patch Patch33: crypt-loop-file.patch Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch -Patch39: correct_plymouth_paths_and_conflicts.patch Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch # Upstream First - Policy: @@ -125,15 +124,6 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. -%package plymouth -Summary: Plymouth support for systemd -Group: System/Base -Requires: %{name} = %{version} -Requires: plymouth - -%description plymouth -Plymouth integration for systemd - %prep %setup -q %patch1 -p1 @@ -152,7 +142,6 @@ Plymouth integration for systemd %patch33 -p1 %patch36 -p1 %patch38 -p1 -%patch39 -p1 %patch40 -p1 %patch41 -p1 %patch42 -p1 @@ -166,6 +155,7 @@ autoreconf -fiv find . -name "*.[1-8]" -exec touch '{}' \; touch src/systemadm.c export V=1 +# disable plymouth at configure time, units are shipped in plymouth package now %configure \ --with-distro=suse \ --docdir=%{_docdir}/systemd \ @@ -173,6 +163,7 @@ export V=1 --with-pamlibdir=/%{_lib}/security \ --enable-split-usr \ --disable-gtk \ + --disable-plymouth \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -350,10 +341,6 @@ rm -rf %{buildroot} %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/systemd -# Packaged in plymouth subpackage -%exclude /lib/systemd/system/plymouth-*.service -%exclude /lib/systemd/system/*.wants/plymouth-*.service -%exclude /lib/systemd/system/systemd-ask-password-plymouth.* # Packaged in gtk subpackage %exclude %{_mandir}/man1/systemadm.1* # Packaged in sysvinit subpackage @@ -404,12 +391,6 @@ rm -rf %{buildroot} %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc -%files plymouth -%defattr(-,root,root,-) -/lib/systemd/system/plymouth-*.service -/lib/systemd/system/*.wants/plymouth-*.service -/lib/systemd/system/systemd-ask-password-plymouth.* - %files sysvinit %defattr(-,root,root,-) /sbin/init From 742890720c5f9b4cdf346abbd6b7ff64fb90c530cc5354f729bb321d1a989ffe Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 3 Jul 2012 19:42:50 +0000 Subject: [PATCH 100/221] Accepting request 127019 from Base:System - Add fix-dir-noatime-tmpfiles.patch: do not modify directory atime, which was preventing removing empty directories (bnc#751253, rh#810257). - Add improve-restart-behaviour.patch: prevent deadlock during try-restart (bnc#743218). - Add journal-bugfixes.patch: don't crash when rotating journal (bnc#768953) and prevent memleak at rotation time too. - Add ulimit-support.patch: add support for system wide ulimit (bnc#744818). - Add change-terminal.patch: use vt102 instead of vt100 as terminal for non-vc tty. - Package various .wants directories, which were no longer packaged due to plymouth units being removed from systemd package. - Fix buildrequires for manpages build. (forwarded request 127017 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/127019 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=103 --- change-terminal.patch | 37 + fix-dir-noatime-tmpfiles.patch | 41 + improve-restart-behaviour.patch | 7661 +++++++++++++++++++++++++++++++ journal-bugfixes.patch | 186 + systemd.changes | 18 + systemd.spec | 19 +- ulimit-support.patch | 253 + 7 files changed, 8213 insertions(+), 2 deletions(-) create mode 100644 change-terminal.patch create mode 100644 fix-dir-noatime-tmpfiles.patch create mode 100644 improve-restart-behaviour.patch create mode 100644 journal-bugfixes.patch create mode 100644 ulimit-support.patch diff --git a/change-terminal.patch b/change-terminal.patch new file mode 100644 index 00000000..93d877c0 --- /dev/null +++ b/change-terminal.patch @@ -0,0 +1,37 @@ +From 1505a61772a6e697f2aabdbb0e827a88b0d7ee6b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 22 Apr 2012 02:45:39 +0200 +Subject: [PATCH] default to v102 everywhere, instead of vt100, to synchronize + with agetty + +--- + src/util.c | 2 +- + units/serial-getty@.service.m4 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-44/src/util.c +=================================================================== +--- systemd-44.orig/src/util.c ++++ systemd-44/src/util.c +@@ -4425,7 +4425,7 @@ bool tty_is_vc_resolve(const char *tty) + const char *default_term_for_tty(const char *tty) { + assert(tty); + +- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt100"; ++ return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102"; + } + + bool dirent_is_file(const struct dirent *de) { +Index: systemd-44/units/serial-getty@.service.m4 +=================================================================== +--- systemd-44.orig/units/serial-getty@.service.m4 ++++ systemd-44/units/serial-getty@.service.m4 +@@ -35,7 +35,7 @@ Before=getty.target + IgnoreOnIsolate=yes + + [Service] +-Environment=TERM=vt100 ++Environment=TERM=vt102 + ExecStart=-/sbin/agetty -s %I 115200,38400,9600 + Restart=always + RestartSec=0 diff --git a/fix-dir-noatime-tmpfiles.patch b/fix-dir-noatime-tmpfiles.patch new file mode 100644 index 00000000..714ada2f --- /dev/null +++ b/fix-dir-noatime-tmpfiles.patch @@ -0,0 +1,41 @@ +From de49f6dd99aca059da24c9afc672782f1768abd2 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 11 Apr 2012 21:33:12 +0200 +Subject: [PATCH] tmpfiles: open directories with O_NOATIME to preserve + timestamp + +Before: + # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' + Access: 2012-04-11 21:32:48.444920237 +0200 + # systemd-tmpfiles --clean + # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' + Access: 2012-04-11 21:36:27.628925459 +0200 + +After: + # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' + Access: 2012-04-11 21:32:48.444920237 +0200 + # ./systemd-tmpfiles --clean + # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' + Access: 2012-04-11 21:32:48.444920237 +0200 + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=810257 +--- + src/tmpfiles.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/tmpfiles.c b/src/tmpfiles.c +index 21bf44d..09eefcf 100644 +--- a/src/tmpfiles.c ++++ b/src/tmpfiles.c +@@ -250,7 +250,7 @@ static int dir_cleanup( + DIR *sub_dir; + int q; + +- sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW); ++ sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW|O_NOATIME); + if (sub_dir == NULL) { + if (errno != ENOENT) { + log_error("opendir(%s/%s) failed: %m", p, dent->d_name); +-- +1.7.7 + diff --git a/improve-restart-behaviour.patch b/improve-restart-behaviour.patch new file mode 100644 index 00000000..28521824 --- /dev/null +++ b/improve-restart-behaviour.patch @@ -0,0 +1,7661 @@ +From 4cbb803c2197b6be6be709a11911bde00f6853f6 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 28 Mar 2012 00:42:27 +0200 +Subject: [PATCH 01/30] job: fix loss of ordering with restart jobs + +Suppose that foo.service/start is a job waiting on other job bar.service/start +to finish. And then foo.service/restart is enqueued (not using +--ignore-dependencies). + +Currently this makes foo.service start immediately, forgetting about the +ordering to bar.service. + +The runnability check for JOB_RESTART jobs looks only at dependencies for +stopping. That's actually correct, because restart jobs should be treated the +same as stop jobs at first. The bug is that job_run_and_invalidate() does not +treat them exactly the same as stop jobs. unit_start() gets called without +checking for the runnability of the converted JOB_START job. + +The fix is to simplify the switch in job_run_and_invalidate(). Handle +JOB_RESTART identically to JOB_STOP. +Also simplify the handling of JOB_TRY_RESTART - just convert it to JOB_RESTART +if the unit is active and let it fall through to the JOB_RESTART case. +Similarly for JOB_RELOAD_OR_START - have a fall through to JOB_START. + +In job_finish_and_invalidate() it's not necessary to check for JOB_TRY_RESTART +with JOB_DONE, because JOB_TRY_RESTART jobs will have been converted to +JOB_RESTART already. + +Speeding up the restart of services in "auto-restart" state still works as +before. + +Improves: https://bugzilla.redhat.com/show_bug.cgi?id=753586 +but it's still not perfect. With this fix the try-restart action will wait for +the restart to complete in the right order, but the optimal behaviour would be +to finish quickly (without disturbing the start job). +--- + src/job.c | 64 ++++++++++++++++++++----------------------------------------- + 1 files changed, 21 insertions(+), 43 deletions(-) + +diff --git a/src/job.c b/src/job.c +index e57286f..d43ce8e 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -387,14 +387,21 @@ int job_run_and_invalidate(Job *j) { + + switch (j->type) { + ++ case JOB_RELOAD_OR_START: ++ if (unit_active_state(j->unit) == UNIT_ACTIVE) { ++ j->type = JOB_RELOAD; ++ r = unit_reload(j->unit); ++ break; ++ } ++ j->type = JOB_START; ++ /* fall through */ ++ + case JOB_START: + r = unit_start(j->unit); + +- /* If this unit cannot be started, then simply +- * wait */ ++ /* If this unit cannot be started, then simply wait */ + if (r == -EBADR) + r = 0; +- + break; + + case JOB_VERIFY_ACTIVE: { +@@ -408,11 +415,19 @@ int job_run_and_invalidate(Job *j) { + break; + } + ++ case JOB_TRY_RESTART: ++ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(unit_active_state(j->unit))) { ++ r = -ENOEXEC; ++ break; ++ } ++ j->type = JOB_RESTART; ++ /* fall through */ ++ + case JOB_STOP: ++ case JOB_RESTART: + r = unit_stop(j->unit); + +- /* If this unit cannot stopped, then simply +- * wait. */ ++ /* If this unit cannot stopped, then simply wait. */ + if (r == -EBADR) + r = 0; + break; +@@ -421,43 +436,6 @@ int job_run_and_invalidate(Job *j) { + r = unit_reload(j->unit); + break; + +- case JOB_RELOAD_OR_START: +- if (unit_active_state(j->unit) == UNIT_ACTIVE) { +- j->type = JOB_RELOAD; +- r = unit_reload(j->unit); +- } else { +- j->type = JOB_START; +- r = unit_start(j->unit); +- +- if (r == -EBADR) +- r = 0; +- } +- break; +- +- case JOB_RESTART: { +- UnitActiveState t = unit_active_state(j->unit); +- if (t == UNIT_INACTIVE || t == UNIT_FAILED || t == UNIT_ACTIVATING) { +- j->type = JOB_START; +- r = unit_start(j->unit); +- } else +- r = unit_stop(j->unit); +- break; +- } +- +- case JOB_TRY_RESTART: { +- UnitActiveState t = unit_active_state(j->unit); +- if (t == UNIT_INACTIVE || t == UNIT_FAILED || t == UNIT_DEACTIVATING) +- r = -ENOEXEC; +- else if (t == UNIT_ACTIVATING) { +- j->type = JOB_START; +- r = unit_start(j->unit); +- } else { +- j->type = JOB_RESTART; +- r = unit_stop(j->unit); +- } +- break; +- } +- + default: + assert_not_reached("Unknown job type"); + } +@@ -536,7 +514,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + job_add_to_dbus_queue(j); + + /* Patch restart jobs so that they become normal start jobs */ +- if (result == JOB_DONE && (j->type == JOB_RESTART || j->type == JOB_TRY_RESTART)) { ++ if (result == JOB_DONE && j->type == JOB_RESTART) { + + log_debug("Converting job %s/%s -> %s/%s", + j->unit->id, job_type_to_string(j->type), +-- +1.7.7 + + +From 8166db595346260a3e36206249f7e82bc9ad7406 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 28 Mar 2012 01:26:04 +0200 +Subject: [PATCH 02/30] job: add debug prints where job type gets changed + +Conflicts: + + src/job.c +--- + src/job.c | 14 +++++++++----- + 1 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/job.c b/src/job.c +index d43ce8e..6a4d8a7 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -355,6 +355,14 @@ bool job_is_runnable(Job *j) { + return true; + } + ++static void job_change_type(Job *j, JobType newtype) { ++ log_debug("Converting job %s/%s -> %s/%s", ++ j->unit->id, job_type_to_string(j->type), ++ j->unit->id, job_type_to_string(newtype)); ++ ++ j->type = newtype; ++} ++ + int job_run_and_invalidate(Job *j) { + int r; + uint32_t id; +@@ -516,12 +524,8 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + /* Patch restart jobs so that they become normal start jobs */ + if (result == JOB_DONE && j->type == JOB_RESTART) { + +- log_debug("Converting job %s/%s -> %s/%s", +- j->unit->id, job_type_to_string(j->type), +- j->unit->id, job_type_to_string(JOB_START)); +- ++ job_change_type(j, JOB_START); + j->state = JOB_WAITING; +- j->type = JOB_START; + + job_add_to_run_queue(j); + +-- +1.7.7 + + +From b0055c992aefe7512ad0f53d7c6e202d4db2bf53 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 5 Apr 2012 08:34:05 +0200 +Subject: [PATCH 03/30] job: use a lookup table for merging of job types + +It is easier to see what job_type_merge() is doing when the merging +rules are written in the form of a table. + +job_type_is_superset() contained redundant information. It can be +simplified to a simple rule: Type A is a superset of B iff merging A +with B gives A. + +Two job types are conflicting iff they are not mergeable. + +Make job_type_lookup_merge() the core function to decide the type +merging. All other job_type_*() are just short wrappers around it. +They can be inline. + +test-job-type gives the same results as before. +btw, the systemd binary is smaller by almost 1 KB. +(cherry picked from commit 348e27fedfd4cdd2238ff31a46785a70b9dc6fc0) +--- + src/job.c | 123 +++++++++++++++++------------------------------------------- + src/job.h | 29 ++++++++++++-- + 2 files changed, 60 insertions(+), 92 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 6a4d8a7..da939fb 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -164,100 +164,47 @@ bool job_is_anchor(Job *j) { + return false; + } + +-static bool types_match(JobType a, JobType b, JobType c, JobType d) { +- return +- (a == c && b == d) || +- (a == d && b == c); +-} +- +-int job_type_merge(JobType *a, JobType b) { +- if (*a == b) +- return 0; +- +- /* Merging is associative! a merged with b merged with c is +- * the same as a merged with c merged with b. */ +- +- /* Mergeability is transitive! if a can be merged with b and b +- * with c then a also with c */ +- +- /* Also, if a merged with b cannot be merged with c, then +- * either a or b cannot be merged with c either */ +- +- if (types_match(*a, b, JOB_START, JOB_VERIFY_ACTIVE)) +- *a = JOB_START; +- else if (types_match(*a, b, JOB_START, JOB_RELOAD) || +- types_match(*a, b, JOB_START, JOB_RELOAD_OR_START) || +- types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_RELOAD_OR_START) || +- types_match(*a, b, JOB_RELOAD, JOB_RELOAD_OR_START)) +- *a = JOB_RELOAD_OR_START; +- else if (types_match(*a, b, JOB_START, JOB_RESTART) || +- types_match(*a, b, JOB_START, JOB_TRY_RESTART) || +- types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_RESTART) || +- types_match(*a, b, JOB_RELOAD, JOB_RESTART) || +- types_match(*a, b, JOB_RELOAD_OR_START, JOB_RESTART) || +- types_match(*a, b, JOB_RELOAD_OR_START, JOB_TRY_RESTART) || +- types_match(*a, b, JOB_RESTART, JOB_TRY_RESTART)) +- *a = JOB_RESTART; +- else if (types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_RELOAD)) +- *a = JOB_RELOAD; +- else if (types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_TRY_RESTART) || +- types_match(*a, b, JOB_RELOAD, JOB_TRY_RESTART)) +- *a = JOB_TRY_RESTART; +- else +- return -EEXIST; +- +- return 0; +-} +- +-bool job_type_is_mergeable(JobType a, JobType b) { +- return job_type_merge(&a, b) >= 0; +-} +- +-bool job_type_is_superset(JobType a, JobType b) { ++/* ++ * Merging is commutative, so imagine the matrix as symmetric. We store only ++ * its lower triangle to avoid duplication. We don't store the main diagonal, ++ * because A merged with A is simply A. ++ * ++ * Merging is associative! A merged with B merged with C is the same as ++ * A merged with C merged with B. ++ * ++ * Mergeability is transitive! If A can be merged with B and B with C then ++ * A also with C. ++ * ++ * Also, if A merged with B cannot be merged with C, then either A or B cannot ++ * be merged with C either. ++ */ ++static const JobType job_merging_table[] = { ++/* What \ With * JOB_START JOB_VERIFY_ACTIVE JOB_STOP JOB_RELOAD JOB_RELOAD_OR_START JOB_RESTART JOB_TRY_RESTART */ ++/************************************************************************************************************************************/ ++/*JOB_START */ ++/*JOB_VERIFY_ACTIVE */ JOB_START, ++/*JOB_STOP */ -1, -1, ++/*JOB_RELOAD */ JOB_RELOAD_OR_START, JOB_RELOAD, -1, ++/*JOB_RELOAD_OR_START*/ JOB_RELOAD_OR_START, JOB_RELOAD_OR_START, -1, JOB_RELOAD_OR_START, ++/*JOB_RESTART */ JOB_RESTART, JOB_RESTART, -1, JOB_RESTART, JOB_RESTART, ++/*JOB_TRY_RESTART */ JOB_RESTART, JOB_TRY_RESTART, -1, JOB_TRY_RESTART, JOB_RESTART, JOB_RESTART, ++}; + +- /* Checks whether operation a is a "superset" of b in its +- * actions */ ++JobType job_type_lookup_merge(JobType a, JobType b) { ++ assert_cc(ELEMENTSOF(job_merging_table) == _JOB_TYPE_MAX * (_JOB_TYPE_MAX - 1) / 2); ++ assert(a >= 0 && a < _JOB_TYPE_MAX); ++ assert(b >= 0 && b < _JOB_TYPE_MAX); + + if (a == b) +- return true; +- +- switch (a) { +- case JOB_START: +- return b == JOB_VERIFY_ACTIVE; +- +- case JOB_RELOAD: +- return +- b == JOB_VERIFY_ACTIVE; +- +- case JOB_RELOAD_OR_START: +- return +- b == JOB_RELOAD || +- b == JOB_START || +- b == JOB_VERIFY_ACTIVE; +- +- case JOB_RESTART: +- return +- b == JOB_START || +- b == JOB_VERIFY_ACTIVE || +- b == JOB_RELOAD || +- b == JOB_RELOAD_OR_START || +- b == JOB_TRY_RESTART; +- +- case JOB_TRY_RESTART: +- return +- b == JOB_VERIFY_ACTIVE || +- b == JOB_RELOAD; +- default: +- return false; ++ return a; + ++ if (a < b) { ++ JobType tmp = a; ++ a = b; ++ b = tmp; + } +-} +- +-bool job_type_is_conflicting(JobType a, JobType b) { +- assert(a >= 0 && a < _JOB_TYPE_MAX); +- assert(b >= 0 && b < _JOB_TYPE_MAX); + +- return (a == JOB_STOP) != (b == JOB_STOP); ++ return job_merging_table[(a - 1) * a / 2 + b]; + } + + bool job_type_is_redundant(JobType a, UnitActiveState b) { +diff --git a/src/job.h b/src/job.h +index 2121426..60a43e0 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -24,6 +24,7 @@ + + #include + #include ++#include + + typedef struct Job Job; + typedef struct JobDependency JobDependency; +@@ -37,6 +38,7 @@ typedef enum JobResult JobResult; + #include "hashmap.h" + #include "list.h" + ++/* Be careful when changing the job types! Adjust job_merging_table[] accordingly! */ + enum JobType { + JOB_START, /* if a unit does not support being started, we'll just wait until it becomes active */ + JOB_VERIFY_ACTIVE, +@@ -145,10 +147,29 @@ bool job_is_anchor(Job *j); + + int job_merge(Job *j, Job *other); + +-int job_type_merge(JobType *a, JobType b); +-bool job_type_is_mergeable(JobType a, JobType b); +-bool job_type_is_superset(JobType a, JobType b); +-bool job_type_is_conflicting(JobType a, JobType b); ++JobType job_type_lookup_merge(JobType a, JobType b); ++ ++static inline int job_type_merge(JobType *a, JobType b) { ++ JobType t = job_type_lookup_merge(*a, b); ++ if (t < 0) ++ return -EEXIST; ++ *a = t; ++ return 0; ++} ++ ++static inline bool job_type_is_mergeable(JobType a, JobType b) { ++ return job_type_lookup_merge(a, b) >= 0; ++} ++ ++static inline bool job_type_is_conflicting(JobType a, JobType b) { ++ return !job_type_is_mergeable(a, b); ++} ++ ++static inline bool job_type_is_superset(JobType a, JobType b) { ++ /* Checks whether operation a is a "superset" of b in its actions */ ++ return a == job_type_lookup_merge(a, b); ++} ++ + bool job_type_is_redundant(JobType a, UnitActiveState b); + + bool job_is_runnable(Job *j); +-- +1.7.7 + + +From 5503c3419fbcceebb6f8e94c291457adb260537b Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 19 Apr 2012 23:20:34 +0200 +Subject: [PATCH 04/30] job: allow job_free() only on already unlinked jobs + +job_free() is IMO too helpful when it unlinks the job from the transaction. +The callers should ensure the job is already unlinked before freeing. +The added assertions check if anyone gets it wrong. +(cherry picked from commit 02a3bcc6b4372ca50c0a62b193f9a75b988ffa69) +--- + src/job.c | 6 ++++-- + src/manager.c | 11 ++++++++--- + src/manager.h | 2 -- + 3 files changed, 12 insertions(+), 7 deletions(-) + +diff --git a/src/job.c b/src/job.c +index da939fb..8e4d93e 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -71,8 +71,10 @@ void job_free(Job *j) { + j->installed = false; + } + +- /* Detach from next 'smaller' objects */ +- manager_transaction_unlink_job(j->manager, j, true); ++ assert(!j->transaction_prev); ++ assert(!j->transaction_next); ++ assert(!j->subject_list); ++ assert(!j->object_list); + + if (j->in_run_queue) + LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); +diff --git a/src/manager.c b/src/manager.c +index 74bd740..c77b5d2 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -637,13 +637,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + return r; + } + ++static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies); ++ + static void transaction_delete_job(Manager *m, Job *j, bool delete_dependencies) { + assert(m); + assert(j); + + /* Deletes one job from the transaction */ + +- manager_transaction_unlink_job(m, j, delete_dependencies); ++ transaction_unlink_job(m, j, delete_dependencies); + + if (!j->installed) + job_free(j); +@@ -685,8 +687,10 @@ static void transaction_abort(Manager *m) { + while ((j = hashmap_first(m->transaction_jobs))) + if (j->installed) + transaction_delete_job(m, j, true); +- else ++ else { ++ transaction_unlink_job(m, j, true); + job_free(j); ++ } + + assert(hashmap_isempty(m->transaction_jobs)); + +@@ -1415,6 +1419,7 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o + LIST_PREPEND(Job, transaction, f, j); + + if (hashmap_replace(m->transaction_jobs, unit, f) < 0) { ++ LIST_REMOVE(Job, transaction, f, j); + job_free(j); + return NULL; + } +@@ -1427,7 +1432,7 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o + return j; + } + +-void manager_transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) { ++static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) { + assert(m); + assert(j); + +diff --git a/src/manager.h b/src/manager.h +index a9d08f0..64d8d0e 100644 +--- a/src/manager.h ++++ b/src/manager.h +@@ -254,8 +254,6 @@ int manager_add_job_by_name(Manager *m, JobType type, const char *name, JobMode + void manager_dump_units(Manager *s, FILE *f, const char *prefix); + void manager_dump_jobs(Manager *s, FILE *f, const char *prefix); + +-void manager_transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies); +- + void manager_clear_jobs(Manager *m); + + unsigned manager_dispatch_load_queue(Manager *m); +-- +1.7.7 + + +From c2c46edd09f2d0eefc127d22fd38312bf2bed01a Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 19 Apr 2012 23:23:04 +0200 +Subject: [PATCH 05/30] manager: simplify transaction_abort() + +This is equivalent. +(cherry picked from commit 121b3b318042b7fd67ac96601971c1c2f9b77be5) +--- + src/manager.c | 7 +------ + 1 files changed, 1 insertions(+), 6 deletions(-) + +diff --git a/src/manager.c b/src/manager.c +index c77b5d2..cac1fe8 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -685,12 +685,7 @@ static void transaction_abort(Manager *m) { + assert(m); + + while ((j = hashmap_first(m->transaction_jobs))) +- if (j->installed) +- transaction_delete_job(m, j, true); +- else { +- transaction_unlink_job(m, j, true); +- job_free(j); +- } ++ transaction_delete_job(m, j, true); + + assert(hashmap_isempty(m->transaction_jobs)); + +-- +1.7.7 + + +From 4eb87c1148bd48b5d121297f72aa47eb39482ad3 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 10:21:37 +0200 +Subject: [PATCH 06/30] job: job_uninstall() + +Split the uninstallation of the job from job_free() into a separate function. +Adjust the callers. + +job_free() now only works on unlinked and uninstalled jobs. This enforces clear +thinking about job lifetimes. +(cherry picked from commit 97e7d748d1bf26790fc3b2607885f4ac8c4ecf3a) +--- + src/job.c | 25 ++++++++++++++----------- + src/job.h | 1 + + src/manager.c | 8 ++++++-- + src/unit.c | 7 +++++-- + 4 files changed, 26 insertions(+), 15 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 8e4d93e..35e358d 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -55,22 +55,24 @@ Job* job_new(Manager *m, JobType type, Unit *unit) { + return j; + } + +-void job_free(Job *j) { +- assert(j); +- ++void job_uninstall(Job *j) { ++ assert(j->installed); + /* Detach from next 'bigger' objects */ +- if (j->installed) { +- bus_job_send_removed_signal(j); + +- if (j->unit->job == j) { +- j->unit->job = NULL; +- unit_add_to_gc_queue(j->unit); +- } ++ bus_job_send_removed_signal(j); + +- hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); +- j->installed = false; ++ if (j->unit->job == j) { ++ j->unit->job = NULL; ++ unit_add_to_gc_queue(j->unit); + } + ++ hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); ++ j->installed = false; ++} ++ ++void job_free(Job *j) { ++ assert(j); ++ assert(!j->installed); + assert(!j->transaction_prev); + assert(!j->transaction_next); + assert(!j->subject_list); +@@ -491,6 +493,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + + u = j->unit; + t = j->type; ++ job_uninstall(j); + job_free(j); + + job_print_status_message(u, t, result); +diff --git a/src/job.h b/src/job.h +index 60a43e0..ed375fa 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -137,6 +137,7 @@ struct Job { + }; + + Job* job_new(Manager *m, JobType type, Unit *unit); ++void job_uninstall(Job *j); + void job_free(Job *job); + void job_dump(Job *j, FILE*f, const char *prefix); + +diff --git a/src/manager.c b/src/manager.c +index cac1fe8..f8e5d64 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -1249,13 +1249,17 @@ static int transaction_apply(Manager *m, JobMode mode) { + } + + while ((j = hashmap_steal_first(m->transaction_jobs))) { ++ Job *uj; + if (j->installed) { + /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ + continue; + } + +- if (j->unit->job) +- job_free(j->unit->job); ++ uj = j->unit->job; ++ if (uj) { ++ job_uninstall(uj); ++ job_free(uj); ++ } + + j->unit->job = j; + j->installed = true; +diff --git a/src/unit.c b/src/unit.c +index 9e33701..1949995 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -352,8 +352,11 @@ void unit_free(Unit *u) { + SET_FOREACH(t, u->names, i) + hashmap_remove_value(u->manager->units, t, u); + +- if (u->job) +- job_free(u->job); ++ if (u->job) { ++ Job *j = u->job; ++ job_uninstall(j); ++ job_free(j); ++ } + + for (d = 0; d < _UNIT_DEPENDENCY_MAX; d++) + bidi_set_free(u, u->dependencies[d]); +-- +1.7.7 + + +From b95d521e3816800bf43d5e11cef58b69b360233d Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 10:22:07 +0200 +Subject: [PATCH 07/30] manager: Transaction as an object + +This makes it obvious that transactions are short-lived. They are created in +manager_add_job() and destroyed after the application of jobs. +It also prepares for a split of the transaction code to a new source. +(cherry picked from commit 7527cb527598aaabf0ed9b38a352edb28536392a) +--- + src/job.c | 8 +- + src/job.h | 4 +- + src/manager.c | 390 +++++++++++++++++++++++++++++++-------------------------- + src/manager.h | 11 +- + 4 files changed, 225 insertions(+), 188 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 35e358d..6d48748 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -97,7 +97,7 @@ void job_free(Job *j) { + free(j); + } + +-JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { ++JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr) { + JobDependency *l; + + assert(object); +@@ -118,20 +118,20 @@ JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool + if (subject) + LIST_PREPEND(JobDependency, subject, subject->subject_list, l); + else +- LIST_PREPEND(JobDependency, subject, object->manager->transaction_anchor, l); ++ LIST_PREPEND(JobDependency, subject, tr->anchor, l); + + LIST_PREPEND(JobDependency, object, object->object_list, l); + + return l; + } + +-void job_dependency_free(JobDependency *l) { ++void job_dependency_free(JobDependency *l, Transaction *tr) { + assert(l); + + if (l->subject) + LIST_REMOVE(JobDependency, subject, l->subject->subject_list, l); + else +- LIST_REMOVE(JobDependency, subject, l->object->manager->transaction_anchor, l); ++ LIST_REMOVE(JobDependency, subject, tr->anchor, l); + + LIST_REMOVE(JobDependency, object, l->object->object_list, l); + +diff --git a/src/job.h b/src/job.h +index ed375fa..18ba64f 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -141,8 +141,8 @@ void job_uninstall(Job *j); + void job_free(Job *job); + void job_dump(Job *j, FILE*f, const char *prefix); + +-JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); +-void job_dependency_free(JobDependency *l); ++JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr); ++void job_dependency_free(JobDependency *l, Transaction *tr); + + bool job_is_anchor(Job *j); + +diff --git a/src/manager.c b/src/manager.c +index f8e5d64..ff4249d 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -259,9 +259,6 @@ int manager_new(ManagerRunningAs running_as, Manager **_m) { + if (!(m->jobs = hashmap_new(trivial_hash_func, trivial_compare_func))) + goto fail; + +- if (!(m->transaction_jobs = hashmap_new(trivial_hash_func, trivial_compare_func))) +- goto fail; +- + if (!(m->watch_pids = hashmap_new(trivial_hash_func, trivial_compare_func))) + goto fail; + +@@ -429,14 +426,10 @@ static unsigned manager_dispatch_gc_queue(Manager *m) { + } + + static void manager_clear_jobs_and_units(Manager *m) { +- Job *j; + Unit *u; + + assert(m); + +- while ((j = hashmap_first(m->transaction_jobs))) +- job_free(j); +- + while ((u = hashmap_first(m->units))) + unit_free(u); + +@@ -449,7 +442,6 @@ static void manager_clear_jobs_and_units(Manager *m) { + assert(!m->cleanup_queue); + assert(!m->gc_queue); + +- assert(hashmap_isempty(m->transaction_jobs)); + assert(hashmap_isempty(m->jobs)); + assert(hashmap_isempty(m->units)); + } +@@ -475,7 +467,6 @@ void manager_free(Manager *m) { + + hashmap_free(m->units); + hashmap_free(m->jobs); +- hashmap_free(m->transaction_jobs); + hashmap_free(m->watch_pids); + hashmap_free(m->watch_bus); + +@@ -637,65 +628,47 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + return r; + } + +-static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies); ++static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies); + +-static void transaction_delete_job(Manager *m, Job *j, bool delete_dependencies) { +- assert(m); ++static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependencies) { ++ assert(tr); + assert(j); + + /* Deletes one job from the transaction */ + +- transaction_unlink_job(m, j, delete_dependencies); ++ transaction_unlink_job(tr, j, delete_dependencies); + + if (!j->installed) + job_free(j); + } + +-static void transaction_delete_unit(Manager *m, Unit *u) { ++static void transaction_delete_unit(Transaction *tr, Unit *u) { + Job *j; + + /* Deletes all jobs associated with a certain unit from the + * transaction */ + +- while ((j = hashmap_get(m->transaction_jobs, u))) +- transaction_delete_job(m, j, true); +-} +- +-static void transaction_clean_dependencies(Manager *m) { +- Iterator i; +- Job *j; +- +- assert(m); +- +- /* Drops all dependencies of all installed jobs */ +- +- HASHMAP_FOREACH(j, m->jobs, i) { +- while (j->subject_list) +- job_dependency_free(j->subject_list); +- while (j->object_list) +- job_dependency_free(j->object_list); +- } +- +- assert(!m->transaction_anchor); ++ while ((j = hashmap_get(tr->jobs, u))) ++ transaction_delete_job(tr, j, true); + } + +-static void transaction_abort(Manager *m) { ++static void transaction_abort(Transaction *tr) { + Job *j; + +- assert(m); ++ assert(tr); + +- while ((j = hashmap_first(m->transaction_jobs))) +- transaction_delete_job(m, j, true); ++ while ((j = hashmap_first(tr->jobs))) ++ transaction_delete_job(tr, j, true); + +- assert(hashmap_isempty(m->transaction_jobs)); ++ assert(hashmap_isempty(tr->jobs)); + +- transaction_clean_dependencies(m); ++ assert(!tr->anchor); + } + +-static void transaction_find_jobs_that_matter_to_anchor(Manager *m, Job *j, unsigned generation) { ++static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { + JobDependency *l; + +- assert(m); ++ assert(tr); + + /* A recursive sweep through the graph that marks all units + * that matter to the anchor job, i.e. are directly or +@@ -705,7 +678,7 @@ static void transaction_find_jobs_that_matter_to_anchor(Manager *m, Job *j, unsi + if (j) + l = j->subject_list; + else +- l = m->transaction_anchor; ++ l = tr->anchor; + + LIST_FOREACH(subject, l, l) { + +@@ -720,11 +693,11 @@ static void transaction_find_jobs_that_matter_to_anchor(Manager *m, Job *j, unsi + l->object->matters_to_anchor = true; + l->object->generation = generation; + +- transaction_find_jobs_that_matter_to_anchor(m, l->object, generation); ++ transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); + } + } + +-static void transaction_merge_and_delete_job(Manager *m, Job *j, Job *other, JobType t) { ++static void transaction_merge_and_delete_job(Transaction *tr, Job *j, Job *other, JobType t) { + JobDependency *l, *last; + + assert(j); +@@ -775,7 +748,7 @@ static void transaction_merge_and_delete_job(Manager *m, Job *j, Job *other, Job + /* Kill the other job */ + other->subject_list = NULL; + other->object_list = NULL; +- transaction_delete_job(m, other, true); ++ transaction_delete_job(tr, other, true); + } + static bool job_is_conflicted_by(Job *j) { + JobDependency *l; +@@ -792,7 +765,7 @@ static bool job_is_conflicted_by(Job *j) { + return false; + } + +-static int delete_one_unmergeable_job(Manager *m, Job *j) { ++static int delete_one_unmergeable_job(Transaction *tr, Job *j) { + Job *k; + + assert(j); +@@ -853,23 +826,23 @@ static int delete_one_unmergeable_job(Manager *m, Job *j) { + + /* Ok, we can drop one, so let's do so. */ + log_debug("Fixing conflicting jobs by deleting job %s/%s", d->unit->id, job_type_to_string(d->type)); +- transaction_delete_job(m, d, true); ++ transaction_delete_job(tr, d, true); + return 0; + } + + return -EINVAL; + } + +-static int transaction_merge_jobs(Manager *m, DBusError *e) { ++static int transaction_merge_jobs(Transaction *tr, DBusError *e) { + Job *j; + Iterator i; + int r; + +- assert(m); ++ assert(tr); + + /* First step, check whether any of the jobs for one specific + * task conflict. If so, try to drop one of them. */ +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + JobType t; + Job *k; + +@@ -882,7 +855,8 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { + * action. Let's see if we can get rid of one + * of them */ + +- if ((r = delete_one_unmergeable_job(m, j)) >= 0) ++ r = delete_one_unmergeable_job(tr, j); ++ if (r >= 0) + /* Ok, we managed to drop one, now + * let's ask our callers to call us + * again after garbage collecting */ +@@ -896,7 +870,7 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { + } + + /* Second step, merge the jobs. */ +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + JobType t = j->type; + Job *k; + +@@ -910,14 +884,14 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { + + while ((k = j->transaction_next)) { + if (j->installed) { +- transaction_merge_and_delete_job(m, k, j, t); ++ transaction_merge_and_delete_job(tr, k, j, t); + j = k; + } else +- transaction_merge_and_delete_job(m, j, k, t); ++ transaction_merge_and_delete_job(tr, j, k, t); + } + + if (j->unit->job && !j->installed) +- transaction_merge_and_delete_job(m, j, j->unit->job, t); ++ transaction_merge_and_delete_job(tr, j, j->unit->job, t); + + assert(!j->transaction_next); + assert(!j->transaction_prev); +@@ -926,10 +900,10 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { + return 0; + } + +-static void transaction_drop_redundant(Manager *m) { ++static void transaction_drop_redundant(Transaction *tr) { + bool again; + +- assert(m); ++ assert(tr); + + /* Goes through the transaction and removes all jobs that are + * a noop */ +@@ -940,7 +914,7 @@ static void transaction_drop_redundant(Manager *m) { + + again = false; + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + bool changes_something = false; + Job *k; + +@@ -959,7 +933,7 @@ static void transaction_drop_redundant(Manager *m) { + continue; + + /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ +- transaction_delete_job(m, j, false); ++ transaction_delete_job(tr, j, false); + again = true; + break; + } +@@ -981,12 +955,12 @@ static bool unit_matters_to_anchor(Unit *u, Job *j) { + return false; + } + +-static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned generation, DBusError *e) { ++static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsigned generation, DBusError *e) { + Iterator i; + Unit *u; + int r; + +- assert(m); ++ assert(tr); + assert(j); + assert(!j->transaction_prev); + +@@ -1033,7 +1007,7 @@ static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned + + if (delete) { + log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); +- transaction_delete_unit(m, delete->unit); ++ transaction_delete_unit(tr, delete->unit); + return -EAGAIN; + } + +@@ -1056,15 +1030,18 @@ static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned + Job *o; + + /* Is there a job for this unit? */ +- if (!(o = hashmap_get(m->transaction_jobs, u))) +- ++ o = hashmap_get(tr->jobs, u); ++ if (!o) { + /* Ok, there is no job for this in the + * transaction, but maybe there is already one + * running? */ +- if (!(o = u->job)) ++ o = u->job; ++ if (!o) + continue; ++ } + +- if ((r = transaction_verify_order_one(m, o, j, generation, e)) < 0) ++ r = transaction_verify_order_one(tr, o, j, generation, e); ++ if (r < 0) + return r; + } + +@@ -1075,13 +1052,13 @@ static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned + return 0; + } + +-static int transaction_verify_order(Manager *m, unsigned *generation, DBusError *e) { ++static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusError *e) { + Job *j; + int r; + Iterator i; + unsigned g; + +- assert(m); ++ assert(tr); + assert(generation); + + /* Check if the ordering graph is cyclic. If it is, try to fix +@@ -1089,17 +1066,17 @@ static int transaction_verify_order(Manager *m, unsigned *generation, DBusError + + g = (*generation)++; + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) +- if ((r = transaction_verify_order_one(m, j, NULL, g, e)) < 0) ++ HASHMAP_FOREACH(j, tr->jobs, i) ++ if ((r = transaction_verify_order_one(tr, j, NULL, g, e)) < 0) + return r; + + return 0; + } + +-static void transaction_collect_garbage(Manager *m) { ++static void transaction_collect_garbage(Transaction *tr) { + bool again; + +- assert(m); ++ assert(tr); + + /* Drop jobs that are not required by any other job */ + +@@ -1109,7 +1086,7 @@ static void transaction_collect_garbage(Manager *m) { + + again = false; + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + if (j->object_list) { + /* log_debug("Keeping job %s/%s because of %s/%s", */ + /* j->unit->id, job_type_to_string(j->type), */ +@@ -1119,7 +1096,7 @@ static void transaction_collect_garbage(Manager *m) { + } + + /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ +- transaction_delete_job(m, j, true); ++ transaction_delete_job(tr, j, true); + again = true; + break; + } +@@ -1127,16 +1104,16 @@ static void transaction_collect_garbage(Manager *m) { + } while (again); + } + +-static int transaction_is_destructive(Manager *m, DBusError *e) { ++static int transaction_is_destructive(Transaction *tr, DBusError *e) { + Iterator i; + Job *j; + +- assert(m); ++ assert(tr); + + /* Checks whether applying this transaction means that + * existing jobs would be replaced */ + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + + /* Assume merged */ + assert(!j->transaction_prev); +@@ -1154,9 +1131,9 @@ static int transaction_is_destructive(Manager *m, DBusError *e) { + return 0; + } + +-static void transaction_minimize_impact(Manager *m) { ++static void transaction_minimize_impact(Transaction *tr) { + bool again; +- assert(m); ++ assert(tr); + + /* Drops all unnecessary jobs that reverse already active jobs + * or that stop a running service. */ +@@ -1167,7 +1144,7 @@ static void transaction_minimize_impact(Manager *m) { + + again = false; + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + LIST_FOREACH(transaction, j, j) { + bool stops_running_service, changes_existing_job; + +@@ -1198,7 +1175,7 @@ static void transaction_minimize_impact(Manager *m) { + /* Ok, let's get rid of this */ + log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); + +- transaction_delete_job(m, j, true); ++ transaction_delete_job(tr, j, true); + again = true; + break; + } +@@ -1210,7 +1187,7 @@ static void transaction_minimize_impact(Manager *m) { + } while (again); + } + +-static int transaction_apply(Manager *m, JobMode mode) { ++static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + Iterator i; + Job *j; + int r; +@@ -1225,7 +1202,7 @@ static int transaction_apply(Manager *m, JobMode mode) { + HASHMAP_FOREACH(j, m->jobs, i) { + assert(j->installed); + +- if (hashmap_get(m->transaction_jobs, j->unit)) ++ if (hashmap_get(tr->jobs, j->unit)) + continue; + + /* 'j' itself is safe to remove, but if other jobs +@@ -1236,7 +1213,7 @@ static int transaction_apply(Manager *m, JobMode mode) { + } + } + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + /* Assume merged */ + assert(!j->transaction_prev); + assert(!j->transaction_next); +@@ -1244,11 +1221,12 @@ static int transaction_apply(Manager *m, JobMode mode) { + if (j->installed) + continue; + +- if ((r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j)) < 0) ++ r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); ++ if (r < 0) + goto rollback; + } + +- while ((j = hashmap_steal_first(m->transaction_jobs))) { ++ while ((j = hashmap_steal_first(tr->jobs))) { + Job *uj; + if (j->installed) { + /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ +@@ -1271,6 +1249,9 @@ static int transaction_apply(Manager *m, JobMode mode) { + assert(!j->transaction_next); + assert(!j->transaction_prev); + ++ /* Clean the job dependencies */ ++ transaction_unlink_job(tr, j, false); ++ + job_add_to_run_queue(j); + job_add_to_dbus_queue(j); + job_start_timer(j); +@@ -1278,14 +1259,13 @@ static int transaction_apply(Manager *m, JobMode mode) { + log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); + } + +- /* As last step, kill all remaining job dependencies. */ +- transaction_clean_dependencies(m); ++ assert(!tr->anchor); + + return 0; + + rollback: + +- HASHMAP_FOREACH(j, m->transaction_jobs, i) { ++ HASHMAP_FOREACH(j, tr->jobs, i) { + if (j->installed) + continue; + +@@ -1295,41 +1275,42 @@ rollback: + return r; + } + +-static int transaction_activate(Manager *m, JobMode mode, DBusError *e) { ++static int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { + int r; + unsigned generation = 1; + +- assert(m); ++ assert(tr); + +- /* This applies the changes recorded in transaction_jobs to ++ /* This applies the changes recorded in tr->jobs to + * the actual list of jobs, if possible. */ + + /* First step: figure out which jobs matter */ +- transaction_find_jobs_that_matter_to_anchor(m, NULL, generation++); ++ transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); + + /* Second step: Try not to stop any running services if + * we don't have to. Don't try to reverse running + * jobs if we don't have to. */ + if (mode == JOB_FAIL) +- transaction_minimize_impact(m); ++ transaction_minimize_impact(tr); + + /* Third step: Drop redundant jobs */ +- transaction_drop_redundant(m); ++ transaction_drop_redundant(tr); + + for (;;) { + /* Fourth step: Let's remove unneeded jobs that might + * be lurking. */ + if (mode != JOB_ISOLATE) +- transaction_collect_garbage(m); ++ transaction_collect_garbage(tr); + + /* Fifth step: verify order makes sense and correct + * cycles if necessary and possible */ +- if ((r = transaction_verify_order(m, &generation, e)) >= 0) ++ r = transaction_verify_order(tr, &generation, e); ++ if (r >= 0) + break; + + if (r != -EAGAIN) { + log_warning("Requested transaction contains an unfixable cyclic ordering dependency: %s", bus_error(e, r)); +- goto rollback; ++ return r; + } + + /* Let's see if the resulting transaction ordering +@@ -1340,60 +1321,60 @@ static int transaction_activate(Manager *m, JobMode mode, DBusError *e) { + /* Sixth step: let's drop unmergeable entries if + * necessary and possible, merge entries we can + * merge */ +- if ((r = transaction_merge_jobs(m, e)) >= 0) ++ r = transaction_merge_jobs(tr, e); ++ if (r >= 0) + break; + + if (r != -EAGAIN) { + log_warning("Requested transaction contains unmergeable jobs: %s", bus_error(e, r)); +- goto rollback; ++ return r; + } + + /* Seventh step: an entry got dropped, let's garbage + * collect its dependencies. */ + if (mode != JOB_ISOLATE) +- transaction_collect_garbage(m); ++ transaction_collect_garbage(tr); + + /* Let's see if the resulting transaction still has + * unmergeable entries ... */ + } + + /* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */ +- transaction_drop_redundant(m); ++ transaction_drop_redundant(tr); + + /* Ninth step: check whether we can actually apply this */ +- if (mode == JOB_FAIL) +- if ((r = transaction_is_destructive(m, e)) < 0) { ++ if (mode == JOB_FAIL) { ++ r = transaction_is_destructive(tr, e); ++ if (r < 0) { + log_notice("Requested transaction contradicts existing jobs: %s", bus_error(e, r)); +- goto rollback; ++ return r; + } ++ } + + /* Tenth step: apply changes */ +- if ((r = transaction_apply(m, mode)) < 0) { ++ r = transaction_apply(tr, m, mode); ++ if (r < 0) { + log_warning("Failed to apply transaction: %s", strerror(-r)); +- goto rollback; ++ return r; + } + +- assert(hashmap_isempty(m->transaction_jobs)); +- assert(!m->transaction_anchor); ++ assert(hashmap_isempty(tr->jobs)); ++ assert(!tr->anchor); + + return 0; +- +-rollback: +- transaction_abort(m); +- return r; + } + +-static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool override, bool *is_new) { ++static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, bool override, bool *is_new) { + Job *j, *f; + +- assert(m); ++ assert(tr); + assert(unit); + + /* Looks for an existing prospective job and returns that. If + * it doesn't exist it is created and added to the prospective + * jobs list. */ + +- f = hashmap_get(m->transaction_jobs, unit); ++ f = hashmap_get(tr->jobs, unit); + + LIST_FOREACH(transaction, j, f) { + assert(j->unit == unit); +@@ -1407,8 +1388,11 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o + + if (unit->job && unit->job->type == type) + j = unit->job; +- else if (!(j = job_new(m, type, unit))) +- return NULL; ++ else { ++ j = job_new(unit->manager, type, unit); ++ if (!j) ++ return NULL; ++ } + + j->generation = 0; + j->marker = NULL; +@@ -1417,7 +1401,7 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o + + LIST_PREPEND(Job, transaction, f, j); + +- if (hashmap_replace(m->transaction_jobs, unit, f) < 0) { ++ if (hashmap_replace(tr->jobs, unit, f) < 0) { + LIST_REMOVE(Job, transaction, f, j); + job_free(j); + return NULL; +@@ -1431,16 +1415,16 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o + return j; + } + +-static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) { +- assert(m); ++static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { ++ assert(tr); + assert(j); + + if (j->transaction_prev) + j->transaction_prev->transaction_next = j->transaction_next; + else if (j->transaction_next) +- hashmap_replace(m->transaction_jobs, j->unit, j->transaction_next); ++ hashmap_replace(tr->jobs, j->unit, j->transaction_next); + else +- hashmap_remove_value(m->transaction_jobs, j->unit, j); ++ hashmap_remove_value(tr->jobs, j->unit, j); + + if (j->transaction_next) + j->transaction_next->transaction_prev = j->transaction_prev; +@@ -1448,24 +1432,24 @@ static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) + j->transaction_prev = j->transaction_next = NULL; + + while (j->subject_list) +- job_dependency_free(j->subject_list); ++ job_dependency_free(j->subject_list, tr); + + while (j->object_list) { + Job *other = j->object_list->matters ? j->object_list->subject : NULL; + +- job_dependency_free(j->object_list); ++ job_dependency_free(j->object_list, tr); + + if (other && delete_dependencies) { + log_debug("Deleting job %s/%s as dependency of job %s/%s", + other->unit->id, job_type_to_string(other->type), + j->unit->id, job_type_to_string(j->type)); +- transaction_delete_job(m, other, delete_dependencies); ++ transaction_delete_job(tr, other, delete_dependencies); + } + } + } + + static int transaction_add_job_and_dependencies( +- Manager *m, ++ Transaction *tr, + JobType type, + Unit *unit, + Job *by, +@@ -1482,7 +1466,7 @@ static int transaction_add_job_and_dependencies( + int r; + bool is_new; + +- assert(m); ++ assert(tr); + assert(type < _JOB_TYPE_MAX); + assert(unit); + +@@ -1519,13 +1503,14 @@ static int transaction_add_job_and_dependencies( + } + + /* First add the job. */ +- if (!(ret = transaction_add_one_job(m, type, unit, override, &is_new))) ++ ret = transaction_add_one_job(tr, type, unit, override, &is_new); ++ if (!ret) + return -ENOMEM; + + ret->ignore_order = ret->ignore_order || ignore_order; + + /* Then, add a link to the job. */ +- if (!job_dependency_new(by, ret, matters, conflicts)) ++ if (!job_dependency_new(by, ret, matters, conflicts, tr)) + return -ENOMEM; + + if (is_new && !ignore_requirements) { +@@ -1534,120 +1519,136 @@ static int transaction_add_job_and_dependencies( + /* If we are following some other unit, make sure we + * add all dependencies of everybody following. */ + if (unit_following_set(ret->unit, &following) > 0) { +- SET_FOREACH(dep, following, i) +- if ((r = transaction_add_job_and_dependencies(m, type, dep, ret, false, override, false, false, ignore_order, e, NULL)) < 0) { ++ SET_FOREACH(dep, following, i) { ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); + } ++ } + + set_free(following); + } + + /* Finally, recursively add in all dependencies. */ + if (type == JOB_START || type == JOB_RELOAD_OR_START) { +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + if (r != -EBADR) + goto fail; + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { +- ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + if (r != -EBADR) + goto fail; + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL)) < 0) { ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL)) < 0) { ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); ++ if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { +- ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + if (r != -EBADR) + goto fail; + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL)) < 0) { ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL)) < 0) { +- ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); ++ if (r < 0) { + if (r != -EBADR) + goto fail; + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) +- if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL)) < 0) { ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); + } ++ } + + } + + if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) +- if ((r = transaction_add_job_and_dependencies(m, type, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { +- ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + if (r != -EBADR) + goto fail; + + if (e) + dbus_error_free(e); + } ++ } + +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) +- if ((r = transaction_add_job_and_dependencies(m, type, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { +- ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { + if (r != -EBADR) + goto fail; + + if (e) + dbus_error_free(e); + } ++ } + } + + if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { +- r = transaction_add_job_and_dependencies(m, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); +- ++ r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); + if (r < 0) { + log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -1669,12 +1670,13 @@ fail: + return r; + } + +-static int transaction_add_isolate_jobs(Manager *m) { ++static int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { + Iterator i; + Unit *u; + char *k; + int r; + ++ assert(tr); + assert(m); + + HASHMAP_FOREACH_KEY(u, k, m->units, i) { +@@ -1691,19 +1693,43 @@ static int transaction_add_isolate_jobs(Manager *m) { + continue; + + /* Is there already something listed for this? */ +- if (hashmap_get(m->transaction_jobs, u)) ++ if (hashmap_get(tr->jobs, u)) + continue; + +- if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL)) < 0) ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); ++ if (r < 0) + log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); + } + + return 0; + } + ++static Transaction *transaction_new(void) { ++ Transaction *tr; ++ ++ tr = new0(Transaction, 1); ++ if (!tr) ++ return NULL; ++ ++ tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); ++ if (!tr->jobs) { ++ free(tr); ++ return NULL; ++ } ++ ++ return tr; ++} ++ ++static void transaction_free(Transaction *tr) { ++ assert(hashmap_isempty(tr->jobs)); ++ hashmap_free(tr->jobs); ++ free(tr); ++} ++ + int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { + int r; + Job *ret; ++ Transaction *tr; + + assert(m); + assert(type < _JOB_TYPE_MAX); +@@ -1722,28 +1748,38 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove + + log_debug("Trying to enqueue job %s/%s/%s", unit->id, job_type_to_string(type), job_mode_to_string(mode)); + +- if ((r = transaction_add_job_and_dependencies(m, type, unit, NULL, true, override, false, +- mode == JOB_IGNORE_DEPENDENCIES || mode == JOB_IGNORE_REQUIREMENTS, +- mode == JOB_IGNORE_DEPENDENCIES, e, &ret)) < 0) { +- transaction_abort(m); +- return r; +- } ++ tr = transaction_new(); ++ if (!tr) ++ return -ENOMEM; + +- if (mode == JOB_ISOLATE) +- if ((r = transaction_add_isolate_jobs(m)) < 0) { +- transaction_abort(m); +- return r; +- } ++ r = transaction_add_job_and_dependencies(tr, type, unit, NULL, true, override, false, ++ mode == JOB_IGNORE_DEPENDENCIES || mode == JOB_IGNORE_REQUIREMENTS, ++ mode == JOB_IGNORE_DEPENDENCIES, e, &ret); ++ if (r < 0) ++ goto tr_abort; + +- if ((r = transaction_activate(m, mode, e)) < 0) +- return r; ++ if (mode == JOB_ISOLATE) { ++ r = transaction_add_isolate_jobs(tr, m); ++ if (r < 0) ++ goto tr_abort; ++ } ++ ++ r = transaction_activate(tr, m, mode, e); ++ if (r < 0) ++ goto tr_abort; + + log_debug("Enqueued job %s/%s as %u", unit->id, job_type_to_string(type), (unsigned) ret->id); + + if (_ret) + *_ret = ret; + ++ transaction_free(tr); + return 0; ++ ++tr_abort: ++ transaction_abort(tr); ++ transaction_free(tr); ++ return r; + } + + int manager_add_job_by_name(Manager *m, JobType type, const char *name, JobMode mode, bool override, DBusError *e, Job **_ret) { +@@ -1907,8 +1943,6 @@ void manager_clear_jobs(Manager *m) { + + assert(m); + +- transaction_abort(m); +- + while ((j = hashmap_first(m->jobs))) + job_finish_and_invalidate(j, JOB_CANCELED); + } +diff --git a/src/manager.h b/src/manager.h +index 64d8d0e..b982d7e 100644 +--- a/src/manager.h ++++ b/src/manager.h +@@ -33,6 +33,7 @@ + #define MANAGER_MAX_NAMES 131072 /* 128K */ + + typedef struct Manager Manager; ++typedef struct Transaction Transaction; + typedef enum WatchType WatchType; + typedef struct Watch Watch; + +@@ -91,6 +92,12 @@ struct Watch { + #include "dbus.h" + #include "path-lookup.h" + ++struct Transaction { ++ /* Jobs to be added */ ++ Hashmap *jobs; /* Unit object => Job object list 1:1 */ ++ JobDependency *anchor; ++}; ++ + struct Manager { + /* Note that the set of units we know of is allowed to be + * inconsistent. However the subset of it that is loaded may +@@ -123,10 +130,6 @@ struct Manager { + /* Units to check when doing GC */ + LIST_HEAD(Unit, gc_queue); + +- /* Jobs to be added */ +- Hashmap *transaction_jobs; /* Unit object => Job object list 1:1 */ +- JobDependency *transaction_anchor; +- + Hashmap *watch_pids; /* pid => Unit object n:1 */ + + char *notify_socket; +-- +1.7.7 + + +From e617c9a330b60d070e3db57c1f86f3c579e03f0c Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 19 Apr 2012 23:54:11 +0200 +Subject: [PATCH 08/30] manager: split transaction.[ch] + +manager.c takes care of the main loop, unit management, signal handling, ... +transaction.c computes transactions. + +After split: +manager.c: 65 KB +transaction.c: 40 KB +(cherry picked from commit 75778e21dfeee51036d24501e39ea7398fabe502) + +Conflicts: + + Makefile.am + src/manager.c +--- + Makefile.am | 2 + + src/job.h | 1 + + src/manager.c | 1099 +---------------------------------------------------- + src/manager.h | 7 - + src/transaction.c | 1101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/transaction.h | 36 ++ + 6 files changed, 1141 insertions(+), 1105 deletions(-) + create mode 100644 src/transaction.c + create mode 100644 src/transaction.h + +diff --git a/Makefile.am b/Makefile.am +index 079c118..45a0b10 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -483,6 +483,7 @@ libsystemd_core_la_SOURCES = \ + src/unit.c \ + src/job.c \ + src/manager.c \ ++ src/transaction.c \ + src/path-lookup.c \ + src/load-fragment.c \ + src/service.c \ +@@ -579,6 +580,7 @@ EXTRA_DIST += \ + src/unit.h \ + src/job.h \ + src/manager.h \ ++ src/transaction.h \ + src/path-lookup.h \ + src/load-fragment.h \ + src/service.h \ +diff --git a/src/job.h b/src/job.h +index 18ba64f..efb0af9 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -34,6 +34,7 @@ typedef enum JobMode JobMode; + typedef enum JobResult JobResult; + + #include "manager.h" ++#include "transaction.h" + #include "unit.h" + #include "hashmap.h" + #include "list.h" +diff --git a/src/manager.c b/src/manager.c +index ff4249d..a129b88 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -44,6 +44,7 @@ + #include + + #include "manager.h" ++#include "transaction.h" + #include "hashmap.h" + #include "macro.h" + #include "strv.h" +@@ -628,1104 +629,6 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + return r; + } + +-static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies); +- +-static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependencies) { +- assert(tr); +- assert(j); +- +- /* Deletes one job from the transaction */ +- +- transaction_unlink_job(tr, j, delete_dependencies); +- +- if (!j->installed) +- job_free(j); +-} +- +-static void transaction_delete_unit(Transaction *tr, Unit *u) { +- Job *j; +- +- /* Deletes all jobs associated with a certain unit from the +- * transaction */ +- +- while ((j = hashmap_get(tr->jobs, u))) +- transaction_delete_job(tr, j, true); +-} +- +-static void transaction_abort(Transaction *tr) { +- Job *j; +- +- assert(tr); +- +- while ((j = hashmap_first(tr->jobs))) +- transaction_delete_job(tr, j, true); +- +- assert(hashmap_isempty(tr->jobs)); +- +- assert(!tr->anchor); +-} +- +-static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { +- JobDependency *l; +- +- assert(tr); +- +- /* A recursive sweep through the graph that marks all units +- * that matter to the anchor job, i.e. are directly or +- * indirectly a dependency of the anchor job via paths that +- * are fully marked as mattering. */ +- +- if (j) +- l = j->subject_list; +- else +- l = tr->anchor; +- +- LIST_FOREACH(subject, l, l) { +- +- /* This link does not matter */ +- if (!l->matters) +- continue; +- +- /* This unit has already been marked */ +- if (l->object->generation == generation) +- continue; +- +- l->object->matters_to_anchor = true; +- l->object->generation = generation; +- +- transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); +- } +-} +- +-static void transaction_merge_and_delete_job(Transaction *tr, Job *j, Job *other, JobType t) { +- JobDependency *l, *last; +- +- assert(j); +- assert(other); +- assert(j->unit == other->unit); +- assert(!j->installed); +- +- /* Merges 'other' into 'j' and then deletes j. */ +- +- j->type = t; +- j->state = JOB_WAITING; +- j->override = j->override || other->override; +- +- j->matters_to_anchor = j->matters_to_anchor || other->matters_to_anchor; +- +- /* Patch us in as new owner of the JobDependency objects */ +- last = NULL; +- LIST_FOREACH(subject, l, other->subject_list) { +- assert(l->subject == other); +- l->subject = j; +- last = l; +- } +- +- /* Merge both lists */ +- if (last) { +- last->subject_next = j->subject_list; +- if (j->subject_list) +- j->subject_list->subject_prev = last; +- j->subject_list = other->subject_list; +- } +- +- /* Patch us in as new owner of the JobDependency objects */ +- last = NULL; +- LIST_FOREACH(object, l, other->object_list) { +- assert(l->object == other); +- l->object = j; +- last = l; +- } +- +- /* Merge both lists */ +- if (last) { +- last->object_next = j->object_list; +- if (j->object_list) +- j->object_list->object_prev = last; +- j->object_list = other->object_list; +- } +- +- /* Kill the other job */ +- other->subject_list = NULL; +- other->object_list = NULL; +- transaction_delete_job(tr, other, true); +-} +-static bool job_is_conflicted_by(Job *j) { +- JobDependency *l; +- +- assert(j); +- +- /* Returns true if this job is pulled in by a least one +- * ConflictedBy dependency. */ +- +- LIST_FOREACH(object, l, j->object_list) +- if (l->conflicts) +- return true; +- +- return false; +-} +- +-static int delete_one_unmergeable_job(Transaction *tr, Job *j) { +- Job *k; +- +- assert(j); +- +- /* Tries to delete one item in the linked list +- * j->transaction_next->transaction_next->... that conflicts +- * with another one, in an attempt to make an inconsistent +- * transaction work. */ +- +- /* We rely here on the fact that if a merged with b does not +- * merge with c, either a or b merge with c neither */ +- LIST_FOREACH(transaction, j, j) +- LIST_FOREACH(transaction, k, j->transaction_next) { +- Job *d; +- +- /* Is this one mergeable? Then skip it */ +- if (job_type_is_mergeable(j->type, k->type)) +- continue; +- +- /* Ok, we found two that conflict, let's see if we can +- * drop one of them */ +- if (!j->matters_to_anchor && !k->matters_to_anchor) { +- +- /* Both jobs don't matter, so let's +- * find the one that is smarter to +- * remove. Let's think positive and +- * rather remove stops then starts -- +- * except if something is being +- * stopped because it is conflicted by +- * another unit in which case we +- * rather remove the start. */ +- +- log_debug("Looking at job %s/%s conflicted_by=%s", j->unit->id, job_type_to_string(j->type), yes_no(j->type == JOB_STOP && job_is_conflicted_by(j))); +- log_debug("Looking at job %s/%s conflicted_by=%s", k->unit->id, job_type_to_string(k->type), yes_no(k->type == JOB_STOP && job_is_conflicted_by(k))); +- +- if (j->type == JOB_STOP) { +- +- if (job_is_conflicted_by(j)) +- d = k; +- else +- d = j; +- +- } else if (k->type == JOB_STOP) { +- +- if (job_is_conflicted_by(k)) +- d = j; +- else +- d = k; +- } else +- d = j; +- +- } else if (!j->matters_to_anchor) +- d = j; +- else if (!k->matters_to_anchor) +- d = k; +- else +- return -ENOEXEC; +- +- /* Ok, we can drop one, so let's do so. */ +- log_debug("Fixing conflicting jobs by deleting job %s/%s", d->unit->id, job_type_to_string(d->type)); +- transaction_delete_job(tr, d, true); +- return 0; +- } +- +- return -EINVAL; +-} +- +-static int transaction_merge_jobs(Transaction *tr, DBusError *e) { +- Job *j; +- Iterator i; +- int r; +- +- assert(tr); +- +- /* First step, check whether any of the jobs for one specific +- * task conflict. If so, try to drop one of them. */ +- HASHMAP_FOREACH(j, tr->jobs, i) { +- JobType t; +- Job *k; +- +- t = j->type; +- LIST_FOREACH(transaction, k, j->transaction_next) { +- if (job_type_merge(&t, k->type) >= 0) +- continue; +- +- /* OK, we could not merge all jobs for this +- * action. Let's see if we can get rid of one +- * of them */ +- +- r = delete_one_unmergeable_job(tr, j); +- if (r >= 0) +- /* Ok, we managed to drop one, now +- * let's ask our callers to call us +- * again after garbage collecting */ +- return -EAGAIN; +- +- /* We couldn't merge anything. Failure */ +- dbus_set_error(e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING, "Transaction contains conflicting jobs '%s' and '%s' for %s. Probably contradicting requirement dependencies configured.", +- job_type_to_string(t), job_type_to_string(k->type), k->unit->id); +- return r; +- } +- } +- +- /* Second step, merge the jobs. */ +- HASHMAP_FOREACH(j, tr->jobs, i) { +- JobType t = j->type; +- Job *k; +- +- /* Merge all transactions */ +- LIST_FOREACH(transaction, k, j->transaction_next) +- assert_se(job_type_merge(&t, k->type) == 0); +- +- /* If an active job is mergeable, merge it too */ +- if (j->unit->job) +- job_type_merge(&t, j->unit->job->type); /* Might fail. Which is OK */ +- +- while ((k = j->transaction_next)) { +- if (j->installed) { +- transaction_merge_and_delete_job(tr, k, j, t); +- j = k; +- } else +- transaction_merge_and_delete_job(tr, j, k, t); +- } +- +- if (j->unit->job && !j->installed) +- transaction_merge_and_delete_job(tr, j, j->unit->job, t); +- +- assert(!j->transaction_next); +- assert(!j->transaction_prev); +- } +- +- return 0; +-} +- +-static void transaction_drop_redundant(Transaction *tr) { +- bool again; +- +- assert(tr); +- +- /* Goes through the transaction and removes all jobs that are +- * a noop */ +- +- do { +- Job *j; +- Iterator i; +- +- again = false; +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- bool changes_something = false; +- Job *k; +- +- LIST_FOREACH(transaction, k, j) { +- +- if (!job_is_anchor(k) && +- (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && +- (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) +- continue; +- +- changes_something = true; +- break; +- } +- +- if (changes_something) +- continue; +- +- /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ +- transaction_delete_job(tr, j, false); +- again = true; +- break; +- } +- +- } while (again); +-} +- +-static bool unit_matters_to_anchor(Unit *u, Job *j) { +- assert(u); +- assert(!j->transaction_prev); +- +- /* Checks whether at least one of the jobs for this unit +- * matters to the anchor. */ +- +- LIST_FOREACH(transaction, j, j) +- if (j->matters_to_anchor) +- return true; +- +- return false; +-} +- +-static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsigned generation, DBusError *e) { +- Iterator i; +- Unit *u; +- int r; +- +- assert(tr); +- assert(j); +- assert(!j->transaction_prev); +- +- /* Does a recursive sweep through the ordering graph, looking +- * for a cycle. If we find cycle we try to break it. */ +- +- /* Have we seen this before? */ +- if (j->generation == generation) { +- Job *k, *delete; +- +- /* If the marker is NULL we have been here already and +- * decided the job was loop-free from here. Hence +- * shortcut things and return right-away. */ +- if (!j->marker) +- return 0; +- +- /* So, the marker is not NULL and we already have been +- * here. We have a cycle. Let's try to break it. We go +- * backwards in our path and try to find a suitable +- * job to remove. We use the marker to find our way +- * back, since smart how we are we stored our way back +- * in there. */ +- log_warning("Found ordering cycle on %s/%s", j->unit->id, job_type_to_string(j->type)); +- +- delete = NULL; +- for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { +- +- log_info("Walked on cycle path to %s/%s", k->unit->id, job_type_to_string(k->type)); +- +- if (!delete && +- !k->installed && +- !unit_matters_to_anchor(k->unit, k)) { +- /* Ok, we can drop this one, so let's +- * do so. */ +- delete = k; +- } +- +- /* Check if this in fact was the beginning of +- * the cycle */ +- if (k == j) +- break; +- } +- +- +- if (delete) { +- log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); +- transaction_delete_unit(tr, delete->unit); +- return -EAGAIN; +- } +- +- log_error("Unable to break cycle"); +- +- dbus_set_error(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC, "Transaction order is cyclic. See system logs for details."); +- return -ENOEXEC; +- } +- +- /* Make the marker point to where we come from, so that we can +- * find our way backwards if we want to break a cycle. We use +- * a special marker for the beginning: we point to +- * ourselves. */ +- j->marker = from ? from : j; +- j->generation = generation; +- +- /* We assume that the the dependencies are bidirectional, and +- * hence can ignore UNIT_AFTER */ +- SET_FOREACH(u, j->unit->dependencies[UNIT_BEFORE], i) { +- Job *o; +- +- /* Is there a job for this unit? */ +- o = hashmap_get(tr->jobs, u); +- if (!o) { +- /* Ok, there is no job for this in the +- * transaction, but maybe there is already one +- * running? */ +- o = u->job; +- if (!o) +- continue; +- } +- +- r = transaction_verify_order_one(tr, o, j, generation, e); +- if (r < 0) +- return r; +- } +- +- /* Ok, let's backtrack, and remember that this entry is not on +- * our path anymore. */ +- j->marker = NULL; +- +- return 0; +-} +- +-static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusError *e) { +- Job *j; +- int r; +- Iterator i; +- unsigned g; +- +- assert(tr); +- assert(generation); +- +- /* Check if the ordering graph is cyclic. If it is, try to fix +- * that up by dropping one of the jobs. */ +- +- g = (*generation)++; +- +- HASHMAP_FOREACH(j, tr->jobs, i) +- if ((r = transaction_verify_order_one(tr, j, NULL, g, e)) < 0) +- return r; +- +- return 0; +-} +- +-static void transaction_collect_garbage(Transaction *tr) { +- bool again; +- +- assert(tr); +- +- /* Drop jobs that are not required by any other job */ +- +- do { +- Iterator i; +- Job *j; +- +- again = false; +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- if (j->object_list) { +- /* log_debug("Keeping job %s/%s because of %s/%s", */ +- /* j->unit->id, job_type_to_string(j->type), */ +- /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ +- /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ +- continue; +- } +- +- /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ +- transaction_delete_job(tr, j, true); +- again = true; +- break; +- } +- +- } while (again); +-} +- +-static int transaction_is_destructive(Transaction *tr, DBusError *e) { +- Iterator i; +- Job *j; +- +- assert(tr); +- +- /* Checks whether applying this transaction means that +- * existing jobs would be replaced */ +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- +- /* Assume merged */ +- assert(!j->transaction_prev); +- assert(!j->transaction_next); +- +- if (j->unit->job && +- j->unit->job != j && +- !job_type_is_superset(j->type, j->unit->job->type)) { +- +- dbus_set_error(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); +- return -EEXIST; +- } +- } +- +- return 0; +-} +- +-static void transaction_minimize_impact(Transaction *tr) { +- bool again; +- assert(tr); +- +- /* Drops all unnecessary jobs that reverse already active jobs +- * or that stop a running service. */ +- +- do { +- Job *j; +- Iterator i; +- +- again = false; +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- LIST_FOREACH(transaction, j, j) { +- bool stops_running_service, changes_existing_job; +- +- /* If it matters, we shouldn't drop it */ +- if (j->matters_to_anchor) +- continue; +- +- /* Would this stop a running service? +- * Would this change an existing job? +- * If so, let's drop this entry */ +- +- stops_running_service = +- j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); +- +- changes_existing_job = +- j->unit->job && +- job_type_is_conflicting(j->type, j->unit->job->type); +- +- if (!stops_running_service && !changes_existing_job) +- continue; +- +- if (stops_running_service) +- log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); +- +- if (changes_existing_job) +- log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); +- +- /* Ok, let's get rid of this */ +- log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); +- +- transaction_delete_job(tr, j, true); +- again = true; +- break; +- } +- +- if (again) +- break; +- } +- +- } while (again); +-} +- +-static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { +- Iterator i; +- Job *j; +- int r; +- +- /* Moves the transaction jobs to the set of active jobs */ +- +- if (mode == JOB_ISOLATE) { +- +- /* When isolating first kill all installed jobs which +- * aren't part of the new transaction */ +- rescan: +- HASHMAP_FOREACH(j, m->jobs, i) { +- assert(j->installed); +- +- if (hashmap_get(tr->jobs, j->unit)) +- continue; +- +- /* 'j' itself is safe to remove, but if other jobs +- are invalidated recursively, our iterator may become +- invalid and we need to start over. */ +- if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) +- goto rescan; +- } +- } +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- /* Assume merged */ +- assert(!j->transaction_prev); +- assert(!j->transaction_next); +- +- if (j->installed) +- continue; +- +- r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); +- if (r < 0) +- goto rollback; +- } +- +- while ((j = hashmap_steal_first(tr->jobs))) { +- Job *uj; +- if (j->installed) { +- /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ +- continue; +- } +- +- uj = j->unit->job; +- if (uj) { +- job_uninstall(uj); +- job_free(uj); +- } +- +- j->unit->job = j; +- j->installed = true; +- m->n_installed_jobs ++; +- +- /* We're fully installed. Now let's free data we don't +- * need anymore. */ +- +- assert(!j->transaction_next); +- assert(!j->transaction_prev); +- +- /* Clean the job dependencies */ +- transaction_unlink_job(tr, j, false); +- +- job_add_to_run_queue(j); +- job_add_to_dbus_queue(j); +- job_start_timer(j); +- +- log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); +- } +- +- assert(!tr->anchor); +- +- return 0; +- +-rollback: +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- if (j->installed) +- continue; +- +- hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); +- } +- +- return r; +-} +- +-static int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { +- int r; +- unsigned generation = 1; +- +- assert(tr); +- +- /* This applies the changes recorded in tr->jobs to +- * the actual list of jobs, if possible. */ +- +- /* First step: figure out which jobs matter */ +- transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); +- +- /* Second step: Try not to stop any running services if +- * we don't have to. Don't try to reverse running +- * jobs if we don't have to. */ +- if (mode == JOB_FAIL) +- transaction_minimize_impact(tr); +- +- /* Third step: Drop redundant jobs */ +- transaction_drop_redundant(tr); +- +- for (;;) { +- /* Fourth step: Let's remove unneeded jobs that might +- * be lurking. */ +- if (mode != JOB_ISOLATE) +- transaction_collect_garbage(tr); +- +- /* Fifth step: verify order makes sense and correct +- * cycles if necessary and possible */ +- r = transaction_verify_order(tr, &generation, e); +- if (r >= 0) +- break; +- +- if (r != -EAGAIN) { +- log_warning("Requested transaction contains an unfixable cyclic ordering dependency: %s", bus_error(e, r)); +- return r; +- } +- +- /* Let's see if the resulting transaction ordering +- * graph is still cyclic... */ +- } +- +- for (;;) { +- /* Sixth step: let's drop unmergeable entries if +- * necessary and possible, merge entries we can +- * merge */ +- r = transaction_merge_jobs(tr, e); +- if (r >= 0) +- break; +- +- if (r != -EAGAIN) { +- log_warning("Requested transaction contains unmergeable jobs: %s", bus_error(e, r)); +- return r; +- } +- +- /* Seventh step: an entry got dropped, let's garbage +- * collect its dependencies. */ +- if (mode != JOB_ISOLATE) +- transaction_collect_garbage(tr); +- +- /* Let's see if the resulting transaction still has +- * unmergeable entries ... */ +- } +- +- /* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */ +- transaction_drop_redundant(tr); +- +- /* Ninth step: check whether we can actually apply this */ +- if (mode == JOB_FAIL) { +- r = transaction_is_destructive(tr, e); +- if (r < 0) { +- log_notice("Requested transaction contradicts existing jobs: %s", bus_error(e, r)); +- return r; +- } +- } +- +- /* Tenth step: apply changes */ +- r = transaction_apply(tr, m, mode); +- if (r < 0) { +- log_warning("Failed to apply transaction: %s", strerror(-r)); +- return r; +- } +- +- assert(hashmap_isempty(tr->jobs)); +- assert(!tr->anchor); +- +- return 0; +-} +- +-static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, bool override, bool *is_new) { +- Job *j, *f; +- +- assert(tr); +- assert(unit); +- +- /* Looks for an existing prospective job and returns that. If +- * it doesn't exist it is created and added to the prospective +- * jobs list. */ +- +- f = hashmap_get(tr->jobs, unit); +- +- LIST_FOREACH(transaction, j, f) { +- assert(j->unit == unit); +- +- if (j->type == type) { +- if (is_new) +- *is_new = false; +- return j; +- } +- } +- +- if (unit->job && unit->job->type == type) +- j = unit->job; +- else { +- j = job_new(unit->manager, type, unit); +- if (!j) +- return NULL; +- } +- +- j->generation = 0; +- j->marker = NULL; +- j->matters_to_anchor = false; +- j->override = override; +- +- LIST_PREPEND(Job, transaction, f, j); +- +- if (hashmap_replace(tr->jobs, unit, f) < 0) { +- LIST_REMOVE(Job, transaction, f, j); +- job_free(j); +- return NULL; +- } +- +- if (is_new) +- *is_new = true; +- +- /* log_debug("Added job %s/%s to transaction.", unit->id, job_type_to_string(type)); */ +- +- return j; +-} +- +-static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { +- assert(tr); +- assert(j); +- +- if (j->transaction_prev) +- j->transaction_prev->transaction_next = j->transaction_next; +- else if (j->transaction_next) +- hashmap_replace(tr->jobs, j->unit, j->transaction_next); +- else +- hashmap_remove_value(tr->jobs, j->unit, j); +- +- if (j->transaction_next) +- j->transaction_next->transaction_prev = j->transaction_prev; +- +- j->transaction_prev = j->transaction_next = NULL; +- +- while (j->subject_list) +- job_dependency_free(j->subject_list, tr); +- +- while (j->object_list) { +- Job *other = j->object_list->matters ? j->object_list->subject : NULL; +- +- job_dependency_free(j->object_list, tr); +- +- if (other && delete_dependencies) { +- log_debug("Deleting job %s/%s as dependency of job %s/%s", +- other->unit->id, job_type_to_string(other->type), +- j->unit->id, job_type_to_string(j->type)); +- transaction_delete_job(tr, other, delete_dependencies); +- } +- } +-} +- +-static int transaction_add_job_and_dependencies( +- Transaction *tr, +- JobType type, +- Unit *unit, +- Job *by, +- bool matters, +- bool override, +- bool conflicts, +- bool ignore_requirements, +- bool ignore_order, +- DBusError *e, +- Job **_ret) { +- Job *ret; +- Iterator i; +- Unit *dep; +- int r; +- bool is_new; +- +- assert(tr); +- assert(type < _JOB_TYPE_MAX); +- assert(unit); +- +- /* log_debug("Pulling in %s/%s from %s/%s", */ +- /* unit->id, job_type_to_string(type), */ +- /* by ? by->unit->id : "NA", */ +- /* by ? job_type_to_string(by->type) : "NA"); */ +- +- if (unit->load_state != UNIT_LOADED && +- unit->load_state != UNIT_ERROR && +- unit->load_state != UNIT_MASKED) { +- dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id); +- return -EINVAL; +- } +- +- if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { +- dbus_set_error(e, BUS_ERROR_LOAD_FAILED, +- "Unit %s failed to load: %s. " +- "See system logs and 'systemctl status %s' for details.", +- unit->id, +- strerror(-unit->load_error), +- unit->id); +- return -EINVAL; +- } +- +- if (type != JOB_STOP && unit->load_state == UNIT_MASKED) { +- dbus_set_error(e, BUS_ERROR_MASKED, "Unit %s is masked.", unit->id); +- return -EINVAL; +- } +- +- if (!unit_job_is_applicable(unit, type)) { +- dbus_set_error(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, "Job type %s is not applicable for unit %s.", job_type_to_string(type), unit->id); +- return -EBADR; +- } +- +- /* First add the job. */ +- ret = transaction_add_one_job(tr, type, unit, override, &is_new); +- if (!ret) +- return -ENOMEM; +- +- ret->ignore_order = ret->ignore_order || ignore_order; +- +- /* Then, add a link to the job. */ +- if (!job_dependency_new(by, ret, matters, conflicts, tr)) +- return -ENOMEM; +- +- if (is_new && !ignore_requirements) { +- Set *following; +- +- /* If we are following some other unit, make sure we +- * add all dependencies of everybody following. */ +- if (unit_following_set(ret->unit, &following) > 0) { +- SET_FOREACH(dep, following, i) { +- r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- set_free(following); +- } +- +- /* Finally, recursively add in all dependencies. */ +- if (type == JOB_START || type == JOB_RELOAD_OR_START) { +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- if (r != -EBADR) +- goto fail; +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- if (r != -EBADR) +- goto fail; +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); +- if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- if (r != -EBADR) +- goto fail; +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); +- if (r < 0) { +- if (r != -EBADR) +- goto fail; +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- } +- +- if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { +- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- if (r != -EBADR) +- goto fail; +- +- if (e) +- dbus_error_free(e); +- } +- } +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { +- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- if (r != -EBADR) +- goto fail; +- +- if (e) +- dbus_error_free(e); +- } +- } +- } +- +- if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { +- +- SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); +- if (r < 0) { +- log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); +- +- if (e) +- dbus_error_free(e); +- } +- } +- } +- +- /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ +- } +- +- if (_ret) +- *_ret = ret; +- +- return 0; +- +-fail: +- return r; +-} +- +-static int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { +- Iterator i; +- Unit *u; +- char *k; +- int r; +- +- assert(tr); +- assert(m); +- +- HASHMAP_FOREACH_KEY(u, k, m->units, i) { +- +- /* ignore aliases */ +- if (u->id != k) +- continue; +- +- if (u->ignore_on_isolate) +- continue; +- +- /* No need to stop inactive jobs */ +- if (UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(u)) && !u->job) +- continue; +- +- /* Is there already something listed for this? */ +- if (hashmap_get(tr->jobs, u)) +- continue; +- +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); +- if (r < 0) +- log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); +- } +- +- return 0; +-} +- +-static Transaction *transaction_new(void) { +- Transaction *tr; +- +- tr = new0(Transaction, 1); +- if (!tr) +- return NULL; +- +- tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); +- if (!tr->jobs) { +- free(tr); +- return NULL; +- } +- +- return tr; +-} +- +-static void transaction_free(Transaction *tr) { +- assert(hashmap_isempty(tr->jobs)); +- hashmap_free(tr->jobs); +- free(tr); +-} +- + int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { + int r; + Job *ret; +diff --git a/src/manager.h b/src/manager.h +index b982d7e..915f6fc 100644 +--- a/src/manager.h ++++ b/src/manager.h +@@ -33,7 +33,6 @@ + #define MANAGER_MAX_NAMES 131072 /* 128K */ + + typedef struct Manager Manager; +-typedef struct Transaction Transaction; + typedef enum WatchType WatchType; + typedef struct Watch Watch; + +@@ -92,12 +91,6 @@ struct Watch { + #include "dbus.h" + #include "path-lookup.h" + +-struct Transaction { +- /* Jobs to be added */ +- Hashmap *jobs; /* Unit object => Job object list 1:1 */ +- JobDependency *anchor; +-}; +- + struct Manager { + /* Note that the set of units we know of is allowed to be + * inconsistent. However the subset of it that is loaded may +diff --git a/src/transaction.c b/src/transaction.c +new file mode 100644 +index 0000000..8fa89a7 +--- /dev/null ++++ b/src/transaction.c +@@ -0,0 +1,1101 @@ ++#include "transaction.h" ++#include "bus-errors.h" ++ ++static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies); ++ ++static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependencies) { ++ assert(tr); ++ assert(j); ++ ++ /* Deletes one job from the transaction */ ++ ++ transaction_unlink_job(tr, j, delete_dependencies); ++ ++ if (!j->installed) ++ job_free(j); ++} ++ ++static void transaction_delete_unit(Transaction *tr, Unit *u) { ++ Job *j; ++ ++ /* Deletes all jobs associated with a certain unit from the ++ * transaction */ ++ ++ while ((j = hashmap_get(tr->jobs, u))) ++ transaction_delete_job(tr, j, true); ++} ++ ++void transaction_abort(Transaction *tr) { ++ Job *j; ++ ++ assert(tr); ++ ++ while ((j = hashmap_first(tr->jobs))) ++ transaction_delete_job(tr, j, true); ++ ++ assert(hashmap_isempty(tr->jobs)); ++ ++ assert(!tr->anchor); ++} ++ ++static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { ++ JobDependency *l; ++ ++ assert(tr); ++ ++ /* A recursive sweep through the graph that marks all units ++ * that matter to the anchor job, i.e. are directly or ++ * indirectly a dependency of the anchor job via paths that ++ * are fully marked as mattering. */ ++ ++ if (j) ++ l = j->subject_list; ++ else ++ l = tr->anchor; ++ ++ LIST_FOREACH(subject, l, l) { ++ ++ /* This link does not matter */ ++ if (!l->matters) ++ continue; ++ ++ /* This unit has already been marked */ ++ if (l->object->generation == generation) ++ continue; ++ ++ l->object->matters_to_anchor = true; ++ l->object->generation = generation; ++ ++ transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); ++ } ++} ++ ++static void transaction_merge_and_delete_job(Transaction *tr, Job *j, Job *other, JobType t) { ++ JobDependency *l, *last; ++ ++ assert(j); ++ assert(other); ++ assert(j->unit == other->unit); ++ assert(!j->installed); ++ ++ /* Merges 'other' into 'j' and then deletes 'other'. */ ++ ++ j->type = t; ++ j->state = JOB_WAITING; ++ j->override = j->override || other->override; ++ ++ j->matters_to_anchor = j->matters_to_anchor || other->matters_to_anchor; ++ ++ /* Patch us in as new owner of the JobDependency objects */ ++ last = NULL; ++ LIST_FOREACH(subject, l, other->subject_list) { ++ assert(l->subject == other); ++ l->subject = j; ++ last = l; ++ } ++ ++ /* Merge both lists */ ++ if (last) { ++ last->subject_next = j->subject_list; ++ if (j->subject_list) ++ j->subject_list->subject_prev = last; ++ j->subject_list = other->subject_list; ++ } ++ ++ /* Patch us in as new owner of the JobDependency objects */ ++ last = NULL; ++ LIST_FOREACH(object, l, other->object_list) { ++ assert(l->object == other); ++ l->object = j; ++ last = l; ++ } ++ ++ /* Merge both lists */ ++ if (last) { ++ last->object_next = j->object_list; ++ if (j->object_list) ++ j->object_list->object_prev = last; ++ j->object_list = other->object_list; ++ } ++ ++ /* Kill the other job */ ++ other->subject_list = NULL; ++ other->object_list = NULL; ++ transaction_delete_job(tr, other, true); ++} ++ ++static bool job_is_conflicted_by(Job *j) { ++ JobDependency *l; ++ ++ assert(j); ++ ++ /* Returns true if this job is pulled in by a least one ++ * ConflictedBy dependency. */ ++ ++ LIST_FOREACH(object, l, j->object_list) ++ if (l->conflicts) ++ return true; ++ ++ return false; ++} ++ ++static int delete_one_unmergeable_job(Transaction *tr, Job *j) { ++ Job *k; ++ ++ assert(j); ++ ++ /* Tries to delete one item in the linked list ++ * j->transaction_next->transaction_next->... that conflicts ++ * with another one, in an attempt to make an inconsistent ++ * transaction work. */ ++ ++ /* We rely here on the fact that if a merged with b does not ++ * merge with c, either a or b merge with c neither */ ++ LIST_FOREACH(transaction, j, j) ++ LIST_FOREACH(transaction, k, j->transaction_next) { ++ Job *d; ++ ++ /* Is this one mergeable? Then skip it */ ++ if (job_type_is_mergeable(j->type, k->type)) ++ continue; ++ ++ /* Ok, we found two that conflict, let's see if we can ++ * drop one of them */ ++ if (!j->matters_to_anchor && !k->matters_to_anchor) { ++ ++ /* Both jobs don't matter, so let's ++ * find the one that is smarter to ++ * remove. Let's think positive and ++ * rather remove stops then starts -- ++ * except if something is being ++ * stopped because it is conflicted by ++ * another unit in which case we ++ * rather remove the start. */ ++ ++ log_debug("Looking at job %s/%s conflicted_by=%s", j->unit->id, job_type_to_string(j->type), yes_no(j->type == JOB_STOP && job_is_conflicted_by(j))); ++ log_debug("Looking at job %s/%s conflicted_by=%s", k->unit->id, job_type_to_string(k->type), yes_no(k->type == JOB_STOP && job_is_conflicted_by(k))); ++ ++ if (j->type == JOB_STOP) { ++ ++ if (job_is_conflicted_by(j)) ++ d = k; ++ else ++ d = j; ++ ++ } else if (k->type == JOB_STOP) { ++ ++ if (job_is_conflicted_by(k)) ++ d = j; ++ else ++ d = k; ++ } else ++ d = j; ++ ++ } else if (!j->matters_to_anchor) ++ d = j; ++ else if (!k->matters_to_anchor) ++ d = k; ++ else ++ return -ENOEXEC; ++ ++ /* Ok, we can drop one, so let's do so. */ ++ log_debug("Fixing conflicting jobs by deleting job %s/%s", d->unit->id, job_type_to_string(d->type)); ++ transaction_delete_job(tr, d, true); ++ return 0; ++ } ++ ++ return -EINVAL; ++} ++ ++static int transaction_merge_jobs(Transaction *tr, DBusError *e) { ++ Job *j; ++ Iterator i; ++ int r; ++ ++ assert(tr); ++ ++ /* First step, check whether any of the jobs for one specific ++ * task conflict. If so, try to drop one of them. */ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ JobType t; ++ Job *k; ++ ++ t = j->type; ++ LIST_FOREACH(transaction, k, j->transaction_next) { ++ if (job_type_merge(&t, k->type) >= 0) ++ continue; ++ ++ /* OK, we could not merge all jobs for this ++ * action. Let's see if we can get rid of one ++ * of them */ ++ ++ r = delete_one_unmergeable_job(tr, j); ++ if (r >= 0) ++ /* Ok, we managed to drop one, now ++ * let's ask our callers to call us ++ * again after garbage collecting */ ++ return -EAGAIN; ++ ++ /* We couldn't merge anything. Failure */ ++ dbus_set_error(e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING, "Transaction contains conflicting jobs '%s' and '%s' for %s. Probably contradicting requirement dependencies configured.", ++ job_type_to_string(t), job_type_to_string(k->type), k->unit->id); ++ return r; ++ } ++ } ++ ++ /* Second step, merge the jobs. */ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ JobType t = j->type; ++ Job *k; ++ ++ /* Merge all transactions */ ++ LIST_FOREACH(transaction, k, j->transaction_next) ++ assert_se(job_type_merge(&t, k->type) == 0); ++ ++ /* If an active job is mergeable, merge it too */ ++ if (j->unit->job) ++ job_type_merge(&t, j->unit->job->type); /* Might fail. Which is OK */ ++ ++ while ((k = j->transaction_next)) { ++ if (j->installed) { ++ transaction_merge_and_delete_job(tr, k, j, t); ++ j = k; ++ } else ++ transaction_merge_and_delete_job(tr, j, k, t); ++ } ++ ++ if (j->unit->job && !j->installed) ++ transaction_merge_and_delete_job(tr, j, j->unit->job, t); ++ ++ assert(!j->transaction_next); ++ assert(!j->transaction_prev); ++ } ++ ++ return 0; ++} ++ ++static void transaction_drop_redundant(Transaction *tr) { ++ bool again; ++ ++ assert(tr); ++ ++ /* Goes through the transaction and removes all jobs that are ++ * a noop */ ++ ++ do { ++ Job *j; ++ Iterator i; ++ ++ again = false; ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ bool changes_something = false; ++ Job *k; ++ ++ LIST_FOREACH(transaction, k, j) { ++ ++ if (!job_is_anchor(k) && ++ (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && ++ (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) ++ continue; ++ ++ changes_something = true; ++ break; ++ } ++ ++ if (changes_something) ++ continue; ++ ++ /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ ++ transaction_delete_job(tr, j, false); ++ again = true; ++ break; ++ } ++ ++ } while (again); ++} ++ ++static bool unit_matters_to_anchor(Unit *u, Job *j) { ++ assert(u); ++ assert(!j->transaction_prev); ++ ++ /* Checks whether at least one of the jobs for this unit ++ * matters to the anchor. */ ++ ++ LIST_FOREACH(transaction, j, j) ++ if (j->matters_to_anchor) ++ return true; ++ ++ return false; ++} ++ ++static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsigned generation, DBusError *e) { ++ Iterator i; ++ Unit *u; ++ int r; ++ ++ assert(tr); ++ assert(j); ++ assert(!j->transaction_prev); ++ ++ /* Does a recursive sweep through the ordering graph, looking ++ * for a cycle. If we find cycle we try to break it. */ ++ ++ /* Have we seen this before? */ ++ if (j->generation == generation) { ++ Job *k, *delete; ++ ++ /* If the marker is NULL we have been here already and ++ * decided the job was loop-free from here. Hence ++ * shortcut things and return right-away. */ ++ if (!j->marker) ++ return 0; ++ ++ /* So, the marker is not NULL and we already have been ++ * here. We have a cycle. Let's try to break it. We go ++ * backwards in our path and try to find a suitable ++ * job to remove. We use the marker to find our way ++ * back, since smart how we are we stored our way back ++ * in there. */ ++ log_warning("Found ordering cycle on %s/%s", j->unit->id, job_type_to_string(j->type)); ++ ++ delete = NULL; ++ for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { ++ ++ log_info("Walked on cycle path to %s/%s", k->unit->id, job_type_to_string(k->type)); ++ ++ if (!delete && ++ !k->installed && ++ !unit_matters_to_anchor(k->unit, k)) { ++ /* Ok, we can drop this one, so let's ++ * do so. */ ++ delete = k; ++ } ++ ++ /* Check if this in fact was the beginning of ++ * the cycle */ ++ if (k == j) ++ break; ++ } ++ ++ ++ if (delete) { ++ log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); ++ transaction_delete_unit(tr, delete->unit); ++ return -EAGAIN; ++ } ++ ++ log_error("Unable to break cycle"); ++ ++ dbus_set_error(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC, "Transaction order is cyclic. See system logs for details."); ++ return -ENOEXEC; ++ } ++ ++ /* Make the marker point to where we come from, so that we can ++ * find our way backwards if we want to break a cycle. We use ++ * a special marker for the beginning: we point to ++ * ourselves. */ ++ j->marker = from ? from : j; ++ j->generation = generation; ++ ++ /* We assume that the the dependencies are bidirectional, and ++ * hence can ignore UNIT_AFTER */ ++ SET_FOREACH(u, j->unit->dependencies[UNIT_BEFORE], i) { ++ Job *o; ++ ++ /* Is there a job for this unit? */ ++ o = hashmap_get(tr->jobs, u); ++ if (!o) { ++ /* Ok, there is no job for this in the ++ * transaction, but maybe there is already one ++ * running? */ ++ o = u->job; ++ if (!o) ++ continue; ++ } ++ ++ r = transaction_verify_order_one(tr, o, j, generation, e); ++ if (r < 0) ++ return r; ++ } ++ ++ /* Ok, let's backtrack, and remember that this entry is not on ++ * our path anymore. */ ++ j->marker = NULL; ++ ++ return 0; ++} ++ ++static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusError *e) { ++ Job *j; ++ int r; ++ Iterator i; ++ unsigned g; ++ ++ assert(tr); ++ assert(generation); ++ ++ /* Check if the ordering graph is cyclic. If it is, try to fix ++ * that up by dropping one of the jobs. */ ++ ++ g = (*generation)++; ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) ++ if ((r = transaction_verify_order_one(tr, j, NULL, g, e)) < 0) ++ return r; ++ ++ return 0; ++} ++ ++static void transaction_collect_garbage(Transaction *tr) { ++ bool again; ++ ++ assert(tr); ++ ++ /* Drop jobs that are not required by any other job */ ++ ++ do { ++ Iterator i; ++ Job *j; ++ ++ again = false; ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ if (j->object_list) { ++ /* log_debug("Keeping job %s/%s because of %s/%s", */ ++ /* j->unit->id, job_type_to_string(j->type), */ ++ /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ ++ /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ ++ continue; ++ } ++ ++ /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ ++ transaction_delete_job(tr, j, true); ++ again = true; ++ break; ++ } ++ ++ } while (again); ++} ++ ++static int transaction_is_destructive(Transaction *tr, DBusError *e) { ++ Iterator i; ++ Job *j; ++ ++ assert(tr); ++ ++ /* Checks whether applying this transaction means that ++ * existing jobs would be replaced */ ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ ++ /* Assume merged */ ++ assert(!j->transaction_prev); ++ assert(!j->transaction_next); ++ ++ if (j->unit->job && ++ j->unit->job != j && ++ !job_type_is_superset(j->type, j->unit->job->type)) { ++ ++ dbus_set_error(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); ++ return -EEXIST; ++ } ++ } ++ ++ return 0; ++} ++ ++static void transaction_minimize_impact(Transaction *tr) { ++ bool again; ++ assert(tr); ++ ++ /* Drops all unnecessary jobs that reverse already active jobs ++ * or that stop a running service. */ ++ ++ do { ++ Job *j; ++ Iterator i; ++ ++ again = false; ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ LIST_FOREACH(transaction, j, j) { ++ bool stops_running_service, changes_existing_job; ++ ++ /* If it matters, we shouldn't drop it */ ++ if (j->matters_to_anchor) ++ continue; ++ ++ /* Would this stop a running service? ++ * Would this change an existing job? ++ * If so, let's drop this entry */ ++ ++ stops_running_service = ++ j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); ++ ++ changes_existing_job = ++ j->unit->job && ++ job_type_is_conflicting(j->type, j->unit->job->type); ++ ++ if (!stops_running_service && !changes_existing_job) ++ continue; ++ ++ if (stops_running_service) ++ log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); ++ ++ if (changes_existing_job) ++ log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); ++ ++ /* Ok, let's get rid of this */ ++ log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); ++ ++ transaction_delete_job(tr, j, true); ++ again = true; ++ break; ++ } ++ ++ if (again) ++ break; ++ } ++ ++ } while (again); ++} ++ ++static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { ++ Iterator i; ++ Job *j; ++ int r; ++ ++ /* Moves the transaction jobs to the set of active jobs */ ++ ++ if (mode == JOB_ISOLATE) { ++ ++ /* When isolating first kill all installed jobs which ++ * aren't part of the new transaction */ ++ rescan: ++ HASHMAP_FOREACH(j, m->jobs, i) { ++ assert(j->installed); ++ ++ if (hashmap_get(tr->jobs, j->unit)) ++ continue; ++ ++ /* 'j' itself is safe to remove, but if other jobs ++ are invalidated recursively, our iterator may become ++ invalid and we need to start over. */ ++ if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) ++ goto rescan; ++ } ++ } ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ /* Assume merged */ ++ assert(!j->transaction_prev); ++ assert(!j->transaction_next); ++ ++ if (j->installed) ++ continue; ++ ++ r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); ++ if (r < 0) ++ goto rollback; ++ } ++ ++ while ((j = hashmap_steal_first(tr->jobs))) { ++ Job *uj; ++ if (j->installed) { ++ /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ ++ continue; ++ } ++ ++ uj = j->unit->job; ++ if (uj) { ++ job_uninstall(uj); ++ job_free(uj); ++ } ++ ++ j->unit->job = j; ++ j->installed = true; ++ m->n_installed_jobs ++; ++ ++ /* We're fully installed. Now let's free data we don't ++ * need anymore. */ ++ ++ assert(!j->transaction_next); ++ assert(!j->transaction_prev); ++ ++ /* Clean the job dependencies */ ++ transaction_unlink_job(tr, j, false); ++ ++ job_add_to_run_queue(j); ++ job_add_to_dbus_queue(j); ++ job_start_timer(j); ++ ++ log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); ++ } ++ ++ assert(!tr->anchor); ++ ++ return 0; ++ ++rollback: ++ ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ if (j->installed) ++ continue; ++ ++ hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); ++ } ++ ++ return r; ++} ++ ++int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { ++ int r; ++ unsigned generation = 1; ++ ++ assert(tr); ++ ++ /* This applies the changes recorded in tr->jobs to ++ * the actual list of jobs, if possible. */ ++ ++ /* First step: figure out which jobs matter */ ++ transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); ++ ++ /* Second step: Try not to stop any running services if ++ * we don't have to. Don't try to reverse running ++ * jobs if we don't have to. */ ++ if (mode == JOB_FAIL) ++ transaction_minimize_impact(tr); ++ ++ /* Third step: Drop redundant jobs */ ++ transaction_drop_redundant(tr); ++ ++ for (;;) { ++ /* Fourth step: Let's remove unneeded jobs that might ++ * be lurking. */ ++ if (mode != JOB_ISOLATE) ++ transaction_collect_garbage(tr); ++ ++ /* Fifth step: verify order makes sense and correct ++ * cycles if necessary and possible */ ++ r = transaction_verify_order(tr, &generation, e); ++ if (r >= 0) ++ break; ++ ++ if (r != -EAGAIN) { ++ log_warning("Requested transaction contains an unfixable cyclic ordering dependency: %s", bus_error(e, r)); ++ return r; ++ } ++ ++ /* Let's see if the resulting transaction ordering ++ * graph is still cyclic... */ ++ } ++ ++ for (;;) { ++ /* Sixth step: let's drop unmergeable entries if ++ * necessary and possible, merge entries we can ++ * merge */ ++ r = transaction_merge_jobs(tr, e); ++ if (r >= 0) ++ break; ++ ++ if (r != -EAGAIN) { ++ log_warning("Requested transaction contains unmergeable jobs: %s", bus_error(e, r)); ++ return r; ++ } ++ ++ /* Seventh step: an entry got dropped, let's garbage ++ * collect its dependencies. */ ++ if (mode != JOB_ISOLATE) ++ transaction_collect_garbage(tr); ++ ++ /* Let's see if the resulting transaction still has ++ * unmergeable entries ... */ ++ } ++ ++ /* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */ ++ transaction_drop_redundant(tr); ++ ++ /* Ninth step: check whether we can actually apply this */ ++ if (mode == JOB_FAIL) { ++ r = transaction_is_destructive(tr, e); ++ if (r < 0) { ++ log_notice("Requested transaction contradicts existing jobs: %s", bus_error(e, r)); ++ return r; ++ } ++ } ++ ++ /* Tenth step: apply changes */ ++ r = transaction_apply(tr, m, mode); ++ if (r < 0) { ++ log_warning("Failed to apply transaction: %s", strerror(-r)); ++ return r; ++ } ++ ++ assert(hashmap_isempty(tr->jobs)); ++ assert(!tr->anchor); ++ ++ return 0; ++} ++ ++static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, bool override, bool *is_new) { ++ Job *j, *f; ++ ++ assert(tr); ++ assert(unit); ++ ++ /* Looks for an existing prospective job and returns that. If ++ * it doesn't exist it is created and added to the prospective ++ * jobs list. */ ++ ++ f = hashmap_get(tr->jobs, unit); ++ ++ LIST_FOREACH(transaction, j, f) { ++ assert(j->unit == unit); ++ ++ if (j->type == type) { ++ if (is_new) ++ *is_new = false; ++ return j; ++ } ++ } ++ ++ if (unit->job && unit->job->type == type) ++ j = unit->job; ++ else { ++ j = job_new(unit->manager, type, unit); ++ if (!j) ++ return NULL; ++ } ++ ++ j->generation = 0; ++ j->marker = NULL; ++ j->matters_to_anchor = false; ++ j->override = override; ++ ++ LIST_PREPEND(Job, transaction, f, j); ++ ++ if (hashmap_replace(tr->jobs, unit, f) < 0) { ++ LIST_REMOVE(Job, transaction, f, j); ++ job_free(j); ++ return NULL; ++ } ++ ++ if (is_new) ++ *is_new = true; ++ ++ /* log_debug("Added job %s/%s to transaction.", unit->id, job_type_to_string(type)); */ ++ ++ return j; ++} ++ ++static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { ++ assert(tr); ++ assert(j); ++ ++ if (j->transaction_prev) ++ j->transaction_prev->transaction_next = j->transaction_next; ++ else if (j->transaction_next) ++ hashmap_replace(tr->jobs, j->unit, j->transaction_next); ++ else ++ hashmap_remove_value(tr->jobs, j->unit, j); ++ ++ if (j->transaction_next) ++ j->transaction_next->transaction_prev = j->transaction_prev; ++ ++ j->transaction_prev = j->transaction_next = NULL; ++ ++ while (j->subject_list) ++ job_dependency_free(j->subject_list, tr); ++ ++ while (j->object_list) { ++ Job *other = j->object_list->matters ? j->object_list->subject : NULL; ++ ++ job_dependency_free(j->object_list, tr); ++ ++ if (other && delete_dependencies) { ++ log_debug("Deleting job %s/%s as dependency of job %s/%s", ++ other->unit->id, job_type_to_string(other->type), ++ j->unit->id, job_type_to_string(j->type)); ++ transaction_delete_job(tr, other, delete_dependencies); ++ } ++ } ++} ++ ++int transaction_add_job_and_dependencies( ++ Transaction *tr, ++ JobType type, ++ Unit *unit, ++ Job *by, ++ bool matters, ++ bool override, ++ bool conflicts, ++ bool ignore_requirements, ++ bool ignore_order, ++ DBusError *e, ++ Job **_ret) { ++ Job *ret; ++ Iterator i; ++ Unit *dep; ++ int r; ++ bool is_new; ++ ++ assert(tr); ++ assert(type < _JOB_TYPE_MAX); ++ assert(unit); ++ ++ /* log_debug("Pulling in %s/%s from %s/%s", */ ++ /* unit->id, job_type_to_string(type), */ ++ /* by ? by->unit->id : "NA", */ ++ /* by ? job_type_to_string(by->type) : "NA"); */ ++ ++ if (unit->load_state != UNIT_LOADED && ++ unit->load_state != UNIT_ERROR && ++ unit->load_state != UNIT_MASKED) { ++ dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id); ++ return -EINVAL; ++ } ++ ++ if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { ++ dbus_set_error(e, BUS_ERROR_LOAD_FAILED, ++ "Unit %s failed to load: %s. " ++ "See system logs and 'systemctl status %s' for details.", ++ unit->id, ++ strerror(-unit->load_error), ++ unit->id); ++ return -EINVAL; ++ } ++ ++ if (type != JOB_STOP && unit->load_state == UNIT_MASKED) { ++ dbus_set_error(e, BUS_ERROR_MASKED, "Unit %s is masked.", unit->id); ++ return -EINVAL; ++ } ++ ++ if (!unit_job_is_applicable(unit, type)) { ++ dbus_set_error(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, "Job type %s is not applicable for unit %s.", job_type_to_string(type), unit->id); ++ return -EBADR; ++ } ++ ++ /* First add the job. */ ++ ret = transaction_add_one_job(tr, type, unit, override, &is_new); ++ if (!ret) ++ return -ENOMEM; ++ ++ ret->ignore_order = ret->ignore_order || ignore_order; ++ ++ /* Then, add a link to the job. */ ++ if (!job_dependency_new(by, ret, matters, conflicts, tr)) ++ return -ENOMEM; ++ ++ if (is_new && !ignore_requirements) { ++ Set *following; ++ ++ /* If we are following some other unit, make sure we ++ * add all dependencies of everybody following. */ ++ if (unit_following_set(ret->unit, &following) > 0) { ++ SET_FOREACH(dep, following, i) { ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ set_free(following); ++ } ++ ++ /* Finally, recursively add in all dependencies. */ ++ if (type == JOB_START || type == JOB_RELOAD_OR_START) { ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ if (r != -EBADR) ++ goto fail; ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ if (r != -EBADR) ++ goto fail; ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ if (r != -EBADR) ++ goto fail; ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); ++ if (r < 0) { ++ if (r != -EBADR) ++ goto fail; ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ } ++ ++ if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ if (r != -EBADR) ++ goto fail; ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ if (r != -EBADR) ++ goto fail; ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ } ++ ++ if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { ++ ++ SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { ++ r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ if (r < 0) { ++ log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ ++ if (e) ++ dbus_error_free(e); ++ } ++ } ++ } ++ ++ /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ ++ } ++ ++ if (_ret) ++ *_ret = ret; ++ ++ return 0; ++ ++fail: ++ return r; ++} ++ ++int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { ++ Iterator i; ++ Unit *u; ++ char *k; ++ int r; ++ ++ assert(tr); ++ assert(m); ++ ++ HASHMAP_FOREACH_KEY(u, k, m->units, i) { ++ ++ /* ignore aliases */ ++ if (u->id != k) ++ continue; ++ ++ if (u->ignore_on_isolate) ++ continue; ++ ++ /* No need to stop inactive jobs */ ++ if (UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(u)) && !u->job) ++ continue; ++ ++ /* Is there already something listed for this? */ ++ if (hashmap_get(tr->jobs, u)) ++ continue; ++ ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); ++ if (r < 0) ++ log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); ++ } ++ ++ return 0; ++} ++ ++Transaction *transaction_new(void) { ++ Transaction *tr; ++ ++ tr = new0(Transaction, 1); ++ if (!tr) ++ return NULL; ++ ++ tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); ++ if (!tr->jobs) { ++ free(tr); ++ return NULL; ++ } ++ ++ return tr; ++} ++ ++void transaction_free(Transaction *tr) { ++ assert(hashmap_isempty(tr->jobs)); ++ hashmap_free(tr->jobs); ++ free(tr); ++} +diff --git a/src/transaction.h b/src/transaction.h +new file mode 100644 +index 0000000..d519ffb +--- /dev/null ++++ b/src/transaction.h +@@ -0,0 +1,36 @@ ++#ifndef footransactionhfoo ++#define footransactionhfoo ++ ++typedef struct Transaction Transaction; ++ ++#include "unit.h" ++#include "manager.h" ++#include "job.h" ++#include "hashmap.h" ++ ++struct Transaction { ++ /* Jobs to be added */ ++ Hashmap *jobs; /* Unit object => Job object list 1:1 */ ++ JobDependency *anchor; ++}; ++ ++Transaction *transaction_new(void); ++void transaction_free(Transaction *tr); ++ ++int transaction_add_job_and_dependencies( ++ Transaction *tr, ++ JobType type, ++ Unit *unit, ++ Job *by, ++ bool matters, ++ bool override, ++ bool conflicts, ++ bool ignore_requirements, ++ bool ignore_order, ++ DBusError *e, ++ Job **_ret); ++int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e); ++int transaction_add_isolate_jobs(Transaction *tr, Manager *m); ++void transaction_abort(Transaction *tr); ++ ++#endif +-- +1.7.7 + + +From bd61057f3d44d7bb4e279310a16646eb8ab9bb8c Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 18 Apr 2012 01:39:20 +0200 +Subject: [PATCH 09/30] job: job_new() can find the manager from the unit + (cherry picked from commit + 668ad332a404736474749cbcc8404af3e4447170) + +--- + src/job.c | 7 +++---- + src/job.h | 2 +- + src/transaction.c | 2 +- + 3 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 6d48748..c30bfda 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -33,18 +33,17 @@ + #include "log.h" + #include "dbus-job.h" + +-Job* job_new(Manager *m, JobType type, Unit *unit) { ++Job* job_new(Unit *unit, JobType type) { + Job *j; + +- assert(m); + assert(type < _JOB_TYPE_MAX); + assert(unit); + + if (!(j = new0(Job, 1))) + return NULL; + +- j->manager = m; +- j->id = m->current_job_id++; ++ j->manager = unit->manager; ++ j->id = j->manager->current_job_id++; + j->type = type; + j->unit = unit; + +diff --git a/src/job.h b/src/job.h +index efb0af9..faa10e3 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -137,7 +137,7 @@ struct Job { + bool ignore_order:1; + }; + +-Job* job_new(Manager *m, JobType type, Unit *unit); ++Job* job_new(Unit *unit, JobType type); + void job_uninstall(Job *j); + void job_free(Job *job); + void job_dump(Job *j, FILE*f, const char *prefix); +diff --git a/src/transaction.c b/src/transaction.c +index 8fa89a7..1344e2f 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -763,7 +763,7 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b + if (unit->job && unit->job->type == type) + j = unit->job; + else { +- j = job_new(unit->manager, type, unit); ++ j = job_new(unit, type); + if (!j) + return NULL; + } +-- +1.7.7 + + +From 0d6df78cb48dfbd1c37444ee3702ba59d87ca352 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 18 Apr 2012 15:21:24 +0200 +Subject: [PATCH 10/30] job: jobs shouldn't need to know about transaction + anchors + +Let the transactions maintain their own anchor links. +(cherry picked from commit 1da4264fbd0fa5e6b1bd5e0ac4674a3503774369) +--- + src/job.c | 8 ++------ + src/job.h | 5 ++--- + src/transaction.c | 18 +++++++++++++++--- + 3 files changed, 19 insertions(+), 12 deletions(-) + +diff --git a/src/job.c b/src/job.c +index c30bfda..a5ce2d4 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -96,7 +96,7 @@ void job_free(Job *j) { + free(j); + } + +-JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr) { ++JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { + JobDependency *l; + + assert(object); +@@ -116,21 +116,17 @@ JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool + + if (subject) + LIST_PREPEND(JobDependency, subject, subject->subject_list, l); +- else +- LIST_PREPEND(JobDependency, subject, tr->anchor, l); + + LIST_PREPEND(JobDependency, object, object->object_list, l); + + return l; + } + +-void job_dependency_free(JobDependency *l, Transaction *tr) { ++void job_dependency_free(JobDependency *l) { + assert(l); + + if (l->subject) + LIST_REMOVE(JobDependency, subject, l->subject->subject_list, l); +- else +- LIST_REMOVE(JobDependency, subject, tr->anchor, l); + + LIST_REMOVE(JobDependency, object, l->object->object_list, l); + +diff --git a/src/job.h b/src/job.h +index faa10e3..cbd10c5 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -34,7 +34,6 @@ typedef enum JobMode JobMode; + typedef enum JobResult JobResult; + + #include "manager.h" +-#include "transaction.h" + #include "unit.h" + #include "hashmap.h" + #include "list.h" +@@ -142,8 +141,8 @@ void job_uninstall(Job *j); + void job_free(Job *job); + void job_dump(Job *j, FILE*f, const char *prefix); + +-JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr); +-void job_dependency_free(JobDependency *l, Transaction *tr); ++JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); ++void job_dependency_free(JobDependency *l); + + bool job_is_anchor(Job *j); + +diff --git a/src/transaction.c b/src/transaction.c +index 1344e2f..2a6f1de 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -789,6 +789,12 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b + return j; + } + ++static void transaction_job_dependency_free(Transaction *tr, JobDependency *l) { ++ if (!l->subject) ++ LIST_REMOVE(JobDependency, subject, tr->anchor, l); ++ job_dependency_free(l); ++} ++ + static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { + assert(tr); + assert(j); +@@ -806,12 +812,12 @@ static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependen + j->transaction_prev = j->transaction_next = NULL; + + while (j->subject_list) +- job_dependency_free(j->subject_list, tr); ++ transaction_job_dependency_free(tr, j->subject_list); + + while (j->object_list) { + Job *other = j->object_list->matters ? j->object_list->subject : NULL; + +- job_dependency_free(j->object_list, tr); ++ transaction_job_dependency_free(tr, j->object_list); + + if (other && delete_dependencies) { + log_debug("Deleting job %s/%s as dependency of job %s/%s", +@@ -835,6 +841,7 @@ int transaction_add_job_and_dependencies( + DBusError *e, + Job **_ret) { + Job *ret; ++ JobDependency *l; + Iterator i; + Unit *dep; + int r; +@@ -884,9 +891,14 @@ int transaction_add_job_and_dependencies( + ret->ignore_order = ret->ignore_order || ignore_order; + + /* Then, add a link to the job. */ +- if (!job_dependency_new(by, ret, matters, conflicts, tr)) ++ l = job_dependency_new(by, ret, matters, conflicts); ++ if (!l) + return -ENOMEM; + ++ /* If the link has no subject job, it's the anchor link. */ ++ if (!by) ++ LIST_PREPEND(JobDependency, subject, tr->anchor, l); ++ + if (is_new && !ignore_requirements) { + Set *following; + +-- +1.7.7 + + +From 0799fe0aa4a9e74a0a11cedeb76a630c6db853d5 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 18 Apr 2012 18:15:49 +0200 +Subject: [PATCH 11/30] transaction: do not add installed jobs to the + transaction + +Do not attempt to optimize away the job creation by refering to installed jobs. +We do not want to disturb installed jobs until commiting the transaction. + +(A later patch to job merging will make the separation of transaction jobs and +installed jobs complete.) +(cherry picked from commit 3c956cfee29fe2642fbe257f55adb3583a4af878) +--- + src/transaction.c | 10 +++------- + 1 files changed, 3 insertions(+), 7 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index 2a6f1de..c00dd45 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -760,13 +760,9 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b + } + } + +- if (unit->job && unit->job->type == type) +- j = unit->job; +- else { +- j = job_new(unit, type); +- if (!j) +- return NULL; +- } ++ j = job_new(unit, type); ++ if (!j) ++ return NULL; + + j->generation = 0; + j->marker = NULL; +-- +1.7.7 + + +From 7f60fce10d4c111bcd274d0fcd83a0139b53a9bc Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 00:33:26 +0200 +Subject: [PATCH 12/30] transaction: maintain anchor_job + +Track which job is the anchor in the transaction. +(cherry picked from commit b94fbd30781d7533492cec65bf7d86fa19a1a074) +--- + src/manager.c | 7 +++---- + src/transaction.c | 37 ++++++++++++++++++------------------- + src/transaction.h | 4 ++-- + 3 files changed, 23 insertions(+), 25 deletions(-) + +diff --git a/src/manager.c b/src/manager.c +index a129b88..86ec858 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -631,7 +631,6 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + + int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { + int r; +- Job *ret; + Transaction *tr; + + assert(m); +@@ -657,7 +656,7 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove + + r = transaction_add_job_and_dependencies(tr, type, unit, NULL, true, override, false, + mode == JOB_IGNORE_DEPENDENCIES || mode == JOB_IGNORE_REQUIREMENTS, +- mode == JOB_IGNORE_DEPENDENCIES, e, &ret); ++ mode == JOB_IGNORE_DEPENDENCIES, e); + if (r < 0) + goto tr_abort; + +@@ -671,10 +670,10 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove + if (r < 0) + goto tr_abort; + +- log_debug("Enqueued job %s/%s as %u", unit->id, job_type_to_string(type), (unsigned) ret->id); ++ log_debug("Enqueued job %s/%s as %u", unit->id, job_type_to_string(type), (unsigned) tr->anchor_job->id); + + if (_ret) +- *_ret = ret; ++ *_ret = tr->anchor_job; + + transaction_free(tr); + return 0; +diff --git a/src/transaction.c b/src/transaction.c +index c00dd45..d7ecfdb 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -834,8 +834,7 @@ int transaction_add_job_and_dependencies( + bool conflicts, + bool ignore_requirements, + bool ignore_order, +- DBusError *e, +- Job **_ret) { ++ DBusError *e) { + Job *ret; + JobDependency *l; + Iterator i; +@@ -892,8 +891,11 @@ int transaction_add_job_and_dependencies( + return -ENOMEM; + + /* If the link has no subject job, it's the anchor link. */ +- if (!by) ++ if (!by) { + LIST_PREPEND(JobDependency, subject, tr->anchor, l); ++ if (!tr->anchor_job) ++ tr->anchor_job = ret; ++ } + + if (is_new && !ignore_requirements) { + Set *following; +@@ -902,7 +904,7 @@ int transaction_add_job_and_dependencies( + * add all dependencies of everybody following. */ + if (unit_following_set(ret->unit, &following) > 0) { + SET_FOREACH(dep, following, i) { +- r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e); + if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -917,7 +919,7 @@ int transaction_add_job_and_dependencies( + /* Finally, recursively add in all dependencies. */ + if (type == JOB_START || type == JOB_RELOAD_OR_START) { + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { + if (r != -EBADR) + goto fail; +@@ -928,7 +930,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { + if (r != -EBADR) + goto fail; +@@ -939,7 +941,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e); + if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -949,7 +951,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e); + if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -959,7 +961,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { + if (r != -EBADR) + goto fail; +@@ -970,7 +972,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e); + if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -980,7 +982,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e); + if (r < 0) { + if (r != -EBADR) + goto fail; +@@ -991,7 +993,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e); + if (r < 0) { + log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -1005,7 +1007,7 @@ int transaction_add_job_and_dependencies( + if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { +- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { + if (r != -EBADR) + goto fail; +@@ -1016,7 +1018,7 @@ int transaction_add_job_and_dependencies( + } + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { +- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { + if (r != -EBADR) + goto fail; +@@ -1030,7 +1032,7 @@ int transaction_add_job_and_dependencies( + if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { +- r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e); + if (r < 0) { + log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + +@@ -1043,9 +1045,6 @@ int transaction_add_job_and_dependencies( + /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ + } + +- if (_ret) +- *_ret = ret; +- + return 0; + + fail: +@@ -1078,7 +1077,7 @@ int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { + if (hashmap_get(tr->jobs, u)) + continue; + +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL); + if (r < 0) + log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); + } +diff --git a/src/transaction.h b/src/transaction.h +index d519ffb..4818cea 100644 +--- a/src/transaction.h ++++ b/src/transaction.h +@@ -12,6 +12,7 @@ struct Transaction { + /* Jobs to be added */ + Hashmap *jobs; /* Unit object => Job object list 1:1 */ + JobDependency *anchor; ++ Job *anchor_job; /* the job the user asked for */ + }; + + Transaction *transaction_new(void); +@@ -27,8 +28,7 @@ int transaction_add_job_and_dependencies( + bool conflicts, + bool ignore_requirements, + bool ignore_order, +- DBusError *e, +- Job **_ret); ++ DBusError *e); + int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e); + int transaction_add_isolate_jobs(Transaction *tr, Manager *m); + void transaction_abort(Transaction *tr); +-- +1.7.7 + + +From 3020dc5e2b840b8732cfdb81c322a47120a0a42f Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 10:33:37 +0200 +Subject: [PATCH 13/30] transaction: change the linking of isolate jobs to the + anchor + +When isolating, the JOB_STOP jobs have no parent job, so they are all peers +of the real anchor job. This is a bit odd. + +Link them from the anchor job. +(cherry picked from commit 4483f694983382b4092e3e295ffb59926cff96d9) +--- + src/transaction.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index d7ecfdb..09abe00 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -893,8 +893,8 @@ int transaction_add_job_and_dependencies( + /* If the link has no subject job, it's the anchor link. */ + if (!by) { + LIST_PREPEND(JobDependency, subject, tr->anchor, l); +- if (!tr->anchor_job) +- tr->anchor_job = ret; ++ assert(!tr->anchor_job); ++ tr->anchor_job = ret; + } + + if (is_new && !ignore_requirements) { +@@ -1077,7 +1077,7 @@ int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { + if (hashmap_get(tr->jobs, u)) + continue; + +- r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL); ++ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, tr->anchor_job, true, false, false, false, false, NULL); + if (r < 0) + log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); + } +-- +1.7.7 + + +From 1ceeee2cf56d60ac37199ba9ebbe02144200857c Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 01:20:14 +0200 +Subject: [PATCH 14/30] transaction: simplify + transaction_find_jobs_that_matter_to_anchor() (cherry + picked from commit + 0d9989aa68963037a18fb7ed4f309f6155927d70) + +--- + src/transaction.c | 19 ++++++------------- + 1 files changed, 6 insertions(+), 13 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index 09abe00..cac58e6 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -38,22 +38,18 @@ void transaction_abort(Transaction *tr) { + assert(!tr->anchor); + } + +-static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { ++static void transaction_find_jobs_that_matter_to_anchor(Job *j, unsigned generation) { + JobDependency *l; + +- assert(tr); +- + /* A recursive sweep through the graph that marks all units + * that matter to the anchor job, i.e. are directly or + * indirectly a dependency of the anchor job via paths that + * are fully marked as mattering. */ + +- if (j) +- l = j->subject_list; +- else +- l = tr->anchor; ++ j->matters_to_anchor = true; ++ j->generation = generation; + +- LIST_FOREACH(subject, l, l) { ++ LIST_FOREACH(subject, l, j->subject_list) { + + /* This link does not matter */ + if (!l->matters) +@@ -63,10 +59,7 @@ static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, + if (l->object->generation == generation) + continue; + +- l->object->matters_to_anchor = true; +- l->object->generation = generation; +- +- transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); ++ transaction_find_jobs_that_matter_to_anchor(l->object, generation); + } + } + +@@ -659,7 +652,7 @@ int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e + * the actual list of jobs, if possible. */ + + /* First step: figure out which jobs matter */ +- transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); ++ transaction_find_jobs_that_matter_to_anchor(tr->anchor_job, generation++); + + /* Second step: Try not to stop any running services if + * we don't have to. Don't try to reverse running +-- +1.7.7 + + +From ba088fafbe639c1a8e859406e9f82d0d8bffc804 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 02:48:24 +0200 +Subject: [PATCH 15/30] transaction: avoid garbage collecting the anchor job + +Make sure the anchor job is never considered garbage, even if it has no links +leading to it (this will be allowed in the next patch). +(cherry picked from commit 38809d9dfed4c75d9e97c4e5da2ff957723c4cad) +--- + src/transaction.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index cac58e6..ddb02c0 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -454,7 +454,7 @@ static void transaction_collect_garbage(Transaction *tr) { + again = false; + + HASHMAP_FOREACH(j, tr->jobs, i) { +- if (j->object_list) { ++ if (tr->anchor_job == j || j->object_list) { + /* log_debug("Keeping job %s/%s because of %s/%s", */ + /* j->unit->id, job_type_to_string(j->type), */ + /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ +-- +1.7.7 + + +From 436271253850ec21fccfaa435fa2c6ce445721ac Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 02:11:14 +0200 +Subject: [PATCH 16/30] transaction: remove the anchor link + +tr->anchor_job is sufficient. +(cherry picked from commit e6eda1f23efab618bb26e7015230d8552b401dc6) +--- + src/job.c | 12 ------------ + src/job.h | 2 -- + src/transaction.c | 31 ++++++++----------------------- + src/transaction.h | 1 - + 4 files changed, 8 insertions(+), 38 deletions(-) + +diff --git a/src/job.c b/src/job.c +index a5ce2d4..6b93b63 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -151,18 +151,6 @@ void job_dump(Job *j, FILE*f, const char *prefix) { + prefix, yes_no(j->override)); + } + +-bool job_is_anchor(Job *j) { +- JobDependency *l; +- +- assert(j); +- +- LIST_FOREACH(object, l, j->object_list) +- if (!l->subject) +- return true; +- +- return false; +-} +- + /* + * Merging is commutative, so imagine the matrix as symmetric. We store only + * its lower triangle to avoid duplication. We don't store the main diagonal, +diff --git a/src/job.h b/src/job.h +index cbd10c5..6b06c2a 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -144,8 +144,6 @@ void job_dump(Job *j, FILE*f, const char *prefix); + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); + void job_dependency_free(JobDependency *l); + +-bool job_is_anchor(Job *j); +- + int job_merge(Job *j, Job *other); + + JobType job_type_lookup_merge(JobType a, JobType b); +diff --git a/src/transaction.c b/src/transaction.c +index ddb02c0..39cfe54 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -34,8 +34,6 @@ void transaction_abort(Transaction *tr) { + transaction_delete_job(tr, j, true); + + assert(hashmap_isempty(tr->jobs)); +- +- assert(!tr->anchor); + } + + static void transaction_find_jobs_that_matter_to_anchor(Job *j, unsigned generation) { +@@ -287,7 +285,7 @@ static void transaction_drop_redundant(Transaction *tr) { + + LIST_FOREACH(transaction, k, j) { + +- if (!job_is_anchor(k) && ++ if (tr->anchor_job != k && + (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && + (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) + continue; +@@ -626,8 +624,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); + } + +- assert(!tr->anchor); +- + return 0; + + rollback: +@@ -726,7 +722,6 @@ int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e + } + + assert(hashmap_isempty(tr->jobs)); +- assert(!tr->anchor); + + return 0; + } +@@ -778,12 +773,6 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b + return j; + } + +-static void transaction_job_dependency_free(Transaction *tr, JobDependency *l) { +- if (!l->subject) +- LIST_REMOVE(JobDependency, subject, tr->anchor, l); +- job_dependency_free(l); +-} +- + static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { + assert(tr); + assert(j); +@@ -801,12 +790,12 @@ static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependen + j->transaction_prev = j->transaction_next = NULL; + + while (j->subject_list) +- transaction_job_dependency_free(tr, j->subject_list); ++ job_dependency_free(j->subject_list); + + while (j->object_list) { + Job *other = j->object_list->matters ? j->object_list->subject : NULL; + +- transaction_job_dependency_free(tr, j->object_list); ++ job_dependency_free(j->object_list); + + if (other && delete_dependencies) { + log_debug("Deleting job %s/%s as dependency of job %s/%s", +@@ -829,7 +818,6 @@ int transaction_add_job_and_dependencies( + bool ignore_order, + DBusError *e) { + Job *ret; +- JobDependency *l; + Iterator i; + Unit *dep; + int r; +@@ -879,17 +867,14 @@ int transaction_add_job_and_dependencies( + ret->ignore_order = ret->ignore_order || ignore_order; + + /* Then, add a link to the job. */ +- l = job_dependency_new(by, ret, matters, conflicts); +- if (!l) +- return -ENOMEM; +- +- /* If the link has no subject job, it's the anchor link. */ +- if (!by) { +- LIST_PREPEND(JobDependency, subject, tr->anchor, l); ++ if (by) { ++ if (!job_dependency_new(by, ret, matters, conflicts)) ++ return -ENOMEM; ++ } else { ++ /* If the job has no parent job, it is the anchor job. */ + assert(!tr->anchor_job); + tr->anchor_job = ret; + } +- + if (is_new && !ignore_requirements) { + Set *following; + +diff --git a/src/transaction.h b/src/transaction.h +index 4818cea..74d7461 100644 +--- a/src/transaction.h ++++ b/src/transaction.h +@@ -11,7 +11,6 @@ typedef struct Transaction Transaction; + struct Transaction { + /* Jobs to be added */ + Hashmap *jobs; /* Unit object => Job object list 1:1 */ +- JobDependency *anchor; + Job *anchor_job; /* the job the user asked for */ + }; + +-- +1.7.7 + + +From cdfe041c84fb813d883de58003e4a986ebde35e6 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 19 Apr 2012 23:56:26 +0200 +Subject: [PATCH 17/30] transaction: remove a couple of asserts + +We already asserted these facts in the previous loop. +(cherry picked from commit f1c2bdca422dba1bc5615f72662dee5ce69c147b) +--- + src/transaction.c | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index 39cfe54..41f7b82 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -611,9 +611,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + /* We're fully installed. Now let's free data we don't + * need anymore. */ + +- assert(!j->transaction_next); +- assert(!j->transaction_prev); +- + /* Clean the job dependencies */ + transaction_unlink_job(tr, j, false); + +-- +1.7.7 + + +From ff3ec7f35ab49a1e306f90b33866f4dc7fba282f Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 02:04:01 +0200 +Subject: [PATCH 18/30] job: separate job_install() + +Let the jobs install themselves. +(cherry picked from commit 05d576f1f77699ea5c2e5ed0e04451b14dfc45a0) +--- + src/job.c | 44 +++++++++++++++++++++++++++++--------------- + src/job.h | 3 ++- + src/transaction.c | 18 ++---------------- + 3 files changed, 33 insertions(+), 32 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 6b93b63..c5bf9cd 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -54,21 +54,6 @@ Job* job_new(Unit *unit, JobType type) { + return j; + } + +-void job_uninstall(Job *j) { +- assert(j->installed); +- /* Detach from next 'bigger' objects */ +- +- bus_job_send_removed_signal(j); +- +- if (j->unit->job == j) { +- j->unit->job = NULL; +- unit_add_to_gc_queue(j->unit); +- } +- +- hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); +- j->installed = false; +-} +- + void job_free(Job *j) { + assert(j); + assert(!j->installed); +@@ -96,6 +81,35 @@ void job_free(Job *j) { + free(j); + } + ++void job_uninstall(Job *j) { ++ assert(j->installed); ++ /* Detach from next 'bigger' objects */ ++ ++ bus_job_send_removed_signal(j); ++ ++ if (j->unit->job == j) { ++ j->unit->job = NULL; ++ unit_add_to_gc_queue(j->unit); ++ } ++ ++ hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); ++ j->installed = false; ++} ++ ++void job_install(Job *j) { ++ Job *uj = j->unit->job; ++ ++ if (uj) { ++ job_uninstall(uj); ++ job_free(uj); ++ } ++ ++ j->unit->job = j; ++ j->installed = true; ++ j->manager->n_installed_jobs ++; ++ log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); ++} ++ + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { + JobDependency *l; + +diff --git a/src/job.h b/src/job.h +index 6b06c2a..8fa9046 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -137,8 +137,9 @@ struct Job { + }; + + Job* job_new(Unit *unit, JobType type); +-void job_uninstall(Job *j); + void job_free(Job *job); ++void job_install(Job *j); ++void job_uninstall(Job *j); + void job_dump(Job *j, FILE*f, const char *prefix); + + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); +diff --git a/src/transaction.c b/src/transaction.c +index 41f7b82..d495cbd 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -592,33 +592,19 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + } + + while ((j = hashmap_steal_first(tr->jobs))) { +- Job *uj; + if (j->installed) { + /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ + continue; + } + +- uj = j->unit->job; +- if (uj) { +- job_uninstall(uj); +- job_free(uj); +- } +- +- j->unit->job = j; +- j->installed = true; +- m->n_installed_jobs ++; +- +- /* We're fully installed. Now let's free data we don't +- * need anymore. */ +- + /* Clean the job dependencies */ + transaction_unlink_job(tr, j, false); + ++ job_install(j); ++ + job_add_to_run_queue(j); + job_add_to_dbus_queue(j); + job_start_timer(j); +- +- log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); + } + + return 0; +-- +1.7.7 + + +From 78c1339da1446bac0f4a5fbb0f1add66a6246bec Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 09:38:43 +0200 +Subject: [PATCH 19/30] transaction: rework merging with installed jobs + +Previously transactions could reference installed jobs. It made some issues +difficult to fix. + +This sets new rules for jobs: +A job cannot be both a member of a transaction and installed. When jobs are +created, they are linked to a transaction. The whole transaction is constructed +(with merging of jobs within, etc.). When it's complete, all the jobs are +unlinked from it one by one and let to install themselves. It is during the +installation when merging with previously installed jobs (from older +transactions) is contemplated. + +Merging with installed jobs has different rules than merging within a +transaction: + - An installed conflicting job gets cancelled. It cannot be simply deleted, + because someone might be waiting for its completion on DBus. + - An installed, but still waiting, job can be safely merged into. + - An installed and running job can be tricky. For some job types it is safe to + just merge. For the other types we merge anyway, but put the job back into + JOB_WAITING to allow it to run again. This may be suboptimal, but it is not + currently possible to have more than one installed job for a unit. + +Note this also fixes a bug where the anchor job could be deleted during merging +within the transaction. +(cherry picked from commit 656bbffc6c45bdd8d5c28a96ca948ba16c546547) +--- + src/job.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/job.h | 2 +- + src/transaction.c | 21 +++++++++++-------- + 3 files changed, 68 insertions(+), 13 deletions(-) + +diff --git a/src/job.c b/src/job.c +index c5bf9cd..e6737df 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -96,18 +96,70 @@ void job_uninstall(Job *j) { + j->installed = false; + } + +-void job_install(Job *j) { ++static bool job_type_allows_late_merge(JobType t) { ++ /* Tells whether it is OK to merge a job of type 't' with an already ++ * running job. ++ * Reloads cannot be merged this way. Think of the sequence: ++ * 1. Reload of a daemon is in progress; the daemon has already loaded ++ * its config file, but hasn't completed the reload operation yet. ++ * 2. Edit foo's config file. ++ * 3. Trigger another reload to have the daemon use the new config. ++ * Should the second reload job be merged into the first one, the daemon ++ * would not know about the new config. ++ * JOB_RESTART jobs on the other hand can be merged, because they get ++ * patched into JOB_START after stopping the unit. So if we see a ++ * JOB_RESTART running, it means the unit hasn't stopped yet and at ++ * this time the merge is still allowed. */ ++ return !(t == JOB_RELOAD || t == JOB_RELOAD_OR_START); ++} ++ ++static void job_merge_into_installed(Job *j, Job *other) { ++ assert(j->installed); ++ assert(j->unit == other->unit); ++ ++ j->type = job_type_lookup_merge(j->type, other->type); ++ assert(j->type >= 0); ++ ++ j->override = j->override || other->override; ++} ++ ++Job* job_install(Job *j) { + Job *uj = j->unit->job; + ++ assert(!j->installed); ++ + if (uj) { +- job_uninstall(uj); +- job_free(uj); ++ if (job_type_is_conflicting(uj->type, j->type)) ++ job_finish_and_invalidate(uj, JOB_CANCELED); ++ else { ++ /* not conflicting, i.e. mergeable */ ++ ++ if (uj->state == JOB_WAITING || ++ (job_type_allows_late_merge(j->type) && job_type_is_superset(uj->type, j->type))) { ++ job_merge_into_installed(uj, j); ++ log_debug("Merged into installed job %s/%s as %u", ++ uj->unit->id, job_type_to_string(uj->type), (unsigned) uj->id); ++ return uj; ++ } else { ++ /* already running and not safe to merge into */ ++ /* Patch uj to become a merged job and re-run it. */ ++ /* XXX It should be safer to queue j to run after uj finishes, but it is ++ * not currently possible to have more than one installed job per unit. */ ++ job_merge_into_installed(uj, j); ++ log_debug("Merged into running job, re-running: %s/%s as %u", ++ uj->unit->id, job_type_to_string(uj->type), (unsigned) uj->id); ++ uj->state = JOB_WAITING; ++ return uj; ++ } ++ } + } + ++ /* Install the job */ + j->unit->job = j; + j->installed = true; + j->manager->n_installed_jobs ++; + log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); ++ return j; + } + + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { +diff --git a/src/job.h b/src/job.h +index 8fa9046..eab0e07 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -138,7 +138,7 @@ struct Job { + + Job* job_new(Unit *unit, JobType type); + void job_free(Job *job); +-void job_install(Job *j); ++Job* job_install(Job *j); + void job_uninstall(Job *j); + void job_dump(Job *j, FILE*f, const char *prefix); + +diff --git a/src/transaction.c b/src/transaction.c +index d495cbd..aa0cedf 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -243,21 +243,14 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { + LIST_FOREACH(transaction, k, j->transaction_next) + assert_se(job_type_merge(&t, k->type) == 0); + +- /* If an active job is mergeable, merge it too */ +- if (j->unit->job) +- job_type_merge(&t, j->unit->job->type); /* Might fail. Which is OK */ +- + while ((k = j->transaction_next)) { +- if (j->installed) { ++ if (tr->anchor_job == k) { + transaction_merge_and_delete_job(tr, k, j, t); + j = k; + } else + transaction_merge_and_delete_job(tr, j, k, t); + } + +- if (j->unit->job && !j->installed) +- transaction_merge_and_delete_job(tr, j, j->unit->job, t); +- + assert(!j->transaction_next); + assert(!j->transaction_prev); + } +@@ -592,6 +585,8 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + } + + while ((j = hashmap_steal_first(tr->jobs))) { ++ Job *installed_job; ++ + if (j->installed) { + /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ + continue; +@@ -600,7 +595,15 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + /* Clean the job dependencies */ + transaction_unlink_job(tr, j, false); + +- job_install(j); ++ installed_job = job_install(j); ++ if (installed_job != j) { ++ /* j has been merged into a previously installed job */ ++ if (tr->anchor_job == j) ++ tr->anchor_job = installed_job; ++ hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); ++ job_free(j); ++ j = installed_job; ++ } + + job_add_to_run_queue(j); + job_add_to_dbus_queue(j); +-- +1.7.7 + + +From 3d47dab6ed99778f9812ec4039135feb950f02da Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 10:02:05 +0200 +Subject: [PATCH 20/30] transaction: remove checks for installed + +Transactions cannot contain installed jobs anymore. Remove the now pointless +checks. +(cherry picked from commit d6a093d098054b6fe866441251ad9485c9e31584) +--- + src/job.c | 7 +++---- + src/transaction.c | 21 +++------------------ + 2 files changed, 6 insertions(+), 22 deletions(-) + +diff --git a/src/job.c b/src/job.c +index e6737df..fb759a5 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -83,14 +83,13 @@ void job_free(Job *j) { + + void job_uninstall(Job *j) { + assert(j->installed); ++ assert(j->unit->job == j); + /* Detach from next 'bigger' objects */ + + bus_job_send_removed_signal(j); + +- if (j->unit->job == j) { +- j->unit->job = NULL; +- unit_add_to_gc_queue(j->unit); +- } ++ j->unit->job = NULL; ++ unit_add_to_gc_queue(j->unit); + + hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); + j->installed = false; +diff --git a/src/transaction.c b/src/transaction.c +index aa0cedf..c3e1e13 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -11,8 +11,7 @@ static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependen + + transaction_unlink_job(tr, j, delete_dependencies); + +- if (!j->installed) +- job_free(j); ++ job_free(j); + } + + static void transaction_delete_unit(Transaction *tr, Unit *u) { +@@ -279,7 +278,7 @@ static void transaction_drop_redundant(Transaction *tr) { + LIST_FOREACH(transaction, k, j) { + + if (tr->anchor_job != k && +- (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && ++ job_type_is_redundant(k->type, unit_active_state(k->unit)) && + (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) + continue; + +@@ -349,7 +348,6 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi + log_info("Walked on cycle path to %s/%s", k->unit->id, job_type_to_string(k->type)); + + if (!delete && +- !k->installed && + !unit_matters_to_anchor(k->unit, k)) { + /* Ok, we can drop this one, so let's + * do so. */ +@@ -478,7 +476,6 @@ static int transaction_is_destructive(Transaction *tr, DBusError *e) { + assert(!j->transaction_next); + + if (j->unit->job && +- j->unit->job != j && + !job_type_is_superset(j->type, j->unit->job->type)) { + + dbus_set_error(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); +@@ -576,9 +573,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + assert(!j->transaction_prev); + assert(!j->transaction_next); + +- if (j->installed) +- continue; +- + r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); + if (r < 0) + goto rollback; +@@ -587,11 +581,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + while ((j = hashmap_steal_first(tr->jobs))) { + Job *installed_job; + +- if (j->installed) { +- /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ +- continue; +- } +- + /* Clean the job dependencies */ + transaction_unlink_job(tr, j, false); + +@@ -614,12 +603,8 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + + rollback: + +- HASHMAP_FOREACH(j, tr->jobs, i) { +- if (j->installed) +- continue; +- ++ HASHMAP_FOREACH(j, tr->jobs, i) + hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); +- } + + return r; + } +-- +1.7.7 + + +From 55284fc0ba28bf10d4fa535a86921bad23505c96 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 12:28:31 +0200 +Subject: [PATCH 21/30] dbus-job: allow multiple bus clients + +Merging of jobs can result in more than one client being interested in a job. +(cherry picked from commit 97e6a11996855800f68dc41c13537784198c8b61) +--- + src/dbus-job.c | 146 +++++++++++++++++++++++++++++++--------------------- + src/dbus-manager.c | 6 ++- + src/dbus.c | 14 +++-- + src/job.c | 21 +++++++- + src/job.h | 15 ++++- + 5 files changed, 131 insertions(+), 71 deletions(-) + +diff --git a/src/dbus-job.c b/src/dbus-job.c +index ab6d610..aa1b4eb 100644 +--- a/src/dbus-job.c ++++ b/src/dbus-job.c +@@ -225,61 +225,71 @@ const DBusObjectPathVTable bus_job_vtable = { + .message_function = bus_job_message_handler + }; + +-static int job_send_message(Job *j, DBusMessage *m) { ++static int job_send_message(Job *j, DBusMessage* (*new_message)(Job *j)) { ++ DBusMessage *m = NULL; + int r; + + assert(j); +- assert(m); ++ assert(new_message); + + if (bus_has_subscriber(j->manager)) { +- if ((r = bus_broadcast(j->manager, m)) < 0) ++ m = new_message(j); ++ if (!m) ++ goto oom; ++ r = bus_broadcast(j->manager, m); ++ dbus_message_unref(m); ++ if (r < 0) + return r; + +- } else if (j->bus_client) { ++ } else { + /* If nobody is subscribed, we just send the message +- * to the client which created the job */ ++ * to the client(s) which created the job */ ++ JobBusClient *cl; ++ assert(j->bus_client_list); ++ LIST_FOREACH(client, cl, j->bus_client_list) { ++ assert(cl->bus); + +- assert(j->bus); ++ m = new_message(j); ++ if (!m) ++ goto oom; + +- if (!dbus_message_set_destination(m, j->bus_client)) +- return -ENOMEM; ++ if (!dbus_message_set_destination(m, cl->name)) ++ goto oom; ++ ++ if (!dbus_connection_send(cl->bus, m, NULL)) ++ goto oom; + +- if (!dbus_connection_send(j->bus, m, NULL)) +- return -ENOMEM; ++ dbus_message_unref(m); ++ m = NULL; ++ } + } + + return 0; ++oom: ++ if (m) ++ dbus_message_unref(m); ++ return -ENOMEM; + } + +-void bus_job_send_change_signal(Job *j) { +- char *p = NULL; ++static DBusMessage* new_change_signal_message(Job *j) { + DBusMessage *m = NULL; ++ char *p = NULL; + +- assert(j); +- +- if (j->in_dbus_queue) { +- LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); +- j->in_dbus_queue = false; +- } +- +- if (!bus_has_subscriber(j->manager) && !j->bus_client) { +- j->sent_dbus_new_signal = true; +- return; +- } +- +- if (!(p = job_dbus_path(j))) ++ p = job_dbus_path(j); ++ if (!p) + goto oom; + + if (j->sent_dbus_new_signal) { + /* Send a properties changed signal */ +- +- if (!(m = bus_properties_changed_new(p, "org.freedesktop.systemd1.Job", INVALIDATING_PROPERTIES))) ++ m = bus_properties_changed_new(p, "org.freedesktop.systemd1.Job", INVALIDATING_PROPERTIES); ++ if (!m) + goto oom; + + } else { + /* Send a new signal */ + +- if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobNew"))) ++ m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobNew"); ++ if (!m) + goto oom; + + if (!dbus_message_append_args(m, +@@ -289,42 +299,26 @@ void bus_job_send_change_signal(Job *j) { + goto oom; + } + +- if (job_send_message(j, m) < 0) +- goto oom; +- +- free(p); +- dbus_message_unref(m); +- +- j->sent_dbus_new_signal = true; +- +- return; ++ return m; + + oom: +- free(p); +- + if (m) + dbus_message_unref(m); +- +- log_error("Failed to allocate job change signal."); ++ free(p); ++ return NULL; + } + +-void bus_job_send_removed_signal(Job *j) { +- char *p = NULL; ++static DBusMessage* new_removed_signal_message(Job *j) { + DBusMessage *m = NULL; ++ char *p = NULL; + const char *r; + +- assert(j); +- +- if (!bus_has_subscriber(j->manager) && !j->bus_client) +- return; +- +- if (!j->sent_dbus_new_signal) +- bus_job_send_change_signal(j); +- +- if (!(p = job_dbus_path(j))) ++ p = job_dbus_path(j); ++ if (!p) + goto oom; + +- if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobRemoved"))) ++ m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobRemoved"); ++ if (!m) + goto oom; + + r = job_result_to_string(j->result); +@@ -336,19 +330,53 @@ void bus_job_send_removed_signal(Job *j) { + DBUS_TYPE_INVALID)) + goto oom; + +- if (job_send_message(j, m) < 0) +- goto oom; ++ return m; + ++oom: ++ if (m) ++ dbus_message_unref(m); + free(p); +- dbus_message_unref(m); ++ return NULL; ++} ++ ++void bus_job_send_change_signal(Job *j) { ++ assert(j); ++ ++ if (j->in_dbus_queue) { ++ LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); ++ j->in_dbus_queue = false; ++ } ++ ++ if (!bus_has_subscriber(j->manager) && !j->bus_client_list) { ++ j->sent_dbus_new_signal = true; ++ return; ++ } ++ ++ if (job_send_message(j, new_change_signal_message) < 0) ++ goto oom; ++ ++ j->sent_dbus_new_signal = true; + + return; + + oom: +- free(p); ++ log_error("Failed to allocate job change signal."); ++} + +- if (m) +- dbus_message_unref(m); ++void bus_job_send_removed_signal(Job *j) { ++ assert(j); ++ ++ if (!bus_has_subscriber(j->manager) && !j->bus_client_list) ++ return; ++ ++ if (!j->sent_dbus_new_signal) ++ bus_job_send_change_signal(j); + ++ if (job_send_message(j, new_removed_signal_message) < 0) ++ goto oom; ++ ++ return; ++ ++oom: + log_error("Failed to allocate job remove signal."); + } +diff --git a/src/dbus-manager.c b/src/dbus-manager.c +index 6d272cb..0b78375 100644 +--- a/src/dbus-manager.c ++++ b/src/dbus-manager.c +@@ -1435,6 +1435,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, + const char *name, *smode, *old_name = NULL; + JobMode mode; + Job *j; ++ JobBusClient *cl; + Unit *u; + bool b; + +@@ -1492,10 +1493,11 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, + if ((r = manager_add_job(m, job_type, u, mode, true, &error, &j)) < 0) + return bus_send_error_reply(connection, message, &error, r); + +- if (!(j->bus_client = strdup(message_get_sender_with_fallback(message)))) ++ cl = job_bus_client_new(connection, message_get_sender_with_fallback(message)); ++ if (!cl) + goto oom; + +- j->bus = connection; ++ LIST_PREPEND(JobBusClient, client, j->bus_client_list, cl); + + if (!(reply = dbus_message_new_method_return(message))) + goto oom; +diff --git a/src/dbus.c b/src/dbus.c +index 8e6e9fd..50e8c9c 100644 +--- a/src/dbus.c ++++ b/src/dbus.c +@@ -1166,13 +1166,15 @@ static void shutdown_connection(Manager *m, DBusConnection *c) { + Job *j; + Iterator i; + +- HASHMAP_FOREACH(j, m->jobs, i) +- if (j->bus == c) { +- free(j->bus_client); +- j->bus_client = NULL; +- +- j->bus = NULL; ++ HASHMAP_FOREACH(j, m->jobs, i) { ++ JobBusClient *cl, *nextcl; ++ LIST_FOREACH_SAFE(client, cl, nextcl, j->bus_client_list) { ++ if (cl->bus == c) { ++ LIST_REMOVE(JobBusClient, client, j->bus_client_list, cl); ++ free(cl); ++ } + } ++ } + + set_remove(m->bus_connections, c); + set_remove(m->bus_connections_for_dispatch, c); +diff --git a/src/job.c b/src/job.c +index fb759a5..de74751 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -33,6 +33,20 @@ + #include "log.h" + #include "dbus-job.h" + ++JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { ++ JobBusClient *cl; ++ size_t name_len; ++ ++ name_len = strlen(name); ++ cl = malloc0(sizeof(JobBusClient) + name_len + 1); ++ if (!cl) ++ return NULL; ++ ++ cl->bus = connection; ++ memcpy(cl->name, name, name_len + 1); ++ return cl; ++} ++ + Job* job_new(Unit *unit, JobType type) { + Job *j; + +@@ -55,6 +69,8 @@ Job* job_new(Unit *unit, JobType type) { + } + + void job_free(Job *j) { ++ JobBusClient *cl; ++ + assert(j); + assert(!j->installed); + assert(!j->transaction_prev); +@@ -77,7 +93,10 @@ void job_free(Job *j) { + close_nointr_nofail(j->timer_watch.fd); + } + +- free(j->bus_client); ++ while ((cl = j->bus_client_list)) { ++ LIST_REMOVE(JobBusClient, client, j->bus_client_list, cl); ++ free(cl); ++ } + free(j); + } + +diff --git a/src/job.h b/src/job.h +index eab0e07..2025b5b 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -28,6 +28,7 @@ + + typedef struct Job Job; + typedef struct JobDependency JobDependency; ++typedef struct JobBusClient JobBusClient; + typedef enum JobType JobType; + typedef enum JobState JobState; + typedef enum JobMode JobMode; +@@ -99,6 +100,13 @@ struct JobDependency { + bool conflicts; + }; + ++struct JobBusClient { ++ LIST_FIELDS(JobBusClient, client); ++ /* Note that this bus object is not ref counted here. */ ++ DBusConnection *bus; ++ char name[0]; ++}; ++ + struct Job { + Manager *manager; + Unit *unit; +@@ -121,9 +129,8 @@ struct Job { + + Watch timer_watch; + +- /* Note that this bus object is not ref counted here. */ +- DBusConnection *bus; +- char *bus_client; ++ /* There can be more than one client, because of job merging. */ ++ LIST_HEAD(JobBusClient, bus_client_list); + + JobResult result; + +@@ -136,6 +143,8 @@ struct Job { + bool ignore_order:1; + }; + ++JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name); ++ + Job* job_new(Unit *unit, JobType type); + void job_free(Job *job); + Job* job_install(Job *j); +-- +1.7.7 + + +From 45aca411e44be019c9ba1bc1500e0b7df73bbf75 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 20 Apr 2012 14:44:00 +0200 +Subject: [PATCH 22/30] transaction: add starting requirements for JOB_RESTART + +While having a Requires= dependency between units, the dependency is started +automatically on "systemctl start", but it's not started on "systemctl +restart". + +JOB_RESTART jobs did not pull the dependencies for starting into the +transaction. + +https://bugzilla.redhat.com/show_bug.cgi?id=802770 + +Note that the other bug noted in comment #2 has been fixed already by avoiding +the deletion of anchor jobs. +(cherry picked from commit 65304075249449a713b4e4842b8538ef4aa1c725) +--- + src/transaction.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index c3e1e13..a2efcbc 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -866,7 +866,7 @@ int transaction_add_job_and_dependencies( + } + + /* Finally, recursively add in all dependencies. */ +- if (type == JOB_START || type == JOB_RELOAD_OR_START) { ++ if (type == JOB_START || type == JOB_RELOAD_OR_START || type == JOB_RESTART) { + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { + r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { +-- +1.7.7 + + +From 029699f2de954461054efb21e91994ca6e9df46a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 22 Apr 2012 15:22:52 +0200 +Subject: [PATCH 23/30] transaction: downgrade warnings about masked units + (cherry picked from commit + 59e132a7f416d7c4a33a46d791f250e03d2c2cd0) + +--- + src/transaction.c | 11 +++++++---- + 1 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index a2efcbc..a36f1df 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -822,7 +822,7 @@ int transaction_add_job_and_dependencies( + + if (type != JOB_STOP && unit->load_state == UNIT_MASKED) { + dbus_set_error(e, BUS_ERROR_MASKED, "Unit %s is masked.", unit->id); +- return -EINVAL; ++ return -EADDRNOTAVAIL; + } + + if (!unit_job_is_applicable(unit, type)) { +@@ -892,7 +892,8 @@ int transaction_add_job_and_dependencies( + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { + r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e); + if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ log_full(r == -EADDRNOTAVAIL ? LOG_DEBUG : LOG_WARNING, ++ "Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); +@@ -902,7 +903,8 @@ int transaction_add_job_and_dependencies( + SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { + r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e); + if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ log_full(r == -EADDRNOTAVAIL ? LOG_DEBUG : LOG_WARNING, ++ "Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); +@@ -923,7 +925,8 @@ int transaction_add_job_and_dependencies( + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { + r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e); + if (r < 0) { +- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); ++ log_full(r == -EADDRNOTAVAIL ? LOG_DEBUG : LOG_WARNING, ++ "Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); + + if (e) + dbus_error_free(e); +-- +1.7.7 + + +From 0ee2f52343ed0da6dc9006be54c9de57b762e563 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 21 Apr 2012 21:40:40 +0200 +Subject: [PATCH 24/30] transaction: improve readability + +The functions looked complicated with the nested loops with breaks, +continues, and "while (again)". +Here using goto actually makes them easier to understand. + +Also correcting the comment about redundant jobs. +(cherry picked from commit 055163ad15a5ca1eb5626c63fa7163e152698e2b) +--- + src/transaction.c | 152 ++++++++++++++++++++++------------------------------- + 1 files changed, 62 insertions(+), 90 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index a36f1df..2bd6541 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -258,44 +258,32 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { + } + + static void transaction_drop_redundant(Transaction *tr) { +- bool again; +- +- assert(tr); +- +- /* Goes through the transaction and removes all jobs that are +- * a noop */ +- +- do { +- Job *j; +- Iterator i; +- +- again = false; +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- bool changes_something = false; +- Job *k; ++ Job *j; ++ Iterator i; + +- LIST_FOREACH(transaction, k, j) { ++ /* Goes through the transaction and removes all jobs of the units ++ * whose jobs are all noops. If not all of a unit's jobs are ++ * redundant, they are kept. */ + +- if (tr->anchor_job != k && +- job_type_is_redundant(k->type, unit_active_state(k->unit)) && +- (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) +- continue; ++ assert(tr); + +- changes_something = true; +- break; +- } ++rescan: ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ Job *k; + +- if (changes_something) +- continue; ++ LIST_FOREACH(transaction, k, j) { + +- /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ +- transaction_delete_job(tr, j, false); +- again = true; +- break; ++ if (tr->anchor_job == k || ++ !job_type_is_redundant(k->type, unit_active_state(k->unit)) || ++ (k->unit->job && job_type_is_conflicting(k->type, k->unit->job->type))) ++ goto next_unit; + } + +- } while (again); ++ /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ ++ transaction_delete_job(tr, j, false); ++ goto rescan; ++ next_unit:; ++ } + } + + static bool unit_matters_to_anchor(Unit *u, Job *j) { +@@ -430,34 +418,27 @@ static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusE + } + + static void transaction_collect_garbage(Transaction *tr) { +- bool again; ++ Iterator i; ++ Job *j; + + assert(tr); + + /* Drop jobs that are not required by any other job */ + +- do { +- Iterator i; +- Job *j; +- +- again = false; +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- if (tr->anchor_job == j || j->object_list) { +- /* log_debug("Keeping job %s/%s because of %s/%s", */ +- /* j->unit->id, job_type_to_string(j->type), */ +- /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ +- /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ +- continue; +- } +- +- /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ +- transaction_delete_job(tr, j, true); +- again = true; +- break; ++rescan: ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ if (tr->anchor_job == j || j->object_list) { ++ /* log_debug("Keeping job %s/%s because of %s/%s", */ ++ /* j->unit->id, job_type_to_string(j->type), */ ++ /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ ++ /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ ++ continue; + } + +- } while (again); ++ /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ ++ transaction_delete_job(tr, j, true); ++ goto rescan; ++ } + } + + static int transaction_is_destructive(Transaction *tr, DBusError *e) { +@@ -487,59 +468,50 @@ static int transaction_is_destructive(Transaction *tr, DBusError *e) { + } + + static void transaction_minimize_impact(Transaction *tr) { +- bool again; ++ Job *j; ++ Iterator i; ++ + assert(tr); + + /* Drops all unnecessary jobs that reverse already active jobs + * or that stop a running service. */ + +- do { +- Job *j; +- Iterator i; +- +- again = false; +- +- HASHMAP_FOREACH(j, tr->jobs, i) { +- LIST_FOREACH(transaction, j, j) { +- bool stops_running_service, changes_existing_job; ++rescan: ++ HASHMAP_FOREACH(j, tr->jobs, i) { ++ LIST_FOREACH(transaction, j, j) { ++ bool stops_running_service, changes_existing_job; + +- /* If it matters, we shouldn't drop it */ +- if (j->matters_to_anchor) +- continue; ++ /* If it matters, we shouldn't drop it */ ++ if (j->matters_to_anchor) ++ continue; + +- /* Would this stop a running service? +- * Would this change an existing job? +- * If so, let's drop this entry */ ++ /* Would this stop a running service? ++ * Would this change an existing job? ++ * If so, let's drop this entry */ + +- stops_running_service = +- j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); ++ stops_running_service = ++ j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); + +- changes_existing_job = +- j->unit->job && +- job_type_is_conflicting(j->type, j->unit->job->type); ++ changes_existing_job = ++ j->unit->job && ++ job_type_is_conflicting(j->type, j->unit->job->type); + +- if (!stops_running_service && !changes_existing_job) +- continue; ++ if (!stops_running_service && !changes_existing_job) ++ continue; + +- if (stops_running_service) +- log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); ++ if (stops_running_service) ++ log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); + +- if (changes_existing_job) +- log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); ++ if (changes_existing_job) ++ log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); + +- /* Ok, let's get rid of this */ +- log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); ++ /* Ok, let's get rid of this */ ++ log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); + +- transaction_delete_job(tr, j, true); +- again = true; +- break; +- } +- +- if (again) +- break; ++ transaction_delete_job(tr, j, true); ++ goto rescan; + } +- +- } while (again); ++ } + } + + static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { +-- +1.7.7 + + +From f613fa87549229f257444c41f5155fb1f5f30f44 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sun, 22 Apr 2012 02:09:04 +0200 +Subject: [PATCH 25/30] transaction: fix detection of cycles involving + installed jobs + +A transaction can be acyclic, but when it's added to installed jobs, +a cycle may result. + +transaction_verify_order_one() attempts to detect these cases, but it +fails because the installed jobs often have the exact generation number +that makes them look as if they were walked already. + +Fix it by resetting the generation numbers of all installed jobs before +detecting cycles. + +An alternative fix could be to add the generation counter to the +Manager and use it instead of starting always from 1 in +transaction_activate(). But I prefer not having to worry about it +wrapping around. +(cherry picked from commit 4e7bd268ae1f39675988b9ac61b9378a67e3ae3e) +--- + src/transaction.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index 2bd6541..9676b57 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -582,6 +582,8 @@ rollback: + } + + int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { ++ Iterator i; ++ Job *j; + int r; + unsigned generation = 1; + +@@ -590,6 +592,12 @@ int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e + /* This applies the changes recorded in tr->jobs to + * the actual list of jobs, if possible. */ + ++ /* Reset the generation counter of all installed jobs. The detection of cycles ++ * looks at installed jobs. If they had a non-zero generation from some previous ++ * walk of the graph, the algorithm would break. */ ++ HASHMAP_FOREACH(j, m->jobs, i) ++ j->generation = 0; ++ + /* First step: figure out which jobs matter */ + transaction_find_jobs_that_matter_to_anchor(tr->anchor_job, generation++); + +-- +1.7.7 + + +From 374998cf2930534951bc0dace5025468cdf3c247 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sun, 22 Apr 2012 10:54:58 +0200 +Subject: [PATCH 26/30] transaction: abort does not need to use recursive + deletion + +Recursion is unnecessary, because we're deleting all transaction jobs +anyway. And the recursive deletion produces debug messages that are +pointless in transaction abort. +(cherry picked from commit 1b9cea0caa85dce6d9f117638a296b141c49a8fd) +--- + src/transaction.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/transaction.c b/src/transaction.c +index 9676b57..b0a26f2 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -30,7 +30,7 @@ void transaction_abort(Transaction *tr) { + assert(tr); + + while ((j = hashmap_first(tr->jobs))) +- transaction_delete_job(tr, j, true); ++ transaction_delete_job(tr, j, false); + + assert(hashmap_isempty(tr->jobs)); + } +-- +1.7.7 + + +From 0d806f0c0bebf755867cfe0b3cc41d55aebea66a Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Mon, 23 Apr 2012 01:24:04 +0200 +Subject: [PATCH 27/30] job: serialize jobs properly + +Jobs were not preserved correctly over a daemon-reload operation. +A systemctl process waiting for a job completion received a job removal +signal. The job itself changed its id. The job timeout started ticking all +over again. + +This fixes the deficiencies. +(cherry picked from commit 39a18c60d07319ebfcfd476556729c2cadd616d6) +--- + src/dbus-job.c | 6 +- + src/job.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + src/job.h | 6 ++ + src/unit.c | 45 ++++++++++++--- + src/unit.h | 4 +- + 5 files changed, 203 insertions(+), 20 deletions(-) + +diff --git a/src/dbus-job.c b/src/dbus-job.c +index aa1b4eb..63e5846 100644 +--- a/src/dbus-job.c ++++ b/src/dbus-job.c +@@ -232,7 +232,7 @@ static int job_send_message(Job *j, DBusMessage* (*new_message)(Job *j)) { + assert(j); + assert(new_message); + +- if (bus_has_subscriber(j->manager)) { ++ if (bus_has_subscriber(j->manager) || j->forgot_bus_clients) { + m = new_message(j); + if (!m) + goto oom; +@@ -347,7 +347,7 @@ void bus_job_send_change_signal(Job *j) { + j->in_dbus_queue = false; + } + +- if (!bus_has_subscriber(j->manager) && !j->bus_client_list) { ++ if (!bus_has_subscriber(j->manager) && !j->bus_client_list && !j->forgot_bus_clients) { + j->sent_dbus_new_signal = true; + return; + } +@@ -366,7 +366,7 @@ oom: + void bus_job_send_removed_signal(Job *j) { + assert(j); + +- if (!bus_has_subscriber(j->manager) && !j->bus_client_list) ++ if (!bus_has_subscriber(j->manager) && !j->bus_client_list && !j->forgot_bus_clients) + return; + + if (!j->sent_dbus_new_signal) +diff --git a/src/job.c b/src/job.c +index de74751..69df024 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -47,22 +47,36 @@ JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { + return cl; + } + +-Job* job_new(Unit *unit, JobType type) { ++Job* job_new_raw(Unit *unit) { + Job *j; + +- assert(type < _JOB_TYPE_MAX); ++ /* used for deserialization */ ++ + assert(unit); + +- if (!(j = new0(Job, 1))) ++ j = new0(Job, 1); ++ if (!j) + return NULL; + + j->manager = unit->manager; +- j->id = j->manager->current_job_id++; +- j->type = type; + j->unit = unit; +- + j->timer_watch.type = WATCH_INVALID; + ++ return j; ++} ++ ++Job* job_new(Unit *unit, JobType type) { ++ Job *j; ++ ++ assert(type < _JOB_TYPE_MAX); ++ ++ j = job_new_raw(unit); ++ if (!j) ++ return NULL; ++ ++ j->id = j->manager->current_job_id++; ++ j->type = type; ++ + /* We don't link it here, that's what job_dependency() is for */ + + return j; +@@ -105,7 +119,9 @@ void job_uninstall(Job *j) { + assert(j->unit->job == j); + /* Detach from next 'bigger' objects */ + +- bus_job_send_removed_signal(j); ++ /* daemon-reload should be transparent to job observers */ ++ if (j->manager->n_reloading <= 0) ++ bus_job_send_removed_signal(j); + + j->unit->job = NULL; + unit_add_to_gc_queue(j->unit); +@@ -180,6 +196,18 @@ Job* job_install(Job *j) { + return j; + } + ++void job_install_deserialized(Job *j) { ++ assert(!j->installed); ++ ++ if (j->unit->job) { ++ log_debug("Unit %s already has a job installed. Not installing deserialized job.", j->unit->id); ++ return; ++ } ++ j->unit->job = j; ++ j->installed = true; ++ log_debug("Reinstalled deserialized job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); ++} ++ + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { + JobDependency *l; + +@@ -732,6 +760,126 @@ void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w) { + job_finish_and_invalidate(j, JOB_TIMEOUT); + } + ++int job_serialize(Job *j, FILE *f, FDSet *fds) { ++ fprintf(f, "job-id=%u\n", j->id); ++ fprintf(f, "job-type=%s\n", job_type_to_string(j->type)); ++ fprintf(f, "job-state=%s\n", job_state_to_string(j->state)); ++ fprintf(f, "job-override=%s\n", yes_no(j->override)); ++ fprintf(f, "job-sent-dbus-new-signal=%s\n", yes_no(j->sent_dbus_new_signal)); ++ fprintf(f, "job-ignore-order=%s\n", yes_no(j->ignore_order)); ++ /* Cannot save bus clients. Just note the fact that we're losing ++ * them. job_send_message() will fallback to broadcasting. */ ++ fprintf(f, "job-forgot-bus-clients=%s\n", ++ yes_no(j->forgot_bus_clients || j->bus_client_list)); ++ if (j->timer_watch.type == WATCH_JOB_TIMER) { ++ int copy = fdset_put_dup(fds, j->timer_watch.fd); ++ if (copy < 0) ++ return copy; ++ fprintf(f, "job-timer-watch-fd=%d\n", copy); ++ } ++ ++ /* End marker */ ++ fputc('\n', f); ++ return 0; ++} ++ ++int job_deserialize(Job *j, FILE *f, FDSet *fds) { ++ for (;;) { ++ char line[LINE_MAX], *l, *v; ++ size_t k; ++ ++ if (!fgets(line, sizeof(line), f)) { ++ if (feof(f)) ++ return 0; ++ return -errno; ++ } ++ ++ char_array_0(line); ++ l = strstrip(line); ++ ++ /* End marker */ ++ if (l[0] == 0) ++ return 0; ++ ++ k = strcspn(l, "="); ++ ++ if (l[k] == '=') { ++ l[k] = 0; ++ v = l+k+1; ++ } else ++ v = l+k; ++ ++ if (streq(l, "job-id")) { ++ if (safe_atou32(v, &j->id) < 0) ++ log_debug("Failed to parse job id value %s", v); ++ } else if (streq(l, "job-type")) { ++ JobType t = job_type_from_string(v); ++ if (t < 0) ++ log_debug("Failed to parse job type %s", v); ++ else ++ j->type = t; ++ } else if (streq(l, "job-state")) { ++ JobState s = job_state_from_string(v); ++ if (s < 0) ++ log_debug("Failed to parse job state %s", v); ++ else ++ j->state = s; ++ } else if (streq(l, "job-override")) { ++ int b = parse_boolean(v); ++ if (b < 0) ++ log_debug("Failed to parse job override flag %s", v); ++ else ++ j->override = j->override || b; ++ } else if (streq(l, "job-sent-dbus-new-signal")) { ++ int b = parse_boolean(v); ++ if (b < 0) ++ log_debug("Failed to parse job sent_dbus_new_signal flag %s", v); ++ else ++ j->sent_dbus_new_signal = j->sent_dbus_new_signal || b; ++ } else if (streq(l, "job-ignore-order")) { ++ int b = parse_boolean(v); ++ if (b < 0) ++ log_debug("Failed to parse job ignore_order flag %s", v); ++ else ++ j->ignore_order = j->ignore_order || b; ++ } else if (streq(l, "job-forgot-bus-clients")) { ++ int b = parse_boolean(v); ++ if (b < 0) ++ log_debug("Failed to parse job forgot_bus_clients flag %s", v); ++ else ++ j->forgot_bus_clients = j->forgot_bus_clients || b; ++ } else if (streq(l, "job-timer-watch-fd")) { ++ int fd; ++ if (safe_atoi(v, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd)) ++ log_debug("Failed to parse job-timer-watch-fd value %s", v); ++ else { ++ if (j->timer_watch.type == WATCH_JOB_TIMER) ++ close_nointr_nofail(j->timer_watch.fd); ++ ++ j->timer_watch.type = WATCH_JOB_TIMER; ++ j->timer_watch.fd = fdset_remove(fds, fd); ++ j->timer_watch.data.job = j; ++ } ++ } ++ } ++} ++ ++int job_coldplug(Job *j) { ++ struct epoll_event ev; ++ ++ if (j->timer_watch.type != WATCH_JOB_TIMER) ++ return 0; ++ ++ zero(ev); ++ ev.data.ptr = &j->timer_watch; ++ ev.events = EPOLLIN; ++ ++ if (epoll_ctl(j->manager->epoll_fd, EPOLL_CTL_ADD, j->timer_watch.fd, &ev) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + static const char* const job_state_table[_JOB_STATE_MAX] = { + [JOB_WAITING] = "waiting", + [JOB_RUNNING] = "running" +diff --git a/src/job.h b/src/job.h +index 2025b5b..eea8242 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -141,15 +141,21 @@ struct Job { + bool in_dbus_queue:1; + bool sent_dbus_new_signal:1; + bool ignore_order:1; ++ bool forgot_bus_clients:1; + }; + + JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name); + + Job* job_new(Unit *unit, JobType type); ++Job* job_new_raw(Unit *unit); + void job_free(Job *job); + Job* job_install(Job *j); ++void job_install_deserialized(Job *j); + void job_uninstall(Job *j); + void job_dump(Job *j, FILE*f, const char *prefix); ++int job_serialize(Job *j, FILE *f, FDSet *fds); ++int job_deserialize(Job *j, FILE *f, FDSet *fds); ++int job_coldplug(Job *j); + + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); + void job_dependency_free(JobDependency *l); +diff --git a/src/unit.c b/src/unit.c +index 1949995..c203a31 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -2288,8 +2288,10 @@ int unit_serialize(Unit *u, FILE *f, FDSet *fds) { + if ((r = UNIT_VTABLE(u)->serialize(u, f, fds)) < 0) + return r; + +- if (u->job) +- unit_serialize_item(u, f, "job", job_type_to_string(u->job->type)); ++ if (u->job) { ++ fprintf(f, "job\n"); ++ job_serialize(u->job, f, fds); ++ } + + dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); + dual_timestamp_serialize(f, "active-enter-timestamp", &u->active_enter_timestamp); +@@ -2368,13 +2370,32 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { + v = l+k; + + if (streq(l, "job")) { +- JobType type; ++ if (v[0] == '\0') { ++ /* new-style serialized job */ ++ Job *j = job_new_raw(u); ++ if (!j) ++ return -ENOMEM; + +- if ((type = job_type_from_string(v)) < 0) +- log_debug("Failed to parse job type value %s", v); +- else +- u->deserialized_job = type; ++ r = job_deserialize(j, f, fds); ++ if (r < 0) { ++ job_free(j); ++ return r; ++ } + ++ job_install_deserialized(j); ++ r = hashmap_put(u->manager->jobs, UINT32_TO_PTR(j->id), j); ++ if (r < 0) { ++ job_free(j); ++ return r; ++ } ++ } else { ++ /* legacy */ ++ JobType type = job_type_from_string(v); ++ if (type < 0) ++ log_debug("Failed to parse job type value %s", v); ++ else ++ u->deserialized_job = type; ++ } + continue; + } else if (streq(l, "inactive-exit-timestamp")) { + dual_timestamp_deserialize(v, &u->inactive_exit_timestamp); +@@ -2450,8 +2471,14 @@ int unit_coldplug(Unit *u) { + if ((r = UNIT_VTABLE(u)->coldplug(u)) < 0) + return r; + +- if (u->deserialized_job >= 0) { +- if ((r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL)) < 0) ++ if (u->job) { ++ r = job_coldplug(u->job); ++ if (r < 0) ++ return r; ++ } else if (u->deserialized_job >= 0) { ++ /* legacy */ ++ r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL); ++ if (r < 0) + return r; + + u->deserialized_job = _JOB_TYPE_INVALID; +diff --git a/src/unit.h b/src/unit.h +index 756f465..5fceabb 100644 +--- a/src/unit.h ++++ b/src/unit.h +@@ -200,7 +200,9 @@ struct Unit { + unsigned gc_marker; + + /* When deserializing, temporarily store the job type for this +- * unit here, if there was a job scheduled */ ++ * unit here, if there was a job scheduled. ++ * Only for deserializing from a legacy version. New style uses full ++ * serialized jobs. */ + int deserialized_job; /* This is actually of type JobType */ + + /* Error code when we didn't manage to load the unit (negative) */ +-- +1.7.7 + + +From f2e0e5d5c80c8a489faa584539d7010b056dee7b Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 24 Apr 2012 11:21:03 +0200 +Subject: [PATCH 28/30] transaction: cancel jobs non-recursively on isolate + +Recursive cancellation of jobs would trigger OnFailure actions of +dependent jobs. This is not desirable when isolating. + +Fixes https://bugzilla.redhat.com/show_bug.cgi?id=798328 +(cherry picked from commit 5273510e9f228a300ec6207d4502f1c6253aed5e) +--- + src/dbus-job.c | 2 +- + src/job.c | 41 ++++++++++++++++------------------------- + src/job.h | 2 +- + src/manager.c | 3 ++- + src/transaction.c | 10 ++++------ + src/unit.c | 12 ++++++------ + 6 files changed, 30 insertions(+), 40 deletions(-) + +diff --git a/src/dbus-job.c b/src/dbus-job.c +index 63e5846..8474138 100644 +--- a/src/dbus-job.c ++++ b/src/dbus-job.c +@@ -100,7 +100,7 @@ static DBusHandlerResult bus_job_message_dispatch(Job *j, DBusConnection *connec + if (!(reply = dbus_message_new_method_return(message))) + goto oom; + +- job_finish_and_invalidate(j, JOB_CANCELED); ++ job_finish_and_invalidate(j, JOB_CANCELED, true); + + } else { + const BusBoundProperties bps[] = { +diff --git a/src/job.c b/src/job.c +index 69df024..e8e0264 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -164,7 +164,7 @@ Job* job_install(Job *j) { + + if (uj) { + if (job_type_is_conflicting(uj->type, j->type)) +- job_finish_and_invalidate(uj, JOB_CANCELED); ++ job_finish_and_invalidate(uj, JOB_CANCELED, true); + else { + /* not conflicting, i.e. mergeable */ + +@@ -496,13 +496,13 @@ int job_run_and_invalidate(Job *j) { + + if ((j = manager_get_job(m, id))) { + if (r == -EALREADY) +- r = job_finish_and_invalidate(j, JOB_DONE); ++ r = job_finish_and_invalidate(j, JOB_DONE, true); + else if (r == -ENOEXEC) +- r = job_finish_and_invalidate(j, JOB_SKIPPED); ++ r = job_finish_and_invalidate(j, JOB_SKIPPED, true); + else if (r == -EAGAIN) + j->state = JOB_WAITING; + else if (r < 0) +- r = job_finish_and_invalidate(j, JOB_FAILED); ++ r = job_finish_and_invalidate(j, JOB_FAILED, true); + } + + return r; +@@ -555,12 +555,11 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { + } + } + +-int job_finish_and_invalidate(Job *j, JobResult result) { ++int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { + Unit *u; + Unit *other; + JobType t; + Iterator i; +- bool recursed = false; + + assert(j); + assert(j->installed); +@@ -594,7 +593,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + job_print_status_message(u, t, result); + + /* Fail depending jobs on failure */ +- if (result != JOB_DONE) { ++ if (result != JOB_DONE && recursive) { + + if (t == JOB_START || + t == JOB_VERIFY_ACTIVE || +@@ -604,29 +603,23 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + if (other->job && + (other->job->type == JOB_START || + other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) { +- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); +- recursed = true; +- } ++ other->job->type == JOB_RELOAD_OR_START)) ++ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + + SET_FOREACH(other, u->dependencies[UNIT_BOUND_BY], i) + if (other->job && + (other->job->type == JOB_START || + other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) { +- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); +- recursed = true; +- } ++ other->job->type == JOB_RELOAD_OR_START)) ++ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + + SET_FOREACH(other, u->dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) + if (other->job && + !other->job->override && + (other->job->type == JOB_START || + other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) { +- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); +- recursed = true; +- } ++ other->job->type == JOB_RELOAD_OR_START)) ++ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + + } else if (t == JOB_STOP) { + +@@ -634,10 +627,8 @@ int job_finish_and_invalidate(Job *j, JobResult result) { + if (other->job && + (other->job->type == JOB_START || + other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) { +- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); +- recursed = true; +- } ++ other->job->type == JOB_RELOAD_OR_START)) ++ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + } + } + +@@ -665,7 +656,7 @@ finish: + + manager_check_finished(u->manager); + +- return recursed; ++ return 0; + } + + int job_start_timer(Job *j) { +@@ -757,7 +748,7 @@ void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w) { + assert(w == &j->timer_watch); + + log_warning("Job %s/%s timed out.", j->unit->id, job_type_to_string(j->type)); +- job_finish_and_invalidate(j, JOB_TIMEOUT); ++ job_finish_and_invalidate(j, JOB_TIMEOUT, true); + } + + int job_serialize(Job *j, FILE *f, FDSet *fds) { +diff --git a/src/job.h b/src/job.h +index eea8242..5b326ef 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -196,7 +196,7 @@ int job_start_timer(Job *j); + void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w); + + int job_run_and_invalidate(Job *j); +-int job_finish_and_invalidate(Job *j, JobResult result); ++int job_finish_and_invalidate(Job *j, JobResult result, bool recursive); + + char *job_dbus_path(Job *j); + +diff --git a/src/manager.c b/src/manager.c +index 86ec858..7bff456 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -846,7 +846,8 @@ void manager_clear_jobs(Manager *m) { + assert(m); + + while ((j = hashmap_first(m->jobs))) +- job_finish_and_invalidate(j, JOB_CANCELED); ++ /* No need to recurse. We're cancelling all jobs. */ ++ job_finish_and_invalidate(j, JOB_CANCELED, false); + } + + unsigned manager_dispatch_run_queue(Manager *m) { +diff --git a/src/transaction.c b/src/transaction.c +index b0a26f2..f687539 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -525,18 +525,16 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { + + /* When isolating first kill all installed jobs which + * aren't part of the new transaction */ +- rescan: + HASHMAP_FOREACH(j, m->jobs, i) { + assert(j->installed); + + if (hashmap_get(tr->jobs, j->unit)) + continue; + +- /* 'j' itself is safe to remove, but if other jobs +- are invalidated recursively, our iterator may become +- invalid and we need to start over. */ +- if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) +- goto rescan; ++ /* Not invalidating recursively. Avoids triggering ++ * OnFailure= actions of dependent jobs. Also avoids ++ * invalidating our iterator. */ ++ job_finish_and_invalidate(j, JOB_CANCELED, false); + } + } + +diff --git a/src/unit.c b/src/unit.c +index c203a31..ff8331c 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -1226,12 +1226,12 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + case JOB_VERIFY_ACTIVE: + + if (UNIT_IS_ACTIVE_OR_RELOADING(ns)) +- job_finish_and_invalidate(u->job, JOB_DONE); ++ job_finish_and_invalidate(u->job, JOB_DONE, true); + else if (u->job->state == JOB_RUNNING && ns != UNIT_ACTIVATING) { + unexpected = true; + + if (UNIT_IS_INACTIVE_OR_FAILED(ns)) +- job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE); ++ job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE, true); + } + + break; +@@ -1241,12 +1241,12 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + + if (u->job->state == JOB_RUNNING) { + if (ns == UNIT_ACTIVE) +- job_finish_and_invalidate(u->job, reload_success ? JOB_DONE : JOB_FAILED); ++ job_finish_and_invalidate(u->job, reload_success ? JOB_DONE : JOB_FAILED, true); + else if (ns != UNIT_ACTIVATING && ns != UNIT_RELOADING) { + unexpected = true; + + if (UNIT_IS_INACTIVE_OR_FAILED(ns)) +- job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE); ++ job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE, true); + } + } + +@@ -1257,10 +1257,10 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + case JOB_TRY_RESTART: + + if (UNIT_IS_INACTIVE_OR_FAILED(ns)) +- job_finish_and_invalidate(u->job, JOB_DONE); ++ job_finish_and_invalidate(u->job, JOB_DONE, true); + else if (u->job->state == JOB_RUNNING && ns != UNIT_DEACTIVATING) { + unexpected = true; +- job_finish_and_invalidate(u->job, JOB_FAILED); ++ job_finish_and_invalidate(u->job, JOB_FAILED, true); + } + + break; +-- +1.7.7 + + +From 38a2f4227415ebf3519369d27a23750948f6dddf Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 25 Apr 2012 11:58:27 +0200 +Subject: [PATCH 29/30] core: add NOP jobs, job type collapsing + +Two of our current job types are special: +JOB_TRY_RESTART, JOB_RELOAD_OR_START. + +They differ from other job types by being sensitive to the unit active state. +They perform some action when the unit is active and some other action +otherwise. This raises a question: when exactly should the unit state be +checked to make the decision? + +Currently the unit state is checked when the job becomes runnable. It's more +sensible to check the state immediately when the job is added by the user. +When the user types "systemctl try-restart foo.service", he really intends +to restart the service if it's running right now. If it isn't running right +now, the restart is pointless. + +Consider the example (from Bugzilla[1]): + +sleep.service takes some time to start. +hello.service has After=sleep.service. +Both services get started. Two jobs will appear: + hello.service/start waiting + sleep.service/start running +Then someone runs "systemctl try-restart hello.service". + +Currently the try-restart operation will block and wait for +sleep.service/start to complete. + +The correct result is to complete the try-restart operation immediately +with success, because hello.service is not running. The two original +jobs must not be disturbed by this. + +To fix this we introduce two new concepts: +- a new job type: JOB_NOP + A JOB_NOP job does not do anything to the unit. It does not pull in any + dependencies. It is always immediately runnable. When installed to a unit, + it sits in a special slot (u->nop_job) where it never conflicts with + the installed job (u->job) of a different type. It never merges with jobs + of other types, but it can merge into an already installed JOB_NOP job. + +- "collapsing" of job types + When a job of one of the two special types is added, the state of the unit + is checked immediately and the job type changes: + JOB_TRY_RESTART -> JOB_RESTART or JOB_NOP + JOB_RELOAD_OR_START -> JOB_RELOAD or JOB_START + Should a job type JOB_RELOAD_OR_START appear later during job merging, it + collapses immediately afterwards. + Collapsing actually makes some things simpler, because there are now fewer + job types that are allowed in the transaction. + +[1] Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=753586 +(cherry picked from commit e0209d83e7b30153f43b1a633c955f66eb2c2e4a) + +Conflicts: + + Makefile.am + src/job.c +--- + src/job.c | 163 ++++++++++++++++++++++++++++++++------------------- + src/job.h | 44 ++++++++++---- + src/manager.c | 2 + + src/test-job-type.c | 85 +++++++++++++++++---------- + src/transaction.c | 18 +++--- + src/unit.c | 29 +++++++++- + src/unit.h | 6 +- + 7 files changed, 230 insertions(+), 117 deletions(-) + +diff --git a/src/job.c b/src/job.c +index e8e0264..2438f39 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -60,6 +60,7 @@ Job* job_new_raw(Unit *unit) { + + j->manager = unit->manager; + j->unit = unit; ++ j->type = _JOB_TYPE_INVALID; + j->timer_watch.type = WATCH_INVALID; + + return j; +@@ -115,15 +116,21 @@ void job_free(Job *j) { + } + + void job_uninstall(Job *j) { ++ Job **pj; ++ + assert(j->installed); +- assert(j->unit->job == j); ++ ++ pj = (j->type == JOB_NOP) ? &j->unit->nop_job : &j->unit->job; ++ assert(*pj == j); ++ + /* Detach from next 'bigger' objects */ + + /* daemon-reload should be transparent to job observers */ + if (j->manager->n_reloading <= 0) + bus_job_send_removed_signal(j); + +- j->unit->job = NULL; ++ *pj = NULL; ++ + unit_add_to_gc_queue(j->unit); + + hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); +@@ -144,31 +151,38 @@ static bool job_type_allows_late_merge(JobType t) { + * patched into JOB_START after stopping the unit. So if we see a + * JOB_RESTART running, it means the unit hasn't stopped yet and at + * this time the merge is still allowed. */ +- return !(t == JOB_RELOAD || t == JOB_RELOAD_OR_START); ++ return t != JOB_RELOAD; + } + + static void job_merge_into_installed(Job *j, Job *other) { + assert(j->installed); + assert(j->unit == other->unit); + +- j->type = job_type_lookup_merge(j->type, other->type); +- assert(j->type >= 0); ++ if (j->type != JOB_NOP) ++ job_type_merge_and_collapse(&j->type, other->type, j->unit); ++ else ++ assert(other->type == JOB_NOP); + + j->override = j->override || other->override; + } + + Job* job_install(Job *j) { +- Job *uj = j->unit->job; ++ Job **pj; ++ Job *uj; + + assert(!j->installed); ++ assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); ++ ++ pj = (j->type == JOB_NOP) ? &j->unit->nop_job : &j->unit->job; ++ uj = *pj; + + if (uj) { +- if (job_type_is_conflicting(uj->type, j->type)) ++ if (j->type != JOB_NOP && job_type_is_conflicting(uj->type, j->type)) + job_finish_and_invalidate(uj, JOB_CANCELED, true); + else { + /* not conflicting, i.e. mergeable */ + +- if (uj->state == JOB_WAITING || ++ if (j->type == JOB_NOP || uj->state == JOB_WAITING || + (job_type_allows_late_merge(j->type) && job_type_is_superset(uj->type, j->type))) { + job_merge_into_installed(uj, j); + log_debug("Merged into installed job %s/%s as %u", +@@ -189,23 +203,33 @@ Job* job_install(Job *j) { + } + + /* Install the job */ +- j->unit->job = j; ++ *pj = j; + j->installed = true; + j->manager->n_installed_jobs ++; + log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); + return j; + } + +-void job_install_deserialized(Job *j) { ++int job_install_deserialized(Job *j) { ++ Job **pj; ++ + assert(!j->installed); + +- if (j->unit->job) { ++ if (j->type < 0 || j->type >= _JOB_TYPE_MAX_IN_TRANSACTION) { ++ log_debug("Invalid job type %s in deserialization.", strna(job_type_to_string(j->type))); ++ return -EINVAL; ++ } ++ ++ pj = (j->type == JOB_NOP) ? &j->unit->nop_job : &j->unit->job; ++ ++ if (*pj) { + log_debug("Unit %s already has a job installed. Not installing deserialized job.", j->unit->id); +- return; ++ return -EEXIST; + } +- j->unit->job = j; ++ *pj = j; + j->installed = true; + log_debug("Reinstalled deserialized job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); ++ return 0; + } + + JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { +@@ -268,6 +292,10 @@ void job_dump(Job *j, FILE*f, const char *prefix) { + * its lower triangle to avoid duplication. We don't store the main diagonal, + * because A merged with A is simply A. + * ++ * If the resulting type is collapsed immediately afterwards (to get rid of ++ * the JOB_RELOAD_OR_START, which lies outside the lookup function's domain), ++ * the following properties hold: ++ * + * Merging is associative! A merged with B merged with C is the same as + * A merged with C merged with B. + * +@@ -278,21 +306,19 @@ void job_dump(Job *j, FILE*f, const char *prefix) { + * be merged with C either. + */ + static const JobType job_merging_table[] = { +-/* What \ With * JOB_START JOB_VERIFY_ACTIVE JOB_STOP JOB_RELOAD JOB_RELOAD_OR_START JOB_RESTART JOB_TRY_RESTART */ +-/************************************************************************************************************************************/ ++/* What \ With * JOB_START JOB_VERIFY_ACTIVE JOB_STOP JOB_RELOAD */ ++/*********************************************************************************/ + /*JOB_START */ + /*JOB_VERIFY_ACTIVE */ JOB_START, + /*JOB_STOP */ -1, -1, + /*JOB_RELOAD */ JOB_RELOAD_OR_START, JOB_RELOAD, -1, +-/*JOB_RELOAD_OR_START*/ JOB_RELOAD_OR_START, JOB_RELOAD_OR_START, -1, JOB_RELOAD_OR_START, +-/*JOB_RESTART */ JOB_RESTART, JOB_RESTART, -1, JOB_RESTART, JOB_RESTART, +-/*JOB_TRY_RESTART */ JOB_RESTART, JOB_TRY_RESTART, -1, JOB_TRY_RESTART, JOB_RESTART, JOB_RESTART, ++/*JOB_RESTART */ JOB_RESTART, JOB_RESTART, -1, JOB_RESTART, + }; + + JobType job_type_lookup_merge(JobType a, JobType b) { +- assert_cc(ELEMENTSOF(job_merging_table) == _JOB_TYPE_MAX * (_JOB_TYPE_MAX - 1) / 2); +- assert(a >= 0 && a < _JOB_TYPE_MAX); +- assert(b >= 0 && b < _JOB_TYPE_MAX); ++ assert_cc(ELEMENTSOF(job_merging_table) == _JOB_TYPE_MAX_MERGING * (_JOB_TYPE_MAX_MERGING - 1) / 2); ++ assert(a >= 0 && a < _JOB_TYPE_MAX_MERGING); ++ assert(b >= 0 && b < _JOB_TYPE_MAX_MERGING); + + if (a == b) + return a; +@@ -328,24 +354,50 @@ bool job_type_is_redundant(JobType a, UnitActiveState b) { + return + b == UNIT_RELOADING; + +- case JOB_RELOAD_OR_START: +- return +- b == UNIT_ACTIVATING || +- b == UNIT_RELOADING; +- + case JOB_RESTART: + return + b == UNIT_ACTIVATING; + ++ default: ++ assert_not_reached("Invalid job type"); ++ } ++} ++ ++void job_type_collapse(JobType *t, Unit *u) { ++ UnitActiveState s; ++ ++ switch (*t) { ++ + case JOB_TRY_RESTART: +- return +- b == UNIT_ACTIVATING; ++ s = unit_active_state(u); ++ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(s)) ++ *t = JOB_NOP; ++ else ++ *t = JOB_RESTART; ++ break; ++ ++ case JOB_RELOAD_OR_START: ++ s = unit_active_state(u); ++ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(s)) ++ *t = JOB_START; ++ else ++ *t = JOB_RELOAD; ++ break; + + default: +- assert_not_reached("Invalid job type"); ++ ; + } + } + ++int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u) { ++ JobType t = job_type_lookup_merge(*a, b); ++ if (t < 0) ++ return -EEXIST; ++ *a = t; ++ job_type_collapse(a, u); ++ return 0; ++} ++ + bool job_is_runnable(Job *j) { + Iterator i; + Unit *other; +@@ -362,10 +414,12 @@ bool job_is_runnable(Job *j) { + if (j->ignore_order) + return true; + ++ if (j->type == JOB_NOP) ++ return true; ++ + if (j->type == JOB_START || + j->type == JOB_VERIFY_ACTIVE || +- j->type == JOB_RELOAD || +- j->type == JOB_RELOAD_OR_START) { ++ j->type == JOB_RELOAD) { + + /* Immediate result is that the job is or might be + * started. In this case lets wait for the +@@ -383,8 +437,7 @@ bool job_is_runnable(Job *j) { + SET_FOREACH(other, j->unit->dependencies[UNIT_BEFORE], i) + if (other->job && + (other->job->type == JOB_STOP || +- other->job->type == JOB_RESTART || +- other->job->type == JOB_TRY_RESTART)) ++ other->job->type == JOB_RESTART)) + return false; + + /* This means that for a service a and a service b where b +@@ -416,6 +469,7 @@ int job_run_and_invalidate(Job *j) { + + assert(j); + assert(j->installed); ++ assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); + + if (j->in_run_queue) { + LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); +@@ -441,15 +495,6 @@ int job_run_and_invalidate(Job *j) { + + switch (j->type) { + +- case JOB_RELOAD_OR_START: +- if (unit_active_state(j->unit) == UNIT_ACTIVE) { +- j->type = JOB_RELOAD; +- r = unit_reload(j->unit); +- break; +- } +- j->type = JOB_START; +- /* fall through */ +- + case JOB_START: + r = unit_start(j->unit); + +@@ -469,14 +514,6 @@ int job_run_and_invalidate(Job *j) { + break; + } + +- case JOB_TRY_RESTART: +- if (UNIT_IS_INACTIVE_OR_DEACTIVATING(unit_active_state(j->unit))) { +- r = -ENOEXEC; +- break; +- } +- j->type = JOB_RESTART; +- /* fall through */ +- + case JOB_STOP: + case JOB_RESTART: + r = unit_stop(j->unit); +@@ -490,11 +527,16 @@ int job_run_and_invalidate(Job *j) { + r = unit_reload(j->unit); + break; + ++ case JOB_NOP: ++ r = -EALREADY; ++ break; ++ + default: + assert_not_reached("Unknown job type"); + } + +- if ((j = manager_get_job(m, id))) { ++ j = manager_get_job(m, id); ++ if (j) { + if (r == -EALREADY) + r = job_finish_and_invalidate(j, JOB_DONE, true); + else if (r == -ENOEXEC) +@@ -563,6 +605,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { + + assert(j); + assert(j->installed); ++ assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); + + job_add_to_dbus_queue(j); + +@@ -596,29 +639,25 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { + if (result != JOB_DONE && recursive) { + + if (t == JOB_START || +- t == JOB_VERIFY_ACTIVE || +- t == JOB_RELOAD_OR_START) { ++ t == JOB_VERIFY_ACTIVE) { + + SET_FOREACH(other, u->dependencies[UNIT_REQUIRED_BY], i) + if (other->job && + (other->job->type == JOB_START || +- other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) ++ other->job->type == JOB_VERIFY_ACTIVE)) + job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + + SET_FOREACH(other, u->dependencies[UNIT_BOUND_BY], i) + if (other->job && + (other->job->type == JOB_START || +- other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) ++ other->job->type == JOB_VERIFY_ACTIVE)) + job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + + SET_FOREACH(other, u->dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) + if (other->job && + !other->job->override && + (other->job->type == JOB_START || +- other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) ++ other->job->type == JOB_VERIFY_ACTIVE)) + job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + + } else if (t == JOB_STOP) { +@@ -626,8 +665,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { + SET_FOREACH(other, u->dependencies[UNIT_CONFLICTED_BY], i) + if (other->job && + (other->job->type == JOB_START || +- other->job->type == JOB_VERIFY_ACTIVE || +- other->job->type == JOB_RELOAD_OR_START)) ++ other->job->type == JOB_VERIFY_ACTIVE)) + job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); + } + } +@@ -807,6 +845,8 @@ int job_deserialize(Job *j, FILE *f, FDSet *fds) { + JobType t = job_type_from_string(v); + if (t < 0) + log_debug("Failed to parse job type %s", v); ++ else if (t >= _JOB_TYPE_MAX_IN_TRANSACTION) ++ log_debug("Cannot deserialize job of type %s", v); + else + j->type = t; + } else if (streq(l, "job-state")) { +@@ -886,6 +926,7 @@ static const char* const job_type_table[_JOB_TYPE_MAX] = { + [JOB_RELOAD_OR_START] = "reload-or-start", + [JOB_RESTART] = "restart", + [JOB_TRY_RESTART] = "try-restart", ++ [JOB_NOP] = "nop", + }; + + DEFINE_STRING_TABLE_LOOKUP(job_type, JobType); +diff --git a/src/job.h b/src/job.h +index 5b326ef..4edf3b9 100644 +--- a/src/job.h ++++ b/src/job.h +@@ -46,14 +46,34 @@ enum JobType { + + JOB_STOP, + +- JOB_RELOAD, /* if running reload */ +- JOB_RELOAD_OR_START, /* if running reload, if not running start */ ++ JOB_RELOAD, /* if running, reload */ + + /* Note that restarts are first treated like JOB_STOP, but + * then instead of finishing are patched to become + * JOB_START. */ +- JOB_RESTART, /* if running stop, then start unconditionally */ +- JOB_TRY_RESTART, /* if running stop and then start */ ++ JOB_RESTART, /* If running, stop. Then start unconditionally. */ ++ ++ _JOB_TYPE_MAX_MERGING, ++ ++ /* JOB_NOP can enter into a transaction, but as it won't pull in ++ * any dependencies, it won't have to merge with anything. ++ * job_install() avoids the problem of merging JOB_NOP too (it's ++ * special-cased, only merges with other JOB_NOPs). */ ++ JOB_NOP = _JOB_TYPE_MAX_MERGING, /* do nothing */ ++ ++ _JOB_TYPE_MAX_IN_TRANSACTION, ++ ++ /* JOB_TRY_RESTART can never appear in a transaction, because ++ * it always collapses into JOB_RESTART or JOB_NOP before entering. ++ * Thus we never need to merge it with anything. */ ++ JOB_TRY_RESTART = _JOB_TYPE_MAX_IN_TRANSACTION, /* if running, stop and then start */ ++ ++ /* JOB_RELOAD_OR_START won't enter into a transaction and cannot result ++ * from transaction merging (there's no way for JOB_RELOAD and ++ * JOB_START to meet in one transaction). It can result from a merge ++ * during job installation, but then it will immediately collapse into ++ * one of the two simpler types. */ ++ JOB_RELOAD_OR_START, /* if running, reload, otherwise start */ + + _JOB_TYPE_MAX, + _JOB_TYPE_INVALID = -1 +@@ -150,7 +170,7 @@ Job* job_new(Unit *unit, JobType type); + Job* job_new_raw(Unit *unit); + void job_free(Job *job); + Job* job_install(Job *j); +-void job_install_deserialized(Job *j); ++int job_install_deserialized(Job *j); + void job_uninstall(Job *j); + void job_dump(Job *j, FILE*f, const char *prefix); + int job_serialize(Job *j, FILE *f, FDSet *fds); +@@ -164,14 +184,6 @@ int job_merge(Job *j, Job *other); + + JobType job_type_lookup_merge(JobType a, JobType b); + +-static inline int job_type_merge(JobType *a, JobType b) { +- JobType t = job_type_lookup_merge(*a, b); +- if (t < 0) +- return -EEXIST; +- *a = t; +- return 0; +-} +- + static inline bool job_type_is_mergeable(JobType a, JobType b) { + return job_type_lookup_merge(a, b) >= 0; + } +@@ -187,6 +199,12 @@ static inline bool job_type_is_superset(JobType a, JobType b) { + + bool job_type_is_redundant(JobType a, UnitActiveState b); + ++/* Collapses a state-dependent job type into a simpler type by observing ++ * the state of the unit which it is going to be applied to. */ ++void job_type_collapse(JobType *t, Unit *u); ++ ++int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u); ++ + bool job_is_runnable(Job *j); + + void job_add_to_run_queue(Job *j); +diff --git a/src/manager.c b/src/manager.c +index 7bff456..0f87e9f 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -650,6 +650,8 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove + + log_debug("Trying to enqueue job %s/%s/%s", unit->id, job_type_to_string(type), job_mode_to_string(mode)); + ++ job_type_collapse(&type, unit); ++ + tr = transaction_new(); + if (!tr) + return -ENOMEM; +diff --git a/src/test-job-type.c b/src/test-job-type.c +index 9de21e1..c7a9b5a 100644 +--- a/src/test-job-type.c ++++ b/src/test-job-type.c +@@ -25,59 +25,80 @@ + #include + + #include "job.h" ++#include "unit.h" ++#include "service.h" + + int main(int argc, char*argv[]) { +- JobType a, b, c, d, e, f, g; ++ JobType a, b, c, ab, bc, ab_c, bc_a, a_bc; ++ const ServiceState test_states[] = { SERVICE_DEAD, SERVICE_RUNNING }; ++ unsigned i; ++ bool merged_ab; + +- for (a = 0; a < _JOB_TYPE_MAX; a++) +- for (b = 0; b < _JOB_TYPE_MAX; b++) { ++ /* fake a unit */ ++ static Service s = { ++ .meta.load_state = UNIT_LOADED, ++ .type = UNIT_SERVICE ++ }; ++ Unit *u = UNIT(&s); + +- if (!job_type_is_mergeable(a, b)) +- printf("Not mergeable: %s + %s\n", job_type_to_string(a), job_type_to_string(b)); ++ for (i = 0; i < ELEMENTSOF(test_states); i++) { ++ s.state = test_states[i]; ++ printf("\nWith collapsing for service state %s\n" ++ "=========================================\n", service_state_to_string(s.state)); ++ for (a = 0; a < _JOB_TYPE_MAX_MERGING; a++) { ++ for (b = 0; b < _JOB_TYPE_MAX_MERGING; b++) { + +- for (c = 0; c < _JOB_TYPE_MAX; c++) { ++ ab = a; ++ merged_ab = (job_type_merge_and_collapse(&ab, b, u) >= 0); + +- /* Verify transitivity of mergeability +- * of job types */ +- assert(!job_type_is_mergeable(a, b) || +- !job_type_is_mergeable(b, c) || +- job_type_is_mergeable(a, c)); ++ if (!job_type_is_mergeable(a, b)) { ++ assert(!merged_ab); ++ printf("Not mergeable: %s + %s\n", job_type_to_string(a), job_type_to_string(b)); ++ continue; ++ } ++ ++ assert(merged_ab); ++ printf("%s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(ab)); + +- d = a; +- if (job_type_merge(&d, b) >= 0) { ++ for (c = 0; c < _JOB_TYPE_MAX_MERGING; c++) { + +- printf("%s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(d)); ++ /* Verify transitivity of mergeability of job types */ ++ assert(!job_type_is_mergeable(a, b) || ++ !job_type_is_mergeable(b, c) || ++ job_type_is_mergeable(a, c)); + +- /* Verify that merged entries can be +- * merged with the same entries they +- * can be merged with separately */ +- assert(!job_type_is_mergeable(a, c) || job_type_is_mergeable(d, c)); +- assert(!job_type_is_mergeable(b, c) || job_type_is_mergeable(d, c)); ++ /* Verify that merged entries can be merged with the same entries ++ * they can be merged with separately */ ++ assert(!job_type_is_mergeable(a, c) || job_type_is_mergeable(ab, c)); ++ assert(!job_type_is_mergeable(b, c) || job_type_is_mergeable(ab, c)); + +- /* Verify that if a merged +- * with b is not mergeable with +- * c then either a or b is not +- * mergeable with c either. */ +- assert(job_type_is_mergeable(d, c) || !job_type_is_mergeable(a, c) || !job_type_is_mergeable(b, c)); ++ /* Verify that if a merged with b is not mergeable with c, then ++ * either a or b is not mergeable with c either. */ ++ assert(job_type_is_mergeable(ab, c) || !job_type_is_mergeable(a, c) || !job_type_is_mergeable(b, c)); + +- e = b; +- if (job_type_merge(&e, c) >= 0) { ++ bc = b; ++ if (job_type_merge_and_collapse(&bc, c, u) >= 0) { + + /* Verify associativity */ + +- f = d; +- assert(job_type_merge(&f, c) == 0); ++ ab_c = ab; ++ assert(job_type_merge_and_collapse(&ab_c, c, u) == 0); ++ ++ bc_a = bc; ++ assert(job_type_merge_and_collapse(&bc_a, a, u) == 0); + +- g = e; +- assert(job_type_merge(&g, a) == 0); ++ a_bc = a; ++ assert(job_type_merge_and_collapse(&a_bc, bc, u) == 0); + +- assert(f == g); ++ assert(ab_c == bc_a); ++ assert(ab_c == a_bc); + +- printf("%s + %s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(c), job_type_to_string(d)); ++ printf("%s + %s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(c), job_type_to_string(ab_c)); + } + } + } + } ++ } + + + return 0; +diff --git a/src/transaction.c b/src/transaction.c +index f687539..ceac5a6 100644 +--- a/src/transaction.c ++++ b/src/transaction.c +@@ -212,7 +212,7 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { + + t = j->type; + LIST_FOREACH(transaction, k, j->transaction_next) { +- if (job_type_merge(&t, k->type) >= 0) ++ if (job_type_merge_and_collapse(&t, k->type, j->unit) >= 0) + continue; + + /* OK, we could not merge all jobs for this +@@ -238,9 +238,9 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { + JobType t = j->type; + Job *k; + +- /* Merge all transactions */ ++ /* Merge all transaction jobs for j->unit */ + LIST_FOREACH(transaction, k, j->transaction_next) +- assert_se(job_type_merge(&t, k->type) == 0); ++ assert_se(job_type_merge_and_collapse(&t, k->type, j->unit) == 0); + + while ((k = j->transaction_next)) { + if (tr->anchor_job == k) { +@@ -774,6 +774,7 @@ int transaction_add_job_and_dependencies( + + assert(tr); + assert(type < _JOB_TYPE_MAX); ++ assert(type < _JOB_TYPE_MAX_IN_TRANSACTION); + assert(unit); + + /* log_debug("Pulling in %s/%s from %s/%s", */ +@@ -824,7 +825,8 @@ int transaction_add_job_and_dependencies( + assert(!tr->anchor_job); + tr->anchor_job = ret; + } +- if (is_new && !ignore_requirements) { ++ ++ if (is_new && !ignore_requirements && type != JOB_NOP) { + Set *following; + + /* If we are following some other unit, make sure we +@@ -844,7 +846,7 @@ int transaction_add_job_and_dependencies( + } + + /* Finally, recursively add in all dependencies. */ +- if (type == JOB_START || type == JOB_RELOAD_OR_START || type == JOB_RESTART) { ++ if (type == JOB_START || type == JOB_RESTART) { + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { + r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); + if (r < 0) { +@@ -934,7 +936,7 @@ int transaction_add_job_and_dependencies( + + } + +- if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { ++ if (type == JOB_STOP || type == JOB_RESTART) { + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { + r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e); +@@ -959,7 +961,7 @@ int transaction_add_job_and_dependencies( + } + } + +- if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { ++ if (type == JOB_RELOAD) { + + SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { + r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e); +@@ -972,7 +974,7 @@ int transaction_add_job_and_dependencies( + } + } + +- /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ ++ /* JOB_VERIFY_STARTED require no dependency handling */ + } + + return 0; +diff --git a/src/unit.c b/src/unit.c +index ff8331c..3625ed2 100644 +--- a/src/unit.c ++++ b/src/unit.c +@@ -249,6 +249,9 @@ bool unit_check_gc(Unit *u) { + if (u->job) + return true; + ++ if (u->nop_job) ++ return true; ++ + if (unit_active_state(u) != UNIT_INACTIVE) + return true; + +@@ -358,6 +361,12 @@ void unit_free(Unit *u) { + job_free(j); + } + ++ if (u->nop_job) { ++ Job *j = u->nop_job; ++ job_uninstall(j); ++ job_free(j); ++ } ++ + for (d = 0; d < _UNIT_DEPENDENCY_MAX; d++) + bidi_set_free(u, u->dependencies[d]); + +@@ -501,6 +510,9 @@ int unit_merge(Unit *u, Unit *other) { + if (other->job) + return -EEXIST; + ++ if (other->nop_job) ++ return -EEXIST; ++ + if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) + return -EEXIST; + +@@ -729,6 +741,9 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { + if (u->job) + job_dump(u->job, f, prefix2); + ++ if (u->nop_job) ++ job_dump(u->nop_job, f, prefix2); ++ + free(p2); + } + +@@ -1507,6 +1522,7 @@ bool unit_job_is_applicable(Unit *u, JobType j) { + case JOB_VERIFY_ACTIVE: + case JOB_START: + case JOB_STOP: ++ case JOB_NOP: + return true; + + case JOB_RESTART: +@@ -2293,6 +2309,11 @@ int unit_serialize(Unit *u, FILE *f, FDSet *fds) { + job_serialize(u->job, f, fds); + } + ++ if (u->nop_job) { ++ fprintf(f, "job\n"); ++ job_serialize(u->nop_job, f, fds); ++ } ++ + dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); + dual_timestamp_serialize(f, "active-enter-timestamp", &u->active_enter_timestamp); + dual_timestamp_serialize(f, "active-exit-timestamp", &u->active_exit_timestamp); +@@ -2382,12 +2403,18 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { + return r; + } + +- job_install_deserialized(j); + r = hashmap_put(u->manager->jobs, UINT32_TO_PTR(j->id), j); + if (r < 0) { + job_free(j); + return r; + } ++ ++ r = job_install_deserialized(j); ++ if (r < 0) { ++ hashmap_remove(u->manager->jobs, UINT32_TO_PTR(j->id)); ++ job_free(j); ++ return r; ++ } + } else { + /* legacy */ + JobType type = job_type_from_string(v); +diff --git a/src/unit.h b/src/unit.h +index 5fceabb..62b82bc 100644 +--- a/src/unit.h ++++ b/src/unit.h +@@ -158,10 +158,12 @@ struct Unit { + char *fragment_path; /* if loaded from a config file this is the primary path to it */ + usec_t fragment_mtime; + +- /* If there is something to do with this unit, then this is +- * the job for it */ ++ /* If there is something to do with this unit, then this is the installed job for it */ + Job *job; + ++ /* JOB_NOP jobs are special and can be installed without disturbing the real job. */ ++ Job *nop_job; ++ + usec_t job_timeout; + + /* References to this */ +-- +1.7.7 + + +From ad1ece751b204c21424b6bf1de265fec406ba2e4 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Sat, 12 May 2012 21:06:27 +0200 +Subject: [PATCH 30/30] job: only jobs on the runqueue can be run + +--- + src/job.c | 7 +++---- + 1 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/job.c b/src/job.c +index 2438f39..d6e7cb1 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -470,11 +470,10 @@ int job_run_and_invalidate(Job *j) { + assert(j); + assert(j->installed); + assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); ++ assert(j->in_run_queue); + +- if (j->in_run_queue) { +- LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); +- j->in_run_queue = false; +- } ++ LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); ++ j->in_run_queue = false; + + if (j->state != JOB_WAITING) + return 0; +-- +1.7.7 + diff --git a/journal-bugfixes.patch b/journal-bugfixes.patch new file mode 100644 index 00000000..428d165b --- /dev/null +++ b/journal-bugfixes.patch @@ -0,0 +1,186 @@ +From 911efc97f9bfe2ad4f4d021f5e76d05c8d5d81ac Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 12 Apr 2012 12:57:41 +0200 +Subject: [PATCH 1/4] journald: add missing flag to open() + +--- + src/journal/journald.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/journal/journald.c b/src/journal/journald.c +index baad3ab..c8b400a 100644 +--- a/src/journal/journald.c ++++ b/src/journal/journald.c +@@ -2461,7 +2461,7 @@ static int open_proc_kmsg(Server *s) { + return 0; + + +- s->proc_kmsg_fd = open("/proc/kmsg", O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ s->proc_kmsg_fd = open("/proc/kmsg", O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); + if (s->proc_kmsg_fd < 0) { + log_warning("Failed to open /proc/kmsg, ignoring: %m"); + return 0; +-- +1.7.7 + + +From 94b8299358fd743137857bc0f28ab62bcf6eec92 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 13 Apr 2012 13:58:50 +0200 +Subject: [PATCH 2/4] fix a couple of things found with the llvm static + analyzer + +--- + src/journal/journal-file.c | 2 +- + src/journal/journald.c | 2 +- + src/logs-show.c | 2 +- + src/manager.c | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 474dd5c..5255c3b 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -1974,7 +1974,7 @@ int journal_directory_vacuum(const char *directory, uint64_t max_use, uint64_t m + size_t q; + struct stat st; + char *p; +- unsigned long long seqnum, realtime; ++ unsigned long long seqnum = 0, realtime; + sd_id128_t seqnum_id; + bool have_seqnum; + +diff --git a/src/journal/journald.c b/src/journal/journald.c +index c8b400a..1118b7e 100644 +--- a/src/journal/journald.c ++++ b/src/journal/journald.c +@@ -1140,7 +1140,7 @@ static void process_native_message( + char *identifier = NULL, *message = NULL; + + assert(s); +- assert(buffer || n == 0); ++ assert(buffer || buffer_size == 0); + + p = buffer; + remaining = buffer_size; +diff --git a/src/logs-show.c b/src/logs-show.c +index f71c6b0..eb9a902 100644 +--- a/src/logs-show.c ++++ b/src/logs-show.c +@@ -541,7 +541,7 @@ int show_journal_by_unit( + bool follow) { + + char *m = NULL; +- sd_journal *j; ++ sd_journal *j = NULL; + int r; + int fd; + unsigned line = 0; +diff --git a/src/manager.c b/src/manager.c +index 74bd740..3e592b6 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -2979,7 +2979,7 @@ bool manager_unit_pending_inactive(Manager *m, const char *name) { + + void manager_check_finished(Manager *m) { + char userspace[FORMAT_TIMESPAN_MAX], initrd[FORMAT_TIMESPAN_MAX], kernel[FORMAT_TIMESPAN_MAX], sum[FORMAT_TIMESPAN_MAX]; +- usec_t kernel_usec = 0, initrd_usec = 0, userspace_usec = 0, total_usec = 0; ++ usec_t kernel_usec, initrd_usec, userspace_usec, total_usec; + + assert(m); + +-- +1.7.7 + + +From f83fa045b967478a80ca55477dfe6a5be5f0b4a8 Mon Sep 17 00:00:00 2001 +From: Sjoerd Simons +Date: Sat, 14 Apr 2012 14:11:08 +0200 +Subject: [PATCH 3/4] journal: crash when filesystem is low on space + +When space is getting too low on a file system rotating the journal file +will fail after the rotation, as opening the new logfile will fail. + +Recognize this when logging the error and don't try to dereference a +NULL JournalFile pointer. +--- + src/journal/journald.c | 16 +++++++++++++--- + 1 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/src/journal/journald.c b/src/journal/journald.c +index 1118b7e..9180656 100644 +--- a/src/journal/journald.c ++++ b/src/journal/journald.c +@@ -330,7 +330,10 @@ static void server_rotate(Server *s) { + if (s->runtime_journal) { + r = journal_file_rotate(&s->runtime_journal); + if (r < 0) +- log_error("Failed to rotate %s: %s", s->runtime_journal->path, strerror(-r)); ++ if (s->runtime_journal) ++ log_error("Failed to rotate %s: %s", s->runtime_journal->path, strerror(-r)); ++ else ++ log_error("Failed to create new runtime journal: %s", strerror(-r)); + else + server_fix_perms(s, s->runtime_journal, 0); + } +@@ -338,7 +341,11 @@ static void server_rotate(Server *s) { + if (s->system_journal) { + r = journal_file_rotate(&s->system_journal); + if (r < 0) +- log_error("Failed to rotate %s: %s", s->system_journal->path, strerror(-r)); ++ if (s->system_journal) ++ log_error("Failed to rotate %s: %s", s->system_journal->path, strerror(-r)); ++ else ++ log_error("Failed to create new system journal: %s", strerror(-r)); ++ + else + server_fix_perms(s, s->system_journal, 0); + } +@@ -346,7 +353,10 @@ static void server_rotate(Server *s) { + HASHMAP_FOREACH_KEY(f, k, s->user_journals, i) { + r = journal_file_rotate(&f); + if (r < 0) +- log_error("Failed to rotate %s: %s", f->path, strerror(-r)); ++ if (f->path) ++ log_error("Failed to rotate %s: %s", f->path, strerror(-r)); ++ else ++ log_error("Failed to create user journal: %s", strerror(-r)); + else { + hashmap_replace(s->user_journals, k, f); + server_fix_perms(s, s->system_journal, PTR_TO_UINT32(k)); +-- +1.7.7 + + +From d80e2f5c26aae25c0773042bcd1599d3c583bf6a Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 12 Jun 2012 16:45:09 +0200 +Subject: [PATCH 4/4] journal-file: fix mmap leak + +https://bugzilla.redhat.com/show_bug.cgi?id=831132 +--- + src/journal/journal-file.c | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 5255c3b..e242fa2 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -67,9 +67,12 @@ void journal_file_close(JournalFile *f) { + + assert(f); + +- if (f->header && f->writable) +- f->header->state = STATE_OFFLINE; ++ if (f->header) { ++ if (f->writable) ++ f->header->state = STATE_OFFLINE; + ++ munmap(f->header, PAGE_ALIGN(sizeof(Header))); ++ } + + for (t = 0; t < _WINDOW_MAX; t++) + if (f->windows[t].ptr) +-- +1.7.7 + diff --git a/systemd.changes b/systemd.changes index a6f9884b..4937dd83 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Tue Jul 3 17:58:39 CEST 2012 - fcrozat@suse.com + +- Add fix-dir-noatime-tmpfiles.patch: do not modify directory + atime, which was preventing removing empty directories + (bnc#751253, rh#810257). +- Add improve-restart-behaviour.patch: prevent deadlock during + try-restart (bnc#743218). +- Add journal-bugfixes.patch: don't crash when rotating journal + (bnc#768953) and prevent memleak at rotation time too. +- Add ulimit-support.patch: add support for system wide ulimit + (bnc#744818). +- Add change-terminal.patch: use vt102 instead of vt100 as terminal + for non-vc tty. +- Package various .wants directories, which were no longer packaged + due to plymouth units being removed from systemd package. +- Fix buildrequires for manpages build. + ------------------------------------------------------------------- Mon Jul 2 15:44:28 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index f670c1a5..85c002ec 100644 --- a/systemd.spec +++ b/systemd.spec @@ -35,7 +35,7 @@ BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel BuildRequires: libtool -BuildRequires: libxslt1 +BuildRequires: libxslt-tools BuildRequires: pam-devel BuildRequires: pkg-config BuildRequires: tcpd-devel @@ -93,6 +93,11 @@ Patch42: fixppc.patch Patch43: logind-logout.patch Patch44: fix-getty-isolate.patch Patch45: fix-swap-priority.patch +Patch46: improve-restart-behaviour.patch +Patch47: fix-dir-noatime-tmpfiles.patch +Patch48: journal-bugfixes.patch +Patch49: ulimit-support.patch +Patch50: change-terminal.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -148,6 +153,14 @@ Drop-in replacement of System V init tools. %patch43 -p1 %patch44 -p1 %patch45 -p1 +%patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 + +#needed by patch49 +rm man/systemd.conf.5 %build autoreconf -fiv @@ -163,6 +176,7 @@ export V=1 --with-pamlibdir=/%{_lib}/security \ --enable-split-usr \ --disable-gtk \ + --enable-manpages \ --disable-plymouth \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -178,7 +192,8 @@ chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/lib/systemd/{system.preset,user.preset} +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/lib/systemd/{system.preset,user.preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} + install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future #install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators diff --git a/ulimit-support.patch b/ulimit-support.patch new file mode 100644 index 00000000..ae6d355c --- /dev/null +++ b/ulimit-support.patch @@ -0,0 +1,253 @@ +From 03854532d39613723dc8b85c424737ecf2e46f74 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 16 Apr 2012 18:54:45 +0200 +Subject: [PATCH 1/3] util: introduce memdup() + +--- + src/util.h | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/src/util.h b/src/util.h +index b1af6db..06c9933 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -99,6 +99,8 @@ bool streq_ptr(const char *a, const char *b); + + #define new0(t, n) ((t*) calloc((n), sizeof(t))) + ++#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n)) ++ + #define malloc0(n) (calloc((n), 1)) + + static inline const char* yes_no(bool b) { +-- +1.7.7 + + +From f60b5d436f502152415b08758737f200113ce4bc Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Mon, 21 May 2012 16:53:18 +0200 +Subject: [PATCH 2/3] util: fix typo in newdup + +Conflicts: + + src/util.h +--- + src/util.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/util.h b/src/util.h +index 06c9933..41b4c9f 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -99,7 +99,7 @@ bool streq_ptr(const char *a, const char *b); + + #define new0(t, n) ((t*) calloc((n), sizeof(t))) + +-#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n)) ++#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n))) + + #define malloc0(n) (calloc((n), 1)) + +-- +1.7.7 + + +From 8e7fa2b3e68b691c522cf2b60ed920452c146c2e Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Wed, 27 Jun 2012 14:12:44 +0200 +Subject: [PATCH 3/3] main: allow system wide limits for services + +--- + man/systemd.conf.xml | 27 +++++++++++++++++++++++++++ + src/main.c | 22 ++++++++++++++++++++++ + src/manager.c | 22 ++++++++++++++++++++++ + src/manager.h | 3 +++ + src/service.c | 4 ++++ + 5 files changed, 78 insertions(+), 0 deletions(-) + +diff --git a/man/systemd.conf.xml b/man/systemd.conf.xml +index ba144da..ee461e3 100644 +--- a/man/systemd.conf.xml ++++ b/man/systemd.conf.xml +@@ -149,6 +149,33 @@ + controllers in separate + hierarchies. + ++ ++ ++ DefaultLimitCPU= ++ DefaultLimitFSIZE= ++ DefaultLimitDATA= ++ DefaultLimitSTACK= ++ DefaultLimitCORE= ++ DefaultLimitRSS= ++ DefaultLimitNOFILE= ++ DefaultLimitAS= ++ DefaultLimitNPROC= ++ DefaultLimitMEMLOCK= ++ DefaultLimitLOCKS= ++ DefaultLimitSIGPENDING= ++ DefaultLimitMSGQUEUE= ++ DefaultLimitNICE= ++ DefaultLimitRTPRIO= ++ DefaultLimitRTTIME= ++ These settings control ++ various default resource limits for units. See ++ setrlimit2 ++ for details. Use the string ++ infinity to ++ configure no limit on a specific ++ resource. They can be overriden in units files ++ using corresponding LimitXXXX parameter. ++ + + + +diff --git a/src/main.c b/src/main.c +index ed317b4..3f5f3d7 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -79,6 +79,7 @@ static char **arg_default_controllers = NULL; + static char ***arg_join_controllers = NULL; + static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL; + static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT; ++static struct rlimit *arg_default_rlimit[RLIMIT_NLIMITS] = {}; + + static FILE* serialization = NULL; + +@@ -659,6 +660,22 @@ static int parse_config_file(void) { + { "Manager", "DefaultStandardOutput", config_parse_output, 0, &arg_default_std_output }, + { "Manager", "DefaultStandardError", config_parse_output, 0, &arg_default_std_error }, + { "Manager", "JoinControllers", config_parse_join_controllers, 0, &arg_join_controllers }, ++ { "Manager", "DefaultLimitCPU", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_CPU]}, ++ { "Manager", "DefaultLimitFSIZE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_FSIZE]}, ++ { "Manager", "DefaultLimitDATA", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_DATA]}, ++ { "Manager", "DefaultLimitSTACK", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_STACK]}, ++ { "Manager", "DefaultLimitCORE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_CORE]}, ++ { "Manager", "DefaultLimitRSS", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_RSS]}, ++ { "Manager", "DefaultLimitNOFILE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_NOFILE]}, ++ { "Manager", "DefaultLimitAS", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_AS]}, ++ { "Manager", "DefaultLimitNPROC", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_NPROC]}, ++ { "Manager", "DefaultLimitMEMLOCK", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_MEMLOCK]}, ++ { "Manager", "DefaultLimitLOCKS", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_LOCKS]}, ++ { "Manager", "DefaultLimitSIGPENDING",config_parse_limit, 0, &arg_default_rlimit[RLIMIT_SIGPENDING]}, ++ { "Manager", "DefaultLimitMSGQUEUE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_MSGQUEUE]}, ++ { "Manager", "DefaultLimitNICE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_NICE]}, ++ { "Manager", "DefaultLimitRTPRIO", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_RTPRIO]}, ++ { "Manager", "DefaultLimitRTTIME", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_RTTIME]}, + { NULL, NULL, NULL, 0, NULL } + }; + +@@ -1401,6 +1418,8 @@ int main(int argc, char *argv[]) { + m->default_std_output = arg_default_std_output; + m->default_std_error = arg_default_std_error; + ++ manager_set_default_rlimits(m, arg_default_rlimit); ++ + if (dual_timestamp_is_set(&initrd_timestamp)) + m->initrd_timestamp = initrd_timestamp; + +@@ -1539,6 +1558,9 @@ finish: + if (m) + manager_free(m); + ++ for (j = 0; j < RLIMIT_NLIMITS; j++) ++ free (arg_default_rlimit[j]); ++ + free(arg_default_unit); + strv_free(arg_default_controllers); + free_join_controllers(); +diff --git a/src/manager.c b/src/manager.c +index 3e592b6..c6cd06c 100644 +--- a/src/manager.c ++++ b/src/manager.c +@@ -456,6 +456,7 @@ static void manager_clear_jobs_and_units(Manager *m) { + + void manager_free(Manager *m) { + UnitType c; ++ int i; + + assert(m); + +@@ -501,6 +502,9 @@ void manager_free(Manager *m) { + hashmap_free(m->cgroup_bondings); + set_free_free(m->unit_path_cache); + ++ for (i = 0; i < RLIMIT_NLIMITS; i++) ++ free(m->rlimit[i]); ++ + free(m); + } + +@@ -3137,6 +3141,24 @@ int manager_set_default_controllers(Manager *m, char **controllers) { + return 0; + } + ++int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit) { ++ int i; ++ ++ assert(m); ++ ++ for (i = 0; i < RLIMIT_NLIMITS; i++) { ++ if (default_rlimit[i]) { ++ m->rlimit[i] = newdup(struct rlimit, default_rlimit[i], 1); ++ ++ if (!m->rlimit[i]) ++ return -ENOMEM; ++ } ++ } ++ ++ return 0; ++} ++ ++ + void manager_recheck_journal(Manager *m) { + Unit *u; + +diff --git a/src/manager.h b/src/manager.h +index a9d08f0..5f5de8e 100644 +--- a/src/manager.h ++++ b/src/manager.h +@@ -225,6 +225,8 @@ struct Manager { + + ExecOutput default_std_output, default_std_error; + ++ struct rlimit *rlimit[RLIMIT_NLIMITS]; ++ + /* non-zero if we are reloading or reexecuting, */ + int n_reloading; + +@@ -263,6 +265,7 @@ unsigned manager_dispatch_run_queue(Manager *m); + unsigned manager_dispatch_dbus_queue(Manager *m); + + int manager_set_default_controllers(Manager *m, char **controllers); ++int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit); + + int manager_loop(Manager *m); + +diff --git a/src/service.c b/src/service.c +index 8b5c0b0..892392d 100644 +--- a/src/service.c ++++ b/src/service.c +@@ -109,6 +109,7 @@ static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { + + static void service_init(Unit *u) { + Service *s = SERVICE(u); ++ int i; + + assert(u); + assert(u->load_state == UNIT_STUB); +@@ -127,6 +128,9 @@ static void service_init(Unit *u) { + s->guess_main_pid = true; + + exec_context_init(&s->exec_context); ++ for (i = 0; i < RLIMIT_NLIMITS; i++) ++ if (UNIT(s)->manager->rlimit[i]) ++ s->exec_context.rlimit[i] = newdup(struct rlimit, UNIT(s)->manager->rlimit[i], 1); + + RATELIMIT_INIT(s->start_limit, 10*USEC_PER_SEC, 5); + +-- +1.7.7 + From d176b67690d20187291e4321527d19ab5ec5381f5d499f1ba7f85bf8ec6cbf25 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 4 Jul 2012 11:56:46 +0000 Subject: [PATCH 101/221] Accepting request 127074 from Base:System - Fix SUSE specific sysconfig numlock logic for 12.2 (bnc#746595). (forwarded request 127025 from sbrabec) OBS-URL: https://build.opensuse.org/request/show/127074 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=104 --- systemd-numlock-suse.patch | 147 ++++++++++++++++++++++++++++--------- systemd.changes | 5 ++ systemd.spec | 1 + 3 files changed, 118 insertions(+), 35 deletions(-) diff --git a/systemd-numlock-suse.patch b/systemd-numlock-suse.patch index 63a8818b..66a36866 100644 --- a/systemd-numlock-suse.patch +++ b/systemd-numlock-suse.patch @@ -78,45 +78,52 @@ Index: systemd-44/Makefile.am =================================================================== --- systemd-44.orig/Makefile.am +++ systemd-44/Makefile.am -@@ -2043,7 +2043,8 @@ dist_udevrules_DATA += \ - src/login/71-seat.rules +@@ -42,6 +42,7 @@ dbussessionservicedir=@dbussessionservic + dbussystemservicedir=@dbussystemservicedir@ + dbusinterfacedir=@dbusinterfacedir@ + udevrulesdir=@udevrulesdir@ ++udevhelperdir=@udevhelperdir@ + pamlibdir=@pamlibdir@ + pkgconfigdatadir=$(datadir)/pkgconfig + pkgconfiglibdir=$(libdir)/pkgconfig +@@ -202,6 +203,9 @@ rootlibexec_PROGRAMS = \ + systemgenerator_PROGRAMS = \ + systemd-getty-generator + ++udevhelper_PROGRAMS = \ ++ numlock-on ++ + noinst_PROGRAMS = \ + test-engine \ + test-job-type \ +@@ -2033,6 +2037,12 @@ systemd_uaccess_LDADD = \ + $(UDEV_LIBS) \ + $(ACL_LIBS) + ++numlock_on_SOURCES = \ ++ src/login/numlock-on.c ++ ++numlock_on_CFLAGS = \ ++ $(AM_CFLAGS) ++ + rootlibexec_PROGRAMS += \ + systemd-uaccess + +@@ -2040,7 +2050,8 @@ dist_udevrules_DATA += \ + src/login/70-uaccess.rules + + dist_udevrules_DATA += \ +- src/login/71-seat.rules ++ src/login/71-seat.rules \ ++ src/login/73-seat-numlock.rules nodist_udevrules_DATA += \ -- src/login/73-seat-late.rules -+ src/login/73-seat-late.rules \ -+ src/login/73-seat-numlock.rules - - MANPAGES += \ - man/systemd-logind.conf.5 \ -@@ -2106,12 +2107,14 @@ EXTRA_DIST += \ - src/login/logind-user.h \ - src/login/logind-acl.h \ - src/login/73-seat-late.rules.in \ -+ src/login/73-seat-numlock.rules.in \ - units/systemd-logind.service.in \ - units/systemd-user-sessions.service.in - - CLEANFILES += \ - src/login/logind-gperf.c \ -- src/login/73-seat-late.rules -+ src/login/73-seat-late.rules \ -+ src/login/73-seat-numlock.rules - endif - # ------------------------------------------------------------------------------ - -@@ -2121,6 +2124,7 @@ SED_PROCESS = \ - -e 's,@rootbindir\@,$(rootbindir),g' \ - -e 's,@bindir\@,$(bindir),g' \ - -e 's,@SYSTEMCTL\@,$(rootbindir)/systemctl,g' \ -+ -e 's,@SETLEDS\@,$(SETLEDS),g' \ - -e 's,@SYSTEMD_NOTIFY\@,$(rootbindir)/systemd-notify,g' \ - -e 's,@pkgsysconfdir\@,$(pkgsysconfdir),g' \ - -e 's,@pkgdatadir\@,$(pkgdatadir),g' \ + src/login/73-seat-late.rules Index: systemd-44/configure.ac =================================================================== --- systemd-44.orig/configure.ac +++ systemd-44/configure.ac -@@ -410,6 +410,12 @@ fi +@@ -410,6 +410,13 @@ fi with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution]) @@ -125,14 +132,43 @@ Index: systemd-44/configure.ac + AC_DEFINE_UNQUOTED([HWINFO], ["${HWINFO}"], [Path to hwinfo binary. (SUSE)]) +fi +AC_PATH_PROG([SETLEDS], [setleds], [/bin/setleds], [/sbin:/usr/sbin:/usr/bin:/bin]) ++AC_DEFINE_UNQUOTED([SETLEDS], ["${SETLEDS}"], [Path to setleds binary.]) + # Location of the init scripts as mandated by LSB SYSTEM_SYSVINIT_PATH=/etc/init.d SYSTEM_SYSVRCND_PATH=/etc/rc.d +@@ -579,6 +586,11 @@ AC_ARG_WITH([udevrulesdir], + [], + [with_udevrulesdir=`pkg-config --variable=udevdir udev`/rules.d]) + ++AC_ARG_WITH([udevhelperdir], ++ AS_HELP_STRING([--with-udevhelperdir=DIR], [Directory for udev helpers]), ++ [], ++ [with_udevhelperdir=`pkg-config --variable=udevdir udev`]) ++ + AC_ARG_WITH([rootprefix], + AS_HELP_STRING([--with-rootprefix=DIR], [rootfs directory prefix for config files and kernel modules]), + [], [with_rootprefix=${ac_default_prefix}]) +@@ -611,6 +623,7 @@ AC_SUBST([dbussessionservicedir], [$with + AC_SUBST([dbussystemservicedir], [$with_dbussystemservicedir]) + AC_SUBST([dbusinterfacedir], [$with_dbusinterfacedir]) + AC_SUBST([udevrulesdir], [$with_udevrulesdir]) ++AC_SUBST([udevhelperdir], [$with_udevhelperdir]) + AC_SUBST([pamlibdir], [$with_pamlibdir]) + AC_SUBST([rootprefix], [$with_rootprefix]) + AC_SUBST([rootlibdir], [$with_rootlibdir]) +@@ -650,6 +663,7 @@ AC_MSG_RESULT([ + rootlib dir: ${with_rootlibdir} + PAM modules dir: ${with_pamlibdir} + udev rules dir: ${with_udevrulesdir} ++ udev hepler dir: ${with_udevhelperdir} + D-Bus policy dir: ${with_dbuspolicydir} + D-Bus session dir: ${with_dbussessionservicedir} + D-Bus system dir: ${with_dbussystemservicedir} Index: systemd-44/src/login/73-seat-numlock.rules.in =================================================================== --- /dev/null -+++ systemd-44/src/login/73-seat-numlock.rules.in ++++ systemd-44/src/login/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of systemd. +# @@ -141,4 +177,45 @@ Index: systemd-44/src/login/73-seat-numlock.rules.in +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + -+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TAG=="systemd", TEST=="/run/numlock-on", RUN+="@SETLEDS@ -D +num <$env{DEVNAME}" ++SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" +Index: systemd-44/src/login/numlock-on.c +=================================================================== +--- /dev/null ++++ systemd-44/src/login/numlock-on.c +@@ -0,0 +1,36 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2012 Stanislav Brabec ++ ++ systemd 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. ++ ++ systemd 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. ++ ++ You should have received a copy of the GNU General Public License ++ along with systemd; If not, see . ++***/ ++ ++#include "config.h" ++#include ++#include ++#include ++ ++int main (int argc, char *argv[]) { ++ static char *args[] = { SETLEDS, "-D", "+num", NULL }; ++ ++ if (argc != 2) ++ return EX_USAGE; ++ close (STDIN_FILENO); ++ if (open (argv[1], O_RDONLY) != STDIN_FILENO) ++ return EX_IOERR; ++ return execv(args[0], args); ++} diff --git a/systemd.changes b/systemd.changes index 4937dd83..b18c52f6 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Jul 3 20:07:47 CEST 2012 - sbrabec@suse.cz + +- Fix SUSE specific sysconfig numlock logic for 12.2 (bnc#746595). + ------------------------------------------------------------------- Tue Jul 3 17:58:39 CEST 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 85c002ec..27e80066 100644 --- a/systemd.spec +++ b/systemd.spec @@ -373,6 +373,7 @@ rm -rf %{buildroot} %{_mandir}/man8/*.8* %{_docdir}/systemd /lib/udev/rules.d/*.rules +/lib/udev/numlock-on %dir /lib/systemd /lib/systemd/system /lib/systemd/system-generators From c23e91c026b077ef9b15cb43b4d6ec3602e9ff21d9e5c04904c9058eb2635a5a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 14 Jul 2012 11:16:17 +0000 Subject: [PATCH 102/221] Accepting request 127853 from Base:System - Add fastboot-forcefsck.patch: ensure fastboot and forcefsck on kernel commandline are handled. - Add fix-write-user-state-file.patch: write logind state file correctly. - Disable logind-logout.patch: cause too many issues (bnc#769531). - Add fix-tty-startup.patch: don't limit tty VT to 12 (bnc#770182). (forwarded request 127840 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/127853 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=105 --- fastboot-forcefsck.patch | 13 +++++ fix-tty-startup.patch | 40 +++++++++++++ fix-write-user-state-file.patch | 99 +++++++++++++++++++++++++++++++++ systemd.changes | 14 +++++ systemd.spec | 9 ++- 5 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 fastboot-forcefsck.patch create mode 100644 fix-tty-startup.patch create mode 100644 fix-write-user-state-file.patch diff --git a/fastboot-forcefsck.patch b/fastboot-forcefsck.patch new file mode 100644 index 00000000..4d76eb23 --- /dev/null +++ b/fastboot-forcefsck.patch @@ -0,0 +1,13 @@ +Index: systemd-44/src/fsck.c +=================================================================== +--- systemd-44.orig/src/fsck.c ++++ systemd-44/src/fsck.c +@@ -127,7 +127,7 @@ static int parse_proc_cmdline(void) { + arg_skip = true; + else if (startswith(w, "fsck.mode")) + log_warning("Invalid fsck.mode= parameter. Ignoring."); +-#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) ++#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) || defined(TARGET_SUSE) + else if (strneq(w, "fastboot", l)) + arg_skip = true; + else if (strneq(w, "forcefsck", l)) diff --git a/fix-tty-startup.patch b/fix-tty-startup.patch new file mode 100644 index 00000000..293839c7 --- /dev/null +++ b/fix-tty-startup.patch @@ -0,0 +1,40 @@ +From d55248d6a6f69f3b6c86cfc0d11aff8831590a4f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 12 Apr 2012 17:29:42 +0200 +Subject: [PATCH] getty: VC devices are always available, we don't need to + wait until they show up + +--- + src/99-systemd.rules.in | 1 - + units/getty@.service.m4 | 3 +-- + 2 files changed, 1 insertions(+), 3 deletions(-) + +diff --git a/src/99-systemd.rules.in b/src/99-systemd.rules.in +index d306f71..8cc7523 100644 +--- a/src/99-systemd.rules.in ++++ b/src/99-systemd.rules.in +@@ -7,7 +7,6 @@ + + ACTION=="remove", GOTO="systemd_end" + +-SUBSYSTEM=="tty", KERNEL=="tty[0-9]|tty1[0-2]", TAG+="systemd" + SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" + + KERNEL=="vport*", TAG+="systemd" +diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 +index a02838d..c397a4d 100644 +--- a/units/getty@.service.m4 ++++ b/units/getty@.service.m4 +@@ -7,8 +7,7 @@ + + [Unit] + Description=Getty on %I +-BindTo=dev-%i.device +-After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service ++After=systemd-user-sessions.service plymouth-quit-wait.service + m4_ifdef(`TARGET_FEDORA', + After=rc-local.service + )m4_dnl +-- +1.7.7 + diff --git a/fix-write-user-state-file.patch b/fix-write-user-state-file.patch new file mode 100644 index 00000000..e0cd289e --- /dev/null +++ b/fix-write-user-state-file.patch @@ -0,0 +1,99 @@ +From 0753f9b016f144a6ebe11cd8a2c377e5a0345443 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 22 May 2012 16:46:11 +0200 +Subject: [PATCH] logind: fix write out of user state file + +--- + src/login/logind-user.c | 65 ++++++++++++++++++++++++++++++---------------- + 1 files changed, 42 insertions(+), 23 deletions(-) + +diff --git a/src/login/logind-user.c b/src/login/logind-user.c +index 717f0e2..b7f579c 100644 +--- a/src/login/logind-user.c ++++ b/src/login/logind-user.c +@@ -136,40 +136,59 @@ int user_save(User *u) { + + if (u->sessions) { + Session *i; ++ bool first; + + fputs("SESSIONS=", f); ++ first = true; + LIST_FOREACH(sessions_by_user, i, u->sessions) { +- fprintf(f, +- "%s%c", +- i->id, +- i->sessions_by_user_next ? ' ' : '\n'); ++ if (first) ++ first = false; ++ else ++ fputc(' ', f); ++ ++ fputs(i->id, f); + } + +- fputs("SEATS=", f); ++ fputs("\nSEATS=", f); ++ first = true; + LIST_FOREACH(sessions_by_user, i, u->sessions) { +- if (i->seat) +- fprintf(f, +- "%s%c", +- i->seat->id, +- i->sessions_by_user_next ? ' ' : '\n'); ++ if (!i->seat) ++ continue; ++ ++ if (first) ++ first = false; ++ else ++ fputc(' ', f); ++ ++ fputs(i->seat->id, f); + } + +- fputs("ACTIVE_SESSIONS=", f); +- LIST_FOREACH(sessions_by_user, i, u->sessions) +- if (session_is_active(i)) +- fprintf(f, +- "%lu%c", +- (unsigned long) i->user->uid, +- i->sessions_by_user_next ? ' ' : '\n'); ++ fputs("\nACTIVE_SESSIONS=", f); ++ first = true; ++ LIST_FOREACH(sessions_by_user, i, u->sessions) { ++ if (!session_is_active(i)) ++ continue; ++ ++ if (first) ++ first = false; ++ else ++ fputc(' ', f); ++ ++ fputs(i->id, f); ++ } + +- fputs("ACTIVE_SEATS=", f); ++ fputs("\nACTIVE_SEATS=", f); ++ first = true; + LIST_FOREACH(sessions_by_user, i, u->sessions) { +- if (session_is_active(i) && i->seat) +- fprintf(f, +- "%s%c", +- i->seat->id, +- i->sessions_by_user_next ? ' ' : '\n'); ++ if (!session_is_active(i) || !i->seat) ++ continue; ++ ++ if (first) ++ first = false; ++ else ++ fputs(i->seat->id, f); + } ++ fputc('\n', f); + } + + fflush(f); +-- +1.7.7 + diff --git a/systemd.changes b/systemd.changes index b18c52f6..87a604d6 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Jul 10 16:48:20 UTC 2012 - fcrozat@suse.com + +- Add fastboot-forcefsck.patch: ensure fastboot and forcefsck on + kernel commandline are handled. +- Add fix-write-user-state-file.patch: write logind state file + correctly. +- Disable logind-logout.patch: cause too many issues (bnc#769531). + +------------------------------------------------------------------- +Mon Jul 9 11:01:20 UTC 2012 - fcrozat@suse.com + +- Add fix-tty-startup.patch: don't limit tty VT to 12 (bnc#770182). + ------------------------------------------------------------------- Tue Jul 3 20:07:47 CEST 2012 - sbrabec@suse.cz diff --git a/systemd.spec b/systemd.spec index 27e80066..b377ded1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -83,6 +83,7 @@ Patch33: crypt-loop-file.patch Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch +Patch53: fastboot-forcefsck.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -98,6 +99,8 @@ Patch47: fix-dir-noatime-tmpfiles.patch Patch48: journal-bugfixes.patch Patch49: ulimit-support.patch Patch50: change-terminal.patch +Patch51: fix-tty-startup.patch +Patch52: fix-write-user-state-file.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -150,7 +153,8 @@ Drop-in replacement of System V init tools. %patch40 -p1 %patch41 -p1 %patch42 -p1 -%patch43 -p1 +# this one causes too many trouble for now, disabling (bnc#769531) +#patch43 -p1 %patch44 -p1 %patch45 -p1 %patch46 -p1 @@ -158,6 +162,9 @@ Drop-in replacement of System V init tools. %patch48 -p1 %patch49 -p1 %patch50 -p1 +%patch51 -p1 +%patch52 -p1 +%patch53 -p1 #needed by patch49 rm man/systemd.conf.5 From c250d6b5ce201c4513f152d9185bcb96b237307d15926b100c20cb76ebbaffe5 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 19 Jul 2012 16:00:29 +0000 Subject: [PATCH 103/221] Accepting request 128231 from Base:System - Move systemd-analyse to a subpackage, to remove any python dependencies from systemd main package (bnc#772039). (forwarded request 128224 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/128231 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=106 --- systemd.changes | 6 ++++++ systemd.spec | 22 ++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/systemd.changes b/systemd.changes index 87a604d6..4e2ebe83 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jul 18 13:14:37 UTC 2012 - fcrozat@suse.com + +- Move systemd-analyse to a subpackage, to remove any python + dependencies from systemd main package (bnc#772039). + ------------------------------------------------------------------- Tue Jul 10 16:48:20 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index b377ded1..79a06231 100644 --- a/systemd.spec +++ b/systemd.spec @@ -16,8 +16,6 @@ # -#don't require python, use recommends (bnc#716939) - Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 44 @@ -54,7 +52,6 @@ Requires: pam-config >= 0.79-5 Requires: systemd-presets-branding Requires: udev >= 172 Requires: util-linux >= 2.21 -Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz @@ -132,6 +129,21 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. +%package analyze +Summary: Tool for processing systemd profiling information +Group: System/Base +Requires: %{name} = %{version} +Requires: dbus-1-python +Requires: python-cairo +# for the systemd-analyze split: +Conflicts: systemd < 44-10 + +%description analyze +'systemd-analyze blame' lists which systemd unit needed how much time to finish +initialization at boot. +'systemd-analyze plot' renders an SVG visualizing the parallel start of units +at boot. + %prep %setup -q %patch1 -p1 @@ -311,7 +323,6 @@ rm -rf %{buildroot} /bin/systemd-machine-id-setup /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge -%attr(0755,root,root) /usr/bin/systemd-analyze %{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* @@ -431,4 +442,7 @@ rm -rf %{buildroot} %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* +%files analyze +%attr(0755,root,root) /usr/bin/systemd-analyze + %changelog From 3efaa84d7aad963d0fdfae0f5f36447f65ad446bed93285ded1c4009fdd67c40 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Jul 2012 08:41:36 +0000 Subject: [PATCH 104/221] Accepting request 128596 from Base:System - Fix NumLock detection/set race condition (bnc#746595#c47). (forwarded request 128498 from sbrabec) OBS-URL: https://build.opensuse.org/request/show/128596 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=107 --- systemd-numlock-suse.patch | 15 ++++++++++++++- systemd.changes | 5 +++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/systemd-numlock-suse.patch b/systemd-numlock-suse.patch index 66a36866..3c7d9c9c 100644 --- a/systemd-numlock-suse.patch +++ b/systemd-numlock-suse.patch @@ -165,7 +165,7 @@ Index: systemd-44/configure.ac D-Bus policy dir: ${with_dbuspolicydir} D-Bus session dir: ${with_dbussessionservicedir} D-Bus system dir: ${with_dbussystemservicedir} -Index: systemd-44/src/login/73-seat-numlock.rules.in +Index: systemd-44/src/login/73-seat-numlock.rules =================================================================== --- /dev/null +++ systemd-44/src/login/73-seat-numlock.rules @@ -219,3 +219,16 @@ Index: systemd-44/src/login/numlock-on.c + return EX_IOERR; + return execv(args[0], args); +} +Index: systemd-44/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-44.orig/units/systemd-vconsole-setup.service.in ++++ systemd-44/units/systemd-vconsole-setup.service.in +@@ -10,7 +10,7 @@ Description=Setup Virtual Console + DefaultDependencies=no + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service +-Before=sysinit.target shutdown.target ++Before=sysinit.target shutdown.target udev-trigger.service + + [Service] + Type=oneshot diff --git a/systemd.changes b/systemd.changes index 4e2ebe83..cb5e5c8c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jul 20 19:24:08 CEST 2012 - sbrabec@suse.cz + +- Fix NumLock detection/set race condition (bnc#746595#c47). + ------------------------------------------------------------------- Wed Jul 18 13:14:37 UTC 2012 - fcrozat@suse.com From cd30f49f733b7d471ab890cf458d35638761cdc238221c1eb63904b017870695 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 25 Jul 2012 08:44:48 +0000 Subject: [PATCH 105/221] Accepting request 128831 from Base:System - Add fix-analyze-exception.patch: prevent exception if running systemd-analyze before boot is complete (bnc#772506) (forwarded request 128829 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/128831 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=108 --- fix-analyze-exception.patch | 29 +++++++++++++++++++++++++++++ systemd.changes | 6 ++++++ systemd.spec | 2 ++ 3 files changed, 37 insertions(+) create mode 100644 fix-analyze-exception.patch diff --git a/fix-analyze-exception.patch b/fix-analyze-exception.patch new file mode 100644 index 00000000..00699858 --- /dev/null +++ b/fix-analyze-exception.patch @@ -0,0 +1,29 @@ +From 6070fe66ac2f317e7e85e5685f0916d1e2b73a28 Mon Sep 17 00:00:00 2001 +From: Colin Guthrie +Date: Mon, 2 Apr 2012 11:08:20 +0100 +Subject: [PATCH] analyze: Cosmetic exit when the bootup is not yet complete + when plotting. + +This is just a nicer message than a python traceback. +--- + src/systemd-analyze | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/systemd-analyze b/src/systemd-analyze +index 8148bfb..a49fbb7 100755 +--- a/src/systemd-analyze ++++ b/src/systemd-analyze +@@ -31,6 +31,10 @@ def acquire_start_time(): + startup_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'StartupTimestampMonotonic')) + finish_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'FinishTimestampMonotonic')) + ++ if finish_time == 0: ++ sys.stderr.write("Bootup is not yet finished. Please try again later.\n") ++ sys.exit(1) ++ + assert initrd_time <= startup_time + assert startup_time <= finish_time + +-- +1.7.10.4 + diff --git a/systemd.changes b/systemd.changes index cb5e5c8c..2ed4bd0a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Jul 23 08:28:15 UTC 2012 - fcrozat@suse.com + +- Add fix-analyze-exception.patch: prevent exception if running + systemd-analyze before boot is complete (bnc#772506) + ------------------------------------------------------------------- Fri Jul 20 19:24:08 CEST 2012 - sbrabec@suse.cz diff --git a/systemd.spec b/systemd.spec index 79a06231..f5933311 100644 --- a/systemd.spec +++ b/systemd.spec @@ -98,6 +98,7 @@ Patch49: ulimit-support.patch Patch50: change-terminal.patch Patch51: fix-tty-startup.patch Patch52: fix-write-user-state-file.patch +Patch54: fix-analyze-exception.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -177,6 +178,7 @@ at boot. %patch51 -p1 %patch52 -p1 %patch53 -p1 +%patch54 -p1 #needed by patch49 rm man/systemd.conf.5 From b2b6bd71799506f9a9e2778e2bed9f37a789be6f59587778ac6f4c1fc6ff8f3a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 30 Jul 2012 18:40:53 +0000 Subject: [PATCH 106/221] Accepting request 129288 from Base:System - Ensure systemd macros never fails (if systemd isn't install) (forwarded request 129285 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/129288 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=109 --- macros.systemd | 8 +++++--- systemd.changes | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/macros.systemd b/macros.systemd index 9cb43928..802380da 100644 --- a/macros.systemd +++ b/macros.systemd @@ -32,10 +32,11 @@ Requires(postun): systemd \ %service_add_pre() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ # disable migration if initial install under systemd \ +[ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : \ if [ $FIRST_ARG -eq 1 ]; then \ for service in %{?*} ; do \ sysv_service=${service%.*} \ - touch "/var/lib/systemd/migrated/$sysv_service" \ + touch "/var/lib/systemd/migrated/$sysv_service" || : \ done \ else \ for service in %{?*} ; do \ @@ -53,11 +54,12 @@ fi \ # On install, tell systemd to reload its unit files %service_add_post() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ +[ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : \ for service in %{?*} ; do \ sysv_service=${service%.*} \ if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ services_to_migrate="$services_to_migrate $sysv_service" \ - touch "/var/lib/systemd/migrated/$sysv_service" \ + touch "/var/lib/systemd/migrated/$sysv_service" || : \ fi \ done \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ @@ -87,7 +89,7 @@ if [ $FIRST_ARG -ge 1 ]; then \ else # package uninstall \ for service in %{?*} ; do \ sysv_service=${service%.*} \ - rm -f "/var/lib/systemd/migrated/$sysv_service" 2> /dev/null \ + rm -f "/var/lib/systemd/migrated/$sysv_service" 2> /dev/null || : \ done \ /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ fi \ diff --git a/systemd.changes b/systemd.changes index 2ed4bd0a..4cff8ff9 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jul 30 11:37:17 UTC 2012 - fcrozat@suse.com + +- Ensure systemd macros never fails (if systemd isn't install) + ------------------------------------------------------------------- Mon Jul 23 08:28:15 UTC 2012 - fcrozat@suse.com From 50622b176885197020114ea22cb0fb866a70172ed849fe6a4103c5e1e8867ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Sun, 26 Aug 2012 09:35:18 +0000 Subject: [PATCH 107/221] Accepting request 131610 from Base:System - Add use_localtime.patch: use /etc/localtime instead of /etc/timezone (bnc#773491) - Add support-suse-clock-sysconfig.patch: read SUSE /etc/sysconfig/clock file. - Add drop-timezone.patch: drop support for /etc/timezone, never supported on openSUSE. - Add journalctl-pager-improvement.patch: better handle output when using pager. - Add fix-enable-disable-boot-initscript.patch: support boot.* initscripts for systemctl enable /disable (bnc#746506). (forwarded request 131520 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/131610 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=110 --- drop-timezone.patch | 48 +++ fix-enable-disable-boot-initscript.patch | 44 +++ journalctl-pager-improvement.patch | 448 +++++++++++++++++++++++ support-suse-clock-sysconfig.patch | 32 ++ systemd.changes | 14 + systemd.spec | 10 + use_localtime.patch | 397 ++++++++++++++++++++ 7 files changed, 993 insertions(+) create mode 100644 drop-timezone.patch create mode 100644 fix-enable-disable-boot-initscript.patch create mode 100644 journalctl-pager-improvement.patch create mode 100644 support-suse-clock-sysconfig.patch create mode 100644 use_localtime.patch diff --git a/drop-timezone.patch b/drop-timezone.patch new file mode 100644 index 00000000..02298075 --- /dev/null +++ b/drop-timezone.patch @@ -0,0 +1,48 @@ +Index: systemd-44/src/timedate/timedated.c +=================================================================== +--- systemd-44.orig/src/timedate/timedated.c ++++ systemd-44/src/timedate/timedated.c +@@ -203,24 +203,18 @@ static int read_data(void) { + + free(t); + +- r = read_one_line_file("/etc/timezone", &tz.zone); +- if (r < 0) { +- if (r != -ENOENT) +- log_warning("Failed to read /etc/timezone: %s", strerror(-r)); +- + #if defined(TARGET_FEDORA) || defined(TARGET_SUSE) +- r = parse_env_file("/etc/sysconfig/clock", NEWLINE, ++ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, + #ifdef TARGET_FEDORA +- "ZONE", &tz.zone, ++ "ZONE", &tz.zone, + #else /* TARGET_SUSE */ +- "TIMEZONE", &tz.zone, ++ "TIMEZONE", &tz.zone, + #endif +- NULL); ++ NULL); + +- if (r < 0 && r != -ENOENT) +- log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); + #endif +- } + + have_timezone: + if (isempty(tz.zone)) { +@@ -263,12 +257,6 @@ static int write_data_timezone(void) { + if (r < 0) + return -errno; + +- if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { +- r = write_one_line_file_atomic("/etc/timezone", tz.zone); +- if (r < 0) +- return r; +- } +- + return 0; + } + diff --git a/fix-enable-disable-boot-initscript.patch b/fix-enable-disable-boot-initscript.patch new file mode 100644 index 00000000..1f4fe5cf --- /dev/null +++ b/fix-enable-disable-boot-initscript.patch @@ -0,0 +1,44 @@ +From f9d333f8d202fd853f2553ee6c3196b041ccfba5 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 23 Aug 2012 11:08:25 +0200 +Subject: [PATCH] fix support for boot prefixed initscript (bnc#746506) + +--- + src/systemctl.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/src/systemctl.c b/src/systemctl.c +index e94e024..1a98599 100644 +--- a/src/systemctl.c ++++ b/src/systemctl.c +@@ -3669,7 +3669,27 @@ static int enable_sysv_units(char **args) { + + if (!found_sysv) { + free(p); ++#if defined(TARGET_SUSE) ++ p = NULL; ++ if (!isempty(arg_root)) ++ asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); ++ else ++ asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); ++ if (!p) { ++ log_error("No memory"); ++ r = -ENOMEM; ++ goto finish; ++ } ++ p[strlen(p) - sizeof(".service") + 1] = 0; ++ found_sysv = access(p, F_OK) >= 0; ++ ++ if (!found_sysv) { ++ free(p); ++ continue; ++ } ++#else + continue; ++#endif + } + + /* Mark this entry, so that we don't try enabling it as native unit */ +-- +1.7.10.4 + diff --git a/journalctl-pager-improvement.patch b/journalctl-pager-improvement.patch new file mode 100644 index 00000000..81be11e4 --- /dev/null +++ b/journalctl-pager-improvement.patch @@ -0,0 +1,448 @@ +From 1682c4bf5b993b956b0367aedc9f0638055540f4 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Thu, 19 Jul 2012 21:12:16 +0000 +Subject: [PATCH 1/3] journalctl: fix assertion failure in ellipsize_mem() + +When showing the journal through "journalctl --no-pager", if the +prefix of the log message (i.e. the date and syslog identifier) is +less than 3 characters shorter than the width of the terminal, you +get: + +Assertion 'new_length >= 3' failed at src/shared/util.c:3859, function ellipsize_mem(). Aborting. + +because there is not enough space for the "...". This patch add the +necessary check. +--- + src/logs-show.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/logs-show.c b/src/logs-show.c +index eb9a902..72367f2 100644 +--- a/src/logs-show.c ++++ b/src/logs-show.c +@@ -230,7 +230,7 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool s + printf(": [%s blob data]\n", format_bytes(bytes, sizeof(bytes), message_len)); + } else if (message_len + n < n_columns) + printf(": %.*s\n", (int) message_len, message); +- else if (n < n_columns) { ++ else if (n < n_columns && n_columns - n - 2 >= 3) { + char *e; + + e = ellipsize_mem(message, message_len, n_columns - n - 2, 90); +-- +1.7.10.4 + + +From ee385756e10862a8bcc0e5c7a3776135af84c750 Mon Sep 17 00:00:00 2001 +From: Zbigniew Jedrzejewski-Szmek +Date: Fri, 20 Jul 2012 09:06:26 +0200 +Subject: [PATCH 2/3] journalctl: fix ellipsization with PAGER=cat + +There are other reasons for not opening the pager then the --no-pager +or --follow options (described below). If the pager is not used, +messages must be ellipsized. + +On Fri, Jul 20, 2012 at 05:42:44AM +0000, Shawn Landen wrote: +> "Pager to use when --no-pager is not given; overrides $PAGER. +> Setting this to an empty string or the value cat is equivalent to passing --no-pager." + +Conflicts: + src/journal/journalctl.c +--- + src/journal/journalctl.c | 5 +---- + src/pager.c | 17 ++++++++++------- + src/pager.h | 4 +++- + 3 files changed, 14 insertions(+), 12 deletions(-) + +diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c +index f90b2dd..3a3b043 100644 +--- a/src/journal/journalctl.c ++++ b/src/journal/journalctl.c +@@ -259,10 +259,7 @@ int main(int argc, char *argv[]) { + goto finish; + } + +- if (!arg_no_pager && !arg_follow) { +- columns(); +- pager_open(); +- } ++ have_pager = !arg_no_pager && !arg_follow && pager_open(); + + if (arg_output == OUTPUT_JSON) { + fputc('[', stdout); +diff --git a/src/pager.c b/src/pager.c +index 3fc8182..8065841 100644 +--- a/src/pager.c ++++ b/src/pager.c +@@ -44,20 +44,20 @@ _noreturn_ static void pager_fallback(void) { + _exit(EXIT_SUCCESS); + } + +-void pager_open(void) { ++bool pager_open(void) { + int fd[2]; + const char *pager; + pid_t parent_pid; + + if (pager_pid > 0) +- return; ++ return false; + + if ((pager = getenv("SYSTEMD_PAGER")) || (pager = getenv("PAGER"))) + if (!*pager || streq(pager, "cat")) +- return; ++ return false; + + if (isatty(STDOUT_FILENO) <= 0) +- return; ++ return false; + + /* Determine and cache number of columns before we spawn the + * pager so that we get the value from the actual tty */ +@@ -65,7 +65,7 @@ void pager_open(void) { + + if (pipe(fd) < 0) { + log_error("Failed to create pager pipe: %m"); +- return; ++ return false; + } + + parent_pid = getpid(); +@@ -74,7 +74,7 @@ void pager_open(void) { + if (pager_pid < 0) { + log_error("Failed to fork pager: %m"); + close_pipe(fd); +- return; ++ return false; + } + + /* In the child start the pager */ +@@ -115,10 +115,13 @@ void pager_open(void) { + } + + /* Return in the parent */ +- if (dup2(fd[1], STDOUT_FILENO) < 0) ++ if (dup2(fd[1], STDOUT_FILENO) < 0) { + log_error("Failed to duplicate pager pipe: %m"); ++ return false; ++ } + + close_pipe(fd); ++ return true; + } + + void pager_close(void) { +diff --git a/src/pager.h b/src/pager.h +index b5b4998..bd1a983 100644 +--- a/src/pager.h ++++ b/src/pager.h +@@ -22,7 +22,9 @@ + along with systemd; If not, see . + ***/ + +-void pager_open(void); ++#include ++ ++bool pager_open(void); + void pager_close(void); + + #endif +-- +1.7.10.4 + + +From ae88e07aec6280e90582703f7950468604182a4b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 17 Jul 2012 07:35:08 +0200 +Subject: [PATCH 3/3] journalctl: do not ellipsize when using pager +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If a pager is used, ellipsization is redundant — the pager does +that better by hiding the part that cannot be shown. Pager's advantage +is that the user can press → to view the hidden part of a message, +and then ← to return. + +cherry-picked from 92a1fd9e95954a557d6fe27b56f5ef1b89fc2f5e and 25277cd7fbd77e4c8b20572570aa77c7da9abcc2 +--- + src/journal/journalctl.c | 7 ++++- + src/logs-show.c | 66 ++++++++++++++++++++++++++++------------------ + src/logs-show.h | 14 +++++++--- + src/systemctl.c | 8 +++++- + 4 files changed, 64 insertions(+), 31 deletions(-) + +diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c +index 3a3b043..197af71 100644 +--- a/src/journal/journalctl.c ++++ b/src/journal/journalctl.c +@@ -198,6 +198,7 @@ int main(int argc, char *argv[]) { + sd_journal *j = NULL; + unsigned line = 0; + bool need_seek = false; ++ bool have_pager; + + log_parse_environment(); + log_open(); +@@ -268,6 +269,10 @@ int main(int argc, char *argv[]) { + + for (;;) { + for (;;) { ++ int flags = ++ arg_show_all * OUTPUT_SHOW_ALL | ++ have_pager * OUTPUT_FULL_WIDTH; ++ + if (need_seek) { + r = sd_journal_next(j); + if (r < 0) { +@@ -281,7 +286,7 @@ int main(int argc, char *argv[]) { + + line ++; + +- r = output_journal(j, arg_output, line, 0, arg_show_all); ++ r = output_journal(j, arg_output, line, 0, flags); + if (r < 0) + goto finish; + +diff --git a/src/logs-show.c b/src/logs-show.c +index 72367f2..06ba569 100644 +--- a/src/logs-show.c ++++ b/src/logs-show.c +@@ -86,7 +86,8 @@ static bool shall_print(bool show_all, char *p, size_t l) { + return true; + } + +-static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool show_all, bool monotonic_mode) { ++static int output_short(sd_journal *j, unsigned line, unsigned n_columns, ++ OutputFlags flags) { + int r; + const void *data; + size_t length; +@@ -150,7 +151,7 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool s + goto finish; + } + +- if (monotonic_mode) { ++ if (flags & OUTPUT_MONOTONIC_MODE) { + uint64_t t; + sd_id128_t boot_id; + +@@ -202,33 +203,39 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool s + n += strlen(buf); + } + +- if (hostname && shall_print(show_all, hostname, hostname_len)) { ++ if (hostname && shall_print(flags & OUTPUT_SHOW_ALL, ++ hostname, hostname_len)) { + printf(" %.*s", (int) hostname_len, hostname); + n += hostname_len + 1; + } + +- if (identifier && shall_print(show_all, identifier, identifier_len)) { ++ if (identifier && shall_print(flags & OUTPUT_SHOW_ALL, ++ identifier, identifier_len)) { + printf(" %.*s", (int) identifier_len, identifier); + n += identifier_len + 1; +- } else if (comm && shall_print(show_all, comm, comm_len)) { ++ } else if (comm && shall_print(flags & OUTPUT_SHOW_ALL, ++ comm, comm_len)) { + printf(" %.*s", (int) comm_len, comm); + n += comm_len + 1; +- } ++ } else ++ putchar(' '); + +- if (pid && shall_print(show_all, pid, pid_len)) { ++ if (pid && shall_print(flags & OUTPUT_SHOW_ALL, pid, pid_len)) { + printf("[%.*s]", (int) pid_len, pid); + n += pid_len + 2; +- } else if (fake_pid && shall_print(show_all, fake_pid, fake_pid_len)) { ++ } else if (fake_pid && shall_print(flags & OUTPUT_SHOW_ALL, ++ fake_pid, fake_pid_len)) { + printf("[%.*s]", (int) fake_pid_len, fake_pid); + n += fake_pid_len + 2; + } + +- if (show_all) ++ if (flags & OUTPUT_SHOW_ALL) + printf(": %.*s\n", (int) message_len, message); + else if (contains_unprintable(message, message_len)) { + char bytes[FORMAT_BYTES_MAX]; + printf(": [%s blob data]\n", format_bytes(bytes, sizeof(bytes), message_len)); +- } else if (message_len + n < n_columns) ++ } else if ((flags & OUTPUT_FULL_WIDTH) || ++ (message_len + n + 1 < n_columns)) + printf(": %.*s\n", (int) message_len, message); + else if (n < n_columns && n_columns - n - 2 >= 3) { + char *e; +@@ -259,15 +266,18 @@ finish: + return r; + } + +-static int output_short_realtime(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { +- return output_short(j, line, n_columns, show_all, false); ++static int output_short_realtime(sd_journal *j, unsigned line, ++ unsigned n_columns, OutputFlags flags) { ++ return output_short(j, line, n_columns, flags & ~OUTPUT_MONOTONIC_MODE); + } + +-static int output_short_monotonic(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { +- return output_short(j, line, n_columns, show_all, true); ++static int output_short_monotonic(sd_journal *j, unsigned line, ++ unsigned n_columns, OutputFlags flags) { ++ return output_short(j, line, n_columns, flags | OUTPUT_MONOTONIC_MODE); + } + +-static int output_verbose(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { ++static int output_verbose(sd_journal *j, unsigned line, ++ unsigned n_columns, OutputFlags flags) { + const void *data; + size_t length; + char *cursor; +@@ -296,7 +306,7 @@ static int output_verbose(sd_journal *j, unsigned line, unsigned n_columns, bool + free(cursor); + + SD_JOURNAL_FOREACH_DATA(j, data, length) { +- if (!show_all && (length > PRINT_THRESHOLD || ++ if (!(flags & OUTPUT_SHOW_ALL) && (length > PRINT_THRESHOLD || + contains_unprintable(data, length))) { + const char *c; + char bytes[FORMAT_BYTES_MAX]; +@@ -318,7 +328,8 @@ static int output_verbose(sd_journal *j, unsigned line, unsigned n_columns, bool + return 0; + } + +-static int output_export(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { ++static int output_export(sd_journal *j, unsigned line, ++ unsigned n_columns, OutputFlags flags) { + sd_id128_t boot_id; + char sid[33]; + int r; +@@ -424,7 +435,8 @@ static void json_escape(const char* p, size_t l) { + } + } + +-static int output_json(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { ++static int output_json(sd_journal *j, unsigned line, ++ unsigned n_columns, OutputFlags flags) { + uint64_t realtime, monotonic; + char *cursor; + const void *data; +@@ -491,7 +503,8 @@ static int output_json(sd_journal *j, unsigned line, unsigned n_columns, bool sh + return 0; + } + +-static int output_cat(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { ++static int output_cat(sd_journal *j, unsigned line, ++ unsigned n_columns, OutputFlags flags) { + const void *data; + size_t l; + int r; +@@ -512,7 +525,8 @@ static int output_cat(sd_journal *j, unsigned line, unsigned n_columns, bool sho + return 0; + } + +-static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, unsigned n_columns, bool show_all) = { ++static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, ++ unsigned n_columns, OutputFlags flags) = { + [OUTPUT_SHORT] = output_short_realtime, + [OUTPUT_SHORT_MONOTONIC] = output_short_monotonic, + [OUTPUT_VERBOSE] = output_verbose, +@@ -521,14 +535,15 @@ static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, unsign + [OUTPUT_CAT] = output_cat + }; + +-int output_journal(sd_journal *j, OutputMode mode, unsigned line, unsigned n_columns, bool show_all) { ++int output_journal(sd_journal *j, OutputMode mode, unsigned line, ++ unsigned n_columns, OutputFlags flags) { + assert(mode >= 0); + assert(mode < _OUTPUT_MODE_MAX); + + if (n_columns <= 0) + n_columns = columns(); + +- return output_funcs[mode](j, line, n_columns, show_all); ++ return output_funcs[mode](j, line, n_columns, flags); + } + + int show_journal_by_unit( +@@ -537,8 +552,7 @@ int show_journal_by_unit( + unsigned n_columns, + usec_t not_before, + unsigned how_many, +- bool show_all, +- bool follow) { ++ OutputFlags flags) { + + char *m = NULL; + sd_journal *j = NULL; +@@ -621,12 +635,12 @@ int show_journal_by_unit( + + line ++; + +- r = output_journal(j, mode, line, n_columns, show_all); ++ r = output_journal(j, mode, line, n_columns, flags); + if (r < 0) + goto finish; + } + +- if (!follow) ++ if (!(flags & OUTPUT_FOLLOW)) + break; + + r = fd_wait_for_event(fd, POLLIN, (usec_t) -1); +diff --git a/src/logs-show.h b/src/logs-show.h +index db9c7e3..e8c6b03 100644 +--- a/src/logs-show.h ++++ b/src/logs-show.h +@@ -39,7 +39,16 @@ typedef enum OutputMode { + _OUTPUT_MODE_INVALID = -1 + } OutputMode; + +-int output_journal(sd_journal *j, OutputMode mode, unsigned line, unsigned n_columns, bool show_all); ++typedef enum OutputFlags { ++ OUTPUT_SHOW_ALL = 1 << 0, ++ OUTPUT_MONOTONIC_MODE = 1 << 1, ++ OUTPUT_FOLLOW = 1 << 2, ++ OUTPUT_WARN_CUTOFF = 1 << 3, ++ OUTPUT_FULL_WIDTH = 1 << 4, ++} OutputFlags; ++ ++int output_journal(sd_journal *j, OutputMode mode, unsigned line, ++ unsigned n_columns, OutputFlags flags); + + int show_journal_by_unit( + const char *unit, +@@ -47,8 +56,7 @@ int show_journal_by_unit( + unsigned n_columns, + usec_t not_before, + unsigned how_many, +- bool show_all, +- bool follow); ++ OutputFlags flags); + + const char* output_mode_to_string(OutputMode m); + OutputMode output_mode_from_string(const char *s); +diff --git a/src/systemctl.c b/src/systemctl.c +index f51085f..e94e024 100644 +--- a/src/systemctl.c ++++ b/src/systemctl.c +@@ -2374,8 +2374,14 @@ static void print_status_info(UnitStatusInfo *i) { + } + + if (i->id && arg_transport != TRANSPORT_SSH) { ++ int flags = ++ arg_lines * OUTPUT_SHOW_ALL | ++ arg_follow * OUTPUT_FOLLOW; ++ + printf("\n"); +- show_journal_by_unit(i->id, arg_output, 0, i->inactive_exit_timestamp_monotonic, arg_lines, arg_all, arg_follow); ++ show_journal_by_unit(i->id, arg_output, 0, ++ i->inactive_exit_timestamp_monotonic, ++ arg_lines, flags); + } + + if (i->need_daemon_reload) +-- +1.7.10.4 + diff --git a/support-suse-clock-sysconfig.patch b/support-suse-clock-sysconfig.patch new file mode 100644 index 00000000..de3992a3 --- /dev/null +++ b/support-suse-clock-sysconfig.patch @@ -0,0 +1,32 @@ +From 64ddc0bfa995041196fd0b9c61756d64578f925c Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Tue, 14 Aug 2012 14:26:16 +0200 +Subject: [PATCH] timedate: add support for openSUSE version of + /etc/sysconfig/clock + +--- + src/timedate/timedated.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c +index 6a7d980..fbebc1d 100644 +--- a/src/timedate/timedated.c ++++ b/src/timedate/timedated.c +@@ -180,9 +180,13 @@ static int read_data(void) { + if (r != -ENOENT) + log_warning("Failed to read /etc/timezone: %s", strerror(-r)); + +-#ifdef TARGET_FEDORA ++#if defined(TARGET_FEDORA) || defined(TARGET_SUSE) + r = parse_env_file("/etc/sysconfig/clock", NEWLINE, ++#ifdef TARGET_FEDORA + "ZONE", &tz.zone, ++#else /* TARGET_SUSE */ ++ "TIMEZONE", &tz.zone, ++#endif + NULL); + + if (r < 0 && r != -ENOENT) +-- +1.7.10.4 + diff --git a/systemd.changes b/systemd.changes index 4cff8ff9..7b07e1cb 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Thu Aug 23 11:11:25 CEST 2012 - fcrozat@suse.com + +- Add use_localtime.patch: use /etc/localtime instead of + /etc/timezone (bnc#773491) +- Add support-suse-clock-sysconfig.patch: read SUSE + /etc/sysconfig/clock file. +- Add drop-timezone.patch: drop support for /etc/timezone, never + supported on openSUSE. +- Add journalctl-pager-improvement.patch: better handle output when + using pager. +- Add fix-enable-disable-boot-initscript.patch: support boot.* + initscripts for systemctl enable /disable (bnc#746506). + ------------------------------------------------------------------- Mon Jul 30 11:37:17 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index f5933311..90324d8c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -81,6 +81,9 @@ Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch Patch53: fastboot-forcefsck.patch +Patch56: support-suse-clock-sysconfig.patch +Patch57: drop-timezone.patch +Patch59: fix-enable-disable-boot-initscript.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -99,6 +102,8 @@ Patch50: change-terminal.patch Patch51: fix-tty-startup.patch Patch52: fix-write-user-state-file.patch Patch54: fix-analyze-exception.patch +Patch55: use_localtime.patch +Patch58: journalctl-pager-improvement.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -179,6 +184,11 @@ at boot. %patch52 -p1 %patch53 -p1 %patch54 -p1 +%patch55 -p1 +%patch56 -p1 +%patch57 -p1 +%patch58 -p1 +%patch59 -p1 #needed by patch49 rm man/systemd.conf.5 diff --git a/use_localtime.patch b/use_localtime.patch new file mode 100644 index 00000000..f078561c --- /dev/null +++ b/use_localtime.patch @@ -0,0 +1,397 @@ +unlike symlink_or_copy_atomic(), this function creates a symlink even if the +oldname and newname (from and to) are on differn't devices. (stat.st_dev) +--- + src/shared/util.c | 19 +++++++++++++++++-- + src/shared/util.h | 1 + + 2 files changed, 18 insertions(+), 2 deletions(-) + +Index: systemd-44/src/util.c +=================================================================== +--- systemd-44.orig/src/util.c ++++ systemd-44/src/util.c +@@ -5352,7 +5352,7 @@ finish: + return r; + } + +-int symlink_or_copy_atomic(const char *from, const char *to) { ++static int symlink_atomic_raw(const char *from, const char *to, bool allow_copy) { + char *t, *x; + const char *fn; + size_t k; +@@ -5381,7 +5381,14 @@ int symlink_or_copy_atomic(const char *f + + *x = 0; + +- r = symlink_or_copy(from, t); ++ if (allow_copy) ++ r = symlink_or_copy(from, t); ++ else { ++ r = symlink(from, t); ++ if (r < 0) ++ r = -errno; ++ } ++ + if (r < 0) { + unlink(t); + free(t); +@@ -5482,6 +5489,14 @@ int audit_loginuid_from_pid(pid_t pid, u + return 0; + } + ++int symlink_or_copy_atomic(const char *from, const char *to) { ++ return symlink_atomic_raw(from, to, true); ++} ++ ++int symlink_atomic(const char *from, const char *to) { ++ return symlink_atomic_raw(from, to, false); ++} ++ + bool display_is_local(const char *display) { + assert(display); + +Index: systemd-44/src/util.h +=================================================================== +--- systemd-44.orig/src/util.h ++++ systemd-44/src/util.h +@@ -448,6 +448,7 @@ int vt_disallocate(const char *name); + int copy_file(const char *from, const char *to); + int symlink_or_copy(const char *from, const char *to); + int symlink_or_copy_atomic(const char *from, const char *to); ++int symlink_atomic(const char *from, const char *to); + + int fchmod_umask(int fd, mode_t mode); + +Index: systemd-44/Makefile.am +=================================================================== +--- systemd-44.orig/Makefile.am ++++ systemd-44/Makefile.am +@@ -690,7 +690,7 @@ MANPAGES = \ + man/systemd.conf.5 \ + man/tmpfiles.d.5 \ + man/hostname.5 \ +- man/timezone.5 \ ++ man/localtime.5 \ + man/machine-id.5 \ + man/locale.conf.5 \ + man/os-release.5 \ +Index: systemd-44/man/timezone.xml +=================================================================== +--- systemd-44.orig/man/timezone.xml ++++ /dev/null +@@ -1,90 +0,0 @@ +- +- +- +- +- +- +- +- +- /etc/timezone +- systemd +- +- +- +- Developer +- Lennart +- Poettering +- lennart@poettering.net +- +- +- +- +- +- timezone +- 5 +- +- +- +- timezone +- Local time zone configuration file +- +- +- +- /etc/timezone +- +- +- +- Description +- +- The /etc/timezone file +- configures the system-wide time zone of the local +- system that is used by applications for presentation +- to the user. It should contain a single +- newline-terminated line consisting of a time zone +- identifier such as +- Europe/Berlin. The file +- /etc/localtime corresponds with +- /etc/timezone and contains the +- binary time zone data for the time zone. These files +- should always be changed simultaneously and kept in +- sync. +- +- The time zone may be overridden for individual +- programs by using the TZ environment variable. See +- environ7. +- +- +- +- History +- +- The simple configuration file format of +- /etc/timezone originates from +- Debian GNU/Linux. +- +- +- +- See Also +- +- systemd1 +- +- +- +- +Index: systemd-44/man/localtime.xml +=================================================================== +--- /dev/null ++++ systemd-44/man/localtime.xml +@@ -0,0 +1,93 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ /etc/localtime ++ systemd ++ ++ ++ ++ Developer ++ Lennart ++ Poettering ++ lennart@poettering.net ++ ++ ++ Developer ++ Shawn ++ Landden ++ shawnlandden@gmail.com ++ ++ ++ ++ ++ ++ localtime ++ 5 ++ ++ ++ ++ localtime ++ Local time zone configuration file ++ ++ ++ ++ /etc/localtime -> /usr/share/zoneinfo/… ++ ++ ++ ++ Description ++ ++ The /etc/localtime file ++ configures the system-wide time zone of the local ++ system that is used by applications for presentation ++ to the user. It should be an absolute symbolic link ++ with a destination of /usr/share/zoneinfo/, ++ fallowed by a time zone identifier such as ++ Europe/Berlin or Etc/UTC. ++ The resulting link should point to the corresponding binary ++ tzfile5 ++ time zone data for the configured time zone. ++ ++ As the time zone identifier is extracted from the name of ++ the target of /etc/localtime this file may ++ not be a normal file or hardlink. ++ ++ The time zone may be overridden for individual ++ programs by using the TZ environment variable. See ++ environ7. ++ ++ ++ ++ See Also ++ ++ tzset3 ++ localtime3 ++ systemd1 ++ ++ ++ ++ +Index: systemd-44/src/timedate/timedated.c +=================================================================== +--- systemd-44.orig/src/timedate/timedated.c ++++ systemd-44/src/timedate/timedated.c +@@ -72,6 +72,9 @@ + BUS_GENERIC_INTERFACES_LIST \ + "org.freedesktop.timedate1\0" + ++/* Must start and end with '/' */ ++#define ZONEINFO_PATH "/usr/share/zoneinfo/" ++ + const char timedate_interface[] _introspect_("timedate1") = INTERFACE; + + typedef struct TZ { +@@ -125,7 +128,7 @@ static bool valid_timezone(const char *n + if (slash) + return false; + +- t = strappend("/usr/share/zoneinfo/", name); ++ t = strappend(ZONEINFO_PATH, name); + if (!t) + return false; + +@@ -149,17 +152,17 @@ static void verify_timezone(void) { + if (!tz.zone) + return; + +- p = strappend("/usr/share/zoneinfo/", tz.zone); ++ p = strappend(ZONEINFO_PATH, tz.zone); + if (!p) { + log_error("Out of memory"); + return; + } + +- j = read_full_file("/etc/localtime", &a, &l); + k = read_full_file(p, &b, &q); +- + free(p); + ++ j = read_full_file("/etc/localtime", &a, &l); ++ + if (j < 0 || k < 0 || l != q || memcmp(a, b, l)) { + log_warning("/etc/localtime and /etc/timezone out of sync."); + free(tz.zone); +@@ -172,9 +175,36 @@ static void verify_timezone(void) { + + static int read_data(void) { + int r; ++ char *t = NULL; + + free_data(); + ++ r = readlink_malloc("/etc/localtime", &t); ++ if (r < 0) { ++ if (r == -EINVAL) ++ log_warning("/etc/localtime should be a symbolic link to a timezone data file in " ZONEINFO_PATH); ++ else ++ log_warning("Failed to get target of %s: %s", "/etc/localtime", strerror(-r)); ++ } else { ++ /* we only support the trivial relative link of (/etc/)..$ABSOLUTE */ ++ int rel_link_offset = startswith(t, "..") ? strlen("..") : 0; ++ ++ if (!startswith(t + rel_link_offset, ZONEINFO_PATH)) ++ log_warning("/etc/localtime should be a symbolic link to a timezone data file in " ZONEINFO_PATH); ++ else { ++ tz.zone = strdup(t + rel_link_offset + strlen(ZONEINFO_PATH)); ++ free(t); ++ if (!tz.zone) { ++ log_error("Out of memory"); ++ return -ENOMEM; ++ } ++ ++ goto have_timezone; ++ } ++ } ++ ++ free(t); ++ + r = read_one_line_file("/etc/timezone", &tz.zone); + if (r < 0) { + if (r != -ENOENT) +@@ -190,6 +220,7 @@ static int read_data(void) { + #endif + } + ++have_timezone: + if (isempty(tz.zone)) { + free(tz.zone); + tz.zone = NULL; +@@ -205,6 +236,7 @@ static int read_data(void) { + static int write_data_timezone(void) { + int r = 0; + char *p; ++ struct stat st; + + if (!tz.zone) { + if (unlink("/etc/timezone") < 0 && errno != ENOENT) +@@ -216,21 +248,24 @@ static int write_data_timezone(void) { + return r; + } + +- p = strappend("/usr/share/zoneinfo/", tz.zone); ++ p = strappend(ZONEINFO_PATH, tz.zone); + if (!p) { + log_error("Out of memory"); + return -ENOMEM; + } + +- r = symlink_or_copy_atomic(p, "/etc/localtime"); ++ r = symlink_atomic(p, "/etc/localtime"); ++ + free(p); + + if (r < 0) +- return r; ++ return -errno; + +- r = write_one_line_file_atomic("/etc/timezone", tz.zone); +- if (r < 0) +- return r; ++ if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { ++ r = write_one_line_file_atomic("/etc/timezone", tz.zone); ++ if (r < 0) ++ return r; ++ } + + return 0; + } From 6dd417b7106b3e73944a8618066106b25471dd7544362267cf772d68feaacb16 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 2 Nov 2012 16:30:32 +0000 Subject: [PATCH 108/221] Accepting request 139993 from Base:System - udev is GPL-2.0, the rest remains LGPL-2.1+ (bnc#787824) OBS-URL: https://build.opensuse.org/request/show/139993 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=111 --- ...splash-handling-for-password-dialogs.patch | 4 +- 0001-Reinstate-TIMEOUT-handling.patch | 130 + ...rse-support-to-detect-endianness-bug.patch | 368 - ...aplock-and-compose_table-and-kbd_rat.patch | 54 +- ...ndencies-added-when-parsing-insserv..patch | 4 +- ...sv-service-with-detected-pid-as-Rema.patch | 4 +- ...er-follow-symlinks-in-rm_rf_children.patch | 59 - ...enable-by_path-links-for-ata-devices.patch | 108 + ...ate-by-id-scsi-links-for-ATA-devices.patch | 15 + 0026-udev-netlink-null-rules.patch | 13 + 0027-udev-fix-sg-autoload-regression.patch | 12 + avoid-random-seed-cycle.patch | 109 - baselibs.conf | 3 + boot.udev | 81 + change-terminal.patch | 37 - crypt-loop-file.patch | 90 +- ...-fsck-cryptsetup-after-md-lvm-dmraid.patch | 22 +- dm-lvm-after-local-fs-pre-target.patch | 10 +- drop-timezone.patch | 48 - fastboot-forcefsck.patch | 12 +- fix-analyze-exception.patch | 29 - fix-dir-noatime-tmpfiles.patch | 41 - fix-enable-disable-boot-initscript.patch | 13 +- fix-getty-isolate.patch | 51 - fix-swap-priority.patch | 36 - fix-tty-startup.patch | 40 - fix-write-user-state-file.patch | 99 - fixppc.patch | 73 - improve-restart-behaviour.patch | 7661 ----------------- journal-bugfixes.patch | 186 - journalctl-pager-improvement.patch | 448 - logind-logout.patch | 156 - macros.systemd | 16 +- modules_on_boot.patch | 62 +- new-lsb-headers.patch | 24 +- pre_checkin.sh | 18 +- storage-after-cryptsetup.patch | 18 +- support-suse-clock-sysconfig.patch | 36 +- support-sysvinit.patch | 4 +- sysctl-modules.patch | 10 +- systemd-195.tar.xz | 3 + systemd-44.tar.xz | 3 - systemd-gtk.spec | 94 - systemd-mini-rpmlintrc | 17 + systemd-gtk.changes => systemd-mini.changes | 306 + systemd-mini.spec | 834 ++ systemd-numlock-suse.patch | 141 +- systemd-rpmlintrc | 17 +- systemd.changes | 187 + systemd.spec | 645 +- tty1.patch | 12 +- udev-root-symlink.systemd | 9 + ulimit-support.patch | 253 - use_localtime.patch | 397 - var-run-lock.patch | 97 + write_dev_root_rule | 13 + 56 files changed, 2588 insertions(+), 10644 deletions(-) create mode 100644 0001-Reinstate-TIMEOUT-handling.patch delete mode 100644 0001-add-sparse-support-to-detect-endianness-bug.patch delete mode 100644 0001-util-never-follow-symlinks-in-rm_rf_children.patch create mode 100644 0013-re-enable-by_path-links-for-ata-devices.patch create mode 100644 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch create mode 100644 0026-udev-netlink-null-rules.patch create mode 100644 0027-udev-fix-sg-autoload-regression.patch delete mode 100644 avoid-random-seed-cycle.patch create mode 100644 boot.udev delete mode 100644 change-terminal.patch delete mode 100644 drop-timezone.patch delete mode 100644 fix-analyze-exception.patch delete mode 100644 fix-dir-noatime-tmpfiles.patch delete mode 100644 fix-getty-isolate.patch delete mode 100644 fix-swap-priority.patch delete mode 100644 fix-tty-startup.patch delete mode 100644 fix-write-user-state-file.patch delete mode 100644 fixppc.patch delete mode 100644 improve-restart-behaviour.patch delete mode 100644 journal-bugfixes.patch delete mode 100644 journalctl-pager-improvement.patch delete mode 100644 logind-logout.patch create mode 100644 systemd-195.tar.xz delete mode 100644 systemd-44.tar.xz delete mode 100644 systemd-gtk.spec create mode 100644 systemd-mini-rpmlintrc rename systemd-gtk.changes => systemd-mini.changes (86%) create mode 100644 systemd-mini.spec create mode 100644 udev-root-symlink.systemd delete mode 100644 ulimit-support.patch delete mode 100644 use_localtime.patch create mode 100644 var-run-lock.patch create mode 100644 write_dev_root_rule diff --git a/0001-Add-bootsplash-handling-for-password-dialogs.patch b/0001-Add-bootsplash-handling-for-password-dialogs.patch index e4bdce2b..7338d212 100644 --- a/0001-Add-bootsplash-handling-for-password-dialogs.patch +++ b/0001-Add-bootsplash-handling-for-password-dialogs.patch @@ -8,8 +8,8 @@ splash screen to verbose when a password is asked... --- diff --git a/src/ask-password-api.c b/src/ask-password-api.c index da967ab..b89bcea 100644 ---- a/src/ask-password-api.c -+++ b/src/ask-password-api.c +--- a/src/shared/ask-password-api.c ++++ b/src/shared/ask-password-api.c @@ -62,6 +62,9 @@ int ask_password_tty( bool reset_tty = false; bool silent_mode = false; diff --git a/0001-Reinstate-TIMEOUT-handling.patch b/0001-Reinstate-TIMEOUT-handling.patch new file mode 100644 index 00000000..9e451f4b --- /dev/null +++ b/0001-Reinstate-TIMEOUT-handling.patch @@ -0,0 +1,130 @@ +Without treating events with timeouts specially some drivers would +cause a 30 seconds stall on boot: . + +I also received reports of some drivers not working at all, even +after the timeout. + +We will remove this patch when more drivers have been fixed in +the kernel (3.4?). + +This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and +57c6f8ae5f52a6e8ffc66a54966346f733dded39. +--- + +Note: this is mostly a FYI, and whether or not it makes sense +to apply this upstream depends on how big problems other report +regarding this issue. + + src/libudev-device.c | 19 +++++++++++++++++++ + src/libudev-private.h | 1 + + src/udevd.c | 13 ++++++++++--- + 4 files changed, 32 insertions(+), 3 deletions(-) + +Index: systemd-190/src/libudev/libudev-device.c +=================================================================== +--- systemd-190.orig/src/libudev/libudev-device.c ++++ systemd-190/src/libudev/libudev-device.c +@@ -68,6 +68,7 @@ struct udev_device { + struct udev_list tags_list; + unsigned long long int seqnum; + unsigned long long int usec_initialized; ++ int timeout; + int devlink_priority; + int refcount; + dev_t devnum; +@@ -162,6 +163,21 @@ static int udev_device_set_devnum(struct + return 0; + } + ++int udev_device_get_timeout(struct udev_device *udev_device) ++{ ++ return udev_device->timeout; ++} ++ ++static int udev_device_set_timeout(struct udev_device *udev_device, int timeout) ++{ ++ char num[32]; ++ ++ udev_device->timeout = timeout; ++ snprintf(num, sizeof(num), "%u", timeout); ++ udev_device_add_property(udev_device, "TIMEOUT", num); ++ return 0; ++} ++ + const char *udev_device_get_devpath_old(struct udev_device *udev_device) + { + return udev_device->devpath_old; +@@ -418,6 +434,8 @@ void udev_device_add_property_from_strin + udev_device_set_devpath_old(udev_device, &property[12]); + } else if (startswith(property, "SEQNUM=")) { + udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10)); ++ } else if (startswith(property, "TIMEOUT=")) { ++ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10)); + } else if (startswith(property, "IFINDEX=")) { + udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10)); + } else if (startswith(property, "DEVMODE=")) { +@@ -605,6 +623,7 @@ struct udev_device *udev_device_new(stru + udev_list_init(udev, &udev_device->sysattr_value_list, true); + udev_list_init(udev, &udev_device->sysattr_list, false); + udev_list_init(udev, &udev_device->tags_list, true); ++ udev_device->timeout = -1; + udev_device->watch_handle = -1; + /* copy global properties */ + udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev)) +Index: systemd-190/src/libudev/libudev-private.h +=================================================================== +--- systemd-190.orig/src/libudev/libudev-private.h ++++ systemd-190/src/libudev/libudev-private.h +@@ -65,6 +65,7 @@ const char *udev_device_get_id_filename( + void udev_device_set_is_initialized(struct udev_device *udev_device); + int udev_device_add_tag(struct udev_device *udev_device, const char *tag); + void udev_device_cleanup_tags_list(struct udev_device *udev_device); ++int udev_device_get_timeout(struct udev_device *udev_device); + unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device); + void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized); + int udev_device_get_devlink_priority(struct udev_device *udev_device); +Index: systemd-190/src/udev/udevd.c +=================================================================== +--- systemd-190.orig/src/udev/udevd.c ++++ systemd-190/src/udev/udevd.c +@@ -387,7 +387,7 @@ out: + } + } + +-static void event_run(struct event *event) ++static void event_run(struct event *event, bool force) + { + struct udev_list_node *loop; + +@@ -413,7 +413,7 @@ static void event_run(struct event *even + return; + } + +- if (children >= children_max) { ++ if (!force && children >= children_max) { + if (children_max > 1) + log_debug("maximum number (%i) of children reached\n", children); + return; +@@ -447,6 +447,13 @@ static int event_queue_insert(struct ude + + event->state = EVENT_QUEUED; + udev_list_node_append(&event->node, &event_list); ++ ++ /* run all events with a timeout set immediately */ ++ if (udev_device_get_timeout(dev) > 0) { ++ event_run(event, true); ++ return 0; ++ } ++ + return 0; + } + +@@ -552,7 +559,7 @@ static void event_queue_start(struct ude + if (is_devpath_busy(event)) + continue; + +- event_run(event); ++ event_run(event, false); + } + } + diff --git a/0001-add-sparse-support-to-detect-endianness-bug.patch b/0001-add-sparse-support-to-detect-endianness-bug.patch deleted file mode 100644 index d4c084d2..00000000 --- a/0001-add-sparse-support-to-detect-endianness-bug.patch +++ /dev/null @@ -1,368 +0,0 @@ -From 7644bc8665f39a6428049e81e8c04e4d755e55a1 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Fri, 16 Mar 2012 11:59:04 +0100 -Subject: [PATCH] add sparse support to detect endianness bug - -le16/32/64_t type should be used when storing little-endian value - -header to integrate with sparse from Josh Triplett ---- - src/journal/journal-def.h | 74 +++++++++++++++++----------------- - src/journal/journal-file.c | 15 ++++--- - src/journal/journal-internal.h | 2 +- - src/journal/journald.c | 5 +- - src/journal/sd-journal.c | 10 +++-- - src/journal/sparse-endian.h | 87 ++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 142 insertions(+), 51 deletions(-) - create mode 100644 src/journal/sparse-endian.h - -diff --git a/src/journal/journal-def.h b/src/journal/journal-def.h -index 964e0c2..9cb8051 100644 ---- a/src/journal/journal-def.h -+++ b/src/journal/journal-def.h -@@ -22,7 +22,7 @@ - along with systemd; If not, see . - ***/ - --#include -+#include "sparse-endian.h" - - #include - -@@ -60,48 +60,48 @@ _packed_ struct ObjectHeader { - uint8_t type; - uint8_t flags; - uint8_t reserved[6]; -- uint64_t size; -+ le64_t size; - uint8_t payload[]; - }; - - _packed_ struct DataObject { - ObjectHeader object; -- uint64_t hash; -- uint64_t next_hash_offset; -- uint64_t next_field_offset; -- uint64_t entry_offset; /* the first array entry we store inline */ -- uint64_t entry_array_offset; -- uint64_t n_entries; -+ le64_t hash; -+ le64_t next_hash_offset; -+ le64_t next_field_offset; -+ le64_t entry_offset; /* the first array entry we store inline */ -+ le64_t entry_array_offset; -+ le64_t n_entries; - uint8_t payload[]; - }; - - _packed_ struct FieldObject { - ObjectHeader object; -- uint64_t hash; -- uint64_t next_hash_offset; -- uint64_t head_data_offset; -- uint64_t tail_data_offset; -+ le64_t hash; -+ le64_t next_hash_offset; -+ le64_t head_data_offset; -+ le64_t tail_data_offset; - uint8_t payload[]; - }; - - _packed_ struct EntryItem { -- uint64_t object_offset; -- uint64_t hash; -+ le64_t object_offset; -+ le64_t hash; - }; - - _packed_ struct EntryObject { - ObjectHeader object; -- uint64_t seqnum; -- uint64_t realtime; -- uint64_t monotonic; -+ le64_t seqnum; -+ le64_t realtime; -+ le64_t monotonic; - sd_id128_t boot_id; -- uint64_t xor_hash; -+ le64_t xor_hash; - EntryItem items[]; - }; - - _packed_ struct HashItem { -- uint64_t head_hash_offset; -- uint64_t tail_hash_offset; -+ le64_t head_hash_offset; -+ le64_t tail_hash_offset; - }; - - _packed_ struct HashTableObject { -@@ -111,8 +111,8 @@ _packed_ struct HashTableObject { - - _packed_ struct EntryArrayObject { - ObjectHeader object; -- uint64_t next_entry_array_offset; -- uint64_t items[]; -+ le64_t next_entry_array_offset; -+ le64_t items[]; - }; - - union Object { -@@ -145,21 +145,21 @@ _packed_ struct Header { - sd_id128_t machine_id; - sd_id128_t boot_id; - sd_id128_t seqnum_id; -- uint64_t arena_offset; -- uint64_t arena_size; -- uint64_t data_hash_table_offset; /* for looking up data objects */ -- uint64_t data_hash_table_size; -- uint64_t field_hash_table_offset; /* for looking up field objects */ -- uint64_t field_hash_table_size; -- uint64_t tail_object_offset; -- uint64_t n_objects; -- uint64_t n_entries; -- uint64_t seqnum; -- uint64_t first_seqnum; -- uint64_t entry_array_offset; -- uint64_t head_entry_realtime; -- uint64_t tail_entry_realtime; -- uint64_t tail_entry_monotonic; -+ le64_t arena_offset; -+ le64_t arena_size; -+ le64_t data_hash_table_offset; /* for looking up data objects */ -+ le64_t data_hash_table_size; -+ le64_t field_hash_table_offset; /* for looking up field objects */ -+ le64_t field_hash_table_size; -+ le64_t tail_object_offset; -+ le64_t n_objects; -+ le64_t n_entries; -+ le64_t seqnum; -+ le64_t first_seqnum; -+ le64_t entry_array_offset; -+ le64_t head_entry_realtime; -+ le64_t tail_entry_realtime; -+ le64_t tail_entry_monotonic; - }; - - #endif -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 474dd5c..e803cec 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -793,8 +793,8 @@ static uint64_t journal_file_entry_array_n_items(Object *o) { - } - - static int link_entry_into_array(JournalFile *f, -- uint64_t *first, -- uint64_t *idx, -+ le64_t *first, -+ le64_t *idx, - uint64_t p) { - int r; - uint64_t n = 0, ap = 0, q, i, a, hidx; -@@ -857,9 +857,9 @@ static int link_entry_into_array(JournalFile *f, - } - - static int link_entry_into_array_plus_one(JournalFile *f, -- uint64_t *extra, -- uint64_t *first, -- uint64_t *idx, -+ le64_t *extra, -+ le64_t *first, -+ le64_t *idx, - uint64_t p) { - - int r; -@@ -873,7 +873,7 @@ static int link_entry_into_array_plus_one(JournalFile *f, - if (*idx == 0) - *extra = htole64(p); - else { -- uint64_t i; -+ le64_t i; - - i = htole64(le64toh(*idx) - 1); - r = link_entry_into_array(f, first, &i, p); -@@ -2141,7 +2141,8 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 - items = alloca(sizeof(EntryItem) * n); - - for (i = 0; i < n; i++) { -- uint64_t le_hash, l, h; -+ uint64_t l, h; -+ le64_t le_hash; - size_t t; - void *data; - Object *u; -diff --git a/src/journal/journal-internal.h b/src/journal/journal-internal.h -index e5914bf..17f1d31 100644 ---- a/src/journal/journal-internal.h -+++ b/src/journal/journal-internal.h -@@ -35,7 +35,7 @@ typedef struct Match Match; - struct Match { - char *data; - size_t size; -- uint64_t le_hash; -+ le64_t le_hash; - - LIST_FIELDS(Match, matches); - }; -diff --git a/src/journal/journald.c b/src/journal/journald.c -index baad3ab..ebb4275 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -1251,6 +1251,7 @@ static void process_native_message( - p = e + 1; - continue; - } else { -+ le64_t l_le; - uint64_t l; - char *k; - -@@ -1259,8 +1260,8 @@ static void process_native_message( - break; - } - -- memcpy(&l, e + 1, sizeof(uint64_t)); -- l = le64toh(l); -+ memcpy(&l_le, e + 1, sizeof(uint64_t)); -+ l = le64toh(l_le); - - if (remaining < e - p + 1 + sizeof(uint64_t) + l + 1 || - e[1+sizeof(uint64_t)+l] != '\n') { -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 86ac267..e9cd26e 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -108,7 +108,7 @@ static int same_field(const void *_a, size_t s, const void *_b, size_t t) { - - _public_ int sd_journal_add_match(sd_journal *j, const void *data, size_t size) { - Match *m, *after = NULL; -- uint64_t le_hash; -+ le64_t le_hash; - - if (!j) - return -EINVAL; -@@ -356,7 +356,7 @@ static int find_location(sd_journal *j, JournalFile *f, direction_t direction, O - Object *c, *d; - uint64_t cp, dp; - -- r = journal_file_find_data_object_with_hash(f, m->data, m->size, m->le_hash, &d, &dp); -+ r = journal_file_find_data_object_with_hash(f, m->data, m->size, le64toh(m->le_hash), &d, &dp); - if (r <= 0) - return r; - -@@ -1349,7 +1349,8 @@ _public_ int sd_journal_get_data(sd_journal *j, const char *field, const void ** - - n = journal_file_entry_n_items(o); - for (i = 0; i < n; i++) { -- uint64_t p, l, le_hash; -+ uint64_t p, l; -+ le64_t le_hash; - size_t t; - - p = le64toh(o->entry.items[i].object_offset); -@@ -1410,7 +1411,8 @@ _public_ int sd_journal_get_data(sd_journal *j, const char *field, const void ** - - _public_ int sd_journal_enumerate_data(sd_journal *j, const void **data, size_t *size) { - JournalFile *f; -- uint64_t p, l, n, le_hash; -+ uint64_t p, l, n; -+ le64_t le_hash; - int r; - Object *o; - size_t t; -diff --git a/src/journal/sparse-endian.h b/src/journal/sparse-endian.h -new file mode 100644 -index 0000000..eb4dbf3 ---- /dev/null -+++ b/src/journal/sparse-endian.h -@@ -0,0 +1,87 @@ -+/* Copyright (c) 2012 Josh Triplett -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to -+ * deal in the Software without restriction, including without limitation the -+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -+ * IN THE SOFTWARE. -+ */ -+#ifndef SPARSE_ENDIAN_H -+#define SPARSE_ENDIAN_H -+ -+#include -+#include -+ -+#ifdef __CHECKER__ -+#define __bitwise __attribute__((bitwise)) -+#define __force __attribute__((force)) -+#else -+#define __bitwise -+#define __force -+#endif -+ -+typedef uint16_t __bitwise le16_t; -+typedef uint16_t __bitwise be16_t; -+typedef uint32_t __bitwise le32_t; -+typedef uint32_t __bitwise be32_t; -+typedef uint64_t __bitwise le64_t; -+typedef uint64_t __bitwise be64_t; -+ -+#undef htobe16 -+#undef htole16 -+#undef be16toh -+#undef le16toh -+#undef htobe32 -+#undef htole32 -+#undef be32toh -+#undef le32toh -+#undef htobe64 -+#undef htole64 -+#undef be64toh -+#undef le64toh -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+#define bswap_16_on_le(x) __bswap_16(x) -+#define bswap_32_on_le(x) __bswap_32(x) -+#define bswap_64_on_le(x) __bswap_64(x) -+#define bswap_16_on_be(x) (x) -+#define bswap_32_on_be(x) (x) -+#define bswap_64_on_be(x) (x) -+#elif __BYTE_ORDER == __BIG_ENDIAN -+#define bswap_16_on_le(x) (x) -+#define bswap_32_on_le(x) (x) -+#define bswap_64_on_le(x) (x) -+#define bswap_16_on_be(x) __bswap_16(x) -+#define bswap_32_on_be(x) __bswap_32(x) -+#define bswap_64_on_be(x) __bswap_64(x) -+#endif -+ -+static inline le16_t htole16(uint16_t value) { return (le16_t __force) bswap_16_on_be(value); } -+static inline le32_t htole32(uint32_t value) { return (le32_t __force) bswap_32_on_be(value); } -+static inline le64_t htole64(uint64_t value) { return (le64_t __force) bswap_64_on_be(value); } -+ -+static inline be16_t htobe16(uint16_t value) { return (be16_t __force) bswap_16_on_le(value); } -+static inline be32_t htobe32(uint32_t value) { return (be32_t __force) bswap_32_on_le(value); } -+static inline be64_t htobe64(uint64_t value) { return (be64_t __force) bswap_64_on_le(value); } -+ -+static inline uint16_t le16toh(le16_t value) { return bswap_16_on_be((uint16_t __force)value); } -+static inline uint32_t le32toh(le32_t value) { return bswap_32_on_be((uint32_t __force)value); } -+static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __force)value); } -+ -+static inline uint16_t be16toh(be16_t value) { return bswap_16_on_le((uint16_t __force)value); } -+static inline uint32_t be32toh(be32_t value) { return bswap_32_on_le((uint32_t __force)value); } -+static inline uint64_t be64toh(be64_t value) { return bswap_64_on_le((uint64_t __force)value); } -+ -+#endif /* SPARSE_ENDIAN_H */ --- -1.7.7 - diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch index af4e4fb0..8376c34c 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -7,10 +7,10 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 121 insertions(+), 3 deletions(-) -Index: systemd-37/src/vconsole-setup.c +Index: systemd-189/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-37.orig/src/vconsole/vconsole-setup.c -+++ systemd-37/src/vconsole/vconsole-setup.c +--- systemd-189.orig/src/vconsole/vconsole-setup.c ++++ systemd-189/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "log.h" #include "macro.h" @@ -19,7 +19,7 @@ Index: systemd-37/src/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -79,8 +80,8 @@ +@@ -99,8 +100,8 @@ static int enable_utf8(int fd) { return r; } @@ -30,7 +30,7 @@ Index: systemd-37/src/vconsole-setup.c int i = 0; pid_t pid; -@@ -99,6 +100,8 @@ +@@ -119,6 +120,8 @@ static int load_keymap(const char *vc, c args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -38,8 +38,8 @@ Index: systemd-37/src/vconsole-setup.c + args[i++] = "disable.capslock"; args[i++] = NULL; - if ((pid = fork()) < 0) { -@@ -150,6 +153,101 @@ + pid = fork(); +@@ -172,6 +175,101 @@ static int load_font(const char *vc, con return 0; } @@ -141,7 +141,7 @@ Index: systemd-37/src/vconsole-setup.c int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -163,8 +261,16 @@ +@@ -185,8 +283,16 @@ int main(int argc, char **argv) { #if defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) char *vc_keytable = NULL; #endif @@ -158,29 +158,26 @@ Index: systemd-37/src/vconsole-setup.c int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -265,6 +371,10 @@ - #elif defined(TARGET_SUSE) - if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, - "KEYTABLE", &vc_keymap, -+ "KBD_DELAY", &vc_kbd_delay, -+ "KBD_RATE", &vc_kbd_rate, -+ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "COMPOSETABLE", &vc_compose_table, - NULL)) < 0) { - - if (r != -ENOENT) -@@ -280,6 +390,7 @@ - if (r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); +@@ -281,10 +387,15 @@ int main(int argc, char **argv) { + free(vc_keymap); + vc_keymap = t; } + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; - #elif defined(TARGET_ARCH) - if ((r = parse_env_file("/etc/rc.conf", NEWLINE, -@@ -436,7 +547,11 @@ - if (!utf8) + #elif defined(TARGET_SUSE) + r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, + "KEYTABLE", &vc_keymap, ++ "KBD_DELAY", &vc_kbd_delay, ++ "KBD_RATE", &vc_kbd_rate, ++ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); +@@ -443,7 +554,11 @@ int main(int argc, char **argv) { disable_utf8(fd); + - if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && + if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +#ifdef TARGET_SUSE @@ -190,7 +187,7 @@ Index: systemd-37/src/vconsole-setup.c load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -444,6 +559,14 @@ +@@ -451,6 +566,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -205,7 +202,7 @@ Index: systemd-37/src/vconsole-setup.c if (font_pid > 0) wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -@@ -451,6 +574,12 @@ +@@ -458,6 +581,12 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); @@ -218,4 +215,3 @@ Index: systemd-37/src/vconsole-setup.c if (fd >= 0) close_nointr_nofail(fd); -Only in new/src/vconsole: vconsole-setup.c.orig diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch index 67197942..36ca5a76 100644 --- a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch +++ b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -9,8 +9,8 @@ Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf Index: systemd-41/src/service.c =================================================================== ---- systemd-41.orig/src/service.c -+++ systemd-41/src/service.c +--- systemd-41.orig/src/core/service.c ++++ systemd-41/src/core/service.c @@ -3210,23 +3210,30 @@ static void sysv_facility_in_insserv_con Unit *u; if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) diff --git a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch index 3f1770f1..eebd73f5 100644 --- a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch +++ b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch @@ -14,8 +14,8 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 Index: systemd-37/src/service.c =================================================================== ---- systemd-37.orig/src/service.c -+++ systemd-37/src/service.c +--- systemd-37.orig/src/core/service.c ++++ systemd-37/src/core/service.c @@ -2014,8 +2014,13 @@ static void service_enter_running(Servic cgroup_ok = cgroup_good(s); diff --git a/0001-util-never-follow-symlinks-in-rm_rf_children.patch b/0001-util-never-follow-symlinks-in-rm_rf_children.patch deleted file mode 100644 index 38579dee..00000000 --- a/0001-util-never-follow-symlinks-in-rm_rf_children.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 5ebff5337594d690b322078c512eb222d34aaa82 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 2 Mar 2012 10:39:10 +0100 -Subject: [PATCH] util: never follow symlinks in rm_rf_children() - -The function checks if the entry is a directory before recursing, but -there is a window between the check and the open, during which the -directory could be replaced with a symlink. - -CVE-2012-1174 -https://bugzilla.redhat.com/show_bug.cgi?id=803358 ---- - src/util.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/util.c b/src/util.c -index 20cbc2b..dfc1dc6 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) { - if (is_dir) { - int subdir_fd; - -- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) { -+ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); -+ if (subdir_fd < 0) { - if (ret == 0 && errno != ENOENT) - ret = -errno; - continue; --- -1.7.7 - -From c9d8629baa09f853fbcc44972c9748e70562270c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 Mar 2012 01:43:36 +0100 -Subject: [PATCH] logind: extend comment about X11 socket symlink - ---- - src/login/logind-session.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/src/login/logind-session.c b/src/login/logind-session.c -index af9c12d..4e0af86 100644 ---- a/src/login/logind-session.c -+++ b/src/login/logind-session.c -@@ -391,6 +391,10 @@ static int session_link_x11_socket(Session *s) { - return -ENOENT; - } - -+ /* Note that this cannot be in a subdir to avoid -+ * vulnerabilities since we are privileged but the runtime -+ * path is owned by the user */ -+ - t = strappend(s->user->runtime_path, "/X11-display"); - if (!t) { - log_error("Out of memory"); --- -1.7.7 - diff --git a/0013-re-enable-by_path-links-for-ata-devices.patch b/0013-re-enable-by_path-links-for-ata-devices.patch new file mode 100644 index 00000000..41242f3b --- /dev/null +++ b/0013-re-enable-by_path-links-for-ata-devices.patch @@ -0,0 +1,108 @@ +Index: udev-182/src/udev-builtin-path_id.c +=================================================================== +--- udev-182.orig/src/udev/udev-builtin-path_id.c ++++ udev-182/src/udev/udev-builtin-path_id.c +@@ -286,6 +286,85 @@ out: + return hostdev; + } + ++static struct udev_device *handle_ata(struct udev_device *parent, char **path) ++{ ++ struct udev_device *hostdev; ++ int host, bus, target, lun; ++ const char *name; ++ char *base; ++ char *pos; ++ DIR *dir; ++ struct dirent *dent; ++ int basenum, len; ++ ++ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); ++ if (hostdev == NULL) ++ return NULL; ++ ++ name = udev_device_get_sysname(parent); ++ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) ++ return NULL; ++ ++ /* rebase ata offset to get the local relative number */ ++ basenum = -1; ++ base = strdup(udev_device_get_syspath(hostdev)); ++ if (base == NULL) ++ return NULL; ++ pos = strrchr(base, '/'); ++ if (pos == NULL) { ++ parent = NULL; ++ goto out; ++ } ++ pos[0] = '\0'; ++ len = strlen(base) - 5; ++ if (len <= 0) { ++ parent = NULL; ++ goto out; ++ } ++ base[len] = '\0'; ++ dir = opendir(base); ++ if (dir == NULL) { ++ parent = NULL; ++ goto out; ++ } ++ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { ++ char *rest; ++ int i; ++ ++ if (dent->d_name[0] == '.') ++ continue; ++ if (dent->d_type != DT_DIR && dent->d_type != DT_LNK) ++ continue; ++ if (strncmp(dent->d_name, "ata", 3) != 0) ++ continue; ++ i = strtoul(&dent->d_name[3], &rest, 10); ++ ++ /* ata devices start with 1, so decrease by 1 if i is bigger then 0 */ ++ if (i > 0) ++ i--; ++ if (rest[0] != '\0') ++ continue; ++ /* ++ * find the smallest number; the host really needs to export its ++ * own instance number per parent device; relying on the global host ++ * enumeration and plainly rebasing the numbers sounds unreliable ++ */ ++ if (basenum == -1 || i < basenum) ++ basenum = i; ++ } ++ closedir(dir); ++ if (basenum == -1) { ++ parent = NULL; ++ goto out; ++ } ++ host -= basenum; ++ ++ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun); ++out: ++ free(base); ++ return hostdev; ++} ++ + static struct udev_device *handle_scsi(struct udev_device *parent, char **path) + { + const char *devtype; +@@ -322,16 +401,8 @@ static struct udev_device *handle_scsi(s + goto out; + } + +- /* +- * We do not support the ATA transport class, it creates duplicated link +- * names as the fake SCSI host adapters are all separated, they are all +- * re-based as host == 0. ATA should just stop faking two duplicated +- * hierarchies for a single topology and leave the SCSI stuff alone; +- * until that happens, there are no by-path/ links for ATA devices behind +- * an ATA transport class. +- */ + if (strstr(name, "/ata") != NULL) { +- parent = NULL; ++ parent = handle_ata(parent, path); + goto out; + } + diff --git a/0014-rules-create-by-id-scsi-links-for-ATA-devices.patch b/0014-rules-create-by-id-scsi-links-for-ATA-devices.patch new file mode 100644 index 00000000..240d8200 --- /dev/null +++ b/0014-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -0,0 +1,15 @@ +Index: udev-182/rules/60-persistent-storage.rules +=================================================================== +--- udev-182.orig/rules/60-persistent-storage.rules ++++ udev-182/rules/60-persistent-storage.rules +@@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", + KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" + KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" + ++# scsi compat links for ATA devices ++KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" ++KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" ++ + # firewire + KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" + KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" diff --git a/0026-udev-netlink-null-rules.patch b/0026-udev-netlink-null-rules.patch new file mode 100644 index 00000000..c0b7d44a --- /dev/null +++ b/0026-udev-netlink-null-rules.patch @@ -0,0 +1,13 @@ +Index: udev-182/src/udevd.c +=================================================================== +--- udev-182.orig/src/udev/udevd.c ++++ udev-182/src/udev/udevd.c +@@ -1683,6 +1683,8 @@ int main(int argc, char *argv[]) + dev = udev_monitor_receive_device(monitor); + if (dev != NULL) { + udev_device_set_usec_initialized(dev, now_usec()); ++ if (rules == NULL) ++ rules = udev_rules_new(udev, resolve_names); + if (event_queue_insert(dev) < 0) + udev_device_unref(dev); + } diff --git a/0027-udev-fix-sg-autoload-regression.patch b/0027-udev-fix-sg-autoload-regression.patch new file mode 100644 index 00000000..642f4faf --- /dev/null +++ b/0027-udev-fix-sg-autoload-regression.patch @@ -0,0 +1,12 @@ +Index: systemd-190/rules/80-drivers.rules +=================================================================== +--- systemd-190.orig/rules/80-drivers.rules ++++ systemd-190/rules/80-drivers.rules +@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}== + SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", IMPORT{builtin}="kmod load tifm_ms" + SUBSYSTEM=="memstick", IMPORT{builtin}="kmod load ms_block mspro_block" + SUBSYSTEM=="i2o", IMPORT{builtin}="kmod load i2o_block" ++SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", IMPORT{builtin}="kmod load sg" + SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev" + + LABEL="drivers_end" diff --git a/avoid-random-seed-cycle.patch b/avoid-random-seed-cycle.patch deleted file mode 100644 index daada87f..00000000 --- a/avoid-random-seed-cycle.patch +++ /dev/null @@ -1,109 +0,0 @@ - -Rather than ordering systemd-random-seed-load.service after local-fs.target, -start it by path-activation. - -We need write access to the seed, so we order the path unit after -remount-rootfs.service (in case /var is on the root fs). - -A better solution might be to introduce PathIsWritable=, but that is not -necessary in order to solve the problem, and I don't know of any other -usecases for it. - -Cc: Frederic Crozat -Cc: Michal Schmidt ---- - -This is my second attempt at solving this problem. The first one had -some issues as pointed out by Frederic and Michael. - - Makefile.am | 7 +++++-- - TODO | 2 -- - units/.gitignore | 1 + - units/systemd-random-seed-load.path.in | 18 ++++++++++++++++++ - units/systemd-random-seed-load.service.in | 3 +-- - 5 files changed, 25 insertions(+), 6 deletions(-) - create mode 100644 units/systemd-random-seed-load.path.in - -diff -urB systemd-38/Makefile.am new/Makefile.am ---- systemd-38/Makefile.am 2012-01-11 04:01:36.734404653 +0100 -+++ new/Makefile.am 2012-01-18 09:53:12.763115731 +0100 -@@ -1530,11 +1530,14 @@ - - nodist_systemunit_DATA += \ - units/systemd-random-seed-save.service \ -- units/systemd-random-seed-load.service -+ units/systemd-random-seed-load.service \ -+ units/systemd-random-seed-load.path -+ - - EXTRA_DIST += \ - units/systemd-random-seed-save.service.in \ -- units/systemd-random-seed-load.service.in -+ units/systemd-random-seed-load.service.in \ -+ units/systemd-random-seed-load.path.in - - systemd_random_seed_SOURCES = \ - src/random-seed.c -@@ -1550,8 +1553,8 @@ - rm -f systemd-random-seed-save.service && \ - $(LN_S) ../systemd-random-seed-save.service systemd-random-seed-save.service ) - ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ -- rm -f systemd-random-seed-load.service && \ -- $(LN_S) ../systemd-random-seed-load.service systemd-random-seed-load.service ) -+ rm -f systemd-random-seed-load.path && \ -+ $(LN_S) ../systemd-random-seed-load.path systemd-random-seed-load.path ) - - INSTALL_DATA_HOOKS += \ - randomseed-install-data-hook -@@ -2052,6 +2055,7 @@ - -e 's,@exec_prefix\@,$(exec_prefix),g' \ - -e 's,@libdir\@,$(libdir),g' \ - -e 's,@includedir\@,$(includedir),g' \ -+ -e 's,@localstatedir\@,$(localstatedir),g' \ - < $< > $@ || rm $@ - - units/%: units/%.in Makefile -diff --git a/units/systemd-random-seed-load.path.in b/units/systemd-random-seed-load.path.in -new file mode 100644 -index 0000000..614c1d4 ---- /dev/null -+++ b/units/systemd-random-seed-load.path.in -@@ -0,0 +1,18 @@ -+# This file is part of systemd. -+# -+# systemd 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. -+ -+[Unit] -+Description=Random Seed -+DefaultDependencies=no -+Conflicts=shutdown.target -+Before=basic.target shutdown.target -+# in case the seed is on the rootfs, we must -+# wait for the rootfs to be remonuted rw -+After=remount-rootfs.service -+ -+[Path] -+PathExists=@localstatedir@/lib/random-seed -diff --git a/units/systemd-random-seed-load.service.in b/units/systemd-random-seed-load.service.in -index a2b6a55..2bcf1aa 100644 ---- a/units/systemd-random-seed-load.service.in -+++ b/units/systemd-random-seed-load.service.in -@@ -8,9 +8,8 @@ - [Unit] - Description=Load Random Seed - DefaultDependencies=no --Wants=local-fs.target - Conflicts=shutdown.target --After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target -+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-random-seed-load.path - Before=sysinit.target shutdown.target - - [Service] --- -1.7.8 - - - diff --git a/baselibs.conf b/baselibs.conf index e0865a24..ea8c7e15 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,3 +1,6 @@ systemd supplements "packageand(systemd:pam-)" -/lib/systemd/system/ +libudev0 +libgudev-1_0-0 + diff --git a/boot.udev b/boot.udev new file mode 100644 index 00000000..82ea2399 --- /dev/null +++ b/boot.udev @@ -0,0 +1,81 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: boot.udev +# Required-Start: +# Required-Stop: +# Should-Start: +# Should-Stop: +# Default-Start: B +# Default-Stop: +# Short-Description: manage /dev and kernel device-events +# Description: udevd daemon to manage /dev and kernel device events +### END INIT INFO + +. /etc/rc.status + +PATH="/sbin:/bin" +udev_timeout=180 + +case "$1" in + start) + # create /dev/root symlink with dynamic rule + if [ -x /lib/udev/write_dev_root_rule ]; then + /lib/udev/write_dev_root_rule + fi + + # start udevd + echo -n "Starting udevd: " + /sbin/udevd --daemon + if [ $? -ne 0 ]; then + rc_status -v + rc_exit + fi + rc_status -v + + # trigger events for all devices + echo -n "Loading drivers, configuring devices: " + /sbin/udevadm trigger --type=subsystems --action=add + /sbin/udevadm trigger --type=devices --action=add + + # wait for events to finish + /sbin/udevadm settle --timeout=$udev_timeout + rc_status -v + ;; + stop) + echo -n "Stopping udevd: " + killproc /sbin/udevd + rc_status -v + ;; + restart) + echo -n "Restarting udevd: " + killproc /sbin/udevd + /sbin/udevd --daemon + rc_status -v + ;; + status) + echo -n "Checking for udevd: " + checkproc /sbin/udevd + rc_status -v + ;; + reload) + echo -n "Reloading udev rules: " + /sbin/udevadm control --reload-rules + rc_status -v + ;; + force-reload) + echo -n "Restarting udev and reconfiguring all devices: " + killproc /sbin/udevd + rm -rf /dev/.udev /dev/disk + root_symlink_rule + /sbin/udevd --daemon + /sbin/udevadm trigger --action=add + /sbin/udevadm settle --timeout=$udev_timeout + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart|status|reload|force-reload}" + exit 1 + ;; +esac +rc_exit diff --git a/change-terminal.patch b/change-terminal.patch deleted file mode 100644 index 93d877c0..00000000 --- a/change-terminal.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 1505a61772a6e697f2aabdbb0e827a88b0d7ee6b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 22 Apr 2012 02:45:39 +0200 -Subject: [PATCH] default to v102 everywhere, instead of vt100, to synchronize - with agetty - ---- - src/util.c | 2 +- - units/serial-getty@.service.m4 | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-44/src/util.c -=================================================================== ---- systemd-44.orig/src/util.c -+++ systemd-44/src/util.c -@@ -4425,7 +4425,7 @@ bool tty_is_vc_resolve(const char *tty) - const char *default_term_for_tty(const char *tty) { - assert(tty); - -- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt100"; -+ return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102"; - } - - bool dirent_is_file(const struct dirent *de) { -Index: systemd-44/units/serial-getty@.service.m4 -=================================================================== ---- systemd-44.orig/units/serial-getty@.service.m4 -+++ systemd-44/units/serial-getty@.service.m4 -@@ -35,7 +35,7 @@ Before=getty.target - IgnoreOnIsolate=yes - - [Service] --Environment=TERM=vt100 -+Environment=TERM=vt102 - ExecStart=-/sbin/agetty -s %I 115200,38400,9600 - Restart=always - RestartSec=0 diff --git a/crypt-loop-file.patch b/crypt-loop-file.patch index 317bec7f..70785520 100644 --- a/crypt-loop-file.patch +++ b/crypt-loop-file.patch @@ -1,8 +1,8 @@ -Index: systemd-37/src/cryptsetup/cryptsetup-generator.c +Index: systemd-190/src/cryptsetup/cryptsetup-generator.c =================================================================== ---- systemd-37.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-37/src/cryptsetup/cryptsetup-generator.c -@@ -138,7 +138,7 @@ static int create_disk( +--- systemd-190.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-190/src/cryptsetup/cryptsetup-generator.c +@@ -136,7 +136,7 @@ static int create_disk( const char *password, const char *options) { @@ -11,62 +11,64 @@ Index: systemd-37/src/cryptsetup/cryptsetup-generator.c int r; FILE *f = NULL; bool noauto, nofail; -@@ -167,10 +167,50 @@ static int create_disk( +@@ -168,11 +168,51 @@ static int create_disk( goto fail; } -- if (!(d = unit_name_from_path(u, ".device"))) { +- d = unit_name_from_path(u, ".device"); +- if (!d) { - r = -ENOMEM; - log_error("Failed to allocate device name."); - goto fail; + if (!startswith(device,"/dev/")) { ++ d = unit_name_from_path_instance("cryptsetup", name, ".path"); ++ if (!d) { ++ r = -ENOMEM; ++ log_error("Failed to allocate path name."); ++ goto fail; ++ } + -+ if (!(d = unit_name_build_escape("cryptsetup", name, ".path"))) { -+ r = -ENOMEM; -+ log_error("Failed to allocate path name."); -+ goto fail; -+ } ++ if (asprintf(&path_file, "%s/%s", arg_dest, d) < 0) { ++ r = -ENOMEM; ++ log_error("Failed to allocate unit file name."); ++ goto fail; ++ } + -+ if (asprintf(&path_file, "%s/%s", arg_dest, d) < 0) { -+ r = -ENOMEM; -+ log_error("Failed to allocate unit file name."); -+ goto fail; -+ } ++ f = fopen(path_file, "wxe"); ++ if (!f) { ++ r = -errno; ++ log_error("Failed to create unit file: %m"); ++ goto fail; ++ } + -+ if (!(f = fopen(path_file, "wxe"))) { -+ r = -errno; -+ log_error("Failed to create unit file: %m"); -+ goto fail; -+ } ++ fprintf(f, ++ "[Unit]\n" ++ "Description=Cryptography Setup for %s\n" ++ "DefaultDependencies=no\n" ++ "[Path]\n" ++ "PathExists=%s\n", ++ device, device); + -+ fprintf(f, -+ "[Unit]\n" -+ "Description=Cryptography Setup for %s\n" -+ "DefaultDependencies=no\n" -+ "[Path]\n" -+ "PathExists=%s\n", -+ device, device); ++ fflush(f); + -+ fflush(f); ++ if (ferror(f)) { ++ r = -errno; ++ log_error("Failed to write file: %m"); ++ goto fail; ++ } + -+ if (ferror(f)) { -+ r = -errno; -+ log_error("Failed to write file: %m"); -+ goto fail; -+ } -+ -+ f = NULL; ++ f = NULL; + } else { -+ -+ if (!(d = unit_name_from_path(u, ".device"))) { -+ r = -ENOMEM; -+ log_error("Failed to allocate device name."); -+ goto fail; -+ } ++ d = unit_name_from_path(u, ".device"); ++ if (!d) { ++ r = -ENOMEM; ++ log_error("Failed to allocate device name."); ++ goto fail; ++ } } - if (!(f = fopen(p, "wxe"))) { -@@ -300,6 +340,7 @@ fail: + f = fopen(p, "wxe"); +@@ -298,6 +338,7 @@ fail: free(n); free(d); free(e); diff --git a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch index 52d4c46e..58a4f924 100644 --- a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch +++ b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch @@ -8,26 +8,26 @@ Subject: [PATCH] delay fsck / cryptsetup after md / dmraid / lvm are started units/fsck@.service.in | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) -Index: systemd-37/src/cryptsetup/cryptsetup-generator.c +Index: systemd-189/src/cryptsetup/cryptsetup-generator.c =================================================================== ---- systemd-37.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-37/src/cryptsetup/cryptsetup-generator.c -@@ -112,6 +112,7 @@ static int create_disk( +--- systemd-189.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-189/src/cryptsetup/cryptsetup-generator.c +@@ -192,6 +192,7 @@ static int create_disk( "DefaultDependencies=no\n" - "BindTo=%s dev-mapper-%%i.device\n" + "BindsTo=%s dev-mapper-%%i.device\n" "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" + "After=md.service dmraid.service lvm.service\n" "Before=umount.target\n", d, d); -Index: systemd-37/units/fsck@.service.in +Index: systemd-189/units/systemd-fsck@.service.in =================================================================== ---- systemd-37.orig/units/fsck@.service.in -+++ systemd-37/units/fsck@.service.in -@@ -9,7 +9,7 @@ - Description=File System Check on %f +--- systemd-189.orig/units/systemd-fsck@.service.in ++++ systemd-189/units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Description=File System Check on %f + Documentation=man:systemd-fsck@.service(8) DefaultDependencies=no - BindTo=%i.device + BindsTo=%i.device -After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device +After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device lvm.service md.service dmraid.service Before=shutdown.target diff --git a/dm-lvm-after-local-fs-pre-target.patch b/dm-lvm-after-local-fs-pre-target.patch index 2e4c0463..d3467af1 100644 --- a/dm-lvm-after-local-fs-pre-target.patch +++ b/dm-lvm-after-local-fs-pre-target.patch @@ -1,9 +1,9 @@ -Index: systemd-37/units/local-fs-pre.target +Index: systemd-189/units/local-fs-pre.target =================================================================== ---- systemd-37.orig/units/local-fs-pre.target -+++ systemd-37/units/local-fs-pre.target -@@ -9,3 +9,4 @@ - +--- systemd-189.orig/units/local-fs-pre.target ++++ systemd-189/units/local-fs-pre.target +@@ -8,3 +8,4 @@ [Unit] Description=Local File Systems (Pre) + Documentation=man:systemd.special(7) +After=md.service lvm.service dmraid.service diff --git a/drop-timezone.patch b/drop-timezone.patch deleted file mode 100644 index 02298075..00000000 --- a/drop-timezone.patch +++ /dev/null @@ -1,48 +0,0 @@ -Index: systemd-44/src/timedate/timedated.c -=================================================================== ---- systemd-44.orig/src/timedate/timedated.c -+++ systemd-44/src/timedate/timedated.c -@@ -203,24 +203,18 @@ static int read_data(void) { - - free(t); - -- r = read_one_line_file("/etc/timezone", &tz.zone); -- if (r < 0) { -- if (r != -ENOENT) -- log_warning("Failed to read /etc/timezone: %s", strerror(-r)); -- - #if defined(TARGET_FEDORA) || defined(TARGET_SUSE) -- r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, - #ifdef TARGET_FEDORA -- "ZONE", &tz.zone, -+ "ZONE", &tz.zone, - #else /* TARGET_SUSE */ -- "TIMEZONE", &tz.zone, -+ "TIMEZONE", &tz.zone, - #endif -- NULL); -+ NULL); - -- if (r < 0 && r != -ENOENT) -- log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); - #endif -- } - - have_timezone: - if (isempty(tz.zone)) { -@@ -263,12 +257,6 @@ static int write_data_timezone(void) { - if (r < 0) - return -errno; - -- if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { -- r = write_one_line_file_atomic("/etc/timezone", tz.zone); -- if (r < 0) -- return r; -- } -- - return 0; - } - diff --git a/fastboot-forcefsck.patch b/fastboot-forcefsck.patch index 4d76eb23..f0898e86 100644 --- a/fastboot-forcefsck.patch +++ b/fastboot-forcefsck.patch @@ -1,11 +1,11 @@ -Index: systemd-44/src/fsck.c +Index: systemd-189/src/fsck/fsck.c =================================================================== ---- systemd-44.orig/src/fsck.c -+++ systemd-44/src/fsck.c -@@ -127,7 +127,7 @@ static int parse_proc_cmdline(void) { +--- systemd-189.orig/src/fsck/fsck.c ++++ systemd-189/src/fsck/fsck.c +@@ -128,7 +128,7 @@ static int parse_proc_cmdline(void) { arg_skip = true; - else if (startswith(w, "fsck.mode")) - log_warning("Invalid fsck.mode= parameter. Ignoring."); + else if (startswith(w, "fsck")) + log_warning("Invalid fsck parameter. Ignoring."); -#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) +#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) || defined(TARGET_SUSE) else if (strneq(w, "fastboot", l)) diff --git a/fix-analyze-exception.patch b/fix-analyze-exception.patch deleted file mode 100644 index 00699858..00000000 --- a/fix-analyze-exception.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6070fe66ac2f317e7e85e5685f0916d1e2b73a28 Mon Sep 17 00:00:00 2001 -From: Colin Guthrie -Date: Mon, 2 Apr 2012 11:08:20 +0100 -Subject: [PATCH] analyze: Cosmetic exit when the bootup is not yet complete - when plotting. - -This is just a nicer message than a python traceback. ---- - src/systemd-analyze | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/systemd-analyze b/src/systemd-analyze -index 8148bfb..a49fbb7 100755 ---- a/src/systemd-analyze -+++ b/src/systemd-analyze -@@ -31,6 +31,10 @@ def acquire_start_time(): - startup_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'StartupTimestampMonotonic')) - finish_time = int(properties.Get('org.freedesktop.systemd1.Manager', 'FinishTimestampMonotonic')) - -+ if finish_time == 0: -+ sys.stderr.write("Bootup is not yet finished. Please try again later.\n") -+ sys.exit(1) -+ - assert initrd_time <= startup_time - assert startup_time <= finish_time - --- -1.7.10.4 - diff --git a/fix-dir-noatime-tmpfiles.patch b/fix-dir-noatime-tmpfiles.patch deleted file mode 100644 index 714ada2f..00000000 --- a/fix-dir-noatime-tmpfiles.patch +++ /dev/null @@ -1,41 +0,0 @@ -From de49f6dd99aca059da24c9afc672782f1768abd2 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 11 Apr 2012 21:33:12 +0200 -Subject: [PATCH] tmpfiles: open directories with O_NOATIME to preserve - timestamp - -Before: - # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' - Access: 2012-04-11 21:32:48.444920237 +0200 - # systemd-tmpfiles --clean - # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' - Access: 2012-04-11 21:36:27.628925459 +0200 - -After: - # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' - Access: 2012-04-11 21:32:48.444920237 +0200 - # ./systemd-tmpfiles --clean - # stat /tmp/pulse-Du5ectm60QYM | grep 'Access: 20' - Access: 2012-04-11 21:32:48.444920237 +0200 - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=810257 ---- - src/tmpfiles.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/tmpfiles.c b/src/tmpfiles.c -index 21bf44d..09eefcf 100644 ---- a/src/tmpfiles.c -+++ b/src/tmpfiles.c -@@ -250,7 +250,7 @@ static int dir_cleanup( - DIR *sub_dir; - int q; - -- sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW); -+ sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW|O_NOATIME); - if (sub_dir == NULL) { - if (errno != ENOENT) { - log_error("opendir(%s/%s) failed: %m", p, dent->d_name); --- -1.7.7 - diff --git a/fix-enable-disable-boot-initscript.patch b/fix-enable-disable-boot-initscript.patch index 1f4fe5cf..a89b5955 100644 --- a/fix-enable-disable-boot-initscript.patch +++ b/fix-enable-disable-boot-initscript.patch @@ -7,11 +7,11 @@ Subject: [PATCH] fix support for boot prefixed initscript (bnc#746506) src/systemctl.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) -diff --git a/src/systemctl.c b/src/systemctl.c -index e94e024..1a98599 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -3669,7 +3669,27 @@ static int enable_sysv_units(char **args) { +Index: systemd-195/src/systemctl/systemctl.c +=================================================================== +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -3453,7 +3453,27 @@ static int enable_sysv_units(char **args if (!found_sysv) { free(p); @@ -39,6 +39,3 @@ index e94e024..1a98599 100644 } /* Mark this entry, so that we don't try enabling it as native unit */ --- -1.7.10.4 - diff --git a/fix-getty-isolate.patch b/fix-getty-isolate.patch deleted file mode 100644 index 4cf794ad..00000000 --- a/fix-getty-isolate.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 4771148bb92ace55eaa6759a53d04a0f2de9b0d2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 11 Apr 2012 21:58:33 +0200 -Subject: [PATCH] units: exclude gettys from isolate requests - -gettys are nowadays mostly autospawned and hence usually subject to -being shut down on isolate requests, since they are no dependency of any -other unit. This is a bad idea if the user isolates between -multi-user.graphical and graphical.target, hence exclude them from the -isolation. - -This has the effect that gettys no longer cleaned up when -emergency.target is isolated, which might actualy be considered a -feature, even though it is a change from previous behaviour... - -Note that the one getty that really matters (the one on tty1) is still -removed when isolating to emergency.target since it conflicts with -emergency.service. ---- - TODO | 4 ++-- - units/getty@.service.m4 | 1 + - units/serial-getty@.service.m4 | 1 + - 3 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 -index a02838d..6b931fb 100644 ---- a/units/getty@.service.m4 -+++ b/units/getty@.service.m4 -@@ -32,6 +32,7 @@ After=rc-local.service - # sure that this is synchronized before getty.target, even though - # getty.target didn't actually pull it in. - Before=getty.target -+IgnoreOnIsolate=yes - - [Service] - Environment=TERM=linux -diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 -index fc8b57b..d1d14d3 100644 ---- a/units/serial-getty@.service.m4 -+++ b/units/serial-getty@.service.m4 -@@ -32,6 +32,7 @@ After=rc-local.service - # sure that this is synchronized before getty.target, even though - # getty.target didn't actually pull it in. - Before=getty.target -+IgnoreOnIsolate=yes - - [Service] - Environment=TERM=vt100 --- -1.7.7 - diff --git a/fix-swap-priority.patch b/fix-swap-priority.patch deleted file mode 100644 index 2c3fd5f1..00000000 --- a/fix-swap-priority.patch +++ /dev/null @@ -1,36 +0,0 @@ -Index: systemd-37/src/mount.c -=================================================================== ---- systemd-37.orig/src/mount.c -+++ systemd-37/src/mount.c -@@ -1485,7 +1485,7 @@ fail: - return r; - } - --static int mount_find_pri(char *options) { -+static int mount_find_pri(char *options, int *ret) { - char *end, *pri; - unsigned long r; - -@@ -1503,7 +1503,8 @@ static int mount_find_pri(char *options) - if (end == pri || (*end != ',' && *end != 0)) - return -EINVAL; - -- return (int) r; -+ *ret = (int) r; -+ return 1; - } - - static int mount_load_etc_fstab(Manager *m) { -@@ -1539,9 +1540,10 @@ static int mount_load_etc_fstab(Manager - path_kill_slashes(where); - - if (streq(me->mnt_type, "swap")) { -- int pri; -+ int r, pri = -1; - -- if ((pri = mount_find_pri(me->mnt_opts)) < 0) -+ r = mount_find_pri(me->mnt_opts,&pri); -+ if (r < 0) - k = pri; - else - k = swap_add_one(m, diff --git a/fix-tty-startup.patch b/fix-tty-startup.patch deleted file mode 100644 index 293839c7..00000000 --- a/fix-tty-startup.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d55248d6a6f69f3b6c86cfc0d11aff8831590a4f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 12 Apr 2012 17:29:42 +0200 -Subject: [PATCH] getty: VC devices are always available, we don't need to - wait until they show up - ---- - src/99-systemd.rules.in | 1 - - units/getty@.service.m4 | 3 +-- - 2 files changed, 1 insertions(+), 3 deletions(-) - -diff --git a/src/99-systemd.rules.in b/src/99-systemd.rules.in -index d306f71..8cc7523 100644 ---- a/src/99-systemd.rules.in -+++ b/src/99-systemd.rules.in -@@ -7,7 +7,6 @@ - - ACTION=="remove", GOTO="systemd_end" - --SUBSYSTEM=="tty", KERNEL=="tty[0-9]|tty1[0-2]", TAG+="systemd" - SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" - - KERNEL=="vport*", TAG+="systemd" -diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 -index a02838d..c397a4d 100644 ---- a/units/getty@.service.m4 -+++ b/units/getty@.service.m4 -@@ -7,8 +7,7 @@ - - [Unit] - Description=Getty on %I --BindTo=dev-%i.device --After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service -+After=systemd-user-sessions.service plymouth-quit-wait.service - m4_ifdef(`TARGET_FEDORA', - After=rc-local.service - )m4_dnl --- -1.7.7 - diff --git a/fix-write-user-state-file.patch b/fix-write-user-state-file.patch deleted file mode 100644 index e0cd289e..00000000 --- a/fix-write-user-state-file.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 0753f9b016f144a6ebe11cd8a2c377e5a0345443 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 22 May 2012 16:46:11 +0200 -Subject: [PATCH] logind: fix write out of user state file - ---- - src/login/logind-user.c | 65 ++++++++++++++++++++++++++++++---------------- - 1 files changed, 42 insertions(+), 23 deletions(-) - -diff --git a/src/login/logind-user.c b/src/login/logind-user.c -index 717f0e2..b7f579c 100644 ---- a/src/login/logind-user.c -+++ b/src/login/logind-user.c -@@ -136,40 +136,59 @@ int user_save(User *u) { - - if (u->sessions) { - Session *i; -+ bool first; - - fputs("SESSIONS=", f); -+ first = true; - LIST_FOREACH(sessions_by_user, i, u->sessions) { -- fprintf(f, -- "%s%c", -- i->id, -- i->sessions_by_user_next ? ' ' : '\n'); -+ if (first) -+ first = false; -+ else -+ fputc(' ', f); -+ -+ fputs(i->id, f); - } - -- fputs("SEATS=", f); -+ fputs("\nSEATS=", f); -+ first = true; - LIST_FOREACH(sessions_by_user, i, u->sessions) { -- if (i->seat) -- fprintf(f, -- "%s%c", -- i->seat->id, -- i->sessions_by_user_next ? ' ' : '\n'); -+ if (!i->seat) -+ continue; -+ -+ if (first) -+ first = false; -+ else -+ fputc(' ', f); -+ -+ fputs(i->seat->id, f); - } - -- fputs("ACTIVE_SESSIONS=", f); -- LIST_FOREACH(sessions_by_user, i, u->sessions) -- if (session_is_active(i)) -- fprintf(f, -- "%lu%c", -- (unsigned long) i->user->uid, -- i->sessions_by_user_next ? ' ' : '\n'); -+ fputs("\nACTIVE_SESSIONS=", f); -+ first = true; -+ LIST_FOREACH(sessions_by_user, i, u->sessions) { -+ if (!session_is_active(i)) -+ continue; -+ -+ if (first) -+ first = false; -+ else -+ fputc(' ', f); -+ -+ fputs(i->id, f); -+ } - -- fputs("ACTIVE_SEATS=", f); -+ fputs("\nACTIVE_SEATS=", f); -+ first = true; - LIST_FOREACH(sessions_by_user, i, u->sessions) { -- if (session_is_active(i) && i->seat) -- fprintf(f, -- "%s%c", -- i->seat->id, -- i->sessions_by_user_next ? ' ' : '\n'); -+ if (!session_is_active(i) || !i->seat) -+ continue; -+ -+ if (first) -+ first = false; -+ else -+ fputs(i->seat->id, f); - } -+ fputc('\n', f); - } - - fflush(f); --- -1.7.7 - diff --git a/fixppc.patch b/fixppc.patch deleted file mode 100644 index eeb7ce56..00000000 --- a/fixppc.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 7264278fbbdc1dc6c30fedc902d1337594aa6ff6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 21 Mar 2012 23:47:44 +0100 -Subject: [PATCH] journal: PAGE_SIZE is not known on ppc and other archs - -Let's use NAME_MAX, as suggested by Dan Walsh ---- - src/journal/journald.c | 15 ++++++++++++--- - 1 files changed, 12 insertions(+), 3 deletions(-) - -diff --git a/src/journal/journald.c b/src/journal/journald.c -index d27cb60..87390bd 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -29,7 +29,6 @@ - #include - #include - #include --#include - - #include - #include -@@ -2149,10 +2148,20 @@ static int process_event(Server *s, struct epoll_event *ev) { - size_t label_len = 0; - union { - struct cmsghdr cmsghdr; -+ -+ /* We use NAME_MAX space for the -+ * SELinux label here. The kernel -+ * currently enforces no limit, but -+ * according to suggestions from the -+ * SELinux people this will change and -+ * it will probably be identical to -+ * NAME_MAX. For now we use that, but -+ * this should be updated one day when -+ * the final limit is known.*/ - uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) + - CMSG_SPACE(sizeof(struct timeval)) + -- CMSG_SPACE(sizeof(int)) + -- CMSG_SPACE(PAGE_SIZE)]; /* selinux label */ -+ CMSG_SPACE(sizeof(int)) + /* fd */ -+ CMSG_SPACE(NAME_MAX)]; /* selinux label */ - } control; - ssize_t n; - int v; --- -1.7.7 - -From dd1e3d5a396284d1afdb2828991a543eb80c8040 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 22 Mar 2012 09:39:54 +0100 -Subject: [PATCH] journal: char is unsigned on ppc, use int8_t instead. - ---- - src/journal/cat.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/journal/cat.c b/src/journal/cat.c -index 31d76f3..8a51fb7 100644 ---- a/src/journal/cat.c -+++ b/src/journal/cat.c -@@ -33,7 +33,7 @@ - #include "build.h" - - static char *arg_identifier = NULL; --static char arg_priority = LOG_INFO; -+static int8_t arg_priority = LOG_INFO; - static bool arg_level_prefix = true; - - static int help(void) { --- -1.7.7 - diff --git a/improve-restart-behaviour.patch b/improve-restart-behaviour.patch deleted file mode 100644 index 28521824..00000000 --- a/improve-restart-behaviour.patch +++ /dev/null @@ -1,7661 +0,0 @@ -From 4cbb803c2197b6be6be709a11911bde00f6853f6 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 28 Mar 2012 00:42:27 +0200 -Subject: [PATCH 01/30] job: fix loss of ordering with restart jobs - -Suppose that foo.service/start is a job waiting on other job bar.service/start -to finish. And then foo.service/restart is enqueued (not using ---ignore-dependencies). - -Currently this makes foo.service start immediately, forgetting about the -ordering to bar.service. - -The runnability check for JOB_RESTART jobs looks only at dependencies for -stopping. That's actually correct, because restart jobs should be treated the -same as stop jobs at first. The bug is that job_run_and_invalidate() does not -treat them exactly the same as stop jobs. unit_start() gets called without -checking for the runnability of the converted JOB_START job. - -The fix is to simplify the switch in job_run_and_invalidate(). Handle -JOB_RESTART identically to JOB_STOP. -Also simplify the handling of JOB_TRY_RESTART - just convert it to JOB_RESTART -if the unit is active and let it fall through to the JOB_RESTART case. -Similarly for JOB_RELOAD_OR_START - have a fall through to JOB_START. - -In job_finish_and_invalidate() it's not necessary to check for JOB_TRY_RESTART -with JOB_DONE, because JOB_TRY_RESTART jobs will have been converted to -JOB_RESTART already. - -Speeding up the restart of services in "auto-restart" state still works as -before. - -Improves: https://bugzilla.redhat.com/show_bug.cgi?id=753586 -but it's still not perfect. With this fix the try-restart action will wait for -the restart to complete in the right order, but the optimal behaviour would be -to finish quickly (without disturbing the start job). ---- - src/job.c | 64 ++++++++++++++++++++----------------------------------------- - 1 files changed, 21 insertions(+), 43 deletions(-) - -diff --git a/src/job.c b/src/job.c -index e57286f..d43ce8e 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -387,14 +387,21 @@ int job_run_and_invalidate(Job *j) { - - switch (j->type) { - -+ case JOB_RELOAD_OR_START: -+ if (unit_active_state(j->unit) == UNIT_ACTIVE) { -+ j->type = JOB_RELOAD; -+ r = unit_reload(j->unit); -+ break; -+ } -+ j->type = JOB_START; -+ /* fall through */ -+ - case JOB_START: - r = unit_start(j->unit); - -- /* If this unit cannot be started, then simply -- * wait */ -+ /* If this unit cannot be started, then simply wait */ - if (r == -EBADR) - r = 0; -- - break; - - case JOB_VERIFY_ACTIVE: { -@@ -408,11 +415,19 @@ int job_run_and_invalidate(Job *j) { - break; - } - -+ case JOB_TRY_RESTART: -+ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(unit_active_state(j->unit))) { -+ r = -ENOEXEC; -+ break; -+ } -+ j->type = JOB_RESTART; -+ /* fall through */ -+ - case JOB_STOP: -+ case JOB_RESTART: - r = unit_stop(j->unit); - -- /* If this unit cannot stopped, then simply -- * wait. */ -+ /* If this unit cannot stopped, then simply wait. */ - if (r == -EBADR) - r = 0; - break; -@@ -421,43 +436,6 @@ int job_run_and_invalidate(Job *j) { - r = unit_reload(j->unit); - break; - -- case JOB_RELOAD_OR_START: -- if (unit_active_state(j->unit) == UNIT_ACTIVE) { -- j->type = JOB_RELOAD; -- r = unit_reload(j->unit); -- } else { -- j->type = JOB_START; -- r = unit_start(j->unit); -- -- if (r == -EBADR) -- r = 0; -- } -- break; -- -- case JOB_RESTART: { -- UnitActiveState t = unit_active_state(j->unit); -- if (t == UNIT_INACTIVE || t == UNIT_FAILED || t == UNIT_ACTIVATING) { -- j->type = JOB_START; -- r = unit_start(j->unit); -- } else -- r = unit_stop(j->unit); -- break; -- } -- -- case JOB_TRY_RESTART: { -- UnitActiveState t = unit_active_state(j->unit); -- if (t == UNIT_INACTIVE || t == UNIT_FAILED || t == UNIT_DEACTIVATING) -- r = -ENOEXEC; -- else if (t == UNIT_ACTIVATING) { -- j->type = JOB_START; -- r = unit_start(j->unit); -- } else { -- j->type = JOB_RESTART; -- r = unit_stop(j->unit); -- } -- break; -- } -- - default: - assert_not_reached("Unknown job type"); - } -@@ -536,7 +514,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - job_add_to_dbus_queue(j); - - /* Patch restart jobs so that they become normal start jobs */ -- if (result == JOB_DONE && (j->type == JOB_RESTART || j->type == JOB_TRY_RESTART)) { -+ if (result == JOB_DONE && j->type == JOB_RESTART) { - - log_debug("Converting job %s/%s -> %s/%s", - j->unit->id, job_type_to_string(j->type), --- -1.7.7 - - -From 8166db595346260a3e36206249f7e82bc9ad7406 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 28 Mar 2012 01:26:04 +0200 -Subject: [PATCH 02/30] job: add debug prints where job type gets changed - -Conflicts: - - src/job.c ---- - src/job.c | 14 +++++++++----- - 1 files changed, 9 insertions(+), 5 deletions(-) - -diff --git a/src/job.c b/src/job.c -index d43ce8e..6a4d8a7 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -355,6 +355,14 @@ bool job_is_runnable(Job *j) { - return true; - } - -+static void job_change_type(Job *j, JobType newtype) { -+ log_debug("Converting job %s/%s -> %s/%s", -+ j->unit->id, job_type_to_string(j->type), -+ j->unit->id, job_type_to_string(newtype)); -+ -+ j->type = newtype; -+} -+ - int job_run_and_invalidate(Job *j) { - int r; - uint32_t id; -@@ -516,12 +524,8 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - /* Patch restart jobs so that they become normal start jobs */ - if (result == JOB_DONE && j->type == JOB_RESTART) { - -- log_debug("Converting job %s/%s -> %s/%s", -- j->unit->id, job_type_to_string(j->type), -- j->unit->id, job_type_to_string(JOB_START)); -- -+ job_change_type(j, JOB_START); - j->state = JOB_WAITING; -- j->type = JOB_START; - - job_add_to_run_queue(j); - --- -1.7.7 - - -From b0055c992aefe7512ad0f53d7c6e202d4db2bf53 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 5 Apr 2012 08:34:05 +0200 -Subject: [PATCH 03/30] job: use a lookup table for merging of job types - -It is easier to see what job_type_merge() is doing when the merging -rules are written in the form of a table. - -job_type_is_superset() contained redundant information. It can be -simplified to a simple rule: Type A is a superset of B iff merging A -with B gives A. - -Two job types are conflicting iff they are not mergeable. - -Make job_type_lookup_merge() the core function to decide the type -merging. All other job_type_*() are just short wrappers around it. -They can be inline. - -test-job-type gives the same results as before. -btw, the systemd binary is smaller by almost 1 KB. -(cherry picked from commit 348e27fedfd4cdd2238ff31a46785a70b9dc6fc0) ---- - src/job.c | 123 +++++++++++++++++------------------------------------------- - src/job.h | 29 ++++++++++++-- - 2 files changed, 60 insertions(+), 92 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 6a4d8a7..da939fb 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -164,100 +164,47 @@ bool job_is_anchor(Job *j) { - return false; - } - --static bool types_match(JobType a, JobType b, JobType c, JobType d) { -- return -- (a == c && b == d) || -- (a == d && b == c); --} -- --int job_type_merge(JobType *a, JobType b) { -- if (*a == b) -- return 0; -- -- /* Merging is associative! a merged with b merged with c is -- * the same as a merged with c merged with b. */ -- -- /* Mergeability is transitive! if a can be merged with b and b -- * with c then a also with c */ -- -- /* Also, if a merged with b cannot be merged with c, then -- * either a or b cannot be merged with c either */ -- -- if (types_match(*a, b, JOB_START, JOB_VERIFY_ACTIVE)) -- *a = JOB_START; -- else if (types_match(*a, b, JOB_START, JOB_RELOAD) || -- types_match(*a, b, JOB_START, JOB_RELOAD_OR_START) || -- types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_RELOAD_OR_START) || -- types_match(*a, b, JOB_RELOAD, JOB_RELOAD_OR_START)) -- *a = JOB_RELOAD_OR_START; -- else if (types_match(*a, b, JOB_START, JOB_RESTART) || -- types_match(*a, b, JOB_START, JOB_TRY_RESTART) || -- types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_RESTART) || -- types_match(*a, b, JOB_RELOAD, JOB_RESTART) || -- types_match(*a, b, JOB_RELOAD_OR_START, JOB_RESTART) || -- types_match(*a, b, JOB_RELOAD_OR_START, JOB_TRY_RESTART) || -- types_match(*a, b, JOB_RESTART, JOB_TRY_RESTART)) -- *a = JOB_RESTART; -- else if (types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_RELOAD)) -- *a = JOB_RELOAD; -- else if (types_match(*a, b, JOB_VERIFY_ACTIVE, JOB_TRY_RESTART) || -- types_match(*a, b, JOB_RELOAD, JOB_TRY_RESTART)) -- *a = JOB_TRY_RESTART; -- else -- return -EEXIST; -- -- return 0; --} -- --bool job_type_is_mergeable(JobType a, JobType b) { -- return job_type_merge(&a, b) >= 0; --} -- --bool job_type_is_superset(JobType a, JobType b) { -+/* -+ * Merging is commutative, so imagine the matrix as symmetric. We store only -+ * its lower triangle to avoid duplication. We don't store the main diagonal, -+ * because A merged with A is simply A. -+ * -+ * Merging is associative! A merged with B merged with C is the same as -+ * A merged with C merged with B. -+ * -+ * Mergeability is transitive! If A can be merged with B and B with C then -+ * A also with C. -+ * -+ * Also, if A merged with B cannot be merged with C, then either A or B cannot -+ * be merged with C either. -+ */ -+static const JobType job_merging_table[] = { -+/* What \ With * JOB_START JOB_VERIFY_ACTIVE JOB_STOP JOB_RELOAD JOB_RELOAD_OR_START JOB_RESTART JOB_TRY_RESTART */ -+/************************************************************************************************************************************/ -+/*JOB_START */ -+/*JOB_VERIFY_ACTIVE */ JOB_START, -+/*JOB_STOP */ -1, -1, -+/*JOB_RELOAD */ JOB_RELOAD_OR_START, JOB_RELOAD, -1, -+/*JOB_RELOAD_OR_START*/ JOB_RELOAD_OR_START, JOB_RELOAD_OR_START, -1, JOB_RELOAD_OR_START, -+/*JOB_RESTART */ JOB_RESTART, JOB_RESTART, -1, JOB_RESTART, JOB_RESTART, -+/*JOB_TRY_RESTART */ JOB_RESTART, JOB_TRY_RESTART, -1, JOB_TRY_RESTART, JOB_RESTART, JOB_RESTART, -+}; - -- /* Checks whether operation a is a "superset" of b in its -- * actions */ -+JobType job_type_lookup_merge(JobType a, JobType b) { -+ assert_cc(ELEMENTSOF(job_merging_table) == _JOB_TYPE_MAX * (_JOB_TYPE_MAX - 1) / 2); -+ assert(a >= 0 && a < _JOB_TYPE_MAX); -+ assert(b >= 0 && b < _JOB_TYPE_MAX); - - if (a == b) -- return true; -- -- switch (a) { -- case JOB_START: -- return b == JOB_VERIFY_ACTIVE; -- -- case JOB_RELOAD: -- return -- b == JOB_VERIFY_ACTIVE; -- -- case JOB_RELOAD_OR_START: -- return -- b == JOB_RELOAD || -- b == JOB_START || -- b == JOB_VERIFY_ACTIVE; -- -- case JOB_RESTART: -- return -- b == JOB_START || -- b == JOB_VERIFY_ACTIVE || -- b == JOB_RELOAD || -- b == JOB_RELOAD_OR_START || -- b == JOB_TRY_RESTART; -- -- case JOB_TRY_RESTART: -- return -- b == JOB_VERIFY_ACTIVE || -- b == JOB_RELOAD; -- default: -- return false; -+ return a; - -+ if (a < b) { -+ JobType tmp = a; -+ a = b; -+ b = tmp; - } --} -- --bool job_type_is_conflicting(JobType a, JobType b) { -- assert(a >= 0 && a < _JOB_TYPE_MAX); -- assert(b >= 0 && b < _JOB_TYPE_MAX); - -- return (a == JOB_STOP) != (b == JOB_STOP); -+ return job_merging_table[(a - 1) * a / 2 + b]; - } - - bool job_type_is_redundant(JobType a, UnitActiveState b) { -diff --git a/src/job.h b/src/job.h -index 2121426..60a43e0 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -24,6 +24,7 @@ - - #include - #include -+#include - - typedef struct Job Job; - typedef struct JobDependency JobDependency; -@@ -37,6 +38,7 @@ typedef enum JobResult JobResult; - #include "hashmap.h" - #include "list.h" - -+/* Be careful when changing the job types! Adjust job_merging_table[] accordingly! */ - enum JobType { - JOB_START, /* if a unit does not support being started, we'll just wait until it becomes active */ - JOB_VERIFY_ACTIVE, -@@ -145,10 +147,29 @@ bool job_is_anchor(Job *j); - - int job_merge(Job *j, Job *other); - --int job_type_merge(JobType *a, JobType b); --bool job_type_is_mergeable(JobType a, JobType b); --bool job_type_is_superset(JobType a, JobType b); --bool job_type_is_conflicting(JobType a, JobType b); -+JobType job_type_lookup_merge(JobType a, JobType b); -+ -+static inline int job_type_merge(JobType *a, JobType b) { -+ JobType t = job_type_lookup_merge(*a, b); -+ if (t < 0) -+ return -EEXIST; -+ *a = t; -+ return 0; -+} -+ -+static inline bool job_type_is_mergeable(JobType a, JobType b) { -+ return job_type_lookup_merge(a, b) >= 0; -+} -+ -+static inline bool job_type_is_conflicting(JobType a, JobType b) { -+ return !job_type_is_mergeable(a, b); -+} -+ -+static inline bool job_type_is_superset(JobType a, JobType b) { -+ /* Checks whether operation a is a "superset" of b in its actions */ -+ return a == job_type_lookup_merge(a, b); -+} -+ - bool job_type_is_redundant(JobType a, UnitActiveState b); - - bool job_is_runnable(Job *j); --- -1.7.7 - - -From 5503c3419fbcceebb6f8e94c291457adb260537b Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 19 Apr 2012 23:20:34 +0200 -Subject: [PATCH 04/30] job: allow job_free() only on already unlinked jobs - -job_free() is IMO too helpful when it unlinks the job from the transaction. -The callers should ensure the job is already unlinked before freeing. -The added assertions check if anyone gets it wrong. -(cherry picked from commit 02a3bcc6b4372ca50c0a62b193f9a75b988ffa69) ---- - src/job.c | 6 ++++-- - src/manager.c | 11 ++++++++--- - src/manager.h | 2 -- - 3 files changed, 12 insertions(+), 7 deletions(-) - -diff --git a/src/job.c b/src/job.c -index da939fb..8e4d93e 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -71,8 +71,10 @@ void job_free(Job *j) { - j->installed = false; - } - -- /* Detach from next 'smaller' objects */ -- manager_transaction_unlink_job(j->manager, j, true); -+ assert(!j->transaction_prev); -+ assert(!j->transaction_next); -+ assert(!j->subject_list); -+ assert(!j->object_list); - - if (j->in_run_queue) - LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); -diff --git a/src/manager.c b/src/manager.c -index 74bd740..c77b5d2 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -637,13 +637,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - return r; - } - -+static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies); -+ - static void transaction_delete_job(Manager *m, Job *j, bool delete_dependencies) { - assert(m); - assert(j); - - /* Deletes one job from the transaction */ - -- manager_transaction_unlink_job(m, j, delete_dependencies); -+ transaction_unlink_job(m, j, delete_dependencies); - - if (!j->installed) - job_free(j); -@@ -685,8 +687,10 @@ static void transaction_abort(Manager *m) { - while ((j = hashmap_first(m->transaction_jobs))) - if (j->installed) - transaction_delete_job(m, j, true); -- else -+ else { -+ transaction_unlink_job(m, j, true); - job_free(j); -+ } - - assert(hashmap_isempty(m->transaction_jobs)); - -@@ -1415,6 +1419,7 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o - LIST_PREPEND(Job, transaction, f, j); - - if (hashmap_replace(m->transaction_jobs, unit, f) < 0) { -+ LIST_REMOVE(Job, transaction, f, j); - job_free(j); - return NULL; - } -@@ -1427,7 +1432,7 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o - return j; - } - --void manager_transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) { -+static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) { - assert(m); - assert(j); - -diff --git a/src/manager.h b/src/manager.h -index a9d08f0..64d8d0e 100644 ---- a/src/manager.h -+++ b/src/manager.h -@@ -254,8 +254,6 @@ int manager_add_job_by_name(Manager *m, JobType type, const char *name, JobMode - void manager_dump_units(Manager *s, FILE *f, const char *prefix); - void manager_dump_jobs(Manager *s, FILE *f, const char *prefix); - --void manager_transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies); -- - void manager_clear_jobs(Manager *m); - - unsigned manager_dispatch_load_queue(Manager *m); --- -1.7.7 - - -From c2c46edd09f2d0eefc127d22fd38312bf2bed01a Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 19 Apr 2012 23:23:04 +0200 -Subject: [PATCH 05/30] manager: simplify transaction_abort() - -This is equivalent. -(cherry picked from commit 121b3b318042b7fd67ac96601971c1c2f9b77be5) ---- - src/manager.c | 7 +------ - 1 files changed, 1 insertions(+), 6 deletions(-) - -diff --git a/src/manager.c b/src/manager.c -index c77b5d2..cac1fe8 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -685,12 +685,7 @@ static void transaction_abort(Manager *m) { - assert(m); - - while ((j = hashmap_first(m->transaction_jobs))) -- if (j->installed) -- transaction_delete_job(m, j, true); -- else { -- transaction_unlink_job(m, j, true); -- job_free(j); -- } -+ transaction_delete_job(m, j, true); - - assert(hashmap_isempty(m->transaction_jobs)); - --- -1.7.7 - - -From 4eb87c1148bd48b5d121297f72aa47eb39482ad3 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 10:21:37 +0200 -Subject: [PATCH 06/30] job: job_uninstall() - -Split the uninstallation of the job from job_free() into a separate function. -Adjust the callers. - -job_free() now only works on unlinked and uninstalled jobs. This enforces clear -thinking about job lifetimes. -(cherry picked from commit 97e7d748d1bf26790fc3b2607885f4ac8c4ecf3a) ---- - src/job.c | 25 ++++++++++++++----------- - src/job.h | 1 + - src/manager.c | 8 ++++++-- - src/unit.c | 7 +++++-- - 4 files changed, 26 insertions(+), 15 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 8e4d93e..35e358d 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -55,22 +55,24 @@ Job* job_new(Manager *m, JobType type, Unit *unit) { - return j; - } - --void job_free(Job *j) { -- assert(j); -- -+void job_uninstall(Job *j) { -+ assert(j->installed); - /* Detach from next 'bigger' objects */ -- if (j->installed) { -- bus_job_send_removed_signal(j); - -- if (j->unit->job == j) { -- j->unit->job = NULL; -- unit_add_to_gc_queue(j->unit); -- } -+ bus_job_send_removed_signal(j); - -- hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); -- j->installed = false; -+ if (j->unit->job == j) { -+ j->unit->job = NULL; -+ unit_add_to_gc_queue(j->unit); - } - -+ hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); -+ j->installed = false; -+} -+ -+void job_free(Job *j) { -+ assert(j); -+ assert(!j->installed); - assert(!j->transaction_prev); - assert(!j->transaction_next); - assert(!j->subject_list); -@@ -491,6 +493,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - - u = j->unit; - t = j->type; -+ job_uninstall(j); - job_free(j); - - job_print_status_message(u, t, result); -diff --git a/src/job.h b/src/job.h -index 60a43e0..ed375fa 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -137,6 +137,7 @@ struct Job { - }; - - Job* job_new(Manager *m, JobType type, Unit *unit); -+void job_uninstall(Job *j); - void job_free(Job *job); - void job_dump(Job *j, FILE*f, const char *prefix); - -diff --git a/src/manager.c b/src/manager.c -index cac1fe8..f8e5d64 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -1249,13 +1249,17 @@ static int transaction_apply(Manager *m, JobMode mode) { - } - - while ((j = hashmap_steal_first(m->transaction_jobs))) { -+ Job *uj; - if (j->installed) { - /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ - continue; - } - -- if (j->unit->job) -- job_free(j->unit->job); -+ uj = j->unit->job; -+ if (uj) { -+ job_uninstall(uj); -+ job_free(uj); -+ } - - j->unit->job = j; - j->installed = true; -diff --git a/src/unit.c b/src/unit.c -index 9e33701..1949995 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -352,8 +352,11 @@ void unit_free(Unit *u) { - SET_FOREACH(t, u->names, i) - hashmap_remove_value(u->manager->units, t, u); - -- if (u->job) -- job_free(u->job); -+ if (u->job) { -+ Job *j = u->job; -+ job_uninstall(j); -+ job_free(j); -+ } - - for (d = 0; d < _UNIT_DEPENDENCY_MAX; d++) - bidi_set_free(u, u->dependencies[d]); --- -1.7.7 - - -From b95d521e3816800bf43d5e11cef58b69b360233d Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 10:22:07 +0200 -Subject: [PATCH 07/30] manager: Transaction as an object - -This makes it obvious that transactions are short-lived. They are created in -manager_add_job() and destroyed after the application of jobs. -It also prepares for a split of the transaction code to a new source. -(cherry picked from commit 7527cb527598aaabf0ed9b38a352edb28536392a) ---- - src/job.c | 8 +- - src/job.h | 4 +- - src/manager.c | 390 +++++++++++++++++++++++++++++++-------------------------- - src/manager.h | 11 +- - 4 files changed, 225 insertions(+), 188 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 35e358d..6d48748 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -97,7 +97,7 @@ void job_free(Job *j) { - free(j); - } - --JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { -+JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr) { - JobDependency *l; - - assert(object); -@@ -118,20 +118,20 @@ JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool - if (subject) - LIST_PREPEND(JobDependency, subject, subject->subject_list, l); - else -- LIST_PREPEND(JobDependency, subject, object->manager->transaction_anchor, l); -+ LIST_PREPEND(JobDependency, subject, tr->anchor, l); - - LIST_PREPEND(JobDependency, object, object->object_list, l); - - return l; - } - --void job_dependency_free(JobDependency *l) { -+void job_dependency_free(JobDependency *l, Transaction *tr) { - assert(l); - - if (l->subject) - LIST_REMOVE(JobDependency, subject, l->subject->subject_list, l); - else -- LIST_REMOVE(JobDependency, subject, l->object->manager->transaction_anchor, l); -+ LIST_REMOVE(JobDependency, subject, tr->anchor, l); - - LIST_REMOVE(JobDependency, object, l->object->object_list, l); - -diff --git a/src/job.h b/src/job.h -index ed375fa..18ba64f 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -141,8 +141,8 @@ void job_uninstall(Job *j); - void job_free(Job *job); - void job_dump(Job *j, FILE*f, const char *prefix); - --JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); --void job_dependency_free(JobDependency *l); -+JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr); -+void job_dependency_free(JobDependency *l, Transaction *tr); - - bool job_is_anchor(Job *j); - -diff --git a/src/manager.c b/src/manager.c -index f8e5d64..ff4249d 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -259,9 +259,6 @@ int manager_new(ManagerRunningAs running_as, Manager **_m) { - if (!(m->jobs = hashmap_new(trivial_hash_func, trivial_compare_func))) - goto fail; - -- if (!(m->transaction_jobs = hashmap_new(trivial_hash_func, trivial_compare_func))) -- goto fail; -- - if (!(m->watch_pids = hashmap_new(trivial_hash_func, trivial_compare_func))) - goto fail; - -@@ -429,14 +426,10 @@ static unsigned manager_dispatch_gc_queue(Manager *m) { - } - - static void manager_clear_jobs_and_units(Manager *m) { -- Job *j; - Unit *u; - - assert(m); - -- while ((j = hashmap_first(m->transaction_jobs))) -- job_free(j); -- - while ((u = hashmap_first(m->units))) - unit_free(u); - -@@ -449,7 +442,6 @@ static void manager_clear_jobs_and_units(Manager *m) { - assert(!m->cleanup_queue); - assert(!m->gc_queue); - -- assert(hashmap_isempty(m->transaction_jobs)); - assert(hashmap_isempty(m->jobs)); - assert(hashmap_isempty(m->units)); - } -@@ -475,7 +467,6 @@ void manager_free(Manager *m) { - - hashmap_free(m->units); - hashmap_free(m->jobs); -- hashmap_free(m->transaction_jobs); - hashmap_free(m->watch_pids); - hashmap_free(m->watch_bus); - -@@ -637,65 +628,47 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - return r; - } - --static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies); -+static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies); - --static void transaction_delete_job(Manager *m, Job *j, bool delete_dependencies) { -- assert(m); -+static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependencies) { -+ assert(tr); - assert(j); - - /* Deletes one job from the transaction */ - -- transaction_unlink_job(m, j, delete_dependencies); -+ transaction_unlink_job(tr, j, delete_dependencies); - - if (!j->installed) - job_free(j); - } - --static void transaction_delete_unit(Manager *m, Unit *u) { -+static void transaction_delete_unit(Transaction *tr, Unit *u) { - Job *j; - - /* Deletes all jobs associated with a certain unit from the - * transaction */ - -- while ((j = hashmap_get(m->transaction_jobs, u))) -- transaction_delete_job(m, j, true); --} -- --static void transaction_clean_dependencies(Manager *m) { -- Iterator i; -- Job *j; -- -- assert(m); -- -- /* Drops all dependencies of all installed jobs */ -- -- HASHMAP_FOREACH(j, m->jobs, i) { -- while (j->subject_list) -- job_dependency_free(j->subject_list); -- while (j->object_list) -- job_dependency_free(j->object_list); -- } -- -- assert(!m->transaction_anchor); -+ while ((j = hashmap_get(tr->jobs, u))) -+ transaction_delete_job(tr, j, true); - } - --static void transaction_abort(Manager *m) { -+static void transaction_abort(Transaction *tr) { - Job *j; - -- assert(m); -+ assert(tr); - -- while ((j = hashmap_first(m->transaction_jobs))) -- transaction_delete_job(m, j, true); -+ while ((j = hashmap_first(tr->jobs))) -+ transaction_delete_job(tr, j, true); - -- assert(hashmap_isempty(m->transaction_jobs)); -+ assert(hashmap_isempty(tr->jobs)); - -- transaction_clean_dependencies(m); -+ assert(!tr->anchor); - } - --static void transaction_find_jobs_that_matter_to_anchor(Manager *m, Job *j, unsigned generation) { -+static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { - JobDependency *l; - -- assert(m); -+ assert(tr); - - /* A recursive sweep through the graph that marks all units - * that matter to the anchor job, i.e. are directly or -@@ -705,7 +678,7 @@ static void transaction_find_jobs_that_matter_to_anchor(Manager *m, Job *j, unsi - if (j) - l = j->subject_list; - else -- l = m->transaction_anchor; -+ l = tr->anchor; - - LIST_FOREACH(subject, l, l) { - -@@ -720,11 +693,11 @@ static void transaction_find_jobs_that_matter_to_anchor(Manager *m, Job *j, unsi - l->object->matters_to_anchor = true; - l->object->generation = generation; - -- transaction_find_jobs_that_matter_to_anchor(m, l->object, generation); -+ transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); - } - } - --static void transaction_merge_and_delete_job(Manager *m, Job *j, Job *other, JobType t) { -+static void transaction_merge_and_delete_job(Transaction *tr, Job *j, Job *other, JobType t) { - JobDependency *l, *last; - - assert(j); -@@ -775,7 +748,7 @@ static void transaction_merge_and_delete_job(Manager *m, Job *j, Job *other, Job - /* Kill the other job */ - other->subject_list = NULL; - other->object_list = NULL; -- transaction_delete_job(m, other, true); -+ transaction_delete_job(tr, other, true); - } - static bool job_is_conflicted_by(Job *j) { - JobDependency *l; -@@ -792,7 +765,7 @@ static bool job_is_conflicted_by(Job *j) { - return false; - } - --static int delete_one_unmergeable_job(Manager *m, Job *j) { -+static int delete_one_unmergeable_job(Transaction *tr, Job *j) { - Job *k; - - assert(j); -@@ -853,23 +826,23 @@ static int delete_one_unmergeable_job(Manager *m, Job *j) { - - /* Ok, we can drop one, so let's do so. */ - log_debug("Fixing conflicting jobs by deleting job %s/%s", d->unit->id, job_type_to_string(d->type)); -- transaction_delete_job(m, d, true); -+ transaction_delete_job(tr, d, true); - return 0; - } - - return -EINVAL; - } - --static int transaction_merge_jobs(Manager *m, DBusError *e) { -+static int transaction_merge_jobs(Transaction *tr, DBusError *e) { - Job *j; - Iterator i; - int r; - -- assert(m); -+ assert(tr); - - /* First step, check whether any of the jobs for one specific - * task conflict. If so, try to drop one of them. */ -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - JobType t; - Job *k; - -@@ -882,7 +855,8 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { - * action. Let's see if we can get rid of one - * of them */ - -- if ((r = delete_one_unmergeable_job(m, j)) >= 0) -+ r = delete_one_unmergeable_job(tr, j); -+ if (r >= 0) - /* Ok, we managed to drop one, now - * let's ask our callers to call us - * again after garbage collecting */ -@@ -896,7 +870,7 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { - } - - /* Second step, merge the jobs. */ -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - JobType t = j->type; - Job *k; - -@@ -910,14 +884,14 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { - - while ((k = j->transaction_next)) { - if (j->installed) { -- transaction_merge_and_delete_job(m, k, j, t); -+ transaction_merge_and_delete_job(tr, k, j, t); - j = k; - } else -- transaction_merge_and_delete_job(m, j, k, t); -+ transaction_merge_and_delete_job(tr, j, k, t); - } - - if (j->unit->job && !j->installed) -- transaction_merge_and_delete_job(m, j, j->unit->job, t); -+ transaction_merge_and_delete_job(tr, j, j->unit->job, t); - - assert(!j->transaction_next); - assert(!j->transaction_prev); -@@ -926,10 +900,10 @@ static int transaction_merge_jobs(Manager *m, DBusError *e) { - return 0; - } - --static void transaction_drop_redundant(Manager *m) { -+static void transaction_drop_redundant(Transaction *tr) { - bool again; - -- assert(m); -+ assert(tr); - - /* Goes through the transaction and removes all jobs that are - * a noop */ -@@ -940,7 +914,7 @@ static void transaction_drop_redundant(Manager *m) { - - again = false; - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - bool changes_something = false; - Job *k; - -@@ -959,7 +933,7 @@ static void transaction_drop_redundant(Manager *m) { - continue; - - /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ -- transaction_delete_job(m, j, false); -+ transaction_delete_job(tr, j, false); - again = true; - break; - } -@@ -981,12 +955,12 @@ static bool unit_matters_to_anchor(Unit *u, Job *j) { - return false; - } - --static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned generation, DBusError *e) { -+static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsigned generation, DBusError *e) { - Iterator i; - Unit *u; - int r; - -- assert(m); -+ assert(tr); - assert(j); - assert(!j->transaction_prev); - -@@ -1033,7 +1007,7 @@ static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned - - if (delete) { - log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); -- transaction_delete_unit(m, delete->unit); -+ transaction_delete_unit(tr, delete->unit); - return -EAGAIN; - } - -@@ -1056,15 +1030,18 @@ static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned - Job *o; - - /* Is there a job for this unit? */ -- if (!(o = hashmap_get(m->transaction_jobs, u))) -- -+ o = hashmap_get(tr->jobs, u); -+ if (!o) { - /* Ok, there is no job for this in the - * transaction, but maybe there is already one - * running? */ -- if (!(o = u->job)) -+ o = u->job; -+ if (!o) - continue; -+ } - -- if ((r = transaction_verify_order_one(m, o, j, generation, e)) < 0) -+ r = transaction_verify_order_one(tr, o, j, generation, e); -+ if (r < 0) - return r; - } - -@@ -1075,13 +1052,13 @@ static int transaction_verify_order_one(Manager *m, Job *j, Job *from, unsigned - return 0; - } - --static int transaction_verify_order(Manager *m, unsigned *generation, DBusError *e) { -+static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusError *e) { - Job *j; - int r; - Iterator i; - unsigned g; - -- assert(m); -+ assert(tr); - assert(generation); - - /* Check if the ordering graph is cyclic. If it is, try to fix -@@ -1089,17 +1066,17 @@ static int transaction_verify_order(Manager *m, unsigned *generation, DBusError - - g = (*generation)++; - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) -- if ((r = transaction_verify_order_one(m, j, NULL, g, e)) < 0) -+ HASHMAP_FOREACH(j, tr->jobs, i) -+ if ((r = transaction_verify_order_one(tr, j, NULL, g, e)) < 0) - return r; - - return 0; - } - --static void transaction_collect_garbage(Manager *m) { -+static void transaction_collect_garbage(Transaction *tr) { - bool again; - -- assert(m); -+ assert(tr); - - /* Drop jobs that are not required by any other job */ - -@@ -1109,7 +1086,7 @@ static void transaction_collect_garbage(Manager *m) { - - again = false; - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - if (j->object_list) { - /* log_debug("Keeping job %s/%s because of %s/%s", */ - /* j->unit->id, job_type_to_string(j->type), */ -@@ -1119,7 +1096,7 @@ static void transaction_collect_garbage(Manager *m) { - } - - /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ -- transaction_delete_job(m, j, true); -+ transaction_delete_job(tr, j, true); - again = true; - break; - } -@@ -1127,16 +1104,16 @@ static void transaction_collect_garbage(Manager *m) { - } while (again); - } - --static int transaction_is_destructive(Manager *m, DBusError *e) { -+static int transaction_is_destructive(Transaction *tr, DBusError *e) { - Iterator i; - Job *j; - -- assert(m); -+ assert(tr); - - /* Checks whether applying this transaction means that - * existing jobs would be replaced */ - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - - /* Assume merged */ - assert(!j->transaction_prev); -@@ -1154,9 +1131,9 @@ static int transaction_is_destructive(Manager *m, DBusError *e) { - return 0; - } - --static void transaction_minimize_impact(Manager *m) { -+static void transaction_minimize_impact(Transaction *tr) { - bool again; -- assert(m); -+ assert(tr); - - /* Drops all unnecessary jobs that reverse already active jobs - * or that stop a running service. */ -@@ -1167,7 +1144,7 @@ static void transaction_minimize_impact(Manager *m) { - - again = false; - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - LIST_FOREACH(transaction, j, j) { - bool stops_running_service, changes_existing_job; - -@@ -1198,7 +1175,7 @@ static void transaction_minimize_impact(Manager *m) { - /* Ok, let's get rid of this */ - log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); - -- transaction_delete_job(m, j, true); -+ transaction_delete_job(tr, j, true); - again = true; - break; - } -@@ -1210,7 +1187,7 @@ static void transaction_minimize_impact(Manager *m) { - } while (again); - } - --static int transaction_apply(Manager *m, JobMode mode) { -+static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - Iterator i; - Job *j; - int r; -@@ -1225,7 +1202,7 @@ static int transaction_apply(Manager *m, JobMode mode) { - HASHMAP_FOREACH(j, m->jobs, i) { - assert(j->installed); - -- if (hashmap_get(m->transaction_jobs, j->unit)) -+ if (hashmap_get(tr->jobs, j->unit)) - continue; - - /* 'j' itself is safe to remove, but if other jobs -@@ -1236,7 +1213,7 @@ static int transaction_apply(Manager *m, JobMode mode) { - } - } - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - /* Assume merged */ - assert(!j->transaction_prev); - assert(!j->transaction_next); -@@ -1244,11 +1221,12 @@ static int transaction_apply(Manager *m, JobMode mode) { - if (j->installed) - continue; - -- if ((r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j)) < 0) -+ r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); -+ if (r < 0) - goto rollback; - } - -- while ((j = hashmap_steal_first(m->transaction_jobs))) { -+ while ((j = hashmap_steal_first(tr->jobs))) { - Job *uj; - if (j->installed) { - /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ -@@ -1271,6 +1249,9 @@ static int transaction_apply(Manager *m, JobMode mode) { - assert(!j->transaction_next); - assert(!j->transaction_prev); - -+ /* Clean the job dependencies */ -+ transaction_unlink_job(tr, j, false); -+ - job_add_to_run_queue(j); - job_add_to_dbus_queue(j); - job_start_timer(j); -@@ -1278,14 +1259,13 @@ static int transaction_apply(Manager *m, JobMode mode) { - log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); - } - -- /* As last step, kill all remaining job dependencies. */ -- transaction_clean_dependencies(m); -+ assert(!tr->anchor); - - return 0; - - rollback: - -- HASHMAP_FOREACH(j, m->transaction_jobs, i) { -+ HASHMAP_FOREACH(j, tr->jobs, i) { - if (j->installed) - continue; - -@@ -1295,41 +1275,42 @@ rollback: - return r; - } - --static int transaction_activate(Manager *m, JobMode mode, DBusError *e) { -+static int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { - int r; - unsigned generation = 1; - -- assert(m); -+ assert(tr); - -- /* This applies the changes recorded in transaction_jobs to -+ /* This applies the changes recorded in tr->jobs to - * the actual list of jobs, if possible. */ - - /* First step: figure out which jobs matter */ -- transaction_find_jobs_that_matter_to_anchor(m, NULL, generation++); -+ transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); - - /* Second step: Try not to stop any running services if - * we don't have to. Don't try to reverse running - * jobs if we don't have to. */ - if (mode == JOB_FAIL) -- transaction_minimize_impact(m); -+ transaction_minimize_impact(tr); - - /* Third step: Drop redundant jobs */ -- transaction_drop_redundant(m); -+ transaction_drop_redundant(tr); - - for (;;) { - /* Fourth step: Let's remove unneeded jobs that might - * be lurking. */ - if (mode != JOB_ISOLATE) -- transaction_collect_garbage(m); -+ transaction_collect_garbage(tr); - - /* Fifth step: verify order makes sense and correct - * cycles if necessary and possible */ -- if ((r = transaction_verify_order(m, &generation, e)) >= 0) -+ r = transaction_verify_order(tr, &generation, e); -+ if (r >= 0) - break; - - if (r != -EAGAIN) { - log_warning("Requested transaction contains an unfixable cyclic ordering dependency: %s", bus_error(e, r)); -- goto rollback; -+ return r; - } - - /* Let's see if the resulting transaction ordering -@@ -1340,60 +1321,60 @@ static int transaction_activate(Manager *m, JobMode mode, DBusError *e) { - /* Sixth step: let's drop unmergeable entries if - * necessary and possible, merge entries we can - * merge */ -- if ((r = transaction_merge_jobs(m, e)) >= 0) -+ r = transaction_merge_jobs(tr, e); -+ if (r >= 0) - break; - - if (r != -EAGAIN) { - log_warning("Requested transaction contains unmergeable jobs: %s", bus_error(e, r)); -- goto rollback; -+ return r; - } - - /* Seventh step: an entry got dropped, let's garbage - * collect its dependencies. */ - if (mode != JOB_ISOLATE) -- transaction_collect_garbage(m); -+ transaction_collect_garbage(tr); - - /* Let's see if the resulting transaction still has - * unmergeable entries ... */ - } - - /* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */ -- transaction_drop_redundant(m); -+ transaction_drop_redundant(tr); - - /* Ninth step: check whether we can actually apply this */ -- if (mode == JOB_FAIL) -- if ((r = transaction_is_destructive(m, e)) < 0) { -+ if (mode == JOB_FAIL) { -+ r = transaction_is_destructive(tr, e); -+ if (r < 0) { - log_notice("Requested transaction contradicts existing jobs: %s", bus_error(e, r)); -- goto rollback; -+ return r; - } -+ } - - /* Tenth step: apply changes */ -- if ((r = transaction_apply(m, mode)) < 0) { -+ r = transaction_apply(tr, m, mode); -+ if (r < 0) { - log_warning("Failed to apply transaction: %s", strerror(-r)); -- goto rollback; -+ return r; - } - -- assert(hashmap_isempty(m->transaction_jobs)); -- assert(!m->transaction_anchor); -+ assert(hashmap_isempty(tr->jobs)); -+ assert(!tr->anchor); - - return 0; -- --rollback: -- transaction_abort(m); -- return r; - } - --static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool override, bool *is_new) { -+static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, bool override, bool *is_new) { - Job *j, *f; - -- assert(m); -+ assert(tr); - assert(unit); - - /* Looks for an existing prospective job and returns that. If - * it doesn't exist it is created and added to the prospective - * jobs list. */ - -- f = hashmap_get(m->transaction_jobs, unit); -+ f = hashmap_get(tr->jobs, unit); - - LIST_FOREACH(transaction, j, f) { - assert(j->unit == unit); -@@ -1407,8 +1388,11 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o - - if (unit->job && unit->job->type == type) - j = unit->job; -- else if (!(j = job_new(m, type, unit))) -- return NULL; -+ else { -+ j = job_new(unit->manager, type, unit); -+ if (!j) -+ return NULL; -+ } - - j->generation = 0; - j->marker = NULL; -@@ -1417,7 +1401,7 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o - - LIST_PREPEND(Job, transaction, f, j); - -- if (hashmap_replace(m->transaction_jobs, unit, f) < 0) { -+ if (hashmap_replace(tr->jobs, unit, f) < 0) { - LIST_REMOVE(Job, transaction, f, j); - job_free(j); - return NULL; -@@ -1431,16 +1415,16 @@ static Job* transaction_add_one_job(Manager *m, JobType type, Unit *unit, bool o - return j; - } - --static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) { -- assert(m); -+static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { -+ assert(tr); - assert(j); - - if (j->transaction_prev) - j->transaction_prev->transaction_next = j->transaction_next; - else if (j->transaction_next) -- hashmap_replace(m->transaction_jobs, j->unit, j->transaction_next); -+ hashmap_replace(tr->jobs, j->unit, j->transaction_next); - else -- hashmap_remove_value(m->transaction_jobs, j->unit, j); -+ hashmap_remove_value(tr->jobs, j->unit, j); - - if (j->transaction_next) - j->transaction_next->transaction_prev = j->transaction_prev; -@@ -1448,24 +1432,24 @@ static void transaction_unlink_job(Manager *m, Job *j, bool delete_dependencies) - j->transaction_prev = j->transaction_next = NULL; - - while (j->subject_list) -- job_dependency_free(j->subject_list); -+ job_dependency_free(j->subject_list, tr); - - while (j->object_list) { - Job *other = j->object_list->matters ? j->object_list->subject : NULL; - -- job_dependency_free(j->object_list); -+ job_dependency_free(j->object_list, tr); - - if (other && delete_dependencies) { - log_debug("Deleting job %s/%s as dependency of job %s/%s", - other->unit->id, job_type_to_string(other->type), - j->unit->id, job_type_to_string(j->type)); -- transaction_delete_job(m, other, delete_dependencies); -+ transaction_delete_job(tr, other, delete_dependencies); - } - } - } - - static int transaction_add_job_and_dependencies( -- Manager *m, -+ Transaction *tr, - JobType type, - Unit *unit, - Job *by, -@@ -1482,7 +1466,7 @@ static int transaction_add_job_and_dependencies( - int r; - bool is_new; - -- assert(m); -+ assert(tr); - assert(type < _JOB_TYPE_MAX); - assert(unit); - -@@ -1519,13 +1503,14 @@ static int transaction_add_job_and_dependencies( - } - - /* First add the job. */ -- if (!(ret = transaction_add_one_job(m, type, unit, override, &is_new))) -+ ret = transaction_add_one_job(tr, type, unit, override, &is_new); -+ if (!ret) - return -ENOMEM; - - ret->ignore_order = ret->ignore_order || ignore_order; - - /* Then, add a link to the job. */ -- if (!job_dependency_new(by, ret, matters, conflicts)) -+ if (!job_dependency_new(by, ret, matters, conflicts, tr)) - return -ENOMEM; - - if (is_new && !ignore_requirements) { -@@ -1534,120 +1519,136 @@ static int transaction_add_job_and_dependencies( - /* If we are following some other unit, make sure we - * add all dependencies of everybody following. */ - if (unit_following_set(ret->unit, &following) > 0) { -- SET_FOREACH(dep, following, i) -- if ((r = transaction_add_job_and_dependencies(m, type, dep, ret, false, override, false, false, ignore_order, e, NULL)) < 0) { -+ SET_FOREACH(dep, following, i) { -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); - } -+ } - - set_free(following); - } - - /* Finally, recursively add in all dependencies. */ - if (type == JOB_START || type == JOB_RELOAD_OR_START) { -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - if (r != -EBADR) - goto fail; - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { -- -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - if (r != -EBADR) - goto fail; - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL)) < 0) { -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL)) < 0) { -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); -+ if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { -- -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - if (r != -EBADR) - goto fail; - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL)) < 0) { -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL)) < 0) { -- -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); -+ if (r < 0) { - if (r != -EBADR) - goto fail; - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) -- if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL)) < 0) { -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); - } -+ } - - } - - if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) -- if ((r = transaction_add_job_and_dependencies(m, type, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { -- -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - if (r != -EBADR) - goto fail; - - if (e) - dbus_error_free(e); - } -+ } - -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) -- if ((r = transaction_add_job_and_dependencies(m, type, dep, ret, true, override, false, false, ignore_order, e, NULL)) < 0) { -- -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { - if (r != -EBADR) - goto fail; - - if (e) - dbus_error_free(e); - } -+ } - } - - if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { -- r = transaction_add_job_and_dependencies(m, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); -- -+ r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); - if (r < 0) { - log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -1669,12 +1670,13 @@ fail: - return r; - } - --static int transaction_add_isolate_jobs(Manager *m) { -+static int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { - Iterator i; - Unit *u; - char *k; - int r; - -+ assert(tr); - assert(m); - - HASHMAP_FOREACH_KEY(u, k, m->units, i) { -@@ -1691,19 +1693,43 @@ static int transaction_add_isolate_jobs(Manager *m) { - continue; - - /* Is there already something listed for this? */ -- if (hashmap_get(m->transaction_jobs, u)) -+ if (hashmap_get(tr->jobs, u)) - continue; - -- if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL)) < 0) -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); -+ if (r < 0) - log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); - } - - return 0; - } - -+static Transaction *transaction_new(void) { -+ Transaction *tr; -+ -+ tr = new0(Transaction, 1); -+ if (!tr) -+ return NULL; -+ -+ tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); -+ if (!tr->jobs) { -+ free(tr); -+ return NULL; -+ } -+ -+ return tr; -+} -+ -+static void transaction_free(Transaction *tr) { -+ assert(hashmap_isempty(tr->jobs)); -+ hashmap_free(tr->jobs); -+ free(tr); -+} -+ - int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { - int r; - Job *ret; -+ Transaction *tr; - - assert(m); - assert(type < _JOB_TYPE_MAX); -@@ -1722,28 +1748,38 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove - - log_debug("Trying to enqueue job %s/%s/%s", unit->id, job_type_to_string(type), job_mode_to_string(mode)); - -- if ((r = transaction_add_job_and_dependencies(m, type, unit, NULL, true, override, false, -- mode == JOB_IGNORE_DEPENDENCIES || mode == JOB_IGNORE_REQUIREMENTS, -- mode == JOB_IGNORE_DEPENDENCIES, e, &ret)) < 0) { -- transaction_abort(m); -- return r; -- } -+ tr = transaction_new(); -+ if (!tr) -+ return -ENOMEM; - -- if (mode == JOB_ISOLATE) -- if ((r = transaction_add_isolate_jobs(m)) < 0) { -- transaction_abort(m); -- return r; -- } -+ r = transaction_add_job_and_dependencies(tr, type, unit, NULL, true, override, false, -+ mode == JOB_IGNORE_DEPENDENCIES || mode == JOB_IGNORE_REQUIREMENTS, -+ mode == JOB_IGNORE_DEPENDENCIES, e, &ret); -+ if (r < 0) -+ goto tr_abort; - -- if ((r = transaction_activate(m, mode, e)) < 0) -- return r; -+ if (mode == JOB_ISOLATE) { -+ r = transaction_add_isolate_jobs(tr, m); -+ if (r < 0) -+ goto tr_abort; -+ } -+ -+ r = transaction_activate(tr, m, mode, e); -+ if (r < 0) -+ goto tr_abort; - - log_debug("Enqueued job %s/%s as %u", unit->id, job_type_to_string(type), (unsigned) ret->id); - - if (_ret) - *_ret = ret; - -+ transaction_free(tr); - return 0; -+ -+tr_abort: -+ transaction_abort(tr); -+ transaction_free(tr); -+ return r; - } - - int manager_add_job_by_name(Manager *m, JobType type, const char *name, JobMode mode, bool override, DBusError *e, Job **_ret) { -@@ -1907,8 +1943,6 @@ void manager_clear_jobs(Manager *m) { - - assert(m); - -- transaction_abort(m); -- - while ((j = hashmap_first(m->jobs))) - job_finish_and_invalidate(j, JOB_CANCELED); - } -diff --git a/src/manager.h b/src/manager.h -index 64d8d0e..b982d7e 100644 ---- a/src/manager.h -+++ b/src/manager.h -@@ -33,6 +33,7 @@ - #define MANAGER_MAX_NAMES 131072 /* 128K */ - - typedef struct Manager Manager; -+typedef struct Transaction Transaction; - typedef enum WatchType WatchType; - typedef struct Watch Watch; - -@@ -91,6 +92,12 @@ struct Watch { - #include "dbus.h" - #include "path-lookup.h" - -+struct Transaction { -+ /* Jobs to be added */ -+ Hashmap *jobs; /* Unit object => Job object list 1:1 */ -+ JobDependency *anchor; -+}; -+ - struct Manager { - /* Note that the set of units we know of is allowed to be - * inconsistent. However the subset of it that is loaded may -@@ -123,10 +130,6 @@ struct Manager { - /* Units to check when doing GC */ - LIST_HEAD(Unit, gc_queue); - -- /* Jobs to be added */ -- Hashmap *transaction_jobs; /* Unit object => Job object list 1:1 */ -- JobDependency *transaction_anchor; -- - Hashmap *watch_pids; /* pid => Unit object n:1 */ - - char *notify_socket; --- -1.7.7 - - -From e617c9a330b60d070e3db57c1f86f3c579e03f0c Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 19 Apr 2012 23:54:11 +0200 -Subject: [PATCH 08/30] manager: split transaction.[ch] - -manager.c takes care of the main loop, unit management, signal handling, ... -transaction.c computes transactions. - -After split: -manager.c: 65 KB -transaction.c: 40 KB -(cherry picked from commit 75778e21dfeee51036d24501e39ea7398fabe502) - -Conflicts: - - Makefile.am - src/manager.c ---- - Makefile.am | 2 + - src/job.h | 1 + - src/manager.c | 1099 +---------------------------------------------------- - src/manager.h | 7 - - src/transaction.c | 1101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/transaction.h | 36 ++ - 6 files changed, 1141 insertions(+), 1105 deletions(-) - create mode 100644 src/transaction.c - create mode 100644 src/transaction.h - -diff --git a/Makefile.am b/Makefile.am -index 079c118..45a0b10 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -483,6 +483,7 @@ libsystemd_core_la_SOURCES = \ - src/unit.c \ - src/job.c \ - src/manager.c \ -+ src/transaction.c \ - src/path-lookup.c \ - src/load-fragment.c \ - src/service.c \ -@@ -579,6 +580,7 @@ EXTRA_DIST += \ - src/unit.h \ - src/job.h \ - src/manager.h \ -+ src/transaction.h \ - src/path-lookup.h \ - src/load-fragment.h \ - src/service.h \ -diff --git a/src/job.h b/src/job.h -index 18ba64f..efb0af9 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -34,6 +34,7 @@ typedef enum JobMode JobMode; - typedef enum JobResult JobResult; - - #include "manager.h" -+#include "transaction.h" - #include "unit.h" - #include "hashmap.h" - #include "list.h" -diff --git a/src/manager.c b/src/manager.c -index ff4249d..a129b88 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -44,6 +44,7 @@ - #include - - #include "manager.h" -+#include "transaction.h" - #include "hashmap.h" - #include "macro.h" - #include "strv.h" -@@ -628,1104 +629,6 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - return r; - } - --static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies); -- --static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependencies) { -- assert(tr); -- assert(j); -- -- /* Deletes one job from the transaction */ -- -- transaction_unlink_job(tr, j, delete_dependencies); -- -- if (!j->installed) -- job_free(j); --} -- --static void transaction_delete_unit(Transaction *tr, Unit *u) { -- Job *j; -- -- /* Deletes all jobs associated with a certain unit from the -- * transaction */ -- -- while ((j = hashmap_get(tr->jobs, u))) -- transaction_delete_job(tr, j, true); --} -- --static void transaction_abort(Transaction *tr) { -- Job *j; -- -- assert(tr); -- -- while ((j = hashmap_first(tr->jobs))) -- transaction_delete_job(tr, j, true); -- -- assert(hashmap_isempty(tr->jobs)); -- -- assert(!tr->anchor); --} -- --static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { -- JobDependency *l; -- -- assert(tr); -- -- /* A recursive sweep through the graph that marks all units -- * that matter to the anchor job, i.e. are directly or -- * indirectly a dependency of the anchor job via paths that -- * are fully marked as mattering. */ -- -- if (j) -- l = j->subject_list; -- else -- l = tr->anchor; -- -- LIST_FOREACH(subject, l, l) { -- -- /* This link does not matter */ -- if (!l->matters) -- continue; -- -- /* This unit has already been marked */ -- if (l->object->generation == generation) -- continue; -- -- l->object->matters_to_anchor = true; -- l->object->generation = generation; -- -- transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); -- } --} -- --static void transaction_merge_and_delete_job(Transaction *tr, Job *j, Job *other, JobType t) { -- JobDependency *l, *last; -- -- assert(j); -- assert(other); -- assert(j->unit == other->unit); -- assert(!j->installed); -- -- /* Merges 'other' into 'j' and then deletes j. */ -- -- j->type = t; -- j->state = JOB_WAITING; -- j->override = j->override || other->override; -- -- j->matters_to_anchor = j->matters_to_anchor || other->matters_to_anchor; -- -- /* Patch us in as new owner of the JobDependency objects */ -- last = NULL; -- LIST_FOREACH(subject, l, other->subject_list) { -- assert(l->subject == other); -- l->subject = j; -- last = l; -- } -- -- /* Merge both lists */ -- if (last) { -- last->subject_next = j->subject_list; -- if (j->subject_list) -- j->subject_list->subject_prev = last; -- j->subject_list = other->subject_list; -- } -- -- /* Patch us in as new owner of the JobDependency objects */ -- last = NULL; -- LIST_FOREACH(object, l, other->object_list) { -- assert(l->object == other); -- l->object = j; -- last = l; -- } -- -- /* Merge both lists */ -- if (last) { -- last->object_next = j->object_list; -- if (j->object_list) -- j->object_list->object_prev = last; -- j->object_list = other->object_list; -- } -- -- /* Kill the other job */ -- other->subject_list = NULL; -- other->object_list = NULL; -- transaction_delete_job(tr, other, true); --} --static bool job_is_conflicted_by(Job *j) { -- JobDependency *l; -- -- assert(j); -- -- /* Returns true if this job is pulled in by a least one -- * ConflictedBy dependency. */ -- -- LIST_FOREACH(object, l, j->object_list) -- if (l->conflicts) -- return true; -- -- return false; --} -- --static int delete_one_unmergeable_job(Transaction *tr, Job *j) { -- Job *k; -- -- assert(j); -- -- /* Tries to delete one item in the linked list -- * j->transaction_next->transaction_next->... that conflicts -- * with another one, in an attempt to make an inconsistent -- * transaction work. */ -- -- /* We rely here on the fact that if a merged with b does not -- * merge with c, either a or b merge with c neither */ -- LIST_FOREACH(transaction, j, j) -- LIST_FOREACH(transaction, k, j->transaction_next) { -- Job *d; -- -- /* Is this one mergeable? Then skip it */ -- if (job_type_is_mergeable(j->type, k->type)) -- continue; -- -- /* Ok, we found two that conflict, let's see if we can -- * drop one of them */ -- if (!j->matters_to_anchor && !k->matters_to_anchor) { -- -- /* Both jobs don't matter, so let's -- * find the one that is smarter to -- * remove. Let's think positive and -- * rather remove stops then starts -- -- * except if something is being -- * stopped because it is conflicted by -- * another unit in which case we -- * rather remove the start. */ -- -- log_debug("Looking at job %s/%s conflicted_by=%s", j->unit->id, job_type_to_string(j->type), yes_no(j->type == JOB_STOP && job_is_conflicted_by(j))); -- log_debug("Looking at job %s/%s conflicted_by=%s", k->unit->id, job_type_to_string(k->type), yes_no(k->type == JOB_STOP && job_is_conflicted_by(k))); -- -- if (j->type == JOB_STOP) { -- -- if (job_is_conflicted_by(j)) -- d = k; -- else -- d = j; -- -- } else if (k->type == JOB_STOP) { -- -- if (job_is_conflicted_by(k)) -- d = j; -- else -- d = k; -- } else -- d = j; -- -- } else if (!j->matters_to_anchor) -- d = j; -- else if (!k->matters_to_anchor) -- d = k; -- else -- return -ENOEXEC; -- -- /* Ok, we can drop one, so let's do so. */ -- log_debug("Fixing conflicting jobs by deleting job %s/%s", d->unit->id, job_type_to_string(d->type)); -- transaction_delete_job(tr, d, true); -- return 0; -- } -- -- return -EINVAL; --} -- --static int transaction_merge_jobs(Transaction *tr, DBusError *e) { -- Job *j; -- Iterator i; -- int r; -- -- assert(tr); -- -- /* First step, check whether any of the jobs for one specific -- * task conflict. If so, try to drop one of them. */ -- HASHMAP_FOREACH(j, tr->jobs, i) { -- JobType t; -- Job *k; -- -- t = j->type; -- LIST_FOREACH(transaction, k, j->transaction_next) { -- if (job_type_merge(&t, k->type) >= 0) -- continue; -- -- /* OK, we could not merge all jobs for this -- * action. Let's see if we can get rid of one -- * of them */ -- -- r = delete_one_unmergeable_job(tr, j); -- if (r >= 0) -- /* Ok, we managed to drop one, now -- * let's ask our callers to call us -- * again after garbage collecting */ -- return -EAGAIN; -- -- /* We couldn't merge anything. Failure */ -- dbus_set_error(e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING, "Transaction contains conflicting jobs '%s' and '%s' for %s. Probably contradicting requirement dependencies configured.", -- job_type_to_string(t), job_type_to_string(k->type), k->unit->id); -- return r; -- } -- } -- -- /* Second step, merge the jobs. */ -- HASHMAP_FOREACH(j, tr->jobs, i) { -- JobType t = j->type; -- Job *k; -- -- /* Merge all transactions */ -- LIST_FOREACH(transaction, k, j->transaction_next) -- assert_se(job_type_merge(&t, k->type) == 0); -- -- /* If an active job is mergeable, merge it too */ -- if (j->unit->job) -- job_type_merge(&t, j->unit->job->type); /* Might fail. Which is OK */ -- -- while ((k = j->transaction_next)) { -- if (j->installed) { -- transaction_merge_and_delete_job(tr, k, j, t); -- j = k; -- } else -- transaction_merge_and_delete_job(tr, j, k, t); -- } -- -- if (j->unit->job && !j->installed) -- transaction_merge_and_delete_job(tr, j, j->unit->job, t); -- -- assert(!j->transaction_next); -- assert(!j->transaction_prev); -- } -- -- return 0; --} -- --static void transaction_drop_redundant(Transaction *tr) { -- bool again; -- -- assert(tr); -- -- /* Goes through the transaction and removes all jobs that are -- * a noop */ -- -- do { -- Job *j; -- Iterator i; -- -- again = false; -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- bool changes_something = false; -- Job *k; -- -- LIST_FOREACH(transaction, k, j) { -- -- if (!job_is_anchor(k) && -- (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && -- (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) -- continue; -- -- changes_something = true; -- break; -- } -- -- if (changes_something) -- continue; -- -- /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ -- transaction_delete_job(tr, j, false); -- again = true; -- break; -- } -- -- } while (again); --} -- --static bool unit_matters_to_anchor(Unit *u, Job *j) { -- assert(u); -- assert(!j->transaction_prev); -- -- /* Checks whether at least one of the jobs for this unit -- * matters to the anchor. */ -- -- LIST_FOREACH(transaction, j, j) -- if (j->matters_to_anchor) -- return true; -- -- return false; --} -- --static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsigned generation, DBusError *e) { -- Iterator i; -- Unit *u; -- int r; -- -- assert(tr); -- assert(j); -- assert(!j->transaction_prev); -- -- /* Does a recursive sweep through the ordering graph, looking -- * for a cycle. If we find cycle we try to break it. */ -- -- /* Have we seen this before? */ -- if (j->generation == generation) { -- Job *k, *delete; -- -- /* If the marker is NULL we have been here already and -- * decided the job was loop-free from here. Hence -- * shortcut things and return right-away. */ -- if (!j->marker) -- return 0; -- -- /* So, the marker is not NULL and we already have been -- * here. We have a cycle. Let's try to break it. We go -- * backwards in our path and try to find a suitable -- * job to remove. We use the marker to find our way -- * back, since smart how we are we stored our way back -- * in there. */ -- log_warning("Found ordering cycle on %s/%s", j->unit->id, job_type_to_string(j->type)); -- -- delete = NULL; -- for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { -- -- log_info("Walked on cycle path to %s/%s", k->unit->id, job_type_to_string(k->type)); -- -- if (!delete && -- !k->installed && -- !unit_matters_to_anchor(k->unit, k)) { -- /* Ok, we can drop this one, so let's -- * do so. */ -- delete = k; -- } -- -- /* Check if this in fact was the beginning of -- * the cycle */ -- if (k == j) -- break; -- } -- -- -- if (delete) { -- log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); -- transaction_delete_unit(tr, delete->unit); -- return -EAGAIN; -- } -- -- log_error("Unable to break cycle"); -- -- dbus_set_error(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC, "Transaction order is cyclic. See system logs for details."); -- return -ENOEXEC; -- } -- -- /* Make the marker point to where we come from, so that we can -- * find our way backwards if we want to break a cycle. We use -- * a special marker for the beginning: we point to -- * ourselves. */ -- j->marker = from ? from : j; -- j->generation = generation; -- -- /* We assume that the the dependencies are bidirectional, and -- * hence can ignore UNIT_AFTER */ -- SET_FOREACH(u, j->unit->dependencies[UNIT_BEFORE], i) { -- Job *o; -- -- /* Is there a job for this unit? */ -- o = hashmap_get(tr->jobs, u); -- if (!o) { -- /* Ok, there is no job for this in the -- * transaction, but maybe there is already one -- * running? */ -- o = u->job; -- if (!o) -- continue; -- } -- -- r = transaction_verify_order_one(tr, o, j, generation, e); -- if (r < 0) -- return r; -- } -- -- /* Ok, let's backtrack, and remember that this entry is not on -- * our path anymore. */ -- j->marker = NULL; -- -- return 0; --} -- --static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusError *e) { -- Job *j; -- int r; -- Iterator i; -- unsigned g; -- -- assert(tr); -- assert(generation); -- -- /* Check if the ordering graph is cyclic. If it is, try to fix -- * that up by dropping one of the jobs. */ -- -- g = (*generation)++; -- -- HASHMAP_FOREACH(j, tr->jobs, i) -- if ((r = transaction_verify_order_one(tr, j, NULL, g, e)) < 0) -- return r; -- -- return 0; --} -- --static void transaction_collect_garbage(Transaction *tr) { -- bool again; -- -- assert(tr); -- -- /* Drop jobs that are not required by any other job */ -- -- do { -- Iterator i; -- Job *j; -- -- again = false; -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- if (j->object_list) { -- /* log_debug("Keeping job %s/%s because of %s/%s", */ -- /* j->unit->id, job_type_to_string(j->type), */ -- /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ -- /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ -- continue; -- } -- -- /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ -- transaction_delete_job(tr, j, true); -- again = true; -- break; -- } -- -- } while (again); --} -- --static int transaction_is_destructive(Transaction *tr, DBusError *e) { -- Iterator i; -- Job *j; -- -- assert(tr); -- -- /* Checks whether applying this transaction means that -- * existing jobs would be replaced */ -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- -- /* Assume merged */ -- assert(!j->transaction_prev); -- assert(!j->transaction_next); -- -- if (j->unit->job && -- j->unit->job != j && -- !job_type_is_superset(j->type, j->unit->job->type)) { -- -- dbus_set_error(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); -- return -EEXIST; -- } -- } -- -- return 0; --} -- --static void transaction_minimize_impact(Transaction *tr) { -- bool again; -- assert(tr); -- -- /* Drops all unnecessary jobs that reverse already active jobs -- * or that stop a running service. */ -- -- do { -- Job *j; -- Iterator i; -- -- again = false; -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- LIST_FOREACH(transaction, j, j) { -- bool stops_running_service, changes_existing_job; -- -- /* If it matters, we shouldn't drop it */ -- if (j->matters_to_anchor) -- continue; -- -- /* Would this stop a running service? -- * Would this change an existing job? -- * If so, let's drop this entry */ -- -- stops_running_service = -- j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); -- -- changes_existing_job = -- j->unit->job && -- job_type_is_conflicting(j->type, j->unit->job->type); -- -- if (!stops_running_service && !changes_existing_job) -- continue; -- -- if (stops_running_service) -- log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); -- -- if (changes_existing_job) -- log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); -- -- /* Ok, let's get rid of this */ -- log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); -- -- transaction_delete_job(tr, j, true); -- again = true; -- break; -- } -- -- if (again) -- break; -- } -- -- } while (again); --} -- --static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { -- Iterator i; -- Job *j; -- int r; -- -- /* Moves the transaction jobs to the set of active jobs */ -- -- if (mode == JOB_ISOLATE) { -- -- /* When isolating first kill all installed jobs which -- * aren't part of the new transaction */ -- rescan: -- HASHMAP_FOREACH(j, m->jobs, i) { -- assert(j->installed); -- -- if (hashmap_get(tr->jobs, j->unit)) -- continue; -- -- /* 'j' itself is safe to remove, but if other jobs -- are invalidated recursively, our iterator may become -- invalid and we need to start over. */ -- if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) -- goto rescan; -- } -- } -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- /* Assume merged */ -- assert(!j->transaction_prev); -- assert(!j->transaction_next); -- -- if (j->installed) -- continue; -- -- r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); -- if (r < 0) -- goto rollback; -- } -- -- while ((j = hashmap_steal_first(tr->jobs))) { -- Job *uj; -- if (j->installed) { -- /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ -- continue; -- } -- -- uj = j->unit->job; -- if (uj) { -- job_uninstall(uj); -- job_free(uj); -- } -- -- j->unit->job = j; -- j->installed = true; -- m->n_installed_jobs ++; -- -- /* We're fully installed. Now let's free data we don't -- * need anymore. */ -- -- assert(!j->transaction_next); -- assert(!j->transaction_prev); -- -- /* Clean the job dependencies */ -- transaction_unlink_job(tr, j, false); -- -- job_add_to_run_queue(j); -- job_add_to_dbus_queue(j); -- job_start_timer(j); -- -- log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); -- } -- -- assert(!tr->anchor); -- -- return 0; -- --rollback: -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- if (j->installed) -- continue; -- -- hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); -- } -- -- return r; --} -- --static int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { -- int r; -- unsigned generation = 1; -- -- assert(tr); -- -- /* This applies the changes recorded in tr->jobs to -- * the actual list of jobs, if possible. */ -- -- /* First step: figure out which jobs matter */ -- transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); -- -- /* Second step: Try not to stop any running services if -- * we don't have to. Don't try to reverse running -- * jobs if we don't have to. */ -- if (mode == JOB_FAIL) -- transaction_minimize_impact(tr); -- -- /* Third step: Drop redundant jobs */ -- transaction_drop_redundant(tr); -- -- for (;;) { -- /* Fourth step: Let's remove unneeded jobs that might -- * be lurking. */ -- if (mode != JOB_ISOLATE) -- transaction_collect_garbage(tr); -- -- /* Fifth step: verify order makes sense and correct -- * cycles if necessary and possible */ -- r = transaction_verify_order(tr, &generation, e); -- if (r >= 0) -- break; -- -- if (r != -EAGAIN) { -- log_warning("Requested transaction contains an unfixable cyclic ordering dependency: %s", bus_error(e, r)); -- return r; -- } -- -- /* Let's see if the resulting transaction ordering -- * graph is still cyclic... */ -- } -- -- for (;;) { -- /* Sixth step: let's drop unmergeable entries if -- * necessary and possible, merge entries we can -- * merge */ -- r = transaction_merge_jobs(tr, e); -- if (r >= 0) -- break; -- -- if (r != -EAGAIN) { -- log_warning("Requested transaction contains unmergeable jobs: %s", bus_error(e, r)); -- return r; -- } -- -- /* Seventh step: an entry got dropped, let's garbage -- * collect its dependencies. */ -- if (mode != JOB_ISOLATE) -- transaction_collect_garbage(tr); -- -- /* Let's see if the resulting transaction still has -- * unmergeable entries ... */ -- } -- -- /* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */ -- transaction_drop_redundant(tr); -- -- /* Ninth step: check whether we can actually apply this */ -- if (mode == JOB_FAIL) { -- r = transaction_is_destructive(tr, e); -- if (r < 0) { -- log_notice("Requested transaction contradicts existing jobs: %s", bus_error(e, r)); -- return r; -- } -- } -- -- /* Tenth step: apply changes */ -- r = transaction_apply(tr, m, mode); -- if (r < 0) { -- log_warning("Failed to apply transaction: %s", strerror(-r)); -- return r; -- } -- -- assert(hashmap_isempty(tr->jobs)); -- assert(!tr->anchor); -- -- return 0; --} -- --static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, bool override, bool *is_new) { -- Job *j, *f; -- -- assert(tr); -- assert(unit); -- -- /* Looks for an existing prospective job and returns that. If -- * it doesn't exist it is created and added to the prospective -- * jobs list. */ -- -- f = hashmap_get(tr->jobs, unit); -- -- LIST_FOREACH(transaction, j, f) { -- assert(j->unit == unit); -- -- if (j->type == type) { -- if (is_new) -- *is_new = false; -- return j; -- } -- } -- -- if (unit->job && unit->job->type == type) -- j = unit->job; -- else { -- j = job_new(unit->manager, type, unit); -- if (!j) -- return NULL; -- } -- -- j->generation = 0; -- j->marker = NULL; -- j->matters_to_anchor = false; -- j->override = override; -- -- LIST_PREPEND(Job, transaction, f, j); -- -- if (hashmap_replace(tr->jobs, unit, f) < 0) { -- LIST_REMOVE(Job, transaction, f, j); -- job_free(j); -- return NULL; -- } -- -- if (is_new) -- *is_new = true; -- -- /* log_debug("Added job %s/%s to transaction.", unit->id, job_type_to_string(type)); */ -- -- return j; --} -- --static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { -- assert(tr); -- assert(j); -- -- if (j->transaction_prev) -- j->transaction_prev->transaction_next = j->transaction_next; -- else if (j->transaction_next) -- hashmap_replace(tr->jobs, j->unit, j->transaction_next); -- else -- hashmap_remove_value(tr->jobs, j->unit, j); -- -- if (j->transaction_next) -- j->transaction_next->transaction_prev = j->transaction_prev; -- -- j->transaction_prev = j->transaction_next = NULL; -- -- while (j->subject_list) -- job_dependency_free(j->subject_list, tr); -- -- while (j->object_list) { -- Job *other = j->object_list->matters ? j->object_list->subject : NULL; -- -- job_dependency_free(j->object_list, tr); -- -- if (other && delete_dependencies) { -- log_debug("Deleting job %s/%s as dependency of job %s/%s", -- other->unit->id, job_type_to_string(other->type), -- j->unit->id, job_type_to_string(j->type)); -- transaction_delete_job(tr, other, delete_dependencies); -- } -- } --} -- --static int transaction_add_job_and_dependencies( -- Transaction *tr, -- JobType type, -- Unit *unit, -- Job *by, -- bool matters, -- bool override, -- bool conflicts, -- bool ignore_requirements, -- bool ignore_order, -- DBusError *e, -- Job **_ret) { -- Job *ret; -- Iterator i; -- Unit *dep; -- int r; -- bool is_new; -- -- assert(tr); -- assert(type < _JOB_TYPE_MAX); -- assert(unit); -- -- /* log_debug("Pulling in %s/%s from %s/%s", */ -- /* unit->id, job_type_to_string(type), */ -- /* by ? by->unit->id : "NA", */ -- /* by ? job_type_to_string(by->type) : "NA"); */ -- -- if (unit->load_state != UNIT_LOADED && -- unit->load_state != UNIT_ERROR && -- unit->load_state != UNIT_MASKED) { -- dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id); -- return -EINVAL; -- } -- -- if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { -- dbus_set_error(e, BUS_ERROR_LOAD_FAILED, -- "Unit %s failed to load: %s. " -- "See system logs and 'systemctl status %s' for details.", -- unit->id, -- strerror(-unit->load_error), -- unit->id); -- return -EINVAL; -- } -- -- if (type != JOB_STOP && unit->load_state == UNIT_MASKED) { -- dbus_set_error(e, BUS_ERROR_MASKED, "Unit %s is masked.", unit->id); -- return -EINVAL; -- } -- -- if (!unit_job_is_applicable(unit, type)) { -- dbus_set_error(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, "Job type %s is not applicable for unit %s.", job_type_to_string(type), unit->id); -- return -EBADR; -- } -- -- /* First add the job. */ -- ret = transaction_add_one_job(tr, type, unit, override, &is_new); -- if (!ret) -- return -ENOMEM; -- -- ret->ignore_order = ret->ignore_order || ignore_order; -- -- /* Then, add a link to the job. */ -- if (!job_dependency_new(by, ret, matters, conflicts, tr)) -- return -ENOMEM; -- -- if (is_new && !ignore_requirements) { -- Set *following; -- -- /* If we are following some other unit, make sure we -- * add all dependencies of everybody following. */ -- if (unit_following_set(ret->unit, &following) > 0) { -- SET_FOREACH(dep, following, i) { -- r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- set_free(following); -- } -- -- /* Finally, recursively add in all dependencies. */ -- if (type == JOB_START || type == JOB_RELOAD_OR_START) { -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- if (r != -EBADR) -- goto fail; -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- if (r != -EBADR) -- goto fail; -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); -- if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- if (r != -EBADR) -- goto fail; -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); -- if (r < 0) { -- if (r != -EBADR) -- goto fail; -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- } -- -- if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { -- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- if (r != -EBADR) -- goto fail; -- -- if (e) -- dbus_error_free(e); -- } -- } -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { -- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- if (r != -EBADR) -- goto fail; -- -- if (e) -- dbus_error_free(e); -- } -- } -- } -- -- if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { -- -- SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); -- if (r < 0) { -- log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -- -- if (e) -- dbus_error_free(e); -- } -- } -- } -- -- /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ -- } -- -- if (_ret) -- *_ret = ret; -- -- return 0; -- --fail: -- return r; --} -- --static int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { -- Iterator i; -- Unit *u; -- char *k; -- int r; -- -- assert(tr); -- assert(m); -- -- HASHMAP_FOREACH_KEY(u, k, m->units, i) { -- -- /* ignore aliases */ -- if (u->id != k) -- continue; -- -- if (u->ignore_on_isolate) -- continue; -- -- /* No need to stop inactive jobs */ -- if (UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(u)) && !u->job) -- continue; -- -- /* Is there already something listed for this? */ -- if (hashmap_get(tr->jobs, u)) -- continue; -- -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); -- if (r < 0) -- log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); -- } -- -- return 0; --} -- --static Transaction *transaction_new(void) { -- Transaction *tr; -- -- tr = new0(Transaction, 1); -- if (!tr) -- return NULL; -- -- tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); -- if (!tr->jobs) { -- free(tr); -- return NULL; -- } -- -- return tr; --} -- --static void transaction_free(Transaction *tr) { -- assert(hashmap_isempty(tr->jobs)); -- hashmap_free(tr->jobs); -- free(tr); --} -- - int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { - int r; - Job *ret; -diff --git a/src/manager.h b/src/manager.h -index b982d7e..915f6fc 100644 ---- a/src/manager.h -+++ b/src/manager.h -@@ -33,7 +33,6 @@ - #define MANAGER_MAX_NAMES 131072 /* 128K */ - - typedef struct Manager Manager; --typedef struct Transaction Transaction; - typedef enum WatchType WatchType; - typedef struct Watch Watch; - -@@ -92,12 +91,6 @@ struct Watch { - #include "dbus.h" - #include "path-lookup.h" - --struct Transaction { -- /* Jobs to be added */ -- Hashmap *jobs; /* Unit object => Job object list 1:1 */ -- JobDependency *anchor; --}; -- - struct Manager { - /* Note that the set of units we know of is allowed to be - * inconsistent. However the subset of it that is loaded may -diff --git a/src/transaction.c b/src/transaction.c -new file mode 100644 -index 0000000..8fa89a7 ---- /dev/null -+++ b/src/transaction.c -@@ -0,0 +1,1101 @@ -+#include "transaction.h" -+#include "bus-errors.h" -+ -+static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies); -+ -+static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependencies) { -+ assert(tr); -+ assert(j); -+ -+ /* Deletes one job from the transaction */ -+ -+ transaction_unlink_job(tr, j, delete_dependencies); -+ -+ if (!j->installed) -+ job_free(j); -+} -+ -+static void transaction_delete_unit(Transaction *tr, Unit *u) { -+ Job *j; -+ -+ /* Deletes all jobs associated with a certain unit from the -+ * transaction */ -+ -+ while ((j = hashmap_get(tr->jobs, u))) -+ transaction_delete_job(tr, j, true); -+} -+ -+void transaction_abort(Transaction *tr) { -+ Job *j; -+ -+ assert(tr); -+ -+ while ((j = hashmap_first(tr->jobs))) -+ transaction_delete_job(tr, j, true); -+ -+ assert(hashmap_isempty(tr->jobs)); -+ -+ assert(!tr->anchor); -+} -+ -+static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { -+ JobDependency *l; -+ -+ assert(tr); -+ -+ /* A recursive sweep through the graph that marks all units -+ * that matter to the anchor job, i.e. are directly or -+ * indirectly a dependency of the anchor job via paths that -+ * are fully marked as mattering. */ -+ -+ if (j) -+ l = j->subject_list; -+ else -+ l = tr->anchor; -+ -+ LIST_FOREACH(subject, l, l) { -+ -+ /* This link does not matter */ -+ if (!l->matters) -+ continue; -+ -+ /* This unit has already been marked */ -+ if (l->object->generation == generation) -+ continue; -+ -+ l->object->matters_to_anchor = true; -+ l->object->generation = generation; -+ -+ transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); -+ } -+} -+ -+static void transaction_merge_and_delete_job(Transaction *tr, Job *j, Job *other, JobType t) { -+ JobDependency *l, *last; -+ -+ assert(j); -+ assert(other); -+ assert(j->unit == other->unit); -+ assert(!j->installed); -+ -+ /* Merges 'other' into 'j' and then deletes 'other'. */ -+ -+ j->type = t; -+ j->state = JOB_WAITING; -+ j->override = j->override || other->override; -+ -+ j->matters_to_anchor = j->matters_to_anchor || other->matters_to_anchor; -+ -+ /* Patch us in as new owner of the JobDependency objects */ -+ last = NULL; -+ LIST_FOREACH(subject, l, other->subject_list) { -+ assert(l->subject == other); -+ l->subject = j; -+ last = l; -+ } -+ -+ /* Merge both lists */ -+ if (last) { -+ last->subject_next = j->subject_list; -+ if (j->subject_list) -+ j->subject_list->subject_prev = last; -+ j->subject_list = other->subject_list; -+ } -+ -+ /* Patch us in as new owner of the JobDependency objects */ -+ last = NULL; -+ LIST_FOREACH(object, l, other->object_list) { -+ assert(l->object == other); -+ l->object = j; -+ last = l; -+ } -+ -+ /* Merge both lists */ -+ if (last) { -+ last->object_next = j->object_list; -+ if (j->object_list) -+ j->object_list->object_prev = last; -+ j->object_list = other->object_list; -+ } -+ -+ /* Kill the other job */ -+ other->subject_list = NULL; -+ other->object_list = NULL; -+ transaction_delete_job(tr, other, true); -+} -+ -+static bool job_is_conflicted_by(Job *j) { -+ JobDependency *l; -+ -+ assert(j); -+ -+ /* Returns true if this job is pulled in by a least one -+ * ConflictedBy dependency. */ -+ -+ LIST_FOREACH(object, l, j->object_list) -+ if (l->conflicts) -+ return true; -+ -+ return false; -+} -+ -+static int delete_one_unmergeable_job(Transaction *tr, Job *j) { -+ Job *k; -+ -+ assert(j); -+ -+ /* Tries to delete one item in the linked list -+ * j->transaction_next->transaction_next->... that conflicts -+ * with another one, in an attempt to make an inconsistent -+ * transaction work. */ -+ -+ /* We rely here on the fact that if a merged with b does not -+ * merge with c, either a or b merge with c neither */ -+ LIST_FOREACH(transaction, j, j) -+ LIST_FOREACH(transaction, k, j->transaction_next) { -+ Job *d; -+ -+ /* Is this one mergeable? Then skip it */ -+ if (job_type_is_mergeable(j->type, k->type)) -+ continue; -+ -+ /* Ok, we found two that conflict, let's see if we can -+ * drop one of them */ -+ if (!j->matters_to_anchor && !k->matters_to_anchor) { -+ -+ /* Both jobs don't matter, so let's -+ * find the one that is smarter to -+ * remove. Let's think positive and -+ * rather remove stops then starts -- -+ * except if something is being -+ * stopped because it is conflicted by -+ * another unit in which case we -+ * rather remove the start. */ -+ -+ log_debug("Looking at job %s/%s conflicted_by=%s", j->unit->id, job_type_to_string(j->type), yes_no(j->type == JOB_STOP && job_is_conflicted_by(j))); -+ log_debug("Looking at job %s/%s conflicted_by=%s", k->unit->id, job_type_to_string(k->type), yes_no(k->type == JOB_STOP && job_is_conflicted_by(k))); -+ -+ if (j->type == JOB_STOP) { -+ -+ if (job_is_conflicted_by(j)) -+ d = k; -+ else -+ d = j; -+ -+ } else if (k->type == JOB_STOP) { -+ -+ if (job_is_conflicted_by(k)) -+ d = j; -+ else -+ d = k; -+ } else -+ d = j; -+ -+ } else if (!j->matters_to_anchor) -+ d = j; -+ else if (!k->matters_to_anchor) -+ d = k; -+ else -+ return -ENOEXEC; -+ -+ /* Ok, we can drop one, so let's do so. */ -+ log_debug("Fixing conflicting jobs by deleting job %s/%s", d->unit->id, job_type_to_string(d->type)); -+ transaction_delete_job(tr, d, true); -+ return 0; -+ } -+ -+ return -EINVAL; -+} -+ -+static int transaction_merge_jobs(Transaction *tr, DBusError *e) { -+ Job *j; -+ Iterator i; -+ int r; -+ -+ assert(tr); -+ -+ /* First step, check whether any of the jobs for one specific -+ * task conflict. If so, try to drop one of them. */ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ JobType t; -+ Job *k; -+ -+ t = j->type; -+ LIST_FOREACH(transaction, k, j->transaction_next) { -+ if (job_type_merge(&t, k->type) >= 0) -+ continue; -+ -+ /* OK, we could not merge all jobs for this -+ * action. Let's see if we can get rid of one -+ * of them */ -+ -+ r = delete_one_unmergeable_job(tr, j); -+ if (r >= 0) -+ /* Ok, we managed to drop one, now -+ * let's ask our callers to call us -+ * again after garbage collecting */ -+ return -EAGAIN; -+ -+ /* We couldn't merge anything. Failure */ -+ dbus_set_error(e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING, "Transaction contains conflicting jobs '%s' and '%s' for %s. Probably contradicting requirement dependencies configured.", -+ job_type_to_string(t), job_type_to_string(k->type), k->unit->id); -+ return r; -+ } -+ } -+ -+ /* Second step, merge the jobs. */ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ JobType t = j->type; -+ Job *k; -+ -+ /* Merge all transactions */ -+ LIST_FOREACH(transaction, k, j->transaction_next) -+ assert_se(job_type_merge(&t, k->type) == 0); -+ -+ /* If an active job is mergeable, merge it too */ -+ if (j->unit->job) -+ job_type_merge(&t, j->unit->job->type); /* Might fail. Which is OK */ -+ -+ while ((k = j->transaction_next)) { -+ if (j->installed) { -+ transaction_merge_and_delete_job(tr, k, j, t); -+ j = k; -+ } else -+ transaction_merge_and_delete_job(tr, j, k, t); -+ } -+ -+ if (j->unit->job && !j->installed) -+ transaction_merge_and_delete_job(tr, j, j->unit->job, t); -+ -+ assert(!j->transaction_next); -+ assert(!j->transaction_prev); -+ } -+ -+ return 0; -+} -+ -+static void transaction_drop_redundant(Transaction *tr) { -+ bool again; -+ -+ assert(tr); -+ -+ /* Goes through the transaction and removes all jobs that are -+ * a noop */ -+ -+ do { -+ Job *j; -+ Iterator i; -+ -+ again = false; -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ bool changes_something = false; -+ Job *k; -+ -+ LIST_FOREACH(transaction, k, j) { -+ -+ if (!job_is_anchor(k) && -+ (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && -+ (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) -+ continue; -+ -+ changes_something = true; -+ break; -+ } -+ -+ if (changes_something) -+ continue; -+ -+ /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ -+ transaction_delete_job(tr, j, false); -+ again = true; -+ break; -+ } -+ -+ } while (again); -+} -+ -+static bool unit_matters_to_anchor(Unit *u, Job *j) { -+ assert(u); -+ assert(!j->transaction_prev); -+ -+ /* Checks whether at least one of the jobs for this unit -+ * matters to the anchor. */ -+ -+ LIST_FOREACH(transaction, j, j) -+ if (j->matters_to_anchor) -+ return true; -+ -+ return false; -+} -+ -+static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsigned generation, DBusError *e) { -+ Iterator i; -+ Unit *u; -+ int r; -+ -+ assert(tr); -+ assert(j); -+ assert(!j->transaction_prev); -+ -+ /* Does a recursive sweep through the ordering graph, looking -+ * for a cycle. If we find cycle we try to break it. */ -+ -+ /* Have we seen this before? */ -+ if (j->generation == generation) { -+ Job *k, *delete; -+ -+ /* If the marker is NULL we have been here already and -+ * decided the job was loop-free from here. Hence -+ * shortcut things and return right-away. */ -+ if (!j->marker) -+ return 0; -+ -+ /* So, the marker is not NULL and we already have been -+ * here. We have a cycle. Let's try to break it. We go -+ * backwards in our path and try to find a suitable -+ * job to remove. We use the marker to find our way -+ * back, since smart how we are we stored our way back -+ * in there. */ -+ log_warning("Found ordering cycle on %s/%s", j->unit->id, job_type_to_string(j->type)); -+ -+ delete = NULL; -+ for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { -+ -+ log_info("Walked on cycle path to %s/%s", k->unit->id, job_type_to_string(k->type)); -+ -+ if (!delete && -+ !k->installed && -+ !unit_matters_to_anchor(k->unit, k)) { -+ /* Ok, we can drop this one, so let's -+ * do so. */ -+ delete = k; -+ } -+ -+ /* Check if this in fact was the beginning of -+ * the cycle */ -+ if (k == j) -+ break; -+ } -+ -+ -+ if (delete) { -+ log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); -+ transaction_delete_unit(tr, delete->unit); -+ return -EAGAIN; -+ } -+ -+ log_error("Unable to break cycle"); -+ -+ dbus_set_error(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC, "Transaction order is cyclic. See system logs for details."); -+ return -ENOEXEC; -+ } -+ -+ /* Make the marker point to where we come from, so that we can -+ * find our way backwards if we want to break a cycle. We use -+ * a special marker for the beginning: we point to -+ * ourselves. */ -+ j->marker = from ? from : j; -+ j->generation = generation; -+ -+ /* We assume that the the dependencies are bidirectional, and -+ * hence can ignore UNIT_AFTER */ -+ SET_FOREACH(u, j->unit->dependencies[UNIT_BEFORE], i) { -+ Job *o; -+ -+ /* Is there a job for this unit? */ -+ o = hashmap_get(tr->jobs, u); -+ if (!o) { -+ /* Ok, there is no job for this in the -+ * transaction, but maybe there is already one -+ * running? */ -+ o = u->job; -+ if (!o) -+ continue; -+ } -+ -+ r = transaction_verify_order_one(tr, o, j, generation, e); -+ if (r < 0) -+ return r; -+ } -+ -+ /* Ok, let's backtrack, and remember that this entry is not on -+ * our path anymore. */ -+ j->marker = NULL; -+ -+ return 0; -+} -+ -+static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusError *e) { -+ Job *j; -+ int r; -+ Iterator i; -+ unsigned g; -+ -+ assert(tr); -+ assert(generation); -+ -+ /* Check if the ordering graph is cyclic. If it is, try to fix -+ * that up by dropping one of the jobs. */ -+ -+ g = (*generation)++; -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) -+ if ((r = transaction_verify_order_one(tr, j, NULL, g, e)) < 0) -+ return r; -+ -+ return 0; -+} -+ -+static void transaction_collect_garbage(Transaction *tr) { -+ bool again; -+ -+ assert(tr); -+ -+ /* Drop jobs that are not required by any other job */ -+ -+ do { -+ Iterator i; -+ Job *j; -+ -+ again = false; -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ if (j->object_list) { -+ /* log_debug("Keeping job %s/%s because of %s/%s", */ -+ /* j->unit->id, job_type_to_string(j->type), */ -+ /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ -+ /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ -+ continue; -+ } -+ -+ /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ -+ transaction_delete_job(tr, j, true); -+ again = true; -+ break; -+ } -+ -+ } while (again); -+} -+ -+static int transaction_is_destructive(Transaction *tr, DBusError *e) { -+ Iterator i; -+ Job *j; -+ -+ assert(tr); -+ -+ /* Checks whether applying this transaction means that -+ * existing jobs would be replaced */ -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ -+ /* Assume merged */ -+ assert(!j->transaction_prev); -+ assert(!j->transaction_next); -+ -+ if (j->unit->job && -+ j->unit->job != j && -+ !job_type_is_superset(j->type, j->unit->job->type)) { -+ -+ dbus_set_error(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); -+ return -EEXIST; -+ } -+ } -+ -+ return 0; -+} -+ -+static void transaction_minimize_impact(Transaction *tr) { -+ bool again; -+ assert(tr); -+ -+ /* Drops all unnecessary jobs that reverse already active jobs -+ * or that stop a running service. */ -+ -+ do { -+ Job *j; -+ Iterator i; -+ -+ again = false; -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ LIST_FOREACH(transaction, j, j) { -+ bool stops_running_service, changes_existing_job; -+ -+ /* If it matters, we shouldn't drop it */ -+ if (j->matters_to_anchor) -+ continue; -+ -+ /* Would this stop a running service? -+ * Would this change an existing job? -+ * If so, let's drop this entry */ -+ -+ stops_running_service = -+ j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); -+ -+ changes_existing_job = -+ j->unit->job && -+ job_type_is_conflicting(j->type, j->unit->job->type); -+ -+ if (!stops_running_service && !changes_existing_job) -+ continue; -+ -+ if (stops_running_service) -+ log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); -+ -+ if (changes_existing_job) -+ log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); -+ -+ /* Ok, let's get rid of this */ -+ log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); -+ -+ transaction_delete_job(tr, j, true); -+ again = true; -+ break; -+ } -+ -+ if (again) -+ break; -+ } -+ -+ } while (again); -+} -+ -+static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { -+ Iterator i; -+ Job *j; -+ int r; -+ -+ /* Moves the transaction jobs to the set of active jobs */ -+ -+ if (mode == JOB_ISOLATE) { -+ -+ /* When isolating first kill all installed jobs which -+ * aren't part of the new transaction */ -+ rescan: -+ HASHMAP_FOREACH(j, m->jobs, i) { -+ assert(j->installed); -+ -+ if (hashmap_get(tr->jobs, j->unit)) -+ continue; -+ -+ /* 'j' itself is safe to remove, but if other jobs -+ are invalidated recursively, our iterator may become -+ invalid and we need to start over. */ -+ if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) -+ goto rescan; -+ } -+ } -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ /* Assume merged */ -+ assert(!j->transaction_prev); -+ assert(!j->transaction_next); -+ -+ if (j->installed) -+ continue; -+ -+ r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); -+ if (r < 0) -+ goto rollback; -+ } -+ -+ while ((j = hashmap_steal_first(tr->jobs))) { -+ Job *uj; -+ if (j->installed) { -+ /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ -+ continue; -+ } -+ -+ uj = j->unit->job; -+ if (uj) { -+ job_uninstall(uj); -+ job_free(uj); -+ } -+ -+ j->unit->job = j; -+ j->installed = true; -+ m->n_installed_jobs ++; -+ -+ /* We're fully installed. Now let's free data we don't -+ * need anymore. */ -+ -+ assert(!j->transaction_next); -+ assert(!j->transaction_prev); -+ -+ /* Clean the job dependencies */ -+ transaction_unlink_job(tr, j, false); -+ -+ job_add_to_run_queue(j); -+ job_add_to_dbus_queue(j); -+ job_start_timer(j); -+ -+ log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); -+ } -+ -+ assert(!tr->anchor); -+ -+ return 0; -+ -+rollback: -+ -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ if (j->installed) -+ continue; -+ -+ hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); -+ } -+ -+ return r; -+} -+ -+int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { -+ int r; -+ unsigned generation = 1; -+ -+ assert(tr); -+ -+ /* This applies the changes recorded in tr->jobs to -+ * the actual list of jobs, if possible. */ -+ -+ /* First step: figure out which jobs matter */ -+ transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); -+ -+ /* Second step: Try not to stop any running services if -+ * we don't have to. Don't try to reverse running -+ * jobs if we don't have to. */ -+ if (mode == JOB_FAIL) -+ transaction_minimize_impact(tr); -+ -+ /* Third step: Drop redundant jobs */ -+ transaction_drop_redundant(tr); -+ -+ for (;;) { -+ /* Fourth step: Let's remove unneeded jobs that might -+ * be lurking. */ -+ if (mode != JOB_ISOLATE) -+ transaction_collect_garbage(tr); -+ -+ /* Fifth step: verify order makes sense and correct -+ * cycles if necessary and possible */ -+ r = transaction_verify_order(tr, &generation, e); -+ if (r >= 0) -+ break; -+ -+ if (r != -EAGAIN) { -+ log_warning("Requested transaction contains an unfixable cyclic ordering dependency: %s", bus_error(e, r)); -+ return r; -+ } -+ -+ /* Let's see if the resulting transaction ordering -+ * graph is still cyclic... */ -+ } -+ -+ for (;;) { -+ /* Sixth step: let's drop unmergeable entries if -+ * necessary and possible, merge entries we can -+ * merge */ -+ r = transaction_merge_jobs(tr, e); -+ if (r >= 0) -+ break; -+ -+ if (r != -EAGAIN) { -+ log_warning("Requested transaction contains unmergeable jobs: %s", bus_error(e, r)); -+ return r; -+ } -+ -+ /* Seventh step: an entry got dropped, let's garbage -+ * collect its dependencies. */ -+ if (mode != JOB_ISOLATE) -+ transaction_collect_garbage(tr); -+ -+ /* Let's see if the resulting transaction still has -+ * unmergeable entries ... */ -+ } -+ -+ /* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */ -+ transaction_drop_redundant(tr); -+ -+ /* Ninth step: check whether we can actually apply this */ -+ if (mode == JOB_FAIL) { -+ r = transaction_is_destructive(tr, e); -+ if (r < 0) { -+ log_notice("Requested transaction contradicts existing jobs: %s", bus_error(e, r)); -+ return r; -+ } -+ } -+ -+ /* Tenth step: apply changes */ -+ r = transaction_apply(tr, m, mode); -+ if (r < 0) { -+ log_warning("Failed to apply transaction: %s", strerror(-r)); -+ return r; -+ } -+ -+ assert(hashmap_isempty(tr->jobs)); -+ assert(!tr->anchor); -+ -+ return 0; -+} -+ -+static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, bool override, bool *is_new) { -+ Job *j, *f; -+ -+ assert(tr); -+ assert(unit); -+ -+ /* Looks for an existing prospective job and returns that. If -+ * it doesn't exist it is created and added to the prospective -+ * jobs list. */ -+ -+ f = hashmap_get(tr->jobs, unit); -+ -+ LIST_FOREACH(transaction, j, f) { -+ assert(j->unit == unit); -+ -+ if (j->type == type) { -+ if (is_new) -+ *is_new = false; -+ return j; -+ } -+ } -+ -+ if (unit->job && unit->job->type == type) -+ j = unit->job; -+ else { -+ j = job_new(unit->manager, type, unit); -+ if (!j) -+ return NULL; -+ } -+ -+ j->generation = 0; -+ j->marker = NULL; -+ j->matters_to_anchor = false; -+ j->override = override; -+ -+ LIST_PREPEND(Job, transaction, f, j); -+ -+ if (hashmap_replace(tr->jobs, unit, f) < 0) { -+ LIST_REMOVE(Job, transaction, f, j); -+ job_free(j); -+ return NULL; -+ } -+ -+ if (is_new) -+ *is_new = true; -+ -+ /* log_debug("Added job %s/%s to transaction.", unit->id, job_type_to_string(type)); */ -+ -+ return j; -+} -+ -+static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { -+ assert(tr); -+ assert(j); -+ -+ if (j->transaction_prev) -+ j->transaction_prev->transaction_next = j->transaction_next; -+ else if (j->transaction_next) -+ hashmap_replace(tr->jobs, j->unit, j->transaction_next); -+ else -+ hashmap_remove_value(tr->jobs, j->unit, j); -+ -+ if (j->transaction_next) -+ j->transaction_next->transaction_prev = j->transaction_prev; -+ -+ j->transaction_prev = j->transaction_next = NULL; -+ -+ while (j->subject_list) -+ job_dependency_free(j->subject_list, tr); -+ -+ while (j->object_list) { -+ Job *other = j->object_list->matters ? j->object_list->subject : NULL; -+ -+ job_dependency_free(j->object_list, tr); -+ -+ if (other && delete_dependencies) { -+ log_debug("Deleting job %s/%s as dependency of job %s/%s", -+ other->unit->id, job_type_to_string(other->type), -+ j->unit->id, job_type_to_string(j->type)); -+ transaction_delete_job(tr, other, delete_dependencies); -+ } -+ } -+} -+ -+int transaction_add_job_and_dependencies( -+ Transaction *tr, -+ JobType type, -+ Unit *unit, -+ Job *by, -+ bool matters, -+ bool override, -+ bool conflicts, -+ bool ignore_requirements, -+ bool ignore_order, -+ DBusError *e, -+ Job **_ret) { -+ Job *ret; -+ Iterator i; -+ Unit *dep; -+ int r; -+ bool is_new; -+ -+ assert(tr); -+ assert(type < _JOB_TYPE_MAX); -+ assert(unit); -+ -+ /* log_debug("Pulling in %s/%s from %s/%s", */ -+ /* unit->id, job_type_to_string(type), */ -+ /* by ? by->unit->id : "NA", */ -+ /* by ? job_type_to_string(by->type) : "NA"); */ -+ -+ if (unit->load_state != UNIT_LOADED && -+ unit->load_state != UNIT_ERROR && -+ unit->load_state != UNIT_MASKED) { -+ dbus_set_error(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id); -+ return -EINVAL; -+ } -+ -+ if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { -+ dbus_set_error(e, BUS_ERROR_LOAD_FAILED, -+ "Unit %s failed to load: %s. " -+ "See system logs and 'systemctl status %s' for details.", -+ unit->id, -+ strerror(-unit->load_error), -+ unit->id); -+ return -EINVAL; -+ } -+ -+ if (type != JOB_STOP && unit->load_state == UNIT_MASKED) { -+ dbus_set_error(e, BUS_ERROR_MASKED, "Unit %s is masked.", unit->id); -+ return -EINVAL; -+ } -+ -+ if (!unit_job_is_applicable(unit, type)) { -+ dbus_set_error(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, "Job type %s is not applicable for unit %s.", job_type_to_string(type), unit->id); -+ return -EBADR; -+ } -+ -+ /* First add the job. */ -+ ret = transaction_add_one_job(tr, type, unit, override, &is_new); -+ if (!ret) -+ return -ENOMEM; -+ -+ ret->ignore_order = ret->ignore_order || ignore_order; -+ -+ /* Then, add a link to the job. */ -+ if (!job_dependency_new(by, ret, matters, conflicts, tr)) -+ return -ENOMEM; -+ -+ if (is_new && !ignore_requirements) { -+ Set *following; -+ -+ /* If we are following some other unit, make sure we -+ * add all dependencies of everybody following. */ -+ if (unit_following_set(ret->unit, &following) > 0) { -+ SET_FOREACH(dep, following, i) { -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ set_free(following); -+ } -+ -+ /* Finally, recursively add in all dependencies. */ -+ if (type == JOB_START || type == JOB_RELOAD_OR_START) { -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ if (r != -EBADR) -+ goto fail; -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ if (r != -EBADR) -+ goto fail; -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ if (r != -EBADR) -+ goto fail; -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); -+ if (r < 0) { -+ if (r != -EBADR) -+ goto fail; -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ } -+ -+ if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ if (r != -EBADR) -+ goto fail; -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ if (r != -EBADR) -+ goto fail; -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ } -+ -+ if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { -+ -+ SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { -+ r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ if (r < 0) { -+ log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ -+ if (e) -+ dbus_error_free(e); -+ } -+ } -+ } -+ -+ /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ -+ } -+ -+ if (_ret) -+ *_ret = ret; -+ -+ return 0; -+ -+fail: -+ return r; -+} -+ -+int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { -+ Iterator i; -+ Unit *u; -+ char *k; -+ int r; -+ -+ assert(tr); -+ assert(m); -+ -+ HASHMAP_FOREACH_KEY(u, k, m->units, i) { -+ -+ /* ignore aliases */ -+ if (u->id != k) -+ continue; -+ -+ if (u->ignore_on_isolate) -+ continue; -+ -+ /* No need to stop inactive jobs */ -+ if (UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(u)) && !u->job) -+ continue; -+ -+ /* Is there already something listed for this? */ -+ if (hashmap_get(tr->jobs, u)) -+ continue; -+ -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); -+ if (r < 0) -+ log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); -+ } -+ -+ return 0; -+} -+ -+Transaction *transaction_new(void) { -+ Transaction *tr; -+ -+ tr = new0(Transaction, 1); -+ if (!tr) -+ return NULL; -+ -+ tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); -+ if (!tr->jobs) { -+ free(tr); -+ return NULL; -+ } -+ -+ return tr; -+} -+ -+void transaction_free(Transaction *tr) { -+ assert(hashmap_isempty(tr->jobs)); -+ hashmap_free(tr->jobs); -+ free(tr); -+} -diff --git a/src/transaction.h b/src/transaction.h -new file mode 100644 -index 0000000..d519ffb ---- /dev/null -+++ b/src/transaction.h -@@ -0,0 +1,36 @@ -+#ifndef footransactionhfoo -+#define footransactionhfoo -+ -+typedef struct Transaction Transaction; -+ -+#include "unit.h" -+#include "manager.h" -+#include "job.h" -+#include "hashmap.h" -+ -+struct Transaction { -+ /* Jobs to be added */ -+ Hashmap *jobs; /* Unit object => Job object list 1:1 */ -+ JobDependency *anchor; -+}; -+ -+Transaction *transaction_new(void); -+void transaction_free(Transaction *tr); -+ -+int transaction_add_job_and_dependencies( -+ Transaction *tr, -+ JobType type, -+ Unit *unit, -+ Job *by, -+ bool matters, -+ bool override, -+ bool conflicts, -+ bool ignore_requirements, -+ bool ignore_order, -+ DBusError *e, -+ Job **_ret); -+int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e); -+int transaction_add_isolate_jobs(Transaction *tr, Manager *m); -+void transaction_abort(Transaction *tr); -+ -+#endif --- -1.7.7 - - -From bd61057f3d44d7bb4e279310a16646eb8ab9bb8c Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 18 Apr 2012 01:39:20 +0200 -Subject: [PATCH 09/30] job: job_new() can find the manager from the unit - (cherry picked from commit - 668ad332a404736474749cbcc8404af3e4447170) - ---- - src/job.c | 7 +++---- - src/job.h | 2 +- - src/transaction.c | 2 +- - 3 files changed, 5 insertions(+), 6 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 6d48748..c30bfda 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -33,18 +33,17 @@ - #include "log.h" - #include "dbus-job.h" - --Job* job_new(Manager *m, JobType type, Unit *unit) { -+Job* job_new(Unit *unit, JobType type) { - Job *j; - -- assert(m); - assert(type < _JOB_TYPE_MAX); - assert(unit); - - if (!(j = new0(Job, 1))) - return NULL; - -- j->manager = m; -- j->id = m->current_job_id++; -+ j->manager = unit->manager; -+ j->id = j->manager->current_job_id++; - j->type = type; - j->unit = unit; - -diff --git a/src/job.h b/src/job.h -index efb0af9..faa10e3 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -137,7 +137,7 @@ struct Job { - bool ignore_order:1; - }; - --Job* job_new(Manager *m, JobType type, Unit *unit); -+Job* job_new(Unit *unit, JobType type); - void job_uninstall(Job *j); - void job_free(Job *job); - void job_dump(Job *j, FILE*f, const char *prefix); -diff --git a/src/transaction.c b/src/transaction.c -index 8fa89a7..1344e2f 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -763,7 +763,7 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b - if (unit->job && unit->job->type == type) - j = unit->job; - else { -- j = job_new(unit->manager, type, unit); -+ j = job_new(unit, type); - if (!j) - return NULL; - } --- -1.7.7 - - -From 0d6df78cb48dfbd1c37444ee3702ba59d87ca352 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 18 Apr 2012 15:21:24 +0200 -Subject: [PATCH 10/30] job: jobs shouldn't need to know about transaction - anchors - -Let the transactions maintain their own anchor links. -(cherry picked from commit 1da4264fbd0fa5e6b1bd5e0ac4674a3503774369) ---- - src/job.c | 8 ++------ - src/job.h | 5 ++--- - src/transaction.c | 18 +++++++++++++++--- - 3 files changed, 19 insertions(+), 12 deletions(-) - -diff --git a/src/job.c b/src/job.c -index c30bfda..a5ce2d4 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -96,7 +96,7 @@ void job_free(Job *j) { - free(j); - } - --JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr) { -+JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { - JobDependency *l; - - assert(object); -@@ -116,21 +116,17 @@ JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool - - if (subject) - LIST_PREPEND(JobDependency, subject, subject->subject_list, l); -- else -- LIST_PREPEND(JobDependency, subject, tr->anchor, l); - - LIST_PREPEND(JobDependency, object, object->object_list, l); - - return l; - } - --void job_dependency_free(JobDependency *l, Transaction *tr) { -+void job_dependency_free(JobDependency *l) { - assert(l); - - if (l->subject) - LIST_REMOVE(JobDependency, subject, l->subject->subject_list, l); -- else -- LIST_REMOVE(JobDependency, subject, tr->anchor, l); - - LIST_REMOVE(JobDependency, object, l->object->object_list, l); - -diff --git a/src/job.h b/src/job.h -index faa10e3..cbd10c5 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -34,7 +34,6 @@ typedef enum JobMode JobMode; - typedef enum JobResult JobResult; - - #include "manager.h" --#include "transaction.h" - #include "unit.h" - #include "hashmap.h" - #include "list.h" -@@ -142,8 +141,8 @@ void job_uninstall(Job *j); - void job_free(Job *job); - void job_dump(Job *j, FILE*f, const char *prefix); - --JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts, Transaction *tr); --void job_dependency_free(JobDependency *l, Transaction *tr); -+JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); -+void job_dependency_free(JobDependency *l); - - bool job_is_anchor(Job *j); - -diff --git a/src/transaction.c b/src/transaction.c -index 1344e2f..2a6f1de 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -789,6 +789,12 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b - return j; - } - -+static void transaction_job_dependency_free(Transaction *tr, JobDependency *l) { -+ if (!l->subject) -+ LIST_REMOVE(JobDependency, subject, tr->anchor, l); -+ job_dependency_free(l); -+} -+ - static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { - assert(tr); - assert(j); -@@ -806,12 +812,12 @@ static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependen - j->transaction_prev = j->transaction_next = NULL; - - while (j->subject_list) -- job_dependency_free(j->subject_list, tr); -+ transaction_job_dependency_free(tr, j->subject_list); - - while (j->object_list) { - Job *other = j->object_list->matters ? j->object_list->subject : NULL; - -- job_dependency_free(j->object_list, tr); -+ transaction_job_dependency_free(tr, j->object_list); - - if (other && delete_dependencies) { - log_debug("Deleting job %s/%s as dependency of job %s/%s", -@@ -835,6 +841,7 @@ int transaction_add_job_and_dependencies( - DBusError *e, - Job **_ret) { - Job *ret; -+ JobDependency *l; - Iterator i; - Unit *dep; - int r; -@@ -884,9 +891,14 @@ int transaction_add_job_and_dependencies( - ret->ignore_order = ret->ignore_order || ignore_order; - - /* Then, add a link to the job. */ -- if (!job_dependency_new(by, ret, matters, conflicts, tr)) -+ l = job_dependency_new(by, ret, matters, conflicts); -+ if (!l) - return -ENOMEM; - -+ /* If the link has no subject job, it's the anchor link. */ -+ if (!by) -+ LIST_PREPEND(JobDependency, subject, tr->anchor, l); -+ - if (is_new && !ignore_requirements) { - Set *following; - --- -1.7.7 - - -From 0799fe0aa4a9e74a0a11cedeb76a630c6db853d5 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 18 Apr 2012 18:15:49 +0200 -Subject: [PATCH 11/30] transaction: do not add installed jobs to the - transaction - -Do not attempt to optimize away the job creation by refering to installed jobs. -We do not want to disturb installed jobs until commiting the transaction. - -(A later patch to job merging will make the separation of transaction jobs and -installed jobs complete.) -(cherry picked from commit 3c956cfee29fe2642fbe257f55adb3583a4af878) ---- - src/transaction.c | 10 +++------- - 1 files changed, 3 insertions(+), 7 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index 2a6f1de..c00dd45 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -760,13 +760,9 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b - } - } - -- if (unit->job && unit->job->type == type) -- j = unit->job; -- else { -- j = job_new(unit, type); -- if (!j) -- return NULL; -- } -+ j = job_new(unit, type); -+ if (!j) -+ return NULL; - - j->generation = 0; - j->marker = NULL; --- -1.7.7 - - -From 7f60fce10d4c111bcd274d0fcd83a0139b53a9bc Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 00:33:26 +0200 -Subject: [PATCH 12/30] transaction: maintain anchor_job - -Track which job is the anchor in the transaction. -(cherry picked from commit b94fbd30781d7533492cec65bf7d86fa19a1a074) ---- - src/manager.c | 7 +++---- - src/transaction.c | 37 ++++++++++++++++++------------------- - src/transaction.h | 4 ++-- - 3 files changed, 23 insertions(+), 25 deletions(-) - -diff --git a/src/manager.c b/src/manager.c -index a129b88..86ec858 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -631,7 +631,6 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - - int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { - int r; -- Job *ret; - Transaction *tr; - - assert(m); -@@ -657,7 +656,7 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove - - r = transaction_add_job_and_dependencies(tr, type, unit, NULL, true, override, false, - mode == JOB_IGNORE_DEPENDENCIES || mode == JOB_IGNORE_REQUIREMENTS, -- mode == JOB_IGNORE_DEPENDENCIES, e, &ret); -+ mode == JOB_IGNORE_DEPENDENCIES, e); - if (r < 0) - goto tr_abort; - -@@ -671,10 +670,10 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove - if (r < 0) - goto tr_abort; - -- log_debug("Enqueued job %s/%s as %u", unit->id, job_type_to_string(type), (unsigned) ret->id); -+ log_debug("Enqueued job %s/%s as %u", unit->id, job_type_to_string(type), (unsigned) tr->anchor_job->id); - - if (_ret) -- *_ret = ret; -+ *_ret = tr->anchor_job; - - transaction_free(tr); - return 0; -diff --git a/src/transaction.c b/src/transaction.c -index c00dd45..d7ecfdb 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -834,8 +834,7 @@ int transaction_add_job_and_dependencies( - bool conflicts, - bool ignore_requirements, - bool ignore_order, -- DBusError *e, -- Job **_ret) { -+ DBusError *e) { - Job *ret; - JobDependency *l; - Iterator i; -@@ -892,8 +891,11 @@ int transaction_add_job_and_dependencies( - return -ENOMEM; - - /* If the link has no subject job, it's the anchor link. */ -- if (!by) -+ if (!by) { - LIST_PREPEND(JobDependency, subject, tr->anchor, l); -+ if (!tr->anchor_job) -+ tr->anchor_job = ret; -+ } - - if (is_new && !ignore_requirements) { - Set *following; -@@ -902,7 +904,7 @@ int transaction_add_job_and_dependencies( - * add all dependencies of everybody following. */ - if (unit_following_set(ret->unit, &following) > 0) { - SET_FOREACH(dep, following, i) { -- r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, false, override, false, false, ignore_order, e); - if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -917,7 +919,7 @@ int transaction_add_job_and_dependencies( - /* Finally, recursively add in all dependencies. */ - if (type == JOB_START || type == JOB_RELOAD_OR_START) { - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) - goto fail; -@@ -928,7 +930,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_BIND_TO], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) - goto fail; -@@ -939,7 +941,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e); - if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -949,7 +951,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e); - if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -959,7 +961,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) - goto fail; -@@ -970,7 +972,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e); - if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -980,7 +982,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTS], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, true, override, true, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) - goto fail; -@@ -991,7 +993,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_CONFLICTED_BY], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, dep, ret, false, override, false, false, ignore_order, e); - if (r < 0) { - log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -1005,7 +1007,7 @@ int transaction_add_job_and_dependencies( - if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { -- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) - goto fail; -@@ -1016,7 +1018,7 @@ int transaction_add_job_and_dependencies( - } - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_BOUND_BY], i) { -- r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { - if (r != -EBADR) - goto fail; -@@ -1030,7 +1032,7 @@ int transaction_add_job_and_dependencies( - if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { -- r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e); - if (r < 0) { - log_warning("Cannot add dependency reload job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - -@@ -1043,9 +1045,6 @@ int transaction_add_job_and_dependencies( - /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ - } - -- if (_ret) -- *_ret = ret; -- - return 0; - - fail: -@@ -1078,7 +1077,7 @@ int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { - if (hashmap_get(tr->jobs, u)) - continue; - -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL); - if (r < 0) - log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); - } -diff --git a/src/transaction.h b/src/transaction.h -index d519ffb..4818cea 100644 ---- a/src/transaction.h -+++ b/src/transaction.h -@@ -12,6 +12,7 @@ struct Transaction { - /* Jobs to be added */ - Hashmap *jobs; /* Unit object => Job object list 1:1 */ - JobDependency *anchor; -+ Job *anchor_job; /* the job the user asked for */ - }; - - Transaction *transaction_new(void); -@@ -27,8 +28,7 @@ int transaction_add_job_and_dependencies( - bool conflicts, - bool ignore_requirements, - bool ignore_order, -- DBusError *e, -- Job **_ret); -+ DBusError *e); - int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e); - int transaction_add_isolate_jobs(Transaction *tr, Manager *m); - void transaction_abort(Transaction *tr); --- -1.7.7 - - -From 3020dc5e2b840b8732cfdb81c322a47120a0a42f Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 10:33:37 +0200 -Subject: [PATCH 13/30] transaction: change the linking of isolate jobs to the - anchor - -When isolating, the JOB_STOP jobs have no parent job, so they are all peers -of the real anchor job. This is a bit odd. - -Link them from the anchor job. -(cherry picked from commit 4483f694983382b4092e3e295ffb59926cff96d9) ---- - src/transaction.c | 6 +++--- - 1 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index d7ecfdb..09abe00 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -893,8 +893,8 @@ int transaction_add_job_and_dependencies( - /* If the link has no subject job, it's the anchor link. */ - if (!by) { - LIST_PREPEND(JobDependency, subject, tr->anchor, l); -- if (!tr->anchor_job) -- tr->anchor_job = ret; -+ assert(!tr->anchor_job); -+ tr->anchor_job = ret; - } - - if (is_new && !ignore_requirements) { -@@ -1077,7 +1077,7 @@ int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { - if (hashmap_get(tr->jobs, u)) - continue; - -- r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL); -+ r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, tr->anchor_job, true, false, false, false, false, NULL); - if (r < 0) - log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); - } --- -1.7.7 - - -From 1ceeee2cf56d60ac37199ba9ebbe02144200857c Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 01:20:14 +0200 -Subject: [PATCH 14/30] transaction: simplify - transaction_find_jobs_that_matter_to_anchor() (cherry - picked from commit - 0d9989aa68963037a18fb7ed4f309f6155927d70) - ---- - src/transaction.c | 19 ++++++------------- - 1 files changed, 6 insertions(+), 13 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index 09abe00..cac58e6 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -38,22 +38,18 @@ void transaction_abort(Transaction *tr) { - assert(!tr->anchor); - } - --static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, unsigned generation) { -+static void transaction_find_jobs_that_matter_to_anchor(Job *j, unsigned generation) { - JobDependency *l; - -- assert(tr); -- - /* A recursive sweep through the graph that marks all units - * that matter to the anchor job, i.e. are directly or - * indirectly a dependency of the anchor job via paths that - * are fully marked as mattering. */ - -- if (j) -- l = j->subject_list; -- else -- l = tr->anchor; -+ j->matters_to_anchor = true; -+ j->generation = generation; - -- LIST_FOREACH(subject, l, l) { -+ LIST_FOREACH(subject, l, j->subject_list) { - - /* This link does not matter */ - if (!l->matters) -@@ -63,10 +59,7 @@ static void transaction_find_jobs_that_matter_to_anchor(Transaction *tr, Job *j, - if (l->object->generation == generation) - continue; - -- l->object->matters_to_anchor = true; -- l->object->generation = generation; -- -- transaction_find_jobs_that_matter_to_anchor(tr, l->object, generation); -+ transaction_find_jobs_that_matter_to_anchor(l->object, generation); - } - } - -@@ -659,7 +652,7 @@ int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e - * the actual list of jobs, if possible. */ - - /* First step: figure out which jobs matter */ -- transaction_find_jobs_that_matter_to_anchor(tr, NULL, generation++); -+ transaction_find_jobs_that_matter_to_anchor(tr->anchor_job, generation++); - - /* Second step: Try not to stop any running services if - * we don't have to. Don't try to reverse running --- -1.7.7 - - -From ba088fafbe639c1a8e859406e9f82d0d8bffc804 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 02:48:24 +0200 -Subject: [PATCH 15/30] transaction: avoid garbage collecting the anchor job - -Make sure the anchor job is never considered garbage, even if it has no links -leading to it (this will be allowed in the next patch). -(cherry picked from commit 38809d9dfed4c75d9e97c4e5da2ff957723c4cad) ---- - src/transaction.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index cac58e6..ddb02c0 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -454,7 +454,7 @@ static void transaction_collect_garbage(Transaction *tr) { - again = false; - - HASHMAP_FOREACH(j, tr->jobs, i) { -- if (j->object_list) { -+ if (tr->anchor_job == j || j->object_list) { - /* log_debug("Keeping job %s/%s because of %s/%s", */ - /* j->unit->id, job_type_to_string(j->type), */ - /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ --- -1.7.7 - - -From 436271253850ec21fccfaa435fa2c6ce445721ac Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 02:11:14 +0200 -Subject: [PATCH 16/30] transaction: remove the anchor link - -tr->anchor_job is sufficient. -(cherry picked from commit e6eda1f23efab618bb26e7015230d8552b401dc6) ---- - src/job.c | 12 ------------ - src/job.h | 2 -- - src/transaction.c | 31 ++++++++----------------------- - src/transaction.h | 1 - - 4 files changed, 8 insertions(+), 38 deletions(-) - -diff --git a/src/job.c b/src/job.c -index a5ce2d4..6b93b63 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -151,18 +151,6 @@ void job_dump(Job *j, FILE*f, const char *prefix) { - prefix, yes_no(j->override)); - } - --bool job_is_anchor(Job *j) { -- JobDependency *l; -- -- assert(j); -- -- LIST_FOREACH(object, l, j->object_list) -- if (!l->subject) -- return true; -- -- return false; --} -- - /* - * Merging is commutative, so imagine the matrix as symmetric. We store only - * its lower triangle to avoid duplication. We don't store the main diagonal, -diff --git a/src/job.h b/src/job.h -index cbd10c5..6b06c2a 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -144,8 +144,6 @@ void job_dump(Job *j, FILE*f, const char *prefix); - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); - void job_dependency_free(JobDependency *l); - --bool job_is_anchor(Job *j); -- - int job_merge(Job *j, Job *other); - - JobType job_type_lookup_merge(JobType a, JobType b); -diff --git a/src/transaction.c b/src/transaction.c -index ddb02c0..39cfe54 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -34,8 +34,6 @@ void transaction_abort(Transaction *tr) { - transaction_delete_job(tr, j, true); - - assert(hashmap_isempty(tr->jobs)); -- -- assert(!tr->anchor); - } - - static void transaction_find_jobs_that_matter_to_anchor(Job *j, unsigned generation) { -@@ -287,7 +285,7 @@ static void transaction_drop_redundant(Transaction *tr) { - - LIST_FOREACH(transaction, k, j) { - -- if (!job_is_anchor(k) && -+ if (tr->anchor_job != k && - (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && - (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) - continue; -@@ -626,8 +624,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); - } - -- assert(!tr->anchor); -- - return 0; - - rollback: -@@ -726,7 +722,6 @@ int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e - } - - assert(hashmap_isempty(tr->jobs)); -- assert(!tr->anchor); - - return 0; - } -@@ -778,12 +773,6 @@ static Job* transaction_add_one_job(Transaction *tr, JobType type, Unit *unit, b - return j; - } - --static void transaction_job_dependency_free(Transaction *tr, JobDependency *l) { -- if (!l->subject) -- LIST_REMOVE(JobDependency, subject, tr->anchor, l); -- job_dependency_free(l); --} -- - static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies) { - assert(tr); - assert(j); -@@ -801,12 +790,12 @@ static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependen - j->transaction_prev = j->transaction_next = NULL; - - while (j->subject_list) -- transaction_job_dependency_free(tr, j->subject_list); -+ job_dependency_free(j->subject_list); - - while (j->object_list) { - Job *other = j->object_list->matters ? j->object_list->subject : NULL; - -- transaction_job_dependency_free(tr, j->object_list); -+ job_dependency_free(j->object_list); - - if (other && delete_dependencies) { - log_debug("Deleting job %s/%s as dependency of job %s/%s", -@@ -829,7 +818,6 @@ int transaction_add_job_and_dependencies( - bool ignore_order, - DBusError *e) { - Job *ret; -- JobDependency *l; - Iterator i; - Unit *dep; - int r; -@@ -879,17 +867,14 @@ int transaction_add_job_and_dependencies( - ret->ignore_order = ret->ignore_order || ignore_order; - - /* Then, add a link to the job. */ -- l = job_dependency_new(by, ret, matters, conflicts); -- if (!l) -- return -ENOMEM; -- -- /* If the link has no subject job, it's the anchor link. */ -- if (!by) { -- LIST_PREPEND(JobDependency, subject, tr->anchor, l); -+ if (by) { -+ if (!job_dependency_new(by, ret, matters, conflicts)) -+ return -ENOMEM; -+ } else { -+ /* If the job has no parent job, it is the anchor job. */ - assert(!tr->anchor_job); - tr->anchor_job = ret; - } -- - if (is_new && !ignore_requirements) { - Set *following; - -diff --git a/src/transaction.h b/src/transaction.h -index 4818cea..74d7461 100644 ---- a/src/transaction.h -+++ b/src/transaction.h -@@ -11,7 +11,6 @@ typedef struct Transaction Transaction; - struct Transaction { - /* Jobs to be added */ - Hashmap *jobs; /* Unit object => Job object list 1:1 */ -- JobDependency *anchor; - Job *anchor_job; /* the job the user asked for */ - }; - --- -1.7.7 - - -From cdfe041c84fb813d883de58003e4a986ebde35e6 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 19 Apr 2012 23:56:26 +0200 -Subject: [PATCH 17/30] transaction: remove a couple of asserts - -We already asserted these facts in the previous loop. -(cherry picked from commit f1c2bdca422dba1bc5615f72662dee5ce69c147b) ---- - src/transaction.c | 3 --- - 1 files changed, 0 insertions(+), 3 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index 39cfe54..41f7b82 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -611,9 +611,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - /* We're fully installed. Now let's free data we don't - * need anymore. */ - -- assert(!j->transaction_next); -- assert(!j->transaction_prev); -- - /* Clean the job dependencies */ - transaction_unlink_job(tr, j, false); - --- -1.7.7 - - -From ff3ec7f35ab49a1e306f90b33866f4dc7fba282f Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 02:04:01 +0200 -Subject: [PATCH 18/30] job: separate job_install() - -Let the jobs install themselves. -(cherry picked from commit 05d576f1f77699ea5c2e5ed0e04451b14dfc45a0) ---- - src/job.c | 44 +++++++++++++++++++++++++++++--------------- - src/job.h | 3 ++- - src/transaction.c | 18 ++---------------- - 3 files changed, 33 insertions(+), 32 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 6b93b63..c5bf9cd 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -54,21 +54,6 @@ Job* job_new(Unit *unit, JobType type) { - return j; - } - --void job_uninstall(Job *j) { -- assert(j->installed); -- /* Detach from next 'bigger' objects */ -- -- bus_job_send_removed_signal(j); -- -- if (j->unit->job == j) { -- j->unit->job = NULL; -- unit_add_to_gc_queue(j->unit); -- } -- -- hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); -- j->installed = false; --} -- - void job_free(Job *j) { - assert(j); - assert(!j->installed); -@@ -96,6 +81,35 @@ void job_free(Job *j) { - free(j); - } - -+void job_uninstall(Job *j) { -+ assert(j->installed); -+ /* Detach from next 'bigger' objects */ -+ -+ bus_job_send_removed_signal(j); -+ -+ if (j->unit->job == j) { -+ j->unit->job = NULL; -+ unit_add_to_gc_queue(j->unit); -+ } -+ -+ hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); -+ j->installed = false; -+} -+ -+void job_install(Job *j) { -+ Job *uj = j->unit->job; -+ -+ if (uj) { -+ job_uninstall(uj); -+ job_free(uj); -+ } -+ -+ j->unit->job = j; -+ j->installed = true; -+ j->manager->n_installed_jobs ++; -+ log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); -+} -+ - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { - JobDependency *l; - -diff --git a/src/job.h b/src/job.h -index 6b06c2a..8fa9046 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -137,8 +137,9 @@ struct Job { - }; - - Job* job_new(Unit *unit, JobType type); --void job_uninstall(Job *j); - void job_free(Job *job); -+void job_install(Job *j); -+void job_uninstall(Job *j); - void job_dump(Job *j, FILE*f, const char *prefix); - - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); -diff --git a/src/transaction.c b/src/transaction.c -index 41f7b82..d495cbd 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -592,33 +592,19 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - } - - while ((j = hashmap_steal_first(tr->jobs))) { -- Job *uj; - if (j->installed) { - /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ - continue; - } - -- uj = j->unit->job; -- if (uj) { -- job_uninstall(uj); -- job_free(uj); -- } -- -- j->unit->job = j; -- j->installed = true; -- m->n_installed_jobs ++; -- -- /* We're fully installed. Now let's free data we don't -- * need anymore. */ -- - /* Clean the job dependencies */ - transaction_unlink_job(tr, j, false); - -+ job_install(j); -+ - job_add_to_run_queue(j); - job_add_to_dbus_queue(j); - job_start_timer(j); -- -- log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); - } - - return 0; --- -1.7.7 - - -From 78c1339da1446bac0f4a5fbb0f1add66a6246bec Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 09:38:43 +0200 -Subject: [PATCH 19/30] transaction: rework merging with installed jobs - -Previously transactions could reference installed jobs. It made some issues -difficult to fix. - -This sets new rules for jobs: -A job cannot be both a member of a transaction and installed. When jobs are -created, they are linked to a transaction. The whole transaction is constructed -(with merging of jobs within, etc.). When it's complete, all the jobs are -unlinked from it one by one and let to install themselves. It is during the -installation when merging with previously installed jobs (from older -transactions) is contemplated. - -Merging with installed jobs has different rules than merging within a -transaction: - - An installed conflicting job gets cancelled. It cannot be simply deleted, - because someone might be waiting for its completion on DBus. - - An installed, but still waiting, job can be safely merged into. - - An installed and running job can be tricky. For some job types it is safe to - just merge. For the other types we merge anyway, but put the job back into - JOB_WAITING to allow it to run again. This may be suboptimal, but it is not - currently possible to have more than one installed job for a unit. - -Note this also fixes a bug where the anchor job could be deleted during merging -within the transaction. -(cherry picked from commit 656bbffc6c45bdd8d5c28a96ca948ba16c546547) ---- - src/job.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-- - src/job.h | 2 +- - src/transaction.c | 21 +++++++++++-------- - 3 files changed, 68 insertions(+), 13 deletions(-) - -diff --git a/src/job.c b/src/job.c -index c5bf9cd..e6737df 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -96,18 +96,70 @@ void job_uninstall(Job *j) { - j->installed = false; - } - --void job_install(Job *j) { -+static bool job_type_allows_late_merge(JobType t) { -+ /* Tells whether it is OK to merge a job of type 't' with an already -+ * running job. -+ * Reloads cannot be merged this way. Think of the sequence: -+ * 1. Reload of a daemon is in progress; the daemon has already loaded -+ * its config file, but hasn't completed the reload operation yet. -+ * 2. Edit foo's config file. -+ * 3. Trigger another reload to have the daemon use the new config. -+ * Should the second reload job be merged into the first one, the daemon -+ * would not know about the new config. -+ * JOB_RESTART jobs on the other hand can be merged, because they get -+ * patched into JOB_START after stopping the unit. So if we see a -+ * JOB_RESTART running, it means the unit hasn't stopped yet and at -+ * this time the merge is still allowed. */ -+ return !(t == JOB_RELOAD || t == JOB_RELOAD_OR_START); -+} -+ -+static void job_merge_into_installed(Job *j, Job *other) { -+ assert(j->installed); -+ assert(j->unit == other->unit); -+ -+ j->type = job_type_lookup_merge(j->type, other->type); -+ assert(j->type >= 0); -+ -+ j->override = j->override || other->override; -+} -+ -+Job* job_install(Job *j) { - Job *uj = j->unit->job; - -+ assert(!j->installed); -+ - if (uj) { -- job_uninstall(uj); -- job_free(uj); -+ if (job_type_is_conflicting(uj->type, j->type)) -+ job_finish_and_invalidate(uj, JOB_CANCELED); -+ else { -+ /* not conflicting, i.e. mergeable */ -+ -+ if (uj->state == JOB_WAITING || -+ (job_type_allows_late_merge(j->type) && job_type_is_superset(uj->type, j->type))) { -+ job_merge_into_installed(uj, j); -+ log_debug("Merged into installed job %s/%s as %u", -+ uj->unit->id, job_type_to_string(uj->type), (unsigned) uj->id); -+ return uj; -+ } else { -+ /* already running and not safe to merge into */ -+ /* Patch uj to become a merged job and re-run it. */ -+ /* XXX It should be safer to queue j to run after uj finishes, but it is -+ * not currently possible to have more than one installed job per unit. */ -+ job_merge_into_installed(uj, j); -+ log_debug("Merged into running job, re-running: %s/%s as %u", -+ uj->unit->id, job_type_to_string(uj->type), (unsigned) uj->id); -+ uj->state = JOB_WAITING; -+ return uj; -+ } -+ } - } - -+ /* Install the job */ - j->unit->job = j; - j->installed = true; - j->manager->n_installed_jobs ++; - log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); -+ return j; - } - - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { -diff --git a/src/job.h b/src/job.h -index 8fa9046..eab0e07 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -138,7 +138,7 @@ struct Job { - - Job* job_new(Unit *unit, JobType type); - void job_free(Job *job); --void job_install(Job *j); -+Job* job_install(Job *j); - void job_uninstall(Job *j); - void job_dump(Job *j, FILE*f, const char *prefix); - -diff --git a/src/transaction.c b/src/transaction.c -index d495cbd..aa0cedf 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -243,21 +243,14 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { - LIST_FOREACH(transaction, k, j->transaction_next) - assert_se(job_type_merge(&t, k->type) == 0); - -- /* If an active job is mergeable, merge it too */ -- if (j->unit->job) -- job_type_merge(&t, j->unit->job->type); /* Might fail. Which is OK */ -- - while ((k = j->transaction_next)) { -- if (j->installed) { -+ if (tr->anchor_job == k) { - transaction_merge_and_delete_job(tr, k, j, t); - j = k; - } else - transaction_merge_and_delete_job(tr, j, k, t); - } - -- if (j->unit->job && !j->installed) -- transaction_merge_and_delete_job(tr, j, j->unit->job, t); -- - assert(!j->transaction_next); - assert(!j->transaction_prev); - } -@@ -592,6 +585,8 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - } - - while ((j = hashmap_steal_first(tr->jobs))) { -+ Job *installed_job; -+ - if (j->installed) { - /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ - continue; -@@ -600,7 +595,15 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - /* Clean the job dependencies */ - transaction_unlink_job(tr, j, false); - -- job_install(j); -+ installed_job = job_install(j); -+ if (installed_job != j) { -+ /* j has been merged into a previously installed job */ -+ if (tr->anchor_job == j) -+ tr->anchor_job = installed_job; -+ hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); -+ job_free(j); -+ j = installed_job; -+ } - - job_add_to_run_queue(j); - job_add_to_dbus_queue(j); --- -1.7.7 - - -From 3d47dab6ed99778f9812ec4039135feb950f02da Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 10:02:05 +0200 -Subject: [PATCH 20/30] transaction: remove checks for installed - -Transactions cannot contain installed jobs anymore. Remove the now pointless -checks. -(cherry picked from commit d6a093d098054b6fe866441251ad9485c9e31584) ---- - src/job.c | 7 +++---- - src/transaction.c | 21 +++------------------ - 2 files changed, 6 insertions(+), 22 deletions(-) - -diff --git a/src/job.c b/src/job.c -index e6737df..fb759a5 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -83,14 +83,13 @@ void job_free(Job *j) { - - void job_uninstall(Job *j) { - assert(j->installed); -+ assert(j->unit->job == j); - /* Detach from next 'bigger' objects */ - - bus_job_send_removed_signal(j); - -- if (j->unit->job == j) { -- j->unit->job = NULL; -- unit_add_to_gc_queue(j->unit); -- } -+ j->unit->job = NULL; -+ unit_add_to_gc_queue(j->unit); - - hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); - j->installed = false; -diff --git a/src/transaction.c b/src/transaction.c -index aa0cedf..c3e1e13 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -11,8 +11,7 @@ static void transaction_delete_job(Transaction *tr, Job *j, bool delete_dependen - - transaction_unlink_job(tr, j, delete_dependencies); - -- if (!j->installed) -- job_free(j); -+ job_free(j); - } - - static void transaction_delete_unit(Transaction *tr, Unit *u) { -@@ -279,7 +278,7 @@ static void transaction_drop_redundant(Transaction *tr) { - LIST_FOREACH(transaction, k, j) { - - if (tr->anchor_job != k && -- (k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) && -+ job_type_is_redundant(k->type, unit_active_state(k->unit)) && - (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) - continue; - -@@ -349,7 +348,6 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi - log_info("Walked on cycle path to %s/%s", k->unit->id, job_type_to_string(k->type)); - - if (!delete && -- !k->installed && - !unit_matters_to_anchor(k->unit, k)) { - /* Ok, we can drop this one, so let's - * do so. */ -@@ -478,7 +476,6 @@ static int transaction_is_destructive(Transaction *tr, DBusError *e) { - assert(!j->transaction_next); - - if (j->unit->job && -- j->unit->job != j && - !job_type_is_superset(j->type, j->unit->job->type)) { - - dbus_set_error(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); -@@ -576,9 +573,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - assert(!j->transaction_prev); - assert(!j->transaction_next); - -- if (j->installed) -- continue; -- - r = hashmap_put(m->jobs, UINT32_TO_PTR(j->id), j); - if (r < 0) - goto rollback; -@@ -587,11 +581,6 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - while ((j = hashmap_steal_first(tr->jobs))) { - Job *installed_job; - -- if (j->installed) { -- /* log_debug("Skipping already installed job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); */ -- continue; -- } -- - /* Clean the job dependencies */ - transaction_unlink_job(tr, j, false); - -@@ -614,12 +603,8 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - - rollback: - -- HASHMAP_FOREACH(j, tr->jobs, i) { -- if (j->installed) -- continue; -- -+ HASHMAP_FOREACH(j, tr->jobs, i) - hashmap_remove(m->jobs, UINT32_TO_PTR(j->id)); -- } - - return r; - } --- -1.7.7 - - -From 55284fc0ba28bf10d4fa535a86921bad23505c96 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 12:28:31 +0200 -Subject: [PATCH 21/30] dbus-job: allow multiple bus clients - -Merging of jobs can result in more than one client being interested in a job. -(cherry picked from commit 97e6a11996855800f68dc41c13537784198c8b61) ---- - src/dbus-job.c | 146 +++++++++++++++++++++++++++++++--------------------- - src/dbus-manager.c | 6 ++- - src/dbus.c | 14 +++-- - src/job.c | 21 +++++++- - src/job.h | 15 ++++- - 5 files changed, 131 insertions(+), 71 deletions(-) - -diff --git a/src/dbus-job.c b/src/dbus-job.c -index ab6d610..aa1b4eb 100644 ---- a/src/dbus-job.c -+++ b/src/dbus-job.c -@@ -225,61 +225,71 @@ const DBusObjectPathVTable bus_job_vtable = { - .message_function = bus_job_message_handler - }; - --static int job_send_message(Job *j, DBusMessage *m) { -+static int job_send_message(Job *j, DBusMessage* (*new_message)(Job *j)) { -+ DBusMessage *m = NULL; - int r; - - assert(j); -- assert(m); -+ assert(new_message); - - if (bus_has_subscriber(j->manager)) { -- if ((r = bus_broadcast(j->manager, m)) < 0) -+ m = new_message(j); -+ if (!m) -+ goto oom; -+ r = bus_broadcast(j->manager, m); -+ dbus_message_unref(m); -+ if (r < 0) - return r; - -- } else if (j->bus_client) { -+ } else { - /* If nobody is subscribed, we just send the message -- * to the client which created the job */ -+ * to the client(s) which created the job */ -+ JobBusClient *cl; -+ assert(j->bus_client_list); -+ LIST_FOREACH(client, cl, j->bus_client_list) { -+ assert(cl->bus); - -- assert(j->bus); -+ m = new_message(j); -+ if (!m) -+ goto oom; - -- if (!dbus_message_set_destination(m, j->bus_client)) -- return -ENOMEM; -+ if (!dbus_message_set_destination(m, cl->name)) -+ goto oom; -+ -+ if (!dbus_connection_send(cl->bus, m, NULL)) -+ goto oom; - -- if (!dbus_connection_send(j->bus, m, NULL)) -- return -ENOMEM; -+ dbus_message_unref(m); -+ m = NULL; -+ } - } - - return 0; -+oom: -+ if (m) -+ dbus_message_unref(m); -+ return -ENOMEM; - } - --void bus_job_send_change_signal(Job *j) { -- char *p = NULL; -+static DBusMessage* new_change_signal_message(Job *j) { - DBusMessage *m = NULL; -+ char *p = NULL; - -- assert(j); -- -- if (j->in_dbus_queue) { -- LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); -- j->in_dbus_queue = false; -- } -- -- if (!bus_has_subscriber(j->manager) && !j->bus_client) { -- j->sent_dbus_new_signal = true; -- return; -- } -- -- if (!(p = job_dbus_path(j))) -+ p = job_dbus_path(j); -+ if (!p) - goto oom; - - if (j->sent_dbus_new_signal) { - /* Send a properties changed signal */ -- -- if (!(m = bus_properties_changed_new(p, "org.freedesktop.systemd1.Job", INVALIDATING_PROPERTIES))) -+ m = bus_properties_changed_new(p, "org.freedesktop.systemd1.Job", INVALIDATING_PROPERTIES); -+ if (!m) - goto oom; - - } else { - /* Send a new signal */ - -- if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobNew"))) -+ m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobNew"); -+ if (!m) - goto oom; - - if (!dbus_message_append_args(m, -@@ -289,42 +299,26 @@ void bus_job_send_change_signal(Job *j) { - goto oom; - } - -- if (job_send_message(j, m) < 0) -- goto oom; -- -- free(p); -- dbus_message_unref(m); -- -- j->sent_dbus_new_signal = true; -- -- return; -+ return m; - - oom: -- free(p); -- - if (m) - dbus_message_unref(m); -- -- log_error("Failed to allocate job change signal."); -+ free(p); -+ return NULL; - } - --void bus_job_send_removed_signal(Job *j) { -- char *p = NULL; -+static DBusMessage* new_removed_signal_message(Job *j) { - DBusMessage *m = NULL; -+ char *p = NULL; - const char *r; - -- assert(j); -- -- if (!bus_has_subscriber(j->manager) && !j->bus_client) -- return; -- -- if (!j->sent_dbus_new_signal) -- bus_job_send_change_signal(j); -- -- if (!(p = job_dbus_path(j))) -+ p = job_dbus_path(j); -+ if (!p) - goto oom; - -- if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobRemoved"))) -+ m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobRemoved"); -+ if (!m) - goto oom; - - r = job_result_to_string(j->result); -@@ -336,19 +330,53 @@ void bus_job_send_removed_signal(Job *j) { - DBUS_TYPE_INVALID)) - goto oom; - -- if (job_send_message(j, m) < 0) -- goto oom; -+ return m; - -+oom: -+ if (m) -+ dbus_message_unref(m); - free(p); -- dbus_message_unref(m); -+ return NULL; -+} -+ -+void bus_job_send_change_signal(Job *j) { -+ assert(j); -+ -+ if (j->in_dbus_queue) { -+ LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); -+ j->in_dbus_queue = false; -+ } -+ -+ if (!bus_has_subscriber(j->manager) && !j->bus_client_list) { -+ j->sent_dbus_new_signal = true; -+ return; -+ } -+ -+ if (job_send_message(j, new_change_signal_message) < 0) -+ goto oom; -+ -+ j->sent_dbus_new_signal = true; - - return; - - oom: -- free(p); -+ log_error("Failed to allocate job change signal."); -+} - -- if (m) -- dbus_message_unref(m); -+void bus_job_send_removed_signal(Job *j) { -+ assert(j); -+ -+ if (!bus_has_subscriber(j->manager) && !j->bus_client_list) -+ return; -+ -+ if (!j->sent_dbus_new_signal) -+ bus_job_send_change_signal(j); - -+ if (job_send_message(j, new_removed_signal_message) < 0) -+ goto oom; -+ -+ return; -+ -+oom: - log_error("Failed to allocate job remove signal."); - } -diff --git a/src/dbus-manager.c b/src/dbus-manager.c -index 6d272cb..0b78375 100644 ---- a/src/dbus-manager.c -+++ b/src/dbus-manager.c -@@ -1435,6 +1435,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - const char *name, *smode, *old_name = NULL; - JobMode mode; - Job *j; -+ JobBusClient *cl; - Unit *u; - bool b; - -@@ -1492,10 +1493,11 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - if ((r = manager_add_job(m, job_type, u, mode, true, &error, &j)) < 0) - return bus_send_error_reply(connection, message, &error, r); - -- if (!(j->bus_client = strdup(message_get_sender_with_fallback(message)))) -+ cl = job_bus_client_new(connection, message_get_sender_with_fallback(message)); -+ if (!cl) - goto oom; - -- j->bus = connection; -+ LIST_PREPEND(JobBusClient, client, j->bus_client_list, cl); - - if (!(reply = dbus_message_new_method_return(message))) - goto oom; -diff --git a/src/dbus.c b/src/dbus.c -index 8e6e9fd..50e8c9c 100644 ---- a/src/dbus.c -+++ b/src/dbus.c -@@ -1166,13 +1166,15 @@ static void shutdown_connection(Manager *m, DBusConnection *c) { - Job *j; - Iterator i; - -- HASHMAP_FOREACH(j, m->jobs, i) -- if (j->bus == c) { -- free(j->bus_client); -- j->bus_client = NULL; -- -- j->bus = NULL; -+ HASHMAP_FOREACH(j, m->jobs, i) { -+ JobBusClient *cl, *nextcl; -+ LIST_FOREACH_SAFE(client, cl, nextcl, j->bus_client_list) { -+ if (cl->bus == c) { -+ LIST_REMOVE(JobBusClient, client, j->bus_client_list, cl); -+ free(cl); -+ } - } -+ } - - set_remove(m->bus_connections, c); - set_remove(m->bus_connections_for_dispatch, c); -diff --git a/src/job.c b/src/job.c -index fb759a5..de74751 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -33,6 +33,20 @@ - #include "log.h" - #include "dbus-job.h" - -+JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { -+ JobBusClient *cl; -+ size_t name_len; -+ -+ name_len = strlen(name); -+ cl = malloc0(sizeof(JobBusClient) + name_len + 1); -+ if (!cl) -+ return NULL; -+ -+ cl->bus = connection; -+ memcpy(cl->name, name, name_len + 1); -+ return cl; -+} -+ - Job* job_new(Unit *unit, JobType type) { - Job *j; - -@@ -55,6 +69,8 @@ Job* job_new(Unit *unit, JobType type) { - } - - void job_free(Job *j) { -+ JobBusClient *cl; -+ - assert(j); - assert(!j->installed); - assert(!j->transaction_prev); -@@ -77,7 +93,10 @@ void job_free(Job *j) { - close_nointr_nofail(j->timer_watch.fd); - } - -- free(j->bus_client); -+ while ((cl = j->bus_client_list)) { -+ LIST_REMOVE(JobBusClient, client, j->bus_client_list, cl); -+ free(cl); -+ } - free(j); - } - -diff --git a/src/job.h b/src/job.h -index eab0e07..2025b5b 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -28,6 +28,7 @@ - - typedef struct Job Job; - typedef struct JobDependency JobDependency; -+typedef struct JobBusClient JobBusClient; - typedef enum JobType JobType; - typedef enum JobState JobState; - typedef enum JobMode JobMode; -@@ -99,6 +100,13 @@ struct JobDependency { - bool conflicts; - }; - -+struct JobBusClient { -+ LIST_FIELDS(JobBusClient, client); -+ /* Note that this bus object is not ref counted here. */ -+ DBusConnection *bus; -+ char name[0]; -+}; -+ - struct Job { - Manager *manager; - Unit *unit; -@@ -121,9 +129,8 @@ struct Job { - - Watch timer_watch; - -- /* Note that this bus object is not ref counted here. */ -- DBusConnection *bus; -- char *bus_client; -+ /* There can be more than one client, because of job merging. */ -+ LIST_HEAD(JobBusClient, bus_client_list); - - JobResult result; - -@@ -136,6 +143,8 @@ struct Job { - bool ignore_order:1; - }; - -+JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name); -+ - Job* job_new(Unit *unit, JobType type); - void job_free(Job *job); - Job* job_install(Job *j); --- -1.7.7 - - -From 45aca411e44be019c9ba1bc1500e0b7df73bbf75 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Apr 2012 14:44:00 +0200 -Subject: [PATCH 22/30] transaction: add starting requirements for JOB_RESTART - -While having a Requires= dependency between units, the dependency is started -automatically on "systemctl start", but it's not started on "systemctl -restart". - -JOB_RESTART jobs did not pull the dependencies for starting into the -transaction. - -https://bugzilla.redhat.com/show_bug.cgi?id=802770 - -Note that the other bug noted in comment #2 has been fixed already by avoiding -the deletion of anchor jobs. -(cherry picked from commit 65304075249449a713b4e4842b8538ef4aa1c725) ---- - src/transaction.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index c3e1e13..a2efcbc 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -866,7 +866,7 @@ int transaction_add_job_and_dependencies( - } - - /* Finally, recursively add in all dependencies. */ -- if (type == JOB_START || type == JOB_RELOAD_OR_START) { -+ if (type == JOB_START || type == JOB_RELOAD_OR_START || type == JOB_RESTART) { - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { - r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { --- -1.7.7 - - -From 029699f2de954461054efb21e91994ca6e9df46a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 22 Apr 2012 15:22:52 +0200 -Subject: [PATCH 23/30] transaction: downgrade warnings about masked units - (cherry picked from commit - 59e132a7f416d7c4a33a46d791f250e03d2c2cd0) - ---- - src/transaction.c | 11 +++++++---- - 1 files changed, 7 insertions(+), 4 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index a2efcbc..a36f1df 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -822,7 +822,7 @@ int transaction_add_job_and_dependencies( - - if (type != JOB_STOP && unit->load_state == UNIT_MASKED) { - dbus_set_error(e, BUS_ERROR_MASKED, "Unit %s is masked.", unit->id); -- return -EINVAL; -+ return -EADDRNOTAVAIL; - } - - if (!unit_job_is_applicable(unit, type)) { -@@ -892,7 +892,8 @@ int transaction_add_job_and_dependencies( - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES_OVERRIDABLE], i) { - r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, !override, override, false, false, ignore_order, e); - if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ log_full(r == -EADDRNOTAVAIL ? LOG_DEBUG : LOG_WARNING, -+ "Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); -@@ -902,7 +903,8 @@ int transaction_add_job_and_dependencies( - SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) { - r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, false, ignore_order, e); - if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ log_full(r == -EADDRNOTAVAIL ? LOG_DEBUG : LOG_WARNING, -+ "Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); -@@ -923,7 +925,8 @@ int transaction_add_job_and_dependencies( - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUISITE_OVERRIDABLE], i) { - r = transaction_add_job_and_dependencies(tr, JOB_VERIFY_ACTIVE, dep, ret, !override, override, false, false, ignore_order, e); - if (r < 0) { -- log_warning("Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); -+ log_full(r == -EADDRNOTAVAIL ? LOG_DEBUG : LOG_WARNING, -+ "Cannot add dependency job for unit %s, ignoring: %s", dep->id, bus_error(e, r)); - - if (e) - dbus_error_free(e); --- -1.7.7 - - -From 0ee2f52343ed0da6dc9006be54c9de57b762e563 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 21 Apr 2012 21:40:40 +0200 -Subject: [PATCH 24/30] transaction: improve readability - -The functions looked complicated with the nested loops with breaks, -continues, and "while (again)". -Here using goto actually makes them easier to understand. - -Also correcting the comment about redundant jobs. -(cherry picked from commit 055163ad15a5ca1eb5626c63fa7163e152698e2b) ---- - src/transaction.c | 152 ++++++++++++++++++++++------------------------------- - 1 files changed, 62 insertions(+), 90 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index a36f1df..2bd6541 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -258,44 +258,32 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { - } - - static void transaction_drop_redundant(Transaction *tr) { -- bool again; -- -- assert(tr); -- -- /* Goes through the transaction and removes all jobs that are -- * a noop */ -- -- do { -- Job *j; -- Iterator i; -- -- again = false; -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- bool changes_something = false; -- Job *k; -+ Job *j; -+ Iterator i; - -- LIST_FOREACH(transaction, k, j) { -+ /* Goes through the transaction and removes all jobs of the units -+ * whose jobs are all noops. If not all of a unit's jobs are -+ * redundant, they are kept. */ - -- if (tr->anchor_job != k && -- job_type_is_redundant(k->type, unit_active_state(k->unit)) && -- (!k->unit->job || !job_type_is_conflicting(k->type, k->unit->job->type))) -- continue; -+ assert(tr); - -- changes_something = true; -- break; -- } -+rescan: -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ Job *k; - -- if (changes_something) -- continue; -+ LIST_FOREACH(transaction, k, j) { - -- /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ -- transaction_delete_job(tr, j, false); -- again = true; -- break; -+ if (tr->anchor_job == k || -+ !job_type_is_redundant(k->type, unit_active_state(k->unit)) || -+ (k->unit->job && job_type_is_conflicting(k->type, k->unit->job->type))) -+ goto next_unit; - } - -- } while (again); -+ /* log_debug("Found redundant job %s/%s, dropping.", j->unit->id, job_type_to_string(j->type)); */ -+ transaction_delete_job(tr, j, false); -+ goto rescan; -+ next_unit:; -+ } - } - - static bool unit_matters_to_anchor(Unit *u, Job *j) { -@@ -430,34 +418,27 @@ static int transaction_verify_order(Transaction *tr, unsigned *generation, DBusE - } - - static void transaction_collect_garbage(Transaction *tr) { -- bool again; -+ Iterator i; -+ Job *j; - - assert(tr); - - /* Drop jobs that are not required by any other job */ - -- do { -- Iterator i; -- Job *j; -- -- again = false; -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- if (tr->anchor_job == j || j->object_list) { -- /* log_debug("Keeping job %s/%s because of %s/%s", */ -- /* j->unit->id, job_type_to_string(j->type), */ -- /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ -- /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ -- continue; -- } -- -- /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ -- transaction_delete_job(tr, j, true); -- again = true; -- break; -+rescan: -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ if (tr->anchor_job == j || j->object_list) { -+ /* log_debug("Keeping job %s/%s because of %s/%s", */ -+ /* j->unit->id, job_type_to_string(j->type), */ -+ /* j->object_list->subject ? j->object_list->subject->unit->id : "root", */ -+ /* j->object_list->subject ? job_type_to_string(j->object_list->subject->type) : "root"); */ -+ continue; - } - -- } while (again); -+ /* log_debug("Garbage collecting job %s/%s", j->unit->id, job_type_to_string(j->type)); */ -+ transaction_delete_job(tr, j, true); -+ goto rescan; -+ } - } - - static int transaction_is_destructive(Transaction *tr, DBusError *e) { -@@ -487,59 +468,50 @@ static int transaction_is_destructive(Transaction *tr, DBusError *e) { - } - - static void transaction_minimize_impact(Transaction *tr) { -- bool again; -+ Job *j; -+ Iterator i; -+ - assert(tr); - - /* Drops all unnecessary jobs that reverse already active jobs - * or that stop a running service. */ - -- do { -- Job *j; -- Iterator i; -- -- again = false; -- -- HASHMAP_FOREACH(j, tr->jobs, i) { -- LIST_FOREACH(transaction, j, j) { -- bool stops_running_service, changes_existing_job; -+rescan: -+ HASHMAP_FOREACH(j, tr->jobs, i) { -+ LIST_FOREACH(transaction, j, j) { -+ bool stops_running_service, changes_existing_job; - -- /* If it matters, we shouldn't drop it */ -- if (j->matters_to_anchor) -- continue; -+ /* If it matters, we shouldn't drop it */ -+ if (j->matters_to_anchor) -+ continue; - -- /* Would this stop a running service? -- * Would this change an existing job? -- * If so, let's drop this entry */ -+ /* Would this stop a running service? -+ * Would this change an existing job? -+ * If so, let's drop this entry */ - -- stops_running_service = -- j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); -+ stops_running_service = -+ j->type == JOB_STOP && UNIT_IS_ACTIVE_OR_ACTIVATING(unit_active_state(j->unit)); - -- changes_existing_job = -- j->unit->job && -- job_type_is_conflicting(j->type, j->unit->job->type); -+ changes_existing_job = -+ j->unit->job && -+ job_type_is_conflicting(j->type, j->unit->job->type); - -- if (!stops_running_service && !changes_existing_job) -- continue; -+ if (!stops_running_service && !changes_existing_job) -+ continue; - -- if (stops_running_service) -- log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); -+ if (stops_running_service) -+ log_debug("%s/%s would stop a running service.", j->unit->id, job_type_to_string(j->type)); - -- if (changes_existing_job) -- log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); -+ if (changes_existing_job) -+ log_debug("%s/%s would change existing job.", j->unit->id, job_type_to_string(j->type)); - -- /* Ok, let's get rid of this */ -- log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); -+ /* Ok, let's get rid of this */ -+ log_debug("Deleting %s/%s to minimize impact.", j->unit->id, job_type_to_string(j->type)); - -- transaction_delete_job(tr, j, true); -- again = true; -- break; -- } -- -- if (again) -- break; -+ transaction_delete_job(tr, j, true); -+ goto rescan; - } -- -- } while (again); -+ } - } - - static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { --- -1.7.7 - - -From f613fa87549229f257444c41f5155fb1f5f30f44 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sun, 22 Apr 2012 02:09:04 +0200 -Subject: [PATCH 25/30] transaction: fix detection of cycles involving - installed jobs - -A transaction can be acyclic, but when it's added to installed jobs, -a cycle may result. - -transaction_verify_order_one() attempts to detect these cases, but it -fails because the installed jobs often have the exact generation number -that makes them look as if they were walked already. - -Fix it by resetting the generation numbers of all installed jobs before -detecting cycles. - -An alternative fix could be to add the generation counter to the -Manager and use it instead of starting always from 1 in -transaction_activate(). But I prefer not having to worry about it -wrapping around. -(cherry picked from commit 4e7bd268ae1f39675988b9ac61b9378a67e3ae3e) ---- - src/transaction.c | 8 ++++++++ - 1 files changed, 8 insertions(+), 0 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index 2bd6541..9676b57 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -582,6 +582,8 @@ rollback: - } - - int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e) { -+ Iterator i; -+ Job *j; - int r; - unsigned generation = 1; - -@@ -590,6 +592,12 @@ int transaction_activate(Transaction *tr, Manager *m, JobMode mode, DBusError *e - /* This applies the changes recorded in tr->jobs to - * the actual list of jobs, if possible. */ - -+ /* Reset the generation counter of all installed jobs. The detection of cycles -+ * looks at installed jobs. If they had a non-zero generation from some previous -+ * walk of the graph, the algorithm would break. */ -+ HASHMAP_FOREACH(j, m->jobs, i) -+ j->generation = 0; -+ - /* First step: figure out which jobs matter */ - transaction_find_jobs_that_matter_to_anchor(tr->anchor_job, generation++); - --- -1.7.7 - - -From 374998cf2930534951bc0dace5025468cdf3c247 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sun, 22 Apr 2012 10:54:58 +0200 -Subject: [PATCH 26/30] transaction: abort does not need to use recursive - deletion - -Recursion is unnecessary, because we're deleting all transaction jobs -anyway. And the recursive deletion produces debug messages that are -pointless in transaction abort. -(cherry picked from commit 1b9cea0caa85dce6d9f117638a296b141c49a8fd) ---- - src/transaction.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/transaction.c b/src/transaction.c -index 9676b57..b0a26f2 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -30,7 +30,7 @@ void transaction_abort(Transaction *tr) { - assert(tr); - - while ((j = hashmap_first(tr->jobs))) -- transaction_delete_job(tr, j, true); -+ transaction_delete_job(tr, j, false); - - assert(hashmap_isempty(tr->jobs)); - } --- -1.7.7 - - -From 0d806f0c0bebf755867cfe0b3cc41d55aebea66a Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Mon, 23 Apr 2012 01:24:04 +0200 -Subject: [PATCH 27/30] job: serialize jobs properly - -Jobs were not preserved correctly over a daemon-reload operation. -A systemctl process waiting for a job completion received a job removal -signal. The job itself changed its id. The job timeout started ticking all -over again. - -This fixes the deficiencies. -(cherry picked from commit 39a18c60d07319ebfcfd476556729c2cadd616d6) ---- - src/dbus-job.c | 6 +- - src/job.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- - src/job.h | 6 ++ - src/unit.c | 45 ++++++++++++--- - src/unit.h | 4 +- - 5 files changed, 203 insertions(+), 20 deletions(-) - -diff --git a/src/dbus-job.c b/src/dbus-job.c -index aa1b4eb..63e5846 100644 ---- a/src/dbus-job.c -+++ b/src/dbus-job.c -@@ -232,7 +232,7 @@ static int job_send_message(Job *j, DBusMessage* (*new_message)(Job *j)) { - assert(j); - assert(new_message); - -- if (bus_has_subscriber(j->manager)) { -+ if (bus_has_subscriber(j->manager) || j->forgot_bus_clients) { - m = new_message(j); - if (!m) - goto oom; -@@ -347,7 +347,7 @@ void bus_job_send_change_signal(Job *j) { - j->in_dbus_queue = false; - } - -- if (!bus_has_subscriber(j->manager) && !j->bus_client_list) { -+ if (!bus_has_subscriber(j->manager) && !j->bus_client_list && !j->forgot_bus_clients) { - j->sent_dbus_new_signal = true; - return; - } -@@ -366,7 +366,7 @@ oom: - void bus_job_send_removed_signal(Job *j) { - assert(j); - -- if (!bus_has_subscriber(j->manager) && !j->bus_client_list) -+ if (!bus_has_subscriber(j->manager) && !j->bus_client_list && !j->forgot_bus_clients) - return; - - if (!j->sent_dbus_new_signal) -diff --git a/src/job.c b/src/job.c -index de74751..69df024 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -47,22 +47,36 @@ JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { - return cl; - } - --Job* job_new(Unit *unit, JobType type) { -+Job* job_new_raw(Unit *unit) { - Job *j; - -- assert(type < _JOB_TYPE_MAX); -+ /* used for deserialization */ -+ - assert(unit); - -- if (!(j = new0(Job, 1))) -+ j = new0(Job, 1); -+ if (!j) - return NULL; - - j->manager = unit->manager; -- j->id = j->manager->current_job_id++; -- j->type = type; - j->unit = unit; -- - j->timer_watch.type = WATCH_INVALID; - -+ return j; -+} -+ -+Job* job_new(Unit *unit, JobType type) { -+ Job *j; -+ -+ assert(type < _JOB_TYPE_MAX); -+ -+ j = job_new_raw(unit); -+ if (!j) -+ return NULL; -+ -+ j->id = j->manager->current_job_id++; -+ j->type = type; -+ - /* We don't link it here, that's what job_dependency() is for */ - - return j; -@@ -105,7 +119,9 @@ void job_uninstall(Job *j) { - assert(j->unit->job == j); - /* Detach from next 'bigger' objects */ - -- bus_job_send_removed_signal(j); -+ /* daemon-reload should be transparent to job observers */ -+ if (j->manager->n_reloading <= 0) -+ bus_job_send_removed_signal(j); - - j->unit->job = NULL; - unit_add_to_gc_queue(j->unit); -@@ -180,6 +196,18 @@ Job* job_install(Job *j) { - return j; - } - -+void job_install_deserialized(Job *j) { -+ assert(!j->installed); -+ -+ if (j->unit->job) { -+ log_debug("Unit %s already has a job installed. Not installing deserialized job.", j->unit->id); -+ return; -+ } -+ j->unit->job = j; -+ j->installed = true; -+ log_debug("Reinstalled deserialized job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); -+} -+ - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { - JobDependency *l; - -@@ -732,6 +760,126 @@ void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w) { - job_finish_and_invalidate(j, JOB_TIMEOUT); - } - -+int job_serialize(Job *j, FILE *f, FDSet *fds) { -+ fprintf(f, "job-id=%u\n", j->id); -+ fprintf(f, "job-type=%s\n", job_type_to_string(j->type)); -+ fprintf(f, "job-state=%s\n", job_state_to_string(j->state)); -+ fprintf(f, "job-override=%s\n", yes_no(j->override)); -+ fprintf(f, "job-sent-dbus-new-signal=%s\n", yes_no(j->sent_dbus_new_signal)); -+ fprintf(f, "job-ignore-order=%s\n", yes_no(j->ignore_order)); -+ /* Cannot save bus clients. Just note the fact that we're losing -+ * them. job_send_message() will fallback to broadcasting. */ -+ fprintf(f, "job-forgot-bus-clients=%s\n", -+ yes_no(j->forgot_bus_clients || j->bus_client_list)); -+ if (j->timer_watch.type == WATCH_JOB_TIMER) { -+ int copy = fdset_put_dup(fds, j->timer_watch.fd); -+ if (copy < 0) -+ return copy; -+ fprintf(f, "job-timer-watch-fd=%d\n", copy); -+ } -+ -+ /* End marker */ -+ fputc('\n', f); -+ return 0; -+} -+ -+int job_deserialize(Job *j, FILE *f, FDSet *fds) { -+ for (;;) { -+ char line[LINE_MAX], *l, *v; -+ size_t k; -+ -+ if (!fgets(line, sizeof(line), f)) { -+ if (feof(f)) -+ return 0; -+ return -errno; -+ } -+ -+ char_array_0(line); -+ l = strstrip(line); -+ -+ /* End marker */ -+ if (l[0] == 0) -+ return 0; -+ -+ k = strcspn(l, "="); -+ -+ if (l[k] == '=') { -+ l[k] = 0; -+ v = l+k+1; -+ } else -+ v = l+k; -+ -+ if (streq(l, "job-id")) { -+ if (safe_atou32(v, &j->id) < 0) -+ log_debug("Failed to parse job id value %s", v); -+ } else if (streq(l, "job-type")) { -+ JobType t = job_type_from_string(v); -+ if (t < 0) -+ log_debug("Failed to parse job type %s", v); -+ else -+ j->type = t; -+ } else if (streq(l, "job-state")) { -+ JobState s = job_state_from_string(v); -+ if (s < 0) -+ log_debug("Failed to parse job state %s", v); -+ else -+ j->state = s; -+ } else if (streq(l, "job-override")) { -+ int b = parse_boolean(v); -+ if (b < 0) -+ log_debug("Failed to parse job override flag %s", v); -+ else -+ j->override = j->override || b; -+ } else if (streq(l, "job-sent-dbus-new-signal")) { -+ int b = parse_boolean(v); -+ if (b < 0) -+ log_debug("Failed to parse job sent_dbus_new_signal flag %s", v); -+ else -+ j->sent_dbus_new_signal = j->sent_dbus_new_signal || b; -+ } else if (streq(l, "job-ignore-order")) { -+ int b = parse_boolean(v); -+ if (b < 0) -+ log_debug("Failed to parse job ignore_order flag %s", v); -+ else -+ j->ignore_order = j->ignore_order || b; -+ } else if (streq(l, "job-forgot-bus-clients")) { -+ int b = parse_boolean(v); -+ if (b < 0) -+ log_debug("Failed to parse job forgot_bus_clients flag %s", v); -+ else -+ j->forgot_bus_clients = j->forgot_bus_clients || b; -+ } else if (streq(l, "job-timer-watch-fd")) { -+ int fd; -+ if (safe_atoi(v, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd)) -+ log_debug("Failed to parse job-timer-watch-fd value %s", v); -+ else { -+ if (j->timer_watch.type == WATCH_JOB_TIMER) -+ close_nointr_nofail(j->timer_watch.fd); -+ -+ j->timer_watch.type = WATCH_JOB_TIMER; -+ j->timer_watch.fd = fdset_remove(fds, fd); -+ j->timer_watch.data.job = j; -+ } -+ } -+ } -+} -+ -+int job_coldplug(Job *j) { -+ struct epoll_event ev; -+ -+ if (j->timer_watch.type != WATCH_JOB_TIMER) -+ return 0; -+ -+ zero(ev); -+ ev.data.ptr = &j->timer_watch; -+ ev.events = EPOLLIN; -+ -+ if (epoll_ctl(j->manager->epoll_fd, EPOLL_CTL_ADD, j->timer_watch.fd, &ev) < 0) -+ return -errno; -+ -+ return 0; -+} -+ - static const char* const job_state_table[_JOB_STATE_MAX] = { - [JOB_WAITING] = "waiting", - [JOB_RUNNING] = "running" -diff --git a/src/job.h b/src/job.h -index 2025b5b..eea8242 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -141,15 +141,21 @@ struct Job { - bool in_dbus_queue:1; - bool sent_dbus_new_signal:1; - bool ignore_order:1; -+ bool forgot_bus_clients:1; - }; - - JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name); - - Job* job_new(Unit *unit, JobType type); -+Job* job_new_raw(Unit *unit); - void job_free(Job *job); - Job* job_install(Job *j); -+void job_install_deserialized(Job *j); - void job_uninstall(Job *j); - void job_dump(Job *j, FILE*f, const char *prefix); -+int job_serialize(Job *j, FILE *f, FDSet *fds); -+int job_deserialize(Job *j, FILE *f, FDSet *fds); -+int job_coldplug(Job *j); - - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts); - void job_dependency_free(JobDependency *l); -diff --git a/src/unit.c b/src/unit.c -index 1949995..c203a31 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -2288,8 +2288,10 @@ int unit_serialize(Unit *u, FILE *f, FDSet *fds) { - if ((r = UNIT_VTABLE(u)->serialize(u, f, fds)) < 0) - return r; - -- if (u->job) -- unit_serialize_item(u, f, "job", job_type_to_string(u->job->type)); -+ if (u->job) { -+ fprintf(f, "job\n"); -+ job_serialize(u->job, f, fds); -+ } - - dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); - dual_timestamp_serialize(f, "active-enter-timestamp", &u->active_enter_timestamp); -@@ -2368,13 +2370,32 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - v = l+k; - - if (streq(l, "job")) { -- JobType type; -+ if (v[0] == '\0') { -+ /* new-style serialized job */ -+ Job *j = job_new_raw(u); -+ if (!j) -+ return -ENOMEM; - -- if ((type = job_type_from_string(v)) < 0) -- log_debug("Failed to parse job type value %s", v); -- else -- u->deserialized_job = type; -+ r = job_deserialize(j, f, fds); -+ if (r < 0) { -+ job_free(j); -+ return r; -+ } - -+ job_install_deserialized(j); -+ r = hashmap_put(u->manager->jobs, UINT32_TO_PTR(j->id), j); -+ if (r < 0) { -+ job_free(j); -+ return r; -+ } -+ } else { -+ /* legacy */ -+ JobType type = job_type_from_string(v); -+ if (type < 0) -+ log_debug("Failed to parse job type value %s", v); -+ else -+ u->deserialized_job = type; -+ } - continue; - } else if (streq(l, "inactive-exit-timestamp")) { - dual_timestamp_deserialize(v, &u->inactive_exit_timestamp); -@@ -2450,8 +2471,14 @@ int unit_coldplug(Unit *u) { - if ((r = UNIT_VTABLE(u)->coldplug(u)) < 0) - return r; - -- if (u->deserialized_job >= 0) { -- if ((r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL)) < 0) -+ if (u->job) { -+ r = job_coldplug(u->job); -+ if (r < 0) -+ return r; -+ } else if (u->deserialized_job >= 0) { -+ /* legacy */ -+ r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL); -+ if (r < 0) - return r; - - u->deserialized_job = _JOB_TYPE_INVALID; -diff --git a/src/unit.h b/src/unit.h -index 756f465..5fceabb 100644 ---- a/src/unit.h -+++ b/src/unit.h -@@ -200,7 +200,9 @@ struct Unit { - unsigned gc_marker; - - /* When deserializing, temporarily store the job type for this -- * unit here, if there was a job scheduled */ -+ * unit here, if there was a job scheduled. -+ * Only for deserializing from a legacy version. New style uses full -+ * serialized jobs. */ - int deserialized_job; /* This is actually of type JobType */ - - /* Error code when we didn't manage to load the unit (negative) */ --- -1.7.7 - - -From f2e0e5d5c80c8a489faa584539d7010b056dee7b Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 24 Apr 2012 11:21:03 +0200 -Subject: [PATCH 28/30] transaction: cancel jobs non-recursively on isolate - -Recursive cancellation of jobs would trigger OnFailure actions of -dependent jobs. This is not desirable when isolating. - -Fixes https://bugzilla.redhat.com/show_bug.cgi?id=798328 -(cherry picked from commit 5273510e9f228a300ec6207d4502f1c6253aed5e) ---- - src/dbus-job.c | 2 +- - src/job.c | 41 ++++++++++++++++------------------------- - src/job.h | 2 +- - src/manager.c | 3 ++- - src/transaction.c | 10 ++++------ - src/unit.c | 12 ++++++------ - 6 files changed, 30 insertions(+), 40 deletions(-) - -diff --git a/src/dbus-job.c b/src/dbus-job.c -index 63e5846..8474138 100644 ---- a/src/dbus-job.c -+++ b/src/dbus-job.c -@@ -100,7 +100,7 @@ static DBusHandlerResult bus_job_message_dispatch(Job *j, DBusConnection *connec - if (!(reply = dbus_message_new_method_return(message))) - goto oom; - -- job_finish_and_invalidate(j, JOB_CANCELED); -+ job_finish_and_invalidate(j, JOB_CANCELED, true); - - } else { - const BusBoundProperties bps[] = { -diff --git a/src/job.c b/src/job.c -index 69df024..e8e0264 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -164,7 +164,7 @@ Job* job_install(Job *j) { - - if (uj) { - if (job_type_is_conflicting(uj->type, j->type)) -- job_finish_and_invalidate(uj, JOB_CANCELED); -+ job_finish_and_invalidate(uj, JOB_CANCELED, true); - else { - /* not conflicting, i.e. mergeable */ - -@@ -496,13 +496,13 @@ int job_run_and_invalidate(Job *j) { - - if ((j = manager_get_job(m, id))) { - if (r == -EALREADY) -- r = job_finish_and_invalidate(j, JOB_DONE); -+ r = job_finish_and_invalidate(j, JOB_DONE, true); - else if (r == -ENOEXEC) -- r = job_finish_and_invalidate(j, JOB_SKIPPED); -+ r = job_finish_and_invalidate(j, JOB_SKIPPED, true); - else if (r == -EAGAIN) - j->state = JOB_WAITING; - else if (r < 0) -- r = job_finish_and_invalidate(j, JOB_FAILED); -+ r = job_finish_and_invalidate(j, JOB_FAILED, true); - } - - return r; -@@ -555,12 +555,11 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { - } - } - --int job_finish_and_invalidate(Job *j, JobResult result) { -+int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { - Unit *u; - Unit *other; - JobType t; - Iterator i; -- bool recursed = false; - - assert(j); - assert(j->installed); -@@ -594,7 +593,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - job_print_status_message(u, t, result); - - /* Fail depending jobs on failure */ -- if (result != JOB_DONE) { -+ if (result != JOB_DONE && recursive) { - - if (t == JOB_START || - t == JOB_VERIFY_ACTIVE || -@@ -604,29 +603,23 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - if (other->job && - (other->job->type == JOB_START || - other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) { -- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); -- recursed = true; -- } -+ other->job->type == JOB_RELOAD_OR_START)) -+ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - - SET_FOREACH(other, u->dependencies[UNIT_BOUND_BY], i) - if (other->job && - (other->job->type == JOB_START || - other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) { -- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); -- recursed = true; -- } -+ other->job->type == JOB_RELOAD_OR_START)) -+ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - - SET_FOREACH(other, u->dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) - if (other->job && - !other->job->override && - (other->job->type == JOB_START || - other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) { -- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); -- recursed = true; -- } -+ other->job->type == JOB_RELOAD_OR_START)) -+ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - - } else if (t == JOB_STOP) { - -@@ -634,10 +627,8 @@ int job_finish_and_invalidate(Job *j, JobResult result) { - if (other->job && - (other->job->type == JOB_START || - other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) { -- job_finish_and_invalidate(other->job, JOB_DEPENDENCY); -- recursed = true; -- } -+ other->job->type == JOB_RELOAD_OR_START)) -+ job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - } - } - -@@ -665,7 +656,7 @@ finish: - - manager_check_finished(u->manager); - -- return recursed; -+ return 0; - } - - int job_start_timer(Job *j) { -@@ -757,7 +748,7 @@ void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w) { - assert(w == &j->timer_watch); - - log_warning("Job %s/%s timed out.", j->unit->id, job_type_to_string(j->type)); -- job_finish_and_invalidate(j, JOB_TIMEOUT); -+ job_finish_and_invalidate(j, JOB_TIMEOUT, true); - } - - int job_serialize(Job *j, FILE *f, FDSet *fds) { -diff --git a/src/job.h b/src/job.h -index eea8242..5b326ef 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -196,7 +196,7 @@ int job_start_timer(Job *j); - void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w); - - int job_run_and_invalidate(Job *j); --int job_finish_and_invalidate(Job *j, JobResult result); -+int job_finish_and_invalidate(Job *j, JobResult result, bool recursive); - - char *job_dbus_path(Job *j); - -diff --git a/src/manager.c b/src/manager.c -index 86ec858..7bff456 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -846,7 +846,8 @@ void manager_clear_jobs(Manager *m) { - assert(m); - - while ((j = hashmap_first(m->jobs))) -- job_finish_and_invalidate(j, JOB_CANCELED); -+ /* No need to recurse. We're cancelling all jobs. */ -+ job_finish_and_invalidate(j, JOB_CANCELED, false); - } - - unsigned manager_dispatch_run_queue(Manager *m) { -diff --git a/src/transaction.c b/src/transaction.c -index b0a26f2..f687539 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -525,18 +525,16 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) { - - /* When isolating first kill all installed jobs which - * aren't part of the new transaction */ -- rescan: - HASHMAP_FOREACH(j, m->jobs, i) { - assert(j->installed); - - if (hashmap_get(tr->jobs, j->unit)) - continue; - -- /* 'j' itself is safe to remove, but if other jobs -- are invalidated recursively, our iterator may become -- invalid and we need to start over. */ -- if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) -- goto rescan; -+ /* Not invalidating recursively. Avoids triggering -+ * OnFailure= actions of dependent jobs. Also avoids -+ * invalidating our iterator. */ -+ job_finish_and_invalidate(j, JOB_CANCELED, false); - } - } - -diff --git a/src/unit.c b/src/unit.c -index c203a31..ff8331c 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -1226,12 +1226,12 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - case JOB_VERIFY_ACTIVE: - - if (UNIT_IS_ACTIVE_OR_RELOADING(ns)) -- job_finish_and_invalidate(u->job, JOB_DONE); -+ job_finish_and_invalidate(u->job, JOB_DONE, true); - else if (u->job->state == JOB_RUNNING && ns != UNIT_ACTIVATING) { - unexpected = true; - - if (UNIT_IS_INACTIVE_OR_FAILED(ns)) -- job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE); -+ job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE, true); - } - - break; -@@ -1241,12 +1241,12 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - - if (u->job->state == JOB_RUNNING) { - if (ns == UNIT_ACTIVE) -- job_finish_and_invalidate(u->job, reload_success ? JOB_DONE : JOB_FAILED); -+ job_finish_and_invalidate(u->job, reload_success ? JOB_DONE : JOB_FAILED, true); - else if (ns != UNIT_ACTIVATING && ns != UNIT_RELOADING) { - unexpected = true; - - if (UNIT_IS_INACTIVE_OR_FAILED(ns)) -- job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE); -+ job_finish_and_invalidate(u->job, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE, true); - } - } - -@@ -1257,10 +1257,10 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - case JOB_TRY_RESTART: - - if (UNIT_IS_INACTIVE_OR_FAILED(ns)) -- job_finish_and_invalidate(u->job, JOB_DONE); -+ job_finish_and_invalidate(u->job, JOB_DONE, true); - else if (u->job->state == JOB_RUNNING && ns != UNIT_DEACTIVATING) { - unexpected = true; -- job_finish_and_invalidate(u->job, JOB_FAILED); -+ job_finish_and_invalidate(u->job, JOB_FAILED, true); - } - - break; --- -1.7.7 - - -From 38a2f4227415ebf3519369d27a23750948f6dddf Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 25 Apr 2012 11:58:27 +0200 -Subject: [PATCH 29/30] core: add NOP jobs, job type collapsing - -Two of our current job types are special: -JOB_TRY_RESTART, JOB_RELOAD_OR_START. - -They differ from other job types by being sensitive to the unit active state. -They perform some action when the unit is active and some other action -otherwise. This raises a question: when exactly should the unit state be -checked to make the decision? - -Currently the unit state is checked when the job becomes runnable. It's more -sensible to check the state immediately when the job is added by the user. -When the user types "systemctl try-restart foo.service", he really intends -to restart the service if it's running right now. If it isn't running right -now, the restart is pointless. - -Consider the example (from Bugzilla[1]): - -sleep.service takes some time to start. -hello.service has After=sleep.service. -Both services get started. Two jobs will appear: - hello.service/start waiting - sleep.service/start running -Then someone runs "systemctl try-restart hello.service". - -Currently the try-restart operation will block and wait for -sleep.service/start to complete. - -The correct result is to complete the try-restart operation immediately -with success, because hello.service is not running. The two original -jobs must not be disturbed by this. - -To fix this we introduce two new concepts: -- a new job type: JOB_NOP - A JOB_NOP job does not do anything to the unit. It does not pull in any - dependencies. It is always immediately runnable. When installed to a unit, - it sits in a special slot (u->nop_job) where it never conflicts with - the installed job (u->job) of a different type. It never merges with jobs - of other types, but it can merge into an already installed JOB_NOP job. - -- "collapsing" of job types - When a job of one of the two special types is added, the state of the unit - is checked immediately and the job type changes: - JOB_TRY_RESTART -> JOB_RESTART or JOB_NOP - JOB_RELOAD_OR_START -> JOB_RELOAD or JOB_START - Should a job type JOB_RELOAD_OR_START appear later during job merging, it - collapses immediately afterwards. - Collapsing actually makes some things simpler, because there are now fewer - job types that are allowed in the transaction. - -[1] Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=753586 -(cherry picked from commit e0209d83e7b30153f43b1a633c955f66eb2c2e4a) - -Conflicts: - - Makefile.am - src/job.c ---- - src/job.c | 163 ++++++++++++++++++++++++++++++++------------------- - src/job.h | 44 ++++++++++---- - src/manager.c | 2 + - src/test-job-type.c | 85 +++++++++++++++++---------- - src/transaction.c | 18 +++--- - src/unit.c | 29 +++++++++- - src/unit.h | 6 +- - 7 files changed, 230 insertions(+), 117 deletions(-) - -diff --git a/src/job.c b/src/job.c -index e8e0264..2438f39 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -60,6 +60,7 @@ Job* job_new_raw(Unit *unit) { - - j->manager = unit->manager; - j->unit = unit; -+ j->type = _JOB_TYPE_INVALID; - j->timer_watch.type = WATCH_INVALID; - - return j; -@@ -115,15 +116,21 @@ void job_free(Job *j) { - } - - void job_uninstall(Job *j) { -+ Job **pj; -+ - assert(j->installed); -- assert(j->unit->job == j); -+ -+ pj = (j->type == JOB_NOP) ? &j->unit->nop_job : &j->unit->job; -+ assert(*pj == j); -+ - /* Detach from next 'bigger' objects */ - - /* daemon-reload should be transparent to job observers */ - if (j->manager->n_reloading <= 0) - bus_job_send_removed_signal(j); - -- j->unit->job = NULL; -+ *pj = NULL; -+ - unit_add_to_gc_queue(j->unit); - - hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); -@@ -144,31 +151,38 @@ static bool job_type_allows_late_merge(JobType t) { - * patched into JOB_START after stopping the unit. So if we see a - * JOB_RESTART running, it means the unit hasn't stopped yet and at - * this time the merge is still allowed. */ -- return !(t == JOB_RELOAD || t == JOB_RELOAD_OR_START); -+ return t != JOB_RELOAD; - } - - static void job_merge_into_installed(Job *j, Job *other) { - assert(j->installed); - assert(j->unit == other->unit); - -- j->type = job_type_lookup_merge(j->type, other->type); -- assert(j->type >= 0); -+ if (j->type != JOB_NOP) -+ job_type_merge_and_collapse(&j->type, other->type, j->unit); -+ else -+ assert(other->type == JOB_NOP); - - j->override = j->override || other->override; - } - - Job* job_install(Job *j) { -- Job *uj = j->unit->job; -+ Job **pj; -+ Job *uj; - - assert(!j->installed); -+ assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); -+ -+ pj = (j->type == JOB_NOP) ? &j->unit->nop_job : &j->unit->job; -+ uj = *pj; - - if (uj) { -- if (job_type_is_conflicting(uj->type, j->type)) -+ if (j->type != JOB_NOP && job_type_is_conflicting(uj->type, j->type)) - job_finish_and_invalidate(uj, JOB_CANCELED, true); - else { - /* not conflicting, i.e. mergeable */ - -- if (uj->state == JOB_WAITING || -+ if (j->type == JOB_NOP || uj->state == JOB_WAITING || - (job_type_allows_late_merge(j->type) && job_type_is_superset(uj->type, j->type))) { - job_merge_into_installed(uj, j); - log_debug("Merged into installed job %s/%s as %u", -@@ -189,23 +203,33 @@ Job* job_install(Job *j) { - } - - /* Install the job */ -- j->unit->job = j; -+ *pj = j; - j->installed = true; - j->manager->n_installed_jobs ++; - log_debug("Installed new job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); - return j; - } - --void job_install_deserialized(Job *j) { -+int job_install_deserialized(Job *j) { -+ Job **pj; -+ - assert(!j->installed); - -- if (j->unit->job) { -+ if (j->type < 0 || j->type >= _JOB_TYPE_MAX_IN_TRANSACTION) { -+ log_debug("Invalid job type %s in deserialization.", strna(job_type_to_string(j->type))); -+ return -EINVAL; -+ } -+ -+ pj = (j->type == JOB_NOP) ? &j->unit->nop_job : &j->unit->job; -+ -+ if (*pj) { - log_debug("Unit %s already has a job installed. Not installing deserialized job.", j->unit->id); -- return; -+ return -EEXIST; - } -- j->unit->job = j; -+ *pj = j; - j->installed = true; - log_debug("Reinstalled deserialized job %s/%s as %u", j->unit->id, job_type_to_string(j->type), (unsigned) j->id); -+ return 0; - } - - JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool conflicts) { -@@ -268,6 +292,10 @@ void job_dump(Job *j, FILE*f, const char *prefix) { - * its lower triangle to avoid duplication. We don't store the main diagonal, - * because A merged with A is simply A. - * -+ * If the resulting type is collapsed immediately afterwards (to get rid of -+ * the JOB_RELOAD_OR_START, which lies outside the lookup function's domain), -+ * the following properties hold: -+ * - * Merging is associative! A merged with B merged with C is the same as - * A merged with C merged with B. - * -@@ -278,21 +306,19 @@ void job_dump(Job *j, FILE*f, const char *prefix) { - * be merged with C either. - */ - static const JobType job_merging_table[] = { --/* What \ With * JOB_START JOB_VERIFY_ACTIVE JOB_STOP JOB_RELOAD JOB_RELOAD_OR_START JOB_RESTART JOB_TRY_RESTART */ --/************************************************************************************************************************************/ -+/* What \ With * JOB_START JOB_VERIFY_ACTIVE JOB_STOP JOB_RELOAD */ -+/*********************************************************************************/ - /*JOB_START */ - /*JOB_VERIFY_ACTIVE */ JOB_START, - /*JOB_STOP */ -1, -1, - /*JOB_RELOAD */ JOB_RELOAD_OR_START, JOB_RELOAD, -1, --/*JOB_RELOAD_OR_START*/ JOB_RELOAD_OR_START, JOB_RELOAD_OR_START, -1, JOB_RELOAD_OR_START, --/*JOB_RESTART */ JOB_RESTART, JOB_RESTART, -1, JOB_RESTART, JOB_RESTART, --/*JOB_TRY_RESTART */ JOB_RESTART, JOB_TRY_RESTART, -1, JOB_TRY_RESTART, JOB_RESTART, JOB_RESTART, -+/*JOB_RESTART */ JOB_RESTART, JOB_RESTART, -1, JOB_RESTART, - }; - - JobType job_type_lookup_merge(JobType a, JobType b) { -- assert_cc(ELEMENTSOF(job_merging_table) == _JOB_TYPE_MAX * (_JOB_TYPE_MAX - 1) / 2); -- assert(a >= 0 && a < _JOB_TYPE_MAX); -- assert(b >= 0 && b < _JOB_TYPE_MAX); -+ assert_cc(ELEMENTSOF(job_merging_table) == _JOB_TYPE_MAX_MERGING * (_JOB_TYPE_MAX_MERGING - 1) / 2); -+ assert(a >= 0 && a < _JOB_TYPE_MAX_MERGING); -+ assert(b >= 0 && b < _JOB_TYPE_MAX_MERGING); - - if (a == b) - return a; -@@ -328,24 +354,50 @@ bool job_type_is_redundant(JobType a, UnitActiveState b) { - return - b == UNIT_RELOADING; - -- case JOB_RELOAD_OR_START: -- return -- b == UNIT_ACTIVATING || -- b == UNIT_RELOADING; -- - case JOB_RESTART: - return - b == UNIT_ACTIVATING; - -+ default: -+ assert_not_reached("Invalid job type"); -+ } -+} -+ -+void job_type_collapse(JobType *t, Unit *u) { -+ UnitActiveState s; -+ -+ switch (*t) { -+ - case JOB_TRY_RESTART: -- return -- b == UNIT_ACTIVATING; -+ s = unit_active_state(u); -+ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(s)) -+ *t = JOB_NOP; -+ else -+ *t = JOB_RESTART; -+ break; -+ -+ case JOB_RELOAD_OR_START: -+ s = unit_active_state(u); -+ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(s)) -+ *t = JOB_START; -+ else -+ *t = JOB_RELOAD; -+ break; - - default: -- assert_not_reached("Invalid job type"); -+ ; - } - } - -+int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u) { -+ JobType t = job_type_lookup_merge(*a, b); -+ if (t < 0) -+ return -EEXIST; -+ *a = t; -+ job_type_collapse(a, u); -+ return 0; -+} -+ - bool job_is_runnable(Job *j) { - Iterator i; - Unit *other; -@@ -362,10 +414,12 @@ bool job_is_runnable(Job *j) { - if (j->ignore_order) - return true; - -+ if (j->type == JOB_NOP) -+ return true; -+ - if (j->type == JOB_START || - j->type == JOB_VERIFY_ACTIVE || -- j->type == JOB_RELOAD || -- j->type == JOB_RELOAD_OR_START) { -+ j->type == JOB_RELOAD) { - - /* Immediate result is that the job is or might be - * started. In this case lets wait for the -@@ -383,8 +437,7 @@ bool job_is_runnable(Job *j) { - SET_FOREACH(other, j->unit->dependencies[UNIT_BEFORE], i) - if (other->job && - (other->job->type == JOB_STOP || -- other->job->type == JOB_RESTART || -- other->job->type == JOB_TRY_RESTART)) -+ other->job->type == JOB_RESTART)) - return false; - - /* This means that for a service a and a service b where b -@@ -416,6 +469,7 @@ int job_run_and_invalidate(Job *j) { - - assert(j); - assert(j->installed); -+ assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); - - if (j->in_run_queue) { - LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); -@@ -441,15 +495,6 @@ int job_run_and_invalidate(Job *j) { - - switch (j->type) { - -- case JOB_RELOAD_OR_START: -- if (unit_active_state(j->unit) == UNIT_ACTIVE) { -- j->type = JOB_RELOAD; -- r = unit_reload(j->unit); -- break; -- } -- j->type = JOB_START; -- /* fall through */ -- - case JOB_START: - r = unit_start(j->unit); - -@@ -469,14 +514,6 @@ int job_run_and_invalidate(Job *j) { - break; - } - -- case JOB_TRY_RESTART: -- if (UNIT_IS_INACTIVE_OR_DEACTIVATING(unit_active_state(j->unit))) { -- r = -ENOEXEC; -- break; -- } -- j->type = JOB_RESTART; -- /* fall through */ -- - case JOB_STOP: - case JOB_RESTART: - r = unit_stop(j->unit); -@@ -490,11 +527,16 @@ int job_run_and_invalidate(Job *j) { - r = unit_reload(j->unit); - break; - -+ case JOB_NOP: -+ r = -EALREADY; -+ break; -+ - default: - assert_not_reached("Unknown job type"); - } - -- if ((j = manager_get_job(m, id))) { -+ j = manager_get_job(m, id); -+ if (j) { - if (r == -EALREADY) - r = job_finish_and_invalidate(j, JOB_DONE, true); - else if (r == -ENOEXEC) -@@ -563,6 +605,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { - - assert(j); - assert(j->installed); -+ assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); - - job_add_to_dbus_queue(j); - -@@ -596,29 +639,25 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { - if (result != JOB_DONE && recursive) { - - if (t == JOB_START || -- t == JOB_VERIFY_ACTIVE || -- t == JOB_RELOAD_OR_START) { -+ t == JOB_VERIFY_ACTIVE) { - - SET_FOREACH(other, u->dependencies[UNIT_REQUIRED_BY], i) - if (other->job && - (other->job->type == JOB_START || -- other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) -+ other->job->type == JOB_VERIFY_ACTIVE)) - job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - - SET_FOREACH(other, u->dependencies[UNIT_BOUND_BY], i) - if (other->job && - (other->job->type == JOB_START || -- other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) -+ other->job->type == JOB_VERIFY_ACTIVE)) - job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - - SET_FOREACH(other, u->dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) - if (other->job && - !other->job->override && - (other->job->type == JOB_START || -- other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) -+ other->job->type == JOB_VERIFY_ACTIVE)) - job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - - } else if (t == JOB_STOP) { -@@ -626,8 +665,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { - SET_FOREACH(other, u->dependencies[UNIT_CONFLICTED_BY], i) - if (other->job && - (other->job->type == JOB_START || -- other->job->type == JOB_VERIFY_ACTIVE || -- other->job->type == JOB_RELOAD_OR_START)) -+ other->job->type == JOB_VERIFY_ACTIVE)) - job_finish_and_invalidate(other->job, JOB_DEPENDENCY, true); - } - } -@@ -807,6 +845,8 @@ int job_deserialize(Job *j, FILE *f, FDSet *fds) { - JobType t = job_type_from_string(v); - if (t < 0) - log_debug("Failed to parse job type %s", v); -+ else if (t >= _JOB_TYPE_MAX_IN_TRANSACTION) -+ log_debug("Cannot deserialize job of type %s", v); - else - j->type = t; - } else if (streq(l, "job-state")) { -@@ -886,6 +926,7 @@ static const char* const job_type_table[_JOB_TYPE_MAX] = { - [JOB_RELOAD_OR_START] = "reload-or-start", - [JOB_RESTART] = "restart", - [JOB_TRY_RESTART] = "try-restart", -+ [JOB_NOP] = "nop", - }; - - DEFINE_STRING_TABLE_LOOKUP(job_type, JobType); -diff --git a/src/job.h b/src/job.h -index 5b326ef..4edf3b9 100644 ---- a/src/job.h -+++ b/src/job.h -@@ -46,14 +46,34 @@ enum JobType { - - JOB_STOP, - -- JOB_RELOAD, /* if running reload */ -- JOB_RELOAD_OR_START, /* if running reload, if not running start */ -+ JOB_RELOAD, /* if running, reload */ - - /* Note that restarts are first treated like JOB_STOP, but - * then instead of finishing are patched to become - * JOB_START. */ -- JOB_RESTART, /* if running stop, then start unconditionally */ -- JOB_TRY_RESTART, /* if running stop and then start */ -+ JOB_RESTART, /* If running, stop. Then start unconditionally. */ -+ -+ _JOB_TYPE_MAX_MERGING, -+ -+ /* JOB_NOP can enter into a transaction, but as it won't pull in -+ * any dependencies, it won't have to merge with anything. -+ * job_install() avoids the problem of merging JOB_NOP too (it's -+ * special-cased, only merges with other JOB_NOPs). */ -+ JOB_NOP = _JOB_TYPE_MAX_MERGING, /* do nothing */ -+ -+ _JOB_TYPE_MAX_IN_TRANSACTION, -+ -+ /* JOB_TRY_RESTART can never appear in a transaction, because -+ * it always collapses into JOB_RESTART or JOB_NOP before entering. -+ * Thus we never need to merge it with anything. */ -+ JOB_TRY_RESTART = _JOB_TYPE_MAX_IN_TRANSACTION, /* if running, stop and then start */ -+ -+ /* JOB_RELOAD_OR_START won't enter into a transaction and cannot result -+ * from transaction merging (there's no way for JOB_RELOAD and -+ * JOB_START to meet in one transaction). It can result from a merge -+ * during job installation, but then it will immediately collapse into -+ * one of the two simpler types. */ -+ JOB_RELOAD_OR_START, /* if running, reload, otherwise start */ - - _JOB_TYPE_MAX, - _JOB_TYPE_INVALID = -1 -@@ -150,7 +170,7 @@ Job* job_new(Unit *unit, JobType type); - Job* job_new_raw(Unit *unit); - void job_free(Job *job); - Job* job_install(Job *j); --void job_install_deserialized(Job *j); -+int job_install_deserialized(Job *j); - void job_uninstall(Job *j); - void job_dump(Job *j, FILE*f, const char *prefix); - int job_serialize(Job *j, FILE *f, FDSet *fds); -@@ -164,14 +184,6 @@ int job_merge(Job *j, Job *other); - - JobType job_type_lookup_merge(JobType a, JobType b); - --static inline int job_type_merge(JobType *a, JobType b) { -- JobType t = job_type_lookup_merge(*a, b); -- if (t < 0) -- return -EEXIST; -- *a = t; -- return 0; --} -- - static inline bool job_type_is_mergeable(JobType a, JobType b) { - return job_type_lookup_merge(a, b) >= 0; - } -@@ -187,6 +199,12 @@ static inline bool job_type_is_superset(JobType a, JobType b) { - - bool job_type_is_redundant(JobType a, UnitActiveState b); - -+/* Collapses a state-dependent job type into a simpler type by observing -+ * the state of the unit which it is going to be applied to. */ -+void job_type_collapse(JobType *t, Unit *u); -+ -+int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u); -+ - bool job_is_runnable(Job *j); - - void job_add_to_run_queue(Job *j); -diff --git a/src/manager.c b/src/manager.c -index 7bff456..0f87e9f 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -650,6 +650,8 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove - - log_debug("Trying to enqueue job %s/%s/%s", unit->id, job_type_to_string(type), job_mode_to_string(mode)); - -+ job_type_collapse(&type, unit); -+ - tr = transaction_new(); - if (!tr) - return -ENOMEM; -diff --git a/src/test-job-type.c b/src/test-job-type.c -index 9de21e1..c7a9b5a 100644 ---- a/src/test-job-type.c -+++ b/src/test-job-type.c -@@ -25,59 +25,80 @@ - #include - - #include "job.h" -+#include "unit.h" -+#include "service.h" - - int main(int argc, char*argv[]) { -- JobType a, b, c, d, e, f, g; -+ JobType a, b, c, ab, bc, ab_c, bc_a, a_bc; -+ const ServiceState test_states[] = { SERVICE_DEAD, SERVICE_RUNNING }; -+ unsigned i; -+ bool merged_ab; - -- for (a = 0; a < _JOB_TYPE_MAX; a++) -- for (b = 0; b < _JOB_TYPE_MAX; b++) { -+ /* fake a unit */ -+ static Service s = { -+ .meta.load_state = UNIT_LOADED, -+ .type = UNIT_SERVICE -+ }; -+ Unit *u = UNIT(&s); - -- if (!job_type_is_mergeable(a, b)) -- printf("Not mergeable: %s + %s\n", job_type_to_string(a), job_type_to_string(b)); -+ for (i = 0; i < ELEMENTSOF(test_states); i++) { -+ s.state = test_states[i]; -+ printf("\nWith collapsing for service state %s\n" -+ "=========================================\n", service_state_to_string(s.state)); -+ for (a = 0; a < _JOB_TYPE_MAX_MERGING; a++) { -+ for (b = 0; b < _JOB_TYPE_MAX_MERGING; b++) { - -- for (c = 0; c < _JOB_TYPE_MAX; c++) { -+ ab = a; -+ merged_ab = (job_type_merge_and_collapse(&ab, b, u) >= 0); - -- /* Verify transitivity of mergeability -- * of job types */ -- assert(!job_type_is_mergeable(a, b) || -- !job_type_is_mergeable(b, c) || -- job_type_is_mergeable(a, c)); -+ if (!job_type_is_mergeable(a, b)) { -+ assert(!merged_ab); -+ printf("Not mergeable: %s + %s\n", job_type_to_string(a), job_type_to_string(b)); -+ continue; -+ } -+ -+ assert(merged_ab); -+ printf("%s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(ab)); - -- d = a; -- if (job_type_merge(&d, b) >= 0) { -+ for (c = 0; c < _JOB_TYPE_MAX_MERGING; c++) { - -- printf("%s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(d)); -+ /* Verify transitivity of mergeability of job types */ -+ assert(!job_type_is_mergeable(a, b) || -+ !job_type_is_mergeable(b, c) || -+ job_type_is_mergeable(a, c)); - -- /* Verify that merged entries can be -- * merged with the same entries they -- * can be merged with separately */ -- assert(!job_type_is_mergeable(a, c) || job_type_is_mergeable(d, c)); -- assert(!job_type_is_mergeable(b, c) || job_type_is_mergeable(d, c)); -+ /* Verify that merged entries can be merged with the same entries -+ * they can be merged with separately */ -+ assert(!job_type_is_mergeable(a, c) || job_type_is_mergeable(ab, c)); -+ assert(!job_type_is_mergeable(b, c) || job_type_is_mergeable(ab, c)); - -- /* Verify that if a merged -- * with b is not mergeable with -- * c then either a or b is not -- * mergeable with c either. */ -- assert(job_type_is_mergeable(d, c) || !job_type_is_mergeable(a, c) || !job_type_is_mergeable(b, c)); -+ /* Verify that if a merged with b is not mergeable with c, then -+ * either a or b is not mergeable with c either. */ -+ assert(job_type_is_mergeable(ab, c) || !job_type_is_mergeable(a, c) || !job_type_is_mergeable(b, c)); - -- e = b; -- if (job_type_merge(&e, c) >= 0) { -+ bc = b; -+ if (job_type_merge_and_collapse(&bc, c, u) >= 0) { - - /* Verify associativity */ - -- f = d; -- assert(job_type_merge(&f, c) == 0); -+ ab_c = ab; -+ assert(job_type_merge_and_collapse(&ab_c, c, u) == 0); -+ -+ bc_a = bc; -+ assert(job_type_merge_and_collapse(&bc_a, a, u) == 0); - -- g = e; -- assert(job_type_merge(&g, a) == 0); -+ a_bc = a; -+ assert(job_type_merge_and_collapse(&a_bc, bc, u) == 0); - -- assert(f == g); -+ assert(ab_c == bc_a); -+ assert(ab_c == a_bc); - -- printf("%s + %s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(c), job_type_to_string(d)); -+ printf("%s + %s + %s = %s\n", job_type_to_string(a), job_type_to_string(b), job_type_to_string(c), job_type_to_string(ab_c)); - } - } - } - } -+ } - - - return 0; -diff --git a/src/transaction.c b/src/transaction.c -index f687539..ceac5a6 100644 ---- a/src/transaction.c -+++ b/src/transaction.c -@@ -212,7 +212,7 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { - - t = j->type; - LIST_FOREACH(transaction, k, j->transaction_next) { -- if (job_type_merge(&t, k->type) >= 0) -+ if (job_type_merge_and_collapse(&t, k->type, j->unit) >= 0) - continue; - - /* OK, we could not merge all jobs for this -@@ -238,9 +238,9 @@ static int transaction_merge_jobs(Transaction *tr, DBusError *e) { - JobType t = j->type; - Job *k; - -- /* Merge all transactions */ -+ /* Merge all transaction jobs for j->unit */ - LIST_FOREACH(transaction, k, j->transaction_next) -- assert_se(job_type_merge(&t, k->type) == 0); -+ assert_se(job_type_merge_and_collapse(&t, k->type, j->unit) == 0); - - while ((k = j->transaction_next)) { - if (tr->anchor_job == k) { -@@ -774,6 +774,7 @@ int transaction_add_job_and_dependencies( - - assert(tr); - assert(type < _JOB_TYPE_MAX); -+ assert(type < _JOB_TYPE_MAX_IN_TRANSACTION); - assert(unit); - - /* log_debug("Pulling in %s/%s from %s/%s", */ -@@ -824,7 +825,8 @@ int transaction_add_job_and_dependencies( - assert(!tr->anchor_job); - tr->anchor_job = ret; - } -- if (is_new && !ignore_requirements) { -+ -+ if (is_new && !ignore_requirements && type != JOB_NOP) { - Set *following; - - /* If we are following some other unit, make sure we -@@ -844,7 +846,7 @@ int transaction_add_job_and_dependencies( - } - - /* Finally, recursively add in all dependencies. */ -- if (type == JOB_START || type == JOB_RELOAD_OR_START || type == JOB_RESTART) { -+ if (type == JOB_START || type == JOB_RESTART) { - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRES], i) { - r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, true, override, false, false, ignore_order, e); - if (r < 0) { -@@ -934,7 +936,7 @@ int transaction_add_job_and_dependencies( - - } - -- if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) { -+ if (type == JOB_STOP || type == JOB_RESTART) { - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_REQUIRED_BY], i) { - r = transaction_add_job_and_dependencies(tr, type, dep, ret, true, override, false, false, ignore_order, e); -@@ -959,7 +961,7 @@ int transaction_add_job_and_dependencies( - } - } - -- if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START) { -+ if (type == JOB_RELOAD) { - - SET_FOREACH(dep, ret->unit->dependencies[UNIT_PROPAGATE_RELOAD_TO], i) { - r = transaction_add_job_and_dependencies(tr, JOB_RELOAD, dep, ret, false, override, false, false, ignore_order, e); -@@ -972,7 +974,7 @@ int transaction_add_job_and_dependencies( - } - } - -- /* JOB_VERIFY_STARTED, JOB_RELOAD require no dependency handling */ -+ /* JOB_VERIFY_STARTED require no dependency handling */ - } - - return 0; -diff --git a/src/unit.c b/src/unit.c -index ff8331c..3625ed2 100644 ---- a/src/unit.c -+++ b/src/unit.c -@@ -249,6 +249,9 @@ bool unit_check_gc(Unit *u) { - if (u->job) - return true; - -+ if (u->nop_job) -+ return true; -+ - if (unit_active_state(u) != UNIT_INACTIVE) - return true; - -@@ -358,6 +361,12 @@ void unit_free(Unit *u) { - job_free(j); - } - -+ if (u->nop_job) { -+ Job *j = u->nop_job; -+ job_uninstall(j); -+ job_free(j); -+ } -+ - for (d = 0; d < _UNIT_DEPENDENCY_MAX; d++) - bidi_set_free(u, u->dependencies[d]); - -@@ -501,6 +510,9 @@ int unit_merge(Unit *u, Unit *other) { - if (other->job) - return -EEXIST; - -+ if (other->nop_job) -+ return -EEXIST; -+ - if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) - return -EEXIST; - -@@ -729,6 +741,9 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { - if (u->job) - job_dump(u->job, f, prefix2); - -+ if (u->nop_job) -+ job_dump(u->nop_job, f, prefix2); -+ - free(p2); - } - -@@ -1507,6 +1522,7 @@ bool unit_job_is_applicable(Unit *u, JobType j) { - case JOB_VERIFY_ACTIVE: - case JOB_START: - case JOB_STOP: -+ case JOB_NOP: - return true; - - case JOB_RESTART: -@@ -2293,6 +2309,11 @@ int unit_serialize(Unit *u, FILE *f, FDSet *fds) { - job_serialize(u->job, f, fds); - } - -+ if (u->nop_job) { -+ fprintf(f, "job\n"); -+ job_serialize(u->nop_job, f, fds); -+ } -+ - dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); - dual_timestamp_serialize(f, "active-enter-timestamp", &u->active_enter_timestamp); - dual_timestamp_serialize(f, "active-exit-timestamp", &u->active_exit_timestamp); -@@ -2382,12 +2403,18 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - return r; - } - -- job_install_deserialized(j); - r = hashmap_put(u->manager->jobs, UINT32_TO_PTR(j->id), j); - if (r < 0) { - job_free(j); - return r; - } -+ -+ r = job_install_deserialized(j); -+ if (r < 0) { -+ hashmap_remove(u->manager->jobs, UINT32_TO_PTR(j->id)); -+ job_free(j); -+ return r; -+ } - } else { - /* legacy */ - JobType type = job_type_from_string(v); -diff --git a/src/unit.h b/src/unit.h -index 5fceabb..62b82bc 100644 ---- a/src/unit.h -+++ b/src/unit.h -@@ -158,10 +158,12 @@ struct Unit { - char *fragment_path; /* if loaded from a config file this is the primary path to it */ - usec_t fragment_mtime; - -- /* If there is something to do with this unit, then this is -- * the job for it */ -+ /* If there is something to do with this unit, then this is the installed job for it */ - Job *job; - -+ /* JOB_NOP jobs are special and can be installed without disturbing the real job. */ -+ Job *nop_job; -+ - usec_t job_timeout; - - /* References to this */ --- -1.7.7 - - -From ad1ece751b204c21424b6bf1de265fec406ba2e4 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Sat, 12 May 2012 21:06:27 +0200 -Subject: [PATCH 30/30] job: only jobs on the runqueue can be run - ---- - src/job.c | 7 +++---- - 1 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/src/job.c b/src/job.c -index 2438f39..d6e7cb1 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -470,11 +470,10 @@ int job_run_and_invalidate(Job *j) { - assert(j); - assert(j->installed); - assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); -+ assert(j->in_run_queue); - -- if (j->in_run_queue) { -- LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); -- j->in_run_queue = false; -- } -+ LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); -+ j->in_run_queue = false; - - if (j->state != JOB_WAITING) - return 0; --- -1.7.7 - diff --git a/journal-bugfixes.patch b/journal-bugfixes.patch deleted file mode 100644 index 428d165b..00000000 --- a/journal-bugfixes.patch +++ /dev/null @@ -1,186 +0,0 @@ -From 911efc97f9bfe2ad4f4d021f5e76d05c8d5d81ac Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 12 Apr 2012 12:57:41 +0200 -Subject: [PATCH 1/4] journald: add missing flag to open() - ---- - src/journal/journald.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/journal/journald.c b/src/journal/journald.c -index baad3ab..c8b400a 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -2461,7 +2461,7 @@ static int open_proc_kmsg(Server *s) { - return 0; - - -- s->proc_kmsg_fd = open("/proc/kmsg", O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ s->proc_kmsg_fd = open("/proc/kmsg", O_RDONLY|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); - if (s->proc_kmsg_fd < 0) { - log_warning("Failed to open /proc/kmsg, ignoring: %m"); - return 0; --- -1.7.7 - - -From 94b8299358fd743137857bc0f28ab62bcf6eec92 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 13 Apr 2012 13:58:50 +0200 -Subject: [PATCH 2/4] fix a couple of things found with the llvm static - analyzer - ---- - src/journal/journal-file.c | 2 +- - src/journal/journald.c | 2 +- - src/logs-show.c | 2 +- - src/manager.c | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 474dd5c..5255c3b 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -1974,7 +1974,7 @@ int journal_directory_vacuum(const char *directory, uint64_t max_use, uint64_t m - size_t q; - struct stat st; - char *p; -- unsigned long long seqnum, realtime; -+ unsigned long long seqnum = 0, realtime; - sd_id128_t seqnum_id; - bool have_seqnum; - -diff --git a/src/journal/journald.c b/src/journal/journald.c -index c8b400a..1118b7e 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -1140,7 +1140,7 @@ static void process_native_message( - char *identifier = NULL, *message = NULL; - - assert(s); -- assert(buffer || n == 0); -+ assert(buffer || buffer_size == 0); - - p = buffer; - remaining = buffer_size; -diff --git a/src/logs-show.c b/src/logs-show.c -index f71c6b0..eb9a902 100644 ---- a/src/logs-show.c -+++ b/src/logs-show.c -@@ -541,7 +541,7 @@ int show_journal_by_unit( - bool follow) { - - char *m = NULL; -- sd_journal *j; -+ sd_journal *j = NULL; - int r; - int fd; - unsigned line = 0; -diff --git a/src/manager.c b/src/manager.c -index 74bd740..3e592b6 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -2979,7 +2979,7 @@ bool manager_unit_pending_inactive(Manager *m, const char *name) { - - void manager_check_finished(Manager *m) { - char userspace[FORMAT_TIMESPAN_MAX], initrd[FORMAT_TIMESPAN_MAX], kernel[FORMAT_TIMESPAN_MAX], sum[FORMAT_TIMESPAN_MAX]; -- usec_t kernel_usec = 0, initrd_usec = 0, userspace_usec = 0, total_usec = 0; -+ usec_t kernel_usec, initrd_usec, userspace_usec, total_usec; - - assert(m); - --- -1.7.7 - - -From f83fa045b967478a80ca55477dfe6a5be5f0b4a8 Mon Sep 17 00:00:00 2001 -From: Sjoerd Simons -Date: Sat, 14 Apr 2012 14:11:08 +0200 -Subject: [PATCH 3/4] journal: crash when filesystem is low on space - -When space is getting too low on a file system rotating the journal file -will fail after the rotation, as opening the new logfile will fail. - -Recognize this when logging the error and don't try to dereference a -NULL JournalFile pointer. ---- - src/journal/journald.c | 16 +++++++++++++--- - 1 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/src/journal/journald.c b/src/journal/journald.c -index 1118b7e..9180656 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -330,7 +330,10 @@ static void server_rotate(Server *s) { - if (s->runtime_journal) { - r = journal_file_rotate(&s->runtime_journal); - if (r < 0) -- log_error("Failed to rotate %s: %s", s->runtime_journal->path, strerror(-r)); -+ if (s->runtime_journal) -+ log_error("Failed to rotate %s: %s", s->runtime_journal->path, strerror(-r)); -+ else -+ log_error("Failed to create new runtime journal: %s", strerror(-r)); - else - server_fix_perms(s, s->runtime_journal, 0); - } -@@ -338,7 +341,11 @@ static void server_rotate(Server *s) { - if (s->system_journal) { - r = journal_file_rotate(&s->system_journal); - if (r < 0) -- log_error("Failed to rotate %s: %s", s->system_journal->path, strerror(-r)); -+ if (s->system_journal) -+ log_error("Failed to rotate %s: %s", s->system_journal->path, strerror(-r)); -+ else -+ log_error("Failed to create new system journal: %s", strerror(-r)); -+ - else - server_fix_perms(s, s->system_journal, 0); - } -@@ -346,7 +353,10 @@ static void server_rotate(Server *s) { - HASHMAP_FOREACH_KEY(f, k, s->user_journals, i) { - r = journal_file_rotate(&f); - if (r < 0) -- log_error("Failed to rotate %s: %s", f->path, strerror(-r)); -+ if (f->path) -+ log_error("Failed to rotate %s: %s", f->path, strerror(-r)); -+ else -+ log_error("Failed to create user journal: %s", strerror(-r)); - else { - hashmap_replace(s->user_journals, k, f); - server_fix_perms(s, s->system_journal, PTR_TO_UINT32(k)); --- -1.7.7 - - -From d80e2f5c26aae25c0773042bcd1599d3c583bf6a Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 12 Jun 2012 16:45:09 +0200 -Subject: [PATCH 4/4] journal-file: fix mmap leak - -https://bugzilla.redhat.com/show_bug.cgi?id=831132 ---- - src/journal/journal-file.c | 7 +++++-- - 1 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 5255c3b..e242fa2 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -67,9 +67,12 @@ void journal_file_close(JournalFile *f) { - - assert(f); - -- if (f->header && f->writable) -- f->header->state = STATE_OFFLINE; -+ if (f->header) { -+ if (f->writable) -+ f->header->state = STATE_OFFLINE; - -+ munmap(f->header, PAGE_ALIGN(sizeof(Header))); -+ } - - for (t = 0; t < _WINDOW_MAX; t++) - if (f->windows[t].ptr) --- -1.7.7 - diff --git a/journalctl-pager-improvement.patch b/journalctl-pager-improvement.patch deleted file mode 100644 index 81be11e4..00000000 --- a/journalctl-pager-improvement.patch +++ /dev/null @@ -1,448 +0,0 @@ -From 1682c4bf5b993b956b0367aedc9f0638055540f4 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Thu, 19 Jul 2012 21:12:16 +0000 -Subject: [PATCH 1/3] journalctl: fix assertion failure in ellipsize_mem() - -When showing the journal through "journalctl --no-pager", if the -prefix of the log message (i.e. the date and syslog identifier) is -less than 3 characters shorter than the width of the terminal, you -get: - -Assertion 'new_length >= 3' failed at src/shared/util.c:3859, function ellipsize_mem(). Aborting. - -because there is not enough space for the "...". This patch add the -necessary check. ---- - src/logs-show.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/logs-show.c b/src/logs-show.c -index eb9a902..72367f2 100644 ---- a/src/logs-show.c -+++ b/src/logs-show.c -@@ -230,7 +230,7 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool s - printf(": [%s blob data]\n", format_bytes(bytes, sizeof(bytes), message_len)); - } else if (message_len + n < n_columns) - printf(": %.*s\n", (int) message_len, message); -- else if (n < n_columns) { -+ else if (n < n_columns && n_columns - n - 2 >= 3) { - char *e; - - e = ellipsize_mem(message, message_len, n_columns - n - 2, 90); --- -1.7.10.4 - - -From ee385756e10862a8bcc0e5c7a3776135af84c750 Mon Sep 17 00:00:00 2001 -From: Zbigniew Jedrzejewski-Szmek -Date: Fri, 20 Jul 2012 09:06:26 +0200 -Subject: [PATCH 2/3] journalctl: fix ellipsization with PAGER=cat - -There are other reasons for not opening the pager then the --no-pager -or --follow options (described below). If the pager is not used, -messages must be ellipsized. - -On Fri, Jul 20, 2012 at 05:42:44AM +0000, Shawn Landen wrote: -> "Pager to use when --no-pager is not given; overrides $PAGER. -> Setting this to an empty string or the value cat is equivalent to passing --no-pager." - -Conflicts: - src/journal/journalctl.c ---- - src/journal/journalctl.c | 5 +---- - src/pager.c | 17 ++++++++++------- - src/pager.h | 4 +++- - 3 files changed, 14 insertions(+), 12 deletions(-) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index f90b2dd..3a3b043 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -259,10 +259,7 @@ int main(int argc, char *argv[]) { - goto finish; - } - -- if (!arg_no_pager && !arg_follow) { -- columns(); -- pager_open(); -- } -+ have_pager = !arg_no_pager && !arg_follow && pager_open(); - - if (arg_output == OUTPUT_JSON) { - fputc('[', stdout); -diff --git a/src/pager.c b/src/pager.c -index 3fc8182..8065841 100644 ---- a/src/pager.c -+++ b/src/pager.c -@@ -44,20 +44,20 @@ _noreturn_ static void pager_fallback(void) { - _exit(EXIT_SUCCESS); - } - --void pager_open(void) { -+bool pager_open(void) { - int fd[2]; - const char *pager; - pid_t parent_pid; - - if (pager_pid > 0) -- return; -+ return false; - - if ((pager = getenv("SYSTEMD_PAGER")) || (pager = getenv("PAGER"))) - if (!*pager || streq(pager, "cat")) -- return; -+ return false; - - if (isatty(STDOUT_FILENO) <= 0) -- return; -+ return false; - - /* Determine and cache number of columns before we spawn the - * pager so that we get the value from the actual tty */ -@@ -65,7 +65,7 @@ void pager_open(void) { - - if (pipe(fd) < 0) { - log_error("Failed to create pager pipe: %m"); -- return; -+ return false; - } - - parent_pid = getpid(); -@@ -74,7 +74,7 @@ void pager_open(void) { - if (pager_pid < 0) { - log_error("Failed to fork pager: %m"); - close_pipe(fd); -- return; -+ return false; - } - - /* In the child start the pager */ -@@ -115,10 +115,13 @@ void pager_open(void) { - } - - /* Return in the parent */ -- if (dup2(fd[1], STDOUT_FILENO) < 0) -+ if (dup2(fd[1], STDOUT_FILENO) < 0) { - log_error("Failed to duplicate pager pipe: %m"); -+ return false; -+ } - - close_pipe(fd); -+ return true; - } - - void pager_close(void) { -diff --git a/src/pager.h b/src/pager.h -index b5b4998..bd1a983 100644 ---- a/src/pager.h -+++ b/src/pager.h -@@ -22,7 +22,9 @@ - along with systemd; If not, see . - ***/ - --void pager_open(void); -+#include -+ -+bool pager_open(void); - void pager_close(void); - - #endif --- -1.7.10.4 - - -From ae88e07aec6280e90582703f7950468604182a4b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 17 Jul 2012 07:35:08 +0200 -Subject: [PATCH 3/3] journalctl: do not ellipsize when using pager -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If a pager is used, ellipsization is redundant — the pager does -that better by hiding the part that cannot be shown. Pager's advantage -is that the user can press → to view the hidden part of a message, -and then ← to return. - -cherry-picked from 92a1fd9e95954a557d6fe27b56f5ef1b89fc2f5e and 25277cd7fbd77e4c8b20572570aa77c7da9abcc2 ---- - src/journal/journalctl.c | 7 ++++- - src/logs-show.c | 66 ++++++++++++++++++++++++++++------------------ - src/logs-show.h | 14 +++++++--- - src/systemctl.c | 8 +++++- - 4 files changed, 64 insertions(+), 31 deletions(-) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index 3a3b043..197af71 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -198,6 +198,7 @@ int main(int argc, char *argv[]) { - sd_journal *j = NULL; - unsigned line = 0; - bool need_seek = false; -+ bool have_pager; - - log_parse_environment(); - log_open(); -@@ -268,6 +269,10 @@ int main(int argc, char *argv[]) { - - for (;;) { - for (;;) { -+ int flags = -+ arg_show_all * OUTPUT_SHOW_ALL | -+ have_pager * OUTPUT_FULL_WIDTH; -+ - if (need_seek) { - r = sd_journal_next(j); - if (r < 0) { -@@ -281,7 +286,7 @@ int main(int argc, char *argv[]) { - - line ++; - -- r = output_journal(j, arg_output, line, 0, arg_show_all); -+ r = output_journal(j, arg_output, line, 0, flags); - if (r < 0) - goto finish; - -diff --git a/src/logs-show.c b/src/logs-show.c -index 72367f2..06ba569 100644 ---- a/src/logs-show.c -+++ b/src/logs-show.c -@@ -86,7 +86,8 @@ static bool shall_print(bool show_all, char *p, size_t l) { - return true; - } - --static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool show_all, bool monotonic_mode) { -+static int output_short(sd_journal *j, unsigned line, unsigned n_columns, -+ OutputFlags flags) { - int r; - const void *data; - size_t length; -@@ -150,7 +151,7 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool s - goto finish; - } - -- if (monotonic_mode) { -+ if (flags & OUTPUT_MONOTONIC_MODE) { - uint64_t t; - sd_id128_t boot_id; - -@@ -202,33 +203,39 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, bool s - n += strlen(buf); - } - -- if (hostname && shall_print(show_all, hostname, hostname_len)) { -+ if (hostname && shall_print(flags & OUTPUT_SHOW_ALL, -+ hostname, hostname_len)) { - printf(" %.*s", (int) hostname_len, hostname); - n += hostname_len + 1; - } - -- if (identifier && shall_print(show_all, identifier, identifier_len)) { -+ if (identifier && shall_print(flags & OUTPUT_SHOW_ALL, -+ identifier, identifier_len)) { - printf(" %.*s", (int) identifier_len, identifier); - n += identifier_len + 1; -- } else if (comm && shall_print(show_all, comm, comm_len)) { -+ } else if (comm && shall_print(flags & OUTPUT_SHOW_ALL, -+ comm, comm_len)) { - printf(" %.*s", (int) comm_len, comm); - n += comm_len + 1; -- } -+ } else -+ putchar(' '); - -- if (pid && shall_print(show_all, pid, pid_len)) { -+ if (pid && shall_print(flags & OUTPUT_SHOW_ALL, pid, pid_len)) { - printf("[%.*s]", (int) pid_len, pid); - n += pid_len + 2; -- } else if (fake_pid && shall_print(show_all, fake_pid, fake_pid_len)) { -+ } else if (fake_pid && shall_print(flags & OUTPUT_SHOW_ALL, -+ fake_pid, fake_pid_len)) { - printf("[%.*s]", (int) fake_pid_len, fake_pid); - n += fake_pid_len + 2; - } - -- if (show_all) -+ if (flags & OUTPUT_SHOW_ALL) - printf(": %.*s\n", (int) message_len, message); - else if (contains_unprintable(message, message_len)) { - char bytes[FORMAT_BYTES_MAX]; - printf(": [%s blob data]\n", format_bytes(bytes, sizeof(bytes), message_len)); -- } else if (message_len + n < n_columns) -+ } else if ((flags & OUTPUT_FULL_WIDTH) || -+ (message_len + n + 1 < n_columns)) - printf(": %.*s\n", (int) message_len, message); - else if (n < n_columns && n_columns - n - 2 >= 3) { - char *e; -@@ -259,15 +266,18 @@ finish: - return r; - } - --static int output_short_realtime(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { -- return output_short(j, line, n_columns, show_all, false); -+static int output_short_realtime(sd_journal *j, unsigned line, -+ unsigned n_columns, OutputFlags flags) { -+ return output_short(j, line, n_columns, flags & ~OUTPUT_MONOTONIC_MODE); - } - --static int output_short_monotonic(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { -- return output_short(j, line, n_columns, show_all, true); -+static int output_short_monotonic(sd_journal *j, unsigned line, -+ unsigned n_columns, OutputFlags flags) { -+ return output_short(j, line, n_columns, flags | OUTPUT_MONOTONIC_MODE); - } - --static int output_verbose(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { -+static int output_verbose(sd_journal *j, unsigned line, -+ unsigned n_columns, OutputFlags flags) { - const void *data; - size_t length; - char *cursor; -@@ -296,7 +306,7 @@ static int output_verbose(sd_journal *j, unsigned line, unsigned n_columns, bool - free(cursor); - - SD_JOURNAL_FOREACH_DATA(j, data, length) { -- if (!show_all && (length > PRINT_THRESHOLD || -+ if (!(flags & OUTPUT_SHOW_ALL) && (length > PRINT_THRESHOLD || - contains_unprintable(data, length))) { - const char *c; - char bytes[FORMAT_BYTES_MAX]; -@@ -318,7 +328,8 @@ static int output_verbose(sd_journal *j, unsigned line, unsigned n_columns, bool - return 0; - } - --static int output_export(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { -+static int output_export(sd_journal *j, unsigned line, -+ unsigned n_columns, OutputFlags flags) { - sd_id128_t boot_id; - char sid[33]; - int r; -@@ -424,7 +435,8 @@ static void json_escape(const char* p, size_t l) { - } - } - --static int output_json(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { -+static int output_json(sd_journal *j, unsigned line, -+ unsigned n_columns, OutputFlags flags) { - uint64_t realtime, monotonic; - char *cursor; - const void *data; -@@ -491,7 +503,8 @@ static int output_json(sd_journal *j, unsigned line, unsigned n_columns, bool sh - return 0; - } - --static int output_cat(sd_journal *j, unsigned line, unsigned n_columns, bool show_all) { -+static int output_cat(sd_journal *j, unsigned line, -+ unsigned n_columns, OutputFlags flags) { - const void *data; - size_t l; - int r; -@@ -512,7 +525,8 @@ static int output_cat(sd_journal *j, unsigned line, unsigned n_columns, bool sho - return 0; - } - --static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, unsigned n_columns, bool show_all) = { -+static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, -+ unsigned n_columns, OutputFlags flags) = { - [OUTPUT_SHORT] = output_short_realtime, - [OUTPUT_SHORT_MONOTONIC] = output_short_monotonic, - [OUTPUT_VERBOSE] = output_verbose, -@@ -521,14 +535,15 @@ static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, unsign - [OUTPUT_CAT] = output_cat - }; - --int output_journal(sd_journal *j, OutputMode mode, unsigned line, unsigned n_columns, bool show_all) { -+int output_journal(sd_journal *j, OutputMode mode, unsigned line, -+ unsigned n_columns, OutputFlags flags) { - assert(mode >= 0); - assert(mode < _OUTPUT_MODE_MAX); - - if (n_columns <= 0) - n_columns = columns(); - -- return output_funcs[mode](j, line, n_columns, show_all); -+ return output_funcs[mode](j, line, n_columns, flags); - } - - int show_journal_by_unit( -@@ -537,8 +552,7 @@ int show_journal_by_unit( - unsigned n_columns, - usec_t not_before, - unsigned how_many, -- bool show_all, -- bool follow) { -+ OutputFlags flags) { - - char *m = NULL; - sd_journal *j = NULL; -@@ -621,12 +635,12 @@ int show_journal_by_unit( - - line ++; - -- r = output_journal(j, mode, line, n_columns, show_all); -+ r = output_journal(j, mode, line, n_columns, flags); - if (r < 0) - goto finish; - } - -- if (!follow) -+ if (!(flags & OUTPUT_FOLLOW)) - break; - - r = fd_wait_for_event(fd, POLLIN, (usec_t) -1); -diff --git a/src/logs-show.h b/src/logs-show.h -index db9c7e3..e8c6b03 100644 ---- a/src/logs-show.h -+++ b/src/logs-show.h -@@ -39,7 +39,16 @@ typedef enum OutputMode { - _OUTPUT_MODE_INVALID = -1 - } OutputMode; - --int output_journal(sd_journal *j, OutputMode mode, unsigned line, unsigned n_columns, bool show_all); -+typedef enum OutputFlags { -+ OUTPUT_SHOW_ALL = 1 << 0, -+ OUTPUT_MONOTONIC_MODE = 1 << 1, -+ OUTPUT_FOLLOW = 1 << 2, -+ OUTPUT_WARN_CUTOFF = 1 << 3, -+ OUTPUT_FULL_WIDTH = 1 << 4, -+} OutputFlags; -+ -+int output_journal(sd_journal *j, OutputMode mode, unsigned line, -+ unsigned n_columns, OutputFlags flags); - - int show_journal_by_unit( - const char *unit, -@@ -47,8 +56,7 @@ int show_journal_by_unit( - unsigned n_columns, - usec_t not_before, - unsigned how_many, -- bool show_all, -- bool follow); -+ OutputFlags flags); - - const char* output_mode_to_string(OutputMode m); - OutputMode output_mode_from_string(const char *s); -diff --git a/src/systemctl.c b/src/systemctl.c -index f51085f..e94e024 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -2374,8 +2374,14 @@ static void print_status_info(UnitStatusInfo *i) { - } - - if (i->id && arg_transport != TRANSPORT_SSH) { -+ int flags = -+ arg_lines * OUTPUT_SHOW_ALL | -+ arg_follow * OUTPUT_FOLLOW; -+ - printf("\n"); -- show_journal_by_unit(i->id, arg_output, 0, i->inactive_exit_timestamp_monotonic, arg_lines, arg_all, arg_follow); -+ show_journal_by_unit(i->id, arg_output, 0, -+ i->inactive_exit_timestamp_monotonic, -+ arg_lines, flags); - } - - if (i->need_daemon_reload) --- -1.7.10.4 - diff --git a/logind-logout.patch b/logind-logout.patch deleted file mode 100644 index 5949223a..00000000 --- a/logind-logout.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 75c8e3cffd7da8eede614cf61384957af2c82a29 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 Mar 2012 02:06:40 +0100 -Subject: [PATCH] logind: close FIFO before ending sessions cleanly - -For clean session endings ask logind explicitly to get rid of the FIFO -before closing it so that the FIFO logic doesn't result in su/sudo to be -terminated immediately. ---- - src/login/logind-dbus.c | 30 ++++++++++++++++++++ - src/login/pam-module.c | 71 +++++++++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 98 insertions(+), 3 deletions(-) - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index d8f4d89..ea6b89f 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -80,6 +80,9 @@ - " \n" \ - " \n" \ - " \n" \ -+ " \n" \ -+ " \n" \ -+ " \n" \ - " \n" \ - " \n" \ - " \n" \ -@@ -1075,6 +1078,33 @@ static DBusHandlerResult manager_message_handler( - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); - -+ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ReleaseSession")) { -+ const char *name; -+ Session *session; -+ -+ if (!dbus_message_get_args( -+ message, -+ &error, -+ DBUS_TYPE_STRING, &name, -+ DBUS_TYPE_INVALID)) -+ return bus_send_error_reply(connection, message, &error, -EINVAL); -+ -+ session = hashmap_get(m->sessions, name); -+ if (!session) -+ return bus_send_error_reply(connection, message, &error, -ENOENT); -+ -+ /* We use the FIFO to detect stray sessions where the -+ process invoking PAM dies abnormally. We need to make -+ sure that that process is not killed if at the clean -+ end of the session it closes the FIFO. Hence, with -+ this call explicitly turn off the FIFO logic, so that -+ the PAM code can finish clean up on its own */ -+ session_remove_fifo(session); -+ -+ reply = dbus_message_new_method_return(message); -+ if (!reply) -+ goto oom; -+ - } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ActivateSession")) { - const char *name; - Session *session; -diff --git a/src/login/pam-module.c b/src/login/pam-module.c -index 8544413..4106d2b 100644 ---- a/src/login/pam-module.c -+++ b/src/login/pam-module.c -@@ -414,7 +414,6 @@ _public_ PAM_EXTERN int pam_sm_open_session( - "/org/freedesktop/login1", - "org.freedesktop.login1.Manager", - "CreateSession"); -- - if (!m) { - pam_syslog(handle, LOG_ERR, "Could not allocate create session message."); - r = PAM_BUF_ERR; -@@ -620,11 +619,77 @@ _public_ PAM_EXTERN int pam_sm_close_session( - int argc, const char **argv) { - - const void *p = NULL; -+ const char *id; -+ DBusConnection *bus = NULL; -+ DBusMessage *m = NULL, *reply = NULL; -+ DBusError error; -+ int r; - -- pam_get_data(handle, "systemd.session-fd", &p); -+ assert(handle); -+ -+ dbus_error_init(&error); -+ -+ id = pam_getenv(handle, "XDG_SESSION_ID"); -+ if (id) { -+ -+ /* Before we go and close the FIFO we need to tell -+ * logind that this is a clean session shutdown, so -+ * that it doesn't just go and slaughter us -+ * immediately after closing the fd */ -+ -+ bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error); -+ if (!bus) { -+ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error)); -+ r = PAM_SESSION_ERR; -+ goto finish; -+ } -+ -+ m = dbus_message_new_method_call( -+ "org.freedesktop.login1", -+ "/org/freedesktop/login1", -+ "org.freedesktop.login1.Manager", -+ "ReleaseSession"); -+ if (!m) { -+ pam_syslog(handle, LOG_ERR, "Could not allocate release session message."); -+ r = PAM_BUF_ERR; -+ goto finish; -+ } -+ -+ if (!dbus_message_append_args(m, -+ DBUS_TYPE_STRING, &id, -+ DBUS_TYPE_INVALID)) { -+ pam_syslog(handle, LOG_ERR, "Could not attach parameters to message."); -+ r = PAM_BUF_ERR; -+ goto finish; -+ } - -+ reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); -+ if (!reply) { -+ pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error)); -+ r = PAM_SESSION_ERR; -+ goto finish; -+ } -+ } -+ -+ r = PAM_SUCCESS; -+ -+finish: -+ pam_get_data(handle, "systemd.session-fd", &p); - if (p) - close_nointr(PTR_TO_INT(p) - 1); - -- return PAM_SUCCESS; -+ dbus_error_free(&error); -+ -+ if (bus) { -+ dbus_connection_close(bus); -+ dbus_connection_unref(bus); -+ } -+ -+ if (m) -+ dbus_message_unref(m); -+ -+ if (reply) -+ dbus_message_unref(reply); -+ -+ return r; - } --- -1.7.7 - diff --git a/macros.systemd b/macros.systemd index 802380da..68ff8780 100644 --- a/macros.systemd +++ b/macros.systemd @@ -20,14 +20,14 @@ # ### -# This is for /bin/systemctl +# This is for systemctl %systemd_requires \ Requires(pre): systemd \ Requires(post): systemd \ Requires(preun): systemd \ Requires(postun): systemd \ -%_unitdir /lib/systemd/system +%_unitdir /usr/lib/systemd/system %service_add_pre() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ @@ -62,11 +62,11 @@ for service in %{?*} ; do \ touch "/var/lib/systemd/migrated/$sysv_service" || : \ fi \ done \ -/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ elif [ $FIRST_ARG -eq 1 ]; then \ - /bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ + /usr/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} @@ -75,8 +75,8 @@ fi \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ if [ $FIRST_ARG -eq 0 ]; then \ # Package removal, not upgrade \ - /bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - /bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ + /usr/bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + /usr/bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} @@ -85,13 +85,13 @@ fi \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ if [ $FIRST_ARG -ge 1 ]; then \ # Package upgrade, not uninstall \ - /bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ + /usr/bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ else # package uninstall \ for service in %{?*} ; do \ sysv_service=${service%.*} \ rm -f "/var/lib/systemd/migrated/$sysv_service" 2> /dev/null || : \ done \ - /bin/systemctl daemon-reload >/dev/null 2>&1 || : \ + /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ fi \ %{nil} diff --git a/modules_on_boot.patch b/modules_on_boot.patch index f1b6fdb4..8257954e 100644 --- a/modules_on_boot.patch +++ b/modules_on_boot.patch @@ -7,24 +7,25 @@ Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) -Index: systemd-44/src/modules-load.c +Index: systemd-191/src/modules-load/modules-load.c =================================================================== ---- systemd-44.orig/src/modules-load.c -+++ systemd-44/src/modules-load.c -@@ -44,6 +44,9 @@ static void systemd_kmod_log(void *data, - int main(int argc, char *argv[]) { - int r = EXIT_FAILURE; - char **files, **fn; +--- systemd-191.orig/src/modules-load/modules-load.c ++++ systemd-191/src/modules-load/modules-load.c +@@ -173,6 +173,9 @@ int main(int argc, char *argv[]) { + int r = EXIT_FAILURE, k; + char **files = NULL, **fn, **i; + struct kmod_ctx *ctx; +#if defined(TARGET_SUSE) + char *modules_on_boot = NULL; +#endif - struct kmod_ctx *ctx; - const int probe_flags = KMOD_PROBE_APPLY_BLACKLIST|KMOD_PROBE_IGNORE_LOADED; -@@ -141,9 +144,59 @@ int main(int argc, char *argv[]) { + if (argc > 1) { + log_error("This program takes no argument."); +@@ -256,9 +259,34 @@ int main(int argc, char *argv[]) { fclose(f); } +- +#if defined(TARGET_SUSE) + log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT"); + if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, @@ -37,37 +38,12 @@ Index: systemd-44/src/modules-load.c + if (modules_on_boot) { + char **modules = strv_split(modules_on_boot,WHITESPACE); + char **module; -+ struct kmod_list *itr, *modlist = NULL; -+ int err; + + if (modules) { + STRV_FOREACH(module, modules) { -+ err = kmod_module_new_from_lookup(ctx, *module, &modlist); -+ if (err < 0) { -+ log_error("Failed to lookup alias '%s'", *module); ++ k = load_module(ctx, *module); ++ if (k < 0) + r = EXIT_FAILURE; -+ continue; -+ } -+ kmod_list_foreach(itr, modlist) { -+ struct kmod_module *mod = kmod_module_get_module(itr); -+ err = kmod_module_probe_insert_module(mod, probe_flags, -+ NULL, NULL, NULL, NULL); -+ -+ if (err == 0) -+ log_info("Inserted module '%s'", kmod_module_get_name(mod)); -+ else if (err == KMOD_PROBE_APPLY_BLACKLIST) -+ log_info("Module '%s' is blacklisted", kmod_module_get_name(mod)); -+ else { -+ log_error("Failed to insert '%s': %s", kmod_module_get_name(mod), -+ strerror(-err)); -+ r = EXIT_FAILURE; -+ } -+ -+ kmod_module_unref(mod); -+ } - -+ kmod_module_unref_list(modlist); -+ modlist = NULL; + } + } + strv_free(modules); @@ -79,16 +55,16 @@ Index: systemd-44/src/modules-load.c + free(modules_on_boot); +#endif kmod_unref(ctx); + strv_free(arg_proc_cmdline_modules); - return r; -Index: systemd-44/units/systemd-modules-load.service.in +Index: systemd-191/units/systemd-modules-load.service.in =================================================================== ---- systemd-44.orig/units/systemd-modules-load.service.in -+++ systemd-44/units/systemd-modules-load.service.in -@@ -11,6 +11,7 @@ DefaultDependencies=no - Conflicts=shutdown.target +--- systemd-191.orig/units/systemd-modules-load.service.in ++++ systemd-191/units/systemd-modules-load.service.in +@@ -13,6 +13,7 @@ Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service Before=sysinit.target shutdown.target + ConditionCapability=CAP_SYS_MODULE +ConditionPathExists=|/etc/sysconfig/kernel ConditionDirectoryNotEmpty=|/lib/modules-load.d ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d diff --git a/new-lsb-headers.patch b/new-lsb-headers.patch index e0b07870..2c20a481 100644 --- a/new-lsb-headers.patch +++ b/new-lsb-headers.patch @@ -1,8 +1,8 @@ -Index: systemd-44/src/service.c +Index: systemd-189/src/core/service.c =================================================================== ---- systemd-44.orig/src/service.c -+++ systemd-44/src/service.c -@@ -122,6 +122,7 @@ static void service_init(Unit *u) { +--- systemd-189.orig/src/core/service.c ++++ systemd-189/src/core/service.c +@@ -145,6 +145,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; s->sysv_start_priority_from_rcnd = -1; @@ -10,7 +10,7 @@ Index: systemd-44/src/service.c #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -840,6 +841,34 @@ static int service_load_sysv_path(Servic +@@ -877,6 +878,34 @@ static int service_load_sysv_path(Servic free(short_description); short_description = d; @@ -45,7 +45,7 @@ Index: systemd-44/src/service.c } else if (state == LSB_DESCRIPTION) { if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -894,7 +923,8 @@ static int service_load_sysv_path(Servic +@@ -935,7 +964,8 @@ static int service_load_sysv_path(Servic /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -55,7 +55,7 @@ Index: systemd-44/src/service.c s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2036,7 +2066,7 @@ static void service_enter_running(Servic +@@ -2107,7 +2137,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -64,12 +64,12 @@ Index: systemd-44/src/service.c s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); -Index: systemd-44/src/service.h +Index: systemd-189/src/core/service.h =================================================================== ---- systemd-44.orig/src/service.h -+++ systemd-44/src/service.h -@@ -166,6 +166,7 @@ struct Service { - #ifdef HAVE_SYSV_COMPAT +--- systemd-189.orig/src/core/service.h ++++ systemd-189/src/core/service.h +@@ -176,6 +176,7 @@ struct Service { + bool is_sysv:1; bool sysv_has_lsb:1; bool sysv_enabled:1; + bool sysv_remain_after_exit_heuristic:1; diff --git a/pre_checkin.sh b/pre_checkin.sh index 3f06f653..18706301 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -1,6 +1,16 @@ #!/bin/sh -VERSION=`sed -e '/^Version:/!d' -e 's/Version: *//' systemd.spec` -RELEASE=`sed -e '/^Release:/!d' -e 's/Release: *//' systemd.spec` -sed -i -e "s,^\(Version:[ tab]*\).*,\1$VERSION," -e "s,^\(Release:[ tab]*\).*,\1$RELEASE," systemd-gtk.spec -cp systemd.changes systemd-gtk.changes +# This script is based on libcdio_spec-prepare.sh (thanks to sbrabec@suse.cz) +# create a -mini spec for systemd for bootstrapping + +ORIG_SPEC=systemd +EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n" +sed "s/^%define bootstrap.*$/${EDIT_WARNING}%define bootstrap 1/; + s/^%define udevpkgname.*$/${EDIT_WARNING}%define udevpkgname udev-mini/; + s/^\(Name:.*\)$/\1-mini/; + s/^BuildRoot.*/&\n\nProvides: %{real} = %{version}-%{release}\n/ + " < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec +cp ${ORIG_SPEC}.changes ${ORIG_SPEC}-mini.changes +cp ${ORIG_SPEC}-rpmlintrc ${ORIG_SPEC}-mini-rpmlintrc + +osc service localrun format_spec_file diff --git a/storage-after-cryptsetup.patch b/storage-after-cryptsetup.patch index 1716fd6d..3f92ecbf 100644 --- a/storage-after-cryptsetup.patch +++ b/storage-after-cryptsetup.patch @@ -7,10 +7,10 @@ Subject: [PATCH] force lvm restart after cryptsetup target is reached src/cryptsetup-generator.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) -Index: systemd-37/src/cryptsetup/cryptsetup-generator.c +Index: systemd-194/src/cryptsetup/cryptsetup-generator.c =================================================================== ---- systemd-37.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-37/src/cryptsetup/cryptsetup-generator.c +--- systemd-194.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-194/src/cryptsetup/cryptsetup-generator.c @@ -22,6 +22,7 @@ #include #include @@ -19,7 +19,7 @@ Index: systemd-37/src/cryptsetup/cryptsetup-generator.c #include "log.h" #include "util.h" -@@ -58,6 +59,71 @@ static bool has_option(const char *hayst +@@ -64,6 +65,71 @@ static bool has_option(const char *hayst return false; } @@ -54,7 +54,7 @@ Index: systemd-37/src/cryptsetup/cryptsetup-generator.c + "RemainAfterExit=true\n" + "Type=oneshot\n" + "TimeoutSec=0\n" -+ "ExecStart=/bin/systemctl restart lvm.service\n"); ++ "ExecStart=/usr/bin/systemctl restart lvm.service\n"); + + fflush(f); + @@ -91,13 +91,13 @@ Index: systemd-37/src/cryptsetup/cryptsetup-generator.c static int create_disk( const char *name, const char *device, -@@ -291,6 +357,9 @@ int main(int argc, char *argv[]) { +@@ -439,6 +505,9 @@ int main(int argc, char *argv[]) { free(options); } -+ if (create_storage_after_cryptsetup () < 0) ++ if ((r == EXIT_SUCCESS) && (create_storage_after_cryptsetup () < 0)) + r = EXIT_FAILURE; + finish: - return r; - } + if (f) + fclose(f); diff --git a/support-suse-clock-sysconfig.patch b/support-suse-clock-sysconfig.patch index de3992a3..0df12081 100644 --- a/support-suse-clock-sysconfig.patch +++ b/support-suse-clock-sysconfig.patch @@ -8,25 +8,21 @@ Subject: [PATCH] timedate: add support for openSUSE version of src/timedate/timedated.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 6a7d980..fbebc1d 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -180,9 +180,13 @@ static int read_data(void) { - if (r != -ENOENT) - log_warning("Failed to read /etc/timezone: %s", strerror(-r)); - --#ifdef TARGET_FEDORA -+#if defined(TARGET_FEDORA) || defined(TARGET_SUSE) - r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+#ifdef TARGET_FEDORA - "ZONE", &tz.zone, -+#else /* TARGET_SUSE */ -+ "TIMEZONE", &tz.zone, +Index: systemd-190/src/timedate/timedated.c +=================================================================== +--- systemd-190.orig/src/timedate/timedated.c ++++ systemd-190/src/timedate/timedated.c +@@ -175,6 +175,13 @@ static int read_data(void) { + goto have_timezone; + } + } ++#ifdef TARGET_SUSE ++ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, ++ "TIMEZONE", &tz.zone, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); +#endif - NULL); - if (r < 0 && r != -ENOENT) --- -1.7.10.4 - + #ifdef HAVE_DEBIAN + r = read_one_line_file("/etc/timezone", &tz.zone); diff --git a/support-sysvinit.patch b/support-sysvinit.patch index 627a3082..98c91ce2 100644 --- a/support-sysvinit.patch +++ b/support-sysvinit.patch @@ -1,7 +1,7 @@ Index: systemd-36/src/systemctl.c =================================================================== ---- systemd-36.orig/src/systemctl.c -+++ systemd-36/src/systemctl.c +--- systemd-36.orig/src/systemctl/systemctl.c ++++ systemd-36/src/systemctl/systemctl.c @@ -4672,10 +4672,13 @@ static int parse_argv(int argc, char *ar /* Hmm, so some other init system is * running, we need to forward this diff --git a/sysctl-modules.patch b/sysctl-modules.patch index 9348df0d..c6d4058d 100644 --- a/sysctl-modules.patch +++ b/sysctl-modules.patch @@ -1,12 +1,12 @@ -Index: systemd-37/units/systemd-sysctl.service.in +Index: systemd-189/units/systemd-sysctl.service.in =================================================================== ---- systemd-37.orig/units/systemd-sysctl.service.in -+++ systemd-37/units/systemd-sysctl.service.in -@@ -10,6 +10,7 @@ Description=Apply Kernel Variables +--- systemd-189.orig/units/systemd-sysctl.service.in ++++ systemd-189/units/systemd-sysctl.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service +After=systemd-modules-load.service Before=sysinit.target shutdown.target + ConditionPathIsReadWrite=/proc/sys/ ConditionPathExists=|/etc/sysctl.conf - ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/systemd-195.tar.xz b/systemd-195.tar.xz new file mode 100644 index 00000000..c1ce2202 --- /dev/null +++ b/systemd-195.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9041a8b84ed971d08df2b96f1b7dbb1d49b788e275c7cc39912f656bd826303 +size 1441308 diff --git a/systemd-44.tar.xz b/systemd-44.tar.xz deleted file mode 100644 index 2f31a608..00000000 --- a/systemd-44.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a5aac4b4b8b3a82bf59292f10e43d8f2c2d7039f34e95714f81d8edcb42233c -size 885636 diff --git a/systemd-gtk.spec b/systemd-gtk.spec deleted file mode 100644 index 1cc8b141..00000000 --- a/systemd-gtk.spec +++ /dev/null @@ -1,94 +0,0 @@ -# -# spec file for package systemd-gtk -# -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -Name: systemd-gtk -Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 44 -Release: 0 -BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: audit-devel -BuildRequires: gperf -BuildRequires: intltool -BuildRequires: libacl-devel -BuildRequires: libcap-devel -BuildRequires: libtool -BuildRequires: pam-devel -BuildRequires: pkg-config -BuildRequires: tcpd-devel -BuildRequires: udev -BuildRequires: xz -BuildRequires: pkgconfig(dbus-1) >= 1.5.2 -BuildRequires: pkgconfig(gee-1.0) -BuildRequires: pkgconfig(gio-unix-2.0) -BuildRequires: pkgconfig(glib-2.0) > 2.26 -BuildRequires: pkgconfig(gtk+-2.0) -BuildRequires: pkgconfig(libcryptsetup) -BuildRequires: pkgconfig(libkmod) >= 5 -BuildRequires: pkgconfig(liblzma) -BuildRequires: pkgconfig(libnotify) -BuildRequires: pkgconfig(libselinux) -BuildRequires: pkgconfig(libsepol) -BuildRequires: pkgconfig(udev) >= 172 -Summary: Graphical front-end for systemd -License: GPL-2.0+ -Group: System/Base -Requires: systemd = %{version} -Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz -Source1: systemd-rpmlintrc -Patch0: fixppc.patch - -# Upstream First - Policy: -# Never add any patches to this package without the upstream commit id -# in the patch. Any patches added here without a very good reason to make -# an exception will be silently removed with the next version update. - -%description -Graphical front-end for systemd system and service manager. - -%prep -%setup -q -n systemd-%{version} -%patch0 -p1 - -%build -autoreconf -fiv -# prevent pre-generated and distributed files from re-building -find . -name "*.[1-8]" -exec touch '{}' \; -touch src/systemadm.c -export V=1 -%configure \ - --with-distro=suse \ - --docdir=%{_docdir}/systemd \ - --with-rootprefix= \ - CFLAGS="%{optflags}" -make %{?_smp_mflags} - -%install -%makeinstall -# remove everything but systemadm and password agent -find %{buildroot} -not -type d -not -name 'systemadm*' -not -name systemd-gnome-ask-password-agent -delete - -%clean -rm -rf %{buildroot} - -%files -%defattr(-,root,root,-) -%{_bindir}/systemadm -%{_bindir}/systemd-gnome-ask-password-agent -%{_mandir}/man1/systemadm.1* - -%changelog diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc new file mode 100644 index 00000000..a9db8b52 --- /dev/null +++ b/systemd-mini-rpmlintrc @@ -0,0 +1,17 @@ +addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") +addFilter(".*dangling-symlink .* /dev/null.*") +addFilter(".*files-duplicate .*/reboot.8.*") +addFilter(".*files-duplicate .*/sd_is_socket.3.*") +addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion.sh") +addFilter("non-conffile-in-etc /etc/rpm/macros.systemd") +addFilter(".*dbus-policy-allow-receive") +addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*") +addFilter(".*dangling-symlink /lib/udev/devices/core.*") +addFilter(".*dangling-symlink /lib/udev/devices/fd.*") +addFilter(".*incoherent-init-script-name boot.udev.*") +addFilter(".init-script-without-%stop_on_removal-preun /etc/init.d/boot.udev") +addFilter(".init-script-without-%restart_on_update-postun /etc/init.d/boot.udev") +addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") +addFilter(".*libgudev-.*shlib-fixed-dependency.*") +addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") +addFilter("libudev-mini.*shlib-policy-name-error.*") diff --git a/systemd-gtk.changes b/systemd-mini.changes similarity index 86% rename from systemd-gtk.changes rename to systemd-mini.changes index e40aeb84..c7585b8e 100644 --- a/systemd-gtk.changes +++ b/systemd-mini.changes @@ -1,3 +1,309 @@ +------------------------------------------------------------------- +Fri Nov 2 14:07:15 UTC 2012 - coolo@suse.com + +- udev is GPL-2.0, the rest remains LGPL-2.1+ (bnc#787824) + +------------------------------------------------------------------- +Mon Oct 29 13:01:20 UTC 2012 - fcrozat@suse.com + +- Add var-run-lock.patch: make sure /var/run and /var/lock are + handled as bind mount if they aren't symlinks. +- Update storage-after-cryptsetup.patch with new systemctl path. +- Migrate broken symlinks in /etc/systemd/system due to new systemd + location. + +------------------------------------------------------------------- +Fri Oct 26 13:37:52 UTC 2012 - fcrozat@suse.com + +- Update to release 195: + + journalctl agained --since and --until, as well as filtering + for units with --unit=/-u. + + allow ExecReload properly for Type=oneshot (needed for + iptables.service, rpc-nfsd.service). + + journal daemon supports time-based rotation and vaccuming. + + journalctl -F allow to list all values of a certain field in + journal database. + + new commandline clients for timedated, locald and hostnamed + + new tool systemd-coredumpctl to list and extract coredumps from + journal. + + improve gatewayd: follow mode, filtering, support for + HTML5/JSON Server-Sent-Events. + + reload support in SysV initscripts is now detected when file is + parted. + + "systemctl status --follow" as been removed, use "journalctl -fu + instead" + + journald.conf RuntimeMinSize and PersistentMinSize settings + have been removed. +- Add compatibility symlink for systemd-ask-password and systemctl + in /bin. + +------------------------------------------------------------------- +Thu Oct 18 12:27:07 UTC 2012 - fcrozat@suse.com + +- Create and own more systemd drop-in directories. + +------------------------------------------------------------------- +Tue Oct 16 13:18:13 UTC 2012 - fcrozat@suse.com + +- Improve mini packages for bootstrapping. +- do not mount /tmp as tmpfs by default. + +------------------------------------------------------------------- +Tue Oct 16 07:40:23 UTC 2012 - fcrozat@suse.com + +- Fix install script when there is no inittab + +------------------------------------------------------------------- +Mon Oct 15 14:48:47 UTC 2012 - fcrozat@suse.com + +- Create a systemd-mini specfile to prevent cycle in bootstrapping + +------------------------------------------------------------------- +Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com + +- udev and its subpackages are now generated by systemd source + package. +- migrate udev and systemd to /usr +- Update to version 194: + + if /etc/vconsole.conf is non-existent or empty and if + /etc/sysconfig/console:CONSOLE_FONT (resp + /etc/sysconfig/keyboard:KEYTABLE) set, console font (resp + keymap) is not modified. +- Changes from version 44 to 193: + + journalctl gained --cursor= to show entries starting from a + specified location in journal. + + Size limit enforced to 4K for fields exported with "-o json" in + journalctl. Use --all to disable this behavior. + + Optional journal gateway daemon + (systemd-journal-gatewayd.service) to access journal via HTTP + and JSON. Use "wget http://localhost:19531/entries" to get + /var/log/messages compatible format and + 'curl -H"Accept: application/json" + http://localhost:19531/entries' for JSON formatted content. + HTML5 static page is also available as explained on + http://0pointer.de/public/journal-gatewayd + + do not mount cpuset controler, doesn't work well by default + ATM. + + improved nspawn behaviour with /etc/localtime + + journald logs its maximize size on disk + + multi-seat X wrapper (partially merged in upstream X server). + + HandleSleepKey has been splitted into HandleSuspendKey and + HandleHibernateKey. + + systemd and logind now handle system sleep states, in + particular suspending and hibernating. + + new cgroups are mounted by default (cpu, cpuacct, + net_cls, net_pri) + + sync at shutdown is now handled by kernel + + imported journalctl output (colors, filtering, pager, bash + completion). + + suffix ".service" may now be ommited on most systemctl command + involving service unit names. + + much improved nspawn containers support. + + new conditions added : ConditionFileNotEmpty, ConditionHost, + ConditionPathIsReadWrite + + tmpfiles "w" supports file globbing + + logind handles lid switch, power and sleep keys all the time, + unless systemd-inhibit + --what=handle-power-key:handle-sleep-key:handle-lid-switch is + run by Desktop Environments. + + support for reading structured kernel message is used by + default (need kernel >= 3.5). /proc/kmsg is now used only by + classic syslog daemons. + + Forward Secure Sealing is now support for Journal files. + + RestartPrevenExitStatus and SuccessExitStatus allow configure + of exit status (exit code or signal). + + handles keyfile-size and keyfile-offset in /etc/crypttab. + + TimeoutSec settings has been splitted into TimeoutStartSec and + TimeoutStopSec. + + add SystemCallFilters option to add blacklist/whitelist to + system calls, using SECCOMP mode 2 of kernel >= 3.5. + + systemctl udevadm info now takes a /dev or /sys path as argument: + - udevadm info /dev/sda + + XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames. + + systemd-loginctl and systemd-journalctl have been renamed + to loginctl and journalctl to match systemctl. + + udev: RUN+="socket:..." and udev_monitor_new_from_socket() is + no longer supported. udev_monitor_new_from_netlink() needs to + be used to subscribe to events. + + udev: when udevd is started by systemd, processes which are left + behind by forking them off of udev rules, are unconditionally + cleaned up and killed now after the event handling has finished. + Services or daemons must be started as systemd services. + Services can be pulled-in by udev to get started, but they can + no longer be directly forked by udev rules. + + For almost all files, license is now LGPL2.1+ (from previous + GPL2.0+). Exception are some minor stuff in udev (will be + changed to LGPL2.1 eventually) and MIT license sd-daemon.[ch] + library. + + var-run.mount and var-lock.mount are no longer provided + (should be converted to symlinks). + + A new service type Type=idle to avoid ugly interleaving of + getty output and boot status messages. + + systemd-delta has been added, a tool to explore differences + between user/admin configuration and vendor defaults. + + /tmp mouted as tmpfs by default. + + /media is now longer mounted as tmpfs + + GTK tool has been split off to systemd-ui package. + + much improved documentation. +- Merge BuildRequires from udev package: + gobject-introspection-devel, gtk-doc, libsepol-devel, + libusb-devel, pkgconfig(blkid), pkgconfig-glib-2.0), + pjgconfig(libcryptsetup), pkgconfig(libpci), + pkgconfig(libqrencode), pkgconfig(libselinux), + pkgconfig(usbutils). +- Add pkgconfig(libqrencode) and pkgconfig(libmicrohttpd) +- Merge sources from udev package: boot.udev, write_dev_root.rules, + udev-root-symlink.systemd. +- Merge patches from udev package: numbered started from 1000): + 0001-Reinstate-TIMEOUT-handling.patch, + 0013-re-enable-by_path-links-for-ata-devices.patch, + 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch, + 0026-udev-netlink-null-rules.patch, + 0027-udev-fix-sg-autoload-regression.patch. +- Remove following patches, merged upstream: + 0001-util-never-follow-symlinks-in-rm_rf_children.patch, + fixppc.patch, logind-logout.patch, fix-getty-isolate.patch, + fix-swap-priority.patch, improve-restart-behaviour.patch, + fix-dir-noatime-tmpfiles.patch, journal-bugfixes.patch, + ulimit-support.patch, change-terminal.patch, + fix-tty-startup.patch, fix-write-user-state-file.patch, + fix-analyze-exception.patch, use_localtime.patch, + journalctl-pager-improvement.patch, + avoid-random-seed-cycle.patch, + 0001-add-sparse-support-to-detect-endianness-bug.patch, + drop-timezone.patch. +- Rebase the following patches: + 0001-Add-bootsplash-handling-for-password-dialogs.patch, + 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, + 0001-service-Fix-dependencies-added-when-parsing-insserv..patch, + 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch, + crypt-loop-file.patch, + delay-fsck-cryptsetup-after-md-lvm-dmraid.patch, + dm-lvm-after-local-fs-pre-target.patch, fastboot-forcefsck.patch, + fix-enable-disable-boot-initscript.patch, modules_on_boot.patch, + new-lsb-headers.patch, storage-after-cryptsetup.patch, + support-suse-clock-sysconfig.patch, support-sysvinit.patch, + sysctl-modules.patch, systemd-numlock-suse.patch, tty1.patch. + +------------------------------------------------------------------- +Thu Aug 23 11:11:25 CEST 2012 - fcrozat@suse.com + +- Add use_localtime.patch: use /etc/localtime instead of + /etc/timezone (bnc#773491) +- Add support-suse-clock-sysconfig.patch: read SUSE + /etc/sysconfig/clock file. +- Add drop-timezone.patch: drop support for /etc/timezone, never + supported on openSUSE. +- Add journalctl-pager-improvement.patch: better handle output when + using pager. +- Add fix-enable-disable-boot-initscript.patch: support boot.* + initscripts for systemctl enable /disable (bnc#746506). + +------------------------------------------------------------------- +Mon Jul 30 11:37:17 UTC 2012 - fcrozat@suse.com + +- Ensure systemd macros never fails (if systemd isn't install) + +------------------------------------------------------------------- +Mon Jul 23 08:28:15 UTC 2012 - fcrozat@suse.com + +- Add fix-analyze-exception.patch: prevent exception if running + systemd-analyze before boot is complete (bnc#772506) + +------------------------------------------------------------------- +Fri Jul 20 19:24:08 CEST 2012 - sbrabec@suse.cz + +- Fix NumLock detection/set race condition (bnc#746595#c47). + +------------------------------------------------------------------- +Wed Jul 18 13:14:37 UTC 2012 - fcrozat@suse.com + +- Move systemd-analyse to a subpackage, to remove any python + dependencies from systemd main package (bnc#772039). + +------------------------------------------------------------------- +Tue Jul 10 16:48:20 UTC 2012 - fcrozat@suse.com + +- Add fastboot-forcefsck.patch: ensure fastboot and forcefsck on + kernel commandline are handled. +- Add fix-write-user-state-file.patch: write logind state file + correctly. +- Disable logind-logout.patch: cause too many issues (bnc#769531). + +------------------------------------------------------------------- +Mon Jul 9 11:01:20 UTC 2012 - fcrozat@suse.com + +- Add fix-tty-startup.patch: don't limit tty VT to 12 (bnc#770182). + +------------------------------------------------------------------- +Tue Jul 3 20:07:47 CEST 2012 - sbrabec@suse.cz + +- Fix SUSE specific sysconfig numlock logic for 12.2 (bnc#746595). + +------------------------------------------------------------------- +Tue Jul 3 17:58:39 CEST 2012 - fcrozat@suse.com + +- Add fix-dir-noatime-tmpfiles.patch: do not modify directory + atime, which was preventing removing empty directories + (bnc#751253, rh#810257). +- Add improve-restart-behaviour.patch: prevent deadlock during + try-restart (bnc#743218). +- Add journal-bugfixes.patch: don't crash when rotating journal + (bnc#768953) and prevent memleak at rotation time too. +- Add ulimit-support.patch: add support for system wide ulimit + (bnc#744818). +- Add change-terminal.patch: use vt102 instead of vt100 as terminal + for non-vc tty. +- Package various .wants directories, which were no longer packaged + due to plymouth units being removed from systemd package. +- Fix buildrequires for manpages build. + +------------------------------------------------------------------- +Mon Jul 2 15:44:28 UTC 2012 - fcrozat@suse.com + +- Do not ship plymouth units, they are shipped by plymouth package + now (bnc#769397). +- Fix module loading (bnc#769462) + +------------------------------------------------------------------- +Thu Jun 7 13:14:40 UTC 2012 - fcrozat@suse.com + +- Add fix-swap-priority: fix default swap priority (bnc#731601). + +------------------------------------------------------------------- +Fri May 25 11:08:27 UTC 2012 - fcrozat@suse.com + +- Re-enable logind-logout.patch, fix in xdm-np PAM file is the real + fix. + +------------------------------------------------------------------- +Thu May 24 11:45:54 UTC 2012 - fcrozat@suse.com + +- Update new-lsb-headers.patch to handle entries written after + description tag (bnc#727771, bnc#747931). + +------------------------------------------------------------------- +Thu May 3 11:40:20 UTC 2012 - fcrozat@suse.com + +- Disable logind-logout.patch: it crashes sudo session (if called + after su -l) (bnc#746704). + +------------------------------------------------------------------- +Tue Apr 24 15:46:54 UTC 2012 - fcrozat@suse.com + +- Add fix-getty-isolate.patch: don't quit getty when changing + runlevel (bnc#746594) + +------------------------------------------------------------------- +Fri Apr 20 17:16:37 CEST 2012 - sbrabec@suse.cz + +- Implemented SUSE specific sysconfig numlock logic (bnc#746595). + +------------------------------------------------------------------- +Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com + +- Add dbus-1 as BuildRequires to fix build. + ------------------------------------------------------------------- Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec new file mode 100644 index 00000000..e9fe70eb --- /dev/null +++ b/systemd-mini.spec @@ -0,0 +1,834 @@ +# +# spec file for package systemd-mini +# +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### +%define bootstrap 1 +%define real systemd +##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### +%define udevpkgname udev-mini +%define udev_major 1 + +Name: systemd-mini +Url: http://www.freedesktop.org/wiki/Software/systemd +Version: 195 +Release: 0 +Summary: A System and Session Manager +License: LGPL-2.1+ +Group: System/Base +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +Provides: %{real} = %{version}-%{release} + +BuildRequires: audit-devel +BuildRequires: dbus-1 +%if ! 0%{?bootstrap} +BuildRequires: docbook-xsl-stylesheets +%endif +BuildRequires: fdupes +%if ! 0%{?bootstrap} +BuildRequires: gobject-introspection-devel +%endif +BuildRequires: gperf +%if ! 0%{?bootstrap} +BuildRequires: gtk-doc +%endif +BuildRequires: intltool +BuildRequires: libacl-devel +BuildRequires: libcap-devel +BuildRequires: libsepol-devel +BuildRequires: libtool +BuildRequires: libusb-devel +%if ! 0%{?bootstrap} +BuildRequires: libxslt-tools +%endif +BuildRequires: pam-devel +BuildRequires: tcpd-devel +BuildRequires: xz +BuildRequires: pkgconfig(blkid) >= 2.20 +BuildRequires: pkgconfig(dbus-1) >= 1.3.2 +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.4.2 +%endif +BuildRequires: pkgconfig(libkmod) >= 5 +BuildRequires: pkgconfig(liblzma) +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libmicrohttpd) +%endif +BuildRequires: pkgconfig(libpci) >= 3 +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libqrencode) +%endif +BuildRequires: pkgconfig(libselinux) >= 2.1.9 +BuildRequires: pkgconfig(libsepol) +BuildRequires: pkgconfig(usbutils) >= 0.82 +%if 0%{?bootstrap} +Requires: this-is-only-for-build-envs +%else +# the buildignore is important for bootstrapping +#!BuildIgnore: udev +Requires: %{udevpkgname} >= 172 +Requires: dbus-1 >= 1.4.0 +Requires: kbd +Requires: pam-config >= 0.79-5 +Requires: systemd-presets-branding +Requires: util-linux >= 2.21 +Requires(post): coreutils +Requires(post): findutils +%endif +Conflicts: filesystem < 11.5 +Conflicts: mkinitrd < 2.7.0 +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz +Source1: systemd-rpmlintrc +Source2: localfs.service +Source3: systemd-sysv-convert +Source4: macros.systemd +Source5: systemd-insserv_conf +Source6: baselibs.conf + +Source1060: boot.udev +Source1061: write_dev_root_rule +Source1062: udev-root-symlink.systemd + +Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch +# handle SUSE specific kbd settings +Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +Patch7: systemd-numlock-suse.patch +# don't start getty on tty1 until all password request are done +Patch8: tty1.patch +Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch +Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch +Patch15: support-sysvinit.patch +Patch16: modules_on_boot.patch +Patch22: new-lsb-headers.patch +Patch23: storage-after-cryptsetup.patch +Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch +Patch31: lock-opensuse.patch +Patch33: crypt-loop-file.patch +Patch36: sysctl-modules.patch +Patch38: dm-lvm-after-local-fs-pre-target.patch +Patch53: fastboot-forcefsck.patch +Patch56: support-suse-clock-sysconfig.patch +Patch59: fix-enable-disable-boot-initscript.patch +Patch60: var-run-lock.patch + +# Upstream First - Policy: +# Never add any patches to this package without the upstream commit id +# in the patch. Any patches added here without a very good reason to make +# an exception will be silently removed with the next version update. + +# udev patches +# PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch +Patch1001: 0001-Reinstate-TIMEOUT-handling.patch +# PATCH-FIX-OPENSUSE 0013-re-enable-by_path-links-for-ata-devices.patch +Patch1013: 0013-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1014: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch + +# PATCH-FIX-OPENSUSE 0026-udev-netlink-null-rules.patch +Patch1026: 0026-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch +Patch1027: 0027-udev-fix-sg-autoload-regression.patch + +# systemd patches + +%description +Systemd is a system and service manager, compatible with SysV and LSB +init scripts for Linux. systemd provides aggressive parallelization +capabilities, uses socket and D-Bus activation for starting services, +offers on-demand starting of daemons, keeps track of processes using +Linux cgroups, supports snapshotting and restoring of the system state, +maintains mount and automount points and implements an elaborate +transactional dependency-based service control logic. It can work as a +drop-in replacement for sysvinit. + + + +%package devel +Summary: Development headers for systemd +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version} + +%description devel +Development headers and auxiliary files for developing applications for systemd. + +%package sysvinit +Summary: System V init tools +License: LGPL-2.1+ +Group: System/Base +Requires: %{name} = %{version} +Provides: sbin_init +Conflicts: otherproviders(sbin_init) +Provides: sysvinit:/sbin/init + +%description sysvinit +Drop-in replacement of System V init tools. + +%package analyze +Summary: Tool for processing systemd profiling information +License: LGPL-2.1+ +Group: System/Base +Requires: %{name} = %{version} +Requires: dbus-1-python +Requires: python-cairo +# for the systemd-analyze split: +Conflicts: systemd < 44-10 + +%description analyze +'systemd-analyze blame' lists which systemd unit needed how much time to finish +initialization at boot. +'systemd-analyze plot' renders an SVG visualizing the parallel start of units +at boot. + +%package -n %{udevpkgname} +Summary: A rule-based device node and kernel event manager +License: GPL-2.0 +Group: System/Kernel +Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html +PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd +Conflicts: systemd < 39 +Conflicts: aaa_base < 11.5 +Conflicts: filesystem < 11.5 +Conflicts: mkinitrd < 2.7.0 +Conflicts: util-linux < 2.16 +Conflicts: ConsoleKit < 0.4.1 +Requires: filesystem +%if 0%{?bootstrap} +Provides: udev = %{version} +%endif + +%description -n %{udevpkgname} +Udev creates and removes device nodes in /dev for devices discovered or +removed from the system. It receives events via kernel netlink messages +and dispatches them according to rules in /lib/udev/rules.d/. Matching +rules may name a device node, create additional symlinks to the node, +call tools to initialize a device, or load needed kernel modules. + + + +%package -n lib%{udevpkgname}%{udev_major} +Summary: Dynamic library to access udev device information +License: LGPL-2.1+ +Group: System/Libraries +Requires: %{udevpkgname} >= %{version}-%{release} + +%description -n lib%{udevpkgname}%{udev_major} +This package contains the dynamic library libudev, which provides +access to udev device information + +%package -n lib%{udevpkgname}-devel +Summary: Development files for libudev +License: LGPL-2.1+ +Group: Development/Libraries/Other +Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} +%if 0%{?bootstrap} +Provides: libudev-devel = %{version} +%endif + +%description -n lib%{udevpkgname}-devel +This package contains the development files for the library libudev, a +dynamic library, which provides access to udev device information. + +%if ! 0%{?bootstrap} +%package -n libgudev-1_0-0 +Summary: GObject library, to access udev device information +License: LGPL-2.1+ +Group: System/Libraries +Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} + +%description -n libgudev-1_0-0 +This package contains the GObject library libgudev, which provides +access to udev device information. + +%package -n typelib-1_0-GUdev-1_0 +Summary: GObject library, to access udev device information -- Introspection bindings +License: LGPL-2.1+ +Group: System/Libraries + +%description -n typelib-1_0-GUdev-1_0 +This package provides the GObject Introspection bindings for libgudev, which +provides access to udev device information. + +%package -n libgudev-1_0-devel +Summary: Devel package for libgudev +License: LGPL-2.1+ +Group: Development/Libraries/Other +Requires: glib2-devel +Requires: libgudev-1_0-0 = %{version}-%{release} +Requires: libudev-devel = %{version}-%{release} +Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} + +%description -n libgudev-1_0-devel +This is the devel package for the GObject library libgudev, which +provides GObject access to udev device information. +%endif + +%prep +%setup -q -n systemd-%{version} + +#udev +%patch1001 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1026 -p1 +%patch1027 -p1 + +%patch1 -p1 +%patch6 -p1 +# don't apply when bootstrapping to not modify configure.in +%if ! 0%{?bootstrap} +%patch7 -p1 +%endif +%patch8 -p1 +%patch10 -p1 +%patch13 -p1 +%patch15 -p1 +%patch16 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch31 -p1 +%patch33 -p1 +%patch36 -p1 +%patch38 -p1 +%patch53 -p1 +%patch56 -p1 +%patch59 -p1 +%patch60 -p1 + +%build +%if ! 0%{?bootstrap} +autoreconf -fiv +%endif +# prevent pre-generated and distributed files from re-building +find . -name "*.[1-8]" -exec touch '{}' \; +export V=1 +# keep split-usr until all packages have moved their systemd rules to /usr +%configure \ + --with-distro=suse \ + --docdir=%{_docdir}/systemd \ + --with-pamlibdir=/%{_lib}/security \ +%if 0%{?bootstrap} + --disable-gudev \ +%else + --enable-manpages \ + --enable-gtk-doc \ +%endif + --enable-selinux \ + --enable-split-usr \ + --disable-static \ + CFLAGS="%{optflags}" +make %{?_smp_mflags} + +%install +%makeinstall + +mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} +ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm +ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password +ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl +ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates +ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware + +install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev +install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service +mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants +ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants + +#fix manpages +%if ! 0%{?bootstrap} +sed -i -e 's,^\(\.so \)\(.*\.\)\([0-9]\),\1man\3/\2\3,g' %{buildroot}/%{_mandir}/*/* +%endif + +#workaround for 716939 +chmod 644 %{buildroot}%{_bindir}/systemd-analyze +mkdir -p %{buildroot}%{_sysconfdir}/rpm +install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm +find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} + +install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert +# do not install, code has been fixed, might be useful in the future +#install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators +ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd +ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init +ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot +ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt +ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown +ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff +ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit +ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel +rm -rf %{buildroot}/etc/systemd/system/*.target.wants +rm -f %{buildroot}/etc/systemd/system/default.target +# aliases for /etc/init.d/* +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service +ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service +install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service +# need to be implemented in systemd directly +#ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service +ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service +ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service +ln -s systemd-random-seed-load.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service +# don't mount /tmp as tmpfs for now +rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount + +# To avoid making life hard for Factory developers, don't package the +# kernel.core_pattern setting until systemd-coredump is a part of an actual +# systemd release and it's made clear how to get the core dumps out of the +# journal. +rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf + +# remove README files for now +rm -f %{buildroot}/var/log/README %{buildroot}/etc/init.d/README + +# legacy links +ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl +ln -s journalctl %{buildroot}%{_bindir}/systemd-journalctl +ln -s /usr/lib/udev %{buildroot}/lib/udev + +# Create the /var/log/journal directory to change the volatile journal to a persistent one +mkdir -p %{buildroot}/var/log/journal + +# Make sure the NTP units dir exists +mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ + +# Make sure the shutdown/sleep drop-in dirs exist +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/ +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ + +# Make sure these directories are properly owned +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants + +%fdupes -s %{buildroot}%{_mandir} + +%post +/usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : +/sbin/ldconfig +/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : +/usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : + +# Try to read default runlevel from the old inittab if it exists +if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then + runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) + if [ -n "$runlevel" ] ; then + /bin/ln -sf /usr/lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : + fi +fi +# Create default config in /etc at first install. +# Later package updates should not overwrite these settings. +if [ "$1" -eq 1 ]; then + # Enable these services by default. + /usr/bin/systemctl enable \ + getty@.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ + remote-fs.target >/dev/null 2>&1 || : +else +# migrate any symlink which may refer to the old path +for f in $(find /etc/systemd/system -type l -xtype l); do + new_target="/usr$(readlink $f)" + [ -f "$new_target" ] && ln -s -f $new_target $f || : +done + +fi + +%postun +/sbin/ldconfig +if [ $1 -ge 1 ]; then + /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : +fi +if [ $1 -eq 0 ]; then + /usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || : +fi + +%preun +if [ $1 -eq 0 ]; then + /usr/bin/systemctl disable \ + getty@.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ + remote-fs.target >/dev/null 2>&1 || : + rm -f /etc/systemd/system/default.target 2>&1 || : +fi + +%pretrans -n %{udevpkgname} -p +if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then + posix.symlink("/lib/udev", "/usr/lib/udev") +end + +%pre -n %{udevpkgname} +if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then + rm /usr/lib/udev + mv /lib/udev /usr/lib + ln -s /usr/lib/udev /lib/udev +fi + +%post -n %{udevpkgname} +%{fillup_and_insserv -Y boot.udev} +# add KERNEL name match to existing persistent net rules +sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ + /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : +# cleanup old stuff +rm -f /etc/sysconfig/udev +rm -f /etc/udev/rules.d/20-cdrom.rules +rm -f /etc/udev/rules.d/55-cdrom.rules +rm -f /etc/udev/rules.d/65-cdrom.rules +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +# start daemon if we are not in a chroot +if test -f /proc/1/exe -a -d /proc/1/root; then + if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then + /usr/bin/systemctl start systemd-udevd.service >/dev/null 2>&1 || : + /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + fi +fi + +[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup +if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" +elif [ -x /sbin/mkinitrd ]; then + /sbin/mkinitrd +fi + +%postun -n %{udevpkgname} +%insserv_cleanup +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup +if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" +elif [ -x /sbin/mkinitrd ]; then + /sbin/mkinitrd +fi + +%post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig + +%postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig + +%if ! 0%{?bootstrap} + +%post -n libgudev-1_0-0 -p /sbin/ldconfig + +%postun -n libgudev-1_0-0 -p /sbin/ldconfig +%endif + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root) +/bin/systemd +/bin/systemd-ask-password +/bin/systemctl +%{_bindir}/hostnamectl +%{_bindir}/localectl +%{_bindir}/systemctl +%{_bindir}/systemd-coredumpctl +%{_bindir}/systemd-delta +%{_bindir}/systemd-notify +%{_bindir}/systemd-journalctl +%{_bindir}/journalctl +%{_bindir}/systemd-ask-password +%{_bindir}/loginctl +%{_bindir}/systemd-loginctl +%{_bindir}/systemd-inhibit +%{_bindir}/systemd-tty-ask-password-agent +%{_bindir}/systemd-tmpfiles +%{_bindir}/systemd-machine-id-setup +%{_bindir}/systemd-nspawn +%{_bindir}/systemd-stdio-bridge +%{_bindir}/systemd-detect-virt +%{_bindir}/timedatectl +%{_sbindir}/systemd-sysv-convert +%{_libdir}/libsystemd-daemon.so.* +%{_libdir}/libsystemd-login.so.* +%{_libdir}/libsystemd-id128.so.* +%{_libdir}/libsystemd-journal.so.* +%{_bindir}/systemd-cgls +%{_bindir}/systemd-cgtop +%{_bindir}/systemd-cat +%dir %{_prefix}/lib/systemd +%dir %{_prefix}/lib/systemd/user +%dir %{_prefix}/lib/systemd/system +%exclude %{_prefix}/lib/systemd/system/systemd-udev*.* +%exclude %{_prefix}/lib/systemd/system/udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* +%exclude %{_prefix}/lib/systemd/system/basic.target.wants/udev-root-symlink.service +%{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.service +%{_prefix}/lib/systemd/system/*.target +%{_prefix}/lib/systemd/system/*.mount +%{_prefix}/lib/systemd/system/*.timer +%{_prefix}/lib/systemd/system/*.socket +%{_prefix}/lib/systemd/system/*.wants +%{_prefix}/lib/systemd/system/*.path +%{_prefix}/lib/systemd/user/*.target +%{_prefix}/lib/systemd/user/*.service +%exclude %{_prefix}/lib/systemd/systemd-udevd +%{_prefix}/lib/systemd/systemd-* +%{_prefix}/lib/systemd/systemd +%dir %{_prefix}/lib/systemd/system-shutdown +%dir %{_prefix}/lib/systemd/system-preset +%dir %{_prefix}/lib/systemd/user-preset +%dir %{_prefix}/lib/systemd/system-generators +%dir %{_prefix}/lib/systemd/user-generators +%dir %{_prefix}/lib/systemd/ntp-units.d/ +%dir %{_prefix}/lib/systemd/system-shutdown/ +%dir %{_prefix}/lib/systemd/system-sleep/ +%dir %{_prefix}/lib/systemd/system/default.target.wants +%dir %{_prefix}/lib/systemd/system/dbus.target.wants +%dir %{_prefix}/lib/systemd/system/syslog.target.wants +%if ! 0%{?bootstrap} +%{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator +%endif +%{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator +%{_prefix}/lib/systemd/system-generators/systemd-fstab-generator +%{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +/%{_lib}/security/pam_systemd.so + +%dir %{_libexecdir}/modules-load.d +%dir %{_sysconfdir}/modules-load.d + +%dir %{_libexecdir}/tmpfiles.d +%dir %{_sysconfdir}/tmpfiles.d +%{_libexecdir}/tmpfiles.d/*.conf + +%dir %{_libexecdir}/binfmt.d +%dir %{_sysconfdir}/binfmt.d + +%dir %{_libexecdir}/sysctl.d +%dir %{_sysconfdir}/sysctl.d + +%dir %{_sysconfdir}/systemd +%dir %{_sysconfdir}/systemd/system +%dir %{_sysconfdir}/systemd/user +%dir %{_sysconfdir}/xdg/systemd +%dir %{_sysconfdir}/xdg/systemd/user +%config(noreplace) %{_sysconfdir}/systemd/system.conf +%config(noreplace) %{_sysconfdir}/systemd/logind.conf +%config(noreplace) %{_sysconfdir}/systemd/journald.conf +%config(noreplace) %{_sysconfdir}/systemd/user.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf + +%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml +%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service +%dir %{_datadir}/polkit-1 +%dir %{_datadir}/polkit-1/actions +%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%{_datadir}/systemd + +%if ! 0%{?bootstrap} +# Packaged in sysvinit subpackage +%exclude %{_mandir}/man1/init.1* +%exclude %{_mandir}/man8/halt.8* +%exclude %{_mandir}/man8/reboot.8* +%exclude %{_mandir}/man8/shutdown.8* +%exclude %{_mandir}/man8/poweroff.8* +%exclude %{_mandir}/man8/telinit.8* +%exclude %{_mandir}/man8/runlevel.8* +%exclude %{_mandir}/man*/*udev*.[0-9]* +%{_mandir}/man1/*.1* +%{_mandir}/man3/*.3* +%{_mandir}/man5/*.5* +%{_mandir}/man7/*.7* +%{_mandir}/man8/*.8* +%endif +%{_docdir}/systemd +%{_prefix}/lib/udev/rules.d/70-uaccess.rules +%{_prefix}/lib/udev/rules.d/71-seat.rules +%{_prefix}/lib/udev/rules.d/73-seat-late.rules +%if ! 0%{?bootstrap} +%{_prefix}/lib/udev/rules.d/73-seat-numlock.rules +%endif +%{_prefix}/lib/udev/rules.d/99-systemd.rules +%if ! 0%{?bootstrap} +%{_prefix}/lib/udev/numlock-on +%endif +%dir %{_sysconfdir}/bash_completion.d +%{_sysconfdir}/bash_completion.d/systemd-bash-completion.sh +%{_sysconfdir}/rpm/macros.systemd +%dir /var/lib/systemd +%dir /var/lib/systemd/sysv-convert +%dir /var/lib/systemd/migrated +%dir /var/log/journal + +%files devel +%defattr(-,root,root,-) +%{_libdir}/libsystemd-daemon.so +%{_libdir}/libsystemd-login.so +%{_libdir}/libsystemd-id128.so +%{_libdir}/libsystemd-journal.so +%dir %{_includedir}/systemd +%{_includedir}/systemd/sd-login.h +%{_includedir}/systemd/sd-daemon.h +%{_includedir}/systemd/sd-id128.h +%{_includedir}/systemd/sd-journal.h +%{_includedir}/systemd/sd-messages.h +%{_includedir}/systemd/sd-shutdown.h +%{_datadir}/pkgconfig/systemd.pc +%{_libdir}/pkgconfig/libsystemd-daemon.pc +%{_libdir}/pkgconfig/libsystemd-login.pc +%{_libdir}/pkgconfig/libsystemd-id128.pc +%{_libdir}/pkgconfig/libsystemd-journal.pc + +%files sysvinit +%defattr(-,root,root,-) +/sbin/init +/sbin/reboot +/sbin/halt +/sbin/shutdown +/sbin/poweroff +/sbin/telinit +/sbin/runlevel +%if ! 0%{?bootstrap} +%{_mandir}/man1/init.1* +%{_mandir}/man8/halt.8* +%{_mandir}/man8/reboot.8* +%{_mandir}/man8/shutdown.8* +%{_mandir}/man8/poweroff.8* +%{_mandir}/man8/telinit.8* +%{_mandir}/man8/runlevel.8* +%endif + +%files analyze +%attr(0755,root,root) /usr/bin/systemd-analyze + +%files -n %{udevpkgname} +%defattr(-,root,root) +/sbin/udevd +/sbin/udevadm +# keep for compatibility +%ghost /lib/udev +%{_bindir}/udevadm +%{_prefix}/lib/firmware +%dir %{_prefix}/lib/udev/ +%{_prefix}/lib/udev/accelerometer +%{_prefix}/lib/udev/ata_id +%{_prefix}/lib/udev/cdrom_id +%{_prefix}/lib/udev/collect +%{_prefix}/lib/udev/findkeyboards +%{_prefix}/lib/udev/keymap +%{_prefix}/lib/udev/mtd_probe +%{_prefix}/lib/udev/scsi_id +%{_prefix}/lib/udev/v4l_id +%{_prefix}/lib/udev/write_dev_root_rule +%dir %{_prefix}/lib/udev/keymaps +%{_prefix}/lib/udev/keymaps/* +%{_prefix}/lib/udev/keyboard-force-release.sh +%dir %{_prefix}/lib/udev/rules.d/ +%exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules +%exclude %{_prefix}/lib/udev/rules.d/71-seat.rules +%exclude %{_prefix}/lib/udev/rules.d/73-seat-late.rules +%exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules +%exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules +%{_prefix}/lib/udev/rules.d/*.rules +%{_sysconfdir}/init.d/boot.udev +%dir %{_sysconfdir}/udev/ +%dir %{_sysconfdir}/udev/rules.d/ +%config(noreplace) %{_sysconfdir}/udev/udev.conf +%if ! 0%{?bootstrap} +%{_mandir}/man?/*udev*.[0-9]* +%endif +%dir %{_prefix}/lib/systemd/system +%{_prefix}/lib/systemd/systemd-udevd +%{_prefix}/lib/systemd/system/udev-root-symlink.service +%{_prefix}/lib/systemd/system/*udev*.service +%{_prefix}/lib/systemd/system/systemd-udevd*.socket +%dir %{_prefix}/lib/systemd/system/sysinit.target.wants +%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service +%dir %{_prefix}/lib/systemd/system/sockets.target.wants +%{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket + +%files -n lib%{udevpkgname}%{udev_major} +%defattr(-,root,root) +%{_libdir}/libudev.so.* + +%files -n lib%{udevpkgname}-devel +%defattr(-,root,root) +%{_includedir}/libudev.h +%{_libdir}/libudev.so +%{_datadir}/pkgconfig/udev.pc +%{_libdir}/pkgconfig/libudev.pc +%if ! 0%{?bootstrap} +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%dir %{_datadir}/gtk-doc/html/libudev +%{_datadir}/gtk-doc/html/libudev/* +%endif + +%if ! 0%{?bootstrap} +%files -n libgudev-1_0-0 +%defattr(-,root,root) +%{_libdir}/libgudev-1.0.so.* + +%files -n typelib-1_0-GUdev-1_0 +%defattr(-,root,root) +%{_libdir}/girepository-1.0/GUdev-1.0.typelib + +%files -n libgudev-1_0-devel +%defattr(-,root,root) +%dir %{_includedir}/gudev-1.0 +%dir %{_includedir}/gudev-1.0/gudev +%{_includedir}/gudev-1.0/gudev/*.h +%{_libdir}/libgudev-1.0.so +%{_libdir}/pkgconfig/gudev-1.0.pc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%dir %{_datadir}/gtk-doc/html/gudev +%{_datadir}/gtk-doc/html/gudev/* +%{_datadir}/gir-1.0/GUdev-1.0.gir +%endif + +%changelog diff --git a/systemd-numlock-suse.patch b/systemd-numlock-suse.patch index 3c7d9c9c..2c90cde4 100644 --- a/systemd-numlock-suse.patch +++ b/systemd-numlock-suse.patch @@ -1,8 +1,8 @@ -Index: systemd-44/src/vconsole/vconsole-setup.c +Index: systemd-190/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-44.orig/src/vconsole/vconsole-setup.c -+++ systemd-44/src/vconsole/vconsole-setup.c -@@ -265,12 +265,14 @@ int main(int argc, char **argv) { +--- systemd-190.orig/src/vconsole/vconsole-setup.c ++++ systemd-190/src/vconsole/vconsole-setup.c +@@ -287,12 +287,14 @@ int main(int argc, char **argv) { char *vc_kbd_delay = NULL; char *vc_kbd_rate = NULL; char *vc_kbd_disable_caps_lock = NULL; @@ -17,16 +17,8 @@ Index: systemd-44/src/vconsole/vconsole-setup.c int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -374,6 +376,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL)) < 0) { - -@@ -391,6 +394,37 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); +@@ -388,6 +390,37 @@ int main(int argc, char **argv) { + vc_keymap = t; } disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; + if (vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "BIOS") == 0) { @@ -61,9 +53,17 @@ Index: systemd-44/src/vconsole/vconsole-setup.c + } else + numlock = vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "YES") == 0; - #elif defined(TARGET_ARCH) - if ((r = parse_env_file("/etc/rc.conf", NEWLINE, -@@ -558,6 +592,10 @@ int main(int argc, char **argv) { + #elif defined(TARGET_SUSE) + r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, +@@ -395,6 +428,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -565,6 +599,10 @@ int main(int argc, char **argv) { finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -74,56 +74,35 @@ Index: systemd-44/src/vconsole/vconsole-setup.c #ifdef TARGET_SUSE if (compose_table_pid > 0) -Index: systemd-44/Makefile.am +Index: systemd-190/Makefile.am =================================================================== ---- systemd-44.orig/Makefile.am -+++ systemd-44/Makefile.am -@@ -42,6 +42,7 @@ dbussessionservicedir=@dbussessionservic - dbussystemservicedir=@dbussystemservicedir@ - dbusinterfacedir=@dbusinterfacedir@ - udevrulesdir=@udevrulesdir@ -+udevhelperdir=@udevhelperdir@ - pamlibdir=@pamlibdir@ - pkgconfigdatadir=$(datadir)/pkgconfig - pkgconfiglibdir=$(libdir)/pkgconfig -@@ -202,6 +203,9 @@ rootlibexec_PROGRAMS = \ - systemgenerator_PROGRAMS = \ - systemd-getty-generator - -+udevhelper_PROGRAMS = \ -+ numlock-on -+ - noinst_PROGRAMS = \ - test-engine \ - test-job-type \ -@@ -2033,6 +2037,12 @@ systemd_uaccess_LDADD = \ - $(UDEV_LIBS) \ - $(ACL_LIBS) +--- systemd-190.orig/Makefile.am ++++ systemd-190/Makefile.am +@@ -1989,6 +1989,19 @@ dist_udevrules_DATA += \ + rules/61-accelerometer.rules + # ------------------------------------------------------------------------------ +numlock_on_SOURCES = \ + src/login/numlock-on.c + +numlock_on_CFLAGS = \ + $(AM_CFLAGS) + - rootlibexec_PROGRAMS += \ - systemd-uaccess - -@@ -2040,7 +2050,8 @@ dist_udevrules_DATA += \ - src/login/70-uaccess.rules - - dist_udevrules_DATA += \ -- src/login/71-seat.rules -+ src/login/71-seat.rules \ -+ src/login/73-seat-numlock.rules - - nodist_udevrules_DATA += \ - src/login/73-seat-late.rules -Index: systemd-44/configure.ac ++udevlibexec_PROGRAMS += \ ++ numlock-on ++ ++dist_udevrules_DATA += \ ++ rules/73-seat-numlock.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ +Index: systemd-190/configure.ac =================================================================== ---- systemd-44.orig/configure.ac -+++ systemd-44/configure.ac -@@ -410,6 +410,13 @@ fi +--- systemd-190.orig/configure.ac ++++ systemd-190/configure.ac +@@ -598,6 +598,13 @@ fi with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution]) @@ -137,38 +116,10 @@ Index: systemd-44/configure.ac # Location of the init scripts as mandated by LSB SYSTEM_SYSVINIT_PATH=/etc/init.d SYSTEM_SYSVRCND_PATH=/etc/rc.d -@@ -579,6 +586,11 @@ AC_ARG_WITH([udevrulesdir], - [], - [with_udevrulesdir=`pkg-config --variable=udevdir udev`/rules.d]) - -+AC_ARG_WITH([udevhelperdir], -+ AS_HELP_STRING([--with-udevhelperdir=DIR], [Directory for udev helpers]), -+ [], -+ [with_udevhelperdir=`pkg-config --variable=udevdir udev`]) -+ - AC_ARG_WITH([rootprefix], - AS_HELP_STRING([--with-rootprefix=DIR], [rootfs directory prefix for config files and kernel modules]), - [], [with_rootprefix=${ac_default_prefix}]) -@@ -611,6 +623,7 @@ AC_SUBST([dbussessionservicedir], [$with - AC_SUBST([dbussystemservicedir], [$with_dbussystemservicedir]) - AC_SUBST([dbusinterfacedir], [$with_dbusinterfacedir]) - AC_SUBST([udevrulesdir], [$with_udevrulesdir]) -+AC_SUBST([udevhelperdir], [$with_udevhelperdir]) - AC_SUBST([pamlibdir], [$with_pamlibdir]) - AC_SUBST([rootprefix], [$with_rootprefix]) - AC_SUBST([rootlibdir], [$with_rootlibdir]) -@@ -650,6 +663,7 @@ AC_MSG_RESULT([ - rootlib dir: ${with_rootlibdir} - PAM modules dir: ${with_pamlibdir} - udev rules dir: ${with_udevrulesdir} -+ udev hepler dir: ${with_udevhelperdir} - D-Bus policy dir: ${with_dbuspolicydir} - D-Bus session dir: ${with_dbussessionservicedir} - D-Bus system dir: ${with_dbussystemservicedir} -Index: systemd-44/src/login/73-seat-numlock.rules +Index: systemd-190/rules/73-seat-numlock.rules =================================================================== --- /dev/null -+++ systemd-44/src/login/73-seat-numlock.rules ++++ systemd-190/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of systemd. +# @@ -178,10 +129,10 @@ Index: systemd-44/src/login/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-44/src/login/numlock-on.c +Index: systemd-190/src/login/numlock-on.c =================================================================== --- /dev/null -+++ systemd-44/src/login/numlock-on.c ++++ systemd-190/src/login/numlock-on.c @@ -0,0 +1,36 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -219,16 +170,16 @@ Index: systemd-44/src/login/numlock-on.c + return EX_IOERR; + return execv(args[0], args); +} -Index: systemd-44/units/systemd-vconsole-setup.service.in +Index: systemd-190/units/systemd-vconsole-setup.service.in =================================================================== ---- systemd-44.orig/units/systemd-vconsole-setup.service.in -+++ systemd-44/units/systemd-vconsole-setup.service.in -@@ -10,7 +10,7 @@ Description=Setup Virtual Console +--- systemd-190.orig/units/systemd-vconsole-setup.service.in ++++ systemd-190/units/systemd-vconsole-setup.service.in +@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service -Before=sysinit.target shutdown.target +Before=sysinit.target shutdown.target udev-trigger.service + ConditionPathExists=/dev/tty0 [Service] - Type=oneshot diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index cc21ff25..a9db8b52 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -2,9 +2,16 @@ addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runleve addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot.8.*") addFilter(".*files-duplicate .*/sd_is_socket.3.*") -addFilter("non-conffile-in-etc /etc/bash_completion.d/systemctl-bash-completion.sh") +addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion.sh") +addFilter("non-conffile-in-etc /etc/rpm/macros.systemd") addFilter(".*dbus-policy-allow-receive") -# Do not enable for submission into openSUSE:Factory, -# just for testing while polkit-default-privs is not checked in -# setBadness('polkit-unauthorized-privilege', 1) - +addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*") +addFilter(".*dangling-symlink /lib/udev/devices/core.*") +addFilter(".*dangling-symlink /lib/udev/devices/fd.*") +addFilter(".*incoherent-init-script-name boot.udev.*") +addFilter(".init-script-without-%stop_on_removal-preun /etc/init.d/boot.udev") +addFilter(".init-script-without-%restart_on_update-postun /etc/init.d/boot.udev") +addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") +addFilter(".*libgudev-.*shlib-fixed-dependency.*") +addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") +addFilter("libudev-mini.*shlib-policy-name-error.*") diff --git a/systemd.changes b/systemd.changes index 7b07e1cb..c7585b8e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,190 @@ +------------------------------------------------------------------- +Fri Nov 2 14:07:15 UTC 2012 - coolo@suse.com + +- udev is GPL-2.0, the rest remains LGPL-2.1+ (bnc#787824) + +------------------------------------------------------------------- +Mon Oct 29 13:01:20 UTC 2012 - fcrozat@suse.com + +- Add var-run-lock.patch: make sure /var/run and /var/lock are + handled as bind mount if they aren't symlinks. +- Update storage-after-cryptsetup.patch with new systemctl path. +- Migrate broken symlinks in /etc/systemd/system due to new systemd + location. + +------------------------------------------------------------------- +Fri Oct 26 13:37:52 UTC 2012 - fcrozat@suse.com + +- Update to release 195: + + journalctl agained --since and --until, as well as filtering + for units with --unit=/-u. + + allow ExecReload properly for Type=oneshot (needed for + iptables.service, rpc-nfsd.service). + + journal daemon supports time-based rotation and vaccuming. + + journalctl -F allow to list all values of a certain field in + journal database. + + new commandline clients for timedated, locald and hostnamed + + new tool systemd-coredumpctl to list and extract coredumps from + journal. + + improve gatewayd: follow mode, filtering, support for + HTML5/JSON Server-Sent-Events. + + reload support in SysV initscripts is now detected when file is + parted. + + "systemctl status --follow" as been removed, use "journalctl -fu + instead" + + journald.conf RuntimeMinSize and PersistentMinSize settings + have been removed. +- Add compatibility symlink for systemd-ask-password and systemctl + in /bin. + +------------------------------------------------------------------- +Thu Oct 18 12:27:07 UTC 2012 - fcrozat@suse.com + +- Create and own more systemd drop-in directories. + +------------------------------------------------------------------- +Tue Oct 16 13:18:13 UTC 2012 - fcrozat@suse.com + +- Improve mini packages for bootstrapping. +- do not mount /tmp as tmpfs by default. + +------------------------------------------------------------------- +Tue Oct 16 07:40:23 UTC 2012 - fcrozat@suse.com + +- Fix install script when there is no inittab + +------------------------------------------------------------------- +Mon Oct 15 14:48:47 UTC 2012 - fcrozat@suse.com + +- Create a systemd-mini specfile to prevent cycle in bootstrapping + +------------------------------------------------------------------- +Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com + +- udev and its subpackages are now generated by systemd source + package. +- migrate udev and systemd to /usr +- Update to version 194: + + if /etc/vconsole.conf is non-existent or empty and if + /etc/sysconfig/console:CONSOLE_FONT (resp + /etc/sysconfig/keyboard:KEYTABLE) set, console font (resp + keymap) is not modified. +- Changes from version 44 to 193: + + journalctl gained --cursor= to show entries starting from a + specified location in journal. + + Size limit enforced to 4K for fields exported with "-o json" in + journalctl. Use --all to disable this behavior. + + Optional journal gateway daemon + (systemd-journal-gatewayd.service) to access journal via HTTP + and JSON. Use "wget http://localhost:19531/entries" to get + /var/log/messages compatible format and + 'curl -H"Accept: application/json" + http://localhost:19531/entries' for JSON formatted content. + HTML5 static page is also available as explained on + http://0pointer.de/public/journal-gatewayd + + do not mount cpuset controler, doesn't work well by default + ATM. + + improved nspawn behaviour with /etc/localtime + + journald logs its maximize size on disk + + multi-seat X wrapper (partially merged in upstream X server). + + HandleSleepKey has been splitted into HandleSuspendKey and + HandleHibernateKey. + + systemd and logind now handle system sleep states, in + particular suspending and hibernating. + + new cgroups are mounted by default (cpu, cpuacct, + net_cls, net_pri) + + sync at shutdown is now handled by kernel + + imported journalctl output (colors, filtering, pager, bash + completion). + + suffix ".service" may now be ommited on most systemctl command + involving service unit names. + + much improved nspawn containers support. + + new conditions added : ConditionFileNotEmpty, ConditionHost, + ConditionPathIsReadWrite + + tmpfiles "w" supports file globbing + + logind handles lid switch, power and sleep keys all the time, + unless systemd-inhibit + --what=handle-power-key:handle-sleep-key:handle-lid-switch is + run by Desktop Environments. + + support for reading structured kernel message is used by + default (need kernel >= 3.5). /proc/kmsg is now used only by + classic syslog daemons. + + Forward Secure Sealing is now support for Journal files. + + RestartPrevenExitStatus and SuccessExitStatus allow configure + of exit status (exit code or signal). + + handles keyfile-size and keyfile-offset in /etc/crypttab. + + TimeoutSec settings has been splitted into TimeoutStartSec and + TimeoutStopSec. + + add SystemCallFilters option to add blacklist/whitelist to + system calls, using SECCOMP mode 2 of kernel >= 3.5. + + systemctl udevadm info now takes a /dev or /sys path as argument: + - udevadm info /dev/sda + + XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames. + + systemd-loginctl and systemd-journalctl have been renamed + to loginctl and journalctl to match systemctl. + + udev: RUN+="socket:..." and udev_monitor_new_from_socket() is + no longer supported. udev_monitor_new_from_netlink() needs to + be used to subscribe to events. + + udev: when udevd is started by systemd, processes which are left + behind by forking them off of udev rules, are unconditionally + cleaned up and killed now after the event handling has finished. + Services or daemons must be started as systemd services. + Services can be pulled-in by udev to get started, but they can + no longer be directly forked by udev rules. + + For almost all files, license is now LGPL2.1+ (from previous + GPL2.0+). Exception are some minor stuff in udev (will be + changed to LGPL2.1 eventually) and MIT license sd-daemon.[ch] + library. + + var-run.mount and var-lock.mount are no longer provided + (should be converted to symlinks). + + A new service type Type=idle to avoid ugly interleaving of + getty output and boot status messages. + + systemd-delta has been added, a tool to explore differences + between user/admin configuration and vendor defaults. + + /tmp mouted as tmpfs by default. + + /media is now longer mounted as tmpfs + + GTK tool has been split off to systemd-ui package. + + much improved documentation. +- Merge BuildRequires from udev package: + gobject-introspection-devel, gtk-doc, libsepol-devel, + libusb-devel, pkgconfig(blkid), pkgconfig-glib-2.0), + pjgconfig(libcryptsetup), pkgconfig(libpci), + pkgconfig(libqrencode), pkgconfig(libselinux), + pkgconfig(usbutils). +- Add pkgconfig(libqrencode) and pkgconfig(libmicrohttpd) +- Merge sources from udev package: boot.udev, write_dev_root.rules, + udev-root-symlink.systemd. +- Merge patches from udev package: numbered started from 1000): + 0001-Reinstate-TIMEOUT-handling.patch, + 0013-re-enable-by_path-links-for-ata-devices.patch, + 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch, + 0026-udev-netlink-null-rules.patch, + 0027-udev-fix-sg-autoload-regression.patch. +- Remove following patches, merged upstream: + 0001-util-never-follow-symlinks-in-rm_rf_children.patch, + fixppc.patch, logind-logout.patch, fix-getty-isolate.patch, + fix-swap-priority.patch, improve-restart-behaviour.patch, + fix-dir-noatime-tmpfiles.patch, journal-bugfixes.patch, + ulimit-support.patch, change-terminal.patch, + fix-tty-startup.patch, fix-write-user-state-file.patch, + fix-analyze-exception.patch, use_localtime.patch, + journalctl-pager-improvement.patch, + avoid-random-seed-cycle.patch, + 0001-add-sparse-support-to-detect-endianness-bug.patch, + drop-timezone.patch. +- Rebase the following patches: + 0001-Add-bootsplash-handling-for-password-dialogs.patch, + 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, + 0001-service-Fix-dependencies-added-when-parsing-insserv..patch, + 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch, + crypt-loop-file.patch, + delay-fsck-cryptsetup-after-md-lvm-dmraid.patch, + dm-lvm-after-local-fs-pre-target.patch, fastboot-forcefsck.patch, + fix-enable-disable-boot-initscript.patch, modules_on_boot.patch, + new-lsb-headers.patch, storage-after-cryptsetup.patch, + support-suse-clock-sysconfig.patch, support-sysvinit.patch, + sysctl-modules.patch, systemd-numlock-suse.patch, tty1.patch. + ------------------------------------------------------------------- Thu Aug 23 11:11:25 CEST 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 90324d8c..11af0d92 100644 --- a/systemd.spec +++ b/systemd.spec @@ -16,51 +16,90 @@ # +%define bootstrap 0 +%define real systemd +%define udevpkgname udev +%define udev_major 1 + Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 44 +Version: 195 Release: 0 Summary: A System and Session Manager -License: GPL-2.0+ +License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel BuildRequires: dbus-1 +%if ! 0%{?bootstrap} BuildRequires: docbook-xsl-stylesheets +%endif BuildRequires: fdupes +%if ! 0%{?bootstrap} +BuildRequires: gobject-introspection-devel +%endif BuildRequires: gperf +%if ! 0%{?bootstrap} +BuildRequires: gtk-doc +%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel +BuildRequires: libsepol-devel BuildRequires: libtool +BuildRequires: libusb-devel +%if ! 0%{?bootstrap} BuildRequires: libxslt-tools +%endif BuildRequires: pam-devel -BuildRequires: pkg-config BuildRequires: tcpd-devel -BuildRequires: udev BuildRequires: xz +BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 -BuildRequires: pkgconfig(libcryptsetup) +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.4.2 +%endif BuildRequires: pkgconfig(libkmod) >= 5 BuildRequires: pkgconfig(liblzma) -BuildRequires: pkgconfig(libselinux) +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libmicrohttpd) +%endif +BuildRequires: pkgconfig(libpci) >= 3 +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libqrencode) +%endif +BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -BuildRequires: pkgconfig(udev) >= 172 +BuildRequires: pkgconfig(usbutils) >= 0.82 +%if 0%{?bootstrap} +Requires: this-is-only-for-build-envs +%else +# the buildignore is important for bootstrapping +#!BuildIgnore: udev +Requires: %{udevpkgname} >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: pam-config >= 0.79-5 Requires: systemd-presets-branding -Requires: udev >= 172 Requires: util-linux >= 2.21 +Requires(post): coreutils +Requires(post): findutils +%endif Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 -Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf Source6: baselibs.conf + +Source1060: boot.udev +Source1061: write_dev_root_rule +Source1062: udev-root-symlink.systemd + Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -71,7 +110,6 @@ Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch Patch15: support-sysvinit.patch Patch16: modules_on_boot.patch -Patch19: avoid-random-seed-cycle.patch Patch22: new-lsb-headers.patch Patch23: storage-after-cryptsetup.patch Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch @@ -79,31 +117,30 @@ Patch31: lock-opensuse.patch Patch33: crypt-loop-file.patch Patch36: sysctl-modules.patch Patch38: dm-lvm-after-local-fs-pre-target.patch -Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch Patch53: fastboot-forcefsck.patch Patch56: support-suse-clock-sysconfig.patch -Patch57: drop-timezone.patch Patch59: fix-enable-disable-boot-initscript.patch +Patch60: var-run-lock.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch -Patch42: fixppc.patch -Patch43: logind-logout.patch -Patch44: fix-getty-isolate.patch -Patch45: fix-swap-priority.patch -Patch46: improve-restart-behaviour.patch -Patch47: fix-dir-noatime-tmpfiles.patch -Patch48: journal-bugfixes.patch -Patch49: ulimit-support.patch -Patch50: change-terminal.patch -Patch51: fix-tty-startup.patch -Patch52: fix-write-user-state-file.patch -Patch54: fix-analyze-exception.patch -Patch55: use_localtime.patch -Patch58: journalctl-pager-improvement.patch + +# udev patches +# PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch +Patch1001: 0001-Reinstate-TIMEOUT-handling.patch +# PATCH-FIX-OPENSUSE 0013-re-enable-by_path-links-for-ata-devices.patch +Patch1013: 0013-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1014: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch + +# PATCH-FIX-OPENSUSE 0026-udev-netlink-null-rules.patch +Patch1026: 0026-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch +Patch1027: 0027-udev-fix-sg-autoload-regression.patch + +# systemd patches %description Systemd is a system and service manager, compatible with SysV and LSB @@ -115,17 +152,20 @@ maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. + + %package devel Summary: Development headers for systemd +License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} -Requires: pkg-config %description devel Development headers and auxiliary files for developing applications for systemd. %package sysvinit Summary: System V init tools +License: LGPL-2.1+ Group: System/Base Requires: %{name} = %{version} Provides: sbin_init @@ -137,6 +177,7 @@ Drop-in replacement of System V init tools. %package analyze Summary: Tool for processing systemd profiling information +License: LGPL-2.1+ Group: System/Base Requires: %{name} = %{version} Requires: dbus-1-python @@ -150,17 +191,110 @@ initialization at boot. 'systemd-analyze plot' renders an SVG visualizing the parallel start of units at boot. +%package -n %{udevpkgname} +Summary: A rule-based device node and kernel event manager +License: GPL-2.0 +Group: System/Kernel +Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html +PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd +Conflicts: systemd < 39 +Conflicts: aaa_base < 11.5 +Conflicts: filesystem < 11.5 +Conflicts: mkinitrd < 2.7.0 +Conflicts: util-linux < 2.16 +Conflicts: ConsoleKit < 0.4.1 +Requires: filesystem +%if 0%{?bootstrap} +Provides: udev = %{version} +%endif + +%description -n %{udevpkgname} +Udev creates and removes device nodes in /dev for devices discovered or +removed from the system. It receives events via kernel netlink messages +and dispatches them according to rules in /lib/udev/rules.d/. Matching +rules may name a device node, create additional symlinks to the node, +call tools to initialize a device, or load needed kernel modules. + + + +%package -n lib%{udevpkgname}%{udev_major} +Summary: Dynamic library to access udev device information +License: LGPL-2.1+ +Group: System/Libraries +Requires: %{udevpkgname} >= %{version}-%{release} + +%description -n lib%{udevpkgname}%{udev_major} +This package contains the dynamic library libudev, which provides +access to udev device information + +%package -n lib%{udevpkgname}-devel +Summary: Development files for libudev +License: LGPL-2.1+ +Group: Development/Libraries/Other +Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} +%if 0%{?bootstrap} +Provides: libudev-devel = %{version} +%endif + +%description -n lib%{udevpkgname}-devel +This package contains the development files for the library libudev, a +dynamic library, which provides access to udev device information. + +%if ! 0%{?bootstrap} +%package -n libgudev-1_0-0 +Summary: GObject library, to access udev device information +License: LGPL-2.1+ +Group: System/Libraries +Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} + +%description -n libgudev-1_0-0 +This package contains the GObject library libgudev, which provides +access to udev device information. + +%package -n typelib-1_0-GUdev-1_0 +Summary: GObject library, to access udev device information -- Introspection bindings +License: LGPL-2.1+ +Group: System/Libraries + +%description -n typelib-1_0-GUdev-1_0 +This package provides the GObject Introspection bindings for libgudev, which +provides access to udev device information. + +%package -n libgudev-1_0-devel +Summary: Devel package for libgudev +License: LGPL-2.1+ +Group: Development/Libraries/Other +Requires: glib2-devel +Requires: libgudev-1_0-0 = %{version}-%{release} +Requires: libudev-devel = %{version}-%{release} +Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} + +%description -n libgudev-1_0-devel +This is the devel package for the GObject library libgudev, which +provides GObject access to udev device information. +%endif + %prep -%setup -q +%setup -q -n systemd-%{version} + +#udev +%patch1001 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1026 -p1 +%patch1027 -p1 + %patch1 -p1 %patch6 -p1 +# don't apply when bootstrapping to not modify configure.in +%if ! 0%{?bootstrap} %patch7 -p1 +%endif %patch8 -p1 %patch10 -p1 %patch13 -p1 %patch15 -p1 %patch16 -p1 -%patch19 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 @@ -168,99 +302,102 @@ at boot. %patch33 -p1 %patch36 -p1 %patch38 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -# this one causes too many trouble for now, disabling (bnc#769531) -#patch43 -p1 -%patch44 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 %patch53 -p1 -%patch54 -p1 -%patch55 -p1 %patch56 -p1 -%patch57 -p1 -%patch58 -p1 %patch59 -p1 - -#needed by patch49 -rm man/systemd.conf.5 +%patch60 -p1 %build +%if ! 0%{?bootstrap} autoreconf -fiv +%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' \; -touch src/systemadm.c export V=1 -# disable plymouth at configure time, units are shipped in plymouth package now +# keep split-usr until all packages have moved their systemd rules to /usr %configure \ --with-distro=suse \ --docdir=%{_docdir}/systemd \ - --with-rootprefix= \ --with-pamlibdir=/%{_lib}/security \ - --enable-split-usr \ - --disable-gtk \ +%if 0%{?bootstrap} + --disable-gudev \ +%else --enable-manpages \ - --disable-plymouth \ + --enable-gtk-doc \ +%endif + --enable-selinux \ + --enable-split-usr \ + --disable-static \ CFLAGS="%{optflags}" make %{?_smp_mflags} %install %makeinstall +mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} +ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm +ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password +ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl +ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates +ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware + +install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev +install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service +mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants +ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants + #fix manpages +%if ! 0%{?bootstrap} sed -i -e 's,^\(\.so \)\(.*\.\)\([0-9]\),\1man\3/\2\3,g' %{buildroot}/%{_mandir}/*/* +%endif #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/lib/systemd/{system.preset,user.preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future #install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators -ln -s ../lib/systemd/systemd %{buildroot}/bin/systemd -ln -s ../lib/systemd/systemd %{buildroot}/sbin/init -ln -s ../bin/systemctl %{buildroot}/sbin/reboot -ln -s ../bin/systemctl %{buildroot}/sbin/halt -ln -s ../bin/systemctl %{buildroot}/sbin/shutdown -ln -s ../bin/systemctl %{buildroot}/sbin/poweroff -ln -s ../bin/systemctl %{buildroot}/sbin/telinit -ln -s ../bin/systemctl %{buildroot}/sbin/runlevel +ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd +ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init +ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot +ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt +ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown +ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff +ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit +ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target # aliases for /etc/init.d/* -ln -s /dev/null %{buildroot}/lib/systemd/system/cgroup.service -ln -s systemd-tmpfiles-setup.service %{buildroot}/lib/systemd/system/cleanup.service -ln -s /dev/null %{buildroot}/lib/systemd/system/clock.service -ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service -ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service -ln -s /dev/null %{buildroot}/lib/systemd/system/device-mapper.service -ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service -ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service -ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service -ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service -install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service +ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service +install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service # need to be implemented in systemd directly -#ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service -ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service -ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service -ln -s /dev/null %{buildroot}/lib/systemd/system/single.service -ln -s /dev/null %{buildroot}/lib/systemd/system/swap.service -ln -s /dev/null %{buildroot}/lib/systemd/system/startpreload.service -ln -s /dev/null %{buildroot}/lib/systemd/system/stoppreload.service -ln -s /dev/null %{buildroot}/lib/systemd/system/earlyxdm.service -ln -s systemd-sysctl.service %{buildroot}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.service +#ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service +ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service +ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service +ln -s systemd-random-seed-load.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service +# don't mount /tmp as tmpfs for now +rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual @@ -268,42 +405,66 @@ ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.se # journal. rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf -# Let rsyslog read from /proc/kmsg for now -sed -i -e 's/\#ImportKernel=yes/ImportKernel=no/' %{buildroot}%{_sysconfdir}/systemd/systemd-journald.conf +# remove README files for now +rm -f %{buildroot}/var/log/README %{buildroot}/etc/init.d/README + +# legacy links +ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl +ln -s journalctl %{buildroot}%{_bindir}/systemd-journalctl +ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one mkdir -p %{buildroot}/var/log/journal -%fdupes $RPM_BUILD_ROOT +# Make sure the NTP units dir exists +mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ + +# Make sure the shutdown/sleep drop-in dirs exist +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/ +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ + +# Make sure these directories are properly owned +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants + +%fdupes -s %{buildroot}%{_mandir} %post /usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : /sbin/ldconfig -/bin/systemd-machine-id-setup >/dev/null 2>&1 || : -/bin/systemctl daemon-reexec >/dev/null 2>&1 || : +/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : +/usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists -if [ ! -e /etc/systemd/system/default.target ]; then +if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) if [ -n "$runlevel" ] ; then - /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : + /bin/ln -sf /usr/lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : fi fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then # Enable these services by default. - /bin/systemctl enable \ + /usr/bin/systemctl enable \ getty@.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : +else +# migrate any symlink which may refer to the old path +for f in $(find /etc/systemd/system -type l -xtype l); do + new_target="/usr$(readlink $f)" + [ -f "$new_target" ] && ln -s -f $new_target $f || : +done + fi %postun /sbin/ldconfig if [ $1 -ge 1 ]; then - /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : + /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi if [ $1 -eq 0 ]; then /usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || : @@ -311,7 +472,7 @@ fi %preun if [ $1 -eq 0 ]; then - /bin/systemctl disable \ + /usr/bin/systemctl disable \ getty@.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ @@ -319,22 +480,95 @@ if [ $1 -eq 0 ]; then rm -f /etc/systemd/system/default.target 2>&1 || : fi +%pretrans -n %{udevpkgname} -p +if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then + posix.symlink("/lib/udev", "/usr/lib/udev") +end + +%pre -n %{udevpkgname} +if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then + rm /usr/lib/udev + mv /lib/udev /usr/lib + ln -s /usr/lib/udev /lib/udev +fi + +%post -n %{udevpkgname} +%{fillup_and_insserv -Y boot.udev} +# add KERNEL name match to existing persistent net rules +sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ + /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : +# cleanup old stuff +rm -f /etc/sysconfig/udev +rm -f /etc/udev/rules.d/20-cdrom.rules +rm -f /etc/udev/rules.d/55-cdrom.rules +rm -f /etc/udev/rules.d/65-cdrom.rules +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +# start daemon if we are not in a chroot +if test -f /proc/1/exe -a -d /proc/1/root; then + if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then + /usr/bin/systemctl start systemd-udevd.service >/dev/null 2>&1 || : + /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + fi +fi + +[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup +if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" +elif [ -x /sbin/mkinitrd ]; then + /sbin/mkinitrd +fi + +%postun -n %{udevpkgname} +%insserv_cleanup +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup +if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" +elif [ -x /sbin/mkinitrd ]; then + /sbin/mkinitrd +fi + +%post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig + +%postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig + +%if ! 0%{?bootstrap} + +%post -n libgudev-1_0-0 -p /sbin/ldconfig + +%postun -n libgudev-1_0-0 -p /sbin/ldconfig +%endif + %clean rm -rf %{buildroot} %files %defattr(-,root,root) /bin/systemd -/bin/systemctl -/bin/systemd-notify -/bin/systemd-journalctl /bin/systemd-ask-password -/bin/systemd-loginctl -/bin/systemd-tty-ask-password-agent -/bin/systemd-tmpfiles -/bin/systemd-machine-id-setup -/usr/bin/systemd-nspawn -/usr/bin/systemd-stdio-bridge +/bin/systemctl +%{_bindir}/hostnamectl +%{_bindir}/localectl +%{_bindir}/systemctl +%{_bindir}/systemd-coredumpctl +%{_bindir}/systemd-delta +%{_bindir}/systemd-notify +%{_bindir}/systemd-journalctl +%{_bindir}/journalctl +%{_bindir}/systemd-ask-password +%{_bindir}/loginctl +%{_bindir}/systemd-loginctl +%{_bindir}/systemd-inhibit +%{_bindir}/systemd-tty-ask-password-agent +%{_bindir}/systemd-tmpfiles +%{_bindir}/systemd-machine-id-setup +%{_bindir}/systemd-nspawn +%{_bindir}/systemd-stdio-bridge +%{_bindir}/systemd-detect-virt +%{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* @@ -343,35 +577,74 @@ rm -rf %{buildroot} %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat -/lib/systemd/systemd-* -%dir /lib/systemd/system-shutdown -%dir /lib/systemd/system.preset -%dir /lib/systemd/user.preset +%dir %{_prefix}/lib/systemd +%dir %{_prefix}/lib/systemd/user +%dir %{_prefix}/lib/systemd/system +%exclude %{_prefix}/lib/systemd/system/systemd-udev*.* +%exclude %{_prefix}/lib/systemd/system/udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* +%exclude %{_prefix}/lib/systemd/system/basic.target.wants/udev-root-symlink.service +%{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.service +%{_prefix}/lib/systemd/system/*.target +%{_prefix}/lib/systemd/system/*.mount +%{_prefix}/lib/systemd/system/*.timer +%{_prefix}/lib/systemd/system/*.socket +%{_prefix}/lib/systemd/system/*.wants +%{_prefix}/lib/systemd/system/*.path +%{_prefix}/lib/systemd/user/*.target +%{_prefix}/lib/systemd/user/*.service +%exclude %{_prefix}/lib/systemd/systemd-udevd +%{_prefix}/lib/systemd/systemd-* +%{_prefix}/lib/systemd/systemd +%dir %{_prefix}/lib/systemd/system-shutdown +%dir %{_prefix}/lib/systemd/system-preset +%dir %{_prefix}/lib/systemd/user-preset +%dir %{_prefix}/lib/systemd/system-generators +%dir %{_prefix}/lib/systemd/user-generators +%dir %{_prefix}/lib/systemd/ntp-units.d/ +%dir %{_prefix}/lib/systemd/system-shutdown/ +%dir %{_prefix}/lib/systemd/system-sleep/ +%dir %{_prefix}/lib/systemd/system/default.target.wants +%dir %{_prefix}/lib/systemd/system/dbus.target.wants +%dir %{_prefix}/lib/systemd/system/syslog.target.wants +%if ! 0%{?bootstrap} +%{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator +%endif +%{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator +%{_prefix}/lib/systemd/system-generators/systemd-fstab-generator +%{_prefix}/lib/systemd/system-generators/systemd-system-update-generator /%{_lib}/security/pam_systemd.so + +%dir %{_libexecdir}/modules-load.d +%dir %{_sysconfdir}/modules-load.d + +%dir %{_libexecdir}/tmpfiles.d +%dir %{_sysconfdir}/tmpfiles.d +%{_libexecdir}/tmpfiles.d/*.conf + +%dir %{_libexecdir}/binfmt.d +%dir %{_sysconfdir}/binfmt.d + +%dir %{_libexecdir}/sysctl.d +%dir %{_sysconfdir}/sysctl.d + +%dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/xdg/systemd/user - -%dir /usr/lib/modules-load.d -%dir %{_sysconfdir}/modules-load.d -%dir /usr/lib/tmpfiles.d -%dir %{_sysconfdir}/tmpfiles.d -%dir /usr/lib/binfmt.d -%dir %{_sysconfdir}/binfmt.d -%dir /usr/lib/sysctl.d -%dir %{_sysconfdir}/sysctl.d -/usr/lib/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf -%config(noreplace) %{_sysconfdir}/systemd/systemd-logind.conf -%config(noreplace) %{_sysconfdir}/systemd/systemd-journald.conf +%config(noreplace) %{_sysconfdir}/systemd/logind.conf +%config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf -%config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf + %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml @@ -382,12 +655,16 @@ rm -rf %{buildroot} %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service -%{_datadir}/polkit-1 -%{_datadir}/polkit-1/actions +%dir %{_datadir}/polkit-1 +%dir %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy +%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy %{_datadir}/systemd -# Packaged in gtk subpackage -%exclude %{_mandir}/man1/systemadm.1* + +%if ! 0%{?bootstrap} # Packaged in sysvinit subpackage %exclude %{_mandir}/man1/init.1* %exclude %{_mandir}/man8/halt.8* @@ -396,24 +673,27 @@ rm -rf %{buildroot} %exclude %{_mandir}/man8/poweroff.8* %exclude %{_mandir}/man8/telinit.8* %exclude %{_mandir}/man8/runlevel.8* +%exclude %{_mandir}/man*/*udev*.[0-9]* %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* %{_mandir}/man7/*.7* %{_mandir}/man8/*.8* +%endif %{_docdir}/systemd -/lib/udev/rules.d/*.rules -/lib/udev/numlock-on -%dir /lib/systemd -/lib/systemd/system -/lib/systemd/system-generators -/lib/systemd/systemd -%dir /usr/lib/systemd -/usr/lib/systemd/user -%dir %{_sysconfdir}/systemd +%{_prefix}/lib/udev/rules.d/70-uaccess.rules +%{_prefix}/lib/udev/rules.d/71-seat.rules +%{_prefix}/lib/udev/rules.d/73-seat-late.rules +%if ! 0%{?bootstrap} +%{_prefix}/lib/udev/rules.d/73-seat-numlock.rules +%endif +%{_prefix}/lib/udev/rules.d/99-systemd.rules +%if ! 0%{?bootstrap} +%{_prefix}/lib/udev/numlock-on +%endif %dir %{_sysconfdir}/bash_completion.d -/etc/bash_completion.d/systemd-bash-completion.sh -/etc/rpm/macros.systemd +%{_sysconfdir}/bash_completion.d/systemd-bash-completion.sh +%{_sysconfdir}/rpm/macros.systemd %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated @@ -431,6 +711,7 @@ rm -rf %{buildroot} %{_includedir}/systemd/sd-id128.h %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h +%{_includedir}/systemd/sd-shutdown.h %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -446,6 +727,7 @@ rm -rf %{buildroot} /sbin/poweroff /sbin/telinit /sbin/runlevel +%if ! 0%{?bootstrap} %{_mandir}/man1/init.1* %{_mandir}/man8/halt.8* %{_mandir}/man8/reboot.8* @@ -453,8 +735,95 @@ rm -rf %{buildroot} %{_mandir}/man8/poweroff.8* %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* +%endif %files analyze %attr(0755,root,root) /usr/bin/systemd-analyze +%files -n %{udevpkgname} +%defattr(-,root,root) +/sbin/udevd +/sbin/udevadm +# keep for compatibility +%ghost /lib/udev +%{_bindir}/udevadm +%{_prefix}/lib/firmware +%dir %{_prefix}/lib/udev/ +%{_prefix}/lib/udev/accelerometer +%{_prefix}/lib/udev/ata_id +%{_prefix}/lib/udev/cdrom_id +%{_prefix}/lib/udev/collect +%{_prefix}/lib/udev/findkeyboards +%{_prefix}/lib/udev/keymap +%{_prefix}/lib/udev/mtd_probe +%{_prefix}/lib/udev/scsi_id +%{_prefix}/lib/udev/v4l_id +%{_prefix}/lib/udev/write_dev_root_rule +%dir %{_prefix}/lib/udev/keymaps +%{_prefix}/lib/udev/keymaps/* +%{_prefix}/lib/udev/keyboard-force-release.sh +%dir %{_prefix}/lib/udev/rules.d/ +%exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules +%exclude %{_prefix}/lib/udev/rules.d/71-seat.rules +%exclude %{_prefix}/lib/udev/rules.d/73-seat-late.rules +%exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules +%exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules +%{_prefix}/lib/udev/rules.d/*.rules +%{_sysconfdir}/init.d/boot.udev +%dir %{_sysconfdir}/udev/ +%dir %{_sysconfdir}/udev/rules.d/ +%config(noreplace) %{_sysconfdir}/udev/udev.conf +%if ! 0%{?bootstrap} +%{_mandir}/man?/*udev*.[0-9]* +%endif +%dir %{_prefix}/lib/systemd/system +%{_prefix}/lib/systemd/systemd-udevd +%{_prefix}/lib/systemd/system/udev-root-symlink.service +%{_prefix}/lib/systemd/system/*udev*.service +%{_prefix}/lib/systemd/system/systemd-udevd*.socket +%dir %{_prefix}/lib/systemd/system/sysinit.target.wants +%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service +%dir %{_prefix}/lib/systemd/system/sockets.target.wants +%{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket + +%files -n lib%{udevpkgname}%{udev_major} +%defattr(-,root,root) +%{_libdir}/libudev.so.* + +%files -n lib%{udevpkgname}-devel +%defattr(-,root,root) +%{_includedir}/libudev.h +%{_libdir}/libudev.so +%{_datadir}/pkgconfig/udev.pc +%{_libdir}/pkgconfig/libudev.pc +%if ! 0%{?bootstrap} +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%dir %{_datadir}/gtk-doc/html/libudev +%{_datadir}/gtk-doc/html/libudev/* +%endif + +%if ! 0%{?bootstrap} +%files -n libgudev-1_0-0 +%defattr(-,root,root) +%{_libdir}/libgudev-1.0.so.* + +%files -n typelib-1_0-GUdev-1_0 +%defattr(-,root,root) +%{_libdir}/girepository-1.0/GUdev-1.0.typelib + +%files -n libgudev-1_0-devel +%defattr(-,root,root) +%dir %{_includedir}/gudev-1.0 +%dir %{_includedir}/gudev-1.0/gudev +%{_includedir}/gudev-1.0/gudev/*.h +%{_libdir}/libgudev-1.0.so +%{_libdir}/pkgconfig/gudev-1.0.pc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%dir %{_datadir}/gtk-doc/html/gudev +%{_datadir}/gtk-doc/html/gudev/* +%{_datadir}/gir-1.0/GUdev-1.0.gir +%endif + %changelog diff --git a/tty1.patch b/tty1.patch index 938066fd..79145db5 100644 --- a/tty1.patch +++ b/tty1.patch @@ -1,13 +1,13 @@ -Index: systemd-29/units/systemd-ask-password-wall.service.in +Index: systemd-189/units/systemd-ask-password-wall.service.in =================================================================== ---- systemd-29.orig/units/systemd-ask-password-wall.service.in -+++ systemd-29/units/systemd-ask-password-wall.service.in -@@ -7,7 +7,7 @@ - +--- systemd-189.orig/units/systemd-ask-password-wall.service.in ++++ systemd-189/units/systemd-ask-password-wall.service.in +@@ -8,7 +8,7 @@ [Unit] Description=Forward Password Requests to Wall + Documentation=man:systemd-ask-password-console.service(8) -After=systemd-user-sessions.service +After=systemd-user-sessions.service getty@tty1.service [Service] - ExecStartPre=-@rootbindir@/systemctl stop systemd-ask-password-console.path systemd-ask-password-console.service + ExecStartPre=-@SYSTEMCTL@ stop systemd-ask-password-console.path systemd-ask-password-console.service systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service diff --git a/udev-root-symlink.systemd b/udev-root-symlink.systemd new file mode 100644 index 00000000..145a7fcc --- /dev/null +++ b/udev-root-symlink.systemd @@ -0,0 +1,9 @@ +[Unit] +Description=create /dev/root symlink with dynamic rule +Before=udev.service +DefaultDependencies=no + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/lib/udev/write_dev_root_rule diff --git a/ulimit-support.patch b/ulimit-support.patch deleted file mode 100644 index ae6d355c..00000000 --- a/ulimit-support.patch +++ /dev/null @@ -1,253 +0,0 @@ -From 03854532d39613723dc8b85c424737ecf2e46f74 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 16 Apr 2012 18:54:45 +0200 -Subject: [PATCH 1/3] util: introduce memdup() - ---- - src/util.h | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/src/util.h b/src/util.h -index b1af6db..06c9933 100644 ---- a/src/util.h -+++ b/src/util.h -@@ -99,6 +99,8 @@ bool streq_ptr(const char *a, const char *b); - - #define new0(t, n) ((t*) calloc((n), sizeof(t))) - -+#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n)) -+ - #define malloc0(n) (calloc((n), 1)) - - static inline const char* yes_no(bool b) { --- -1.7.7 - - -From f60b5d436f502152415b08758737f200113ce4bc Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 21 May 2012 16:53:18 +0200 -Subject: [PATCH 2/3] util: fix typo in newdup - -Conflicts: - - src/util.h ---- - src/util.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/util.h b/src/util.h -index 06c9933..41b4c9f 100644 ---- a/src/util.h -+++ b/src/util.h -@@ -99,7 +99,7 @@ bool streq_ptr(const char *a, const char *b); - - #define new0(t, n) ((t*) calloc((n), sizeof(t))) - --#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n)) -+#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n))) - - #define malloc0(n) (calloc((n), 1)) - --- -1.7.7 - - -From 8e7fa2b3e68b691c522cf2b60ed920452c146c2e Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Wed, 27 Jun 2012 14:12:44 +0200 -Subject: [PATCH 3/3] main: allow system wide limits for services - ---- - man/systemd.conf.xml | 27 +++++++++++++++++++++++++++ - src/main.c | 22 ++++++++++++++++++++++ - src/manager.c | 22 ++++++++++++++++++++++ - src/manager.h | 3 +++ - src/service.c | 4 ++++ - 5 files changed, 78 insertions(+), 0 deletions(-) - -diff --git a/man/systemd.conf.xml b/man/systemd.conf.xml -index ba144da..ee461e3 100644 ---- a/man/systemd.conf.xml -+++ b/man/systemd.conf.xml -@@ -149,6 +149,33 @@ - controllers in separate - hierarchies. - -+ -+ -+ DefaultLimitCPU= -+ DefaultLimitFSIZE= -+ DefaultLimitDATA= -+ DefaultLimitSTACK= -+ DefaultLimitCORE= -+ DefaultLimitRSS= -+ DefaultLimitNOFILE= -+ DefaultLimitAS= -+ DefaultLimitNPROC= -+ DefaultLimitMEMLOCK= -+ DefaultLimitLOCKS= -+ DefaultLimitSIGPENDING= -+ DefaultLimitMSGQUEUE= -+ DefaultLimitNICE= -+ DefaultLimitRTPRIO= -+ DefaultLimitRTTIME= -+ These settings control -+ various default resource limits for units. See -+ setrlimit2 -+ for details. Use the string -+ infinity to -+ configure no limit on a specific -+ resource. They can be overriden in units files -+ using corresponding LimitXXXX parameter. -+ - - - -diff --git a/src/main.c b/src/main.c -index ed317b4..3f5f3d7 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -79,6 +79,7 @@ static char **arg_default_controllers = NULL; - static char ***arg_join_controllers = NULL; - static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL; - static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT; -+static struct rlimit *arg_default_rlimit[RLIMIT_NLIMITS] = {}; - - static FILE* serialization = NULL; - -@@ -659,6 +660,22 @@ static int parse_config_file(void) { - { "Manager", "DefaultStandardOutput", config_parse_output, 0, &arg_default_std_output }, - { "Manager", "DefaultStandardError", config_parse_output, 0, &arg_default_std_error }, - { "Manager", "JoinControllers", config_parse_join_controllers, 0, &arg_join_controllers }, -+ { "Manager", "DefaultLimitCPU", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_CPU]}, -+ { "Manager", "DefaultLimitFSIZE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_FSIZE]}, -+ { "Manager", "DefaultLimitDATA", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_DATA]}, -+ { "Manager", "DefaultLimitSTACK", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_STACK]}, -+ { "Manager", "DefaultLimitCORE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_CORE]}, -+ { "Manager", "DefaultLimitRSS", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_RSS]}, -+ { "Manager", "DefaultLimitNOFILE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_NOFILE]}, -+ { "Manager", "DefaultLimitAS", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_AS]}, -+ { "Manager", "DefaultLimitNPROC", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_NPROC]}, -+ { "Manager", "DefaultLimitMEMLOCK", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_MEMLOCK]}, -+ { "Manager", "DefaultLimitLOCKS", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_LOCKS]}, -+ { "Manager", "DefaultLimitSIGPENDING",config_parse_limit, 0, &arg_default_rlimit[RLIMIT_SIGPENDING]}, -+ { "Manager", "DefaultLimitMSGQUEUE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_MSGQUEUE]}, -+ { "Manager", "DefaultLimitNICE", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_NICE]}, -+ { "Manager", "DefaultLimitRTPRIO", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_RTPRIO]}, -+ { "Manager", "DefaultLimitRTTIME", config_parse_limit, 0, &arg_default_rlimit[RLIMIT_RTTIME]}, - { NULL, NULL, NULL, 0, NULL } - }; - -@@ -1401,6 +1418,8 @@ int main(int argc, char *argv[]) { - m->default_std_output = arg_default_std_output; - m->default_std_error = arg_default_std_error; - -+ manager_set_default_rlimits(m, arg_default_rlimit); -+ - if (dual_timestamp_is_set(&initrd_timestamp)) - m->initrd_timestamp = initrd_timestamp; - -@@ -1539,6 +1558,9 @@ finish: - if (m) - manager_free(m); - -+ for (j = 0; j < RLIMIT_NLIMITS; j++) -+ free (arg_default_rlimit[j]); -+ - free(arg_default_unit); - strv_free(arg_default_controllers); - free_join_controllers(); -diff --git a/src/manager.c b/src/manager.c -index 3e592b6..c6cd06c 100644 ---- a/src/manager.c -+++ b/src/manager.c -@@ -456,6 +456,7 @@ static void manager_clear_jobs_and_units(Manager *m) { - - void manager_free(Manager *m) { - UnitType c; -+ int i; - - assert(m); - -@@ -501,6 +502,9 @@ void manager_free(Manager *m) { - hashmap_free(m->cgroup_bondings); - set_free_free(m->unit_path_cache); - -+ for (i = 0; i < RLIMIT_NLIMITS; i++) -+ free(m->rlimit[i]); -+ - free(m); - } - -@@ -3137,6 +3141,24 @@ int manager_set_default_controllers(Manager *m, char **controllers) { - return 0; - } - -+int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit) { -+ int i; -+ -+ assert(m); -+ -+ for (i = 0; i < RLIMIT_NLIMITS; i++) { -+ if (default_rlimit[i]) { -+ m->rlimit[i] = newdup(struct rlimit, default_rlimit[i], 1); -+ -+ if (!m->rlimit[i]) -+ return -ENOMEM; -+ } -+ } -+ -+ return 0; -+} -+ -+ - void manager_recheck_journal(Manager *m) { - Unit *u; - -diff --git a/src/manager.h b/src/manager.h -index a9d08f0..5f5de8e 100644 ---- a/src/manager.h -+++ b/src/manager.h -@@ -225,6 +225,8 @@ struct Manager { - - ExecOutput default_std_output, default_std_error; - -+ struct rlimit *rlimit[RLIMIT_NLIMITS]; -+ - /* non-zero if we are reloading or reexecuting, */ - int n_reloading; - -@@ -263,6 +265,7 @@ unsigned manager_dispatch_run_queue(Manager *m); - unsigned manager_dispatch_dbus_queue(Manager *m); - - int manager_set_default_controllers(Manager *m, char **controllers); -+int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit); - - int manager_loop(Manager *m); - -diff --git a/src/service.c b/src/service.c -index 8b5c0b0..892392d 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -109,6 +109,7 @@ static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { - - static void service_init(Unit *u) { - Service *s = SERVICE(u); -+ int i; - - assert(u); - assert(u->load_state == UNIT_STUB); -@@ -127,6 +128,9 @@ static void service_init(Unit *u) { - s->guess_main_pid = true; - - exec_context_init(&s->exec_context); -+ for (i = 0; i < RLIMIT_NLIMITS; i++) -+ if (UNIT(s)->manager->rlimit[i]) -+ s->exec_context.rlimit[i] = newdup(struct rlimit, UNIT(s)->manager->rlimit[i], 1); - - RATELIMIT_INIT(s->start_limit, 10*USEC_PER_SEC, 5); - --- -1.7.7 - diff --git a/use_localtime.patch b/use_localtime.patch deleted file mode 100644 index f078561c..00000000 --- a/use_localtime.patch +++ /dev/null @@ -1,397 +0,0 @@ -unlike symlink_or_copy_atomic(), this function creates a symlink even if the -oldname and newname (from and to) are on differn't devices. (stat.st_dev) ---- - src/shared/util.c | 19 +++++++++++++++++-- - src/shared/util.h | 1 + - 2 files changed, 18 insertions(+), 2 deletions(-) - -Index: systemd-44/src/util.c -=================================================================== ---- systemd-44.orig/src/util.c -+++ systemd-44/src/util.c -@@ -5352,7 +5352,7 @@ finish: - return r; - } - --int symlink_or_copy_atomic(const char *from, const char *to) { -+static int symlink_atomic_raw(const char *from, const char *to, bool allow_copy) { - char *t, *x; - const char *fn; - size_t k; -@@ -5381,7 +5381,14 @@ int symlink_or_copy_atomic(const char *f - - *x = 0; - -- r = symlink_or_copy(from, t); -+ if (allow_copy) -+ r = symlink_or_copy(from, t); -+ else { -+ r = symlink(from, t); -+ if (r < 0) -+ r = -errno; -+ } -+ - if (r < 0) { - unlink(t); - free(t); -@@ -5482,6 +5489,14 @@ int audit_loginuid_from_pid(pid_t pid, u - return 0; - } - -+int symlink_or_copy_atomic(const char *from, const char *to) { -+ return symlink_atomic_raw(from, to, true); -+} -+ -+int symlink_atomic(const char *from, const char *to) { -+ return symlink_atomic_raw(from, to, false); -+} -+ - bool display_is_local(const char *display) { - assert(display); - -Index: systemd-44/src/util.h -=================================================================== ---- systemd-44.orig/src/util.h -+++ systemd-44/src/util.h -@@ -448,6 +448,7 @@ int vt_disallocate(const char *name); - int copy_file(const char *from, const char *to); - int symlink_or_copy(const char *from, const char *to); - int symlink_or_copy_atomic(const char *from, const char *to); -+int symlink_atomic(const char *from, const char *to); - - int fchmod_umask(int fd, mode_t mode); - -Index: systemd-44/Makefile.am -=================================================================== ---- systemd-44.orig/Makefile.am -+++ systemd-44/Makefile.am -@@ -690,7 +690,7 @@ MANPAGES = \ - man/systemd.conf.5 \ - man/tmpfiles.d.5 \ - man/hostname.5 \ -- man/timezone.5 \ -+ man/localtime.5 \ - man/machine-id.5 \ - man/locale.conf.5 \ - man/os-release.5 \ -Index: systemd-44/man/timezone.xml -=================================================================== ---- systemd-44.orig/man/timezone.xml -+++ /dev/null -@@ -1,90 +0,0 @@ -- -- -- -- -- -- -- -- -- /etc/timezone -- systemd -- -- -- -- Developer -- Lennart -- Poettering -- lennart@poettering.net -- -- -- -- -- -- timezone -- 5 -- -- -- -- timezone -- Local time zone configuration file -- -- -- -- /etc/timezone -- -- -- -- Description -- -- The /etc/timezone file -- configures the system-wide time zone of the local -- system that is used by applications for presentation -- to the user. It should contain a single -- newline-terminated line consisting of a time zone -- identifier such as -- Europe/Berlin. The file -- /etc/localtime corresponds with -- /etc/timezone and contains the -- binary time zone data for the time zone. These files -- should always be changed simultaneously and kept in -- sync. -- -- The time zone may be overridden for individual -- programs by using the TZ environment variable. See -- environ7. -- -- -- -- History -- -- The simple configuration file format of -- /etc/timezone originates from -- Debian GNU/Linux. -- -- -- -- See Also -- -- systemd1 -- -- -- -- -Index: systemd-44/man/localtime.xml -=================================================================== ---- /dev/null -+++ systemd-44/man/localtime.xml -@@ -0,0 +1,93 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ /etc/localtime -+ systemd -+ -+ -+ -+ Developer -+ Lennart -+ Poettering -+ lennart@poettering.net -+ -+ -+ Developer -+ Shawn -+ Landden -+ shawnlandden@gmail.com -+ -+ -+ -+ -+ -+ localtime -+ 5 -+ -+ -+ -+ localtime -+ Local time zone configuration file -+ -+ -+ -+ /etc/localtime -> /usr/share/zoneinfo/… -+ -+ -+ -+ Description -+ -+ The /etc/localtime file -+ configures the system-wide time zone of the local -+ system that is used by applications for presentation -+ to the user. It should be an absolute symbolic link -+ with a destination of /usr/share/zoneinfo/, -+ fallowed by a time zone identifier such as -+ Europe/Berlin or Etc/UTC. -+ The resulting link should point to the corresponding binary -+ tzfile5 -+ time zone data for the configured time zone. -+ -+ As the time zone identifier is extracted from the name of -+ the target of /etc/localtime this file may -+ not be a normal file or hardlink. -+ -+ The time zone may be overridden for individual -+ programs by using the TZ environment variable. See -+ environ7. -+ -+ -+ -+ See Also -+ -+ tzset3 -+ localtime3 -+ systemd1 -+ -+ -+ -+ -Index: systemd-44/src/timedate/timedated.c -=================================================================== ---- systemd-44.orig/src/timedate/timedated.c -+++ systemd-44/src/timedate/timedated.c -@@ -72,6 +72,9 @@ - BUS_GENERIC_INTERFACES_LIST \ - "org.freedesktop.timedate1\0" - -+/* Must start and end with '/' */ -+#define ZONEINFO_PATH "/usr/share/zoneinfo/" -+ - const char timedate_interface[] _introspect_("timedate1") = INTERFACE; - - typedef struct TZ { -@@ -125,7 +128,7 @@ static bool valid_timezone(const char *n - if (slash) - return false; - -- t = strappend("/usr/share/zoneinfo/", name); -+ t = strappend(ZONEINFO_PATH, name); - if (!t) - return false; - -@@ -149,17 +152,17 @@ static void verify_timezone(void) { - if (!tz.zone) - return; - -- p = strappend("/usr/share/zoneinfo/", tz.zone); -+ p = strappend(ZONEINFO_PATH, tz.zone); - if (!p) { - log_error("Out of memory"); - return; - } - -- j = read_full_file("/etc/localtime", &a, &l); - k = read_full_file(p, &b, &q); -- - free(p); - -+ j = read_full_file("/etc/localtime", &a, &l); -+ - if (j < 0 || k < 0 || l != q || memcmp(a, b, l)) { - log_warning("/etc/localtime and /etc/timezone out of sync."); - free(tz.zone); -@@ -172,9 +175,36 @@ static void verify_timezone(void) { - - static int read_data(void) { - int r; -+ char *t = NULL; - - free_data(); - -+ r = readlink_malloc("/etc/localtime", &t); -+ if (r < 0) { -+ if (r == -EINVAL) -+ log_warning("/etc/localtime should be a symbolic link to a timezone data file in " ZONEINFO_PATH); -+ else -+ log_warning("Failed to get target of %s: %s", "/etc/localtime", strerror(-r)); -+ } else { -+ /* we only support the trivial relative link of (/etc/)..$ABSOLUTE */ -+ int rel_link_offset = startswith(t, "..") ? strlen("..") : 0; -+ -+ if (!startswith(t + rel_link_offset, ZONEINFO_PATH)) -+ log_warning("/etc/localtime should be a symbolic link to a timezone data file in " ZONEINFO_PATH); -+ else { -+ tz.zone = strdup(t + rel_link_offset + strlen(ZONEINFO_PATH)); -+ free(t); -+ if (!tz.zone) { -+ log_error("Out of memory"); -+ return -ENOMEM; -+ } -+ -+ goto have_timezone; -+ } -+ } -+ -+ free(t); -+ - r = read_one_line_file("/etc/timezone", &tz.zone); - if (r < 0) { - if (r != -ENOENT) -@@ -190,6 +220,7 @@ static int read_data(void) { - #endif - } - -+have_timezone: - if (isempty(tz.zone)) { - free(tz.zone); - tz.zone = NULL; -@@ -205,6 +236,7 @@ static int read_data(void) { - static int write_data_timezone(void) { - int r = 0; - char *p; -+ struct stat st; - - if (!tz.zone) { - if (unlink("/etc/timezone") < 0 && errno != ENOENT) -@@ -216,21 +248,24 @@ static int write_data_timezone(void) { - return r; - } - -- p = strappend("/usr/share/zoneinfo/", tz.zone); -+ p = strappend(ZONEINFO_PATH, tz.zone); - if (!p) { - log_error("Out of memory"); - return -ENOMEM; - } - -- r = symlink_or_copy_atomic(p, "/etc/localtime"); -+ r = symlink_atomic(p, "/etc/localtime"); -+ - free(p); - - if (r < 0) -- return r; -+ return -errno; - -- r = write_one_line_file_atomic("/etc/timezone", tz.zone); -- if (r < 0) -- return r; -+ if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { -+ r = write_one_line_file_atomic("/etc/timezone", tz.zone); -+ if (r < 0) -+ return r; -+ } - - return 0; - } diff --git a/var-run-lock.patch b/var-run-lock.patch new file mode 100644 index 00000000..8d645de9 --- /dev/null +++ b/var-run-lock.patch @@ -0,0 +1,97 @@ +Index: systemd-195/Makefile.am +=================================================================== +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -294,6 +294,7 @@ dist_systemunit_DATA = \ + units/sys-kernel-config.mount \ + units/sys-kernel-debug.mount \ + units/sys-fs-fuse-connections.mount \ ++ units/var-run.mount \ + units/tmp.mount \ + units/printer.target \ + units/sound.target \ +@@ -308,6 +309,11 @@ dist_systemunit_DATA = \ + units/systemd-udevd-kernel.socket \ + units/system-update.target + ++if HAVE_SYSV_COMPAT ++dist_systemunit_DATA += \ ++ units/var-lock.mount ++endif ++ + nodist_systemunit_DATA = \ + units/getty@.service \ + units/serial-getty@.service \ +@@ -3864,9 +3870,11 @@ systemd-install-data-hook: + ( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \ + rm -f systemd-remount-fs.service \ + systemd-fsck-root.service \ ++ var-run.mount \ + tmp.mount && \ + $(LN_S) ../systemd-remount-fs.service systemd-remount-fs.service && \ + $(LN_S) ../systemd-fsck-root.service systemd-fsck-root.service && \ ++ $(LN_S) ../var-run.mount var-run.mount && \ + $(LN_S) ../tmp.mount tmp.mount ) + ( cd $(DESTDIR)$(userunitdir) && \ + rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \ +@@ -3954,6 +3962,12 @@ if TARGET_MAGEIA + rm -f display-manager.service ) + endif + ++if HAVE_SYSV_COMPAT ++ ( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \ ++ rm -f var-lock.mount && \ ++ $(LN_S) ../var-lock.mount var-lock.mount ) ++endif ++ + install-exec-hook: $(INSTALL_EXEC_HOOKS) + + uninstall-hook: $(UNINSTALL_EXEC_HOOKS) +Index: systemd-195/units/var-lock.mount +=================================================================== +--- /dev/null ++++ systemd-195/units/var-lock.mount +@@ -0,0 +1,19 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++[Unit] ++Description=Lock Directory ++Before=local-fs.target ++# skip mounting if the directory does not exist or is a symlink ++ConditionPathIsDirectory=/var/lock ++ConditionPathIsSymbolicLink=!/var/lock ++ ++[Mount] ++What=/run/lock ++Where=/var/lock ++Type=bind ++Options=bind +Index: systemd-195/units/var-run.mount +=================================================================== +--- /dev/null ++++ systemd-195/units/var-run.mount +@@ -0,0 +1,19 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++[Unit] ++Description=Runtime Directory ++Before=local-fs.target ++# skip mounting if the directory does not exist or is a symlink ++ConditionPathIsDirectory=/var/run ++ConditionPathIsSymbolicLink=!/var/run ++ ++[Mount] ++What=/run ++Where=/var/run ++Type=bind ++Options=bind diff --git a/write_dev_root_rule b/write_dev_root_rule new file mode 100644 index 00000000..9555789b --- /dev/null +++ b/write_dev_root_rule @@ -0,0 +1,13 @@ +#!/bin/sh + +eval $(/sbin/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/) + +[ "$ROOT_MAJOR" -gt 0 ] || return +mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1 +ln -sf /run/udev /dev/.udev 2>/dev/null || : + +echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", \ +ENV{MAJOR}==\"$ROOT_MAJOR\", ENV{MINOR}==\"$ROOT_MINOR\", \ +SYMLINK+=\"root\"" > /run/udev/rules.d/10-root-symlink.rules + +exit 0 From 87fde291e2518bb72aa69459311e2ba1957de3ef60487ff24f1b2e5b20704eb2 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 3 Nov 2012 07:37:41 +0000 Subject: [PATCH 109/221] Accepting request 140035 from Base:System - add libudev1 to baselibs.conf OBS-URL: https://build.opensuse.org/request/show/140035 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=112 --- baselibs.conf | 2 +- systemd-mini.changes | 5 +++++ systemd.changes | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/baselibs.conf b/baselibs.conf index ea8c7e15..e1e7047d 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -3,4 +3,4 @@ systemd -/lib/systemd/system/ libudev0 libgudev-1_0-0 - +libudev1 diff --git a/systemd-mini.changes b/systemd-mini.changes index c7585b8e..ad7eb901 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Nov 3 07:21:44 UTC 2012 - coolo@suse.com + +- add libudev1 to baselibs.conf + ------------------------------------------------------------------- Fri Nov 2 14:07:15 UTC 2012 - coolo@suse.com diff --git a/systemd.changes b/systemd.changes index c7585b8e..ad7eb901 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Nov 3 07:21:44 UTC 2012 - coolo@suse.com + +- add libudev1 to baselibs.conf + ------------------------------------------------------------------- Fri Nov 2 14:07:15 UTC 2012 - coolo@suse.com From 7564493967e56e8cf366f22aa8746b078702f5822e94b41d4c99bc5496c07ba8 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 5 Nov 2012 19:55:01 +0000 Subject: [PATCH 110/221] Accepting request 140248 from Base:System - Don't hardcode path for systemctl in udev post script. - Ensure systemd-udevd.service is shadowing boot.udev when booting under systemd. - Fix udev daemon upgrade under both systemd and sysvinit. - Add fix-logind-pty-seat.patch: fix logind complaining when doing su/sudo in X terminal. (forwarded request 140247 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/140248 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=113 --- fix-logind-pty-seat.patch | 29 +++++++++++++++++++++++++++++ systemd-mini.changes | 10 ++++++++++ systemd-mini.spec | 21 +++++++++++++++++---- systemd.changes | 10 ++++++++++ systemd.spec | 21 +++++++++++++++++---- 5 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 fix-logind-pty-seat.patch diff --git a/fix-logind-pty-seat.patch b/fix-logind-pty-seat.patch new file mode 100644 index 00000000..50b3a3da --- /dev/null +++ b/fix-logind-pty-seat.patch @@ -0,0 +1,29 @@ +From 978cf3c75fbd94fd0e046206ada6169b35edd919 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 28 Oct 2012 17:37:16 +0100 +Subject: [PATCH] logind: it's OK if a process on an pty requests a session + for seat0 + +After all, if a sudo/su inside an X terminal should get added to the +same session as the X session itself. +--- + src/login/logind-dbus.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index 4326e5b..8b6021d 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -415,8 +415,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess + if (vtnr != 0) + return -EINVAL; + +- } else if (!isempty(tty) && s && seat_is_vtconsole(s)) +- return -EINVAL; ++ } + + if (s) { + if (seat_can_multi_session(s)) { +-- +1.7.10.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index ad7eb901..349b3bbb 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Nov 5 14:37:46 UTC 2012 - fcrozat@suse.com + +- Don't hardcode path for systemctl in udev post script. +- Ensure systemd-udevd.service is shadowing boot.udev when booting + under systemd. +- Fix udev daemon upgrade under both systemd and sysvinit. +- Add fix-logind-pty-seat.patch: fix logind complaining when doing + su/sudo in X terminal. + ------------------------------------------------------------------- Sat Nov 3 07:21:44 UTC 2012 - coolo@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index e9fe70eb..44f13d24 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -131,6 +131,8 @@ Patch60: var-run-lock.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-UPSTREAM fix-logind-pty-seat.patch fcrozat@suse.com -- fix logind complaining when doing su/sudo in X terminal +Patch61: fix-logind-pty-seat.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -311,6 +313,7 @@ provides GObject access to udev device information. %patch56 -p1 %patch59 -p1 %patch60 -p1 +%patch61 -p1 %build %if ! 0%{?bootstrap} @@ -348,6 +351,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev +ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants @@ -496,6 +500,13 @@ if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then mv /lib/udev /usr/lib ln -s /usr/lib/udev /lib/udev fi +# kill daemon if we are not in a chroot +if test -f /proc/1/exe -a -d /proc/1/root ; then + if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then + systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket >/dev/null 2>&1 || : + udevadm control --exit 2>&1 || : + fi +fi %post -n %{udevpkgname} %{fillup_and_insserv -Y boot.udev} @@ -507,12 +518,13 @@ rm -f /etc/sysconfig/udev rm -f /etc/udev/rules.d/20-cdrom.rules rm -f /etc/udev/rules.d/55-cdrom.rules rm -f /etc/udev/rules.d/65-cdrom.rules -/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload >/dev/null 2>&1 || : # start daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - /usr/bin/systemctl start systemd-udevd.service >/dev/null 2>&1 || : - /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + if ! systemctl start systemd-udevd.service >/dev/null 2>&1; then + /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + fi fi fi @@ -526,7 +538,7 @@ fi %postun -n %{udevpkgname} %insserv_cleanup -/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload >/dev/null 2>&1 || : [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then @@ -586,6 +598,7 @@ rm -rf %{buildroot} %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* +%exclude %{_prefix}/lib/systemd/system/udev.service %exclude %{_prefix}/lib/systemd/system/udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/udev-root-symlink.service diff --git a/systemd.changes b/systemd.changes index ad7eb901..349b3bbb 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Nov 5 14:37:46 UTC 2012 - fcrozat@suse.com + +- Don't hardcode path for systemctl in udev post script. +- Ensure systemd-udevd.service is shadowing boot.udev when booting + under systemd. +- Fix udev daemon upgrade under both systemd and sysvinit. +- Add fix-logind-pty-seat.patch: fix logind complaining when doing + su/sudo in X terminal. + ------------------------------------------------------------------- Sat Nov 3 07:21:44 UTC 2012 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index 11af0d92..86df1703 100644 --- a/systemd.spec +++ b/systemd.spec @@ -126,6 +126,8 @@ Patch60: var-run-lock.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-UPSTREAM fix-logind-pty-seat.patch fcrozat@suse.com -- fix logind complaining when doing su/sudo in X terminal +Patch61: fix-logind-pty-seat.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -306,6 +308,7 @@ provides GObject access to udev device information. %patch56 -p1 %patch59 -p1 %patch60 -p1 +%patch61 -p1 %build %if ! 0%{?bootstrap} @@ -343,6 +346,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev +ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants @@ -491,6 +495,13 @@ if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then mv /lib/udev /usr/lib ln -s /usr/lib/udev /lib/udev fi +# kill daemon if we are not in a chroot +if test -f /proc/1/exe -a -d /proc/1/root ; then + if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then + systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket >/dev/null 2>&1 || : + udevadm control --exit 2>&1 || : + fi +fi %post -n %{udevpkgname} %{fillup_and_insserv -Y boot.udev} @@ -502,12 +513,13 @@ rm -f /etc/sysconfig/udev rm -f /etc/udev/rules.d/20-cdrom.rules rm -f /etc/udev/rules.d/55-cdrom.rules rm -f /etc/udev/rules.d/65-cdrom.rules -/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload >/dev/null 2>&1 || : # start daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - /usr/bin/systemctl start systemd-udevd.service >/dev/null 2>&1 || : - /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + if ! systemctl start systemd-udevd.service >/dev/null 2>&1; then + /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + fi fi fi @@ -521,7 +533,7 @@ fi %postun -n %{udevpkgname} %insserv_cleanup -/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload >/dev/null 2>&1 || : [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then @@ -581,6 +593,7 @@ rm -rf %{buildroot} %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* +%exclude %{_prefix}/lib/systemd/system/udev.service %exclude %{_prefix}/lib/systemd/system/udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/udev-root-symlink.service From 4009500bd307d11ff204ed0e9bfb85f98a44d9520631a3a39044bc8b74eadd32 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 6 Nov 2012 14:52:46 +0000 Subject: [PATCH 111/221] Accepting request 140354 from Base:System - adding a package systemd-logger that blocks syslog implementations from installation to make an installation that only uses the journal OBS-URL: https://build.opensuse.org/request/show/140354 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=114 --- systemd-mini.changes | 6 ++++++ systemd-mini.spec | 17 +++++++++++++++++ systemd.changes | 6 ++++++ systemd.spec | 17 +++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/systemd-mini.changes b/systemd-mini.changes index 349b3bbb..6ad12c11 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Nov 6 14:40:37 UTC 2012 - coolo@suse.com + +- adding a package systemd-logger that blocks syslog implementations + from installation to make an installation that only uses the journal + ------------------------------------------------------------------- Mon Nov 5 14:37:46 UTC 2012 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 44f13d24..99f43196 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -279,6 +279,18 @@ Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} %description -n libgudev-1_0-devel This is the devel package for the GObject library libgudev, which provides GObject access to udev device information. + +%package logger +Summary: Journal only logging +License: LGPL-2.1+ +Group: System/Base +Provides: syslog +Provides: sysvinit(syslog) +Conflicts: otherproviders(syslog) + +%description logger +This package marks the installation to not use syslog but only the journal. + %endif %prep @@ -842,6 +854,11 @@ rm -rf %{buildroot} %dir %{_datadir}/gtk-doc/html/gudev %{_datadir}/gtk-doc/html/gudev/* %{_datadir}/gir-1.0/GUdev-1.0.gir + +%files logger +%defattr(-,root,root) +%dir /var/log/journal + %endif %changelog diff --git a/systemd.changes b/systemd.changes index 349b3bbb..6ad12c11 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Nov 6 14:40:37 UTC 2012 - coolo@suse.com + +- adding a package systemd-logger that blocks syslog implementations + from installation to make an installation that only uses the journal + ------------------------------------------------------------------- Mon Nov 5 14:37:46 UTC 2012 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 86df1703..abcc5caf 100644 --- a/systemd.spec +++ b/systemd.spec @@ -274,6 +274,18 @@ Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} %description -n libgudev-1_0-devel This is the devel package for the GObject library libgudev, which provides GObject access to udev device information. + +%package logger +Summary: Journal only logging +License: LGPL-2.1+ +Group: System/Base +Provides: syslog +Provides: sysvinit(syslog) +Conflicts: otherproviders(syslog) + +%description logger +This package marks the installation to not use syslog but only the journal. + %endif %prep @@ -837,6 +849,11 @@ rm -rf %{buildroot} %dir %{_datadir}/gtk-doc/html/gudev %{_datadir}/gtk-doc/html/gudev/* %{_datadir}/gir-1.0/GUdev-1.0.gir + +%files logger +%defattr(-,root,root) +%dir /var/log/journal + %endif %changelog From 16ef4de12ed08670193ac5ca8df284947bc75c690236ea530fe454239c5f4661 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 26 Nov 2012 18:58:02 +0000 Subject: [PATCH 112/221] Accepting request 142568 from Base:System - Fix creation of /dev/root link. - Add remount-ro-before-unmount.patch: always remount read-only before unmounting in final shutdown loop. - Add switch-root-try-pivot-root.patch: try pivot_root before overmounting / - links more manpages for migrated tools (from Christopher Yeleighton). - disable boot.localnet service, ypbind service will do the right thing now (bnc#716746) - add xdm-display-manager.patch: pull xdm.service instead of display-manager.service (needed until xdm initscript is migrated to native systemd service). - Add fix-permissions-btmp.patch: ensure btmp is owned only by root (bnc#777405). - Have the udev package create a tape group, as referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules (DimStar). - Add fix-bad-memory-access.patch: fix crash in journal rotation. - Add fix-dbus-crash.patch: fix D-Bus caused crash. - Add sync-on-shutdown.patch: ensure sync is done when initiating shutdown. - Add mount-efivars.patch: mount efivars if booting on UEFI. - Ship a empty systemd-journald initscript in systemd-logger to stop insserv to complain about missing syslog dependency. - Update 0001-service-Fix-dependencies-added-when-parsing-insserv..patch with bug fixes from Debian. OBS-URL: https://build.opensuse.org/request/show/142568 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=115 --- ...ndencies-added-when-parsing-insserv..patch | 97 ++++- fix-bad-memory-access.patch | 23 ++ fix-build-glibc217.patch | 32 ++ fix-dbus-crash.patch | 32 ++ fix-permissions-btmp.patch | 13 + libgcrypt.m4 | 123 +++++++ mount-efivars.patch | 336 ++++++++++++++++++ remount-ro-before-unmount.patch | 95 +++++ switch-root-try-pivot-root.patch | 81 +++++ sync-on-shutdown.patch | 49 +++ systemd-journald.init | 33 ++ systemd-mini.changes | 62 ++++ systemd-mini.spec | 123 +++++-- systemd.changes | 62 ++++ systemd.spec | 123 +++++-- udev-root-symlink.systemd | 2 +- write_dev_root_rule | 2 +- xdm-display-manager.patch | 13 + 18 files changed, 1222 insertions(+), 79 deletions(-) create mode 100644 fix-bad-memory-access.patch create mode 100644 fix-build-glibc217.patch create mode 100644 fix-dbus-crash.patch create mode 100644 fix-permissions-btmp.patch create mode 100644 libgcrypt.m4 create mode 100644 mount-efivars.patch create mode 100644 remount-ro-before-unmount.patch create mode 100644 switch-root-try-pivot-root.patch create mode 100644 sync-on-shutdown.patch create mode 100644 systemd-journald.init create mode 100644 xdm-display-manager.patch diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch index 36ca5a76..17c4a2bd 100644 --- a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch +++ b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch @@ -1,17 +1,35 @@ -From 6620bceb7233a830be3635a4f7a7dc75c13a9c8e Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Fri, 30 Sep 2011 14:12:45 +0200 -Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf - ---- - src/service.c | 16 +++++++++------- - 1 files changed, 9 insertions(+), 7 deletions(-) - -Index: systemd-41/src/service.c +Index: systemd-195/src/core/service.c =================================================================== ---- systemd-41.orig/src/core/service.c -+++ systemd-41/src/core/service.c -@@ -3210,23 +3210,30 @@ static void sysv_facility_in_insserv_con +--- systemd-195.orig/src/core/service.c ++++ systemd-195/src/core/service.c +@@ -3391,12 +3391,13 @@ static void service_notify_message(Unit + + #ifdef HAVE_SYSV_COMPAT + +-#ifdef TARGET_SUSE +-static void sysv_facility_in_insserv_conf(Manager *mgr) { +- FILE *f=NULL; ++#if defined(TARGET_SUSE) || defined(TARGET_DEBIAN) ++static void sysv_parse_insserv_conf(Manager *mgr, const char* filename) { ++ FILE *f = NULL; + int r; + +- if (!(f = fopen("/etc/insserv.conf", "re"))) { ++ if (!(f = fopen(filename, "re"))) { ++ log_error("Failed to open file %s", filename); + r = errno == ENOENT ? 0 : -errno; + goto finish; + } +@@ -3410,7 +3411,7 @@ static void sysv_facility_in_insserv_con + break; + + r = -errno; +- log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r)); ++ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r)); + goto finish; + } + +@@ -3425,23 +3426,30 @@ static void sysv_facility_in_insserv_con Unit *u; if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) continue; @@ -29,12 +47,12 @@ Index: systemd-41/src/service.c STRV_FOREACH (j, parsed+1) { - if (*j[0]=='+') { - e = UNIT_WANTS; -+ if (*j[0]=='+') ++ if (*j[0] == '+') name = *j+1; - } - else { - e = UNIT_REQUIRES; -+ else ++ else name = *j; - } + if (streq(name, "boot.localfs") || @@ -44,9 +62,54 @@ Index: systemd-41/src/service.c continue; - r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); -+ r = unit_add_dependency_by_name_inverse(u, UNIT_BEFORE, dep, NULL, true); -+ if (*j[0]!='+') ++ r = unit_add_two_dependencies_by_name_inverse(u, UNIT_WANTS, UNIT_BEFORE, dep, NULL, true); ++ if (*j[0] != '+') + r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true); free(dep); } } +@@ -3454,6 +3462,35 @@ finish: + fclose(f); + + } ++ ++static void sysv_facility_in_insserv_conf(Manager *mgr) { ++ DIR *d =NULL; ++ struct dirent *de; ++ ++#ifdef TARGET_DEBIAN ++ if (!(d = opendir("/etc/insserv.conf.d/"))) ++ if (errno != ENOENT) { ++ log_warning("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno)); ++ goto finish; ++ } ++ ++ while ((de = readdir(d))) { ++ char *path = NULL; ++ if (ignore_file(de->d_name)) ++ continue; ++ ++ path = join("/etc/insserv.conf.d/", de->d_name, NULL); ++ sysv_parse_insserv_conf(mgr, path); ++ free(path); ++ } ++finish: ++ if (d) ++ closedir(d); ++#endif ++ ++ sysv_parse_insserv_conf(mgr, "/etc/insserv.conf"); ++} ++ + #endif + + static int service_enumerate(Manager *m) { +@@ -3604,7 +3641,7 @@ static int service_enumerate(Manager *m) + + r = 0; + +-#ifdef TARGET_SUSE ++#if defined(TARGET_SUSE) || defined(TARGET_DEBIAN) + sysv_facility_in_insserv_conf (m); + #endif + diff --git a/fix-bad-memory-access.patch b/fix-bad-memory-access.patch new file mode 100644 index 00000000..2109977a --- /dev/null +++ b/fix-bad-memory-access.patch @@ -0,0 +1,23 @@ +From 7d73c1343be02a59b17de0cd34375deeb815d89c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 20 Nov 2012 00:19:27 +0100 +Subject: [PATCH] journald: fix bad memory access + +https://bugzilla.redhat.com/show_bug.cgi?id=875653 +--- + src/journal/journald-server.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-195/src/journal/journald.c +=================================================================== +--- systemd-195.orig/src/journal/journald.c ++++ systemd-195/src/journal/journald.c +@@ -342,7 +342,7 @@ static void server_rotate(Server *s) { + HASHMAP_FOREACH_KEY(f, k, s->user_journals, i) { + r = journal_file_rotate(&f, s->compress, s->seal); + if (r < 0) +- if (f->path) ++ if (f) + log_error("Failed to rotate %s: %s", f->path, strerror(-r)); + else + log_error("Failed to create user journal: %s", strerror(-r)); diff --git a/fix-build-glibc217.patch b/fix-build-glibc217.patch new file mode 100644 index 00000000..fe35a571 --- /dev/null +++ b/fix-build-glibc217.patch @@ -0,0 +1,32 @@ +From e17187091d463ad008c0b74eb04de5078b2abb96 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 14 Nov 2012 14:44:05 +0100 +Subject: [PATCH] configure.ac: fix FTBFS with new glibc + +glibc moved clock_* functions from librt to the core libc. As a result, +clock_gettime is no more a suitable symbol to use when finding librt. +Look for mq_open instead. +Reference: +http://www.sourceware.org/git/gitweb.cgi?p=glibc.git&h=6e6249d0b461b952d0f544792372663feb6d792a + +Fixes a FTBFS in Fedora Rawhide. +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c4638d1..71ea6ad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -171,7 +171,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ + -Wl,-z,now]) + AC_SUBST([OUR_LDFLAGS], $with_ldflags) + +-AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])]) ++AC_SEARCH_LIBS([mq_open], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])]) + AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])]) + + save_LIBS="$LIBS" +-- +1.7.10.4 + diff --git a/fix-dbus-crash.patch b/fix-dbus-crash.patch new file mode 100644 index 00000000..caf53645 --- /dev/null +++ b/fix-dbus-crash.patch @@ -0,0 +1,32 @@ +From 645a9e5a2bbb06464a3fba1a3501e9d79e5bbad8 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Wed, 31 Oct 2012 11:53:56 +0100 +Subject: [PATCH] dbus-manager: fix a fatal dbus abort in + bus_manager_message_handler() + +If ListUnitFiles fails, or an OOM occurs, then dbus_message_unref() +will be called twice on "reply", causing systemd to crash. So remove +the call to dbus_message_unref(); it is unnecessary because of +the cleanup attribute on "reply". + +[zj: modified to leave one dbus_message_unref() alone, per Colin +Walters' comment.] +--- + src/core/dbus-manager.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c +index 2010241..3cf3e90 100644 +--- a/src/core/dbus-manager.c ++++ b/src/core/dbus-manager.c +@@ -1436,7 +1436,6 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, + r = unit_file_get_list(m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, NULL, h); + if (r < 0) { + unit_file_list_free(h); +- dbus_message_unref(reply); + return bus_send_error_reply(connection, message, NULL, r); + } + +-- +1.7.10.4 + diff --git a/fix-permissions-btmp.patch b/fix-permissions-btmp.patch new file mode 100644 index 00000000..4a7a1122 --- /dev/null +++ b/fix-permissions-btmp.patch @@ -0,0 +1,13 @@ +Index: systemd-44/tmpfiles.d/systemd.conf +=================================================================== +--- systemd-44.orig/tmpfiles.d/systemd.conf ++++ systemd-44/tmpfiles.d/systemd.conf +@@ -11,7 +11,7 @@ d /run/user 0755 root root 10d + F /run/utmp 0664 root utmp - + + f /var/log/wtmp 0664 root utmp - +-f /var/log/btmp 0600 root utmp - ++f /var/log/btmp 0600 root root - + + d /var/cache/man - - - 30d + diff --git a/libgcrypt.m4 b/libgcrypt.m4 new file mode 100644 index 00000000..b0aeccd2 --- /dev/null +++ b/libgcrypt.m4 @@ -0,0 +1,123 @@ +dnl Autoconf macros for libgcrypt +dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc. +dnl +dnl This file is free software; as a special exception the author gives +dnl unlimited permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl +dnl This file is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + +dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, +dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) +dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. +dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed +dnl with the API version to also check the API compatibility. Example: +dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed +dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using +dnl this features allows to prevent build against newer versions of libgcrypt +dnl with a changed API. +dnl +AC_DEFUN([AM_PATH_LIBGCRYPT], +[ AC_ARG_WITH(libgcrypt-prefix, + AC_HELP_STRING([--with-libgcrypt-prefix=PFX], + [prefix where LIBGCRYPT is installed (optional)]), + libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") + if test x$libgcrypt_config_prefix != x ; then + if test x${LIBGCRYPT_CONFIG+set} != xset ; then + LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config + fi + fi + + AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) + tmp=ifelse([$1], ,1:1.2.0,$1) + if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then + req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` + min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` + else + req_libgcrypt_api=0 + min_libgcrypt_version="$tmp" + fi + + AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) + ok=no + if test "$LIBGCRYPT_CONFIG" != "no" ; then + req_major=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` + req_minor=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` + req_micro=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` + libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` + major=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` + minor=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` + micro=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` + if test "$major" -gt "$req_major"; then + ok=yes + else + if test "$major" -eq "$req_major"; then + if test "$minor" -gt "$req_minor"; then + ok=yes + else + if test "$minor" -eq "$req_minor"; then + if test "$micro" -ge "$req_micro"; then + ok=yes + fi + fi + fi + fi + fi + fi + if test $ok = yes; then + AC_MSG_RESULT([yes ($libgcrypt_config_version)]) + else + AC_MSG_RESULT(no) + fi + if test $ok = yes; then + # If we have a recent libgcrypt, we should also check that the + # API is compatible + if test "$req_libgcrypt_api" -gt 0 ; then + tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` + if test "$tmp" -gt 0 ; then + AC_MSG_CHECKING([LIBGCRYPT API version]) + if test "$req_libgcrypt_api" -eq "$tmp" ; then + AC_MSG_RESULT([okay]) + else + ok=no + AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) + fi + fi + fi + fi + if test $ok = yes; then + LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` + LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` + ifelse([$2], , :, [$2]) + if test x"$host" != x ; then + libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` + if test x"$libgcrypt_config_host" != xnone ; then + if test x"$libgcrypt_config_host" != x"$host" ; then + AC_MSG_WARN([[ +*** +*** The config script $LIBGCRYPT_CONFIG was +*** built for $libgcrypt_config_host and thus may not match the +*** used host $host. +*** You may want to use the configure option --with-libgcrypt-prefix +*** to specify a matching config script. +***]]) + fi + fi + fi + else + LIBGCRYPT_CFLAGS="" + LIBGCRYPT_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(LIBGCRYPT_CFLAGS) + AC_SUBST(LIBGCRYPT_LIBS) +]) diff --git a/mount-efivars.patch b/mount-efivars.patch new file mode 100644 index 00000000..e13e52d1 --- /dev/null +++ b/mount-efivars.patch @@ -0,0 +1,336 @@ +From f271dd97622b656c1c013d181ea615c671cc2438 Mon Sep 17 00:00:00 2001 +From: "Lee, Chun-Yi" +Date: Sat, 27 Oct 2012 11:23:22 +0800 +Subject: [PATCH] systemd: mount the EFI variable filesystem +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add efivarfs to the mount_table in mount-setup.c, so the EFI variable +filesystem will be mounted when systemd executed. + +The EFI variable filesystem will merge in v3.7 or v3.8 linux kernel. + +Cc: Kay Sievers +Cc: Lennart Poettering +Cc: Mantas Mikulėnas +Cc: Zbigniew Jędrzejewski-Szmek +Cc: Matt Fleming +Cc: Jeremy Kerr +Cc: Matthew Garrett +Signed-off-by: Lee, Chun-Yi +--- + src/core/kmod-setup.c | 7 ++++--- + src/core/mount-setup.c | 1 + + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c +index cc2a2d9..ce8a8e7 100644 +--- a/src/core/kmod-setup.c ++++ b/src/core/kmod-setup.c +@@ -31,9 +31,10 @@ + #include "kmod-setup.h" + + static const char * const kmod_table[] = { +- "autofs4", "/sys/class/misc/autofs", +- "ipv6", "/sys/module/ipv6", +- "unix", "/proc/net/unix" ++ "autofs4", "/sys/class/misc/autofs", ++ "ipv6", "/sys/module/ipv6", ++ "efivarfs", "/sys/firmware/efi/efivars", ++ "unix", "/proc/net/unix" + }; + + #pragma GCC diagnostic push +diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c +index 0fd112f..9894c7f 100644 +--- a/src/core/mount-setup.c ++++ b/src/core/mount-setup.c +@@ -66,6 +66,7 @@ static const MountPoint mount_table[] = { + { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, + { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true }, + { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, ++ { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, + { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, + { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true }, + { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, +-- +1.7.10.4 + +From c1e5704657315b436c0409e8172c1fcb76adccad Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 4 Nov 2012 16:06:27 +0100 +Subject: [PATCH] shared: add is_efiboot() + +--- + src/shared/util.c | 4 ++++ + src/shared/util.h | 2 ++ + 2 files changed, 6 insertions(+) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 2a8afae..9983695 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -77,6 +77,10 @@ char **saved_argv = NULL; + static volatile unsigned cached_columns = 0; + static volatile unsigned cached_lines = 0; + ++bool is_efiboot(void) { ++ return access("/sys/firmware/efi", F_OK) >= 0; ++} ++ + size_t page_size(void) { + static __thread size_t pgsz = 0; + long r; +diff --git a/src/shared/util.h b/src/shared/util.h +index e387b12..99972cc 100644 +--- a/src/shared/util.h ++++ b/src/shared/util.h +@@ -90,6 +90,8 @@ union dirent_storage { + #define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" + #define ANSI_HIGHLIGHT_OFF "\x1B[0m" + ++bool is_efiboot(void); ++ + usec_t now(clockid_t clock); + + dual_timestamp* dual_timestamp_get(dual_timestamp *ts); +-- +1.7.10.4 + +From 1022373284b7562431fb0a6dba45db8af089a0e3 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 4 Nov 2012 16:54:19 +0100 +Subject: [PATCH] kmod-setup: add conditional module loading callback + +--- + src/core/kmod-setup.c | 32 ++++++++++++++++++++------------ + 1 file changed, 20 insertions(+), 12 deletions(-) + +diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c +index ce8a8e7..383a6b2 100644 +--- a/src/core/kmod-setup.c ++++ b/src/core/kmod-setup.c +@@ -30,11 +30,17 @@ + + #include "kmod-setup.h" + +-static const char * const kmod_table[] = { +- "autofs4", "/sys/class/misc/autofs", +- "ipv6", "/sys/module/ipv6", +- "efivarfs", "/sys/firmware/efi/efivars", +- "unix", "/proc/net/unix" ++typedef struct Kmodule { ++ const char *name; ++ const char *directory; ++ bool (*condition_fn)(void); ++} KModule; ++ ++static const KModule kmod_table[] = { ++ { "autofs4", "/sys/class/misc/autofs", NULL } , ++ { "ipv6", "/sys/module/ipv6", NULL }, ++ { "efivarfs", "/sys/firmware/efi/efivars", NULL }, ++ { "unix", "/proc/net/unix", NULL } , + }; + + #pragma GCC diagnostic push +@@ -42,7 +48,8 @@ static const char * const kmod_table[] = { + static void systemd_kmod_log(void *data, int priority, const char *file, int line, + const char *fn, const char *format, va_list args) + { +- log_metav(priority, file, line, fn, format, args); ++ /* library logging is enabled at debug only */ ++ log_metav(LOG_DEBUG, file, line, fn, format, args); + } + #pragma GCC diagnostic pop + +@@ -53,13 +60,15 @@ int kmod_setup(void) { + int err; + + for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) { ++ if (kmod_table[i].condition_fn && !kmod_table[i].condition_fn()) ++ continue; + +- if (access(kmod_table[i+1], F_OK) >= 0) ++ if (access(kmod_table[i].directory, F_OK) >= 0) + continue; + + log_debug("Your kernel apparently lacks built-in %s support. Might be a good idea to compile it in. " + "We'll now try to work around this by loading the module...", +- kmod_table[i]); ++ kmod_table[i].name); + + if (!ctx) { + ctx = kmod_new(NULL, NULL); +@@ -69,13 +78,12 @@ int kmod_setup(void) { + } + + kmod_set_log_fn(ctx, systemd_kmod_log, NULL); +- + kmod_load_resources(ctx); + } + +- err = kmod_module_new_from_name(ctx, kmod_table[i], &mod); ++ err = kmod_module_new_from_name(ctx, kmod_table[i].name, &mod); + if (err < 0) { +- log_error("Failed to load module '%s'", kmod_table[i]); ++ log_error("Failed to lookup module '%s'", kmod_table[i].name); + continue; + } + +@@ -85,7 +93,7 @@ int kmod_setup(void) { + else if (err == KMOD_PROBE_APPLY_BLACKLIST) + log_info("Module '%s' is blacklisted", kmod_module_get_name(mod)); + else +- log_error("Failed to insert '%s'", kmod_module_get_name(mod)); ++ log_error("Failed to insert module '%s'", kmod_module_get_name(mod)); + + kmod_module_unref(mod); + } +-- +1.7.10.4 + +From 3dfb265083347cb5700dc38f7cc0f479f378e6e9 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 4 Nov 2012 16:55:23 +0100 +Subject: [PATCH] kmod-setup: mounting efivarfs, *after* we tried to mount it, + is pointless + +The mount() system call, which we issue before loading modules, will trigger +a modprobe by the kernel and block until it returns. Trying to load it again +later, will have exactly the same result as the first time. +--- + src/core/kmod-setup.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c +index 383a6b2..20ab232 100644 +--- a/src/core/kmod-setup.c ++++ b/src/core/kmod-setup.c +@@ -39,7 +39,6 @@ typedef struct Kmodule { + static const KModule kmod_table[] = { + { "autofs4", "/sys/class/misc/autofs", NULL } , + { "ipv6", "/sys/module/ipv6", NULL }, +- { "efivarfs", "/sys/firmware/efi/efivars", NULL }, + { "unix", "/proc/net/unix", NULL } , + }; + +-- +1.7.10.4 + +From 6aa220e019f9dffd96590b06b68f937985204109 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 4 Nov 2012 17:03:48 +0100 +Subject: [PATCH] mount-setup: try mounting 'efivarfs' only if the system + bootet with EFI + +--- + TODO | 3 --- + src/core/mount-setup.c | 50 ++++++++++++++++++++++++++++++++---------------- + 2 files changed, 34 insertions(+), 19 deletions(-) + +diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c +index 9894c7f..98614d0 100644 +--- a/src/core/mount-setup.c ++++ b/src/core/mount-setup.c +@@ -46,14 +46,20 @@ + #define TTY_GID 5 + #endif + ++typedef enum MountMode { ++ MNT_NONE = 0, ++ MNT_FATAL = 1 << 0, ++ MNT_IN_CONTAINER = 1 << 1, ++} MountMode; ++ + typedef struct MountPoint { + const char *what; + const char *where; + const char *type; + const char *options; + unsigned long flags; +- bool fatal; +- bool in_container; ++ bool (*condition_fn)(void); ++ MountMode mode; + } MountPoint; + + /* The first three entries we might need before SELinux is up. The +@@ -62,16 +68,26 @@ typedef struct MountPoint { + #define N_EARLY_MOUNT 4 + + static const MountPoint mount_table[] = { +- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, +- { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, +- { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true }, +- { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, +- { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, +- { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, +- { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true }, +- { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, +- { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, false, true }, +- { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, false, true }, ++ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ NULL, MNT_NONE }, ++ { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ is_efiboot, MNT_NONE }, ++ { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, ++ NULL, MNT_IN_CONTAINER }, ++ { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, ++ NULL, MNT_IN_CONTAINER }, ++ { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ NULL, MNT_IN_CONTAINER }, + }; + + /* These are API file systems that might be mounted by other software, +@@ -119,6 +135,9 @@ static int mount_one(const MountPoint *p, bool relabel) { + + assert(p); + ++ if (p->condition_fn && !p->condition_fn()) ++ return 0; ++ + /* Relabel first, just in case */ + if (relabel) + label_fix(p->where, true, true); +@@ -131,7 +150,7 @@ static int mount_one(const MountPoint *p, bool relabel) { + return 0; + + /* Skip securityfs in a container */ +- if (!p->in_container && detect_container(NULL) > 0) ++ if (!(p->mode & MNT_IN_CONTAINER) && detect_container(NULL) > 0) + return 0; + + /* The access mode here doesn't really matter too much, since +@@ -149,8 +168,8 @@ static int mount_one(const MountPoint *p, bool relabel) { + p->type, + p->flags, + p->options) < 0) { +- log_full(p->fatal ? LOG_ERR : LOG_DEBUG, "Failed to mount %s: %s", p->where, strerror(errno)); +- return p->fatal ? -errno : 0; ++ log_full((p->mode & MNT_FATAL) ? LOG_ERR : LOG_DEBUG, "Failed to mount %s: %s", p->where, strerror(errno)); ++ return (p->mode & MNT_FATAL) ? -errno : 0; + } + + /* Relabel again, since we now mounted something fresh here */ +@@ -289,7 +308,6 @@ int mount_cgroup_controllers(char ***join_controllers) { + p.type = "cgroup"; + p.options = options; + p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV; +- p.fatal = false; + + r = mount_one(&p, true); + free(controller); +-- +1.7.10.4 + diff --git a/remount-ro-before-unmount.patch b/remount-ro-before-unmount.patch new file mode 100644 index 00000000..d634afff --- /dev/null +++ b/remount-ro-before-unmount.patch @@ -0,0 +1,95 @@ +From 93bd157722c76b47d80742f290373c1ce2865070 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 Nov 2012 18:36:28 +0100 +Subject: [PATCH] umount: always remount read-only before unmounting in final + shutdown loop + +--- + src/core/umount.c | 57 +++++++++++++++++++++++++---------------------------- + 1 file changed, 27 insertions(+), 30 deletions(-) + +diff --git a/src/core/umount.c b/src/core/umount.c +index 83c9de3..e794057 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -407,6 +407,33 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e + assert(head); + + LIST_FOREACH_SAFE(mount_point, m, n, *head) { ++ ++ /* If we are in a container, don't attempt to ++ read-only mount anything as that brings no real ++ benefits, but might confuse the host, as we remount ++ the superblock here, not the bind mound. */ ++ if (detect_container(NULL) <= 0) { ++ /* We always try to remount directories ++ * read-only first, before we go on and umount ++ * them. ++ * ++ * Mount points can be stacked. If a mount ++ * point is stacked below / or /usr, we ++ * cannnot umount or remount it directly, ++ * since there is no way to refer to the ++ * underlying mount. There's nothing we can do ++ * about it for the general case, but we can ++ * do something about it if it is aliased ++ * somehwere else via a bind mount. If we ++ * explicitly remount the super block of that ++ * alias read-only we hence should be ++ * relatively safe regarding keeping the fs we ++ * can otherwise not see dirty. */ ++ mount(NULL, m->path, NULL, MS_REMOUNT|MS_RDONLY, NULL); ++ } ++ ++ /* Skip / and /usr since we cannot unmount that ++ * anyway, since we are running from it */ + if (path_equal(m->path, "/") + #ifndef HAVE_SPLIT_USR + || path_equal(m->path, "/usr") +@@ -432,29 +459,6 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e + return n_failed; + } + +-static int mount_points_list_remount_read_only(MountPoint **head, bool *changed) { +- MountPoint *m, *n; +- int n_failed = 0; +- +- assert(head); +- +- LIST_FOREACH_SAFE(mount_point, m, n, *head) { +- +- /* Trying to remount read-only */ +- if (mount(NULL, m->path, NULL, MS_REMOUNT|MS_RDONLY, NULL) == 0) { +- if (changed) +- *changed = true; +- +- mount_point_free(head, m); +- } else { +- log_warning("Could not remount as read-only %s: %m", m->path); +- n_failed++; +- } +- } +- +- return n_failed; +-} +- + static int swap_points_list_off(MountPoint **head, bool *changed) { + MountPoint *m, *n; + int n_failed = 0; +@@ -571,13 +575,6 @@ int umount_all(bool *changed) { + if (r <= 0) + goto end; + +- /* If we are in a container, don't attempt to read-only mount +- anything as that brings no real benefits, but might confuse +- the host, as we remount the superblock here, not the bind +- mound. */ +- if (detect_container(NULL) <= 0) +- r = mount_points_list_remount_read_only(&mp_list_head, changed); +- + end: + mount_points_list_free(&mp_list_head); + +-- +1.7.10.4 + diff --git a/switch-root-try-pivot-root.patch b/switch-root-try-pivot-root.patch new file mode 100644 index 00000000..d2347eda --- /dev/null +++ b/switch-root-try-pivot-root.patch @@ -0,0 +1,81 @@ +From 891a4918ef75fa81e22691156c050d061bd53dd3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 Nov 2012 18:15:30 +0100 +Subject: [PATCH] switch-root: try pivot_root() before overmounting / + +We should always try to umount the old root dir if possible, instead of +overmounting it -- if that's possible. + +The initial ("first") kernel rootfs can never be umounted, hence +for the usual nitrd case we never bothered using pivot_root() and +hence with fully unmounting it. However, fedup now tranisitions twice +during boot, and in that case it is highly desirable that the "second" +root dir is entirely unmounted when we switch to the "third". This patch +makes that possible. + +The pivot_root() needs a directory in the "third" root dir, to move the +"second" root dir to. We use /mnt for that, under the assumption that +this directory is likely to exist, and is not itself a mount point. +--- + src/core/switch-root.c | 27 ++++++++++++++++++++++++++- + 1 file changed, 26 insertions(+), 1 deletion(-) + +diff --git a/src/core/switch-root.c b/src/core/switch-root.c +index 150332a..ce0e41d 100644 +--- a/src/core/switch-root.c ++++ b/src/core/switch-root.c +@@ -30,6 +30,7 @@ + #include "util.h" + #include "path-util.h" + #include "switch-root.h" ++#include "missing.h" + + int switch_root(const char *new_root) { + +@@ -44,10 +45,21 @@ int switch_root(const char *new_root) { + struct stat new_root_stat; + bool old_root_remove; + const char *i; ++ _cleanup_free_ char *temporary_old_root = NULL; + + if (path_equal(new_root, "/")) + return 0; + ++ /* When using pivot_root() we assume that /mnt exists as place ++ * we can temporarily move the old root to. As we immediately ++ * unmount it from there it doesn't matter much which ++ * directory we choose for this, but it should be more likely ++ * than not that /mnt exists and is suitable as mount point ++ * and is on the same fs as the old root dir */ ++ temporary_old_root = strappend(new_root, "/mnt"); ++ if (!temporary_old_root) ++ return -ENOMEM; ++ + old_root_remove = in_initrd(); + + if (stat(new_root, &new_root_stat) < 0) { +@@ -103,7 +115,20 @@ int switch_root(const char *new_root) { + log_warning("Failed to open root directory: %m"); + } + +- if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { ++ /* We first try a pivot_root() so that we can umount the old ++ * root dir. In many cases (i.e. where rootfs is /), that's ++ * not possible however, and hence we simply overmount root */ ++ if (pivot_root(new_root, temporary_old_root) >= 0) { ++ ++ /* Immediately get rid of the old root. Since we are ++ * running off it we need to do this lazily. */ ++ if (umount2(temporary_old_root, MNT_DETACH) < 0) { ++ r = -errno; ++ log_error("Failed to umount old root dir %s: %m", temporary_old_root); ++ goto fail; ++ } ++ ++ } else if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { + r = -errno; + log_error("Failed to mount moving %s to /: %m", new_root); + goto fail; +-- +1.7.10.4 + diff --git a/sync-on-shutdown.patch b/sync-on-shutdown.patch new file mode 100644 index 00000000..04537ea9 --- /dev/null +++ b/sync-on-shutdown.patch @@ -0,0 +1,49 @@ +From 0049f05a8bb82c3e084bacc5945596761d706c55 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 Nov 2012 01:30:29 +0100 +Subject: [PATCH] shutdown: readd explicit sync() when shutting down + +As it turns out reboot() doesn't actually imply a file system sync, but +only a disk sync. Accordingly, readd explicit sync() invocations +immediately before we invoke reboot(). + +This is much less dramatic than it might sounds as we umount all +disks/read-only remount them anyway before going down. +--- + src/core/service.c | 1 + + src/core/shutdown.c | 7 +++++++ + 2 files changed, 8 insertions(+) + +diff --git a/src/core/service.c b/src/core/service.c +index cf08485..df72aba 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2485,6 +2485,7 @@ static int service_start_limit_test(Service *s) { + + case SERVICE_START_LIMIT_REBOOT_IMMEDIATE: + log_warning("%s start request repeated too quickly, rebooting immediately.", UNIT(s)->id); ++ sync(); + reboot(RB_AUTOBOOT); + break; + +diff --git a/src/core/shutdown.c b/src/core/shutdown.c +index cc8c57b..b59aef1 100644 +--- a/src/core/shutdown.c ++++ b/src/core/shutdown.c +@@ -273,6 +273,13 @@ int main(int argc, char *argv[]) { + } + } + ++ /* The kernel will automaticall flush ATA disks and suchlike ++ * on reboot(), but the file systems need to be synce'd ++ * explicitly in advance. So let's do this here, but not ++ * needlessly slow down containers. */ ++ if (!in_container) ++ sync(); ++ + if (cmd == LINUX_REBOOT_CMD_KEXEC) { + + if (!in_container) { +-- +1.7.10.4 + diff --git a/systemd-journald.init b/systemd-journald.init new file mode 100644 index 00000000..0b8d5081 --- /dev/null +++ b/systemd-journald.init @@ -0,0 +1,33 @@ +#! /bin/sh +# +# Copyright (c) 2001-2002 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. +# +# /etc/init.d/systemd-journald +# +### BEGIN INIT INFO +# Provides: syslog +# Required-Start: $null +# Required-Stop: $null +# Default-Start: 2 3 5 +# Default-Stop: +# Short-Description: compat wrapper for journald +# Description: compat wrapper for journald +### END INIT INFO + +. /etc/rc.status + +rc_reset + +case "$1" in + start|stop|restart) + rc_failed 3 + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +rc_exit diff --git a/systemd-mini.changes b/systemd-mini.changes index 6ad12c11..48743ca7 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,65 @@ +------------------------------------------------------------------- +Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com + +- Fix creation of /dev/root link. + +------------------------------------------------------------------- +Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com + +- Add remount-ro-before-unmount.patch: always remount read-only + before unmounting in final shutdown loop. +- Add switch-root-try-pivot-root.patch: try pivot_root before + overmounting / + +------------------------------------------------------------------- +Tue Nov 20 09:36:43 UTC 2012 - fcrozat@suse.com + +- links more manpages for migrated tools (from Christopher + Yeleighton). +- disable boot.localnet service, ypbind service will do the right + thing now (bnc#716746) +- add xdm-display-manager.patch: pull xdm.service instead of + display-manager.service (needed until xdm initscript is migrated + to native systemd service). +- Add fix-permissions-btmp.patch: ensure btmp is owned only by root + (bnc#777405). +- Have the udev package create a tape group, as referenced by + 50-udev-default.rules and 60-persistent-storage-tape.rules + (DimStar). +- Add fix-bad-memory-access.patch: fix crash in journal rotation. +- Add fix-dbus-crash.patch: fix D-Bus caused crash. +- Add sync-on-shutdown.patch: ensure sync is done when initiating + shutdown. +- Add mount-efivars.patch: mount efivars if booting on UEFI. + + +------------------------------------------------------------------- +Thu Nov 15 14:31:28 UTC 2012 - fcrozat@suse.com + +- Ship a empty systemd-journald initscript in systemd-logger to + stop insserv to complain about missing syslog dependency. +- Update + 0001-service-Fix-dependencies-added-when-parsing-insserv..patch + with bug fixes from Debian. + +------------------------------------------------------------------- +Wed Nov 14 17:36:05 UTC 2012 - fcrozat@suse.com + +- /var/log/journal is now only provided by systemd-logger (journal + won't be persistent for people using another syslog + implementation). +- install README in /var/log (in systemd-logger) and /etc/init.d +- create adm group when installing systemd. +- fix path in udev-root-symlink.systemd. +- Enforce Requires(post) dependency on libudev in main systemd + package (help upgrade). +- Ensure configuration is reloaded when upgrading and save random + seed when installing. +- Create /lib/udev symlink, if we do a fresh install. +- Add fix-build-glibc217.patch: fix build with latest glibc. +- Add libgcrypt.m4: copy of autoconf macro from libgcrypt, only + used to bootstrap systemd-mini. + ------------------------------------------------------------------- Tue Nov 6 14:40:37 UTC 2012 - coolo@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 99f43196..6a408acd 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -86,6 +86,7 @@ Requires: %{udevpkgname} >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: pam-config >= 0.79-5 +Requires: pwdutils Requires: systemd-presets-branding Requires: util-linux >= 2.21 Requires(post): coreutils @@ -100,6 +101,8 @@ Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf Source6: baselibs.conf +Source7: libgcrypt.m4 +Source8: systemd-journald.init Source1060: boot.udev Source1061: write_dev_root_rule @@ -126,6 +129,8 @@ Patch53: fastboot-forcefsck.patch Patch56: support-suse-clock-sysconfig.patch Patch59: fix-enable-disable-boot-initscript.patch Patch60: var-run-lock.patch +Patch63: xdm-display-manager.patch +Patch64: fix-permissions-btmp.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -133,6 +138,20 @@ Patch60: var-run-lock.patch # an exception will be silently removed with the next version update. # PATCH-FIX-UPSTREAM fix-logind-pty-seat.patch fcrozat@suse.com -- fix logind complaining when doing su/sudo in X terminal Patch61: fix-logind-pty-seat.patch +# PATCH-FIX-UPSTREAM fix-build-glibc217.patch fcrozat@suse.com -- fix build with latest glibc +Patch62: fix-build-glibc217.patch +# PATCH-FIX-UPSTREAM fix-bad-memory-access.patch fcrozat@suse.com -- fix bad memory access +Patch65: fix-bad-memory-access.patch +# PATCH-FIX-UPSTREAM fix-dbus-crash.patch fcrozat@suse.com -- fix D-Bus caused crash +Patch66: fix-dbus-crash.patch +# PATCH-FIX-UPSTREAM sync-on-shutdown.patch fcrozat@suse.com -- Sync on shutdown +Patch67: sync-on-shutdown.patch +# PATCH-FIX-UPSTREAM mount-efivars.patch fcrozat@suse.com -- mount efivars if booting under UEFI +Patch68: mount-efivars.patch +# PATCH-FIX-UPSTREAM switch-root-try-pivot-root.patch fcrozat@suse.com -- try pivot_root before overmounting / +Patch69: switch-root-try-pivot-root.patch +# PATCH-FIX-UPSTREAM remount-ro-before-unmount.patch fcrozat@suse.com -- remount ro before unmounting in final shutdown loop +Patch70: remount-ro-before-unmount.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -147,8 +166,6 @@ Patch1026: 0026-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch Patch1027: 0027-udev-fix-sg-autoload-regression.patch -# systemd patches - %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization @@ -204,6 +221,7 @@ License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd +Requires(post): lib%{udevpkgname}%{udev_major} Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 Conflicts: filesystem < 11.5 @@ -296,6 +314,11 @@ This package marks the installation to not use syslog but only the journal. %prep %setup -q -n systemd-%{version} +# only needed for bootstrap +%if 0%{?bootstrap} +cp %{SOURCE7} m4/ +%endif + #udev %patch1001 -p1 %patch1013 -p1 @@ -303,6 +326,7 @@ This package marks the installation to not use syslog but only the journal. %patch1026 -p1 %patch1027 -p1 +#systemd %patch1 -p1 %patch6 -p1 # don't apply when bootstrapping to not modify configure.in @@ -326,11 +350,18 @@ This package marks the installation to not use syslog but only the journal. %patch59 -p1 %patch60 -p1 %patch61 -p1 +%patch62 -p1 +%patch63 -p1 +%patch64 -p1 +%patch65 -p1 +%patch66 -p1 +%patch67 -p1 +%patch68 -p1 +%patch69 -p1 +%patch70 -p1 %build -%if ! 0%{?bootstrap} autoreconf -fiv -%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' \; export V=1 @@ -359,21 +390,24 @@ ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +%if ! 0%{?bootstrap} +ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 +%endif mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware +%if ! 0%{?bootstrap} +install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +%endif install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service +sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -#fix manpages -%if ! 0%{?bootstrap} -sed -i -e 's,^\(\.so \)\(.*\.\)\([0-9]\),\1man\3/\2\3,g' %{buildroot}/%{_mandir}/*/* -%endif - #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm @@ -383,7 +417,7 @@ mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrate install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future -#install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators +#install -m755 %{S:5} %{buildroot}/usr/lib/systemd/system-generators ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot @@ -406,8 +440,7 @@ ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service -# need to be implemented in systemd directly -#ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service @@ -426,12 +459,19 @@ rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount # journal. rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf -# remove README files for now -rm -f %{buildroot}/var/log/README %{buildroot}/etc/init.d/README +# remove README file for now +rm -f %{buildroot}/etc/init.d/README +%if 0%{?bootstrap} +rm -f %{buildroot}/var/log/README +%endif # legacy links -ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl -ln -s journalctl %{buildroot}%{_bindir}/systemd-journalctl +for f in loginctl journalctl ; do + ln -s $f %{buildroot}%{_bindir}/systemd-$f +%if ! 0%{?bootstrap} + ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 +%endif +done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one @@ -451,10 +491,15 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants %fdupes -s %{buildroot}%{_mandir} +%pre +getent group adm >/dev/null || groupadd -r adm +exit 0 + %post /usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : /sbin/ldconfig /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : +/usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists @@ -485,6 +530,7 @@ fi %postun /sbin/ldconfig if [ $1 -ge 1 ]; then + /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi if [ $1 -eq 0 ]; then @@ -511,7 +557,11 @@ if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then rm /usr/lib/udev mv /lib/udev /usr/lib ln -s /usr/lib/udev /lib/udev +elif [ ! -e /lib/udev ]; then + ln -s /usr/lib/udev /lib/udev fi +# Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules +/usr/sbin/groupadd -r tape 2> /dev/null || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then @@ -540,24 +590,28 @@ if test -f /proc/1/exe -a -d /proc/1/root; then fi fi -[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup -if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" -elif [ -x /sbin/mkinitrd ]; then - /sbin/mkinitrd +if [ "${YAST_IS_RUNNING}" != "instsys" ]; then + if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + elif [ -x /sbin/mkinitrd ]; then + [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup + /sbin/mkinitrd || : + fi fi %postun -n %{udevpkgname} %insserv_cleanup systemctl daemon-reload >/dev/null 2>&1 || : -[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup -if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" -elif [ -x /sbin/mkinitrd ]; then - /sbin/mkinitrd +if [ "${YAST_IS_RUNNING}" != "instsys" ]; then + if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + elif [ -x /sbin/mkinitrd ]; then + [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup + /sbin/mkinitrd || : + fi fi %post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig @@ -572,7 +626,7 @@ fi %endif %clean -rm -rf %{buildroot} +# rm -rf %{buildroot} %files %defattr(-,root,root) @@ -704,6 +758,10 @@ rm -rf %{buildroot} %exclude %{_mandir}/man8/telinit.8* %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* + +# Packaged in analyze subpackage +%exclude %{_mandir}/man1/systemd-analyze.1* + %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -727,7 +785,6 @@ rm -rf %{buildroot} %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated -%dir /var/log/journal %files devel %defattr(-,root,root,-) @@ -768,7 +825,11 @@ rm -rf %{buildroot} %endif %files analyze +%defattr(-,root,root) %attr(0755,root,root) /usr/bin/systemd-analyze +%if ! 0%{?bootstrap} +%{_mandir}/man1/systemd-analyze.1* +%endif %files -n %{udevpkgname} %defattr(-,root,root) @@ -858,6 +919,8 @@ rm -rf %{buildroot} %files logger %defattr(-,root,root) %dir /var/log/journal +/var/log/README +/etc/init.d/systemd-journald %endif diff --git a/systemd.changes b/systemd.changes index 6ad12c11..48743ca7 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,65 @@ +------------------------------------------------------------------- +Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com + +- Fix creation of /dev/root link. + +------------------------------------------------------------------- +Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com + +- Add remount-ro-before-unmount.patch: always remount read-only + before unmounting in final shutdown loop. +- Add switch-root-try-pivot-root.patch: try pivot_root before + overmounting / + +------------------------------------------------------------------- +Tue Nov 20 09:36:43 UTC 2012 - fcrozat@suse.com + +- links more manpages for migrated tools (from Christopher + Yeleighton). +- disable boot.localnet service, ypbind service will do the right + thing now (bnc#716746) +- add xdm-display-manager.patch: pull xdm.service instead of + display-manager.service (needed until xdm initscript is migrated + to native systemd service). +- Add fix-permissions-btmp.patch: ensure btmp is owned only by root + (bnc#777405). +- Have the udev package create a tape group, as referenced by + 50-udev-default.rules and 60-persistent-storage-tape.rules + (DimStar). +- Add fix-bad-memory-access.patch: fix crash in journal rotation. +- Add fix-dbus-crash.patch: fix D-Bus caused crash. +- Add sync-on-shutdown.patch: ensure sync is done when initiating + shutdown. +- Add mount-efivars.patch: mount efivars if booting on UEFI. + + +------------------------------------------------------------------- +Thu Nov 15 14:31:28 UTC 2012 - fcrozat@suse.com + +- Ship a empty systemd-journald initscript in systemd-logger to + stop insserv to complain about missing syslog dependency. +- Update + 0001-service-Fix-dependencies-added-when-parsing-insserv..patch + with bug fixes from Debian. + +------------------------------------------------------------------- +Wed Nov 14 17:36:05 UTC 2012 - fcrozat@suse.com + +- /var/log/journal is now only provided by systemd-logger (journal + won't be persistent for people using another syslog + implementation). +- install README in /var/log (in systemd-logger) and /etc/init.d +- create adm group when installing systemd. +- fix path in udev-root-symlink.systemd. +- Enforce Requires(post) dependency on libudev in main systemd + package (help upgrade). +- Ensure configuration is reloaded when upgrading and save random + seed when installing. +- Create /lib/udev symlink, if we do a fresh install. +- Add fix-build-glibc217.patch: fix build with latest glibc. +- Add libgcrypt.m4: copy of autoconf macro from libgcrypt, only + used to bootstrap systemd-mini. + ------------------------------------------------------------------- Tue Nov 6 14:40:37 UTC 2012 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index abcc5caf..6a6325bb 100644 --- a/systemd.spec +++ b/systemd.spec @@ -81,6 +81,7 @@ Requires: %{udevpkgname} >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: pam-config >= 0.79-5 +Requires: pwdutils Requires: systemd-presets-branding Requires: util-linux >= 2.21 Requires(post): coreutils @@ -95,6 +96,8 @@ Source3: systemd-sysv-convert Source4: macros.systemd Source5: systemd-insserv_conf Source6: baselibs.conf +Source7: libgcrypt.m4 +Source8: systemd-journald.init Source1060: boot.udev Source1061: write_dev_root_rule @@ -121,6 +124,8 @@ Patch53: fastboot-forcefsck.patch Patch56: support-suse-clock-sysconfig.patch Patch59: fix-enable-disable-boot-initscript.patch Patch60: var-run-lock.patch +Patch63: xdm-display-manager.patch +Patch64: fix-permissions-btmp.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -128,6 +133,20 @@ Patch60: var-run-lock.patch # an exception will be silently removed with the next version update. # PATCH-FIX-UPSTREAM fix-logind-pty-seat.patch fcrozat@suse.com -- fix logind complaining when doing su/sudo in X terminal Patch61: fix-logind-pty-seat.patch +# PATCH-FIX-UPSTREAM fix-build-glibc217.patch fcrozat@suse.com -- fix build with latest glibc +Patch62: fix-build-glibc217.patch +# PATCH-FIX-UPSTREAM fix-bad-memory-access.patch fcrozat@suse.com -- fix bad memory access +Patch65: fix-bad-memory-access.patch +# PATCH-FIX-UPSTREAM fix-dbus-crash.patch fcrozat@suse.com -- fix D-Bus caused crash +Patch66: fix-dbus-crash.patch +# PATCH-FIX-UPSTREAM sync-on-shutdown.patch fcrozat@suse.com -- Sync on shutdown +Patch67: sync-on-shutdown.patch +# PATCH-FIX-UPSTREAM mount-efivars.patch fcrozat@suse.com -- mount efivars if booting under UEFI +Patch68: mount-efivars.patch +# PATCH-FIX-UPSTREAM switch-root-try-pivot-root.patch fcrozat@suse.com -- try pivot_root before overmounting / +Patch69: switch-root-try-pivot-root.patch +# PATCH-FIX-UPSTREAM remount-ro-before-unmount.patch fcrozat@suse.com -- remount ro before unmounting in final shutdown loop +Patch70: remount-ro-before-unmount.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -142,8 +161,6 @@ Patch1026: 0026-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch Patch1027: 0027-udev-fix-sg-autoload-regression.patch -# systemd patches - %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization @@ -199,6 +216,7 @@ License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd +Requires(post): lib%{udevpkgname}%{udev_major} Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 Conflicts: filesystem < 11.5 @@ -291,6 +309,11 @@ This package marks the installation to not use syslog but only the journal. %prep %setup -q -n systemd-%{version} +# only needed for bootstrap +%if 0%{?bootstrap} +cp %{SOURCE7} m4/ +%endif + #udev %patch1001 -p1 %patch1013 -p1 @@ -298,6 +321,7 @@ This package marks the installation to not use syslog but only the journal. %patch1026 -p1 %patch1027 -p1 +#systemd %patch1 -p1 %patch6 -p1 # don't apply when bootstrapping to not modify configure.in @@ -321,11 +345,18 @@ This package marks the installation to not use syslog but only the journal. %patch59 -p1 %patch60 -p1 %patch61 -p1 +%patch62 -p1 +%patch63 -p1 +%patch64 -p1 +%patch65 -p1 +%patch66 -p1 +%patch67 -p1 +%patch68 -p1 +%patch69 -p1 +%patch70 -p1 %build -%if ! 0%{?bootstrap} autoreconf -fiv -%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' \; export V=1 @@ -354,21 +385,24 @@ ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +%if ! 0%{?bootstrap} +ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 +%endif mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware +%if ! 0%{?bootstrap} +install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +%endif install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service +sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -#fix manpages -%if ! 0%{?bootstrap} -sed -i -e 's,^\(\.so \)\(.*\.\)\([0-9]\),\1man\3/\2\3,g' %{buildroot}/%{_mandir}/*/* -%endif - #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm @@ -378,7 +412,7 @@ mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrate install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert # do not install, code has been fixed, might be useful in the future -#install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators +#install -m755 %{S:5} %{buildroot}/usr/lib/systemd/system-generators ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot @@ -401,8 +435,7 @@ ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service -# need to be implemented in systemd directly -#ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service @@ -421,12 +454,19 @@ rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount # journal. rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf -# remove README files for now -rm -f %{buildroot}/var/log/README %{buildroot}/etc/init.d/README +# remove README file for now +rm -f %{buildroot}/etc/init.d/README +%if 0%{?bootstrap} +rm -f %{buildroot}/var/log/README +%endif # legacy links -ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl -ln -s journalctl %{buildroot}%{_bindir}/systemd-journalctl +for f in loginctl journalctl ; do + ln -s $f %{buildroot}%{_bindir}/systemd-$f +%if ! 0%{?bootstrap} + ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 +%endif +done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one @@ -446,10 +486,15 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants %fdupes -s %{buildroot}%{_mandir} +%pre +getent group adm >/dev/null || groupadd -r adm +exit 0 + %post /usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : /sbin/ldconfig /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : +/usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists @@ -480,6 +525,7 @@ fi %postun /sbin/ldconfig if [ $1 -ge 1 ]; then + /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi if [ $1 -eq 0 ]; then @@ -506,7 +552,11 @@ if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then rm /usr/lib/udev mv /lib/udev /usr/lib ln -s /usr/lib/udev /lib/udev +elif [ ! -e /lib/udev ]; then + ln -s /usr/lib/udev /lib/udev fi +# Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules +/usr/sbin/groupadd -r tape 2> /dev/null || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then @@ -535,24 +585,28 @@ if test -f /proc/1/exe -a -d /proc/1/root; then fi fi -[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup -if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" -elif [ -x /sbin/mkinitrd ]; then - /sbin/mkinitrd +if [ "${YAST_IS_RUNNING}" != "instsys" ]; then + if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + elif [ -x /sbin/mkinitrd ]; then + [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup + /sbin/mkinitrd || : + fi fi %postun -n %{udevpkgname} %insserv_cleanup systemctl daemon-reload >/dev/null 2>&1 || : -[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup -if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then - echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" -elif [ -x /sbin/mkinitrd ]; then - /sbin/mkinitrd +if [ "${YAST_IS_RUNNING}" != "instsys" ]; then + if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + echo "Skipping recreation of existing initial ramdisks, due" + echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + elif [ -x /sbin/mkinitrd ]; then + [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup + /sbin/mkinitrd || : + fi fi %post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig @@ -567,7 +621,7 @@ fi %endif %clean -rm -rf %{buildroot} +# rm -rf %{buildroot} %files %defattr(-,root,root) @@ -699,6 +753,10 @@ rm -rf %{buildroot} %exclude %{_mandir}/man8/telinit.8* %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* + +# Packaged in analyze subpackage +%exclude %{_mandir}/man1/systemd-analyze.1* + %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -722,7 +780,6 @@ rm -rf %{buildroot} %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated -%dir /var/log/journal %files devel %defattr(-,root,root,-) @@ -763,7 +820,11 @@ rm -rf %{buildroot} %endif %files analyze +%defattr(-,root,root) %attr(0755,root,root) /usr/bin/systemd-analyze +%if ! 0%{?bootstrap} +%{_mandir}/man1/systemd-analyze.1* +%endif %files -n %{udevpkgname} %defattr(-,root,root) @@ -853,6 +914,8 @@ rm -rf %{buildroot} %files logger %defattr(-,root,root) %dir /var/log/journal +/var/log/README +/etc/init.d/systemd-journald %endif diff --git a/udev-root-symlink.systemd b/udev-root-symlink.systemd index 145a7fcc..b92d081a 100644 --- a/udev-root-symlink.systemd +++ b/udev-root-symlink.systemd @@ -6,4 +6,4 @@ DefaultDependencies=no [Service] Type=oneshot RemainAfterExit=yes -ExecStart=/lib/udev/write_dev_root_rule +ExecStart=@@PREFIX@@/write_dev_root_rule diff --git a/write_dev_root_rule b/write_dev_root_rule index 9555789b..5011aa3f 100644 --- a/write_dev_root_rule +++ b/write_dev_root_rule @@ -1,6 +1,6 @@ #!/bin/sh -eval $(/sbin/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/) +eval $(@@PREFIX@@/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/) [ "$ROOT_MAJOR" -gt 0 ] || return mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1 diff --git a/xdm-display-manager.patch b/xdm-display-manager.patch new file mode 100644 index 00000000..e7e1c191 --- /dev/null +++ b/xdm-display-manager.patch @@ -0,0 +1,13 @@ +Index: systemd-195/units/graphical.target +=================================================================== +--- systemd-195.orig/units/graphical.target ++++ systemd-195/units/graphical.target +@@ -11,7 +11,7 @@ Documentation=man:systemd.special(7) + Requires=multi-user.target + After=multi-user.target + Conflicts=rescue.target +-Wants=display-manager.service ++Wants=xdm.service + AllowIsolate=yes + + [Install] From 1a1dacce06ac0b742cd2703d1523dbbe229fd0c602c9e5a7bf95ff6a6904cc4d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 10 Dec 2012 13:28:39 +0000 Subject: [PATCH 113/221] Accepting request 144473 from Base:System (forwarded request 144458 from elvigia) OBS-URL: https://build.opensuse.org/request/show/144473 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=116 --- fix-debugshell.patch | 13 +++++ fix-devname-prefix.patch | 13 +++++ handle-root-uses-lang.patch | 48 +++++++++++++++++++ ...749b84cc87c7830280b7895a48bed03c9429.patch | 44 +++++++++++++++++ systemd-mini.changes | 23 +++++++++ systemd-mini.spec | 21 ++++++-- systemd.changes | 23 +++++++++ systemd.spec | 21 ++++++-- 8 files changed, 200 insertions(+), 6 deletions(-) create mode 100644 fix-debugshell.patch create mode 100644 fix-devname-prefix.patch create mode 100644 handle-root-uses-lang.patch create mode 100644 revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch diff --git a/fix-debugshell.patch b/fix-debugshell.patch new file mode 100644 index 00000000..5a1e8405 --- /dev/null +++ b/fix-debugshell.patch @@ -0,0 +1,13 @@ +Index: systemd-195/units/debug-shell.service.in +=================================================================== +--- systemd-195.orig/units/debug-shell.service.in ++++ systemd-195/units/debug-shell.service.in +@@ -13,7 +13,7 @@ IgnoreOnIsolate=yes + + [Service] + Environment=TERM=linux +-ExecStart=@sushell@ ++ExecStart=/bin/bash -c '[ -x @sushell@ ] && exec @sushell@ || exec /bin/bash' + Restart=always + RestartSec=0 + StandardInput=tty diff --git a/fix-devname-prefix.patch b/fix-devname-prefix.patch new file mode 100644 index 00000000..7fbc160a --- /dev/null +++ b/fix-devname-prefix.patch @@ -0,0 +1,13 @@ +Index: systemd-195/src/udev/udevd.c +=================================================================== +--- systemd-195.orig/src/udev/udevd.c ++++ systemd-195/src/udev/udevd.c +@@ -820,7 +820,7 @@ static void static_dev_create_from_modul + FILE *f; + + uname(&kernel); +- util_strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); ++ util_strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL); + f = fopen(modules, "re"); + if (f == NULL) + return; diff --git a/handle-root-uses-lang.patch b/handle-root-uses-lang.patch new file mode 100644 index 00000000..21af5038 --- /dev/null +++ b/handle-root-uses-lang.patch @@ -0,0 +1,48 @@ +Index: systemd-195/src/core/locale-setup.c +=================================================================== +--- systemd-195.orig/src/core/locale-setup.c ++++ systemd-195/src/core/locale-setup.c +@@ -69,6 +69,11 @@ static const char * const variable_names + int locale_setup(void) { + char *variables[_VARIABLE_MAX]; + int r = 0, i; ++#if defined(TARGET_SUSE) ++ char *root_uses_lang; ++ ++ zero(root_uses_lang); ++#endif + + zero(variables); + +@@ -134,11 +139,21 @@ int locale_setup(void) { + #elif defined(TARGET_SUSE) + if (r <= 0 && + (r = parse_env_file("/etc/sysconfig/language", NEWLINE, ++ "ROOT_USES_LANG", &root_uses_lang, + "RC_LANG", &variables[VARIABLE_LANG], + NULL)) < 0) { + + if (r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); ++ } else { ++ if (!root_uses_lang || root_uses_lang && strcasecmp(root_uses_lang,"yes") != 0) { ++ if (root_uses_lang && strcasecmp(root_uses_lang,"ctype") == 0) ++ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; ++ else ++ free(variables[VARIABLE_LANG]); ++ ++ variables[VARIABLE_LANG]=strdup("POSIX"); ++ } + } + + #elif defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) +@@ -247,5 +262,9 @@ finish: + for (i = 0; i < _VARIABLE_MAX; i++) + free(variables[i]); + ++#if defined(TARGET_SUSE) ++ free(root_uses_lang); ++#endif ++ + return r; + } diff --git a/revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch b/revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch new file mode 100644 index 00000000..8d9d574c --- /dev/null +++ b/revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch @@ -0,0 +1,44 @@ +commit 140883405e429d9f8d3480a2701d8904f97e4a98 +Author: Tom Gundersen +Date: Wed Nov 28 18:08:54 2012 +0100 + + shutdown: don't consider umounting of / and /usr failed + + In the words of Homer: If you don't try, you can't fail. + + This is a revert of 9279749b84cc87c7830280b7895a48bed03c9429. + + It used to be necessary to consider the umounting failed to make sure / + and /usr were remounted read-only, but that is no longer necessary as + everything is now remounted read-only anyway. + + Moreover, this avoids a warning at shutdown saying a filesystem was not + unmounted. As the umounting of / is never attempted there was no + corresponding warning message saying which fs that failed. This caused some + spurious bug-reports from concerned users. + + Cc: Michael Biebl + +diff --git a/src/core/umount.c b/src/core/umount.c +index e794057..5989a4c 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -433,15 +433,14 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e + } + + /* Skip / and /usr since we cannot unmount that +- * anyway, since we are running from it */ ++ * anyway, since we are running from it. They have already been ++ * remounte ro. */ + if (path_equal(m->path, "/") + #ifndef HAVE_SPLIT_USR + || path_equal(m->path, "/usr") + #endif +- ) { +- n_failed++; ++ ) + continue; +- } + + /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */ + if (umount2(m->path, MNT_FORCE) == 0) { diff --git a/systemd-mini.changes b/systemd-mini.changes index 48743ca7..1b6d3a2c 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu Dec 6 22:47:09 UTC 2012 - crrodriguez@opensuse.org + +- revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch: + do not consider failure to umount / and /usr an error. + +------------------------------------------------------------------- +Wed Dec 5 15:13:27 UTC 2012 - fcrozat@suse.com + +- Add fix-devname-prefix.patch: fix modules.devname path, it isn't + in /usr. +- Move post script to fix symlinks in /etc/systemd/system to a + trigger to run it after old systemd is uninstalled. + +------------------------------------------------------------------- +Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com + +- Add fix-debugshell.patch: use /bin/bash if sushell isn't + installed (bnc#789052). +- Add handle-root-uses-lang.patch: handle ROOT_USES_LANG=ctype + (bnc#792182). +- Ensure libudev1 and libudev-mini1 conflicts. + ------------------------------------------------------------------- Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 6a408acd..c4033294 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -131,6 +131,10 @@ Patch59: fix-enable-disable-boot-initscript.patch Patch60: var-run-lock.patch Patch63: xdm-display-manager.patch Patch64: fix-permissions-btmp.patch +# PATCH-FIX-UPSTREAM fix-debugshell.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available +Patch71: fix-debugshell.patch +# PATCH-FIX-OPENSUSE handle-root-uses-lang.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype +Patch72: handle-root-uses-lang.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -152,6 +156,8 @@ Patch68: mount-efivars.patch Patch69: switch-root-try-pivot-root.patch # PATCH-FIX-UPSTREAM remount-ro-before-unmount.patch fcrozat@suse.com -- remount ro before unmounting in final shutdown loop Patch70: remount-ro-before-unmount.patch +# PATCH-FIX-UPSTREAM revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch crrodriguez@opensuse.org -- do not consider failure to umount / and /usr an error. +Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -165,6 +171,8 @@ Patch1014: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1026: 0026-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch Patch1027: 0027-udev-fix-sg-autoload-regression.patch +# PATCH-FIX-OPENSUSE fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr +Patch1028: fix-devname-prefix.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -247,6 +255,9 @@ Summary: Dynamic library to access udev device information License: LGPL-2.1+ Group: System/Libraries Requires: %{udevpkgname} >= %{version}-%{release} +%if 0%{?bootstrap} +Conflicts: libudev%{udev_major} +%endif %description -n lib%{udevpkgname}%{udev_major} This package contains the dynamic library libudev, which provides @@ -325,6 +336,7 @@ cp %{SOURCE7} m4/ %patch1014 -p1 %patch1026 -p1 %patch1027 -p1 +%patch1028 -p1 #systemd %patch1 -p1 @@ -359,6 +371,9 @@ cp %{SOURCE7} m4/ %patch68 -p1 %patch69 -p1 %patch70 -p1 +%patch71 -p1 +%patch72 -p1 +%patch73 -p1 %build autoreconf -fiv @@ -518,15 +533,15 @@ if [ "$1" -eq 1 ]; then systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : -else +fi + +%triggerpostun -- systemd < 194 # migrate any symlink which may refer to the old path for f in $(find /etc/systemd/system -type l -xtype l); do new_target="/usr$(readlink $f)" [ -f "$new_target" ] && ln -s -f $new_target $f || : done -fi - %postun /sbin/ldconfig if [ $1 -ge 1 ]; then diff --git a/systemd.changes b/systemd.changes index 48743ca7..1b6d3a2c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu Dec 6 22:47:09 UTC 2012 - crrodriguez@opensuse.org + +- revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch: + do not consider failure to umount / and /usr an error. + +------------------------------------------------------------------- +Wed Dec 5 15:13:27 UTC 2012 - fcrozat@suse.com + +- Add fix-devname-prefix.patch: fix modules.devname path, it isn't + in /usr. +- Move post script to fix symlinks in /etc/systemd/system to a + trigger to run it after old systemd is uninstalled. + +------------------------------------------------------------------- +Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com + +- Add fix-debugshell.patch: use /bin/bash if sushell isn't + installed (bnc#789052). +- Add handle-root-uses-lang.patch: handle ROOT_USES_LANG=ctype + (bnc#792182). +- Ensure libudev1 and libudev-mini1 conflicts. + ------------------------------------------------------------------- Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 6a6325bb..8cf0b455 100644 --- a/systemd.spec +++ b/systemd.spec @@ -126,6 +126,10 @@ Patch59: fix-enable-disable-boot-initscript.patch Patch60: var-run-lock.patch Patch63: xdm-display-manager.patch Patch64: fix-permissions-btmp.patch +# PATCH-FIX-UPSTREAM fix-debugshell.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available +Patch71: fix-debugshell.patch +# PATCH-FIX-OPENSUSE handle-root-uses-lang.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype +Patch72: handle-root-uses-lang.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -147,6 +151,8 @@ Patch68: mount-efivars.patch Patch69: switch-root-try-pivot-root.patch # PATCH-FIX-UPSTREAM remount-ro-before-unmount.patch fcrozat@suse.com -- remount ro before unmounting in final shutdown loop Patch70: remount-ro-before-unmount.patch +# PATCH-FIX-UPSTREAM revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch crrodriguez@opensuse.org -- do not consider failure to umount / and /usr an error. +Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -160,6 +166,8 @@ Patch1014: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1026: 0026-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch Patch1027: 0027-udev-fix-sg-autoload-regression.patch +# PATCH-FIX-OPENSUSE fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr +Patch1028: fix-devname-prefix.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -242,6 +250,9 @@ Summary: Dynamic library to access udev device information License: LGPL-2.1+ Group: System/Libraries Requires: %{udevpkgname} >= %{version}-%{release} +%if 0%{?bootstrap} +Conflicts: libudev%{udev_major} +%endif %description -n lib%{udevpkgname}%{udev_major} This package contains the dynamic library libudev, which provides @@ -320,6 +331,7 @@ cp %{SOURCE7} m4/ %patch1014 -p1 %patch1026 -p1 %patch1027 -p1 +%patch1028 -p1 #systemd %patch1 -p1 @@ -354,6 +366,9 @@ cp %{SOURCE7} m4/ %patch68 -p1 %patch69 -p1 %patch70 -p1 +%patch71 -p1 +%patch72 -p1 +%patch73 -p1 %build autoreconf -fiv @@ -513,15 +528,15 @@ if [ "$1" -eq 1 ]; then systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : -else +fi + +%triggerpostun -- systemd < 194 # migrate any symlink which may refer to the old path for f in $(find /etc/systemd/system -type l -xtype l); do new_target="/usr$(readlink $f)" [ -f "$new_target" ] && ln -s -f $new_target $f || : done -fi - %postun /sbin/ldconfig if [ $1 -ge 1 ]; then From b9a25b255fe30d414c9367f6fee7e395af287b9568a3fd35bc85dedbf52a0cb1 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 10 Dec 2012 16:22:08 +0000 Subject: [PATCH 114/221] Accepting request 144997 from Base:System - add conflicts between udev-mini and udev-mini-devel to libudev1 - add conflicts between udev-mini and udev-mini-devel to libudev1 OBS-URL: https://build.opensuse.org/request/show/144997 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=117 --- systemd-mini.changes | 5 +++++ systemd-mini.spec | 2 ++ systemd.changes | 5 +++++ systemd.spec | 2 ++ 4 files changed, 14 insertions(+) diff --git a/systemd-mini.changes b/systemd-mini.changes index 1b6d3a2c..036dd8c0 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com + +- add conflicts between udev-mini and udev-mini-devel to libudev1 + ------------------------------------------------------------------- Thu Dec 6 22:47:09 UTC 2012 - crrodriguez@opensuse.org diff --git a/systemd-mini.spec b/systemd-mini.spec index c4033294..810469bf 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -239,6 +239,7 @@ Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %{version} +Conflicts: libudev%{udev_major} = %{version} %endif %description -n %{udevpkgname} @@ -270,6 +271,7 @@ Group: Development/Libraries/Other Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version} +Conflicts: libudev%{udev_major} = %{version} %endif %description -n lib%{udevpkgname}-devel diff --git a/systemd.changes b/systemd.changes index 1b6d3a2c..036dd8c0 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com + +- add conflicts between udev-mini and udev-mini-devel to libudev1 + ------------------------------------------------------------------- Thu Dec 6 22:47:09 UTC 2012 - crrodriguez@opensuse.org diff --git a/systemd.spec b/systemd.spec index 8cf0b455..4ab279c3 100644 --- a/systemd.spec +++ b/systemd.spec @@ -234,6 +234,7 @@ Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %{version} +Conflicts: libudev%{udev_major} = %{version} %endif %description -n %{udevpkgname} @@ -265,6 +266,7 @@ Group: Development/Libraries/Other Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version} +Conflicts: libudev%{udev_major} = %{version} %endif %description -n lib%{udevpkgname}-devel From 963624c00db90d99088669ecb8a5c29d89ead95298a937452c231fb4bb5b2fd1 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 17 Dec 2012 08:39:59 +0000 Subject: [PATCH 115/221] Accepting request 145257 from Base:System (forwarded request 145035 from elvigia) OBS-URL: https://build.opensuse.org/request/show/145257 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=118 --- detect-btrfs-ssd.patch | 97 +++++++++++++++++++ systemd-mini.changes | 8 ++ systemd-mini.spec | 6 ++ systemd.changes | 8 ++ systemd.spec | 6 ++ ...ed-donot-close-bogus-dbus-connection.patch | 36 +++++++ 6 files changed, 161 insertions(+) create mode 100644 detect-btrfs-ssd.patch create mode 100644 timedated-donot-close-bogus-dbus-connection.patch diff --git a/detect-btrfs-ssd.patch b/detect-btrfs-ssd.patch new file mode 100644 index 00000000..4bd64690 --- /dev/null +++ b/detect-btrfs-ssd.patch @@ -0,0 +1,97 @@ +commit d7228cb8529de83115af04bf653b4d204dad8fae +Author: Lennart Poettering +Date: Thu Nov 22 01:51:06 2012 +0100 + + readahead: properly detect btrfs on SSD + +diff --git a/src/readahead/readahead-common.c b/src/readahead/readahead-common.c +index 10b0ccc..41aaff0 100644 +--- a/src/readahead/readahead-common.c ++++ b/src/readahead/readahead-common.c +@@ -32,6 +32,7 @@ + #include "log.h" + #include "readahead-common.h" + #include "util.h" ++#include "missing.h" + + int file_verify(int fd, const char *fn, off_t file_size_max, struct stat *st) { + assert(fd >= 0); +@@ -62,14 +63,63 @@ int fs_on_ssd(const char *p) { + struct udev_device *udev_device = NULL, *look_at = NULL; + bool b = false; + const char *devtype, *rotational, *model, *id; ++ int r; + + assert(p); + + if (stat(p, &st) < 0) + return -errno; + +- if (major(st.st_dev) == 0) ++ if (major(st.st_dev) == 0) { ++ _cleanup_fclose_ FILE *f = NULL; ++ int mount_id; ++ struct file_handle *h; ++ ++ /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd. ++ * ++ * We first determine the mount ID here, if we can, ++ * and then lookup the mount ID in mountinfo to find ++ * the mount options. */ ++ ++ h = alloca(MAX_HANDLE_SZ); ++ h->handle_bytes = MAX_HANDLE_SZ; ++ r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW); ++ if (r < 0) ++ return false; ++ ++ f = fopen("/proc/self/mountinfo", "re"); ++ if (!f) ++ return false; ++ ++ for (;;) { ++ char line[LINE_MAX], *e; ++ _cleanup_free_ char *opts = NULL; ++ int mid; ++ ++ if (!fgets(line, sizeof(line), f)) ++ return false; ++ ++ truncate_nl(line); ++ ++ if (sscanf(line, "%i", &mid) != 1) ++ continue; ++ ++ if (mid != mount_id) ++ continue; ++ ++ e = strstr(line, " - "); ++ if (!e) ++ continue; ++ ++ if (sscanf(e+3, "%*s %*s %ms", &opts) != 1) ++ continue; ++ ++ if (streq(opts, "ssd") || startswith(opts, "ssd,") || endswith(opts, ",ssd") || strstr(opts, ",ssd,")) ++ return true; ++ } ++ + return false; ++ } + + udev = udev_new(); + if (!udev) +@@ -97,9 +147,10 @@ int fs_on_ssd(const char *p) { + + /* Second, try kernel attribute */ + rotational = udev_device_get_sysattr_value(look_at, "queue/rotational"); +- if (rotational) +- if ((b = streq(rotational, "0"))) +- goto finish; ++ if (rotational) { ++ b = streq(rotational, "0"); ++ goto finish; ++ } + + /* Finally, fallback to heuristics */ + look_at = udev_device_get_parent(look_at); diff --git a/systemd-mini.changes b/systemd-mini.changes index 036dd8c0..7b9830f6 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org + +- detect-btrfs-ssd.patch: Fix btrfs detection on SSD. +- timedated-donot-close-bogus-dbus-connection.patch: Avoid + closing an non-existent dbus connection and getting assertion + failures. + ------------------------------------------------------------------- Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 810469bf..dac1ea23 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -158,6 +158,10 @@ Patch69: switch-root-try-pivot-root.patch Patch70: remount-ro-before-unmount.patch # PATCH-FIX-UPSTREAM revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch crrodriguez@opensuse.org -- do not consider failure to umount / and /usr an error. Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch +# PATCH-FIX-UPSTREAM detect-btrfs-ssd.patch crrodriguez@opensuse.org -- fix BTRFS detection on systemd-readhead +Patch74: detect-btrfs-ssd.patch +# PATCH-FIX-UPSTREAM timedated-donot-close-bogus-dbus-connection.patch crrodriguez@opensuse.org -- Fix assertion failure when dbus is gone. +Patch75: timedated-donot-close-bogus-dbus-connection.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -376,6 +380,8 @@ cp %{SOURCE7} m4/ %patch71 -p1 %patch72 -p1 %patch73 -p1 +%patch74 -p1 +%patch75 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 036dd8c0..7b9830f6 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org + +- detect-btrfs-ssd.patch: Fix btrfs detection on SSD. +- timedated-donot-close-bogus-dbus-connection.patch: Avoid + closing an non-existent dbus connection and getting assertion + failures. + ------------------------------------------------------------------- Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index 4ab279c3..05c3fcd3 100644 --- a/systemd.spec +++ b/systemd.spec @@ -153,6 +153,10 @@ Patch69: switch-root-try-pivot-root.patch Patch70: remount-ro-before-unmount.patch # PATCH-FIX-UPSTREAM revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch crrodriguez@opensuse.org -- do not consider failure to umount / and /usr an error. Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch +# PATCH-FIX-UPSTREAM detect-btrfs-ssd.patch crrodriguez@opensuse.org -- fix BTRFS detection on systemd-readhead +Patch74: detect-btrfs-ssd.patch +# PATCH-FIX-UPSTREAM timedated-donot-close-bogus-dbus-connection.patch crrodriguez@opensuse.org -- Fix assertion failure when dbus is gone. +Patch75: timedated-donot-close-bogus-dbus-connection.patch # udev patches # PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch @@ -371,6 +375,8 @@ cp %{SOURCE7} m4/ %patch71 -p1 %patch72 -p1 %patch73 -p1 +%patch74 -p1 +%patch75 -p1 %build autoreconf -fiv diff --git a/timedated-donot-close-bogus-dbus-connection.patch b/timedated-donot-close-bogus-dbus-connection.patch new file mode 100644 index 00000000..6ee6f3bc --- /dev/null +++ b/timedated-donot-close-bogus-dbus-connection.patch @@ -0,0 +1,36 @@ +commit b779821b8fdcb3f2bdd0c362bceaae3c76ed9678 +Author: Shawn Landden +Date: Mon Dec 3 00:50:55 2012 +0000 + + timedated: do not incorrectly close non-opened dbus connection + + Fix the fallowing error when no system dbus available: + + Failed to get system D-Bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory + process 14920: arguments to dbus_connection_close() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2889. + This is normally a bug in some application using the D-Bus library. + process 14920: arguments to dbus_connection_unref() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2776. + This is normally a bug in some application using the D-Bus library. + +diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c +index 40ba255..784dadc 100644 +--- a/src/timedate/timedated.c ++++ b/src/timedate/timedated.c +@@ -936,7 +936,7 @@ static int connect_bus(DBusConnection **_bus) { + if (!bus) { + log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error)); + r = -ECONNREFUSED; +- goto fail; ++ goto fail2; + } + + dbus_connection_set_exit_on_disconnect(bus, FALSE); +@@ -968,7 +968,7 @@ static int connect_bus(DBusConnection **_bus) { + fail: + dbus_connection_close(bus); + dbus_connection_unref(bus); +- ++fail2: + dbus_error_free(&error); + + return r; From a4cc02351c0a42041dcaae4c69c8125e6d642aee46adea65f64df446b0b0a29f Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 8 Jan 2013 20:14:07 +0000 Subject: [PATCH 116/221] Accepting request 147543 from Base:System - udevd: add missing ':' to getopt_long 'e'. add: 1007-udevd-add-missing-to-getopt_long-e.patch - clean up systemd.spec, make it easy to see which are udev and systemd patches. - make 'reload' and 'force-reload' LSB compliant (bnc#793936). - udevd: add missing ':' to getopt_long 'e'. add: 1007-udevd-add-missing-to-getopt_long-e.patch - clean up systemd.spec, make it easy to see which are udev and systemd patches. - make 'reload' and 'force-reload' LSB compliant (bnc#793936). OBS-URL: https://build.opensuse.org/request/show/147543 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=119 --- ...h => 1001-Reinstate-TIMEOUT-handling.patch | 0 ...enable-by_path-links-for-ata-devices.patch | 0 ...ate-by-id-scsi-links-for-ATA-devices.patch | 0 ...atch => 1004-udev-netlink-null-rules.patch | 0 ...1005-udev-fix-sg-autoload-regression.patch | 0 ...fix.patch => 1006-fix-devname-prefix.patch | 0 1007-udevd-add-missing-to-getopt_long-e.patch | 27 +++++++++++ boot.udev | 41 +++++++---------- systemd-mini.changes | 9 ++++ systemd-mini.spec | 45 ++++++++++--------- systemd.changes | 9 ++++ systemd.spec | 45 ++++++++++--------- 12 files changed, 112 insertions(+), 64 deletions(-) rename 0001-Reinstate-TIMEOUT-handling.patch => 1001-Reinstate-TIMEOUT-handling.patch (100%) rename 0013-re-enable-by_path-links-for-ata-devices.patch => 1002-re-enable-by_path-links-for-ata-devices.patch (100%) rename 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch => 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch (100%) rename 0026-udev-netlink-null-rules.patch => 1004-udev-netlink-null-rules.patch (100%) rename 0027-udev-fix-sg-autoload-regression.patch => 1005-udev-fix-sg-autoload-regression.patch (100%) rename fix-devname-prefix.patch => 1006-fix-devname-prefix.patch (100%) create mode 100644 1007-udevd-add-missing-to-getopt_long-e.patch diff --git a/0001-Reinstate-TIMEOUT-handling.patch b/1001-Reinstate-TIMEOUT-handling.patch similarity index 100% rename from 0001-Reinstate-TIMEOUT-handling.patch rename to 1001-Reinstate-TIMEOUT-handling.patch diff --git a/0013-re-enable-by_path-links-for-ata-devices.patch b/1002-re-enable-by_path-links-for-ata-devices.patch similarity index 100% rename from 0013-re-enable-by_path-links-for-ata-devices.patch rename to 1002-re-enable-by_path-links-for-ata-devices.patch diff --git a/0014-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch similarity index 100% rename from 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch rename to 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch diff --git a/0026-udev-netlink-null-rules.patch b/1004-udev-netlink-null-rules.patch similarity index 100% rename from 0026-udev-netlink-null-rules.patch rename to 1004-udev-netlink-null-rules.patch diff --git a/0027-udev-fix-sg-autoload-regression.patch b/1005-udev-fix-sg-autoload-regression.patch similarity index 100% rename from 0027-udev-fix-sg-autoload-regression.patch rename to 1005-udev-fix-sg-autoload-regression.patch diff --git a/fix-devname-prefix.patch b/1006-fix-devname-prefix.patch similarity index 100% rename from fix-devname-prefix.patch rename to 1006-fix-devname-prefix.patch diff --git a/1007-udevd-add-missing-to-getopt_long-e.patch b/1007-udevd-add-missing-to-getopt_long-e.patch new file mode 100644 index 00000000..209f5d86 --- /dev/null +++ b/1007-udevd-add-missing-to-getopt_long-e.patch @@ -0,0 +1,27 @@ +From 5bbbe461fd4d133eac49f41210e2fd4846f577d8 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 19 Dec 2012 13:12:26 +0100 +Subject: [PATCH] udevd: add missing ':' to getopt_long 'e' + +Parameter -e is set without additional argument in getopt +and this leads to segfault when calling 'systemd-udevd -e'. +--- + src/udev/udevd.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index ebd601e..ffc48a0 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -1097,7 +1097,7 @@ int main(int argc, char *argv[]) + for (;;) { + int option; + +- option = getopt_long(argc, argv, "c:deDtN:hV", options, NULL); ++ option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); + if (option == -1) + break; + +-- +1.7.7 + diff --git a/boot.udev b/boot.udev index 82ea2399..4fa0bd63 100644 --- a/boot.udev +++ b/boot.udev @@ -14,19 +14,22 @@ . /etc/rc.status -PATH="/sbin:/bin" +PATH="/sbin:/bin:/usr/sbin:/usr/bin" +DAEMON="@@SYSTEMD@@/systemd-udevd" +UDEVADM="@@BINDIR@@/udevadm" +WRITERULE="@@PREFIX@@/write_dev_root_rule" udev_timeout=180 case "$1" in start) # create /dev/root symlink with dynamic rule - if [ -x /lib/udev/write_dev_root_rule ]; then - /lib/udev/write_dev_root_rule + if [ -x ${WRITERULE} ]; then + ${WRITERULE} >/dev/null 2>&1 || true fi # start udevd echo -n "Starting udevd: " - /sbin/udevd --daemon + ${DAEMON} --daemon if [ $? -ne 0 ]; then rc_status -v rc_exit @@ -35,42 +38,32 @@ case "$1" in # trigger events for all devices echo -n "Loading drivers, configuring devices: " - /sbin/udevadm trigger --type=subsystems --action=add - /sbin/udevadm trigger --type=devices --action=add + ${UDEVADM} trigger --type=subsystems --action=add + ${UDEVADM} trigger --type=devices --action=add # wait for events to finish - /sbin/udevadm settle --timeout=$udev_timeout + ${UDEVADM} settle --timeout=$udev_timeout rc_status -v ;; stop) echo -n "Stopping udevd: " - killproc /sbin/udevd + killproc ${DAEMON} rc_status -v ;; restart) echo -n "Restarting udevd: " - killproc /sbin/udevd - /sbin/udevd --daemon + killproc ${DAEMON} + ${DAEMON} --daemon rc_status -v ;; status) echo -n "Checking for udevd: " - checkproc /sbin/udevd + checkproc ${DAEMON} rc_status -v ;; - reload) - echo -n "Reloading udev rules: " - /sbin/udevadm control --reload-rules - rc_status -v - ;; - force-reload) - echo -n "Restarting udev and reconfiguring all devices: " - killproc /sbin/udevd - rm -rf /dev/.udev /dev/disk - root_symlink_rule - /sbin/udevd --daemon - /sbin/udevadm trigger --action=add - /sbin/udevadm settle --timeout=$udev_timeout + reload|force-reload) + echo -n "Reloading udevd: " + killproc -G -HUP ${DAEMON} rc_status -v ;; *) diff --git a/systemd-mini.changes b/systemd-mini.changes index 7b9830f6..27ae0040 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com + +- udevd: add missing ':' to getopt_long 'e'. + add: 1007-udevd-add-missing-to-getopt_long-e.patch +- clean up systemd.spec, make it easy to see which are udev and + systemd patches. +- make 'reload' and 'force-reload' LSB compliant (bnc#793936). + ------------------------------------------------------------------- Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org diff --git a/systemd-mini.spec b/systemd-mini.spec index dac1ea23..b7be3679 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -164,19 +164,20 @@ Patch74: detect-btrfs-ssd.patch Patch75: timedated-donot-close-bogus-dbus-connection.patch # udev patches -# PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch -Patch1001: 0001-Reinstate-TIMEOUT-handling.patch -# PATCH-FIX-OPENSUSE 0013-re-enable-by_path-links-for-ata-devices.patch -Patch1013: 0013-re-enable-by_path-links-for-ata-devices.patch -# PATCH-FIX-OPENSUSE 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1014: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch - -# PATCH-FIX-OPENSUSE 0026-udev-netlink-null-rules.patch -Patch1026: 0026-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch -Patch1027: 0027-udev-fix-sg-autoload-regression.patch -# PATCH-FIX-OPENSUSE fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1028: fix-devname-prefix.patch +# PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch +Patch1001: 1001-Reinstate-TIMEOUT-handling.patch +# PATCH-FIX-OPENSUSE 1002-re-enable-by_path-links-for-ata-devices.patch +Patch1002: 1002-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1003: 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch +# PATCH-FIX-OPENSUSE 1004-udev-netlink-null-rules.patch +Patch1004: 1004-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 1005-udev-fix-sg-autoload-regression.patch +Patch1005: 1005-udev-fix-sg-autoload-regression.patch +# PATCH-FIX-OPENSUSE 1007-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr +Patch1006: 1006-fix-devname-prefix.patch +# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch +Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -338,11 +339,12 @@ cp %{SOURCE7} m4/ #udev %patch1001 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1028 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 #systemd %patch1 -p1 @@ -422,13 +424,16 @@ ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald %endif +sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} +sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} +sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service -mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants +mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants #workaround for 716939 diff --git a/systemd.changes b/systemd.changes index 7b9830f6..3d94cc4f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com + +- udevd: add missing ':' to getopt_long 'e'. + add: 1007-udevd-add-missing-to-getopt_long-e.patch +- clean up systemd.spec, make it easy to see which are udev and + systemd patches. +- make 'reload' and 'force-reload' LSB compliant (bnc#793936). + ------------------------------------------------------------------- Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org diff --git a/systemd.spec b/systemd.spec index 05c3fcd3..55c77bdb 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -159,19 +159,20 @@ Patch74: detect-btrfs-ssd.patch Patch75: timedated-donot-close-bogus-dbus-connection.patch # udev patches -# PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch -Patch1001: 0001-Reinstate-TIMEOUT-handling.patch -# PATCH-FIX-OPENSUSE 0013-re-enable-by_path-links-for-ata-devices.patch -Patch1013: 0013-re-enable-by_path-links-for-ata-devices.patch -# PATCH-FIX-OPENSUSE 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1014: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch - -# PATCH-FIX-OPENSUSE 0026-udev-netlink-null-rules.patch -Patch1026: 0026-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch -Patch1027: 0027-udev-fix-sg-autoload-regression.patch -# PATCH-FIX-OPENSUSE fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1028: fix-devname-prefix.patch +# PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch +Patch1001: 1001-Reinstate-TIMEOUT-handling.patch +# PATCH-FIX-OPENSUSE 1002-re-enable-by_path-links-for-ata-devices.patch +Patch1002: 1002-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1003: 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch +# PATCH-FIX-OPENSUSE 1004-udev-netlink-null-rules.patch +Patch1004: 1004-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 1005-udev-fix-sg-autoload-regression.patch +Patch1005: 1005-udev-fix-sg-autoload-regression.patch +# PATCH-FIX-OPENSUSE 1007-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr +Patch1006: 1006-fix-devname-prefix.patch +# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch +Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -333,11 +334,12 @@ cp %{SOURCE7} m4/ #udev %patch1001 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1028 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +%patch1007 -p1 #systemd %patch1 -p1 @@ -417,13 +419,16 @@ ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald %endif +sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} +sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} +sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service -mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants +mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants #workaround for 716939 From 48af67da26a3e570e98350c2944a2e172515be9b7669c3f98c88cdb4cd014717 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 10 Jan 2013 14:20:01 +0000 Subject: [PATCH 117/221] Accepting request 147673 from Base:System - udev: path_id - handle Hyper-V devices add: 1008-udev-path_id-handle-Hyper-V-devices.patch - keymap: Update the list of Samsung Series 9 models add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch - keymap: Add Samsung 700T add: 1010-keymap-Add-Samsung-700T.patch - libudev: avoid leak during realloc failure add: 1011-libudev-avoid-leak-during-realloc-failure.patch - libudev: do not resolve $attr{device} symlinks add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch - libudev: validate 'udev' argument to udev_enumerate_new() add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch - udev: fix whitespace add: 1014-udev-fix-whitespace.patch - udev: properly handle symlink removal by 'change' event add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch - udev: builtin - do not fail builtin initialization if one of them returns an error add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch - udev: use usec_t and now() add: 1017-udev-use-usec_t-and-now.patch closing an non-existent dbus connection and getting assertion failures. - udev: path_id - handle Hyper-V devices add: 1008-udev-path_id-handle-Hyper-V-devices.patch - keymap: Update the list of Samsung Series 9 models add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch - keymap: Add Samsung 700T add: 1010-keymap-Add-Samsung-700T.patch OBS-URL: https://build.opensuse.org/request/show/147673 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=120 --- ...splash-handling-for-password-dialogs.patch | 14 +- ...aplock-and-compose_table-and-kbd_rat.patch | 14 +- ...sv-service-with-detected-pid-as-Rema.patch | 8 +- 1001-Reinstate-TIMEOUT-handling.patch | 26 +- ...enable-by_path-links-for-ata-devices.patch | 10 +- ...ate-by-id-scsi-links-for-ATA-devices.patch | 6 +- 1004-udev-netlink-null-rules.patch | 8 +- 1007-udevd-add-missing-to-getopt_long-e.patch | 13 +- ...-udev-path_id-handle-Hyper-V-devices.patch | 72 ++++ ...-the-list-of-Samsung-Series-9-models.patch | 136 +++++++ 1010-keymap-Add-Samsung-700T.patch | 22 ++ ...ev-avoid-leak-during-realloc-failure.patch | 36 ++ ...-do-not-resolve-attr-device-symlinks.patch | 40 +++ ...-udev-argument-to-udev_enumerate_new.patch | 23 ++ 1014-udev-fix-whitespace.patch | 56 +++ ...ndle-symlink-removal-by-change-event.patch | 69 ++++ ...not-fail-builtin-initialization-if-o.patch | 64 ++++ 1017-udev-use-usec_t-and-now.patch | 335 ++++++++++++++++++ fix-build-glibc217.patch | 13 +- fix-dbus-crash.patch | 13 +- fix-logind-pty-seat.patch | 13 +- mount-efivars.patch | 201 +++-------- new-lsb-headers.patch | 20 +- support-sysvinit.patch | 8 +- sync-on-shutdown.patch | 21 +- systemd-mini.changes | 29 +- systemd-mini.spec | 30 ++ systemd-numlock-suse.patch | 42 +-- systemd.changes | 29 +- systemd.spec | 30 ++ ...ed-donot-close-bogus-dbus-connection.patch | 12 +- 31 files changed, 1129 insertions(+), 284 deletions(-) create mode 100644 1008-udev-path_id-handle-Hyper-V-devices.patch create mode 100644 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch create mode 100644 1010-keymap-Add-Samsung-700T.patch create mode 100644 1011-libudev-avoid-leak-during-realloc-failure.patch create mode 100644 1012-libudev-do-not-resolve-attr-device-symlinks.patch create mode 100644 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch create mode 100644 1014-udev-fix-whitespace.patch create mode 100644 1015-udev-properly-handle-symlink-removal-by-change-event.patch create mode 100644 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch create mode 100644 1017-udev-use-usec_t-and-now.patch diff --git a/0001-Add-bootsplash-handling-for-password-dialogs.patch b/0001-Add-bootsplash-handling-for-password-dialogs.patch index 7338d212..957757ae 100644 --- a/0001-Add-bootsplash-handling-for-password-dialogs.patch +++ b/0001-Add-bootsplash-handling-for-password-dialogs.patch @@ -6,11 +6,11 @@ Subject: [PATCH] Add bootsplash handling for password dialogs openSUSE uses bootsplash.org, so add a crude handling for setting the splash screen to verbose when a password is asked... --- -diff --git a/src/ask-password-api.c b/src/ask-password-api.c -index da967ab..b89bcea 100644 ---- a/src/shared/ask-password-api.c -+++ b/src/shared/ask-password-api.c -@@ -62,6 +62,9 @@ int ask_password_tty( +Index: systemd-195/src/shared/ask-password-api.c +=================================================================== +--- systemd-195.orig/src/shared/ask-password-api.c ++++ systemd-195/src/shared/ask-password-api.c +@@ -63,6 +63,9 @@ int ask_password_tty( bool reset_tty = false; bool silent_mode = false; bool dirty = false; @@ -20,7 +20,7 @@ index da967ab..b89bcea 100644 enum { POLL_TTY, POLL_INOTIFY -@@ -105,6 +108,19 @@ int ask_password_tty( +@@ -106,6 +109,19 @@ int ask_password_tty( } reset_tty = true; @@ -40,7 +40,7 @@ index da967ab..b89bcea 100644 } zero(pollfd); -@@ -239,6 +255,12 @@ finish: +@@ -240,6 +256,12 @@ finish: close_nointr_nofail(ttyfd); } diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch index 8376c34c..d04cb888 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -7,10 +7,10 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 121 insertions(+), 3 deletions(-) -Index: systemd-189/src/vconsole/vconsole-setup.c +Index: systemd-195/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-189.orig/src/vconsole/vconsole-setup.c -+++ systemd-189/src/vconsole/vconsole-setup.c +--- systemd-195.orig/src/vconsole/vconsole-setup.c ++++ systemd-195/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "log.h" #include "macro.h" @@ -158,7 +158,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -281,10 +387,15 @@ int main(int argc, char **argv) { +@@ -273,10 +379,15 @@ int main(int argc, char **argv) { free(vc_keymap); vc_keymap = t; } @@ -174,7 +174,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c NULL); if (r < 0 && r != -ENOENT) log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); -@@ -443,7 +554,11 @@ int main(int argc, char **argv) { +@@ -435,7 +546,11 @@ int main(int argc, char **argv) { disable_utf8(fd); @@ -187,7 +187,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -451,6 +566,14 @@ finish: +@@ -443,6 +558,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -202,7 +202,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c if (font_pid > 0) wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -@@ -458,6 +581,12 @@ finish: +@@ -450,6 +573,12 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); diff --git a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch index eebd73f5..0f665022 100644 --- a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch +++ b/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch @@ -12,11 +12,11 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 src/service.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) -Index: systemd-37/src/service.c +Index: systemd-195/src/core/service.c =================================================================== ---- systemd-37.orig/src/core/service.c -+++ systemd-37/src/core/service.c -@@ -2014,8 +2014,13 @@ static void service_enter_running(Servic +--- systemd-195.orig/src/core/service.c ++++ systemd-195/src/core/service.c +@@ -2136,8 +2136,13 @@ static void service_enter_running(Servic cgroup_ok = cgroup_good(s); if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && diff --git a/1001-Reinstate-TIMEOUT-handling.patch b/1001-Reinstate-TIMEOUT-handling.patch index 9e451f4b..f90c265a 100644 --- a/1001-Reinstate-TIMEOUT-handling.patch +++ b/1001-Reinstate-TIMEOUT-handling.patch @@ -20,10 +20,10 @@ regarding this issue. src/udevd.c | 13 ++++++++++--- 4 files changed, 32 insertions(+), 3 deletions(-) -Index: systemd-190/src/libudev/libudev-device.c +Index: systemd-195/src/libudev/libudev-device.c =================================================================== ---- systemd-190.orig/src/libudev/libudev-device.c -+++ systemd-190/src/libudev/libudev-device.c +--- systemd-195.orig/src/libudev/libudev-device.c ++++ systemd-195/src/libudev/libudev-device.c @@ -68,6 +68,7 @@ struct udev_device { struct udev_list tags_list; unsigned long long int seqnum; @@ -71,10 +71,10 @@ Index: systemd-190/src/libudev/libudev-device.c udev_device->watch_handle = -1; /* copy global properties */ udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev)) -Index: systemd-190/src/libudev/libudev-private.h +Index: systemd-195/src/libudev/libudev-private.h =================================================================== ---- systemd-190.orig/src/libudev/libudev-private.h -+++ systemd-190/src/libudev/libudev-private.h +--- systemd-195.orig/src/libudev/libudev-private.h ++++ systemd-195/src/libudev/libudev-private.h @@ -65,6 +65,7 @@ const char *udev_device_get_id_filename( void udev_device_set_is_initialized(struct udev_device *udev_device); int udev_device_add_tag(struct udev_device *udev_device, const char *tag); @@ -83,11 +83,11 @@ Index: systemd-190/src/libudev/libudev-private.h unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device); void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized); int udev_device_get_devlink_priority(struct udev_device *udev_device); -Index: systemd-190/src/udev/udevd.c +Index: systemd-195/src/udev/udevd.c =================================================================== ---- systemd-190.orig/src/udev/udevd.c -+++ systemd-190/src/udev/udevd.c -@@ -387,7 +387,7 @@ out: +--- systemd-195.orig/src/udev/udevd.c ++++ systemd-195/src/udev/udevd.c +@@ -388,7 +388,7 @@ out: } } @@ -96,7 +96,7 @@ Index: systemd-190/src/udev/udevd.c { struct udev_list_node *loop; -@@ -413,7 +413,7 @@ static void event_run(struct event *even +@@ -414,7 +414,7 @@ static void event_run(struct event *even return; } @@ -105,7 +105,7 @@ Index: systemd-190/src/udev/udevd.c if (children_max > 1) log_debug("maximum number (%i) of children reached\n", children); return; -@@ -447,6 +447,13 @@ static int event_queue_insert(struct ude +@@ -450,6 +450,13 @@ static int event_queue_insert(struct ude event->state = EVENT_QUEUED; udev_list_node_append(&event->node, &event_list); @@ -119,7 +119,7 @@ Index: systemd-190/src/udev/udevd.c return 0; } -@@ -552,7 +559,7 @@ static void event_queue_start(struct ude +@@ -559,7 +566,7 @@ static void event_queue_start(struct ude if (is_devpath_busy(event)) continue; diff --git a/1002-re-enable-by_path-links-for-ata-devices.patch b/1002-re-enable-by_path-links-for-ata-devices.patch index 41242f3b..9250624f 100644 --- a/1002-re-enable-by_path-links-for-ata-devices.patch +++ b/1002-re-enable-by_path-links-for-ata-devices.patch @@ -1,8 +1,8 @@ -Index: udev-182/src/udev-builtin-path_id.c +Index: systemd-195/src/udev/udev-builtin-path_id.c =================================================================== ---- udev-182.orig/src/udev/udev-builtin-path_id.c -+++ udev-182/src/udev/udev-builtin-path_id.c -@@ -286,6 +286,85 @@ out: +--- systemd-195.orig/src/udev/udev-builtin-path_id.c ++++ systemd-195/src/udev/udev-builtin-path_id.c +@@ -302,6 +302,85 @@ out: return hostdev; } @@ -88,7 +88,7 @@ Index: udev-182/src/udev-builtin-path_id.c static struct udev_device *handle_scsi(struct udev_device *parent, char **path) { const char *devtype; -@@ -322,16 +401,8 @@ static struct udev_device *handle_scsi(s +@@ -338,16 +417,8 @@ static struct udev_device *handle_scsi(s goto out; } diff --git a/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch index 240d8200..c7b3b1cd 100644 --- a/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch +++ b/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -1,7 +1,7 @@ -Index: udev-182/rules/60-persistent-storage.rules +Index: systemd-195/rules/60-persistent-storage.rules =================================================================== ---- udev-182.orig/rules/60-persistent-storage.rules -+++ udev-182/rules/60-persistent-storage.rules +--- systemd-195.orig/rules/60-persistent-storage.rules ++++ systemd-195/rules/60-persistent-storage.rules @@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" diff --git a/1004-udev-netlink-null-rules.patch b/1004-udev-netlink-null-rules.patch index c0b7d44a..e5fd1b7e 100644 --- a/1004-udev-netlink-null-rules.patch +++ b/1004-udev-netlink-null-rules.patch @@ -1,8 +1,8 @@ -Index: udev-182/src/udevd.c +Index: systemd-195/src/udev/udevd.c =================================================================== ---- udev-182.orig/src/udev/udevd.c -+++ udev-182/src/udev/udevd.c -@@ -1683,6 +1683,8 @@ int main(int argc, char *argv[]) +--- systemd-195.orig/src/udev/udevd.c ++++ systemd-195/src/udev/udevd.c +@@ -1513,6 +1513,8 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now_usec()); diff --git a/1007-udevd-add-missing-to-getopt_long-e.patch b/1007-udevd-add-missing-to-getopt_long-e.patch index 209f5d86..59cba6ae 100644 --- a/1007-udevd-add-missing-to-getopt_long-e.patch +++ b/1007-udevd-add-missing-to-getopt_long-e.patch @@ -9,11 +9,11 @@ and this leads to segfault when calling 'systemd-udevd -e'. src/udev/udevd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index ebd601e..ffc48a0 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -1097,7 +1097,7 @@ int main(int argc, char *argv[]) +Index: systemd-195/src/udev/udevd.c +=================================================================== +--- systemd-195.orig/src/udev/udevd.c ++++ systemd-195/src/udev/udevd.c +@@ -1104,7 +1104,7 @@ int main(int argc, char *argv[]) for (;;) { int option; @@ -22,6 +22,3 @@ index ebd601e..ffc48a0 100644 if (option == -1) break; --- -1.7.7 - diff --git a/1008-udev-path_id-handle-Hyper-V-devices.patch b/1008-udev-path_id-handle-Hyper-V-devices.patch new file mode 100644 index 00000000..b4273dd7 --- /dev/null +++ b/1008-udev-path_id-handle-Hyper-V-devices.patch @@ -0,0 +1,72 @@ +From a24d03b8ee2ca62cd1273e27cf4e79ddcc0fbb1c Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Fri, 23 Nov 2012 14:12:39 +0100 +Subject: [PATCH] udev: path_id - handle Hyper-V devices + +Hyper-V has an abstract bus, which gets renumbered on guest +startup. So instead of the bus numbers we should be using +the device GUIDs, which can be retrieved from the 'device_id' +sysfs attribute. +--- + src/udev/udev-builtin-path_id.c | 41 +++++++++++++++++++++++++++++++++++++++ + 1 files changed, 41 insertions(+), 0 deletions(-) + +Index: systemd-195/src/udev/udev-builtin-path_id.c +=================================================================== +--- systemd-195.orig/src/udev/udev-builtin-path_id.c ++++ systemd-195/src/udev/udev-builtin-path_id.c +@@ -381,6 +381,42 @@ out: + return hostdev; + } + ++static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char **path) { ++ struct udev_device *hostdev; ++ struct udev_device *vmbusdev; ++ const char *guid_str; ++ char *lun = NULL; ++ char guid[38]; ++ size_t i, k; ++ ++ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); ++ if (!hostdev) ++ return NULL; ++ ++ vmbusdev = udev_device_get_parent(hostdev); ++ if (!vmbusdev) ++ return NULL; ++ ++ guid_str = udev_device_get_sysattr_value(vmbusdev, "device_id"); ++ if (!guid_str) ++ return NULL; ++ ++ if (strlen(guid_str) < 37 || guid_str[0] != '{' || guid_str[36] != '}') ++ return NULL; ++ ++ for (i = 1, k = 0; i < 36; i++) { ++ if (guid_str[i] == '-') ++ continue; ++ guid[k++] = guid_str[i]; ++ } ++ guid[k] = '\0'; ++ ++ format_lun_number(parent, &lun); ++ path_prepend(path, "vmbus-%s-%s", guid, lun); ++ free(lun); ++ return parent; ++} ++ + static struct udev_device *handle_scsi(struct udev_device *parent, char **path) + { + const char *devtype; +@@ -422,6 +458,11 @@ static struct udev_device *handle_scsi(s + goto out; + } + ++ if (strstr(name, "/vmbus_") != NULL) { ++ parent = handle_scsi_hyperv(parent, path); ++ goto out; ++ } ++ + parent = handle_scsi_default(parent, path); + out: + return parent; diff --git a/1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch b/1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch new file mode 100644 index 00000000..58bf335c --- /dev/null +++ b/1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch @@ -0,0 +1,136 @@ +From 68c77c2f6168dca0ce7b5edb81612cd6be39e63d Mon Sep 17 00:00:00 2001 +From: Alessandro Crismani +Date: Wed, 8 Aug 2012 14:19:32 +0200 +Subject: [PATCH] keymap: Update the list of Samsung Series 9 models + +Currently, keymaps are provided only for the NP90X3A laptop. Samsung +introduced updated models, codenamed 900X3B, 900X3C, 900X4B, 900X4C, +which are currently not matched by udev rules. This patch includes the +newer modules in udev rules and move the samsung-n90x3a file defining +keys to a more generic samsung-series-9 file. + +The patch was tested on a 900X4C laptop, and other people reported +that the rules also work for 900X3B and 900X3C ones. +--- + delete mode 100644 keymaps-force-release/samsung-90x3a + create mode 100644 keymaps-force-release/samsung-series-9 + delete mode 100644 keymaps/samsung-90x3a + create mode 100644 keymaps/samsung-series-9 + +From 68c77c2f6168dca0ce7b5edb81612cd6be39e63d Mon Sep 17 00:00:00 2001 +From: Alessandro Crismani +Date: Wed, 8 Aug 2012 14:19:32 +0200 +Subject: [PATCH] keymap: Update the list of Samsung Series 9 models + +Currently, keymaps are provided only for the NP90X3A laptop. Samsung +introduced updated models, codenamed 900X3B, 900X3C, 900X4B, 900X4C, +which are currently not matched by udev rules. This patch includes the +newer modules in udev rules and move the samsung-n90x3a file defining +keys to a more generic samsung-series-9 file. + +The patch was tested on a 900X4C laptop, and other people reported +that the rules also work for 900X3B and 900X3C ones. +--- + Makefile.am | 4 ++-- + keymaps-force-release/samsung-90x3a | 6 ------ + keymaps-force-release/samsung-series-9 | 6 ++++++ + keymaps/samsung-90x3a | 5 ----- + keymaps/samsung-series-9 | 5 +++++ + src/udev/keymap/95-keyboard-force-release.rules | 2 +- + src/udev/keymap/95-keymap.rules | 2 +- + 7 files changed, 15 insertions(+), 15 deletions(-) + delete mode 100644 keymaps-force-release/samsung-90x3a + create mode 100644 keymaps-force-release/samsung-series-9 + delete mode 100644 keymaps/samsung-90x3a + create mode 100644 keymaps/samsung-series-9 + +Index: systemd-195/Makefile.am +=================================================================== +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -2272,7 +2272,7 @@ dist_udevkeymap_DATA = \ + keymaps/onkyo \ + keymaps/oqo-model2 \ + keymaps/samsung-other \ +- keymaps/samsung-90x3a \ ++ keymaps/samsung-series-9 \ + keymaps/samsung-sq1us \ + keymaps/samsung-sx20s \ + keymaps/toshiba-satellite_a100 \ +@@ -2286,7 +2286,7 @@ dist_udevkeymapforcerel_DATA = \ + keymaps-force-release/dell-xps \ + keymaps-force-release/hp-other \ + keymaps-force-release/samsung-other \ +- keymaps-force-release/samsung-90x3a \ ++ keymaps-force-release/samsung-series-9 \ + keymaps-force-release/common-volume-keys + + src/udev/keymap/keys.txt: Makefile +Index: systemd-195/keymaps-force-release/samsung-90x3a +=================================================================== +--- systemd-195.orig/keymaps-force-release/samsung-90x3a ++++ /dev/null +@@ -1,6 +0,0 @@ +-# list of scancodes (hex or decimal), optional comment +-0xCE # Fn+F8 keyboard backlit up +-0x8D # Fn+F7 keyboard backlit down +-0x97 # Fn+F12 wifi on/off +-0x96 # Fn+F1 performance mode (?) +-0xD5 # Fn+F6 battery life extender +Index: systemd-195/keymaps-force-release/samsung-series-9 +=================================================================== +--- /dev/null ++++ systemd-195/keymaps-force-release/samsung-series-9 +@@ -0,0 +1,6 @@ ++# list of scancodes (hex or decimal), optional comment ++0xCE # Fn+F8 keyboard backlit up ++0x8D # Fn+F7 keyboard backlit down ++0x97 # Fn+F12 wifi on/off ++0x96 # Fn+F1 performance mode (?) ++0xD5 # Fn+F6 battery life extender +Index: systemd-195/keymaps/samsung-90x3a +=================================================================== +--- systemd-195.orig/keymaps/samsung-90x3a ++++ /dev/null +@@ -1,5 +0,0 @@ +-0x96 kbdillumup # Fn+F8 keyboard backlit up +-0x97 kbdillumdown # Fn+F7 keyboard backlit down +-0xD5 wlan # Fn+F12 wifi on/off +-0xCE prog1 # Fn+F1 performance mode +-0x8D prog2 # Fn+F6 battery life extender +Index: systemd-195/keymaps/samsung-series-9 +=================================================================== +--- /dev/null ++++ systemd-195/keymaps/samsung-series-9 +@@ -0,0 +1,5 @@ ++0x96 kbdillumup # Fn+F8 keyboard backlit up ++0x97 kbdillumdown # Fn+F7 keyboard backlit down ++0xD5 wlan # Fn+F12 wifi on/off ++0xCE prog1 # Fn+F1 performance mode ++0x8D prog2 # Fn+F6 battery life extender +Index: systemd-195/src/udev/keymap/95-keyboard-force-release.rules +=================================================================== +--- systemd-195.orig/src/udev/keymap/95-keyboard-force-release.rules ++++ systemd-195/src/udev/keymap/95-keyboard-force-release.rules +@@ -19,7 +19,7 @@ DRIVER!="atkbd", GOTO="force_release_end + ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}" + + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", RUN+="keyboard-force-release.sh $devpath samsung-other" +-ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a" ++ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keyboard-force-release.sh $devpath samsung-series-9" + + ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys" + ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad" +Index: systemd-195/src/udev/keymap/95-keymap.rules +=================================================================== +--- systemd-195.orig/src/udev/keymap/95-keymap.rules ++++ systemd-195/src/udev/keymap/95-keymap.rules +@@ -147,7 +147,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s" + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us" + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown" +-ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a" ++ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keymap $name samsung-series-9" + + ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100" + ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110", RUN+="keymap $name toshiba-satellite_a110" diff --git a/1010-keymap-Add-Samsung-700T.patch b/1010-keymap-Add-Samsung-700T.patch new file mode 100644 index 00000000..860da9ad --- /dev/null +++ b/1010-keymap-Add-Samsung-700T.patch @@ -0,0 +1,22 @@ +From a5dea3d43b3866b48c66d6bef9663cf8372fd96c Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Wed, 28 Nov 2012 21:33:26 +0100 +Subject: [PATCH] keymap: Add Samsung 700T + +https://bugzilla.redhat.com/show_bug.cgi?id=879691 +--- + src/udev/keymap/95-keymap.rules | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +Index: systemd-195/src/udev/keymap/95-keymap.rules +=================================================================== +--- systemd-195.orig/src/udev/keymap/95-keymap.rules ++++ systemd-195/src/udev/keymap/95-keymap.rules +@@ -147,6 +147,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s" + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us" + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown" ++ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700T*", RUN+="keymap $name 0xAD leftmeta" + ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keymap $name samsung-series-9" + + ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100" diff --git a/1011-libudev-avoid-leak-during-realloc-failure.patch b/1011-libudev-avoid-leak-during-realloc-failure.patch new file mode 100644 index 00000000..6b5d1907 --- /dev/null +++ b/1011-libudev-avoid-leak-during-realloc-failure.patch @@ -0,0 +1,36 @@ +From cf2292f5ac87087f57dbd632a25a332c9d194ebf Mon Sep 17 00:00:00 2001 +From: Mauro Dreissig +Date: Sun, 11 Nov 2012 22:07:51 -0200 +Subject: [PATCH] libudev: avoid leak during realloc failure + +--- + src/libudev/libudev-list.c | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +Index: systemd-195/src/libudev/libudev-list.c +=================================================================== +--- systemd-195.orig/src/libudev/libudev-list.c ++++ systemd-195/src/libudev/libudev-list.c +@@ -177,18 +177,20 @@ struct udev_list_entry *udev_list_entry_ + if (list->unique) { + /* allocate or enlarge sorted array if needed */ + if (list->entries_cur >= list->entries_max) { ++ struct udev_list_entry **entries; + unsigned int add; + + add = list->entries_max; + if (add < 1) + add = 64; +- list->entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *)); +- if (list->entries == NULL) { ++ entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *)); ++ if (entries == NULL) { + free(entry->name); + free(entry->value); + free(entry); + return NULL; + } ++ list->entries = entries; + list->entries_max += add; + } + diff --git a/1012-libudev-do-not-resolve-attr-device-symlinks.patch b/1012-libudev-do-not-resolve-attr-device-symlinks.patch new file mode 100644 index 00000000..9e48bc52 --- /dev/null +++ b/1012-libudev-do-not-resolve-attr-device-symlinks.patch @@ -0,0 +1,40 @@ +From 5ae18ddc0d86673520c0dd6b59ccac8afc8aa605 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 20 Nov 2012 18:07:57 +0100 +Subject: [PATCH] libudev: do not resolve $attr{device} symlinks + +--- + src/libudev/libudev-device.c | 19 ++++++++++--------- + 1 files changed, 10 insertions(+), 9 deletions(-) + +Index: systemd-195/src/libudev/libudev-device.c +=================================================================== +--- systemd-195.orig/src/libudev/libudev-device.c ++++ systemd-195/src/libudev/libudev-device.c +@@ -1369,16 +1369,17 @@ _public_ const char *udev_device_get_sys + goto out; + } + +- /* resolve link to a device and return its syspath */ +- util_strscpyl(path, sizeof(path), udev_device->syspath, "/", sysattr, NULL); +- dev = udev_device_new_from_syspath(udev_device->udev, path); +- if (dev != NULL) { +- list_entry = udev_list_entry_add(&udev_device->sysattr_value_list, sysattr, +- udev_device_get_syspath(dev)); +- val = udev_list_entry_get_value(list_entry); +- udev_device_unref(dev); ++ /* resolve custom link to a device and return its syspath */ ++ if (!streq(sysattr, "device")) { ++ util_strscpyl(path, sizeof(path), udev_device->syspath, "/", sysattr, NULL); ++ dev = udev_device_new_from_syspath(udev_device->udev, path); ++ if (dev != NULL) { ++ list_entry = udev_list_entry_add(&udev_device->sysattr_value_list, sysattr, ++ udev_device_get_syspath(dev)); ++ val = udev_list_entry_get_value(list_entry); ++ udev_device_unref(dev); ++ } + } +- + goto out; + } + diff --git a/1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch b/1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch new file mode 100644 index 00000000..a93c2272 --- /dev/null +++ b/1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch @@ -0,0 +1,23 @@ +From e68893075083a7461b1572233d23fdb23541d630 Mon Sep 17 00:00:00 2001 +From: Michael Terry +Date: Fri, 14 Dec 2012 09:02:13 -0500 +Subject: [PATCH] libudev: validate 'udev' argument to udev_enumerate_new() + +https://bugs.freedesktop.org/show_bug.cgi?id=58289 +--- + src/libudev/libudev-enumerate.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +Index: systemd-195/src/libudev/libudev-enumerate.c +=================================================================== +--- systemd-195.orig/src/libudev/libudev-enumerate.c ++++ systemd-195/src/libudev/libudev-enumerate.c +@@ -73,6 +73,8 @@ _public_ struct udev_enumerate *udev_enu + { + struct udev_enumerate *udev_enumerate; + ++ if (udev == NULL) ++ return NULL; + udev_enumerate = calloc(1, sizeof(struct udev_enumerate)); + if (udev_enumerate == NULL) + return NULL; diff --git a/1014-udev-fix-whitespace.patch b/1014-udev-fix-whitespace.patch new file mode 100644 index 00000000..fcccc037 --- /dev/null +++ b/1014-udev-fix-whitespace.patch @@ -0,0 +1,56 @@ +From 3fd0c4c66df45ee457cfb5e4ca8e285914ebc32f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 20 Nov 2012 18:07:14 +0100 +Subject: [PATCH] udev: fix whitespace + +--- + src/udev/udev-event.c | 36 ++++++++++++++++++------------------ + 1 files changed, 18 insertions(+), 18 deletions(-) + +Index: systemd-195/src/udev/udev-event.c +=================================================================== +--- systemd-195.orig/src/udev/udev-event.c ++++ systemd-195/src/udev/udev-event.c +@@ -90,24 +90,24 @@ size_t udev_event_apply_format(struct ud + const char fmt; + enum subst_type type; + } map[] = { +- { .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE }, +- { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE }, +- { .name = "attr", .fmt = 's', .type = SUBST_ATTR }, +- { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR }, +- { .name = "env", .fmt = 'E', .type = SUBST_ENV }, +- { .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL }, +- { .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER }, +- { .name = "driver", .fmt = 'd', .type = SUBST_DRIVER }, +- { .name = "devpath", .fmt = 'p', .type = SUBST_DEVPATH }, +- { .name = "id", .fmt = 'b', .type = SUBST_ID }, +- { .name = "major", .fmt = 'M', .type = SUBST_MAJOR }, +- { .name = "minor", .fmt = 'm', .type = SUBST_MINOR }, +- { .name = "result", .fmt = 'c', .type = SUBST_RESULT }, +- { .name = "parent", .fmt = 'P', .type = SUBST_PARENT }, +- { .name = "name", .fmt = 'D', .type = SUBST_NAME }, +- { .name = "links", .fmt = 'L', .type = SUBST_LINKS }, +- { .name = "root", .fmt = 'r', .type = SUBST_ROOT }, +- { .name = "sys", .fmt = 'S', .type = SUBST_SYS }, ++ { .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE }, ++ { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE }, ++ { .name = "attr", .fmt = 's', .type = SUBST_ATTR }, ++ { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR }, ++ { .name = "env", .fmt = 'E', .type = SUBST_ENV }, ++ { .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL }, ++ { .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER }, ++ { .name = "driver", .fmt = 'd', .type = SUBST_DRIVER }, ++ { .name = "devpath", .fmt = 'p', .type = SUBST_DEVPATH }, ++ { .name = "id", .fmt = 'b', .type = SUBST_ID }, ++ { .name = "major", .fmt = 'M', .type = SUBST_MAJOR }, ++ { .name = "minor", .fmt = 'm', .type = SUBST_MINOR }, ++ { .name = "result", .fmt = 'c', .type = SUBST_RESULT }, ++ { .name = "parent", .fmt = 'P', .type = SUBST_PARENT }, ++ { .name = "name", .fmt = 'D', .type = SUBST_NAME }, ++ { .name = "links", .fmt = 'L', .type = SUBST_LINKS }, ++ { .name = "root", .fmt = 'r', .type = SUBST_ROOT }, ++ { .name = "sys", .fmt = 'S', .type = SUBST_SYS }, + }; + const char *from; + char *s; diff --git a/1015-udev-properly-handle-symlink-removal-by-change-event.patch b/1015-udev-properly-handle-symlink-removal-by-change-event.patch new file mode 100644 index 00000000..e579a466 --- /dev/null +++ b/1015-udev-properly-handle-symlink-removal-by-change-event.patch @@ -0,0 +1,69 @@ +From bf9d233f781f27841be6638ee745e9c80bda5f4d Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 13 Nov 2012 02:05:06 +0100 +Subject: [PATCH] udev: properly handle symlink removal by 'change' event + +If a 'change' event is supposed to remove created symlinks, we create +a new device structure from the sysfs device and fill it with the list +of links, to compute the delta of the old and new list of links to apply. +If the device is already 'remove'd by the kernel though, udev fails to +create the device structure, so the links are not removed properly. + +> From: Neil Brown +> Date: Thu, 8 Nov 2012 10:39:06 +0100 +> Subject: [PATCH] If a 'change' event does not get handled by udev until +> after the device has subsequently disappeared, udev mis-handles +> it. This can happen with 'md' devices which emit a change +> event and then a remove event when they are stopped. It is +> normally only noticed if udev is very busy (lots of arrays +> being stopped at once) or the machine is otherwise loaded +> and reponding slowly. +> +> There are two problems. +> +> 1/ udev_device_new_from_syspath() will refuse to create the device +> structure if the device does not exist in /sys, and particularly if +> the uevent file does not exist. +> If a 'db' file does exist, that is sufficient evidence that the device +> is genuine and should be created. Equally if we have just received an +> event from the kernel about the device, it must be real. +> +> This patch just disabled the test for the 'uevent' file, it doesn't +> try imposing any other tests - it isn't clear that they are really +> needed. +> +> 2/ udev_event_execute_rules() calls udev_device_read_db() on a 'device' +> structure that is largely uninitialised and in particular does not +> have the 'subsystem' set. udev_device_read_db() needs the subsystem +> so it tries to read the 'subsystem' symlink out of sysfs. If the +> device is already deleted, this naturally fails. +> udev_event_execute_rules() knows the subsystem (as it was in the +> event message) so this patch simply sets the subsystem for the device +> structure to be loaded to match the subsystem of the device structure +> that is handling the event. +> +> With these two changes, deleted handling of change events will still +> correctly remove any symlinks that are not needed any more. + +Use udev_device_new() instead of allowing udev_device_new_from_syspath() +to proceed without a sysfs device. +--- + src/udev/udev-event.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +Index: systemd-195/src/udev/udev-event.c +=================================================================== +--- systemd-195.orig/src/udev/udev-event.c ++++ systemd-195/src/udev/udev-event.c +@@ -797,8 +797,10 @@ int udev_event_execute_rules(struct udev + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); + } else { +- event->dev_db = udev_device_new_from_syspath(event->udev, udev_device_get_syspath(dev)); ++ event->dev_db = udev_device_new(event->udev); + 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_read_db(event->dev_db, NULL); + udev_device_set_info_loaded(event->dev_db); + diff --git a/1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch b/1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch new file mode 100644 index 00000000..bf6d799e --- /dev/null +++ b/1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch @@ -0,0 +1,64 @@ +Index: systemd-195/src/udev/udev-builtin.c +=================================================================== +--- systemd-195.orig/src/udev/udev-builtin.c ++++ systemd-195/src/udev/udev-builtin.c +@@ -42,24 +42,18 @@ static const struct udev_builtin *builti + #endif + }; + +-int udev_builtin_init(struct udev *udev) ++void udev_builtin_init(struct udev *udev) + { + unsigned int i; +- int err = 0; + + if (initialized) +- return 0; ++ return; + +- for (i = 0; i < ELEMENTSOF(builtins); i++) { +- if (builtins[i]->init) { +- err = builtins[i]->init(udev); +- if (err < 0) +- break; +- } +- } ++ for (i = 0; i < ELEMENTSOF(builtins); i++) ++ if (builtins[i]->init) ++ builtins[i]->init(udev); + + initialized = true; +- return err; + } + + void udev_builtin_exit(struct udev *udev) +@@ -79,13 +73,11 @@ void udev_builtin_exit(struct udev *udev + bool udev_builtin_validate(struct udev *udev) + { + unsigned int i; +- bool change = false; + + for (i = 0; i < ELEMENTSOF(builtins); i++) +- if (builtins[i]->validate) +- if (builtins[i]->validate(udev)) +- change = true; +- return change; ++ if (builtins[i]->validate && builtins[i]->validate(udev)) ++ return true; ++ return false; + } + + void udev_builtin_list(struct udev *udev) +Index: systemd-195/src/udev/udev.h +=================================================================== +--- systemd-195.orig/src/udev/udev.h ++++ systemd-195/src/udev/udev.h +@@ -167,7 +167,7 @@ extern const struct udev_builtin udev_bu + extern const struct udev_builtin udev_builtin_usb_db; + extern const struct udev_builtin udev_builtin_usb_id; + extern const struct udev_builtin udev_builtin_uaccess; +-int udev_builtin_init(struct udev *udev); ++void udev_builtin_init(struct udev *udev); + void udev_builtin_exit(struct udev *udev); + enum udev_builtin_cmd udev_builtin_lookup(const char *command); + const char *udev_builtin_name(enum udev_builtin_cmd cmd); diff --git a/1017-udev-use-usec_t-and-now.patch b/1017-udev-use-usec_t-and-now.patch new file mode 100644 index 00000000..ca0b0131 --- /dev/null +++ b/1017-udev-use-usec_t-and-now.patch @@ -0,0 +1,335 @@ +Index: systemd-195/src/libudev/libudev-device-private.c +=================================================================== +--- systemd-195.orig/src/libudev/libudev-device-private.c ++++ systemd-195/src/libudev/libudev-device-private.c +@@ -147,7 +147,7 @@ int udev_device_update_db(struct udev_de + } + + if (udev_device_get_usec_initialized(udev_device) > 0) +- fprintf(f, "I:%llu\n", udev_device_get_usec_initialized(udev_device)); ++ fprintf(f, "I:%llu\n", (unsigned long long)udev_device_get_usec_initialized(udev_device)); + + udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(udev_device)) { + if (!udev_list_entry_get_num(list_entry)) +Index: systemd-195/src/libudev/libudev-device.c +=================================================================== +--- systemd-195.orig/src/libudev/libudev-device.c ++++ systemd-195/src/libudev/libudev-device.c +@@ -67,7 +67,7 @@ struct udev_device { + struct udev_list sysattr_list; + struct udev_list tags_list; + unsigned long long int seqnum; +- unsigned long long int usec_initialized; ++ usec_t usec_initialized; + int timeout; + int devlink_priority; + int refcount; +@@ -262,7 +262,7 @@ static int udev_device_set_devtype(struc + return 0; + } + +-static int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem) ++int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem) + { + free(udev_device->subsystem); + udev_device->subsystem = strdup(subsystem); +@@ -1286,7 +1286,7 @@ _public_ const char *udev_device_get_act + **/ + _public_ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device) + { +- unsigned long long now_ts; ++ usec_t now_ts; + + if (udev_device == NULL) + return 0; +@@ -1294,23 +1294,23 @@ _public_ unsigned long long int udev_dev + udev_device_read_db(udev_device, NULL); + if (udev_device->usec_initialized == 0) + return 0; +- now_ts = now_usec(); ++ now_ts = now(CLOCK_MONOTONIC); + if (now_ts == 0) + return 0; + return now_ts - udev_device->usec_initialized; + } + +-unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device) ++usec_t udev_device_get_usec_initialized(struct udev_device *udev_device) + { + return udev_device->usec_initialized; + } + +-void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized) ++void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized) + { + char num[32]; + + udev_device->usec_initialized = usec_initialized; +- snprintf(num, sizeof(num), "%llu", usec_initialized); ++ snprintf(num, sizeof(num), "%llu", (unsigned long long)usec_initialized); + udev_device_add_property(udev_device, "USEC_INITIALIZED", num); + } + +Index: systemd-195/src/libudev/libudev-private.h +=================================================================== +--- systemd-195.orig/src/libudev/libudev-private.h ++++ systemd-195/src/libudev/libudev-private.h +@@ -48,6 +48,7 @@ struct udev_list_entry *udev_get_propert + /* libudev-device.c */ + struct udev_device *udev_device_new(struct udev *udev); + mode_t udev_device_get_devnode_mode(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_devnode(struct udev_device *udev_device, const char *devnode); + int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink); +@@ -66,8 +67,8 @@ void udev_device_set_is_initialized(stru + int udev_device_add_tag(struct udev_device *udev_device, const char *tag); + void udev_device_cleanup_tags_list(struct udev_device *udev_device); + int udev_device_get_timeout(struct udev_device *udev_device); +-unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device); +-void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized); ++usec_t udev_device_get_usec_initialized(struct udev_device *udev_device); ++void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized); + int udev_device_get_devlink_priority(struct udev_device *udev_device); + int udev_device_set_devlink_priority(struct udev_device *udev_device, int prio); + int udev_device_get_watch_handle(struct udev_device *udev_device); +@@ -166,7 +167,5 @@ uid_t util_lookup_user(struct udev *udev + 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); +-unsigned long long ts_usec(const struct timespec *ts); +-unsigned long long now_usec(void); + ssize_t print_kmsg(const char *fmt, ...) __attribute__((format(printf, 1, 2))); + #endif +Index: systemd-195/src/libudev/libudev-util.c +=================================================================== +--- systemd-195.orig/src/libudev/libudev-util.c ++++ systemd-195/src/libudev/libudev-util.c +@@ -691,23 +691,6 @@ uint64_t util_string_bloom64(const char + return bits; + } + +-#define USEC_PER_SEC 1000000ULL +-#define NSEC_PER_USEC 1000ULL +-unsigned long long ts_usec(const struct timespec *ts) +-{ +- return (unsigned long long) ts->tv_sec * USEC_PER_SEC + +- (unsigned long long) ts->tv_nsec / NSEC_PER_USEC; +-} +- +-unsigned long long now_usec(void) +-{ +- struct timespec ts; +- +- if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) +- return 0; +- return ts_usec(&ts); +-} +- + ssize_t print_kmsg(const char *fmt, ...) + { + int fd; +Index: systemd-195/src/udev/udev-event.c +=================================================================== +--- systemd-195.orig/src/udev/udev-event.c ++++ systemd-195/src/udev/udev-event.c +@@ -48,7 +48,7 @@ struct udev_event *udev_event_new(struct + event->udev = udev; + udev_list_init(udev, &event->run_list, false); + event->fd_signal = -1; +- event->birth_usec = now_usec(); ++ event->birth_usec = now(CLOCK_MONOTONIC); + event->timeout_usec = 30 * 1000 * 1000; + return event; + } +@@ -466,9 +466,9 @@ static void spawn_read(struct udev_event + int i; + + if (event->timeout_usec > 0) { +- unsigned long long age_usec; ++ usec_t age_usec; + +- age_usec = now_usec() - event->birth_usec; ++ age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; + if (age_usec >= event->timeout_usec) { + log_error("timeout '%s'\n", cmd); + goto out; +@@ -554,9 +554,9 @@ static int spawn_wait(struct udev_event + int fdcount; + + if (event->timeout_usec > 0) { +- unsigned long long age_usec; ++ usec_t age_usec; + +- age_usec = now_usec() - event->birth_usec; ++ age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; + if (age_usec >= event->timeout_usec) + timeout = 1000; + else +@@ -862,7 +862,7 @@ int udev_event_execute_rules(struct udev + if (event->dev_db != NULL && udev_device_get_usec_initialized(event->dev_db) > 0) + udev_device_set_usec_initialized(event->dev, udev_device_get_usec_initialized(event->dev_db)); + else if (udev_device_get_usec_initialized(event->dev) == 0) +- udev_device_set_usec_initialized(event->dev, now_usec()); ++ udev_device_set_usec_initialized(event->dev, now(CLOCK_MONOTONIC)); + + /* (re)write database file */ + udev_device_update_db(dev); +Index: systemd-195/src/udev/udev-rules.c +=================================================================== +--- systemd-195.orig/src/udev/udev-rules.c ++++ systemd-195/src/udev/udev-rules.c +@@ -47,7 +47,7 @@ struct uid_gid { + struct udev_rules { + struct udev *udev; + char **dirs; +- unsigned long long *dirs_ts_usec; ++ usec_t *dirs_ts_usec; + int resolve_names; + + /* every key in the rules file becomes a token */ +@@ -1691,7 +1691,7 @@ bool udev_rules_check_timestamp(struct u + if (stat(rules->dirs[i], &stats) < 0) + continue; + +- if (rules->dirs_ts_usec[i] == ts_usec(&stats.st_mtim)) ++ if (rules->dirs_ts_usec[i] == timespec_load(&stats.st_mtim)) + continue; + + /* first check */ +@@ -1701,7 +1701,7 @@ bool udev_rules_check_timestamp(struct u + } + + /* update timestamp */ +- rules->dirs_ts_usec[i] = ts_usec(&stats.st_mtim); ++ rules->dirs_ts_usec[i] = timespec_load(&stats.st_mtim); + } + out: + return changed; +Index: systemd-195/src/udev/udev.h +=================================================================== +--- systemd-195.orig/src/udev/udev.h ++++ systemd-195/src/udev/udev.h +@@ -41,8 +41,8 @@ struct udev_event { + gid_t gid; + struct udev_list run_list; + int exec_delay; +- unsigned long long birth_usec; +- unsigned long long timeout_usec; ++ usec_t birth_usec; ++ usec_t timeout_usec; + int fd_signal; + unsigned int builtin_run; + unsigned int builtin_ret; +Index: systemd-195/src/udev/udevadm-settle.c +=================================================================== +--- systemd-195.orig/src/udev/udevadm-settle.c ++++ systemd-195/src/udev/udevadm-settle.c +@@ -47,9 +47,9 @@ static int adm_settle(struct udev *udev, + { "help", no_argument, NULL, 'h' }, + {} + }; +- unsigned long long start_usec = now_usec(); +- unsigned long long start = 0; +- unsigned long long end = 0; ++ usec_t start_usec = now(CLOCK_MONOTONIC); ++ usec_t start = 0; ++ usec_t end = 0; + int quiet = 0; + const char *exists = NULL; + unsigned int timeout = 120; +@@ -123,7 +123,7 @@ static int adm_settle(struct udev *udev, + start = 0; + end = 0; + } +- log_debug("start=%llu end=%llu current=%llu\n", start, end, kernel_seq); ++ log_debug("start=%llu end=%llu current=%llu\n", (unsigned long long)start, (unsigned long long)end, kernel_seq); + } else { + if (end > 0) { + log_error("seq-end needs seq-start parameter, ignoring\n"); +@@ -199,9 +199,9 @@ static int adm_settle(struct udev *udev, + } + + if (timeout > 0) { +- unsigned long long age_usec; ++ usec_t age_usec; + +- age_usec = now_usec() - start_usec; ++ age_usec = now(CLOCK_MONOTONIC) - start_usec; + if (age_usec / (1000 * 1000) >= timeout) { + struct udev_list_entry *list_entry; + +Index: systemd-195/src/udev/udevd.c +=================================================================== +--- systemd-195.orig/src/udev/udevd.c ++++ systemd-195/src/udev/udevd.c +@@ -122,7 +122,7 @@ struct worker { + struct udev_monitor *monitor; + enum worker_state state; + struct event *event; +- unsigned long long event_start_usec; ++ usec_t event_start_usec; + }; + + /* passed from worker to main process */ +@@ -378,7 +378,7 @@ out: + worker->monitor = worker_monitor; + worker->pid = pid; + worker->state = WORKER_RUNNING; +- worker->event_start_usec = now_usec(); ++ worker->event_start_usec = now(CLOCK_MONOTONIC); + worker->event = event; + event->state = EVENT_RUNNING; + udev_list_node_append(&worker->node, &worker_list); +@@ -409,7 +409,7 @@ static void event_run(struct event *even + worker_ref(worker); + worker->event = event; + worker->state = WORKER_RUNNING; +- worker->event_start_usec = now_usec(); ++ worker->event_start_usec = now(CLOCK_MONOTONIC); + event->state = EVENT_RUNNING; + return; + } +@@ -1381,7 +1381,7 @@ int main(int argc, char *argv[]) + udev_list_node_init(&worker_list); + + for (;;) { +- static unsigned long long last_usec; ++ static usec_t last_usec; + struct epoll_event ev[8]; + int fdcount; + int timeout; +@@ -1452,7 +1452,7 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now_usec() - worker->event_start_usec) > 30 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { + log_error("worker [%u] %s timeout; kill it\n", worker->pid, + worker->event ? worker->event->devpath : ""); + kill(worker->pid, SIGKILL); +@@ -1486,13 +1486,13 @@ int main(int argc, char *argv[]) + } + + /* check for changed config, every 3 seconds at most */ +- if ((now_usec() - last_usec) > 3 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) { + if (udev_rules_check_timestamp(rules)) + reload = true; + if (udev_builtin_validate(udev)) + reload = true; + +- last_usec = now_usec(); ++ last_usec = now(CLOCK_MONOTONIC); + } + + /* reload requested, HUP signal received, rules changed, builtin changed */ +@@ -1512,7 +1512,7 @@ int main(int argc, char *argv[]) + + dev = udev_monitor_receive_device(monitor); + if (dev != NULL) { +- udev_device_set_usec_initialized(dev, now_usec()); ++ udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); + if (rules == NULL) + rules = udev_rules_new(udev, resolve_names); + if (event_queue_insert(dev) < 0) diff --git a/fix-build-glibc217.patch b/fix-build-glibc217.patch index fe35a571..d4a2d8ec 100644 --- a/fix-build-glibc217.patch +++ b/fix-build-glibc217.patch @@ -14,11 +14,11 @@ Fixes a FTBFS in Fedora Rawhide. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/configure.ac b/configure.ac -index c4638d1..71ea6ad 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -171,7 +171,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ +Index: systemd-195/configure.ac +=================================================================== +--- systemd-195.orig/configure.ac ++++ systemd-195/configure.ac +@@ -172,7 +172,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [L -Wl,-z,now]) AC_SUBST([OUR_LDFLAGS], $with_ldflags) @@ -27,6 +27,3 @@ index c4638d1..71ea6ad 100644 AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])]) save_LIBS="$LIBS" --- -1.7.10.4 - diff --git a/fix-dbus-crash.patch b/fix-dbus-crash.patch index caf53645..dcf6c8f1 100644 --- a/fix-dbus-crash.patch +++ b/fix-dbus-crash.patch @@ -15,11 +15,11 @@ Walters' comment.] src/core/dbus-manager.c | 1 - 1 file changed, 1 deletion(-) -diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c -index 2010241..3cf3e90 100644 ---- a/src/core/dbus-manager.c -+++ b/src/core/dbus-manager.c -@@ -1436,7 +1436,6 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, +Index: systemd-195/src/core/dbus-manager.c +=================================================================== +--- systemd-195.orig/src/core/dbus-manager.c ++++ systemd-195/src/core/dbus-manager.c +@@ -1432,7 +1432,6 @@ static DBusHandlerResult bus_manager_mes r = unit_file_get_list(m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, NULL, h); if (r < 0) { unit_file_list_free(h); @@ -27,6 +27,3 @@ index 2010241..3cf3e90 100644 return bus_send_error_reply(connection, message, NULL, r); } --- -1.7.10.4 - diff --git a/fix-logind-pty-seat.patch b/fix-logind-pty-seat.patch index 50b3a3da..079c5baf 100644 --- a/fix-logind-pty-seat.patch +++ b/fix-logind-pty-seat.patch @@ -10,11 +10,11 @@ same session as the X session itself. src/login/logind-dbus.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index 4326e5b..8b6021d 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -415,8 +415,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess +Index: systemd-195/src/login/logind-dbus.c +=================================================================== +--- systemd-195.orig/src/login/logind-dbus.c ++++ systemd-195/src/login/logind-dbus.c +@@ -409,8 +409,7 @@ static int bus_manager_create_session(Ma if (vtnr != 0) return -EINVAL; @@ -24,6 +24,3 @@ index 4326e5b..8b6021d 100644 if (s) { if (seat_can_multi_session(s)) { --- -1.7.10.4 - diff --git a/mount-efivars.patch b/mount-efivars.patch index e13e52d1..23cb3a8c 100644 --- a/mount-efivars.patch +++ b/mount-efivars.patch @@ -24,102 +24,18 @@ Signed-off-by: Lee, Chun-Yi src/core/mount-setup.c | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) -diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c -index cc2a2d9..ce8a8e7 100644 ---- a/src/core/kmod-setup.c -+++ b/src/core/kmod-setup.c -@@ -31,9 +31,10 @@ - #include "kmod-setup.h" - - static const char * const kmod_table[] = { -- "autofs4", "/sys/class/misc/autofs", -- "ipv6", "/sys/module/ipv6", -- "unix", "/proc/net/unix" -+ "autofs4", "/sys/class/misc/autofs", -+ "ipv6", "/sys/module/ipv6", -+ "efivarfs", "/sys/firmware/efi/efivars", -+ "unix", "/proc/net/unix" - }; - - #pragma GCC diagnostic push -diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c -index 0fd112f..9894c7f 100644 ---- a/src/core/mount-setup.c -+++ b/src/core/mount-setup.c -@@ -66,6 +66,7 @@ static const MountPoint mount_table[] = { - { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, - { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true }, - { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, -+ { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, - { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, - { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true }, - { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, --- -1.7.10.4 - -From c1e5704657315b436c0409e8172c1fcb76adccad Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 4 Nov 2012 16:06:27 +0100 -Subject: [PATCH] shared: add is_efiboot() - ---- - src/shared/util.c | 4 ++++ - src/shared/util.h | 2 ++ - 2 files changed, 6 insertions(+) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 2a8afae..9983695 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -77,6 +77,10 @@ char **saved_argv = NULL; - static volatile unsigned cached_columns = 0; - static volatile unsigned cached_lines = 0; - -+bool is_efiboot(void) { -+ return access("/sys/firmware/efi", F_OK) >= 0; -+} -+ - size_t page_size(void) { - static __thread size_t pgsz = 0; - long r; -diff --git a/src/shared/util.h b/src/shared/util.h -index e387b12..99972cc 100644 ---- a/src/shared/util.h -+++ b/src/shared/util.h -@@ -90,6 +90,8 @@ union dirent_storage { - #define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" - #define ANSI_HIGHLIGHT_OFF "\x1B[0m" - -+bool is_efiboot(void); -+ - usec_t now(clockid_t clock); - - dual_timestamp* dual_timestamp_get(dual_timestamp *ts); --- -1.7.10.4 - -From 1022373284b7562431fb0a6dba45db8af089a0e3 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 4 Nov 2012 16:54:19 +0100 -Subject: [PATCH] kmod-setup: add conditional module loading callback - ---- - src/core/kmod-setup.c | 32 ++++++++++++++++++++------------ - 1 file changed, 20 insertions(+), 12 deletions(-) - -diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c -index ce8a8e7..383a6b2 100644 ---- a/src/core/kmod-setup.c -+++ b/src/core/kmod-setup.c -@@ -30,11 +30,17 @@ +Index: systemd-195/src/core/kmod-setup.c +=================================================================== +--- systemd-195.orig/src/core/kmod-setup.c ++++ systemd-195/src/core/kmod-setup.c +@@ -30,10 +30,16 @@ #include "kmod-setup.h" -static const char * const kmod_table[] = { -- "autofs4", "/sys/class/misc/autofs", -- "ipv6", "/sys/module/ipv6", -- "efivarfs", "/sys/firmware/efi/efivars", -- "unix", "/proc/net/unix" +- "autofs4", "/sys/class/misc/autofs", +- "ipv6", "/sys/module/ipv6", +- "unix", "/proc/net/unix" +typedef struct Kmodule { + const char *name; + const char *directory; @@ -129,12 +45,11 @@ index ce8a8e7..383a6b2 100644 +static const KModule kmod_table[] = { + { "autofs4", "/sys/class/misc/autofs", NULL } , + { "ipv6", "/sys/module/ipv6", NULL }, -+ { "efivarfs", "/sys/firmware/efi/efivars", NULL }, + { "unix", "/proc/net/unix", NULL } , }; #pragma GCC diagnostic push -@@ -42,7 +48,8 @@ static const char * const kmod_table[] = { +@@ -41,7 +47,8 @@ static const char * const kmod_table[] = static void systemd_kmod_log(void *data, int priority, const char *file, int line, const char *fn, const char *format, va_list args) { @@ -144,7 +59,7 @@ index ce8a8e7..383a6b2 100644 } #pragma GCC diagnostic pop -@@ -53,13 +60,15 @@ int kmod_setup(void) { +@@ -52,13 +59,15 @@ int kmod_setup(void) { int err; for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) { @@ -162,7 +77,7 @@ index ce8a8e7..383a6b2 100644 if (!ctx) { ctx = kmod_new(NULL, NULL); -@@ -69,13 +78,12 @@ int kmod_setup(void) { +@@ -68,13 +77,12 @@ int kmod_setup(void) { } kmod_set_log_fn(ctx, systemd_kmod_log, NULL); @@ -178,7 +93,7 @@ index ce8a8e7..383a6b2 100644 continue; } -@@ -85,7 +93,7 @@ int kmod_setup(void) { +@@ -84,7 +92,7 @@ int kmod_setup(void) { else if (err == KMOD_PROBE_APPLY_BLACKLIST) log_info("Module '%s' is blacklisted", kmod_module_get_name(mod)); else @@ -187,52 +102,10 @@ index ce8a8e7..383a6b2 100644 kmod_module_unref(mod); } --- -1.7.10.4 - -From 3dfb265083347cb5700dc38f7cc0f479f378e6e9 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 4 Nov 2012 16:55:23 +0100 -Subject: [PATCH] kmod-setup: mounting efivarfs, *after* we tried to mount it, - is pointless - -The mount() system call, which we issue before loading modules, will trigger -a modprobe by the kernel and block until it returns. Trying to load it again -later, will have exactly the same result as the first time. ---- - src/core/kmod-setup.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c -index 383a6b2..20ab232 100644 ---- a/src/core/kmod-setup.c -+++ b/src/core/kmod-setup.c -@@ -39,7 +39,6 @@ typedef struct Kmodule { - static const KModule kmod_table[] = { - { "autofs4", "/sys/class/misc/autofs", NULL } , - { "ipv6", "/sys/module/ipv6", NULL }, -- { "efivarfs", "/sys/firmware/efi/efivars", NULL }, - { "unix", "/proc/net/unix", NULL } , - }; - --- -1.7.10.4 - -From 6aa220e019f9dffd96590b06b68f937985204109 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 4 Nov 2012 17:03:48 +0100 -Subject: [PATCH] mount-setup: try mounting 'efivarfs' only if the system - bootet with EFI - ---- - TODO | 3 --- - src/core/mount-setup.c | 50 ++++++++++++++++++++++++++++++++---------------- - 2 files changed, 34 insertions(+), 19 deletions(-) - -diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c -index 9894c7f..98614d0 100644 ---- a/src/core/mount-setup.c -+++ b/src/core/mount-setup.c +Index: systemd-195/src/core/mount-setup.c +=================================================================== +--- systemd-195.orig/src/core/mount-setup.c ++++ systemd-195/src/core/mount-setup.c @@ -46,14 +46,20 @@ #define TTY_GID 5 #endif @@ -256,7 +129,7 @@ index 9894c7f..98614d0 100644 } MountPoint; /* The first three entries we might need before SELinux is up. The -@@ -62,16 +68,26 @@ typedef struct MountPoint { +@@ -62,15 +68,26 @@ typedef struct MountPoint { #define N_EARLY_MOUNT 4 static const MountPoint mount_table[] = { @@ -264,7 +137,6 @@ index 9894c7f..98614d0 100644 - { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, - { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true }, - { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, -- { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, - { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, - { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true }, - { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, @@ -293,7 +165,7 @@ index 9894c7f..98614d0 100644 }; /* These are API file systems that might be mounted by other software, -@@ -119,6 +135,9 @@ static int mount_one(const MountPoint *p, bool relabel) { +@@ -118,6 +135,9 @@ static int mount_one(const MountPoint *p assert(p); @@ -303,7 +175,7 @@ index 9894c7f..98614d0 100644 /* Relabel first, just in case */ if (relabel) label_fix(p->where, true, true); -@@ -131,7 +150,7 @@ static int mount_one(const MountPoint *p, bool relabel) { +@@ -130,7 +150,7 @@ static int mount_one(const MountPoint *p return 0; /* Skip securityfs in a container */ @@ -312,7 +184,7 @@ index 9894c7f..98614d0 100644 return 0; /* The access mode here doesn't really matter too much, since -@@ -149,8 +168,8 @@ static int mount_one(const MountPoint *p, bool relabel) { +@@ -148,8 +168,8 @@ static int mount_one(const MountPoint *p p->type, p->flags, p->options) < 0) { @@ -323,7 +195,7 @@ index 9894c7f..98614d0 100644 } /* Relabel again, since we now mounted something fresh here */ -@@ -289,7 +308,6 @@ int mount_cgroup_controllers(char ***join_controllers) { +@@ -288,7 +308,6 @@ int mount_cgroup_controllers(char ***joi p.type = "cgroup"; p.options = options; p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV; @@ -331,6 +203,31 @@ index 9894c7f..98614d0 100644 r = mount_one(&p, true); free(controller); --- -1.7.10.4 - +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -75,6 +75,10 @@ char **saved_argv = NULL; + static volatile unsigned cached_columns = 0; + static volatile unsigned cached_lines = 0; + ++bool is_efiboot(void) { ++ return access("/sys/firmware/efi", F_OK) >= 0; ++} ++ + size_t page_size(void) { + static __thread size_t pgsz = 0; + long r; +Index: systemd-195/src/shared/util.h +=================================================================== +--- systemd-195.orig/src/shared/util.h ++++ systemd-195/src/shared/util.h +@@ -90,6 +90,8 @@ union dirent_storage { + #define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" + #define ANSI_HIGHLIGHT_OFF "\x1B[0m" + ++bool is_efiboot(void); ++ + usec_t now(clockid_t clock); + + dual_timestamp* dual_timestamp_get(dual_timestamp *ts); diff --git a/new-lsb-headers.patch b/new-lsb-headers.patch index 2c20a481..e48728fb 100644 --- a/new-lsb-headers.patch +++ b/new-lsb-headers.patch @@ -1,8 +1,8 @@ -Index: systemd-189/src/core/service.c +Index: systemd-195/src/core/service.c =================================================================== ---- systemd-189.orig/src/core/service.c -+++ systemd-189/src/core/service.c -@@ -145,6 +145,7 @@ static void service_init(Unit *u) { +--- systemd-195.orig/src/core/service.c ++++ systemd-195/src/core/service.c +@@ -146,6 +146,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; s->sysv_start_priority_from_rcnd = -1; @@ -10,7 +10,7 @@ Index: systemd-189/src/core/service.c #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -877,6 +878,34 @@ static int service_load_sysv_path(Servic +@@ -906,6 +907,34 @@ static int service_load_sysv_path(Servic free(short_description); short_description = d; @@ -45,7 +45,7 @@ Index: systemd-189/src/core/service.c } else if (state == LSB_DESCRIPTION) { if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -935,7 +964,8 @@ static int service_load_sysv_path(Servic +@@ -963,7 +992,8 @@ static int service_load_sysv_path(Servic /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -55,7 +55,7 @@ Index: systemd-189/src/core/service.c s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2107,7 +2137,7 @@ static void service_enter_running(Servic +@@ -2138,7 +2168,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -64,10 +64,10 @@ Index: systemd-189/src/core/service.c s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); -Index: systemd-189/src/core/service.h +Index: systemd-195/src/core/service.h =================================================================== ---- systemd-189.orig/src/core/service.h -+++ systemd-189/src/core/service.h +--- systemd-195.orig/src/core/service.h ++++ systemd-195/src/core/service.h @@ -176,6 +176,7 @@ struct Service { bool is_sysv:1; bool sysv_has_lsb:1; diff --git a/support-sysvinit.patch b/support-sysvinit.patch index 98c91ce2..2057a634 100644 --- a/support-sysvinit.patch +++ b/support-sysvinit.patch @@ -1,8 +1,8 @@ -Index: systemd-36/src/systemctl.c +Index: systemd-195/src/systemctl/systemctl.c =================================================================== ---- systemd-36.orig/src/systemctl/systemctl.c -+++ systemd-36/src/systemctl/systemctl.c -@@ -4672,10 +4672,13 @@ static int parse_argv(int argc, char *ar +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -4678,10 +4678,13 @@ static int parse_argv(int argc, char *ar /* Hmm, so some other init system is * running, we need to forward this * request to it. For now we simply diff --git a/sync-on-shutdown.patch b/sync-on-shutdown.patch index 04537ea9..6443fb48 100644 --- a/sync-on-shutdown.patch +++ b/sync-on-shutdown.patch @@ -14,11 +14,11 @@ disks/read-only remount them anyway before going down. src/core/shutdown.c | 7 +++++++ 2 files changed, 8 insertions(+) -diff --git a/src/core/service.c b/src/core/service.c -index cf08485..df72aba 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2485,6 +2485,7 @@ static int service_start_limit_test(Service *s) { +Index: systemd-195/src/core/service.c +=================================================================== +--- systemd-195.orig/src/core/service.c ++++ systemd-195/src/core/service.c +@@ -2526,6 +2526,7 @@ static int service_start_limit_test(Serv case SERVICE_START_LIMIT_REBOOT_IMMEDIATE: log_warning("%s start request repeated too quickly, rebooting immediately.", UNIT(s)->id); @@ -26,10 +26,10 @@ index cf08485..df72aba 100644 reboot(RB_AUTOBOOT); break; -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index cc8c57b..b59aef1 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c +Index: systemd-195/src/core/shutdown.c +=================================================================== +--- systemd-195.orig/src/core/shutdown.c ++++ systemd-195/src/core/shutdown.c @@ -273,6 +273,13 @@ int main(int argc, char *argv[]) { } } @@ -44,6 +44,3 @@ index cc8c57b..b59aef1 100644 if (cmd == LINUX_REBOOT_CMD_KEXEC) { if (!in_container) { --- -1.7.10.4 - diff --git a/systemd-mini.changes b/systemd-mini.changes index 27ae0040..a0a94445 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Wed Jan 9 09:43:15 UTC 2013 - rmilasan@suse.com + +- udev: path_id - handle Hyper-V devices + add: 1008-udev-path_id-handle-Hyper-V-devices.patch +- keymap: Update the list of Samsung Series 9 models + add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +- keymap: Add Samsung 700T + add: 1010-keymap-Add-Samsung-700T.patch +- libudev: avoid leak during realloc failure + add: 1011-libudev-avoid-leak-during-realloc-failure.patch +- libudev: do not resolve $attr{device} symlinks + add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch +- libudev: validate 'udev' argument to udev_enumerate_new() + add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +- udev: fix whitespace + add: 1014-udev-fix-whitespace.patch +- udev: properly handle symlink removal by 'change' event + add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch +- udev: builtin - do not fail builtin initialization if one of + them returns an error + add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +- udev: use usec_t and now() + add: 1017-udev-use-usec_t-and-now.patch + ------------------------------------------------------------------- Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com @@ -12,8 +37,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org - detect-btrfs-ssd.patch: Fix btrfs detection on SSD. - timedated-donot-close-bogus-dbus-connection.patch: Avoid - closing an non-existent dbus connection and getting assertion - failures. + closing an non-existent dbus connection and getting assertion + failures. ------------------------------------------------------------------- Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index b7be3679..2b491b12 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -178,6 +178,26 @@ Patch1005: 1005-udev-fix-sg-autoload-regression.patch Patch1006: 1006-fix-devname-prefix.patch # PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch +# PATCH-FIX-UPSTREAM 1008-udev-path_id-handle-Hyper-V-devices.patch +Patch1008: 1008-udev-path_id-handle-Hyper-V-devices.patch +# PATCH-FIX-UPSTREAM 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +Patch1009: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +# PATCH-FIX-UPSTREAM 1010-keymap-Add-Samsung-700T.patch +Patch1010: 1010-keymap-Add-Samsung-700T.patch +# PATCH-FIX-UPSTREAM 1011-libudev-avoid-leak-during-realloc-failure.patch +Patch1011: 1011-libudev-avoid-leak-during-realloc-failure.patch +# PATCH-FIX-UPSTREAM 1012-libudev-do-not-resolve-attr-device-symlinks.patch +Patch1012: 1012-libudev-do-not-resolve-attr-device-symlinks.patch +# PATCH-FIX-UPSTREAM 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +Patch1013: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +# PATCH-FIX-UPSTREAM 1014-udev-fix-whitespace.patch +Patch1014: 1014-udev-fix-whitespace.patch +# PATCH-FIX-UPSTREAM 1015-udev-properly-handle-symlink-removal-by-change-event.patch +Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch +# PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +# PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch +Patch1017: 1017-udev-use-usec_t-and-now.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -345,6 +365,16 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 #systemd %patch1 -p1 diff --git a/systemd-numlock-suse.patch b/systemd-numlock-suse.patch index 2c90cde4..245a4bc3 100644 --- a/systemd-numlock-suse.patch +++ b/systemd-numlock-suse.patch @@ -1,7 +1,7 @@ -Index: systemd-190/src/vconsole/vconsole-setup.c +Index: systemd-195/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-190.orig/src/vconsole/vconsole-setup.c -+++ systemd-190/src/vconsole/vconsole-setup.c +--- systemd-195.orig/src/vconsole/vconsole-setup.c ++++ systemd-195/src/vconsole/vconsole-setup.c @@ -287,12 +287,14 @@ int main(int argc, char **argv) { char *vc_kbd_delay = NULL; char *vc_kbd_rate = NULL; @@ -17,7 +17,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; -@@ -388,6 +390,37 @@ int main(int argc, char **argv) { +@@ -380,6 +382,37 @@ int main(int argc, char **argv) { vc_keymap = t; } disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; @@ -55,7 +55,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c #elif defined(TARGET_SUSE) r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, -@@ -395,6 +428,7 @@ int main(int argc, char **argv) { +@@ -387,6 +420,7 @@ int main(int argc, char **argv) { "KBD_DELAY", &vc_kbd_delay, "KBD_RATE", &vc_kbd_rate, "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, @@ -63,7 +63,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c "COMPOSETABLE", &vc_compose_table, NULL); if (r < 0 && r != -ENOENT) -@@ -565,6 +599,10 @@ int main(int argc, char **argv) { +@@ -557,6 +591,10 @@ int main(int argc, char **argv) { finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -74,11 +74,11 @@ Index: systemd-190/src/vconsole/vconsole-setup.c #ifdef TARGET_SUSE if (compose_table_pid > 0) -Index: systemd-190/Makefile.am +Index: systemd-195/Makefile.am =================================================================== ---- systemd-190.orig/Makefile.am -+++ systemd-190/Makefile.am -@@ -1989,6 +1989,19 @@ dist_udevrules_DATA += \ +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -2017,6 +2017,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -98,11 +98,11 @@ Index: systemd-190/Makefile.am if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -Index: systemd-190/configure.ac +Index: systemd-195/configure.ac =================================================================== ---- systemd-190.orig/configure.ac -+++ systemd-190/configure.ac -@@ -598,6 +598,13 @@ fi +--- systemd-195.orig/configure.ac ++++ systemd-195/configure.ac +@@ -660,6 +660,13 @@ fi with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution]) @@ -116,10 +116,10 @@ Index: systemd-190/configure.ac # Location of the init scripts as mandated by LSB SYSTEM_SYSVINIT_PATH=/etc/init.d SYSTEM_SYSVRCND_PATH=/etc/rc.d -Index: systemd-190/rules/73-seat-numlock.rules +Index: systemd-195/rules/73-seat-numlock.rules =================================================================== --- /dev/null -+++ systemd-190/rules/73-seat-numlock.rules ++++ systemd-195/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of systemd. +# @@ -129,10 +129,10 @@ Index: systemd-190/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-190/src/login/numlock-on.c +Index: systemd-195/src/login/numlock-on.c =================================================================== --- /dev/null -+++ systemd-190/src/login/numlock-on.c ++++ systemd-195/src/login/numlock-on.c @@ -0,0 +1,36 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -170,10 +170,10 @@ Index: systemd-190/src/login/numlock-on.c + return EX_IOERR; + return execv(args[0], args); +} -Index: systemd-190/units/systemd-vconsole-setup.service.in +Index: systemd-195/units/systemd-vconsole-setup.service.in =================================================================== ---- systemd-190.orig/units/systemd-vconsole-setup.service.in -+++ systemd-190/units/systemd-vconsole-setup.service.in +--- systemd-195.orig/units/systemd-vconsole-setup.service.in ++++ systemd-195/units/systemd-vconsole-setup.service.in @@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target diff --git a/systemd.changes b/systemd.changes index 3d94cc4f..a5a1a686 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com + +- udev: path_id - handle Hyper-V devices + add: 1008-udev-path_id-handle-Hyper-V-devices.patch +- keymap: Update the list of Samsung Series 9 models + add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +- keymap: Add Samsung 700T + add: 1010-keymap-Add-Samsung-700T.patch +- libudev: avoid leak during realloc failure + add: 1011-libudev-avoid-leak-during-realloc-failure.patch +- libudev: do not resolve $attr{device} symlinks + add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch +- libudev: validate 'udev' argument to udev_enumerate_new() + add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +- udev: fix whitespace + add: 1014-udev-fix-whitespace.patch +- udev: properly handle symlink removal by 'change' event + add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch +- udev: builtin - do not fail builtin initialization if one of + them returns an error + add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +- udev: use usec_t and now() + add: 1017-udev-use-usec_t-and-now.patch + ------------------------------------------------------------------- Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com @@ -12,8 +37,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org - detect-btrfs-ssd.patch: Fix btrfs detection on SSD. - timedated-donot-close-bogus-dbus-connection.patch: Avoid - closing an non-existent dbus connection and getting assertion - failures. + closing an non-existent dbus connection and getting assertion + failures. ------------------------------------------------------------------- Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index 55c77bdb..1e0e3def 100644 --- a/systemd.spec +++ b/systemd.spec @@ -173,6 +173,26 @@ Patch1005: 1005-udev-fix-sg-autoload-regression.patch Patch1006: 1006-fix-devname-prefix.patch # PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch +# PATCH-FIX-UPSTREAM 1008-udev-path_id-handle-Hyper-V-devices.patch +Patch1008: 1008-udev-path_id-handle-Hyper-V-devices.patch +# PATCH-FIX-UPSTREAM 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +Patch1009: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +# PATCH-FIX-UPSTREAM 1010-keymap-Add-Samsung-700T.patch +Patch1010: 1010-keymap-Add-Samsung-700T.patch +# PATCH-FIX-UPSTREAM 1011-libudev-avoid-leak-during-realloc-failure.patch +Patch1011: 1011-libudev-avoid-leak-during-realloc-failure.patch +# PATCH-FIX-UPSTREAM 1012-libudev-do-not-resolve-attr-device-symlinks.patch +Patch1012: 1012-libudev-do-not-resolve-attr-device-symlinks.patch +# PATCH-FIX-UPSTREAM 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +Patch1013: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +# PATCH-FIX-UPSTREAM 1014-udev-fix-whitespace.patch +Patch1014: 1014-udev-fix-whitespace.patch +# PATCH-FIX-UPSTREAM 1015-udev-properly-handle-symlink-removal-by-change-event.patch +Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch +# PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +# PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch +Patch1017: 1017-udev-use-usec_t-and-now.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -340,6 +360,16 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 +%patch1008 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 #systemd %patch1 -p1 diff --git a/timedated-donot-close-bogus-dbus-connection.patch b/timedated-donot-close-bogus-dbus-connection.patch index 6ee6f3bc..7757c346 100644 --- a/timedated-donot-close-bogus-dbus-connection.patch +++ b/timedated-donot-close-bogus-dbus-connection.patch @@ -12,11 +12,11 @@ Date: Mon Dec 3 00:50:55 2012 +0000 process 14920: arguments to dbus_connection_unref() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2776. This is normally a bug in some application using the D-Bus library. -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 40ba255..784dadc 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -936,7 +936,7 @@ static int connect_bus(DBusConnection **_bus) { +Index: systemd-195/src/timedate/timedated.c +=================================================================== +--- systemd-195.orig/src/timedate/timedated.c ++++ systemd-195/src/timedate/timedated.c +@@ -943,7 +943,7 @@ static int connect_bus(DBusConnection ** if (!bus) { log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error)); r = -ECONNREFUSED; @@ -25,7 +25,7 @@ index 40ba255..784dadc 100644 } dbus_connection_set_exit_on_disconnect(bus, FALSE); -@@ -968,7 +968,7 @@ static int connect_bus(DBusConnection **_bus) { +@@ -975,7 +975,7 @@ static int connect_bus(DBusConnection ** fail: dbus_connection_close(bus); dbus_connection_unref(bus); From 51f7dde607e88bb97b9c6677f150bb7e57076c2837b3a3d2ea13a5d87dc5eca6 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 10 Jan 2013 21:35:19 +0000 Subject: [PATCH 118/221] Accepting request 147967 from Base:System - Add multiple-sulogin.patch: allows multiple sulogin instance (bnc#793182). (please forward to Factory) (forwarded request 147937 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/147967 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=121 --- multiple-sulogin.patch | 36 ++++++++++++++++++++++++++++++++++++ systemd-mini.changes | 12 +++++++++--- systemd-mini.spec | 5 ++++- systemd.changes | 6 ++++++ systemd.spec | 3 +++ 5 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 multiple-sulogin.patch diff --git a/multiple-sulogin.patch b/multiple-sulogin.patch new file mode 100644 index 00000000..96619d43 --- /dev/null +++ b/multiple-sulogin.patch @@ -0,0 +1,36 @@ +Index: systemd-195/units/getty@.service.m4 +=================================================================== +--- systemd-195.orig/units/getty@.service.m4 ++++ systemd-195/units/getty@.service.m4 +@@ -8,6 +8,7 @@ + [Unit] + Description=Getty on %I + Documentation=man:agetty(8) ++Conflicts=rescue.service + After=systemd-user-sessions.service plymouth-quit-wait.service + m4_ifdef(`TARGET_FEDORA', + After=rc-local.service +Index: systemd-195/units/rescue.target +=================================================================== +--- systemd-195.orig/units/rescue.target ++++ systemd-195/units/rescue.target +@@ -10,6 +10,7 @@ Description=Rescue Mode + Documentation=man:systemd.special(7) + Requires=sysinit.target rescue.service + After=sysinit.target rescue.service ++Conflicts=getty.target + AllowIsolate=yes + + [Install] +Index: systemd-195/units/serial-getty@.service.m4 +=================================================================== +--- systemd-195.orig/units/serial-getty@.service.m4 ++++ systemd-195/units/serial-getty@.service.m4 +@@ -9,6 +9,7 @@ + Description=Serial Getty on %I + Documentation=man:agetty(8) man:systemd-getty-generator(8) + BindsTo=dev-%i.device ++Conflicts=rescue.service + After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service + m4_ifdef(`TARGET_FEDORA', + After=rc-local.service diff --git a/systemd-mini.changes b/systemd-mini.changes index a0a94445..236dff45 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,5 +1,11 @@ ------------------------------------------------------------------- -Wed Jan 9 09:43:15 UTC 2013 - rmilasan@suse.com +Thu Jan 10 15:43:25 UTC 2013 - fcrozat@suse.com + +- Add multiple-sulogin.patch: allows multiple sulogin instance + (bnc#793182). + +------------------------------------------------------------------- +Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com - udev: path_id - handle Hyper-V devices add: 1008-udev-path_id-handle-Hyper-V-devices.patch @@ -21,7 +27,7 @@ Wed Jan 9 09:43:15 UTC 2013 - rmilasan@suse.com them returns an error add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch - udev: use usec_t and now() - add: 1017-udev-use-usec_t-and-now.patch + add: 1017-udev-use-usec_t-and-now.patch ------------------------------------------------------------------- Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com @@ -29,7 +35,7 @@ Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com - udevd: add missing ':' to getopt_long 'e'. add: 1007-udevd-add-missing-to-getopt_long-e.patch - clean up systemd.spec, make it easy to see which are udev and - systemd patches. + systemd patches. - make 'reload' and 'force-reload' LSB compliant (bnc#793936). ------------------------------------------------------------------- diff --git a/systemd-mini.spec b/systemd-mini.spec index 2b491b12..cd7f7422 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -135,6 +135,8 @@ Patch64: fix-permissions-btmp.patch Patch71: fix-debugshell.patch # PATCH-FIX-OPENSUSE handle-root-uses-lang.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype Patch72: handle-root-uses-lang.patch +# PATCH-FIX-OPENSUSE multiple-sulogin.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin +Patch76: multiple-sulogin.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -197,7 +199,7 @@ Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch # PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch # PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch -Patch1017: 1017-udev-use-usec_t-and-now.patch +Patch1017: 1017-udev-use-usec_t-and-now.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -414,6 +416,7 @@ cp %{SOURCE7} m4/ %patch73 -p1 %patch74 -p1 %patch75 -p1 +%patch76 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index a5a1a686..236dff45 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 10 15:43:25 UTC 2013 - fcrozat@suse.com + +- Add multiple-sulogin.patch: allows multiple sulogin instance + (bnc#793182). + ------------------------------------------------------------------- Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 1e0e3def..36fe8f60 100644 --- a/systemd.spec +++ b/systemd.spec @@ -130,6 +130,8 @@ Patch64: fix-permissions-btmp.patch Patch71: fix-debugshell.patch # PATCH-FIX-OPENSUSE handle-root-uses-lang.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype Patch72: handle-root-uses-lang.patch +# PATCH-FIX-OPENSUSE multiple-sulogin.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin +Patch76: multiple-sulogin.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -409,6 +411,7 @@ cp %{SOURCE7} m4/ %patch73 -p1 %patch74 -p1 %patch75 -p1 +%patch76 -p1 %build autoreconf -fiv From 22e9bed03aab27f45c87bb26e0301715aa949a2eeb7e711caa6b0072e28d54d9 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 24 Jan 2013 09:41:58 +0000 Subject: [PATCH 119/221] Accepting request 149704 from Base:System - Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly (bnc#798620). - Update crypt-loop-file.patch to correctly detect crypto loop files (bnc#799514). - Add journalctl-remove-leftover-message.patch: remove debug message in systemctl. - Add job-avoid-recursion-when-cancelling.patch: prevent potential recursion when cancelling a service. - Add sysctl-parse-all-keys.patch: ensure sysctl file is fully parsed. - Add journal-fix-cutoff-max-date.patch: fix computation of cutoff max date for journal. - Add reword-rescue-mode-hints.patch: reword rescue prompt. - Add improve-overflow-checks.patch: improve time overflow checks. - Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour with symlinks. - Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure hostnamectl requires an argument when called with set-hostname option. - Add agetty-overrides-term.patch: pass correctly terminal type to agetty. - Add check-for-empty-strings-in-strto-conversions.patch: better check for empty strings in strto* conversions. - Add strv-cleanup-error-path-loops.patch: cleanup strv on error path. - Add cryptsetup-handle-plain.patch: correctly handle "plain" option in cryptsetup. - Add fstab-generator-improve-error-message.patch: improve error message in fstab-generator. - Add delta-accept-t-option.patch: accept -t option in (forwarded request 149703 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/149704 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=122 --- agetty-overrides-term.patch | 47 +++ ...r-empty-strings-in-strto-conversions.patch | 95 ++++++ ...terpret-escaped-semicolon-as-escaped.patch | 30 ++ ...-load-fragment-improve-error-message.patch | 210 ++++++++++++++ coredumpctl-fix-crash.patch | 22 ++ ...tor-state-file-name-in-error-message.patch | 34 +++ crypsetup-handle-nofail.patch | 29 ++ crypt-loop-file.patch | 26 +- cryptsetup-handle-plain.patch | 71 +++++ delta-accept-t-option.patch | 27 ++ do-not-make-sockets-dependent-on-lo.patch | 27 ++ fix-bad-mem-access.patch | 24 ++ fix-potential-bad-mem-access.patch | 48 +++ fix-swap-behaviour-with-symlinks.patch | 33 +++ ...enerator-error-message-on-duplicates.patch | 50 ++++ fstab-generator-improve-error-message.patch | 115 ++++++++ ...enerator-properly-detect-bind-mounts.patch | 25 ++ highlight-ordering-cycle-deletions.patch | 32 ++ hostnamectl-fix-parsing-no-ask-password.patch | 27 ++ ...tl-fix-set-hostname-with-no-argument.patch | 26 ++ improve-overflow-checks.patch | 105 +++++++ job-avoid-recursion-when-cancelling.patch | 48 +++ journal-fix-cutoff-max-date.patch | 34 +++ ...l-send-always-send-syslog_identifier.patch | 65 +++++ journalctl-quit-on-io-error.patch | 38 +++ journalctl-remove-leftover-message.patch | 25 ++ journalctl-require-argument-for-priority | 27 ++ kmod-fix-builtin-typo.patch | 25 ++ ...validate-argument-udev_enumerate_new.patch | 26 ++ localectl-fix-assertion.patch | 27 ++ ...pport-systems-without-locale-archive.patch | 163 +++++++++++ ...d-capability-making-seats-without-fb.patch | 59 ++++ ...-non-tty-non-x11-session-on-shutdown.patch | 33 +++ ...dle-ssh-logins-without-pam-tty-field.patch | 57 ++++ parse-multiline-env-file.patch | 157 ++++++++++ path-util-fix-potential-crash.patch | 27 ++ reword-rescue-mode-hints.patch | 30 ++ ...king-ignore-exit-status-main-process.patch | 48 +++ ...dont-force-mnt-force-on-final-umount.patch | 35 +++ ...re-loop-devices-without-backing-file.patch | 37 +++ shutdown-improvements.patch | 273 ++++++++++++++++++ socket-improve-error-message.patch | 26 ++ socket-verbose-error-message.patch | 32 ++ strv-cleanup-error-path-loops.patch | 238 +++++++++++++++ sysctl-parse-all-keys.patch | 26 ++ ...ctl-no-assert-on-reboot-without-dbus.patch | 28 ++ systemctl-options.patch | 49 ++++ ...l-verbose-message-on-missing-install.patch | 39 +++ systemd-cgls-fix-piping-output.patch | 37 +++ systemd-mini.changes | 92 ++++++ systemd-mini.spec | 135 +++++++++ systemd.changes | 92 ++++++ systemd.spec | 135 +++++++++ 53 files changed, 3259 insertions(+), 7 deletions(-) create mode 100644 agetty-overrides-term.patch create mode 100644 check-for-empty-strings-in-strto-conversions.patch create mode 100644 core-interpret-escaped-semicolon-as-escaped.patch create mode 100644 core-load-fragment-improve-error-message.patch create mode 100644 coredumpctl-fix-crash.patch create mode 100644 crypsetup-generator-state-file-name-in-error-message.patch create mode 100644 crypsetup-handle-nofail.patch create mode 100644 cryptsetup-handle-plain.patch create mode 100644 delta-accept-t-option.patch create mode 100644 do-not-make-sockets-dependent-on-lo.patch create mode 100644 fix-bad-mem-access.patch create mode 100644 fix-potential-bad-mem-access.patch create mode 100644 fix-swap-behaviour-with-symlinks.patch create mode 100644 fstab-generator-error-message-on-duplicates.patch create mode 100644 fstab-generator-improve-error-message.patch create mode 100644 fstab-generator-properly-detect-bind-mounts.patch create mode 100644 highlight-ordering-cycle-deletions.patch create mode 100644 hostnamectl-fix-parsing-no-ask-password.patch create mode 100644 hostnamectl-fix-set-hostname-with-no-argument.patch create mode 100644 improve-overflow-checks.patch create mode 100644 job-avoid-recursion-when-cancelling.patch create mode 100644 journal-fix-cutoff-max-date.patch create mode 100644 journal-send-always-send-syslog_identifier.patch create mode 100644 journalctl-quit-on-io-error.patch create mode 100644 journalctl-remove-leftover-message.patch create mode 100644 journalctl-require-argument-for-priority create mode 100644 kmod-fix-builtin-typo.patch create mode 100644 libudev-validate-argument-udev_enumerate_new.patch create mode 100644 localectl-fix-assertion.patch create mode 100644 localectl-support-systems-without-locale-archive.patch create mode 100644 logind-capability-making-seats-without-fb.patch create mode 100644 logind-ignore-non-tty-non-x11-session-on-shutdown.patch create mode 100644 pam-properly-handle-ssh-logins-without-pam-tty-field.patch create mode 100644 parse-multiline-env-file.patch create mode 100644 path-util-fix-potential-crash.patch create mode 100644 reword-rescue-mode-hints.patch create mode 100644 service-forking-ignore-exit-status-main-process.patch create mode 100644 shutdown-dont-force-mnt-force-on-final-umount.patch create mode 100644 shutdown-ignore-loop-devices-without-backing-file.patch create mode 100644 shutdown-improvements.patch create mode 100644 socket-improve-error-message.patch create mode 100644 socket-verbose-error-message.patch create mode 100644 strv-cleanup-error-path-loops.patch create mode 100644 sysctl-parse-all-keys.patch create mode 100644 systemctl-no-assert-on-reboot-without-dbus.patch create mode 100644 systemctl-options.patch create mode 100644 systemctl-verbose-message-on-missing-install.patch create mode 100644 systemd-cgls-fix-piping-output.patch diff --git a/agetty-overrides-term.patch b/agetty-overrides-term.patch new file mode 100644 index 00000000..62aee284 --- /dev/null +++ b/agetty-overrides-term.patch @@ -0,0 +1,47 @@ +From 2161de72c517d34d1ceb9b4c1a300f0b54ce5a9c Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Mon, 29 Oct 2012 21:59:34 +0100 +Subject: [PATCH] units: agetty overrides TERM + +Environment=TERM=... has no effect on agetty who sets it by itself. To +really set TERM to a specified value, it has to be given on the command +line. + +https://bugzilla.redhat.com/show_bug.cgi?id=870622 +--- + units/getty@.service.m4 | 3 +-- + units/serial-getty@.service.m4 | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 +index b5875ce..810c23f 100644 +--- a/units/getty@.service.m4 ++++ b/units/getty@.service.m4 +@@ -43,9 +43,8 @@ IgnoreOnIsolate=yes + ConditionPathExists=/dev/tty0 + + [Service] +-Environment=TERM=linux + # the VT is cleared by TTYVTDisallocate +-ExecStart=-/sbin/agetty --noclear %I 38400 ++ExecStart=-/sbin/agetty --noclear %I 38400 linux + Type=idle + Restart=always + RestartSec=0 +diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 +index a6bbd71..c411dc1 100644 +--- a/units/serial-getty@.service.m4 ++++ b/units/serial-getty@.service.m4 +@@ -39,8 +39,7 @@ Before=getty.target + IgnoreOnIsolate=yes + + [Service] +-Environment=TERM=vt102 +-ExecStart=-/sbin/agetty -s %I 115200,38400,9600 ++ExecStart=-/sbin/agetty -s %I 115200,38400,9600 vt102 + Type=idle + Restart=always + RestartSec=0 +-- +1.7.10.4 + diff --git a/check-for-empty-strings-in-strto-conversions.patch b/check-for-empty-strings-in-strto-conversions.patch new file mode 100644 index 00000000..a0aff571 --- /dev/null +++ b/check-for-empty-strings-in-strto-conversions.patch @@ -0,0 +1,95 @@ +From f3910003bce32ebdc1dbb71fd9ca2d4b8352b563 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 30 Oct 2012 10:29:40 +0100 +Subject: [PATCH] shared, libsystemd-daemon: check for empty strings in + strto*l conversions + +strtol() and friends may set EINVAL if no conversion was performed, but +they are not required to do so. In practice they don't. We need to check +for it. + +https://bugzilla.redhat.com/show_bug.cgi?id=870577 +--- + src/libsystemd-daemon/sd-daemon.c | 4 ++-- + src/shared/conf-parser.c | 2 +- + src/shared/util.c | 8 ++++---- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/src/libsystemd-daemon/sd-daemon.c b/src/libsystemd-daemon/sd-daemon.c +index 863ac75..480db3b 100644 +--- a/src/libsystemd-daemon/sd-daemon.c ++++ b/src/libsystemd-daemon/sd-daemon.c +@@ -88,7 +88,7 @@ _sd_export_ int sd_listen_fds(int unset_environment) { + goto finish; + } + +- if (!p || *p || l <= 0) { ++ if (!p || p == e || *p || l <= 0) { + r = -EINVAL; + goto finish; + } +@@ -112,7 +112,7 @@ _sd_export_ int sd_listen_fds(int unset_environment) { + goto finish; + } + +- if (!p || *p) { ++ if (!p || p == e || *p) { + r = -EINVAL; + goto finish; + } +diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c +index 4bf3147..9f5c07c 100644 +--- a/src/shared/conf-parser.c ++++ b/src/shared/conf-parser.c +@@ -865,7 +865,7 @@ int config_parse_mode( + + errno = 0; + l = strtol(rvalue, &x, 8); +- if (!x || *x || errno) { ++ if (!x || x == rvalue || *x || errno) { + log_error("[%s:%u] Failed to parse mode value, ignoring: %s", filename, line, rvalue); + return 0; + } +diff --git a/src/shared/util.c b/src/shared/util.c +index 8ec83e4..23832fe 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -377,7 +377,7 @@ int safe_atou(const char *s, unsigned *ret_u) { + errno = 0; + l = strtoul(s, &x, 0); + +- if (!x || *x || errno) ++ if (!x || x == s || *x || errno) + return errno ? -errno : -EINVAL; + + if ((unsigned long) (unsigned) l != l) +@@ -397,7 +397,7 @@ int safe_atoi(const char *s, int *ret_i) { + errno = 0; + l = strtol(s, &x, 0); + +- if (!x || *x || errno) ++ if (!x || x == s || *x || errno) + return errno ? -errno : -EINVAL; + + if ((long) (int) l != l) +@@ -417,7 +417,7 @@ int safe_atollu(const char *s, long long unsigned *ret_llu) { + errno = 0; + l = strtoull(s, &x, 0); + +- if (!x || *x || errno) ++ if (!x || x == s || *x || errno) + return errno ? -errno : -EINVAL; + + *ret_llu = l; +@@ -434,7 +434,7 @@ int safe_atolli(const char *s, long long int *ret_lli) { + errno = 0; + l = strtoll(s, &x, 0); + +- if (!x || *x || errno) ++ if (!x || x == s || *x || errno) + return errno ? -errno : -EINVAL; + + *ret_lli = l; +-- +1.7.10.4 + diff --git a/core-interpret-escaped-semicolon-as-escaped.patch b/core-interpret-escaped-semicolon-as-escaped.patch new file mode 100644 index 00000000..945514a7 --- /dev/null +++ b/core-interpret-escaped-semicolon-as-escaped.patch @@ -0,0 +1,30 @@ +From 7e1a84f55244ca78093b1dabc58683bc0e7f4304 Mon Sep 17 00:00:00 2001 +From: Oleksii Shevchuk +Date: Sat, 3 Nov 2012 21:52:02 +0200 +Subject: [PATCH] core: interpret \; token in ExecStart as escaped ; + +Some commands (like 'find') take a semicolon as separate arg. With +current parser implementation there is no way to pass one. + +Patch adds token \; +--- + src/core/load-fragment.c | 2 ++ + src/test/test-unit-file.c | 10 ++++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c +index 5803044..4dc5c52 100644 +--- a/src/core/load-fragment.c ++++ b/src/core/load-fragment.c +@@ -483,6 +483,8 @@ int config_parse_exec( + FOREACH_WORD_QUOTED(w, l, rvalue, state) { + if (strncmp(w, ";", MAX(l, 1U)) == 0) + break; ++ else if (strncmp(w, "\\;", MAX(l, 1U)) == 0) ++ w ++; + + if (honour_argv0 && w == rvalue) { + assert(!path); +-- +1.7.10.4 + diff --git a/core-load-fragment-improve-error-message.patch b/core-load-fragment-improve-error-message.patch new file mode 100644 index 00000000..f860a4cb --- /dev/null +++ b/core-load-fragment-improve-error-message.patch @@ -0,0 +1,210 @@ +From c040936be2a4c77e9465cffae47d77d5ec14fb49 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 19 Nov 2012 16:02:45 +0100 +Subject: [PATCH] core/load-fragment: be more precise in error messages + +Whenever a message fails, mention the offending word, instead +of just giving the whole line. If one bad word causes just this +word to be rejected, print only the word. If one bad word causes +the whole line to be rejected, print the whole line too. + +https://bugs.freedesktop.org/show_bug.cgi?id=56874 +--- + src/core/load-fragment.c | 69 +++++++++++++++++++++------------------------- + 1 file changed, 31 insertions(+), 38 deletions(-) + +diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c +index 6759255..01f9484 100644 +--- a/src/core/load-fragment.c ++++ b/src/core/load-fragment.c +@@ -86,7 +86,7 @@ int config_parse_unit_deps( + assert(rvalue); + + FOREACH_WORD_QUOTED(w, l, rvalue, state) { +- char *t, *k; ++ char _cleanup_free_ *t = NULL, *k = NULL; + int r; + + t = strndup(w, l); +@@ -94,15 +94,13 @@ int config_parse_unit_deps( + return -ENOMEM; + + k = unit_name_printf(u, t); +- free(t); + if (!k) + return -ENOMEM; + + r = unit_add_dependency_by_name(u, d, k, NULL, true); + if (r < 0) +- log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", filename, line, k, strerror(-r)); +- +- free(k); ++ log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", ++ filename, line, k, strerror(-r)); + } + + return 0; +@@ -757,22 +755,25 @@ int config_parse_exec_cpu_affinity( + assert(data); + + FOREACH_WORD_QUOTED(w, l, rvalue, state) { +- char *t; ++ char _cleanup_free_ *t = NULL; + int r; + unsigned cpu; + +- if (!(t = strndup(w, l))) ++ t = strndup(w, l); ++ if (!t) + return -ENOMEM; + + r = safe_atou(t, &cpu); +- free(t); + +- if (!(c->cpuset)) +- if (!(c->cpuset = cpu_set_malloc(&c->cpuset_ncpus))) ++ if (!c->cpuset) { ++ c->cpuset = cpu_set_malloc(&c->cpuset_ncpus); ++ if (!c->cpuset) + return -ENOMEM; ++ } + + if (r < 0 || cpu >= c->cpuset_ncpus) { +- log_error("[%s:%u] Failed to parse CPU affinity, ignoring: %s", filename, line, rvalue); ++ log_error("[%s:%u] Failed to parse CPU affinity %s, ignoring: %s", ++ filename, line, t, rvalue); + return 0; + } + +@@ -849,7 +850,8 @@ int config_parse_exec_secure_bits( + else if (first_word(w, "noroot-locked")) + c->secure_bits |= SECURE_NOROOT_LOCKED; + else { +- log_error("[%s:%u] Failed to parse secure bits, ignoring: %s", filename, line, rvalue); ++ log_error("[%s:%u] Failed to parse secure bits, ignoring: %s", ++ filename, line, rvalue); + return 0; + } + } +@@ -890,7 +892,7 @@ int config_parse_bounding_set( + * interface. */ + + FOREACH_WORD_QUOTED(w, l, rvalue, state) { +- char *t; ++ char _cleanup_free_ *t = NULL; + int r; + cap_value_t cap; + +@@ -899,10 +901,9 @@ int config_parse_bounding_set( + return -ENOMEM; + + r = cap_from_name(t, &cap); +- free(t); +- + if (r < 0) { +- log_error("[%s:%u] Failed to parse capability bounding set, ignoring: %s", filename, line, rvalue); ++ log_error("[%s:%u] Failed to parse capability in bounding set, ignoring: %s", ++ filename, line, t); + continue; + } + +@@ -968,7 +969,7 @@ int config_parse_unit_cgroup( + char *state; + + FOREACH_WORD_QUOTED(w, l, rvalue, state) { +- char *t, *k; ++ char _cleanup_free_ *t = NULL, *k = NULL, *ku = NULL; + int r; + + t = strndup(w, l); +@@ -976,22 +977,17 @@ int config_parse_unit_cgroup( + return -ENOMEM; + + k = unit_full_printf(u, t); +- free(t); +- + if (!k) + return -ENOMEM; + +- t = cunescape(k); +- free(k); +- +- if (!t) ++ ku = cunescape(k); ++ if (!ku) + return -ENOMEM; + +- r = unit_add_cgroup_from_text(u, t); +- free(t); +- ++ r = unit_add_cgroup_from_text(u, ku); + if (r < 0) { +- log_error("[%s:%u] Failed to parse cgroup value, ignoring: %s", filename, line, rvalue); ++ log_error("[%s:%u] Failed to parse cgroup value %s, ignoring: %s", ++ filename, line, k, rvalue); + return 0; + } + } +@@ -1351,33 +1347,30 @@ int config_parse_service_sockets( + assert(data); + + FOREACH_WORD_QUOTED(w, l, rvalue, state) { +- char *t, *k; ++ char _cleanup_free_ *t = NULL, *k = NULL; + + t = strndup(w, l); + if (!t) + return -ENOMEM; + + k = unit_name_printf(UNIT(s), t); +- free(t); +- + if (!k) + return -ENOMEM; + + if (!endswith(k, ".socket")) { +- log_error("[%s:%u] Unit must be of type socket, ignoring: %s", filename, line, rvalue); +- free(k); ++ log_error("[%s:%u] Unit must be of type socket, ignoring: %s", ++ filename, line, k); + continue; + } + + r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_WANTS, UNIT_AFTER, k, NULL, true); + if (r < 0) +- log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", filename, line, k, strerror(-r)); ++ log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", ++ filename, line, k, strerror(-r)); + + r = unit_add_dependency_by_name(UNIT(s), UNIT_TRIGGERED_BY, k, NULL, true); + if (r < 0) + return r; +- +- free(k); + } + + return 0; +@@ -2105,17 +2098,17 @@ int config_parse_syscall_filter( + + FOREACH_WORD_QUOTED(w, l, rvalue, state) { + int id; +- char *t; ++ char _cleanup_free_ *t = NULL; + + t = strndup(w, l); + if (!t) + return -ENOMEM; + + id = syscall_from_name(t); +- free(t); + + if (id < 0) { +- log_error("[%s:%u] Failed to parse syscall, ignoring: %s", filename, line, rvalue); ++ log_error("[%s:%u] Failed to parse syscall, ignoring: %s", ++ filename, line, t); + continue; + } + +-- +1.7.10.4 + diff --git a/coredumpctl-fix-crash.patch b/coredumpctl-fix-crash.patch new file mode 100644 index 00000000..6874e9c1 --- /dev/null +++ b/coredumpctl-fix-crash.patch @@ -0,0 +1,22 @@ +From 348a25edbb87ee4e67aa79fcb97a2bc1b5c11c7b Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 19 Dec 2012 14:38:53 +0100 +Subject: [PATCH] coredumpctl: check return of strndup + +--- + src/journal/coredumpctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-195/src/journal/coredumpctl.c +=================================================================== +--- systemd-195.orig/src/journal/coredumpctl.c ++++ systemd-195/src/journal/coredumpctl.c +@@ -222,7 +222,7 @@ static int retrieve(sd_journal *j, const + assert(len >= field); + + *var = strndup((const char*)data + field, len - field); +- if (!var) ++ if (!*var) + return log_oom(); + + return 0; diff --git a/crypsetup-generator-state-file-name-in-error-message.patch b/crypsetup-generator-state-file-name-in-error-message.patch new file mode 100644 index 00000000..890c6e29 --- /dev/null +++ b/crypsetup-generator-state-file-name-in-error-message.patch @@ -0,0 +1,34 @@ +From 1cda32b8a29750720872d3525084ac67b88e066f Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 23 Nov 2012 14:16:39 +0100 +Subject: [PATCH] cryptsetup-generator: state file name in error messages + +--- + src/cryptsetup/cryptsetup-generator.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index ef16fbc..6e7b707 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -108,7 +108,7 @@ static int create_disk( + f = fopen(p, "wxe"); + if (!f) { + r = -errno; +- log_error("Failed to create unit file: %m"); ++ log_error("Failed to create unit file %s: %m", p); + goto fail; + } + +@@ -160,7 +160,7 @@ static int create_disk( + + if (ferror(f)) { + r = -errno; +- log_error("Failed to write file: %m"); ++ log_error("Failed to write file %s: %m", p); + goto fail; + } + +-- +1.7.10.4 + diff --git a/crypsetup-handle-nofail.patch b/crypsetup-handle-nofail.patch new file mode 100644 index 00000000..872c14c1 --- /dev/null +++ b/crypsetup-handle-nofail.patch @@ -0,0 +1,29 @@ +From adc40dc2f670a6298cce918fb318ba6a4b80c306 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 21 Nov 2012 12:30:47 +0100 +Subject: [PATCH] cryptsetup: fix nofail support + +This was documented in the man page and supported in the generator, +but systemd-cryptestup itself would fail with this option. + +systemd-cryptsetup should ignore 'nofail', as it does with 'noauto'. +--- + src/cryptsetup/cryptsetup.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c +index 56a3b50..f332843 100644 +--- a/src/cryptsetup/cryptsetup.c ++++ b/src/cryptsetup/cryptsetup.c +@@ -62,7 +62,7 @@ static int parse_one_option(const char *option) { + assert(option); + + /* Handled outside of this tool */ +- if (streq(option, "noauto")) ++ if (streq(option, "noauto") || streq(option, "nofail")) + return 0; + + if (startswith(option, "cipher=")) { +-- +1.7.10.4 + diff --git a/crypt-loop-file.patch b/crypt-loop-file.patch index 70785520..81491c67 100644 --- a/crypt-loop-file.patch +++ b/crypt-loop-file.patch @@ -1,7 +1,7 @@ -Index: systemd-190/src/cryptsetup/cryptsetup-generator.c +Index: systemd-195/src/cryptsetup/cryptsetup-generator.c =================================================================== ---- systemd-190.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-190/src/cryptsetup/cryptsetup-generator.c +--- systemd-195.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-195/src/cryptsetup/cryptsetup-generator.c @@ -136,7 +136,7 @@ static int create_disk( const char *password, const char *options) { @@ -11,7 +11,7 @@ Index: systemd-190/src/cryptsetup/cryptsetup-generator.c int r; FILE *f = NULL; bool noauto, nofail; -@@ -168,11 +168,51 @@ static int create_disk( +@@ -168,11 +168,63 @@ static int create_disk( goto fail; } @@ -21,13 +21,25 @@ Index: systemd-190/src/cryptsetup/cryptsetup-generator.c - log_error("Failed to allocate device name."); - goto fail; + if (!startswith(device,"/dev/")) { -+ d = unit_name_from_path_instance("cryptsetup", name, ".path"); ++ char *e; ++ ++ d = strdup(n); + if (!d) { + r = -ENOMEM; + log_error("Failed to allocate path name."); + goto fail; + } + ++ e = endswith(d,".service"); ++ if (!e) { ++ r = -ENOMEM; ++ log_error("Failed to modify path name."); ++ goto fail; ++ } ++ ++ *e = 0; ++ ++ d = strcat(d,".path"); + if (asprintf(&path_file, "%s/%s", arg_dest, d) < 0) { + r = -ENOMEM; + log_error("Failed to allocate unit file name."); @@ -37,7 +49,7 @@ Index: systemd-190/src/cryptsetup/cryptsetup-generator.c + f = fopen(path_file, "wxe"); + if (!f) { + r = -errno; -+ log_error("Failed to create unit file: %m"); ++ log_error("Failed to create unit file %s: %m", path_file); + goto fail; + } + @@ -68,7 +80,7 @@ Index: systemd-190/src/cryptsetup/cryptsetup-generator.c } f = fopen(p, "wxe"); -@@ -298,6 +338,7 @@ fail: +@@ -298,6 +350,7 @@ fail: free(n); free(d); free(e); diff --git a/cryptsetup-handle-plain.patch b/cryptsetup-handle-plain.patch new file mode 100644 index 00000000..002605f3 --- /dev/null +++ b/cryptsetup-handle-plain.patch @@ -0,0 +1,71 @@ +From 65343c749441322d1e65e8bb5d433b6fee8c28bf Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Tue, 6 Nov 2012 09:49:27 -0500 +Subject: [PATCH] cryptsetup: hash=plain means don't use a hash + +"plain" is a semantic value that cryptsetup(8) uses to describe a plain +dm-crypt volume that does not use a hash. Catch this value earlier and +ensure that a NULL params.hash is passed to crypt_format to avoid +passing an invalid hash type to the libcryptsetup backend. + +FDO bug #56593. +--- + src/cryptsetup/cryptsetup.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c +index 916509a..e8ba3f0 100644 +--- a/src/cryptsetup/cryptsetup.c ++++ b/src/cryptsetup/cryptsetup.c +@@ -342,7 +342,12 @@ int main(int argc, char *argv[]) { + + opt_tries = opt_tries > 0 ? opt_tries : 3; + opt_key_size = (opt_key_size > 0 ? opt_key_size : 256); +- hash = opt_hash ? opt_hash : "ripemd160"; ++ if (opt_hash) { ++ /* plain isn't a real hash type. it just means "use no hash" */ ++ if (!streq(opt_hash, "plain")) ++ hash = opt_hash; ++ } else ++ hash = "ripemd160"; + + if (opt_cipher) { + size_t l; +@@ -463,7 +468,7 @@ int main(int argc, char *argv[]) { + opt_keyfile_size, + ¶ms); + +- pass_volume_key = streq(hash, "plain"); ++ pass_volume_key = !!hash; + } + + if (k < 0) { +-- +1.7.10.4 + +From 8db9d8c2a4ef9806c286e258f9932a0972dc2375 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Tue, 6 Nov 2012 10:17:18 -0500 +Subject: [PATCH] cryptsetup: fix inverted comparison in pass_volume_key + +--- + src/cryptsetup/cryptsetup.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c +index e8ba3f0..56a3b50 100644 +--- a/src/cryptsetup/cryptsetup.c ++++ b/src/cryptsetup/cryptsetup.c +@@ -468,7 +468,8 @@ int main(int argc, char *argv[]) { + opt_keyfile_size, + ¶ms); + +- pass_volume_key = !!hash; ++ /* hash == NULL implies the user passed "plain" */ ++ pass_volume_key = (hash == NULL); + } + + if (k < 0) { +-- +1.7.10.4 + diff --git a/delta-accept-t-option.patch b/delta-accept-t-option.patch new file mode 100644 index 00000000..d0554b0a --- /dev/null +++ b/delta-accept-t-option.patch @@ -0,0 +1,27 @@ +From 377ec8bf1907a1a227d195cc3721c4acbad19213 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Wed, 14 Nov 2012 00:18:02 +0100 +Subject: [PATCH] delta.c: fix option '-t' + +Both the help and man page claims that it accepts -t with an argument +so let's do that. +--- + src/delta/delta.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/delta/delta.c b/src/delta/delta.c +index cc34208..a65cea5 100644 +--- a/src/delta/delta.c ++++ b/src/delta/delta.c +@@ -352,7 +352,7 @@ static int parse_argv(int argc, char *argv[]) { + assert(argc >= 1); + assert(argv); + +- while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) { ++ while ((c = getopt_long(argc, argv, "ht:", options, NULL)) >= 0) { + + switch (c) { + +-- +1.7.10.4 + diff --git a/do-not-make-sockets-dependent-on-lo.patch b/do-not-make-sockets-dependent-on-lo.patch new file mode 100644 index 00000000..247a7c80 --- /dev/null +++ b/do-not-make-sockets-dependent-on-lo.patch @@ -0,0 +1,27 @@ +From 7d0c710d72f8a6e5c6909c65700aa088c53aebc6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= +Date: Sat, 12 Jan 2013 23:05:52 +0100 +Subject: [PATCH] core: do not make sockets dependent on lo + +/sys/subsystem/net/devices/lo is never considered active, so sockets +with BindToDevice=lo would never be activated. +--- + src/core/socket.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/socket.c b/src/core/socket.c +index fcbcdbe..d755040 100644 +--- a/src/core/socket.c ++++ b/src/core/socket.c +@@ -308,7 +308,7 @@ static int socket_add_device_link(Socket *s) { + + assert(s); + +- if (!s->bind_to_device) ++ if (!s->bind_to_device || streq(s->bind_to_device, "lo")) + return 0; + + if (asprintf(&t, "/sys/subsystem/net/devices/%s", s->bind_to_device) < 0) +-- +1.7.10.4 + diff --git a/fix-bad-mem-access.patch b/fix-bad-mem-access.patch new file mode 100644 index 00000000..18cf4aa2 --- /dev/null +++ b/fix-bad-mem-access.patch @@ -0,0 +1,24 @@ +From 86ed7ec58b9b6a0907bbb3b8d07c930e52915de0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 17 Jan 2013 17:38:00 +0100 +Subject: [PATCH] util: fix bad memory access + +--- + src/shared/util.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 0161f3e..8e14096 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -439,7 +439,6 @@ int get_parent_of_pid(pid_t pid, pid_t *_ppid) { + + if (!fgets(line, sizeof(line), f)) { + r = feof(f) ? -EIO : -errno; +- fclose(f); + return r; + } + +-- +1.7.10.4 + diff --git a/fix-potential-bad-mem-access.patch b/fix-potential-bad-mem-access.patch new file mode 100644 index 00000000..db90af84 --- /dev/null +++ b/fix-potential-bad-mem-access.patch @@ -0,0 +1,48 @@ +From ac97e2c559f5d386a332aba4a24bf9930cdb1c51 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 19 Nov 2012 16:36:38 +0100 +Subject: [PATCH] core/load-fragment: fix (potential) bad memory access + +strncmp() could be used with size bigger then the size of the string, +because MAX was used instead of MIN. + +If failing, print just the offending mount flag. +--- + src/core/load-fragment.c | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c +index 01f9484..6933e1a 100644 +--- a/src/core/load-fragment.c ++++ b/src/core/load-fragment.c +@@ -1101,15 +1101,22 @@ int config_parse_exec_mount_flags( + assert(rvalue); + assert(data); + +- FOREACH_WORD_QUOTED(w, l, rvalue, state) { +- if (strncmp(w, "shared", MAX(l, 6U)) == 0) ++ FOREACH_WORD_SEPARATOR(w, l, rvalue, ", ", state) { ++ char _cleanup_free_ *t; ++ ++ t = strndup(w, l); ++ if (!t) ++ return -ENOMEM; ++ ++ if (streq(t, "shared")) + flags |= MS_SHARED; +- else if (strncmp(w, "slave", MAX(l, 5U)) == 0) ++ else if (streq(t, "slave")) + flags |= MS_SLAVE; +- else if (strncmp(w, "private", MAX(l, 7U)) == 0) ++ else if (streq(w, "private")) + flags |= MS_PRIVATE; + else { +- log_error("[%s:%u] Failed to parse mount flags, ignoring: %s", filename, line, rvalue); ++ log_error("[%s:%u] Failed to parse mount flag %s, ignoring: %s", ++ filename, line, t, rvalue); + return 0; + } + } +-- +1.7.10.4 + diff --git a/fix-swap-behaviour-with-symlinks.patch b/fix-swap-behaviour-with-symlinks.patch new file mode 100644 index 00000000..f9ee5fab --- /dev/null +++ b/fix-swap-behaviour-with-symlinks.patch @@ -0,0 +1,33 @@ +From b61e88162a6ce0c30da6984b0120959701283daa Mon Sep 17 00:00:00 2001 +From: Olivier Brunel +Date: Sat, 13 Oct 2012 14:24:15 +0200 +Subject: [PATCH] swap: fix swap behaviour with symlinks + +Starting a swap unit pointing to (What) a symlink (e.g. /dev/mapper/swap +or /dev/disk/by-uuid/...) would have said unit marked active, following +the one using the "actual" device (/dev/{dm-1,sda3}), but that new unit +would be seen as inactive. +Since all requests to stop swap units would follow/redirect to it, +and it is seen inactive, nothing would be done (swapoff never called). + +This is because this unit would be treated twice in +swap_process_new_swap, the second call to swap_add_one causing it to +eventually be marked inactive. +--- + src/core/swap.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: systemd-195/src/core/swap.c +=================================================================== +--- systemd-195.orig/src/core/swap.c ++++ systemd-195/src/core/swap.c +@@ -415,7 +415,8 @@ static int swap_process_new_swap(Manager + return -ENOMEM; + + dn = udev_device_get_devnode(d); +- if (dn) ++ /* Skip dn==device, since that case will be handled below */ ++ if (dn && !streq(dn, device)) + r = swap_add_one(m, dn, device, prio, false, false, set_flags); + + /* Add additional units for all symlinks */ diff --git a/fstab-generator-error-message-on-duplicates.patch b/fstab-generator-error-message-on-duplicates.patch new file mode 100644 index 00000000..ecc43782 --- /dev/null +++ b/fstab-generator-error-message-on-duplicates.patch @@ -0,0 +1,50 @@ +From 67ab5f761f9b854d8ce85f9ee47b298e497f8bd9 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Tue, 27 Nov 2012 01:09:28 +0100 +Subject: [PATCH] fstab-generator: make error more helpful in case of + duplicates in fstab + +Traditional sysvinit systems would not complain about duplicates in +fstab. Rather it (through monut -a) would mount one fs on top of another, +in effect the last entry taking precedent. + +In systemd, the first entry takes precedent, all subsequent ones are +ignored and an error is printed. + +The change of behavior and the source of this error message was causing +some confusion, so give a hint what migt be wrong. +--- + src/fstab-generator/fstab-generator.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index 7b3bf11..ba55f2c 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -111,7 +111,10 @@ static int add_swap(const char *what, struct mntent *me) { + f = fopen(unit, "wxe"); + if (!f) { + r = -errno; +- log_error("Failed to create unit file %s: %m", unit); ++ if (errno == EEXIST) ++ log_error("Failed to create swap unit file %s, as it already exists. Duplicate entry in /etc/fstab?", unit); ++ else ++ log_error("Failed to create unit file %s: %m", unit); + goto finish; + } + +@@ -254,7 +257,10 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + f = fopen(unit, "wxe"); + if (!f) { + r = -errno; +- log_error("Failed to create unit file %s: %m", unit); ++ if (errno == EEXIST) ++ log_error("Failed to create mount unit file %s, as it already exists. Duplicate entry in /etc/fstab?", unit); ++ else ++ log_error("Failed to create unit file %s: %m", unit); + goto finish; + } + +-- +1.7.10.4 + diff --git a/fstab-generator-improve-error-message.patch b/fstab-generator-improve-error-message.patch new file mode 100644 index 00000000..f1de5734 --- /dev/null +++ b/fstab-generator-improve-error-message.patch @@ -0,0 +1,115 @@ +From 40b8acd039cf1ea00167017e63d9c0a773002f0e Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 9 Nov 2012 12:00:46 +0100 +Subject: [PATCH] fstab-generator: more specific error messages + +--- + src/fstab-generator/fstab-generator.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index 251a346..62053b7 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -111,7 +111,7 @@ static int add_swap(const char *what, struct mntent *me) { + f = fopen(unit, "wxe"); + if (!f) { + r = -errno; +- log_error("Failed to create unit file: %m"); ++ log_error("Failed to create unit file %s: %m", unit); + goto finish; + } + +@@ -138,7 +138,7 @@ static int add_swap(const char *what, struct mntent *me) { + + fflush(f); + if (ferror(f)) { +- log_error("Failed to write unit file: %m"); ++ log_error("Failed to write unit file %s: %m", unit); + r = -errno; + goto finish; + } +@@ -152,7 +152,7 @@ static int add_swap(const char *what, struct mntent *me) { + + mkdir_parents_label(lnk, 0755); + if (symlink(unit, lnk) < 0) { +- log_error("Failed to create symlink: %m"); ++ log_error("Failed to create symlink %s: %m", lnk); + r = -errno; + goto finish; + } +@@ -171,7 +171,7 @@ static int add_swap(const char *what, struct mntent *me) { + + mkdir_parents_label(lnk, 0755); + if (symlink(unit, lnk) < 0) { +- log_error("Failed to create symlink: %m"); ++ log_error("Failed to create symlink %s: %m", lnk); + r = -errno; + goto finish; + } +@@ -262,7 +262,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + f = fopen(unit, "wxe"); + if (!f) { + r = -errno; +- log_error("Failed to create unit file: %m"); ++ log_error("Failed to create unit file %s: %m", unit); + goto finish; + } + +@@ -306,7 +306,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + + fflush(f); + if (ferror(f)) { +- log_error("Failed to write unit file: %m"); ++ log_error("Failed to write unit file %s: %m", unit); + r = -errno; + goto finish; + } +@@ -320,7 +320,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + + mkdir_parents_label(lnk, 0755); + if (symlink(unit, lnk) < 0) { +- log_error("Failed to create symlink: %m"); ++ log_error("Failed to create symlink %s: %m", lnk); + r = -errno; + goto finish; + } +@@ -342,7 +342,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + + mkdir_parents_label(lnk, 0755); + if (symlink(unit, lnk) < 0) { +- log_error("Failed to create symlink: %m"); ++ log_error("Failed to create symlink %s: %m", lnk); + r = -errno; + goto finish; + } +@@ -367,7 +367,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + f = fopen(automount_unit, "wxe"); + if (!f) { + r = -errno; +- log_error("Failed to create unit file: %m"); ++ log_error("Failed to create unit file %s: %m", automount_unit); + goto finish; + } + +@@ -386,7 +386,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + + fflush(f); + if (ferror(f)) { +- log_error("Failed to write unit file: %m"); ++ log_error("Failed to write unit file %s: %m", automount_unit); + r = -errno; + goto finish; + } +@@ -400,7 +400,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { + + mkdir_parents_label(lnk, 0755); + if (symlink(automount_unit, lnk) < 0) { +- log_error("Failed to create symlink: %m"); ++ log_error("Failed to create symlink %s: %m", lnk); + r = -errno; + goto finish; + } +-- +1.7.10.4 + diff --git a/fstab-generator-properly-detect-bind-mounts.patch b/fstab-generator-properly-detect-bind-mounts.patch new file mode 100644 index 00000000..d6461abb --- /dev/null +++ b/fstab-generator-properly-detect-bind-mounts.patch @@ -0,0 +1,25 @@ +From f9ea108e7c3544c03822277a1112a48dc62f6ed4 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Dec 2012 13:01:00 +0100 +Subject: [PATCH] fstab-generator: properly detect bind mounts + +This kinda undoes a83cbaccd03c3f28e47e9330f4a22ff65ce4b561 and +1d634e21b453f3c80d7c6c4bd90a6b84e42a3d2a but corrects the original code +to compare the mount type with "bind" rather than the mount options. +--- + src/fstab-generator/fstab-generator.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +Index: systemd-195/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-195.orig/src/fstab-generator/fstab-generator.c ++++ systemd-195/src/fstab-generator/fstab-generator.c +@@ -199,7 +199,7 @@ static bool mount_is_bind(struct mntent + + return + hasmntopt(me, "bind") || +- streq(me->mnt_opts, "bind"); ++ streq(me->mnt_type, "bind"); + } + + static bool mount_is_network(struct mntent *me) { diff --git a/highlight-ordering-cycle-deletions.patch b/highlight-ordering-cycle-deletions.patch new file mode 100644 index 00000000..296fdc61 --- /dev/null +++ b/highlight-ordering-cycle-deletions.patch @@ -0,0 +1,32 @@ +From f09a7d25545b5e3a2dd3dfc1ff7ebc8560a3354c Mon Sep 17 00:00:00 2001 +From: Olivier Brunel +Date: Mon, 5 Nov 2012 00:28:45 +0100 +Subject: [PATCH] systemd: highlight ordering cycle deletions + +Having unit(s) removed/not started, even if it solved the issue and allowed +to boot successfully, should still be considered an error, as something +clearly isn't right. + +This patch elevates the log message from warning to error, and adds a status +message to make things more obvious. +--- + src/core/transaction.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/core/transaction.c b/src/core/transaction.c +index 4bce942..ee6992a 100644 +--- a/src/core/transaction.c ++++ b/src/core/transaction.c +@@ -374,7 +374,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi + + + if (delete) { +- log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); ++ log_error("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); ++ status_printf(ANSI_HIGHLIGHT_RED_ON " SKIP " ANSI_HIGHLIGHT_OFF, true, "Ordering cycle found, skip %s", unit_description(delete->unit)); + transaction_delete_unit(tr, delete->unit); + return -EAGAIN; + } +-- +1.7.10.4 + diff --git a/hostnamectl-fix-parsing-no-ask-password.patch b/hostnamectl-fix-parsing-no-ask-password.patch new file mode 100644 index 00000000..490724d0 --- /dev/null +++ b/hostnamectl-fix-parsing-no-ask-password.patch @@ -0,0 +1,27 @@ +From 59f432ea6d6d441d0af7c76c37e80730c8df473a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 15 Nov 2012 22:47:04 +0100 +Subject: [PATCH] hostnamectl: fix parsing of --no-ask-password + +--- + src/hostname/hostnamectl.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c +index b7ae5cc..265c7ec 100644 +--- a/src/hostname/hostnamectl.c ++++ b/src/hostname/hostnamectl.c +@@ -403,6 +403,10 @@ static int parse_argv(int argc, char *argv[]) { + arg_set_static = true; + break; + ++ case ARG_NO_ASK_PASSWORD: ++ arg_ask_password = false; ++ break; ++ + case '?': + return -EINVAL; + +-- +1.7.10.4 + diff --git a/hostnamectl-fix-set-hostname-with-no-argument.patch b/hostnamectl-fix-set-hostname-with-no-argument.patch new file mode 100644 index 00000000..15181308 --- /dev/null +++ b/hostnamectl-fix-set-hostname-with-no-argument.patch @@ -0,0 +1,26 @@ +From f36d7992ef9588e24feaae5bb3d103ca63af71bd Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 29 Oct 2012 20:54:26 +0100 +Subject: [PATCH] hostnamectl: do not choke on set-hostname with no argument + +https://bugzilla.redhat.com/show_bug.cgi?id=871172 +--- + src/hostname/hostnamectl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c +index 1d448bd..e7b2b49 100644 +--- a/src/hostname/hostnamectl.c ++++ b/src/hostname/hostnamectl.c +@@ -430,7 +430,7 @@ static int hostnamectl_main(DBusConnection *bus, int argc, char *argv[], DBusErr + int (* const dispatch)(DBusConnection *bus, char **args, unsigned n); + } verbs[] = { + { "status", LESS, 1, show_status }, +- { "set-hostname", LESS, 2, set_hostname }, ++ { "set-hostname", EQUAL, 2, set_hostname }, + { "set-icon-name", EQUAL, 2, set_icon_name }, + }; + +-- +1.7.10.4 + diff --git a/improve-overflow-checks.patch b/improve-overflow-checks.patch new file mode 100644 index 00000000..7a3a1787 --- /dev/null +++ b/improve-overflow-checks.patch @@ -0,0 +1,105 @@ +From 3dd8ee8fa693597663b0338235becbb0b7a9520c Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Thu, 25 Oct 2012 16:16:17 +0200 +Subject: [PATCH] util: fix possible integer overflows + +--- + src/shared/util.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 2d4a4c1..e2f8b1f 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -148,6 +148,9 @@ usec_t timespec_load(const struct timespec *ts) { + ts->tv_nsec == (long) -1) + return (usec_t) -1; + ++ if (USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) ++ return (usec_t) -1; ++ + return + (usec_t) ts->tv_sec * USEC_PER_SEC + + (usec_t) ts->tv_nsec / NSEC_PER_USEC; +@@ -175,6 +178,9 @@ usec_t timeval_load(const struct timeval *tv) { + tv->tv_usec == (suseconds_t) -1) + return (usec_t) -1; + ++ if (USEC_PER_SEC > (UINT64_MAX - tv->tv_usec) / (usec_t) tv->tv_sec) ++ return (usec_t) -1; ++ + return + (usec_t) tv->tv_sec * USEC_PER_SEC + + (usec_t) tv->tv_usec; +-- +1.7.10.4 + +From 49371bb50e0fe6e9e90309a20006bcfd9e2fa8f4 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Mon, 29 Oct 2012 15:49:34 -0400 +Subject: [PATCH] util: avoid divide by zero FPE + +In early userspace, if kernel initialization happens extremely quickly, +a call to systemd-timestamp can potentially result in division by zero. +Ensure that the check in timespec_load, which only makes sense if tv_sec +is greater than zero, is guarded by this condition. +--- + src/shared/util.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index e2f8b1f..9a45e60 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -148,7 +148,8 @@ usec_t timespec_load(const struct timespec *ts) { + ts->tv_nsec == (long) -1) + return (usec_t) -1; + +- if (USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) ++ if (ts->tv_sec > 0 && ++ USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) + return (usec_t) -1; + + return +-- +1.7.10.4 + +From fd09c93de9337c3df566180d04368353bb3662e7 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Mon, 29 Oct 2012 21:04:47 +0100 +Subject: [PATCH] util: improve overflow checks + +commit 49371bb fixed the observed division by zero, but missed another +occurrence of the same bug. It was also not the optimal fix. We can +simply make the divisor a constant by swapping it with the compared +value. +--- + src/shared/util.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 9a45e60..8ec83e4 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -148,8 +148,7 @@ usec_t timespec_load(const struct timespec *ts) { + ts->tv_nsec == (long) -1) + return (usec_t) -1; + +- if (ts->tv_sec > 0 && +- USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) ++ if ((usec_t) ts->tv_sec > (UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / USEC_PER_SEC) + return (usec_t) -1; + + return +@@ -179,7 +178,7 @@ usec_t timeval_load(const struct timeval *tv) { + tv->tv_usec == (suseconds_t) -1) + return (usec_t) -1; + +- if (USEC_PER_SEC > (UINT64_MAX - tv->tv_usec) / (usec_t) tv->tv_sec) ++ if ((usec_t) tv->tv_sec > (UINT64_MAX - tv->tv_usec) / USEC_PER_SEC) + return (usec_t) -1; + + return +-- +1.7.10.4 + diff --git a/job-avoid-recursion-when-cancelling.patch b/job-avoid-recursion-when-cancelling.patch new file mode 100644 index 00000000..a87dff39 --- /dev/null +++ b/job-avoid-recursion-when-cancelling.patch @@ -0,0 +1,48 @@ +From 1abc85b8d026a2d72442b0edaee5213d0ee73c1f Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 25 Oct 2012 02:31:49 +0200 +Subject: [PATCH] job: avoid recursion into transaction code from job + cancelation + +I hit an "assert(j->installed)" failure in transaction_apply(). Looking +into the backtrace I saw what happened: +1. The system was booting. var.mount/start was an installed job. +2. I pressed Ctrl+Alt+Del. +3. reboot.target was going to be isolated. +4. transaction_apply() proceeded to install a var.mount/stop job. +5. job_install() canceled the conflicting start job. +6. Depending jobs ended recursively with JOB_DEPENDENCY, among them was + local-fs.target/start. +7. Its OnFailure action triggered - emergency.target was now going to be + isolated. +8. We recursed back into transaction_apply() where the half-installed + var.mount/stop job confused us. + +Recursing from job installation back into the transaction code cannot be +a good idea. Avoid the problem by canceling the conflicting job +non-recursively in job_install(). I don't think we'll miss anything by +not recursing here. After all, we are called from transaction_apply(). +We will not be installing just this one job, but all jobs from a +transaction. All requirement dependencies will be included in it and +will be installed separately. Every transaction job will get a chance +to cancel its own conflicting installed job. +--- + src/core/job.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/job.c b/src/core/job.c +index cb5674b..f08b8cb 100644 +--- a/src/core/job.c ++++ b/src/core/job.c +@@ -180,7 +180,7 @@ Job* job_install(Job *j) { + + if (uj) { + if (j->type != JOB_NOP && job_type_is_conflicting(uj->type, j->type)) +- job_finish_and_invalidate(uj, JOB_CANCELED, true); ++ job_finish_and_invalidate(uj, JOB_CANCELED, false); + else { + /* not conflicting, i.e. mergeable */ + +-- +1.7.10.4 + diff --git a/journal-fix-cutoff-max-date.patch b/journal-fix-cutoff-max-date.patch new file mode 100644 index 00000000..c939a61e --- /dev/null +++ b/journal-fix-cutoff-max-date.patch @@ -0,0 +1,34 @@ +From 0f91dd8749c1a1ec308cc645269be92166413e38 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 26 Oct 2012 01:07:41 +0200 +Subject: [PATCH] journal: properly determine cutoff max date + +--- + src/journal/sd-journal.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c +index 09b0eb8..d5d2d78 100644 +--- a/src/journal/sd-journal.c ++++ b/src/journal/sd-journal.c +@@ -2121,7 +2121,7 @@ _public_ int sd_journal_get_cutoff_realtime_usec(sd_journal *j, uint64_t *from, + if (from) + *from = MIN(fr, *from); + if (to) +- *to = MIN(t, *to); ++ *to = MAX(t, *to); + } + } + +@@ -2160,7 +2160,7 @@ _public_ int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, sd_id128_t boot + if (from) + *from = MIN(fr, *from); + if (to) +- *to = MIN(t, *to); ++ *to = MAX(t, *to); + } + } + +-- +1.7.10.4 + diff --git a/journal-send-always-send-syslog_identifier.patch b/journal-send-always-send-syslog_identifier.patch new file mode 100644 index 00000000..2a29345b --- /dev/null +++ b/journal-send-always-send-syslog_identifier.patch @@ -0,0 +1,65 @@ +From ee55db41442ad8055f5a84a339b1e0e22bc037c4 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 20 Nov 2012 21:25:26 +0100 +Subject: [PATCH] journal-send: always send SYSLOG_IDENTIFIER, if we have it + +https://bugzilla.redhat.com/show_bug.cgi?id=872193 +--- + src/journal/journal-send.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c +index 7a91569..bd8f887 100644 +--- a/src/journal/journal-send.c ++++ b/src/journal/journal-send.c +@@ -219,6 +219,7 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { + * be a tmpfs, and one that is available from early boot on + * and where unprivileged users can create files. */ + char path[] = "/dev/shm/journal.XXXXXX"; ++ bool have_syslog_identifier = false; + + if (_unlikely_(!iov)) + return -EINVAL; +@@ -228,7 +229,7 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { + + saved_errno = errno; + +- w = alloca(sizeof(struct iovec) * n * 5); ++ w = alloca(sizeof(struct iovec) * n * 5 + 3); + l = alloca(sizeof(uint64_t) * n); + + for (i = 0; i < n; i++) { +@@ -245,6 +246,9 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { + goto finish; + } + ++ have_syslog_identifier = ++ have_syslog_identifier || (c == iov[i].iov_base + 17 && memcmp(iov[i].iov_base, "SYSLOG_IDENTIFIER", 17) == 0); ++ + nl = memchr(iov[i].iov_base, '\n', iov[i].iov_len); + if (nl) { + if (_unlikely_(nl < c)) { +@@ -280,6 +284,20 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { + IOVEC_SET_STRING(w[j++], "\n"); + } + ++ if (!have_syslog_identifier && ++ string_is_safe(program_invocation_short_name)) { ++ ++ /* Implicitly add program_invocation_short_name, if it ++ * is not set explicitly. We only do this for ++ * program_invocation_short_name, and nothing else ++ * since everything else is much nicer to retrieve ++ * from the outside. */ ++ ++ IOVEC_SET_STRING(w[j++], "SYSLOG_IDENTIFIER="); ++ IOVEC_SET_STRING(w[j++], program_invocation_short_name); ++ IOVEC_SET_STRING(w[j++], "\n"); ++ } ++ + fd = journal_fd(); + if (_unlikely_(fd < 0)) { + r = fd; +-- +1.7.10.4 + diff --git a/journalctl-quit-on-io-error.patch b/journalctl-quit-on-io-error.patch new file mode 100644 index 00000000..56d2dd18 --- /dev/null +++ b/journalctl-quit-on-io-error.patch @@ -0,0 +1,38 @@ +From 244692cbfb46df5ff79d07da8fb848a1165bd2fb Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Sun, 13 Jan 2013 12:28:38 +0100 +Subject: [PATCH] journalctl: quit on I/O error + +This makes journalctl quit on ferror() conditions on stdout. It fixes an +annoying bug if you pipe its output through 'less' and press 'q'. Without +this fix journalctl will continue reading all journal data until EOF which +can take quite some time. For instance on my machine: + + david-nb ~ # time journalctl | wc -l + 327240 + + real 1m13.039s + user 1m0.217s + sys 0m10.467s + +However, expected behavior is journalctl to quit when its pager closed the +output pipe. + +Signed-off-by: David Herrmann +--- + src/journal/journalctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-195/src/journal/journalctl.c +=================================================================== +--- systemd-195.orig/src/journal/journalctl.c ++++ systemd-195/src/journal/journalctl.c +@@ -1035,7 +1035,7 @@ int main(int argc, char *argv[]) { + on_tty() * OUTPUT_COLOR; + + r = output_journal(stdout, j, arg_output, 0, flags); +- if (r < 0) ++ if (r < 0 || ferror(stdout)) + goto finish; + + need_seek = true; diff --git a/journalctl-remove-leftover-message.patch b/journalctl-remove-leftover-message.patch new file mode 100644 index 00000000..5ba122fa --- /dev/null +++ b/journalctl-remove-leftover-message.patch @@ -0,0 +1,25 @@ +From db87a36e74ff26d1046a451ee086c9a2c4113d12 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 24 Oct 2012 01:05:55 +0200 +Subject: [PATCH] journalctl: remove left-over log message + +--- + src/journal/journalctl.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c +index d1338d2..0f20448 100644 +--- a/src/journal/journalctl.c ++++ b/src/journal/journalctl.c +@@ -547,8 +547,6 @@ static int add_priorities(sd_journal *j) { + if (arg_priorities & (1 << i)) { + match[sizeof(match)-2] = '0' + i; + +- log_info("adding match %s", match); +- + r = sd_journal_add_match(j, match, strlen(match)); + if (r < 0) { + log_error("Failed to add match: %s", strerror(-r)); +-- +1.7.10.4 + diff --git a/journalctl-require-argument-for-priority b/journalctl-require-argument-for-priority new file mode 100644 index 00000000..2ecfcbef --- /dev/null +++ b/journalctl-require-argument-for-priority @@ -0,0 +1,27 @@ +From 71c015969233c21ea38b1e63993d02fe171df672 Mon Sep 17 00:00:00 2001 +From: Lekensteyn +Date: Thu, 15 Nov 2012 12:17:03 +0100 +Subject: [PATCH] journalctl: require argument for --priority + +This fixes a segfault due to a missing value for --priority. -p is +unaffected because it is specified in the getopt_long parameter list. +--- + src/journal/journalctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c +index cccd8a7..011a11b 100644 +--- a/src/journal/journalctl.c ++++ b/src/journal/journalctl.c +@@ -157,7 +157,7 @@ static int parse_argv(int argc, char *argv[]) { + { "this-boot", no_argument, NULL, 'b' }, + { "directory", required_argument, NULL, 'D' }, + { "header", no_argument, NULL, ARG_HEADER }, +- { "priority", no_argument, NULL, 'p' }, ++ { "priority", required_argument, NULL, 'p' }, + { "setup-keys", no_argument, NULL, ARG_SETUP_KEYS }, + { "interval", required_argument, NULL, ARG_INTERVAL }, + { "verify", no_argument, NULL, ARG_VERIFY }, +-- +1.7.10.4 + diff --git a/kmod-fix-builtin-typo.patch b/kmod-fix-builtin-typo.patch new file mode 100644 index 00000000..77853c54 --- /dev/null +++ b/kmod-fix-builtin-typo.patch @@ -0,0 +1,25 @@ +From a9f4815da56b8efc519595c3d8a78fe064fa8d69 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 26 Oct 2012 00:28:23 +0200 +Subject: [PATCH] udev: kmod - fix typo + +--- + src/udev/udev-builtin-kmod.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/udev/udev-builtin-kmod.c b/src/udev/udev-builtin-kmod.c +index 1df055b..aacdff8 100644 +--- a/src/udev/udev-builtin-kmod.c ++++ b/src/udev/udev-builtin-kmod.c +@@ -75,7 +75,7 @@ static int builtin_kmod(struct udev_device *dev, int argc, char *argv[], bool te + struct udev *udev = udev_device_get_udev(dev); + int i; + +- if (ctx) ++ if (!ctx) + return 0; + + if (argc < 3 || strcmp(argv[1], "load")) { +-- +1.7.10.4 + diff --git a/libudev-validate-argument-udev_enumerate_new.patch b/libudev-validate-argument-udev_enumerate_new.patch new file mode 100644 index 00000000..9f14aa05 --- /dev/null +++ b/libudev-validate-argument-udev_enumerate_new.patch @@ -0,0 +1,26 @@ +From e68893075083a7461b1572233d23fdb23541d630 Mon Sep 17 00:00:00 2001 +From: Michael Terry +Date: Fri, 14 Dec 2012 09:02:13 -0500 +Subject: [PATCH] libudev: validate 'udev' argument to udev_enumerate_new() + +https://bugs.freedesktop.org/show_bug.cgi?id=58289 +--- + src/libudev/libudev-enumerate.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c +index 1729655..6a5f4e0 100644 +--- a/src/libudev/libudev-enumerate.c ++++ b/src/libudev/libudev-enumerate.c +@@ -81,6 +81,8 @@ _public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) + { + struct udev_enumerate *udev_enumerate; + ++ if (udev == NULL) ++ return NULL; + udev_enumerate = calloc(1, sizeof(struct udev_enumerate)); + if (udev_enumerate == NULL) + return NULL; +-- +1.7.10.4 + diff --git a/localectl-fix-assertion.patch b/localectl-fix-assertion.patch new file mode 100644 index 00000000..08ce257e --- /dev/null +++ b/localectl-fix-assertion.patch @@ -0,0 +1,27 @@ +From 6b2b6f30e38d67b032d6bdc6b47ae05e143e96c5 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 12 Dec 2012 22:24:04 +0100 +Subject: [PATCH] localectl: fix dbus call arguments in set_x11_keymap + +Fixes an assertion failure in the dbus lib. +https://bugzilla.redhat.com/show_bug.cgi?id=882212 +--- + src/locale/localectl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/locale/localectl.c b/src/locale/localectl.c +index fa73bca..383a17d 100644 +--- a/src/locale/localectl.c ++++ b/src/locale/localectl.c +@@ -537,7 +537,7 @@ static int set_x11_keymap(DBusConnection *bus, char **args, unsigned n) { + layout = args[1]; + model = n > 2 ? args[2] : ""; + variant = n > 3 ? args[3] : ""; +- options = n > 3 ? args[4] : ""; ++ options = n > 4 ? args[4] : ""; + b = arg_convert; + + return bus_method_call_with_reply( +-- +1.7.10.4 + diff --git a/localectl-support-systems-without-locale-archive.patch b/localectl-support-systems-without-locale-archive.patch new file mode 100644 index 00000000..d5498fe9 --- /dev/null +++ b/localectl-support-systems-without-locale-archive.patch @@ -0,0 +1,163 @@ +From 17d33cecaa762f7e43200307328af5e9135e2091 Mon Sep 17 00:00:00 2001 +From: Giovanni Campagna +Date: Sat, 5 Jan 2013 01:29:53 +0100 +Subject: [PATCH] localectl: support systems without locale-archive + +Not all systems ships with locales inside /usr/lib/locale-archive, some +prefer to have locale data as individual subdirectories of /usr/lib/locale. +(A notable example of this is OpenEmbeddded, and OSes deriving from it +like gnome-ostree). +Given that glibc supports both ways, localectl should too. +--- + src/locale/localectl.c | 101 ++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 85 insertions(+), 16 deletions(-) + +diff --git a/src/locale/localectl.c b/src/locale/localectl.c +index 5d35f9c..b3acb3e 100644 +--- a/src/locale/localectl.c ++++ b/src/locale/localectl.c +@@ -266,7 +266,7 @@ finish: + return r; + } + +-static int list_locales(DBusConnection *bus, char **args, unsigned n) { ++static int add_locales_from_archive(Set *locales) { + /* Stolen from glibc... */ + + struct locarhead { +@@ -304,21 +304,15 @@ static int list_locales(DBusConnection *bus, char **args, unsigned n) { + const struct namehashent *e; + const void *p = MAP_FAILED; + _cleanup_close_ int fd = -1; +- _cleanup_strv_free_ char **l = NULL; +- char **j; +- Set *locales; + size_t sz = 0; + struct stat st; + unsigned i; + int r; + +- locales = set_new(string_hash_func, string_compare_func); +- if (!locales) +- return log_oom(); +- + fd = open("/usr/lib/locale/locale-archive", O_RDONLY|O_NOCTTY|O_CLOEXEC); + if (fd < 0) { +- log_error("Failed to open locale archive: %m"); ++ if (errno != ENOENT) ++ log_error("Failed to open locale archive: %m"); + r = -errno; + goto finish; + } +@@ -380,15 +374,93 @@ static int list_locales(DBusConnection *bus, char **args, unsigned n) { + } + } + ++ r = 0; ++ ++ finish: ++ if (p != MAP_FAILED) ++ munmap((void*) p, sz); ++ ++ return r; ++} ++ ++static int add_locales_from_libdir (Set *locales) { ++ DIR *dir; ++ struct dirent *entry; ++ int r; ++ ++ dir = opendir("/usr/lib/locale"); ++ if (!dir) { ++ log_error("Failed to open locale directory: %m"); ++ r = -errno; ++ goto finish; ++ } ++ ++ errno = 0; ++ while ((entry = readdir(dir))) { ++ char *z; ++ ++ if (entry->d_type != DT_DIR) ++ continue; ++ ++ if (ignore_file(entry->d_name)) ++ continue; ++ ++ z = strdup(entry->d_name); ++ if (!z) { ++ r = log_oom(); ++ goto finish; ++ } ++ ++ r = set_put(locales, z); ++ if (r < 0) { ++ free(z); ++ ++ if (r != -EEXIST) { ++ log_error("Failed to add locale: %s", strerror(-r)); ++ goto finish; ++ } ++ } ++ ++ errno = 0; ++ } ++ ++ if (errno != 0) { ++ log_error("Failed to read locale directory: %m"); ++ r = -errno; ++ goto finish; ++ } ++ ++ r = 0; ++ ++ finish: ++ closedir(dir); ++ return r; ++} ++ ++static int list_locales(DBusConnection *bus, char **args, unsigned n) { ++ Set *locales; ++ _cleanup_strv_free_ char **l = NULL; ++ char **j; ++ int r; ++ ++ locales = set_new(string_hash_func, string_compare_func); ++ if (!locales) ++ return log_oom(); ++ ++ r = add_locales_from_archive(locales); ++ if (r < 0 && r != -ENOENT) ++ goto finish; ++ ++ r = add_locales_from_libdir(locales); ++ if (r < 0) ++ goto finish; ++ + l = set_get_strv(locales); + if (!l) { + r = log_oom(); + goto finish; + } + +- set_free(locales); +- locales = NULL; +- + strv_sort(l); + + pager_open_if_enabled(); +@@ -399,10 +471,7 @@ static int list_locales(DBusConnection *bus, char **args, unsigned n) { + r = 0; + + finish: +- if (p != MAP_FAILED) +- munmap((void*) p, sz); +- +- set_free_free(locales); ++ set_free(locales); + + return r; + } +-- +1.7.10.4 + diff --git a/logind-capability-making-seats-without-fb.patch b/logind-capability-making-seats-without-fb.patch new file mode 100644 index 00000000..3bb260cb --- /dev/null +++ b/logind-capability-making-seats-without-fb.patch @@ -0,0 +1,59 @@ +From 955f9bde9ba6d9f0a7364d5cb7c0cee951d5caab Mon Sep 17 00:00:00 2001 +From: Oleg Samarin +Date: Sat, 5 Jan 2013 20:33:37 +0400 +Subject: [PATCH] logind: Capability of making seats without framebuffer + devices + +file logind.c: The seat is now activated by any device with udev tag "seat-master" +file 71-seat.rules.in: All framebuffer devices have this tag +--- + src/login/71-seat.rules.in | 2 +- + src/login/logind.c | 12 ++---------- + 2 files changed, 3 insertions(+), 11 deletions(-) + +diff --git a/src/login/71-seat.rules.in b/src/login/71-seat.rules.in +index f554d7f..4f1a9a5 100644 +--- a/src/login/71-seat.rules.in ++++ b/src/login/71-seat.rules.in +@@ -10,7 +10,7 @@ ACTION=="remove", GOTO="seat_end" + TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" + SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" + SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat" +-SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat" ++SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat", TAG+="seat-master" + SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat" + + # 'Plugable' USB hub, sound, network, graphics adapter +diff --git a/src/login/logind.c b/src/login/logind.c +index 6438631..6776229 100644 +--- a/src/login/logind.c ++++ b/src/login/logind.c +@@ -459,11 +459,7 @@ int manager_enumerate_devices(Manager *m) { + goto finish; + } + +- r = udev_enumerate_add_match_subsystem(e, "graphics"); +- if (r < 0) +- goto finish; +- +- r = udev_enumerate_add_match_tag(e, "seat"); ++ r = udev_enumerate_add_match_tag(e, "seat-master"); + if (r < 0) + goto finish; + +@@ -1295,11 +1291,7 @@ static int manager_connect_udev(Manager *m) { + if (!m->udev_seat_monitor) + return -ENOMEM; + +- r = udev_monitor_filter_add_match_tag(m->udev_seat_monitor, "seat"); +- if (r < 0) +- return r; +- +- r = udev_monitor_filter_add_match_subsystem_devtype(m->udev_seat_monitor, "graphics", NULL); ++ r = udev_monitor_filter_add_match_tag(m->udev_seat_monitor, "seat-master"); + if (r < 0) + return r; + +-- +1.7.10.4 + diff --git a/logind-ignore-non-tty-non-x11-session-on-shutdown.patch b/logind-ignore-non-tty-non-x11-session-on-shutdown.patch new file mode 100644 index 00000000..163f41d6 --- /dev/null +++ b/logind-ignore-non-tty-non-x11-session-on-shutdown.patch @@ -0,0 +1,33 @@ +From 1ca04b87979b2add53ebb8a7fdf13c34fb6c2743 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 14 Jan 2013 21:40:38 +0100 +Subject: [PATCH] logind: ignore non-tty/non-x11 session when checking if + there are other sessions before shutting down + +https://bugzilla.redhat.com/show_bug.cgi?id=890827 +--- + src/login/logind-dbus.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index 77a06f2..d64debe 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -979,9 +979,12 @@ static int have_multiple_sessions( + + assert(m); + +- /* Check for other users' sessions. Greeter sessions do not count. */ ++ /* Check for other users' sessions. Greeter sessions do not ++ * count, and non-login sessions do not count either. */ + HASHMAP_FOREACH(session, m->sessions, i) +- if (session->class == SESSION_USER && session->user->uid != uid) ++ if (session->class == SESSION_USER && ++ (session->type == SESSION_TTY || session->type == SESSION_X11) && ++ session->user->uid != uid) + return true; + + return false; +-- +1.7.10.4 + diff --git a/pam-properly-handle-ssh-logins-without-pam-tty-field.patch b/pam-properly-handle-ssh-logins-without-pam-tty-field.patch new file mode 100644 index 00000000..87595784 --- /dev/null +++ b/pam-properly-handle-ssh-logins-without-pam-tty-field.patch @@ -0,0 +1,57 @@ +From 0ad1271f564b9c956685938167f7ea8c301e835e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 23 Dec 2012 22:31:17 +0100 +Subject: [PATCH] pam: properly handle SSH logins lacking the PAM tty field + +--- + src/login/pam-module.c | 19 ++++++++++++++----- + 1 file changed, 14 insertions(+), 5 deletions(-) + +diff --git a/src/login/pam-module.c b/src/login/pam-module.c +index 08a9328..e6764a1 100644 +--- a/src/login/pam-module.c ++++ b/src/login/pam-module.c +@@ -322,7 +322,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( + + struct passwd *pw; + bool kill_processes = false, debug = false; +- const char *username, *id, *object_path, *runtime_path, *service = NULL, *tty = NULL, *display = NULL, *remote_user = NULL, *remote_host = NULL, *seat = NULL, *type, *class, *cvtnr = NULL; ++ const char *username, *id, *object_path, *runtime_path, *service = NULL, *tty = NULL, *display = NULL, *remote_user = NULL, *remote_host = NULL, *seat = NULL, *type = NULL, *class, *cvtnr = NULL; + char **controllers = NULL, **reset_controllers = NULL, **kill_only_users = NULL, **kill_exclude_users = NULL; + DBusError error; + uint32_t uid, pid; +@@ -453,9 +453,17 @@ _public_ PAM_EXTERN int pam_sm_open_session( + display = tty; + tty = ""; + } else if (streq(tty, "cron")) { +- /* cron has been setting PAM_TTY to "cron" for a very long time +- * and it cannot stop doing that for compatibility reasons. */ ++ /* cron has been setting PAM_TTY to "cron" for a very ++ * long time and it probably shouldn't stop doing that ++ * for compatibility reasons. */ + tty = ""; ++ type = "unspecified"; ++ } else if (streq(tty, "ssh")) { ++ /* ssh has been setting PAM_TTY to "ssh" for a very ++ * long time and probably shouldn't stop doing that ++ * for compatibility reasons. */ ++ tty = ""; ++ type ="tty"; + } + + /* If this fails vtnr will be 0, that's intended */ +@@ -469,8 +477,9 @@ _public_ PAM_EXTERN int pam_sm_open_session( + get_seat_from_display(display, NULL, &vtnr); + } + +- type = !isempty(display) ? "x11" : +- !isempty(tty) ? "tty" : "unspecified"; ++ if (!type) ++ type = !isempty(display) ? "x11" : ++ !isempty(tty) ? "tty" : "unspecified"; + + class = pam_getenv(handle, "XDG_SESSION_CLASS"); + if (isempty(class)) +-- +1.7.10.4 + diff --git a/parse-multiline-env-file.patch b/parse-multiline-env-file.patch new file mode 100644 index 00000000..c0369e3f --- /dev/null +++ b/parse-multiline-env-file.patch @@ -0,0 +1,157 @@ +From 565d91fdf198b88f7c2d72c67cfc6c30341a3596 Mon Sep 17 00:00:00 2001 +From: Michal Vyskocil +Date: Fri, 18 Jan 2013 10:05:10 +0100 +Subject: [PATCH] util: continuation support for load_env_file + +Variable definitions can be written on more than one line - if each ends +with a backslash, then is concatenated with a previous one. Only +backslash and unix end of line (\n) are treated as a continuation. + +Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=58083 + +[zj: squashed two patches together; cleaned up grammar; removed + comment about ignoring trailing backslash -- it is not ignored.] + +Document continuation support in systemd.exec +--- + man/systemd.exec.xml | 8 +++++--- + src/shared/util.c | 43 ++++++++++++++++++++++++++++++++++++++----- + 2 files changed, 43 insertions(+), 8 deletions(-) + +Index: systemd-195/man/systemd.exec.xml +=================================================================== +--- systemd-195.orig/man/systemd.exec.xml ++++ systemd-195/man/systemd.exec.xml +@@ -282,9 +282,11 @@ + contain new-line separated variable + assignments. Empty lines and lines + starting with ; or # will be ignored, +- which may be used for commenting. The +- parser strips leading and +- trailing whitespace from the values ++ which may be used for commenting. A line ++ ending with a backslash will be concatenated ++ with the following one, allowing multiline variable ++ definitions. The parser strips leading ++ and trailing whitespace from the values + of assignments, unless you use + double quotes ("). + The +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -876,33 +876,55 @@ fail: + return r; + } + +-int load_env_file( +- const char *fname, +- char ***rl) { +- +- FILE *f; +- char **m = NULL; +- int r; ++int load_env_file(const char *fname, ++ char ***rl) { ++ ++ FILE _cleanup_fclose_ *f; ++ char *b; ++ char _cleanup_free_ *c = NULL; ++ char _cleanup_strv_free_ **m = NULL; + + assert(fname); + assert(rl); + +- if (!(f = fopen(fname, "re"))) ++ f = fopen(fname, "re"); ++ if (!f) + return -errno; + + while (!feof(f)) { +- char l[LINE_MAX], *p, *u; ++ char l[LINE_MAX], *p, *u, *cs; + char **t; + + if (!fgets(l, sizeof(l), f)) { +- if (feof(f)) ++ if (!feof(f)) ++ return -errno; ++ else if (!c) + break; ++ } + +- r = -errno; +- goto finish; ++ cs = endswith(l, "\\\n"); ++ if (cs) { ++ *cs = '\0'; ++ b = strappend(c, l); ++ if (!b) ++ return log_oom(); ++ ++ free(c); ++ c = b; ++ *l = '\0'; ++ continue; + } + +- p = strstrip(l); ++ if (c) { ++ b = strappend(c, l); ++ if (!b) ++ return log_oom(); ++ ++ free(c); ++ c = b; ++ } ++ ++ p = strstrip(c ? c : l); + + if (!*p) + continue; +@@ -910,35 +932,27 @@ int load_env_file( + if (strchr(COMMENTS, *p)) + continue; + +- if (!(u = normalize_env_assignment(p))) { +- r = log_oom(); +- goto finish; +- } ++ u = normalize_env_assignment(p); ++ if (!u) ++ return log_oom(); ++ ++ free(c); ++ c = NULL; + + t = strv_append(m, u); + free(u); + +- if (!t) { +- r = log_oom(); +- goto finish; +- } ++ if (!t) ++ return log_oom(); + + strv_free(m); + m = t; + } + +- r = 0; +- + *rl = m; + m = NULL; + +-finish: +- if (f) +- fclose(f); +- +- strv_free(m); +- +- return r; ++ return 0; + } + + int write_env_file(const char *fname, char **l) { diff --git a/path-util-fix-potential-crash.patch b/path-util-fix-potential-crash.patch new file mode 100644 index 00000000..9399e947 --- /dev/null +++ b/path-util-fix-potential-crash.patch @@ -0,0 +1,27 @@ +From c9c7aef24f9750bbd51d2c13beff66473d96bf3c Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Thu, 13 Dec 2012 14:59:39 +0100 +Subject: [PATCH] path-util: set pointer to null after calling free() + +In cases where path_strv_canonicalize() returns NULL, strv_free() is +called afterwards and it will call free() on pointers which were freed +already in path_strv_canonicalize() +--- + src/shared/path-util.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/shared/path-util.c b/src/shared/path-util.c +index 70c8a8a..dd12d3d 100644 +--- a/src/shared/path-util.c ++++ b/src/shared/path-util.c +@@ -181,6 +181,7 @@ char **path_strv_canonicalize(char **l) { + + t = path_make_absolute_cwd(*s); + free(*s); ++ *s = NULL; + + if (!t) { + enomem = true; +-- +1.7.10.4 + diff --git a/reword-rescue-mode-hints.patch b/reword-rescue-mode-hints.patch new file mode 100644 index 00000000..e6e7db87 --- /dev/null +++ b/reword-rescue-mode-hints.patch @@ -0,0 +1,30 @@ +From aa6eba407be2c23882bf41a1beafbbd1352f7ab3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 23 Oct 2012 16:32:12 +0200 +Subject: [PATCH] units: reword rescue mode hints + +Do not suggest to the user that commands can be issued before +logging in. + +sulogin prints it own message, which mentions ^D, so there's no need +to repeat it here. +--- + units/emergency.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/emergency.service.in b/units/emergency.service.in +index 1815f9d..129a831 100644 +--- a/units/emergency.service.in ++++ b/units/emergency.service.in +@@ -16,7 +16,7 @@ Before=shutdown.target + Environment=HOME=/root + WorkingDirectory=/root + ExecStartPre=-/bin/plymouth quit +-ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -b" to view system logs. Type "systemctl reboot" to reboot.' ++ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -b" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' + ExecStart=-/sbin/sulogin + ExecStopPost=@SYSTEMCTL@ --fail --no-block default + Type=idle +-- +1.7.10.4 + diff --git a/service-forking-ignore-exit-status-main-process.patch b/service-forking-ignore-exit-status-main-process.patch new file mode 100644 index 00000000..da4c695f --- /dev/null +++ b/service-forking-ignore-exit-status-main-process.patch @@ -0,0 +1,48 @@ +From fbeefb45ac1a257a0c5af975ad26d68ed6c39fda Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 14 Jan 2013 21:05:17 +0100 +Subject: [PATCH] service: for Type=forking services, ignore exit status of + main process depending on ExecStart's ignore setting + +https://bugzilla.redhat.com/show_bug.cgi?id=860464 +--- + src/core/service.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index 8e9e112..7eaac0d 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2926,15 +2926,25 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { + s->main_pid = 0; + exec_status_exit(&s->main_exec_status, &s->exec_context, pid, code, status); + +- /* If this is not a forking service than the main +- * process got started and hence we copy the exit +- * status so that it is recorded both as main and as +- * control process exit status */ + if (s->main_command) { ++ /* If this is not a forking service than the ++ * main process got started and hence we copy ++ * the exit status so that it is recorded both ++ * as main and as control process exit ++ * status */ ++ + s->main_command->exec_status = s->main_exec_status; + + if (s->main_command->ignore) + f = SERVICE_SUCCESS; ++ } else if (s->exec_command[SERVICE_EXEC_START]) { ++ ++ /* If this is a forked process, then we should ++ * ignore the return value if this was ++ * configured for the starter process */ ++ ++ if (s->exec_command[SERVICE_EXEC_START]->ignore) ++ f = SERVICE_SUCCESS; + } + + log_struct(f == SERVICE_SUCCESS ? LOG_DEBUG : LOG_NOTICE, +-- +1.7.10.4 + diff --git a/shutdown-dont-force-mnt-force-on-final-umount.patch b/shutdown-dont-force-mnt-force-on-final-umount.patch new file mode 100644 index 00000000..cd95df86 --- /dev/null +++ b/shutdown-dont-force-mnt-force-on-final-umount.patch @@ -0,0 +1,35 @@ +From 0c08f5cde749bd2818475e487109cd0d413452df Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 16 Jan 2013 03:51:56 +0100 +Subject: [PATCH] shutdown: in the final umount loop don't use MNT_FORCE + +MNT_FORCE is honoured by NFS and FUSE and allows unmounting of the FS +even if consumers still use it. For our brute-force loop we rely on +EBUSY being reported as long as a file system is still used by a +loopback device or suchlike. Hence, drop MNT_FORCE to make EBUSY +reliable. +--- + src/core/umount.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/core/umount.c b/src/core/umount.c +index 96232d3..c7b6cee 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -442,9 +442,11 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e + ) + continue; + +- /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */ ++ /* Trying to umount. We don't force here since we rely ++ * on busy NFS and FUSE file systems to return EBUSY ++ * until we closed everything on top of them. */ + log_info("Unmounting %s.", m->path); +- if (umount2(m->path, MNT_FORCE) == 0) { ++ if (umount2(m->path, 0) == 0) { + if (changed) + *changed = true; + +-- +1.7.10.4 + diff --git a/shutdown-ignore-loop-devices-without-backing-file.patch b/shutdown-ignore-loop-devices-without-backing-file.patch new file mode 100644 index 00000000..44992a7f --- /dev/null +++ b/shutdown-ignore-loop-devices-without-backing-file.patch @@ -0,0 +1,37 @@ +From bdffb521d01a2e2bc342154d74cb519755c52c25 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 16 Jan 2013 04:35:54 +0100 +Subject: [PATCH] shutdown: ignore loop devices without a backing file + +--- + src/core/umount.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/core/umount.c b/src/core/umount.c +index c7b6cee..f0f2711 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -233,6 +233,7 @@ static int loopback_list_get(MountPoint **head) { + udev_list_entry_foreach(item, first) { + MountPoint *lb; + struct udev_device *d; ++ const char *backing; + char *loop; + const char *dn; + +@@ -241,6 +242,12 @@ static int loopback_list_get(MountPoint **head) { + goto finish; + } + ++ backing = udev_device_get_sysattr_value(d, "loop/backing_file"); ++ if (!backing) { ++ udev_device_unref(d); ++ continue; ++ } ++ + if (!(dn = udev_device_get_devnode(d))) { + udev_device_unref(d); + continue; +-- +1.7.10.4 + diff --git a/shutdown-improvements.patch b/shutdown-improvements.patch new file mode 100644 index 00000000..8d09881e --- /dev/null +++ b/shutdown-improvements.patch @@ -0,0 +1,273 @@ +From 2569a5ce16638d99f1ebaaa7774d183496d8b8e8 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 7 Dec 2012 17:28:30 +0100 +Subject: [PATCH] shutdown: downgrade a warning + +All messages of the kind "not all done, %d left" are log_info, except +the one for DM devices. Make it info too. +--- + src/core/shutdown.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/shutdown.c b/src/core/shutdown.c +index 4bb4b4d..192746a 100644 +--- a/src/core/shutdown.c ++++ b/src/core/shutdown.c +@@ -233,7 +233,7 @@ int main(int argc, char *argv[]) { + if (r == 0) + need_dm_detach = false; + else if (r > 0) +- log_warning("Not all DM devices detached, %d left.", r); ++ log_info("Not all DM devices detached, %d left.", r); + else + log_error("Failed to detach DM devices: %s", strerror(-r)); + } +-- +1.7.10.4 + +From c678406681d32d56730b9e9c002d5500d7aa7f8b Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 7 Dec 2012 17:34:21 +0100 +Subject: [PATCH] umount: fix check for DM changed + +delete_dm() returns 0 on success. The check for "r > 0" was likely +a copy&paste error from the loopback code where "r > 0" makes sense. +--- + src/core/umount.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/umount.c b/src/core/umount.c +index f6c520e..8776807 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -536,7 +536,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { + + if ((r = delete_dm(m->devnum)) >= 0) { + +- if (r > 0 && changed) ++ if (changed) + *changed = true; + + mount_point_free(head, m); +-- +1.7.10.4 + +From bce93b7ac7642426039863493694d8c12812e2a7 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 7 Dec 2012 17:44:50 +0100 +Subject: [PATCH] shutdown, umount: logging improvements + +In bugreports about hangs during the late shutdown we are often missing +important information - what were we trying to unmount/detach when it hung. + +Instead of printing what we successfully unmounted, print what we are +going to unmount/detach. And add messages to mark the completion of +categories (mount/swap/loop/DM). +--- + src/core/shutdown.c | 20 ++++++++++++-------- + src/core/umount.c | 15 +++++++++------ + 2 files changed, 21 insertions(+), 14 deletions(-) + +diff --git a/src/core/shutdown.c b/src/core/shutdown.c +index 192746a..6783008 100644 +--- a/src/core/shutdown.c ++++ b/src/core/shutdown.c +@@ -197,9 +197,10 @@ int main(int argc, char *argv[]) { + if (need_umount) { + log_info("Unmounting file systems."); + r = umount_all(&changed); +- if (r == 0) ++ if (r == 0) { + need_umount = false; +- else if (r > 0) ++ log_info("All filesystems unmounted."); ++ } else if (r > 0) + log_info("Not all file systems unmounted, %d left.", r); + else + log_error("Failed to unmount file systems: %s", strerror(-r)); +@@ -208,9 +209,10 @@ int main(int argc, char *argv[]) { + if (need_swapoff) { + log_info("Disabling swaps."); + r = swapoff_all(&changed); +- if (r == 0) ++ if (r == 0) { + need_swapoff = false; +- else if (r > 0) ++ log_info("All swaps disabled."); ++ } else if (r > 0) + log_info("Not all swaps are turned off, %d left.", r); + else + log_error("Failed to turn off swaps: %s", strerror(-r)); +@@ -219,9 +221,10 @@ int main(int argc, char *argv[]) { + if (need_loop_detach) { + log_info("Detaching loop devices."); + r = loopback_detach_all(&changed); +- if (r == 0) ++ if (r == 0) { + need_loop_detach = false; +- else if (r > 0) ++ log_info("All loop devices detached."); ++ } else if (r > 0) + log_info("Not all loop devices detached, %d left.", r); + else + log_error("Failed to detach loop devices: %s", strerror(-r)); +@@ -230,9 +233,10 @@ int main(int argc, char *argv[]) { + if (need_dm_detach) { + log_info("Detaching DM devices."); + r = dm_detach_all(&changed); +- if (r == 0) ++ if (r == 0) { + need_dm_detach = false; +- else if (r > 0) ++ log_info("All DM devices detached."); ++ } else if (r > 0) + log_info("Not all DM devices detached, %d left.", r); + else + log_error("Failed to detach DM devices: %s", strerror(-r)); +diff --git a/src/core/umount.c b/src/core/umount.c +index 8776807..fd90d9f 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -443,8 +443,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e + continue; + + /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */ ++ log_info("Unmounting %s.", m->path); + if (umount2(m->path, MNT_FORCE) == 0) { +- log_info("Unmounted %s.", m->path); + if (changed) + *changed = true; + +@@ -465,6 +465,7 @@ static int swap_points_list_off(MountPoint **head, bool *changed) { + assert(head); + + LIST_FOREACH_SAFE(mount_point, m, n, *head) { ++ log_info("Disabling swap %s.", m->path); + if (swapoff(m->path) == 0) { + if (changed) + *changed = true; +@@ -500,8 +501,9 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) { + continue; + } + +- if ((r = delete_loopback(m->path)) >= 0) { +- ++ log_info("Deleting loopback %s.", m->path); ++ r = delete_loopback(m->path); ++ if (r >= 0) { + if (r > 0 && changed) + *changed = true; + +@@ -534,14 +536,15 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { + continue; + } + +- if ((r = delete_dm(m->devnum)) >= 0) { +- ++ log_info("Deleting DM %u:%u.", major(m->devnum), minor(m->devnum)); ++ r = delete_dm(m->devnum); ++ if (r >= 0) { + if (changed) + *changed = true; + + mount_point_free(head, m); + } else { +- log_warning("Could not delete dm %s: %m", m->path); ++ log_warning("Could not delete DM %s: %m", m->path); + n_failed++; + } + } +-- +1.7.10.4 + +From 735e0712710a1dc26da0febafb91b242b2687f3f Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 7 Dec 2012 18:02:43 +0100 +Subject: [PATCH] shutdown, umount: use verbs consistently + +Mounts are "unmounted". +Swaps are "deactivated", not "turned off" nor "disabled". +Loop and DM devices are "detached", not "deleted". + +Especially the deleting sounded a bit scary. +--- + src/core/shutdown.c | 8 ++++---- + src/core/umount.c | 10 +++++----- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/src/core/shutdown.c b/src/core/shutdown.c +index 6783008..0b0e0c3 100644 +--- a/src/core/shutdown.c ++++ b/src/core/shutdown.c +@@ -207,15 +207,15 @@ int main(int argc, char *argv[]) { + } + + if (need_swapoff) { +- log_info("Disabling swaps."); ++ log_info("Deactivating swaps."); + r = swapoff_all(&changed); + if (r == 0) { + need_swapoff = false; +- log_info("All swaps disabled."); ++ log_info("All swaps deactivated."); + } else if (r > 0) +- log_info("Not all swaps are turned off, %d left.", r); ++ log_info("Not all swaps deactivated, %d left.", r); + else +- log_error("Failed to turn off swaps: %s", strerror(-r)); ++ log_error("Failed to deactivate swaps: %s", strerror(-r)); + } + + if (need_loop_detach) { +diff --git a/src/core/umount.c b/src/core/umount.c +index fd90d9f..96232d3 100644 +--- a/src/core/umount.c ++++ b/src/core/umount.c +@@ -465,7 +465,7 @@ static int swap_points_list_off(MountPoint **head, bool *changed) { + assert(head); + + LIST_FOREACH_SAFE(mount_point, m, n, *head) { +- log_info("Disabling swap %s.", m->path); ++ log_info("Deactivating swap %s.", m->path); + if (swapoff(m->path) == 0) { + if (changed) + *changed = true; +@@ -501,7 +501,7 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) { + continue; + } + +- log_info("Deleting loopback %s.", m->path); ++ log_info("Detaching loopback %s.", m->path); + r = delete_loopback(m->path); + if (r >= 0) { + if (r > 0 && changed) +@@ -509,7 +509,7 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) { + + mount_point_free(head, m); + } else { +- log_warning("Could not delete loopback %s: %m", m->path); ++ log_warning("Could not detach loopback %s: %m", m->path); + n_failed++; + } + } +@@ -536,7 +536,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { + continue; + } + +- log_info("Deleting DM %u:%u.", major(m->devnum), minor(m->devnum)); ++ log_info("Detaching DM %u:%u.", major(m->devnum), minor(m->devnum)); + r = delete_dm(m->devnum); + if (r >= 0) { + if (changed) +@@ -544,7 +544,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { + + mount_point_free(head, m); + } else { +- log_warning("Could not delete DM %s: %m", m->path); ++ log_warning("Could not detach DM %s: %m", m->path); + n_failed++; + } + } +-- +1.7.10.4 + diff --git a/socket-improve-error-message.patch b/socket-improve-error-message.patch new file mode 100644 index 00000000..cb0f735a --- /dev/null +++ b/socket-improve-error-message.patch @@ -0,0 +1,26 @@ +From 10f70492aea211981e4bdbe58dd7ea110e05cd16 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 20 Nov 2012 00:19:00 +0100 +Subject: [PATCH] socket: improve error message when we cannot spawn the + socket's service unit + +--- + src/core/socket.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/socket.c b/src/core/socket.c +index c095981..f4f40af 100644 +--- a/src/core/socket.c ++++ b/src/core/socket.c +@@ -1542,7 +1542,7 @@ static void socket_enter_running(Socket *s, int cfd) { + return; + + fail: +- log_warning("%s failed to queue socket startup job: %s", UNIT(s)->id, bus_error(&error, r)); ++ log_warning("%s failed to queue service startup job (Maybe the service file is missing or not a %s unit?): %s", UNIT(s)->id, cfd >= 0 ? "template" : "non-template", bus_error(&error, r)); + socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); + + if (cfd >= 0) +-- +1.7.10.4 + diff --git a/socket-verbose-error-message.patch b/socket-verbose-error-message.patch new file mode 100644 index 00000000..6d3d6f62 --- /dev/null +++ b/socket-verbose-error-message.patch @@ -0,0 +1,32 @@ +From 80cba3795da3a43b27cbb219d7daf7d6f049b079 Mon Sep 17 00:00:00 2001 +From: Dimitrios Apostolou +Date: Wed, 19 Dec 2012 22:32:52 +0100 +Subject: [PATCH] socket: Too many incoming connections + +Hello list, + +some socket activated service gave me the error message you can see on +the subject, maybe systemd should be more verbose in that case. + +Thanks, +Dimitris +--- + src/core/socket.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/socket.c b/src/core/socket.c +index 9b5bcb6..49e795e 100644 +--- a/src/core/socket.c ++++ b/src/core/socket.c +@@ -1484,7 +1484,7 @@ static void socket_enter_running(Socket *s, int cfd) { + Service *service; + + if (s->n_connections >= s->max_connections) { +- log_warning("Too many incoming connections (%u)", s->n_connections); ++ log_warning("%s: Too many incoming connections (%u)", UNIT(s)->id, s->n_connections); + close_nointr_nofail(cfd); + return; + } +-- +1.7.10.4 + diff --git a/strv-cleanup-error-path-loops.patch b/strv-cleanup-error-path-loops.patch new file mode 100644 index 00000000..8a8c728d --- /dev/null +++ b/strv-cleanup-error-path-loops.patch @@ -0,0 +1,238 @@ +From 1fd8d04e384ae2066c02129b033c6be509edfd67 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 30 Oct 2012 18:29:45 +0100 +Subject: [PATCH] strv: cleanup error path loops + +https://bugzilla.redhat.com/show_bug.cgi?id=858799 +--- + src/shared/strv.c | 100 ++++++++++++++++++++++++++--------------------------- + 1 file changed, 49 insertions(+), 51 deletions(-) + +diff --git a/src/shared/strv.c b/src/shared/strv.c +index 1b8e27b..6b76d0e 100644 +--- a/src/shared/strv.c ++++ b/src/shared/strv.c +@@ -75,25 +75,21 @@ void strv_freep(char ***l) { + char **strv_copy(char **l) { + char **r, **k; + +- k = r = new(char*, strv_length(l)+1); +- if (!k) ++ k = r = new(char*, strv_length(l) + 1); ++ if (!r) + return NULL; + + if (l) +- for (; *l; k++, l++) +- if (!(*k = strdup(*l))) +- goto fail; ++ for (; *l; k++, l++) { ++ *k = strdup(*l); ++ if (!*k) { ++ strv_free(r); ++ return NULL; ++ } ++ } + + *k = NULL; + return r; +- +-fail: +- for (k--; k >= r; k--) +- free(*k); +- +- free(r); +- +- return NULL; + } + + unsigned strv_length(char **l) { +@@ -163,13 +159,7 @@ char **strv_new_ap(const char *x, va_list ap) { + return a; + + fail: +- +- for (; i > 0; i--) +- if (a[i-1]) +- free(a[i-1]); +- +- free(a); +- ++ strv_free(a); + return NULL; + } + +@@ -265,16 +255,21 @@ char **strv_split(const char *s, const char *separator) { + FOREACH_WORD_SEPARATOR(w, l, s, separator, state) + n++; + +- if (!(r = new(char*, n+1))) ++ r = new(char*, n+1); ++ if (!r) + return NULL; + + i = 0; +- FOREACH_WORD_SEPARATOR(w, l, s, separator, state) +- if (!(r[i++] = strndup(w, l))) { ++ FOREACH_WORD_SEPARATOR(w, l, s, separator, state) { ++ r[i] = strndup(w, l); ++ if (!r[i]) { + strv_free(r); + return NULL; + } + ++ i++; ++ } ++ + r[i] = NULL; + return r; + } +@@ -292,15 +287,19 @@ char **strv_split_quoted(const char *s) { + FOREACH_WORD_QUOTED(w, l, s, state) + n++; + +- if (!(r = new(char*, n+1))) ++ r = new(char*, n+1); ++ if (!r) + return NULL; + + i = 0; +- FOREACH_WORD_QUOTED(w, l, s, state) +- if (!(r[i++] = cunescape_length(w, l))) { ++ FOREACH_WORD_QUOTED(w, l, s, state) { ++ r[i] = cunescape_length(w, l); ++ if (!r[i]) { + strv_free(r); + return NULL; + } ++ i++; ++ } + + r[i] = NULL; + return r; +@@ -323,7 +322,8 @@ char *strv_join(char **l, const char *separator) { + n += strlen(*s); + } + +- if (!(r = new(char, n+1))) ++ r = new(char, n+1); ++ if (!r) + return NULL; + + e = r; +@@ -352,22 +352,21 @@ char **strv_append(char **l, const char *s) { + if (!r) + return NULL; + +- for (k = r; *l; k++, l++) +- if (!(*k = strdup(*l))) ++ for (k = r; *l; k++, l++) { ++ *k = strdup(*l); ++ if (!*k) + goto fail; ++ } + +- if (!(*(k++) = strdup(s))) ++ k[0] = strdup(s); ++ if (!k[0]) + goto fail; + +- *k = NULL; ++ k[1] = NULL; + return r; + + fail: +- for (k--; k >= r; k--) +- free(*k); +- +- free(r); +- ++ strv_free(r); + return NULL; + } + +@@ -462,7 +461,8 @@ static int env_append(char **r, char ***k, char **a) { + else + free(*j); + +- if (!(*j = strdup(*a))) ++ *j = strdup(*a); ++ if (!*j) + return -ENOMEM; + } + +@@ -484,7 +484,8 @@ char **strv_env_merge(unsigned n_lists, ...) { + } + va_end(ap); + +- if (!(r = new(char*, n+1))) ++ r = new(char*, n+1); ++ if (!r) + return NULL; + + k = r; +@@ -503,11 +504,7 @@ char **strv_env_merge(unsigned n_lists, ...) { + + fail: + va_end(ap); +- +- for (k--; k >= r; k--) +- free(*k); +- +- free(r); ++ strv_free(r); + + return NULL; + } +@@ -619,7 +616,8 @@ char **strv_env_set(char **x, const char *p) { + + /* Overrides the env var setting of p, returns a new copy */ + +- if (!(r = new(char*, strv_length(x)+2))) ++ r = new(char*, strv_length(x)+2); ++ if (!r) + return NULL; + + k = r; +@@ -634,11 +632,7 @@ char **strv_env_set(char **x, const char *p) { + return r; + + fail: +- for (k--; k >= r; k--) +- free(*k); +- +- free(r); +- ++ strv_free(r); + return NULL; + + } +@@ -698,7 +692,8 @@ char **strv_parse_nulstr(const char *s, size_t l) { + if (s[l-1] != 0) + c++; + +- if (!(v = new0(char*, c+1))) ++ v = new0(char*, c+1); ++ if (!v) + return NULL; + + p = s; +@@ -707,11 +702,14 @@ char **strv_parse_nulstr(const char *s, size_t l) { + + e = memchr(p, 0, s + l - p); + +- if (!(v[i++] = strndup(p, e ? e - p : s + l - p))) { ++ v[i] = strndup(p, e ? e - p : s + l - p); ++ if (!v[i]) { + strv_free(v); + return NULL; + } + ++ i++; ++ + if (!e) + break; + +-- +1.7.10.4 + diff --git a/sysctl-parse-all-keys.patch b/sysctl-parse-all-keys.patch new file mode 100644 index 00000000..4a8110ca --- /dev/null +++ b/sysctl-parse-all-keys.patch @@ -0,0 +1,26 @@ +From 91b32fa987a4a50faf3d8561b28b6c9d5150adef Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Thu, 25 Oct 2012 16:16:19 +0200 +Subject: [PATCH] sysctl: parse all keys in a config file + +https://bugzilla.redhat.com/show_bug.cgi?id=869779 +--- + src/sysctl/sysctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c +index a68d67f..035e0ec 100644 +--- a/src/sysctl/sysctl.c ++++ b/src/sysctl/sysctl.c +@@ -178,7 +178,7 @@ static int parse_file(const char *path, bool ignore_enoent) { + + free(property); + free(new_value); +- if (r != -EEXIST) ++ if (r != 0) + goto finish; + } + } +-- +1.7.10.4 + diff --git a/systemctl-no-assert-on-reboot-without-dbus.patch b/systemctl-no-assert-on-reboot-without-dbus.patch new file mode 100644 index 00000000..9b8412fb --- /dev/null +++ b/systemctl-no-assert-on-reboot-without-dbus.patch @@ -0,0 +1,28 @@ +From d255133d8edc84662d2370a77414505a800d1922 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sat, 12 Jan 2013 00:00:22 +0100 +Subject: [PATCH] systemctl: don't hit an assert if we try to reboot and dbus + is dead + +https://bugzilla.redhat.com/show_bug.cgi?id=889624 +--- + src/systemctl/systemctl.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c +index 0def1a2..bfa4d45 100644 +--- a/src/systemctl/systemctl.c ++++ b/src/systemctl/systemctl.c +@@ -1738,6 +1738,9 @@ static int reboot_with_logind(DBusConnection *bus, enum action a) { + const char *method; + dbus_bool_t interactive = true; + ++ if (!bus) ++ return -EIO; ++ + polkit_agent_open_if_enabled(); + + switch (a) { +-- +1.7.10.4 + diff --git a/systemctl-options.patch b/systemctl-options.patch new file mode 100644 index 00000000..0b100b2f --- /dev/null +++ b/systemctl-options.patch @@ -0,0 +1,49 @@ +Index: systemd-195/src/systemctl/systemctl.c +=================================================================== +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -5239,6 +5239,7 @@ static int runlevel_main(void) { + + int main(int argc, char*argv[]) { + int r, retval = EXIT_FAILURE; ++ char **to_free = NULL; + DBusConnection *bus = NULL; + DBusError error; + +@@ -5247,6 +5248,27 @@ int main(int argc, char*argv[]) { + log_parse_environment(); + log_open(); + ++ if (secure_getenv("SYSTEMCTL_OPTIONS")) { ++ char **parsed_systemctl_options = strv_split_quoted(getenv("SYSTEMCTL_OPTIONS")); ++ ++ if (*parsed_systemctl_options && **parsed_systemctl_options) { ++ char **k,**a; ++ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); ++ new_argv[0] = strdup(argv[0]); ++ for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { ++ *k = strdup(*a); ++ } ++ for (a = argv+1; *a; k++, a++) { ++ *k = strdup(*a); ++ } ++ *k = NULL; ++ argv = new_argv; ++ argc = strv_length(new_argv); ++ strv_free (parsed_systemctl_options); ++ to_free = new_argv; ++ } ++ } ++ + r = parse_argv(argc, argv); + if (r < 0) + goto finish; +@@ -5348,6 +5370,8 @@ finish: + + strv_free(arg_property); + ++ strv_free(to_free); ++ + pager_close(); + ask_password_agent_close(); + polkit_agent_close(); diff --git a/systemctl-verbose-message-on-missing-install.patch b/systemctl-verbose-message-on-missing-install.patch new file mode 100644 index 00000000..e6e88ac1 --- /dev/null +++ b/systemctl-verbose-message-on-missing-install.patch @@ -0,0 +1,39 @@ +From 4b9d3dc9748ec3f52a71b06f851f4398462a1c60 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 6 Dec 2012 16:20:10 +0100 +Subject: [PATCH] systemctl: verbose message on missing [Install] + +People still don't understand what the message implies. +We have to be more verbose (or more intelligent and detect some of the +cases automatically, but that's not so easy). + +https://bugzilla.redhat.com/show_bug.cgi?id=884438 +--- + src/systemctl/systemctl.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c +index 6d01756..3abd7dc 100644 +--- a/src/systemctl/systemctl.c ++++ b/src/systemctl/systemctl.c +@@ -3782,7 +3782,16 @@ static int enable_unit(DBusConnection *bus, char **args) { + } + + if (carries_install_info == 0) +- log_warning("The unit files have no [Install] section. They are not meant to be enabled using systemctl."); ++ log_warning( ++"The unit files have no [Install] section. They are not meant to be enabled\n" ++"using systemctl.\n" ++"Possible reasons for having this kind of units are:\n" ++"1) A unit may be statically enabled by being symlinked from another unit's\n" ++" .wants/ or .requires/ directory.\n" ++"2) A unit's purpose may be to act as a helper for some other unit which has\n" ++" a requirement dependency on it.\n" ++"3) A unit may be started when needed via activation (socket, path, timer,\n" ++" D-Bus, udev, scripted systemctl call, ...).\n"); + + finish: + if (m) +-- +1.7.10.4 + diff --git a/systemd-cgls-fix-piping-output.patch b/systemd-cgls-fix-piping-output.patch new file mode 100644 index 00000000..8c09be4e --- /dev/null +++ b/systemd-cgls-fix-piping-output.patch @@ -0,0 +1,37 @@ +From 7009eec20823add711e0aa452bdf9dfdd677fa4f Mon Sep 17 00:00:00 2001 +From: Anders Olofsson +Date: Mon, 19 Nov 2012 15:25:36 +0100 +Subject: [PATCH] shared/utils: systemd-cgls shows 'n/a' when piping output + +-1 was used to signal failure, but the type was unsigned. + +https://bugs.freedesktop.org/show_bug.cgi?id=56644 +--- + src/shared/util.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 4cf928f..d771d32 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -3803,7 +3803,7 @@ int fd_columns(int fd) { + + unsigned columns(void) { + const char *e; +- unsigned c; ++ int c; + + if (_likely_(cached_columns > 0)) + return cached_columns; +@@ -3811,7 +3811,7 @@ unsigned columns(void) { + c = 0; + e = getenv("COLUMNS"); + if (e) +- safe_atou(e, &c); ++ safe_atoi(e, &c); + + if (c <= 0) + c = fd_columns(STDOUT_FILENO); +-- +1.7.10.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 236dff45..130639ed 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,95 @@ +------------------------------------------------------------------- +Tue Jan 22 17:02:04 UTC 2013 - fcrozat@suse.com + +- Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly + (bnc#798620). +- Update crypt-loop-file.patch to correctly detect crypto loop + files (bnc#799514). +- Add journalctl-remove-leftover-message.patch: remove debug + message in systemctl. +- Add job-avoid-recursion-when-cancelling.patch: prevent potential + recursion when cancelling a service. +- Add sysctl-parse-all-keys.patch: ensure sysctl file is fully + parsed. +- Add journal-fix-cutoff-max-date.patch: fix computation of cutoff + max date for journal. +- Add reword-rescue-mode-hints.patch: reword rescue prompt. +- Add improve-overflow-checks.patch: improve time overflow checks. +- Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour + with symlinks. +- Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure + hostnamectl requires an argument when called with set-hostname + option. +- Add agetty-overrides-term.patch: pass correctly terminal type to + agetty. +- Add check-for-empty-strings-in-strto-conversions.patch: better + check for empty strings in strto* conversions. +- Add strv-cleanup-error-path-loops.patch: cleanup strv on error + path. +- Add cryptsetup-handle-plain.patch: correctly handle "plain" + option in cryptsetup. +- Add fstab-generator-improve-error-message.patch: improve error + message in fstab-generator. +- Add delta-accept-t-option.patch: accept -t option in + systemd-delta. +- Add highlight-ordering-cycle-deletions.patch: highlight ordering + cycle deletions in logs. +- Add core-interpret-escaped-semicolon-as-escaped.patch: accept \; + in ExecStart. +- Add hostnamectl-fix-parsing-no-ask-password.patch: accept + no-ask-password in hostnamectl. +- Add systemd-cgls-fix-piping-output.patch: fix piping output of + systemd-cgls. +- Add core-load-fragment-improve-error-message.patch: improve error + message when parsing fragments. +- Add fix-potential-bad-mem-access.patch: fix potential bad memory + access. +- Add socket-improve-error-message.patch: improve error message in + socket handling. +- Add journal-send-always-send-syslog_identifier.patch: always send + syslog_identifier if available for journal. +- Add crypsetup-handle-nofail.patch: handle nofail in cryptsetup. +- Add crypsetup-generator-state-file-name-in-error-message.patch: + add filename in error message from crypsetup-generator. +- Add fstab-generator-error-message-on-duplicates.patch: improve + error message on duplicate in fstab-generator. +- Add systemctl-verbose-message-on-missing-install.patch: reword + missing install error message in systemctl. +- Add shutdown-improvements.patch: various improvements at + shutdown. +- Add localectl-fix-assertion.patch: fix assertion in localectl. +- Add path-util-fix-potential-crash.patch: fix potential crash in + path-util. +- Add coredumpctl-fix-crash.patch: fix crash in coredumpctl. +- Add socket-verbose-error-message.patch: add more verbose error + message in socket handling. +- Add pam-properly-handle-ssh-logins-without-pam-tty-field.patch: + handle properly ssh-logins without pam tty field. +- Add fstab-generator-properly-detect-bind-mounts.patch: properly + detect bind-mounts in fstab-generator. +- Add localectl-support-systems-without-locale-archive.patch: + localectl now supports systemd without locale-archive file. +- Add logind-capability-making-seats-without-fb.patch: allows + capability of making seats without fb. +- Add service-forking-ignore-exit-status-main-process.patch: ignore + exit-statis of main process when forking, if specified in unit + file. +- Add systemctl-no-assert-on-reboot-without-dbus.patch: don't + assert on reboot if dbus isn't there. +- Add logind-ignore-non-tty-non-x11-session-on-shutdown.patch: + ignore non tty non-x11 session on shutdown. +- Add journalctl-quit-on-io-error.patch: fix journalctl quit on io + error. +- Add do-not-make-sockets-dependent-on-lo.patch: do not make + sockets dependent on lo interface. +- Add shutdown-dont-force-mnt-force-on-final-umount.patch: don't + force MNT_FORCE on final umount at shutdown. +- Add shutdown-ignore-loop-devices-without-backing-file.patch: + ignore loop devices without backing file at shutdown. +- Add fix-bad-mem-access.patch: fix bad memory access +- Add parse-multiline-env-file.patch: correctly parse multiline + environment files (bnc#793411). + ------------------------------------------------------------------- Thu Jan 10 15:43:25 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index cd7f7422..568f40f8 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -137,6 +137,8 @@ Patch71: fix-debugshell.patch Patch72: handle-root-uses-lang.patch # PATCH-FIX-OPENSUSE multiple-sulogin.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch76: multiple-sulogin.patch +# PATCH-FIX-OPENSUSE systemctl-options.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable +Patch77: systemctl-options.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -164,6 +166,94 @@ Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch Patch74: detect-btrfs-ssd.patch # PATCH-FIX-UPSTREAM timedated-donot-close-bogus-dbus-connection.patch crrodriguez@opensuse.org -- Fix assertion failure when dbus is gone. Patch75: timedated-donot-close-bogus-dbus-connection.patch +# PATCH-FIX-UPSTREAM journalctl-remove-leftover-message.patch fcrozat@suse.com -- remove debug message in systemctl +Patch78: journalctl-remove-leftover-message.patch +# PATCH-FIX-UPSTREAM job-avoid-recursion-when-cancelling.patch fcrozat@suse.com -- prevent potential recursion when cancelling a service +Patch79: job-avoid-recursion-when-cancelling.patch +# PATCH-FIX-UPSTREAM sysctl-parse-all-keys.patch fcrozat@suse.com -- ensure sysctl file is fully parsed +Patch80: sysctl-parse-all-keys.patch +# PATCH-FIX-UPSTREAM journal-fix-cutoff-max-date.patch fcrozat@suse.com -- fix computation of cutoff max date for journal +Patch81: journal-fix-cutoff-max-date.patch +# PATCH-FIX-UPSTREAM reword-rescue-mode-hints.patch fcrozat@suse.com -- reword rescue prompt +Patch82: reword-rescue-mode-hints.patch +# PATCH-FIX-UPSTREAM improve-overflow-checks.patch fcrozat@suse.com -- improve time overflow checks +Patch83: improve-overflow-checks.patch +# PATCH-FIX-UPSTREAM fix-swap-behaviour-with-symlinks.patch fcrozat@suse.com -- fix swap behaviour with symlinks +Patch84: fix-swap-behaviour-with-symlinks.patch +# PATCH-FIX-UPSTREAM hostnamectl-fix-set-hostname-with-no-argument.patch fcrozat@suse.com -- ensure hostnamectl requires an argument when called with set-hostname option +Patch85: hostnamectl-fix-set-hostname-with-no-argument.patch +# PATCH-FIX-UPSTREAM agetty-overrides-term.patch fcrozat@suse.com -- pass correctly terminal type to agetty +Patch86: agetty-overrides-term.patch +# PATCH-FIX-UPSTREAM check-for-empty-strings-in-strto-conversions.patch fcrozat@suse.com -- better check for empty strings in strto* conversions +Patch87: check-for-empty-strings-in-strto-conversions.patch +# PATCH-FIX-UPSTREAM strv-cleanup-error-path-loops.patch fcrozat@suse.com -- cleanup strv on error path +Patch88: strv-cleanup-error-path-loops.patch +# PATCH-FIX-UPSTREAM cryptsetup-handle-plain.patch fcrozat@suse.com -- correctly handle "plain" option in cryptsetup +Patch89: cryptsetup-handle-plain.patch +# PATCH-FIX-UPSTREAM fstab-generator-improve-error-message.patch fcrozat@suse.com -- improve error message in fstab-generator +Patch90: fstab-generator-improve-error-message.patch +# PATCH-FIX-UPSTREAM delta-accept-t-option.patch fcrozat@suse.com -- accept -t option in systemd-delta +Patch91: delta-accept-t-option.patch +# PATCH-FIX-UPSTREAM highlight-ordering-cycle-deletions.patch fcrozat@suse.com -- highlight ordering cycle deletions in logs +Patch92: highlight-ordering-cycle-deletions.patch +# PATCH-FIX-UPSTREAM core-interpret-escaped-semicolon-as-escaped.patch fcrozat@suse.com -- accept \; in ExecStart +Patch93: core-interpret-escaped-semicolon-as-escaped.patch +# PATCH-FIX-UPSTREAM hostnamectl-fix-parsing-no-ask-password.patch fcrozat@suse.com -- accept no-ask-password in hostnamectl +Patch94: hostnamectl-fix-parsing-no-ask-password.patch +# PATCH-FIX-UPSTREAM systemd-cgls-fix-piping-output.patch fcrozat@suse.com -- fix piping output of systemd-cgls +Patch95: systemd-cgls-fix-piping-output.patch +# PATCH-FIX-UPSTREAM core-load-fragment-improve-error-message.patch fcrozat@suse.com -- improve error message when parsing fragments +Patch96: core-load-fragment-improve-error-message.patch +# PATCH-FIX-UPSTREAM fix-potential-bad-mem-access.patch fcrozat@suse.com -- fix potential bad memory access +Patch97: fix-potential-bad-mem-access.patch +# PATCH-FIX-UPSTREAM socket-improve-error-message.patch fcrozat@suse.com -- improve error message in socket handling +Patch98: socket-improve-error-message.patch +# PATCH-FIX-UPSTREAM journal-send-always-send-syslog_identifier.patch fcrozat@suse.com -- always send syslog_identifier if available for journal +Patch99: journal-send-always-send-syslog_identifier.patch +# PATCH-FIX-UPSTREAM crypsetup-handle-nofail.patch fcrozat@suse.com -- handle nofail in cryptsetup +Patch100: crypsetup-handle-nofail.patch +# PATCH-FIX-UPSTREAM crypsetup-generator-state-file-name-in-error-message.patch fcrozat@suse.com -- add filename in error message from crypsetup-generator +Patch101: crypsetup-generator-state-file-name-in-error-message.patch +# PATCH-FIX-UPSTREAM fstab-generator-error-message-on-duplicates.patch fcrozat@suse.com -- improve error message on duplicate in fstab-generator +Patch102: fstab-generator-error-message-on-duplicates.patch +# PATCH-FIX-UPSTREAM systemctl-verbose-message-on-missing-install.patch fcrozat@suse.com -- reword missing install error message in systemctl +Patch103: systemctl-verbose-message-on-missing-install.patch +# PATCH-FIX-UPSTREAM shutdown-improvements.patch fcrozat@suse.com -- various improvements at shutdown +Patch104: shutdown-improvements.patch +# PATCH-FIX-UPSTREAM localectl-fix-assertion.patch fcrozat@suse.com -- fix assertion in localectl +Patch105: localectl-fix-assertion.patch +# PATCH-FIX-UPSTREAM path-util-fix-potential-crash.patch fcrozat@suse.com -- fix potential crash in path-util +Patch106: path-util-fix-potential-crash.patch +# PATCH-FIX-UPSTREAM coredumpctl-fix-crash.patch fcrozat@suse.com -- fix crash in coredumpctl +Patch107: coredumpctl-fix-crash.patch +# PATCH-FIX-UPSTREAM socket-verbose-error-message.patch fcrozat@suse.com -- add more verbose error message in socket handling +Patch108: socket-verbose-error-message.patch +# PATCH-FIX-UPSTREAM pam-properly-handle-ssh-logins-without-pam-tty-field.patch fcrozat@suse.com -- handle properly ssh-logins without pam tty field +Patch109: pam-properly-handle-ssh-logins-without-pam-tty-field.patch +# PATCH-FIX-UPSTREAM fstab-generator-properly-detect-bind-mounts.patch fcrozat@suse.com -- properly detect bind-mounts in fstab-generator +Patch110: fstab-generator-properly-detect-bind-mounts.patch +# PATCH-FIX-UPSTREAM localectl-support-systems-without-locale-archive.patch fcrozat@suse.com -- localectl now supports systemd without locale-archive file +Patch111: localectl-support-systems-without-locale-archive.patch +# PATCH-FIX-UPSTREAM logind-capability-making-seats-without-fb.patch fcrozat@suse.com -- allows capability of making seats without fb +Patch112: logind-capability-making-seats-without-fb.patch +# PATCH-FIX-UPSTREAM service-forking-ignore-exit-status-main-process.patch fcrozat@suse.com -- ignore exit-statis of main process when forking, if specified in unit file +Patch113: service-forking-ignore-exit-status-main-process.patch +# PATCH-FIX-UPSTREAM systemctl-no-assert-on-reboot-without-dbus.patch fcrozat@suse.com -- don't assert on reboot if dbus isn't there +Patch114: systemctl-no-assert-on-reboot-without-dbus.patch +# PATCH-FIX-UPSTREAM logind-ignore-non-tty-non-x11-session-on-shutdown.patch fcrozat@suse.com -- ignore non tty non-x11 session on shutdown +Patch115: logind-ignore-non-tty-non-x11-session-on-shutdown.patch +# PATCH-FIX-UPSTREAM journalctl-quit-on-io-error.patch fcrozat@suse.com -- fix journalctl quit on io error +Patch116: journalctl-quit-on-io-error.patch +# PATCH-FIX-UPSTREAM do-not-make-sockets-dependent-on-lo.patch fcrozat@suse.com -- do not make sockets dependent on lo interface +Patch117: do-not-make-sockets-dependent-on-lo.patch +# PATCH-FIX-UPSTREAM shutdown-dont-force-mnt-force-on-final-umount.patch fcrozat@suse.com -- don't force MNT_FORCE on final umount at shutdown +Patch118: shutdown-dont-force-mnt-force-on-final-umount.patch +# PATCH-FIX-UPSTREAM shutdown-ignore-loop-devices-without-backing-file.patch fcrozat@suse.com -- ignore loop devices without backing file at shutdown +Patch119: shutdown-ignore-loop-devices-without-backing-file.patch +# PATCH-FIX-UPSTREAM fix-bad-mem-access.patch fcrozat@suse.com -- fix bad memory access +Patch120: fix-bad-mem-access.patch +# PATCH-FIX-UPSTREAM parse-multiline-env-file.patch fcrozat@suse.com bnc#793411 -- correctly parse multiline environment files +Patch121: parse-multiline-env-file.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -417,6 +507,51 @@ cp %{SOURCE7} m4/ %patch74 -p1 %patch75 -p1 %patch76 -p1 +%patch77 -p1 +%patch78 -p1 +%patch79 -p1 +%patch80 -p1 +%patch81 -p1 +%patch82 -p1 +%patch83 -p1 +%patch84 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 +%patch92 -p1 +%patch93 -p1 +%patch94 -p1 +%patch95 -p1 +%patch96 -p1 +%patch97 -p1 +%patch98 -p1 +%patch99 -p1 +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 +%patch106 -p1 +%patch107 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 +%patch111 -p1 +%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 +%patch116 -p1 +%patch117 -p1 +%patch118 -p1 +%patch119 -p1 +%patch120 -p1 +%patch121 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 236dff45..130639ed 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,95 @@ +------------------------------------------------------------------- +Tue Jan 22 17:02:04 UTC 2013 - fcrozat@suse.com + +- Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly + (bnc#798620). +- Update crypt-loop-file.patch to correctly detect crypto loop + files (bnc#799514). +- Add journalctl-remove-leftover-message.patch: remove debug + message in systemctl. +- Add job-avoid-recursion-when-cancelling.patch: prevent potential + recursion when cancelling a service. +- Add sysctl-parse-all-keys.patch: ensure sysctl file is fully + parsed. +- Add journal-fix-cutoff-max-date.patch: fix computation of cutoff + max date for journal. +- Add reword-rescue-mode-hints.patch: reword rescue prompt. +- Add improve-overflow-checks.patch: improve time overflow checks. +- Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour + with symlinks. +- Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure + hostnamectl requires an argument when called with set-hostname + option. +- Add agetty-overrides-term.patch: pass correctly terminal type to + agetty. +- Add check-for-empty-strings-in-strto-conversions.patch: better + check for empty strings in strto* conversions. +- Add strv-cleanup-error-path-loops.patch: cleanup strv on error + path. +- Add cryptsetup-handle-plain.patch: correctly handle "plain" + option in cryptsetup. +- Add fstab-generator-improve-error-message.patch: improve error + message in fstab-generator. +- Add delta-accept-t-option.patch: accept -t option in + systemd-delta. +- Add highlight-ordering-cycle-deletions.patch: highlight ordering + cycle deletions in logs. +- Add core-interpret-escaped-semicolon-as-escaped.patch: accept \; + in ExecStart. +- Add hostnamectl-fix-parsing-no-ask-password.patch: accept + no-ask-password in hostnamectl. +- Add systemd-cgls-fix-piping-output.patch: fix piping output of + systemd-cgls. +- Add core-load-fragment-improve-error-message.patch: improve error + message when parsing fragments. +- Add fix-potential-bad-mem-access.patch: fix potential bad memory + access. +- Add socket-improve-error-message.patch: improve error message in + socket handling. +- Add journal-send-always-send-syslog_identifier.patch: always send + syslog_identifier if available for journal. +- Add crypsetup-handle-nofail.patch: handle nofail in cryptsetup. +- Add crypsetup-generator-state-file-name-in-error-message.patch: + add filename in error message from crypsetup-generator. +- Add fstab-generator-error-message-on-duplicates.patch: improve + error message on duplicate in fstab-generator. +- Add systemctl-verbose-message-on-missing-install.patch: reword + missing install error message in systemctl. +- Add shutdown-improvements.patch: various improvements at + shutdown. +- Add localectl-fix-assertion.patch: fix assertion in localectl. +- Add path-util-fix-potential-crash.patch: fix potential crash in + path-util. +- Add coredumpctl-fix-crash.patch: fix crash in coredumpctl. +- Add socket-verbose-error-message.patch: add more verbose error + message in socket handling. +- Add pam-properly-handle-ssh-logins-without-pam-tty-field.patch: + handle properly ssh-logins without pam tty field. +- Add fstab-generator-properly-detect-bind-mounts.patch: properly + detect bind-mounts in fstab-generator. +- Add localectl-support-systems-without-locale-archive.patch: + localectl now supports systemd without locale-archive file. +- Add logind-capability-making-seats-without-fb.patch: allows + capability of making seats without fb. +- Add service-forking-ignore-exit-status-main-process.patch: ignore + exit-statis of main process when forking, if specified in unit + file. +- Add systemctl-no-assert-on-reboot-without-dbus.patch: don't + assert on reboot if dbus isn't there. +- Add logind-ignore-non-tty-non-x11-session-on-shutdown.patch: + ignore non tty non-x11 session on shutdown. +- Add journalctl-quit-on-io-error.patch: fix journalctl quit on io + error. +- Add do-not-make-sockets-dependent-on-lo.patch: do not make + sockets dependent on lo interface. +- Add shutdown-dont-force-mnt-force-on-final-umount.patch: don't + force MNT_FORCE on final umount at shutdown. +- Add shutdown-ignore-loop-devices-without-backing-file.patch: + ignore loop devices without backing file at shutdown. +- Add fix-bad-mem-access.patch: fix bad memory access +- Add parse-multiline-env-file.patch: correctly parse multiline + environment files (bnc#793411). + ------------------------------------------------------------------- Thu Jan 10 15:43:25 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 36fe8f60..e62ea2ec 100644 --- a/systemd.spec +++ b/systemd.spec @@ -132,6 +132,8 @@ Patch71: fix-debugshell.patch Patch72: handle-root-uses-lang.patch # PATCH-FIX-OPENSUSE multiple-sulogin.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch76: multiple-sulogin.patch +# PATCH-FIX-OPENSUSE systemctl-options.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable +Patch77: systemctl-options.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -159,6 +161,94 @@ Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch Patch74: detect-btrfs-ssd.patch # PATCH-FIX-UPSTREAM timedated-donot-close-bogus-dbus-connection.patch crrodriguez@opensuse.org -- Fix assertion failure when dbus is gone. Patch75: timedated-donot-close-bogus-dbus-connection.patch +# PATCH-FIX-UPSTREAM journalctl-remove-leftover-message.patch fcrozat@suse.com -- remove debug message in systemctl +Patch78: journalctl-remove-leftover-message.patch +# PATCH-FIX-UPSTREAM job-avoid-recursion-when-cancelling.patch fcrozat@suse.com -- prevent potential recursion when cancelling a service +Patch79: job-avoid-recursion-when-cancelling.patch +# PATCH-FIX-UPSTREAM sysctl-parse-all-keys.patch fcrozat@suse.com -- ensure sysctl file is fully parsed +Patch80: sysctl-parse-all-keys.patch +# PATCH-FIX-UPSTREAM journal-fix-cutoff-max-date.patch fcrozat@suse.com -- fix computation of cutoff max date for journal +Patch81: journal-fix-cutoff-max-date.patch +# PATCH-FIX-UPSTREAM reword-rescue-mode-hints.patch fcrozat@suse.com -- reword rescue prompt +Patch82: reword-rescue-mode-hints.patch +# PATCH-FIX-UPSTREAM improve-overflow-checks.patch fcrozat@suse.com -- improve time overflow checks +Patch83: improve-overflow-checks.patch +# PATCH-FIX-UPSTREAM fix-swap-behaviour-with-symlinks.patch fcrozat@suse.com -- fix swap behaviour with symlinks +Patch84: fix-swap-behaviour-with-symlinks.patch +# PATCH-FIX-UPSTREAM hostnamectl-fix-set-hostname-with-no-argument.patch fcrozat@suse.com -- ensure hostnamectl requires an argument when called with set-hostname option +Patch85: hostnamectl-fix-set-hostname-with-no-argument.patch +# PATCH-FIX-UPSTREAM agetty-overrides-term.patch fcrozat@suse.com -- pass correctly terminal type to agetty +Patch86: agetty-overrides-term.patch +# PATCH-FIX-UPSTREAM check-for-empty-strings-in-strto-conversions.patch fcrozat@suse.com -- better check for empty strings in strto* conversions +Patch87: check-for-empty-strings-in-strto-conversions.patch +# PATCH-FIX-UPSTREAM strv-cleanup-error-path-loops.patch fcrozat@suse.com -- cleanup strv on error path +Patch88: strv-cleanup-error-path-loops.patch +# PATCH-FIX-UPSTREAM cryptsetup-handle-plain.patch fcrozat@suse.com -- correctly handle "plain" option in cryptsetup +Patch89: cryptsetup-handle-plain.patch +# PATCH-FIX-UPSTREAM fstab-generator-improve-error-message.patch fcrozat@suse.com -- improve error message in fstab-generator +Patch90: fstab-generator-improve-error-message.patch +# PATCH-FIX-UPSTREAM delta-accept-t-option.patch fcrozat@suse.com -- accept -t option in systemd-delta +Patch91: delta-accept-t-option.patch +# PATCH-FIX-UPSTREAM highlight-ordering-cycle-deletions.patch fcrozat@suse.com -- highlight ordering cycle deletions in logs +Patch92: highlight-ordering-cycle-deletions.patch +# PATCH-FIX-UPSTREAM core-interpret-escaped-semicolon-as-escaped.patch fcrozat@suse.com -- accept \; in ExecStart +Patch93: core-interpret-escaped-semicolon-as-escaped.patch +# PATCH-FIX-UPSTREAM hostnamectl-fix-parsing-no-ask-password.patch fcrozat@suse.com -- accept no-ask-password in hostnamectl +Patch94: hostnamectl-fix-parsing-no-ask-password.patch +# PATCH-FIX-UPSTREAM systemd-cgls-fix-piping-output.patch fcrozat@suse.com -- fix piping output of systemd-cgls +Patch95: systemd-cgls-fix-piping-output.patch +# PATCH-FIX-UPSTREAM core-load-fragment-improve-error-message.patch fcrozat@suse.com -- improve error message when parsing fragments +Patch96: core-load-fragment-improve-error-message.patch +# PATCH-FIX-UPSTREAM fix-potential-bad-mem-access.patch fcrozat@suse.com -- fix potential bad memory access +Patch97: fix-potential-bad-mem-access.patch +# PATCH-FIX-UPSTREAM socket-improve-error-message.patch fcrozat@suse.com -- improve error message in socket handling +Patch98: socket-improve-error-message.patch +# PATCH-FIX-UPSTREAM journal-send-always-send-syslog_identifier.patch fcrozat@suse.com -- always send syslog_identifier if available for journal +Patch99: journal-send-always-send-syslog_identifier.patch +# PATCH-FIX-UPSTREAM crypsetup-handle-nofail.patch fcrozat@suse.com -- handle nofail in cryptsetup +Patch100: crypsetup-handle-nofail.patch +# PATCH-FIX-UPSTREAM crypsetup-generator-state-file-name-in-error-message.patch fcrozat@suse.com -- add filename in error message from crypsetup-generator +Patch101: crypsetup-generator-state-file-name-in-error-message.patch +# PATCH-FIX-UPSTREAM fstab-generator-error-message-on-duplicates.patch fcrozat@suse.com -- improve error message on duplicate in fstab-generator +Patch102: fstab-generator-error-message-on-duplicates.patch +# PATCH-FIX-UPSTREAM systemctl-verbose-message-on-missing-install.patch fcrozat@suse.com -- reword missing install error message in systemctl +Patch103: systemctl-verbose-message-on-missing-install.patch +# PATCH-FIX-UPSTREAM shutdown-improvements.patch fcrozat@suse.com -- various improvements at shutdown +Patch104: shutdown-improvements.patch +# PATCH-FIX-UPSTREAM localectl-fix-assertion.patch fcrozat@suse.com -- fix assertion in localectl +Patch105: localectl-fix-assertion.patch +# PATCH-FIX-UPSTREAM path-util-fix-potential-crash.patch fcrozat@suse.com -- fix potential crash in path-util +Patch106: path-util-fix-potential-crash.patch +# PATCH-FIX-UPSTREAM coredumpctl-fix-crash.patch fcrozat@suse.com -- fix crash in coredumpctl +Patch107: coredumpctl-fix-crash.patch +# PATCH-FIX-UPSTREAM socket-verbose-error-message.patch fcrozat@suse.com -- add more verbose error message in socket handling +Patch108: socket-verbose-error-message.patch +# PATCH-FIX-UPSTREAM pam-properly-handle-ssh-logins-without-pam-tty-field.patch fcrozat@suse.com -- handle properly ssh-logins without pam tty field +Patch109: pam-properly-handle-ssh-logins-without-pam-tty-field.patch +# PATCH-FIX-UPSTREAM fstab-generator-properly-detect-bind-mounts.patch fcrozat@suse.com -- properly detect bind-mounts in fstab-generator +Patch110: fstab-generator-properly-detect-bind-mounts.patch +# PATCH-FIX-UPSTREAM localectl-support-systems-without-locale-archive.patch fcrozat@suse.com -- localectl now supports systemd without locale-archive file +Patch111: localectl-support-systems-without-locale-archive.patch +# PATCH-FIX-UPSTREAM logind-capability-making-seats-without-fb.patch fcrozat@suse.com -- allows capability of making seats without fb +Patch112: logind-capability-making-seats-without-fb.patch +# PATCH-FIX-UPSTREAM service-forking-ignore-exit-status-main-process.patch fcrozat@suse.com -- ignore exit-statis of main process when forking, if specified in unit file +Patch113: service-forking-ignore-exit-status-main-process.patch +# PATCH-FIX-UPSTREAM systemctl-no-assert-on-reboot-without-dbus.patch fcrozat@suse.com -- don't assert on reboot if dbus isn't there +Patch114: systemctl-no-assert-on-reboot-without-dbus.patch +# PATCH-FIX-UPSTREAM logind-ignore-non-tty-non-x11-session-on-shutdown.patch fcrozat@suse.com -- ignore non tty non-x11 session on shutdown +Patch115: logind-ignore-non-tty-non-x11-session-on-shutdown.patch +# PATCH-FIX-UPSTREAM journalctl-quit-on-io-error.patch fcrozat@suse.com -- fix journalctl quit on io error +Patch116: journalctl-quit-on-io-error.patch +# PATCH-FIX-UPSTREAM do-not-make-sockets-dependent-on-lo.patch fcrozat@suse.com -- do not make sockets dependent on lo interface +Patch117: do-not-make-sockets-dependent-on-lo.patch +# PATCH-FIX-UPSTREAM shutdown-dont-force-mnt-force-on-final-umount.patch fcrozat@suse.com -- don't force MNT_FORCE on final umount at shutdown +Patch118: shutdown-dont-force-mnt-force-on-final-umount.patch +# PATCH-FIX-UPSTREAM shutdown-ignore-loop-devices-without-backing-file.patch fcrozat@suse.com -- ignore loop devices without backing file at shutdown +Patch119: shutdown-ignore-loop-devices-without-backing-file.patch +# PATCH-FIX-UPSTREAM fix-bad-mem-access.patch fcrozat@suse.com -- fix bad memory access +Patch120: fix-bad-mem-access.patch +# PATCH-FIX-UPSTREAM parse-multiline-env-file.patch fcrozat@suse.com bnc#793411 -- correctly parse multiline environment files +Patch121: parse-multiline-env-file.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -412,6 +502,51 @@ cp %{SOURCE7} m4/ %patch74 -p1 %patch75 -p1 %patch76 -p1 +%patch77 -p1 +%patch78 -p1 +%patch79 -p1 +%patch80 -p1 +%patch81 -p1 +%patch82 -p1 +%patch83 -p1 +%patch84 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 +%patch92 -p1 +%patch93 -p1 +%patch94 -p1 +%patch95 -p1 +%patch96 -p1 +%patch97 -p1 +%patch98 -p1 +%patch99 -p1 +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 +%patch106 -p1 +%patch107 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 +%patch111 -p1 +%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 +%patch116 -p1 +%patch117 -p1 +%patch118 -p1 +%patch119 -p1 +%patch120 -p1 +%patch121 -p1 %build autoreconf -fiv From 4795c51b74e189d8e93d5dd14617c004af6520f3b7bc237c8452886ff214e2f0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 29 Jan 2013 06:05:16 +0000 Subject: [PATCH 120/221] Accepting request 150160 from Base:System - Add tmpfiles-X-type.patch: allow to clean directories with removing them. - Add systemd-fix-merge-ignore-dependencies.patch: fix merging with --ignore-dependencies waiting for dependencies (bnc#800365). - Update systemd-numlock-suse.patch: udev-trigger.service is now called systemd-udev-trigger.service. - Add improve-man-environment.patch: improve manpage regarding Environment value. (forwarded request 150151 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/150160 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=124 --- improve-man-environment.patch | 44 +++ systemd-fix-merge-ignore-dependencies.patch | 26 ++ systemd-mini.changes | 12 + systemd-mini.spec | 9 + systemd-numlock-suse.patch | 2 +- systemd.changes | 12 + systemd.spec | 9 + tmpfiles-X-type.patch | 369 ++++++++++++++++++++ 8 files changed, 482 insertions(+), 1 deletion(-) create mode 100644 improve-man-environment.patch create mode 100644 systemd-fix-merge-ignore-dependencies.patch create mode 100644 tmpfiles-X-type.patch diff --git a/improve-man-environment.patch b/improve-man-environment.patch new file mode 100644 index 00000000..a5fa5967 --- /dev/null +++ b/improve-man-environment.patch @@ -0,0 +1,44 @@ +From 2cfd1ed4d853be4a22cc102037347c9041bf5ced Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 24 Jan 2013 17:55:42 +0100 +Subject: [PATCH] man: systemd.exec - explicit Environment assignment + +Be more verbose about using space in Environment field and not +using value of other variables + +Fixes https://bugzilla.redhat.com/show_bug.cgi?id=840260 +--- + man/systemd.exec.xml | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +Index: systemd-195/man/systemd.exec.xml +=================================================================== +--- systemd-195.orig/man/systemd.exec.xml ++++ systemd-195/man/systemd.exec.xml +@@ -269,9 +269,24 @@ + in which case all listed variables + will be set. If the same variable is + set twice the later setting will +- override the earlier setting. See ++ override the earlier setting. ++ Variable expansion is not performed ++ inside the strings, and $ has no special ++ meaning. ++ If you need to assign a value containing spaces ++ to a variable, use double quotes (") ++ for the assignment. ++ ++ Example: ++ Environment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6" ++ gives three variables VAR1, ++ VAR2, VAR3. ++ ++ ++ ++ See + environ7 +- for details. ++ for details about environment variables. + + + EnvironmentFile= diff --git a/systemd-fix-merge-ignore-dependencies.patch b/systemd-fix-merge-ignore-dependencies.patch new file mode 100644 index 00000000..3e9f9454 --- /dev/null +++ b/systemd-fix-merge-ignore-dependencies.patch @@ -0,0 +1,26 @@ +From e45460d666512db4f908f86e8722d7932dcf0f82 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 25 Jan 2013 19:54:21 +0100 +Subject: [PATCH] job: fix merging with --ignore-dependencies + +This fixes a bug where a job with --ignore-dependencies would wait for +other jobs because it merged into a previously queued job. +--- + src/core/job.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/core/job.c b/src/core/job.c +index e381ea2..6a03d17 100644 +--- a/src/core/job.c ++++ b/src/core/job.c +@@ -166,6 +166,7 @@ static void job_merge_into_installed(Job *j, Job *other) { + assert(other->type == JOB_NOP); + + j->override = j->override || other->override; ++ j->ignore_order = j->ignore_order || other->ignore_order; + } + + Job* job_install(Job *j) { +-- +1.7.10.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 130639ed..25bdb532 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jan 28 10:49:21 UTC 2013 - fcrozat@suse.com + +- Add tmpfiles-X-type.patch: allow to clean directories with + removing them. +- Add systemd-fix-merge-ignore-dependencies.patch: fix merging with + --ignore-dependencies waiting for dependencies (bnc#800365). +- Update systemd-numlock-suse.patch: udev-trigger.service is now + called systemd-udev-trigger.service. +- Add improve-man-environment.patch: improve manpage regarding + Environment value. + ------------------------------------------------------------------- Tue Jan 22 17:02:04 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 568f40f8..f18c5a44 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -254,6 +254,12 @@ Patch119: shutdown-ignore-loop-devices-without-backing-file.patch Patch120: fix-bad-mem-access.patch # PATCH-FIX-UPSTREAM parse-multiline-env-file.patch fcrozat@suse.com bnc#793411 -- correctly parse multiline environment files Patch121: parse-multiline-env-file.patch +# PATCH-FIX-UPSTREAM improve-man-environment.patch fcrozat@suse.com -- improve Environment section in manpage +Patch122: improve-man-environment.patch +# PATCH-FIX-UPSTREAM tmpfiles-X-type.patch fcrozat@suse.com -- allow to clean directories with removing them +Patch123: tmpfiles-X-type.patch +# PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies +Patch124: systemd-fix-merge-ignore-dependencies.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -552,6 +558,9 @@ cp %{SOURCE7} m4/ %patch119 -p1 %patch120 -p1 %patch121 -p1 +%patch122 -p1 +%patch123 -p1 +%patch124 -p1 %build autoreconf -fiv diff --git a/systemd-numlock-suse.patch b/systemd-numlock-suse.patch index 245a4bc3..1e89d398 100644 --- a/systemd-numlock-suse.patch +++ b/systemd-numlock-suse.patch @@ -179,7 +179,7 @@ Index: systemd-195/units/systemd-vconsole-setup.service.in Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service -Before=sysinit.target shutdown.target -+Before=sysinit.target shutdown.target udev-trigger.service ++Before=sysinit.target shutdown.target systemd-udev-trigger.service ConditionPathExists=/dev/tty0 [Service] diff --git a/systemd.changes b/systemd.changes index 130639ed..25bdb532 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Jan 28 10:49:21 UTC 2013 - fcrozat@suse.com + +- Add tmpfiles-X-type.patch: allow to clean directories with + removing them. +- Add systemd-fix-merge-ignore-dependencies.patch: fix merging with + --ignore-dependencies waiting for dependencies (bnc#800365). +- Update systemd-numlock-suse.patch: udev-trigger.service is now + called systemd-udev-trigger.service. +- Add improve-man-environment.patch: improve manpage regarding + Environment value. + ------------------------------------------------------------------- Tue Jan 22 17:02:04 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index e62ea2ec..9546bb7b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -249,6 +249,12 @@ Patch119: shutdown-ignore-loop-devices-without-backing-file.patch Patch120: fix-bad-mem-access.patch # PATCH-FIX-UPSTREAM parse-multiline-env-file.patch fcrozat@suse.com bnc#793411 -- correctly parse multiline environment files Patch121: parse-multiline-env-file.patch +# PATCH-FIX-UPSTREAM improve-man-environment.patch fcrozat@suse.com -- improve Environment section in manpage +Patch122: improve-man-environment.patch +# PATCH-FIX-UPSTREAM tmpfiles-X-type.patch fcrozat@suse.com -- allow to clean directories with removing them +Patch123: tmpfiles-X-type.patch +# PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies +Patch124: systemd-fix-merge-ignore-dependencies.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -547,6 +553,9 @@ cp %{SOURCE7} m4/ %patch119 -p1 %patch120 -p1 %patch121 -p1 +%patch122 -p1 +%patch123 -p1 +%patch124 -p1 %build autoreconf -fiv diff --git a/tmpfiles-X-type.patch b/tmpfiles-X-type.patch new file mode 100644 index 00000000..40d9940e --- /dev/null +++ b/tmpfiles-X-type.patch @@ -0,0 +1,369 @@ +From 78a92a5a2306709e4587e332728a76901323ade9 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Fri, 18 Jan 2013 16:13:08 +0100 +Subject: [PATCH] tmpfiles: introduce type X + +Type X will exclude path itself from clean-up. However, if the path is a +directory systemd-tmpfiles will clean-up its content. + +In contrast to type x, where path is ignored completely, type X needs some +Age parameter. In order to determine Age parameter, we will look for config +entries of type d or D and pick the best match. Best match is either +exact match or longest prefix match. +--- + man/tmpfiles.d.xml | 15 ++++ + src/tmpfiles/tmpfiles.c | 192 ++++++++++++++++++++++++++++++----------------- + 2 files changed, 138 insertions(+), 69 deletions(-) + +Index: systemd-195/man/tmpfiles.d.xml +=================================================================== +--- systemd-195.orig/man/tmpfiles.d.xml ++++ systemd-195/man/tmpfiles.d.xml +@@ -166,6 +166,21 @@ L /tmp/foobar - - - - /dev + + + ++ X ++ Ignore a path ++ during cleanup. Use this type ++ to prevent path removal as ++ controlled with the Age parameter. ++ Note that if path is a directory, ++ content of a directory is not ++ excluded from clean-up, only ++ directory itself. Lines of this ++ type accept shell-style globs ++ in place of normal path ++ names. ++ ++ ++ + r + Remove a file + or directory if it +Index: systemd-195/src/tmpfiles/tmpfiles.c +=================================================================== +--- systemd-195.orig/src/tmpfiles/tmpfiles.c ++++ systemd-195/src/tmpfiles/tmpfiles.c +@@ -70,6 +70,7 @@ typedef enum ItemType { + + /* These ones take globs */ + IGNORE_PATH = 'x', ++ IGNORE_DIRECTORY_PATH = 'X', + REMOVE_PATH = 'r', + RECURSIVE_REMOVE_PATH = 'R', + RELABEL_PATH = 'z', +@@ -119,7 +120,7 @@ static const char * const conf_file_dirs + #define MAX_DEPTH 256 + + static bool needs_glob(ItemType t) { +- return t == IGNORE_PATH || t == REMOVE_PATH || t == RECURSIVE_REMOVE_PATH || t == RELABEL_PATH || t == RECURSIVE_RELABEL_PATH; ++ return t == IGNORE_PATH || t == IGNORE_DIRECTORY_PATH || t == REMOVE_PATH || t == RECURSIVE_REMOVE_PATH || t == RELABEL_PATH || t == RECURSIVE_RELABEL_PATH; + } + + static struct Item* find_glob(Hashmap *h, const char *match) { +@@ -218,6 +219,7 @@ static bool unix_socket_alive(const char + } + + static int dir_cleanup( ++ Item *i, + const char *p, + DIR *d, + const struct stat *ds, +@@ -297,7 +299,7 @@ static int dir_cleanup( + continue; + } + +- q = dir_cleanup(sub_path, sub_dir, &s, cutoff, rootdev, false, maxdepth-1, false); ++ q = dir_cleanup(i, sub_path, sub_dir, &s, cutoff, rootdev, false, maxdepth-1, false); + closedir(sub_dir); + + if (q < 0) +@@ -320,12 +322,14 @@ static int dir_cleanup( + if (age >= cutoff) + continue; + +- log_debug("rmdir '%s'\n", sub_path); ++ if (!i->type == IGNORE_DIRECTORY_PATH || !streq(dent->d_name, p)) { ++ log_debug("rmdir '%s'\n", sub_path); + +- if (unlinkat(dirfd(d), dent->d_name, AT_REMOVEDIR) < 0) { +- if (errno != ENOENT && errno != ENOTEMPTY) { +- log_error("rmdir(%s): %m", sub_path); +- r = -errno; ++ if (unlinkat(dirfd(d), dent->d_name, AT_REMOVEDIR) < 0) { ++ if (errno != ENOENT && errno != ENOTEMPTY) { ++ log_error("rmdir(%s): %m", sub_path); ++ r = -errno; ++ } + } + } + +@@ -395,68 +399,6 @@ finish: + return r; + } + +-static int clean_item(Item *i) { +- DIR *d; +- struct stat s, ps; +- bool mountpoint; +- int r; +- usec_t cutoff, n; +- +- assert(i); +- +- if (i->type != CREATE_DIRECTORY && +- i->type != TRUNCATE_DIRECTORY && +- i->type != IGNORE_PATH) +- return 0; +- +- if (!i->age_set || i->age <= 0) +- return 0; +- +- n = now(CLOCK_REALTIME); +- if (n < i->age) +- return 0; +- +- cutoff = n - i->age; +- +- d = opendir(i->path); +- if (!d) { +- if (errno == ENOENT) +- return 0; +- +- log_error("Failed to open directory %s: %m", i->path); +- return -errno; +- } +- +- if (fstat(dirfd(d), &s) < 0) { +- log_error("stat(%s) failed: %m", i->path); +- r = -errno; +- goto finish; +- } +- +- if (!S_ISDIR(s.st_mode)) { +- log_error("%s is not a directory.", i->path); +- r = -ENOTDIR; +- goto finish; +- } +- +- if (fstatat(dirfd(d), "..", &ps, AT_SYMLINK_NOFOLLOW) != 0) { +- log_error("stat(%s/..) failed: %m", i->path); +- r = -errno; +- goto finish; +- } +- +- mountpoint = s.st_dev != ps.st_dev || +- (s.st_dev == ps.st_dev && s.st_ino == ps.st_ino); +- +- r = dir_cleanup(i->path, d, &s, cutoff, s.st_dev, mountpoint, MAX_DEPTH, i->keep_first_level); +- +-finish: +- if (d) +- closedir(d); +- +- return r; +-} +- + static int item_set_perms(Item *i, const char *path) { + /* not using i->path directly because it may be a glob */ + if (i->mode_set) +@@ -667,6 +609,7 @@ static int create_item(Item *i) { + switch (i->type) { + + case IGNORE_PATH: ++ case IGNORE_DIRECTORY_PATH: + case REMOVE_PATH: + case RECURSIVE_REMOVE_PATH: + return 0; +@@ -850,6 +793,7 @@ static int remove_item_instance(Item *i, + case CREATE_BLOCK_DEVICE: + case CREATE_CHAR_DEVICE: + case IGNORE_PATH: ++ case IGNORE_DIRECTORY_PATH: + case RELABEL_PATH: + case RECURSIVE_RELABEL_PATH: + case WRITE_FILE: +@@ -894,6 +838,7 @@ static int remove_item(Item *i) { + case CREATE_CHAR_DEVICE: + case CREATE_BLOCK_DEVICE: + case IGNORE_PATH: ++ case IGNORE_DIRECTORY_PATH: + case RELABEL_PATH: + case RECURSIVE_RELABEL_PATH: + case WRITE_FILE: +@@ -909,6 +854,84 @@ static int remove_item(Item *i) { + return r; + } + ++static int clean_item_instance(Item *i, const char* instance) { ++ DIR *d; ++ struct stat s, ps; ++ bool mountpoint; ++ int r; ++ usec_t cutoff, n; ++ ++ assert(i); ++ ++ if (!i->age_set) ++ return 0; ++ ++ n = now(CLOCK_REALTIME); ++ if (n < i->age) ++ return 0; ++ ++ cutoff = n - i->age; ++ ++ d = opendir(instance); ++ if (!d) { ++ if (errno == ENOENT || errno == ENOTDIR) ++ return 0; ++ ++ log_error("Failed to open directory %s: %m", i->path); ++ return -errno; ++ } ++ ++ if (fstat(dirfd(d), &s) < 0) { ++ log_error("stat(%s) failed: %m", i->path); ++ r = -errno; ++ goto finish; ++ } ++ ++ if (!S_ISDIR(s.st_mode)) { ++ log_error("%s is not a directory.", i->path); ++ r = -ENOTDIR; ++ goto finish; ++ } ++ ++ if (fstatat(dirfd(d), "..", &ps, AT_SYMLINK_NOFOLLOW) != 0) { ++ log_error("stat(%s/..) failed: %m", i->path); ++ r = -errno; ++ goto finish; ++ } ++ ++ mountpoint = s.st_dev != ps.st_dev || ++ (s.st_dev == ps.st_dev && s.st_ino == ps.st_ino); ++ ++ r = dir_cleanup(i, instance, d, &s, cutoff, s.st_dev, mountpoint, MAX_DEPTH, i->keep_first_level); ++ ++finish: ++ if (d) ++ closedir(d); ++ ++ return r; ++} ++ ++static int clean_item(Item *i) { ++ int r = 0; ++ ++ assert(i); ++ ++ switch (i->type) { ++ case CREATE_DIRECTORY: ++ case TRUNCATE_DIRECTORY: ++ case IGNORE_PATH: ++ clean_item_instance(i, i->path); ++ break; ++ case IGNORE_DIRECTORY_PATH: ++ r = glob_item(i, clean_item_instance); ++ break; ++ default: ++ break; ++ } ++ ++ return r; ++} ++ + static int process_item(Item *i) { + int r, q, p; + +@@ -1028,6 +1051,7 @@ static int parse_line(const char *fname, + case TRUNCATE_DIRECTORY: + case CREATE_FIFO: + case IGNORE_PATH: ++ case IGNORE_DIRECTORY_PATH: + case REMOVE_PATH: + case RECURSIVE_REMOVE_PATH: + case RELABEL_PATH: +@@ -1264,6 +1288,8 @@ static int read_config_file(const char * + FILE *f; + unsigned v = 0; + int r = 0; ++ Iterator iterator; ++ Item *i; + + assert(fn); + +@@ -1296,6 +1322,34 @@ static int read_config_file(const char * + r = k; + } + ++ /* we have to determine age parameter for each entry of type X */ ++ HASHMAP_FOREACH(i, globs, iterator) { ++ Iterator iter; ++ Item *j, *candidate_item = NULL; ++ ++ if (i->type != IGNORE_DIRECTORY_PATH) ++ continue; ++ ++ HASHMAP_FOREACH(j, items, iter) { ++ if (j->type != CREATE_DIRECTORY && j->type != TRUNCATE_DIRECTORY) ++ continue; ++ ++ if (path_equal(j->path, i->path)) { ++ candidate_item = j; ++ break; ++ } ++ ++ if ((!candidate_item && path_startswith(i->path, j->path)) || ++ (candidate_item && path_startswith(j->path, candidate_item->path) && (fnmatch(i->path, j->path, FNM_PATHNAME | FNM_PERIOD) == 0))) ++ candidate_item = j; ++ } ++ ++ if (candidate_item) { ++ i->age = candidate_item->age; ++ i->age_set = true; ++ } ++ } ++ + if (ferror(f)) { + log_error("Failed to read from file %s: %m", fn); + if (r == 0) +Index: systemd-195/tmpfiles.d/tmp.conf +=================================================================== +--- systemd-195.orig/tmpfiles.d/tmp.conf ++++ systemd-195/tmpfiles.d/tmp.conf +@@ -10,3 +10,7 @@ + # Clear tmp directories separately, to make them easier to override + d /tmp 1777 root root 10d + d /var/tmp 1777 root root 30d ++ ++# Exclude namespace mountpoints created with PrivateTmp=yes ++X /tmp/systemd-private-* ++X /var/tmp/systemd-private-* +Index: systemd-195/man/systemd.exec.xml +=================================================================== +--- systemd-195.orig/man/systemd.exec.xml ++++ systemd-195/man/systemd.exec.xml +@@ -1022,15 +1022,17 @@ + Takes a boolean + argument. If true sets up a new file + system namespace for the executed +- processes and mounts a private +- /tmp directory +- inside it, that is not shared by ++ processes and mounts private ++ /tmp and ++ /var/tmp directories ++ inside it, that are not shared by + processes outside of the + namespace. This is useful to secure + access to temporary files of the + process, but makes sharing between + processes via +- /tmp ++ /tmp or ++ /var/tmp + impossible. Defaults to + false. + From da382a74702e8f8101b02ea85d0b605e1b280be7cc432bc2a7f62c519d3146c7 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 30 Jan 2013 10:20:34 +0000 Subject: [PATCH 121/221] Accepting request 150304 from Base:System - udev: Fix device matching in the accelerometer add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch - keymap: add aditional support for some keyboard keys add: 1018-keymap-add-aditional-support.patch - journalctl: require argument for --priority add: journalctl-require-argument-for-priority - dropped useless patches: libudev-validate-argument-udev_enumerate_new.patch kmod-fix-builtin-typo.patch - rename udev-root-symlink.service to systemd-udev-root-symlink.service. - fix in udev package missing link in basic.target.wants for systemd-udev-root-symlink.service - udev: Fix device matching in the accelerometer add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch - keymap: add aditional support for some keyboard keys add: 1018-keymap-add-aditional-support.patch - journalctl: require argument for --priority add: journalctl-require-argument-for-priority - dropped useless patches: libudev-validate-argument-udev_enumerate_new.patch kmod-fix-builtin-typo.patch - rename udev-root-symlink.service to systemd-udev-root-symlink.service. - fix in udev package missing link in basic.target.wants for systemd-udev-root-symlink.service OBS-URL: https://build.opensuse.org/request/show/150304 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=125 --- 1018-keymap-add-aditional-support.patch | 59 +++++++++++++++++++ ...device-matching-in-the-accelerometer.patch | 51 ++++++++++++++++ journalctl-require-argument-for-priority | 13 ++-- kmod-fix-builtin-typo.patch | 25 -------- ...validate-argument-udev_enumerate_new.patch | 26 -------- systemd-mini.changes | 16 +++++ systemd-mini.spec | 22 +++++-- ...mlink.systemd => systemd-udev-root-symlink | 2 +- systemd.changes | 16 +++++ systemd.spec | 22 +++++-- 10 files changed, 180 insertions(+), 72 deletions(-) create mode 100644 1018-keymap-add-aditional-support.patch create mode 100644 1019-udev-Fix-device-matching-in-the-accelerometer.patch delete mode 100644 kmod-fix-builtin-typo.patch delete mode 100644 libudev-validate-argument-udev_enumerate_new.patch rename udev-root-symlink.systemd => systemd-udev-root-symlink (71%) diff --git a/1018-keymap-add-aditional-support.patch b/1018-keymap-add-aditional-support.patch new file mode 100644 index 00000000..b9e39f5f --- /dev/null +++ b/1018-keymap-add-aditional-support.patch @@ -0,0 +1,59 @@ +Index: systemd-195/Makefile.am +=================================================================== +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -2265,6 +2265,8 @@ dist_udevkeymap_DATA = \ + keymaps/hewlett-packard-presario-2100 \ + keymaps/hewlett-packard-tablet \ + keymaps/hewlett-packard-tx2 \ ++ keymaps/hewlett-packard_elitebook-8440p \ ++ keymaps/hewlett-packard-hdx9494nr \ + keymaps/ibm-thinkpad-usb-keyboard-trackpoint \ + keymaps/inventec-symphony_6.0_7.0 \ + keymaps/lenovo-3000 \ +Index: systemd-195/keymaps/hewlett-packard-hdx9494nr +=================================================================== +--- /dev/null ++++ systemd-195/keymaps/hewlett-packard-hdx9494nr +@@ -0,0 +1,3 @@ ++0xB2 www # FnF3 ++0xD8 f23 # touchpad off ++0xD9 f22 # touchpad on +Index: systemd-195/keymaps/hewlett-packard_elitebook-8440p +=================================================================== +--- /dev/null ++++ systemd-195/keymaps/hewlett-packard_elitebook-8440p +@@ -0,0 +1,5 @@ ++0x88 www ++0xA0 mute ++0xAE volumedown ++0xB0 volumeup ++0xEC mail +Index: systemd-195/src/udev/keymap/95-keyboard-force-release.rules +=================================================================== +--- systemd-195.orig/src/udev/keymap/95-keyboard-force-release.rules ++++ systemd-195/src/udev/keymap/95-keyboard-force-release.rules +@@ -42,7 +42,7 @@ ENV{DMI_VENDOR}=="Viooo Corporation", AT + # These are all the HP laptops that setup a touchpad toggle key + ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[pP][aA][vV][iI][lL][iI][oO][nN]*", RUN+="keyboard-force-release.sh $devpath hp-other" + ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keyboard-force-release.sh $devpath hp-other" +-ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC", RUN+="keyboard-force-release.sh $devpath hp-other" ++ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC|HDX9494NR", RUN+="keyboard-force-release.sh $devpath hp-other" + + ENV{DMI_VENDOR}=="Zepto", ATTR{[dmi/id]product_name}=="Znote 6615WD", RUN+="keyboard-force-release.sh $devpath common-volume-keys" + +Index: systemd-195/src/udev/keymap/95-keymap.rules +=================================================================== +--- systemd-195.orig/src/udev/keymap/95-keymap.rules ++++ systemd-195/src/udev/keymap/95-keymap.rules +@@ -96,7 +96,9 @@ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATT + ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keymap $name hewlett-packard-tx2" + ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*", RUN+="keymap $name hewlett-packard-presario-2100" + ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP G62 Notebook PC", RUN+="keymap $name 0xB2 www" +-ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill" ++ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill 0xB2 www" ++ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8440p", RUN+="keymap $name hewlett-packard_elitebook-8440p" ++ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HDX9494NR", RUN+="keymap $name hewlett-packard-hdx9494nr" + # HP Pavillion dv6315ea has empty DMI_VENDOR + ATTR{[dmi/id]board_vendor}=="Quanta", ATTR{[dmi/id]board_name}=="30B7", ATTR{[dmi/id]board_version}=="65.2B", RUN+="keymap $name 0x88 media" # "quick play + diff --git a/1019-udev-Fix-device-matching-in-the-accelerometer.patch b/1019-udev-Fix-device-matching-in-the-accelerometer.patch new file mode 100644 index 00000000..16f930a4 --- /dev/null +++ b/1019-udev-Fix-device-matching-in-the-accelerometer.patch @@ -0,0 +1,51 @@ +From 1d010426c01044350b2b32d8b3af5d064f7dfe27 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Thu, 10 Jan 2013 14:23:23 +0100 +Subject: [PATCH] udev: Fix device matching in the accelerometer + +As we were searching by ID_PATH, it would have been possible +for us to find a sibling device instead of the device we were +looking for. + +This fixes device matching on the WeTab with the upstream kernel, +as it was trying to use the "Asus Laptop extra buttons" device +instead of the accelerometer. +--- + src/udev/accelerometer/accelerometer.c | 11 +---------- + 1 files changed, 1 insertions(+), 10 deletions(-) + +diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c +index 21f5193..2fea388 100644 +--- a/src/udev/accelerometer/accelerometer.c ++++ b/src/udev/accelerometer/accelerometer.c +@@ -257,7 +257,6 @@ int main (int argc, char** argv) + + char devpath[PATH_MAX]; + char *devnode; +- const char *id_path; + struct udev_enumerate *enumerate; + struct udev_list_entry *list_entry; + +@@ -303,18 +302,10 @@ int main (int argc, char** argv) + return 1; + } + +- id_path = udev_device_get_property_value(dev, "ID_PATH"); +- if (id_path == NULL) { +- fprintf (stderr, "unable to get property ID_PATH for '%s'", devpath); +- return 0; +- } +- + /* Get the children devices and find the devnode */ +- /* FIXME: use udev_enumerate_add_match_parent() instead */ + devnode = NULL; + enumerate = udev_enumerate_new(udev); +- udev_enumerate_add_match_property(enumerate, "ID_PATH", id_path); +- udev_enumerate_add_match_subsystem(enumerate, "input"); ++ udev_enumerate_add_match_parent(enumerate, dev); + udev_enumerate_scan_devices(enumerate); + udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(enumerate)) { + struct udev_device *device; +-- +1.7.7 + diff --git a/journalctl-require-argument-for-priority b/journalctl-require-argument-for-priority index 2ecfcbef..871ac96e 100644 --- a/journalctl-require-argument-for-priority +++ b/journalctl-require-argument-for-priority @@ -9,11 +9,11 @@ unaffected because it is specified in the getopt_long parameter list. src/journal/journalctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index cccd8a7..011a11b 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -157,7 +157,7 @@ static int parse_argv(int argc, char *argv[]) { +Index: systemd-195/src/journal/journalctl.c +=================================================================== +--- systemd-195.orig/src/journal/journalctl.c ++++ systemd-195/src/journal/journalctl.c +@@ -158,7 +158,7 @@ static int parse_argv(int argc, char *ar { "this-boot", no_argument, NULL, 'b' }, { "directory", required_argument, NULL, 'D' }, { "header", no_argument, NULL, ARG_HEADER }, @@ -22,6 +22,3 @@ index cccd8a7..011a11b 100644 { "setup-keys", no_argument, NULL, ARG_SETUP_KEYS }, { "interval", required_argument, NULL, ARG_INTERVAL }, { "verify", no_argument, NULL, ARG_VERIFY }, --- -1.7.10.4 - diff --git a/kmod-fix-builtin-typo.patch b/kmod-fix-builtin-typo.patch deleted file mode 100644 index 77853c54..00000000 --- a/kmod-fix-builtin-typo.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a9f4815da56b8efc519595c3d8a78fe064fa8d69 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 26 Oct 2012 00:28:23 +0200 -Subject: [PATCH] udev: kmod - fix typo - ---- - src/udev/udev-builtin-kmod.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/udev-builtin-kmod.c b/src/udev/udev-builtin-kmod.c -index 1df055b..aacdff8 100644 ---- a/src/udev/udev-builtin-kmod.c -+++ b/src/udev/udev-builtin-kmod.c -@@ -75,7 +75,7 @@ static int builtin_kmod(struct udev_device *dev, int argc, char *argv[], bool te - struct udev *udev = udev_device_get_udev(dev); - int i; - -- if (ctx) -+ if (!ctx) - return 0; - - if (argc < 3 || strcmp(argv[1], "load")) { --- -1.7.10.4 - diff --git a/libudev-validate-argument-udev_enumerate_new.patch b/libudev-validate-argument-udev_enumerate_new.patch deleted file mode 100644 index 9f14aa05..00000000 --- a/libudev-validate-argument-udev_enumerate_new.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e68893075083a7461b1572233d23fdb23541d630 Mon Sep 17 00:00:00 2001 -From: Michael Terry -Date: Fri, 14 Dec 2012 09:02:13 -0500 -Subject: [PATCH] libudev: validate 'udev' argument to udev_enumerate_new() - -https://bugs.freedesktop.org/show_bug.cgi?id=58289 ---- - src/libudev/libudev-enumerate.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c -index 1729655..6a5f4e0 100644 ---- a/src/libudev/libudev-enumerate.c -+++ b/src/libudev/libudev-enumerate.c -@@ -81,6 +81,8 @@ _public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) - { - struct udev_enumerate *udev_enumerate; - -+ if (udev == NULL) -+ return NULL; - udev_enumerate = calloc(1, sizeof(struct udev_enumerate)); - if (udev_enumerate == NULL) - return NULL; --- -1.7.10.4 - diff --git a/systemd-mini.changes b/systemd-mini.changes index 25bdb532..2d31a58c 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com + +- udev: Fix device matching in the accelerometer + add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch +- keymap: add aditional support for some keyboard keys + add: 1018-keymap-add-aditional-support.patch +- journalctl: require argument for --priority + add: journalctl-require-argument-for-priority +- dropped useless patches: + libudev-validate-argument-udev_enumerate_new.patch + kmod-fix-builtin-typo.patch +- rename udev-root-symlink.service to systemd-udev-root-symlink.service. +- fix in udev package missing link in basic.target.wants for + systemd-udev-root-symlink.service + ------------------------------------------------------------------- Mon Jan 28 10:49:21 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index f18c5a44..2c6d46c9 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -106,7 +106,7 @@ Source8: systemd-journald.init Source1060: boot.udev Source1061: write_dev_root_rule -Source1062: udev-root-symlink.systemd +Source1062: systemd-udev-root-symlink Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings @@ -260,6 +260,8 @@ Patch122: improve-man-environment.patch Patch123: tmpfiles-X-type.patch # PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies Patch124: systemd-fix-merge-ignore-dependencies.patch +# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority +Patch125: journalctl-require-argument-for-priority # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -296,6 +298,10 @@ Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch # PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch Patch1017: 1017-udev-use-usec_t-and-now.patch +# PATCH-FIX-UPSTREAM 1018-keymap-add-aditional-support.patch +Patch1018: 1018-keymap-add-aditional-support.patch +# PATCH-FIX-UPSTREAM 1019-udev-Fix-device-matching-in-the-accelerometer.patch +Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -473,6 +479,8 @@ cp %{SOURCE7} m4/ %patch1015 -p1 %patch1016 -p1 %patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 #systemd %patch1 -p1 @@ -561,6 +569,7 @@ cp %{SOURCE7} m4/ %patch122 -p1 %patch123 -p1 %patch124 -p1 +%patch125 -p1 %build autoreconf -fiv @@ -609,9 +618,9 @@ ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.s sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service +install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants +ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze @@ -870,9 +879,9 @@ fi %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service -%exclude %{_prefix}/lib/systemd/system/udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/basic.target.wants/udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.target @@ -1074,7 +1083,8 @@ fi %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd -%{_prefix}/lib/systemd/system/udev-root-symlink.service +%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +%{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/*udev*.service %{_prefix}/lib/systemd/system/systemd-udevd*.socket %dir %{_prefix}/lib/systemd/system/sysinit.target.wants diff --git a/udev-root-symlink.systemd b/systemd-udev-root-symlink similarity index 71% rename from udev-root-symlink.systemd rename to systemd-udev-root-symlink index b92d081a..8cbe87e9 100644 --- a/udev-root-symlink.systemd +++ b/systemd-udev-root-symlink @@ -1,5 +1,5 @@ [Unit] -Description=create /dev/root symlink with dynamic rule +Description=Create dynamic rule for /dev/root link Before=udev.service DefaultDependencies=no diff --git a/systemd.changes b/systemd.changes index 25bdb532..2d31a58c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com + +- udev: Fix device matching in the accelerometer + add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch +- keymap: add aditional support for some keyboard keys + add: 1018-keymap-add-aditional-support.patch +- journalctl: require argument for --priority + add: journalctl-require-argument-for-priority +- dropped useless patches: + libudev-validate-argument-udev_enumerate_new.patch + kmod-fix-builtin-typo.patch +- rename udev-root-symlink.service to systemd-udev-root-symlink.service. +- fix in udev package missing link in basic.target.wants for + systemd-udev-root-symlink.service + ------------------------------------------------------------------- Mon Jan 28 10:49:21 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 9546bb7b..7d0e568e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -101,7 +101,7 @@ Source8: systemd-journald.init Source1060: boot.udev Source1061: write_dev_root_rule -Source1062: udev-root-symlink.systemd +Source1062: systemd-udev-root-symlink Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings @@ -255,6 +255,8 @@ Patch122: improve-man-environment.patch Patch123: tmpfiles-X-type.patch # PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies Patch124: systemd-fix-merge-ignore-dependencies.patch +# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority +Patch125: journalctl-require-argument-for-priority # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -291,6 +293,10 @@ Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch # PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch Patch1017: 1017-udev-use-usec_t-and-now.patch +# PATCH-FIX-UPSTREAM 1018-keymap-add-aditional-support.patch +Patch1018: 1018-keymap-add-aditional-support.patch +# PATCH-FIX-UPSTREAM 1019-udev-Fix-device-matching-in-the-accelerometer.patch +Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -468,6 +474,8 @@ cp %{SOURCE7} m4/ %patch1015 -p1 %patch1016 -p1 %patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 #systemd %patch1 -p1 @@ -556,6 +564,7 @@ cp %{SOURCE7} m4/ %patch122 -p1 %patch123 -p1 %patch124 -p1 +%patch125 -p1 %build autoreconf -fiv @@ -604,9 +613,9 @@ ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.s sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev-root-symlink.service +install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants +ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze @@ -865,9 +874,9 @@ fi %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service -%exclude %{_prefix}/lib/systemd/system/udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/basic.target.wants/udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.target @@ -1069,7 +1078,8 @@ fi %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd -%{_prefix}/lib/systemd/system/udev-root-symlink.service +%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +%{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/*udev*.service %{_prefix}/lib/systemd/system/systemd-udevd*.socket %dir %{_prefix}/lib/systemd/system/sysinit.target.wants From 6f225480678252f699bee599e0025caa5bd2449bc18e9000130bc0dadeb8aca9 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 2 Feb 2013 18:36:30 +0000 Subject: [PATCH 122/221] Accepting request 150761 from Base:System - Add cryptsetup-accept-read-only.patch: accept "read-only" in addition to "readonly" in crypttab - Update parse-multiline-env-file.patch to correctly handle commented lines (bnc#793411) (forwarded request 150752 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/150761 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=126 --- cryptsetup-accept-read-only.patch | 47 +++++++++++++++++++++++++++++++ parse-multiline-env-file.patch | 24 ++++++++++------ systemd.changes | 8 ++++++ systemd.spec | 5 +++- 4 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 cryptsetup-accept-read-only.patch diff --git a/cryptsetup-accept-read-only.patch b/cryptsetup-accept-read-only.patch new file mode 100644 index 00000000..279b4482 --- /dev/null +++ b/cryptsetup-accept-read-only.patch @@ -0,0 +1,47 @@ +From 18cf1a1be5ae6985f211ec6f02504506da36b223 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 31 Jan 2013 11:03:09 +0100 +Subject: [PATCH] cryptsetup: accept both "read-only" and "readonly" spellings + +Mukund Sivaraman pointed out that cryptsetup(5) mentions the "read-only" +option, while the code understands "readonly". + +We could just fix the manpage, but for consistency in naming of +multi-word options it would be prettier to have "read-only". So let's +accept both spellings. + +BZ: https://bugzilla.redhat.com/show_bug.cgi?id=903463 +--- + man/crypttab.xml | 2 +- + src/cryptsetup/cryptsetup.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/man/crypttab.xml b/man/crypttab.xml +index 2379fc0..f976bda 100644 +--- a/man/crypttab.xml ++++ b/man/crypttab.xml +@@ -182,7 +182,7 @@ + + + +- read-only ++ read-onlyreadonly + + Set up the encrypted + block device in read-only +diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c +index f332843..a8cdf10 100644 +--- a/src/cryptsetup/cryptsetup.c ++++ b/src/cryptsetup/cryptsetup.c +@@ -111,7 +111,7 @@ static int parse_one_option(const char *option) { + return 0; + } + +- } else if (streq(option, "readonly")) ++ } else if (streq(option, "readonly") || streq(option, "read-only")) + opt_readonly = true; + else if (streq(option, "verify")) + opt_verify = true; +-- +1.7.10.4 + diff --git a/parse-multiline-env-file.patch b/parse-multiline-env-file.patch index c0369e3f..6a6ad986 100644 --- a/parse-multiline-env-file.patch +++ b/parse-multiline-env-file.patch @@ -41,7 +41,7 @@ Index: systemd-195/src/shared/util.c =================================================================== --- systemd-195.orig/src/shared/util.c +++ systemd-195/src/shared/util.c -@@ -876,33 +876,55 @@ fail: +@@ -876,69 +876,89 @@ fail: return r; } @@ -101,30 +101,38 @@ Index: systemd-195/src/shared/util.c + b = strappend(c, l); + if (!b) + return log_oom(); -+ + +- if (!*p) +- continue; + free(c); + c = b; + } + + p = strstrip(c ? c : l); - if (!*p) - continue; -@@ -910,35 +932,27 @@ int load_env_file( - if (strchr(COMMENTS, *p)) +- if (strchr(COMMENTS, *p)) ++ if (!*p) { ++ free(c); ++ c = NULL; continue; ++ } - if (!(u = normalize_env_assignment(p))) { - r = log_oom(); - goto finish; -- } ++ if (strchr(COMMENTS, *p)) { ++ free(c); ++ c = NULL; ++ continue; + } + + u = normalize_env_assignment(p); + if (!u) + return log_oom(); + + free(c); + c = NULL; - ++ t = strv_append(m, u); free(u); diff --git a/systemd.changes b/systemd.changes index 2d31a58c..bb00736a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com + +- Add cryptsetup-accept-read-only.patch: accept "read-only" in + addition to "readonly" in crypttab +- Update parse-multiline-env-file.patch to correctly handle + commented lines (bnc#793411) + ------------------------------------------------------------------- Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 7d0e568e..f0731945 100644 --- a/systemd.spec +++ b/systemd.spec @@ -255,8 +255,10 @@ Patch122: improve-man-environment.patch Patch123: tmpfiles-X-type.patch # PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies Patch124: systemd-fix-merge-ignore-dependencies.patch -# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority +# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority Patch125: journalctl-require-argument-for-priority +# PATCH-FIX-UPSTREAM cryptsetup-accept-read-only.patch fcrozat@suse.com -- Accept read-only as well as readonly as parameters for crypttab +Patch126: cryptsetup-accept-read-only.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -565,6 +567,7 @@ cp %{SOURCE7} m4/ %patch123 -p1 %patch124 -p1 %patch125 -p1 +%patch126 -p1 %build autoreconf -fiv From 98354dd2e0c6e2cc5e100a0c83b66fe0ea3ef1ed4e8e9add4358b2788cca2d84 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 12 Feb 2013 15:45:47 +0000 Subject: [PATCH 123/221] Accepting request 155190 from Base:System - usb_id: ensure we have a valid serial number as a string (bnc#779493). add: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch - cdrom_id: created links for the default cd/dvd drive (bnc#783054). add: 1021-create-default-links-for-primary-cd_dvd-drive.patch - Add cryptsetup-accept-read-only.patch: accept "read-only" in addition to "readonly" in crypttab - Update parse-multiline-env-file.patch to correctly handle commented lines (bnc#793411) - usb_id: ensure we have a valid serial number as a string (bnc#779493). add: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch - cdrom_id: created links for the default cd/dvd drive (bnc#783054). add: 1021-create-default-links-for-primary-cd_dvd-drive.patch (forwarded request 155189 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/155190 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=127 --- ...s-have-a-very-bogus-or-strage-serial.patch | 62 +++++++++++++++++++ ...fault-links-for-primary-cd_dvd-drive.patch | 15 +++++ systemd-mini.changes | 16 +++++ systemd-mini.spec | 11 +++- systemd.changes | 8 +++ systemd.spec | 6 ++ 6 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch create mode 100644 1021-create-default-links-for-primary-cd_dvd-drive.patch diff --git a/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch b/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch new file mode 100644 index 00000000..4832bbb5 --- /dev/null +++ b/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch @@ -0,0 +1,62 @@ +From 2ffcfb9b45262271019d1751cafc895c3dae8f0e Mon Sep 17 00:00:00 2001 +From: Robert Milasan +Date: Sun, 10 Feb 2013 11:00:20 +0100 +Subject: [PATCH] usb_id: some strange devices have a very bogus or strange serial + numer, making a mess in /dev/disk/by-id. Let's check if the + serial number is a valid, otherwise don't use it. + +--- + src/udev/udev-builtin-usb_id.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/src/udev/udev-builtin-usb_id.c b/src/udev/udev-builtin-usb_id.c +index 7ce401d..9e407c5 100644 +--- a/src/udev/udev-builtin-usb_id.c ++++ b/src/udev/udev-builtin-usb_id.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -31,6 +32,26 @@ + + #include "udev.h" + ++static bool validate_string(const char *str) ++{ ++ const char *s; ++ ++ if (!str) ++ return false; ++ ++ for (s = str; *s != '\0'; s++) { ++ if ((*s >= 'a' && *s <= 'z') || ++ (*s >= 'A' && *s <= 'Z') || ++ (*s >= '0' && *s <= '9') || ++ *s == '-' || *s == '_') ++ continue; ++ else ++ return false; ++ } ++ ++ return true; ++} ++ + static void set_usb_iftype(char *to, int if_class_num, size_t len) + { + const char *type = "generic"; +@@ -431,6 +452,8 @@ fallback: + const char *usb_serial; + + usb_serial = udev_device_get_sysattr_value(dev_usb, "serial"); ++ if (!validate_string(usb_serial)) ++ usb_serial = NULL; + if (usb_serial) { + util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1); + util_replace_chars(serial_str, NULL); +-- +1.7.10.4 + diff --git a/1021-create-default-links-for-primary-cd_dvd-drive.patch b/1021-create-default-links-for-primary-cd_dvd-drive.patch new file mode 100644 index 00000000..d44af024 --- /dev/null +++ b/1021-create-default-links-for-primary-cd_dvd-drive.patch @@ -0,0 +1,15 @@ +Index: systemd-195/rules/60-cdrom_id.rules +=================================================================== +--- systemd-195.orig/rules/60-cdrom_id.rules ++++ systemd-195/rules/60-cdrom_id.rules +@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr + # enable the receiving of media eject button events + IMPORT{program}="cdrom_id --lock-media $devnode" + +-KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" ++KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" ++KERNEL=="sr0", ENV{ID_CDROM_CD_RW}=="1", SYMLINK+="cdrw", OPTIONS+="link_priority=-100" ++KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100" ++KERNEL=="sr0", ENV{ID_CDROM_DVD_RW}=="1", SYMLINK+="dvdrw", OPTIONS+="link_priority=-100" + + LABEL="cdrom_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index 2d31a58c..748aea63 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com + +- usb_id: ensure we have a valid serial number as a string (bnc#779493). + add: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +- cdrom_id: created links for the default cd/dvd drive (bnc#783054). + add: 1021-create-default-links-for-primary-cd_dvd-drive.patch + +------------------------------------------------------------------- +Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com + +- Add cryptsetup-accept-read-only.patch: accept "read-only" in + addition to "readonly" in crypttab +- Update parse-multiline-env-file.patch to correctly handle + commented lines (bnc#793411) + ------------------------------------------------------------------- Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 2c6d46c9..701b42db 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -260,8 +260,10 @@ Patch122: improve-man-environment.patch Patch123: tmpfiles-X-type.patch # PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies Patch124: systemd-fix-merge-ignore-dependencies.patch -# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority +# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority Patch125: journalctl-require-argument-for-priority +# PATCH-FIX-UPSTREAM cryptsetup-accept-read-only.patch fcrozat@suse.com -- Accept read-only as well as readonly as parameters for crypttab +Patch126: cryptsetup-accept-read-only.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -302,6 +304,10 @@ Patch1017: 1017-udev-use-usec_t-and-now.patch Patch1018: 1018-keymap-add-aditional-support.patch # PATCH-FIX-UPSTREAM 1019-udev-Fix-device-matching-in-the-accelerometer.patch Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch +# PATCH-FIX-OPENSUSE 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +# PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch +Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -481,6 +487,8 @@ cp %{SOURCE7} m4/ %patch1017 -p1 %patch1018 -p1 %patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 #systemd %patch1 -p1 @@ -570,6 +578,7 @@ cp %{SOURCE7} m4/ %patch123 -p1 %patch124 -p1 %patch125 -p1 +%patch126 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index bb00736a..748aea63 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com + +- usb_id: ensure we have a valid serial number as a string (bnc#779493). + add: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +- cdrom_id: created links for the default cd/dvd drive (bnc#783054). + add: 1021-create-default-links-for-primary-cd_dvd-drive.patch + ------------------------------------------------------------------- Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index f0731945..54acc848 100644 --- a/systemd.spec +++ b/systemd.spec @@ -299,6 +299,10 @@ Patch1017: 1017-udev-use-usec_t-and-now.patch Patch1018: 1018-keymap-add-aditional-support.patch # PATCH-FIX-UPSTREAM 1019-udev-Fix-device-matching-in-the-accelerometer.patch Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch +# PATCH-FIX-OPENSUSE 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +# PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch +Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -478,6 +482,8 @@ cp %{SOURCE7} m4/ %patch1017 -p1 %patch1018 -p1 %patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 #systemd %patch1 -p1 From 8456f90f729bf2085c30f95b6acb1ef90ea9046d9eea041adc3195217c96ccbb Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 13 Feb 2013 13:39:37 +0000 Subject: [PATCH 124/221] Accepting request 155320 from Base:System - rework patch: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch - udev: use unique names for temporary files created in /dev. add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch - cdrom_id: add data track count for bad virtual drive. add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch - rework patch: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch - udev: use unique names for temporary files created in /dev. add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch - cdrom_id: add data track count for bad virtual drive. add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch (forwarded request 155319 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/155320 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=128 --- 1018-keymap-add-aditional-support.patch | 2 +- ...s-have-a-very-bogus-or-strage-serial.patch | 27 ++++----- ...names-for-temporary-files-created-in.patch | 57 +++++++++++++++++++ ...ta-track-count-for-bad-virtual-drive.patch | 51 +++++++++++++++++ systemd-mini.changes | 10 ++++ systemd-mini.spec | 6 ++ systemd.changes | 10 ++++ systemd.spec | 6 ++ 8 files changed, 155 insertions(+), 14 deletions(-) create mode 100644 1022-udev-use-unique-names-for-temporary-files-created-in.patch create mode 100644 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch diff --git a/1018-keymap-add-aditional-support.patch b/1018-keymap-add-aditional-support.patch index b9e39f5f..f277245b 100644 --- a/1018-keymap-add-aditional-support.patch +++ b/1018-keymap-add-aditional-support.patch @@ -2,7 +2,7 @@ Index: systemd-195/Makefile.am =================================================================== --- systemd-195.orig/Makefile.am +++ systemd-195/Makefile.am -@@ -2265,6 +2265,8 @@ dist_udevkeymap_DATA = \ +@@ -2246,6 +2246,8 @@ dist_udevkeymap_DATA = \ keymaps/hewlett-packard-presario-2100 \ keymaps/hewlett-packard-tablet \ keymaps/hewlett-packard-tx2 \ diff --git a/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch b/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch index 4832bbb5..ad6d27b2 100644 --- a/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +++ b/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch @@ -9,10 +9,10 @@ Subject: [PATCH] usb_id: some strange devices have a very bogus or strange seria src/udev/udev-builtin-usb_id.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) -diff --git a/src/udev/udev-builtin-usb_id.c b/src/udev/udev-builtin-usb_id.c -index 7ce401d..9e407c5 100644 ---- a/src/udev/udev-builtin-usb_id.c -+++ b/src/udev/udev-builtin-usb_id.c +Index: systemd-195/src/udev/udev-builtin-usb_id.c +=================================================================== +--- systemd-195.orig/src/udev/udev-builtin-usb_id.c ++++ systemd-195/src/udev/udev-builtin-usb_id.c @@ -23,6 +23,7 @@ #include #include @@ -25,7 +25,7 @@ index 7ce401d..9e407c5 100644 #include "udev.h" -+static bool validate_string(const char *str) ++static bool valid_string(const char *str) +{ + const char *s; + @@ -48,15 +48,16 @@ index 7ce401d..9e407c5 100644 static void set_usb_iftype(char *to, int if_class_num, size_t len) { const char *type = "generic"; -@@ -431,6 +452,8 @@ fallback: - const char *usb_serial; +@@ -428,10 +449,10 @@ fallback: + } + + if (serial_str[0] == '\0') { +- const char *usb_serial; ++ const char *usb_serial = NULL; usb_serial = udev_device_get_sysattr_value(dev_usb, "serial"); -+ if (!validate_string(usb_serial)) -+ usb_serial = NULL; - if (usb_serial) { +- if (usb_serial) { ++ if (valid_string(usb_serial)) { util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1); util_replace_chars(serial_str, NULL); --- -1.7.10.4 - + } diff --git a/1022-udev-use-unique-names-for-temporary-files-created-in.patch b/1022-udev-use-unique-names-for-temporary-files-created-in.patch new file mode 100644 index 00000000..a3516edb --- /dev/null +++ b/1022-udev-use-unique-names-for-temporary-files-created-in.patch @@ -0,0 +1,57 @@ +Index: systemd-195/src/udev/udev-node.c +=================================================================== +--- systemd-195.orig/src/udev/udev-node.c ++++ systemd-195/src/udev/udev-node.c +@@ -31,15 +31,13 @@ + + #include "udev.h" + +-#define TMP_FILE_EXT ".udev-tmp" +- +-static int node_symlink(struct udev *udev, const char *node, const char *slink) ++static int node_symlink(struct udev_device *dev, const char *node, const char *slink) + { + struct stat stats; + char target[UTIL_PATH_SIZE]; + char *s; + size_t l; +- char slink_tmp[UTIL_PATH_SIZE + sizeof(TMP_FILE_EXT)]; ++ char slink_tmp[UTIL_PATH_SIZE + 32]; + int i = 0; + int tail = 0; + int err = 0; +@@ -101,7 +99,7 @@ static int node_symlink(struct udev *ude + } + + log_debug("atomically replace '%s'\n", slink); +- util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, TMP_FILE_EXT, NULL); ++ util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, ".tmp-", udev_device_get_id_filename(dev), NULL); + unlink(slink_tmp); + do { + err = mkdir_parents_label(slink_tmp, 0755); +@@ -204,7 +202,7 @@ static void link_update(struct udev_devi + util_delete_path(udev, slink); + } else { + log_debug("creating link '%s' to '%s'\n", slink, target); +- node_symlink(udev, target, slink); ++ node_symlink(dev, target, slink); + } + + if (add) { +@@ -304,7 +302,6 @@ out: + + void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid) + { +- struct udev *udev = udev_device_get_udev(dev); + char filename[UTIL_PATH_SIZE]; + struct udev_list_entry *list_entry; + +@@ -318,7 +315,7 @@ void udev_node_add(struct udev_device *d + snprintf(filename, sizeof(filename), "/dev/%s/%u:%u", + strcmp(udev_device_get_subsystem(dev), "block") == 0 ? "block" : "char", + major(udev_device_get_devnum(dev)), minor(udev_device_get_devnum(dev))); +- node_symlink(udev, udev_device_get_devnode(dev), filename); ++ node_symlink(dev, udev_device_get_devnode(dev), filename); + + /* create/update symlinks, add symlinks to name index */ + udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev)) diff --git a/1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch b/1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch new file mode 100644 index 00000000..54036570 --- /dev/null +++ b/1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch @@ -0,0 +1,51 @@ +From a0ec302b9309bc56f6bed6162e47ad6c27165747 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 12 Feb 2013 15:19:38 +0100 +Subject: [PATCH] cdrom_id: add data track count for bad virtual drive + implementations +Organization: SUSE Linux + +/# /lib/udev/cdrom_id --debug /dev/sr0 +probing: '/dev/sr0' +INQUIRY: [AMI ][Virtual CDROM ][1.00] +GET CONFIGURATION failed with SK=5h/ASC=20h/ACQ=00h +drive is pre-MMC2 and does not support 46h get configuration command +trying to work around the problem +READ DISC INFORMATION failed with SK=5h/ASC=20h/ACQ=00h +no current profile, but disc is present; assuming CD-ROM +READ TOC: len: 12, start track: 1, end track: 1 +last track 1 starts at block 0 +READ DISC INFORMATION failed with SK=5h/ASC=20h/ACQ=00h +ID_CDROM=1 +ID_CDROM_MEDIA=1 +ID_CDROM_MEDIA_CD=1 + +What is missing here is ID_CDROM_MEDIA_TRACK_COUNT_DATA to trigger +blkid in /lib/udev/rules.d/60-persistent-storage.rules + +KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", + ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", + ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \ + IMPORT{builtin}="blkid --noraid" + +Signed-off-by: Robert Milasan +--- + src/udev/cdrom_id/cdrom_id.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c +index 1056536..b659cc3 100644 +--- a/src/udev/cdrom_id/cdrom_id.c ++++ b/src/udev/cdrom_id/cdrom_id.c +@@ -513,6 +513,8 @@ static int cd_profiles_old_mmc(struct udev *udev, int fd) + if (cd_media == 1) { + log_debug("no current profile, but disc is present; assuming CD-ROM\n"); + cd_media_cd_rom = 1; ++ cd_media_track_count = 1; ++ cd_media_track_count_data = 1; + return 0; + } else { + log_debug("no current profile, assuming no media\n"); +-- +1.7.7 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 748aea63..bb106d87 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com + +- rework patch: + 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +- udev: use unique names for temporary files created in /dev. + add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch +- cdrom_id: add data track count for bad virtual drive. + add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch + ------------------------------------------------------------------- Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 701b42db..3370583a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -308,6 +308,10 @@ Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch # PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-UPSTREAM 1022-udev-use-unique-names-for-temporary-files-created-in.patch +Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch +# PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch +Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -489,6 +493,8 @@ cp %{SOURCE7} m4/ %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 #systemd %patch1 -p1 diff --git a/systemd.changes b/systemd.changes index 748aea63..bb106d87 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com + +- rework patch: + 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +- udev: use unique names for temporary files created in /dev. + add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch +- cdrom_id: add data track count for bad virtual drive. + add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch + ------------------------------------------------------------------- Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 54acc848..34bf7b73 100644 --- a/systemd.spec +++ b/systemd.spec @@ -303,6 +303,10 @@ Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch # PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-UPSTREAM 1022-udev-use-unique-names-for-temporary-files-created-in.patch +Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch +# PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch +Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -484,6 +488,8 @@ cp %{SOURCE7} m4/ %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 +%patch1023 -p1 #systemd %patch1 -p1 From 43573dfddefe8c7fe08b329d53af6677457a9e07ee5442bc883ac18d681684c1 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 15 Feb 2013 17:51:51 +0000 Subject: [PATCH 125/221] Accepting request 155545 from Base:System - disable nss-myhostname warning (bnc#783841) => disable-nss-myhostname-warning-bnc-783841.diff - disable nss-myhostname warning (bnc#783841) => disable-nss-myhostname-warning-bnc-783841.diff (forwarded request 155543 from lnussel) OBS-URL: https://build.opensuse.org/request/show/155545 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=129 --- ...ble-nss-myhostname-warning-bnc-783841.diff | 21 +++++++++++++++++++ systemd-mini.changes | 6 ++++++ systemd-mini.spec | 4 ++++ systemd.changes | 6 ++++++ systemd.spec | 3 +++ 5 files changed, 40 insertions(+) create mode 100644 disable-nss-myhostname-warning-bnc-783841.diff diff --git a/disable-nss-myhostname-warning-bnc-783841.diff b/disable-nss-myhostname-warning-bnc-783841.diff new file mode 100644 index 00000000..2d085696 --- /dev/null +++ b/disable-nss-myhostname-warning-bnc-783841.diff @@ -0,0 +1,21 @@ +From 33db05b6bd6151c482f5efe01f2a6118efc82fde Mon Sep 17 00:00:00 2001 +From: Ludwig Nussel +Date: Tue, 12 Feb 2013 17:24:35 +0100 +Subject: [PATCH] disable nss-myhostname warning (bnc#783841) + +--- + src/hostname/hostnamed.c | 1 + + 1 Datei geändert, 1 Zeile hinzugefügt(+) + +Index: systemd-195/src/hostname/hostnamed.c +=================================================================== +--- systemd-195.orig/src/hostname/hostnamed.c ++++ systemd-195/src/hostname/hostnamed.c +@@ -124,6 +124,7 @@ static int read_data(void) { + static bool check_nss(void) { + + void *dl; ++ return true; + + if ((dl = dlopen("libnss_myhostname.so.2", RTLD_LAZY))) { + dlclose(dl); diff --git a/systemd-mini.changes b/systemd-mini.changes index bb106d87..26c4bc94 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Feb 15 13:05:19 UTC 2013 - lnussel@suse.de + +- disable nss-myhostname warning (bnc#783841) + => disable-nss-myhostname-warning-bnc-783841.diff + ------------------------------------------------------------------- Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 3370583a..62088835 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -264,6 +264,8 @@ Patch124: systemd-fix-merge-ignore-dependencies.patch Patch125: journalctl-require-argument-for-priority # PATCH-FIX-UPSTREAM cryptsetup-accept-read-only.patch fcrozat@suse.com -- Accept read-only as well as readonly as parameters for crypttab Patch126: cryptsetup-accept-read-only.patch +# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) +Patch127: disable-nss-myhostname-warning-bnc-783841.diff # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -495,6 +497,7 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1023 -p1 +%patch1024 -p1 #systemd %patch1 -p1 @@ -585,6 +588,7 @@ cp %{SOURCE7} m4/ %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index bb106d87..26c4bc94 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Feb 15 13:05:19 UTC 2013 - lnussel@suse.de + +- disable nss-myhostname warning (bnc#783841) + => disable-nss-myhostname-warning-bnc-783841.diff + ------------------------------------------------------------------- Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 34bf7b73..a2d4638a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -259,6 +259,8 @@ Patch124: systemd-fix-merge-ignore-dependencies.patch Patch125: journalctl-require-argument-for-priority # PATCH-FIX-UPSTREAM cryptsetup-accept-read-only.patch fcrozat@suse.com -- Accept read-only as well as readonly as parameters for crypttab Patch126: cryptsetup-accept-read-only.patch +# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) +Patch127: disable-nss-myhostname-warning-bnc-783841.diff # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -580,6 +582,7 @@ cp %{SOURCE7} m4/ %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 %build autoreconf -fiv From bee26a514eff5de3d528057d0f149c1d8e684ba10a5dafb65082c281ba8403d6 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 17 Feb 2013 16:13:58 +0000 Subject: [PATCH 126/221] Accepting request 155589 from Base:System - Add early-sync-shutdown.patch: start sync just when shutdown.target is beginning - Update parse-multiline-env-file.patch to better handle continuing lines. - Add handle-HOSTNAME.patch: handle /etc/HOSTNAME (bnc#803653). - Add systemctl-print-wall-on-if-successful.patch: only print on wall if successful. - Add improve-bash-completion.patch: improve bash completion. (forwarded request 155556 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/155589 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=130 --- early-sync-shutdown.patch | 209 ++++++++++++++++++++ handle-HOSTNAME.patch | 36 ++++ improve-bash-completion.patch | 173 ++++++++++++++++ parse-multiline-env-file.patch | 157 ++++++++++----- systemctl-print-wall-on-if-successful.patch | 25 +++ systemd-mini.changes | 12 ++ systemd-mini.spec | 13 +- systemd.changes | 12 ++ systemd.spec | 12 ++ 9 files changed, 596 insertions(+), 53 deletions(-) create mode 100644 early-sync-shutdown.patch create mode 100644 handle-HOSTNAME.patch create mode 100644 improve-bash-completion.patch create mode 100644 systemctl-print-wall-on-if-successful.patch diff --git a/early-sync-shutdown.patch b/early-sync-shutdown.patch new file mode 100644 index 00000000..87d4a555 --- /dev/null +++ b/early-sync-shutdown.patch @@ -0,0 +1,209 @@ +From c65eb8365344eeb72ee2c0b333ab54d925263b3f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 25 Jan 2013 22:33:33 +0100 +Subject: [PATCH] shutdown: issue a sync() as soon as shutdown.target is queued + +--- + Makefile.am | 7 ++++-- + src/core/job.c | 26 ++++++++++++++++++++ + src/core/job.h | 2 ++ + src/core/sync.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/sync.h | 24 +++++++++++++++++++ + src/core/transaction.c | 1 + + 6 files changed, 123 insertions(+), 2 deletions(-) + create mode 100644 src/core/sync.c + create mode 100644 src/core/sync.h + +Index: systemd-195/Makefile.am +=================================================================== +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -1038,7 +1038,9 @@ libsystemd_core_la_SOURCES = \ + src/core/syscall-list.c \ + src/core/syscall-list.h \ + src/core/audit-fd.c \ +- src/core/audit-fd.h ++ src/core/audit-fd.h \ ++ src/core/sync.c \ ++ src/core/sync.h + + nodist_libsystemd_core_la_SOURCES = \ + src/core/load-fragment-gperf.c \ +@@ -1052,7 +1054,8 @@ libsystemd_core_la_CFLAGS = \ + $(LIBWRAP_CFLAGS) \ + $(PAM_CFLAGS) \ + $(AUDIT_CFLAGS) \ +- $(KMOD_CFLAGS) ++ $(KMOD_CFLAGS) \ ++ -pthread + + libsystemd_core_la_LIBADD = \ + libsystemd-capability.la \ +Index: systemd-195/src/core/job.c +=================================================================== +--- systemd-195.orig/src/core/job.c ++++ systemd-195/src/core/job.c +@@ -34,6 +34,9 @@ + #include "load-dropin.h" + #include "log.h" + #include "dbus-job.h" ++#include "special.h" ++#include "sync.h" ++#include "virt.h" + + JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { + JobBusClient *cl; +@@ -1045,6 +1048,29 @@ int job_coldplug(Job *j) { + return 0; + } + ++void job_shutdown_magic(Job *j) { ++ assert(j); ++ ++ /* The shutdown target gets some special treatment here: we ++ * tell the kernel to begin with flushing its disk caches, to ++ * optimize shutdown time a bit. Ideally we wouldn't hardcode ++ * this magic into PID 1. However all other processes aren't ++ * options either since they'd exit much sooner than PID 1 and ++ * asynchronous sync() would cause their exit to be ++ * delayed. */ ++ ++ if (!unit_has_name(j->unit, SPECIAL_SHUTDOWN_TARGET)) ++ return; ++ ++ if (j->type != JOB_START) ++ return; ++ ++ if (detect_container(NULL) > 0) ++ return; ++ ++ asynchronous_sync(); ++} ++ + static const char* const job_state_table[_JOB_STATE_MAX] = { + [JOB_WAITING] = "waiting", + [JOB_RUNNING] = "running" +Index: systemd-195/src/core/job.h +=================================================================== +--- systemd-195.orig/src/core/job.h ++++ systemd-195/src/core/job.h +@@ -217,6 +217,8 @@ int job_finish_and_invalidate(Job *j, Jo + + char *job_dbus_path(Job *j); + ++void job_shutdown_magic(Job *j); ++ + const char* job_type_to_string(JobType t); + JobType job_type_from_string(const char *s); + +Index: systemd-195/src/core/sync.c +=================================================================== +--- /dev/null ++++ systemd-195/src/core/sync.c +@@ -0,0 +1,65 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2013 Lennart Poettering ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++#include ++#include ++ ++#include "sync.h" ++ ++static void *sync_thread(void *p) { ++ sync(); ++ return NULL; ++} ++ ++int asynchronous_sync(void) { ++ pthread_attr_t a; ++ pthread_t t; ++ int r; ++ ++ /* It kinda sucks that we have to resort to threads to ++ * implement an asynchronous sync(), but well, such is ++ * life. ++ * ++ * Note that issuing this command right before exiting a ++ * process will cause the process to wait for the sync() to ++ * complete. This function hence is nicely asynchronous really ++ * only in long running processes. */ ++ ++ r = pthread_attr_init(&a); ++ if (r != 0) ++ return -r; ++ ++ r = pthread_attr_setdetachstate(&a, PTHREAD_CREATE_DETACHED); ++ if (r != 0) { ++ r = -r; ++ goto finish; ++ } ++ ++ r = pthread_create(&t, &a, sync_thread, NULL); ++ if (r != 0) { ++ r = -r; ++ goto finish; ++ } ++ ++finish: ++ pthread_attr_destroy(&a); ++ return r; ++} +Index: systemd-195/src/core/sync.h +=================================================================== +--- /dev/null ++++ systemd-195/src/core/sync.h +@@ -0,0 +1,24 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++#pragma once ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2013 Lennart Poettering ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++int asynchronous_sync(void); +Index: systemd-195/src/core/transaction.c +=================================================================== +--- systemd-195.orig/src/core/transaction.c ++++ systemd-195/src/core/transaction.c +@@ -592,6 +592,7 @@ static int transaction_apply(Transaction + job_add_to_run_queue(j); + job_add_to_dbus_queue(j); + job_start_timer(j); ++ job_shutdown_magic(j); + } + + return 0; diff --git a/handle-HOSTNAME.patch b/handle-HOSTNAME.patch new file mode 100644 index 00000000..b2bf4825 --- /dev/null +++ b/handle-HOSTNAME.patch @@ -0,0 +1,36 @@ +Index: systemd-195/src/hostname/hostnamed.c +=================================================================== +--- systemd-195.orig/src/hostname/hostnamed.c ++++ systemd-195/src/hostname/hostnamed.c +@@ -118,6 +118,10 @@ static int read_data(void) { + if (r < 0 && r != -ENOENT) + return r; + ++ r = read_one_line_file("/etc/HOSTNAME", &data[PROP_STATIC_HOSTNAME]); ++ if (r < 0 && r != -ENOENT) ++ return r; ++ + return 0; + } + +@@ -203,6 +207,7 @@ static int write_data_hostname(void) { + + static int write_data_static_hostname(void) { + ++ int r; + if (isempty(data[PROP_STATIC_HOSTNAME])) { + + if (unlink("/etc/hostname") < 0) +@@ -211,7 +216,11 @@ static int write_data_static_hostname(vo + return 0; + } + +- return write_one_line_file_atomic("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ r = write_one_line_file_atomic("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ if (!r) { ++ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); ++ } ++ return r; + } + + static int write_data_other(void) { diff --git a/improve-bash-completion.patch b/improve-bash-completion.patch new file mode 100644 index 00000000..4621e3fd --- /dev/null +++ b/improve-bash-completion.patch @@ -0,0 +1,173 @@ +Index: systemd-195/bash-completion/systemd-bash-completion.sh +=================================================================== +--- systemd-195.orig/bash-completion/systemd-bash-completion.sh ++++ systemd-195/bash-completion/systemd-bash-completion.sh +@@ -114,15 +114,15 @@ _systemctl () { + [SNAPSHOTS]='delete' + [ENVS]='set-environment unset-environment' + [STANDALONE]='daemon-reexec daemon-reload default dot dump +- emergency exit halt kexec list-jobs list-units +- list-unit-files poweroff reboot rescue show-environment' ++ emergency exit halt hibernate kexec list-jobs list-units ++ list-unit-files poweroff reboot rescue show-environment suspend' + [NAME]='snapshot load' + [FILE]='link' + ) + + for ((i=0; $i <= $COMP_CWORD; i++)); do + if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && +- ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG}]}; then ++ ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then + verb=${COMP_WORDS[i]} + break + fi +@@ -245,7 +245,7 @@ _loginctl () { + + for ((i=0; $i <= $COMP_CWORD; i++)); do + if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && +- ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG}]}; then ++ ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then + verb=${COMP_WORDS[i]} + break + fi +@@ -280,10 +280,21 @@ _loginctl () { + } + complete -F _loginctl loginctl + ++__journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} ++ ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} ++ _{P,U,G}ID _COMM _EXE _CMDLINE ++ _AUDIT_{SESSION,LOGINUID} ++ _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID} ++ _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP ++ _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT ++ _KERNEL_{DEVICE,SUBSYSTEM} ++ _UDEV_{SYSNAME,DEVNODE,DEVLINK} ++ __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) ++ + _journalctl() { + local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + local -A OPTS=( +- [STANDALONE]='-a --all -b --this-boot -f --follow --header ++ [STANDALONE]='-a --all -b --this-boot --disk-usage -f --follow --header + -h --help -l --local --new-id128 -m --merge --no-pager + --no-tail -q --quiet --setup-keys --this-boot --verify + --version' +@@ -291,17 +302,6 @@ _journalctl() { + [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until + --verify-key' + ) +- local journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} +- ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} +- _{P,U,G}ID _COMM _EXE _CMDLINE +- _AUDIT_{SESSION,LOGINUID} +- _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID} +- _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP +- _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT +- _KERNEL_{DEVICE,SUBSYSTEM} +- _UDEV_{SYSNAME,DEVNODE,DEVLINK} +- __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) +- + + if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then + case $prev in +@@ -313,7 +313,7 @@ _journalctl() { + comps='short short-monotonic verbose export json cat' + ;; + --field|-F) +- comps=${journal_fields[*]} ++ comps=${__journal_fields[*]} + ;; + --unit|-u) + comps=$(journalctl -F '_SYSTEMD_UNIT') +@@ -337,7 +337,7 @@ _journalctl() { + COMPREPLY=( $(compgen -W '${field_vals[*]}' -- "$cur") ) + else + compopt -o nospace +- COMPREPLY=( $(compgen -W '${journal_fields[*]}' -S= -- "$cur") ) ++ COMPREPLY=( $(compgen -W '${__journal_fields[*]}' -S= -- "$cur") ) + fi + } + complete -F _journalctl journalctl +@@ -476,3 +476,81 @@ _hostnamectl() { + return 0 + } + complete -F _hostnamectl hostnamectl ++ ++__get_all_sysdevs() { ++ local -a devs=(/sys/bus/*/devices/*/ /sys/class/*/*/) ++ printf '%s\n' "${devs[@]%/}" ++} ++ ++_udevadm() { ++ local i verb comps ++ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} ++ local OPTS='-h --help --version --debug' ++ ++ local -A VERBS=( ++ [INFO]='info' ++ [TRIGGER]='trigger' ++ [SETTLE]='settle' ++ [CONTROL]='control' ++ [MONITOR]='monitor' ++ [HWDB]='hwdb' ++ [TESTBUILTIN]='test-builtin' ++ [TEST]='test' ++ ) ++ ++ for ((i=0; $i <= $COMP_CWORD; i++)); do ++ if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && ++ ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then ++ verb=${COMP_WORDS[i]} ++ break ++ fi ++ done ++ ++ if [[ -z $verb && $cur = -* ]]; then ++ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) ++ return 0 ++ fi ++ ++ if [[ -z $verb ]]; then ++ comps=${VERBS[*]} ++ ++ elif __contains_word "$verb" ${VERBS[INFO]}; then ++ if [[ $cur = -* ]]; then ++ comps='--help --query= --path= --name= --root --attribute-walk --export-db --cleanup-db' ++ else ++ comps=$( __get_all_sysdevs ) ++ fi ++ ++ elif __contains_word "$verb" ${VERBS[TRIGGER]}; then ++ comps='--help --verbose --dry-run --type= --action= --subsystem-match= ++ --subsystem-nomatch= --attr-match= --attr-nomatch= --property-match= ++ --tag-match= --sysname-match= --parent-match=' ++ ++ elif __contains_word "$verb" ${VERBS[SETTLE]}; then ++ comps='--help --timeout= --seq-start= --seq-end= --exit-if-exists= --quiet' ++ ++ elif __contains_word "$verb" ${VERBS[CONTROL]}; then ++ comps='--help --exit --log-priority= --stop-exec-queue --start-exec-queue ++ --reload --property= --children-max= --timeout=' ++ ++ elif __contains_word "$verb" ${VERBS[MONITOR]}; then ++ comps='--help --kernel --udev --property --subsystem-match= --tag-match=' ++ ++ elif __contains_word "$verb" ${VERBS[HWDB]}; then ++ comps='--help --update --test=' ++ ++ elif __contains_word "$verb" ${VERBS[TEST]}; then ++ if [[ $cur = -* ]]; then ++ comps='--help --action=' ++ else ++ comps=$( __get_all_sysdevs ) ++ fi ++ ++ elif __contains_word "$verb" ${VERBS[TESTBUILTIN]}; then ++ comps='blkid btrfs firmware hwdb input_id kmod net_id path_id usb_id uaccess' ++ fi ++ ++ COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) ++ return 0 ++} ++complete -F _udevadm udevadm diff --git a/parse-multiline-env-file.patch b/parse-multiline-env-file.patch index 6a6ad986..7772ba8b 100644 --- a/parse-multiline-env-file.patch +++ b/parse-multiline-env-file.patch @@ -41,7 +41,7 @@ Index: systemd-195/src/shared/util.c =================================================================== --- systemd-195.orig/src/shared/util.c +++ systemd-195/src/shared/util.c -@@ -876,69 +876,89 @@ fail: +@@ -876,69 +876,88 @@ fail: return r; } @@ -52,99 +52,103 @@ Index: systemd-195/src/shared/util.c - FILE *f; - char **m = NULL; - int r; -+int load_env_file(const char *fname, -+ char ***rl) { ++int load_env_file(const char *fname, char ***rl) { + -+ FILE _cleanup_fclose_ *f; -+ char *b; -+ char _cleanup_free_ *c = NULL; -+ char _cleanup_strv_free_ **m = NULL; ++ _cleanup_fclose_ FILE *f; ++ _cleanup_strv_free_ char **m = NULL; ++ _cleanup_free_ char *c = NULL; assert(fname); assert(rl); - if (!(f = fopen(fname, "re"))) ++ /* This reads an environment file, but will not complain about ++ * any invalid assignments, that needs to be done by the ++ * caller */ ++ + f = fopen(fname, "re"); + if (!f) return -errno; while (!feof(f)) { - char l[LINE_MAX], *p, *u; -+ char l[LINE_MAX], *p, *u, *cs; - char **t; +- char **t; ++ char l[LINE_MAX], *p, *cs, *b; if (!fgets(l, sizeof(l), f)) { - if (feof(f)) -+ if (!feof(f)) +- break; ++ if (ferror(f)) + return -errno; -+ else if (!c) - break; -+ } ++ ++ /* The previous line was a continuation line? ++ * Let's process it now, before we leave the ++ * loop */ ++ if (c) ++ goto process; - r = -errno; - goto finish; ++ break; + } + +- p = strstrip(l); ++ /* Is this a continuation line? If so, just append ++ * this to c, and go to next line right-away */ + cs = endswith(l, "\\\n"); + if (cs) { + *cs = '\0'; + b = strappend(c, l); + if (!b) -+ return log_oom(); -+ ++ return -ENOMEM; + +- if (!*p) + free(c); + c = b; -+ *l = '\0'; -+ continue; - } + continue; ++ } -- p = strstrip(l); +- if (strchr(COMMENTS, *p)) +- continue; ++ /* If the previous line was a continuation line, ++ * append the current line to it */ + if (c) { + b = strappend(c, l); + if (!b) -+ return log_oom(); - -- if (!*p) -- continue; -+ free(c); -+ c = b; -+ } -+ -+ p = strstrip(c ? c : l); - -- if (strchr(COMMENTS, *p)) -+ if (!*p) { -+ free(c); -+ c = NULL; - continue; -+ } ++ return -ENOMEM; - if (!(u = normalize_env_assignment(p))) { - r = log_oom(); - goto finish; -+ if (strchr(COMMENTS, *p)) { + free(c); -+ c = NULL; -+ continue; ++ c = b; } -+ u = normalize_env_assignment(p); -+ if (!u) -+ return log_oom(); -+ -+ free(c); -+ c = NULL; -+ - t = strv_append(m, u); - free(u); +- t = strv_append(m, u); +- free(u); ++ process: ++ p = strstrip(c ? c : l); - if (!t) { - r = log_oom(); - goto finish; -- } -+ if (!t) -+ return log_oom(); ++ if (*p && !strchr(COMMENTS, *p)) { ++ _cleanup_free_ char *u; ++ int k; ++ ++ u = normalize_env_assignment(p); ++ if (!u) ++ return -ENOMEM; ++ ++ k = strv_extend(&m, u); ++ if (k < 0) ++ return -ENOMEM; + } - strv_free(m); - m = t; +- strv_free(m); +- m = t; ++ free(c); ++ c = NULL; } - r = 0; @@ -163,3 +167,52 @@ Index: systemd-195/src/shared/util.c } int write_env_file(const char *fname, char **l) { +Index: systemd-195/src/shared/strv.c +=================================================================== +--- systemd-195.orig/src/shared/strv.c ++++ systemd-195/src/shared/strv.c +@@ -370,6 +370,32 @@ fail: + return NULL; + } + ++int strv_extend(char ***l, const char *value) { ++ char **c; ++ char *v; ++ unsigned n; ++ ++ if (!value) ++ return 0; ++ ++ v = strdup(value); ++ if (!v) ++ return -ENOMEM; ++ ++ n = strv_length(*l); ++ c = realloc(*l, sizeof(char*) * (n + 2)); ++ if (!c) { ++ free(v); ++ return -ENOMEM; ++ } ++ ++ c[n] = v; ++ c[n+1] = NULL; ++ ++ *l = c; ++ return 0; ++} ++ + char **strv_uniq(char **l) { + char **i; + +Index: systemd-195/src/shared/strv.h +=================================================================== +--- systemd-195.orig/src/shared/strv.h ++++ systemd-195/src/shared/strv.h +@@ -37,6 +37,7 @@ unsigned strv_length(char **l); + char **strv_merge(char **a, char **b); + char **strv_merge_concat(char **a, char **b, const char *suffix); + char **strv_append(char **l, const char *s); ++int strv_extend(char ***l, const char *value); + + char **strv_remove(char **l, const char *s); + char **strv_remove_prefix(char **l, const char *s); diff --git a/systemctl-print-wall-on-if-successful.patch b/systemctl-print-wall-on-if-successful.patch new file mode 100644 index 00000000..f056ef87 --- /dev/null +++ b/systemctl-print-wall-on-if-successful.patch @@ -0,0 +1,25 @@ +From f6bb13ab8db51aaedc825fec2f0458b60309b27a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 14 Feb 2013 14:08:09 -0500 +Subject: [PATCH] systemctl: print wall message only if successful + +systemctl would write to the wall even if unsuccessful. + +https://bugs.freedesktop.org/show_bug.cgi?id=60393 +--- + src/systemctl/systemctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-195/src/systemctl/systemctl.c +=================================================================== +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -1825,7 +1825,7 @@ static int start_special(DBusConnection + } + + r = start_unit(bus, args); +- if (r >= 0) ++ if (r == EXIT_SUCCESS) + warn_wall(a); + + return r; diff --git a/systemd-mini.changes b/systemd-mini.changes index 26c4bc94..d5bdae3e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Feb 15 16:04:39 UTC 2013 - fcrozat@suse.com + +- Add early-sync-shutdown.patch: start sync just when + shutdown.target is beginning +- Update parse-multiline-env-file.patch to better handle continuing + lines. +- Add handle-HOSTNAME.patch: handle /etc/HOSTNAME (bnc#803653). +- Add systemctl-print-wall-on-if-successful.patch: only print on + wall if successful. +- Add improve-bash-completion.patch: improve bash completion. + ------------------------------------------------------------------- Fri Feb 15 13:05:19 UTC 2013 - lnussel@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 62088835..791ba417 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -266,6 +266,14 @@ Patch125: journalctl-require-argument-for-priority Patch126: cryptsetup-accept-read-only.patch # PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) Patch127: disable-nss-myhostname-warning-bnc-783841.diff +# PATCH-FIX-UPSTREAM early-sync-shutdown.patch fcrozat@suse.com -- Start sync on shutdown early +Patch128: early-sync-shutdown.patch +# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) +Patch129: handle-HOSTNAME.patch +# PATCH-FIX-UPSTREAM systemctl-print-wall-on-if-successful.patch fcrozat@suse.com -- Only print on wall if successful +Patch130: systemctl-print-wall-on-if-successful.patch +# PATCH-FIX-UPSTREAM improve-bash-completion.patch fcrozat@suse.com -- improve bash completion +Patch131: improve-bash-completion.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -497,7 +505,6 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1023 -p1 -%patch1024 -p1 #systemd %patch1 -p1 @@ -589,6 +596,10 @@ cp %{SOURCE7} m4/ %patch125 -p1 %patch126 -p1 %patch127 -p1 +%patch128 -p1 +%patch129 -p1 +%patch130 -p1 +%patch131 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 26c4bc94..d5bdae3e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Feb 15 16:04:39 UTC 2013 - fcrozat@suse.com + +- Add early-sync-shutdown.patch: start sync just when + shutdown.target is beginning +- Update parse-multiline-env-file.patch to better handle continuing + lines. +- Add handle-HOSTNAME.patch: handle /etc/HOSTNAME (bnc#803653). +- Add systemctl-print-wall-on-if-successful.patch: only print on + wall if successful. +- Add improve-bash-completion.patch: improve bash completion. + ------------------------------------------------------------------- Fri Feb 15 13:05:19 UTC 2013 - lnussel@suse.de diff --git a/systemd.spec b/systemd.spec index a2d4638a..d067c932 100644 --- a/systemd.spec +++ b/systemd.spec @@ -261,6 +261,14 @@ Patch125: journalctl-require-argument-for-priority Patch126: cryptsetup-accept-read-only.patch # PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) Patch127: disable-nss-myhostname-warning-bnc-783841.diff +# PATCH-FIX-UPSTREAM early-sync-shutdown.patch fcrozat@suse.com -- Start sync on shutdown early +Patch128: early-sync-shutdown.patch +# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) +Patch129: handle-HOSTNAME.patch +# PATCH-FIX-UPSTREAM systemctl-print-wall-on-if-successful.patch fcrozat@suse.com -- Only print on wall if successful +Patch130: systemctl-print-wall-on-if-successful.patch +# PATCH-FIX-UPSTREAM improve-bash-completion.patch fcrozat@suse.com -- improve bash completion +Patch131: improve-bash-completion.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -583,6 +591,10 @@ cp %{SOURCE7} m4/ %patch125 -p1 %patch126 -p1 %patch127 -p1 +%patch128 -p1 +%patch129 -p1 +%patch130 -p1 +%patch131 -p1 %build autoreconf -fiv From 262bc65aad63f559ae724d92e5294bec006fe831b377586919c6eb86d94d0a49 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 19 Feb 2013 12:50:22 +0000 Subject: [PATCH 127/221] Accepting request 155791 from Base:System - udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch - udev: expose new ISO9660 properties from libblkid add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch - udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch - udev: expose new ISO9660 properties from libblkid add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch (forwarded request 155790 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/155791 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=131 --- ...e-only-size-bytes-of-the-descriptors.patch | 24 ++++++++++++ ...new-ISO9660-properties-from-libblkid.patch | 37 +++++++++++++++++++ systemd-mini.changes | 15 ++++++++ systemd-mini.spec | 15 +++++++- systemd.changes | 15 ++++++++ systemd.spec | 15 +++++++- 6 files changed, 117 insertions(+), 4 deletions(-) create mode 100644 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch create mode 100644 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch diff --git a/1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch b/1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch new file mode 100644 index 00000000..08ace924 --- /dev/null +++ b/1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch @@ -0,0 +1,24 @@ +From 7962afbba9016ea03d9f2987fee341443fcde39d Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 17 Feb 2013 21:16:56 +0100 +Subject: [PATCH] udev: usb_id: parse only 'size' bytes of the 'descriptors' + buffer + +Signed-off-by: Robert Milasan +--- + src/udev/udev-builtin-usb_id.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: systemd-195/src/udev/udev-builtin-usb_id.c +=================================================================== +--- systemd-195.orig/src/udev/udev-builtin-usb_id.c ++++ systemd-195/src/udev/udev-builtin-usb_id.c +@@ -210,7 +210,7 @@ static int dev_if_packed_info(struct ude + pos = 0; + strpos = 0; + ifs_str[0] = '\0'; +- while (pos < sizeof(buf) && strpos+7 < len-2) { ++ while (pos < size && strpos+7 < len-2) { + struct usb_interface_descriptor *desc; + char if_str[8]; + diff --git a/1025-udev-expose-new-ISO9660-properties-from-libblkid.patch b/1025-udev-expose-new-ISO9660-properties-from-libblkid.patch new file mode 100644 index 00000000..173b3431 --- /dev/null +++ b/1025-udev-expose-new-ISO9660-properties-from-libblkid.patch @@ -0,0 +1,37 @@ +From ddb5bee15a6ad71e5b596c035c1ee4dc04d5fd2e Mon Sep 17 00:00:00 2001 +From: "Zeeshan Ali (Khattak)" +Date: Sun, 17 Feb 2013 03:21:27 +0200 +Subject: [PATCH] udev: expose new ISO9660 properties from libblkid + +Signed-off-by: Robert Milasan +--- + src/udev/udev-builtin-blkid.c | 16 ++++++++++++++++ + 1 files changed, 16 insertions(+), 0 deletions(-) + +Index: systemd-195/src/udev/udev-builtin-blkid.c +=================================================================== +--- systemd-195.orig/src/udev/udev-builtin-blkid.c ++++ systemd-195/src/udev/udev-builtin-blkid.c +@@ -78,6 +78,22 @@ static void print_property(struct udev_d + } else if (startswith(name, "PART_ENTRY_")) { + util_strscpyl(s, sizeof(s), "ID_", name, NULL); + udev_builtin_add_property(dev, test, s, value); ++ ++ } else if (streq(name, "SYSTEM_ID")) { ++ blkid_encode_string(value, s, sizeof(s)); ++ udev_builtin_add_property(dev, test, "ID_FS_SYSTEM_ID", s); ++ ++ } else if (streq(name, "PUBLISHER_ID")) { ++ blkid_encode_string(value, s, sizeof(s)); ++ udev_builtin_add_property(dev, test, "ID_FS_PUBLISHER_ID", s); ++ ++ } else if (streq(name, "APPLICATION_ID")) { ++ blkid_encode_string(value, s, sizeof(s)); ++ udev_builtin_add_property(dev, test, "ID_FS_APPLICATION_ID", s); ++ ++ } else if (streq(name, "BOOT_SYSTEM_ID")) { ++ blkid_encode_string(value, s, sizeof(s)); ++ udev_builtin_add_property(dev, test, "ID_FS_BOOT_SYSTEM_ID", s); + } + } + diff --git a/systemd-mini.changes b/systemd-mini.changes index d5bdae3e..5368f4e7 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com + +- udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer + add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +- udev: expose new ISO9660 properties from libblkid + add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch + +------------------------------------------------------------------- +Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de + +- Create getty@tty1.service to restore traditional SUSE behavior + of not clearing tty1. (bnc#804158) +- Better use of find -exec + ------------------------------------------------------------------- Fri Feb 15 16:04:39 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 791ba417..aed80312 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -322,6 +322,10 @@ Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch # PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch +# PATCH-FIX-UPSTREAM 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +Patch1024: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +# PATCH-FIX-UPSTREAM 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch +Patch1025: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -505,6 +509,8 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1023 -p1 +%patch1024 -p1 +%patch1025 -p1 #systemd %patch1 -p1 @@ -604,7 +610,7 @@ cp %{SOURCE7} m4/ %build autoreconf -fiv # prevent pre-generated and distributed files from re-building -find . -name "*.[1-8]" -exec touch '{}' \; +find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 # keep split-usr until all packages have moved their systemd rules to /usr %configure \ @@ -656,7 +662,7 @@ ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/syste chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm -find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' +find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert @@ -733,6 +739,11 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants +src="%buildroot/%_libexecdir/systemd/system/getty@.service" +dst="${src/@/@tty1}" +cp "$src" "$dst" +perl -i -pe 's{^# the VT is cleared.*}{}i;s{(^TTYVTDisallocate=.*)}{}' "$dst" + %fdupes -s %{buildroot}%{_mandir} %pre diff --git a/systemd.changes b/systemd.changes index d5bdae3e..5368f4e7 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com + +- udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer + add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +- udev: expose new ISO9660 properties from libblkid + add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch + +------------------------------------------------------------------- +Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de + +- Create getty@tty1.service to restore traditional SUSE behavior + of not clearing tty1. (bnc#804158) +- Better use of find -exec + ------------------------------------------------------------------- Fri Feb 15 16:04:39 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index d067c932..9e0f143a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -317,6 +317,10 @@ Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch # PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch +# PATCH-FIX-UPSTREAM 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +Patch1024: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +# PATCH-FIX-UPSTREAM 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch +Patch1025: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -500,6 +504,8 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1023 -p1 +%patch1024 -p1 +%patch1025 -p1 #systemd %patch1 -p1 @@ -599,7 +605,7 @@ cp %{SOURCE7} m4/ %build autoreconf -fiv # prevent pre-generated and distributed files from re-building -find . -name "*.[1-8]" -exec touch '{}' \; +find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 # keep split-usr until all packages have moved their systemd rules to /usr %configure \ @@ -651,7 +657,7 @@ ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/syste chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm -find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' +find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert @@ -728,6 +734,11 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants +src="%buildroot/%_libexecdir/systemd/system/getty@.service" +dst="${src/@/@tty1}" +cp "$src" "$dst" +perl -i -pe 's{^# the VT is cleared.*}{}i;s{(^TTYVTDisallocate=.*)}{}' "$dst" + %fdupes -s %{buildroot}%{_mandir} %pre From 96aa32bb596c96dee4f6445db50ab312fd82b08c81e69a41646cb17eee0d3c6c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 20 Feb 2013 16:46:33 +0000 Subject: [PATCH 128/221] Accepting request 155884 from Base:System - Ensure journal is flushed on disk when systemd-logger is installed for the first time. - Add improve-journal-perf.patch: improve journal performance on query. - Add support-hybrid-suspend.patch: add support for hybrid suspend. - Add forward-to-pmutils.patch: forward suspend/hibernation calls to pm-utils, if installed (bnc#790157). (forwarded request 155834 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/155884 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=132 --- forward-to-pmutils.patch | 93 +++++ improve-bash-completion.patch | 2 +- improve-journal-perf.patch | 304 +++++++++++++++ support-hybrid-suspend.patch | 680 ++++++++++++++++++++++++++++++++++ systemd-mini.changes | 11 + systemd-mini.spec | 19 + systemd.changes | 11 + systemd.spec | 19 + 8 files changed, 1138 insertions(+), 1 deletion(-) create mode 100644 forward-to-pmutils.patch create mode 100644 improve-journal-perf.patch create mode 100644 support-hybrid-suspend.patch diff --git a/forward-to-pmutils.patch b/forward-to-pmutils.patch new file mode 100644 index 00000000..2a40213d --- /dev/null +++ b/forward-to-pmutils.patch @@ -0,0 +1,93 @@ +Index: systemd-195/src/sleep/sleep.c +=================================================================== +--- systemd-195.orig/src/sleep/sleep.c ++++ systemd-195/src/sleep/sleep.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include "log.h" + #include "util.h" +@@ -31,6 +32,9 @@ + int main(int argc, char *argv[]) { + const char *verb; + char* arguments[4]; ++ const char *pmtools; ++ bool delegate_to_pmutils = false; ++ struct stat buf; + int r; + FILE *f; + +@@ -44,17 +48,27 @@ int main(int argc, char *argv[]) { + goto finish; + } + +- if (streq(argv[1], "suspend")) ++ if (streq(argv[1], "suspend")) { + verb = "mem"; +- else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) ++ pmtools = "/usr/sbin/pm-suspend"; ++ } ++ else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) { + verb = "disk"; ++ if (streq(argv[1], "hibernate")) ++ pmtools = "/usr/sbin/pm-hibernate"; ++ else ++ pmtools = "/usr/sbin/pm-suspend-hybrid"; ++ } + else { + log_error("Unknown action '%s'.", argv[1]); + r = -EINVAL; + goto finish; + } + ++ delegate_to_pmutils = (stat(pmtools, &buf) >= 0 && S_ISREG(buf.st_mode) && (buf.st_mode & 0111)); ++ + /* Configure the hibernation mode */ ++ if (!delegate_to_pmutils) { + if (streq(argv[1], "hibernate")) { + if (write_one_line_file("/sys/power/disk", "platform") < 0) + write_one_line_file("/sys/power/disk", "shutdown"); +@@ -64,13 +78,14 @@ int main(int argc, char *argv[]) { + write_one_line_file("/sys/power/disk", "shutdown"); + } + ++ + f = fopen("/sys/power/state", "we"); + if (!f) { + log_error("Failed to open /sys/power/state: %m"); + r = -errno; + goto finish; + } +- ++ } + arguments[0] = NULL; + arguments[1] = (char*) "pre"; + arguments[2] = argv[1]; +@@ -96,11 +111,16 @@ int main(int argc, char *argv[]) { + "SLEEP=hybrid-sleep", + NULL); + ++ if (delegate_to_pmutils) { ++ r = -system(pmtools); ++ } ++ else { + fputs(verb, f); + fputc('\n', f); + fflush(f); + + r = ferror(f) ? -errno : 0; ++ } + + if (streq(argv[1], "suspend")) + log_struct(LOG_INFO, +@@ -118,6 +138,7 @@ int main(int argc, char *argv[]) { + arguments[1] = (char*) "post"; + execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments); + ++ if (!delegate_to_pmutils) + fclose(f); + + finish: diff --git a/improve-bash-completion.patch b/improve-bash-completion.patch index 4621e3fd..b3580f99 100644 --- a/improve-bash-completion.patch +++ b/improve-bash-completion.patch @@ -8,7 +8,7 @@ Index: systemd-195/bash-completion/systemd-bash-completion.sh [STANDALONE]='daemon-reexec daemon-reload default dot dump - emergency exit halt kexec list-jobs list-units - list-unit-files poweroff reboot rescue show-environment' -+ emergency exit halt hibernate kexec list-jobs list-units ++ emergency exit halt hybrid-sleep hibernate kexec list-jobs list-units + list-unit-files poweroff reboot rescue show-environment suspend' [NAME]='snapshot load' [FILE]='link' diff --git a/improve-journal-perf.patch b/improve-journal-perf.patch new file mode 100644 index 00000000..8f0eb8f7 --- /dev/null +++ b/improve-journal-perf.patch @@ -0,0 +1,304 @@ +From a4bcff5ba36115495994e9f9ba66074471de76ab Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 26 Oct 2012 03:24:03 +0200 +Subject: [PATCH] journal: introduce entry array chain cache + +When traversing entry array chains for a bisection or for retrieving an +item by index we previously always started at the beginning of the +chain. Since we tend to look at the same chains repeatedly, let's cache +where we have been the last time, and maybe we can skip ahead with this +the next time. + +This turns most bisections and index lookups from O(log(n)*log(n)) into +O(log(n)). More importantly however, we seek around on disk much less, +which is good to reduce buffer cache and seek times on rotational disks. +--- + .gitignore | 1 + + Makefile.am | 9 ++++ + src/journal/journal-file.c | 109 +++++++++++++++++++++++++++++++++++++--- + src/journal/journal-file.h | 3 ++ + src/journal/test-journal-enum.c | 53 +++++++++++++++++++ + src/shared/hashmap.c | 19 +++++++ + src/shared/hashmap.h | 3 ++ + 7 files changed, 189 insertions(+), 8 deletions(-) + create mode 100644 src/journal/test-journal-enum.c + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index edf8e7d..6c9deac 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -65,6 +65,9 @@ + /* n_data was the first entry we added after the initial file format design */ + #define HEADER_SIZE_MIN ALIGN64(offsetof(Header, n_data)) + ++/* How many entries to keep in the entry array chain cache at max */ ++#define CHAIN_CACHE_MAX 20 ++ + void journal_file_close(JournalFile *f) { + assert(f); + +@@ -97,6 +100,8 @@ void journal_file_close(JournalFile *f) { + if (f->mmap) + mmap_cache_unref(f->mmap); + ++ hashmap_free_free(f->chain_cache); ++ + #ifdef HAVE_XZ + free(f->compress_buffer); + #endif +@@ -1307,37 +1312,89 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st + return r; + } + ++typedef struct ChainCacheItem { ++ uint64_t first; /* the array at the begin of the chain */ ++ uint64_t array; /* the cached array */ ++ uint64_t begin; /* the first item in the cached array */ ++ uint64_t total; /* the total number of items in all arrays before this one in the chain */ ++} ChainCacheItem; ++ ++static void chain_cache_put( ++ Hashmap *h, ++ ChainCacheItem *ci, ++ uint64_t first, ++ uint64_t array, ++ uint64_t begin, ++ uint64_t total) { ++ ++ if (!ci) { ++ if (hashmap_size(h) >= CHAIN_CACHE_MAX) ++ ci = hashmap_steal_first(h); ++ else { ++ ci = new(ChainCacheItem, 1); ++ if (!ci) ++ return; ++ } ++ ++ ci->first = first; ++ ++ if (hashmap_put(h, &ci->first, ci) < 0) { ++ free(ci); ++ return; ++ } ++ } else ++ assert(ci->first == first); ++ ++ ci->array = array; ++ ci->begin = begin; ++ ci->total = total; ++} ++ + static int generic_array_get(JournalFile *f, + uint64_t first, + uint64_t i, + Object **ret, uint64_t *offset) { + + Object *o; +- uint64_t p = 0, a; ++ uint64_t p = 0, a, t = 0; + int r; ++ ChainCacheItem *ci; + + assert(f); + + a = first; ++ ++ /* Try the chain cache first */ ++ ci = hashmap_get(f->chain_cache, &first); ++ if (ci && i > ci->total) { ++ a = ci->array; ++ i -= ci->total; ++ t = ci->total; ++ } ++ + while (a > 0) { +- uint64_t n; ++ uint64_t k; + + r = journal_file_move_to_object(f, OBJECT_ENTRY_ARRAY, a, &o); + if (r < 0) + return r; + +- n = journal_file_entry_array_n_items(o); +- if (i < n) { ++ k = journal_file_entry_array_n_items(o); ++ if (i < k) { + p = le64toh(o->entry_array.items[i]); +- break; ++ goto found; + } + +- i -= n; ++ i -= k; ++ t += k; + a = le64toh(o->entry_array.next_entry_array_offset); + } + +- if (a <= 0 || p <= 0) +- return 0; ++ return 0; ++ ++found: ++ /* Let's cache this item for the next invocation */ ++ chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t); + + r = journal_file_move_to_object(f, OBJECT_ENTRY, p, &o); + if (r < 0) +@@ -1401,11 +1458,38 @@ static int generic_array_bisect(JournalFile *f, + bool subtract_one = false; + Object *o, *array = NULL; + int r; ++ ChainCacheItem *ci; + + assert(f); + assert(test_object); + ++ /* Start with the first array in the chain */ + a = first; ++ ++ ci = hashmap_get(f->chain_cache, &first); ++ if (ci && n > ci->total) { ++ /* Ah, we have iterated this bisection array chain ++ * previously! Let's see if we can skip ahead in the ++ * chain, as far as the last time. But we can't jump ++ * backwards in the chain, so let's check that ++ * first. */ ++ ++ r = test_object(f, ci->begin, needle); ++ if (r < 0) ++ return r; ++ ++ if (r == TEST_LEFT) { ++ /* OK, what we are looking for is right of th ++ * begin of this EntryArray, so let's jump ++ * straight to previously cached array in the ++ * chain */ ++ ++ a = ci->array; ++ n -= ci->total; ++ t = ci->total; ++ } ++ } ++ + while (a > 0) { + uint64_t left, right, k, lp; + +@@ -1486,6 +1570,9 @@ found: + if (subtract_one && t == 0 && i == 0) + return 0; + ++ /* Let's cache this item for the next invocation */ ++ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t); ++ + if (subtract_one && i == 0) + p = last_p; + else if (subtract_one) +@@ -2265,6 +2352,12 @@ int journal_file_open( + goto fail; + } + ++ f->chain_cache = hashmap_new(uint64_hash_func, uint64_compare_func); ++ if (!f->chain_cache) { ++ r = -ENOMEM; ++ goto fail; ++ } ++ + f->fd = open(f->path, f->flags|O_CLOEXEC, f->mode); + if (f->fd < 0) { + r = -errno; +diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h +index d87cbe4..cdbc8e4 100644 +--- a/src/journal/journal-file.h ++++ b/src/journal/journal-file.h +@@ -33,6 +33,7 @@ + #include "journal-def.h" + #include "util.h" + #include "mmap-cache.h" ++#include "hashmap.h" + + typedef struct JournalMetrics { + uint64_t max_use; +@@ -64,6 +65,8 @@ typedef struct JournalFile { + JournalMetrics metrics; + MMapCache *mmap; + ++ Hashmap *chain_cache; ++ + #ifdef HAVE_XZ + void *compress_buffer; + uint64_t compress_buffer_size; +diff --git a/src/shared/hashmap.c b/src/shared/hashmap.c +index ef78070..dcfbb67 100644 +--- a/src/shared/hashmap.c ++++ b/src/shared/hashmap.c +@@ -147,6 +147,25 @@ int trivial_compare_func(const void *a, const void *b) { + return a < b ? -1 : (a > b ? 1 : 0); + } + ++unsigned uint64_hash_func(const void *p) { ++ uint64_t u; ++ ++ assert_cc(sizeof(uint64_t) == 2*sizeof(unsigned)); ++ ++ u = *(const uint64_t*) p; ++ ++ return (unsigned) ((u >> 32) ^ u); ++} ++ ++int uint64_compare_func(const void *_a, const void *_b) { ++ uint64_t a, b; ++ ++ a = *(const uint64_t*) _a; ++ b = *(const uint64_t*) _b; ++ ++ return a < b ? -1 : (a > b ? 1 : 0); ++} ++ + Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func) { + bool b; + Hashmap *h; +diff --git a/src/shared/hashmap.h b/src/shared/hashmap.h +index 55dea0a..6fd71cf 100644 +--- a/src/shared/hashmap.h ++++ b/src/shared/hashmap.h +@@ -44,6 +44,9 @@ int string_compare_func(const void *a, const void *b); + unsigned trivial_hash_func(const void *p); + int trivial_compare_func(const void *a, const void *b); + ++unsigned uint64_hash_func(const void *p); ++int uint64_compare_func(const void *a, const void *b); ++ + Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func); + void hashmap_free(Hashmap *h); + void hashmap_free_free(Hashmap *h); +-- +1.8.1.1 + +From 34741aa3e2ee1e67a4cc735b7492aec13f0d822c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 26 Oct 2012 20:25:36 +0200 +Subject: [PATCH] journal: special case the trivial cache chain cache entry + +--- + src/journal/journal-file.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 6c9deac..3df099d 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -1328,6 +1328,11 @@ static void chain_cache_put( + uint64_t total) { + + if (!ci) { ++ /* If the chain item to cache for this chain is the ++ * first one it's not worth caching anything */ ++ if (array == first) ++ return; ++ + if (hashmap_size(h) >= CHAIN_CACHE_MAX) + ci = hashmap_steal_first(h); + else { +-- +1.8.1.1 + diff --git a/support-hybrid-suspend.patch b/support-hybrid-suspend.patch new file mode 100644 index 00000000..ad6b2bda --- /dev/null +++ b/support-hybrid-suspend.patch @@ -0,0 +1,680 @@ +From 6524990fdc98370ecba5d9f73e67161e8798c010 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 28 Oct 2012 00:49:04 +0200 +Subject: [PATCH] logind: support for hybrid sleep (i.e. suspend+hibernate at + the same time) + +--- + .gitignore | 1 + + Makefile.am | 17 ++++++++- + man/logind.conf.xml | 5 ++- + man/systemctl.xml | 5 +++ + man/systemd-suspend.service.xml | 42 +++++++++++++-------- + man/systemd.special.xml | 15 ++++++-- + src/core/special.h | 1 + + src/login/logind-button.c | 21 ++++++----- + src/login/logind-button.h | 1 + + src/login/logind-dbus.c | 69 +++++++++++++++++++++++++++++++---- + src/shared/util.c | 24 ++++++++++++ + src/shared/util.h | 1 + + src/sleep/sleep.c | 20 +++++++++- + src/systemctl/systemctl.c | 17 +++++++-- + src/test/test-sleep.c | 39 ++++++++++++++++++++ + units/.gitignore | 1 + + units/hybrid-sleep.target | 13 +++++++ + units/systemd-hybrid-sleep.service.in | 17 +++++++++ + 18 files changed, 264 insertions(+), 45 deletions(-) + create mode 100644 src/test/test-sleep.c + create mode 100644 units/hybrid-sleep.target + create mode 100644 units/systemd-hybrid-sleep.service.in + +Index: systemd-195/Makefile.am +=================================================================== +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -272,6 +272,7 @@ dist_systemunit_DATA = \ + units/nss-user-lookup.target \ + units/mail-transfer-agent.target \ + units/hibernate.target \ ++ units/hybrid-sleep.target \ + units/http-daemon.target \ + units/poweroff.target \ + units/reboot.target \ +@@ -334,6 +335,7 @@ nodist_systemunit_DATA = \ + units/rescue.service \ + units/user@.service \ + units/systemd-hibernate.service \ ++ units/systemd-hybrid-sleep.service \ + units/systemd-suspend.service \ + units/systemd-halt.service \ + units/systemd-poweroff.service \ +@@ -384,6 +386,7 @@ EXTRA_DIST += \ + units/systemd-udev-settle.service \ + units/debug-shell.service.in \ + units/systemd-hibernate.service.in \ ++ units/systemd-hybrid-sleep.service.in \ + units/systemd-suspend.service.in \ + units/quotaon.service.in \ + introspect.awk \ +@@ -539,6 +542,7 @@ MANPAGES_ALIAS = \ + man/systemd-shutdownd.socket.8 \ + man/systemd-shutdownd.8 \ + man/systemd-hibernate.service.8 \ ++ man/systemd-hybrid-sleep.service.8 \ + man/systemd-sleep.8 \ + man/systemd-shutdown.8 \ + man/systemd-poweroff.service.8 \ +@@ -612,6 +616,7 @@ man/systemd-initctl.8: man/systemd-initc + man/systemd-shutdownd.socket.8: man/systemd-shutdownd.service.8 + man/systemd-shutdownd.8: man/systemd-shutdownd.service.8 + man/systemd-hibernate.service.8: man/systemd-suspend.service.8 ++man/systemd-hybrid-sleep.service.8: man/systemd-suspend.service.8 + man/systemd-sleep.8: man/systemd-suspend.service.8 + man/systemd-shutdown.8: man/systemd-halt.service.8 + man/systemd-poweroff.service.8: man/systemd-halt.service.8 +Index: systemd-195/man/logind.conf.xml +=================================================================== +--- systemd-195.orig/man/logind.conf.xml ++++ systemd-195/man/logind.conf.xml +@@ -211,8 +211,10 @@ + poweroff, + reboot, + halt, +- kexec and +- hibernate. If ++ kexec, ++ suspend, ++ hibernate, and ++ hybrid-sleep. If + ignore logind will + never handle these keys. Otherwise the + specified action will be taken in the +Index: systemd-195/man/systemctl.xml +=================================================================== +--- systemd-195.orig/man/systemctl.xml ++++ systemd-195/man/systemctl.xml +@@ -1181,6 +1181,11 @@ + Hibernate the system. + + ++ hybrid-sleep ++ ++ Hibernate and suspend the system. ++ ++ + switch-root [ROOT] [INIT] + + Switches to a +Index: systemd-195/man/systemd-suspend.service.xml +=================================================================== +--- systemd-195.orig/man/systemd-suspend.service.xml ++++ systemd-195/man/systemd-suspend.service.xml +@@ -45,6 +45,7 @@ + + systemd-suspend.service + systemd-hibernate.service ++ systemd-hybrid-sleep.service + systemd-sleep + System sleep state logic + +@@ -52,6 +53,7 @@ + + systemd-suspend.service + systemd-hibernate.service ++ systemd-hybrid-sleep.service + /usr/lib/systemd/systemd-sleep + + +@@ -63,20 +65,26 @@ + suspend.target and is responsible + for the actual system suspend. Similar, + systemd-hibernate.service is +- pulled in by hibernate.target to +- executed the actual hibernation. +- +- Immediately before entering system suspend and +- hibernation +- systemd-suspend.service will run +- all executables in ++ pulled in by hibernate.target to ++ execute the actual hibernation. Finally, ++ systemd-hybrid-sleep.service is ++ pulled in by hybrid-sleep.target ++ to execute hybrid hibernation with system ++ suspend. ++ ++ Immediately before entering system suspend ++ and/or hibernation ++ systemd-suspend.service (and the ++ other mentioned units, respectively) will run all ++ executables in + /usr/lib/systemd/system-sleep/ + and pass two arguments to them. The first argument + will be "pre", the second either +- "suspend" or +- "hibernate", depending on the ++ "suspend", ++ "hibernate", or ++ "hybrid-sleep" depending on the + chosen action. Immediately after leaving system +- suspend and hibernation the same executables are run, ++ suspend and/or hibernation the same executables are run, + but the first argument is now + "post". All executables in this + directory are executed in parallel, and execution of +@@ -87,15 +95,17 @@ + /usr/lib/systemd/system-sleep/ + are intended for local use only and should be + considered hacks. If applications want to be notified +- of system suspend and resume there are much nicer +- interfaces available. ++ of system suspend/hibernation and resume there are ++ much nicer interfaces available. + + Note that +- systemd-suspend.service and +- systemd-hibernate.service should +- never be executed directly. Instead, trigger system +- sleep states with a command such as "systemctl +- suspend" or suchlike. ++ systemd-suspend.service, ++ systemd-hibernate.service and ++ systemd-hybrid-sleep.service ++ should never be executed directly. Instead, trigger ++ system sleep states with a command such as ++ "systemctl suspend" or ++ similar. + + + +Index: systemd-195/man/systemd.special.xml +=================================================================== +--- systemd-195.orig/man/systemd.special.xml ++++ systemd-195/man/systemd.special.xml +@@ -63,6 +63,7 @@ + graphical.target, + hibernate.target, + http-daemon.target, ++ hybrid-sleep.target, + halt.target, + kbrequest.target, + kexec.target, +@@ -303,6 +304,15 @@ + + + ++ hybrid-sleep.target ++ ++ A special target unit ++ for hibernating and suspending the ++ system at the same time. This pulls in ++ sleep.target. ++ ++ ++ + halt.target + + A special target unit +@@ -652,9 +662,8 @@ + + A special target unit + that is pulled in by +- suspend.target +- and +- hibernate.target ++ suspend.target, ++ hibernate.target and hybrid-sleep.target + and may be used to hook units + into the sleep state + logic. +Index: systemd-195/src/core/special.h +=================================================================== +--- systemd-195.orig/src/core/special.h ++++ systemd-195/src/core/special.h +@@ -37,6 +37,7 @@ + #define SPECIAL_EXIT_TARGET "exit.target" + #define SPECIAL_SUSPEND_TARGET "suspend.target" + #define SPECIAL_HIBERNATE_TARGET "hibernate.target" ++#define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" + + /* Special boot targets */ + #define SPECIAL_RESCUE_TARGET "rescue.target" +Index: systemd-195/src/login/logind-button.c +=================================================================== +--- systemd-195.orig/src/login/logind-button.c ++++ systemd-195/src/login/logind-button.c +@@ -163,16 +163,18 @@ static int button_handle( + [HANDLE_HALT] = "Halting...", + [HANDLE_KEXEC] = "Rebooting via kexec...", + [HANDLE_SUSPEND] = "Suspending...", +- [HANDLE_HIBERNATE] = "Hibernating..." ++ [HANDLE_HIBERNATE] = "Hibernating...", ++ [HANDLE_HYBRID_SLEEP] = "Hibernating and suspend...", + }; + + static const char * const target_table[_HANDLE_BUTTON_MAX] = { +- [HANDLE_POWEROFF] = "poweroff.target", +- [HANDLE_REBOOT] = "reboot.target", +- [HANDLE_HALT] = "halt.target", +- [HANDLE_KEXEC] = "kexec.target", +- [HANDLE_SUSPEND] = "suspend.target", +- [HANDLE_HIBERNATE] = "hibernate.target" ++ [HANDLE_POWEROFF] = SPECIAL_POWEROFF_TARGET, ++ [HANDLE_REBOOT] = SPECIAL_REBOOT_TARGET, ++ [HANDLE_HALT] = SPECIAL_HALT_TARGET, ++ [HANDLE_KEXEC] = SPECIAL_KEXEC_TARGET, ++ [HANDLE_SUSPEND] = SPECIAL_SUSPEND_TARGET, ++ [HANDLE_HIBERNATE] = SPECIAL_HIBERNATE_TARGET, ++ [HANDLE_HYBRID_SLEEP] = SPECIAL_HYBRID_SLEEP_TARGET + }; + + DBusError error; +@@ -193,7 +195,7 @@ static int button_handle( + return 0; + } + +- inhibit_operation = handle == HANDLE_SUSPEND || handle == HANDLE_HIBERNATE ? INHIBIT_SLEEP : INHIBIT_SHUTDOWN; ++ inhibit_operation = handle == HANDLE_SUSPEND || handle == HANDLE_HIBERNATE || handle == HANDLE_HYBRID_SLEEP ? INHIBIT_SLEEP : INHIBIT_SHUTDOWN; + + /* If the actual operation is inhibited, warn and fail */ + if (!ignore_inhibited && +@@ -305,7 +307,8 @@ static const char* const handle_button_t + [HANDLE_HALT] = "halt", + [HANDLE_KEXEC] = "kexec", + [HANDLE_SUSPEND] = "suspend", +- [HANDLE_HIBERNATE] = "hibernate" ++ [HANDLE_HIBERNATE] = "hibernate", ++ [HANDLE_HYBRID_SLEEP] = "hybrid-sleep", + }; + DEFINE_STRING_TABLE_LOOKUP(handle_button, HandleButton); + DEFINE_CONFIG_PARSE_ENUM(config_parse_handle_button, handle_button, HandleButton, "Failed to parse handle button setting"); +Index: systemd-195/src/login/logind-button.h +=================================================================== +--- systemd-195.orig/src/login/logind-button.h ++++ systemd-195/src/login/logind-button.h +@@ -32,6 +32,7 @@ typedef enum HandleButton { + HANDLE_KEXEC, + HANDLE_SUSPEND, + HANDLE_HIBERNATE, ++ HANDLE_HYBRID_SLEEP, + _HANDLE_BUTTON_MAX, + _HANDLE_BUTTON_INVALID = -1 + } HandleButton; +Index: systemd-195/src/login/logind-dbus.c +=================================================================== +--- systemd-195.orig/src/login/logind-dbus.c ++++ systemd-195/src/login/logind-dbus.c +@@ -145,6 +145,9 @@ + " \n" \ + " \n" \ + " \n" \ ++ " \n" \ ++ " \n" \ ++ " \n" \ + " \n" \ + " \n" \ + " \n" \ +@@ -157,6 +160,9 @@ + " \n" \ + " \n" \ + " \n" \ ++ " \n" \ ++ " \n" \ ++ " \n" \ + " \n" \ + " \n" \ + " \n" \ +@@ -1056,6 +1062,7 @@ static int bus_manager_can_shutdown_or_s + const char *action_multiple_sessions, + const char *action_ignore_inhibit, + const char *sleep_type, ++ const char *sleep_disk_type, + DBusError *error, + DBusMessage **_reply) { + +@@ -1087,6 +1094,17 @@ static int bus_manager_can_shutdown_or_s + } + } + ++ if (sleep_disk_type) { ++ r = can_sleep_disk(sleep_disk_type); ++ if (r < 0) ++ return r; ++ ++ if (r == 0) { ++ result = "na"; ++ goto finish; ++ } ++ } ++ + ul = dbus_bus_get_unix_user(connection, dbus_message_get_sender(message), error); + if (ul == (unsigned long) -1) + return -EIO; +@@ -1236,6 +1254,7 @@ static int bus_manager_do_shutdown_or_sl + const char *action_multiple_sessions, + const char *action_ignore_inhibit, + const char *sleep_type, ++ const char *sleep_disk_type, + DBusError *error, + DBusMessage **_reply) { + +@@ -1273,6 +1292,15 @@ static int bus_manager_do_shutdown_or_sl + return -ENOTSUP; + } + ++ if (sleep_disk_type) { ++ r = can_sleep_disk(sleep_disk_type); ++ if (r < 0) ++ return r; ++ ++ if (r == 0) ++ return -ENOTSUP; ++ } ++ + ul = dbus_bus_get_unix_user(connection, dbus_message_get_sender(message), error); + if (ul == (unsigned long) -1) + return -EIO; +@@ -2067,7 +2095,7 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.power-off", + "org.freedesktop.login1.power-off-multiple-sessions", + "org.freedesktop.login1.power-off-ignore-inhibit", +- NULL, ++ NULL, NULL, + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2079,7 +2107,7 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.reboot", + "org.freedesktop.login1.reboot-multiple-sessions", + "org.freedesktop.login1.reboot-ignore-inhibit", +- NULL, ++ NULL, NULL, + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2092,7 +2120,7 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.suspend", + "org.freedesktop.login1.suspend-multiple-sessions", + "org.freedesktop.login1.suspend-ignore-inhibit", +- "mem", ++ "mem", NULL, + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2104,7 +2132,20 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.hibernate", + "org.freedesktop.login1.hibernate-multiple-sessions", + "org.freedesktop.login1.hibernate-ignore-inhibit", +- "disk", ++ "disk", NULL, ++ &error, &reply); ++ if (r < 0) ++ return bus_send_error_reply(connection, message, &error, r); ++ ++ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "HybridSleep")) { ++ r = bus_manager_do_shutdown_or_sleep( ++ m, connection, message, ++ SPECIAL_HYBRID_SLEEP_TARGET, ++ INHIBIT_SLEEP, ++ "org.freedesktop.login1.hibernate", ++ "org.freedesktop.login1.hibernate-multiple-sessions", ++ "org.freedesktop.login1.hibernate-ignore-inhibit", ++ "disk", "suspend", + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2117,7 +2158,7 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.power-off", + "org.freedesktop.login1.power-off-multiple-sessions", + "org.freedesktop.login1.power-off-ignore-inhibit", +- NULL, ++ NULL, NULL, + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2128,7 +2169,7 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.reboot", + "org.freedesktop.login1.reboot-multiple-sessions", + "org.freedesktop.login1.reboot-ignore-inhibit", +- NULL, ++ NULL, NULL, + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2140,7 +2181,7 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.suspend", + "org.freedesktop.login1.suspend-multiple-sessions", + "org.freedesktop.login1.suspend-ignore-inhibit", +- "mem", ++ "mem", NULL, + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +@@ -2152,7 +2193,19 @@ static DBusHandlerResult manager_message + "org.freedesktop.login1.hibernate", + "org.freedesktop.login1.hibernate-multiple-sessions", + "org.freedesktop.login1.hibernate-ignore-inhibit", +- "disk", ++ "disk", NULL, ++ &error, &reply); ++ if (r < 0) ++ return bus_send_error_reply(connection, message, &error, r); ++ ++ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "CanHybridSleep")) { ++ r = bus_manager_can_shutdown_or_sleep( ++ m, connection, message, ++ INHIBIT_SLEEP, ++ "org.freedesktop.login1.hibernate", ++ "org.freedesktop.login1.hibernate-multiple-sessions", ++ "org.freedesktop.login1.hibernate-ignore-inhibit", ++ "disk", "suspend", + &error, &reply); + if (r < 0) + return bus_send_error_reply(connection, message, &error, r); +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -5726,6 +5726,30 @@ int can_sleep(const char *type) { + return false; + } + ++int can_sleep_disk(const char *type) { ++ char *w, *state; ++ size_t l, k; ++ int r; ++ _cleanup_free_ char *p = NULL; ++ ++ assert(type); ++ ++ r = read_one_line_file("/sys/power/disk", &p); ++ if (r < 0) ++ return r == -ENOENT ? 0 : r; ++ ++ k = strlen(type); ++ FOREACH_WORD_SEPARATOR(w, l, p, WHITESPACE, state) { ++ if (l == k && memcmp(w, type, l) == 0) ++ return true; ++ ++ if (l == k + 2 && w[0] == '[' && memcmp(w + 1, type, l - 2) == 0 && w[l-1] == ']') ++ return true; ++ } ++ ++ return false; ++} ++ + bool is_valid_documentation_url(const char *url) { + assert(url); + +Index: systemd-195/src/shared/util.h +=================================================================== +--- systemd-195.orig/src/shared/util.h ++++ systemd-195/src/shared/util.h +@@ -531,6 +531,7 @@ int setrlimit_closest(int resource, cons + int getenv_for_pid(pid_t pid, const char *field, char **_value); + + int can_sleep(const char *type); ++int can_sleep_disk(const char *type); + + bool is_valid_documentation_url(const char *url); + +Index: systemd-195/src/sleep/sleep.c +=================================================================== +--- systemd-195.orig/src/sleep/sleep.c ++++ systemd-195/src/sleep/sleep.c +@@ -46,7 +46,7 @@ int main(int argc, char *argv[]) { + + if (streq(argv[1], "suspend")) + verb = "mem"; +- else if (streq(argv[1], "hibernate")) ++ else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) + verb = "disk"; + else { + log_error("Unknown action '%s'.", argv[1]); +@@ -54,6 +54,16 @@ int main(int argc, char *argv[]) { + goto finish; + } + ++ /* Configure the hibernation mode */ ++ if (streq(argv[1], "hibernate")) { ++ if (write_one_line_file("/sys/power/disk", "platform") < 0) ++ write_one_line_file("/sys/power/disk", "shutdown"); ++ } else if (streq(argv[1], "hybrid-sleep")) { ++ if (write_one_line_file("/sys/power/disk", "suspend") < 0) ++ if (write_one_line_file("/sys/power/disk", "platform") < 0) ++ write_one_line_file("/sys/power/disk", "shutdown"); ++ } ++ + f = fopen("/sys/power/state", "we"); + if (!f) { + log_error("Failed to open /sys/power/state: %m"); +@@ -73,12 +83,18 @@ int main(int argc, char *argv[]) { + "MESSAGE=Suspending system...", + "SLEEP=suspend", + NULL); +- else ++ else if (streq(argv[1], "hibernate")) + log_struct(LOG_INFO, + MESSAGE_ID(SD_MESSAGE_SLEEP_START), + "MESSAGE=Hibernating system...", + "SLEEP=hibernate", + NULL); ++ else ++ log_struct(LOG_INFO, ++ MESSAGE_ID(SD_MESSAGE_SLEEP_START), ++ "MESSAGE=Hibernating and suspending system...", ++ "SLEEP=hybrid-sleep", ++ NULL); + + fputs(verb, f); + fputc('\n', f); +Index: systemd-195/src/systemctl/systemctl.c +=================================================================== +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -99,6 +99,7 @@ static enum action { + ACTION_EXIT, + ACTION_SUSPEND, + ACTION_HIBERNATE, ++ ACTION_HYBRID_SLEEP, + ACTION_RUNLEVEL2, + ACTION_RUNLEVEL3, + ACTION_RUNLEVEL4, +@@ -1608,6 +1609,8 @@ static enum action verb_to_action(const + return ACTION_SUSPEND; + else if (streq(verb, "hibernate")) + return ACTION_HIBERNATE; ++ else if (streq(verb, "hybrid-sleep")) ++ return ACTION_HYBRID_SLEEP; + else + return ACTION_INVALID; + } +@@ -1628,7 +1631,8 @@ static int start_unit(DBusConnection *bu + [ACTION_DEFAULT] = SPECIAL_DEFAULT_TARGET, + [ACTION_EXIT] = SPECIAL_EXIT_TARGET, + [ACTION_SUSPEND] = SPECIAL_SUSPEND_TARGET, +- [ACTION_HIBERNATE] = SPECIAL_HIBERNATE_TARGET ++ [ACTION_HIBERNATE] = SPECIAL_HIBERNATE_TARGET, ++ [ACTION_HYBRID_SLEEP] = SPECIAL_HYBRID_SLEEP_TARGET + }; + + int r, ret = 0; +@@ -1767,6 +1771,10 @@ static int reboot_with_logind(DBusConnec + method = "Hibernate"; + break; + ++ case ACTION_HYBRID_SLEEP: ++ method = "HybridSleep"; ++ break; ++ + default: + return -EINVAL; + } +@@ -1818,7 +1826,8 @@ static int start_special(DBusConnection + (a == ACTION_POWEROFF || + a == ACTION_REBOOT || + a == ACTION_SUSPEND || +- a == ACTION_HIBERNATE)) { ++ a == ACTION_HIBERNATE || ++ a == ACTION_HYBRID_SLEEP)) { + r = reboot_with_logind(bus, a); + if (r >= 0) + return r; +@@ -3999,7 +4008,8 @@ static int systemctl_help(void) { + " exit Request user instance exit\n" + " switch-root [ROOT] [INIT] Change to a different root file system\n" + " suspend Suspend the system\n" +- " hibernate Hibernate the system\n", ++ " hibernate Hibernate the system\n" ++ " hybrid-sleep Hibernate and suspend the system\n", + program_invocation_short_name); + + return 0; +@@ -4931,6 +4941,7 @@ static int systemctl_main(DBusConnection + { "kexec", EQUAL, 1, start_special }, + { "suspend", EQUAL, 1, start_special }, + { "hibernate", EQUAL, 1, start_special }, ++ { "hybrid-sleep", EQUAL, 1, start_special }, + { "default", EQUAL, 1, start_special }, + { "rescue", EQUAL, 1, start_special }, + { "emergency", EQUAL, 1, start_special }, +Index: systemd-195/units/hybrid-sleep.target +=================================================================== +--- /dev/null ++++ systemd-195/units/hybrid-sleep.target +@@ -0,0 +1,13 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++[Unit] ++Description=Hybrid Suspend+Hibernate ++Documentation=man:systemd.special(7) ++DefaultDependencies=no ++BindsTo=systemd-hybrid-sleep.service ++After=systemd-hybrid-sleep.service +Index: systemd-195/units/systemd-hybrid-sleep.service.in +=================================================================== +--- /dev/null ++++ systemd-195/units/systemd-hybrid-sleep.service.in +@@ -0,0 +1,17 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++[Unit] ++Description=Hybrid Suspend+Hibernate ++Documentation=man:systemd-suspend.service(8) ++DefaultDependencies=no ++Requires=sleep.target ++After=sleep.target ++ ++[Service] ++Type=oneshot ++ExecStart=@rootlibexecdir@/systemd-sleep hybrid-sleep diff --git a/systemd-mini.changes b/systemd-mini.changes index 5368f4e7..dfca29b1 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue Feb 19 11:20:31 CET 2013 - fcrozat@suse.com + +- Ensure journal is flushed on disk when systemd-logger is + installed for the first time. +- Add improve-journal-perf.patch: improve journal performance on + query. +- Add support-hybrid-suspend.patch: add support for hybrid suspend. +- Add forward-to-pmutils.patch: forward suspend/hibernation calls + to pm-utils, if installed (bnc#790157). + ------------------------------------------------------------------- Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index aed80312..61f18349 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -274,6 +274,12 @@ Patch129: handle-HOSTNAME.patch Patch130: systemctl-print-wall-on-if-successful.patch # PATCH-FIX-UPSTREAM improve-bash-completion.patch fcrozat@suse.com -- improve bash completion Patch131: improve-bash-completion.patch +# PATCH-FIX-UPSTREAM improve-journal-perf.patch fcrozat@suse.com -- improve journal performance +Patch132: improve-journal-perf.patch +# PATCH-FIX-UPSTREAM support-hybrid-suspend.patch fcrozat@suse.com -- support hybrid suspend +Patch133: support-hybrid-suspend.patch +# PATCH-FIX-OPENSUSE forward-to-pmutils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils +Patch134: forward-to-pmutils.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -606,9 +612,15 @@ cp %{SOURCE7} m4/ %patch129 -p1 %patch130 -p1 %patch131 -p1 +%patch132 -p1 +%patch133 -p1 +%patch134 -p1 %build autoreconf -fiv +# to remove after upgrading to systemd 196+ +rm -f man/{systemd.exec.5,logind.conf.5,systemctl.1,systemd-suspend.service.8,systemd.special.7,tmpfiles.d.5} + # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -878,6 +890,13 @@ fi %post -n libgudev-1_0-0 -p /sbin/ldconfig %postun -n libgudev-1_0-0 -p /sbin/ldconfig + +%post logger +if [ "$1" -eq 1 ]; then +# tell journal to start logging on disk if directory didn't exist before + systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : +fi + %endif %clean diff --git a/systemd.changes b/systemd.changes index 5368f4e7..dfca29b1 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue Feb 19 11:20:31 CET 2013 - fcrozat@suse.com + +- Ensure journal is flushed on disk when systemd-logger is + installed for the first time. +- Add improve-journal-perf.patch: improve journal performance on + query. +- Add support-hybrid-suspend.patch: add support for hybrid suspend. +- Add forward-to-pmutils.patch: forward suspend/hibernation calls + to pm-utils, if installed (bnc#790157). + ------------------------------------------------------------------- Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 9e0f143a..eb88b5b7 100644 --- a/systemd.spec +++ b/systemd.spec @@ -269,6 +269,12 @@ Patch129: handle-HOSTNAME.patch Patch130: systemctl-print-wall-on-if-successful.patch # PATCH-FIX-UPSTREAM improve-bash-completion.patch fcrozat@suse.com -- improve bash completion Patch131: improve-bash-completion.patch +# PATCH-FIX-UPSTREAM improve-journal-perf.patch fcrozat@suse.com -- improve journal performance +Patch132: improve-journal-perf.patch +# PATCH-FIX-UPSTREAM support-hybrid-suspend.patch fcrozat@suse.com -- support hybrid suspend +Patch133: support-hybrid-suspend.patch +# PATCH-FIX-OPENSUSE forward-to-pmutils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils +Patch134: forward-to-pmutils.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -601,9 +607,15 @@ cp %{SOURCE7} m4/ %patch129 -p1 %patch130 -p1 %patch131 -p1 +%patch132 -p1 +%patch133 -p1 +%patch134 -p1 %build autoreconf -fiv +# to remove after upgrading to systemd 196+ +rm -f man/{systemd.exec.5,logind.conf.5,systemctl.1,systemd-suspend.service.8,systemd.special.7,tmpfiles.d.5} + # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -873,6 +885,13 @@ fi %post -n libgudev-1_0-0 -p /sbin/ldconfig %postun -n libgudev-1_0-0 -p /sbin/ldconfig + +%post logger +if [ "$1" -eq 1 ]; then +# tell journal to start logging on disk if directory didn't exist before + systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : +fi + %endif %clean From 33265be21585e5433f0d9beafe6dda192991345de3bc5e14286d1bbe02f6c192 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 22 Feb 2013 16:23:15 +0000 Subject: [PATCH 129/221] Accepting request 156091 from Base:System - Add rbind-mount.patch: handle rbind mount points correctly (bnc#804575). (forwarded request 156080 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/156091 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=133 --- rbind-mount.patch | 47 ++++++++++++++++++++++++++++++++++++++++++++ systemd-mini.changes | 6 ++++++ systemd-mini.spec | 3 +++ systemd.changes | 6 ++++++ systemd.spec | 3 +++ 5 files changed, 65 insertions(+) create mode 100644 rbind-mount.patch diff --git a/rbind-mount.patch b/rbind-mount.patch new file mode 100644 index 00000000..c2eb6b4f --- /dev/null +++ b/rbind-mount.patch @@ -0,0 +1,47 @@ +From df77b11852d6b3495848c4123e7cbd9f099910f9 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Thu, 21 Feb 2013 15:40:52 +0100 +Subject: [PATCH] detect rbind as bind mount + +Correctly detect rbind mount option as bind mount. +Fixes https://bugzilla.novell.com/show_bug.cgi?id=804575. +--- + src/core/mount.c | 6 ++++++ + src/fstab-generator/fstab-generator.c | 4 +++- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index e3d298e..419cf27 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -329,6 +329,12 @@ static bool mount_is_bind(MountParameters *p) { + if (p->fstype && streq(p->fstype, "bind")) + return true; + ++ if (mount_test_option(p->options, "rbind")) ++ return true; ++ ++ if (p->fstype && streq(p->fstype, "rbind")) ++ return true; ++ + return false; + } + +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index bfedded..9db4123 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -178,7 +178,9 @@ static bool mount_is_bind(struct mntent *me) { + + return + hasmntopt(me, "bind") || +- streq(me->mnt_type, "bind"); ++ streq(me->mnt_type, "bind") || ++ hasmntopt(me, "rbind") || ++ streq(me->mnt_type, "rbind"); + } + + static bool mount_is_network(struct mntent *me) { +-- +1.8.1.1 + diff --git a/systemd-mini.changes b/systemd-mini.changes index dfca29b1..bad5b461 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com + +- Add rbind-mount.patch: handle rbind mount points correctly + (bnc#804575). + ------------------------------------------------------------------- Tue Feb 19 11:20:31 CET 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 61f18349..f8e9e65e 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -280,6 +280,8 @@ Patch132: improve-journal-perf.patch Patch133: support-hybrid-suspend.patch # PATCH-FIX-OPENSUSE forward-to-pmutils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils Patch134: forward-to-pmutils.patch +# PATCH-FIX-UPSTREAM rbind-mount.patch fcrozat@suse.com bnc#804575 -- Handle rbind mount point correctly +Patch135: rbind-mount.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -615,6 +617,7 @@ cp %{SOURCE7} m4/ %patch132 -p1 %patch133 -p1 %patch134 -p1 +%patch135 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index dfca29b1..bad5b461 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com + +- Add rbind-mount.patch: handle rbind mount points correctly + (bnc#804575). + ------------------------------------------------------------------- Tue Feb 19 11:20:31 CET 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index eb88b5b7..8ad72466 100644 --- a/systemd.spec +++ b/systemd.spec @@ -275,6 +275,8 @@ Patch132: improve-journal-perf.patch Patch133: support-hybrid-suspend.patch # PATCH-FIX-OPENSUSE forward-to-pmutils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils Patch134: forward-to-pmutils.patch +# PATCH-FIX-UPSTREAM rbind-mount.patch fcrozat@suse.com bnc#804575 -- Handle rbind mount point correctly +Patch135: rbind-mount.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -610,6 +612,7 @@ cp %{SOURCE7} m4/ %patch132 -p1 %patch133 -p1 %patch134 -p1 +%patch135 -p1 %build autoreconf -fiv From 0b12bae9431f359886f678e069cb29ce0f384e46080a13031f87060279a3e172 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 22 Mar 2013 11:08:23 +0000 Subject: [PATCH 130/221] Accepting request 160211 from Base:System Please checkin also to openSUSE 12.3 - udev: re-add persistent network rules (bnc#809843). add: 1026-re-add-persistent-net.patch - rebase all patches, ensure that they apply properly. OBS-URL: https://build.opensuse.org/request/show/160211 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=134 --- 1026-re-add-persistent-net.patch | 428 ++++++++++++++++++ agetty-overrides-term.patch | 23 +- ...r-empty-strings-in-strto-conversions.patch | 39 +- ...-load-fragment-improve-error-message.patch | 31 +- ...tor-state-file-name-in-error-message.patch | 15 +- delta-accept-t-option.patch | 13 +- do-not-make-sockets-dependent-on-lo.patch | 13 +- fix-bad-mem-access.patch | 13 +- fix-potential-bad-mem-access.patch | 13 +- ...enerator-error-message-on-duplicates.patch | 15 +- handle-HOSTNAME.patch | 4 +- hostnamectl-fix-parsing-no-ask-password.patch | 13 +- improve-overflow-checks.patch | 88 +--- ...l-send-always-send-syslog_identifier.patch | 19 +- localectl-fix-assertion.patch | 13 +- ...pport-systems-without-locale-archive.patch | 19 +- ...d-capability-making-seats-without-fb.patch | 23 +- ...-non-tty-non-x11-session-on-shutdown.patch | 13 +- rbind-mount.patch | 23 +- ...king-ignore-exit-status-main-process.patch | 13 +- socket-improve-error-message.patch | 13 +- socket-verbose-error-message.patch | 13 +- ...ctl-no-assert-on-reboot-without-dbus.patch | 13 +- ...l-verbose-message-on-missing-install.patch | 13 +- systemd-cgls-fix-piping-output.patch | 15 +- systemd.changes | 7 + systemd.spec | 5 + var-run-lock.patch | 4 +- 28 files changed, 608 insertions(+), 306 deletions(-) create mode 100644 1026-re-add-persistent-net.patch diff --git a/1026-re-add-persistent-net.patch b/1026-re-add-persistent-net.patch new file mode 100644 index 00000000..1b05d5ee --- /dev/null +++ b/1026-re-add-persistent-net.patch @@ -0,0 +1,428 @@ +Index: systemd-195/src/udev/rule_generator/75-persistent-net-generator.rules +=================================================================== +--- /dev/null ++++ systemd-195/src/udev/rule_generator/75-persistent-net-generator.rules +@@ -0,0 +1,102 @@ ++# do not edit this file, it will be overwritten on update ++ ++# these rules generate rules for persistent network device naming ++# ++# variables used to communicate: ++# MATCHADDR MAC address used for the match ++# MATCHID bus_id used for the match ++# MATCHDRV driver name used for the match ++# MATCHIFTYPE interface type match ++# COMMENT comment to add to the generated rule ++# INTERFACE_NAME requested name supplied by external tool ++# INTERFACE_NEW new interface name returned by rule writer ++ ++ACTION!="add", GOTO="persistent_net_generator_end" ++SUBSYSTEM!="net", GOTO="persistent_net_generator_end" ++ ++# ignore the interface if a name has already been set ++NAME=="?*", GOTO="persistent_net_generator_end" ++ ++# device name whitelist ++KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" ++ ++# ignore Xen virtual interfaces ++SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" ++ ++# read MAC address ++ENV{MATCHADDR}="$attr{address}" ++ ++# match interface type ++ENV{MATCHIFTYPE}="$attr{type}" ++ ++# ignore KVM virtual interfaces ++ENV{MATCHADDR}=="52:54:00:*", GOTO="persistent_net_generator_end" ++# ignore VMWare virtual interfaces ++ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", GOTO="persistent_net_generator_end" ++# ignore Hyper-V virtual interfaces ++ENV{MATCHADDR}=="00:15:5d:*", GOTO="persistent_net_generator_end" ++ ++# These vendors are known to violate the local MAC address assignment scheme ++# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom ++ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" ++# 3Com ++ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" ++# 3Com IBM PC; Imagen; Valid; Cisco; Apple ++ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" ++# Intel ++ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" ++# Olivetti ++ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" ++# CMC Masscomp; Silicon Graphics; Prime EXL ++ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" ++# Prominet Corporation Gigabit Ethernet Switch ++ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" ++# BTI (Bus-Tech, Inc.) IBM Mainframes ++ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" ++# Realtek ++ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist" ++# Novell 2000 ++ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" ++# Realtec ++ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" ++# Kingston Technologies ++ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" ++# Xensource ++ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" ++ ++# match interface dev_id ++ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" ++ ++# do not use "locally administered" MAC address ++ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" ++ ++# do not use empty address ++ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" ++ ++LABEL="globally_administered_whitelist" ++ ++# build comment line for generated rule: ++SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" ++SUBSYSTEMS=="usb", ATTRS{idVendor}=="?*", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" ++SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" ++SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" ++ ++# ibmveth likes to use "locally administered" MAC addresses ++DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" ++ ++# S/390 uses id matches only, do not use MAC address match ++SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" ++ ++# see if we got enough data to create a rule ++ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" ++ ++# default comment ++ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" ++ ++# write rule ++DRIVERS=="?*", IMPORT{program}="write_net_rules" ++ ++# rename interface if needed ++ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" ++ ++LABEL="persistent_net_generator_end" +Index: systemd-195/src/udev/rule_generator/rule_generator.functions +=================================================================== +--- /dev/null ++++ systemd-195/src/udev/rule_generator/rule_generator.functions +@@ -0,0 +1,113 @@ ++# functions used by the udev rule generator ++ ++# Copyright (C) 2006 Marco d'Itri ++ ++# 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. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++PATH='/usr/bin:/bin:/usr/sbin:/sbin' ++ ++# Read a single line from file $1 in the $DEVPATH directory. ++# The function must not return an error even if the file does not exist. ++sysread() { ++ local file="$1" ++ [ -e "/sys$DEVPATH/$file" ] || return 0 ++ local value ++ read value < "/sys$DEVPATH/$file" || return 0 ++ echo "$value" ++} ++ ++sysreadlink() { ++ local file="$1" ++ [ -e "/sys$DEVPATH/$file" ] || return 0 ++ readlink -f /sys$DEVPATH/$file 2> /dev/null || true ++} ++ ++# Return true if a directory is writeable. ++writeable() { ++ if ln -s test-link $1/.is-writeable 2> /dev/null; then ++ rm -f $1/.is-writeable ++ return 0 ++ else ++ return 1 ++ fi ++} ++ ++# Create a lock file for the current rules file. ++lock_rules_file() { ++ RUNDIR="/run/udev" ++ [ -e "$RUNDIR" ] || return 0 ++ ++ RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" ++ ++ retry=30 ++ while ! mkdir $RULES_LOCK 2> /dev/null; do ++ if [ $retry -eq 0 ]; then ++ echo "Cannot lock $RULES_FILE!" >&2 ++ exit 2 ++ fi ++ sleep 1 ++ retry=$(($retry - 1)) ++ done ++} ++ ++unlock_rules_file() { ++ [ "$RULES_LOCK" ] || return 0 ++ rmdir $RULES_LOCK || true ++} ++ ++# Choose the real rules file if it is writeable or a temporary file if not. ++# Both files should be checked later when looking for existing rules. ++choose_rules_file() { ++ RUNDIR="/run/udev" ++ local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" ++ [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 ++ ++ if writeable ${RULES_FILE%/*}; then ++ RO_RULES_FILE='/dev/null' ++ else ++ RO_RULES_FILE=$RULES_FILE ++ RULES_FILE=$tmp_rules_file ++ fi ++} ++ ++# Return the name of the first free device. ++raw_find_next_available() { ++ local links="$1" ++ ++ local basename=${links%%[ 0-9]*} ++ local max=-1 ++ for name in $links; do ++ local num=${name#$basename} ++ [ "$num" ] || num=0 ++ [ $num -gt $max ] && max=$num ++ done ++ ++ local max=$(($max + 1)) ++ # "name0" actually is just "name" ++ [ $max -eq 0 ] && return ++ echo "$max" ++} ++ ++# Find all rules matching a key (with action) and a pattern. ++find_all_rules() { ++ local key="$1" ++ local linkre="$2" ++ local match="$3" ++ ++ local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' ++ echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ ++ $RO_RULES_FILE \ ++ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ ++ 2>/dev/null) ++} +Index: systemd-195/Makefile.in +=================================================================== +--- systemd-195.orig/Makefile.in ++++ systemd-195/Makefile.in +@@ -1743,7 +1743,9 @@ am_v4l_id_OBJECTS = src/udev/v4l_id/v4l_ + v4l_id_OBJECTS = $(am_v4l_id_OBJECTS) + v4l_id_DEPENDENCIES = libudev.la + am__dist_udevhome_SCRIPTS_DIST = src/udev/keymap/findkeyboards \ +- src/udev/keymap/keyboard-force-release.sh ++ src/udev/keymap/keyboard-force-release.sh \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules + SCRIPTS = $(dist_bin_SCRIPTS) $(dist_udevhome_SCRIPTS) + AM_V_P = $(am__v_P_@AM_V@) + am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +@@ -2051,7 +2053,8 @@ am__dist_udevrules_DATA_DIST = rules/99- + src/udev/keymap/95-keymap.rules \ + src/udev/keymap/95-keyboard-force-release.rules \ + rules/75-probe_mtd.rules src/login/70-uaccess.rules \ +- src/login/70-power-switch.rules ++ src/login/70-power-switch.rules \ ++ src/udev/rule_generator/75-persistent-net-generator.rules + DATA = $(dbusinterface_DATA) $(dist_bashcompletion_DATA) \ + $(dist_dbuspolicy_DATA) $(dist_dbussystemservice_DATA) \ + $(dist_doc_DATA) $(dist_gatewayddocumentroot_DATA) \ +Index: systemd-195/Makefile.am +=================================================================== +--- systemd-195.orig/Makefile.am ++++ systemd-195/Makefile.am +@@ -2179,6 +2179,14 @@ EXTRA_DIST += \ + + + # ------------------------------------------------------------------------------ ++dist_udevhome_SCRIPTS = \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules ++ ++dist_udevrules_DATA += \ ++ src/udev/rule_generator/75-persistent-net-generator.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_KEYMAP + keymap_SOURCES = \ + src/udev/keymap/keymap.c +@@ -2206,7 +2214,7 @@ dist_udevrules_DATA += \ + src/udev/keymap/95-keymap.rules \ + src/udev/keymap/95-keyboard-force-release.rules + +-dist_udevhome_SCRIPTS = \ ++dist_udevhome_SCRIPTS += \ + src/udev/keymap/findkeyboards \ + src/udev/keymap/keyboard-force-release.sh + +Index: systemd-195/src/udev/rule_generator/write_net_rules +=================================================================== +--- /dev/null ++++ systemd-195/src/udev/rule_generator/write_net_rules +@@ -0,0 +1,145 @@ ++#!/bin/sh -e ++ ++# This script is run to create persistent network device naming rules ++# based on properties of the device. ++# If the interface needs to be renamed, INTERFACE_NEW= will be printed ++# on stdout to allow udev to IMPORT it. ++ ++# variables used to communicate: ++# MATCHADDR MAC address used for the match ++# MATCHID bus_id used for the match ++# MATCHDEVID dev_id used for the match ++# MATCHDRV driver name used for the match ++# MATCHIFTYPE interface type match ++# COMMENT comment to add to the generated rule ++# INTERFACE_NAME requested name supplied by external tool ++# INTERFACE_NEW new interface name returned by rule writer ++ ++# Copyright (C) 2006 Marco d'Itri ++# Copyright (C) 2007 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. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# debug, if UDEV_LOG= ++if [ -n "$UDEV_LOG" ]; then ++ if [ "$UDEV_LOG" -ge 7 ]; then ++ set -x ++ fi ++fi ++ ++RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' ++ ++if [ -e /usr/lib/udev/rule_generator.functions ]; then ++ . /usr/lib/udev/rule_generator.functions ++else ++ . /lib/udev/rule_generator.functions ++fi ++ ++interface_name_taken() { ++ local value="$(find_all_rules 'NAME=' $INTERFACE)" ++ if [ "$value" ]; then ++ return 0 ++ else ++ return 1 ++ fi ++} ++ ++find_next_available() { ++ raw_find_next_available "$(find_all_rules 'NAME=' "$1")" ++} ++ ++write_rule() { ++ local match="$1" ++ local name="$2" ++ local comment="$3" ++ ++ { ++ if [ "$PRINT_HEADER" ]; then ++ PRINT_HEADER= ++ echo "# This file was automatically generated by the $0" ++ echo "# program, run by the persistent-net-generator.rules rules file." ++ echo "#" ++ echo "# You can modify it, as long as you keep each rule on a single" ++ echo "# line, and change only the value of the NAME= key." ++ fi ++ ++ echo "" ++ [ "$comment" ] && echo "# $comment" ++ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" ++ } >> $RULES_FILE ++} ++ ++if [ -z "$INTERFACE" ]; then ++ echo "missing \$INTERFACE" >&2 ++ exit 1 ++fi ++ ++# Prevent concurrent processes from modifying the file at the same time. ++lock_rules_file ++ ++# Check if the rules file is writeable. ++choose_rules_file ++ ++# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces ++if [ "$MATCHADDR" ]; then ++ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" ++fi ++ ++if [ "$MATCHDRV" ]; then ++ match="$match, DRIVERS==\"$MATCHDRV\"" ++fi ++ ++if [ "$MATCHDEVID" ]; then ++ match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" ++fi ++ ++if [ "$MATCHID" ]; then ++ match="$match, KERNELS==\"$MATCHID\"" ++fi ++ ++if [ "$MATCHIFTYPE" ]; then ++ match="$match, ATTR{type}==\"$MATCHIFTYPE\"" ++fi ++ ++if [ -z "$match" ]; then ++ echo "missing valid match" >&2 ++ unlock_rules_file ++ exit 1 ++fi ++ ++basename=${INTERFACE%%[0-9]*} ++match="$match, KERNEL==\"$basename*\"" ++ ++if [ "$INTERFACE_NAME" ]; then ++ # external tools may request a custom name ++ COMMENT="$COMMENT (custom name provided by external tool)" ++ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then ++ INTERFACE=$INTERFACE_NAME; ++ echo "INTERFACE_NEW=$INTERFACE" ++ fi ++else ++ # if a rule using the current name already exists, find a new name ++ if interface_name_taken; then ++ INTERFACE="$basename$(find_next_available "$basename[0-9]*")" ++ # prevent INTERFACE from being "eth" instead of "eth0" ++ [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 ++ echo "INTERFACE_NEW=$INTERFACE" ++ fi ++fi ++ ++write_rule "$match" "$INTERFACE" "$COMMENT" ++ ++unlock_rules_file ++ ++exit 0 diff --git a/agetty-overrides-term.patch b/agetty-overrides-term.patch index 62aee284..84f3ff26 100644 --- a/agetty-overrides-term.patch +++ b/agetty-overrides-term.patch @@ -13,11 +13,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=870622 units/serial-getty@.service.m4 | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) -diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 -index b5875ce..810c23f 100644 ---- a/units/getty@.service.m4 -+++ b/units/getty@.service.m4 -@@ -43,9 +43,8 @@ IgnoreOnIsolate=yes +Index: systemd-195/units/getty@.service.m4 +=================================================================== +--- systemd-195.orig/units/getty@.service.m4 ++++ systemd-195/units/getty@.service.m4 +@@ -41,9 +41,8 @@ IgnoreOnIsolate=yes ConditionPathExists=/dev/tty0 [Service] @@ -28,11 +28,11 @@ index b5875ce..810c23f 100644 Type=idle Restart=always RestartSec=0 -diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 -index a6bbd71..c411dc1 100644 ---- a/units/serial-getty@.service.m4 -+++ b/units/serial-getty@.service.m4 -@@ -39,8 +39,7 @@ Before=getty.target +Index: systemd-195/units/serial-getty@.service.m4 +=================================================================== +--- systemd-195.orig/units/serial-getty@.service.m4 ++++ systemd-195/units/serial-getty@.service.m4 +@@ -37,8 +37,7 @@ Before=getty.target IgnoreOnIsolate=yes [Service] @@ -42,6 +42,3 @@ index a6bbd71..c411dc1 100644 Type=idle Restart=always RestartSec=0 --- -1.7.10.4 - diff --git a/check-for-empty-strings-in-strto-conversions.patch b/check-for-empty-strings-in-strto-conversions.patch index a0aff571..ce49372e 100644 --- a/check-for-empty-strings-in-strto-conversions.patch +++ b/check-for-empty-strings-in-strto-conversions.patch @@ -15,11 +15,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=870577 src/shared/util.c | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) -diff --git a/src/libsystemd-daemon/sd-daemon.c b/src/libsystemd-daemon/sd-daemon.c -index 863ac75..480db3b 100644 ---- a/src/libsystemd-daemon/sd-daemon.c -+++ b/src/libsystemd-daemon/sd-daemon.c -@@ -88,7 +88,7 @@ _sd_export_ int sd_listen_fds(int unset_environment) { +Index: systemd-195/src/libsystemd-daemon/sd-daemon.c +=================================================================== +--- systemd-195.orig/src/libsystemd-daemon/sd-daemon.c ++++ systemd-195/src/libsystemd-daemon/sd-daemon.c +@@ -88,7 +88,7 @@ _sd_export_ int sd_listen_fds(int unset_ goto finish; } @@ -28,7 +28,7 @@ index 863ac75..480db3b 100644 r = -EINVAL; goto finish; } -@@ -112,7 +112,7 @@ _sd_export_ int sd_listen_fds(int unset_environment) { +@@ -112,7 +112,7 @@ _sd_export_ int sd_listen_fds(int unset_ goto finish; } @@ -37,10 +37,10 @@ index 863ac75..480db3b 100644 r = -EINVAL; goto finish; } -diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c -index 4bf3147..9f5c07c 100644 ---- a/src/shared/conf-parser.c -+++ b/src/shared/conf-parser.c +Index: systemd-195/src/shared/conf-parser.c +=================================================================== +--- systemd-195.orig/src/shared/conf-parser.c ++++ systemd-195/src/shared/conf-parser.c @@ -865,7 +865,7 @@ int config_parse_mode( errno = 0; @@ -50,11 +50,11 @@ index 4bf3147..9f5c07c 100644 log_error("[%s:%u] Failed to parse mode value, ignoring: %s", filename, line, rvalue); return 0; } -diff --git a/src/shared/util.c b/src/shared/util.c -index 8ec83e4..23832fe 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -377,7 +377,7 @@ int safe_atou(const char *s, unsigned *ret_u) { +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -388,7 +388,7 @@ int safe_atou(const char *s, unsigned *r errno = 0; l = strtoul(s, &x, 0); @@ -63,7 +63,7 @@ index 8ec83e4..23832fe 100644 return errno ? -errno : -EINVAL; if ((unsigned long) (unsigned) l != l) -@@ -397,7 +397,7 @@ int safe_atoi(const char *s, int *ret_i) { +@@ -408,7 +408,7 @@ int safe_atoi(const char *s, int *ret_i) errno = 0; l = strtol(s, &x, 0); @@ -72,7 +72,7 @@ index 8ec83e4..23832fe 100644 return errno ? -errno : -EINVAL; if ((long) (int) l != l) -@@ -417,7 +417,7 @@ int safe_atollu(const char *s, long long unsigned *ret_llu) { +@@ -428,7 +428,7 @@ int safe_atollu(const char *s, long long errno = 0; l = strtoull(s, &x, 0); @@ -81,7 +81,7 @@ index 8ec83e4..23832fe 100644 return errno ? -errno : -EINVAL; *ret_llu = l; -@@ -434,7 +434,7 @@ int safe_atolli(const char *s, long long int *ret_lli) { +@@ -445,7 +445,7 @@ int safe_atolli(const char *s, long long errno = 0; l = strtoll(s, &x, 0); @@ -90,6 +90,3 @@ index 8ec83e4..23832fe 100644 return errno ? -errno : -EINVAL; *ret_lli = l; --- -1.7.10.4 - diff --git a/core-load-fragment-improve-error-message.patch b/core-load-fragment-improve-error-message.patch index f860a4cb..850698dd 100644 --- a/core-load-fragment-improve-error-message.patch +++ b/core-load-fragment-improve-error-message.patch @@ -13,11 +13,11 @@ https://bugs.freedesktop.org/show_bug.cgi?id=56874 src/core/load-fragment.c | 69 +++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 38 deletions(-) -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index 6759255..01f9484 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -86,7 +86,7 @@ int config_parse_unit_deps( +Index: systemd-195/src/core/load-fragment.c +=================================================================== +--- systemd-195.orig/src/core/load-fragment.c ++++ systemd-195/src/core/load-fragment.c +@@ -85,7 +85,7 @@ int config_parse_unit_deps( assert(rvalue); FOREACH_WORD_QUOTED(w, l, rvalue, state) { @@ -26,7 +26,7 @@ index 6759255..01f9484 100644 int r; t = strndup(w, l); -@@ -94,15 +94,13 @@ int config_parse_unit_deps( +@@ -93,15 +93,13 @@ int config_parse_unit_deps( return -ENOMEM; k = unit_name_printf(u, t); @@ -44,7 +44,7 @@ index 6759255..01f9484 100644 } return 0; -@@ -757,22 +755,25 @@ int config_parse_exec_cpu_affinity( +@@ -739,22 +737,25 @@ int config_parse_exec_cpu_affinity( assert(data); FOREACH_WORD_QUOTED(w, l, rvalue, state) { @@ -76,7 +76,7 @@ index 6759255..01f9484 100644 return 0; } -@@ -849,7 +850,8 @@ int config_parse_exec_secure_bits( +@@ -831,7 +832,8 @@ int config_parse_exec_secure_bits( else if (first_word(w, "noroot-locked")) c->secure_bits |= SECURE_NOROOT_LOCKED; else { @@ -86,7 +86,7 @@ index 6759255..01f9484 100644 return 0; } } -@@ -890,7 +892,7 @@ int config_parse_bounding_set( +@@ -872,7 +874,7 @@ int config_parse_bounding_set( * interface. */ FOREACH_WORD_QUOTED(w, l, rvalue, state) { @@ -95,7 +95,7 @@ index 6759255..01f9484 100644 int r; cap_value_t cap; -@@ -899,10 +901,9 @@ int config_parse_bounding_set( +@@ -881,10 +883,9 @@ int config_parse_bounding_set( return -ENOMEM; r = cap_from_name(t, &cap); @@ -108,7 +108,7 @@ index 6759255..01f9484 100644 continue; } -@@ -968,7 +969,7 @@ int config_parse_unit_cgroup( +@@ -950,7 +951,7 @@ int config_parse_unit_cgroup( char *state; FOREACH_WORD_QUOTED(w, l, rvalue, state) { @@ -117,7 +117,7 @@ index 6759255..01f9484 100644 int r; t = strndup(w, l); -@@ -976,22 +977,17 @@ int config_parse_unit_cgroup( +@@ -958,22 +959,17 @@ int config_parse_unit_cgroup( return -ENOMEM; k = unit_full_printf(u, t); @@ -145,7 +145,7 @@ index 6759255..01f9484 100644 return 0; } } -@@ -1351,33 +1347,30 @@ int config_parse_service_sockets( +@@ -1333,33 +1329,30 @@ int config_parse_service_sockets( assert(data); FOREACH_WORD_QUOTED(w, l, rvalue, state) { @@ -184,7 +184,7 @@ index 6759255..01f9484 100644 } return 0; -@@ -2105,17 +2098,17 @@ int config_parse_syscall_filter( +@@ -2087,17 +2080,17 @@ int config_parse_syscall_filter( FOREACH_WORD_QUOTED(w, l, rvalue, state) { int id; @@ -205,6 +205,3 @@ index 6759255..01f9484 100644 continue; } --- -1.7.10.4 - diff --git a/crypsetup-generator-state-file-name-in-error-message.patch b/crypsetup-generator-state-file-name-in-error-message.patch index 890c6e29..ccb1c895 100644 --- a/crypsetup-generator-state-file-name-in-error-message.patch +++ b/crypsetup-generator-state-file-name-in-error-message.patch @@ -7,11 +7,11 @@ Subject: [PATCH] cryptsetup-generator: state file name in error messages src/cryptsetup/cryptsetup-generator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index ef16fbc..6e7b707 100644 ---- a/src/cryptsetup/cryptsetup-generator.c -+++ b/src/cryptsetup/cryptsetup-generator.c -@@ -108,7 +108,7 @@ static int create_disk( +Index: systemd-195/src/cryptsetup/cryptsetup-generator.c +=================================================================== +--- systemd-195.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-195/src/cryptsetup/cryptsetup-generator.c +@@ -230,7 +230,7 @@ static int create_disk( f = fopen(p, "wxe"); if (!f) { r = -errno; @@ -20,7 +20,7 @@ index ef16fbc..6e7b707 100644 goto fail; } -@@ -160,7 +160,7 @@ static int create_disk( +@@ -283,7 +283,7 @@ static int create_disk( if (ferror(f)) { r = -errno; @@ -29,6 +29,3 @@ index ef16fbc..6e7b707 100644 goto fail; } --- -1.7.10.4 - diff --git a/delta-accept-t-option.patch b/delta-accept-t-option.patch index d0554b0a..4717c018 100644 --- a/delta-accept-t-option.patch +++ b/delta-accept-t-option.patch @@ -9,11 +9,11 @@ so let's do that. src/delta/delta.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/delta/delta.c b/src/delta/delta.c -index cc34208..a65cea5 100644 ---- a/src/delta/delta.c -+++ b/src/delta/delta.c -@@ -352,7 +352,7 @@ static int parse_argv(int argc, char *argv[]) { +Index: systemd-195/src/delta/delta.c +=================================================================== +--- systemd-195.orig/src/delta/delta.c ++++ systemd-195/src/delta/delta.c +@@ -375,7 +375,7 @@ static int parse_argv(int argc, char *ar assert(argc >= 1); assert(argv); @@ -22,6 +22,3 @@ index cc34208..a65cea5 100644 switch (c) { --- -1.7.10.4 - diff --git a/do-not-make-sockets-dependent-on-lo.patch b/do-not-make-sockets-dependent-on-lo.patch index 247a7c80..7c5e78b8 100644 --- a/do-not-make-sockets-dependent-on-lo.patch +++ b/do-not-make-sockets-dependent-on-lo.patch @@ -9,11 +9,11 @@ with BindToDevice=lo would never be activated. src/core/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/core/socket.c b/src/core/socket.c -index fcbcdbe..d755040 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -308,7 +308,7 @@ static int socket_add_device_link(Socket *s) { +Index: systemd-195/src/core/socket.c +=================================================================== +--- systemd-195.orig/src/core/socket.c ++++ systemd-195/src/core/socket.c +@@ -293,7 +293,7 @@ static int socket_add_device_link(Socket assert(s); @@ -22,6 +22,3 @@ index fcbcdbe..d755040 100644 return 0; if (asprintf(&t, "/sys/subsystem/net/devices/%s", s->bind_to_device) < 0) --- -1.7.10.4 - diff --git a/fix-bad-mem-access.patch b/fix-bad-mem-access.patch index 18cf4aa2..878ed0a9 100644 --- a/fix-bad-mem-access.patch +++ b/fix-bad-mem-access.patch @@ -7,11 +7,11 @@ Subject: [PATCH] util: fix bad memory access src/shared/util.c | 1 - 1 file changed, 1 deletion(-) -diff --git a/src/shared/util.c b/src/shared/util.c -index 0161f3e..8e14096 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -439,7 +439,6 @@ int get_parent_of_pid(pid_t pid, pid_t *_ppid) { +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -543,7 +543,6 @@ int get_parent_of_pid(pid_t pid, pid_t * if (!fgets(line, sizeof(line), f)) { r = feof(f) ? -EIO : -errno; @@ -19,6 +19,3 @@ index 0161f3e..8e14096 100644 return r; } --- -1.7.10.4 - diff --git a/fix-potential-bad-mem-access.patch b/fix-potential-bad-mem-access.patch index db90af84..3c3e0c98 100644 --- a/fix-potential-bad-mem-access.patch +++ b/fix-potential-bad-mem-access.patch @@ -11,11 +11,11 @@ If failing, print just the offending mount flag. src/core/load-fragment.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index 01f9484..6933e1a 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -1101,15 +1101,22 @@ int config_parse_exec_mount_flags( +Index: systemd-195/src/core/load-fragment.c +=================================================================== +--- systemd-195.orig/src/core/load-fragment.c ++++ systemd-195/src/core/load-fragment.c +@@ -1083,15 +1083,22 @@ int config_parse_exec_mount_flags( assert(rvalue); assert(data); @@ -43,6 +43,3 @@ index 01f9484..6933e1a 100644 return 0; } } --- -1.7.10.4 - diff --git a/fstab-generator-error-message-on-duplicates.patch b/fstab-generator-error-message-on-duplicates.patch index ecc43782..33ec3f26 100644 --- a/fstab-generator-error-message-on-duplicates.patch +++ b/fstab-generator-error-message-on-duplicates.patch @@ -17,11 +17,11 @@ some confusion, so give a hint what migt be wrong. src/fstab-generator/fstab-generator.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index 7b3bf11..ba55f2c 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -111,7 +111,10 @@ static int add_swap(const char *what, struct mntent *me) { +Index: systemd-195/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-195.orig/src/fstab-generator/fstab-generator.c ++++ systemd-195/src/fstab-generator/fstab-generator.c +@@ -111,7 +111,10 @@ static int add_swap(const char *what, st f = fopen(unit, "wxe"); if (!f) { r = -errno; @@ -33,7 +33,7 @@ index 7b3bf11..ba55f2c 100644 goto finish; } -@@ -254,7 +257,10 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { +@@ -262,7 +265,10 @@ static int add_mount(const char *what, c f = fopen(unit, "wxe"); if (!f) { r = -errno; @@ -45,6 +45,3 @@ index 7b3bf11..ba55f2c 100644 goto finish; } --- -1.7.10.4 - diff --git a/handle-HOSTNAME.patch b/handle-HOSTNAME.patch index b2bf4825..56aa50f3 100644 --- a/handle-HOSTNAME.patch +++ b/handle-HOSTNAME.patch @@ -13,7 +13,7 @@ Index: systemd-195/src/hostname/hostnamed.c return 0; } -@@ -203,6 +207,7 @@ static int write_data_hostname(void) { +@@ -204,6 +208,7 @@ static int write_data_hostname(void) { static int write_data_static_hostname(void) { @@ -21,7 +21,7 @@ Index: systemd-195/src/hostname/hostnamed.c if (isempty(data[PROP_STATIC_HOSTNAME])) { if (unlink("/etc/hostname") < 0) -@@ -211,7 +216,11 @@ static int write_data_static_hostname(vo +@@ -212,7 +217,11 @@ static int write_data_static_hostname(vo return 0; } diff --git a/hostnamectl-fix-parsing-no-ask-password.patch b/hostnamectl-fix-parsing-no-ask-password.patch index 490724d0..ac629848 100644 --- a/hostnamectl-fix-parsing-no-ask-password.patch +++ b/hostnamectl-fix-parsing-no-ask-password.patch @@ -7,11 +7,11 @@ Subject: [PATCH] hostnamectl: fix parsing of --no-ask-password src/hostname/hostnamectl.c | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c -index b7ae5cc..265c7ec 100644 ---- a/src/hostname/hostnamectl.c -+++ b/src/hostname/hostnamectl.c -@@ -403,6 +403,10 @@ static int parse_argv(int argc, char *argv[]) { +Index: systemd-195/src/hostname/hostnamectl.c +=================================================================== +--- systemd-195.orig/src/hostname/hostnamectl.c ++++ systemd-195/src/hostname/hostnamectl.c +@@ -402,6 +402,10 @@ static int parse_argv(int argc, char *ar arg_set_static = true; break; @@ -22,6 +22,3 @@ index b7ae5cc..265c7ec 100644 case '?': return -EINVAL; --- -1.7.10.4 - diff --git a/improve-overflow-checks.patch b/improve-overflow-checks.patch index 7a3a1787..c4952082 100644 --- a/improve-overflow-checks.patch +++ b/improve-overflow-checks.patch @@ -7,99 +7,27 @@ Subject: [PATCH] util: fix possible integer overflows src/shared/util.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/src/shared/util.c b/src/shared/util.c -index 2d4a4c1..e2f8b1f 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -148,6 +148,9 @@ usec_t timespec_load(const struct timespec *ts) { +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -152,6 +152,9 @@ usec_t timespec_load(const struct timesp ts->tv_nsec == (long) -1) return (usec_t) -1; -+ if (USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) ++ if ((usec_t) ts->tv_sec > (UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / USEC_PER_SEC) + return (usec_t) -1; + return (usec_t) ts->tv_sec * USEC_PER_SEC + (usec_t) ts->tv_nsec / NSEC_PER_USEC; -@@ -175,6 +178,9 @@ usec_t timeval_load(const struct timeval *tv) { +@@ -179,6 +182,9 @@ usec_t timeval_load(const struct timeval tv->tv_usec == (suseconds_t) -1) return (usec_t) -1; -+ if (USEC_PER_SEC > (UINT64_MAX - tv->tv_usec) / (usec_t) tv->tv_sec) ++ if ((usec_t) tv->tv_sec > (UINT64_MAX - tv->tv_usec) / USEC_PER_SEC) + return (usec_t) -1; + return (usec_t) tv->tv_sec * USEC_PER_SEC + (usec_t) tv->tv_usec; --- -1.7.10.4 - -From 49371bb50e0fe6e9e90309a20006bcfd9e2fa8f4 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Mon, 29 Oct 2012 15:49:34 -0400 -Subject: [PATCH] util: avoid divide by zero FPE - -In early userspace, if kernel initialization happens extremely quickly, -a call to systemd-timestamp can potentially result in division by zero. -Ensure that the check in timespec_load, which only makes sense if tv_sec -is greater than zero, is guarded by this condition. ---- - src/shared/util.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index e2f8b1f..9a45e60 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -148,7 +148,8 @@ usec_t timespec_load(const struct timespec *ts) { - ts->tv_nsec == (long) -1) - return (usec_t) -1; - -- if (USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) -+ if (ts->tv_sec > 0 && -+ USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) - return (usec_t) -1; - - return --- -1.7.10.4 - -From fd09c93de9337c3df566180d04368353bb3662e7 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Mon, 29 Oct 2012 21:04:47 +0100 -Subject: [PATCH] util: improve overflow checks - -commit 49371bb fixed the observed division by zero, but missed another -occurrence of the same bug. It was also not the optimal fix. We can -simply make the divisor a constant by swapping it with the compared -value. ---- - src/shared/util.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 9a45e60..8ec83e4 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -148,8 +148,7 @@ usec_t timespec_load(const struct timespec *ts) { - ts->tv_nsec == (long) -1) - return (usec_t) -1; - -- if (ts->tv_sec > 0 && -- USEC_PER_SEC > ((UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / (usec_t) ts->tv_sec)) -+ if ((usec_t) ts->tv_sec > (UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / USEC_PER_SEC) - return (usec_t) -1; - - return -@@ -179,7 +178,7 @@ usec_t timeval_load(const struct timeval *tv) { - tv->tv_usec == (suseconds_t) -1) - return (usec_t) -1; - -- if (USEC_PER_SEC > (UINT64_MAX - tv->tv_usec) / (usec_t) tv->tv_sec) -+ if ((usec_t) tv->tv_sec > (UINT64_MAX - tv->tv_usec) / USEC_PER_SEC) - return (usec_t) -1; - - return --- -1.7.10.4 - diff --git a/journal-send-always-send-syslog_identifier.patch b/journal-send-always-send-syslog_identifier.patch index 2a29345b..37af56fd 100644 --- a/journal-send-always-send-syslog_identifier.patch +++ b/journal-send-always-send-syslog_identifier.patch @@ -8,11 +8,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=872193 src/journal/journal-send.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) -diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c -index 7a91569..bd8f887 100644 ---- a/src/journal/journal-send.c -+++ b/src/journal/journal-send.c -@@ -219,6 +219,7 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { +Index: systemd-195/src/journal/journal-send.c +=================================================================== +--- systemd-195.orig/src/journal/journal-send.c ++++ systemd-195/src/journal/journal-send.c +@@ -208,6 +208,7 @@ _public_ int sd_journal_sendv(const stru * be a tmpfs, and one that is available from early boot on * and where unprivileged users can create files. */ char path[] = "/dev/shm/journal.XXXXXX"; @@ -20,7 +20,7 @@ index 7a91569..bd8f887 100644 if (_unlikely_(!iov)) return -EINVAL; -@@ -228,7 +229,7 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { +@@ -217,7 +218,7 @@ _public_ int sd_journal_sendv(const stru saved_errno = errno; @@ -29,7 +29,7 @@ index 7a91569..bd8f887 100644 l = alloca(sizeof(uint64_t) * n); for (i = 0; i < n; i++) { -@@ -245,6 +246,9 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { +@@ -234,6 +235,9 @@ _public_ int sd_journal_sendv(const stru goto finish; } @@ -39,7 +39,7 @@ index 7a91569..bd8f887 100644 nl = memchr(iov[i].iov_base, '\n', iov[i].iov_len); if (nl) { if (_unlikely_(nl < c)) { -@@ -280,6 +284,20 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { +@@ -269,6 +273,20 @@ _public_ int sd_journal_sendv(const stru IOVEC_SET_STRING(w[j++], "\n"); } @@ -60,6 +60,3 @@ index 7a91569..bd8f887 100644 fd = journal_fd(); if (_unlikely_(fd < 0)) { r = fd; --- -1.7.10.4 - diff --git a/localectl-fix-assertion.patch b/localectl-fix-assertion.patch index 08ce257e..6b1dac55 100644 --- a/localectl-fix-assertion.patch +++ b/localectl-fix-assertion.patch @@ -9,11 +9,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=882212 src/locale/localectl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/locale/localectl.c b/src/locale/localectl.c -index fa73bca..383a17d 100644 ---- a/src/locale/localectl.c -+++ b/src/locale/localectl.c -@@ -537,7 +537,7 @@ static int set_x11_keymap(DBusConnection *bus, char **args, unsigned n) { +Index: systemd-195/src/locale/localectl.c +=================================================================== +--- systemd-195.orig/src/locale/localectl.c ++++ systemd-195/src/locale/localectl.c +@@ -535,7 +535,7 @@ static int set_x11_keymap(DBusConnection layout = args[1]; model = n > 2 ? args[2] : ""; variant = n > 3 ? args[3] : ""; @@ -22,6 +22,3 @@ index fa73bca..383a17d 100644 b = arg_convert; return bus_method_call_with_reply( --- -1.7.10.4 - diff --git a/localectl-support-systems-without-locale-archive.patch b/localectl-support-systems-without-locale-archive.patch index d5498fe9..fffba30d 100644 --- a/localectl-support-systems-without-locale-archive.patch +++ b/localectl-support-systems-without-locale-archive.patch @@ -12,11 +12,11 @@ Given that glibc supports both ways, localectl should too. src/locale/localectl.c | 101 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 85 insertions(+), 16 deletions(-) -diff --git a/src/locale/localectl.c b/src/locale/localectl.c -index 5d35f9c..b3acb3e 100644 ---- a/src/locale/localectl.c -+++ b/src/locale/localectl.c -@@ -266,7 +266,7 @@ finish: +Index: systemd-195/src/locale/localectl.c +=================================================================== +--- systemd-195.orig/src/locale/localectl.c ++++ systemd-195/src/locale/localectl.c +@@ -265,7 +265,7 @@ finish: return r; } @@ -25,7 +25,7 @@ index 5d35f9c..b3acb3e 100644 /* Stolen from glibc... */ struct locarhead { -@@ -304,21 +304,15 @@ static int list_locales(DBusConnection *bus, char **args, unsigned n) { +@@ -303,21 +303,15 @@ static int list_locales(DBusConnection * const struct namehashent *e; const void *p = MAP_FAILED; _cleanup_close_ int fd = -1; @@ -49,7 +49,7 @@ index 5d35f9c..b3acb3e 100644 r = -errno; goto finish; } -@@ -380,15 +374,93 @@ static int list_locales(DBusConnection *bus, char **args, unsigned n) { +@@ -378,15 +372,93 @@ static int list_locales(DBusConnection * } } @@ -146,7 +146,7 @@ index 5d35f9c..b3acb3e 100644 strv_sort(l); pager_open_if_enabled(); -@@ -399,10 +471,7 @@ static int list_locales(DBusConnection *bus, char **args, unsigned n) { +@@ -397,10 +469,7 @@ static int list_locales(DBusConnection * r = 0; finish: @@ -158,6 +158,3 @@ index 5d35f9c..b3acb3e 100644 return r; } --- -1.7.10.4 - diff --git a/logind-capability-making-seats-without-fb.patch b/logind-capability-making-seats-without-fb.patch index 3bb260cb..a74de2a5 100644 --- a/logind-capability-making-seats-without-fb.patch +++ b/logind-capability-making-seats-without-fb.patch @@ -11,10 +11,10 @@ file 71-seat.rules.in: All framebuffer devices have this tag src/login/logind.c | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) -diff --git a/src/login/71-seat.rules.in b/src/login/71-seat.rules.in -index f554d7f..4f1a9a5 100644 ---- a/src/login/71-seat.rules.in -+++ b/src/login/71-seat.rules.in +Index: systemd-195/src/login/71-seat.rules.in +=================================================================== +--- systemd-195.orig/src/login/71-seat.rules.in ++++ systemd-195/src/login/71-seat.rules.in @@ -10,7 +10,7 @@ ACTION=="remove", GOTO="seat_end" TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" @@ -24,11 +24,11 @@ index f554d7f..4f1a9a5 100644 SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat" # 'Plugable' USB hub, sound, network, graphics adapter -diff --git a/src/login/logind.c b/src/login/logind.c -index 6438631..6776229 100644 ---- a/src/login/logind.c -+++ b/src/login/logind.c -@@ -459,11 +459,7 @@ int manager_enumerate_devices(Manager *m) { +Index: systemd-195/src/login/logind.c +=================================================================== +--- systemd-195.orig/src/login/logind.c ++++ systemd-195/src/login/logind.c +@@ -450,11 +450,7 @@ int manager_enumerate_devices(Manager *m goto finish; } @@ -41,7 +41,7 @@ index 6438631..6776229 100644 if (r < 0) goto finish; -@@ -1295,11 +1291,7 @@ static int manager_connect_udev(Manager *m) { +@@ -1286,11 +1282,7 @@ static int manager_connect_udev(Manager if (!m->udev_seat_monitor) return -ENOMEM; @@ -54,6 +54,3 @@ index 6438631..6776229 100644 if (r < 0) return r; --- -1.7.10.4 - diff --git a/logind-ignore-non-tty-non-x11-session-on-shutdown.patch b/logind-ignore-non-tty-non-x11-session-on-shutdown.patch index 163f41d6..116d101a 100644 --- a/logind-ignore-non-tty-non-x11-session-on-shutdown.patch +++ b/logind-ignore-non-tty-non-x11-session-on-shutdown.patch @@ -9,11 +9,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=890827 src/login/logind-dbus.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index 77a06f2..d64debe 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -979,9 +979,12 @@ static int have_multiple_sessions( +Index: systemd-195/src/login/logind-dbus.c +=================================================================== +--- systemd-195.orig/src/login/logind-dbus.c ++++ systemd-195/src/login/logind-dbus.c +@@ -971,9 +971,12 @@ static int have_multiple_sessions( assert(m); @@ -28,6 +28,3 @@ index 77a06f2..d64debe 100644 return true; return false; --- -1.7.10.4 - diff --git a/rbind-mount.patch b/rbind-mount.patch index c2eb6b4f..8d8bb148 100644 --- a/rbind-mount.patch +++ b/rbind-mount.patch @@ -10,11 +10,11 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=804575. src/fstab-generator/fstab-generator.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) -diff --git a/src/core/mount.c b/src/core/mount.c -index e3d298e..419cf27 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -329,6 +329,12 @@ static bool mount_is_bind(MountParameters *p) { +Index: systemd-195/src/core/mount.c +=================================================================== +--- systemd-195.orig/src/core/mount.c ++++ systemd-195/src/core/mount.c +@@ -320,6 +320,12 @@ static bool mount_is_bind(MountParameter if (p->fstype && streq(p->fstype, "bind")) return true; @@ -27,11 +27,11 @@ index e3d298e..419cf27 100644 return false; } -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index bfedded..9db4123 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -178,7 +178,9 @@ static bool mount_is_bind(struct mntent *me) { +Index: systemd-195/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-195.orig/src/fstab-generator/fstab-generator.c ++++ systemd-195/src/fstab-generator/fstab-generator.c +@@ -199,7 +199,9 @@ static bool mount_is_bind(struct mntent return hasmntopt(me, "bind") || @@ -42,6 +42,3 @@ index bfedded..9db4123 100644 } static bool mount_is_network(struct mntent *me) { --- -1.8.1.1 - diff --git a/service-forking-ignore-exit-status-main-process.patch b/service-forking-ignore-exit-status-main-process.patch index da4c695f..b9681f3f 100644 --- a/service-forking-ignore-exit-status-main-process.patch +++ b/service-forking-ignore-exit-status-main-process.patch @@ -9,11 +9,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=860464 src/core/service.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) -diff --git a/src/core/service.c b/src/core/service.c -index 8e9e112..7eaac0d 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2926,15 +2926,25 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { +Index: systemd-195/src/core/service.c +=================================================================== +--- systemd-195.orig/src/core/service.c ++++ systemd-195/src/core/service.c +@@ -2978,15 +2978,25 @@ static void service_sigchld_event(Unit * s->main_pid = 0; exec_status_exit(&s->main_exec_status, &s->exec_context, pid, code, status); @@ -43,6 +43,3 @@ index 8e9e112..7eaac0d 100644 } log_struct(f == SERVICE_SUCCESS ? LOG_DEBUG : LOG_NOTICE, --- -1.7.10.4 - diff --git a/socket-improve-error-message.patch b/socket-improve-error-message.patch index cb0f735a..506c4dcd 100644 --- a/socket-improve-error-message.patch +++ b/socket-improve-error-message.patch @@ -8,11 +8,11 @@ Subject: [PATCH] socket: improve error message when we cannot spawn the src/core/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/core/socket.c b/src/core/socket.c -index c095981..f4f40af 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -1542,7 +1542,7 @@ static void socket_enter_running(Socket *s, int cfd) { +Index: systemd-195/src/core/socket.c +=================================================================== +--- systemd-195.orig/src/core/socket.c ++++ systemd-195/src/core/socket.c +@@ -1510,7 +1510,7 @@ static void socket_enter_running(Socket return; fail: @@ -21,6 +21,3 @@ index c095981..f4f40af 100644 socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); if (cfd >= 0) --- -1.7.10.4 - diff --git a/socket-verbose-error-message.patch b/socket-verbose-error-message.patch index 6d3d6f62..6a36c5ef 100644 --- a/socket-verbose-error-message.patch +++ b/socket-verbose-error-message.patch @@ -14,11 +14,11 @@ Dimitris src/core/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/core/socket.c b/src/core/socket.c -index 9b5bcb6..49e795e 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -1484,7 +1484,7 @@ static void socket_enter_running(Socket *s, int cfd) { +Index: systemd-195/src/core/socket.c +=================================================================== +--- systemd-195.orig/src/core/socket.c ++++ systemd-195/src/core/socket.c +@@ -1441,7 +1441,7 @@ static void socket_enter_running(Socket Service *service; if (s->n_connections >= s->max_connections) { @@ -27,6 +27,3 @@ index 9b5bcb6..49e795e 100644 close_nointr_nofail(cfd); return; } --- -1.7.10.4 - diff --git a/systemctl-no-assert-on-reboot-without-dbus.patch b/systemctl-no-assert-on-reboot-without-dbus.patch index 9b8412fb..c2f9afe6 100644 --- a/systemctl-no-assert-on-reboot-without-dbus.patch +++ b/systemctl-no-assert-on-reboot-without-dbus.patch @@ -9,11 +9,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=889624 src/systemctl/systemctl.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 0def1a2..bfa4d45 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -1738,6 +1738,9 @@ static int reboot_with_logind(DBusConnection *bus, enum action a) { +Index: systemd-195/src/systemctl/systemctl.c +=================================================================== +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -1744,6 +1744,9 @@ static int reboot_with_logind(DBusConnec const char *method; dbus_bool_t interactive = true; @@ -23,6 +23,3 @@ index 0def1a2..bfa4d45 100644 polkit_agent_open_if_enabled(); switch (a) { --- -1.7.10.4 - diff --git a/systemctl-verbose-message-on-missing-install.patch b/systemctl-verbose-message-on-missing-install.patch index e6e88ac1..93383820 100644 --- a/systemctl-verbose-message-on-missing-install.patch +++ b/systemctl-verbose-message-on-missing-install.patch @@ -12,11 +12,11 @@ https://bugzilla.redhat.com/show_bug.cgi?id=884438 src/systemctl/systemctl.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 6d01756..3abd7dc 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -3782,7 +3782,16 @@ static int enable_unit(DBusConnection *bus, char **args) { +Index: systemd-195/src/systemctl/systemctl.c +=================================================================== +--- systemd-195.orig/src/systemctl/systemctl.c ++++ systemd-195/src/systemctl/systemctl.c +@@ -3783,7 +3783,16 @@ static int enable_unit(DBusConnection *b } if (carries_install_info == 0) @@ -34,6 +34,3 @@ index 6d01756..3abd7dc 100644 finish: if (m) --- -1.7.10.4 - diff --git a/systemd-cgls-fix-piping-output.patch b/systemd-cgls-fix-piping-output.patch index 8c09be4e..b7871980 100644 --- a/systemd-cgls-fix-piping-output.patch +++ b/systemd-cgls-fix-piping-output.patch @@ -10,11 +10,11 @@ https://bugs.freedesktop.org/show_bug.cgi?id=56644 src/shared/util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/src/shared/util.c b/src/shared/util.c -index 4cf928f..d771d32 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -3803,7 +3803,7 @@ int fd_columns(int fd) { +Index: systemd-195/src/shared/util.c +=================================================================== +--- systemd-195.orig/src/shared/util.c ++++ systemd-195/src/shared/util.c +@@ -3806,7 +3806,7 @@ int fd_columns(int fd) { unsigned columns(void) { const char *e; @@ -23,7 +23,7 @@ index 4cf928f..d771d32 100644 if (_likely_(cached_columns > 0)) return cached_columns; -@@ -3811,7 +3811,7 @@ unsigned columns(void) { +@@ -3814,7 +3814,7 @@ unsigned columns(void) { c = 0; e = getenv("COLUMNS"); if (e) @@ -32,6 +32,3 @@ index 4cf928f..d771d32 100644 if (c <= 0) c = fd_columns(STDOUT_FILENO); --- -1.7.10.4 - diff --git a/systemd.changes b/systemd.changes index bad5b461..83663a86 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com + +- udev: re-add persistent network rules (bnc#809843). + add: 1026-re-add-persistent-net.patch +- rebase all patches, ensure that they apply properly. + ------------------------------------------------------------------- Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 8ad72466..efa76c0a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -329,6 +329,8 @@ Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch Patch1024: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch # PATCH-FIX-UPSTREAM 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch Patch1025: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch +# PATCH-FIX-OPENSUSE 1026-re-add-persistent-net.patch +Patch1026: 1026-re-add-persistent-net.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -514,6 +516,7 @@ cp %{SOURCE7} m4/ %patch1023 -p1 %patch1024 -p1 %patch1025 -p1 +%patch1026 -p1 #systemd %patch1 -p1 @@ -1122,6 +1125,8 @@ fi %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule +%{_prefix}/lib/udev/write_net_rules +%{_prefix}/lib/udev/rule_generator.functions %dir %{_prefix}/lib/udev/keymaps %{_prefix}/lib/udev/keymaps/* %{_prefix}/lib/udev/keyboard-force-release.sh diff --git a/var-run-lock.patch b/var-run-lock.patch index 8d645de9..3f87b078 100644 --- a/var-run-lock.patch +++ b/var-run-lock.patch @@ -22,7 +22,7 @@ Index: systemd-195/Makefile.am nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -3864,9 +3870,11 @@ systemd-install-data-hook: +@@ -3874,9 +3880,11 @@ systemd-install-data-hook: ( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \ rm -f systemd-remount-fs.service \ systemd-fsck-root.service \ @@ -34,7 +34,7 @@ Index: systemd-195/Makefile.am $(LN_S) ../tmp.mount tmp.mount ) ( cd $(DESTDIR)$(userunitdir) && \ rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \ -@@ -3954,6 +3962,12 @@ if TARGET_MAGEIA +@@ -3964,6 +3972,12 @@ if TARGET_MAGEIA rm -f display-manager.service ) endif From a699b1ca34236d314676004a417be75fabd5d044555ee7b5004ddb1560ef7030 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 23 Apr 2013 09:39:56 +0000 Subject: [PATCH 131/221] Accepting request 172873 from Base:System - Do not provide %{release} for systemd-analyze - Add more conflicts to -mini packages - Disable Predictable Network interface names until it has been reviewed by network team, with /usr/lib/tmpfiles.d/network.conf. - Don't package /usr/lib/firmware/update (not used) (forwarded request 172848 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/172873 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=135 --- ...ndencies-added-when-parsing-insserv..patch | 115 --- 1001-Reinstate-TIMEOUT-handling.patch | 65 +- ...enable-by_path-links-for-ata-devices.patch | 38 +- ...ate-by-id-scsi-links-for-ATA-devices.patch | 19 +- 1004-udev-netlink-null-rules.patch | 21 +- 1005-udev-fix-sg-autoload-regression.patch | 28 +- 1006-fix-devname-prefix.patch | 13 - 1007-fix-devname-prefix.patch | 22 + 1007-udevd-add-missing-to-getopt_long-e.patch | 24 - ...-udev-path_id-handle-Hyper-V-devices.patch | 72 -- ...-the-list-of-Samsung-Series-9-models.patch | 136 ---- 1010-keymap-Add-Samsung-700T.patch | 22 - ...ev-avoid-leak-during-realloc-failure.patch | 36 - ...-do-not-resolve-attr-device-symlinks.patch | 40 -- ...-udev-argument-to-udev_enumerate_new.patch | 23 - 1014-udev-fix-whitespace.patch | 56 -- ...ndle-symlink-removal-by-change-event.patch | 69 -- ...not-fail-builtin-initialization-if-o.patch | 64 -- 1017-udev-use-usec_t-and-now.patch | 335 --------- 1018-keymap-add-aditional-support.patch | 59 -- ...device-matching-in-the-accelerometer.patch | 51 -- ...s-have-a-very-bogus-or-strage-serial.patch | 63 -- ...fault-links-for-primary-cd_dvd-drive.patch | 19 +- ...names-for-temporary-files-created-in.patch | 57 -- ...ta-track-count-for-bad-virtual-drive.patch | 51 -- ...e-only-size-bytes-of-the-descriptors.patch | 24 - ...new-ISO9660-properties-from-libblkid.patch | 37 - 1026-re-add-persistent-net.patch | 117 ++- 1027-udev-always-rename-network.patch | 77 ++ ...splash-handling-for-password-dialogs.patch | 16 +- Ensure-debugshell-has-a-correct-value.patch | 22 + ...es-permissions-to-follow-openSUSE-po.patch | 39 + ...-suspend-hibernate-calls-to-pm-utils.patch | 33 +- ...pport-for-SysV-scripts-for-the-early.patch | 140 ++++ agetty-overrides-term.patch | 44 -- allow-multiple-sulogin-to-be-started.patch | 47 ++ apply-ACL-for-nvidia-device-nodes.patch | 23 + ...alid-address-familily-is-passed-to-g.patch | 38 + baselibs.conf | 1 + ...r-empty-strings-in-strto-conversions.patch | 92 --- ...terpret-escaped-semicolon-as-escaped.patch | 30 - ...-load-fragment-improve-error-message.patch | 207 ------ coredumpctl-fix-crash.patch | 22 - ...tor-state-file-name-in-error-message.patch | 31 - crypsetup-handle-nofail.patch | 29 - crypt-loop-file.patch | 90 --- cryptsetup-accept-read-only.patch | 47 -- cryptsetup-handle-plain.patch | 71 -- ...etup-after-md-dmraid-lvm-are-started.patch | 34 + ...-fsck-cryptsetup-after-md-lvm-dmraid.patch | 35 - delta-accept-t-option.patch | 24 - detect-btrfs-ssd.patch | 97 --- ...ble-nss-myhostname-warning-bnc-783841.diff | 21 - ...le-nss-myhostname-warning-bnc-783841.patch | 20 + dm-lvm-after-local-fs-pre-target.patch | 9 - do-not-make-sockets-dependent-on-lo.patch | 24 - early-sync-shutdown.patch | 209 ------ ...e-started-before-local-fs-pre-target.patch | 19 + ...assword-wall-starts-after-getty-tty1.patch | 22 + ...are-applied-after-modules-are-loaded.patch | 21 + ...s-started-before-local-fs-pre-for-lo.patch | 21 + fastboot-forcefsck.patch | 13 - fix-bad-mem-access.patch | 21 - fix-bad-memory-access.patch | 23 - fix-build-glibc217.patch | 29 - fix-dbus-crash.patch | 29 - fix-debugshell.patch | 13 - fix-logind-pty-seat.patch | 26 - fix-owner-of-var-log-btmp.patch | 22 + fix-permissions-btmp.patch | 13 - fix-potential-bad-mem-access.patch | 45 -- ...-boot-prefixed-initscript-bnc-746506.patch | 33 +- fix-swap-behaviour-with-symlinks.patch | 33 - ...t-after-cryptsetup-target-is-reached.patch | 104 +++ ...enerator-error-message-on-duplicates.patch | 47 -- fstab-generator-improve-error-message.patch | 115 --- ...enerator-properly-detect-bind-mounts.patch | 25 - handle-HOSTNAME.patch | 36 - ...STEMCTL_OPTIONS-environment-variable.patch | 43 +- ...plock-and-compose_table-and-kbd_rate.patch | 110 +-- handle-etc-HOSTNAME.patch | 46 ++ ...lock-value-in-etc-sysconfig-keyboard.patch | 261 +++---- handle-root-uses-lang.patch | 48 -- ...lang-value-in-etc-sysconfig-language.patch | 54 ++ highlight-ordering-cycle-deletions.patch | 32 - hostnamectl-fix-parsing-no-ask-password.patch | 24 - ...tl-fix-set-hostname-with-no-argument.patch | 26 - improve-bash-completion.patch | 173 ----- improve-journal-perf.patch | 304 -------- improve-man-environment.patch | 44 -- improve-overflow-checks.patch | 33 - job-avoid-recursion-when-cancelling.patch | 48 -- journal-fix-cutoff-max-date.patch | 34 - ...l-send-always-send-syslog_identifier.patch | 62 -- journalctl-quit-on-io-error.patch | 38 - journalctl-remove-leftover-message.patch | 25 - journalctl-require-argument-for-priority | 24 - localectl-fix-assertion.patch | 24 - ...pport-systems-without-locale-archive.patch | 160 ----- lock-opensuse.patch | 16 - ...d-capability-making-seats-without-fb.patch | 56 -- ...-non-tty-non-x11-session-on-shutdown.patch | 30 - macros.systemd | 18 + ...USE-etc-sysconfig-kernel-module-list.patch | 51 +- mount-efivars.patch | 233 ------ multiple-sulogin.patch | 36 - nss-myhostname-config | 31 + ...lly-warn-if-nss-myhostname-is-called.patch | 109 +++ ...dle-ssh-logins-without-pam-tty-field.patch | 57 -- ...nf-and-adds-dependencies-accordingly.patch | 128 ++++ parse-multiline-env-file.patch | 218 ------ path-util-fix-potential-crash.patch | 27 - rbind-mount.patch | 44 -- ...script-heuristic-and-add-new-LSB-hea.patch | 37 +- remount-ro-before-unmount.patch | 95 --- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 89 +++ ...749b84cc87c7830280b7895a48bed03c9429.patch | 44 -- reword-rescue-mode-hints.patch | 30 - ...f-ARM-based-Chromebook-as-a-power-sw.patch | 20 + ...vice-with-detected-pid-as-RemainAfte.patch | 18 +- ...king-ignore-exit-status-main-process.patch | 45 -- ...dont-force-mnt-force-on-final-umount.patch | 35 - ...re-loop-devices-without-backing-file.patch | 37 - shutdown-improvements.patch | 273 ------- socket-improve-error-message.patch | 23 - socket-verbose-error-message.patch | 29 - storage-after-cryptsetup.patch | 103 --- strv-cleanup-error-path-loops.patch | 238 ------ support-hybrid-suspend.patch | 680 ------------------ support-suse-clock-sysconfig.patch | 28 - support-sysvinit.patch | 21 - switch-root-try-pivot-root.patch | 81 --- sync-on-shutdown.patch | 46 -- sysctl-modules.patch | 12 - sysctl-parse-all-keys.patch | 26 - ...ctl-no-assert-on-reboot-without-dbus.patch | 25 - systemctl-print-wall-on-if-successful.patch | 25 - ...l-verbose-message-on-missing-install.patch | 36 - systemd-195.tar.xz | 3 - systemd-202.tar.xz | 3 + systemd-cgls-fix-piping-output.patch | 34 - systemd-fix-merge-ignore-dependencies.patch | 26 - systemd-mini-rpmlintrc | 1 + systemd-mini.changes | 227 ++++++ systemd-mini.spec | 513 +++++-------- systemd-rpmlintrc | 1 + systemd-sysv-convert | 12 +- systemd-tmp-safe-defaults.patch | 26 + systemd.changes | 220 ++++++ systemd.spec | 508 +++++-------- ...or-openSUSE-version-of-etc-sysconfig.patch | 26 + ...ed-donot-close-bogus-dbus-connection.patch | 36 - tmpfiles-X-type.patch | 369 ---------- tty1.patch | 13 - var-run-lock.patch | 97 --- xdm-display-manager.patch | 13 - 156 files changed, 2510 insertions(+), 8339 deletions(-) delete mode 100644 0001-service-Fix-dependencies-added-when-parsing-insserv..patch delete mode 100644 1006-fix-devname-prefix.patch create mode 100644 1007-fix-devname-prefix.patch delete mode 100644 1007-udevd-add-missing-to-getopt_long-e.patch delete mode 100644 1008-udev-path_id-handle-Hyper-V-devices.patch delete mode 100644 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch delete mode 100644 1010-keymap-Add-Samsung-700T.patch delete mode 100644 1011-libudev-avoid-leak-during-realloc-failure.patch delete mode 100644 1012-libudev-do-not-resolve-attr-device-symlinks.patch delete mode 100644 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch delete mode 100644 1014-udev-fix-whitespace.patch delete mode 100644 1015-udev-properly-handle-symlink-removal-by-change-event.patch delete mode 100644 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch delete mode 100644 1017-udev-use-usec_t-and-now.patch delete mode 100644 1018-keymap-add-aditional-support.patch delete mode 100644 1019-udev-Fix-device-matching-in-the-accelerometer.patch delete mode 100644 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch delete mode 100644 1022-udev-use-unique-names-for-temporary-files-created-in.patch delete mode 100644 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch delete mode 100644 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch delete mode 100644 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch create mode 100644 1027-udev-always-rename-network.patch rename 0001-Add-bootsplash-handling-for-password-dialogs.patch => Add-bootsplash-handling-for-password-dialogs.patch (81%) create mode 100644 Ensure-debugshell-has-a-correct-value.patch create mode 100644 Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch rename forward-to-pmutils.patch => Forward-suspend-hibernate-calls-to-pm-utils.patch (71%) create mode 100644 Revert-service-drop-support-for-SysV-scripts-for-the-early.patch delete mode 100644 agetty-overrides-term.patch create mode 100644 allow-multiple-sulogin-to-be-started.patch create mode 100644 apply-ACL-for-nvidia-device-nodes.patch create mode 100644 avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch delete mode 100644 check-for-empty-strings-in-strto-conversions.patch delete mode 100644 core-interpret-escaped-semicolon-as-escaped.patch delete mode 100644 core-load-fragment-improve-error-message.patch delete mode 100644 coredumpctl-fix-crash.patch delete mode 100644 crypsetup-generator-state-file-name-in-error-message.patch delete mode 100644 crypsetup-handle-nofail.patch delete mode 100644 crypt-loop-file.patch delete mode 100644 cryptsetup-accept-read-only.patch delete mode 100644 cryptsetup-handle-plain.patch create mode 100644 delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch delete mode 100644 delay-fsck-cryptsetup-after-md-lvm-dmraid.patch delete mode 100644 delta-accept-t-option.patch delete mode 100644 detect-btrfs-ssd.patch delete mode 100644 disable-nss-myhostname-warning-bnc-783841.diff create mode 100644 disable-nss-myhostname-warning-bnc-783841.patch delete mode 100644 dm-lvm-after-local-fs-pre-target.patch delete mode 100644 do-not-make-sockets-dependent-on-lo.patch delete mode 100644 early-sync-shutdown.patch create mode 100644 ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch create mode 100644 ensure-ask-password-wall-starts-after-getty-tty1.patch create mode 100644 ensure-sysctl-are-applied-after-modules-are-loaded.patch create mode 100644 ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch delete mode 100644 fastboot-forcefsck.patch delete mode 100644 fix-bad-mem-access.patch delete mode 100644 fix-bad-memory-access.patch delete mode 100644 fix-build-glibc217.patch delete mode 100644 fix-dbus-crash.patch delete mode 100644 fix-debugshell.patch delete mode 100644 fix-logind-pty-seat.patch create mode 100644 fix-owner-of-var-log-btmp.patch delete mode 100644 fix-permissions-btmp.patch delete mode 100644 fix-potential-bad-mem-access.patch rename fix-enable-disable-boot-initscript.patch => fix-support-for-boot-prefixed-initscript-bnc-746506.patch (54%) delete mode 100644 fix-swap-behaviour-with-symlinks.patch create mode 100644 force-lvm-restart-after-cryptsetup-target-is-reached.patch delete mode 100644 fstab-generator-error-message-on-duplicates.patch delete mode 100644 fstab-generator-improve-error-message.patch delete mode 100644 fstab-generator-properly-detect-bind-mounts.patch delete mode 100644 handle-HOSTNAME.patch rename systemctl-options.patch => handle-SYSTEMCTL_OPTIONS-environment-variable.patch (51%) rename 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch => handle-disable_caplock-and-compose_table-and-kbd_rate.patch (69%) create mode 100644 handle-etc-HOSTNAME.patch rename systemd-numlock-suse.patch => handle-numlock-value-in-etc-sysconfig-keyboard.patch (67%) delete mode 100644 handle-root-uses-lang.patch create mode 100644 handle-root_uses_lang-value-in-etc-sysconfig-language.patch delete mode 100644 highlight-ordering-cycle-deletions.patch delete mode 100644 hostnamectl-fix-parsing-no-ask-password.patch delete mode 100644 hostnamectl-fix-set-hostname-with-no-argument.patch delete mode 100644 improve-bash-completion.patch delete mode 100644 improve-journal-perf.patch delete mode 100644 improve-man-environment.patch delete mode 100644 improve-overflow-checks.patch delete mode 100644 job-avoid-recursion-when-cancelling.patch delete mode 100644 journal-fix-cutoff-max-date.patch delete mode 100644 journal-send-always-send-syslog_identifier.patch delete mode 100644 journalctl-quit-on-io-error.patch delete mode 100644 journalctl-remove-leftover-message.patch delete mode 100644 journalctl-require-argument-for-priority delete mode 100644 localectl-fix-assertion.patch delete mode 100644 localectl-support-systems-without-locale-archive.patch delete mode 100644 lock-opensuse.patch delete mode 100644 logind-capability-making-seats-without-fb.patch delete mode 100644 logind-ignore-non-tty-non-x11-session-on-shutdown.patch rename modules_on_boot.patch => module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch (56%) delete mode 100644 mount-efivars.patch delete mode 100644 multiple-sulogin.patch create mode 100644 nss-myhostname-config create mode 100644 optionally-warn-if-nss-myhostname-is-called.patch delete mode 100644 pam-properly-handle-ssh-logins-without-pam-tty-field.patch create mode 100644 parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch delete mode 100644 parse-multiline-env-file.patch delete mode 100644 path-util-fix-potential-crash.patch delete mode 100644 rbind-mount.patch rename new-lsb-headers.patch => remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch (74%) delete mode 100644 remount-ro-before-unmount.patch create mode 100644 restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch delete mode 100644 revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch delete mode 100644 reword-rescue-mode-hints.patch create mode 100644 rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rename 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch => service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch (66%) delete mode 100644 service-forking-ignore-exit-status-main-process.patch delete mode 100644 shutdown-dont-force-mnt-force-on-final-umount.patch delete mode 100644 shutdown-ignore-loop-devices-without-backing-file.patch delete mode 100644 shutdown-improvements.patch delete mode 100644 socket-improve-error-message.patch delete mode 100644 socket-verbose-error-message.patch delete mode 100644 storage-after-cryptsetup.patch delete mode 100644 strv-cleanup-error-path-loops.patch delete mode 100644 support-hybrid-suspend.patch delete mode 100644 support-suse-clock-sysconfig.patch delete mode 100644 support-sysvinit.patch delete mode 100644 switch-root-try-pivot-root.patch delete mode 100644 sync-on-shutdown.patch delete mode 100644 sysctl-modules.patch delete mode 100644 sysctl-parse-all-keys.patch delete mode 100644 systemctl-no-assert-on-reboot-without-dbus.patch delete mode 100644 systemctl-print-wall-on-if-successful.patch delete mode 100644 systemctl-verbose-message-on-missing-install.patch delete mode 100644 systemd-195.tar.xz create mode 100644 systemd-202.tar.xz delete mode 100644 systemd-cgls-fix-piping-output.patch delete mode 100644 systemd-fix-merge-ignore-dependencies.patch create mode 100644 systemd-tmp-safe-defaults.patch create mode 100644 timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch delete mode 100644 timedated-donot-close-bogus-dbus-connection.patch delete mode 100644 tmpfiles-X-type.patch delete mode 100644 tty1.patch delete mode 100644 var-run-lock.patch delete mode 100644 xdm-display-manager.patch diff --git a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch b/0001-service-Fix-dependencies-added-when-parsing-insserv..patch deleted file mode 100644 index 17c4a2bd..00000000 --- a/0001-service-Fix-dependencies-added-when-parsing-insserv..patch +++ /dev/null @@ -1,115 +0,0 @@ -Index: systemd-195/src/core/service.c -=================================================================== ---- systemd-195.orig/src/core/service.c -+++ systemd-195/src/core/service.c -@@ -3391,12 +3391,13 @@ static void service_notify_message(Unit - - #ifdef HAVE_SYSV_COMPAT - --#ifdef TARGET_SUSE --static void sysv_facility_in_insserv_conf(Manager *mgr) { -- FILE *f=NULL; -+#if defined(TARGET_SUSE) || defined(TARGET_DEBIAN) -+static void sysv_parse_insserv_conf(Manager *mgr, const char* filename) { -+ FILE *f = NULL; - int r; - -- if (!(f = fopen("/etc/insserv.conf", "re"))) { -+ if (!(f = fopen(filename, "re"))) { -+ log_error("Failed to open file %s", filename); - r = errno == ENOENT ? 0 : -errno; - goto finish; - } -@@ -3410,7 +3411,7 @@ static void sysv_facility_in_insserv_con - break; - - r = -errno; -- log_error("Failed to read configuration file '/etc/insserv.conf': %s", strerror(-r)); -+ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r)); - goto finish; - } - -@@ -3425,23 +3426,30 @@ static void sysv_facility_in_insserv_con - Unit *u; - if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) - continue; -+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { -+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */ -+ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET); -+ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); -+ free (facility); -+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); -+ } - if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) { -- UnitDependency e; - char *dep = NULL, *name, **j; - - STRV_FOREACH (j, parsed+1) { -- if (*j[0]=='+') { -- e = UNIT_WANTS; -+ if (*j[0] == '+') - name = *j+1; -- } -- else { -- e = UNIT_REQUIRES; -+ else - name = *j; -- } -+ if (streq(name, "boot.localfs") || -+ streq(name, "boot.crypto")) -+ continue; - if (sysv_translate_facility(name, NULL, &dep) < 0) - continue; - -- r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true); -+ r = unit_add_two_dependencies_by_name_inverse(u, UNIT_WANTS, UNIT_BEFORE, dep, NULL, true); -+ if (*j[0] != '+') -+ r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true); - free(dep); - } - } -@@ -3454,6 +3462,35 @@ finish: - fclose(f); - - } -+ -+static void sysv_facility_in_insserv_conf(Manager *mgr) { -+ DIR *d =NULL; -+ struct dirent *de; -+ -+#ifdef TARGET_DEBIAN -+ if (!(d = opendir("/etc/insserv.conf.d/"))) -+ if (errno != ENOENT) { -+ log_warning("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno)); -+ goto finish; -+ } -+ -+ while ((de = readdir(d))) { -+ char *path = NULL; -+ if (ignore_file(de->d_name)) -+ continue; -+ -+ path = join("/etc/insserv.conf.d/", de->d_name, NULL); -+ sysv_parse_insserv_conf(mgr, path); -+ free(path); -+ } -+finish: -+ if (d) -+ closedir(d); -+#endif -+ -+ sysv_parse_insserv_conf(mgr, "/etc/insserv.conf"); -+} -+ - #endif - - static int service_enumerate(Manager *m) { -@@ -3604,7 +3641,7 @@ static int service_enumerate(Manager *m) - - r = 0; - --#ifdef TARGET_SUSE -+#if defined(TARGET_SUSE) || defined(TARGET_DEBIAN) - sysv_facility_in_insserv_conf (m); - #endif - diff --git a/1001-Reinstate-TIMEOUT-handling.patch b/1001-Reinstate-TIMEOUT-handling.patch index f90c265a..775c0a07 100644 --- a/1001-Reinstate-TIMEOUT-handling.patch +++ b/1001-Reinstate-TIMEOUT-handling.patch @@ -1,3 +1,7 @@ +From: Robert Milasan +Date: Thu, 11 Apr 2013 15:39:39 +0200 +Subject: Reinstate TIMEOUT handling + Without treating events with timeouts specially some drivers would cause a 30 seconds stall on boot: . @@ -10,29 +14,24 @@ the kernel (3.4?). This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and 57c6f8ae5f52a6e8ffc66a54966346f733dded39. --- + src/libudev/libudev-device.c | 19 +++++++++++++++++++ + src/libudev/libudev-private.h | 1 + + src/udev/udevd.c | 13 ++++++++++--- + 3 files changed, 30 insertions(+), 3 deletions(-) -Note: this is mostly a FYI, and whether or not it makes sense -to apply this upstream depends on how big problems other report -regarding this issue. - - src/libudev-device.c | 19 +++++++++++++++++++ - src/libudev-private.h | 1 + - src/udevd.c | 13 ++++++++++--- - 4 files changed, 32 insertions(+), 3 deletions(-) - -Index: systemd-195/src/libudev/libudev-device.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-device.c -+++ systemd-195/src/libudev/libudev-device.c -@@ -68,6 +68,7 @@ struct udev_device { +diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c +index 6bb2e41..4fdd242 100644 +--- a/src/libudev/libudev-device.c ++++ b/src/libudev/libudev-device.c +@@ -78,6 +78,7 @@ struct udev_device { struct udev_list tags_list; unsigned long long int seqnum; - unsigned long long int usec_initialized; + usec_t usec_initialized; + int timeout; int devlink_priority; int refcount; dev_t devnum; -@@ -162,6 +163,21 @@ static int udev_device_set_devnum(struct +@@ -172,6 +173,21 @@ static int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum) return 0; } @@ -54,7 +53,7 @@ Index: systemd-195/src/libudev/libudev-device.c const char *udev_device_get_devpath_old(struct udev_device *udev_device) { return udev_device->devpath_old; -@@ -418,6 +434,8 @@ void udev_device_add_property_from_strin +@@ -462,6 +478,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device, udev_device_set_devpath_old(udev_device, &property[12]); } else if (startswith(property, "SEQNUM=")) { udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10)); @@ -63,7 +62,7 @@ Index: systemd-195/src/libudev/libudev-device.c } else if (startswith(property, "IFINDEX=")) { udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10)); } else if (startswith(property, "DEVMODE=")) { -@@ -605,6 +623,7 @@ struct udev_device *udev_device_new(stru +@@ -653,6 +671,7 @@ struct udev_device *udev_device_new(struct udev *udev) udev_list_init(udev, &udev_device->sysattr_value_list, true); udev_list_init(udev, &udev_device->sysattr_list, false); udev_list_init(udev, &udev_device->tags_list, true); @@ -71,23 +70,23 @@ Index: systemd-195/src/libudev/libudev-device.c udev_device->watch_handle = -1; /* copy global properties */ udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev)) -Index: systemd-195/src/libudev/libudev-private.h -=================================================================== ---- systemd-195.orig/src/libudev/libudev-private.h -+++ systemd-195/src/libudev/libudev-private.h -@@ -65,6 +65,7 @@ const char *udev_device_get_id_filename( +diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h +index 54c51ac..d2124ea 100644 +--- a/src/libudev/libudev-private.h ++++ b/src/libudev/libudev-private.h +@@ -77,6 +77,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device); void udev_device_set_is_initialized(struct udev_device *udev_device); int udev_device_add_tag(struct udev_device *udev_device, const char *tag); void udev_device_cleanup_tags_list(struct udev_device *udev_device); +int udev_device_get_timeout(struct udev_device *udev_device); - unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device); - void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized); + usec_t udev_device_get_usec_initialized(struct udev_device *udev_device); + void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized); int udev_device_get_devlink_priority(struct udev_device *udev_device); -Index: systemd-195/src/udev/udevd.c -=================================================================== ---- systemd-195.orig/src/udev/udevd.c -+++ systemd-195/src/udev/udevd.c -@@ -388,7 +388,7 @@ out: +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 7d13b4f..9be1931 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -391,7 +391,7 @@ out: } } @@ -96,7 +95,7 @@ Index: systemd-195/src/udev/udevd.c { struct udev_list_node *loop; -@@ -414,7 +414,7 @@ static void event_run(struct event *even +@@ -417,7 +417,7 @@ static void event_run(struct event *event) return; } @@ -105,7 +104,7 @@ Index: systemd-195/src/udev/udevd.c if (children_max > 1) log_debug("maximum number (%i) of children reached\n", children); return; -@@ -450,6 +450,13 @@ static int event_queue_insert(struct ude +@@ -455,6 +455,13 @@ static int event_queue_insert(struct udev_device *dev) event->state = EVENT_QUEUED; udev_list_node_append(&event->node, &event_list); @@ -119,7 +118,7 @@ Index: systemd-195/src/udev/udevd.c return 0; } -@@ -559,7 +566,7 @@ static void event_queue_start(struct ude +@@ -566,7 +573,7 @@ static void event_queue_start(struct udev *udev) if (is_devpath_busy(event)) continue; diff --git a/1002-re-enable-by_path-links-for-ata-devices.patch b/1002-re-enable-by_path-links-for-ata-devices.patch index 9250624f..64f01c1f 100644 --- a/1002-re-enable-by_path-links-for-ata-devices.patch +++ b/1002-re-enable-by_path-links-for-ata-devices.patch @@ -1,9 +1,18 @@ -Index: systemd-195/src/udev/udev-builtin-path_id.c -=================================================================== ---- systemd-195.orig/src/udev/udev-builtin-path_id.c -+++ systemd-195/src/udev/udev-builtin-path_id.c -@@ -302,6 +302,85 @@ out: - return hostdev; +From: Robert Milasan +Date: Thu, 12 Jul 2012 15:56:34 +0000 +Subject: re-enable by_path links for ata devices + +Fix by-path links for ATA transport (bnc#770910) +--- + src/udev/udev-builtin-path_id.c | 92 +++++++++++++++++++++++++++++++++++------ + 1 file changed, 80 insertions(+), 12 deletions(-) + +diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c +index da02731..a77d4e8 100644 +--- a/src/udev/udev-builtin-path_id.c ++++ b/src/udev/udev-builtin-path_id.c +@@ -338,6 +338,85 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * + return parent; } +static struct udev_device *handle_ata(struct udev_device *parent, char **path) @@ -88,17 +97,20 @@ Index: systemd-195/src/udev/udev-builtin-path_id.c static struct udev_device *handle_scsi(struct udev_device *parent, char **path) { const char *devtype; -@@ -338,16 +417,8 @@ static struct udev_device *handle_scsi(s +@@ -374,19 +453,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) goto out; } - /* -- * We do not support the ATA transport class, it creates duplicated link -- * names as the fake SCSI host adapters are all separated, they are all -- * re-based as host == 0. ATA should just stop faking two duplicated -- * hierarchies for a single topology and leave the SCSI stuff alone; -- * until that happens, there are no by-path/ links for ATA devices behind -- * an ATA transport class. +- * We do not support the ATA transport class, it uses global counters +- * to name the ata devices which numbers spread across multiple +- * controllers. +- * +- * The real link numbers are not exported. Also, possible chains of ports +- * behind port multipliers cannot be composed that way. +- * +- * Until all that is solved at the kernel level, there are no by-path/ +- * links for ATA devices. - */ if (strstr(name, "/ata") != NULL) { - parent = NULL; diff --git a/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch index c7b3b1cd..c2f3186c 100644 --- a/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch +++ b/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -1,8 +1,17 @@ -Index: systemd-195/rules/60-persistent-storage.rules -=================================================================== ---- systemd-195.orig/rules/60-persistent-storage.rules -+++ systemd-195/rules/60-persistent-storage.rules -@@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", +From: Robert Milasan +Date: Wed, 27 Jun 2012 08:55:59 +0000 +Subject: rules create by id scsi links for ATA devices + +Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) +--- + rules/60-persistent-storage.rules | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules +index a4d009a..f720c7e 100644 +--- a/rules/60-persistent-storage.rules ++++ b/rules/60-persistent-storage.rules +@@ -42,6 +42,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="s KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" diff --git a/1004-udev-netlink-null-rules.patch b/1004-udev-netlink-null-rules.patch index e5fd1b7e..8634d39d 100644 --- a/1004-udev-netlink-null-rules.patch +++ b/1004-udev-netlink-null-rules.patch @@ -1,11 +1,20 @@ -Index: systemd-195/src/udev/udevd.c -=================================================================== ---- systemd-195.orig/src/udev/udevd.c -+++ systemd-195/src/udev/udevd.c -@@ -1513,6 +1513,8 @@ int main(int argc, char *argv[]) +From: Robert Milasan +Date: Mon, 6 Aug 2012 13:35:34 +0000 +Subject: udev netlink null rules + +udevd race for netlink events (bnc#774646) +--- + src/udev/udevd.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 9be1931..d0c4c72 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -1414,6 +1414,8 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) { - udev_device_set_usec_initialized(dev, now_usec()); + udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); + if (rules == NULL) + rules = udev_rules_new(udev, resolve_names); if (event_queue_insert(dev) < 0) diff --git a/1005-udev-fix-sg-autoload-regression.patch b/1005-udev-fix-sg-autoload-regression.patch index 642f4faf..1e79d84e 100644 --- a/1005-udev-fix-sg-autoload-regression.patch +++ b/1005-udev-fix-sg-autoload-regression.patch @@ -1,12 +1,22 @@ -Index: systemd-190/rules/80-drivers.rules -=================================================================== ---- systemd-190.orig/rules/80-drivers.rules -+++ systemd-190/rules/80-drivers.rules -@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}== - SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", IMPORT{builtin}="kmod load tifm_ms" - SUBSYSTEM=="memstick", IMPORT{builtin}="kmod load ms_block mspro_block" - SUBSYSTEM=="i2o", IMPORT{builtin}="kmod load i2o_block" +From: Robert Milasan +Date: Tue, 7 Aug 2012 08:34:49 +0000 +Subject: udev fix sg autoload regression + +Fix regression in udev where sg driver is no longer loaded for disc +events. Will need a non-udev solution for 12.3 (bnc#761109). +--- + rules/80-drivers.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/rules/80-drivers.rules b/rules/80-drivers.rules +index 50523e4..b863532 100644 +--- a/rules/80-drivers.rules ++++ b/rules/80-drivers.rules +@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}="kmod load tifm_sd" + SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}="kmod load tifm_ms" + SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block" + SUBSYSTEM=="i2o", RUN{builtin}="kmod load i2o_block" +SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", IMPORT{builtin}="kmod load sg" SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev" + KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}="kmod load sm_ftl" - LABEL="drivers_end" diff --git a/1006-fix-devname-prefix.patch b/1006-fix-devname-prefix.patch deleted file mode 100644 index 7fbc160a..00000000 --- a/1006-fix-devname-prefix.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-195/src/udev/udevd.c -=================================================================== ---- systemd-195.orig/src/udev/udevd.c -+++ systemd-195/src/udev/udevd.c -@@ -820,7 +820,7 @@ static void static_dev_create_from_modul - FILE *f; - - uname(&kernel); -- util_strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); -+ util_strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL); - f = fopen(modules, "re"); - if (f == NULL) - return; diff --git a/1007-fix-devname-prefix.patch b/1007-fix-devname-prefix.patch new file mode 100644 index 00000000..55fb3d90 --- /dev/null +++ b/1007-fix-devname-prefix.patch @@ -0,0 +1,22 @@ +From: Frederic Crozat +Date: Wed, 5 Dec 2012 15:13:27 +0000 +Subject: fix devname prefix + +fix modules.devname path, it isn't in /usr. +--- + src/udev/udevd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index d0c4c72..599cd3b 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -831,7 +831,7 @@ static void static_dev_create_from_modules(struct udev *udev) + return; + } + +- strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); ++ strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL); + f = fopen(modules, "re"); + if (f == NULL) + return; diff --git a/1007-udevd-add-missing-to-getopt_long-e.patch b/1007-udevd-add-missing-to-getopt_long-e.patch deleted file mode 100644 index 59cba6ae..00000000 --- a/1007-udevd-add-missing-to-getopt_long-e.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5bbbe461fd4d133eac49f41210e2fd4846f577d8 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 19 Dec 2012 13:12:26 +0100 -Subject: [PATCH] udevd: add missing ':' to getopt_long 'e' - -Parameter -e is set without additional argument in getopt -and this leads to segfault when calling 'systemd-udevd -e'. ---- - src/udev/udevd.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -Index: systemd-195/src/udev/udevd.c -=================================================================== ---- systemd-195.orig/src/udev/udevd.c -+++ systemd-195/src/udev/udevd.c -@@ -1104,7 +1104,7 @@ int main(int argc, char *argv[]) - for (;;) { - int option; - -- option = getopt_long(argc, argv, "c:deDtN:hV", options, NULL); -+ option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); - if (option == -1) - break; - diff --git a/1008-udev-path_id-handle-Hyper-V-devices.patch b/1008-udev-path_id-handle-Hyper-V-devices.patch deleted file mode 100644 index b4273dd7..00000000 --- a/1008-udev-path_id-handle-Hyper-V-devices.patch +++ /dev/null @@ -1,72 +0,0 @@ -From a24d03b8ee2ca62cd1273e27cf4e79ddcc0fbb1c Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 23 Nov 2012 14:12:39 +0100 -Subject: [PATCH] udev: path_id - handle Hyper-V devices - -Hyper-V has an abstract bus, which gets renumbered on guest -startup. So instead of the bus numbers we should be using -the device GUIDs, which can be retrieved from the 'device_id' -sysfs attribute. ---- - src/udev/udev-builtin-path_id.c | 41 +++++++++++++++++++++++++++++++++++++++ - 1 files changed, 41 insertions(+), 0 deletions(-) - -Index: systemd-195/src/udev/udev-builtin-path_id.c -=================================================================== ---- systemd-195.orig/src/udev/udev-builtin-path_id.c -+++ systemd-195/src/udev/udev-builtin-path_id.c -@@ -381,6 +381,42 @@ out: - return hostdev; - } - -+static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char **path) { -+ struct udev_device *hostdev; -+ struct udev_device *vmbusdev; -+ const char *guid_str; -+ char *lun = NULL; -+ char guid[38]; -+ size_t i, k; -+ -+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); -+ if (!hostdev) -+ return NULL; -+ -+ vmbusdev = udev_device_get_parent(hostdev); -+ if (!vmbusdev) -+ return NULL; -+ -+ guid_str = udev_device_get_sysattr_value(vmbusdev, "device_id"); -+ if (!guid_str) -+ return NULL; -+ -+ if (strlen(guid_str) < 37 || guid_str[0] != '{' || guid_str[36] != '}') -+ return NULL; -+ -+ for (i = 1, k = 0; i < 36; i++) { -+ if (guid_str[i] == '-') -+ continue; -+ guid[k++] = guid_str[i]; -+ } -+ guid[k] = '\0'; -+ -+ format_lun_number(parent, &lun); -+ path_prepend(path, "vmbus-%s-%s", guid, lun); -+ free(lun); -+ return parent; -+} -+ - static struct udev_device *handle_scsi(struct udev_device *parent, char **path) - { - const char *devtype; -@@ -422,6 +458,11 @@ static struct udev_device *handle_scsi(s - goto out; - } - -+ if (strstr(name, "/vmbus_") != NULL) { -+ parent = handle_scsi_hyperv(parent, path); -+ goto out; -+ } -+ - parent = handle_scsi_default(parent, path); - out: - return parent; diff --git a/1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch b/1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch deleted file mode 100644 index 58bf335c..00000000 --- a/1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 68c77c2f6168dca0ce7b5edb81612cd6be39e63d Mon Sep 17 00:00:00 2001 -From: Alessandro Crismani -Date: Wed, 8 Aug 2012 14:19:32 +0200 -Subject: [PATCH] keymap: Update the list of Samsung Series 9 models - -Currently, keymaps are provided only for the NP90X3A laptop. Samsung -introduced updated models, codenamed 900X3B, 900X3C, 900X4B, 900X4C, -which are currently not matched by udev rules. This patch includes the -newer modules in udev rules and move the samsung-n90x3a file defining -keys to a more generic samsung-series-9 file. - -The patch was tested on a 900X4C laptop, and other people reported -that the rules also work for 900X3B and 900X3C ones. ---- - delete mode 100644 keymaps-force-release/samsung-90x3a - create mode 100644 keymaps-force-release/samsung-series-9 - delete mode 100644 keymaps/samsung-90x3a - create mode 100644 keymaps/samsung-series-9 - -From 68c77c2f6168dca0ce7b5edb81612cd6be39e63d Mon Sep 17 00:00:00 2001 -From: Alessandro Crismani -Date: Wed, 8 Aug 2012 14:19:32 +0200 -Subject: [PATCH] keymap: Update the list of Samsung Series 9 models - -Currently, keymaps are provided only for the NP90X3A laptop. Samsung -introduced updated models, codenamed 900X3B, 900X3C, 900X4B, 900X4C, -which are currently not matched by udev rules. This patch includes the -newer modules in udev rules and move the samsung-n90x3a file defining -keys to a more generic samsung-series-9 file. - -The patch was tested on a 900X4C laptop, and other people reported -that the rules also work for 900X3B and 900X3C ones. ---- - Makefile.am | 4 ++-- - keymaps-force-release/samsung-90x3a | 6 ------ - keymaps-force-release/samsung-series-9 | 6 ++++++ - keymaps/samsung-90x3a | 5 ----- - keymaps/samsung-series-9 | 5 +++++ - src/udev/keymap/95-keyboard-force-release.rules | 2 +- - src/udev/keymap/95-keymap.rules | 2 +- - 7 files changed, 15 insertions(+), 15 deletions(-) - delete mode 100644 keymaps-force-release/samsung-90x3a - create mode 100644 keymaps-force-release/samsung-series-9 - delete mode 100644 keymaps/samsung-90x3a - create mode 100644 keymaps/samsung-series-9 - -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -2272,7 +2272,7 @@ dist_udevkeymap_DATA = \ - keymaps/onkyo \ - keymaps/oqo-model2 \ - keymaps/samsung-other \ -- keymaps/samsung-90x3a \ -+ keymaps/samsung-series-9 \ - keymaps/samsung-sq1us \ - keymaps/samsung-sx20s \ - keymaps/toshiba-satellite_a100 \ -@@ -2286,7 +2286,7 @@ dist_udevkeymapforcerel_DATA = \ - keymaps-force-release/dell-xps \ - keymaps-force-release/hp-other \ - keymaps-force-release/samsung-other \ -- keymaps-force-release/samsung-90x3a \ -+ keymaps-force-release/samsung-series-9 \ - keymaps-force-release/common-volume-keys - - src/udev/keymap/keys.txt: Makefile -Index: systemd-195/keymaps-force-release/samsung-90x3a -=================================================================== ---- systemd-195.orig/keymaps-force-release/samsung-90x3a -+++ /dev/null -@@ -1,6 +0,0 @@ --# list of scancodes (hex or decimal), optional comment --0xCE # Fn+F8 keyboard backlit up --0x8D # Fn+F7 keyboard backlit down --0x97 # Fn+F12 wifi on/off --0x96 # Fn+F1 performance mode (?) --0xD5 # Fn+F6 battery life extender -Index: systemd-195/keymaps-force-release/samsung-series-9 -=================================================================== ---- /dev/null -+++ systemd-195/keymaps-force-release/samsung-series-9 -@@ -0,0 +1,6 @@ -+# list of scancodes (hex or decimal), optional comment -+0xCE # Fn+F8 keyboard backlit up -+0x8D # Fn+F7 keyboard backlit down -+0x97 # Fn+F12 wifi on/off -+0x96 # Fn+F1 performance mode (?) -+0xD5 # Fn+F6 battery life extender -Index: systemd-195/keymaps/samsung-90x3a -=================================================================== ---- systemd-195.orig/keymaps/samsung-90x3a -+++ /dev/null -@@ -1,5 +0,0 @@ --0x96 kbdillumup # Fn+F8 keyboard backlit up --0x97 kbdillumdown # Fn+F7 keyboard backlit down --0xD5 wlan # Fn+F12 wifi on/off --0xCE prog1 # Fn+F1 performance mode --0x8D prog2 # Fn+F6 battery life extender -Index: systemd-195/keymaps/samsung-series-9 -=================================================================== ---- /dev/null -+++ systemd-195/keymaps/samsung-series-9 -@@ -0,0 +1,5 @@ -+0x96 kbdillumup # Fn+F8 keyboard backlit up -+0x97 kbdillumdown # Fn+F7 keyboard backlit down -+0xD5 wlan # Fn+F12 wifi on/off -+0xCE prog1 # Fn+F1 performance mode -+0x8D prog2 # Fn+F6 battery life extender -Index: systemd-195/src/udev/keymap/95-keyboard-force-release.rules -=================================================================== ---- systemd-195.orig/src/udev/keymap/95-keyboard-force-release.rules -+++ systemd-195/src/udev/keymap/95-keyboard-force-release.rules -@@ -19,7 +19,7 @@ DRIVER!="atkbd", GOTO="force_release_end - ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}" - - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", RUN+="keyboard-force-release.sh $devpath samsung-other" --ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a" -+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keyboard-force-release.sh $devpath samsung-series-9" - - ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys" - ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad" -Index: systemd-195/src/udev/keymap/95-keymap.rules -=================================================================== ---- systemd-195.orig/src/udev/keymap/95-keymap.rules -+++ systemd-195/src/udev/keymap/95-keymap.rules -@@ -147,7 +147,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s" - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us" - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown" --ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a" -+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keymap $name samsung-series-9" - - ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100" - ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110", RUN+="keymap $name toshiba-satellite_a110" diff --git a/1010-keymap-Add-Samsung-700T.patch b/1010-keymap-Add-Samsung-700T.patch deleted file mode 100644 index 860da9ad..00000000 --- a/1010-keymap-Add-Samsung-700T.patch +++ /dev/null @@ -1,22 +0,0 @@ -From a5dea3d43b3866b48c66d6bef9663cf8372fd96c Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 28 Nov 2012 21:33:26 +0100 -Subject: [PATCH] keymap: Add Samsung 700T - -https://bugzilla.redhat.com/show_bug.cgi?id=879691 ---- - src/udev/keymap/95-keymap.rules | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -Index: systemd-195/src/udev/keymap/95-keymap.rules -=================================================================== ---- systemd-195.orig/src/udev/keymap/95-keymap.rules -+++ systemd-195/src/udev/keymap/95-keymap.rules -@@ -147,6 +147,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s" - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us" - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown" -+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700T*", RUN+="keymap $name 0xAD leftmeta" - ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keymap $name samsung-series-9" - - ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100" diff --git a/1011-libudev-avoid-leak-during-realloc-failure.patch b/1011-libudev-avoid-leak-during-realloc-failure.patch deleted file mode 100644 index 6b5d1907..00000000 --- a/1011-libudev-avoid-leak-during-realloc-failure.patch +++ /dev/null @@ -1,36 +0,0 @@ -From cf2292f5ac87087f57dbd632a25a332c9d194ebf Mon Sep 17 00:00:00 2001 -From: Mauro Dreissig -Date: Sun, 11 Nov 2012 22:07:51 -0200 -Subject: [PATCH] libudev: avoid leak during realloc failure - ---- - src/libudev/libudev-list.c | 6 ++++-- - 1 files changed, 4 insertions(+), 2 deletions(-) - -Index: systemd-195/src/libudev/libudev-list.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-list.c -+++ systemd-195/src/libudev/libudev-list.c -@@ -177,18 +177,20 @@ struct udev_list_entry *udev_list_entry_ - if (list->unique) { - /* allocate or enlarge sorted array if needed */ - if (list->entries_cur >= list->entries_max) { -+ struct udev_list_entry **entries; - unsigned int add; - - add = list->entries_max; - if (add < 1) - add = 64; -- list->entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *)); -- if (list->entries == NULL) { -+ entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *)); -+ if (entries == NULL) { - free(entry->name); - free(entry->value); - free(entry); - return NULL; - } -+ list->entries = entries; - list->entries_max += add; - } - diff --git a/1012-libudev-do-not-resolve-attr-device-symlinks.patch b/1012-libudev-do-not-resolve-attr-device-symlinks.patch deleted file mode 100644 index 9e48bc52..00000000 --- a/1012-libudev-do-not-resolve-attr-device-symlinks.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 5ae18ddc0d86673520c0dd6b59ccac8afc8aa605 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 20 Nov 2012 18:07:57 +0100 -Subject: [PATCH] libudev: do not resolve $attr{device} symlinks - ---- - src/libudev/libudev-device.c | 19 ++++++++++--------- - 1 files changed, 10 insertions(+), 9 deletions(-) - -Index: systemd-195/src/libudev/libudev-device.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-device.c -+++ systemd-195/src/libudev/libudev-device.c -@@ -1369,16 +1369,17 @@ _public_ const char *udev_device_get_sys - goto out; - } - -- /* resolve link to a device and return its syspath */ -- util_strscpyl(path, sizeof(path), udev_device->syspath, "/", sysattr, NULL); -- dev = udev_device_new_from_syspath(udev_device->udev, path); -- if (dev != NULL) { -- list_entry = udev_list_entry_add(&udev_device->sysattr_value_list, sysattr, -- udev_device_get_syspath(dev)); -- val = udev_list_entry_get_value(list_entry); -- udev_device_unref(dev); -+ /* resolve custom link to a device and return its syspath */ -+ if (!streq(sysattr, "device")) { -+ util_strscpyl(path, sizeof(path), udev_device->syspath, "/", sysattr, NULL); -+ dev = udev_device_new_from_syspath(udev_device->udev, path); -+ if (dev != NULL) { -+ list_entry = udev_list_entry_add(&udev_device->sysattr_value_list, sysattr, -+ udev_device_get_syspath(dev)); -+ val = udev_list_entry_get_value(list_entry); -+ udev_device_unref(dev); -+ } - } -- - goto out; - } - diff --git a/1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch b/1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch deleted file mode 100644 index a93c2272..00000000 --- a/1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch +++ /dev/null @@ -1,23 +0,0 @@ -From e68893075083a7461b1572233d23fdb23541d630 Mon Sep 17 00:00:00 2001 -From: Michael Terry -Date: Fri, 14 Dec 2012 09:02:13 -0500 -Subject: [PATCH] libudev: validate 'udev' argument to udev_enumerate_new() - -https://bugs.freedesktop.org/show_bug.cgi?id=58289 ---- - src/libudev/libudev-enumerate.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -Index: systemd-195/src/libudev/libudev-enumerate.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-enumerate.c -+++ systemd-195/src/libudev/libudev-enumerate.c -@@ -73,6 +73,8 @@ _public_ struct udev_enumerate *udev_enu - { - struct udev_enumerate *udev_enumerate; - -+ if (udev == NULL) -+ return NULL; - udev_enumerate = calloc(1, sizeof(struct udev_enumerate)); - if (udev_enumerate == NULL) - return NULL; diff --git a/1014-udev-fix-whitespace.patch b/1014-udev-fix-whitespace.patch deleted file mode 100644 index fcccc037..00000000 --- a/1014-udev-fix-whitespace.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 3fd0c4c66df45ee457cfb5e4ca8e285914ebc32f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 20 Nov 2012 18:07:14 +0100 -Subject: [PATCH] udev: fix whitespace - ---- - src/udev/udev-event.c | 36 ++++++++++++++++++------------------ - 1 files changed, 18 insertions(+), 18 deletions(-) - -Index: systemd-195/src/udev/udev-event.c -=================================================================== ---- systemd-195.orig/src/udev/udev-event.c -+++ systemd-195/src/udev/udev-event.c -@@ -90,24 +90,24 @@ size_t udev_event_apply_format(struct ud - const char fmt; - enum subst_type type; - } map[] = { -- { .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE }, -- { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE }, -- { .name = "attr", .fmt = 's', .type = SUBST_ATTR }, -- { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR }, -- { .name = "env", .fmt = 'E', .type = SUBST_ENV }, -- { .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL }, -- { .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER }, -- { .name = "driver", .fmt = 'd', .type = SUBST_DRIVER }, -- { .name = "devpath", .fmt = 'p', .type = SUBST_DEVPATH }, -- { .name = "id", .fmt = 'b', .type = SUBST_ID }, -- { .name = "major", .fmt = 'M', .type = SUBST_MAJOR }, -- { .name = "minor", .fmt = 'm', .type = SUBST_MINOR }, -- { .name = "result", .fmt = 'c', .type = SUBST_RESULT }, -- { .name = "parent", .fmt = 'P', .type = SUBST_PARENT }, -- { .name = "name", .fmt = 'D', .type = SUBST_NAME }, -- { .name = "links", .fmt = 'L', .type = SUBST_LINKS }, -- { .name = "root", .fmt = 'r', .type = SUBST_ROOT }, -- { .name = "sys", .fmt = 'S', .type = SUBST_SYS }, -+ { .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE }, -+ { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE }, -+ { .name = "attr", .fmt = 's', .type = SUBST_ATTR }, -+ { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR }, -+ { .name = "env", .fmt = 'E', .type = SUBST_ENV }, -+ { .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL }, -+ { .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER }, -+ { .name = "driver", .fmt = 'd', .type = SUBST_DRIVER }, -+ { .name = "devpath", .fmt = 'p', .type = SUBST_DEVPATH }, -+ { .name = "id", .fmt = 'b', .type = SUBST_ID }, -+ { .name = "major", .fmt = 'M', .type = SUBST_MAJOR }, -+ { .name = "minor", .fmt = 'm', .type = SUBST_MINOR }, -+ { .name = "result", .fmt = 'c', .type = SUBST_RESULT }, -+ { .name = "parent", .fmt = 'P', .type = SUBST_PARENT }, -+ { .name = "name", .fmt = 'D', .type = SUBST_NAME }, -+ { .name = "links", .fmt = 'L', .type = SUBST_LINKS }, -+ { .name = "root", .fmt = 'r', .type = SUBST_ROOT }, -+ { .name = "sys", .fmt = 'S', .type = SUBST_SYS }, - }; - const char *from; - char *s; diff --git a/1015-udev-properly-handle-symlink-removal-by-change-event.patch b/1015-udev-properly-handle-symlink-removal-by-change-event.patch deleted file mode 100644 index e579a466..00000000 --- a/1015-udev-properly-handle-symlink-removal-by-change-event.patch +++ /dev/null @@ -1,69 +0,0 @@ -From bf9d233f781f27841be6638ee745e9c80bda5f4d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 13 Nov 2012 02:05:06 +0100 -Subject: [PATCH] udev: properly handle symlink removal by 'change' event - -If a 'change' event is supposed to remove created symlinks, we create -a new device structure from the sysfs device and fill it with the list -of links, to compute the delta of the old and new list of links to apply. -If the device is already 'remove'd by the kernel though, udev fails to -create the device structure, so the links are not removed properly. - -> From: Neil Brown -> Date: Thu, 8 Nov 2012 10:39:06 +0100 -> Subject: [PATCH] If a 'change' event does not get handled by udev until -> after the device has subsequently disappeared, udev mis-handles -> it. This can happen with 'md' devices which emit a change -> event and then a remove event when they are stopped. It is -> normally only noticed if udev is very busy (lots of arrays -> being stopped at once) or the machine is otherwise loaded -> and reponding slowly. -> -> There are two problems. -> -> 1/ udev_device_new_from_syspath() will refuse to create the device -> structure if the device does not exist in /sys, and particularly if -> the uevent file does not exist. -> If a 'db' file does exist, that is sufficient evidence that the device -> is genuine and should be created. Equally if we have just received an -> event from the kernel about the device, it must be real. -> -> This patch just disabled the test for the 'uevent' file, it doesn't -> try imposing any other tests - it isn't clear that they are really -> needed. -> -> 2/ udev_event_execute_rules() calls udev_device_read_db() on a 'device' -> structure that is largely uninitialised and in particular does not -> have the 'subsystem' set. udev_device_read_db() needs the subsystem -> so it tries to read the 'subsystem' symlink out of sysfs. If the -> device is already deleted, this naturally fails. -> udev_event_execute_rules() knows the subsystem (as it was in the -> event message) so this patch simply sets the subsystem for the device -> structure to be loaded to match the subsystem of the device structure -> that is handling the event. -> -> With these two changes, deleted handling of change events will still -> correctly remove any symlinks that are not needed any more. - -Use udev_device_new() instead of allowing udev_device_new_from_syspath() -to proceed without a sysfs device. ---- - src/udev/udev-event.c | 4 +++- - 1 files changed, 3 insertions(+), 1 deletions(-) - -Index: systemd-195/src/udev/udev-event.c -=================================================================== ---- systemd-195.orig/src/udev/udev-event.c -+++ systemd-195/src/udev/udev-event.c -@@ -797,8 +797,10 @@ int udev_event_execute_rules(struct udev - if (major(udev_device_get_devnum(dev)) != 0) - udev_node_remove(dev); - } else { -- event->dev_db = udev_device_new_from_syspath(event->udev, udev_device_get_syspath(dev)); -+ event->dev_db = udev_device_new(event->udev); - 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_read_db(event->dev_db, NULL); - udev_device_set_info_loaded(event->dev_db); - diff --git a/1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch b/1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch deleted file mode 100644 index bf6d799e..00000000 --- a/1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch +++ /dev/null @@ -1,64 +0,0 @@ -Index: systemd-195/src/udev/udev-builtin.c -=================================================================== ---- systemd-195.orig/src/udev/udev-builtin.c -+++ systemd-195/src/udev/udev-builtin.c -@@ -42,24 +42,18 @@ static const struct udev_builtin *builti - #endif - }; - --int udev_builtin_init(struct udev *udev) -+void udev_builtin_init(struct udev *udev) - { - unsigned int i; -- int err = 0; - - if (initialized) -- return 0; -+ return; - -- for (i = 0; i < ELEMENTSOF(builtins); i++) { -- if (builtins[i]->init) { -- err = builtins[i]->init(udev); -- if (err < 0) -- break; -- } -- } -+ for (i = 0; i < ELEMENTSOF(builtins); i++) -+ if (builtins[i]->init) -+ builtins[i]->init(udev); - - initialized = true; -- return err; - } - - void udev_builtin_exit(struct udev *udev) -@@ -79,13 +73,11 @@ void udev_builtin_exit(struct udev *udev - bool udev_builtin_validate(struct udev *udev) - { - unsigned int i; -- bool change = false; - - for (i = 0; i < ELEMENTSOF(builtins); i++) -- if (builtins[i]->validate) -- if (builtins[i]->validate(udev)) -- change = true; -- return change; -+ if (builtins[i]->validate && builtins[i]->validate(udev)) -+ return true; -+ return false; - } - - void udev_builtin_list(struct udev *udev) -Index: systemd-195/src/udev/udev.h -=================================================================== ---- systemd-195.orig/src/udev/udev.h -+++ systemd-195/src/udev/udev.h -@@ -167,7 +167,7 @@ extern const struct udev_builtin udev_bu - extern const struct udev_builtin udev_builtin_usb_db; - extern const struct udev_builtin udev_builtin_usb_id; - extern const struct udev_builtin udev_builtin_uaccess; --int udev_builtin_init(struct udev *udev); -+void udev_builtin_init(struct udev *udev); - void udev_builtin_exit(struct udev *udev); - enum udev_builtin_cmd udev_builtin_lookup(const char *command); - const char *udev_builtin_name(enum udev_builtin_cmd cmd); diff --git a/1017-udev-use-usec_t-and-now.patch b/1017-udev-use-usec_t-and-now.patch deleted file mode 100644 index ca0b0131..00000000 --- a/1017-udev-use-usec_t-and-now.patch +++ /dev/null @@ -1,335 +0,0 @@ -Index: systemd-195/src/libudev/libudev-device-private.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-device-private.c -+++ systemd-195/src/libudev/libudev-device-private.c -@@ -147,7 +147,7 @@ int udev_device_update_db(struct udev_de - } - - if (udev_device_get_usec_initialized(udev_device) > 0) -- fprintf(f, "I:%llu\n", udev_device_get_usec_initialized(udev_device)); -+ fprintf(f, "I:%llu\n", (unsigned long long)udev_device_get_usec_initialized(udev_device)); - - udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(udev_device)) { - if (!udev_list_entry_get_num(list_entry)) -Index: systemd-195/src/libudev/libudev-device.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-device.c -+++ systemd-195/src/libudev/libudev-device.c -@@ -67,7 +67,7 @@ struct udev_device { - struct udev_list sysattr_list; - struct udev_list tags_list; - unsigned long long int seqnum; -- unsigned long long int usec_initialized; -+ usec_t usec_initialized; - int timeout; - int devlink_priority; - int refcount; -@@ -262,7 +262,7 @@ static int udev_device_set_devtype(struc - return 0; - } - --static int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem) -+int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem) - { - free(udev_device->subsystem); - udev_device->subsystem = strdup(subsystem); -@@ -1286,7 +1286,7 @@ _public_ const char *udev_device_get_act - **/ - _public_ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device) - { -- unsigned long long now_ts; -+ usec_t now_ts; - - if (udev_device == NULL) - return 0; -@@ -1294,23 +1294,23 @@ _public_ unsigned long long int udev_dev - udev_device_read_db(udev_device, NULL); - if (udev_device->usec_initialized == 0) - return 0; -- now_ts = now_usec(); -+ now_ts = now(CLOCK_MONOTONIC); - if (now_ts == 0) - return 0; - return now_ts - udev_device->usec_initialized; - } - --unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device) -+usec_t udev_device_get_usec_initialized(struct udev_device *udev_device) - { - return udev_device->usec_initialized; - } - --void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized) -+void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized) - { - char num[32]; - - udev_device->usec_initialized = usec_initialized; -- snprintf(num, sizeof(num), "%llu", usec_initialized); -+ snprintf(num, sizeof(num), "%llu", (unsigned long long)usec_initialized); - udev_device_add_property(udev_device, "USEC_INITIALIZED", num); - } - -Index: systemd-195/src/libudev/libudev-private.h -=================================================================== ---- systemd-195.orig/src/libudev/libudev-private.h -+++ systemd-195/src/libudev/libudev-private.h -@@ -48,6 +48,7 @@ struct udev_list_entry *udev_get_propert - /* libudev-device.c */ - struct udev_device *udev_device_new(struct udev *udev); - mode_t udev_device_get_devnode_mode(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_devnode(struct udev_device *udev_device, const char *devnode); - int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink); -@@ -66,8 +67,8 @@ void udev_device_set_is_initialized(stru - int udev_device_add_tag(struct udev_device *udev_device, const char *tag); - void udev_device_cleanup_tags_list(struct udev_device *udev_device); - int udev_device_get_timeout(struct udev_device *udev_device); --unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device); --void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized); -+usec_t udev_device_get_usec_initialized(struct udev_device *udev_device); -+void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized); - int udev_device_get_devlink_priority(struct udev_device *udev_device); - int udev_device_set_devlink_priority(struct udev_device *udev_device, int prio); - int udev_device_get_watch_handle(struct udev_device *udev_device); -@@ -166,7 +167,5 @@ uid_t util_lookup_user(struct udev *udev - 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); --unsigned long long ts_usec(const struct timespec *ts); --unsigned long long now_usec(void); - ssize_t print_kmsg(const char *fmt, ...) __attribute__((format(printf, 1, 2))); - #endif -Index: systemd-195/src/libudev/libudev-util.c -=================================================================== ---- systemd-195.orig/src/libudev/libudev-util.c -+++ systemd-195/src/libudev/libudev-util.c -@@ -691,23 +691,6 @@ uint64_t util_string_bloom64(const char - return bits; - } - --#define USEC_PER_SEC 1000000ULL --#define NSEC_PER_USEC 1000ULL --unsigned long long ts_usec(const struct timespec *ts) --{ -- return (unsigned long long) ts->tv_sec * USEC_PER_SEC + -- (unsigned long long) ts->tv_nsec / NSEC_PER_USEC; --} -- --unsigned long long now_usec(void) --{ -- struct timespec ts; -- -- if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) -- return 0; -- return ts_usec(&ts); --} -- - ssize_t print_kmsg(const char *fmt, ...) - { - int fd; -Index: systemd-195/src/udev/udev-event.c -=================================================================== ---- systemd-195.orig/src/udev/udev-event.c -+++ systemd-195/src/udev/udev-event.c -@@ -48,7 +48,7 @@ struct udev_event *udev_event_new(struct - event->udev = udev; - udev_list_init(udev, &event->run_list, false); - event->fd_signal = -1; -- event->birth_usec = now_usec(); -+ event->birth_usec = now(CLOCK_MONOTONIC); - event->timeout_usec = 30 * 1000 * 1000; - return event; - } -@@ -466,9 +466,9 @@ static void spawn_read(struct udev_event - int i; - - if (event->timeout_usec > 0) { -- unsigned long long age_usec; -+ usec_t age_usec; - -- age_usec = now_usec() - event->birth_usec; -+ age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; - if (age_usec >= event->timeout_usec) { - log_error("timeout '%s'\n", cmd); - goto out; -@@ -554,9 +554,9 @@ static int spawn_wait(struct udev_event - int fdcount; - - if (event->timeout_usec > 0) { -- unsigned long long age_usec; -+ usec_t age_usec; - -- age_usec = now_usec() - event->birth_usec; -+ age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; - if (age_usec >= event->timeout_usec) - timeout = 1000; - else -@@ -862,7 +862,7 @@ int udev_event_execute_rules(struct udev - if (event->dev_db != NULL && udev_device_get_usec_initialized(event->dev_db) > 0) - udev_device_set_usec_initialized(event->dev, udev_device_get_usec_initialized(event->dev_db)); - else if (udev_device_get_usec_initialized(event->dev) == 0) -- udev_device_set_usec_initialized(event->dev, now_usec()); -+ udev_device_set_usec_initialized(event->dev, now(CLOCK_MONOTONIC)); - - /* (re)write database file */ - udev_device_update_db(dev); -Index: systemd-195/src/udev/udev-rules.c -=================================================================== ---- systemd-195.orig/src/udev/udev-rules.c -+++ systemd-195/src/udev/udev-rules.c -@@ -47,7 +47,7 @@ struct uid_gid { - struct udev_rules { - struct udev *udev; - char **dirs; -- unsigned long long *dirs_ts_usec; -+ usec_t *dirs_ts_usec; - int resolve_names; - - /* every key in the rules file becomes a token */ -@@ -1691,7 +1691,7 @@ bool udev_rules_check_timestamp(struct u - if (stat(rules->dirs[i], &stats) < 0) - continue; - -- if (rules->dirs_ts_usec[i] == ts_usec(&stats.st_mtim)) -+ if (rules->dirs_ts_usec[i] == timespec_load(&stats.st_mtim)) - continue; - - /* first check */ -@@ -1701,7 +1701,7 @@ bool udev_rules_check_timestamp(struct u - } - - /* update timestamp */ -- rules->dirs_ts_usec[i] = ts_usec(&stats.st_mtim); -+ rules->dirs_ts_usec[i] = timespec_load(&stats.st_mtim); - } - out: - return changed; -Index: systemd-195/src/udev/udev.h -=================================================================== ---- systemd-195.orig/src/udev/udev.h -+++ systemd-195/src/udev/udev.h -@@ -41,8 +41,8 @@ struct udev_event { - gid_t gid; - struct udev_list run_list; - int exec_delay; -- unsigned long long birth_usec; -- unsigned long long timeout_usec; -+ usec_t birth_usec; -+ usec_t timeout_usec; - int fd_signal; - unsigned int builtin_run; - unsigned int builtin_ret; -Index: systemd-195/src/udev/udevadm-settle.c -=================================================================== ---- systemd-195.orig/src/udev/udevadm-settle.c -+++ systemd-195/src/udev/udevadm-settle.c -@@ -47,9 +47,9 @@ static int adm_settle(struct udev *udev, - { "help", no_argument, NULL, 'h' }, - {} - }; -- unsigned long long start_usec = now_usec(); -- unsigned long long start = 0; -- unsigned long long end = 0; -+ usec_t start_usec = now(CLOCK_MONOTONIC); -+ usec_t start = 0; -+ usec_t end = 0; - int quiet = 0; - const char *exists = NULL; - unsigned int timeout = 120; -@@ -123,7 +123,7 @@ static int adm_settle(struct udev *udev, - start = 0; - end = 0; - } -- log_debug("start=%llu end=%llu current=%llu\n", start, end, kernel_seq); -+ log_debug("start=%llu end=%llu current=%llu\n", (unsigned long long)start, (unsigned long long)end, kernel_seq); - } else { - if (end > 0) { - log_error("seq-end needs seq-start parameter, ignoring\n"); -@@ -199,9 +199,9 @@ static int adm_settle(struct udev *udev, - } - - if (timeout > 0) { -- unsigned long long age_usec; -+ usec_t age_usec; - -- age_usec = now_usec() - start_usec; -+ age_usec = now(CLOCK_MONOTONIC) - start_usec; - if (age_usec / (1000 * 1000) >= timeout) { - struct udev_list_entry *list_entry; - -Index: systemd-195/src/udev/udevd.c -=================================================================== ---- systemd-195.orig/src/udev/udevd.c -+++ systemd-195/src/udev/udevd.c -@@ -122,7 +122,7 @@ struct worker { - struct udev_monitor *monitor; - enum worker_state state; - struct event *event; -- unsigned long long event_start_usec; -+ usec_t event_start_usec; - }; - - /* passed from worker to main process */ -@@ -378,7 +378,7 @@ out: - worker->monitor = worker_monitor; - worker->pid = pid; - worker->state = WORKER_RUNNING; -- worker->event_start_usec = now_usec(); -+ worker->event_start_usec = now(CLOCK_MONOTONIC); - worker->event = event; - event->state = EVENT_RUNNING; - udev_list_node_append(&worker->node, &worker_list); -@@ -409,7 +409,7 @@ static void event_run(struct event *even - worker_ref(worker); - worker->event = event; - worker->state = WORKER_RUNNING; -- worker->event_start_usec = now_usec(); -+ worker->event_start_usec = now(CLOCK_MONOTONIC); - event->state = EVENT_RUNNING; - return; - } -@@ -1381,7 +1381,7 @@ int main(int argc, char *argv[]) - udev_list_node_init(&worker_list); - - for (;;) { -- static unsigned long long last_usec; -+ static usec_t last_usec; - struct epoll_event ev[8]; - int fdcount; - int timeout; -@@ -1452,7 +1452,7 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now_usec() - worker->event_start_usec) > 30 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { - log_error("worker [%u] %s timeout; kill it\n", worker->pid, - worker->event ? worker->event->devpath : ""); - kill(worker->pid, SIGKILL); -@@ -1486,13 +1486,13 @@ int main(int argc, char *argv[]) - } - - /* check for changed config, every 3 seconds at most */ -- if ((now_usec() - last_usec) > 3 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) { - if (udev_rules_check_timestamp(rules)) - reload = true; - if (udev_builtin_validate(udev)) - reload = true; - -- last_usec = now_usec(); -+ last_usec = now(CLOCK_MONOTONIC); - } - - /* reload requested, HUP signal received, rules changed, builtin changed */ -@@ -1512,7 +1512,7 @@ int main(int argc, char *argv[]) - - dev = udev_monitor_receive_device(monitor); - if (dev != NULL) { -- udev_device_set_usec_initialized(dev, now_usec()); -+ udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); - if (rules == NULL) - rules = udev_rules_new(udev, resolve_names); - if (event_queue_insert(dev) < 0) diff --git a/1018-keymap-add-aditional-support.patch b/1018-keymap-add-aditional-support.patch deleted file mode 100644 index f277245b..00000000 --- a/1018-keymap-add-aditional-support.patch +++ /dev/null @@ -1,59 +0,0 @@ -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -2246,6 +2246,8 @@ dist_udevkeymap_DATA = \ - keymaps/hewlett-packard-presario-2100 \ - keymaps/hewlett-packard-tablet \ - keymaps/hewlett-packard-tx2 \ -+ keymaps/hewlett-packard_elitebook-8440p \ -+ keymaps/hewlett-packard-hdx9494nr \ - keymaps/ibm-thinkpad-usb-keyboard-trackpoint \ - keymaps/inventec-symphony_6.0_7.0 \ - keymaps/lenovo-3000 \ -Index: systemd-195/keymaps/hewlett-packard-hdx9494nr -=================================================================== ---- /dev/null -+++ systemd-195/keymaps/hewlett-packard-hdx9494nr -@@ -0,0 +1,3 @@ -+0xB2 www # FnF3 -+0xD8 f23 # touchpad off -+0xD9 f22 # touchpad on -Index: systemd-195/keymaps/hewlett-packard_elitebook-8440p -=================================================================== ---- /dev/null -+++ systemd-195/keymaps/hewlett-packard_elitebook-8440p -@@ -0,0 +1,5 @@ -+0x88 www -+0xA0 mute -+0xAE volumedown -+0xB0 volumeup -+0xEC mail -Index: systemd-195/src/udev/keymap/95-keyboard-force-release.rules -=================================================================== ---- systemd-195.orig/src/udev/keymap/95-keyboard-force-release.rules -+++ systemd-195/src/udev/keymap/95-keyboard-force-release.rules -@@ -42,7 +42,7 @@ ENV{DMI_VENDOR}=="Viooo Corporation", AT - # These are all the HP laptops that setup a touchpad toggle key - ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[pP][aA][vV][iI][lL][iI][oO][nN]*", RUN+="keyboard-force-release.sh $devpath hp-other" - ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keyboard-force-release.sh $devpath hp-other" --ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC", RUN+="keyboard-force-release.sh $devpath hp-other" -+ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC|HDX9494NR", RUN+="keyboard-force-release.sh $devpath hp-other" - - ENV{DMI_VENDOR}=="Zepto", ATTR{[dmi/id]product_name}=="Znote 6615WD", RUN+="keyboard-force-release.sh $devpath common-volume-keys" - -Index: systemd-195/src/udev/keymap/95-keymap.rules -=================================================================== ---- systemd-195.orig/src/udev/keymap/95-keymap.rules -+++ systemd-195/src/udev/keymap/95-keymap.rules -@@ -96,7 +96,9 @@ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATT - ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keymap $name hewlett-packard-tx2" - ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*", RUN+="keymap $name hewlett-packard-presario-2100" - ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP G62 Notebook PC", RUN+="keymap $name 0xB2 www" --ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill" -+ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill 0xB2 www" -+ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP EliteBook 8440p", RUN+="keymap $name hewlett-packard_elitebook-8440p" -+ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HDX9494NR", RUN+="keymap $name hewlett-packard-hdx9494nr" - # HP Pavillion dv6315ea has empty DMI_VENDOR - ATTR{[dmi/id]board_vendor}=="Quanta", ATTR{[dmi/id]board_name}=="30B7", ATTR{[dmi/id]board_version}=="65.2B", RUN+="keymap $name 0x88 media" # "quick play - diff --git a/1019-udev-Fix-device-matching-in-the-accelerometer.patch b/1019-udev-Fix-device-matching-in-the-accelerometer.patch deleted file mode 100644 index 16f930a4..00000000 --- a/1019-udev-Fix-device-matching-in-the-accelerometer.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 1d010426c01044350b2b32d8b3af5d064f7dfe27 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Thu, 10 Jan 2013 14:23:23 +0100 -Subject: [PATCH] udev: Fix device matching in the accelerometer - -As we were searching by ID_PATH, it would have been possible -for us to find a sibling device instead of the device we were -looking for. - -This fixes device matching on the WeTab with the upstream kernel, -as it was trying to use the "Asus Laptop extra buttons" device -instead of the accelerometer. ---- - src/udev/accelerometer/accelerometer.c | 11 +---------- - 1 files changed, 1 insertions(+), 10 deletions(-) - -diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c -index 21f5193..2fea388 100644 ---- a/src/udev/accelerometer/accelerometer.c -+++ b/src/udev/accelerometer/accelerometer.c -@@ -257,7 +257,6 @@ int main (int argc, char** argv) - - char devpath[PATH_MAX]; - char *devnode; -- const char *id_path; - struct udev_enumerate *enumerate; - struct udev_list_entry *list_entry; - -@@ -303,18 +302,10 @@ int main (int argc, char** argv) - return 1; - } - -- id_path = udev_device_get_property_value(dev, "ID_PATH"); -- if (id_path == NULL) { -- fprintf (stderr, "unable to get property ID_PATH for '%s'", devpath); -- return 0; -- } -- - /* Get the children devices and find the devnode */ -- /* FIXME: use udev_enumerate_add_match_parent() instead */ - devnode = NULL; - enumerate = udev_enumerate_new(udev); -- udev_enumerate_add_match_property(enumerate, "ID_PATH", id_path); -- udev_enumerate_add_match_subsystem(enumerate, "input"); -+ udev_enumerate_add_match_parent(enumerate, dev); - udev_enumerate_scan_devices(enumerate); - udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(enumerate)) { - struct udev_device *device; --- -1.7.7 - diff --git a/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch b/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch deleted file mode 100644 index ad6d27b2..00000000 --- a/1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 2ffcfb9b45262271019d1751cafc895c3dae8f0e Mon Sep 17 00:00:00 2001 -From: Robert Milasan -Date: Sun, 10 Feb 2013 11:00:20 +0100 -Subject: [PATCH] usb_id: some strange devices have a very bogus or strange serial - numer, making a mess in /dev/disk/by-id. Let's check if the - serial number is a valid, otherwise don't use it. - ---- - src/udev/udev-builtin-usb_id.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -Index: systemd-195/src/udev/udev-builtin-usb_id.c -=================================================================== ---- systemd-195.orig/src/udev/udev-builtin-usb_id.c -+++ systemd-195/src/udev/udev-builtin-usb_id.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -31,6 +32,26 @@ - - #include "udev.h" - -+static bool valid_string(const char *str) -+{ -+ const char *s; -+ -+ if (!str) -+ return false; -+ -+ for (s = str; *s != '\0'; s++) { -+ if ((*s >= 'a' && *s <= 'z') || -+ (*s >= 'A' && *s <= 'Z') || -+ (*s >= '0' && *s <= '9') || -+ *s == '-' || *s == '_') -+ continue; -+ else -+ return false; -+ } -+ -+ return true; -+} -+ - static void set_usb_iftype(char *to, int if_class_num, size_t len) - { - const char *type = "generic"; -@@ -428,10 +449,10 @@ fallback: - } - - if (serial_str[0] == '\0') { -- const char *usb_serial; -+ const char *usb_serial = NULL; - - usb_serial = udev_device_get_sysattr_value(dev_usb, "serial"); -- if (usb_serial) { -+ if (valid_string(usb_serial)) { - util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1); - util_replace_chars(serial_str, NULL); - } diff --git a/1021-create-default-links-for-primary-cd_dvd-drive.patch b/1021-create-default-links-for-primary-cd_dvd-drive.patch index d44af024..c66a9da0 100644 --- a/1021-create-default-links-for-primary-cd_dvd-drive.patch +++ b/1021-create-default-links-for-primary-cd_dvd-drive.patch @@ -1,8 +1,17 @@ -Index: systemd-195/rules/60-cdrom_id.rules -=================================================================== ---- systemd-195.orig/rules/60-cdrom_id.rules -+++ systemd-195/rules/60-cdrom_id.rules -@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr +From: Robert Milasan +Date: Tue, 12 Feb 2013 09:16:23 +0000 +Subject: create default links for primary cd_dvd drive + +cdrom_id: created links for the default cd/dvd drive (bnc#783054). +--- + rules/60-cdrom_id.rules | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules +index 6eaf76a..ec0b19a 100644 +--- a/rules/60-cdrom_id.rules ++++ b/rules/60-cdrom_id.rules +@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdr # enable the receiving of media eject button events IMPORT{program}="cdrom_id --lock-media $devnode" diff --git a/1022-udev-use-unique-names-for-temporary-files-created-in.patch b/1022-udev-use-unique-names-for-temporary-files-created-in.patch deleted file mode 100644 index a3516edb..00000000 --- a/1022-udev-use-unique-names-for-temporary-files-created-in.patch +++ /dev/null @@ -1,57 +0,0 @@ -Index: systemd-195/src/udev/udev-node.c -=================================================================== ---- systemd-195.orig/src/udev/udev-node.c -+++ systemd-195/src/udev/udev-node.c -@@ -31,15 +31,13 @@ - - #include "udev.h" - --#define TMP_FILE_EXT ".udev-tmp" -- --static int node_symlink(struct udev *udev, const char *node, const char *slink) -+static int node_symlink(struct udev_device *dev, const char *node, const char *slink) - { - struct stat stats; - char target[UTIL_PATH_SIZE]; - char *s; - size_t l; -- char slink_tmp[UTIL_PATH_SIZE + sizeof(TMP_FILE_EXT)]; -+ char slink_tmp[UTIL_PATH_SIZE + 32]; - int i = 0; - int tail = 0; - int err = 0; -@@ -101,7 +99,7 @@ static int node_symlink(struct udev *ude - } - - log_debug("atomically replace '%s'\n", slink); -- util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, TMP_FILE_EXT, NULL); -+ util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, ".tmp-", udev_device_get_id_filename(dev), NULL); - unlink(slink_tmp); - do { - err = mkdir_parents_label(slink_tmp, 0755); -@@ -204,7 +202,7 @@ static void link_update(struct udev_devi - util_delete_path(udev, slink); - } else { - log_debug("creating link '%s' to '%s'\n", slink, target); -- node_symlink(udev, target, slink); -+ node_symlink(dev, target, slink); - } - - if (add) { -@@ -304,7 +302,6 @@ out: - - void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid) - { -- struct udev *udev = udev_device_get_udev(dev); - char filename[UTIL_PATH_SIZE]; - struct udev_list_entry *list_entry; - -@@ -318,7 +315,7 @@ void udev_node_add(struct udev_device *d - snprintf(filename, sizeof(filename), "/dev/%s/%u:%u", - strcmp(udev_device_get_subsystem(dev), "block") == 0 ? "block" : "char", - major(udev_device_get_devnum(dev)), minor(udev_device_get_devnum(dev))); -- node_symlink(udev, udev_device_get_devnode(dev), filename); -+ node_symlink(dev, udev_device_get_devnode(dev), filename); - - /* create/update symlinks, add symlinks to name index */ - udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev)) diff --git a/1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch b/1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch deleted file mode 100644 index 54036570..00000000 --- a/1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch +++ /dev/null @@ -1,51 +0,0 @@ -From a0ec302b9309bc56f6bed6162e47ad6c27165747 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Tue, 12 Feb 2013 15:19:38 +0100 -Subject: [PATCH] cdrom_id: add data track count for bad virtual drive - implementations -Organization: SUSE Linux - -/# /lib/udev/cdrom_id --debug /dev/sr0 -probing: '/dev/sr0' -INQUIRY: [AMI ][Virtual CDROM ][1.00] -GET CONFIGURATION failed with SK=5h/ASC=20h/ACQ=00h -drive is pre-MMC2 and does not support 46h get configuration command -trying to work around the problem -READ DISC INFORMATION failed with SK=5h/ASC=20h/ACQ=00h -no current profile, but disc is present; assuming CD-ROM -READ TOC: len: 12, start track: 1, end track: 1 -last track 1 starts at block 0 -READ DISC INFORMATION failed with SK=5h/ASC=20h/ACQ=00h -ID_CDROM=1 -ID_CDROM_MEDIA=1 -ID_CDROM_MEDIA_CD=1 - -What is missing here is ID_CDROM_MEDIA_TRACK_COUNT_DATA to trigger -blkid in /lib/udev/rules.d/60-persistent-storage.rules - -KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", - ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", - ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \ - IMPORT{builtin}="blkid --noraid" - -Signed-off-by: Robert Milasan ---- - src/udev/cdrom_id/cdrom_id.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c -index 1056536..b659cc3 100644 ---- a/src/udev/cdrom_id/cdrom_id.c -+++ b/src/udev/cdrom_id/cdrom_id.c -@@ -513,6 +513,8 @@ static int cd_profiles_old_mmc(struct udev *udev, int fd) - if (cd_media == 1) { - log_debug("no current profile, but disc is present; assuming CD-ROM\n"); - cd_media_cd_rom = 1; -+ cd_media_track_count = 1; -+ cd_media_track_count_data = 1; - return 0; - } else { - log_debug("no current profile, assuming no media\n"); --- -1.7.7 - diff --git a/1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch b/1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch deleted file mode 100644 index 08ace924..00000000 --- a/1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 7962afbba9016ea03d9f2987fee341443fcde39d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 17 Feb 2013 21:16:56 +0100 -Subject: [PATCH] udev: usb_id: parse only 'size' bytes of the 'descriptors' - buffer - -Signed-off-by: Robert Milasan ---- - src/udev/udev-builtin-usb_id.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -Index: systemd-195/src/udev/udev-builtin-usb_id.c -=================================================================== ---- systemd-195.orig/src/udev/udev-builtin-usb_id.c -+++ systemd-195/src/udev/udev-builtin-usb_id.c -@@ -210,7 +210,7 @@ static int dev_if_packed_info(struct ude - pos = 0; - strpos = 0; - ifs_str[0] = '\0'; -- while (pos < sizeof(buf) && strpos+7 < len-2) { -+ while (pos < size && strpos+7 < len-2) { - struct usb_interface_descriptor *desc; - char if_str[8]; - diff --git a/1025-udev-expose-new-ISO9660-properties-from-libblkid.patch b/1025-udev-expose-new-ISO9660-properties-from-libblkid.patch deleted file mode 100644 index 173b3431..00000000 --- a/1025-udev-expose-new-ISO9660-properties-from-libblkid.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ddb5bee15a6ad71e5b596c035c1ee4dc04d5fd2e Mon Sep 17 00:00:00 2001 -From: "Zeeshan Ali (Khattak)" -Date: Sun, 17 Feb 2013 03:21:27 +0200 -Subject: [PATCH] udev: expose new ISO9660 properties from libblkid - -Signed-off-by: Robert Milasan ---- - src/udev/udev-builtin-blkid.c | 16 ++++++++++++++++ - 1 files changed, 16 insertions(+), 0 deletions(-) - -Index: systemd-195/src/udev/udev-builtin-blkid.c -=================================================================== ---- systemd-195.orig/src/udev/udev-builtin-blkid.c -+++ systemd-195/src/udev/udev-builtin-blkid.c -@@ -78,6 +78,22 @@ static void print_property(struct udev_d - } else if (startswith(name, "PART_ENTRY_")) { - util_strscpyl(s, sizeof(s), "ID_", name, NULL); - udev_builtin_add_property(dev, test, s, value); -+ -+ } else if (streq(name, "SYSTEM_ID")) { -+ blkid_encode_string(value, s, sizeof(s)); -+ udev_builtin_add_property(dev, test, "ID_FS_SYSTEM_ID", s); -+ -+ } else if (streq(name, "PUBLISHER_ID")) { -+ blkid_encode_string(value, s, sizeof(s)); -+ udev_builtin_add_property(dev, test, "ID_FS_PUBLISHER_ID", s); -+ -+ } else if (streq(name, "APPLICATION_ID")) { -+ blkid_encode_string(value, s, sizeof(s)); -+ udev_builtin_add_property(dev, test, "ID_FS_APPLICATION_ID", s); -+ -+ } else if (streq(name, "BOOT_SYSTEM_ID")) { -+ blkid_encode_string(value, s, sizeof(s)); -+ udev_builtin_add_property(dev, test, "ID_FS_BOOT_SYSTEM_ID", s); - } - } - diff --git a/1026-re-add-persistent-net.patch b/1026-re-add-persistent-net.patch index 1b05d5ee..dd82550b 100644 --- a/1026-re-add-persistent-net.patch +++ b/1026-re-add-persistent-net.patch @@ -1,7 +1,51 @@ -Index: systemd-195/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== +From: Robert Milasan +Date: Wed, 20 Mar 2013 10:14:59 +0000 +Subject: re-add persistent net + +udev: re-add persistent network rules (bnc#809843). +--- + Makefile.am | 10 +- + .../75-persistent-net-generator.rules | 102 +++++++++++++++ + src/udev/rule_generator/rule_generator.functions | 113 ++++++++++++++++ + src/udev/rule_generator/write_net_rules | 145 +++++++++++++++++++++ + 4 files changed, 369 insertions(+), 1 deletion(-) + create mode 100644 src/udev/rule_generator/75-persistent-net-generator.rules + create mode 100644 src/udev/rule_generator/rule_generator.functions + create mode 100644 src/udev/rule_generator/write_net_rules + +diff --git a/Makefile.am b/Makefile.am +index 10609f3..f5e4159 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2287,6 +2287,14 @@ EXTRA_DIST += \ + src/gudev/seed-example.js + + # ------------------------------------------------------------------------------ ++dist_udevhome_SCRIPTS = \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules ++ ++dist_udevrules_DATA += \ ++ src/udev/rule_generator/75-persistent-net-generator.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_KEYMAP + keymap_SOURCES = \ + src/udev/keymap/keymap.c +@@ -2314,7 +2322,7 @@ dist_udevrules_DATA += \ + src/udev/keymap/95-keymap.rules \ + src/udev/keymap/95-keyboard-force-release.rules + +-dist_udevhome_SCRIPTS = \ ++dist_udevhome_SCRIPTS += \ + src/udev/keymap/findkeyboards \ + src/udev/keymap/keyboard-force-release.sh + +diff --git a/src/udev/rule_generator/75-persistent-net-generator.rules b/src/udev/rule_generator/75-persistent-net-generator.rules +new file mode 100644 +index 0000000..4f80573 --- /dev/null -+++ systemd-195/src/udev/rule_generator/75-persistent-net-generator.rules ++++ b/src/udev/rule_generator/75-persistent-net-generator.rules @@ -0,0 +1,102 @@ +# do not edit this file, it will be overwritten on update + @@ -105,10 +149,11 @@ Index: systemd-195/src/udev/rule_generator/75-persistent-net-generator.rules +ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" + +LABEL="persistent_net_generator_end" -Index: systemd-195/src/udev/rule_generator/rule_generator.functions -=================================================================== +diff --git a/src/udev/rule_generator/rule_generator.functions b/src/udev/rule_generator/rule_generator.functions +new file mode 100644 +index 0000000..087bc34 --- /dev/null -+++ systemd-195/src/udev/rule_generator/rule_generator.functions ++++ b/src/udev/rule_generator/rule_generator.functions @@ -0,0 +1,113 @@ +# functions used by the udev rule generator + @@ -223,63 +268,11 @@ Index: systemd-195/src/udev/rule_generator/rule_generator.functions + $([ -e $RULES_FILE ] && echo $RULES_FILE) \ + 2>/dev/null) +} -Index: systemd-195/Makefile.in -=================================================================== ---- systemd-195.orig/Makefile.in -+++ systemd-195/Makefile.in -@@ -1743,7 +1743,9 @@ am_v4l_id_OBJECTS = src/udev/v4l_id/v4l_ - v4l_id_OBJECTS = $(am_v4l_id_OBJECTS) - v4l_id_DEPENDENCIES = libudev.la - am__dist_udevhome_SCRIPTS_DIST = src/udev/keymap/findkeyboards \ -- src/udev/keymap/keyboard-force-release.sh -+ src/udev/keymap/keyboard-force-release.sh \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules - SCRIPTS = $(dist_bin_SCRIPTS) $(dist_udevhome_SCRIPTS) - AM_V_P = $(am__v_P_@AM_V@) - am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -@@ -2051,7 +2053,8 @@ am__dist_udevrules_DATA_DIST = rules/99- - src/udev/keymap/95-keymap.rules \ - src/udev/keymap/95-keyboard-force-release.rules \ - rules/75-probe_mtd.rules src/login/70-uaccess.rules \ -- src/login/70-power-switch.rules -+ src/login/70-power-switch.rules \ -+ src/udev/rule_generator/75-persistent-net-generator.rules - DATA = $(dbusinterface_DATA) $(dist_bashcompletion_DATA) \ - $(dist_dbuspolicy_DATA) $(dist_dbussystemservice_DATA) \ - $(dist_doc_DATA) $(dist_gatewayddocumentroot_DATA) \ -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -2179,6 +2179,14 @@ EXTRA_DIST += \ - - - # ------------------------------------------------------------------------------ -+dist_udevhome_SCRIPTS = \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules -+ -+dist_udevrules_DATA += \ -+ src/udev/rule_generator/75-persistent-net-generator.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_KEYMAP - keymap_SOURCES = \ - src/udev/keymap/keymap.c -@@ -2206,7 +2214,7 @@ dist_udevrules_DATA += \ - src/udev/keymap/95-keymap.rules \ - src/udev/keymap/95-keyboard-force-release.rules - --dist_udevhome_SCRIPTS = \ -+dist_udevhome_SCRIPTS += \ - src/udev/keymap/findkeyboards \ - src/udev/keymap/keyboard-force-release.sh - -Index: systemd-195/src/udev/rule_generator/write_net_rules -=================================================================== +diff --git a/src/udev/rule_generator/write_net_rules b/src/udev/rule_generator/write_net_rules +new file mode 100644 +index 0000000..fad1cc5 --- /dev/null -+++ systemd-195/src/udev/rule_generator/write_net_rules ++++ b/src/udev/rule_generator/write_net_rules @@ -0,0 +1,145 @@ +#!/bin/sh -e + diff --git a/1027-udev-always-rename-network.patch b/1027-udev-always-rename-network.patch new file mode 100644 index 00000000..d6d56edd --- /dev/null +++ b/1027-udev-always-rename-network.patch @@ -0,0 +1,77 @@ +From: Robert Milasan +Date: Thu, 28 Mar 2013 09:24:43 +0000 +Subject: udev always rename network + +udev: ensure that the network interfaces are renamed even if they exist +(bnc#809843). +--- + src/udev/udev-event.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 43 insertions(+), 3 deletions(-) + +diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c +index 3db2cb7..3ee9039 100644 +--- a/src/udev/udev-event.c ++++ b/src/udev/udev-event.c +@@ -750,6 +750,7 @@ static int rename_netif(struct udev_event *event) + struct udev_device *dev = event->dev; + int sk; + struct ifreq ifr; ++ int loop; + int err; + + log_debug("changing net interface name from '%s' to '%s'\n", +@@ -766,12 +767,51 @@ static int rename_netif(struct udev_event *event) + strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev)); + strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); + err = ioctl(sk, SIOCSIFNAME, &ifr); +- if (err >= 0) { ++ if (err == 0) { + print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); +- } else { ++ goto out; ++ } ++ ++ /* keep trying if the destination interface name already exists */ ++ err = -errno; ++ if (err != -EEXIST) { ++ goto out; ++ } ++ ++ /* free our own name, another process may wait for us */ ++ snprintf(ifr.ifr_newname, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); ++ err = ioctl(sk, SIOCSIFNAME, &ifr); ++ if (err < 0) { + err = -errno; +- log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); ++ goto out; + } ++ ++ /* log temporary name */ ++ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); ++ ++ /* wait a maximum of 90 seconds for our target to become available */ ++ strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname); ++ strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); ++ loop = 90 * 20; ++ while (loop--) { ++ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; ++ ++ log_debug("wait for netif '%s' to become free, loop=%i\n", event->name, (90 * 20) - loop); ++ nanosleep(&duration, NULL); ++ ++ err = ioctl(sk, SIOCSIFNAME, &ifr); ++ if (err == 0) { ++ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); ++ break; ++ } ++ err = -errno; ++ if (err != -EEXIST) ++ break; ++ } ++ ++out: ++ if (err < 0) ++ log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); + close(sk); + return err; + } diff --git a/0001-Add-bootsplash-handling-for-password-dialogs.patch b/Add-bootsplash-handling-for-password-dialogs.patch similarity index 81% rename from 0001-Add-bootsplash-handling-for-password-dialogs.patch rename to Add-bootsplash-handling-for-password-dialogs.patch index 957757ae..bf97901b 100644 --- a/0001-Add-bootsplash-handling-for-password-dialogs.patch +++ b/Add-bootsplash-handling-for-password-dialogs.patch @@ -1,15 +1,17 @@ -From 81eca00461968aac09f9e8535f4327282698b495 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Thu, 16 Dec 2010 11:30:17 +0100 -Subject: [PATCH] Add bootsplash handling for password dialogs +Subject: Add bootsplash handling for password dialogs openSUSE uses bootsplash.org, so add a crude handling for setting the splash screen to verbose when a password is asked... --- -Index: systemd-195/src/shared/ask-password-api.c -=================================================================== ---- systemd-195.orig/src/shared/ask-password-api.c -+++ systemd-195/src/shared/ask-password-api.c + src/shared/ask-password-api.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/src/shared/ask-password-api.c b/src/shared/ask-password-api.c +index 4557155..3750f64 100644 +--- a/src/shared/ask-password-api.c ++++ b/src/shared/ask-password-api.c @@ -63,6 +63,9 @@ int ask_password_tty( bool reset_tty = false; bool silent_mode = false; @@ -40,7 +42,7 @@ Index: systemd-195/src/shared/ask-password-api.c } zero(pollfd); -@@ -240,6 +256,12 @@ finish: +@@ -239,6 +255,12 @@ finish: close_nointr_nofail(ttyfd); } diff --git a/Ensure-debugshell-has-a-correct-value.patch b/Ensure-debugshell-has-a-correct-value.patch new file mode 100644 index 00000000..0babbb0d --- /dev/null +++ b/Ensure-debugshell-has-a-correct-value.patch @@ -0,0 +1,22 @@ +From: Frederic Crozat +Date: Tue, 4 Dec 2012 16:51:32 +0000 +Subject: Ensure debugshell has a correct value + +use /bin/bash if sushell isn't installed (bnc#789052). +--- + units/debug-shell.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/debug-shell.service.in b/units/debug-shell.service.in +index a6acad3..64b5e0d 100644 +--- a/units/debug-shell.service.in ++++ b/units/debug-shell.service.in +@@ -13,7 +13,7 @@ IgnoreOnIsolate=yes + + [Service] + Environment=TERM=linux +-ExecStart=@SUSHELL@ ++ExecStart=/bin/bash -c '[ -x @SUSHELL@ ] && exec @SUSHELL@ || exec /bin/bash' + Restart=always + RestartSec=0 + StandardInput=tty diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch new file mode 100644 index 00000000..2cc1bb48 --- /dev/null +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -0,0 +1,39 @@ +From: Frederic Crozat +Date: Wed, 7 Dec 2011 15:15:07 +0000 +Subject: Fix /run/lock directories permissions to follow openSUSE policy + +disable /var/lock/{subsys,lockdev} and change default permissions on +/var/lock (bnc#733523). +--- + tmpfiles.d/legacy.conf | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tmpfiles.d/legacy.conf b/tmpfiles.d/legacy.conf +index 3fff347..81d5e47 100644 +--- a/tmpfiles.d/legacy.conf ++++ b/tmpfiles.d/legacy.conf +@@ -10,12 +10,13 @@ + # These files are considered legacy and are unnecessary on legacy-free + # systems. + +-d /run/lock 0755 root root - ++# changed for openSUSE : only /run/lock should be available ++d /run/lock 0775 root lock - + + # /run/lock/subsys is used for serializing SysV service execution, and + # hence without use on SysV-less systems. + +-d /run/lock/subsys 0755 root root - ++#d /run/lock/subsys 0755 root root - + + # /run/lock/lockdev is used to serialize access to tty devices via + # LCK..xxx style lock files, For more information see: +@@ -23,7 +24,7 @@ d /run/lock/subsys 0755 root root - + # On modern systems a BSD file lock is a better choice if + # serialization is needed on those devices. + +-d /run/lock/lockdev 0775 root lock - ++#d /run/lock/lockdev 0775 root lock - + + # /forcefsck, /fastboot and /forcequotecheck are deprecated in favor of the + # kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and diff --git a/forward-to-pmutils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch similarity index 71% rename from forward-to-pmutils.patch rename to Forward-suspend-hibernate-calls-to-pm-utils.patch index 2a40213d..8abce1db 100644 --- a/forward-to-pmutils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -1,7 +1,16 @@ -Index: systemd-195/src/sleep/sleep.c -=================================================================== ---- systemd-195.orig/src/sleep/sleep.c -+++ systemd-195/src/sleep/sleep.c +From: Frederic Crozat +Date: Tue, 19 Feb 2013 11:20:31 +0100 +Subject: Forward suspend / hibernate calls to pm-utils + +forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) +--- + src/sleep/sleep.c | 27 ++++++++++++++++++++++++--- + 1 file changed, 24 insertions(+), 3 deletions(-) + +diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c +index f5e78c1..8d91117 100644 +--- a/src/sleep/sleep.c ++++ b/src/sleep/sleep.c @@ -22,6 +22,7 @@ #include #include @@ -10,7 +19,7 @@ Index: systemd-195/src/sleep/sleep.c #include "log.h" #include "util.h" -@@ -31,6 +32,9 @@ +@@ -32,6 +33,9 @@ int main(int argc, char *argv[]) { const char *verb; char* arguments[4]; @@ -20,7 +29,7 @@ Index: systemd-195/src/sleep/sleep.c int r; FILE *f; -@@ -44,17 +48,27 @@ int main(int argc, char *argv[]) { +@@ -45,17 +49,27 @@ int main(int argc, char *argv[]) { goto finish; } @@ -48,10 +57,10 @@ Index: systemd-195/src/sleep/sleep.c /* Configure the hibernation mode */ + if (!delegate_to_pmutils) { if (streq(argv[1], "hibernate")) { - if (write_one_line_file("/sys/power/disk", "platform") < 0) - write_one_line_file("/sys/power/disk", "shutdown"); -@@ -64,13 +78,14 @@ int main(int argc, char *argv[]) { - write_one_line_file("/sys/power/disk", "shutdown"); + if (write_string_file("/sys/power/disk", "platform") < 0) + write_string_file("/sys/power/disk", "shutdown"); +@@ -65,13 +79,14 @@ int main(int argc, char *argv[]) { + write_string_file("/sys/power/disk", "shutdown"); } + @@ -66,7 +75,7 @@ Index: systemd-195/src/sleep/sleep.c arguments[0] = NULL; arguments[1] = (char*) "pre"; arguments[2] = argv[1]; -@@ -96,11 +111,16 @@ int main(int argc, char *argv[]) { +@@ -97,11 +112,16 @@ int main(int argc, char *argv[]) { "SLEEP=hybrid-sleep", NULL); @@ -83,7 +92,7 @@ Index: systemd-195/src/sleep/sleep.c if (streq(argv[1], "suspend")) log_struct(LOG_INFO, -@@ -118,6 +138,7 @@ int main(int argc, char *argv[]) { +@@ -119,6 +139,7 @@ int main(int argc, char *argv[]) { arguments[1] = (char*) "post"; execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments); diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch new file mode 100644 index 00000000..2432288a --- /dev/null +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -0,0 +1,140 @@ +From: Frederic Crozat +Date: Fri, 12 Apr 2013 16:56:26 +0200 +Subject: Revert "service: drop support for SysV scripts for the early boot" + +This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. + +Conflicts: + src/core/service.c +--- + src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 46 insertions(+), 5 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index c13ff35..0b39ec6 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -51,7 +51,8 @@ + + typedef enum RunlevelType { + RUNLEVEL_UP, +- RUNLEVEL_DOWN ++ RUNLEVEL_DOWN, ++ RUNLEVEL_SYSINIT + } RunlevelType; + + static const struct { +@@ -66,6 +67,16 @@ static const struct { + { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, + { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, + ++#ifdef TARGET_SUSE ++ /* SUSE style boot.d */ ++ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++#endif ++ ++#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) ++ /* Debian style rcS.d */ ++ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++#endif ++ + /* Standard SysV runlevels for shutdown */ + { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, + { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } +@@ -74,10 +85,12 @@ static const struct { + directories in this order, and we want to make sure that + sysv_start_priority is known when we first load the + unit. And that value we only know from S links. Hence +- UP must be read before DOWN */ ++ UP/SYSINIT must be read before DOWN */ + }; + + #define RUNLEVELS_UP "12345" ++/* #define RUNLEVELS_DOWN "06" */ ++#define RUNLEVELS_BOOT "bBsS" + #endif + + static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { +@@ -332,6 +345,9 @@ static char *sysv_translate_name(const char *name) { + if (endswith(name, ".sh")) + /* Drop .sh suffix */ + strcpy(stpcpy(r, name) - 3, ".service"); ++ if (startswith(name, "boot.")) ++ /* Drop SuSE-style boot. prefix */ ++ strcpy(stpcpy(r, name + 5), ".service"); + else + /* Normal init script name */ + strcpy(stpcpy(r, name), ".service"); +@@ -934,6 +950,13 @@ static int service_load_sysv_path(Service *s, const char *path) { + + if ((r = sysv_exec_commands(s, supports_reload)) < 0) + goto finish; ++ if (s->sysv_runlevels && ++ chars_intersect(RUNLEVELS_BOOT, s->sysv_runlevels) && ++ chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { ++ /* Service has both boot and "up" runlevels ++ configured. Kill the "up" ones. */ ++ delete_chars(s->sysv_runlevels, RUNLEVELS_UP); ++ } + + if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { + /* If there a runlevels configured for this service +@@ -1015,6 +1038,9 @@ static int service_load_sysv_name(Service *s, const char *name) { + if (endswith(name, ".sh.service")) + return -ENOENT; + ++ if (startswith(name, "boot.")) ++ return -ENOENT; ++ + STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { + char *path; + int r; +@@ -1035,6 +1061,18 @@ static int service_load_sysv_name(Service *s, const char *name) { + } + free(path); + ++ if (r >= 0 && UNIT(s)->load_state == UNIT_STUB) { ++ /* Try SUSE style boot.* init scripts */ ++ ++ path = strjoin(*p, "/boot.", name, NULL); ++ if (!path) ++ return -ENOMEM; ++ ++ /* Drop .service suffix */ ++ path[strlen(path)-8] = 0; ++ r = service_load_sysv_path(s, path); ++ free(path); ++ } + if (r < 0) + return r; + +@@ -3661,7 +3699,7 @@ static int service_enumerate(Manager *m) { + + if (de->d_name[0] == 'S') { + +- if (rcnd_table[i].type == RUNLEVEL_UP) { ++ if (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT) { + SERVICE(service)->sysv_start_priority_from_rcnd = + MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); + +@@ -3678,7 +3716,8 @@ static int service_enumerate(Manager *m) { + goto finish; + + } else if (de->d_name[0] == 'K' && +- (rcnd_table[i].type == RUNLEVEL_DOWN)) { ++ (rcnd_table[i].type == RUNLEVEL_DOWN || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { + + r = set_ensure_allocated(&shutdown_services, + trivial_hash_func, trivial_compare_func); +@@ -3718,7 +3757,9 @@ static int service_enumerate(Manager *m) { + * runlevels we assume the stop jobs will be implicitly added + * by the core logic. Also, we don't really distinguish here + * between the runlevels 0 and 6 and just add them to the +- * special shutdown target. */ ++ * special shutdown target. On SUSE the boot.d/ runlevel is ++ * also used for shutdown, so we add links for that too to the ++ * shutdown target.*/ + SET_FOREACH(service, shutdown_services, j) { + service = unit_follow_merge(service); + diff --git a/agetty-overrides-term.patch b/agetty-overrides-term.patch deleted file mode 100644 index 84f3ff26..00000000 --- a/agetty-overrides-term.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 2161de72c517d34d1ceb9b4c1a300f0b54ce5a9c Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Mon, 29 Oct 2012 21:59:34 +0100 -Subject: [PATCH] units: agetty overrides TERM - -Environment=TERM=... has no effect on agetty who sets it by itself. To -really set TERM to a specified value, it has to be given on the command -line. - -https://bugzilla.redhat.com/show_bug.cgi?id=870622 ---- - units/getty@.service.m4 | 3 +-- - units/serial-getty@.service.m4 | 3 +-- - 2 files changed, 2 insertions(+), 4 deletions(-) - -Index: systemd-195/units/getty@.service.m4 -=================================================================== ---- systemd-195.orig/units/getty@.service.m4 -+++ systemd-195/units/getty@.service.m4 -@@ -41,9 +41,8 @@ IgnoreOnIsolate=yes - ConditionPathExists=/dev/tty0 - - [Service] --Environment=TERM=linux - # the VT is cleared by TTYVTDisallocate --ExecStart=-/sbin/agetty --noclear %I 38400 -+ExecStart=-/sbin/agetty --noclear %I 38400 linux - Type=idle - Restart=always - RestartSec=0 -Index: systemd-195/units/serial-getty@.service.m4 -=================================================================== ---- systemd-195.orig/units/serial-getty@.service.m4 -+++ systemd-195/units/serial-getty@.service.m4 -@@ -37,8 +37,7 @@ Before=getty.target - IgnoreOnIsolate=yes - - [Service] --Environment=TERM=vt102 --ExecStart=-/sbin/agetty -s %I 115200,38400,9600 -+ExecStart=-/sbin/agetty -s %I 115200,38400,9600 vt102 - Type=idle - Restart=always - RestartSec=0 diff --git a/allow-multiple-sulogin-to-be-started.patch b/allow-multiple-sulogin-to-be-started.patch new file mode 100644 index 00000000..297b5792 --- /dev/null +++ b/allow-multiple-sulogin-to-be-started.patch @@ -0,0 +1,47 @@ +From: Frederic Crozat +Date: Thu, 10 Jan 2013 15:43:25 +0000 +Subject: allow multiple sulogin to be started + +allows multiple sulogin instance (bnc#793182). +--- + units/getty@.service.m4 | 1 + + units/rescue.target | 1 + + units/serial-getty@.service.m4 | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 +index 083eb97..243fea5 100644 +--- a/units/getty@.service.m4 ++++ b/units/getty@.service.m4 +@@ -9,6 +9,7 @@ + Description=Getty on %I + Documentation=man:agetty(8) man:systemd-getty-generator(8) + Documentation=http://0pointer.de/blog/projects/serial-console.html ++Conflicts=rescue.service + After=systemd-user-sessions.service plymouth-quit-wait.service + m4_ifdef(`HAVE_SYSV_COMPAT', + After=rc-local.service +diff --git a/units/rescue.target b/units/rescue.target +index 3f59b14..20f6841 100644 +--- a/units/rescue.target ++++ b/units/rescue.target +@@ -10,6 +10,7 @@ Description=Rescue Mode + Documentation=man:systemd.special(7) + Requires=sysinit.target rescue.service + After=sysinit.target rescue.service ++Conflicts=getty.target + AllowIsolate=yes + + [Install] +diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 +index 60d7737..2b18dbf 100644 +--- a/units/serial-getty@.service.m4 ++++ b/units/serial-getty@.service.m4 +@@ -10,6 +10,7 @@ Description=Serial Getty on %I + Documentation=man:agetty(8) man:systemd-getty-generator(8) + Documentation=http://0pointer.de/blog/projects/serial-console.html + BindsTo=dev-%i.device ++Conflicts=rescue.service + After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service + m4_ifdef(`HAVE_SYSV_COMPAT', + After=rc-local.service diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch new file mode 100644 index 00000000..5d5f7b83 --- /dev/null +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -0,0 +1,23 @@ +From: Ludwig Nussel +Date: Mon, 8 Apr 2013 14:51:47 +0200 +Subject: apply ACL for nvidia device nodes + +set ACL on nvidia devices (bnc#808319). +--- + src/login/logind-acl.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c +index cb045a9..51093f2 100644 +--- a/src/login/logind-acl.c ++++ b/src/login/logind-acl.c +@@ -240,6 +240,9 @@ int devnode_acl_all(struct udev *udev, + goto finish; + } + ++ devnode_acl("/dev/nvidia0", flush, del, old_uid, add, new_uid); ++ devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid); ++ + finish: + if (e) + udev_enumerate_unref(e); diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch new file mode 100644 index 00000000..b184dde6 --- /dev/null +++ b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -0,0 +1,38 @@ +From: Ludwig Nussel +Date: Mon, 26 Nov 2012 09:49:42 +0100 +Subject: avoid assertion if invalid address familily is passed to + gethostbyaddr_r (bnc#791101) + +--- + src/nss-myhostname/nss-myhostname.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c +index 16ccb3e..884eb99 100644 +--- a/src/nss-myhostname/nss-myhostname.c ++++ b/src/nss-myhostname/nss-myhostname.c +@@ -383,6 +383,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( + struct address *a; + unsigned n_addresses = 0, n; + ++ if (af != AF_INET && af != AF_INET6) { ++ *errnop = EAFNOSUPPORT; ++ *h_errnop = NO_DATA; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + if (len != PROTO_ADDRESS_SIZE(af)) { + *errnop = EINVAL; + *h_errnop = NO_RECOVERY; +@@ -398,11 +404,6 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( + + if (memcmp(addr, LOCALADDRESS_IPV6, 16) == 0) + goto found; +- +- } else { +- *errnop = EAFNOSUPPORT; +- *h_errnop = NO_DATA; +- return NSS_STATUS_UNAVAIL; + } + + ifconf_acquire_addresses(&addresses, &n_addresses); diff --git a/baselibs.conf b/baselibs.conf index e1e7047d..c06fbf45 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -4,3 +4,4 @@ systemd libudev0 libgudev-1_0-0 libudev1 +nss-myhostname diff --git a/check-for-empty-strings-in-strto-conversions.patch b/check-for-empty-strings-in-strto-conversions.patch deleted file mode 100644 index ce49372e..00000000 --- a/check-for-empty-strings-in-strto-conversions.patch +++ /dev/null @@ -1,92 +0,0 @@ -From f3910003bce32ebdc1dbb71fd9ca2d4b8352b563 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 30 Oct 2012 10:29:40 +0100 -Subject: [PATCH] shared, libsystemd-daemon: check for empty strings in - strto*l conversions - -strtol() and friends may set EINVAL if no conversion was performed, but -they are not required to do so. In practice they don't. We need to check -for it. - -https://bugzilla.redhat.com/show_bug.cgi?id=870577 ---- - src/libsystemd-daemon/sd-daemon.c | 4 ++-- - src/shared/conf-parser.c | 2 +- - src/shared/util.c | 8 ++++---- - 3 files changed, 7 insertions(+), 7 deletions(-) - -Index: systemd-195/src/libsystemd-daemon/sd-daemon.c -=================================================================== ---- systemd-195.orig/src/libsystemd-daemon/sd-daemon.c -+++ systemd-195/src/libsystemd-daemon/sd-daemon.c -@@ -88,7 +88,7 @@ _sd_export_ int sd_listen_fds(int unset_ - goto finish; - } - -- if (!p || *p || l <= 0) { -+ if (!p || p == e || *p || l <= 0) { - r = -EINVAL; - goto finish; - } -@@ -112,7 +112,7 @@ _sd_export_ int sd_listen_fds(int unset_ - goto finish; - } - -- if (!p || *p) { -+ if (!p || p == e || *p) { - r = -EINVAL; - goto finish; - } -Index: systemd-195/src/shared/conf-parser.c -=================================================================== ---- systemd-195.orig/src/shared/conf-parser.c -+++ systemd-195/src/shared/conf-parser.c -@@ -865,7 +865,7 @@ int config_parse_mode( - - errno = 0; - l = strtol(rvalue, &x, 8); -- if (!x || *x || errno) { -+ if (!x || x == rvalue || *x || errno) { - log_error("[%s:%u] Failed to parse mode value, ignoring: %s", filename, line, rvalue); - return 0; - } -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -388,7 +388,7 @@ int safe_atou(const char *s, unsigned *r - errno = 0; - l = strtoul(s, &x, 0); - -- if (!x || *x || errno) -+ if (!x || x == s || *x || errno) - return errno ? -errno : -EINVAL; - - if ((unsigned long) (unsigned) l != l) -@@ -408,7 +408,7 @@ int safe_atoi(const char *s, int *ret_i) - errno = 0; - l = strtol(s, &x, 0); - -- if (!x || *x || errno) -+ if (!x || x == s || *x || errno) - return errno ? -errno : -EINVAL; - - if ((long) (int) l != l) -@@ -428,7 +428,7 @@ int safe_atollu(const char *s, long long - errno = 0; - l = strtoull(s, &x, 0); - -- if (!x || *x || errno) -+ if (!x || x == s || *x || errno) - return errno ? -errno : -EINVAL; - - *ret_llu = l; -@@ -445,7 +445,7 @@ int safe_atolli(const char *s, long long - errno = 0; - l = strtoll(s, &x, 0); - -- if (!x || *x || errno) -+ if (!x || x == s || *x || errno) - return errno ? -errno : -EINVAL; - - *ret_lli = l; diff --git a/core-interpret-escaped-semicolon-as-escaped.patch b/core-interpret-escaped-semicolon-as-escaped.patch deleted file mode 100644 index 945514a7..00000000 --- a/core-interpret-escaped-semicolon-as-escaped.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7e1a84f55244ca78093b1dabc58683bc0e7f4304 Mon Sep 17 00:00:00 2001 -From: Oleksii Shevchuk -Date: Sat, 3 Nov 2012 21:52:02 +0200 -Subject: [PATCH] core: interpret \; token in ExecStart as escaped ; - -Some commands (like 'find') take a semicolon as separate arg. With -current parser implementation there is no way to pass one. - -Patch adds token \; ---- - src/core/load-fragment.c | 2 ++ - src/test/test-unit-file.c | 10 ++++++++++ - 2 files changed, 12 insertions(+) - -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index 5803044..4dc5c52 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -483,6 +483,8 @@ int config_parse_exec( - FOREACH_WORD_QUOTED(w, l, rvalue, state) { - if (strncmp(w, ";", MAX(l, 1U)) == 0) - break; -+ else if (strncmp(w, "\\;", MAX(l, 1U)) == 0) -+ w ++; - - if (honour_argv0 && w == rvalue) { - assert(!path); --- -1.7.10.4 - diff --git a/core-load-fragment-improve-error-message.patch b/core-load-fragment-improve-error-message.patch deleted file mode 100644 index 850698dd..00000000 --- a/core-load-fragment-improve-error-message.patch +++ /dev/null @@ -1,207 +0,0 @@ -From c040936be2a4c77e9465cffae47d77d5ec14fb49 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 19 Nov 2012 16:02:45 +0100 -Subject: [PATCH] core/load-fragment: be more precise in error messages - -Whenever a message fails, mention the offending word, instead -of just giving the whole line. If one bad word causes just this -word to be rejected, print only the word. If one bad word causes -the whole line to be rejected, print the whole line too. - -https://bugs.freedesktop.org/show_bug.cgi?id=56874 ---- - src/core/load-fragment.c | 69 +++++++++++++++++++++------------------------- - 1 file changed, 31 insertions(+), 38 deletions(-) - -Index: systemd-195/src/core/load-fragment.c -=================================================================== ---- systemd-195.orig/src/core/load-fragment.c -+++ systemd-195/src/core/load-fragment.c -@@ -85,7 +85,7 @@ int config_parse_unit_deps( - assert(rvalue); - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { -- char *t, *k; -+ char _cleanup_free_ *t = NULL, *k = NULL; - int r; - - t = strndup(w, l); -@@ -93,15 +93,13 @@ int config_parse_unit_deps( - return -ENOMEM; - - k = unit_name_printf(u, t); -- free(t); - if (!k) - return -ENOMEM; - - r = unit_add_dependency_by_name(u, d, k, NULL, true); - if (r < 0) -- log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", filename, line, k, strerror(-r)); -- -- free(k); -+ log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", -+ filename, line, k, strerror(-r)); - } - - return 0; -@@ -739,22 +737,25 @@ int config_parse_exec_cpu_affinity( - assert(data); - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { -- char *t; -+ char _cleanup_free_ *t = NULL; - int r; - unsigned cpu; - -- if (!(t = strndup(w, l))) -+ t = strndup(w, l); -+ if (!t) - return -ENOMEM; - - r = safe_atou(t, &cpu); -- free(t); - -- if (!(c->cpuset)) -- if (!(c->cpuset = cpu_set_malloc(&c->cpuset_ncpus))) -+ if (!c->cpuset) { -+ c->cpuset = cpu_set_malloc(&c->cpuset_ncpus); -+ if (!c->cpuset) - return -ENOMEM; -+ } - - if (r < 0 || cpu >= c->cpuset_ncpus) { -- log_error("[%s:%u] Failed to parse CPU affinity, ignoring: %s", filename, line, rvalue); -+ log_error("[%s:%u] Failed to parse CPU affinity %s, ignoring: %s", -+ filename, line, t, rvalue); - return 0; - } - -@@ -831,7 +832,8 @@ int config_parse_exec_secure_bits( - else if (first_word(w, "noroot-locked")) - c->secure_bits |= SECURE_NOROOT_LOCKED; - else { -- log_error("[%s:%u] Failed to parse secure bits, ignoring: %s", filename, line, rvalue); -+ log_error("[%s:%u] Failed to parse secure bits, ignoring: %s", -+ filename, line, rvalue); - return 0; - } - } -@@ -872,7 +874,7 @@ int config_parse_bounding_set( - * interface. */ - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { -- char *t; -+ char _cleanup_free_ *t = NULL; - int r; - cap_value_t cap; - -@@ -881,10 +883,9 @@ int config_parse_bounding_set( - return -ENOMEM; - - r = cap_from_name(t, &cap); -- free(t); -- - if (r < 0) { -- log_error("[%s:%u] Failed to parse capability bounding set, ignoring: %s", filename, line, rvalue); -+ log_error("[%s:%u] Failed to parse capability in bounding set, ignoring: %s", -+ filename, line, t); - continue; - } - -@@ -950,7 +951,7 @@ int config_parse_unit_cgroup( - char *state; - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { -- char *t, *k; -+ char _cleanup_free_ *t = NULL, *k = NULL, *ku = NULL; - int r; - - t = strndup(w, l); -@@ -958,22 +959,17 @@ int config_parse_unit_cgroup( - return -ENOMEM; - - k = unit_full_printf(u, t); -- free(t); -- - if (!k) - return -ENOMEM; - -- t = cunescape(k); -- free(k); -- -- if (!t) -+ ku = cunescape(k); -+ if (!ku) - return -ENOMEM; - -- r = unit_add_cgroup_from_text(u, t); -- free(t); -- -+ r = unit_add_cgroup_from_text(u, ku); - if (r < 0) { -- log_error("[%s:%u] Failed to parse cgroup value, ignoring: %s", filename, line, rvalue); -+ log_error("[%s:%u] Failed to parse cgroup value %s, ignoring: %s", -+ filename, line, k, rvalue); - return 0; - } - } -@@ -1333,33 +1329,30 @@ int config_parse_service_sockets( - assert(data); - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { -- char *t, *k; -+ char _cleanup_free_ *t = NULL, *k = NULL; - - t = strndup(w, l); - if (!t) - return -ENOMEM; - - k = unit_name_printf(UNIT(s), t); -- free(t); -- - if (!k) - return -ENOMEM; - - if (!endswith(k, ".socket")) { -- log_error("[%s:%u] Unit must be of type socket, ignoring: %s", filename, line, rvalue); -- free(k); -+ log_error("[%s:%u] Unit must be of type socket, ignoring: %s", -+ filename, line, k); - continue; - } - - r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_WANTS, UNIT_AFTER, k, NULL, true); - if (r < 0) -- log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", filename, line, k, strerror(-r)); -+ log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", -+ filename, line, k, strerror(-r)); - - r = unit_add_dependency_by_name(UNIT(s), UNIT_TRIGGERED_BY, k, NULL, true); - if (r < 0) - return r; -- -- free(k); - } - - return 0; -@@ -2087,17 +2080,17 @@ int config_parse_syscall_filter( - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { - int id; -- char *t; -+ char _cleanup_free_ *t = NULL; - - t = strndup(w, l); - if (!t) - return -ENOMEM; - - id = syscall_from_name(t); -- free(t); - - if (id < 0) { -- log_error("[%s:%u] Failed to parse syscall, ignoring: %s", filename, line, rvalue); -+ log_error("[%s:%u] Failed to parse syscall, ignoring: %s", -+ filename, line, t); - continue; - } - diff --git a/coredumpctl-fix-crash.patch b/coredumpctl-fix-crash.patch deleted file mode 100644 index 6874e9c1..00000000 --- a/coredumpctl-fix-crash.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 348a25edbb87ee4e67aa79fcb97a2bc1b5c11c7b Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 19 Dec 2012 14:38:53 +0100 -Subject: [PATCH] coredumpctl: check return of strndup - ---- - src/journal/coredumpctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/journal/coredumpctl.c -=================================================================== ---- systemd-195.orig/src/journal/coredumpctl.c -+++ systemd-195/src/journal/coredumpctl.c -@@ -222,7 +222,7 @@ static int retrieve(sd_journal *j, const - assert(len >= field); - - *var = strndup((const char*)data + field, len - field); -- if (!var) -+ if (!*var) - return log_oom(); - - return 0; diff --git a/crypsetup-generator-state-file-name-in-error-message.patch b/crypsetup-generator-state-file-name-in-error-message.patch deleted file mode 100644 index ccb1c895..00000000 --- a/crypsetup-generator-state-file-name-in-error-message.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1cda32b8a29750720872d3525084ac67b88e066f Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 23 Nov 2012 14:16:39 +0100 -Subject: [PATCH] cryptsetup-generator: state file name in error messages - ---- - src/cryptsetup/cryptsetup-generator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-195/src/cryptsetup/cryptsetup-generator.c -=================================================================== ---- systemd-195.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-195/src/cryptsetup/cryptsetup-generator.c -@@ -230,7 +230,7 @@ static int create_disk( - f = fopen(p, "wxe"); - if (!f) { - r = -errno; -- log_error("Failed to create unit file: %m"); -+ log_error("Failed to create unit file %s: %m", p); - goto fail; - } - -@@ -283,7 +283,7 @@ static int create_disk( - - if (ferror(f)) { - r = -errno; -- log_error("Failed to write file: %m"); -+ log_error("Failed to write file %s: %m", p); - goto fail; - } - diff --git a/crypsetup-handle-nofail.patch b/crypsetup-handle-nofail.patch deleted file mode 100644 index 872c14c1..00000000 --- a/crypsetup-handle-nofail.patch +++ /dev/null @@ -1,29 +0,0 @@ -From adc40dc2f670a6298cce918fb318ba6a4b80c306 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 21 Nov 2012 12:30:47 +0100 -Subject: [PATCH] cryptsetup: fix nofail support - -This was documented in the man page and supported in the generator, -but systemd-cryptestup itself would fail with this option. - -systemd-cryptsetup should ignore 'nofail', as it does with 'noauto'. ---- - src/cryptsetup/cryptsetup.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c -index 56a3b50..f332843 100644 ---- a/src/cryptsetup/cryptsetup.c -+++ b/src/cryptsetup/cryptsetup.c -@@ -62,7 +62,7 @@ static int parse_one_option(const char *option) { - assert(option); - - /* Handled outside of this tool */ -- if (streq(option, "noauto")) -+ if (streq(option, "noauto") || streq(option, "nofail")) - return 0; - - if (startswith(option, "cipher=")) { --- -1.7.10.4 - diff --git a/crypt-loop-file.patch b/crypt-loop-file.patch deleted file mode 100644 index 81491c67..00000000 --- a/crypt-loop-file.patch +++ /dev/null @@ -1,90 +0,0 @@ -Index: systemd-195/src/cryptsetup/cryptsetup-generator.c -=================================================================== ---- systemd-195.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-195/src/cryptsetup/cryptsetup-generator.c -@@ -136,7 +136,7 @@ static int create_disk( - const char *password, - const char *options) { - -- char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *from = NULL, *to = NULL, *e = NULL; -+ char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *from = NULL, *to = NULL, *e = NULL, *path_file = NULL; - int r; - FILE *f = NULL; - bool noauto, nofail; -@@ -168,11 +168,63 @@ static int create_disk( - goto fail; - } - -- d = unit_name_from_path(u, ".device"); -- if (!d) { -- r = -ENOMEM; -- log_error("Failed to allocate device name."); -- goto fail; -+ if (!startswith(device,"/dev/")) { -+ char *e; -+ -+ d = strdup(n); -+ if (!d) { -+ r = -ENOMEM; -+ log_error("Failed to allocate path name."); -+ goto fail; -+ } -+ -+ e = endswith(d,".service"); -+ if (!e) { -+ r = -ENOMEM; -+ log_error("Failed to modify path name."); -+ goto fail; -+ } -+ -+ *e = 0; -+ -+ d = strcat(d,".path"); -+ if (asprintf(&path_file, "%s/%s", arg_dest, d) < 0) { -+ r = -ENOMEM; -+ log_error("Failed to allocate unit file name."); -+ goto fail; -+ } -+ -+ f = fopen(path_file, "wxe"); -+ if (!f) { -+ r = -errno; -+ log_error("Failed to create unit file %s: %m", path_file); -+ goto fail; -+ } -+ -+ fprintf(f, -+ "[Unit]\n" -+ "Description=Cryptography Setup for %s\n" -+ "DefaultDependencies=no\n" -+ "[Path]\n" -+ "PathExists=%s\n", -+ device, device); -+ -+ fflush(f); -+ -+ if (ferror(f)) { -+ r = -errno; -+ log_error("Failed to write file: %m"); -+ goto fail; -+ } -+ -+ f = NULL; -+ } else { -+ d = unit_name_from_path(u, ".device"); -+ if (!d) { -+ r = -ENOMEM; -+ log_error("Failed to allocate device name."); -+ goto fail; -+ } - } - - f = fopen(p, "wxe"); -@@ -298,6 +350,7 @@ fail: - free(n); - free(d); - free(e); -+ free(path_file); - - free(from); - free(to); diff --git a/cryptsetup-accept-read-only.patch b/cryptsetup-accept-read-only.patch deleted file mode 100644 index 279b4482..00000000 --- a/cryptsetup-accept-read-only.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 18cf1a1be5ae6985f211ec6f02504506da36b223 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 31 Jan 2013 11:03:09 +0100 -Subject: [PATCH] cryptsetup: accept both "read-only" and "readonly" spellings - -Mukund Sivaraman pointed out that cryptsetup(5) mentions the "read-only" -option, while the code understands "readonly". - -We could just fix the manpage, but for consistency in naming of -multi-word options it would be prettier to have "read-only". So let's -accept both spellings. - -BZ: https://bugzilla.redhat.com/show_bug.cgi?id=903463 ---- - man/crypttab.xml | 2 +- - src/cryptsetup/cryptsetup.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/man/crypttab.xml b/man/crypttab.xml -index 2379fc0..f976bda 100644 ---- a/man/crypttab.xml -+++ b/man/crypttab.xml -@@ -182,7 +182,7 @@ - - - -- read-only -+ read-onlyreadonly - - Set up the encrypted - block device in read-only -diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c -index f332843..a8cdf10 100644 ---- a/src/cryptsetup/cryptsetup.c -+++ b/src/cryptsetup/cryptsetup.c -@@ -111,7 +111,7 @@ static int parse_one_option(const char *option) { - return 0; - } - -- } else if (streq(option, "readonly")) -+ } else if (streq(option, "readonly") || streq(option, "read-only")) - opt_readonly = true; - else if (streq(option, "verify")) - opt_verify = true; --- -1.7.10.4 - diff --git a/cryptsetup-handle-plain.patch b/cryptsetup-handle-plain.patch deleted file mode 100644 index 002605f3..00000000 --- a/cryptsetup-handle-plain.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 65343c749441322d1e65e8bb5d433b6fee8c28bf Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Tue, 6 Nov 2012 09:49:27 -0500 -Subject: [PATCH] cryptsetup: hash=plain means don't use a hash - -"plain" is a semantic value that cryptsetup(8) uses to describe a plain -dm-crypt volume that does not use a hash. Catch this value earlier and -ensure that a NULL params.hash is passed to crypt_format to avoid -passing an invalid hash type to the libcryptsetup backend. - -FDO bug #56593. ---- - src/cryptsetup/cryptsetup.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c -index 916509a..e8ba3f0 100644 ---- a/src/cryptsetup/cryptsetup.c -+++ b/src/cryptsetup/cryptsetup.c -@@ -342,7 +342,12 @@ int main(int argc, char *argv[]) { - - opt_tries = opt_tries > 0 ? opt_tries : 3; - opt_key_size = (opt_key_size > 0 ? opt_key_size : 256); -- hash = opt_hash ? opt_hash : "ripemd160"; -+ if (opt_hash) { -+ /* plain isn't a real hash type. it just means "use no hash" */ -+ if (!streq(opt_hash, "plain")) -+ hash = opt_hash; -+ } else -+ hash = "ripemd160"; - - if (opt_cipher) { - size_t l; -@@ -463,7 +468,7 @@ int main(int argc, char *argv[]) { - opt_keyfile_size, - ¶ms); - -- pass_volume_key = streq(hash, "plain"); -+ pass_volume_key = !!hash; - } - - if (k < 0) { --- -1.7.10.4 - -From 8db9d8c2a4ef9806c286e258f9932a0972dc2375 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Tue, 6 Nov 2012 10:17:18 -0500 -Subject: [PATCH] cryptsetup: fix inverted comparison in pass_volume_key - ---- - src/cryptsetup/cryptsetup.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c -index e8ba3f0..56a3b50 100644 ---- a/src/cryptsetup/cryptsetup.c -+++ b/src/cryptsetup/cryptsetup.c -@@ -468,7 +468,8 @@ int main(int argc, char *argv[]) { - opt_keyfile_size, - ¶ms); - -- pass_volume_key = !!hash; -+ /* hash == NULL implies the user passed "plain" */ -+ pass_volume_key = (hash == NULL); - } - - if (k < 0) { --- -1.7.10.4 - diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch new file mode 100644 index 00000000..4cf66998 --- /dev/null +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -0,0 +1,34 @@ +From: Frederic Crozat +Date: Wed, 9 Nov 2011 11:10:49 +0100 +Subject: delay fsck / cryptsetup after md / dmraid / lvm are started + +--- + src/cryptsetup/cryptsetup-generator.c | 1 + + units/systemd-fsck@.service.in | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index 9b8e229..0949287 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -160,6 +160,7 @@ static int create_disk( + "Conflicts=umount.target\n" + "DefaultDependencies=no\n" + "BindsTo=dev-mapper-%i.device\n" ++ "After=md.service dmraid.service lvm.service\n" + "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", + f); + +diff --git a/units/systemd-fsck@.service.in b/units/systemd-fsck@.service.in +index b3c71eb..c66a411 100644 +--- a/units/systemd-fsck@.service.in ++++ b/units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Description=File System Check on %f + Documentation=man:systemd-fsck@.service(8) + DefaultDependencies=no + BindsTo=%i.device +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device lvm.service md.service dmraid.service + Before=shutdown.target + + [Service] diff --git a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch b/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch deleted file mode 100644 index 58a4f924..00000000 --- a/delay-fsck-cryptsetup-after-md-lvm-dmraid.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c6170719e7afbcecc04e8939e93e9678529e6391 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Wed, 9 Nov 2011 11:10:49 +0100 -Subject: [PATCH] delay fsck / cryptsetup after md / dmraid / lvm are started - ---- - src/cryptsetup-generator.c | 1 + - units/fsck@.service.in | 2 +- - 2 files changed, 2 insertions(+), 1 deletions(-) - -Index: systemd-189/src/cryptsetup/cryptsetup-generator.c -=================================================================== ---- systemd-189.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-189/src/cryptsetup/cryptsetup-generator.c -@@ -192,6 +192,7 @@ static int create_disk( - "DefaultDependencies=no\n" - "BindsTo=%s dev-mapper-%%i.device\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" -+ "After=md.service dmraid.service lvm.service\n" - "Before=umount.target\n", - d, d); - -Index: systemd-189/units/systemd-fsck@.service.in -=================================================================== ---- systemd-189.orig/units/systemd-fsck@.service.in -+++ systemd-189/units/systemd-fsck@.service.in -@@ -10,7 +10,7 @@ Description=File System Check on %f - Documentation=man:systemd-fsck@.service(8) - DefaultDependencies=no - BindsTo=%i.device --After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device lvm.service md.service dmraid.service - Before=shutdown.target - - [Service] diff --git a/delta-accept-t-option.patch b/delta-accept-t-option.patch deleted file mode 100644 index 4717c018..00000000 --- a/delta-accept-t-option.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 377ec8bf1907a1a227d195cc3721c4acbad19213 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Wed, 14 Nov 2012 00:18:02 +0100 -Subject: [PATCH] delta.c: fix option '-t' - -Both the help and man page claims that it accepts -t with an argument -so let's do that. ---- - src/delta/delta.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/delta/delta.c -=================================================================== ---- systemd-195.orig/src/delta/delta.c -+++ systemd-195/src/delta/delta.c -@@ -375,7 +375,7 @@ static int parse_argv(int argc, char *ar - assert(argc >= 1); - assert(argv); - -- while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) { -+ while ((c = getopt_long(argc, argv, "ht:", options, NULL)) >= 0) { - - switch (c) { - diff --git a/detect-btrfs-ssd.patch b/detect-btrfs-ssd.patch deleted file mode 100644 index 4bd64690..00000000 --- a/detect-btrfs-ssd.patch +++ /dev/null @@ -1,97 +0,0 @@ -commit d7228cb8529de83115af04bf653b4d204dad8fae -Author: Lennart Poettering -Date: Thu Nov 22 01:51:06 2012 +0100 - - readahead: properly detect btrfs on SSD - -diff --git a/src/readahead/readahead-common.c b/src/readahead/readahead-common.c -index 10b0ccc..41aaff0 100644 ---- a/src/readahead/readahead-common.c -+++ b/src/readahead/readahead-common.c -@@ -32,6 +32,7 @@ - #include "log.h" - #include "readahead-common.h" - #include "util.h" -+#include "missing.h" - - int file_verify(int fd, const char *fn, off_t file_size_max, struct stat *st) { - assert(fd >= 0); -@@ -62,14 +63,63 @@ int fs_on_ssd(const char *p) { - struct udev_device *udev_device = NULL, *look_at = NULL; - bool b = false; - const char *devtype, *rotational, *model, *id; -+ int r; - - assert(p); - - if (stat(p, &st) < 0) - return -errno; - -- if (major(st.st_dev) == 0) -+ if (major(st.st_dev) == 0) { -+ _cleanup_fclose_ FILE *f = NULL; -+ int mount_id; -+ struct file_handle *h; -+ -+ /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd. -+ * -+ * We first determine the mount ID here, if we can, -+ * and then lookup the mount ID in mountinfo to find -+ * the mount options. */ -+ -+ h = alloca(MAX_HANDLE_SZ); -+ h->handle_bytes = MAX_HANDLE_SZ; -+ r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW); -+ if (r < 0) -+ return false; -+ -+ f = fopen("/proc/self/mountinfo", "re"); -+ if (!f) -+ return false; -+ -+ for (;;) { -+ char line[LINE_MAX], *e; -+ _cleanup_free_ char *opts = NULL; -+ int mid; -+ -+ if (!fgets(line, sizeof(line), f)) -+ return false; -+ -+ truncate_nl(line); -+ -+ if (sscanf(line, "%i", &mid) != 1) -+ continue; -+ -+ if (mid != mount_id) -+ continue; -+ -+ e = strstr(line, " - "); -+ if (!e) -+ continue; -+ -+ if (sscanf(e+3, "%*s %*s %ms", &opts) != 1) -+ continue; -+ -+ if (streq(opts, "ssd") || startswith(opts, "ssd,") || endswith(opts, ",ssd") || strstr(opts, ",ssd,")) -+ return true; -+ } -+ - return false; -+ } - - udev = udev_new(); - if (!udev) -@@ -97,9 +147,10 @@ int fs_on_ssd(const char *p) { - - /* Second, try kernel attribute */ - rotational = udev_device_get_sysattr_value(look_at, "queue/rotational"); -- if (rotational) -- if ((b = streq(rotational, "0"))) -- goto finish; -+ if (rotational) { -+ b = streq(rotational, "0"); -+ goto finish; -+ } - - /* Finally, fallback to heuristics */ - look_at = udev_device_get_parent(look_at); diff --git a/disable-nss-myhostname-warning-bnc-783841.diff b/disable-nss-myhostname-warning-bnc-783841.diff deleted file mode 100644 index 2d085696..00000000 --- a/disable-nss-myhostname-warning-bnc-783841.diff +++ /dev/null @@ -1,21 +0,0 @@ -From 33db05b6bd6151c482f5efe01f2a6118efc82fde Mon Sep 17 00:00:00 2001 -From: Ludwig Nussel -Date: Tue, 12 Feb 2013 17:24:35 +0100 -Subject: [PATCH] disable nss-myhostname warning (bnc#783841) - ---- - src/hostname/hostnamed.c | 1 + - 1 Datei geändert, 1 Zeile hinzugefügt(+) - -Index: systemd-195/src/hostname/hostnamed.c -=================================================================== ---- systemd-195.orig/src/hostname/hostnamed.c -+++ systemd-195/src/hostname/hostnamed.c -@@ -124,6 +124,7 @@ static int read_data(void) { - static bool check_nss(void) { - - void *dl; -+ return true; - - if ((dl = dlopen("libnss_myhostname.so.2", RTLD_LAZY))) { - dlclose(dl); diff --git a/disable-nss-myhostname-warning-bnc-783841.patch b/disable-nss-myhostname-warning-bnc-783841.patch new file mode 100644 index 00000000..c0365d7c --- /dev/null +++ b/disable-nss-myhostname-warning-bnc-783841.patch @@ -0,0 +1,20 @@ +From: Ludwig Nussel +Date: Tue, 12 Feb 2013 17:24:35 +0100 +Subject: disable nss-myhostname warning (bnc#783841) + +--- + src/hostname/hostnamed.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c +index 0437e33..c7f454c 100644 +--- a/src/hostname/hostnamed.c ++++ b/src/hostname/hostnamed.c +@@ -134,6 +134,7 @@ static int read_data(void) { + + static bool check_nss(void) { + void *dl; ++ return true; + + dl = dlopen("libnss_myhostname.so.2", RTLD_LAZY); + if (dl) { diff --git a/dm-lvm-after-local-fs-pre-target.patch b/dm-lvm-after-local-fs-pre-target.patch deleted file mode 100644 index d3467af1..00000000 --- a/dm-lvm-after-local-fs-pre-target.patch +++ /dev/null @@ -1,9 +0,0 @@ -Index: systemd-189/units/local-fs-pre.target -=================================================================== ---- systemd-189.orig/units/local-fs-pre.target -+++ systemd-189/units/local-fs-pre.target -@@ -8,3 +8,4 @@ - [Unit] - Description=Local File Systems (Pre) - Documentation=man:systemd.special(7) -+After=md.service lvm.service dmraid.service diff --git a/do-not-make-sockets-dependent-on-lo.patch b/do-not-make-sockets-dependent-on-lo.patch deleted file mode 100644 index 7c5e78b8..00000000 --- a/do-not-make-sockets-dependent-on-lo.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 7d0c710d72f8a6e5c6909c65700aa088c53aebc6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= -Date: Sat, 12 Jan 2013 23:05:52 +0100 -Subject: [PATCH] core: do not make sockets dependent on lo - -/sys/subsystem/net/devices/lo is never considered active, so sockets -with BindToDevice=lo would never be activated. ---- - src/core/socket.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/core/socket.c -=================================================================== ---- systemd-195.orig/src/core/socket.c -+++ systemd-195/src/core/socket.c -@@ -293,7 +293,7 @@ static int socket_add_device_link(Socket - - assert(s); - -- if (!s->bind_to_device) -+ if (!s->bind_to_device || streq(s->bind_to_device, "lo")) - return 0; - - if (asprintf(&t, "/sys/subsystem/net/devices/%s", s->bind_to_device) < 0) diff --git a/early-sync-shutdown.patch b/early-sync-shutdown.patch deleted file mode 100644 index 87d4a555..00000000 --- a/early-sync-shutdown.patch +++ /dev/null @@ -1,209 +0,0 @@ -From c65eb8365344eeb72ee2c0b333ab54d925263b3f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 25 Jan 2013 22:33:33 +0100 -Subject: [PATCH] shutdown: issue a sync() as soon as shutdown.target is queued - ---- - Makefile.am | 7 ++++-- - src/core/job.c | 26 ++++++++++++++++++++ - src/core/job.h | 2 ++ - src/core/sync.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ - src/core/sync.h | 24 +++++++++++++++++++ - src/core/transaction.c | 1 + - 6 files changed, 123 insertions(+), 2 deletions(-) - create mode 100644 src/core/sync.c - create mode 100644 src/core/sync.h - -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -1038,7 +1038,9 @@ libsystemd_core_la_SOURCES = \ - src/core/syscall-list.c \ - src/core/syscall-list.h \ - src/core/audit-fd.c \ -- src/core/audit-fd.h -+ src/core/audit-fd.h \ -+ src/core/sync.c \ -+ src/core/sync.h - - nodist_libsystemd_core_la_SOURCES = \ - src/core/load-fragment-gperf.c \ -@@ -1052,7 +1054,8 @@ libsystemd_core_la_CFLAGS = \ - $(LIBWRAP_CFLAGS) \ - $(PAM_CFLAGS) \ - $(AUDIT_CFLAGS) \ -- $(KMOD_CFLAGS) -+ $(KMOD_CFLAGS) \ -+ -pthread - - libsystemd_core_la_LIBADD = \ - libsystemd-capability.la \ -Index: systemd-195/src/core/job.c -=================================================================== ---- systemd-195.orig/src/core/job.c -+++ systemd-195/src/core/job.c -@@ -34,6 +34,9 @@ - #include "load-dropin.h" - #include "log.h" - #include "dbus-job.h" -+#include "special.h" -+#include "sync.h" -+#include "virt.h" - - JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { - JobBusClient *cl; -@@ -1045,6 +1048,29 @@ int job_coldplug(Job *j) { - return 0; - } - -+void job_shutdown_magic(Job *j) { -+ assert(j); -+ -+ /* The shutdown target gets some special treatment here: we -+ * tell the kernel to begin with flushing its disk caches, to -+ * optimize shutdown time a bit. Ideally we wouldn't hardcode -+ * this magic into PID 1. However all other processes aren't -+ * options either since they'd exit much sooner than PID 1 and -+ * asynchronous sync() would cause their exit to be -+ * delayed. */ -+ -+ if (!unit_has_name(j->unit, SPECIAL_SHUTDOWN_TARGET)) -+ return; -+ -+ if (j->type != JOB_START) -+ return; -+ -+ if (detect_container(NULL) > 0) -+ return; -+ -+ asynchronous_sync(); -+} -+ - static const char* const job_state_table[_JOB_STATE_MAX] = { - [JOB_WAITING] = "waiting", - [JOB_RUNNING] = "running" -Index: systemd-195/src/core/job.h -=================================================================== ---- systemd-195.orig/src/core/job.h -+++ systemd-195/src/core/job.h -@@ -217,6 +217,8 @@ int job_finish_and_invalidate(Job *j, Jo - - char *job_dbus_path(Job *j); - -+void job_shutdown_magic(Job *j); -+ - const char* job_type_to_string(JobType t); - JobType job_type_from_string(const char *s); - -Index: systemd-195/src/core/sync.c -=================================================================== ---- /dev/null -+++ systemd-195/src/core/sync.c -@@ -0,0 +1,65 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2013 Lennart Poettering -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+***/ -+ -+#include -+#include -+ -+#include "sync.h" -+ -+static void *sync_thread(void *p) { -+ sync(); -+ return NULL; -+} -+ -+int asynchronous_sync(void) { -+ pthread_attr_t a; -+ pthread_t t; -+ int r; -+ -+ /* It kinda sucks that we have to resort to threads to -+ * implement an asynchronous sync(), but well, such is -+ * life. -+ * -+ * Note that issuing this command right before exiting a -+ * process will cause the process to wait for the sync() to -+ * complete. This function hence is nicely asynchronous really -+ * only in long running processes. */ -+ -+ r = pthread_attr_init(&a); -+ if (r != 0) -+ return -r; -+ -+ r = pthread_attr_setdetachstate(&a, PTHREAD_CREATE_DETACHED); -+ if (r != 0) { -+ r = -r; -+ goto finish; -+ } -+ -+ r = pthread_create(&t, &a, sync_thread, NULL); -+ if (r != 0) { -+ r = -r; -+ goto finish; -+ } -+ -+finish: -+ pthread_attr_destroy(&a); -+ return r; -+} -Index: systemd-195/src/core/sync.h -=================================================================== ---- /dev/null -+++ systemd-195/src/core/sync.h -@@ -0,0 +1,24 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+#pragma once -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2013 Lennart Poettering -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+***/ -+ -+int asynchronous_sync(void); -Index: systemd-195/src/core/transaction.c -=================================================================== ---- systemd-195.orig/src/core/transaction.c -+++ systemd-195/src/core/transaction.c -@@ -592,6 +592,7 @@ static int transaction_apply(Transaction - job_add_to_run_queue(j); - job_add_to_dbus_queue(j); - job_start_timer(j); -+ job_shutdown_magic(j); - } - - return 0; diff --git a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch new file mode 100644 index 00000000..c4e313aa --- /dev/null +++ b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch @@ -0,0 +1,19 @@ +From: Frederic Crozat +Date: Thu, 9 Feb 2012 16:19:38 +0000 +Subject: ensure DM and LVM are started before local-fs-pre-target + +ensure md / lvm /dmraid is started before mounting partitions, +if fsck was disabled for them (bnc#733283). +--- + units/local-fs-pre.target | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/units/local-fs-pre.target b/units/local-fs-pre.target +index 809f2ed..05fcbd4 100644 +--- a/units/local-fs-pre.target ++++ b/units/local-fs-pre.target +@@ -9,3 +9,4 @@ + Description=Local File Systems (Pre) + Documentation=man:systemd.special(7) + RefuseManualStart=yes ++After=md.service lvm.service dmraid.service diff --git a/ensure-ask-password-wall-starts-after-getty-tty1.patch b/ensure-ask-password-wall-starts-after-getty-tty1.patch new file mode 100644 index 00000000..a0c005f8 --- /dev/null +++ b/ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -0,0 +1,22 @@ +From: Frederic Crozat +Date: Wed, 24 Aug 2011 13:02:12 +0000 +Subject: ensure ask-password-wall starts after getty@tty1 + +ensure passphrase is handled before starting getty on tty1. +--- + units/systemd-ask-password-wall.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/systemd-ask-password-wall.service.in b/units/systemd-ask-password-wall.service.in +index 0eaa274..ca51e4e 100644 +--- a/units/systemd-ask-password-wall.service.in ++++ b/units/systemd-ask-password-wall.service.in +@@ -8,7 +8,7 @@ + [Unit] + Description=Forward Password Requests to Wall + Documentation=man:systemd-ask-password-console.service(8) +-After=systemd-user-sessions.service ++After=systemd-user-sessions.service getty@tty1.service + + [Service] + ExecStartPre=-@SYSTEMCTL@ stop systemd-ask-password-console.path systemd-ask-password-console.service systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service diff --git a/ensure-sysctl-are-applied-after-modules-are-loaded.patch b/ensure-sysctl-are-applied-after-modules-are-loaded.patch new file mode 100644 index 00000000..186e09e0 --- /dev/null +++ b/ensure-sysctl-are-applied-after-modules-are-loaded.patch @@ -0,0 +1,21 @@ +From: Frederic Crozat +Date: Mon, 9 Jan 2012 17:01:22 +0000 +Subject: ensure sysctl are applied after modules are loaded + +(bnc#725412) +--- + units/systemd-sysctl.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/units/systemd-sysctl.service.in b/units/systemd-sysctl.service.in +index 45e1ceb..caaaa9a 100644 +--- a/units/systemd-sysctl.service.in ++++ b/units/systemd-sysctl.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service(8) man:sysctl.d(5) + DefaultDependencies=no + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service ++After=systemd-modules-load.service + Before=sysinit.target shutdown.target + ConditionPathIsReadWrite=/proc/sys/ + ConditionPathExists=|/etc/sysctl.conf diff --git a/ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch b/ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch new file mode 100644 index 00000000..795980bd --- /dev/null +++ b/ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch @@ -0,0 +1,21 @@ +From: Frederic Crozat +Date: Mon, 8 Apr 2013 14:51:47 +0200 +Subject: ensure systemd-udevd is started before local-fs-pre for loopback + mount + +ensure udevd is started (and therefore static devices are created) +before mounting (bnc#809820). +--- + units/local-fs-pre.target | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/local-fs-pre.target b/units/local-fs-pre.target +index 05fcbd4..7f13907 100644 +--- a/units/local-fs-pre.target ++++ b/units/local-fs-pre.target +@@ -9,4 +9,4 @@ + Description=Local File Systems (Pre) + Documentation=man:systemd.special(7) + RefuseManualStart=yes +-After=md.service lvm.service dmraid.service ++After=md.service lvm.service dmraid.service systemd-udevd.service diff --git a/fastboot-forcefsck.patch b/fastboot-forcefsck.patch deleted file mode 100644 index f0898e86..00000000 --- a/fastboot-forcefsck.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-189/src/fsck/fsck.c -=================================================================== ---- systemd-189.orig/src/fsck/fsck.c -+++ systemd-189/src/fsck/fsck.c -@@ -128,7 +128,7 @@ static int parse_proc_cmdline(void) { - arg_skip = true; - else if (startswith(w, "fsck")) - log_warning("Invalid fsck parameter. Ignoring."); --#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) -+#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) || defined(TARGET_SUSE) - else if (strneq(w, "fastboot", l)) - arg_skip = true; - else if (strneq(w, "forcefsck", l)) diff --git a/fix-bad-mem-access.patch b/fix-bad-mem-access.patch deleted file mode 100644 index 878ed0a9..00000000 --- a/fix-bad-mem-access.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 86ed7ec58b9b6a0907bbb3b8d07c930e52915de0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 17 Jan 2013 17:38:00 +0100 -Subject: [PATCH] util: fix bad memory access - ---- - src/shared/util.c | 1 - - 1 file changed, 1 deletion(-) - -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -543,7 +543,6 @@ int get_parent_of_pid(pid_t pid, pid_t * - - if (!fgets(line, sizeof(line), f)) { - r = feof(f) ? -EIO : -errno; -- fclose(f); - return r; - } - diff --git a/fix-bad-memory-access.patch b/fix-bad-memory-access.patch deleted file mode 100644 index 2109977a..00000000 --- a/fix-bad-memory-access.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 7d73c1343be02a59b17de0cd34375deeb815d89c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 20 Nov 2012 00:19:27 +0100 -Subject: [PATCH] journald: fix bad memory access - -https://bugzilla.redhat.com/show_bug.cgi?id=875653 ---- - src/journal/journald-server.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/journal/journald.c -=================================================================== ---- systemd-195.orig/src/journal/journald.c -+++ systemd-195/src/journal/journald.c -@@ -342,7 +342,7 @@ static void server_rotate(Server *s) { - HASHMAP_FOREACH_KEY(f, k, s->user_journals, i) { - r = journal_file_rotate(&f, s->compress, s->seal); - if (r < 0) -- if (f->path) -+ if (f) - log_error("Failed to rotate %s: %s", f->path, strerror(-r)); - else - log_error("Failed to create user journal: %s", strerror(-r)); diff --git a/fix-build-glibc217.patch b/fix-build-glibc217.patch deleted file mode 100644 index d4a2d8ec..00000000 --- a/fix-build-glibc217.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e17187091d463ad008c0b74eb04de5078b2abb96 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 14 Nov 2012 14:44:05 +0100 -Subject: [PATCH] configure.ac: fix FTBFS with new glibc - -glibc moved clock_* functions from librt to the core libc. As a result, -clock_gettime is no more a suitable symbol to use when finding librt. -Look for mq_open instead. -Reference: -http://www.sourceware.org/git/gitweb.cgi?p=glibc.git&h=6e6249d0b461b952d0f544792372663feb6d792a - -Fixes a FTBFS in Fedora Rawhide. ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/configure.ac -=================================================================== ---- systemd-195.orig/configure.ac -+++ systemd-195/configure.ac -@@ -172,7 +172,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [L - -Wl,-z,now]) - AC_SUBST([OUR_LDFLAGS], $with_ldflags) - --AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])]) -+AC_SEARCH_LIBS([mq_open], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])]) - AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])]) - - save_LIBS="$LIBS" diff --git a/fix-dbus-crash.patch b/fix-dbus-crash.patch deleted file mode 100644 index dcf6c8f1..00000000 --- a/fix-dbus-crash.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 645a9e5a2bbb06464a3fba1a3501e9d79e5bbad8 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Wed, 31 Oct 2012 11:53:56 +0100 -Subject: [PATCH] dbus-manager: fix a fatal dbus abort in - bus_manager_message_handler() - -If ListUnitFiles fails, or an OOM occurs, then dbus_message_unref() -will be called twice on "reply", causing systemd to crash. So remove -the call to dbus_message_unref(); it is unnecessary because of -the cleanup attribute on "reply". - -[zj: modified to leave one dbus_message_unref() alone, per Colin -Walters' comment.] ---- - src/core/dbus-manager.c | 1 - - 1 file changed, 1 deletion(-) - -Index: systemd-195/src/core/dbus-manager.c -=================================================================== ---- systemd-195.orig/src/core/dbus-manager.c -+++ systemd-195/src/core/dbus-manager.c -@@ -1432,7 +1432,6 @@ static DBusHandlerResult bus_manager_mes - r = unit_file_get_list(m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, NULL, h); - if (r < 0) { - unit_file_list_free(h); -- dbus_message_unref(reply); - return bus_send_error_reply(connection, message, NULL, r); - } - diff --git a/fix-debugshell.patch b/fix-debugshell.patch deleted file mode 100644 index 5a1e8405..00000000 --- a/fix-debugshell.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-195/units/debug-shell.service.in -=================================================================== ---- systemd-195.orig/units/debug-shell.service.in -+++ systemd-195/units/debug-shell.service.in -@@ -13,7 +13,7 @@ IgnoreOnIsolate=yes - - [Service] - Environment=TERM=linux --ExecStart=@sushell@ -+ExecStart=/bin/bash -c '[ -x @sushell@ ] && exec @sushell@ || exec /bin/bash' - Restart=always - RestartSec=0 - StandardInput=tty diff --git a/fix-logind-pty-seat.patch b/fix-logind-pty-seat.patch deleted file mode 100644 index 079c5baf..00000000 --- a/fix-logind-pty-seat.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 978cf3c75fbd94fd0e046206ada6169b35edd919 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 28 Oct 2012 17:37:16 +0100 -Subject: [PATCH] logind: it's OK if a process on an pty requests a session - for seat0 - -After all, if a sudo/su inside an X terminal should get added to the -same session as the X session itself. ---- - src/login/logind-dbus.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -Index: systemd-195/src/login/logind-dbus.c -=================================================================== ---- systemd-195.orig/src/login/logind-dbus.c -+++ systemd-195/src/login/logind-dbus.c -@@ -409,8 +409,7 @@ static int bus_manager_create_session(Ma - if (vtnr != 0) - return -EINVAL; - -- } else if (!isempty(tty) && s && seat_is_vtconsole(s)) -- return -EINVAL; -+ } - - if (s) { - if (seat_can_multi_session(s)) { diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch new file mode 100644 index 00000000..a28f4937 --- /dev/null +++ b/fix-owner-of-var-log-btmp.patch @@ -0,0 +1,22 @@ +From: Frederic Crozat +Date: Tue, 20 Nov 2012 09:36:43 +0000 +Subject: fix owner of /var/log/btmp + +ensure btmp is owned only by root (bnc#777405). +--- + tmpfiles.d/systemd.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf +index ee86f2e..29d6e97 100644 +--- a/tmpfiles.d/systemd.conf ++++ b/tmpfiles.d/systemd.conf +@@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d + F /run/utmp 0664 root utmp - + + f /var/log/wtmp 0664 root utmp - +-f /var/log/btmp 0600 root utmp - ++f /var/log/btmp 0600 root root - + + d /var/cache/man - - - 30d + diff --git a/fix-permissions-btmp.patch b/fix-permissions-btmp.patch deleted file mode 100644 index 4a7a1122..00000000 --- a/fix-permissions-btmp.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-44/tmpfiles.d/systemd.conf -=================================================================== ---- systemd-44.orig/tmpfiles.d/systemd.conf -+++ systemd-44/tmpfiles.d/systemd.conf -@@ -11,7 +11,7 @@ d /run/user 0755 root root 10d - F /run/utmp 0664 root utmp - - - f /var/log/wtmp 0664 root utmp - --f /var/log/btmp 0600 root utmp - -+f /var/log/btmp 0600 root root - - - d /var/cache/man - - - 30d - diff --git a/fix-potential-bad-mem-access.patch b/fix-potential-bad-mem-access.patch deleted file mode 100644 index 3c3e0c98..00000000 --- a/fix-potential-bad-mem-access.patch +++ /dev/null @@ -1,45 +0,0 @@ -From ac97e2c559f5d386a332aba4a24bf9930cdb1c51 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 19 Nov 2012 16:36:38 +0100 -Subject: [PATCH] core/load-fragment: fix (potential) bad memory access - -strncmp() could be used with size bigger then the size of the string, -because MAX was used instead of MIN. - -If failing, print just the offending mount flag. ---- - src/core/load-fragment.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -Index: systemd-195/src/core/load-fragment.c -=================================================================== ---- systemd-195.orig/src/core/load-fragment.c -+++ systemd-195/src/core/load-fragment.c -@@ -1083,15 +1083,22 @@ int config_parse_exec_mount_flags( - assert(rvalue); - assert(data); - -- FOREACH_WORD_QUOTED(w, l, rvalue, state) { -- if (strncmp(w, "shared", MAX(l, 6U)) == 0) -+ FOREACH_WORD_SEPARATOR(w, l, rvalue, ", ", state) { -+ char _cleanup_free_ *t; -+ -+ t = strndup(w, l); -+ if (!t) -+ return -ENOMEM; -+ -+ if (streq(t, "shared")) - flags |= MS_SHARED; -- else if (strncmp(w, "slave", MAX(l, 5U)) == 0) -+ else if (streq(t, "slave")) - flags |= MS_SLAVE; -- else if (strncmp(w, "private", MAX(l, 7U)) == 0) -+ else if (streq(w, "private")) - flags |= MS_PRIVATE; - else { -- log_error("[%s:%u] Failed to parse mount flags, ignoring: %s", filename, line, rvalue); -+ log_error("[%s:%u] Failed to parse mount flag %s, ignoring: %s", -+ filename, line, t, rvalue); - return 0; - } - } diff --git a/fix-enable-disable-boot-initscript.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch similarity index 54% rename from fix-enable-disable-boot-initscript.patch rename to fix-support-for-boot-prefixed-initscript-bnc-746506.patch index a89b5955..189576cc 100644 --- a/fix-enable-disable-boot-initscript.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -1,41 +1,42 @@ -From f9d333f8d202fd853f2553ee6c3196b041ccfba5 Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Thu, 23 Aug 2012 11:08:25 +0200 -Subject: [PATCH] fix support for boot prefixed initscript (bnc#746506) +Subject: fix support for boot prefixed initscript (bnc#746506) --- - src/systemctl.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) + src/systemctl/systemctl.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -3453,7 +3453,27 @@ static int enable_sysv_units(char **args +diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c +index c2b1749..84ce87c 100644 +--- a/src/systemctl/systemctl.c ++++ b/src/systemctl/systemctl.c +@@ -4060,8 +4060,28 @@ static int enable_sysv_units(char **args) { + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; - if (!found_sysv) { - free(p); -+#if defined(TARGET_SUSE) +- if (!found_sysv) ++ if (!found_sysv) { ++#ifdef HAVE_SYSV_COMPAT ++ free(p); + p = NULL; + if (!isempty(arg_root)) + asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else + asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); + if (!p) { -+ log_error("No memory"); -+ r = -ENOMEM; ++ r = log_oom(); + goto finish; + } + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; + + if (!found_sysv) { -+ free(p); + continue; + } +#else continue; +#endif - } ++ } /* Mark this entry, so that we don't try enabling it as native unit */ + args[f] = (char*) ""; diff --git a/fix-swap-behaviour-with-symlinks.patch b/fix-swap-behaviour-with-symlinks.patch deleted file mode 100644 index f9ee5fab..00000000 --- a/fix-swap-behaviour-with-symlinks.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b61e88162a6ce0c30da6984b0120959701283daa Mon Sep 17 00:00:00 2001 -From: Olivier Brunel -Date: Sat, 13 Oct 2012 14:24:15 +0200 -Subject: [PATCH] swap: fix swap behaviour with symlinks - -Starting a swap unit pointing to (What) a symlink (e.g. /dev/mapper/swap -or /dev/disk/by-uuid/...) would have said unit marked active, following -the one using the "actual" device (/dev/{dm-1,sda3}), but that new unit -would be seen as inactive. -Since all requests to stop swap units would follow/redirect to it, -and it is seen inactive, nothing would be done (swapoff never called). - -This is because this unit would be treated twice in -swap_process_new_swap, the second call to swap_add_one causing it to -eventually be marked inactive. ---- - src/core/swap.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: systemd-195/src/core/swap.c -=================================================================== ---- systemd-195.orig/src/core/swap.c -+++ systemd-195/src/core/swap.c -@@ -415,7 +415,8 @@ static int swap_process_new_swap(Manager - return -ENOMEM; - - dn = udev_device_get_devnode(d); -- if (dn) -+ /* Skip dn==device, since that case will be handled below */ -+ if (dn && !streq(dn, device)) - r = swap_add_one(m, dn, device, prio, false, false, set_flags); - - /* Add additional units for all symlinks */ diff --git a/force-lvm-restart-after-cryptsetup-target-is-reached.patch b/force-lvm-restart-after-cryptsetup-target-is-reached.patch new file mode 100644 index 00000000..ccfaf3f0 --- /dev/null +++ b/force-lvm-restart-after-cryptsetup-target-is-reached.patch @@ -0,0 +1,104 @@ +From: Frederic Crozat +Date: Mon, 7 Nov 2011 18:04:20 +0100 +Subject: force lvm restart after cryptsetup target is reached + +--- + src/cryptsetup/cryptsetup-generator.c | 57 ++++++++++++++++++++++++++++++++++- + 1 file changed, 56 insertions(+), 1 deletion(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index ac0ed58..9b8e229 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include "log.h" + #include "util.h" +@@ -64,6 +65,54 @@ static bool has_option(const char *haystack, const char *needle) { + return false; + } + ++static int create_storage_after_cryptsetup (void) { ++ _cleanup_free_ char *to = NULL, *p = NULL; ++ _cleanup_fclose_ FILE *f = NULL; ++ ++ if (asprintf(&p, "%s/storage-after-cryptsetup.service", arg_dest) < 0) ++ return log_oom(); ++ ++ if (!(f = fopen(p, "wxe"))) { ++ log_error("Failed to create unit file: %m"); ++ return -errno; ++ } ++ ++ fprintf(f, ++ "[Unit]\n" ++ "Description=Restart storage after cryptsetup\n" ++ "DefaultDependencies=no\n" ++ "After=cryptsetup.target\n" ++ "Wants=cryptsetup.target\n" ++ "Before=local-fs.target\n" ++ "Before=shutdown.target\n"); ++ ++ fprintf(f, ++ "\n[Service]\n" ++ "RemainAfterExit=true\n" ++ "Type=oneshot\n" ++ "TimeoutSec=0\n" ++ "ExecStart=/usr/bin/systemctl restart lvm.service\n"); ++ ++ fflush(f); ++ ++ if (ferror(f)) { ++ log_error("Failed to write file: %m"); ++ return -errno; ++ } ++ ++ if (asprintf(&to, "%s/local-fs.target.wants/storage-after-cryptsetup.service", arg_dest) < 0) ++ return log_oom(); ++ ++ mkdir_parents(to, 0755); ++ ++ if (symlink("../storage-after-cryptsetup.service", to) < 0) { ++ log_error("Failed to create symlink ../storage-after-cryptsetup.service to '%s': %m", to); ++ return -errno; ++ } ++ ++ return 0; ++} ++ + static int create_disk( + const char *name, + const char *device, +@@ -331,6 +380,7 @@ int main(int argc, char *argv[]) { + _cleanup_fclose_ FILE *f = NULL; + unsigned n = 0; + int r = EXIT_SUCCESS; ++ bool no_crypttab = false; + char **i; + _cleanup_strv_free_ char **arg_proc_cmdline_disks_done = NULL; + _cleanup_strv_free_ char **arg_proc_cmdline_disks = NULL; +@@ -360,8 +410,10 @@ int main(int argc, char *argv[]) { + f = fopen("/etc/crypttab", "re"); + + if (!f) { +- if (errno == ENOENT) ++ if (errno == ENOENT) { ++ no_crypttab = true; + r = EXIT_SUCCESS; ++ } + else { + r = EXIT_FAILURE; + log_error("Failed to open /etc/crypttab: %m"); +@@ -445,5 +497,8 @@ int main(int argc, char *argv[]) { + r = EXIT_FAILURE; + } + ++ if ((r == EXIT_SUCCESS && !no_crypttab) && (create_storage_after_cryptsetup () < 0)) ++ r = EXIT_FAILURE; ++ + return r; + } diff --git a/fstab-generator-error-message-on-duplicates.patch b/fstab-generator-error-message-on-duplicates.patch deleted file mode 100644 index 33ec3f26..00000000 --- a/fstab-generator-error-message-on-duplicates.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 67ab5f761f9b854d8ce85f9ee47b298e497f8bd9 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Tue, 27 Nov 2012 01:09:28 +0100 -Subject: [PATCH] fstab-generator: make error more helpful in case of - duplicates in fstab - -Traditional sysvinit systems would not complain about duplicates in -fstab. Rather it (through monut -a) would mount one fs on top of another, -in effect the last entry taking precedent. - -In systemd, the first entry takes precedent, all subsequent ones are -ignored and an error is printed. - -The change of behavior and the source of this error message was causing -some confusion, so give a hint what migt be wrong. ---- - src/fstab-generator/fstab-generator.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -Index: systemd-195/src/fstab-generator/fstab-generator.c -=================================================================== ---- systemd-195.orig/src/fstab-generator/fstab-generator.c -+++ systemd-195/src/fstab-generator/fstab-generator.c -@@ -111,7 +111,10 @@ static int add_swap(const char *what, st - f = fopen(unit, "wxe"); - if (!f) { - r = -errno; -- log_error("Failed to create unit file %s: %m", unit); -+ if (errno == EEXIST) -+ log_error("Failed to create swap unit file %s, as it already exists. Duplicate entry in /etc/fstab?", unit); -+ else -+ log_error("Failed to create unit file %s: %m", unit); - goto finish; - } - -@@ -262,7 +265,10 @@ static int add_mount(const char *what, c - f = fopen(unit, "wxe"); - if (!f) { - r = -errno; -- log_error("Failed to create unit file %s: %m", unit); -+ if (errno == EEXIST) -+ log_error("Failed to create mount unit file %s, as it already exists. Duplicate entry in /etc/fstab?", unit); -+ else -+ log_error("Failed to create unit file %s: %m", unit); - goto finish; - } - diff --git a/fstab-generator-improve-error-message.patch b/fstab-generator-improve-error-message.patch deleted file mode 100644 index f1de5734..00000000 --- a/fstab-generator-improve-error-message.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 40b8acd039cf1ea00167017e63d9c0a773002f0e Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 9 Nov 2012 12:00:46 +0100 -Subject: [PATCH] fstab-generator: more specific error messages - ---- - src/fstab-generator/fstab-generator.c | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index 251a346..62053b7 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -111,7 +111,7 @@ static int add_swap(const char *what, struct mntent *me) { - f = fopen(unit, "wxe"); - if (!f) { - r = -errno; -- log_error("Failed to create unit file: %m"); -+ log_error("Failed to create unit file %s: %m", unit); - goto finish; - } - -@@ -138,7 +138,7 @@ static int add_swap(const char *what, struct mntent *me) { - - fflush(f); - if (ferror(f)) { -- log_error("Failed to write unit file: %m"); -+ log_error("Failed to write unit file %s: %m", unit); - r = -errno; - goto finish; - } -@@ -152,7 +152,7 @@ static int add_swap(const char *what, struct mntent *me) { - - mkdir_parents_label(lnk, 0755); - if (symlink(unit, lnk) < 0) { -- log_error("Failed to create symlink: %m"); -+ log_error("Failed to create symlink %s: %m", lnk); - r = -errno; - goto finish; - } -@@ -171,7 +171,7 @@ static int add_swap(const char *what, struct mntent *me) { - - mkdir_parents_label(lnk, 0755); - if (symlink(unit, lnk) < 0) { -- log_error("Failed to create symlink: %m"); -+ log_error("Failed to create symlink %s: %m", lnk); - r = -errno; - goto finish; - } -@@ -262,7 +262,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - f = fopen(unit, "wxe"); - if (!f) { - r = -errno; -- log_error("Failed to create unit file: %m"); -+ log_error("Failed to create unit file %s: %m", unit); - goto finish; - } - -@@ -306,7 +306,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - - fflush(f); - if (ferror(f)) { -- log_error("Failed to write unit file: %m"); -+ log_error("Failed to write unit file %s: %m", unit); - r = -errno; - goto finish; - } -@@ -320,7 +320,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - - mkdir_parents_label(lnk, 0755); - if (symlink(unit, lnk) < 0) { -- log_error("Failed to create symlink: %m"); -+ log_error("Failed to create symlink %s: %m", lnk); - r = -errno; - goto finish; - } -@@ -342,7 +342,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - - mkdir_parents_label(lnk, 0755); - if (symlink(unit, lnk) < 0) { -- log_error("Failed to create symlink: %m"); -+ log_error("Failed to create symlink %s: %m", lnk); - r = -errno; - goto finish; - } -@@ -367,7 +367,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - f = fopen(automount_unit, "wxe"); - if (!f) { - r = -errno; -- log_error("Failed to create unit file: %m"); -+ log_error("Failed to create unit file %s: %m", automount_unit); - goto finish; - } - -@@ -386,7 +386,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - - fflush(f); - if (ferror(f)) { -- log_error("Failed to write unit file: %m"); -+ log_error("Failed to write unit file %s: %m", automount_unit); - r = -errno; - goto finish; - } -@@ -400,7 +400,7 @@ static int add_mount(const char *what, const char *where, struct mntent *me) { - - mkdir_parents_label(lnk, 0755); - if (symlink(automount_unit, lnk) < 0) { -- log_error("Failed to create symlink: %m"); -+ log_error("Failed to create symlink %s: %m", lnk); - r = -errno; - goto finish; - } --- -1.7.10.4 - diff --git a/fstab-generator-properly-detect-bind-mounts.patch b/fstab-generator-properly-detect-bind-mounts.patch deleted file mode 100644 index d6461abb..00000000 --- a/fstab-generator-properly-detect-bind-mounts.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f9ea108e7c3544c03822277a1112a48dc62f6ed4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Dec 2012 13:01:00 +0100 -Subject: [PATCH] fstab-generator: properly detect bind mounts - -This kinda undoes a83cbaccd03c3f28e47e9330f4a22ff65ce4b561 and -1d634e21b453f3c80d7c6c4bd90a6b84e42a3d2a but corrects the original code -to compare the mount type with "bind" rather than the mount options. ---- - src/fstab-generator/fstab-generator.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -Index: systemd-195/src/fstab-generator/fstab-generator.c -=================================================================== ---- systemd-195.orig/src/fstab-generator/fstab-generator.c -+++ systemd-195/src/fstab-generator/fstab-generator.c -@@ -199,7 +199,7 @@ static bool mount_is_bind(struct mntent - - return - hasmntopt(me, "bind") || -- streq(me->mnt_opts, "bind"); -+ streq(me->mnt_type, "bind"); - } - - static bool mount_is_network(struct mntent *me) { diff --git a/handle-HOSTNAME.patch b/handle-HOSTNAME.patch deleted file mode 100644 index 56aa50f3..00000000 --- a/handle-HOSTNAME.patch +++ /dev/null @@ -1,36 +0,0 @@ -Index: systemd-195/src/hostname/hostnamed.c -=================================================================== ---- systemd-195.orig/src/hostname/hostnamed.c -+++ systemd-195/src/hostname/hostnamed.c -@@ -118,6 +118,10 @@ static int read_data(void) { - if (r < 0 && r != -ENOENT) - return r; - -+ r = read_one_line_file("/etc/HOSTNAME", &data[PROP_STATIC_HOSTNAME]); -+ if (r < 0 && r != -ENOENT) -+ return r; -+ - return 0; - } - -@@ -204,6 +208,7 @@ static int write_data_hostname(void) { - - static int write_data_static_hostname(void) { - -+ int r; - if (isempty(data[PROP_STATIC_HOSTNAME])) { - - if (unlink("/etc/hostname") < 0) -@@ -212,7 +217,11 @@ static int write_data_static_hostname(vo - return 0; - } - -- return write_one_line_file_atomic("/etc/hostname", data[PROP_STATIC_HOSTNAME]); -+ r = write_one_line_file_atomic("/etc/hostname", data[PROP_STATIC_HOSTNAME]); -+ if (!r) { -+ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); -+ } -+ return r; - } - - static int write_data_other(void) { diff --git a/systemctl-options.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch similarity index 51% rename from systemctl-options.patch rename to handle-SYSTEMCTL_OPTIONS-environment-variable.patch index 0b100b2f..1ed955b9 100644 --- a/systemctl-options.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -1,25 +1,28 @@ -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -5239,6 +5239,7 @@ static int runlevel_main(void) { - - int main(int argc, char*argv[]) { - int r, retval = EXIT_FAILURE; -+ char **to_free = NULL; - DBusConnection *bus = NULL; - DBusError error; - -@@ -5247,6 +5248,27 @@ int main(int argc, char*argv[]) { +From: Frederic Crozat +Date: Tue, 22 Jan 2013 17:02:04 +0000 +Subject: handle SYSTEMCTL_OPTIONS environment variable + +(bnc#798620) +--- + src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c +index 84ce87c..cceafc9 100644 +--- a/src/systemctl/systemctl.c ++++ b/src/systemctl/systemctl.c +@@ -5926,6 +5926,28 @@ int main(int argc, char*argv[]) { log_parse_environment(); log_open(); -+ if (secure_getenv("SYSTEMCTL_OPTIONS")) { ++ if (secure_getenv("SYSTEMCTL_OPTIONS") && ++ (!program_invocation_short_name || ++ (program_invocation_short_name && strstr(program_invocation_short_name, "systemctl")))) { + char **parsed_systemctl_options = strv_split_quoted(getenv("SYSTEMCTL_OPTIONS")); + + if (*parsed_systemctl_options && **parsed_systemctl_options) { + char **k,**a; -+ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); ++ _cleanup_strv_free_ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); + new_argv[0] = strdup(argv[0]); + for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { + *k = strdup(*a); @@ -31,19 +34,9 @@ Index: systemd-195/src/systemctl/systemctl.c + argv = new_argv; + argc = strv_length(new_argv); + strv_free (parsed_systemctl_options); -+ to_free = new_argv; + } + } + r = parse_argv(argc, argv); if (r < 0) goto finish; -@@ -5348,6 +5370,8 @@ finish: - - strv_free(arg_property); - -+ strv_free(to_free); -+ - pager_close(); - ask_password_agent_close(); - polkit_agent_close(); diff --git a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch similarity index 69% rename from 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch rename to handle-disable_caplock-and-compose_table-and-kbd_rate.patch index d04cb888..050f9216 100644 --- a/0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -1,20 +1,20 @@ -m 5c894bc1e45f7c34bf7fc4ca0d20bf1c3b679bef Mon Sep 17 00:00:00 2001 From: Frederic Crozat -Date: Thu, 18 Aug 2011 18:28:01 +0200 -Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate +Date: Fri, 19 Aug 2011 15:29:49 +0000 +Subject: handle disable_caplock and compose_table and kbd_rate +(bnc#746595) --- - src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++- - 1 files changed, 121 insertions(+), 3 deletions(-) + src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 153 insertions(+), 3 deletions(-) -Index: systemd-195/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-195.orig/src/vconsole/vconsole-setup.c -+++ systemd-195/src/vconsole/vconsole-setup.c +diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c +index 1bbf737..384f936 100644 +--- a/src/vconsole/vconsole-setup.c ++++ b/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ - #include "log.h" #include "macro.h" #include "virt.h" + #include "fileio.h" +#include "strv.h" static bool is_vconsole(int fd) { @@ -23,14 +23,14 @@ Index: systemd-195/src/vconsole/vconsole-setup.c return r; } --static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) { +-static int keymap_load(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) { - const char *args[8]; -+static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, pid_t *_pid) { ++static int keymap_load(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, pid_t *_pid) { + const char *args[9]; int i = 0; pid_t pid; -@@ -119,6 +120,8 @@ static int load_keymap(const char *vc, c +@@ -119,6 +120,8 @@ static int keymap_load(const char *vc, const char *map, const char *map_toggle, args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,11 +39,11 @@ Index: systemd-195/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -172,6 +175,101 @@ static int load_font(const char *vc, con - return 0; +@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) { + } } -+#ifdef TARGET_SUSE ++#ifdef HAVE_SYSV_COMPAT +static int load_compose_table(const char *vc, const char *compose_table, pid_t *_pid) { + const char *args[1024]; + int i = 0, j = 0; @@ -102,6 +102,7 @@ Index: systemd-195/src/vconsole/vconsole-setup.c + + return 0; +} ++#endif + +static int set_kbd_rate(const char *vc, const char *kbd_rate, const char *kbd_delay, pid_t *_pid) { + const char *args[7]; @@ -136,16 +137,15 @@ Index: systemd-195/src/vconsole/vconsole-setup.c + *_pid = pid; + return 0; +} -+#endif + int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -185,8 +283,16 @@ int main(int argc, char **argv) { - #if defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) - char *vc_keytable = NULL; - #endif -+#ifdef TARGET_SUSE +@@ -219,8 +317,16 @@ int main(int argc, char **argv) { + char *vc_font = NULL; + char *vc_font_map = NULL; + char *vc_font_unimap = NULL; ++#ifdef HAVE_SYSV_COMPAT + char *vc_kbd_delay = NULL; + char *vc_kbd_rate = NULL; + char *vc_kbd_disable_caps_lock = NULL; @@ -155,43 +155,59 @@ Index: systemd-195/src/vconsole/vconsole-setup.c int fd = -1; bool utf8; + bool disable_capslock = false; - int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -276,13 +382,43 @@ int main(int argc, char **argv) { + log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); + } -@@ -273,10 +379,15 @@ int main(int argc, char **argv) { - free(vc_keymap); - vc_keymap = t; - } -+ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; - - #elif defined(TARGET_SUSE) - r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, - "KEYTABLE", &vc_keymap, ++ if (r <= 0) { ++#ifdef HAVE_SYSV_COMPAT ++ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, ++ "KEYTABLE", &vc_keymap, + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, + "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); -@@ -435,7 +546,11 @@ int main(int argc, char **argv) { ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); ++ ++ r = parse_env_file("/etc/sysconfig/console", NEWLINE, ++ "CONSOLE_FONT", &vc_font, ++ "CONSOLE_SCREENMAP", &vc_font_map, ++ "CONSOLE_UNICODEMAP", &vc_font_unimap, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); ++ ++ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++ ++#endif ++ } ++ + if (utf8) + enable_utf8(fd); + else disable_utf8(fd); - -- if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && -+ if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && -+#ifdef TARGET_SUSE + r = EXIT_FAILURE; +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && ++ ++ if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && ++#ifdef HAVE_SYSV_COMPAT + load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && + set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && +#endif - load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) + font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -443,6 +558,14 @@ finish: +@@ -290,6 +426,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+#ifdef TARGET_SUSE ++#ifdef HAVE_SYSV_COMPAT + if (compose_table_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); + @@ -199,14 +215,14 @@ Index: systemd-195/src/vconsole/vconsole-setup.c + wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); +#endif + - if (font_pid > 0) + if (font_pid > 0) { wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - -@@ -450,6 +573,12 @@ finish: + if (font_copy) +@@ -300,6 +444,12 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); -+#ifdef TARGET_SUSE ++#ifdef HAVE_SYSV_COMPAT + free(vc_kbd_delay); + free(vc_kbd_rate); + free(vc_kbd_disable_caps_lock); diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch new file mode 100644 index 00000000..2688e851 --- /dev/null +++ b/handle-etc-HOSTNAME.patch @@ -0,0 +1,46 @@ +From: Frederic Crozat +Date: Fri, 15 Feb 2013 16:04:39 +0000 +Subject: handle /etc/HOSTNAME + +(bnc#803653) +--- + src/hostname/hostnamed.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c +index c7f454c..cfbd706 100644 +--- a/src/hostname/hostnamed.c ++++ b/src/hostname/hostnamed.c +@@ -129,6 +129,10 @@ static int read_data(void) { + if (r < 0 && r != -ENOENT) + return r; + ++ r = read_one_line_file("/etc/HOSTNAME", &data[PROP_STATIC_HOSTNAME]); ++ if (r < 0 && r != -ENOENT) ++ return r; ++ + return 0; + } + +@@ -283,6 +287,7 @@ static int write_data_hostname(void) { + + static int write_data_static_hostname(void) { + ++ int r; + if (isempty(data[PROP_STATIC_HOSTNAME])) { + + if (unlink("/etc/hostname") < 0) +@@ -290,7 +295,12 @@ static int write_data_static_hostname(void) { + + return 0; + } +- return write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ ++ r = write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ if (!r) { ++ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); ++ } ++ return r; + } + + static int write_data_other(void) { diff --git a/systemd-numlock-suse.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch similarity index 67% rename from systemd-numlock-suse.patch rename to handle-numlock-value-in-etc-sysconfig-keyboard.patch index 1e89d398..00c10673 100644 --- a/systemd-numlock-suse.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -1,8 +1,121 @@ -Index: systemd-195/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-195.orig/src/vconsole/vconsole-setup.c -+++ systemd-195/src/vconsole/vconsole-setup.c -@@ -287,12 +287,14 @@ int main(int argc, char **argv) { +From: Stanislav Brabec +Date: Fri, 20 Apr 2012 17:16:37 +0200 +Subject: handle numlock value in /etc/sysconfig/keyboard + +(bnc#746595) +--- + Makefile.am | 13 +++++++++++ + configure.ac | 5 +++++ + rules/73-seat-numlock.rules | 8 +++++++ + src/login/numlock-on.c | 37 ++++++++++++++++++++++++++++++++ + src/vconsole/vconsole-setup.c | 38 +++++++++++++++++++++++++++++++++ + units/systemd-vconsole-setup.service.in | 2 +- + 6 files changed, 102 insertions(+), 1 deletion(-) + create mode 100644 rules/73-seat-numlock.rules + create mode 100644 src/login/numlock-on.c + +diff --git a/Makefile.am b/Makefile.am +index d594a3d..e82d092 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2205,6 +2205,19 @@ dist_udevrules_DATA += \ + rules/61-accelerometer.rules + + # ------------------------------------------------------------------------------ ++numlock_on_SOURCES = \ ++ src/login/numlock-on.c ++ ++numlock_on_CFLAGS = \ ++ $(AM_CFLAGS) ++ ++udevlibexec_PROGRAMS += \ ++ numlock-on ++ ++dist_udevrules_DATA += \ ++ rules/73-seat-numlock.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ +diff --git a/configure.ac b/configure.ac +index e58d694..222ed22 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -789,6 +789,11 @@ AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"]) + + # ------------------------------------------------------------------------------ + ++AC_PATH_PROG([HWINFO], [hwinfo], [/usr/sbin/hwinfo], [/sbin:/usr/sbin:/usr/bin:/bin]) ++AC_DEFINE_UNQUOTED([HWINFO], ["${HWINFO}"], [Path to hwinfo binary. (SUSE)]) ++AC_PATH_PROG([SETLEDS], [setleds], [/bin/setleds], [/sbin:/usr/sbin:/usr/bin:/bin]) ++AC_DEFINE_UNQUOTED([SETLEDS], ["${SETLEDS}"], [Path to setleds binary.]) ++ + # Location of the init scripts as mandated by LSB + SYSTEM_SYSVINIT_PATH=/etc/init.d + SYSTEM_SYSVRCND_PATH=/etc/rc.d +diff --git a/rules/73-seat-numlock.rules b/rules/73-seat-numlock.rules +new file mode 100644 +index 0000000..e0061ed +--- /dev/null ++++ b/rules/73-seat-numlock.rules +@@ -0,0 +1,8 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" +diff --git a/src/login/numlock-on.c b/src/login/numlock-on.c +new file mode 100644 +index 0000000..77a8368 +--- /dev/null ++++ b/src/login/numlock-on.c +@@ -0,0 +1,37 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2012 Stanislav Brabec ++ ++ systemd 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. ++ ++ systemd 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. ++ ++ You should have received a copy of the GNU General Public License ++ along with systemd; If not, see . ++***/ ++ ++#include "config.h" ++#include ++#include ++#include ++ ++int main (int argc, char *argv[]) { ++ static const char *args[] = { SETLEDS, "-D", "+num", NULL }; ++ ++ if (argc != 2) ++ return EX_USAGE; ++ close (STDIN_FILENO); ++ if (open (argv[1], O_RDONLY) != STDIN_FILENO) ++ return EX_IOERR; ++ /* add cast to prevent warning caused by -Wwrite-strings */ ++ return execv(args[0], (char * const*) args); ++} +diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c +index 384f936..e1f8868 100644 +--- a/src/vconsole/vconsole-setup.c ++++ b/src/vconsole/vconsole-setup.c +@@ -321,12 +321,14 @@ int main(int argc, char **argv) { char *vc_kbd_delay = NULL; char *vc_kbd_rate = NULL; char *vc_kbd_disable_caps_lock = NULL; @@ -14,12 +127,20 @@ Index: systemd-195/src/vconsole/vconsole-setup.c bool utf8; bool disable_capslock = false; + bool numlock = false; - int r = EXIT_FAILURE; pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -389,6 +391,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -403,6 +406,37 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); -@@ -380,6 +382,37 @@ int main(int argc, char **argv) { - vc_keymap = t; - } disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; + if (vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "BIOS") == 0) { + int hwinfo_fd[2]; @@ -53,17 +174,9 @@ Index: systemd-195/src/vconsole/vconsole-setup.c + } else + numlock = vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "YES") == 0; - #elif defined(TARGET_SUSE) - r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, -@@ -387,6 +420,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -557,6 +591,10 @@ int main(int argc, char **argv) { + #endif + } +@@ -425,6 +459,10 @@ int main(int argc, char **argv) { finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -72,109 +185,13 @@ Index: systemd-195/src/vconsole/vconsole-setup.c + else + unlink("/run/numlock-on"); - #ifdef TARGET_SUSE + #ifdef HAVE_SYSV_COMPAT if (compose_table_pid > 0) -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -2017,6 +2017,19 @@ dist_udevrules_DATA += \ - rules/61-accelerometer.rules - - # ------------------------------------------------------------------------------ -+numlock_on_SOURCES = \ -+ src/login/numlock-on.c -+ -+numlock_on_CFLAGS = \ -+ $(AM_CFLAGS) -+ -+udevlibexec_PROGRAMS += \ -+ numlock-on -+ -+dist_udevrules_DATA += \ -+ rules/73-seat-numlock.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ -Index: systemd-195/configure.ac -=================================================================== ---- systemd-195.orig/configure.ac -+++ systemd-195/configure.ac -@@ -660,6 +660,13 @@ fi - with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` - AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution]) - -+if test z"$with_distro" = z"suse" ; then -+ AC_PATH_PROG([HWINFO], [hwinfo], [/usr/sbin/hwinfo], [/sbin:/usr/sbin:/usr/bin:/bin]) -+ AC_DEFINE_UNQUOTED([HWINFO], ["${HWINFO}"], [Path to hwinfo binary. (SUSE)]) -+fi -+AC_PATH_PROG([SETLEDS], [setleds], [/bin/setleds], [/sbin:/usr/sbin:/usr/bin:/bin]) -+AC_DEFINE_UNQUOTED([SETLEDS], ["${SETLEDS}"], [Path to setleds binary.]) -+ - # Location of the init scripts as mandated by LSB - SYSTEM_SYSVINIT_PATH=/etc/init.d - SYSTEM_SYSVRCND_PATH=/etc/rc.d -Index: systemd-195/rules/73-seat-numlock.rules -=================================================================== ---- /dev/null -+++ systemd-195/rules/73-seat-numlock.rules -@@ -0,0 +1,8 @@ -+# This file is part of systemd. -+# -+# systemd 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. -+ -+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-195/src/login/numlock-on.c -=================================================================== ---- /dev/null -+++ systemd-195/src/login/numlock-on.c -@@ -0,0 +1,36 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2012 Stanislav Brabec -+ -+ systemd 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. -+ -+ systemd 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. -+ -+ You should have received a copy of the GNU General Public License -+ along with systemd; If not, see . -+***/ -+ -+#include "config.h" -+#include -+#include -+#include -+ -+int main (int argc, char *argv[]) { -+ static char *args[] = { SETLEDS, "-D", "+num", NULL }; -+ -+ if (argc != 2) -+ return EX_USAGE; -+ close (STDIN_FILENO); -+ if (open (argv[1], O_RDONLY) != STDIN_FILENO) -+ return EX_IOERR; -+ return execv(args[0], args); -+} -Index: systemd-195/units/systemd-vconsole-setup.service.in -=================================================================== ---- systemd-195.orig/units/systemd-vconsole-setup.service.in -+++ systemd-195/units/systemd-vconsole-setup.service.in -@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup +diff --git a/units/systemd-vconsole-setup.service.in b/units/systemd-vconsole-setup.service.in +index 18faa63..44ebbd0 100644 +--- a/units/systemd-vconsole-setup.service.in ++++ b/units/systemd-vconsole-setup.service.in +@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service diff --git a/handle-root-uses-lang.patch b/handle-root-uses-lang.patch deleted file mode 100644 index 21af5038..00000000 --- a/handle-root-uses-lang.patch +++ /dev/null @@ -1,48 +0,0 @@ -Index: systemd-195/src/core/locale-setup.c -=================================================================== ---- systemd-195.orig/src/core/locale-setup.c -+++ systemd-195/src/core/locale-setup.c -@@ -69,6 +69,11 @@ static const char * const variable_names - int locale_setup(void) { - char *variables[_VARIABLE_MAX]; - int r = 0, i; -+#if defined(TARGET_SUSE) -+ char *root_uses_lang; -+ -+ zero(root_uses_lang); -+#endif - - zero(variables); - -@@ -134,11 +139,21 @@ int locale_setup(void) { - #elif defined(TARGET_SUSE) - if (r <= 0 && - (r = parse_env_file("/etc/sysconfig/language", NEWLINE, -+ "ROOT_USES_LANG", &root_uses_lang, - "RC_LANG", &variables[VARIABLE_LANG], - NULL)) < 0) { - - if (r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); -+ } else { -+ if (!root_uses_lang || root_uses_lang && strcasecmp(root_uses_lang,"yes") != 0) { -+ if (root_uses_lang && strcasecmp(root_uses_lang,"ctype") == 0) -+ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; -+ else -+ free(variables[VARIABLE_LANG]); -+ -+ variables[VARIABLE_LANG]=strdup("POSIX"); -+ } - } - - #elif defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) -@@ -247,5 +262,9 @@ finish: - for (i = 0; i < _VARIABLE_MAX; i++) - free(variables[i]); - -+#if defined(TARGET_SUSE) -+ free(root_uses_lang); -+#endif -+ - return r; - } diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch new file mode 100644 index 00000000..e2ac6c77 --- /dev/null +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -0,0 +1,54 @@ +From: Frederic Crozat +Date: Tue, 4 Dec 2012 16:51:32 +0000 +Subject: handle root_uses_lang value in /etc/sysconfig/language + +handle ROOT_USES_LANG=ctype (bnc#792182). +--- + src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/src/core/locale-setup.c b/src/core/locale-setup.c +index d7113b9..b3fb603 100644 +--- a/src/core/locale-setup.c ++++ b/src/core/locale-setup.c +@@ -70,6 +70,11 @@ static const char * const variable_names[_VARIABLE_MAX] = { + int locale_setup(void) { + char *variables[_VARIABLE_MAX] = {}; + int r = 0, i; ++#ifdef HAVE_SYSV_COMPAT ++ char _cleanup_free_ *root_uses_lang; ++ ++ zero(root_uses_lang); ++#endif + + if (detect_container(NULL) <= 0) { + r = parse_env_file("/proc/cmdline", WHITESPACE, +@@ -117,6 +122,28 @@ int locale_setup(void) { + log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); + } + ++#ifdef HAVE_SYSV_COMPAT ++ if (r <= 0 && ++ (r = parse_env_file("/etc/sysconfig/language", NEWLINE, ++ "ROOT_USES_LANG", &root_uses_lang, ++ "RC_LANG", &variables[VARIABLE_LANG], ++ NULL)) < 0) { ++ ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); ++ } else { ++ if (!root_uses_lang || (root_uses_lang && !strcaseeq(root_uses_lang,"yes"))) { ++ if (root_uses_lang && strcaseeq(root_uses_lang,"ctype")) ++ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; ++ else ++ free(variables[VARIABLE_LANG]); ++ ++ variables[VARIABLE_LANG]=strdup("POSIX"); ++ } ++ } ++ ++#endif ++ + if (!variables[VARIABLE_LANG]) { + variables[VARIABLE_LANG] = strdup("C"); + if (!variables[VARIABLE_LANG]) { diff --git a/highlight-ordering-cycle-deletions.patch b/highlight-ordering-cycle-deletions.patch deleted file mode 100644 index 296fdc61..00000000 --- a/highlight-ordering-cycle-deletions.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f09a7d25545b5e3a2dd3dfc1ff7ebc8560a3354c Mon Sep 17 00:00:00 2001 -From: Olivier Brunel -Date: Mon, 5 Nov 2012 00:28:45 +0100 -Subject: [PATCH] systemd: highlight ordering cycle deletions - -Having unit(s) removed/not started, even if it solved the issue and allowed -to boot successfully, should still be considered an error, as something -clearly isn't right. - -This patch elevates the log message from warning to error, and adds a status -message to make things more obvious. ---- - src/core/transaction.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/core/transaction.c b/src/core/transaction.c -index 4bce942..ee6992a 100644 ---- a/src/core/transaction.c -+++ b/src/core/transaction.c -@@ -374,7 +374,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi - - - if (delete) { -- log_warning("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); -+ log_error("Breaking ordering cycle by deleting job %s/%s", delete->unit->id, job_type_to_string(delete->type)); -+ status_printf(ANSI_HIGHLIGHT_RED_ON " SKIP " ANSI_HIGHLIGHT_OFF, true, "Ordering cycle found, skip %s", unit_description(delete->unit)); - transaction_delete_unit(tr, delete->unit); - return -EAGAIN; - } --- -1.7.10.4 - diff --git a/hostnamectl-fix-parsing-no-ask-password.patch b/hostnamectl-fix-parsing-no-ask-password.patch deleted file mode 100644 index ac629848..00000000 --- a/hostnamectl-fix-parsing-no-ask-password.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 59f432ea6d6d441d0af7c76c37e80730c8df473a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 15 Nov 2012 22:47:04 +0100 -Subject: [PATCH] hostnamectl: fix parsing of --no-ask-password - ---- - src/hostname/hostnamectl.c | 4 ++++ - 1 file changed, 4 insertions(+) - -Index: systemd-195/src/hostname/hostnamectl.c -=================================================================== ---- systemd-195.orig/src/hostname/hostnamectl.c -+++ systemd-195/src/hostname/hostnamectl.c -@@ -402,6 +402,10 @@ static int parse_argv(int argc, char *ar - arg_set_static = true; - break; - -+ case ARG_NO_ASK_PASSWORD: -+ arg_ask_password = false; -+ break; -+ - case '?': - return -EINVAL; - diff --git a/hostnamectl-fix-set-hostname-with-no-argument.patch b/hostnamectl-fix-set-hostname-with-no-argument.patch deleted file mode 100644 index 15181308..00000000 --- a/hostnamectl-fix-set-hostname-with-no-argument.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f36d7992ef9588e24feaae5bb3d103ca63af71bd Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 29 Oct 2012 20:54:26 +0100 -Subject: [PATCH] hostnamectl: do not choke on set-hostname with no argument - -https://bugzilla.redhat.com/show_bug.cgi?id=871172 ---- - src/hostname/hostnamectl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c -index 1d448bd..e7b2b49 100644 ---- a/src/hostname/hostnamectl.c -+++ b/src/hostname/hostnamectl.c -@@ -430,7 +430,7 @@ static int hostnamectl_main(DBusConnection *bus, int argc, char *argv[], DBusErr - int (* const dispatch)(DBusConnection *bus, char **args, unsigned n); - } verbs[] = { - { "status", LESS, 1, show_status }, -- { "set-hostname", LESS, 2, set_hostname }, -+ { "set-hostname", EQUAL, 2, set_hostname }, - { "set-icon-name", EQUAL, 2, set_icon_name }, - }; - --- -1.7.10.4 - diff --git a/improve-bash-completion.patch b/improve-bash-completion.patch deleted file mode 100644 index b3580f99..00000000 --- a/improve-bash-completion.patch +++ /dev/null @@ -1,173 +0,0 @@ -Index: systemd-195/bash-completion/systemd-bash-completion.sh -=================================================================== ---- systemd-195.orig/bash-completion/systemd-bash-completion.sh -+++ systemd-195/bash-completion/systemd-bash-completion.sh -@@ -114,15 +114,15 @@ _systemctl () { - [SNAPSHOTS]='delete' - [ENVS]='set-environment unset-environment' - [STANDALONE]='daemon-reexec daemon-reload default dot dump -- emergency exit halt kexec list-jobs list-units -- list-unit-files poweroff reboot rescue show-environment' -+ emergency exit halt hybrid-sleep hibernate kexec list-jobs list-units -+ list-unit-files poweroff reboot rescue show-environment suspend' - [NAME]='snapshot load' - [FILE]='link' - ) - - for ((i=0; $i <= $COMP_CWORD; i++)); do - if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && -- ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG}]}; then -+ ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then - verb=${COMP_WORDS[i]} - break - fi -@@ -245,7 +245,7 @@ _loginctl () { - - for ((i=0; $i <= $COMP_CWORD; i++)); do - if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && -- ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG}]}; then -+ ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then - verb=${COMP_WORDS[i]} - break - fi -@@ -280,10 +280,21 @@ _loginctl () { - } - complete -F _loginctl loginctl - -+__journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} -+ ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} -+ _{P,U,G}ID _COMM _EXE _CMDLINE -+ _AUDIT_{SESSION,LOGINUID} -+ _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID} -+ _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP -+ _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT -+ _KERNEL_{DEVICE,SUBSYSTEM} -+ _UDEV_{SYSNAME,DEVNODE,DEVLINK} -+ __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) -+ - _journalctl() { - local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} - local -A OPTS=( -- [STANDALONE]='-a --all -b --this-boot -f --follow --header -+ [STANDALONE]='-a --all -b --this-boot --disk-usage -f --follow --header - -h --help -l --local --new-id128 -m --merge --no-pager - --no-tail -q --quiet --setup-keys --this-boot --verify - --version' -@@ -291,17 +302,6 @@ _journalctl() { - [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until - --verify-key' - ) -- local journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} -- ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} -- _{P,U,G}ID _COMM _EXE _CMDLINE -- _AUDIT_{SESSION,LOGINUID} -- _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID} -- _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP -- _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT -- _KERNEL_{DEVICE,SUBSYSTEM} -- _UDEV_{SYSNAME,DEVNODE,DEVLINK} -- __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) -- - - if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then - case $prev in -@@ -313,7 +313,7 @@ _journalctl() { - comps='short short-monotonic verbose export json cat' - ;; - --field|-F) -- comps=${journal_fields[*]} -+ comps=${__journal_fields[*]} - ;; - --unit|-u) - comps=$(journalctl -F '_SYSTEMD_UNIT') -@@ -337,7 +337,7 @@ _journalctl() { - COMPREPLY=( $(compgen -W '${field_vals[*]}' -- "$cur") ) - else - compopt -o nospace -- COMPREPLY=( $(compgen -W '${journal_fields[*]}' -S= -- "$cur") ) -+ COMPREPLY=( $(compgen -W '${__journal_fields[*]}' -S= -- "$cur") ) - fi - } - complete -F _journalctl journalctl -@@ -476,3 +476,81 @@ _hostnamectl() { - return 0 - } - complete -F _hostnamectl hostnamectl -+ -+__get_all_sysdevs() { -+ local -a devs=(/sys/bus/*/devices/*/ /sys/class/*/*/) -+ printf '%s\n' "${devs[@]%/}" -+} -+ -+_udevadm() { -+ local i verb comps -+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -+ local OPTS='-h --help --version --debug' -+ -+ local -A VERBS=( -+ [INFO]='info' -+ [TRIGGER]='trigger' -+ [SETTLE]='settle' -+ [CONTROL]='control' -+ [MONITOR]='monitor' -+ [HWDB]='hwdb' -+ [TESTBUILTIN]='test-builtin' -+ [TEST]='test' -+ ) -+ -+ for ((i=0; $i <= $COMP_CWORD; i++)); do -+ if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && -+ ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then -+ verb=${COMP_WORDS[i]} -+ break -+ fi -+ done -+ -+ if [[ -z $verb && $cur = -* ]]; then -+ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) -+ return 0 -+ fi -+ -+ if [[ -z $verb ]]; then -+ comps=${VERBS[*]} -+ -+ elif __contains_word "$verb" ${VERBS[INFO]}; then -+ if [[ $cur = -* ]]; then -+ comps='--help --query= --path= --name= --root --attribute-walk --export-db --cleanup-db' -+ else -+ comps=$( __get_all_sysdevs ) -+ fi -+ -+ elif __contains_word "$verb" ${VERBS[TRIGGER]}; then -+ comps='--help --verbose --dry-run --type= --action= --subsystem-match= -+ --subsystem-nomatch= --attr-match= --attr-nomatch= --property-match= -+ --tag-match= --sysname-match= --parent-match=' -+ -+ elif __contains_word "$verb" ${VERBS[SETTLE]}; then -+ comps='--help --timeout= --seq-start= --seq-end= --exit-if-exists= --quiet' -+ -+ elif __contains_word "$verb" ${VERBS[CONTROL]}; then -+ comps='--help --exit --log-priority= --stop-exec-queue --start-exec-queue -+ --reload --property= --children-max= --timeout=' -+ -+ elif __contains_word "$verb" ${VERBS[MONITOR]}; then -+ comps='--help --kernel --udev --property --subsystem-match= --tag-match=' -+ -+ elif __contains_word "$verb" ${VERBS[HWDB]}; then -+ comps='--help --update --test=' -+ -+ elif __contains_word "$verb" ${VERBS[TEST]}; then -+ if [[ $cur = -* ]]; then -+ comps='--help --action=' -+ else -+ comps=$( __get_all_sysdevs ) -+ fi -+ -+ elif __contains_word "$verb" ${VERBS[TESTBUILTIN]}; then -+ comps='blkid btrfs firmware hwdb input_id kmod net_id path_id usb_id uaccess' -+ fi -+ -+ COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ return 0 -+} -+complete -F _udevadm udevadm diff --git a/improve-journal-perf.patch b/improve-journal-perf.patch deleted file mode 100644 index 8f0eb8f7..00000000 --- a/improve-journal-perf.patch +++ /dev/null @@ -1,304 +0,0 @@ -From a4bcff5ba36115495994e9f9ba66074471de76ab Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 26 Oct 2012 03:24:03 +0200 -Subject: [PATCH] journal: introduce entry array chain cache - -When traversing entry array chains for a bisection or for retrieving an -item by index we previously always started at the beginning of the -chain. Since we tend to look at the same chains repeatedly, let's cache -where we have been the last time, and maybe we can skip ahead with this -the next time. - -This turns most bisections and index lookups from O(log(n)*log(n)) into -O(log(n)). More importantly however, we seek around on disk much less, -which is good to reduce buffer cache and seek times on rotational disks. ---- - .gitignore | 1 + - Makefile.am | 9 ++++ - src/journal/journal-file.c | 109 +++++++++++++++++++++++++++++++++++++--- - src/journal/journal-file.h | 3 ++ - src/journal/test-journal-enum.c | 53 +++++++++++++++++++ - src/shared/hashmap.c | 19 +++++++ - src/shared/hashmap.h | 3 ++ - 7 files changed, 189 insertions(+), 8 deletions(-) - create mode 100644 src/journal/test-journal-enum.c - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index edf8e7d..6c9deac 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -65,6 +65,9 @@ - /* n_data was the first entry we added after the initial file format design */ - #define HEADER_SIZE_MIN ALIGN64(offsetof(Header, n_data)) - -+/* How many entries to keep in the entry array chain cache at max */ -+#define CHAIN_CACHE_MAX 20 -+ - void journal_file_close(JournalFile *f) { - assert(f); - -@@ -97,6 +100,8 @@ void journal_file_close(JournalFile *f) { - if (f->mmap) - mmap_cache_unref(f->mmap); - -+ hashmap_free_free(f->chain_cache); -+ - #ifdef HAVE_XZ - free(f->compress_buffer); - #endif -@@ -1307,37 +1312,89 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - return r; - } - -+typedef struct ChainCacheItem { -+ uint64_t first; /* the array at the begin of the chain */ -+ uint64_t array; /* the cached array */ -+ uint64_t begin; /* the first item in the cached array */ -+ uint64_t total; /* the total number of items in all arrays before this one in the chain */ -+} ChainCacheItem; -+ -+static void chain_cache_put( -+ Hashmap *h, -+ ChainCacheItem *ci, -+ uint64_t first, -+ uint64_t array, -+ uint64_t begin, -+ uint64_t total) { -+ -+ if (!ci) { -+ if (hashmap_size(h) >= CHAIN_CACHE_MAX) -+ ci = hashmap_steal_first(h); -+ else { -+ ci = new(ChainCacheItem, 1); -+ if (!ci) -+ return; -+ } -+ -+ ci->first = first; -+ -+ if (hashmap_put(h, &ci->first, ci) < 0) { -+ free(ci); -+ return; -+ } -+ } else -+ assert(ci->first == first); -+ -+ ci->array = array; -+ ci->begin = begin; -+ ci->total = total; -+} -+ - static int generic_array_get(JournalFile *f, - uint64_t first, - uint64_t i, - Object **ret, uint64_t *offset) { - - Object *o; -- uint64_t p = 0, a; -+ uint64_t p = 0, a, t = 0; - int r; -+ ChainCacheItem *ci; - - assert(f); - - a = first; -+ -+ /* Try the chain cache first */ -+ ci = hashmap_get(f->chain_cache, &first); -+ if (ci && i > ci->total) { -+ a = ci->array; -+ i -= ci->total; -+ t = ci->total; -+ } -+ - while (a > 0) { -- uint64_t n; -+ uint64_t k; - - r = journal_file_move_to_object(f, OBJECT_ENTRY_ARRAY, a, &o); - if (r < 0) - return r; - -- n = journal_file_entry_array_n_items(o); -- if (i < n) { -+ k = journal_file_entry_array_n_items(o); -+ if (i < k) { - p = le64toh(o->entry_array.items[i]); -- break; -+ goto found; - } - -- i -= n; -+ i -= k; -+ t += k; - a = le64toh(o->entry_array.next_entry_array_offset); - } - -- if (a <= 0 || p <= 0) -- return 0; -+ return 0; -+ -+found: -+ /* Let's cache this item for the next invocation */ -+ chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t); - - r = journal_file_move_to_object(f, OBJECT_ENTRY, p, &o); - if (r < 0) -@@ -1401,11 +1458,38 @@ static int generic_array_bisect(JournalFile *f, - bool subtract_one = false; - Object *o, *array = NULL; - int r; -+ ChainCacheItem *ci; - - assert(f); - assert(test_object); - -+ /* Start with the first array in the chain */ - a = first; -+ -+ ci = hashmap_get(f->chain_cache, &first); -+ if (ci && n > ci->total) { -+ /* Ah, we have iterated this bisection array chain -+ * previously! Let's see if we can skip ahead in the -+ * chain, as far as the last time. But we can't jump -+ * backwards in the chain, so let's check that -+ * first. */ -+ -+ r = test_object(f, ci->begin, needle); -+ if (r < 0) -+ return r; -+ -+ if (r == TEST_LEFT) { -+ /* OK, what we are looking for is right of th -+ * begin of this EntryArray, so let's jump -+ * straight to previously cached array in the -+ * chain */ -+ -+ a = ci->array; -+ n -= ci->total; -+ t = ci->total; -+ } -+ } -+ - while (a > 0) { - uint64_t left, right, k, lp; - -@@ -1486,6 +1570,9 @@ found: - if (subtract_one && t == 0 && i == 0) - return 0; - -+ /* Let's cache this item for the next invocation */ -+ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t); -+ - if (subtract_one && i == 0) - p = last_p; - else if (subtract_one) -@@ -2265,6 +2352,12 @@ int journal_file_open( - goto fail; - } - -+ f->chain_cache = hashmap_new(uint64_hash_func, uint64_compare_func); -+ if (!f->chain_cache) { -+ r = -ENOMEM; -+ goto fail; -+ } -+ - f->fd = open(f->path, f->flags|O_CLOEXEC, f->mode); - if (f->fd < 0) { - r = -errno; -diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h -index d87cbe4..cdbc8e4 100644 ---- a/src/journal/journal-file.h -+++ b/src/journal/journal-file.h -@@ -33,6 +33,7 @@ - #include "journal-def.h" - #include "util.h" - #include "mmap-cache.h" -+#include "hashmap.h" - - typedef struct JournalMetrics { - uint64_t max_use; -@@ -64,6 +65,8 @@ typedef struct JournalFile { - JournalMetrics metrics; - MMapCache *mmap; - -+ Hashmap *chain_cache; -+ - #ifdef HAVE_XZ - void *compress_buffer; - uint64_t compress_buffer_size; -diff --git a/src/shared/hashmap.c b/src/shared/hashmap.c -index ef78070..dcfbb67 100644 ---- a/src/shared/hashmap.c -+++ b/src/shared/hashmap.c -@@ -147,6 +147,25 @@ int trivial_compare_func(const void *a, const void *b) { - return a < b ? -1 : (a > b ? 1 : 0); - } - -+unsigned uint64_hash_func(const void *p) { -+ uint64_t u; -+ -+ assert_cc(sizeof(uint64_t) == 2*sizeof(unsigned)); -+ -+ u = *(const uint64_t*) p; -+ -+ return (unsigned) ((u >> 32) ^ u); -+} -+ -+int uint64_compare_func(const void *_a, const void *_b) { -+ uint64_t a, b; -+ -+ a = *(const uint64_t*) _a; -+ b = *(const uint64_t*) _b; -+ -+ return a < b ? -1 : (a > b ? 1 : 0); -+} -+ - Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func) { - bool b; - Hashmap *h; -diff --git a/src/shared/hashmap.h b/src/shared/hashmap.h -index 55dea0a..6fd71cf 100644 ---- a/src/shared/hashmap.h -+++ b/src/shared/hashmap.h -@@ -44,6 +44,9 @@ int string_compare_func(const void *a, const void *b); - unsigned trivial_hash_func(const void *p); - int trivial_compare_func(const void *a, const void *b); - -+unsigned uint64_hash_func(const void *p); -+int uint64_compare_func(const void *a, const void *b); -+ - Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func); - void hashmap_free(Hashmap *h); - void hashmap_free_free(Hashmap *h); --- -1.8.1.1 - -From 34741aa3e2ee1e67a4cc735b7492aec13f0d822c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 26 Oct 2012 20:25:36 +0200 -Subject: [PATCH] journal: special case the trivial cache chain cache entry - ---- - src/journal/journal-file.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 6c9deac..3df099d 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -1328,6 +1328,11 @@ static void chain_cache_put( - uint64_t total) { - - if (!ci) { -+ /* If the chain item to cache for this chain is the -+ * first one it's not worth caching anything */ -+ if (array == first) -+ return; -+ - if (hashmap_size(h) >= CHAIN_CACHE_MAX) - ci = hashmap_steal_first(h); - else { --- -1.8.1.1 - diff --git a/improve-man-environment.patch b/improve-man-environment.patch deleted file mode 100644 index a5fa5967..00000000 --- a/improve-man-environment.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 2cfd1ed4d853be4a22cc102037347c9041bf5ced Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 24 Jan 2013 17:55:42 +0100 -Subject: [PATCH] man: systemd.exec - explicit Environment assignment - -Be more verbose about using space in Environment field and not -using value of other variables - -Fixes https://bugzilla.redhat.com/show_bug.cgi?id=840260 ---- - man/systemd.exec.xml | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -Index: systemd-195/man/systemd.exec.xml -=================================================================== ---- systemd-195.orig/man/systemd.exec.xml -+++ systemd-195/man/systemd.exec.xml -@@ -269,9 +269,24 @@ - in which case all listed variables - will be set. If the same variable is - set twice the later setting will -- override the earlier setting. See -+ override the earlier setting. -+ Variable expansion is not performed -+ inside the strings, and $ has no special -+ meaning. -+ If you need to assign a value containing spaces -+ to a variable, use double quotes (") -+ for the assignment. -+ -+ Example: -+ Environment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6" -+ gives three variables VAR1, -+ VAR2, VAR3. -+ -+ -+ -+ See - environ7 -- for details. -+ for details about environment variables. - - - EnvironmentFile= diff --git a/improve-overflow-checks.patch b/improve-overflow-checks.patch deleted file mode 100644 index c4952082..00000000 --- a/improve-overflow-checks.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3dd8ee8fa693597663b0338235becbb0b7a9520c Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Thu, 25 Oct 2012 16:16:17 +0200 -Subject: [PATCH] util: fix possible integer overflows - ---- - src/shared/util.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -152,6 +152,9 @@ usec_t timespec_load(const struct timesp - ts->tv_nsec == (long) -1) - return (usec_t) -1; - -+ if ((usec_t) ts->tv_sec > (UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / USEC_PER_SEC) -+ return (usec_t) -1; -+ - return - (usec_t) ts->tv_sec * USEC_PER_SEC + - (usec_t) ts->tv_nsec / NSEC_PER_USEC; -@@ -179,6 +182,9 @@ usec_t timeval_load(const struct timeval - tv->tv_usec == (suseconds_t) -1) - return (usec_t) -1; - -+ if ((usec_t) tv->tv_sec > (UINT64_MAX - tv->tv_usec) / USEC_PER_SEC) -+ return (usec_t) -1; -+ - return - (usec_t) tv->tv_sec * USEC_PER_SEC + - (usec_t) tv->tv_usec; diff --git a/job-avoid-recursion-when-cancelling.patch b/job-avoid-recursion-when-cancelling.patch deleted file mode 100644 index a87dff39..00000000 --- a/job-avoid-recursion-when-cancelling.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 1abc85b8d026a2d72442b0edaee5213d0ee73c1f Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 25 Oct 2012 02:31:49 +0200 -Subject: [PATCH] job: avoid recursion into transaction code from job - cancelation - -I hit an "assert(j->installed)" failure in transaction_apply(). Looking -into the backtrace I saw what happened: -1. The system was booting. var.mount/start was an installed job. -2. I pressed Ctrl+Alt+Del. -3. reboot.target was going to be isolated. -4. transaction_apply() proceeded to install a var.mount/stop job. -5. job_install() canceled the conflicting start job. -6. Depending jobs ended recursively with JOB_DEPENDENCY, among them was - local-fs.target/start. -7. Its OnFailure action triggered - emergency.target was now going to be - isolated. -8. We recursed back into transaction_apply() where the half-installed - var.mount/stop job confused us. - -Recursing from job installation back into the transaction code cannot be -a good idea. Avoid the problem by canceling the conflicting job -non-recursively in job_install(). I don't think we'll miss anything by -not recursing here. After all, we are called from transaction_apply(). -We will not be installing just this one job, but all jobs from a -transaction. All requirement dependencies will be included in it and -will be installed separately. Every transaction job will get a chance -to cancel its own conflicting installed job. ---- - src/core/job.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/job.c b/src/core/job.c -index cb5674b..f08b8cb 100644 ---- a/src/core/job.c -+++ b/src/core/job.c -@@ -180,7 +180,7 @@ Job* job_install(Job *j) { - - if (uj) { - if (j->type != JOB_NOP && job_type_is_conflicting(uj->type, j->type)) -- job_finish_and_invalidate(uj, JOB_CANCELED, true); -+ job_finish_and_invalidate(uj, JOB_CANCELED, false); - else { - /* not conflicting, i.e. mergeable */ - --- -1.7.10.4 - diff --git a/journal-fix-cutoff-max-date.patch b/journal-fix-cutoff-max-date.patch deleted file mode 100644 index c939a61e..00000000 --- a/journal-fix-cutoff-max-date.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0f91dd8749c1a1ec308cc645269be92166413e38 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 26 Oct 2012 01:07:41 +0200 -Subject: [PATCH] journal: properly determine cutoff max date - ---- - src/journal/sd-journal.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 09b0eb8..d5d2d78 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -2121,7 +2121,7 @@ _public_ int sd_journal_get_cutoff_realtime_usec(sd_journal *j, uint64_t *from, - if (from) - *from = MIN(fr, *from); - if (to) -- *to = MIN(t, *to); -+ *to = MAX(t, *to); - } - } - -@@ -2160,7 +2160,7 @@ _public_ int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, sd_id128_t boot - if (from) - *from = MIN(fr, *from); - if (to) -- *to = MIN(t, *to); -+ *to = MAX(t, *to); - } - } - --- -1.7.10.4 - diff --git a/journal-send-always-send-syslog_identifier.patch b/journal-send-always-send-syslog_identifier.patch deleted file mode 100644 index 37af56fd..00000000 --- a/journal-send-always-send-syslog_identifier.patch +++ /dev/null @@ -1,62 +0,0 @@ -From ee55db41442ad8055f5a84a339b1e0e22bc037c4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 20 Nov 2012 21:25:26 +0100 -Subject: [PATCH] journal-send: always send SYSLOG_IDENTIFIER, if we have it - -https://bugzilla.redhat.com/show_bug.cgi?id=872193 ---- - src/journal/journal-send.c | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - -Index: systemd-195/src/journal/journal-send.c -=================================================================== ---- systemd-195.orig/src/journal/journal-send.c -+++ systemd-195/src/journal/journal-send.c -@@ -208,6 +208,7 @@ _public_ int sd_journal_sendv(const stru - * be a tmpfs, and one that is available from early boot on - * and where unprivileged users can create files. */ - char path[] = "/dev/shm/journal.XXXXXX"; -+ bool have_syslog_identifier = false; - - if (_unlikely_(!iov)) - return -EINVAL; -@@ -217,7 +218,7 @@ _public_ int sd_journal_sendv(const stru - - saved_errno = errno; - -- w = alloca(sizeof(struct iovec) * n * 5); -+ w = alloca(sizeof(struct iovec) * n * 5 + 3); - l = alloca(sizeof(uint64_t) * n); - - for (i = 0; i < n; i++) { -@@ -234,6 +235,9 @@ _public_ int sd_journal_sendv(const stru - goto finish; - } - -+ have_syslog_identifier = -+ have_syslog_identifier || (c == iov[i].iov_base + 17 && memcmp(iov[i].iov_base, "SYSLOG_IDENTIFIER", 17) == 0); -+ - nl = memchr(iov[i].iov_base, '\n', iov[i].iov_len); - if (nl) { - if (_unlikely_(nl < c)) { -@@ -269,6 +273,20 @@ _public_ int sd_journal_sendv(const stru - IOVEC_SET_STRING(w[j++], "\n"); - } - -+ if (!have_syslog_identifier && -+ string_is_safe(program_invocation_short_name)) { -+ -+ /* Implicitly add program_invocation_short_name, if it -+ * is not set explicitly. We only do this for -+ * program_invocation_short_name, and nothing else -+ * since everything else is much nicer to retrieve -+ * from the outside. */ -+ -+ IOVEC_SET_STRING(w[j++], "SYSLOG_IDENTIFIER="); -+ IOVEC_SET_STRING(w[j++], program_invocation_short_name); -+ IOVEC_SET_STRING(w[j++], "\n"); -+ } -+ - fd = journal_fd(); - if (_unlikely_(fd < 0)) { - r = fd; diff --git a/journalctl-quit-on-io-error.patch b/journalctl-quit-on-io-error.patch deleted file mode 100644 index 56d2dd18..00000000 --- a/journalctl-quit-on-io-error.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 244692cbfb46df5ff79d07da8fb848a1165bd2fb Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Sun, 13 Jan 2013 12:28:38 +0100 -Subject: [PATCH] journalctl: quit on I/O error - -This makes journalctl quit on ferror() conditions on stdout. It fixes an -annoying bug if you pipe its output through 'less' and press 'q'. Without -this fix journalctl will continue reading all journal data until EOF which -can take quite some time. For instance on my machine: - - david-nb ~ # time journalctl | wc -l - 327240 - - real 1m13.039s - user 1m0.217s - sys 0m10.467s - -However, expected behavior is journalctl to quit when its pager closed the -output pipe. - -Signed-off-by: David Herrmann ---- - src/journal/journalctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/journal/journalctl.c -=================================================================== ---- systemd-195.orig/src/journal/journalctl.c -+++ systemd-195/src/journal/journalctl.c -@@ -1035,7 +1035,7 @@ int main(int argc, char *argv[]) { - on_tty() * OUTPUT_COLOR; - - r = output_journal(stdout, j, arg_output, 0, flags); -- if (r < 0) -+ if (r < 0 || ferror(stdout)) - goto finish; - - need_seek = true; diff --git a/journalctl-remove-leftover-message.patch b/journalctl-remove-leftover-message.patch deleted file mode 100644 index 5ba122fa..00000000 --- a/journalctl-remove-leftover-message.patch +++ /dev/null @@ -1,25 +0,0 @@ -From db87a36e74ff26d1046a451ee086c9a2c4113d12 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 24 Oct 2012 01:05:55 +0200 -Subject: [PATCH] journalctl: remove left-over log message - ---- - src/journal/journalctl.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index d1338d2..0f20448 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -547,8 +547,6 @@ static int add_priorities(sd_journal *j) { - if (arg_priorities & (1 << i)) { - match[sizeof(match)-2] = '0' + i; - -- log_info("adding match %s", match); -- - r = sd_journal_add_match(j, match, strlen(match)); - if (r < 0) { - log_error("Failed to add match: %s", strerror(-r)); --- -1.7.10.4 - diff --git a/journalctl-require-argument-for-priority b/journalctl-require-argument-for-priority deleted file mode 100644 index 871ac96e..00000000 --- a/journalctl-require-argument-for-priority +++ /dev/null @@ -1,24 +0,0 @@ -From 71c015969233c21ea38b1e63993d02fe171df672 Mon Sep 17 00:00:00 2001 -From: Lekensteyn -Date: Thu, 15 Nov 2012 12:17:03 +0100 -Subject: [PATCH] journalctl: require argument for --priority - -This fixes a segfault due to a missing value for --priority. -p is -unaffected because it is specified in the getopt_long parameter list. ---- - src/journal/journalctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/journal/journalctl.c -=================================================================== ---- systemd-195.orig/src/journal/journalctl.c -+++ systemd-195/src/journal/journalctl.c -@@ -158,7 +158,7 @@ static int parse_argv(int argc, char *ar - { "this-boot", no_argument, NULL, 'b' }, - { "directory", required_argument, NULL, 'D' }, - { "header", no_argument, NULL, ARG_HEADER }, -- { "priority", no_argument, NULL, 'p' }, -+ { "priority", required_argument, NULL, 'p' }, - { "setup-keys", no_argument, NULL, ARG_SETUP_KEYS }, - { "interval", required_argument, NULL, ARG_INTERVAL }, - { "verify", no_argument, NULL, ARG_VERIFY }, diff --git a/localectl-fix-assertion.patch b/localectl-fix-assertion.patch deleted file mode 100644 index 6b1dac55..00000000 --- a/localectl-fix-assertion.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 6b2b6f30e38d67b032d6bdc6b47ae05e143e96c5 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Wed, 12 Dec 2012 22:24:04 +0100 -Subject: [PATCH] localectl: fix dbus call arguments in set_x11_keymap - -Fixes an assertion failure in the dbus lib. -https://bugzilla.redhat.com/show_bug.cgi?id=882212 ---- - src/locale/localectl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/locale/localectl.c -=================================================================== ---- systemd-195.orig/src/locale/localectl.c -+++ systemd-195/src/locale/localectl.c -@@ -535,7 +535,7 @@ static int set_x11_keymap(DBusConnection - layout = args[1]; - model = n > 2 ? args[2] : ""; - variant = n > 3 ? args[3] : ""; -- options = n > 3 ? args[4] : ""; -+ options = n > 4 ? args[4] : ""; - b = arg_convert; - - return bus_method_call_with_reply( diff --git a/localectl-support-systems-without-locale-archive.patch b/localectl-support-systems-without-locale-archive.patch deleted file mode 100644 index fffba30d..00000000 --- a/localectl-support-systems-without-locale-archive.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 17d33cecaa762f7e43200307328af5e9135e2091 Mon Sep 17 00:00:00 2001 -From: Giovanni Campagna -Date: Sat, 5 Jan 2013 01:29:53 +0100 -Subject: [PATCH] localectl: support systems without locale-archive - -Not all systems ships with locales inside /usr/lib/locale-archive, some -prefer to have locale data as individual subdirectories of /usr/lib/locale. -(A notable example of this is OpenEmbeddded, and OSes deriving from it -like gnome-ostree). -Given that glibc supports both ways, localectl should too. ---- - src/locale/localectl.c | 101 ++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 85 insertions(+), 16 deletions(-) - -Index: systemd-195/src/locale/localectl.c -=================================================================== ---- systemd-195.orig/src/locale/localectl.c -+++ systemd-195/src/locale/localectl.c -@@ -265,7 +265,7 @@ finish: - return r; - } - --static int list_locales(DBusConnection *bus, char **args, unsigned n) { -+static int add_locales_from_archive(Set *locales) { - /* Stolen from glibc... */ - - struct locarhead { -@@ -303,21 +303,15 @@ static int list_locales(DBusConnection * - const struct namehashent *e; - const void *p = MAP_FAILED; - _cleanup_close_ int fd = -1; -- _cleanup_strv_free_ char **l = NULL; -- char **j; -- Set *locales; - size_t sz = 0; - struct stat st; - unsigned i; - int r; - -- locales = set_new(string_hash_func, string_compare_func); -- if (!locales) -- return log_oom(); -- - fd = open("/usr/lib/locale/locale-archive", O_RDONLY|O_NOCTTY|O_CLOEXEC); - if (fd < 0) { -- log_error("Failed to open locale archive: %m"); -+ if (errno != ENOENT) -+ log_error("Failed to open locale archive: %m"); - r = -errno; - goto finish; - } -@@ -378,15 +372,93 @@ static int list_locales(DBusConnection * - } - } - -+ r = 0; -+ -+ finish: -+ if (p != MAP_FAILED) -+ munmap((void*) p, sz); -+ -+ return r; -+} -+ -+static int add_locales_from_libdir (Set *locales) { -+ DIR *dir; -+ struct dirent *entry; -+ int r; -+ -+ dir = opendir("/usr/lib/locale"); -+ if (!dir) { -+ log_error("Failed to open locale directory: %m"); -+ r = -errno; -+ goto finish; -+ } -+ -+ errno = 0; -+ while ((entry = readdir(dir))) { -+ char *z; -+ -+ if (entry->d_type != DT_DIR) -+ continue; -+ -+ if (ignore_file(entry->d_name)) -+ continue; -+ -+ z = strdup(entry->d_name); -+ if (!z) { -+ r = log_oom(); -+ goto finish; -+ } -+ -+ r = set_put(locales, z); -+ if (r < 0) { -+ free(z); -+ -+ if (r != -EEXIST) { -+ log_error("Failed to add locale: %s", strerror(-r)); -+ goto finish; -+ } -+ } -+ -+ errno = 0; -+ } -+ -+ if (errno != 0) { -+ log_error("Failed to read locale directory: %m"); -+ r = -errno; -+ goto finish; -+ } -+ -+ r = 0; -+ -+ finish: -+ closedir(dir); -+ return r; -+} -+ -+static int list_locales(DBusConnection *bus, char **args, unsigned n) { -+ Set *locales; -+ _cleanup_strv_free_ char **l = NULL; -+ char **j; -+ int r; -+ -+ locales = set_new(string_hash_func, string_compare_func); -+ if (!locales) -+ return log_oom(); -+ -+ r = add_locales_from_archive(locales); -+ if (r < 0 && r != -ENOENT) -+ goto finish; -+ -+ r = add_locales_from_libdir(locales); -+ if (r < 0) -+ goto finish; -+ - l = set_get_strv(locales); - if (!l) { - r = log_oom(); - goto finish; - } - -- set_free(locales); -- locales = NULL; -- - strv_sort(l); - - pager_open_if_enabled(); -@@ -397,10 +469,7 @@ static int list_locales(DBusConnection * - r = 0; - - finish: -- if (p != MAP_FAILED) -- munmap((void*) p, sz); -- -- set_free_free(locales); -+ set_free(locales); - - return r; - } diff --git a/lock-opensuse.patch b/lock-opensuse.patch deleted file mode 100644 index 0fa59df5..00000000 --- a/lock-opensuse.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: systemd-37/tmpfiles.d/legacy.conf -=================================================================== ---- systemd-37.orig/tmpfiles.d/legacy.conf -+++ systemd-37/tmpfiles.d/legacy.conf -@@ -17,6 +17,8 @@ - # On modern systems a BSD file lock is a better choice if - # serialization is needed on those devices. - --d /run/lock 0755 root root - --d /run/lock/subsys 0755 root root - --d /run/lock/lockdev 0775 root lock - -+# changed for openSUSE : only /run/lock should be available -+ -+d /run/lock 0775 root lock - -+#d /run/lock/subsys 0755 root root - -+#d /run/lock/lockdev 0775 root lock - diff --git a/logind-capability-making-seats-without-fb.patch b/logind-capability-making-seats-without-fb.patch deleted file mode 100644 index a74de2a5..00000000 --- a/logind-capability-making-seats-without-fb.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 955f9bde9ba6d9f0a7364d5cb7c0cee951d5caab Mon Sep 17 00:00:00 2001 -From: Oleg Samarin -Date: Sat, 5 Jan 2013 20:33:37 +0400 -Subject: [PATCH] logind: Capability of making seats without framebuffer - devices - -file logind.c: The seat is now activated by any device with udev tag "seat-master" -file 71-seat.rules.in: All framebuffer devices have this tag ---- - src/login/71-seat.rules.in | 2 +- - src/login/logind.c | 12 ++---------- - 2 files changed, 3 insertions(+), 11 deletions(-) - -Index: systemd-195/src/login/71-seat.rules.in -=================================================================== ---- systemd-195.orig/src/login/71-seat.rules.in -+++ systemd-195/src/login/71-seat.rules.in -@@ -10,7 +10,7 @@ ACTION=="remove", GOTO="seat_end" - TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" - SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" - SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat" --SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat" -+SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat", TAG+="seat-master" - SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat" - - # 'Plugable' USB hub, sound, network, graphics adapter -Index: systemd-195/src/login/logind.c -=================================================================== ---- systemd-195.orig/src/login/logind.c -+++ systemd-195/src/login/logind.c -@@ -450,11 +450,7 @@ int manager_enumerate_devices(Manager *m - goto finish; - } - -- r = udev_enumerate_add_match_subsystem(e, "graphics"); -- if (r < 0) -- goto finish; -- -- r = udev_enumerate_add_match_tag(e, "seat"); -+ r = udev_enumerate_add_match_tag(e, "seat-master"); - if (r < 0) - goto finish; - -@@ -1286,11 +1282,7 @@ static int manager_connect_udev(Manager - if (!m->udev_seat_monitor) - return -ENOMEM; - -- r = udev_monitor_filter_add_match_tag(m->udev_seat_monitor, "seat"); -- if (r < 0) -- return r; -- -- r = udev_monitor_filter_add_match_subsystem_devtype(m->udev_seat_monitor, "graphics", NULL); -+ r = udev_monitor_filter_add_match_tag(m->udev_seat_monitor, "seat-master"); - if (r < 0) - return r; - diff --git a/logind-ignore-non-tty-non-x11-session-on-shutdown.patch b/logind-ignore-non-tty-non-x11-session-on-shutdown.patch deleted file mode 100644 index 116d101a..00000000 --- a/logind-ignore-non-tty-non-x11-session-on-shutdown.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 1ca04b87979b2add53ebb8a7fdf13c34fb6c2743 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 14 Jan 2013 21:40:38 +0100 -Subject: [PATCH] logind: ignore non-tty/non-x11 session when checking if - there are other sessions before shutting down - -https://bugzilla.redhat.com/show_bug.cgi?id=890827 ---- - src/login/logind-dbus.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-195/src/login/logind-dbus.c -=================================================================== ---- systemd-195.orig/src/login/logind-dbus.c -+++ systemd-195/src/login/logind-dbus.c -@@ -971,9 +971,12 @@ static int have_multiple_sessions( - - assert(m); - -- /* Check for other users' sessions. Greeter sessions do not count. */ -+ /* Check for other users' sessions. Greeter sessions do not -+ * count, and non-login sessions do not count either. */ - HASHMAP_FOREACH(session, m->sessions, i) -- if (session->class == SESSION_USER && session->user->uid != uid) -+ if (session->class == SESSION_USER && -+ (session->type == SESSION_TTY || session->type == SESSION_X11) && -+ session->user->uid != uid) - return true; - - return false; diff --git a/macros.systemd b/macros.systemd index 68ff8780..dc70ceb7 100644 --- a/macros.systemd +++ b/macros.systemd @@ -1,3 +1,4 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- */ # RPM macros for packages installing systemd unit files # ### @@ -28,6 +29,12 @@ Requires(preun): systemd \ Requires(postun): systemd \ %_unitdir /usr/lib/systemd/system +%_presetdir /usr/lib/systemd/system-preset +%_udevhwdbdir /usr/lib/udev/hwdb.d +%_udevrulesdir /usr/lib/udev/rules.d +%_journalcatalogdir /usr/lib/systemd/catalog +%_tmpfilesdir /usr/lib/tmpfiles.d +%_sysctldir /usr/lib/sysctl.d %service_add_pre() \ test -n "$FIRST_ARG" || FIRST_ARG=$1 \ @@ -95,3 +102,14 @@ else # package uninstall \ fi \ %{nil} +%udev_hwdb_update() \ +/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : \ +%{nil} + +%udev_rules_update() \ +/usr/bin/udevadm control --reload >/dev/null 2>&1 || : \ +%{nil} + +%journal_catalog_update() \ +/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : \ +%{nil} diff --git a/modules_on_boot.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch similarity index 56% rename from modules_on_boot.patch rename to module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch index 8257954e..238d23be 100644 --- a/modules_on_boot.patch +++ b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch @@ -1,32 +1,32 @@ -From 051e407e1af70e779c092c81733a98832c29d6b4 Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Wed, 12 Oct 2011 15:18:29 +0200 -Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list +Subject: module-load: handle SUSE /etc/sysconfig/kernel module list --- - src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 42 insertions(+), 0 deletions(-) + src/modules-load/modules-load.c | 27 ++++++++++++++++++++++++++- + units/systemd-modules-load.service.in | 1 + + 2 files changed, 27 insertions(+), 1 deletion(-) -Index: systemd-191/src/modules-load/modules-load.c -=================================================================== ---- systemd-191.orig/src/modules-load/modules-load.c -+++ systemd-191/src/modules-load/modules-load.c -@@ -173,6 +173,9 @@ int main(int argc, char *argv[]) { - int r = EXIT_FAILURE, k; - char **files = NULL, **fn, **i; +diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c +index 7b19ee0..36b1a68 100644 +--- a/src/modules-load/modules-load.c ++++ b/src/modules-load/modules-load.c +@@ -262,6 +262,9 @@ static int parse_argv(int argc, char *argv[]) { + int main(int argc, char *argv[]) { + int r, k; struct kmod_ctx *ctx; -+#if defined(TARGET_SUSE) -+ char *modules_on_boot = NULL; ++#ifdef HAVE_SYSV_COMPAT ++ _cleanup_free_ char *modules_on_boot = NULL; +#endif - if (argc > 1) { - log_error("This program takes no argument."); -@@ -256,9 +259,34 @@ int main(int argc, char *argv[]) { - - fclose(f); + r = parse_argv(argc, argv); + if (r <= 0) +@@ -318,7 +321,29 @@ int main(int argc, char *argv[]) { + r = k; + } } - -+#if defined(TARGET_SUSE) ++#ifdef HAVE_SYSV_COMPAT + log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT"); + if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, + "MODULES_LOADED_ON_BOOT", &modules_on_boot, @@ -50,17 +50,12 @@ Index: systemd-191/src/modules-load/modules-load.c + } +#endif finish: - strv_free(files); -+#if defined(TARGET_SUSE) -+ free(modules_on_boot); -+#endif kmod_unref(ctx); strv_free(arg_proc_cmdline_modules); - -Index: systemd-191/units/systemd-modules-load.service.in -=================================================================== ---- systemd-191.orig/units/systemd-modules-load.service.in -+++ systemd-191/units/systemd-modules-load.service.in +diff --git a/units/systemd-modules-load.service.in b/units/systemd-modules-load.service.in +index 32deb52..2e26d2f 100644 +--- a/units/systemd-modules-load.service.in ++++ b/units/systemd-modules-load.service.in @@ -13,6 +13,7 @@ Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service Before=sysinit.target shutdown.target diff --git a/mount-efivars.patch b/mount-efivars.patch deleted file mode 100644 index 23cb3a8c..00000000 --- a/mount-efivars.patch +++ /dev/null @@ -1,233 +0,0 @@ -From f271dd97622b656c1c013d181ea615c671cc2438 Mon Sep 17 00:00:00 2001 -From: "Lee, Chun-Yi" -Date: Sat, 27 Oct 2012 11:23:22 +0800 -Subject: [PATCH] systemd: mount the EFI variable filesystem -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add efivarfs to the mount_table in mount-setup.c, so the EFI variable -filesystem will be mounted when systemd executed. - -The EFI variable filesystem will merge in v3.7 or v3.8 linux kernel. - -Cc: Kay Sievers -Cc: Lennart Poettering -Cc: Mantas Mikulėnas -Cc: Zbigniew Jędrzejewski-Szmek -Cc: Matt Fleming -Cc: Jeremy Kerr -Cc: Matthew Garrett -Signed-off-by: Lee, Chun-Yi ---- - src/core/kmod-setup.c | 7 ++++--- - src/core/mount-setup.c | 1 + - 2 files changed, 5 insertions(+), 3 deletions(-) - -Index: systemd-195/src/core/kmod-setup.c -=================================================================== ---- systemd-195.orig/src/core/kmod-setup.c -+++ systemd-195/src/core/kmod-setup.c -@@ -30,10 +30,16 @@ - - #include "kmod-setup.h" - --static const char * const kmod_table[] = { -- "autofs4", "/sys/class/misc/autofs", -- "ipv6", "/sys/module/ipv6", -- "unix", "/proc/net/unix" -+typedef struct Kmodule { -+ const char *name; -+ const char *directory; -+ bool (*condition_fn)(void); -+} KModule; -+ -+static const KModule kmod_table[] = { -+ { "autofs4", "/sys/class/misc/autofs", NULL } , -+ { "ipv6", "/sys/module/ipv6", NULL }, -+ { "unix", "/proc/net/unix", NULL } , - }; - - #pragma GCC diagnostic push -@@ -41,7 +47,8 @@ static const char * const kmod_table[] = - static void systemd_kmod_log(void *data, int priority, const char *file, int line, - const char *fn, const char *format, va_list args) - { -- log_metav(priority, file, line, fn, format, args); -+ /* library logging is enabled at debug only */ -+ log_metav(LOG_DEBUG, file, line, fn, format, args); - } - #pragma GCC diagnostic pop - -@@ -52,13 +59,15 @@ int kmod_setup(void) { - int err; - - for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) { -+ if (kmod_table[i].condition_fn && !kmod_table[i].condition_fn()) -+ continue; - -- if (access(kmod_table[i+1], F_OK) >= 0) -+ if (access(kmod_table[i].directory, F_OK) >= 0) - continue; - - log_debug("Your kernel apparently lacks built-in %s support. Might be a good idea to compile it in. " - "We'll now try to work around this by loading the module...", -- kmod_table[i]); -+ kmod_table[i].name); - - if (!ctx) { - ctx = kmod_new(NULL, NULL); -@@ -68,13 +77,12 @@ int kmod_setup(void) { - } - - kmod_set_log_fn(ctx, systemd_kmod_log, NULL); -- - kmod_load_resources(ctx); - } - -- err = kmod_module_new_from_name(ctx, kmod_table[i], &mod); -+ err = kmod_module_new_from_name(ctx, kmod_table[i].name, &mod); - if (err < 0) { -- log_error("Failed to load module '%s'", kmod_table[i]); -+ log_error("Failed to lookup module '%s'", kmod_table[i].name); - continue; - } - -@@ -84,7 +92,7 @@ int kmod_setup(void) { - else if (err == KMOD_PROBE_APPLY_BLACKLIST) - log_info("Module '%s' is blacklisted", kmod_module_get_name(mod)); - else -- log_error("Failed to insert '%s'", kmod_module_get_name(mod)); -+ log_error("Failed to insert module '%s'", kmod_module_get_name(mod)); - - kmod_module_unref(mod); - } -Index: systemd-195/src/core/mount-setup.c -=================================================================== ---- systemd-195.orig/src/core/mount-setup.c -+++ systemd-195/src/core/mount-setup.c -@@ -46,14 +46,20 @@ - #define TTY_GID 5 - #endif - -+typedef enum MountMode { -+ MNT_NONE = 0, -+ MNT_FATAL = 1 << 0, -+ MNT_IN_CONTAINER = 1 << 1, -+} MountMode; -+ - typedef struct MountPoint { - const char *what; - const char *where; - const char *type; - const char *options; - unsigned long flags; -- bool fatal; -- bool in_container; -+ bool (*condition_fn)(void); -+ MountMode mode; - } MountPoint; - - /* The first three entries we might need before SELinux is up. The -@@ -62,15 +68,26 @@ typedef struct MountPoint { - #define N_EARLY_MOUNT 4 - - static const MountPoint mount_table[] = { -- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, -- { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true }, -- { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true }, -- { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false }, -- { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, -- { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true }, -- { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true }, -- { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, false, true }, -- { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, false, true }, -+ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ NULL, MNT_NONE }, -+ { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ is_efiboot, MNT_NONE }, -+ { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, -+ NULL, MNT_IN_CONTAINER }, -+ { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, -+ NULL, MNT_IN_CONTAINER }, -+ { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ NULL, MNT_IN_CONTAINER }, - }; - - /* These are API file systems that might be mounted by other software, -@@ -118,6 +135,9 @@ static int mount_one(const MountPoint *p - - assert(p); - -+ if (p->condition_fn && !p->condition_fn()) -+ return 0; -+ - /* Relabel first, just in case */ - if (relabel) - label_fix(p->where, true, true); -@@ -130,7 +150,7 @@ static int mount_one(const MountPoint *p - return 0; - - /* Skip securityfs in a container */ -- if (!p->in_container && detect_container(NULL) > 0) -+ if (!(p->mode & MNT_IN_CONTAINER) && detect_container(NULL) > 0) - return 0; - - /* The access mode here doesn't really matter too much, since -@@ -148,8 +168,8 @@ static int mount_one(const MountPoint *p - p->type, - p->flags, - p->options) < 0) { -- log_full(p->fatal ? LOG_ERR : LOG_DEBUG, "Failed to mount %s: %s", p->where, strerror(errno)); -- return p->fatal ? -errno : 0; -+ log_full((p->mode & MNT_FATAL) ? LOG_ERR : LOG_DEBUG, "Failed to mount %s: %s", p->where, strerror(errno)); -+ return (p->mode & MNT_FATAL) ? -errno : 0; - } - - /* Relabel again, since we now mounted something fresh here */ -@@ -288,7 +308,6 @@ int mount_cgroup_controllers(char ***joi - p.type = "cgroup"; - p.options = options; - p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV; -- p.fatal = false; - - r = mount_one(&p, true); - free(controller); -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -75,6 +75,10 @@ char **saved_argv = NULL; - static volatile unsigned cached_columns = 0; - static volatile unsigned cached_lines = 0; - -+bool is_efiboot(void) { -+ return access("/sys/firmware/efi", F_OK) >= 0; -+} -+ - size_t page_size(void) { - static __thread size_t pgsz = 0; - long r; -Index: systemd-195/src/shared/util.h -=================================================================== ---- systemd-195.orig/src/shared/util.h -+++ systemd-195/src/shared/util.h -@@ -90,6 +90,8 @@ union dirent_storage { - #define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" - #define ANSI_HIGHLIGHT_OFF "\x1B[0m" - -+bool is_efiboot(void); -+ - usec_t now(clockid_t clock); - - dual_timestamp* dual_timestamp_get(dual_timestamp *ts); diff --git a/multiple-sulogin.patch b/multiple-sulogin.patch deleted file mode 100644 index 96619d43..00000000 --- a/multiple-sulogin.patch +++ /dev/null @@ -1,36 +0,0 @@ -Index: systemd-195/units/getty@.service.m4 -=================================================================== ---- systemd-195.orig/units/getty@.service.m4 -+++ systemd-195/units/getty@.service.m4 -@@ -8,6 +8,7 @@ - [Unit] - Description=Getty on %I - Documentation=man:agetty(8) -+Conflicts=rescue.service - After=systemd-user-sessions.service plymouth-quit-wait.service - m4_ifdef(`TARGET_FEDORA', - After=rc-local.service -Index: systemd-195/units/rescue.target -=================================================================== ---- systemd-195.orig/units/rescue.target -+++ systemd-195/units/rescue.target -@@ -10,6 +10,7 @@ Description=Rescue Mode - Documentation=man:systemd.special(7) - Requires=sysinit.target rescue.service - After=sysinit.target rescue.service -+Conflicts=getty.target - AllowIsolate=yes - - [Install] -Index: systemd-195/units/serial-getty@.service.m4 -=================================================================== ---- systemd-195.orig/units/serial-getty@.service.m4 -+++ systemd-195/units/serial-getty@.service.m4 -@@ -9,6 +9,7 @@ - Description=Serial Getty on %I - Documentation=man:agetty(8) man:systemd-getty-generator(8) - BindsTo=dev-%i.device -+Conflicts=rescue.service - After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service - m4_ifdef(`TARGET_FEDORA', - After=rc-local.service diff --git a/nss-myhostname-config b/nss-myhostname-config new file mode 100644 index 00000000..110db7a2 --- /dev/null +++ b/nss-myhostname-config @@ -0,0 +1,31 @@ +#!/bin/bash +# sed calls copied from fedora package +set -e + +case "$1" in + --help) + echo "$0 [--enable|--disable]" + exit 0 + ;; + --enable) + sed -i.bak -e ' + /^hosts:/ !b + /\/ b + s/[[:blank:]]*$/ myhostname/ + ' /etc/nsswitch.conf + ;; + --disable) + sed -i.bak -e ' + /^hosts:/ !b + s/[[:blank:]]\+myhostname\>// + ' /etc/nsswitch.conf + ;; + "") + if grep -q "^hosts:.*\" /etc/nsswitch.conf; then + echo "enabled" + else + echo "disabled" + fi + ;; + *) echo "invalid argument $1"; exit 1 ;; +esac diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch new file mode 100644 index 00000000..7a75fad5 --- /dev/null +++ b/optionally-warn-if-nss-myhostname-is-called.patch @@ -0,0 +1,109 @@ +From: Ludwig Nussel +Date: Fri, 20 May 2011 15:38:46 +0200 +Subject: optionally warn if nss-myhostname is called + +--- + configure.ac | 11 +++++++++++ + src/nss-myhostname/nss-myhostname.c | 35 +++++++++++++++++++++++++++++++++++ + 2 files changed, 46 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 5173783..e58d694 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -714,6 +714,17 @@ if test "x$enable_myhostname" != "xno"; then + fi + AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) + ++if test "x$have_myhostname" != "xno"; then ++ AC_MSG_CHECKING([log warning messages for nss-myhostname]) ++ AC_ARG_WITH(nss-my-hostname-warning, AS_HELP_STRING([--with-nss-my-hostname-warning], [log warning to syslog when nss-myhostname is called (default=no)]),[],[with_nss_my_hostname_warning=no]) ++ AC_MSG_RESULT([$with_nss_my_hostname_warning]) ++ ++ if test x$with_nss_my_hostname_warning != xno; then ++ AC_CHECK_HEADERS([syslog.h]) ++ AC_DEFINE([LOG_NSS_MY_HOSTNAME_WARNING],[1],[whether to log warning message for nss-myhostname]) ++ fi ++fi ++ + # ------------------------------------------------------------------------------ + AC_ARG_WITH(firmware-path, + AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], +diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c +index 884eb99..dbd9a2d 100644 +--- a/src/nss-myhostname/nss-myhostname.c ++++ b/src/nss-myhostname/nss-myhostname.c +@@ -30,6 +30,9 @@ + #include + #include + #include ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++#include ++#endif + + #include "ifconf.h" + #include "macro.h" +@@ -44,6 +47,10 @@ + #define LOCALADDRESS_IPV6 &in6addr_loopback + #define LOOPBACK_INTERFACE "lo" + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++static void warn(const char* hn); ++#endif ++ + enum nss_status _nss_myhostname_gethostbyname4_r( + const char *name, + struct gaih_addrtuple **pat, +@@ -115,6 +122,10 @@ enum nss_status _nss_myhostname_gethostbyname4_r( + return NSS_STATUS_NOTFOUND; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif ++ + /* If this fails, n_addresses is 0. Which is fine */ + ifconf_acquire_addresses(&addresses, &n_addresses); + +@@ -334,6 +345,10 @@ enum nss_status _nss_myhostname_gethostbyname3_r( + return NSS_STATUS_NOTFOUND; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif ++ + return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, canonp); + } + +@@ -429,6 +444,10 @@ found: + return NSS_STATUS_UNAVAIL; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif ++ + return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, NULL); + + } +@@ -448,3 +467,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r( + errnop, h_errnop, + NULL); + } ++ ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++static void warn(const char* hn) { ++ if (strstr(program_invocation_short_name, "nscd")) { ++ syslog(LOG_WARNING, ++ "Some application tried to resolve hostname \"%s\" which is not in DNS. Stop nscd to find out which one.\n", ++ hn); ++ } else { ++ syslog(LOG_WARNING, ++ "%s(%u) tried to resolve hostname \"%s\" which is not in DNS. This might be the reason for the delays you experience.\n", ++ program_invocation_short_name, ++ getpid(), ++ hn); ++ } ++} ++#endif diff --git a/pam-properly-handle-ssh-logins-without-pam-tty-field.patch b/pam-properly-handle-ssh-logins-without-pam-tty-field.patch deleted file mode 100644 index 87595784..00000000 --- a/pam-properly-handle-ssh-logins-without-pam-tty-field.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0ad1271f564b9c956685938167f7ea8c301e835e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 23 Dec 2012 22:31:17 +0100 -Subject: [PATCH] pam: properly handle SSH logins lacking the PAM tty field - ---- - src/login/pam-module.c | 19 ++++++++++++++----- - 1 file changed, 14 insertions(+), 5 deletions(-) - -diff --git a/src/login/pam-module.c b/src/login/pam-module.c -index 08a9328..e6764a1 100644 ---- a/src/login/pam-module.c -+++ b/src/login/pam-module.c -@@ -322,7 +322,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( - - struct passwd *pw; - bool kill_processes = false, debug = false; -- const char *username, *id, *object_path, *runtime_path, *service = NULL, *tty = NULL, *display = NULL, *remote_user = NULL, *remote_host = NULL, *seat = NULL, *type, *class, *cvtnr = NULL; -+ const char *username, *id, *object_path, *runtime_path, *service = NULL, *tty = NULL, *display = NULL, *remote_user = NULL, *remote_host = NULL, *seat = NULL, *type = NULL, *class, *cvtnr = NULL; - char **controllers = NULL, **reset_controllers = NULL, **kill_only_users = NULL, **kill_exclude_users = NULL; - DBusError error; - uint32_t uid, pid; -@@ -453,9 +453,17 @@ _public_ PAM_EXTERN int pam_sm_open_session( - display = tty; - tty = ""; - } else if (streq(tty, "cron")) { -- /* cron has been setting PAM_TTY to "cron" for a very long time -- * and it cannot stop doing that for compatibility reasons. */ -+ /* cron has been setting PAM_TTY to "cron" for a very -+ * long time and it probably shouldn't stop doing that -+ * for compatibility reasons. */ - tty = ""; -+ type = "unspecified"; -+ } else if (streq(tty, "ssh")) { -+ /* ssh has been setting PAM_TTY to "ssh" for a very -+ * long time and probably shouldn't stop doing that -+ * for compatibility reasons. */ -+ tty = ""; -+ type ="tty"; - } - - /* If this fails vtnr will be 0, that's intended */ -@@ -469,8 +477,9 @@ _public_ PAM_EXTERN int pam_sm_open_session( - get_seat_from_display(display, NULL, &vtnr); - } - -- type = !isempty(display) ? "x11" : -- !isempty(tty) ? "tty" : "unspecified"; -+ if (!type) -+ type = !isempty(display) ? "x11" : -+ !isempty(tty) ? "tty" : "unspecified"; - - class = pam_getenv(handle, "XDG_SESSION_CLASS"); - if (isempty(class)) --- -1.7.10.4 - diff --git a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch new file mode 100644 index 00000000..f3e12f27 --- /dev/null +++ b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch @@ -0,0 +1,128 @@ +From: Frederic Crozat +Date: Fri, 30 Sep 2011 13:55:31 +0000 +Subject: parse /etc/insserv.conf and adds dependencies accordingly + +(bnc#721428) +--- + src/core/service.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 101 insertions(+) + +diff --git a/src/core/service.c b/src/core/service.c +index cf0bbe0..08fc97c 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -3440,6 +3440,105 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + } + + #ifdef HAVE_SYSV_COMPAT ++static void sysv_parse_insserv_conf(Manager *mgr, const char* filename) { ++ FILE *f = NULL; ++ int r; ++ ++ if (!(f = fopen(filename, "re"))) { ++ log_debug("Failed to open file %s", filename); ++ r = errno == ENOENT ? 0 : -errno; ++ goto finish; ++ } ++ ++ while (!feof(f)) { ++ char l[LINE_MAX], *t; ++ char **parsed = NULL; ++ ++ if (!fgets(l, sizeof(l), f)) { ++ if (feof(f)) ++ break; ++ ++ r = -errno; ++ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r)); ++ goto finish; ++ } ++ ++ t = strstrip(l); ++ if (*t != '$' && *t != '<') ++ continue; ++ ++ parsed = strv_split(t,WHITESPACE); ++ /* we ignore , not used, equivalent to X-Interactive */ ++ if (parsed && !startswith_no_case (parsed[0], "")) { ++ char *facility; ++ Unit *u; ++ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) ++ continue; ++ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { ++ /* insert also a Wants dependency from remote-fs-pre on remote-fs */ ++ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET); ++ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); ++ free (facility); ++ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); ++ } ++ if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) { ++ char *dep = NULL, *name, **j; ++ ++ STRV_FOREACH (j, parsed+1) { ++ if (*j[0] == '+') ++ name = *j+1; ++ else ++ name = *j; ++ if (streq(name, "boot.localfs") || ++ streq(name, "boot.crypto")) ++ continue; ++ if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep) ++ continue; ++ ++ r = unit_add_two_dependencies_by_name_inverse(u, UNIT_WANTS, UNIT_BEFORE, dep, NULL, true); ++ if (*j[0] != '+') ++ r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true); ++ free(dep); ++ } ++ } ++ free(facility); ++ } ++ strv_free(parsed); ++ } ++finish: ++ if (f) ++ fclose(f); ++ ++} ++ ++static void sysv_facility_in_insserv_conf(Manager *mgr) { ++ DIR *d =NULL; ++ struct dirent *de; ++ ++#ifdef TARGET_DEBIAN ++ if (!(d = opendir("/etc/insserv.conf.d/"))) ++ if (errno != ENOENT) { ++ log_warning("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno)); ++ goto finish; ++ } ++ ++ while ((de = readdir(d))) { ++ char *path = NULL; ++ if (ignore_file(de->d_name)) ++ continue; ++ ++ path = join("/etc/insserv.conf.d/", de->d_name, NULL); ++ sysv_parse_insserv_conf(mgr, path); ++ free(path); ++ } ++finish: ++ if (d) ++ closedir(d); ++#endif ++ ++ sysv_parse_insserv_conf(mgr, "/etc/insserv.conf"); ++} ++ + + static int service_enumerate(Manager *m) { + char **p; +@@ -3600,6 +3699,8 @@ static int service_enumerate(Manager *m) { + + r = 0; + ++ sysv_facility_in_insserv_conf (m); ++ + finish: + + for (i = 0; i < ELEMENTSOF(rcnd_table); i++) diff --git a/parse-multiline-env-file.patch b/parse-multiline-env-file.patch deleted file mode 100644 index 7772ba8b..00000000 --- a/parse-multiline-env-file.patch +++ /dev/null @@ -1,218 +0,0 @@ -From 565d91fdf198b88f7c2d72c67cfc6c30341a3596 Mon Sep 17 00:00:00 2001 -From: Michal Vyskocil -Date: Fri, 18 Jan 2013 10:05:10 +0100 -Subject: [PATCH] util: continuation support for load_env_file - -Variable definitions can be written on more than one line - if each ends -with a backslash, then is concatenated with a previous one. Only -backslash and unix end of line (\n) are treated as a continuation. - -Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=58083 - -[zj: squashed two patches together; cleaned up grammar; removed - comment about ignoring trailing backslash -- it is not ignored.] - -Document continuation support in systemd.exec ---- - man/systemd.exec.xml | 8 +++++--- - src/shared/util.c | 43 ++++++++++++++++++++++++++++++++++++++----- - 2 files changed, 43 insertions(+), 8 deletions(-) - -Index: systemd-195/man/systemd.exec.xml -=================================================================== ---- systemd-195.orig/man/systemd.exec.xml -+++ systemd-195/man/systemd.exec.xml -@@ -282,9 +282,11 @@ - contain new-line separated variable - assignments. Empty lines and lines - starting with ; or # will be ignored, -- which may be used for commenting. The -- parser strips leading and -- trailing whitespace from the values -+ which may be used for commenting. A line -+ ending with a backslash will be concatenated -+ with the following one, allowing multiline variable -+ definitions. The parser strips leading -+ and trailing whitespace from the values - of assignments, unless you use - double quotes ("). - The -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -876,69 +876,88 @@ fail: - return r; - } - --int load_env_file( -- const char *fname, -- char ***rl) { -- -- FILE *f; -- char **m = NULL; -- int r; -+int load_env_file(const char *fname, char ***rl) { -+ -+ _cleanup_fclose_ FILE *f; -+ _cleanup_strv_free_ char **m = NULL; -+ _cleanup_free_ char *c = NULL; - - assert(fname); - assert(rl); - -- if (!(f = fopen(fname, "re"))) -+ /* This reads an environment file, but will not complain about -+ * any invalid assignments, that needs to be done by the -+ * caller */ -+ -+ f = fopen(fname, "re"); -+ if (!f) - return -errno; - - while (!feof(f)) { -- char l[LINE_MAX], *p, *u; -- char **t; -+ char l[LINE_MAX], *p, *cs, *b; - - if (!fgets(l, sizeof(l), f)) { -- if (feof(f)) -- break; -+ if (ferror(f)) -+ return -errno; -+ -+ /* The previous line was a continuation line? -+ * Let's process it now, before we leave the -+ * loop */ -+ if (c) -+ goto process; - -- r = -errno; -- goto finish; -+ break; - } - -- p = strstrip(l); -+ /* Is this a continuation line? If so, just append -+ * this to c, and go to next line right-away */ -+ cs = endswith(l, "\\\n"); -+ if (cs) { -+ *cs = '\0'; -+ b = strappend(c, l); -+ if (!b) -+ return -ENOMEM; - -- if (!*p) -+ free(c); -+ c = b; - continue; -+ } - -- if (strchr(COMMENTS, *p)) -- continue; -+ /* If the previous line was a continuation line, -+ * append the current line to it */ -+ if (c) { -+ b = strappend(c, l); -+ if (!b) -+ return -ENOMEM; - -- if (!(u = normalize_env_assignment(p))) { -- r = log_oom(); -- goto finish; -+ free(c); -+ c = b; - } - -- t = strv_append(m, u); -- free(u); -+ process: -+ p = strstrip(c ? c : l); - -- if (!t) { -- r = log_oom(); -- goto finish; -+ if (*p && !strchr(COMMENTS, *p)) { -+ _cleanup_free_ char *u; -+ int k; -+ -+ u = normalize_env_assignment(p); -+ if (!u) -+ return -ENOMEM; -+ -+ k = strv_extend(&m, u); -+ if (k < 0) -+ return -ENOMEM; - } - -- strv_free(m); -- m = t; -+ free(c); -+ c = NULL; - } - -- r = 0; -- - *rl = m; - m = NULL; - --finish: -- if (f) -- fclose(f); -- -- strv_free(m); -- -- return r; -+ return 0; - } - - int write_env_file(const char *fname, char **l) { -Index: systemd-195/src/shared/strv.c -=================================================================== ---- systemd-195.orig/src/shared/strv.c -+++ systemd-195/src/shared/strv.c -@@ -370,6 +370,32 @@ fail: - return NULL; - } - -+int strv_extend(char ***l, const char *value) { -+ char **c; -+ char *v; -+ unsigned n; -+ -+ if (!value) -+ return 0; -+ -+ v = strdup(value); -+ if (!v) -+ return -ENOMEM; -+ -+ n = strv_length(*l); -+ c = realloc(*l, sizeof(char*) * (n + 2)); -+ if (!c) { -+ free(v); -+ return -ENOMEM; -+ } -+ -+ c[n] = v; -+ c[n+1] = NULL; -+ -+ *l = c; -+ return 0; -+} -+ - char **strv_uniq(char **l) { - char **i; - -Index: systemd-195/src/shared/strv.h -=================================================================== ---- systemd-195.orig/src/shared/strv.h -+++ systemd-195/src/shared/strv.h -@@ -37,6 +37,7 @@ unsigned strv_length(char **l); - char **strv_merge(char **a, char **b); - char **strv_merge_concat(char **a, char **b, const char *suffix); - char **strv_append(char **l, const char *s); -+int strv_extend(char ***l, const char *value); - - char **strv_remove(char **l, const char *s); - char **strv_remove_prefix(char **l, const char *s); diff --git a/path-util-fix-potential-crash.patch b/path-util-fix-potential-crash.patch deleted file mode 100644 index 9399e947..00000000 --- a/path-util-fix-potential-crash.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c9c7aef24f9750bbd51d2c13beff66473d96bf3c Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Thu, 13 Dec 2012 14:59:39 +0100 -Subject: [PATCH] path-util: set pointer to null after calling free() - -In cases where path_strv_canonicalize() returns NULL, strv_free() is -called afterwards and it will call free() on pointers which were freed -already in path_strv_canonicalize() ---- - src/shared/path-util.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/shared/path-util.c b/src/shared/path-util.c -index 70c8a8a..dd12d3d 100644 ---- a/src/shared/path-util.c -+++ b/src/shared/path-util.c -@@ -181,6 +181,7 @@ char **path_strv_canonicalize(char **l) { - - t = path_make_absolute_cwd(*s); - free(*s); -+ *s = NULL; - - if (!t) { - enomem = true; --- -1.7.10.4 - diff --git a/rbind-mount.patch b/rbind-mount.patch deleted file mode 100644 index 8d8bb148..00000000 --- a/rbind-mount.patch +++ /dev/null @@ -1,44 +0,0 @@ -From df77b11852d6b3495848c4123e7cbd9f099910f9 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Thu, 21 Feb 2013 15:40:52 +0100 -Subject: [PATCH] detect rbind as bind mount - -Correctly detect rbind mount option as bind mount. -Fixes https://bugzilla.novell.com/show_bug.cgi?id=804575. ---- - src/core/mount.c | 6 ++++++ - src/fstab-generator/fstab-generator.c | 4 +++- - 2 files changed, 9 insertions(+), 1 deletion(-) - -Index: systemd-195/src/core/mount.c -=================================================================== ---- systemd-195.orig/src/core/mount.c -+++ systemd-195/src/core/mount.c -@@ -320,6 +320,12 @@ static bool mount_is_bind(MountParameter - if (p->fstype && streq(p->fstype, "bind")) - return true; - -+ if (mount_test_option(p->options, "rbind")) -+ return true; -+ -+ if (p->fstype && streq(p->fstype, "rbind")) -+ return true; -+ - return false; - } - -Index: systemd-195/src/fstab-generator/fstab-generator.c -=================================================================== ---- systemd-195.orig/src/fstab-generator/fstab-generator.c -+++ systemd-195/src/fstab-generator/fstab-generator.c -@@ -199,7 +199,9 @@ static bool mount_is_bind(struct mntent - - return - hasmntopt(me, "bind") || -- streq(me->mnt_type, "bind"); -+ streq(me->mnt_type, "bind") || -+ hasmntopt(me, "rbind") || -+ streq(me->mnt_type, "rbind"); - } - - static bool mount_is_network(struct mntent *me) { diff --git a/new-lsb-headers.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch similarity index 74% rename from new-lsb-headers.patch rename to remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch index e48728fb..3efed705 100644 --- a/new-lsb-headers.patch +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -1,8 +1,21 @@ -Index: systemd-195/src/core/service.c -=================================================================== ---- systemd-195.orig/src/core/service.c -+++ systemd-195/src/core/service.c -@@ -146,6 +146,7 @@ static void service_init(Unit *u) { +From: Frederic Crozat +Date: Wed, 7 Dec 2011 15:15:07 +0000 +Subject: remain_after_exit initscript heuristic and add new LSB headers + +Add remain_after_exit heuristic for initscripts and add LSB headers +PIDFile: and X-Systemd-RemainAfterExit to control it. + +(bnc#721426) (bnc#727771) +--- + src/core/service.c | 34 ++++++++++++++++++++++++++++++++-- + src/core/service.h | 1 + + 2 files changed, 33 insertions(+), 2 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index 5118b06..c13ff35 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -135,6 +135,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; s->sysv_start_priority_from_rcnd = -1; @@ -10,7 +23,7 @@ Index: systemd-195/src/core/service.c #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -906,6 +907,34 @@ static int service_load_sysv_path(Servic +@@ -875,6 +876,34 @@ static int service_load_sysv_path(Service *s, const char *path) { free(short_description); short_description = d; @@ -45,7 +58,7 @@ Index: systemd-195/src/core/service.c } else if (state == LSB_DESCRIPTION) { if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -963,7 +992,8 @@ static int service_load_sysv_path(Servic +@@ -925,7 +954,8 @@ static int service_load_sysv_path(Service *s, const char *path) { /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -55,7 +68,7 @@ Index: systemd-195/src/core/service.c s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2138,7 +2168,7 @@ static void service_enter_running(Servic +@@ -2074,7 +2104,7 @@ static void service_enter_running(Service *s, ServiceResult f) { if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -64,10 +77,10 @@ Index: systemd-195/src/core/service.c s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); -Index: systemd-195/src/core/service.h -=================================================================== ---- systemd-195.orig/src/core/service.h -+++ systemd-195/src/core/service.h +diff --git a/src/core/service.h b/src/core/service.h +index d1e53bf..4cd1a79 100644 +--- a/src/core/service.h ++++ b/src/core/service.h @@ -176,6 +176,7 @@ struct Service { bool is_sysv:1; bool sysv_has_lsb:1; diff --git a/remount-ro-before-unmount.patch b/remount-ro-before-unmount.patch deleted file mode 100644 index d634afff..00000000 --- a/remount-ro-before-unmount.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 93bd157722c76b47d80742f290373c1ce2865070 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 Nov 2012 18:36:28 +0100 -Subject: [PATCH] umount: always remount read-only before unmounting in final - shutdown loop - ---- - src/core/umount.c | 57 +++++++++++++++++++++++++---------------------------- - 1 file changed, 27 insertions(+), 30 deletions(-) - -diff --git a/src/core/umount.c b/src/core/umount.c -index 83c9de3..e794057 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -407,6 +407,33 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e - assert(head); - - LIST_FOREACH_SAFE(mount_point, m, n, *head) { -+ -+ /* If we are in a container, don't attempt to -+ read-only mount anything as that brings no real -+ benefits, but might confuse the host, as we remount -+ the superblock here, not the bind mound. */ -+ if (detect_container(NULL) <= 0) { -+ /* We always try to remount directories -+ * read-only first, before we go on and umount -+ * them. -+ * -+ * Mount points can be stacked. If a mount -+ * point is stacked below / or /usr, we -+ * cannnot umount or remount it directly, -+ * since there is no way to refer to the -+ * underlying mount. There's nothing we can do -+ * about it for the general case, but we can -+ * do something about it if it is aliased -+ * somehwere else via a bind mount. If we -+ * explicitly remount the super block of that -+ * alias read-only we hence should be -+ * relatively safe regarding keeping the fs we -+ * can otherwise not see dirty. */ -+ mount(NULL, m->path, NULL, MS_REMOUNT|MS_RDONLY, NULL); -+ } -+ -+ /* Skip / and /usr since we cannot unmount that -+ * anyway, since we are running from it */ - if (path_equal(m->path, "/") - #ifndef HAVE_SPLIT_USR - || path_equal(m->path, "/usr") -@@ -432,29 +459,6 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e - return n_failed; - } - --static int mount_points_list_remount_read_only(MountPoint **head, bool *changed) { -- MountPoint *m, *n; -- int n_failed = 0; -- -- assert(head); -- -- LIST_FOREACH_SAFE(mount_point, m, n, *head) { -- -- /* Trying to remount read-only */ -- if (mount(NULL, m->path, NULL, MS_REMOUNT|MS_RDONLY, NULL) == 0) { -- if (changed) -- *changed = true; -- -- mount_point_free(head, m); -- } else { -- log_warning("Could not remount as read-only %s: %m", m->path); -- n_failed++; -- } -- } -- -- return n_failed; --} -- - static int swap_points_list_off(MountPoint **head, bool *changed) { - MountPoint *m, *n; - int n_failed = 0; -@@ -571,13 +575,6 @@ int umount_all(bool *changed) { - if (r <= 0) - goto end; - -- /* If we are in a container, don't attempt to read-only mount -- anything as that brings no real benefits, but might confuse -- the host, as we remount the superblock here, not the bind -- mound. */ -- if (detect_container(NULL) <= 0) -- r = mount_points_list_remount_read_only(&mp_list_head, changed); -- - end: - mount_points_list_free(&mp_list_head); - --- -1.7.10.4 - diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch new file mode 100644 index 00000000..f57a2748 --- /dev/null +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -0,0 +1,89 @@ +From: Frederic Crozat +Date: Mon, 29 Oct 2012 13:01:20 +0000 +Subject: restore /var/run and /var/lock bind mount if they aren't symlink + +--- + Makefile.am | 9 +++++++++ + units/var-lock.mount | 19 +++++++++++++++++++ + units/var-run.mount | 19 +++++++++++++++++++ + 3 files changed, 47 insertions(+) + create mode 100644 units/var-lock.mount + create mode 100644 units/var-run.mount + +diff --git a/Makefile.am b/Makefile.am +index e82d092..38309a9 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -406,6 +406,12 @@ dist_systemunit_DATA = \ + units/system-update.target \ + units/initrd-switch-root.target + ++if HAVE_SYSV_COMPAT ++dist_systemunit_DATA += \ ++ units/var-run.mount \ ++ units/var-lock.mount ++endif ++ + nodist_systemunit_DATA = \ + units/getty@.service \ + units/serial-getty@.service \ +@@ -4018,6 +4024,9 @@ RUNLEVEL4_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service + RUNLEVEL5_TARGET_WANTS += \ + systemd-update-utmp-runlevel.service ++LOCAL_FS_TARGET_WANTS += \ ++ var-run.mount \ ++ var-lock.mount + endif + SHUTDOWN_TARGET_WANTS += \ + systemd-update-utmp-shutdown.service +diff --git a/units/var-lock.mount b/units/var-lock.mount +new file mode 100644 +index 0000000..07277ad +--- /dev/null ++++ b/units/var-lock.mount +@@ -0,0 +1,19 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++[Unit] ++Description=Lock Directory ++Before=local-fs.target ++# skip mounting if the directory does not exist or is a symlink ++ConditionPathIsDirectory=/var/lock ++ConditionPathIsSymbolicLink=!/var/lock ++ ++[Mount] ++What=/run/lock ++Where=/var/lock ++Type=bind ++Options=bind +diff --git a/units/var-run.mount b/units/var-run.mount +new file mode 100644 +index 0000000..ab4da42 +--- /dev/null ++++ b/units/var-run.mount +@@ -0,0 +1,19 @@ ++# This file is part of systemd. ++# ++# systemd 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. ++ ++[Unit] ++Description=Runtime Directory ++Before=local-fs.target ++# skip mounting if the directory does not exist or is a symlink ++ConditionPathIsDirectory=/var/run ++ConditionPathIsSymbolicLink=!/var/run ++ ++[Mount] ++What=/run ++Where=/var/run ++Type=bind ++Options=bind diff --git a/revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch b/revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch deleted file mode 100644 index 8d9d574c..00000000 --- a/revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 140883405e429d9f8d3480a2701d8904f97e4a98 -Author: Tom Gundersen -Date: Wed Nov 28 18:08:54 2012 +0100 - - shutdown: don't consider umounting of / and /usr failed - - In the words of Homer: If you don't try, you can't fail. - - This is a revert of 9279749b84cc87c7830280b7895a48bed03c9429. - - It used to be necessary to consider the umounting failed to make sure / - and /usr were remounted read-only, but that is no longer necessary as - everything is now remounted read-only anyway. - - Moreover, this avoids a warning at shutdown saying a filesystem was not - unmounted. As the umounting of / is never attempted there was no - corresponding warning message saying which fs that failed. This caused some - spurious bug-reports from concerned users. - - Cc: Michael Biebl - -diff --git a/src/core/umount.c b/src/core/umount.c -index e794057..5989a4c 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -433,15 +433,14 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e - } - - /* Skip / and /usr since we cannot unmount that -- * anyway, since we are running from it */ -+ * anyway, since we are running from it. They have already been -+ * remounte ro. */ - if (path_equal(m->path, "/") - #ifndef HAVE_SPLIT_USR - || path_equal(m->path, "/usr") - #endif -- ) { -- n_failed++; -+ ) - continue; -- } - - /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */ - if (umount2(m->path, MNT_FORCE) == 0) { diff --git a/reword-rescue-mode-hints.patch b/reword-rescue-mode-hints.patch deleted file mode 100644 index e6e7db87..00000000 --- a/reword-rescue-mode-hints.patch +++ /dev/null @@ -1,30 +0,0 @@ -From aa6eba407be2c23882bf41a1beafbbd1352f7ab3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 23 Oct 2012 16:32:12 +0200 -Subject: [PATCH] units: reword rescue mode hints - -Do not suggest to the user that commands can be issued before -logging in. - -sulogin prints it own message, which mentions ^D, so there's no need -to repeat it here. ---- - units/emergency.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/emergency.service.in b/units/emergency.service.in -index 1815f9d..129a831 100644 ---- a/units/emergency.service.in -+++ b/units/emergency.service.in -@@ -16,7 +16,7 @@ Before=shutdown.target - Environment=HOME=/root - WorkingDirectory=/root - ExecStartPre=-/bin/plymouth quit --ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -b" to view system logs. Type "systemctl reboot" to reboot.' -+ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -b" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' - ExecStart=-/sbin/sulogin - ExecStopPost=@SYSTEMCTL@ --fail --no-block default - Type=idle --- -1.7.10.4 - diff --git a/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch new file mode 100644 index 00000000..52fe82ea --- /dev/null +++ b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -0,0 +1,20 @@ +From: Robert Schweikert +Date: Fri, 12 Apr 2013 12:08:16 -0400 +Subject: rules: add lid switch of ARM based Chromebook as a power switch to + logind + +--- + src/login/70-power-switch.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/login/70-power-switch.rules b/src/login/70-power-switch.rules +index 36fb827..d925ab7 100644 +--- a/src/login/70-power-switch.rules ++++ b/src/login/70-power-switch.rules +@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end" + + SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" ++SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="gpio-keys.8", TAG+="power-switch" + + LABEL="power_switch_end" diff --git a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch similarity index 66% rename from 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch rename to service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch index 0f665022..91cd2eab 100644 --- a/0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch +++ b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch @@ -1,7 +1,7 @@ -From 700b1261115a67392014ff2c887a9cffc28108ab Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Fri, 30 Sep 2011 12:58:17 +0200 -Subject: [PATCH] service: flags sysv service with detected pid as RemainAfterExit=false +Subject: service: flags sysv service with detected pid as + RemainAfterExit=false LSB header doesn't give pidfile, so all LSB initscripts have RemainAfterExit=false, causing daemon termination to not be reported as @@ -9,14 +9,14 @@ such by systemd. Checking at startup if daemon is still running for sysv initscript to disable RemainAfterExit helps a lot. Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 --- - src/service.c | 8 +++++++- - 1 files changed, 7 insertions(+), 1 deletions(-) + src/core/service.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) -Index: systemd-195/src/core/service.c -=================================================================== ---- systemd-195.orig/src/core/service.c -+++ systemd-195/src/core/service.c -@@ -2136,8 +2136,13 @@ static void service_enter_running(Servic +diff --git a/src/core/service.c b/src/core/service.c +index 08fc97c..5118b06 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2072,8 +2072,13 @@ static void service_enter_running(Service *s, ServiceResult f) { cgroup_ok = cgroup_good(s); if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && diff --git a/service-forking-ignore-exit-status-main-process.patch b/service-forking-ignore-exit-status-main-process.patch deleted file mode 100644 index b9681f3f..00000000 --- a/service-forking-ignore-exit-status-main-process.patch +++ /dev/null @@ -1,45 +0,0 @@ -From fbeefb45ac1a257a0c5af975ad26d68ed6c39fda Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 14 Jan 2013 21:05:17 +0100 -Subject: [PATCH] service: for Type=forking services, ignore exit status of - main process depending on ExecStart's ignore setting - -https://bugzilla.redhat.com/show_bug.cgi?id=860464 ---- - src/core/service.c | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -Index: systemd-195/src/core/service.c -=================================================================== ---- systemd-195.orig/src/core/service.c -+++ systemd-195/src/core/service.c -@@ -2978,15 +2978,25 @@ static void service_sigchld_event(Unit * - s->main_pid = 0; - exec_status_exit(&s->main_exec_status, &s->exec_context, pid, code, status); - -- /* If this is not a forking service than the main -- * process got started and hence we copy the exit -- * status so that it is recorded both as main and as -- * control process exit status */ - if (s->main_command) { -+ /* If this is not a forking service than the -+ * main process got started and hence we copy -+ * the exit status so that it is recorded both -+ * as main and as control process exit -+ * status */ -+ - s->main_command->exec_status = s->main_exec_status; - - if (s->main_command->ignore) - f = SERVICE_SUCCESS; -+ } else if (s->exec_command[SERVICE_EXEC_START]) { -+ -+ /* If this is a forked process, then we should -+ * ignore the return value if this was -+ * configured for the starter process */ -+ -+ if (s->exec_command[SERVICE_EXEC_START]->ignore) -+ f = SERVICE_SUCCESS; - } - - log_struct(f == SERVICE_SUCCESS ? LOG_DEBUG : LOG_NOTICE, diff --git a/shutdown-dont-force-mnt-force-on-final-umount.patch b/shutdown-dont-force-mnt-force-on-final-umount.patch deleted file mode 100644 index cd95df86..00000000 --- a/shutdown-dont-force-mnt-force-on-final-umount.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0c08f5cde749bd2818475e487109cd0d413452df Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 16 Jan 2013 03:51:56 +0100 -Subject: [PATCH] shutdown: in the final umount loop don't use MNT_FORCE - -MNT_FORCE is honoured by NFS and FUSE and allows unmounting of the FS -even if consumers still use it. For our brute-force loop we rely on -EBUSY being reported as long as a file system is still used by a -loopback device or suchlike. Hence, drop MNT_FORCE to make EBUSY -reliable. ---- - src/core/umount.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/core/umount.c b/src/core/umount.c -index 96232d3..c7b6cee 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -442,9 +442,11 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e - ) - continue; - -- /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */ -+ /* Trying to umount. We don't force here since we rely -+ * on busy NFS and FUSE file systems to return EBUSY -+ * until we closed everything on top of them. */ - log_info("Unmounting %s.", m->path); -- if (umount2(m->path, MNT_FORCE) == 0) { -+ if (umount2(m->path, 0) == 0) { - if (changed) - *changed = true; - --- -1.7.10.4 - diff --git a/shutdown-ignore-loop-devices-without-backing-file.patch b/shutdown-ignore-loop-devices-without-backing-file.patch deleted file mode 100644 index 44992a7f..00000000 --- a/shutdown-ignore-loop-devices-without-backing-file.patch +++ /dev/null @@ -1,37 +0,0 @@ -From bdffb521d01a2e2bc342154d74cb519755c52c25 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 16 Jan 2013 04:35:54 +0100 -Subject: [PATCH] shutdown: ignore loop devices without a backing file - ---- - src/core/umount.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/core/umount.c b/src/core/umount.c -index c7b6cee..f0f2711 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -233,6 +233,7 @@ static int loopback_list_get(MountPoint **head) { - udev_list_entry_foreach(item, first) { - MountPoint *lb; - struct udev_device *d; -+ const char *backing; - char *loop; - const char *dn; - -@@ -241,6 +242,12 @@ static int loopback_list_get(MountPoint **head) { - goto finish; - } - -+ backing = udev_device_get_sysattr_value(d, "loop/backing_file"); -+ if (!backing) { -+ udev_device_unref(d); -+ continue; -+ } -+ - if (!(dn = udev_device_get_devnode(d))) { - udev_device_unref(d); - continue; --- -1.7.10.4 - diff --git a/shutdown-improvements.patch b/shutdown-improvements.patch deleted file mode 100644 index 8d09881e..00000000 --- a/shutdown-improvements.patch +++ /dev/null @@ -1,273 +0,0 @@ -From 2569a5ce16638d99f1ebaaa7774d183496d8b8e8 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 7 Dec 2012 17:28:30 +0100 -Subject: [PATCH] shutdown: downgrade a warning - -All messages of the kind "not all done, %d left" are log_info, except -the one for DM devices. Make it info too. ---- - src/core/shutdown.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 4bb4b4d..192746a 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -233,7 +233,7 @@ int main(int argc, char *argv[]) { - if (r == 0) - need_dm_detach = false; - else if (r > 0) -- log_warning("Not all DM devices detached, %d left.", r); -+ log_info("Not all DM devices detached, %d left.", r); - else - log_error("Failed to detach DM devices: %s", strerror(-r)); - } --- -1.7.10.4 - -From c678406681d32d56730b9e9c002d5500d7aa7f8b Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 7 Dec 2012 17:34:21 +0100 -Subject: [PATCH] umount: fix check for DM changed - -delete_dm() returns 0 on success. The check for "r > 0" was likely -a copy&paste error from the loopback code where "r > 0" makes sense. ---- - src/core/umount.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/umount.c b/src/core/umount.c -index f6c520e..8776807 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -536,7 +536,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { - - if ((r = delete_dm(m->devnum)) >= 0) { - -- if (r > 0 && changed) -+ if (changed) - *changed = true; - - mount_point_free(head, m); --- -1.7.10.4 - -From bce93b7ac7642426039863493694d8c12812e2a7 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 7 Dec 2012 17:44:50 +0100 -Subject: [PATCH] shutdown, umount: logging improvements - -In bugreports about hangs during the late shutdown we are often missing -important information - what were we trying to unmount/detach when it hung. - -Instead of printing what we successfully unmounted, print what we are -going to unmount/detach. And add messages to mark the completion of -categories (mount/swap/loop/DM). ---- - src/core/shutdown.c | 20 ++++++++++++-------- - src/core/umount.c | 15 +++++++++------ - 2 files changed, 21 insertions(+), 14 deletions(-) - -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 192746a..6783008 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -197,9 +197,10 @@ int main(int argc, char *argv[]) { - if (need_umount) { - log_info("Unmounting file systems."); - r = umount_all(&changed); -- if (r == 0) -+ if (r == 0) { - need_umount = false; -- else if (r > 0) -+ log_info("All filesystems unmounted."); -+ } else if (r > 0) - log_info("Not all file systems unmounted, %d left.", r); - else - log_error("Failed to unmount file systems: %s", strerror(-r)); -@@ -208,9 +209,10 @@ int main(int argc, char *argv[]) { - if (need_swapoff) { - log_info("Disabling swaps."); - r = swapoff_all(&changed); -- if (r == 0) -+ if (r == 0) { - need_swapoff = false; -- else if (r > 0) -+ log_info("All swaps disabled."); -+ } else if (r > 0) - log_info("Not all swaps are turned off, %d left.", r); - else - log_error("Failed to turn off swaps: %s", strerror(-r)); -@@ -219,9 +221,10 @@ int main(int argc, char *argv[]) { - if (need_loop_detach) { - log_info("Detaching loop devices."); - r = loopback_detach_all(&changed); -- if (r == 0) -+ if (r == 0) { - need_loop_detach = false; -- else if (r > 0) -+ log_info("All loop devices detached."); -+ } else if (r > 0) - log_info("Not all loop devices detached, %d left.", r); - else - log_error("Failed to detach loop devices: %s", strerror(-r)); -@@ -230,9 +233,10 @@ int main(int argc, char *argv[]) { - if (need_dm_detach) { - log_info("Detaching DM devices."); - r = dm_detach_all(&changed); -- if (r == 0) -+ if (r == 0) { - need_dm_detach = false; -- else if (r > 0) -+ log_info("All DM devices detached."); -+ } else if (r > 0) - log_info("Not all DM devices detached, %d left.", r); - else - log_error("Failed to detach DM devices: %s", strerror(-r)); -diff --git a/src/core/umount.c b/src/core/umount.c -index 8776807..fd90d9f 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -443,8 +443,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e - continue; - - /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */ -+ log_info("Unmounting %s.", m->path); - if (umount2(m->path, MNT_FORCE) == 0) { -- log_info("Unmounted %s.", m->path); - if (changed) - *changed = true; - -@@ -465,6 +465,7 @@ static int swap_points_list_off(MountPoint **head, bool *changed) { - assert(head); - - LIST_FOREACH_SAFE(mount_point, m, n, *head) { -+ log_info("Disabling swap %s.", m->path); - if (swapoff(m->path) == 0) { - if (changed) - *changed = true; -@@ -500,8 +501,9 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) { - continue; - } - -- if ((r = delete_loopback(m->path)) >= 0) { -- -+ log_info("Deleting loopback %s.", m->path); -+ r = delete_loopback(m->path); -+ if (r >= 0) { - if (r > 0 && changed) - *changed = true; - -@@ -534,14 +536,15 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { - continue; - } - -- if ((r = delete_dm(m->devnum)) >= 0) { -- -+ log_info("Deleting DM %u:%u.", major(m->devnum), minor(m->devnum)); -+ r = delete_dm(m->devnum); -+ if (r >= 0) { - if (changed) - *changed = true; - - mount_point_free(head, m); - } else { -- log_warning("Could not delete dm %s: %m", m->path); -+ log_warning("Could not delete DM %s: %m", m->path); - n_failed++; - } - } --- -1.7.10.4 - -From 735e0712710a1dc26da0febafb91b242b2687f3f Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 7 Dec 2012 18:02:43 +0100 -Subject: [PATCH] shutdown, umount: use verbs consistently - -Mounts are "unmounted". -Swaps are "deactivated", not "turned off" nor "disabled". -Loop and DM devices are "detached", not "deleted". - -Especially the deleting sounded a bit scary. ---- - src/core/shutdown.c | 8 ++++---- - src/core/umount.c | 10 +++++----- - 2 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 6783008..0b0e0c3 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -207,15 +207,15 @@ int main(int argc, char *argv[]) { - } - - if (need_swapoff) { -- log_info("Disabling swaps."); -+ log_info("Deactivating swaps."); - r = swapoff_all(&changed); - if (r == 0) { - need_swapoff = false; -- log_info("All swaps disabled."); -+ log_info("All swaps deactivated."); - } else if (r > 0) -- log_info("Not all swaps are turned off, %d left.", r); -+ log_info("Not all swaps deactivated, %d left.", r); - else -- log_error("Failed to turn off swaps: %s", strerror(-r)); -+ log_error("Failed to deactivate swaps: %s", strerror(-r)); - } - - if (need_loop_detach) { -diff --git a/src/core/umount.c b/src/core/umount.c -index fd90d9f..96232d3 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -465,7 +465,7 @@ static int swap_points_list_off(MountPoint **head, bool *changed) { - assert(head); - - LIST_FOREACH_SAFE(mount_point, m, n, *head) { -- log_info("Disabling swap %s.", m->path); -+ log_info("Deactivating swap %s.", m->path); - if (swapoff(m->path) == 0) { - if (changed) - *changed = true; -@@ -501,7 +501,7 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) { - continue; - } - -- log_info("Deleting loopback %s.", m->path); -+ log_info("Detaching loopback %s.", m->path); - r = delete_loopback(m->path); - if (r >= 0) { - if (r > 0 && changed) -@@ -509,7 +509,7 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) { - - mount_point_free(head, m); - } else { -- log_warning("Could not delete loopback %s: %m", m->path); -+ log_warning("Could not detach loopback %s: %m", m->path); - n_failed++; - } - } -@@ -536,7 +536,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { - continue; - } - -- log_info("Deleting DM %u:%u.", major(m->devnum), minor(m->devnum)); -+ log_info("Detaching DM %u:%u.", major(m->devnum), minor(m->devnum)); - r = delete_dm(m->devnum); - if (r >= 0) { - if (changed) -@@ -544,7 +544,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) { - - mount_point_free(head, m); - } else { -- log_warning("Could not delete DM %s: %m", m->path); -+ log_warning("Could not detach DM %s: %m", m->path); - n_failed++; - } - } --- -1.7.10.4 - diff --git a/socket-improve-error-message.patch b/socket-improve-error-message.patch deleted file mode 100644 index 506c4dcd..00000000 --- a/socket-improve-error-message.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 10f70492aea211981e4bdbe58dd7ea110e05cd16 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 20 Nov 2012 00:19:00 +0100 -Subject: [PATCH] socket: improve error message when we cannot spawn the - socket's service unit - ---- - src/core/socket.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/core/socket.c -=================================================================== ---- systemd-195.orig/src/core/socket.c -+++ systemd-195/src/core/socket.c -@@ -1510,7 +1510,7 @@ static void socket_enter_running(Socket - return; - - fail: -- log_warning("%s failed to queue socket startup job: %s", UNIT(s)->id, bus_error(&error, r)); -+ log_warning("%s failed to queue service startup job (Maybe the service file is missing or not a %s unit?): %s", UNIT(s)->id, cfd >= 0 ? "template" : "non-template", bus_error(&error, r)); - socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); - - if (cfd >= 0) diff --git a/socket-verbose-error-message.patch b/socket-verbose-error-message.patch deleted file mode 100644 index 6a36c5ef..00000000 --- a/socket-verbose-error-message.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 80cba3795da3a43b27cbb219d7daf7d6f049b079 Mon Sep 17 00:00:00 2001 -From: Dimitrios Apostolou -Date: Wed, 19 Dec 2012 22:32:52 +0100 -Subject: [PATCH] socket: Too many incoming connections - -Hello list, - -some socket activated service gave me the error message you can see on -the subject, maybe systemd should be more verbose in that case. - -Thanks, -Dimitris ---- - src/core/socket.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/core/socket.c -=================================================================== ---- systemd-195.orig/src/core/socket.c -+++ systemd-195/src/core/socket.c -@@ -1441,7 +1441,7 @@ static void socket_enter_running(Socket - Service *service; - - if (s->n_connections >= s->max_connections) { -- log_warning("Too many incoming connections (%u)", s->n_connections); -+ log_warning("%s: Too many incoming connections (%u)", UNIT(s)->id, s->n_connections); - close_nointr_nofail(cfd); - return; - } diff --git a/storage-after-cryptsetup.patch b/storage-after-cryptsetup.patch deleted file mode 100644 index 3f92ecbf..00000000 --- a/storage-after-cryptsetup.patch +++ /dev/null @@ -1,103 +0,0 @@ -From b9841589cf16950af7d123ecd128b84464d15a1d Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 7 Nov 2011 18:04:20 +0100 -Subject: [PATCH] force lvm restart after cryptsetup target is reached - ---- - src/cryptsetup-generator.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 80 insertions(+), 0 deletions(-) - -Index: systemd-194/src/cryptsetup/cryptsetup-generator.c -=================================================================== ---- systemd-194.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-194/src/cryptsetup/cryptsetup-generator.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "log.h" - #include "util.h" -@@ -64,6 +65,71 @@ static bool has_option(const char *hayst - return false; - } - -+static int create_storage_after_cryptsetup (void) { -+ int r; -+ char *to = NULL, *p = NULL; -+ FILE *f = NULL; -+ -+ if (asprintf(&p, "%s/storage-after-cryptsetup.service", arg_dest) < 0) { -+ r = -ENOMEM; -+ log_error("Failed to allocate unit file name."); -+ goto fail; -+ } -+ -+ if (!(f = fopen(p, "wxe"))) { -+ r = -errno; -+ log_error("Failed to create unit file: %m"); -+ goto fail; -+ } -+ -+ fprintf(f, -+ "[Unit]\n" -+ "Description=Restart storage after cryptsetup\n" -+ "DefaultDependencies=no\n" -+ "After=cryptsetup.target\n" -+ "Wants=cryptsetup.target\n" -+ "Before=local-fs.target\n" -+ "Before=shutdown.target\n"); -+ -+ fprintf(f, -+ "\n[Service]\n" -+ "RemainAfterExit=true\n" -+ "Type=oneshot\n" -+ "TimeoutSec=0\n" -+ "ExecStart=/usr/bin/systemctl restart lvm.service\n"); -+ -+ fflush(f); -+ -+ if (ferror(f)) { -+ r = -errno; -+ log_error("Failed to write file: %m"); -+ goto fail; -+ } -+ -+ if (asprintf(&to, "%s/local-fs.target.wants/storage-after-cryptsetup.service", arg_dest) < 0) { -+ r = -ENOMEM; -+ goto fail; -+ } -+ -+ mkdir_parents(to, 0755); -+ -+ if (symlink("../storage-after-cryptsetup.service", to) < 0) { -+ log_error("Failed to create symlink ../storage-after-cryptsetup.service to '%s': %m", to); -+ r = -errno; -+ goto fail; -+ } -+ -+ r=0; -+fail: -+ free(p); -+ free(to); -+ -+ if (f) -+ fclose(f); -+ -+ return r; -+} -+ - static int create_disk( - const char *name, - const char *device, -@@ -439,6 +505,9 @@ int main(int argc, char *argv[]) { - free(options); - } - -+ if ((r == EXIT_SUCCESS) && (create_storage_after_cryptsetup () < 0)) -+ r = EXIT_FAILURE; -+ - finish: - if (f) - fclose(f); diff --git a/strv-cleanup-error-path-loops.patch b/strv-cleanup-error-path-loops.patch deleted file mode 100644 index 8a8c728d..00000000 --- a/strv-cleanup-error-path-loops.patch +++ /dev/null @@ -1,238 +0,0 @@ -From 1fd8d04e384ae2066c02129b033c6be509edfd67 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 30 Oct 2012 18:29:45 +0100 -Subject: [PATCH] strv: cleanup error path loops - -https://bugzilla.redhat.com/show_bug.cgi?id=858799 ---- - src/shared/strv.c | 100 ++++++++++++++++++++++++++--------------------------- - 1 file changed, 49 insertions(+), 51 deletions(-) - -diff --git a/src/shared/strv.c b/src/shared/strv.c -index 1b8e27b..6b76d0e 100644 ---- a/src/shared/strv.c -+++ b/src/shared/strv.c -@@ -75,25 +75,21 @@ void strv_freep(char ***l) { - char **strv_copy(char **l) { - char **r, **k; - -- k = r = new(char*, strv_length(l)+1); -- if (!k) -+ k = r = new(char*, strv_length(l) + 1); -+ if (!r) - return NULL; - - if (l) -- for (; *l; k++, l++) -- if (!(*k = strdup(*l))) -- goto fail; -+ for (; *l; k++, l++) { -+ *k = strdup(*l); -+ if (!*k) { -+ strv_free(r); -+ return NULL; -+ } -+ } - - *k = NULL; - return r; -- --fail: -- for (k--; k >= r; k--) -- free(*k); -- -- free(r); -- -- return NULL; - } - - unsigned strv_length(char **l) { -@@ -163,13 +159,7 @@ char **strv_new_ap(const char *x, va_list ap) { - return a; - - fail: -- -- for (; i > 0; i--) -- if (a[i-1]) -- free(a[i-1]); -- -- free(a); -- -+ strv_free(a); - return NULL; - } - -@@ -265,16 +255,21 @@ char **strv_split(const char *s, const char *separator) { - FOREACH_WORD_SEPARATOR(w, l, s, separator, state) - n++; - -- if (!(r = new(char*, n+1))) -+ r = new(char*, n+1); -+ if (!r) - return NULL; - - i = 0; -- FOREACH_WORD_SEPARATOR(w, l, s, separator, state) -- if (!(r[i++] = strndup(w, l))) { -+ FOREACH_WORD_SEPARATOR(w, l, s, separator, state) { -+ r[i] = strndup(w, l); -+ if (!r[i]) { - strv_free(r); - return NULL; - } - -+ i++; -+ } -+ - r[i] = NULL; - return r; - } -@@ -292,15 +287,19 @@ char **strv_split_quoted(const char *s) { - FOREACH_WORD_QUOTED(w, l, s, state) - n++; - -- if (!(r = new(char*, n+1))) -+ r = new(char*, n+1); -+ if (!r) - return NULL; - - i = 0; -- FOREACH_WORD_QUOTED(w, l, s, state) -- if (!(r[i++] = cunescape_length(w, l))) { -+ FOREACH_WORD_QUOTED(w, l, s, state) { -+ r[i] = cunescape_length(w, l); -+ if (!r[i]) { - strv_free(r); - return NULL; - } -+ i++; -+ } - - r[i] = NULL; - return r; -@@ -323,7 +322,8 @@ char *strv_join(char **l, const char *separator) { - n += strlen(*s); - } - -- if (!(r = new(char, n+1))) -+ r = new(char, n+1); -+ if (!r) - return NULL; - - e = r; -@@ -352,22 +352,21 @@ char **strv_append(char **l, const char *s) { - if (!r) - return NULL; - -- for (k = r; *l; k++, l++) -- if (!(*k = strdup(*l))) -+ for (k = r; *l; k++, l++) { -+ *k = strdup(*l); -+ if (!*k) - goto fail; -+ } - -- if (!(*(k++) = strdup(s))) -+ k[0] = strdup(s); -+ if (!k[0]) - goto fail; - -- *k = NULL; -+ k[1] = NULL; - return r; - - fail: -- for (k--; k >= r; k--) -- free(*k); -- -- free(r); -- -+ strv_free(r); - return NULL; - } - -@@ -462,7 +461,8 @@ static int env_append(char **r, char ***k, char **a) { - else - free(*j); - -- if (!(*j = strdup(*a))) -+ *j = strdup(*a); -+ if (!*j) - return -ENOMEM; - } - -@@ -484,7 +484,8 @@ char **strv_env_merge(unsigned n_lists, ...) { - } - va_end(ap); - -- if (!(r = new(char*, n+1))) -+ r = new(char*, n+1); -+ if (!r) - return NULL; - - k = r; -@@ -503,11 +504,7 @@ char **strv_env_merge(unsigned n_lists, ...) { - - fail: - va_end(ap); -- -- for (k--; k >= r; k--) -- free(*k); -- -- free(r); -+ strv_free(r); - - return NULL; - } -@@ -619,7 +616,8 @@ char **strv_env_set(char **x, const char *p) { - - /* Overrides the env var setting of p, returns a new copy */ - -- if (!(r = new(char*, strv_length(x)+2))) -+ r = new(char*, strv_length(x)+2); -+ if (!r) - return NULL; - - k = r; -@@ -634,11 +632,7 @@ char **strv_env_set(char **x, const char *p) { - return r; - - fail: -- for (k--; k >= r; k--) -- free(*k); -- -- free(r); -- -+ strv_free(r); - return NULL; - - } -@@ -698,7 +692,8 @@ char **strv_parse_nulstr(const char *s, size_t l) { - if (s[l-1] != 0) - c++; - -- if (!(v = new0(char*, c+1))) -+ v = new0(char*, c+1); -+ if (!v) - return NULL; - - p = s; -@@ -707,11 +702,14 @@ char **strv_parse_nulstr(const char *s, size_t l) { - - e = memchr(p, 0, s + l - p); - -- if (!(v[i++] = strndup(p, e ? e - p : s + l - p))) { -+ v[i] = strndup(p, e ? e - p : s + l - p); -+ if (!v[i]) { - strv_free(v); - return NULL; - } - -+ i++; -+ - if (!e) - break; - --- -1.7.10.4 - diff --git a/support-hybrid-suspend.patch b/support-hybrid-suspend.patch deleted file mode 100644 index ad6b2bda..00000000 --- a/support-hybrid-suspend.patch +++ /dev/null @@ -1,680 +0,0 @@ -From 6524990fdc98370ecba5d9f73e67161e8798c010 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 28 Oct 2012 00:49:04 +0200 -Subject: [PATCH] logind: support for hybrid sleep (i.e. suspend+hibernate at - the same time) - ---- - .gitignore | 1 + - Makefile.am | 17 ++++++++- - man/logind.conf.xml | 5 ++- - man/systemctl.xml | 5 +++ - man/systemd-suspend.service.xml | 42 +++++++++++++-------- - man/systemd.special.xml | 15 ++++++-- - src/core/special.h | 1 + - src/login/logind-button.c | 21 ++++++----- - src/login/logind-button.h | 1 + - src/login/logind-dbus.c | 69 +++++++++++++++++++++++++++++++---- - src/shared/util.c | 24 ++++++++++++ - src/shared/util.h | 1 + - src/sleep/sleep.c | 20 +++++++++- - src/systemctl/systemctl.c | 17 +++++++-- - src/test/test-sleep.c | 39 ++++++++++++++++++++ - units/.gitignore | 1 + - units/hybrid-sleep.target | 13 +++++++ - units/systemd-hybrid-sleep.service.in | 17 +++++++++ - 18 files changed, 264 insertions(+), 45 deletions(-) - create mode 100644 src/test/test-sleep.c - create mode 100644 units/hybrid-sleep.target - create mode 100644 units/systemd-hybrid-sleep.service.in - -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -272,6 +272,7 @@ dist_systemunit_DATA = \ - units/nss-user-lookup.target \ - units/mail-transfer-agent.target \ - units/hibernate.target \ -+ units/hybrid-sleep.target \ - units/http-daemon.target \ - units/poweroff.target \ - units/reboot.target \ -@@ -334,6 +335,7 @@ nodist_systemunit_DATA = \ - units/rescue.service \ - units/user@.service \ - units/systemd-hibernate.service \ -+ units/systemd-hybrid-sleep.service \ - units/systemd-suspend.service \ - units/systemd-halt.service \ - units/systemd-poweroff.service \ -@@ -384,6 +386,7 @@ EXTRA_DIST += \ - units/systemd-udev-settle.service \ - units/debug-shell.service.in \ - units/systemd-hibernate.service.in \ -+ units/systemd-hybrid-sleep.service.in \ - units/systemd-suspend.service.in \ - units/quotaon.service.in \ - introspect.awk \ -@@ -539,6 +542,7 @@ MANPAGES_ALIAS = \ - man/systemd-shutdownd.socket.8 \ - man/systemd-shutdownd.8 \ - man/systemd-hibernate.service.8 \ -+ man/systemd-hybrid-sleep.service.8 \ - man/systemd-sleep.8 \ - man/systemd-shutdown.8 \ - man/systemd-poweroff.service.8 \ -@@ -612,6 +616,7 @@ man/systemd-initctl.8: man/systemd-initc - man/systemd-shutdownd.socket.8: man/systemd-shutdownd.service.8 - man/systemd-shutdownd.8: man/systemd-shutdownd.service.8 - man/systemd-hibernate.service.8: man/systemd-suspend.service.8 -+man/systemd-hybrid-sleep.service.8: man/systemd-suspend.service.8 - man/systemd-sleep.8: man/systemd-suspend.service.8 - man/systemd-shutdown.8: man/systemd-halt.service.8 - man/systemd-poweroff.service.8: man/systemd-halt.service.8 -Index: systemd-195/man/logind.conf.xml -=================================================================== ---- systemd-195.orig/man/logind.conf.xml -+++ systemd-195/man/logind.conf.xml -@@ -211,8 +211,10 @@ - poweroff, - reboot, - halt, -- kexec and -- hibernate. If -+ kexec, -+ suspend, -+ hibernate, and -+ hybrid-sleep. If - ignore logind will - never handle these keys. Otherwise the - specified action will be taken in the -Index: systemd-195/man/systemctl.xml -=================================================================== ---- systemd-195.orig/man/systemctl.xml -+++ systemd-195/man/systemctl.xml -@@ -1181,6 +1181,11 @@ - Hibernate the system. - - -+ hybrid-sleep -+ -+ Hibernate and suspend the system. -+ -+ - switch-root [ROOT] [INIT] - - Switches to a -Index: systemd-195/man/systemd-suspend.service.xml -=================================================================== ---- systemd-195.orig/man/systemd-suspend.service.xml -+++ systemd-195/man/systemd-suspend.service.xml -@@ -45,6 +45,7 @@ - - systemd-suspend.service - systemd-hibernate.service -+ systemd-hybrid-sleep.service - systemd-sleep - System sleep state logic - -@@ -52,6 +53,7 @@ - - systemd-suspend.service - systemd-hibernate.service -+ systemd-hybrid-sleep.service - /usr/lib/systemd/systemd-sleep - - -@@ -63,20 +65,26 @@ - suspend.target and is responsible - for the actual system suspend. Similar, - systemd-hibernate.service is -- pulled in by hibernate.target to -- executed the actual hibernation. -- -- Immediately before entering system suspend and -- hibernation -- systemd-suspend.service will run -- all executables in -+ pulled in by hibernate.target to -+ execute the actual hibernation. Finally, -+ systemd-hybrid-sleep.service is -+ pulled in by hybrid-sleep.target -+ to execute hybrid hibernation with system -+ suspend. -+ -+ Immediately before entering system suspend -+ and/or hibernation -+ systemd-suspend.service (and the -+ other mentioned units, respectively) will run all -+ executables in - /usr/lib/systemd/system-sleep/ - and pass two arguments to them. The first argument - will be "pre", the second either -- "suspend" or -- "hibernate", depending on the -+ "suspend", -+ "hibernate", or -+ "hybrid-sleep" depending on the - chosen action. Immediately after leaving system -- suspend and hibernation the same executables are run, -+ suspend and/or hibernation the same executables are run, - but the first argument is now - "post". All executables in this - directory are executed in parallel, and execution of -@@ -87,15 +95,17 @@ - /usr/lib/systemd/system-sleep/ - are intended for local use only and should be - considered hacks. If applications want to be notified -- of system suspend and resume there are much nicer -- interfaces available. -+ of system suspend/hibernation and resume there are -+ much nicer interfaces available. - - Note that -- systemd-suspend.service and -- systemd-hibernate.service should -- never be executed directly. Instead, trigger system -- sleep states with a command such as "systemctl -- suspend" or suchlike. -+ systemd-suspend.service, -+ systemd-hibernate.service and -+ systemd-hybrid-sleep.service -+ should never be executed directly. Instead, trigger -+ system sleep states with a command such as -+ "systemctl suspend" or -+ similar. - - - -Index: systemd-195/man/systemd.special.xml -=================================================================== ---- systemd-195.orig/man/systemd.special.xml -+++ systemd-195/man/systemd.special.xml -@@ -63,6 +63,7 @@ - graphical.target, - hibernate.target, - http-daemon.target, -+ hybrid-sleep.target, - halt.target, - kbrequest.target, - kexec.target, -@@ -303,6 +304,15 @@ - - - -+ hybrid-sleep.target -+ -+ A special target unit -+ for hibernating and suspending the -+ system at the same time. This pulls in -+ sleep.target. -+ -+ -+ - halt.target - - A special target unit -@@ -652,9 +662,8 @@ - - A special target unit - that is pulled in by -- suspend.target -- and -- hibernate.target -+ suspend.target, -+ hibernate.target and hybrid-sleep.target - and may be used to hook units - into the sleep state - logic. -Index: systemd-195/src/core/special.h -=================================================================== ---- systemd-195.orig/src/core/special.h -+++ systemd-195/src/core/special.h -@@ -37,6 +37,7 @@ - #define SPECIAL_EXIT_TARGET "exit.target" - #define SPECIAL_SUSPEND_TARGET "suspend.target" - #define SPECIAL_HIBERNATE_TARGET "hibernate.target" -+#define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" - - /* Special boot targets */ - #define SPECIAL_RESCUE_TARGET "rescue.target" -Index: systemd-195/src/login/logind-button.c -=================================================================== ---- systemd-195.orig/src/login/logind-button.c -+++ systemd-195/src/login/logind-button.c -@@ -163,16 +163,18 @@ static int button_handle( - [HANDLE_HALT] = "Halting...", - [HANDLE_KEXEC] = "Rebooting via kexec...", - [HANDLE_SUSPEND] = "Suspending...", -- [HANDLE_HIBERNATE] = "Hibernating..." -+ [HANDLE_HIBERNATE] = "Hibernating...", -+ [HANDLE_HYBRID_SLEEP] = "Hibernating and suspend...", - }; - - static const char * const target_table[_HANDLE_BUTTON_MAX] = { -- [HANDLE_POWEROFF] = "poweroff.target", -- [HANDLE_REBOOT] = "reboot.target", -- [HANDLE_HALT] = "halt.target", -- [HANDLE_KEXEC] = "kexec.target", -- [HANDLE_SUSPEND] = "suspend.target", -- [HANDLE_HIBERNATE] = "hibernate.target" -+ [HANDLE_POWEROFF] = SPECIAL_POWEROFF_TARGET, -+ [HANDLE_REBOOT] = SPECIAL_REBOOT_TARGET, -+ [HANDLE_HALT] = SPECIAL_HALT_TARGET, -+ [HANDLE_KEXEC] = SPECIAL_KEXEC_TARGET, -+ [HANDLE_SUSPEND] = SPECIAL_SUSPEND_TARGET, -+ [HANDLE_HIBERNATE] = SPECIAL_HIBERNATE_TARGET, -+ [HANDLE_HYBRID_SLEEP] = SPECIAL_HYBRID_SLEEP_TARGET - }; - - DBusError error; -@@ -193,7 +195,7 @@ static int button_handle( - return 0; - } - -- inhibit_operation = handle == HANDLE_SUSPEND || handle == HANDLE_HIBERNATE ? INHIBIT_SLEEP : INHIBIT_SHUTDOWN; -+ inhibit_operation = handle == HANDLE_SUSPEND || handle == HANDLE_HIBERNATE || handle == HANDLE_HYBRID_SLEEP ? INHIBIT_SLEEP : INHIBIT_SHUTDOWN; - - /* If the actual operation is inhibited, warn and fail */ - if (!ignore_inhibited && -@@ -305,7 +307,8 @@ static const char* const handle_button_t - [HANDLE_HALT] = "halt", - [HANDLE_KEXEC] = "kexec", - [HANDLE_SUSPEND] = "suspend", -- [HANDLE_HIBERNATE] = "hibernate" -+ [HANDLE_HIBERNATE] = "hibernate", -+ [HANDLE_HYBRID_SLEEP] = "hybrid-sleep", - }; - DEFINE_STRING_TABLE_LOOKUP(handle_button, HandleButton); - DEFINE_CONFIG_PARSE_ENUM(config_parse_handle_button, handle_button, HandleButton, "Failed to parse handle button setting"); -Index: systemd-195/src/login/logind-button.h -=================================================================== ---- systemd-195.orig/src/login/logind-button.h -+++ systemd-195/src/login/logind-button.h -@@ -32,6 +32,7 @@ typedef enum HandleButton { - HANDLE_KEXEC, - HANDLE_SUSPEND, - HANDLE_HIBERNATE, -+ HANDLE_HYBRID_SLEEP, - _HANDLE_BUTTON_MAX, - _HANDLE_BUTTON_INVALID = -1 - } HandleButton; -Index: systemd-195/src/login/logind-dbus.c -=================================================================== ---- systemd-195.orig/src/login/logind-dbus.c -+++ systemd-195/src/login/logind-dbus.c -@@ -145,6 +145,9 @@ - " \n" \ - " \n" \ - " \n" \ -+ " \n" \ -+ " \n" \ -+ " \n" \ - " \n" \ - " \n" \ - " \n" \ -@@ -157,6 +160,9 @@ - " \n" \ - " \n" \ - " \n" \ -+ " \n" \ -+ " \n" \ -+ " \n" \ - " \n" \ - " \n" \ - " \n" \ -@@ -1056,6 +1062,7 @@ static int bus_manager_can_shutdown_or_s - const char *action_multiple_sessions, - const char *action_ignore_inhibit, - const char *sleep_type, -+ const char *sleep_disk_type, - DBusError *error, - DBusMessage **_reply) { - -@@ -1087,6 +1094,17 @@ static int bus_manager_can_shutdown_or_s - } - } - -+ if (sleep_disk_type) { -+ r = can_sleep_disk(sleep_disk_type); -+ if (r < 0) -+ return r; -+ -+ if (r == 0) { -+ result = "na"; -+ goto finish; -+ } -+ } -+ - ul = dbus_bus_get_unix_user(connection, dbus_message_get_sender(message), error); - if (ul == (unsigned long) -1) - return -EIO; -@@ -1236,6 +1254,7 @@ static int bus_manager_do_shutdown_or_sl - const char *action_multiple_sessions, - const char *action_ignore_inhibit, - const char *sleep_type, -+ const char *sleep_disk_type, - DBusError *error, - DBusMessage **_reply) { - -@@ -1273,6 +1292,15 @@ static int bus_manager_do_shutdown_or_sl - return -ENOTSUP; - } - -+ if (sleep_disk_type) { -+ r = can_sleep_disk(sleep_disk_type); -+ if (r < 0) -+ return r; -+ -+ if (r == 0) -+ return -ENOTSUP; -+ } -+ - ul = dbus_bus_get_unix_user(connection, dbus_message_get_sender(message), error); - if (ul == (unsigned long) -1) - return -EIO; -@@ -2067,7 +2095,7 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.power-off", - "org.freedesktop.login1.power-off-multiple-sessions", - "org.freedesktop.login1.power-off-ignore-inhibit", -- NULL, -+ NULL, NULL, - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2079,7 +2107,7 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.reboot", - "org.freedesktop.login1.reboot-multiple-sessions", - "org.freedesktop.login1.reboot-ignore-inhibit", -- NULL, -+ NULL, NULL, - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2092,7 +2120,7 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.suspend", - "org.freedesktop.login1.suspend-multiple-sessions", - "org.freedesktop.login1.suspend-ignore-inhibit", -- "mem", -+ "mem", NULL, - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2104,7 +2132,20 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.hibernate", - "org.freedesktop.login1.hibernate-multiple-sessions", - "org.freedesktop.login1.hibernate-ignore-inhibit", -- "disk", -+ "disk", NULL, -+ &error, &reply); -+ if (r < 0) -+ return bus_send_error_reply(connection, message, &error, r); -+ -+ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "HybridSleep")) { -+ r = bus_manager_do_shutdown_or_sleep( -+ m, connection, message, -+ SPECIAL_HYBRID_SLEEP_TARGET, -+ INHIBIT_SLEEP, -+ "org.freedesktop.login1.hibernate", -+ "org.freedesktop.login1.hibernate-multiple-sessions", -+ "org.freedesktop.login1.hibernate-ignore-inhibit", -+ "disk", "suspend", - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2117,7 +2158,7 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.power-off", - "org.freedesktop.login1.power-off-multiple-sessions", - "org.freedesktop.login1.power-off-ignore-inhibit", -- NULL, -+ NULL, NULL, - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2128,7 +2169,7 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.reboot", - "org.freedesktop.login1.reboot-multiple-sessions", - "org.freedesktop.login1.reboot-ignore-inhibit", -- NULL, -+ NULL, NULL, - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2140,7 +2181,7 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.suspend", - "org.freedesktop.login1.suspend-multiple-sessions", - "org.freedesktop.login1.suspend-ignore-inhibit", -- "mem", -+ "mem", NULL, - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -@@ -2152,7 +2193,19 @@ static DBusHandlerResult manager_message - "org.freedesktop.login1.hibernate", - "org.freedesktop.login1.hibernate-multiple-sessions", - "org.freedesktop.login1.hibernate-ignore-inhibit", -- "disk", -+ "disk", NULL, -+ &error, &reply); -+ if (r < 0) -+ return bus_send_error_reply(connection, message, &error, r); -+ -+ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "CanHybridSleep")) { -+ r = bus_manager_can_shutdown_or_sleep( -+ m, connection, message, -+ INHIBIT_SLEEP, -+ "org.freedesktop.login1.hibernate", -+ "org.freedesktop.login1.hibernate-multiple-sessions", -+ "org.freedesktop.login1.hibernate-ignore-inhibit", -+ "disk", "suspend", - &error, &reply); - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -5726,6 +5726,30 @@ int can_sleep(const char *type) { - return false; - } - -+int can_sleep_disk(const char *type) { -+ char *w, *state; -+ size_t l, k; -+ int r; -+ _cleanup_free_ char *p = NULL; -+ -+ assert(type); -+ -+ r = read_one_line_file("/sys/power/disk", &p); -+ if (r < 0) -+ return r == -ENOENT ? 0 : r; -+ -+ k = strlen(type); -+ FOREACH_WORD_SEPARATOR(w, l, p, WHITESPACE, state) { -+ if (l == k && memcmp(w, type, l) == 0) -+ return true; -+ -+ if (l == k + 2 && w[0] == '[' && memcmp(w + 1, type, l - 2) == 0 && w[l-1] == ']') -+ return true; -+ } -+ -+ return false; -+} -+ - bool is_valid_documentation_url(const char *url) { - assert(url); - -Index: systemd-195/src/shared/util.h -=================================================================== ---- systemd-195.orig/src/shared/util.h -+++ systemd-195/src/shared/util.h -@@ -531,6 +531,7 @@ int setrlimit_closest(int resource, cons - int getenv_for_pid(pid_t pid, const char *field, char **_value); - - int can_sleep(const char *type); -+int can_sleep_disk(const char *type); - - bool is_valid_documentation_url(const char *url); - -Index: systemd-195/src/sleep/sleep.c -=================================================================== ---- systemd-195.orig/src/sleep/sleep.c -+++ systemd-195/src/sleep/sleep.c -@@ -46,7 +46,7 @@ int main(int argc, char *argv[]) { - - if (streq(argv[1], "suspend")) - verb = "mem"; -- else if (streq(argv[1], "hibernate")) -+ else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) - verb = "disk"; - else { - log_error("Unknown action '%s'.", argv[1]); -@@ -54,6 +54,16 @@ int main(int argc, char *argv[]) { - goto finish; - } - -+ /* Configure the hibernation mode */ -+ if (streq(argv[1], "hibernate")) { -+ if (write_one_line_file("/sys/power/disk", "platform") < 0) -+ write_one_line_file("/sys/power/disk", "shutdown"); -+ } else if (streq(argv[1], "hybrid-sleep")) { -+ if (write_one_line_file("/sys/power/disk", "suspend") < 0) -+ if (write_one_line_file("/sys/power/disk", "platform") < 0) -+ write_one_line_file("/sys/power/disk", "shutdown"); -+ } -+ - f = fopen("/sys/power/state", "we"); - if (!f) { - log_error("Failed to open /sys/power/state: %m"); -@@ -73,12 +83,18 @@ int main(int argc, char *argv[]) { - "MESSAGE=Suspending system...", - "SLEEP=suspend", - NULL); -- else -+ else if (streq(argv[1], "hibernate")) - log_struct(LOG_INFO, - MESSAGE_ID(SD_MESSAGE_SLEEP_START), - "MESSAGE=Hibernating system...", - "SLEEP=hibernate", - NULL); -+ else -+ log_struct(LOG_INFO, -+ MESSAGE_ID(SD_MESSAGE_SLEEP_START), -+ "MESSAGE=Hibernating and suspending system...", -+ "SLEEP=hybrid-sleep", -+ NULL); - - fputs(verb, f); - fputc('\n', f); -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -99,6 +99,7 @@ static enum action { - ACTION_EXIT, - ACTION_SUSPEND, - ACTION_HIBERNATE, -+ ACTION_HYBRID_SLEEP, - ACTION_RUNLEVEL2, - ACTION_RUNLEVEL3, - ACTION_RUNLEVEL4, -@@ -1608,6 +1609,8 @@ static enum action verb_to_action(const - return ACTION_SUSPEND; - else if (streq(verb, "hibernate")) - return ACTION_HIBERNATE; -+ else if (streq(verb, "hybrid-sleep")) -+ return ACTION_HYBRID_SLEEP; - else - return ACTION_INVALID; - } -@@ -1628,7 +1631,8 @@ static int start_unit(DBusConnection *bu - [ACTION_DEFAULT] = SPECIAL_DEFAULT_TARGET, - [ACTION_EXIT] = SPECIAL_EXIT_TARGET, - [ACTION_SUSPEND] = SPECIAL_SUSPEND_TARGET, -- [ACTION_HIBERNATE] = SPECIAL_HIBERNATE_TARGET -+ [ACTION_HIBERNATE] = SPECIAL_HIBERNATE_TARGET, -+ [ACTION_HYBRID_SLEEP] = SPECIAL_HYBRID_SLEEP_TARGET - }; - - int r, ret = 0; -@@ -1767,6 +1771,10 @@ static int reboot_with_logind(DBusConnec - method = "Hibernate"; - break; - -+ case ACTION_HYBRID_SLEEP: -+ method = "HybridSleep"; -+ break; -+ - default: - return -EINVAL; - } -@@ -1818,7 +1826,8 @@ static int start_special(DBusConnection - (a == ACTION_POWEROFF || - a == ACTION_REBOOT || - a == ACTION_SUSPEND || -- a == ACTION_HIBERNATE)) { -+ a == ACTION_HIBERNATE || -+ a == ACTION_HYBRID_SLEEP)) { - r = reboot_with_logind(bus, a); - if (r >= 0) - return r; -@@ -3999,7 +4008,8 @@ static int systemctl_help(void) { - " exit Request user instance exit\n" - " switch-root [ROOT] [INIT] Change to a different root file system\n" - " suspend Suspend the system\n" -- " hibernate Hibernate the system\n", -+ " hibernate Hibernate the system\n" -+ " hybrid-sleep Hibernate and suspend the system\n", - program_invocation_short_name); - - return 0; -@@ -4931,6 +4941,7 @@ static int systemctl_main(DBusConnection - { "kexec", EQUAL, 1, start_special }, - { "suspend", EQUAL, 1, start_special }, - { "hibernate", EQUAL, 1, start_special }, -+ { "hybrid-sleep", EQUAL, 1, start_special }, - { "default", EQUAL, 1, start_special }, - { "rescue", EQUAL, 1, start_special }, - { "emergency", EQUAL, 1, start_special }, -Index: systemd-195/units/hybrid-sleep.target -=================================================================== ---- /dev/null -+++ systemd-195/units/hybrid-sleep.target -@@ -0,0 +1,13 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+ -+[Unit] -+Description=Hybrid Suspend+Hibernate -+Documentation=man:systemd.special(7) -+DefaultDependencies=no -+BindsTo=systemd-hybrid-sleep.service -+After=systemd-hybrid-sleep.service -Index: systemd-195/units/systemd-hybrid-sleep.service.in -=================================================================== ---- /dev/null -+++ systemd-195/units/systemd-hybrid-sleep.service.in -@@ -0,0 +1,17 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+ -+[Unit] -+Description=Hybrid Suspend+Hibernate -+Documentation=man:systemd-suspend.service(8) -+DefaultDependencies=no -+Requires=sleep.target -+After=sleep.target -+ -+[Service] -+Type=oneshot -+ExecStart=@rootlibexecdir@/systemd-sleep hybrid-sleep diff --git a/support-suse-clock-sysconfig.patch b/support-suse-clock-sysconfig.patch deleted file mode 100644 index 0df12081..00000000 --- a/support-suse-clock-sysconfig.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 64ddc0bfa995041196fd0b9c61756d64578f925c Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Tue, 14 Aug 2012 14:26:16 +0200 -Subject: [PATCH] timedate: add support for openSUSE version of - /etc/sysconfig/clock - ---- - src/timedate/timedated.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -Index: systemd-190/src/timedate/timedated.c -=================================================================== ---- systemd-190.orig/src/timedate/timedated.c -+++ systemd-190/src/timedate/timedated.c -@@ -175,6 +175,13 @@ static int read_data(void) { - goto have_timezone; - } - } -+#ifdef TARGET_SUSE -+ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+ "TIMEZONE", &tz.zone, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); -+#endif - - #ifdef HAVE_DEBIAN - r = read_one_line_file("/etc/timezone", &tz.zone); diff --git a/support-sysvinit.patch b/support-sysvinit.patch deleted file mode 100644 index 2057a634..00000000 --- a/support-sysvinit.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -4678,10 +4678,13 @@ static int parse_argv(int argc, char *ar - /* Hmm, so some other init system is - * running, we need to forward this - * request to it. For now we simply -- * guess that it is Upstart. */ -- -- execv("/lib/upstart/telinit", argv); -+ * guess that it is Sysvinit or Upstart. */ - -+ if (!access("/lib/sysvinit/telinit", X_OK)) { -+ execv("/lib/sysvinit/telinit", argv); -+ } else { -+ execv("/lib/upstart/telinit", argv); -+ } - log_error("Couldn't find an alternative telinit implementation to spawn."); - return -EIO; - } diff --git a/switch-root-try-pivot-root.patch b/switch-root-try-pivot-root.patch deleted file mode 100644 index d2347eda..00000000 --- a/switch-root-try-pivot-root.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 891a4918ef75fa81e22691156c050d061bd53dd3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 Nov 2012 18:15:30 +0100 -Subject: [PATCH] switch-root: try pivot_root() before overmounting / - -We should always try to umount the old root dir if possible, instead of -overmounting it -- if that's possible. - -The initial ("first") kernel rootfs can never be umounted, hence -for the usual nitrd case we never bothered using pivot_root() and -hence with fully unmounting it. However, fedup now tranisitions twice -during boot, and in that case it is highly desirable that the "second" -root dir is entirely unmounted when we switch to the "third". This patch -makes that possible. - -The pivot_root() needs a directory in the "third" root dir, to move the -"second" root dir to. We use /mnt for that, under the assumption that -this directory is likely to exist, and is not itself a mount point. ---- - src/core/switch-root.c | 27 ++++++++++++++++++++++++++- - 1 file changed, 26 insertions(+), 1 deletion(-) - -diff --git a/src/core/switch-root.c b/src/core/switch-root.c -index 150332a..ce0e41d 100644 ---- a/src/core/switch-root.c -+++ b/src/core/switch-root.c -@@ -30,6 +30,7 @@ - #include "util.h" - #include "path-util.h" - #include "switch-root.h" -+#include "missing.h" - - int switch_root(const char *new_root) { - -@@ -44,10 +45,21 @@ int switch_root(const char *new_root) { - struct stat new_root_stat; - bool old_root_remove; - const char *i; -+ _cleanup_free_ char *temporary_old_root = NULL; - - if (path_equal(new_root, "/")) - return 0; - -+ /* When using pivot_root() we assume that /mnt exists as place -+ * we can temporarily move the old root to. As we immediately -+ * unmount it from there it doesn't matter much which -+ * directory we choose for this, but it should be more likely -+ * than not that /mnt exists and is suitable as mount point -+ * and is on the same fs as the old root dir */ -+ temporary_old_root = strappend(new_root, "/mnt"); -+ if (!temporary_old_root) -+ return -ENOMEM; -+ - old_root_remove = in_initrd(); - - if (stat(new_root, &new_root_stat) < 0) { -@@ -103,7 +115,20 @@ int switch_root(const char *new_root) { - log_warning("Failed to open root directory: %m"); - } - -- if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { -+ /* We first try a pivot_root() so that we can umount the old -+ * root dir. In many cases (i.e. where rootfs is /), that's -+ * not possible however, and hence we simply overmount root */ -+ if (pivot_root(new_root, temporary_old_root) >= 0) { -+ -+ /* Immediately get rid of the old root. Since we are -+ * running off it we need to do this lazily. */ -+ if (umount2(temporary_old_root, MNT_DETACH) < 0) { -+ r = -errno; -+ log_error("Failed to umount old root dir %s: %m", temporary_old_root); -+ goto fail; -+ } -+ -+ } else if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { - r = -errno; - log_error("Failed to mount moving %s to /: %m", new_root); - goto fail; --- -1.7.10.4 - diff --git a/sync-on-shutdown.patch b/sync-on-shutdown.patch deleted file mode 100644 index 6443fb48..00000000 --- a/sync-on-shutdown.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0049f05a8bb82c3e084bacc5945596761d706c55 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 Nov 2012 01:30:29 +0100 -Subject: [PATCH] shutdown: readd explicit sync() when shutting down - -As it turns out reboot() doesn't actually imply a file system sync, but -only a disk sync. Accordingly, readd explicit sync() invocations -immediately before we invoke reboot(). - -This is much less dramatic than it might sounds as we umount all -disks/read-only remount them anyway before going down. ---- - src/core/service.c | 1 + - src/core/shutdown.c | 7 +++++++ - 2 files changed, 8 insertions(+) - -Index: systemd-195/src/core/service.c -=================================================================== ---- systemd-195.orig/src/core/service.c -+++ systemd-195/src/core/service.c -@@ -2526,6 +2526,7 @@ static int service_start_limit_test(Serv - - case SERVICE_START_LIMIT_REBOOT_IMMEDIATE: - log_warning("%s start request repeated too quickly, rebooting immediately.", UNIT(s)->id); -+ sync(); - reboot(RB_AUTOBOOT); - break; - -Index: systemd-195/src/core/shutdown.c -=================================================================== ---- systemd-195.orig/src/core/shutdown.c -+++ systemd-195/src/core/shutdown.c -@@ -273,6 +273,13 @@ int main(int argc, char *argv[]) { - } - } - -+ /* The kernel will automaticall flush ATA disks and suchlike -+ * on reboot(), but the file systems need to be synce'd -+ * explicitly in advance. So let's do this here, but not -+ * needlessly slow down containers. */ -+ if (!in_container) -+ sync(); -+ - if (cmd == LINUX_REBOOT_CMD_KEXEC) { - - if (!in_container) { diff --git a/sysctl-modules.patch b/sysctl-modules.patch deleted file mode 100644 index c6d4058d..00000000 --- a/sysctl-modules.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: systemd-189/units/systemd-sysctl.service.in -=================================================================== ---- systemd-189.orig/units/systemd-sysctl.service.in -+++ systemd-189/units/systemd-sysctl.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service - DefaultDependencies=no - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service -+After=systemd-modules-load.service - Before=sysinit.target shutdown.target - ConditionPathIsReadWrite=/proc/sys/ - ConditionPathExists=|/etc/sysctl.conf diff --git a/sysctl-parse-all-keys.patch b/sysctl-parse-all-keys.patch deleted file mode 100644 index 4a8110ca..00000000 --- a/sysctl-parse-all-keys.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 91b32fa987a4a50faf3d8561b28b6c9d5150adef Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Thu, 25 Oct 2012 16:16:19 +0200 -Subject: [PATCH] sysctl: parse all keys in a config file - -https://bugzilla.redhat.com/show_bug.cgi?id=869779 ---- - src/sysctl/sysctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c -index a68d67f..035e0ec 100644 ---- a/src/sysctl/sysctl.c -+++ b/src/sysctl/sysctl.c -@@ -178,7 +178,7 @@ static int parse_file(const char *path, bool ignore_enoent) { - - free(property); - free(new_value); -- if (r != -EEXIST) -+ if (r != 0) - goto finish; - } - } --- -1.7.10.4 - diff --git a/systemctl-no-assert-on-reboot-without-dbus.patch b/systemctl-no-assert-on-reboot-without-dbus.patch deleted file mode 100644 index c2f9afe6..00000000 --- a/systemctl-no-assert-on-reboot-without-dbus.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d255133d8edc84662d2370a77414505a800d1922 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sat, 12 Jan 2013 00:00:22 +0100 -Subject: [PATCH] systemctl: don't hit an assert if we try to reboot and dbus - is dead - -https://bugzilla.redhat.com/show_bug.cgi?id=889624 ---- - src/systemctl/systemctl.c | 3 +++ - 1 file changed, 3 insertions(+) - -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -1744,6 +1744,9 @@ static int reboot_with_logind(DBusConnec - const char *method; - dbus_bool_t interactive = true; - -+ if (!bus) -+ return -EIO; -+ - polkit_agent_open_if_enabled(); - - switch (a) { diff --git a/systemctl-print-wall-on-if-successful.patch b/systemctl-print-wall-on-if-successful.patch deleted file mode 100644 index f056ef87..00000000 --- a/systemctl-print-wall-on-if-successful.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f6bb13ab8db51aaedc825fec2f0458b60309b27a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 14 Feb 2013 14:08:09 -0500 -Subject: [PATCH] systemctl: print wall message only if successful - -systemctl would write to the wall even if unsuccessful. - -https://bugs.freedesktop.org/show_bug.cgi?id=60393 ---- - src/systemctl/systemctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -1825,7 +1825,7 @@ static int start_special(DBusConnection - } - - r = start_unit(bus, args); -- if (r >= 0) -+ if (r == EXIT_SUCCESS) - warn_wall(a); - - return r; diff --git a/systemctl-verbose-message-on-missing-install.patch b/systemctl-verbose-message-on-missing-install.patch deleted file mode 100644 index 93383820..00000000 --- a/systemctl-verbose-message-on-missing-install.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 4b9d3dc9748ec3f52a71b06f851f4398462a1c60 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 6 Dec 2012 16:20:10 +0100 -Subject: [PATCH] systemctl: verbose message on missing [Install] - -People still don't understand what the message implies. -We have to be more verbose (or more intelligent and detect some of the -cases automatically, but that's not so easy). - -https://bugzilla.redhat.com/show_bug.cgi?id=884438 ---- - src/systemctl/systemctl.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -Index: systemd-195/src/systemctl/systemctl.c -=================================================================== ---- systemd-195.orig/src/systemctl/systemctl.c -+++ systemd-195/src/systemctl/systemctl.c -@@ -3783,7 +3783,16 @@ static int enable_unit(DBusConnection *b - } - - if (carries_install_info == 0) -- log_warning("The unit files have no [Install] section. They are not meant to be enabled using systemctl."); -+ log_warning( -+"The unit files have no [Install] section. They are not meant to be enabled\n" -+"using systemctl.\n" -+"Possible reasons for having this kind of units are:\n" -+"1) A unit may be statically enabled by being symlinked from another unit's\n" -+" .wants/ or .requires/ directory.\n" -+"2) A unit's purpose may be to act as a helper for some other unit which has\n" -+" a requirement dependency on it.\n" -+"3) A unit may be started when needed via activation (socket, path, timer,\n" -+" D-Bus, udev, scripted systemctl call, ...).\n"); - - finish: - if (m) diff --git a/systemd-195.tar.xz b/systemd-195.tar.xz deleted file mode 100644 index c1ce2202..00000000 --- a/systemd-195.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9041a8b84ed971d08df2b96f1b7dbb1d49b788e275c7cc39912f656bd826303 -size 1441308 diff --git a/systemd-202.tar.xz b/systemd-202.tar.xz new file mode 100644 index 00000000..a2ff6a2e --- /dev/null +++ b/systemd-202.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c43073252a52eb9f9ab9bd698be0192bcb2175ba5daba6057250083dd64e059 +size 2149860 diff --git a/systemd-cgls-fix-piping-output.patch b/systemd-cgls-fix-piping-output.patch deleted file mode 100644 index b7871980..00000000 --- a/systemd-cgls-fix-piping-output.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7009eec20823add711e0aa452bdf9dfdd677fa4f Mon Sep 17 00:00:00 2001 -From: Anders Olofsson -Date: Mon, 19 Nov 2012 15:25:36 +0100 -Subject: [PATCH] shared/utils: systemd-cgls shows 'n/a' when piping output - --1 was used to signal failure, but the type was unsigned. - -https://bugs.freedesktop.org/show_bug.cgi?id=56644 ---- - src/shared/util.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-195/src/shared/util.c -=================================================================== ---- systemd-195.orig/src/shared/util.c -+++ systemd-195/src/shared/util.c -@@ -3806,7 +3806,7 @@ int fd_columns(int fd) { - - unsigned columns(void) { - const char *e; -- unsigned c; -+ int c; - - if (_likely_(cached_columns > 0)) - return cached_columns; -@@ -3814,7 +3814,7 @@ unsigned columns(void) { - c = 0; - e = getenv("COLUMNS"); - if (e) -- safe_atou(e, &c); -+ safe_atoi(e, &c); - - if (c <= 0) - c = fd_columns(STDOUT_FILENO); diff --git a/systemd-fix-merge-ignore-dependencies.patch b/systemd-fix-merge-ignore-dependencies.patch deleted file mode 100644 index 3e9f9454..00000000 --- a/systemd-fix-merge-ignore-dependencies.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e45460d666512db4f908f86e8722d7932dcf0f82 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 25 Jan 2013 19:54:21 +0100 -Subject: [PATCH] job: fix merging with --ignore-dependencies - -This fixes a bug where a job with --ignore-dependencies would wait for -other jobs because it merged into a previously queued job. ---- - src/core/job.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/core/job.c b/src/core/job.c -index e381ea2..6a03d17 100644 ---- a/src/core/job.c -+++ b/src/core/job.c -@@ -166,6 +166,7 @@ static void job_merge_into_installed(Job *j, Job *other) { - assert(other->type == JOB_NOP); - - j->override = j->override || other->override; -+ j->ignore_order = j->ignore_order || other->ignore_order; - } - - Job* job_install(Job *j) { --- -1.7.10.4 - diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index a9db8b52..219445d9 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -15,3 +15,4 @@ addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") +addFilter("nss-myhostname.*shlib-policy-name-error.*") diff --git a/systemd-mini.changes b/systemd-mini.changes index bad5b461..6de94b11 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,230 @@ +------------------------------------------------------------------- +Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com + +- Do not provide %{release} for systemd-analyze +- Add more conflicts to -mini packages +- Disable Predictable Network interface names until it has been + reviewed by network team, with /usr/lib/tmpfiles.d/network.conf. +- Don't package /usr/lib/firmware/update (not used) + +------------------------------------------------------------------- +Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org + +- Fix packaging error, there is no syslog.target anymore + do not pretend there is one. + +------------------------------------------------------------------- +Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com + +- Update to release 202: + + 'systemctl list-jobs' got some polishing. '--type=' argument + may now be passed more than once. 'systemctl list-sockets' has + been added. + + systemd gained a new unit 'systemd-static-nodes.service' +    that generates static device nodes earlier during boot, and +    can run in conjunction with udev. + + systemd-nspawn now places all containers in the new /machine +    top-level cgroup directory in the name=systemd hierarchy. + + bootchart can now store its data in the journal. + + journactl can now take multiple --unit= and --user-unit= +    switches. + + The cryptsetup logic now understands the "luks.key=" kernel +    command line switch. If a configured key file is missing, it + will fallback to prompting the user. +- Rebase some patches +- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to + properly handle SYSTEMCTL_OPTIONS + +------------------------------------------------------------------- +Fri Apr 19 12:47:13 UTC 2013 - max@suse.com + +- Fix regression in the default for tmp auto-deletion + (systemd-tmp-safe-defaults.patch, FATE#314974). + +------------------------------------------------------------------- +Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com + +- Update to release 201: + + udev now supports different nameng policies for network + interface for predictable names. + + udev gained support for loading additional device properties + from an indexed database. %udev_hwdb_update macro should be + used by packages adding entries to this database. + + Journal gained support for "Message Catalog", indexed database + to link up additional information with journal entries. + %journal_catalog_update macro should be used by packages adding + %entries to this database. + + "age" field for tmpfiles entries can be set to 0, forcing + removal of files matching this entry. + + coredumpctl gained "gdb" verb to invoke gdb on selected + coredump. + + New rpm macros has been added: %udev_rules_update(), + %_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir, + %_tmpfilesdir, %_sysctldir. + + In service files, %U can be used for configured user name of + the service. + + nspawn can be invoked without a controlling TTY. + + systemd and nspawn can accept socket file descriptors when + started for socket activation. This allow socket activated + nspawn containers. + + logind can now automatically suspend/hibernate/shutdown system + on idle. + + ConditionACPower can be used in unit file to detect if AC power + source is connected or if system is on battery power. + + EnvironmentFile= in unit files supports file globbing. + + Behaviour of PrivateTmp=, ReadWriteDirectories=, + ReadOnlyDirectories= and InaccessibleDirectories= has + changed. The private /tmp and /var/tmp directories are now + shared by all processes of a service (which means + ExecStartPre= may now leave data in /tmp that ExecStart= of + the same service can still access). When a service is + stopped its temporary directories are immediately deleted + (normal clean-up with tmpfiles is still done in addition to + this though). + + Resource limits (as exposed by cgroup controlers) can be + controlled dynamically at runtime for all units, using + "systemctl set-cgroup-attr foobar.server cgroup.attribute + value". Those settings are stored persistenly on disk. + + systemd-vconsole-setup will now copy all fonts settings to all + allocated VTs. + + timedated now exposes CanNTP property to indicate if a local + NTP service is available. + + pstore file system is mounted by default, if available. + + SMACK policies are loaded at early boot, if available. + + Timer units now support calendar time events. + + systemd-detect-virt detect xen PVs. + + Some distributions specific LSB targets has been dropped: + $x-display-manager, $mail-transfer-agent, + $mail-transport-agent, $mail-transfer-agent, $smtp, $null. As + well mail-transfer-agent.target and syslog.target has been + removed. + + systemd-journal-gatewayd gained SSL support and now runs as + unprivileged user/group + "systemd-journal-gateway:systemd-journal-gateway" + + systemd-analyze will read, when available, boot time + performance from EFI variable from boot loader supporting it. + + A new generator for automatically mounting EFI System Partition + (ESP) to /boot (if empty and no other file system has been + configured in fstab for it). + + logind will now send out PrepareForSleep(false) out + unconditionally, after coming back from suspend. + + tmpfiles gained a new "X" line type, that allows + configuration of files and directories (with wildcards) that + shall be excluded from automatic cleanup ("aging"). + + udev default rules set the device node permissions now only + at "add" events, and do not change them any longer with a + later "change" event. + + A new bootctl tool has been added that is an interface for + certain EFI boot loader operations. + + A new tool kernel-install has been added to install kernel + images according to Boot Loader Specification. + + A new tool systemd-activate can be used to test socket + activation. + + A new group "systemd-journal" is now owning journal files, + replacing "adm" group. + + journalctl gained "--reverse" to show output in reverse order, + "--pager-end" to jump at the end of the journal in the + pager (only less is supported) and "--user-unit" to filter for + user units. + + New unit files has been addedto ease for systemd usage in + initrd. + + "systemctl start" now supports "--irreversible" to queue + operations which can be reserved. It is now used to make + shutdown requests more robust. + + Auke Kok's bootchart has been merged and relicensed to + LGPLv2.1+. + + nss-myhostname has been merged in systemd codebase. + + some defaults sysctl values are now set by default: the safe + sysrq options are turned on, IP route verification is turned + on, and source routing disabled. The recently added hardlink + and softlink protection of the kernel is turned on. + + Add support for predictable network naming logic. It can be + turned off with kernel command line switch: net.ifnames=0 + + journald will now explicitly flush journal files to disk at the + latest 5 min after each write and will mark file offline until + next read. This should increase reliability in case of crash. + + remote-fs-setup.target target has been added to pull in + specific services when at least one remote file system is to be + mounted. + + timers.target and paths.target have been added as canonical + targets to pull user timer and path units, similar to + sockets.targets. + + udev daemon now sets default number of worker processes in + parallel based on number of CPUs instead of RAM. + + Most unit file settings which takes likst of items can now be +reset by assigning empty string to them, using drop-in. + + Add support for drop-in configuration file for units. + + Most unit file settings which takes likst of items can now be + reset by assigning empty string to them, using drop-in. + + improve systemg-cgtop output. + + improve 'systemctl status' output for socket, drop-in for units. + + 'hostnamectl set-hostname' allows setting FQDN hostnames. + + fractional time intervals are now parsed properly. + + localectl can list available X11 keymaps. + + systemd-analyze dot can filter for specific units and has been + rewritten in C. + + systemctl gained "list-dependencies" command. + + Inhibitors are now honored no only in GNOME. +- Many patches has been dropped, being merged upstream. +- Many patches has been renamed and regenerated with git, to have + consistent naming, authorship and comments embedded. +- Add + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch: + re-add support for boot.* initscripts until they are all migrated + to systemd unit files. +- Merge patches for nss-myhostname package to this package. + +------------------------------------------------------------------- +Fri Apr 12 16:17:04 UTC 2013 - rschweikert@suse.com + +- Add chromebook lid switch as a power switch to logind rule to + enable suspend on lid close + +------------------------------------------------------------------- +Mon Apr 8 14:51:47 CEST 2013 - fcrozat@suse.com + +- Add improve-readahead-spinning.patch: improve readahead + performance on spinning media with ext4. +- Add fix-journal-vacuum-logic.patch: fix vacuum logic in journal + (bnc#789589). +- Add fix-lsb-provides.patch: ensure LSB provides are correctly + handled if also referenced as dependencies (bnc#809646). +- Add fix-loopback-mount.patch: ensure udevd is started (and + therefore static devices are created) before mounting + (bnc#809820). +- Update systemd-sysv-convert to search services files in new + location (bnc#809695). +- Add logind-nvidia-acl.diff: set ACL on nvidia devices + (bnc#808319). +- Add do-no-isolate-on-fsck-failure.patch: do not turn off services + if fsck fails (bnc#812874) +- Add wait-for-processes-killed.patch: wait for processes killed by + SIGTERM before killing them with SIGKILL. +- Update systemctl-options.patch to only apply SYSTEMCTL_OPTIONS to + systemctl command (bnc#801878). + +------------------------------------------------------------------- +Tue Apr 2 22:09:42 CEST 2013 - sbrabec@suse.cz + +- Fixed disabling CapsLock and enabling NumLock (bnc#746595, + 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, + systemd-numlock-suse.patch). +- Explicitly require libgcrypt-devel to fix build failure. + +------------------------------------------------------------------- +Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com + +- udev: ensure that the network interfaces are renamed even if they + exist (bnc#809843). + add: 1027-udev-always-rename-network.patch + +------------------------------------------------------------------- +Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com + +- udev: re-add persistent network rules (bnc#809843). + add: 1026-re-add-persistent-net.patch +- rebase all patches, ensure that they apply properly. + ------------------------------------------------------------------- Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index f8e9e65e..30827d23 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -25,7 +25,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 195 +Version: 202 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -62,6 +62,7 @@ BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} +BuildRequires: libgcrypt-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.4.2 %endif @@ -79,6 +80,7 @@ BuildRequires: pkgconfig(libsepol) BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} Requires: this-is-only-for-build-envs +Conflicts: systemd %else # the buildignore is important for bootstrapping #!BuildIgnore: udev @@ -94,6 +96,8 @@ Requires(post): findutils %endif Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 +Obsoletes: systemd-analyze < 201 +Provides: systemd-analyze = %{version} Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz Source1: systemd-rpmlintrc Source2: localfs.service @@ -103,185 +107,66 @@ Source5: systemd-insserv_conf Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init +Source9: nss-myhostname-config Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink +# Patches auto-generated by git-buildpackage: -Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch +# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r +Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +# PATCH-FIX-UPSTREAM ptionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called +Patch1: optionally-warn-if-nss-myhostname-is-called.patch +Patch2: Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings -Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch -Patch7: systemd-numlock-suse.patch -# don't start getty on tty1 until all password request are done -Patch8: tty1.patch -Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch -Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch -Patch15: support-sysvinit.patch -Patch16: modules_on_boot.patch -Patch22: new-lsb-headers.patch -Patch23: storage-after-cryptsetup.patch -Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch -Patch31: lock-opensuse.patch -Patch33: crypt-loop-file.patch -Patch36: sysctl-modules.patch -Patch38: dm-lvm-after-local-fs-pre-target.patch -Patch53: fastboot-forcefsck.patch -Patch56: support-suse-clock-sysconfig.patch -Patch59: fix-enable-disable-boot-initscript.patch -Patch60: var-run-lock.patch -Patch63: xdm-display-manager.patch -Patch64: fix-permissions-btmp.patch -# PATCH-FIX-UPSTREAM fix-debugshell.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available -Patch71: fix-debugshell.patch -# PATCH-FIX-OPENSUSE handle-root-uses-lang.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype -Patch72: handle-root-uses-lang.patch -# PATCH-FIX-OPENSUSE multiple-sulogin.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin -Patch76: multiple-sulogin.patch -# PATCH-FIX-OPENSUSE systemctl-options.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable -Patch77: systemctl-options.patch +Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch +Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch +Patch6: parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +Patch10: force-lvm-restart-after-cryptsetup-target-is-reached.patch +Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch +Patch14: ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch +Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +Patch18: fix-owner-of-var-log-btmp.patch + +# PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done +Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch +# PATCH-FIX-OPENSUSE Ensure-debugshell-has-a-correct-value.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available +Patch19: Ensure-debugshell-has-a-correct-value.patch +# PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype +Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch +# PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin +Patch21: allow-multiple-sulogin-to-be-started.patch +# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable +Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch +# PATCH-FIX-UPSTREAM ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch bnc#809820 fcrozat@suse.com -- loopback mount should be started after /dev/loop-control is available +Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch +# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices +Patch27: apply-ACL-for-nvidia-device-nodes.patch +# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts +Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch -- FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. +Patch39: systemd-tmp-safe-defaults.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM fix-logind-pty-seat.patch fcrozat@suse.com -- fix logind complaining when doing su/sudo in X terminal -Patch61: fix-logind-pty-seat.patch -# PATCH-FIX-UPSTREAM fix-build-glibc217.patch fcrozat@suse.com -- fix build with latest glibc -Patch62: fix-build-glibc217.patch -# PATCH-FIX-UPSTREAM fix-bad-memory-access.patch fcrozat@suse.com -- fix bad memory access -Patch65: fix-bad-memory-access.patch -# PATCH-FIX-UPSTREAM fix-dbus-crash.patch fcrozat@suse.com -- fix D-Bus caused crash -Patch66: fix-dbus-crash.patch -# PATCH-FIX-UPSTREAM sync-on-shutdown.patch fcrozat@suse.com -- Sync on shutdown -Patch67: sync-on-shutdown.patch -# PATCH-FIX-UPSTREAM mount-efivars.patch fcrozat@suse.com -- mount efivars if booting under UEFI -Patch68: mount-efivars.patch -# PATCH-FIX-UPSTREAM switch-root-try-pivot-root.patch fcrozat@suse.com -- try pivot_root before overmounting / -Patch69: switch-root-try-pivot-root.patch -# PATCH-FIX-UPSTREAM remount-ro-before-unmount.patch fcrozat@suse.com -- remount ro before unmounting in final shutdown loop -Patch70: remount-ro-before-unmount.patch -# PATCH-FIX-UPSTREAM revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch crrodriguez@opensuse.org -- do not consider failure to umount / and /usr an error. -Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch -# PATCH-FIX-UPSTREAM detect-btrfs-ssd.patch crrodriguez@opensuse.org -- fix BTRFS detection on systemd-readhead -Patch74: detect-btrfs-ssd.patch -# PATCH-FIX-UPSTREAM timedated-donot-close-bogus-dbus-connection.patch crrodriguez@opensuse.org -- Fix assertion failure when dbus is gone. -Patch75: timedated-donot-close-bogus-dbus-connection.patch -# PATCH-FIX-UPSTREAM journalctl-remove-leftover-message.patch fcrozat@suse.com -- remove debug message in systemctl -Patch78: journalctl-remove-leftover-message.patch -# PATCH-FIX-UPSTREAM job-avoid-recursion-when-cancelling.patch fcrozat@suse.com -- prevent potential recursion when cancelling a service -Patch79: job-avoid-recursion-when-cancelling.patch -# PATCH-FIX-UPSTREAM sysctl-parse-all-keys.patch fcrozat@suse.com -- ensure sysctl file is fully parsed -Patch80: sysctl-parse-all-keys.patch -# PATCH-FIX-UPSTREAM journal-fix-cutoff-max-date.patch fcrozat@suse.com -- fix computation of cutoff max date for journal -Patch81: journal-fix-cutoff-max-date.patch -# PATCH-FIX-UPSTREAM reword-rescue-mode-hints.patch fcrozat@suse.com -- reword rescue prompt -Patch82: reword-rescue-mode-hints.patch -# PATCH-FIX-UPSTREAM improve-overflow-checks.patch fcrozat@suse.com -- improve time overflow checks -Patch83: improve-overflow-checks.patch -# PATCH-FIX-UPSTREAM fix-swap-behaviour-with-symlinks.patch fcrozat@suse.com -- fix swap behaviour with symlinks -Patch84: fix-swap-behaviour-with-symlinks.patch -# PATCH-FIX-UPSTREAM hostnamectl-fix-set-hostname-with-no-argument.patch fcrozat@suse.com -- ensure hostnamectl requires an argument when called with set-hostname option -Patch85: hostnamectl-fix-set-hostname-with-no-argument.patch -# PATCH-FIX-UPSTREAM agetty-overrides-term.patch fcrozat@suse.com -- pass correctly terminal type to agetty -Patch86: agetty-overrides-term.patch -# PATCH-FIX-UPSTREAM check-for-empty-strings-in-strto-conversions.patch fcrozat@suse.com -- better check for empty strings in strto* conversions -Patch87: check-for-empty-strings-in-strto-conversions.patch -# PATCH-FIX-UPSTREAM strv-cleanup-error-path-loops.patch fcrozat@suse.com -- cleanup strv on error path -Patch88: strv-cleanup-error-path-loops.patch -# PATCH-FIX-UPSTREAM cryptsetup-handle-plain.patch fcrozat@suse.com -- correctly handle "plain" option in cryptsetup -Patch89: cryptsetup-handle-plain.patch -# PATCH-FIX-UPSTREAM fstab-generator-improve-error-message.patch fcrozat@suse.com -- improve error message in fstab-generator -Patch90: fstab-generator-improve-error-message.patch -# PATCH-FIX-UPSTREAM delta-accept-t-option.patch fcrozat@suse.com -- accept -t option in systemd-delta -Patch91: delta-accept-t-option.patch -# PATCH-FIX-UPSTREAM highlight-ordering-cycle-deletions.patch fcrozat@suse.com -- highlight ordering cycle deletions in logs -Patch92: highlight-ordering-cycle-deletions.patch -# PATCH-FIX-UPSTREAM core-interpret-escaped-semicolon-as-escaped.patch fcrozat@suse.com -- accept \; in ExecStart -Patch93: core-interpret-escaped-semicolon-as-escaped.patch -# PATCH-FIX-UPSTREAM hostnamectl-fix-parsing-no-ask-password.patch fcrozat@suse.com -- accept no-ask-password in hostnamectl -Patch94: hostnamectl-fix-parsing-no-ask-password.patch -# PATCH-FIX-UPSTREAM systemd-cgls-fix-piping-output.patch fcrozat@suse.com -- fix piping output of systemd-cgls -Patch95: systemd-cgls-fix-piping-output.patch -# PATCH-FIX-UPSTREAM core-load-fragment-improve-error-message.patch fcrozat@suse.com -- improve error message when parsing fragments -Patch96: core-load-fragment-improve-error-message.patch -# PATCH-FIX-UPSTREAM fix-potential-bad-mem-access.patch fcrozat@suse.com -- fix potential bad memory access -Patch97: fix-potential-bad-mem-access.patch -# PATCH-FIX-UPSTREAM socket-improve-error-message.patch fcrozat@suse.com -- improve error message in socket handling -Patch98: socket-improve-error-message.patch -# PATCH-FIX-UPSTREAM journal-send-always-send-syslog_identifier.patch fcrozat@suse.com -- always send syslog_identifier if available for journal -Patch99: journal-send-always-send-syslog_identifier.patch -# PATCH-FIX-UPSTREAM crypsetup-handle-nofail.patch fcrozat@suse.com -- handle nofail in cryptsetup -Patch100: crypsetup-handle-nofail.patch -# PATCH-FIX-UPSTREAM crypsetup-generator-state-file-name-in-error-message.patch fcrozat@suse.com -- add filename in error message from crypsetup-generator -Patch101: crypsetup-generator-state-file-name-in-error-message.patch -# PATCH-FIX-UPSTREAM fstab-generator-error-message-on-duplicates.patch fcrozat@suse.com -- improve error message on duplicate in fstab-generator -Patch102: fstab-generator-error-message-on-duplicates.patch -# PATCH-FIX-UPSTREAM systemctl-verbose-message-on-missing-install.patch fcrozat@suse.com -- reword missing install error message in systemctl -Patch103: systemctl-verbose-message-on-missing-install.patch -# PATCH-FIX-UPSTREAM shutdown-improvements.patch fcrozat@suse.com -- various improvements at shutdown -Patch104: shutdown-improvements.patch -# PATCH-FIX-UPSTREAM localectl-fix-assertion.patch fcrozat@suse.com -- fix assertion in localectl -Patch105: localectl-fix-assertion.patch -# PATCH-FIX-UPSTREAM path-util-fix-potential-crash.patch fcrozat@suse.com -- fix potential crash in path-util -Patch106: path-util-fix-potential-crash.patch -# PATCH-FIX-UPSTREAM coredumpctl-fix-crash.patch fcrozat@suse.com -- fix crash in coredumpctl -Patch107: coredumpctl-fix-crash.patch -# PATCH-FIX-UPSTREAM socket-verbose-error-message.patch fcrozat@suse.com -- add more verbose error message in socket handling -Patch108: socket-verbose-error-message.patch -# PATCH-FIX-UPSTREAM pam-properly-handle-ssh-logins-without-pam-tty-field.patch fcrozat@suse.com -- handle properly ssh-logins without pam tty field -Patch109: pam-properly-handle-ssh-logins-without-pam-tty-field.patch -# PATCH-FIX-UPSTREAM fstab-generator-properly-detect-bind-mounts.patch fcrozat@suse.com -- properly detect bind-mounts in fstab-generator -Patch110: fstab-generator-properly-detect-bind-mounts.patch -# PATCH-FIX-UPSTREAM localectl-support-systems-without-locale-archive.patch fcrozat@suse.com -- localectl now supports systemd without locale-archive file -Patch111: localectl-support-systems-without-locale-archive.patch -# PATCH-FIX-UPSTREAM logind-capability-making-seats-without-fb.patch fcrozat@suse.com -- allows capability of making seats without fb -Patch112: logind-capability-making-seats-without-fb.patch -# PATCH-FIX-UPSTREAM service-forking-ignore-exit-status-main-process.patch fcrozat@suse.com -- ignore exit-statis of main process when forking, if specified in unit file -Patch113: service-forking-ignore-exit-status-main-process.patch -# PATCH-FIX-UPSTREAM systemctl-no-assert-on-reboot-without-dbus.patch fcrozat@suse.com -- don't assert on reboot if dbus isn't there -Patch114: systemctl-no-assert-on-reboot-without-dbus.patch -# PATCH-FIX-UPSTREAM logind-ignore-non-tty-non-x11-session-on-shutdown.patch fcrozat@suse.com -- ignore non tty non-x11 session on shutdown -Patch115: logind-ignore-non-tty-non-x11-session-on-shutdown.patch -# PATCH-FIX-UPSTREAM journalctl-quit-on-io-error.patch fcrozat@suse.com -- fix journalctl quit on io error -Patch116: journalctl-quit-on-io-error.patch -# PATCH-FIX-UPSTREAM do-not-make-sockets-dependent-on-lo.patch fcrozat@suse.com -- do not make sockets dependent on lo interface -Patch117: do-not-make-sockets-dependent-on-lo.patch -# PATCH-FIX-UPSTREAM shutdown-dont-force-mnt-force-on-final-umount.patch fcrozat@suse.com -- don't force MNT_FORCE on final umount at shutdown -Patch118: shutdown-dont-force-mnt-force-on-final-umount.patch -# PATCH-FIX-UPSTREAM shutdown-ignore-loop-devices-without-backing-file.patch fcrozat@suse.com -- ignore loop devices without backing file at shutdown -Patch119: shutdown-ignore-loop-devices-without-backing-file.patch -# PATCH-FIX-UPSTREAM fix-bad-mem-access.patch fcrozat@suse.com -- fix bad memory access -Patch120: fix-bad-mem-access.patch -# PATCH-FIX-UPSTREAM parse-multiline-env-file.patch fcrozat@suse.com bnc#793411 -- correctly parse multiline environment files -Patch121: parse-multiline-env-file.patch -# PATCH-FIX-UPSTREAM improve-man-environment.patch fcrozat@suse.com -- improve Environment section in manpage -Patch122: improve-man-environment.patch -# PATCH-FIX-UPSTREAM tmpfiles-X-type.patch fcrozat@suse.com -- allow to clean directories with removing them -Patch123: tmpfiles-X-type.patch -# PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies -Patch124: systemd-fix-merge-ignore-dependencies.patch -# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority -Patch125: journalctl-require-argument-for-priority -# PATCH-FIX-UPSTREAM cryptsetup-accept-read-only.patch fcrozat@suse.com -- Accept read-only as well as readonly as parameters for crypttab -Patch126: cryptsetup-accept-read-only.patch # PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) -Patch127: disable-nss-myhostname-warning-bnc-783841.diff -# PATCH-FIX-UPSTREAM early-sync-shutdown.patch fcrozat@suse.com -- Start sync on shutdown early -Patch128: early-sync-shutdown.patch +Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) -Patch129: handle-HOSTNAME.patch -# PATCH-FIX-UPSTREAM systemctl-print-wall-on-if-successful.patch fcrozat@suse.com -- Only print on wall if successful -Patch130: systemctl-print-wall-on-if-successful.patch -# PATCH-FIX-UPSTREAM improve-bash-completion.patch fcrozat@suse.com -- improve bash completion -Patch131: improve-bash-completion.patch -# PATCH-FIX-UPSTREAM improve-journal-perf.patch fcrozat@suse.com -- improve journal performance -Patch132: improve-journal-perf.patch -# PATCH-FIX-UPSTREAM support-hybrid-suspend.patch fcrozat@suse.com -- support hybrid suspend -Patch133: support-hybrid-suspend.patch -# PATCH-FIX-OPENSUSE forward-to-pmutils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils -Patch134: forward-to-pmutils.patch -# PATCH-FIX-UPSTREAM rbind-mount.patch fcrozat@suse.com bnc#804575 -- Handle rbind mount point correctly -Patch135: rbind-mount.patch +Patch24: handle-etc-HOSTNAME.patch +# PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils +Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch +# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind +Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -295,45 +180,13 @@ Patch1004: 1004-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-udev-fix-sg-autoload-regression.patch Patch1005: 1005-udev-fix-sg-autoload-regression.patch # PATCH-FIX-OPENSUSE 1007-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1006: 1006-fix-devname-prefix.patch -# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch -Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch -# PATCH-FIX-UPSTREAM 1008-udev-path_id-handle-Hyper-V-devices.patch -Patch1008: 1008-udev-path_id-handle-Hyper-V-devices.patch -# PATCH-FIX-UPSTREAM 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch -Patch1009: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch -# PATCH-FIX-UPSTREAM 1010-keymap-Add-Samsung-700T.patch -Patch1010: 1010-keymap-Add-Samsung-700T.patch -# PATCH-FIX-UPSTREAM 1011-libudev-avoid-leak-during-realloc-failure.patch -Patch1011: 1011-libudev-avoid-leak-during-realloc-failure.patch -# PATCH-FIX-UPSTREAM 1012-libudev-do-not-resolve-attr-device-symlinks.patch -Patch1012: 1012-libudev-do-not-resolve-attr-device-symlinks.patch -# PATCH-FIX-UPSTREAM 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch -Patch1013: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch -# PATCH-FIX-UPSTREAM 1014-udev-fix-whitespace.patch -Patch1014: 1014-udev-fix-whitespace.patch -# PATCH-FIX-UPSTREAM 1015-udev-properly-handle-symlink-removal-by-change-event.patch -Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch -# PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch -Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch -# PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch -Patch1017: 1017-udev-use-usec_t-and-now.patch -# PATCH-FIX-UPSTREAM 1018-keymap-add-aditional-support.patch -Patch1018: 1018-keymap-add-aditional-support.patch -# PATCH-FIX-UPSTREAM 1019-udev-Fix-device-matching-in-the-accelerometer.patch -Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch -# PATCH-FIX-OPENSUSE 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch -Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +Patch1007: 1007-fix-devname-prefix.patch # PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-UPSTREAM 1022-udev-use-unique-names-for-temporary-files-created-in.patch -Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch -# PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch -Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch -# PATCH-FIX-UPSTREAM 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch -Patch1024: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch -# PATCH-FIX-UPSTREAM 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch -Patch1025: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch +# PATCH-FIX-OPENSUSE 1026-re-add-persistent-net.patch +Patch1026: 1026-re-add-persistent-net.patch +# PATCH-FIX-OPENSUSE 1027-udev-always-rename-network.patch +Patch1027: 1027-udev-always-rename-network.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -368,22 +221,6 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. -%package analyze -Summary: Tool for processing systemd profiling information -License: LGPL-2.1+ -Group: System/Base -Requires: %{name} = %{version} -Requires: dbus-1-python -Requires: python-cairo -# for the systemd-analyze split: -Conflicts: systemd < 44-10 - -%description analyze -'systemd-analyze blame' lists which systemd unit needed how much time to finish -initialization at boot. -'systemd-analyze plot' renders an SVG visualizing the parallel start of units -at boot. - %package -n %{udevpkgname} Summary: A rule-based device node and kernel event manager License: GPL-2.0 @@ -401,6 +238,7 @@ Requires: filesystem %if 0%{?bootstrap} Provides: udev = %{version} Conflicts: libudev%{udev_major} = %{version} +Conflicts: udev %endif %description -n %{udevpkgname} @@ -433,6 +271,7 @@ Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version} Conflicts: libudev%{udev_major} = %{version} +Conflicts: libudev-devel %endif %description -n lib%{udevpkgname}-devel @@ -483,6 +322,33 @@ Conflicts: otherproviders(syslog) %description logger This package marks the installation to not use syslog but only the journal. +%package -n nss-myhostname +Summary: Plugin for local system host name resolution +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-myhostname +nss-myhostname is a plugin for the GNU Name Service Switch (NSS) +functionality of the GNU C Library (glibc) providing host name +resolution for the locally configured system hostname as returned by +gethostname(2). Various software relies on an always resolvable local +host name. When using dynamic hostnames this is usually achieved by +patching /etc/hosts at the same time as changing the host name. This +however is not ideal since it requires a writable /etc file system and +is fragile because the file might be edited by the administrator at +the same time. nss-myhostname simply returns all locally +configured public IP addresses, or -- if none are configured -- +the IPv4 address 127.0.0.2 (wich is on the local loopback) and the +IPv6 address ::1 (which is the local host) for whatever system +hostname is configured locally. Patching /etc/hosts is thus no +longer necessary. + +Note that nss-myhostname only provides a workaround for broken +software. If nss-myhostname is trigged by an application a message +is logged to /var/log/messages. Please check whether that's worth +a bug report then. +This package marks the installation to not use syslog but only the journal. + %endif %prep @@ -499,144 +365,64 @@ cp %{SOURCE7} m4/ %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1006 -p1 %patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 %patch1021 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 #systemd +%patch0 -p1 %patch1 -p1 -%patch6 -p1 +%patch2 -p1 +%patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} -%patch7 -p1 +%patch4 -p1 %endif +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %patch8 -p1 +%patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 %patch13 -p1 +%patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 -%patch31 -p1 -%patch33 -p1 -%patch36 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch37 -p1 %patch38 -p1 -%patch53 -p1 -%patch56 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 -%patch84 -p1 -%patch85 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 -%patch93 -p1 -%patch94 -p1 -%patch95 -p1 -%patch96 -p1 -%patch97 -p1 -%patch98 -p1 -%patch99 -p1 -%patch100 -p1 -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 -%patch111 -p1 -%patch112 -p1 -%patch113 -p1 -%patch114 -p1 -%patch115 -p1 -%patch116 -p1 -%patch117 -p1 -%patch118 -p1 -%patch119 -p1 -%patch120 -p1 -%patch121 -p1 -%patch122 -p1 -%patch123 -p1 -%patch124 -p1 -%patch125 -p1 -%patch126 -p1 -%patch127 -p1 -%patch128 -p1 -%patch129 -p1 -%patch130 -p1 -%patch131 -p1 -%patch132 -p1 -%patch133 -p1 -%patch134 -p1 -%patch135 -p1 +%patch39 -p1 %build autoreconf -fiv -# to remove after upgrading to systemd 196+ -rm -f man/{systemd.exec.5,logind.conf.5,systemctl.1,systemd-suspend.service.8,systemd.special.7,tmpfiles.d.5} # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 # keep split-usr until all packages have moved their systemd rules to /usr %configure \ - --with-distro=suse \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ %if 0%{?bootstrap} --disable-gudev \ + --disable-myhostname \ %else --enable-manpages \ --enable-gtk-doc \ + --with-nss-my-hostname-warning \ %endif --enable-selinux \ --enable-split-usr \ @@ -647,6 +433,11 @@ make %{?_smp_mflags} %install %makeinstall +# move to %{_lib} +%if ! 0%{?bootstrap} +mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} +%endif + mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password @@ -655,10 +446,10 @@ ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 %endif -mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware %if ! 0%{?bootstrap} install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} @@ -673,8 +464,6 @@ install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -#workaround for 716939 -chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete @@ -722,7 +511,7 @@ rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the # journal. -rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf +rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/50-coredump.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README @@ -742,6 +531,13 @@ ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one mkdir -p %{buildroot}/var/log/journal +# Make sure directories in /var exist +mkdir -p %{buildroot}/var/lib/systemd/coredump +mkdir -p %{buildroot}/var/lib/systemd/catalog +#create ghost databases +touch %{buildroot}/var/lib/systemd/catalog/database +touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin + # Make sure the NTP units dir exists mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ @@ -752,7 +548,6 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ # Make sure these directories are properly owned mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants src="%buildroot/%_libexecdir/systemd/system/getty@.service" dst="${src/@/@tty1}" @@ -761,8 +556,15 @@ perl -i -pe 's{^# the VT is cleared.*}{}i;s{(^TTYVTDisallocate=.*)}{}' "$dst" %fdupes -s %{buildroot}%{_mandir} +# disable predictable network interface naming until it has been reviewed by network team +cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/network.conf +F /run/udev/rules.d/80-net-name-slot.rules 0644 - - - "#disable predictable network interface naming for now" +EOF + %pre -getent group adm >/dev/null || groupadd -r adm +getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : exit 0 %post @@ -771,6 +573,7 @@ exit 0 /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : +/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -841,6 +644,7 @@ if test -f /proc/1/exe -a -d /proc/1/root ; then fi %post -n %{udevpkgname} +/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : %{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ @@ -900,6 +704,15 @@ if [ "$1" -eq 1 ]; then systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : fi +%preun -n nss-myhostname +if [ "$1" -eq 0 -a -f /etc/nsswitch.conf ] ; then + %{_sbindir}/nss-myhostname-config --disable +fi + +%post -n nss-myhostname -p /sbin/ldconfig + +%postun -n nss-myhostname -p /sbin/ldconfig + %endif %clean @@ -910,9 +723,12 @@ fi /bin/systemd /bin/systemd-ask-password /bin/systemctl +%{_bindir}/bootctl +%{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl %{_bindir}/systemctl +%{_bindir}/systemd-analyze %{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta %{_bindir}/systemd-notify @@ -958,6 +774,9 @@ fi %exclude %{_prefix}/lib/systemd/systemd-udevd %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd +%dir %{_prefix}/lib/systemd/catalog +%{_prefix}/lib/systemd/catalog/systemd.catalog +%dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset @@ -968,10 +787,10 @@ fi %dir %{_prefix}/lib/systemd/system-sleep/ %dir %{_prefix}/lib/systemd/system/default.target.wants %dir %{_prefix}/lib/systemd/system/dbus.target.wants -%dir %{_prefix}/lib/systemd/system/syslog.target.wants %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif +%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator @@ -989,6 +808,7 @@ fi %dir %{_sysconfdir}/binfmt.d %dir %{_libexecdir}/sysctl.d +%{_libexecdir}/sysctl.d/50-default.conf %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/systemd @@ -996,6 +816,7 @@ fi %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/xdg/systemd/user +%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf @@ -1036,9 +857,6 @@ fi %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* -# Packaged in analyze subpackage -%exclude %{_mandir}/man1/systemd-analyze.1* - %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -1056,12 +874,16 @@ fi %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%dir %{_sysconfdir}/bash_completion.d -%{_sysconfdir}/bash_completion.d/systemd-bash-completion.sh +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%ghost /var/lib/systemd/catalog/database +%{_datadir}/bash-completion/completions/* %{_sysconfdir}/rpm/macros.systemd %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated +%dir /var/lib/systemd/catalog +%dir /var/lib/systemd/coredump %files devel %defattr(-,root,root,-) @@ -1101,13 +923,6 @@ fi %{_mandir}/man8/runlevel.8* %endif -%files analyze -%defattr(-,root,root) -%attr(0755,root,root) /usr/bin/systemd-analyze -%if ! 0%{?bootstrap} -%{_mandir}/man1/systemd-analyze.1* -%endif - %files -n %{udevpkgname} %defattr(-,root,root) /sbin/udevd @@ -1127,6 +942,8 @@ fi %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule +%{_prefix}/lib/udev/write_net_rules +%{_prefix}/lib/udev/rule_generator.functions %dir %{_prefix}/lib/udev/keymaps %{_prefix}/lib/udev/keymaps/* %{_prefix}/lib/udev/keyboard-force-release.sh @@ -1137,9 +954,12 @@ fi %exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules %{_prefix}/lib/udev/rules.d/*.rules +%dir %{_prefix}/lib/udev/hwdb.d +%{_prefix}/lib/udev/hwdb.d/* %{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ +%ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %{_sysconfdir}/udev/udev.conf %if ! 0%{?bootstrap} %{_mandir}/man?/*udev*.[0-9]* @@ -1200,6 +1020,11 @@ fi /var/log/README /etc/init.d/systemd-journald +%files -n nss-myhostname +%defattr(-, root, root) +%{_sbindir}/nss-myhostname-config +/%{_lib}/*nss_myhostname* + %endif %changelog diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index a9db8b52..219445d9 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -15,3 +15,4 @@ addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") +addFilter("nss-myhostname.*shlib-policy-name-error.*") diff --git a/systemd-sysv-convert b/systemd-sysv-convert index 3645f435..ef38cbff 100644 --- a/systemd-sysv-convert +++ b/systemd-sysv-convert @@ -18,7 +18,7 @@ EOF help() { usage cat << EOF -Save and Restore SusV Service Runlevel Information +Save and Restore SysV Service Runlevel Information positional arguments: SERVICE Service names @@ -62,6 +62,7 @@ fi lookup_database() { local services local service +local service_file local runlevel local priority local -i k @@ -147,22 +148,25 @@ case "$1" in shift services=$@ for service in $services; do - if [ ! -f "/lib/systemd/system/$service.service" ]; then + if [ ! -f "/lib/systemd/system/$service.service" -a ! -f "/usr/lib/systemd/system/$service.service" ]; then echo systemd service $service.service does not exist. >/dev/stderr exit 1 fi done lookup_database $services for service in $services; do + [ -f "/lib/systemd/system/$service.service" ] && service_file="/lib/systemd/system/$service.service" + [ -f "/usr/lib/systemd/system/$service.service" ] && service_file="/usr/lib/systemd/system/$service.service" + if [ -z "${results_runlevel[$service]}" ]; then echo No information found about service $service found. >/dev/stderr fail=1 continue fi for runlevel in ${results_runlevel[$service]}; do - echo ln -sf /lib/systemd/system/$service.service /etc/systemd/system/runlevel$runlevel.target.wants/$service.service >/dev/stderr + echo ln -sf $service_file /etc/systemd/system/runlevel$runlevel.target.wants/$service.service >/dev/stderr mkdir -p "/etc/systemd/system/runlevel$runlevel.target.wants" - /bin/ln -sf /lib/systemd/system/$service.service /etc/systemd/system/runlevel$runlevel.target.wants/$service.service + /bin/ln -sf $service_file /etc/systemd/system/runlevel$runlevel.target.wants/$service.service done done diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch new file mode 100644 index 00000000..4c957df7 --- /dev/null +++ b/systemd-tmp-safe-defaults.patch @@ -0,0 +1,26 @@ +From: Reinhard Max +Date: Fri, 19 Apr 2013 16:12:28 +0200 +Subject: systemd tmp safe defaults + +Fix regression in the default for tmp auto-deletion (FATE#314974). +SUSE policy is to not clean /tmp by default. +--- + tmpfiles.d/tmp.conf | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/tmpfiles.d/tmp.conf b/tmpfiles.d/tmp.conf +index 3b534a1..99eb6f2 100644 +--- a/tmpfiles.d/tmp.conf ++++ b/tmpfiles.d/tmp.conf +@@ -8,8 +8,9 @@ + # See tmpfiles.d(5) for details + + # Clear tmp directories separately, to make them easier to override +-d /tmp 1777 root root 10d +-d /var/tmp 1777 root root 30d ++# SUSE policy: we don't clean those directories ++d /tmp 1777 root root - ++d /var/tmp 1777 root root - + + # Exclude namespace mountpoints created with PrivateTmp=yes + x /tmp/systemd-private-* diff --git a/systemd.changes b/systemd.changes index 83663a86..6de94b11 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,223 @@ +------------------------------------------------------------------- +Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com + +- Do not provide %{release} for systemd-analyze +- Add more conflicts to -mini packages +- Disable Predictable Network interface names until it has been + reviewed by network team, with /usr/lib/tmpfiles.d/network.conf. +- Don't package /usr/lib/firmware/update (not used) + +------------------------------------------------------------------- +Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org + +- Fix packaging error, there is no syslog.target anymore + do not pretend there is one. + +------------------------------------------------------------------- +Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com + +- Update to release 202: + + 'systemctl list-jobs' got some polishing. '--type=' argument + may now be passed more than once. 'systemctl list-sockets' has + been added. + + systemd gained a new unit 'systemd-static-nodes.service' +    that generates static device nodes earlier during boot, and +    can run in conjunction with udev. + + systemd-nspawn now places all containers in the new /machine +    top-level cgroup directory in the name=systemd hierarchy. + + bootchart can now store its data in the journal. + + journactl can now take multiple --unit= and --user-unit= +    switches. + + The cryptsetup logic now understands the "luks.key=" kernel +    command line switch. If a configured key file is missing, it + will fallback to prompting the user. +- Rebase some patches +- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to + properly handle SYSTEMCTL_OPTIONS + +------------------------------------------------------------------- +Fri Apr 19 12:47:13 UTC 2013 - max@suse.com + +- Fix regression in the default for tmp auto-deletion + (systemd-tmp-safe-defaults.patch, FATE#314974). + +------------------------------------------------------------------- +Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com + +- Update to release 201: + + udev now supports different nameng policies for network + interface for predictable names. + + udev gained support for loading additional device properties + from an indexed database. %udev_hwdb_update macro should be + used by packages adding entries to this database. + + Journal gained support for "Message Catalog", indexed database + to link up additional information with journal entries. + %journal_catalog_update macro should be used by packages adding + %entries to this database. + + "age" field for tmpfiles entries can be set to 0, forcing + removal of files matching this entry. + + coredumpctl gained "gdb" verb to invoke gdb on selected + coredump. + + New rpm macros has been added: %udev_rules_update(), + %_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir, + %_tmpfilesdir, %_sysctldir. + + In service files, %U can be used for configured user name of + the service. + + nspawn can be invoked without a controlling TTY. + + systemd and nspawn can accept socket file descriptors when + started for socket activation. This allow socket activated + nspawn containers. + + logind can now automatically suspend/hibernate/shutdown system + on idle. + + ConditionACPower can be used in unit file to detect if AC power + source is connected or if system is on battery power. + + EnvironmentFile= in unit files supports file globbing. + + Behaviour of PrivateTmp=, ReadWriteDirectories=, + ReadOnlyDirectories= and InaccessibleDirectories= has + changed. The private /tmp and /var/tmp directories are now + shared by all processes of a service (which means + ExecStartPre= may now leave data in /tmp that ExecStart= of + the same service can still access). When a service is + stopped its temporary directories are immediately deleted + (normal clean-up with tmpfiles is still done in addition to + this though). + + Resource limits (as exposed by cgroup controlers) can be + controlled dynamically at runtime for all units, using + "systemctl set-cgroup-attr foobar.server cgroup.attribute + value". Those settings are stored persistenly on disk. + + systemd-vconsole-setup will now copy all fonts settings to all + allocated VTs. + + timedated now exposes CanNTP property to indicate if a local + NTP service is available. + + pstore file system is mounted by default, if available. + + SMACK policies are loaded at early boot, if available. + + Timer units now support calendar time events. + + systemd-detect-virt detect xen PVs. + + Some distributions specific LSB targets has been dropped: + $x-display-manager, $mail-transfer-agent, + $mail-transport-agent, $mail-transfer-agent, $smtp, $null. As + well mail-transfer-agent.target and syslog.target has been + removed. + + systemd-journal-gatewayd gained SSL support and now runs as + unprivileged user/group + "systemd-journal-gateway:systemd-journal-gateway" + + systemd-analyze will read, when available, boot time + performance from EFI variable from boot loader supporting it. + + A new generator for automatically mounting EFI System Partition + (ESP) to /boot (if empty and no other file system has been + configured in fstab for it). + + logind will now send out PrepareForSleep(false) out + unconditionally, after coming back from suspend. + + tmpfiles gained a new "X" line type, that allows + configuration of files and directories (with wildcards) that + shall be excluded from automatic cleanup ("aging"). + + udev default rules set the device node permissions now only + at "add" events, and do not change them any longer with a + later "change" event. + + A new bootctl tool has been added that is an interface for + certain EFI boot loader operations. + + A new tool kernel-install has been added to install kernel + images according to Boot Loader Specification. + + A new tool systemd-activate can be used to test socket + activation. + + A new group "systemd-journal" is now owning journal files, + replacing "adm" group. + + journalctl gained "--reverse" to show output in reverse order, + "--pager-end" to jump at the end of the journal in the + pager (only less is supported) and "--user-unit" to filter for + user units. + + New unit files has been addedto ease for systemd usage in + initrd. + + "systemctl start" now supports "--irreversible" to queue + operations which can be reserved. It is now used to make + shutdown requests more robust. + + Auke Kok's bootchart has been merged and relicensed to + LGPLv2.1+. + + nss-myhostname has been merged in systemd codebase. + + some defaults sysctl values are now set by default: the safe + sysrq options are turned on, IP route verification is turned + on, and source routing disabled. The recently added hardlink + and softlink protection of the kernel is turned on. + + Add support for predictable network naming logic. It can be + turned off with kernel command line switch: net.ifnames=0 + + journald will now explicitly flush journal files to disk at the + latest 5 min after each write and will mark file offline until + next read. This should increase reliability in case of crash. + + remote-fs-setup.target target has been added to pull in + specific services when at least one remote file system is to be + mounted. + + timers.target and paths.target have been added as canonical + targets to pull user timer and path units, similar to + sockets.targets. + + udev daemon now sets default number of worker processes in + parallel based on number of CPUs instead of RAM. + + Most unit file settings which takes likst of items can now be +reset by assigning empty string to them, using drop-in. + + Add support for drop-in configuration file for units. + + Most unit file settings which takes likst of items can now be + reset by assigning empty string to them, using drop-in. + + improve systemg-cgtop output. + + improve 'systemctl status' output for socket, drop-in for units. + + 'hostnamectl set-hostname' allows setting FQDN hostnames. + + fractional time intervals are now parsed properly. + + localectl can list available X11 keymaps. + + systemd-analyze dot can filter for specific units and has been + rewritten in C. + + systemctl gained "list-dependencies" command. + + Inhibitors are now honored no only in GNOME. +- Many patches has been dropped, being merged upstream. +- Many patches has been renamed and regenerated with git, to have + consistent naming, authorship and comments embedded. +- Add + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch: + re-add support for boot.* initscripts until they are all migrated + to systemd unit files. +- Merge patches for nss-myhostname package to this package. + +------------------------------------------------------------------- +Fri Apr 12 16:17:04 UTC 2013 - rschweikert@suse.com + +- Add chromebook lid switch as a power switch to logind rule to + enable suspend on lid close + +------------------------------------------------------------------- +Mon Apr 8 14:51:47 CEST 2013 - fcrozat@suse.com + +- Add improve-readahead-spinning.patch: improve readahead + performance on spinning media with ext4. +- Add fix-journal-vacuum-logic.patch: fix vacuum logic in journal + (bnc#789589). +- Add fix-lsb-provides.patch: ensure LSB provides are correctly + handled if also referenced as dependencies (bnc#809646). +- Add fix-loopback-mount.patch: ensure udevd is started (and + therefore static devices are created) before mounting + (bnc#809820). +- Update systemd-sysv-convert to search services files in new + location (bnc#809695). +- Add logind-nvidia-acl.diff: set ACL on nvidia devices + (bnc#808319). +- Add do-no-isolate-on-fsck-failure.patch: do not turn off services + if fsck fails (bnc#812874) +- Add wait-for-processes-killed.patch: wait for processes killed by + SIGTERM before killing them with SIGKILL. +- Update systemctl-options.patch to only apply SYSTEMCTL_OPTIONS to + systemctl command (bnc#801878). + +------------------------------------------------------------------- +Tue Apr 2 22:09:42 CEST 2013 - sbrabec@suse.cz + +- Fixed disabling CapsLock and enabling NumLock (bnc#746595, + 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch, + systemd-numlock-suse.patch). +- Explicitly require libgcrypt-devel to fix build failure. + +------------------------------------------------------------------- +Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com + +- udev: ensure that the network interfaces are renamed even if they + exist (bnc#809843). + add: 1027-udev-always-rename-network.patch + ------------------------------------------------------------------- Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index efa76c0a..298a3c97 100644 --- a/systemd.spec +++ b/systemd.spec @@ -23,7 +23,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 195 +Version: 202 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -57,6 +57,7 @@ BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} +BuildRequires: libgcrypt-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.4.2 %endif @@ -74,6 +75,7 @@ BuildRequires: pkgconfig(libsepol) BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} Requires: this-is-only-for-build-envs +Conflicts: systemd %else # the buildignore is important for bootstrapping #!BuildIgnore: udev @@ -89,6 +91,8 @@ Requires(post): findutils %endif Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 +Obsoletes: systemd-analyze < 201 +Provides: systemd-analyze = %{version} Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz Source1: systemd-rpmlintrc Source2: localfs.service @@ -98,185 +102,66 @@ Source5: systemd-insserv_conf Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init +Source9: nss-myhostname-config Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink +# Patches auto-generated by git-buildpackage: -Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch +# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r +Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +# PATCH-FIX-UPSTREAM ptionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called +Patch1: optionally-warn-if-nss-myhostname-is-called.patch +Patch2: Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings -Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch -Patch7: systemd-numlock-suse.patch -# don't start getty on tty1 until all password request are done -Patch8: tty1.patch -Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch -Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch -Patch15: support-sysvinit.patch -Patch16: modules_on_boot.patch -Patch22: new-lsb-headers.patch -Patch23: storage-after-cryptsetup.patch -Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch -Patch31: lock-opensuse.patch -Patch33: crypt-loop-file.patch -Patch36: sysctl-modules.patch -Patch38: dm-lvm-after-local-fs-pre-target.patch -Patch53: fastboot-forcefsck.patch -Patch56: support-suse-clock-sysconfig.patch -Patch59: fix-enable-disable-boot-initscript.patch -Patch60: var-run-lock.patch -Patch63: xdm-display-manager.patch -Patch64: fix-permissions-btmp.patch -# PATCH-FIX-UPSTREAM fix-debugshell.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available -Patch71: fix-debugshell.patch -# PATCH-FIX-OPENSUSE handle-root-uses-lang.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype -Patch72: handle-root-uses-lang.patch -# PATCH-FIX-OPENSUSE multiple-sulogin.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin -Patch76: multiple-sulogin.patch -# PATCH-FIX-OPENSUSE systemctl-options.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable -Patch77: systemctl-options.patch +Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch +Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch +Patch6: parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +Patch10: force-lvm-restart-after-cryptsetup-target-is-reached.patch +Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch +Patch14: ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch +Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +Patch18: fix-owner-of-var-log-btmp.patch + +# PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done +Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch +# PATCH-FIX-OPENSUSE Ensure-debugshell-has-a-correct-value.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available +Patch19: Ensure-debugshell-has-a-correct-value.patch +# PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype +Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch +# PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin +Patch21: allow-multiple-sulogin-to-be-started.patch +# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable +Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch +# PATCH-FIX-UPSTREAM ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch bnc#809820 fcrozat@suse.com -- loopback mount should be started after /dev/loop-control is available +Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch +# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices +Patch27: apply-ACL-for-nvidia-device-nodes.patch +# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts +Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch -- FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. +Patch39: systemd-tmp-safe-defaults.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM fix-logind-pty-seat.patch fcrozat@suse.com -- fix logind complaining when doing su/sudo in X terminal -Patch61: fix-logind-pty-seat.patch -# PATCH-FIX-UPSTREAM fix-build-glibc217.patch fcrozat@suse.com -- fix build with latest glibc -Patch62: fix-build-glibc217.patch -# PATCH-FIX-UPSTREAM fix-bad-memory-access.patch fcrozat@suse.com -- fix bad memory access -Patch65: fix-bad-memory-access.patch -# PATCH-FIX-UPSTREAM fix-dbus-crash.patch fcrozat@suse.com -- fix D-Bus caused crash -Patch66: fix-dbus-crash.patch -# PATCH-FIX-UPSTREAM sync-on-shutdown.patch fcrozat@suse.com -- Sync on shutdown -Patch67: sync-on-shutdown.patch -# PATCH-FIX-UPSTREAM mount-efivars.patch fcrozat@suse.com -- mount efivars if booting under UEFI -Patch68: mount-efivars.patch -# PATCH-FIX-UPSTREAM switch-root-try-pivot-root.patch fcrozat@suse.com -- try pivot_root before overmounting / -Patch69: switch-root-try-pivot-root.patch -# PATCH-FIX-UPSTREAM remount-ro-before-unmount.patch fcrozat@suse.com -- remount ro before unmounting in final shutdown loop -Patch70: remount-ro-before-unmount.patch -# PATCH-FIX-UPSTREAM revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch crrodriguez@opensuse.org -- do not consider failure to umount / and /usr an error. -Patch73: revert-of-9279749b84cc87c7830280b7895a48bed03c9429.patch -# PATCH-FIX-UPSTREAM detect-btrfs-ssd.patch crrodriguez@opensuse.org -- fix BTRFS detection on systemd-readhead -Patch74: detect-btrfs-ssd.patch -# PATCH-FIX-UPSTREAM timedated-donot-close-bogus-dbus-connection.patch crrodriguez@opensuse.org -- Fix assertion failure when dbus is gone. -Patch75: timedated-donot-close-bogus-dbus-connection.patch -# PATCH-FIX-UPSTREAM journalctl-remove-leftover-message.patch fcrozat@suse.com -- remove debug message in systemctl -Patch78: journalctl-remove-leftover-message.patch -# PATCH-FIX-UPSTREAM job-avoid-recursion-when-cancelling.patch fcrozat@suse.com -- prevent potential recursion when cancelling a service -Patch79: job-avoid-recursion-when-cancelling.patch -# PATCH-FIX-UPSTREAM sysctl-parse-all-keys.patch fcrozat@suse.com -- ensure sysctl file is fully parsed -Patch80: sysctl-parse-all-keys.patch -# PATCH-FIX-UPSTREAM journal-fix-cutoff-max-date.patch fcrozat@suse.com -- fix computation of cutoff max date for journal -Patch81: journal-fix-cutoff-max-date.patch -# PATCH-FIX-UPSTREAM reword-rescue-mode-hints.patch fcrozat@suse.com -- reword rescue prompt -Patch82: reword-rescue-mode-hints.patch -# PATCH-FIX-UPSTREAM improve-overflow-checks.patch fcrozat@suse.com -- improve time overflow checks -Patch83: improve-overflow-checks.patch -# PATCH-FIX-UPSTREAM fix-swap-behaviour-with-symlinks.patch fcrozat@suse.com -- fix swap behaviour with symlinks -Patch84: fix-swap-behaviour-with-symlinks.patch -# PATCH-FIX-UPSTREAM hostnamectl-fix-set-hostname-with-no-argument.patch fcrozat@suse.com -- ensure hostnamectl requires an argument when called with set-hostname option -Patch85: hostnamectl-fix-set-hostname-with-no-argument.patch -# PATCH-FIX-UPSTREAM agetty-overrides-term.patch fcrozat@suse.com -- pass correctly terminal type to agetty -Patch86: agetty-overrides-term.patch -# PATCH-FIX-UPSTREAM check-for-empty-strings-in-strto-conversions.patch fcrozat@suse.com -- better check for empty strings in strto* conversions -Patch87: check-for-empty-strings-in-strto-conversions.patch -# PATCH-FIX-UPSTREAM strv-cleanup-error-path-loops.patch fcrozat@suse.com -- cleanup strv on error path -Patch88: strv-cleanup-error-path-loops.patch -# PATCH-FIX-UPSTREAM cryptsetup-handle-plain.patch fcrozat@suse.com -- correctly handle "plain" option in cryptsetup -Patch89: cryptsetup-handle-plain.patch -# PATCH-FIX-UPSTREAM fstab-generator-improve-error-message.patch fcrozat@suse.com -- improve error message in fstab-generator -Patch90: fstab-generator-improve-error-message.patch -# PATCH-FIX-UPSTREAM delta-accept-t-option.patch fcrozat@suse.com -- accept -t option in systemd-delta -Patch91: delta-accept-t-option.patch -# PATCH-FIX-UPSTREAM highlight-ordering-cycle-deletions.patch fcrozat@suse.com -- highlight ordering cycle deletions in logs -Patch92: highlight-ordering-cycle-deletions.patch -# PATCH-FIX-UPSTREAM core-interpret-escaped-semicolon-as-escaped.patch fcrozat@suse.com -- accept \; in ExecStart -Patch93: core-interpret-escaped-semicolon-as-escaped.patch -# PATCH-FIX-UPSTREAM hostnamectl-fix-parsing-no-ask-password.patch fcrozat@suse.com -- accept no-ask-password in hostnamectl -Patch94: hostnamectl-fix-parsing-no-ask-password.patch -# PATCH-FIX-UPSTREAM systemd-cgls-fix-piping-output.patch fcrozat@suse.com -- fix piping output of systemd-cgls -Patch95: systemd-cgls-fix-piping-output.patch -# PATCH-FIX-UPSTREAM core-load-fragment-improve-error-message.patch fcrozat@suse.com -- improve error message when parsing fragments -Patch96: core-load-fragment-improve-error-message.patch -# PATCH-FIX-UPSTREAM fix-potential-bad-mem-access.patch fcrozat@suse.com -- fix potential bad memory access -Patch97: fix-potential-bad-mem-access.patch -# PATCH-FIX-UPSTREAM socket-improve-error-message.patch fcrozat@suse.com -- improve error message in socket handling -Patch98: socket-improve-error-message.patch -# PATCH-FIX-UPSTREAM journal-send-always-send-syslog_identifier.patch fcrozat@suse.com -- always send syslog_identifier if available for journal -Patch99: journal-send-always-send-syslog_identifier.patch -# PATCH-FIX-UPSTREAM crypsetup-handle-nofail.patch fcrozat@suse.com -- handle nofail in cryptsetup -Patch100: crypsetup-handle-nofail.patch -# PATCH-FIX-UPSTREAM crypsetup-generator-state-file-name-in-error-message.patch fcrozat@suse.com -- add filename in error message from crypsetup-generator -Patch101: crypsetup-generator-state-file-name-in-error-message.patch -# PATCH-FIX-UPSTREAM fstab-generator-error-message-on-duplicates.patch fcrozat@suse.com -- improve error message on duplicate in fstab-generator -Patch102: fstab-generator-error-message-on-duplicates.patch -# PATCH-FIX-UPSTREAM systemctl-verbose-message-on-missing-install.patch fcrozat@suse.com -- reword missing install error message in systemctl -Patch103: systemctl-verbose-message-on-missing-install.patch -# PATCH-FIX-UPSTREAM shutdown-improvements.patch fcrozat@suse.com -- various improvements at shutdown -Patch104: shutdown-improvements.patch -# PATCH-FIX-UPSTREAM localectl-fix-assertion.patch fcrozat@suse.com -- fix assertion in localectl -Patch105: localectl-fix-assertion.patch -# PATCH-FIX-UPSTREAM path-util-fix-potential-crash.patch fcrozat@suse.com -- fix potential crash in path-util -Patch106: path-util-fix-potential-crash.patch -# PATCH-FIX-UPSTREAM coredumpctl-fix-crash.patch fcrozat@suse.com -- fix crash in coredumpctl -Patch107: coredumpctl-fix-crash.patch -# PATCH-FIX-UPSTREAM socket-verbose-error-message.patch fcrozat@suse.com -- add more verbose error message in socket handling -Patch108: socket-verbose-error-message.patch -# PATCH-FIX-UPSTREAM pam-properly-handle-ssh-logins-without-pam-tty-field.patch fcrozat@suse.com -- handle properly ssh-logins without pam tty field -Patch109: pam-properly-handle-ssh-logins-without-pam-tty-field.patch -# PATCH-FIX-UPSTREAM fstab-generator-properly-detect-bind-mounts.patch fcrozat@suse.com -- properly detect bind-mounts in fstab-generator -Patch110: fstab-generator-properly-detect-bind-mounts.patch -# PATCH-FIX-UPSTREAM localectl-support-systems-without-locale-archive.patch fcrozat@suse.com -- localectl now supports systemd without locale-archive file -Patch111: localectl-support-systems-without-locale-archive.patch -# PATCH-FIX-UPSTREAM logind-capability-making-seats-without-fb.patch fcrozat@suse.com -- allows capability of making seats without fb -Patch112: logind-capability-making-seats-without-fb.patch -# PATCH-FIX-UPSTREAM service-forking-ignore-exit-status-main-process.patch fcrozat@suse.com -- ignore exit-statis of main process when forking, if specified in unit file -Patch113: service-forking-ignore-exit-status-main-process.patch -# PATCH-FIX-UPSTREAM systemctl-no-assert-on-reboot-without-dbus.patch fcrozat@suse.com -- don't assert on reboot if dbus isn't there -Patch114: systemctl-no-assert-on-reboot-without-dbus.patch -# PATCH-FIX-UPSTREAM logind-ignore-non-tty-non-x11-session-on-shutdown.patch fcrozat@suse.com -- ignore non tty non-x11 session on shutdown -Patch115: logind-ignore-non-tty-non-x11-session-on-shutdown.patch -# PATCH-FIX-UPSTREAM journalctl-quit-on-io-error.patch fcrozat@suse.com -- fix journalctl quit on io error -Patch116: journalctl-quit-on-io-error.patch -# PATCH-FIX-UPSTREAM do-not-make-sockets-dependent-on-lo.patch fcrozat@suse.com -- do not make sockets dependent on lo interface -Patch117: do-not-make-sockets-dependent-on-lo.patch -# PATCH-FIX-UPSTREAM shutdown-dont-force-mnt-force-on-final-umount.patch fcrozat@suse.com -- don't force MNT_FORCE on final umount at shutdown -Patch118: shutdown-dont-force-mnt-force-on-final-umount.patch -# PATCH-FIX-UPSTREAM shutdown-ignore-loop-devices-without-backing-file.patch fcrozat@suse.com -- ignore loop devices without backing file at shutdown -Patch119: shutdown-ignore-loop-devices-without-backing-file.patch -# PATCH-FIX-UPSTREAM fix-bad-mem-access.patch fcrozat@suse.com -- fix bad memory access -Patch120: fix-bad-mem-access.patch -# PATCH-FIX-UPSTREAM parse-multiline-env-file.patch fcrozat@suse.com bnc#793411 -- correctly parse multiline environment files -Patch121: parse-multiline-env-file.patch -# PATCH-FIX-UPSTREAM improve-man-environment.patch fcrozat@suse.com -- improve Environment section in manpage -Patch122: improve-man-environment.patch -# PATCH-FIX-UPSTREAM tmpfiles-X-type.patch fcrozat@suse.com -- allow to clean directories with removing them -Patch123: tmpfiles-X-type.patch -# PATCH-FIX-UPSTREAM systemd-fix-merge-ignore-dependencies.patch fcrozat@suse.com bnc#800365 -- fix merging with --ignore-dependencies waiting for dependencies -Patch124: systemd-fix-merge-ignore-dependencies.patch -# PATCH-FIX-UPSTREAM journalctl-require-argument-for-priority -Patch125: journalctl-require-argument-for-priority -# PATCH-FIX-UPSTREAM cryptsetup-accept-read-only.patch fcrozat@suse.com -- Accept read-only as well as readonly as parameters for crypttab -Patch126: cryptsetup-accept-read-only.patch # PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) -Patch127: disable-nss-myhostname-warning-bnc-783841.diff -# PATCH-FIX-UPSTREAM early-sync-shutdown.patch fcrozat@suse.com -- Start sync on shutdown early -Patch128: early-sync-shutdown.patch +Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) -Patch129: handle-HOSTNAME.patch -# PATCH-FIX-UPSTREAM systemctl-print-wall-on-if-successful.patch fcrozat@suse.com -- Only print on wall if successful -Patch130: systemctl-print-wall-on-if-successful.patch -# PATCH-FIX-UPSTREAM improve-bash-completion.patch fcrozat@suse.com -- improve bash completion -Patch131: improve-bash-completion.patch -# PATCH-FIX-UPSTREAM improve-journal-perf.patch fcrozat@suse.com -- improve journal performance -Patch132: improve-journal-perf.patch -# PATCH-FIX-UPSTREAM support-hybrid-suspend.patch fcrozat@suse.com -- support hybrid suspend -Patch133: support-hybrid-suspend.patch -# PATCH-FIX-OPENSUSE forward-to-pmutils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils -Patch134: forward-to-pmutils.patch -# PATCH-FIX-UPSTREAM rbind-mount.patch fcrozat@suse.com bnc#804575 -- Handle rbind mount point correctly -Patch135: rbind-mount.patch +Patch24: handle-etc-HOSTNAME.patch +# PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils +Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch +# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind +Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -290,47 +175,13 @@ Patch1004: 1004-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-udev-fix-sg-autoload-regression.patch Patch1005: 1005-udev-fix-sg-autoload-regression.patch # PATCH-FIX-OPENSUSE 1007-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1006: 1006-fix-devname-prefix.patch -# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch -Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch -# PATCH-FIX-UPSTREAM 1008-udev-path_id-handle-Hyper-V-devices.patch -Patch1008: 1008-udev-path_id-handle-Hyper-V-devices.patch -# PATCH-FIX-UPSTREAM 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch -Patch1009: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch -# PATCH-FIX-UPSTREAM 1010-keymap-Add-Samsung-700T.patch -Patch1010: 1010-keymap-Add-Samsung-700T.patch -# PATCH-FIX-UPSTREAM 1011-libudev-avoid-leak-during-realloc-failure.patch -Patch1011: 1011-libudev-avoid-leak-during-realloc-failure.patch -# PATCH-FIX-UPSTREAM 1012-libudev-do-not-resolve-attr-device-symlinks.patch -Patch1012: 1012-libudev-do-not-resolve-attr-device-symlinks.patch -# PATCH-FIX-UPSTREAM 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch -Patch1013: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch -# PATCH-FIX-UPSTREAM 1014-udev-fix-whitespace.patch -Patch1014: 1014-udev-fix-whitespace.patch -# PATCH-FIX-UPSTREAM 1015-udev-properly-handle-symlink-removal-by-change-event.patch -Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch -# PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch -Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch -# PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch -Patch1017: 1017-udev-use-usec_t-and-now.patch -# PATCH-FIX-UPSTREAM 1018-keymap-add-aditional-support.patch -Patch1018: 1018-keymap-add-aditional-support.patch -# PATCH-FIX-UPSTREAM 1019-udev-Fix-device-matching-in-the-accelerometer.patch -Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch -# PATCH-FIX-OPENSUSE 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch -Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch +Patch1007: 1007-fix-devname-prefix.patch # PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-UPSTREAM 1022-udev-use-unique-names-for-temporary-files-created-in.patch -Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch -# PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch -Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch -# PATCH-FIX-UPSTREAM 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch -Patch1024: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch -# PATCH-FIX-UPSTREAM 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch -Patch1025: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch # PATCH-FIX-OPENSUSE 1026-re-add-persistent-net.patch Patch1026: 1026-re-add-persistent-net.patch +# PATCH-FIX-OPENSUSE 1027-udev-always-rename-network.patch +Patch1027: 1027-udev-always-rename-network.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -365,22 +216,6 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. -%package analyze -Summary: Tool for processing systemd profiling information -License: LGPL-2.1+ -Group: System/Base -Requires: %{name} = %{version} -Requires: dbus-1-python -Requires: python-cairo -# for the systemd-analyze split: -Conflicts: systemd < 44-10 - -%description analyze -'systemd-analyze blame' lists which systemd unit needed how much time to finish -initialization at boot. -'systemd-analyze plot' renders an SVG visualizing the parallel start of units -at boot. - %package -n %{udevpkgname} Summary: A rule-based device node and kernel event manager License: GPL-2.0 @@ -398,6 +233,7 @@ Requires: filesystem %if 0%{?bootstrap} Provides: udev = %{version} Conflicts: libudev%{udev_major} = %{version} +Conflicts: udev %endif %description -n %{udevpkgname} @@ -430,6 +266,7 @@ Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version} Conflicts: libudev%{udev_major} = %{version} +Conflicts: libudev-devel %endif %description -n lib%{udevpkgname}-devel @@ -480,6 +317,33 @@ Conflicts: otherproviders(syslog) %description logger This package marks the installation to not use syslog but only the journal. +%package -n nss-myhostname +Summary: Plugin for local system host name resolution +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-myhostname +nss-myhostname is a plugin for the GNU Name Service Switch (NSS) +functionality of the GNU C Library (glibc) providing host name +resolution for the locally configured system hostname as returned by +gethostname(2). Various software relies on an always resolvable local +host name. When using dynamic hostnames this is usually achieved by +patching /etc/hosts at the same time as changing the host name. This +however is not ideal since it requires a writable /etc file system and +is fragile because the file might be edited by the administrator at +the same time. nss-myhostname simply returns all locally +configured public IP addresses, or -- if none are configured -- +the IPv4 address 127.0.0.2 (wich is on the local loopback) and the +IPv6 address ::1 (which is the local host) for whatever system +hostname is configured locally. Patching /etc/hosts is thus no +longer necessary. + +Note that nss-myhostname only provides a workaround for broken +software. If nss-myhostname is trigged by an application a message +is logged to /var/log/messages. Please check whether that's worth +a bug report then. +This package marks the installation to not use syslog but only the journal. + %endif %prep @@ -496,145 +360,64 @@ cp %{SOURCE7} m4/ %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1006 -p1 %patch1007 -p1 -%patch1008 -p1 -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 %patch1021 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 %patch1026 -p1 +%patch1027 -p1 #systemd +%patch0 -p1 %patch1 -p1 -%patch6 -p1 +%patch2 -p1 +%patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} -%patch7 -p1 +%patch4 -p1 %endif +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %patch8 -p1 +%patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 %patch13 -p1 +%patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 -%patch31 -p1 -%patch33 -p1 -%patch36 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch37 -p1 %patch38 -p1 -%patch53 -p1 -%patch56 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 -%patch84 -p1 -%patch85 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 -%patch93 -p1 -%patch94 -p1 -%patch95 -p1 -%patch96 -p1 -%patch97 -p1 -%patch98 -p1 -%patch99 -p1 -%patch100 -p1 -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 -%patch111 -p1 -%patch112 -p1 -%patch113 -p1 -%patch114 -p1 -%patch115 -p1 -%patch116 -p1 -%patch117 -p1 -%patch118 -p1 -%patch119 -p1 -%patch120 -p1 -%patch121 -p1 -%patch122 -p1 -%patch123 -p1 -%patch124 -p1 -%patch125 -p1 -%patch126 -p1 -%patch127 -p1 -%patch128 -p1 -%patch129 -p1 -%patch130 -p1 -%patch131 -p1 -%patch132 -p1 -%patch133 -p1 -%patch134 -p1 -%patch135 -p1 +%patch39 -p1 %build autoreconf -fiv -# to remove after upgrading to systemd 196+ -rm -f man/{systemd.exec.5,logind.conf.5,systemctl.1,systemd-suspend.service.8,systemd.special.7,tmpfiles.d.5} # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 # keep split-usr until all packages have moved their systemd rules to /usr %configure \ - --with-distro=suse \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ %if 0%{?bootstrap} --disable-gudev \ + --disable-myhostname \ %else --enable-manpages \ --enable-gtk-doc \ + --with-nss-my-hostname-warning \ %endif --enable-selinux \ --enable-split-usr \ @@ -645,6 +428,11 @@ make %{?_smp_mflags} %install %makeinstall +# move to %{_lib} +%if ! 0%{?bootstrap} +mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} +%endif + mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password @@ -653,10 +441,10 @@ ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 %endif -mkdir -p $RPM_BUILD_ROOT/%{_prefix}/usr/lib/firmware/updates ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware %if ! 0%{?bootstrap} install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} @@ -671,8 +459,6 @@ install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -#workaround for 716939 -chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete @@ -720,7 +506,7 @@ rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the # journal. -rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/coredump.conf +rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/50-coredump.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README @@ -740,6 +526,13 @@ ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one mkdir -p %{buildroot}/var/log/journal +# Make sure directories in /var exist +mkdir -p %{buildroot}/var/lib/systemd/coredump +mkdir -p %{buildroot}/var/lib/systemd/catalog +#create ghost databases +touch %{buildroot}/var/lib/systemd/catalog/database +touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin + # Make sure the NTP units dir exists mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ @@ -750,7 +543,6 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ # Make sure these directories are properly owned mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants -mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants src="%buildroot/%_libexecdir/systemd/system/getty@.service" dst="${src/@/@tty1}" @@ -759,8 +551,15 @@ perl -i -pe 's{^# the VT is cleared.*}{}i;s{(^TTYVTDisallocate=.*)}{}' "$dst" %fdupes -s %{buildroot}%{_mandir} +# disable predictable network interface naming until it has been reviewed by network team +cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/network.conf +F /run/udev/rules.d/80-net-name-slot.rules 0644 - - - "#disable predictable network interface naming for now" +EOF + %pre -getent group adm >/dev/null || groupadd -r adm +getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : exit 0 %post @@ -769,6 +568,7 @@ exit 0 /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : +/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -839,6 +639,7 @@ if test -f /proc/1/exe -a -d /proc/1/root ; then fi %post -n %{udevpkgname} +/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : %{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ @@ -898,6 +699,15 @@ if [ "$1" -eq 1 ]; then systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : fi +%preun -n nss-myhostname +if [ "$1" -eq 0 -a -f /etc/nsswitch.conf ] ; then + %{_sbindir}/nss-myhostname-config --disable +fi + +%post -n nss-myhostname -p /sbin/ldconfig + +%postun -n nss-myhostname -p /sbin/ldconfig + %endif %clean @@ -908,9 +718,12 @@ fi /bin/systemd /bin/systemd-ask-password /bin/systemctl +%{_bindir}/bootctl +%{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl %{_bindir}/systemctl +%{_bindir}/systemd-analyze %{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta %{_bindir}/systemd-notify @@ -956,6 +769,9 @@ fi %exclude %{_prefix}/lib/systemd/systemd-udevd %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd +%dir %{_prefix}/lib/systemd/catalog +%{_prefix}/lib/systemd/catalog/systemd.catalog +%dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset @@ -966,10 +782,10 @@ fi %dir %{_prefix}/lib/systemd/system-sleep/ %dir %{_prefix}/lib/systemd/system/default.target.wants %dir %{_prefix}/lib/systemd/system/dbus.target.wants -%dir %{_prefix}/lib/systemd/system/syslog.target.wants %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif +%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator @@ -987,6 +803,7 @@ fi %dir %{_sysconfdir}/binfmt.d %dir %{_libexecdir}/sysctl.d +%{_libexecdir}/sysctl.d/50-default.conf %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/systemd @@ -994,6 +811,7 @@ fi %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/xdg/systemd/user +%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf @@ -1034,9 +852,6 @@ fi %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* -# Packaged in analyze subpackage -%exclude %{_mandir}/man1/systemd-analyze.1* - %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -1054,12 +869,16 @@ fi %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%dir %{_sysconfdir}/bash_completion.d -%{_sysconfdir}/bash_completion.d/systemd-bash-completion.sh +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%ghost /var/lib/systemd/catalog/database +%{_datadir}/bash-completion/completions/* %{_sysconfdir}/rpm/macros.systemd %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated +%dir /var/lib/systemd/catalog +%dir /var/lib/systemd/coredump %files devel %defattr(-,root,root,-) @@ -1099,13 +918,6 @@ fi %{_mandir}/man8/runlevel.8* %endif -%files analyze -%defattr(-,root,root) -%attr(0755,root,root) /usr/bin/systemd-analyze -%if ! 0%{?bootstrap} -%{_mandir}/man1/systemd-analyze.1* -%endif - %files -n %{udevpkgname} %defattr(-,root,root) /sbin/udevd @@ -1137,9 +949,12 @@ fi %exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules %{_prefix}/lib/udev/rules.d/*.rules +%dir %{_prefix}/lib/udev/hwdb.d +%{_prefix}/lib/udev/hwdb.d/* %{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ +%ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %{_sysconfdir}/udev/udev.conf %if ! 0%{?bootstrap} %{_mandir}/man?/*udev*.[0-9]* @@ -1200,6 +1015,11 @@ fi /var/log/README /etc/init.d/systemd-journald +%files -n nss-myhostname +%defattr(-, root, root) +%{_sbindir}/nss-myhostname-config +/%{_lib}/*nss_myhostname* + %endif %changelog diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch new file mode 100644 index 00000000..8a67df99 --- /dev/null +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -0,0 +1,26 @@ +From: Frederic Crozat +Date: Tue, 14 Aug 2012 14:26:16 +0200 +Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock + +--- + src/timedate/timedated.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c +index cdb6e5b..7246452 100644 +--- a/src/timedate/timedated.c ++++ b/src/timedate/timedated.c +@@ -182,6 +182,13 @@ static int read_data(void) { + goto have_timezone; + } + } ++#ifdef HAVE_SYSV_COMPAT ++ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, ++ "TIMEZONE", &tz.zone, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); ++#endif + + have_timezone: + if (isempty(tz.zone)) { diff --git a/timedated-donot-close-bogus-dbus-connection.patch b/timedated-donot-close-bogus-dbus-connection.patch deleted file mode 100644 index 7757c346..00000000 --- a/timedated-donot-close-bogus-dbus-connection.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit b779821b8fdcb3f2bdd0c362bceaae3c76ed9678 -Author: Shawn Landden -Date: Mon Dec 3 00:50:55 2012 +0000 - - timedated: do not incorrectly close non-opened dbus connection - - Fix the fallowing error when no system dbus available: - - Failed to get system D-Bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory - process 14920: arguments to dbus_connection_close() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2889. - This is normally a bug in some application using the D-Bus library. - process 14920: arguments to dbus_connection_unref() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2776. - This is normally a bug in some application using the D-Bus library. - -Index: systemd-195/src/timedate/timedated.c -=================================================================== ---- systemd-195.orig/src/timedate/timedated.c -+++ systemd-195/src/timedate/timedated.c -@@ -943,7 +943,7 @@ static int connect_bus(DBusConnection ** - if (!bus) { - log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error)); - r = -ECONNREFUSED; -- goto fail; -+ goto fail2; - } - - dbus_connection_set_exit_on_disconnect(bus, FALSE); -@@ -975,7 +975,7 @@ static int connect_bus(DBusConnection ** - fail: - dbus_connection_close(bus); - dbus_connection_unref(bus); -- -+fail2: - dbus_error_free(&error); - - return r; diff --git a/tmpfiles-X-type.patch b/tmpfiles-X-type.patch deleted file mode 100644 index 40d9940e..00000000 --- a/tmpfiles-X-type.patch +++ /dev/null @@ -1,369 +0,0 @@ -From 78a92a5a2306709e4587e332728a76901323ade9 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Fri, 18 Jan 2013 16:13:08 +0100 -Subject: [PATCH] tmpfiles: introduce type X - -Type X will exclude path itself from clean-up. However, if the path is a -directory systemd-tmpfiles will clean-up its content. - -In contrast to type x, where path is ignored completely, type X needs some -Age parameter. In order to determine Age parameter, we will look for config -entries of type d or D and pick the best match. Best match is either -exact match or longest prefix match. ---- - man/tmpfiles.d.xml | 15 ++++ - src/tmpfiles/tmpfiles.c | 192 ++++++++++++++++++++++++++++++----------------- - 2 files changed, 138 insertions(+), 69 deletions(-) - -Index: systemd-195/man/tmpfiles.d.xml -=================================================================== ---- systemd-195.orig/man/tmpfiles.d.xml -+++ systemd-195/man/tmpfiles.d.xml -@@ -166,6 +166,21 @@ L /tmp/foobar - - - - /dev - - - -+ X -+ Ignore a path -+ during cleanup. Use this type -+ to prevent path removal as -+ controlled with the Age parameter. -+ Note that if path is a directory, -+ content of a directory is not -+ excluded from clean-up, only -+ directory itself. Lines of this -+ type accept shell-style globs -+ in place of normal path -+ names. -+ -+ -+ - r - Remove a file - or directory if it -Index: systemd-195/src/tmpfiles/tmpfiles.c -=================================================================== ---- systemd-195.orig/src/tmpfiles/tmpfiles.c -+++ systemd-195/src/tmpfiles/tmpfiles.c -@@ -70,6 +70,7 @@ typedef enum ItemType { - - /* These ones take globs */ - IGNORE_PATH = 'x', -+ IGNORE_DIRECTORY_PATH = 'X', - REMOVE_PATH = 'r', - RECURSIVE_REMOVE_PATH = 'R', - RELABEL_PATH = 'z', -@@ -119,7 +120,7 @@ static const char * const conf_file_dirs - #define MAX_DEPTH 256 - - static bool needs_glob(ItemType t) { -- return t == IGNORE_PATH || t == REMOVE_PATH || t == RECURSIVE_REMOVE_PATH || t == RELABEL_PATH || t == RECURSIVE_RELABEL_PATH; -+ return t == IGNORE_PATH || t == IGNORE_DIRECTORY_PATH || t == REMOVE_PATH || t == RECURSIVE_REMOVE_PATH || t == RELABEL_PATH || t == RECURSIVE_RELABEL_PATH; - } - - static struct Item* find_glob(Hashmap *h, const char *match) { -@@ -218,6 +219,7 @@ static bool unix_socket_alive(const char - } - - static int dir_cleanup( -+ Item *i, - const char *p, - DIR *d, - const struct stat *ds, -@@ -297,7 +299,7 @@ static int dir_cleanup( - continue; - } - -- q = dir_cleanup(sub_path, sub_dir, &s, cutoff, rootdev, false, maxdepth-1, false); -+ q = dir_cleanup(i, sub_path, sub_dir, &s, cutoff, rootdev, false, maxdepth-1, false); - closedir(sub_dir); - - if (q < 0) -@@ -320,12 +322,14 @@ static int dir_cleanup( - if (age >= cutoff) - continue; - -- log_debug("rmdir '%s'\n", sub_path); -+ if (!i->type == IGNORE_DIRECTORY_PATH || !streq(dent->d_name, p)) { -+ log_debug("rmdir '%s'\n", sub_path); - -- if (unlinkat(dirfd(d), dent->d_name, AT_REMOVEDIR) < 0) { -- if (errno != ENOENT && errno != ENOTEMPTY) { -- log_error("rmdir(%s): %m", sub_path); -- r = -errno; -+ if (unlinkat(dirfd(d), dent->d_name, AT_REMOVEDIR) < 0) { -+ if (errno != ENOENT && errno != ENOTEMPTY) { -+ log_error("rmdir(%s): %m", sub_path); -+ r = -errno; -+ } - } - } - -@@ -395,68 +399,6 @@ finish: - return r; - } - --static int clean_item(Item *i) { -- DIR *d; -- struct stat s, ps; -- bool mountpoint; -- int r; -- usec_t cutoff, n; -- -- assert(i); -- -- if (i->type != CREATE_DIRECTORY && -- i->type != TRUNCATE_DIRECTORY && -- i->type != IGNORE_PATH) -- return 0; -- -- if (!i->age_set || i->age <= 0) -- return 0; -- -- n = now(CLOCK_REALTIME); -- if (n < i->age) -- return 0; -- -- cutoff = n - i->age; -- -- d = opendir(i->path); -- if (!d) { -- if (errno == ENOENT) -- return 0; -- -- log_error("Failed to open directory %s: %m", i->path); -- return -errno; -- } -- -- if (fstat(dirfd(d), &s) < 0) { -- log_error("stat(%s) failed: %m", i->path); -- r = -errno; -- goto finish; -- } -- -- if (!S_ISDIR(s.st_mode)) { -- log_error("%s is not a directory.", i->path); -- r = -ENOTDIR; -- goto finish; -- } -- -- if (fstatat(dirfd(d), "..", &ps, AT_SYMLINK_NOFOLLOW) != 0) { -- log_error("stat(%s/..) failed: %m", i->path); -- r = -errno; -- goto finish; -- } -- -- mountpoint = s.st_dev != ps.st_dev || -- (s.st_dev == ps.st_dev && s.st_ino == ps.st_ino); -- -- r = dir_cleanup(i->path, d, &s, cutoff, s.st_dev, mountpoint, MAX_DEPTH, i->keep_first_level); -- --finish: -- if (d) -- closedir(d); -- -- return r; --} -- - static int item_set_perms(Item *i, const char *path) { - /* not using i->path directly because it may be a glob */ - if (i->mode_set) -@@ -667,6 +609,7 @@ static int create_item(Item *i) { - switch (i->type) { - - case IGNORE_PATH: -+ case IGNORE_DIRECTORY_PATH: - case REMOVE_PATH: - case RECURSIVE_REMOVE_PATH: - return 0; -@@ -850,6 +793,7 @@ static int remove_item_instance(Item *i, - case CREATE_BLOCK_DEVICE: - case CREATE_CHAR_DEVICE: - case IGNORE_PATH: -+ case IGNORE_DIRECTORY_PATH: - case RELABEL_PATH: - case RECURSIVE_RELABEL_PATH: - case WRITE_FILE: -@@ -894,6 +838,7 @@ static int remove_item(Item *i) { - case CREATE_CHAR_DEVICE: - case CREATE_BLOCK_DEVICE: - case IGNORE_PATH: -+ case IGNORE_DIRECTORY_PATH: - case RELABEL_PATH: - case RECURSIVE_RELABEL_PATH: - case WRITE_FILE: -@@ -909,6 +854,84 @@ static int remove_item(Item *i) { - return r; - } - -+static int clean_item_instance(Item *i, const char* instance) { -+ DIR *d; -+ struct stat s, ps; -+ bool mountpoint; -+ int r; -+ usec_t cutoff, n; -+ -+ assert(i); -+ -+ if (!i->age_set) -+ return 0; -+ -+ n = now(CLOCK_REALTIME); -+ if (n < i->age) -+ return 0; -+ -+ cutoff = n - i->age; -+ -+ d = opendir(instance); -+ if (!d) { -+ if (errno == ENOENT || errno == ENOTDIR) -+ return 0; -+ -+ log_error("Failed to open directory %s: %m", i->path); -+ return -errno; -+ } -+ -+ if (fstat(dirfd(d), &s) < 0) { -+ log_error("stat(%s) failed: %m", i->path); -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!S_ISDIR(s.st_mode)) { -+ log_error("%s is not a directory.", i->path); -+ r = -ENOTDIR; -+ goto finish; -+ } -+ -+ if (fstatat(dirfd(d), "..", &ps, AT_SYMLINK_NOFOLLOW) != 0) { -+ log_error("stat(%s/..) failed: %m", i->path); -+ r = -errno; -+ goto finish; -+ } -+ -+ mountpoint = s.st_dev != ps.st_dev || -+ (s.st_dev == ps.st_dev && s.st_ino == ps.st_ino); -+ -+ r = dir_cleanup(i, instance, d, &s, cutoff, s.st_dev, mountpoint, MAX_DEPTH, i->keep_first_level); -+ -+finish: -+ if (d) -+ closedir(d); -+ -+ return r; -+} -+ -+static int clean_item(Item *i) { -+ int r = 0; -+ -+ assert(i); -+ -+ switch (i->type) { -+ case CREATE_DIRECTORY: -+ case TRUNCATE_DIRECTORY: -+ case IGNORE_PATH: -+ clean_item_instance(i, i->path); -+ break; -+ case IGNORE_DIRECTORY_PATH: -+ r = glob_item(i, clean_item_instance); -+ break; -+ default: -+ break; -+ } -+ -+ return r; -+} -+ - static int process_item(Item *i) { - int r, q, p; - -@@ -1028,6 +1051,7 @@ static int parse_line(const char *fname, - case TRUNCATE_DIRECTORY: - case CREATE_FIFO: - case IGNORE_PATH: -+ case IGNORE_DIRECTORY_PATH: - case REMOVE_PATH: - case RECURSIVE_REMOVE_PATH: - case RELABEL_PATH: -@@ -1264,6 +1288,8 @@ static int read_config_file(const char * - FILE *f; - unsigned v = 0; - int r = 0; -+ Iterator iterator; -+ Item *i; - - assert(fn); - -@@ -1296,6 +1322,34 @@ static int read_config_file(const char * - r = k; - } - -+ /* we have to determine age parameter for each entry of type X */ -+ HASHMAP_FOREACH(i, globs, iterator) { -+ Iterator iter; -+ Item *j, *candidate_item = NULL; -+ -+ if (i->type != IGNORE_DIRECTORY_PATH) -+ continue; -+ -+ HASHMAP_FOREACH(j, items, iter) { -+ if (j->type != CREATE_DIRECTORY && j->type != TRUNCATE_DIRECTORY) -+ continue; -+ -+ if (path_equal(j->path, i->path)) { -+ candidate_item = j; -+ break; -+ } -+ -+ if ((!candidate_item && path_startswith(i->path, j->path)) || -+ (candidate_item && path_startswith(j->path, candidate_item->path) && (fnmatch(i->path, j->path, FNM_PATHNAME | FNM_PERIOD) == 0))) -+ candidate_item = j; -+ } -+ -+ if (candidate_item) { -+ i->age = candidate_item->age; -+ i->age_set = true; -+ } -+ } -+ - if (ferror(f)) { - log_error("Failed to read from file %s: %m", fn); - if (r == 0) -Index: systemd-195/tmpfiles.d/tmp.conf -=================================================================== ---- systemd-195.orig/tmpfiles.d/tmp.conf -+++ systemd-195/tmpfiles.d/tmp.conf -@@ -10,3 +10,7 @@ - # Clear tmp directories separately, to make them easier to override - d /tmp 1777 root root 10d - d /var/tmp 1777 root root 30d -+ -+# Exclude namespace mountpoints created with PrivateTmp=yes -+X /tmp/systemd-private-* -+X /var/tmp/systemd-private-* -Index: systemd-195/man/systemd.exec.xml -=================================================================== ---- systemd-195.orig/man/systemd.exec.xml -+++ systemd-195/man/systemd.exec.xml -@@ -1022,15 +1022,17 @@ - Takes a boolean - argument. If true sets up a new file - system namespace for the executed -- processes and mounts a private -- /tmp directory -- inside it, that is not shared by -+ processes and mounts private -+ /tmp and -+ /var/tmp directories -+ inside it, that are not shared by - processes outside of the - namespace. This is useful to secure - access to temporary files of the - process, but makes sharing between - processes via -- /tmp -+ /tmp or -+ /var/tmp - impossible. Defaults to - false. - diff --git a/tty1.patch b/tty1.patch deleted file mode 100644 index 79145db5..00000000 --- a/tty1.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-189/units/systemd-ask-password-wall.service.in -=================================================================== ---- systemd-189.orig/units/systemd-ask-password-wall.service.in -+++ systemd-189/units/systemd-ask-password-wall.service.in -@@ -8,7 +8,7 @@ - [Unit] - Description=Forward Password Requests to Wall - Documentation=man:systemd-ask-password-console.service(8) --After=systemd-user-sessions.service -+After=systemd-user-sessions.service getty@tty1.service - - [Service] - ExecStartPre=-@SYSTEMCTL@ stop systemd-ask-password-console.path systemd-ask-password-console.service systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service diff --git a/var-run-lock.patch b/var-run-lock.patch deleted file mode 100644 index 3f87b078..00000000 --- a/var-run-lock.patch +++ /dev/null @@ -1,97 +0,0 @@ -Index: systemd-195/Makefile.am -=================================================================== ---- systemd-195.orig/Makefile.am -+++ systemd-195/Makefile.am -@@ -294,6 +294,7 @@ dist_systemunit_DATA = \ - units/sys-kernel-config.mount \ - units/sys-kernel-debug.mount \ - units/sys-fs-fuse-connections.mount \ -+ units/var-run.mount \ - units/tmp.mount \ - units/printer.target \ - units/sound.target \ -@@ -308,6 +309,11 @@ dist_systemunit_DATA = \ - units/systemd-udevd-kernel.socket \ - units/system-update.target - -+if HAVE_SYSV_COMPAT -+dist_systemunit_DATA += \ -+ units/var-lock.mount -+endif -+ - nodist_systemunit_DATA = \ - units/getty@.service \ - units/serial-getty@.service \ -@@ -3874,9 +3880,11 @@ systemd-install-data-hook: - ( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \ - rm -f systemd-remount-fs.service \ - systemd-fsck-root.service \ -+ var-run.mount \ - tmp.mount && \ - $(LN_S) ../systemd-remount-fs.service systemd-remount-fs.service && \ - $(LN_S) ../systemd-fsck-root.service systemd-fsck-root.service && \ -+ $(LN_S) ../var-run.mount var-run.mount && \ - $(LN_S) ../tmp.mount tmp.mount ) - ( cd $(DESTDIR)$(userunitdir) && \ - rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \ -@@ -3964,6 +3972,12 @@ if TARGET_MAGEIA - rm -f display-manager.service ) - endif - -+if HAVE_SYSV_COMPAT -+ ( cd $(DESTDIR)$(systemunitdir)/local-fs.target.wants && \ -+ rm -f var-lock.mount && \ -+ $(LN_S) ../var-lock.mount var-lock.mount ) -+endif -+ - install-exec-hook: $(INSTALL_EXEC_HOOKS) - - uninstall-hook: $(UNINSTALL_EXEC_HOOKS) -Index: systemd-195/units/var-lock.mount -=================================================================== ---- /dev/null -+++ systemd-195/units/var-lock.mount -@@ -0,0 +1,19 @@ -+# This file is part of systemd. -+# -+# systemd 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. -+ -+[Unit] -+Description=Lock Directory -+Before=local-fs.target -+# skip mounting if the directory does not exist or is a symlink -+ConditionPathIsDirectory=/var/lock -+ConditionPathIsSymbolicLink=!/var/lock -+ -+[Mount] -+What=/run/lock -+Where=/var/lock -+Type=bind -+Options=bind -Index: systemd-195/units/var-run.mount -=================================================================== ---- /dev/null -+++ systemd-195/units/var-run.mount -@@ -0,0 +1,19 @@ -+# This file is part of systemd. -+# -+# systemd 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. -+ -+[Unit] -+Description=Runtime Directory -+Before=local-fs.target -+# skip mounting if the directory does not exist or is a symlink -+ConditionPathIsDirectory=/var/run -+ConditionPathIsSymbolicLink=!/var/run -+ -+[Mount] -+What=/run -+Where=/var/run -+Type=bind -+Options=bind diff --git a/xdm-display-manager.patch b/xdm-display-manager.patch deleted file mode 100644 index e7e1c191..00000000 --- a/xdm-display-manager.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-195/units/graphical.target -=================================================================== ---- systemd-195.orig/units/graphical.target -+++ systemd-195/units/graphical.target -@@ -11,7 +11,7 @@ Documentation=man:systemd.special(7) - Requires=multi-user.target - After=multi-user.target - Conflicts=rescue.target --Wants=display-manager.service -+Wants=xdm.service - AllowIsolate=yes - - [Install] From a0eb8a1c64cdc1f25cff39aaf8efe6d44ac993c6e405bca8e7f3b5eaa4f8dc9b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 26 Apr 2013 17:21:58 +0000 Subject: [PATCH 132/221] Accepting request 173533 from Base:System - Fix handle-etc-HOSTNAME.patch to properly set hostname at startup when using /etc/HOSTNAME. (forwarded request 173532 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/173533 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=136 --- 1001-Reinstate-TIMEOUT-handling.patch | 129 ------ ...enable-by_path-links-for-ata-devices.patch | 0 ...ate-by-id-scsi-links-for-ATA-devices.patch | 0 ...atch => 1003-udev-netlink-null-rules.patch | 10 +- ...fix.patch => 1004-fix-devname-prefix.patch | 10 +- ...fault-links-for-primary-cd_dvd-drive.patch | 0 1005-udev-fix-sg-autoload-regression.patch | 22 - ...h => 1006-udev-always-rename-network.patch | 0 1026-re-add-persistent-net.patch | 421 ------------------ handle-etc-HOSTNAME.patch | 39 +- systemd-mini.changes | 27 ++ systemd-mini.spec | 67 +-- systemd.changes | 27 ++ systemd.spec | 67 +-- 14 files changed, 175 insertions(+), 644 deletions(-) delete mode 100644 1001-Reinstate-TIMEOUT-handling.patch rename 1002-re-enable-by_path-links-for-ata-devices.patch => 1001-re-enable-by_path-links-for-ata-devices.patch (100%) rename 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch => 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch (100%) rename 1004-udev-netlink-null-rules.patch => 1003-udev-netlink-null-rules.patch (75%) rename 1007-fix-devname-prefix.patch => 1004-fix-devname-prefix.patch (70%) rename 1021-create-default-links-for-primary-cd_dvd-drive.patch => 1005-create-default-links-for-primary-cd_dvd-drive.patch (100%) delete mode 100644 1005-udev-fix-sg-autoload-regression.patch rename 1027-udev-always-rename-network.patch => 1006-udev-always-rename-network.patch (100%) delete mode 100644 1026-re-add-persistent-net.patch diff --git a/1001-Reinstate-TIMEOUT-handling.patch b/1001-Reinstate-TIMEOUT-handling.patch deleted file mode 100644 index 775c0a07..00000000 --- a/1001-Reinstate-TIMEOUT-handling.patch +++ /dev/null @@ -1,129 +0,0 @@ -From: Robert Milasan -Date: Thu, 11 Apr 2013 15:39:39 +0200 -Subject: Reinstate TIMEOUT handling - -Without treating events with timeouts specially some drivers would -cause a 30 seconds stall on boot: . - -I also received reports of some drivers not working at all, even -after the timeout. - -We will remove this patch when more drivers have been fixed in -the kernel (3.4?). - -This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and -57c6f8ae5f52a6e8ffc66a54966346f733dded39. ---- - src/libudev/libudev-device.c | 19 +++++++++++++++++++ - src/libudev/libudev-private.h | 1 + - src/udev/udevd.c | 13 ++++++++++--- - 3 files changed, 30 insertions(+), 3 deletions(-) - -diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c -index 6bb2e41..4fdd242 100644 ---- a/src/libudev/libudev-device.c -+++ b/src/libudev/libudev-device.c -@@ -78,6 +78,7 @@ struct udev_device { - struct udev_list tags_list; - unsigned long long int seqnum; - usec_t usec_initialized; -+ int timeout; - int devlink_priority; - int refcount; - dev_t devnum; -@@ -172,6 +173,21 @@ static int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum) - return 0; - } - -+int udev_device_get_timeout(struct udev_device *udev_device) -+{ -+ return udev_device->timeout; -+} -+ -+static int udev_device_set_timeout(struct udev_device *udev_device, int timeout) -+{ -+ char num[32]; -+ -+ udev_device->timeout = timeout; -+ snprintf(num, sizeof(num), "%u", timeout); -+ udev_device_add_property(udev_device, "TIMEOUT", num); -+ return 0; -+} -+ - const char *udev_device_get_devpath_old(struct udev_device *udev_device) - { - return udev_device->devpath_old; -@@ -462,6 +478,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device, - udev_device_set_devpath_old(udev_device, &property[12]); - } else if (startswith(property, "SEQNUM=")) { - udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10)); -+ } else if (startswith(property, "TIMEOUT=")) { -+ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10)); - } else if (startswith(property, "IFINDEX=")) { - udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10)); - } else if (startswith(property, "DEVMODE=")) { -@@ -653,6 +671,7 @@ struct udev_device *udev_device_new(struct udev *udev) - udev_list_init(udev, &udev_device->sysattr_value_list, true); - udev_list_init(udev, &udev_device->sysattr_list, false); - udev_list_init(udev, &udev_device->tags_list, true); -+ udev_device->timeout = -1; - udev_device->watch_handle = -1; - /* copy global properties */ - udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev)) -diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h -index 54c51ac..d2124ea 100644 ---- a/src/libudev/libudev-private.h -+++ b/src/libudev/libudev-private.h -@@ -77,6 +77,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device); - void udev_device_set_is_initialized(struct udev_device *udev_device); - int udev_device_add_tag(struct udev_device *udev_device, const char *tag); - void udev_device_cleanup_tags_list(struct udev_device *udev_device); -+int udev_device_get_timeout(struct udev_device *udev_device); - usec_t udev_device_get_usec_initialized(struct udev_device *udev_device); - void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized); - int udev_device_get_devlink_priority(struct udev_device *udev_device); -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 7d13b4f..9be1931 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -391,7 +391,7 @@ out: - } - } - --static void event_run(struct event *event) -+static void event_run(struct event *event, bool force) - { - struct udev_list_node *loop; - -@@ -417,7 +417,7 @@ static void event_run(struct event *event) - return; - } - -- if (children >= children_max) { -+ if (!force && children >= children_max) { - if (children_max > 1) - log_debug("maximum number (%i) of children reached\n", children); - return; -@@ -455,6 +455,13 @@ static int event_queue_insert(struct udev_device *dev) - - event->state = EVENT_QUEUED; - udev_list_node_append(&event->node, &event_list); -+ -+ /* run all events with a timeout set immediately */ -+ if (udev_device_get_timeout(dev) > 0) { -+ event_run(event, true); -+ return 0; -+ } -+ - return 0; - } - -@@ -566,7 +573,7 @@ static void event_queue_start(struct udev *udev) - if (is_devpath_busy(event)) - continue; - -- event_run(event); -+ event_run(event, false); - } - } - diff --git a/1002-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch similarity index 100% rename from 1002-re-enable-by_path-links-for-ata-devices.patch rename to 1001-re-enable-by_path-links-for-ata-devices.patch diff --git a/1003-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch similarity index 100% rename from 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch rename to 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch diff --git a/1004-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch similarity index 75% rename from 1004-udev-netlink-null-rules.patch rename to 1003-udev-netlink-null-rules.patch index 8634d39d..f486a13f 100644 --- a/1004-udev-netlink-null-rules.patch +++ b/1003-udev-netlink-null-rules.patch @@ -7,11 +7,11 @@ udevd race for netlink events (bnc#774646) src/udev/udevd.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 9be1931..d0c4c72 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -1414,6 +1414,8 @@ int main(int argc, char *argv[]) +Index: systemd-202/src/udev/udevd.c +=================================================================== +--- systemd-202.orig/src/udev/udevd.c ++++ systemd-202/src/udev/udevd.c +@@ -1407,6 +1407,8 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); diff --git a/1007-fix-devname-prefix.patch b/1004-fix-devname-prefix.patch similarity index 70% rename from 1007-fix-devname-prefix.patch rename to 1004-fix-devname-prefix.patch index 55fb3d90..7ab99e97 100644 --- a/1007-fix-devname-prefix.patch +++ b/1004-fix-devname-prefix.patch @@ -7,11 +7,11 @@ fix modules.devname path, it isn't in /usr. src/udev/udevd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index d0c4c72..599cd3b 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -831,7 +831,7 @@ static void static_dev_create_from_modules(struct udev *udev) +Index: systemd-202/src/udev/udevd.c +=================================================================== +--- systemd-202.orig/src/udev/udevd.c ++++ systemd-202/src/udev/udevd.c +@@ -824,7 +824,7 @@ static void static_dev_create_from_modul return; } diff --git a/1021-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch similarity index 100% rename from 1021-create-default-links-for-primary-cd_dvd-drive.patch rename to 1005-create-default-links-for-primary-cd_dvd-drive.patch diff --git a/1005-udev-fix-sg-autoload-regression.patch b/1005-udev-fix-sg-autoload-regression.patch deleted file mode 100644 index 1e79d84e..00000000 --- a/1005-udev-fix-sg-autoload-regression.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Robert Milasan -Date: Tue, 7 Aug 2012 08:34:49 +0000 -Subject: udev fix sg autoload regression - -Fix regression in udev where sg driver is no longer loaded for disc -events. Will need a non-udev solution for 12.3 (bnc#761109). ---- - rules/80-drivers.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/rules/80-drivers.rules b/rules/80-drivers.rules -index 50523e4..b863532 100644 ---- a/rules/80-drivers.rules -+++ b/rules/80-drivers.rules -@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}="kmod load tifm_sd" - SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}="kmod load tifm_ms" - SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block" - SUBSYSTEM=="i2o", RUN{builtin}="kmod load i2o_block" -+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", IMPORT{builtin}="kmod load sg" - SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev" - KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}="kmod load sm_ftl" - diff --git a/1027-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch similarity index 100% rename from 1027-udev-always-rename-network.patch rename to 1006-udev-always-rename-network.patch diff --git a/1026-re-add-persistent-net.patch b/1026-re-add-persistent-net.patch deleted file mode 100644 index dd82550b..00000000 --- a/1026-re-add-persistent-net.patch +++ /dev/null @@ -1,421 +0,0 @@ -From: Robert Milasan -Date: Wed, 20 Mar 2013 10:14:59 +0000 -Subject: re-add persistent net - -udev: re-add persistent network rules (bnc#809843). ---- - Makefile.am | 10 +- - .../75-persistent-net-generator.rules | 102 +++++++++++++++ - src/udev/rule_generator/rule_generator.functions | 113 ++++++++++++++++ - src/udev/rule_generator/write_net_rules | 145 +++++++++++++++++++++ - 4 files changed, 369 insertions(+), 1 deletion(-) - create mode 100644 src/udev/rule_generator/75-persistent-net-generator.rules - create mode 100644 src/udev/rule_generator/rule_generator.functions - create mode 100644 src/udev/rule_generator/write_net_rules - -diff --git a/Makefile.am b/Makefile.am -index 10609f3..f5e4159 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2287,6 +2287,14 @@ EXTRA_DIST += \ - src/gudev/seed-example.js - - # ------------------------------------------------------------------------------ -+dist_udevhome_SCRIPTS = \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules -+ -+dist_udevrules_DATA += \ -+ src/udev/rule_generator/75-persistent-net-generator.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_KEYMAP - keymap_SOURCES = \ - src/udev/keymap/keymap.c -@@ -2314,7 +2322,7 @@ dist_udevrules_DATA += \ - src/udev/keymap/95-keymap.rules \ - src/udev/keymap/95-keyboard-force-release.rules - --dist_udevhome_SCRIPTS = \ -+dist_udevhome_SCRIPTS += \ - src/udev/keymap/findkeyboards \ - src/udev/keymap/keyboard-force-release.sh - -diff --git a/src/udev/rule_generator/75-persistent-net-generator.rules b/src/udev/rule_generator/75-persistent-net-generator.rules -new file mode 100644 -index 0000000..4f80573 ---- /dev/null -+++ b/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -0,0 +1,102 @@ -+# do not edit this file, it will be overwritten on update -+ -+# these rules generate rules for persistent network device naming -+# -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+ACTION!="add", GOTO="persistent_net_generator_end" -+SUBSYSTEM!="net", GOTO="persistent_net_generator_end" -+ -+# ignore the interface if a name has already been set -+NAME=="?*", GOTO="persistent_net_generator_end" -+ -+# device name whitelist -+KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" -+ -+# ignore Xen virtual interfaces -+SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" -+ -+# read MAC address -+ENV{MATCHADDR}="$attr{address}" -+ -+# match interface type -+ENV{MATCHIFTYPE}="$attr{type}" -+ -+# ignore KVM virtual interfaces -+ENV{MATCHADDR}=="52:54:00:*", GOTO="persistent_net_generator_end" -+# ignore VMWare virtual interfaces -+ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", GOTO="persistent_net_generator_end" -+# ignore Hyper-V virtual interfaces -+ENV{MATCHADDR}=="00:15:5d:*", GOTO="persistent_net_generator_end" -+ -+# These vendors are known to violate the local MAC address assignment scheme -+# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom -+ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" -+# 3Com -+ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" -+# 3Com IBM PC; Imagen; Valid; Cisco; Apple -+ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" -+# Intel -+ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" -+# Olivetti -+ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" -+# CMC Masscomp; Silicon Graphics; Prime EXL -+ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" -+# Prominet Corporation Gigabit Ethernet Switch -+ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" -+# BTI (Bus-Tech, Inc.) IBM Mainframes -+ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" -+# Realtek -+ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist" -+# Novell 2000 -+ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" -+# Realtec -+ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" -+# Kingston Technologies -+ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" -+# Xensource -+ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" -+ -+# match interface dev_id -+ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+ -+# do not use "locally administered" MAC address -+ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" -+ -+# do not use empty address -+ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" -+ -+LABEL="globally_administered_whitelist" -+ -+# build comment line for generated rule: -+SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" -+SUBSYSTEMS=="usb", ATTRS{idVendor}=="?*", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" -+SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" -+SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" -+ -+# ibmveth likes to use "locally administered" MAC addresses -+DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" -+ -+# S/390 uses id matches only, do not use MAC address match -+SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" -+ -+# see if we got enough data to create a rule -+ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" -+ -+# default comment -+ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" -+ -+# write rule -+DRIVERS=="?*", IMPORT{program}="write_net_rules" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ -+LABEL="persistent_net_generator_end" -diff --git a/src/udev/rule_generator/rule_generator.functions b/src/udev/rule_generator/rule_generator.functions -new file mode 100644 -index 0000000..087bc34 ---- /dev/null -+++ b/src/udev/rule_generator/rule_generator.functions -@@ -0,0 +1,113 @@ -+# functions used by the udev rule generator -+ -+# Copyright (C) 2006 Marco d'Itri -+ -+# 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. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+PATH='/usr/bin:/bin:/usr/sbin:/sbin' -+ -+# Read a single line from file $1 in the $DEVPATH directory. -+# The function must not return an error even if the file does not exist. -+sysread() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ local value -+ read value < "/sys$DEVPATH/$file" || return 0 -+ echo "$value" -+} -+ -+sysreadlink() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ readlink -f /sys$DEVPATH/$file 2> /dev/null || true -+} -+ -+# Return true if a directory is writeable. -+writeable() { -+ if ln -s test-link $1/.is-writeable 2> /dev/null; then -+ rm -f $1/.is-writeable -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+# Create a lock file for the current rules file. -+lock_rules_file() { -+ RUNDIR="/run/udev" -+ [ -e "$RUNDIR" ] || return 0 -+ -+ RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" -+ -+ retry=30 -+ while ! mkdir $RULES_LOCK 2> /dev/null; do -+ if [ $retry -eq 0 ]; then -+ echo "Cannot lock $RULES_FILE!" >&2 -+ exit 2 -+ fi -+ sleep 1 -+ retry=$(($retry - 1)) -+ done -+} -+ -+unlock_rules_file() { -+ [ "$RULES_LOCK" ] || return 0 -+ rmdir $RULES_LOCK || true -+} -+ -+# Choose the real rules file if it is writeable or a temporary file if not. -+# Both files should be checked later when looking for existing rules. -+choose_rules_file() { -+ RUNDIR="/run/udev" -+ local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" -+ [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 -+ -+ if writeable ${RULES_FILE%/*}; then -+ RO_RULES_FILE='/dev/null' -+ else -+ RO_RULES_FILE=$RULES_FILE -+ RULES_FILE=$tmp_rules_file -+ fi -+} -+ -+# Return the name of the first free device. -+raw_find_next_available() { -+ local links="$1" -+ -+ local basename=${links%%[ 0-9]*} -+ local max=-1 -+ for name in $links; do -+ local num=${name#$basename} -+ [ "$num" ] || num=0 -+ [ $num -gt $max ] && max=$num -+ done -+ -+ local max=$(($max + 1)) -+ # "name0" actually is just "name" -+ [ $max -eq 0 ] && return -+ echo "$max" -+} -+ -+# Find all rules matching a key (with action) and a pattern. -+find_all_rules() { -+ local key="$1" -+ local linkre="$2" -+ local match="$3" -+ -+ local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' -+ echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ -+ $RO_RULES_FILE \ -+ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ -+ 2>/dev/null) -+} -diff --git a/src/udev/rule_generator/write_net_rules b/src/udev/rule_generator/write_net_rules -new file mode 100644 -index 0000000..fad1cc5 ---- /dev/null -+++ b/src/udev/rule_generator/write_net_rules -@@ -0,0 +1,145 @@ -+#!/bin/sh -e -+ -+# This script is run to create persistent network device naming rules -+# based on properties of the device. -+# If the interface needs to be renamed, INTERFACE_NEW= will be printed -+# on stdout to allow udev to IMPORT it. -+ -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDEVID dev_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+# Copyright (C) 2006 Marco d'Itri -+# Copyright (C) 2007 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. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+# debug, if UDEV_LOG= -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' -+ -+if [ -e /usr/lib/udev/rule_generator.functions ]; then -+ . /usr/lib/udev/rule_generator.functions -+else -+ . /lib/udev/rule_generator.functions -+fi -+ -+interface_name_taken() { -+ local value="$(find_all_rules 'NAME=' $INTERFACE)" -+ if [ "$value" ]; then -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+find_next_available() { -+ raw_find_next_available "$(find_all_rules 'NAME=' "$1")" -+} -+ -+write_rule() { -+ local match="$1" -+ local name="$2" -+ local comment="$3" -+ -+ { -+ if [ "$PRINT_HEADER" ]; then -+ PRINT_HEADER= -+ echo "# This file was automatically generated by the $0" -+ echo "# program, run by the persistent-net-generator.rules rules file." -+ echo "#" -+ echo "# You can modify it, as long as you keep each rule on a single" -+ echo "# line, and change only the value of the NAME= key." -+ fi -+ -+ echo "" -+ [ "$comment" ] && echo "# $comment" -+ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" -+ } >> $RULES_FILE -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+# Prevent concurrent processes from modifying the file at the same time. -+lock_rules_file -+ -+# Check if the rules file is writeable. -+choose_rules_file -+ -+# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces -+if [ "$MATCHADDR" ]; then -+ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" -+fi -+ -+if [ "$MATCHDRV" ]; then -+ match="$match, DRIVERS==\"$MATCHDRV\"" -+fi -+ -+if [ "$MATCHDEVID" ]; then -+ match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" -+fi -+ -+if [ "$MATCHID" ]; then -+ match="$match, KERNELS==\"$MATCHID\"" -+fi -+ -+if [ "$MATCHIFTYPE" ]; then -+ match="$match, ATTR{type}==\"$MATCHIFTYPE\"" -+fi -+ -+if [ -z "$match" ]; then -+ echo "missing valid match" >&2 -+ unlock_rules_file -+ exit 1 -+fi -+ -+basename=${INTERFACE%%[0-9]*} -+match="$match, KERNEL==\"$basename*\"" -+ -+if [ "$INTERFACE_NAME" ]; then -+ # external tools may request a custom name -+ COMMENT="$COMMENT (custom name provided by external tool)" -+ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then -+ INTERFACE=$INTERFACE_NAME; -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+else -+ # if a rule using the current name already exists, find a new name -+ if interface_name_taken; then -+ INTERFACE="$basename$(find_next_available "$basename[0-9]*")" -+ # prevent INTERFACE from being "eth" instead of "eth0" -+ [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+fi -+ -+write_rule "$match" "$INTERFACE" "$COMMENT" -+ -+unlock_rules_file -+ -+exit 0 diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch index 2688e851..a547f9f3 100644 --- a/handle-etc-HOSTNAME.patch +++ b/handle-etc-HOSTNAME.patch @@ -4,9 +4,44 @@ Subject: handle /etc/HOSTNAME (bnc#803653) --- - src/hostname/hostnamed.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) + src/core/hostname-setup.c | 22 +++++++++++++++++----- + src/hostname/hostnamed.c | 12 +++++++++++- + 2 files changed, 28 insertions(+), 6 deletions(-) +diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c +index ac508af..15d206c 100644 +--- a/src/core/hostname-setup.c ++++ b/src/core/hostname-setup.c +@@ -61,12 +61,24 @@ int hostname_setup(void) { + + r = read_and_strip_hostname("/etc/hostname", &b); + if (r < 0) { +- if (r == -ENOENT) +- enoent = true; +- else ++ if (r == -ENOENT) { ++ /* use SUSE fallback */ ++ r = read_and_strip_hostname("/etc/HOSTNAME", &b); ++ if (r < 0) { ++ if (r == -ENOENT) ++ enoent = true; ++ else ++ log_warning("Failed to read configured hostname: %s", strerror(-r)); ++ hn = NULL; ++ } ++ else ++ hn = b; ++ ++ } ++ else { + log_warning("Failed to read configured hostname: %s", strerror(-r)); +- +- hn = NULL; ++ hn = NULL; ++ } + } else + hn = b; + diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index c7f454c..cfbd706 100644 --- a/src/hostname/hostnamed.c diff --git a/systemd-mini.changes b/systemd-mini.changes index 6de94b11..6cc8c273 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri Apr 26 16:37:28 CEST 2013 - fcrozat@suse.com + +- Fix handle-etc-HOSTNAME.patch to properly set hostname at startup + when using /etc/HOSTNAME. + +------------------------------------------------------------------- +Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com + +- Rename remaning udev patches (clean-up). +- Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at + boot time not from udev (bnc#761109). +- Drop unused patches: + 1001-Reinstate-TIMEOUT-handling.patch + 1005-udev-fix-sg-autoload-regression.patch + 1026-re-add-persistent-net.patch + +------------------------------------------------------------------- +Tue Apr 23 14:58:47 CEST 2013 - fcrozat@suse.com + +- Use drop-in file to fix bnc#804158. + +------------------------------------------------------------------- +Tue Apr 23 12:44:16 UTC 2013 - coolo@suse.com + +- add some more conflicts to make bootstrap work + ------------------------------------------------------------------- Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 30827d23..a65bb80c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -81,6 +81,7 @@ BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} Requires: this-is-only-for-build-envs Conflicts: systemd +Conflicts: kiwi %else # the buildignore is important for bootstrapping #!BuildIgnore: udev @@ -169,24 +170,18 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # udev patches -# PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch -Patch1001: 1001-Reinstate-TIMEOUT-handling.patch -# PATCH-FIX-OPENSUSE 1002-re-enable-by_path-links-for-ata-devices.patch -Patch1002: 1002-re-enable-by_path-links-for-ata-devices.patch -# PATCH-FIX-OPENSUSE 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1003: 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch -# PATCH-FIX-OPENSUSE 1004-udev-netlink-null-rules.patch -Patch1004: 1004-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1005-udev-fix-sg-autoload-regression.patch -Patch1005: 1005-udev-fix-sg-autoload-regression.patch -# PATCH-FIX-OPENSUSE 1007-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1007: 1007-fix-devname-prefix.patch -# PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch -Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1026-re-add-persistent-net.patch -Patch1026: 1026-re-add-persistent-net.patch -# PATCH-FIX-OPENSUSE 1027-udev-always-rename-network.patch -Patch1027: 1027-udev-always-rename-network.patch +# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch +Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch +Patch1003: 1003-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 1004-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr +Patch1004: 1004-fix-devname-prefix.patch +# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch +Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch +Patch1006: 1006-udev-always-rename-network.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -205,6 +200,9 @@ Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} +%if 0%{?bootstrap} +Conflicts: systemd-devel +%endif %description devel Development headers and auxiliary files for developing applications for systemd. @@ -237,7 +235,7 @@ Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %{version} -Conflicts: libudev%{udev_major} = %{version} +Conflicts: libudev%{udev_major} Conflicts: udev %endif @@ -257,6 +255,7 @@ Group: System/Libraries Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} Conflicts: libudev%{udev_major} +Conflicts: kiwi %endif %description -n lib%{udevpkgname}%{udev_major} @@ -365,10 +364,7 @@ cp %{SOURCE7} m4/ %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1007 -p1 -%patch1021 -p1 -%patch1026 -p1 -%patch1027 -p1 +%patch1006 -p1 #systemd %patch0 -p1 @@ -507,6 +503,13 @@ ln -s systemd-random-seed-load.service %{buildroot}/%{_prefix}/lib/systemd/syste # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount +# create %{_libexecdir}/modules-load.d +mkdir -p %{buildroot}%{_libexecdir}/modules-load.d +cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf +# load sg module at boot time +sg +EOF + # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the @@ -549,10 +552,13 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants -src="%buildroot/%_libexecdir/systemd/system/getty@.service" -dst="${src/@/@tty1}" -cp "$src" "$dst" -perl -i -pe 's{^# the VT is cleared.*}{}i;s{(^TTYVTDisallocate=.*)}{}' "$dst" +# create drop-in to prevent tty1 to be cleared (bnc#804158) +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ +echo << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf +[Service] +# ensure tty1 isn't cleared (bnc#804158) +TTYVTDisallocate=no +EOF %fdupes -s %{buildroot}%{_mandir} @@ -716,7 +722,7 @@ fi %endif %clean -# rm -rf %{buildroot} +rm -rf %{buildroot} %files %defattr(-,root,root) @@ -787,6 +793,8 @@ fi %dir %{_prefix}/lib/systemd/system-sleep/ %dir %{_prefix}/lib/systemd/system/default.target.wants %dir %{_prefix}/lib/systemd/system/dbus.target.wants +%dir %{_prefix}/lib/systemd/system/getty@tty1.service.d +%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif @@ -799,6 +807,7 @@ fi %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d +%{_libexecdir}/modules-load.d/sg.conf %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d @@ -942,8 +951,6 @@ fi %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%{_prefix}/lib/udev/write_net_rules -%{_prefix}/lib/udev/rule_generator.functions %dir %{_prefix}/lib/udev/keymaps %{_prefix}/lib/udev/keymaps/* %{_prefix}/lib/udev/keyboard-force-release.sh diff --git a/systemd.changes b/systemd.changes index 6de94b11..6cc8c273 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri Apr 26 16:37:28 CEST 2013 - fcrozat@suse.com + +- Fix handle-etc-HOSTNAME.patch to properly set hostname at startup + when using /etc/HOSTNAME. + +------------------------------------------------------------------- +Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com + +- Rename remaning udev patches (clean-up). +- Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at + boot time not from udev (bnc#761109). +- Drop unused patches: + 1001-Reinstate-TIMEOUT-handling.patch + 1005-udev-fix-sg-autoload-regression.patch + 1026-re-add-persistent-net.patch + +------------------------------------------------------------------- +Tue Apr 23 14:58:47 CEST 2013 - fcrozat@suse.com + +- Use drop-in file to fix bnc#804158. + +------------------------------------------------------------------- +Tue Apr 23 12:44:16 UTC 2013 - coolo@suse.com + +- add some more conflicts to make bootstrap work + ------------------------------------------------------------------- Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 298a3c97..4d1f6bd2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -76,6 +76,7 @@ BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} Requires: this-is-only-for-build-envs Conflicts: systemd +Conflicts: kiwi %else # the buildignore is important for bootstrapping #!BuildIgnore: udev @@ -164,24 +165,18 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # udev patches -# PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch -Patch1001: 1001-Reinstate-TIMEOUT-handling.patch -# PATCH-FIX-OPENSUSE 1002-re-enable-by_path-links-for-ata-devices.patch -Patch1002: 1002-re-enable-by_path-links-for-ata-devices.patch -# PATCH-FIX-OPENSUSE 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1003: 1003-rules-create-by-id-scsi-links-for-ATA-devices.patch -# PATCH-FIX-OPENSUSE 1004-udev-netlink-null-rules.patch -Patch1004: 1004-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1005-udev-fix-sg-autoload-regression.patch -Patch1005: 1005-udev-fix-sg-autoload-regression.patch -# PATCH-FIX-OPENSUSE 1007-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1007: 1007-fix-devname-prefix.patch -# PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch -Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1026-re-add-persistent-net.patch -Patch1026: 1026-re-add-persistent-net.patch -# PATCH-FIX-OPENSUSE 1027-udev-always-rename-network.patch -Patch1027: 1027-udev-always-rename-network.patch +# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch +Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch +Patch1003: 1003-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 1004-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr +Patch1004: 1004-fix-devname-prefix.patch +# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch +Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch +Patch1006: 1006-udev-always-rename-network.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -200,6 +195,9 @@ Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} +%if 0%{?bootstrap} +Conflicts: systemd-devel +%endif %description devel Development headers and auxiliary files for developing applications for systemd. @@ -232,7 +230,7 @@ Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %{version} -Conflicts: libudev%{udev_major} = %{version} +Conflicts: libudev%{udev_major} Conflicts: udev %endif @@ -252,6 +250,7 @@ Group: System/Libraries Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} Conflicts: libudev%{udev_major} +Conflicts: kiwi %endif %description -n lib%{udevpkgname}%{udev_major} @@ -360,10 +359,7 @@ cp %{SOURCE7} m4/ %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 -%patch1007 -p1 -%patch1021 -p1 -%patch1026 -p1 -%patch1027 -p1 +%patch1006 -p1 #systemd %patch0 -p1 @@ -502,6 +498,13 @@ ln -s systemd-random-seed-load.service %{buildroot}/%{_prefix}/lib/systemd/syste # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount +# create %{_libexecdir}/modules-load.d +mkdir -p %{buildroot}%{_libexecdir}/modules-load.d +cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf +# load sg module at boot time +sg +EOF + # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the @@ -544,10 +547,13 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants -src="%buildroot/%_libexecdir/systemd/system/getty@.service" -dst="${src/@/@tty1}" -cp "$src" "$dst" -perl -i -pe 's{^# the VT is cleared.*}{}i;s{(^TTYVTDisallocate=.*)}{}' "$dst" +# create drop-in to prevent tty1 to be cleared (bnc#804158) +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ +echo << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf +[Service] +# ensure tty1 isn't cleared (bnc#804158) +TTYVTDisallocate=no +EOF %fdupes -s %{buildroot}%{_mandir} @@ -711,7 +717,7 @@ fi %endif %clean -# rm -rf %{buildroot} +rm -rf %{buildroot} %files %defattr(-,root,root) @@ -782,6 +788,8 @@ fi %dir %{_prefix}/lib/systemd/system-sleep/ %dir %{_prefix}/lib/systemd/system/default.target.wants %dir %{_prefix}/lib/systemd/system/dbus.target.wants +%dir %{_prefix}/lib/systemd/system/getty@tty1.service.d +%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif @@ -794,6 +802,7 @@ fi %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d +%{_libexecdir}/modules-load.d/sg.conf %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d @@ -937,8 +946,6 @@ fi %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%{_prefix}/lib/udev/write_net_rules -%{_prefix}/lib/udev/rule_generator.functions %dir %{_prefix}/lib/udev/keymaps %{_prefix}/lib/udev/keymaps/* %{_prefix}/lib/udev/keyboard-force-release.sh From 239b75e388458d2b0e9dc8180318a694b3a090c818aad00e767b99569034e7fe Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 3 May 2013 11:48:49 +0000 Subject: [PATCH 133/221] Accepting request 174398 from Base:System Otherwise, an empty folder will produce an error: > for l in /etc/rc.d/rc4.d/*; do echo $l; done /etc/rc.d/rc4.d/* > systemd-sysv-convert --save iscsid /usr/sbin/systemd-sysv-convert: line 44: [: too many arguments /usr/sbin/systemd-sysv-convert: line 47: [: too many arguments (resubmit of request 173801) (forwarded request 174108 from chkpnt) OBS-URL: https://build.opensuse.org/request/show/174398 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=137 --- systemd-mini.changes | 6 ++++++ systemd-sysv-convert | 2 +- systemd.changes | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index 6cc8c273..c804edbb 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Apr 29 14:50:37 UTC 2013 - dschung@cs.uni-kl.de + +- Fix systemd-sysv-convert, so empty runlevel folders don't lead + to "line 44: [: too many arguments" + ------------------------------------------------------------------- Fri Apr 26 16:37:28 CEST 2013 - fcrozat@suse.com diff --git a/systemd-sysv-convert b/systemd-sysv-convert index ef38cbff..8ba3f211 100644 --- a/systemd-sysv-convert +++ b/systemd-sysv-convert @@ -39,7 +39,7 @@ declare -i priority service=$1 runlevel=$2 priority=-1 -for l in /etc/rc.d/rc$runlevel.d/* ; do +for l in $(ls /etc/rc.d/rc$runlevel.d/) ; do initscript=$(basename $l) if [ ${initscript:0:1} != "S" -o ${initscript:3} != "$service" ]; then continue diff --git a/systemd.changes b/systemd.changes index 6cc8c273..c804edbb 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Apr 29 14:50:37 UTC 2013 - dschung@cs.uni-kl.de + +- Fix systemd-sysv-convert, so empty runlevel folders don't lead + to "line 44: [: too many arguments" + ------------------------------------------------------------------- Fri Apr 26 16:37:28 CEST 2013 - fcrozat@suse.com From 4d1cc33148844e1da4661fe4c36614a068336b2266ba7d1f3281e9bd48e2ea6d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 13 May 2013 20:50:06 +0000 Subject: [PATCH 134/221] Accepting request 175317 from Base:System missing backslash (forwarded request 175316 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/175317 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=138 --- systemd-mini.changes | 5 +++++ systemd-mini.spec | 1 + systemd.changes | 5 +++++ systemd.spec | 1 + 4 files changed, 12 insertions(+) diff --git a/systemd-mini.changes b/systemd-mini.changes index c804edbb..18c65cef 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon May 13 18:08:41 UTC 2013 - rmilasan@suse.com + +- Fix firmware loading by enabling --with-firmware-path (bnc#817551). + ------------------------------------------------------------------- Mon Apr 29 14:50:37 UTC 2013 - dschung@cs.uni-kl.de diff --git a/systemd-mini.spec b/systemd-mini.spec index a65bb80c..6407bfc8 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -423,6 +423,7 @@ export V=1 --enable-selinux \ --enable-split-usr \ --disable-static \ + --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ CFLAGS="%{optflags}" make %{?_smp_mflags} diff --git a/systemd.changes b/systemd.changes index c804edbb..18c65cef 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon May 13 18:08:41 UTC 2013 - rmilasan@suse.com + +- Fix firmware loading by enabling --with-firmware-path (bnc#817551). + ------------------------------------------------------------------- Mon Apr 29 14:50:37 UTC 2013 - dschung@cs.uni-kl.de diff --git a/systemd.spec b/systemd.spec index 4d1f6bd2..3f6814c5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -418,6 +418,7 @@ export V=1 --enable-selinux \ --enable-split-usr \ --disable-static \ + --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ CFLAGS="%{optflags}" make %{?_smp_mflags} From 19a506be6044a23f4ebdf441163116b582cca2c7ed241ca6fc51696002318f60 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 15 May 2013 14:10:43 +0000 Subject: [PATCH 135/221] Accepting request 175749 from Base:System - Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch: don't free variable whose content is still be used (bnc#819970). (forwarded request 175744 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/175749 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=139 --- handle-SYSTEMCTL_OPTIONS-environment-variable.patch | 2 +- systemd-mini.changes | 12 ++++++++++++ systemd-mini.spec | 2 ++ systemd.changes | 12 ++++++++++++ systemd.spec | 2 ++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index 1ed955b9..f139b0fb 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -22,7 +22,7 @@ index 84ce87c..cceafc9 100644 + + if (*parsed_systemctl_options && **parsed_systemctl_options) { + char **k,**a; -+ _cleanup_strv_free_ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); ++ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); + new_argv[0] = strdup(argv[0]); + for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { + *k = strdup(*a); diff --git a/systemd-mini.changes b/systemd-mini.changes index 18c65cef..085a2d34 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed May 15 13:02:05 UTC 2013 - fcrozat@suse.com + +- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch: don't + free variable whose content is still be used (bnc#819970). + +------------------------------------------------------------------- +Tue May 14 14:22:05 UTC 2013 - fcrozat@suse.com + +- Add configure flags to ensure boot.local/halt.local are run on + startup/shutdown. + ------------------------------------------------------------------- Mon May 13 18:08:41 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 6407bfc8..72ac98e9 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -424,6 +424,8 @@ export V=1 --enable-split-usr \ --disable-static \ --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ + --with-rc-local-script-path-start=/etc/init.d/boot.local \ + --with-rc-local-script-path-stop=/etc/init.d/halt.local \ CFLAGS="%{optflags}" make %{?_smp_mflags} diff --git a/systemd.changes b/systemd.changes index 18c65cef..085a2d34 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed May 15 13:02:05 UTC 2013 - fcrozat@suse.com + +- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch: don't + free variable whose content is still be used (bnc#819970). + +------------------------------------------------------------------- +Tue May 14 14:22:05 UTC 2013 - fcrozat@suse.com + +- Add configure flags to ensure boot.local/halt.local are run on + startup/shutdown. + ------------------------------------------------------------------- Mon May 13 18:08:41 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 3f6814c5..180253b1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -419,6 +419,8 @@ export V=1 --enable-split-usr \ --disable-static \ --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ + --with-rc-local-script-path-start=/etc/init.d/boot.local \ + --with-rc-local-script-path-stop=/etc/init.d/halt.local \ CFLAGS="%{optflags}" make %{?_smp_mflags} From e552eedb6c81e8b9e687fa5f71abef17fe75da4290638a2540c787b8199de171 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 27 May 2013 08:03:19 +0000 Subject: [PATCH 136/221] Accepting request 176241 from Base:System - Rebase parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch to fix memory corruption (thanks to Michal Vyskocil) (bnc#820454). (forwarded request 176236 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/176241 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=140 --- ...nf-and-adds-dependencies-accordingly.patch | 27 ++++++---- ...ndle-boot-sysctl.conf-kernel_release.patch | 53 +++++++++++++++++++ systemd-mini.changes | 13 +++++ systemd-mini.spec | 8 +-- systemd.changes | 13 +++++ systemd.spec | 8 +-- 6 files changed, 106 insertions(+), 16 deletions(-) create mode 100644 sysctl-handle-boot-sysctl.conf-kernel_release.patch diff --git a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch index f3e12f27..e1f7405e 100644 --- a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +++ b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch @@ -1,17 +1,18 @@ +From 0d4db3c514f1fe3fe13acb7a34a5a517db9ccb2d Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Fri, 30 Sep 2011 13:55:31 +0000 -Subject: parse /etc/insserv.conf and adds dependencies accordingly +Subject: [PATCH] parse /etc/insserv.conf and adds dependencies accordingly (bnc#721428) --- - src/core/service.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 101 insertions(+) + src/core/service.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 104 insertions(+) diff --git a/src/core/service.c b/src/core/service.c -index cf0bbe0..08fc97c 100644 +index cf0bbe0..471ce8d 100644 --- a/src/core/service.c +++ b/src/core/service.c -@@ -3440,6 +3440,105 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { +@@ -3440,6 +3440,108 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { } #ifdef HAVE_SYSV_COMPAT @@ -52,11 +53,14 @@ index cf0bbe0..08fc97c 100644 + if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { + /* insert also a Wants dependency from remote-fs-pre on remote-fs */ + u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET); -+ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); -+ free (facility); -+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); ++ if (u) { ++ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); ++ free (facility); ++ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); ++ } + } -+ if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) { ++ u = manager_get_unit(mgr, facility); ++ if (u && (u->type == UNIT_TARGET)) { + char *dep = NULL, *name, **j; + + STRV_FOREACH (j, parsed+1) { @@ -117,7 +121,7 @@ index cf0bbe0..08fc97c 100644 static int service_enumerate(Manager *m) { char **p; -@@ -3600,6 +3699,8 @@ static int service_enumerate(Manager *m) { +@@ -3600,6 +3702,8 @@ static int service_enumerate(Manager *m) { r = 0; @@ -126,3 +130,6 @@ index cf0bbe0..08fc97c 100644 finish: for (i = 0; i < ELEMENTSOF(rcnd_table); i++) +-- +1.8.1.4 + diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch new file mode 100644 index 00000000..9213a508 --- /dev/null +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -0,0 +1,53 @@ +From 752a4370ecb5643a432ad73b1e22c80cd304948f Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Fri, 17 May 2013 13:31:46 +0200 +Subject: [PATCH] sysctl: handle /boot/sysctl.conf- + +Add support for kernel release sysctl.conf files (for per-flavor +configuration), needed by openSUSE (bnc#809420). +--- + src/sysctl/sysctl.c | 8 ++++++++ + units/systemd-sysctl.service.in | 1 + + 2 files changed, 9 insertions(+) + +diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c +index db18dd9..aa10b79 100644 +--- a/src/sysctl/sysctl.c ++++ b/src/sysctl/sysctl.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "log.h" + #include "strv.h" +@@ -297,6 +298,13 @@ int main(int argc, char *argv[]) { + } else { + _cleanup_strv_free_ char **files = NULL; + char **f; ++ char kernel_sysctl[PATH_MAX]; ++ struct utsname uts; ++ ++ assert_se(uname(&uts) >= 0); ++ ++ snprintf(kernel_sysctl, sizeof(kernel_sysctl), "/boot/sysctl.conf-%s", uts.release); ++ r = parse_file(sysctl_options, kernel_sysctl, true); + + r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); + if (r < 0) { +diff --git a/units/systemd-sysctl.service.in b/units/systemd-sysctl.service.in +index 45e1ceb..61d13c9 100644 +--- a/units/systemd-sysctl.service.in ++++ b/units/systemd-sysctl.service.in +@@ -19,6 +19,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sysctl.d + ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d + ConditionDirectoryNotEmpty=|/etc/sysctl.d + ConditionDirectoryNotEmpty=|/run/sysctl.d ++ConditionPathExistsGlob=|/boot/sysctl.conf-* + + [Service] + Type=oneshot +-- +1.8.1.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 085a2d34..a92519aa 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri May 17 15:53:33 UTC 2013 - fcrozat@suse.com + +- Rebase + parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch to + fix memory corruption (thanks to Michal Vyskocil) (bnc#820454). + +------------------------------------------------------------------- +Fri May 17 11:46:02 UTC 2013 - fcrozat@suse.com + +- Add sysctl-handle-boot-sysctl.conf-kernel_release.patch: ensure + /boot/sysctl.conf- is handled (bnc#809420). + ------------------------------------------------------------------- Wed May 15 13:02:05 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 72ac98e9..999bce16 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -113,11 +113,10 @@ Source9: nss-myhostname-config Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink -# Patches auto-generated by git-buildpackage: # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch -# PATCH-FIX-UPSTREAM ptionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called +# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called Patch1: optionally-warn-if-nss-myhostname-is-called.patch Patch2: Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings @@ -153,8 +152,10 @@ Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch -# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch -- FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. +# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch +# PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file +Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -401,6 +402,7 @@ cp %{SOURCE7} m4/ %patch37 -p1 %patch38 -p1 %patch39 -p1 +%patch40 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 085a2d34..a92519aa 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri May 17 15:53:33 UTC 2013 - fcrozat@suse.com + +- Rebase + parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch to + fix memory corruption (thanks to Michal Vyskocil) (bnc#820454). + +------------------------------------------------------------------- +Fri May 17 11:46:02 UTC 2013 - fcrozat@suse.com + +- Add sysctl-handle-boot-sysctl.conf-kernel_release.patch: ensure + /boot/sysctl.conf- is handled (bnc#809420). + ------------------------------------------------------------------- Wed May 15 13:02:05 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 180253b1..ff03d454 100644 --- a/systemd.spec +++ b/systemd.spec @@ -108,11 +108,10 @@ Source9: nss-myhostname-config Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink -# Patches auto-generated by git-buildpackage: # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch -# PATCH-FIX-UPSTREAM ptionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called +# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called Patch1: optionally-warn-if-nss-myhostname-is-called.patch Patch2: Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings @@ -148,8 +147,10 @@ Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch -# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch -- FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. +# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch +# PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file +Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -396,6 +397,7 @@ cp %{SOURCE7} m4/ %patch37 -p1 %patch38 -p1 %patch39 -p1 +%patch40 -p1 %build autoreconf -fiv From f2f0016f9805b97d436faf4bfc9abf7041c19cf84538f20e2adb4b843ad75000 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 28 May 2013 05:43:35 +0000 Subject: [PATCH 137/221] Accepting request 176682 from Base:System - Do no ship defaults for sysctl, they should be part of aaa_base (currently in procps). - Add hostname-setup-shortname.patch: ensure shortname is set as hostname (bnc#820213). (forwarded request 176648 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/176682 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=141 --- hostname-setup-shortname.patch | 25 +++++++++++++++++++++++++ systemd-mini.changes | 8 ++++++++ systemd-mini.spec | 10 ++++++++-- systemd.changes | 8 ++++++++ systemd.spec | 10 ++++++++-- 5 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 hostname-setup-shortname.patch diff --git a/hostname-setup-shortname.patch b/hostname-setup-shortname.patch new file mode 100644 index 00000000..37f7440e --- /dev/null +++ b/hostname-setup-shortname.patch @@ -0,0 +1,25 @@ +Index: systemd-202/src/core/hostname-setup.c +=================================================================== +--- systemd-202.orig/src/core/hostname-setup.c ++++ systemd-202/src/core/hostname-setup.c +@@ -32,7 +32,7 @@ + #include "fileio.h" + + static int read_and_strip_hostname(const char *path, char **hn) { +- char *s; ++ char *s, *domain; + int r; + + assert(path); +@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const + return -ENOENT; + } + ++ /* strip any leftover of a domain name */ ++ if (domain = strchr(s, '.')) { ++ *domain = NULL; ++ } ++ + *hn = s; + return 0; + } diff --git a/systemd-mini.changes b/systemd-mini.changes index a92519aa..cb74ecbc 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri May 24 11:37:49 UTC 2013 - fcrozat@suse.com + +- Do no ship defaults for sysctl, they should be part of aaa_base + (currently in procps). +- Add hostname-setup-shortname.patch: ensure shortname is set as + hostname (bnc#820213). + ------------------------------------------------------------------- Fri May 17 15:53:33 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 999bce16..628686af 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -156,6 +156,8 @@ Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch +# PATCH-FIX-OPENSUSE hostname-setup-shortname.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname +Patch41: hostname-setup-shortname.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -403,6 +405,7 @@ cp %{SOURCE7} m4/ %patch38 -p1 %patch39 -p1 %patch40 -p1 +%patch41 -p1 %build autoreconf -fiv @@ -519,7 +522,11 @@ EOF # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the # journal. -rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/50-coredump.conf +rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf + +# do not ship sysctl defaults in systemd package, will be part of +# aaa_base (in procps for now) +rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README @@ -822,7 +829,6 @@ rm -rf %{buildroot} %dir %{_sysconfdir}/binfmt.d %dir %{_libexecdir}/sysctl.d -%{_libexecdir}/sysctl.d/50-default.conf %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/systemd diff --git a/systemd.changes b/systemd.changes index a92519aa..cb74ecbc 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri May 24 11:37:49 UTC 2013 - fcrozat@suse.com + +- Do no ship defaults for sysctl, they should be part of aaa_base + (currently in procps). +- Add hostname-setup-shortname.patch: ensure shortname is set as + hostname (bnc#820213). + ------------------------------------------------------------------- Fri May 17 15:53:33 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index ff03d454..65273b41 100644 --- a/systemd.spec +++ b/systemd.spec @@ -151,6 +151,8 @@ Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch +# PATCH-FIX-OPENSUSE hostname-setup-shortname.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname +Patch41: hostname-setup-shortname.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -398,6 +400,7 @@ cp %{SOURCE7} m4/ %patch38 -p1 %patch39 -p1 %patch40 -p1 +%patch41 -p1 %build autoreconf -fiv @@ -514,7 +517,11 @@ EOF # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the # journal. -rm -f %{buildroot}%{_libdir}/../lib/sysctl.d/50-coredump.conf +rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf + +# do not ship sysctl defaults in systemd package, will be part of +# aaa_base (in procps for now) +rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README @@ -817,7 +824,6 @@ rm -rf %{buildroot} %dir %{_sysconfdir}/binfmt.d %dir %{_libexecdir}/sysctl.d -%{_libexecdir}/sysctl.d/50-default.conf %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/systemd From f2b41b08570cc0f442c7e05cfcbfd8000f7b492cde0bf83ed34c9c21207cf9e9 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 5 Jun 2013 11:16:22 +0000 Subject: [PATCH 138/221] Accepting request 176958 from Base:System - Update to release 204: + systemd-nspawn creates etc/resolv.conf in container if needed. + systemd-nspawn will store metadata about container in container cgroup including its root directory. + cgroup hierarchy has been reworked, all objects are now suffxed (with .session for user sessions, .user for users, .nspawn for containers). All cgroup names are now escaped to preven collision of object names. + systemctl list-dependencies gained --plain, --reverse, --after and --before switches. + systemd-inhibit shows processes name taking inhibitor lock. + nss-myhostname will now resolve "localhost" implicitly. + .include is not allowed recursively anymore and only in unit files. Drop-in files should be favored in most cases. + systemd-analyze gained "critical-chain" command, to get slowest chain of units run during boot-up. + systemd-nspawn@.service has been added to easily run nspawn container for system services. Just start "systemd-nspawn@foobar.service" and container from /var/lib/container/foobar" will be booted. + systemd-cgls has new --machine parameter to list processes from one container. + ConditionSecurity= can now check for apparmor and SMACK. + /etc/systemd/sleep.conf has been introduced to configure which kernel operation will be execute when "suspend", "hibernate" or "hybrid-sleep" is requrested. It allow new kernel "freeze" state to be used too. (This setting won't have any effect if pm-utils is installed). + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape passed argument if applicable. (forwarded request 176957 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/176958 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=142 --- ...splash-handling-for-password-dialogs.patch | 57 ------- Ensure-debugshell-has-a-correct-value.patch | 22 --- ...-suspend-hibernate-calls-to-pm-utils.patch | 146 +++++++++--------- ...pport-for-SysV-scripts-for-the-early.patch | 2 +- Start-ctrl-alt-del.target-irreversibly.patch | 27 ++++ apply-ACL-for-nvidia-device-nodes.patch | 27 +++- ...alid-address-familily-is-passed-to-g.patch | 24 +-- ...rtname-is-set-as-hostname-bnc-820213.patch | 34 ++++ ...s-started-before-local-fs-pre-for-lo.patch | 21 --- ...t-after-cryptsetup-target-is-reached.patch | 14 +- handle-etc-HOSTNAME.patch | 2 +- hostname-setup-shortname.patch | 25 --- ...lly-warn-if-nss-myhostname-is-called.patch | 59 ++++--- ...nf-and-adds-dependencies-accordingly.patch | 12 +- ...script-heuristic-and-add-new-LSB-hea.patch | 6 +- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 6 +- ...oes-not-expand-u-so-revert-back-to-I.patch | 27 ++++ systemd-202.tar.xz | 3 - systemd-204.tar.xz | 3 + systemd-mini.changes | 59 +++++++ systemd-mini.spec | 27 ++-- systemd.changes | 59 +++++++ systemd.spec | 27 ++-- 23 files changed, 388 insertions(+), 301 deletions(-) delete mode 100644 Add-bootsplash-handling-for-password-dialogs.patch delete mode 100644 Ensure-debugshell-has-a-correct-value.patch create mode 100644 Start-ctrl-alt-del.target-irreversibly.patch create mode 100644 ensure-shortname-is-set-as-hostname-bnc-820213.patch delete mode 100644 ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch delete mode 100644 hostname-setup-shortname.patch create mode 100644 systemctl-does-not-expand-u-so-revert-back-to-I.patch delete mode 100644 systemd-202.tar.xz create mode 100644 systemd-204.tar.xz diff --git a/Add-bootsplash-handling-for-password-dialogs.patch b/Add-bootsplash-handling-for-password-dialogs.patch deleted file mode 100644 index bf97901b..00000000 --- a/Add-bootsplash-handling-for-password-dialogs.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Stefan Seyfried -Date: Thu, 16 Dec 2010 11:30:17 +0100 -Subject: Add bootsplash handling for password dialogs - -openSUSE uses bootsplash.org, so add a crude handling for setting the -splash screen to verbose when a password is asked... ---- - src/shared/ask-password-api.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/src/shared/ask-password-api.c b/src/shared/ask-password-api.c -index 4557155..3750f64 100644 ---- a/src/shared/ask-password-api.c -+++ b/src/shared/ask-password-api.c -@@ -63,6 +63,9 @@ int ask_password_tty( - bool reset_tty = false; - bool silent_mode = false; - bool dirty = false; -+ bool splash_silent = false; -+ FILE *procsplash = NULL; -+ char *line = NULL; - enum { - POLL_TTY, - POLL_INOTIFY -@@ -106,6 +109,19 @@ int ask_password_tty( - } - - reset_tty = true; -+ procsplash = fopen("/proc/splash", "r+"); -+ if (procsplash) { -+ getline(&line, &p, procsplash); -+ p = 0; /* reset, just to make sure */ -+ if (line && -+ (strstr(line, "on\n") == line + strlen(line) - 3) && -+ (strstr(line, "silent") != NULL)) { -+ splash_silent = true; -+ rewind(procsplash); -+ fprintf(procsplash, "verbose\n"); -+ fflush(procsplash); -+ } -+ } - } - - zero(pollfd); -@@ -239,6 +255,12 @@ finish: - close_nointr_nofail(ttyfd); - } - -+ if (splash_silent) { /* only set if procsplash != NULL */ -+ rewind(procsplash); -+ fprintf(procsplash, "silent\n"); -+ fclose(procsplash); -+ } -+ - return r; - } - diff --git a/Ensure-debugshell-has-a-correct-value.patch b/Ensure-debugshell-has-a-correct-value.patch deleted file mode 100644 index 0babbb0d..00000000 --- a/Ensure-debugshell-has-a-correct-value.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Frederic Crozat -Date: Tue, 4 Dec 2012 16:51:32 +0000 -Subject: Ensure debugshell has a correct value - -use /bin/bash if sushell isn't installed (bnc#789052). ---- - units/debug-shell.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/debug-shell.service.in b/units/debug-shell.service.in -index a6acad3..64b5e0d 100644 ---- a/units/debug-shell.service.in -+++ b/units/debug-shell.service.in -@@ -13,7 +13,7 @@ IgnoreOnIsolate=yes - - [Service] - Environment=TERM=linux --ExecStart=@SUSHELL@ -+ExecStart=/bin/bash -c '[ -x @SUSHELL@ ] && exec @SUSHELL@ || exec /bin/bash' - Restart=always - RestartSec=0 - StandardInput=tty diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 8abce1db..7e6b7b44 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -4,99 +4,93 @@ Subject: Forward suspend / hibernate calls to pm-utils forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) --- - src/sleep/sleep.c | 27 ++++++++++++++++++++++++--- - 1 file changed, 24 insertions(+), 3 deletions(-) + src/sleep/sleep.c | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index f5e78c1..8d91117 100644 +index a56ab89..232ab67 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c -@@ -22,6 +22,7 @@ - #include +@@ -24,6 +24,7 @@ #include #include + #include +#include - #include "log.h" - #include "util.h" -@@ -32,6 +33,9 @@ - int main(int argc, char *argv[]) { - const char *verb; - char* arguments[4]; -+ const char *pmtools; -+ bool delegate_to_pmutils = false; -+ struct stat buf; - int r; - FILE *f; + #include "systemd/sd-id128.h" + #include "systemd/sd-messages.h" +@@ -35,6 +36,8 @@ + #include "sleep-config.h" -@@ -45,17 +49,27 @@ int main(int argc, char *argv[]) { - goto finish; + static char* arg_verb = NULL; ++static bool delegate_to_pmutils = false; ++static const char *pmtools; + + static int write_mode(char **modes) { + int r = 0; +@@ -50,9 +53,6 @@ static int write_mode(char **modes) { + r = k; } -- if (streq(argv[1], "suspend")) -+ if (streq(argv[1], "suspend")) { - verb = "mem"; -- else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) +- if (r < 0) +- log_error("Failed to write mode to /sys/power/disk: %s", +- strerror(-r)); + + return r; + } +@@ -90,6 +90,8 @@ static int execute(char **modes, char **states) { + FILE *f; + const char* note = strappenda("SLEEP=", arg_verb); + ++ if (!delegate_to_pmutils) { ++ + /* This file is opened first, so that if we hit an error, + * we can abort before modyfing any state. */ + f = fopen("/sys/power/state", "we"); +@@ -102,6 +104,7 @@ static int execute(char **modes, char **states) { + r = write_mode(modes); + if (r < 0) + return r; ++ } + + arguments[0] = NULL; + arguments[1] = (char*) "pre"; +@@ -114,8 +117,10 @@ static int execute(char **modes, char **states) { + "MESSAGE=Suspending system...", + note, + NULL); +- ++ if (!delegate_to_pmutils) + r = write_state(f, states); ++ else ++ r = -system(pmtools); + if (r < 0) + return r; + +@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *argv[]) { + }; + + int c; ++ struct stat buf; + + assert(argc >= 0); + assert(argv); +@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *argv[]) { + return -EINVAL; + } + ++ if (streq(arg_verb, "suspend")) { + pmtools = "/usr/sbin/pm-suspend"; + } -+ else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) { - verb = "disk"; -+ if (streq(argv[1], "hibernate")) ++ else if (streq(arg_verb, "hibernate") || streq(arg_verb, "hybrid-sleep")) { ++ if (streq(arg_verb, "hibernate")) + pmtools = "/usr/sbin/pm-hibernate"; + else + pmtools = "/usr/sbin/pm-suspend-hybrid"; + } - else { - log_error("Unknown action '%s'.", argv[1]); - r = -EINVAL; - goto finish; - } - ++ + delegate_to_pmutils = (stat(pmtools, &buf) >= 0 && S_ISREG(buf.st_mode) && (buf.st_mode & 0111)); + - /* Configure the hibernation mode */ -+ if (!delegate_to_pmutils) { - if (streq(argv[1], "hibernate")) { - if (write_string_file("/sys/power/disk", "platform") < 0) - write_string_file("/sys/power/disk", "shutdown"); -@@ -65,13 +79,14 @@ int main(int argc, char *argv[]) { - write_string_file("/sys/power/disk", "shutdown"); - } + return 1 /* work to do */; + } -+ - f = fopen("/sys/power/state", "we"); - if (!f) { - log_error("Failed to open /sys/power/state: %m"); - r = -errno; - goto finish; - } -- -+ } - arguments[0] = NULL; - arguments[1] = (char*) "pre"; - arguments[2] = argv[1]; -@@ -97,11 +112,16 @@ int main(int argc, char *argv[]) { - "SLEEP=hybrid-sleep", - NULL); - -+ if (delegate_to_pmutils) { -+ r = -system(pmtools); -+ } -+ else { - fputs(verb, f); - fputc('\n', f); - fflush(f); - - r = ferror(f) ? -errno : 0; -+ } - - if (streq(argv[1], "suspend")) - log_struct(LOG_INFO, -@@ -119,6 +139,7 @@ int main(int argc, char *argv[]) { - arguments[1] = (char*) "post"; - execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments); - -+ if (!delegate_to_pmutils) - fclose(f); - - finish: diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch index 2432288a..eeb004a2 100644 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -28,7 +28,7 @@ index c13ff35..0b39ec6 100644 { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, -+#ifdef TARGET_SUSE ++#ifdef HAVE_SYSV_COMPAT + /* SUSE style boot.d */ + { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, +#endif diff --git a/Start-ctrl-alt-del.target-irreversibly.patch b/Start-ctrl-alt-del.target-irreversibly.patch new file mode 100644 index 00000000..68a94293 --- /dev/null +++ b/Start-ctrl-alt-del.target-irreversibly.patch @@ -0,0 +1,27 @@ +From f49fd1d57a429d4a05ac86352c017a845f8185b3 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Tue, 7 May 2013 14:16:53 +0200 +Subject: [PATCH] Start ctrl-alt-del.target irreversibly + +This makes ctrl-alt-del reboots more robust, just like "systemctl +reboot". +--- + src/core/manager.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/manager.c b/src/core/manager.c +index c7f8f20..0508628 100644 +--- a/src/core/manager.c ++++ b/src/core/manager.c +@@ -1372,7 +1372,7 @@ static int manager_process_signal_fd(Manager *m) { + + case SIGINT: + if (m->running_as == SYSTEMD_SYSTEM) { +- manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE); ++ manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE_IRREVERSIBLY); + break; + } + +-- +1.8.1.4 + diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index 5d5f7b83..e89708a3 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -11,12 +11,33 @@ diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c index cb045a9..51093f2 100644 --- a/src/login/logind-acl.c +++ b/src/login/logind-acl.c -@@ -240,6 +240,9 @@ int devnode_acl_all(struct udev *udev, +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "logind-acl.h" + #include "util.h" +@@ -240,6 +241,22 @@ int devnode_acl_all(struct udev *udev, goto finish; } -+ devnode_acl("/dev/nvidia0", flush, del, old_uid, add, new_uid); -+ devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid); ++ /* only search for nvidia* if /dev/nvidiactl exists */ ++ if (!devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid)) { ++ char** directory; ++ char **f, *resolved; ++ ++ if (get_files_in_directory ("/dev", &directory)) { ++ STRV_FOREACH(f,directory) ++ if (startswith(*f,"nvidia")) { ++ resolved = strjoin("/dev/", *f, NULL); ++ devnode_acl(resolved, flush, del, old_uid, add, new_uid); ++ free(resolved); ++ } ++ } ++ strv_free(directory); ++ } + finish: if (e) diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch index b184dde6..b33c5589 100644 --- a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +++ b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -4,16 +4,16 @@ Subject: avoid assertion if invalid address familily is passed to gethostbyaddr_r (bnc#791101) --- - src/nss-myhostname/nss-myhostname.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) + src/nss-myhostname/nss-myhostname.c | 6 ++++++ + 1 file changed, 6 insertions(+) diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c -index 16ccb3e..884eb99 100644 +index 60e256d..e97d4e5 100644 --- a/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c -@@ -383,6 +383,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( - struct address *a; - unsigned n_addresses = 0, n; +@@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( + uint32_t local_address_ipv4 = LOCALADDRESS_IPV4; + const char *canonical = NULL, *additional = NULL; + if (af != AF_INET && af != AF_INET6) { + *errnop = EAFNOSUPPORT; @@ -24,15 +24,3 @@ index 16ccb3e..884eb99 100644 if (len != PROTO_ADDRESS_SIZE(af)) { *errnop = EINVAL; *h_errnop = NO_RECOVERY; -@@ -398,11 +404,6 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( - - if (memcmp(addr, LOCALADDRESS_IPV6, 16) == 0) - goto found; -- -- } else { -- *errnop = EAFNOSUPPORT; -- *h_errnop = NO_DATA; -- return NSS_STATUS_UNAVAIL; - } - - ifconf_acquire_addresses(&addresses, &n_addresses); diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch new file mode 100644 index 00000000..007e6010 --- /dev/null +++ b/ensure-shortname-is-set-as-hostname-bnc-820213.patch @@ -0,0 +1,34 @@ +From: Frederic Crozat +Date: Tue, 28 May 2013 15:17:35 +0200 +Subject: ensure shortname is set as hostname (bnc#820213) + +strip hostname so the domain part isn't set as part of the hostname +--- + src/core/hostname-setup.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c +index 0ce683b..1c8e555 100644 +--- a/src/core/hostname-setup.c ++++ b/src/core/hostname-setup.c +@@ -32,7 +32,7 @@ + #include "fileio.h" + + static int read_and_strip_hostname(const char *path, char **hn) { +- char *s; ++ char *s, *domain; + int r; + + assert(path); +@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const char *path, char **hn) { + return -ENOENT; + } + ++ /* strip any leftover of a domain name */ ++ if (domain = strchr(s, '.')) { ++ *domain = NULL; ++ } ++ + *hn = s; + return 0; + } diff --git a/ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch b/ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch deleted file mode 100644 index 795980bd..00000000 --- a/ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: Frederic Crozat -Date: Mon, 8 Apr 2013 14:51:47 +0200 -Subject: ensure systemd-udevd is started before local-fs-pre for loopback - mount - -ensure udevd is started (and therefore static devices are created) -before mounting (bnc#809820). ---- - units/local-fs-pre.target | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/local-fs-pre.target b/units/local-fs-pre.target -index 05fcbd4..7f13907 100644 ---- a/units/local-fs-pre.target -+++ b/units/local-fs-pre.target -@@ -9,4 +9,4 @@ - Description=Local File Systems (Pre) - Documentation=man:systemd.special(7) - RefuseManualStart=yes --After=md.service lvm.service dmraid.service -+After=md.service lvm.service dmraid.service systemd-udevd.service diff --git a/force-lvm-restart-after-cryptsetup-target-is-reached.patch b/force-lvm-restart-after-cryptsetup-target-is-reached.patch index ccfaf3f0..8b4f879c 100644 --- a/force-lvm-restart-after-cryptsetup-target-is-reached.patch +++ b/force-lvm-restart-after-cryptsetup-target-is-reached.patch @@ -7,7 +7,7 @@ Subject: force lvm restart after cryptsetup target is reached 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index ac0ed58..9b8e229 100644 +index 81b7708..1940985 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c @@ -22,6 +22,7 @@ @@ -73,17 +73,17 @@ index ac0ed58..9b8e229 100644 static int create_disk( const char *name, const char *device, -@@ -331,6 +380,7 @@ int main(int argc, char *argv[]) { +@@ -334,6 +383,7 @@ int main(int argc, char *argv[]) { _cleanup_fclose_ FILE *f = NULL; unsigned n = 0; int r = EXIT_SUCCESS; + bool no_crypttab = false; char **i; - _cleanup_strv_free_ char **arg_proc_cmdline_disks_done = NULL; - _cleanup_strv_free_ char **arg_proc_cmdline_disks = NULL; -@@ -360,8 +410,10 @@ int main(int argc, char *argv[]) { - f = fopen("/etc/crypttab", "re"); + if (argc > 1 && argc != 4) { +@@ -361,8 +411,10 @@ int main(int argc, char *argv[]) { + + f = fopen("/etc/crypttab", "re"); if (!f) { - if (errno == ENOENT) + if (errno == ENOENT) { @@ -93,7 +93,7 @@ index ac0ed58..9b8e229 100644 else { r = EXIT_FAILURE; log_error("Failed to open /etc/crypttab: %m"); -@@ -445,5 +497,8 @@ int main(int argc, char *argv[]) { +@@ -464,5 +516,8 @@ next: r = EXIT_FAILURE; } diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch index a547f9f3..075d67d8 100644 --- a/handle-etc-HOSTNAME.patch +++ b/handle-etc-HOSTNAME.patch @@ -9,7 +9,7 @@ Subject: handle /etc/HOSTNAME 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c -index ac508af..15d206c 100644 +index 8aa1cff..0ce683b 100644 --- a/src/core/hostname-setup.c +++ b/src/core/hostname-setup.c @@ -61,12 +61,24 @@ int hostname_setup(void) { diff --git a/hostname-setup-shortname.patch b/hostname-setup-shortname.patch deleted file mode 100644 index 37f7440e..00000000 --- a/hostname-setup-shortname.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: systemd-202/src/core/hostname-setup.c -=================================================================== ---- systemd-202.orig/src/core/hostname-setup.c -+++ systemd-202/src/core/hostname-setup.c -@@ -32,7 +32,7 @@ - #include "fileio.h" - - static int read_and_strip_hostname(const char *path, char **hn) { -- char *s; -+ char *s, *domain; - int r; - - assert(path); -@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const - return -ENOENT; - } - -+ /* strip any leftover of a domain name */ -+ if (domain = strchr(s, '.')) { -+ *domain = NULL; -+ } -+ - *hn = s; - return 0; - } diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch index 7a75fad5..93f8c8bf 100644 --- a/optionally-warn-if-nss-myhostname-is-called.patch +++ b/optionally-warn-if-nss-myhostname-is-called.patch @@ -4,14 +4,14 @@ Subject: optionally warn if nss-myhostname is called --- configure.ac | 11 +++++++++++ - src/nss-myhostname/nss-myhostname.c | 35 +++++++++++++++++++++++++++++++++++ - 2 files changed, 46 insertions(+) + src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++ + 2 files changed, 43 insertions(+) diff --git a/configure.ac b/configure.ac -index 5173783..e58d694 100644 +index e1278e8..06eb98d 100644 --- a/configure.ac +++ b/configure.ac -@@ -714,6 +714,17 @@ if test "x$enable_myhostname" != "xno"; then +@@ -725,6 +725,17 @@ if test "x$enable_myhostname" != "xno"; then fi AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) @@ -30,10 +30,10 @@ index 5173783..e58d694 100644 AC_ARG_WITH(firmware-path, AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c -index 884eb99..dbd9a2d 100644 +index e97d4e5..a2a6de8 100644 --- a/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c -@@ -30,6 +30,9 @@ +@@ -29,6 +29,9 @@ #include #include #include @@ -43,7 +43,7 @@ index 884eb99..dbd9a2d 100644 #include "ifconf.h" #include "macro.h" -@@ -44,6 +47,10 @@ +@@ -47,6 +50,10 @@ #define LOCALADDRESS_IPV6 &in6addr_loopback #define LOOPBACK_INTERFACE "lo" @@ -54,40 +54,37 @@ index 884eb99..dbd9a2d 100644 enum nss_status _nss_myhostname_gethostbyname4_r( const char *name, struct gaih_addrtuple **pat, -@@ -115,6 +122,10 @@ enum nss_status _nss_myhostname_gethostbyname4_r( - return NSS_STATUS_NOTFOUND; +@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostbyname4_r( + return NSS_STATUS_NOTFOUND; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif + /* If this fails, n_addresses is 0. Which is fine */ + ifconf_acquire_addresses(&addresses, &n_addresses); + +@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostbyname3_r( + local_address_ipv4 = LOCALADDRESS_IPV4; } +#ifdef LOG_NSS_MY_HOSTNAME_WARNING + warn(hn); +#endif -+ - /* If this fails, n_addresses is 0. Which is fine */ - ifconf_acquire_addresses(&addresses, &n_addresses); - -@@ -334,6 +345,10 @@ enum nss_status _nss_myhostname_gethostbyname3_r( - return NSS_STATUS_NOTFOUND; + return fill_in_hostent( + canonical, additional, + af, +@@ -509,6 +522,9 @@ found: + canonical = hn; } +#ifdef LOG_NSS_MY_HOSTNAME_WARNING + warn(hn); +#endif -+ - return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, canonp); - } - -@@ -429,6 +444,10 @@ found: - return NSS_STATUS_UNAVAIL; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif -+ - return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, NULL); - - } -@@ -448,3 +467,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r( + return fill_in_hostent( + canonical, additional, + af, +@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r( errnop, h_errnop, NULL); } diff --git a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch index e1f7405e..ec213871 100644 --- a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +++ b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch @@ -1,7 +1,6 @@ -From 0d4db3c514f1fe3fe13acb7a34a5a517db9ccb2d Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Fri, 30 Sep 2011 13:55:31 +0000 -Subject: [PATCH] parse /etc/insserv.conf and adds dependencies accordingly +Subject: parse /etc/insserv.conf and adds dependencies accordingly (bnc#721428) --- @@ -9,10 +8,10 @@ Subject: [PATCH] parse /etc/insserv.conf and adds dependencies accordingly 1 file changed, 104 insertions(+) diff --git a/src/core/service.c b/src/core/service.c -index cf0bbe0..471ce8d 100644 +index 3617c24..3c66cdb 100644 --- a/src/core/service.c +++ b/src/core/service.c -@@ -3440,6 +3440,108 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { +@@ -3443,6 +3443,108 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { } #ifdef HAVE_SYSV_COMPAT @@ -121,7 +120,7 @@ index cf0bbe0..471ce8d 100644 static int service_enumerate(Manager *m) { char **p; -@@ -3600,6 +3702,8 @@ static int service_enumerate(Manager *m) { +@@ -3603,6 +3705,8 @@ static int service_enumerate(Manager *m) { r = 0; @@ -130,6 +129,3 @@ index cf0bbe0..471ce8d 100644 finish: for (i = 0; i < ELEMENTSOF(rcnd_table); i++) --- -1.8.1.4 - diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch index 3efed705..2e13936d 100644 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -12,7 +12,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/core/service.c b/src/core/service.c -index 5118b06..c13ff35 100644 +index a8b0d9d..c357b33 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -135,6 +135,7 @@ static void service_init(Unit *u) { @@ -68,7 +68,7 @@ index 5118b06..c13ff35 100644 s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2074,7 +2104,7 @@ static void service_enter_running(Service *s, ServiceResult f) { +@@ -2077,7 +2107,7 @@ static void service_enter_running(Service *s, ServiceResult f) { if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -78,7 +78,7 @@ index 5118b06..c13ff35 100644 #endif service_set_state(s, SERVICE_RUNNING); diff --git a/src/core/service.h b/src/core/service.h -index d1e53bf..4cd1a79 100644 +index 703d3fa..dc52e8c 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -176,6 +176,7 @@ struct Service { diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index f57a2748..e5c85f0c 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -11,10 +11,10 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink create mode 100644 units/var-run.mount diff --git a/Makefile.am b/Makefile.am -index e82d092..38309a9 100644 +index 8730f66..b8cf696 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -406,6 +406,12 @@ dist_systemunit_DATA = \ +@@ -409,6 +409,12 @@ dist_systemunit_DATA = \ units/system-update.target \ units/initrd-switch-root.target @@ -27,7 +27,7 @@ index e82d092..38309a9 100644 nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -4018,6 +4024,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -4058,6 +4064,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service diff --git a/systemctl-does-not-expand-u-so-revert-back-to-I.patch b/systemctl-does-not-expand-u-so-revert-back-to-I.patch new file mode 100644 index 00000000..6502fa49 --- /dev/null +++ b/systemctl-does-not-expand-u-so-revert-back-to-I.patch @@ -0,0 +1,27 @@ +From 9541fe6adff9941e487084c718ff2d46ed2929c6 Mon Sep 17 00:00:00 2001 +From: Auke Kok +Date: Thu, 9 May 2013 09:39:15 -0700 +Subject: [PATCH] systemctl does not expand %u, so revert back to %I + +The description field is only displayed by systemctl, and +it can't expand %u properly (it will always display "root"). +--- + units/user@.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/user@.service.in b/units/user@.service.in +index 3cf1347..ece671d 100644 +--- a/units/user@.service.in ++++ b/units/user@.service.in +@@ -6,7 +6,7 @@ + # (at your option) any later version. + + [Unit] +-Description=User Manager for %u ++Description=User Manager for %I + After=systemd-user-sessions.service + + [Service] +-- +1.8.1.4 + diff --git a/systemd-202.tar.xz b/systemd-202.tar.xz deleted file mode 100644 index a2ff6a2e..00000000 --- a/systemd-202.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c43073252a52eb9f9ab9bd698be0192bcb2175ba5daba6057250083dd64e059 -size 2149860 diff --git a/systemd-204.tar.xz b/systemd-204.tar.xz new file mode 100644 index 00000000..ae11dd5d --- /dev/null +++ b/systemd-204.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:072c393503c7c1e55ca7acf3db659cbd28c7fe5fa94fab3db95360bafd96731b +size 2186264 diff --git a/systemd-mini.changes b/systemd-mini.changes index cb74ecbc..8e060a7a 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,62 @@ +------------------------------------------------------------------- +Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com + +- Update to release 204: + + systemd-nspawn creates etc/resolv.conf in container if needed. + + systemd-nspawn will store metadata about container in container + cgroup including its root directory. + + cgroup hierarchy has been reworked, all objects are now suffxed + (with .session for user sessions, .user for users, .nspawn for + containers). All cgroup names are now escaped to preven + collision of object names. + + systemctl list-dependencies gained --plain, --reverse, --after + and --before switches. + + systemd-inhibit shows processes name taking inhibitor lock. + + nss-myhostname will now resolve "localhost" implicitly. + + .include is not allowed recursively anymore and only in unit + files. Drop-in files should be favored in most cases. + + systemd-analyze gained "critical-chain" command, to get slowest + chain of units run during boot-up. + + systemd-nspawn@.service has been added to easily run nspawn + container for system services. Just start + "systemd-nspawn@foobar.service" and container from + /var/lib/container/foobar" will be booted. + + systemd-cgls has new --machine parameter to list processes from + one container. + + ConditionSecurity= can now check for apparmor and SMACK. + + /etc/systemd/sleep.conf has been introduced to configure which + kernel operation will be execute when "suspend", "hibernate" or + "hybrid-sleep" is requrested. It allow new kernel "freeze" + state to be used too. (This setting won't have any effect if + pm-utils is installed). + + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape + passed argument if applicable. +- Regenerate some patches for this new release. +- Rename hostname-setup-shortname.patch to + ensure-shortname-is-set-as-hostname-bnc-820213.patch to be git + format-patch friendly. +- Update apply-ACL-for-nvidia-device-nodes.patch to apply ACL to + /dev/nvidia* (bnc#808319). +- Remove Ensure-debugshell-has-a-correct-value.patch, doable with a + configure option. +- Add systemctl-does-not-expand-u-so-revert-back-to-I.patch: avoids + expansion errors. +- Add Start-ctrl-alt-del.target-irreversibly.patch: ctrl-alt-del + should be irreversible for reliability. + +------------------------------------------------------------------- +Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org + +- Drop Add-bootsplash-handling-for-password-dialogs.patch bootsplash +support has been removed from the kernel. +- Drop ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch +fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166 +- Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +only on ARM, patch rejected upstream because is too generic. +- no such define TARGET_SUSE exists but it is used in +Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +use HAVE_SYSV_COMPAT instead. + ------------------------------------------------------------------- Fri May 24 11:37:49 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 628686af..63e1a7ba 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -25,7 +25,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 202 +Version: 204 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -118,7 +118,6 @@ Source1062: systemd-udev-root-symlink Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch # PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called Patch1: optionally-warn-if-nss-myhostname-is-called.patch -Patch2: Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -138,16 +137,12 @@ Patch18: fix-owner-of-var-log-btmp.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch -# PATCH-FIX-OPENSUSE Ensure-debugshell-has-a-correct-value.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available -Patch19: Ensure-debugshell-has-a-correct-value.patch # PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch # PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch -# PATCH-FIX-UPSTREAM ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch bnc#809820 fcrozat@suse.com -- loopback mount should be started after /dev/loop-control is available -Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts @@ -156,8 +151,8 @@ Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch -# PATCH-FIX-OPENSUSE hostname-setup-shortname.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname -Patch41: hostname-setup-shortname.patch +# PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname +Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -171,6 +166,10 @@ Patch24: handle-etc-HOSTNAME.patch Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +# PATCH-FIX-UPSTREAM systemctl-does-not-expand-u-so-revert-back-to-I.patch fcrozat@suse.com -- avoids expansion errors. +Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch +# PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability. +Patch43: Start-ctrl-alt-del.target-irreversibly.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -372,7 +371,6 @@ cp %{SOURCE7} m4/ #systemd %patch0 -p1 %patch1 -p1 -%patch2 -p1 %patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} @@ -392,20 +390,22 @@ cp %{SOURCE7} m4/ %patch16 -p1 %patch17 -p1 %patch18 -p1 -%patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 -%patch26 -p1 %patch27 -p1 %patch37 -p1 +%ifarch %arm %patch38 -p1 +%endif %patch39 -p1 %patch40 -p1 %patch41 -p1 +%patch42 -p1 +%patch43 -p1 %build autoreconf -fiv @@ -431,6 +431,7 @@ export V=1 --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ + --with-debug-shell=/bin/bash \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -771,6 +772,10 @@ rm -rf %{buildroot} %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat +%dir %{_prefix}/lib/kernel +%dir %{_prefix}/lib/kernel/install.d +%{_prefix}/lib/kernel/install.d/50-depmod.install +%{_prefix}/lib/kernel/install.d/90-loaderentry.install %dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system diff --git a/systemd.changes b/systemd.changes index cb74ecbc..8e060a7a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,62 @@ +------------------------------------------------------------------- +Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com + +- Update to release 204: + + systemd-nspawn creates etc/resolv.conf in container if needed. + + systemd-nspawn will store metadata about container in container + cgroup including its root directory. + + cgroup hierarchy has been reworked, all objects are now suffxed + (with .session for user sessions, .user for users, .nspawn for + containers). All cgroup names are now escaped to preven + collision of object names. + + systemctl list-dependencies gained --plain, --reverse, --after + and --before switches. + + systemd-inhibit shows processes name taking inhibitor lock. + + nss-myhostname will now resolve "localhost" implicitly. + + .include is not allowed recursively anymore and only in unit + files. Drop-in files should be favored in most cases. + + systemd-analyze gained "critical-chain" command, to get slowest + chain of units run during boot-up. + + systemd-nspawn@.service has been added to easily run nspawn + container for system services. Just start + "systemd-nspawn@foobar.service" and container from + /var/lib/container/foobar" will be booted. + + systemd-cgls has new --machine parameter to list processes from + one container. + + ConditionSecurity= can now check for apparmor and SMACK. + + /etc/systemd/sleep.conf has been introduced to configure which + kernel operation will be execute when "suspend", "hibernate" or + "hybrid-sleep" is requrested. It allow new kernel "freeze" + state to be used too. (This setting won't have any effect if + pm-utils is installed). + + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape + passed argument if applicable. +- Regenerate some patches for this new release. +- Rename hostname-setup-shortname.patch to + ensure-shortname-is-set-as-hostname-bnc-820213.patch to be git + format-patch friendly. +- Update apply-ACL-for-nvidia-device-nodes.patch to apply ACL to + /dev/nvidia* (bnc#808319). +- Remove Ensure-debugshell-has-a-correct-value.patch, doable with a + configure option. +- Add systemctl-does-not-expand-u-so-revert-back-to-I.patch: avoids + expansion errors. +- Add Start-ctrl-alt-del.target-irreversibly.patch: ctrl-alt-del + should be irreversible for reliability. + +------------------------------------------------------------------- +Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org + +- Drop Add-bootsplash-handling-for-password-dialogs.patch bootsplash +support has been removed from the kernel. +- Drop ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch +fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166 +- Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +only on ARM, patch rejected upstream because is too generic. +- no such define TARGET_SUSE exists but it is used in +Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +use HAVE_SYSV_COMPAT instead. + ------------------------------------------------------------------- Fri May 24 11:37:49 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 65273b41..ace3191d 100644 --- a/systemd.spec +++ b/systemd.spec @@ -23,7 +23,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 202 +Version: 204 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -113,7 +113,6 @@ Source1062: systemd-udev-root-symlink Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch # PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called Patch1: optionally-warn-if-nss-myhostname-is-called.patch -Patch2: Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -133,16 +132,12 @@ Patch18: fix-owner-of-var-log-btmp.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch -# PATCH-FIX-OPENSUSE Ensure-debugshell-has-a-correct-value.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available -Patch19: Ensure-debugshell-has-a-correct-value.patch # PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch # PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch -# PATCH-FIX-UPSTREAM ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch bnc#809820 fcrozat@suse.com -- loopback mount should be started after /dev/loop-control is available -Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts @@ -151,8 +146,8 @@ Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch -# PATCH-FIX-OPENSUSE hostname-setup-shortname.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname -Patch41: hostname-setup-shortname.patch +# PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname +Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -166,6 +161,10 @@ Patch24: handle-etc-HOSTNAME.patch Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +# PATCH-FIX-UPSTREAM systemctl-does-not-expand-u-so-revert-back-to-I.patch fcrozat@suse.com -- avoids expansion errors. +Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch +# PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability. +Patch43: Start-ctrl-alt-del.target-irreversibly.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -367,7 +366,6 @@ cp %{SOURCE7} m4/ #systemd %patch0 -p1 %patch1 -p1 -%patch2 -p1 %patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} @@ -387,20 +385,22 @@ cp %{SOURCE7} m4/ %patch16 -p1 %patch17 -p1 %patch18 -p1 -%patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 -%patch26 -p1 %patch27 -p1 %patch37 -p1 +%ifarch %arm %patch38 -p1 +%endif %patch39 -p1 %patch40 -p1 %patch41 -p1 +%patch42 -p1 +%patch43 -p1 %build autoreconf -fiv @@ -426,6 +426,7 @@ export V=1 --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ + --with-debug-shell=/bin/bash \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -766,6 +767,10 @@ rm -rf %{buildroot} %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat +%dir %{_prefix}/lib/kernel +%dir %{_prefix}/lib/kernel/install.d +%{_prefix}/lib/kernel/install.d/50-depmod.install +%{_prefix}/lib/kernel/install.d/90-loaderentry.install %dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system From 5392bf0c447ddad801b11eef100a22394932359dd2cc01b9e6be15be90c19b90 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 14 Jun 2013 14:48:02 +0000 Subject: [PATCH 139/221] Accepting request 178890 from Base:System - Cleanup NumLock setting code (handle-numlock-value-in-etc-sysconfig-keyboard.patch). (forwarded request 178889 from sbrabec) OBS-URL: https://build.opensuse.org/request/show/178890 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=143 --- ...lculate-the-ACL-mask-but-only-if-it-.patch | 87 +++++ ...llow-nuking-of-symlinks-to-removed-u.patch | 36 +++ ...port-alien-child-as-alive-when-it-s-.patch | 29 ++ 1006-udev-always-rename-network.patch | 12 +- 1007-add-msft-compability-rules.patch | 29 ++ ...pport-for-SysV-scripts-for-the-early.patch | 22 +- ...-boot-prefixed-initscript-bnc-746506.patch | 10 +- ...STEMCTL_OPTIONS-environment-variable.patch | 10 +- ...lock-value-in-etc-sysconfig-keyboard.patch | 301 +++++++++--------- ...vice-with-detected-pid-as-RemainAfte.patch | 10 +- ...ndle-boot-sysctl.conf-kernel_release.patch | 21 +- systemd-mini.changes | 34 ++ systemd-mini.spec | 35 +- systemd.changes | 34 ++ systemd.spec | 35 +- 15 files changed, 485 insertions(+), 220 deletions(-) create mode 100644 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch create mode 100644 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch create mode 100644 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch create mode 100644 1007-add-msft-compability-rules.patch diff --git a/0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch b/0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch new file mode 100644 index 00000000..cb24f70e --- /dev/null +++ b/0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch @@ -0,0 +1,87 @@ +From 7f20c71497ec7c78c6d2572a0d7075f78b14548a Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 28 May 2013 20:45:34 +0200 +Subject: [PATCH 4/8] journald: DO recalculate the ACL mask, but only if it + doesn't exist + +Since 11ec7ce, journald isn't setting the ACLs properly anymore if +the files had no ACLs to begin with: acl_set_fd fails with EINVAL. + +An ACL with ACL_USER or ACL_GROUP entries but no ACL_MASK entry is +invalid, so make sure a mask exists before trying to set the ACL. +--- + src/journal/journald-server.c | 6 ++++-- + src/shared/acl-util.c | 28 ++++++++++++++++++++++++++++ + src/shared/acl-util.h | 1 + + 3 files changed, 33 insertions(+), 2 deletions(-) + +diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c +index cc52b8a..01f23ce 100644 +--- a/src/journal/journald-server.c ++++ b/src/journal/journald-server.c +@@ -227,9 +227,11 @@ void server_fix_perms(Server *s, JournalFile *f, uid_t uid) { + } + } + +- /* We do not recalculate the mask here, so that the fchmod() mask above stays intact. */ ++ /* We do not recalculate the mask unconditionally here, ++ * so that the fchmod() mask above stays intact. */ + if (acl_get_permset(entry, &permset) < 0 || +- acl_add_perm(permset, ACL_READ) < 0) { ++ acl_add_perm(permset, ACL_READ) < 0 || ++ calc_acl_mask_if_needed(&acl) < 0) { + log_warning("Failed to patch ACL on %s, ignoring: %m", f->path); + goto finish; + } +diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c +index 48bb12f..fb04e49 100644 +--- a/src/shared/acl-util.c ++++ b/src/shared/acl-util.c +@@ -69,6 +69,34 @@ int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry) { + return 0; + } + ++int calc_acl_mask_if_needed(acl_t *acl_p) { ++ acl_entry_t i; ++ int found; ++ ++ assert(acl_p); ++ ++ for (found = acl_get_entry(*acl_p, ACL_FIRST_ENTRY, &i); ++ found > 0; ++ found = acl_get_entry(*acl_p, ACL_NEXT_ENTRY, &i)) { ++ ++ acl_tag_t tag; ++ ++ if (acl_get_tag_type(i, &tag) < 0) ++ return -errno; ++ ++ if (tag == ACL_MASK) ++ return 0; ++ } ++ ++ if (found < 0) ++ return -errno; ++ ++ if (acl_calc_mask(acl_p) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + int search_acl_groups(char*** dst, const char* path, bool* belong) { + acl_t acl; + +diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h +index 23090d9..36ef490 100644 +--- a/src/shared/acl-util.h ++++ b/src/shared/acl-util.h +@@ -24,4 +24,5 @@ + #include + + int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry); ++int calc_acl_mask_if_needed(acl_t *acl_p); + int search_acl_groups(char*** dst, const char* path, bool* belong); +-- +1.8.1.4 + diff --git a/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch b/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch new file mode 100644 index 00000000..4c39c957 --- /dev/null +++ b/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch @@ -0,0 +1,36 @@ +From 3b1680e04cb0ff0e4cf180dbacd067f1f99316a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 3 Jun 2013 13:55:13 -0400 +Subject: [PATCH 6/8] systemctl,core: allow nuking of symlinks to removed units + +Before, one the unit file was deleted, install_context_for_removal() +would refuse to look for symlinks. But we can remove dangling symlinks +anyway. + +In principle, package installation/deinstallation scripts should do +that before the unit is uninstalled, but they don't always do. Also, +a user might have added additional symlinks manually. + +https://bugs.freedesktop.org/show_bug.cgi?id=62395 +--- + src/shared/install.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/shared/install.c b/src/shared/install.c +index edf4d2a..a695e12 100644 +--- a/src/shared/install.c ++++ b/src/shared/install.c +@@ -1413,7 +1413,9 @@ static int install_context_mark_for_removal( + assert_se(hashmap_move_one(c->have_installed, c->will_install, i->name) == 0); + + q = unit_file_search(c, i, paths, root_dir, false); +- if (q < 0) { ++ if (q == -ENOENT) { ++ /* do nothing */ ++ } else if (q < 0) { + if (r >= 0) + r = q; + +-- +1.8.1.4 + diff --git a/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch b/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch new file mode 100644 index 00000000..c99f2428 --- /dev/null +++ b/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch @@ -0,0 +1,29 @@ +From 3608595751f62bbc6d37eb78b746ab6fecfa2d45 Mon Sep 17 00:00:00 2001 +From: Ross Lagerwall +Date: Sun, 9 Jun 2013 17:28:44 +0100 +Subject: [PATCH 8/8] service: don't report alien child as alive when it's not + +When a sigchld is received from an alien child, main_pid is set to +0 then service_enter_running calls main_pid_good to check if the +child is running. This incorrectly returned true because +kill(main_pid, 0) would return >= 0. + +This fixes an error where a service would die and the cgroup would +become empty but the service would still report as active (running). +--- + src/core/service.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-204/src/core/service.c +=================================================================== +--- systemd-204.orig/src/core/service.c ++++ systemd-204/src/core/service.c +@@ -1933,7 +1933,7 @@ static int main_pid_good(Service *s) { + + /* If it's an alien child let's check if it is still + * alive ... */ +- if (s->main_pid_alien) ++ if (s->main_pid_alien && s->main_pid > 0) + return kill(s->main_pid, 0) >= 0 || errno != ESRCH; + + /* .. otherwise assume we'll get a SIGCHLD for it, diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index d6d56edd..d1c61d05 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -8,11 +8,11 @@ udev: ensure that the network interfaces are renamed even if they exist src/udev/udev-event.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) -diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c -index 3db2cb7..3ee9039 100644 ---- a/src/udev/udev-event.c -+++ b/src/udev/udev-event.c -@@ -750,6 +750,7 @@ static int rename_netif(struct udev_event *event) +Index: systemd-204/src/udev/udev-event.c +=================================================================== +--- systemd-204.orig/src/udev/udev-event.c ++++ systemd-204/src/udev/udev-event.c +@@ -750,6 +750,7 @@ static int rename_netif(struct udev_even struct udev_device *dev = event->dev; int sk; struct ifreq ifr; @@ -20,7 +20,7 @@ index 3db2cb7..3ee9039 100644 int err; log_debug("changing net interface name from '%s' to '%s'\n", -@@ -766,12 +767,51 @@ static int rename_netif(struct udev_event *event) +@@ -766,12 +767,51 @@ static int rename_netif(struct udev_even strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev)); strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); err = ioctl(sk, SIOCSIFNAME, &ifr); diff --git a/1007-add-msft-compability-rules.patch b/1007-add-msft-compability-rules.patch new file mode 100644 index 00000000..d24b7694 --- /dev/null +++ b/1007-add-msft-compability-rules.patch @@ -0,0 +1,29 @@ +Index: systemd-204/Makefile.am +=================================================================== +--- systemd-204.orig/Makefile.am ++++ systemd-204/Makefile.am +@@ -2238,6 +2238,10 @@ dist_udevrules_DATA += \ + rules/73-seat-numlock.rules + + # ------------------------------------------------------------------------------ ++dist_udevrules_DATA += \ ++ rules/61-msft.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ +Index: systemd-204/rules/61-msft.rules +=================================================================== +--- /dev/null ++++ systemd-204/rules/61-msft.rules +@@ -0,0 +1,9 @@ ++# MSFT compability rules ++ACTION!="add|change", GOTO="msft_end" ++ ++ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_IDENT_*" ++KERNEL=="sd*[!0-9]|sr*", ENV{SCSI_IDENT_LUN_T10}!="?*", IMPORT{program}="/usr/bin/sg_inq -p di --export $tempnode", ENV{ID_BUS}="scsi" ++KERNEL=="sd*|sr*", ENV{DEVTYPE}=="disk", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-1$env{SCSI_IDENT_LUN_T10}" ++KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-1$env{SCSI_IDENT_LUN_T10}-part%n" ++ ++LABEL="msft_end" diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch index eeb004a2..de856e1f 100644 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -10,10 +10,10 @@ Conflicts: src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) -diff --git a/src/core/service.c b/src/core/service.c -index c13ff35..0b39ec6 100644 ---- a/src/core/service.c -+++ b/src/core/service.c +Index: systemd-204/src/core/service.c +=================================================================== +--- systemd-204.orig/src/core/service.c ++++ systemd-204/src/core/service.c @@ -51,7 +51,8 @@ typedef enum RunlevelType { @@ -55,7 +55,7 @@ index c13ff35..0b39ec6 100644 #endif static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { -@@ -332,6 +345,9 @@ static char *sysv_translate_name(const char *name) { +@@ -332,6 +345,9 @@ static char *sysv_translate_name(const c if (endswith(name, ".sh")) /* Drop .sh suffix */ strcpy(stpcpy(r, name) - 3, ".service"); @@ -65,7 +65,7 @@ index c13ff35..0b39ec6 100644 else /* Normal init script name */ strcpy(stpcpy(r, name), ".service"); -@@ -934,6 +950,13 @@ static int service_load_sysv_path(Service *s, const char *path) { +@@ -934,6 +950,13 @@ static int service_load_sysv_path(Servic if ((r = sysv_exec_commands(s, supports_reload)) < 0) goto finish; @@ -79,7 +79,7 @@ index c13ff35..0b39ec6 100644 if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { /* If there a runlevels configured for this service -@@ -1015,6 +1038,9 @@ static int service_load_sysv_name(Service *s, const char *name) { +@@ -1015,6 +1038,9 @@ static int service_load_sysv_name(Servic if (endswith(name, ".sh.service")) return -ENOENT; @@ -89,7 +89,7 @@ index c13ff35..0b39ec6 100644 STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { char *path; int r; -@@ -1035,6 +1061,18 @@ static int service_load_sysv_name(Service *s, const char *name) { +@@ -1035,6 +1061,18 @@ static int service_load_sysv_name(Servic } free(path); @@ -108,7 +108,7 @@ index c13ff35..0b39ec6 100644 if (r < 0) return r; -@@ -3661,7 +3699,7 @@ static int service_enumerate(Manager *m) { +@@ -3667,7 +3705,7 @@ static int service_enumerate(Manager *m) if (de->d_name[0] == 'S') { @@ -117,7 +117,7 @@ index c13ff35..0b39ec6 100644 SERVICE(service)->sysv_start_priority_from_rcnd = MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); -@@ -3678,7 +3716,8 @@ static int service_enumerate(Manager *m) { +@@ -3684,7 +3722,8 @@ static int service_enumerate(Manager *m) goto finish; } else if (de->d_name[0] == 'K' && @@ -127,7 +127,7 @@ index c13ff35..0b39ec6 100644 r = set_ensure_allocated(&shutdown_services, trivial_hash_func, trivial_compare_func); -@@ -3718,7 +3757,9 @@ static int service_enumerate(Manager *m) { +@@ -3724,7 +3763,9 @@ static int service_enumerate(Manager *m) * runlevels we assume the stop jobs will be implicitly added * by the core logic. Also, we don't really distinguish here * between the runlevels 0 and 6 and just add them to the diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index 189576cc..77a2e6b7 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -6,11 +6,11 @@ Subject: fix support for boot prefixed initscript (bnc#746506) src/systemctl/systemctl.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index c2b1749..84ce87c 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -4060,8 +4060,28 @@ static int enable_sysv_units(char **args) { +Index: systemd-204/src/systemctl/systemctl.c +=================================================================== +--- systemd-204.orig/src/systemctl/systemctl.c ++++ systemd-204/src/systemctl/systemctl.c +@@ -4082,8 +4082,28 @@ static int enable_sysv_units(char **args p[strlen(p) - sizeof(".service") + 1] = 0; found_sysv = access(p, F_OK) >= 0; diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index f139b0fb..d66c24fc 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -7,11 +7,11 @@ Subject: handle SYSTEMCTL_OPTIONS environment variable src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 84ce87c..cceafc9 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -5926,6 +5926,28 @@ int main(int argc, char*argv[]) { +Index: systemd-204/src/systemctl/systemctl.c +=================================================================== +--- systemd-204.orig/src/systemctl/systemctl.c ++++ systemd-204/src/systemctl/systemctl.c +@@ -5974,6 +5974,28 @@ int main(int argc, char*argv[]) { log_parse_environment(); log_open(); diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 00c10673..67fe0155 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -1,24 +1,110 @@ -From: Stanislav Brabec -Date: Fri, 20 Apr 2012 17:16:37 +0200 -Subject: handle numlock value in /etc/sysconfig/keyboard +Set NumLock according to /etc/sysconfig/keyboard. -(bnc#746595) ---- - Makefile.am | 13 +++++++++++ - configure.ac | 5 +++++ - rules/73-seat-numlock.rules | 8 +++++++ - src/login/numlock-on.c | 37 ++++++++++++++++++++++++++++++++ - src/vconsole/vconsole-setup.c | 38 +++++++++++++++++++++++++++++++++ - units/systemd-vconsole-setup.service.in | 2 +- - 6 files changed, 102 insertions(+), 1 deletion(-) - create mode 100644 rules/73-seat-numlock.rules - create mode 100644 src/login/numlock-on.c +https://bugzilla.novell.com/show_bug.cgi?id=746595 -diff --git a/Makefile.am b/Makefile.am -index d594a3d..e82d092 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2205,6 +2205,19 @@ dist_udevrules_DATA += \ +Authors: +Stanislav Brabec +Cristian Rodríguez + +Index: systemd-204/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-204.orig/src/vconsole/vconsole-setup.c ++++ systemd-204/src/vconsole/vconsole-setup.c +@@ -42,6 +42,10 @@ + #include "fileio.h" + #include "strv.h" + ++#define BIOS_DATA_AREA 0x400 ++#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 ++#define BDA_KSF4_NUMLOCK_MASK 0x02 ++ + static bool is_vconsole(int fd) { + unsigned char data[1]; + +@@ -321,12 +325,14 @@ int main(int argc, char **argv) { + char *vc_kbd_delay = NULL; + char *vc_kbd_rate = NULL; + char *vc_kbd_disable_caps_lock = NULL; ++ char *vc_kbd_numlock = NULL; + char *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; + #endif + int fd = -1; + bool utf8; + bool disable_capslock = false; ++ bool numlock = false; + pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -389,6 +395,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -403,6 +410,36 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++#if defined(__i386__) || defined(__x86_64__) ++ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { ++ int _cleanup_close_ fdmem; ++ char c; ++ ++ fdmem = open ("/dev/mem", O_RDONLY); ++ ++ if(fdmem < 0) { ++ r = EXIT_FAILURE; ++ log_error("Failed to open /dev/mem: %m"); ++ goto finish; ++ } ++ ++ if(lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { ++ r = EXIT_FAILURE; ++ log_error("Failed to seek /dev/mem: %m"); ++ goto finish; ++ } ++ ++ if(read (fdmem, &c, sizeof(char)) == -1) { ++ r = EXIT_FAILURE; ++ log_error("Failed to read /dev/mem: %m"); ++ goto finish; ++ } ++ ++ if (c & BDA_KSF4_NUMLOCK_MASK) ++ numlock = true; ++ } else ++#endif ++ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); + + #endif + } +@@ -425,6 +462,10 @@ int main(int argc, char **argv) { + finish: + if (keymap_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + + #ifdef HAVE_SYSV_COMPAT + if (compose_table_pid > 0) +@@ -444,6 +485,7 @@ finish: + free(vc_font); + free(vc_font_map); + free(vc_font_unimap); ++ free(vc_kbd_numlock); + #ifdef HAVE_SYSV_COMPAT + free(vc_kbd_delay); + free(vc_kbd_rate); +Index: systemd-204/Makefile.am +=================================================================== +--- systemd-204.orig/Makefile.am ++++ systemd-204/Makefile.am +@@ -2219,6 +2219,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -38,29 +124,12 @@ index d594a3d..e82d092 100644 if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -diff --git a/configure.ac b/configure.ac -index e58d694..222ed22 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -789,6 +789,11 @@ AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"]) - - # ------------------------------------------------------------------------------ - -+AC_PATH_PROG([HWINFO], [hwinfo], [/usr/sbin/hwinfo], [/sbin:/usr/sbin:/usr/bin:/bin]) -+AC_DEFINE_UNQUOTED([HWINFO], ["${HWINFO}"], [Path to hwinfo binary. (SUSE)]) -+AC_PATH_PROG([SETLEDS], [setleds], [/bin/setleds], [/sbin:/usr/sbin:/usr/bin:/bin]) -+AC_DEFINE_UNQUOTED([SETLEDS], ["${SETLEDS}"], [Path to setleds binary.]) -+ - # Location of the init scripts as mandated by LSB - SYSTEM_SYSVINIT_PATH=/etc/init.d - SYSTEM_SYSVRCND_PATH=/etc/rc.d -diff --git a/rules/73-seat-numlock.rules b/rules/73-seat-numlock.rules -new file mode 100644 -index 0000000..e0061ed +Index: systemd-204/rules/73-seat-numlock.rules +=================================================================== --- /dev/null -+++ b/rules/73-seat-numlock.rules ++++ systemd-204/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ -+# This file is part of systemd. ++# This file is part of SUSE customization of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by @@ -68,130 +137,50 @@ index 0000000..e0061ed +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -diff --git a/src/login/numlock-on.c b/src/login/numlock-on.c -new file mode 100644 -index 0000000..77a8368 +Index: systemd-204/src/login/numlock-on.c +=================================================================== --- /dev/null -+++ b/src/login/numlock-on.c -@@ -0,0 +1,37 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++++ systemd-204/src/login/numlock-on.c +@@ -0,0 +1,34 @@ ++/* ++ * numlock-on.c: Turn numlock-on ++ * ++ * This file may be freely copied under the terms of the GNU General ++ * Public License (GPL), version 2, or at your option any later ++ * version. + -+/*** -+ This file is part of systemd. ++ * Copyright (C) 2013 Stanislav Brabec, SUSE ++ * ++ * based on setleds.c, which is ++ * Copyright (C) 1994-1999 Andries E. Brouwer ++ */ + -+ Copyright 2012 Stanislav Brabec ++#include ++#include ++#include ++#include + -+ systemd 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. ++int ++main(int argc, char **argv) { ++ char flags; + -+ systemd 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. ++ if (ioctl(0, KDGKBLED, &flags)) { ++ perror("KDGKBLED"); ++ exit(1); ++ } + -+ You should have received a copy of the GNU General Public License -+ along with systemd; If not, see . -+***/ ++ if (ioctl(0, KDSKBLED, flags | LED_NUM | (LED_NUM << 4))) { ++ perror("KDSKBLED"); ++ exit(1); ++ } + -+#include "config.h" -+#include -+#include -+#include -+ -+int main (int argc, char *argv[]) { -+ static const char *args[] = { SETLEDS, "-D", "+num", NULL }; -+ -+ if (argc != 2) -+ return EX_USAGE; -+ close (STDIN_FILENO); -+ if (open (argv[1], O_RDONLY) != STDIN_FILENO) -+ return EX_IOERR; -+ /* add cast to prevent warning caused by -Wwrite-strings */ -+ return execv(args[0], (char * const*) args); ++ exit(0); +} -diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c -index 384f936..e1f8868 100644 ---- a/src/vconsole/vconsole-setup.c -+++ b/src/vconsole/vconsole-setup.c -@@ -321,12 +321,14 @@ int main(int argc, char **argv) { - char *vc_kbd_delay = NULL; - char *vc_kbd_rate = NULL; - char *vc_kbd_disable_caps_lock = NULL; -+ char *vc_kbd_numlock = NULL; - char *vc_compose_table = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; - #endif - int fd = -1; - bool utf8; - bool disable_capslock = false; -+ bool numlock = false; - pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -389,6 +391,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -403,6 +406,37 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); - - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+ if (vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "BIOS") == 0) { -+ int hwinfo_fd[2]; -+ pid_t hwinfo_pid; -+ -+ pipe(hwinfo_fd); -+ if ((hwinfo_pid = fork()) < 0) { -+ log_error("Failed to fork: %m"); -+ _exit(EXIT_FAILURE); -+ } else if (hwinfo_pid == 0) { -+ const char *args[3]; -+ int i = 0; -+ args[i++] = HWINFO; -+ args[i++] = "--bios"; -+ args[i++] = NULL; -+ close(hwinfo_fd[0]); -+ fclose(stdout); -+ dup2(hwinfo_fd[1], STDOUT_FILENO); -+ execv(args[0], (char **) args); -+ _exit(EXIT_FAILURE); -+ } else { -+ char line[17]; -+ FILE *hwinfo_file = fdopen(hwinfo_fd[0], "r"); -+ close(hwinfo_fd[1]); -+ while (fgets(line, 17, hwinfo_file)) -+ if (strstr(line, "Num Lock: on")) -+ numlock = true; -+ close(hwinfo_fd[0]); -+ fclose(hwinfo_file); -+ } -+ } else -+ numlock = vc_kbd_numlock && strcasecmp(vc_kbd_numlock, "YES") == 0; - - #endif - } -@@ -425,6 +459,10 @@ int main(int argc, char **argv) { - finish: - if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ if (numlock) -+ close(open("/run/numlock-on", O_WRONLY|O_CREAT, 0644)); -+ else -+ unlink("/run/numlock-on"); - - #ifdef HAVE_SYSV_COMPAT - if (compose_table_pid > 0) -diff --git a/units/systemd-vconsole-setup.service.in b/units/systemd-vconsole-setup.service.in -index 18faa63..44ebbd0 100644 ---- a/units/systemd-vconsole-setup.service.in -+++ b/units/systemd-vconsole-setup.service.in -@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) +Index: systemd-204/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-204.orig/units/systemd-vconsole-setup.service.in ++++ systemd-204/units/systemd-vconsole-setup.service.in +@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch index 91cd2eab..fb00b6d8 100644 --- a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +++ b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch @@ -12,11 +12,11 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 src/core/service.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) -diff --git a/src/core/service.c b/src/core/service.c -index 08fc97c..5118b06 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2072,8 +2072,13 @@ static void service_enter_running(Service *s, ServiceResult f) { +Index: systemd-204/src/core/service.c +=================================================================== +--- systemd-204.orig/src/core/service.c ++++ systemd-204/src/core/service.c +@@ -2075,8 +2075,13 @@ static void service_enter_running(Servic cgroup_ok = cgroup_good(s); if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 9213a508..3ca7dc2a 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -10,10 +10,10 @@ configuration), needed by openSUSE (bnc#809420). units/systemd-sysctl.service.in | 1 + 2 files changed, 9 insertions(+) -diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c -index db18dd9..aa10b79 100644 ---- a/src/sysctl/sysctl.c -+++ b/src/sysctl/sysctl.c +Index: systemd-204/src/sysctl/sysctl.c +=================================================================== +--- systemd-204.orig/src/sysctl/sysctl.c ++++ systemd-204/src/sysctl/sysctl.c @@ -26,6 +26,7 @@ #include #include @@ -36,11 +36,11 @@ index db18dd9..aa10b79 100644 r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); if (r < 0) { -diff --git a/units/systemd-sysctl.service.in b/units/systemd-sysctl.service.in -index 45e1ceb..61d13c9 100644 ---- a/units/systemd-sysctl.service.in -+++ b/units/systemd-sysctl.service.in -@@ -19,6 +19,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sysctl.d +Index: systemd-204/units/systemd-sysctl.service.in +=================================================================== +--- systemd-204.orig/units/systemd-sysctl.service.in ++++ systemd-204/units/systemd-sysctl.service.in +@@ -20,6 +20,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d ConditionDirectoryNotEmpty=|/etc/sysctl.d ConditionDirectoryNotEmpty=|/run/sysctl.d @@ -48,6 +48,3 @@ index 45e1ceb..61d13c9 100644 [Service] Type=oneshot --- -1.8.1.4 - diff --git a/systemd-mini.changes b/systemd-mini.changes index 8e060a7a..9d15ea4f 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Thu Jun 13 16:00:25 CEST 2013 - sbrabec@suse.cz + +- Cleanup NumLock setting code + (handle-numlock-value-in-etc-sysconfig-keyboard.patch). + +------------------------------------------------------------------- +Wed Jun 12 10:00:53 UTC 2013 - fcrozat@suse.com + +- Only apply 1007-add-msft-compability-rules.patch when not + building systemd-mini. + +------------------------------------------------------------------- +Tue Jun 11 11:01:46 UTC 2013 - rmilasan@suse.com + +- Add udev MSFT compability rules (bnc#805059). + add: 1007-add-msft-compability-rules.patch +- Add sg3_utils requires, need it by 61-msft.rules (bnc#805059). +- Clean-up spec file, put udev patches after systemd patches. +- Rebase patches so they would apply nicely. + +------------------------------------------------------------------- +Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org + +- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch + fixes : + * systemd-journald[347]: Failed to set ACL on + /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, + ignoring: Invalid argument +- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch + systemctl disable should remove dangling symlinks. +- 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch + alien childs are reported as alive when they are really dead. + ------------------------------------------------------------------- Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 63e1a7ba..48a2ed0b 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -170,6 +170,12 @@ Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch # PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability. Patch43: Start-ctrl-alt-del.target-irreversibly.patch +# PATCH-FIX-UPSTREAM 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch crrodriguez@opensuse.org fix systemd-journald[347]: Failed to set ACL on ...user-1000.journal..Invalid argument +Patch44: 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch +# PATCH-FIX-UPSTREAM 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch crrodriguez@opensuse.org ensure systemctl disable removes dangling symlinks +Patch45: 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch +# PATCH-FIX-UPSTREAM 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch crrodriguez@opensuse.org do not report alien child as alive when it is dead. +Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -184,6 +190,8 @@ Patch1004: 1004-fix-devname-prefix.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch Patch1006: 1006-udev-always-rename-network.patch +# PATCH-FIX-OPENSUSE 1007-add-msft-compability-rules.patch +Patch1007: 1007-add-msft-compability-rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -226,7 +234,7 @@ Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd +PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 @@ -360,15 +368,7 @@ This package marks the installation to not use syslog but only the journal. cp %{SOURCE7} m4/ %endif -#udev -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 - -#systemd +# systemd patches %patch0 -p1 %patch1 -p1 %patch3 -p1 @@ -406,6 +406,21 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch43 -p1 +%patch44 -p1 +%patch45 -p1 +%patch46 -p1 + +# udev patches +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +# don't apply when bootstrapping to not modify Makefile.am +%if ! 0%{?bootstrap} +%patch1007 -p1 +%endif %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 8e060a7a..9d15ea4f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Thu Jun 13 16:00:25 CEST 2013 - sbrabec@suse.cz + +- Cleanup NumLock setting code + (handle-numlock-value-in-etc-sysconfig-keyboard.patch). + +------------------------------------------------------------------- +Wed Jun 12 10:00:53 UTC 2013 - fcrozat@suse.com + +- Only apply 1007-add-msft-compability-rules.patch when not + building systemd-mini. + +------------------------------------------------------------------- +Tue Jun 11 11:01:46 UTC 2013 - rmilasan@suse.com + +- Add udev MSFT compability rules (bnc#805059). + add: 1007-add-msft-compability-rules.patch +- Add sg3_utils requires, need it by 61-msft.rules (bnc#805059). +- Clean-up spec file, put udev patches after systemd patches. +- Rebase patches so they would apply nicely. + +------------------------------------------------------------------- +Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org + +- 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch + fixes : + * systemd-journald[347]: Failed to set ACL on + /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, + ignoring: Invalid argument +- 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch + systemctl disable should remove dangling symlinks. +- 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch + alien childs are reported as alive when they are really dead. + ------------------------------------------------------------------- Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index ace3191d..d4413e2b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -165,6 +165,12 @@ Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch # PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability. Patch43: Start-ctrl-alt-del.target-irreversibly.patch +# PATCH-FIX-UPSTREAM 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch crrodriguez@opensuse.org fix systemd-journald[347]: Failed to set ACL on ...user-1000.journal..Invalid argument +Patch44: 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch +# PATCH-FIX-UPSTREAM 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch crrodriguez@opensuse.org ensure systemctl disable removes dangling symlinks +Patch45: 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch +# PATCH-FIX-UPSTREAM 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch crrodriguez@opensuse.org do not report alien child as alive when it is dead. +Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -179,6 +185,8 @@ Patch1004: 1004-fix-devname-prefix.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch Patch1006: 1006-udev-always-rename-network.patch +# PATCH-FIX-OPENSUSE 1007-add-msft-compability-rules.patch +Patch1007: 1007-add-msft-compability-rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -221,7 +229,7 @@ Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd +PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 @@ -355,15 +363,7 @@ This package marks the installation to not use syslog but only the journal. cp %{SOURCE7} m4/ %endif -#udev -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 - -#systemd +# systemd patches %patch0 -p1 %patch1 -p1 %patch3 -p1 @@ -401,6 +401,21 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch43 -p1 +%patch44 -p1 +%patch45 -p1 +%patch46 -p1 + +# udev patches +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 +%patch1006 -p1 +# don't apply when bootstrapping to not modify Makefile.am +%if ! 0%{?bootstrap} +%patch1007 -p1 +%endif %build autoreconf -fiv From d1a9680b7c9b960431effdd189487bbd3de2ed97c8e92fb9596436e2c4969fd2 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 18 Jun 2013 13:36:22 +0000 Subject: [PATCH 140/221] Accepting request 179380 from Base:System - 0001-journal-letting-interleaved-seqnums-go.patch and 0002-journal-remember-last-direction-of-search-and-keep-o.patch fix possible infinite loops in the journal code, related to bnc #817778 - 0001-journal-letting-interleaved-seqnums-go.patch and 0002-journal-remember-last-direction-of-search-and-keep-o.patch fix possible infinite loops in the journal code, related to bnc #817778 (forwarded request 179367 from elvigia) (forwarded request 179368 from elvigia) OBS-URL: https://build.opensuse.org/request/show/179380 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=144 --- ...urnal-letting-interleaved-seqnums-go.patch | 74 +++++++++++ ...-last-direction-of-search-and-keep-o.patch | 122 ++++++++++++++++++ systemd-mini.changes | 14 ++ systemd-mini.spec | 12 +- systemd.changes | 14 ++ systemd.spec | 12 +- 6 files changed, 240 insertions(+), 8 deletions(-) create mode 100644 0001-journal-letting-interleaved-seqnums-go.patch create mode 100644 0002-journal-remember-last-direction-of-search-and-keep-o.patch diff --git a/0001-journal-letting-interleaved-seqnums-go.patch b/0001-journal-letting-interleaved-seqnums-go.patch new file mode 100644 index 00000000..a3c6054a --- /dev/null +++ b/0001-journal-letting-interleaved-seqnums-go.patch @@ -0,0 +1,74 @@ +From 53113dc8254cae9a27e321e539d2d876677e61b9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 7 Jun 2013 22:01:03 -0400 +Subject: [PATCH] journal: letting (interleaved) seqnums go + +In the following scenario: + server creates system.journal + server creates user-1000.journal +both journals share the same seqnum_id. +Then + server writes to user-1000.journal first, + and server writes to system.journal a bit later, +and everything is fine. +The server then terminates (crash, reboot, rsyslog testing, +whatever), and user-1000.journal has entries which end with +a lower seqnum than system.journal. Now + server is restarted + server opens user-1000.journal and writes entries to it... +BAM! duplicate seqnums for the same seqnum_id. + +Now, we usually don't see that happen, because system.journal +is closed last, and opened first. Since usually at least one +message is written during boot and lands in the system.journal, +the seqnum is initialized from it, and is set to a number higher +than than anything found in user journals. Nevertheless, if +system.journal is corrupted and is rotated, it can happen that +an entry is written to the user journal with a seqnum that is +a duplicate with an entry found in the corrupted system.journal~. +When browsing the journal, journalctl can fall into a loop +where it tries to follow the seqnums, and tries to go the +next location by seqnum, and is transported back in time to +to the older duplicate seqnum. There is not way to find +out the maximum seqnum used in a multiple files, without +actually looking at all of them. But we don't want to do +that because it would be slow, and actually it isn't really +possible, because a file might e.g. be temporarily unaccessible. + +Fix the problem by using different seqnum series for user +journals. Using the same seqnum series for rotated journals +is still fine, because we know that nothing will write +to the rotated journal anymore. + +Likely related: +https://bugs.freedesktop.org/show_bug.cgi?id=64566 +https://bugs.freedesktop.org/show_bug.cgi?id=59856 +https://bugs.freedesktop.org/show_bug.cgi?id=64296 +https://bugs.archlinux.org/task/35581 +https://bugzilla.novell.com/show_bug.cgi?id=817778 + +Possibly related: +https://bugs.freedesktop.org/show_bug.cgi?id=64293 + +Conflicts: + src/journal/journald-server.c +--- + src/journal/journald-server.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c +index cc52b8a..cde63c8 100644 +--- a/src/journal/journald-server.c ++++ b/src/journal/journald-server.c +@@ -280,7 +280,7 @@ static JournalFile* find_journal(Server *s, uid_t uid) { + journal_file_close(f); + } + +- r = journal_file_open_reliably(p, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, s->system_journal, &f); ++ r = journal_file_open_reliably(p, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &f); + free(p); + + if (r < 0) +-- +1.8.2.1 + diff --git a/0002-journal-remember-last-direction-of-search-and-keep-o.patch b/0002-journal-remember-last-direction-of-search-and-keep-o.patch new file mode 100644 index 00000000..b710d55c --- /dev/null +++ b/0002-journal-remember-last-direction-of-search-and-keep-o.patch @@ -0,0 +1,122 @@ +From 87011c25d96e9fbcd8a465ba758fa037c7d08203 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Jun 2013 22:28:05 -0400 +Subject: [PATCH 01/13] journal: remember last direction of search and keep + offset cache + +The fields in JournalFile are moved around to avoid wasting +7 bytes because of alignment. +--- + TODO | 3 --- + src/journal/journal-file.h | 18 +++++++++++------- + src/journal/sd-journal.c | 11 +++++------ + 3 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/TODO b/TODO +index 0dd19a0..1dc585c 100644 +--- a/TODO ++++ b/TODO +@@ -77,9 +77,6 @@ Features: + + * investigate endianess issues of UUID vs. GUID + +-* see if we can fix https://bugs.freedesktop.org/show_bug.cgi?id=63672 +- without dropping the location cache entirely. +- + * dbus: when a unit failed to load (i.e. is in UNIT_ERROR state), we + should be able to safely try another attempt when the bus call LoadUnit() is invoked. + +diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h +index 7b1cd42..5cc2c2d 100644 +--- a/src/journal/journal-file.h ++++ b/src/journal/journal-file.h +@@ -42,10 +42,14 @@ typedef struct JournalMetrics { + uint64_t keep_free; + } JournalMetrics; + ++typedef enum direction { ++ DIRECTION_UP, ++ DIRECTION_DOWN ++} direction_t; ++ + typedef struct JournalFile { + int fd; +- char *path; +- struct stat last_stat; ++ + mode_t mode; + + int flags; +@@ -56,6 +60,11 @@ typedef struct JournalFile { + + bool tail_entry_monotonic_valid; + ++ direction_t last_direction; ++ ++ char *path; ++ struct stat last_stat; ++ + Header *header; + HashItem *data_hash_table; + HashItem *field_hash_table; +@@ -90,11 +99,6 @@ typedef struct JournalFile { + #endif + } JournalFile; + +-typedef enum direction { +- DIRECTION_UP, +- DIRECTION_DOWN +-} direction_t; +- + int journal_file_open( + const char *fname, + int flags, +diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c +index 3aa9ed4..4c4cc2d 100644 +--- a/src/journal/sd-journal.c ++++ b/src/journal/sd-journal.c +@@ -102,7 +102,8 @@ static void init_location(Location *l, LocationType type, JournalFile *f, Object + l->seqnum_set = l->realtime_set = l->monotonic_set = l->xor_hash_set = true; + } + +-static void set_location(sd_journal *j, LocationType type, JournalFile *f, Object *o, uint64_t offset) { ++static void set_location(sd_journal *j, LocationType type, JournalFile *f, Object *o, ++ direction_t direction, uint64_t offset) { + assert(j); + assert(type == LOCATION_DISCRETE || type == LOCATION_SEEK); + assert(f); +@@ -110,12 +111,10 @@ static void set_location(sd_journal *j, LocationType type, JournalFile *f, Objec + + init_location(&j->current_location, type, f, o); + +- if (j->current_file) +- j->current_file->current_offset = 0; +- + j->current_file = f; + j->current_field = 0; + ++ f->last_direction = direction; + f->current_offset = offset; + } + +@@ -811,7 +810,7 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc + assert(j); + assert(f); + +- if (f->current_offset > 0) { ++ if (f->last_direction == direction && f->current_offset > 0) { + cp = f->current_offset; + + r = journal_file_move_to_object(f, OBJECT_ENTRY, cp, &c); +@@ -908,7 +907,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { + if (r < 0) + return r; + +- set_location(j, LOCATION_DISCRETE, new_file, o, new_offset); ++ set_location(j, LOCATION_DISCRETE, new_file, o, direction, new_offset); + + return 1; + } +-- +1.8.2.1 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 9d15ea4f..11123c97 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org + +- 0001-journal-letting-interleaved-seqnums-go.patch and + 0002-journal-remember-last-direction-of-search-and-keep-o.patch + fix possible infinite loops in the journal code, related to + bnc #817778 + +------------------------------------------------------------------- +Sun Jun 16 23:59:28 UTC 2013 - jengelh@inai.de + +- Explicitly list libattr-devel as BuildRequires +- More robust make install call. Remove redundant %clean section. + ------------------------------------------------------------------- Thu Jun 13 16:00:25 CEST 2013 - sbrabec@suse.cz diff --git a/systemd-mini.spec b/systemd-mini.spec index 48a2ed0b..d1e49afe 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -49,6 +49,7 @@ BuildRequires: gtk-doc %endif BuildRequires: intltool BuildRequires: libacl-devel +BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -176,6 +177,10 @@ Patch44: 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch Patch45: 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch # PATCH-FIX-UPSTREAM 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch crrodriguez@opensuse.org do not report alien child as alive when it is dead. Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch +# PATCH-FIX-UPSTREAM 0001-journal-letting-interleaved-seqnums-go.patch crrodriguez@opensuse.org fix journal infinite loops +Patch47: 0001-journal-letting-interleaved-seqnums-go.patch +# PATCH-FIX-UPSTREAM 0002-journal-remember-last-direction-of-search-and-keep-o.patch crrodriguez@opensuse.org fix journal infinite loops +Patch48: 0002-journal-remember-last-direction-of-search-and-keep-o.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -409,6 +414,8 @@ cp %{SOURCE7} m4/ %patch44 -p1 %patch45 -p1 %patch46 -p1 +%patch47 -p1 +%patch48 -p1 # udev patches %patch1001 -p1 @@ -451,7 +458,7 @@ export V=1 make %{?_smp_mflags} %install -%makeinstall +make install DESTDIR="%buildroot" # move to %{_lib} %if ! 0%{?bootstrap} @@ -749,9 +756,6 @@ fi %endif -%clean -rm -rf %{buildroot} - %files %defattr(-,root,root) /bin/systemd diff --git a/systemd.changes b/systemd.changes index 9d15ea4f..11123c97 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org + +- 0001-journal-letting-interleaved-seqnums-go.patch and + 0002-journal-remember-last-direction-of-search-and-keep-o.patch + fix possible infinite loops in the journal code, related to + bnc #817778 + +------------------------------------------------------------------- +Sun Jun 16 23:59:28 UTC 2013 - jengelh@inai.de + +- Explicitly list libattr-devel as BuildRequires +- More robust make install call. Remove redundant %clean section. + ------------------------------------------------------------------- Thu Jun 13 16:00:25 CEST 2013 - sbrabec@suse.cz diff --git a/systemd.spec b/systemd.spec index d4413e2b..0c475aa2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -44,6 +44,7 @@ BuildRequires: gtk-doc %endif BuildRequires: intltool BuildRequires: libacl-devel +BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -171,6 +172,10 @@ Patch44: 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch Patch45: 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch # PATCH-FIX-UPSTREAM 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch crrodriguez@opensuse.org do not report alien child as alive when it is dead. Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch +# PATCH-FIX-UPSTREAM 0001-journal-letting-interleaved-seqnums-go.patch crrodriguez@opensuse.org fix journal infinite loops +Patch47: 0001-journal-letting-interleaved-seqnums-go.patch +# PATCH-FIX-UPSTREAM 0002-journal-remember-last-direction-of-search-and-keep-o.patch crrodriguez@opensuse.org fix journal infinite loops +Patch48: 0002-journal-remember-last-direction-of-search-and-keep-o.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -404,6 +409,8 @@ cp %{SOURCE7} m4/ %patch44 -p1 %patch45 -p1 %patch46 -p1 +%patch47 -p1 +%patch48 -p1 # udev patches %patch1001 -p1 @@ -446,7 +453,7 @@ export V=1 make %{?_smp_mflags} %install -%makeinstall +make install DESTDIR="%buildroot" # move to %{_lib} %if ! 0%{?bootstrap} @@ -744,9 +751,6 @@ fi %endif -%clean -rm -rf %{buildroot} - %files %defattr(-,root,root) /bin/systemd From 2d6394d7ee33bd988e256792c3efa900ab14be8577c3bbb73be4e2fc5ccc5575 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 20 Jun 2013 13:00:58 +0000 Subject: [PATCH 141/221] Accepting request 179651 from Base:System We talked about using %patch, but in that case I would need a tarball of systemd in rpm-macros package which depends on xz which is part of many circles. (forwarded request 179649 from -miska-) OBS-URL: https://build.opensuse.org/request/show/179651 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=145 --- macros.systemd.upstream | 73 ++++++++++++++++++++++++++++++++++++++ systemd-mini.changes | 11 ++++++ systemd-mini.spec | 10 ++++-- systemd-rpm-macros.changes | 6 ++++ systemd-rpm-macros.spec | 57 +++++++++++++++++++++++++++++ systemd.changes | 11 ++++++ systemd.spec | 10 ++++-- 7 files changed, 172 insertions(+), 6 deletions(-) create mode 100644 macros.systemd.upstream create mode 100644 systemd-rpm-macros.changes create mode 100644 systemd-rpm-macros.spec diff --git a/macros.systemd.upstream b/macros.systemd.upstream new file mode 100644 index 00000000..dc19f937 --- /dev/null +++ b/macros.systemd.upstream @@ -0,0 +1,73 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- */ +# +# This file is part of systemd. +# +# Copyright 2012 Lennart Poettering +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# systemd 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see . + +# RPM macros for packages installing systemd unit files + +%_unitdir @systemunitdir@ +%_presetdir @systempresetdir@ +%_udevhwdbdir @udevhwdbdir@ +%_udevrulesdir @udevrulesdir@ +%_journalcatalogdir @catalogdir@ +%_tmpfilesdir @tmpfilesdir@ +%_sysctldir @sysctldir@ + +%systemd_requires \ +Requires(post): systemd \ +Requires(preun): systemd \ +Requires(postun): systemd \ +%{nil} + +%systemd_post() \ +if [ $1 -eq 1 ] ; then \ + # Initial installation \ + @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \ +fi \ +%{nil} + +%systemd_preun() \ +if [ $1 -eq 0 ] ; then \ + # Package removal, not upgrade \ + @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \ +fi \ +%{nil} + +%systemd_postun() \ +@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +%{nil} + +%systemd_postun_with_restart() \ +@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +if [ $1 -ge 1 ] ; then \ + # Package upgrade, not uninstall \ + @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ +fi \ +%{nil} + +%udev_hwdb_update() \ +@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \ +%{nil} + +%udev_rules_update() \ +@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \ +%{nil} + +%journal_catalog_update() \ +@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \ +%{nil} diff --git a/systemd-mini.changes b/systemd-mini.changes index 11123c97..0a35d39c 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 19 08:44:52 UTC 2013 - mhrusecky@suse.com + +- Dropped backward compatibility +- Added check for upstream rpm macros changes + +------------------------------------------------------------------- +Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com + +- Split out RPM macros into separate package to simplify dependencies + ------------------------------------------------------------------- Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd-mini.spec b/systemd-mini.spec index d1e49afe..024ccfed 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -110,6 +110,7 @@ Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config +Source10: macros.systemd.upstream Source1060: boot.udev Source1061: write_dev_root_rule @@ -215,6 +216,7 @@ Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} +Requires: systemd-rpm-macros %if 0%{?bootstrap} Conflicts: systemd-devel %endif @@ -367,6 +369,8 @@ This package marks the installation to not use syslog but only the journal. %prep %setup -q -n systemd-%{version} +echo "Checking whether upstream rpm macros changed..." +[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} @@ -490,9 +494,7 @@ sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants - -mkdir -p %{buildroot}%{_sysconfdir}/rpm -install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm +rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} @@ -922,7 +924,9 @@ fi %dir %{_datadir}/bash-completion/completions %ghost /var/lib/systemd/catalog/database %{_datadir}/bash-completion/completions/* +%if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd +%endif %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated diff --git a/systemd-rpm-macros.changes b/systemd-rpm-macros.changes new file mode 100644 index 00000000..3d222ce2 --- /dev/null +++ b/systemd-rpm-macros.changes @@ -0,0 +1,6 @@ +------------------------------------------------------------------- +Mon Jun 17 10:49:50 UTC 2013 - mhrusecky@suse.com + +- New package with systemd rpm macros to avoid unnecessary build time + dependencies + diff --git a/systemd-rpm-macros.spec b/systemd-rpm-macros.spec new file mode 100644 index 00000000..0268d064 --- /dev/null +++ b/systemd-rpm-macros.spec @@ -0,0 +1,57 @@ +# +# spec file for package systemd-rpm-macros +# +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +#!BuildIgnore: util-linux + +Name: systemd-rpm-macros +Version: 1 +Release: 0 +Summary: RPM macros for systemd +License: LGPL-2.1+ +Group: System/Base +Url: http://en.opensuse.org/openSUSE:Systemd_packaging_guidelines +Source0: macros.systemd +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildArch: noarch + +%description +Starting with openSUSE 12.1, several RPM macros must be used to package systemd +services files. This package provides these macros. + +%prep + +%build + +%install +mkdir -p %{buildroot}%{_sysconfdir}/rpm +install -m644 %{S:0} %{buildroot}%{_sysconfdir}/rpm +UNITDIR="`cat %{S:0} | sed -n 's|.*_unitdir[[:blank:]]*||p'`" +for i in $UNITDIR `dirname $UNITDIR`; do + mkdir -p %{buildroot}$i + echo $i >> unitdir +done + +%post + +%postun + +%files -f unitdir +%defattr(-,root,root) +%{_sysconfdir}/rpm/macros.systemd + +%changelog diff --git a/systemd.changes b/systemd.changes index 11123c97..702cc8d2 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com + +- Dropped backward compatibility +- Added check for upstream rpm macros changes + +------------------------------------------------------------------- +Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com + +- Split out RPM macros into separate package to simplify dependencies + ------------------------------------------------------------------- Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd.spec b/systemd.spec index 0c475aa2..daba57f1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -105,6 +105,7 @@ Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config +Source10: macros.systemd.upstream Source1060: boot.udev Source1061: write_dev_root_rule @@ -210,6 +211,7 @@ Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} +Requires: systemd-rpm-macros %if 0%{?bootstrap} Conflicts: systemd-devel %endif @@ -362,6 +364,8 @@ This package marks the installation to not use syslog but only the journal. %prep %setup -q -n systemd-%{version} +echo "Checking whether upstream rpm macros changed..." +[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} @@ -485,9 +489,7 @@ sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants - -mkdir -p %{buildroot}%{_sysconfdir}/rpm -install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm +rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} @@ -917,7 +919,9 @@ fi %dir %{_datadir}/bash-completion/completions %ghost /var/lib/systemd/catalog/database %{_datadir}/bash-completion/completions/* +%if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd +%endif %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated From fb13db080f102d7f8dab447bf45fc581986d0b1a7b513bc70f82988a6c62f260 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 24 Jun 2013 07:46:00 +0000 Subject: [PATCH 142/221] Accepting request 180434 from Base:System - Automatically online CPUs/Memory on CPU/Memory hotplug add events (bnc#703100, fate#311831). add: 1008-physical-hotplug-cpu-and-memory.patch 0002-journal-remember-last-direction-of-search-and-keep-o.patch fix possible infinite loops in the journal code, related to bnc #817778 - Automatically online CPUs/Memory on CPU/Memory hotplug add events (bnc#703100, fate#311831). add: 1008-physical-hotplug-cpu-and-memory.patch 0002-journal-remember-last-direction-of-search-and-keep-o.patch fix possible infinite loops in the journal code, related to bnc #817778 (forwarded request 180433 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/180434 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=146 --- 1008-physical-hotplug-cpu-and-memory.patch | 29 ++++++++++++++++++++++ systemd-mini.changes | 15 ++++++++--- systemd-mini.spec | 3 +++ systemd.changes | 13 +++++++--- systemd.spec | 3 +++ 5 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 1008-physical-hotplug-cpu-and-memory.patch diff --git a/1008-physical-hotplug-cpu-and-memory.patch b/1008-physical-hotplug-cpu-and-memory.patch new file mode 100644 index 00000000..fa88318f --- /dev/null +++ b/1008-physical-hotplug-cpu-and-memory.patch @@ -0,0 +1,29 @@ +Index: systemd-204/Makefile.am +=================================================================== +--- systemd-204.orig/Makefile.am ++++ systemd-204/Makefile.am +@@ -2242,6 +2242,10 @@ dist_udevrules_DATA += \ + rules/61-msft.rules + + # ------------------------------------------------------------------------------ ++dist_udevrules_DATA += \ ++ rules/80-hotplug-cpu-mem.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ +Index: systemd-204/rules/80-hotplug-cpu-mem.rules +=================================================================== +--- /dev/null ++++ systemd-204/rules/80-hotplug-cpu-mem.rules +@@ -0,0 +1,9 @@ ++# do not edit this file, it will be overwritten on update ++ ++# Hotplug physical CPU ++SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", \ ++ ATTR{online}="1" ++ ++# Hotplug physical memory ++SUBSYSTEM=="memory", ACTION=="add", TEST=="state", ATTR{state}=="offline", \ ++ ATTR{state}="online" diff --git a/systemd-mini.changes b/systemd-mini.changes index 0a35d39c..8a20c41e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,5 +1,12 @@ ------------------------------------------------------------------- -Wed Jun 19 08:44:52 UTC 2013 - mhrusecky@suse.com +Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com + +- Automatically online CPUs/Memory on CPU/Memory hotplug add events + (bnc#703100, fate#311831). + add: 1008-physical-hotplug-cpu-and-memory.patch + +------------------------------------------------------------------- +Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com - Dropped backward compatibility - Added check for upstream rpm macros changes @@ -13,9 +20,9 @@ Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org - 0001-journal-letting-interleaved-seqnums-go.patch and - 0002-journal-remember-last-direction-of-search-and-keep-o.patch - fix possible infinite loops in the journal code, related to - bnc #817778 + 0002-journal-remember-last-direction-of-search-and-keep-o.patch + fix possible infinite loops in the journal code, related to + bnc #817778 ------------------------------------------------------------------- Sun Jun 16 23:59:28 UTC 2013 - jengelh@inai.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 024ccfed..30a76b85 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -198,6 +198,8 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-add-msft-compability-rules.patch Patch1007: 1007-add-msft-compability-rules.patch +# PATCH-FIX-OPENSUSE 1008-physical-hotplug-cpu-and-memory.patch +Patch1008: 1008-physical-hotplug-cpu-and-memory.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -431,6 +433,7 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 +%patch1008 -p1 %endif %build diff --git a/systemd.changes b/systemd.changes index 702cc8d2..8a20c41e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com + +- Automatically online CPUs/Memory on CPU/Memory hotplug add events + (bnc#703100, fate#311831). + add: 1008-physical-hotplug-cpu-and-memory.patch + ------------------------------------------------------------------- Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com @@ -13,9 +20,9 @@ Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org - 0001-journal-letting-interleaved-seqnums-go.patch and - 0002-journal-remember-last-direction-of-search-and-keep-o.patch - fix possible infinite loops in the journal code, related to - bnc #817778 + 0002-journal-remember-last-direction-of-search-and-keep-o.patch + fix possible infinite loops in the journal code, related to + bnc #817778 ------------------------------------------------------------------- Sun Jun 16 23:59:28 UTC 2013 - jengelh@inai.de diff --git a/systemd.spec b/systemd.spec index daba57f1..4cccbb5b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -193,6 +193,8 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-add-msft-compability-rules.patch Patch1007: 1007-add-msft-compability-rules.patch +# PATCH-FIX-OPENSUSE 1008-physical-hotplug-cpu-and-memory.patch +Patch1008: 1008-physical-hotplug-cpu-and-memory.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -426,6 +428,7 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 +%patch1008 -p1 %endif %build From c7abdaf63fed61c4aafe41acfb91e1ad6ea9bb23bc999e6afcf0f656ee16e93a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 25 Jun 2013 15:20:13 +0000 Subject: [PATCH 143/221] Accepting request 180843 from Base:System (forwarded request 180699 from elvigia) OBS-URL: https://build.opensuse.org/request/show/180843 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=147 --- ...ing-about-the-root-mount-from-mounti.patch | 33 ++++++++++++++++++ ...t-to-connect-to-a-session-bus-if-one.patch | 34 +++++++++++++++++++ systemd-mini.changes | 8 +++++ systemd-mini.spec | 8 +++-- systemd.changes | 8 +++++ systemd.spec | 8 +++-- 6 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 0160-mount-when-learning-about-the-root-mount-from-mounti.patch create mode 100644 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch diff --git a/0160-mount-when-learning-about-the-root-mount-from-mounti.patch b/0160-mount-when-learning-about-the-root-mount-from-mounti.patch new file mode 100644 index 00000000..eb523ba7 --- /dev/null +++ b/0160-mount-when-learning-about-the-root-mount-from-mounti.patch @@ -0,0 +1,33 @@ +From 602c0e740f8290cc9c4f13f2eb4b23fbbd7a8d2b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 17 Jun 2013 21:12:53 +0200 +Subject: [PATCH 160/197] mount: when learning about the root mount from + mountinfo, don't add conflicting dep for umount.target + +That way systemd won't try to umount it at shutdown. +--- + src/core/mount.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index 10073b5..0ad3d95 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -1538,9 +1538,11 @@ static int mount_add_one( + if (r < 0) + goto fail; + +- r = unit_add_dependency_by_name(u, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true); +- if (r < 0) +- goto fail; ++ if (!path_equal(where, "/")) { ++ r = unit_add_dependency_by_name(u, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true); ++ if (r < 0) ++ goto fail; ++ } + + unit_add_to_load_queue(u); + } else { +-- +1.8.3.1 + diff --git a/0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch b/0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch new file mode 100644 index 00000000..571d5755 --- /dev/null +++ b/0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch @@ -0,0 +1,34 @@ +From ed002560a1945fb8765c5559c293a19bc9e132d8 Mon Sep 17 00:00:00 2001 +From: Auke Kok +Date: Thu, 20 Jun 2013 13:36:33 -0700 +Subject: [PATCH 185/197] core: only attempt to connect to a session bus if one + likely exists. + +--- + src/core/manager.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/core/manager.c b/src/core/manager.c +index 5c3a2c7..2416dd0 100644 +--- a/src/core/manager.c ++++ b/src/core/manager.c +@@ -509,9 +509,13 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) { + goto fail; + + /* Try to connect to the busses, if possible. */ +- r = bus_init(m, running_as != SYSTEMD_SYSTEM); +- if (r < 0) +- goto fail; ++ if ((running_as == SYSTEMD_USER && getenv("DBUS_SESSION_BUS_ADDRESS")) || ++ running_as == SYSTEMD_SYSTEM) { ++ r = bus_init(m, running_as != SYSTEMD_SYSTEM); ++ if (r < 0) ++ goto fail; ++ } else ++ log_debug("Skipping DBus session bus connection attempt - no DBUS_SESSION_BUS_ADDRESS set..."); + + m->taint_usr = dir_is_empty("/usr") > 0; + +-- +1.8.3.1 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 8a20c41e..7475c095 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jun 24 00:15:24 UTC 2013 - crrodriguez@opensuse.org + +-0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another case where + we are trying to umount the root directory at shutdown. +-0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch + only attempt to connect to a session bus if one likely exists + ------------------------------------------------------------------- Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 30a76b85..f083bce2 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -182,7 +182,10 @@ Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch Patch47: 0001-journal-letting-interleaved-seqnums-go.patch # PATCH-FIX-UPSTREAM 0002-journal-remember-last-direction-of-search-and-keep-o.patch crrodriguez@opensuse.org fix journal infinite loops Patch48: 0002-journal-remember-last-direction-of-search-and-keep-o.patch - +# PATCH-FIX-UPSTREAM 0160-mount-when-learning-about-the-root-mount-from-mounti.patch crrodriguez@opensuse.org another case where / is attempted to umount at shutdown +Patch49: 0160-mount-when-learning-about-the-root-mount-from-mounti.patch +# PATCH-FIX-UPSTREAM 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch crrodriguez@opensuse.org only attempt to connect to a session bus if one likely exists. +Patch50: 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch @@ -422,7 +425,8 @@ cp %{SOURCE7} m4/ %patch46 -p1 %patch47 -p1 %patch48 -p1 - +%patch49 -p1 +%patch50 -p1 # udev patches %patch1001 -p1 %patch1002 -p1 diff --git a/systemd.changes b/systemd.changes index 8a20c41e..7475c095 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Jun 24 00:15:24 UTC 2013 - crrodriguez@opensuse.org + +-0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another case where + we are trying to umount the root directory at shutdown. +-0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch + only attempt to connect to a session bus if one likely exists + ------------------------------------------------------------------- Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 4cccbb5b..10121ad8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -177,7 +177,10 @@ Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch Patch47: 0001-journal-letting-interleaved-seqnums-go.patch # PATCH-FIX-UPSTREAM 0002-journal-remember-last-direction-of-search-and-keep-o.patch crrodriguez@opensuse.org fix journal infinite loops Patch48: 0002-journal-remember-last-direction-of-search-and-keep-o.patch - +# PATCH-FIX-UPSTREAM 0160-mount-when-learning-about-the-root-mount-from-mounti.patch crrodriguez@opensuse.org another case where / is attempted to umount at shutdown +Patch49: 0160-mount-when-learning-about-the-root-mount-from-mounti.patch +# PATCH-FIX-UPSTREAM 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch crrodriguez@opensuse.org only attempt to connect to a session bus if one likely exists. +Patch50: 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch @@ -417,7 +420,8 @@ cp %{SOURCE7} m4/ %patch46 -p1 %patch47 -p1 %patch48 -p1 - +%patch49 -p1 +%patch50 -p1 # udev patches %patch1001 -p1 %patch1002 -p1 From 55f6ad2cc116e51f48af83deeaaab7902bab2872cc4e0054f47e3bcd58673456 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 26 Jun 2013 09:08:48 +0000 Subject: [PATCH 144/221] Accepting request 180966 from Base:System - Drop 1007-add-msft-compability-rules.patch, breaks boot and links in /dev/disk/by-id, will need proper rework (bnc#826528). - 0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another case where we are trying to umount the root directory at shutdown. - 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch only attempt to connect to a session bus if one likely exists - Drop 1007-add-msft-compability-rules.patch, breaks boot and links in /dev/disk/by-id, will need proper rework (bnc#826528). - 0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another case where we are trying to umount the root directory at shutdown. - 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch only attempt to connect to a session bus if one likely exists (forwarded request 180965 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/180966 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=148 --- 1007-add-msft-compability-rules.patch | 29 ------------------ ...1007-physical-hotplug-cpu-and-memory.patch | 30 +++++++++---------- systemd-mini.changes | 14 ++++++--- systemd-mini.spec | 7 ++--- systemd.changes | 14 ++++++--- systemd.spec | 7 ++--- 6 files changed, 39 insertions(+), 62 deletions(-) delete mode 100644 1007-add-msft-compability-rules.patch rename 1008-physical-hotplug-cpu-and-memory.patch => 1007-physical-hotplug-cpu-and-memory.patch (92%) diff --git a/1007-add-msft-compability-rules.patch b/1007-add-msft-compability-rules.patch deleted file mode 100644 index d24b7694..00000000 --- a/1007-add-msft-compability-rules.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: systemd-204/Makefile.am -=================================================================== ---- systemd-204.orig/Makefile.am -+++ systemd-204/Makefile.am -@@ -2238,6 +2238,10 @@ dist_udevrules_DATA += \ - rules/73-seat-numlock.rules - - # ------------------------------------------------------------------------------ -+dist_udevrules_DATA += \ -+ rules/61-msft.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ -Index: systemd-204/rules/61-msft.rules -=================================================================== ---- /dev/null -+++ systemd-204/rules/61-msft.rules -@@ -0,0 +1,9 @@ -+# MSFT compability rules -+ACTION!="add|change", GOTO="msft_end" -+ -+ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_IDENT_*" -+KERNEL=="sd*[!0-9]|sr*", ENV{SCSI_IDENT_LUN_T10}!="?*", IMPORT{program}="/usr/bin/sg_inq -p di --export $tempnode", ENV{ID_BUS}="scsi" -+KERNEL=="sd*|sr*", ENV{DEVTYPE}=="disk", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-1$env{SCSI_IDENT_LUN_T10}" -+KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-1$env{SCSI_IDENT_LUN_T10}-part%n" -+ -+LABEL="msft_end" diff --git a/1008-physical-hotplug-cpu-and-memory.patch b/1007-physical-hotplug-cpu-and-memory.patch similarity index 92% rename from 1008-physical-hotplug-cpu-and-memory.patch rename to 1007-physical-hotplug-cpu-and-memory.patch index fa88318f..cd956a0c 100644 --- a/1008-physical-hotplug-cpu-and-memory.patch +++ b/1007-physical-hotplug-cpu-and-memory.patch @@ -1,18 +1,3 @@ -Index: systemd-204/Makefile.am -=================================================================== ---- systemd-204.orig/Makefile.am -+++ systemd-204/Makefile.am -@@ -2242,6 +2242,10 @@ dist_udevrules_DATA += \ - rules/61-msft.rules - - # ------------------------------------------------------------------------------ -+dist_udevrules_DATA += \ -+ rules/80-hotplug-cpu-mem.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ Index: systemd-204/rules/80-hotplug-cpu-mem.rules =================================================================== --- /dev/null @@ -27,3 +12,18 @@ Index: systemd-204/rules/80-hotplug-cpu-mem.rules +# Hotplug physical memory +SUBSYSTEM=="memory", ACTION=="add", TEST=="state", ATTR{state}=="offline", \ + ATTR{state}="online" +Index: systemd-204/Makefile.am +=================================================================== +--- systemd-204.orig/Makefile.am ++++ systemd-204/Makefile.am +@@ -2238,6 +2238,10 @@ dist_udevrules_DATA += \ + rules/73-seat-numlock.rules + + # ------------------------------------------------------------------------------ ++dist_udevrules_DATA += \ ++ rules/80-hotplug-cpu-mem.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ diff --git a/systemd-mini.changes b/systemd-mini.changes index 7475c095..93f18dd0 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,10 +1,16 @@ +------------------------------------------------------------------- +Wed Jun 26 08:51:29 UTC 2013 - rmilasan@suse.com + +- Drop 1007-add-msft-compability-rules.patch, breaks boot and links + in /dev/disk/by-id, will need proper rework (bnc#826528). + ------------------------------------------------------------------- Mon Jun 24 00:15:24 UTC 2013 - crrodriguez@opensuse.org --0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another case where - we are trying to umount the root directory at shutdown. --0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch - only attempt to connect to a session bus if one likely exists +- 0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another + case where we are trying to umount the root directory at shutdown. +- 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch + only attempt to connect to a session bus if one likely exists ------------------------------------------------------------------- Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index f083bce2..294894f7 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -199,10 +199,8 @@ Patch1004: 1004-fix-devname-prefix.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch Patch1006: 1006-udev-always-rename-network.patch -# PATCH-FIX-OPENSUSE 1007-add-msft-compability-rules.patch -Patch1007: 1007-add-msft-compability-rules.patch -# PATCH-FIX-OPENSUSE 1008-physical-hotplug-cpu-and-memory.patch -Patch1008: 1008-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch +Patch1007: 1007-physical-hotplug-cpu-and-memory.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -437,7 +435,6 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 -%patch1008 -p1 %endif %build diff --git a/systemd.changes b/systemd.changes index 7475c095..93f18dd0 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,10 +1,16 @@ +------------------------------------------------------------------- +Wed Jun 26 08:51:29 UTC 2013 - rmilasan@suse.com + +- Drop 1007-add-msft-compability-rules.patch, breaks boot and links + in /dev/disk/by-id, will need proper rework (bnc#826528). + ------------------------------------------------------------------- Mon Jun 24 00:15:24 UTC 2013 - crrodriguez@opensuse.org --0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another case where - we are trying to umount the root directory at shutdown. --0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch - only attempt to connect to a session bus if one likely exists +- 0160-mount-when-learning-about-the-root-mount-from-mounti.patch Another + case where we are trying to umount the root directory at shutdown. +- 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch + only attempt to connect to a session bus if one likely exists ------------------------------------------------------------------- Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 10121ad8..d5edcf32 100644 --- a/systemd.spec +++ b/systemd.spec @@ -194,10 +194,8 @@ Patch1004: 1004-fix-devname-prefix.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch Patch1006: 1006-udev-always-rename-network.patch -# PATCH-FIX-OPENSUSE 1007-add-msft-compability-rules.patch -Patch1007: 1007-add-msft-compability-rules.patch -# PATCH-FIX-OPENSUSE 1008-physical-hotplug-cpu-and-memory.patch -Patch1008: 1008-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch +Patch1007: 1007-physical-hotplug-cpu-and-memory.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -432,7 +430,6 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 -%patch1008 -p1 %endif %build From ce0774c47b38a3bab5bc761025fb613feacda39a2b06982bacf25b6d690b0065 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 2 Jul 2013 10:29:43 +0000 Subject: [PATCH 145/221] Accepting request 181612 from Base:System - systemd-mini doesn't need dbus-1, only dbus-1-devel (forwarded request 181585 from coolo) OBS-URL: https://build.opensuse.org/request/show/181612 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=149 --- 1008-add-msft-compability-rules.patch | 29 +++++++++++++++++++++++++++ systemd-mini.changes | 11 ++++++++++ systemd-mini.spec | 6 +++++- systemd.changes | 11 ++++++++++ systemd.spec | 6 +++++- 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 1008-add-msft-compability-rules.patch diff --git a/1008-add-msft-compability-rules.patch b/1008-add-msft-compability-rules.patch new file mode 100644 index 00000000..41d6e698 --- /dev/null +++ b/1008-add-msft-compability-rules.patch @@ -0,0 +1,29 @@ +Index: systemd-204/Makefile.am +=================================================================== +--- systemd-204.orig/Makefile.am ++++ systemd-204/Makefile.am +@@ -2242,6 +2242,10 @@ dist_udevrules_DATA += \ + rules/80-hotplug-cpu-mem.rules + + # ------------------------------------------------------------------------------ ++dist_udevrules_DATA += \ ++ rules/61-msft.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ +Index: systemd-204/rules/61-msft.rules +=================================================================== +--- /dev/null ++++ systemd-204/rules/61-msft.rules +@@ -0,0 +1,9 @@ ++# MSFT compability rules ++ACTION!="add|change", GOTO="msft_end" ++ ++ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_IDENT_*" ++KERNEL=="sd*[!0-9]|sr*", ENV{SCSI_IDENT_LUN_T10}!="?*", IMPORT{program}="/usr/bin/sg_inq -p di --export $tempnode" ++KERNEL=="sd*|sr*", ENV{DEVTYPE}=="disk", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}" ++KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}-part%n" ++ ++LABEL="msft_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index 93f18dd0..c3814085 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Jul 1 09:14:55 UTC 2013 - coolo@suse.com + +- systemd-mini doesn't need dbus-1, only dbus-1-devel + +------------------------------------------------------------------- +Wed Jun 26 09:31:14 UTC 2013 - rmilasan@suse.com + +- Re-add fixed udev MSFT compability rules (bnc#805059, bnc#826528). + add: 1008-add-msft-compability-rules.patch + ------------------------------------------------------------------- Wed Jun 26 08:51:29 UTC 2013 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 294894f7..2acc148c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -35,8 +35,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: %{real} = %{version}-%{release} BuildRequires: audit-devel -BuildRequires: dbus-1 %if ! 0%{?bootstrap} +BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets %endif BuildRequires: fdupes @@ -80,6 +80,7 @@ BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} +#!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi @@ -201,6 +202,8 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch +Patch1008: 1008-add-msft-compability-rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -435,6 +438,7 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 +%patch1008 -p1 %endif %build diff --git a/systemd.changes b/systemd.changes index 93f18dd0..c3814085 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Jul 1 09:14:55 UTC 2013 - coolo@suse.com + +- systemd-mini doesn't need dbus-1, only dbus-1-devel + +------------------------------------------------------------------- +Wed Jun 26 09:31:14 UTC 2013 - rmilasan@suse.com + +- Re-add fixed udev MSFT compability rules (bnc#805059, bnc#826528). + add: 1008-add-msft-compability-rules.patch + ------------------------------------------------------------------- Wed Jun 26 08:51:29 UTC 2013 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index d5edcf32..ac3929f1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -30,8 +30,8 @@ License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel -BuildRequires: dbus-1 %if ! 0%{?bootstrap} +BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets %endif BuildRequires: fdupes @@ -75,6 +75,7 @@ BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} +#!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi @@ -196,6 +197,8 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch +Patch1008: 1008-add-msft-compability-rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -430,6 +433,7 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 +%patch1008 -p1 %endif %build From 37062d5aaa8528fd0779284303a33a3b1e7e895fc26a10192f00ef53740f5d49 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 3 Jul 2013 14:53:50 +0000 Subject: [PATCH 146/221] Accepting request 181817 from Base:System - Replace parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch patch with insserv-generator.patch: no longer patch systemd main binary but generate systemd drop-in files using a generator, for insserv.conf compatibility. (forwarded request 181647 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/181817 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=150 --- insserv-generator.patch | 394 ++++++++++++++++++ ...nf-and-adds-dependencies-accordingly.patch | 131 ------ systemd-mini.changes | 9 + systemd-mini.spec | 6 +- systemd.changes | 9 + systemd.spec | 6 +- 6 files changed, 416 insertions(+), 139 deletions(-) create mode 100644 insserv-generator.patch delete mode 100644 parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch diff --git a/insserv-generator.patch b/insserv-generator.patch new file mode 100644 index 00000000..582098ea --- /dev/null +++ b/insserv-generator.patch @@ -0,0 +1,394 @@ +From a8cbe79c77836cc2466e3534157864abc98ef3ef Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Fri, 28 Jun 2013 17:54:41 +0200 +Subject: [PATCH] insserv.conf generator + +parse /etc/insserv.conf.dd content and /etc/insserv.conf and generate +systemd unit drop-in files to add dependencies +--- + Makefile.am | 9 + + src/insserv-generator/Makefile | 28 +++ + src/insserv-generator/insserv-generator.c | 309 ++++++++++++++++++++++++++++++ + 3 files changed, 346 insertions(+) + create mode 100644 src/insserv-generator/Makefile + create mode 100644 src/insserv-generator/insserv-generator.c + +diff --git a/Makefile.am b/Makefile.am +index 016d7da..9f8319d 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -315,6 +315,7 @@ rootlibexec_PROGRAMS = \ + systemd-sleep + + systemgenerator_PROGRAMS = \ ++ systemd-insserv-generator \ + systemd-getty-generator \ + systemd-fstab-generator \ + systemd-system-update-generator +@@ -1549,6 +1550,14 @@ systemd_delta_LDADD = \ + libsystemd-shared.la + + # ------------------------------------------------------------------------------ ++systemd_insserv_generator_SOURCES = \ ++ src/insserv-generator/insserv-generator.c ++ ++systemd_insserv_generator_LDADD = \ ++ libsystemd-label.la \ ++ libsystemd-shared.la ++ ++# ------------------------------------------------------------------------------ + systemd_getty_generator_SOURCES = \ + src/getty-generator/getty-generator.c + +diff --git a/src/insserv-generator/Makefile b/src/insserv-generator/Makefile +new file mode 100644 +index 0000000..9d07505 +--- /dev/null ++++ b/src/insserv-generator/Makefile +@@ -0,0 +1,28 @@ ++# This file is part of systemd. ++# ++# Copyright 2010 Lennart Poettering ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++# ++# systemd 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 ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public License ++# along with systemd; If not, see . ++ ++# This file is a dirty trick to simplify compilation from within ++# emacs. This file is not intended to be distributed. So, don't touch ++# it, even better ignore it! ++ ++all: ++ $(MAKE) -C .. ++ ++clean: ++ $(MAKE) -C .. clean ++ ++.PHONY: all clean +diff --git a/src/insserv-generator/insserv-generator.c b/src/insserv-generator/insserv-generator.c +new file mode 100644 +index 0000000..067ee2f +--- /dev/null ++++ b/src/insserv-generator/insserv-generator.c +@@ -0,0 +1,309 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2012 Lennart Poettering ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++ ***/ ++ ++#include ++#include ++#include ++#include ++ ++#include "mkdir.h" ++#include "log.h" ++#include "fileio.h" ++#include "unit-name.h" ++#include "special.h" ++#include "path-util.h" ++#include "util.h" ++#include "strv.h" ++ ++static const char *arg_dest = "/tmp"; ++ ++static char *sysv_translate_name(const char *name) { ++ char *r; ++ ++ r = new(char, strlen(name) + sizeof(".service")); ++ if (!r) ++ return NULL; ++ ++ if (endswith(name, ".sh")) ++ /* Drop .sh suffix */ ++ strcpy(stpcpy(r, name) - 3, ".service"); ++ else ++ /* Normal init script name */ ++ strcpy(stpcpy(r, name), ".service"); ++ ++ return r; ++} ++ ++static int sysv_translate_facility(const char *name, const char *filename, char **_r) { ++ ++ /* We silently ignore the $ prefix here. According to the LSB ++ * spec it simply indicates whether something is a ++ * standardized name or a distribution-specific one. Since we ++ * just follow what already exists and do not introduce new ++ * uses or names we don't care who introduced a new name. */ ++ ++ static const char * const table[] = { ++ /* LSB defined facilities */ ++ "local_fs", NULL, ++ "network", SPECIAL_NETWORK_TARGET, ++ "named", SPECIAL_NSS_LOOKUP_TARGET, ++ "portmap", SPECIAL_RPCBIND_TARGET, ++ "remote_fs", SPECIAL_REMOTE_FS_TARGET, ++ "syslog", NULL, ++ "time", SPECIAL_TIME_SYNC_TARGET, ++ }; ++ ++ unsigned i; ++ char *r; ++ const char *n; ++ ++ assert(name); ++ assert(_r); ++ ++ n = *name == '$' ? name + 1 : name; ++ ++ for (i = 0; i < ELEMENTSOF(table); i += 2) { ++ ++ if (!streq(table[i], n)) ++ continue; ++ ++ if (!table[i+1]) ++ return 0; ++ ++ r = strdup(table[i+1]); ++ if (!r) ++ return log_oom(); ++ ++ goto finish; ++ } ++ ++ /* If we don't know this name, fallback heuristics to figure ++ * out whether something is a target or a service alias. */ ++ ++ if (*name == '$') { ++ if (!unit_prefix_is_valid(n)) ++ return -EINVAL; ++ ++ /* Facilities starting with $ are most likely targets */ ++ r = unit_name_build(n, NULL, ".target"); ++ } else if (filename && streq(name, filename)) ++ /* Names equaling the file name of the services are redundant */ ++ return 0; ++ else ++ /* Everything else we assume to be normal service names */ ++ r = sysv_translate_name(n); ++ ++ if (!r) ++ return -ENOMEM; ++ ++finish: ++ *_r = r; ++ ++ return 1; ++} ++ ++ ++ ++static int parse_insserv_conf(const char* filename) { ++ _cleanup_fclose_ FILE *f = NULL; ++ int r; ++ ++ if (!(f = fopen(filename, "re"))) { ++ log_debug("Failed to open file %s", filename); ++ r = errno == ENOENT ? 0 : -errno; ++ return r; ++ } ++ ++ while (!feof(f)) { ++ char l[LINE_MAX], *t; ++ _cleanup_strv_free_ char **parsed = NULL; ++ ++ if (!fgets(l, sizeof(l), f)) { ++ if (feof(f)) ++ break; ++ ++ r = -errno; ++ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r)); ++ return -r; ++ } ++ ++ t = strstrip(l); ++ if (*t != '$' && *t != '<') ++ continue; ++ ++ parsed = strv_split(t,WHITESPACE); ++ /* we ignore , not used, equivalent to X-Interactive */ ++ if (parsed && !startswith_no_case (parsed[0], "")) { ++ _cleanup_free_ char *facility = NULL; ++ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) ++ continue; ++ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { ++ _cleanup_free_ char *unit = NULL; ++ /* insert also a Wants dependency from remote-fs-pre on remote-fs */ ++ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",path_get_file_name(filename),".conf", NULL); ++ if (!unit) ++ return log_oom(); ++ ++ mkdir_parents_label(unit, 0755); ++ ++ r = write_string_file(unit, ++ "# Automatically generated by systemd-insserv-generator\n\n" ++ "[Unit]\n" ++ "Wants=remote-fs-pre.target\n"); ++ if (r) ++ return r; ++ free (facility); ++ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); ++ } ++ if (facility && endswith(facility, ".target")) { ++ char *name, **j; ++ FILE *file = NULL; ++ ++ STRV_FOREACH (j, parsed+1) { ++ _cleanup_free_ char *unit = NULL; ++ _cleanup_free_ char *dep = NULL; ++ ++ if (*j[0] == '+') ++ name = *j+1; ++ else ++ name = *j; ++ if (streq(name, "boot.localfs") || ++ streq(name, "boot.crypto")) ++ continue; ++ if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep) ++ continue; ++ ++ unit = strjoin(arg_dest, "/", dep, ".d/50-",path_get_file_name(filename),"-",parsed[0],".conf", NULL); ++ if (!unit) ++ return log_oom(); ++ ++ mkdir_parents_label(unit, 0755); ++ ++ file = fopen(unit, "wxe"); ++ if (!file) { ++ if (errno == EEXIST) ++ log_error("Failed to create drop-in file %s", unit); ++ else ++ log_error("Failed to create drop-in file %s: %m", unit); ++ return -errno; ++ } ++ ++ fprintf(file, ++ "# Automatically generated by systemd-insserv-generator\n\n" ++ "[Unit]\n" ++ "Wants=%s\n" ++ "Before=%s\n", ++ facility, facility); ++ ++ fflush(file); ++ if (ferror(file)) { ++ log_error("Failed to write unit file %s: %m", unit); ++ return -errno; ++ } ++ fclose(file); ++ ++ if (*j[0] != '+') { ++ free (unit); ++ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",path_get_file_name(filename),"-",parsed[0],".conf", NULL); ++ if (!unit) ++ return log_oom(); ++ ++ mkdir_parents_label(unit, 0755); ++ ++ file = fopen(unit, "wxe"); ++ if (!file) { ++ if (errno == EEXIST) ++ log_error("Failed to create drop-in file %s, as it already exists", unit); ++ else ++ log_error("Failed to create drop-in file %s: %m", unit); ++ return -errno; ++ } ++ ++ ++ fprintf(file, ++ "# Automatically generated by systemd-insserv-generator\n\n" ++ "[Unit]\n" ++ "SourcePath=%s\n" ++ "Requires=%s\n", ++ filename, dep); ++ fflush(file); ++ if (ferror(file)) { ++ log_error("Failed to write unit file %s: %m", unit); ++ return -errno; ++ } ++ fclose(file); ++ } ++ } ++ } ++ } ++ } ++ return r; ++} ++ ++static int parse_insserv(void) { ++ DIR *d = NULL; ++ struct dirent *de; ++ int r = 0; ++ ++ if (!(d = opendir("/etc/insserv.conf.d/"))) { ++ if (errno != ENOENT) { ++ log_debug("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno)); ++ } ++ } else { ++ ++ while ((de = readdir(d))) { ++ char *path = NULL; ++ if (ignore_file(de->d_name)) ++ continue; ++ ++ path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL); ++ parse_insserv_conf(path); ++ free(path); ++ } ++ closedir (d); ++ } ++ ++ r = parse_insserv_conf("/etc/insserv.conf"); ++ ++ return r; ++} ++ ++int main(int argc, char *argv[]) { ++ int r = 0; ++ ++ if (argc > 1 && argc != 4) { ++ log_error("This program takes three or no arguments."); ++ return EXIT_FAILURE; ++ } ++ ++ if (argc > 1) ++ arg_dest = argv[1]; ++ ++ log_set_target(LOG_TARGET_SAFE); ++ log_parse_environment(); ++ log_open(); ++ ++ umask(0022); ++ ++ r = parse_insserv(); ++ ++ return (r < 0) ? EXIT_FAILURE : EXIT_SUCCESS; ++} +-- +1.8.1.4 + diff --git a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch deleted file mode 100644 index ec213871..00000000 --- a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +++ /dev/null @@ -1,131 +0,0 @@ -From: Frederic Crozat -Date: Fri, 30 Sep 2011 13:55:31 +0000 -Subject: parse /etc/insserv.conf and adds dependencies accordingly - -(bnc#721428) ---- - src/core/service.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 104 insertions(+) - -diff --git a/src/core/service.c b/src/core/service.c -index 3617c24..3c66cdb 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -3443,6 +3443,108 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - } - - #ifdef HAVE_SYSV_COMPAT -+static void sysv_parse_insserv_conf(Manager *mgr, const char* filename) { -+ FILE *f = NULL; -+ int r; -+ -+ if (!(f = fopen(filename, "re"))) { -+ log_debug("Failed to open file %s", filename); -+ r = errno == ENOENT ? 0 : -errno; -+ goto finish; -+ } -+ -+ while (!feof(f)) { -+ char l[LINE_MAX], *t; -+ char **parsed = NULL; -+ -+ if (!fgets(l, sizeof(l), f)) { -+ if (feof(f)) -+ break; -+ -+ r = -errno; -+ log_error("Failed to read configuration file '%s': %s", filename, strerror(-r)); -+ goto finish; -+ } -+ -+ t = strstrip(l); -+ if (*t != '$' && *t != '<') -+ continue; -+ -+ parsed = strv_split(t,WHITESPACE); -+ /* we ignore , not used, equivalent to X-Interactive */ -+ if (parsed && !startswith_no_case (parsed[0], "")) { -+ char *facility; -+ Unit *u; -+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) -+ continue; -+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { -+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */ -+ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET); -+ if (u) { -+ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true); -+ free (facility); -+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET); -+ } -+ } -+ u = manager_get_unit(mgr, facility); -+ if (u && (u->type == UNIT_TARGET)) { -+ char *dep = NULL, *name, **j; -+ -+ STRV_FOREACH (j, parsed+1) { -+ if (*j[0] == '+') -+ name = *j+1; -+ else -+ name = *j; -+ if (streq(name, "boot.localfs") || -+ streq(name, "boot.crypto")) -+ continue; -+ if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep) -+ continue; -+ -+ r = unit_add_two_dependencies_by_name_inverse(u, UNIT_WANTS, UNIT_BEFORE, dep, NULL, true); -+ if (*j[0] != '+') -+ r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true); -+ free(dep); -+ } -+ } -+ free(facility); -+ } -+ strv_free(parsed); -+ } -+finish: -+ if (f) -+ fclose(f); -+ -+} -+ -+static void sysv_facility_in_insserv_conf(Manager *mgr) { -+ DIR *d =NULL; -+ struct dirent *de; -+ -+#ifdef TARGET_DEBIAN -+ if (!(d = opendir("/etc/insserv.conf.d/"))) -+ if (errno != ENOENT) { -+ log_warning("opendir() failed on /etc/insserv.conf.d/ %s", strerror(errno)); -+ goto finish; -+ } -+ -+ while ((de = readdir(d))) { -+ char *path = NULL; -+ if (ignore_file(de->d_name)) -+ continue; -+ -+ path = join("/etc/insserv.conf.d/", de->d_name, NULL); -+ sysv_parse_insserv_conf(mgr, path); -+ free(path); -+ } -+finish: -+ if (d) -+ closedir(d); -+#endif -+ -+ sysv_parse_insserv_conf(mgr, "/etc/insserv.conf"); -+} -+ - - static int service_enumerate(Manager *m) { - char **p; -@@ -3603,6 +3705,8 @@ static int service_enumerate(Manager *m) { - - r = 0; - -+ sysv_facility_in_insserv_conf (m); -+ - finish: - - for (i = 0; i < ELEMENTSOF(rcnd_table); i++) diff --git a/systemd-mini.changes b/systemd-mini.changes index c3814085..1900e582 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jul 1 13:43:31 UTC 2013 - fcrozat@suse.com + +- Replace + parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch + patch with insserv-generator.patch: no longer patch systemd main + binary but generate systemd drop-in files using a generator, for + insserv.conf compatibility. + ------------------------------------------------------------------- Mon Jul 1 09:14:55 UTC 2013 - coolo@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 2acc148c..e0be549a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -106,7 +106,6 @@ Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert Source4: macros.systemd -Source5: systemd-insserv_conf Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init @@ -124,7 +123,7 @@ Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch -Patch6: parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +Patch6: insserv-generator.patch Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -507,8 +506,6 @@ find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert -# do not install, code has been fixed, might be useful in the future -#install -m755 %{S:5} %{buildroot}/usr/lib/systemd/system-generators ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot @@ -849,6 +846,7 @@ fi %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator /%{_lib}/security/pam_systemd.so %dir %{_libexecdir}/modules-load.d diff --git a/systemd.changes b/systemd.changes index c3814085..1900e582 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jul 1 13:43:31 UTC 2013 - fcrozat@suse.com + +- Replace + parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch + patch with insserv-generator.patch: no longer patch systemd main + binary but generate systemd drop-in files using a generator, for + insserv.conf compatibility. + ------------------------------------------------------------------- Mon Jul 1 09:14:55 UTC 2013 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index ac3929f1..8bb25aa8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -101,7 +101,6 @@ Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert Source4: macros.systemd -Source5: systemd-insserv_conf Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init @@ -119,7 +118,7 @@ Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch -Patch6: parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +Patch6: insserv-generator.patch Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -502,8 +501,6 @@ find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert -# do not install, code has been fixed, might be useful in the future -#install -m755 %{S:5} %{buildroot}/usr/lib/systemd/system-generators ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot @@ -844,6 +841,7 @@ fi %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator /%{_lib}/security/pam_systemd.so %dir %{_libexecdir}/modules-load.d From 2ce609fe247e1bc6d87bf5b52dcac7286be1bc0949ed12ae666e39008a98698b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 2 Aug 2013 05:26:48 +0000 Subject: [PATCH 147/221] Accepting request 185496 from Base:System - Ensure /usr/lib/systemd/system/shutdown.target.wants is created and owned by systemd package. (forwarded request 185494 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/185496 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=151 --- ...urnal-letting-interleaved-seqnums-go.patch | 74 -------- ...nt_dump-don-t-segfault-if-mount-is-n.patch | 34 ++++ ...-last-direction-of-search-and-keep-o.patch | 122 -------------- ...ups-release-agent-when-shutting-down.patch | 74 ++++++++ ...lculate-the-ACL-mask-but-only-if-it-.patch | 87 ---------- ...move-ancient-fallback-code-turn-conn.patch | 53 ++++++ ...message-output-at-shutdown-when-quie.patch | 69 ++++++++ ...llow-nuking-of-symlinks-to-removed-u.patch | 36 ---- ...port-alien-child-as-alive-when-it-s-.patch | 29 ---- ...ing-about-the-root-mount-from-mounti.patch | 33 ---- ...t-to-connect-to-a-session-bus-if-one.patch | 34 ---- ...enable-by_path-links-for-ata-devices.patch | 10 +- ...ate-by-id-scsi-links-for-ATA-devices.patch | 8 +- 1003-udev-netlink-null-rules.patch | 8 +- 1004-fix-devname-prefix.patch | 22 --- ...fault-links-for-primary-cd_dvd-drive.patch | 8 +- 1006-udev-always-rename-network.patch | 6 +- 1007-physical-hotplug-cpu-and-memory.patch | 12 +- 1008-add-msft-compability-rules.patch | 12 +- ...es-permissions-to-follow-openSUSE-po.patch | 6 +- ...-suspend-hibernate-calls-to-pm-utils.patch | 16 +- ...pport-for-SysV-scripts-for-the-early.patch | 20 +-- Start-ctrl-alt-del.target-irreversibly.patch | 27 --- allow-multiple-sulogin-to-be-started.patch | 18 +- apply-ACL-for-nvidia-device-nodes.patch | 14 +- ...alid-address-familily-is-passed-to-g.patch | 8 +- ...etup-after-md-dmraid-lvm-are-started.patch | 12 +- ...le-nss-myhostname-warning-bnc-783841.patch | 6 +- ...e-started-before-local-fs-pre-target.patch | 6 +- ...assword-wall-starts-after-getty-tty1.patch | 6 +- ...rtname-is-set-as-hostname-bnc-820213.patch | 8 +- ...are-applied-after-modules-are-loaded.patch | 8 +- fix-owner-of-var-log-btmp.patch | 6 +- ...-boot-prefixed-initscript-bnc-746506.patch | 8 +- ...t-after-cryptsetup-target-is-reached.patch | 8 +- ...STEMCTL_OPTIONS-environment-variable.patch | 8 +- ...plock-and-compose_table-and-kbd_rate.patch | 10 +- handle-etc-HOSTNAME.patch | 22 +-- ...lock-value-in-etc-sysconfig-keyboard.patch | 28 +-- ...lang-value-in-etc-sysconfig-language.patch | 41 +++-- insserv-generator.patch | 23 +-- macros.systemd.upstream | 5 + ...USE-etc-sysconfig-kernel-module-list.patch | 14 +- ...lly-warn-if-nss-myhostname-is-called.patch | 20 +-- ...script-heuristic-and-add-new-LSB-hea.patch | 20 +-- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 24 +-- ...vice-with-detected-pid-as-RemainAfte.patch | 8 +- ...ndle-boot-sysctl.conf-kernel_release.patch | 12 +- ...oes-not-expand-u-so-revert-back-to-I.patch | 27 --- systemd-204.tar.xz | 3 - systemd-206.tar.xz | 3 + systemd-insserv_conf | 34 ---- systemd-mini-rpmlintrc | 2 + systemd-mini.changes | 159 ++++++++++++++++++ systemd-mini.spec | 101 ++++++----- systemd-rpm-macros.changes | 5 + systemd-rpm-macros.spec | 2 +- systemd-rpmlintrc | 2 + systemd-tmp-safe-defaults.patch | 6 +- systemd.changes | 159 ++++++++++++++++++ systemd.spec | 101 ++++++----- ...or-openSUSE-version-of-etc-sysconfig.patch | 6 +- ...r-sbin-sulogin-for-emergency-service.patch | 27 +++ 63 files changed, 877 insertions(+), 903 deletions(-) delete mode 100644 0001-journal-letting-interleaved-seqnums-go.patch create mode 100644 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch delete mode 100644 0002-journal-remember-last-direction-of-search-and-keep-o.patch create mode 100644 0004-disable-the-cgroups-release-agent-when-shutting-down.patch delete mode 100644 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch create mode 100644 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch create mode 100644 0006-suppress-status-message-output-at-shutdown-when-quie.patch delete mode 100644 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch delete mode 100644 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch delete mode 100644 0160-mount-when-learning-about-the-root-mount-from-mounti.patch delete mode 100644 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch delete mode 100644 1004-fix-devname-prefix.patch delete mode 100644 Start-ctrl-alt-del.target-irreversibly.patch delete mode 100644 systemctl-does-not-expand-u-so-revert-back-to-I.patch delete mode 100644 systemd-204.tar.xz create mode 100644 systemd-206.tar.xz delete mode 100644 systemd-insserv_conf create mode 100644 use-usr-sbin-sulogin-for-emergency-service.patch diff --git a/0001-journal-letting-interleaved-seqnums-go.patch b/0001-journal-letting-interleaved-seqnums-go.patch deleted file mode 100644 index a3c6054a..00000000 --- a/0001-journal-letting-interleaved-seqnums-go.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 53113dc8254cae9a27e321e539d2d876677e61b9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 7 Jun 2013 22:01:03 -0400 -Subject: [PATCH] journal: letting (interleaved) seqnums go - -In the following scenario: - server creates system.journal - server creates user-1000.journal -both journals share the same seqnum_id. -Then - server writes to user-1000.journal first, - and server writes to system.journal a bit later, -and everything is fine. -The server then terminates (crash, reboot, rsyslog testing, -whatever), and user-1000.journal has entries which end with -a lower seqnum than system.journal. Now - server is restarted - server opens user-1000.journal and writes entries to it... -BAM! duplicate seqnums for the same seqnum_id. - -Now, we usually don't see that happen, because system.journal -is closed last, and opened first. Since usually at least one -message is written during boot and lands in the system.journal, -the seqnum is initialized from it, and is set to a number higher -than than anything found in user journals. Nevertheless, if -system.journal is corrupted and is rotated, it can happen that -an entry is written to the user journal with a seqnum that is -a duplicate with an entry found in the corrupted system.journal~. -When browsing the journal, journalctl can fall into a loop -where it tries to follow the seqnums, and tries to go the -next location by seqnum, and is transported back in time to -to the older duplicate seqnum. There is not way to find -out the maximum seqnum used in a multiple files, without -actually looking at all of them. But we don't want to do -that because it would be slow, and actually it isn't really -possible, because a file might e.g. be temporarily unaccessible. - -Fix the problem by using different seqnum series for user -journals. Using the same seqnum series for rotated journals -is still fine, because we know that nothing will write -to the rotated journal anymore. - -Likely related: -https://bugs.freedesktop.org/show_bug.cgi?id=64566 -https://bugs.freedesktop.org/show_bug.cgi?id=59856 -https://bugs.freedesktop.org/show_bug.cgi?id=64296 -https://bugs.archlinux.org/task/35581 -https://bugzilla.novell.com/show_bug.cgi?id=817778 - -Possibly related: -https://bugs.freedesktop.org/show_bug.cgi?id=64293 - -Conflicts: - src/journal/journald-server.c ---- - src/journal/journald-server.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c -index cc52b8a..cde63c8 100644 ---- a/src/journal/journald-server.c -+++ b/src/journal/journald-server.c -@@ -280,7 +280,7 @@ static JournalFile* find_journal(Server *s, uid_t uid) { - journal_file_close(f); - } - -- r = journal_file_open_reliably(p, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, s->system_journal, &f); -+ r = journal_file_open_reliably(p, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &f); - free(p); - - if (r < 0) --- -1.8.2.1 - diff --git a/0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch b/0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch new file mode 100644 index 00000000..7db90f64 --- /dev/null +++ b/0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch @@ -0,0 +1,34 @@ +From 1e4fc9b1d8449e87474b3af8a4ddab09fab27cd5 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 4 Jul 2013 11:01:47 +0200 +Subject: [PATCH 2/6] core/mount.c:mount_dump(): don't segfault, if mount is + not mounted anymore + +Don't segfault, if m->from_proc_self_mountinfo and m->from_fragment is +false. + +https://bugzilla.redhat.com/show_bug.cgi?id=957783#c9 +--- + src/core/mount.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index 3cc3e65..58a3f11 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -822,9 +822,9 @@ static void mount_dump(Unit *u, FILE *f, const char *prefix) { + prefix, mount_state_to_string(m->state), + prefix, mount_result_to_string(m->result), + prefix, m->where, +- prefix, strna(p->what), +- prefix, strna(p->fstype), +- prefix, strna(p->options), ++ prefix, p ? strna(p->what) : "n/a", ++ prefix, p ? strna(p->fstype) : "n/a", ++ prefix, p ? strna(p->options) : "n/a", + prefix, yes_no(m->from_proc_self_mountinfo), + prefix, yes_no(m->from_fragment), + prefix, m->directory_mode); +-- +1.8.1.4 + diff --git a/0002-journal-remember-last-direction-of-search-and-keep-o.patch b/0002-journal-remember-last-direction-of-search-and-keep-o.patch deleted file mode 100644 index b710d55c..00000000 --- a/0002-journal-remember-last-direction-of-search-and-keep-o.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 87011c25d96e9fbcd8a465ba758fa037c7d08203 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Jun 2013 22:28:05 -0400 -Subject: [PATCH 01/13] journal: remember last direction of search and keep - offset cache - -The fields in JournalFile are moved around to avoid wasting -7 bytes because of alignment. ---- - TODO | 3 --- - src/journal/journal-file.h | 18 +++++++++++------- - src/journal/sd-journal.c | 11 +++++------ - 3 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/TODO b/TODO -index 0dd19a0..1dc585c 100644 ---- a/TODO -+++ b/TODO -@@ -77,9 +77,6 @@ Features: - - * investigate endianess issues of UUID vs. GUID - --* see if we can fix https://bugs.freedesktop.org/show_bug.cgi?id=63672 -- without dropping the location cache entirely. -- - * dbus: when a unit failed to load (i.e. is in UNIT_ERROR state), we - should be able to safely try another attempt when the bus call LoadUnit() is invoked. - -diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h -index 7b1cd42..5cc2c2d 100644 ---- a/src/journal/journal-file.h -+++ b/src/journal/journal-file.h -@@ -42,10 +42,14 @@ typedef struct JournalMetrics { - uint64_t keep_free; - } JournalMetrics; - -+typedef enum direction { -+ DIRECTION_UP, -+ DIRECTION_DOWN -+} direction_t; -+ - typedef struct JournalFile { - int fd; -- char *path; -- struct stat last_stat; -+ - mode_t mode; - - int flags; -@@ -56,6 +60,11 @@ typedef struct JournalFile { - - bool tail_entry_monotonic_valid; - -+ direction_t last_direction; -+ -+ char *path; -+ struct stat last_stat; -+ - Header *header; - HashItem *data_hash_table; - HashItem *field_hash_table; -@@ -90,11 +99,6 @@ typedef struct JournalFile { - #endif - } JournalFile; - --typedef enum direction { -- DIRECTION_UP, -- DIRECTION_DOWN --} direction_t; -- - int journal_file_open( - const char *fname, - int flags, -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 3aa9ed4..4c4cc2d 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -102,7 +102,8 @@ static void init_location(Location *l, LocationType type, JournalFile *f, Object - l->seqnum_set = l->realtime_set = l->monotonic_set = l->xor_hash_set = true; - } - --static void set_location(sd_journal *j, LocationType type, JournalFile *f, Object *o, uint64_t offset) { -+static void set_location(sd_journal *j, LocationType type, JournalFile *f, Object *o, -+ direction_t direction, uint64_t offset) { - assert(j); - assert(type == LOCATION_DISCRETE || type == LOCATION_SEEK); - assert(f); -@@ -110,12 +111,10 @@ static void set_location(sd_journal *j, LocationType type, JournalFile *f, Objec - - init_location(&j->current_location, type, f, o); - -- if (j->current_file) -- j->current_file->current_offset = 0; -- - j->current_file = f; - j->current_field = 0; - -+ f->last_direction = direction; - f->current_offset = offset; - } - -@@ -811,7 +810,7 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc - assert(j); - assert(f); - -- if (f->current_offset > 0) { -+ if (f->last_direction == direction && f->current_offset > 0) { - cp = f->current_offset; - - r = journal_file_move_to_object(f, OBJECT_ENTRY, cp, &c); -@@ -908,7 +907,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { - if (r < 0) - return r; - -- set_location(j, LOCATION_DISCRETE, new_file, o, new_offset); -+ set_location(j, LOCATION_DISCRETE, new_file, o, direction, new_offset); - - return 1; - } --- -1.8.2.1 - diff --git a/0004-disable-the-cgroups-release-agent-when-shutting-down.patch b/0004-disable-the-cgroups-release-agent-when-shutting-down.patch new file mode 100644 index 00000000..52f7b574 --- /dev/null +++ b/0004-disable-the-cgroups-release-agent-when-shutting-down.patch @@ -0,0 +1,74 @@ +From ad929bcc27e2c6c1aa731053e45882686e9babab Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 4 Jul 2013 20:31:18 +0200 +Subject: [PATCH 4/6] disable the cgroups release agent when shutting down + +During shutdown, when we try to clean up all remaining processes, the +kernel will fork new agents every time a cgroup runs empty. These +new processes cause delays in the final SIGTERM, SIGKILL logic. + +Apart from that, this should also avoid that the kernel-forked binaries +cause unpredictably timed access to the filesystem which we might need to +unmount. +--- + src/core/main.c | 4 ++++ + src/shared/cgroup-util.c | 15 +++++++++++++++ + src/shared/cgroup-util.h | 1 + + 3 files changed, 20 insertions(+) + +diff --git a/src/core/main.c b/src/core/main.c +index 8b8e110..ada0f9d 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -1942,6 +1942,10 @@ finish: + watchdog_close(true); + } + ++ /* avoid the creation of new processes forked by the kernel; at this ++ * point, we will not listen to the signals anyway */ ++ cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); ++ + execve(SYSTEMD_SHUTDOWN_BINARY_PATH, (char **) command_line, env_block); + free(env_block); + log_error("Failed to execute shutdown binary, freezing: %m"); +diff --git a/src/shared/cgroup-util.c b/src/shared/cgroup-util.c +index 390259e..73013d1 100644 +--- a/src/shared/cgroup-util.c ++++ b/src/shared/cgroup-util.c +@@ -790,6 +790,21 @@ int cg_install_release_agent(const char *controller, const char *agent) { + return 0; + } + ++int cg_uninstall_release_agent(const char *controller) { ++ _cleanup_free_ char *fs = NULL; ++ int r; ++ ++ r = cg_get_path(controller, NULL, "release_agent", &fs); ++ if (r < 0) ++ return r; ++ ++ r = write_string_file(fs, ""); ++ if (r < 0) ++ return r; ++ ++ return 0; ++} ++ + int cg_is_empty(const char *controller, const char *path, bool ignore_self) { + _cleanup_fclose_ FILE *f = NULL; + pid_t pid = 0, self_pid; +diff --git a/src/shared/cgroup-util.h b/src/shared/cgroup-util.h +index c781aab..0fc93c1 100644 +--- a/src/shared/cgroup-util.h ++++ b/src/shared/cgroup-util.h +@@ -89,6 +89,7 @@ int cg_set_group_access(const char *controller, const char *path, mode_t mode, u + int cg_set_task_access(const char *controller, const char *path, mode_t mode, uid_t uid, gid_t gid); + + int cg_install_release_agent(const char *controller, const char *agent); ++int cg_uninstall_release_agent(const char *controller); + + int cg_is_empty(const char *controller, const char *path, bool ignore_self); + int cg_is_empty_by_spec(const char *spec, bool ignore_self); +-- +1.8.1.4 + diff --git a/0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch b/0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch deleted file mode 100644 index cb24f70e..00000000 --- a/0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 7f20c71497ec7c78c6d2572a0d7075f78b14548a Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" -Date: Tue, 28 May 2013 20:45:34 +0200 -Subject: [PATCH 4/8] journald: DO recalculate the ACL mask, but only if it - doesn't exist - -Since 11ec7ce, journald isn't setting the ACLs properly anymore if -the files had no ACLs to begin with: acl_set_fd fails with EINVAL. - -An ACL with ACL_USER or ACL_GROUP entries but no ACL_MASK entry is -invalid, so make sure a mask exists before trying to set the ACL. ---- - src/journal/journald-server.c | 6 ++++-- - src/shared/acl-util.c | 28 ++++++++++++++++++++++++++++ - src/shared/acl-util.h | 1 + - 3 files changed, 33 insertions(+), 2 deletions(-) - -diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c -index cc52b8a..01f23ce 100644 ---- a/src/journal/journald-server.c -+++ b/src/journal/journald-server.c -@@ -227,9 +227,11 @@ void server_fix_perms(Server *s, JournalFile *f, uid_t uid) { - } - } - -- /* We do not recalculate the mask here, so that the fchmod() mask above stays intact. */ -+ /* We do not recalculate the mask unconditionally here, -+ * so that the fchmod() mask above stays intact. */ - if (acl_get_permset(entry, &permset) < 0 || -- acl_add_perm(permset, ACL_READ) < 0) { -+ acl_add_perm(permset, ACL_READ) < 0 || -+ calc_acl_mask_if_needed(&acl) < 0) { - log_warning("Failed to patch ACL on %s, ignoring: %m", f->path); - goto finish; - } -diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c -index 48bb12f..fb04e49 100644 ---- a/src/shared/acl-util.c -+++ b/src/shared/acl-util.c -@@ -69,6 +69,34 @@ int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry) { - return 0; - } - -+int calc_acl_mask_if_needed(acl_t *acl_p) { -+ acl_entry_t i; -+ int found; -+ -+ assert(acl_p); -+ -+ for (found = acl_get_entry(*acl_p, ACL_FIRST_ENTRY, &i); -+ found > 0; -+ found = acl_get_entry(*acl_p, ACL_NEXT_ENTRY, &i)) { -+ -+ acl_tag_t tag; -+ -+ if (acl_get_tag_type(i, &tag) < 0) -+ return -errno; -+ -+ if (tag == ACL_MASK) -+ return 0; -+ } -+ -+ if (found < 0) -+ return -errno; -+ -+ if (acl_calc_mask(acl_p) < 0) -+ return -errno; -+ -+ return 0; -+} -+ - int search_acl_groups(char*** dst, const char* path, bool* belong) { - acl_t acl; - -diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h -index 23090d9..36ef490 100644 ---- a/src/shared/acl-util.h -+++ b/src/shared/acl-util.h -@@ -24,4 +24,5 @@ - #include - - int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry); -+int calc_acl_mask_if_needed(acl_t *acl_p); - int search_acl_groups(char*** dst, const char* path, bool* belong); --- -1.8.1.4 - diff --git a/0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch b/0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch new file mode 100644 index 00000000..2f4b7254 --- /dev/null +++ b/0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch @@ -0,0 +1,53 @@ +From c1eba3008cac9e625b8bb774e9b44ceec8465980 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 4 Jul 2013 20:54:40 +0200 +Subject: [PATCH 5/6] cgroups-agent: remove ancient fallback code; turn + connection error into warning + +During re-execution and shutdown cgroups agents might not be able +to connect to systemd's private D-Bus socket, the printed error to +the console is misleding in that case, so turn it into a warning. +--- + src/cgroups-agent/cgroups-agent.c | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/src/cgroups-agent/cgroups-agent.c b/src/cgroups-agent/cgroups-agent.c +index 0e3d2b7..a47949a 100644 +--- a/src/cgroups-agent/cgroups-agent.c ++++ b/src/cgroups-agent/cgroups-agent.c +@@ -48,26 +48,19 @@ int main(int argc, char *argv[]) { + * this to avoid an activation loop when we start dbus when we + * are called when the dbus service is shut down. */ + +- if (!(bus = dbus_connection_open_private("unix:path=/run/systemd/private", &error))) { +-#ifndef NOLEGACY +- dbus_error_free(&error); +- +- /* Retry with the pre v21 socket name, to ease upgrades */ +- if (!(bus = dbus_connection_open_private("unix:abstract=/org/freedesktop/systemd1/private", &error))) { +-#endif +- log_error("Failed to get D-Bus connection: %s", bus_error_message(&error)); +- goto finish; +- } +-#ifndef NOLEGACY ++ bus = dbus_connection_open_private("unix:path=/run/systemd/private", &error); ++ if (!bus) { ++ log_warning("Failed to get D-Bus connection: %s", bus_error_message(&error)); ++ goto finish; + } +-#endif + + if (bus_check_peercred(bus) < 0) { + log_error("Bus owner not root."); + goto finish; + } + +- if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1/agent", "org.freedesktop.systemd1.Agent", "Released"))) { ++ m = dbus_message_new_signal("/org/freedesktop/systemd1/agent", "org.freedesktop.systemd1.Agent", "Released"); ++ if (!m) { + log_error("Could not allocate signal message."); + goto finish; + } +-- +1.8.1.4 + diff --git a/0006-suppress-status-message-output-at-shutdown-when-quie.patch b/0006-suppress-status-message-output-at-shutdown-when-quie.patch new file mode 100644 index 00000000..8fb7ba23 --- /dev/null +++ b/0006-suppress-status-message-output-at-shutdown-when-quie.patch @@ -0,0 +1,69 @@ +From ec26be514ff3c5367b21f9881369080bda54fd2d Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 5 Jul 2013 00:32:05 +0200 +Subject: [PATCH 6/6] suppress status message output at shutdown when 'quiet' + is given + +--- + src/core/main.c | 4 ++-- + src/core/shutdown.c | 15 +++++++++++++++ + 2 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/src/core/main.c b/src/core/main.c +index ada0f9d..243855f 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -1942,9 +1942,9 @@ finish: + watchdog_close(true); + } + +- /* avoid the creation of new processes forked by the kernel; at this ++ /* avoid the creation of new processes forked by the kernel; at this + * point, we will not listen to the signals anyway */ +- cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); ++ cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); + + execve(SYSTEMD_SHUTDOWN_BINARY_PATH, (char **) command_line, env_block); + free(env_block); +diff --git a/src/core/shutdown.c b/src/core/shutdown.c +index 2db761d..c02a14d 100644 +--- a/src/core/shutdown.c ++++ b/src/core/shutdown.c +@@ -39,6 +39,7 @@ + + #include "missing.h" + #include "log.h" ++#include "fileio.h" + #include "umount.h" + #include "util.h" + #include "mkdir.h" +@@ -130,12 +131,26 @@ static int pivot_to_new_root(void) { + } + + int main(int argc, char *argv[]) { ++ _cleanup_free_ char *line = NULL; + int cmd, r; + unsigned retries; + bool need_umount = true, need_swapoff = true, need_loop_detach = true, need_dm_detach = true; + bool in_container, use_watchdog = false; + char *arguments[3]; + ++ /* suppress shutdown status output if 'quiet' is used */ ++ r = read_one_line_file("/proc/cmdline", &line); ++ if (r >= 0) { ++ char *w, *state; ++ size_t l; ++ ++ FOREACH_WORD_QUOTED(w, l, line, state) ++ if (streq(w, "quiet")) { ++ log_set_max_level(LOG_WARNING); ++ break; ++ } ++ } ++ + log_parse_environment(); + log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */ + log_open(); +-- +1.8.1.4 + diff --git a/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch b/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch deleted file mode 100644 index 4c39c957..00000000 --- a/0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3b1680e04cb0ff0e4cf180dbacd067f1f99316a2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 3 Jun 2013 13:55:13 -0400 -Subject: [PATCH 6/8] systemctl,core: allow nuking of symlinks to removed units - -Before, one the unit file was deleted, install_context_for_removal() -would refuse to look for symlinks. But we can remove dangling symlinks -anyway. - -In principle, package installation/deinstallation scripts should do -that before the unit is uninstalled, but they don't always do. Also, -a user might have added additional symlinks manually. - -https://bugs.freedesktop.org/show_bug.cgi?id=62395 ---- - src/shared/install.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/shared/install.c b/src/shared/install.c -index edf4d2a..a695e12 100644 ---- a/src/shared/install.c -+++ b/src/shared/install.c -@@ -1413,7 +1413,9 @@ static int install_context_mark_for_removal( - assert_se(hashmap_move_one(c->have_installed, c->will_install, i->name) == 0); - - q = unit_file_search(c, i, paths, root_dir, false); -- if (q < 0) { -+ if (q == -ENOENT) { -+ /* do nothing */ -+ } else if (q < 0) { - if (r >= 0) - r = q; - --- -1.8.1.4 - diff --git a/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch b/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch deleted file mode 100644 index c99f2428..00000000 --- a/0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3608595751f62bbc6d37eb78b746ab6fecfa2d45 Mon Sep 17 00:00:00 2001 -From: Ross Lagerwall -Date: Sun, 9 Jun 2013 17:28:44 +0100 -Subject: [PATCH 8/8] service: don't report alien child as alive when it's not - -When a sigchld is received from an alien child, main_pid is set to -0 then service_enter_running calls main_pid_good to check if the -child is running. This incorrectly returned true because -kill(main_pid, 0) would return >= 0. - -This fixes an error where a service would die and the cgroup would -become empty but the service would still report as active (running). ---- - src/core/service.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-204/src/core/service.c -=================================================================== ---- systemd-204.orig/src/core/service.c -+++ systemd-204/src/core/service.c -@@ -1933,7 +1933,7 @@ static int main_pid_good(Service *s) { - - /* If it's an alien child let's check if it is still - * alive ... */ -- if (s->main_pid_alien) -+ if (s->main_pid_alien && s->main_pid > 0) - return kill(s->main_pid, 0) >= 0 || errno != ESRCH; - - /* .. otherwise assume we'll get a SIGCHLD for it, diff --git a/0160-mount-when-learning-about-the-root-mount-from-mounti.patch b/0160-mount-when-learning-about-the-root-mount-from-mounti.patch deleted file mode 100644 index eb523ba7..00000000 --- a/0160-mount-when-learning-about-the-root-mount-from-mounti.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 602c0e740f8290cc9c4f13f2eb4b23fbbd7a8d2b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 17 Jun 2013 21:12:53 +0200 -Subject: [PATCH 160/197] mount: when learning about the root mount from - mountinfo, don't add conflicting dep for umount.target - -That way systemd won't try to umount it at shutdown. ---- - src/core/mount.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 10073b5..0ad3d95 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1538,9 +1538,11 @@ static int mount_add_one( - if (r < 0) - goto fail; - -- r = unit_add_dependency_by_name(u, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true); -- if (r < 0) -- goto fail; -+ if (!path_equal(where, "/")) { -+ r = unit_add_dependency_by_name(u, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true); -+ if (r < 0) -+ goto fail; -+ } - - unit_add_to_load_queue(u); - } else { --- -1.8.3.1 - diff --git a/0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch b/0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch deleted file mode 100644 index 571d5755..00000000 --- a/0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ed002560a1945fb8765c5559c293a19bc9e132d8 Mon Sep 17 00:00:00 2001 -From: Auke Kok -Date: Thu, 20 Jun 2013 13:36:33 -0700 -Subject: [PATCH 185/197] core: only attempt to connect to a session bus if one - likely exists. - ---- - src/core/manager.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 5c3a2c7..2416dd0 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -509,9 +509,13 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) { - goto fail; - - /* Try to connect to the busses, if possible. */ -- r = bus_init(m, running_as != SYSTEMD_SYSTEM); -- if (r < 0) -- goto fail; -+ if ((running_as == SYSTEMD_USER && getenv("DBUS_SESSION_BUS_ADDRESS")) || -+ running_as == SYSTEMD_SYSTEM) { -+ r = bus_init(m, running_as != SYSTEMD_SYSTEM); -+ if (r < 0) -+ goto fail; -+ } else -+ log_debug("Skipping DBus session bus connection attempt - no DBUS_SESSION_BUS_ADDRESS set..."); - - m->taint_usr = dir_is_empty("/usr") > 0; - --- -1.8.3.1 - diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch index 64f01c1f..8d9594ad 100644 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -7,11 +7,9 @@ Fix by-path links for ATA transport (bnc#770910) src/udev/udev-builtin-path_id.c | 92 +++++++++++++++++++++++++++++++++++------ 1 file changed, 80 insertions(+), 12 deletions(-) -diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c -index da02731..a77d4e8 100644 ---- a/src/udev/udev-builtin-path_id.c -+++ b/src/udev/udev-builtin-path_id.c -@@ -338,6 +338,85 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * +--- systemd-206.orig/src/udev/udev-builtin-path_id.c ++++ systemd-206/src/udev/udev-builtin-path_id.c +@@ -338,6 +338,85 @@ static struct udev_device *handle_scsi_h return parent; } @@ -97,7 +95,7 @@ index da02731..a77d4e8 100644 static struct udev_device *handle_scsi(struct udev_device *parent, char **path) { const char *devtype; -@@ -374,19 +453,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) +@@ -374,19 +453,8 @@ static struct udev_device *handle_scsi(s goto out; } diff --git a/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch index c2f3186c..bd7904c6 100644 --- a/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +++ b/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -7,11 +7,9 @@ Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) rules/60-persistent-storage.rules | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules -index a4d009a..f720c7e 100644 ---- a/rules/60-persistent-storage.rules -+++ b/rules/60-persistent-storage.rules -@@ -42,6 +42,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="s +--- systemd-206.orig/rules/60-persistent-storage.rules ++++ systemd-206/rules/60-persistent-storage.rules +@@ -42,6 +42,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" diff --git a/1003-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch index f486a13f..93756c5a 100644 --- a/1003-udev-netlink-null-rules.patch +++ b/1003-udev-netlink-null-rules.patch @@ -7,11 +7,9 @@ udevd race for netlink events (bnc#774646) src/udev/udevd.c | 2 ++ 1 file changed, 2 insertions(+) -Index: systemd-202/src/udev/udevd.c -=================================================================== ---- systemd-202.orig/src/udev/udevd.c -+++ systemd-202/src/udev/udevd.c -@@ -1407,6 +1407,8 @@ int main(int argc, char *argv[]) +--- systemd-206.orig/src/udev/udevd.c ++++ systemd-206/src/udev/udevd.c +@@ -1337,6 +1337,8 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); diff --git a/1004-fix-devname-prefix.patch b/1004-fix-devname-prefix.patch deleted file mode 100644 index 7ab99e97..00000000 --- a/1004-fix-devname-prefix.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Frederic Crozat -Date: Wed, 5 Dec 2012 15:13:27 +0000 -Subject: fix devname prefix - -fix modules.devname path, it isn't in /usr. ---- - src/udev/udevd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-202/src/udev/udevd.c -=================================================================== ---- systemd-202.orig/src/udev/udevd.c -+++ systemd-202/src/udev/udevd.c -@@ -824,7 +824,7 @@ static void static_dev_create_from_modul - return; - } - -- strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); -+ strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL); - f = fopen(modules, "re"); - if (f == NULL) - return; diff --git a/1005-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch index c66a9da0..e70b5758 100644 --- a/1005-create-default-links-for-primary-cd_dvd-drive.patch +++ b/1005-create-default-links-for-primary-cd_dvd-drive.patch @@ -7,11 +7,9 @@ cdrom_id: created links for the default cd/dvd drive (bnc#783054). rules/60-cdrom_id.rules | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules -index 6eaf76a..ec0b19a 100644 ---- a/rules/60-cdrom_id.rules -+++ b/rules/60-cdrom_id.rules -@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdr +--- systemd-206.orig/rules/60-cdrom_id.rules ++++ systemd-206/rules/60-cdrom_id.rules +@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr # enable the receiving of media eject button events IMPORT{program}="cdrom_id --lock-media $devnode" diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index d1c61d05..4f91c928 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -8,10 +8,8 @@ udev: ensure that the network interfaces are renamed even if they exist src/udev/udev-event.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) -Index: systemd-204/src/udev/udev-event.c -=================================================================== ---- systemd-204.orig/src/udev/udev-event.c -+++ systemd-204/src/udev/udev-event.c +--- systemd-206.orig/src/udev/udev-event.c ++++ systemd-206/src/udev/udev-event.c @@ -750,6 +750,7 @@ static int rename_netif(struct udev_even struct udev_device *dev = event->dev; int sk; diff --git a/1007-physical-hotplug-cpu-and-memory.patch b/1007-physical-hotplug-cpu-and-memory.patch index cd956a0c..7daebb20 100644 --- a/1007-physical-hotplug-cpu-and-memory.patch +++ b/1007-physical-hotplug-cpu-and-memory.patch @@ -1,7 +1,5 @@ -Index: systemd-204/rules/80-hotplug-cpu-mem.rules -=================================================================== --- /dev/null -+++ systemd-204/rules/80-hotplug-cpu-mem.rules ++++ systemd-206/rules/80-hotplug-cpu-mem.rules @@ -0,0 +1,9 @@ +# do not edit this file, it will be overwritten on update + @@ -12,11 +10,9 @@ Index: systemd-204/rules/80-hotplug-cpu-mem.rules +# Hotplug physical memory +SUBSYSTEM=="memory", ACTION=="add", TEST=="state", ATTR{state}=="offline", \ + ATTR{state}="online" -Index: systemd-204/Makefile.am -=================================================================== ---- systemd-204.orig/Makefile.am -+++ systemd-204/Makefile.am -@@ -2238,6 +2238,10 @@ dist_udevrules_DATA += \ +--- systemd-206.orig/Makefile.am ++++ systemd-206/Makefile.am +@@ -2480,6 +2480,10 @@ dist_udevrules_DATA += \ rules/73-seat-numlock.rules # ------------------------------------------------------------------------------ diff --git a/1008-add-msft-compability-rules.patch b/1008-add-msft-compability-rules.patch index 41d6e698..d0117371 100644 --- a/1008-add-msft-compability-rules.patch +++ b/1008-add-msft-compability-rules.patch @@ -1,8 +1,6 @@ -Index: systemd-204/Makefile.am -=================================================================== ---- systemd-204.orig/Makefile.am -+++ systemd-204/Makefile.am -@@ -2242,6 +2242,10 @@ dist_udevrules_DATA += \ +--- systemd-206.orig/Makefile.am ++++ systemd-206/Makefile.am +@@ -2484,6 +2484,10 @@ dist_udevrules_DATA += \ rules/80-hotplug-cpu-mem.rules # ------------------------------------------------------------------------------ @@ -13,10 +11,8 @@ Index: systemd-204/Makefile.am if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -Index: systemd-204/rules/61-msft.rules -=================================================================== --- /dev/null -+++ systemd-204/rules/61-msft.rules ++++ systemd-206/rules/61-msft.rules @@ -0,0 +1,9 @@ +# MSFT compability rules +ACTION!="add|change", GOTO="msft_end" diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch index 2cc1bb48..db366fca 100644 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -8,10 +8,8 @@ disable /var/lock/{subsys,lockdev} and change default permissions on tmpfiles.d/legacy.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) -diff --git a/tmpfiles.d/legacy.conf b/tmpfiles.d/legacy.conf -index 3fff347..81d5e47 100644 ---- a/tmpfiles.d/legacy.conf -+++ b/tmpfiles.d/legacy.conf +--- systemd-206.orig/tmpfiles.d/legacy.conf ++++ systemd-206/tmpfiles.d/legacy.conf @@ -10,12 +10,13 @@ # These files are considered legacy and are unnecessary on legacy-free # systems. diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 7e6b7b44..3b50d50b 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -7,10 +7,8 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) src/sleep/sleep.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) -diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index a56ab89..232ab67 100644 ---- a/src/sleep/sleep.c -+++ b/src/sleep/sleep.c +--- systemd-206.orig/src/sleep/sleep.c ++++ systemd-206/src/sleep/sleep.c @@ -24,6 +24,7 @@ #include #include @@ -38,7 +36,7 @@ index a56ab89..232ab67 100644 return r; } -@@ -90,6 +90,8 @@ static int execute(char **modes, char **states) { +@@ -90,6 +90,8 @@ static int execute(char **modes, char ** FILE *f; const char* note = strappenda("SLEEP=", arg_verb); @@ -47,7 +45,7 @@ index a56ab89..232ab67 100644 /* This file is opened first, so that if we hit an error, * we can abort before modyfing any state. */ f = fopen("/sys/power/state", "we"); -@@ -102,6 +104,7 @@ static int execute(char **modes, char **states) { +@@ -102,6 +104,7 @@ static int execute(char **modes, char ** r = write_mode(modes); if (r < 0) return r; @@ -55,7 +53,7 @@ index a56ab89..232ab67 100644 arguments[0] = NULL; arguments[1] = (char*) "pre"; -@@ -114,8 +117,10 @@ static int execute(char **modes, char **states) { +@@ -114,8 +117,10 @@ static int execute(char **modes, char ** "MESSAGE=Suspending system...", note, NULL); @@ -67,7 +65,7 @@ index a56ab89..232ab67 100644 if (r < 0) return r; -@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *argv[]) { +@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *ar }; int c; @@ -75,7 +73,7 @@ index a56ab89..232ab67 100644 assert(argc >= 0); assert(argv); -@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *argv[]) { +@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *ar return -EINVAL; } diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch index de856e1f..137a4824 100644 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -10,10 +10,8 @@ Conflicts: src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) -Index: systemd-204/src/core/service.c -=================================================================== ---- systemd-204.orig/src/core/service.c -+++ systemd-204/src/core/service.c +--- systemd-206.orig/src/core/service.c ++++ systemd-206/src/core/service.c @@ -51,7 +51,8 @@ typedef enum RunlevelType { @@ -55,7 +53,7 @@ Index: systemd-204/src/core/service.c #endif static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { -@@ -332,6 +345,9 @@ static char *sysv_translate_name(const c +@@ -334,6 +347,9 @@ static char *sysv_translate_name(const c if (endswith(name, ".sh")) /* Drop .sh suffix */ strcpy(stpcpy(r, name) - 3, ".service"); @@ -65,7 +63,7 @@ Index: systemd-204/src/core/service.c else /* Normal init script name */ strcpy(stpcpy(r, name), ".service"); -@@ -934,6 +950,13 @@ static int service_load_sysv_path(Servic +@@ -936,6 +952,13 @@ static int service_load_sysv_path(Servic if ((r = sysv_exec_commands(s, supports_reload)) < 0) goto finish; @@ -79,7 +77,7 @@ Index: systemd-204/src/core/service.c if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { /* If there a runlevels configured for this service -@@ -1015,6 +1038,9 @@ static int service_load_sysv_name(Servic +@@ -1017,6 +1040,9 @@ static int service_load_sysv_name(Servic if (endswith(name, ".sh.service")) return -ENOENT; @@ -89,7 +87,7 @@ Index: systemd-204/src/core/service.c STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { char *path; int r; -@@ -1035,6 +1061,18 @@ static int service_load_sysv_name(Servic +@@ -1037,6 +1063,18 @@ static int service_load_sysv_name(Servic } free(path); @@ -108,7 +106,7 @@ Index: systemd-204/src/core/service.c if (r < 0) return r; -@@ -3667,7 +3705,7 @@ static int service_enumerate(Manager *m) +@@ -3587,7 +3625,7 @@ static int service_enumerate(Manager *m) if (de->d_name[0] == 'S') { @@ -117,7 +115,7 @@ Index: systemd-204/src/core/service.c SERVICE(service)->sysv_start_priority_from_rcnd = MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); -@@ -3684,7 +3722,8 @@ static int service_enumerate(Manager *m) +@@ -3604,7 +3642,8 @@ static int service_enumerate(Manager *m) goto finish; } else if (de->d_name[0] == 'K' && @@ -127,7 +125,7 @@ Index: systemd-204/src/core/service.c r = set_ensure_allocated(&shutdown_services, trivial_hash_func, trivial_compare_func); -@@ -3724,7 +3763,9 @@ static int service_enumerate(Manager *m) +@@ -3644,7 +3683,9 @@ static int service_enumerate(Manager *m) * runlevels we assume the stop jobs will be implicitly added * by the core logic. Also, we don't really distinguish here * between the runlevels 0 and 6 and just add them to the diff --git a/Start-ctrl-alt-del.target-irreversibly.patch b/Start-ctrl-alt-del.target-irreversibly.patch deleted file mode 100644 index 68a94293..00000000 --- a/Start-ctrl-alt-del.target-irreversibly.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f49fd1d57a429d4a05ac86352c017a845f8185b3 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Tue, 7 May 2013 14:16:53 +0200 -Subject: [PATCH] Start ctrl-alt-del.target irreversibly - -This makes ctrl-alt-del reboots more robust, just like "systemctl -reboot". ---- - src/core/manager.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index c7f8f20..0508628 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -1372,7 +1372,7 @@ static int manager_process_signal_fd(Manager *m) { - - case SIGINT: - if (m->running_as == SYSTEMD_SYSTEM) { -- manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE); -+ manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE_IRREVERSIBLY); - break; - } - --- -1.8.1.4 - diff --git a/allow-multiple-sulogin-to-be-started.patch b/allow-multiple-sulogin-to-be-started.patch index 297b5792..507d8fc2 100644 --- a/allow-multiple-sulogin-to-be-started.patch +++ b/allow-multiple-sulogin-to-be-started.patch @@ -9,10 +9,8 @@ allows multiple sulogin instance (bnc#793182). units/serial-getty@.service.m4 | 1 + 3 files changed, 3 insertions(+) -diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 -index 083eb97..243fea5 100644 ---- a/units/getty@.service.m4 -+++ b/units/getty@.service.m4 +--- systemd-206.orig/units/getty@.service.m4 ++++ systemd-206/units/getty@.service.m4 @@ -9,6 +9,7 @@ Description=Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) @@ -21,10 +19,8 @@ index 083eb97..243fea5 100644 After=systemd-user-sessions.service plymouth-quit-wait.service m4_ifdef(`HAVE_SYSV_COMPAT', After=rc-local.service -diff --git a/units/rescue.target b/units/rescue.target -index 3f59b14..20f6841 100644 ---- a/units/rescue.target -+++ b/units/rescue.target +--- systemd-206.orig/units/rescue.target ++++ systemd-206/units/rescue.target @@ -10,6 +10,7 @@ Description=Rescue Mode Documentation=man:systemd.special(7) Requires=sysinit.target rescue.service @@ -33,10 +29,8 @@ index 3f59b14..20f6841 100644 AllowIsolate=yes [Install] -diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 -index 60d7737..2b18dbf 100644 ---- a/units/serial-getty@.service.m4 -+++ b/units/serial-getty@.service.m4 +--- systemd-206.orig/units/serial-getty@.service.m4 ++++ systemd-206/units/serial-getty@.service.m4 @@ -10,6 +10,7 @@ Description=Serial Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) Documentation=http://0pointer.de/blog/projects/serial-console.html diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index e89708a3..44d90f35 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -7,10 +7,8 @@ set ACL on nvidia devices (bnc#808319). src/login/logind-acl.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c -index cb045a9..51093f2 100644 ---- a/src/login/logind-acl.c -+++ b/src/login/logind-acl.c +--- systemd-206.orig/src/login/logind-acl.c ++++ systemd-206/src/login/logind-acl.c @@ -24,6 +24,7 @@ #include #include @@ -19,8 +17,8 @@ index cb045a9..51093f2 100644 #include "logind-acl.h" #include "util.h" -@@ -240,6 +241,22 @@ int devnode_acl_all(struct udev *udev, - goto finish; +@@ -287,6 +288,22 @@ int devnode_acl_all(struct udev *udev, + r = devnode_acl(n, flush, del, old_uid, add, new_uid); } + /* only search for nvidia* if /dev/nvidiactl exists */ @@ -40,5 +38,5 @@ index cb045a9..51093f2 100644 + } + finish: - if (e) - udev_enumerate_unref(e); + udev_enumerate_unref(e); + set_free_free(nodes); diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch index b33c5589..fdc7b9d0 100644 --- a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +++ b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -7,11 +7,9 @@ Subject: avoid assertion if invalid address familily is passed to src/nss-myhostname/nss-myhostname.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c -index 60e256d..e97d4e5 100644 ---- a/src/nss-myhostname/nss-myhostname.c -+++ b/src/nss-myhostname/nss-myhostname.c -@@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( +--- systemd-206.orig/src/nss-myhostname/nss-myhostname.c ++++ systemd-206/src/nss-myhostname/nss-myhostname.c +@@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostb uint32_t local_address_ipv4 = LOCALADDRESS_IPV4; const char *canonical = NULL, *additional = NULL; diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index 4cf66998..026de00c 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -7,10 +7,8 @@ Subject: delay fsck / cryptsetup after md / dmraid / lvm are started units/systemd-fsck@.service.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index 9b8e229..0949287 100644 ---- a/src/cryptsetup/cryptsetup-generator.c -+++ b/src/cryptsetup/cryptsetup-generator.c +--- systemd-206.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-206/src/cryptsetup/cryptsetup-generator.c @@ -160,6 +160,7 @@ static int create_disk( "Conflicts=umount.target\n" "DefaultDependencies=no\n" @@ -19,10 +17,8 @@ index 9b8e229..0949287 100644 "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", f); -diff --git a/units/systemd-fsck@.service.in b/units/systemd-fsck@.service.in -index b3c71eb..c66a411 100644 ---- a/units/systemd-fsck@.service.in -+++ b/units/systemd-fsck@.service.in +--- systemd-206.orig/units/systemd-fsck@.service.in ++++ systemd-206/units/systemd-fsck@.service.in @@ -10,7 +10,7 @@ Description=File System Check on %f Documentation=man:systemd-fsck@.service(8) DefaultDependencies=no diff --git a/disable-nss-myhostname-warning-bnc-783841.patch b/disable-nss-myhostname-warning-bnc-783841.patch index c0365d7c..c20aad94 100644 --- a/disable-nss-myhostname-warning-bnc-783841.patch +++ b/disable-nss-myhostname-warning-bnc-783841.patch @@ -6,10 +6,8 @@ Subject: disable nss-myhostname warning (bnc#783841) src/hostname/hostnamed.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c -index 0437e33..c7f454c 100644 ---- a/src/hostname/hostnamed.c -+++ b/src/hostname/hostnamed.c +--- systemd-206.orig/src/hostname/hostnamed.c ++++ systemd-206/src/hostname/hostnamed.c @@ -134,6 +134,7 @@ static int read_data(void) { static bool check_nss(void) { diff --git a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch index c4e313aa..e095da13 100644 --- a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +++ b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch @@ -8,10 +8,8 @@ if fsck was disabled for them (bnc#733283). units/local-fs-pre.target | 1 + 1 file changed, 1 insertion(+) -diff --git a/units/local-fs-pre.target b/units/local-fs-pre.target -index 809f2ed..05fcbd4 100644 ---- a/units/local-fs-pre.target -+++ b/units/local-fs-pre.target +--- systemd-206.orig/units/local-fs-pre.target ++++ systemd-206/units/local-fs-pre.target @@ -9,3 +9,4 @@ Description=Local File Systems (Pre) Documentation=man:systemd.special(7) diff --git a/ensure-ask-password-wall-starts-after-getty-tty1.patch b/ensure-ask-password-wall-starts-after-getty-tty1.patch index a0c005f8..6d6a3346 100644 --- a/ensure-ask-password-wall-starts-after-getty-tty1.patch +++ b/ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -7,10 +7,8 @@ ensure passphrase is handled before starting getty on tty1. units/systemd-ask-password-wall.service.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/units/systemd-ask-password-wall.service.in b/units/systemd-ask-password-wall.service.in -index 0eaa274..ca51e4e 100644 ---- a/units/systemd-ask-password-wall.service.in -+++ b/units/systemd-ask-password-wall.service.in +--- systemd-206.orig/units/systemd-ask-password-wall.service.in ++++ systemd-206/units/systemd-ask-password-wall.service.in @@ -8,7 +8,7 @@ [Unit] Description=Forward Password Requests to Wall diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch index 007e6010..3f6b0eb4 100644 --- a/ensure-shortname-is-set-as-hostname-bnc-820213.patch +++ b/ensure-shortname-is-set-as-hostname-bnc-820213.patch @@ -7,10 +7,8 @@ strip hostname so the domain part isn't set as part of the hostname src/core/hostname-setup.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) -diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c -index 0ce683b..1c8e555 100644 ---- a/src/core/hostname-setup.c -+++ b/src/core/hostname-setup.c +--- systemd-206.orig/src/core/hostname-setup.c ++++ systemd-206/src/core/hostname-setup.c @@ -32,7 +32,7 @@ #include "fileio.h" @@ -20,7 +18,7 @@ index 0ce683b..1c8e555 100644 int r; assert(path); -@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const char *path, char **hn) { +@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const return -ENOENT; } diff --git a/ensure-sysctl-are-applied-after-modules-are-loaded.patch b/ensure-sysctl-are-applied-after-modules-are-loaded.patch index 186e09e0..4912449c 100644 --- a/ensure-sysctl-are-applied-after-modules-are-loaded.patch +++ b/ensure-sysctl-are-applied-after-modules-are-loaded.patch @@ -7,11 +7,9 @@ Subject: ensure sysctl are applied after modules are loaded units/systemd-sysctl.service.in | 1 + 1 file changed, 1 insertion(+) -diff --git a/units/systemd-sysctl.service.in b/units/systemd-sysctl.service.in -index 45e1ceb..caaaa9a 100644 ---- a/units/systemd-sysctl.service.in -+++ b/units/systemd-sysctl.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service(8) man:sysctl.d(5) +--- systemd-206.orig/units/systemd-sysctl.service.in ++++ systemd-206/units/systemd-sysctl.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service DefaultDependencies=no Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch index a28f4937..9f5bfea1 100644 --- a/fix-owner-of-var-log-btmp.patch +++ b/fix-owner-of-var-log-btmp.patch @@ -7,10 +7,8 @@ ensure btmp is owned only by root (bnc#777405). tmpfiles.d/systemd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf -index ee86f2e..29d6e97 100644 ---- a/tmpfiles.d/systemd.conf -+++ b/tmpfiles.d/systemd.conf +--- systemd-206.orig/tmpfiles.d/systemd.conf ++++ systemd-206/tmpfiles.d/systemd.conf @@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d F /run/utmp 0664 root utmp - diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index 77a2e6b7..dddcefe5 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -6,11 +6,9 @@ Subject: fix support for boot prefixed initscript (bnc#746506) src/systemctl/systemctl.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) -Index: systemd-204/src/systemctl/systemctl.c -=================================================================== ---- systemd-204.orig/src/systemctl/systemctl.c -+++ systemd-204/src/systemctl/systemctl.c -@@ -4082,8 +4082,28 @@ static int enable_sysv_units(char **args +--- systemd-206.orig/src/systemctl/systemctl.c ++++ systemd-206/src/systemctl/systemctl.c +@@ -4238,8 +4238,28 @@ static int enable_sysv_units(char **args p[strlen(p) - sizeof(".service") + 1] = 0; found_sysv = access(p, F_OK) >= 0; diff --git a/force-lvm-restart-after-cryptsetup-target-is-reached.patch b/force-lvm-restart-after-cryptsetup-target-is-reached.patch index 8b4f879c..d40fda5a 100644 --- a/force-lvm-restart-after-cryptsetup-target-is-reached.patch +++ b/force-lvm-restart-after-cryptsetup-target-is-reached.patch @@ -6,10 +6,8 @@ Subject: force lvm restart after cryptsetup target is reached src/cryptsetup/cryptsetup-generator.c | 57 ++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) -diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index 81b7708..1940985 100644 ---- a/src/cryptsetup/cryptsetup-generator.c -+++ b/src/cryptsetup/cryptsetup-generator.c +--- systemd-206.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-206/src/cryptsetup/cryptsetup-generator.c @@ -22,6 +22,7 @@ #include #include @@ -18,7 +16,7 @@ index 81b7708..1940985 100644 #include "log.h" #include "util.h" -@@ -64,6 +65,54 @@ static bool has_option(const char *haystack, const char *needle) { +@@ -64,6 +65,54 @@ static bool has_option(const char *hayst return false; } diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index d66c24fc..79b99a67 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -7,11 +7,9 @@ Subject: handle SYSTEMCTL_OPTIONS environment variable src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) -Index: systemd-204/src/systemctl/systemctl.c -=================================================================== ---- systemd-204.orig/src/systemctl/systemctl.c -+++ systemd-204/src/systemctl/systemctl.c -@@ -5974,6 +5974,28 @@ int main(int argc, char*argv[]) { +--- systemd-206.orig/src/systemctl/systemctl.c ++++ systemd-206/src/systemctl/systemctl.c +@@ -6197,6 +6197,28 @@ int main(int argc, char*argv[]) { log_parse_environment(); log_open(); diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index 050f9216..d2116163 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -7,10 +7,8 @@ Subject: handle disable_caplock and compose_table and kbd_rate src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 3 deletions(-) -diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c -index 1bbf737..384f936 100644 ---- a/src/vconsole/vconsole-setup.c -+++ b/src/vconsole/vconsole-setup.c +--- systemd-206.orig/src/vconsole/vconsole-setup.c ++++ systemd-206/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" @@ -30,7 +28,7 @@ index 1bbf737..384f936 100644 int i = 0; pid_t pid; -@@ -119,6 +120,8 @@ static int keymap_load(const char *vc, const char *map, const char *map_toggle, +@@ -119,6 +120,8 @@ static int keymap_load(const char *vc, c args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,7 +37,7 @@ index 1bbf737..384f936 100644 args[i++] = NULL; pid = fork(); -@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) { +@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) } } diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch index 075d67d8..cdcb932e 100644 --- a/handle-etc-HOSTNAME.patch +++ b/handle-etc-HOSTNAME.patch @@ -8,10 +8,8 @@ Subject: handle /etc/HOSTNAME src/hostname/hostnamed.c | 12 +++++++++++- 2 files changed, 28 insertions(+), 6 deletions(-) -diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c -index 8aa1cff..0ce683b 100644 ---- a/src/core/hostname-setup.c -+++ b/src/core/hostname-setup.c +--- systemd-206.orig/src/core/hostname-setup.c ++++ systemd-206/src/core/hostname-setup.c @@ -61,12 +61,24 @@ int hostname_setup(void) { r = read_and_strip_hostname("/etc/hostname", &b); @@ -19,6 +17,7 @@ index 8aa1cff..0ce683b 100644 - if (r == -ENOENT) - enoent = true; - else +- log_warning("Failed to read configured hostname: %s", strerror(-r)); + if (r == -ENOENT) { + /* use SUSE fallback */ + r = read_and_strip_hostname("/etc/HOSTNAME", &b); @@ -31,21 +30,18 @@ index 8aa1cff..0ce683b 100644 + } + else + hn = b; -+ + +- hn = NULL; + } + else { - log_warning("Failed to read configured hostname: %s", strerror(-r)); -- -- hn = NULL; ++ log_warning("Failed to read configured hostname: %s", strerror(-r)); + hn = NULL; + } } else hn = b; -diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c -index c7f454c..cfbd706 100644 ---- a/src/hostname/hostnamed.c -+++ b/src/hostname/hostnamed.c +--- systemd-206.orig/src/hostname/hostnamed.c ++++ systemd-206/src/hostname/hostnamed.c @@ -129,6 +129,10 @@ static int read_data(void) { if (r < 0 && r != -ENOENT) return r; @@ -65,7 +61,7 @@ index c7f454c..cfbd706 100644 if (isempty(data[PROP_STATIC_HOSTNAME])) { if (unlink("/etc/hostname") < 0) -@@ -290,7 +295,12 @@ static int write_data_static_hostname(void) { +@@ -290,7 +295,12 @@ static int write_data_static_hostname(vo return 0; } diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 67fe0155..284686b2 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,10 +6,8 @@ Authors: Stanislav Brabec Cristian Rodríguez -Index: systemd-204/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-204.orig/src/vconsole/vconsole-setup.c -+++ systemd-204/src/vconsole/vconsole-setup.c +--- systemd-206.orig/src/vconsole/vconsole-setup.c ++++ systemd-206/src/vconsole/vconsole-setup.c @@ -42,6 +42,10 @@ #include "fileio.h" #include "strv.h" @@ -100,11 +98,9 @@ Index: systemd-204/src/vconsole/vconsole-setup.c #ifdef HAVE_SYSV_COMPAT free(vc_kbd_delay); free(vc_kbd_rate); -Index: systemd-204/Makefile.am -=================================================================== ---- systemd-204.orig/Makefile.am -+++ systemd-204/Makefile.am -@@ -2219,6 +2219,19 @@ dist_udevrules_DATA += \ +--- systemd-206.orig/Makefile.am ++++ systemd-206/Makefile.am +@@ -2452,6 +2452,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -124,10 +120,8 @@ Index: systemd-204/Makefile.am if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -Index: systemd-204/rules/73-seat-numlock.rules -=================================================================== --- /dev/null -+++ systemd-204/rules/73-seat-numlock.rules ++++ systemd-206/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -137,10 +131,8 @@ Index: systemd-204/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-204/src/login/numlock-on.c -=================================================================== --- /dev/null -+++ systemd-204/src/login/numlock-on.c ++++ systemd-206/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -176,10 +168,8 @@ Index: systemd-204/src/login/numlock-on.c + + exit(0); +} -Index: systemd-204/units/systemd-vconsole-setup.service.in -=================================================================== ---- systemd-204.orig/units/systemd-vconsole-setup.service.in -+++ systemd-204/units/systemd-vconsole-setup.service.in +--- systemd-206.orig/units/systemd-vconsole-setup.service.in ++++ systemd-206/units/systemd-vconsole-setup.service.in @@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index e2ac6c77..df273d04 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -7,11 +7,9 @@ handle ROOT_USES_LANG=ctype (bnc#792182). src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) -diff --git a/src/core/locale-setup.c b/src/core/locale-setup.c -index d7113b9..b3fb603 100644 ---- a/src/core/locale-setup.c -+++ b/src/core/locale-setup.c -@@ -70,6 +70,11 @@ static const char * const variable_names[_VARIABLE_MAX] = { +--- systemd-206.orig/src/core/locale-setup.c ++++ systemd-206/src/core/locale-setup.c +@@ -70,6 +70,11 @@ static const char * const variable_names int locale_setup(void) { char *variables[_VARIABLE_MAX] = {}; int r = 0, i; @@ -23,32 +21,31 @@ index d7113b9..b3fb603 100644 if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -117,6 +122,28 @@ int locale_setup(void) { +@@ -116,6 +121,27 @@ int locale_setup(void) { + if (r < 0 && r != -ENOENT) log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); } - +#ifdef HAVE_SYSV_COMPAT -+ if (r <= 0 && ++ if (r <= 0 && + (r = parse_env_file("/etc/sysconfig/language", NEWLINE, + "ROOT_USES_LANG", &root_uses_lang, + "RC_LANG", &variables[VARIABLE_LANG], -+ NULL)) < 0) { ++ NULL)) < 0) { ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); + -+ if (r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); + } else { -+ if (!root_uses_lang || (root_uses_lang && !strcaseeq(root_uses_lang,"yes"))) { -+ if (root_uses_lang && strcaseeq(root_uses_lang,"ctype")) -+ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; -+ else -+ free(variables[VARIABLE_LANG]); ++ if (!root_uses_lang || (root_uses_lang && !strcaseeq(root_uses_lang,"yes"))) { ++ if (root_uses_lang && strcaseeq(root_uses_lang,"ctype")) ++ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; ++ else ++ free(variables[VARIABLE_LANG]); + -+ variables[VARIABLE_LANG]=strdup("POSIX"); -+ } ++ variables[VARIABLE_LANG]=strdup("POSIX"); + } ++ } + +#endif -+ - if (!variables[VARIABLE_LANG]) { - variables[VARIABLE_LANG] = strdup("C"); - if (!variables[VARIABLE_LANG]) { + + for (i = 0; i < _VARIABLE_MAX; i++) { + if (variables[i]) { diff --git a/insserv-generator.patch b/insserv-generator.patch index 582098ea..d53876b7 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -13,11 +13,9 @@ systemd unit drop-in files to add dependencies create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c -diff --git a/Makefile.am b/Makefile.am -index 016d7da..9f8319d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -315,6 +315,7 @@ rootlibexec_PROGRAMS = \ +--- systemd-206.orig/Makefile.am ++++ systemd-206/Makefile.am +@@ -321,6 +321,7 @@ rootlibexec_PROGRAMS = \ systemd-sleep systemgenerator_PROGRAMS = \ @@ -25,7 +23,7 @@ index 016d7da..9f8319d 100644 systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1549,6 +1550,14 @@ systemd_delta_LDADD = \ +@@ -1642,6 +1643,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ @@ -40,11 +38,8 @@ index 016d7da..9f8319d 100644 systemd_getty_generator_SOURCES = \ src/getty-generator/getty-generator.c -diff --git a/src/insserv-generator/Makefile b/src/insserv-generator/Makefile -new file mode 100644 -index 0000000..9d07505 --- /dev/null -+++ b/src/insserv-generator/Makefile ++++ systemd-206/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -74,11 +69,8 @@ index 0000000..9d07505 + $(MAKE) -C .. clean + +.PHONY: all clean -diff --git a/src/insserv-generator/insserv-generator.c b/src/insserv-generator/insserv-generator.c -new file mode 100644 -index 0000000..067ee2f --- /dev/null -+++ b/src/insserv-generator/insserv-generator.c ++++ systemd-206/src/insserv-generator/insserv-generator.c @@ -0,0 +1,309 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -389,6 +381,3 @@ index 0000000..067ee2f + + return (r < 0) ? EXIT_FAILURE : EXIT_SUCCESS; +} --- -1.8.1.4 - diff --git a/macros.systemd.upstream b/macros.systemd.upstream index dc19f937..323d1d48 100644 --- a/macros.systemd.upstream +++ b/macros.systemd.upstream @@ -20,6 +20,7 @@ # RPM macros for packages installing systemd unit files %_unitdir @systemunitdir@ +%_userunitdir @userunitdir@ %_presetdir @systempresetdir@ %_udevhwdbdir @udevhwdbdir@ %_udevrulesdir @udevrulesdir@ @@ -71,3 +72,7 @@ fi \ %journal_catalog_update() \ @rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \ %{nil} + +%tmpfiles_create() \ +@rootbindir@/systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ +%{nil} diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch index 238d23be..dfa7cd97 100644 --- a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +++ b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch @@ -7,11 +7,9 @@ Subject: module-load: handle SUSE /etc/sysconfig/kernel module list units/systemd-modules-load.service.in | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) -diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c -index 7b19ee0..36b1a68 100644 ---- a/src/modules-load/modules-load.c -+++ b/src/modules-load/modules-load.c -@@ -262,6 +262,9 @@ static int parse_argv(int argc, char *argv[]) { +--- systemd-206.orig/src/modules-load/modules-load.c ++++ systemd-206/src/modules-load/modules-load.c +@@ -262,6 +262,9 @@ static int parse_argv(int argc, char *ar int main(int argc, char *argv[]) { int r, k; struct kmod_ctx *ctx; @@ -52,10 +50,8 @@ index 7b19ee0..36b1a68 100644 finish: kmod_unref(ctx); strv_free(arg_proc_cmdline_modules); -diff --git a/units/systemd-modules-load.service.in b/units/systemd-modules-load.service.in -index 32deb52..2e26d2f 100644 ---- a/units/systemd-modules-load.service.in -+++ b/units/systemd-modules-load.service.in +--- systemd-206.orig/units/systemd-modules-load.service.in ++++ systemd-206/units/systemd-modules-load.service.in @@ -13,6 +13,7 @@ Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service Before=sysinit.target shutdown.target diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch index 93f8c8bf..41661df8 100644 --- a/optionally-warn-if-nss-myhostname-is-called.patch +++ b/optionally-warn-if-nss-myhostname-is-called.patch @@ -7,11 +7,9 @@ Subject: optionally warn if nss-myhostname is called src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) -diff --git a/configure.ac b/configure.ac -index e1278e8..06eb98d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -725,6 +725,17 @@ if test "x$enable_myhostname" != "xno"; then +--- systemd-206.orig/configure.ac ++++ systemd-206/configure.ac +@@ -803,6 +803,17 @@ if test "x$enable_myhostname" != "xno"; fi AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) @@ -29,10 +27,8 @@ index e1278e8..06eb98d 100644 # ------------------------------------------------------------------------------ AC_ARG_WITH(firmware-path, AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], -diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c -index e97d4e5..a2a6de8 100644 ---- a/src/nss-myhostname/nss-myhostname.c -+++ b/src/nss-myhostname/nss-myhostname.c +--- systemd-206.orig/src/nss-myhostname/nss-myhostname.c ++++ systemd-206/src/nss-myhostname/nss-myhostname.c @@ -29,6 +29,9 @@ #include #include @@ -54,7 +50,7 @@ index e97d4e5..a2a6de8 100644 enum nss_status _nss_myhostname_gethostbyname4_r( const char *name, struct gaih_addrtuple **pat, -@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostbyname4_r( +@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostb return NSS_STATUS_NOTFOUND; } @@ -64,7 +60,7 @@ index e97d4e5..a2a6de8 100644 /* If this fails, n_addresses is 0. Which is fine */ ifconf_acquire_addresses(&addresses, &n_addresses); -@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostbyname3_r( +@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostb local_address_ipv4 = LOCALADDRESS_IPV4; } @@ -84,7 +80,7 @@ index e97d4e5..a2a6de8 100644 return fill_in_hostent( canonical, additional, af, -@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r( +@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostb errnop, h_errnop, NULL); } diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch index 2e13936d..3ff05deb 100644 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -11,10 +11,8 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. src/core/service.h | 1 + 2 files changed, 33 insertions(+), 2 deletions(-) -diff --git a/src/core/service.c b/src/core/service.c -index a8b0d9d..c357b33 100644 ---- a/src/core/service.c -+++ b/src/core/service.c +--- systemd-206.orig/src/core/service.c ++++ systemd-206/src/core/service.c @@ -135,6 +135,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; @@ -23,7 +21,7 @@ index a8b0d9d..c357b33 100644 #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -875,6 +876,34 @@ static int service_load_sysv_path(Service *s, const char *path) { +@@ -877,6 +878,34 @@ static int service_load_sysv_path(Servic free(short_description); short_description = d; @@ -58,7 +56,7 @@ index a8b0d9d..c357b33 100644 } else if (state == LSB_DESCRIPTION) { if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -925,7 +954,8 @@ static int service_load_sysv_path(Service *s, const char *path) { +@@ -927,7 +956,8 @@ static int service_load_sysv_path(Servic /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -68,7 +66,7 @@ index a8b0d9d..c357b33 100644 s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2077,7 +2107,7 @@ static void service_enter_running(Service *s, ServiceResult f) { +@@ -2094,7 +2124,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -77,11 +75,9 @@ index a8b0d9d..c357b33 100644 s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); -diff --git a/src/core/service.h b/src/core/service.h -index 703d3fa..dc52e8c 100644 ---- a/src/core/service.h -+++ b/src/core/service.h -@@ -176,6 +176,7 @@ struct Service { +--- systemd-206.orig/src/core/service.h ++++ systemd-206/src/core/service.h +@@ -177,6 +177,7 @@ struct Service { bool is_sysv:1; bool sysv_has_lsb:1; bool sysv_enabled:1; diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index e5c85f0c..c9f3fc9d 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -10,11 +10,9 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink create mode 100644 units/var-lock.mount create mode 100644 units/var-run.mount -diff --git a/Makefile.am b/Makefile.am -index 8730f66..b8cf696 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -409,6 +409,12 @@ dist_systemunit_DATA = \ +--- systemd-206.orig/Makefile.am ++++ systemd-206/Makefile.am +@@ -407,6 +407,12 @@ dist_systemunit_DATA = \ units/system-update.target \ units/initrd-switch-root.target @@ -27,7 +25,7 @@ index 8730f66..b8cf696 100644 nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -4058,6 +4064,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -4277,6 +4283,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service @@ -35,13 +33,10 @@ index 8730f66..b8cf696 100644 + var-run.mount \ + var-lock.mount endif - SHUTDOWN_TARGET_WANTS += \ - systemd-update-utmp-shutdown.service -diff --git a/units/var-lock.mount b/units/var-lock.mount -new file mode 100644 -index 0000000..07277ad + SYSINIT_TARGET_WANTS += \ + systemd-update-utmp.service --- /dev/null -+++ b/units/var-lock.mount ++++ systemd-206/units/var-lock.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# @@ -62,11 +57,8 @@ index 0000000..07277ad +Where=/var/lock +Type=bind +Options=bind -diff --git a/units/var-run.mount b/units/var-run.mount -new file mode 100644 -index 0000000..ab4da42 --- /dev/null -+++ b/units/var-run.mount ++++ systemd-206/units/var-run.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch index fb00b6d8..ca2c8271 100644 --- a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +++ b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch @@ -12,11 +12,9 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 src/core/service.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) -Index: systemd-204/src/core/service.c -=================================================================== ---- systemd-204.orig/src/core/service.c -+++ systemd-204/src/core/service.c -@@ -2075,8 +2075,13 @@ static void service_enter_running(Servic +--- systemd-206.orig/src/core/service.c ++++ systemd-206/src/core/service.c +@@ -2092,8 +2092,13 @@ static void service_enter_running(Servic cgroup_ok = cgroup_good(s); if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 3ca7dc2a..45f1ad52 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -10,10 +10,8 @@ configuration), needed by openSUSE (bnc#809420). units/systemd-sysctl.service.in | 1 + 2 files changed, 9 insertions(+) -Index: systemd-204/src/sysctl/sysctl.c -=================================================================== ---- systemd-204.orig/src/sysctl/sysctl.c -+++ systemd-204/src/sysctl/sysctl.c +--- systemd-206.orig/src/sysctl/sysctl.c ++++ systemd-206/src/sysctl/sysctl.c @@ -26,6 +26,7 @@ #include #include @@ -36,10 +34,8 @@ Index: systemd-204/src/sysctl/sysctl.c r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); if (r < 0) { -Index: systemd-204/units/systemd-sysctl.service.in -=================================================================== ---- systemd-204.orig/units/systemd-sysctl.service.in -+++ systemd-204/units/systemd-sysctl.service.in +--- systemd-206.orig/units/systemd-sysctl.service.in ++++ systemd-206/units/systemd-sysctl.service.in @@ -20,6 +20,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d ConditionDirectoryNotEmpty=|/etc/sysctl.d diff --git a/systemctl-does-not-expand-u-so-revert-back-to-I.patch b/systemctl-does-not-expand-u-so-revert-back-to-I.patch deleted file mode 100644 index 6502fa49..00000000 --- a/systemctl-does-not-expand-u-so-revert-back-to-I.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 9541fe6adff9941e487084c718ff2d46ed2929c6 Mon Sep 17 00:00:00 2001 -From: Auke Kok -Date: Thu, 9 May 2013 09:39:15 -0700 -Subject: [PATCH] systemctl does not expand %u, so revert back to %I - -The description field is only displayed by systemctl, and -it can't expand %u properly (it will always display "root"). ---- - units/user@.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/user@.service.in b/units/user@.service.in -index 3cf1347..ece671d 100644 ---- a/units/user@.service.in -+++ b/units/user@.service.in -@@ -6,7 +6,7 @@ - # (at your option) any later version. - - [Unit] --Description=User Manager for %u -+Description=User Manager for %I - After=systemd-user-sessions.service - - [Service] --- -1.8.1.4 - diff --git a/systemd-204.tar.xz b/systemd-204.tar.xz deleted file mode 100644 index ae11dd5d..00000000 --- a/systemd-204.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:072c393503c7c1e55ca7acf3db659cbd28c7fe5fa94fab3db95360bafd96731b -size 2186264 diff --git a/systemd-206.tar.xz b/systemd-206.tar.xz new file mode 100644 index 00000000..5702098a --- /dev/null +++ b/systemd-206.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c993de071118ea1df7ffc4be26ef0b0d78354ef15b2743a2783d20edfcde9de +size 2340536 diff --git a/systemd-insserv_conf b/systemd-insserv_conf deleted file mode 100644 index 5bdebd1b..00000000 --- a/systemd-insserv_conf +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -[ -r /etc/insserv.conf ] || exit 0 - -declare -A facilities -facilities["local_fs"]="local-fs.target" -facilities["localfs"]="local-fs.target" -facilities["named"]="nss-lookup.target" -facilities["network"]="network.target" -# done in systemd code -#facilities["portmap"]="rpcbind.target" -facilities["remote_fs"]="remote-fs.target" -facilities["syslog"]="syslog.target" -facilities["time"]="time-sync.target" - -while read line ; do - case "$line" in - \#*|"" ) continue;; - \<* ) continue;; - \$*) t=${line%% *} - target=${facilities[${t:1}]} - [ -z $target ] && continue - mkdir -p $1/$target.{requires,wants} - for dep in ${line##* } ; do - stripped_dep=${dep/boot./} - case "$stripped_dep" in - +*) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:2}]:-${stripped_dep:1}.service} $1/$target.wants/ ;; - *) ln -s -f /lib/systemd/system/${facilities[${stripped_dep:1}]:-${stripped_dep}.service} $1/$target.requires/ ;; - esac - done - ;; - esac -done < /etc/insserv.conf - diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index 219445d9..87518f9d 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -16,3 +16,5 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") +addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") + diff --git a/systemd-mini.changes b/systemd-mini.changes index 1900e582..35185b2f 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,162 @@ +------------------------------------------------------------------- +Thu Aug 1 15:52:20 UTC 2013 - fcrozat@suse.com + +- Ensure /usr/lib/systemd/system/shutdown.target.wants is created + and owned by systemd package. + +------------------------------------------------------------------- +Mon Jul 29 14:01:48 UTC 2013 - fcrozat@suse.com + +- Fix drop-in for getty@tty1.service + +------------------------------------------------------------------- +Thu Jul 25 12:35:29 UTC 2013 - fcrozat@suse.com + +- Move systemd-journal-gateway to subpackage to lower dependencies + in default install. + +------------------------------------------------------------------- +Tue Jul 23 01:32:38 UTC 2013 - crrodriguez@opensuse.org + +- version 206 , highlights: +* Unit files now understand the new %v specifier which + resolves to the kernel version string as returned by "uname-r". +* "journalctl -b" may now be used to look for boot output of a + specific boot. Try "journalctl -b -1" +* Creation of "dead" device nodes has been moved from udev + into kmod and tmpfiles. +* The udev "keymap" data files and tools to apply keyboard + specific mappings of scan to key codes, and force-release + scan code lists have been entirely replaced by a udev + "keyboard" builtin and a hwdb data file. + +- remove patches now in upstream +- systemd now requires libkmod >=14 and cryptsetup >= 1.6.0 +- systemd now require the kmod tool in addition to the library. + +------------------------------------------------------------------- +Sun Jul 14 05:25:51 UTC 2013 - arvidjaar@gmail.com + +- use-usr-sbin-sulogin-for-emergency-service.patch + emergency.service failed to start because sulogin is in /usr/sbin now + +------------------------------------------------------------------- +Fri Jul 12 17:09:23 CEST 2013 - mls@suse.de + +- fix build with rpm-4.11.1: /etc/xdg/system/user is a symlink, + not a directory + +------------------------------------------------------------------- +Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org + +- 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch + fix segfault at shutdown +- 0004-disable-the-cgroups-release-agent-when-shutting-down.patch + disable the cgroups release agent when shutting down. +- 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch + remove ancient fallback code; turn connection error into warning +- 006-suppress-status-message-output-at-shutdown-when-quie.patch + make shutdown honour "quiet" kernel cmdline. + +------------------------------------------------------------------- +Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org + +- fix broken symlink, service is called systemd-random-seed now. + +------------------------------------------------------------------- +Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com + +- Update to release 205: + + two new unit types have been introduced: + - Scope units are very similar to service units, however, are + created out of pre-existing processes -- instead of PID 1 + forking off the processes. + - Slice units may be used to partition system resources in an + hierarchial fashion and then assign other units to them. By + default there are now three slices: system.slice (for all + system services), user.slice (for all user sessions), + machine.slice (for VMs and containers). + + new concept of "transient" units, which are created at runtime + using an API and not based on configuration from disk. + + logind has been updated to make use of scope and slice units to + manage user sessions. Logind will no longer create cgroups + hierchies itself but will relying on PID 1. + + A new mini-daemon "systemd-machined" has been added which + may be used by virtualization managers to register local + VMs/containers. machinectl tool has been added to query + meta-data from systemd-machined. + + Low-level cgroup configuration options ControlGroup=, + ControlGroupModify=, ControlGroupPersistent=, + ControlGroupAttribute= have been removed. High-level attribute + settings or slice units should be used instead? + + A new bus call SetUnitProperties() has been added to alter + various runtime parameters of a unit, including cgroup + parameters. systemctl gained set-properties command to wrap + this call. + + A new tool "systemd-run" has been added which can be used to + run arbitrary command lines as transient services or scopes, + while configuring a number of settings via the command + line. + + nspawn will now inform the user explicitly that kernels with + audit enabled break containers, and suggest the user to turn + off audit. + + Support for detecting the IMA and AppArmor security + frameworks with ConditionSecurity= has been added. + + journalctl gained a new "-k" switch for showing only kernel + messages, mimicking dmesg output; in addition to "--user" + and "--system" switches for showing only user's own logs + and system logs. + + systemd-delta can now show information about drop-in + snippets extending unit files. + + systemd will now look for the "debug" argument on the kernel + command line and enable debug logging, similar to + "systemd.log_level=debug" already did before. + + "systemctl set-default", "systemctl get-default" has been + added to configure the default.target symlink, which + controls what to boot into by default. + + "systemctl set-log-level" has been added as a convenient + way to raise and lower systemd logging threshold. + + "systemd-analyze plot" will now show the time the various + generators needed for execution, as well as information + about the unit file loading. + + libsystemd-journal gained a new sd_journal_open_files() call + for opening specific journal files. journactl also gained a + new switch to expose this new functionality (useful for + debugging). + + systemd gained the new DefaultEnvironment= setting in + /etc/systemd/system.conf to set environment variables for + all services. + + If a privileged process logs a journal message with the + OBJECT_PID= field set, then journald will automatically + augment this with additional OBJECT_UID=, OBJECT_GID=, + OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if + system services want to log events about specific client + processes. journactl/systemctl has been updated to make use + of this information if all log messages regarding a specific + unit is requested. +- Remove 0001-journal-letting-interleaved-seqnums-go.patch, + 0002-journal-remember-last-direction-of-search-and-keep-o.patch, + 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch, + 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch, + 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch, + 0160-mount-when-learning-about-the-root-mount-from-mounti.patch, + 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch, + Start-ctrl-alt-del.target-irreversibly.patch, + systemctl-does-not-expand-u-so-revert-back-to-I.patch: merged + upstream. +- Regenerate patches 1007-physical-hotplug-cpu-and-memory.patch, + 1008-add-msft-compability-rules.patch, + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch, + fix-support-for-boot-prefixed-initscript-bnc-746506.patch, + handle-SYSTEMCTL_OPTIONS-environment-variable.patch, + handle-numlock-value-in-etc-sysconfig-keyboard.patch, + insserv-generator.patch, + optionally-warn-if-nss-myhostname-is-called.patch, + remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, + restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch, + service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch. +- Update macros.systemd.upstream with latest upstream revision. + ------------------------------------------------------------------- Mon Jul 1 13:43:31 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index e0be549a..8dc12a23 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -25,7 +25,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 204 +Version: 206 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -65,9 +65,9 @@ BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.4.2 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif -BuildRequires: pkgconfig(libkmod) >= 5 +BuildRequires: pkgconfig(libkmod) >= 14 BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) @@ -90,6 +90,7 @@ Conflicts: kiwi Requires: %{udevpkgname} >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd +Requires: kmod >= 14 Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -168,24 +169,9 @@ Patch24: handle-etc-HOSTNAME.patch Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -# PATCH-FIX-UPSTREAM systemctl-does-not-expand-u-so-revert-back-to-I.patch fcrozat@suse.com -- avoids expansion errors. -Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch -# PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability. -Patch43: Start-ctrl-alt-del.target-irreversibly.patch -# PATCH-FIX-UPSTREAM 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch crrodriguez@opensuse.org fix systemd-journald[347]: Failed to set ACL on ...user-1000.journal..Invalid argument -Patch44: 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch -# PATCH-FIX-UPSTREAM 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch crrodriguez@opensuse.org ensure systemctl disable removes dangling symlinks -Patch45: 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch -# PATCH-FIX-UPSTREAM 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch crrodriguez@opensuse.org do not report alien child as alive when it is dead. -Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch -# PATCH-FIX-UPSTREAM 0001-journal-letting-interleaved-seqnums-go.patch crrodriguez@opensuse.org fix journal infinite loops -Patch47: 0001-journal-letting-interleaved-seqnums-go.patch -# PATCH-FIX-UPSTREAM 0002-journal-remember-last-direction-of-search-and-keep-o.patch crrodriguez@opensuse.org fix journal infinite loops -Patch48: 0002-journal-remember-last-direction-of-search-and-keep-o.patch -# PATCH-FIX-UPSTREAM 0160-mount-when-learning-about-the-root-mount-from-mounti.patch crrodriguez@opensuse.org another case where / is attempted to umount at shutdown -Patch49: 0160-mount-when-learning-about-the-root-mount-from-mounti.patch -# PATCH-FIX-UPSTREAM 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch crrodriguez@opensuse.org only attempt to connect to a session bus if one likely exists. -Patch50: 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch +# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin +Patch46: use-usr-sbin-sulogin-for-emergency-service.patch + # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch @@ -193,8 +179,6 @@ Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch Patch1003: 1003-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1004-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1004: 1004-fix-devname-prefix.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch @@ -370,6 +354,18 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. +%package journal-gateway +Summary: Gateway for serving journal events over the network using HTTP +License: LGPL-2.1+ +Group: System/Base +Requires: %{name} = %{version}-%{release} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%description journal-gateway +systemd-journal-gatewayd serves journal events over the network using HTTP. + %endif %prep @@ -418,20 +414,12 @@ cp %{SOURCE7} m4/ %patch39 -p1 %patch40 -p1 %patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 %patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 + # udev patches %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 -%patch1004 -p1 %patch1005 -p1 %patch1006 -p1 # don't apply when bootstrapping to not modify Makefile.am @@ -503,7 +491,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd @@ -537,7 +525,7 @@ ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed-load.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service +ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -596,7 +584,7 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants # create drop-in to prevent tty1 to be cleared (bnc#804158) mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ -echo << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf +cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf [Service] # ensure tty1 isn't cleared (bnc#804158) TTYVTDisallocate=no @@ -609,10 +597,11 @@ cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/network.conf F /run/udev/rules.d/80-net-name-slot.rules 0644 - - - "#disable predictable network interface naming for now" EOF +# packaged in systemd-rpm-macros +rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : -getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : exit 0 %post @@ -761,6 +750,21 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig +%pre journal-gateway +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : +%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service +exit 0 + +%post journal-gateway +%service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service + +%preun journal-gateway +%service_del_preun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service + +%postun journal-gateway +%service_del_postun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service + %endif %files @@ -772,11 +776,13 @@ fi %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl +%{_bindir}/machinectl %{_bindir}/systemctl %{_bindir}/systemd-analyze %{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta %{_bindir}/systemd-notify +%{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl %{_bindir}/systemd-ask-password @@ -810,8 +816,10 @@ fi %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.service +%{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target %{_prefix}/lib/systemd/system/*.mount %{_prefix}/lib/systemd/system/*.timer @@ -821,6 +829,7 @@ fi %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %exclude %{_prefix}/lib/systemd/systemd-udevd +%exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog @@ -867,7 +876,7 @@ fi %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd -%dir %{_sysconfdir}/xdg/systemd/user +%{_sysconfdir}/xdg/systemd/user %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf @@ -875,6 +884,7 @@ fi %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -888,6 +898,7 @@ fi %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions @@ -896,6 +907,7 @@ fi %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%exclude %{_datadir}/systemd/gatewayd %{_datadir}/systemd %if ! 0%{?bootstrap} @@ -908,7 +920,7 @@ fi %exclude %{_mandir}/man8/telinit.8* %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* - +%exclude %{_mandir}/man8/systemd-journal-gatewayd.* %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -990,15 +1002,10 @@ fi %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id %{_prefix}/lib/udev/collect -%{_prefix}/lib/udev/findkeyboards -%{_prefix}/lib/udev/keymap %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%dir %{_prefix}/lib/udev/keymaps -%{_prefix}/lib/udev/keymaps/* -%{_prefix}/lib/udev/keyboard-force-release.sh %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules @@ -1077,6 +1084,12 @@ fi %{_sbindir}/nss-myhostname-config /%{_lib}/*nss_myhostname* +%files journal-gateway +%defattr(-, root, root) +%{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* +%{_prefix}/lib/systemd/systemd-journal-gatewayd +%{_mandir}/man8/systemd-journal-gatewayd.* +%{_datadir}/systemd/gatewayd %endif %changelog diff --git a/systemd-rpm-macros.changes b/systemd-rpm-macros.changes index 3d222ce2..165b84c9 100644 --- a/systemd-rpm-macros.changes +++ b/systemd-rpm-macros.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jul 4 13:59:43 CEST 2013 - fcrozat@suse.com + +- Resync with systemd v205 macros + ------------------------------------------------------------------- Mon Jun 17 10:49:50 UTC 2013 - mhrusecky@suse.com diff --git a/systemd-rpm-macros.spec b/systemd-rpm-macros.spec index 0268d064..4c7b714f 100644 --- a/systemd-rpm-macros.spec +++ b/systemd-rpm-macros.spec @@ -19,7 +19,7 @@ #!BuildIgnore: util-linux Name: systemd-rpm-macros -Version: 1 +Version: 2 Release: 0 Summary: RPM macros for systemd License: LGPL-2.1+ diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index 219445d9..87518f9d 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -16,3 +16,5 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") +addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") + diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 4c957df7..492ab22b 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -8,10 +8,8 @@ SUSE policy is to not clean /tmp by default. tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/tmpfiles.d/tmp.conf b/tmpfiles.d/tmp.conf -index 3b534a1..99eb6f2 100644 ---- a/tmpfiles.d/tmp.conf -+++ b/tmpfiles.d/tmp.conf +--- systemd-206.orig/tmpfiles.d/tmp.conf ++++ systemd-206/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details diff --git a/systemd.changes b/systemd.changes index 1900e582..35185b2f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,162 @@ +------------------------------------------------------------------- +Thu Aug 1 15:52:20 UTC 2013 - fcrozat@suse.com + +- Ensure /usr/lib/systemd/system/shutdown.target.wants is created + and owned by systemd package. + +------------------------------------------------------------------- +Mon Jul 29 14:01:48 UTC 2013 - fcrozat@suse.com + +- Fix drop-in for getty@tty1.service + +------------------------------------------------------------------- +Thu Jul 25 12:35:29 UTC 2013 - fcrozat@suse.com + +- Move systemd-journal-gateway to subpackage to lower dependencies + in default install. + +------------------------------------------------------------------- +Tue Jul 23 01:32:38 UTC 2013 - crrodriguez@opensuse.org + +- version 206 , highlights: +* Unit files now understand the new %v specifier which + resolves to the kernel version string as returned by "uname-r". +* "journalctl -b" may now be used to look for boot output of a + specific boot. Try "journalctl -b -1" +* Creation of "dead" device nodes has been moved from udev + into kmod and tmpfiles. +* The udev "keymap" data files and tools to apply keyboard + specific mappings of scan to key codes, and force-release + scan code lists have been entirely replaced by a udev + "keyboard" builtin and a hwdb data file. + +- remove patches now in upstream +- systemd now requires libkmod >=14 and cryptsetup >= 1.6.0 +- systemd now require the kmod tool in addition to the library. + +------------------------------------------------------------------- +Sun Jul 14 05:25:51 UTC 2013 - arvidjaar@gmail.com + +- use-usr-sbin-sulogin-for-emergency-service.patch + emergency.service failed to start because sulogin is in /usr/sbin now + +------------------------------------------------------------------- +Fri Jul 12 17:09:23 CEST 2013 - mls@suse.de + +- fix build with rpm-4.11.1: /etc/xdg/system/user is a symlink, + not a directory + +------------------------------------------------------------------- +Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org + +- 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch + fix segfault at shutdown +- 0004-disable-the-cgroups-release-agent-when-shutting-down.patch + disable the cgroups release agent when shutting down. +- 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch + remove ancient fallback code; turn connection error into warning +- 006-suppress-status-message-output-at-shutdown-when-quie.patch + make shutdown honour "quiet" kernel cmdline. + +------------------------------------------------------------------- +Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org + +- fix broken symlink, service is called systemd-random-seed now. + +------------------------------------------------------------------- +Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com + +- Update to release 205: + + two new unit types have been introduced: + - Scope units are very similar to service units, however, are + created out of pre-existing processes -- instead of PID 1 + forking off the processes. + - Slice units may be used to partition system resources in an + hierarchial fashion and then assign other units to them. By + default there are now three slices: system.slice (for all + system services), user.slice (for all user sessions), + machine.slice (for VMs and containers). + + new concept of "transient" units, which are created at runtime + using an API and not based on configuration from disk. + + logind has been updated to make use of scope and slice units to + manage user sessions. Logind will no longer create cgroups + hierchies itself but will relying on PID 1. + + A new mini-daemon "systemd-machined" has been added which + may be used by virtualization managers to register local + VMs/containers. machinectl tool has been added to query + meta-data from systemd-machined. + + Low-level cgroup configuration options ControlGroup=, + ControlGroupModify=, ControlGroupPersistent=, + ControlGroupAttribute= have been removed. High-level attribute + settings or slice units should be used instead? + + A new bus call SetUnitProperties() has been added to alter + various runtime parameters of a unit, including cgroup + parameters. systemctl gained set-properties command to wrap + this call. + + A new tool "systemd-run" has been added which can be used to + run arbitrary command lines as transient services or scopes, + while configuring a number of settings via the command + line. + + nspawn will now inform the user explicitly that kernels with + audit enabled break containers, and suggest the user to turn + off audit. + + Support for detecting the IMA and AppArmor security + frameworks with ConditionSecurity= has been added. + + journalctl gained a new "-k" switch for showing only kernel + messages, mimicking dmesg output; in addition to "--user" + and "--system" switches for showing only user's own logs + and system logs. + + systemd-delta can now show information about drop-in + snippets extending unit files. + + systemd will now look for the "debug" argument on the kernel + command line and enable debug logging, similar to + "systemd.log_level=debug" already did before. + + "systemctl set-default", "systemctl get-default" has been + added to configure the default.target symlink, which + controls what to boot into by default. + + "systemctl set-log-level" has been added as a convenient + way to raise and lower systemd logging threshold. + + "systemd-analyze plot" will now show the time the various + generators needed for execution, as well as information + about the unit file loading. + + libsystemd-journal gained a new sd_journal_open_files() call + for opening specific journal files. journactl also gained a + new switch to expose this new functionality (useful for + debugging). + + systemd gained the new DefaultEnvironment= setting in + /etc/systemd/system.conf to set environment variables for + all services. + + If a privileged process logs a journal message with the + OBJECT_PID= field set, then journald will automatically + augment this with additional OBJECT_UID=, OBJECT_GID=, + OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if + system services want to log events about specific client + processes. journactl/systemctl has been updated to make use + of this information if all log messages regarding a specific + unit is requested. +- Remove 0001-journal-letting-interleaved-seqnums-go.patch, + 0002-journal-remember-last-direction-of-search-and-keep-o.patch, + 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch, + 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch, + 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch, + 0160-mount-when-learning-about-the-root-mount-from-mounti.patch, + 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch, + Start-ctrl-alt-del.target-irreversibly.patch, + systemctl-does-not-expand-u-so-revert-back-to-I.patch: merged + upstream. +- Regenerate patches 1007-physical-hotplug-cpu-and-memory.patch, + 1008-add-msft-compability-rules.patch, + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch, + fix-support-for-boot-prefixed-initscript-bnc-746506.patch, + handle-SYSTEMCTL_OPTIONS-environment-variable.patch, + handle-numlock-value-in-etc-sysconfig-keyboard.patch, + insserv-generator.patch, + optionally-warn-if-nss-myhostname-is-called.patch, + remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, + restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch, + service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch. +- Update macros.systemd.upstream with latest upstream revision. + ------------------------------------------------------------------- Mon Jul 1 13:43:31 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 8bb25aa8..8c0271cf 100644 --- a/systemd.spec +++ b/systemd.spec @@ -23,7 +23,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 204 +Version: 206 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -60,9 +60,9 @@ BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.4.2 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif -BuildRequires: pkgconfig(libkmod) >= 5 +BuildRequires: pkgconfig(libkmod) >= 14 BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) @@ -85,6 +85,7 @@ Conflicts: kiwi Requires: %{udevpkgname} >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd +Requires: kmod >= 14 Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -163,24 +164,9 @@ Patch24: handle-etc-HOSTNAME.patch Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -# PATCH-FIX-UPSTREAM systemctl-does-not-expand-u-so-revert-back-to-I.patch fcrozat@suse.com -- avoids expansion errors. -Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch -# PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability. -Patch43: Start-ctrl-alt-del.target-irreversibly.patch -# PATCH-FIX-UPSTREAM 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch crrodriguez@opensuse.org fix systemd-journald[347]: Failed to set ACL on ...user-1000.journal..Invalid argument -Patch44: 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch -# PATCH-FIX-UPSTREAM 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch crrodriguez@opensuse.org ensure systemctl disable removes dangling symlinks -Patch45: 0006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch -# PATCH-FIX-UPSTREAM 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch crrodriguez@opensuse.org do not report alien child as alive when it is dead. -Patch46: 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch -# PATCH-FIX-UPSTREAM 0001-journal-letting-interleaved-seqnums-go.patch crrodriguez@opensuse.org fix journal infinite loops -Patch47: 0001-journal-letting-interleaved-seqnums-go.patch -# PATCH-FIX-UPSTREAM 0002-journal-remember-last-direction-of-search-and-keep-o.patch crrodriguez@opensuse.org fix journal infinite loops -Patch48: 0002-journal-remember-last-direction-of-search-and-keep-o.patch -# PATCH-FIX-UPSTREAM 0160-mount-when-learning-about-the-root-mount-from-mounti.patch crrodriguez@opensuse.org another case where / is attempted to umount at shutdown -Patch49: 0160-mount-when-learning-about-the-root-mount-from-mounti.patch -# PATCH-FIX-UPSTREAM 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch crrodriguez@opensuse.org only attempt to connect to a session bus if one likely exists. -Patch50: 0185-core-only-attempt-to-connect-to-a-session-bus-if-one.patch +# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin +Patch46: use-usr-sbin-sulogin-for-emergency-service.patch + # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch @@ -188,8 +174,6 @@ Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch Patch1003: 1003-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1004-fix-devname-prefix.patch fcrozat@suse.com -- fix modules.devname path, it isn't in /usr -Patch1004: 1004-fix-devname-prefix.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch @@ -365,6 +349,18 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. +%package journal-gateway +Summary: Gateway for serving journal events over the network using HTTP +License: LGPL-2.1+ +Group: System/Base +Requires: %{name} = %{version}-%{release} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%description journal-gateway +systemd-journal-gatewayd serves journal events over the network using HTTP. + %endif %prep @@ -413,20 +409,12 @@ cp %{SOURCE7} m4/ %patch39 -p1 %patch40 -p1 %patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 %patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 + # udev patches %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 -%patch1004 -p1 %patch1005 -p1 %patch1006 -p1 # don't apply when bootstrapping to not modify Makefile.am @@ -498,7 +486,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete -mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} +mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd @@ -532,7 +520,7 @@ ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed-load.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service +ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -591,7 +579,7 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants # create drop-in to prevent tty1 to be cleared (bnc#804158) mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ -echo << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf +cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf [Service] # ensure tty1 isn't cleared (bnc#804158) TTYVTDisallocate=no @@ -604,10 +592,11 @@ cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/network.conf F /run/udev/rules.d/80-net-name-slot.rules 0644 - - - "#disable predictable network interface naming for now" EOF +# packaged in systemd-rpm-macros +rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : -getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : exit 0 %post @@ -756,6 +745,21 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig +%pre journal-gateway +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : +%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service +exit 0 + +%post journal-gateway +%service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service + +%preun journal-gateway +%service_del_preun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service + +%postun journal-gateway +%service_del_postun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service + %endif %files @@ -767,11 +771,13 @@ fi %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl +%{_bindir}/machinectl %{_bindir}/systemctl %{_bindir}/systemd-analyze %{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta %{_bindir}/systemd-notify +%{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl %{_bindir}/systemd-ask-password @@ -805,8 +811,10 @@ fi %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.service +%{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target %{_prefix}/lib/systemd/system/*.mount %{_prefix}/lib/systemd/system/*.timer @@ -816,6 +824,7 @@ fi %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %exclude %{_prefix}/lib/systemd/systemd-udevd +%exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog @@ -862,7 +871,7 @@ fi %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd -%dir %{_sysconfdir}/xdg/systemd/user +%{_sysconfdir}/xdg/systemd/user %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf @@ -870,6 +879,7 @@ fi %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -883,6 +893,7 @@ fi %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions @@ -891,6 +902,7 @@ fi %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%exclude %{_datadir}/systemd/gatewayd %{_datadir}/systemd %if ! 0%{?bootstrap} @@ -903,7 +915,7 @@ fi %exclude %{_mandir}/man8/telinit.8* %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* - +%exclude %{_mandir}/man8/systemd-journal-gatewayd.* %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* @@ -985,15 +997,10 @@ fi %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id %{_prefix}/lib/udev/collect -%{_prefix}/lib/udev/findkeyboards -%{_prefix}/lib/udev/keymap %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%dir %{_prefix}/lib/udev/keymaps -%{_prefix}/lib/udev/keymaps/* -%{_prefix}/lib/udev/keyboard-force-release.sh %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules @@ -1072,6 +1079,12 @@ fi %{_sbindir}/nss-myhostname-config /%{_lib}/*nss_myhostname* +%files journal-gateway +%defattr(-, root, root) +%{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* +%{_prefix}/lib/systemd/systemd-journal-gatewayd +%{_mandir}/man8/systemd-journal-gatewayd.* +%{_datadir}/systemd/gatewayd %endif %changelog diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch index 8a67df99..01f96bde 100644 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -6,10 +6,8 @@ Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock src/timedate/timedated.c | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index cdb6e5b..7246452 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c +--- systemd-206.orig/src/timedate/timedated.c ++++ systemd-206/src/timedate/timedated.c @@ -182,6 +182,13 @@ static int read_data(void) { goto have_timezone; } diff --git a/use-usr-sbin-sulogin-for-emergency-service.patch b/use-usr-sbin-sulogin-for-emergency-service.patch new file mode 100644 index 00000000..2c932c6c --- /dev/null +++ b/use-usr-sbin-sulogin-for-emergency-service.patch @@ -0,0 +1,27 @@ +From: Andrey Borzenkov +Subject: use /usr/sbin/sulogin in emergency service + +In current Factory sulogin is in /usr/sbin which makes it impossible +to enter emergency service. +--- systemd-206.orig/units/emergency.service ++++ systemd-206/units/emergency.service +@@ -17,7 +17,7 @@ Environment=HOME=/root + WorkingDirectory=/root + ExecStartPre=-/bin/plymouth quit + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=/usr/bin/systemctl --fail --no-block default + Type=idle + StandardInput=tty-force +--- systemd-206.orig/units/emergency.service.in ++++ systemd-206/units/emergency.service.in +@@ -17,7 +17,7 @@ Environment=HOME=/root + WorkingDirectory=/root + ExecStartPre=-/bin/plymouth quit + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=@SYSTEMCTL@ --fail --no-block default + Type=idle + StandardInput=tty-force From 64180b285dcd95ad68a26f42def01a603d6ec575a410378f1ad85bd2edf5c55a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 6 Aug 2013 09:43:29 +0000 Subject: [PATCH 148/221] Accepting request 186059 from Base:System - explicitly enable getty@tty1.service instead of getty@.service as the tty1 alias has been removed from the file (bnc#833494) OBS-URL: https://build.opensuse.org/request/show/186059 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=152 --- systemd-mini.spec | 2 +- systemd.changes | 6 ++++++ systemd.spec | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/systemd-mini.spec b/systemd-mini.spec index 8dc12a23..615ada19 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -624,7 +624,7 @@ fi if [ "$1" -eq 1 ]; then # Enable these services by default. /usr/bin/systemctl enable \ - getty@.service \ + getty@tty1.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : diff --git a/systemd.changes b/systemd.changes index 35185b2f..52acf962 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Aug 6 09:24:07 UTC 2013 - lnussel@suse.de + +- explicitly enable getty@tty1.service instead of getty@.service as + the tty1 alias has been removed from the file (bnc#833494) + ------------------------------------------------------------------- Thu Aug 1 15:52:20 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 8c0271cf..56827189 100644 --- a/systemd.spec +++ b/systemd.spec @@ -619,7 +619,7 @@ fi if [ "$1" -eq 1 ]; then # Enable these services by default. /usr/bin/systemctl enable \ - getty@.service \ + getty@tty1.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : From bb1ecefd31223a078b04c149080911648370e5346ec9ea20eaadf6887fe74c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 23 Aug 2013 09:06:04 +0000 Subject: [PATCH 149/221] Accepting request 195987 from Base:System This SR fixes screen locking problems in Gnome and also automatic login. - Add patch logind_update_state_file_after_generating_the_session_fifo_not_before.patch to fix https://bugs.freedesktop.org/show_bug.cgi?id=67273 (forwarded request 195808 from namtrac) OBS-URL: https://build.opensuse.org/request/show/195987 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=153 --- ...nerating_the_session_fifo_not_before.patch | 96 +++++++++++++++++++ systemd-mini.changes | 12 +++ systemd-mini.spec | 3 + systemd.changes | 6 ++ systemd.spec | 3 + 5 files changed, 120 insertions(+) create mode 100644 logind_update_state_file_after_generating_the_session_fifo_not_before.patch diff --git a/logind_update_state_file_after_generating_the_session_fifo_not_before.patch b/logind_update_state_file_after_generating_the_session_fifo_not_before.patch new file mode 100644 index 00000000..c82d60c7 --- /dev/null +++ b/logind_update_state_file_after_generating_the_session_fifo_not_before.patch @@ -0,0 +1,96 @@ +Index: systemd-206/src/login/logind-dbus.c +=================================================================== +--- systemd-206.orig/src/login/logind-dbus.c ++++ systemd-206/src/login/logind-dbus.c +@@ -643,6 +643,10 @@ static int bus_manager_create_session(Ma + + session->create_message = dbus_message_ref(message); + ++ /* Now, let's wait until the slice unit and stuff got ++ * created. We send the reply back from ++ * session_send_create_reply().*/ ++ + return 0; + + fail: +@@ -2356,7 +2360,6 @@ DBusHandlerResult bus_message_filter( + if (streq_ptr(path, s->scope_job)) { + free(s->scope_job); + s->scope_job = NULL; +- session_save(s); + + if (s->started) { + if (streq(result, "done")) +@@ -2365,7 +2368,8 @@ DBusHandlerResult bus_message_filter( + dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); + session_send_create_reply(s, &error); + } +- } ++ } else ++ session_save(s); + } + + session_add_to_gc_queue(s); +Index: systemd-206/src/login/logind-session-dbus.c +=================================================================== +--- systemd-206.orig/src/login/logind-session-dbus.c ++++ systemd-206/src/login/logind-session-dbus.c +@@ -535,6 +535,10 @@ int session_send_create_reply(Session *s + if (!s->create_message) + return 0; + ++ /* This is called after the session scope was successfully ++ * created, and finishes where bus_manager_create_session() ++ * left off. */ ++ + if (error) { + DBusError buffer; + +@@ -588,6 +592,10 @@ int session_send_create_reply(Session *s + return log_oom(); + } + ++ /* Update the state file before we notify the client about the ++ * result */ ++ session_save(s); ++ + if (!dbus_connection_send(s->manager->bus, reply, NULL)) + return log_oom(); + +Index: systemd-206/src/machine/machine-dbus.c +=================================================================== +--- systemd-206.orig/src/machine/machine-dbus.c ++++ systemd-206/src/machine/machine-dbus.c +@@ -350,6 +350,10 @@ int machine_send_create_reply(Machine *m + return log_oom(); + } + ++ /* Update the machine state file before we notify the client ++ * about the result. */ ++ machine_save(m); ++ + if (!dbus_connection_send(m->manager->bus, reply, NULL)) + return log_oom(); + +Index: systemd-206/src/machine/machined-dbus.c +=================================================================== +--- systemd-206.orig/src/machine/machined-dbus.c ++++ systemd-206/src/machine/machined-dbus.c +@@ -543,7 +543,6 @@ DBusHandlerResult bus_message_filter( + if (streq_ptr(path, mm->scope_job)) { + free(mm->scope_job); + mm->scope_job = NULL; +- machine_save(mm); + + if (mm->started) { + if (streq(result, "done")) +@@ -552,7 +551,8 @@ DBusHandlerResult bus_message_filter( + dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); + machine_send_create_reply(mm, &error); + } +- } ++ } else ++ machine_save(mm); + } + + machine_add_to_gc_queue(mm); diff --git a/systemd-mini.changes b/systemd-mini.changes index 35185b2f..a6943f52 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed Aug 21 10:42:35 UTC 2013 - idonmez@suse.com + +- Add patch logind_update_state_file_after_generating_the_session_fifo_not_before.patch + to fix https://bugs.freedesktop.org/show_bug.cgi?id=67273 + +------------------------------------------------------------------- +Tue Aug 6 09:24:07 UTC 2013 - lnussel@suse.de + +- explicitly enable getty@tty1.service instead of getty@.service as + the tty1 alias has been removed from the file (bnc#833494) + ------------------------------------------------------------------- Thu Aug 1 15:52:20 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 615ada19..deca2fd2 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -171,6 +171,8 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-UPSTREAM logind_update_state_file_after_generating_the_session_fifo_not_before.patch -- fdo#67273 +Patch47: logind_update_state_file_after_generating_the_session_fifo_not_before.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -415,6 +417,7 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch46 -p1 +%patch47 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 52acf962..a6943f52 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Aug 21 10:42:35 UTC 2013 - idonmez@suse.com + +- Add patch logind_update_state_file_after_generating_the_session_fifo_not_before.patch + to fix https://bugs.freedesktop.org/show_bug.cgi?id=67273 + ------------------------------------------------------------------- Tue Aug 6 09:24:07 UTC 2013 - lnussel@suse.de diff --git a/systemd.spec b/systemd.spec index 56827189..515f27a4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -166,6 +166,8 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-UPSTREAM logind_update_state_file_after_generating_the_session_fifo_not_before.patch -- fdo#67273 +Patch47: logind_update_state_file_after_generating_the_session_fifo_not_before.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -410,6 +412,7 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch46 -p1 +%patch47 -p1 # udev patches %patch1001 -p1 From aa1c600ed747391299a72ef5da0fdf2b6d2f7869a46859ed722e96a501fd54bc Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 8 Sep 2013 13:31:37 +0000 Subject: [PATCH 150/221] Accepting request 197892 from Base:System - Remove force-lvm-restart-after-cryptsetup-target-is-reached.patch and remove additional dependencies on LVM in other patches: LVM has now systemd support, no need to work around it anymore in systemd. (forwarded request 197612 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/197892 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=154 --- ...etup-after-md-dmraid-lvm-are-started.patch | 6 +- ...e-started-before-local-fs-pre-target.patch | 6 +- ...t-after-cryptsetup-target-is-reached.patch | 102 ------------------ systemd-mini.changes | 9 ++ systemd-mini.spec | 2 - systemd.changes | 9 ++ systemd.spec | 2 - 7 files changed, 24 insertions(+), 112 deletions(-) delete mode 100644 force-lvm-restart-after-cryptsetup-target-is-reached.patch diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index 026de00c..06b2cb61 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -1,6 +1,6 @@ From: Frederic Crozat Date: Wed, 9 Nov 2011 11:10:49 +0100 -Subject: delay fsck / cryptsetup after md / dmraid / lvm are started +Subject: delay fsck / cryptsetup after md / dmraid are started --- src/cryptsetup/cryptsetup-generator.c | 1 + @@ -13,7 +13,7 @@ Subject: delay fsck / cryptsetup after md / dmraid / lvm are started "Conflicts=umount.target\n" "DefaultDependencies=no\n" "BindsTo=dev-mapper-%i.device\n" -+ "After=md.service dmraid.service lvm.service\n" ++ "After=md.service dmraid.service\n" "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", f); @@ -24,7 +24,7 @@ Subject: delay fsck / cryptsetup after md / dmraid / lvm are started DefaultDependencies=no BindsTo=%i.device -After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device lvm.service md.service dmraid.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device md.service dmraid.service Before=shutdown.target [Service] diff --git a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch index e095da13..aca18227 100644 --- a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +++ b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch @@ -1,8 +1,8 @@ From: Frederic Crozat Date: Thu, 9 Feb 2012 16:19:38 +0000 -Subject: ensure DM and LVM are started before local-fs-pre-target +Subject: ensure DM and dmraid are started before local-fs-pre-target -ensure md / lvm /dmraid is started before mounting partitions, +ensure md / dmraid is started before mounting partitions, if fsck was disabled for them (bnc#733283). --- units/local-fs-pre.target | 1 + @@ -14,4 +14,4 @@ if fsck was disabled for them (bnc#733283). Description=Local File Systems (Pre) Documentation=man:systemd.special(7) RefuseManualStart=yes -+After=md.service lvm.service dmraid.service ++After=md.service dmraid.service diff --git a/force-lvm-restart-after-cryptsetup-target-is-reached.patch b/force-lvm-restart-after-cryptsetup-target-is-reached.patch deleted file mode 100644 index d40fda5a..00000000 --- a/force-lvm-restart-after-cryptsetup-target-is-reached.patch +++ /dev/null @@ -1,102 +0,0 @@ -From: Frederic Crozat -Date: Mon, 7 Nov 2011 18:04:20 +0100 -Subject: force lvm restart after cryptsetup target is reached - ---- - src/cryptsetup/cryptsetup-generator.c | 57 ++++++++++++++++++++++++++++++++++- - 1 file changed, 56 insertions(+), 1 deletion(-) - ---- systemd-206.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-206/src/cryptsetup/cryptsetup-generator.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "log.h" - #include "util.h" -@@ -64,6 +65,54 @@ static bool has_option(const char *hayst - return false; - } - -+static int create_storage_after_cryptsetup (void) { -+ _cleanup_free_ char *to = NULL, *p = NULL; -+ _cleanup_fclose_ FILE *f = NULL; -+ -+ if (asprintf(&p, "%s/storage-after-cryptsetup.service", arg_dest) < 0) -+ return log_oom(); -+ -+ if (!(f = fopen(p, "wxe"))) { -+ log_error("Failed to create unit file: %m"); -+ return -errno; -+ } -+ -+ fprintf(f, -+ "[Unit]\n" -+ "Description=Restart storage after cryptsetup\n" -+ "DefaultDependencies=no\n" -+ "After=cryptsetup.target\n" -+ "Wants=cryptsetup.target\n" -+ "Before=local-fs.target\n" -+ "Before=shutdown.target\n"); -+ -+ fprintf(f, -+ "\n[Service]\n" -+ "RemainAfterExit=true\n" -+ "Type=oneshot\n" -+ "TimeoutSec=0\n" -+ "ExecStart=/usr/bin/systemctl restart lvm.service\n"); -+ -+ fflush(f); -+ -+ if (ferror(f)) { -+ log_error("Failed to write file: %m"); -+ return -errno; -+ } -+ -+ if (asprintf(&to, "%s/local-fs.target.wants/storage-after-cryptsetup.service", arg_dest) < 0) -+ return log_oom(); -+ -+ mkdir_parents(to, 0755); -+ -+ if (symlink("../storage-after-cryptsetup.service", to) < 0) { -+ log_error("Failed to create symlink ../storage-after-cryptsetup.service to '%s': %m", to); -+ return -errno; -+ } -+ -+ return 0; -+} -+ - static int create_disk( - const char *name, - const char *device, -@@ -334,6 +383,7 @@ int main(int argc, char *argv[]) { - _cleanup_fclose_ FILE *f = NULL; - unsigned n = 0; - int r = EXIT_SUCCESS; -+ bool no_crypttab = false; - char **i; - - if (argc > 1 && argc != 4) { -@@ -361,8 +411,10 @@ int main(int argc, char *argv[]) { - - f = fopen("/etc/crypttab", "re"); - if (!f) { -- if (errno == ENOENT) -+ if (errno == ENOENT) { -+ no_crypttab = true; - r = EXIT_SUCCESS; -+ } - else { - r = EXIT_FAILURE; - log_error("Failed to open /etc/crypttab: %m"); -@@ -464,5 +516,8 @@ next: - r = EXIT_FAILURE; - } - -+ if ((r == EXIT_SUCCESS && !no_crypttab) && (create_storage_after_cryptsetup () < 0)) -+ r = EXIT_FAILURE; -+ - return r; - } diff --git a/systemd-mini.changes b/systemd-mini.changes index a6943f52..76c0155b 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Sep 6 15:02:08 UTC 2013 - fcrozat@suse.com + +- Remove + force-lvm-restart-after-cryptsetup-target-is-reached.patch and + remove additional dependencies on LVM in other patches: LVM has + now systemd support, no need to work around it anymore in + systemd. + ------------------------------------------------------------------- Wed Aug 21 10:42:35 UTC 2013 - idonmez@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index deca2fd2..09e188d1 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -128,7 +128,6 @@ Patch6: insserv-generator.patch Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch -Patch10: force-lvm-restart-after-cryptsetup-target-is-reached.patch Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch @@ -393,7 +392,6 @@ cp %{SOURCE7} m4/ %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 diff --git a/systemd.changes b/systemd.changes index a6943f52..76c0155b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Sep 6 15:02:08 UTC 2013 - fcrozat@suse.com + +- Remove + force-lvm-restart-after-cryptsetup-target-is-reached.patch and + remove additional dependencies on LVM in other patches: LVM has + now systemd support, no need to work around it anymore in + systemd. + ------------------------------------------------------------------- Wed Aug 21 10:42:35 UTC 2013 - idonmez@suse.com diff --git a/systemd.spec b/systemd.spec index 515f27a4..ec9c1d3a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -123,7 +123,6 @@ Patch6: insserv-generator.patch Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch -Patch10: force-lvm-restart-after-cryptsetup-target-is-reached.patch Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch @@ -388,7 +387,6 @@ cp %{SOURCE7} m4/ %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 From c446b5bdf8b0f1e8484ac35f753bb004d97339a96bfd6038a583a8777a3074fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 13 Sep 2013 12:45:43 +0000 Subject: [PATCH 151/221] Accepting request 198848 from Base:System - Enable Predictable Network interface names (bnc#829526). - version 207, distribution specific changes follow, for overall release notes see NEWS. - Fixed: * Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted * Fix shutdown hang "a stop job is running for Session 1 of user root" that was reported in opensuse-factory list. - systemd-sysctl no longer reads /etc/sysctl.conf however backward compatbility is to be provides by a symlink created at %post. - removed previously disabled upstream patches (merged): 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch, 0004-disable-the-cgroups-release-agent-when-shutting-down.patch, 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch, 0006-suppress-status-message-output-at-shutdown-when-quie.patch, - removed upstream merged patches: exclude-dev-from-tmpfiles.patch, logind_update_state_file_after_generating_....patch - Add systemd-pam_config.patch: use correct include name for PAM configuration on openSUSE. - Add exclude-dev-from-tmpfiles.patch: allow to exclude /dev from tmpfiles (bnc#835813). OBS-URL: https://build.opensuse.org/request/show/198848 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=155 --- ...nt_dump-don-t-segfault-if-mount-is-n.patch | 34 ------- ...ups-release-agent-when-shutting-down.patch | 74 -------------- ...move-ancient-fallback-code-turn-conn.patch | 53 ---------- ...message-output-at-shutdown-when-quie.patch | 69 ------------- ...es-permissions-to-follow-openSUSE-po.patch | 4 +- ...alid-address-familily-is-passed-to-g.patch | 4 +- ...etup-after-md-dmraid-lvm-are-started.patch | 8 +- ...e-started-before-local-fs-pre-target.patch | 4 +- ...assword-wall-starts-after-getty-tty1.patch | 4 +- ...are-applied-after-modules-are-loaded.patch | 6 +- fix-owner-of-var-log-btmp.patch | 4 +- ...-boot-prefixed-initscript-bnc-746506.patch | 6 +- ...plock-and-compose_table-and-kbd_rate.patch | 4 +- ...lock-value-in-etc-sysconfig-keyboard.patch | 18 ++-- ...lang-value-in-etc-sysconfig-language.patch | 12 +-- insserv-generator.patch | 10 +- ...nerating_the_session_fifo_not_before.patch | 96 ------------------- ...USE-etc-sysconfig-kernel-module-list.patch | 8 +- ...lly-warn-if-nss-myhostname-is-called.patch | 10 +- ...script-heuristic-and-add-new-LSB-hea.patch | 14 +-- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 12 +-- ...vice-with-detected-pid-as-RemainAfte.patch | 6 +- systemd-206.tar.xz | 3 - systemd-207.tar.xz | 3 + systemd-mini.changes | 34 +++++++ systemd-mini.spec | 25 ++--- systemd-pam_config.patch | 14 +++ systemd.changes | 34 +++++++ systemd.spec | 25 ++--- ...or-openSUSE-version-of-etc-sysconfig.patch | 4 +- ...r-sbin-sulogin-for-emergency-service.patch | 11 --- 31 files changed, 182 insertions(+), 431 deletions(-) delete mode 100644 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch delete mode 100644 0004-disable-the-cgroups-release-agent-when-shutting-down.patch delete mode 100644 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch delete mode 100644 0006-suppress-status-message-output-at-shutdown-when-quie.patch delete mode 100644 logind_update_state_file_after_generating_the_session_fifo_not_before.patch delete mode 100644 systemd-206.tar.xz create mode 100644 systemd-207.tar.xz create mode 100644 systemd-pam_config.patch diff --git a/0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch b/0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch deleted file mode 100644 index 7db90f64..00000000 --- a/0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1e4fc9b1d8449e87474b3af8a4ddab09fab27cd5 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Thu, 4 Jul 2013 11:01:47 +0200 -Subject: [PATCH 2/6] core/mount.c:mount_dump(): don't segfault, if mount is - not mounted anymore - -Don't segfault, if m->from_proc_self_mountinfo and m->from_fragment is -false. - -https://bugzilla.redhat.com/show_bug.cgi?id=957783#c9 ---- - src/core/mount.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3cc3e65..58a3f11 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -822,9 +822,9 @@ static void mount_dump(Unit *u, FILE *f, const char *prefix) { - prefix, mount_state_to_string(m->state), - prefix, mount_result_to_string(m->result), - prefix, m->where, -- prefix, strna(p->what), -- prefix, strna(p->fstype), -- prefix, strna(p->options), -+ prefix, p ? strna(p->what) : "n/a", -+ prefix, p ? strna(p->fstype) : "n/a", -+ prefix, p ? strna(p->options) : "n/a", - prefix, yes_no(m->from_proc_self_mountinfo), - prefix, yes_no(m->from_fragment), - prefix, m->directory_mode); --- -1.8.1.4 - diff --git a/0004-disable-the-cgroups-release-agent-when-shutting-down.patch b/0004-disable-the-cgroups-release-agent-when-shutting-down.patch deleted file mode 100644 index 52f7b574..00000000 --- a/0004-disable-the-cgroups-release-agent-when-shutting-down.patch +++ /dev/null @@ -1,74 +0,0 @@ -From ad929bcc27e2c6c1aa731053e45882686e9babab Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 4 Jul 2013 20:31:18 +0200 -Subject: [PATCH 4/6] disable the cgroups release agent when shutting down - -During shutdown, when we try to clean up all remaining processes, the -kernel will fork new agents every time a cgroup runs empty. These -new processes cause delays in the final SIGTERM, SIGKILL logic. - -Apart from that, this should also avoid that the kernel-forked binaries -cause unpredictably timed access to the filesystem which we might need to -unmount. ---- - src/core/main.c | 4 ++++ - src/shared/cgroup-util.c | 15 +++++++++++++++ - src/shared/cgroup-util.h | 1 + - 3 files changed, 20 insertions(+) - -diff --git a/src/core/main.c b/src/core/main.c -index 8b8e110..ada0f9d 100644 ---- a/src/core/main.c -+++ b/src/core/main.c -@@ -1942,6 +1942,10 @@ finish: - watchdog_close(true); - } - -+ /* avoid the creation of new processes forked by the kernel; at this -+ * point, we will not listen to the signals anyway */ -+ cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); -+ - execve(SYSTEMD_SHUTDOWN_BINARY_PATH, (char **) command_line, env_block); - free(env_block); - log_error("Failed to execute shutdown binary, freezing: %m"); -diff --git a/src/shared/cgroup-util.c b/src/shared/cgroup-util.c -index 390259e..73013d1 100644 ---- a/src/shared/cgroup-util.c -+++ b/src/shared/cgroup-util.c -@@ -790,6 +790,21 @@ int cg_install_release_agent(const char *controller, const char *agent) { - return 0; - } - -+int cg_uninstall_release_agent(const char *controller) { -+ _cleanup_free_ char *fs = NULL; -+ int r; -+ -+ r = cg_get_path(controller, NULL, "release_agent", &fs); -+ if (r < 0) -+ return r; -+ -+ r = write_string_file(fs, ""); -+ if (r < 0) -+ return r; -+ -+ return 0; -+} -+ - int cg_is_empty(const char *controller, const char *path, bool ignore_self) { - _cleanup_fclose_ FILE *f = NULL; - pid_t pid = 0, self_pid; -diff --git a/src/shared/cgroup-util.h b/src/shared/cgroup-util.h -index c781aab..0fc93c1 100644 ---- a/src/shared/cgroup-util.h -+++ b/src/shared/cgroup-util.h -@@ -89,6 +89,7 @@ int cg_set_group_access(const char *controller, const char *path, mode_t mode, u - int cg_set_task_access(const char *controller, const char *path, mode_t mode, uid_t uid, gid_t gid); - - int cg_install_release_agent(const char *controller, const char *agent); -+int cg_uninstall_release_agent(const char *controller); - - int cg_is_empty(const char *controller, const char *path, bool ignore_self); - int cg_is_empty_by_spec(const char *spec, bool ignore_self); --- -1.8.1.4 - diff --git a/0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch b/0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch deleted file mode 100644 index 2f4b7254..00000000 --- a/0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch +++ /dev/null @@ -1,53 +0,0 @@ -From c1eba3008cac9e625b8bb774e9b44ceec8465980 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 4 Jul 2013 20:54:40 +0200 -Subject: [PATCH 5/6] cgroups-agent: remove ancient fallback code; turn - connection error into warning - -During re-execution and shutdown cgroups agents might not be able -to connect to systemd's private D-Bus socket, the printed error to -the console is misleding in that case, so turn it into a warning. ---- - src/cgroups-agent/cgroups-agent.c | 19 ++++++------------- - 1 file changed, 6 insertions(+), 13 deletions(-) - -diff --git a/src/cgroups-agent/cgroups-agent.c b/src/cgroups-agent/cgroups-agent.c -index 0e3d2b7..a47949a 100644 ---- a/src/cgroups-agent/cgroups-agent.c -+++ b/src/cgroups-agent/cgroups-agent.c -@@ -48,26 +48,19 @@ int main(int argc, char *argv[]) { - * this to avoid an activation loop when we start dbus when we - * are called when the dbus service is shut down. */ - -- if (!(bus = dbus_connection_open_private("unix:path=/run/systemd/private", &error))) { --#ifndef NOLEGACY -- dbus_error_free(&error); -- -- /* Retry with the pre v21 socket name, to ease upgrades */ -- if (!(bus = dbus_connection_open_private("unix:abstract=/org/freedesktop/systemd1/private", &error))) { --#endif -- log_error("Failed to get D-Bus connection: %s", bus_error_message(&error)); -- goto finish; -- } --#ifndef NOLEGACY -+ bus = dbus_connection_open_private("unix:path=/run/systemd/private", &error); -+ if (!bus) { -+ log_warning("Failed to get D-Bus connection: %s", bus_error_message(&error)); -+ goto finish; - } --#endif - - if (bus_check_peercred(bus) < 0) { - log_error("Bus owner not root."); - goto finish; - } - -- if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1/agent", "org.freedesktop.systemd1.Agent", "Released"))) { -+ m = dbus_message_new_signal("/org/freedesktop/systemd1/agent", "org.freedesktop.systemd1.Agent", "Released"); -+ if (!m) { - log_error("Could not allocate signal message."); - goto finish; - } --- -1.8.1.4 - diff --git a/0006-suppress-status-message-output-at-shutdown-when-quie.patch b/0006-suppress-status-message-output-at-shutdown-when-quie.patch deleted file mode 100644 index 8fb7ba23..00000000 --- a/0006-suppress-status-message-output-at-shutdown-when-quie.patch +++ /dev/null @@ -1,69 +0,0 @@ -From ec26be514ff3c5367b21f9881369080bda54fd2d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 5 Jul 2013 00:32:05 +0200 -Subject: [PATCH 6/6] suppress status message output at shutdown when 'quiet' - is given - ---- - src/core/main.c | 4 ++-- - src/core/shutdown.c | 15 +++++++++++++++ - 2 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/src/core/main.c b/src/core/main.c -index ada0f9d..243855f 100644 ---- a/src/core/main.c -+++ b/src/core/main.c -@@ -1942,9 +1942,9 @@ finish: - watchdog_close(true); - } - -- /* avoid the creation of new processes forked by the kernel; at this -+ /* avoid the creation of new processes forked by the kernel; at this - * point, we will not listen to the signals anyway */ -- cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); -+ cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); - - execve(SYSTEMD_SHUTDOWN_BINARY_PATH, (char **) command_line, env_block); - free(env_block); -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 2db761d..c02a14d 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -39,6 +39,7 @@ - - #include "missing.h" - #include "log.h" -+#include "fileio.h" - #include "umount.h" - #include "util.h" - #include "mkdir.h" -@@ -130,12 +131,26 @@ static int pivot_to_new_root(void) { - } - - int main(int argc, char *argv[]) { -+ _cleanup_free_ char *line = NULL; - int cmd, r; - unsigned retries; - bool need_umount = true, need_swapoff = true, need_loop_detach = true, need_dm_detach = true; - bool in_container, use_watchdog = false; - char *arguments[3]; - -+ /* suppress shutdown status output if 'quiet' is used */ -+ r = read_one_line_file("/proc/cmdline", &line); -+ if (r >= 0) { -+ char *w, *state; -+ size_t l; -+ -+ FOREACH_WORD_QUOTED(w, l, line, state) -+ if (streq(w, "quiet")) { -+ log_set_max_level(LOG_WARNING); -+ break; -+ } -+ } -+ - log_parse_environment(); - log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */ - log_open(); --- -1.8.1.4 - diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch index db366fca..8e0a00a7 100644 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -8,8 +8,8 @@ disable /var/lock/{subsys,lockdev} and change default permissions on tmpfiles.d/legacy.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) ---- systemd-206.orig/tmpfiles.d/legacy.conf -+++ systemd-206/tmpfiles.d/legacy.conf +--- systemd-206_git201308300826.orig/tmpfiles.d/legacy.conf ++++ systemd-206_git201308300826/tmpfiles.d/legacy.conf @@ -10,12 +10,13 @@ # These files are considered legacy and are unnecessary on legacy-free # systems. diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch index fdc7b9d0..04afafb9 100644 --- a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +++ b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -7,8 +7,8 @@ Subject: avoid assertion if invalid address familily is passed to src/nss-myhostname/nss-myhostname.c | 6 ++++++ 1 file changed, 6 insertions(+) ---- systemd-206.orig/src/nss-myhostname/nss-myhostname.c -+++ systemd-206/src/nss-myhostname/nss-myhostname.c +--- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c ++++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c @@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostb uint32_t local_address_ipv4 = LOCALADDRESS_IPV4; const char *canonical = NULL, *additional = NULL; diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index 06b2cb61..f1145b9e 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -7,8 +7,8 @@ Subject: delay fsck / cryptsetup after md / dmraid are started units/systemd-fsck@.service.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) ---- systemd-206.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-206/src/cryptsetup/cryptsetup-generator.c +--- systemd-206_git201308300826.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-206_git201308300826/src/cryptsetup/cryptsetup-generator.c @@ -160,6 +160,7 @@ static int create_disk( "Conflicts=umount.target\n" "DefaultDependencies=no\n" @@ -17,8 +17,8 @@ Subject: delay fsck / cryptsetup after md / dmraid are started "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", f); ---- systemd-206.orig/units/systemd-fsck@.service.in -+++ systemd-206/units/systemd-fsck@.service.in +--- systemd-206_git201308300826.orig/units/systemd-fsck@.service.in ++++ systemd-206_git201308300826/units/systemd-fsck@.service.in @@ -10,7 +10,7 @@ Description=File System Check on %f Documentation=man:systemd-fsck@.service(8) DefaultDependencies=no diff --git a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch index aca18227..d53eb948 100644 --- a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +++ b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch @@ -8,8 +8,8 @@ if fsck was disabled for them (bnc#733283). units/local-fs-pre.target | 1 + 1 file changed, 1 insertion(+) ---- systemd-206.orig/units/local-fs-pre.target -+++ systemd-206/units/local-fs-pre.target +--- systemd-206_git201308300826.orig/units/local-fs-pre.target ++++ systemd-206_git201308300826/units/local-fs-pre.target @@ -9,3 +9,4 @@ Description=Local File Systems (Pre) Documentation=man:systemd.special(7) diff --git a/ensure-ask-password-wall-starts-after-getty-tty1.patch b/ensure-ask-password-wall-starts-after-getty-tty1.patch index 6d6a3346..17d2e05e 100644 --- a/ensure-ask-password-wall-starts-after-getty-tty1.patch +++ b/ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -7,8 +7,8 @@ ensure passphrase is handled before starting getty on tty1. units/systemd-ask-password-wall.service.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- systemd-206.orig/units/systemd-ask-password-wall.service.in -+++ systemd-206/units/systemd-ask-password-wall.service.in +--- systemd-206_git201308300826.orig/units/systemd-ask-password-wall.service.in ++++ systemd-206_git201308300826/units/systemd-ask-password-wall.service.in @@ -8,7 +8,7 @@ [Unit] Description=Forward Password Requests to Wall diff --git a/ensure-sysctl-are-applied-after-modules-are-loaded.patch b/ensure-sysctl-are-applied-after-modules-are-loaded.patch index 4912449c..a672f33c 100644 --- a/ensure-sysctl-are-applied-after-modules-are-loaded.patch +++ b/ensure-sysctl-are-applied-after-modules-are-loaded.patch @@ -7,8 +7,8 @@ Subject: ensure sysctl are applied after modules are loaded units/systemd-sysctl.service.in | 1 + 1 file changed, 1 insertion(+) ---- systemd-206.orig/units/systemd-sysctl.service.in -+++ systemd-206/units/systemd-sysctl.service.in +--- systemd-206_git201308300826.orig/units/systemd-sysctl.service.in ++++ systemd-206_git201308300826/units/systemd-sysctl.service.in @@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service DefaultDependencies=no Conflicts=shutdown.target @@ -16,4 +16,4 @@ Subject: ensure sysctl are applied after modules are loaded +After=systemd-modules-load.service Before=sysinit.target shutdown.target ConditionPathIsReadWrite=/proc/sys/ - ConditionPathExists=|/etc/sysctl.conf + ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch index 9f5bfea1..fb6145ca 100644 --- a/fix-owner-of-var-log-btmp.patch +++ b/fix-owner-of-var-log-btmp.patch @@ -7,8 +7,8 @@ ensure btmp is owned only by root (bnc#777405). tmpfiles.d/systemd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- systemd-206.orig/tmpfiles.d/systemd.conf -+++ systemd-206/tmpfiles.d/systemd.conf +--- systemd-206_git201308300826.orig/tmpfiles.d/systemd.conf ++++ systemd-206_git201308300826/tmpfiles.d/systemd.conf @@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d F /run/utmp 0664 root utmp - diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index dddcefe5..b8fea652 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -6,9 +6,9 @@ Subject: fix support for boot prefixed initscript (bnc#746506) src/systemctl/systemctl.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) ---- systemd-206.orig/src/systemctl/systemctl.c -+++ systemd-206/src/systemctl/systemctl.c -@@ -4238,8 +4238,28 @@ static int enable_sysv_units(char **args +--- systemd-206_git201308300826.orig/src/systemctl/systemctl.c ++++ systemd-206_git201308300826/src/systemctl/systemctl.c +@@ -4169,8 +4169,28 @@ static int enable_sysv_units(char **args p[strlen(p) - sizeof(".service") + 1] = 0; found_sysv = access(p, F_OK) >= 0; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index d2116163..a6193b65 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -7,8 +7,8 @@ Subject: handle disable_caplock and compose_table and kbd_rate src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 3 deletions(-) ---- systemd-206.orig/src/vconsole/vconsole-setup.c -+++ systemd-206/src/vconsole/vconsole-setup.c +--- systemd-206_git201308300826.orig/src/vconsole/vconsole-setup.c ++++ systemd-206_git201308300826/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 284686b2..023e66a2 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,8 +6,8 @@ Authors: Stanislav Brabec Cristian Rodríguez ---- systemd-206.orig/src/vconsole/vconsole-setup.c -+++ systemd-206/src/vconsole/vconsole-setup.c +--- systemd-206_git201308300826.orig/src/vconsole/vconsole-setup.c ++++ systemd-206_git201308300826/src/vconsole/vconsole-setup.c @@ -42,6 +42,10 @@ #include "fileio.h" #include "strv.h" @@ -98,9 +98,9 @@ Cristian Rodríguez #ifdef HAVE_SYSV_COMPAT free(vc_kbd_delay); free(vc_kbd_rate); ---- systemd-206.orig/Makefile.am -+++ systemd-206/Makefile.am -@@ -2452,6 +2452,19 @@ dist_udevrules_DATA += \ +--- systemd-206_git201308300826.orig/Makefile.am ++++ systemd-206_git201308300826/Makefile.am +@@ -2488,6 +2488,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -121,7 +121,7 @@ Cristian Rodríguez if ENABLE_GTK_DOC SUBDIRS += \ --- /dev/null -+++ systemd-206/rules/73-seat-numlock.rules ++++ systemd-206_git201308300826/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -132,7 +132,7 @@ Cristian Rodríguez + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" --- /dev/null -+++ systemd-206/src/login/numlock-on.c ++++ systemd-206_git201308300826/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -168,8 +168,8 @@ Cristian Rodríguez + + exit(0); +} ---- systemd-206.orig/units/systemd-vconsole-setup.service.in -+++ systemd-206/units/systemd-vconsole-setup.service.in +--- systemd-206_git201308300826.orig/units/systemd-vconsole-setup.service.in ++++ systemd-206_git201308300826/units/systemd-vconsole-setup.service.in @@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index df273d04..9450a8ea 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -7,10 +7,10 @@ handle ROOT_USES_LANG=ctype (bnc#792182). src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) ---- systemd-206.orig/src/core/locale-setup.c -+++ systemd-206/src/core/locale-setup.c -@@ -70,6 +70,11 @@ static const char * const variable_names - int locale_setup(void) { +--- systemd-206_git201308300826.orig/src/core/locale-setup.c ++++ systemd-206_git201308300826/src/core/locale-setup.c +@@ -72,6 +72,11 @@ int locale_setup(char ***environment) { + char **env; char *variables[_VARIABLE_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT @@ -21,7 +21,7 @@ handle ROOT_USES_LANG=ctype (bnc#792182). if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -116,6 +121,27 @@ int locale_setup(void) { +@@ -118,6 +123,27 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); } @@ -48,4 +48,4 @@ handle ROOT_USES_LANG=ctype (bnc#792182). +#endif for (i = 0; i < _VARIABLE_MAX; i++) { - if (variables[i]) { + if (!variables[i]) diff --git a/insserv-generator.patch b/insserv-generator.patch index d53876b7..44330bfe 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -13,8 +13,8 @@ systemd unit drop-in files to add dependencies create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c ---- systemd-206.orig/Makefile.am -+++ systemd-206/Makefile.am +--- systemd-206_git201308300826.orig/Makefile.am ++++ systemd-206_git201308300826/Makefile.am @@ -321,6 +321,7 @@ rootlibexec_PROGRAMS = \ systemd-sleep @@ -23,7 +23,7 @@ systemd unit drop-in files to add dependencies systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1642,6 +1643,14 @@ systemd_delta_LDADD = \ +@@ -1655,6 +1656,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ @@ -39,7 +39,7 @@ systemd unit drop-in files to add dependencies src/getty-generator/getty-generator.c --- /dev/null -+++ systemd-206/src/insserv-generator/Makefile ++++ systemd-206_git201308300826/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -70,7 +70,7 @@ systemd unit drop-in files to add dependencies + +.PHONY: all clean --- /dev/null -+++ systemd-206/src/insserv-generator/insserv-generator.c ++++ systemd-206_git201308300826/src/insserv-generator/insserv-generator.c @@ -0,0 +1,309 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + diff --git a/logind_update_state_file_after_generating_the_session_fifo_not_before.patch b/logind_update_state_file_after_generating_the_session_fifo_not_before.patch deleted file mode 100644 index c82d60c7..00000000 --- a/logind_update_state_file_after_generating_the_session_fifo_not_before.patch +++ /dev/null @@ -1,96 +0,0 @@ -Index: systemd-206/src/login/logind-dbus.c -=================================================================== ---- systemd-206.orig/src/login/logind-dbus.c -+++ systemd-206/src/login/logind-dbus.c -@@ -643,6 +643,10 @@ static int bus_manager_create_session(Ma - - session->create_message = dbus_message_ref(message); - -+ /* Now, let's wait until the slice unit and stuff got -+ * created. We send the reply back from -+ * session_send_create_reply().*/ -+ - return 0; - - fail: -@@ -2356,7 +2360,6 @@ DBusHandlerResult bus_message_filter( - if (streq_ptr(path, s->scope_job)) { - free(s->scope_job); - s->scope_job = NULL; -- session_save(s); - - if (s->started) { - if (streq(result, "done")) -@@ -2365,7 +2368,8 @@ DBusHandlerResult bus_message_filter( - dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); - session_send_create_reply(s, &error); - } -- } -+ } else -+ session_save(s); - } - - session_add_to_gc_queue(s); -Index: systemd-206/src/login/logind-session-dbus.c -=================================================================== ---- systemd-206.orig/src/login/logind-session-dbus.c -+++ systemd-206/src/login/logind-session-dbus.c -@@ -535,6 +535,10 @@ int session_send_create_reply(Session *s - if (!s->create_message) - return 0; - -+ /* This is called after the session scope was successfully -+ * created, and finishes where bus_manager_create_session() -+ * left off. */ -+ - if (error) { - DBusError buffer; - -@@ -588,6 +592,10 @@ int session_send_create_reply(Session *s - return log_oom(); - } - -+ /* Update the state file before we notify the client about the -+ * result */ -+ session_save(s); -+ - if (!dbus_connection_send(s->manager->bus, reply, NULL)) - return log_oom(); - -Index: systemd-206/src/machine/machine-dbus.c -=================================================================== ---- systemd-206.orig/src/machine/machine-dbus.c -+++ systemd-206/src/machine/machine-dbus.c -@@ -350,6 +350,10 @@ int machine_send_create_reply(Machine *m - return log_oom(); - } - -+ /* Update the machine state file before we notify the client -+ * about the result. */ -+ machine_save(m); -+ - if (!dbus_connection_send(m->manager->bus, reply, NULL)) - return log_oom(); - -Index: systemd-206/src/machine/machined-dbus.c -=================================================================== ---- systemd-206.orig/src/machine/machined-dbus.c -+++ systemd-206/src/machine/machined-dbus.c -@@ -543,7 +543,6 @@ DBusHandlerResult bus_message_filter( - if (streq_ptr(path, mm->scope_job)) { - free(mm->scope_job); - mm->scope_job = NULL; -- machine_save(mm); - - if (mm->started) { - if (streq(result, "done")) -@@ -552,7 +551,8 @@ DBusHandlerResult bus_message_filter( - dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); - machine_send_create_reply(mm, &error); - } -- } -+ } else -+ machine_save(mm); - } - - machine_add_to_gc_queue(mm); diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch index dfa7cd97..4037a743 100644 --- a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +++ b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch @@ -7,8 +7,8 @@ Subject: module-load: handle SUSE /etc/sysconfig/kernel module list units/systemd-modules-load.service.in | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) ---- systemd-206.orig/src/modules-load/modules-load.c -+++ systemd-206/src/modules-load/modules-load.c +--- systemd-206_git201308300826.orig/src/modules-load/modules-load.c ++++ systemd-206_git201308300826/src/modules-load/modules-load.c @@ -262,6 +262,9 @@ static int parse_argv(int argc, char *ar int main(int argc, char *argv[]) { int r, k; @@ -50,8 +50,8 @@ Subject: module-load: handle SUSE /etc/sysconfig/kernel module list finish: kmod_unref(ctx); strv_free(arg_proc_cmdline_modules); ---- systemd-206.orig/units/systemd-modules-load.service.in -+++ systemd-206/units/systemd-modules-load.service.in +--- systemd-206_git201308300826.orig/units/systemd-modules-load.service.in ++++ systemd-206_git201308300826/units/systemd-modules-load.service.in @@ -13,6 +13,7 @@ Conflicts=shutdown.target After=systemd-readahead-collect.service systemd-readahead-replay.service Before=sysinit.target shutdown.target diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch index 41661df8..5b296a18 100644 --- a/optionally-warn-if-nss-myhostname-is-called.patch +++ b/optionally-warn-if-nss-myhostname-is-called.patch @@ -7,9 +7,9 @@ Subject: optionally warn if nss-myhostname is called src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) ---- systemd-206.orig/configure.ac -+++ systemd-206/configure.ac -@@ -803,6 +803,17 @@ if test "x$enable_myhostname" != "xno"; +--- systemd-206_git201308300826.orig/configure.ac ++++ systemd-206_git201308300826/configure.ac +@@ -817,6 +817,17 @@ if test "x$enable_myhostname" != "xno"; fi AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) @@ -27,8 +27,8 @@ Subject: optionally warn if nss-myhostname is called # ------------------------------------------------------------------------------ AC_ARG_WITH(firmware-path, AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], ---- systemd-206.orig/src/nss-myhostname/nss-myhostname.c -+++ systemd-206/src/nss-myhostname/nss-myhostname.c +--- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c ++++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c @@ -29,6 +29,9 @@ #include #include diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch index 3ff05deb..8f953181 100644 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -11,8 +11,8 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. src/core/service.h | 1 + 2 files changed, 33 insertions(+), 2 deletions(-) ---- systemd-206.orig/src/core/service.c -+++ systemd-206/src/core/service.c +--- systemd-206_git201308300826.orig/src/core/service.c ++++ systemd-206_git201308300826/src/core/service.c @@ -135,6 +135,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; @@ -21,7 +21,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -877,6 +878,34 @@ static int service_load_sysv_path(Servic +@@ -879,6 +880,34 @@ static int service_load_sysv_path(Servic free(short_description); short_description = d; @@ -56,7 +56,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. } else if (state == LSB_DESCRIPTION) { if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -927,7 +956,8 @@ static int service_load_sysv_path(Servic +@@ -929,7 +958,8 @@ static int service_load_sysv_path(Servic /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -66,7 +66,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2094,7 +2124,7 @@ static void service_enter_running(Servic +@@ -2102,7 +2132,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -75,8 +75,8 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); ---- systemd-206.orig/src/core/service.h -+++ systemd-206/src/core/service.h +--- systemd-206_git201308300826.orig/src/core/service.h ++++ systemd-206_git201308300826/src/core/service.h @@ -177,6 +177,7 @@ struct Service { bool is_sysv:1; bool sysv_has_lsb:1; diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index c9f3fc9d..422f23ca 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -10,9 +10,9 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink create mode 100644 units/var-lock.mount create mode 100644 units/var-run.mount ---- systemd-206.orig/Makefile.am -+++ systemd-206/Makefile.am -@@ -407,6 +407,12 @@ dist_systemunit_DATA = \ +--- systemd-206_git201308300826.orig/Makefile.am ++++ systemd-206_git201308300826/Makefile.am +@@ -419,6 +419,12 @@ dist_systemunit_DATA = \ units/system-update.target \ units/initrd-switch-root.target @@ -25,7 +25,7 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -4277,6 +4283,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -4379,6 +4385,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service @@ -36,7 +36,7 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink SYSINIT_TARGET_WANTS += \ systemd-update-utmp.service --- /dev/null -+++ systemd-206/units/var-lock.mount ++++ systemd-206_git201308300826/units/var-lock.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# @@ -58,7 +58,7 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink +Type=bind +Options=bind --- /dev/null -+++ systemd-206/units/var-run.mount ++++ systemd-206_git201308300826/units/var-run.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch index ca2c8271..d0e907bb 100644 --- a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +++ b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch @@ -12,9 +12,9 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 src/core/service.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) ---- systemd-206.orig/src/core/service.c -+++ systemd-206/src/core/service.c -@@ -2092,8 +2092,13 @@ static void service_enter_running(Servic +--- systemd-206_git201308300826.orig/src/core/service.c ++++ systemd-206_git201308300826/src/core/service.c +@@ -2100,8 +2100,13 @@ static void service_enter_running(Servic cgroup_ok = cgroup_good(s); if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && diff --git a/systemd-206.tar.xz b/systemd-206.tar.xz deleted file mode 100644 index 5702098a..00000000 --- a/systemd-206.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c993de071118ea1df7ffc4be26ef0b0d78354ef15b2743a2783d20edfcde9de -size 2340536 diff --git a/systemd-207.tar.xz b/systemd-207.tar.xz new file mode 100644 index 00000000..d97bd0f4 --- /dev/null +++ b/systemd-207.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac1f8120315e7969063bbb0c181c8dc59509aeaf10c4266077c257a182ad5942 +size 2363804 diff --git a/systemd-mini.changes b/systemd-mini.changes index 76c0155b..181a4e90 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com + +- Enable Predictable Network interface names (bnc#829526). + +------------------------------------------------------------------- +Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org + +- version 207, distribution specific changes follow, for overall + release notes see NEWS. +- Fixed: + * Failed at step PAM spawning /usr/lib/systemd/systemd: + Operation not permitted + * Fix shutdown hang "a stop job is running for Session 1 of user root" + that was reported in opensuse-factory list. +- systemd-sysctl no longer reads /etc/sysctl.conf however backward + compatbility is to be provides by a symlink created at %post. +- removed previously disabled upstream patches (merged): + 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch, + 0004-disable-the-cgroups-release-agent-when-shutting-down.patch, + 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch, + 0006-suppress-status-message-output-at-shutdown-when-quie.patch, +- removed upstream merged patches: + exclude-dev-from-tmpfiles.patch, + logind_update_state_file_after_generating_....patch +- Add systemd-pam_config.patch: use correct include name for PAM + configuration on openSUSE. + +------------------------------------------------------------------- +Mon Sep 9 14:39:46 UTC 2013 - fcrozat@suse.com + +- Add exclude-dev-from-tmpfiles.patch: allow to exclude /dev from + tmpfiles (bnc#835813). + ------------------------------------------------------------------- Fri Sep 6 15:02:08 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 09e188d1..23683aa5 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -25,7 +25,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 206 +Version: 207 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -155,7 +155,7 @@ Patch39: systemd-tmp-safe-defaults.patch Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch - +Patch42: systemd-pam_config.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make @@ -170,8 +170,6 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-UPSTREAM logind_update_state_file_after_generating_the_session_fifo_not_before.patch -- fdo#67273 -Patch47: logind_update_state_file_after_generating_the_session_fifo_not_before.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -414,8 +412,8 @@ cp %{SOURCE7} m4/ %patch39 -p1 %patch40 -p1 %patch41 -p1 +%patch42 -p1 %patch46 -p1 -%patch47 -p1 # udev patches %patch1001 -p1 @@ -431,7 +429,6 @@ cp %{SOURCE7} m4/ %build autoreconf -fiv - # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -593,11 +590,6 @@ EOF %fdupes -s %{buildroot}%{_mandir} -# disable predictable network interface naming until it has been reviewed by network team -cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/network.conf -F /run/udev/rules.d/80-net-name-slot.rules 0644 - - - "#disable predictable network interface naming for now" -EOF - # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd @@ -638,6 +630,12 @@ for f in $(find /etc/systemd/system -type l -xtype l); do [ -f "$new_target" ] && ln -s -f $new_target $f || : done +# since v207 /etc/sysctl.conf is no longer parsed, however +# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf +if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then + /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : +fi + %postun /sbin/ldconfig if [ $1 -ge 1 ]; then @@ -857,7 +855,9 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so +/etc/pam.d/systemd-user %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d @@ -951,6 +951,9 @@ exit 0 %dir /var/lib/systemd/migrated %dir /var/lib/systemd/catalog %dir /var/lib/systemd/coredump +%dir /usr/share/zsh +%dir /usr/share/zsh/site-functions +/usr/share/zsh/site-functions/* %files devel %defattr(-,root,root,-) diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch new file mode 100644 index 00000000..85027c50 --- /dev/null +++ b/systemd-pam_config.patch @@ -0,0 +1,14 @@ +diff --git a/src/login/systemd-user b/src/login/systemd-user +index 7b57dbf..c0fc793 100644 +--- a/src/login/systemd-user ++++ b/src/login/systemd-user +@@ -2,7 +2,7 @@ + + # Used by systemd when launching systemd user instances. + +-account include system-auth +-session include system-auth ++account include common-account ++session include common-session + auth required pam_deny.so + password required pam_deny.so diff --git a/systemd.changes b/systemd.changes index 76c0155b..181a4e90 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com + +- Enable Predictable Network interface names (bnc#829526). + +------------------------------------------------------------------- +Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org + +- version 207, distribution specific changes follow, for overall + release notes see NEWS. +- Fixed: + * Failed at step PAM spawning /usr/lib/systemd/systemd: + Operation not permitted + * Fix shutdown hang "a stop job is running for Session 1 of user root" + that was reported in opensuse-factory list. +- systemd-sysctl no longer reads /etc/sysctl.conf however backward + compatbility is to be provides by a symlink created at %post. +- removed previously disabled upstream patches (merged): + 0002-core-mount.c-mount_dump-don-t-segfault-if-mount-is-n.patch, + 0004-disable-the-cgroups-release-agent-when-shutting-down.patch, + 0005-cgroups-agent-remove-ancient-fallback-code-turn-conn.patch, + 0006-suppress-status-message-output-at-shutdown-when-quie.patch, +- removed upstream merged patches: + exclude-dev-from-tmpfiles.patch, + logind_update_state_file_after_generating_....patch +- Add systemd-pam_config.patch: use correct include name for PAM + configuration on openSUSE. + +------------------------------------------------------------------- +Mon Sep 9 14:39:46 UTC 2013 - fcrozat@suse.com + +- Add exclude-dev-from-tmpfiles.patch: allow to exclude /dev from + tmpfiles (bnc#835813). + ------------------------------------------------------------------- Fri Sep 6 15:02:08 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index ec9c1d3a..16f46947 100644 --- a/systemd.spec +++ b/systemd.spec @@ -23,7 +23,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 206 +Version: 207 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -150,7 +150,7 @@ Patch39: systemd-tmp-safe-defaults.patch Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch - +Patch42: systemd-pam_config.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make @@ -165,8 +165,6 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-UPSTREAM logind_update_state_file_after_generating_the_session_fifo_not_before.patch -- fdo#67273 -Patch47: logind_update_state_file_after_generating_the_session_fifo_not_before.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -409,8 +407,8 @@ cp %{SOURCE7} m4/ %patch39 -p1 %patch40 -p1 %patch41 -p1 +%patch42 -p1 %patch46 -p1 -%patch47 -p1 # udev patches %patch1001 -p1 @@ -426,7 +424,6 @@ cp %{SOURCE7} m4/ %build autoreconf -fiv - # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -588,11 +585,6 @@ EOF %fdupes -s %{buildroot}%{_mandir} -# disable predictable network interface naming until it has been reviewed by network team -cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/network.conf -F /run/udev/rules.d/80-net-name-slot.rules 0644 - - - "#disable predictable network interface naming for now" -EOF - # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd @@ -633,6 +625,12 @@ for f in $(find /etc/systemd/system -type l -xtype l); do [ -f "$new_target" ] && ln -s -f $new_target $f || : done +# since v207 /etc/sysctl.conf is no longer parsed, however +# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf +if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then + /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : +fi + %postun /sbin/ldconfig if [ $1 -ge 1 ]; then @@ -852,7 +850,9 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so +/etc/pam.d/systemd-user %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d @@ -946,6 +946,9 @@ exit 0 %dir /var/lib/systemd/migrated %dir /var/lib/systemd/catalog %dir /var/lib/systemd/coredump +%dir /usr/share/zsh +%dir /usr/share/zsh/site-functions +/usr/share/zsh/site-functions/* %files devel %defattr(-,root,root,-) diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch index 01f96bde..f688f407 100644 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -6,8 +6,8 @@ Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock src/timedate/timedated.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- systemd-206.orig/src/timedate/timedated.c -+++ systemd-206/src/timedate/timedated.c +--- systemd-206_git201308300826.orig/src/timedate/timedated.c ++++ systemd-206_git201308300826/src/timedate/timedated.c @@ -182,6 +182,13 @@ static int read_data(void) { goto have_timezone; } diff --git a/use-usr-sbin-sulogin-for-emergency-service.patch b/use-usr-sbin-sulogin-for-emergency-service.patch index 2c932c6c..9dfa4970 100644 --- a/use-usr-sbin-sulogin-for-emergency-service.patch +++ b/use-usr-sbin-sulogin-for-emergency-service.patch @@ -3,17 +3,6 @@ Subject: use /usr/sbin/sulogin in emergency service In current Factory sulogin is in /usr/sbin which makes it impossible to enter emergency service. ---- systemd-206.orig/units/emergency.service -+++ systemd-206/units/emergency.service -@@ -17,7 +17,7 @@ Environment=HOME=/root - WorkingDirectory=/root - ExecStartPre=-/bin/plymouth quit - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=/usr/bin/systemctl --fail --no-block default - Type=idle - StandardInput=tty-force --- systemd-206.orig/units/emergency.service.in +++ systemd-206/units/emergency.service.in @@ -17,7 +17,7 @@ Environment=HOME=/root From 2f57946157d81cebe64ff47f01016c1d16f46d81e54e27d212cd0223c9f367c7 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 16 Sep 2013 14:37:04 +0000 Subject: [PATCH 152/221] Accepting request 199207 from Base:System - 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch missing important check on return value. - 0002-cgroup-correct-the-log-information.patch fix misleading log information. - 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix setting memory cgroup - 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch should fail if write fails. - 0005-core-cgroup-first-print-then-free.patch use-after-free will trigger if there is an error condition. - 0006-swap-fix-reverse-dependencies.patch reported in opensuse-factory list, topic "swap isn't activated" - 0007-libudev-fix-move_later-comparison.patch libudev invalid usage of "move_later". - while testing this new release I get in the logs ocassionally at boot "systemd[1]: Failed to open private bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS is defined to /var/run/dbus/system_bus_socket instead of /run/dbus/system_bus_socket and that does not fly when /var/run is not yet available. (systemd-dbus-system-bus-address.patch) - 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch missing important check on return value. - 0002-cgroup-correct-the-log-information.patch fix misleading log information. - 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix setting memory cgroup - 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch (forwarded request 199084 from elvigia) OBS-URL: https://build.opensuse.org/request/show/199207 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=156 --- ...-missing-setting-of-variable-s-value.patch | 27 +++++++++++ 0002-cgroup-correct-the-log-information.patch | 26 +++++++++++ ...ix-incorrectly-setting-memory-cgroup.patch | 46 +++++++++++++++++++ ...hould-return-errno-of-failed-loop_wr.patch | 25 ++++++++++ 0005-core-cgroup-first-print-then-free.patch | 26 +++++++++++ 0006-swap-fix-reverse-dependencies.patch | 30 ++++++++++++ 0007-libudev-fix-move_later-comparison.patch | 27 +++++++++++ systemd-dbus-system-bus-address.patch | 11 +++++ systemd-mini.changes | 29 ++++++++++++ systemd-mini.spec | 25 ++++++++++ systemd.changes | 29 ++++++++++++ systemd.spec | 25 ++++++++++ 12 files changed, 326 insertions(+) create mode 100644 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch create mode 100644 0002-cgroup-correct-the-log-information.patch create mode 100644 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch create mode 100644 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch create mode 100644 0005-core-cgroup-first-print-then-free.patch create mode 100644 0006-swap-fix-reverse-dependencies.patch create mode 100644 0007-libudev-fix-move_later-comparison.patch create mode 100644 systemd-dbus-system-bus-address.patch diff --git a/0001-cgroup-add-the-missing-setting-of-variable-s-value.patch b/0001-cgroup-add-the-missing-setting-of-variable-s-value.patch new file mode 100644 index 00000000..4883baed --- /dev/null +++ b/0001-cgroup-add-the-missing-setting-of-variable-s-value.patch @@ -0,0 +1,27 @@ +From 8d7b5ca0a6cdab3e400ef084fa8a05d581d59b55 Mon Sep 17 00:00:00 2001 +From: Gao feng +Date: Fri, 13 Sep 2013 11:17:05 +0800 +Subject: [PATCH 1/7] cgroup: add the missing setting of variable's value + +set the value of variable "r" to the return value +of cg_set_attribute. +--- + src/core/cgroup.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/cgroup.c b/src/core/cgroup.c +index 3eeb475..fba0b2f 100644 +--- a/src/core/cgroup.c ++++ b/src/core/cgroup.c +@@ -264,7 +264,7 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha + log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); + + sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); +- cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); ++ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); + if (r < 0) + log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); + } +-- +1.8.1.4 + diff --git a/0002-cgroup-correct-the-log-information.patch b/0002-cgroup-correct-the-log-information.patch new file mode 100644 index 00000000..648b5c67 --- /dev/null +++ b/0002-cgroup-correct-the-log-information.patch @@ -0,0 +1,26 @@ +From ebab7f4535a077eb8168cb8f3a9fe899e56aba17 Mon Sep 17 00:00:00 2001 +From: Gao feng +Date: Fri, 13 Sep 2013 11:17:06 +0800 +Subject: [PATCH 2/7] cgroup: correct the log information + +it should be memory.soft_limit_in_bytes. +--- + src/core/cgroup.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/cgroup.c b/src/core/cgroup.c +index fba0b2f..aee93ba 100644 +--- a/src/core/cgroup.c ++++ b/src/core/cgroup.c +@@ -266,7 +266,7 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha + sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); + r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); + if (r < 0) +- log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); ++ log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r)); + } + + if (mask & CGROUP_DEVICE) { +-- +1.8.1.4 + diff --git a/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch b/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch new file mode 100644 index 00000000..9b103930 --- /dev/null +++ b/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch @@ -0,0 +1,46 @@ +From bebbf30ef61e4cbc782731e48ad67613aab38ec6 Mon Sep 17 00:00:00 2001 +From: Gao feng +Date: Fri, 13 Sep 2013 14:43:04 +0800 +Subject: [PATCH 3/7] cgroup: fix incorrectly setting memory cgroup + +If the memory_limit of unit is -1, we should write "-1" +to the file memory.limit_in_bytes. not the (unit64_t) -1. + +otherwise the memory.limit_in_bytes will be set to zero. +--- + src/core/cgroup.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/src/core/cgroup.c b/src/core/cgroup.c +index aee93ba..244baff 100644 +--- a/src/core/cgroup.c ++++ b/src/core/cgroup.c +@@ -257,14 +257,21 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha + + if (mask & CGROUP_MEMORY) { + char buf[DECIMAL_STR_MAX(uint64_t) + 1]; ++ if (c->memory_limit != (uint64_t) -1) { ++ sprintf(buf, "%" PRIu64 "\n", c->memory_limit); ++ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf); ++ } else ++ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", "-1"); + +- sprintf(buf, "%" PRIu64 "\n", c->memory_limit); +- r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf); + if (r < 0) + log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); + +- sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); +- r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); ++ if (c->memory_soft_limit != (uint64_t) -1) { ++ sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); ++ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); ++ } else ++ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", "-1"); ++ + if (r < 0) + log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r)); + } +-- +1.8.1.4 + diff --git a/0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch b/0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch new file mode 100644 index 00000000..b90fbadc --- /dev/null +++ b/0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch @@ -0,0 +1,25 @@ +From 0465a409e0a3725b44b0801641a7497e2125e59e Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 13 Sep 2013 14:12:55 +0200 +Subject: [PATCH 4/7] random-seed: we should return errno of failed loop_write + +--- + src/random-seed/random-seed.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/random-seed/random-seed.c b/src/random-seed/random-seed.c +index 4776c07..afbd500 100644 +--- a/src/random-seed/random-seed.c ++++ b/src/random-seed/random-seed.c +@@ -157,7 +157,7 @@ int main(int argc, char *argv[]) { + r = loop_write(seed_fd, buf, (size_t) k, false); + if (r <= 0) { + log_error("Failed to write new random seed file: %s", r < 0 ? strerror(-r) : "short write"); +- r = k == 0 ? -EIO : (int) k; ++ r = r == 0 ? -EIO : r; + } + } + +-- +1.8.1.4 + diff --git a/0005-core-cgroup-first-print-then-free.patch b/0005-core-cgroup-first-print-then-free.patch new file mode 100644 index 00000000..5aac9a86 --- /dev/null +++ b/0005-core-cgroup-first-print-then-free.patch @@ -0,0 +1,26 @@ +From fa7341808def8efb736747299374745ae059f398 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 13 Sep 2013 14:31:17 +0200 +Subject: [PATCH 5/7] core/cgroup: first print then free + +--- + src/core/cgroup.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/cgroup.c b/src/core/cgroup.c +index 244baff..1f41efc 100644 +--- a/src/core/cgroup.c ++++ b/src/core/cgroup.c +@@ -402,8 +402,8 @@ static int unit_create_cgroups(Unit *u, CGroupControllerMask mask) { + is_in_hash = true; + + if (r < 0) { +- free(path); + log_error("cgroup %s exists already: %s", path, strerror(-r)); ++ free(path); + return r; + } + +-- +1.8.1.4 + diff --git a/0006-swap-fix-reverse-dependencies.patch b/0006-swap-fix-reverse-dependencies.patch new file mode 100644 index 00000000..4582c34f --- /dev/null +++ b/0006-swap-fix-reverse-dependencies.patch @@ -0,0 +1,30 @@ +From dec37dc9e875695c09cfc1ec5e55b5f68eaa39f4 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 13 Sep 2013 14:46:18 +0200 +Subject: [PATCH 6/7] swap: fix reverse dependencies + +Make sure swap.target correctly requires/wants the swap units. + +This fixes https://bugs.freedesktop.org/show_bug.cgi?id=69291. + +Reported-by: Hussam Al-Tayeb +--- + src/core/swap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/swap.c b/src/core/swap.c +index 57d15eb..3950860 100644 +--- a/src/core/swap.c ++++ b/src/core/swap.c +@@ -220,7 +220,7 @@ static int swap_add_default_dependencies(Swap *s) { + } + + if (!noauto) { +- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, (nofail ? UNIT_WANTED_BY : UNIT_REQUIRED_BY), ++ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES), + SPECIAL_SWAP_TARGET, NULL, true); + if (r < 0) + return r; +-- +1.8.1.4 + diff --git a/0007-libudev-fix-move_later-comparison.patch b/0007-libudev-fix-move_later-comparison.patch new file mode 100644 index 00000000..e1e4d002 --- /dev/null +++ b/0007-libudev-fix-move_later-comparison.patch @@ -0,0 +1,27 @@ +From f90d045c9168a55bb22eef6fe8756b6a6d2c1e53 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 13 Sep 2013 14:12:54 +0200 +Subject: [PATCH 7/7] libudev: fix move_later comparison + +At the beginning move_later is set to -1, but it is set to different +value only if expression !move_later is true. +--- + src/libudev/libudev-enumerate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c +index bc1e37d..8146f27 100644 +--- a/src/libudev/libudev-enumerate.c ++++ b/src/libudev/libudev-enumerate.c +@@ -300,7 +300,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume + /* skip to be delayed devices, and move the to + * the point where the prefix changes. We can + * only move one item at a time. */ +- if (!move_later) { ++ if (move_later == -1) { + move_later_prefix = devices_delay_later(udev_enumerate->udev, entry->syspath); + + if (move_later_prefix > 0) { +-- +1.8.1.4 + diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch new file mode 100644 index 00000000..3d252dc1 --- /dev/null +++ b/systemd-dbus-system-bus-address.patch @@ -0,0 +1,11 @@ +--- systemd-207.orig/src/core/dbus.c ++++ systemd-207/src/core/dbus.c +@@ -50,7 +50,7 @@ + #define CONNECTIONS_MAX 512 + + /* Well-known address (http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-types) */ +-#define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" ++#define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=/run/dbus/system_bus_socket" + /* Only used as a fallback */ + #define DBUS_SESSION_BUS_DEFAULT_ADDRESS "autolaunch:" + diff --git a/systemd-mini.changes b/systemd-mini.changes index 181a4e90..70468f80 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org + +- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch + missing important check on return value. +- 0002-cgroup-correct-the-log-information.patch fix misleading + log information. +- 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix + setting memory cgroup +- 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch + should fail if write fails. +- 0005-core-cgroup-first-print-then-free.patch use-after-free + will trigger if there is an error condition. +- 0006-swap-fix-reverse-dependencies.patch reported in + opensuse-factory list, topic "swap isn't activated" +- 0007-libudev-fix-move_later-comparison.patch libudev + invalid usage of "move_later". + +------------------------------------------------------------------- +Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org + +- while testing this new release I get in the logs ocassionally + at boot "systemd[1]: Failed to open private bus connection: + Failed to connect to socket /var/run/dbus/system_bus_socket: + No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + is defined to /var/run/dbus/system_bus_socket instead of + /run/dbus/system_bus_socket and that does not fly when /var/run + is not yet available. (systemd-dbus-system-bus-address.patch) + ------------------------------------------------------------------- Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 23683aa5..eb7c8042 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -170,6 +170,21 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run +Patch47: systemd-dbus-system-bus-address.patch + +# PATCH-FIX-UPSTREAM 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -- r must be set to the return value of previous call. +Patch48: 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch +# PATCH-FIX-UPSTREAM 0002-cgroup-correct-the-log-information.patch -- fix misleading log information. +Patch49: 0002-cgroup-correct-the-log-information.patch +# PATCH-FIX-UPSTREAM 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -- memory cgroup setting is wrong. +Patch50: 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch +# PATCH-FIX-UPSTREAM 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -- systemd-random-seed-load should fail if write fails. +Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch +# PATCH-FIX-UPSTREAM 0005-core-cgroup-first-print-then-free.patch -- fix use after free +Patch52: 0005-core-cgroup-first-print-then-free.patch +# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly +Patch53: 0006-swap-fix-reverse-dependencies.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -186,6 +201,8 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-UPSTREAM libudev: fix move_later comparison +Patch1009: 0007-libudev-fix-move_later-comparison.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -414,6 +431,13 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 +%patch51 -p1 +%patch52 -p1 +%patch53 -p1 # udev patches %patch1001 -p1 @@ -426,6 +450,7 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif +%patch1009 -p1 %build autoreconf -fiv diff --git a/systemd.changes b/systemd.changes index 181a4e90..70468f80 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org + +- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch + missing important check on return value. +- 0002-cgroup-correct-the-log-information.patch fix misleading + log information. +- 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix + setting memory cgroup +- 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch + should fail if write fails. +- 0005-core-cgroup-first-print-then-free.patch use-after-free + will trigger if there is an error condition. +- 0006-swap-fix-reverse-dependencies.patch reported in + opensuse-factory list, topic "swap isn't activated" +- 0007-libudev-fix-move_later-comparison.patch libudev + invalid usage of "move_later". + +------------------------------------------------------------------- +Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org + +- while testing this new release I get in the logs ocassionally + at boot "systemd[1]: Failed to open private bus connection: + Failed to connect to socket /var/run/dbus/system_bus_socket: + No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + is defined to /var/run/dbus/system_bus_socket instead of + /run/dbus/system_bus_socket and that does not fly when /var/run + is not yet available. (systemd-dbus-system-bus-address.patch) + ------------------------------------------------------------------- Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 16f46947..e34e62f7 100644 --- a/systemd.spec +++ b/systemd.spec @@ -165,6 +165,21 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run +Patch47: systemd-dbus-system-bus-address.patch + +# PATCH-FIX-UPSTREAM 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -- r must be set to the return value of previous call. +Patch48: 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch +# PATCH-FIX-UPSTREAM 0002-cgroup-correct-the-log-information.patch -- fix misleading log information. +Patch49: 0002-cgroup-correct-the-log-information.patch +# PATCH-FIX-UPSTREAM 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -- memory cgroup setting is wrong. +Patch50: 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch +# PATCH-FIX-UPSTREAM 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -- systemd-random-seed-load should fail if write fails. +Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch +# PATCH-FIX-UPSTREAM 0005-core-cgroup-first-print-then-free.patch -- fix use after free +Patch52: 0005-core-cgroup-first-print-then-free.patch +# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly +Patch53: 0006-swap-fix-reverse-dependencies.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -181,6 +196,8 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-UPSTREAM libudev: fix move_later comparison +Patch1009: 0007-libudev-fix-move_later-comparison.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -409,6 +426,13 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 +%patch51 -p1 +%patch52 -p1 +%patch53 -p1 # udev patches %patch1001 -p1 @@ -421,6 +445,7 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif +%patch1009 -p1 %build autoreconf -fiv From 4ca16fb5680e90b68eb0ad6ec176fff41ecf1e271ed8240f1b155b09dce7e519 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 17 Sep 2013 13:04:22 +0000 Subject: [PATCH 153/221] Accepting request 199295 from Base:System - 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fixes the swap unit problem mentioned in previous commit & the opensuse-factory mailing list. - 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fixes the swap unit problem mentioned in previous commit & the opensuse-factory mailing list. (forwarded request 199286 from elvigia) OBS-URL: https://build.opensuse.org/request/show/199295 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=157 --- ...-.wants-symlink-to-auto-swap-devices.patch | 90 +++++++++++++++++++ systemd-mini.changes | 7 ++ systemd-mini.spec | 3 + systemd.changes | 7 ++ systemd.spec | 3 + 5 files changed, 110 insertions(+) create mode 100644 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch diff --git a/0008-swap-create-.wants-symlink-to-auto-swap-devices.patch b/0008-swap-create-.wants-symlink-to-auto-swap-devices.patch new file mode 100644 index 00000000..a81842b9 --- /dev/null +++ b/0008-swap-create-.wants-symlink-to-auto-swap-devices.patch @@ -0,0 +1,90 @@ +From 9981460a8f2d5587fef5216d556b5fb502281be6 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 16 Sep 2013 01:08:32 +0200 +Subject: [PATCH 8/8] swap: create .wants symlink to 'auto' swap devices + +As we load unit files lazily, we need to make sure something pulls in swap +units that should be started automatically, otherwise the default dependencies +will never be applied. + +This partially reinstates code removed in +commit 64347fc2b983f33e7efb0fd2bb44e133fb9f30f4. + +Also don't order swap devices after swap.target when they are 'nofail'. +--- + src/core/swap.c | 8 ++++++-- + src/fstab-generator/fstab-generator.c | 18 ++++++++++++++++-- + 2 files changed, 22 insertions(+), 4 deletions(-) + +diff --git a/src/core/swap.c b/src/core/swap.c +index 3950860..76c7d45 100644 +--- a/src/core/swap.c ++++ b/src/core/swap.c +@@ -220,8 +220,12 @@ static int swap_add_default_dependencies(Swap *s) { + } + + if (!noauto) { +- r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES), +- SPECIAL_SWAP_TARGET, NULL, true); ++ if (nofail) ++ r = unit_add_dependency_by_name_inverse(UNIT(s), ++ UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); ++ else ++ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), ++ UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); + if (r < 0) + return r; + } +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index 6ebe8aa..b73dfa4 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -66,6 +66,7 @@ static int mount_find_pri(struct mntent *me, int *ret) { + static int add_swap(const char *what, struct mntent *me) { + _cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL, *device = NULL; + _cleanup_fclose_ FILE *f = NULL; ++ bool noauto; + int r, pri = -1; + + assert(what); +@@ -77,6 +78,8 @@ static int add_swap(const char *what, struct mntent *me) { + return pri; + } + ++ noauto = !!hasmntopt(me, "noauto"); ++ + name = unit_name_from_path(what, ".swap"); + if (!name) + return log_oom(); +@@ -97,8 +100,7 @@ static int add_swap(const char *what, struct mntent *me) { + fprintf(f, + "# Automatically generated by systemd-fstab-generator\n\n" + "[Unit]\n" +- "SourcePath=/etc/fstab\n" +- "\n" ++ "SourcePath=/etc/fstab\n\n" + "[Swap]\n" + "What=%s\n", + what); +@@ -114,6 +116,18 @@ static int add_swap(const char *what, struct mntent *me) { + return -errno; + } + ++ if (!noauto) { ++ lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL); ++ if (!lnk) ++ return log_oom(); ++ ++ mkdir_parents_label(lnk, 0755); ++ if (symlink(unit, lnk) < 0) { ++ log_error("Failed to create symlink %s: %m", lnk); ++ return -errno; ++ } ++ } ++ + return 0; + } + +-- +1.8.1.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 70468f80..fdbda224 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org + +- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch + really fixes the swap unit problem mentioned in previous + commit & the opensuse-factory mailing list. + ------------------------------------------------------------------- Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd-mini.spec b/systemd-mini.spec index eb7c8042..791d8bb4 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -185,6 +185,8 @@ Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch Patch52: 0005-core-cgroup-first-print-then-free.patch # PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly Patch53: 0006-swap-fix-reverse-dependencies.patch +# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units +Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -438,6 +440,7 @@ cp %{SOURCE7} m4/ %patch51 -p1 %patch52 -p1 %patch53 -p1 +%patch54 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 70468f80..fdbda224 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org + +- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch + really fixes the swap unit problem mentioned in previous + commit & the opensuse-factory mailing list. + ------------------------------------------------------------------- Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd.spec b/systemd.spec index e34e62f7..59482e6c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -180,6 +180,8 @@ Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch Patch52: 0005-core-cgroup-first-print-then-free.patch # PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly Patch53: 0006-swap-fix-reverse-dependencies.patch +# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units +Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -433,6 +435,7 @@ cp %{SOURCE7} m4/ %patch51 -p1 %patch52 -p1 %patch53 -p1 +%patch54 -p1 # udev patches %patch1001 -p1 From 5a4cb2059c1ff2d42e8e96e540c0d9c0b011e90c01f0f1f331f09f37e6a3d78f Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 23 Sep 2013 09:04:04 +0000 Subject: [PATCH 154/221] Accepting request 199760 from Base:System - Move symlink migration trigger to post (bnc#821800). -add CVE-2013-4288 to changes (forwarded request 199741 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/199760 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=159 --- ...void-race-condition-in-scraping-proc.patch | 75 +++++++++++++++++++ ...ndle-boot-sysctl.conf-kernel_release.patch | 17 +++-- systemd-mini.changes | 33 ++++++++ systemd-mini.spec | 18 +++-- systemd.changes | 33 ++++++++ systemd.spec | 18 +++-- 6 files changed, 174 insertions(+), 20 deletions(-) create mode 100644 0009-polkit-Avoid-race-condition-in-scraping-proc.patch diff --git a/0009-polkit-Avoid-race-condition-in-scraping-proc.patch b/0009-polkit-Avoid-race-condition-in-scraping-proc.patch new file mode 100644 index 00000000..283c2e7a --- /dev/null +++ b/0009-polkit-Avoid-race-condition-in-scraping-proc.patch @@ -0,0 +1,75 @@ +From 851d079d0172539bf904abb58edd80d7cfe487ca Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Thu, 22 Aug 2013 13:55:21 -0400 +Subject: [PATCH 9/9] polkit: Avoid race condition in scraping /proc + +If a calling process execve()s a setuid program, it can appear to be +uid 0. Since we're receiving requests over DBus, avoid this by simply +passing system-bus-name as a subject. +--- + src/shared/polkit.c | 31 +++++-------------------------- + 1 file changed, 5 insertions(+), 26 deletions(-) + +diff --git a/src/shared/polkit.c b/src/shared/polkit.c +index cea7074..1c5e9e3 100644 +--- a/src/shared/polkit.c ++++ b/src/shared/polkit.c +@@ -38,12 +38,8 @@ int verify_polkit( + + #ifdef ENABLE_POLKIT + DBusMessage *m = NULL, *reply = NULL; +- const char *unix_process = "unix-process", *pid = "pid", *starttime = "start-time", *cancel_id = ""; ++ const char *system_bus_name = "system-bus-name", *name = "name", *cancel_id = ""; + uint32_t flags = interactive ? 1 : 0; +- pid_t pid_raw; +- uint32_t pid_u32; +- unsigned long long starttime_raw; +- uint64_t starttime_u64; + DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant; + int r; + dbus_bool_t authorized = FALSE, challenge = FALSE; +@@ -68,14 +64,6 @@ int verify_polkit( + + #ifdef ENABLE_POLKIT + +- pid_raw = bus_get_unix_process_id(c, sender, error); +- if (pid_raw == 0) +- return -EINVAL; +- +- r = get_starttime_of_pid(pid_raw, &starttime_raw); +- if (r < 0) +- return r; +- + m = dbus_message_new_method_call( + "org.freedesktop.PolicyKit1", + "/org/freedesktop/PolicyKit1/Authority", +@@ -86,22 +74,13 @@ int verify_polkit( + + dbus_message_iter_init_append(m, &iter_msg); + +- pid_u32 = (uint32_t) pid_raw; +- starttime_u64 = (uint64_t) starttime_raw; +- + if (!dbus_message_iter_open_container(&iter_msg, DBUS_TYPE_STRUCT, NULL, &iter_struct) || +- !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &unix_process) || ++ !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &system_bus_name) || + !dbus_message_iter_open_container(&iter_struct, DBUS_TYPE_ARRAY, "{sv}", &iter_array) || + !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || +- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &pid) || +- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "u", &iter_variant) || +- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT32, &pid_u32) || +- !dbus_message_iter_close_container(&iter_dict, &iter_variant) || +- !dbus_message_iter_close_container(&iter_array, &iter_dict) || +- !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || +- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &starttime) || +- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "t", &iter_variant) || +- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT64, &starttime_u64) || ++ !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &name) || ++ !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "s", &iter_variant) || ++ !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_STRING, &sender) || + !dbus_message_iter_close_container(&iter_dict, &iter_variant) || + !dbus_message_iter_close_container(&iter_array, &iter_dict) || + !dbus_message_iter_close_container(&iter_struct, &iter_array) || +-- +1.8.1.4 + diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 45f1ad52..3381072a 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -10,8 +10,10 @@ configuration), needed by openSUSE (bnc#809420). units/systemd-sysctl.service.in | 1 + 2 files changed, 9 insertions(+) ---- systemd-206.orig/src/sysctl/sysctl.c -+++ systemd-206/src/sysctl/sysctl.c +Index: systemd-207/src/sysctl/sysctl.c +=================================================================== +--- systemd-207.orig/src/sysctl/sysctl.c ++++ systemd-207/src/sysctl/sysctl.c @@ -26,6 +26,7 @@ #include #include @@ -20,7 +22,7 @@ configuration), needed by openSUSE (bnc#809420). #include "log.h" #include "strv.h" -@@ -297,6 +298,13 @@ int main(int argc, char *argv[]) { +@@ -299,6 +300,13 @@ int main(int argc, char *argv[]) { } else { _cleanup_strv_free_ char **files = NULL; char **f; @@ -34,13 +36,16 @@ configuration), needed by openSUSE (bnc#809420). r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); if (r < 0) { ---- systemd-206.orig/units/systemd-sysctl.service.in -+++ systemd-206/units/systemd-sysctl.service.in -@@ -20,6 +20,7 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys +Index: systemd-207/units/systemd-sysctl.service.in +=================================================================== +--- systemd-207.orig/units/systemd-sysctl.service.in ++++ systemd-207/units/systemd-sysctl.service.in +@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d ConditionDirectoryNotEmpty=|/etc/sysctl.d ConditionDirectoryNotEmpty=|/run/sysctl.d +ConditionPathExistsGlob=|/boot/sysctl.conf-* ++RequiresMountsFor=/boot [Service] Type=oneshot diff --git a/systemd-mini.changes b/systemd-mini.changes index fdbda224..3b0115a2 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,36 @@ +------------------------------------------------------------------- +Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com + +- Move symlink migration trigger to post (bnc#821800). + +------------------------------------------------------------------- +Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org + +- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch + VUL-0: polkit: process subject race condition [bnc#835827] + CVE-2013-4288 + +------------------------------------------------------------------- +Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org + +- Build with --disable-ima as the openSUSE kernel + does not support IMA (CONFIG_IMA is not set) + +------------------------------------------------------------------- +Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org + +- Build with --disable-smack as the openSUSE kernel + does not support smack (CONFIG_SECURITY_SMACK is not set) + +------------------------------------------------------------------- +Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com + +- Don't use a trigger to create symlink for sysctl.conf, always run + the test on %post (bnc#840864). +- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to + ensure /boot is mounted before reading /boot/sysctl.conf-* + (bnc#809420). + ------------------------------------------------------------------- Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd-mini.spec b/systemd-mini.spec index 791d8bb4..4cc75fb8 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -187,6 +187,8 @@ Patch52: 0005-core-cgroup-first-print-then-free.patch Patch53: 0006-swap-fix-reverse-dependencies.patch # PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch +# PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] +Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -441,6 +443,7 @@ cp %{SOURCE7} m4/ %patch52 -p1 %patch53 -p1 %patch54 -p1 +%patch55 -p1 # udev patches %patch1001 -p1 @@ -479,6 +482,8 @@ export V=1 --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ + --disable-smack \ + --disable-ima \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -651,19 +656,18 @@ if [ "$1" -eq 1 ]; then remote-fs.target >/dev/null 2>&1 || : fi -%triggerpostun -- systemd < 194 -# migrate any symlink which may refer to the old path -for f in $(find /etc/systemd/system -type l -xtype l); do - new_target="/usr$(readlink $f)" - [ -f "$new_target" ] && ln -s -f $new_target $f || : -done - # since v207 /etc/sysctl.conf is no longer parsed, however # backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : fi +# migrate any symlink which may refer to the old path +for f in $(find /etc/systemd/system -type l -xtype l); do + new_target="/usr$(readlink $f)" + [ -f "$new_target" ] && ln -s -f $new_target $f || : +done + %postun /sbin/ldconfig if [ $1 -ge 1 ]; then diff --git a/systemd.changes b/systemd.changes index fdbda224..3b0115a2 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,36 @@ +------------------------------------------------------------------- +Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com + +- Move symlink migration trigger to post (bnc#821800). + +------------------------------------------------------------------- +Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org + +- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch + VUL-0: polkit: process subject race condition [bnc#835827] + CVE-2013-4288 + +------------------------------------------------------------------- +Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org + +- Build with --disable-ima as the openSUSE kernel + does not support IMA (CONFIG_IMA is not set) + +------------------------------------------------------------------- +Wed Sep 18 23:40:27 UTC 2013 - crrodriguez@opensuse.org + +- Build with --disable-smack as the openSUSE kernel + does not support smack (CONFIG_SECURITY_SMACK is not set) + +------------------------------------------------------------------- +Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com + +- Don't use a trigger to create symlink for sysctl.conf, always run + the test on %post (bnc#840864). +- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to + ensure /boot is mounted before reading /boot/sysctl.conf-* + (bnc#809420). + ------------------------------------------------------------------- Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd.spec b/systemd.spec index 59482e6c..4243575b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -182,6 +182,8 @@ Patch52: 0005-core-cgroup-first-print-then-free.patch Patch53: 0006-swap-fix-reverse-dependencies.patch # PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch +# PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] +Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -436,6 +438,7 @@ cp %{SOURCE7} m4/ %patch52 -p1 %patch53 -p1 %patch54 -p1 +%patch55 -p1 # udev patches %patch1001 -p1 @@ -474,6 +477,8 @@ export V=1 --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ + --disable-smack \ + --disable-ima \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -646,19 +651,18 @@ if [ "$1" -eq 1 ]; then remote-fs.target >/dev/null 2>&1 || : fi -%triggerpostun -- systemd < 194 -# migrate any symlink which may refer to the old path -for f in $(find /etc/systemd/system -type l -xtype l); do - new_target="/usr$(readlink $f)" - [ -f "$new_target" ] && ln -s -f $new_target $f || : -done - # since v207 /etc/sysctl.conf is no longer parsed, however # backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : fi +# migrate any symlink which may refer to the old path +for f in $(find /etc/systemd/system -type l -xtype l); do + new_target="/usr$(readlink $f)" + [ -f "$new_target" ] && ln -s -f $new_target $f || : +done + %postun /sbin/ldconfig if [ $1 -ge 1 ]; then From 5ffd491394e5b96390fc4742f6285c5668f53bf41a248233ae53e6838c023217 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 26 Sep 2013 18:03:54 +0000 Subject: [PATCH 155/221] Accepting request 200302 from Base:System Resynced to Base:System to fix merge conflicts - Fix-timeout-when-stopping-Type-notify-service.patch Make sure MAINPID is watched when it becomes known (bnc#841544) (forwarded request 200219 from arvidjaar) OBS-URL: https://build.opensuse.org/request/show/200302 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=160 --- 0007-libudev-fix-move_later-comparison.patch | 13 ++- ...ut-when-stopping-Type-notify-service.patch | 84 +++++++++++++++++++ systemd-mini.changes | 6 ++ systemd-mini.spec | 4 +- systemd.changes | 12 +++ systemd.spec | 7 +- 6 files changed, 114 insertions(+), 12 deletions(-) create mode 100644 Fix-timeout-when-stopping-Type-notify-service.patch diff --git a/0007-libudev-fix-move_later-comparison.patch b/0007-libudev-fix-move_later-comparison.patch index e1e4d002..aa792e0c 100644 --- a/0007-libudev-fix-move_later-comparison.patch +++ b/0007-libudev-fix-move_later-comparison.patch @@ -9,11 +9,11 @@ value only if expression !move_later is true. src/libudev/libudev-enumerate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c -index bc1e37d..8146f27 100644 ---- a/src/libudev/libudev-enumerate.c -+++ b/src/libudev/libudev-enumerate.c -@@ -300,7 +300,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume +Index: systemd-207/src/libudev/libudev-enumerate.c +=================================================================== +--- systemd-207.orig/src/libudev/libudev-enumerate.c ++++ systemd-207/src/libudev/libudev-enumerate.c +@@ -300,7 +300,7 @@ _public_ struct udev_list_entry *udev_en /* skip to be delayed devices, and move the to * the point where the prefix changes. We can * only move one item at a time. */ @@ -22,6 +22,3 @@ index bc1e37d..8146f27 100644 move_later_prefix = devices_delay_later(udev_enumerate->udev, entry->syspath); if (move_later_prefix > 0) { --- -1.8.1.4 - diff --git a/Fix-timeout-when-stopping-Type-notify-service.patch b/Fix-timeout-when-stopping-Type-notify-service.patch new file mode 100644 index 00000000..3d03d380 --- /dev/null +++ b/Fix-timeout-when-stopping-Type-notify-service.patch @@ -0,0 +1,84 @@ +Delivered-To: arvidjaar@gmail.com +Received: by 10.216.219.133 with SMTP id m5csp322525wep; + Fri, 20 Sep 2013 13:55:10 -0700 (PDT) +X-Received: by 10.66.171.204 with SMTP id aw12mr10856961pac.7.1379710509504; + Fri, 20 Sep 2013 13:55:09 -0700 (PDT) +Return-Path: +Received: from gabe.freedesktop.org (gabe.freedesktop.org. [131.252.210.177]) + by mx.google.com with ESMTP id mj9si13683512pab.248.1969.12.31.16.00.00; + Fri, 20 Sep 2013 13:55:09 -0700 (PDT) +Received-SPF: pass (google.com: domain of systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org designates 131.252.210.177 as permitted sender) client-ip=131.252.210.177; +Authentication-Results: mx.google.com; + spf=pass (google.com: domain of systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mail=systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org +Received: from gabe.freedesktop.org (localhost [127.0.0.1]) + by gabe.freedesktop.org (Postfix) with ESMTP id D7BD0E5F24 + for ; Fri, 20 Sep 2013 13:55:06 -0700 (PDT) +X-Original-To: systemd-devel@lists.freedesktop.org +Delivered-To: systemd-devel@lists.freedesktop.org +Received: from mail.jjacky.com (unknown [23.29.69.116]) + by gabe.freedesktop.org (Postfix) with ESMTP id E3B2FE5DF6 + for ; + Fri, 20 Sep 2013 13:54:34 -0700 (PDT) +Received: from arch.local (arch.tks [10.42.0.6]) + by mail.jjacky.com (Postfix) with ESMTP id 2F68E18084A; + Fri, 20 Sep 2013 22:54:11 +0200 (CEST) +From: Olivier Brunel +To: systemd-devel@lists.freedesktop.org +Date: Fri, 20 Sep 2013 22:53:52 +0200 +Message-Id: <1379710432-4195-1-git-send-email-jjk@jjacky.com> +X-Mailer: git-send-email 1.8.4 +Subject: [systemd-devel] [PATCH] Fix timeout when stopping Type=notify + service +X-BeenThere: systemd-devel@lists.freedesktop.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: systemd Development Mailing List +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" +Content-Transfer-Encoding: 7bit +Sender: systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org +Errors-To: systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org + +Since 41efeaec a call to service_unwatch_main_pid() is done from +service_set_main_pid(), which is called upon receiving message MAINPID= + +This had the side effect of not watching pid anymore, and would result in a +useless timeout when stopping the service, as the unit wouldn't be identified +from the pid, so not marked stopped which would result in systemd thinking this +was a timeout. +--- +I'm not exactly familiar with systemd's internals, so this might not be the +correct way to fix this, please correct me if it isn't. + + src/core/service.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +Index: systemd-207/src/core/service.c +=================================================================== +--- systemd-207.orig/src/core/service.c ++++ systemd-207/src/core/service.c +@@ -3461,9 +3461,17 @@ static void service_notify_message(Unit + log_warning_unit(u->id, + "Failed to parse notification message %s", e); + else { ++ int r; ++ + log_debug_unit(u->id, + "%s: got %s", u->id, e); + service_set_main_pid(s, pid); ++ r = unit_watch_pid(u, pid); ++ if (r < 0) ++ /* FIXME: we need to do something here */ ++ log_warning_unit(u->id, ++ "Failed to watch PID %lu from service %s", ++ (unsigned long) pid, u->id); + } + } + diff --git a/systemd-mini.changes b/systemd-mini.changes index 3b0115a2..cb75b260 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com + +- Remove output and error redirection to /dev/null in install + script, it might help tracing pam related issue (bnc#841573). + ------------------------------------------------------------------- Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 4cc75fb8..0d4786bd 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -631,7 +631,7 @@ getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post -/usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : +/usr/sbin/pam-config -a --systemd || : /sbin/ldconfig /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : @@ -675,7 +675,7 @@ if [ $1 -ge 1 ]; then /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi if [ $1 -eq 0 ]; then - /usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || : + /usr/sbin/pam-config -d --systemd || : fi %preun diff --git a/systemd.changes b/systemd.changes index 3b0115a2..83f80aac 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com + +- Fix-timeout-when-stopping-Type-notify-service.patch + Make sure MAINPID is watched when it becomes known (bnc#841544) + +------------------------------------------------------------------- +Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com + +- Remove output and error redirection to /dev/null in install + script, it might help tracing pam related issue (bnc#841573). + ------------------------------------------------------------------- Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 4243575b..cddb2f25 100644 --- a/systemd.spec +++ b/systemd.spec @@ -184,6 +184,8 @@ Patch53: 0006-swap-fix-reverse-dependencies.patch Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch # PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch +# PATCH-FIX-UPSTREAM Fix-timeout-when-stopping-Type-notify-service.patch -- watch MAINPID after it becomed known [bnc#841544] +Patch56: Fix-timeout-when-stopping-Type-notify-service.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -439,6 +441,7 @@ cp %{SOURCE7} m4/ %patch53 -p1 %patch54 -p1 %patch55 -p1 +%patch56 -p1 # udev patches %patch1001 -p1 @@ -626,7 +629,7 @@ getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post -/usr/sbin/pam-config -a --systemd >/dev/null 2>&1 || : +/usr/sbin/pam-config -a --systemd || : /sbin/ldconfig /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : @@ -670,7 +673,7 @@ if [ $1 -ge 1 ]; then /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi if [ $1 -eq 0 ]; then - /usr/sbin/pam-config -d --systemd >/dev/null 2>&1 || : + /usr/sbin/pam-config -d --systemd || : fi %preun From e05d3e3c6d8e21e0d6d3d69e7fdb43ca3fa967aafdf277c4bad196f4eca8ea2d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 29 Sep 2013 15:54:00 +0000 Subject: [PATCH 156/221] Accepting request 201213 from Base:System - Update use-usr-sbin-sulogin-for-emergency-service.patch to apply to all services using sulogin and remove generated files from upstream tarball (bnc#841398). (forwarded request 201156 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/201213 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=161 --- systemd-mini.changes | 13 ++++++++ systemd-mini.spec | 6 ++++ systemd.changes | 7 ++++ systemd.spec | 3 ++ ...r-sbin-sulogin-for-emergency-service.patch | 32 +++++++++++++++++-- 5 files changed, 59 insertions(+), 2 deletions(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index cb75b260..08f75766 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com + +- Update use-usr-sbin-sulogin-for-emergency-service.patch to apply + to all services using sulogin and remove generated files from + upstream tarball (bnc#841398). + +------------------------------------------------------------------- +Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com + +- Fix-timeout-when-stopping-Type-notify-service.patch + Make sure MAINPID is watched when it becomes known (bnc#841544) + ------------------------------------------------------------------- Mon Sep 23 13:11:08 CEST 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 0d4786bd..3cb60d4a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -189,6 +189,8 @@ Patch53: 0006-swap-fix-reverse-dependencies.patch Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch # PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch +# PATCH-FIX-UPSTREAM Fix-timeout-when-stopping-Type-notify-service.patch -- watch MAINPID after it becomed known [bnc#841544] +Patch56: Fix-timeout-when-stopping-Type-notify-service.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -444,6 +446,7 @@ cp %{SOURCE7} m4/ %patch53 -p1 %patch54 -p1 %patch55 -p1 +%patch56 -p1 # udev patches %patch1001 -p1 @@ -458,6 +461,9 @@ cp %{SOURCE7} m4/ %endif %patch1009 -p1 +# ensure generate files are removed +rm -f units/emergency.service + %build autoreconf -fiv # prevent pre-generated and distributed files from re-building diff --git a/systemd.changes b/systemd.changes index 83f80aac..08f75766 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com + +- Update use-usr-sbin-sulogin-for-emergency-service.patch to apply + to all services using sulogin and remove generated files from + upstream tarball (bnc#841398). + ------------------------------------------------------------------- Mon Sep 23 13:09:06 UTC 2013 - arvidjaar@gmail.com diff --git a/systemd.spec b/systemd.spec index cddb2f25..80890da5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -456,6 +456,9 @@ cp %{SOURCE7} m4/ %endif %patch1009 -p1 +# ensure generate files are removed +rm -f units/emergency.service + %build autoreconf -fiv # prevent pre-generated and distributed files from re-building diff --git a/use-usr-sbin-sulogin-for-emergency-service.patch b/use-usr-sbin-sulogin-for-emergency-service.patch index 9dfa4970..e29f4b28 100644 --- a/use-usr-sbin-sulogin-for-emergency-service.patch +++ b/use-usr-sbin-sulogin-for-emergency-service.patch @@ -3,8 +3,10 @@ Subject: use /usr/sbin/sulogin in emergency service In current Factory sulogin is in /usr/sbin which makes it impossible to enter emergency service. ---- systemd-206.orig/units/emergency.service.in -+++ systemd-206/units/emergency.service.in +Index: systemd-207/units/emergency.service.in +=================================================================== +--- systemd-207.orig/units/emergency.service.in ++++ systemd-207/units/emergency.service.in @@ -17,7 +17,7 @@ Environment=HOME=/root WorkingDirectory=/root ExecStartPre=-/bin/plymouth quit @@ -14,3 +16,29 @@ to enter emergency service. ExecStopPost=@SYSTEMCTL@ --fail --no-block default Type=idle StandardInput=tty-force +Index: systemd-207/units/console-shell.service.m4.in +=================================================================== +--- systemd-207.orig/units/console-shell.service.m4.in ++++ systemd-207/units/console-shell.service.m4.in +@@ -17,7 +17,7 @@ Before=getty.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ poweroff + Type=idle + StandardInput=tty-force +Index: systemd-207/units/rescue.service.m4.in +=================================================================== +--- systemd-207.orig/units/rescue.service.m4.in ++++ systemd-207/units/rescue.service.m4.in +@@ -18,7 +18,7 @@ Environment=HOME=/root + WorkingDirectory=/root + ExecStartPre=-/bin/plymouth quit + ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ --fail --no-block default + Type=idle + StandardInput=tty-force From f037c9430fe4c35432c49e97af8176c4bf3fbe23f9696fa279814f67cf1e6ce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 4 Oct 2013 14:07:46 +0000 Subject: [PATCH 157/221] Accepting request 202147 from Base:System - Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch: fix acpi memleak. - Add 0002-fix-lingering-references-to-var-lib-backlight-random.patch: fix invalid path in documentation. - Add 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch: fix invalid memory free. - Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix name mangling for sysv units. - Add 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch: fix OOM handling. - Add 0006-journald-add-missing-error-check.patch: add missing error check. - Add 0007-bus-fix-potentially-uninitialized-memory-access.patch: fix uninitialized memory access. - Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix return value. - Add 0009-modules-load-fix-error-handling.patch: fix error handling. - Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch: fix incorrect memory access. - Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch: fix incorrect memory access. - Add 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch: fix invalid pointer. - Add 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch: (forwarded request 202117 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/202147 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=162 --- ...ix-memory-leak-in-acpi_get_boot_usec.patch | 25 +++ ...-missing-setting-of-variable-s-value.patch | 27 --- ...mote-mounts-from-mountinfo-before-re.patch | 41 ++++ 0002-cgroup-correct-the-log-information.patch | 26 --- ...ferences-to-var-lib-backlight-random.patch | 55 +++++ ...e-never-free-an-uninitialized-pointe.patch | 25 +++ ...ix-incorrectly-setting-memory-cgroup.patch | 46 ---- ...hould-return-errno-of-failed-loop_wr.patch | 25 --- ...ctl-fix-name-mangling-for-sysv-units.patch | 134 ++++++++++++ 0005-core-cgroup-first-print-then-free.patch | 26 --- ...OM-handling-when-parsing-mount-optio.patch | 48 +++++ 0006-journald-add-missing-error-check.patch | 25 +++ 0006-swap-fix-reverse-dependencies.patch | 30 --- ...entially-uninitialized-memory-access.patch | 34 +++ 0007-libudev-fix-move_later-comparison.patch | 24 --- ...-fix-return-value-of-dispatch_rqueue.patch | 30 +++ ...-.wants-symlink-to-auto-swap-devices.patch | 90 -------- 0009-modules-load-fix-error-handling.patch | 27 +++ ...void-race-condition-in-scraping-proc.patch | 75 ------- ...all-qsort-on-potentially-NULL-arrays.patch | 26 +++ ...ccess-potentially-NULL-string-arrays.patch | 27 +++ ...per-function-pointer-to-mkdir_safe_i.patch | 26 +++ ...ude-setgid-perms-for-run-log-journal.patch | 26 +++ ...ut-when-stopping-Type-notify-service.patch | 84 -------- ...pport-for-SysV-scripts-for-the-early.patch | 20 +- after-local.service | 18 ++ ...etup-after-md-dmraid-lvm-are-started.patch | 16 +- ...STEMCTL_OPTIONS-environment-variable.patch | 12 +- ...lang-value-in-etc-sysconfig-language.patch | 16 +- ...script-heuristic-and-add-new-LSB-hea.patch | 20 +- ...ndle-boot-sysctl.conf-kernel_release.patch | 2 +- systemd-207.tar.xz | 3 - systemd-208.tar.xz | 3 + systemd-mini.changes | 200 ++++++++++++++---- systemd-mini.spec | 84 +++++--- systemd.changes | 200 ++++++++++++++---- systemd.spec | 84 +++++--- 37 files changed, 1052 insertions(+), 628 deletions(-) create mode 100644 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch delete mode 100644 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch create mode 100644 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch delete mode 100644 0002-cgroup-correct-the-log-information.patch create mode 100644 0002-fix-lingering-references-to-var-lib-backlight-random.patch create mode 100644 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch delete mode 100644 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch delete mode 100644 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch create mode 100644 0004-systemctl-fix-name-mangling-for-sysv-units.patch delete mode 100644 0005-core-cgroup-first-print-then-free.patch create mode 100644 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch create mode 100644 0006-journald-add-missing-error-check.patch delete mode 100644 0006-swap-fix-reverse-dependencies.patch create mode 100644 0007-bus-fix-potentially-uninitialized-memory-access.patch delete mode 100644 0007-libudev-fix-move_later-comparison.patch create mode 100644 0008-dbus-fix-return-value-of-dispatch_rqueue.patch delete mode 100644 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch create mode 100644 0009-modules-load-fix-error-handling.patch delete mode 100644 0009-polkit-Avoid-race-condition-in-scraping-proc.patch create mode 100644 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch create mode 100644 0011-strv-don-t-access-potentially-NULL-string-arrays.patch create mode 100644 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch create mode 100644 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch delete mode 100644 Fix-timeout-when-stopping-Type-notify-service.patch create mode 100644 after-local.service delete mode 100644 systemd-207.tar.xz create mode 100644 systemd-208.tar.xz diff --git a/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch b/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch new file mode 100644 index 00000000..312a5616 --- /dev/null +++ b/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch @@ -0,0 +1,25 @@ +From 7e326fb5b2c1a839bbe7f879c7efa2af2ed33420 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 2 Oct 2013 13:39:49 +0200 +Subject: [PATCH 01/15] acpi-fptd: fix memory leak in acpi_get_boot_usec + +--- + src/shared/acpi-fpdt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c +index b094f34..a7c83ed 100644 +--- a/src/shared/acpi-fpdt.c ++++ b/src/shared/acpi-fpdt.c +@@ -81,7 +81,7 @@ struct acpi_fpdt_boot { + }; + + int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { +- char *buf; ++ _cleanup_free_ char *buf; + struct acpi_table_header *tbl; + size_t l; + struct acpi_fpdt_header *rec; +-- +1.8.4 + diff --git a/0001-cgroup-add-the-missing-setting-of-variable-s-value.patch b/0001-cgroup-add-the-missing-setting-of-variable-s-value.patch deleted file mode 100644 index 4883baed..00000000 --- a/0001-cgroup-add-the-missing-setting-of-variable-s-value.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 8d7b5ca0a6cdab3e400ef084fa8a05d581d59b55 Mon Sep 17 00:00:00 2001 -From: Gao feng -Date: Fri, 13 Sep 2013 11:17:05 +0800 -Subject: [PATCH 1/7] cgroup: add the missing setting of variable's value - -set the value of variable "r" to the return value -of cg_set_attribute. ---- - src/core/cgroup.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/cgroup.c b/src/core/cgroup.c -index 3eeb475..fba0b2f 100644 ---- a/src/core/cgroup.c -+++ b/src/core/cgroup.c -@@ -264,7 +264,7 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha - log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); - - sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); -- cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); -+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); - if (r < 0) - log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); - } --- -1.8.1.4 - diff --git a/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch b/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch new file mode 100644 index 00000000..254212c5 --- /dev/null +++ b/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch @@ -0,0 +1,41 @@ +From 77009452cfd25208509b14ea985e81fdf9f7d40e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 3 Oct 2013 22:15:08 -0400 +Subject: [PATCH] systemd: order remote mounts from mountinfo before + remote-fs.target + +Usually the network is stopped before filesystems are umounted. +Ordering network filesystems before remote-fs.target means that their +unmounting will be performed earlier, and can terminate sucessfully. + +https://bugs.freedesktop.org/show_bug.cgi?id=70002 +--- + src/core/mount.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index 3d46557..93bfa99 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -1440,6 +1440,9 @@ static int mount_add_one( + + u = manager_get_unit(m, e); + if (!u) { ++ const char* const target = ++ fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; ++ + delete = true; + + u = unit_new(m, sizeof(Mount)); +@@ -1466,7 +1469,7 @@ static int mount_add_one( + goto fail; + } + +- r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_LOCAL_FS_TARGET, NULL, true); ++ r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); + if (r < 0) + goto fail; + +-- +1.8.4 + diff --git a/0002-cgroup-correct-the-log-information.patch b/0002-cgroup-correct-the-log-information.patch deleted file mode 100644 index 648b5c67..00000000 --- a/0002-cgroup-correct-the-log-information.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ebab7f4535a077eb8168cb8f3a9fe899e56aba17 Mon Sep 17 00:00:00 2001 -From: Gao feng -Date: Fri, 13 Sep 2013 11:17:06 +0800 -Subject: [PATCH 2/7] cgroup: correct the log information - -it should be memory.soft_limit_in_bytes. ---- - src/core/cgroup.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/cgroup.c b/src/core/cgroup.c -index fba0b2f..aee93ba 100644 ---- a/src/core/cgroup.c -+++ b/src/core/cgroup.c -@@ -266,7 +266,7 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha - sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); - r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); - if (r < 0) -- log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); -+ log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r)); - } - - if (mask & CGROUP_DEVICE) { --- -1.8.1.4 - diff --git a/0002-fix-lingering-references-to-var-lib-backlight-random.patch b/0002-fix-lingering-references-to-var-lib-backlight-random.patch new file mode 100644 index 00000000..6ce0c230 --- /dev/null +++ b/0002-fix-lingering-references-to-var-lib-backlight-random.patch @@ -0,0 +1,55 @@ +From 6c8c92fef72cf6a7ef7109a424ef82dbdc4f6952 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Wed, 2 Oct 2013 07:46:24 -0400 +Subject: [PATCH 02/15] fix lingering references to + /var/lib/{backlight,random-seed} + +This should have been part of ef5bfcf668e6029faa78534dfe. +--- + man/systemd-backlight@.service.xml | 2 +- + man/systemd-random-seed.service.xml | 2 +- + units/systemd-backlight@.service.in | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/man/systemd-backlight@.service.xml b/man/systemd-backlight@.service.xml +index 2b73625..4318964 100644 +--- a/man/systemd-backlight@.service.xml ++++ b/man/systemd-backlight@.service.xml +@@ -58,7 +58,7 @@ + is a service that restores the display backlight + brightness at early-boot and saves it at shutdown. On + disk, the backlight brightness is stored in +- /var/lib/backlight/. Note that by ++ /var/lib/systemd/backlight/. Note that by + default, only firmware backlight devices are + saved/restored. + +diff --git a/man/systemd-random-seed.service.xml b/man/systemd-random-seed.service.xml +index 8cd14b7..e5cd037 100644 +--- a/man/systemd-random-seed.service.xml ++++ b/man/systemd-random-seed.service.xml +@@ -61,7 +61,7 @@ + for details. Saving/restoring the random seed across + boots increases the amount of available entropy early + at boot. On disk the random seed is stored in +- /var/lib/random-seed. ++ /var/lib/systemd/random-seed. + + + +diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in +index b0e75db..5caa5d5 100644 +--- a/units/systemd-backlight@.service.in ++++ b/units/systemd-backlight@.service.in +@@ -9,7 +9,7 @@ + Description=Load/Save Screen Backlight Brightness of %I + Documentation=man:systemd-backlight@.service(8) + DefaultDependencies=no +-RequiresMountsFor=/var/lib/backlight ++RequiresMountsFor=/var/lib/systemd/backlight + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service + Before=sysinit.target shutdown.target +-- +1.8.4 + diff --git a/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch b/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch new file mode 100644 index 00000000..86e13443 --- /dev/null +++ b/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch @@ -0,0 +1,25 @@ +From 2c64a8d0caf84254e38f2e76528f2034d37da520 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 14:03:56 +0200 +Subject: [PATCH 03/15] acpi: make sure we never free an uninitialized pointer + +--- + src/shared/acpi-fpdt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c +index a7c83ed..af58c7c 100644 +--- a/src/shared/acpi-fpdt.c ++++ b/src/shared/acpi-fpdt.c +@@ -81,7 +81,7 @@ struct acpi_fpdt_boot { + }; + + int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { +- _cleanup_free_ char *buf; ++ _cleanup_free_ char *buf = NULL; + struct acpi_table_header *tbl; + size_t l; + struct acpi_fpdt_header *rec; +-- +1.8.4 + diff --git a/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch b/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch deleted file mode 100644 index 9b103930..00000000 --- a/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch +++ /dev/null @@ -1,46 +0,0 @@ -From bebbf30ef61e4cbc782731e48ad67613aab38ec6 Mon Sep 17 00:00:00 2001 -From: Gao feng -Date: Fri, 13 Sep 2013 14:43:04 +0800 -Subject: [PATCH 3/7] cgroup: fix incorrectly setting memory cgroup - -If the memory_limit of unit is -1, we should write "-1" -to the file memory.limit_in_bytes. not the (unit64_t) -1. - -otherwise the memory.limit_in_bytes will be set to zero. ---- - src/core/cgroup.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - -diff --git a/src/core/cgroup.c b/src/core/cgroup.c -index aee93ba..244baff 100644 ---- a/src/core/cgroup.c -+++ b/src/core/cgroup.c -@@ -257,14 +257,21 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha - - if (mask & CGROUP_MEMORY) { - char buf[DECIMAL_STR_MAX(uint64_t) + 1]; -+ if (c->memory_limit != (uint64_t) -1) { -+ sprintf(buf, "%" PRIu64 "\n", c->memory_limit); -+ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf); -+ } else -+ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", "-1"); - -- sprintf(buf, "%" PRIu64 "\n", c->memory_limit); -- r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf); - if (r < 0) - log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r)); - -- sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); -- r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); -+ if (c->memory_soft_limit != (uint64_t) -1) { -+ sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit); -+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf); -+ } else -+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", "-1"); -+ - if (r < 0) - log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r)); - } --- -1.8.1.4 - diff --git a/0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch b/0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch deleted file mode 100644 index b90fbadc..00000000 --- a/0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0465a409e0a3725b44b0801641a7497e2125e59e Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 13 Sep 2013 14:12:55 +0200 -Subject: [PATCH 4/7] random-seed: we should return errno of failed loop_write - ---- - src/random-seed/random-seed.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/random-seed/random-seed.c b/src/random-seed/random-seed.c -index 4776c07..afbd500 100644 ---- a/src/random-seed/random-seed.c -+++ b/src/random-seed/random-seed.c -@@ -157,7 +157,7 @@ int main(int argc, char *argv[]) { - r = loop_write(seed_fd, buf, (size_t) k, false); - if (r <= 0) { - log_error("Failed to write new random seed file: %s", r < 0 ? strerror(-r) : "short write"); -- r = k == 0 ? -EIO : (int) k; -+ r = r == 0 ? -EIO : r; - } - } - --- -1.8.1.4 - diff --git a/0004-systemctl-fix-name-mangling-for-sysv-units.patch b/0004-systemctl-fix-name-mangling-for-sysv-units.patch new file mode 100644 index 00000000..a2531e70 --- /dev/null +++ b/0004-systemctl-fix-name-mangling-for-sysv-units.patch @@ -0,0 +1,134 @@ +From cbb13b2a538ece1c7ec3b210e2b36b47df2a13ea Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= +Date: Wed, 2 Oct 2013 16:42:42 +0200 +Subject: [PATCH 04/15] systemctl: fix name mangling for sysv units + +--- + src/systemctl/systemctl.c | 45 ++++++++++++++++++--------------------------- + 1 file changed, 18 insertions(+), 27 deletions(-) + +diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c +index bb7ada9..d75281f 100644 +--- a/src/systemctl/systemctl.c ++++ b/src/systemctl/systemctl.c +@@ -4218,11 +4218,10 @@ static int set_environment(DBusConnection *bus, char **args) { + return 0; + } + +-static int enable_sysv_units(char **args) { ++static int enable_sysv_units(const char *verb, char **args) { + int r = 0; + + #if defined(HAVE_SYSV_COMPAT) && defined(HAVE_CHKCONFIG) +- const char *verb = args[0]; + unsigned f = 1, t = 1; + LookupPaths paths = {}; + +@@ -4242,7 +4241,7 @@ static int enable_sysv_units(char **args) { + return r; + + r = 0; +- for (f = 1; args[f]; f++) { ++ for (f = 0; args[f]; f++) { + const char *name; + _cleanup_free_ char *p = NULL, *q = NULL; + bool found_native = false, found_sysv; +@@ -4365,7 +4364,7 @@ finish: + lookup_paths_free(&paths); + + /* Drop all SysV units */ +- for (f = 1, t = 1; args[f]; f++) { ++ for (f = 0, t = 0; args[f]; f++) { + + if (isempty(args[f])) + continue; +@@ -4423,16 +4422,16 @@ static int enable_unit(DBusConnection *bus, char **args) { + + dbus_error_init(&error); + +- r = enable_sysv_units(args); +- if (r < 0) +- return r; +- + if (!args[1]) + return 0; + + r = mangle_names(args+1, &mangled_names); + if (r < 0) +- goto finish; ++ return r; ++ ++ r = enable_sysv_units(verb, mangled_names); ++ if (r < 0) ++ return r; + + if (!bus || avoid_bus()) { + if (streq(verb, "enable")) { +@@ -4624,11 +4623,15 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { + _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; + bool enabled; + char **name; +- char *n; ++ _cleanup_strv_free_ char **mangled_names = NULL; + + dbus_error_init(&error); + +- r = enable_sysv_units(args); ++ r = mangle_names(args+1, &mangled_names); ++ if (r < 0) ++ return r; ++ ++ r = enable_sysv_units(args[0], mangled_names); + if (r < 0) + return r; + +@@ -4636,16 +4639,10 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { + + if (!bus || avoid_bus()) { + +- STRV_FOREACH(name, args+1) { ++ STRV_FOREACH(name, mangled_names) { + UnitFileState state; + +- n = unit_name_mangle(*name); +- if (!n) +- return log_oom(); +- +- state = unit_file_get_state(arg_scope, arg_root, n); +- +- free(n); ++ state = unit_file_get_state(arg_scope, arg_root, *name); + + if (state < 0) + return state; +@@ -4660,13 +4657,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { + } + + } else { +- STRV_FOREACH(name, args+1) { ++ STRV_FOREACH(name, mangled_names) { + const char *s; + +- n = unit_name_mangle(*name); +- if (!n) +- return log_oom(); +- + r = bus_method_call_with_reply ( + bus, + "org.freedesktop.systemd1", +@@ -4675,11 +4668,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { + "GetUnitFileState", + &reply, + NULL, +- DBUS_TYPE_STRING, &n, ++ DBUS_TYPE_STRING, name, + DBUS_TYPE_INVALID); + +- free(n); +- + if (r) + return r; + +-- +1.8.4 + diff --git a/0005-core-cgroup-first-print-then-free.patch b/0005-core-cgroup-first-print-then-free.patch deleted file mode 100644 index 5aac9a86..00000000 --- a/0005-core-cgroup-first-print-then-free.patch +++ /dev/null @@ -1,26 +0,0 @@ -From fa7341808def8efb736747299374745ae059f398 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 13 Sep 2013 14:31:17 +0200 -Subject: [PATCH 5/7] core/cgroup: first print then free - ---- - src/core/cgroup.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/cgroup.c b/src/core/cgroup.c -index 244baff..1f41efc 100644 ---- a/src/core/cgroup.c -+++ b/src/core/cgroup.c -@@ -402,8 +402,8 @@ static int unit_create_cgroups(Unit *u, CGroupControllerMask mask) { - is_in_hash = true; - - if (r < 0) { -- free(path); - log_error("cgroup %s exists already: %s", path, strerror(-r)); -+ free(path); - return r; - } - --- -1.8.1.4 - diff --git a/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch b/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch new file mode 100644 index 00000000..d46e94d1 --- /dev/null +++ b/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch @@ -0,0 +1,48 @@ +From 4b93637fd7dddb0a1518f35171998b2c7cd5c5bd Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:36:28 +0200 +Subject: [PATCH 05/15] cryptsetup: fix OOM handling when parsing mount options + +--- + src/cryptsetup/cryptsetup.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c +index 22b5eea..769c3e4 100644 +--- a/src/cryptsetup/cryptsetup.c ++++ b/src/cryptsetup/cryptsetup.c +@@ -74,7 +74,7 @@ static int parse_one_option(const char *option) { + + t = strdup(option+7); + if (!t) +- return -ENOMEM; ++ return log_oom(); + + free(opt_cipher); + opt_cipher = t; +@@ -89,9 +89,10 @@ static int parse_one_option(const char *option) { + } else if (startswith(option, "tcrypt-keyfile=")) { + + opt_type = CRYPT_TCRYPT; +- if (path_is_absolute(option+15)) +- opt_tcrypt_keyfiles = strv_append(opt_tcrypt_keyfiles, strdup(option+15)); +- else ++ if (path_is_absolute(option+15)) { ++ if (strv_extend(&opt_tcrypt_keyfiles, option + 15) < 0) ++ return log_oom(); ++ } else + log_error("Key file path '%s' is not absolute. Ignoring.", option+15); + + } else if (startswith(option, "keyfile-size=")) { +@@ -113,7 +114,7 @@ static int parse_one_option(const char *option) { + + t = strdup(option+5); + if (!t) +- return -ENOMEM; ++ return log_oom(); + + free(opt_hash); + opt_hash = t; +-- +1.8.4 + diff --git a/0006-journald-add-missing-error-check.patch b/0006-journald-add-missing-error-check.patch new file mode 100644 index 00000000..479c37cc --- /dev/null +++ b/0006-journald-add-missing-error-check.patch @@ -0,0 +1,25 @@ +From 8c92d4bbc7a538ada11d7e85016cce141beb0e6c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:36:43 +0200 +Subject: [PATCH 06/15] journald: add missing error check + +--- + src/journal/journal-file.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 1236403..81c344f 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -907,6 +907,8 @@ static int journal_file_append_field( + + osize = offsetof(Object, field.payload) + size; + r = journal_file_append_object(f, OBJECT_FIELD, osize, &o, &p); ++ if (r < 0) ++ return r; + + o->field.hash = htole64(hash); + memcpy(o->field.payload, field, size); +-- +1.8.4 + diff --git a/0006-swap-fix-reverse-dependencies.patch b/0006-swap-fix-reverse-dependencies.patch deleted file mode 100644 index 4582c34f..00000000 --- a/0006-swap-fix-reverse-dependencies.patch +++ /dev/null @@ -1,30 +0,0 @@ -From dec37dc9e875695c09cfc1ec5e55b5f68eaa39f4 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 13 Sep 2013 14:46:18 +0200 -Subject: [PATCH 6/7] swap: fix reverse dependencies - -Make sure swap.target correctly requires/wants the swap units. - -This fixes https://bugs.freedesktop.org/show_bug.cgi?id=69291. - -Reported-by: Hussam Al-Tayeb ---- - src/core/swap.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/swap.c b/src/core/swap.c -index 57d15eb..3950860 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -220,7 +220,7 @@ static int swap_add_default_dependencies(Swap *s) { - } - - if (!noauto) { -- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, (nofail ? UNIT_WANTED_BY : UNIT_REQUIRED_BY), -+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES), - SPECIAL_SWAP_TARGET, NULL, true); - if (r < 0) - return r; --- -1.8.1.4 - diff --git a/0007-bus-fix-potentially-uninitialized-memory-access.patch b/0007-bus-fix-potentially-uninitialized-memory-access.patch new file mode 100644 index 00000000..2f2d2def --- /dev/null +++ b/0007-bus-fix-potentially-uninitialized-memory-access.patch @@ -0,0 +1,34 @@ +From f5f6e41a9ee008e1632f79ab3fa20beef7c2b613 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:37:11 +0200 +Subject: [PATCH 07/15] bus: fix potentially uninitialized memory access + +--- + src/libsystemd-bus/bus-internal.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libsystemd-bus/bus-internal.c b/src/libsystemd-bus/bus-internal.c +index 0e66f3d..cac948e 100644 +--- a/src/libsystemd-bus/bus-internal.c ++++ b/src/libsystemd-bus/bus-internal.c +@@ -63,7 +63,7 @@ bool object_path_is_valid(const char *p) { + + bool interface_name_is_valid(const char *p) { + const char *q; +- bool dot, found_dot; ++ bool dot, found_dot = false; + + if (isempty(p)) + return false; +@@ -103,7 +103,7 @@ bool interface_name_is_valid(const char *p) { + + bool service_name_is_valid(const char *p) { + const char *q; +- bool dot, found_dot, unique; ++ bool dot, found_dot = false, unique; + + if (isempty(p)) + return false; +-- +1.8.4 + diff --git a/0007-libudev-fix-move_later-comparison.patch b/0007-libudev-fix-move_later-comparison.patch deleted file mode 100644 index aa792e0c..00000000 --- a/0007-libudev-fix-move_later-comparison.patch +++ /dev/null @@ -1,24 +0,0 @@ -From f90d045c9168a55bb22eef6fe8756b6a6d2c1e53 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 13 Sep 2013 14:12:54 +0200 -Subject: [PATCH 7/7] libudev: fix move_later comparison - -At the beginning move_later is set to -1, but it is set to different -value only if expression !move_later is true. ---- - src/libudev/libudev-enumerate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-207/src/libudev/libudev-enumerate.c -=================================================================== ---- systemd-207.orig/src/libudev/libudev-enumerate.c -+++ systemd-207/src/libudev/libudev-enumerate.c -@@ -300,7 +300,7 @@ _public_ struct udev_list_entry *udev_en - /* skip to be delayed devices, and move the to - * the point where the prefix changes. We can - * only move one item at a time. */ -- if (!move_later) { -+ if (move_later == -1) { - move_later_prefix = devices_delay_later(udev_enumerate->udev, entry->syspath); - - if (move_later_prefix > 0) { diff --git a/0008-dbus-fix-return-value-of-dispatch_rqueue.patch b/0008-dbus-fix-return-value-of-dispatch_rqueue.patch new file mode 100644 index 00000000..3985ab2b --- /dev/null +++ b/0008-dbus-fix-return-value-of-dispatch_rqueue.patch @@ -0,0 +1,30 @@ +From 2e8d788c2f90d062f208f8c57a97e7b33cb29f7d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:37:30 +0200 +Subject: [PATCH 08/15] dbus: fix return value of dispatch_rqueue() + +--- + src/libsystemd-bus/sd-bus.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libsystemd-bus/sd-bus.c b/src/libsystemd-bus/sd-bus.c +index 3f766fb..db0880f 100644 +--- a/src/libsystemd-bus/sd-bus.c ++++ b/src/libsystemd-bus/sd-bus.c +@@ -1215,11 +1215,11 @@ static int dispatch_rqueue(sd_bus *bus, sd_bus_message **m) { + if (r == 0) + return ret; + +- r = 1; ++ ret = 1; + } while (!z); + + *m = z; +- return 1; ++ return ret; + } + + int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) { +-- +1.8.4 + diff --git a/0008-swap-create-.wants-symlink-to-auto-swap-devices.patch b/0008-swap-create-.wants-symlink-to-auto-swap-devices.patch deleted file mode 100644 index a81842b9..00000000 --- a/0008-swap-create-.wants-symlink-to-auto-swap-devices.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 9981460a8f2d5587fef5216d556b5fb502281be6 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 16 Sep 2013 01:08:32 +0200 -Subject: [PATCH 8/8] swap: create .wants symlink to 'auto' swap devices - -As we load unit files lazily, we need to make sure something pulls in swap -units that should be started automatically, otherwise the default dependencies -will never be applied. - -This partially reinstates code removed in -commit 64347fc2b983f33e7efb0fd2bb44e133fb9f30f4. - -Also don't order swap devices after swap.target when they are 'nofail'. ---- - src/core/swap.c | 8 ++++++-- - src/fstab-generator/fstab-generator.c | 18 ++++++++++++++++-- - 2 files changed, 22 insertions(+), 4 deletions(-) - -diff --git a/src/core/swap.c b/src/core/swap.c -index 3950860..76c7d45 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -220,8 +220,12 @@ static int swap_add_default_dependencies(Swap *s) { - } - - if (!noauto) { -- r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES), -- SPECIAL_SWAP_TARGET, NULL, true); -+ if (nofail) -+ r = unit_add_dependency_by_name_inverse(UNIT(s), -+ UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); -+ else -+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), -+ UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); - if (r < 0) - return r; - } -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index 6ebe8aa..b73dfa4 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -66,6 +66,7 @@ static int mount_find_pri(struct mntent *me, int *ret) { - static int add_swap(const char *what, struct mntent *me) { - _cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL, *device = NULL; - _cleanup_fclose_ FILE *f = NULL; -+ bool noauto; - int r, pri = -1; - - assert(what); -@@ -77,6 +78,8 @@ static int add_swap(const char *what, struct mntent *me) { - return pri; - } - -+ noauto = !!hasmntopt(me, "noauto"); -+ - name = unit_name_from_path(what, ".swap"); - if (!name) - return log_oom(); -@@ -97,8 +100,7 @@ static int add_swap(const char *what, struct mntent *me) { - fprintf(f, - "# Automatically generated by systemd-fstab-generator\n\n" - "[Unit]\n" -- "SourcePath=/etc/fstab\n" -- "\n" -+ "SourcePath=/etc/fstab\n\n" - "[Swap]\n" - "What=%s\n", - what); -@@ -114,6 +116,18 @@ static int add_swap(const char *what, struct mntent *me) { - return -errno; - } - -+ if (!noauto) { -+ lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL); -+ if (!lnk) -+ return log_oom(); -+ -+ mkdir_parents_label(lnk, 0755); -+ if (symlink(unit, lnk) < 0) { -+ log_error("Failed to create symlink %s: %m", lnk); -+ return -errno; -+ } -+ } -+ - return 0; - } - --- -1.8.1.4 - diff --git a/0009-modules-load-fix-error-handling.patch b/0009-modules-load-fix-error-handling.patch new file mode 100644 index 00000000..df350218 --- /dev/null +++ b/0009-modules-load-fix-error-handling.patch @@ -0,0 +1,27 @@ +From b857193b1def5172e3641ca1d5bc9e08ae81aac4 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:37:44 +0200 +Subject: [PATCH 09/15] modules-load: fix error handling + +--- + src/modules-load/modules-load.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c +index 7b19ee0..49ee420 100644 +--- a/src/modules-load/modules-load.c ++++ b/src/modules-load/modules-load.c +@@ -302,8 +302,8 @@ int main(int argc, char *argv[]) { + + STRV_FOREACH(i, arg_proc_cmdline_modules) { + k = load_module(ctx, *i); +- if (k < 0) +- r = EXIT_FAILURE; ++ if (k < 0 && r == 0) ++ r = k; + } + + r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); +-- +1.8.4 + diff --git a/0009-polkit-Avoid-race-condition-in-scraping-proc.patch b/0009-polkit-Avoid-race-condition-in-scraping-proc.patch deleted file mode 100644 index 283c2e7a..00000000 --- a/0009-polkit-Avoid-race-condition-in-scraping-proc.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 851d079d0172539bf904abb58edd80d7cfe487ca Mon Sep 17 00:00:00 2001 -From: Colin Walters -Date: Thu, 22 Aug 2013 13:55:21 -0400 -Subject: [PATCH 9/9] polkit: Avoid race condition in scraping /proc - -If a calling process execve()s a setuid program, it can appear to be -uid 0. Since we're receiving requests over DBus, avoid this by simply -passing system-bus-name as a subject. ---- - src/shared/polkit.c | 31 +++++-------------------------- - 1 file changed, 5 insertions(+), 26 deletions(-) - -diff --git a/src/shared/polkit.c b/src/shared/polkit.c -index cea7074..1c5e9e3 100644 ---- a/src/shared/polkit.c -+++ b/src/shared/polkit.c -@@ -38,12 +38,8 @@ int verify_polkit( - - #ifdef ENABLE_POLKIT - DBusMessage *m = NULL, *reply = NULL; -- const char *unix_process = "unix-process", *pid = "pid", *starttime = "start-time", *cancel_id = ""; -+ const char *system_bus_name = "system-bus-name", *name = "name", *cancel_id = ""; - uint32_t flags = interactive ? 1 : 0; -- pid_t pid_raw; -- uint32_t pid_u32; -- unsigned long long starttime_raw; -- uint64_t starttime_u64; - DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant; - int r; - dbus_bool_t authorized = FALSE, challenge = FALSE; -@@ -68,14 +64,6 @@ int verify_polkit( - - #ifdef ENABLE_POLKIT - -- pid_raw = bus_get_unix_process_id(c, sender, error); -- if (pid_raw == 0) -- return -EINVAL; -- -- r = get_starttime_of_pid(pid_raw, &starttime_raw); -- if (r < 0) -- return r; -- - m = dbus_message_new_method_call( - "org.freedesktop.PolicyKit1", - "/org/freedesktop/PolicyKit1/Authority", -@@ -86,22 +74,13 @@ int verify_polkit( - - dbus_message_iter_init_append(m, &iter_msg); - -- pid_u32 = (uint32_t) pid_raw; -- starttime_u64 = (uint64_t) starttime_raw; -- - if (!dbus_message_iter_open_container(&iter_msg, DBUS_TYPE_STRUCT, NULL, &iter_struct) || -- !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &unix_process) || -+ !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &system_bus_name) || - !dbus_message_iter_open_container(&iter_struct, DBUS_TYPE_ARRAY, "{sv}", &iter_array) || - !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || -- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &pid) || -- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "u", &iter_variant) || -- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT32, &pid_u32) || -- !dbus_message_iter_close_container(&iter_dict, &iter_variant) || -- !dbus_message_iter_close_container(&iter_array, &iter_dict) || -- !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || -- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &starttime) || -- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "t", &iter_variant) || -- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT64, &starttime_u64) || -+ !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &name) || -+ !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "s", &iter_variant) || -+ !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_STRING, &sender) || - !dbus_message_iter_close_container(&iter_dict, &iter_variant) || - !dbus_message_iter_close_container(&iter_array, &iter_dict) || - !dbus_message_iter_close_container(&iter_struct, &iter_array) || --- -1.8.1.4 - diff --git a/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch b/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch new file mode 100644 index 00000000..3994d1ee --- /dev/null +++ b/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch @@ -0,0 +1,26 @@ +From 62678deda2dcd43954bf02f783da01e48c7f8fce Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:38:09 +0200 +Subject: [PATCH 10/15] efi: never call qsort on potentially NULL arrays + +--- + src/shared/efivars.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/shared/efivars.c b/src/shared/efivars.c +index 1d5b6f9..c015b16 100644 +--- a/src/shared/efivars.c ++++ b/src/shared/efivars.c +@@ -384,7 +384,8 @@ int efi_get_boot_options(uint16_t **options) { + list[count ++] = id; + } + +- qsort(list, count, sizeof(uint16_t), cmp_uint16); ++ if (list) ++ qsort(list, count, sizeof(uint16_t), cmp_uint16); + + *options = list; + return count; +-- +1.8.4 + diff --git a/0011-strv-don-t-access-potentially-NULL-string-arrays.patch b/0011-strv-don-t-access-potentially-NULL-string-arrays.patch new file mode 100644 index 00000000..0ab90504 --- /dev/null +++ b/0011-strv-don-t-access-potentially-NULL-string-arrays.patch @@ -0,0 +1,27 @@ +From 5b4fb02d890d5c9777e9a6e798e0b8922a8a9fd8 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:38:28 +0200 +Subject: [PATCH 11/15] strv: don't access potentially NULL string arrays + +--- + src/shared/env-util.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/shared/env-util.c b/src/shared/env-util.c +index 5e29629..7976881 100644 +--- a/src/shared/env-util.c ++++ b/src/shared/env-util.c +@@ -405,7 +405,9 @@ char **strv_env_clean_log(char **e, const char *message) { + e[k++] = *p; + } + +- e[k] = NULL; ++ if (e) ++ e[k] = NULL; ++ + return e; + } + +-- +1.8.4 + diff --git a/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch b/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch new file mode 100644 index 00000000..1d91d801 --- /dev/null +++ b/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch @@ -0,0 +1,26 @@ +From 69c2b6be8fc607412a13cd0ea03a629b4965c816 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Oct 2013 19:38:52 +0200 +Subject: [PATCH 12/15] mkdir: pass a proper function pointer to + mkdir_safe_internal + +--- + src/shared/mkdir.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/mkdir.c b/src/shared/mkdir.c +index b7e5c6e..43c6ea6 100644 +--- a/src/shared/mkdir.c ++++ b/src/shared/mkdir.c +@@ -53,7 +53,7 @@ int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkd + } + + int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid) { +- return mkdir_safe_internal(path, mode, uid, gid, false); ++ return mkdir_safe_internal(path, mode, uid, gid, mkdir); + } + + static int is_dir(const char* path) { +-- +1.8.4 + diff --git a/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch b/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch new file mode 100644 index 00000000..1ed8f92a --- /dev/null +++ b/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch @@ -0,0 +1,26 @@ +From 7074fecf6747c9a6ad872cc87701481e8bece8b0 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Wed, 2 Oct 2013 15:35:16 -0400 +Subject: [PATCH 14/15] tmpfiles.d: include setgid perms for /run/log/journal + +4608af4333d0f7f5 set permissions for journal storage on persistent disk +but not the volatile storage. + +ref: https://bugs.archlinux.org/task/37170 +--- + tmpfiles.d/systemd.conf | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf +index b630440..a05c657 100644 +--- a/tmpfiles.d/systemd.conf ++++ b/tmpfiles.d/systemd.conf +@@ -26,3 +26,5 @@ F /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)" + + m /var/log/journal 2755 root systemd-journal - - + m /var/log/journal/%m 2755 root systemd-journal - - ++m /run/log/journal 2755 root systemd-journal - - ++m /run/log/journal/%m 2755 root systemd-journal - - +-- +1.8.4 + diff --git a/Fix-timeout-when-stopping-Type-notify-service.patch b/Fix-timeout-when-stopping-Type-notify-service.patch deleted file mode 100644 index 3d03d380..00000000 --- a/Fix-timeout-when-stopping-Type-notify-service.patch +++ /dev/null @@ -1,84 +0,0 @@ -Delivered-To: arvidjaar@gmail.com -Received: by 10.216.219.133 with SMTP id m5csp322525wep; - Fri, 20 Sep 2013 13:55:10 -0700 (PDT) -X-Received: by 10.66.171.204 with SMTP id aw12mr10856961pac.7.1379710509504; - Fri, 20 Sep 2013 13:55:09 -0700 (PDT) -Return-Path: -Received: from gabe.freedesktop.org (gabe.freedesktop.org. [131.252.210.177]) - by mx.google.com with ESMTP id mj9si13683512pab.248.1969.12.31.16.00.00; - Fri, 20 Sep 2013 13:55:09 -0700 (PDT) -Received-SPF: pass (google.com: domain of systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org designates 131.252.210.177 as permitted sender) client-ip=131.252.210.177; -Authentication-Results: mx.google.com; - spf=pass (google.com: domain of systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mail=systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id D7BD0E5F24 - for ; Fri, 20 Sep 2013 13:55:06 -0700 (PDT) -X-Original-To: systemd-devel@lists.freedesktop.org -Delivered-To: systemd-devel@lists.freedesktop.org -Received: from mail.jjacky.com (unknown [23.29.69.116]) - by gabe.freedesktop.org (Postfix) with ESMTP id E3B2FE5DF6 - for ; - Fri, 20 Sep 2013 13:54:34 -0700 (PDT) -Received: from arch.local (arch.tks [10.42.0.6]) - by mail.jjacky.com (Postfix) with ESMTP id 2F68E18084A; - Fri, 20 Sep 2013 22:54:11 +0200 (CEST) -From: Olivier Brunel -To: systemd-devel@lists.freedesktop.org -Date: Fri, 20 Sep 2013 22:53:52 +0200 -Message-Id: <1379710432-4195-1-git-send-email-jjk@jjacky.com> -X-Mailer: git-send-email 1.8.4 -Subject: [systemd-devel] [PATCH] Fix timeout when stopping Type=notify - service -X-BeenThere: systemd-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.13 -Precedence: list -List-Id: systemd Development Mailing List -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -MIME-Version: 1.0 -Content-Type: text/plain; charset="us-ascii" -Content-Transfer-Encoding: 7bit -Sender: systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org -Errors-To: systemd-devel-bounces+arvidjaar=gmail.com@lists.freedesktop.org - -Since 41efeaec a call to service_unwatch_main_pid() is done from -service_set_main_pid(), which is called upon receiving message MAINPID= - -This had the side effect of not watching pid anymore, and would result in a -useless timeout when stopping the service, as the unit wouldn't be identified -from the pid, so not marked stopped which would result in systemd thinking this -was a timeout. ---- -I'm not exactly familiar with systemd's internals, so this might not be the -correct way to fix this, please correct me if it isn't. - - src/core/service.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -Index: systemd-207/src/core/service.c -=================================================================== ---- systemd-207.orig/src/core/service.c -+++ systemd-207/src/core/service.c -@@ -3461,9 +3461,17 @@ static void service_notify_message(Unit - log_warning_unit(u->id, - "Failed to parse notification message %s", e); - else { -+ int r; -+ - log_debug_unit(u->id, - "%s: got %s", u->id, e); - service_set_main_pid(s, pid); -+ r = unit_watch_pid(u, pid); -+ if (r < 0) -+ /* FIXME: we need to do something here */ -+ log_warning_unit(u->id, -+ "Failed to watch PID %lu from service %s", -+ (unsigned long) pid, u->id); - } - } - diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch index 137a4824..41d51bfa 100644 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -10,8 +10,10 @@ Conflicts: src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) ---- systemd-206.orig/src/core/service.c -+++ systemd-206/src/core/service.c +Index: systemd-208/src/core/service.c +=================================================================== +--- systemd-208.orig/src/core/service.c ++++ systemd-208/src/core/service.c @@ -51,7 +51,8 @@ typedef enum RunlevelType { @@ -53,7 +55,7 @@ Conflicts: #endif static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { -@@ -334,6 +347,9 @@ static char *sysv_translate_name(const c +@@ -340,6 +353,9 @@ static char *sysv_translate_name(const c if (endswith(name, ".sh")) /* Drop .sh suffix */ strcpy(stpcpy(r, name) - 3, ".service"); @@ -63,7 +65,7 @@ Conflicts: else /* Normal init script name */ strcpy(stpcpy(r, name), ".service"); -@@ -936,6 +952,13 @@ static int service_load_sysv_path(Servic +@@ -942,6 +958,13 @@ static int service_load_sysv_path(Servic if ((r = sysv_exec_commands(s, supports_reload)) < 0) goto finish; @@ -77,7 +79,7 @@ Conflicts: if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { /* If there a runlevels configured for this service -@@ -1017,6 +1040,9 @@ static int service_load_sysv_name(Servic +@@ -1023,6 +1046,9 @@ static int service_load_sysv_name(Servic if (endswith(name, ".sh.service")) return -ENOENT; @@ -87,7 +89,7 @@ Conflicts: STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { char *path; int r; -@@ -1037,6 +1063,18 @@ static int service_load_sysv_name(Servic +@@ -1043,6 +1069,18 @@ static int service_load_sysv_name(Servic } free(path); @@ -106,7 +108,7 @@ Conflicts: if (r < 0) return r; -@@ -3587,7 +3625,7 @@ static int service_enumerate(Manager *m) +@@ -3574,7 +3612,7 @@ static int service_enumerate(Manager *m) if (de->d_name[0] == 'S') { @@ -115,7 +117,7 @@ Conflicts: SERVICE(service)->sysv_start_priority_from_rcnd = MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); -@@ -3604,7 +3642,8 @@ static int service_enumerate(Manager *m) +@@ -3591,7 +3629,8 @@ static int service_enumerate(Manager *m) goto finish; } else if (de->d_name[0] == 'K' && @@ -125,7 +127,7 @@ Conflicts: r = set_ensure_allocated(&shutdown_services, trivial_hash_func, trivial_compare_func); -@@ -3644,7 +3683,9 @@ static int service_enumerate(Manager *m) +@@ -3631,7 +3670,9 @@ static int service_enumerate(Manager *m) * runlevels we assume the stop jobs will be implicitly added * by the core logic. Also, we don't really distinguish here * between the runlevels 0 and 6 and just add them to the diff --git a/after-local.service b/after-local.service new file mode 100644 index 00000000..a9fb26a7 --- /dev/null +++ b/after-local.service @@ -0,0 +1,18 @@ +# This file is part of systemd. +# +# systemd 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. + +[Unit] +Description=/etc/init.d/after.local Compatibility +ConditionFileIsExecutable=/etc/init.d/after.local +After=getty.target + +[Service] +Type=idle +ExecStart=/etc/init.d/after.local +TimeoutSec=0 +RemainAfterExit=yes +SysVStartPriority=99 diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index f1145b9e..b9ec5122 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -7,18 +7,22 @@ Subject: delay fsck / cryptsetup after md / dmraid are started units/systemd-fsck@.service.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) ---- systemd-206_git201308300826.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-206_git201308300826/src/cryptsetup/cryptsetup-generator.c -@@ -160,6 +160,7 @@ static int create_disk( - "Conflicts=umount.target\n" +Index: systemd-208/src/cryptsetup/cryptsetup-generator.c +=================================================================== +--- systemd-208.orig/src/cryptsetup/cryptsetup-generator.c ++++ systemd-208/src/cryptsetup/cryptsetup-generator.c +@@ -119,6 +119,7 @@ static int create_disk( "DefaultDependencies=no\n" "BindsTo=dev-mapper-%i.device\n" + "IgnoreOnIsolate=true\n" + "After=md.service dmraid.service\n" "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", f); ---- systemd-206_git201308300826.orig/units/systemd-fsck@.service.in -+++ systemd-206_git201308300826/units/systemd-fsck@.service.in +Index: systemd-208/units/systemd-fsck@.service.in +=================================================================== +--- systemd-208.orig/units/systemd-fsck@.service.in ++++ systemd-208/units/systemd-fsck@.service.in @@ -10,7 +10,7 @@ Description=File System Check on %f Documentation=man:systemd-fsck@.service(8) DefaultDependencies=no diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index 79b99a67..577f2685 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -7,11 +7,13 @@ Subject: handle SYSTEMCTL_OPTIONS environment variable src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) ---- systemd-206.orig/src/systemctl/systemctl.c -+++ systemd-206/src/systemctl/systemctl.c -@@ -6197,6 +6197,28 @@ int main(int argc, char*argv[]) { - log_parse_environment(); - log_open(); +Index: systemd-208/src/systemctl/systemctl.c +=================================================================== +--- systemd-208.orig/src/systemctl/systemctl.c ++++ systemd-208/src/systemctl/systemctl.c +@@ -6115,6 +6115,28 @@ int main(int argc, char*argv[]) { + * ellipsized. */ + original_stdout_is_tty = isatty(STDOUT_FILENO); + if (secure_getenv("SYSTEMCTL_OPTIONS") && + (!program_invocation_short_name || diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index 9450a8ea..d7bea39c 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -7,10 +7,12 @@ handle ROOT_USES_LANG=ctype (bnc#792182). src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) ---- systemd-206_git201308300826.orig/src/core/locale-setup.c -+++ systemd-206_git201308300826/src/core/locale-setup.c -@@ -72,6 +72,11 @@ int locale_setup(char ***environment) { - char **env; +Index: systemd-208/src/core/locale-setup.c +=================================================================== +--- systemd-208.orig/src/core/locale-setup.c ++++ systemd-208/src/core/locale-setup.c +@@ -73,6 +73,11 @@ int locale_setup(char ***environment) { + char **add; char *variables[_VARIABLE_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT @@ -21,12 +23,12 @@ handle ROOT_USES_LANG=ctype (bnc#792182). if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -118,6 +123,27 @@ int locale_setup(char ***environment) { +@@ -119,6 +124,27 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); } +#ifdef HAVE_SYSV_COMPAT -+ if (r <= 0 && ++ if (r <= 0 && + (r = parse_env_file("/etc/sysconfig/language", NEWLINE, + "ROOT_USES_LANG", &root_uses_lang, + "RC_LANG", &variables[VARIABLE_LANG], @@ -47,5 +49,5 @@ handle ROOT_USES_LANG=ctype (bnc#792182). + +#endif + add = NULL; for (i = 0; i < _VARIABLE_MAX; i++) { - if (!variables[i]) diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch index 8f953181..f1e0dfcb 100644 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -11,8 +11,10 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. src/core/service.h | 1 + 2 files changed, 33 insertions(+), 2 deletions(-) ---- systemd-206_git201308300826.orig/src/core/service.c -+++ systemd-206_git201308300826/src/core/service.c +Index: systemd-208/src/core/service.c +=================================================================== +--- systemd-208.orig/src/core/service.c ++++ systemd-208/src/core/service.c @@ -135,6 +135,7 @@ static void service_init(Unit *u) { #ifdef HAVE_SYSV_COMPAT s->sysv_start_priority = -1; @@ -21,7 +23,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. #endif s->socket_fd = -1; s->guess_main_pid = true; -@@ -879,6 +880,34 @@ static int service_load_sysv_path(Servic +@@ -883,6 +884,34 @@ static int service_load_sysv_path(Servic free(short_description); short_description = d; @@ -56,7 +58,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. } else if (state == LSB_DESCRIPTION) { if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -929,7 +958,8 @@ static int service_load_sysv_path(Servic +@@ -933,7 +962,8 @@ static int service_load_sysv_path(Servic /* Special setting for all SysV services */ s->type = SERVICE_FORKING; @@ -66,7 +68,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. s->guess_main_pid = false; s->restart = SERVICE_RESTART_NO; s->exec_context.ignore_sigpipe = false; -@@ -2102,7 +2132,7 @@ static void service_enter_running(Servic +@@ -2080,7 +2110,7 @@ static void service_enter_running(Servic if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && (s->bus_name_good || s->type != SERVICE_DBUS)) { #ifdef HAVE_SYSV_COMPAT @@ -75,9 +77,11 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. s->remain_after_exit = false; #endif service_set_state(s, SERVICE_RUNNING); ---- systemd-206_git201308300826.orig/src/core/service.h -+++ systemd-206_git201308300826/src/core/service.h -@@ -177,6 +177,7 @@ struct Service { +Index: systemd-208/src/core/service.h +=================================================================== +--- systemd-208.orig/src/core/service.h ++++ systemd-208/src/core/service.h +@@ -178,6 +178,7 @@ struct Service { bool is_sysv:1; bool sysv_has_lsb:1; bool sysv_enabled:1; diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 3381072a..9b3defb9 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -44,7 +44,7 @@ Index: systemd-207/units/systemd-sysctl.service.in ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d ConditionDirectoryNotEmpty=|/etc/sysctl.d ConditionDirectoryNotEmpty=|/run/sysctl.d -+ConditionPathExistsGlob=|/boot/sysctl.conf-* ++ConditionPathExistsGlob=|/boot/sysctl.conf-%v +RequiresMountsFor=/boot [Service] diff --git a/systemd-207.tar.xz b/systemd-207.tar.xz deleted file mode 100644 index d97bd0f4..00000000 --- a/systemd-207.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac1f8120315e7969063bbb0c181c8dc59509aeaf10c4266077c257a182ad5942 -size 2363804 diff --git a/systemd-208.tar.xz b/systemd-208.tar.xz new file mode 100644 index 00000000..12a73a83 --- /dev/null +++ b/systemd-208.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390 +size 2382904 diff --git a/systemd-mini.changes b/systemd-mini.changes index 08f75766..68686869 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,117 @@ +------------------------------------------------------------------- +Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com + +- Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch: + fix acpi memleak. +- Add + 0002-fix-lingering-references-to-var-lib-backlight-random.patch: + fix invalid path in documentation. +- Add + 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch: + fix invalid memory free. +- Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix + name mangling for sysv units. +- Add + 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch: + fix OOM handling. +- Add 0006-journald-add-missing-error-check.patch: add missing + error check. +- Add 0007-bus-fix-potentially-uninitialized-memory-access.patch: + fix uninitialized memory access. +- Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix + return value. +- Add 0009-modules-load-fix-error-handling.patch: fix error + handling. +- Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch: + fix incorrect memory access. +- Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch: + fix incorrect memory access. +- Add + 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch: + fix invalid pointer. +- Add + 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch: + fix permission on /run/log/journal. +- Add + 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch: + order remote mount points properly before remote-fs.target. + +------------------------------------------------------------------- +Wed Oct 2 14:10:41 UTC 2013 - hrvoje.senjan@gmail.com + +- Explicitly require pam-config for %post of the main package + +------------------------------------------------------------------- +Wed Oct 2 08:03:30 UTC 2013 - fcrozat@suse.com + +- Release v208: + + logind gained support for facilitating privileged input and drm + devices access for unprivileged clients (helps Wayland / + kmscon). + + New kernel command line luks.options= allows to specify LUKS + options, when used with luks.uuid= + + tmpfileS.d snippets can uses specifier expansion in path names + (%m, %b, %H, %v). + + New tmpfiles.d command "m" introduced to change + owner/group/access mode of a file/directory only if it exists. + + MemorySoftLimit= cgroup settings is no longer supported + (underlying kernel cgroup attribute will disappear in the + future). + + memeory.use_hierarchy cgroup attribute is enabled for all + cgroups systemd creates in memory cgroup hierarchy. + + New filed _SYSTEMD_SLICE= is logged in journal messages related + to a slice. + + systemd-journald will no longer adjust the group of journal + files it creates to "systemd-journal" group. Permissions and + owernship is adjusted when package is upgraded. + + Backlight and random seed files are now stored in + /var/lib/systemd. + + Boot time performance measurements included ACPI 5.0 FPDT + informations if available. +- Drop merged patches: + 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch, + 0002-cgroup-correct-the-log-information.patch, + 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch, + 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch, + 0005-core-cgroup-first-print-then-free.patch, + 0006-swap-fix-reverse-dependencies.patch, + 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch, + 0009-polkit-Avoid-race-condition-in-scraping-proc.patch, + Fix-timeout-when-stopping-Type-notify-service.patch, + set-ignoreonisolate-noauto-cryptsetup.patch, + 0001-Fix-buffer-overrun-when-enumerating-files.patch, + 0007-libudev-fix-move_later-comparison.patch. +- Refresh patches + remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, + delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch, + handle-root_uses_lang-value-in-etc-sysconfig-language.patch, + handle-SYSTEMCTL_OPTIONS-environment-variable.patch, + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch. +- Own more ghost files. +- Do not run pam-config in systemd-mini %post. +- Add after-local.service to run after.local late during the boot + process (bnc#778715). + +------------------------------------------------------------------- +Tue Oct 1 17:09:01 UTC 2013 - fcrozat@suse.com + +- Update Fix-timeout-when-stopping-Type-notify-service.patch with + upstream fix. +- No longer start ask-password-wall, was causing too much spam on + terminals (bnc#747783). + +------------------------------------------------------------------- +Mon Sep 30 15:42:45 UTC 2013 - fcrozat@suse.com + +- Add set-ignoreonisolate-noauto-cryptsetup.patch: ensure noauto + encrypted mounts survives runlevel changes (bnc#843085). +- Add 0001-Fix-buffer-overrun-when-enumerating-files.patch: fix + logind crash when /run/systemd/sessions was too big (bnc#840055, + initial fix from hpj@suse.com). +- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to + only check for /boot/sysctl.conf- presence. +- Add service wrapper for after.local (bnc#778715). + ------------------------------------------------------------------- Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com @@ -25,14 +139,14 @@ Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com ------------------------------------------------------------------- Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org -- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch +- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] CVE-2013-4288 ------------------------------------------------------------------- Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org -- Build with --disable-ima as the openSUSE kernel +- Build with --disable-ima as the openSUSE kernel does not support IMA (CONFIG_IMA is not set) ------------------------------------------------------------------- @@ -53,14 +167,14 @@ Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com ------------------------------------------------------------------- Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org -- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch - really fixes the swap unit problem mentioned in previous +- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch + really fixes the swap unit problem mentioned in previous commit & the opensuse-factory mailing list. ------------------------------------------------------------------- Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org -- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch +- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch missing important check on return value. - 0002-cgroup-correct-the-log-information.patch fix misleading log information. @@ -70,7 +184,7 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org should fail if write fails. - 0005-core-cgroup-first-print-then-free.patch use-after-free will trigger if there is an error condition. -- 0006-swap-fix-reverse-dependencies.patch reported in +- 0006-swap-fix-reverse-dependencies.patch reported in opensuse-factory list, topic "swap isn't activated" - 0007-libudev-fix-move_later-comparison.patch libudev invalid usage of "move_later". @@ -79,10 +193,10 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org - while testing this new release I get in the logs ocassionally - at boot "systemd[1]: Failed to open private bus connection: - Failed to connect to socket /var/run/dbus/system_bus_socket: + at boot "systemd[1]: Failed to open private bus connection: + Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS - is defined to /var/run/dbus/system_bus_socket instead of + is defined to /var/run/dbus/system_bus_socket instead of /run/dbus/system_bus_socket and that does not fly when /var/run is not yet available. (systemd-dbus-system-bus-address.patch) @@ -94,10 +208,10 @@ Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com ------------------------------------------------------------------- Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org -- version 207, distribution specific changes follow, for overall +- version 207, distribution specific changes follow, for overall release notes see NEWS. -- Fixed: - * Failed at step PAM spawning /usr/lib/systemd/systemd: +- Fixed: + * Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted * Fix shutdown hang "a stop job is running for Session 1 of user root" that was reported in opensuse-factory list. @@ -204,7 +318,7 @@ Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org ------------------------------------------------------------------- Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org -- fix broken symlink, service is called systemd-random-seed now. +- fix broken symlink, service is called systemd-random-seed now. ------------------------------------------------------------------- Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com @@ -339,13 +453,13 @@ Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com - Automatically online CPUs/Memory on CPU/Memory hotplug add events (bnc#703100, fate#311831). - add: 1008-physical-hotplug-cpu-and-memory.patch + add: 1008-physical-hotplug-cpu-and-memory.patch ------------------------------------------------------------------- Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com - Dropped backward compatibility -- Added check for upstream rpm macros changes +- Added check for upstream rpm macros changes ------------------------------------------------------------------- Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com @@ -355,7 +469,7 @@ Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com ------------------------------------------------------------------- Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org -- 0001-journal-letting-interleaved-seqnums-go.patch and +- 0001-journal-letting-interleaved-seqnums-go.patch and 0002-journal-remember-last-direction-of-search-and-keep-o.patch fix possible infinite loops in the journal code, related to bnc #817778 @@ -392,8 +506,8 @@ Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org - 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch fixes : - * systemd-journald[347]: Failed to set ACL on - /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, + * systemd-journald[347]: Failed to set ACL on + /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, ignoring: Invalid argument - 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch systemctl disable should remove dangling symlinks. @@ -455,7 +569,7 @@ support has been removed from the kernel. fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166 - Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch only on ARM, patch rejected upstream because is too generic. -- no such define TARGET_SUSE exists but it is used in +- no such define TARGET_SUSE exists but it is used in Revert-service-drop-support-for-SysV-scripts-for-the-early.patch use HAVE_SYSV_COMPAT instead. @@ -514,7 +628,7 @@ Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com - Rename remaning udev patches (clean-up). - Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at - boot time not from udev (bnc#761109). + boot time not from udev (bnc#761109). - Drop unused patches: 1001-Reinstate-TIMEOUT-handling.patch 1005-udev-fix-sg-autoload-regression.patch @@ -542,7 +656,7 @@ Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com ------------------------------------------------------------------- Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org -- Fix packaging error, there is no syslog.target anymore +- Fix packaging error, there is no syslog.target anymore do not pretend there is one. ------------------------------------------------------------------- @@ -583,14 +697,14 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com from an indexed database. %udev_hwdb_update macro should be used by packages adding entries to this database. + Journal gained support for "Message Catalog", indexed database - to link up additional information with journal entries. + to link up additional information with journal entries. %journal_catalog_update macro should be used by packages adding %entries to this database. + "age" field for tmpfiles entries can be set to 0, forcing removal of files matching this entry. + coredumpctl gained "gdb" verb to invoke gdb on selected coredump. - + New rpm macros has been added: %udev_rules_update(), + + New rpm macros has been added: %udev_rules_update(), %_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir, %_sysctldir. + In service files, %U can be used for configured user name of @@ -614,7 +728,7 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com (normal clean-up with tmpfiles is still done in addition to this though). + Resource limits (as exposed by cgroup controlers) can be - controlled dynamically at runtime for all units, using + controlled dynamically at runtime for all units, using "systemctl set-cgroup-attr foobar.server cgroup.attribute value". Those settings are stored persistenly on disk. + systemd-vconsole-setup will now copy all fonts settings to all @@ -748,14 +862,14 @@ Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com - udev: ensure that the network interfaces are renamed even if they exist (bnc#809843). - add: 1027-udev-always-rename-network.patch + add: 1027-udev-always-rename-network.patch ------------------------------------------------------------------- Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com - udev: re-add persistent network rules (bnc#809843). add: 1026-re-add-persistent-net.patch -- rebase all patches, ensure that they apply properly. +- rebase all patches, ensure that they apply properly. ------------------------------------------------------------------- Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com @@ -780,7 +894,7 @@ Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com - udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch - udev: expose new ISO9660 properties from libblkid - add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch + add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch ------------------------------------------------------------------- Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de @@ -815,7 +929,7 @@ Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com - udev: use unique names for temporary files created in /dev. add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch - cdrom_id: add data track count for bad virtual drive. - add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch + add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch ------------------------------------------------------------------- Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com @@ -837,7 +951,7 @@ Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com - udev: Fix device matching in the accelerometer - add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch + add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch - keymap: add aditional support for some keyboard keys add: 1018-keymap-add-aditional-support.patch - journalctl: require argument for --priority @@ -846,7 +960,7 @@ Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com libudev-validate-argument-udev_enumerate_new.patch kmod-fix-builtin-typo.patch - rename udev-root-symlink.service to systemd-udev-root-symlink.service. -- fix in udev package missing link in basic.target.wants for +- fix in udev package missing link in basic.target.wants for systemd-udev-root-symlink.service ------------------------------------------------------------------- @@ -978,7 +1092,7 @@ Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com add: 1014-udev-fix-whitespace.patch - udev: properly handle symlink removal by 'change' event add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch -- udev: builtin - do not fail builtin initialization if one of +- udev: builtin - do not fail builtin initialization if one of them returns an error add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch - udev: use usec_t and now() @@ -990,7 +1104,7 @@ Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com - udevd: add missing ':' to getopt_long 'e'. add: 1007-udevd-add-missing-to-getopt_long-e.patch - clean up systemd.spec, make it easy to see which are udev and - systemd patches. + systemd patches. - make 'reload' and 'force-reload' LSB compliant (bnc#793936). ------------------------------------------------------------------- @@ -998,8 +1112,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org - detect-btrfs-ssd.patch: Fix btrfs detection on SSD. - timedated-donot-close-bogus-dbus-connection.patch: Avoid - closing an non-existent dbus connection and getting assertion - failures. + closing an non-existent dbus connection and getting assertion + failures. ------------------------------------------------------------------- Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com @@ -1032,7 +1146,7 @@ Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com ------------------------------------------------------------------- Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com -- Fix creation of /dev/root link. +- Fix creation of /dev/root link. ------------------------------------------------------------------- Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com @@ -1191,7 +1305,7 @@ Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com + Optional journal gateway daemon (systemd-journal-gatewayd.service) to access journal via HTTP and JSON. Use "wget http://localhost:19531/entries" to get - /var/log/messages compatible format and + /var/log/messages compatible format and 'curl -H"Accept: application/json" http://localhost:19531/entries' for JSON formatted content. HTML5 static page is also available as explained on @@ -1421,7 +1535,7 @@ Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com ------------------------------------------------------------------- Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com -- apply ppc patch to systemd-gtk too (fixes build) +- apply ppc patch to systemd-gtk too (fixes build) ------------------------------------------------------------------- Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com @@ -1503,7 +1617,7 @@ Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de ------------------------------------------------------------------- Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com -- Enable Plymouth integration. +- Enable Plymouth integration. * Bootsplash related files will be moved to the bootsplash package @@ -1554,7 +1668,7 @@ Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com property. + Rudimentary service watchdog support (not complete) + Improve bootcharts, by immediatly changing argv[0] after - forking to to reflect which process will be executed. + forking to to reflect which process will be executed. + Various bug fixes. - Add remote-fs-after-network.patch and update insserv patch: ensure remote-fs-pre.target is enabled and started before network @@ -1613,7 +1727,7 @@ Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com ------------------------------------------------------------------- Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com -- Make the systemd journal persistent by creating the +- Make the systemd journal persistent by creating the /var/log/journal directory ------------------------------------------------------------------- @@ -1623,8 +1737,8 @@ Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com - Bugfixes - Implementation of a Journal Utility Library - Implementation of a 128 Bit ID Utility Library -- 11 Patches integrated upstream -- Add systemd-syslog_away_early_on_shutdown.patch: make sure +- 11 Patches integrated upstream +- Add systemd-syslog_away_early_on_shutdown.patch: make sure syslog socket goes away early during shutdown. - Add listen.conf for rsyslog. This will ensure that it will still work fine with rsyslog and the new journal. @@ -1902,7 +2016,7 @@ Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de * New PrivateNetwork= service setting which allows you to shut off networking for a specific service (i.e. all routable network interfaces will disappear for that service). - * Merged insserv-parsing.patch and bash-completion-restart.patch + * Merged insserv-parsing.patch and bash-completion-restart.patch patches. ------------------------------------------------------------------- diff --git a/systemd-mini.spec b/systemd-mini.spec index 3cb60d4a..46a37f39 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -25,7 +25,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 207 +Version: 208 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -98,6 +98,9 @@ Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils %endif +%if ! 0%{?bootstrap} +Requires(post): pam-config +%endif Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 @@ -112,6 +115,7 @@ Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream +Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule @@ -156,6 +160,7 @@ Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch Patch42: systemd-pam_config.patch + # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make @@ -170,27 +175,36 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run +# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run Patch47: systemd-dbus-system-bus-address.patch - -# PATCH-FIX-UPSTREAM 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -- r must be set to the return value of previous call. -Patch48: 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -# PATCH-FIX-UPSTREAM 0002-cgroup-correct-the-log-information.patch -- fix misleading log information. -Patch49: 0002-cgroup-correct-the-log-information.patch -# PATCH-FIX-UPSTREAM 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -- memory cgroup setting is wrong. -Patch50: 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -# PATCH-FIX-UPSTREAM 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -- systemd-random-seed-load should fail if write fails. -Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -# PATCH-FIX-UPSTREAM 0005-core-cgroup-first-print-then-free.patch -- fix use after free -Patch52: 0005-core-cgroup-first-print-then-free.patch -# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly -Patch53: 0006-swap-fix-reverse-dependencies.patch -# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units -Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch -# PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] -Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch -# PATCH-FIX-UPSTREAM Fix-timeout-when-stopping-Type-notify-service.patch -- watch MAINPID after it becomed known [bnc#841544] -Patch56: Fix-timeout-when-stopping-Type-notify-service.patch +# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak +Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch +# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation +Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch +# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free +Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch +# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units +Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch +# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling +Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch +# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check +Patch53: 0006-journald-add-missing-error-check.patch +# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access +Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch +# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value +Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch +# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling +Patch56: 0009-modules-load-fix-error-handling.patch +# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access +Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch +# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access +Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch +# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer +Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch +# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal +Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch +# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target +Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -207,8 +221,6 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-UPSTREAM libudev: fix move_later comparison -Patch1009: 0007-libudev-fix-move_later-comparison.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -447,6 +459,11 @@ cp %{SOURCE7} m4/ %patch54 -p1 %patch55 -p1 %patch56 -p1 +%patch57 -p1 +%patch58 -p1 +%patch59 -p1 +%patch60 -p1 +%patch61 -p1 # udev patches %patch1001 -p1 @@ -459,7 +476,6 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif -%patch1009 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -566,6 +582,9 @@ ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/ran # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount +# don't enable wall ask password service, it spams every console (bnc#747783) +rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path + # create %{_libexecdir}/modules-load.d mkdir -p %{buildroot}%{_libexecdir}/modules-load.d cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf @@ -590,7 +609,7 @@ rm -f %{buildroot}/var/log/README %endif # legacy links -for f in loginctl journalctl ; do +for f in loginctl journalctl ; do ln -s $f %{buildroot}%{_bindir}/systemd-$f %if ! 0%{?bootstrap} ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 @@ -627,6 +646,10 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl TTYVTDisallocate=no EOF +# ensure after.local wrapper is called +install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ +ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ + %fdupes -s %{buildroot}%{_mandir} # packaged in systemd-rpm-macros @@ -637,12 +660,18 @@ getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post +%if ! 0%{?bootstrap} /usr/sbin/pam-config -a --systemd || : +%endif /sbin/ldconfig +[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : +# Make sure new journal files +chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -680,9 +709,11 @@ if [ $1 -ge 1 ]; then /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi +%if ! 0%{?bootstrap} if [ $1 -eq 0 ]; then /usr/sbin/pam-config -d --systemd || : fi +%endif %preun if [ $1 -eq 0 ]; then @@ -988,10 +1019,13 @@ exit 0 %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated %dir /var/lib/systemd/catalog +%ghost /var/lib/systemd/catalog/database %dir /var/lib/systemd/coredump %dir /usr/share/zsh %dir /usr/share/zsh/site-functions /usr/share/zsh/site-functions/* +%ghost /var/lib/systemd/backlight +%ghost /var/lib/systemd/random-seed %files devel %defattr(-,root,root,-) diff --git a/systemd.changes b/systemd.changes index 08f75766..68686869 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,117 @@ +------------------------------------------------------------------- +Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com + +- Add 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch: + fix acpi memleak. +- Add + 0002-fix-lingering-references-to-var-lib-backlight-random.patch: + fix invalid path in documentation. +- Add + 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch: + fix invalid memory free. +- Add 0004-systemctl-fix-name-mangling-for-sysv-units.patch: fix + name mangling for sysv units. +- Add + 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch: + fix OOM handling. +- Add 0006-journald-add-missing-error-check.patch: add missing + error check. +- Add 0007-bus-fix-potentially-uninitialized-memory-access.patch: + fix uninitialized memory access. +- Add 0008-dbus-fix-return-value-of-dispatch_rqueue.patch: fix + return value. +- Add 0009-modules-load-fix-error-handling.patch: fix error + handling. +- Add 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch: + fix incorrect memory access. +- Add 0011-strv-don-t-access-potentially-NULL-string-arrays.patch: + fix incorrect memory access. +- Add + 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch: + fix invalid pointer. +- Add + 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch: + fix permission on /run/log/journal. +- Add + 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch: + order remote mount points properly before remote-fs.target. + +------------------------------------------------------------------- +Wed Oct 2 14:10:41 UTC 2013 - hrvoje.senjan@gmail.com + +- Explicitly require pam-config for %post of the main package + +------------------------------------------------------------------- +Wed Oct 2 08:03:30 UTC 2013 - fcrozat@suse.com + +- Release v208: + + logind gained support for facilitating privileged input and drm + devices access for unprivileged clients (helps Wayland / + kmscon). + + New kernel command line luks.options= allows to specify LUKS + options, when used with luks.uuid= + + tmpfileS.d snippets can uses specifier expansion in path names + (%m, %b, %H, %v). + + New tmpfiles.d command "m" introduced to change + owner/group/access mode of a file/directory only if it exists. + + MemorySoftLimit= cgroup settings is no longer supported + (underlying kernel cgroup attribute will disappear in the + future). + + memeory.use_hierarchy cgroup attribute is enabled for all + cgroups systemd creates in memory cgroup hierarchy. + + New filed _SYSTEMD_SLICE= is logged in journal messages related + to a slice. + + systemd-journald will no longer adjust the group of journal + files it creates to "systemd-journal" group. Permissions and + owernship is adjusted when package is upgraded. + + Backlight and random seed files are now stored in + /var/lib/systemd. + + Boot time performance measurements included ACPI 5.0 FPDT + informations if available. +- Drop merged patches: + 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch, + 0002-cgroup-correct-the-log-information.patch, + 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch, + 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch, + 0005-core-cgroup-first-print-then-free.patch, + 0006-swap-fix-reverse-dependencies.patch, + 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch, + 0009-polkit-Avoid-race-condition-in-scraping-proc.patch, + Fix-timeout-when-stopping-Type-notify-service.patch, + set-ignoreonisolate-noauto-cryptsetup.patch, + 0001-Fix-buffer-overrun-when-enumerating-files.patch, + 0007-libudev-fix-move_later-comparison.patch. +- Refresh patches + remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch, + delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch, + handle-root_uses_lang-value-in-etc-sysconfig-language.patch, + handle-SYSTEMCTL_OPTIONS-environment-variable.patch, + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch. +- Own more ghost files. +- Do not run pam-config in systemd-mini %post. +- Add after-local.service to run after.local late during the boot + process (bnc#778715). + +------------------------------------------------------------------- +Tue Oct 1 17:09:01 UTC 2013 - fcrozat@suse.com + +- Update Fix-timeout-when-stopping-Type-notify-service.patch with + upstream fix. +- No longer start ask-password-wall, was causing too much spam on + terminals (bnc#747783). + +------------------------------------------------------------------- +Mon Sep 30 15:42:45 UTC 2013 - fcrozat@suse.com + +- Add set-ignoreonisolate-noauto-cryptsetup.patch: ensure noauto + encrypted mounts survives runlevel changes (bnc#843085). +- Add 0001-Fix-buffer-overrun-when-enumerating-files.patch: fix + logind crash when /run/systemd/sessions was too big (bnc#840055, + initial fix from hpj@suse.com). +- Update sysctl-handle-boot-sysctl.conf-kernel_release.patch to + only check for /boot/sysctl.conf- presence. +- Add service wrapper for after.local (bnc#778715). + ------------------------------------------------------------------- Fri Sep 27 15:47:15 UTC 2013 - fcrozat@suse.com @@ -25,14 +139,14 @@ Thu Sep 19 16:37:03 CEST 2013 - fcrozat@suse.com ------------------------------------------------------------------- Wed Sep 18 23:55:09 UTC 2013 - crrodriguez@opensuse.org -- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch +- 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] CVE-2013-4288 ------------------------------------------------------------------- Wed Sep 18 23:45:54 UTC 2013 - crrodriguez@opensuse.org -- Build with --disable-ima as the openSUSE kernel +- Build with --disable-ima as the openSUSE kernel does not support IMA (CONFIG_IMA is not set) ------------------------------------------------------------------- @@ -53,14 +167,14 @@ Wed Sep 18 12:05:47 UTC 2013 - fcrozat@suse.com ------------------------------------------------------------------- Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org -- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch - really fixes the swap unit problem mentioned in previous +- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch + really fixes the swap unit problem mentioned in previous commit & the opensuse-factory mailing list. ------------------------------------------------------------------- Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org -- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch +- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch missing important check on return value. - 0002-cgroup-correct-the-log-information.patch fix misleading log information. @@ -70,7 +184,7 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org should fail if write fails. - 0005-core-cgroup-first-print-then-free.patch use-after-free will trigger if there is an error condition. -- 0006-swap-fix-reverse-dependencies.patch reported in +- 0006-swap-fix-reverse-dependencies.patch reported in opensuse-factory list, topic "swap isn't activated" - 0007-libudev-fix-move_later-comparison.patch libudev invalid usage of "move_later". @@ -79,10 +193,10 @@ Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org Sat Sep 14 06:52:32 UTC 2013 - crrodriguez@opensuse.org - while testing this new release I get in the logs ocassionally - at boot "systemd[1]: Failed to open private bus connection: - Failed to connect to socket /var/run/dbus/system_bus_socket: + at boot "systemd[1]: Failed to open private bus connection: + Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS - is defined to /var/run/dbus/system_bus_socket instead of + is defined to /var/run/dbus/system_bus_socket instead of /run/dbus/system_bus_socket and that does not fly when /var/run is not yet available. (systemd-dbus-system-bus-address.patch) @@ -94,10 +208,10 @@ Fri Sep 13 07:47:40 UTC 2013 - fcrozat@suse.com ------------------------------------------------------------------- Fri Sep 13 03:14:36 UTC 2013 - crrodriguez@opensuse.org -- version 207, distribution specific changes follow, for overall +- version 207, distribution specific changes follow, for overall release notes see NEWS. -- Fixed: - * Failed at step PAM spawning /usr/lib/systemd/systemd: +- Fixed: + * Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted * Fix shutdown hang "a stop job is running for Session 1 of user root" that was reported in opensuse-factory list. @@ -204,7 +318,7 @@ Fri Jul 5 02:17:19 UTC 2013 - crrodriguez@opensuse.org ------------------------------------------------------------------- Fri Jul 5 02:09:55 UTC 2013 - crrodriguez@opensuse.org -- fix broken symlink, service is called systemd-random-seed now. +- fix broken symlink, service is called systemd-random-seed now. ------------------------------------------------------------------- Thu Jul 4 10:20:23 CEST 2013 - fcrozat@suse.com @@ -339,13 +453,13 @@ Fri Jun 21 12:40:27 UTC 2013 - rmilasan@suse.com - Automatically online CPUs/Memory on CPU/Memory hotplug add events (bnc#703100, fate#311831). - add: 1008-physical-hotplug-cpu-and-memory.patch + add: 1008-physical-hotplug-cpu-and-memory.patch ------------------------------------------------------------------- Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com - Dropped backward compatibility -- Added check for upstream rpm macros changes +- Added check for upstream rpm macros changes ------------------------------------------------------------------- Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com @@ -355,7 +469,7 @@ Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com ------------------------------------------------------------------- Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org -- 0001-journal-letting-interleaved-seqnums-go.patch and +- 0001-journal-letting-interleaved-seqnums-go.patch and 0002-journal-remember-last-direction-of-search-and-keep-o.patch fix possible infinite loops in the journal code, related to bnc #817778 @@ -392,8 +506,8 @@ Tue Jun 11 02:29:49 UTC 2013 - crrodriguez@opensuse.org - 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch fixes : - * systemd-journald[347]: Failed to set ACL on - /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, + * systemd-journald[347]: Failed to set ACL on + /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, ignoring: Invalid argument - 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch systemctl disable should remove dangling symlinks. @@ -455,7 +569,7 @@ support has been removed from the kernel. fixed in systemd v199, commit 89d09e1b5c65a2d97840f682e0932c8bb499f166 - Apply rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch only on ARM, patch rejected upstream because is too generic. -- no such define TARGET_SUSE exists but it is used in +- no such define TARGET_SUSE exists but it is used in Revert-service-drop-support-for-SysV-scripts-for-the-early.patch use HAVE_SYSV_COMPAT instead. @@ -514,7 +628,7 @@ Thu Apr 25 08:19:30 UTC 2013 - rmilasan@suse.com - Rename remaning udev patches (clean-up). - Generate %{_libexecdir}/modules-load.d/sg.conf so we load sg module at - boot time not from udev (bnc#761109). + boot time not from udev (bnc#761109). - Drop unused patches: 1001-Reinstate-TIMEOUT-handling.patch 1005-udev-fix-sg-autoload-regression.patch @@ -542,7 +656,7 @@ Mon Apr 22 09:48:22 UTC 2013 - fcrozat@suse.com ------------------------------------------------------------------- Sun Apr 21 22:24:15 UTC 2013 - crrodriguez@opensuse.org -- Fix packaging error, there is no syslog.target anymore +- Fix packaging error, there is no syslog.target anymore do not pretend there is one. ------------------------------------------------------------------- @@ -583,14 +697,14 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com from an indexed database. %udev_hwdb_update macro should be used by packages adding entries to this database. + Journal gained support for "Message Catalog", indexed database - to link up additional information with journal entries. + to link up additional information with journal entries. %journal_catalog_update macro should be used by packages adding %entries to this database. + "age" field for tmpfiles entries can be set to 0, forcing removal of files matching this entry. + coredumpctl gained "gdb" verb to invoke gdb on selected coredump. - + New rpm macros has been added: %udev_rules_update(), + + New rpm macros has been added: %udev_rules_update(), %_udevhwdbdir, %_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir, %_sysctldir. + In service files, %U can be used for configured user name of @@ -614,7 +728,7 @@ Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com (normal clean-up with tmpfiles is still done in addition to this though). + Resource limits (as exposed by cgroup controlers) can be - controlled dynamically at runtime for all units, using + controlled dynamically at runtime for all units, using "systemctl set-cgroup-attr foobar.server cgroup.attribute value". Those settings are stored persistenly on disk. + systemd-vconsole-setup will now copy all fonts settings to all @@ -748,14 +862,14 @@ Thu Mar 28 09:24:43 UTC 2013 - rmilasan@suse.com - udev: ensure that the network interfaces are renamed even if they exist (bnc#809843). - add: 1027-udev-always-rename-network.patch + add: 1027-udev-always-rename-network.patch ------------------------------------------------------------------- Wed Mar 20 10:14:59 UTC 2013 - rmilasan@suse.com - udev: re-add persistent network rules (bnc#809843). add: 1026-re-add-persistent-net.patch -- rebase all patches, ensure that they apply properly. +- rebase all patches, ensure that they apply properly. ------------------------------------------------------------------- Thu Feb 21 14:45:12 UTC 2013 - fcrozat@suse.com @@ -780,7 +894,7 @@ Tue Feb 19 09:51:18 UTC 2013 - rmilasan@suse.com - udev: usb_id: parse only 'size' bytes of the 'descriptors' buffer add: 1024-udev-usb_id-parse-only-size-bytes-of-the-descriptors.patch - udev: expose new ISO9660 properties from libblkid - add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch + add: 1025-udev-expose-new-ISO9660-properties-from-libblkid.patch ------------------------------------------------------------------- Mon Feb 18 09:27:05 UTC 2013 - jengelh@inai.de @@ -815,7 +929,7 @@ Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com - udev: use unique names for temporary files created in /dev. add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch - cdrom_id: add data track count for bad virtual drive. - add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch + add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch ------------------------------------------------------------------- Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com @@ -837,7 +951,7 @@ Fri Feb 1 16:27:45 UTC 2013 - fcrozat@suse.com Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com - udev: Fix device matching in the accelerometer - add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch + add: 1019-udev-Fix-device-matching-in-the-accelerometer.patch - keymap: add aditional support for some keyboard keys add: 1018-keymap-add-aditional-support.patch - journalctl: require argument for --priority @@ -846,7 +960,7 @@ Tue Jan 29 13:32:30 UTC 2013 - rmilasan@suse.com libudev-validate-argument-udev_enumerate_new.patch kmod-fix-builtin-typo.patch - rename udev-root-symlink.service to systemd-udev-root-symlink.service. -- fix in udev package missing link in basic.target.wants for +- fix in udev package missing link in basic.target.wants for systemd-udev-root-symlink.service ------------------------------------------------------------------- @@ -978,7 +1092,7 @@ Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com add: 1014-udev-fix-whitespace.patch - udev: properly handle symlink removal by 'change' event add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch -- udev: builtin - do not fail builtin initialization if one of +- udev: builtin - do not fail builtin initialization if one of them returns an error add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch - udev: use usec_t and now() @@ -990,7 +1104,7 @@ Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com - udevd: add missing ':' to getopt_long 'e'. add: 1007-udevd-add-missing-to-getopt_long-e.patch - clean up systemd.spec, make it easy to see which are udev and - systemd patches. + systemd patches. - make 'reload' and 'force-reload' LSB compliant (bnc#793936). ------------------------------------------------------------------- @@ -998,8 +1112,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org - detect-btrfs-ssd.patch: Fix btrfs detection on SSD. - timedated-donot-close-bogus-dbus-connection.patch: Avoid - closing an non-existent dbus connection and getting assertion - failures. + closing an non-existent dbus connection and getting assertion + failures. ------------------------------------------------------------------- Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com @@ -1032,7 +1146,7 @@ Tue Dec 4 16:51:32 UTC 2012 - fcrozat@suse.com ------------------------------------------------------------------- Thu Nov 22 14:22:00 UTC 2012 - rmilasan@suse.com -- Fix creation of /dev/root link. +- Fix creation of /dev/root link. ------------------------------------------------------------------- Tue Nov 20 18:25:49 CET 2012 - fcrozat@suse.com @@ -1191,7 +1305,7 @@ Thu Oct 4 11:23:42 UTC 2012 - fcrozat@suse.com + Optional journal gateway daemon (systemd-journal-gatewayd.service) to access journal via HTTP and JSON. Use "wget http://localhost:19531/entries" to get - /var/log/messages compatible format and + /var/log/messages compatible format and 'curl -H"Accept: application/json" http://localhost:19531/entries' for JSON formatted content. HTML5 static page is also available as explained on @@ -1421,7 +1535,7 @@ Thu Apr 19 10:07:47 UTC 2012 - fcrozat@suse.com ------------------------------------------------------------------- Tue Apr 3 09:37:09 UTC 2012 - dvaleev@suse.com -- apply ppc patch to systemd-gtk too (fixes build) +- apply ppc patch to systemd-gtk too (fixes build) ------------------------------------------------------------------- Thu Mar 22 08:47:36 UTC 2012 - fcrozat@suse.com @@ -1503,7 +1617,7 @@ Sun Feb 19 07:56:05 UTC 2012 - jengelh@medozas.de ------------------------------------------------------------------- Fri Feb 17 09:22:50 UTC 2012 - tittiatcoke@gmail.com -- Enable Plymouth integration. +- Enable Plymouth integration. * Bootsplash related files will be moved to the bootsplash package @@ -1554,7 +1668,7 @@ Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com property. + Rudimentary service watchdog support (not complete) + Improve bootcharts, by immediatly changing argv[0] after - forking to to reflect which process will be executed. + forking to to reflect which process will be executed. + Various bug fixes. - Add remote-fs-after-network.patch and update insserv patch: ensure remote-fs-pre.target is enabled and started before network @@ -1613,7 +1727,7 @@ Wed Jan 25 10:37:06 UTC 2012 - fcrozat@suse.com ------------------------------------------------------------------- Thu Jan 19 13:47:39 UTC 2012 - tittiatcoke@gmail.com -- Make the systemd journal persistent by creating the +- Make the systemd journal persistent by creating the /var/log/journal directory ------------------------------------------------------------------- @@ -1623,8 +1737,8 @@ Wed Jan 18 09:03:51 UTC 2012 - tittiatcoke@gmail.com - Bugfixes - Implementation of a Journal Utility Library - Implementation of a 128 Bit ID Utility Library -- 11 Patches integrated upstream -- Add systemd-syslog_away_early_on_shutdown.patch: make sure +- 11 Patches integrated upstream +- Add systemd-syslog_away_early_on_shutdown.patch: make sure syslog socket goes away early during shutdown. - Add listen.conf for rsyslog. This will ensure that it will still work fine with rsyslog and the new journal. @@ -1902,7 +2016,7 @@ Wed Aug 3 07:11:33 UTC 2011 - aj@suse.de * New PrivateNetwork= service setting which allows you to shut off networking for a specific service (i.e. all routable network interfaces will disappear for that service). - * Merged insserv-parsing.patch and bash-completion-restart.patch + * Merged insserv-parsing.patch and bash-completion-restart.patch patches. ------------------------------------------------------------------- diff --git a/systemd.spec b/systemd.spec index 80890da5..5d4272ce 100644 --- a/systemd.spec +++ b/systemd.spec @@ -23,7 +23,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 207 +Version: 208 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -93,6 +93,9 @@ Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils %endif +%if ! 0%{?bootstrap} +Requires(post): pam-config +%endif Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 @@ -107,6 +110,7 @@ Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream +Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule @@ -151,6 +155,7 @@ Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch Patch42: systemd-pam_config.patch + # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make @@ -165,27 +170,36 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run +# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run Patch47: systemd-dbus-system-bus-address.patch - -# PATCH-FIX-UPSTREAM 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -- r must be set to the return value of previous call. -Patch48: 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch -# PATCH-FIX-UPSTREAM 0002-cgroup-correct-the-log-information.patch -- fix misleading log information. -Patch49: 0002-cgroup-correct-the-log-information.patch -# PATCH-FIX-UPSTREAM 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -- memory cgroup setting is wrong. -Patch50: 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch -# PATCH-FIX-UPSTREAM 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -- systemd-random-seed-load should fail if write fails. -Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch -# PATCH-FIX-UPSTREAM 0005-core-cgroup-first-print-then-free.patch -- fix use after free -Patch52: 0005-core-cgroup-first-print-then-free.patch -# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly -Patch53: 0006-swap-fix-reverse-dependencies.patch -# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units -Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch -# PATCH-FIX-UPSTREAM 0009-polkit-Avoid-race-condition-in-scraping-proc.patch VUL-0: polkit: process subject race condition [bnc#835827] -Patch55: 0009-polkit-Avoid-race-condition-in-scraping-proc.patch -# PATCH-FIX-UPSTREAM Fix-timeout-when-stopping-Type-notify-service.patch -- watch MAINPID after it becomed known [bnc#841544] -Patch56: Fix-timeout-when-stopping-Type-notify-service.patch +# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak +Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch +# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation +Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch +# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free +Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch +# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units +Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch +# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling +Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch +# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check +Patch53: 0006-journald-add-missing-error-check.patch +# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access +Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch +# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value +Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch +# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling +Patch56: 0009-modules-load-fix-error-handling.patch +# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access +Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch +# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access +Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch +# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer +Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch +# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal +Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch +# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target +Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -202,8 +216,6 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-UPSTREAM libudev: fix move_later comparison -Patch1009: 0007-libudev-fix-move_later-comparison.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -442,6 +454,11 @@ cp %{SOURCE7} m4/ %patch54 -p1 %patch55 -p1 %patch56 -p1 +%patch57 -p1 +%patch58 -p1 +%patch59 -p1 +%patch60 -p1 +%patch61 -p1 # udev patches %patch1001 -p1 @@ -454,7 +471,6 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif -%patch1009 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -561,6 +577,9 @@ ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/ran # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount +# don't enable wall ask password service, it spams every console (bnc#747783) +rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path + # create %{_libexecdir}/modules-load.d mkdir -p %{buildroot}%{_libexecdir}/modules-load.d cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf @@ -585,7 +604,7 @@ rm -f %{buildroot}/var/log/README %endif # legacy links -for f in loginctl journalctl ; do +for f in loginctl journalctl ; do ln -s $f %{buildroot}%{_bindir}/systemd-$f %if ! 0%{?bootstrap} ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 @@ -622,6 +641,10 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl TTYVTDisallocate=no EOF +# ensure after.local wrapper is called +install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ +ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ + %fdupes -s %{buildroot}%{_mandir} # packaged in systemd-rpm-macros @@ -632,12 +655,18 @@ getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post +%if ! 0%{?bootstrap} /usr/sbin/pam-config -a --systemd || : +%endif /sbin/ldconfig +[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : +# Make sure new journal files +chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -675,9 +704,11 @@ if [ $1 -ge 1 ]; then /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi +%if ! 0%{?bootstrap} if [ $1 -eq 0 ]; then /usr/sbin/pam-config -d --systemd || : fi +%endif %preun if [ $1 -eq 0 ]; then @@ -983,10 +1014,13 @@ exit 0 %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated %dir /var/lib/systemd/catalog +%ghost /var/lib/systemd/catalog/database %dir /var/lib/systemd/coredump %dir /usr/share/zsh %dir /usr/share/zsh/site-functions /usr/share/zsh/site-functions/* +%ghost /var/lib/systemd/backlight +%ghost /var/lib/systemd/random-seed %files devel %defattr(-,root,root,-) From fbd54ec89344c5ad51fab67579b1ac7455b9e9b37eea06f0549972556a8a1267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 17 Oct 2013 12:28:29 +0000 Subject: [PATCH 158/221] Accepting request 203396 from Base:System (please also push to 13.1, I want the same version as F20) - Add 0001-gpt-auto-generator-exit-immediately-if-in-container.patch: don't start gpt auto-generator in container (git). - Add 0001-manager-when-verifying-whether-clients-may-change-en.patch: fix reload check in selinux case (git). - Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch: fix introspection for TakeControl (git). - Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix crash when parsing some incorrect unit (git). - Add 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch: Fix udev rules parsing (git). - Add 0001-systemd-serialize-deserialize-forbid_restart-value.patch: Fix incorrect deserialization for forbid_restart (git). - Add 0001-core-unify-the-way-we-denote-serialization-attribute.patch: Ensure forbid_restart is named like other attributes (git). - Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in journald (git). - Add 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch: Improve ACPI firmware performance parsing (git). - Add 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch: Fix journal rotation (git). - Add 0001-login-fix-invalid-free-in-sd_session_get_vt.patch: Fix memory corruption in sd_session_get_vt (git). (forwarded request 203387 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/203396 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=163 --- 0001-Fix-bad-assert-in-show_pid_array.patch | 35 ++ ...all-qsort-on-potentially-NULL-arrays.patch | 385 ++++++++++++++++++ ...ay-we-denote-serialization-attribute.patch | 40 ++ ...dbus-common-avoid-leak-in-error-path.patch | 71 ++++ ...rbage-from-acpi-firmware-performance.patch | 33 ++ 0001-drop-ins-check-return-value.patch | 29 ++ ...tor-exit-immediately-if-in-container.patch | 40 ++ 0001-journald-fix-minor-memory-leak.patch | 25 ++ ...rotated-file-from-hashmap-when-rotat.patch | 39 ++ ...ix-invalid-free-in-sd_session_get_vt.patch | 27 ++ ...make-sd_session_get_vt-actually-work.patch | 27 ++ ...s-introspection-data-for-TakeControl.patch | 25 ++ ...ifying-whether-clients-may-change-en.patch | 45 ++ ...heck-for-NULL-before-reading-pm-what.patch | 29 ++ ...shared-util-Fix-glob_extend-argument.patch | 28 ++ ...off-by-one-error-in-tag_to_udev_node.patch | 50 +++ ...ize-deserialize-forbid_restart-value.patch | 51 +++ systemd-mini.changes | 47 +++ systemd-mini.spec | 51 +++ systemd.changes | 47 +++ systemd.spec | 51 +++ 21 files changed, 1175 insertions(+) create mode 100644 0001-Fix-bad-assert-in-show_pid_array.patch create mode 100644 0001-Never-call-qsort-on-potentially-NULL-arrays.patch create mode 100644 0001-core-unify-the-way-we-denote-serialization-attribute.patch create mode 100644 0001-dbus-common-avoid-leak-in-error-path.patch create mode 100644 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch create mode 100644 0001-drop-ins-check-return-value.patch create mode 100644 0001-gpt-auto-generator-exit-immediately-if-in-container.patch create mode 100644 0001-journald-fix-minor-memory-leak.patch create mode 100644 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch create mode 100644 0001-login-fix-invalid-free-in-sd_session_get_vt.patch create mode 100644 0001-login-make-sd_session_get_vt-actually-work.patch create mode 100644 0001-logind-fix-bus-introspection-data-for-TakeControl.patch create mode 100644 0001-manager-when-verifying-whether-clients-may-change-en.patch create mode 100644 0001-mount-check-for-NULL-before-reading-pm-what.patch create mode 100644 0001-shared-util-Fix-glob_extend-argument.patch create mode 100644 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch create mode 100644 0001-systemd-serialize-deserialize-forbid_restart-value.patch diff --git a/0001-Fix-bad-assert-in-show_pid_array.patch b/0001-Fix-bad-assert-in-show_pid_array.patch new file mode 100644 index 00000000..e62ab8b5 --- /dev/null +++ b/0001-Fix-bad-assert-in-show_pid_array.patch @@ -0,0 +1,35 @@ +From a0551d26ab5c6e0d5089b42a6319baef0e28ad92 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 14 Oct 2013 19:15:24 -0400 +Subject: [PATCH] Fix bad assert in show_pid_array + +This function should get the same treatment as other qsort uses +did in 7ff7394 "Never call qsort on potentially NULL arrays". + +Reported-by: Oleksii Shevchuk +--- + src/shared/cgroup-show.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +Index: systemd-208/src/shared/cgroup-show.c +=================================================================== +--- systemd-208.orig/src/shared/cgroup-show.c ++++ systemd-208/src/shared/cgroup-show.c +@@ -44,8 +44,6 @@ static void show_pid_array(int pids[], u + unsigned i, m, pid_width; + pid_t biggest = 0; + +- assert(n_pids > 0); +- + /* Filter duplicates */ + m = 0; + for (i = 0; i < n_pids; i++) { +@@ -65,7 +63,7 @@ static void show_pid_array(int pids[], u + pid_width = DECIMAL_STR_WIDTH(biggest); + + /* And sort */ +- qsort(pids, n_pids, sizeof(pid_t), compare); ++ qsort_safe(pids, n_pids, sizeof(pid_t), compare); + + if(flags & OUTPUT_FULL_WIDTH) + n_columns = 0; diff --git a/0001-Never-call-qsort-on-potentially-NULL-arrays.patch b/0001-Never-call-qsort-on-potentially-NULL-arrays.patch new file mode 100644 index 00000000..515348fb --- /dev/null +++ b/0001-Never-call-qsort-on-potentially-NULL-arrays.patch @@ -0,0 +1,385 @@ +From 7ff7394d9e4e9189c30fd018235e6b1728c6f2d0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Oct 2013 19:33:13 -0400 +Subject: [PATCH] Never call qsort on potentially NULL arrays + +This extends 62678ded 'efi: never call qsort on potentially +NULL arrays' to all other places where qsort is used and it +is not obvious that the count is non-zero. +--- + src/analyze/systemd-analyze.c | 2 +- + src/cgtop/cgtop.c | 2 +- + src/core/namespace.c | 38 ++++++++++++++++++++------------------ + src/journal/catalog.c | 2 +- + src/journal/journal-file.c | 2 +- + src/journal/journal-vacuum.c | 3 +-- + src/journal/journalctl.c | 2 +- + src/libsystemd-bus/bus-match.c | 2 +- + src/libudev/libudev-enumerate.c | 2 +- + src/nss-myhostname/netlink.c | 3 ++- + src/readahead/readahead-collect.c | 39 ++++++++++++++++++++++----------------- + src/shared/cgroup-show.c | 2 ++ + src/shared/conf-files.c | 2 +- + src/shared/efivars.c | 3 +-- + src/shared/fileio.c | 1 + + src/shared/util.h | 12 ++++++++++++ + src/systemctl/systemctl.c | 10 +++++----- + 17 files changed, 74 insertions(+), 53 deletions(-) + +diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c +index 27d063c..a4f15eb 100644 +--- a/src/analyze/systemd-analyze.c ++++ b/src/analyze/systemd-analyze.c +@@ -768,7 +768,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, unsigned + if (r < 0) + return r; + +- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); ++ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); + + r = acquire_boot_times(bus, &boot); + if (r < 0) +diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c +index cacf705..293a211 100644 +--- a/src/cgtop/cgtop.c ++++ b/src/cgtop/cgtop.c +@@ -461,7 +461,7 @@ static int display(Hashmap *a) { + if (g->n_tasks_valid || g->cpu_valid || g->memory_valid || g->io_valid) + array[n++] = g; + +- qsort(array, n, sizeof(Group*), group_compare); ++ qsort_safe(array, n, sizeof(Group*), group_compare); + + /* Find the longest names in one run */ + for (j = 0; j < n; j++) { +diff --git a/src/core/namespace.c b/src/core/namespace.c +index 16b132b..936f368 100644 +--- a/src/core/namespace.c ++++ b/src/core/namespace.c +@@ -222,7 +222,7 @@ int setup_namespace(char** read_write_dirs, + strv_length(read_only_dirs) + + strv_length(inaccessible_dirs) + + (private_tmp ? 2 : 0); +- BindMount *m, *mounts; ++ BindMount *m, *mounts = NULL; + int r = 0; + + if (!mount_flags) +@@ -231,27 +231,29 @@ int setup_namespace(char** read_write_dirs, + if (unshare(CLONE_NEWNS) < 0) + return -errno; + +- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); +- if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 || +- (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 || +- (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0) +- return r; ++ if (n) { ++ m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); ++ if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 || ++ (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 || ++ (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0) ++ return r; ++ ++ if (private_tmp) { ++ m->path = "/tmp"; ++ m->mode = PRIVATE_TMP; ++ m++; ++ ++ m->path = "/var/tmp"; ++ m->mode = PRIVATE_VAR_TMP; ++ m++; ++ } + +- if (private_tmp) { +- m->path = "/tmp"; +- m->mode = PRIVATE_TMP; +- m++; ++ assert(mounts + n == m); + +- m->path = "/var/tmp"; +- m->mode = PRIVATE_VAR_TMP; +- m++; ++ qsort(mounts, n, sizeof(BindMount), mount_path_compare); ++ drop_duplicates(mounts, &n); + } + +- assert(mounts + n == m); +- +- qsort(mounts, n, sizeof(BindMount), mount_path_compare); +- drop_duplicates(mounts, &n); +- + /* Remount / as SLAVE so that nothing now mounted in the namespace + shows up in the parent */ + if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL) < 0) +diff --git a/src/journal/catalog.c b/src/journal/catalog.c +index 7738d24..90ca008 100644 +--- a/src/journal/catalog.c ++++ b/src/journal/catalog.c +@@ -399,7 +399,7 @@ int catalog_update(const char* database, const char* root, const char* const* di + } + + assert(n == hashmap_size(h)); +- qsort(items, n, sizeof(CatalogItem), catalog_compare_func); ++ qsort_safe(items, n, sizeof(CatalogItem), catalog_compare_func); + + r = write_catalog(database, h, sb, items, n); + if (r < 0) +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 78b937b..901e71b 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -1344,7 +1344,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st + + /* Order by the position on disk, in order to improve seek + * times for rotating media. */ +- qsort(items, n_iovec, sizeof(EntryItem), entry_item_cmp); ++ qsort_safe(items, n_iovec, sizeof(EntryItem), entry_item_cmp); + + r = journal_file_append_entry_internal(f, ts, xor_hash, items, n_iovec, seqnum, ret, offset); + +diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c +index 8d5effb..d4a1c6c 100644 +--- a/src/journal/journal-vacuum.c ++++ b/src/journal/journal-vacuum.c +@@ -299,8 +299,7 @@ int journal_directory_vacuum( + n_list ++; + } + +- if (n_list > 0) +- qsort(list, n_list, sizeof(struct vacuum_info), vacuum_compare); ++ qsort_safe(list, n_list, sizeof(struct vacuum_info), vacuum_compare); + + for (i = 0; i < n_list; i++) { + struct statvfs ss; +diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c +index 2f8be1b..275458c 100644 +--- a/src/journal/journalctl.c ++++ b/src/journal/journalctl.c +@@ -761,7 +761,7 @@ static int get_relative_boot_id(sd_journal *j, sd_id128_t *boot_id, int relative + sd_journal_flush_matches(j); + } + +- qsort(all_ids, count, sizeof(boot_id_t), boot_id_cmp); ++ qsort_safe(all_ids, count, sizeof(boot_id_t), boot_id_cmp); + + if (sd_id128_equal(*boot_id, SD_ID128_NULL)) { + if (relative > (int) count || relative <= -(int)count) +diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c +index 1411167..916682a 100644 +--- a/src/libsystemd-bus/bus-match.c ++++ b/src/libsystemd-bus/bus-match.c +@@ -768,7 +768,7 @@ int bus_match_parse( + } + + /* Order the whole thing, so that we always generate the same tree */ +- qsort(components, n_components, sizeof(struct bus_match_component), match_component_compare); ++ qsort_safe(components, n_components, sizeof(struct bus_match_component), match_component_compare); + + /* Check for duplicates */ + for (i = 0; i+1 < n_components; i++) +diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c +index 8146f27..e71d766 100644 +--- a/src/libudev/libudev-enumerate.c ++++ b/src/libudev/libudev-enumerate.c +@@ -276,7 +276,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume + size_t move_later_prefix = 0; + + udev_list_cleanup(&udev_enumerate->devices_list); +- qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp); ++ qsort_safe(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp); + + max = udev_enumerate->devices_cur; + for (i = 0; i < max; i++) { +diff --git a/src/nss-myhostname/netlink.c b/src/nss-myhostname/netlink.c +index b1ef912..47a41f5 100644 +--- a/src/nss-myhostname/netlink.c ++++ b/src/nss-myhostname/netlink.c +@@ -197,7 +197,8 @@ finish: + return r; + } + +- qsort(list, n_list, sizeof(struct address), address_compare); ++ if (n_list) ++ qsort(list, n_list, sizeof(struct address), address_compare); + + *_list = list; + *_n_list = n_list; +diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c +index 32888ad..6b74866 100644 +--- a/src/readahead/readahead-collect.c ++++ b/src/readahead/readahead-collect.c +@@ -536,8 +536,7 @@ done: + HASHMAP_FOREACH_KEY(q, p, files, i) + pack_file(pack, p, on_btrfs); + } else { +- struct item *ordered, *j; +- unsigned k, n; ++ unsigned n; + + /* On rotating media, order things by the block + * numbers */ +@@ -545,25 +544,31 @@ done: + log_debug("Ordering..."); + + n = hashmap_size(files); +- if (!(ordered = new(struct item, n))) { +- r = log_oom(); +- goto finish; +- } +- +- j = ordered; +- HASHMAP_FOREACH_KEY(q, p, files, i) { +- memcpy(j, q, sizeof(struct item)); +- j++; +- } ++ if (n) { ++ _cleanup_free_ struct item *ordered; ++ struct item *j; ++ unsigned k; ++ ++ ordered = new(struct item, n); ++ if (!ordered) { ++ r = log_oom(); ++ goto finish; ++ } + +- assert(ordered + n == j); ++ j = ordered; ++ HASHMAP_FOREACH_KEY(q, p, files, i) { ++ memcpy(j, q, sizeof(struct item)); ++ j++; ++ } + +- qsort(ordered, n, sizeof(struct item), qsort_compare); ++ assert(ordered + n == j); + +- for (k = 0; k < n; k++) +- pack_file(pack, ordered[k].path, on_btrfs); ++ qsort(ordered, n, sizeof(struct item), qsort_compare); + +- free(ordered); ++ for (k = 0; k < n; k++) ++ pack_file(pack, ordered[k].path, on_btrfs); ++ } else ++ log_warning("No pack files"); + } + + log_debug("Finalizing..."); +diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c +index e971f36..cc44ab4 100644 +--- a/src/shared/cgroup-show.c ++++ b/src/shared/cgroup-show.c +@@ -44,6 +44,8 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi + unsigned i, m, pid_width; + pid_t biggest = 0; + ++ assert(n_pids > 0); ++ + /* Filter duplicates */ + m = 0; + for (i = 0; i < n_pids; i++) { +diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c +index 6d99739..ed4070c 100644 +--- a/src/shared/conf-files.c ++++ b/src/shared/conf-files.c +@@ -127,7 +127,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const + return -ENOMEM; + } + +- qsort(files, hashmap_size(fh), sizeof(char *), base_cmp); ++ qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp); + *strv = files; + + hashmap_free(fh); +diff --git a/src/shared/efivars.c b/src/shared/efivars.c +index c015b16..f3eb6a6 100644 +--- a/src/shared/efivars.c ++++ b/src/shared/efivars.c +@@ -384,8 +384,7 @@ int efi_get_boot_options(uint16_t **options) { + list[count ++] = id; + } + +- if (list) +- qsort(list, count, sizeof(uint16_t), cmp_uint16); ++ qsort_safe(list, count, sizeof(uint16_t), cmp_uint16); + + *options = list; + return count; +diff --git a/src/shared/fileio.c b/src/shared/fileio.c +index 603a1c7..733b320 100644 +--- a/src/shared/fileio.c ++++ b/src/shared/fileio.c +@@ -662,6 +662,7 @@ int get_status_field(const char *filename, const char *pattern, char **field) { + int r; + + assert(filename); ++ assert(pattern); + assert(field); + + r = read_full_file(filename, &status, NULL); +diff --git a/src/shared/util.h b/src/shared/util.h +index 26af5b3..09e556d 100644 +--- a/src/shared/util.h ++++ b/src/shared/util.h +@@ -772,3 +772,15 @@ bool id128_is_valid(const char *s) _pure_; + void parse_user_at_host(char *arg, char **user, char **host); + + int split_pair(const char *s, const char *sep, char **l, char **r); ++ ++/** ++ * Normal qsort requires base to be nonnull. Here were require ++ * that only if nmemb > 0. ++ */ ++static inline void qsort_safe(void *base, size_t nmemb, size_t size, ++ int (*compar)(const void *, const void *)) { ++ if (nmemb) { ++ assert(base); ++ qsort(base, nmemb, size, compar); ++ } ++} +diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c +index d75281f..036828b 100644 +--- a/src/systemctl/systemctl.c ++++ b/src/systemctl/systemctl.c +@@ -471,7 +471,7 @@ static int list_units(DBusConnection *bus, char **args) { + if (r < 0) + return r; + +- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); ++ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); + + output_units_list(unit_infos, c); + +@@ -733,8 +733,8 @@ static int list_sockets(DBusConnection *bus, char **args) { + listen = triggered = NULL; /* avoid cleanup */ + } + +- qsort(socket_infos, cs, sizeof(struct socket_info), +- (__compar_fn_t) socket_info_compare); ++ qsort_safe(socket_infos, cs, sizeof(struct socket_info), ++ (__compar_fn_t) socket_info_compare); + + output_sockets_list(socket_infos, cs); + +@@ -1108,7 +1108,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, int leve + if (r < 0) + return r; + +- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); ++ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); + + STRV_FOREACH(c, deps) { + if (strv_contains(u, *c)) { +@@ -3532,7 +3532,7 @@ static int show_all(const char* verb, + if (r < 0) + return r; + +- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); ++ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); + + for (u = unit_infos; u < unit_infos + c; u++) { + _cleanup_free_ char *p = NULL; +-- +1.8.4 + diff --git a/0001-core-unify-the-way-we-denote-serialization-attribute.patch b/0001-core-unify-the-way-we-denote-serialization-attribute.patch new file mode 100644 index 00000000..e33e45d8 --- /dev/null +++ b/0001-core-unify-the-way-we-denote-serialization-attribute.patch @@ -0,0 +1,40 @@ +From 8d1a28020409ee4afea6ef8c1c4d3522a209284e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 9 Oct 2013 00:13:55 +0200 +Subject: [PATCH] core: unify the way we denote serialization attributes + +--- + src/core/service.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index 98b1599..96ed2d3 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2652,7 +2652,7 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) { + unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir); + + if (s->forbid_restart) +- unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart)); ++ unit_serialize_item(u, f, "forbid-restart", yes_no(s->forbid_restart)); + + return 0; + } +@@ -2790,12 +2790,12 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, + return log_oom(); + + s->exec_context.var_tmp_dir = t; +- } else if (streq(key, "forbid_restart")) { ++ } else if (streq(key, "forbid-restart")) { + int b; + + b = parse_boolean(value); + if (b < 0) +- log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value); ++ log_debug_unit(u->id, "Failed to parse forbid-restart value %s", value); + else + s->forbid_restart = b; + } else +-- +1.8.4 + diff --git a/0001-dbus-common-avoid-leak-in-error-path.patch b/0001-dbus-common-avoid-leak-in-error-path.patch new file mode 100644 index 00000000..e2ac93f4 --- /dev/null +++ b/0001-dbus-common-avoid-leak-in-error-path.patch @@ -0,0 +1,71 @@ +From 74dcc2df7b2a340c3e1fe9e61e5c8deb324c83d7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Oct 2013 19:33:20 -0400 +Subject: [PATCH] dbus-common: avoid leak in error path + +src/shared/dbus-common.c:968:33: warning: Potential leak of memory pointed to by 'l' + return -EINVAL; + ^~~~~~ +--- + src/shared/dbus-common.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c +index c727cae..3ba2d87 100644 +--- a/src/shared/dbus-common.c ++++ b/src/shared/dbus-common.c +@@ -934,7 +934,7 @@ int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l) { + int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { + DBusMessageIter sub, sub2; + unsigned n = 0, i = 0; +- char **l; ++ _cleanup_strv_free_ char **l = NULL; + + assert(iter); + assert(_l); +@@ -953,6 +953,7 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { + l = new(char*, n*2+1); + if (!l) + return -ENOMEM; ++ l[0] = NULL; /* make sure that l is properly terminated at all times */ + + dbus_message_iter_recurse(iter, &sub); + +@@ -968,26 +969,25 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { + return -EINVAL; + + l[i] = strdup(a); +- if (!l[i]) { +- strv_free(l); ++ if (!l[i]) + return -ENOMEM; +- } ++ i++; + +- l[++i] = strdup(b); +- if (!l[i]) { +- strv_free(l); ++ l[i] = strdup(b); ++ if (!l[i]) + return -ENOMEM; +- } +- + i++; ++ + dbus_message_iter_next(&sub); + } + + assert(i == n*2); + l[i] = NULL; + +- if (_l) ++ if (_l) { + *_l = l; ++ l = NULL; /* avoid freeing */ ++ } + + return 0; + } +-- +1.8.4 + diff --git a/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch b/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch new file mode 100644 index 00000000..53e8253f --- /dev/null +++ b/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch @@ -0,0 +1,33 @@ +From 6c7980093c4e39d07bf06484f96f489e236c7c29 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 10 Oct 2013 01:38:11 +0200 +Subject: [PATCH] do not accept "garbage" from acpi firmware performance data + (FPDT) + +00000000 46 42 50 54 38 00 00 00 02 00 30 02 00 00 00 00 |FBPT8.....0.....| +00000010 23 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |#E..............| +00000020 f5 6a 51 00 00 00 00 00 00 00 00 00 00 00 00 00 |.jQ.............| +00000030 00 00 00 00 00 00 00 00 70 74 61 6c 58 00 00 00 |........ptalX...| +--- + src/shared/acpi-fpdt.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c +index af58c7c..75648b4 100644 +--- a/src/shared/acpi-fpdt.c ++++ b/src/shared/acpi-fpdt.c +@@ -146,6 +146,11 @@ int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { + if (brec.type != ACPI_FPDT_BOOT_REC) + return -EINVAL; + ++ if (brec.startup_start == 0 || brec.exit_services_exit < brec.startup_start) ++ return -EINVAL; ++ if (brec.exit_services_exit > NSEC_PER_HOUR) ++ return -EINVAL; ++ + if (loader_start) + *loader_start = brec.startup_start / 1000; + if (loader_exit) +-- +1.8.4 + diff --git a/0001-drop-ins-check-return-value.patch b/0001-drop-ins-check-return-value.patch new file mode 100644 index 00000000..35a0f708 --- /dev/null +++ b/0001-drop-ins-check-return-value.patch @@ -0,0 +1,29 @@ +From 6891529fe1176c046ece579807ff48e3191692f3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Oct 2013 19:33:36 -0400 +Subject: [PATCH] drop-ins: check return value + +If the function failed, nothing serious would happen +because unlink would probably return EFAULT, but this +would obscure the real error and is a bit sloppy. +--- + src/core/unit.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/core/unit.c b/src/core/unit.c +index 4b97710..1db7d06 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -2908,6 +2908,9 @@ int unit_remove_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name) { + return 0; + + r = drop_in_file(u, mode, name, &p, &q); ++ if (r < 0) ++ return r; ++ + if (unlink(q) < 0) + r = errno == ENOENT ? 0 : -errno; + else +-- +1.8.4 + diff --git a/0001-gpt-auto-generator-exit-immediately-if-in-container.patch b/0001-gpt-auto-generator-exit-immediately-if-in-container.patch new file mode 100644 index 00000000..4d1fee23 --- /dev/null +++ b/0001-gpt-auto-generator-exit-immediately-if-in-container.patch @@ -0,0 +1,40 @@ +From 9a5cb1371b6d8b0a04bd08665bcf9b06cb40c64c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 3 Oct 2013 22:13:01 -0400 +Subject: [PATCH] gpt-auto-generator: exit immediately if in container + +Otherwise we get an ugly warning when running systemd in +a container. +--- + src/gpt-auto-generator/gpt-auto-generator.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c +index ca54925..d2b4213 100644 +--- a/src/gpt-auto-generator/gpt-auto-generator.c ++++ b/src/gpt-auto-generator/gpt-auto-generator.c +@@ -38,6 +38,7 @@ + #include "libudev.h" + #include "special.h" + #include "unit-name.h" ++#include "virt.h" + + /* TODO: + * +@@ -481,6 +482,13 @@ int main(int argc, char *argv[]) { + umask(0022); + + if (in_initrd()) { ++ log_debug("In initrd, exiting."); ++ r = 0; ++ goto finish; ++ } ++ ++ if (detect_container(NULL) > 0) { ++ log_debug("In a container, exiting."); + r = 0; + goto finish; + } +-- +1.8.4 + diff --git a/0001-journald-fix-minor-memory-leak.patch b/0001-journald-fix-minor-memory-leak.patch new file mode 100644 index 00000000..10df2c01 --- /dev/null +++ b/0001-journald-fix-minor-memory-leak.patch @@ -0,0 +1,25 @@ +From 2ee0591d12b9e725c4585502285fd91cde682d9b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 9 Oct 2013 04:03:45 +0200 +Subject: [PATCH] journald: fix minor memory leak + +--- + src/journal/journal-vacuum.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c +index c73ad8f..8d5effb 100644 +--- a/src/journal/journal-vacuum.c ++++ b/src/journal/journal-vacuum.c +@@ -278,6 +278,8 @@ int journal_directory_vacuum( + } else if (errno != ENOENT) + log_warning("Failed to delete %s/%s: %m", directory, p); + ++ free(p); ++ + continue; + } + +-- +1.8.4 + diff --git a/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch b/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch new file mode 100644 index 00000000..0ed6caa1 --- /dev/null +++ b/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch @@ -0,0 +1,39 @@ +From 2b98f75a63e6022bf74a7d678c47faa5208c794f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 9 Oct 2013 22:13:13 -0400 +Subject: [PATCH] journald: remove rotated file from hashmap when rotation + fails + +Before, when the user journal file was rotated, journal_file_rotate +could close the old file and fail to open the new file. In that +case, we would leave the old (deallocated) file in the hashmap. +On subsequent accesses, we could retrieve this stale entry, leading +to a segfault. + +When journal_file_rotate fails with the file pointer set to 0, +old file is certainly gone, and cannot be used anymore. + +https://bugzilla.redhat.com/show_bug.cgi?id=890463 +--- + src/journal/journald-server.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c +index 4f47eb1..e03e413 100644 +--- a/src/journal/journald-server.c ++++ b/src/journal/journald-server.c +@@ -321,8 +321,10 @@ void server_rotate(Server *s) { + if (r < 0) + if (f) + log_error("Failed to rotate %s: %s", f->path, strerror(-r)); +- else ++ else { + log_error("Failed to create user journal: %s", strerror(-r)); ++ hashmap_remove(s->user_journals, k); ++ } + else { + hashmap_replace(s->user_journals, k, f); + server_fix_perms(s, f, PTR_TO_UINT32(k)); +-- +1.8.4 + diff --git a/0001-login-fix-invalid-free-in-sd_session_get_vt.patch b/0001-login-fix-invalid-free-in-sd_session_get_vt.patch new file mode 100644 index 00000000..7a7551ec --- /dev/null +++ b/0001-login-fix-invalid-free-in-sd_session_get_vt.patch @@ -0,0 +1,27 @@ +From 3f4fee033bf0f623de74f3e8a14c42b8ff81c36e Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 10 Oct 2013 13:09:37 +0200 +Subject: [PATCH] login: fix invalid free() in sd_session_get_vt() + +We need to clear variables markes as _cleanup_free_. Otherwise, our +error-paths might corrupt random memory. +--- + src/login/sd-login.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/login/sd-login.c b/src/login/sd-login.c +index 71d8c29..6c27dfe 100644 +--- a/src/login/sd-login.c ++++ b/src/login/sd-login.c +@@ -350,7 +350,7 @@ _public_ int sd_session_get_tty(const char *session, char **tty) { + } + + _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) { +- _cleanup_free_ char *vtnr_string; ++ _cleanup_free_ char *vtnr_string = NULL; + unsigned u; + int r; + +-- +1.8.4 + diff --git a/0001-login-make-sd_session_get_vt-actually-work.patch b/0001-login-make-sd_session_get_vt-actually-work.patch new file mode 100644 index 00000000..49a0a13c --- /dev/null +++ b/0001-login-make-sd_session_get_vt-actually-work.patch @@ -0,0 +1,27 @@ +From 0581dac2c146cef0f55841a4c136dc48409c8eaa Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 10 Oct 2013 13:11:27 +0200 +Subject: [PATCH] login: make sd_session_get_vt() actually work + +We use VTNR, not VTNr as key. Until now sd_session_get_vt() just returns +an error. +--- + src/login/sd-login.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/login/sd-login.c b/src/login/sd-login.c +index 6c27dfe..7e25041 100644 +--- a/src/login/sd-login.c ++++ b/src/login/sd-login.c +@@ -354,7 +354,7 @@ _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) { + unsigned u; + int r; + +- r = session_get_string(session, "VTNr", &vtnr_string); ++ r = session_get_string(session, "VTNR", &vtnr_string); + if (r < 0) + return r; + +-- +1.8.4 + diff --git a/0001-logind-fix-bus-introspection-data-for-TakeControl.patch b/0001-logind-fix-bus-introspection-data-for-TakeControl.patch new file mode 100644 index 00000000..829333e3 --- /dev/null +++ b/0001-logind-fix-bus-introspection-data-for-TakeControl.patch @@ -0,0 +1,25 @@ +From 660ea9620f7b8f99d08a2770d4e81acfd8aea02e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 4 Oct 2013 21:16:40 +0200 +Subject: [PATCH] logind: fix bus introspection data for TakeControl() + +--- + src/login/logind-session-dbus.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c +index 5f6bafb..be4e01c 100644 +--- a/src/login/logind-session-dbus.c ++++ b/src/login/logind-session-dbus.c +@@ -41,7 +41,7 @@ + " \n" \ + " \n" \ + " \n" \ +- " \n" \ ++ " \n" \ + " \n" \ + " \n" \ + " \n" \ +-- +1.8.4 + diff --git a/0001-manager-when-verifying-whether-clients-may-change-en.patch b/0001-manager-when-verifying-whether-clients-may-change-en.patch new file mode 100644 index 00000000..57bb3648 --- /dev/null +++ b/0001-manager-when-verifying-whether-clients-may-change-en.patch @@ -0,0 +1,45 @@ +From a316932f5a627c1ef78f568fd5dfa579f12e76b2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 4 Oct 2013 17:01:37 +0200 +Subject: [PATCH] manager: when verifying whether clients may change + environment using selinux check for "reload" rather "reboot" + +This appears to be a copy/paste error. +--- + src/core/dbus-manager.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c +index 676a07f..8f4d017 100644 +--- a/src/core/dbus-manager.c ++++ b/src/core/dbus-manager.c +@@ -1397,7 +1397,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, + _cleanup_strv_free_ char **l = NULL; + char **e = NULL; + +- SELINUX_ACCESS_CHECK(connection, message, "reboot"); ++ SELINUX_ACCESS_CHECK(connection, message, "reload"); + + r = bus_parse_strv(message, &l); + if (r == -ENOMEM) +@@ -1424,7 +1424,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, + _cleanup_strv_free_ char **l = NULL; + char **e = NULL; + +- SELINUX_ACCESS_CHECK(connection, message, "reboot"); ++ SELINUX_ACCESS_CHECK(connection, message, "reload"); + + r = bus_parse_strv(message, &l); + if (r == -ENOMEM) +@@ -1452,7 +1452,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, + char **f = NULL; + DBusMessageIter iter; + +- SELINUX_ACCESS_CHECK(connection, message, "reboot"); ++ SELINUX_ACCESS_CHECK(connection, message, "reload"); + + if (!dbus_message_iter_init(message, &iter)) + goto oom; +-- +1.8.4 + diff --git a/0001-mount-check-for-NULL-before-reading-pm-what.patch b/0001-mount-check-for-NULL-before-reading-pm-what.patch new file mode 100644 index 00000000..e8c830f1 --- /dev/null +++ b/0001-mount-check-for-NULL-before-reading-pm-what.patch @@ -0,0 +1,29 @@ +From 9c03872bc8fb2a381eafe7301ef9811b641686dd Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Fri, 4 Oct 2013 18:22:40 -0400 +Subject: [PATCH] mount: check for NULL before reading pm->what + +Since a57f7e2c828b85, a mount unit with garbage in it would cause +systemd to crash on loading it. + +ref: https://bugs.freedesktop.org/show_bug.cgi?id=70148 +--- + src/core/mount.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index 93bfa99..db055f0 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -182,7 +182,7 @@ static int mount_add_mount_links(Mount *m) { + * for the source path (if this is a bind mount) to be + * available. */ + pm = get_mount_parameters_fragment(m); +- if (pm && path_is_absolute(pm->what)) { ++ if (pm && pm->what && path_is_absolute(pm->what)) { + r = unit_require_mounts_for(UNIT(m), pm->what); + if (r < 0) + return r; +-- +1.8.4 + diff --git a/0001-shared-util-Fix-glob_extend-argument.patch b/0001-shared-util-Fix-glob_extend-argument.patch new file mode 100644 index 00000000..4695547d --- /dev/null +++ b/0001-shared-util-Fix-glob_extend-argument.patch @@ -0,0 +1,28 @@ +From a8ccacf5344c4434b1d5ff3837307acb8fcf93d2 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Mon, 14 Oct 2013 08:15:51 +0200 +Subject: [PATCH] shared/util: Fix glob_extend() argument + +glob_extend() would completely fail to work, or return incorrect +data if it wasn't being passed the current getopt "optarg" variable +as it used the global variable, instead of the passed parameters. +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 54dbace..1822770 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -4461,7 +4461,7 @@ int glob_extend(char ***strv, const char *path) { + char **p; + + errno = 0; +- k = glob(optarg, GLOB_NOSORT|GLOB_BRACE, NULL, &g); ++ k = glob(path, GLOB_NOSORT|GLOB_BRACE, NULL, &g); + + if (k == GLOB_NOMATCH) + return -ENOENT; +-- +1.8.4 + diff --git a/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch b/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch new file mode 100644 index 00000000..eb6dedd0 --- /dev/null +++ b/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch @@ -0,0 +1,50 @@ +From 1d5989fd803d2019de0f6aaaf3cfb1cb2bbc3cdb Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sun, 6 Oct 2013 18:26:23 -0400 +Subject: [PATCH] shared/util: fix off-by-one error in tag_to_udev_node + +Triggered false negatives when encoding a string which needed every +character to be escaped, e.g. "LABEL=/". +--- + src/shared/util.c | 2 +- + src/test/test-device-nodes.c | 4 +++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 82f4221..31cea79 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -3527,7 +3527,7 @@ static char *tag_to_udev_node(const char *tagvalue, const char *by) { + if (u == NULL) + return NULL; + +- enc_len = strlen(u) * 4; ++ enc_len = strlen(u) * 4 + 1; + t = new(char, enc_len); + if (t == NULL) + return NULL; +diff --git a/src/test/test-device-nodes.c b/src/test/test-device-nodes.c +index 2f3dedb..59ba4be 100644 +--- a/src/test/test-device-nodes.c ++++ b/src/test/test-device-nodes.c +@@ -26,7 +26,7 @@ + + /* helpers for test_encode_devnode_name */ + static char *do_encode_string(const char *in) { +- size_t out_len = strlen(in) * 4; ++ size_t out_len = strlen(in) * 4 + 1; + char *out = malloc(out_len); + + assert_se(out); +@@ -46,6 +46,8 @@ static void test_encode_devnode_name(void) { + assert_se(expect_encoded_as("pinkiepie", "pinkiepie")); + assert_se(expect_encoded_as("valíd\\ųtf8", "valíd\\x5cųtf8")); + assert_se(expect_encoded_as("s/ash/ng", "s\\x2fash\\x2fng")); ++ assert_se(expect_encoded_as("/", "\\x2f")); ++ assert_se(expect_encoded_as("!", "\\x21")); + } + + int main(int argc, char *argv[]) { +-- +1.8.4 + diff --git a/0001-systemd-serialize-deserialize-forbid_restart-value.patch b/0001-systemd-serialize-deserialize-forbid_restart-value.patch new file mode 100644 index 00000000..6184c9a1 --- /dev/null +++ b/0001-systemd-serialize-deserialize-forbid_restart-value.patch @@ -0,0 +1,51 @@ +From 6aca9a587d4ad40b1c044f99e3714022201b9fd4 Mon Sep 17 00:00:00 2001 +From: Sylvia Else +Date: Sun, 6 Oct 2013 23:06:35 -0400 +Subject: [PATCH] systemd: serialize/deserialize forbid_restart value + +The Service type's forbid_restart field was not preserved by +serialization/deserialization, so the fact that the service should not +be restarted after stopping was lost. + +If a systemctl stop foo command has been given, but the foo service +has not yet stopped, and then the systemctl --system daemon-reload was +given, then when the foo service eventually stopped, systemd would +restart it. + +https://bugs.freedesktop.org/show_bug.cgi?id=69800 +--- + src/core/service.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/src/core/service.c b/src/core/service.c +index 6792024..98b1599 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2651,6 +2651,9 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) { + if (s->exec_context.var_tmp_dir) + unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir); + ++ if (s->forbid_restart) ++ unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart)); ++ + return 0; + } + +@@ -2787,6 +2790,14 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, + return log_oom(); + + s->exec_context.var_tmp_dir = t; ++ } else if (streq(key, "forbid_restart")) { ++ int b; ++ ++ b = parse_boolean(value); ++ if (b < 0) ++ log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value); ++ else ++ s->forbid_restart = b; + } else + log_debug_unit(u->id, "Unknown serialization key '%s'", key); + +-- +1.8.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 68686869..653cdbdb 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,50 @@ +------------------------------------------------------------------- +Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com + +- Add + 0001-gpt-auto-generator-exit-immediately-if-in-container.patch: + don't start gpt auto-generator in container (git). +- Add + 0001-manager-when-verifying-whether-clients-may-change-en.patch: + fix reload check in selinux case (git). +- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch: + fix introspection for TakeControl (git). +- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix + crash when parsing some incorrect unit (git). +- Add + 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch: + Fix udev rules parsing (git). +- Add + 0001-systemd-serialize-deserialize-forbid_restart-value.patch: + Fix incorrect deserialization for forbid_restart (git). +- Add + 0001-core-unify-the-way-we-denote-serialization-attribute.patch: + Ensure forbid_restart is named like other attributes (git). +- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in + journald (git). +- Add + 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch: + Improve ACPI firmware performance parsing (git). +- Add + 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch: + Fix journal rotation (git). +- Add + 0001-login-fix-invalid-free-in-sd_session_get_vt.patch: + Fix memory corruption in sd_session_get_vt (git). +- Add 0001-login-make-sd_session_get_vt-actually-work.patch: Ensure + sd_session_get_vt returns correct value (git). +- Add 0001-Never-call-qsort-on-potentially-NULL-arrays.patch: Don't + call qsort on NULL arrays (git). +- Add 0001-dbus-common-avoid-leak-in-error-path.patch: Fix memleak + in dbus-common code (git). +- Add 0001-drop-ins-check-return-value.patch: Fix return value for + drop-ins checks (git). +- Add 0001-shared-util-Fix-glob_extend-argument.patch: Fix + glob_extend argument (git). +- Add 0001-Fix-bad-assert-in-show_pid_array.patch: Fix bad assert + in show_pid_array (git). + + ------------------------------------------------------------------- Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 46a37f39..e00c4fcb 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -205,6 +205,40 @@ Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch # PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch +# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container +Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch +# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case +Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch +# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl +Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch +# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit +Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch +# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing +Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch +# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart +Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch +# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes +Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch +# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald +Patch69: 0001-journald-fix-minor-memory-leak.patch +# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing +Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch +# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation +Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch +# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt +Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch +# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value +Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch +# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays +Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch +# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code +Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch +# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks +Patch76: 0001-drop-ins-check-return-value.patch +# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument +Patch77: 0001-shared-util-Fix-glob_extend-argument.patch +# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array +Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -464,6 +498,23 @@ cp %{SOURCE7} m4/ %patch59 -p1 %patch60 -p1 %patch61 -p1 +%patch62 -p1 +%patch63 -p1 +%patch64 -p1 +%patch65 -p1 +%patch66 -p1 +%patch67 -p1 +%patch68 -p1 +%patch69 -p1 +%patch70 -p1 +%patch71 -p1 +%patch72 -p1 +%patch73 -p1 +%patch74 -p1 +%patch75 -p1 +%patch76 -p1 +%patch77 -p1 +%patch78 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 68686869..653cdbdb 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,50 @@ +------------------------------------------------------------------- +Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com + +- Add + 0001-gpt-auto-generator-exit-immediately-if-in-container.patch: + don't start gpt auto-generator in container (git). +- Add + 0001-manager-when-verifying-whether-clients-may-change-en.patch: + fix reload check in selinux case (git). +- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch: + fix introspection for TakeControl (git). +- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix + crash when parsing some incorrect unit (git). +- Add + 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch: + Fix udev rules parsing (git). +- Add + 0001-systemd-serialize-deserialize-forbid_restart-value.patch: + Fix incorrect deserialization for forbid_restart (git). +- Add + 0001-core-unify-the-way-we-denote-serialization-attribute.patch: + Ensure forbid_restart is named like other attributes (git). +- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in + journald (git). +- Add + 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch: + Improve ACPI firmware performance parsing (git). +- Add + 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch: + Fix journal rotation (git). +- Add + 0001-login-fix-invalid-free-in-sd_session_get_vt.patch: + Fix memory corruption in sd_session_get_vt (git). +- Add 0001-login-make-sd_session_get_vt-actually-work.patch: Ensure + sd_session_get_vt returns correct value (git). +- Add 0001-Never-call-qsort-on-potentially-NULL-arrays.patch: Don't + call qsort on NULL arrays (git). +- Add 0001-dbus-common-avoid-leak-in-error-path.patch: Fix memleak + in dbus-common code (git). +- Add 0001-drop-ins-check-return-value.patch: Fix return value for + drop-ins checks (git). +- Add 0001-shared-util-Fix-glob_extend-argument.patch: Fix + glob_extend argument (git). +- Add 0001-Fix-bad-assert-in-show_pid_array.patch: Fix bad assert + in show_pid_array (git). + + ------------------------------------------------------------------- Thu Oct 3 08:43:51 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 5d4272ce..3664bc2e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -200,6 +200,40 @@ Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch # PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch +# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container +Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch +# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case +Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch +# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl +Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch +# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit +Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch +# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing +Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch +# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart +Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch +# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes +Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch +# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald +Patch69: 0001-journald-fix-minor-memory-leak.patch +# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing +Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch +# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation +Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch +# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt +Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch +# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value +Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch +# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays +Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch +# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code +Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch +# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks +Patch76: 0001-drop-ins-check-return-value.patch +# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument +Patch77: 0001-shared-util-Fix-glob_extend-argument.patch +# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array +Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -459,6 +493,23 @@ cp %{SOURCE7} m4/ %patch59 -p1 %patch60 -p1 %patch61 -p1 +%patch62 -p1 +%patch63 -p1 +%patch64 -p1 +%patch65 -p1 +%patch66 -p1 +%patch67 -p1 +%patch68 -p1 +%patch69 -p1 +%patch70 -p1 +%patch71 -p1 +%patch72 -p1 +%patch73 -p1 +%patch74 -p1 +%patch75 -p1 +%patch76 -p1 +%patch77 -p1 +%patch78 -p1 # udev patches %patch1001 -p1 From b1c5070862b6545cba3e5e7d4a7ed58b5f3a2ae60252a365caa90a62c21c19b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Mon, 21 Oct 2013 13:15:22 +0000 Subject: [PATCH 159/221] Accepting request 204107 from Base:System - Add patch 1009-make-xsltproc-use-correct-ROFF-links.patch to have valid ROFF links in manual pages working again (bnc#842844) OBS-URL: https://build.opensuse.org/request/show/204107 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=164 --- 1009-make-xsltproc-use-correct-ROFF-links.patch | 10 ++++++++++ systemd.changes | 7 +++++++ systemd.spec | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 1009-make-xsltproc-use-correct-ROFF-links.patch diff --git a/1009-make-xsltproc-use-correct-ROFF-links.patch b/1009-make-xsltproc-use-correct-ROFF-links.patch new file mode 100644 index 00000000..c2f879d5 --- /dev/null +++ b/1009-make-xsltproc-use-correct-ROFF-links.patch @@ -0,0 +1,10 @@ +--- systemd-208/man/custom-man.xsl ++++ systemd-208/man/custom-man.xsl 2013-10-21 09:23:31.030735259 +0000 +@@ -61,4 +61,7 @@ + " + + ++ ++ ++ + diff --git a/systemd.changes b/systemd.changes index 653cdbdb..b6e13fc9 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de + +- Add patch + 1009-make-xsltproc-use-correct-ROFF-links.patch + to have valid ROFF links in manual pages working again (bnc#842844) + ------------------------------------------------------------------- Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 3664bc2e..e66c721d 100644 --- a/systemd.spec +++ b/systemd.spec @@ -250,6 +250,8 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) +Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -522,6 +524,7 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif +%patch1009 -p1 # ensure generate files are removed rm -f units/emergency.service From ee436add9e1b8fc32bc698c2f0058fb08544ddc6dd9e17c9b3edba27917b9a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 25 Oct 2013 16:54:14 +0000 Subject: [PATCH 160/221] Accepting request 204802 from Base:System - Add upstream patch 0001-analyze-set-white-background.patch to make SVG output of systemd analyze readable OBS-URL: https://build.opensuse.org/request/show/204802 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=165 --- 0001-analyze-set-white-background.patch | 32 +++++++++++++++++++++++++ systemd.changes | 7 ++++++ systemd.spec | 3 +++ 3 files changed, 42 insertions(+) create mode 100644 0001-analyze-set-white-background.patch diff --git a/0001-analyze-set-white-background.patch b/0001-analyze-set-white-background.patch new file mode 100644 index 00000000..89062844 --- /dev/null +++ b/0001-analyze-set-white-background.patch @@ -0,0 +1,32 @@ +From 418e37506e6a419a808a82081ca1616caa03a206 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Mon, 21 Oct 2013 19:29:23 +0000 +Subject: analyze: set white backgound + +In programs like eog and gimp the transparant background did not +look very good. + +https://bugs.freedesktop.org/show_bug.cgi?id=70720 +--- +diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c +index 26769d6..0cc4de7 100644 +--- a/src/analyze/systemd-analyze.c ++++ b/src/analyze/systemd-analyze.c +@@ -507,6 +507,7 @@ static int analyze_plot(DBusConnection *bus) { + /* style sheet */ + svg("\n \n\n\n"); + ++ svg("\n"); + svg("%s", pretty_times); + svg("%s %s (%s %s) %s", + isempty(osname) ? "Linux" : osname, +-- +cgit v0.9.0.2-2-gbebe diff --git a/systemd.changes b/systemd.changes index b6e13fc9..cce0aeb4 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de + +- Add upstream patch + 0001-analyze-set-white-background.patch + to make SVG output of systemd analyze readable + ------------------------------------------------------------------- Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index e66c721d..4231ba9f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -234,6 +234,8 @@ Patch76: 0001-drop-ins-check-return-value.patch Patch77: 0001-shared-util-Fix-glob_extend-argument.patch # PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch +# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white +Patch79: 0001-analyze-set-white-background.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -512,6 +514,7 @@ cp %{SOURCE7} m4/ %patch76 -p1 %patch77 -p1 %patch78 -p1 +%patch79 -p1 # udev patches %patch1001 -p1 From 9cbbdd781b051123b8ab717f95f6de04d8051908618e13579741657877747330 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 5 Nov 2013 05:52:16 +0000 Subject: [PATCH 161/221] Accepting request 205719 from Base:System - Add upstream patch 0001-analyze-set-text-on-side-with-most-space.patch to place the text on the side with most space OBS-URL: https://build.opensuse.org/request/show/205719 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=166 --- ...yze-set-text-on-side-with-most-space.patch | 90 +++++++++++++++++++ systemd.changes | 7 ++ systemd.spec | 3 + 3 files changed, 100 insertions(+) create mode 100644 0001-analyze-set-text-on-side-with-most-space.patch diff --git a/0001-analyze-set-text-on-side-with-most-space.patch b/0001-analyze-set-text-on-side-with-most-space.patch new file mode 100644 index 00000000..6268160c --- /dev/null +++ b/0001-analyze-set-text-on-side-with-most-space.patch @@ -0,0 +1,90 @@ +From 95168f7d55181475946ad93db30255c4d709df03 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 01 Nov 2013 21:57:47 +0000 +Subject: analyze: plot: place the text on the side with most space + +Set the width of the svg to always fit the longest string +while taking its starting position into consideration. + +Place the text on the right while the starting point is +in the first half of the screen. After that we put it on +the left to save the svg from being wider that it has to. +--- +diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c +index 6bfe13d..8730723 100644 +--- a/src/analyze/systemd-analyze.c ++++ b/src/analyze/systemd-analyze.c +@@ -509,7 +509,7 @@ static int analyze_plot(sd_bus *bus) { + m++; + + for (u = times; u < times + n; u++) { +- double len; ++ double text_start, text_width; + + if (u->ixt < boot->userspace_time || + u->ixt > boot->finish_time) { +@@ -517,10 +517,14 @@ static int analyze_plot(sd_bus *bus) { + u->name = NULL; + continue; + } +- len = ((boot->firmware_time + u->ixt) * SCALE_X) +- + (10.0 * strlen(u->name)); +- if (len > width) +- width = len; ++ ++ /* If the text cannot fit on the left side then ++ * increase the svg width so it fits on the right. ++ * TODO: calculate the text width more accurately */ ++ text_width = 8.0 * strlen(u->name); ++ text_start = (boot->firmware_time + u->ixt) * SCALE_X; ++ if (text_width > text_start && text_width + text_start > width) ++ width = text_width + text_start; + + if (u->iet > u->ixt && u->iet <= boot->finish_time + && u->aet == 0 && u->axt == 0) +@@ -608,7 +612,7 @@ static int analyze_plot(sd_bus *bus) { + svg_bar("active", boot->userspace_time, boot->finish_time, y); + svg_bar("generators", boot->generators_start_time, boot->generators_finish_time, y); + svg_bar("unitsload", boot->unitsload_start_time, boot->unitsload_finish_time, y); +- svg_text("left", boot->userspace_time, y, "systemd"); ++ svg_text(true, boot->userspace_time, y, "systemd"); + y++; + + for (u = times; u < times + n; u++) { +@@ -622,7 +626,8 @@ static int analyze_plot(sd_bus *bus) { + svg_bar("active", u->aet, u->axt, y); + svg_bar("deactivating", u->axt, u->iet, y); + +- b = u->ixt * SCALE_X > width * 2 / 3; ++ /* place the text on the left if we have passed the half of the svg width */ ++ b = u->ixt * SCALE_X < width / 2; + if (u->time) + svg_text(b, u->ixt, y, "%s (%s)", + u->name, format_timespan(ts, sizeof(ts), u->time, USEC_PER_MSEC)); +@@ -634,19 +639,19 @@ static int analyze_plot(sd_bus *bus) { + /* Legend */ + y++; + svg_bar("activating", 0, 300000, y); +- svg_text("right", 400000, y, "Activating"); ++ svg_text(true, 400000, y, "Activating"); + y++; + svg_bar("active", 0, 300000, y); +- svg_text("right", 400000, y, "Active"); ++ svg_text(true, 400000, y, "Active"); + y++; + svg_bar("deactivating", 0, 300000, y); +- svg_text("right", 400000, y, "Deactivating"); ++ svg_text(true, 400000, y, "Deactivating"); + y++; + svg_bar("generators", 0, 300000, y); +- svg_text("right", 400000, y, "Generators"); ++ svg_text(true, 400000, y, "Generators"); + y++; + svg_bar("unitsload", 0, 300000, y); +- svg_text("right", 400000, y, "Loading unit files"); ++ svg_text(true, 400000, y, "Loading unit files"); + y++; + + svg("\n\n"); +-- +cgit v0.9.0.2-2-gbebe diff --git a/systemd.changes b/systemd.changes index cce0aeb4..78f1b0e4 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de + +- Add upstream patch + 0001-analyze-set-text-on-side-with-most-space.patch + to place the text on the side with most space + ------------------------------------------------------------------- Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 4231ba9f..c0335c01 100644 --- a/systemd.spec +++ b/systemd.spec @@ -236,6 +236,8 @@ Patch77: 0001-shared-util-Fix-glob_extend-argument.patch Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch # PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white Patch79: 0001-analyze-set-white-background.patch +# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space +Patch80: 0001-analyze-set-text-on-side-with-most-space.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -515,6 +517,7 @@ cp %{SOURCE7} m4/ %patch77 -p1 %patch78 -p1 %patch79 -p1 +%patch80 -p1 # udev patches %patch1001 -p1 From ec448615f763103f629f42207be7c18b079fb9d0adc1e7c9585ba24a79618dd3 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 7 Nov 2013 08:05:11 +0000 Subject: [PATCH 162/221] Accepting request 205947 from Base:System - Add patch 1010-do-not-install-sulogin-unit-with-poweroff.patch that is do not install console-shell.service in any system target as this will cause automatic poweroff at boot (bnc#849071) OBS-URL: https://build.opensuse.org/request/show/205947 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=167 --- ...-do-not-install-sulogin-unit-with-poweroff.patch | 13 +++++++++++++ systemd.changes | 8 ++++++++ systemd.spec | 3 +++ 3 files changed, 24 insertions(+) create mode 100644 1010-do-not-install-sulogin-unit-with-poweroff.patch diff --git a/1010-do-not-install-sulogin-unit-with-poweroff.patch b/1010-do-not-install-sulogin-unit-with-poweroff.patch new file mode 100644 index 00000000..c854754f --- /dev/null +++ b/1010-do-not-install-sulogin-unit-with-poweroff.patch @@ -0,0 +1,13 @@ +| +| Belongs to bnc#849071 that is do not install console-shell.service +| in any system target as this will cause automatic poweroff at boot. +| +--- systemd-208/units/console-shell.service.m4.in ++++ systemd-208/units/console-shell.service.m4.in 2013-11-06 09:35:37.958693570 +0000 +@@ -26,6 +26,3 @@ StandardError=inherit + KillMode=process + IgnoreSIGPIPE=no + SendSIGHUP=yes +- +-[Install] +-WantedBy=getty.target diff --git a/systemd.changes b/systemd.changes index 78f1b0e4..c5a10894 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de + +- Add patch + 1010-do-not-install-sulogin-unit-with-poweroff.patch + that is do not install console-shell.service in any system target + as this will cause automatic poweroff at boot (bnc#849071) + ------------------------------------------------------------------- Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index c0335c01..62f08f07 100644 --- a/systemd.spec +++ b/systemd.spec @@ -256,6 +256,8 @@ Patch1007: 1007-physical-hotplug-cpu-and-memory.patch Patch1008: 1008-add-msft-compability-rules.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch +# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) +Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -531,6 +533,7 @@ cp %{SOURCE7} m4/ %patch1008 -p1 %endif %patch1009 -p1 +%patch1010 -p1 # ensure generate files are removed rm -f units/emergency.service From 5efbb9d19db30b777bd27216383ac7c28dae060abd6807097e91147640b8a3fe Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 30 Nov 2013 16:36:19 +0000 Subject: [PATCH 163/221] Accepting request 208952 from Base:System - Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50 (forwarded request 208810 from lbssousa) OBS-URL: https://build.opensuse.org/request/show/208952 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=168 --- 1011-check-4-valid-kmsg-device.patch | 70 ++++++++ ...XDG_RUNTIME_DIR_of_the_original_user.patch | 168 ++++++++++++++++++ ...y_session_activation_on_non_vt_seats.patch | 26 +++ systemd.changes | 22 +++ systemd.spec | 8 + 5 files changed, 294 insertions(+) create mode 100644 1011-check-4-valid-kmsg-device.patch create mode 100644 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch create mode 100644 U_logind_revert_lazy_session_activation_on_non_vt_seats.patch diff --git a/1011-check-4-valid-kmsg-device.patch b/1011-check-4-valid-kmsg-device.patch new file mode 100644 index 00000000..ffb36937 --- /dev/null +++ b/1011-check-4-valid-kmsg-device.patch @@ -0,0 +1,70 @@ +From: Werner Fink +Date: Thu, 21 Nov 2013 11:50:32 +0000 +Subject: [PATCH] Avoid busy systemd-journald + +Avoid a busy systemd-journald due polling a broken /dec/kmsg in lxc +environments. + +--- + journald-kmsg.c | 27 ++++++++++++++++++++++++++- + 1 file changed, 26 insertions(+), 1 deletion(-) + +Index: systemd-208/src/journal/journald-kmsg.c +=================================================================== +--- systemd-208/src/journal/journald-kmsg.c ++++ systemd-208/src/journal/journald-kmsg.c 2013-11-21 13:30:22.930735683 +0000 +@@ -23,7 +23,9 @@ + #include + #include + #include ++#include + #include ++#include + + #include + #include +@@ -377,20 +379,43 @@ int server_flush_dev_kmsg(Server *s) { + + int server_open_dev_kmsg(Server *s) { + struct epoll_event ev; ++ struct stat st; + + assert(s); + + s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); + if (s->dev_kmsg_fd < 0) { +- log_warning("Failed to open /dev/kmsg, ignoring: %m"); ++ /* Do not warn as it may not exists in LXC environments */ ++ if (errno != ENOENT) ++ log_warning("Failed to open /dev/kmsg, ignoring: %m"); + return 0; + } + ++ if (fstat(s->dev_kmsg_fd, &st) < 0) { ++ log_error("Failed to stat /dev/kmsg fd, ignoring: %m"); ++ close_nointr_nofail(s->dev_kmsg_fd); ++ s->dev_kmsg_fd = -1; ++ return 0; ++ } ++ ++ if (!S_ISCHR(st.st_mode) || major(st.st_rdev) != 1 || minor(st.st_rdev) != 11) { ++ int old_errno = errno; ++ errno = ENODEV; ++ log_warning("Irregular device /dev/kmsg, ignoring: %m"); ++ errno = old_errno; ++ close_nointr_nofail(s->dev_kmsg_fd); ++ s->dev_kmsg_fd = -1; ++ return 0; ++ } ++ + zero(ev); + ev.events = EPOLLIN; + ev.data.fd = s->dev_kmsg_fd; + if (epoll_ctl(s->epoll_fd, EPOLL_CTL_ADD, s->dev_kmsg_fd, &ev) < 0) { + ++ close_nointr_nofail(s->dev_kmsg_fd); ++ s->dev_kmsg_fd = -1; ++ + /* This will fail with EPERM on older kernels where + * /dev/kmsg is not readable. */ + if (errno == EPERM) diff --git a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch new file mode 100644 index 00000000..59d166ae --- /dev/null +++ b/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -0,0 +1,168 @@ +Based on upstream baae0358f349870544884e405e82e4be7d8add9f +| From: Lennart Poettering +| Date: Tue, 26 Nov 2013 04:05:00 +0000 +| Subject: pam_systemd: do not set XDG_RUNTIME_DIR if the session's original user is not the same as the newly logged in one +| It's better not to set any XDG_RUNTIME_DIR at all rather than one of a +| different user. So let's do this. +--- systemd-208/src/login/logind-dbus.c ++++ systemd-208/src/login/logind-dbus.c 2013-11-26 13:37:05.730735774 +0000 +@@ -523,6 +523,7 @@ static int bus_manager_create_session(Ma + DBUS_TYPE_OBJECT_PATH, &path, + DBUS_TYPE_STRING, &session->user->runtime_path, + DBUS_TYPE_UNIX_FD, &fifo_fd, ++ DBUS_TYPE_UINT32, &session->user->uid, + DBUS_TYPE_STRING, &cseat, + DBUS_TYPE_UINT32, &vtnr, + DBUS_TYPE_BOOLEAN, &exists, +--- systemd-208/src/login/logind-session-dbus.c ++++ systemd-208/src/login/logind-session-dbus.c 2013-11-26 13:36:07.478236401 +0000 +@@ -755,6 +755,7 @@ int session_send_create_reply(Session *s + DBUS_TYPE_OBJECT_PATH, &path, + DBUS_TYPE_STRING, &s->user->runtime_path, + DBUS_TYPE_UNIX_FD, &fifo_fd, ++ DBUS_TYPE_UINT32, &s->user->uid, + DBUS_TYPE_STRING, &cseat, + DBUS_TYPE_UINT32, &vtnr, + DBUS_TYPE_BOOLEAN, &exists, +--- systemd-208/src/login/pam-module.c ++++ systemd-208/src/login/pam-module.c 2013-11-26 14:32:20.194235777 +0000 +@@ -93,24 +93,18 @@ static int get_user_data( + assert(ret_username); + assert(ret_pw); + +- r = audit_loginuid_from_pid(0, &uid); +- if (r >= 0) +- pw = pam_modutil_getpwuid(handle, uid); +- else { +- r = pam_get_user(handle, &username, NULL); +- if (r != PAM_SUCCESS) { +- pam_syslog(handle, LOG_ERR, "Failed to get user name."); +- return r; +- } +- +- if (isempty(username)) { +- pam_syslog(handle, LOG_ERR, "User name not valid."); +- return PAM_AUTH_ERR; +- } ++ r = pam_get_user(handle, &username, NULL); ++ if (r != PAM_SUCCESS) { ++ pam_syslog(handle, LOG_ERR, "Failed to get user name."); ++ return r; ++ } + +- pw = pam_modutil_getpwnam(handle, username); ++ if (isempty(username)) { ++ pam_syslog(handle, LOG_ERR, "User name not valid."); ++ return PAM_AUTH_ERR; + } + ++ pw = pam_modutil_getpwnam(handle, username); + if (!pw) { + pam_syslog(handle, LOG_ERR, "Failed to get user data."); + return PAM_USER_UNKNOWN; +@@ -123,16 +117,14 @@ static int get_user_data( + } + + static int get_seat_from_display(const char *display, const char **seat, uint32_t *vtnr) { +- _cleanup_free_ char *p = NULL; +- int r; +- _cleanup_close_ int fd = -1; + union sockaddr_union sa = { + .un.sun_family = AF_UNIX, + }; ++ _cleanup_free_ char *p = NULL, *tty = NULL; ++ _cleanup_close_ int fd = -1; + struct ucred ucred; + socklen_t l; +- _cleanup_free_ char *tty = NULL; +- int v; ++ int v, r; + + assert(display); + assert(vtnr); +@@ -194,13 +186,12 @@ _public_ PAM_EXTERN int pam_sm_open_sess + dbus_bool_t remote, existing; + int r; + uint32_t vtnr = 0; ++ uid_t original_uid; + + assert(handle); + + dbus_error_init(&error); + +- /* pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); */ +- + /* Make this a NOP on non-logind systems */ + if (!logind_running()) + return PAM_SUCCESS; +@@ -213,6 +204,9 @@ _public_ PAM_EXTERN int pam_sm_open_sess + goto finish; + } + ++ if (debug) ++ pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); ++ + r = get_user_data(handle, &username, &pw); + if (r != PAM_SUCCESS) + goto finish; +@@ -374,7 +368,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess + if (debug) + pam_syslog(handle, LOG_DEBUG, "Asking logind to create session: " + "uid=%u pid=%u service=%s type=%s class=%s seat=%s vtnr=%u tty=%s display=%s remote=%s remote_user=%s remote_host=%s", +- uid, pid, service, type, class, seat, vtnr, tty, display, yes_no(remote), remote_user, remote_host); ++ pw->pw_uid, pid, ++ strempty(service), ++ type, class, ++ seat, vtnr, tty, display, ++ yes_no(remote), remote_user, remote_host); + + reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); + if (!reply) { +@@ -388,6 +386,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess + DBUS_TYPE_OBJECT_PATH, &object_path, + DBUS_TYPE_STRING, &runtime_path, + DBUS_TYPE_UNIX_FD, &session_fd, ++ DBUS_TYPE_UINT32, &original_uid, + DBUS_TYPE_STRING, &seat, + DBUS_TYPE_UINT32, &vtnr, + DBUS_TYPE_BOOLEAN, &existing, +@@ -399,8 +398,8 @@ _public_ PAM_EXTERN int pam_sm_open_sess + + if (debug) + pam_syslog(handle, LOG_DEBUG, "Reply from logind: " +- "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u", +- id, object_path, runtime_path, session_fd, seat, vtnr); ++ "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u original_uid=%u", ++ id, object_path, runtime_path, session_fd, seat, vtnr, original_uid); + + r = pam_misc_setenv(handle, "XDG_SESSION_ID", id, 0); + if (r != PAM_SUCCESS) { +@@ -408,10 +407,24 @@ _public_ PAM_EXTERN int pam_sm_open_sess + goto finish; + } + +- r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); +- if (r != PAM_SUCCESS) { +- pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); +- goto finish; ++ if (original_uid == pw->pw_uid) { ++ /* Don't set $XDG_RUNTIME_DIR if the user we now ++ * authenticated for does not match the original user ++ * of the session. We do this in order not to result ++ * in privileged apps clobbering the runtime directory ++ * unnecessarily. */ ++ ++ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); ++ if (r != PAM_SUCCESS) { ++ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); ++ goto finish; ++ } ++ } else { ++ (void) unsetenv("XDG_RUNTIME_DIR"); ++ r = pam_putenv(handle, "XDG_RUNTIME_DIR"); ++ if (r != PAM_SUCCESS && r != PAM_BAD_ITEM) { ++ pam_syslog(handle, LOG_ERR, "Failed to unset runtime dir."); ++ } + } + + if (!isempty(seat)) { diff --git a/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch b/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch new file mode 100644 index 00000000..fca524f5 --- /dev/null +++ b/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch @@ -0,0 +1,26 @@ +From 3fdb2494c1e24c0a020f5b54022d2c751fd26f50 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 28 Nov 2013 09:52:18 +0000 +Subject: login: revert lazy session-activation on non-VT seats + +Existing applications like gdm already depend on new sessions to get +immediately activated on seats without VTs. Fixes a bug reported as: + [systemd-devel] systemd 208:trouble with inactive user sessions at non-seat0 seats + +This patch restores the original behavior. We either need to add a new +flag for session-creation or some other heuristic to avoid activating new +sessions in the future. +--- +--- a/src/login/logind-seat.c 2013-11-28 11:30:49.624623090 -0200 ++++ b/src/login/logind-seat.c 2013-11-28 11:31:46.668792391 -0200 +@@ -420,8 +420,8 @@ + seat_send_changed(s, "Sessions\0"); + + /* On seats with VTs, the VT logic defines which session is active. On +- * seats without VTs, we automatically activate the first session. */ +- if (!seat_has_vts(s) && !s->active) ++ * seats without VTs, we automatically activate new sessions. */ ++ if (!seat_has_vts(s)) + seat_set_active(s, session); + + return 0; diff --git a/systemd.changes b/systemd.changes index c5a10894..2171b924 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com + +- Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch + * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50 + +------------------------------------------------------------------- +Tue Nov 26 15:12:58 UTC 2013 - werner@suse.de + +- Add patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to avoid (xdg-)su to set XDG_RUNTIME_DIR to the original user and + avoid that e.g. pulseaudio will create /run/user//pulse owned + by root (bnc#852015) + +------------------------------------------------------------------- +Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de + +- Add patch + 1011-check-4-valid-kmsg-device.patch + to avoid a busy systemd-journald (bnc#851393) + ------------------------------------------------------------------- Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 62f08f07..3ec76694 100644 --- a/systemd.spec +++ b/systemd.spec @@ -258,6 +258,11 @@ Patch1008: 1008-add-msft-compability-rules.patch Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch +# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) +Patch1011: 1011-check-4-valid-kmsg-device.patch +# PATCH-FIX-PSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -534,6 +539,9 @@ cp %{SOURCE7} m4/ %endif %patch1009 -p1 %patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 # ensure generate files are removed rm -f units/emergency.service From 8e02a34e98c956c81602c7bee65b86b13a295cdbcbfa0041b551ea7b32194238 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 15 Dec 2013 09:09:48 +0000 Subject: [PATCH 164/221] Accepting request 210814 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/210814 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=169 --- 1014-journald-with-journaling-FS.patch | 49 ++++++++++++++++++++++++++ systemd.changes | 10 ++++++ systemd.spec | 7 +++- 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 1014-journald-with-journaling-FS.patch diff --git a/1014-journald-with-journaling-FS.patch b/1014-journald-with-journaling-FS.patch new file mode 100644 index 00000000..406a6aed --- /dev/null +++ b/1014-journald-with-journaling-FS.patch @@ -0,0 +1,49 @@ +--- systemd-208/src/journal/journald-server.c ++++ systemd-208/src/journal/journald-server.c 2013-12-06 12:37:27.482735840 +0000 +@@ -21,6 +21,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -878,7 +879,7 @@ finish: + + + static int system_journal_open(Server *s) { +- int r; ++ int r, fd; + char *fn; + sd_id128_t machine; + char ids[33]; +@@ -905,7 +906,28 @@ static int system_journal_open(Server *s + (void) mkdir("/var/log/journal/", 0755); + + fn = strappenda("/var/log/journal/", ids); +- (void) mkdir(fn, 0755); ++ ++ /* ++ * On journaling and/or compressing file systems avoid doubling the ++ * efforts for the system, that is set NOCOW and NOCOMP inode flags. ++ * Check for every single flag as otherwise some of the file systems ++ * may return EOPNOTSUPP on one unkown flag (like BtrFS does). ++ */ ++ if (mkdir(fn, 0755) == 0 && (fd = open(fn, O_DIRECTORY)) >= 0) { ++ long flags; ++ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { ++ if (ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) ++ flags |= FS_NOATIME_FL; ++ if (ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) ++ flags |= FS_NOCOW_FL; ++ if (s->compress) { ++ flags &= ~FS_COMPR_FL; ++ flags |= FS_NOCOMP_FL; ++ } ++ ioctl(fd, FS_IOC_SETFLAGS, flags); ++ } ++ close(fd); ++ } + + fn = strappenda(fn, "/system.journal"); + r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); diff --git a/systemd.changes b/systemd.changes index 2171b924..ac4e6d52 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de + +- Add patch + 1014-journald-with-journaling-FS.patch + which now uses the file system ioctls for switching off atime, + compression, and copy-on-write of the journal directory of the + the systemd-journald (bnc#838475) +- Let us build require the package config for libpcre (bnc#853293) + ------------------------------------------------------------------- Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com diff --git a/systemd.spec b/systemd.spec index 3ec76694..daa68f57 100644 --- a/systemd.spec +++ b/systemd.spec @@ -68,6 +68,7 @@ BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libmicrohttpd) %endif BuildRequires: pkgconfig(libpci) >= 3 +BuildRequires: pkgconfig(libpcre) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libqrencode) %endif @@ -260,9 +261,12 @@ Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) Patch1011: 1011-check-4-valid-kmsg-device.patch -# PATCH-FIX-PSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch +Patch1014: 1014-journald-with-journaling-FS.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -542,6 +546,7 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 # ensure generate files are removed rm -f units/emergency.service From 4ccf744c9aaa6eb33796b438a5ff9801c97f5818b405cc7c236736f1944160e6 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 19 Dec 2013 11:51:56 +0000 Subject: [PATCH 165/221] Accepting request 211088 from Base:System - Update insserv-generator.patch: fix crash in insserv generator (bnc#854314). - Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes for Nvidia cards (bnc#808319). (forwarded request 211000 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/211088 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=170 --- apply-ACL-for-nvidia-device-nodes.patch | 37 ++++++------- insserv-generator.patch | 25 ++++++--- systemd-mini.changes | 69 +++++++++++++++++++++++++ systemd-mini.spec | 25 +++++++++ systemd.changes | 8 +++ 5 files changed, 135 insertions(+), 29 deletions(-) diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index 44d90f35..7b5e3624 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -7,34 +7,29 @@ set ACL on nvidia devices (bnc#808319). src/login/logind-acl.c | 3 +++ 1 file changed, 3 insertions(+) ---- systemd-206.orig/src/login/logind-acl.c -+++ systemd-206/src/login/logind-acl.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include "logind-acl.h" - #include "util.h" -@@ -287,6 +288,22 @@ int devnode_acl_all(struct udev *udev, +Index: systemd-208/src/login/logind-acl.c +=================================================================== +--- systemd-208.orig/src/login/logind-acl.c ++++ systemd-208/src/login/logind-acl.c +@@ -287,6 +287,22 @@ int devnode_acl_all(struct udev *udev, r = devnode_acl(n, flush, del, old_uid, add, new_uid); } -+ /* only search for nvidia* if /dev/nvidiactl exists */ -+ if (!devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid)) { -+ char** directory; -+ char **f, *resolved; ++ /* only apply ACL on nvidia* if /dev/nvidiactl exists */ ++ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { ++ int i; ++ char *devname; + -+ if (get_files_in_directory ("/dev", &directory)) { -+ STRV_FOREACH(f,directory) -+ if (startswith(*f,"nvidia")) { -+ resolved = strjoin("/dev/", *f, NULL); -+ devnode_acl(resolved, flush, del, old_uid, add, new_uid); -+ free(resolved); ++ for (i = 0; i <= 256 ; i++) { ++ if (asprintf(&devname, "/dev/nvidia%d", i) < 0) ++ break; ++ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) { ++ free(devname); ++ break; + } ++ free(devname); + } -+ strv_free(directory); + } + finish: diff --git a/insserv-generator.patch b/insserv-generator.patch index 44330bfe..3e0deb79 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -13,9 +13,11 @@ systemd unit drop-in files to add dependencies create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c ---- systemd-206_git201308300826.orig/Makefile.am -+++ systemd-206_git201308300826/Makefile.am -@@ -321,6 +321,7 @@ rootlibexec_PROGRAMS = \ +Index: systemd-208/Makefile.am +=================================================================== +--- systemd-208.orig/Makefile.am ++++ systemd-208/Makefile.am +@@ -322,6 +322,7 @@ rootlibexec_PROGRAMS = \ systemd-sleep systemgenerator_PROGRAMS = \ @@ -23,7 +25,7 @@ systemd unit drop-in files to add dependencies systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1655,6 +1656,14 @@ systemd_delta_LDADD = \ +@@ -1682,6 +1683,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ @@ -38,8 +40,10 @@ systemd unit drop-in files to add dependencies systemd_getty_generator_SOURCES = \ src/getty-generator/getty-generator.c +Index: systemd-208/src/insserv-generator/Makefile +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/src/insserv-generator/Makefile ++++ systemd-208/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -69,9 +73,11 @@ systemd unit drop-in files to add dependencies + $(MAKE) -C .. clean + +.PHONY: all clean +Index: systemd-208/src/insserv-generator/insserv-generator.c +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/src/insserv-generator/insserv-generator.c -@@ -0,0 +1,309 @@ ++++ systemd-208/src/insserv-generator/insserv-generator.c +@@ -0,0 +1,312 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** @@ -119,6 +125,9 @@ systemd unit drop-in files to add dependencies + if (endswith(name, ".sh")) + /* Drop .sh suffix */ + strcpy(stpcpy(r, name) - 3, ".service"); ++ if (startswith(name, "boot.")) ++ /* Drop SuSE-style boot. prefix */ ++ strcpy(stpcpy(r, name + 5), ".service"); + else + /* Normal init script name */ + strcpy(stpcpy(r, name), ".service"); @@ -227,7 +236,7 @@ systemd unit drop-in files to add dependencies + /* we ignore , not used, equivalent to X-Interactive */ + if (parsed && !startswith_no_case (parsed[0], "")) { + _cleanup_free_ char *facility = NULL; -+ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0) ++ if (sysv_translate_facility(parsed[0], NULL, &facility) < 0 || !facility) + continue; + if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { + _cleanup_free_ char *unit = NULL; diff --git a/systemd-mini.changes b/systemd-mini.changes index 653cdbdb..ba215dd6 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,72 @@ +------------------------------------------------------------------- +Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com + +- Update insserv-generator.patch: fix crash in insserv generator + (bnc#854314). +- Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes + for Nvidia cards (bnc#808319). + +------------------------------------------------------------------- +Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de + +- Add patch + 1014-journald-with-journaling-FS.patch + which now uses the file system ioctls for switching off atime, + compression, and copy-on-write of the journal directory of the + the systemd-journald (bnc#838475) +- Let us build require the package config for libpcre (bnc#853293) + +------------------------------------------------------------------- +Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com + +- Add U_logind_revert_lazy_session_activation_on_non_vt_seats.patch + * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=3fdb2494c1e24c0a020f5b54022d2c751fd26f50 + +------------------------------------------------------------------- +Tue Nov 26 15:12:58 UTC 2013 - werner@suse.de + +- Add patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to avoid (xdg-)su to set XDG_RUNTIME_DIR to the original user and + avoid that e.g. pulseaudio will create /run/user//pulse owned + by root (bnc#852015) + +------------------------------------------------------------------- +Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de + +- Add patch + 1011-check-4-valid-kmsg-device.patch + to avoid a busy systemd-journald (bnc#851393) + +------------------------------------------------------------------- +Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de + +- Add patch + 1010-do-not-install-sulogin-unit-with-poweroff.patch + that is do not install console-shell.service in any system target + as this will cause automatic poweroff at boot (bnc#849071) + +------------------------------------------------------------------- +Mon Nov 4 15:23:02 UTC 2013 - werner@suse.de + +- Add upstream patch + 0001-analyze-set-text-on-side-with-most-space.patch + to place the text on the side with most space + +------------------------------------------------------------------- +Fri Oct 25 12:12:48 UTC 2013 - werner@suse.de + +- Add upstream patch + 0001-analyze-set-white-background.patch + to make SVG output of systemd analyze readable + +------------------------------------------------------------------- +Mon Oct 21 09:27:36 UTC 2013 - werner@suse.de + +- Add patch + 1009-make-xsltproc-use-correct-ROFF-links.patch + to have valid ROFF links in manual pages working again (bnc#842844) + ------------------------------------------------------------------- Tue Oct 15 13:50:52 CEST 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index e00c4fcb..b27a81ac 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -73,6 +73,7 @@ BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libmicrohttpd) %endif BuildRequires: pkgconfig(libpci) >= 3 +BuildRequires: pkgconfig(libpcre) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libqrencode) %endif @@ -239,6 +240,10 @@ Patch76: 0001-drop-ins-check-return-value.patch Patch77: 0001-shared-util-Fix-glob_extend-argument.patch # PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch +# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white +Patch79: 0001-analyze-set-white-background.patch +# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space +Patch80: 0001-analyze-set-text-on-side-with-most-space.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -255,6 +260,18 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) +Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch +# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) +Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch +# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) +Patch1011: 1011-check-4-valid-kmsg-device.patch +# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch +Patch1014: 1014-journald-with-journaling-FS.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -515,6 +532,8 @@ cp %{SOURCE7} m4/ %patch76 -p1 %patch77 -p1 %patch78 -p1 +%patch79 -p1 +%patch80 -p1 # udev patches %patch1001 -p1 @@ -527,6 +546,12 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index ac4e6d52..ba215dd6 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com + +- Update insserv-generator.patch: fix crash in insserv generator + (bnc#854314). +- Update apply-ACL-for-nvidia-device-nodes.patch with latest fixes + for Nvidia cards (bnc#808319). + ------------------------------------------------------------------- Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de From 2966ec214889e4419180b4bae39b13e7a5e76a614e607209c488dec02a5dc20a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 19 Dec 2013 20:38:59 +0000 Subject: [PATCH 166/221] Accepting request 211697 from Base:System - Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a running user manager from garbage-collecting the user. Original behavior caused bnc#849870 - Add build-sys-make-multi-seat-x-optional.patch * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297 * Now systemd-multi-seat-x build can be disabled with configure option --disable-multi-seat-x. It should be done when xorg-x11-server no longer needs it (work in progress). OBS-URL: https://build.opensuse.org/request/show/211697 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=171 --- 0001-logind-garbage-collect-stale-users.patch | 28 +++++++++ 1014-journald-with-journaling-FS.patch | 17 +++--- build-sys-make-multi-seat-x-optional.patch | 60 +++++++++++++++++++ systemd-mini.spec | 6 ++ systemd.changes | 16 +++++ systemd.spec | 6 ++ 6 files changed, 126 insertions(+), 7 deletions(-) create mode 100644 0001-logind-garbage-collect-stale-users.patch create mode 100644 build-sys-make-multi-seat-x-optional.patch diff --git a/0001-logind-garbage-collect-stale-users.patch b/0001-logind-garbage-collect-stale-users.patch new file mode 100644 index 00000000..fd91e8b2 --- /dev/null +++ b/0001-logind-garbage-collect-stale-users.patch @@ -0,0 +1,28 @@ +From 63966da86d8e71b1f3f2b57d5448770d526421f9 Mon Sep 17 00:00:00 2001 +From: Thomas Bächler +Date: Sun, 15 Dec 2013 11:06:37 +0000 +Subject: login: Don't stop a running user manager from garbage-collecting the user. + +With the current logic, a user will never be garbage-collected, since its +manager will always be around. Change the logic such that a user is +garbage-collected when it has no sessions and linger is disabled. +--- +diff --git a/src/login/logind-user.c b/src/login/logind-user.c +index 6ba8d98..441e086 100644 +--- a/src/login/logind-user.c ++++ b/src/login/logind-user.c +@@ -629,12 +629,6 @@ int user_check_gc(User *u, bool drop_not + if (u->slice_job || u->service_job) + return 1; + +- if (u->slice && manager_unit_is_active(u->manager, u->slice) != 0) +- return 1; +- +- if (u->service && manager_unit_is_active(u->manager, u->service) != 0) +- return 1; +- + return 0; + } + +-- +cgit v0.9.0.2-2-gbebe diff --git a/1014-journald-with-journaling-FS.patch b/1014-journald-with-journaling-FS.patch index 406a6aed..6bf95fb4 100644 --- a/1014-journald-with-journaling-FS.patch +++ b/1014-journald-with-journaling-FS.patch @@ -1,5 +1,5 @@ --- systemd-208/src/journal/journald-server.c -+++ systemd-208/src/journal/journald-server.c 2013-12-06 12:37:27.482735840 +0000 ++++ systemd-208/src/journal/journald-server.c 2013-12-10 16:31:50.770235717 +0000 @@ -21,6 +21,7 @@ #include @@ -17,11 +17,12 @@ char *fn; sd_id128_t machine; char ids[33]; -@@ -905,7 +906,28 @@ static int system_journal_open(Server *s +@@ -905,7 +906,31 @@ static int system_journal_open(Server *s (void) mkdir("/var/log/journal/", 0755); fn = strappenda("/var/log/journal/", ids); - (void) mkdir(fn, 0755); ++ (void)mkdir(fn, 0755); + + /* + * On journaling and/or compressing file systems avoid doubling the @@ -29,18 +30,20 @@ + * Check for every single flag as otherwise some of the file systems + * may return EOPNOTSUPP on one unkown flag (like BtrFS does). + */ -+ if (mkdir(fn, 0755) == 0 && (fd = open(fn, O_DIRECTORY)) >= 0) { ++ if ((fd = open(fn, O_DIRECTORY)) >= 0) { + long flags; + if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { -+ if (ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) ++ int old = flags; ++ if (!(flags&FS_NOATIME_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) + flags |= FS_NOATIME_FL; -+ if (ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) ++ if (!(flags&FS_NOCOW_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) + flags |= FS_NOCOW_FL; -+ if (s->compress) { ++ if (!(flags&FS_NOCOMP_FL) && s->compress) { + flags &= ~FS_COMPR_FL; + flags |= FS_NOCOMP_FL; + } -+ ioctl(fd, FS_IOC_SETFLAGS, flags); ++ if (old != flags) ++ ioctl(fd, FS_IOC_SETFLAGS, flags); + } + close(fd); + } diff --git a/build-sys-make-multi-seat-x-optional.patch b/build-sys-make-multi-seat-x-optional.patch new file mode 100644 index 00000000..c86042c6 --- /dev/null +++ b/build-sys-make-multi-seat-x-optional.patch @@ -0,0 +1,60 @@ +From bd441fa27a22b7c6e11d9330560e0622fb69f297 Mon Sep 17 00:00:00 2001 +From: Zbigniew Jędrzejewski-Szmek +Date: Thu, 28 Nov 2013 17:07:29 +0000 +Subject: build-sys: make multi-seat-x optional + +At some point it should become disabled by default. + +http://lists.freedesktop.org/archives/systemd-devel/2013-November/014869.html +--- +diff --git a/Makefile.am b/Makefile.am +index 90874df..3598edd 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -4141,6 +4141,8 @@ MULTI_USER_TARGET_WANTS += \ + SYSTEM_UNIT_ALIASES += \ + systemd-logind.service dbus-org.freedesktop.login1.service + ++if ENABLE_MULTI_SEAT_X ++ + systemd_multi_seat_x_SOURCES = \ + src/login/multi-seat-x.c + +@@ -4151,6 +4153,8 @@ systemd_multi_seat_x_LDADD = \ + rootlibexec_PROGRAMS += \ + systemd-multi-seat-x + ++endif ++ + dist_udevrules_DATA += \ + src/login/70-uaccess.rules \ + src/login/70-power-switch.rules +diff --git a/configure.ac b/configure.ac +index f1b00c5..ab24266 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -794,6 +794,14 @@ fi + AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"]) + + # ------------------------------------------------------------------------------ ++have_multi_seat_x=no ++AC_ARG_ENABLE(multi_seat_x, AS_HELP_STRING([--disable-multi-seat-x], [do not build multi-seat-x])) ++if test "x$enable_multi_seat_x" != "xno"; then ++ have_multi_seat_x=yes ++fi ++AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"]) ++ ++# ------------------------------------------------------------------------------ + AC_ARG_WITH(rc-local-script-path-start, + AS_HELP_STRING([--with-rc-local-script-path-start=PATH], + [Path to /etc/rc.local]), +@@ -1077,6 +1085,7 @@ AC_MSG_RESULT([ + nss-myhostname: ${have_myhostname} + gudev: ${enable_gudev} + gintrospection: ${enable_introspection} ++ multi-seat-x: ${have_multi_seat_x} + Python: ${have_python} + Python Headers: ${have_python_devel} + man pages: ${have_manpages} +-- +cgit v0.9.0.2-2-gbebe diff --git a/systemd-mini.spec b/systemd-mini.spec index b27a81ac..8f21effa 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -244,6 +244,8 @@ Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch Patch79: 0001-analyze-set-white-background.patch # PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space Patch80: 0001-analyze-set-text-on-side-with-most-space.patch +# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. +Patch81: 0001-logind-garbage-collect-stale-users.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -272,6 +274,8 @@ Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_use Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch +# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch +Patch1015: build-sys-make-multi-seat-x-optional.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -534,6 +538,7 @@ cp %{SOURCE7} m4/ %patch78 -p1 %patch79 -p1 %patch80 -p1 +%patch81 -p1 # udev patches %patch1001 -p1 @@ -552,6 +557,7 @@ cp %{SOURCE7} m4/ %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 +%patch1015 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index ba215dd6..686eb749 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com + +- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a + running user manager from garbage-collecting the user. Original + behavior caused bnc#849870 + +------------------------------------------------------------------- +Mon Dec 16 11:08:33 UTC 2013 - lbsousajr@gmail.com + +- Add build-sys-make-multi-seat-x-optional.patch + * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297 + * Now systemd-multi-seat-x build can be disabled with configure option + --disable-multi-seat-x. It should be done when xorg-x11-server + no longer needs it (work in progress). + ------------------------------------------------------------------- Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index daa68f57..48dbb6c1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -239,6 +239,8 @@ Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch Patch79: 0001-analyze-set-white-background.patch # PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space Patch80: 0001-analyze-set-text-on-side-with-most-space.patch +# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. +Patch81: 0001-logind-garbage-collect-stale-users.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -267,6 +269,8 @@ Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_use Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch +# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch +Patch1015: build-sys-make-multi-seat-x-optional.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -529,6 +533,7 @@ cp %{SOURCE7} m4/ %patch78 -p1 %patch79 -p1 %patch80 -p1 +%patch81 -p1 # udev patches %patch1001 -p1 @@ -547,6 +552,7 @@ cp %{SOURCE7} m4/ %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 +%patch1015 -p1 # ensure generate files are removed rm -f units/emergency.service From b0b87f93f190aeebb4f64f98afc17ced4f4b049b93c8cbad45379a9bd3bd6247 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 30 Dec 2013 09:44:59 +0000 Subject: [PATCH 167/221] Accepting request 212344 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/212344 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=172 --- 1011-check-4-valid-kmsg-device.patch | 72 +++++++++---------- ...XDG_RUNTIME_DIR_of_the_original_user.patch | 4 +- systemd-mini.spec | 3 + systemd.changes | 17 +++++ systemd.spec | 3 + 5 files changed, 57 insertions(+), 42 deletions(-) diff --git a/1011-check-4-valid-kmsg-device.patch b/1011-check-4-valid-kmsg-device.patch index ffb36937..6d57c357 100644 --- a/1011-check-4-valid-kmsg-device.patch +++ b/1011-check-4-valid-kmsg-device.patch @@ -6,65 +6,57 @@ Avoid a busy systemd-journald due polling a broken /dec/kmsg in lxc environments. --- - journald-kmsg.c | 27 ++++++++++++++++++++++++++- - 1 file changed, 26 insertions(+), 1 deletion(-) + journald-kmsg.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) Index: systemd-208/src/journal/journald-kmsg.c =================================================================== --- systemd-208/src/journal/journald-kmsg.c -+++ systemd-208/src/journal/journald-kmsg.c 2013-11-21 13:30:22.930735683 +0000 -@@ -23,7 +23,9 @@ - #include - #include - #include -+#include - #include -+#include - - #include - #include -@@ -377,20 +379,43 @@ int server_flush_dev_kmsg(Server *s) { ++++ systemd-208/src/journal/journald-kmsg.c 2013-12-20 11:34:39.762236175 +0000 +@@ -377,15 +377,18 @@ int server_flush_dev_kmsg(Server *s) { int server_open_dev_kmsg(Server *s) { struct epoll_event ev; -+ struct stat st; ++ int r; assert(s); s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); if (s->dev_kmsg_fd < 0) { - log_warning("Failed to open /dev/kmsg, ignoring: %m"); -+ /* Do not warn as it may not exists in LXC environments */ -+ if (errno != ENOENT) -+ log_warning("Failed to open /dev/kmsg, ignoring: %m"); ++ log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, ++ "Failed to open /dev/kmsg, ignoring: %m"); return 0; } -+ if (fstat(s->dev_kmsg_fd, &st) < 0) { -+ log_error("Failed to stat /dev/kmsg fd, ignoring: %m"); -+ close_nointr_nofail(s->dev_kmsg_fd); -+ s->dev_kmsg_fd = -1; -+ return 0; -+ } -+ -+ if (!S_ISCHR(st.st_mode) || major(st.st_rdev) != 1 || minor(st.st_rdev) != 11) { -+ int old_errno = errno; -+ errno = ENODEV; -+ log_warning("Irregular device /dev/kmsg, ignoring: %m"); -+ errno = old_errno; -+ close_nointr_nofail(s->dev_kmsg_fd); -+ s->dev_kmsg_fd = -1; -+ return 0; -+ } -+ ++ r = 0; zero(ev); ev.events = EPOLLIN; ev.data.fd = s->dev_kmsg_fd; - if (epoll_ctl(s->epoll_fd, EPOLL_CTL_ADD, s->dev_kmsg_fd, &ev) < 0) { - -+ close_nointr_nofail(s->dev_kmsg_fd); -+ s->dev_kmsg_fd = -1; -+ +@@ -394,15 +397,24 @@ int server_open_dev_kmsg(Server *s) { /* This will fail with EPERM on older kernels where * /dev/kmsg is not readable. */ if (errno == EPERM) +- return 0; ++ goto fail; + + log_error("Failed to add /dev/kmsg fd to epoll object: %m"); +- return -errno; ++ r = -errno; ++ goto fail; + } + + s->dev_kmsg_readable = true; + + return 0; ++ ++fail: ++ if (s->dev_kmsg_fd >= 0) { ++ close_nointr_nofail(s->dev_kmsg_fd); ++ s->dev_kmsg_fd = -1; ++ } ++ ++ return r; + } + + int server_open_kernel_seqnum(Server *s) { diff --git a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch index 59d166ae..bdf9383b 100644 --- a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ b/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -157,12 +157,12 @@ Based on upstream baae0358f349870544884e405e82e4be7d8add9f + pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); + goto finish; + } -+ } else { -+ (void) unsetenv("XDG_RUNTIME_DIR"); ++ } else if (getenv("XDG_RUNTIME_DIR")) { + r = pam_putenv(handle, "XDG_RUNTIME_DIR"); + if (r != PAM_SUCCESS && r != PAM_BAD_ITEM) { + pam_syslog(handle, LOG_ERR, "Failed to unset runtime dir."); + } ++ (void) unsetenv("XDG_RUNTIME_DIR"); } if (!isempty(seat)) { diff --git a/systemd-mini.spec b/systemd-mini.spec index 8f21effa..cdf81be0 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -588,6 +588,9 @@ export V=1 --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ +%if 0%{?suse_version} > 1310 + --disable-multi-seat-x \ +%endif CFLAGS="%{optflags}" make %{?_smp_mflags} diff --git a/systemd.changes b/systemd.changes index 686eb749..a9766b37 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de + +- Adapt patch + 1011-check-4-valid-kmsg-device.patch + to fit current upstream version maybe related to bnc#854884 +- Change patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to check if XDG_RUNTIME_DIR is set before the call of pam_putenv() + may fix bnc#855160 + +------------------------------------------------------------------- +Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com + +- Disable multi-seat-x build, since package xorg-x11-server + currently in Factory no longer needs it. + ------------------------------------------------------------------- Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com diff --git a/systemd.spec b/systemd.spec index 48dbb6c1..c66ec723 100644 --- a/systemd.spec +++ b/systemd.spec @@ -583,6 +583,9 @@ export V=1 --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ +%if 0%{?suse_version} > 1310 + --disable-multi-seat-x \ +%endif CFLAGS="%{optflags}" make %{?_smp_mflags} From 8f6010ffdf7a3b88dbce088cf73f59f4b8c82d09497fcf35ffa6a9209a6b8c29 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 31 Jan 2014 12:36:06 +0000 Subject: [PATCH 168/221] Accepting request 215598 from Base:System - Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch to skip already by the kernel managed devices - fix timeout stopping user@.service (bnc#841544) * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch - Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch to be able to detect if the sysctl reboot() returns. - Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch A check for unmaintained disk like devices is added to be able to flush and maybe shut them down. Also the missing sync() system call is added for the direct halt/reboot systemctl command. Then the system halt is used as fallback if poweroff fails for both the direct poweroff systemctl command as well as for the systemd-shutdown utility. - Make systemd-mini build - Make requires bash-completion a recommends - Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch to avoid that enabled boot scripts will be handled as unit files by systemctl status command (bnc#818044) - Drop patch 1017-enforce-sufficient-shutdown-warnings.patch as the original code behaves exactly as the shutdown code of the old SysVinit (bnc#750845) - Rename support-powerfail-with-powerstatus.patch to OBS-URL: https://build.opensuse.org/request/show/215598 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=173 --- ...sh-for-reboot-or-hddown-for-poweroff.patch | 537 ++++++++++++++++++ ...ew-KillMode-mixed-which-sends-SIGTER.patch | 225 ++++++++ ...ailureIsolate-setting-by-a-more-gene.patch | 329 +++++++++++ ...systemctl-halt-reboot-error-handling.patch | 85 +++ ...llMode-mixed-in-conjunction-with-PAM.patch | 62 ++ ...o-always-go-through-both-SIGTERM-and.patch | 128 +++++ 1016-support-powerfail-with-powerstatus.patch | 90 +++ ...nit-handling-if-sysv-already-handled.patch | 20 + ...ripts-know-about-Required-and-Should.patch | 51 ++ ...pletion-smart-to-be-able-to-redirect.patch | 236 ++++++++ ...ze-fix-crash-in-command-line-parsing.patch | 35 ++ macros.systemd | 14 + ....service-conflict-with-syslog.socket.patch | 22 + systemd-mini.changes | 148 +++++ systemd-mini.spec | 64 ++- systemd-powerfail | 28 + systemd-rpm-macros.spec | 2 +- systemd.changes | 115 ++++ systemd.spec | 64 ++- 19 files changed, 2252 insertions(+), 3 deletions(-) create mode 100644 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch create mode 100644 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch create mode 100644 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch create mode 100644 0001-upstream-systemctl-halt-reboot-error-handling.patch create mode 100644 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch create mode 100644 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch create mode 100644 1016-support-powerfail-with-powerstatus.patch create mode 100644 1017-skip-native-unit-handling-if-sysv-already-handled.patch create mode 100644 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch create mode 100644 1019-make-completion-smart-to-be-able-to-redirect.patch create mode 100644 analyze-fix-crash-in-command-line-parsing.patch create mode 100644 make-emergency.service-conflict-with-syslog.socket.patch create mode 100644 systemd-powerfail diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch new file mode 100644 index 00000000..2d48b38a --- /dev/null +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -0,0 +1,537 @@ +This seems to be a SUSE specific patch. Here we add the check for unmaintained +disk like devices to be able to flush and maybe shut them down. Also we add the +missing sync() system call for the direct halt/reboot systemctl command. Then we +use the system halt as gfallback if poweroff fails for both the direct poweroff +systemctl command as well as for the systemd-shutdown utility. + +--- + Makefile.am | 2 + Makefile.in | 7 + src/core/shutdown.c | 8 - + src/shared/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ + src/shared/hdflush.h | 25 +++ + src/systemctl/systemctl.c | 17 +- + 6 files changed, 416 insertions(+), 8 deletions(-) + +--- systemd-208/Makefile.am ++++ systemd-208/Makefile.am 2014-01-28 11:06:55.638238060 +0000 +@@ -680,6 +680,8 @@ libsystemd_shared_la_SOURCES = \ + src/shared/strbuf.h \ + src/shared/strxcpyx.c \ + src/shared/strxcpyx.h \ ++ src/shared/hdflush.c \ ++ src/shared/hdflush.h \ + src/shared/conf-parser.c \ + src/shared/conf-parser.h \ + src/shared/log.c \ +--- systemd-208/Makefile.in ++++ systemd-208/Makefile.in 2014-01-28 11:06:33.942246196 +0000 +@@ -1509,7 +1509,7 @@ am_libsystemd_shared_la_OBJECTS = src/sh + src/shared/hashmap.lo src/shared/set.lo src/shared/fdset.lo \ + src/shared/prioq.lo src/shared/sleep-config.lo \ + src/shared/strv.lo src/shared/env-util.lo src/shared/strbuf.lo \ +- src/shared/strxcpyx.lo src/shared/conf-parser.lo \ ++ src/shared/strxcpyx.lo src/shared/hdflush.lo src/shared/conf-parser.lo \ + src/shared/log.lo src/shared/ratelimit.lo \ + src/shared/exit-status.lo src/shared/utf8.lo \ + src/shared/pager.lo src/shared/socket-util.lo \ +@@ -4137,6 +4137,8 @@ libsystemd_shared_la_SOURCES = \ + src/shared/strbuf.h \ + src/shared/strxcpyx.c \ + src/shared/strxcpyx.h \ ++ src/shared/hdflush.c \ ++ src/shared/hdflush.h \ + src/shared/conf-parser.c \ + src/shared/conf-parser.h \ + src/shared/log.c \ +@@ -7073,6 +7075,8 @@ src/shared/strbuf.lo: src/shared/$(am__d + src/shared/$(DEPDIR)/$(am__dirstamp) + src/shared/strxcpyx.lo: src/shared/$(am__dirstamp) \ + src/shared/$(DEPDIR)/$(am__dirstamp) ++src/shared/hdflush.lo: src/shared/$(am__dirstamp) \ ++ src/shared/$(DEPDIR)/$(am__dirstamp) + src/shared/conf-parser.lo: src/shared/$(am__dirstamp) \ + src/shared/$(DEPDIR)/$(am__dirstamp) + src/shared/log.lo: src/shared/$(am__dirstamp) \ +@@ -9236,6 +9240,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strbuf.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strv.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strxcpyx.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/hdflush.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-dst.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-util.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/unit-name.Plo@am__quote@ +--- systemd-208/src/shared/hdflush.c ++++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.490735704 +0000 +@@ -0,0 +1,365 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Werner Fink ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++/* ++ * Find all disks on the system, list out IDE, unmanaged ATA disks, and ++ * USB sticks flush the cache of those and optional shut them down. ++ */ ++ ++#include ++#include ++#ifdef LIST_DEBUG ++# include ++#endif ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#ifdef WORDS_BIGENDIAN ++# include ++#endif ++ ++/* Used in flush_cache_ext(), compare with */ ++#define IDBYTES 512 ++#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */ ++#define TEST_EXT 0x6000 ++ ++/* Maybe set in list_disks() and used in do_standby_disk() */ ++#define DISK_IS_IDE 0x00000001 ++#define DISK_IS_SATA 0x00000002 ++#define DISK_EXTFLUSH 0x00000004 ++#define DISK_REMOVABLE 0x00000008 ++#define DISK_MANAGED 0x00000010 ++#define DISK_FLUSHONLY 0x00000020 ++ ++struct sysfs { ++ struct udev *udev; ++ struct udev_enumerate *num; ++ struct udev_list_entry *item; ++ char *devnode; ++ size_t size; ++}; ++ ++static int flush_cache_ext(const struct sysfs *sysfs); ++ ++static struct sysfs * open_sysfs(void) ++{ ++ static struct sysfs sysfs; ++ sysfs.udev = udev_new(); ++ if (!sysfs.udev) ++ goto err; ++ sysfs.num = udev_enumerate_new(sysfs.udev); ++ if (!sysfs.num) ++ goto err; ++ if (udev_enumerate_add_match_subsystem(sysfs.num, "block") < 0) ++ goto err; ++ if (udev_enumerate_add_match_sysname(sysfs.num, "sd?") < 0) ++ goto err; ++ if (udev_enumerate_add_match_sysname(sysfs.num, "hd?") < 0) ++ goto err; ++ if (udev_enumerate_scan_devices(sysfs.num) < 0) ++ goto err; ++ sysfs.item = udev_enumerate_get_list_entry(sysfs.num); ++ sysfs.devnode = NULL; ++ sysfs.size = 0; ++ return &sysfs; ++err: ++ if (sysfs.num) ++ udev_unref(sysfs.udev); ++ if (sysfs.udev) ++ udev_unref(sysfs.udev); ++ return NULL; ++} ++ ++static void close_sysfs(struct sysfs *sysfs) ++{ ++ if (sysfs->num) ++ udev_enumerate_unref(sysfs->num); ++ if (sysfs->udev) ++ udev_unref(sysfs->udev); ++ if (sysfs->devnode) ++ free(sysfs->devnode); ++ sysfs->devnode = NULL; ++} ++ ++ ++static char *list_disks(struct sysfs *sysfs, unsigned int* flags) ++{ ++ struct udev_device *device, *parent; ++ struct udev_list_entry *item; ++ const char *devnode; ++ char path[PATH_MAX]; ++ ++ device = NULL; ++next: ++ if (device) ++ udev_device_unref(device); ++ if (sysfs->devnode) ++ free(sysfs->devnode); ++ sysfs->devnode = NULL; ++ sysfs->size = 0; ++ *flags = 0; ++ ++ if (!sysfs->item) ++ goto empty; ++ item = sysfs->item; ++ sysfs->item = udev_list_entry_get_next(sysfs->item); ++ ++ if (!(device = udev_device_new_from_syspath(sysfs->udev, udev_list_entry_get_name(item)))) ++ goto out; ++ if (!(devnode = udev_device_get_devnode(device))) ++ goto out; ++ if (!(sysfs->devnode = strdup(devnode))) ++ goto out; ++ ++ path[0] = '\0'; ++ parent = udev_device_get_parent(device); ++ if (parent) { ++ const char *sysname, *devpath; ++ struct udev_device *disk; ++ const char *value; ++ int ret; ++ ++ sysname = udev_device_get_sysname(parent); ++ devpath = udev_device_get_devpath(parent); ++ ++ strcpy(path, "/sys"); ++ strcat(path, devpath); ++ strcat(path, "/scsi_disk/"); ++ strcat(path, sysname); ++ ++ disk = udev_device_new_from_syspath(sysfs->udev, path); ++ if (disk) { ++ value = udev_device_get_sysattr_value(disk, "manage_start_stop"); ++ udev_device_unref(disk); ++ ++ if (value && *value != '0') { ++ *flags = DISK_MANAGED; ++#ifndef LIST_DEBUG ++ goto next; /* Device managed by the kernel */ ++#endif ++ } ++ } ++ ++ value = udev_device_get_sysattr_value(device, "size"); ++ if (value && *value) ++ sysfs->size = (size_t)atoll(value); ++ ++ value = udev_device_get_sysattr_value(device, "removable"); ++ if (value && *value != '0') { ++ *flags |= DISK_REMOVABLE; ++ ++ if ((ret = flush_cache_ext(sysfs))) { ++ if (ret < 0) ++ goto next; ++ *flags |= DISK_EXTFLUSH; ++ } ++ goto out; /* Removable disk like USB stick */ ++ } ++ ++ value = udev_device_get_sysname(device); ++ if (value && *value == 'h') { ++ *flags |= DISK_IS_IDE; ++ ++ if ((ret = flush_cache_ext(sysfs))) { ++ if (ret < 0) ++ goto next; ++ *flags |= DISK_EXTFLUSH; ++ } ++ goto out; /* IDE disk found */ ++ } ++ ++ value = udev_device_get_sysattr_value(parent, "vendor"); ++ if (value && strncmp(value, "ATA", 3) == 0) { ++ *flags |= (DISK_IS_IDE|DISK_IS_SATA); ++ ++ if ((ret = flush_cache_ext(sysfs))) { ++ if (ret < 0) ++ goto next; ++ *flags |= DISK_EXTFLUSH; ++ } ++ goto out; /* SATA disk to shutdown */ ++ } ++ goto next; ++ } ++out: ++ udev_device_unref(device); ++empty: ++ return sysfs->devnode; ++} ++#ifndef LIST_DEBUG ++/* ++ * Check IDE/(S)ATA hard disk identity for ++ * the FLUSH CACHE EXT bit set. ++ */ ++static int flush_cache_ext(const struct sysfs *sysfs) ++{ ++#ifndef WIN_IDENTIFY ++#define WIN_IDENTIFY 0xEC ++#endif ++ unsigned char args[4+IDBYTES]; ++ unsigned short *id = (unsigned short*)(&args[4]); ++ int fd = -1, ret = 0; ++ ++ if (sysfs->size < (1<<28)) ++ goto out; /* small disk */ ++ ++ if ((fd = open(sysfs->devnode, O_RDONLY|O_NONBLOCK|O_CLOEXEC)) < 0) ++ goto out; ++ ++ memset(&args[0], 0, sizeof(args)); ++ args[0] = WIN_IDENTIFY; ++ args[3] = 1; ++ if (ioctl(fd, HDIO_DRIVE_CMD, &args)) ++ goto out; ++#ifdef WORDS_BIGENDIAN ++# if 0 ++ { ++ const unsigned short *end = id + IDBYTES/2; ++ const unsigned short *from = id; ++ unsigned short *to = id; ++ ++ while (from < end) ++ *to++ = bswap_16(*from++); ++ } ++# else ++ id[83] = bswap_16(id[83]); ++# endif ++#endif ++ if ((id[83] & MASK_EXT) == TEST_EXT) ++ ret = 1; ++out: ++ if (fd >= 0) ++ close(fd); ++ return ret; ++} ++ ++/* ++ * Put an IDE/SCSI/SATA disk in standby mode. ++ * Code stolen from hdparm.c ++ */ ++static int do_standby_disk(struct sysfs *sysfs, unsigned int flags) ++{ ++#ifndef WIN_STANDBYNOW1 ++#define WIN_STANDBYNOW1 0xE0 ++#endif ++#ifndef WIN_STANDBYNOW2 ++#define WIN_STANDBYNOW2 0x94 ++#endif ++#ifndef WIN_FLUSH_CACHE_EXT ++#define WIN_FLUSH_CACHE_EXT 0xEA ++#endif ++#ifndef WIN_FLUSH_CACHE ++#define WIN_FLUSH_CACHE 0xE7 ++#endif ++ unsigned char flush1[4] = {WIN_FLUSH_CACHE_EXT,0,0,0}; ++ unsigned char flush2[4] = {WIN_FLUSH_CACHE,0,0,0}; ++ unsigned char stdby1[4] = {WIN_STANDBYNOW1,0,0,0}; ++ unsigned char stdby2[4] = {WIN_STANDBYNOW2,0,0,0}; ++ int fd, ret; ++ ++ if ((fd = open(sysfs->devnode, O_RDWR|O_NONBLOCK|O_CLOEXEC)) < 0) ++ return -1; ++ ++ switch (flags & DISK_EXTFLUSH) { ++ case DISK_EXTFLUSH: ++ if ((ret = ioctl(fd, HDIO_DRIVE_CMD, &flush1)) == 0) ++ break; ++ /* Extend flush rejected, try standard flush */ ++ default: ++ ret = ioctl(fd, HDIO_DRIVE_CMD, &flush2) && ++ ioctl(fd, BLKFLSBUF); ++ break; ++ } ++ ++ if ((flags & DISK_FLUSHONLY) == 0x0) { ++ ret = ioctl(fd, HDIO_DRIVE_CMD, &stdby1) && ++ ioctl(fd, HDIO_DRIVE_CMD, &stdby2); ++ } ++ ++ close(fd); ++ ++ if (ret) ++ return -1; ++ return 0; ++} ++#endif ++#ifdef LIST_DEBUG ++int main() ++{ ++ char *disk; ++ unsigned int flags; ++ struct sysfs *sysfs = open_sysfs(); ++ if (!sysfs) ++ goto err; ++ while ((disk = list_disks(sysfs, &flags))) ++ fprintf(stdout, "%s\n", sysfs->devnode); ++ close_sysfs(sysfs); ++err: ++ return 0; ++} ++#else ++/* ++ * List all disks and put them in standby mode. ++ * This has the side-effect of flushing the writecache, ++ * which is exactly what we want on poweroff. ++ */ ++void hddown(void) ++{ ++ struct sysfs *sysfs; ++ unsigned int flags; ++ char *disk; ++ ++ if (!(sysfs = open_sysfs())) ++ return; ++ ++ while ((disk = list_disks(sysfs, &flags))) ++ do_standby_disk(sysfs, flags); ++ ++ close_sysfs(sysfs); ++} ++ ++/* ++ * List all disks and cause them to flush their buffers. ++ */ ++void hdflush(void) ++{ ++ struct sysfs *sysfs; ++ unsigned int flags; ++ char *disk; ++ ++ if (!(sysfs = open_sysfs())) ++ return; ++ ++ while ((disk = list_disks(sysfs, &flags))) ++ do_standby_disk(sysfs, (flags|DISK_FLUSHONLY)); ++ ++ close_sysfs(sysfs); ++} ++#endif +--- systemd-208/src/shared/hdflush.h ++++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.286235696 +0000 +@@ -0,0 +1,25 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++#pragma once ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Werner Fink ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++void hdflush(void); ++void hddown(void); +--- systemd-208/src/core/shutdown.c ++++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:15.722235591 +0000 +@@ -40,6 +40,7 @@ + #include "missing.h" + #include "log.h" + #include "fileio.h" ++#include "hdflush.h" + #include "umount.h" + #include "util.h" + #include "mkdir.h" +@@ -302,8 +303,13 @@ int main(int argc, char *argv[]) { + * on reboot(), but the file systems need to be synce'd + * explicitly in advance. So let's do this here, but not + * needlessly slow down containers. */ +- if (!in_container) ++ if (!in_container) { + sync(); ++ if (cmd == RB_POWER_OFF || cmd == RB_HALT_SYSTEM) ++ hddown(); ++ else ++ hdflush(); ++ } + + if (cmd == LINUX_REBOOT_CMD_KEXEC) { + +--- systemd-208/src/systemctl/systemctl.c ++++ systemd-208/src/systemctl/systemctl.c 2014-01-28 11:31:27.150735613 +0000 +@@ -87,6 +87,7 @@ static bool arg_no_pager = false; + static bool arg_no_wtmp = false; + static bool arg_no_wall = false; + static bool arg_no_reload = false; ++static bool arg_no_sync = false; + static bool arg_show_types = false; + static bool arg_ignore_inhibitors = false; + static bool arg_dry = false; +@@ -5272,6 +5273,7 @@ static int halt_parse_argv(int argc, cha + { "reboot", no_argument, NULL, ARG_REBOOT }, + { "force", no_argument, NULL, 'f' }, + { "wtmp-only", no_argument, NULL, 'w' }, ++ { "no-sync", no_argument, NULL, 'n' }, + { "no-wtmp", no_argument, NULL, 'd' }, + { "no-wall", no_argument, NULL, ARG_NO_WALL }, + { NULL, 0, NULL, 0 } +@@ -5324,10 +5326,13 @@ static int halt_parse_argv(int argc, cha + + case 'i': + case 'h': +- case 'n': + /* Compatibility nops */ + break; + ++ case 'n': ++ arg_no_sync = true; ++ break; ++ + case '?': + return -EINVAL; + +@@ -5981,14 +5986,14 @@ static int halt_now(enum action a) { + + switch (a) { + +- case ACTION_HALT: +- log_info("Halting."); +- reboot(RB_HALT_SYSTEM); +- return -errno; +- + case ACTION_POWEROFF: + log_info("Powering off."); + reboot(RB_POWER_OFF); ++ /* Fall through */ ++ ++ case ACTION_HALT: ++ log_info("Halting."); ++ reboot(RB_HALT_SYSTEM); + return -errno; + + case ACTION_REBOOT: diff --git a/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch b/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch new file mode 100644 index 00000000..37291988 --- /dev/null +++ b/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch @@ -0,0 +1,225 @@ +From 6fa7e1a944a2dbb89e794ad0f9da5d0fda5dc4a9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 29 Jan 2014 13:38:55 +0100 +Subject: [PATCH 1/3] core: introduce new KillMode=mixed which sends SIGTERM + only to the main process, but SIGKILL to all daemon processes + +This should fix some race with terminating systemd --user, where the +system systemd instance might race against the user systemd instance +when sending SIGTERM. +--- + man/systemd.kill.xml | 77 +++++++++++++++++++++++++++++++++----------------- + src/core/kill.c | 1 + + src/core/kill.h | 1 + + src/core/unit.c | 3 +- + units/user@.service.in | 1 + + 5 files changed, 56 insertions(+), 27 deletions(-) + +diff --git a/man/systemd.kill.xml b/man/systemd.kill.xml +index 1b10fba..a4009aa 100644 +--- a/man/systemd.kill.xml ++++ b/man/systemd.kill.xml +@@ -44,39 +44,44 @@ + + + systemd.kill +- Kill environment configuration ++ Process killing procedure ++ configuration + + + + service.service, + socket.socket, + mount.mount, +- swap.swap ++ swap.swap, ++ scope.scope + + + + Description + + Unit configuration files for services, sockets, +- mount points and swap devices share a subset of +- configuration options which define the process killing +- parameters of spawned processes. ++ mount points, swap devices and scopes share a subset ++ of configuration options which define the ++ killing procedure of processes belonging to the unit. + + This man page lists the configuration options +- shared by these four unit types. See ++ shared by these five unit types. See + systemd.unit5 +- for the common options of all unit configuration +- files, and ++ for the common options shared by all unit ++ configuration files, and + systemd.service5, + systemd.socket5, +- systemd.swap5 +- and ++ systemd.swap5, + systemd.mount5 +- for more information on the specific unit +- configuration files. The execution specific ++ and ++ systemd.scope5 ++ for more information on the configuration file options ++ specific to each unit type. ++ ++ The kill procedure + configuration options are configured in the [Service], +- [Socket], [Mount], or [Swap] section, depending on the unit +- type. ++ [Socket], [Mount] or [Swap] section, depending on the ++ unit type. + + + +@@ -87,32 +92,40 @@ + + KillMode= + Specifies how +- processes of this service shall be ++ processes of this unit shall be + killed. One of + , + , ++ , + . + + If set to + , all + remaining processes in the control +- group of this unit will be terminated +- on unit stop (for services: after the ++ group of this unit will be killed on ++ unit stop (for services: after the + stop command is executed, as + configured with + ExecStop=). If set + to , only the + main process itself is killed. If set +- to , no process is ++ to the ++ SIGTERM signal ++ (see below) is sent to the main ++ process while the subsequent ++ SIGKILL signal ++ (see below) is sent to all remaining ++ processes of the unit's control ++ group. If set to ++ , no process is + killed. In this case only the stop +- command will be executed on unit +- stop, but no process be killed ++ command will be executed on unit stop, ++ but no process be killed + otherwise. Processes remaining alive + after stop are left in their control + group and the control group continues + to exist after stop unless it is +- empty. Defaults to +- . ++ empty. + + Processes will first be + terminated via +@@ -133,14 +146,24 @@ + option). See + kill2 + for more +- information. ++ information. ++ ++ Defaults to ++ . + + + + KillSignal= + Specifies which signal +- to use when killing a +- service. Defaults to SIGTERM. ++ to use when killing a service. This ++ controls the signal that is sent as ++ first step of shutting down a unit ++ (see above), and is usually followed ++ by SIGKILL (see ++ above and below). For a list of valid ++ signals, see ++ signal7. Defaults ++ to SIGTERM. + + + +@@ -184,7 +207,9 @@ + systemd.swap5, + systemd.mount5, + systemd.exec5, +- systemd.directives7 ++ systemd.directives7, ++ kill2, ++ signal7 + + + +diff --git a/src/core/kill.c b/src/core/kill.c +index ea947c2..4271346 100644 +--- a/src/core/kill.c ++++ b/src/core/kill.c +@@ -52,6 +52,7 @@ void kill_context_dump(KillContext *c, FILE *f, const char *prefix) { + static const char* const kill_mode_table[_KILL_MODE_MAX] = { + [KILL_CONTROL_GROUP] = "control-group", + [KILL_PROCESS] = "process", ++ [KILL_MIXED] = "mixed", + [KILL_NONE] = "none" + }; + +diff --git a/src/core/kill.h b/src/core/kill.h +index 41773f0..d5f125f 100644 +--- a/src/core/kill.h ++++ b/src/core/kill.h +@@ -32,6 +32,7 @@ typedef enum KillMode { + /* The kill mode is a property of a unit. */ + KILL_CONTROL_GROUP = 0, + KILL_PROCESS, ++ KILL_MIXED, + KILL_NONE, + _KILL_MODE_MAX, + _KILL_MODE_INVALID = -1 +diff --git a/src/core/unit.c b/src/core/unit.c +index 4b97710..0b10e57 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -3007,7 +3007,7 @@ int unit_kill_context( + } + } + +- if (c->kill_mode == KILL_CONTROL_GROUP && u->cgroup_path) { ++ if ((c->kill_mode == KILL_CONTROL_GROUP || (c->kill_mode == KILL_MIXED && sigkill)) && u->cgroup_path) { + _cleanup_set_free_ Set *pid_set = NULL; + + /* Exclude the main/control pids from being killed via the cgroup */ +@@ -3021,6 +3021,7 @@ int unit_kill_context( + log_warning_unit(u->id, "Failed to kill control group: %s", strerror(-r)); + } else if (r > 0) { + wait_for_exit = true; ++ + if (c->send_sighup) { + set_free(pid_set); + +diff --git a/units/user@.service.in b/units/user@.service.in +index 3718a57..3bb8696 100644 +--- a/units/user@.service.in ++++ b/units/user@.service.in +@@ -17,3 +17,4 @@ Environment=SHELL=%s + ExecStart=-@rootlibexecdir@/systemd --user + Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket + Slice=user-%i.slice ++KillMode=mixed +-- +1.8.4 + diff --git a/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch b/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch new file mode 100644 index 00000000..40479ead --- /dev/null +++ b/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch @@ -0,0 +1,329 @@ +From d420282b28f50720e233ccb1c02547c562195653 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 26 Nov 2013 01:39:53 +0100 +Subject: [PATCH] core: replace OnFailureIsolate= setting by a more generic + OnFailureJobMode= setting and make use of it where applicable + +--- + man/systemd.unit.xml | 40 +++++++++++++++++++++++++---------- + src/core/dbus-unit.c | 3 ++- + src/core/job.h | 3 +-- + src/core/load-fragment-gperf.gperf.m4 | 3 ++- + src/core/load-fragment.c | 31 +++++++++++++++++++++++++++ + src/core/load-fragment.h | 2 ++ + src/core/unit.c | 11 +++++----- + src/core/unit.h | 4 ++-- + units/initrd-cleanup.service.in | 1 + + units/initrd-fs.target | 2 +- + units/initrd-parse-etc.service.in | 1 + + units/initrd-root-fs.target | 2 +- + units/initrd-switch-root.service.in | 1 + + units/initrd.target | 2 +- + units/local-fs.target | 2 +- + 15 files changed, 82 insertions(+), 26 deletions(-) + +Index: systemd-208/man/systemd.unit.xml +=================================================================== +--- systemd-208.orig/man/systemd.unit.xml ++++ systemd-208/man/systemd.unit.xml +@@ -669,19 +669,37 @@ + + + +- OnFailureIsolate= ++ OnFailureJobMode= + +- Takes a boolean +- argument. If , the +- unit listed in ++ Takes a value of ++ fail, ++ replace, ++ replace-irreversibly ++ or ++ isolate. Defaults ++ to ++ replace. Specifies ++ how the units listed in + OnFailure= will be +- enqueued in isolation mode, i.e. all +- units that are not its dependency will +- be stopped. If this is set, only a ++ enqueued. If set to ++ fail and ++ contradicting jobs are already queued, ++ cause the activation to fail. If set ++ to replace and ++ contradicting jobs area already ++ queued, replace ++ those. replace-irreversibly ++ is similar to ++ replace, however, ++ creates jobs that cannot be reversed ++ unless they finished or are explicitly ++ canceled. isolate ++ may be used to terminate all other ++ units but the specified one. If ++ this is set to ++ isolate, only a + single unit may be listed in +- OnFailure=. Defaults +- to +- . ++ OnFailure=.. + + + +Index: systemd-208/src/core/dbus-unit.c +=================================================================== +--- systemd-208.orig/src/core/dbus-unit.c ++++ systemd-208/src/core/dbus-unit.c +@@ -133,6 +133,7 @@ static int bus_unit_append_description(D + } + + static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_load_state, unit_load_state, UnitLoadState); ++static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_job_mode, job_mode, JobMode); + + static int bus_unit_append_active_state(DBusMessageIter *i, const char *property, void *data) { + Unit *u = data; +@@ -1079,7 +1080,7 @@ const BusProperty bus_unit_properties[] + { "RefuseManualStop", bus_property_append_bool, "b", offsetof(Unit, refuse_manual_stop) }, + { "AllowIsolate", bus_property_append_bool, "b", offsetof(Unit, allow_isolate) }, + { "DefaultDependencies", bus_property_append_bool, "b", offsetof(Unit, default_dependencies) }, +- { "OnFailureIsolate", bus_property_append_bool, "b", offsetof(Unit, on_failure_isolate) }, ++ { "OnFailureJobMode", bus_unit_append_job_mode, "s", offsetof(Unit, on_failure_job_mode) }, + { "IgnoreOnIsolate", bus_property_append_bool, "b", offsetof(Unit, ignore_on_isolate) }, + { "IgnoreOnSnapshot", bus_property_append_bool, "b", offsetof(Unit, ignore_on_snapshot) }, + { "NeedDaemonReload", bus_unit_append_need_daemon_reload, "b", 0 }, +Index: systemd-208/src/core/job.h +=================================================================== +--- systemd-208.orig/src/core/job.h ++++ systemd-208/src/core/job.h +@@ -83,7 +83,7 @@ enum JobState { + enum JobMode { + JOB_FAIL, /* Fail if a conflicting job is already queued */ + JOB_REPLACE, /* Replace an existing conflicting job */ +- JOB_REPLACE_IRREVERSIBLY, /* Like JOB_REPLACE + produce irreversible jobs */ ++ JOB_REPLACE_IRREVERSIBLY,/* Like JOB_REPLACE + produce irreversible jobs */ + JOB_ISOLATE, /* Start a unit, and stop all others */ + JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering dependencies */ + JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */ +Index: systemd-208/src/core/load-fragment-gperf.gperf.m4 +=================================================================== +--- systemd-208.orig/src/core/load-fragment-gperf.gperf.m4 ++++ systemd-208/src/core/load-fragment-gperf.gperf.m4 +@@ -122,7 +122,8 @@ Unit.RefuseManualStart, config_ + Unit.RefuseManualStop, config_parse_bool, 0, offsetof(Unit, refuse_manual_stop) + Unit.AllowIsolate, config_parse_bool, 0, offsetof(Unit, allow_isolate) + Unit.DefaultDependencies, config_parse_bool, 0, offsetof(Unit, default_dependencies) +-Unit.OnFailureIsolate, config_parse_bool, 0, offsetof(Unit, on_failure_isolate) ++Unit.OnFailureJobMode, config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode) ++Unit.OnFailureIsolate, config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode) + Unit.IgnoreOnIsolate, config_parse_bool, 0, offsetof(Unit, ignore_on_isolate) + Unit.IgnoreOnSnapshot, config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot) + Unit.JobTimeoutSec, config_parse_sec, 0, offsetof(Unit, job_timeout) +Index: systemd-208/src/core/load-fragment.c +=================================================================== +--- systemd-208.orig/src/core/load-fragment.c ++++ systemd-208/src/core/load-fragment.c +@@ -2314,6 +2314,36 @@ int config_parse_blockio_bandwidth( + return 0; + } + ++DEFINE_CONFIG_PARSE_ENUM(config_parse_job_mode, job_mode, JobMode, "Failed to parse job mode"); ++ ++int config_parse_job_mode_isolate( ++ const char *unit, ++ const char *filename, ++ unsigned line, ++ const char *section, ++ const char *lvalue, ++ int ltype, ++ const char *rvalue, ++ void *data, ++ void *userdata) { ++ ++ JobMode *m = data; ++ int r; ++ ++ assert(filename); ++ assert(lvalue); ++ assert(rvalue); ++ ++ r = parse_boolean(rvalue); ++ if (r < 0) { ++ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse boolean, ignoring: %s", rvalue); ++ return 0; ++ } ++ ++ *m = r ? JOB_ISOLATE : JOB_REPLACE; ++ return 0; ++} ++ + #define FOLLOW_MAX 8 + + static int open_follow(char **filename, FILE **_f, Set *names, char **_final) { +Index: systemd-208/src/core/load-fragment.h +=================================================================== +--- systemd-208.orig/src/core/load-fragment.h ++++ systemd-208/src/core/load-fragment.h +@@ -83,6 +83,8 @@ int config_parse_device_allow(const char + int config_parse_blockio_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_blockio_device_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + int config_parse_blockio_bandwidth(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); ++int config_parse_job_mode(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); ++int config_parse_job_mode_isolate(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); + + /* gperf prototypes */ + const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, unsigned length); +Index: systemd-208/src/core/unit.c +=================================================================== +--- systemd-208.orig/src/core/unit.c ++++ systemd-208/src/core/unit.c +@@ -85,6 +85,7 @@ Unit *unit_new(Manager *m, size_t size) + u->deserialized_job = _JOB_TYPE_INVALID; + u->default_dependencies = true; + u->unit_file_state = _UNIT_FILE_STATE_INVALID; ++ u->on_failure_job_mode = JOB_REPLACE; + + return u; + } +@@ -807,14 +808,14 @@ void unit_dump(Unit *u, FILE *f, const c + "%s\tRefuseManualStart: %s\n" + "%s\tRefuseManualStop: %s\n" + "%s\tDefaultDependencies: %s\n" +- "%s\tOnFailureIsolate: %s\n" ++ "%s\tOnFailureJobMode: %s\n" + "%s\tIgnoreOnIsolate: %s\n" + "%s\tIgnoreOnSnapshot: %s\n", + prefix, yes_no(u->stop_when_unneeded), + prefix, yes_no(u->refuse_manual_start), + prefix, yes_no(u->refuse_manual_stop), + prefix, yes_no(u->default_dependencies), +- prefix, yes_no(u->on_failure_isolate), ++ prefix, job_mode_to_string(u->on_failure_job_mode), + prefix, yes_no(u->ignore_on_isolate), + prefix, yes_no(u->ignore_on_snapshot)); + +@@ -985,11 +986,11 @@ int unit_load(Unit *u) { + if (r < 0) + goto fail; + +- if (u->on_failure_isolate && ++ if (u->on_failure_job_mode == JOB_ISOLATE && + set_size(u->dependencies[UNIT_ON_FAILURE]) > 1) { + + log_error_unit(u->id, +- "More than one OnFailure= dependencies specified for %s but OnFailureIsolate= enabled. Refusing.", u->id); ++ "More than one OnFailure= dependencies specified for %s but OnFailureJobMode=isolate set. Refusing.", u->id); + + r = -EINVAL; + goto fail; +@@ -1394,7 +1395,7 @@ void unit_start_on_failure(Unit *u) { + SET_FOREACH(other, u->dependencies[UNIT_ON_FAILURE], i) { + int r; + +- r = manager_add_job(u->manager, JOB_START, other, u->on_failure_isolate ? JOB_ISOLATE : JOB_REPLACE, true, NULL, NULL); ++ r = manager_add_job(u->manager, JOB_START, other, u->on_failure_job_mode, true, NULL, NULL); + if (r < 0) + log_error_unit(u->id, "Failed to enqueue OnFailure= job: %s", strerror(-r)); + } +Index: systemd-208/src/core/unit.h +=================================================================== +--- systemd-208.orig/src/core/unit.h ++++ systemd-208/src/core/unit.h +@@ -228,8 +228,8 @@ struct Unit { + /* Allow isolation requests */ + bool allow_isolate; + +- /* Isolate OnFailure unit */ +- bool on_failure_isolate; ++ /* How to start OnFailure units */ ++ JobMode on_failure_job_mode; + + /* Ignore this unit when isolating */ + bool ignore_on_isolate; +Index: systemd-208/units/initrd-cleanup.service.in +=================================================================== +--- systemd-208.orig/units/initrd-cleanup.service.in ++++ systemd-208/units/initrd-cleanup.service.in +@@ -10,6 +10,7 @@ Description=Cleaning Up and Shutting Dow + DefaultDependencies=no + ConditionPathExists=/etc/initrd-release + OnFailure=emergency.target ++OnFailureJobMode=replace-irreversibly + After=initrd-root-fs.target initrd-fs.target initrd.target + + [Service] +Index: systemd-208/units/initrd-fs.target +=================================================================== +--- systemd-208.orig/units/initrd-fs.target ++++ systemd-208/units/initrd-fs.target +@@ -9,7 +9,7 @@ + Description=Initrd File Systems + Documentation=man:systemd.special(7) + OnFailure=emergency.target +-OnFailureIsolate=yes ++OnFailureJobMode=replace-irreversibly + ConditionPathExists=/etc/initrd-release + After=initrd-parse-etc.service + DefaultDependencies=no +Index: systemd-208/units/initrd-parse-etc.service.in +=================================================================== +--- systemd-208.orig/units/initrd-parse-etc.service.in ++++ systemd-208/units/initrd-parse-etc.service.in +@@ -11,6 +11,7 @@ DefaultDependencies=no + Requires=initrd-root-fs.target + After=initrd-root-fs.target + OnFailure=emergency.target ++OnFailureJobMode=replace-irreversibly + ConditionPathExists=/etc/initrd-release + + [Service] +Index: systemd-208/units/initrd-root-fs.target +=================================================================== +--- systemd-208.orig/units/initrd-root-fs.target ++++ systemd-208/units/initrd-root-fs.target +@@ -10,6 +10,6 @@ Description=Initrd Root File System + Documentation=man:systemd.special(7) + ConditionPathExists=/etc/initrd-release + OnFailure=emergency.target +-OnFailureIsolate=yes ++OnFailureJobMode=replace-irreversibly + DefaultDependencies=no + Conflicts=shutdown.target +Index: systemd-208/units/initrd-switch-root.service.in +=================================================================== +--- systemd-208.orig/units/initrd-switch-root.service.in ++++ systemd-208/units/initrd-switch-root.service.in +@@ -10,6 +10,7 @@ Description=Switch Root + DefaultDependencies=no + ConditionPathExists=/etc/initrd-release + OnFailure=emergency.target ++OnFailureJobMode=replace-irreversibly + AllowIsolate=yes + + [Service] +Index: systemd-208/units/initrd.target +=================================================================== +--- systemd-208.orig/units/initrd.target ++++ systemd-208/units/initrd.target +@@ -9,7 +9,7 @@ + Description=Initrd Default Target + Documentation=man:systemd.special(7) + OnFailure=emergency.target +-OnFailureIsolate=yes ++OnFailureJobMode=replace-irreversibly + ConditionPathExists=/etc/initrd-release + Requires=basic.target + Wants=initrd-root-fs.target initrd-fs.target initrd-parse-etc.service +Index: systemd-208/units/local-fs.target +=================================================================== +--- systemd-208.orig/units/local-fs.target ++++ systemd-208/units/local-fs.target +@@ -12,4 +12,4 @@ After=local-fs-pre.target + DefaultDependencies=no + Conflicts=shutdown.target + OnFailure=emergency.target +-OnFailureIsolate=no ++OnFailureJobMode=replace-irreversibly diff --git a/0001-upstream-systemctl-halt-reboot-error-handling.patch b/0001-upstream-systemctl-halt-reboot-error-handling.patch new file mode 100644 index 00000000..110b866b --- /dev/null +++ b/0001-upstream-systemctl-halt-reboot-error-handling.patch @@ -0,0 +1,85 @@ +--- systemd-208/src/core/shutdown.c ++++ systemd-208/src/core/shutdown.c 2014-01-27 11:31:38.486235816 +0000 +@@ -329,6 +329,9 @@ int main(int argc, char *argv[]) { + + reboot(cmd); + ++ if (cmd == RB_POWER_OFF) ++ reboot(RB_HALT_SYSTEM); ++ + if (errno == EPERM && in_container) { + /* If we are in a container, and we lacked + * CAP_SYS_BOOT just exit, this will kill our + +--- systemd-208/src/systemctl/systemctl.c ++++ systemd-208/src/systemctl/systemctl.c 2014-01-27 11:05:18.298236035 +0000 +@@ -138,7 +138,7 @@ static bool arg_plain = false; + static bool private_bus = false; + + static int daemon_reload(DBusConnection *bus, char **args); +-static void halt_now(enum action a); ++static int halt_now(enum action a); + + static void pager_open_if_enabled(void) { + +@@ -2227,7 +2227,7 @@ static int start_special(DBusConnection + (a == ACTION_HALT || + a == ACTION_POWEROFF || + a == ACTION_REBOOT)) +- halt_now(a); ++ return halt_now(a); + + if (arg_force >= 1 && + (a == ACTION_HALT || +@@ -5973,7 +5973,7 @@ done: + return 0; + } + +-static _noreturn_ void halt_now(enum action a) { ++static int halt_now(enum action a) { + + /* Make sure C-A-D is handled by the kernel from this + * point on... */ +@@ -5984,23 +5984,22 @@ static _noreturn_ void halt_now(enum act + case ACTION_HALT: + log_info("Halting."); + reboot(RB_HALT_SYSTEM); +- break; ++ return -errno; + + case ACTION_POWEROFF: + log_info("Powering off."); + reboot(RB_POWER_OFF); +- break; ++ return -errno; + + case ACTION_REBOOT: + log_info("Rebooting."); + reboot(RB_AUTOBOOT); +- break; ++ return -errno; + + default: +- assert_not_reached("Unknown halt action."); ++ assert_not_reached("Unknown action."); ++ return -ENOSYS; + } +- +- assert_not_reached("Uh? This shouldn't happen."); + } + + static int halt_main(DBusConnection *bus) { +@@ -6069,9 +6068,10 @@ static int halt_main(DBusConnection *bus + if (arg_dry) + return 0; + +- halt_now(arg_action); +- /* We should never reach this. */ +- return -ENOSYS; ++ r = halt_now(arg_action); ++ log_error("Failed to reboot: %s", strerror(-r)); ++ ++ return r; + } + + static int runlevel_main(void) { diff --git a/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch b/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch new file mode 100644 index 00000000..76624f92 --- /dev/null +++ b/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch @@ -0,0 +1,62 @@ +From 95d57e7b631a2d78b9b5d841125194052895470f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 29 Jan 2014 13:49:54 +0100 +Subject: [PATCH 2/3] service: allow KillMode=mixed in conjunction with + PAMName= + +--- + src/core/service.c | 20 +++++++------------- + 1 file changed, 7 insertions(+), 13 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index 6792024..e7f03e1 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -1105,37 +1105,31 @@ static int service_verify(Service *s) { + return 0; + + if (!s->exec_command[SERVICE_EXEC_START]) { +- log_error_unit(UNIT(s)->id, +- "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); ++ log_error_unit(UNIT(s)->id, "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); + return -EINVAL; + } + + if (s->type != SERVICE_ONESHOT && + s->exec_command[SERVICE_EXEC_START]->command_next) { +- log_error_unit(UNIT(s)->id, +- "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); ++ log_error_unit(UNIT(s)->id, "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); + return -EINVAL; + } + + if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) { +- log_error_unit(UNIT(s)->id, +- "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); ++ log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); + return -EINVAL; + } + + if (s->type == SERVICE_DBUS && !s->bus_name) { +- log_error_unit(UNIT(s)->id, +- "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); ++ log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); + return -EINVAL; + } + + if (s->bus_name && s->type != SERVICE_DBUS) +- log_warning_unit(UNIT(s)->id, +- "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); ++ log_warning_unit(UNIT(s)->id, "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); + +- if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) { +- log_error_unit(UNIT(s)->id, +- "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", UNIT(s)->id); ++ if (s->exec_context.pam_name && !(s->kill_context.kill_mode == KILL_CONTROL_GROUP || s->kill_context.kill_mode == KILL_MIXED)) { ++ log_error_unit(UNIT(s)->id, "%s has PAM enabled. Kill mode must be set to 'control-group' or 'mixed'. Refusing.", UNIT(s)->id); + return -EINVAL; + } + +-- +1.8.4 + diff --git a/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch b/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch new file mode 100644 index 00000000..e6423f54 --- /dev/null +++ b/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch @@ -0,0 +1,128 @@ +From b2ffdc8da536cd88a305f97517f356e2c5383a52 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 29 Jan 2014 14:58:04 +0100 +Subject: [PATCH 3/3] core: make sure to always go through both SIGTERM and + SIGKILL states of units + +Given that we now have KillMode=mixed where SIGTERM might kill a smaller +set than SIGKILL we need to make sure to always go explicitly throught +the SIGKILL state to get the right end result. +--- + src/core/mount.c | 8 +++++++- + src/core/scope.c | 4 +++- + src/core/service.c | 10 +++++++--- + src/core/socket.c | 6 +++++- + src/core/swap.c | 6 +++++- + 5 files changed, 27 insertions(+), 7 deletions(-) + +diff --git a/src/core/mount.c b/src/core/mount.c +index 3d46557..e418d09 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -854,8 +854,14 @@ static void mount_enter_signal(Mount *m, MountState state, MountResult f) { + goto fail; + + mount_set_state(m, state); +- } else if (state == MOUNT_REMOUNTING_SIGTERM || state == MOUNT_REMOUNTING_SIGKILL) ++ } else if (state == MOUNT_REMOUNTING_SIGTERM) ++ mount_enter_signal(m, MOUNT_REMOUNTING_SIGKILL, MOUNT_SUCCESS); ++ else if (state == MOUNT_REMOUNTING_SIGKILL) + mount_enter_mounted(m, MOUNT_SUCCESS); ++ else if (state == MOUNT_MOUNTING_SIGTERM) ++ mount_enter_signal(m, MOUNT_MOUNTING_SIGKILL, MOUNT_SUCCESS); ++ else if (state == MOUNT_UNMOUNTING_SIGTERM) ++ mount_enter_signal(m, MOUNT_UNMOUNTING_SIGKILL, MOUNT_SUCCESS); + else + mount_enter_dead(m, MOUNT_SUCCESS); + +diff --git a/src/core/scope.c b/src/core/scope.c +index 50e5dba..3a5c95e 100644 +--- a/src/core/scope.c ++++ b/src/core/scope.c +@@ -221,7 +221,9 @@ static void scope_enter_signal(Scope *s, ScopeState state, ScopeResult f) { + } + + scope_set_state(s, state); +- } else ++ } else if (state == SCOPE_STOP_SIGTERM) ++ scope_enter_signal(s, SCOPE_STOP_SIGKILL, SCOPE_SUCCESS); ++ else + scope_enter_dead(s, SCOPE_SUCCESS); + + return; +diff --git a/src/core/service.c b/src/core/service.c +index e7f03e1..4b481c2 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -1964,10 +1964,9 @@ static void service_enter_stop_post(Service *s, ServiceResult f) { + if (r < 0) + goto fail; + +- + service_set_state(s, SERVICE_STOP_POST); + } else +- service_enter_dead(s, SERVICE_SUCCESS, true); ++ service_enter_signal(s, SERVICE_FINAL_SIGTERM, SERVICE_SUCCESS); + + return; + +@@ -1993,6 +1992,7 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f + s->main_pid, + s->control_pid, + s->main_pid_alien); ++ + if (r < 0) + goto fail; + +@@ -2005,8 +2005,12 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f + } + + service_set_state(s, state); +- } else if (state == SERVICE_STOP_SIGTERM || state == SERVICE_STOP_SIGKILL) ++ } else if (state == SERVICE_STOP_SIGTERM) ++ service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_SUCCESS); ++ else if (state == SERVICE_STOP_SIGKILL) + service_enter_stop_post(s, SERVICE_SUCCESS); ++ else if (state == SERVICE_FINAL_SIGTERM) ++ service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_SUCCESS); + else + service_enter_dead(s, SERVICE_SUCCESS, true); + +diff --git a/src/core/socket.c b/src/core/socket.c +index 6c0ac1a..831876f 100644 +--- a/src/core/socket.c ++++ b/src/core/socket.c +@@ -1298,8 +1298,12 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) { + goto fail; + + socket_set_state(s, state); +- } else if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL) ++ } else if (state == SOCKET_STOP_PRE_SIGTERM) ++ socket_enter_signal(s, SOCKET_STOP_PRE_SIGKILL, SOCKET_SUCCESS); ++ else if (state == SOCKET_STOP_PRE_SIGKILL) + socket_enter_stop_post(s, SOCKET_SUCCESS); ++ else if (state == SOCKET_FINAL_SIGTERM) ++ socket_enter_signal(s, SOCKET_FINAL_SIGKILL, SOCKET_SUCCESS); + else + socket_enter_dead(s, SOCKET_SUCCESS); + +diff --git a/src/core/swap.c b/src/core/swap.c +index a68ab7c..8886fe8 100644 +--- a/src/core/swap.c ++++ b/src/core/swap.c +@@ -655,7 +655,11 @@ static void swap_enter_signal(Swap *s, SwapState state, SwapResult f) { + goto fail; + + swap_set_state(s, state); +- } else ++ } else if (state == SWAP_ACTIVATING_SIGTERM) ++ swap_enter_signal(s, SWAP_ACTIVATING_SIGKILL, SWAP_SUCCESS); ++ else if (state == SWAP_DEACTIVATING_SIGTERM) ++ swap_enter_signal(s, SWAP_DEACTIVATING_SIGKILL, SWAP_SUCCESS); ++ else + swap_enter_dead(s, SWAP_SUCCESS); + + return; +-- +1.8.4 + diff --git a/1016-support-powerfail-with-powerstatus.patch b/1016-support-powerfail-with-powerstatus.patch new file mode 100644 index 00000000..c59f6828 --- /dev/null +++ b/1016-support-powerfail-with-powerstatus.patch @@ -0,0 +1,90 @@ +--- systemd-208/units/sigpwr.target ++++ systemd-208/units/sigpwr.target 2014-01-14 15:53:32.878735762 +0000 +@@ -8,3 +8,5 @@ + [Unit] + Description=Power Failure + Documentation=man:systemd.special(7) ++BindsTo=powerfail.service ++DefaultDependencies=no ++RefuseManualStart=yes +--- systemd-208/units/powerfail.service ++++ systemd-208/units/powerfail.service 2014-01-14 16:11:41.802235712 +0000 +@@ -0,0 +1,21 @@ ++# This file is part of systemd. ++# ++# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany. ++# Author: Werner Fink ++# Please send feedback to http://www.suse.de/feedback ++# ++# Description: ++# ++# Used to start the systemd-powerfail.service ++# ++ ++[Unit] ++Description=powerfail handling ++BindsTo=sigpwr.target ++DefaultDependencies=no ++RefuseManualStart=yes ++ ++[Service] ++Type=oneshot ++ExecStart=/usr/lib/systemd/systemd-powerfail ++RemainAfterExit=false +--- systemd-208/man/systemd-powerfail.service.8 ++++ systemd-208/man/systemd-powerfail.service.8 2014-01-14 18:22:21.286735810 +0000 +@@ -0,0 +1,54 @@ ++'\" t ++.TH "SYSTEMD\-POWERFAIL\&.SERVICE" "8" "" "systemd 208" "systemd-powerfail.service" ++.\" ----------------------------------------------------------------- ++.\" * Define some portability stuff ++.\" ----------------------------------------------------------------- ++.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++.\" http://bugs.debian.org/507673 ++.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html ++.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++.ie \n(.g .ds Aq \(aq ++.el .ds Aq ' ++.\" ----------------------------------------------------------------- ++.\" * set default formatting ++.\" ----------------------------------------------------------------- ++.\" disable hyphenation ++.nh ++.\" disable justification (adjust text to left margin only) ++.ad l ++.\" ----------------------------------------------------------------- ++.\" * MAIN CONTENT STARTS HERE * ++.\" ----------------------------------------------------------------- ++.SH "NAME" ++systemd-powerfail.service, systemd-powerfail \- Power Fail signal handling ++.SH "SYNOPSIS" ++.PP ++systemd\-powerfail\&.service ++.PP ++/usr/lib/systemd/systemd\-powerfail ++.SH "DESCRIPTION" ++.PP ++systemd\-powerfail ++is a system service that is used to evaulate the content of ++\fI/var/run/powerstatus\fR. Based on the content of this ++file: ++.IP F(AIL) ++Power is failing, UPS is providing the power. The ++systemd\-powerfail ++is now doing a timed shutdown. ++.IP O(K) ++The power has been restored, and pending shutdown ++will be cancled. ++.IP L(OW) ++The power is failing and the UPS has a low battery. ++The ++systemd\-powerfail ++is doing an immediate shutdown. ++.PP ++If \fI/var/run/powerstatus\fR doesn't exist or contains anything else then the letters ++F, O or L, systemd\-powerfail will behave as if it has read the letter F. ++.PP ++.SH "SEE ALSO" ++.PP ++\fBshutdown\fR(8), ++\fBpowerd\fR(8) diff --git a/1017-skip-native-unit-handling-if-sysv-already-handled.patch b/1017-skip-native-unit-handling-if-sysv-already-handled.patch new file mode 100644 index 00000000..9390c42a --- /dev/null +++ b/1017-skip-native-unit-handling-if-sysv-already-handled.patch @@ -0,0 +1,20 @@ +For bnc#818044 +Based on http://cgit.freedesktop.org/systemd/systemd/patch/?id=67d6621059085963a2a908a3ea99ced3b0ca789e +--- + systemctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- systemd-208/src/systemctl/systemctl.c ++++ systemd-208/src/systemctl/systemctl.c 2014-01-21 13:00:52.910736187 +0000 +@@ -4453,6 +4453,11 @@ static int enable_unit(DBusConnection *b + if (r < 0) + return r; + ++ /* If the operation was fully executed by the SysV compat, ++ * let's finish early */ ++ if (strv_isempty(mangled_names)) ++ return 0; ++ + if (!bus || avoid_bus()) { + if (streq(verb, "enable")) { + r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); diff --git a/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch new file mode 100644 index 00000000..81a26925 --- /dev/null +++ b/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch @@ -0,0 +1,51 @@ +--- systemd-208/src/core/service.c ++++ systemd-208/src/core/service.c 2014-01-17 12:15:52.527311588 +0000 +@@ -380,6 +380,8 @@ static int sysv_translate_facility(const + "remote_fs", SPECIAL_REMOTE_FS_TARGET, + "syslog", NULL, + "time", SPECIAL_TIME_SYNC_TARGET, ++ "all", SPECIAL_DEFAULT_TARGET, ++ "null", NULL, + }; + + unsigned i; +@@ -389,7 +391,7 @@ static int sysv_translate_facility(const + assert(name); + assert(_r); + +- n = *name == '$' ? name + 1 : name; ++ n = (*name == '$' || *name == '+') ? name + 1 : name; + + for (i = 0; i < ELEMENTSOF(table); i += 2) { + +@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic + startswith_no_case(t, "Should-Start:") || + startswith_no_case(t, "X-Start-Before:") || + startswith_no_case(t, "X-Start-After:")) { ++ UnitDependency d, e; + char *i, *w; + size_t z; + + state = LSB; ++ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER; ++ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : UNIT_WANTS; + + FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) { + char *n, *m; +@@ -838,12 +843,15 @@ static int service_load_sysv_path(Servic + continue; + } + ++ if (*n == '+') ++ e = UNIT_WANTS; ++ + free(n); + + if (r == 0) + continue; + +- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true); ++ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); + + if (r < 0) + log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s", diff --git a/1019-make-completion-smart-to-be-able-to-redirect.patch b/1019-make-completion-smart-to-be-able-to-redirect.patch new file mode 100644 index 00000000..d1425d83 --- /dev/null +++ b/1019-make-completion-smart-to-be-able-to-redirect.patch @@ -0,0 +1,236 @@ +--- systemd-208/shell-completion/bash/hostnamectl ++++ systemd-208/shell-completion/bash/hostnamectl 2014-01-17 14:27:16.183272019 +0000 +@@ -30,6 +30,10 @@ _hostnamectl() { + local OPTS='-h --help --version --transient --static --pretty + --no-ask-password -H --host' + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if [[ $cur = -* ]]; then + COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) + return 0 +@@ -58,4 +62,4 @@ _hostnamectl() { + return 0 + } + +-complete -F _hostnamectl hostnamectl ++complete -o default -o bashdefault -F _hostnamectl hostnamectl +--- systemd-208/shell-completion/bash/journalctl ++++ systemd-208/shell-completion/bash/journalctl 2014-01-17 14:34:30.338737694 +0000 +@@ -49,6 +49,10 @@ _journalctl() { + --verify-key' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then + case $prev in + --boot|--this-boot|-b) +@@ -107,4 +111,4 @@ _journalctl() { + fi + } + +-complete -F _journalctl journalctl ++complete -o default -o bashdefault -F _journalctl journalctl +--- systemd-208/shell-completion/bash/kernel-install ++++ systemd-208/shell-completion/bash/kernel-install 2014-01-17 14:34:41.982255874 +0000 +@@ -18,11 +18,22 @@ + # You should have received a copy of the GNU Lesser General Public License + # along with systemd; If not, see . + ++__contains_word () { ++ local w word=$1; shift ++ for w in "$@"; do ++ [[ $w = "$word" ]] && return ++ done ++} ++ + _kernel_install() { + local comps + local MACHINE_ID + local cur=${COMP_WORDS[COMP_CWORD]} + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + case $COMP_CWORD in + 1) + comps="add remove" +@@ -47,4 +58,4 @@ _kernel_install() { + return 0 + } + +-complete -F _kernel_install kernel-install ++complete -o default -o bashdefault -F _kernel_install kernel-install +--- systemd-208/shell-completion/bash/localectl ++++ systemd-208/shell-completion/bash/localectl 2014-01-17 14:34:52.546235747 +0000 +@@ -30,6 +30,10 @@ _localectl() { + local OPTS='-h --help --version --no-convert --no-pager --no-ask-password + -H --host' + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" $OPTS; then + case $prev in + --host|-H) +@@ -73,4 +77,4 @@ _localectl() { + return 0 + } + +-complete -F _localectl localectl ++complete -o default -o bashdefault -F _localectl localectl +--- systemd-208/shell-completion/bash/loginctl ++++ systemd-208/shell-completion/bash/loginctl 2014-01-17 14:35:03.386245699 +0000 +@@ -37,6 +37,10 @@ _loginctl () { + [ARG]='--host -H --kill-who --property -p --signal -s' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" ${OPTS[ARG]}; then + case $prev in + --signal|-s) +@@ -106,4 +110,4 @@ _loginctl () { + return 0 + } + +-complete -F _loginctl loginctl ++complete -o default -o bashdefault -F _loginctl loginctl +--- systemd-208/shell-completion/bash/systemctl ++++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000 +@@ -77,6 +77,10 @@ _systemctl () { + [ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "--user" ${COMP_WORDS[*]}; then + mode=--user + else +@@ -226,4 +230,4 @@ _systemctl () { + return 0 + } + +-complete -F _systemctl systemctl ++complete -o default -o bashdefault -F _systemctl systemctl +--- systemd-208/shell-completion/bash/systemd-analyze ++++ systemd-208/shell-completion/bash/systemd-analyze 2014-01-17 14:35:38.366736021 +0000 +@@ -37,6 +37,10 @@ _systemd_analyze() { + [LOG_LEVEL]='set-log-level' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + _init_completion || return + + for ((i=0; $i <= $COMP_CWORD; i++)); do +@@ -83,4 +87,4 @@ _systemd_analyze() { + return 0 + } + +-complete -F _systemd_analyze systemd-analyze ++complete -o default -o bashdefault -F _systemd_analyze systemd-analyze +--- systemd-208/shell-completion/bash/systemd-coredumpctl ++++ systemd-208/shell-completion/bash/systemd-coredumpctl 2014-01-17 14:35:46.434235632 +0000 +@@ -44,6 +44,10 @@ _coredumpctl() { + [DUMP]='dump gdb' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" '--output -o'; then + comps=$( compgen -A file -- "$cur" ) + compopt -o filenames +@@ -82,4 +86,4 @@ _coredumpctl() { + return 0 + } + +-complete -F _coredumpctl systemd-coredumpctl ++complete -o default -o bashdefault -F _coredumpctl systemd-coredumpctl +--- systemd-208/shell-completion/bash/systemd-run ++++ systemd-208/shell-completion/bash/systemd-run 2014-01-17 14:35:55.938236298 +0000 +@@ -17,6 +17,13 @@ + # You should have received a copy of the GNU Lesser General Public License + # along with systemd; If not, see . + ++__contains_word () { ++ local w word=$1; shift ++ for w in "$@"; do ++ [[ $w = "$word" ]] && return ++ done ++} ++ + __systemctl() { + local mode=$1; shift 1 + systemctl $mode --full --no-legend "$@" +@@ -31,6 +38,11 @@ _systemd_run() { + + local mode=--system + local i ++ ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + for (( i=1; i <= COMP_CWORD; i++ )); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + local root_command=${COMP_WORDS[i]} +@@ -60,4 +72,4 @@ _systemd_run() { + return 0 + } + +-complete -F _systemd_run systemd-run ++complete -o default -o bashdefault -F _systemd_run systemd-run +--- systemd-208/shell-completion/bash/timedatectl ++++ systemd-208/shell-completion/bash/timedatectl 2014-01-17 14:36:06.182735466 +0000 +@@ -30,6 +30,10 @@ _timedatectl() { + local OPTS='-h --help --version --adjust-system-clock --no-pager + --no-ask-password -H --host' + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" $OPTS; then + case $prev in + --host|-H) +@@ -73,4 +77,4 @@ _timedatectl() { + return 0 + } + +-complete -F _timedatectl timedatectl ++complete -o default -o bashdefault -F _timedatectl timedatectl +--- systemd-208/shell-completion/bash/udevadm ++++ systemd-208/shell-completion/bash/udevadm 2014-01-17 14:36:16.406236120 +0000 +@@ -36,6 +36,10 @@ _udevadm() { + + local verbs=(info trigger settle control monitor hwdb test-builtin test) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + for ((i=0; i <= COMP_CWORD; i++)); do + if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" && + ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then +@@ -94,4 +98,4 @@ _udevadm() { + return 0 + } + +-complete -F _udevadm udevadm ++complete -o default -o bashdefault -F _udevadm udevadm diff --git a/analyze-fix-crash-in-command-line-parsing.patch b/analyze-fix-crash-in-command-line-parsing.patch new file mode 100644 index 00000000..f76266ec --- /dev/null +++ b/analyze-fix-crash-in-command-line-parsing.patch @@ -0,0 +1,35 @@ +From da6de8a55784115451582051c8da620056994a05 Mon Sep 17 00:00:00 2001 +From: Frederic Crozat +Date: Mon, 20 Jan 2014 11:05:22 +0100 +Subject: [PATCH] analyze: fix crash in command line parsing + +Ensure DBusError is set before it can possibly be freed on return. +Fix crash when calling set-log-level without any parameter. + +Fix https://bugzilla.novell.com/show_bug.cgi?id=859365 +--- + src/analyze/systemd-analyze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c +index 27d063c..cdfae93 100644 +--- a/src/analyze/systemd-analyze.c ++++ b/src/analyze/systemd-analyze.c +@@ -1226,13 +1226,13 @@ static int set_log_level(DBusConnection *bus, char **args) { + assert(bus); + assert(args); + ++ dbus_error_init(&error); + if (strv_length(args) != 1) { + log_error("This command expects one argument only."); + return -E2BIG; + } + + value = args[0]; +- dbus_error_init(&error); + + m = dbus_message_new_method_call("org.freedesktop.systemd1", + "/org/freedesktop/systemd1", +-- +1.8.4 + diff --git a/macros.systemd b/macros.systemd index dc70ceb7..1a003957 100644 --- a/macros.systemd +++ b/macros.systemd @@ -46,6 +46,13 @@ if [ $FIRST_ARG -eq 1 ]; then \ touch "/var/lib/systemd/migrated/$sysv_service" || : \ done \ else \ + if [ $FIRST_ARG -gt 1 ]; then \ + for service in %{?*} ; do \ + if [ ! -e "/usr/lib/systemd/system/$service" ]; then \ + touch "/run/rpm-%{name}-update-$service-new-in-upgrade" \ + fi \ + done \ + fi \ for service in %{?*} ; do \ sysv_service=${service%.*} \ if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ @@ -74,6 +81,13 @@ if [ -n "$services_to_migrate" ]; then \ /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ elif [ $FIRST_ARG -eq 1 ]; then \ /usr/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ +elif [ $FIRST_ARG -gt 1 ]; then \ + for service in %{?*} ; do \ + if [ -e "/run/rpm-%{name}-update-$service-new-in-upgrade" ]; then \ + rm -f "/run/rpm-%{name}-update-$service-new-in-upgrade" \ + /usr/bin/systemctl preset "$service" >/dev/null 2>&1 || : \ + fi \ + done \ fi \ %{nil} diff --git a/make-emergency.service-conflict-with-syslog.socket.patch b/make-emergency.service-conflict-with-syslog.socket.patch new file mode 100644 index 00000000..63e513cc --- /dev/null +++ b/make-emergency.service-conflict-with-syslog.socket.patch @@ -0,0 +1,22 @@ +If after emergency service had been started there is incoming +traffic on syslog.socket emergency.service gets killed due to +implicit dependencies on basic.target => sysinit.target which in +turn conflict with emergency.target. + +As a workaround explicitly stop syslog.socket when entering +emergency.service. + +Reference: bnc#852232 +Index: systemd-208/units/emergency.service.in +=================================================================== +--- systemd-208/units/emergency.service.in ++++ systemd-208/units/emergency.service.in +@@ -9,7 +9,7 @@ + Description=Emergency Shell + Documentation=man:sulogin(8) + DefaultDependencies=no +-Conflicts=shutdown.target ++Conflicts=shutdown.target syslog.socket + Before=shutdown.target + + [Service] diff --git a/systemd-mini.changes b/systemd-mini.changes index ba215dd6..39675682 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,138 @@ +------------------------------------------------------------------- +Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de + +- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to skip already by the kernel managed devices + +------------------------------------------------------------------- +Wed Jan 29 18:03:39 UTC 2014 - arvidjaar@gmail.com + +- fix timeout stopping user@.service (bnc#841544) + * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch + * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch + * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch + +------------------------------------------------------------------- +Tue Jan 28 12:44:07 UTC 2014 - werner@suse.de + +- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch + to be able to detect if the sysctl reboot() returns. +- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + A check for unmaintained disk like devices is added to be able to + flush and maybe shut them down. Also the missing sync() system + call is added for the direct halt/reboot systemctl command. Then + the system halt is used as fallback if poweroff fails for both + the direct poweroff systemctl command as well as for the + systemd-shutdown utility. + +------------------------------------------------------------------- +Thu Jan 23 13:24:53 UTC 2014 - werner@suse.de + +- Make systemd-mini build + +------------------------------------------------------------------- +Thu Jan 23 13:18:39 UTC 2014 - werner@suse.de + +- Make requires bash-completion a recommends + +------------------------------------------------------------------- +Tue Jan 21 13:05:59 UTC 2014 - werner@suse.de + +- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch + to avoid that enabled boot scripts will be handled as unit files + by systemctl status command (bnc#818044) + +------------------------------------------------------------------- +Tue Jan 21 12:51:20 UTC 2014 - werner@suse.de + +- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch + as the original code behaves exactly as the shutdown code of + the old SysVinit (bnc#750845) +- Rename support-powerfail-with-powerstatus.patch to + 1016-support-powerfail-with-powerstatus.patch + +------------------------------------------------------------------- +Mon Jan 20 10:18:20 UTC 2014 - fcrozat@suse.com + +- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in + systemd-analyze (bnc#859365) + +------------------------------------------------------------------- +Fri Jan 17 16:09:24 UTC 2014 - werner@suse.de + +- Add patch + 1019-make-completion-smart-to-be-able-to-redirect.patch + to make redirections work with the bash command completions for + for systemd command tools (bnc#856858, bnc#859072) + +------------------------------------------------------------------- +Fri Jan 17 12:24:13 UTC 2014 - werner@suse.de + +- Add patch + 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch + to support the "+" to tag wanted dependencies as well as make + sure that required dependencies are handles as required ones. + This should fix bnc#858864 and bnc#857204. + +------------------------------------------------------------------- +Thu Jan 16 16:08:00 UTC 2014 - lnussel@suse.de + +- apply preset also to service files that are new in upgrade + +------------------------------------------------------------------- +Wed Jan 15 14:11:02 UTC 2014 - werner@suse.de + +- Change support-powerfail-with-powerstatus.patch to use BindsTo + instead of BindTo + +------------------------------------------------------------------- +Wed Jan 15 12:34:53 UTC 2014 - werner@suse.de + +- Add patch 1017-enforce-sufficient-shutdown-warnings.patch + Warn once per hour in the last 3 hours, then all 30 minutes in last + hour, all 15 minutes in the last 45 minutes, all 10 minutes in the + last 15 minutes, and then all minute in the last 10 minutes (bnc#750845) + +------------------------------------------------------------------- +Tue Jan 14 18:28:09 UTC 2014 - werner@suse.de + +- Add patch support-powerfail-with-powerstatus.patch and source + file systemd-powerfail to implement SIGPWR support with evaluation + of the file /var/run/powerstatus (bnc#737690) + +------------------------------------------------------------------- +Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de + +- Adapt patch + 1011-check-4-valid-kmsg-device.patch + to fit current upstream version maybe related to bnc#854884 +- Change patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to check if XDG_RUNTIME_DIR is set before the call of pam_putenv() + may fix bnc#855160 + +------------------------------------------------------------------- +Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com + +- Disable multi-seat-x build, since package xorg-x11-server + currently in Factory no longer needs it. + +------------------------------------------------------------------- +Wed Dec 18 18:56:01 UTC 2013 - hrvoje.senjan@gmail.com + +- Added 0001-logind-garbage-collect-stale-users.patch: Don't stop a + running user manager from garbage-collecting the user. Original + behavior caused bnc#849870 + +------------------------------------------------------------------- +Mon Dec 16 11:08:33 UTC 2013 - lbsousajr@gmail.com + +- Add build-sys-make-multi-seat-x-optional.patch + * See: http://cgit.freedesktop.org/systemd/systemd/commit/?id=bd441fa27a22b7c6e11d9330560e0622fb69f297 + * Now systemd-multi-seat-x build can be disabled with configure option + --disable-multi-seat-x. It should be done when xorg-x11-server + no longer needs it (work in progress). + ------------------------------------------------------------------- Mon Dec 16 09:43:29 UTC 2013 - fcrozat@suse.com @@ -16,6 +151,19 @@ Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de the systemd-journald (bnc#838475) - Let us build require the package config for libpcre (bnc#853293) +------------------------------------------------------------------- +Sat Nov 30 08:16:02 UTC 2013 - arvidjaar@gmail.com + +- Add patch + 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch + Make sure emergency shell is not killed by attempt to start another unit + (bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653. +- Add patch + make-emergency.service-conflict-with-syslog.socket.patch + Previous patch did not fix problem if syslog connection request came + after emergency shell was already started. So forcibly stop syslog.socket + when starting emergency.service. (bnc#852232) + ------------------------------------------------------------------- Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com diff --git a/systemd-mini.spec b/systemd-mini.spec index cdf81be0..33ae73a6 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,6 +23,11 @@ %define udevpkgname udev-mini %define udev_major 1 +%if 0%{?sles_version} == 0 +%global with_bash_completion 1 +%endif +%bcond_with bash_completion + Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd Version: 208 @@ -89,6 +94,9 @@ Conflicts: kiwi # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 +%if %{with bash_completion} +Recommends: bash-completion +%endif Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: kmod >= 14 @@ -117,6 +125,7 @@ Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service +Source12: systemd-powerfail Source1060: boot.udev Source1061: write_dev_root_rule @@ -246,6 +255,22 @@ Patch79: 0001-analyze-set-white-background.patch Patch80: 0001-analyze-set-text-on-side-with-most-space.patch # PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. Patch81: 0001-logind-garbage-collect-stale-users.patch +# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze +Patch82: analyze-fix-crash-in-command-line-parsing.patch +# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) +Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch +# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) +Patch84: make-emergency.service-conflict-with-syslog.socket.patch +# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch +Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch +# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) +Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch +# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) +Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch +# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) +Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -276,6 +301,14 @@ Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch Patch1014: 1014-journald-with-journaling-FS.patch # PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch Patch1015: build-sys-make-multi-seat-x-optional.patch +# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch +Patch1016: 1016-support-powerfail-with-powerstatus.patch +# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch +Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch +# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch +Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch +# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch +Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -539,6 +572,14 @@ cp %{SOURCE7} m4/ %patch79 -p1 %patch80 -p1 %patch81 -p1 +%patch82 -p1 +%patch83 -p1 +%patch84 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 # udev patches %patch1001 -p1 @@ -558,6 +599,10 @@ cp %{SOURCE7} m4/ %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -735,6 +780,23 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ +# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd +install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ +install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ +%if ! 0%{?bootstrap} +install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ +%endif + +# clean out some completions which requires bash-completion package +%if %{without bash_completion} +for c in %{buildroot}/%{_datadir}/bash-completion/completions/* +do + test -e "$c" || continue + grep -q _init_completion "$c" || continue + rm -vf "$c" +done +%endif + %fdupes -s %{buildroot}%{_mandir} # packaged in systemd-rpm-macros diff --git a/systemd-powerfail b/systemd-powerfail new file mode 100644 index 00000000..797fb7d2 --- /dev/null +++ b/systemd-powerfail @@ -0,0 +1,28 @@ +#!/bin/bash +# +# /usr/lib/systemd/systemd-powerfail +# +# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany. +# Author: Werner Fink +# Please send feedback to http://www.suse.de/feedback +# +# Description: +# +# Used to evaluate the status of /var/run/powerstatus +# + +trap "echo" SIGINT SIGSEGV SIGTERM + + POWERFAIL='THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!' +POWERFAILNOW='THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!' + POWERISBACK='THE POWER IS BACK' + +typeset pwrstat=0 +test -s /var/run/powerstatus && read pwrstat < /var/run/powerstatus +rm -f /var/run/powerstatus + +case "$pwrstat" in +O*) exec /sbin/shutdown -c +0 "$POWERISBACK" ;; +L*) exec /sbin/shutdown -P +0 "$POWERFAILNOW" ;; +*) exec /sbin/shutdown -P +2 "$POWERFAIL" ;; +esac diff --git a/systemd-rpm-macros.spec b/systemd-rpm-macros.spec index 4c7b714f..c8e0234c 100644 --- a/systemd-rpm-macros.spec +++ b/systemd-rpm-macros.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-rpm-macros # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/systemd.changes b/systemd.changes index a9766b37..39675682 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,105 @@ +------------------------------------------------------------------- +Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de + +- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to skip already by the kernel managed devices + +------------------------------------------------------------------- +Wed Jan 29 18:03:39 UTC 2014 - arvidjaar@gmail.com + +- fix timeout stopping user@.service (bnc#841544) + * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch + * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch + * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch + +------------------------------------------------------------------- +Tue Jan 28 12:44:07 UTC 2014 - werner@suse.de + +- Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch + to be able to detect if the sysctl reboot() returns. +- Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + A check for unmaintained disk like devices is added to be able to + flush and maybe shut them down. Also the missing sync() system + call is added for the direct halt/reboot systemctl command. Then + the system halt is used as fallback if poweroff fails for both + the direct poweroff systemctl command as well as for the + systemd-shutdown utility. + +------------------------------------------------------------------- +Thu Jan 23 13:24:53 UTC 2014 - werner@suse.de + +- Make systemd-mini build + +------------------------------------------------------------------- +Thu Jan 23 13:18:39 UTC 2014 - werner@suse.de + +- Make requires bash-completion a recommends + +------------------------------------------------------------------- +Tue Jan 21 13:05:59 UTC 2014 - werner@suse.de + +- Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch + to avoid that enabled boot scripts will be handled as unit files + by systemctl status command (bnc#818044) + +------------------------------------------------------------------- +Tue Jan 21 12:51:20 UTC 2014 - werner@suse.de + +- Drop patch 1017-enforce-sufficient-shutdown-warnings.patch + as the original code behaves exactly as the shutdown code of + the old SysVinit (bnc#750845) +- Rename support-powerfail-with-powerstatus.patch to + 1016-support-powerfail-with-powerstatus.patch + +------------------------------------------------------------------- +Mon Jan 20 10:18:20 UTC 2014 - fcrozat@suse.com + +- Add analyze-fix-crash-in-command-line-parsing.patch: fix crash in + systemd-analyze (bnc#859365) + +------------------------------------------------------------------- +Fri Jan 17 16:09:24 UTC 2014 - werner@suse.de + +- Add patch + 1019-make-completion-smart-to-be-able-to-redirect.patch + to make redirections work with the bash command completions for + for systemd command tools (bnc#856858, bnc#859072) + +------------------------------------------------------------------- +Fri Jan 17 12:24:13 UTC 2014 - werner@suse.de + +- Add patch + 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch + to support the "+" to tag wanted dependencies as well as make + sure that required dependencies are handles as required ones. + This should fix bnc#858864 and bnc#857204. + +------------------------------------------------------------------- +Thu Jan 16 16:08:00 UTC 2014 - lnussel@suse.de + +- apply preset also to service files that are new in upgrade + +------------------------------------------------------------------- +Wed Jan 15 14:11:02 UTC 2014 - werner@suse.de + +- Change support-powerfail-with-powerstatus.patch to use BindsTo + instead of BindTo + +------------------------------------------------------------------- +Wed Jan 15 12:34:53 UTC 2014 - werner@suse.de + +- Add patch 1017-enforce-sufficient-shutdown-warnings.patch + Warn once per hour in the last 3 hours, then all 30 minutes in last + hour, all 15 minutes in the last 45 minutes, all 10 minutes in the + last 15 minutes, and then all minute in the last 10 minutes (bnc#750845) + +------------------------------------------------------------------- +Tue Jan 14 18:28:09 UTC 2014 - werner@suse.de + +- Add patch support-powerfail-with-powerstatus.patch and source + file systemd-powerfail to implement SIGPWR support with evaluation + of the file /var/run/powerstatus (bnc#737690) + ------------------------------------------------------------------- Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de @@ -49,6 +151,19 @@ Fri Dec 6 13:30:19 UTC 2013 - werner@suse.de the systemd-journald (bnc#838475) - Let us build require the package config for libpcre (bnc#853293) +------------------------------------------------------------------- +Sat Nov 30 08:16:02 UTC 2013 - arvidjaar@gmail.com + +- Add patch + 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch + Make sure emergency shell is not killed by attempt to start another unit + (bnc#852021). Backported from d420282b28f50720e233ccb1c02547c562195653. +- Add patch + make-emergency.service-conflict-with-syslog.socket.patch + Previous patch did not fix problem if syslog connection request came + after emergency shell was already started. So forcibly stop syslog.socket + when starting emergency.service. (bnc#852232) + ------------------------------------------------------------------- Thu Nov 28 10:25:58 UTC 2013 - lbsousajr@gmail.com diff --git a/systemd.spec b/systemd.spec index c66ec723..07823db2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,6 +21,11 @@ %define udevpkgname udev %define udev_major 1 +%if 0%{?sles_version} == 0 +%global with_bash_completion 1 +%endif +%bcond_with bash_completion + Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 208 @@ -84,6 +89,9 @@ Conflicts: kiwi # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 +%if %{with bash_completion} +Recommends: bash-completion +%endif Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: kmod >= 14 @@ -112,6 +120,7 @@ Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service +Source12: systemd-powerfail Source1060: boot.udev Source1061: write_dev_root_rule @@ -241,6 +250,22 @@ Patch79: 0001-analyze-set-white-background.patch Patch80: 0001-analyze-set-text-on-side-with-most-space.patch # PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. Patch81: 0001-logind-garbage-collect-stale-users.patch +# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze +Patch82: analyze-fix-crash-in-command-line-parsing.patch +# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) +Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch +# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) +Patch84: make-emergency.service-conflict-with-syslog.socket.patch +# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch +Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch +# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) +Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch +# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) +Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch +# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) +Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -271,6 +296,14 @@ Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch Patch1014: 1014-journald-with-journaling-FS.patch # PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch Patch1015: build-sys-make-multi-seat-x-optional.patch +# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch +Patch1016: 1016-support-powerfail-with-powerstatus.patch +# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch +Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch +# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch +Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch +# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch +Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -534,6 +567,14 @@ cp %{SOURCE7} m4/ %patch79 -p1 %patch80 -p1 %patch81 -p1 +%patch82 -p1 +%patch83 -p1 +%patch84 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 # udev patches %patch1001 -p1 @@ -553,6 +594,10 @@ cp %{SOURCE7} m4/ %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -730,6 +775,23 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ +# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd +install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ +install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ +%if ! 0%{?bootstrap} +install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ +%endif + +# clean out some completions which requires bash-completion package +%if %{without bash_completion} +for c in %{buildroot}/%{_datadir}/bash-completion/completions/* +do + test -e "$c" || continue + grep -q _init_completion "$c" || continue + rm -vf "$c" +done +%endif + %fdupes -s %{buildroot}%{_mandir} # packaged in systemd-rpm-macros From 00a36bdb9a7db034e6143b5df8cc188fd3b30b5769b0bced794ee3b24fc0e3ec Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 6 Feb 2014 08:17:12 +0000 Subject: [PATCH 169/221] Accepting request 221003 from Base:System - Change and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to disable the workaround to find /dev/3270/tty1 as this now should be done by a) the kernel patch http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html and the changed udev rule 99-systemd.rules - Remove PreReq pidof from udev, nothing in this pkg uses it - Change and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to re-enable colouring if 3270 console was enforced on the kernel command line as 3270 cna handle colour ANSI escape sequences. Also let the serial getty generator find the /dev/3270/tty1 character device (bnc#861316) - Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to strip the colouring ANSI escape sequences from the console messages (bnc#860937) - Change and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to disable the workaround to find /dev/3270/tty1 as this now should be done by a) the kernel patch http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html and the changed udev rule 99-systemd.rules - Remove PreReq pidof from udev, nothing in this pkg uses it - Change and extend patch OBS-URL: https://build.opensuse.org/request/show/221003 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=174 --- ...s390_con3270_disable_ANSI_colour_esc.patch | 123 ++++++++++++++++++ ...-quit-and-wait-for-emergency-service.patch | 35 +++++ systemd-mini.changes | 32 +++++ systemd-mini.spec | 8 +- systemd.changes | 32 +++++ systemd.spec | 8 +- 6 files changed, 236 insertions(+), 2 deletions(-) create mode 100644 0001-On_s390_con3270_disable_ANSI_colour_esc.patch create mode 100644 plymouth-quit-and-wait-for-emergency-service.patch diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch new file mode 100644 index 00000000..843894e1 --- /dev/null +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -0,0 +1,123 @@ +--- + rules/99-systemd.rules.in | 2 - + src/getty-generator/getty-generator.c | 2 - + src/shared/util.c | 62 ++++++++++++++++++++++++++++++++-- + 3 files changed, 61 insertions(+), 5 deletions(-) + +--- systemd-208/rules/99-systemd.rules.in ++++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 +@@ -7,7 +7,7 @@ + + ACTION=="remove", GOTO="systemd_end" + +-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" ++SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" + + KERNEL=="vport*", TAG+="systemd" + +--- systemd-208/src/shared/util.c ++++ systemd-208/src/shared/util.c 2014-01-31 11:54:07.222235280 +0000 +@@ -2967,6 +2967,7 @@ int status_vprintf(const char *status, b + struct iovec iovec[6] = {}; + int n = 0; + static bool prev_ephemeral; ++ static int cached_on_tty = -1; + + assert(format); + +@@ -2980,6 +2981,51 @@ int status_vprintf(const char *status, b + if (fd < 0) + return fd; + ++ if (_unlikely_(cached_on_tty < 0)) { ++ cached_on_tty = isatty(fd) > 0; ++ if (cached_on_tty) { ++ const char *e = getenv("TERM"); ++ if (e && (strcmp(e, "dumb") == 0 || strcmp(e, "ibm327x") == 0)) { ++ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); ++ if (r < 0 || !mode || !streq(mode, "3270")) ++ cached_on_tty = 0; ++ } ++ } ++ } ++ ++ if (status && !cached_on_tty) { ++ const char *esc, *ptr; ++ esc = strchr(status, 0x1B); ++ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) { ++ switch(*ptr) { ++ case 'S': ++ status = " SKIP "; ++ break; ++ case 'O': ++ status = " OK "; ++ break; ++ case 'F': ++ status = "FAILED"; ++ break; ++ case 'D': ++ status = "DEPEND"; ++ break; ++ case 'T': ++ status = " TIME "; ++ break; ++ case 'I': ++ status = " INFO "; ++ break; ++ case '*': ++ status = " BUSY "; ++ break; ++ default: ++ break; ++ } ++ } ++ } ++ + if (ellipse) { + char *e; + size_t emax, sl; +@@ -3002,8 +3048,12 @@ int status_vprintf(const char *status, b + } + } + +- if (prev_ephemeral) +- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); ++ if (prev_ephemeral) { ++ if (cached_on_tty) ++ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); ++ else ++ IOVEC_SET_STRING(iovec[n++], "\r"); ++ } + prev_ephemeral = ephemeral; + + if (status) { +@@ -3267,8 +3317,14 @@ void columns_lines_cache_reset(int signu + bool on_tty(void) { + static int cached_on_tty = -1; + +- if (_unlikely_(cached_on_tty < 0)) ++ if (_unlikely_(cached_on_tty < 0)) { + cached_on_tty = isatty(STDOUT_FILENO) > 0; ++ if (cached_on_tty) { ++ const char *e = getenv("TERM"); ++ if (e && (strcmp(e, "dumb") == 0)) ++ cached_on_tty = 0; ++ } ++ } + + return cached_on_tty; + } +--- systemd-208/src/getty-generator/getty-generator.c ++++ systemd-208/src/getty-generator/getty-generator.c 2014-02-05 10:41:29.502245927 +0000 +@@ -149,9 +149,9 @@ int main(int argc, char *argv[]) { + * only for non-VC terminals. */ + + k = add_serial_getty(tty); ++ free(tty); + + if (k < 0) { +- free(tty); + free(active); + r = EXIT_FAILURE; + goto finish; diff --git a/plymouth-quit-and-wait-for-emergency-service.patch b/plymouth-quit-and-wait-for-emergency-service.patch new file mode 100644 index 00000000..560f9f3f --- /dev/null +++ b/plymouth-quit-and-wait-for-emergency-service.patch @@ -0,0 +1,35 @@ +--- systemd-208/units/console-shell.service.m4.in ++++ systemd-208/units/console-shell.service.m4.in 2014-02-05 11:28:31.446735287 +0000 +@@ -17,6 +17,8 @@ Before=getty.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root ++ExecStartPre=-/usr/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth --wait + ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ poweroff + Type=idle +--- systemd-208/units/rescue.service.m4.in ++++ systemd-208/units/rescue.service.m4.in 2014-02-05 11:28:45.214235524 +0000 +@@ -16,7 +16,8 @@ Before=shutdown.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStartPre=-/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' + ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ --fail --no-block default +--- systemd-208/units/emergency.service.in ++++ systemd-208/units/emergency.service.in 2014-02-05 11:28:51.782235282 +0000 +@@ -15,7 +15,8 @@ Before=shutdown.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStartPre=-/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' + ExecStart=-/usr/sbin/sulogin + ExecStopPost=@SYSTEMCTL@ --fail --no-block default diff --git a/systemd-mini.changes b/systemd-mini.changes index 39675682..30031a9b 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de + +- Change and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to disable the workaround to find /dev/3270/tty1 as this now + should be done by a) the kernel patch + http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html + and the changed udev rule 99-systemd.rules + +------------------------------------------------------------------- +Sun Feb 2 08:53:17 UTC 2014 - ohering@suse.com + +- Remove PreReq pidof from udev, nothing in this pkg uses it + +------------------------------------------------------------------- +Fri Jan 31 14:24:35 UTC 2014 - werner@suse.de + +- Change and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to re-enable colouring if 3270 console was enforced on the kernel + command line as 3270 cna handle colour ANSI escape sequences. + Also let the serial getty generator find the /dev/3270/tty1 + character device (bnc#861316) + +------------------------------------------------------------------- +Thu Jan 30 12:33:08 UTC 2014 - werner@suse.de + +- Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to strip the colouring ANSI escape sequences from the console + messages (bnc#860937) + ------------------------------------------------------------------- Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 33ae73a6..fbeba0d4 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -271,6 +271,10 @@ Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch # PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch +# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch +Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch +# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty +Patch91: plymouth-quit-and-wait-for-emergency-service.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -352,7 +356,7 @@ Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq +PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 @@ -580,6 +584,8 @@ cp %{SOURCE7} m4/ %patch87 -p1 %patch88 -p1 %patch89 -p1 +%patch90 -p1 +%patch91 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 39675682..30031a9b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de + +- Change and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to disable the workaround to find /dev/3270/tty1 as this now + should be done by a) the kernel patch + http://lkml.indiana.edu/hypermail/linux/kernel/1402.0/02319.html + and the changed udev rule 99-systemd.rules + +------------------------------------------------------------------- +Sun Feb 2 08:53:17 UTC 2014 - ohering@suse.com + +- Remove PreReq pidof from udev, nothing in this pkg uses it + +------------------------------------------------------------------- +Fri Jan 31 14:24:35 UTC 2014 - werner@suse.de + +- Change and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to re-enable colouring if 3270 console was enforced on the kernel + command line as 3270 cna handle colour ANSI escape sequences. + Also let the serial getty generator find the /dev/3270/tty1 + character device (bnc#861316) + +------------------------------------------------------------------- +Thu Jan 30 12:33:08 UTC 2014 - werner@suse.de + +- Add patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to strip the colouring ANSI escape sequences from the console + messages (bnc#860937) + ------------------------------------------------------------------- Thu Jan 30 08:29:00 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 07823db2..4dfc1227 100644 --- a/systemd.spec +++ b/systemd.spec @@ -266,6 +266,10 @@ Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch # PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch +# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch +Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch +# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty +Patch91: plymouth-quit-and-wait-for-emergency-service.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -347,7 +351,7 @@ Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq +PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 @@ -575,6 +579,8 @@ cp %{SOURCE7} m4/ %patch87 -p1 %patch88 -p1 %patch89 -p1 +%patch90 -p1 +%patch91 -p1 # udev patches %patch1001 -p1 From 274bb735428b985f9dba50e3ed1ad0943d3eeec01e7fc51a3b658f85db11d1d5 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 11 Feb 2014 09:47:10 +0000 Subject: [PATCH 170/221] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=175 --- systemd-rpm-macros.spec | 57 ----------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 systemd-rpm-macros.spec diff --git a/systemd-rpm-macros.spec b/systemd-rpm-macros.spec deleted file mode 100644 index c8e0234c..00000000 --- a/systemd-rpm-macros.spec +++ /dev/null @@ -1,57 +0,0 @@ -# -# spec file for package systemd-rpm-macros -# -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -#!BuildIgnore: util-linux - -Name: systemd-rpm-macros -Version: 2 -Release: 0 -Summary: RPM macros for systemd -License: LGPL-2.1+ -Group: System/Base -Url: http://en.opensuse.org/openSUSE:Systemd_packaging_guidelines -Source0: macros.systemd -BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildArch: noarch - -%description -Starting with openSUSE 12.1, several RPM macros must be used to package systemd -services files. This package provides these macros. - -%prep - -%build - -%install -mkdir -p %{buildroot}%{_sysconfdir}/rpm -install -m644 %{S:0} %{buildroot}%{_sysconfdir}/rpm -UNITDIR="`cat %{S:0} | sed -n 's|.*_unitdir[[:blank:]]*||p'`" -for i in $UNITDIR `dirname $UNITDIR`; do - mkdir -p %{buildroot}$i - echo $i >> unitdir -done - -%post - -%postun - -%files -f unitdir -%defattr(-,root,root) -%{_sysconfdir}/rpm/macros.systemd - -%changelog From d24108b9c90854439a3bdb0b8418d0f28315c4c21f5121b1e0773b6f56b02b05 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 15 Feb 2014 16:19:18 +0000 Subject: [PATCH 171/221] Accepting request 222383 from Base:System - Add several upstream bugfix patches which are missed: * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch * 0026-udevadm.xml-document-resolve-names-option-for-test.patch * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch * 0031-man-document-the-b-special-boot-option.patch * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch * 0035-activate-mention-E-in-the-help-text.patch * 0036-activate-fix-crash-when-s-is-passed.patch * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch * 0038-core-socket-fix-SO_REUSEPORT.patch * 0039-journal-when-appending-to-journal-file-allocate-larg.patch * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch * 0043-journal-simplify-pre-allocation-logic.patch * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch * 0049-systemd-treat-reload-failure-as-failure.patch - Add patch 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch to avoid potential NULL pointer - Reorder patches to reflect udev/systemd usage - don't build bash-completions for bootstrap package - add more requires to this-is-only-for-build-envs to avoid problems in kiwi configs OBS-URL: https://build.opensuse.org/request/show/222383 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=176 --- ...-snprintf-a-potentially-NULL-pointer.patch | 25 ++ ...what-to-RequiresMountsFor-for-networ.patch | 181 +++++++++++++ ...cument-resolve-names-option-for-test.patch | 34 +++ ...in-systemd-bootchart-on-short-living.patch | 34 +++ ...n-document-the-b-special-boot-option.patch | 37 +++ ...t-some-of-the-rules-to-the-add-actio.patch | 81 ++++++ ...ccessible-FUSE-mount-points-only-as-.patch | 37 +++ ...ix-booted-and-add-two-functions-to-d.patch | 26 ++ ...-activate-mention-E-in-the-help-text.patch | 25 ++ ...-activate-fix-crash-when-s-is-passed.patch | 26 ++ ...excludes-for-the-new-per-service-pri.patch | 43 +++ 0038-core-socket-fix-SO_REUSEPORT.patch | 38 +++ ...ending-to-journal-file-allocate-larg.patch | 80 ++++++ ...-bisection-logic-a-bit-by-caching-th.patch | 247 ++++++++++++++++++ ...ation-when-we-go-backwards-from-the-.patch | 26 ++ ...urnal_file_copy_entry-to-work-on-non.patch | 28 ++ ...ournal-simplify-pre-allocation-logic.patch | 61 +++++ ...-how-long-we-needed-to-flush-to-var-.patch | 58 ++++ ...return-value-from-ttyname_r-is-0-ins.patch | 31 +++ ...-remove-unneeded-the-s-in-gudev-docs.patch | 41 +++ ...ay-when-multiple-units-can-be-specif.patch | 238 +++++++++++++++++ ...temd-treat-reload-failure-as-failure.patch | 93 +++++++ ...orrect-who-enum-values-with-KillUnit.patch | 31 +++ macros.systemd | 129 --------- systemd-mini.changes | 76 ++++++ systemd-mini.spec | 183 +++++++++---- systemd-rpm-macros.changes | 11 - systemd.changes | 76 ++++++ systemd.spec | 183 +++++++++---- write_dev_root_rule | 2 +- 30 files changed, 1938 insertions(+), 243 deletions(-) create mode 100644 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch create mode 100644 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch create mode 100644 0026-udevadm.xml-document-resolve-names-option-for-test.patch create mode 100644 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch create mode 100644 0031-man-document-the-b-special-boot-option.patch create mode 100644 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch create mode 100644 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch create mode 100644 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch create mode 100644 0035-activate-mention-E-in-the-help-text.patch create mode 100644 0036-activate-fix-crash-when-s-is-passed.patch create mode 100644 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch create mode 100644 0038-core-socket-fix-SO_REUSEPORT.patch create mode 100644 0039-journal-when-appending-to-journal-file-allocate-larg.patch create mode 100644 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch create mode 100644 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch create mode 100644 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch create mode 100644 0043-journal-simplify-pre-allocation-logic.patch create mode 100644 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch create mode 100644 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch create mode 100644 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch create mode 100644 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch create mode 100644 0049-systemd-treat-reload-failure-as-failure.patch create mode 100644 0145-logind-use-correct-who-enum-values-with-KillUnit.patch delete mode 100644 macros.systemd delete mode 100644 systemd-rpm-macros.changes diff --git a/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch b/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch new file mode 100644 index 00000000..7f0f7b9c --- /dev/null +++ b/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch @@ -0,0 +1,25 @@ +From 5effdfa831d75306fc0ff9b47d39997e4ae87f16 Mon Sep 17 00:00:00 2001 +From: Michael Meeks +Date: Tue, 11 Feb 2014 14:42:26 +0000 +Subject: [PATCH] Don't snprintf a potentially NULL pointer. + +--- + src/shared/log.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/log.c b/src/shared/log.c +index 2a075ff..d6b138f 100644 +--- a/src/shared/log.c ++++ b/src/shared/log.c +@@ -479,7 +479,7 @@ static int log_do_header(char *header, size_t size, + func ? "CODE_FUNCTION=" : "", + func ? LINE_MAX : 0, func, + func ? "\n" : "", +- object ? object_name : "", ++ object_name ? object_name : "", + object ? LINE_MAX : 0, object, /* %.0s means no output */ + object ? "\n" : "", + program_invocation_short_name); +-- +1.8.4.5 + diff --git a/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch b/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch new file mode 100644 index 00000000..e6981e63 --- /dev/null +++ b/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch @@ -0,0 +1,181 @@ +From fc676b00a7545743429e0c9b12a0f0707b1059aa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Oct 2013 13:09:43 -0400 +Subject: [PATCH] core: do not add "what" to RequiresMountsFor for network + mounts + +For cifs mount like //server/share, we would get +RequiresMountsFor=/server/share, which probably isn't +harmful, but quite confusing. + +Unfortunately a bunch of static functions had to be moved +up, but patch is really one line. +--- + src/core/mount.c | 137 ++++++++++++++++++++++++++++-------------------------- + 1 file changed, 70 insertions(+), 67 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index db055f0..70cd372 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -59,6 +59,72 @@ static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = { + [MOUNT_FAILED] = UNIT_FAILED + }; + ++static char* mount_test_option(const char *haystack, const char *needle) { ++ struct mntent me = { .mnt_opts = (char*) haystack }; ++ ++ assert(needle); ++ ++ /* Like glibc's hasmntopt(), but works on a string, not a ++ * struct mntent */ ++ ++ if (!haystack) ++ return NULL; ++ ++ return hasmntopt(&me, needle); ++} ++ ++static bool mount_is_network(MountParameters *p) { ++ assert(p); ++ ++ if (mount_test_option(p->options, "_netdev")) ++ return true; ++ ++ if (p->fstype && fstype_is_network(p->fstype)) ++ return true; ++ ++ return false; ++} ++ ++static bool mount_is_bind(MountParameters *p) { ++ assert(p); ++ ++ if (mount_test_option(p->options, "bind")) ++ return true; ++ ++ if (p->fstype && streq(p->fstype, "bind")) ++ return true; ++ ++ if (mount_test_option(p->options, "rbind")) ++ return true; ++ ++ if (p->fstype && streq(p->fstype, "rbind")) ++ return true; ++ ++ return false; ++} ++ ++static bool mount_is_auto(MountParameters *p) { ++ assert(p); ++ ++ return !mount_test_option(p->options, "noauto"); ++} ++ ++static bool needs_quota(MountParameters *p) { ++ assert(p); ++ ++ if (mount_is_network(p)) ++ return false; ++ ++ if (mount_is_bind(p)) ++ return false; ++ ++ return mount_test_option(p->options, "usrquota") || ++ mount_test_option(p->options, "grpquota") || ++ mount_test_option(p->options, "quota") || ++ mount_test_option(p->options, "usrjquota") || ++ mount_test_option(p->options, "grpjquota"); ++} ++ + static void mount_init(Unit *u) { + Mount *m = MOUNT(u); + +@@ -182,7 +248,10 @@ static int mount_add_mount_links(Mount *m) { + * for the source path (if this is a bind mount) to be + * available. */ + pm = get_mount_parameters_fragment(m); +- if (pm && pm->what && path_is_absolute(pm->what)) { ++ if (pm && pm->what && ++ path_is_absolute(pm->what) && ++ !mount_is_network(pm)) { ++ + r = unit_require_mounts_for(UNIT(m), pm->what); + if (r < 0) + return r; +@@ -214,72 +283,6 @@ static int mount_add_mount_links(Mount *m) { + return 0; + } + +-static char* mount_test_option(const char *haystack, const char *needle) { +- struct mntent me = { .mnt_opts = (char*) haystack }; +- +- assert(needle); +- +- /* Like glibc's hasmntopt(), but works on a string, not a +- * struct mntent */ +- +- if (!haystack) +- return NULL; +- +- return hasmntopt(&me, needle); +-} +- +-static bool mount_is_network(MountParameters *p) { +- assert(p); +- +- if (mount_test_option(p->options, "_netdev")) +- return true; +- +- if (p->fstype && fstype_is_network(p->fstype)) +- return true; +- +- return false; +-} +- +-static bool mount_is_bind(MountParameters *p) { +- assert(p); +- +- if (mount_test_option(p->options, "bind")) +- return true; +- +- if (p->fstype && streq(p->fstype, "bind")) +- return true; +- +- if (mount_test_option(p->options, "rbind")) +- return true; +- +- if (p->fstype && streq(p->fstype, "rbind")) +- return true; +- +- return false; +-} +- +-static bool mount_is_auto(MountParameters *p) { +- assert(p); +- +- return !mount_test_option(p->options, "noauto"); +-} +- +-static bool needs_quota(MountParameters *p) { +- assert(p); +- +- if (mount_is_network(p)) +- return false; +- +- if (mount_is_bind(p)) +- return false; +- +- return mount_test_option(p->options, "usrquota") || +- mount_test_option(p->options, "grpquota") || +- mount_test_option(p->options, "quota") || +- mount_test_option(p->options, "usrjquota") || +- mount_test_option(p->options, "grpjquota"); +-} +- + static int mount_add_device_links(Mount *m) { + MountParameters *p; + bool device_wants_mount = false; +-- +1.7.9.2 + diff --git a/0026-udevadm.xml-document-resolve-names-option-for-test.patch b/0026-udevadm.xml-document-resolve-names-option-for-test.patch new file mode 100644 index 00000000..04d30323 --- /dev/null +++ b/0026-udevadm.xml-document-resolve-names-option-for-test.patch @@ -0,0 +1,34 @@ +From 14a9283eb38a93ec384c322ccbe06352c86a25f8 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sun, 13 Oct 2013 17:42:51 -0400 +Subject: [PATCH] udevadm.xml: document --resolve-names option for test + +And remove documentation of the --subsystem flag which doesn't actually +exist. +--- + man/udevadm.xml | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git man/udevadm.xml man/udevadm.xml +index d0b257d..b959216 100644 +--- man/udevadm.xml ++++ man/udevadm.xml +@@ -462,9 +462,13 @@ + + + +- ++ + +- The subsystem string. ++ Specify when udevadm should resolve names of users and groups. ++ When set to early (the default) names will be resolved when the ++ rules are parsed. When set to late names will be resolved for ++ every event. When set to never names will never be resolved and ++ all devices will be owned by root. + + + +-- +1.7.9.2 + diff --git a/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch b/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch new file mode 100644 index 00000000..bd8c2b31 --- /dev/null +++ b/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch @@ -0,0 +1,34 @@ +From 306e6650221d88b29831bcdcef94447afb65df5c Mon Sep 17 00:00:00 2001 +From: Igor Zhbanov +Date: Tue, 15 Oct 2013 14:35:13 +0400 +Subject: [PATCH] Fix for SIGSEGV in systemd-bootchart on short-living + processes + +The function svg_ps_bars() dereferencess NULL pointer in the line + endtime = ps->last->sampledata->sampletime; +because of partially initialized ps_struct (ps->last == NULL). + +If some process terminates between scaning /proc directory in the log_sample() +function and reading additional information from /proc/PID/... files, +the files couldn't be read, the loop will be continued and partially +initialized structure returned. +--- + src/bootchart/store.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/bootchart/store.c src/bootchart/store.c +index f8c97c2..7f86cfe 100644 +--- src/bootchart/store.c ++++ src/bootchart/store.c +@@ -275,7 +275,7 @@ schedstat_next: + pscount++; + + /* mark our first sample */ +- ps->first = ps->sample; ++ ps->first = ps->last = ps->sample; + ps->sample->runtime = atoll(rt); + ps->sample->waittime = atoll(wt); + +-- +1.7.9.2 + diff --git a/0031-man-document-the-b-special-boot-option.patch b/0031-man-document-the-b-special-boot-option.patch new file mode 100644 index 00000000..9d45f618 --- /dev/null +++ b/0031-man-document-the-b-special-boot-option.patch @@ -0,0 +1,37 @@ +From 775657712d0f6d14b70a0fe947a95a9ecc212440 Mon Sep 17 00:00:00 2001 +From: Jan Engelhardt +Date: Tue, 15 Oct 2013 08:58:50 +0200 +Subject: [PATCH] man: document the -b special boot option + +--- + man/kernel-command-line.xml | 1 + + man/systemd.xml | 1 + + 2 files changed, 2 insertions(+) + +diff --git man/kernel-command-line.xml man/kernel-command-line.xml +index cc267a3..abe68e5 100644 +--- man/kernel-command-line.xml ++++ man/kernel-command-line.xml +@@ -123,6 +123,7 @@ + + + ++ -b + emergency + single + s +diff --git man/systemd.xml man/systemd.xml +index fe6e331..85c06d3 100644 +--- man/systemd.xml ++++ man/systemd.xml +@@ -1149,6 +1149,7 @@ + + + ++ -b + emergency + + Boot into emergency +-- +1.7.9.2 + diff --git a/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch b/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch new file mode 100644 index 00000000..ff651c17 --- /dev/null +++ b/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch @@ -0,0 +1,81 @@ +Patch based on + + From e0d856dd48d640f3d95efe7b769edec02373cc74 Mon Sep 17 00:00:00 2001 + From: Lennart Poettering + Date: Wed, 16 Oct 2013 02:51:24 +0200 + Subject: [PATCH] rules: don't limit some of the rules to the "add" action + + Devices should show up in systemd regardless whether the user invoked + "udevadm trigger" or not. Before this change some devices might have + suddenly disappeared due issuing that command. + +and also on + + From 1a0464230c08506c3fd715ff7cc56660df3a85ca Mon Sep 17 00:00:00 2001 + From: Bastien Nocera + Date: Fri, 11 Oct 2013 07:45:32 +0000 + Subject: Add support for saving/restoring keyboard backlights + + Piggy-backing on the display backlight code, this saves and restores + keyboard backlights on supported devices. + + The detection code matches that of UPower: + http://cgit.freedesktop.org/upower/tree/src/up-kbd-backlight.c#n173 + + https://bugs.freedesktop.org/show_bug.cgi?id=70367 + + [tomegun: also work for devices named "{smc,samsung,asus}::kbd_backlight"] + +--- + rules/99-systemd.rules.in | 10 ++++++---- + src/backlight/backlight.c | 7 +++++-- + 2 files changed, 11 insertions(+), 6 deletions(-) + +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in 2014-02-14 14:46:48.358235397 +0000 +@@ -51,14 +51,16 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_dev + + ACTION=="add", SUBSYSTEM=="net", KERNEL!="lo", RUN+="@rootlibexecdir@/systemd-sysctl --prefix=/proc/sys/net/ipv4/conf/$name --prefix=/proc/sys/net/ipv4/neigh/$name --prefix=/proc/sys/net/ipv6/conf/$name --prefix=/proc/sys/net/ipv6/neigh/$name" + +-# Pull in backlight save/restore for all firmware backlight devices ++# Pull in backlight save/restore for all backlight devices and ++# keyboard backlights + +-ACTION=="add", SUBSYSTEM=="backlight", ATTR{type}=="firmware", TAG+="systemd", ENV{SYSTEMD_WANTS}+="systemd-backlight@$name.service" ++SUBSYSTEM=="backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@backlight:$name.service" ++SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@leds:$name.service" + + # Asynchronously mount file systems implemented by these modules as + # soon as they are loaded. + +-SUBSYSTEM=="module", KERNEL=="fuse", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" +-SUBSYSTEM=="module", KERNEL=="configfs", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" ++SUBSYSTEM=="module", KERNEL=="fuse", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" ++SUBSYSTEM=="module", KERNEL=="configfs", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" + + LABEL="systemd_end" +--- src/backlight/backlight.c ++++ src/backlight/backlight.c 2014-02-14 15:20:47.534298128 +0000 +@@ -56,9 +56,11 @@ int main(int argc, char *argv[]) { + + errno = 0; + device = udev_device_new_from_subsystem_sysname(udev, "backlight", argv[2]); ++ if (!device) ++ device = udev_device_new_from_subsystem_sysname(udev, "leds", argv[2]); + if (!device) { + if (errno != 0) { +- log_error("Failed to get backlight device: %m"); ++ log_error("Failed to get backlight device '%s': %m", argv[2]); + r = -errno; + } else + r = log_oom(); +@@ -66,7 +68,8 @@ int main(int argc, char *argv[]) { + goto finish; + } + +- if (!streq_ptr(udev_device_get_subsystem(device), "backlight")) { ++ if (!streq_ptr(udev_device_get_subsystem(device), "backlight") && ++ !streq_ptr(udev_device_get_subsystem(device), "leds")) { + log_error("Not a backlight device: %s", argv[2]); + r = -ENODEV; + goto finish; diff --git a/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch b/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch new file mode 100644 index 00000000..c14d8d70 --- /dev/null +++ b/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch @@ -0,0 +1,37 @@ +From ca2f4176fee7dd5f5664429988e7059163fddb2d Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 17 Oct 2013 03:20:46 +0200 +Subject: [PATCH] tmpfiles: log unaccessible FUSE mount points only as debug + message + +--- + src/tmpfiles/tmpfiles.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index 3cc831a..e23847b 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -275,12 +275,15 @@ static int dir_cleanup( + continue; + + if (fstatat(dirfd(d), dent->d_name, &s, AT_SYMLINK_NOFOLLOW) < 0) { ++ if (errno == ENOENT) ++ continue; + +- if (errno != ENOENT) { ++ /* FUSE, NFS mounts, SELinux might return EACCES */ ++ if (errno == EACCES) ++ log_debug("stat(%s/%s) failed: %m", p, dent->d_name); ++ else + log_error("stat(%s/%s) failed: %m", p, dent->d_name); +- r = -errno; +- } +- ++ r = -errno; + continue; + } + +-- +1.7.9.2 + diff --git a/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch b/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch new file mode 100644 index 00000000..07bfe49a --- /dev/null +++ b/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch @@ -0,0 +1,26 @@ +From a23873387a6e722b711092c89a08ab3f3d19361c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 11 Nov 2013 19:53:59 -0500 +Subject: [PATCH] systemd-python: fix booted() and add two functions to docs + +For some reason sphinx doesn't want to show inherited C functions. +--- + src/python-systemd/_daemon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/python-systemd/_daemon.c src/python-systemd/_daemon.c +index 6b84fb8..f0ab16f 100644 +--- src/python-systemd/_daemon.c ++++ src/python-systemd/_daemon.c +@@ -51,7 +51,7 @@ static PyObject* booted(PyObject *self, PyObject *args) { + assert(args == NULL); + + r = sd_booted(); +- if (set_error(r, NULL, NULL)) ++ if (set_error(r, NULL, NULL) < 0) + return NULL; + + return PyBool_FromLong(r); +-- +1.7.9.2 + diff --git a/0035-activate-mention-E-in-the-help-text.patch b/0035-activate-mention-E-in-the-help-text.patch new file mode 100644 index 00000000..92ae2ded --- /dev/null +++ b/0035-activate-mention-E-in-the-help-text.patch @@ -0,0 +1,25 @@ +From df49ccafc0d57c731a3da3014ad55d5bb9ed3e1b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Wed, 13 Nov 2013 13:36:17 +0200 +Subject: [PATCH] activate: mention -E in the help text + +--- + src/activate/activate.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/activate/activate.c src/activate/activate.c +index 07e46b9..537626d 100644 +--- src/activate/activate.c ++++ src/activate/activate.c +@@ -289,6 +289,8 @@ static int help(void) { + " -l --listen=ADDR Listen for raw connections at ADDR\n" + " -a --accept Spawn separate child for each connection\n" + " -h --help Show this help and exit\n" ++ " -E --environment=NAME[=VALUE]\n" ++ " Pass an environment variable to children\n" + " --version Print version string and exit\n" + "\n" + "Note: file descriptors from sd_listen_fds() will be passed through.\n" +-- +1.7.9.2 + diff --git a/0036-activate-fix-crash-when-s-is-passed.patch b/0036-activate-fix-crash-when-s-is-passed.patch new file mode 100644 index 00000000..e1a0b2b1 --- /dev/null +++ b/0036-activate-fix-crash-when-s-is-passed.patch @@ -0,0 +1,26 @@ +From ed6556920c1a6cdfe0bb04e806bc1f54ea191545 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Wed, 13 Nov 2013 13:36:16 +0200 +Subject: [PATCH] activate: fix crash when -s is passed + +getopt_long() was told to accept -s which was never implemented. +--- + src/activate/activate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/activate/activate.c src/activate/activate.c +index 537626d..2639d1c 100644 +--- src/activate/activate.c ++++ src/activate/activate.c +@@ -344,7 +344,7 @@ static int parse_argv(int argc, char *argv[]) { + assert(argc >= 0); + assert(argv); + +- while ((c = getopt_long(argc, argv, "+hl:saE:", options, NULL)) >= 0) ++ while ((c = getopt_long(argc, argv, "+hl:aE:", options, NULL)) >= 0) + switch(c) { + case 'h': + help(); +-- +1.7.9.2 + diff --git a/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch b/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch new file mode 100644 index 00000000..2ced4b3d --- /dev/null +++ b/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch @@ -0,0 +1,43 @@ +From 87267de89ddce9b1b812b720e1fc9a6cb554236e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 16 Nov 2013 17:29:28 -0500 +Subject: [PATCH] tmpfiles: adjust excludes for the new per-service private + dirs + +In d8c9d3a (systemd: use unit name in PrivateTmp directories) +I forgot to update the tmpfiles config. +--- + tmpfiles.d/tmp.conf | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git tmpfiles.d/tmp.conf tmpfiles.d/tmp.conf +index 3b534a1..f0312ef 100644 +--- tmpfiles.d/tmp.conf ++++ tmpfiles.d/tmp.conf +@@ -12,6 +12,23 @@ d /tmp 1777 root root 10d + d /var/tmp 1777 root root - + + # Exclude namespace mountpoints created with PrivateTmp=yes ++x /tmp/systemd-*.service-* ++x /var/tmp/systemd-*.service-* ++X /tmp/systemd-*.service-*/tmp ++X /var/tmp/systemd-*.service-*/tmp ++x /tmp/systemd-*.socket-* ++x /var/tmp/systemd-*.socket-* ++X /tmp/systemd-*.socket-*/tmp ++X /var/tmp/systemd-*.socket-*/tmp ++x /tmp/systemd-*.mount-* ++x /var/tmp/systemd-*.mount-* ++X /tmp/systemd-*.mount-*/tmp ++X /var/tmp/systemd-*.mount-*/tmp ++x /tmp/systemd-*.swap-* ++x /var/tmp/systemd-*.swap-* ++X /tmp/systemd-*.swap-*/tmp ++X /var/tmp/systemd-*.swap-*/tmp ++# keep those for compatibility during upgrades + x /tmp/systemd-private-* + x /var/tmp/systemd-private-* + X /tmp/systemd-private-*/tmp +-- +1.7.9.2 + diff --git a/0038-core-socket-fix-SO_REUSEPORT.patch b/0038-core-socket-fix-SO_REUSEPORT.patch new file mode 100644 index 00000000..c613c97a --- /dev/null +++ b/0038-core-socket-fix-SO_REUSEPORT.patch @@ -0,0 +1,38 @@ +From f0511bd7e3d591383485a36ddcb764abe74b1939 Mon Sep 17 00:00:00 2001 +From: Shawn Landden +Date: Sat, 16 Nov 2013 13:18:13 -0800 +Subject: [PATCH] core/socket: fix SO_REUSEPORT + +--- + src/core/load-fragment-gperf.gperf.m4 | 1 + + src/core/socket.c | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git src/core/load-fragment-gperf.gperf.m4 src/core/load-fragment-gperf.gperf.m4 +index e3025d2..b64fdc9 100644 +--- src/core/load-fragment-gperf.gperf.m4 ++++ src/core/load-fragment-gperf.gperf.m4 +@@ -210,6 +210,7 @@ Socket.Broadcast, config_parse_bool, 0, + Socket.PassCredentials, config_parse_bool, 0, offsetof(Socket, pass_cred) + Socket.PassSecurity, config_parse_bool, 0, offsetof(Socket, pass_sec) + Socket.TCPCongestion, config_parse_string, 0, offsetof(Socket, tcp_congestion) ++Socket.ReusePort, config_parse_bool, 0, offsetof(Socket, reuseport) + Socket.MessageQueueMaxMessages, config_parse_long, 0, offsetof(Socket, mq_maxmsg) + Socket.MessageQueueMessageSize, config_parse_long, 0, offsetof(Socket, mq_msgsize) + Socket.Service, config_parse_socket_service, 0, 0 +diff --git src/core/socket.c src/core/socket.c +index f505e4f..751f20b 100644 +--- src/core/socket.c ++++ src/core/socket.c +@@ -771,7 +771,7 @@ static void socket_apply_socket_options(Socket *s, int fd) { + + if (s->reuseport) { + int b = s->reuseport; +- if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &b, sizeof(b))) ++ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &b, sizeof(b)) < 0) + log_warning_unit(UNIT(s)->id, "SO_REUSEPORT failed: %m"); + } + +-- +1.7.9.2 + diff --git a/0039-journal-when-appending-to-journal-file-allocate-larg.patch b/0039-journal-when-appending-to-journal-file-allocate-larg.patch new file mode 100644 index 00000000..9e93024e --- /dev/null +++ b/0039-journal-when-appending-to-journal-file-allocate-larg.patch @@ -0,0 +1,80 @@ +From a676e66535e12458ea6d366a653f8dd60f982504 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 26 Nov 2013 18:39:42 +0100 +Subject: [PATCH] journal: when appending to journal file, allocate larger + blocks at once + +--- + src/journal/journal-file.c | 26 +++++++++++++++++--------- + 1 file changed, 17 insertions(+), 9 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index bc72fca..d606ada 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -68,6 +68,9 @@ + /* How many entries to keep in the entry array chain cache at max */ + #define CHAIN_CACHE_MAX 20 + ++/* How much to increase the journal file size at once each time we allocate something new. */ ++#define FILE_SIZE_INCREASE (8ULL*1024ULL*1024ULL) /* 8MB */ ++ + int journal_file_set_online(JournalFile *f) { + assert(f); + +@@ -218,8 +221,7 @@ static int journal_file_refresh_header(JournalFile *f) { + journal_file_set_online(f); + + /* Sync the online state to disk */ +- msync(f->header, PAGE_ALIGN(sizeof(Header)), MS_SYNC); +- fdatasync(f->fd); ++ fsync(f->fd); + + return 0; + } +@@ -313,7 +315,7 @@ static int journal_file_verify_header(JournalFile *f) { + } + + static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) { +- uint64_t old_size, new_size; ++ uint64_t old_size, new_size, file_size; + int r; + + assert(f); +@@ -333,12 +335,10 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) + if (new_size <= old_size) + return 0; + +- if (f->metrics.max_size > 0 && +- new_size > f->metrics.max_size) ++ if (f->metrics.max_size > 0 && new_size > f->metrics.max_size) + return -E2BIG; + +- if (new_size > f->metrics.min_size && +- f->metrics.keep_free > 0) { ++ if (new_size > f->metrics.min_size && f->metrics.keep_free > 0) { + struct statvfs svfs; + + if (fstatvfs(f->fd, &svfs) >= 0) { +@@ -363,8 +363,16 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) + if (r != 0) + return -r; + +- if (fstat(f->fd, &f->last_stat) < 0) +- return -errno; ++ /* Increase the file size a bit further than this, so that we ++ * we can create larger memory maps to cache */ ++ file_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; ++ if (file_size > (uint64_t) f->last_stat.st_size) { ++ if (file_size > new_size) ++ ftruncate(f->fd, file_size); ++ ++ if (fstat(f->fd, &f->last_stat) < 0) ++ return -errno; ++ } + + f->header->arena_size = htole64(new_size - le64toh(f->header->header_size)); + +-- +1.7.9.2 + diff --git a/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch b/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch new file mode 100644 index 00000000..74368958 --- /dev/null +++ b/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch @@ -0,0 +1,247 @@ +From f268980d2cee694fa4118a71402a47c316af0425 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 26 Nov 2013 20:37:53 +0100 +Subject: [PATCH] journal: optimize bisection logic a bit by caching the last + position + +This way we can do a quick restart limiting a bit how wildly we need to +jump around during the bisection process. +--- + src/journal/journal-file.c | 134 ++++++++++++++++++++++++++++++++------------ + 1 file changed, 99 insertions(+), 35 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 481c242..27cd16f 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -1366,6 +1366,7 @@ typedef struct ChainCacheItem { + uint64_t array; /* the cached array */ + uint64_t begin; /* the first item in the cached array */ + uint64_t total; /* the total number of items in all arrays before this one in the chain */ ++ uint64_t last_index; /* the last index we looked at, to optimize locality when bisecting */ + } ChainCacheItem; + + static void chain_cache_put( +@@ -1374,7 +1375,8 @@ static void chain_cache_put( + uint64_t first, + uint64_t array, + uint64_t begin, +- uint64_t total) { ++ uint64_t total, ++ uint64_t last_index) { + + if (!ci) { + /* If the chain item to cache for this chain is the +@@ -1402,12 +1404,14 @@ static void chain_cache_put( + ci->array = array; + ci->begin = begin; + ci->total = total; ++ ci->last_index = last_index; + } + +-static int generic_array_get(JournalFile *f, +- uint64_t first, +- uint64_t i, +- Object **ret, uint64_t *offset) { ++static int generic_array_get( ++ JournalFile *f, ++ uint64_t first, ++ uint64_t i, ++ Object **ret, uint64_t *offset) { + + Object *o; + uint64_t p = 0, a, t = 0; +@@ -1448,7 +1452,7 @@ static int generic_array_get(JournalFile *f, + + found: + /* Let's cache this item for the next invocation */ +- chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t); ++ chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t, i); + + r = journal_file_move_to_object(f, OBJECT_ENTRY, p, &o); + if (r < 0) +@@ -1463,11 +1467,12 @@ found: + return 1; + } + +-static int generic_array_get_plus_one(JournalFile *f, +- uint64_t extra, +- uint64_t first, +- uint64_t i, +- Object **ret, uint64_t *offset) { ++static int generic_array_get_plus_one( ++ JournalFile *f, ++ uint64_t extra, ++ uint64_t first, ++ uint64_t i, ++ Object **ret, uint64_t *offset) { + + Object *o; + +@@ -1498,17 +1503,18 @@ enum { + TEST_RIGHT + }; + +-static int generic_array_bisect(JournalFile *f, +- uint64_t first, +- uint64_t n, +- uint64_t needle, +- int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), +- direction_t direction, +- Object **ret, +- uint64_t *offset, +- uint64_t *idx) { +- +- uint64_t a, p, t = 0, i = 0, last_p = 0; ++static int generic_array_bisect( ++ JournalFile *f, ++ uint64_t first, ++ uint64_t n, ++ uint64_t needle, ++ int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), ++ direction_t direction, ++ Object **ret, ++ uint64_t *offset, ++ uint64_t *idx) { ++ ++ uint64_t a, p, t = 0, i = 0, last_p = 0, last_index = (uint64_t) -1; + bool subtract_one = false; + Object *o, *array = NULL; + int r; +@@ -1533,7 +1539,7 @@ static int generic_array_bisect(JournalFile *f, + return r; + + if (r == TEST_LEFT) { +- /* OK, what we are looking for is right of th ++ /* OK, what we are looking for is right of the + * begin of this EntryArray, so let's jump + * straight to previously cached array in the + * chain */ +@@ -1541,6 +1547,7 @@ static int generic_array_bisect(JournalFile *f, + a = ci->array; + n -= ci->total; + t = ci->total; ++ last_index = ci->last_index; + } + } + +@@ -1571,6 +1578,60 @@ static int generic_array_bisect(JournalFile *f, + if (r == TEST_RIGHT) { + left = 0; + right -= 1; ++ ++ if (last_index != (uint64_t) -1) { ++ assert(last_index <= right); ++ ++ /* If we cached the last index we ++ * looked at, let's try to not to jump ++ * too wildly around and see if we can ++ * limit the range to look at early to ++ * the immediate neighbors of the last ++ * index we looked at. */ ++ ++ if (last_index > 0) { ++ uint64_t x = last_index - 1; ++ ++ p = le64toh(array->entry_array.items[x]); ++ if (p <= 0) ++ return -EBADMSG; ++ ++ r = test_object(f, p, needle); ++ if (r < 0) ++ return r; ++ ++ if (r == TEST_FOUND) ++ r = direction == DIRECTION_DOWN ? TEST_RIGHT : TEST_LEFT; ++ ++ if (r == TEST_RIGHT) ++ right = x; ++ else ++ left = x + 1; ++ } ++ ++ if (last_index < right) { ++ uint64_t y = last_index + 1; ++ ++ p = le64toh(array->entry_array.items[y]); ++ if (p <= 0) ++ return -EBADMSG; ++ ++ r = test_object(f, p, needle); ++ if (r < 0) ++ return r; ++ ++ if (r == TEST_FOUND) ++ r = direction == DIRECTION_DOWN ? TEST_RIGHT : TEST_LEFT; ++ ++ if (r == TEST_RIGHT) ++ right = y; ++ else ++ left = y + 1; ++ } ++ ++ last_index = (uint64_t) -1; ++ } ++ + for (;;) { + if (left == right) { + if (direction == DIRECTION_UP) +@@ -1581,8 +1642,8 @@ static int generic_array_bisect(JournalFile *f, + } + + assert(left < right); +- + i = (left + right) / 2; ++ + p = le64toh(array->entry_array.items[i]); + if (p <= 0) + return -EBADMSG; +@@ -1615,6 +1676,7 @@ static int generic_array_bisect(JournalFile *f, + + n -= k; + t += k; ++ last_index = (uint64_t) -1; + a = le64toh(array->entry_array.next_entry_array_offset); + } + +@@ -1625,7 +1687,7 @@ found: + return 0; + + /* Let's cache this item for the next invocation */ +- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t); ++ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, i + (subtract_one ? -1 : 0)); + + if (subtract_one && i == 0) + p = last_p; +@@ -1650,16 +1712,18 @@ found: + return 1; + } + +-static int generic_array_bisect_plus_one(JournalFile *f, +- uint64_t extra, +- uint64_t first, +- uint64_t n, +- uint64_t needle, +- int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), +- direction_t direction, +- Object **ret, +- uint64_t *offset, +- uint64_t *idx) { ++ ++static int generic_array_bisect_plus_one( ++ JournalFile *f, ++ uint64_t extra, ++ uint64_t first, ++ uint64_t n, ++ uint64_t needle, ++ int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), ++ direction_t direction, ++ Object **ret, ++ uint64_t *offset, ++ uint64_t *idx) { + + int r; + bool step_back = false; +-- +1.7.9.2 + diff --git a/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch b/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch new file mode 100644 index 00000000..24c02269 --- /dev/null +++ b/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch @@ -0,0 +1,26 @@ +From e5462cd80e5328a769137c261c93931ea0c27bab Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 27 Nov 2013 00:58:39 +0100 +Subject: [PATCH] journal: fix iteration when we go backwards from the + beginning of an array chain element + +--- + src/journal/journal-file.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 27cd16f..409be76 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -1687,7 +1687,7 @@ found: + return 0; + + /* Let's cache this item for the next invocation */ +- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, i + (subtract_one ? -1 : 0)); ++ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, subtract_one ? (i > 0 ? i-1 : (uint64_t) -1) : i); + + if (subtract_one && i == 0) + p = last_p; +-- +1.7.9.2 + diff --git a/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch b/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch new file mode 100644 index 00000000..78946e79 --- /dev/null +++ b/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch @@ -0,0 +1,28 @@ +From 248c78c79c5cca9b981800d816a77591e504066a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 27 Nov 2013 00:59:07 +0100 +Subject: [PATCH] journal: allow journal_file_copy_entry() to work on + non-local files + +--- + src/journal/journal-file.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 409be76..14eae8f 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -2732,10 +2732,6 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 + ts.monotonic = le64toh(o->entry.monotonic); + ts.realtime = le64toh(o->entry.realtime); + +- if (to->tail_entry_monotonic_valid && +- ts.monotonic < le64toh(to->header->tail_entry_monotonic)) +- return -EINVAL; +- + n = journal_file_entry_n_items(o); + items = alloca(sizeof(EntryItem) * n); + +-- +1.7.9.2 + diff --git a/0043-journal-simplify-pre-allocation-logic.patch b/0043-journal-simplify-pre-allocation-logic.patch new file mode 100644 index 00000000..16511ec0 --- /dev/null +++ b/0043-journal-simplify-pre-allocation-logic.patch @@ -0,0 +1,61 @@ +From eda4b58b50509dc8ad0428a46e20f6c5cf516d58 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 27 Nov 2013 01:44:52 +0100 +Subject: [PATCH] journal: simplify pre-allocation logic + +let's just do a single fallocate() as far as possible, and don't +distuingish between allocated space and file size. + +This way we can save a syscall for each append, which makes quite some +benefits. +--- + src/journal/journal-file.c | 19 ++++++++----------- + 1 file changed, 8 insertions(+), 11 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 14eae8f..4009b29 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -315,7 +315,7 @@ static int journal_file_verify_header(JournalFile *f) { + } + + static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) { +- uint64_t old_size, new_size, file_size; ++ uint64_t old_size, new_size; + int r; + + assert(f); +@@ -356,6 +356,11 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) + } + } + ++ /* Increase by larger blocks at once */ ++ new_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; ++ if (f->metrics.max_size > 0 && new_size > f->metrics.max_size) ++ new_size = f->metrics.max_size; ++ + /* Note that the glibc fallocate() fallback is very + inefficient, hence we try to minimize the allocation area + as we can. */ +@@ -363,16 +368,8 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) + if (r != 0) + return -r; + +- /* Increase the file size a bit further than this, so that we +- * we can create larger memory maps to cache */ +- file_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; +- if (file_size > (uint64_t) f->last_stat.st_size) { +- if (file_size > new_size) +- ftruncate(f->fd, file_size); +- +- if (fstat(f->fd, &f->last_stat) < 0) +- return -errno; +- } ++ if (fstat(f->fd, &f->last_stat) < 0) ++ return -errno; + + f->header->arena_size = htole64(new_size - le64toh(f->header->header_size)); + +-- +1.7.9.2 + diff --git a/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch b/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch new file mode 100644 index 00000000..90e71fb6 --- /dev/null +++ b/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch @@ -0,0 +1,58 @@ +From fbb634117d0b0ebd5b105e65b141e75ae9af7f8f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 27 Nov 2013 01:54:25 +0100 +Subject: [PATCH] journald: mention how long we needed to flush to /var in the + logs + +--- + src/journal/journald-server.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git src/journal/journald-server.c src/journal/journald-server.c +index ce419d4..01e75b6 100644 +--- src/journal/journald-server.c ++++ src/journal/journald-server.c +@@ -970,9 +970,12 @@ static int system_journal_open(Server *s) { + } + + int server_flush_to_var(Server *s) { +- int r; + sd_id128_t machine; + sd_journal *j = NULL; ++ char ts[FORMAT_TIMESPAN_MAX]; ++ usec_t start; ++ unsigned n = 0; ++ int r; + + assert(s); + +@@ -990,6 +993,8 @@ int server_flush_to_var(Server *s) { + + log_debug("Flushing to /var..."); + ++ start = now(CLOCK_MONOTONIC); ++ + r = sd_id128_get_machine(&machine); + if (r < 0) + return r; +@@ -1009,6 +1014,8 @@ int server_flush_to_var(Server *s) { + f = j->current_file; + assert(f && f->current_offset > 0); + ++ n++; ++ + r = journal_file_move_to_object(f, OBJECT_ENTRY, f->current_offset, &o); + if (r < 0) { + log_error("Can't read entry: %s", strerror(-r)); +@@ -1052,6 +1059,8 @@ finish: + + sd_journal_close(j); + ++ server_driver_message(s, SD_ID128_NULL, "Time spent on flushing to /var is %s for %u entries.", format_timespan(ts, sizeof(ts), now(CLOCK_MONOTONIC) - start, 0), n); ++ + return r; + } + +-- +1.7.9.2 + diff --git a/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch b/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch new file mode 100644 index 00000000..1a423207 --- /dev/null +++ b/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch @@ -0,0 +1,31 @@ +From 27373e442747010dfc195296c0705f67e905a611 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 30 Nov 2013 23:45:31 +0100 +Subject: [PATCH] util.c: check if return value from ttyname_r is > 0 instead + of != 0 + +We must return a negative error code from getttyname_malloc but +that would not be the case if ttyname_r returned a negative value. + +ttyname_r should only return EBADF, ENOTTY, or ERANGE so it should +be safe to change. +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 38134ae..206fc80 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -2501,7 +2501,7 @@ int getttyname_malloc(int fd, char **r) { + assert(r); + + k = ttyname_r(fd, path, sizeof(path)); +- if (k != 0) ++ if (k > 0) + return -k; + + char_array_0(path); +-- +1.7.9.2 + diff --git a/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch b/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch new file mode 100644 index 00000000..e94380d5 --- /dev/null +++ b/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch @@ -0,0 +1,41 @@ +From 572ce4f7832ffa7a91a582c4098f18cec5662666 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 30 Nov 2013 20:27:54 -0500 +Subject: [PATCH] docs: remove unneeded the's in gudev docs + +https://bugs.freedesktop.org/show_bug.cgi?id=72164 +--- + src/libudev/libudev-device.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git src/libudev/libudev-device.c src/libudev/libudev-device.c +index 059a590..9558ac3 100644 +--- src/libudev/libudev-device.c ++++ src/libudev/libudev-device.c +@@ -982,9 +982,8 @@ static struct udev_device *device_new_from_parent(struct udev_device *udev_devic + * Find the next parent device, and fill in information from the sys + * device and the udev database entry. + * +- * The returned the device is not referenced. It is attached to the +- * child device, and will be cleaned up when the child device +- * is cleaned up. ++ * Returned device is not referenced. It is attached to the child ++ * device, and will be cleaned up when the child device is cleaned up. + * + * It is not necessarily just the upper level directory, empty or not + * recognized sys directories are ignored. +@@ -1018,9 +1017,8 @@ _public_ struct udev_device *udev_device_get_parent(struct udev_device *udev_dev + * If devtype is #NULL, only subsystem is checked, and any devtype will + * match. + * +- * The returned the device is not referenced. It is attached to the +- * child device, and will be cleaned up when the child device +- * is cleaned up. ++ * Returned device is not referenced. It is attached to the child ++ * device, and will be cleaned up when the child device is cleaned up. + * + * It can be called as many times as needed, without caring about + * references. +-- +1.7.9.2 + diff --git a/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch b/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch new file mode 100644 index 00000000..ec388b86 --- /dev/null +++ b/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch @@ -0,0 +1,238 @@ +From 6a44e50f4c0938b0ba355fff21add6c067cd9837 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 30 Nov 2013 21:23:01 -0500 +Subject: [PATCH] man: explicitly say when multiple units can be specified + +itistoday> how do you specify multiple dependencies in a unit file? i've been + googling and can't find this basic thing :-\ +itistoday> do you use a comma, or use multiple After= statements? +--- + man/systemd.unit.xml | 128 +++++++++++++++++++++++++++----------------------- + 1 file changed, 70 insertions(+), 58 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 4dc427c..35dd4c7 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -410,10 +410,12 @@ + of the other units gets deactivated or + its activation fails, this unit will + be deactivated. This option may be +- specified more than once, in which +- case requirement dependencies for all +- listed names are created. Note that +- requirement dependencies do not ++ specified more than once or multiple ++ space-separated units may be specified ++ in one option in which case ++ requirement dependencies for all ++ listed names will be created. Note ++ that requirement dependencies do not + influence the order in which services + are started or stopped. This has to be + configured independently with the +@@ -476,22 +478,23 @@ + RequisiteOverridable= + + Similar to +- Requires= +- and RequiresOverridable=, respectively. However, +- if a unit listed here is not started +- already it will not be started and the +- transaction fails +- immediately. ++ Requires= and ++ RequiresOverridable=, ++ respectively. However, if the units ++ listed here are not started already ++ they will not be started and the ++ transaction will fail immediately. ++ + + + + Wants= + + A weaker version of +- Requires=. A unit ++ Requires=. Units + listed in this option will be started + if the configuring unit is. However, +- if the listed unit fails to start up ++ if the listed units fail to start + or cannot be added to the transaction + this has no impact on the validity of + the transaction as a whole. This is +@@ -501,8 +504,8 @@ + + Note that dependencies of this + type may also be configured outside of +- the unit configuration file by +- adding a symlink to a ++ the unit configuration file by adding ++ symlinks to a + .wants/ directory + accompanying the unit file. For + details see above. +@@ -534,7 +537,7 @@ + of units. When systemd stops or restarts + the units listed here, the action is + propagated to this unit. +- Note that this is a one way dependency - ++ Note that this is a one way dependency — + changes to this unit do not affect the + listed units. + +@@ -543,12 +546,12 @@ + + Conflicts= + +- Configures negative ++ A space-separated list ++ of unit names. Configures negative + requirement dependencies. If a unit +- has a +- Conflicts= setting +- on another unit, starting the former +- will stop the latter and vice ++ has a Conflicts= ++ setting on another unit, starting the ++ former will stop the latter and vice + versa. Note that this setting is + independent of and orthogonal to the + After= and +@@ -575,7 +578,8 @@ + Before= + After= + +- Configures ordering ++ A space-separated list ++ of unit names. Configures ordering + dependencies between units. If a unit + foo.service + contains a setting +@@ -624,18 +628,18 @@ + type After= or + Before=. If two + units have no ordering dependencies +- between them, they are shut down +- or started up simultaneously, and +- no ordering takes ++ between them, they are shut down or ++ started up simultaneously, and no ++ ordering takes + place. + + + + OnFailure= + +- Lists one or more +- units that are activated when this +- unit enters the ++ A space-separated list ++ of one or more units that are ++ activated when this unit enters the + failed + state. + +@@ -644,16 +648,17 @@ + PropagatesReloadTo= + ReloadPropagatedFrom= + +- Lists one or more +- units where reload requests on the +- unit will be propagated to/on the +- other unit will be propagated +- from. Issuing a reload request on a +- unit will automatically also enqueue a +- reload request on all units that the +- reload request shall be propagated to +- via these two +- settings. ++ A space-separated list ++ of one or more units where reload ++ requests on this unit will be ++ propagated to, or reload requests on ++ the other unit will be propagated to ++ this unit, respectively. Issuing a ++ reload request on a unit will ++ automatically also enqueue a reload ++ request on all units that the reload ++ request shall be propagated to via ++ these two settings. + + + +@@ -1130,32 +1135,34 @@ + + Alias= + +- Additional names this +- unit shall be installed under. The +- names listed here must have the same +- suffix (i.e. type) as the unit file +- name. This option may be specified +- more than once, in which case all +- listed names are used. At installation +- time, +- systemctl enable +- will create symlinks from these names +- to the unit filename. ++ A space-seperated list ++ of additional names this unit shall be ++ installed under. The names listed here ++ must have the same suffix (i.e. type) ++ as the unit file name. This option may ++ be specified more than once, in which ++ case all listed names are used. At ++ installation time, systemctl ++ enable will create symlinks ++ from these names to the unit ++ filename. + + + + WantedBy= + RequiredBy= + +- A symbolic link is +- created in the +- .wants/ or +- .requires/ directory +- of the listed unit when this unit is +- activated by systemctl +- enable. This has the effect +- that a dependency of type +- Wants= or ++ This option may be ++ used more than once, or a ++ space-separated list of unit names may ++ be given. A symbolic link is created ++ in the .wants/ or ++ .requires/ ++ directory of each of the listed units ++ when this unit is installed by ++ systemctl enable. ++ This has the effect that a dependency ++ of type Wants= or + Requires= is added + from the listed unit to the current + unit. The primary result is that the +@@ -1201,7 +1208,12 @@ + and systemctl + disable will automatically + install/uninstall units listed in this option as +- well. ++ well. ++ ++ This option may be used more ++ than once, or a space-separated list ++ of unit names may be ++ given. + + + +-- +1.7.9.2 + diff --git a/0049-systemd-treat-reload-failure-as-failure.patch b/0049-systemd-treat-reload-failure-as-failure.patch new file mode 100644 index 00000000..9dde25b5 --- /dev/null +++ b/0049-systemd-treat-reload-failure-as-failure.patch @@ -0,0 +1,93 @@ +From 6a371e23ee0e47827fb4e3aa469ed84da2599304 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 2 Dec 2013 21:52:51 -0500 +Subject: [PATCH] systemd: treat reload failure as failure + +systemctl reload "suceeded" on stopped units, but it is documented +to fail in this case. + +https://bugzilla.redhat.com/show_bug.cgi?id=1036845 +--- + src/core/job.c | 11 +++++++---- + src/core/job.h | 3 ++- + src/core/unit.c | 5 ++++- + 3 files changed, 13 insertions(+), 6 deletions(-) + +diff --git src/core/job.c src/core/job.c +index 557917a..ce97263 100644 +--- src/core/job.c ++++ src/core/job.c +@@ -508,7 +508,7 @@ int job_run_and_invalidate(Job *j) { + else if (t == UNIT_ACTIVATING) + r = -EAGAIN; + else +- r = -ENOEXEC; ++ r = -EBADR; + break; + } + +@@ -537,8 +537,10 @@ int job_run_and_invalidate(Job *j) { + if (j) { + if (r == -EALREADY) + r = job_finish_and_invalidate(j, JOB_DONE, true); +- else if (r == -ENOEXEC) ++ else if (r == -EBADR) + r = job_finish_and_invalidate(j, JOB_SKIPPED, true); ++ else if (r == -ENOEXEC) ++ r = job_finish_and_invalidate(j, JOB_INVALID, true); + else if (r == -EAGAIN) { + j->state = JOB_WAITING; + m->n_running_jobs--; +@@ -764,7 +766,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { + goto finish; + } + +- if (result == JOB_FAILED) ++ if (result == JOB_FAILED || result == JOB_INVALID) + j->manager->n_failed_jobs ++; + + job_uninstall(j); +@@ -1119,7 +1121,8 @@ static const char* const job_result_table[_JOB_RESULT_MAX] = { + [JOB_TIMEOUT] = "timeout", + [JOB_FAILED] = "failed", + [JOB_DEPENDENCY] = "dependency", +- [JOB_SKIPPED] = "skipped" ++ [JOB_SKIPPED] = "skipped", ++ [JOB_INVALID] = "invalid", + }; + + DEFINE_STRING_TABLE_LOOKUP(job_result, JobResult); +diff --git src/core/job.h src/core/job.h +index c23a380..0500e12 100644 +--- src/core/job.h ++++ src/core/job.h +@@ -97,7 +97,8 @@ enum JobResult { + JOB_TIMEOUT, /* JobTimeout elapsed */ + JOB_FAILED, /* Job failed */ + JOB_DEPENDENCY, /* A required dependency job did not result in JOB_DONE */ +- JOB_SKIPPED, /* JOB_RELOAD of inactive unit; negative result of JOB_VERIFY_ACTIVE */ ++ JOB_SKIPPED, /* Negative result of JOB_VERIFY_ACTIVE */ ++ JOB_INVALID, /* JOB_RELOAD of inactive unit */ + _JOB_RESULT_MAX, + _JOB_RESULT_INVALID = -1 + }; +diff --git src/core/unit.c src/core/unit.c +index 50db86c..81d2162 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1239,8 +1239,11 @@ int unit_reload(Unit *u) { + if (state == UNIT_RELOADING) + return -EALREADY; + +- if (state != UNIT_ACTIVE) ++ if (state != UNIT_ACTIVE) { ++ log_warning_unit(u->id, "Unit %s cannot be reloaded because it is inactive.", ++ u->id); + return -ENOEXEC; ++ } + + if ((following = unit_following(u))) { + log_debug_unit(u->id, "Redirecting reload request from %s to %s.", +-- +1.7.9.2 + diff --git a/0145-logind-use-correct-who-enum-values-with-KillUnit.patch b/0145-logind-use-correct-who-enum-values-with-KillUnit.patch new file mode 100644 index 00000000..f8fff2d2 --- /dev/null +++ b/0145-logind-use-correct-who-enum-values-with-KillUnit.patch @@ -0,0 +1,31 @@ +From 524147c1ef991edf4432aac51c880b363b4402df Mon Sep 17 00:00:00 2001 +From: Marius Vollmer +Date: Thu, 31 Oct 2013 15:55:07 +0200 +Subject: [PATCH] logind: use correct "who" enum values with KillUnit. + +--- + src/login/logind-dbus.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index bb85c7d..583d62e 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -2799,7 +2799,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo + assert(manager); + assert(unit); + +- w = who == KILL_LEADER ? "process" : "cgroup"; ++ w = who == KILL_LEADER ? "control" : "all"; + assert_cc(sizeof(signo) == sizeof(int32_t)); + + r = bus_method_call_with_reply( +@@ -2815,7 +2815,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo + DBUS_TYPE_INT32, &signo, + DBUS_TYPE_INVALID); + if (r < 0) { +- log_error("Failed to stop unit %s: %s", unit, bus_error(error, r)); ++ log_error("Failed to kill unit %s: %s", unit, bus_error(error, r)); + return r; + } + diff --git a/macros.systemd b/macros.systemd deleted file mode 100644 index 1a003957..00000000 --- a/macros.systemd +++ /dev/null @@ -1,129 +0,0 @@ -# -*- Mode: makefile; indent-tabs-mode: t -*- */ -# RPM macros for packages installing systemd unit files -# -### -# -# When a package install systemd unit files, it should use the following macros: -# -# add %systemd_requires in the specfile -# -# %pre -# %service_add_pre demo.service demo1.service -# -# %post -# %service_add_post demo.service demo1.service -# -# %preun -# %service_del_preun demo.service -# -# %postun -# %service_del_postun demo.service -# -### - -# This is for systemctl -%systemd_requires \ -Requires(pre): systemd \ -Requires(post): systemd \ -Requires(preun): systemd \ -Requires(postun): systemd \ - -%_unitdir /usr/lib/systemd/system -%_presetdir /usr/lib/systemd/system-preset -%_udevhwdbdir /usr/lib/udev/hwdb.d -%_udevrulesdir /usr/lib/udev/rules.d -%_journalcatalogdir /usr/lib/systemd/catalog -%_tmpfilesdir /usr/lib/tmpfiles.d -%_sysctldir /usr/lib/sysctl.d - -%service_add_pre() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -# disable migration if initial install under systemd \ -[ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : \ -if [ $FIRST_ARG -eq 1 ]; then \ - for service in %{?*} ; do \ - sysv_service=${service%.*} \ - touch "/var/lib/systemd/migrated/$sysv_service" || : \ - done \ -else \ - if [ $FIRST_ARG -gt 1 ]; then \ - for service in %{?*} ; do \ - if [ ! -e "/usr/lib/systemd/system/$service" ]; then \ - touch "/run/rpm-%{name}-update-$service-new-in-upgrade" \ - fi \ - done \ - fi \ - for service in %{?*} ; do \ - sysv_service=${service%.*} \ - if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ - services_to_migrate="$services_to_migrate $sysv_service" \ - fi \ - done \ - if [ -n "$services_to_migrate" ]; then \ - /usr/sbin/systemd-sysv-convert --save $services_to_migrate >/dev/null 2>&1 || : \ - fi \ -fi \ -%{nil} - -# On install, tell systemd to reload its unit files -%service_add_post() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -[ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : \ -for service in %{?*} ; do \ - sysv_service=${service%.*} \ - if [ ! -e "/var/lib/systemd/migrated/$sysv_service" ]; then \ - services_to_migrate="$services_to_migrate $sysv_service" \ - touch "/var/lib/systemd/migrated/$sysv_service" || : \ - fi \ -done \ -/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -if [ -n "$services_to_migrate" ]; then \ - /usr/sbin/systemd-sysv-convert --apply $services_to_migrate >/dev/null 2>&1 || : \ -elif [ $FIRST_ARG -eq 1 ]; then \ - /usr/bin/systemctl preset %{?*} >/dev/null 2>&1 || : \ -elif [ $FIRST_ARG -gt 1 ]; then \ - for service in %{?*} ; do \ - if [ -e "/run/rpm-%{name}-update-$service-new-in-upgrade" ]; then \ - rm -f "/run/rpm-%{name}-update-$service-new-in-upgrade" \ - /usr/bin/systemctl preset "$service" >/dev/null 2>&1 || : \ - fi \ - done \ -fi \ -%{nil} - -# On uninstall, disable and stop services -%service_del_preun() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -if [ $FIRST_ARG -eq 0 ]; then \ -# Package removal, not upgrade \ - /usr/bin/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - /usr/bin/systemctl stop %{?*} > /dev/null 2>&1 || : \ -fi \ -%{nil} - -# On uninstall, tell systemd to reload its unit files -%service_del_postun() \ -test -n "$FIRST_ARG" || FIRST_ARG=$1 \ -if [ $FIRST_ARG -ge 1 ]; then \ -# Package upgrade, not uninstall \ - /usr/bin/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ -else # package uninstall \ - for service in %{?*} ; do \ - sysv_service=${service%.*} \ - rm -f "/var/lib/systemd/migrated/$sysv_service" 2> /dev/null || : \ - done \ - /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : \ -fi \ -%{nil} - -%udev_hwdb_update() \ -/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : \ -%{nil} - -%udev_rules_update() \ -/usr/bin/udevadm control --reload >/dev/null 2>&1 || : \ -%{nil} - -%journal_catalog_update() \ -/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : \ -%{nil} diff --git a/systemd-mini.changes b/systemd-mini.changes index 30031a9b..d9e7abdd 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,79 @@ +------------------------------------------------------------------- +Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de + +- Add several upstream bugfix patches which are missed: + * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch + * 0026-udevadm.xml-document-resolve-names-option-for-test.patch + * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch + * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch + * 0031-man-document-the-b-special-boot-option.patch + * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch + * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch + * 0035-activate-mention-E-in-the-help-text.patch + * 0036-activate-fix-crash-when-s-is-passed.patch + * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch + * 0038-core-socket-fix-SO_REUSEPORT.patch + * 0039-journal-when-appending-to-journal-file-allocate-larg.patch + * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch + * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch + * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch + * 0043-journal-simplify-pre-allocation-logic.patch + * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch + * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch + * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch + * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch + * 0049-systemd-treat-reload-failure-as-failure.patch +- Add patch 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch + to avoid potential NULL pointer +- Reorder patches to reflect udev/systemd usage + +------------------------------------------------------------------- +Tue Feb 11 10:53:48 UTC 2014 - coolo@suse.com + +- don't build bash-completions for bootstrap package + +------------------------------------------------------------------- +Tue Feb 11 10:25:26 UTC 2014 - coolo@suse.com + +- add more requires to this-is-only-for-build-envs to avoid + problems in kiwi configs + +------------------------------------------------------------------- +Mon Feb 10 15:15:35 UTC 2014 - werner@suse.de + +- Add patch 0145-logind-use-correct-who-enum-values-with-KillUnit.patch + to be able to kill sessions (bnc#860574) + +------------------------------------------------------------------- +Mon Feb 10 11:19:31 UTC 2014 - werner@suse.de + +- Do not return from main shell script but simply exit (bnc#862789) + +------------------------------------------------------------------- +Sun Feb 9 18:43:38 UTC 2014 - werner@suse.de + +- ... as only the systemd-analyze completion depends on + bash-completion I prefere a without which has to be defined + for SLES 12 + +------------------------------------------------------------------- +Sun Feb 9 11:21:07 UTC 2014 - coolo@suse.com + +- avoid bootstrap cycle with libusb and systemd-mini + +------------------------------------------------------------------- +Sat Feb 8 06:12:55 UTC 2014 - coolo@suse.com + +- split bash-completion support into its own package, + no need for sles_version + +------------------------------------------------------------------- +Fri Feb 7 13:02:28 UTC 2014 - werner@suse.de + +- Split off systemd-rpm-macros as a separate package to avoid + a rebuild of all packages due new systemd package +- Define a sles_version 12 for suse_version 1315 + ------------------------------------------------------------------- Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index fbeba0d4..808ed2ae 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -22,11 +22,7 @@ ##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### %define udevpkgname udev-mini %define udev_major 1 - -%if 0%{?sles_version} == 0 -%global with_bash_completion 1 -%endif -%bcond_with bash_completion +%bcond_without bash_completion Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -58,11 +54,14 @@ BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel BuildRequires: libtool -BuildRequires: libusb-devel %if ! 0%{?bootstrap} +BuildRequires: libusb-devel BuildRequires: libxslt-tools %endif BuildRequires: pam-devel +%if 0%{?suse_version} > 1310 +BuildRequires: systemd-rpm-macros +%endif BuildRequires: tcpd-devel BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 @@ -81,10 +80,10 @@ BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 %endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs @@ -94,9 +93,7 @@ Conflicts: kiwi # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 -%if %{with bash_completion} -Recommends: bash-completion -%endif +Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: kmod >= 14 @@ -118,7 +115,6 @@ Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.t Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert -Source4: macros.systemd Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init @@ -275,22 +271,10 @@ Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch - -# udev patches -# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch -Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch -# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch -Patch1003: 1003-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch -Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch -Patch1006: 1006-udev-always-rename-network.patch -# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch -Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-SUSE 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) +Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch +# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) +Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -313,6 +297,64 @@ Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch +# PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com +Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch +# PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com +Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch +# PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com +Patch97: 0031-man-document-the-b-special-boot-option.patch +# PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com +Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch +# PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com +Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch +# PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com +Patch101: 0035-activate-mention-E-in-the-help-text.patch +# PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com +Patch102: 0036-activate-fix-crash-when-s-is-passed.patch +# PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com +Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch +# PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com +Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch +# PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com +Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch +# PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com +Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch +# PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com +Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch +# PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com +Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch +# PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com +Patch109: 0043-journal-simplify-pre-allocation-logic.patch +# PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com +Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch +# PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com +Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch +# PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com +Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch +# PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com +Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch +# PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com +Patch114: 0049-systemd-treat-reload-failure-as-failure.patch + +# udev patches +# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch +Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch +Patch1003: 1003-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch +Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch +Patch1006: 1006-udev-always-rename-network.patch +# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch +Patch1007: 1007-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch +Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com +Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch +# PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com +Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -325,6 +367,17 @@ transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. +%package bash-completion +Summary: Bash completion support for systemd +License: LGPL-2.1+ +Group: System/Base +Requires: bash +%if %{with bash_completion} +Requires: bash-completion +%endif + +%description bash-completion +Some systemd commands offer bash completion, but it's an optional dependency. %package devel Summary: Development headers for systemd @@ -369,6 +422,8 @@ Requires: filesystem Provides: udev = %{version} Conflicts: libudev%{udev_major} Conflicts: udev +# avoid kiwi picking it for bootstrap +Requires: this-is-only-for-build-envs %endif %description -n %{udevpkgname} @@ -388,6 +443,8 @@ Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} Conflicts: libudev%{udev_major} Conflicts: kiwi +# avoid kiwi picking it for bootstrap +Requires: this-is-only-for-build-envs %endif %description -n lib%{udevpkgname}%{udev_major} @@ -586,6 +643,38 @@ cp %{SOURCE7} m4/ %patch89 -p1 %patch90 -p1 %patch91 -p1 +%patch92 -p1 +%patch93 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 +%patch94 -p0 +%patch96 -p0 +%patch97 -p0 +%patch99 -p0 +%patch100 -p0 +%patch101 -p0 +%patch102 -p0 +%patch103 -p0 +%patch104 -p0 +%patch105 -p0 +%patch106 -p0 +%patch107 -p0 +%patch108 -p0 +%patch109 -p0 +%patch110 -p0 +%patch111 -p0 +%patch112 -p0 +%patch113 -p0 +%patch114 -p0 # udev patches %patch1001 -p1 @@ -598,17 +687,8 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 +%patch95 -p0 +%patch98 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -742,6 +822,7 @@ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} rm -f %{buildroot}/var/log/README +rm -rf %{buildroot}%{_datadir}/bash-completion %endif # legacy links @@ -793,20 +874,12 @@ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/syste install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ %endif -# clean out some completions which requires bash-completion package -%if %{without bash_completion} -for c in %{buildroot}/%{_datadir}/bash-completion/completions/* -do - test -e "$c" || continue - grep -q _init_completion "$c" || continue - rm -vf "$c" -done -%endif - %fdupes -s %{buildroot}%{_mandir} +%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd +%endif %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : @@ -1161,10 +1234,7 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions %ghost /var/lib/systemd/catalog/database -%{_datadir}/bash-completion/completions/* %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif @@ -1180,6 +1250,17 @@ exit 0 %ghost /var/lib/systemd/backlight %ghost /var/lib/systemd/random-seed +%if ! 0%{?bootstrap} +%files bash-completion +%defattr(-,root,root,-) +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%if %{without bash_completion} +%exclude %{_datadir}/bash-completion/completions/systemd-analyze +%endif +%{_datadir}/bash-completion/completions/* +%endif + %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd-daemon.so diff --git a/systemd-rpm-macros.changes b/systemd-rpm-macros.changes deleted file mode 100644 index 165b84c9..00000000 --- a/systemd-rpm-macros.changes +++ /dev/null @@ -1,11 +0,0 @@ -------------------------------------------------------------------- -Thu Jul 4 13:59:43 CEST 2013 - fcrozat@suse.com - -- Resync with systemd v205 macros - -------------------------------------------------------------------- -Mon Jun 17 10:49:50 UTC 2013 - mhrusecky@suse.com - -- New package with systemd rpm macros to avoid unnecessary build time - dependencies - diff --git a/systemd.changes b/systemd.changes index 30031a9b..d9e7abdd 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,79 @@ +------------------------------------------------------------------- +Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de + +- Add several upstream bugfix patches which are missed: + * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch + * 0026-udevadm.xml-document-resolve-names-option-for-test.patch + * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch + * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch + * 0031-man-document-the-b-special-boot-option.patch + * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch + * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch + * 0035-activate-mention-E-in-the-help-text.patch + * 0036-activate-fix-crash-when-s-is-passed.patch + * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch + * 0038-core-socket-fix-SO_REUSEPORT.patch + * 0039-journal-when-appending-to-journal-file-allocate-larg.patch + * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch + * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch + * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch + * 0043-journal-simplify-pre-allocation-logic.patch + * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch + * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch + * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch + * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch + * 0049-systemd-treat-reload-failure-as-failure.patch +- Add patch 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch + to avoid potential NULL pointer +- Reorder patches to reflect udev/systemd usage + +------------------------------------------------------------------- +Tue Feb 11 10:53:48 UTC 2014 - coolo@suse.com + +- don't build bash-completions for bootstrap package + +------------------------------------------------------------------- +Tue Feb 11 10:25:26 UTC 2014 - coolo@suse.com + +- add more requires to this-is-only-for-build-envs to avoid + problems in kiwi configs + +------------------------------------------------------------------- +Mon Feb 10 15:15:35 UTC 2014 - werner@suse.de + +- Add patch 0145-logind-use-correct-who-enum-values-with-KillUnit.patch + to be able to kill sessions (bnc#860574) + +------------------------------------------------------------------- +Mon Feb 10 11:19:31 UTC 2014 - werner@suse.de + +- Do not return from main shell script but simply exit (bnc#862789) + +------------------------------------------------------------------- +Sun Feb 9 18:43:38 UTC 2014 - werner@suse.de + +- ... as only the systemd-analyze completion depends on + bash-completion I prefere a without which has to be defined + for SLES 12 + +------------------------------------------------------------------- +Sun Feb 9 11:21:07 UTC 2014 - coolo@suse.com + +- avoid bootstrap cycle with libusb and systemd-mini + +------------------------------------------------------------------- +Sat Feb 8 06:12:55 UTC 2014 - coolo@suse.com + +- split bash-completion support into its own package, + no need for sles_version + +------------------------------------------------------------------- +Fri Feb 7 13:02:28 UTC 2014 - werner@suse.de + +- Split off systemd-rpm-macros as a separate package to avoid + a rebuild of all packages due new systemd package +- Define a sles_version 12 for suse_version 1315 + ------------------------------------------------------------------- Wed Feb 5 11:19:28 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 4dfc1227..c305b86b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -20,11 +20,7 @@ %define real systemd %define udevpkgname udev %define udev_major 1 - -%if 0%{?sles_version} == 0 -%global with_bash_completion 1 -%endif -%bcond_with bash_completion +%bcond_without bash_completion Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -53,11 +49,14 @@ BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel BuildRequires: libtool -BuildRequires: libusb-devel %if ! 0%{?bootstrap} +BuildRequires: libusb-devel BuildRequires: libxslt-tools %endif BuildRequires: pam-devel +%if 0%{?suse_version} > 1310 +BuildRequires: systemd-rpm-macros +%endif BuildRequires: tcpd-devel BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 @@ -76,10 +75,10 @@ BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 %endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -BuildRequires: pkgconfig(usbutils) >= 0.82 %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs @@ -89,9 +88,7 @@ Conflicts: kiwi # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 -%if %{with bash_completion} -Recommends: bash-completion -%endif +Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: kmod >= 14 @@ -113,7 +110,6 @@ Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.t Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert -Source4: macros.systemd Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init @@ -270,22 +266,10 @@ Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch - -# udev patches -# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch -Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch -# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch -# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch -Patch1003: 1003-udev-netlink-null-rules.patch -# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch -Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch -Patch1006: 1006-udev-always-rename-network.patch -# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch -Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-SUSE 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) +Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch +# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) +Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -308,6 +292,64 @@ Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch +# PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com +Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch +# PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com +Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch +# PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com +Patch97: 0031-man-document-the-b-special-boot-option.patch +# PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com +Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch +# PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com +Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch +# PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com +Patch101: 0035-activate-mention-E-in-the-help-text.patch +# PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com +Patch102: 0036-activate-fix-crash-when-s-is-passed.patch +# PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com +Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch +# PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com +Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch +# PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com +Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch +# PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com +Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch +# PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com +Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch +# PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com +Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch +# PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com +Patch109: 0043-journal-simplify-pre-allocation-logic.patch +# PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com +Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch +# PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com +Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch +# PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com +Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch +# PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com +Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch +# PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com +Patch114: 0049-systemd-treat-reload-failure-as-failure.patch + +# udev patches +# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch +Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch +# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch +Patch1003: 1003-udev-netlink-null-rules.patch +# PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch +Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch +Patch1006: 1006-udev-always-rename-network.patch +# PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch +Patch1007: 1007-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch +Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com +Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch +# PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com +Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -320,6 +362,17 @@ transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. +%package bash-completion +Summary: Bash completion support for systemd +License: LGPL-2.1+ +Group: System/Base +Requires: bash +%if %{with bash_completion} +Requires: bash-completion +%endif + +%description bash-completion +Some systemd commands offer bash completion, but it's an optional dependency. %package devel Summary: Development headers for systemd @@ -364,6 +417,8 @@ Requires: filesystem Provides: udev = %{version} Conflicts: libudev%{udev_major} Conflicts: udev +# avoid kiwi picking it for bootstrap +Requires: this-is-only-for-build-envs %endif %description -n %{udevpkgname} @@ -383,6 +438,8 @@ Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} Conflicts: libudev%{udev_major} Conflicts: kiwi +# avoid kiwi picking it for bootstrap +Requires: this-is-only-for-build-envs %endif %description -n lib%{udevpkgname}%{udev_major} @@ -581,6 +638,38 @@ cp %{SOURCE7} m4/ %patch89 -p1 %patch90 -p1 %patch91 -p1 +%patch92 -p1 +%patch93 -p1 +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 +%patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p1 +%patch1017 -p1 +%patch1018 -p1 +%patch1019 -p1 +%patch94 -p0 +%patch96 -p0 +%patch97 -p0 +%patch99 -p0 +%patch100 -p0 +%patch101 -p0 +%patch102 -p0 +%patch103 -p0 +%patch104 -p0 +%patch105 -p0 +%patch106 -p0 +%patch107 -p0 +%patch108 -p0 +%patch109 -p0 +%patch110 -p0 +%patch111 -p0 +%patch112 -p0 +%patch113 -p0 +%patch114 -p0 # udev patches %patch1001 -p1 @@ -593,17 +682,8 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif -%patch1009 -p1 -%patch1010 -p1 -%patch1011 -p1 -%patch1012 -p1 -%patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p1 -%patch1017 -p1 -%patch1018 -p1 -%patch1019 -p1 +%patch95 -p0 +%patch98 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -737,6 +817,7 @@ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} rm -f %{buildroot}/var/log/README +rm -rf %{buildroot}%{_datadir}/bash-completion %endif # legacy links @@ -788,20 +869,12 @@ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/syste install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ %endif -# clean out some completions which requires bash-completion package -%if %{without bash_completion} -for c in %{buildroot}/%{_datadir}/bash-completion/completions/* -do - test -e "$c" || continue - grep -q _init_completion "$c" || continue - rm -vf "$c" -done -%endif - %fdupes -s %{buildroot}%{_mandir} +%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd +%endif %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : @@ -1156,10 +1229,7 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions %ghost /var/lib/systemd/catalog/database -%{_datadir}/bash-completion/completions/* %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif @@ -1175,6 +1245,17 @@ exit 0 %ghost /var/lib/systemd/backlight %ghost /var/lib/systemd/random-seed +%if ! 0%{?bootstrap} +%files bash-completion +%defattr(-,root,root,-) +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%if %{without bash_completion} +%exclude %{_datadir}/bash-completion/completions/systemd-analyze +%endif +%{_datadir}/bash-completion/completions/* +%endif + %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd-daemon.so diff --git a/write_dev_root_rule b/write_dev_root_rule index 5011aa3f..dcb7d5b4 100644 --- a/write_dev_root_rule +++ b/write_dev_root_rule @@ -2,7 +2,7 @@ eval $(@@PREFIX@@/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/) -[ "$ROOT_MAJOR" -gt 0 ] || return +[ "$ROOT_MAJOR" -gt 0 ] || exit 0 mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1 ln -sf /run/udev /dev/.udev 2>/dev/null || : From bbba62be60175541867870e29f81e0f047c52f33ba9151d8c2d18ce371411442 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 11 Mar 2014 08:24:11 +0000 Subject: [PATCH 172/221] Accepting request 225408 from Base:System - Add or port upstream bugfix patches: 0001-Fix-systemd-stdio-bridge-symlink.patch 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch 0004-man-document-missing-options-of-systemd-run.patch 0005-systemd-run-add-some-extra-safety-checks.patch 0006-journal-assume-that-next-entry-is-after-previous-ent.patch 0007-journal-forget-file-after-encountering-an-error.patch 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch 0010-man-update-link-to-LSB.patch 0011-man-systemd-bootchart-fix-spacing-in-command.patch 0012-man-add-missing-comma.patch 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - Add linker scripts as place holder of the old systemd shared libraries now all included in libsystemd.so (bnc#867128) - Make patch 1006-udev-always-rename-network.patch work again and add it again. - address missing owner functionality in systemd-tmpfiles (fate#314974) 1022-systemd-tmpfiles-ownerkeep.patch - Generate the bash completion files on the fly for the case of not having the package bash-completion around - Add or port upstream bugfix patches: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch 0002-cdrom_id-use-the-old-MMC-fallback.patch 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch OBS-URL: https://build.opensuse.org/request/show/225408 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=177 --- 0001-Fix-bad-assert-in-show_pid_array.patch | 35 -- 0001-Fix-systemd-stdio-bridge-symlink.patch | 28 + ...all-qsort-on-potentially-NULL-arrays.patch | 385 -------------- ...s390_con3270_disable_ANSI_colour_esc.patch | 15 +- ...ix-memory-leak-in-acpi_get_boot_usec.patch | 25 - ...sh-for-reboot-or-hddown-for-poweroff.patch | 181 ++++--- ...network-device-after-NFS-mount-units.patch | 318 ++++++++++++ ...yze-set-text-on-side-with-most-space.patch | 90 ---- 0001-analyze-set-white-background.patch | 32 -- ...id-abort-due-timeout-at-user-service.patch | 15 + ...ew-KillMode-mixed-which-sends-SIGTER.patch | 225 -------- ...ailureIsolate-setting-by-a-more-gene.patch | 329 ------------ ...ay-we-denote-serialization-attribute.patch | 40 -- ...dbus-common-avoid-leak-in-error-path.patch | 71 --- ...rbage-from-acpi-firmware-performance.patch | 33 -- 0001-drop-ins-check-return-value.patch | 29 -- ...tor-exit-immediately-if-in-container.patch | 40 -- 0001-journald-fix-minor-memory-leak.patch | 25 - ...rotated-file-from-hashmap-when-rotat.patch | 39 -- ...ix-invalid-free-in-sd_session_get_vt.patch | 27 - 0001-login-fix-pos-array-allocation.patch | 52 ++ ...make-sd_session_get_vt-actually-work.patch | 27 - ...s-introspection-data-for-TakeControl.patch | 25 - 0001-logind-garbage-collect-stale-users.patch | 28 - 0001-make-209-working-on-older-dist.patch | 79 +++ 0001-make-fortify-happy-with-ppoll.patch | 55 ++ ...ifying-whether-clients-may-change-en.patch | 45 -- ...heck-for-NULL-before-reading-pm-what.patch | 29 -- ...XDG_RUNTIME_DIR_of_the_original_user.patch | 41 ++ ...shared-util-Fix-glob_extend-argument.patch | 28 - ...off-by-one-error-in-tag_to_udev_node.patch | 50 -- 0001-systemd-empty-sigmask-on-reexec.patch | 42 ++ ...mote-mounts-from-mountinfo-before-re.patch | 41 -- ...ize-deserialize-forbid_restart-value.patch | 51 -- ...systemctl-halt-reboot-error-handling.patch | 85 --- ...ectory-path-if-we-fail-to-remove-it-.patch | 54 ++ ...ferences-to-var-lib-backlight-random.patch | 55 -- ...pos-slot-to-fallback-on-pos-eviction.patch | 52 ++ ...llMode-mixed-in-conjunction-with-PAM.patch | 62 --- ...rint-invalid-UTF-8-in-error-messages.patch | 130 +++++ ...e-never-free-an-uninitialized-pointe.patch | 25 - ...o-always-go-through-both-SIGTERM-and.patch | 128 ----- ...ing-org.freedesktop.login1.Seat.Swit.patch | 35 ++ ...C-network-interface-name-irdac-idrac.patch | 22 + ...ument-missing-options-of-systemd-run.patch | 113 ++++ ...ctl-fix-name-mangling-for-sysv-units.patch | 134 ----- ...var-run-with-run-in-remaining-places.patch | 89 ++++ ...OM-handling-when-parsing-mount-optio.patch | 48 -- ...emd-run-add-some-extra-safety-checks.patch | 34 ++ ...k-to-var-run-at-a-couple-of-problems.patch | 60 +++ ...hat-next-entry-is-after-previous-ent.patch | 70 +++ 0006-journald-add-missing-error-check.patch | 25 - ...t-that-var-run-must-be-a-symlink-run.patch | 30 ++ ...entially-uninitialized-memory-access.patch | 34 -- ...get-file-after-encountering-an-error.patch | 74 +++ ...-system_bus_socket-for-the-D-Bus-soc.patch | 51 ++ ...-unregister-PIDs-from-PID-hashtables.patch | 102 ++++ ...-fix-return-value-of-dispatch_rqueue.patch | 30 -- ...ence-to-systemd-user-sessions.servic.patch | 25 + 0009-modules-load-fix-error-handling.patch | 27 - ...-out-PropertiesChanged-message-if-ac.patch | 70 +++ ...all-qsort-on-potentially-NULL-arrays.patch | 26 - 0010-man-update-link-to-LSB.patch | 35 ++ ...-PropertiesChanged-signals-for-mount.patch | 51 ++ ...x-corrupt-output-with-empty-messages.patch | 41 ++ ...emd-bootchart-fix-spacing-in-command.patch | 28 + ...ccess-potentially-NULL-string-arrays.patch | 27 - ...e-extra-arguments-with-verify-and-si.patch | 30 ++ 0012-man-add-missing-comma.patch | 26 + ...per-function-pointer-to-mkdir_safe_i.patch | 26 - 0013-cdrom_id-use-the-old-MMC-fallback.patch | 54 ++ ...scape-instance-name-in-systemd-backl.patch | 38 ++ ...ection-of-missing-proc-self-loginuid.patch | 31 ++ ...ude-setgid-perms-for-run-log-journal.patch | 26 - ...what-to-RequiresMountsFor-for-networ.patch | 181 ------- ...cument-resolve-names-option-for-test.patch | 34 -- ...in-systemd-bootchart-on-short-living.patch | 34 -- ...n-document-the-b-special-boot-option.patch | 37 -- ...t-some-of-the-rules-to-the-add-actio.patch | 81 --- ...ccessible-FUSE-mount-points-only-as-.patch | 37 -- ...ix-booted-and-add-two-functions-to-d.patch | 26 - ...-activate-mention-E-in-the-help-text.patch | 25 - ...-activate-fix-crash-when-s-is-passed.patch | 26 - ...excludes-for-the-new-per-service-pri.patch | 43 -- 0038-core-socket-fix-SO_REUSEPORT.patch | 38 -- ...ending-to-journal-file-allocate-larg.patch | 80 --- ...-bisection-logic-a-bit-by-caching-th.patch | 247 --------- ...ation-when-we-go-backwards-from-the-.patch | 26 - ...urnal_file_copy_entry-to-work-on-non.patch | 28 - ...ournal-simplify-pre-allocation-logic.patch | 61 --- ...-how-long-we-needed-to-flush-to-var-.patch | 58 --- ...return-value-from-ttyname_r-is-0-ins.patch | 31 -- ...-remove-unneeded-the-s-in-gudev-docs.patch | 41 -- ...ay-when-multiple-units-can-be-specif.patch | 238 --------- ...temd-treat-reload-failure-as-failure.patch | 93 ---- ...orrect-who-enum-values-with-KillUnit.patch | 31 -- 1006-udev-always-rename-network.patch | 120 ++--- 1011-check-4-valid-kmsg-device.patch | 62 --- ...XDG_RUNTIME_DIR_of_the_original_user.patch | 168 ------ ...nit-handling-if-sysv-already-handled.patch | 20 - ...ripts-know-about-Required-and-Should.patch | 25 +- ...pletion-smart-to-be-able-to-redirect.patch | 4 +- 1022-systemd-tmpfiles-ownerkeep.patch | 10 + ...-suspend-hibernate-calls-to-pm-utils.patch | 6 +- ...y_session_activation_on_non_vt_seats.patch | 26 - ...ze-fix-crash-in-command-line-parsing.patch | 35 -- apply-ACL-for-nvidia-device-nodes.patch | 30 +- build-sys-make-multi-seat-x-optional.patch | 60 --- ...etup-after-md-dmraid-lvm-are-started.patch | 21 +- fix-owner-of-var-log-btmp.patch | 2 +- ...STEMCTL_OPTIONS-environment-variable.patch | 2 +- handle-etc-HOSTNAME.patch | 32 +- insserv-generator.patch | 10 +- systemd-208.tar.xz | 3 - systemd-210.tar.xz | 3 + systemd-dbus-system-bus-address.patch | 11 - systemd-install-compat_pkgconfig-always.patch | 28 + systemd-mini.changes | 487 +++++++++++++++++ systemd-mini.spec | 491 +++++++++--------- systemd-tmp-safe-defaults.patch | 2 +- systemd.changes | 487 +++++++++++++++++ systemd.spec | 491 +++++++++--------- ...or-openSUSE-version-of-etc-sysconfig.patch | 4 +- 123 files changed, 3697 insertions(+), 5117 deletions(-) delete mode 100644 0001-Fix-bad-assert-in-show_pid_array.patch create mode 100644 0001-Fix-systemd-stdio-bridge-symlink.patch delete mode 100644 0001-Never-call-qsort-on-potentially-NULL-arrays.patch delete mode 100644 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch create mode 100644 0001-add-network-device-after-NFS-mount-units.patch delete mode 100644 0001-analyze-set-text-on-side-with-most-space.patch delete mode 100644 0001-analyze-set-white-background.patch create mode 100644 0001-avoid-abort-due-timeout-at-user-service.patch delete mode 100644 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch delete mode 100644 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch delete mode 100644 0001-core-unify-the-way-we-denote-serialization-attribute.patch delete mode 100644 0001-dbus-common-avoid-leak-in-error-path.patch delete mode 100644 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch delete mode 100644 0001-drop-ins-check-return-value.patch delete mode 100644 0001-gpt-auto-generator-exit-immediately-if-in-container.patch delete mode 100644 0001-journald-fix-minor-memory-leak.patch delete mode 100644 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch delete mode 100644 0001-login-fix-invalid-free-in-sd_session_get_vt.patch create mode 100644 0001-login-fix-pos-array-allocation.patch delete mode 100644 0001-login-make-sd_session_get_vt-actually-work.patch delete mode 100644 0001-logind-fix-bus-introspection-data-for-TakeControl.patch delete mode 100644 0001-logind-garbage-collect-stale-users.patch create mode 100644 0001-make-209-working-on-older-dist.patch create mode 100644 0001-make-fortify-happy-with-ppoll.patch delete mode 100644 0001-manager-when-verifying-whether-clients-may-change-en.patch delete mode 100644 0001-mount-check-for-NULL-before-reading-pm-what.patch create mode 100644 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch delete mode 100644 0001-shared-util-Fix-glob_extend-argument.patch delete mode 100644 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch create mode 100644 0001-systemd-empty-sigmask-on-reexec.patch delete mode 100644 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch delete mode 100644 0001-systemd-serialize-deserialize-forbid_restart-value.patch delete mode 100644 0001-upstream-systemctl-halt-reboot-error-handling.patch create mode 100644 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch delete mode 100644 0002-fix-lingering-references-to-var-lib-backlight-random.patch create mode 100644 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch delete mode 100644 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch create mode 100644 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch delete mode 100644 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch delete mode 100644 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch create mode 100644 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch create mode 100644 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch create mode 100644 0004-man-document-missing-options-of-systemd-run.patch delete mode 100644 0004-systemctl-fix-name-mangling-for-sysv-units.patch create mode 100644 0005-Replace-var-run-with-run-in-remaining-places.patch delete mode 100644 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch create mode 100644 0005-systemd-run-add-some-extra-safety-checks.patch create mode 100644 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch create mode 100644 0006-journal-assume-that-next-entry-is-after-previous-ent.patch delete mode 100644 0006-journald-add-missing-error-check.patch create mode 100644 0007-README-document-that-var-run-must-be-a-symlink-run.patch delete mode 100644 0007-bus-fix-potentially-uninitialized-memory-access.patch create mode 100644 0007-journal-forget-file-after-encountering-an-error.patch create mode 100644 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch create mode 100644 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch delete mode 100644 0008-dbus-fix-return-value-of-dispatch_rqueue.patch create mode 100644 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch delete mode 100644 0009-modules-load-fix-error-handling.patch create mode 100644 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch delete mode 100644 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch create mode 100644 0010-man-update-link-to-LSB.patch create mode 100644 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch create mode 100644 0011-logs-show-fix-corrupt-output-with-empty-messages.patch create mode 100644 0011-man-systemd-bootchart-fix-spacing-in-command.patch delete mode 100644 0011-strv-don-t-access-potentially-NULL-string-arrays.patch create mode 100644 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch create mode 100644 0012-man-add-missing-comma.patch delete mode 100644 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch create mode 100644 0013-cdrom_id-use-the-old-MMC-fallback.patch create mode 100644 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch create mode 100644 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch delete mode 100644 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch delete mode 100644 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch delete mode 100644 0026-udevadm.xml-document-resolve-names-option-for-test.patch delete mode 100644 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch delete mode 100644 0031-man-document-the-b-special-boot-option.patch delete mode 100644 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch delete mode 100644 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch delete mode 100644 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch delete mode 100644 0035-activate-mention-E-in-the-help-text.patch delete mode 100644 0036-activate-fix-crash-when-s-is-passed.patch delete mode 100644 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch delete mode 100644 0038-core-socket-fix-SO_REUSEPORT.patch delete mode 100644 0039-journal-when-appending-to-journal-file-allocate-larg.patch delete mode 100644 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch delete mode 100644 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch delete mode 100644 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch delete mode 100644 0043-journal-simplify-pre-allocation-logic.patch delete mode 100644 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch delete mode 100644 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch delete mode 100644 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch delete mode 100644 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch delete mode 100644 0049-systemd-treat-reload-failure-as-failure.patch delete mode 100644 0145-logind-use-correct-who-enum-values-with-KillUnit.patch delete mode 100644 1011-check-4-valid-kmsg-device.patch delete mode 100644 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch delete mode 100644 1017-skip-native-unit-handling-if-sysv-already-handled.patch create mode 100644 1022-systemd-tmpfiles-ownerkeep.patch delete mode 100644 U_logind_revert_lazy_session_activation_on_non_vt_seats.patch delete mode 100644 analyze-fix-crash-in-command-line-parsing.patch delete mode 100644 build-sys-make-multi-seat-x-optional.patch delete mode 100644 systemd-208.tar.xz create mode 100644 systemd-210.tar.xz delete mode 100644 systemd-dbus-system-bus-address.patch create mode 100644 systemd-install-compat_pkgconfig-always.patch diff --git a/0001-Fix-bad-assert-in-show_pid_array.patch b/0001-Fix-bad-assert-in-show_pid_array.patch deleted file mode 100644 index e62ab8b5..00000000 --- a/0001-Fix-bad-assert-in-show_pid_array.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a0551d26ab5c6e0d5089b42a6319baef0e28ad92 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 14 Oct 2013 19:15:24 -0400 -Subject: [PATCH] Fix bad assert in show_pid_array - -This function should get the same treatment as other qsort uses -did in 7ff7394 "Never call qsort on potentially NULL arrays". - -Reported-by: Oleksii Shevchuk ---- - src/shared/cgroup-show.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -Index: systemd-208/src/shared/cgroup-show.c -=================================================================== ---- systemd-208.orig/src/shared/cgroup-show.c -+++ systemd-208/src/shared/cgroup-show.c -@@ -44,8 +44,6 @@ static void show_pid_array(int pids[], u - unsigned i, m, pid_width; - pid_t biggest = 0; - -- assert(n_pids > 0); -- - /* Filter duplicates */ - m = 0; - for (i = 0; i < n_pids; i++) { -@@ -65,7 +63,7 @@ static void show_pid_array(int pids[], u - pid_width = DECIMAL_STR_WIDTH(biggest); - - /* And sort */ -- qsort(pids, n_pids, sizeof(pid_t), compare); -+ qsort_safe(pids, n_pids, sizeof(pid_t), compare); - - if(flags & OUTPUT_FULL_WIDTH) - n_columns = 0; diff --git a/0001-Fix-systemd-stdio-bridge-symlink.patch b/0001-Fix-systemd-stdio-bridge-symlink.patch new file mode 100644 index 00000000..02e7e1cc --- /dev/null +++ b/0001-Fix-systemd-stdio-bridge-symlink.patch @@ -0,0 +1,28 @@ +From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Sun, 2 Mar 2014 23:37:39 -0500 +Subject: [PATCH] Fix systemd-stdio-bridge symlink + +The symlink is created in bindir (/usr/bin), and points to a binary +which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A +relative symlink does not work here. +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git Makefile.am Makefile.am +index 38445fb..e7134a2 100644 +--- Makefile.am ++++ Makefile.am +@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ + + bus-proxyd-install-hook: + $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) +- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge ++ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge + + bus-proxyd-uninstall-hook: + rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge +-- +1.7.9.2 + diff --git a/0001-Never-call-qsort-on-potentially-NULL-arrays.patch b/0001-Never-call-qsort-on-potentially-NULL-arrays.patch deleted file mode 100644 index 515348fb..00000000 --- a/0001-Never-call-qsort-on-potentially-NULL-arrays.patch +++ /dev/null @@ -1,385 +0,0 @@ -From 7ff7394d9e4e9189c30fd018235e6b1728c6f2d0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Oct 2013 19:33:13 -0400 -Subject: [PATCH] Never call qsort on potentially NULL arrays - -This extends 62678ded 'efi: never call qsort on potentially -NULL arrays' to all other places where qsort is used and it -is not obvious that the count is non-zero. ---- - src/analyze/systemd-analyze.c | 2 +- - src/cgtop/cgtop.c | 2 +- - src/core/namespace.c | 38 ++++++++++++++++++++------------------ - src/journal/catalog.c | 2 +- - src/journal/journal-file.c | 2 +- - src/journal/journal-vacuum.c | 3 +-- - src/journal/journalctl.c | 2 +- - src/libsystemd-bus/bus-match.c | 2 +- - src/libudev/libudev-enumerate.c | 2 +- - src/nss-myhostname/netlink.c | 3 ++- - src/readahead/readahead-collect.c | 39 ++++++++++++++++++++++----------------- - src/shared/cgroup-show.c | 2 ++ - src/shared/conf-files.c | 2 +- - src/shared/efivars.c | 3 +-- - src/shared/fileio.c | 1 + - src/shared/util.h | 12 ++++++++++++ - src/systemctl/systemctl.c | 10 +++++----- - 17 files changed, 74 insertions(+), 53 deletions(-) - -diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c -index 27d063c..a4f15eb 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -768,7 +768,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, unsigned - if (r < 0) - return r; - -- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); -+ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); - - r = acquire_boot_times(bus, &boot); - if (r < 0) -diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c -index cacf705..293a211 100644 ---- a/src/cgtop/cgtop.c -+++ b/src/cgtop/cgtop.c -@@ -461,7 +461,7 @@ static int display(Hashmap *a) { - if (g->n_tasks_valid || g->cpu_valid || g->memory_valid || g->io_valid) - array[n++] = g; - -- qsort(array, n, sizeof(Group*), group_compare); -+ qsort_safe(array, n, sizeof(Group*), group_compare); - - /* Find the longest names in one run */ - for (j = 0; j < n; j++) { -diff --git a/src/core/namespace.c b/src/core/namespace.c -index 16b132b..936f368 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -222,7 +222,7 @@ int setup_namespace(char** read_write_dirs, - strv_length(read_only_dirs) + - strv_length(inaccessible_dirs) + - (private_tmp ? 2 : 0); -- BindMount *m, *mounts; -+ BindMount *m, *mounts = NULL; - int r = 0; - - if (!mount_flags) -@@ -231,27 +231,29 @@ int setup_namespace(char** read_write_dirs, - if (unshare(CLONE_NEWNS) < 0) - return -errno; - -- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); -- if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 || -- (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 || -- (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0) -- return r; -+ if (n) { -+ m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); -+ if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 || -+ (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 || -+ (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0) -+ return r; -+ -+ if (private_tmp) { -+ m->path = "/tmp"; -+ m->mode = PRIVATE_TMP; -+ m++; -+ -+ m->path = "/var/tmp"; -+ m->mode = PRIVATE_VAR_TMP; -+ m++; -+ } - -- if (private_tmp) { -- m->path = "/tmp"; -- m->mode = PRIVATE_TMP; -- m++; -+ assert(mounts + n == m); - -- m->path = "/var/tmp"; -- m->mode = PRIVATE_VAR_TMP; -- m++; -+ qsort(mounts, n, sizeof(BindMount), mount_path_compare); -+ drop_duplicates(mounts, &n); - } - -- assert(mounts + n == m); -- -- qsort(mounts, n, sizeof(BindMount), mount_path_compare); -- drop_duplicates(mounts, &n); -- - /* Remount / as SLAVE so that nothing now mounted in the namespace - shows up in the parent */ - if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL) < 0) -diff --git a/src/journal/catalog.c b/src/journal/catalog.c -index 7738d24..90ca008 100644 ---- a/src/journal/catalog.c -+++ b/src/journal/catalog.c -@@ -399,7 +399,7 @@ int catalog_update(const char* database, const char* root, const char* const* di - } - - assert(n == hashmap_size(h)); -- qsort(items, n, sizeof(CatalogItem), catalog_compare_func); -+ qsort_safe(items, n, sizeof(CatalogItem), catalog_compare_func); - - r = write_catalog(database, h, sb, items, n); - if (r < 0) -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 78b937b..901e71b 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -1344,7 +1344,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - - /* Order by the position on disk, in order to improve seek - * times for rotating media. */ -- qsort(items, n_iovec, sizeof(EntryItem), entry_item_cmp); -+ qsort_safe(items, n_iovec, sizeof(EntryItem), entry_item_cmp); - - r = journal_file_append_entry_internal(f, ts, xor_hash, items, n_iovec, seqnum, ret, offset); - -diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c -index 8d5effb..d4a1c6c 100644 ---- a/src/journal/journal-vacuum.c -+++ b/src/journal/journal-vacuum.c -@@ -299,8 +299,7 @@ int journal_directory_vacuum( - n_list ++; - } - -- if (n_list > 0) -- qsort(list, n_list, sizeof(struct vacuum_info), vacuum_compare); -+ qsort_safe(list, n_list, sizeof(struct vacuum_info), vacuum_compare); - - for (i = 0; i < n_list; i++) { - struct statvfs ss; -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index 2f8be1b..275458c 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -761,7 +761,7 @@ static int get_relative_boot_id(sd_journal *j, sd_id128_t *boot_id, int relative - sd_journal_flush_matches(j); - } - -- qsort(all_ids, count, sizeof(boot_id_t), boot_id_cmp); -+ qsort_safe(all_ids, count, sizeof(boot_id_t), boot_id_cmp); - - if (sd_id128_equal(*boot_id, SD_ID128_NULL)) { - if (relative > (int) count || relative <= -(int)count) -diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c -index 1411167..916682a 100644 ---- a/src/libsystemd-bus/bus-match.c -+++ b/src/libsystemd-bus/bus-match.c -@@ -768,7 +768,7 @@ int bus_match_parse( - } - - /* Order the whole thing, so that we always generate the same tree */ -- qsort(components, n_components, sizeof(struct bus_match_component), match_component_compare); -+ qsort_safe(components, n_components, sizeof(struct bus_match_component), match_component_compare); - - /* Check for duplicates */ - for (i = 0; i+1 < n_components; i++) -diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c -index 8146f27..e71d766 100644 ---- a/src/libudev/libudev-enumerate.c -+++ b/src/libudev/libudev-enumerate.c -@@ -276,7 +276,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume - size_t move_later_prefix = 0; - - udev_list_cleanup(&udev_enumerate->devices_list); -- qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp); -+ qsort_safe(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp); - - max = udev_enumerate->devices_cur; - for (i = 0; i < max; i++) { -diff --git a/src/nss-myhostname/netlink.c b/src/nss-myhostname/netlink.c -index b1ef912..47a41f5 100644 ---- a/src/nss-myhostname/netlink.c -+++ b/src/nss-myhostname/netlink.c -@@ -197,7 +197,8 @@ finish: - return r; - } - -- qsort(list, n_list, sizeof(struct address), address_compare); -+ if (n_list) -+ qsort(list, n_list, sizeof(struct address), address_compare); - - *_list = list; - *_n_list = n_list; -diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c -index 32888ad..6b74866 100644 ---- a/src/readahead/readahead-collect.c -+++ b/src/readahead/readahead-collect.c -@@ -536,8 +536,7 @@ done: - HASHMAP_FOREACH_KEY(q, p, files, i) - pack_file(pack, p, on_btrfs); - } else { -- struct item *ordered, *j; -- unsigned k, n; -+ unsigned n; - - /* On rotating media, order things by the block - * numbers */ -@@ -545,25 +544,31 @@ done: - log_debug("Ordering..."); - - n = hashmap_size(files); -- if (!(ordered = new(struct item, n))) { -- r = log_oom(); -- goto finish; -- } -- -- j = ordered; -- HASHMAP_FOREACH_KEY(q, p, files, i) { -- memcpy(j, q, sizeof(struct item)); -- j++; -- } -+ if (n) { -+ _cleanup_free_ struct item *ordered; -+ struct item *j; -+ unsigned k; -+ -+ ordered = new(struct item, n); -+ if (!ordered) { -+ r = log_oom(); -+ goto finish; -+ } - -- assert(ordered + n == j); -+ j = ordered; -+ HASHMAP_FOREACH_KEY(q, p, files, i) { -+ memcpy(j, q, sizeof(struct item)); -+ j++; -+ } - -- qsort(ordered, n, sizeof(struct item), qsort_compare); -+ assert(ordered + n == j); - -- for (k = 0; k < n; k++) -- pack_file(pack, ordered[k].path, on_btrfs); -+ qsort(ordered, n, sizeof(struct item), qsort_compare); - -- free(ordered); -+ for (k = 0; k < n; k++) -+ pack_file(pack, ordered[k].path, on_btrfs); -+ } else -+ log_warning("No pack files"); - } - - log_debug("Finalizing..."); -diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c -index e971f36..cc44ab4 100644 ---- a/src/shared/cgroup-show.c -+++ b/src/shared/cgroup-show.c -@@ -44,6 +44,8 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi - unsigned i, m, pid_width; - pid_t biggest = 0; - -+ assert(n_pids > 0); -+ - /* Filter duplicates */ - m = 0; - for (i = 0; i < n_pids; i++) { -diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c -index 6d99739..ed4070c 100644 ---- a/src/shared/conf-files.c -+++ b/src/shared/conf-files.c -@@ -127,7 +127,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const - return -ENOMEM; - } - -- qsort(files, hashmap_size(fh), sizeof(char *), base_cmp); -+ qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp); - *strv = files; - - hashmap_free(fh); -diff --git a/src/shared/efivars.c b/src/shared/efivars.c -index c015b16..f3eb6a6 100644 ---- a/src/shared/efivars.c -+++ b/src/shared/efivars.c -@@ -384,8 +384,7 @@ int efi_get_boot_options(uint16_t **options) { - list[count ++] = id; - } - -- if (list) -- qsort(list, count, sizeof(uint16_t), cmp_uint16); -+ qsort_safe(list, count, sizeof(uint16_t), cmp_uint16); - - *options = list; - return count; -diff --git a/src/shared/fileio.c b/src/shared/fileio.c -index 603a1c7..733b320 100644 ---- a/src/shared/fileio.c -+++ b/src/shared/fileio.c -@@ -662,6 +662,7 @@ int get_status_field(const char *filename, const char *pattern, char **field) { - int r; - - assert(filename); -+ assert(pattern); - assert(field); - - r = read_full_file(filename, &status, NULL); -diff --git a/src/shared/util.h b/src/shared/util.h -index 26af5b3..09e556d 100644 ---- a/src/shared/util.h -+++ b/src/shared/util.h -@@ -772,3 +772,15 @@ bool id128_is_valid(const char *s) _pure_; - void parse_user_at_host(char *arg, char **user, char **host); - - int split_pair(const char *s, const char *sep, char **l, char **r); -+ -+/** -+ * Normal qsort requires base to be nonnull. Here were require -+ * that only if nmemb > 0. -+ */ -+static inline void qsort_safe(void *base, size_t nmemb, size_t size, -+ int (*compar)(const void *, const void *)) { -+ if (nmemb) { -+ assert(base); -+ qsort(base, nmemb, size, compar); -+ } -+} -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index d75281f..036828b 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -471,7 +471,7 @@ static int list_units(DBusConnection *bus, char **args) { - if (r < 0) - return r; - -- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); -+ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); - - output_units_list(unit_infos, c); - -@@ -733,8 +733,8 @@ static int list_sockets(DBusConnection *bus, char **args) { - listen = triggered = NULL; /* avoid cleanup */ - } - -- qsort(socket_infos, cs, sizeof(struct socket_info), -- (__compar_fn_t) socket_info_compare); -+ qsort_safe(socket_infos, cs, sizeof(struct socket_info), -+ (__compar_fn_t) socket_info_compare); - - output_sockets_list(socket_infos, cs); - -@@ -1108,7 +1108,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, int leve - if (r < 0) - return r; - -- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); -+ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); - - STRV_FOREACH(c, deps) { - if (strv_contains(u, *c)) { -@@ -3532,7 +3532,7 @@ static int show_all(const char* verb, - if (r < 0) - return r; - -- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); -+ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); - - for (u = unit_infos; u < unit_infos + c; u++) { - _cleanup_free_ char *p = NULL; --- -1.8.4 - diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index 843894e1..e772cbae 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -10,7 +10,7 @@ ACTION=="remove", GOTO="systemd_end" --SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" +-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*", TAG+="systemd" +SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" KERNEL=="vport*", TAG+="systemd" @@ -108,16 +108,3 @@ return cached_on_tty; } ---- systemd-208/src/getty-generator/getty-generator.c -+++ systemd-208/src/getty-generator/getty-generator.c 2014-02-05 10:41:29.502245927 +0000 -@@ -149,9 +149,9 @@ int main(int argc, char *argv[]) { - * only for non-VC terminals. */ - - k = add_serial_getty(tty); -+ free(tty); - - if (k < 0) { -- free(tty); - free(active); - r = EXIT_FAILURE; - goto finish; diff --git a/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch b/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch deleted file mode 100644 index 312a5616..00000000 --- a/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7e326fb5b2c1a839bbe7f879c7efa2af2ed33420 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 2 Oct 2013 13:39:49 +0200 -Subject: [PATCH 01/15] acpi-fptd: fix memory leak in acpi_get_boot_usec - ---- - src/shared/acpi-fpdt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c -index b094f34..a7c83ed 100644 ---- a/src/shared/acpi-fpdt.c -+++ b/src/shared/acpi-fpdt.c -@@ -81,7 +81,7 @@ struct acpi_fpdt_boot { - }; - - int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { -- char *buf; -+ _cleanup_free_ char *buf; - struct acpi_table_header *tbl; - size_t l; - struct acpi_fpdt_header *rec; --- -1.8.4 - diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index 2d48b38a..57ca912b 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -5,65 +5,57 @@ use the system halt as gfallback if poweroff fails for both the direct poweroff systemctl command as well as for the systemd-shutdown utility. --- - Makefile.am | 2 - Makefile.in | 7 - src/core/shutdown.c | 8 - - src/shared/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ - src/shared/hdflush.h | 25 +++ - src/systemctl/systemctl.c | 17 +- - 6 files changed, 416 insertions(+), 8 deletions(-) + Makefile.am | 11 + + src/core/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ + src/core/hdflush.h | 25 +++ + src/core/shutdown.c | 12 + + src/systemctl/systemctl.c | 25 ++- + 5 files changed, 429 insertions(+), 9 deletions(-) ---- systemd-208/Makefile.am -+++ systemd-208/Makefile.am 2014-01-28 11:06:55.638238060 +0000 -@@ -680,6 +680,8 @@ libsystemd_shared_la_SOURCES = \ - src/shared/strbuf.h \ - src/shared/strxcpyx.c \ - src/shared/strxcpyx.h \ -+ src/shared/hdflush.c \ -+ src/shared/hdflush.h \ - src/shared/conf-parser.c \ - src/shared/conf-parser.h \ - src/shared/log.c \ ---- systemd-208/Makefile.in -+++ systemd-208/Makefile.in 2014-01-28 11:06:33.942246196 +0000 -@@ -1509,7 +1509,7 @@ am_libsystemd_shared_la_OBJECTS = src/sh - src/shared/hashmap.lo src/shared/set.lo src/shared/fdset.lo \ - src/shared/prioq.lo src/shared/sleep-config.lo \ - src/shared/strv.lo src/shared/env-util.lo src/shared/strbuf.lo \ -- src/shared/strxcpyx.lo src/shared/conf-parser.lo \ -+ src/shared/strxcpyx.lo src/shared/hdflush.lo src/shared/conf-parser.lo \ - src/shared/log.lo src/shared/ratelimit.lo \ - src/shared/exit-status.lo src/shared/utf8.lo \ - src/shared/pager.lo src/shared/socket-util.lo \ -@@ -4137,6 +4137,8 @@ libsystemd_shared_la_SOURCES = \ - src/shared/strbuf.h \ - src/shared/strxcpyx.c \ - src/shared/strxcpyx.h \ -+ src/shared/hdflush.c \ -+ src/shared/hdflush.h \ - src/shared/conf-parser.c \ - src/shared/conf-parser.h \ - src/shared/log.c \ -@@ -7073,6 +7075,8 @@ src/shared/strbuf.lo: src/shared/$(am__d - src/shared/$(DEPDIR)/$(am__dirstamp) - src/shared/strxcpyx.lo: src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) -+src/shared/hdflush.lo: src/shared/$(am__dirstamp) \ -+ src/shared/$(DEPDIR)/$(am__dirstamp) - src/shared/conf-parser.lo: src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) - src/shared/log.lo: src/shared/$(am__dirstamp) \ -@@ -9236,6 +9240,7 @@ distclean-compile: - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strbuf.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strv.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strxcpyx.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/hdflush.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-dst.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-util.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/unit-name.Plo@am__quote@ ---- systemd-208/src/shared/hdflush.c -+++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.490735704 +0000 -@@ -0,0 +1,365 @@ +--- systemd-209/Makefile.am ++++ systemd-209/Makefile.am 2014-01-28 11:06:56.000000000 +0000 +@@ -1004,7 +1004,9 @@ libsystemd_core_la_SOURCES = \ + src/core/audit-fd.c \ + src/core/audit-fd.h \ + src/core/async.c \ +- src/core/async.h ++ src/core/async.h \ ++ src/core/hdflush.c \ ++ src/core/hdflush.h + + if HAVE_KMOD + libsystemd_core_la_SOURCES += \ +@@ -1522,6 +1524,8 @@ systemd_shutdown_SOURCES = \ + src/core/shutdown.c \ + src/core/mount-setup.c \ + src/core/mount-setup.h \ ++ src/core/hdflush.c \ ++ src/core/hdflush.h \ + src/core/killall.h \ + src/core/killall.c + +@@ -1818,7 +1822,9 @@ systemd_cgroups_agent_LDADD = \ + + # ------------------------------------------------------------------------------ + systemctl_SOURCES = \ +- src/systemctl/systemctl.c ++ src/systemctl/systemctl.c \ ++ src/core/hdflush.c \ ++ src/core/hdflush.h + + systemctl_LDADD = \ + libsystemd-units.la \ +@@ -1826,6 +1832,7 @@ systemctl_LDADD = \ + libsystemd-internal.la \ + libsystemd-logs.la \ + libsystemd-journal-internal.la \ ++ libudev-internal.la \ + libsystemd-shared.la + + # ------------------------------------------------------------------------------ +--- systemd-209/src/core/hdflush.c ++++ systemd-209/src/core/hdflush.c 2014-01-28 10:58:56.000000000 +0000 +@@ -0,0 +1,367 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** @@ -111,6 +103,8 @@ systemctl command as well as for the systemd-shutdown utility. +# include +#endif + ++#include "hdflush.h" ++ +/* Used in flush_cache_ext(), compare with */ +#define IDBYTES 512 +#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */ @@ -429,8 +423,8 @@ systemctl command as well as for the systemd-shutdown utility. + close_sysfs(sysfs); +} +#endif ---- systemd-208/src/shared/hdflush.h -+++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.286235696 +0000 +--- systemd-209/src/core/hdflush.h ++++ systemd-209/src/core/hdflush.h 2014-01-28 11:00:08.000000000 +0000 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -457,8 +451,8 @@ systemctl command as well as for the systemd-shutdown utility. + +void hdflush(void); +void hddown(void); ---- systemd-208/src/core/shutdown.c -+++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:15.722235591 +0000 +--- systemd-209/src/core/shutdown.c ++++ systemd-209/src/core/shutdown.c 2014-02-28 11:17:22.000000000 +0000 @@ -40,6 +40,7 @@ #include "missing.h" #include "log.h" @@ -467,7 +461,17 @@ systemctl command as well as for the systemd-shutdown utility. #include "umount.h" #include "util.h" #include "mkdir.h" -@@ -302,8 +303,13 @@ int main(int argc, char *argv[]) { +@@ -225,7 +226,8 @@ int main(int argc, char *argv[]) { + _cleanup_free_ char *cgroup = NULL; + char *arguments[3]; + unsigned retries; +- int cmd, r; ++ unsigned cmd; ++ int r; + + log_parse_environment(); + r = parse_argv(argc, argv); +@@ -388,8 +390,13 @@ int main(int argc, char *argv[]) { * on reboot(), but the file systems need to be synce'd * explicitly in advance. So let's do this here, but not * needlessly slow down containers. */ @@ -480,11 +484,30 @@ systemctl command as well as for the systemd-shutdown utility. + hdflush(); + } - if (cmd == LINUX_REBOOT_CMD_KEXEC) { + switch (cmd) { ---- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-01-28 11:31:27.150735613 +0000 -@@ -87,6 +87,7 @@ static bool arg_no_pager = false; +@@ -449,6 +456,10 @@ int main(int argc, char *argv[]) { + } + + reboot(cmd); ++ ++ if (cmd == RB_POWER_OFF) ++ reboot(RB_HALT_SYSTEM); ++ + if (errno == EPERM && in_container) { + /* If we are in a container, and we lacked + * CAP_SYS_BOOT just exit, this will kill our +--- systemd-209/src/systemctl/systemctl.c ++++ systemd-209/src/systemctl/systemctl.c 2014-02-28 11:19:35.000000000 +0000 +@@ -67,6 +67,7 @@ + #include "logs-show.h" + #include "socket-util.h" + #include "fileio.h" ++#include "hdflush.h" + #include "env-util.h" + #include "bus-util.h" + #include "bus-message.h" +@@ -93,6 +94,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -492,15 +515,15 @@ systemctl command as well as for the systemd-shutdown utility. static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -5272,6 +5273,7 @@ static int halt_parse_argv(int argc, cha +@@ -5566,6 +5568,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, + { "no-sync", no_argument, NULL, 'n' }, { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, - { NULL, 0, NULL, 0 } -@@ -5324,10 +5326,13 @@ static int halt_parse_argv(int argc, cha + {} +@@ -5617,10 +5620,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -515,15 +538,25 @@ systemctl command as well as for the systemd-shutdown utility. case '?': return -EINVAL; -@@ -5981,14 +5986,14 @@ static int halt_now(enum action a) { +@@ -6266,16 +6272,24 @@ static int halt_now(enum action a) { + * point on... */ + reboot(RB_ENABLE_CAD); - switch (a) { +- switch (a) { ++ if (!arg_no_sync) ++ sync(); - case ACTION_HALT: - log_info("Halting."); - reboot(RB_HALT_SYSTEM); - return -errno; -- ++ if (a == ACTION_POWEROFF || a == ACTION_HALT) ++ hddown(); ++ else ++ hdflush(); ++ ++ switch (a) { + case ACTION_POWEROFF: log_info("Powering off."); reboot(RB_POWER_OFF); @@ -534,4 +567,4 @@ systemctl command as well as for the systemd-shutdown utility. + reboot(RB_HALT_SYSTEM); return -errno; - case ACTION_REBOOT: + case ACTION_REBOOT: { diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch new file mode 100644 index 00000000..57a87c73 --- /dev/null +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -0,0 +1,318 @@ +Avoid possible race on NFS shares in which may that the network devices disappears +before the associated NFS share becomes unmounted (bug #861489). +To do this make sure that sys-subsystem-net-devices-.device used for the +NFS share is added as "After=" dependency to the .mount. + +--- + Makefile.am | 2 + src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/mount-iface.h | 25 +++++++ + src/core/mount.c | 35 +++++++++ + src/shared/util.c | 1 + 5 files changed, 234 insertions(+), 2 deletions(-) + +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-02-26 12:44:20.000000000 +0000 +@@ -994,6 +994,8 @@ libsystemd_core_la_SOURCES = \ + src/core/machine-id-setup.h \ + src/core/mount-setup.c \ + src/core/mount-setup.h \ ++ src/core/mount-iface.c \ ++ src/core/mount-iface.h \ + src/core/loopback-setup.h \ + src/core/loopback-setup.c \ + src/core/condition.c \ +--- systemd-210/src/core/mount-iface.c ++++ systemd-210/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 +@@ -0,0 +1,173 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Werner Fink ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++/* ++ * Find the name of the network interface to which a IP address belongs to. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "log.h" ++#include "def.h" ++#include "mount-iface.h" ++ ++static struct ifaddrs *ifa_list; ++ ++_pure_ static unsigned int mask2prefix(const void* ipv6) ++{ ++ unsigned int nippels = 0; ++ unsigned int i; ++ ++ assert(ipv6); ++ ++ for (i = 0; i < sizeof(struct in6_addr); i++) { ++ uint8_t byte = ((const uint8_t*)ipv6)[i]; ++ if (byte == 0xFF) { ++ nippels += sizeof(uint8_t); ++ continue; ++ } ++ while (byte & 0x80) { ++ nippels++; ++ byte <<= 1; ++ } ++ break; ++ } ++ ++ return nippels; ++} ++ ++static void netmask(unsigned int prefix, const void* in6, void* out6) ++{ ++ unsigned int nippels; ++ unsigned int i; ++ ++ assert(in6); ++ assert(out6); ++ ++ for (i = 0; i < sizeof(struct in6_addr); i++) { ++ nippels = (prefix < sizeof(uint8_t)) ? prefix : sizeof(uint8_t); ++ ((uint8_t*)out6)[i] = ((const uint8_t*)in6)[i] & (0xFF00>>nippels); ++ prefix -= nippels; ++ } ++} ++ ++char *host2iface(const char *ip) ++{ ++ const struct ifaddrs *ifa; ++ uint32_t ip4 = 0; ++ char *ret = NULL; ++ struct search { ++ union { ++ struct in_addr addr; ++ struct in6_addr addr6; ++ }; ++ int family; ++ } host; ++ int r; ++ ++ if (!ifa_list && (getifaddrs(&ifa_list) < 0)) { ++ log_oom(); ++ goto err; ++ } ++ ++ if (strchr(ip, ':')) { ++ r = inet_pton(AF_INET6, ip, &host.addr6); ++ host.family = AF_INET6; ++ } else { ++ r = inet_pton(AF_INET, ip, &host.addr); ++ host.family = AF_INET; ++ } ++ ++ if (r < 0) { ++ log_error("Failed to convert IP address %s from text to binary: %m", ip); ++ goto err; ++ } ++ ++ for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) { ++ ++ if (!ifa->ifa_addr) ++ continue; ++ if (ifa->ifa_flags & IFF_POINTOPOINT) ++ continue; ++ if (!ifa->ifa_addr) ++ continue; ++ if (!ifa->ifa_netmask) ++ continue; ++ ++ if (ifa->ifa_addr->sa_family == AF_INET) { ++ uint32_t addr, dest, mask; ++ ++ if (host.family != AF_INET) ++ continue; ++ if (!ifa->ifa_broadaddr) ++ continue; ++ ++ if (!ip4) ++ ip4 = (uint32_t)ntohl(host.addr.s_addr); ++ ++ addr = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr); ++ if ((addr & 0xFF000000) == 0x7F000000) /* IPV4 loopback */ ++ continue; ++ ++ mask = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_netmask)->sin_addr.s_addr); ++ dest = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr.s_addr); ++ if ((ip4 & mask) != (dest & mask)) ++ continue; ++ ++ ret = ifa->ifa_name; ++ break; ++ } else if (ifa->ifa_addr->sa_family == AF_INET6) { ++ struct in6_addr *addr, *mask, dest, ip6; ++ unsigned int prefix; ++ ++ if (host.family != AF_INET6) ++ continue; ++ ++ addr = &((struct sockaddr_in6*)ifa->ifa_addr)->sin6_addr; ++ mask = &((struct sockaddr_in6*)ifa->ifa_netmask)->sin6_addr; ++ prefix = mask2prefix(mask); ++ ++ netmask(prefix, addr, &dest); ++ netmask(prefix, &host.addr6, &ip6); ++ ++ if (memcmp(&dest, &ip6, sizeof(struct in6_addr)) != 0) ++ continue; ++ ++ ret = ifa->ifa_name; ++ break; ++ } ++ } ++err: ++ return ret; ++} ++ ++void freeroutes(void) ++{ ++ if (ifa_list) ++ freeifaddrs(ifa_list); ++ ifa_list = NULL; ++} +--- systemd-210/src/core/mount-iface.h ++++ systemd-210/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 +@@ -0,0 +1,25 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++#pragma once ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Werner Fink ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++char *host2iface(const char *ip); ++void freeroutes(void); +--- systemd-210/src/core/mount.c ++++ systemd-210/src/core/mount.c 2014-03-03 12:13:23.406246117 +0000 +@@ -36,6 +36,7 @@ + #include "mkdir.h" + #include "path-util.h" + #include "mount-setup.h" ++#include "mount-iface.h" + #include "unit-name.h" + #include "dbus-mount.h" + #include "special.h" +@@ -1388,8 +1389,9 @@ static int mount_add_one( + _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; + bool load_extras = false; + MountParameters *p; +- bool delete, changed = false; ++ bool delete, changed = false, isnetwork; + Unit *u; ++ char *c; + int r; + + assert(m); +@@ -1414,6 +1416,8 @@ static int mount_add_one( + if (!e) + return -ENOMEM; + ++ isnetwork = fstype_is_network(fstype); ++ + u = manager_get_unit(m, e); + if (!u) { + delete = true; +@@ -1442,7 +1446,7 @@ static int mount_add_one( + if (m->running_as == SYSTEMD_SYSTEM) { + const char* target; + +- target = fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; ++ target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + + r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); + if (r < 0) +@@ -1519,6 +1523,32 @@ static int mount_add_one( + goto fail; + } + ++ if (isnetwork && (c = strrchr(p->what, ':')) && *(c+1) == '/') { ++ _cleanup_free_ char *opt = strdup(p->options); ++ char *addr; ++ ++ if (opt && (addr = strstr(opt, ",addr="))) { ++ char *colon, *iface; ++ ++ addr += 6; ++ if ((colon = strchr(addr, ','))) ++ *colon = '\0'; ++ ++ iface = host2iface(addr); ++ if (iface) { ++ _cleanup_free_ char* target = NULL; ++ if (asprintf(&target, "sys-subsystem-net-devices-%s.device", iface) < 0) ++ log_oom(); ++ else { ++ r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); ++ if (r < 0) ++ log_error_unit(u->id, "Failed to add dependency on %s, ignoring: %s", ++ target, strerror(-r)); ++ } ++ } ++ } ++ } ++ + if (changed) + unit_add_to_dbus_queue(u); + +@@ -1583,6 +1613,7 @@ static int mount_load_proc_self_mountinf + if (k < 0) + r = k; + } ++ freeroutes(); /* Just in case of using the routing table with host2iface() */ + + return r; + } +--- systemd-210/src/shared/util.c ++++ systemd-210/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 +@@ -1502,6 +1502,7 @@ bool fstype_is_network(const char *fstyp + "ncp\0" + "nfs\0" + "nfs4\0" ++ "afs\0" + "gfs\0" + "gfs2\0"; + diff --git a/0001-analyze-set-text-on-side-with-most-space.patch b/0001-analyze-set-text-on-side-with-most-space.patch deleted file mode 100644 index 6268160c..00000000 --- a/0001-analyze-set-text-on-side-with-most-space.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 95168f7d55181475946ad93db30255c4d709df03 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 01 Nov 2013 21:57:47 +0000 -Subject: analyze: plot: place the text on the side with most space - -Set the width of the svg to always fit the longest string -while taking its starting position into consideration. - -Place the text on the right while the starting point is -in the first half of the screen. After that we put it on -the left to save the svg from being wider that it has to. ---- -diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c -index 6bfe13d..8730723 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -509,7 +509,7 @@ static int analyze_plot(sd_bus *bus) { - m++; - - for (u = times; u < times + n; u++) { -- double len; -+ double text_start, text_width; - - if (u->ixt < boot->userspace_time || - u->ixt > boot->finish_time) { -@@ -517,10 +517,14 @@ static int analyze_plot(sd_bus *bus) { - u->name = NULL; - continue; - } -- len = ((boot->firmware_time + u->ixt) * SCALE_X) -- + (10.0 * strlen(u->name)); -- if (len > width) -- width = len; -+ -+ /* If the text cannot fit on the left side then -+ * increase the svg width so it fits on the right. -+ * TODO: calculate the text width more accurately */ -+ text_width = 8.0 * strlen(u->name); -+ text_start = (boot->firmware_time + u->ixt) * SCALE_X; -+ if (text_width > text_start && text_width + text_start > width) -+ width = text_width + text_start; - - if (u->iet > u->ixt && u->iet <= boot->finish_time - && u->aet == 0 && u->axt == 0) -@@ -608,7 +612,7 @@ static int analyze_plot(sd_bus *bus) { - svg_bar("active", boot->userspace_time, boot->finish_time, y); - svg_bar("generators", boot->generators_start_time, boot->generators_finish_time, y); - svg_bar("unitsload", boot->unitsload_start_time, boot->unitsload_finish_time, y); -- svg_text("left", boot->userspace_time, y, "systemd"); -+ svg_text(true, boot->userspace_time, y, "systemd"); - y++; - - for (u = times; u < times + n; u++) { -@@ -622,7 +626,8 @@ static int analyze_plot(sd_bus *bus) { - svg_bar("active", u->aet, u->axt, y); - svg_bar("deactivating", u->axt, u->iet, y); - -- b = u->ixt * SCALE_X > width * 2 / 3; -+ /* place the text on the left if we have passed the half of the svg width */ -+ b = u->ixt * SCALE_X < width / 2; - if (u->time) - svg_text(b, u->ixt, y, "%s (%s)", - u->name, format_timespan(ts, sizeof(ts), u->time, USEC_PER_MSEC)); -@@ -634,19 +639,19 @@ static int analyze_plot(sd_bus *bus) { - /* Legend */ - y++; - svg_bar("activating", 0, 300000, y); -- svg_text("right", 400000, y, "Activating"); -+ svg_text(true, 400000, y, "Activating"); - y++; - svg_bar("active", 0, 300000, y); -- svg_text("right", 400000, y, "Active"); -+ svg_text(true, 400000, y, "Active"); - y++; - svg_bar("deactivating", 0, 300000, y); -- svg_text("right", 400000, y, "Deactivating"); -+ svg_text(true, 400000, y, "Deactivating"); - y++; - svg_bar("generators", 0, 300000, y); -- svg_text("right", 400000, y, "Generators"); -+ svg_text(true, 400000, y, "Generators"); - y++; - svg_bar("unitsload", 0, 300000, y); -- svg_text("right", 400000, y, "Loading unit files"); -+ svg_text(true, 400000, y, "Loading unit files"); - y++; - - svg("\n\n"); --- -cgit v0.9.0.2-2-gbebe diff --git a/0001-analyze-set-white-background.patch b/0001-analyze-set-white-background.patch deleted file mode 100644 index 89062844..00000000 --- a/0001-analyze-set-white-background.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 418e37506e6a419a808a82081ca1616caa03a206 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Mon, 21 Oct 2013 19:29:23 +0000 -Subject: analyze: set white backgound - -In programs like eog and gimp the transparant background did not -look very good. - -https://bugs.freedesktop.org/show_bug.cgi?id=70720 ---- -diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c -index 26769d6..0cc4de7 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -507,6 +507,7 @@ static int analyze_plot(DBusConnection *bus) { - /* style sheet */ - svg("\n \n\n\n"); - -+ svg("\n"); - svg("%s", pretty_times); - svg("%s %s (%s %s) %s", - isempty(osname) ? "Linux" : osname, --- -cgit v0.9.0.2-2-gbebe diff --git a/0001-avoid-abort-due-timeout-at-user-service.patch b/0001-avoid-abort-due-timeout-at-user-service.patch new file mode 100644 index 00000000..e441beb2 --- /dev/null +++ b/0001-avoid-abort-due-timeout-at-user-service.patch @@ -0,0 +1,15 @@ +--- systemd-209/src/login/logind-session.c ++++ systemd-209/src/login/logind-session.c 2014-02-28 12:12:14.762736079 +0000 +@@ -525,6 +525,12 @@ int session_start(Session *s) { + if (r < 0) + return r; + ++ if (!s->user->slice) { ++ if (errno) ++ return -errno; ++ return -ESTALE; ++ } ++ + /* Create cgroup */ + r = session_start_scope(s); + if (r < 0) diff --git a/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch b/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch deleted file mode 100644 index 37291988..00000000 --- a/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 6fa7e1a944a2dbb89e794ad0f9da5d0fda5dc4a9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Jan 2014 13:38:55 +0100 -Subject: [PATCH 1/3] core: introduce new KillMode=mixed which sends SIGTERM - only to the main process, but SIGKILL to all daemon processes - -This should fix some race with terminating systemd --user, where the -system systemd instance might race against the user systemd instance -when sending SIGTERM. ---- - man/systemd.kill.xml | 77 +++++++++++++++++++++++++++++++++----------------- - src/core/kill.c | 1 + - src/core/kill.h | 1 + - src/core/unit.c | 3 +- - units/user@.service.in | 1 + - 5 files changed, 56 insertions(+), 27 deletions(-) - -diff --git a/man/systemd.kill.xml b/man/systemd.kill.xml -index 1b10fba..a4009aa 100644 ---- a/man/systemd.kill.xml -+++ b/man/systemd.kill.xml -@@ -44,39 +44,44 @@ - - - systemd.kill -- Kill environment configuration -+ Process killing procedure -+ configuration - - - - service.service, - socket.socket, - mount.mount, -- swap.swap -+ swap.swap, -+ scope.scope - - - - Description - - Unit configuration files for services, sockets, -- mount points and swap devices share a subset of -- configuration options which define the process killing -- parameters of spawned processes. -+ mount points, swap devices and scopes share a subset -+ of configuration options which define the -+ killing procedure of processes belonging to the unit. - - This man page lists the configuration options -- shared by these four unit types. See -+ shared by these five unit types. See - systemd.unit5 -- for the common options of all unit configuration -- files, and -+ for the common options shared by all unit -+ configuration files, and - systemd.service5, - systemd.socket5, -- systemd.swap5 -- and -+ systemd.swap5, - systemd.mount5 -- for more information on the specific unit -- configuration files. The execution specific -+ and -+ systemd.scope5 -+ for more information on the configuration file options -+ specific to each unit type. -+ -+ The kill procedure - configuration options are configured in the [Service], -- [Socket], [Mount], or [Swap] section, depending on the unit -- type. -+ [Socket], [Mount] or [Swap] section, depending on the -+ unit type. - - - -@@ -87,32 +92,40 @@ - - KillMode= - Specifies how -- processes of this service shall be -+ processes of this unit shall be - killed. One of - , - , -+ , - . - - If set to - , all - remaining processes in the control -- group of this unit will be terminated -- on unit stop (for services: after the -+ group of this unit will be killed on -+ unit stop (for services: after the - stop command is executed, as - configured with - ExecStop=). If set - to , only the - main process itself is killed. If set -- to , no process is -+ to the -+ SIGTERM signal -+ (see below) is sent to the main -+ process while the subsequent -+ SIGKILL signal -+ (see below) is sent to all remaining -+ processes of the unit's control -+ group. If set to -+ , no process is - killed. In this case only the stop -- command will be executed on unit -- stop, but no process be killed -+ command will be executed on unit stop, -+ but no process be killed - otherwise. Processes remaining alive - after stop are left in their control - group and the control group continues - to exist after stop unless it is -- empty. Defaults to -- . -+ empty. - - Processes will first be - terminated via -@@ -133,14 +146,24 @@ - option). See - kill2 - for more -- information. -+ information. -+ -+ Defaults to -+ . - - - - KillSignal= - Specifies which signal -- to use when killing a -- service. Defaults to SIGTERM. -+ to use when killing a service. This -+ controls the signal that is sent as -+ first step of shutting down a unit -+ (see above), and is usually followed -+ by SIGKILL (see -+ above and below). For a list of valid -+ signals, see -+ signal7. Defaults -+ to SIGTERM. - - - -@@ -184,7 +207,9 @@ - systemd.swap5, - systemd.mount5, - systemd.exec5, -- systemd.directives7 -+ systemd.directives7, -+ kill2, -+ signal7 - - - -diff --git a/src/core/kill.c b/src/core/kill.c -index ea947c2..4271346 100644 ---- a/src/core/kill.c -+++ b/src/core/kill.c -@@ -52,6 +52,7 @@ void kill_context_dump(KillContext *c, FILE *f, const char *prefix) { - static const char* const kill_mode_table[_KILL_MODE_MAX] = { - [KILL_CONTROL_GROUP] = "control-group", - [KILL_PROCESS] = "process", -+ [KILL_MIXED] = "mixed", - [KILL_NONE] = "none" - }; - -diff --git a/src/core/kill.h b/src/core/kill.h -index 41773f0..d5f125f 100644 ---- a/src/core/kill.h -+++ b/src/core/kill.h -@@ -32,6 +32,7 @@ typedef enum KillMode { - /* The kill mode is a property of a unit. */ - KILL_CONTROL_GROUP = 0, - KILL_PROCESS, -+ KILL_MIXED, - KILL_NONE, - _KILL_MODE_MAX, - _KILL_MODE_INVALID = -1 -diff --git a/src/core/unit.c b/src/core/unit.c -index 4b97710..0b10e57 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -3007,7 +3007,7 @@ int unit_kill_context( - } - } - -- if (c->kill_mode == KILL_CONTROL_GROUP && u->cgroup_path) { -+ if ((c->kill_mode == KILL_CONTROL_GROUP || (c->kill_mode == KILL_MIXED && sigkill)) && u->cgroup_path) { - _cleanup_set_free_ Set *pid_set = NULL; - - /* Exclude the main/control pids from being killed via the cgroup */ -@@ -3021,6 +3021,7 @@ int unit_kill_context( - log_warning_unit(u->id, "Failed to kill control group: %s", strerror(-r)); - } else if (r > 0) { - wait_for_exit = true; -+ - if (c->send_sighup) { - set_free(pid_set); - -diff --git a/units/user@.service.in b/units/user@.service.in -index 3718a57..3bb8696 100644 ---- a/units/user@.service.in -+++ b/units/user@.service.in -@@ -17,3 +17,4 @@ Environment=SHELL=%s - ExecStart=-@rootlibexecdir@/systemd --user - Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket - Slice=user-%i.slice -+KillMode=mixed --- -1.8.4 - diff --git a/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch b/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch deleted file mode 100644 index 40479ead..00000000 --- a/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch +++ /dev/null @@ -1,329 +0,0 @@ -From d420282b28f50720e233ccb1c02547c562195653 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 26 Nov 2013 01:39:53 +0100 -Subject: [PATCH] core: replace OnFailureIsolate= setting by a more generic - OnFailureJobMode= setting and make use of it where applicable - ---- - man/systemd.unit.xml | 40 +++++++++++++++++++++++++---------- - src/core/dbus-unit.c | 3 ++- - src/core/job.h | 3 +-- - src/core/load-fragment-gperf.gperf.m4 | 3 ++- - src/core/load-fragment.c | 31 +++++++++++++++++++++++++++ - src/core/load-fragment.h | 2 ++ - src/core/unit.c | 11 +++++----- - src/core/unit.h | 4 ++-- - units/initrd-cleanup.service.in | 1 + - units/initrd-fs.target | 2 +- - units/initrd-parse-etc.service.in | 1 + - units/initrd-root-fs.target | 2 +- - units/initrd-switch-root.service.in | 1 + - units/initrd.target | 2 +- - units/local-fs.target | 2 +- - 15 files changed, 82 insertions(+), 26 deletions(-) - -Index: systemd-208/man/systemd.unit.xml -=================================================================== ---- systemd-208.orig/man/systemd.unit.xml -+++ systemd-208/man/systemd.unit.xml -@@ -669,19 +669,37 @@ - - - -- OnFailureIsolate= -+ OnFailureJobMode= - -- Takes a boolean -- argument. If , the -- unit listed in -+ Takes a value of -+ fail, -+ replace, -+ replace-irreversibly -+ or -+ isolate. Defaults -+ to -+ replace. Specifies -+ how the units listed in - OnFailure= will be -- enqueued in isolation mode, i.e. all -- units that are not its dependency will -- be stopped. If this is set, only a -+ enqueued. If set to -+ fail and -+ contradicting jobs are already queued, -+ cause the activation to fail. If set -+ to replace and -+ contradicting jobs area already -+ queued, replace -+ those. replace-irreversibly -+ is similar to -+ replace, however, -+ creates jobs that cannot be reversed -+ unless they finished or are explicitly -+ canceled. isolate -+ may be used to terminate all other -+ units but the specified one. If -+ this is set to -+ isolate, only a - single unit may be listed in -- OnFailure=. Defaults -- to -- . -+ OnFailure=.. - - - -Index: systemd-208/src/core/dbus-unit.c -=================================================================== ---- systemd-208.orig/src/core/dbus-unit.c -+++ systemd-208/src/core/dbus-unit.c -@@ -133,6 +133,7 @@ static int bus_unit_append_description(D - } - - static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_load_state, unit_load_state, UnitLoadState); -+static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_job_mode, job_mode, JobMode); - - static int bus_unit_append_active_state(DBusMessageIter *i, const char *property, void *data) { - Unit *u = data; -@@ -1079,7 +1080,7 @@ const BusProperty bus_unit_properties[] - { "RefuseManualStop", bus_property_append_bool, "b", offsetof(Unit, refuse_manual_stop) }, - { "AllowIsolate", bus_property_append_bool, "b", offsetof(Unit, allow_isolate) }, - { "DefaultDependencies", bus_property_append_bool, "b", offsetof(Unit, default_dependencies) }, -- { "OnFailureIsolate", bus_property_append_bool, "b", offsetof(Unit, on_failure_isolate) }, -+ { "OnFailureJobMode", bus_unit_append_job_mode, "s", offsetof(Unit, on_failure_job_mode) }, - { "IgnoreOnIsolate", bus_property_append_bool, "b", offsetof(Unit, ignore_on_isolate) }, - { "IgnoreOnSnapshot", bus_property_append_bool, "b", offsetof(Unit, ignore_on_snapshot) }, - { "NeedDaemonReload", bus_unit_append_need_daemon_reload, "b", 0 }, -Index: systemd-208/src/core/job.h -=================================================================== ---- systemd-208.orig/src/core/job.h -+++ systemd-208/src/core/job.h -@@ -83,7 +83,7 @@ enum JobState { - enum JobMode { - JOB_FAIL, /* Fail if a conflicting job is already queued */ - JOB_REPLACE, /* Replace an existing conflicting job */ -- JOB_REPLACE_IRREVERSIBLY, /* Like JOB_REPLACE + produce irreversible jobs */ -+ JOB_REPLACE_IRREVERSIBLY,/* Like JOB_REPLACE + produce irreversible jobs */ - JOB_ISOLATE, /* Start a unit, and stop all others */ - JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering dependencies */ - JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */ -Index: systemd-208/src/core/load-fragment-gperf.gperf.m4 -=================================================================== ---- systemd-208.orig/src/core/load-fragment-gperf.gperf.m4 -+++ systemd-208/src/core/load-fragment-gperf.gperf.m4 -@@ -122,7 +122,8 @@ Unit.RefuseManualStart, config_ - Unit.RefuseManualStop, config_parse_bool, 0, offsetof(Unit, refuse_manual_stop) - Unit.AllowIsolate, config_parse_bool, 0, offsetof(Unit, allow_isolate) - Unit.DefaultDependencies, config_parse_bool, 0, offsetof(Unit, default_dependencies) --Unit.OnFailureIsolate, config_parse_bool, 0, offsetof(Unit, on_failure_isolate) -+Unit.OnFailureJobMode, config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode) -+Unit.OnFailureIsolate, config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode) - Unit.IgnoreOnIsolate, config_parse_bool, 0, offsetof(Unit, ignore_on_isolate) - Unit.IgnoreOnSnapshot, config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot) - Unit.JobTimeoutSec, config_parse_sec, 0, offsetof(Unit, job_timeout) -Index: systemd-208/src/core/load-fragment.c -=================================================================== ---- systemd-208.orig/src/core/load-fragment.c -+++ systemd-208/src/core/load-fragment.c -@@ -2314,6 +2314,36 @@ int config_parse_blockio_bandwidth( - return 0; - } - -+DEFINE_CONFIG_PARSE_ENUM(config_parse_job_mode, job_mode, JobMode, "Failed to parse job mode"); -+ -+int config_parse_job_mode_isolate( -+ const char *unit, -+ const char *filename, -+ unsigned line, -+ const char *section, -+ const char *lvalue, -+ int ltype, -+ const char *rvalue, -+ void *data, -+ void *userdata) { -+ -+ JobMode *m = data; -+ int r; -+ -+ assert(filename); -+ assert(lvalue); -+ assert(rvalue); -+ -+ r = parse_boolean(rvalue); -+ if (r < 0) { -+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse boolean, ignoring: %s", rvalue); -+ return 0; -+ } -+ -+ *m = r ? JOB_ISOLATE : JOB_REPLACE; -+ return 0; -+} -+ - #define FOLLOW_MAX 8 - - static int open_follow(char **filename, FILE **_f, Set *names, char **_final) { -Index: systemd-208/src/core/load-fragment.h -=================================================================== ---- systemd-208.orig/src/core/load-fragment.h -+++ systemd-208/src/core/load-fragment.h -@@ -83,6 +83,8 @@ int config_parse_device_allow(const char - int config_parse_blockio_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); - int config_parse_blockio_device_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); - int config_parse_blockio_bandwidth(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -+int config_parse_job_mode(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -+int config_parse_job_mode_isolate(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); - - /* gperf prototypes */ - const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, unsigned length); -Index: systemd-208/src/core/unit.c -=================================================================== ---- systemd-208.orig/src/core/unit.c -+++ systemd-208/src/core/unit.c -@@ -85,6 +85,7 @@ Unit *unit_new(Manager *m, size_t size) - u->deserialized_job = _JOB_TYPE_INVALID; - u->default_dependencies = true; - u->unit_file_state = _UNIT_FILE_STATE_INVALID; -+ u->on_failure_job_mode = JOB_REPLACE; - - return u; - } -@@ -807,14 +808,14 @@ void unit_dump(Unit *u, FILE *f, const c - "%s\tRefuseManualStart: %s\n" - "%s\tRefuseManualStop: %s\n" - "%s\tDefaultDependencies: %s\n" -- "%s\tOnFailureIsolate: %s\n" -+ "%s\tOnFailureJobMode: %s\n" - "%s\tIgnoreOnIsolate: %s\n" - "%s\tIgnoreOnSnapshot: %s\n", - prefix, yes_no(u->stop_when_unneeded), - prefix, yes_no(u->refuse_manual_start), - prefix, yes_no(u->refuse_manual_stop), - prefix, yes_no(u->default_dependencies), -- prefix, yes_no(u->on_failure_isolate), -+ prefix, job_mode_to_string(u->on_failure_job_mode), - prefix, yes_no(u->ignore_on_isolate), - prefix, yes_no(u->ignore_on_snapshot)); - -@@ -985,11 +986,11 @@ int unit_load(Unit *u) { - if (r < 0) - goto fail; - -- if (u->on_failure_isolate && -+ if (u->on_failure_job_mode == JOB_ISOLATE && - set_size(u->dependencies[UNIT_ON_FAILURE]) > 1) { - - log_error_unit(u->id, -- "More than one OnFailure= dependencies specified for %s but OnFailureIsolate= enabled. Refusing.", u->id); -+ "More than one OnFailure= dependencies specified for %s but OnFailureJobMode=isolate set. Refusing.", u->id); - - r = -EINVAL; - goto fail; -@@ -1394,7 +1395,7 @@ void unit_start_on_failure(Unit *u) { - SET_FOREACH(other, u->dependencies[UNIT_ON_FAILURE], i) { - int r; - -- r = manager_add_job(u->manager, JOB_START, other, u->on_failure_isolate ? JOB_ISOLATE : JOB_REPLACE, true, NULL, NULL); -+ r = manager_add_job(u->manager, JOB_START, other, u->on_failure_job_mode, true, NULL, NULL); - if (r < 0) - log_error_unit(u->id, "Failed to enqueue OnFailure= job: %s", strerror(-r)); - } -Index: systemd-208/src/core/unit.h -=================================================================== ---- systemd-208.orig/src/core/unit.h -+++ systemd-208/src/core/unit.h -@@ -228,8 +228,8 @@ struct Unit { - /* Allow isolation requests */ - bool allow_isolate; - -- /* Isolate OnFailure unit */ -- bool on_failure_isolate; -+ /* How to start OnFailure units */ -+ JobMode on_failure_job_mode; - - /* Ignore this unit when isolating */ - bool ignore_on_isolate; -Index: systemd-208/units/initrd-cleanup.service.in -=================================================================== ---- systemd-208.orig/units/initrd-cleanup.service.in -+++ systemd-208/units/initrd-cleanup.service.in -@@ -10,6 +10,7 @@ Description=Cleaning Up and Shutting Dow - DefaultDependencies=no - ConditionPathExists=/etc/initrd-release - OnFailure=emergency.target -+OnFailureJobMode=replace-irreversibly - After=initrd-root-fs.target initrd-fs.target initrd.target - - [Service] -Index: systemd-208/units/initrd-fs.target -=================================================================== ---- systemd-208.orig/units/initrd-fs.target -+++ systemd-208/units/initrd-fs.target -@@ -9,7 +9,7 @@ - Description=Initrd File Systems - Documentation=man:systemd.special(7) - OnFailure=emergency.target --OnFailureIsolate=yes -+OnFailureJobMode=replace-irreversibly - ConditionPathExists=/etc/initrd-release - After=initrd-parse-etc.service - DefaultDependencies=no -Index: systemd-208/units/initrd-parse-etc.service.in -=================================================================== ---- systemd-208.orig/units/initrd-parse-etc.service.in -+++ systemd-208/units/initrd-parse-etc.service.in -@@ -11,6 +11,7 @@ DefaultDependencies=no - Requires=initrd-root-fs.target - After=initrd-root-fs.target - OnFailure=emergency.target -+OnFailureJobMode=replace-irreversibly - ConditionPathExists=/etc/initrd-release - - [Service] -Index: systemd-208/units/initrd-root-fs.target -=================================================================== ---- systemd-208.orig/units/initrd-root-fs.target -+++ systemd-208/units/initrd-root-fs.target -@@ -10,6 +10,6 @@ Description=Initrd Root File System - Documentation=man:systemd.special(7) - ConditionPathExists=/etc/initrd-release - OnFailure=emergency.target --OnFailureIsolate=yes -+OnFailureJobMode=replace-irreversibly - DefaultDependencies=no - Conflicts=shutdown.target -Index: systemd-208/units/initrd-switch-root.service.in -=================================================================== ---- systemd-208.orig/units/initrd-switch-root.service.in -+++ systemd-208/units/initrd-switch-root.service.in -@@ -10,6 +10,7 @@ Description=Switch Root - DefaultDependencies=no - ConditionPathExists=/etc/initrd-release - OnFailure=emergency.target -+OnFailureJobMode=replace-irreversibly - AllowIsolate=yes - - [Service] -Index: systemd-208/units/initrd.target -=================================================================== ---- systemd-208.orig/units/initrd.target -+++ systemd-208/units/initrd.target -@@ -9,7 +9,7 @@ - Description=Initrd Default Target - Documentation=man:systemd.special(7) - OnFailure=emergency.target --OnFailureIsolate=yes -+OnFailureJobMode=replace-irreversibly - ConditionPathExists=/etc/initrd-release - Requires=basic.target - Wants=initrd-root-fs.target initrd-fs.target initrd-parse-etc.service -Index: systemd-208/units/local-fs.target -=================================================================== ---- systemd-208.orig/units/local-fs.target -+++ systemd-208/units/local-fs.target -@@ -12,4 +12,4 @@ After=local-fs-pre.target - DefaultDependencies=no - Conflicts=shutdown.target - OnFailure=emergency.target --OnFailureIsolate=no -+OnFailureJobMode=replace-irreversibly diff --git a/0001-core-unify-the-way-we-denote-serialization-attribute.patch b/0001-core-unify-the-way-we-denote-serialization-attribute.patch deleted file mode 100644 index e33e45d8..00000000 --- a/0001-core-unify-the-way-we-denote-serialization-attribute.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8d1a28020409ee4afea6ef8c1c4d3522a209284e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 9 Oct 2013 00:13:55 +0200 -Subject: [PATCH] core: unify the way we denote serialization attributes - ---- - src/core/service.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/core/service.c b/src/core/service.c -index 98b1599..96ed2d3 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2652,7 +2652,7 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) { - unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir); - - if (s->forbid_restart) -- unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart)); -+ unit_serialize_item(u, f, "forbid-restart", yes_no(s->forbid_restart)); - - return 0; - } -@@ -2790,12 +2790,12 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, - return log_oom(); - - s->exec_context.var_tmp_dir = t; -- } else if (streq(key, "forbid_restart")) { -+ } else if (streq(key, "forbid-restart")) { - int b; - - b = parse_boolean(value); - if (b < 0) -- log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value); -+ log_debug_unit(u->id, "Failed to parse forbid-restart value %s", value); - else - s->forbid_restart = b; - } else --- -1.8.4 - diff --git a/0001-dbus-common-avoid-leak-in-error-path.patch b/0001-dbus-common-avoid-leak-in-error-path.patch deleted file mode 100644 index e2ac93f4..00000000 --- a/0001-dbus-common-avoid-leak-in-error-path.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 74dcc2df7b2a340c3e1fe9e61e5c8deb324c83d7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Oct 2013 19:33:20 -0400 -Subject: [PATCH] dbus-common: avoid leak in error path - -src/shared/dbus-common.c:968:33: warning: Potential leak of memory pointed to by 'l' - return -EINVAL; - ^~~~~~ ---- - src/shared/dbus-common.c | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c -index c727cae..3ba2d87 100644 ---- a/src/shared/dbus-common.c -+++ b/src/shared/dbus-common.c -@@ -934,7 +934,7 @@ int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l) { - int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { - DBusMessageIter sub, sub2; - unsigned n = 0, i = 0; -- char **l; -+ _cleanup_strv_free_ char **l = NULL; - - assert(iter); - assert(_l); -@@ -953,6 +953,7 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { - l = new(char*, n*2+1); - if (!l) - return -ENOMEM; -+ l[0] = NULL; /* make sure that l is properly terminated at all times */ - - dbus_message_iter_recurse(iter, &sub); - -@@ -968,26 +969,25 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { - return -EINVAL; - - l[i] = strdup(a); -- if (!l[i]) { -- strv_free(l); -+ if (!l[i]) - return -ENOMEM; -- } -+ i++; - -- l[++i] = strdup(b); -- if (!l[i]) { -- strv_free(l); -+ l[i] = strdup(b); -+ if (!l[i]) - return -ENOMEM; -- } -- - i++; -+ - dbus_message_iter_next(&sub); - } - - assert(i == n*2); - l[i] = NULL; - -- if (_l) -+ if (_l) { - *_l = l; -+ l = NULL; /* avoid freeing */ -+ } - - return 0; - } --- -1.8.4 - diff --git a/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch b/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch deleted file mode 100644 index 53e8253f..00000000 --- a/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6c7980093c4e39d07bf06484f96f489e236c7c29 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 10 Oct 2013 01:38:11 +0200 -Subject: [PATCH] do not accept "garbage" from acpi firmware performance data - (FPDT) - -00000000 46 42 50 54 38 00 00 00 02 00 30 02 00 00 00 00 |FBPT8.....0.....| -00000010 23 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |#E..............| -00000020 f5 6a 51 00 00 00 00 00 00 00 00 00 00 00 00 00 |.jQ.............| -00000030 00 00 00 00 00 00 00 00 70 74 61 6c 58 00 00 00 |........ptalX...| ---- - src/shared/acpi-fpdt.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c -index af58c7c..75648b4 100644 ---- a/src/shared/acpi-fpdt.c -+++ b/src/shared/acpi-fpdt.c -@@ -146,6 +146,11 @@ int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { - if (brec.type != ACPI_FPDT_BOOT_REC) - return -EINVAL; - -+ if (brec.startup_start == 0 || brec.exit_services_exit < brec.startup_start) -+ return -EINVAL; -+ if (brec.exit_services_exit > NSEC_PER_HOUR) -+ return -EINVAL; -+ - if (loader_start) - *loader_start = brec.startup_start / 1000; - if (loader_exit) --- -1.8.4 - diff --git a/0001-drop-ins-check-return-value.patch b/0001-drop-ins-check-return-value.patch deleted file mode 100644 index 35a0f708..00000000 --- a/0001-drop-ins-check-return-value.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6891529fe1176c046ece579807ff48e3191692f3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Oct 2013 19:33:36 -0400 -Subject: [PATCH] drop-ins: check return value - -If the function failed, nothing serious would happen -because unlink would probably return EFAULT, but this -would obscure the real error and is a bit sloppy. ---- - src/core/unit.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/core/unit.c b/src/core/unit.c -index 4b97710..1db7d06 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2908,6 +2908,9 @@ int unit_remove_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name) { - return 0; - - r = drop_in_file(u, mode, name, &p, &q); -+ if (r < 0) -+ return r; -+ - if (unlink(q) < 0) - r = errno == ENOENT ? 0 : -errno; - else --- -1.8.4 - diff --git a/0001-gpt-auto-generator-exit-immediately-if-in-container.patch b/0001-gpt-auto-generator-exit-immediately-if-in-container.patch deleted file mode 100644 index 4d1fee23..00000000 --- a/0001-gpt-auto-generator-exit-immediately-if-in-container.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 9a5cb1371b6d8b0a04bd08665bcf9b06cb40c64c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 3 Oct 2013 22:13:01 -0400 -Subject: [PATCH] gpt-auto-generator: exit immediately if in container - -Otherwise we get an ugly warning when running systemd in -a container. ---- - src/gpt-auto-generator/gpt-auto-generator.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c -index ca54925..d2b4213 100644 ---- a/src/gpt-auto-generator/gpt-auto-generator.c -+++ b/src/gpt-auto-generator/gpt-auto-generator.c -@@ -38,6 +38,7 @@ - #include "libudev.h" - #include "special.h" - #include "unit-name.h" -+#include "virt.h" - - /* TODO: - * -@@ -481,6 +482,13 @@ int main(int argc, char *argv[]) { - umask(0022); - - if (in_initrd()) { -+ log_debug("In initrd, exiting."); -+ r = 0; -+ goto finish; -+ } -+ -+ if (detect_container(NULL) > 0) { -+ log_debug("In a container, exiting."); - r = 0; - goto finish; - } --- -1.8.4 - diff --git a/0001-journald-fix-minor-memory-leak.patch b/0001-journald-fix-minor-memory-leak.patch deleted file mode 100644 index 10df2c01..00000000 --- a/0001-journald-fix-minor-memory-leak.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2ee0591d12b9e725c4585502285fd91cde682d9b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 9 Oct 2013 04:03:45 +0200 -Subject: [PATCH] journald: fix minor memory leak - ---- - src/journal/journal-vacuum.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c -index c73ad8f..8d5effb 100644 ---- a/src/journal/journal-vacuum.c -+++ b/src/journal/journal-vacuum.c -@@ -278,6 +278,8 @@ int journal_directory_vacuum( - } else if (errno != ENOENT) - log_warning("Failed to delete %s/%s: %m", directory, p); - -+ free(p); -+ - continue; - } - --- -1.8.4 - diff --git a/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch b/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch deleted file mode 100644 index 0ed6caa1..00000000 --- a/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2b98f75a63e6022bf74a7d678c47faa5208c794f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 9 Oct 2013 22:13:13 -0400 -Subject: [PATCH] journald: remove rotated file from hashmap when rotation - fails - -Before, when the user journal file was rotated, journal_file_rotate -could close the old file and fail to open the new file. In that -case, we would leave the old (deallocated) file in the hashmap. -On subsequent accesses, we could retrieve this stale entry, leading -to a segfault. - -When journal_file_rotate fails with the file pointer set to 0, -old file is certainly gone, and cannot be used anymore. - -https://bugzilla.redhat.com/show_bug.cgi?id=890463 ---- - src/journal/journald-server.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c -index 4f47eb1..e03e413 100644 ---- a/src/journal/journald-server.c -+++ b/src/journal/journald-server.c -@@ -321,8 +321,10 @@ void server_rotate(Server *s) { - if (r < 0) - if (f) - log_error("Failed to rotate %s: %s", f->path, strerror(-r)); -- else -+ else { - log_error("Failed to create user journal: %s", strerror(-r)); -+ hashmap_remove(s->user_journals, k); -+ } - else { - hashmap_replace(s->user_journals, k, f); - server_fix_perms(s, f, PTR_TO_UINT32(k)); --- -1.8.4 - diff --git a/0001-login-fix-invalid-free-in-sd_session_get_vt.patch b/0001-login-fix-invalid-free-in-sd_session_get_vt.patch deleted file mode 100644 index 7a7551ec..00000000 --- a/0001-login-fix-invalid-free-in-sd_session_get_vt.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3f4fee033bf0f623de74f3e8a14c42b8ff81c36e Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 10 Oct 2013 13:09:37 +0200 -Subject: [PATCH] login: fix invalid free() in sd_session_get_vt() - -We need to clear variables markes as _cleanup_free_. Otherwise, our -error-paths might corrupt random memory. ---- - src/login/sd-login.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/sd-login.c b/src/login/sd-login.c -index 71d8c29..6c27dfe 100644 ---- a/src/login/sd-login.c -+++ b/src/login/sd-login.c -@@ -350,7 +350,7 @@ _public_ int sd_session_get_tty(const char *session, char **tty) { - } - - _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) { -- _cleanup_free_ char *vtnr_string; -+ _cleanup_free_ char *vtnr_string = NULL; - unsigned u; - int r; - --- -1.8.4 - diff --git a/0001-login-fix-pos-array-allocation.patch b/0001-login-fix-pos-array-allocation.patch new file mode 100644 index 00000000..2549d220 --- /dev/null +++ b/0001-login-fix-pos-array-allocation.patch @@ -0,0 +1,52 @@ +From a1937e679f76758635d295287398abe526de2522 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 25 Feb 2014 12:20:25 +0100 +Subject: [PATCH] login: fix pos-array allocation + +GREEDY_REALLOC takes a pointer to the real size, not the array-width as +argument. Therefore, our array is currently way to small to keep the seat +positions. + +Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store +the array-width instead of array-size. +--- + src/login/logind-seat.c | 2 +- + src/shared/util.h | 9 +++++++++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 631be5f..36ec7ed 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { + if (seat_has_vts(s)) + pos = session->vtnr; + +- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) ++ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) + return; + + seat_evict_position(s, session); +diff --git src/shared/util.h src/shared/util.h +index 9913fce..78b1444 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); + #define GREEDY_REALLOC0(array, allocated, need) \ + greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) + ++#define GREEDY_REALLOC0_T(array, count, need) \ ++ ({ \ ++ size_t _size = (count) * sizeof((array)[0]); \ ++ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ ++ if (_ptr) \ ++ (count) = _size / sizeof((array)[0]); \ ++ _ptr; \ ++ }) ++ + static inline void _reset_errno_(int *saved_errno) { + errno = *saved_errno; + } +-- +1.7.9.2 + diff --git a/0001-login-make-sd_session_get_vt-actually-work.patch b/0001-login-make-sd_session_get_vt-actually-work.patch deleted file mode 100644 index 49a0a13c..00000000 --- a/0001-login-make-sd_session_get_vt-actually-work.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0581dac2c146cef0f55841a4c136dc48409c8eaa Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 10 Oct 2013 13:11:27 +0200 -Subject: [PATCH] login: make sd_session_get_vt() actually work - -We use VTNR, not VTNr as key. Until now sd_session_get_vt() just returns -an error. ---- - src/login/sd-login.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/sd-login.c b/src/login/sd-login.c -index 6c27dfe..7e25041 100644 ---- a/src/login/sd-login.c -+++ b/src/login/sd-login.c -@@ -354,7 +354,7 @@ _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) { - unsigned u; - int r; - -- r = session_get_string(session, "VTNr", &vtnr_string); -+ r = session_get_string(session, "VTNR", &vtnr_string); - if (r < 0) - return r; - --- -1.8.4 - diff --git a/0001-logind-fix-bus-introspection-data-for-TakeControl.patch b/0001-logind-fix-bus-introspection-data-for-TakeControl.patch deleted file mode 100644 index 829333e3..00000000 --- a/0001-logind-fix-bus-introspection-data-for-TakeControl.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 660ea9620f7b8f99d08a2770d4e81acfd8aea02e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 4 Oct 2013 21:16:40 +0200 -Subject: [PATCH] logind: fix bus introspection data for TakeControl() - ---- - src/login/logind-session-dbus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c -index 5f6bafb..be4e01c 100644 ---- a/src/login/logind-session-dbus.c -+++ b/src/login/logind-session-dbus.c -@@ -41,7 +41,7 @@ - " \n" \ - " \n" \ - " \n" \ -- " \n" \ -+ " \n" \ - " \n" \ - " \n" \ - " \n" \ --- -1.8.4 - diff --git a/0001-logind-garbage-collect-stale-users.patch b/0001-logind-garbage-collect-stale-users.patch deleted file mode 100644 index fd91e8b2..00000000 --- a/0001-logind-garbage-collect-stale-users.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 63966da86d8e71b1f3f2b57d5448770d526421f9 Mon Sep 17 00:00:00 2001 -From: Thomas Bächler -Date: Sun, 15 Dec 2013 11:06:37 +0000 -Subject: login: Don't stop a running user manager from garbage-collecting the user. - -With the current logic, a user will never be garbage-collected, since its -manager will always be around. Change the logic such that a user is -garbage-collected when it has no sessions and linger is disabled. ---- -diff --git a/src/login/logind-user.c b/src/login/logind-user.c -index 6ba8d98..441e086 100644 ---- a/src/login/logind-user.c -+++ b/src/login/logind-user.c -@@ -629,12 +629,6 @@ int user_check_gc(User *u, bool drop_not - if (u->slice_job || u->service_job) - return 1; - -- if (u->slice && manager_unit_is_active(u->manager, u->slice) != 0) -- return 1; -- -- if (u->service && manager_unit_is_active(u->manager, u->service) != 0) -- return 1; -- - return 0; - } - --- -cgit v0.9.0.2-2-gbebe diff --git a/0001-make-209-working-on-older-dist.patch b/0001-make-209-working-on-older-dist.patch new file mode 100644 index 00000000..63fbd03b --- /dev/null +++ b/0001-make-209-working-on-older-dist.patch @@ -0,0 +1,79 @@ +--- systemd-209/units/kmod-static-nodes.service.in ++++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 +@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu + [Service] + Type=oneshot + RemainAfterExit=yes ++ExecStartPre=@MKDIR_P@ /run/tmpfiles.d + ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf +--- systemd-209/configure.ac ++++ systemd-209/configure.ac 2014-02-28 17:14:14.866235643 +0000 +@@ -300,9 +300,9 @@ AC_ARG_ENABLE(kmod, AS_HELP_STRING([--di + if test "x$enable_kmod" != "xno"; then + PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no) + if test "x$have_kmod" = "xyes"; then +- PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ], ++ PKG_CHECK_MODULES(KMOD, [ libkmod >= 14 ], + [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])], +- AC_MSG_ERROR([*** kmod version >= 15 not found])) ++ AC_MSG_ERROR([*** kmod version >= 14 not found])) + fi + if test "x$have_kmod" = xno -a "x$enable_kmod" = xyes; then + AC_MSG_ERROR([*** kmod support requested, but libraries not found]) +--- systemd-209/configure ++++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 +@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then + pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then + pkg_cv_KMOD_LIBS="$KMOD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16042,18 +16042,18 @@ else + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + else +- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$KMOD_PKG_ERRORS" >&5 + +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + else + KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS + KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/0001-make-fortify-happy-with-ppoll.patch b/0001-make-fortify-happy-with-ppoll.patch new file mode 100644 index 00000000..ed27a725 --- /dev/null +++ b/0001-make-fortify-happy-with-ppoll.patch @@ -0,0 +1,55 @@ +--- systemd-209/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-209/src/libsystemd/sd-bus/sd-bus.c 2014-02-28 11:08:21.354235373 +0000 +@@ -2548,7 +2548,7 @@ static int bus_poll(sd_bus *bus, bool ne + n = 2; + } + +- r = ppoll(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); ++ r = __ppoll_alias(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); + if (r < 0) + return -errno; + +--- systemd-209/src/core/hostname-setup.c ++++ systemd-209/src/core/hostname-setup.c 2014-02-28 11:14:51.594832792 +0000 +@@ -50,8 +50,8 @@ static int read_and_strip_hostname(const + } + + /* strip any leftover of a domain name */ +- if (domain = strchr(s, '.')) { +- *domain = NULL; ++ if ((domain = strchr(s, '.'))) { ++ *domain = '\0'; + } + + *hn = s; +--- systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-02-28 11:41:42.254735820 +0000 +@@ -142,7 +142,7 @@ static int ask_password_plymouth( + goto finish; + } + +- if ((j = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { ++ if ((j = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { + + if (errno == EINTR) + continue; +@@ -595,7 +595,7 @@ static int watch_passwords(void) { + if ((r = show_passwords()) < 0) + log_error("Failed to show password: %s", strerror(-r)); + +- if (poll(pollfd, _FD_MAX, -1) < 0) { ++ if (__poll_alias(pollfd, _FD_MAX, -1) < 0) { + + if (errno == EINTR) + continue; +--- systemd-209/src/shared/ask-password-api.c ++++ systemd-209/src/shared/ask-password-api.c 2014-02-28 11:47:21.754234675 +0000 +@@ -138,7 +138,7 @@ int ask_password_tty( + goto finish; + } + +- if ((k = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { ++ if ((k = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { + + if (errno == EINTR) + continue; diff --git a/0001-manager-when-verifying-whether-clients-may-change-en.patch b/0001-manager-when-verifying-whether-clients-may-change-en.patch deleted file mode 100644 index 57bb3648..00000000 --- a/0001-manager-when-verifying-whether-clients-may-change-en.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a316932f5a627c1ef78f568fd5dfa579f12e76b2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 4 Oct 2013 17:01:37 +0200 -Subject: [PATCH] manager: when verifying whether clients may change - environment using selinux check for "reload" rather "reboot" - -This appears to be a copy/paste error. ---- - src/core/dbus-manager.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c -index 676a07f..8f4d017 100644 ---- a/src/core/dbus-manager.c -+++ b/src/core/dbus-manager.c -@@ -1397,7 +1397,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - _cleanup_strv_free_ char **l = NULL; - char **e = NULL; - -- SELINUX_ACCESS_CHECK(connection, message, "reboot"); -+ SELINUX_ACCESS_CHECK(connection, message, "reload"); - - r = bus_parse_strv(message, &l); - if (r == -ENOMEM) -@@ -1424,7 +1424,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - _cleanup_strv_free_ char **l = NULL; - char **e = NULL; - -- SELINUX_ACCESS_CHECK(connection, message, "reboot"); -+ SELINUX_ACCESS_CHECK(connection, message, "reload"); - - r = bus_parse_strv(message, &l); - if (r == -ENOMEM) -@@ -1452,7 +1452,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - char **f = NULL; - DBusMessageIter iter; - -- SELINUX_ACCESS_CHECK(connection, message, "reboot"); -+ SELINUX_ACCESS_CHECK(connection, message, "reload"); - - if (!dbus_message_iter_init(message, &iter)) - goto oom; --- -1.8.4 - diff --git a/0001-mount-check-for-NULL-before-reading-pm-what.patch b/0001-mount-check-for-NULL-before-reading-pm-what.patch deleted file mode 100644 index e8c830f1..00000000 --- a/0001-mount-check-for-NULL-before-reading-pm-what.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9c03872bc8fb2a381eafe7301ef9811b641686dd Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Fri, 4 Oct 2013 18:22:40 -0400 -Subject: [PATCH] mount: check for NULL before reading pm->what - -Since a57f7e2c828b85, a mount unit with garbage in it would cause -systemd to crash on loading it. - -ref: https://bugs.freedesktop.org/show_bug.cgi?id=70148 ---- - src/core/mount.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 93bfa99..db055f0 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -182,7 +182,7 @@ static int mount_add_mount_links(Mount *m) { - * for the source path (if this is a bind mount) to be - * available. */ - pm = get_mount_parameters_fragment(m); -- if (pm && path_is_absolute(pm->what)) { -+ if (pm && pm->what && path_is_absolute(pm->what)) { - r = unit_require_mounts_for(UNIT(m), pm->what); - if (r < 0) - return r; --- -1.8.4 - diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch new file mode 100644 index 00000000..4dcfb70f --- /dev/null +++ b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -0,0 +1,41 @@ +From: Werner Fink +Date: Wed Feb 26 14:36:27 UTC 2014 +Subject: Do not clobber XDG_RUNTIME_DIR if su command preserve environment + +Make sure that even if a su command without option -l or with option -m +is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. + +This belongs to BNC#852015 and also to BNC#855160 + +--- + pam-module.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- systemd-209/src/login/pam-module.c ++++ systemd-209/src/login/pam-module.c 2014-02-26 14:31:30.158235525 +0000 +@@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess + r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); + if (r != PAM_SUCCESS) + return r; ++ } else if (getenv("XDG_RUNTIME_DIR")) { ++ _cleanup_free_ char *p = NULL; ++ ++ /* Make sure that after running YaST2 or the xdg-su scripts ++ * the runtime directory is not clobbered. Even a normal su ++ * command without -l or with -m may clobber. */ ++ ++ if ((r = asprintf(&p, "/run/user/%lu", (unsigned long)pw->pw_uid)) < 0) ++ return PAM_BUF_ERR; ++ ++ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", p, 0); ++ if (r != PAM_SUCCESS) { ++ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); ++ return r; ++ } ++ ++ r = export_legacy_dbus_address(handle, pw->pw_uid, p); ++ if (r != PAM_SUCCESS) ++ return r; + } + + if (!isempty(seat)) { diff --git a/0001-shared-util-Fix-glob_extend-argument.patch b/0001-shared-util-Fix-glob_extend-argument.patch deleted file mode 100644 index 4695547d..00000000 --- a/0001-shared-util-Fix-glob_extend-argument.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a8ccacf5344c4434b1d5ff3837307acb8fcf93d2 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Mon, 14 Oct 2013 08:15:51 +0200 -Subject: [PATCH] shared/util: Fix glob_extend() argument - -glob_extend() would completely fail to work, or return incorrect -data if it wasn't being passed the current getopt "optarg" variable -as it used the global variable, instead of the passed parameters. ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 54dbace..1822770 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -4461,7 +4461,7 @@ int glob_extend(char ***strv, const char *path) { - char **p; - - errno = 0; -- k = glob(optarg, GLOB_NOSORT|GLOB_BRACE, NULL, &g); -+ k = glob(path, GLOB_NOSORT|GLOB_BRACE, NULL, &g); - - if (k == GLOB_NOMATCH) - return -ENOENT; --- -1.8.4 - diff --git a/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch b/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch deleted file mode 100644 index eb6dedd0..00000000 --- a/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 1d5989fd803d2019de0f6aaaf3cfb1cb2bbc3cdb Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sun, 6 Oct 2013 18:26:23 -0400 -Subject: [PATCH] shared/util: fix off-by-one error in tag_to_udev_node - -Triggered false negatives when encoding a string which needed every -character to be escaped, e.g. "LABEL=/". ---- - src/shared/util.c | 2 +- - src/test/test-device-nodes.c | 4 +++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 82f4221..31cea79 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -3527,7 +3527,7 @@ static char *tag_to_udev_node(const char *tagvalue, const char *by) { - if (u == NULL) - return NULL; - -- enc_len = strlen(u) * 4; -+ enc_len = strlen(u) * 4 + 1; - t = new(char, enc_len); - if (t == NULL) - return NULL; -diff --git a/src/test/test-device-nodes.c b/src/test/test-device-nodes.c -index 2f3dedb..59ba4be 100644 ---- a/src/test/test-device-nodes.c -+++ b/src/test/test-device-nodes.c -@@ -26,7 +26,7 @@ - - /* helpers for test_encode_devnode_name */ - static char *do_encode_string(const char *in) { -- size_t out_len = strlen(in) * 4; -+ size_t out_len = strlen(in) * 4 + 1; - char *out = malloc(out_len); - - assert_se(out); -@@ -46,6 +46,8 @@ static void test_encode_devnode_name(void) { - assert_se(expect_encoded_as("pinkiepie", "pinkiepie")); - assert_se(expect_encoded_as("valíd\\ųtf8", "valíd\\x5cųtf8")); - assert_se(expect_encoded_as("s/ash/ng", "s\\x2fash\\x2fng")); -+ assert_se(expect_encoded_as("/", "\\x2f")); -+ assert_se(expect_encoded_as("!", "\\x21")); - } - - int main(int argc, char *argv[]) { --- -1.8.4 - diff --git a/0001-systemd-empty-sigmask-on-reexec.patch b/0001-systemd-empty-sigmask-on-reexec.patch new file mode 100644 index 00000000..f4f3ac92 --- /dev/null +++ b/0001-systemd-empty-sigmask-on-reexec.patch @@ -0,0 +1,42 @@ +Process 1 (aka init) needs to be started with an empty signal mask. That +includes the process 1 that's started after the initrd is finished. When the +initrd is using systemd (as it does with dracut based initrds) then it is +systemd that calls the real init. Normally this is systemd again, except +when the user uses for instance "init=/bin/bash" on the kernel command line. + +--- + main.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- src/core/main.c ++++ src/core/main.c 2014-02-27 13:54:21.922236495 +0000 +@@ -1780,6 +1780,7 @@ finish: + if (reexecute) { + const char **args; + unsigned i, args_size; ++ sigset_t ss, o_ss; + + /* Close and disarm the watchdog, so that the new + * instance can reinitialize it, but doesn't get +@@ -1863,6 +1864,11 @@ finish: + args[i++] = NULL; + assert(i <= args_size); + ++ /* reenable any blocked signals, especially important ++ * if we switch from initial ramdisk to init=... */ ++ sigemptyset(&ss); ++ sigprocmask(SIG_SETMASK,&ss,&o_ss); ++ + if (switch_root_init) { + args[0] = switch_root_init; + execv(args[0], (char* const*) args); +@@ -1881,6 +1887,9 @@ finish: + log_error("Failed to execute /bin/sh, giving up: %m"); + } else + log_warning("Failed to execute /sbin/init, giving up: %m"); ++ ++ /* back to saved state if reexec failed */ ++ sigprocmask(SIG_SETMASK,&o_ss,NULL); + } + + if (arg_serialization) { diff --git a/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch b/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch deleted file mode 100644 index 254212c5..00000000 --- a/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 77009452cfd25208509b14ea985e81fdf9f7d40e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 3 Oct 2013 22:15:08 -0400 -Subject: [PATCH] systemd: order remote mounts from mountinfo before - remote-fs.target - -Usually the network is stopped before filesystems are umounted. -Ordering network filesystems before remote-fs.target means that their -unmounting will be performed earlier, and can terminate sucessfully. - -https://bugs.freedesktop.org/show_bug.cgi?id=70002 ---- - src/core/mount.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3d46557..93bfa99 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1440,6 +1440,9 @@ static int mount_add_one( - - u = manager_get_unit(m, e); - if (!u) { -+ const char* const target = -+ fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; -+ - delete = true; - - u = unit_new(m, sizeof(Mount)); -@@ -1466,7 +1469,7 @@ static int mount_add_one( - goto fail; - } - -- r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_LOCAL_FS_TARGET, NULL, true); -+ r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); - if (r < 0) - goto fail; - --- -1.8.4 - diff --git a/0001-systemd-serialize-deserialize-forbid_restart-value.patch b/0001-systemd-serialize-deserialize-forbid_restart-value.patch deleted file mode 100644 index 6184c9a1..00000000 --- a/0001-systemd-serialize-deserialize-forbid_restart-value.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 6aca9a587d4ad40b1c044f99e3714022201b9fd4 Mon Sep 17 00:00:00 2001 -From: Sylvia Else -Date: Sun, 6 Oct 2013 23:06:35 -0400 -Subject: [PATCH] systemd: serialize/deserialize forbid_restart value - -The Service type's forbid_restart field was not preserved by -serialization/deserialization, so the fact that the service should not -be restarted after stopping was lost. - -If a systemctl stop foo command has been given, but the foo service -has not yet stopped, and then the systemctl --system daemon-reload was -given, then when the foo service eventually stopped, systemd would -restart it. - -https://bugs.freedesktop.org/show_bug.cgi?id=69800 ---- - src/core/service.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/core/service.c b/src/core/service.c -index 6792024..98b1599 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2651,6 +2651,9 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) { - if (s->exec_context.var_tmp_dir) - unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir); - -+ if (s->forbid_restart) -+ unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart)); -+ - return 0; - } - -@@ -2787,6 +2790,14 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, - return log_oom(); - - s->exec_context.var_tmp_dir = t; -+ } else if (streq(key, "forbid_restart")) { -+ int b; -+ -+ b = parse_boolean(value); -+ if (b < 0) -+ log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value); -+ else -+ s->forbid_restart = b; - } else - log_debug_unit(u->id, "Unknown serialization key '%s'", key); - --- -1.8.4 - diff --git a/0001-upstream-systemctl-halt-reboot-error-handling.patch b/0001-upstream-systemctl-halt-reboot-error-handling.patch deleted file mode 100644 index 110b866b..00000000 --- a/0001-upstream-systemctl-halt-reboot-error-handling.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- systemd-208/src/core/shutdown.c -+++ systemd-208/src/core/shutdown.c 2014-01-27 11:31:38.486235816 +0000 -@@ -329,6 +329,9 @@ int main(int argc, char *argv[]) { - - reboot(cmd); - -+ if (cmd == RB_POWER_OFF) -+ reboot(RB_HALT_SYSTEM); -+ - if (errno == EPERM && in_container) { - /* If we are in a container, and we lacked - * CAP_SYS_BOOT just exit, this will kill our - ---- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-01-27 11:05:18.298236035 +0000 -@@ -138,7 +138,7 @@ static bool arg_plain = false; - static bool private_bus = false; - - static int daemon_reload(DBusConnection *bus, char **args); --static void halt_now(enum action a); -+static int halt_now(enum action a); - - static void pager_open_if_enabled(void) { - -@@ -2227,7 +2227,7 @@ static int start_special(DBusConnection - (a == ACTION_HALT || - a == ACTION_POWEROFF || - a == ACTION_REBOOT)) -- halt_now(a); -+ return halt_now(a); - - if (arg_force >= 1 && - (a == ACTION_HALT || -@@ -5973,7 +5973,7 @@ done: - return 0; - } - --static _noreturn_ void halt_now(enum action a) { -+static int halt_now(enum action a) { - - /* Make sure C-A-D is handled by the kernel from this - * point on... */ -@@ -5984,23 +5984,22 @@ static _noreturn_ void halt_now(enum act - case ACTION_HALT: - log_info("Halting."); - reboot(RB_HALT_SYSTEM); -- break; -+ return -errno; - - case ACTION_POWEROFF: - log_info("Powering off."); - reboot(RB_POWER_OFF); -- break; -+ return -errno; - - case ACTION_REBOOT: - log_info("Rebooting."); - reboot(RB_AUTOBOOT); -- break; -+ return -errno; - - default: -- assert_not_reached("Unknown halt action."); -+ assert_not_reached("Unknown action."); -+ return -ENOSYS; - } -- -- assert_not_reached("Uh? This shouldn't happen."); - } - - static int halt_main(DBusConnection *bus) { -@@ -6069,9 +6068,10 @@ static int halt_main(DBusConnection *bus - if (arg_dry) - return 0; - -- halt_now(arg_action); -- /* We should never reach this. */ -- return -ENOSYS; -+ r = halt_now(arg_action); -+ log_error("Failed to reboot: %s", strerror(-r)); -+ -+ return r; - } - - static int runlevel_main(void) { diff --git a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch new file mode 100644 index 00000000..67454ead --- /dev/null +++ b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch @@ -0,0 +1,54 @@ +From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 17:11:39 +0100 +Subject: [PATCH] execute: free directory path if we fail to remove it because + we cannot allocate a thread + +--- + src/core/execute.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git src/core/execute.c src/core/execute.c +index 9de6e87..3312885 100644 +--- src/core/execute.c ++++ src/core/execute.c +@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { + } + + void exec_runtime_destroy(ExecRuntime *rt) { ++ int r; ++ + if (!rt) + return; + +@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { + + if (rt->tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); ++ free(rt->tmp_dir); ++ } ++ + rt->tmp_dir = NULL; + } + + if (rt->var_tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); ++ free(rt->var_tmp_dir); ++ } ++ + rt->var_tmp_dir = NULL; + } + +-- +1.7.9.2 + diff --git a/0002-fix-lingering-references-to-var-lib-backlight-random.patch b/0002-fix-lingering-references-to-var-lib-backlight-random.patch deleted file mode 100644 index 6ce0c230..00000000 --- a/0002-fix-lingering-references-to-var-lib-backlight-random.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 6c8c92fef72cf6a7ef7109a424ef82dbdc4f6952 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Wed, 2 Oct 2013 07:46:24 -0400 -Subject: [PATCH 02/15] fix lingering references to - /var/lib/{backlight,random-seed} - -This should have been part of ef5bfcf668e6029faa78534dfe. ---- - man/systemd-backlight@.service.xml | 2 +- - man/systemd-random-seed.service.xml | 2 +- - units/systemd-backlight@.service.in | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/man/systemd-backlight@.service.xml b/man/systemd-backlight@.service.xml -index 2b73625..4318964 100644 ---- a/man/systemd-backlight@.service.xml -+++ b/man/systemd-backlight@.service.xml -@@ -58,7 +58,7 @@ - is a service that restores the display backlight - brightness at early-boot and saves it at shutdown. On - disk, the backlight brightness is stored in -- /var/lib/backlight/. Note that by -+ /var/lib/systemd/backlight/. Note that by - default, only firmware backlight devices are - saved/restored. - -diff --git a/man/systemd-random-seed.service.xml b/man/systemd-random-seed.service.xml -index 8cd14b7..e5cd037 100644 ---- a/man/systemd-random-seed.service.xml -+++ b/man/systemd-random-seed.service.xml -@@ -61,7 +61,7 @@ - for details. Saving/restoring the random seed across - boots increases the amount of available entropy early - at boot. On disk the random seed is stored in -- /var/lib/random-seed. -+ /var/lib/systemd/random-seed. - - - -diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in -index b0e75db..5caa5d5 100644 ---- a/units/systemd-backlight@.service.in -+++ b/units/systemd-backlight@.service.in -@@ -9,7 +9,7 @@ - Description=Load/Save Screen Backlight Brightness of %I - Documentation=man:systemd-backlight@.service(8) - DefaultDependencies=no --RequiresMountsFor=/var/lib/backlight -+RequiresMountsFor=/var/lib/systemd/backlight - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service - Before=sysinit.target shutdown.target --- -1.8.4 - diff --git a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch new file mode 100644 index 00000000..a1934486 --- /dev/null +++ b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch @@ -0,0 +1,52 @@ +From 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 25 Feb 2014 13:08:24 +0100 +Subject: [PATCH] login: set pos-slot to fallback on pos-eviction + +If we evict a session position, we open the position slot for future +sessions. However, there might already be another session on the same +position if both were started on the same VT. This is currently done if +gdm spawns the session on its own Xserver. + +Hence, look for such a session on pos-eviction and claim the new slot +immediately. +--- + src/login/logind-seat.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 36ec7ed..96cf08e 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { + } + + void seat_evict_position(Seat *s, Session *session) { ++ Session *iter; + unsigned int pos = session->pos; + + session->pos = 0; +@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { + if (!pos) + return; + +- if (pos < s->position_count && s->positions[pos] == session) ++ if (pos < s->position_count && s->positions[pos] == session) { + s->positions[pos] = NULL; ++ ++ /* There might be another session claiming the same ++ * position (eg., during gdm->session transition), so lets look ++ * for it and set it on the free slot. */ ++ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { ++ if (iter->pos == pos) { ++ s->positions[pos] = iter; ++ break; ++ } ++ } ++ } + } + + void seat_claim_position(Seat *s, Session *session, unsigned int pos) { +-- +1.7.9.2 + diff --git a/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch b/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch deleted file mode 100644 index 76624f92..00000000 --- a/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 95d57e7b631a2d78b9b5d841125194052895470f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Jan 2014 13:49:54 +0100 -Subject: [PATCH 2/3] service: allow KillMode=mixed in conjunction with - PAMName= - ---- - src/core/service.c | 20 +++++++------------- - 1 file changed, 7 insertions(+), 13 deletions(-) - -diff --git a/src/core/service.c b/src/core/service.c -index 6792024..e7f03e1 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -1105,37 +1105,31 @@ static int service_verify(Service *s) { - return 0; - - if (!s->exec_command[SERVICE_EXEC_START]) { -- log_error_unit(UNIT(s)->id, -- "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->type != SERVICE_ONESHOT && - s->exec_command[SERVICE_EXEC_START]->command_next) { -- log_error_unit(UNIT(s)->id, -- "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) { -- log_error_unit(UNIT(s)->id, -- "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->type == SERVICE_DBUS && !s->bus_name) { -- log_error_unit(UNIT(s)->id, -- "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->bus_name && s->type != SERVICE_DBUS) -- log_warning_unit(UNIT(s)->id, -- "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); -+ log_warning_unit(UNIT(s)->id, "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); - -- if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) { -- log_error_unit(UNIT(s)->id, -- "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", UNIT(s)->id); -+ if (s->exec_context.pam_name && !(s->kill_context.kill_mode == KILL_CONTROL_GROUP || s->kill_context.kill_mode == KILL_MIXED)) { -+ log_error_unit(UNIT(s)->id, "%s has PAM enabled. Kill mode must be set to 'control-group' or 'mixed'. Refusing.", UNIT(s)->id); - return -EINVAL; - } - --- -1.8.4 - diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch new file mode 100644 index 00000000..7f485448 --- /dev/null +++ b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch @@ -0,0 +1,130 @@ +From b5d742138f71e87312541a89aac5657015f50f48 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 4 Mar 2014 09:50:26 -0500 +Subject: [PATCH] Do not print invalid UTF-8 in error messages + +Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error +messages') only fixed two paths. Convert all of them now. +--- + src/core/load-fragment.c | 13 ++++--------- + src/shared/conf-parser.c | 7 +++---- + src/shared/conf-parser.h | 6 ++++++ + src/shared/fileio.c | 9 ++++++--- + 4 files changed, 19 insertions(+), 16 deletions(-) + +diff --git src/core/load-fragment.c src/core/load-fragment.c +index d77bf5c..5628d8c 100644 +--- src/core/load-fragment.c ++++ src/core/load-fragment.c +@@ -536,9 +536,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(path)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -553,9 +551,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(c)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for( + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index 0a87a71..d27b1b7 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c +@@ -618,8 +618,7 @@ int config_parse_string(const char *unit + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + free(n); + return 0; + } +@@ -656,8 +655,7 @@ int config_parse_path(const char *unit, + assert(data); + + if (!utf8_is_valid(rvalue)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + return 0; + } + +@@ -725,8 +723,7 @@ int config_parse_strv(const char *unit, + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.h src/shared/conf-parser.h +index e1c7ab4..ba0e58d 100644 +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h +@@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level, + config_file, config_line, \ + error, __VA_ARGS__) + ++#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ ++ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ ++ log_syntax(unit, level, config_file, config_line, error, \ ++ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ ++ } ++ + #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ + int function(const char *unit, \ + const char *filename, \ +diff --git src/shared/fileio.c src/shared/fileio.c +index d591567..f101269 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, + int r; + + if (!utf8_is_valid(key)) { ++ _cleanup_free_ char *t = utf8_escape_invalid(key); ++ + log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", +- filename, line, key); ++ filename, line, t); + return -EINVAL; + } + + if (value && !utf8_is_valid(value)) { +- /* FIXME: filter UTF-8 */ ++ _cleanup_free_ char *t = utf8_escape_invalid(value); ++ + log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", +- filename, line, key, value); ++ filename, line, key, t); + return -EINVAL; + } + +-- +1.7.9.2 + diff --git a/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch b/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch deleted file mode 100644 index 86e13443..00000000 --- a/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2c64a8d0caf84254e38f2e76528f2034d37da520 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 14:03:56 +0200 -Subject: [PATCH 03/15] acpi: make sure we never free an uninitialized pointer - ---- - src/shared/acpi-fpdt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c -index a7c83ed..af58c7c 100644 ---- a/src/shared/acpi-fpdt.c -+++ b/src/shared/acpi-fpdt.c -@@ -81,7 +81,7 @@ struct acpi_fpdt_boot { - }; - - int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { -- _cleanup_free_ char *buf; -+ _cleanup_free_ char *buf = NULL; - struct acpi_table_header *tbl; - size_t l; - struct acpi_fpdt_header *rec; --- -1.8.4 - diff --git a/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch b/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch deleted file mode 100644 index e6423f54..00000000 --- a/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch +++ /dev/null @@ -1,128 +0,0 @@ -From b2ffdc8da536cd88a305f97517f356e2c5383a52 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Jan 2014 14:58:04 +0100 -Subject: [PATCH 3/3] core: make sure to always go through both SIGTERM and - SIGKILL states of units - -Given that we now have KillMode=mixed where SIGTERM might kill a smaller -set than SIGKILL we need to make sure to always go explicitly throught -the SIGKILL state to get the right end result. ---- - src/core/mount.c | 8 +++++++- - src/core/scope.c | 4 +++- - src/core/service.c | 10 +++++++--- - src/core/socket.c | 6 +++++- - src/core/swap.c | 6 +++++- - 5 files changed, 27 insertions(+), 7 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3d46557..e418d09 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -854,8 +854,14 @@ static void mount_enter_signal(Mount *m, MountState state, MountResult f) { - goto fail; - - mount_set_state(m, state); -- } else if (state == MOUNT_REMOUNTING_SIGTERM || state == MOUNT_REMOUNTING_SIGKILL) -+ } else if (state == MOUNT_REMOUNTING_SIGTERM) -+ mount_enter_signal(m, MOUNT_REMOUNTING_SIGKILL, MOUNT_SUCCESS); -+ else if (state == MOUNT_REMOUNTING_SIGKILL) - mount_enter_mounted(m, MOUNT_SUCCESS); -+ else if (state == MOUNT_MOUNTING_SIGTERM) -+ mount_enter_signal(m, MOUNT_MOUNTING_SIGKILL, MOUNT_SUCCESS); -+ else if (state == MOUNT_UNMOUNTING_SIGTERM) -+ mount_enter_signal(m, MOUNT_UNMOUNTING_SIGKILL, MOUNT_SUCCESS); - else - mount_enter_dead(m, MOUNT_SUCCESS); - -diff --git a/src/core/scope.c b/src/core/scope.c -index 50e5dba..3a5c95e 100644 ---- a/src/core/scope.c -+++ b/src/core/scope.c -@@ -221,7 +221,9 @@ static void scope_enter_signal(Scope *s, ScopeState state, ScopeResult f) { - } - - scope_set_state(s, state); -- } else -+ } else if (state == SCOPE_STOP_SIGTERM) -+ scope_enter_signal(s, SCOPE_STOP_SIGKILL, SCOPE_SUCCESS); -+ else - scope_enter_dead(s, SCOPE_SUCCESS); - - return; -diff --git a/src/core/service.c b/src/core/service.c -index e7f03e1..4b481c2 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -1964,10 +1964,9 @@ static void service_enter_stop_post(Service *s, ServiceResult f) { - if (r < 0) - goto fail; - -- - service_set_state(s, SERVICE_STOP_POST); - } else -- service_enter_dead(s, SERVICE_SUCCESS, true); -+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, SERVICE_SUCCESS); - - return; - -@@ -1993,6 +1992,7 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f - s->main_pid, - s->control_pid, - s->main_pid_alien); -+ - if (r < 0) - goto fail; - -@@ -2005,8 +2005,12 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f - } - - service_set_state(s, state); -- } else if (state == SERVICE_STOP_SIGTERM || state == SERVICE_STOP_SIGKILL) -+ } else if (state == SERVICE_STOP_SIGTERM) -+ service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_SUCCESS); -+ else if (state == SERVICE_STOP_SIGKILL) - service_enter_stop_post(s, SERVICE_SUCCESS); -+ else if (state == SERVICE_FINAL_SIGTERM) -+ service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_SUCCESS); - else - service_enter_dead(s, SERVICE_SUCCESS, true); - -diff --git a/src/core/socket.c b/src/core/socket.c -index 6c0ac1a..831876f 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -1298,8 +1298,12 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) { - goto fail; - - socket_set_state(s, state); -- } else if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL) -+ } else if (state == SOCKET_STOP_PRE_SIGTERM) -+ socket_enter_signal(s, SOCKET_STOP_PRE_SIGKILL, SOCKET_SUCCESS); -+ else if (state == SOCKET_STOP_PRE_SIGKILL) - socket_enter_stop_post(s, SOCKET_SUCCESS); -+ else if (state == SOCKET_FINAL_SIGTERM) -+ socket_enter_signal(s, SOCKET_FINAL_SIGKILL, SOCKET_SUCCESS); - else - socket_enter_dead(s, SOCKET_SUCCESS); - -diff --git a/src/core/swap.c b/src/core/swap.c -index a68ab7c..8886fe8 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -655,7 +655,11 @@ static void swap_enter_signal(Swap *s, SwapState state, SwapResult f) { - goto fail; - - swap_set_state(s, state); -- } else -+ } else if (state == SWAP_ACTIVATING_SIGTERM) -+ swap_enter_signal(s, SWAP_ACTIVATING_SIGKILL, SWAP_SUCCESS); -+ else if (state == SWAP_DEACTIVATING_SIGTERM) -+ swap_enter_signal(s, SWAP_DEACTIVATING_SIGKILL, SWAP_SUCCESS); -+ else - swap_enter_dead(s, SWAP_SUCCESS); - - return; --- -1.8.4 - diff --git a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch new file mode 100644 index 00000000..e4752edc --- /dev/null +++ b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch @@ -0,0 +1,35 @@ +From 9c413373d2112055a0142ef522bf95af9b491b4a Mon Sep 17 00:00:00 2001 +From: "Jasper St. Pierre" +Date: Fri, 21 Feb 2014 18:23:17 -0500 +Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo + +--- + src/login/org.freedesktop.login1.conf | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git src/login/org.freedesktop.login1.conf src/login/org.freedesktop.login1.conf +index d677f61..1318328 100644 +--- src/login/org.freedesktop.login1.conf ++++ src/login/org.freedesktop.login1.conf +@@ -141,6 +141,18 @@ + send_member="ActivateSession"/> + + ++ ++ ++ ++ ++ ++ + +-- +1.7.9.2 + diff --git a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch new file mode 100644 index 00000000..065c0ea9 --- /dev/null +++ b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch @@ -0,0 +1,22 @@ +From b3e4387351c835766f96796a20d94971afea7d3b Mon Sep 17 00:00:00 2001 +From: Tomasz Torcz +Date: Tue, 25 Feb 2014 12:43:55 +0100 +Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac + +--- + hwdb/20-net-ifname.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/20-net-ifname.hwdb hwdb/20-net-ifname.hwdb +index 29d2633..2408dc1 100644 +--- hwdb/20-net-ifname.hwdb ++++ hwdb/20-net-ifname.hwdb +@@ -2,4 +2,4 @@ + + # Dell iDRAC Virtual USB NIC + usb:v413CpA102* +- ID_NET_NAME_FROM_DATABASE=irdac ++ ID_NET_NAME_FROM_DATABASE=idrac +-- +1.7.9.2 + diff --git a/0004-man-document-missing-options-of-systemd-run.patch b/0004-man-document-missing-options-of-systemd-run.patch new file mode 100644 index 00000000..a6e6551d --- /dev/null +++ b/0004-man-document-missing-options-of-systemd-run.patch @@ -0,0 +1,113 @@ +From 981ee551945f4e00de52fcbb7780fd7476bcd47e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:37:48 +0100 +Subject: [PATCH] man: document missing options of systemd-run + +--- + man/systemd-run.xml | 71 +++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 60 insertions(+), 11 deletions(-) + +diff --git man/systemd-run.xml man/systemd-run.xml +index 95c1cb7..81d41dc 100644 +--- man/systemd-run.xml ++++ man/systemd-run.xml +@@ -121,9 +121,9 @@ along with systemd; If not, see . + + + +- Provide description for the unit. If not +- specified, the command itself will be used as a description. +- See Description= in ++ Provide description for the service or scope ++ unit. If not specified, the command itself will be used as a ++ description. See Description= in + systemd.unit5. + + +@@ -140,10 +140,10 @@ along with systemd; If not, see . + + + +- After the service's process has terminated, keep +- the service around until it is explicitly stopped. This is +- useful to collect runtime information about the service after +- it finished running. Also see ++ After the service or scope process has ++ terminated, keep the service around until it is explicitly ++ stopped. This is useful to collect runtime information about ++ the service after it finished running. Also see + RemainAfterExit= in + systemd.service5. + +@@ -153,15 +153,64 @@ along with systemd; If not, see . + + + +- When terminating the scope unit, send a SIGHUP +- immediately after SIGTERM. This is useful to indicate to +- shells and shell-like processes that the connection has been +- severed. Also see SendSIGHUP= in ++ When terminating the scope or service unit, ++ send a SIGHUP immediately after SIGTERM. This is useful to ++ indicate to shells and shell-like processes that the ++ connection has been severed. Also see ++ SendSIGHUP= in + systemd.kill5. + + + + ++ ++ ++ ++ Sets the service type. Also see ++ Type= in ++ systemd.service5. This ++ option has no effect in conjunction with ++ . Defaults to ++ simple. ++ ++ ++ ++ ++ ++ ++ ++ Runs the service process under the UNIX user ++ and group. Also see User= and ++ Group= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ nice level. Also see Nice= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ environment variables set. Also see ++ Environment= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ + + + +-- +1.7.9.2 + diff --git a/0004-systemctl-fix-name-mangling-for-sysv-units.patch b/0004-systemctl-fix-name-mangling-for-sysv-units.patch deleted file mode 100644 index a2531e70..00000000 --- a/0004-systemctl-fix-name-mangling-for-sysv-units.patch +++ /dev/null @@ -1,134 +0,0 @@ -From cbb13b2a538ece1c7ec3b210e2b36b47df2a13ea Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= -Date: Wed, 2 Oct 2013 16:42:42 +0200 -Subject: [PATCH 04/15] systemctl: fix name mangling for sysv units - ---- - src/systemctl/systemctl.c | 45 ++++++++++++++++++--------------------------- - 1 file changed, 18 insertions(+), 27 deletions(-) - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index bb7ada9..d75281f 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -4218,11 +4218,10 @@ static int set_environment(DBusConnection *bus, char **args) { - return 0; - } - --static int enable_sysv_units(char **args) { -+static int enable_sysv_units(const char *verb, char **args) { - int r = 0; - - #if defined(HAVE_SYSV_COMPAT) && defined(HAVE_CHKCONFIG) -- const char *verb = args[0]; - unsigned f = 1, t = 1; - LookupPaths paths = {}; - -@@ -4242,7 +4241,7 @@ static int enable_sysv_units(char **args) { - return r; - - r = 0; -- for (f = 1; args[f]; f++) { -+ for (f = 0; args[f]; f++) { - const char *name; - _cleanup_free_ char *p = NULL, *q = NULL; - bool found_native = false, found_sysv; -@@ -4365,7 +4364,7 @@ finish: - lookup_paths_free(&paths); - - /* Drop all SysV units */ -- for (f = 1, t = 1; args[f]; f++) { -+ for (f = 0, t = 0; args[f]; f++) { - - if (isempty(args[f])) - continue; -@@ -4423,16 +4422,16 @@ static int enable_unit(DBusConnection *bus, char **args) { - - dbus_error_init(&error); - -- r = enable_sysv_units(args); -- if (r < 0) -- return r; -- - if (!args[1]) - return 0; - - r = mangle_names(args+1, &mangled_names); - if (r < 0) -- goto finish; -+ return r; -+ -+ r = enable_sysv_units(verb, mangled_names); -+ if (r < 0) -+ return r; - - if (!bus || avoid_bus()) { - if (streq(verb, "enable")) { -@@ -4624,11 +4623,15 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; - bool enabled; - char **name; -- char *n; -+ _cleanup_strv_free_ char **mangled_names = NULL; - - dbus_error_init(&error); - -- r = enable_sysv_units(args); -+ r = mangle_names(args+1, &mangled_names); -+ if (r < 0) -+ return r; -+ -+ r = enable_sysv_units(args[0], mangled_names); - if (r < 0) - return r; - -@@ -4636,16 +4639,10 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - - if (!bus || avoid_bus()) { - -- STRV_FOREACH(name, args+1) { -+ STRV_FOREACH(name, mangled_names) { - UnitFileState state; - -- n = unit_name_mangle(*name); -- if (!n) -- return log_oom(); -- -- state = unit_file_get_state(arg_scope, arg_root, n); -- -- free(n); -+ state = unit_file_get_state(arg_scope, arg_root, *name); - - if (state < 0) - return state; -@@ -4660,13 +4657,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - } - - } else { -- STRV_FOREACH(name, args+1) { -+ STRV_FOREACH(name, mangled_names) { - const char *s; - -- n = unit_name_mangle(*name); -- if (!n) -- return log_oom(); -- - r = bus_method_call_with_reply ( - bus, - "org.freedesktop.systemd1", -@@ -4675,11 +4668,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - "GetUnitFileState", - &reply, - NULL, -- DBUS_TYPE_STRING, &n, -+ DBUS_TYPE_STRING, name, - DBUS_TYPE_INVALID); - -- free(n); -- - if (r) - return r; - --- -1.8.4 - diff --git a/0005-Replace-var-run-with-run-in-remaining-places.patch b/0005-Replace-var-run-with-run-in-remaining-places.patch new file mode 100644 index 00000000..67c35e18 --- /dev/null +++ b/0005-Replace-var-run-with-run-in-remaining-places.patch @@ -0,0 +1,89 @@ +From 41a55c46ab8fb4ef6727434227071321fc762cce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 25 Feb 2014 20:11:04 -0500 +Subject: [PATCH] Replace /var/run with /run in remaining places + +/run was already used almost everywhere, fix the remaining places +for consistency. +--- + man/daemon.xml | 2 +- + man/runlevel.xml | 2 +- + man/tmpfiles.d.xml | 4 ++-- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/systemctl/systemctl.c | 4 ++-- + 5 files changed, 8 insertions(+), 8 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index 88dd082..fd29ba7 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -149,7 +149,7 @@ + write the daemon PID (as returned by + getpid()) to a + PID file, for example +- /var/run/foobar.pid ++ /run/foobar.pid + (for a hypothetical daemon "foobar") + to ensure that the daemon cannot be + started more than once. This must be +diff --git man/runlevel.xml man/runlevel.xml +index 976753a..4db06dc 100644 +--- man/runlevel.xml ++++ man/runlevel.xml +@@ -124,7 +124,7 @@ + + + +- /var/run/utmp ++ /run/utmp + + The utmp database + runlevel reads the +diff --git man/tmpfiles.d.xml man/tmpfiles.d.xml +index 812129f..0a006d1 100644 +--- man/tmpfiles.d.xml ++++ man/tmpfiles.d.xml +@@ -441,8 +441,8 @@ r! /tmp/.X[0-9]*-lock + /etc/tmpfiles.d/screen.conf example + screen needs two directories created at boot with specific modes and ownership. + +- d /var/run/screens 1777 root root 10d +-d /var/run/uscreens 0755 root root 10d12h ++ d /run/screens 1777 root root 10d ++d /run/uscreens 0755 root root 10d12h + + + /etc/tmpfiles.d/abrt.conf example +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 20f540d..1318272 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; ++ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); + + return 0; + } +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 34d7079..8692716 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -3758,8 +3758,8 @@ static int show_one( + streq(verb, "status")) { + /* According to LSB: "program not running" */ + /* 0: program is running or service is OK +- * 1: program is dead and /var/run pid file exists +- * 2: program is dead and /var/lock lock file exists ++ * 1: program is dead and /run PID file exists ++ * 2: program is dead and /run/lock lock file exists + * 3: program is not running + * 4: program or service status is unknown + */ +-- +1.7.9.2 + diff --git a/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch b/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch deleted file mode 100644 index d46e94d1..00000000 --- a/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 4b93637fd7dddb0a1518f35171998b2c7cd5c5bd Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:36:28 +0200 -Subject: [PATCH 05/15] cryptsetup: fix OOM handling when parsing mount options - ---- - src/cryptsetup/cryptsetup.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c -index 22b5eea..769c3e4 100644 ---- a/src/cryptsetup/cryptsetup.c -+++ b/src/cryptsetup/cryptsetup.c -@@ -74,7 +74,7 @@ static int parse_one_option(const char *option) { - - t = strdup(option+7); - if (!t) -- return -ENOMEM; -+ return log_oom(); - - free(opt_cipher); - opt_cipher = t; -@@ -89,9 +89,10 @@ static int parse_one_option(const char *option) { - } else if (startswith(option, "tcrypt-keyfile=")) { - - opt_type = CRYPT_TCRYPT; -- if (path_is_absolute(option+15)) -- opt_tcrypt_keyfiles = strv_append(opt_tcrypt_keyfiles, strdup(option+15)); -- else -+ if (path_is_absolute(option+15)) { -+ if (strv_extend(&opt_tcrypt_keyfiles, option + 15) < 0) -+ return log_oom(); -+ } else - log_error("Key file path '%s' is not absolute. Ignoring.", option+15); - - } else if (startswith(option, "keyfile-size=")) { -@@ -113,7 +114,7 @@ static int parse_one_option(const char *option) { - - t = strdup(option+5); - if (!t) -- return -ENOMEM; -+ return log_oom(); - - free(opt_hash); - opt_hash = t; --- -1.8.4 - diff --git a/0005-systemd-run-add-some-extra-safety-checks.patch b/0005-systemd-run-add-some-extra-safety-checks.patch new file mode 100644 index 00000000..22d41889 --- /dev/null +++ b/0005-systemd-run-add-some-extra-safety-checks.patch @@ -0,0 +1,34 @@ +From 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:38:36 +0100 +Subject: [PATCH] systemd-run: add some extra safety checks + +--- + src/run/run.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/run/run.c src/run/run.c +index 81763c9..e71ca7d 100644 +--- src/run/run.c ++++ src/run/run.c +@@ -37,7 +37,7 @@ static const char *arg_description = NULL; + static const char *arg_slice = NULL; + static bool arg_send_sighup = false; + static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; +-static char *arg_host = NULL; ++static const char *arg_host = NULL; + static bool arg_user = false; + static const char *arg_service_type = NULL; + static const char *arg_exec_user = NULL; +@@ -186,7 +186,7 @@ static int parse_argv(int argc, char *argv[]) { + + case ARG_NICE: + r = safe_atoi(optarg, &arg_nice); +- if (r < 0) { ++ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { + log_error("Failed to parse nice value"); + return -EINVAL; + } +-- +1.7.9.2 + diff --git a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch new file mode 100644 index 00000000..ed9a7a79 --- /dev/null +++ b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch @@ -0,0 +1,60 @@ +From df1e02046144f41176c32ed011369fd8dba36b76 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 02:47:43 +0100 +Subject: [PATCH] Revert back to /var/run at a couple of problems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This partially reverts 41a55c46ab8fb4ef6727434227071321fc762cce + +Some specifications we want to stay compatibility actually document +/var/run, not /run, and we should stay compatible with that. In order to +make sure our D-Bus implementation works on any system, regardless if +running systemd or not, we should always use /var/run which is the +only path mandated by the D-Bus spec. + +Similar, glibc hardcodes the utmp location to /var/run, and this is +exposed in _UTMP_PATH in limits.h, hence let's stay in sync with this +public API, too. + +We simply do not support systems where /var/run is not a symlink → /run. +Hence both are equivalent. Staying compatible with upstream +specifications hence weighs more than cleaning up superficial +appearance. +--- + man/runlevel.xml | 2 +- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git man/runlevel.xml man/runlevel.xml +index 4db06dc..976753a 100644 +--- man/runlevel.xml ++++ man/runlevel.xml +@@ -124,7 +124,7 @@ + + + +- /run/utmp ++ /var/run/utmp + + The utmp database + runlevel reads the +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 1318272..636715f 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); ++ strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); + + return 0; + } +-- +1.7.9.2 + diff --git a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch new file mode 100644 index 00000000..aa974fa7 --- /dev/null +++ b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch @@ -0,0 +1,70 @@ +From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:07:29 -0500 +Subject: [PATCH] journal: assume that next entry is after previous entry + +With a corrupted file, we can get in a situation where two entries +in the entry array point to the same object. Then journal_file_next_entry +will find the first one using generic_arrray_bisect, and try to move to +the second one, but since the address is the same, generic_array_get will +return the first one. journal_file_next_entry ends up in an infinite loop. + +https://bugzilla.redhat.com/show_bug.cgi?id=1047039 +--- + src/journal/journal-file.c | 26 ++++++++++++++++++++------ + 1 file changed, 20 insertions(+), 6 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 5876733..0e1fc7f 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st + } + + typedef struct ChainCacheItem { +- uint64_t first; /* the array at the begin of the chain */ ++ uint64_t first; /* the array at the beginning of the chain */ + uint64_t array; /* the cached array */ + uint64_t begin; /* the first item in the cached array */ + uint64_t total; /* the total number of items in all arrays before this one in the chain */ +@@ -1945,7 +1945,7 @@ int journal_file_next_entry( + direction_t direction, + Object **ret, uint64_t *offset) { + +- uint64_t i, n; ++ uint64_t i, n, ofs; + int r; + + assert(f); +@@ -1986,10 +1986,24 @@ int journal_file_next_entry( + } + + /* And jump to it */ +- return generic_array_get(f, +- le64toh(f->header->entry_array_offset), +- i, +- ret, offset); ++ r = generic_array_get(f, ++ le64toh(f->header->entry_array_offset), ++ i, ++ ret, &ofs); ++ if (r <= 0) ++ return r; ++ ++ if (p > 0 && ++ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { ++ log_debug("%s: entry array corrupted at entry %"PRIu64, ++ f->path, i); ++ return -EBADMSG; ++ } ++ ++ if (offset) ++ *offset = ofs; ++ ++ return 1; + } + + int journal_file_skip_entry( +-- +1.7.9.2 + diff --git a/0006-journald-add-missing-error-check.patch b/0006-journald-add-missing-error-check.patch deleted file mode 100644 index 479c37cc..00000000 --- a/0006-journald-add-missing-error-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8c92d4bbc7a538ada11d7e85016cce141beb0e6c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:36:43 +0200 -Subject: [PATCH 06/15] journald: add missing error check - ---- - src/journal/journal-file.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 1236403..81c344f 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -907,6 +907,8 @@ static int journal_file_append_field( - - osize = offsetof(Object, field.payload) + size; - r = journal_file_append_object(f, OBJECT_FIELD, osize, &o, &p); -+ if (r < 0) -+ return r; - - o->field.hash = htole64(hash); - memcpy(o->field.payload, field, size); --- -1.8.4 - diff --git a/0007-README-document-that-var-run-must-be-a-symlink-run.patch b/0007-README-document-that-var-run-must-be-a-symlink-run.patch new file mode 100644 index 00000000..4b8b4384 --- /dev/null +++ b/0007-README-document-that-var-run-must-be-a-symlink-run.patch @@ -0,0 +1,30 @@ +From 47bc23c18cbc87471dc832534c8565625e4a9d16 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 02:54:37 +0100 +Subject: [PATCH] =?UTF-8?q?README:=20document=20that=20/var/run=20must=20be=20?= + =?UTF-8?q?a=20symlink=20=E2=86=92=20/run?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + README | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git README README +index b918132..7a227e7 100644 +--- README ++++ README +@@ -190,6 +190,9 @@ WARNINGS: + about this, since this kind of file system setup is not really + supported anymore by the basic set of Linux OS components. + ++ systemd requires that the /run mount point exists. systemd also ++ requires that /var/run is a a symlink → /run. ++ + For more information on this issue consult + http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken + +-- +1.7.9.2 + diff --git a/0007-bus-fix-potentially-uninitialized-memory-access.patch b/0007-bus-fix-potentially-uninitialized-memory-access.patch deleted file mode 100644 index 2f2d2def..00000000 --- a/0007-bus-fix-potentially-uninitialized-memory-access.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f5f6e41a9ee008e1632f79ab3fa20beef7c2b613 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:37:11 +0200 -Subject: [PATCH 07/15] bus: fix potentially uninitialized memory access - ---- - src/libsystemd-bus/bus-internal.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libsystemd-bus/bus-internal.c b/src/libsystemd-bus/bus-internal.c -index 0e66f3d..cac948e 100644 ---- a/src/libsystemd-bus/bus-internal.c -+++ b/src/libsystemd-bus/bus-internal.c -@@ -63,7 +63,7 @@ bool object_path_is_valid(const char *p) { - - bool interface_name_is_valid(const char *p) { - const char *q; -- bool dot, found_dot; -+ bool dot, found_dot = false; - - if (isempty(p)) - return false; -@@ -103,7 +103,7 @@ bool interface_name_is_valid(const char *p) { - - bool service_name_is_valid(const char *p) { - const char *q; -- bool dot, found_dot, unique; -+ bool dot, found_dot = false, unique; - - if (isempty(p)) - return false; --- -1.8.4 - diff --git a/0007-journal-forget-file-after-encountering-an-error.patch b/0007-journal-forget-file-after-encountering-an-error.patch new file mode 100644 index 00000000..e195e6bf --- /dev/null +++ b/0007-journal-forget-file-after-encountering-an-error.patch @@ -0,0 +1,74 @@ +From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:11:54 -0500 +Subject: [PATCH] journal: forget file after encountering an error + +If we encounter an inconsistency in a file, let's just +ignore it. Otherwise, after previous patch, we would try, +and fail, to use this file in every invocation of sd_journal_next +or sd_journal_previous that happens afterwards. +--- + src/journal/sd-journal.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git src/journal/sd-journal.c src/journal/sd-journal.c +index ef455e9..b54bc21 100644 +--- src/journal/sd-journal.c ++++ src/journal/sd-journal.c +@@ -51,6 +51,8 @@ + + #define DEFAULT_DATA_THRESHOLD (64*1024) + ++static void remove_file_real(sd_journal *j, JournalFile *f); ++ + static bool journal_pid_changed(sd_journal *j) { + assert(j); + +@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { + r = next_beyond_location(j, f, direction, &o, &p); + if (r < 0) { + log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); ++ remove_file_real(j, f); + continue; + } else if (r == 0) + continue; +@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { + } + + static int remove_file(sd_journal *j, const char *prefix, const char *filename) { +- char *path; ++ _cleanup_free_ char *path; + JournalFile *f; + + assert(j); +@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + return -ENOMEM; + + f = hashmap_get(j->files, path); +- free(path); + if (!f) + return 0; + ++ remove_file_real(j, f); ++ return 0; ++} ++ ++static void remove_file_real(sd_journal *j, JournalFile *f) { ++ assert(j); ++ assert(f); ++ + hashmap_remove(j->files, f->path); + + log_debug("File %s removed.", f->path); +@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + journal_file_close(f); + + j->current_invalidate_counter ++; +- +- return 0; + } + + static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { +-- +1.7.9.2 + diff --git a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch new file mode 100644 index 00000000..25994e95 --- /dev/null +++ b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch @@ -0,0 +1,51 @@ +From 1ae383a8a3ae4824453e297352fda603d2d3fd5e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 25 Feb 2014 21:26:31 -0500 +Subject: [PATCH] Use /var/run/dbus/system_bus_socket for the D-Bus socket + +--- + man/systemd-bus-proxyd@.service.xml | 2 +- + src/shared/def.h | 2 +- + units/systemd-bus-proxyd.socket | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git man/systemd-bus-proxyd@.service.xml man/systemd-bus-proxyd@.service.xml +index 75a3c8b..3a5930d 100644 +--- man/systemd-bus-proxyd@.service.xml ++++ man/systemd-bus-proxyd@.service.xml +@@ -59,7 +59,7 @@ along with systemd; If not, see . + systemd-bus-proxyd.socket will launch + systemd-bus-proxyd@.service for connections + to the classic D-Bus socket in +- /run/dbus/system_bus_socket. ++ /var/run/dbus/system_bus_socket. + + systemd-bus-proxyd@.service is launched + for an existing D-Bus connection and will use +diff --git src/shared/def.h src/shared/def.h +index 7777756..aa489d8 100644 +--- src/shared/def.h ++++ src/shared/def.h +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS +diff --git units/systemd-bus-proxyd.socket units/systemd-bus-proxyd.socket +index 406e15b..6c42d38 100644 +--- units/systemd-bus-proxyd.socket ++++ units/systemd-bus-proxyd.socket +@@ -9,5 +9,5 @@ + Description=Legacy D-Bus Protocol Compatibility Socket + + [Socket] +-ListenStream=/run/dbus/system_bus_socket ++ListenStream=/var/run/dbus/system_bus_socket + Accept=yes +-- +1.7.9.2 + diff --git a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch new file mode 100644 index 00000000..8dfd01bc --- /dev/null +++ b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch @@ -0,0 +1,102 @@ +From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 02:19:42 +0100 +Subject: [PATCH] core: correctly unregister PIDs from PID hashtables + +--- + src/core/unit.c | 42 ++++++++++++++++++------------------------ + 1 file changed, 18 insertions(+), 24 deletions(-) + +diff --git src/core/unit.c src/core/unit.c +index 2437ee3..85250ca 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { + /* Watch a specific PID. We only support one or two units + * watching each PID for now, not more. */ + +- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); ++ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); ++ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { + set_remove(u->pids, LONG_TO_PTR(pid)); + } + +-static int watch_pids_in_path(Unit *u, const char *path) { ++void unit_unwatch_all_pids(Unit *u) { ++ assert(u); ++ ++ while (!set_isempty(u->pids)) ++ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); ++ ++ set_free(u->pids); ++ u->pids = NULL; ++} ++ ++static int unit_watch_pids_in_path(Unit *u, const char *path) { + _cleanup_closedir_ DIR *d = NULL; + _cleanup_fclose_ FILE *f = NULL; + int ret = 0, r; +@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { + if (!p) + return -ENOMEM; + +- r = watch_pids_in_path(u, p); ++ r = unit_watch_pids_in_path(u, p); + if (r < 0 && ret >= 0) + ret = r; + } +@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { + return ret; + } + +- + int unit_watch_all_pids(Unit *u) { + assert(u); + +- if (!u->cgroup_path) +- return -ENOENT; +- + /* Adds all PIDs from our cgroup to the set of PIDs we watch */ + +- return watch_pids_in_path(u, u->cgroup_path); +-} +- +-void unit_unwatch_all_pids(Unit *u) { +- Iterator i; +- void *e; +- +- assert(u); +- +- SET_FOREACH(e, u->pids, i) { +- hashmap_remove_value(u->manager->watch_pids1, e, u); +- hashmap_remove_value(u->manager->watch_pids2, e, u); +- } ++ if (!u->cgroup_path) ++ return -ENOENT; + +- set_free(u->pids); +- u->pids = NULL; ++ return unit_watch_pids_in_path(u, u->cgroup_path); + } + + void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { +@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { + continue; + + if (!pid_is_unwaited(pid)) +- set_remove(u->pids, e); ++ unit_unwatch_pid(u, pid); + } + } + +-- +1.7.9.2 + diff --git a/0008-dbus-fix-return-value-of-dispatch_rqueue.patch b/0008-dbus-fix-return-value-of-dispatch_rqueue.patch deleted file mode 100644 index 3985ab2b..00000000 --- a/0008-dbus-fix-return-value-of-dispatch_rqueue.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 2e8d788c2f90d062f208f8c57a97e7b33cb29f7d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:37:30 +0200 -Subject: [PATCH 08/15] dbus: fix return value of dispatch_rqueue() - ---- - src/libsystemd-bus/sd-bus.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libsystemd-bus/sd-bus.c b/src/libsystemd-bus/sd-bus.c -index 3f766fb..db0880f 100644 ---- a/src/libsystemd-bus/sd-bus.c -+++ b/src/libsystemd-bus/sd-bus.c -@@ -1215,11 +1215,11 @@ static int dispatch_rqueue(sd_bus *bus, sd_bus_message **m) { - if (r == 0) - return ret; - -- r = 1; -+ ret = 1; - } while (!z); - - *m = z; -- return 1; -+ return ret; - } - - int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) { --- -1.8.4 - diff --git a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch new file mode 100644 index 00000000..5bf1987e --- /dev/null +++ b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch @@ -0,0 +1,25 @@ +From 646e392e10924454576f10b072f78d7676422816 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 04:52:31 +0100 +Subject: [PATCH] logind: fix reference to systemd-user-sessions.service + +--- + src/login/logind-session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 548f049..3700522 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { + if (!scope) + return log_oom(); + +- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); ++ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); + if (r < 0) { + log_error("Failed to start session scope %s: %s %s", + scope, bus_error_message(&error, r), error.name); +-- +1.7.9.2 + diff --git a/0009-modules-load-fix-error-handling.patch b/0009-modules-load-fix-error-handling.patch deleted file mode 100644 index df350218..00000000 --- a/0009-modules-load-fix-error-handling.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b857193b1def5172e3641ca1d5bc9e08ae81aac4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:37:44 +0200 -Subject: [PATCH 09/15] modules-load: fix error handling - ---- - src/modules-load/modules-load.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c -index 7b19ee0..49ee420 100644 ---- a/src/modules-load/modules-load.c -+++ b/src/modules-load/modules-load.c -@@ -302,8 +302,8 @@ int main(int argc, char *argv[]) { - - STRV_FOREACH(i, arg_proc_cmdline_modules) { - k = load_module(ctx, *i); -- if (k < 0) -- r = EXIT_FAILURE; -+ if (k < 0 && r == 0) -+ r = k; - } - - r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); --- -1.8.4 - diff --git a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch new file mode 100644 index 00000000..f064927a --- /dev/null +++ b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch @@ -0,0 +1,70 @@ +From ff5f34d08c191c326c41a083745522383ac86cae Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 04:27:50 +0100 +Subject: [PATCH] mount: don't send out PropertiesChanged message if actually + nothing got changed + +--- + src/core/mount.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index b35e507..98812c9 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1390,7 +1390,7 @@ static int mount_add_one( + _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; + bool load_extras = false; + MountParameters *p; +- bool delete; ++ bool delete, changed = false; + Unit *u; + int r; + +@@ -1458,6 +1458,7 @@ static int mount_add_one( + } + + unit_add_to_load_queue(u); ++ changed = true; + } else { + delete = false; + +@@ -1476,6 +1477,7 @@ static int mount_add_one( + /* Load in the extras later on, after we + * finished initialization of the unit */ + load_extras = true; ++ changed = true; + } + } + +@@ -1488,10 +1490,16 @@ static int mount_add_one( + } + + p = &MOUNT(u)->parameters_proc_self_mountinfo; ++ ++ changed = changed || ++ !streq_ptr(p->options, options) || ++ !streq_ptr(p->what, what) || ++ !streq_ptr(p->fstype, fstype); ++ + if (set_flags) { + MOUNT(u)->is_mounted = true; + MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; +- MOUNT(u)->just_changed = !streq_ptr(p->options, o); ++ MOUNT(u)->just_changed = changed; + } + + MOUNT(u)->from_proc_self_mountinfo = true; +@@ -1514,7 +1522,8 @@ static int mount_add_one( + goto fail; + } + +- unit_add_to_dbus_queue(u); ++ if (changed) ++ unit_add_to_dbus_queue(u); + + return 0; + +-- +1.7.9.2 + diff --git a/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch b/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch deleted file mode 100644 index 3994d1ee..00000000 --- a/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 62678deda2dcd43954bf02f783da01e48c7f8fce Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:38:09 +0200 -Subject: [PATCH 10/15] efi: never call qsort on potentially NULL arrays - ---- - src/shared/efivars.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/shared/efivars.c b/src/shared/efivars.c -index 1d5b6f9..c015b16 100644 ---- a/src/shared/efivars.c -+++ b/src/shared/efivars.c -@@ -384,7 +384,8 @@ int efi_get_boot_options(uint16_t **options) { - list[count ++] = id; - } - -- qsort(list, count, sizeof(uint16_t), cmp_uint16); -+ if (list) -+ qsort(list, count, sizeof(uint16_t), cmp_uint16); - - *options = list; - return count; --- -1.8.4 - diff --git a/0010-man-update-link-to-LSB.patch b/0010-man-update-link-to-LSB.patch new file mode 100644 index 00000000..07a96f01 --- /dev/null +++ b/0010-man-update-link-to-LSB.patch @@ -0,0 +1,35 @@ +From 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 08:10:19 -0500 +Subject: [PATCH] man: update link to LSB + +https://bugzilla.redhat.com/show_bug.cgi?id=1073402 +--- + man/daemon.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index fd29ba7..ab58d08 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -252,7 +252,7 @@ + detect service errors and problems. It + is recommended to follow the exit code + scheme as defined in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + recommendations for SysV init + scripts. + +@@ -395,7 +395,7 @@ + exclusively on boot (and manually by the + administrator) via SysV init scripts, as + detailed in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + Linux Standard Base Core + Specification. This method of + activation is supported ubiquitously on Linux +-- +1.7.9.2 + diff --git a/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch new file mode 100644 index 00000000..79bf62d4 --- /dev/null +++ b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch @@ -0,0 +1,51 @@ +From aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 04:28:37 +0100 +Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that + are stopped + +--- + src/core/mount.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index 98812c9..7a92e1c 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1679,20 +1679,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + Mount *mount = MOUNT(u); + + if (!mount->is_mounted) { +- /* This has just been unmounted. */ + + mount->from_proc_self_mountinfo = false; + + switch (mount->state) { + + case MOUNT_MOUNTED: ++ /* This has just been unmounted by ++ * somebody else, follow the state ++ * change. */ + mount_enter_dead(mount, MOUNT_SUCCESS); + break; + + default: +- mount_set_state(mount, mount->state); + break; +- + } + + } else if (mount->just_mounted || mount->just_changed) { +@@ -1703,6 +1703,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + + case MOUNT_DEAD: + case MOUNT_FAILED: ++ /* This has just been mounted by ++ * somebody else, follow the state ++ * change. */ + mount_enter_mounted(mount, MOUNT_SUCCESS); + break; + +-- +1.7.9.2 + diff --git a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch new file mode 100644 index 00000000..6ff83d12 --- /dev/null +++ b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch @@ -0,0 +1,41 @@ +From 47d80904a1f72d559962cc5ad32fffd46672a34a Mon Sep 17 00:00:00 2001 +From: Uoti Urpala +Date: Thu, 20 Feb 2014 03:00:09 +0200 +Subject: [PATCH] logs-show: fix corrupt output with empty messages + +If a message had zero length, journalctl would print no newline, and +two output lines would be concatenated. Fix. The problem was +introduced in commit 31f7bf199452 ("logs-show: print multiline +messages"). Affected short and verbose output modes. + +Before fix: + +Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit + +after: + +Feb 09 21:16:17 glyph dhclient[1323]: +Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit +--- + src/shared/logs-show.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/shared/logs-show.c src/shared/logs-show.c +index 61c3652..12d4a1c 100644 +--- src/shared/logs-show.c ++++ src/shared/logs-show.c +@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output + } + } + ++ /* A special case: make sure that we print a newline when ++ the message is empty. */ ++ if (message_len == 0) ++ fputs("\n", f); ++ + for (pos = message; + pos < message + message_len; + pos = end + 1, line++) { +-- +1.7.9.2 + diff --git a/0011-man-systemd-bootchart-fix-spacing-in-command.patch b/0011-man-systemd-bootchart-fix-spacing-in-command.patch new file mode 100644 index 00000000..60c206b3 --- /dev/null +++ b/0011-man-systemd-bootchart-fix-spacing-in-command.patch @@ -0,0 +1,28 @@ +From 82ed60080d327d7301fcd55f5a1f8511f894b9d5 Mon Sep 17 00:00:00 2001 +From: Zachary Cook +Date: Thu, 6 Mar 2014 03:49:49 -0500 +Subject: [PATCH] man: systemd-bootchart - fix spacing in command + +Use the same formatting as the systemd-analyze man page, so that man shows a space. +--- + man/systemd-bootchart.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-bootchart.xml man/systemd-bootchart.xml +index d0adaad..1715d5d 100644 +--- man/systemd-bootchart.xml ++++ man/systemd-bootchart.xml +@@ -78,8 +78,8 @@ + in which order, and where possible problems + exist in the startup sequence of the system. + It is essentially a more detailed version of +- the systemd-analyze +- plot function. ++ the systemd-analyze plot ++ function. + + + Of course, bootchart can also be used at any +-- +1.7.9.2 + diff --git a/0011-strv-don-t-access-potentially-NULL-string-arrays.patch b/0011-strv-don-t-access-potentially-NULL-string-arrays.patch deleted file mode 100644 index 0ab90504..00000000 --- a/0011-strv-don-t-access-potentially-NULL-string-arrays.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5b4fb02d890d5c9777e9a6e798e0b8922a8a9fd8 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:38:28 +0200 -Subject: [PATCH 11/15] strv: don't access potentially NULL string arrays - ---- - src/shared/env-util.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/shared/env-util.c b/src/shared/env-util.c -index 5e29629..7976881 100644 ---- a/src/shared/env-util.c -+++ b/src/shared/env-util.c -@@ -405,7 +405,9 @@ char **strv_env_clean_log(char **e, const char *message) { - e[k++] = *p; - } - -- e[k] = NULL; -+ if (e) -+ e[k] = NULL; -+ - return e; - } - --- -1.8.4 - diff --git a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch new file mode 100644 index 00000000..00b0669b --- /dev/null +++ b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch @@ -0,0 +1,30 @@ +From 0b6b7c2004317da48e5bbd3078c5662d8f0061b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 26 Feb 2014 23:01:43 -0500 +Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar + +Positional arguments only make sense with the default action. +For other actions, complain instead of ignoring them silently. +--- + src/journal/journalctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/journal/journalctl.c src/journal/journalctl.c +index a328ba1..0619b25 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { + return -EINVAL; + } + ++ if (arg_action != ACTION_SHOW && optind < argc) { ++ log_error("Extraneous arguments starting with '%s'", argv[optind]); ++ return -EINVAL; ++ } ++ + return 1; + } + +-- +1.7.9.2 + diff --git a/0012-man-add-missing-comma.patch b/0012-man-add-missing-comma.patch new file mode 100644 index 00000000..9d779f43 --- /dev/null +++ b/0012-man-add-missing-comma.patch @@ -0,0 +1,26 @@ +From 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 23:54:13 -0500 +Subject: [PATCH] man: add missing comma + +marcosf0> missing comma in udevadm "see also" section +--- + man/udevadm.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git man/udevadm.xml man/udevadm.xml +index a3f8d54..21d1443 100644 +--- man/udevadm.xml ++++ man/udevadm.xml +@@ -594,7 +594,7 @@ + See Also + + udev7 +- ++ , + + systemd-udevd.service8 + +-- +1.7.9.2 + diff --git a/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch b/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch deleted file mode 100644 index 1d91d801..00000000 --- a/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 69c2b6be8fc607412a13cd0ea03a629b4965c816 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:38:52 +0200 -Subject: [PATCH 12/15] mkdir: pass a proper function pointer to - mkdir_safe_internal - ---- - src/shared/mkdir.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/mkdir.c b/src/shared/mkdir.c -index b7e5c6e..43c6ea6 100644 ---- a/src/shared/mkdir.c -+++ b/src/shared/mkdir.c -@@ -53,7 +53,7 @@ int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkd - } - - int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid) { -- return mkdir_safe_internal(path, mode, uid, gid, false); -+ return mkdir_safe_internal(path, mode, uid, gid, mkdir); - } - - static int is_dir(const char* path) { --- -1.8.4 - diff --git a/0013-cdrom_id-use-the-old-MMC-fallback.patch b/0013-cdrom_id-use-the-old-MMC-fallback.patch new file mode 100644 index 00000000..4703b76f --- /dev/null +++ b/0013-cdrom_id-use-the-old-MMC-fallback.patch @@ -0,0 +1,54 @@ +From a14f14976094650e17d39f3a7d15a1c68c93c333 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 27 Feb 2014 11:06:37 +0100 +Subject: [PATCH] cdrom_id: use the old MMC fallback + +https://bugzilla.redhat.com/show_bug.cgi?id=1038015 +The problem seems to be that the your virtual DVD is emulating a really +old DVD device, and doing it kind of strangely. + +> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 +> probing: '/dev/sr0' +> INQUIRY: [IMM ][Virtual CD/DVD ][0316] +> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h + +So your virtual drive rejects the GET CONFIGURATION command as illegal. + +Other pre-MMC2 drives that don't accept this command usually return the +error +SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id +tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set +and all the /dev/disk/by-label (etc) links get set up. + +The virtual drive returns the error SK=5h,ASC=24h (invalid field in +Command Descriptor Block), which cdrom_id doesn't handle, so it gives up +and the links never get made. + +The ideal solution would be to make the IMM to emulate a device that's +less than 15 years old, but I'm not going to hold my breath waiting for +that. + +So probably cdrom_id should also use the old MMC fallback when the error +is SK=5h,ASC=24h, and then all of this would work as expected. + +Suggested-by:Luca Miccini +--- + src/udev/cdrom_id/cdrom_id.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/cdrom_id/cdrom_id.c src/udev/cdrom_id/cdrom_id.c +index 93467c2..33b2bc3 100644 +--- src/udev/cdrom_id/cdrom_id.c ++++ src/udev/cdrom_id/cdrom_id.c +@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) + if ((err != 0)) { + info_scsi_cmd_err(udev, "GET CONFIGURATION", err); + /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ +- if (SK(err) == 0x5 && ASC(err) == 0x20) { ++ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { + log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); + log_debug("trying to work around the problem"); + ret = cd_profiles_old_mmc(udev, fd); +-- +1.7.9.2 + diff --git a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch new file mode 100644 index 00000000..f65e5d3e --- /dev/null +++ b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch @@ -0,0 +1,38 @@ +From 6c49212741253dae05b89d22374186f092ef1e5a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 7 Mar 2014 01:50:34 +0100 +Subject: [PATCH] units: Do not unescape instance name in + systemd-backlight@.service + +The instance name is never escaped in the udev rule, but unescaped in the unit. +This results in the following error message on Asus boards: + + Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory +--- + units/systemd-backlight@.service.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git units/systemd-backlight@.service.in units/systemd-backlight@.service.in +index 5caa5d5..e945d87 100644 +--- units/systemd-backlight@.service.in ++++ units/systemd-backlight@.service.in +@@ -6,7 +6,7 @@ + # (at your option) any later version. + + [Unit] +-Description=Load/Save Screen Backlight Brightness of %I ++Description=Load/Save Screen Backlight Brightness of %i + Documentation=man:systemd-backlight@.service(8) + DefaultDependencies=no + RequiresMountsFor=/var/lib/systemd/backlight +@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootlibexecdir@/systemd-backlight load %I +-ExecStop=@rootlibexecdir@/systemd-backlight save %I ++ExecStart=@rootlibexecdir@/systemd-backlight load %i ++ExecStop=@rootlibexecdir@/systemd-backlight save %i +-- +1.7.9.2 + diff --git a/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch new file mode 100644 index 00000000..c4c2f4cb --- /dev/null +++ b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch @@ -0,0 +1,31 @@ +From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 +From: Tero Roponen +Date: Tue, 25 Feb 2014 17:19:35 +0200 +Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid + +Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: + Failed to read /proc/self/loginuid: No such file or directory + + Container Fedora failed with error code 1. + +This patch fixes the problem. +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 1fe641b..92b6728 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { + return 0; + + r = read_one_line_file("/proc/self/loginuid", &p); +- if (r == -EEXIST) ++ if (r == -ENOENT) + return 0; + if (r < 0) { + log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); +-- +1.7.9.2 + diff --git a/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch b/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch deleted file mode 100644 index 1ed8f92a..00000000 --- a/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7074fecf6747c9a6ad872cc87701481e8bece8b0 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Wed, 2 Oct 2013 15:35:16 -0400 -Subject: [PATCH 14/15] tmpfiles.d: include setgid perms for /run/log/journal - -4608af4333d0f7f5 set permissions for journal storage on persistent disk -but not the volatile storage. - -ref: https://bugs.archlinux.org/task/37170 ---- - tmpfiles.d/systemd.conf | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf -index b630440..a05c657 100644 ---- a/tmpfiles.d/systemd.conf -+++ b/tmpfiles.d/systemd.conf -@@ -26,3 +26,5 @@ F /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)" - - m /var/log/journal 2755 root systemd-journal - - - m /var/log/journal/%m 2755 root systemd-journal - - -+m /run/log/journal 2755 root systemd-journal - - -+m /run/log/journal/%m 2755 root systemd-journal - - --- -1.8.4 - diff --git a/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch b/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch deleted file mode 100644 index e6981e63..00000000 --- a/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch +++ /dev/null @@ -1,181 +0,0 @@ -From fc676b00a7545743429e0c9b12a0f0707b1059aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 5 Oct 2013 13:09:43 -0400 -Subject: [PATCH] core: do not add "what" to RequiresMountsFor for network - mounts - -For cifs mount like //server/share, we would get -RequiresMountsFor=/server/share, which probably isn't -harmful, but quite confusing. - -Unfortunately a bunch of static functions had to be moved -up, but patch is really one line. ---- - src/core/mount.c | 137 ++++++++++++++++++++++++++++-------------------------- - 1 file changed, 70 insertions(+), 67 deletions(-) - -diff --git src/core/mount.c src/core/mount.c -index db055f0..70cd372 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -59,6 +59,72 @@ static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = { - [MOUNT_FAILED] = UNIT_FAILED - }; - -+static char* mount_test_option(const char *haystack, const char *needle) { -+ struct mntent me = { .mnt_opts = (char*) haystack }; -+ -+ assert(needle); -+ -+ /* Like glibc's hasmntopt(), but works on a string, not a -+ * struct mntent */ -+ -+ if (!haystack) -+ return NULL; -+ -+ return hasmntopt(&me, needle); -+} -+ -+static bool mount_is_network(MountParameters *p) { -+ assert(p); -+ -+ if (mount_test_option(p->options, "_netdev")) -+ return true; -+ -+ if (p->fstype && fstype_is_network(p->fstype)) -+ return true; -+ -+ return false; -+} -+ -+static bool mount_is_bind(MountParameters *p) { -+ assert(p); -+ -+ if (mount_test_option(p->options, "bind")) -+ return true; -+ -+ if (p->fstype && streq(p->fstype, "bind")) -+ return true; -+ -+ if (mount_test_option(p->options, "rbind")) -+ return true; -+ -+ if (p->fstype && streq(p->fstype, "rbind")) -+ return true; -+ -+ return false; -+} -+ -+static bool mount_is_auto(MountParameters *p) { -+ assert(p); -+ -+ return !mount_test_option(p->options, "noauto"); -+} -+ -+static bool needs_quota(MountParameters *p) { -+ assert(p); -+ -+ if (mount_is_network(p)) -+ return false; -+ -+ if (mount_is_bind(p)) -+ return false; -+ -+ return mount_test_option(p->options, "usrquota") || -+ mount_test_option(p->options, "grpquota") || -+ mount_test_option(p->options, "quota") || -+ mount_test_option(p->options, "usrjquota") || -+ mount_test_option(p->options, "grpjquota"); -+} -+ - static void mount_init(Unit *u) { - Mount *m = MOUNT(u); - -@@ -182,7 +248,10 @@ static int mount_add_mount_links(Mount *m) { - * for the source path (if this is a bind mount) to be - * available. */ - pm = get_mount_parameters_fragment(m); -- if (pm && pm->what && path_is_absolute(pm->what)) { -+ if (pm && pm->what && -+ path_is_absolute(pm->what) && -+ !mount_is_network(pm)) { -+ - r = unit_require_mounts_for(UNIT(m), pm->what); - if (r < 0) - return r; -@@ -214,72 +283,6 @@ static int mount_add_mount_links(Mount *m) { - return 0; - } - --static char* mount_test_option(const char *haystack, const char *needle) { -- struct mntent me = { .mnt_opts = (char*) haystack }; -- -- assert(needle); -- -- /* Like glibc's hasmntopt(), but works on a string, not a -- * struct mntent */ -- -- if (!haystack) -- return NULL; -- -- return hasmntopt(&me, needle); --} -- --static bool mount_is_network(MountParameters *p) { -- assert(p); -- -- if (mount_test_option(p->options, "_netdev")) -- return true; -- -- if (p->fstype && fstype_is_network(p->fstype)) -- return true; -- -- return false; --} -- --static bool mount_is_bind(MountParameters *p) { -- assert(p); -- -- if (mount_test_option(p->options, "bind")) -- return true; -- -- if (p->fstype && streq(p->fstype, "bind")) -- return true; -- -- if (mount_test_option(p->options, "rbind")) -- return true; -- -- if (p->fstype && streq(p->fstype, "rbind")) -- return true; -- -- return false; --} -- --static bool mount_is_auto(MountParameters *p) { -- assert(p); -- -- return !mount_test_option(p->options, "noauto"); --} -- --static bool needs_quota(MountParameters *p) { -- assert(p); -- -- if (mount_is_network(p)) -- return false; -- -- if (mount_is_bind(p)) -- return false; -- -- return mount_test_option(p->options, "usrquota") || -- mount_test_option(p->options, "grpquota") || -- mount_test_option(p->options, "quota") || -- mount_test_option(p->options, "usrjquota") || -- mount_test_option(p->options, "grpjquota"); --} -- - static int mount_add_device_links(Mount *m) { - MountParameters *p; - bool device_wants_mount = false; --- -1.7.9.2 - diff --git a/0026-udevadm.xml-document-resolve-names-option-for-test.patch b/0026-udevadm.xml-document-resolve-names-option-for-test.patch deleted file mode 100644 index 04d30323..00000000 --- a/0026-udevadm.xml-document-resolve-names-option-for-test.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 14a9283eb38a93ec384c322ccbe06352c86a25f8 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sun, 13 Oct 2013 17:42:51 -0400 -Subject: [PATCH] udevadm.xml: document --resolve-names option for test - -And remove documentation of the --subsystem flag which doesn't actually -exist. ---- - man/udevadm.xml | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git man/udevadm.xml man/udevadm.xml -index d0b257d..b959216 100644 ---- man/udevadm.xml -+++ man/udevadm.xml -@@ -462,9 +462,13 @@ - - - -- -+ - -- The subsystem string. -+ Specify when udevadm should resolve names of users and groups. -+ When set to early (the default) names will be resolved when the -+ rules are parsed. When set to late names will be resolved for -+ every event. When set to never names will never be resolved and -+ all devices will be owned by root. - - - --- -1.7.9.2 - diff --git a/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch b/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch deleted file mode 100644 index bd8c2b31..00000000 --- a/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 306e6650221d88b29831bcdcef94447afb65df5c Mon Sep 17 00:00:00 2001 -From: Igor Zhbanov -Date: Tue, 15 Oct 2013 14:35:13 +0400 -Subject: [PATCH] Fix for SIGSEGV in systemd-bootchart on short-living - processes - -The function svg_ps_bars() dereferencess NULL pointer in the line - endtime = ps->last->sampledata->sampletime; -because of partially initialized ps_struct (ps->last == NULL). - -If some process terminates between scaning /proc directory in the log_sample() -function and reading additional information from /proc/PID/... files, -the files couldn't be read, the loop will be continued and partially -initialized structure returned. ---- - src/bootchart/store.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/bootchart/store.c src/bootchart/store.c -index f8c97c2..7f86cfe 100644 ---- src/bootchart/store.c -+++ src/bootchart/store.c -@@ -275,7 +275,7 @@ schedstat_next: - pscount++; - - /* mark our first sample */ -- ps->first = ps->sample; -+ ps->first = ps->last = ps->sample; - ps->sample->runtime = atoll(rt); - ps->sample->waittime = atoll(wt); - --- -1.7.9.2 - diff --git a/0031-man-document-the-b-special-boot-option.patch b/0031-man-document-the-b-special-boot-option.patch deleted file mode 100644 index 9d45f618..00000000 --- a/0031-man-document-the-b-special-boot-option.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 775657712d0f6d14b70a0fe947a95a9ecc212440 Mon Sep 17 00:00:00 2001 -From: Jan Engelhardt -Date: Tue, 15 Oct 2013 08:58:50 +0200 -Subject: [PATCH] man: document the -b special boot option - ---- - man/kernel-command-line.xml | 1 + - man/systemd.xml | 1 + - 2 files changed, 2 insertions(+) - -diff --git man/kernel-command-line.xml man/kernel-command-line.xml -index cc267a3..abe68e5 100644 ---- man/kernel-command-line.xml -+++ man/kernel-command-line.xml -@@ -123,6 +123,7 @@ - - - -+ -b - emergency - single - s -diff --git man/systemd.xml man/systemd.xml -index fe6e331..85c06d3 100644 ---- man/systemd.xml -+++ man/systemd.xml -@@ -1149,6 +1149,7 @@ - - - -+ -b - emergency - - Boot into emergency --- -1.7.9.2 - diff --git a/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch b/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch deleted file mode 100644 index ff651c17..00000000 --- a/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch +++ /dev/null @@ -1,81 +0,0 @@ -Patch based on - - From e0d856dd48d640f3d95efe7b769edec02373cc74 Mon Sep 17 00:00:00 2001 - From: Lennart Poettering - Date: Wed, 16 Oct 2013 02:51:24 +0200 - Subject: [PATCH] rules: don't limit some of the rules to the "add" action - - Devices should show up in systemd regardless whether the user invoked - "udevadm trigger" or not. Before this change some devices might have - suddenly disappeared due issuing that command. - -and also on - - From 1a0464230c08506c3fd715ff7cc56660df3a85ca Mon Sep 17 00:00:00 2001 - From: Bastien Nocera - Date: Fri, 11 Oct 2013 07:45:32 +0000 - Subject: Add support for saving/restoring keyboard backlights - - Piggy-backing on the display backlight code, this saves and restores - keyboard backlights on supported devices. - - The detection code matches that of UPower: - http://cgit.freedesktop.org/upower/tree/src/up-kbd-backlight.c#n173 - - https://bugs.freedesktop.org/show_bug.cgi?id=70367 - - [tomegun: also work for devices named "{smc,samsung,asus}::kbd_backlight"] - ---- - rules/99-systemd.rules.in | 10 ++++++---- - src/backlight/backlight.c | 7 +++++-- - 2 files changed, 11 insertions(+), 6 deletions(-) - ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in 2014-02-14 14:46:48.358235397 +0000 -@@ -51,14 +51,16 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_dev - - ACTION=="add", SUBSYSTEM=="net", KERNEL!="lo", RUN+="@rootlibexecdir@/systemd-sysctl --prefix=/proc/sys/net/ipv4/conf/$name --prefix=/proc/sys/net/ipv4/neigh/$name --prefix=/proc/sys/net/ipv6/conf/$name --prefix=/proc/sys/net/ipv6/neigh/$name" - --# Pull in backlight save/restore for all firmware backlight devices -+# Pull in backlight save/restore for all backlight devices and -+# keyboard backlights - --ACTION=="add", SUBSYSTEM=="backlight", ATTR{type}=="firmware", TAG+="systemd", ENV{SYSTEMD_WANTS}+="systemd-backlight@$name.service" -+SUBSYSTEM=="backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@backlight:$name.service" -+SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@leds:$name.service" - - # Asynchronously mount file systems implemented by these modules as - # soon as they are loaded. - --SUBSYSTEM=="module", KERNEL=="fuse", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" --SUBSYSTEM=="module", KERNEL=="configfs", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" -+SUBSYSTEM=="module", KERNEL=="fuse", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" -+SUBSYSTEM=="module", KERNEL=="configfs", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" - - LABEL="systemd_end" ---- src/backlight/backlight.c -+++ src/backlight/backlight.c 2014-02-14 15:20:47.534298128 +0000 -@@ -56,9 +56,11 @@ int main(int argc, char *argv[]) { - - errno = 0; - device = udev_device_new_from_subsystem_sysname(udev, "backlight", argv[2]); -+ if (!device) -+ device = udev_device_new_from_subsystem_sysname(udev, "leds", argv[2]); - if (!device) { - if (errno != 0) { -- log_error("Failed to get backlight device: %m"); -+ log_error("Failed to get backlight device '%s': %m", argv[2]); - r = -errno; - } else - r = log_oom(); -@@ -66,7 +68,8 @@ int main(int argc, char *argv[]) { - goto finish; - } - -- if (!streq_ptr(udev_device_get_subsystem(device), "backlight")) { -+ if (!streq_ptr(udev_device_get_subsystem(device), "backlight") && -+ !streq_ptr(udev_device_get_subsystem(device), "leds")) { - log_error("Not a backlight device: %s", argv[2]); - r = -ENODEV; - goto finish; diff --git a/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch b/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch deleted file mode 100644 index c14d8d70..00000000 --- a/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ca2f4176fee7dd5f5664429988e7059163fddb2d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 17 Oct 2013 03:20:46 +0200 -Subject: [PATCH] tmpfiles: log unaccessible FUSE mount points only as debug - message - ---- - src/tmpfiles/tmpfiles.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index 3cc831a..e23847b 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -275,12 +275,15 @@ static int dir_cleanup( - continue; - - if (fstatat(dirfd(d), dent->d_name, &s, AT_SYMLINK_NOFOLLOW) < 0) { -+ if (errno == ENOENT) -+ continue; - -- if (errno != ENOENT) { -+ /* FUSE, NFS mounts, SELinux might return EACCES */ -+ if (errno == EACCES) -+ log_debug("stat(%s/%s) failed: %m", p, dent->d_name); -+ else - log_error("stat(%s/%s) failed: %m", p, dent->d_name); -- r = -errno; -- } -- -+ r = -errno; - continue; - } - --- -1.7.9.2 - diff --git a/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch b/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch deleted file mode 100644 index 07bfe49a..00000000 --- a/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a23873387a6e722b711092c89a08ab3f3d19361c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 11 Nov 2013 19:53:59 -0500 -Subject: [PATCH] systemd-python: fix booted() and add two functions to docs - -For some reason sphinx doesn't want to show inherited C functions. ---- - src/python-systemd/_daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/python-systemd/_daemon.c src/python-systemd/_daemon.c -index 6b84fb8..f0ab16f 100644 ---- src/python-systemd/_daemon.c -+++ src/python-systemd/_daemon.c -@@ -51,7 +51,7 @@ static PyObject* booted(PyObject *self, PyObject *args) { - assert(args == NULL); - - r = sd_booted(); -- if (set_error(r, NULL, NULL)) -+ if (set_error(r, NULL, NULL) < 0) - return NULL; - - return PyBool_FromLong(r); --- -1.7.9.2 - diff --git a/0035-activate-mention-E-in-the-help-text.patch b/0035-activate-mention-E-in-the-help-text.patch deleted file mode 100644 index 92ae2ded..00000000 --- a/0035-activate-mention-E-in-the-help-text.patch +++ /dev/null @@ -1,25 +0,0 @@ -From df49ccafc0d57c731a3da3014ad55d5bb9ed3e1b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Wed, 13 Nov 2013 13:36:17 +0200 -Subject: [PATCH] activate: mention -E in the help text - ---- - src/activate/activate.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git src/activate/activate.c src/activate/activate.c -index 07e46b9..537626d 100644 ---- src/activate/activate.c -+++ src/activate/activate.c -@@ -289,6 +289,8 @@ static int help(void) { - " -l --listen=ADDR Listen for raw connections at ADDR\n" - " -a --accept Spawn separate child for each connection\n" - " -h --help Show this help and exit\n" -+ " -E --environment=NAME[=VALUE]\n" -+ " Pass an environment variable to children\n" - " --version Print version string and exit\n" - "\n" - "Note: file descriptors from sd_listen_fds() will be passed through.\n" --- -1.7.9.2 - diff --git a/0036-activate-fix-crash-when-s-is-passed.patch b/0036-activate-fix-crash-when-s-is-passed.patch deleted file mode 100644 index e1a0b2b1..00000000 --- a/0036-activate-fix-crash-when-s-is-passed.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ed6556920c1a6cdfe0bb04e806bc1f54ea191545 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Wed, 13 Nov 2013 13:36:16 +0200 -Subject: [PATCH] activate: fix crash when -s is passed - -getopt_long() was told to accept -s which was never implemented. ---- - src/activate/activate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/activate/activate.c src/activate/activate.c -index 537626d..2639d1c 100644 ---- src/activate/activate.c -+++ src/activate/activate.c -@@ -344,7 +344,7 @@ static int parse_argv(int argc, char *argv[]) { - assert(argc >= 0); - assert(argv); - -- while ((c = getopt_long(argc, argv, "+hl:saE:", options, NULL)) >= 0) -+ while ((c = getopt_long(argc, argv, "+hl:aE:", options, NULL)) >= 0) - switch(c) { - case 'h': - help(); --- -1.7.9.2 - diff --git a/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch b/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch deleted file mode 100644 index 2ced4b3d..00000000 --- a/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 87267de89ddce9b1b812b720e1fc9a6cb554236e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 16 Nov 2013 17:29:28 -0500 -Subject: [PATCH] tmpfiles: adjust excludes for the new per-service private - dirs - -In d8c9d3a (systemd: use unit name in PrivateTmp directories) -I forgot to update the tmpfiles config. ---- - tmpfiles.d/tmp.conf | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git tmpfiles.d/tmp.conf tmpfiles.d/tmp.conf -index 3b534a1..f0312ef 100644 ---- tmpfiles.d/tmp.conf -+++ tmpfiles.d/tmp.conf -@@ -12,6 +12,23 @@ d /tmp 1777 root root 10d - d /var/tmp 1777 root root - - - # Exclude namespace mountpoints created with PrivateTmp=yes -+x /tmp/systemd-*.service-* -+x /var/tmp/systemd-*.service-* -+X /tmp/systemd-*.service-*/tmp -+X /var/tmp/systemd-*.service-*/tmp -+x /tmp/systemd-*.socket-* -+x /var/tmp/systemd-*.socket-* -+X /tmp/systemd-*.socket-*/tmp -+X /var/tmp/systemd-*.socket-*/tmp -+x /tmp/systemd-*.mount-* -+x /var/tmp/systemd-*.mount-* -+X /tmp/systemd-*.mount-*/tmp -+X /var/tmp/systemd-*.mount-*/tmp -+x /tmp/systemd-*.swap-* -+x /var/tmp/systemd-*.swap-* -+X /tmp/systemd-*.swap-*/tmp -+X /var/tmp/systemd-*.swap-*/tmp -+# keep those for compatibility during upgrades - x /tmp/systemd-private-* - x /var/tmp/systemd-private-* - X /tmp/systemd-private-*/tmp --- -1.7.9.2 - diff --git a/0038-core-socket-fix-SO_REUSEPORT.patch b/0038-core-socket-fix-SO_REUSEPORT.patch deleted file mode 100644 index c613c97a..00000000 --- a/0038-core-socket-fix-SO_REUSEPORT.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f0511bd7e3d591383485a36ddcb764abe74b1939 Mon Sep 17 00:00:00 2001 -From: Shawn Landden -Date: Sat, 16 Nov 2013 13:18:13 -0800 -Subject: [PATCH] core/socket: fix SO_REUSEPORT - ---- - src/core/load-fragment-gperf.gperf.m4 | 1 + - src/core/socket.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git src/core/load-fragment-gperf.gperf.m4 src/core/load-fragment-gperf.gperf.m4 -index e3025d2..b64fdc9 100644 ---- src/core/load-fragment-gperf.gperf.m4 -+++ src/core/load-fragment-gperf.gperf.m4 -@@ -210,6 +210,7 @@ Socket.Broadcast, config_parse_bool, 0, - Socket.PassCredentials, config_parse_bool, 0, offsetof(Socket, pass_cred) - Socket.PassSecurity, config_parse_bool, 0, offsetof(Socket, pass_sec) - Socket.TCPCongestion, config_parse_string, 0, offsetof(Socket, tcp_congestion) -+Socket.ReusePort, config_parse_bool, 0, offsetof(Socket, reuseport) - Socket.MessageQueueMaxMessages, config_parse_long, 0, offsetof(Socket, mq_maxmsg) - Socket.MessageQueueMessageSize, config_parse_long, 0, offsetof(Socket, mq_msgsize) - Socket.Service, config_parse_socket_service, 0, 0 -diff --git src/core/socket.c src/core/socket.c -index f505e4f..751f20b 100644 ---- src/core/socket.c -+++ src/core/socket.c -@@ -771,7 +771,7 @@ static void socket_apply_socket_options(Socket *s, int fd) { - - if (s->reuseport) { - int b = s->reuseport; -- if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &b, sizeof(b))) -+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &b, sizeof(b)) < 0) - log_warning_unit(UNIT(s)->id, "SO_REUSEPORT failed: %m"); - } - --- -1.7.9.2 - diff --git a/0039-journal-when-appending-to-journal-file-allocate-larg.patch b/0039-journal-when-appending-to-journal-file-allocate-larg.patch deleted file mode 100644 index 9e93024e..00000000 --- a/0039-journal-when-appending-to-journal-file-allocate-larg.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a676e66535e12458ea6d366a653f8dd60f982504 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 26 Nov 2013 18:39:42 +0100 -Subject: [PATCH] journal: when appending to journal file, allocate larger - blocks at once - ---- - src/journal/journal-file.c | 26 +++++++++++++++++--------- - 1 file changed, 17 insertions(+), 9 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index bc72fca..d606ada 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -68,6 +68,9 @@ - /* How many entries to keep in the entry array chain cache at max */ - #define CHAIN_CACHE_MAX 20 - -+/* How much to increase the journal file size at once each time we allocate something new. */ -+#define FILE_SIZE_INCREASE (8ULL*1024ULL*1024ULL) /* 8MB */ -+ - int journal_file_set_online(JournalFile *f) { - assert(f); - -@@ -218,8 +221,7 @@ static int journal_file_refresh_header(JournalFile *f) { - journal_file_set_online(f); - - /* Sync the online state to disk */ -- msync(f->header, PAGE_ALIGN(sizeof(Header)), MS_SYNC); -- fdatasync(f->fd); -+ fsync(f->fd); - - return 0; - } -@@ -313,7 +315,7 @@ static int journal_file_verify_header(JournalFile *f) { - } - - static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) { -- uint64_t old_size, new_size; -+ uint64_t old_size, new_size, file_size; - int r; - - assert(f); -@@ -333,12 +335,10 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (new_size <= old_size) - return 0; - -- if (f->metrics.max_size > 0 && -- new_size > f->metrics.max_size) -+ if (f->metrics.max_size > 0 && new_size > f->metrics.max_size) - return -E2BIG; - -- if (new_size > f->metrics.min_size && -- f->metrics.keep_free > 0) { -+ if (new_size > f->metrics.min_size && f->metrics.keep_free > 0) { - struct statvfs svfs; - - if (fstatvfs(f->fd, &svfs) >= 0) { -@@ -363,8 +363,16 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (r != 0) - return -r; - -- if (fstat(f->fd, &f->last_stat) < 0) -- return -errno; -+ /* Increase the file size a bit further than this, so that we -+ * we can create larger memory maps to cache */ -+ file_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; -+ if (file_size > (uint64_t) f->last_stat.st_size) { -+ if (file_size > new_size) -+ ftruncate(f->fd, file_size); -+ -+ if (fstat(f->fd, &f->last_stat) < 0) -+ return -errno; -+ } - - f->header->arena_size = htole64(new_size - le64toh(f->header->header_size)); - --- -1.7.9.2 - diff --git a/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch b/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch deleted file mode 100644 index 74368958..00000000 --- a/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch +++ /dev/null @@ -1,247 +0,0 @@ -From f268980d2cee694fa4118a71402a47c316af0425 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 26 Nov 2013 20:37:53 +0100 -Subject: [PATCH] journal: optimize bisection logic a bit by caching the last - position - -This way we can do a quick restart limiting a bit how wildly we need to -jump around during the bisection process. ---- - src/journal/journal-file.c | 134 ++++++++++++++++++++++++++++++++------------ - 1 file changed, 99 insertions(+), 35 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 481c242..27cd16f 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -1366,6 +1366,7 @@ typedef struct ChainCacheItem { - uint64_t array; /* the cached array */ - uint64_t begin; /* the first item in the cached array */ - uint64_t total; /* the total number of items in all arrays before this one in the chain */ -+ uint64_t last_index; /* the last index we looked at, to optimize locality when bisecting */ - } ChainCacheItem; - - static void chain_cache_put( -@@ -1374,7 +1375,8 @@ static void chain_cache_put( - uint64_t first, - uint64_t array, - uint64_t begin, -- uint64_t total) { -+ uint64_t total, -+ uint64_t last_index) { - - if (!ci) { - /* If the chain item to cache for this chain is the -@@ -1402,12 +1404,14 @@ static void chain_cache_put( - ci->array = array; - ci->begin = begin; - ci->total = total; -+ ci->last_index = last_index; - } - --static int generic_array_get(JournalFile *f, -- uint64_t first, -- uint64_t i, -- Object **ret, uint64_t *offset) { -+static int generic_array_get( -+ JournalFile *f, -+ uint64_t first, -+ uint64_t i, -+ Object **ret, uint64_t *offset) { - - Object *o; - uint64_t p = 0, a, t = 0; -@@ -1448,7 +1452,7 @@ static int generic_array_get(JournalFile *f, - - found: - /* Let's cache this item for the next invocation */ -- chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t); -+ chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t, i); - - r = journal_file_move_to_object(f, OBJECT_ENTRY, p, &o); - if (r < 0) -@@ -1463,11 +1467,12 @@ found: - return 1; - } - --static int generic_array_get_plus_one(JournalFile *f, -- uint64_t extra, -- uint64_t first, -- uint64_t i, -- Object **ret, uint64_t *offset) { -+static int generic_array_get_plus_one( -+ JournalFile *f, -+ uint64_t extra, -+ uint64_t first, -+ uint64_t i, -+ Object **ret, uint64_t *offset) { - - Object *o; - -@@ -1498,17 +1503,18 @@ enum { - TEST_RIGHT - }; - --static int generic_array_bisect(JournalFile *f, -- uint64_t first, -- uint64_t n, -- uint64_t needle, -- int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -- direction_t direction, -- Object **ret, -- uint64_t *offset, -- uint64_t *idx) { -- -- uint64_t a, p, t = 0, i = 0, last_p = 0; -+static int generic_array_bisect( -+ JournalFile *f, -+ uint64_t first, -+ uint64_t n, -+ uint64_t needle, -+ int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -+ direction_t direction, -+ Object **ret, -+ uint64_t *offset, -+ uint64_t *idx) { -+ -+ uint64_t a, p, t = 0, i = 0, last_p = 0, last_index = (uint64_t) -1; - bool subtract_one = false; - Object *o, *array = NULL; - int r; -@@ -1533,7 +1539,7 @@ static int generic_array_bisect(JournalFile *f, - return r; - - if (r == TEST_LEFT) { -- /* OK, what we are looking for is right of th -+ /* OK, what we are looking for is right of the - * begin of this EntryArray, so let's jump - * straight to previously cached array in the - * chain */ -@@ -1541,6 +1547,7 @@ static int generic_array_bisect(JournalFile *f, - a = ci->array; - n -= ci->total; - t = ci->total; -+ last_index = ci->last_index; - } - } - -@@ -1571,6 +1578,60 @@ static int generic_array_bisect(JournalFile *f, - if (r == TEST_RIGHT) { - left = 0; - right -= 1; -+ -+ if (last_index != (uint64_t) -1) { -+ assert(last_index <= right); -+ -+ /* If we cached the last index we -+ * looked at, let's try to not to jump -+ * too wildly around and see if we can -+ * limit the range to look at early to -+ * the immediate neighbors of the last -+ * index we looked at. */ -+ -+ if (last_index > 0) { -+ uint64_t x = last_index - 1; -+ -+ p = le64toh(array->entry_array.items[x]); -+ if (p <= 0) -+ return -EBADMSG; -+ -+ r = test_object(f, p, needle); -+ if (r < 0) -+ return r; -+ -+ if (r == TEST_FOUND) -+ r = direction == DIRECTION_DOWN ? TEST_RIGHT : TEST_LEFT; -+ -+ if (r == TEST_RIGHT) -+ right = x; -+ else -+ left = x + 1; -+ } -+ -+ if (last_index < right) { -+ uint64_t y = last_index + 1; -+ -+ p = le64toh(array->entry_array.items[y]); -+ if (p <= 0) -+ return -EBADMSG; -+ -+ r = test_object(f, p, needle); -+ if (r < 0) -+ return r; -+ -+ if (r == TEST_FOUND) -+ r = direction == DIRECTION_DOWN ? TEST_RIGHT : TEST_LEFT; -+ -+ if (r == TEST_RIGHT) -+ right = y; -+ else -+ left = y + 1; -+ } -+ -+ last_index = (uint64_t) -1; -+ } -+ - for (;;) { - if (left == right) { - if (direction == DIRECTION_UP) -@@ -1581,8 +1642,8 @@ static int generic_array_bisect(JournalFile *f, - } - - assert(left < right); -- - i = (left + right) / 2; -+ - p = le64toh(array->entry_array.items[i]); - if (p <= 0) - return -EBADMSG; -@@ -1615,6 +1676,7 @@ static int generic_array_bisect(JournalFile *f, - - n -= k; - t += k; -+ last_index = (uint64_t) -1; - a = le64toh(array->entry_array.next_entry_array_offset); - } - -@@ -1625,7 +1687,7 @@ found: - return 0; - - /* Let's cache this item for the next invocation */ -- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t); -+ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, i + (subtract_one ? -1 : 0)); - - if (subtract_one && i == 0) - p = last_p; -@@ -1650,16 +1712,18 @@ found: - return 1; - } - --static int generic_array_bisect_plus_one(JournalFile *f, -- uint64_t extra, -- uint64_t first, -- uint64_t n, -- uint64_t needle, -- int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -- direction_t direction, -- Object **ret, -- uint64_t *offset, -- uint64_t *idx) { -+ -+static int generic_array_bisect_plus_one( -+ JournalFile *f, -+ uint64_t extra, -+ uint64_t first, -+ uint64_t n, -+ uint64_t needle, -+ int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -+ direction_t direction, -+ Object **ret, -+ uint64_t *offset, -+ uint64_t *idx) { - - int r; - bool step_back = false; --- -1.7.9.2 - diff --git a/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch b/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch deleted file mode 100644 index 24c02269..00000000 --- a/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e5462cd80e5328a769137c261c93931ea0c27bab Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 00:58:39 +0100 -Subject: [PATCH] journal: fix iteration when we go backwards from the - beginning of an array chain element - ---- - src/journal/journal-file.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 27cd16f..409be76 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -1687,7 +1687,7 @@ found: - return 0; - - /* Let's cache this item for the next invocation */ -- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, i + (subtract_one ? -1 : 0)); -+ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, subtract_one ? (i > 0 ? i-1 : (uint64_t) -1) : i); - - if (subtract_one && i == 0) - p = last_p; --- -1.7.9.2 - diff --git a/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch b/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch deleted file mode 100644 index 78946e79..00000000 --- a/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 248c78c79c5cca9b981800d816a77591e504066a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 00:59:07 +0100 -Subject: [PATCH] journal: allow journal_file_copy_entry() to work on - non-local files - ---- - src/journal/journal-file.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 409be76..14eae8f 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -2732,10 +2732,6 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 - ts.monotonic = le64toh(o->entry.monotonic); - ts.realtime = le64toh(o->entry.realtime); - -- if (to->tail_entry_monotonic_valid && -- ts.monotonic < le64toh(to->header->tail_entry_monotonic)) -- return -EINVAL; -- - n = journal_file_entry_n_items(o); - items = alloca(sizeof(EntryItem) * n); - --- -1.7.9.2 - diff --git a/0043-journal-simplify-pre-allocation-logic.patch b/0043-journal-simplify-pre-allocation-logic.patch deleted file mode 100644 index 16511ec0..00000000 --- a/0043-journal-simplify-pre-allocation-logic.patch +++ /dev/null @@ -1,61 +0,0 @@ -From eda4b58b50509dc8ad0428a46e20f6c5cf516d58 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 01:44:52 +0100 -Subject: [PATCH] journal: simplify pre-allocation logic - -let's just do a single fallocate() as far as possible, and don't -distuingish between allocated space and file size. - -This way we can save a syscall for each append, which makes quite some -benefits. ---- - src/journal/journal-file.c | 19 ++++++++----------- - 1 file changed, 8 insertions(+), 11 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 14eae8f..4009b29 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -315,7 +315,7 @@ static int journal_file_verify_header(JournalFile *f) { - } - - static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) { -- uint64_t old_size, new_size, file_size; -+ uint64_t old_size, new_size; - int r; - - assert(f); -@@ -356,6 +356,11 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - } - } - -+ /* Increase by larger blocks at once */ -+ new_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; -+ if (f->metrics.max_size > 0 && new_size > f->metrics.max_size) -+ new_size = f->metrics.max_size; -+ - /* Note that the glibc fallocate() fallback is very - inefficient, hence we try to minimize the allocation area - as we can. */ -@@ -363,16 +368,8 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (r != 0) - return -r; - -- /* Increase the file size a bit further than this, so that we -- * we can create larger memory maps to cache */ -- file_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; -- if (file_size > (uint64_t) f->last_stat.st_size) { -- if (file_size > new_size) -- ftruncate(f->fd, file_size); -- -- if (fstat(f->fd, &f->last_stat) < 0) -- return -errno; -- } -+ if (fstat(f->fd, &f->last_stat) < 0) -+ return -errno; - - f->header->arena_size = htole64(new_size - le64toh(f->header->header_size)); - --- -1.7.9.2 - diff --git a/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch b/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch deleted file mode 100644 index 90e71fb6..00000000 --- a/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch +++ /dev/null @@ -1,58 +0,0 @@ -From fbb634117d0b0ebd5b105e65b141e75ae9af7f8f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 01:54:25 +0100 -Subject: [PATCH] journald: mention how long we needed to flush to /var in the - logs - ---- - src/journal/journald-server.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git src/journal/journald-server.c src/journal/journald-server.c -index ce419d4..01e75b6 100644 ---- src/journal/journald-server.c -+++ src/journal/journald-server.c -@@ -970,9 +970,12 @@ static int system_journal_open(Server *s) { - } - - int server_flush_to_var(Server *s) { -- int r; - sd_id128_t machine; - sd_journal *j = NULL; -+ char ts[FORMAT_TIMESPAN_MAX]; -+ usec_t start; -+ unsigned n = 0; -+ int r; - - assert(s); - -@@ -990,6 +993,8 @@ int server_flush_to_var(Server *s) { - - log_debug("Flushing to /var..."); - -+ start = now(CLOCK_MONOTONIC); -+ - r = sd_id128_get_machine(&machine); - if (r < 0) - return r; -@@ -1009,6 +1014,8 @@ int server_flush_to_var(Server *s) { - f = j->current_file; - assert(f && f->current_offset > 0); - -+ n++; -+ - r = journal_file_move_to_object(f, OBJECT_ENTRY, f->current_offset, &o); - if (r < 0) { - log_error("Can't read entry: %s", strerror(-r)); -@@ -1052,6 +1059,8 @@ finish: - - sd_journal_close(j); - -+ server_driver_message(s, SD_ID128_NULL, "Time spent on flushing to /var is %s for %u entries.", format_timespan(ts, sizeof(ts), now(CLOCK_MONOTONIC) - start, 0), n); -+ - return r; - } - --- -1.7.9.2 - diff --git a/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch b/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch deleted file mode 100644 index 1a423207..00000000 --- a/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 27373e442747010dfc195296c0705f67e905a611 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 30 Nov 2013 23:45:31 +0100 -Subject: [PATCH] util.c: check if return value from ttyname_r is > 0 instead - of != 0 - -We must return a negative error code from getttyname_malloc but -that would not be the case if ttyname_r returned a negative value. - -ttyname_r should only return EBADF, ENOTTY, or ERANGE so it should -be safe to change. ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 38134ae..206fc80 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -2501,7 +2501,7 @@ int getttyname_malloc(int fd, char **r) { - assert(r); - - k = ttyname_r(fd, path, sizeof(path)); -- if (k != 0) -+ if (k > 0) - return -k; - - char_array_0(path); --- -1.7.9.2 - diff --git a/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch b/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch deleted file mode 100644 index e94380d5..00000000 --- a/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 572ce4f7832ffa7a91a582c4098f18cec5662666 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 30 Nov 2013 20:27:54 -0500 -Subject: [PATCH] docs: remove unneeded the's in gudev docs - -https://bugs.freedesktop.org/show_bug.cgi?id=72164 ---- - src/libudev/libudev-device.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git src/libudev/libudev-device.c src/libudev/libudev-device.c -index 059a590..9558ac3 100644 ---- src/libudev/libudev-device.c -+++ src/libudev/libudev-device.c -@@ -982,9 +982,8 @@ static struct udev_device *device_new_from_parent(struct udev_device *udev_devic - * Find the next parent device, and fill in information from the sys - * device and the udev database entry. - * -- * The returned the device is not referenced. It is attached to the -- * child device, and will be cleaned up when the child device -- * is cleaned up. -+ * Returned device is not referenced. It is attached to the child -+ * device, and will be cleaned up when the child device is cleaned up. - * - * It is not necessarily just the upper level directory, empty or not - * recognized sys directories are ignored. -@@ -1018,9 +1017,8 @@ _public_ struct udev_device *udev_device_get_parent(struct udev_device *udev_dev - * If devtype is #NULL, only subsystem is checked, and any devtype will - * match. - * -- * The returned the device is not referenced. It is attached to the -- * child device, and will be cleaned up when the child device -- * is cleaned up. -+ * Returned device is not referenced. It is attached to the child -+ * device, and will be cleaned up when the child device is cleaned up. - * - * It can be called as many times as needed, without caring about - * references. --- -1.7.9.2 - diff --git a/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch b/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch deleted file mode 100644 index ec388b86..00000000 --- a/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch +++ /dev/null @@ -1,238 +0,0 @@ -From 6a44e50f4c0938b0ba355fff21add6c067cd9837 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 30 Nov 2013 21:23:01 -0500 -Subject: [PATCH] man: explicitly say when multiple units can be specified - -itistoday> how do you specify multiple dependencies in a unit file? i've been - googling and can't find this basic thing :-\ -itistoday> do you use a comma, or use multiple After= statements? ---- - man/systemd.unit.xml | 128 +++++++++++++++++++++++++++----------------------- - 1 file changed, 70 insertions(+), 58 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 4dc427c..35dd4c7 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -410,10 +410,12 @@ - of the other units gets deactivated or - its activation fails, this unit will - be deactivated. This option may be -- specified more than once, in which -- case requirement dependencies for all -- listed names are created. Note that -- requirement dependencies do not -+ specified more than once or multiple -+ space-separated units may be specified -+ in one option in which case -+ requirement dependencies for all -+ listed names will be created. Note -+ that requirement dependencies do not - influence the order in which services - are started or stopped. This has to be - configured independently with the -@@ -476,22 +478,23 @@ - RequisiteOverridable= - - Similar to -- Requires= -- and RequiresOverridable=, respectively. However, -- if a unit listed here is not started -- already it will not be started and the -- transaction fails -- immediately. -+ Requires= and -+ RequiresOverridable=, -+ respectively. However, if the units -+ listed here are not started already -+ they will not be started and the -+ transaction will fail immediately. -+ - - - - Wants= - - A weaker version of -- Requires=. A unit -+ Requires=. Units - listed in this option will be started - if the configuring unit is. However, -- if the listed unit fails to start up -+ if the listed units fail to start - or cannot be added to the transaction - this has no impact on the validity of - the transaction as a whole. This is -@@ -501,8 +504,8 @@ - - Note that dependencies of this - type may also be configured outside of -- the unit configuration file by -- adding a symlink to a -+ the unit configuration file by adding -+ symlinks to a - .wants/ directory - accompanying the unit file. For - details see above. -@@ -534,7 +537,7 @@ - of units. When systemd stops or restarts - the units listed here, the action is - propagated to this unit. -- Note that this is a one way dependency - -+ Note that this is a one way dependency — - changes to this unit do not affect the - listed units. - -@@ -543,12 +546,12 @@ - - Conflicts= - -- Configures negative -+ A space-separated list -+ of unit names. Configures negative - requirement dependencies. If a unit -- has a -- Conflicts= setting -- on another unit, starting the former -- will stop the latter and vice -+ has a Conflicts= -+ setting on another unit, starting the -+ former will stop the latter and vice - versa. Note that this setting is - independent of and orthogonal to the - After= and -@@ -575,7 +578,8 @@ - Before= - After= - -- Configures ordering -+ A space-separated list -+ of unit names. Configures ordering - dependencies between units. If a unit - foo.service - contains a setting -@@ -624,18 +628,18 @@ - type After= or - Before=. If two - units have no ordering dependencies -- between them, they are shut down -- or started up simultaneously, and -- no ordering takes -+ between them, they are shut down or -+ started up simultaneously, and no -+ ordering takes - place. - - - - OnFailure= - -- Lists one or more -- units that are activated when this -- unit enters the -+ A space-separated list -+ of one or more units that are -+ activated when this unit enters the - failed - state. - -@@ -644,16 +648,17 @@ - PropagatesReloadTo= - ReloadPropagatedFrom= - -- Lists one or more -- units where reload requests on the -- unit will be propagated to/on the -- other unit will be propagated -- from. Issuing a reload request on a -- unit will automatically also enqueue a -- reload request on all units that the -- reload request shall be propagated to -- via these two -- settings. -+ A space-separated list -+ of one or more units where reload -+ requests on this unit will be -+ propagated to, or reload requests on -+ the other unit will be propagated to -+ this unit, respectively. Issuing a -+ reload request on a unit will -+ automatically also enqueue a reload -+ request on all units that the reload -+ request shall be propagated to via -+ these two settings. - - - -@@ -1130,32 +1135,34 @@ - - Alias= - -- Additional names this -- unit shall be installed under. The -- names listed here must have the same -- suffix (i.e. type) as the unit file -- name. This option may be specified -- more than once, in which case all -- listed names are used. At installation -- time, -- systemctl enable -- will create symlinks from these names -- to the unit filename. -+ A space-seperated list -+ of additional names this unit shall be -+ installed under. The names listed here -+ must have the same suffix (i.e. type) -+ as the unit file name. This option may -+ be specified more than once, in which -+ case all listed names are used. At -+ installation time, systemctl -+ enable will create symlinks -+ from these names to the unit -+ filename. - - - - WantedBy= - RequiredBy= - -- A symbolic link is -- created in the -- .wants/ or -- .requires/ directory -- of the listed unit when this unit is -- activated by systemctl -- enable. This has the effect -- that a dependency of type -- Wants= or -+ This option may be -+ used more than once, or a -+ space-separated list of unit names may -+ be given. A symbolic link is created -+ in the .wants/ or -+ .requires/ -+ directory of each of the listed units -+ when this unit is installed by -+ systemctl enable. -+ This has the effect that a dependency -+ of type Wants= or - Requires= is added - from the listed unit to the current - unit. The primary result is that the -@@ -1201,7 +1208,12 @@ - and systemctl - disable will automatically - install/uninstall units listed in this option as -- well. -+ well. -+ -+ This option may be used more -+ than once, or a space-separated list -+ of unit names may be -+ given. - - - --- -1.7.9.2 - diff --git a/0049-systemd-treat-reload-failure-as-failure.patch b/0049-systemd-treat-reload-failure-as-failure.patch deleted file mode 100644 index 9dde25b5..00000000 --- a/0049-systemd-treat-reload-failure-as-failure.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 6a371e23ee0e47827fb4e3aa469ed84da2599304 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 2 Dec 2013 21:52:51 -0500 -Subject: [PATCH] systemd: treat reload failure as failure - -systemctl reload "suceeded" on stopped units, but it is documented -to fail in this case. - -https://bugzilla.redhat.com/show_bug.cgi?id=1036845 ---- - src/core/job.c | 11 +++++++---- - src/core/job.h | 3 ++- - src/core/unit.c | 5 ++++- - 3 files changed, 13 insertions(+), 6 deletions(-) - -diff --git src/core/job.c src/core/job.c -index 557917a..ce97263 100644 ---- src/core/job.c -+++ src/core/job.c -@@ -508,7 +508,7 @@ int job_run_and_invalidate(Job *j) { - else if (t == UNIT_ACTIVATING) - r = -EAGAIN; - else -- r = -ENOEXEC; -+ r = -EBADR; - break; - } - -@@ -537,8 +537,10 @@ int job_run_and_invalidate(Job *j) { - if (j) { - if (r == -EALREADY) - r = job_finish_and_invalidate(j, JOB_DONE, true); -- else if (r == -ENOEXEC) -+ else if (r == -EBADR) - r = job_finish_and_invalidate(j, JOB_SKIPPED, true); -+ else if (r == -ENOEXEC) -+ r = job_finish_and_invalidate(j, JOB_INVALID, true); - else if (r == -EAGAIN) { - j->state = JOB_WAITING; - m->n_running_jobs--; -@@ -764,7 +766,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { - goto finish; - } - -- if (result == JOB_FAILED) -+ if (result == JOB_FAILED || result == JOB_INVALID) - j->manager->n_failed_jobs ++; - - job_uninstall(j); -@@ -1119,7 +1121,8 @@ static const char* const job_result_table[_JOB_RESULT_MAX] = { - [JOB_TIMEOUT] = "timeout", - [JOB_FAILED] = "failed", - [JOB_DEPENDENCY] = "dependency", -- [JOB_SKIPPED] = "skipped" -+ [JOB_SKIPPED] = "skipped", -+ [JOB_INVALID] = "invalid", - }; - - DEFINE_STRING_TABLE_LOOKUP(job_result, JobResult); -diff --git src/core/job.h src/core/job.h -index c23a380..0500e12 100644 ---- src/core/job.h -+++ src/core/job.h -@@ -97,7 +97,8 @@ enum JobResult { - JOB_TIMEOUT, /* JobTimeout elapsed */ - JOB_FAILED, /* Job failed */ - JOB_DEPENDENCY, /* A required dependency job did not result in JOB_DONE */ -- JOB_SKIPPED, /* JOB_RELOAD of inactive unit; negative result of JOB_VERIFY_ACTIVE */ -+ JOB_SKIPPED, /* Negative result of JOB_VERIFY_ACTIVE */ -+ JOB_INVALID, /* JOB_RELOAD of inactive unit */ - _JOB_RESULT_MAX, - _JOB_RESULT_INVALID = -1 - }; -diff --git src/core/unit.c src/core/unit.c -index 50db86c..81d2162 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1239,8 +1239,11 @@ int unit_reload(Unit *u) { - if (state == UNIT_RELOADING) - return -EALREADY; - -- if (state != UNIT_ACTIVE) -+ if (state != UNIT_ACTIVE) { -+ log_warning_unit(u->id, "Unit %s cannot be reloaded because it is inactive.", -+ u->id); - return -ENOEXEC; -+ } - - if ((following = unit_following(u))) { - log_debug_unit(u->id, "Redirecting reload request from %s to %s.", --- -1.7.9.2 - diff --git a/0145-logind-use-correct-who-enum-values-with-KillUnit.patch b/0145-logind-use-correct-who-enum-values-with-KillUnit.patch deleted file mode 100644 index f8fff2d2..00000000 --- a/0145-logind-use-correct-who-enum-values-with-KillUnit.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 524147c1ef991edf4432aac51c880b363b4402df Mon Sep 17 00:00:00 2001 -From: Marius Vollmer -Date: Thu, 31 Oct 2013 15:55:07 +0200 -Subject: [PATCH] logind: use correct "who" enum values with KillUnit. - ---- - src/login/logind-dbus.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index bb85c7d..583d62e 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -2799,7 +2799,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo - assert(manager); - assert(unit); - -- w = who == KILL_LEADER ? "process" : "cgroup"; -+ w = who == KILL_LEADER ? "control" : "all"; - assert_cc(sizeof(signo) == sizeof(int32_t)); - - r = bus_method_call_with_reply( -@@ -2815,7 +2815,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo - DBUS_TYPE_INT32, &signo, - DBUS_TYPE_INVALID); - if (r < 0) { -- log_error("Failed to stop unit %s: %s", unit, bus_error(error, r)); -+ log_error("Failed to kill unit %s: %s", unit, bus_error(error, r)); - return r; - } - diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index 4f91c928..1cbbda78 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -1,75 +1,63 @@ From: Robert Milasan -Date: Thu, 28 Mar 2013 09:24:43 +0000 +Cc: Werner Fink Subject: udev always rename network -udev: ensure that the network interfaces are renamed even if they exist -(bnc#809843). ---- - src/udev/udev-event.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 43 insertions(+), 3 deletions(-) +Date: Thu, 28 Mar 2013 09:24:43 +0000 +udev: ensure that the network interfaces are renamed even if they exist (bnc#809843). ---- systemd-206.orig/src/udev/udev-event.c -+++ systemd-206/src/udev/udev-event.c -@@ -750,6 +750,7 @@ static int rename_netif(struct udev_even - struct udev_device *dev = event->dev; - int sk; - struct ifreq ifr; -+ int loop; - int err; +Date: Tue, 4 Mar 2014 10:29:21 +0000 +Port the patch of Robert to systemd v210 and test it out. + +--- + udev-event.c | 40 ++++++++++++++++++++++++++++++++++++---- + 1 file changed, 36 insertions(+), 4 deletions(-) + +--- systemd-210/src/udev/udev-event.c ++++ systemd-210/src/udev/udev-event.c 2014-03-04 11:19:50.583710411 +0100 +@@ -765,10 +765,42 @@ static int rename_netif(struct udev_even + return r; - log_debug("changing net interface name from '%s' to '%s'\n", -@@ -766,12 +767,51 @@ static int rename_netif(struct udev_even - strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev)); - strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); - err = ioctl(sk, SIOCSIFNAME, &ifr); -- if (err >= 0) { -+ if (err == 0) { - print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -- } else { -+ goto out; -+ } + r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); +- if (r < 0) +- log_error("error changing net interface name %s to %s: %s", +- oldname, name, strerror(-r)); +- else ++ if (r < 0) { ++ char interim[IFNAMSIZ], *ptr = &interim[0]; ++ int loop = 90; + -+ /* keep trying if the destination interface name already exists */ -+ err = -errno; -+ if (err != -EEXIST) { -+ goto out; -+ } ++ /* keep trying if the destination interface name already exists */ ++ if (r != -EEXIST) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, name, strerror(-r)); ++ return r; ++ } + -+ /* free our own name, another process may wait for us */ -+ snprintf(ifr.ifr_newname, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); -+ err = ioctl(sk, SIOCSIFNAME, &ifr); -+ if (err < 0) { - err = -errno; -- log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); -+ goto out; - } ++ /* free our own name, another process may wait for us */ ++ strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); + -+ /* log temporary name */ -+ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); ++ if (r < 0) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, name, strerror(-r)); ++ return r; ++ } + -+ /* wait a maximum of 90 seconds for our target to become available */ -+ strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname); -+ strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); -+ loop = 90 * 20; -+ while (loop--) { -+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; -+ -+ log_debug("wait for netif '%s' to become free, loop=%i\n", event->name, (90 * 20) - loop); -+ nanosleep(&duration, NULL); -+ -+ err = ioctl(sk, SIOCSIFNAME, &ifr); -+ if (err == 0) { -+ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -+ break; -+ } -+ err = -errno; -+ if (err != -EEXIST) -+ break; -+ } -+ -+out: -+ if (err < 0) -+ log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); - close(sk); - return err; - } ++ /* log temporary name */ ++ print_kmsg("renamed network interface %s to %s", oldname, interim); ++ do { ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); ++ if (r == 0) { ++ print_kmsg("renamed network interface %s to %s", oldname, name); ++ return r; ++ } ++ if (r != -EEXIST) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, name, strerror(-r)); ++ return r; ++ } ++ } while (loop-- > 0); ++ } else + print_kmsg("renamed network interface %s to %s", oldname, name); + + return r; diff --git a/1011-check-4-valid-kmsg-device.patch b/1011-check-4-valid-kmsg-device.patch deleted file mode 100644 index 6d57c357..00000000 --- a/1011-check-4-valid-kmsg-device.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: Werner Fink -Date: Thu, 21 Nov 2013 11:50:32 +0000 -Subject: [PATCH] Avoid busy systemd-journald - -Avoid a busy systemd-journald due polling a broken /dec/kmsg in lxc -environments. - ---- - journald-kmsg.c | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -Index: systemd-208/src/journal/journald-kmsg.c -=================================================================== ---- systemd-208/src/journal/journald-kmsg.c -+++ systemd-208/src/journal/journald-kmsg.c 2013-12-20 11:34:39.762236175 +0000 -@@ -377,15 +377,18 @@ int server_flush_dev_kmsg(Server *s) { - - int server_open_dev_kmsg(Server *s) { - struct epoll_event ev; -+ int r; - - assert(s); - - s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); - if (s->dev_kmsg_fd < 0) { -- log_warning("Failed to open /dev/kmsg, ignoring: %m"); -+ log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, -+ "Failed to open /dev/kmsg, ignoring: %m"); - return 0; - } - -+ r = 0; - zero(ev); - ev.events = EPOLLIN; - ev.data.fd = s->dev_kmsg_fd; -@@ -394,15 +397,24 @@ int server_open_dev_kmsg(Server *s) { - /* This will fail with EPERM on older kernels where - * /dev/kmsg is not readable. */ - if (errno == EPERM) -- return 0; -+ goto fail; - - log_error("Failed to add /dev/kmsg fd to epoll object: %m"); -- return -errno; -+ r = -errno; -+ goto fail; - } - - s->dev_kmsg_readable = true; - - return 0; -+ -+fail: -+ if (s->dev_kmsg_fd >= 0) { -+ close_nointr_nofail(s->dev_kmsg_fd); -+ s->dev_kmsg_fd = -1; -+ } -+ -+ return r; - } - - int server_open_kernel_seqnum(Server *s) { diff --git a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch deleted file mode 100644 index bdf9383b..00000000 --- a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ /dev/null @@ -1,168 +0,0 @@ -Based on upstream baae0358f349870544884e405e82e4be7d8add9f -| From: Lennart Poettering -| Date: Tue, 26 Nov 2013 04:05:00 +0000 -| Subject: pam_systemd: do not set XDG_RUNTIME_DIR if the session's original user is not the same as the newly logged in one -| It's better not to set any XDG_RUNTIME_DIR at all rather than one of a -| different user. So let's do this. ---- systemd-208/src/login/logind-dbus.c -+++ systemd-208/src/login/logind-dbus.c 2013-11-26 13:37:05.730735774 +0000 -@@ -523,6 +523,7 @@ static int bus_manager_create_session(Ma - DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_STRING, &session->user->runtime_path, - DBUS_TYPE_UNIX_FD, &fifo_fd, -+ DBUS_TYPE_UINT32, &session->user->uid, - DBUS_TYPE_STRING, &cseat, - DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_BOOLEAN, &exists, ---- systemd-208/src/login/logind-session-dbus.c -+++ systemd-208/src/login/logind-session-dbus.c 2013-11-26 13:36:07.478236401 +0000 -@@ -755,6 +755,7 @@ int session_send_create_reply(Session *s - DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_STRING, &s->user->runtime_path, - DBUS_TYPE_UNIX_FD, &fifo_fd, -+ DBUS_TYPE_UINT32, &s->user->uid, - DBUS_TYPE_STRING, &cseat, - DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_BOOLEAN, &exists, ---- systemd-208/src/login/pam-module.c -+++ systemd-208/src/login/pam-module.c 2013-11-26 14:32:20.194235777 +0000 -@@ -93,24 +93,18 @@ static int get_user_data( - assert(ret_username); - assert(ret_pw); - -- r = audit_loginuid_from_pid(0, &uid); -- if (r >= 0) -- pw = pam_modutil_getpwuid(handle, uid); -- else { -- r = pam_get_user(handle, &username, NULL); -- if (r != PAM_SUCCESS) { -- pam_syslog(handle, LOG_ERR, "Failed to get user name."); -- return r; -- } -- -- if (isempty(username)) { -- pam_syslog(handle, LOG_ERR, "User name not valid."); -- return PAM_AUTH_ERR; -- } -+ r = pam_get_user(handle, &username, NULL); -+ if (r != PAM_SUCCESS) { -+ pam_syslog(handle, LOG_ERR, "Failed to get user name."); -+ return r; -+ } - -- pw = pam_modutil_getpwnam(handle, username); -+ if (isempty(username)) { -+ pam_syslog(handle, LOG_ERR, "User name not valid."); -+ return PAM_AUTH_ERR; - } - -+ pw = pam_modutil_getpwnam(handle, username); - if (!pw) { - pam_syslog(handle, LOG_ERR, "Failed to get user data."); - return PAM_USER_UNKNOWN; -@@ -123,16 +117,14 @@ static int get_user_data( - } - - static int get_seat_from_display(const char *display, const char **seat, uint32_t *vtnr) { -- _cleanup_free_ char *p = NULL; -- int r; -- _cleanup_close_ int fd = -1; - union sockaddr_union sa = { - .un.sun_family = AF_UNIX, - }; -+ _cleanup_free_ char *p = NULL, *tty = NULL; -+ _cleanup_close_ int fd = -1; - struct ucred ucred; - socklen_t l; -- _cleanup_free_ char *tty = NULL; -- int v; -+ int v, r; - - assert(display); - assert(vtnr); -@@ -194,13 +186,12 @@ _public_ PAM_EXTERN int pam_sm_open_sess - dbus_bool_t remote, existing; - int r; - uint32_t vtnr = 0; -+ uid_t original_uid; - - assert(handle); - - dbus_error_init(&error); - -- /* pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); */ -- - /* Make this a NOP on non-logind systems */ - if (!logind_running()) - return PAM_SUCCESS; -@@ -213,6 +204,9 @@ _public_ PAM_EXTERN int pam_sm_open_sess - goto finish; - } - -+ if (debug) -+ pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); -+ - r = get_user_data(handle, &username, &pw); - if (r != PAM_SUCCESS) - goto finish; -@@ -374,7 +368,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess - if (debug) - pam_syslog(handle, LOG_DEBUG, "Asking logind to create session: " - "uid=%u pid=%u service=%s type=%s class=%s seat=%s vtnr=%u tty=%s display=%s remote=%s remote_user=%s remote_host=%s", -- uid, pid, service, type, class, seat, vtnr, tty, display, yes_no(remote), remote_user, remote_host); -+ pw->pw_uid, pid, -+ strempty(service), -+ type, class, -+ seat, vtnr, tty, display, -+ yes_no(remote), remote_user, remote_host); - - reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); - if (!reply) { -@@ -388,6 +386,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess - DBUS_TYPE_OBJECT_PATH, &object_path, - DBUS_TYPE_STRING, &runtime_path, - DBUS_TYPE_UNIX_FD, &session_fd, -+ DBUS_TYPE_UINT32, &original_uid, - DBUS_TYPE_STRING, &seat, - DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_BOOLEAN, &existing, -@@ -399,8 +398,8 @@ _public_ PAM_EXTERN int pam_sm_open_sess - - if (debug) - pam_syslog(handle, LOG_DEBUG, "Reply from logind: " -- "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u", -- id, object_path, runtime_path, session_fd, seat, vtnr); -+ "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u original_uid=%u", -+ id, object_path, runtime_path, session_fd, seat, vtnr, original_uid); - - r = pam_misc_setenv(handle, "XDG_SESSION_ID", id, 0); - if (r != PAM_SUCCESS) { -@@ -408,10 +407,24 @@ _public_ PAM_EXTERN int pam_sm_open_sess - goto finish; - } - -- r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); -- if (r != PAM_SUCCESS) { -- pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); -- goto finish; -+ if (original_uid == pw->pw_uid) { -+ /* Don't set $XDG_RUNTIME_DIR if the user we now -+ * authenticated for does not match the original user -+ * of the session. We do this in order not to result -+ * in privileged apps clobbering the runtime directory -+ * unnecessarily. */ -+ -+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); -+ if (r != PAM_SUCCESS) { -+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); -+ goto finish; -+ } -+ } else if (getenv("XDG_RUNTIME_DIR")) { -+ r = pam_putenv(handle, "XDG_RUNTIME_DIR"); -+ if (r != PAM_SUCCESS && r != PAM_BAD_ITEM) { -+ pam_syslog(handle, LOG_ERR, "Failed to unset runtime dir."); -+ } -+ (void) unsetenv("XDG_RUNTIME_DIR"); - } - - if (!isempty(seat)) { diff --git a/1017-skip-native-unit-handling-if-sysv-already-handled.patch b/1017-skip-native-unit-handling-if-sysv-already-handled.patch deleted file mode 100644 index 9390c42a..00000000 --- a/1017-skip-native-unit-handling-if-sysv-already-handled.patch +++ /dev/null @@ -1,20 +0,0 @@ -For bnc#818044 -Based on http://cgit.freedesktop.org/systemd/systemd/patch/?id=67d6621059085963a2a908a3ea99ced3b0ca789e ---- - systemctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-01-21 13:00:52.910736187 +0000 -@@ -4453,6 +4453,11 @@ static int enable_unit(DBusConnection *b - if (r < 0) - return r; - -+ /* If the operation was fully executed by the SysV compat, -+ * let's finish early */ -+ if (strv_isempty(mangled_names)) -+ return 0; -+ - if (!bus || avoid_bus()) { - if (streq(verb, "enable")) { - r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); diff --git a/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch index 81a26925..a98660ec 100644 --- a/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch +++ b/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch @@ -1,5 +1,19 @@ +Should solve the problems of + + bug #858864 - LSB "+" dependencies aren't handled properly + bug #857204 - inssrv fails to enable rpcbind + The side effect is that RequiresOverridable= is used for the services + add behind Required-Start + bug #863217 - systemd overrides explicit admin request to disable a service + That is that in this version the Wants= for all services behind + Should-Start, X-Start-Before, and X-Stop-After is not used anymore + +--- + service.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + --- systemd-208/src/core/service.c -+++ systemd-208/src/core/service.c 2014-01-17 12:15:52.527311588 +0000 ++++ systemd-208/src/core/service.c 2014-02-21 14:44:59.066735478 +0000 @@ -380,6 +380,8 @@ static int sysv_translate_facility(const "remote_fs", SPECIAL_REMOTE_FS_TARGET, "syslog", NULL, @@ -28,11 +42,11 @@ state = LSB; + d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER; -+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : UNIT_WANTS; ++ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : _UNIT_DEPENDENCY_INVALID; FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) { char *n, *m; -@@ -838,12 +843,15 @@ static int service_load_sysv_path(Servic +@@ -838,12 +843,18 @@ static int service_load_sysv_path(Servic continue; } @@ -45,7 +59,10 @@ continue; - r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true); -+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); ++ if (e != _UNIT_DEPENDENCY_INVALID) ++ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); ++ else ++ r = unit_add_dependency_by_name(u, d, m, NULL, true); if (r < 0) log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s", diff --git a/1019-make-completion-smart-to-be-able-to-redirect.patch b/1019-make-completion-smart-to-be-able-to-redirect.patch index d1425d83..90ca8edc 100644 --- a/1019-make-completion-smart-to-be-able-to-redirect.patch +++ b/1019-make-completion-smart-to-be-able-to-redirect.patch @@ -136,7 +136,7 @@ + _init_completion || return - for ((i=0; $i <= $COMP_CWORD; i++)); do + for ((i=0; i < COMP_CWORD; i++)); do @@ -83,4 +87,4 @@ _systemd_analyze() { return 0 } @@ -225,7 +225,7 @@ + return 0 + fi + - for ((i=0; i <= COMP_CWORD; i++)); do + for ((i=0; i < COMP_CWORD; i++)); do if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" && ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then @@ -94,4 +98,4 @@ _udevadm() { diff --git a/1022-systemd-tmpfiles-ownerkeep.patch b/1022-systemd-tmpfiles-ownerkeep.patch new file mode 100644 index 00000000..c7f3589b --- /dev/null +++ b/1022-systemd-tmpfiles-ownerkeep.patch @@ -0,0 +1,10 @@ +diff -Naur systemd-208/units/systemd-tmpfiles-clean.service.in systemd-208-mod/units/systemd-tmpfiles-clean.service.in +--- systemd-208/units/systemd-tmpfiles-clean.service.in 2013-08-13 20:02:52.826756410 +0000 ++++ systemd-208-mod/units/systemd-tmpfiles-clean.service.in 2014-02-21 13:34:56.456511025 +0000 +@@ -19,5 +19,6 @@ + + [Service] + Type=oneshot ++ExecStart=-@rootbindir@/systemd-tmpfiles-keep + ExecStart=@rootbindir@/systemd-tmpfiles --clean + IOSchedulingClass=idle diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 3b50d50b..0c06b4dc 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -37,13 +37,13 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) return r; } @@ -90,6 +90,8 @@ static int execute(char **modes, char ** - FILE *f; + _cleanup_fclose_ FILE *f = NULL; const char* note = strappenda("SLEEP=", arg_verb); + if (!delegate_to_pmutils) { + /* This file is opened first, so that if we hit an error, - * we can abort before modyfing any state. */ + * we can abort before modifying any state. */ f = fopen("/sys/power/state", "we"); @@ -102,6 +104,7 @@ static int execute(char **modes, char ** r = write_mode(modes); @@ -59,7 +59,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) NULL); - + if (!delegate_to_pmutils) - r = write_state(f, states); + r = write_state(&f, states); + else + r = -system(pmtools); if (r < 0) diff --git a/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch b/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch deleted file mode 100644 index fca524f5..00000000 --- a/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3fdb2494c1e24c0a020f5b54022d2c751fd26f50 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 28 Nov 2013 09:52:18 +0000 -Subject: login: revert lazy session-activation on non-VT seats - -Existing applications like gdm already depend on new sessions to get -immediately activated on seats without VTs. Fixes a bug reported as: - [systemd-devel] systemd 208:trouble with inactive user sessions at non-seat0 seats - -This patch restores the original behavior. We either need to add a new -flag for session-creation or some other heuristic to avoid activating new -sessions in the future. ---- ---- a/src/login/logind-seat.c 2013-11-28 11:30:49.624623090 -0200 -+++ b/src/login/logind-seat.c 2013-11-28 11:31:46.668792391 -0200 -@@ -420,8 +420,8 @@ - seat_send_changed(s, "Sessions\0"); - - /* On seats with VTs, the VT logic defines which session is active. On -- * seats without VTs, we automatically activate the first session. */ -- if (!seat_has_vts(s) && !s->active) -+ * seats without VTs, we automatically activate new sessions. */ -+ if (!seat_has_vts(s)) - seat_set_active(s, session); - - return 0; diff --git a/analyze-fix-crash-in-command-line-parsing.patch b/analyze-fix-crash-in-command-line-parsing.patch deleted file mode 100644 index f76266ec..00000000 --- a/analyze-fix-crash-in-command-line-parsing.patch +++ /dev/null @@ -1,35 +0,0 @@ -From da6de8a55784115451582051c8da620056994a05 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 20 Jan 2014 11:05:22 +0100 -Subject: [PATCH] analyze: fix crash in command line parsing - -Ensure DBusError is set before it can possibly be freed on return. -Fix crash when calling set-log-level without any parameter. - -Fix https://bugzilla.novell.com/show_bug.cgi?id=859365 ---- - src/analyze/systemd-analyze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c -index 27d063c..cdfae93 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -1226,13 +1226,13 @@ static int set_log_level(DBusConnection *bus, char **args) { - assert(bus); - assert(args); - -+ dbus_error_init(&error); - if (strv_length(args) != 1) { - log_error("This command expects one argument only."); - return -E2BIG; - } - - value = args[0]; -- dbus_error_init(&error); - - m = dbus_message_new_method_call("org.freedesktop.systemd1", - "/org/freedesktop/systemd1", --- -1.8.4 - diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index 7b5e3624..f17d6ede 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -4,34 +4,26 @@ Subject: apply ACL for nvidia device nodes set ACL on nvidia devices (bnc#808319). --- - src/login/logind-acl.c | 3 +++ - 1 file changed, 3 insertions(+) + logind-acl.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) - -Index: systemd-208/src/login/logind-acl.c -=================================================================== ---- systemd-208.orig/src/login/logind-acl.c -+++ systemd-208/src/login/logind-acl.c -@@ -287,6 +287,22 @@ int devnode_acl_all(struct udev *udev, - r = devnode_acl(n, flush, del, old_uid, add, new_uid); +--- systemd-209/src/login/logind-acl.c ++++ systemd-209/src/login/logind-acl.c 2014-02-28 17:27:51.806239118 +0000 +@@ -283,5 +283,17 @@ int devnode_acl_all(struct udev *udev, + r = k; } + /* only apply ACL on nvidia* if /dev/nvidiactl exists */ -+ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { ++ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { + int i; -+ char *devname; -+ + for (i = 0; i <= 256 ; i++) { ++ _cleanup_free_ char *devname = NULL; + if (asprintf(&devname, "/dev/nvidia%d", i) < 0) + break; -+ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) { -+ free(devname); ++ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) + break; -+ } -+ free(devname); + } + } + - finish: - udev_enumerate_unref(e); - set_free_free(nodes); + return r; + } diff --git a/build-sys-make-multi-seat-x-optional.patch b/build-sys-make-multi-seat-x-optional.patch deleted file mode 100644 index c86042c6..00000000 --- a/build-sys-make-multi-seat-x-optional.patch +++ /dev/null @@ -1,60 +0,0 @@ -From bd441fa27a22b7c6e11d9330560e0622fb69f297 Mon Sep 17 00:00:00 2001 -From: Zbigniew Jędrzejewski-Szmek -Date: Thu, 28 Nov 2013 17:07:29 +0000 -Subject: build-sys: make multi-seat-x optional - -At some point it should become disabled by default. - -http://lists.freedesktop.org/archives/systemd-devel/2013-November/014869.html ---- -diff --git a/Makefile.am b/Makefile.am -index 90874df..3598edd 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -4141,6 +4141,8 @@ MULTI_USER_TARGET_WANTS += \ - SYSTEM_UNIT_ALIASES += \ - systemd-logind.service dbus-org.freedesktop.login1.service - -+if ENABLE_MULTI_SEAT_X -+ - systemd_multi_seat_x_SOURCES = \ - src/login/multi-seat-x.c - -@@ -4151,6 +4153,8 @@ systemd_multi_seat_x_LDADD = \ - rootlibexec_PROGRAMS += \ - systemd-multi-seat-x - -+endif -+ - dist_udevrules_DATA += \ - src/login/70-uaccess.rules \ - src/login/70-power-switch.rules -diff --git a/configure.ac b/configure.ac -index f1b00c5..ab24266 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -794,6 +794,14 @@ fi - AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"]) - - # ------------------------------------------------------------------------------ -+have_multi_seat_x=no -+AC_ARG_ENABLE(multi_seat_x, AS_HELP_STRING([--disable-multi-seat-x], [do not build multi-seat-x])) -+if test "x$enable_multi_seat_x" != "xno"; then -+ have_multi_seat_x=yes -+fi -+AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"]) -+ -+# ------------------------------------------------------------------------------ - AC_ARG_WITH(rc-local-script-path-start, - AS_HELP_STRING([--with-rc-local-script-path-start=PATH], - [Path to /etc/rc.local]), -@@ -1077,6 +1085,7 @@ AC_MSG_RESULT([ - nss-myhostname: ${have_myhostname} - gudev: ${enable_gudev} - gintrospection: ${enable_introspection} -+ multi-seat-x: ${have_multi_seat_x} - Python: ${have_python} - Python Headers: ${have_python_devel} - man pages: ${have_manpages} --- -cgit v0.9.0.2-2-gbebe diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index b9ec5122..1bde222f 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -21,14 +21,25 @@ Index: systemd-208/src/cryptsetup/cryptsetup-generator.c Index: systemd-208/units/systemd-fsck@.service.in =================================================================== ---- systemd-208.orig/units/systemd-fsck@.service.in -+++ systemd-208/units/systemd-fsck@.service.in -@@ -10,7 +10,7 @@ Description=File System Check on %f +--- systemd-280.orig/units/systemd-fsck@.service.in ++++ systemd-280/units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Documentation=man:systemd-fsck@.service(8) DefaultDependencies=no BindsTo=%i.device --After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device md.service dmraid.service +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service md.service dmraid.service Before=shutdown.target [Service] +--- systemd-280.orig/units/systemd-fsck-root.service.in ++++ systemd-280/units/systemd-fsck-root.service.in +@@ -9,7 +9,7 @@ + Description=File System Check on Root Device + Documentation=man:systemd-fsck-root.service(8) + DefaultDependencies=no +-After=systemd-readahead-collect.service systemd-readahead-replay.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service md.service dmraid.service + Before=local-fs.target shutdown.target + + ConditionPathIsReadWrite=!/ diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch index fb6145ca..954c60ca 100644 --- a/fix-owner-of-var-log-btmp.patch +++ b/fix-owner-of-var-log-btmp.patch @@ -10,7 +10,7 @@ ensure btmp is owned only by root (bnc#777405). --- systemd-206_git201308300826.orig/tmpfiles.d/systemd.conf +++ systemd-206_git201308300826/tmpfiles.d/systemd.conf @@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d - F /run/utmp 0664 root utmp - + F! /run/utmp 0664 root utmp - f /var/log/wtmp 0664 root utmp - -f /var/log/btmp 0600 root utmp - diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index 577f2685..c7fa0726 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -38,5 +38,5 @@ Index: systemd-208/src/systemctl/systemctl.c + } + r = parse_argv(argc, argv); - if (r < 0) + if (r <= 0) goto finish; diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch index cdcb932e..57a74f0d 100644 --- a/handle-etc-HOSTNAME.patch +++ b/handle-etc-HOSTNAME.patch @@ -4,11 +4,11 @@ Subject: handle /etc/HOSTNAME (bnc#803653) --- - src/core/hostname-setup.c | 22 +++++++++++++++++----- - src/hostname/hostnamed.c | 12 +++++++++++- + src/core/hostname-setup.c | 22 +++++++++++++++++----- + src/hostname/hostnamed.c | 12 +++++++++++- 2 files changed, 28 insertions(+), 6 deletions(-) ---- systemd-206.orig/src/core/hostname-setup.c +--- systemd-206/src/core/hostname-setup.c +++ systemd-206/src/core/hostname-setup.c @@ -61,12 +61,24 @@ int hostname_setup(void) { @@ -40,38 +40,38 @@ Subject: handle /etc/HOSTNAME } else hn = b; ---- systemd-206.orig/src/hostname/hostnamed.c -+++ systemd-206/src/hostname/hostnamed.c -@@ -129,6 +129,10 @@ static int read_data(void) { +--- systemd-209/src/hostname/hostnamed.c ++++ systemd-209/src/hostname/hostnamed.c 2014-02-28 11:36:30.594735241 +0000 +@@ -89,6 +89,10 @@ static int context_read_data(Context *c) if (r < 0 && r != -ENOENT) return r; -+ r = read_one_line_file("/etc/HOSTNAME", &data[PROP_STATIC_HOSTNAME]); ++ r = read_one_line_file("/etc/HOSTNAME", &c->data[PROP_STATIC_HOSTNAME]); + if (r < 0 && r != -ENOENT) + return r; + return 0; } -@@ -283,6 +287,7 @@ static int write_data_hostname(void) { - - static int write_data_static_hostname(void) { +@@ -246,6 +250,7 @@ static int context_write_data_hostname(C + } + static int context_write_data_static_hostname(Context *c) { + int r; - if (isempty(data[PROP_STATIC_HOSTNAME])) { - if (unlink("/etc/hostname") < 0) -@@ -290,7 +295,12 @@ static int write_data_static_hostname(vo + assert(c); + +@@ -256,7 +261,12 @@ static int context_write_data_static_hos return 0; } -- return write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); +- return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); + -+ r = write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ r = write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); + if (!r) { + r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); + } + return r; } - static int write_data_other(void) { + static int context_write_data_other(Context *c) { diff --git a/insserv-generator.patch b/insserv-generator.patch index 3e0deb79..f1a2452f 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -18,14 +18,14 @@ Index: systemd-208/Makefile.am --- systemd-208.orig/Makefile.am +++ systemd-208/Makefile.am @@ -322,6 +322,7 @@ rootlibexec_PROGRAMS = \ - systemd-sleep + systemd-socket-proxyd systemgenerator_PROGRAMS = \ + systemd-insserv-generator \ systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1682,6 +1683,14 @@ systemd_delta_LDADD = \ +@@ -1658,6 +1659,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ @@ -241,7 +241,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { + _cleanup_free_ char *unit = NULL; + /* insert also a Wants dependency from remote-fs-pre on remote-fs */ -+ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",path_get_file_name(filename),".conf", NULL); ++ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",basename(filename),".conf", NULL); + if (!unit) + return log_oom(); + @@ -274,7 +274,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep) + continue; + -+ unit = strjoin(arg_dest, "/", dep, ".d/50-",path_get_file_name(filename),"-",parsed[0],".conf", NULL); ++ unit = strjoin(arg_dest, "/", dep, ".d/50-",basename(filename),"-",parsed[0],".conf", NULL); + if (!unit) + return log_oom(); + @@ -305,7 +305,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + + if (*j[0] != '+') { + free (unit); -+ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",path_get_file_name(filename),"-",parsed[0],".conf", NULL); ++ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",basename(filename),"-",parsed[0],".conf", NULL); + if (!unit) + return log_oom(); + diff --git a/systemd-208.tar.xz b/systemd-208.tar.xz deleted file mode 100644 index 12a73a83..00000000 --- a/systemd-208.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390 -size 2382904 diff --git a/systemd-210.tar.xz b/systemd-210.tar.xz new file mode 100644 index 00000000..dd2041d8 --- /dev/null +++ b/systemd-210.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b3ddf9bf82f05cc3079650e86ae05b558381fd034cf1b03a592bcadd1610c4 +size 2620924 diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch deleted file mode 100644 index 3d252dc1..00000000 --- a/systemd-dbus-system-bus-address.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- systemd-207.orig/src/core/dbus.c -+++ systemd-207/src/core/dbus.c -@@ -50,7 +50,7 @@ - #define CONNECTIONS_MAX 512 - - /* Well-known address (http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-types) */ --#define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" -+#define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=/run/dbus/system_bus_socket" - /* Only used as a fallback */ - #define DBUS_SESSION_BUS_DEFAULT_ADDRESS "autolaunch:" - diff --git a/systemd-install-compat_pkgconfig-always.patch b/systemd-install-compat_pkgconfig-always.patch new file mode 100644 index 00000000..c378af51 --- /dev/null +++ b/systemd-install-compat_pkgconfig-always.patch @@ -0,0 +1,28 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -4560,12 +4560,6 @@ lib_LTLIBRARIES += \ + libsystemd-id128.la \ + libsystemd-daemon.la + +-pkgconfiglib_DATA += \ +- src/compat-libs/libsystemd-journal.pc \ +- src/compat-libs/libsystemd-login.pc \ +- src/compat-libs/libsystemd-id128.pc \ +- src/compat-libs/libsystemd-daemon.pc +- + # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed + compat-lib-install-hook: + libname=libsystemd-login.so && $(move-to-rootlibdir) +@@ -4583,6 +4577,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install + UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook + endif + ++pkgconfiglib_DATA += \ ++ src/compat-libs/libsystemd-journal.pc \ ++ src/compat-libs/libsystemd-login.pc \ ++ src/compat-libs/libsystemd-id128.pc \ ++ src/compat-libs/libsystemd-daemon.pc ++ + EXTRA_DIST += \ + src/compat-libs/libsystemd-journal.pc.in \ + src/compat-libs/libsystemd-login.pc.in \ diff --git a/systemd-mini.changes b/systemd-mini.changes index d9e7abdd..4ef46a16 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,490 @@ +------------------------------------------------------------------- +Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-Fix-systemd-stdio-bridge-symlink.patch + 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + 0004-man-document-missing-options-of-systemd-run.patch + 0005-systemd-run-add-some-extra-safety-checks.patch + 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + 0007-journal-forget-file-after-encountering-an-error.patch + 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + 0010-man-update-link-to-LSB.patch + 0011-man-systemd-bootchart-fix-spacing-in-command.patch + 0012-man-add-missing-comma.patch + 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + +------------------------------------------------------------------- +Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de + +- Add linker scripts as place holder of the old systemd shared + libraries now all included in libsystemd.so (bnc#867128) + +------------------------------------------------------------------- +Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de + +- Make patch 1006-udev-always-rename-network.patch work again + and add it again. + +------------------------------------------------------------------- +Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com + +- address missing owner functionality in systemd-tmpfiles (fate#314974) + 1022-systemd-tmpfiles-ownerkeep.patch + +------------------------------------------------------------------- +Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de + +- Generate the bash completion files on the fly for the case of + not having the package bash-completion around +- Add or port upstream bugfix patches: + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + 0002-cdrom_id-use-the-old-MMC-fallback.patch + 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + 0004-logs-show-fix-corrupt-output-with-empty-messages.patch + 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + 0008-README-document-that-var-run-must-be-a-symlink-run.patch + 0010-Replace-var-run-with-run-in-remaining-places.patch + 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + 0014-login-fix-pos-array-allocation.patch + +------------------------------------------------------------------- +Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de + +- Update to Release v210 + + systemd will now relabel /dev after loading the SMACK policy + according to SMACK rules. + + A new unit file option AppArmoreProfile= has been added to + set the AppArmor profile for the processes of a unit. + + A new condition check ConditionArchitecture= has been added + to conditionalize units based on the system architecture, as + reported by uname()'s "machine" field. + + systemd-networkd now supports matching on the system + virtualization, architecture, kernel command line, host name + and machine ID. + + logind is now a lot more aggressive when suspending the + machine due to a closed laptop lid. + + logind will now watch SW_DOCK switches and inhibit reaction + to the lid switch if it is pressed. + + nspawn will now make use of the devices cgroup controller by + default, and only permit creation of and access to the usual + API device nodes like /dev/null or /dev/random, as well as + access to (but not creation of) the pty devices. + + systemd will now understand the usual M, K, G, T suffixes + according to SI conventions (i.e. to the base 1000) when + referring to throughput and hardware metrics. + + The DeviceAllow= setting in unit files now supports a syntax + to whitelist an entire group of devices node majors at once, + based on the /proc/devices listing. For example, with the + string "char-pts" it is now possible to whitelist all + current and future pseudo-TTYs at once. + + sd-event learned a new "post" event source. Event sources of + this type are triggered by the dispatching of any event + source of a type that is not "post". This is useful for + implementing clean-up and check event sources that are + triggered by other work being done in the program. + + The compatibility libraries for libsystemd-journal.so, + libsystem-id128.so, libsystemd-login.so and + libsystemd-daemon.so do not make use of IFUNC + anymore. +- Dropped systemd patches as those are fixed upstream: + * 0001-units-serial-getty-.service-add-Install-section.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patchc + * 0001-make-tests-with-libseccomp-work.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-units-serial-getty-.service-add-Install-section.patch +- Dropped patches as those do not work anymore + * 1006-udev-always-rename-network.patch +- Renamed systemd patches as seen from git log: + * 0001-cdrom_id-use-the-old-MMC-fallback.patch + become 0002-cdrom_id-use-the-old-MMC-fallback.patch + * 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + become 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + * 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + become 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +- Add several upstream bugfix patches which are missed: + * 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + * 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + * 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + * 0008-README-document-that-var-run-must-be-a-symlink-run.patch + * 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + * 0010-Replace-var-run-with-run-in-remaining-places.patch + * 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + * 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + * 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + * 0014-login-fix-pos-array-allocation.patch +- Modified patches to make is build + * 0001-add-network-device-after-NFS-mount-units.patch +- Reenable libseccomp for the architecture for which libseccomp exists + +------------------------------------------------------------------- +Sun Mar 2 15:51:24 CET 2014 - ro@suse.de + +- always install compat pkgconfig files, regardless if + compat libs is enabled or not + +------------------------------------------------------------------- +Sun Mar 2 14:47:23 CET 2014 - ro@suse.de + +- disable use of libseccomp for sle12, library has not been ported + to most architectures +- do not use binutils-gold on s390/s390x, does not exist there +- fix exclude statements for bootstrap case + +------------------------------------------------------------------- +Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de + +- Add upstream patches + + 0001-cdrom_id-use-the-old-MMC-fallback.patch + + 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + + 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + +------------------------------------------------------------------- +Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de + +- Add patch + 0001-systemd-empty-sigmask-on-reexec.patch + which corrects sigmaks for reexec in initrd (bnc#864904) + +------------------------------------------------------------------- +Fri Feb 28 17:38:06 UTC 2014 - werner@suse.de + +- Add patch + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + to avoid error on not existing file /proc/self/loginuid + +------------------------------------------------------------------- +Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de + +- Make patch + 0001-make-209-working-on-older-dist.patch + more smart that is make configure script les restrictive +- Make patch + apply-ACL-for-nvidia-device-nodes.patch + apply to v209 + +------------------------------------------------------------------- +Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de + +- Update to Release v209 on the base of the work of Stefan Brüns + from declined submit request 223602: + + A new tool "systemd-socket-proxyd" has been added + + Add a new tool to save/restore rfkill state on + shutdown/boot. + + Save/restore state of keyboard backlights in addition to + display backlights on shutdown/boot. + + udev learned a new SECLABEL{} construct to label device + nodes with a specific security label when they appear. For + now, only SECLABEL{selinux} is supported, but the syntax is + prepared for additional security frameworks. + + When the User= switch is used in a unit file, also + initialize $SHELL= based on the user database entry. + + systemd no longer depends on libdbus. All communication is + now done with sd-bus, systemd's low-level bus library + implementation. + + sd-bus: add a light-weight vtable implementation that allows + defining objects on the bus with a simple static const + vtable array of its methods, signals and properties. + + systemd will not generate or install static dbus + introspection data anymore to /usr/share/dbus-1/interfaces, + as the precise format of these files is unclear, and + nothing makes use of it. + + A proxy daemon is now provided to proxy clients connecting + via classic D-Bus AF_UNIX sockets to kdbus, to provide full + compatibility with classic D-Bus. + + A bus driver implementation has been added that supports the + classic D-Bus bus driver calls on kdbus, also for + compatibility purposes. + + A new API "sd-event.h" has been added that implements a + minimal event loop API built around epoll. + + A new API "sd-rntl.h" has been added that provides an API + around the route netlink interface of the kernel, similar in + style to "sd-bus.h". + + A new API "sd-dhcp-client.h" has been added that provides a + small DHCPv4 client-side implementation. This is used by + "systemd-networkd". + + There is a new kernel command line option + "systemd.restore_state=0|1". When set to "0", none of the + systemd tools will restore saved runtime state to hardware + devices. More specifically, the rfkill and backlight states + are not restored. + + The FsckPassNo= compatibility option in mount/service units + has been removed. The fstab generator will now add the + necessary dependencies automatically, and does not require + PID1's support for that anymore. + + journalctl gained a new switch, --list-boots, that lists + recent boots with their times and boot IDs. + + The various tools like systemctl, loginctl, timedatectl, + busctl, systemd-run, ... have gained a new switch "-M" to + connect to a specific, local OS container (as direct + connection, without requiring SSH). + + systemd-run and systemd-analyze also gained support for "-H" + to connect to remote hosts via SSH. This is particularly + useful for systemd-run because it enables queuing of jobs + onto remote systems. + + machinectl gained a new command "login" to open a getty + login in any local container. This works with any container + that is registered with machined (such as those created by + libvirt-lxc or nspawn), and which runs systemd inside. + + machinectl gained a new "reboot" command that may be used to + trigger a reboot on a specific container that is registered + with machined. This works on any container that runs an init + system of some kind. + + systemctl gained a new "list-timers" command to print a nice + listing of installed timer units with the times they elapse + next. + + Alternative reboot() parameters may now be specified on the + "systemctl reboot" command line and are passed to the + reboot() system call. + + systemctl gained a new --job-mode= switch to configure the + mode to queue a job with. This is a more generic version of + --fail, --irreversible, and --ignore-dependencies, which are + still available but not advertised anymore. + + /etc/systemd/system.conf gained new settings to configure + various default timeouts of units, as well as the default + start limit interval and burst. These may still be overridden + within each Unit. + + PID1 will now export on the bus profile data of the security + policy upload process (such as the SELinux policy upload to + the kernel). + + journald: when forwarding logs to the console, include + timestamps (following the setting in + /sys/module/printk/parameters/time). + + OnCalendar= in timer units now understands the special + strings "yearly" and "annually". (Both are equivalent) + + The accuracy of timer units is now configurable with the new + AccuracySec= setting. It defaults to 1min. + + A new dependency type JoinsNamespaceOf= has been added that + allows running two services within the same /tmp and network + namespace, if PrivateNetwork= or PrivateTmp= are used. + + A new command "cat" has been added to systemctl. It outputs + the original unit file of a unit, and concatenates the + contents of additional "drop-in" unit file snippets, so that + the full configuration is shown. + + systemctl now supports globbing on the various "list-xyz" + commands, like "list-units" or "list-sockets", as well as on + those commands which take multiple unit names. + + journalctl's --unit= switch gained support for globbing. + + All systemd daemons now make use of the watchdog logic so + that systemd automatically notices when they hang. + + If the $container_ttys environment variable is set, + getty-generator will automatically spawn a getty for each + listed tty. This is useful for container managers to request + login gettys to be spawned on as many ttys as needed. + + %h, %s, %U specifier support is not available anymore when + used in unit files for PID 1. This is because NSS calls are + not safe from PID 1. They stay available for --user + instances of systemd, and as special case for the root user. + + loginctl gained a new "--no-legend" switch to turn off output + of the legend text. + + The "sd-login.h" API gained three new calls: + sd_session_is_remote(), sd_session_get_remote_user(), + sd_session_get_remote_host() to query information about + remote sessions. + + The udev hardware database now also carries vendor/product + information of SDIO devices. + + The "sd-daemon.h" API gained a new sd_watchdog_enabled() to + determine whether watchdog notifications are requested by + the system manager. + + Socket-activated per-connection services now include a + short description of the connection parameters in the + description. + + tmpfiles gained a new "--boot" option. When this is not used, + only lines where the command character is not suffixed with + "!" are executed. When this option is specified, those + options are executed too. + + systemctl gained a new "import-environment" command which + uploads the caller's environment (or parts thereof) into the + service manager so that it is inherited by services started + by the manager. This is useful to upload variables like + $DISPLAY into the user service manager. + + A new PrivateDevices= switch has been added to service units + which allows running a service with a namespaced /dev + directory that does not contain any device nodes for + physical devices. More specifically, it only includes devices + such as /dev/null, /dev/urandom, and /dev/zero which are API + entry points. + + logind has been extended to support behaviour like VT + switching on seats that do not support a VT. This makes + multi-session available on seats that are not the first seat + (seat0), and on systems where kernel support for VTs has + been disabled at compile-time. + + If a process holds a delay lock for system sleep or shutdown + and fails to release it in time, we will now log its + identity. This makes it easier to identify processes that + cause slow suspends or power-offs. + + When parsing /etc/crypttab, support for a new key-slot= + option as supported by Debian is added. It allows indicating + which LUKS slot to use on disk, speeding up key loading. + + The sd_journald_sendv() API call has been checked and + officially declared to be async-signal-safe so that it may + be invoked from signal handlers for logging purposes. + + Boot-time status output is now enabled automatically after a + short timeout if boot does not progress, in order to give + the user an indication what she or he is waiting for. + + The boot-time output has been improved to show how much time + remains until jobs expire. + + The KillMode= switch in service units gained a new possible + value "mixed". If set, and the unit is shut down, then the + initial SIGTERM signal is sent only to the main daemon + process, while the following SIGKILL signal is sent to + all remaining processes of the service. + + logind will now also track a "Desktop" identifier for each + session which encodes the desktop environment of it. This is + useful for desktop environments that want to identify + multiple running sessions of itself easily. + + A new SELinuxContext= setting for service units has been + added that allows setting a specific SELinux execution + context for a service. + + Most systemd client tools will now honour $SYSTEMD_LESS for + settings of the "less" pager. + + systemd's "seccomp" hook-up has been changed to make use of + the libseccomp library instead of using its own + implementation. This has benefits for portability among + other things. +- Dropped systemd patches as those are fixed upstream: + * 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch + * 0002-fix-lingering-references-to-var-lib-backlight-random.patch + * 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch + * 0004-systemctl-fix-name-mangling-for-sysv-units.patch + * 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch + * 0006-journald-add-missing-error-check.patch + * 0007-bus-fix-potentially-uninitialized-memory-access.patch + * 0008-dbus-fix-return-value-of-dispatch_rqueue.patch + * 0009-modules-load-fix-error-handling.patch + * 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch + * 0011-strv-don-t-access-potentially-NULL-string-arrays.patch + * 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch + * 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch + * 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch + * 0001-gpt-auto-generator-exit-immediately-if-in-container.patch + * 0001-manager-when-verifying-whether-clients-may-change-en.patch + * 0001-logind-fix-bus-introspection-data-for-TakeControl.patch + * 0001-mount-check-for-NULL-before-reading-pm-what.patch + * 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch + * 0001-systemd-serialize-deserialize-forbid_restart-value.patch + * 0001-core-unify-the-way-we-denote-serialization-attribute.patch + * 0001-journald-fix-minor-memory-leak.patch + * 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch + * 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch + * 0001-login-fix-invalid-free-in-sd_session_get_vt.patch + * 0001-login-make-sd_session_get_vt-actually-work.patch + * 0001-Never-call-qsort-on-potentially-NULL-arrays.patch + * 0001-dbus-common-avoid-leak-in-error-path.patch + * 0001-drop-ins-check-return-value.patch + * 0001-shared-util-Fix-glob_extend-argument.patch + * 0001-Fix-bad-assert-in-show_pid_array.patch + * 0001-analyze-set-white-background.patch + * 0001-analyze-set-text-on-side-with-most-space.patch + * analyze-fix-crash-in-command-line-parsing.patch + * 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch + * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch + * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch + * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch + * U_logind_revert_lazy_session_activation_on_non_vt_seats.patch + * build-sys-make-multi-seat-x-optional.patch + * 1017-skip-native-unit-handling-if-sysv-already-handled.patch + * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch + * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch + * 0031-man-document-the-b-special-boot-option.patch + * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch + * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch + * 0035-activate-mention-E-in-the-help-text.patch + * 0036-activate-fix-crash-when-s-is-passed.patch + * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch + * 0038-core-socket-fix-SO_REUSEPORT.patch + * 0039-journal-when-appending-to-journal-file-allocate-larg.patch + * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch + * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch + * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch + * 0043-journal-simplify-pre-allocation-logic.patch + * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch + * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch + * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch + * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch + * 0049-systemd-treat-reload-failure-as-failure.patch +- Dropped backported systemd patches as those are fixed upstream + * 0145-logind-use-correct-who-enum-values-with-KillUnit.patch + * 1011-check-4-valid-kmsg-device.patch + * 0001-logind-garbage-collect-stale-users.patch +- Dropped udev patches as those are fixed fixed upstream: + * 0026-udevadm.xml-document-resolve-names-option-for-test.patch + * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch +- Modified patches + * 1006-udev-always-rename-network.patch +- Replaced patches + * the patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + is upstream now but has to be replaced by patch + 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to fix an further issue similar to the upstream patch (bnc#852015) + * the patch + 0001-upstream-systemctl-halt-reboot-error-handling.patch + is upstream now, only the part with the halt after a failed poweroff + has been added to the patch + 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + +------------------------------------------------------------------- +Thu Feb 27 15:13:09 UTC 2014 - werner@suse.de + +- Add patch 0001-make-209-working-on-older-dist.patch to make + it usable on older distributions like 13.1 + +------------------------------------------------------------------- +Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de + +- Add patch 0001-add-network-device-after-NFS-mount-units.patch to + add "After" dependency to all NFS shares to the network interface + device as this ensures at shutdown that the NFS share becomes + unmounted before the interface is down (bnc#861489) + ++------------------------------------------------------------------- +Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de + +- enable compat-libs, BuildRequires binutils-gold + ("old" ld fails on ifunc magic) + +------------------------------------------------------------------- +Sun Feb 23 16:11:22 UTC 2014 - stefan.bruens@rwth-aachen.de + +- add network link configuration for udev + +------------------------------------------------------------------- +Sun Feb 23 15:44:01 UTC 2014 - stefan.bruens@rwth-aachen.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, + move to core and link in directly to avoid libudev dep all over +- Disable networkd +- Disable compat-libs, adapt files section +- add and remove some entries in the files section + +------------------------------------------------------------------- +Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de + +- Modify patch 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch + to avoid WantedBy for Should-Start/Start-Before/Start-After SysVinit + scripts (bnc#863217) + +------------------------------------------------------------------- +Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to do a final sync() and flush the disks + ------------------------------------------------------------------- Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 808ed2ae..2d9fb3c2 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -23,10 +23,13 @@ %define udevpkgname udev-mini %define udev_major 1 %bcond_without bash_completion +%bcond_without compat_libs +%bcond_with networkd +%bcond_with python Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 208 +Version: 210 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -36,6 +39,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: %{real} = %{version}-%{release} BuildRequires: audit-devel +%if %{with compat_libs} +BuildRequires: binutils-gold +%endif %if ! 0%{?bootstrap} BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets @@ -52,6 +58,7 @@ BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libattr-devel BuildRequires: libcap-devel +BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool %if ! 0%{?bootstrap} @@ -68,10 +75,17 @@ BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel +%if %{with python} +BuildRequires: python +%endif BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif +%if 0%{?suse_version} <= 1310 BuildRequires: pkgconfig(libkmod) >= 14 +%else +BuildRequires: pkgconfig(libkmod) >= 15 +%endif BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) @@ -82,6 +96,11 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif +%if 0%{?suse_version} > 1310 +%ifarch %ix86 x86_64 x32 %arm +BuildRequires: pkgconfig(libseccomp) +%endif +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} @@ -96,7 +115,11 @@ Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd +%if 0%{?suse_version} <= 1310 Requires: kmod >= 14 +%else +Requires: kmod >= 15 +%endif Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -181,162 +204,99 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch47: systemd-dbus-system-bus-address.patch -# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak -Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch -# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation -Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch -# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free -Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch -# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units -Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch -# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling -Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch -# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check -Patch53: 0006-journald-add-missing-error-check.patch -# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access -Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value -Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch -# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling -Patch56: 0009-modules-load-fix-error-handling.patch -# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch -# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer -Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch -# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal -Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch -# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target -Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch -# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container -Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch -# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case -Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch -# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl -Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch -# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit -Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing -Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch -# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart -Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch -# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes -Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch -# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald -Patch69: 0001-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing -Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch -# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation -Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch -# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt -Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch -# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value -Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch -# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays -Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code -Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch -# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks -Patch76: 0001-drop-ins-check-return-value.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument -Patch77: 0001-shared-util-Fix-glob_extend-argument.patch -# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array -Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white -Patch79: 0001-analyze-set-white-background.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space -Patch80: 0001-analyze-set-text-on-side-with-most-space.patch -# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. -Patch81: 0001-logind-garbage-collect-stale-users.patch -# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze -Patch82: analyze-fix-crash-in-command-line-parsing.patch -# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) -Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch -# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch -Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) -Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) -Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) -Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) -Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com +Patch114: 0001-systemd-empty-sigmask-on-reexec.patch +# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com +Patch117: 0001-make-209-working-on-older-dist.patch +# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com +Patch119: 0001-make-fortify-happy-with-ppoll.patch +# PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com +Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch121: 0001-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch -# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) -Patch1011: 1011-check-4-valid-kmsg-device.patch -# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch -Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch -Patch1015: build-sys-make-multi-seat-x-optional.patch # PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch Patch1016: 1016-support-powerfail-with-powerstatus.patch -# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch -Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch -# PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com -Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch -# PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com -Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch -# PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com -Patch97: 0031-man-document-the-b-special-boot-option.patch -# PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com -Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch -# PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com -Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch -# PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com -Patch101: 0035-activate-mention-E-in-the-help-text.patch -# PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com -Patch102: 0036-activate-fix-crash-when-s-is-passed.patch -# PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com -Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch -# PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com -Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch -# PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com -Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch -# PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com -Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch -# PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com -Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch -# PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com -Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch -# PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com -Patch109: 0043-journal-simplify-pre-allocation-logic.patch -# PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com -Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch -# PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com -Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch -# PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com -Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch -# PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com -Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch -# PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com -Patch114: 0049-systemd-treat-reload-failure-as-failure.patch - +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch1020: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch +Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch +# PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch +Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -351,10 +311,6 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com -Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch -# PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com -Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -588,6 +544,8 @@ cp %{SOURCE7} m4/ %patch23 -p1 %patch24 -p1 %patch25 -p1 +# check if this is still needed, or can be derived from fbdev uaccess rule +# http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch37 -p1 %ifarch %arm @@ -598,85 +556,55 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 %patch84 -p1 -%patch85 -p1 %patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 %patch90 -p1 %patch91 -p1 -%patch92 -p1 %patch93 -p1 +%patch114 -p0 +%if 0%{?suse_version} <= 1310 +%patch117 -p1 +%endif +%patch119 -p1 +%patch120 -p1 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 %patch1009 -p1 %patch1010 -p1 -%patch1011 -p1 %patch1012 -p1 -%patch1013 -p1 %patch1014 -p1 -%patch1015 -p1 %patch1016 -p1 -%patch1017 -p1 %patch1018 -p1 %patch1019 -p1 -%patch94 -p0 -%patch96 -p0 -%patch97 -p0 -%patch99 -p0 -%patch100 -p0 -%patch101 -p0 -%patch102 -p0 -%patch103 -p0 -%patch104 -p0 -%patch105 -p0 -%patch106 -p0 -%patch107 -p0 -%patch108 -p0 -%patch109 -p0 -%patch110 -p0 -%patch111 -p0 -%patch112 -p0 -%patch113 -p0 -%patch114 -p0 - +%patch1020 -p1 +%patch1022 -p1 +%patch1999 -p1 # udev patches +%patch1034 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -687,8 +615,6 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif -%patch95 -p0 -%patch98 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -705,10 +631,17 @@ export V=1 %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ + --disable-manpages \ %else --enable-manpages \ +%if %{with python} + --with-python \ +%endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%endif +%if %{with compat_libs} + --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ @@ -721,6 +654,9 @@ export V=1 --disable-ima \ %if 0%{?suse_version} > 1310 --disable-multi-seat-x \ +%endif +%if %{without networkd} + --disable-networkd \ %endif CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -730,34 +666,34 @@ make install DESTDIR="%buildroot" # move to %{_lib} %if ! 0%{?bootstrap} -mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} +mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} %endif -mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} -ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm -ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password -ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl -ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +mkdir -p %{buildroot}/{sbin,lib,bin} +ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm +ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password +ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl +ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} -ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 +ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware +ln -sf /lib/firmware %{buildroot}/usr/lib/firmware %if ! 0%{?bootstrap} -install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev -ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service +install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev +ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} -install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants +install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants +ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} @@ -821,7 +757,7 @@ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} -rm -f %{buildroot}/var/log/README +rm -f %{buildroot}%{_localstatedir}/log/README rm -rf %{buildroot}%{_datadir}/bash-completion %endif @@ -835,13 +771,13 @@ done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}/var/log/journal +mkdir -p %{buildroot}%{_localstatedir}/log/journal # Make sure directories in /var exist -mkdir -p %{buildroot}/var/lib/systemd/coredump -mkdir -p %{buildroot}/var/lib/systemd/catalog +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog #create ghost databases -touch %{buildroot}/var/lib/systemd/catalog/database +touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin # Make sure the NTP units dir exists @@ -872,15 +808,45 @@ install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done +%endif %endif +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed + %fdupes -s %{buildroot}%{_mandir} +%if ! 0%{?bootstrap} +for f in %{buildroot}%{_datadir}/bash-completion/completions/* +do + test -e "$f" || break + grep -q _init_completion "$f" || continue + echo "%exclude %{_datadir}/bash-completion/completions/${f##*}" +done > files.completion +%else +> files.completion +%endif + %if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif +%if %{without compat_libs} +lib=%{_libdir}/libsystemd.so +for lnk in daemon login id128 journal +do + lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so + echo '/* GNU ld script */' > ${lnk} + echo 'INPUT('${lib}')' >> ${lnk} +done +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -890,14 +856,14 @@ exit 0 /usr/sbin/pam-config -a --systemd || : %endif /sbin/ldconfig -[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : +[ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files -chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : -chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chmod g+s %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -996,9 +962,9 @@ if test -f /proc/1/exe -a -d /proc/1/root; then fi if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -1010,9 +976,9 @@ fi systemctl daemon-reload >/dev/null 2>&1 || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -1045,7 +1011,7 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -1067,6 +1033,7 @@ exit 0 /bin/systemd-ask-password /bin/systemctl %{_bindir}/bootctl +%{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl @@ -1091,10 +1058,13 @@ exit 0 %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert +%{_libdir}/libsystemd.so.* +%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_libdir}/libsystemd-id128.so.* %{_libdir}/libsystemd-journal.so.* +%endif %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat @@ -1110,8 +1080,11 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* +%endif %{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -1123,12 +1096,14 @@ exit 0 %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %exclude %{_prefix}/lib/systemd/systemd-udevd +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd +%endif %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog %{_prefix}/lib/systemd/catalog/systemd.catalog -%dir %{_prefix}/lib/systemd/system-shutdown +%{_prefix}/lib/systemd/catalog/systemd.*.catalog %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset @@ -1185,10 +1160,6 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf -%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service @@ -1203,8 +1174,11 @@ exit 0 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%if ! 0%{?bootstrap} %exclude %{_datadir}/systemd/gatewayd +%endif %{_datadir}/systemd +%{_datadir}/locale/*/LC_MESSAGES %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage @@ -1234,35 +1208,32 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%ghost /var/lib/systemd/catalog/database %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif -%dir /var/lib/systemd -%dir /var/lib/systemd/sysv-convert -%dir /var/lib/systemd/migrated -%dir /var/lib/systemd/catalog -%ghost /var/lib/systemd/catalog/database -%dir /var/lib/systemd/coredump -%dir /usr/share/zsh -%dir /usr/share/zsh/site-functions -/usr/share/zsh/site-functions/* -%ghost /var/lib/systemd/backlight -%ghost /var/lib/systemd/random-seed +%dir %{_localstatedir}/lib/systemd +%dir %{_localstatedir}/lib/systemd/sysv-convert +%dir %{_localstatedir}/lib/systemd/migrated +%dir %{_localstatedir}/lib/systemd/catalog +%ghost %{_localstatedir}/lib/systemd/catalog/database +%dir %{_localstatedir}/lib/systemd/coredump +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/* +%ghost %{_localstatedir}/lib/systemd/backlight +%ghost %{_localstatedir}/lib/systemd/random-seed %if ! 0%{?bootstrap} -%files bash-completion +%files bash-completion -f files.completion %defattr(-,root,root,-) %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions -%if %{without bash_completion} -%exclude %{_datadir}/bash-completion/completions/systemd-analyze -%endif %{_datadir}/bash-completion/completions/* %endif %files devel %defattr(-,root,root,-) +%{_libdir}/libsystemd.so %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so @@ -1273,8 +1244,9 @@ exit 0 %{_includedir}/systemd/sd-id128.h %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h -%{_includedir}/systemd/sd-shutdown.h +%{_includedir}/systemd/_sd-common.h %{_datadir}/pkgconfig/systemd.pc +%{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc @@ -1343,6 +1315,9 @@ exit 0 %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service %dir %{_prefix}/lib/systemd/system/sockets.target.wants %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket +%dir %{_prefix}/lib/systemd/network +%{_prefix}/lib/systemd/network/*.link +%{_prefix}/lib/systemd/network/*.network %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) @@ -1385,8 +1360,8 @@ exit 0 %files logger %defattr(-,root,root) -%dir /var/log/journal -/var/log/README +%dir %{_localstatedir}/log/journal +%{_localstatedir}/log/README /etc/init.d/systemd-journald %files -n nss-myhostname diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 492ab22b..61d05349 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -21,4 +21,4 @@ SUSE policy is to not clean /tmp by default. +d /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes - x /tmp/systemd-private-* + x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index d9e7abdd..4ef46a16 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,490 @@ +------------------------------------------------------------------- +Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-Fix-systemd-stdio-bridge-symlink.patch + 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + 0004-man-document-missing-options-of-systemd-run.patch + 0005-systemd-run-add-some-extra-safety-checks.patch + 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + 0007-journal-forget-file-after-encountering-an-error.patch + 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + 0010-man-update-link-to-LSB.patch + 0011-man-systemd-bootchart-fix-spacing-in-command.patch + 0012-man-add-missing-comma.patch + 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + +------------------------------------------------------------------- +Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de + +- Add linker scripts as place holder of the old systemd shared + libraries now all included in libsystemd.so (bnc#867128) + +------------------------------------------------------------------- +Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de + +- Make patch 1006-udev-always-rename-network.patch work again + and add it again. + +------------------------------------------------------------------- +Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com + +- address missing owner functionality in systemd-tmpfiles (fate#314974) + 1022-systemd-tmpfiles-ownerkeep.patch + +------------------------------------------------------------------- +Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de + +- Generate the bash completion files on the fly for the case of + not having the package bash-completion around +- Add or port upstream bugfix patches: + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + 0002-cdrom_id-use-the-old-MMC-fallback.patch + 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + 0004-logs-show-fix-corrupt-output-with-empty-messages.patch + 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + 0008-README-document-that-var-run-must-be-a-symlink-run.patch + 0010-Replace-var-run-with-run-in-remaining-places.patch + 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + 0014-login-fix-pos-array-allocation.patch + +------------------------------------------------------------------- +Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de + +- Update to Release v210 + + systemd will now relabel /dev after loading the SMACK policy + according to SMACK rules. + + A new unit file option AppArmoreProfile= has been added to + set the AppArmor profile for the processes of a unit. + + A new condition check ConditionArchitecture= has been added + to conditionalize units based on the system architecture, as + reported by uname()'s "machine" field. + + systemd-networkd now supports matching on the system + virtualization, architecture, kernel command line, host name + and machine ID. + + logind is now a lot more aggressive when suspending the + machine due to a closed laptop lid. + + logind will now watch SW_DOCK switches and inhibit reaction + to the lid switch if it is pressed. + + nspawn will now make use of the devices cgroup controller by + default, and only permit creation of and access to the usual + API device nodes like /dev/null or /dev/random, as well as + access to (but not creation of) the pty devices. + + systemd will now understand the usual M, K, G, T suffixes + according to SI conventions (i.e. to the base 1000) when + referring to throughput and hardware metrics. + + The DeviceAllow= setting in unit files now supports a syntax + to whitelist an entire group of devices node majors at once, + based on the /proc/devices listing. For example, with the + string "char-pts" it is now possible to whitelist all + current and future pseudo-TTYs at once. + + sd-event learned a new "post" event source. Event sources of + this type are triggered by the dispatching of any event + source of a type that is not "post". This is useful for + implementing clean-up and check event sources that are + triggered by other work being done in the program. + + The compatibility libraries for libsystemd-journal.so, + libsystem-id128.so, libsystemd-login.so and + libsystemd-daemon.so do not make use of IFUNC + anymore. +- Dropped systemd patches as those are fixed upstream: + * 0001-units-serial-getty-.service-add-Install-section.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patchc + * 0001-make-tests-with-libseccomp-work.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-units-serial-getty-.service-add-Install-section.patch +- Dropped patches as those do not work anymore + * 1006-udev-always-rename-network.patch +- Renamed systemd patches as seen from git log: + * 0001-cdrom_id-use-the-old-MMC-fallback.patch + become 0002-cdrom_id-use-the-old-MMC-fallback.patch + * 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + become 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + * 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + become 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +- Add several upstream bugfix patches which are missed: + * 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + * 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + * 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + * 0008-README-document-that-var-run-must-be-a-symlink-run.patch + * 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + * 0010-Replace-var-run-with-run-in-remaining-places.patch + * 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + * 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + * 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + * 0014-login-fix-pos-array-allocation.patch +- Modified patches to make is build + * 0001-add-network-device-after-NFS-mount-units.patch +- Reenable libseccomp for the architecture for which libseccomp exists + +------------------------------------------------------------------- +Sun Mar 2 15:51:24 CET 2014 - ro@suse.de + +- always install compat pkgconfig files, regardless if + compat libs is enabled or not + +------------------------------------------------------------------- +Sun Mar 2 14:47:23 CET 2014 - ro@suse.de + +- disable use of libseccomp for sle12, library has not been ported + to most architectures +- do not use binutils-gold on s390/s390x, does not exist there +- fix exclude statements for bootstrap case + +------------------------------------------------------------------- +Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de + +- Add upstream patches + + 0001-cdrom_id-use-the-old-MMC-fallback.patch + + 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + + 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + +------------------------------------------------------------------- +Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de + +- Add patch + 0001-systemd-empty-sigmask-on-reexec.patch + which corrects sigmaks for reexec in initrd (bnc#864904) + +------------------------------------------------------------------- +Fri Feb 28 17:38:06 UTC 2014 - werner@suse.de + +- Add patch + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + to avoid error on not existing file /proc/self/loginuid + +------------------------------------------------------------------- +Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de + +- Make patch + 0001-make-209-working-on-older-dist.patch + more smart that is make configure script les restrictive +- Make patch + apply-ACL-for-nvidia-device-nodes.patch + apply to v209 + +------------------------------------------------------------------- +Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de + +- Update to Release v209 on the base of the work of Stefan Brüns + from declined submit request 223602: + + A new tool "systemd-socket-proxyd" has been added + + Add a new tool to save/restore rfkill state on + shutdown/boot. + + Save/restore state of keyboard backlights in addition to + display backlights on shutdown/boot. + + udev learned a new SECLABEL{} construct to label device + nodes with a specific security label when they appear. For + now, only SECLABEL{selinux} is supported, but the syntax is + prepared for additional security frameworks. + + When the User= switch is used in a unit file, also + initialize $SHELL= based on the user database entry. + + systemd no longer depends on libdbus. All communication is + now done with sd-bus, systemd's low-level bus library + implementation. + + sd-bus: add a light-weight vtable implementation that allows + defining objects on the bus with a simple static const + vtable array of its methods, signals and properties. + + systemd will not generate or install static dbus + introspection data anymore to /usr/share/dbus-1/interfaces, + as the precise format of these files is unclear, and + nothing makes use of it. + + A proxy daemon is now provided to proxy clients connecting + via classic D-Bus AF_UNIX sockets to kdbus, to provide full + compatibility with classic D-Bus. + + A bus driver implementation has been added that supports the + classic D-Bus bus driver calls on kdbus, also for + compatibility purposes. + + A new API "sd-event.h" has been added that implements a + minimal event loop API built around epoll. + + A new API "sd-rntl.h" has been added that provides an API + around the route netlink interface of the kernel, similar in + style to "sd-bus.h". + + A new API "sd-dhcp-client.h" has been added that provides a + small DHCPv4 client-side implementation. This is used by + "systemd-networkd". + + There is a new kernel command line option + "systemd.restore_state=0|1". When set to "0", none of the + systemd tools will restore saved runtime state to hardware + devices. More specifically, the rfkill and backlight states + are not restored. + + The FsckPassNo= compatibility option in mount/service units + has been removed. The fstab generator will now add the + necessary dependencies automatically, and does not require + PID1's support for that anymore. + + journalctl gained a new switch, --list-boots, that lists + recent boots with their times and boot IDs. + + The various tools like systemctl, loginctl, timedatectl, + busctl, systemd-run, ... have gained a new switch "-M" to + connect to a specific, local OS container (as direct + connection, without requiring SSH). + + systemd-run and systemd-analyze also gained support for "-H" + to connect to remote hosts via SSH. This is particularly + useful for systemd-run because it enables queuing of jobs + onto remote systems. + + machinectl gained a new command "login" to open a getty + login in any local container. This works with any container + that is registered with machined (such as those created by + libvirt-lxc or nspawn), and which runs systemd inside. + + machinectl gained a new "reboot" command that may be used to + trigger a reboot on a specific container that is registered + with machined. This works on any container that runs an init + system of some kind. + + systemctl gained a new "list-timers" command to print a nice + listing of installed timer units with the times they elapse + next. + + Alternative reboot() parameters may now be specified on the + "systemctl reboot" command line and are passed to the + reboot() system call. + + systemctl gained a new --job-mode= switch to configure the + mode to queue a job with. This is a more generic version of + --fail, --irreversible, and --ignore-dependencies, which are + still available but not advertised anymore. + + /etc/systemd/system.conf gained new settings to configure + various default timeouts of units, as well as the default + start limit interval and burst. These may still be overridden + within each Unit. + + PID1 will now export on the bus profile data of the security + policy upload process (such as the SELinux policy upload to + the kernel). + + journald: when forwarding logs to the console, include + timestamps (following the setting in + /sys/module/printk/parameters/time). + + OnCalendar= in timer units now understands the special + strings "yearly" and "annually". (Both are equivalent) + + The accuracy of timer units is now configurable with the new + AccuracySec= setting. It defaults to 1min. + + A new dependency type JoinsNamespaceOf= has been added that + allows running two services within the same /tmp and network + namespace, if PrivateNetwork= or PrivateTmp= are used. + + A new command "cat" has been added to systemctl. It outputs + the original unit file of a unit, and concatenates the + contents of additional "drop-in" unit file snippets, so that + the full configuration is shown. + + systemctl now supports globbing on the various "list-xyz" + commands, like "list-units" or "list-sockets", as well as on + those commands which take multiple unit names. + + journalctl's --unit= switch gained support for globbing. + + All systemd daemons now make use of the watchdog logic so + that systemd automatically notices when they hang. + + If the $container_ttys environment variable is set, + getty-generator will automatically spawn a getty for each + listed tty. This is useful for container managers to request + login gettys to be spawned on as many ttys as needed. + + %h, %s, %U specifier support is not available anymore when + used in unit files for PID 1. This is because NSS calls are + not safe from PID 1. They stay available for --user + instances of systemd, and as special case for the root user. + + loginctl gained a new "--no-legend" switch to turn off output + of the legend text. + + The "sd-login.h" API gained three new calls: + sd_session_is_remote(), sd_session_get_remote_user(), + sd_session_get_remote_host() to query information about + remote sessions. + + The udev hardware database now also carries vendor/product + information of SDIO devices. + + The "sd-daemon.h" API gained a new sd_watchdog_enabled() to + determine whether watchdog notifications are requested by + the system manager. + + Socket-activated per-connection services now include a + short description of the connection parameters in the + description. + + tmpfiles gained a new "--boot" option. When this is not used, + only lines where the command character is not suffixed with + "!" are executed. When this option is specified, those + options are executed too. + + systemctl gained a new "import-environment" command which + uploads the caller's environment (or parts thereof) into the + service manager so that it is inherited by services started + by the manager. This is useful to upload variables like + $DISPLAY into the user service manager. + + A new PrivateDevices= switch has been added to service units + which allows running a service with a namespaced /dev + directory that does not contain any device nodes for + physical devices. More specifically, it only includes devices + such as /dev/null, /dev/urandom, and /dev/zero which are API + entry points. + + logind has been extended to support behaviour like VT + switching on seats that do not support a VT. This makes + multi-session available on seats that are not the first seat + (seat0), and on systems where kernel support for VTs has + been disabled at compile-time. + + If a process holds a delay lock for system sleep or shutdown + and fails to release it in time, we will now log its + identity. This makes it easier to identify processes that + cause slow suspends or power-offs. + + When parsing /etc/crypttab, support for a new key-slot= + option as supported by Debian is added. It allows indicating + which LUKS slot to use on disk, speeding up key loading. + + The sd_journald_sendv() API call has been checked and + officially declared to be async-signal-safe so that it may + be invoked from signal handlers for logging purposes. + + Boot-time status output is now enabled automatically after a + short timeout if boot does not progress, in order to give + the user an indication what she or he is waiting for. + + The boot-time output has been improved to show how much time + remains until jobs expire. + + The KillMode= switch in service units gained a new possible + value "mixed". If set, and the unit is shut down, then the + initial SIGTERM signal is sent only to the main daemon + process, while the following SIGKILL signal is sent to + all remaining processes of the service. + + logind will now also track a "Desktop" identifier for each + session which encodes the desktop environment of it. This is + useful for desktop environments that want to identify + multiple running sessions of itself easily. + + A new SELinuxContext= setting for service units has been + added that allows setting a specific SELinux execution + context for a service. + + Most systemd client tools will now honour $SYSTEMD_LESS for + settings of the "less" pager. + + systemd's "seccomp" hook-up has been changed to make use of + the libseccomp library instead of using its own + implementation. This has benefits for portability among + other things. +- Dropped systemd patches as those are fixed upstream: + * 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch + * 0002-fix-lingering-references-to-var-lib-backlight-random.patch + * 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch + * 0004-systemctl-fix-name-mangling-for-sysv-units.patch + * 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch + * 0006-journald-add-missing-error-check.patch + * 0007-bus-fix-potentially-uninitialized-memory-access.patch + * 0008-dbus-fix-return-value-of-dispatch_rqueue.patch + * 0009-modules-load-fix-error-handling.patch + * 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch + * 0011-strv-don-t-access-potentially-NULL-string-arrays.patch + * 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch + * 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch + * 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch + * 0001-gpt-auto-generator-exit-immediately-if-in-container.patch + * 0001-manager-when-verifying-whether-clients-may-change-en.patch + * 0001-logind-fix-bus-introspection-data-for-TakeControl.patch + * 0001-mount-check-for-NULL-before-reading-pm-what.patch + * 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch + * 0001-systemd-serialize-deserialize-forbid_restart-value.patch + * 0001-core-unify-the-way-we-denote-serialization-attribute.patch + * 0001-journald-fix-minor-memory-leak.patch + * 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch + * 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch + * 0001-login-fix-invalid-free-in-sd_session_get_vt.patch + * 0001-login-make-sd_session_get_vt-actually-work.patch + * 0001-Never-call-qsort-on-potentially-NULL-arrays.patch + * 0001-dbus-common-avoid-leak-in-error-path.patch + * 0001-drop-ins-check-return-value.patch + * 0001-shared-util-Fix-glob_extend-argument.patch + * 0001-Fix-bad-assert-in-show_pid_array.patch + * 0001-analyze-set-white-background.patch + * 0001-analyze-set-text-on-side-with-most-space.patch + * analyze-fix-crash-in-command-line-parsing.patch + * 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch + * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch + * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch + * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch + * U_logind_revert_lazy_session_activation_on_non_vt_seats.patch + * build-sys-make-multi-seat-x-optional.patch + * 1017-skip-native-unit-handling-if-sysv-already-handled.patch + * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch + * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch + * 0031-man-document-the-b-special-boot-option.patch + * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch + * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch + * 0035-activate-mention-E-in-the-help-text.patch + * 0036-activate-fix-crash-when-s-is-passed.patch + * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch + * 0038-core-socket-fix-SO_REUSEPORT.patch + * 0039-journal-when-appending-to-journal-file-allocate-larg.patch + * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch + * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch + * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch + * 0043-journal-simplify-pre-allocation-logic.patch + * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch + * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch + * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch + * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch + * 0049-systemd-treat-reload-failure-as-failure.patch +- Dropped backported systemd patches as those are fixed upstream + * 0145-logind-use-correct-who-enum-values-with-KillUnit.patch + * 1011-check-4-valid-kmsg-device.patch + * 0001-logind-garbage-collect-stale-users.patch +- Dropped udev patches as those are fixed fixed upstream: + * 0026-udevadm.xml-document-resolve-names-option-for-test.patch + * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch +- Modified patches + * 1006-udev-always-rename-network.patch +- Replaced patches + * the patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + is upstream now but has to be replaced by patch + 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to fix an further issue similar to the upstream patch (bnc#852015) + * the patch + 0001-upstream-systemctl-halt-reboot-error-handling.patch + is upstream now, only the part with the halt after a failed poweroff + has been added to the patch + 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + +------------------------------------------------------------------- +Thu Feb 27 15:13:09 UTC 2014 - werner@suse.de + +- Add patch 0001-make-209-working-on-older-dist.patch to make + it usable on older distributions like 13.1 + +------------------------------------------------------------------- +Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de + +- Add patch 0001-add-network-device-after-NFS-mount-units.patch to + add "After" dependency to all NFS shares to the network interface + device as this ensures at shutdown that the NFS share becomes + unmounted before the interface is down (bnc#861489) + ++------------------------------------------------------------------- +Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de + +- enable compat-libs, BuildRequires binutils-gold + ("old" ld fails on ifunc magic) + +------------------------------------------------------------------- +Sun Feb 23 16:11:22 UTC 2014 - stefan.bruens@rwth-aachen.de + +- add network link configuration for udev + +------------------------------------------------------------------- +Sun Feb 23 15:44:01 UTC 2014 - stefan.bruens@rwth-aachen.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, + move to core and link in directly to avoid libudev dep all over +- Disable networkd +- Disable compat-libs, adapt files section +- add and remove some entries in the files section + +------------------------------------------------------------------- +Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de + +- Modify patch 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch + to avoid WantedBy for Should-Start/Start-Before/Start-After SysVinit + scripts (bnc#863217) + +------------------------------------------------------------------- +Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to do a final sync() and flush the disks + ------------------------------------------------------------------- Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index c305b86b..4340cc00 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,16 +21,22 @@ %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion +%bcond_without compat_libs +%bcond_with networkd +%bcond_with python Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 208 +Version: 210 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel +%if %{with compat_libs} +BuildRequires: binutils-gold +%endif %if ! 0%{?bootstrap} BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets @@ -47,6 +53,7 @@ BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libattr-devel BuildRequires: libcap-devel +BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool %if ! 0%{?bootstrap} @@ -63,10 +70,17 @@ BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel +%if %{with python} +BuildRequires: python +%endif BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif +%if 0%{?suse_version} <= 1310 BuildRequires: pkgconfig(libkmod) >= 14 +%else +BuildRequires: pkgconfig(libkmod) >= 15 +%endif BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) @@ -77,6 +91,11 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif +%if 0%{?suse_version} > 1310 +%ifarch %ix86 x86_64 x32 %arm +BuildRequires: pkgconfig(libseccomp) +%endif +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} @@ -91,7 +110,11 @@ Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd +%if 0%{?suse_version} <= 1310 Requires: kmod >= 14 +%else +Requires: kmod >= 15 +%endif Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -176,162 +199,99 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch47: systemd-dbus-system-bus-address.patch -# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak -Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch -# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation -Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch -# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free -Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch -# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units -Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch -# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling -Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch -# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check -Patch53: 0006-journald-add-missing-error-check.patch -# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access -Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value -Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch -# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling -Patch56: 0009-modules-load-fix-error-handling.patch -# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch -# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer -Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch -# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal -Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch -# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target -Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch -# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container -Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch -# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case -Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch -# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl -Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch -# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit -Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing -Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch -# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart -Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch -# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes -Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch -# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald -Patch69: 0001-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing -Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch -# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation -Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch -# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt -Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch -# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value -Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch -# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays -Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code -Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch -# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks -Patch76: 0001-drop-ins-check-return-value.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument -Patch77: 0001-shared-util-Fix-glob_extend-argument.patch -# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array -Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white -Patch79: 0001-analyze-set-white-background.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space -Patch80: 0001-analyze-set-text-on-side-with-most-space.patch -# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. -Patch81: 0001-logind-garbage-collect-stale-users.patch -# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze -Patch82: analyze-fix-crash-in-command-line-parsing.patch -# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) -Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch -# PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch -Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -# PATCH-FIX-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) -Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) -Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) -Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) -Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com +Patch114: 0001-systemd-empty-sigmask-on-reexec.patch +# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com +Patch117: 0001-make-209-working-on-older-dist.patch +# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com +Patch119: 0001-make-fortify-happy-with-ppoll.patch +# PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com +Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch121: 0001-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch -# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) -Patch1011: 1011-check-4-valid-kmsg-device.patch -# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch -Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch -Patch1015: build-sys-make-multi-seat-x-optional.patch # PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch Patch1016: 1016-support-powerfail-with-powerstatus.patch -# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch -Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch -# PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com -Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch -# PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com -Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch -# PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com -Patch97: 0031-man-document-the-b-special-boot-option.patch -# PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com -Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch -# PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com -Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch -# PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com -Patch101: 0035-activate-mention-E-in-the-help-text.patch -# PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com -Patch102: 0036-activate-fix-crash-when-s-is-passed.patch -# PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com -Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch -# PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com -Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch -# PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com -Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch -# PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com -Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch -# PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com -Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch -# PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com -Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch -# PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com -Patch109: 0043-journal-simplify-pre-allocation-logic.patch -# PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com -Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch -# PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com -Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch -# PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com -Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch -# PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com -Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch -# PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com -Patch114: 0049-systemd-treat-reload-failure-as-failure.patch - +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch1020: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch +Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch +# PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch +Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -346,10 +306,6 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com -Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch -# PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com -Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -583,6 +539,8 @@ cp %{SOURCE7} m4/ %patch23 -p1 %patch24 -p1 %patch25 -p1 +# check if this is still needed, or can be derived from fbdev uaccess rule +# http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch37 -p1 %ifarch %arm @@ -593,85 +551,55 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 %patch84 -p1 -%patch85 -p1 %patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 %patch90 -p1 %patch91 -p1 -%patch92 -p1 %patch93 -p1 +%patch114 -p0 +%if 0%{?suse_version} <= 1310 +%patch117 -p1 +%endif +%patch119 -p1 +%patch120 -p1 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 %patch1009 -p1 %patch1010 -p1 -%patch1011 -p1 %patch1012 -p1 -%patch1013 -p1 %patch1014 -p1 -%patch1015 -p1 %patch1016 -p1 -%patch1017 -p1 %patch1018 -p1 %patch1019 -p1 -%patch94 -p0 -%patch96 -p0 -%patch97 -p0 -%patch99 -p0 -%patch100 -p0 -%patch101 -p0 -%patch102 -p0 -%patch103 -p0 -%patch104 -p0 -%patch105 -p0 -%patch106 -p0 -%patch107 -p0 -%patch108 -p0 -%patch109 -p0 -%patch110 -p0 -%patch111 -p0 -%patch112 -p0 -%patch113 -p0 -%patch114 -p0 - +%patch1020 -p1 +%patch1022 -p1 +%patch1999 -p1 # udev patches +%patch1034 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -682,8 +610,6 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1008 -p1 %endif -%patch95 -p0 -%patch98 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -700,10 +626,17 @@ export V=1 %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ + --disable-manpages \ %else --enable-manpages \ +%if %{with python} + --with-python \ +%endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%endif +%if %{with compat_libs} + --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ @@ -716,6 +649,9 @@ export V=1 --disable-ima \ %if 0%{?suse_version} > 1310 --disable-multi-seat-x \ +%endif +%if %{without networkd} + --disable-networkd \ %endif CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -725,34 +661,34 @@ make install DESTDIR="%buildroot" # move to %{_lib} %if ! 0%{?bootstrap} -mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} +mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} %endif -mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} -ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm -ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password -ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl -ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +mkdir -p %{buildroot}/{sbin,lib,bin} +ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm +ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password +ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl +ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} -ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 +ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware +ln -sf /lib/firmware %{buildroot}/usr/lib/firmware %if ! 0%{?bootstrap} -install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev -ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service +install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev +ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} -install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants +install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants +ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} @@ -816,7 +752,7 @@ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} -rm -f %{buildroot}/var/log/README +rm -f %{buildroot}%{_localstatedir}/log/README rm -rf %{buildroot}%{_datadir}/bash-completion %endif @@ -830,13 +766,13 @@ done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}/var/log/journal +mkdir -p %{buildroot}%{_localstatedir}/log/journal # Make sure directories in /var exist -mkdir -p %{buildroot}/var/lib/systemd/coredump -mkdir -p %{buildroot}/var/lib/systemd/catalog +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog #create ghost databases -touch %{buildroot}/var/lib/systemd/catalog/database +touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin # Make sure the NTP units dir exists @@ -867,15 +803,45 @@ install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done +%endif %endif +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed + %fdupes -s %{buildroot}%{_mandir} +%if ! 0%{?bootstrap} +for f in %{buildroot}%{_datadir}/bash-completion/completions/* +do + test -e "$f" || break + grep -q _init_completion "$f" || continue + echo "%exclude %{_datadir}/bash-completion/completions/${f##*}" +done > files.completion +%else +> files.completion +%endif + %if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif +%if %{without compat_libs} +lib=%{_libdir}/libsystemd.so +for lnk in daemon login id128 journal +do + lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so + echo '/* GNU ld script */' > ${lnk} + echo 'INPUT('${lib}')' >> ${lnk} +done +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -885,14 +851,14 @@ exit 0 /usr/sbin/pam-config -a --systemd || : %endif /sbin/ldconfig -[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : +[ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files -chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : -chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chmod g+s %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -991,9 +957,9 @@ if test -f /proc/1/exe -a -d /proc/1/root; then fi if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -1005,9 +971,9 @@ fi systemctl daemon-reload >/dev/null 2>&1 || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -1040,7 +1006,7 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -1062,6 +1028,7 @@ exit 0 /bin/systemd-ask-password /bin/systemctl %{_bindir}/bootctl +%{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl @@ -1086,10 +1053,13 @@ exit 0 %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert +%{_libdir}/libsystemd.so.* +%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_libdir}/libsystemd-id128.so.* %{_libdir}/libsystemd-journal.so.* +%endif %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat @@ -1105,8 +1075,11 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* +%endif %{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -1118,12 +1091,14 @@ exit 0 %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %exclude %{_prefix}/lib/systemd/systemd-udevd +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd +%endif %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog %{_prefix}/lib/systemd/catalog/systemd.catalog -%dir %{_prefix}/lib/systemd/system-shutdown +%{_prefix}/lib/systemd/catalog/systemd.*.catalog %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset @@ -1180,10 +1155,6 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf -%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service @@ -1198,8 +1169,11 @@ exit 0 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%if ! 0%{?bootstrap} %exclude %{_datadir}/systemd/gatewayd +%endif %{_datadir}/systemd +%{_datadir}/locale/*/LC_MESSAGES %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage @@ -1229,35 +1203,32 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%ghost /var/lib/systemd/catalog/database %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif -%dir /var/lib/systemd -%dir /var/lib/systemd/sysv-convert -%dir /var/lib/systemd/migrated -%dir /var/lib/systemd/catalog -%ghost /var/lib/systemd/catalog/database -%dir /var/lib/systemd/coredump -%dir /usr/share/zsh -%dir /usr/share/zsh/site-functions -/usr/share/zsh/site-functions/* -%ghost /var/lib/systemd/backlight -%ghost /var/lib/systemd/random-seed +%dir %{_localstatedir}/lib/systemd +%dir %{_localstatedir}/lib/systemd/sysv-convert +%dir %{_localstatedir}/lib/systemd/migrated +%dir %{_localstatedir}/lib/systemd/catalog +%ghost %{_localstatedir}/lib/systemd/catalog/database +%dir %{_localstatedir}/lib/systemd/coredump +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/* +%ghost %{_localstatedir}/lib/systemd/backlight +%ghost %{_localstatedir}/lib/systemd/random-seed %if ! 0%{?bootstrap} -%files bash-completion +%files bash-completion -f files.completion %defattr(-,root,root,-) %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions -%if %{without bash_completion} -%exclude %{_datadir}/bash-completion/completions/systemd-analyze -%endif %{_datadir}/bash-completion/completions/* %endif %files devel %defattr(-,root,root,-) +%{_libdir}/libsystemd.so %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so @@ -1268,8 +1239,9 @@ exit 0 %{_includedir}/systemd/sd-id128.h %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h -%{_includedir}/systemd/sd-shutdown.h +%{_includedir}/systemd/_sd-common.h %{_datadir}/pkgconfig/systemd.pc +%{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc @@ -1338,6 +1310,9 @@ exit 0 %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service %dir %{_prefix}/lib/systemd/system/sockets.target.wants %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket +%dir %{_prefix}/lib/systemd/network +%{_prefix}/lib/systemd/network/*.link +%{_prefix}/lib/systemd/network/*.network %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) @@ -1380,8 +1355,8 @@ exit 0 %files logger %defattr(-,root,root) -%dir /var/log/journal -/var/log/README +%dir %{_localstatedir}/log/journal +%{_localstatedir}/log/README /etc/init.d/systemd-journald %files -n nss-myhostname diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch index f688f407..fb97a2f1 100644 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -14,11 +14,11 @@ Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock } +#ifdef HAVE_SYSV_COMPAT + r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+ "TIMEZONE", &tz.zone, ++ "TIMEZONE", &c->zone, + NULL); + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); +#endif have_timezone: - if (isempty(tz.zone)) { + if (isempty(c->zone)) { From 74bf6f2e1dec6b607d9c5e8b3be6a26fba4af2418aab731b4bd8bd0ab244c94a Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 18 Mar 2014 15:21:15 +0000 Subject: [PATCH 173/221] Accepting request 225960 from Base:System - Add patch getty-generator-with-serial-3270-tty.patch to avoid harmless error messages on not existing getty@3270 files - Replace systemd-big-endian-reply-matching.patch with upstream 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch to solve broken systemd communication with and over dbus (bnc#866732) - Readd patch 1008-add-msft-compability-rules.patch for older code base as 13.1 - Modify pre_checkin.sh to throw an error if a patch will be applied which modifies one of Makefile.am, Makefile.in, or configiure.ac as this breaks bootstrapping - Add second version of make-209-working-on-older-dist.patch to be able to apply for bootstrapping version - Don't require non-existing binutils-gold - Avoid file conflict between udev and systemd (bnc#868230) - Modify patch module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch to ignore if /etc/sysconfig/kernel does not exist (bnc#865834) - Add patch systemd-big-endian-reply-matching.patch make sure that systemd can talk with dbus-daemon even on big endian systems (bnc#866732) ----------------------------------------------------------------- - Due to previous reason, resurrect systemd-dbus-system-bus-address.patch - Removed pkgconfig(dbus-1) BuildRequires - with 209 and newer, itis only needed for quering default DBus directories, which we nowpass to configure. OBS-URL: https://build.opensuse.org/request/show/225960 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=178 --- ...-lookup-string-for-BUSNAME_FAILURE_S.patch | 29 +++ ...k-for-a-64bit-value-when-we-only-hav.patch | 181 ++++++++++++++++++ 0002-make-209-working-on-older-dist.patch | 65 +++++++ ...emory-stream-before-using-the-buffer.patch | 45 +++++ ...-drop-service-from-the-result-string.patch | 25 +++ ...y-one-error-in-array-index-assertion.patch | 35 ++++ 0005-logind-fix-policykit-checks.patch | 43 +++++ ...device-as-SYSTEMD_READY-0-if-no-file.patch | 30 +++ ...ss-duplicate-and-misleading-messages.patch | 66 +++++++ ...ep-modes-are-to-be-separated-by-whit.patch | 36 ++++ ...enable-by_path-links-for-ata-devices.patch | 120 +++++------- 1016-support-powerfail-with-powerstatus.patch | 90 --------- getty-generator-with-serial-3270-tty.patch | 34 ++++ ...linker-find-libudev-for-libdevmapper.patch | 37 ++++ ...USE-etc-sysconfig-kernel-module-list.patch | 4 +- pre_checkin.sh | 12 ++ systemd-dbus-system-bus-address.patch | 24 +++ systemd-mini.changes | 85 ++++++++ systemd-mini.spec | 112 +++++++++-- systemd-powerd-initctl-support.patch | 125 ++++++++++++ systemd-powerfail | 28 --- systemd.changes | 85 ++++++++ systemd.spec | 112 +++++++++-- 23 files changed, 1212 insertions(+), 211 deletions(-) create mode 100644 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch create mode 100644 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch create mode 100644 0002-make-209-working-on-older-dist.patch create mode 100644 0002-manager-flush-memory-stream-before-using-the-buffer.patch create mode 100644 0003-busname-don-t-drop-service-from-the-result-string.patch create mode 100644 0004-fix-off-by-one-error-in-array-index-assertion.patch create mode 100644 0005-logind-fix-policykit-checks.patch create mode 100644 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch create mode 100644 0007-dbus-suppress-duplicate-and-misleading-messages.patch create mode 100644 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch delete mode 100644 1016-support-powerfail-with-powerstatus.patch create mode 100644 getty-generator-with-serial-3270-tty.patch create mode 100644 let-linker-find-libudev-for-libdevmapper.patch create mode 100644 systemd-dbus-system-bus-address.patch create mode 100644 systemd-powerd-initctl-support.patch delete mode 100644 systemd-powerfail diff --git a/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch b/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch new file mode 100644 index 00000000..b8989aef --- /dev/null +++ b/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch @@ -0,0 +1,29 @@ +From 36d239dbdaf94ba2d96bb60ac45ecfc58624b1eb Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Fri, 7 Mar 2014 11:41:18 +0100 +Subject: [PATCH] core/busname: add lookup string for + BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT + +When a busname unit enters BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT, the +serialization will not be able to look up the result as string via +busname_result_to_string(). This leads to an assertion trap during +daemon-reexec. +--- + src/core/busname.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/core/busname.c src/core/busname.c +index 4c34538..237011a 100644 +--- src/core/busname.c ++++ src/core/busname.c +@@ -548,6 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); + static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { + [BUSNAME_SUCCESS] = "success", + [BUSNAME_FAILURE_RESOURCES] = "resources", ++ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", + }; + + DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); +-- +1.7.9.2 + diff --git a/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch b/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch new file mode 100644 index 00000000..47dbcce3 --- /dev/null +++ b/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch @@ -0,0 +1,181 @@ +From 42c4ebcbd4cbd7b27667eb8081ee4dc46f9ece17 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 13 Mar 2014 20:33:22 +0100 +Subject: [PATCH] sd-bus: don't look for a 64bit value when we only have 32bit + value on reply cookie hash table access + +This broke hashtable lookups for the message cookies on s390x, which is +a 64bit BE machine where accessing 32bit values as 64bit and vice versa +will explode. + +Also, while we are at it, be a bit more careful when dealing with the +64bit cookies we expose and the 32bit serial numbers dbus uses in its +payload. + +Problem identified by Fridrich Strba. +--- + src/libsystemd/sd-bus/bus-dump.c | 4 ++-- + src/libsystemd/sd-bus/bus-kernel.c | 2 +- + src/libsystemd/sd-bus/bus-message.c | 15 ++++++++++----- + src/libsystemd/sd-bus/bus-message.h | 5 +++-- + src/libsystemd/sd-bus/sd-bus.c | 12 ++++++------ + 5 files changed, 22 insertions(+), 16 deletions(-) + +diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c +index 0e41549..ea81644 100644 +--- a/src/libsystemd/sd-bus/bus-dump.c ++++ b/src/libsystemd/sd-bus/bus-dump.c +@@ -69,10 +69,10 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { + if (BUS_MESSAGE_COOKIE(m) == 0xFFFFFFFFULL) + fprintf(f, " Cookie=-1"); + else +- fprintf(f, " Cookie=%lu", (unsigned long) BUS_MESSAGE_COOKIE(m)); ++ fprintf(f, " Cookie=%" PRIu64, BUS_MESSAGE_COOKIE(m)); + + if (m->reply_cookie != 0) +- fprintf(f, " ReplyCookie=%lu", (unsigned long) m->reply_cookie); ++ fprintf(f, " ReplyCookie=%" PRIu64, m->reply_cookie); + + fputs("\n", f); + +diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c +index 8a2ca02..80ef15b 100644 +--- a/src/libsystemd/sd-bus/bus-kernel.c ++++ b/src/libsystemd/sd-bus/bus-kernel.c +@@ -266,7 +266,7 @@ static int bus_message_setup_kmsg(sd_bus *b, sd_bus_message *m) { + well_known ? 0 : + m->destination ? unique : KDBUS_DST_ID_BROADCAST; + m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS; +- m->kdbus->cookie = m->header->serial; ++ m->kdbus->cookie = (uint64_t) m->header->serial; + m->kdbus->priority = m->priority; + + if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) +diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c +index fb894ef..97ab0e3 100644 +--- a/src/libsystemd/sd-bus/bus-message.c ++++ b/src/libsystemd/sd-bus/bus-message.c +@@ -617,7 +617,7 @@ static int message_new_reply( + t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; + t->reply_cookie = BUS_MESSAGE_COOKIE(call); + +- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); ++ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); + if (r < 0) + goto fail; + +@@ -752,7 +752,7 @@ int bus_message_new_synthetic_error( + t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; + t->reply_cookie = cookie; + +- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); ++ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); + if (r < 0) + goto fail; + +@@ -5075,21 +5075,26 @@ int bus_message_parse_fields(sd_bus_message *m) { + break; + } + +- case BUS_MESSAGE_HEADER_REPLY_SERIAL: ++ case BUS_MESSAGE_HEADER_REPLY_SERIAL: { ++ uint32_t serial; ++ + if (m->reply_cookie != 0) + return -EBADMSG; + + if (!streq(signature, "u")) + return -EBADMSG; + +- r = message_peek_field_uint32(m, &ri, item_size, &m->reply_cookie); ++ r = message_peek_field_uint32(m, &ri, item_size, &serial); + if (r < 0) + return r; + ++ m->reply_cookie = serial; ++ + if (m->reply_cookie == 0) + return -EBADMSG; + + break; ++ } + + case BUS_MESSAGE_HEADER_UNIX_FDS: + if (unix_fds != 0) +@@ -5489,7 +5494,7 @@ int bus_message_remarshal(sd_bus *bus, sd_bus_message **m) { + return -ENOMEM; + + n->reply_cookie = (*m)->reply_cookie; +- r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, n->reply_cookie); ++ r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) n->reply_cookie); + if (r < 0) + return r; + +diff --git a/src/libsystemd/sd-bus/bus-message.h b/src/libsystemd/sd-bus/bus-message.h +index 5fbe3e6..df79294 100644 +--- a/src/libsystemd/sd-bus/bus-message.h ++++ b/src/libsystemd/sd-bus/bus-message.h +@@ -84,7 +84,7 @@ struct sd_bus_message { + + sd_bus *bus; + +- uint32_t reply_cookie; ++ uint64_t reply_cookie; + + const char *path; + const char *interface; +@@ -162,7 +162,8 @@ static inline uint64_t BUS_MESSAGE_BSWAP64(sd_bus_message *m, uint64_t u) { + return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_64(u) : u; + } + +-static inline uint32_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { ++static inline uint64_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { ++ /* Note that we return the serial converted to a 64bit value here */ + return BUS_MESSAGE_BSWAP32(m, m->header->serial); + } + +diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c +index ca7c428..8e44e50 100644 +--- a/src/libsystemd/sd-bus/sd-bus.c ++++ b/src/libsystemd/sd-bus/sd-bus.c +@@ -1486,15 +1486,15 @@ static int bus_write_message(sd_bus *bus, sd_bus_message *m, bool hint_sync_call + return r; + + if (bus->is_kernel || *idx >= BUS_MESSAGE_SIZE(m)) +- log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", ++ log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", + bus_message_type_to_string(m->header->type), + strna(sd_bus_message_get_sender(m)), + strna(sd_bus_message_get_destination(m)), + strna(sd_bus_message_get_path(m)), + strna(sd_bus_message_get_interface(m)), + strna(sd_bus_message_get_member(m)), +- (unsigned long) BUS_MESSAGE_COOKIE(m), +- (unsigned long) m->reply_cookie, ++ BUS_MESSAGE_COOKIE(m), ++ m->reply_cookie, + strna(m->error.message)); + + return r; +@@ -2253,15 +2253,15 @@ static int process_message(sd_bus *bus, sd_bus_message *m) { + bus->current = m; + bus->iteration_counter++; + +- log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", ++ log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", + bus_message_type_to_string(m->header->type), + strna(sd_bus_message_get_sender(m)), + strna(sd_bus_message_get_destination(m)), + strna(sd_bus_message_get_path(m)), + strna(sd_bus_message_get_interface(m)), + strna(sd_bus_message_get_member(m)), +- (unsigned long) BUS_MESSAGE_COOKIE(m), +- (unsigned long) m->reply_cookie, ++ BUS_MESSAGE_COOKIE(m), ++ m->reply_cookie, + strna(m->error.message)); + + r = process_hello(bus, m); +-- +1.9.0 + diff --git a/0002-make-209-working-on-older-dist.patch b/0002-make-209-working-on-older-dist.patch new file mode 100644 index 00000000..502c6a44 --- /dev/null +++ b/0002-make-209-working-on-older-dist.patch @@ -0,0 +1,65 @@ +--- systemd-209/units/kmod-static-nodes.service.in ++++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 +@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu + [Service] + Type=oneshot + RemainAfterExit=yes ++ExecStartPre=@MKDIR_P@ /run/tmpfiles.d + ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf +--- systemd-209/configure ++++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 +@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then + pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then + pkg_cv_KMOD_LIBS="$KMOD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16042,18 +16042,18 @@ else + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + else +- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$KMOD_PKG_ERRORS" >&5 + +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + else + KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS + KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/0002-manager-flush-memory-stream-before-using-the-buffer.patch b/0002-manager-flush-memory-stream-before-using-the-buffer.patch new file mode 100644 index 00000000..39ca371c --- /dev/null +++ b/0002-manager-flush-memory-stream-before-using-the-buffer.patch @@ -0,0 +1,45 @@ +From b2cdc6664ef6b56e47d38649d69b9943d9f9f5d0 Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Fri, 7 Mar 2014 14:43:59 +0100 +Subject: [PATCH] manager: flush memory stream before using the buffer + +When the manager receives a SIGUSR2 signal, it opens a memory stream +with open_memstream(), uses the returned file handle for logging, and +dumps the logged content with log_dump(). + +However, the char* buffer is only safe to use after the file handle has +been flushed with fflush, as the man pages states: + + When the stream is closed (fclose(3)) or flushed (fflush(3)), the + locations pointed to by ptr and sizeloc are updated to contain, + respectively, a pointer to the buffer and the current size of the + buffer. + These values remain valid only as long as the caller performs no + further output on the stream. If further output is performed, then the + stream must again be flushed before trying to access these variables. + +Without that call, dump remains NULL and the daemon crashes in +log_dump(). +--- + src/core/manager.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/core/manager.c src/core/manager.c +index 27a1cc6..78f4f3d 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -1621,6 +1621,11 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t + break; + } + ++ if (fflush(f)) { ++ log_warning("Failed to flush status stream"); ++ break; ++ } ++ + log_dump(LOG_INFO, dump); + break; + } +-- +1.7.9.2 + diff --git a/0003-busname-don-t-drop-service-from-the-result-string.patch b/0003-busname-don-t-drop-service-from-the-result-string.patch new file mode 100644 index 00000000..37b7bd5c --- /dev/null +++ b/0003-busname-don-t-drop-service-from-the-result-string.patch @@ -0,0 +1,25 @@ +From 700ff4d97311902a440109a2c081731ab6ae8a20 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 7 Mar 2014 17:29:16 +0100 +Subject: [PATCH] busname: don't drop 'service' from the result string + +--- + src/core/busname.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/busname.c src/core/busname.c +index 237011a..bca2145 100644 +--- src/core/busname.c ++++ src/core/busname.c +@@ -548,7 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); + static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { + [BUSNAME_SUCCESS] = "success", + [BUSNAME_FAILURE_RESOURCES] = "resources", +- [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", ++ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "service-failed-permanent", + }; + + DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); +-- +1.7.9.2 + diff --git a/0004-fix-off-by-one-error-in-array-index-assertion.patch b/0004-fix-off-by-one-error-in-array-index-assertion.patch new file mode 100644 index 00000000..9b718e05 --- /dev/null +++ b/0004-fix-off-by-one-error-in-array-index-assertion.patch @@ -0,0 +1,35 @@ +From 26abdc73a212b90f7c4b71808a1028d2e87ab09f Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sat, 8 Mar 2014 17:32:53 -0500 +Subject: [PATCH] fix off by one error in array index assertion + +Since the index is already post-incremented when the array is appended +to, this assertion can be wrongly reached when the array is at capacity +(with the NULL terminator). The bug is reproducible on shutdown with +the following settings in /etc/systemd/system.conf: + + LogTarget=journal-or-kmsg + LogColor=yes + LogLocation=yes + +Reported by Thermi on IRC. +--- + src/core/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/main.c src/core/main.c +index 6ebfe64..f1b06d8 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1994,7 +1994,7 @@ finish: + if (log_get_show_location()) + command_line[pos++] = "--log-location"; + +- assert(pos + 1 < ELEMENTSOF(command_line)); ++ assert(pos < ELEMENTSOF(command_line)); + + if (arm_reboot_watchdog && arg_shutdown_watchdog > 0) { + char *e; +-- +1.7.9.2 + diff --git a/0005-logind-fix-policykit-checks.patch b/0005-logind-fix-policykit-checks.patch new file mode 100644 index 00000000..69cf61a6 --- /dev/null +++ b/0005-logind-fix-policykit-checks.patch @@ -0,0 +1,43 @@ +From 055d406624cb9e01963558767420b71e5f75d2d3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 10 Mar 2014 08:25:15 -0400 +Subject: [PATCH] logind: fix policykit checks + +--- + src/login/logind-dbus.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git src/login/logind-dbus.c src/login/logind-dbus.c +index c9c58f3..235b131 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -1480,6 +1480,8 @@ static int method_do_shutdown_or_sleep( + action_multiple_sessions, interactive, error, method, m); + if (r < 0) + return r; ++ if (r == 0) ++ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + + if (blocked) { +@@ -1487,6 +1489,8 @@ static int method_do_shutdown_or_sleep( + action_ignore_inhibit, interactive, error, method, m); + if (r < 0) + return r; ++ if (r == 0) ++ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + + if (!multiple_sessions && !blocked) { +@@ -1494,6 +1498,8 @@ static int method_do_shutdown_or_sleep( + action, interactive, error, method, m); + if (r < 0) + return r; ++ if (r == 0) ++ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + + r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error); +-- +1.7.9.2 + diff --git a/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch b/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch new file mode 100644 index 00000000..ce18d6c5 --- /dev/null +++ b/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch @@ -0,0 +1,30 @@ +From ebc54302d7fc70927d5dc119e178ff03f6a911ed Mon Sep 17 00:00:00 2001 +From: Peter Rajnoha +Date: Mon, 10 Mar 2014 22:58:14 +0100 +Subject: [PATCH] rules: mark loop device as SYSTEMD_READY=0 if no file is + attached + +Check existence of loop/backing_file in sysfs and mark loop devices with +SYSTEMD_READY if missing. Such loop files is uninitialized and it's not +ready for use yet (there's no file attached). +--- + rules/99-systemd.rules.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in +index 021359a..04a59c4 100644 +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in +@@ -22,6 +22,9 @@ SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_T + SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" + SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" + ++# Ignore loop devices that don't have any file attached ++SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" ++ + # Ignore nbd devices in the "add" event, with "change" the nbd is ready + ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" + +-- +1.7.9.2 + diff --git a/0007-dbus-suppress-duplicate-and-misleading-messages.patch b/0007-dbus-suppress-duplicate-and-misleading-messages.patch new file mode 100644 index 00000000..c4051609 --- /dev/null +++ b/0007-dbus-suppress-duplicate-and-misleading-messages.patch @@ -0,0 +1,66 @@ +From fe7f06f142cf42928e419d8578afd75bf1439672 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 11 Mar 2014 04:10:19 +0100 +Subject: [PATCH] dbus: suppress duplicate and misleading messages + +When we try to send a signal on a connection we didn't hae the time to +process the Disconnected message yet, don't generate multiple warning +messages, but only a single debug message. + +https://bugs.freedesktop.org/show_bug.cgi?id=75874 +--- + src/core/dbus-manager.c | 7 +++++-- + src/core/dbus-unit.c | 12 ++---------- + 2 files changed, 7 insertions(+), 12 deletions(-) + +diff --git src/core/dbus-manager.c src/core/dbus-manager.c +index 34ef1f5..30f28b6 100644 +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c +@@ -1357,8 +1357,11 @@ static int reply_unit_file_changes_and_f + unsigned i; + int r; + +- if (n_changes > 0) +- bus_manager_foreach_client(m, send_unit_files_changed, NULL); ++ if (n_changes > 0) { ++ r = bus_manager_foreach_client(m, send_unit_files_changed, NULL); ++ if (r < 0) ++ log_debug("Failed to send UnitFilesChanged signal: %s", strerror(-r)); ++ } + + r = sd_bus_message_new_method_return(message, &reply); + if (r < 0) +diff --git src/core/dbus-unit.c src/core/dbus-unit.c +index 515ac8b..07e7f20 100644 +--- src/core/dbus-unit.c ++++ src/core/dbus-unit.c +@@ -638,21 +638,13 @@ static int send_changed_signal(sd_bus *bus, void *userdata) { + bus, p, + UNIT_VTABLE(u)->bus_interface, + NULL); +- if (r < 0) { +- log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r)); ++ if (r < 0) + return r; +- } + +- r = sd_bus_emit_properties_changed_strv( ++ return sd_bus_emit_properties_changed_strv( + bus, p, + "org.freedesktop.systemd1.Unit", + NULL); +- if (r < 0) { +- log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r)); +- return r; +- } +- +- return 0; + } + + void bus_unit_send_change_signal(Unit *u) { +-- +1.7.9.2 + +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c 2014-03-11 11:05:44.350235568 +0000 diff --git a/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch b/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch new file mode 100644 index 00000000..b43a43c1 --- /dev/null +++ b/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch @@ -0,0 +1,36 @@ +From 252094eb05c58270a0bc35b14ad30a126ddbb3bb Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 11 Mar 2014 05:23:39 +0100 +Subject: [PATCH] man: multiple sleep modes are to be separated by whitespace, + not commas + +As pointed out by Jason A. Donenfeld. +--- + man/systemd-sleep.conf.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-sleep.conf.xml man/systemd-sleep.conf.xml +index a917f4d..d0ea6d8 100644 +--- man/systemd-sleep.conf.xml ++++ man/systemd-sleep.conf.xml +@@ -128,7 +128,7 @@ along with systemd; If not, see . + systemd-hibernate.service8, or + systemd-hybrid-sleep.service8. + More than one value can be specified by separating +- multiple values with commas. They will be tried ++ multiple values with whitespace. They will be tried + in turn, until one is written without error. If + neither succeeds, the operation will be aborted. + +@@ -146,7 +146,7 @@ along with systemd; If not, see . + systemd-hibernate.service8, or + systemd-hybrid-sleep.service8. + More than one value can be specified by separating +- multiple values with commas. They will be tried ++ multiple values with whitespace. They will be tried + in turn, until one is written without error. If + neither succeeds, the operation will be aborted. + +-- +1.7.9.2 + diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch index 8d9594ad..58bb7b25 100644 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -1,28 +1,44 @@ +From 5cf46aa4339670afac386b1b0e630b739f3621c7 Mon Sep 17 00:00:00 2001 From: Robert Milasan Date: Thu, 12 Jul 2012 15:56:34 +0000 -Subject: re-enable by_path links for ata devices +Subject: [PATCH] Persistent by_path links for ata devices -Fix by-path links for ATA transport (bnc#770910) +With newer kernel we have the 'port_no' attribute, +which allows us to construct a valid ata by-path link. + +With this patch ATA links of the form + +ata-.[01] + +(for master/slave devices) or + +ata-..0 + +(for devices behind port multipliers) +are generated. + +References: bnc#770910,FATE#317063 + +Signed-off-by: Robert Milasan +Signed-off-by: Hannes Reinecke --- - src/udev/udev-builtin-path_id.c | 92 +++++++++++++++++++++++++++++++++++------ - 1 file changed, 80 insertions(+), 12 deletions(-) + src/udev/udev-builtin-path_id.c | 53 +++++++++++++++++++++++++++++++---------- + 1 file changed, 41 insertions(+), 12 deletions(-) ---- systemd-206.orig/src/udev/udev-builtin-path_id.c -+++ systemd-206/src/udev/udev-builtin-path_id.c -@@ -338,6 +338,85 @@ static struct udev_device *handle_scsi_h +diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c +index 0599980..fbd3fda 100644 +--- a/src/udev/udev-builtin-path_id.c ++++ b/src/udev/udev-builtin-path_id.c +@@ -339,6 +339,46 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * return parent; } +static struct udev_device *handle_ata(struct udev_device *parent, char **path) +{ -+ struct udev_device *hostdev; -+ int host, bus, target, lun; -+ const char *name; -+ char *base; -+ char *pos; -+ DIR *dir; -+ struct dirent *dent; -+ int basenum, len; ++ struct udev *udev = udev_device_get_udev(parent); ++ struct udev_device *hostdev, *portdev; ++ int host, bus, target, lun, port_no; ++ const char *name, *atahost, *port; + + hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); + if (hostdev == NULL) @@ -32,70 +48,35 @@ Fix by-path links for ATA transport (bnc#770910) + if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) + return NULL; + -+ /* rebase ata offset to get the local relative number */ -+ basenum = -1; -+ base = strdup(udev_device_get_syspath(hostdev)); -+ if (base == NULL) ++ /* The ata port is the parent of the SCSI host */ ++ hostdev = udev_device_get_parent(hostdev); ++ atahost = udev_device_get_sysname(hostdev); ++ if (strncmp(atahost, "ata", 3)) + return NULL; -+ pos = strrchr(base, '/'); -+ if (pos == NULL) { -+ parent = NULL; -+ goto out; -+ } -+ pos[0] = '\0'; -+ len = strlen(base) - 5; -+ if (len <= 0) { -+ parent = NULL; -+ goto out; -+ } -+ base[len] = '\0'; -+ dir = opendir(base); -+ if (dir == NULL) { -+ parent = NULL; -+ goto out; -+ } -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char *rest; -+ int i; + -+ if (dent->d_name[0] == '.') -+ continue; -+ if (dent->d_type != DT_DIR && dent->d_type != DT_LNK) -+ continue; -+ if (strncmp(dent->d_name, "ata", 3) != 0) -+ continue; -+ i = strtoul(&dent->d_name[3], &rest, 10); -+ -+ /* ata devices start with 1, so decrease by 1 if i is bigger then 0 */ -+ if (i > 0) -+ i--; -+ if (rest[0] != '\0') -+ continue; -+ /* -+ * find the smallest number; the host really needs to export its -+ * own instance number per parent device; relying on the global host -+ * enumeration and plainly rebasing the numbers sounds unreliable -+ */ -+ if (basenum == -1 || i < basenum) -+ basenum = i; -+ } -+ closedir(dir); -+ if (basenum == -1) { -+ parent = NULL; ++ /* ATA port number is found in 'port_no' attribute */ ++ portdev = udev_device_new_from_subsystem_sysname(udev, "ata_port", ++ atahost); ++ port = udev_device_get_sysattr_value(portdev, "port_no"); ++ if (!port || sscanf(port, "%d", &port_no) != 1) { ++ hostdev = NULL; + goto out; + } -+ host -= basenum; -+ -+ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun); ++ if (bus != 0) ++ /* Devices behind port multiplier have a bus != 0*/ ++ path_prepend(path, "ata-%u.%u.0", port_no, bus); ++ else ++ /* Master/slave are distinguished by target id */ ++ path_prepend(path, "ata-%u.%u", port_no, target); +out: -+ free(base); ++ udev_device_unref(portdev); + return hostdev; +} + static struct udev_device *handle_scsi(struct udev_device *parent, char **path) { const char *devtype; -@@ -374,19 +453,8 @@ static struct udev_device *handle_scsi(s +@@ -375,19 +415,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) goto out; } @@ -116,3 +97,6 @@ Fix by-path links for ATA transport (bnc#770910) goto out; } +-- +1.8.1.4 + diff --git a/1016-support-powerfail-with-powerstatus.patch b/1016-support-powerfail-with-powerstatus.patch deleted file mode 100644 index c59f6828..00000000 --- a/1016-support-powerfail-with-powerstatus.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- systemd-208/units/sigpwr.target -+++ systemd-208/units/sigpwr.target 2014-01-14 15:53:32.878735762 +0000 -@@ -8,3 +8,5 @@ - [Unit] - Description=Power Failure - Documentation=man:systemd.special(7) -+BindsTo=powerfail.service -+DefaultDependencies=no -+RefuseManualStart=yes ---- systemd-208/units/powerfail.service -+++ systemd-208/units/powerfail.service 2014-01-14 16:11:41.802235712 +0000 -@@ -0,0 +1,21 @@ -+# This file is part of systemd. -+# -+# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany. -+# Author: Werner Fink -+# Please send feedback to http://www.suse.de/feedback -+# -+# Description: -+# -+# Used to start the systemd-powerfail.service -+# -+ -+[Unit] -+Description=powerfail handling -+BindsTo=sigpwr.target -+DefaultDependencies=no -+RefuseManualStart=yes -+ -+[Service] -+Type=oneshot -+ExecStart=/usr/lib/systemd/systemd-powerfail -+RemainAfterExit=false ---- systemd-208/man/systemd-powerfail.service.8 -+++ systemd-208/man/systemd-powerfail.service.8 2014-01-14 18:22:21.286735810 +0000 -@@ -0,0 +1,54 @@ -+'\" t -+.TH "SYSTEMD\-POWERFAIL\&.SERVICE" "8" "" "systemd 208" "systemd-powerfail.service" -+.\" ----------------------------------------------------------------- -+.\" * Define some portability stuff -+.\" ----------------------------------------------------------------- -+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+.\" http://bugs.debian.org/507673 -+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+.ie \n(.g .ds Aq \(aq -+.el .ds Aq ' -+.\" ----------------------------------------------------------------- -+.\" * set default formatting -+.\" ----------------------------------------------------------------- -+.\" disable hyphenation -+.nh -+.\" disable justification (adjust text to left margin only) -+.ad l -+.\" ----------------------------------------------------------------- -+.\" * MAIN CONTENT STARTS HERE * -+.\" ----------------------------------------------------------------- -+.SH "NAME" -+systemd-powerfail.service, systemd-powerfail \- Power Fail signal handling -+.SH "SYNOPSIS" -+.PP -+systemd\-powerfail\&.service -+.PP -+/usr/lib/systemd/systemd\-powerfail -+.SH "DESCRIPTION" -+.PP -+systemd\-powerfail -+is a system service that is used to evaulate the content of -+\fI/var/run/powerstatus\fR. Based on the content of this -+file: -+.IP F(AIL) -+Power is failing, UPS is providing the power. The -+systemd\-powerfail -+is now doing a timed shutdown. -+.IP O(K) -+The power has been restored, and pending shutdown -+will be cancled. -+.IP L(OW) -+The power is failing and the UPS has a low battery. -+The -+systemd\-powerfail -+is doing an immediate shutdown. -+.PP -+If \fI/var/run/powerstatus\fR doesn't exist or contains anything else then the letters -+F, O or L, systemd\-powerfail will behave as if it has read the letter F. -+.PP -+.SH "SEE ALSO" -+.PP -+\fBshutdown\fR(8), -+\fBpowerd\fR(8) diff --git a/getty-generator-with-serial-3270-tty.patch b/getty-generator-with-serial-3270-tty.patch new file mode 100644 index 00000000..41a2e278 --- /dev/null +++ b/getty-generator-with-serial-3270-tty.patch @@ -0,0 +1,34 @@ +The path for the serial 3270 console looks like (dev/)3270/tty1 which +causes trouble in the systemd-getty-generator as the add_symlink() +tries to make directories for each slash even for the slash after +the @ symbol in the final link name. + +--- + getty-generator.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- systemd-210/src/getty-generator/getty-generator.c ++++ systemd-210/src/getty-generator/getty-generator.c 2014-03-14 14:13:09.296463091 +0000 +@@ -67,6 +67,7 @@ static int add_symlink(const char *fserv + + static int add_serial_getty(const char *tty) { + _cleanup_free_ char *n = NULL; ++ char *at; + + assert(tty); + +@@ -76,6 +77,14 @@ static int add_serial_getty(const char * + if (!n) + return log_oom(); + ++ if ((at = strchr(n, '@'))) { ++ char *sl; ++ while (*(++at) && (sl = strchr(at, '/'))) { ++ *sl = '-'; ++ at = sl; ++ } ++ } ++ + return add_symlink("serial-getty@.service", n); + } + diff --git a/let-linker-find-libudev-for-libdevmapper.patch b/let-linker-find-libudev-for-libdevmapper.patch new file mode 100644 index 00000000..e2bbdda1 --- /dev/null +++ b/let-linker-find-libudev-for-libdevmapper.patch @@ -0,0 +1,37 @@ +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-03-13 08:54:36.010736086 +0000 +@@ -3691,6 +3691,10 @@ systemd_cryptsetup_CFLAGS = \ + $(AM_CFLAGS) \ + $(LIBCRYPTSETUP_CFLAGS) + ++systemd_cryptsetup_LDFLAGS = \ ++ $(AM_LDFLAGS) \ ++ -Wl,-rpath-link=$(top_srcdir)/.libs ++ + systemd_cryptsetup_LDADD = \ + libsystemd-label.la \ + libudev-internal.la \ +--- systemd-210/Makefile.in ++++ systemd-210/Makefile.in 2014-03-13 09:19:48.950238725 +0000 +@@ -8964,7 +8964,7 @@ src/cryptsetup/systemd_cryptsetup-crypts + + systemd-cryptsetup$(EXEEXT): $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_DEPENDENCIES) $(EXTRA_systemd_cryptsetup_DEPENDENCIES) + @rm -f systemd-cryptsetup$(EXEEXT) +- $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDADD) $(LIBS) ++ $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDFLAGS) $(systemd_cryptsetup_LDADD) $(LIBS) + src/cryptsetup/cryptsetup-generator.$(OBJEXT): \ + src/cryptsetup/$(am__dirstamp) \ + src/cryptsetup/$(DEPDIR)/$(am__dirstamp) +--- systemd-210/configure.ac ++++ systemd-210/configure.ac 2014-03-13 13:46:24.394235954 +0000 +@@ -156,10 +156,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CF + -fdata-sections \ + -fstack-protector \ + --param=ssp-buffer-size=4]) +-AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], +- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ +- -flto])], +- [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) + AC_SUBST([OUR_CFLAGS], "$with_cflags $address_sanitizer_cflags") + + AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch index 4037a743..4f557c54 100644 --- a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +++ b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch @@ -19,7 +19,7 @@ Subject: module-load: handle SUSE /etc/sysconfig/kernel module list r = parse_argv(argc, argv); if (r <= 0) -@@ -318,7 +321,29 @@ int main(int argc, char *argv[]) { +@@ -318,7 +321,31 @@ int main(int argc, char *argv[]) { r = k; } } @@ -31,6 +31,8 @@ Subject: module-load: handle SUSE /etc/sysconfig/kernel module list + NULL)) < 0) { + if (r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); ++ else ++ r = EXIT_SUCCESS; + } else + r = EXIT_SUCCESS; + if (modules_on_boot) { diff --git a/pre_checkin.sh b/pre_checkin.sh index 18706301..69373260 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -4,6 +4,18 @@ # create a -mini spec for systemd for bootstrapping ORIG_SPEC=systemd +for patch in $(grep -lE 'Makefile.(am|in)|configure\.ac' *.patch) +do + sed -rn 's/^Patch([0-9]+):\s+'${patch}'/patch\1/p' $ORIG_SPEC.spec +done | while read patch +do + grep -1E '^%'${patch}'[^0-9]' $ORIG_SPEC.spec | grep -q bootstrap + if ((${PIPESTATUS[1]} != 0)) + then + echo Patch ${patch} does trigger 'auto(re)configure' 1>&2 + exit 1 + fi +done EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n" sed "s/^%define bootstrap.*$/${EDIT_WARNING}%define bootstrap 1/; s/^%define udevpkgname.*$/${EDIT_WARNING}%define udevpkgname udev-mini/; diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch new file mode 100644 index 00000000..cede24c9 --- /dev/null +++ b/systemd-dbus-system-bus-address.patch @@ -0,0 +1,24 @@ +--- systemd-210/src/shared/def.h ++++ systemd-210/src/shared/def.h 2014-03-12 13:11:06.502235254 +0000 +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS +--- systemd-210/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-210/src/libsystemd/sd-bus/sd-bus.c 2014-03-12 14:31:09.966736492 +0000 +@@ -794,8 +794,8 @@ static int parse_container_unix_address( + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); ++ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); + + return 0; + } diff --git a/systemd-mini.changes b/systemd-mini.changes index 4ef46a16..80282770 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,88 @@ +------------------------------------------------------------------- +Fri Mar 14 14:24:56 UTC 2014 - werner@suse.de + +- Add patch getty-generator-with-serial-3270-tty.patch to avoid + harmless error messages on not existing getty@3270 files + +------------------------------------------------------------------- +Fri Mar 14 11:07:29 UTC 2014 - werner@suse.de + +- Replace systemd-big-endian-reply-matching.patch with upstream + 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch + to solve broken systemd communication with and over dbus (bnc#866732) + +------------------------------------------------------------------- +Fri Mar 14 08:30:57 UTC 2014 - werner@suse.de + +- Readd patch 1008-add-msft-compability-rules.patch for + older code base as 13.1 +- Modify pre_checkin.sh to throw an error if a patch will be + applied which modifies one of Makefile.am, Makefile.in, or + configiure.ac as this breaks bootstrapping +- Add second version of make-209-working-on-older-dist.patch + to be able to apply for bootstrapping version + +------------------------------------------------------------------- +Thu Mar 13 17:35:11 UTC 2014 - schwab@linux-m68k.org + +- Don't require non-existing binutils-gold + +------------------------------------------------------------------- +Thu Mar 13 15:43:19 UTC 2014 - werner@suse.de + +- Avoid file conflict between udev and systemd (bnc#868230) + +------------------------------------------------------------------- +Wed Mar 12 16:52:09 UTC 2014 - werner@suse.de + +- Modify patch + module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + to ignore if /etc/sysconfig/kernel does not exist (bnc#865834) + +------------------------------------------------------------------- +Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de + +- Add patch systemd-big-endian-reply-matching.patch + make sure that systemd can talk with dbus-daemon even on big + endian systems (bnc#866732) + +----------------------------------------------------------------- +Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com + +- Due to previous reason, resurrect systemd-dbus-system-bus-address.patch +- Removed pkgconfig(dbus-1) BuildRequires - with 209 and newer, itis only + needed for quering default DBus directories, which we nowpass to configure. + This also unbreaks libdbus <-> systemd-miniBuild Cycle + +----------------------------------------------------------------- +Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch + 0002-manager-flush-memory-stream-before-using-the-buffer.patch + 0003-busname-don-t-drop-service-from-the-result-string.patch + 0004-fix-off-by-one-error-in-array-index-assertion.patch + 0005-logind-fix-policykit-checks.patch + 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch + 0007-dbus-suppress-duplicate-and-misleading-messages.patch + 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch + +------------------------------------------------------------------- +Tue Mar 11 07:47:55 UTC 2014 - werner@suse.de + +- Make compeletion file parser work (bnc#867664) + +------------------------------------------------------------------- +Fri Mar 7 14:50:39 CET 2014 - hare@suse.de + +- Integrate powerd handling in initctl service + + Remove 1016-support-powerfail-with-powerstatus.patch + + Remove systemd-powerfail + + Add systemd-powerd-initctl-support.patch +- Remove 61-msft.rules; superseded by sg3_utils (bnc#866933) +- Persistent by-path links for ATA devices (FATE#317063) + + Update 1001-re-enable-by_path-links-for-ata-devices.patch + ------------------------------------------------------------------- Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 2d9fb3c2..c554b30a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -40,10 +40,12 @@ Provides: %{real} = %{version}-%{release} BuildRequires: audit-devel %if %{with compat_libs} +# See gold_archs in binutils.spec +%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc BuildRequires: binutils-gold %endif +%endif %if ! 0%{?bootstrap} -BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets %endif BuildRequires: fdupes @@ -72,7 +74,6 @@ BuildRequires: systemd-rpm-macros BuildRequires: tcpd-devel BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 -BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel %if %{with python} @@ -144,12 +145,26 @@ Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source12: systemd-powerfail Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink +############################################################################## +# +# WARNING: For the case of for bootstrapping patch should not affect +# the files +# +# Makefile.am, Makefile.in, and configure.ac +# +# as this triggers an (re)autoconfigure. Please check patches with the command +# +# grep -lE 'Makefile.(am|in)|configure\.ac' *.patch +# +# to surround them with %if ! 0%{?bootstrap} ... %endif +# +############################################################################## +# # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch # PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called @@ -169,6 +184,8 @@ Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch Patch18: fix-owner-of-var-log-btmp.patch +# PATCH-FIX-SUSE Avoid error message about not existing getty@3270 file +Patch19: getty-generator-with-serial-3270-tty.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -204,6 +221,8 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian +Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -218,6 +237,7 @@ Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch Patch114: 0001-systemd-empty-sigmask-on-reexec.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch +Patch118: 0002-make-209-working-on-older-dist.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com @@ -274,6 +294,20 @@ Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch Patch145: 0012-man-add-missing-comma.patch # PATCH-FIX-USTREAM added at 2014/03/07 Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch151: 0005-logind-fix-policykit-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -282,8 +316,6 @@ Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch -Patch1016: 1016-support-powerfail-with-powerstatus.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch @@ -292,11 +324,19 @@ Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1020: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch +# PATCH-FIX-SUSE systemd-powerd-initctl-support.patch +Patch1023: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch +# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run +Patch2000: systemd-dbus-system-bus-address.patch +# PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper +Patch2001: let-linker-find-libudev-for-libdevmapper.patch # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch1035: 0007-dbus-suppress-duplicate-and-misleading-messages.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -309,7 +349,7 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 Patch1008: 1008-add-msft-compability-rules.patch %description @@ -331,6 +371,7 @@ Requires: bash %if %{with bash_completion} Requires: bash-completion %endif +BuildArch: noarch %description bash-completion Some systemd commands offer bash completion, but it's an optional dependency. @@ -519,14 +560,18 @@ cp %{SOURCE7} m4/ # systemd patches %patch0 -p1 +%if ! 0%{?bootstrap} %patch1 -p1 +%endif %patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} %patch4 -p1 %endif %patch5 -p1 +%if ! 0%{?bootstrap} %patch6 -p1 +%endif %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -536,8 +581,11 @@ cp %{SOURCE7} m4/ %patch14 -p1 %patch15 -p1 %patch16 -p1 +%if ! 0%{?bootstrap} %patch17 -p1 +%endif %patch18 -p1 +%patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 @@ -556,14 +604,21 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 +%patch47 -p1 %patch84 -p1 +%if ! 0%{?bootstrap} %patch86 -p1 +%endif %patch90 -p1 %patch91 -p1 %patch93 -p1 %patch114 -p0 %if 0%{?suse_version} <= 1310 +%if ! 0%{?bootstrap} %patch117 -p1 +%else +%patch118 -p1 +%endif %endif %patch119 -p1 %patch120 -p1 @@ -580,7 +635,9 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 +%if ! 0%{?bootstrap} %patch134 -p0 +%endif %patch135 -p0 %patch136 -p0 %patch137 -p0 @@ -593,18 +650,34 @@ cp %{SOURCE7} m4/ %patch144 -p0 %patch145 -p0 %patch146 -p0 +%patch147 -p0 +%patch148 -p0 +%patch149 -p0 +%patch150 -p0 +%patch151 -p0 +%patch152 -p0 +%patch153 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 %patch1014 -p1 -%patch1016 -p1 %patch1018 -p1 %patch1019 -p1 +%if ! 0%{?bootstrap} %patch1020 -p1 +%endif %patch1022 -p1 +%patch1023 -p1 +%if ! 0%{?bootstrap} %patch1999 -p1 +%endif +%patch2000 -p1 +%if ! 0%{?bootstrap} +%patch2001 -p1 +%endif # udev patches %patch1034 -p0 +%patch1035 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -613,14 +686,20 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 +%endif +%if 0%{?suse_version} <= 1310 +%if ! 0%{?bootstrap} %patch1008 -p1 %endif +%endif # ensure generate files are removed rm -f units/emergency.service %build +%if ! 0%{?bootstrap} autoreconf -fiv +%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -628,6 +707,10 @@ export V=1 %configure \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ + --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ + --with-dbussessionservicedir=%{_datadir}/dbus-1/services \ + --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ + --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ @@ -658,6 +741,7 @@ export V=1 %if %{without networkd} --disable-networkd \ %endif + --disable-kdbus \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -803,11 +887,7 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ -# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd -install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ -install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} -install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ %if %{without python} for man in systemd.directives.7 systemd.index.7 do @@ -826,7 +906,7 @@ for f in %{buildroot}%{_datadir}/bash-completion/completions/* do test -e "$f" || break grep -q _init_completion "$f" || continue - echo "%exclude %{_datadir}/bash-completion/completions/${f##*}" + echo "%exclude %{_datadir}/bash-completion/completions/${f##*/}" done > files.completion %else > files.completion @@ -1077,6 +1157,7 @@ exit 0 %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service +%exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service @@ -1124,7 +1205,9 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +%if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%endif %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so /etc/pam.d/systemd-user @@ -1147,7 +1230,12 @@ exit 0 %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd +%dir %{_sysconfdir}/dbus-1 +%dir %{_sysconfdir}/dbus-1/system.d %{_sysconfdir}/xdg/systemd/user +%dir %{_datadir}/dbus-1 +%dir %{_datadir}/dbus-1/services +%dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf diff --git a/systemd-powerd-initctl-support.patch b/systemd-powerd-initctl-support.patch new file mode 100644 index 00000000..bc0e3ca4 --- /dev/null +++ b/systemd-powerd-initctl-support.patch @@ -0,0 +1,125 @@ +From 7b8b1ca177a532a6673e5795af867b3631622391 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Fri, 7 Mar 2014 14:04:58 +0100 +Subject: [PATCH] systemd: powerd initctl support + +Old versions of powerd will be using the initctl fifo to signal +state changes. To maintain backward compability systemd should +be interpreting these messages, too. + +Signed-off-by: Hannes Reinecke +--- + src/initctl/initctl.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 70 insertions(+), 1 deletion(-) + +diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c +index 468df35..d4794a6 100644 +--- a/src/initctl/initctl.c ++++ b/src/initctl/initctl.c +@@ -32,8 +32,11 @@ + #include + #include + #include ++#include ++#include + + #include "sd-daemon.h" ++#include "sd-shutdown.h" + #include "sd-bus.h" + + #include "util.h" +@@ -44,6 +47,7 @@ + #include "bus-util.h" + #include "bus-error.h" + #include "def.h" ++#include "socket-util.h" + + #define SERVER_FD_MAX 16 + #define TIMEOUT_MSEC ((int) (DEFAULT_EXIT_USEC/USEC_PER_MSEC)) +@@ -141,7 +145,53 @@ static void change_runlevel(Server *s, int runlevel) { + } + } + ++static int send_shutdownd(unsigned delay, char mode, const char *message) { ++ usec_t t = now(CLOCK_REALTIME) + delay * USEC_PER_MINUTE; ++ struct sd_shutdown_command c = { ++ .usec = t, ++ .mode = mode, ++ .dry_run = false, ++ .warn_wall = true, ++ }; ++ ++ union sockaddr_union sockaddr = { ++ .un.sun_family = AF_UNIX, ++ .un.sun_path = "/run/systemd/shutdownd", ++ }; ++ ++ struct iovec iovec[2] = {{ ++ .iov_base = (char*) &c, ++ .iov_len = offsetof(struct sd_shutdown_command, wall_message), ++ }}; ++ ++ struct msghdr msghdr = { ++ .msg_name = &sockaddr, ++ .msg_namelen = offsetof(struct sockaddr_un, sun_path) ++ + sizeof("/run/systemd/shutdownd") - 1, ++ .msg_iov = iovec, ++ .msg_iovlen = 1, ++ }; ++ ++ _cleanup_close_ int fd; ++ ++ fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0); ++ if (fd < 0) ++ return -errno; ++ ++ if (!isempty(message)) { ++ iovec[1].iov_base = (char*) message; ++ iovec[1].iov_len = strlen(message); ++ msghdr.msg_iovlen++; ++ } ++ ++ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + static void request_process(Server *s, const struct init_request *req) { ++ int r; + assert(s); + assert(req); + +@@ -184,9 +234,28 @@ static void request_process(Server *s, const struct init_request *req) { + return; + + case INIT_CMD_POWERFAIL: ++ r = send_shutdownd(2, SD_SHUTDOWN_POWEROFF, ++ "THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!"); ++ if (r < 0) { ++ log_warning("Failed to talk to shutdownd, shutdown cancelled: %s", strerror(-r)); ++ } ++ return; + case INIT_CMD_POWERFAILNOW: ++ r = send_shutdownd(0, SD_SHUTDOWN_POWEROFF, ++ "THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!"); ++ if (r < 0) { ++ log_warning("Failed to talk to shutdownd, proceeding with immediate shutdown: %s", strerror(-r)); ++ reboot(RB_ENABLE_CAD); ++ reboot(RB_POWER_OFF); ++ } ++ return; ++ + case INIT_CMD_POWEROK: +- log_warning("Received UPS/power initctl request. This is not implemented in systemd. Upgrade your UPS daemon!"); ++ r = send_shutdownd(0, SD_SHUTDOWN_NONE, ++ "THE POWER IS BACK"); ++ if (r < 0) { ++ log_warning("Failed to talk to shutdownd, proceeding with shutdown: %s", strerror(-r)); ++ } + return; + + case INIT_CMD_CHANGECONS: +-- +1.8.1.4 + diff --git a/systemd-powerfail b/systemd-powerfail deleted file mode 100644 index 797fb7d2..00000000 --- a/systemd-powerfail +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# -# /usr/lib/systemd/systemd-powerfail -# -# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany. -# Author: Werner Fink -# Please send feedback to http://www.suse.de/feedback -# -# Description: -# -# Used to evaluate the status of /var/run/powerstatus -# - -trap "echo" SIGINT SIGSEGV SIGTERM - - POWERFAIL='THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!' -POWERFAILNOW='THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!' - POWERISBACK='THE POWER IS BACK' - -typeset pwrstat=0 -test -s /var/run/powerstatus && read pwrstat < /var/run/powerstatus -rm -f /var/run/powerstatus - -case "$pwrstat" in -O*) exec /sbin/shutdown -c +0 "$POWERISBACK" ;; -L*) exec /sbin/shutdown -P +0 "$POWERFAILNOW" ;; -*) exec /sbin/shutdown -P +2 "$POWERFAIL" ;; -esac diff --git a/systemd.changes b/systemd.changes index 4ef46a16..80282770 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,88 @@ +------------------------------------------------------------------- +Fri Mar 14 14:24:56 UTC 2014 - werner@suse.de + +- Add patch getty-generator-with-serial-3270-tty.patch to avoid + harmless error messages on not existing getty@3270 files + +------------------------------------------------------------------- +Fri Mar 14 11:07:29 UTC 2014 - werner@suse.de + +- Replace systemd-big-endian-reply-matching.patch with upstream + 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch + to solve broken systemd communication with and over dbus (bnc#866732) + +------------------------------------------------------------------- +Fri Mar 14 08:30:57 UTC 2014 - werner@suse.de + +- Readd patch 1008-add-msft-compability-rules.patch for + older code base as 13.1 +- Modify pre_checkin.sh to throw an error if a patch will be + applied which modifies one of Makefile.am, Makefile.in, or + configiure.ac as this breaks bootstrapping +- Add second version of make-209-working-on-older-dist.patch + to be able to apply for bootstrapping version + +------------------------------------------------------------------- +Thu Mar 13 17:35:11 UTC 2014 - schwab@linux-m68k.org + +- Don't require non-existing binutils-gold + +------------------------------------------------------------------- +Thu Mar 13 15:43:19 UTC 2014 - werner@suse.de + +- Avoid file conflict between udev and systemd (bnc#868230) + +------------------------------------------------------------------- +Wed Mar 12 16:52:09 UTC 2014 - werner@suse.de + +- Modify patch + module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + to ignore if /etc/sysconfig/kernel does not exist (bnc#865834) + +------------------------------------------------------------------- +Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de + +- Add patch systemd-big-endian-reply-matching.patch + make sure that systemd can talk with dbus-daemon even on big + endian systems (bnc#866732) + +----------------------------------------------------------------- +Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com + +- Due to previous reason, resurrect systemd-dbus-system-bus-address.patch +- Removed pkgconfig(dbus-1) BuildRequires - with 209 and newer, itis only + needed for quering default DBus directories, which we nowpass to configure. + This also unbreaks libdbus <-> systemd-miniBuild Cycle + +----------------------------------------------------------------- +Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch + 0002-manager-flush-memory-stream-before-using-the-buffer.patch + 0003-busname-don-t-drop-service-from-the-result-string.patch + 0004-fix-off-by-one-error-in-array-index-assertion.patch + 0005-logind-fix-policykit-checks.patch + 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch + 0007-dbus-suppress-duplicate-and-misleading-messages.patch + 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch + +------------------------------------------------------------------- +Tue Mar 11 07:47:55 UTC 2014 - werner@suse.de + +- Make compeletion file parser work (bnc#867664) + +------------------------------------------------------------------- +Fri Mar 7 14:50:39 CET 2014 - hare@suse.de + +- Integrate powerd handling in initctl service + + Remove 1016-support-powerfail-with-powerstatus.patch + + Remove systemd-powerfail + + Add systemd-powerd-initctl-support.patch +- Remove 61-msft.rules; superseded by sg3_utils (bnc#866933) +- Persistent by-path links for ATA devices (FATE#317063) + + Update 1001-re-enable-by_path-links-for-ata-devices.patch + ------------------------------------------------------------------- Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 4340cc00..7be75e0f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -35,10 +35,12 @@ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel %if %{with compat_libs} +# See gold_archs in binutils.spec +%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc BuildRequires: binutils-gold %endif +%endif %if ! 0%{?bootstrap} -BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets %endif BuildRequires: fdupes @@ -67,7 +69,6 @@ BuildRequires: systemd-rpm-macros BuildRequires: tcpd-devel BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 -BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel %if %{with python} @@ -139,12 +140,26 @@ Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source12: systemd-powerfail Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink +############################################################################## +# +# WARNING: For the case of for bootstrapping patch should not affect +# the files +# +# Makefile.am, Makefile.in, and configure.ac +# +# as this triggers an (re)autoconfigure. Please check patches with the command +# +# grep -lE 'Makefile.(am|in)|configure\.ac' *.patch +# +# to surround them with %if ! 0%{?bootstrap} ... %endif +# +############################################################################## +# # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch # PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called @@ -164,6 +179,8 @@ Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch Patch18: fix-owner-of-var-log-btmp.patch +# PATCH-FIX-SUSE Avoid error message about not existing getty@3270 file +Patch19: getty-generator-with-serial-3270-tty.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -199,6 +216,8 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian +Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -213,6 +232,7 @@ Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch Patch114: 0001-systemd-empty-sigmask-on-reexec.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch +Patch118: 0002-make-209-working-on-older-dist.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com @@ -269,6 +289,20 @@ Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch Patch145: 0012-man-add-missing-comma.patch # PATCH-FIX-USTREAM added at 2014/03/07 Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch151: 0005-logind-fix-policykit-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -277,8 +311,6 @@ Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch -Patch1016: 1016-support-powerfail-with-powerstatus.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch @@ -287,11 +319,19 @@ Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1020: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch +# PATCH-FIX-SUSE systemd-powerd-initctl-support.patch +Patch1023: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch +# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run +Patch2000: systemd-dbus-system-bus-address.patch +# PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper +Patch2001: let-linker-find-libudev-for-libdevmapper.patch # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch1035: 0007-dbus-suppress-duplicate-and-misleading-messages.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -304,7 +344,7 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 Patch1008: 1008-add-msft-compability-rules.patch %description @@ -326,6 +366,7 @@ Requires: bash %if %{with bash_completion} Requires: bash-completion %endif +BuildArch: noarch %description bash-completion Some systemd commands offer bash completion, but it's an optional dependency. @@ -514,14 +555,18 @@ cp %{SOURCE7} m4/ # systemd patches %patch0 -p1 +%if ! 0%{?bootstrap} %patch1 -p1 +%endif %patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} %patch4 -p1 %endif %patch5 -p1 +%if ! 0%{?bootstrap} %patch6 -p1 +%endif %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -531,8 +576,11 @@ cp %{SOURCE7} m4/ %patch14 -p1 %patch15 -p1 %patch16 -p1 +%if ! 0%{?bootstrap} %patch17 -p1 +%endif %patch18 -p1 +%patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 @@ -551,14 +599,21 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 +%patch47 -p1 %patch84 -p1 +%if ! 0%{?bootstrap} %patch86 -p1 +%endif %patch90 -p1 %patch91 -p1 %patch93 -p1 %patch114 -p0 %if 0%{?suse_version} <= 1310 +%if ! 0%{?bootstrap} %patch117 -p1 +%else +%patch118 -p1 +%endif %endif %patch119 -p1 %patch120 -p1 @@ -575,7 +630,9 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 +%if ! 0%{?bootstrap} %patch134 -p0 +%endif %patch135 -p0 %patch136 -p0 %patch137 -p0 @@ -588,18 +645,34 @@ cp %{SOURCE7} m4/ %patch144 -p0 %patch145 -p0 %patch146 -p0 +%patch147 -p0 +%patch148 -p0 +%patch149 -p0 +%patch150 -p0 +%patch151 -p0 +%patch152 -p0 +%patch153 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 %patch1014 -p1 -%patch1016 -p1 %patch1018 -p1 %patch1019 -p1 +%if ! 0%{?bootstrap} %patch1020 -p1 +%endif %patch1022 -p1 +%patch1023 -p1 +%if ! 0%{?bootstrap} %patch1999 -p1 +%endif +%patch2000 -p1 +%if ! 0%{?bootstrap} +%patch2001 -p1 +%endif # udev patches %patch1034 -p0 +%patch1035 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -608,14 +681,20 @@ cp %{SOURCE7} m4/ # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 +%endif +%if 0%{?suse_version} <= 1310 +%if ! 0%{?bootstrap} %patch1008 -p1 %endif +%endif # ensure generate files are removed rm -f units/emergency.service %build +%if ! 0%{?bootstrap} autoreconf -fiv +%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -623,6 +702,10 @@ export V=1 %configure \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ + --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ + --with-dbussessionservicedir=%{_datadir}/dbus-1/services \ + --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ + --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ @@ -653,6 +736,7 @@ export V=1 %if %{without networkd} --disable-networkd \ %endif + --disable-kdbus \ CFLAGS="%{optflags}" make %{?_smp_mflags} @@ -798,11 +882,7 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ -# support for SIGPWR handling with /var/run/powerstatus of e.g. powerd -install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ -install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} -install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ %if %{without python} for man in systemd.directives.7 systemd.index.7 do @@ -821,7 +901,7 @@ for f in %{buildroot}%{_datadir}/bash-completion/completions/* do test -e "$f" || break grep -q _init_completion "$f" || continue - echo "%exclude %{_datadir}/bash-completion/completions/${f##*}" + echo "%exclude %{_datadir}/bash-completion/completions/${f##*/}" done > files.completion %else > files.completion @@ -1072,6 +1152,7 @@ exit 0 %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service +%exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service @@ -1119,7 +1200,9 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +%if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%endif %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so /etc/pam.d/systemd-user @@ -1142,7 +1225,12 @@ exit 0 %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd +%dir %{_sysconfdir}/dbus-1 +%dir %{_sysconfdir}/dbus-1/system.d %{_sysconfdir}/xdg/systemd/user +%dir %{_datadir}/dbus-1 +%dir %{_datadir}/dbus-1/services +%dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf From c311032ffb65c7998feb688a15e114e4cc0c36ab0c0a349914f689f3e236cd39 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 3 Apr 2014 14:38:38 +0000 Subject: [PATCH 174/221] Accepting request 228354 from Base:System OBS-URL: https://build.opensuse.org/request/show/228354 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=179 --- ...t-s-not-OK-to-invoke-alloca-in-loops.patch | 80 +++ ...or-don-t-return-OOM-on-parentless-de.patch | 20 + ...emory-leak-when-kdbus-is-not-enabled.patch | 26 + ...l-bus-call-on-machine-objects-when-w.patch | 70 +++ 0002-make-209-working-on-older-dist.patch | 65 --- ...-assert_return-to-check-for-disconne.patch | 498 ++++++++++++++++++ ...o-relabel-mounts-before-we-loaded-th.patch | 29 + ...daemon-fix-incorrect-variable-access.patch | 25 + ...-return-1-EINVAL-on-allocation-error.patch | 35 ++ ...ization-perturbation-value-right-bef.patch | 75 +++ 0007-networkd-fix-typo.patch | 26 + ...ccidentally-turn-of-watchdog-timer-e.patch | 29 + ...ess-invalid-memory-if-a-signal-match.patch | 27 + ...ode-is-long-long-gone-don-t-mention-.patch | 53 ++ ...n-the-user-types-a-overly-long-passw.patch | 33 ++ ...ke-if-somebody-sends-us-a-message-wi.patch | 47 ++ ...ve-stray-reset-of-error-return-value.patch | 24 + ...systemd-timedate-udev-spelling-fixes.patch | 118 +++++ 1006-udev-always-rename-network.patch | 94 ++-- ...pletion-smart-to-be-able-to-redirect.patch | 2 +- ...andom-hangs-on-timeouts-due-lost-cwd.patch | 23 + boot-local-start.patch | 12 + pre_checkin.sh | 12 - prepare-suspend-to-disk.patch | 28 + systemctl-set-default-target.patch | 28 + systemd-mini.changes | 78 ++- systemd-mini.spec | 139 +++-- systemd-sleep-grub | 204 +++++++ systemd.changes | 78 ++- systemd.spec | 139 +++-- udev-generate-peristent-rule.sh | 414 +++++++++++++++ 31 files changed, 2311 insertions(+), 220 deletions(-) create mode 100644 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch create mode 100644 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch create mode 100644 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch create mode 100644 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch delete mode 100644 0002-make-209-working-on-older-dist.patch create mode 100644 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch create mode 100644 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch create mode 100644 0005-sd-daemon-fix-incorrect-variable-access.patch create mode 100644 0006-Do-not-return-1-EINVAL-on-allocation-error.patch create mode 100644 0006-sd-event-initialization-perturbation-value-right-bef.patch create mode 100644 0007-networkd-fix-typo.patch create mode 100644 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch create mode 100644 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch create mode 100644 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch create mode 100644 0009-ask-password-when-the-user-types-a-overly-long-passw.patch create mode 100644 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch create mode 100644 0012-journald-remove-stray-reset-of-error-return-value.patch create mode 100644 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch create mode 100644 avoid-random-hangs-on-timeouts-due-lost-cwd.patch create mode 100644 boot-local-start.patch create mode 100644 prepare-suspend-to-disk.patch create mode 100644 systemctl-set-default-target.patch create mode 100644 systemd-sleep-grub create mode 100644 udev-generate-peristent-rule.sh diff --git a/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch b/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch new file mode 100644 index 00000000..06845364 --- /dev/null +++ b/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch @@ -0,0 +1,80 @@ +From a641dcd9bf05418d6a6c165e1c0cff615b4a0f47 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 18 Mar 2014 04:06:36 +0100 +Subject: [PATCH] cgroup: it's not OK to invoke alloca() in loops + +--- + src/core/mount-setup.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index 387030a..c6d3f4b 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -216,10 +216,10 @@ int mount_setup_early(void) { + } + + int mount_cgroup_controllers(char ***join_controllers) { +- int r; +- char buf[LINE_MAX]; + _cleanup_set_free_free_ Set *controllers = NULL; + _cleanup_fclose_ FILE *f; ++ char buf[LINE_MAX]; ++ int r; + + /* Mount all available cgroup controllers that are built into the kernel. */ + +@@ -262,6 +262,7 @@ int mount_cgroup_controllers(char ***join_controllers) { + } + + for (;;) { ++ _cleanup_free_ char *options = NULL, *controller = NULL, *where = NULL; + MountPoint p = { + .what = "cgroup", + .type = "cgroup", +@@ -269,7 +270,6 @@ int mount_cgroup_controllers(char ***join_controllers) { + .mode = MNT_IN_CONTAINER, + }; + char ***k = NULL; +- _cleanup_free_ char *options = NULL, *controller; + + controller = set_steal_first(controllers); + if (!controller) +@@ -286,7 +286,7 @@ int mount_cgroup_controllers(char ***join_controllers) { + for (i = *k, j = *k; *i; i++) { + + if (!streq(*i, controller)) { +- char _cleanup_free_ *t; ++ _cleanup_free_ char *t; + + t = set_remove(controllers, *i); + if (!t) { +@@ -308,7 +308,11 @@ int mount_cgroup_controllers(char ***join_controllers) { + controller = NULL; + } + +- p.where = strappenda("/sys/fs/cgroup/", options); ++ where = strappend("/sys/fs/cgroup/", options); ++ if (!where) ++ return log_oom(); ++ ++ p.where = where; + p.options = options; + + r = mount_one(&p, true); +@@ -319,7 +323,11 @@ int mount_cgroup_controllers(char ***join_controllers) { + char **i; + + for (i = *k; *i; i++) { +- char *t = strappenda("/sys/fs/cgroup/", *i); ++ _cleanup_free_ char *t = NULL; ++ ++ t = strappend("/sys/fs/cgroup/", *i); ++ if (!t) ++ return log_oom(); + + r = symlink(options, t); + if (r < 0 && errno != EEXIST) { +-- +1.7.9.2 + diff --git a/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch b/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch new file mode 100644 index 00000000..be9add48 --- /dev/null +++ b/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch @@ -0,0 +1,20 @@ +From 9c4495ca561624c2f0085507dd1288ed5f1247c5 Mon Sep 17 00:00:00 2001 +From: Tomasz Torcz +Date: Wed, 12 Mar 2014 19:25:11 +0100 +Subject: [PATCH] gpt-auto-generator: don't return OOM on parentless devices + +--- + src/gpt-auto-generator/gpt-auto-generator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/gpt-auto-generator/gpt-auto-generator.c ++++ src/gpt-auto-generator/gpt-auto-generator.c 2014-03-18 13:35:11.438235125 +0000 +@@ -254,7 +254,7 @@ static int enumerate_partitions(struct u + + parent = udev_device_get_parent(d); + if (!parent) +- return log_oom(); ++ return 0; + + r = udev_enumerate_add_match_parent(e, parent); + if (r < 0) diff --git a/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch b/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch new file mode 100644 index 00000000..718f6862 --- /dev/null +++ b/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch @@ -0,0 +1,26 @@ +From 82923adfe5c4fa09cc91fd2a2e374c936cd4a186 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 13 Mar 2014 20:00:50 +0100 +Subject: [PATCH] bus: fix memory leak when kdbus is not enabled + +--- + src/libsystemd/sd-bus/sd-bus.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index ffa3369..ca7c428 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -1189,7 +1189,8 @@ _public_ int sd_bus_open_user(sd_bus **ret) { + #ifdef ENABLE_KDBUS + asprintf(&b->address, KERNEL_USER_BUS_FMT, (unsigned long) getuid()); + #else +- return -ECONNREFUSED; ++ r = -ECONNREFUSED; ++ goto fail; + #endif + } + +-- +1.7.9.2 + diff --git a/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch b/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch new file mode 100644 index 00000000..c3381ef7 --- /dev/null +++ b/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch @@ -0,0 +1,70 @@ +From de58a50e24a0d55e3bbcc77f8f6170a7322acf52 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 18 Mar 2014 04:43:08 +0100 +Subject: [PATCH] machined: fix Kill() bus call on machine objects when "what" + is specified as "leader" + +--- + src/machine/machine.c | 10 +++++++++- + src/machine/machined-dbus.c | 4 ++-- + src/machine/machined.h | 2 +- + 3 files changed, 12 insertions(+), 4 deletions(-) + +diff --git src/machine/machine.c src/machine/machine.c +index 4596a80..9a5cc9a 100644 +--- src/machine/machine.c ++++ src/machine/machine.c +@@ -410,7 +410,15 @@ int machine_kill(Machine *m, KillWho who, int signo) { + if (!m->unit) + return -ESRCH; + +- return manager_kill_unit(m->manager, m->unit, who, signo, NULL); ++ if (who == KILL_LEADER) { ++ /* If we shall simply kill the leader, do so directly */ ++ ++ if (kill(m->leader, signo) < 0) ++ return -errno; ++ } ++ ++ /* Otherwise make PID 1 do it for us, for the entire cgroup */ ++ return manager_kill_unit(m->manager, m->unit, signo, NULL); + } + + static const char* const machine_class_table[_MACHINE_CLASS_MAX] = { +diff --git src/machine/machined-dbus.c src/machine/machined-dbus.c +index 09d28bb..9473105 100644 +--- src/machine/machined-dbus.c ++++ src/machine/machined-dbus.c +@@ -655,7 +655,7 @@ int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, c + return 1; + } + +-int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error) { ++int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error) { + assert(manager); + assert(unit); + +@@ -667,7 +667,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo + "KillUnit", + error, + NULL, +- "ssi", unit, who == KILL_LEADER ? "main" : "all", signo); ++ "ssi", unit, "all", signo); + } + + int manager_unit_is_active(Manager *manager, const char *unit) { +diff --git src/machine/machined.h src/machine/machined.h +index d4b581b..2dba303 100644 +--- src/machine/machined.h ++++ src/machine/machined.h +@@ -67,6 +67,6 @@ int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_b + + int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, sd_bus_message *more_properties, sd_bus_error *error, char **job); + int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); +-int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); ++int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error); + int manager_unit_is_active(Manager *manager, const char *unit); + int manager_job_is_active(Manager *manager, const char *path); +-- +1.7.9.2 + diff --git a/0002-make-209-working-on-older-dist.patch b/0002-make-209-working-on-older-dist.patch deleted file mode 100644 index 502c6a44..00000000 --- a/0002-make-209-working-on-older-dist.patch +++ /dev/null @@ -1,65 +0,0 @@ ---- systemd-209/units/kmod-static-nodes.service.in -+++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 -@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu - [Service] - Type=oneshot - RemainAfterExit=yes -+ExecStartPre=@MKDIR_P@ /run/tmpfiles.d - ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf ---- systemd-209/configure -+++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 -@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then - pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 -- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 -+ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` -+ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then - pkg_cv_KMOD_LIBS="$KMOD_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 -- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 -+ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` -+ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -16042,18 +16042,18 @@ else - _pkg_short_errors_supported=no - fi - if test $_pkg_short_errors_supported = yes; then -- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` -+ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` - else -- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` -+ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$KMOD_PKG_ERRORS" >&5 - -- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 -+ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 - elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } -- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 -+ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 - else - KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS - KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch b/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch new file mode 100644 index 00000000..72455f2c --- /dev/null +++ b/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch @@ -0,0 +1,498 @@ +From a3d59cd1b0a2738d06893948492113f2c35be0af Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 19 Mar 2014 21:41:21 +0100 +Subject: [PATCH] sd-bus: don't use assert_return() to check for disconnected + bus connections + +A terminated connection is a runtime error and not a developer mistake, +hence don't use assert_return() to check for it. +--- + src/libsystemd/sd-bus/bus-control.c | 20 +++++++++++++----- + src/libsystemd/sd-bus/bus-convenience.c | 58 +++++++++++++++++++++++++++++++++++++++++------------- + src/libsystemd/sd-bus/bus-objects.c | 23 +++++++++++++++------ + src/libsystemd/sd-bus/sd-bus.c | 49 +++++++++++++++++++++++++++++++++------------ + 4 files changed, 113 insertions(+), 37 deletions(-) + +--- src/libsystemd/sd-bus/bus-control.c ++++ src/libsystemd/sd-bus/bus-control.c 2014-03-28 00:00:00.000000000 +0000 +@@ -128,12 +128,14 @@ _public_ int sd_bus_request_name(sd_bus + assert_return(bus, -EINVAL); + assert_return(name, -EINVAL); + assert_return(bus->bus_client, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(!(flags & ~(SD_BUS_NAME_ALLOW_REPLACEMENT|SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_QUEUE)), -EINVAL); + assert_return(service_name_is_valid(name), -EINVAL); + assert_return(name[0] != ':', -EINVAL); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_request_name_kernel(bus, name, flags); + else +@@ -201,11 +203,13 @@ _public_ int sd_bus_release_name(sd_bus + assert_return(bus, -EINVAL); + assert_return(name, -EINVAL); + assert_return(bus->bus_client, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(service_name_is_valid(name), -EINVAL); + assert_return(name[0] != ':', -EINVAL); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_release_name_kernel(bus, name); + else +@@ -344,9 +348,11 @@ static int bus_list_names_dbus1(sd_bus * + _public_ int sd_bus_list_names(sd_bus *bus, char ***acquired, char ***activatable) { + assert_return(bus, -EINVAL); + assert_return(acquired || activatable, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_list_names_kernel(bus, acquired, activatable); + else +@@ -737,11 +743,13 @@ _public_ int sd_bus_get_owner( + assert_return(name, -EINVAL); + assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); + assert_return(mask == 0 || creds, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(service_name_is_valid(name), -EINVAL); + assert_return(bus->bus_client, -ENODATA); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_get_owner_kdbus(bus, name, mask, creds); + else +@@ -1198,10 +1206,12 @@ _public_ int sd_bus_get_owner_machine_id + assert_return(bus, -EINVAL); + assert_return(name, -EINVAL); + assert_return(machine, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(service_name_is_valid(name), -EINVAL); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (streq_ptr(name, bus->unique_name)) + return sd_id128_get_machine(machine); + +--- src/libsystemd/sd-bus/bus-convenience.c ++++ src/libsystemd/sd-bus/bus-convenience.c 2014-03-28 00:00:00.000000000 +0000 +@@ -36,9 +36,11 @@ _public_ int sd_bus_emit_signal( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_message_new_signal(bus, &m, path, interface, member); + if (r < 0) + return r; +@@ -70,9 +72,11 @@ _public_ int sd_bus_call_method( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_message_new_method_call(bus, &m, destination, path, interface, member); + if (r < 0) + return r; +@@ -100,9 +104,12 @@ _public_ int sd_bus_reply_method_return( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -134,9 +141,12 @@ _public_ int sd_bus_reply_method_error( + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); + assert_return(sd_bus_error_is_set(e), -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -159,9 +169,12 @@ _public_ int sd_bus_reply_method_errorf( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -182,9 +195,12 @@ _public_ int sd_bus_reply_method_errno( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -208,9 +224,12 @@ _public_ int sd_bus_reply_method_errnof( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -239,9 +258,11 @@ _public_ int sd_bus_get_property( + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(reply, -EINVAL); + assert_return(signature_is_single(type, false), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &rep, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -273,9 +294,11 @@ _public_ int sd_bus_get_property_trivial + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(bus_type_is_trivial(type), -EINVAL); + assert_return(ptr, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -309,9 +332,11 @@ _public_ int sd_bus_get_property_string( + assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(ret, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -348,9 +373,11 @@ _public_ int sd_bus_get_property_strv( + assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(ret, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -383,9 +410,11 @@ _public_ int sd_bus_set_property( + assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(signature_is_single(type, false), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_message_new_method_call(bus, &m, destination, path, "org.freedesktop.DBus.Properties", "Set"); + if (r < 0) + return r; +@@ -416,9 +445,12 @@ _public_ int sd_bus_query_sender_creds(s + + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + c = sd_bus_message_get_creds(call); + + /* All data we need? */ +--- src/libsystemd/sd-bus/bus-objects.c ++++ src/libsystemd/sd-bus/bus-objects.c 2014-03-28 00:00:00.000000000 +0000 +@@ -2196,9 +2196,10 @@ _public_ int sd_bus_emit_properties_chan + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); + assert_return(interface_name_is_valid(interface), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + /* A non-NULL but empty names list means nothing needs to be + generated. A NULL list OTOH indicates that all properties +@@ -2241,9 +2242,11 @@ _public_ int sd_bus_emit_properties_chan + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); + assert_return(interface_name_is_valid(interface), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (!name) + return 0; + +@@ -2361,9 +2364,11 @@ _public_ int sd_bus_emit_interfaces_adde + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (strv_isempty(interfaces)) + return 0; + +@@ -2421,9 +2426,11 @@ _public_ int sd_bus_emit_interfaces_adde + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + interfaces = strv_from_stdarg_alloca(interface); + + return sd_bus_emit_interfaces_added_strv(bus, path, interfaces); +@@ -2435,9 +2442,11 @@ _public_ int sd_bus_emit_interfaces_remo + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (strv_isempty(interfaces)) + return 0; + +@@ -2461,9 +2470,11 @@ _public_ int sd_bus_emit_interfaces_remo + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + interfaces = strv_from_stdarg_alloca(interface); + + return sd_bus_emit_interfaces_removed_strv(bus, path, interfaces); +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c 2014-03-28 12:19:27.146736146 +0000 +@@ -1592,10 +1592,12 @@ static int bus_send_internal(sd_bus *bus + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (m->n_fds > 0) { + r = sd_bus_can_send(bus, SD_BUS_TYPE_UNIX_FD); + if (r < 0) +@@ -1671,10 +1673,12 @@ _public_ int sd_bus_send_to(sd_bus *bus, + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (!streq_ptr(m->destination, destination)) { + + if (!destination) +@@ -1726,13 +1730,15 @@ _public_ int sd_bus_call_async( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); + assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); + assert_return(callback, -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = hashmap_ensure_allocated(&bus->reply_callbacks, uint64_hash_func, uint64_compare_func); + if (r < 0) + return r; +@@ -1839,13 +1845,15 @@ _public_ int sd_bus_call( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); + assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); + assert_return(!bus_error_is_dirty(error), -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = bus_ensure_running(bus); + if (r < 0) + return r; +@@ -1971,9 +1979,11 @@ _public_ int sd_bus_get_events(sd_bus *b + int flags = 0; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) ++ return -ENOTCONN; ++ + if (bus->state == BUS_OPENING) + flags |= POLLOUT; + else if (bus->state == BUS_AUTHENTICATING) { +@@ -1998,9 +2008,11 @@ _public_ int sd_bus_get_timeout(sd_bus * + + assert_return(bus, -EINVAL); + assert_return(timeout_usec, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) ++ return -ENOTCONN; ++ + if (bus->state == BUS_CLOSING) { + *timeout_usec = 0; + return 1; +@@ -2510,7 +2522,8 @@ static int bus_poll(sd_bus *bus, bool ne + if (bus->state == BUS_CLOSING) + return 1; + +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + e = sd_bus_get_events(bus); + if (e < 0) +@@ -2565,7 +2578,8 @@ _public_ int sd_bus_wait(sd_bus *bus, ui + if (bus->state == BUS_CLOSING) + return 0; + +- assert_return(BUS_IS_OPEN(bus->state) , -ENOTCONN); ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + if (bus->rqueue_size > 0) + return 0; +@@ -2582,7 +2596,8 @@ _public_ int sd_bus_flush(sd_bus *bus) { + if (bus->state == BUS_CLOSING) + return 0; + +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + r = bus_ensure_running(bus); + if (r < 0) +@@ -3058,9 +3073,13 @@ _public_ int sd_bus_get_peer_creds(sd_bu + assert_return(bus, -EINVAL); + assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); + assert_return(ret, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); +- assert_return(!bus->is_kernel, -ENOTSUP); ++ ++ if (!bus->is_kernel) ++ return -ENOTSUP; ++ ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + if (!bus->ucred_valid && !isempty(bus->label)) + return -ENODATA; +@@ -3099,9 +3118,13 @@ _public_ int sd_bus_try_close(sd_bus *bu + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); +- assert_return(bus->is_kernel, -ENOTSUP); ++ ++ if (!bus->is_kernel) ++ return -ENOTSUP; ++ ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + if (bus->rqueue_size > 0) + return -EBUSY; diff --git a/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch b/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch new file mode 100644 index 00000000..17d7f268 --- /dev/null +++ b/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch @@ -0,0 +1,29 @@ +From c4bfd1691f4d3e26d6d7f34dbca941e119956e8a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Mar 2014 21:04:02 +0100 +Subject: [PATCH] core: don't try to relabel mounts before we loaded the + policy + +--- + src/core/mount-setup.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index 147333a..0a45b24 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -172,7 +172,10 @@ static int mount_one(const MountPoint *p, bool relabel) { + + /* The access mode here doesn't really matter too much, since + * the mounted file system will take precedence anyway. */ +- mkdir_p_label(p->where, 0755); ++ if (relabel) ++ mkdir_p_label(p->where, 0755); ++ else ++ mkdir_p(p->where, 0755); + + log_debug("Mounting %s to %s of type %s with options %s.", + p->what, +-- +1.7.9.2 + diff --git a/0005-sd-daemon-fix-incorrect-variable-access.patch b/0005-sd-daemon-fix-incorrect-variable-access.patch new file mode 100644 index 00000000..99a923b2 --- /dev/null +++ b/0005-sd-daemon-fix-incorrect-variable-access.patch @@ -0,0 +1,25 @@ +From 56dc9aec21ab23f76fadf45585adf88e71aa8078 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Mar 2014 23:54:14 +0100 +Subject: [PATCH] sd-daemon: fix incorrect variable access + +--- + src/libsystemd/sd-daemon/sd-daemon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-daemon/sd-daemon.c src/libsystemd/sd-daemon/sd-daemon.c +index 21fb346..b013438 100644 +--- src/libsystemd/sd-daemon/sd-daemon.c ++++ src/libsystemd/sd-daemon/sd-daemon.c +@@ -517,7 +517,7 @@ _public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) { + r = -errno; + goto finish; + } +- if (!p || p == e || *p || l <= 0) { ++ if (!p || p == e || *p || ll <= 0) { + r = -EINVAL; + goto finish; + } +-- +1.7.9.2 + diff --git a/0006-Do-not-return-1-EINVAL-on-allocation-error.patch b/0006-Do-not-return-1-EINVAL-on-allocation-error.patch new file mode 100644 index 00000000..bf1db2c6 --- /dev/null +++ b/0006-Do-not-return-1-EINVAL-on-allocation-error.patch @@ -0,0 +1,35 @@ +From 315db1a8aed226a51a4cf700172249cfd10ae115 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 14 Mar 2014 09:05:56 -0400 +Subject: [PATCH] Do not return -1 (EINVAL) on allocation error + +--- + src/core/socket.c | 8 +++----- + +diff --git src/core/socket.c src/core/socket.c +index 8ecc9f9..b39bec2 100644 +--- src/core/socket.c ++++ src/core/socket.c +@@ -198,16 +198,14 @@ static int socket_instantiate_service(Socket *s) { + + assert(s->accept); + +- if (!(prefix = unit_name_to_prefix(UNIT(s)->id))) ++ prefix = unit_name_to_prefix(UNIT(s)->id); ++ if (!prefix) + return -ENOMEM; + +- r = asprintf(&name, "%s@%u.service", prefix, s->n_accepted); +- +- if (r < 0) ++ if (asprintf(&name, "%s@%u.service", prefix, s->n_accepted) < 0) + return -ENOMEM; + + r = manager_load_unit(UNIT(s)->manager, name, NULL, NULL, &u); +- + if (r < 0) + return r; + +-- +1.7.9.2 + diff --git a/0006-sd-event-initialization-perturbation-value-right-bef.patch b/0006-sd-event-initialization-perturbation-value-right-bef.patch new file mode 100644 index 00000000..a561cabb --- /dev/null +++ b/0006-sd-event-initialization-perturbation-value-right-bef.patch @@ -0,0 +1,75 @@ +From 52444dc478fe38b5b69a771923ab429a41927aa5 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Mar 2014 23:54:21 +0100 +Subject: [PATCH] sd-event: initialization perturbation value right before we + use it + +That way, we don't forget to initialize it when the watchdog is +initialized before all event sources. +--- + src/libsystemd/sd-event/sd-event.c | 34 +++++++++++++++++++++------------- + 1 file changed, 21 insertions(+), 13 deletions(-) + +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c 2014-03-28 12:44:05.652327044 +0000 +@@ -648,13 +648,31 @@ _public_ int sd_event_add_io( + return 0; + } + ++static void initialize_perturb(sd_event *e) { ++ sd_id128_t bootid = {}; ++ ++ /* When we sleep for longer, we try to realign the wakeup to ++ the same time wihtin each minute/second/250ms, so that ++ events all across the system can be coalesced into a single ++ CPU wakeup. However, let's take some system-specific ++ randomness for this value, so that in a network of systems ++ with synced clocks timer events are distributed a ++ bit. Here, we calculate a perturbation usec offset from the ++ boot ID. */ ++ ++ if (_likely_(e->perturb != (usec_t) -1)) ++ return; ++ ++ if (sd_id128_get_boot(&bootid) >= 0) ++ e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; ++} ++ + static int event_setup_timer_fd( + sd_event *e, + EventSourceType type, + int *timer_fd, + clockid_t id) { + +- sd_id128_t bootid = {}; + struct epoll_event ev = {}; + int r, fd; + +@@ -677,18 +695,6 @@ static int event_setup_timer_fd( + return -errno; + } + +- /* When we sleep for longer, we try to realign the wakeup to +- the same time wihtin each minute/second/250ms, so that +- events all across the system can be coalesced into a single +- CPU wakeup. However, let's take some system-specific +- randomness for this value, so that in a network of systems +- with synced clocks timer events are distributed a +- bit. Here, we calculate a perturbation usec offset from the +- boot ID. */ +- +- if (sd_id128_get_boot(&bootid) >= 0) +- e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; +- + *timer_fd = fd; + return 0; + } +@@ -1506,6 +1512,8 @@ static usec_t sleep_between(sd_event *e, + if (b <= a + 1) + return a; + ++ initialize_perturb(e); ++ + /* + Find a good time to wake up again between times a and b. We + have two goals here: diff --git a/0007-networkd-fix-typo.patch b/0007-networkd-fix-typo.patch new file mode 100644 index 00000000..8bd67322 --- /dev/null +++ b/0007-networkd-fix-typo.patch @@ -0,0 +1,26 @@ +From eed0eee85ac34abd81cd9e81fdb6a19f47b6c8a3 Mon Sep 17 00:00:00 2001 +From: Michael Olbrich +Date: Fri, 14 Mar 2014 18:19:29 +0100 +Subject: [PATCH] networkd: fix typo + +It's HAVE_SPLIT_USR not HAVE_SPLIT_USER +--- + src/network/networkd-manager.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/network/networkd-manager.c src/network/networkd-manager.c +index c730e71..ea414b1 100644 +--- src/network/networkd-manager.c ++++ src/network/networkd-manager.c +@@ -33,7 +33,7 @@ const char* const network_dirs[] = { + "/etc/systemd/network", + "/run/systemd/network", + "/usr/lib/systemd/network", +-#ifdef HAVE_SPLIT_USER ++#ifdef HAVE_SPLIT_USR + "/lib/systemd/network", + #endif + NULL}; +-- +1.7.9.2 + diff --git a/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch b/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch new file mode 100644 index 00000000..ee4c169a --- /dev/null +++ b/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch @@ -0,0 +1,29 @@ +From 75145780813957ecbe6835f2c8bc20113a3605d2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 25 Mar 2014 00:01:51 +0100 +Subject: [PATCH] sd-event: don't accidentally turn of watchdog timer event if + we determine 0 + +--- + src/libsystemd/sd-event/sd-event.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index d6a3d1c..4aabec1 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -2087,6 +2087,11 @@ static int arm_watchdog(sd_event *e) { + + timespec_store(&its.it_value, t); + ++ /* Make sure we never set the watchdog to 0, which tells the ++ * kernel to disable it. */ ++ if (its.it_value.tv_sec == 0 && its.it_value.tv_nsec == 0) ++ its.it_value.tv_nsec = 1; ++ + r = timerfd_settime(e->watchdog_fd, TFD_TIMER_ABSTIME, &its, NULL); + if (r < 0) + return -errno; +-- +1.7.9.2 + diff --git a/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch b/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch new file mode 100644 index 00000000..d2eac44b --- /dev/null +++ b/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch @@ -0,0 +1,27 @@ +From bbb6ff0216a7c081a2e63e01b1f121592b0165bb Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 14 Mar 2014 21:12:36 +0100 +Subject: [PATCH] sd-bus: don't access invalid memory if a signal matcher was + freed from its own callback + +--- + src/libsystemd/sd-bus/bus-match.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c +index 8280488..c54ca8d 100644 +--- src/libsystemd/sd-bus/bus-match.c ++++ src/libsystemd/sd-bus/bus-match.c +@@ -293,6 +293,9 @@ int bus_match_run( + r = bus_maybe_reply_error(m, r, &error_buffer); + if (r != 0) + return r; ++ ++ if (bus && bus->match_callbacks_modified) ++ return 0; + } + + return bus_match_run(bus, node->next, m); +-- +1.7.9.2 + diff --git a/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch b/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch new file mode 100644 index 00000000..b4564a5a --- /dev/null +++ b/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch @@ -0,0 +1,53 @@ +From 0088d63151e088d62104d88f866e9eb049091c22 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 25 Mar 2014 00:31:48 +0100 +Subject: [PATCH] systemctl: --kill-mode is long long gone, don't mention it + in the man page + +--- + man/systemctl.xml | 5 ++--- + shell-completion/bash/systemctl | 5 +---- + 2 files changed, 3 insertions(+), 7 deletions(-) + +diff --git man/systemctl.xml man/systemctl.xml +index 77447dd..b4727d9 100644 +--- man/systemctl.xml ++++ man/systemctl.xml +@@ -664,9 +664,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service + + Send a signal to one or more processes of the + unit. Use to select which +- process to kill. Use to select +- the kill mode and to select the +- signal to send. ++ process to kill. Use to select ++ the signal to send. + + + +diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl +index dc7ef66..0dfc868 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -74,7 +74,7 @@ _systemctl () { + [STANDALONE]='--all -a --reverse --after --before --defaults --fail --ignore-dependencies --failed --force -f --full -l --global + --help -h --no-ask-password --no-block --no-legend --no-pager --no-reload --no-wall + --quiet -q --privileged -P --system --user --version --runtime' +- [ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root' ++ [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' + ) + + if __contains_word "--user" ${COMP_WORDS[*]}; then +@@ -99,9 +99,6 @@ _systemctl () { + --kill-who) + comps='all control main' + ;; +- --kill-mode) +- comps='control-group process' +- ;; + --root) + comps=$(compgen -A directory -- "$cur" ) + compopt -o filenames +-- +1.7.9.2 + diff --git a/0009-ask-password-when-the-user-types-a-overly-long-passw.patch b/0009-ask-password-when-the-user-types-a-overly-long-passw.patch new file mode 100644 index 00000000..840c4a18 --- /dev/null +++ b/0009-ask-password-when-the-user-types-a-overly-long-passw.patch @@ -0,0 +1,33 @@ +From 036eeac5a1799fa2c0ae11a14d8c667b5d303189 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 25 Mar 2014 01:27:05 +0100 +Subject: [PATCH] ask-password: when the user types a overly long password, + beep and refuse +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Based on a similar patch from David Härdeman. +--- + src/shared/ask-password-api.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/shared/ask-password-api.c src/shared/ask-password-api.c +index 117f0c6..96f16cc 100644 +--- src/shared/ask-password-api.c ++++ src/shared/ask-password-api.c +@@ -207,6 +207,11 @@ int ask_password_tty( + if (ttyfd >= 0) + loop_write(ttyfd, "(no echo) ", 10, false); + } else { ++ if (p >= sizeof(passphrase)-1) { ++ loop_write(ttyfd, "\a", 1, false); ++ continue; ++ } ++ + passphrase[p++] = c; + + if (!silent_mode && ttyfd >= 0) +-- +1.7.9.2 + diff --git a/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch b/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch new file mode 100644 index 00000000..f9e93696 --- /dev/null +++ b/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch @@ -0,0 +1,47 @@ +From 5a4d665ad679a8436f1210ba67d713a8f0b91b96 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 14 Mar 2014 21:15:32 +0100 +Subject: [PATCH] sd-bus: don't choke if somebody sends us a message with a + unix fd count of 0 + +It's kinda pointless to include a unix fd header field in messages if it +carries the value 0, but let's do this anyway... +--- + src/libsystemd/sd-bus/bus-message.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c +index 97ab0e3..b9d7f6d 100644 +--- src/libsystemd/sd-bus/bus-message.c ++++ src/libsystemd/sd-bus/bus-message.c +@@ -4885,6 +4885,7 @@ int bus_message_parse_fields(sd_bus_message *m) { + size_t ri; + int r; + uint32_t unix_fds = 0; ++ bool unix_fds_set = false; + void *offsets = NULL; + unsigned n_offsets = 0; + size_t sz = 0; +@@ -5097,7 +5098,7 @@ int bus_message_parse_fields(sd_bus_message *m) { + } + + case BUS_MESSAGE_HEADER_UNIX_FDS: +- if (unix_fds != 0) ++ if (unix_fds_set) + return -EBADMSG; + + if (!streq(signature, "u")) +@@ -5107,9 +5108,7 @@ int bus_message_parse_fields(sd_bus_message *m) { + if (r < 0) + return -EBADMSG; + +- if (unix_fds == 0) +- return -EBADMSG; +- ++ unix_fds_set = true; + break; + + default: +-- +1.7.9.2 + diff --git a/0012-journald-remove-stray-reset-of-error-return-value.patch b/0012-journald-remove-stray-reset-of-error-return-value.patch new file mode 100644 index 00000000..f15237f7 --- /dev/null +++ b/0012-journald-remove-stray-reset-of-error-return-value.patch @@ -0,0 +1,24 @@ +From 2fc74bf4336eb7a7e40c0b355d19966cd97d4b3c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 10 Mar 2014 21:19:23 -0400 +Subject: [PATCH] journald: remove stray reset of error return value + +--- + src/journal/journald.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/journal/journald.c src/journal/journald.c +index 37896d0..c8c0801 100644 +--- src/journal/journald.c ++++ src/journal/journald.c +@@ -110,7 +110,6 @@ int main(int argc, char *argv[]) { + r = sd_event_run(server.event, t); + if (r < 0) { + log_error("Failed to run event loop: %s", strerror(-r)); +- r = -errno; + goto finish; + } + +-- +1.7.9.2 + diff --git a/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch b/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch new file mode 100644 index 00000000..0343c2ad --- /dev/null +++ b/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch @@ -0,0 +1,118 @@ +From 6f285378aa6e4b5b23c939d1fea16f9ab0a57efb Mon Sep 17 00:00:00 2001 +From: Miklos Vajna +Date: Fri, 14 Mar 2014 21:13:38 +0100 +Subject: [PATCH] core, libsystemd, systemd, timedate, udev: spelling fixes + +--- + src/core/service.c | 2 +- + src/core/unit.c | 2 +- + src/libsystemd/sd-bus/bus-message.c | 2 +- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/systemd/sd-resolve.h | 2 +- + src/timedate/timedated.c | 2 +- + src/udev/udevadm-settle.c | 2 +- + 7 files changed, 8 insertions(+), 8 deletions(-) + +diff --git src/core/service.c src/core/service.c +index 41b95ab..386692a 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -3416,7 +3416,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + free(t); + } + +- /* Interpet WATCHDOG= */ ++ /* Interpret WATCHDOG= */ + if (strv_find(tags, "WATCHDOG=1")) { + log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); + service_reset_watchdog(s); +diff --git src/core/unit.c src/core/unit.c +index 5c98843..4fb0d9c 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1537,7 +1537,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + unit_destroy_cgroup(u); + + /* Note that this doesn't apply to RemainAfterExit services exiting +- * sucessfully, since there's no change of state in that case. Which is ++ * successfully, since there's no change of state in that case. Which is + * why it is handled in service_set_state() */ + if (UNIT_IS_INACTIVE_OR_FAILED(os) != UNIT_IS_INACTIVE_OR_FAILED(ns)) { + ExecContext *ec; +diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c +index b9d7f6d..e32f2b8 100644 +--- src/libsystemd/sd-bus/bus-message.c ++++ src/libsystemd/sd-bus/bus-message.c +@@ -4215,7 +4215,7 @@ static int message_read_ap( + * in a single stackframe. We hence implement our own + * home-grown stack in an array. */ + +- n_array = (unsigned) -1; /* lenght of current array entries */ ++ n_array = (unsigned) -1; /* length of current array entries */ + n_struct = strlen(types); /* length of current struct contents signature */ + + for (;;) { +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 8e44e50..ba8a8a2 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -1447,7 +1447,7 @@ static int bus_seal_message(sd_bus *b, sd_bus_message *m, usec_t timeout) { + static int bus_remarshal_message(sd_bus *b, sd_bus_message **m) { + assert(b); + +- /* Do packet version and endianess already match? */ ++ /* Do packet version and endianness already match? */ + if ((b->message_version == 0 || b->message_version == (*m)->header->version) && + (b->message_endian == 0 || b->message_endian == (*m)->header->endian)) + return 0; +@@ -1464,7 +1464,7 @@ int bus_seal_synthetic_message(sd_bus *b, sd_bus_message *m) { + * hence let's fill something in for synthetic messages. Since + * synthetic messages might have a fake sender and we don't + * want to interfere with the real sender's serial numbers we +- * pick a fixed, artifical one. We use (uint32_t) -1 rather ++ * pick a fixed, artificial one. We use (uint32_t) -1 rather + * than (uint64_t) -1 since dbus1 only had 32bit identifiers, + * even though kdbus can do 64bit. */ + +diff --git src/systemd/sd-resolve.h src/systemd/sd-resolve.h +index df69e4b..3c1d482 100644 +--- src/systemd/sd-resolve.h ++++ src/systemd/sd-resolve.h +@@ -129,7 +129,7 @@ int sd_resolve_get_next(sd_resolve *resolve, sd_resolve_query **q); + int sd_resolve_get_n_queries(sd_resolve *resolve); + + /** Cancel a currently running query. q is is destroyed by this call +- * and may not be used any futher. */ ++ * and may not be used any further. */ + int sd_resolve_cancel(sd_resolve_query* q); + + /** Returns non-zero when the query operation specified by q has been completed */ +diff --git src/timedate/timedated.c src/timedate/timedated.c +index d85ce57..c4a797a 100644 +--- src/timedate/timedated.c ++++ src/timedate/timedated.c +@@ -468,7 +468,7 @@ static int property_get_rtc_time( + zero(tm); + r = hwclock_get_time(&tm); + if (r == -EBUSY) { +- log_warning("/dev/rtc is busy, is somebody keeping it open continously? That's not a good idea... Returning a bogus RTC timestamp."); ++ log_warning("/dev/rtc is busy, is somebody keeping it open continuously? That's not a good idea... Returning a bogus RTC timestamp."); + t = 0; + } else if (r == -ENOENT) { + log_debug("Not /dev/rtc found."); +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index b026155..927ea2a 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -100,7 +100,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + case '?': + exit(EXIT_FAILURE); + default: +- assert_not_reached("Unkown argument"); ++ assert_not_reached("Unknown argument"); + } + + if (optind < argc) { +-- +1.7.9.2 + diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index 1cbbda78..eb98cc2f 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -9,55 +9,69 @@ Date: Tue, 4 Mar 2014 10:29:21 +0000 Port the patch of Robert to systemd v210 and test it out. --- - udev-event.c | 40 ++++++++++++++++++++++++++++++++++++---- - 1 file changed, 36 insertions(+), 4 deletions(-) + udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 38 insertions(+), 4 deletions(-) + --- systemd-210/src/udev/udev-event.c -+++ systemd-210/src/udev/udev-event.c 2014-03-04 11:19:50.583710411 +0100 -@@ -765,10 +765,42 @@ static int rename_netif(struct udev_even ++++ systemd-210/src/udev/udev-event.c 2014-03-27 13:19:06.727748307 +0000 +@@ -750,8 +750,9 @@ static int rename_netif(struct udev_even + struct udev_device *dev = event->dev; + _cleanup_rtnl_unref_ sd_rtnl *rtnl = NULL; + char name[IFNAMSIZ]; ++ char interim[IFNAMSIZ], *ptr = &interim[0]; + const char *oldname; +- int r; ++ int r, loop; + + oldname = udev_device_get_sysname(dev); + +@@ -765,12 +766,45 @@ static int rename_netif(struct udev_even return r; r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); - if (r < 0) -- log_error("error changing net interface name %s to %s: %s", -- oldname, name, strerror(-r)); ++ if (r == 0) { ++ print_kmsg("renamed network interface %s to %s\n", oldname, name); ++ return r; ++ } else if (r != -EEXIST) { + log_error("error changing net interface name %s to %s: %s", + oldname, name, strerror(-r)); - else -+ if (r < 0) { -+ char interim[IFNAMSIZ], *ptr = &interim[0]; -+ int loop = 90; +- print_kmsg("renamed network interface %s to %s", oldname, name); ++ return r; ++ } ++ ++ /* free our own name, another process may wait for us */ ++ strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); ++ ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); ++ if (r < 0) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, interim, strerror(-r)); ++ return r; ++ } + ++ /* log temporary name */ ++ print_kmsg("renamed network interface %s to %s\n", oldname, interim); ++ ++ loop = 90 * 20; ++ while (loop--) { ++ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; ++ nanosleep(&duration, NULL); ++ ++ 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); ++ break; ++ } + -+ /* keep trying if the destination interface name already exists */ + if (r != -EEXIST) { + log_error("error changing net interface name %s to %s: %s", -+ oldname, name, strerror(-r)); -+ return r; ++ interim, name, strerror(-r)); ++ break; + } -+ -+ /* free our own name, another process may wait for us */ -+ strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); -+ -+ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); -+ if (r < 0) { -+ log_error("error changing net interface name %s to %s: %s", -+ oldname, name, strerror(-r)); -+ return r; -+ } -+ -+ /* log temporary name */ -+ print_kmsg("renamed network interface %s to %s", oldname, interim); -+ do { -+ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); -+ if (r == 0) { -+ print_kmsg("renamed network interface %s to %s", oldname, name); -+ return r; -+ } -+ if (r != -EEXIST) { -+ log_error("error changing net interface name %s to %s: %s", -+ oldname, name, strerror(-r)); -+ return r; -+ } -+ } while (loop-- > 0); -+ } else - print_kmsg("renamed network interface %s to %s", oldname, name); - ++ } return r; + } + diff --git a/1019-make-completion-smart-to-be-able-to-redirect.patch b/1019-make-completion-smart-to-be-able-to-redirect.patch index 90ca8edc..89d79183 100644 --- a/1019-make-completion-smart-to-be-able-to-redirect.patch +++ b/1019-make-completion-smart-to-be-able-to-redirect.patch @@ -108,7 +108,7 @@ --- systemd-208/shell-completion/bash/systemctl +++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000 @@ -77,6 +77,10 @@ _systemctl () { - [ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root' + [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then diff --git a/avoid-random-hangs-on-timeouts-due-lost-cwd.patch b/avoid-random-hangs-on-timeouts-due-lost-cwd.patch new file mode 100644 index 00000000..3e11c296 --- /dev/null +++ b/avoid-random-hangs-on-timeouts-due-lost-cwd.patch @@ -0,0 +1,23 @@ +Found this during debugging an other problem. The issue was that +after ``sudo -i'' and a ``cd /usr/lib/systemd/system/'' followed +later by a shutdown may fail with (journalctl -b -1): + + systemd-exit.service: Failed at step CHDIR spawning: /usr/bin/kill + +which then caused the subsequent fault that umounting the users +home directories done by automount are busy. + +--- systemd-210/units/user/systemd-exit.service.in ++++ systemd-210/units/user/systemd-exit.service.in 2014-03-25 16:59:20.406235916 +0000 +@@ -10,8 +10,9 @@ Description=Exit the Session + Documentation=man:systemd.special(7) + DefaultDependencies=no + Requires=shutdown.target +-After=shutdown.target ++After=shutdown.target multi-user.target + + [Service] + Type=oneshot +-ExecStart=@KILL@ -s 58 $MANAGERPID ++WorkingDirectory=/ ++ExecStart=@KILL@ -s SIGRTMIN+24 $MANAGERPID diff --git a/boot-local-start.patch b/boot-local-start.patch new file mode 100644 index 00000000..2f9e9d55 --- /dev/null +++ b/boot-local-start.patch @@ -0,0 +1,12 @@ +diff -Naur systemd-210/units/rc-local.service.in systemd-210-mod/units/rc-local.service.in +--- systemd-210/units/rc-local.service.in 2013-08-13 22:02:52.788756123 +0200 ++++ systemd-210-mod/units/rc-local.service.in 2014-03-25 08:34:40.317587764 +0100 +@@ -10,7 +10,7 @@ + [Unit] + Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility + ConditionFileIsExecutable=@RC_LOCAL_SCRIPT_PATH_START@ +-After=network.target ++After=basic.target + + [Service] + Type=forking diff --git a/pre_checkin.sh b/pre_checkin.sh index 69373260..18706301 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -4,18 +4,6 @@ # create a -mini spec for systemd for bootstrapping ORIG_SPEC=systemd -for patch in $(grep -lE 'Makefile.(am|in)|configure\.ac' *.patch) -do - sed -rn 's/^Patch([0-9]+):\s+'${patch}'/patch\1/p' $ORIG_SPEC.spec -done | while read patch -do - grep -1E '^%'${patch}'[^0-9]' $ORIG_SPEC.spec | grep -q bootstrap - if ((${PIPESTATUS[1]} != 0)) - then - echo Patch ${patch} does trigger 'auto(re)configure' 1>&2 - exit 1 - fi -done EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n" sed "s/^%define bootstrap.*$/${EDIT_WARNING}%define bootstrap 1/; s/^%define udevpkgname.*$/${EDIT_WARNING}%define udevpkgname udev-mini/; diff --git a/prepare-suspend-to-disk.patch b/prepare-suspend-to-disk.patch new file mode 100644 index 00000000..01f95f9d --- /dev/null +++ b/prepare-suspend-to-disk.patch @@ -0,0 +1,28 @@ +diff -Naur systemd-210/units/systemd-hibernate.service.in systemd-210-mod/units/systemd-hibernate.service.in +--- systemd-210/units/systemd-hibernate.service.in 2013-08-13 22:02:52.808756274 +0200 ++++ systemd-210-mod/units/systemd-hibernate.service.in 2014-03-25 12:27:44.995995220 +0100 +@@ -11,7 +11,10 @@ + DefaultDependencies=no + Requires=sleep.target + After=sleep.target ++ConditionKernelCommandLine=resume + + [Service] + Type=oneshot ++ExecStart=@rootbindir@/systemd-sleep-grub pre + ExecStart=@rootlibexecdir@/systemd-sleep hibernate ++ExecStopPost=@rootbindir@/systemd-sleep-grub post +diff -Naur systemd-210/units/systemd-hybrid-sleep.service.in systemd-210-mod/units/systemd-hybrid-sleep.service.in +--- systemd-210/units/systemd-hybrid-sleep.service.in 2013-08-13 22:02:52.809756282 +0200 ++++ systemd-210-mod/units/systemd-hybrid-sleep.service.in 2014-03-25 12:27:56.115994902 +0100 +@@ -11,7 +11,10 @@ + DefaultDependencies=no + Requires=sleep.target + After=sleep.target ++ConditionKernelCommandLine=resume + + [Service] + Type=oneshot ++ExecStart=@rootbindir@/systemd-sleep-grub pre + ExecStart=@rootlibexecdir@/systemd-sleep hybrid-sleep ++ExecStopPost=@rootbindir@/systemd-sleep-grub post diff --git a/systemctl-set-default-target.patch b/systemctl-set-default-target.patch new file mode 100644 index 00000000..4dd058d9 --- /dev/null +++ b/systemctl-set-default-target.patch @@ -0,0 +1,28 @@ +Mention that --force is required to override an already existing default.target + +This solves the bug bnc#868439 + +--- + systemctl.xml | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- systemd-210/man/systemctl.xml ++++ systemd-210/man/systemctl.xml 2014-03-19 12:19:53.182235657 +0000 +@@ -371,7 +371,7 @@ along with systemd; If not, see + + +- When used with enable, overwrite ++ When used with enable or set-default, overwrite + any existing conflicting symlinks. + + When used with halt, +@@ -1036,6 +1036,8 @@ kobject-uevent 1 systemd-udevd-kernel.so + + Set the default target to boot into. Command links + default.target to the given unit. ++ If combined with , override ++ an already existing symlink for the default target. + + + diff --git a/systemd-mini.changes b/systemd-mini.changes index 80282770..6e6334de 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,79 @@ +------------------------------------------------------------------- +Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de + +- Add or port upstram bugfix patches: + 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch + 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch + 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch + 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch + 0005-sd-daemon-fix-incorrect-variable-access.patch + 0006-sd-event-initialization-perturbation-value-right-bef.patch + 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch + 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +- Modify patch + 1019-make-completion-smart-to-be-able-to-redirect.patch + to work together with + 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + +------------------------------------------------------------------- +Fri Mar 28 08:10:13 UTC 2014 - werner@suse.de + +- Use Robert's revised 1006-udev-always-rename-network.patch + +------------------------------------------------------------------- +Tue Mar 25 17:28:18 UTC 2014 - werner@suse.de + +- Readd patch Forward-suspend-hibernate-calls-to-pm-utils.patch + older code base as 13.1 only +- Add patch avoid-random-hangs-on-timeouts-due-lost-cwd.patch + to be able to terminate the user manager even if cwd of the + user is gone + +------------------------------------------------------------------- +Tue Mar 25 13:08:56 UTC 2014 - thomas.blume@suse.com + +- add prepare-suspend-to-disk.patch + enable suspend conditions check and preparation for systemd-sleep + (fate#316824, bnc#856389, bnc#856392) +- remove Forward-suspend-hibernate-calls-to-pm-utils.patch since it is obsolete + (bnc#856392#c20) +- add boot-local-start.patch + fix startup for /etc/init.d/boot.local (bnc#869142) + +------------------------------------------------------------------- +Mon Mar 24 11:19:38 UTC 2014 - coolo@suse.com + +- also autoreconf in systemd-mini to simplify spec file logic + and fix build in staging:gcc49 + (obsoleting 0002-make-209-working-on-older-dist.patch) + +------------------------------------------------------------------- +Wed Mar 19 13:21:37 UTC 2014 - werner@suse.de + +- Be sure that the refreshed manual pages are installed + +------------------------------------------------------------------- +Wed Mar 19 12:09:31 UTC 2014 - werner@suse.de + +- Add patch systemctl-set-default-target.patch which explain how + to override the default.target by using --force (bnc#868439) + +------------------------------------------------------------------- +Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de + +- Add Robert's udev-generate-peristent-rule shell script to + udev's tool library +- Add or port upstram bugfix patches: + 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch + 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch + 0006-Do-not-return-1-EINVAL-on-allocation-error.patch + 0007-networkd-fix-typo.patch + 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch + 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch + 0012-journald-remove-stray-reset-of-error-return-value.patch + 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch + ------------------------------------------------------------------- Fri Mar 14 14:24:56 UTC 2014 - werner@suse.de @@ -789,7 +865,7 @@ Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de - Change patch 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch to check if XDG_RUNTIME_DIR is set before the call of pam_putenv() - may fix bnc#855160 + may fix bnc#855160 ------------------------------------------------------------------- Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com diff --git a/systemd-mini.spec b/systemd-mini.spec index c554b30a..1a24806d 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -149,21 +149,9 @@ Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink +Source1063: udev-generate-peristent-rule.sh +Source1064: systemd-sleep-grub -############################################################################## -# -# WARNING: For the case of for bootstrapping patch should not affect -# the files -# -# Makefile.am, Makefile.in, and configure.ac -# -# as this triggers an (re)autoconfigure. Please check patches with the command -# -# grep -lE 'Makefile.(am|in)|configure\.ac' *.patch -# -# to surround them with %if ! 0%{?bootstrap} ... %endif -# -############################################################################## # # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -215,7 +203,7 @@ Patch42: systemd-pam_config.patch Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) Patch24: handle-etc-HOSTNAME.patch -# PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils +# PATCH-FIX-OPENSUSE forward to pm-utils -- for code base <= 1310 Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -237,7 +225,6 @@ Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch Patch114: 0001-systemd-empty-sigmask-on-reexec.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch -Patch118: 0002-make-209-working-on-older-dist.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com @@ -308,6 +295,40 @@ Patch151: 0005-logind-fix-policykit-checks.patch Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch # PATCH-FIX-USTREAM added at 2014/03/11 Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch158: 0007-networkd-fix-typo.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -326,6 +347,15 @@ Patch1020: 0001-add-network-device-after-NFS-mount-units.patch Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-powerd-initctl-support.patch Patch1023: systemd-powerd-initctl-support.patch +# PATCH-FIX-SUSE systemctl-set-default-target.patch +Patch1024: systemctl-set-default-target.patch +# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) +Patch1025: prepare-suspend-to-disk.patch +# PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) +Patch1026: boot-local-start.patch +# PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager +Patch1027: avoid-random-hangs-on-timeouts-due-lost-cwd.patch + # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run @@ -560,18 +590,11 @@ cp %{SOURCE7} m4/ # systemd patches %patch0 -p1 -%if ! 0%{?bootstrap} %patch1 -p1 -%endif %patch3 -p1 -# don't apply when bootstrapping to not modify configure.in -%if ! 0%{?bootstrap} %patch4 -p1 -%endif %patch5 -p1 -%if ! 0%{?bootstrap} %patch6 -p1 -%endif %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -581,9 +604,7 @@ cp %{SOURCE7} m4/ %patch14 -p1 %patch15 -p1 %patch16 -p1 -%if ! 0%{?bootstrap} %patch17 -p1 -%endif %patch18 -p1 %patch19 -p1 %patch20 -p1 @@ -591,7 +612,9 @@ cp %{SOURCE7} m4/ %patch22 -p1 %patch23 -p1 %patch24 -p1 +%if 0%{?suse_version} <= 1310 %patch25 -p1 +%endif # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 @@ -606,19 +629,13 @@ cp %{SOURCE7} m4/ %patch46 -p1 %patch47 -p1 %patch84 -p1 -%if ! 0%{?bootstrap} %patch86 -p1 -%endif %patch90 -p1 %patch91 -p1 %patch93 -p1 %patch114 -p0 %if 0%{?suse_version} <= 1310 -%if ! 0%{?bootstrap} %patch117 -p1 -%else -%patch118 -p1 -%endif %endif %patch119 -p1 %patch120 -p1 @@ -635,9 +652,7 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 -%if ! 0%{?bootstrap} %patch134 -p0 -%endif %patch135 -p0 %patch136 -p0 %patch137 -p0 @@ -657,24 +672,39 @@ cp %{SOURCE7} m4/ %patch151 -p0 %patch152 -p0 %patch153 -p0 +%patch154 -p0 +%patch155 -p0 +%patch157 -p0 +%patch158 -p0 +%patch159 -p0 +%patch160 -p0 +%patch161 -p0 +%patch162 -p0 +%patch163 -p0 +%patch164 -p0 +%patch165 -p0 +%patch166 -p0 +%patch167 -p0 +%patch168 -p0 +%patch169 -p0 +%patch170 -p0 +%patch171 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 %patch1014 -p1 %patch1018 -p1 %patch1019 -p1 -%if ! 0%{?bootstrap} %patch1020 -p1 -%endif %patch1022 -p1 %patch1023 -p1 -%if ! 0%{?bootstrap} +%patch1024 -p1 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 %patch1999 -p1 -%endif %patch2000 -p1 -%if ! 0%{?bootstrap} %patch2001 -p1 -%endif # udev patches %patch1034 -p0 %patch1035 -p0 @@ -683,23 +713,16 @@ cp %{SOURCE7} m4/ %patch1003 -p1 %patch1005 -p1 %patch1006 -p1 -# don't apply when bootstrapping to not modify Makefile.am -%if ! 0%{?bootstrap} %patch1007 -p1 -%endif %if 0%{?suse_version} <= 1310 -%if ! 0%{?bootstrap} %patch1008 -p1 %endif -%endif # ensure generate files are removed rm -f units/emergency.service %build -%if ! 0%{?bootstrap} autoreconf -fiv -%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -744,8 +767,24 @@ export V=1 --disable-kdbus \ CFLAGS="%{optflags}" make %{?_smp_mflags} +%if ! 0%{?bootstrap} +make %{?_smp_mflags} update-man-list man +%endif %install +# Use refreshed manual pages +for man in man/*.[0-9] +do + section=${man##*.} + test -d man/man${section} || continue + new=man/man${section}/${man##*/} + if test -s $new -a $new -nt $man + then + cp -p $new $man + else + sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man + fi +done make install DESTDIR="%buildroot" # move to %{_lib} @@ -776,6 +815,8 @@ sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule +install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -1112,6 +1153,7 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl +%{_bindir}/systemd-sleep-grub %{_bindir}/bootctl %{_bindir}/busctl %{_bindir}/kernel-install @@ -1205,9 +1247,7 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator -%endif %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so /etc/pam.d/systemd-user @@ -1293,9 +1333,7 @@ exit 0 %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %endif %{_prefix}/lib/udev/rules.d/99-systemd.rules -%if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on -%endif %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif @@ -1376,6 +1414,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule +%{_prefix}/lib/udev/udev-generate-peristent-rule %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules diff --git a/systemd-sleep-grub b/systemd-sleep-grub new file mode 100644 index 00000000..beeed387 --- /dev/null +++ b/systemd-sleep-grub @@ -0,0 +1,204 @@ +#!/bin/bash +# +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. + +set -x + +prepare-parameters() +{ + eval `grep LOADER_TYPE= /etc/sysconfig/bootloader` + + if [ x"$LOADER_TYPE" = "xgrub2" -o x"$LOADER_TYPE" = "xgrub2-efi" ]; then + GRUBONCE="/usr/sbin/grub2-once" + GRUBDEFAULT="/boot/grub2/grubenv" + GRUB2EDITENV="/usr/bin/grub2-editenv" + GRUB2CONF="/boot/grub2/grub.cfg" + BLKID="/usr/sbin/blkid" + getkernels="getkernels-grub2" + fi +} + +##################################################################### +# gets a list of available kernels from /boot/grub2/grub.cfg +# kernels are in the array $KERNELS, output to stdout to be eval-ed. +getkernels-grub2() +{ + local I DUMMY MNT ROOTDEV + declare -i I=0 J=-1 + + # we need the root partition later to decide if this is the kernel to select + while read ROOTDEV MNT DUMMY; do + [ "$ROOTDEV" = "rootfs" ] && continue # not what we are searching for + if [ "$MNT" = "/" ]; then + break + fi + done < /proc/mounts + + while read LINE; do + case $LINE in + menuentry\ *) + let J++ + ;; + set\ default*) + local DEFAULT=${LINE#*default=} + + if echo $DEFAULT | grep -q saved_entry ; then + local SAVED=`$GRUB2EDITENV $GRUBDEFAULT list | sed -n s/^saved_entry=//p` + if [ -n "$SAVED" ]; then + DEFAULT_BOOT=$($GRUBONCE --show-mapped "$SAVED") + fi + fi + + ;; + linux*noresume*) + echo " Skipping grub entry #${J}, because it has the noresume option" >&2 + ;; + linux*root=*) + local ROOT + ROOT=${LINE#*root=} + DUMMY=($ROOT) + ROOT=${DUMMY[0]} + + if [ x"${ROOT:0:5}" = "xUUID=" ]; then + UUID=${ROOT#UUID=} + if [ -n "$UUID" ]; then + ROOT=$($BLKID -U $UUID) + fi + fi + + if [ "$(stat -Lc '%t:%T' $ROOT)" != "$(stat -Lc '%t:%T' $ROOTDEV)" ]; then + echo " Skipping grub entry #${J}, because its root= parameter ($ROOT)" >&2 + echo " does not match the current root device ($ROOTDEV)." >&2 + continue + fi + DUMMY=($LINE) # kernel (hd0,1)/boot/vmlinuz-ABC root=/dev/hda2 + echo "KERNELS[$I]='${DUMMY[1]##*/}'" # vmlinuz-ABC + echo "MENU_ENTRIES[$I]=$J" + # DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO + let I++ + ;; + linux*) + # a kernel without "root="? We better skip that one... + echo " Skipping grub entry #${J}, because it has no root= option" >&2 + ;; + *) ;; + esac + done < "$GRUB2CONF" +} + +############################################################# +# runs grubonce from the grub package to select which kernel +# to boot on next startup +grub-once() +{ + if [ -x "$GRUBONCE" ]; then + echo " running '$GRUBONCE $1'" + $GRUBONCE $1 + else + echo "WARNING: $GRUBONCE not found, not preparing bootloader" + fi +} + +############################################################# +# restore grub default after (eventually failed) resume +grub-once-restore() +{ + echo "INFO: running grub-once-restore" + prepare-parameters + $GRUB2EDITENV $GRUBDEFAULT unset next_entry +} + +############################################################################# +# try to find a kernel image that matches the actually running kernel. +# We need this, if more than one kernel is installed. This works reasonably +# well with grub, if all kernels are named "vmlinuz-`uname -r`" and are +# located in /boot. If they are not, good luck ;-) +find-kernel-entry() +{ + NEXT_BOOT=-1 + ARCH=`uname -m` + declare -i I=0 + # DEBUG "running kernel: $RUNNING" DIAG + while [ -n "${KERNELS[$I]}" ]; do + BOOTING="${KERNELS[$I]}" + if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then + # DEBUG "Found kernel symlink $BOOTING => $IMAGE" INFO + BOOTING=$IMAGE + fi + case $ARCH in + ppc*) BOOTING="${BOOTING#*vmlinux-}" ;; + *) BOOTING="${BOOTING#*vmlinuz-}" ;; + esac + if [ "$RUNNING" == "$BOOTING" ]; then + NEXT_BOOT=${MENU_ENTRIES[$I]} + echo " running kernel is grub menu entry $NEXT_BOOT (${KERNELS[$I]})" + break + fi + let I++ + done + # if we have not found a kernel, issue a warning. + # if we have found a kernel, we'll do "grub-once" later, after + # prepare_suspend finished. + if [ $NEXT_BOOT -eq -1 ]; then + echo "WARNING: no kernelfile matching the running kernel found" + fi +} + +############################################################################# +# if we did not find a kernel (or BOOT_LOADER is not GRUB) check, +# if the running kernel is still the one that will (probably) be booted for +# resume (default entry in menu.lst or, if there is none, the kernel file +# /boot/vmlinuz points to.) +# This will only work, if you use "original" SUSE kernels. +# you can always override with the config variable set to "yes" +prepare-grub() +{ + echo "INFO: running prepare-grub" + prepare-parameters + eval `$getkernels` + RUNNING=`uname -r` + find-kernel-entry + + RET=0 + + if [ $NEXT_BOOT -eq -1 ]; then + # which kernel is booted with the default entry? + BOOTING="${KERNELS[$DEFAULT_BOOT]}" + # if there is no default entry (no menu.lst?) we fall back to + # the default of /boot/vmlinuz. + [ -z "$BOOTING" ] && BOOTING="vmlinuz" + if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then + BOOTING=$IMAGE + fi + BOOTING="${BOOTING#*vmlinuz-}" + echo "running kernel: '$RUNNING', probably booting kernel: '$BOOTING'" + if [ "$BOOTING" != "$RUNNING" ]; then + echo "ERROR: kernel version mismatch, cannot suspend to disk" + echo "running: $RUNNING booting: $BOOTING" >> $INHIBIT + RET=1 + fi + else + # set the bootloader to the running kernel + echo " preparing boot-loader: selecting entry $NEXT_BOOT, kernel /boot/$BOOTING" + T1=`date +"%s%N"` + sync; sync; sync # this is needed to speed up grub-once on reiserfs + T2=`date +"%s%N"` + echo " grub-once: `grub-once $NEXT_BOOT`" + T3=`date +"%s%N"` + S=$(((T2-T1)/100000000)); S="$((S/10)).${S:0-1}" + G=$(((T3-T2)/100000000)); G="$((G/10)).${G:0-1}" + echo " time needed for sync: $S seconds, time needed for grub: $G seconds." + fi + + return $RET +} + + +###### main() + +if [ "$1" = pre ] ; then + prepare-grub +fi +if [ "$1" = post ] ; then + grub-once-restore +fi diff --git a/systemd.changes b/systemd.changes index 80282770..6e6334de 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,79 @@ +------------------------------------------------------------------- +Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de + +- Add or port upstram bugfix patches: + 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch + 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch + 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch + 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch + 0005-sd-daemon-fix-incorrect-variable-access.patch + 0006-sd-event-initialization-perturbation-value-right-bef.patch + 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch + 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +- Modify patch + 1019-make-completion-smart-to-be-able-to-redirect.patch + to work together with + 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + +------------------------------------------------------------------- +Fri Mar 28 08:10:13 UTC 2014 - werner@suse.de + +- Use Robert's revised 1006-udev-always-rename-network.patch + +------------------------------------------------------------------- +Tue Mar 25 17:28:18 UTC 2014 - werner@suse.de + +- Readd patch Forward-suspend-hibernate-calls-to-pm-utils.patch + older code base as 13.1 only +- Add patch avoid-random-hangs-on-timeouts-due-lost-cwd.patch + to be able to terminate the user manager even if cwd of the + user is gone + +------------------------------------------------------------------- +Tue Mar 25 13:08:56 UTC 2014 - thomas.blume@suse.com + +- add prepare-suspend-to-disk.patch + enable suspend conditions check and preparation for systemd-sleep + (fate#316824, bnc#856389, bnc#856392) +- remove Forward-suspend-hibernate-calls-to-pm-utils.patch since it is obsolete + (bnc#856392#c20) +- add boot-local-start.patch + fix startup for /etc/init.d/boot.local (bnc#869142) + +------------------------------------------------------------------- +Mon Mar 24 11:19:38 UTC 2014 - coolo@suse.com + +- also autoreconf in systemd-mini to simplify spec file logic + and fix build in staging:gcc49 + (obsoleting 0002-make-209-working-on-older-dist.patch) + +------------------------------------------------------------------- +Wed Mar 19 13:21:37 UTC 2014 - werner@suse.de + +- Be sure that the refreshed manual pages are installed + +------------------------------------------------------------------- +Wed Mar 19 12:09:31 UTC 2014 - werner@suse.de + +- Add patch systemctl-set-default-target.patch which explain how + to override the default.target by using --force (bnc#868439) + +------------------------------------------------------------------- +Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de + +- Add Robert's udev-generate-peristent-rule shell script to + udev's tool library +- Add or port upstram bugfix patches: + 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch + 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch + 0006-Do-not-return-1-EINVAL-on-allocation-error.patch + 0007-networkd-fix-typo.patch + 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch + 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch + 0012-journald-remove-stray-reset-of-error-return-value.patch + 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch + ------------------------------------------------------------------- Fri Mar 14 14:24:56 UTC 2014 - werner@suse.de @@ -789,7 +865,7 @@ Fri Dec 20 12:06:18 UTC 2013 - werner@suse.de - Change patch 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch to check if XDG_RUNTIME_DIR is set before the call of pam_putenv() - may fix bnc#855160 + may fix bnc#855160 ------------------------------------------------------------------- Fri Dec 20 09:40:01 UTC 2013 - lbsousajr@gmail.com diff --git a/systemd.spec b/systemd.spec index 7be75e0f..b5f4ba83 100644 --- a/systemd.spec +++ b/systemd.spec @@ -144,21 +144,9 @@ Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink +Source1063: udev-generate-peristent-rule.sh +Source1064: systemd-sleep-grub -############################################################################## -# -# WARNING: For the case of for bootstrapping patch should not affect -# the files -# -# Makefile.am, Makefile.in, and configure.ac -# -# as this triggers an (re)autoconfigure. Please check patches with the command -# -# grep -lE 'Makefile.(am|in)|configure\.ac' *.patch -# -# to surround them with %if ! 0%{?bootstrap} ... %endif -# -############################################################################## # # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -210,7 +198,7 @@ Patch42: systemd-pam_config.patch Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) Patch24: handle-etc-HOSTNAME.patch -# PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils +# PATCH-FIX-OPENSUSE forward to pm-utils -- for code base <= 1310 Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -232,7 +220,6 @@ Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch Patch114: 0001-systemd-empty-sigmask-on-reexec.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch -Patch118: 0002-make-209-working-on-older-dist.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com @@ -303,6 +290,40 @@ Patch151: 0005-logind-fix-policykit-checks.patch Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch # PATCH-FIX-USTREAM added at 2014/03/11 Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch158: 0007-networkd-fix-typo.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -321,6 +342,15 @@ Patch1020: 0001-add-network-device-after-NFS-mount-units.patch Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-powerd-initctl-support.patch Patch1023: systemd-powerd-initctl-support.patch +# PATCH-FIX-SUSE systemctl-set-default-target.patch +Patch1024: systemctl-set-default-target.patch +# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) +Patch1025: prepare-suspend-to-disk.patch +# PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) +Patch1026: boot-local-start.patch +# PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager +Patch1027: avoid-random-hangs-on-timeouts-due-lost-cwd.patch + # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run @@ -555,18 +585,11 @@ cp %{SOURCE7} m4/ # systemd patches %patch0 -p1 -%if ! 0%{?bootstrap} %patch1 -p1 -%endif %patch3 -p1 -# don't apply when bootstrapping to not modify configure.in -%if ! 0%{?bootstrap} %patch4 -p1 -%endif %patch5 -p1 -%if ! 0%{?bootstrap} %patch6 -p1 -%endif %patch7 -p1 %patch8 -p1 %patch9 -p1 @@ -576,9 +599,7 @@ cp %{SOURCE7} m4/ %patch14 -p1 %patch15 -p1 %patch16 -p1 -%if ! 0%{?bootstrap} %patch17 -p1 -%endif %patch18 -p1 %patch19 -p1 %patch20 -p1 @@ -586,7 +607,9 @@ cp %{SOURCE7} m4/ %patch22 -p1 %patch23 -p1 %patch24 -p1 +%if 0%{?suse_version} <= 1310 %patch25 -p1 +%endif # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 @@ -601,19 +624,13 @@ cp %{SOURCE7} m4/ %patch46 -p1 %patch47 -p1 %patch84 -p1 -%if ! 0%{?bootstrap} %patch86 -p1 -%endif %patch90 -p1 %patch91 -p1 %patch93 -p1 %patch114 -p0 %if 0%{?suse_version} <= 1310 -%if ! 0%{?bootstrap} %patch117 -p1 -%else -%patch118 -p1 -%endif %endif %patch119 -p1 %patch120 -p1 @@ -630,9 +647,7 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 -%if ! 0%{?bootstrap} %patch134 -p0 -%endif %patch135 -p0 %patch136 -p0 %patch137 -p0 @@ -652,24 +667,39 @@ cp %{SOURCE7} m4/ %patch151 -p0 %patch152 -p0 %patch153 -p0 +%patch154 -p0 +%patch155 -p0 +%patch157 -p0 +%patch158 -p0 +%patch159 -p0 +%patch160 -p0 +%patch161 -p0 +%patch162 -p0 +%patch163 -p0 +%patch164 -p0 +%patch165 -p0 +%patch166 -p0 +%patch167 -p0 +%patch168 -p0 +%patch169 -p0 +%patch170 -p0 +%patch171 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 %patch1014 -p1 %patch1018 -p1 %patch1019 -p1 -%if ! 0%{?bootstrap} %patch1020 -p1 -%endif %patch1022 -p1 %patch1023 -p1 -%if ! 0%{?bootstrap} +%patch1024 -p1 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 %patch1999 -p1 -%endif %patch2000 -p1 -%if ! 0%{?bootstrap} %patch2001 -p1 -%endif # udev patches %patch1034 -p0 %patch1035 -p0 @@ -678,23 +708,16 @@ cp %{SOURCE7} m4/ %patch1003 -p1 %patch1005 -p1 %patch1006 -p1 -# don't apply when bootstrapping to not modify Makefile.am -%if ! 0%{?bootstrap} %patch1007 -p1 -%endif %if 0%{?suse_version} <= 1310 -%if ! 0%{?bootstrap} %patch1008 -p1 %endif -%endif # ensure generate files are removed rm -f units/emergency.service %build -%if ! 0%{?bootstrap} autoreconf -fiv -%endif # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 @@ -739,8 +762,24 @@ export V=1 --disable-kdbus \ CFLAGS="%{optflags}" make %{?_smp_mflags} +%if ! 0%{?bootstrap} +make %{?_smp_mflags} update-man-list man +%endif %install +# Use refreshed manual pages +for man in man/*.[0-9] +do + section=${man##*.} + test -d man/man${section} || continue + new=man/man${section}/${man##*/} + if test -s $new -a $new -nt $man + then + cp -p $new $man + else + sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man + fi +done make install DESTDIR="%buildroot" # move to %{_lib} @@ -771,6 +810,8 @@ sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule +install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -1107,6 +1148,7 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl +%{_bindir}/systemd-sleep-grub %{_bindir}/bootctl %{_bindir}/busctl %{_bindir}/kernel-install @@ -1200,9 +1242,7 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator -%endif %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so /etc/pam.d/systemd-user @@ -1288,9 +1328,7 @@ exit 0 %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %endif %{_prefix}/lib/udev/rules.d/99-systemd.rules -%if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on -%endif %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif @@ -1371,6 +1409,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule +%{_prefix}/lib/udev/udev-generate-peristent-rule %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules diff --git a/udev-generate-peristent-rule.sh b/udev-generate-peristent-rule.sh new file mode 100644 index 00000000..4c83919a --- /dev/null +++ b/udev-generate-peristent-rule.sh @@ -0,0 +1,414 @@ +#!/bin/bash +# +# Copyright (C) 2014 Robert Milasan +# +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# This script run manually by user, will generate a persistent rule for +# a given network interface to rename it to new interface name. +# + +prj=${0##*/} + +log_info() +{ + local msg="$1" + echo "$prj: $msg" +} + +log_error() +{ + local msg=$1 + echo "$prj: $msg" >&2 +} + +usage() +{ + set -f + cat << EOF +$prj: udev persistent rule generator + +Usage: $prj [OPTION] ... + + -h show this help + -m generate the persistent rule based on interface MAC address + -p generate the persistent rule based on interface PCI slot + -v be verbose + -c current interface name (ex: "ip a s") + -n new interface name (ex: net0) + -o where to write the new generate rule (default: /dev/stdout) + prefered location is /etc/udev/rules.d/70-persistent-net.rules + +Example: + $prj -m -c enp0s4 -n net0 -o /etc/udev/rules.d/70-persistent-net.rules + or + $prj -p -c wlp3s0 -n wlan0 -o /etc/udev/rules.d/50-mynet.rules + +EOF +} + +display_note() +{ + cat <<'EOF' + +NOTE: Using the generate persistent rule might mean you will need to do extra +work to ensure that it will work accordingly. This mean, regenerating the +initramfs/initrd image and/or using 'net.ifnames=0' option at boot time. + +In openSUSE/SUSE, the user will need to regenerate the initramfs/initrd image, +but usually there is no need for 'net.ifnames=0' option if the persistent rule +is available in initramfs/initrd image. + +EOF +} + +get_pci() +{ + local path=$1 + local pci="" + + if [ -L "$path/device" ]; then + local pci_link="$(readlink -f $path/device 2>/dev/null)" + pci="$(basename $pci_link 2>/dev/null)" + fi + echo $pci +} + +get_pci_id() +{ + local path=$1 + local pci_id="" + + if [ -r "$path/device/uevent" ]; then + local _pci_id="$(cat $path/device/uevent|grep ^PCI_ID 2>/dev/null)" + pci_id="${_pci_id#*=}" + fi + echo $pci_id +} + +get_macaddr() +{ + local path=$1 + local macaddr="" + + if [ -r "$path/address" ]; then + macaddr="$(cat $path/address 2>/dev/null)" + fi + echo $macaddr +} + +get_type() +{ + local path=$1 + local dev_type="" + + if [ -r "$path/type" ]; then + dev_type="$(cat $path/type 2>/dev/null)" + fi + echo $dev_type +} + +get_dev_id() +{ + local path=$1 + local dev_id="" + + if [ -r "$path/dev_id" ]; then + dev_id="$(cat $path/dev_id 2>/dev/null)" + fi + echo $dev_id +} + +get_devtype() +{ + local path=$1 + local devtype="" + if [ -r "$path/uevent" ]; then + local _devtype="$(cat $path/uevent|grep ^DEVTYPE 2>/dev/null)" + devtype="${_devtype#*=}" + fi + echo $devtype +} + +get_subsystem() +{ + local path=$1 + local subsystem="" + + if [ -L "$path/subsystem" ]; then + local subsystem_link="$(readlink -f $path/subsystem 2>/dev/null)" + subsystem="$(basename $subsystem_link 2>/dev/null)" + fi + echo $subsystem +} + +get_driver() +{ + local path=$1 + local driver="" + + if [ -L "$path/device/driver" ]; then + local driver_link="$(readlink -f $path/device/driver 2>/dev/null)" + driver="$(basename $driver_link 2>/dev/null)" + fi + echo $driver +} + +valid_mac() +{ + local macaddr=$1 + local valid_macaddr="" + + if [ -n "$macaddr" ]; then + valid_macaddr="$(echo $macaddr | sed -n '/^\([0-9a-z][0-9a-z]:\)\{5\}[0-9a-z][0-9a-z]$/p')" + fi + echo $valid_macaddr +} + +generate_comment() +{ + local pci_id=$1 + local driver=$2 + local output=$3 + + if [ -z "$pci_id" ]; then + log_error "\$pci_id empty." + exit 1 + elif [ -z "$driver" ]; then + log_error "\$driver empty." + exit 1 + elif [ -z "$output" ]; then + log_error "\$output empty." + exit 1 + else + echo "# PCI device $pci_id ($driver) with official udev name $interface renamed to unsupported $new_interface" >> $output + fi +} + +generate_rule() +{ + local _subsystem=$1 + local _mac=$2 + local _pci=$3 + local _dev_id=$4 + local _dev_type=$5 + local _kernel=$6 + local _interface=$7 + local output=$8 + + if [ -z "$_subsystem" ]; then + log_error "\$_subsystem empty." + exit 1 + elif [ -z "$_dev_id" ]; then + log_error "\$_dev_id empty." + exit 1 + elif [ -z "$_dev_type" ]; then + log_error "\$_dev_type empty." + exit 1 + elif [ -z "$_kernel" ]; then + log_error "\$_kernel empty." + exit 1 + elif [ -z "$_interface" ]; then + log_error "\$_interface empty." + exit 1 + elif [ -z "$output" ]; then + output="/dev/stdout" + fi + + if [ "$_mac" != "none" ]; then + echo "SUBSYSTEM==\"$_subsystem\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$_mac\", \ +ATTR{dev_id}==\"$_dev_id\", ATTR{type}==\"$_dev_type\", KERNEL==\"$_kernel\", NAME=\"$_interface\"" >> ${output} + elif [ "$_pci" != "none" ]; then + echo "SUBSYSTEM==\"$_subsystem\", ACTION==\"add\", DRIVERS==\"?*\", KERNELS==\"$_pci\", \ +ATTR{dev_id}==\"$_dev_id\", ATTR{type}==\"$_dev_type\", KERNEL==\"$_kernel\", NAME=\"$_interface\"" >> ${output} + else + log_error "MAC address or PCI slot information missing." + exit 1 + fi +} + +if [ $# -eq 0 ]; then + usage + log_error "missing option(s)." + exit 1 +fi + +use_mac=0 +use_pci=0 +use_verbose=0 + +while getopts "hmpvc:n:o:" opt; do + case "$opt" in + h) + usage; exit 0;; + m) + use_mac=1 ;; + p) + use_pci=1 ;; + v) + use_verbose=1 ;; + c) + ifcur="$OPTARG" ;; + n) + ifnew="$OPTARG" ;; + o) + output="$OPTARG" ;; + \?) + exit 1 ;; + esac +done + +if [[ "$use_mac" -eq 1 ]] && [[ "$use_pci" -eq 1 ]]; then + log_error "generating a persistent rule can be done only using one of the option, -m or -p, not both." + exit 1 +fi + +outfile=$output +if [ -z "$output" ]; then + outfile=/dev/stdout +else + dir="$(dirname $outfile 2>/dev/null)" + tmpfile="$dir/.tmp_file" + if [ -d "$dir" ]; then + touch "$tmpfile" >/dev/null 2>&1 + if [ $? -ne 0 ]; then + log_error "no write access for $outfile. make sure you have write permissions to $dir." + exit 1 + fi + rm -f "$tmpfile" >/dev/null 2>&1 + else + log_error "$dir not a directory." + exit 1 + fi +fi + +interface=$ifcur +if [ -z "$interface" ]; then + log_error "current interface must be specified." + exit 1 +elif [ "$interface" == "lo" ]; then + log_error "loopback interface is not a valid interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: INTERFACE=$interface" + +new_interface=$ifnew +if [ -z "$new_interface" ]; then + log_error "new interface must be specified." + exit 1 +elif [ "$new_interface" == "lo" ]; then + log_error "new interface cant be named loopback interface." + exit +fi +[ "$use_verbose" -eq 1 ] && echo "I: INTERFACE_NEW=$new_interface" + +path="/sys/class/net/$interface" +if [ ! -d "$path" ]; then + log_error "devpath $path not a directory." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: DEVPATH=$path" + +devtype="$(get_devtype $path)" +if [ -n "$devtype" ]; then + [ "$use_verbose" -eq 1 ] && echo "I: DEVTYPE=$devtype" +fi + +subsystem="$(get_subsystem $path)" +if [ -z "$subsystem" ]; then + log_error "unable to retrieve subsystem for interface $interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: SUBSYSTEM=$subsystem" + +pci_id="$(get_pci_id $path)" +if [ -z "$pci_id" ]; then + log_error "unable to retrieve PCI_ID for interface $interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: PCI_ID=$pci_id" + +driver="$(get_driver $path)" +if [ -z "$driver" ]; then + log_error "unable to retrieve driver for interface $interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: DRIVER=$driver" + +if [ "$use_mac" -eq 1 ]; then + macaddr="$(get_macaddr $path)" + if [ -z "$macaddr" ]; then + log_error "unable to retrieve MAC address for interface $interface." + exit 1 + fi + if [ "$(valid_mac $macaddr)" != "$macaddr" ]; then + log_error "$macaddr invalid MAC address." + exit 1 + fi + [ "$use_verbose" -eq 1 ] && echo "I: MACADDR=$macaddr" +fi + +if [ "$use_pci" -eq 1 ]; then + pci="$(get_pci $path)" + if [ -z "$pci" ]; then + log_error "unable to retrieve PCI slot for interface $interface." + exit 1 + fi + [ "$use_verbose" -eq 1 ] && echo "I: KERNELS=$pci" +fi + +dev_id="$(get_dev_id $path)" +if [ -z "$dev_id" ]; then + log_error "unable to retrieve dev_id for interface $interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: DEV_ID=$dev_id" + +dev_type="$(get_type $path)" +if [ -z "$dev_type" ]; then + log_error "unable to retrieve dev_type for interface $interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: TYPE=$dev_type" + +if [ "$devtype" == "wlan" ]; then + kernel="wlan*" +else + kernel="eth*" +fi + +if [ -n "$output" ]; then + echo "Persistent rule saved in "$outfile"" + echo + generate_comment "$pci_id" "$driver" "$output" +fi + +set -f +if [ "$use_mac" -eq 1 ]; then + generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" + if [ -n "$output" ]; then + generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" "$output" + fi +elif [ "$use_pci" -eq 1 ]; then + generate_rule "$subsystem" "none" "$pci" "$dev_id" "$dev_type" "$kernel" "$new_interface" + if [ -n "$output" ]; then + generate_rule "$subsystem" "none" "$pci" "$dev_id" "$dev_type" "$kernel" "$new_interface" "$outfile" + fi +fi + +if [ -n "$output" ]; then + display_note +fi + +exit 0 From d4886680e8304dd12ed8c7756523d87c7dc05f0cc02f09757a9c0a41c4f89972 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 9 Apr 2014 16:17:19 +0000 Subject: [PATCH 175/221] Accepting request 229352 from Base:System - Add patch portmap-wants-rpcbind-socket.patch to make sure that rpcbind socket as well as service is up with the target - Add or port upstram bugfix patches: 0001-journal-fix-export-of-messages-containing-newlines.patch 0002-systemctl-update-NAME-to-PATTERN-in-help.patch 0003-tty-ask-password-agent-return-negative-errno.patch 0004-systemd-python-use-.hex-instead-of-.get_hex.patch 0005-systemd-python-fix-failing-assert.patch - Add patch portmap-wants-rpcbind-socket.patch to make sure that rpcbind socket as well as service is up with the target - Add or port upstram bugfix patches: 0001-journal-fix-export-of-messages-containing-newlines.patch 0002-systemctl-update-NAME-to-PATTERN-in-help.patch 0003-tty-ask-password-agent-return-negative-errno.patch 0004-systemd-python-use-.hex-instead-of-.get_hex.patch 0005-systemd-python-fix-failing-assert.patch OBS-URL: https://build.opensuse.org/request/show/229352 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=180 --- ...port-of-messages-containing-newlines.patch | 80 +++++++++++++++++++ ...emctl-update-NAME-to-PATTERN-in-help.patch | 52 ++++++++++++ ...password-agent-return-negative-errno.patch | 29 +++++++ ...-python-use-.hex-instead-of-.get_hex.patch | 46 +++++++++++ 0005-systemd-python-fix-failing-assert.patch | 26 ++++++ portmap-wants-rpcbind-socket.patch | 7 ++ systemd-mini.changes | 12 +++ systemd-mini.spec | 19 +++++ systemd.changes | 12 +++ systemd.spec | 19 +++++ 10 files changed, 302 insertions(+) create mode 100644 0001-journal-fix-export-of-messages-containing-newlines.patch create mode 100644 0002-systemctl-update-NAME-to-PATTERN-in-help.patch create mode 100644 0003-tty-ask-password-agent-return-negative-errno.patch create mode 100644 0004-systemd-python-use-.hex-instead-of-.get_hex.patch create mode 100644 0005-systemd-python-fix-failing-assert.patch create mode 100644 portmap-wants-rpcbind-socket.patch diff --git a/0001-journal-fix-export-of-messages-containing-newlines.patch b/0001-journal-fix-export-of-messages-containing-newlines.patch new file mode 100644 index 00000000..75cdd023 --- /dev/null +++ b/0001-journal-fix-export-of-messages-containing-newlines.patch @@ -0,0 +1,80 @@ +From 0ade5ffe2778e7b238bba8d979ca4d53dee1e702 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 31 Mar 2014 08:57:28 -0400 +Subject: [PATCH] journal: fix export of messages containing newlines + +In "export" format, newlines are significant, and messages containing +newlines must be exported as "binary". +--- + src/shared/logs-show.c | 7 ++++--- + src/shared/utf8.c | 5 +++-- + src/shared/utf8.h | 5 ++++- + 3 files changed, 11 insertions(+), 6 deletions(-) + +diff --git src/shared/logs-show.c src/shared/logs-show.c +index 9d14933..b0b66f6 100644 +--- src/shared/logs-show.c ++++ src/shared/logs-show.c +@@ -547,7 +547,9 @@ static int output_export( + startswith(data, "_BOOT_ID=")) + continue; + +- if (!utf8_is_printable(data, length)) { ++ if (utf8_is_printable_newline(data, length, false)) ++ fwrite(data, length, 1, f); ++ else { + const char *c; + uint64_t le64; + +@@ -562,8 +564,7 @@ static int output_export( + le64 = htole64(length - (c - (const char*) data) - 1); + fwrite(&le64, sizeof(le64), 1, f); + fwrite(c + 1, length - (c - (const char*) data) - 1, 1, f); +- } else +- fwrite(data, length, 1, f); ++ } + + fputc('\n', f); + } +diff --git src/shared/utf8.c src/shared/utf8.c +index 0b524d8..c559c13 100644 +--- src/shared/utf8.c ++++ src/shared/utf8.c +@@ -136,7 +136,7 @@ int utf8_encoded_to_unichar(const char *str) { + return unichar; + } + +-bool utf8_is_printable(const char* str, size_t length) { ++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) { + const uint8_t *p; + + assert(str); +@@ -145,7 +145,8 @@ bool utf8_is_printable(const char* str, size_t length) { + int encoded_len = utf8_encoded_valid_unichar((const char *)p); + int val = utf8_encoded_to_unichar((const char*)p); + +- if (encoded_len < 0 || val < 0 || is_unicode_control(val)) ++ if (encoded_len < 0 || val < 0 || is_unicode_control(val) || ++ (!newline && val == '\n')) + return false; + + length -= encoded_len; +diff --git src/shared/utf8.h src/shared/utf8.h +index c0eb73a..c087995 100644 +--- src/shared/utf8.h ++++ src/shared/utf8.h +@@ -31,7 +31,10 @@ const char *utf8_is_valid(const char *s) _pure_; + char *ascii_is_valid(const char *s) _pure_; + char *utf8_escape_invalid(const char *s); + +-bool utf8_is_printable(const char* str, size_t length) _pure_; ++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) _pure_; ++_pure_ static inline bool utf8_is_printable(const char* str, size_t length) { ++ return utf8_is_printable_newline(str, length, true); ++} + + char *utf16_to_utf8(const void *s, size_t length); + +-- +1.7.9.2 + diff --git a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch new file mode 100644 index 00000000..fd9096b9 --- /dev/null +++ b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch @@ -0,0 +1,52 @@ +From b3ae710c251d0ce5cf2cef63208e325497b5e323 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 1 Apr 2014 20:43:15 -0400 +Subject: [PATCH] systemctl: update NAME to PATTERN in help() + +Previously the man page was modified, but not help(). +--- + TODO | 2 ++ + src/systemctl/systemctl.c | 14 +++++++------- + 2 files changed, 9 insertions(+), 7 deletions(-) + +diff --git TODO TODO +index 4ff69ff..0343b94 100644 +--- TODO ++++ TODO +@@ -1,4 +1,6 @@ + Bugfixes: ++* Should systemctl status \* work on all unit types, not just .service? ++ + * enabling an instance unit creates a pointless link, and + the unit will be started with getty@getty.service: + $ systemctl enable getty@.service +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 6b88f85..653a324 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -5403,15 +5403,15 @@ static int systemctl_help(void) { + " otherwise restart if active\n" + " isolate NAME Start one unit and stop all others\n" + " kill NAME... Send signal to processes of a unit\n" +- " is-active NAME... Check whether units are active\n" +- " is-failed NAME... Check whether units are failed\n" +- " status [NAME...|PID...] Show runtime status of one or more units\n" +- " show [NAME...|JOB...] Show properties of one or more\n" ++ " is-active PATTERN... Check whether units are active\n" ++ " is-failed PATTERN... Check whether units are failed\n" ++ " status [PATTERN...|PID...] Show runtime status of one or more units\n" ++ " show [PATTERN...|JOB...] Show properties of one or more\n" + " units/jobs or the manager\n" +- " cat NAME... Show files and drop-ins of one or more units\n" ++ " cat PATTERN... Show files and drop-ins of one or more units\n" + " set-property NAME ASSIGNMENT... Sets one or more properties of a unit\n" +- " help NAME...|PID... Show manual for one or more units\n" +- " reset-failed [NAME...] Reset failed state for all, one, or more\n" ++ " help PATTERN...|PID... Show manual for one or more units\n" ++ " reset-failed [PATTERN...] Reset failed state for all, one, or more\n" + " units\n" + " list-dependencies [NAME] Recursively show units which are required\n" + " or wanted by this unit or by which this\n" +-- +1.7.9.2 + diff --git a/0003-tty-ask-password-agent-return-negative-errno.patch b/0003-tty-ask-password-agent-return-negative-errno.patch new file mode 100644 index 00000000..9f839a7f --- /dev/null +++ b/0003-tty-ask-password-agent-return-negative-errno.patch @@ -0,0 +1,29 @@ +From ee0e4cca5ac37a094dfe1074907dae70c7b7701c Mon Sep 17 00:00:00 2001 +From: Florian Albrechtskirchinger +Date: Thu, 3 Apr 2014 21:17:20 +0200 +Subject: [PATCH] tty-ask-password-agent: return negative errno + +Return negative errno in wall_tty_block(). get_ctty_devnr() already +returns a negative errno in case of failure, no need to negate it again. + +Reported-by: Simon +--- + .../tty-ask-password-agent.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 1d067af..3203474 100644 +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -432,7 +432,7 @@ static int wall_tty_block(void) { + + r = get_ctty_devnr(0, &devnr); + if (r < 0) +- return -r; ++ return r; + + if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0) + return -ENOMEM; +-- +1.7.9.2 + diff --git a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch new file mode 100644 index 00000000..4ddad20e --- /dev/null +++ b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch @@ -0,0 +1,46 @@ +From b532cf3722e04adb0bd075666eb9989a9390d0a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Apr 2014 13:23:25 -0400 +Subject: [PATCH] systemd-python: use .hex instead of .get_hex() + +It turns out the latter got removed in Python 3. + +https://bugs.freedesktop.org/show_bug.cgi?id=77086 +--- + src/python-systemd/journal.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/python-systemd/journal.py src/python-systemd/journal.py +index 9c7e004..dd1f229 100644 +--- src/python-systemd/journal.py ++++ src/python-systemd/journal.py +@@ -293,7 +293,7 @@ class Reader(_Reader): + monotonic = monotonic.totalseconds() + monotonic = int(monotonic * 1000000) + if isinstance(bootid, _uuid.UUID): +- bootid = bootid.get_hex() ++ bootid = bootid.hex + return super(Reader, self).seek_monotonic(monotonic, bootid) + + def log_level(self, level): +@@ -314,7 +314,7 @@ class Reader(_Reader): + Equivalent to add_match(MESSAGE_ID=`messageid`). + """ + if isinstance(messageid, _uuid.UUID): +- messageid = messageid.get_hex() ++ messageid = messageid.hex + self.add_match(MESSAGE_ID=messageid) + + def this_boot(self, bootid=None): +@@ -346,7 +346,7 @@ class Reader(_Reader): + + def get_catalog(mid): + if isinstance(mid, _uuid.UUID): +- mid = mid.get_hex() ++ mid = mid.hex + return _get_catalog(mid) + + def _make_line(field, value): +-- +1.7.9.2 + diff --git a/0005-systemd-python-fix-failing-assert.patch b/0005-systemd-python-fix-failing-assert.patch new file mode 100644 index 00000000..9b0290d3 --- /dev/null +++ b/0005-systemd-python-fix-failing-assert.patch @@ -0,0 +1,26 @@ +From b65f24238b0627143916a9c7f8315483a9666676 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Apr 2014 13:29:50 -0400 +Subject: [PATCH] systemd-python: fix failing assert + +A parameter which was always null before, now get's set to +the module. +--- + src/python-systemd/_reader.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/python-systemd/_reader.c src/python-systemd/_reader.c +index 059b904..9a19a10 100644 +--- src/python-systemd/_reader.c ++++ src/python-systemd/_reader.c +@@ -902,7 +902,6 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) { + sd_id128_t id; + _cleanup_free_ char *msg = NULL; + +- assert(!self); + assert(args); + + if (!PyArg_ParseTuple(args, "z:get_catalog", &id_)) +-- +1.7.9.2 + diff --git a/portmap-wants-rpcbind-socket.patch b/portmap-wants-rpcbind-socket.patch new file mode 100644 index 00000000..58b9cfbc --- /dev/null +++ b/portmap-wants-rpcbind-socket.patch @@ -0,0 +1,7 @@ +--- systemd-210/units/rpcbind.target ++++ systemd-210/units/rpcbind.target 2014-04-08 07:21:55.438235838 +0000 +@@ -12,3 +12,4 @@ + Description=RPC Port Mapper + Documentation=man:systemd.special(7) + RefuseManualStart=yes ++Wants=rpcbind.socket diff --git a/systemd-mini.changes b/systemd-mini.changes index 6e6334de..e24f9c07 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de + +- Add patch portmap-wants-rpcbind-socket.patch to make sure that + rpcbind socket as well as service is up with the target +- Add or port upstram bugfix patches: + 0001-journal-fix-export-of-messages-containing-newlines.patch + 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + 0003-tty-ask-password-agent-return-negative-errno.patch + 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + 0005-systemd-python-fix-failing-assert.patch + ------------------------------------------------------------------- Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 1a24806d..765abd40 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -329,6 +329,16 @@ Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch # PATCH-FIX-USTREAM added at 2014/03/28 Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -362,6 +372,9 @@ Patch1999: systemd-install-compat_pkgconfig-always.patch Patch2000: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper Patch2001: let-linker-find-libudev-for-libdevmapper.patch +# PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target +Patch2002: portmap-wants-rpcbind-socket.patch + # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch @@ -689,6 +702,11 @@ cp %{SOURCE7} m4/ %patch169 -p0 %patch170 -p0 %patch171 -p0 +%patch172 -p0 +%patch173 -p0 +%patch174 -p0 +%patch175 -p0 +%patch176 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -705,6 +723,7 @@ cp %{SOURCE7} m4/ %patch1999 -p1 %patch2000 -p1 %patch2001 -p1 +%patch2002 -p1 # udev patches %patch1034 -p0 %patch1035 -p0 diff --git a/systemd.changes b/systemd.changes index 6e6334de..e24f9c07 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de + +- Add patch portmap-wants-rpcbind-socket.patch to make sure that + rpcbind socket as well as service is up with the target +- Add or port upstram bugfix patches: + 0001-journal-fix-export-of-messages-containing-newlines.patch + 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + 0003-tty-ask-password-agent-return-negative-errno.patch + 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + 0005-systemd-python-fix-failing-assert.patch + ------------------------------------------------------------------- Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index b5f4ba83..9d146544 100644 --- a/systemd.spec +++ b/systemd.spec @@ -324,6 +324,16 @@ Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch # PATCH-FIX-USTREAM added at 2014/03/28 Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -357,6 +367,9 @@ Patch1999: systemd-install-compat_pkgconfig-always.patch Patch2000: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper Patch2001: let-linker-find-libudev-for-libdevmapper.patch +# PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target +Patch2002: portmap-wants-rpcbind-socket.patch + # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch @@ -684,6 +697,11 @@ cp %{SOURCE7} m4/ %patch169 -p0 %patch170 -p0 %patch171 -p0 +%patch172 -p0 +%patch173 -p0 +%patch174 -p0 +%patch175 -p0 +%patch176 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -700,6 +718,7 @@ cp %{SOURCE7} m4/ %patch1999 -p1 %patch2000 -p1 %patch2001 -p1 +%patch2002 -p1 # udev patches %patch1034 -p0 %patch1035 -p0 From 55d1226d793f55739aefc375a877a9126cd9246dff30706b96ef0523f1197a49 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 12 Apr 2014 19:28:52 +0000 Subject: [PATCH 176/221] Accepting request 229621 from Base:System - Add two patches from hare@suse.com 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch 1012-Skip-persistent-device-link-creation-on-multipath-de.patch to solve bnc#872929 - Increase result size for programs stdout (bnc#867840). add: 1010-udev-increase-result-size-for-programs.patch - Update udev-generate-peristent-rule.sh to the latest version. - Clean-up spec file, re-arange patch to suit the setup, all udev patches start with 1XXX-*.{patch,diff}. - Rename: 0013-cdrom_id-use-the-old-MMC-fallback.patch to 1009-cdrom_id-use-the-old-MMC-fallback.patch - Rename: 1009-make-xsltproc-use-correct-ROFF-links.patch to 0009-make-xsltproc-use-correct-ROFF-links.patch - Rename: 1010-do-not-install-sulogin-unit-with-poweroff.patch to 0010-do-not-install-sulogin-unit-with-poweroff.patch - Rename: 1014-journald-with-journaling-FS.patch to 0014-journald-with-journaling-FS.patch - Rename: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch to 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch - Rename: 1019-make-completion-smart-to-be-able-to-redirect.patch to 0019-make-completion-smart-to-be-able-to-redirect.patch - Rename: 1022-systemd-tmpfiles-ownerkeep.patch to 0022-systemd-tmpfiles-ownerkeep.patch - Add two patches from hare@suse.com 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch 1012-Skip-persistent-device-link-creation-on-multipath-de.patch to solve bnc#872929 OBS-URL: https://build.opensuse.org/request/show/229621 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=181 --- ...make-xsltproc-use-correct-ROFF-links.patch | 0 ...t-install-sulogin-unit-with-poweroff.patch | 0 ... => 0014-journald-with-journaling-FS.patch | 0 ...ripts-know-about-Required-and-Should.patch | 0 ...pletion-smart-to-be-able-to-redirect.patch | 0 ...h => 0022-systemd-tmpfiles-ownerkeep.patch | 0 ...09-cdrom_id-use-the-old-MMC-fallback.patch | 4 +- ...ev-increase-result-size-for-programs.patch | 13 ++ ...kip-btrfs-check-if-devices-are-not-r.patch | 27 +++ ...device-link-creation-on-multipath-de.patch | 43 ++++ systemd-mini.changes | 31 +++ systemd-mini.spec | 112 ++++++----- systemd.changes | 31 +++ systemd.spec | 112 ++++++----- udev-generate-peristent-rule.sh | 187 ++++++++++++------ 15 files changed, 401 insertions(+), 159 deletions(-) rename 1009-make-xsltproc-use-correct-ROFF-links.patch => 0009-make-xsltproc-use-correct-ROFF-links.patch (100%) rename 1010-do-not-install-sulogin-unit-with-poweroff.patch => 0010-do-not-install-sulogin-unit-with-poweroff.patch (100%) rename 1014-journald-with-journaling-FS.patch => 0014-journald-with-journaling-FS.patch (100%) rename 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch => 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch (100%) rename 1019-make-completion-smart-to-be-able-to-redirect.patch => 0019-make-completion-smart-to-be-able-to-redirect.patch (100%) rename 1022-systemd-tmpfiles-ownerkeep.patch => 0022-systemd-tmpfiles-ownerkeep.patch (100%) rename 0013-cdrom_id-use-the-old-MMC-fallback.patch => 1009-cdrom_id-use-the-old-MMC-fallback.patch (96%) create mode 100644 1010-udev-increase-result-size-for-programs.patch create mode 100644 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch create mode 100644 1012-Skip-persistent-device-link-creation-on-multipath-de.patch diff --git a/1009-make-xsltproc-use-correct-ROFF-links.patch b/0009-make-xsltproc-use-correct-ROFF-links.patch similarity index 100% rename from 1009-make-xsltproc-use-correct-ROFF-links.patch rename to 0009-make-xsltproc-use-correct-ROFF-links.patch diff --git a/1010-do-not-install-sulogin-unit-with-poweroff.patch b/0010-do-not-install-sulogin-unit-with-poweroff.patch similarity index 100% rename from 1010-do-not-install-sulogin-unit-with-poweroff.patch rename to 0010-do-not-install-sulogin-unit-with-poweroff.patch diff --git a/1014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch similarity index 100% rename from 1014-journald-with-journaling-FS.patch rename to 0014-journald-with-journaling-FS.patch diff --git a/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch similarity index 100% rename from 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch rename to 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch diff --git a/1019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch similarity index 100% rename from 1019-make-completion-smart-to-be-able-to-redirect.patch rename to 0019-make-completion-smart-to-be-able-to-redirect.patch diff --git a/1022-systemd-tmpfiles-ownerkeep.patch b/0022-systemd-tmpfiles-ownerkeep.patch similarity index 100% rename from 1022-systemd-tmpfiles-ownerkeep.patch rename to 0022-systemd-tmpfiles-ownerkeep.patch diff --git a/0013-cdrom_id-use-the-old-MMC-fallback.patch b/1009-cdrom_id-use-the-old-MMC-fallback.patch similarity index 96% rename from 0013-cdrom_id-use-the-old-MMC-fallback.patch rename to 1009-cdrom_id-use-the-old-MMC-fallback.patch index 4703b76f..ada9292f 100644 --- a/0013-cdrom_id-use-the-old-MMC-fallback.patch +++ b/1009-cdrom_id-use-the-old-MMC-fallback.patch @@ -38,8 +38,8 @@ Suggested-by:Luca Miccini diff --git src/udev/cdrom_id/cdrom_id.c src/udev/cdrom_id/cdrom_id.c index 93467c2..33b2bc3 100644 ---- src/udev/cdrom_id/cdrom_id.c -+++ src/udev/cdrom_id/cdrom_id.c +--- a/src/udev/cdrom_id/cdrom_id.c ++++ b/src/udev/cdrom_id/cdrom_id.c @@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) if ((err != 0)) { info_scsi_cmd_err(udev, "GET CONFIGURATION", err); diff --git a/1010-udev-increase-result-size-for-programs.patch b/1010-udev-increase-result-size-for-programs.patch new file mode 100644 index 00000000..7eb2ea72 --- /dev/null +++ b/1010-udev-increase-result-size-for-programs.patch @@ -0,0 +1,13 @@ +Index: systemd-210/src/udev/udev-rules.c +=================================================================== +--- systemd-210.orig/src/udev/udev-rules.c ++++ systemd-210/src/udev/udev-rules.c +@@ -2027,7 +2027,7 @@ int udev_rules_apply_to_event(struct ude + case TK_M_PROGRAM: { + char program[UTIL_PATH_SIZE]; + char **envp; +- char result[UTIL_PATH_SIZE]; ++ char result[UTIL_LINE_SIZE]; + + free(event->program_result); + event->program_result = NULL; diff --git a/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch b/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch new file mode 100644 index 00000000..391592ee --- /dev/null +++ b/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch @@ -0,0 +1,27 @@ +From e26a5bb50b8aa741c5b2e57749d576c488e7ab32 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Apr 2014 11:10:41 +0200 +Subject: [PATCH 1/2] 64-btrfs.rules: skip btrfs check if devices are not ready + +If any devices are marked with 'SYSTEMD_READY=0' then +we shouldn't run any btrfs check on them. + +--- + rules/64-btrfs.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/rules/64-btrfs.rules b/rules/64-btrfs.rules +index fe01001..57631bc 100644 +--- a/rules/64-btrfs.rules ++++ b/rules/64-btrfs.rules +@@ -3,6 +3,7 @@ + SUBSYSTEM!="block", GOTO="btrfs_end" + ACTION=="remove", GOTO="btrfs_end" + ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end" ++ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end" + + # let the kernel know about this btrfs filesystem, and check if it is complete + IMPORT{builtin}="btrfs ready $devnode" +-- +1.8.1.4 + diff --git a/1012-Skip-persistent-device-link-creation-on-multipath-de.patch b/1012-Skip-persistent-device-link-creation-on-multipath-de.patch new file mode 100644 index 00000000..087dc3a0 --- /dev/null +++ b/1012-Skip-persistent-device-link-creation-on-multipath-de.patch @@ -0,0 +1,43 @@ +From f9e1ee09fadbd4fb146d4f7bb45a6212773dff63 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Apr 2014 11:14:20 +0200 +Subject: [PATCH 2/2] Skip persistent device link creation on multipath device + paths + +When a device is marked as a multipath device path by setting +DM_MULTIPATH_DEVICE_PATH="1" udev should not create any +persistent symlinks to that device. +Otherwise systemd will get confused about which device to use. + +--- + rules/60-persistent-storage.rules | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules +index 1208bd3..fd5bedd 100644 +--- a/rules/60-persistent-storage.rules ++++ b/rules/60-persistent-storage.rules +@@ -39,8 +39,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin + # scsi devices + KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi" + KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss" +-KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" +-KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" ++KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{DM_MULTIPATH_DEVICE_PATH}!="1", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" ++KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{DM_MULTIPATH_DEVICE_PATH}!="1", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" + + # scsi compat links for ATA devices + KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" +@@ -70,6 +70,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DAT + KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \ + IMPORT{builtin}="blkid --noraid" + ++# Skip blkid on multipath device paths ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="persistent_storage_end" ++ + # probe filesystem metadata of disks + KERNEL!="sr*", IMPORT{builtin}="blkid" + +-- +1.8.1.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index e24f9c07..8459a4a0 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Thu Apr 10 10:17:47 UTC 2014 - werner@suse.de + +- Add two patches from hare@suse.com + 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch + 1012-Skip-persistent-device-link-creation-on-multipath-de.patch + to solve bnc#872929 + +------------------------------------------------------------------- +Wed Apr 9 08:53:21 UTC 2014 - rmilasan@suse.com + +- Increase result size for programs stdout (bnc#867840). + add: 1010-udev-increase-result-size-for-programs.patch +- Update udev-generate-peristent-rule.sh to the latest version. +- Clean-up spec file, re-arange patch to suit the setup, all udev + patches start with 1XXX-*.{patch,diff}. +- Rename: 0013-cdrom_id-use-the-old-MMC-fallback.patch to + 1009-cdrom_id-use-the-old-MMC-fallback.patch +- Rename: 1009-make-xsltproc-use-correct-ROFF-links.patch to + 0009-make-xsltproc-use-correct-ROFF-links.patch +- Rename: 1010-do-not-install-sulogin-unit-with-poweroff.patch to + 0010-do-not-install-sulogin-unit-with-poweroff.patch +- Rename: 1014-journald-with-journaling-FS.patch to + 0014-journald-with-journaling-FS.patch +- Rename: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch to + 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +- Rename: 1019-make-completion-smart-to-be-able-to-redirect.patch to + 0019-make-completion-smart-to-be-able-to-redirect.patch +- Rename: 1022-systemd-tmpfiles-ownerkeep.patch to + 0022-systemd-tmpfiles-ownerkeep.patch + ------------------------------------------------------------------- Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 765abd40..25a939eb 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -339,47 +339,51 @@ Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch # PATCH-FIX-USTREAM added at 2014/04/08 Patch176: 0005-systemd-python-fix-failing-assert.patch -# PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) -Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch -# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) -Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch +# PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) +Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch +# PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) +Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch -Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch -Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch -# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch -Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch +Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch +Patch180: 0014-journald-with-journaling-FS.patch +# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +# PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch +Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch1020: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch -Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch +Patch183: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-SUSE 0022-systemd-tmpfiles-ownerkeep.patch +Patch184: 0022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-powerd-initctl-support.patch -Patch1023: systemd-powerd-initctl-support.patch +Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch -Patch1024: systemctl-set-default-target.patch +Patch186: systemctl-set-default-target.patch # PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) -Patch1025: prepare-suspend-to-disk.patch +Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) -Patch1026: boot-local-start.patch +Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager -Patch1027: avoid-random-hangs-on-timeouts-due-lost-cwd.patch - +Patch189: avoid-random-hangs-on-timeouts-due-lost-cwd.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch -Patch1999: systemd-install-compat_pkgconfig-always.patch +Patch190: systemd-install-compat_pkgconfig-always.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch2000: systemd-dbus-system-bus-address.patch +Patch191: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper -Patch2001: let-linker-find-libudev-for-libdevmapper.patch +Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target -Patch2002: portmap-wants-rpcbind-socket.patch - -# udev patches -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch +Patch193: portmap-wants-rpcbind-socket.patch # PATCH-FIX-USTREAM added at 2014/03/11 -Patch1035: 0007-dbus-suppress-duplicate-and-misleading-messages.patch +Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch + +# UDEV PATCHES +# ============ +# NOTE: all udev patches start with 1XXX-*.patch, do not use anything else. +# Udev patches mean: patches that affect udev code, src/{udev,libudev} +# nothing else, even if the patch might affect indirectly udev, as long +# as it's not changing the code of udev and libudev, then is not a udev +# patch. Further patches which add and/or changes udev rules. + # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -394,6 +398,14 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-SUSE increase result size for programs (bnc#867840) +Patch1010: 1010-udev-increase-result-size-for-programs.patch +# PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) +Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch +# PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) +Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -707,26 +719,26 @@ cp %{SOURCE7} m4/ %patch174 -p0 %patch175 -p0 %patch176 -p0 -%patch1009 -p1 -%patch1010 -p1 -%patch1012 -p1 -%patch1014 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1999 -p1 -%patch2000 -p1 -%patch2001 -p1 -%patch2002 -p1 +%patch177 -p1 +%patch178 -p1 +%patch179 -p1 +%patch180 -p1 +%patch181 -p1 +%patch182 -p1 +%patch183 -p1 +%patch184 -p1 +%patch185 -p1 +%patch186 -p1 +%patch187 -p1 +%patch188 -p1 +%patch189 -p1 +%patch190 -p1 +%patch191 -p1 +%patch192 -p1 +%patch193 -p1 +%patch194 -p0 + # udev patches -%patch1034 -p0 -%patch1035 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -736,6 +748,10 @@ cp %{SOURCE7} m4/ %if 0%{?suse_version} <= 1310 %patch1008 -p1 %endif +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index e24f9c07..8459a4a0 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Thu Apr 10 10:17:47 UTC 2014 - werner@suse.de + +- Add two patches from hare@suse.com + 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch + 1012-Skip-persistent-device-link-creation-on-multipath-de.patch + to solve bnc#872929 + +------------------------------------------------------------------- +Wed Apr 9 08:53:21 UTC 2014 - rmilasan@suse.com + +- Increase result size for programs stdout (bnc#867840). + add: 1010-udev-increase-result-size-for-programs.patch +- Update udev-generate-peristent-rule.sh to the latest version. +- Clean-up spec file, re-arange patch to suit the setup, all udev + patches start with 1XXX-*.{patch,diff}. +- Rename: 0013-cdrom_id-use-the-old-MMC-fallback.patch to + 1009-cdrom_id-use-the-old-MMC-fallback.patch +- Rename: 1009-make-xsltproc-use-correct-ROFF-links.patch to + 0009-make-xsltproc-use-correct-ROFF-links.patch +- Rename: 1010-do-not-install-sulogin-unit-with-poweroff.patch to + 0010-do-not-install-sulogin-unit-with-poweroff.patch +- Rename: 1014-journald-with-journaling-FS.patch to + 0014-journald-with-journaling-FS.patch +- Rename: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch to + 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +- Rename: 1019-make-completion-smart-to-be-able-to-redirect.patch to + 0019-make-completion-smart-to-be-able-to-redirect.patch +- Rename: 1022-systemd-tmpfiles-ownerkeep.patch to + 0022-systemd-tmpfiles-ownerkeep.patch + ------------------------------------------------------------------- Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 9d146544..2a626ba8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -334,47 +334,51 @@ Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch # PATCH-FIX-USTREAM added at 2014/04/08 Patch176: 0005-systemd-python-fix-failing-assert.patch -# PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) -Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch -# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) -Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch +# PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) +Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch +# PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) +Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch -Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch -Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch -# PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch -Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch +Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +# PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch +Patch180: 0014-journald-with-journaling-FS.patch +# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +# PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch +Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch1020: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch -Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch +Patch183: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-SUSE 0022-systemd-tmpfiles-ownerkeep.patch +Patch184: 0022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-powerd-initctl-support.patch -Patch1023: systemd-powerd-initctl-support.patch +Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch -Patch1024: systemctl-set-default-target.patch +Patch186: systemctl-set-default-target.patch # PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) -Patch1025: prepare-suspend-to-disk.patch +Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) -Patch1026: boot-local-start.patch +Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager -Patch1027: avoid-random-hangs-on-timeouts-due-lost-cwd.patch - +Patch189: avoid-random-hangs-on-timeouts-due-lost-cwd.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch -Patch1999: systemd-install-compat_pkgconfig-always.patch +Patch190: systemd-install-compat_pkgconfig-always.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch2000: systemd-dbus-system-bus-address.patch +Patch191: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper -Patch2001: let-linker-find-libudev-for-libdevmapper.patch +Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target -Patch2002: portmap-wants-rpcbind-socket.patch - -# udev patches -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch +Patch193: portmap-wants-rpcbind-socket.patch # PATCH-FIX-USTREAM added at 2014/03/11 -Patch1035: 0007-dbus-suppress-duplicate-and-misleading-messages.patch +Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch + +# UDEV PATCHES +# ============ +# NOTE: all udev patches start with 1XXX-*.patch, do not use anything else. +# Udev patches mean: patches that affect udev code, src/{udev,libudev} +# nothing else, even if the patch might affect indirectly udev, as long +# as it's not changing the code of udev and libudev, then is not a udev +# patch. Further patches which add and/or changes udev rules. + # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -389,6 +393,14 @@ Patch1006: 1006-udev-always-rename-network.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-SUSE increase result size for programs (bnc#867840) +Patch1010: 1010-udev-increase-result-size-for-programs.patch +# PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) +Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch +# PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) +Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -702,26 +714,26 @@ cp %{SOURCE7} m4/ %patch174 -p0 %patch175 -p0 %patch176 -p0 -%patch1009 -p1 -%patch1010 -p1 -%patch1012 -p1 -%patch1014 -p1 -%patch1018 -p1 -%patch1019 -p1 -%patch1020 -p1 -%patch1022 -p1 -%patch1023 -p1 -%patch1024 -p1 -%patch1025 -p1 -%patch1026 -p1 -%patch1027 -p1 -%patch1999 -p1 -%patch2000 -p1 -%patch2001 -p1 -%patch2002 -p1 +%patch177 -p1 +%patch178 -p1 +%patch179 -p1 +%patch180 -p1 +%patch181 -p1 +%patch182 -p1 +%patch183 -p1 +%patch184 -p1 +%patch185 -p1 +%patch186 -p1 +%patch187 -p1 +%patch188 -p1 +%patch189 -p1 +%patch190 -p1 +%patch191 -p1 +%patch192 -p1 +%patch193 -p1 +%patch194 -p0 + # udev patches -%patch1034 -p0 -%patch1035 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -731,6 +743,10 @@ cp %{SOURCE7} m4/ %if 0%{?suse_version} <= 1310 %patch1008 -p1 %endif +%patch1009 -p1 +%patch1010 -p1 +%patch1011 -p1 +%patch1012 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/udev-generate-peristent-rule.sh b/udev-generate-peristent-rule.sh index 4c83919a..89956e18 100644 --- a/udev-generate-peristent-rule.sh +++ b/udev-generate-peristent-rule.sh @@ -9,17 +9,19 @@ # # 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 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # # This script run manually by user, will generate a persistent rule for # a given network interface to rename it to new interface name. # -prj=${0##*/} +_prj="$(basename $0 2>/dev/null)" +prj="${_prj%.*}" +ver="0.2" log_info() { @@ -29,28 +31,33 @@ log_info() log_error() { - local msg=$1 + local msg="$1" echo "$prj: $msg" >&2 } usage() { - set -f cat << EOF -$prj: udev persistent rule generator +$prj: udev persistent rule generator script Usage: $prj [OPTION] ... - -h show this help - -m generate the persistent rule based on interface MAC address - -p generate the persistent rule based on interface PCI slot - -v be verbose - -c current interface name (ex: "ip a s") - -n new interface name (ex: net0) - -o where to write the new generate rule (default: /dev/stdout) - prefered location is /etc/udev/rules.d/70-persistent-net.rules + -h Show this help + -l List available interfaces + -m Generate the persistent rule based on interface MAC address + default option, if nothing is specified + -p Generate the persistent rule based on interface PCI slot + -v Be more verbose + -V Output the version number + -c [INTERFACE] Current interface name (ex: ip link) + only needed for retrieving information + -n [INTERFACE] New interface name (ex: net0) + -o [FILE] Where to write the new generate rule (default: /dev/stdout) + prefered location is /etc/udev/rules.d/70-persistent-net.rules Example: + $prj -v -c enp0s4 -n lan0 + or $prj -m -c enp0s4 -n net0 -o /etc/udev/rules.d/70-persistent-net.rules or $prj -p -c wlp3s0 -n wlan0 -o /etc/udev/rules.d/50-mynet.rules @@ -60,22 +67,19 @@ EOF display_note() { - cat <<'EOF' - -NOTE: Using the generate persistent rule might mean you will need to do extra -work to ensure that it will work accordingly. This mean, regenerating the -initramfs/initrd image and/or using 'net.ifnames=0' option at boot time. - -In openSUSE/SUSE, the user will need to regenerate the initramfs/initrd image, -but usually there is no need for 'net.ifnames=0' option if the persistent rule -is available in initramfs/initrd image. + cat << EOF +NOTE: Using the generate persistent rule might mean you will need to do extra work to ensure +that it will work accordingly. This mean, regenerating the initramfs/initrd image and/or using +'net.ifnames=0' option at boot time. +In openSUSE/SUSE, the user will need to regenerate the initramfs/initrd image, but usually there +is no need for 'net.ifnames=0' option if the persistent rule is available in initramfs/initrd image. EOF } get_pci() { - local path=$1 + local path="$1" local pci="" if [ -L "$path/device" ]; then @@ -87,7 +91,7 @@ get_pci() get_pci_id() { - local path=$1 + local path="$1" local pci_id="" if [ -r "$path/device/uevent" ]; then @@ -99,7 +103,7 @@ get_pci_id() get_macaddr() { - local path=$1 + local path="$1" local macaddr="" if [ -r "$path/address" ]; then @@ -110,7 +114,7 @@ get_macaddr() get_type() { - local path=$1 + local path="$1" local dev_type="" if [ -r "$path/type" ]; then @@ -121,7 +125,7 @@ get_type() get_dev_id() { - local path=$1 + local path="$1" local dev_id="" if [ -r "$path/dev_id" ]; then @@ -132,7 +136,7 @@ get_dev_id() get_devtype() { - local path=$1 + local path="$1" local devtype="" if [ -r "$path/uevent" ]; then local _devtype="$(cat $path/uevent|grep ^DEVTYPE 2>/dev/null)" @@ -143,7 +147,7 @@ get_devtype() get_subsystem() { - local path=$1 + local path="$1" local subsystem="" if [ -L "$path/subsystem" ]; then @@ -153,9 +157,21 @@ get_subsystem() echo $subsystem } +get_parent_subsystem() +{ + local path="$1" + local subsystem="" + + if [ -L "$path/device/subsystem" ]; then + local subsystem_link="$(readlink -f $path/device/subsystem 2>/dev/null)" + subsystem="$(basename $subsystem_link 2>/dev/null)" + fi + echo $subsystem +} + get_driver() { - local path=$1 + local path="$1" local driver="" if [ -L "$path/device/driver" ]; then @@ -167,7 +183,7 @@ get_driver() valid_mac() { - local macaddr=$1 + local macaddr="$1" local valid_macaddr="" if [ -n "$macaddr" ]; then @@ -178,9 +194,11 @@ valid_mac() generate_comment() { - local pci_id=$1 - local driver=$2 - local output=$3 + local pci_id="$1" + local driver="$2" + local output="$3" + local device_type="$4" + local _type="" if [ -z "$pci_id" ]; then log_error "\$pci_id empty." @@ -192,20 +210,27 @@ generate_comment() log_error "\$output empty." exit 1 else - echo "# PCI device $pci_id ($driver) with official udev name $interface renamed to unsupported $new_interface" >> $output + if [ "$device_type" == "pci" ]; then + _type="PCI" + elif [ "$device_type" == "usb" ]; then + _type="USB" + else + _type="Unknown" + fi + echo "# $_type device $pci_id ($driver)" >> $output fi } generate_rule() { - local _subsystem=$1 - local _mac=$2 - local _pci=$3 - local _dev_id=$4 - local _dev_type=$5 - local _kernel=$6 - local _interface=$7 - local output=$8 + local _subsystem="$1" + local _mac="$2" + local _pci="$3" + local _dev_id="$4" + local _dev_type="$5" + local _kernel="$6" + local _interface="$7" + local output="$8" if [ -z "$_subsystem" ]; then log_error "\$_subsystem empty." @@ -238,26 +263,57 @@ ATTR{dev_id}==\"$_dev_id\", ATTR{type}==\"$_dev_type\", KERNEL==\"$_kernel\", NA fi } +list_adapters() +{ + declare -a netdev + local count=0 + local _netdev="" + local _dev="" + + for _dev in $SYSPATH/*; do + if [ -L "$_dev/device" ]; then + _dev="$(basename $_dev 2>/dev/null)" + netdev[$count]="$_dev" + count=$((count + 1)) + fi + done + + echo "Found $count network interfaces:" + for _netdev in "${netdev[@]}"; do + _macaddr="$(get_macaddr $SYSPATH/$_netdev)" + _pcislot="$(get_pci $SYSPATH/$_netdev)" + echo "I: INTERFACE: $_netdev" + echo "I: MACADDR: $_macaddr" + echo "I: PCI: $_pcislot" + done +} + if [ $# -eq 0 ]; then usage log_error "missing option(s)." exit 1 fi +SYSPATH="/sys/class/net" + use_mac=0 use_pci=0 use_verbose=0 -while getopts "hmpvc:n:o:" opt; do +while getopts "hlmpvVc:n:o:" opt; do case "$opt" in h) usage; exit 0;; + l) + list_adapters; exit 0;; m) use_mac=1 ;; p) use_pci=1 ;; v) use_verbose=1 ;; + V) + echo "$prj $ver"; exit 0;; c) ifcur="$OPTARG" ;; n) @@ -269,14 +325,18 @@ while getopts "hmpvc:n:o:" opt; do esac done +if [[ "$use_mac" -eq 0 ]] && [[ "$use_pci" -eq 0 ]]; then + use_mac=1 +fi + if [[ "$use_mac" -eq 1 ]] && [[ "$use_pci" -eq 1 ]]; then log_error "generating a persistent rule can be done only using one of the option, -m or -p, not both." exit 1 fi -outfile=$output +outfile="$output" if [ -z "$output" ]; then - outfile=/dev/stdout + outfile="/dev/stdout" else dir="$(dirname $outfile 2>/dev/null)" tmpfile="$dir/.tmp_file" @@ -293,7 +353,7 @@ else fi fi -interface=$ifcur +interface="$ifcur" if [ -z "$interface" ]; then log_error "current interface must be specified." exit 1 @@ -303,7 +363,7 @@ elif [ "$interface" == "lo" ]; then fi [ "$use_verbose" -eq 1 ] && echo "I: INTERFACE=$interface" -new_interface=$ifnew +new_interface="$ifnew" if [ -z "$new_interface" ]; then log_error "new interface must be specified." exit 1 @@ -313,7 +373,7 @@ elif [ "$new_interface" == "lo" ]; then fi [ "$use_verbose" -eq 1 ] && echo "I: INTERFACE_NEW=$new_interface" -path="/sys/class/net/$interface" +path="$SYSPATH/$interface" if [ ! -d "$path" ]; then log_error "devpath $path not a directory." exit 1 @@ -325,6 +385,13 @@ if [ -n "$devtype" ]; then [ "$use_verbose" -eq 1 ] && echo "I: DEVTYPE=$devtype" fi +parent_subsystem="$(get_parent_subsystem $path)" +if [ -z "$parent_subsystem" ]; then + log_error "unable to retrieve parent subsystem for interface $interface." + exit 1 +fi +[ "$use_verbose" -eq 1 ] && echo "I: PARENT_SUBSYSTEM=$parent_subsystem" + subsystem="$(get_subsystem $path)" if [ -z "$subsystem" ]; then log_error "unable to retrieve subsystem for interface $interface." @@ -334,8 +401,7 @@ fi pci_id="$(get_pci_id $path)" if [ -z "$pci_id" ]; then - log_error "unable to retrieve PCI_ID for interface $interface." - exit 1 + pci_id="0x:0x" fi [ "$use_verbose" -eq 1 ] && echo "I: PCI_ID=$pci_id" @@ -382,23 +448,22 @@ if [ -z "$dev_type" ]; then fi [ "$use_verbose" -eq 1 ] && echo "I: TYPE=$dev_type" -if [ "$devtype" == "wlan" ]; then - kernel="wlan*" -else - kernel="eth*" +kernel="eth*" +if [ -n "$devtype" ]; then + if [ "$devtype" == "wlan" ]; then + kernel="wlan*" + fi fi if [ -n "$output" ]; then - echo "Persistent rule saved in "$outfile"" - echo - generate_comment "$pci_id" "$driver" "$output" + echo "Persistent rule written to "$outfile"" + generate_comment "$pci_id" "$driver" "$outfile" "$parent_subsystem" fi -set -f if [ "$use_mac" -eq 1 ]; then generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" if [ -n "$output" ]; then - generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" "$output" + generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" "$outfile" fi elif [ "$use_pci" -eq 1 ]; then generate_rule "$subsystem" "none" "$pci" "$dev_id" "$dev_type" "$kernel" "$new_interface" From 74b2bf3650ae1a807fd5ca0ee5bd7e4cfef332d4c8caa943005b5e5316f78d1c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 26 Apr 2014 09:45:02 +0000 Subject: [PATCH 177/221] Accepting request 230483 from Base:System - Extend avoid-divide-by-zero-sigtrap.patch to make the crash handler know about SIGTRAP and SIGSYS - Add avoid-divide-by-zero-sigtrap.patch which fixes bnc#867663 that is a divide by zero on a jobless system - Use latest regenerate-initrd rpm macros (fate#313506) - Add rescue-emergency-target-conflicts.patch to avoid that emergency and rescue sulogin are fighting on console - Modify systemd-sleep-grub to let hybrid-sleep.target work even on XEN, changes from Thomas Blume (bnc#873432) - Add backported upstream patch 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch - Add patch systemd-detect-xendom.patch from Thomas Blume to be able to detect XEN dom0 as well as domU - systemd conflicts with sysvinit, ven if the package systemd-sysvinit does already conflict with sysvinit-init (bnc#873444) - Extend avoid-divide-by-zero-sigtrap.patch to make the crash handler know about SIGTRAP and SIGSYS - Add avoid-divide-by-zero-sigtrap.patch which fixes bnc#867663 that is a divide by zero on a jobless system - Use latest regenerate-initrd rpm macros (fate#313506) - Add rescue-emergency-target-conflicts.patch to avoid that emergency and rescue sulogin are fighting on console OBS-URL: https://build.opensuse.org/request/show/230483 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=182 --- ...t-of-messages-logged-to-dev-kmsg-whe.patch | 27 ++++++++++++ avoid-divide-by-zero-sigtrap.patch | 25 +++++++++++ rescue-emergency-target-conflicts.patch | 20 +++++++++ systemd-detect-xendom.patch | 35 ++++++++++++++++ systemd-mini.changes | 35 ++++++++++++++++ systemd-mini.spec | 42 +++++++++++++++++++ systemd-sleep-grub | 6 +-- systemd.changes | 35 ++++++++++++++++ systemd.spec | 42 +++++++++++++++++++ 9 files changed, 264 insertions(+), 3 deletions(-) create mode 100644 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch create mode 100644 avoid-divide-by-zero-sigtrap.patch create mode 100644 rescue-emergency-target-conflicts.patch create mode 100644 systemd-detect-xendom.patch diff --git a/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch b/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch new file mode 100644 index 00000000..9d10cced --- /dev/null +++ b/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch @@ -0,0 +1,27 @@ +Based on b2103dccb354de3f38c49c14ccb637bdf665e40f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 5 Apr 2014 13:59:01 -0400 +Subject: [PATCH] reduce the amount of messages logged to /dev/kmsg when + "debug" is specified + +--- + src/core/main.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-04-14 13:50:48.490814738 +0000 +@@ -412,12 +412,8 @@ static int parse_proc_cmdline_word(const + if (arg_show_status == _SHOW_STATUS_UNSET) + arg_show_status = SHOW_STATUS_AUTO; + } else if (streq(word, "debug")) { +- /* Log to kmsg, the journal socket will fill up before the +- * journal is started and tools running during that time +- * will block with every log message for for 60 seconds, +- * before they give up. */ +- log_set_max_level(LOG_DEBUG); +- log_set_target(detect_container(NULL) > 0 ? LOG_TARGET_CONSOLE : LOG_TARGET_KMSG); ++ if (detect_container(NULL) > 0) ++ log_set_target(LOG_TARGET_CONSOLE); + } else if (!in_initrd()) { + unsigned i; + diff --git a/avoid-divide-by-zero-sigtrap.patch b/avoid-divide-by-zero-sigtrap.patch new file mode 100644 index 00000000..4f676e87 --- /dev/null +++ b/avoid-divide-by-zero-sigtrap.patch @@ -0,0 +1,25 @@ +Nasty bug reported on bnc#867663 + +--- systemd-210/src/core/manager.c ++++ systemd-210/src/core/manager.c 2014-04-17 13:29:07.366236714 +0000 +@@ -1780,7 +1780,8 @@ static int manager_dispatch_jobs_in_prog + assert(m); + assert(source); + +- manager_print_jobs_in_progress(m); ++ if (m->n_running_jobs > 0) ++ manager_print_jobs_in_progress(m); + + next = now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_PERIOD_USEC; + r = sd_event_source_set_time(source, next); +--- systemd-210/src/shared/def.h ++++ systemd-210/src/shared/def.h 2014-04-17 13:47:10.946234983 +0000 +@@ -37,7 +37,7 @@ + + #define SYSTEMD_CGROUP_CONTROLLER "name=systemd" + +-#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT ++#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS + #define SIGNALS_IGNORE SIGPIPE + + #define DIGITS "0123456789" diff --git a/rescue-emergency-target-conflicts.patch b/rescue-emergency-target-conflicts.patch new file mode 100644 index 00000000..f4f15988 --- /dev/null +++ b/rescue-emergency-target-conflicts.patch @@ -0,0 +1,20 @@ +--- systemd-210/units/emergency.target ++++ systemd-210/units/emergency.target 2014-04-15 11:11:18.618235831 +0000 +@@ -10,4 +10,5 @@ Description=Emergency Mode + Documentation=man:systemd.special(7) + Requires=emergency.service + After=emergency.service ++Conflicts=getty.target rescue.target + AllowIsolate=yes +--- systemd-210/units/rescue.target ++++ systemd-210/units/rescue.target 2014-04-15 11:14:40.606808928 +0000 +@@ -10,7 +10,8 @@ Description=Rescue Mode + Documentation=man:systemd.special(7) + Requires=sysinit.target rescue.service + After=sysinit.target rescue.service +-Conflicts=getty.target ++Conflicts=getty.target emergency.target ++Before=emergency.target + AllowIsolate=yes + + [Install] diff --git a/systemd-detect-xendom.patch b/systemd-detect-xendom.patch new file mode 100644 index 00000000..7c02a07a --- /dev/null +++ b/systemd-detect-xendom.patch @@ -0,0 +1,35 @@ +diff -Naur systemd-210/src/shared/virt.c systemd-210-mod/src/shared/virt.c +--- systemd-210/src/shared/virt.c 2014-02-24 15:38:03.909784909 +0100 ++++ systemd-210/src/shared/virt.c 2014-04-10 13:48:05.568766957 +0200 +@@ -149,7 +149,7 @@ + + /* Returns a short identifier for the various VM implementations */ + int detect_vm(const char **id) { +- _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL; ++ _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL; + static thread_local int cached_found = -1; + static thread_local const char *cached_id = NULL; + const char *_id = NULL; +@@ -166,13 +166,18 @@ + /* Try high-level hypervisor sysfs file first: + * + * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */ +- r = read_one_line_file("/sys/hypervisor/type", &hvtype); ++ r = read_one_line_file("/proc/xen/capabilities", &domcap); + if (r >= 0) { +- if (streq(hvtype, "xen")) { +- _id = "xen"; ++ if (strstr(domcap, "control_d")) { ++ r = 0; ++ _id = "xen-dom0"; ++ } else { + r = 1; +- goto finish; ++ _id = "xen-domU"; + } ++ ++ goto finish; ++ + } else if (r != -ENOENT) + return r; + diff --git a/systemd-mini.changes b/systemd-mini.changes index 8459a4a0..f6234b04 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Thu Apr 17 13:56:31 UTC 2014 - werner@suse.de + +- Extend avoid-divide-by-zero-sigtrap.patch to make the crash + handler know about SIGTRAP and SIGSYS + +------------------------------------------------------------------- +Thu Apr 17 13:37:06 UTC 2014 - werner@suse.de + +- Add avoid-divide-by-zero-sigtrap.patch which fixes bnc#867663 + that is a divide by zero on a jobless system + +------------------------------------------------------------------- +Wed Apr 16 10:17:13 UTC 2014 - werner@suse.de + +- Use latest regenerate-initrd rpm macros (fate#313506) +- Add rescue-emergency-target-conflicts.patch to avoid that + emergency and rescue sulogin are fighting on console + +------------------------------------------------------------------- +Tue Apr 15 12:19:24 UTC 2014 - werner@suse.de + +- Modify systemd-sleep-grub to let hybrid-sleep.target work even + on XEN, changes from Thomas Blume (bnc#873432) + +------------------------------------------------------------------- +Mon Apr 14 13:55:36 UTC 2014 - werner@suse.de + +- Add backported upstream patch + 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +- Add patch systemd-detect-xendom.patch from Thomas Blume + to be able to detect XEN dom0 as well as domU +- systemd conflicts with sysvinit, ven if the package systemd-sysvinit + does already conflict with sysvinit-init (bnc#873444) + ------------------------------------------------------------------- Thu Apr 10 10:17:47 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 25a939eb..abc3731a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -45,6 +45,7 @@ BuildRequires: audit-devel BuildRequires: binutils-gold %endif %endif +BuildRequires: config(suse-module-tools) %if ! 0%{?bootstrap} BuildRequires: docbook-xsl-stylesheets %endif @@ -104,6 +105,9 @@ BuildRequires: pkgconfig(libseccomp) %endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) +%if 0%{?suse_version} > 1310 +Conflicts: sysvinit +%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs @@ -375,6 +379,14 @@ Patch192: let-linker-find-libudev-for-libdevmapper.patch Patch193: portmap-wants-rpcbind-socket.patch # PATCH-FIX-USTREAM added at 2014/03/11 Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/14 +Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +# PATCH-FIX-SUSE Detect XEN dom0 as well as domU +Patch196: systemd-detect-xendom.patch +# PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console +Patch197: rescue-emergency-target-conflicts.patch +# PATCH-FIX-SUSE Avoid a divide by zero sigtrap +Patch198: avoid-divide-by-zero-sigtrap.patch # UDEV PATCHES # ============ @@ -463,6 +475,17 @@ Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} +Requires(post): sed +Requires(post): systemd +%if %{defined regenerate_initrd_post} +Requires(post): coreutils +Requires(postun): coreutils +Requires(posttrans): suse-module-tools +Requires(posttrans): /sbin/mkinitrd +%else +Requires(post): /sbin/mkinitrd +Requires(postun): /sbin/mkinitrd +%endif Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 Conflicts: filesystem < 11.5 @@ -737,6 +760,10 @@ cp %{SOURCE7} m4/ %patch192 -p1 %patch193 -p1 %patch194 -p0 +%patch195 -p0 +%patch196 -p1 +%patch197 -p1 +%patch198 -p1 # udev patches %patch1001 -p1 @@ -1121,9 +1148,14 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" +%if %{defined regenerate_initrd_post} + else + %regenerate_initrd_post +%else elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : +%endif fi fi @@ -1135,12 +1167,22 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" +%if %{defined regenerate_initrd_post} + else + %regenerate_initrd_post +%else elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : +%endif fi fi +%if %{defined regenerate_initrd_post} +%posttrans -n %{udevpkgname} +%regenerate_initrd_posttrans +%endif + %post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig %postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig diff --git a/systemd-sleep-grub b/systemd-sleep-grub index beeed387..5cd8bef3 100644 --- a/systemd-sleep-grub +++ b/systemd-sleep-grub @@ -50,10 +50,10 @@ getkernels-grub2() fi ;; - linux*noresume*) + linux*noresume*|module*xen*noresume*) echo " Skipping grub entry #${J}, because it has the noresume option" >&2 ;; - linux*root=*) + linux*root=*|module*xen*root=*) local ROOT ROOT=${LINE#*root=} DUMMY=($ROOT) @@ -77,7 +77,7 @@ getkernels-grub2() # DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO let I++ ;; - linux*) + linux*|module*xen*) # a kernel without "root="? We better skip that one... echo " Skipping grub entry #${J}, because it has no root= option" >&2 ;; diff --git a/systemd.changes b/systemd.changes index 8459a4a0..f6234b04 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Thu Apr 17 13:56:31 UTC 2014 - werner@suse.de + +- Extend avoid-divide-by-zero-sigtrap.patch to make the crash + handler know about SIGTRAP and SIGSYS + +------------------------------------------------------------------- +Thu Apr 17 13:37:06 UTC 2014 - werner@suse.de + +- Add avoid-divide-by-zero-sigtrap.patch which fixes bnc#867663 + that is a divide by zero on a jobless system + +------------------------------------------------------------------- +Wed Apr 16 10:17:13 UTC 2014 - werner@suse.de + +- Use latest regenerate-initrd rpm macros (fate#313506) +- Add rescue-emergency-target-conflicts.patch to avoid that + emergency and rescue sulogin are fighting on console + +------------------------------------------------------------------- +Tue Apr 15 12:19:24 UTC 2014 - werner@suse.de + +- Modify systemd-sleep-grub to let hybrid-sleep.target work even + on XEN, changes from Thomas Blume (bnc#873432) + +------------------------------------------------------------------- +Mon Apr 14 13:55:36 UTC 2014 - werner@suse.de + +- Add backported upstream patch + 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +- Add patch systemd-detect-xendom.patch from Thomas Blume + to be able to detect XEN dom0 as well as domU +- systemd conflicts with sysvinit, ven if the package systemd-sysvinit + does already conflict with sysvinit-init (bnc#873444) + ------------------------------------------------------------------- Thu Apr 10 10:17:47 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 2a626ba8..e31a1834 100644 --- a/systemd.spec +++ b/systemd.spec @@ -40,6 +40,7 @@ BuildRequires: audit-devel BuildRequires: binutils-gold %endif %endif +BuildRequires: config(suse-module-tools) %if ! 0%{?bootstrap} BuildRequires: docbook-xsl-stylesheets %endif @@ -99,6 +100,9 @@ BuildRequires: pkgconfig(libseccomp) %endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) +%if 0%{?suse_version} > 1310 +Conflicts: sysvinit +%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs @@ -370,6 +374,14 @@ Patch192: let-linker-find-libudev-for-libdevmapper.patch Patch193: portmap-wants-rpcbind-socket.patch # PATCH-FIX-USTREAM added at 2014/03/11 Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/14 +Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +# PATCH-FIX-SUSE Detect XEN dom0 as well as domU +Patch196: systemd-detect-xendom.patch +# PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console +Patch197: rescue-emergency-target-conflicts.patch +# PATCH-FIX-SUSE Avoid a divide by zero sigtrap +Patch198: avoid-divide-by-zero-sigtrap.patch # UDEV PATCHES # ============ @@ -458,6 +470,17 @@ Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} +Requires(post): sed +Requires(post): systemd +%if %{defined regenerate_initrd_post} +Requires(post): coreutils +Requires(postun): coreutils +Requires(posttrans): suse-module-tools +Requires(posttrans): /sbin/mkinitrd +%else +Requires(post): /sbin/mkinitrd +Requires(postun): /sbin/mkinitrd +%endif Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 Conflicts: filesystem < 11.5 @@ -732,6 +755,10 @@ cp %{SOURCE7} m4/ %patch192 -p1 %patch193 -p1 %patch194 -p0 +%patch195 -p0 +%patch196 -p1 +%patch197 -p1 +%patch198 -p1 # udev patches %patch1001 -p1 @@ -1116,9 +1143,14 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" +%if %{defined regenerate_initrd_post} + else + %regenerate_initrd_post +%else elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : +%endif fi fi @@ -1130,12 +1162,22 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" +%if %{defined regenerate_initrd_post} + else + %regenerate_initrd_post +%else elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : +%endif fi fi +%if %{defined regenerate_initrd_post} +%posttrans -n %{udevpkgname} +%regenerate_initrd_posttrans +%endif + %post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig %postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig From fb793851c75af6e5b37284c7fa7e100a345de78c1c424d93be1c60341183c791 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 2 May 2014 18:51:24 +0000 Subject: [PATCH 178/221] Accepting request 232406 from Base:System - Add patch shut-up-annoying-assertion-monotonic-clock-message.patch to avoid annyoing messages on failing dual_timestamp_is_set in the kernel's message ring buffer - Update udev-generate-peristent-rule.sh from latest git - Modify and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to avoid also ANSI escape sequences for busy jobs on s390 - Add or port upstram bugfix patches: 0001-bash-completion-fix-__get_startable_units.patch 0002-sysctl-replaces-some-slashes-with-dots.patch 0003-delta-do-not-use-unicode-chars-in-C-locale.patch 0004-implement-a-union-to-pad-out-file_handle.patch - Add patch respect-nfs-bg-option.patch from Thomas Blume: System fails to boot if nfs mounts get added to fstab (bnc#874665) - Do not use runtime PM for some IBM consoles (bnc#868931) 1013-no-runtime-PM-for-IBM-consoles.patch - Add patch shut-up-annoying-assertion-monotonic-clock-message.patch to avoid annyoing messages on failing dual_timestamp_is_set in the kernel's message ring buffer - Update udev-generate-peristent-rule.sh from latest git - Modify and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to avoid also ANSI escape sequences for busy jobs on s390 OBS-URL: https://build.opensuse.org/request/show/232406 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=183 --- ...s390_con3270_disable_ANSI_colour_esc.patch | 160 ++++++++++++++---- ...completion-fix-__get_startable_units.patch | 25 +++ ...sctl-replaces-some-slashes-with-dots.patch | 97 +++++++++++ ...do-not-use-unicode-chars-in-C-locale.patch | 134 +++++++++++++++ ...ement-a-union-to-pad-out-file_handle.patch | 117 +++++++++++++ 1013-no-runtime-PM-for-IBM-consoles.patch | 11 ++ respect-nfs-bg-option.patch | 19 +++ ...ng-assertion-monotonic-clock-message.patch | 38 +++++ systemd-mini.changes | 36 ++++ systemd-mini.spec | 21 +++ systemd.changes | 36 ++++ systemd.spec | 21 +++ udev-generate-peristent-rule.sh | 19 +++ 13 files changed, 703 insertions(+), 31 deletions(-) create mode 100644 0001-bash-completion-fix-__get_startable_units.patch create mode 100644 0002-sysctl-replaces-some-slashes-with-dots.patch create mode 100644 0003-delta-do-not-use-unicode-chars-in-C-locale.patch create mode 100644 0004-implement-a-union-to-pad-out-file_handle.patch create mode 100644 1013-no-runtime-PM-for-IBM-consoles.patch create mode 100644 respect-nfs-bg-option.patch create mode 100644 shut-up-annoying-assertion-monotonic-clock-message.patch diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index e772cbae..87a67090 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,8 +1,9 @@ --- - rules/99-systemd.rules.in | 2 - - src/getty-generator/getty-generator.c | 2 - - src/shared/util.c | 62 ++++++++++++++++++++++++++++++++-- - 3 files changed, 61 insertions(+), 5 deletions(-) + rules/99-systemd.rules.in | 2 - + src/core/manager.c | 24 +++++++++++--- + src/shared/util.c | 77 ++++++++++++++++++++++++++++++++++++++++++++-- + src/shared/util.h | 1 + 4 files changed, 95 insertions(+), 9 deletions(-) --- systemd-208/rules/99-systemd.rules.in +++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 @@ -15,34 +16,92 @@ KERNEL=="vport*", TAG+="systemd" ---- systemd-208/src/shared/util.c -+++ systemd-208/src/shared/util.c 2014-01-31 11:54:07.222235280 +0000 -@@ -2967,6 +2967,7 @@ int status_vprintf(const char *status, b - struct iovec iovec[6] = {}; - int n = 0; - static bool prev_ephemeral; -+ static int cached_on_tty = -1; +--- systemd-210/src/core/manager.c ++++ systemd-210/src/core/manager.c 2014-04-30 10:51:43.398735332 +0000 +@@ -110,7 +110,7 @@ static int manager_watch_jobs_in_progres - assert(format); + #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) -@@ -2980,6 +2981,51 @@ int status_vprintf(const char *status, b - if (fd < 0) - return fd; +-static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) { ++static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) { + char *p = buffer; -+ if (_unlikely_(cached_on_tty < 0)) { -+ cached_on_tty = isatty(fd) > 0; -+ if (cached_on_tty) { -+ const char *e = getenv("TERM"); -+ if (e && (strcmp(e, "dumb") == 0 || strcmp(e, "ibm327x") == 0)) { -+ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); -+ if (r < 0 || !mode || !streq(mode, "3270")) -+ cached_on_tty = 0; -+ } + assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); +@@ -119,12 +119,14 @@ static void draw_cylon(char buffer[], si + if (pos > 1) { + if (pos > 2) + p = mempset(p, ' ', pos-2); +- p = stpcpy(p, ANSI_RED_ON); ++ if (ansi_console) ++ p = stpcpy(p, ANSI_RED_ON); + *p++ = '*'; + } + + if (pos > 0 && pos <= width) { +- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON); ++ if (ansi_console) ++ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON); + *p++ = '*'; + } + +@@ -135,7 +137,8 @@ static void draw_cylon(char buffer[], si + *p++ = '*'; + if (pos < width-1) + p = mempset(p, ' ', width-1-pos); +- strcpy(p, ANSI_HIGHLIGHT_OFF); ++ if (ansi_console) ++ strcpy(p, ANSI_HIGHLIGHT_OFF); + } + } + +@@ -150,6 +153,7 @@ void manager_flip_auto_status(Manager *m + } + + static void manager_print_jobs_in_progress(Manager *m) { ++ static int is_ansi_console = -1; + _cleanup_free_ char *job_of_n = NULL; + Iterator i; + Job *j; +@@ -174,10 +178,20 @@ static void manager_print_jobs_in_progre + assert(counter == print_nr + 1); + assert(j); + ++ if (_unlikely_(is_ansi_console < 0)) { ++ int fd = open_terminal("/dev/console", O_RDONLY|O_NOCTTY|O_CLOEXEC); ++ if (fd < 0) ++ is_ansi_console = 0; ++ else { ++ is_ansi_console = (int)ansi_console(fd); ++ close(fd); + } + } + -+ if (status && !cached_on_tty) { + cylon_pos = m->jobs_in_progress_iteration % 14; + if (cylon_pos >= 8) + cylon_pos = 14 - cylon_pos; +- draw_cylon(cylon, sizeof(cylon), 6, cylon_pos); ++ draw_cylon(cylon, sizeof(cylon), 6, cylon_pos, (bool)is_ansi_console); + + m->jobs_in_progress_iteration++; + +--- systemd-210/src/shared/util.c ++++ systemd-210/src/shared/util.c 2014-04-30 10:39:17.154736438 +0000 +@@ -2886,6 +2886,7 @@ int status_vprintf(const char *status, b + struct iovec iovec[6] = {}; + int n = 0; + static bool prev_ephemeral; ++ static int is_ansi_console = -1; + + assert(format); + +@@ -2899,6 +2900,41 @@ int status_vprintf(const char *status, b + if (fd < 0) + return fd; + ++ if (_unlikely_(is_ansi_console < 0)) ++ is_ansi_console = (int)ansi_console(fd); ++ ++ if (status && !is_ansi_console) { + const char *esc, *ptr; + esc = strchr(status, 0x1B); + if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) { @@ -77,14 +136,14 @@ if (ellipse) { char *e; size_t emax, sl; -@@ -3002,8 +3048,12 @@ int status_vprintf(const char *status, b +@@ -2921,8 +2957,12 @@ int status_vprintf(const char *status, b } } - if (prev_ephemeral) - IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); + if (prev_ephemeral) { -+ if (cached_on_tty) ++ if (is_ansi_console) + IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); + else + IOVEC_SET_STRING(iovec[n++], "\r"); @@ -92,7 +151,7 @@ prev_ephemeral = ephemeral; if (status) { -@@ -3267,8 +3317,14 @@ void columns_lines_cache_reset(int signu +@@ -3169,12 +3209,43 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; @@ -101,10 +160,49 @@ cached_on_tty = isatty(STDOUT_FILENO) > 0; + if (cached_on_tty) { + const char *e = getenv("TERM"); -+ if (e && (strcmp(e, "dumb") == 0)) -+ cached_on_tty = 0; ++ if (!e) ++ return cached_on_tty; ++ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) { ++ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); ++ if (r < 0 || !mode || !streq(mode, "3270")) ++ cached_on_tty = 0; ++ } + } + } return cached_on_tty; } + ++bool ansi_console(int fd) { ++ static int cached_ansi_console = -1; ++ ++ if (_unlikely_(cached_ansi_console < 0)) { ++ cached_ansi_console = isatty(fd) > 0; ++ if (cached_ansi_console) { ++ const char *e = getenv("TERM"); ++ if (e && (streq(e, "dumb") || strneq(e, "ibm3", 4))) { ++ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); ++ if (r < 0 || !mode || !streq(mode, "3270")) ++ cached_ansi_console = 0; ++ } ++ } ++ } ++ ++ return cached_ansi_console; ++} ++ + int running_in_chroot(void) { + struct stat a = {}, b = {}; + +--- systemd-210/src/shared/util.h ++++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000 +@@ -418,6 +418,7 @@ unsigned lines(void); + void columns_lines_cache_reset(int _unused_ signum); + + bool on_tty(void); ++bool ansi_console(int fd); + + static inline const char *ansi_highlight(void) { + return on_tty() ? ANSI_HIGHLIGHT_ON : ""; diff --git a/0001-bash-completion-fix-__get_startable_units.patch b/0001-bash-completion-fix-__get_startable_units.patch new file mode 100644 index 00000000..815e6abd --- /dev/null +++ b/0001-bash-completion-fix-__get_startable_units.patch @@ -0,0 +1,25 @@ +From a163b64c4b08e8a4ad39a9a295acf3d1634024a3 Mon Sep 17 00:00:00 2001 +From: Dan Kilman +Date: Sun, 13 Apr 2014 18:06:13 +0300 +Subject: [PATCH] bash completion: fix __get_startable_units + +--- + shell-completion/bash/systemctl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl +index 992e52d..e1c8420 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -56,7 +56,7 @@ __get_all_units () { __systemctl $1 list-units --all \ + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } + __get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ +- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed " ]] && echo " $a"; done; }; } ++ | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } + __get_failed_units () { __systemctl $1 list-units \ + | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } + __get_enabled_units () { __systemctl $1 list-unit-files \ +-- +1.7.9.2 + diff --git a/0002-sysctl-replaces-some-slashes-with-dots.patch b/0002-sysctl-replaces-some-slashes-with-dots.patch new file mode 100644 index 00000000..d46fd449 --- /dev/null +++ b/0002-sysctl-replaces-some-slashes-with-dots.patch @@ -0,0 +1,97 @@ +From 2e573fcf8754fdfe0db0a783b1631ec1679b063a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Apr 2014 21:33:46 -0400 +Subject: [PATCH] sysctl: replaces some slashes with dots + +It turns out that plain sysctl understands a.b/c syntax to write to +/proc/sys/a/b.c. Support this for compatibility. + +https://bugs.freedesktop.org/show_bug.cgi?id=77466 +--- + man/sysctl.d.xml | 29 +++++++++++++++++++++-------- + src/sysctl/sysctl.c | 18 ++++++++++++++++-- + 2 files changed, 37 insertions(+), 10 deletions(-) + +diff --git man/sysctl.d.xml man/sysctl.d.xml +index 00a857b..db53b49 100644 +--- man/sysctl.d.xml ++++ man/sysctl.d.xml +@@ -68,13 +68,26 @@ + The configuration files contain a list of + variable assignments, separated by newlines. Empty + lines and lines whose first non-whitespace character +- is # or ; are ignored. +- +- Note that both / and . are accepted as label +- separators within sysctl variable +- names. kernel.domainname=foo and +- kernel/domainname=foo hence are +- entirely equivalent. ++ is # or ; are ++ ignored. ++ ++ Note that either / or ++ . may be used as separators within ++ sysctl variable names. If the first separator is a ++ slash, remaining slashes and dots are left intact. If ++ the first separator is a dot, dots and slashes are ++ interchanged. kernel.domainname=foo ++ and kernel/domainname=foo are ++ equivalent and will cause foo to ++ be written to ++ /proc/sys/kernel/domainname. ++ Either ++ net.ipv4.conf.enp3s0/200.forwarding ++ or ++ net/ipv4/conf/enp3s0.200/forwarding ++ may be used to refer to ++ /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. ++ + + Each configuration file shall be named in the + style of program.conf. +@@ -109,7 +122,7 @@ + early on boot. The network interface-specific options + will also be applied individually for each network + interface as it shows up in the system. (More +- specifically, that is ++ specifically, + net.ipv4.conf.*, + net.ipv6.conf.*, + net.ipv4.neigh.* and net.ipv6.neigh.*) +diff --git src/sysctl/sysctl.c src/sysctl/sysctl.c +index 283eefe..06defa5 100644 +--- src/sysctl/sysctl.c ++++ src/sysctl/sysctl.c +@@ -48,12 +48,26 @@ static const char conf_file_dirs[] = + #endif + ; + +-static char *normalize_sysctl(char *s) { ++static char* normalize_sysctl(char *s) { + char *n; + +- for (n = s; *n; n++) ++ n = strpbrk(s, "/."); ++ /* If the first separator is a slash, the path is ++ * assumed to be normalized and slashes remain slashes ++ * and dots remains dots. */ ++ if (!n || *n == '/') ++ return s; ++ ++ /* Otherwise, dots become slashes and slashes become ++ * dots. Fun. */ ++ while (n) { + if (*n == '.') + *n = '/'; ++ else ++ *n = '.'; ++ ++ n = strpbrk(n + 1, "/."); ++ } + + return s; + } +-- +1.7.9.2 + diff --git a/0003-delta-do-not-use-unicode-chars-in-C-locale.patch b/0003-delta-do-not-use-unicode-chars-in-C-locale.patch new file mode 100644 index 00000000..f7360178 --- /dev/null +++ b/0003-delta-do-not-use-unicode-chars-in-C-locale.patch @@ -0,0 +1,134 @@ +From 00a5cc3a63c125633e822f39efd9c32223169f62 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Apr 2014 23:33:41 -0400 +Subject: [PATCH] delta: do not use unicode chars in C locale + +https://bugzilla.redhat.com/show_bug.cgi?id=1088418 +--- + src/delta/delta.c | 40 +++++++++++++++++++++++++--------------- + 1 file changed, 25 insertions(+), 15 deletions(-) + +diff --git src/delta/delta.c src/delta/delta.c +index 369f8f8..8fc37c5 100644 +--- src/delta/delta.c ++++ src/delta/delta.c +@@ -85,6 +85,10 @@ static void pager_open_if_enabled(void) { + pager_open(false); + } + ++static inline const char* arrow(void) { ++ return is_locale_utf8() ? "→" : "->"; ++} ++ + static int equivalent(const char *a, const char *b) { + _cleanup_free_ char *x = NULL, *y = NULL; + +@@ -103,8 +107,9 @@ static int notify_override_masked(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_MASKED)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -112,8 +117,9 @@ static int notify_override_equivalent(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_EQUIVALENT)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -121,8 +127,9 @@ static int notify_override_redirected(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_REDIRECTED)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -130,8 +137,9 @@ static int notify_override_overridden(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_OVERRIDDEN)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -139,8 +147,9 @@ static int notify_override_extended(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_EXTENDED)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -241,7 +250,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const + return -ENOMEM; + d = p + strlen(toppath) + 1; + +- log_debug("Adding at top: %s → %s", d, p); ++ log_debug("Adding at top: %s %s %s", d, arrow(), p); + k = hashmap_put(top, d, p); + if (k >= 0) { + p = strdup(p); +@@ -253,7 +262,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const + return k; + } + +- log_debug("Adding at bottom: %s → %s", d, p); ++ log_debug("Adding at bottom: %s %s %s", d, arrow(), p); + free(hashmap_remove(bottom, d)); + k = hashmap_put(bottom, d, p); + if (k < 0) { +@@ -276,7 +285,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const + if (!p) + return -ENOMEM; + +- log_debug("Adding to drops: %s → %s → %s", unit, basename(p), p); ++ log_debug("Adding to drops: %s %s %s %s %s", ++ unit, arrow(), basename(p), arrow(), p); + k = hashmap_put(h, basename(p), p); + if (k < 0) { + free(p); +@@ -328,7 +338,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch + if (!p) + return -ENOMEM; + +- log_debug("Adding at top: %s → %s", basename(p), p); ++ log_debug("Adding at top: %s %s %s", basename(p), arrow(), p); + k = hashmap_put(top, basename(p), p); + if (k >= 0) { + p = strdup(p); +@@ -339,7 +349,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch + return k; + } + +- log_debug("Adding at bottom: %s → %s", basename(p), p); ++ log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p); + free(hashmap_remove(bottom, basename(p))); + k = hashmap_put(bottom, basename(p), p); + if (k < 0) { +-- +1.7.9.2 + diff --git a/0004-implement-a-union-to-pad-out-file_handle.patch b/0004-implement-a-union-to-pad-out-file_handle.patch new file mode 100644 index 00000000..cbb924cc --- /dev/null +++ b/0004-implement-a-union-to-pad-out-file_handle.patch @@ -0,0 +1,117 @@ +From 370c860f748d149097710dc7952a64f627db9de7 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sat, 19 Apr 2014 13:22:35 -0400 +Subject: [PATCH] implement a union to pad out file_handle + +Cases where name_to_handle_at is used allocated the full struct to be +MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong +since handle_bytes should describe the length of the flexible array +member and not the whole struct. + +Define a union type which includes sufficient padding to allow +assignment of MAX_HANDLE_SZ to be correct. +--- + src/libudev/libudev-monitor.c | 6 ++---- + src/readahead/readahead-common.c | 6 ++---- + src/shared/util.h | 6 ++++++ + src/tmpfiles/tmpfiles.c | 11 ++++------- + 4 files changed, 14 insertions(+), 15 deletions(-) + +diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c +index 3f7436b..0a2ab82 100644 +--- src/libudev/libudev-monitor.c ++++ src/libudev/libudev-monitor.c +@@ -108,15 +108,13 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev) + + /* we consider udev running when /dev is on devtmpfs */ + static bool udev_has_devtmpfs(struct udev *udev) { +- struct file_handle *h; ++ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; + int mount_id; + _cleanup_fclose_ FILE *f = NULL; + char line[LINE_MAX], *e; + int r; + +- h = alloca(MAX_HANDLE_SZ); +- h->handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(AT_FDCWD, "/dev", h, &mount_id, 0); ++ r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); + if (r < 0) + return false; + +diff --git src/readahead/readahead-common.c src/readahead/readahead-common.c +index 5ffa88b..49679fc 100644 +--- src/readahead/readahead-common.c ++++ src/readahead/readahead-common.c +@@ -75,7 +75,7 @@ int fs_on_ssd(const char *p) { + if (major(st.st_dev) == 0) { + _cleanup_fclose_ FILE *f = NULL; + int mount_id; +- struct file_handle *h; ++ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; + + /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd. + * +@@ -83,9 +83,7 @@ int fs_on_ssd(const char *p) { + * and then lookup the mount ID in mountinfo to find + * the mount options. */ + +- h = alloca(MAX_HANDLE_SZ); +- h->handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW); ++ r = name_to_handle_at(AT_FDCWD, p, &h.handle, &mount_id, AT_SYMLINK_FOLLOW); + if (r < 0) + return false; + +diff --git src/shared/util.h src/shared/util.h +index 900f1cf..891848a 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -22,6 +22,7 @@ + ***/ + + #include ++#include + #include + #include + #include +@@ -883,3 +884,8 @@ int fd_warn_permissions(const char *path + + unsigned long personality_from_string(const char *p); + const char *personality_to_string(unsigned long); ++ ++union file_handle_union { ++ struct file_handle handle; ++ char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; ++}; +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index 33e7cbc..04b472d 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -217,19 +217,16 @@ static bool unix_socket_alive(const char *fn) { + } + + static int dir_is_mount_point(DIR *d, const char *subdir) { +- struct file_handle *h; ++ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ }; + int mount_id_parent, mount_id; + int r_p, r; + +- h = alloca(MAX_HANDLE_SZ); +- +- h->handle_bytes = MAX_HANDLE_SZ; +- r_p = name_to_handle_at(dirfd(d), ".", h, &mount_id_parent, 0); ++ r_p = name_to_handle_at(dirfd(d), ".", &h.handle, &mount_id_parent, 0); + if (r_p < 0) + r_p = -errno; + +- h->handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(dirfd(d), subdir, h, &mount_id, 0); ++ h.handle.handle_bytes = MAX_HANDLE_SZ; ++ r = name_to_handle_at(dirfd(d), subdir, &h.handle, &mount_id, 0); + if (r < 0) + r = -errno; + +-- +1.7.9.2 + diff --git a/1013-no-runtime-PM-for-IBM-consoles.patch b/1013-no-runtime-PM-for-IBM-consoles.patch new file mode 100644 index 00000000..164ca499 --- /dev/null +++ b/1013-no-runtime-PM-for-IBM-consoles.patch @@ -0,0 +1,11 @@ +--- systemd-210/rules/42-usb-hid-pm.rules.old 2014-04-23 10:54:31.694485615 +0200 ++++ systemd-210/rules/42-usb-hid-pm.rules 2014-04-23 10:55:21.969423056 +0200 +@@ -22,8 +22,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{id + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="0000", TEST=="power/control", ATTR{power/control}="auto" + + # IBM remote access +-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b3", ATTR{idProduct}=="4001", TEST=="power/control", ATTR{power/control}="auto" +-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b3", ATTR{idProduct}=="4002", TEST=="power/control", ATTR{power/control}="auto" + ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto" + + # Raritan Computer, Inc KVM. diff --git a/respect-nfs-bg-option.patch b/respect-nfs-bg-option.patch new file mode 100644 index 00000000..ccf7cea4 --- /dev/null +++ b/respect-nfs-bg-option.patch @@ -0,0 +1,19 @@ +--- systemd-210/src/fstab-generator/fstab-generator.c 2014-02-17 15:49:21.070855641 +0100 ++++ systemd-210/src/fstab-generator/fstab-generator.c 2014-04-25 16:25:13.256106126 +0200 +@@ -255,10 +255,12 @@ + "SourcePath=%s\n", + source); + +- if (post && !noauto && !nofail && !automount) +- fprintf(f, +- "Before=%s\n", +- post); ++ if (post && !noauto && !nofail && !automount) { ++ if (!streq(type, "nfs") || (streq(type, "nfs") && !strstr(opts, "bg"))) ++ fprintf(f, ++ "Before=%s\n", ++ post); ++ } + + r = add_fsck(f, what, where, type, passno); + if (r < 0) diff --git a/shut-up-annoying-assertion-monotonic-clock-message.patch b/shut-up-annoying-assertion-monotonic-clock-message.patch new file mode 100644 index 00000000..ecdf4bc0 --- /dev/null +++ b/shut-up-annoying-assertion-monotonic-clock-message.patch @@ -0,0 +1,38 @@ +Stop flooding the kernel's message ring buffer with useless +messages on dual_timestamp_is_set is failed. This is a backport +from upstream code. + +--- + src/libsystemd/sd-event/sd-event.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- systemd-210/src/libsystemd/sd-event/sd-event.c ++++ systemd-210/src/libsystemd/sd-event/sd-event.c 2014-05-02 10:01:23.366235185 +0000 +@@ -2191,9 +2191,12 @@ _public_ int sd_event_exit(sd_event *e, + _public_ int sd_event_get_now_realtime(sd_event *e, uint64_t *usec) { + assert_return(e, -EINVAL); + assert_return(usec, -EINVAL); +- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); + assert_return(!event_pid_changed(e), -ECHILD); + ++ /* If we haven't run yet, just get the actual time */ ++ if (!dual_timestamp_is_set(&e->timestamp)) ++ return -ENODATA; ++ + *usec = e->timestamp.realtime; + return 0; + } +@@ -2201,9 +2204,12 @@ _public_ int sd_event_get_now_realtime(s + _public_ int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec) { + assert_return(e, -EINVAL); + assert_return(usec, -EINVAL); +- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); + assert_return(!event_pid_changed(e), -ECHILD); + ++ /* If we haven't run yet, just get the actual time */ ++ if (!dual_timestamp_is_set(&e->timestamp)) ++ return -ENODATA; ++ + *usec = e->timestamp.monotonic; + return 0; + } diff --git a/systemd-mini.changes b/systemd-mini.changes index f6234b04..6df92168 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Fri May 2 10:12:26 UTC 2014 - werner@suse.de + +- Add patch shut-up-annoying-assertion-monotonic-clock-message.patch + to avoid annyoing messages on failing dual_timestamp_is_set in the + kernel's message ring buffer + +------------------------------------------------------------------- +Wed Apr 30 12:14:32 UTC 2014 - werner@suse.de + +- Update udev-generate-peristent-rule.sh from latest git + +------------------------------------------------------------------- +Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de + +- Modify and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to avoid also ANSI escape sequences for busy jobs on s390 + +------------------------------------------------------------------- +Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de + +- Add or port upstram bugfix patches: + 0001-bash-completion-fix-__get_startable_units.patch + 0002-sysctl-replaces-some-slashes-with-dots.patch + 0003-delta-do-not-use-unicode-chars-in-C-locale.patch + 0004-implement-a-union-to-pad-out-file_handle.patch +- Add patch respect-nfs-bg-option.patch from Thomas Blume: + System fails to boot if nfs mounts get added to fstab (bnc#874665) + +------------------------------------------------------------------- +Wed Apr 23 11:46:41 UTC 2014 - oneukum@suse.com + +- Do not use runtime PM for some IBM consoles (bnc#868931) + 1013-no-runtime-PM-for-IBM-consoles.patch + ------------------------------------------------------------------- Thu Apr 17 13:56:31 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index abc3731a..1e2d56fe 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -387,6 +387,18 @@ Patch196: systemd-detect-xendom.patch Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch199: 0001-bash-completion-fix-__get_startable_units.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch +# PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) +Patch203: respect-nfs-bg-option.patch +# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. +Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch # UDEV PATCHES # ============ @@ -418,6 +430,8 @@ Patch1010: 1010-udev-increase-result-size-for-programs.patch Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch +# PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) +Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -764,6 +778,12 @@ cp %{SOURCE7} m4/ %patch196 -p1 %patch197 -p1 %patch198 -p1 +%patch199 -p0 +%patch200 -p0 +%patch201 -p0 +%patch202 -p0 +%patch203 -p1 +%patch204 -p1 # udev patches %patch1001 -p1 @@ -779,6 +799,7 @@ cp %{SOURCE7} m4/ %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 +%patch1013 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index f6234b04..6df92168 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Fri May 2 10:12:26 UTC 2014 - werner@suse.de + +- Add patch shut-up-annoying-assertion-monotonic-clock-message.patch + to avoid annyoing messages on failing dual_timestamp_is_set in the + kernel's message ring buffer + +------------------------------------------------------------------- +Wed Apr 30 12:14:32 UTC 2014 - werner@suse.de + +- Update udev-generate-peristent-rule.sh from latest git + +------------------------------------------------------------------- +Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de + +- Modify and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to avoid also ANSI escape sequences for busy jobs on s390 + +------------------------------------------------------------------- +Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de + +- Add or port upstram bugfix patches: + 0001-bash-completion-fix-__get_startable_units.patch + 0002-sysctl-replaces-some-slashes-with-dots.patch + 0003-delta-do-not-use-unicode-chars-in-C-locale.patch + 0004-implement-a-union-to-pad-out-file_handle.patch +- Add patch respect-nfs-bg-option.patch from Thomas Blume: + System fails to boot if nfs mounts get added to fstab (bnc#874665) + +------------------------------------------------------------------- +Wed Apr 23 11:46:41 UTC 2014 - oneukum@suse.com + +- Do not use runtime PM for some IBM consoles (bnc#868931) + 1013-no-runtime-PM-for-IBM-consoles.patch + ------------------------------------------------------------------- Thu Apr 17 13:56:31 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index e31a1834..9744e0e9 100644 --- a/systemd.spec +++ b/systemd.spec @@ -382,6 +382,18 @@ Patch196: systemd-detect-xendom.patch Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch199: 0001-bash-completion-fix-__get_startable_units.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch +# PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) +Patch203: respect-nfs-bg-option.patch +# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. +Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch # UDEV PATCHES # ============ @@ -413,6 +425,8 @@ Patch1010: 1010-udev-increase-result-size-for-programs.patch Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch +# PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) +Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -759,6 +773,12 @@ cp %{SOURCE7} m4/ %patch196 -p1 %patch197 -p1 %patch198 -p1 +%patch199 -p0 +%patch200 -p0 +%patch201 -p0 +%patch202 -p0 +%patch203 -p1 +%patch204 -p1 # udev patches %patch1001 -p1 @@ -774,6 +794,7 @@ cp %{SOURCE7} m4/ %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 +%patch1013 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/udev-generate-peristent-rule.sh b/udev-generate-peristent-rule.sh index 89956e18..8ffdd567 100644 --- a/udev-generate-peristent-rule.sh +++ b/udev-generate-peristent-rule.sh @@ -192,6 +192,18 @@ valid_mac() echo $valid_macaddr } +valid_dev_type() +{ + local dev_type="$1" + + case "$dev_type" in + [0-32]) + echo "$dev_type" ;; + *) + echo "invalid" ;; + esac +} + generate_comment() { local pci_id="$1" @@ -272,6 +284,10 @@ list_adapters() for _dev in $SYSPATH/*; do if [ -L "$_dev/device" ]; then + local _dev_type="$(cat $_dev/type 2>/dev/null)" + if [ "$(valid_dev_type $_dev_type)" == "invalid" ]; then + continue; + fi _dev="$(basename $_dev 2>/dev/null)" netdev[$count]="$_dev" count=$((count + 1)) @@ -445,6 +461,9 @@ dev_type="$(get_type $path)" if [ -z "$dev_type" ]; then log_error "unable to retrieve dev_type for interface $interface." exit 1 +elif [ "$(valid_dev_type $dev_type)" == "invalid" ]; then + log_info "$interface not a supported device." + exit 1 fi [ "$use_verbose" -eq 1 ] && echo "I: TYPE=$dev_type" From 78482cb567e4a54aa5d88a1f014ab6ffd35c4381d431123875ad90ea345c0c7c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 6 May 2014 11:39:41 +0000 Subject: [PATCH 179/221] Accepting request 232729 from Base:System - Port upstream patch 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch back to 210 - Add patch keep-crypt-password-prompt.patch from Thomas Blume to fix bnc#875502 - fails to boot when swap space is encrypted - Port upstream patch set for net_id back in patch upstream-net_id-changes.patch - Port upstream patch 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch back to 210 - Add patch keep-crypt-password-prompt.patch from Thomas Blume to fix bnc#875502 - fails to boot when swap space is encrypted - Port upstream patch set for net_id back in patch upstream-net_id-changes.patch OBS-URL: https://build.opensuse.org/request/show/232729 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=184 --- ...sage-append-fix-uninitialized-memory.patch | 111 ++++++++++++++ keep-crypt-password-prompt.patch | 43 ++++++ systemd-mini.changes | 11 ++ systemd-mini.spec | 11 ++ systemd.changes | 11 ++ systemd.spec | 11 ++ upstream-net_id-changes.patch | 135 ++++++++++++++++++ 7 files changed, 333 insertions(+) create mode 100644 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch create mode 100644 keep-crypt-password-prompt.patch create mode 100644 upstream-net_id-changes.patch diff --git a/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch b/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch new file mode 100644 index 00000000..cde6a3da --- /dev/null +++ b/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch @@ -0,0 +1,111 @@ +Backport of 7ca1d31964a2553f7bd011bc10ac42e0ebc1f975 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 2 May 2014 22:29:18 +0200 +Subject: [PATCH] sd-rtnl-message: append - fix uninitialized memory + +We were not properly clearing the padding at the front of some containers. +--- + src/libsystemd/sd-rtnl/rtnl-message.c | 42 +++++++++++++++++++++------------- + 1 file changed, 27 insertions(+), 15 deletions(-) + +--- src/libsystemd/sd-rtnl/rtnl-message.c ++++ src/libsystemd/sd-rtnl/rtnl-message.c 2014-05-05 13:33:01.998235340 +0000 +@@ -314,24 +314,28 @@ int sd_rtnl_message_link_get_flags(sd_rt + /* If successful the updated message will be correctly aligned, if + unsuccessful the old message is untouched. */ + static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void *data, size_t data_length) { +- uint32_t rta_length, message_length; ++ uint32_t rta_length; ++ size_t message_length, padding_length; + struct nlmsghdr *new_hdr; + struct rtattr *rta; + char *padding; + unsigned i; ++ int offset; + + assert(m); + assert(m->hdr); + assert(!m->sealed); + assert(NLMSG_ALIGN(m->hdr->nlmsg_len) == m->hdr->nlmsg_len); +- assert(!data || data_length > 0); +- assert(data || m->n_containers < RTNL_CONTAINER_DEPTH); ++ assert(!data || data_length); ++ ++ /* get offset of the new attribute */ ++ offset = m->hdr->nlmsg_len; + + /* get the size of the new rta attribute (with padding at the end) */ + rta_length = RTA_LENGTH(data_length); + + /* get the new message size (with padding at the end) */ +- message_length = m->hdr->nlmsg_len + RTA_ALIGN(rta_length); ++ message_length = offset + RTA_ALIGN(rta_length); + + /* realloc to fit the new attribute */ + new_hdr = realloc(m->hdr, message_length); +@@ -340,32 +344,35 @@ static int add_rtattr(sd_rtnl_message *m + m->hdr = new_hdr; + + /* get pointer to the attribute we are about to add */ +- rta = (struct rtattr *) ((uint8_t *) m->hdr + m->hdr->nlmsg_len); ++ rta = (struct rtattr *) ((uint8_t *) m->hdr + offset); + + /* if we are inside containers, extend them */ + for (i = 0; i < m->n_containers; i++) +- GET_CONTAINER(m, i)->rta_len += message_length - m->hdr->nlmsg_len; ++ GET_CONTAINER(m, i)->rta_len += message_length - offset; + + /* fill in the attribute */ + rta->rta_type = type; + rta->rta_len = rta_length; +- if (!data) { +- /* this is the start of a new container */ +- m->container_offsets[m->n_containers ++] = m->hdr->nlmsg_len; +- } else { ++ if (data) + /* we don't deal with the case where the user lies about the type + * and gives us too little data (so don't do that) +- */ ++ */ + padding = mempcpy(RTA_DATA(rta), data, data_length); +- /* make sure also the padding at the end of the message is initialized */ +- memzero(padding, +- (uint8_t *) m->hdr + message_length - (uint8_t *) padding); ++ else { ++ /* if no data was passed, make sure we still initialize the padding ++ note that we can have data_length > 0 (used by some containers) */ ++ padding = RTA_DATA(rta); ++ data_length = 0; + } + ++ /* make sure also the padding at the end of the message is initialized */ ++ padding_length = (uint8_t*)m->hdr + message_length - (uint8_t*)padding; ++ memzero(padding, padding_length); ++ + /* update message size */ + m->hdr->nlmsg_len = message_length; + +- return 0; ++ return offset; + } + + int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const char *data) { +@@ -498,6 +505,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_m + + assert_return(m, -EINVAL); + assert_return(!m->sealed, -EPERM); ++ assert_return(m->n_containers < RTNL_CONTAINER_DEPTH, -ERANGE); + + r = sd_rtnl_message_get_type(m, &rtm_type); + if (r < 0) +@@ -548,6 +556,10 @@ int sd_rtnl_message_append_u32(sd_rtnl_m + if (r < 0) + return r; + ++ m->container_offsets[m->n_containers ++] = r; ++ ++ m->container_offsets[m->n_containers ++] = r; ++ + return 0; + } + diff --git a/keep-crypt-password-prompt.patch b/keep-crypt-password-prompt.patch new file mode 100644 index 00000000..3caffec8 --- /dev/null +++ b/keep-crypt-password-prompt.patch @@ -0,0 +1,43 @@ +--- systemd-210/src/core/manager.c 2014-05-05 11:46:17.700483956 +0200 ++++ systemd-210/src/core/manager.c 2014-05-05 13:29:13.296503646 +0200 +@@ -152,6 +152,29 @@ + } + } + ++static int check_for_password_prompt(void) { ++ DIR *d; ++ struct dirent *de; ++ ++ if (!(d = opendir("/run/systemd/ask-password"))) { ++ log_error("opendir(): %m"); ++ ++ if (errno == ENOENT) ++ return 1; ++ ++ return -errno; ++ } ++ ++ while ((de = readdir(d))) { ++ if (startswith(de->d_name, "ask.")) { ++ closedir(d); ++ return 0; ++ } ++ } ++ closedir(d); ++ return 1; ++} ++ + static void manager_print_jobs_in_progress(Manager *m) { + static int is_ansi_console = -1; + _cleanup_free_ char *job_of_n = NULL; +@@ -195,6 +217,10 @@ + + m->jobs_in_progress_iteration++; + ++ //don't overwrite the crypt password prompt with job status messages ++ if (check_for_password_prompt() == 0); ++ return 0; ++ + if (m->n_running_jobs > 1) + if (asprintf(&job_of_n, "(%u of %u) ", counter, m->n_running_jobs) < 0) + job_of_n = NULL; diff --git a/systemd-mini.changes b/systemd-mini.changes index 6df92168..8bd691bd 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon May 5 14:02:16 UTC 2014 - werner@suse.de + +- Port upstream patch + 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch + back to 210 +- Add patch keep-crypt-password-prompt.patch from Thomas Blume + to fix bnc#875502 - fails to boot when swap space is encrypted +- Port upstream patch set for net_id back in patch + upstream-net_id-changes.patch + ------------------------------------------------------------------- Fri May 2 10:12:26 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 1e2d56fe..b06165fd 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -399,6 +399,10 @@ Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch Patch203: respect-nfs-bg-option.patch # PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch +# PATCH-FIX-SUSE Do not override the passphrase prompts due messages of busy jobs +Patch205: keep-crypt-password-prompt.patch +# PATCH-FIX-UPSTREAM Fix uninitialized memory +Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch # UDEV PATCHES # ============ @@ -432,6 +436,8 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch +# PATCH-FIX-UPSTREAM Move forward to git Head for net_id +Patch1014: upstream-net_id-changes.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -784,6 +790,8 @@ cp %{SOURCE7} m4/ %patch202 -p0 %patch203 -p1 %patch204 -p1 +%patch205 -p1 +%patch206 -p0 # udev patches %patch1001 -p1 @@ -800,6 +808,9 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%if 0%{?suse_version} > 1310 +%patch1014 -p0 +%endif # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 6df92168..8bd691bd 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon May 5 14:02:16 UTC 2014 - werner@suse.de + +- Port upstream patch + 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch + back to 210 +- Add patch keep-crypt-password-prompt.patch from Thomas Blume + to fix bnc#875502 - fails to boot when swap space is encrypted +- Port upstream patch set for net_id back in patch + upstream-net_id-changes.patch + ------------------------------------------------------------------- Fri May 2 10:12:26 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 9744e0e9..038af1d1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -394,6 +394,10 @@ Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch Patch203: respect-nfs-bg-option.patch # PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch +# PATCH-FIX-SUSE Do not override the passphrase prompts due messages of busy jobs +Patch205: keep-crypt-password-prompt.patch +# PATCH-FIX-UPSTREAM Fix uninitialized memory +Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch # UDEV PATCHES # ============ @@ -427,6 +431,8 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch +# PATCH-FIX-UPSTREAM Move forward to git Head for net_id +Patch1014: upstream-net_id-changes.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -779,6 +785,8 @@ cp %{SOURCE7} m4/ %patch202 -p0 %patch203 -p1 %patch204 -p1 +%patch205 -p1 +%patch206 -p0 # udev patches %patch1001 -p1 @@ -795,6 +803,9 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%if 0%{?suse_version} > 1310 +%patch1014 -p0 +%endif # ensure generate files are removed rm -f units/emergency.service diff --git a/upstream-net_id-changes.patch b/upstream-net_id-changes.patch new file mode 100644 index 00000000..60bc83b7 --- /dev/null +++ b/upstream-net_id-changes.patch @@ -0,0 +1,135 @@ +This the diff between systemd-210 and 19aa72f74e41045510b4af3f1415b419d42ff20b +But we do not remove the ATA support as in HEAD + +--- + src/udev/udev-builtin-net_id.c | 54 ++++++---------------------------------- + src/udev/udev-builtin-path_id.c | 3 -- + 2 files changed, 9 insertions(+), 48 deletions(-) + +--- src/udev/udev-builtin-net_id.c ++++ src/udev/udev-builtin-net_id.c 2014-04-08 07:16:45.094235605 +0000 +@@ -33,6 +33,8 @@ + * ww -- wwan + * + * Type of names: ++ * b -- BCMA bus core number ++ * ccw -- CCW bus group name + * o -- on-board device index number + * s[f][d] -- hotplug slot index number + * x -- MAC address +@@ -92,6 +94,7 @@ + #include + #include + #include ++#include + #include + + #include "udev.h" +@@ -119,12 +122,8 @@ struct netnames { + const char *pci_onboard_label; + + char usb_ports[IFNAMSIZ]; +- + char bcma_core[IFNAMSIZ]; +- +- char virtio_core[IFNAMSIZ]; +- +- char ccw_core[IFNAMSIZ]; ++ char ccw_group[IFNAMSIZ]; + }; + + /* retrieve on-board index number and label from firmware */ +@@ -351,25 +350,6 @@ static int names_bcma(struct udev_device + return 0; + } + +-static int names_virtio(struct udev_device *dev, struct netnames *names) { +- struct udev_device *virtdev; +- unsigned int core; +- +- virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); +- if (!virtdev) +- return -ENOENT; +- +- /* core num */ +- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1) +- return -EINVAL; +- /* suppress the common core == 0 */ +- if (core > 0) +- snprintf(names->virtio_core, sizeof(names->virtio_core), "v%u", core); +- +- names->type = NET_VIRTIO; +- return 0; +-} +- + static int names_ccw(struct udev_device *dev, struct netnames *names) { + struct udev_device *cdev; + const char *bus_id; +@@ -402,8 +382,8 @@ static int names_ccw(struct udev_device + return -EINVAL; + + /* Store the CCW bus-ID for use as network device name */ +- rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", bus_id); +- if (rc >= 0 && rc < (int)sizeof(names->ccw_core)) ++ rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id); ++ if (rc >= 0 && rc < (int)sizeof(names->ccw_group)) + names->type = NET_CCWGROUP; + return 0; + } +@@ -472,10 +452,10 @@ static int builtin_net_id(struct udev_de + return EXIT_FAILURE; + i = strtoul(s, NULL, 0); + switch (i) { +- case 1: /* ARPHRD_ETHER */ ++ case ARPHRD_ETHER: + prefix = "en"; + break; +- case 256: /* ARPHRD_SLIP */ ++ case ARPHRD_SLIP: + prefix = "sl"; + break; + default: +@@ -517,7 +497,7 @@ static int builtin_net_id(struct udev_de + if (err >= 0 && names.type == NET_CCWGROUP) { + char str[IFNAMSIZ]; + +- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); + goto out; + } +@@ -578,22 +558,6 @@ static int builtin_net_id(struct udev_de + udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); + goto out; + } +- +- /* virtio bus */ +- err = names_virtio(dev, &names); +- if (err >= 0 && names.type == NET_VIRTIO) { +- char str[IFNAMSIZ]; +- +- if (names.pci_path[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio_core) < (int)sizeof(str)) +- udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); +- +- if (names.pci_slot[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio_core) < (int)sizeof(str)) +- udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); +- goto out; +- } +- + out: + return EXIT_SUCCESS; + } +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c 2014-03-28 09:27:20.402735390 +0000 +@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d + } else if (streq(subsys, "xen")) { + path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "xen"); +- } else if (streq(subsys, "virtio")) { +- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent)); +- parent = skip_subsystem(parent, "virtio"); + } else if (streq(subsys, "scm")) { + path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "scm"); From e0b301714ef17548ab954ccc519aeb9961a6399ad2ae586a5bc536bd5e1b6048 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 10 May 2014 06:32:24 +0000 Subject: [PATCH 180/221] Accepting request 233091 from Base:System - Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume to handle the option 'noauto' in /etc/crypttab (bnc#742774) - Modify and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to have the correct terminal type used with agetty - Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch to allow users to access systemd user journal (bnc#876694) - Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume to handle the option 'noauto' in /etc/crypttab (bnc#742774) - Modify and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to have the correct terminal type used with agetty - Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch to allow users to access systemd user journal (bnc#876694) OBS-URL: https://build.opensuse.org/request/show/233091 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=185 --- ...s390_con3270_disable_ANSI_colour_esc.patch | 42 ++++++++-- ...fix-permissions-on-new-journal-files.patch | 27 +++++++ parse-crypttab-for-noauto-option.patch | 79 +++++++++++++++++++ systemd-mini.changes | 15 ++++ systemd-mini.spec | 6 ++ systemd.changes | 15 ++++ systemd.spec | 6 ++ 7 files changed, 185 insertions(+), 5 deletions(-) create mode 100644 0001-tmpfiles-fix-permissions-on-new-journal-files.patch create mode 100644 parse-crypttab-for-noauto-option.patch diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index 87a67090..f09e8270 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,9 +1,10 @@ --- - rules/99-systemd.rules.in | 2 - - src/core/manager.c | 24 +++++++++++--- - src/shared/util.c | 77 ++++++++++++++++++++++++++++++++++++++++++++-- + rules/99-systemd.rules.in | 2 + src/core/manager.c | 24 ++++++++-- + src/shared/util.c | 101 ++++++++++++++++++++++++++++++++++++++++++++-- src/shared/util.h | 1 - 4 files changed, 95 insertions(+), 9 deletions(-) + 4 files changed, 118 insertions(+), 10 deletions(-) + --- systemd-208/rules/99-systemd.rules.in +++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 @@ -151,13 +152,14 @@ prev_ephemeral = ephemeral; if (status) { -@@ -3169,12 +3209,43 @@ void columns_lines_cache_reset(int signu +@@ -3169,12 +3209,47 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; - if (_unlikely_(cached_on_tty < 0)) + if (_unlikely_(cached_on_tty < 0)) { cached_on_tty = isatty(STDOUT_FILENO) > 0; ++#if defined (__s390__) || defined (__s390x__) + if (cached_on_tty) { + const char *e = getenv("TERM"); + if (!e) @@ -169,6 +171,7 @@ + cached_on_tty = 0; + } + } ++#endif + } return cached_on_tty; @@ -179,6 +182,7 @@ + + if (_unlikely_(cached_ansi_console < 0)) { + cached_ansi_console = isatty(fd) > 0; ++#if defined (__s390__) || defined (__s390x__) + if (cached_ansi_console) { + const char *e = getenv("TERM"); + if (e && (streq(e, "dumb") || strneq(e, "ibm3", 4))) { @@ -188,6 +192,7 @@ + cached_ansi_console = 0; + } + } ++#endif + } + + return cached_ansi_console; @@ -196,6 +201,33 @@ int running_in_chroot(void) { struct stat a = {}, b = {}; +@@ -3630,7 +3705,25 @@ bool tty_is_vc_resolve(const char *tty) + const char *default_term_for_tty(const char *tty) { + assert(tty); + +- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102"; ++ if (tty_is_vc_resolve(tty)) ++ return "TERM=linux"; ++ ++ if (startswith(tty, "/dev/")) ++ tty += 5; ++ ++#if defined (__s390__) || defined (__s390x__) ++ if (streq(tty, "ttyS0")) { ++ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); ++ if (r < 0 || !mode || !streq(mode, "3270")) ++ return "TERM=dumb"; ++ if (streq(mode, "3270")) ++ return "TERM=ibm327x"; ++ } ++ if (streq(tty, "ttyS1")) ++ return "TERM=vt220"; ++#endif ++ return "TERM=vt102"; + } + + bool dirent_is_file(const struct dirent *de) { --- systemd-210/src/shared/util.h +++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000 @@ -418,6 +418,7 @@ unsigned lines(void); diff --git a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch new file mode 100644 index 00000000..de54a2e5 --- /dev/null +++ b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch @@ -0,0 +1,27 @@ +From a606871da508995f5ede113a8fc6538afd98966c Mon Sep 17 00:00:00 2001 +From: Greg KH +Date: Tue, 15 Apr 2014 14:12:01 -0700 +Subject: [PATCH] tmpfiles: fix permissions on new journal files + +When starting up journald on a new system, set the proper permissions on +the system.journal files, not only on the journal directory. +--- + tmpfiles.d/systemd.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git tmpfiles.d/systemd.conf tmpfiles.d/systemd.conf +index 7c6d6b9..c470045 100644 +--- tmpfiles.d/systemd.conf ++++ tmpfiles.d/systemd.conf +@@ -23,6 +23,6 @@ d /run/systemd/machines 0755 root root - + d /run/systemd/shutdown 0755 root root - + + m /var/log/journal 2755 root systemd-journal - - +-m /var/log/journal/%m 2755 root systemd-journal - - ++Z /var/log/journal/%m 2755 root systemd-journal - - + m /run/log/journal 2755 root systemd-journal - - +-m /run/log/journal/%m 2755 root systemd-journal - - ++Z /run/log/journal/%m 2755 root systemd-journal - - +-- +1.7.9.2 + diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch new file mode 100644 index 00000000..cb390f87 --- /dev/null +++ b/parse-crypttab-for-noauto-option.patch @@ -0,0 +1,79 @@ +--- + src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- + 1 file changed, 50 insertions(+), 2 deletions(-) + +--- systemd-210/src/fstab-generator/fstab-generator.c ++++ systemd-210/src/fstab-generator/fstab-generator.c 2014-05-07 09:15:01.003911151 +0000 +@@ -37,6 +37,53 @@ + static const char *arg_dest = "/tmp"; + static bool arg_enabled = true; + ++static int check_crypttab(const char *what) { ++ _cleanup_fclose_ FILE *f = NULL; ++ unsigned n = 0; ++ int r; ++ ++ f = fopen("/etc/crypttab", "re"); ++ if (!f) { ++ if (errno == ENOENT) ++ r = EXIT_SUCCESS; ++ else ++ log_error("Failed to open /etc/crypttab: %m"); ++ ++ return 1; ++ } ++ ++ ++ for (;;) { ++ char line[LINE_MAX], *l; ++ _cleanup_free_ char *name = NULL, *device = NULL, *password = NULL, *options = NULL; ++ int k; ++ ++ if (!fgets(line, sizeof(line), f)) ++ break; ++ ++ n++; ++ ++ l = strstrip(line); ++ if (*l == '#' || *l == 0) ++ continue; ++ ++ k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options); ++ if (k < 2 || k > 4) { ++ log_error("Failed to parse /etc/crypttab:%u, ignoring.", n); ++ continue; ++ } ++ ++ if (strcmp((what + 12), name) == 0) { ++ if (strstr(options, "noauto")) ++ return 0; ++ ++ return 1; ++ } ++ } ++ return 1; ++} ++ ++ + static int mount_find_pri(struct mntent *me, int *ret) { + char *end, *pri; + unsigned long r; +@@ -212,7 +259,7 @@ + *name = NULL, *unit = NULL, *lnk = NULL, + *automount_name = NULL, *automount_unit = NULL; + _cleanup_fclose_ FILE *f = NULL; +- int r; ++ int r, c; + + assert(what); + assert(where); +@@ -286,7 +333,8 @@ + return -errno; + } + +- if (!noauto) { ++ c = check_crypttab(what); ++ if (!noauto && (c != 0)) { + if (post) { + lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); + if (!lnk) diff --git a/systemd-mini.changes b/systemd-mini.changes index 8bd691bd..99f35b9d 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed May 7 10:42:27 UTC 2014 - werner@suse.de + +- Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume + to handle the option 'noauto' in /etc/crypttab (bnc#742774) + +------------------------------------------------------------------- +Wed May 7 09:23:01 UTC 2014 - werner@suse.de + +- Modify and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to have the correct terminal type used with agetty +- Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + to allow users to access systemd user journal (bnc#876694) + ------------------------------------------------------------------- Mon May 5 14:02:16 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index b06165fd..cfb4be04 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -403,6 +403,10 @@ Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch Patch205: keep-crypt-password-prompt.patch # PATCH-FIX-UPSTREAM Fix uninitialized memory Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) +Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch +# PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) +Patch208: parse-crypttab-for-noauto-option.patch # UDEV PATCHES # ============ @@ -792,6 +796,8 @@ cp %{SOURCE7} m4/ %patch204 -p1 %patch205 -p1 %patch206 -p0 +%patch207 -p0 +%patch208 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 8bd691bd..99f35b9d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed May 7 10:42:27 UTC 2014 - werner@suse.de + +- Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume + to handle the option 'noauto' in /etc/crypttab (bnc#742774) + +------------------------------------------------------------------- +Wed May 7 09:23:01 UTC 2014 - werner@suse.de + +- Modify and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to have the correct terminal type used with agetty +- Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + to allow users to access systemd user journal (bnc#876694) + ------------------------------------------------------------------- Mon May 5 14:02:16 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 038af1d1..d08fdb12 100644 --- a/systemd.spec +++ b/systemd.spec @@ -398,6 +398,10 @@ Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch Patch205: keep-crypt-password-prompt.patch # PATCH-FIX-UPSTREAM Fix uninitialized memory Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) +Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch +# PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) +Patch208: parse-crypttab-for-noauto-option.patch # UDEV PATCHES # ============ @@ -787,6 +791,8 @@ cp %{SOURCE7} m4/ %patch204 -p1 %patch205 -p1 %patch206 -p0 +%patch207 -p0 +%patch208 -p1 # udev patches %patch1001 -p1 From 88094f2bbbc2bb135f1181f4490e2fedb9fd28a15fa444c64fc80f595051116d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 13 May 2014 18:46:20 +0000 Subject: [PATCH 181/221] Accepting request 233680 from Base:System - Add patch log-target-null-instead-kmsg.patch from Thomas Blume to enable the kernel developers to see a clean kmsg ring buffer without any systemd/udev messages included (bnc#877021) - Add upstram patches for backlight 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch 0002-backlight-do-nothing-if-max_brightness-is-0.patch 0003-backlight-unify-error-messages.patch 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - Add upstream patches 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch 0003-analyze-fix-plot-with-bad-y-size.patch 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - Drop upstream-net_id-changes.patch and replace them with the correct patches from upstream and their commits: add: 1014-udev-update-net_id-comments.patch add: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - Add patch log-target-null-instead-kmsg.patch from Thomas Blume to enable the kernel developers to see a clean kmsg ring buffer without any systemd/udev messages included (bnc#877021) - Add upstram patches for backlight 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch 0002-backlight-do-nothing-if-max_brightness-is-0.patch OBS-URL: https://build.opensuse.org/request/show/233680 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=186 --- ...restoring-brightness-to-an-unreadabl.patch | 79 ++++++++++ ...to-handle-the-3-errnos-that-are-alia.patch | 30 ++++ ...ht-do-nothing-if-max_brightness-is-0.patch | 108 ++++++++++++++ ...name_to_handle_at-is-not-implemented.patch | 30 ++++ 0003-analyze-fix-plot-with-bad-y-size.patch | 31 ++++ 0003-backlight-unify-error-messages.patch | 115 +++++++++++++++ ...f-kernel-exposes-backlight-device-wi.patch | 40 ++++++ ...g-jobs-to-run-queue-in-unit_coldplug.patch | 30 ++++ ...-saved-brightness-exceeding-max-brig.patch | 64 +++++++++ ...aiting-jobs-to-run-queue-during-cold.patch | 34 +++++ 1014-udev-update-net_id-comments.patch | 102 +++++++++++++ ...naming-we-cannot-use-virtio-numbers-.patch | 99 +++++++++++++ log-target-null-instead-kmsg.patch | 114 +++++++++++++++ systemd-mini.changes | 35 +++++ systemd-mini.spec | 44 +++++- systemd.changes | 35 +++++ systemd.spec | 44 +++++- upstream-net_id-changes.patch | 135 ------------------ 18 files changed, 1024 insertions(+), 145 deletions(-) create mode 100644 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch create mode 100644 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch create mode 100644 0002-backlight-do-nothing-if-max_brightness-is-0.patch create mode 100644 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch create mode 100644 0003-analyze-fix-plot-with-bad-y-size.patch create mode 100644 0003-backlight-unify-error-messages.patch create mode 100644 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch create mode 100644 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch create mode 100644 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch create mode 100644 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch create mode 100644 1014-udev-update-net_id-comments.patch create mode 100644 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch create mode 100644 log-target-null-instead-kmsg.patch delete mode 100644 upstream-net_id-changes.patch diff --git a/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch b/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch new file mode 100644 index 00000000..3b20a7e0 --- /dev/null +++ b/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch @@ -0,0 +1,79 @@ +From 7b909d7407965c03caaba30daae7aee113627a83 Mon Sep 17 00:00:00 2001 +From: Josh Triplett +Date: Tue, 11 Mar 2014 21:16:33 -0700 +Subject: [PATCH] backlight: Avoid restoring brightness to an unreadably dim + level + +Some systems turn the backlight all the way off at the lowest levels. +Clamp saved brightness to at least 1 or 5% of max_brightness. This +avoids preserving an unreadably dim screen, which would otherwise force +the user to disable state restoration. +--- + src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 81470b3..abf8bcf 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -192,6 +192,48 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { + return true; + } + ++/* Some systems turn the backlight all the way off at the lowest levels. ++ * clamp_brightness clamps the saved brightness to at least 1 or 5% of ++ * max_brightness. This avoids preserving an unreadably dim screen, which ++ * would otherwise force the user to disable state restoration. */ ++static void clamp_brightness(struct udev_device *device, char **value) { ++ int r; ++ const char *max_brightness_str; ++ unsigned brightness, max_brightness, new_brightness; ++ ++ max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); ++ if (!max_brightness_str) { ++ log_warning("Failed to read max_brightness attribute; not checking saved brightness"); ++ return; ++ } ++ ++ r = safe_atou(*value, &brightness); ++ if (r < 0) { ++ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); ++ return; ++ } ++ ++ r = safe_atou(max_brightness_str, &max_brightness); ++ if (r < 0) { ++ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ return; ++ } ++ ++ new_brightness = MAX3(brightness, 1U, max_brightness/20); ++ if (new_brightness != brightness) { ++ char *old_value = *value; ++ ++ r = asprintf(value, "%u", new_brightness); ++ if (r < 0) { ++ log_oom(); ++ return; ++ } ++ ++ log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); ++ free(old_value); ++ } ++} ++ + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_device_unref_ struct udev_device *device = NULL; +@@ -306,6 +348,8 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + ++ clamp_brightness(device, &value); ++ + r = udev_device_set_sysattr_value(device, "brightness", value); + if (r < 0) { + log_error("Failed to write system attribute: %s", strerror(-r)); +-- +1.7.9.2 + diff --git a/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch b/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch new file mode 100644 index 00000000..d087eeb6 --- /dev/null +++ b/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch @@ -0,0 +1,30 @@ +Based on 0d522a7a0547982eae9ab1b5971e4bed9c2fbc7c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 24 Apr 2014 08:11:39 +0200 +Subject: [PATCH] errno: make sure to handle the 3 errnos that are aliases for + others properly + +--- + Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- Makefile.am ++++ Makefile.am 2014-05-12 00:00:00.000000000 +0000 +@@ -1078,7 +1078,7 @@ BUILT_SOURCES += \ + + src/shared/errno-list.txt: + $(AM_V_at)$(MKDIR_P) $(dir $@) +- $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+[0-9]/ { print $$2; }' > $@ ++ $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' > $@ + + src/shared/errno-from-name.gperf: src/shared/errno-list.txt + $(AM_V_at)$(MKDIR_P) $(dir $@) +@@ -1090,7 +1090,7 @@ src/shared/errno-from-name.h: src/shared + + src/shared/errno-to-name.h: src/shared/errno-list.txt + $(AM_V_at)$(MKDIR_P) $(dir $@) +- $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ ++ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ + + # ------------------------------------------------------------------------------ + systemd_SOURCES = \ diff --git a/0002-backlight-do-nothing-if-max_brightness-is-0.patch b/0002-backlight-do-nothing-if-max_brightness-is-0.patch new file mode 100644 index 00000000..8ca31e28 --- /dev/null +++ b/0002-backlight-do-nothing-if-max_brightness-is-0.patch @@ -0,0 +1,108 @@ +From 3cadce7d33e263ec7a6a83c00c11144930258b22 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Thu, 27 Mar 2014 23:41:59 +0100 +Subject: [PATCH] backlight: do nothing if max_brightness is 0 + +On virtually any newer Asus mainboard, the eeepc-wmi driver is loaded. +It exposes a backlight device despite the lack of any physical backlight +devices. This fake backlight device has max_brightness set to 0. Since +the introduction of the clamp_brightness function, systemd-backlight +tries to write '1' to brightness and fails. + +This patch changes systemd-backlight to exit gracefully when +max_brightness is 0 before performing any action. This affects +both the load and save actions. +--- + src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++-------------- + 1 file changed, 30 insertions(+), 14 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index abf8bcf..ce0385b 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -192,30 +192,37 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { + return true; + } + +-/* Some systems turn the backlight all the way off at the lowest levels. +- * clamp_brightness clamps the saved brightness to at least 1 or 5% of +- * max_brightness. This avoids preserving an unreadably dim screen, which +- * would otherwise force the user to disable state restoration. */ +-static void clamp_brightness(struct udev_device *device, char **value) { ++static unsigned get_max_brightness(struct udev_device *device) { + int r; + const char *max_brightness_str; +- unsigned brightness, max_brightness, new_brightness; ++ unsigned max_brightness; + + max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); + if (!max_brightness_str) { +- log_warning("Failed to read max_brightness attribute; not checking saved brightness"); +- return; ++ log_warning("Failed to read max_brightness attribute"); ++ return 0; + } + +- r = safe_atou(*value, &brightness); ++ r = safe_atou(max_brightness_str, &max_brightness); + if (r < 0) { +- log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); +- return; ++ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ return 0; + } + +- r = safe_atou(max_brightness_str, &max_brightness); ++ return max_brightness; ++} ++ ++/* Some systems turn the backlight all the way off at the lowest levels. ++ * clamp_brightness clamps the saved brightness to at least 1 or 5% of ++ * max_brightness. This avoids preserving an unreadably dim screen, which ++ * would otherwise force the user to disable state restoration. */ ++static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { ++ int r; ++ unsigned brightness, new_brightness; ++ ++ r = safe_atou(*value, &brightness); + if (r < 0) { +- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); + return; + } + +@@ -239,6 +246,7 @@ int main(int argc, char *argv[]) { + _cleanup_udev_device_unref_ struct udev_device *device = NULL; + _cleanup_free_ char *saved = NULL, *ss = NULL, *escaped_ss = NULL, *escaped_sysname = NULL, *escaped_path_id = NULL; + const char *sysname, *path_id; ++ unsigned max_brightness; + int r; + + if (argc != 3) { +@@ -294,6 +302,14 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + ++ /* If max_brightness is 0, then there is no actual backlight ++ * device. This happens on desktops with Asus mainboards ++ * that load the eeepc-wmi module. ++ */ ++ max_brightness = get_max_brightness(device); ++ if (max_brightness == 0) ++ return EXIT_SUCCESS; ++ + escaped_ss = cescape(ss); + if (!escaped_ss) { + log_oom(); +@@ -348,7 +364,7 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- clamp_brightness(device, &value); ++ clamp_brightness(device, &value, max_brightness); + + r = udev_device_set_sysattr_value(device, "brightness", value); + if (r < 0) { +-- +1.7.9.2 + diff --git a/0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch b/0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch new file mode 100644 index 00000000..fcf5f374 --- /dev/null +++ b/0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch @@ -0,0 +1,30 @@ +Based on e6c474723dc66cd4765fd09453d6b48bd5905ba4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 20 Apr 2014 13:57:26 -0400 +Subject: [PATCH] udev: warn when name_to_handle_at is not implemented + +We have a bunch of reports from people who have a custom kernel and +are confused why udev is not running. Issue a warning on +error. Barring an error in the code, the only error that is possible +is ENOSYS. + +https://bugzilla.redhat.com/show_bug.cgi?id=1072966 +--- + src/libudev/libudev-monitor.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/libudev/libudev-monitor.c ++++ src/libudev/libudev-monitor.c 2014-05-12 00:00:00.000000000 +0000 +@@ -115,8 +115,11 @@ static bool udev_has_devtmpfs(struct ude + int r; + + r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); +- if (r < 0) ++ if (r < 0) { ++ if (errno != EOPNOTSUPP) ++ udev_err(udev, "name_to_handle_at on /dev: %m\n"); + return false; ++ } + + + f = fopen("/proc/self/mountinfo", "re"); diff --git a/0003-analyze-fix-plot-with-bad-y-size.patch b/0003-analyze-fix-plot-with-bad-y-size.patch new file mode 100644 index 00000000..07761449 --- /dev/null +++ b/0003-analyze-fix-plot-with-bad-y-size.patch @@ -0,0 +1,31 @@ +From a213b7e977221ca96bbc1b19a5a879c912ba2488 Mon Sep 17 00:00:00 2001 +From: Jeffrey Clark +Date: Wed, 23 Apr 2014 22:37:43 +0200 +Subject: [PATCH] analyze: fix plot with bad y size + +systemd-analyze plot > test.svg produces output with all y and height +element attributes equal to zero. This of course causes the resulting +svg to appear blank (zero height). Bug does not affect x86. Looks like +a compiler optimization may be the culprit. + +https://github.com/archlinuxarm/PKGBUILDs/issues/815 +--- + src/analyze/analyze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/analyze/analyze.c src/analyze/analyze.c +index ba236d9..ebaa9d0 100644 +--- src/analyze/analyze.c ++++ src/analyze/analyze.c +@@ -43,7 +43,7 @@ + #include "pager.h" + + #define SCALE_X (0.1 / 1000.0) /* pixels per us */ +-#define SCALE_Y 20.0 ++#define SCALE_Y (20.0) + + #define compare(a, b) (((a) > (b))? 1 : (((b) > (a))? -1 : 0)) + +-- +1.7.9.2 + diff --git a/0003-backlight-unify-error-messages.patch b/0003-backlight-unify-error-messages.patch new file mode 100644 index 00000000..452de616 --- /dev/null +++ b/0003-backlight-unify-error-messages.patch @@ -0,0 +1,115 @@ +Based on 938d2699d2e818bd996614e89ea3d668200ad2a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 7 Apr 2014 20:57:22 -0400 +Subject: [PATCH] backlight: unify error messages + +--- + src/backlight/backlight.c | 29 +++++++++++++++++++---------- + 1 file changed, 19 insertions(+), 10 deletions(-) + +--- src/backlight/backlight.c ++++ src/backlight/backlight.c 2014-05-12 13:31:50.502235843 +0000 +@@ -24,6 +24,7 @@ + #include "fileio.h" + #include "libudev.h" + #include "udev-util.h" ++#include "def.h" + + static struct udev_device *find_pci_or_platform_parent(struct udev_device *device) { + struct udev_device *parent; +@@ -50,7 +51,7 @@ static struct udev_device *find_pci_or_p + if (!c) + return NULL; + +- c += strspn(c, "0123456789"); ++ c += strspn(c, DIGITS); + if (*c == '-') { + /* A connector DRM device, let's ignore all but LVDS and eDP! */ + +@@ -67,7 +68,8 @@ static struct udev_device *find_pci_or_p + unsigned long class = 0; + + if (safe_atolu(value, &class) < 0) { +- log_warning("Cannot parse PCI class %s of device %s:%s.", value, subsystem, sysname); ++ log_warning("Cannot parse PCI class %s of device %s:%s.", ++ value, subsystem, sysname); + return NULL; + } + +@@ -175,7 +177,9 @@ static bool validate_device(struct udev + if (same_device(parent, other_parent)) { + /* Both have the same PCI parent, that means + * we are out. */ +- log_debug("Skipping backlight device %s, since backlight device %s is on same PCI device and, takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); ++ log_debug("Skipping backlight device %s, since device %s is on same PCI device and takes precedence.", ++ udev_device_get_sysname(device), ++ udev_device_get_sysname(other)); + return false; + } + +@@ -184,7 +188,9 @@ static bool validate_device(struct udev + /* The other is connected to the platform bus + * and we are a PCI device, that also means we + * are out. */ +- log_debug("Skipping backlight device %s, since backlight device %s is a platform device and takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); ++ log_debug("Skipping backlight device %s, since device %s is a platform device and takes precedence.", ++ udev_device_get_sysname(device), ++ udev_device_get_sysname(other)); + return false; + } + } +@@ -199,13 +205,14 @@ static unsigned get_max_brightness(struc + + max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); + if (!max_brightness_str) { +- log_warning("Failed to read max_brightness attribute"); ++ log_warning("Failed to read 'max_brightness' attribute"); + return 0; + } + + r = safe_atou(max_brightness_str, &max_brightness); + if (r < 0) { +- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ log_warning("Failed to parse 'max_brightness' \"%s\": %s", ++ max_brightness_str, strerror(-r)); + return 0; + } + +@@ -262,7 +269,8 @@ int main(int argc, char *argv[]) { + + r = mkdir_p("/var/lib/systemd/backlight", 0755); + if (r < 0) { +- log_error("Failed to create backlight directory: %s", strerror(-r)); ++ log_error("Failed to create backlight directory /var/lib/systemd/backlight: %s", ++ strerror(-r)); + return EXIT_FAILURE; + } + +@@ -274,7 +282,7 @@ int main(int argc, char *argv[]) { + + sysname = strchr(argv[2], ':'); + if (!sysname) { +- log_error("Requires pair of subsystem and sysname for specifying backlight device."); ++ log_error("Requires a subsystem and sysname pair specifying a backlight device."); + return EXIT_FAILURE; + } + +@@ -368,7 +376,8 @@ int main(int argc, char *argv[]) { + + r = udev_device_set_sysattr_value(device, "brightness", value); + if (r < 0) { +- log_error("Failed to write system attribute: %s", strerror(-r)); ++ log_error("Failed to write system 'brightness' attribute: %s", ++ strerror(-r)); + return EXIT_FAILURE; + } + +@@ -382,7 +391,7 @@ int main(int argc, char *argv[]) { + + value = udev_device_get_sysattr_value(device, "brightness"); + if (!value) { +- log_error("Failed to read system attribute: %s", strerror(-r)); ++ log_error("Failed to read system 'brightness' attribute: %s", strerror(-r)); + return EXIT_FAILURE; + } + diff --git a/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch b/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch new file mode 100644 index 00000000..d0ec9ec8 --- /dev/null +++ b/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch @@ -0,0 +1,40 @@ +From c7fdf44d08e1217d40dc092fb90a65978a0f541f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 23 Apr 2014 06:55:54 +0200 +Subject: [PATCH] backlight: warn if kernel exposes backlight device with + bogus max_brightness + +We shouldn't silently tape over broken kernel drivers. +--- + src/backlight/backlight.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 754a646..c708391 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device *device) { + + max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); + if (!max_brightness_str) { +- log_warning("Failed to read 'max_brightness' attribute"); ++ log_warning("Failed to read 'max_brightness' attribute."); + return 0; + } + + r = safe_atou(max_brightness_str, &max_brightness); + if (r < 0) { +- log_warning("Failed to parse 'max_brightness' \"%s\": %s", +- max_brightness_str, strerror(-r)); ++ log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r)); ++ return 0; ++ } ++ ++ if (max_brightness <= 0) { ++ log_warning("Maximum brightness is 0, ignoring device."); + return 0; + } + +-- +1.7.9.2 + diff --git a/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch b/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch new file mode 100644 index 00000000..0358d8cc --- /dev/null +++ b/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch @@ -0,0 +1,30 @@ +Based on 20a83d7bf4542875f8033b68682a4da4993010e8 Mon Sep 17 00:00:00 2001 +From: Brandon Philips +Date: Fri, 25 Apr 2014 09:31:59 -0600 +Subject: [PATCH] job: add waiting jobs to run queue in unit_coldplug + +When we have job installed and added to run queue for service which is +still in dead state and systemd initiates reload then after reload we +never add deserialized job to the run queue again. This is caused by +check in service_coldplug() where we check if deserialized state is +something else than dead state, which is not the case thus we never call +service_set_state() and finally unit_notify() where we would have added +job to the run queue. + +Thanks to Michal Sekletar for the original patch. +--- + src/core/job.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- src/core/job.c ++++ src/core/job.c 2014-05-12 12:58:30.354235531 +0000 +@@ -1057,6 +1057,9 @@ int job_coldplug(Job *j) { + if (j->timer_event_source) + j->timer_event_source = sd_event_source_unref(j->timer_event_source); + ++ if (j->state == JOB_WAITING) ++ job_add_to_run_queue(j); ++ + r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); + if (r < 0) + log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch b/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch new file mode 100644 index 00000000..bee5ed1a --- /dev/null +++ b/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch @@ -0,0 +1,64 @@ +From 0c9d8f1d4b5018199cb5a9b57580dc1480a7f915 Mon Sep 17 00:00:00 2001 +From: Jani Nikula +Date: Wed, 7 May 2014 12:01:01 +0300 +Subject: [PATCH] backlight: handle saved brightness exceeding max brightness + +If too high a brightness value has been saved (e.g. due to kernel +mechanism changing from one kernel version to another, or booting the +userspace on another system), the brightness update fails and the +process exits. + +Clamp saved brightness between the policy minimum introduced in + +commit 7b909d7407965c03caaba30daae7aee113627a83 +Author: Josh Triplett +Date: Tue Mar 11 21:16:33 2014 -0700 + + backlight: Avoid restoring brightness to an unreadably dim level + +and the absolute maximum. + +https://bugs.freedesktop.org/show_bug.cgi?id=78200 +--- + src/backlight/backlight.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index c708391..691472c 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -229,7 +229,7 @@ static unsigned get_max_brightness(struct udev_device *device) { + * would otherwise force the user to disable state restoration. */ + static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { + int r; +- unsigned brightness, new_brightness; ++ unsigned brightness, new_brightness, min_brightness; + + r = safe_atou(*value, &brightness); + if (r < 0) { +@@ -237,7 +237,8 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned + return; + } + +- new_brightness = MAX3(brightness, 1U, max_brightness/20); ++ min_brightness = MAX(1U, max_brightness/20); ++ new_brightness = CLAMP(brightness, min_brightness, max_brightness); + if (new_brightness != brightness) { + char *old_value = *value; + +@@ -247,7 +248,11 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned + return; + } + +- log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); ++ log_info("Saved brightness %s %s to %s.", old_value, ++ new_brightness > brightness ? ++ "too low; increasing" : "too high; decreasing", ++ *value); ++ + free(old_value); + } + } +-- +1.7.9.2 + diff --git a/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch b/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch new file mode 100644 index 00000000..ea295af2 --- /dev/null +++ b/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch @@ -0,0 +1,34 @@ +Based on 1727a595225132eb73ec134b6979d9c713b42e8c Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Mon, 12 May 2014 09:26:16 +0200 +Subject: [PATCH] job: always add waiting jobs to run queue during coldplug + +commit 20a83d7bf was not equivalent to the original bug fix proposed by +Michal Sekletar . The committed version only added +the job to the run queue if the job had a timeout, which most jobs do +not have. Just re-ordering the code gets us the intended functionality +--- + src/core/job.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- src/core/job.c ++++ src/core/job.c 2014-05-12 13:11:24.918735646 +0000 +@@ -1051,15 +1051,15 @@ int job_coldplug(Job *j) { + + assert(j); + ++ if (j->state == JOB_WAITING) ++ job_add_to_run_queue(j); ++ + if (j->begin_usec == 0 || j->unit->job_timeout == 0) + return 0; + + if (j->timer_event_source) + j->timer_event_source = sd_event_source_unref(j->timer_event_source); + +- if (j->state == JOB_WAITING) +- job_add_to_run_queue(j); +- + r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); + if (r < 0) + log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/1014-udev-update-net_id-comments.patch b/1014-udev-update-net_id-comments.patch new file mode 100644 index 00000000..6b0b7f5a --- /dev/null +++ b/1014-udev-update-net_id-comments.patch @@ -0,0 +1,102 @@ +From d4b687c96adf207f0878aebf3ce3371f6160687f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 27 Mar 2014 15:30:09 +0100 +Subject: [PATCH] udev: update net_id comments + +Signed-off-by: Robert Milasan +--- + src/udev/udev-builtin-net_id.c | 31 +++++++++++++++---------------- + 1 file changed, 15 insertions(+), 16 deletions(-) + +diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c +index 4f2b2c1..9ac07de 100644 +--- a/src/udev/udev-builtin-net_id.c ++++ b/src/udev/udev-builtin-net_id.c +@@ -33,8 +33,11 @@ + * ww -- wwan + * + * Type of names: ++ * b -- BCMA bus core number ++ * ccw -- CCW bus group name + * o -- on-board device index number + * s[f][d] -- hotplug slot index number ++ * v -- virtio number + * x -- MAC address + * [P]ps[f][d] + * -- PCI geographical location +@@ -119,12 +122,9 @@ struct netnames { + const char *pci_onboard_label; + + char usb_ports[IFNAMSIZ]; +- + char bcma_core[IFNAMSIZ]; +- +- char virtio_core[IFNAMSIZ]; +- +- char ccw_core[IFNAMSIZ]; ++ char virtio[IFNAMSIZ]; ++ char ccw_group[IFNAMSIZ]; + }; + + /* retrieve on-board index number and label from firmware */ +@@ -353,18 +353,17 @@ static int names_bcma(struct udev_device *dev, struct netnames *names) { + + static int names_virtio(struct udev_device *dev, struct netnames *names) { + struct udev_device *virtdev; +- unsigned int core; ++ unsigned int num; + + virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); + if (!virtdev) + return -ENOENT; + +- /* core num */ +- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1) ++ if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) + return -EINVAL; +- /* suppress the common core == 0 */ +- if (core > 0) +- snprintf(names->virtio_core, sizeof(names->virtio_core), "v%u", core); ++ /* suppress the common num == 0 */ ++ if (num > 0) ++ snprintf(names->virtio, sizeof(names->virtio), "v%u", num); + + names->type = NET_VIRTIO; + return 0; +@@ -402,8 +401,8 @@ static int names_ccw(struct udev_device *dev, struct netnames *names) { + return -EINVAL; + + /* Store the CCW bus-ID for use as network device name */ +- rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", bus_id); +- if (rc >= 0 && rc < (int)sizeof(names->ccw_core)) ++ rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id); ++ if (rc >= 0 && rc < (int)sizeof(names->ccw_group)) + names->type = NET_CCWGROUP; + return 0; + } +@@ -517,7 +516,7 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool + if (err >= 0 && names.type == NET_CCWGROUP) { + char str[IFNAMSIZ]; + +- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); + goto out; + } +@@ -585,11 +584,11 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool + char str[IFNAMSIZ]; + + if (names.pci_path[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); + + if (names.pci_slot[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); + goto out; + } +-- +1.8.4.5 + diff --git a/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch b/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch new file mode 100644 index 00000000..a5e9c58f --- /dev/null +++ b/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch @@ -0,0 +1,99 @@ +From bf81e792f3c0aed54edf004c1c95cc6f6d81d0ee Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 27 Mar 2014 21:47:14 +0100 +Subject: [PATCH] udev: persistent naming - we cannot use virtio numbers as + they are not stable + +This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk support to path_id' and +commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio buses'. + +Distros may want to take note of this, as it changes behavior. + +Signed-off-by: Robert Milasan +--- + src/udev/udev-builtin-net_id.c | 36 ------------------------------------ + src/udev/udev-builtin-path_id.c | 3 --- + 2 files changed, 39 deletions(-) + +Index: systemd-210/src/udev/udev-builtin-net_id.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin-net_id.c ++++ systemd-210/src/udev/udev-builtin-net_id.c +@@ -37,7 +37,6 @@ + * ccw -- CCW bus group name + * o -- on-board device index number + * s[f][d] -- hotplug slot index number +- * v -- virtio number + * x -- MAC address + * [P]ps[f][d] + * -- PCI geographical location +@@ -123,7 +122,6 @@ struct netnames { + + char usb_ports[IFNAMSIZ]; + char bcma_core[IFNAMSIZ]; +- char virtio[IFNAMSIZ]; + char ccw_group[IFNAMSIZ]; + }; + +@@ -351,24 +349,6 @@ static int names_bcma(struct udev_device + return 0; + } + +-static int names_virtio(struct udev_device *dev, struct netnames *names) { +- struct udev_device *virtdev; +- unsigned int num; +- +- virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); +- if (!virtdev) +- return -ENOENT; +- +- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) +- return -EINVAL; +- /* suppress the common num == 0 */ +- if (num > 0) +- snprintf(names->virtio, sizeof(names->virtio), "v%u", num); +- +- names->type = NET_VIRTIO; +- return 0; +-} +- + static int names_ccw(struct udev_device *dev, struct netnames *names) { + struct udev_device *cdev; + const char *bus_id; +@@ -577,22 +557,6 @@ static int builtin_net_id(struct udev_de + udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); + goto out; + } +- +- /* virtio bus */ +- err = names_virtio(dev, &names); +- if (err >= 0 && names.type == NET_VIRTIO) { +- char str[IFNAMSIZ]; +- +- if (names.pci_path[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) +- udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); +- +- if (names.pci_slot[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) +- udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); +- goto out; +- } +- + out: + return EXIT_SUCCESS; + } +Index: systemd-210/src/udev/udev-builtin-path_id.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin-path_id.c ++++ systemd-210/src/udev/udev-builtin-path_id.c +@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d + } else if (streq(subsys, "xen")) { + path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "xen"); +- } else if (streq(subsys, "virtio")) { +- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent)); +- parent = skip_subsystem(parent, "virtio"); + } else if (streq(subsys, "scm")) { + path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "scm"); diff --git a/log-target-null-instead-kmsg.patch b/log-target-null-instead-kmsg.patch new file mode 100644 index 00000000..f1d429b6 --- /dev/null +++ b/log-target-null-instead-kmsg.patch @@ -0,0 +1,114 @@ +--- + src/journal/journald-kmsg.c | 16 +++++++++++++++- + src/libudev/libudev-util.c | 16 +++++++++++++++- + src/shared/log.c | 16 +++++++++++++++- + src/shared/util.c | 6 +++++- + 4 files changed, 50 insertions(+), 4 deletions(-) + +--- systemd-210/src/journal/journald-kmsg.c ++++ systemd-210/src/journal/journald-kmsg.c 2014-05-09 07:35:02.880122386 +0000 +@@ -391,12 +391,26 @@ + return server_read_dev_kmsg(s); + } + ++static int parse_proc_cmdline_word(const char *word) { ++ int r; ++ ++ if (streq(word, "systemd.log_target=null")) ++ return -115; ++ ++ return 0; ++} ++ + int server_open_dev_kmsg(Server *s) { + int r; + + assert(s); + +- s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { ++ s->dev_kmsg_fd = open("/dev/null", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ } else { ++ s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ } ++ + if (s->dev_kmsg_fd < 0) { + log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, + "Failed to open /dev/kmsg, ignoring: %m"); +--- systemd-210/src/libudev/libudev-util.c ++++ systemd-210/src/libudev/libudev-util.c 2014-05-09 07:35:28.304122530 +0000 +@@ -416,6 +416,15 @@ + return bits; + } + ++static int parse_proc_cmdline_word(const char *word) { ++ int r; ++ ++ if (streq(word, "systemd.log_target=null")) ++ return -115; ++ ++ return 0; ++} ++ + ssize_t print_kmsg(const char *fmt, ...) + { + _cleanup_close_ int fd = -1; +@@ -424,7 +433,12 @@ + ssize_t len; + ssize_t ret; + +- fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ 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; + +--- systemd-210/src/shared/log.c ++++ systemd-210/src/shared/log.c 2014-05-09 07:35:52.900122669 +0000 +@@ -92,12 +92,26 @@ + kmsg_fd = -1; + } + ++static int parse_proc_cmdline_word(const char *word) { ++ int r; ++ ++ if (streq(word, "systemd.log_target=null")) ++ return -115; ++ ++ return 0; ++} ++ + static int log_open_kmsg(void) { + + if (kmsg_fd >= 0) + return 0; + +- kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { ++ kmsg_fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ } else { ++ kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ } ++ + if (kmsg_fd < 0) + return -errno; + +--- systemd-210/src/shared/util.c ++++ systemd-210/src/shared/util.c 2014-05-09 08:51:55.436148462 +0000 +@@ -5975,7 +5975,11 @@ + + r = parse_word(word); + if (r < 0) { +- log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); ++ if (r == -115) { ++ log_error("Warning: %s set, redirecting messages to /dev/null.", word); ++ } else { ++ log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); ++ } + return r; + } + } diff --git a/systemd-mini.changes b/systemd-mini.changes index 99f35b9d..620b4e9a 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Tue May 13 08:28:05 UTC 2014 - werner@suse.de + +- Add patch log-target-null-instead-kmsg.patch from Thomas Blume + to enable the kernel developers to see a clean kmsg ring buffer + without any systemd/udev messages included (bnc#877021) + +------------------------------------------------------------------- +Mon May 12 13:35:25 UTC 2014 - werner@suse.de + +- Add upstram patches for backlight + 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch + 0002-backlight-do-nothing-if-max_brightness-is-0.patch + 0003-backlight-unify-error-messages.patch + 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch + 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch + +------------------------------------------------------------------- +Mon May 12 13:28:20 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch + 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch + 0003-analyze-fix-plot-with-bad-y-size.patch + 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch + 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch + +------------------------------------------------------------------- +Mon May 12 12:25:13 UTC 2014 - rmilasan@suse.com + +- Drop upstream-net_id-changes.patch and replace them with the correct + patches from upstream and their commits: + add: 1014-udev-update-net_id-comments.patch + add: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch + ------------------------------------------------------------------- Wed May 7 10:42:27 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index cfb4be04..954150b4 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -407,6 +407,28 @@ Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch210: 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch216: 0003-backlight-unify-error-messages.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch +# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) +Patch219: log-target-null-instead-kmsg.patch # UDEV PATCHES # ============ @@ -440,8 +462,10 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-UPSTREAM Move forward to git Head for net_id -Patch1014: upstream-net_id-changes.patch +# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch +Patch1014: 1014-udev-update-net_id-comments.patch +# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -798,6 +822,17 @@ cp %{SOURCE7} m4/ %patch206 -p0 %patch207 -p0 %patch208 -p1 +%patch209 -p0 +%patch210 -p0 +%patch211 -p0 +%patch212 -p0 +%patch213 -p0 +%patch214 -p0 +%patch215 -p0 +%patch216 -p0 +%patch217 -p0 +%patch218 -p0 +%patch219 -p1 # udev patches %patch1001 -p1 @@ -814,9 +849,8 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%if 0%{?suse_version} > 1310 -%patch1014 -p0 -%endif +%patch1014 -p1 +%patch1015 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 99f35b9d..620b4e9a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Tue May 13 08:28:05 UTC 2014 - werner@suse.de + +- Add patch log-target-null-instead-kmsg.patch from Thomas Blume + to enable the kernel developers to see a clean kmsg ring buffer + without any systemd/udev messages included (bnc#877021) + +------------------------------------------------------------------- +Mon May 12 13:35:25 UTC 2014 - werner@suse.de + +- Add upstram patches for backlight + 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch + 0002-backlight-do-nothing-if-max_brightness-is-0.patch + 0003-backlight-unify-error-messages.patch + 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch + 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch + +------------------------------------------------------------------- +Mon May 12 13:28:20 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch + 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch + 0003-analyze-fix-plot-with-bad-y-size.patch + 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch + 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch + +------------------------------------------------------------------- +Mon May 12 12:25:13 UTC 2014 - rmilasan@suse.com + +- Drop upstream-net_id-changes.patch and replace them with the correct + patches from upstream and their commits: + add: 1014-udev-update-net_id-comments.patch + add: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch + ------------------------------------------------------------------- Wed May 7 10:42:27 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index d08fdb12..dc84387e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -402,6 +402,28 @@ Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch210: 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch216: 0003-backlight-unify-error-messages.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch +# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) +Patch219: log-target-null-instead-kmsg.patch # UDEV PATCHES # ============ @@ -435,8 +457,10 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-UPSTREAM Move forward to git Head for net_id -Patch1014: upstream-net_id-changes.patch +# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch +Patch1014: 1014-udev-update-net_id-comments.patch +# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -793,6 +817,17 @@ cp %{SOURCE7} m4/ %patch206 -p0 %patch207 -p0 %patch208 -p1 +%patch209 -p0 +%patch210 -p0 +%patch211 -p0 +%patch212 -p0 +%patch213 -p0 +%patch214 -p0 +%patch215 -p0 +%patch216 -p0 +%patch217 -p0 +%patch218 -p0 +%patch219 -p1 # udev patches %patch1001 -p1 @@ -809,9 +844,8 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%if 0%{?suse_version} > 1310 -%patch1014 -p0 -%endif +%patch1014 -p1 +%patch1015 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/upstream-net_id-changes.patch b/upstream-net_id-changes.patch deleted file mode 100644 index 60bc83b7..00000000 --- a/upstream-net_id-changes.patch +++ /dev/null @@ -1,135 +0,0 @@ -This the diff between systemd-210 and 19aa72f74e41045510b4af3f1415b419d42ff20b -But we do not remove the ATA support as in HEAD - ---- - src/udev/udev-builtin-net_id.c | 54 ++++++---------------------------------- - src/udev/udev-builtin-path_id.c | 3 -- - 2 files changed, 9 insertions(+), 48 deletions(-) - ---- src/udev/udev-builtin-net_id.c -+++ src/udev/udev-builtin-net_id.c 2014-04-08 07:16:45.094235605 +0000 -@@ -33,6 +33,8 @@ - * ww -- wwan - * - * Type of names: -+ * b -- BCMA bus core number -+ * ccw -- CCW bus group name - * o -- on-board device index number - * s[f][d] -- hotplug slot index number - * x -- MAC address -@@ -92,6 +94,7 @@ - #include - #include - #include -+#include - #include - - #include "udev.h" -@@ -119,12 +122,8 @@ struct netnames { - const char *pci_onboard_label; - - char usb_ports[IFNAMSIZ]; -- - char bcma_core[IFNAMSIZ]; -- -- char virtio_core[IFNAMSIZ]; -- -- char ccw_core[IFNAMSIZ]; -+ char ccw_group[IFNAMSIZ]; - }; - - /* retrieve on-board index number and label from firmware */ -@@ -351,25 +350,6 @@ static int names_bcma(struct udev_device - return 0; - } - --static int names_virtio(struct udev_device *dev, struct netnames *names) { -- struct udev_device *virtdev; -- unsigned int core; -- -- virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); -- if (!virtdev) -- return -ENOENT; -- -- /* core num */ -- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1) -- return -EINVAL; -- /* suppress the common core == 0 */ -- if (core > 0) -- snprintf(names->virtio_core, sizeof(names->virtio_core), "v%u", core); -- -- names->type = NET_VIRTIO; -- return 0; --} -- - static int names_ccw(struct udev_device *dev, struct netnames *names) { - struct udev_device *cdev; - const char *bus_id; -@@ -402,8 +382,8 @@ static int names_ccw(struct udev_device - return -EINVAL; - - /* Store the CCW bus-ID for use as network device name */ -- rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", bus_id); -- if (rc >= 0 && rc < (int)sizeof(names->ccw_core)) -+ rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id); -+ if (rc >= 0 && rc < (int)sizeof(names->ccw_group)) - names->type = NET_CCWGROUP; - return 0; - } -@@ -472,10 +452,10 @@ static int builtin_net_id(struct udev_de - return EXIT_FAILURE; - i = strtoul(s, NULL, 0); - switch (i) { -- case 1: /* ARPHRD_ETHER */ -+ case ARPHRD_ETHER: - prefix = "en"; - break; -- case 256: /* ARPHRD_SLIP */ -+ case ARPHRD_SLIP: - prefix = "sl"; - break; - default: -@@ -517,7 +497,7 @@ static int builtin_net_id(struct udev_de - if (err >= 0 && names.type == NET_CCWGROUP) { - char str[IFNAMSIZ]; - -- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); - goto out; - } -@@ -578,22 +558,6 @@ static int builtin_net_id(struct udev_de - udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); - goto out; - } -- -- /* virtio bus */ -- err = names_virtio(dev, &names); -- if (err >= 0 && names.type == NET_VIRTIO) { -- char str[IFNAMSIZ]; -- -- if (names.pci_path[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio_core) < (int)sizeof(str)) -- udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); -- -- if (names.pci_slot[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio_core) < (int)sizeof(str)) -- udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); -- goto out; -- } -- - out: - return EXIT_SUCCESS; - } ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c 2014-03-28 09:27:20.402735390 +0000 -@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d - } else if (streq(subsys, "xen")) { - path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "xen"); -- } else if (streq(subsys, "virtio")) { -- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent)); -- parent = skip_subsystem(parent, "virtio"); - } else if (streq(subsys, "scm")) { - path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "scm"); From 38fe6dfa6d743d5da704a2864dbd7f69ecd55cf719b97b6da27a10f5b22bc0ab Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 17 May 2014 19:46:37 +0000 Subject: [PATCH 182/221] Accepting request 234299 from Base:System - Make baselibs.conf aware to use the appropiate %post and %postun scriptlets which includes pam-config (bnc#877674) - Add upstram patches 0001-core-close-socket-fds-asynchronously.patch 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - Add upstram patches 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch to avoid that in pam session unwanted file descriptors are inherited - Make baselibs.conf aware to use the appropiate %post and %postun scriptlets which includes pam-config (bnc#877674) - Add upstram patches 0001-core-close-socket-fds-asynchronously.patch 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - Add upstram patches 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch to avoid that in pam session unwanted file descriptors are inherited OBS-URL: https://build.opensuse.org/request/show/234299 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=187 --- ...core-close-socket-fds-asynchronously.patch | 74 +++++++++++ ...-replace-more-dup-by-F_DUPFD_CLOEXEC.patch | 39 ++++++ ...kit-policy-for-hibernate-in-line-wit.patch | 28 +++++ ...F_DUPFD_CLOEXEC-when-dupping-session.patch | 26 ++++ ...sure-to-serialize-jobs-for-all-units.patch | 118 ++++++++++++++++++ baselibs.conf | 4 + systemd-mini.changes | 22 ++++ systemd-mini.spec | 15 +++ systemd.changes | 22 ++++ systemd.spec | 15 +++ 10 files changed, 363 insertions(+) create mode 100644 0001-core-close-socket-fds-asynchronously.patch create mode 100644 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch create mode 100644 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch create mode 100644 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch create mode 100644 0003-core-make-sure-to-serialize-jobs-for-all-units.patch diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch new file mode 100644 index 00000000..70eebd3c --- /dev/null +++ b/0001-core-close-socket-fds-asynchronously.patch @@ -0,0 +1,74 @@ +Based on 574634bcacb01efe15ca2742effd461a5b7afb5f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 13 May 2014 23:22:13 +0200 +Subject: [PATCH] core: close socket fds asynchronously + +http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html +--- + src/core/async.c | 22 ++++++++++++++++++++++ + src/core/service.c | 5 +++-- + 2 files changed, 25 insertions(+), 2 deletions(-) + +--- src/core/service.c ++++ src/core/service.c 2014-05-16 11:41:50.150735247 +0000 +@@ -25,6 +25,7 @@ + #include + #include + ++#include "async.h" + #include "manager.h" + #include "unit.h" + #include "service.h" +@@ -240,7 +241,7 @@ static void service_close_socket_fd(Serv + if (s->socket_fd < 0) + return; + +- close_nointr_nofail(s->socket_fd); ++ asynchronous_close(s->socket_fd); + s->socket_fd = -1; + } + +@@ -2767,7 +2768,7 @@ static int service_deserialize_item(Unit + else { + + if (s->socket_fd >= 0) +- close_nointr_nofail(s->socket_fd); ++ asynchronous_close(s->socket_fd); + s->socket_fd = fdset_remove(fds, fd); + } + } else if (streq(key, "main-exec-status-pid")) { +--- src/core/async.c ++++ src/core/async.c 2014-05-07 09:40:35.000000000 +0000 +@@ -24,6 +24,7 @@ + + #include "async.h" + #include "log.h" ++#include "util.h" + + int asynchronous_job(void* (*func)(void *p), void *arg) { + pthread_attr_t a; +@@ -70,3 +71,24 @@ int asynchronous_sync(void) { + + return asynchronous_job(sync_thread, NULL); + } ++ ++static void *close_thread(void *p) { ++ close_nointr_nofail(PTR_TO_INT(p)); ++ return NULL; ++} ++ ++int asynchronous_close(int fd) { ++ int r; ++ ++ /* This is supposed to behave similar to safe_close(), but ++ * actually invoke close() asynchronously, so that it will ++ * never block. Ideally the kernel would have an API for this, ++ * but it doesn't, so we work around it, and hide this as a ++ * far away as we can. */ ++ ++ r = asynchronous_job(close_thread, INT_TO_PTR(fd)); ++ if (r < 0) ++ close_nointr_nofail(fd); ++ ++ return -1; ++} diff --git a/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch b/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch new file mode 100644 index 00000000..0438c3ee --- /dev/null +++ b/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch @@ -0,0 +1,39 @@ +From ead349509e325aad720bb0349521a9e56e2ac7c0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 13 May 2014 16:40:53 +0200 +Subject: [PATCH] replace more dup() by F_DUPFD_CLOEXEC + +--- + src/login/inhibit.c | 2 +- + src/shared/install.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/login/inhibit.c src/login/inhibit.c +index 48c2ec4..ae3afdf 100644 +--- src/login/inhibit.c ++++ src/login/inhibit.c +@@ -64,7 +64,7 @@ static int inhibit(sd_bus *bus, sd_bus_error *error) { + if (r < 0) + return r; + +- r = dup(fd); ++ r = fcntl(fd, F_DUPFD_CLOEXEC, 3); + if (r < 0) + return -errno; + +diff --git src/shared/install.c src/shared/install.c +index acfba25..9ce9403 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -332,7 +332,7 @@ static int remove_marked_symlinks( + int q, cfd; + deleted = false; + +- cfd = dup(fd); ++ cfd = fcntl(fd, F_DUPFD_CLOEXEC, 3); + if (cfd < 0) { + r = -errno; + break; +-- +1.7.9.2 + diff --git a/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch b/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch new file mode 100644 index 00000000..73ffb867 --- /dev/null +++ b/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch @@ -0,0 +1,28 @@ +From 301f9684e6465df5d0590f6c571fe3229ded966d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 15 May 2014 18:30:07 +0200 +Subject: [PATCH] logind: bring polkit policy for hibernate in line with + suspend/poweroff/reboot + +THere's no reason why hibernate should be better protected then +suspendor poweroff, so sync the policies. +--- + src/login/org.freedesktop.login1.policy.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/org.freedesktop.login1.policy.in src/login/org.freedesktop.login1.policy.in +index b96d32d..b8e90f1 100644 +--- src/login/org.freedesktop.login1.policy.in ++++ src/login/org.freedesktop.login1.policy.in +@@ -254,7 +254,7 @@ + + auth_admin_keep + auth_admin_keep +- auth_admin_keep ++ yes + + org.freedesktop.login1.hibernate + +-- +1.7.9.2 + diff --git a/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch b/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch new file mode 100644 index 00000000..06a4521c --- /dev/null +++ b/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch @@ -0,0 +1,26 @@ +From 85c08dc013f9f99b58bc9b79284af0b35304237b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 13 May 2014 16:35:34 +0200 +Subject: [PATCH] pam_systemd: use F_DUPFD_CLOEXEC when dupping session fds + +http://lists.freedesktop.org/archives/systemd-devel/2014-May/019034.html +--- + src/login/pam-module.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/pam-module.c src/login/pam-module.c +index 9873dd5..1259457 100644 +--- src/login/pam-module.c ++++ src/login/pam-module.c +@@ -475,7 +475,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( + } + + if (session_fd >= 0) { +- session_fd = dup(session_fd); ++ session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3); + if (session_fd < 0) { + pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m"); + return PAM_SESSION_ERR; +-- +1.7.9.2 + diff --git a/0003-core-make-sure-to-serialize-jobs-for-all-units.patch b/0003-core-make-sure-to-serialize-jobs-for-all-units.patch new file mode 100644 index 00000000..30c4615f --- /dev/null +++ b/0003-core-make-sure-to-serialize-jobs-for-all-units.patch @@ -0,0 +1,118 @@ +From 9bdb98c59451ed090f8d35d470a54710f389ce71 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 May 2014 01:15:03 +0200 +Subject: [PATCH] core: make sure to serialize jobs for all units + +Previously we wouldn't serialize jobs for units that themselves have +nothing to serialize. + +http://lists.freedesktop.org/archives/systemd-devel/2014-May/019051.html +--- + src/core/manager.c | 3 --- + src/core/unit.c | 43 +++++++++++++++++++++---------------------- + 2 files changed, 21 insertions(+), 25 deletions(-) + +diff --git src/core/manager.c src/core/manager.c +index 1e3e127..d0af674 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -2131,9 +2131,6 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) { + if (u->id != t) + continue; + +- if (!unit_can_serialize(u)) +- continue; +- + /* Start marker */ + fputs(u->id, f); + fputc('\n', f); +diff --git src/core/unit.c src/core/unit.c +index c4ed923..41651ba 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -2288,25 +2288,25 @@ bool unit_can_serialize(Unit *u) { + } + + int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs) { +- ExecRuntime *rt; + int r; + + assert(u); + assert(f); + assert(fds); + +- if (!unit_can_serialize(u)) +- return 0; +- +- r = UNIT_VTABLE(u)->serialize(u, f, fds); +- if (r < 0) +- return r; ++ if (unit_can_serialize(u)) { ++ ExecRuntime *rt; + +- rt = unit_get_exec_runtime(u); +- if (rt) { +- r = exec_runtime_serialize(rt, u, f, fds); ++ r = UNIT_VTABLE(u)->serialize(u, f, fds); + if (r < 0) + return r; ++ ++ rt = unit_get_exec_runtime(u); ++ if (rt) { ++ r = exec_runtime_serialize(rt, u, f, fds); ++ if (r < 0) ++ return r; ++ } + } + + dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); +@@ -2368,17 +2368,14 @@ void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value) { + } + + int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { +- size_t offset; + ExecRuntime **rt = NULL; ++ size_t offset; + int r; + + assert(u); + assert(f); + assert(fds); + +- if (!unit_can_serialize(u)) +- return 0; +- + offset = UNIT_VTABLE(u)->exec_runtime_offset; + if (offset > 0) + rt = (ExecRuntime**) ((uint8_t*) u + offset); +@@ -2503,17 +2500,19 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { + continue; + } + +- if (rt) { +- r = exec_runtime_deserialize_item(rt, u, l, v, fds); ++ if (unit_can_serialize(u)) { ++ if (rt) { ++ r = exec_runtime_deserialize_item(rt, u, l, v, fds); ++ if (r < 0) ++ return r; ++ if (r > 0) ++ continue; ++ } ++ ++ r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); + if (r < 0) + return r; +- if (r > 0) +- continue; + } +- +- r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); +- if (r < 0) +- return r; + } + } + +-- +1.7.9.2 + diff --git a/baselibs.conf b/baselibs.conf index c06fbf45..2738ae81 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,6 +1,10 @@ systemd supplements "packageand(systemd:pam-)" -/lib/systemd/system/ + post "%{_sbindir}/pam-config -a --systemd || :" +# postun "if [ "$1" == "0" ]; then" +# postun "%{_sbindir}/pam-config -d --systemd || :" +# postun "fi" libudev0 libgudev-1_0-0 libudev1 diff --git a/systemd-mini.changes b/systemd-mini.changes index 620b4e9a..6eea7ee7 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Fri May 16 12:00:12 UTC 2014 - werner@suse.de + +- Make baselibs.conf aware to use the appropiate %post and %postun + scriptlets which includes pam-config (bnc#877674) + +------------------------------------------------------------------- +Fri May 16 11:47:06 UTC 2014 - werner@suse.de + +- Add upstram patches + 0001-core-close-socket-fds-asynchronously.patch + 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch + 0003-core-make-sure-to-serialize-jobs-for-all-units.patch + +------------------------------------------------------------------- +Wed May 14 07:37:08 UTC 2014 - werner@suse.de + +- Add upstram patches + 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch + 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch + to avoid that in pam session unwanted file descriptors are inherited + ------------------------------------------------------------------- Tue May 13 08:28:05 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 954150b4..af3e53e2 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -429,6 +429,16 @@ Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch # PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) Patch219: log-target-null-instead-kmsg.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch222: 0001-core-close-socket-fds-asynchronously.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch # UDEV PATCHES # ============ @@ -833,6 +843,11 @@ cp %{SOURCE7} m4/ %patch217 -p0 %patch218 -p0 %patch219 -p1 +%patch220 -p0 +%patch221 -p0 +%patch222 -p0 +%patch223 -p0 +%patch224 -p0 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 620b4e9a..6eea7ee7 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Fri May 16 12:00:12 UTC 2014 - werner@suse.de + +- Make baselibs.conf aware to use the appropiate %post and %postun + scriptlets which includes pam-config (bnc#877674) + +------------------------------------------------------------------- +Fri May 16 11:47:06 UTC 2014 - werner@suse.de + +- Add upstram patches + 0001-core-close-socket-fds-asynchronously.patch + 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch + 0003-core-make-sure-to-serialize-jobs-for-all-units.patch + +------------------------------------------------------------------- +Wed May 14 07:37:08 UTC 2014 - werner@suse.de + +- Add upstram patches + 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch + 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch + to avoid that in pam session unwanted file descriptors are inherited + ------------------------------------------------------------------- Tue May 13 08:28:05 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index dc84387e..27df9a98 100644 --- a/systemd.spec +++ b/systemd.spec @@ -424,6 +424,16 @@ Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch # PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) Patch219: log-target-null-instead-kmsg.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch222: 0001-core-close-socket-fds-asynchronously.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch # UDEV PATCHES # ============ @@ -828,6 +838,11 @@ cp %{SOURCE7} m4/ %patch217 -p0 %patch218 -p0 %patch219 -p1 +%patch220 -p0 +%patch221 -p0 +%patch222 -p0 +%patch223 -p0 +%patch224 -p0 # udev patches %patch1001 -p1 From 6a0f5a9e55b39ee41024b03bdcf44f6ffc3eedbfc19cc98375d0421c612ef5d5 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 27 May 2014 05:09:03 +0000 Subject: [PATCH 183/221] Accepting request 235044 from Base:System - fix file list of systemd.pc OBS-URL: https://build.opensuse.org/request/show/235044 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=188 --- ...ntly-ignore-sections-starting-with-X.patch | 73 + ...base-of-Bluetooth-company-identifier.patch | 29 + 0001-hwdb-update.patch | 6590 ++ ...-up-error-handling-in-update_catalog.patch | 104 + ...d-switch-if-more-than-1-display-is-c.patch | 168 + ...base-of-Bluetooth-company-identifier.patch | 32 + 0002-hwdb-update.patch | 2058 + ...ly-detect-language-specified-in-line.patch | 99 + 0002-logind-fix-printf-format.patch | 25 + ...t-entire-sections-can-now-be-ignored.patch | 35 + ...-primary-model-string-in-subsystem-m.patch | 51583 ++++++++++++++++ ...base-of-Bluetooth-company-identifier.patch | 38 + ...d-switch-events-for-30s-after-each-s.patch | 174 + ...tion-XDG_CONFIG_HOME-in-systemd.unit.patch | 40 + ...base-of-Bluetooth-company-identifier.patch | 50 + 0004-hwdb-update.patch | 3964 ++ ...il-display-count-if-a-device-has-no-.patch | 45 + ...re-GetMachineAddresses-is-available-.patch | 38 + ...tate-behind-the-D-Bus-API-not-in-the.patch | 137 + ...base-of-Bluetooth-company-identifier.patch | 73 + 0005-hwdb-update.patch | 1560 + ...switch-handling-from-logind-main-to-.patch | 119 + ...add-mir-to-the-list-of-session-types.patch | 90 + ...-the-ExecReload-command-should-be-sy.patch | 39 + ...fix-Display-property-of-user-objects.patch | 147 + ...x-cmdline-switch-inconsistency-betwe.patch | 41 + ...-update-journald-rate-limit-defaults.patch | 28 + ...format-container_uuid-in-UUID-format.patch | 56 + ...-suspending-if-there-are-no-displays.patch | 42 + ...name_to_handle_at-is-not-implemented.patch | 0 ...ynchronize-block-device-event-handli.patch | 83 + ...-the-execution-of-RUN-when-renaming-.patch | 140 + ...-udev-avoid-use-of-uninitialized-err.patch | 37 + systemd-mini-rpmlintrc | 16 +- systemd-mini.changes | 97 +- systemd-mini.spec | 136 +- systemd-rpmlintrc | 16 +- systemd.changes | 97 +- systemd.spec | 136 +- 39 files changed, 68199 insertions(+), 36 deletions(-) create mode 100644 0001-conf-parser-silently-ignore-sections-starting-with-X.patch create mode 100644 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0001-hwdb-update.patch create mode 100644 0001-journal-cleanup-up-error-handling-in-update_catalog.patch create mode 100644 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch create mode 100644 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0002-hwdb-update.patch create mode 100644 0002-journal-properly-detect-language-specified-in-line.patch create mode 100644 0002-logind-fix-printf-format.patch create mode 100644 0002-man-note-that-entire-sections-can-now-be-ignored.patch create mode 100644 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch create mode 100644 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch create mode 100644 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch create mode 100644 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0004-hwdb-update.patch create mode 100644 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch create mode 100644 0004-machined-make-sure-GetMachineAddresses-is-available-.patch create mode 100644 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch create mode 100644 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0005-hwdb-update.patch create mode 100644 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch create mode 100644 0006-login-add-mir-to-the-list-of-session-types.patch create mode 100644 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch create mode 100644 0007-logind-fix-Display-property-of-user-objects.patch create mode 100644 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch create mode 100644 0008-man-update-journald-rate-limit-defaults.patch create mode 100644 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch create mode 100644 0010-logind-allow-suspending-if-there-are-no-displays.patch rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch => 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch (100%) create mode 100644 1017-udev-serialize-synchronize-block-device-event-handli.patch create mode 100644 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch create mode 100644 1019-udev-avoid-use-of-uninitialized-err.patch diff --git a/0001-conf-parser-silently-ignore-sections-starting-with-X.patch b/0001-conf-parser-silently-ignore-sections-starting-with-X.patch new file mode 100644 index 00000000..8ae66062 --- /dev/null +++ b/0001-conf-parser-silently-ignore-sections-starting-with-X.patch @@ -0,0 +1,73 @@ +From 342aea195051633c69ba7b8c02c82a0e5f8cbde4 Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Fri, 16 May 2014 16:58:31 -0700 +Subject: [PATCH] conf-parser: silently ignore sections starting with "X-" + +This allows external tools to keep additional unit information in a +separate section without scaring users with a big warning. +--- + src/shared/conf-parser.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index d27b1b7..062b15b 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c +@@ -204,6 +204,7 @@ static int parse_line(const char* unit, + bool allow_include, + char **section, + unsigned *section_line, ++ bool *section_ignored, + char *l, + void *userdata) { + +@@ -266,7 +267,7 @@ static int parse_line(const char* unit, + + if (sections && !nulstr_contains(sections, n)) { + +- if (!relaxed) ++ if (!relaxed && !startswith(n, "X-")) + log_syntax(unit, LOG_WARNING, filename, line, EINVAL, + "Unknown section '%s'. Ignoring.", n); + +@@ -274,10 +275,12 @@ static int parse_line(const char* unit, + free(*section); + *section = NULL; + *section_line = 0; ++ *section_ignored = true; + } else { + free(*section); + *section = n; + *section_line = line; ++ *section_ignored = false; + } + + return 0; +@@ -285,7 +288,7 @@ static int parse_line(const char* unit, + + if (sections && !*section) { + +- if (!relaxed) ++ if (!relaxed && !*section_ignored) + log_syntax(unit, LOG_WARNING, filename, line, EINVAL, + "Assignment outside of section. Ignoring."); + +@@ -328,6 +331,7 @@ int config_parse(const char *unit, + _cleanup_free_ char *section = NULL, *continuation = NULL; + _cleanup_fclose_ FILE *ours = NULL; + unsigned line = 0, section_line = 0; ++ bool section_ignored = false; + int r; + + assert(filename); +@@ -399,6 +403,7 @@ int config_parse(const char *unit, + allow_include, + §ion, + §ion_line, ++ §ion_ignored, + p, + userdata); + free(c); +-- +1.7.9.2 + diff --git a/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..15de6363 --- /dev/null +++ b/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,29 @@ +From e525326bd07ebf3cabcfd730bc479166723f2d44 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Sun, 2 Mar 2014 10:02:10 -0800 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index db3bc24..0335a71 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -902,3 +902,12 @@ bluetooth:v0129* + + bluetooth:v012A* + ID_VENDOR_FROM_DATABASE=Changzhou Yongse Infotech Co., Ltd ++ ++bluetooth:v012B* ++ ID_VENDOR_FROM_DATABASE=SportIQ ++ ++bluetooth:v012C* ++ ID_VENDOR_FROM_DATABASE=TEMEC Instruments B.V. ++ ++bluetooth:v012D* ++ ID_VENDOR_FROM_DATABASE=Sony Corporation +-- +1.7.9.2 + diff --git a/0001-hwdb-update.patch b/0001-hwdb-update.patch new file mode 100644 index 00000000..f487f680 --- /dev/null +++ b/0001-hwdb-update.patch @@ -0,0 +1,6590 @@ +From 6080625dc833144aca0817d1b9fd23f2fbcdf5c2 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 18 Mar 2014 16:17:51 +0100 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 779 +++++++++++++++++-- + hwdb/20-pci-vendor-model.hwdb | 1671 ++++++++++++++++++++++++++++++++++++----- + hwdb/20-usb-vendor-model.hwdb | 119 ++- + 3 files changed, 2330 insertions(+), 239 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index a51a00a..209b89e 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -13558,6 +13558,9 @@ OUI:40D8551CA* + OUI:40D8551CB* + ID_OUI_FROM_DATABASE=MG S.r.l. + ++OUI:40D8551CC* ++ ID_OUI_FROM_DATABASE=NKT Photonics A/S ++ + OUI:40D8551CD* + ID_OUI_FROM_DATABASE=YXLON International A/S + +@@ -13630,6 +13633,9 @@ OUI:40D8551E3* + OUI:40D8551E4* + ID_OUI_FROM_DATABASE=STEK Ltd + ++OUI:40D85550D* ++ ID_OUI_FROM_DATABASE=Shenzhen MaiWei Cable TV Equipment CO.,LTD. ++ + OUI:40D855EE6* + ID_OUI_FROM_DATABASE=Narinet, Inc. + +@@ -13703,7 +13709,7 @@ OUI:000016* + ID_OUI_FROM_DATABASE=DU PONT PIXEL SYSTEMS . + + OUI:000017* +- ID_OUI_FROM_DATABASE=TEKELEC ++ ID_OUI_FROM_DATABASE=Oracle + + OUI:000018* + ID_OUI_FROM_DATABASE=WEBSTER COMPUTER CORPORATION +@@ -18029,7 +18035,7 @@ OUI:0005BB* + ID_OUI_FROM_DATABASE=Myspace AB + + OUI:0005BC* +- ID_OUI_FROM_DATABASE=Resorsys Ltd. ++ ID_OUI_FROM_DATABASE=Resource Data Management Ltd + + OUI:0005BD* + ID_OUI_FROM_DATABASE=ROAX BV +@@ -18977,7 +18983,7 @@ OUI:0006F7* + ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. + + OUI:0006F8* +- ID_OUI_FROM_DATABASE=CPU Technology, Inc. ++ ID_OUI_FROM_DATABASE=The Boeing Company + + OUI:0006F9* + ID_OUI_FROM_DATABASE=Mitsui Zosen Systems Research Inc. +@@ -19337,7 +19343,7 @@ OUI:00076F* + ID_OUI_FROM_DATABASE=Synoptics Limited + + OUI:000770* +- ID_OUI_FROM_DATABASE=Locusnetworks Corporation ++ ID_OUI_FROM_DATABASE=Ubiquoss Inc + + OUI:000771* + ID_OUI_FROM_DATABASE=Embedded System Corporation +@@ -19616,7 +19622,7 @@ OUI:0007CC* + ID_OUI_FROM_DATABASE=Kaba Benzing GmbH + + OUI:0007CD* +- ID_OUI_FROM_DATABASE=NMTEL Co., Ltd. ++ ID_OUI_FROM_DATABASE=Kumoh Electronic Co, Ltd + + OUI:0007CE* + ID_OUI_FROM_DATABASE=Cabletime Limited +@@ -21584,7 +21590,7 @@ OUI:000A78* + ID_OUI_FROM_DATABASE=OLITEC + + OUI:000A79* +- ID_OUI_FROM_DATABASE=Allied Telesis K.K. corega division ++ ID_OUI_FROM_DATABASE=corega K.K + + OUI:000A7A* + ID_OUI_FROM_DATABASE=Kyoritsu Electric Co., Ltd. +@@ -22643,7 +22649,7 @@ OUI:000BDA* + ID_OUI_FROM_DATABASE=EyeCross Co.,Inc. + + OUI:000BDB* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:000BDC* + ID_OUI_FROM_DATABASE=AKCP +@@ -23774,7 +23780,7 @@ OUI:000D55* + ID_OUI_FROM_DATABASE=SANYCOM Technology Co.,Ltd + + OUI:000D56* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:000D57* + ID_OUI_FROM_DATABASE=Fujitsu I-Network Systems Limited. +@@ -25118,7 +25124,7 @@ OUI:000F1E* + ID_OUI_FROM_DATABASE=Chengdu KT Electric Co.of High & New Technology + + OUI:000F1F* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:000F20* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company +@@ -26435,7 +26441,7 @@ OUI:0010D5* + ID_OUI_FROM_DATABASE=IMASDE CANARIAS, S.A. + + OUI:0010D6* +- ID_OUI_FROM_DATABASE=ITT - A/CD ++ ID_OUI_FROM_DATABASE=Exelis + + OUI:0010D7* + ID_OUI_FROM_DATABASE=ARGOSY RESEARCH INC. +@@ -26762,7 +26768,7 @@ OUI:001142* + ID_OUI_FROM_DATABASE=e-SMARTCOM INC. + + OUI:001143* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001144* + ID_OUI_FROM_DATABASE=Assurance Technology Corp +@@ -27518,7 +27524,7 @@ OUI:00123E* + ID_OUI_FROM_DATABASE=ERUNE technology Co., Ltd. + + OUI:00123F* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001240* + ID_OUI_FROM_DATABASE=AMOI ELECTRONICS CO.,LTD +@@ -28439,7 +28445,7 @@ OUI:001371* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + + OUI:001372* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001373* + ID_OUI_FROM_DATABASE=BLwave Electronics Co., Ltd +@@ -28967,7 +28973,7 @@ OUI:001421* + ID_OUI_FROM_DATABASE=Total Wireless Technologies Pte. Ltd. + + OUI:001422* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001423* + ID_OUI_FROM_DATABASE=J-S Co. NEUROCOM +@@ -30104,7 +30110,7 @@ OUI:00159C* + ID_OUI_FROM_DATABASE=B-KYUNG SYSTEM Co.,Ltd. + + OUI:00159D* +- ID_OUI_FROM_DATABASE=Minicom Advanced Systems ltd ++ ID_OUI_FROM_DATABASE=Tripp Lite + + OUI:00159E* + ID_OUI_FROM_DATABASE=Mad Catz Interactive Inc +@@ -30224,7 +30230,7 @@ OUI:0015C4* + ID_OUI_FROM_DATABASE=FLOVEL CO., LTD. + + OUI:0015C5* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:0015C6* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +@@ -30914,7 +30920,7 @@ OUI:0016AA* + ID_OUI_FROM_DATABASE=Kei Communication Technology Inc. + + OUI:0016AB* +- ID_OUI_FROM_DATABASE=PBI-Dansensor A/S ++ ID_OUI_FROM_DATABASE=Dansensor A/S + + OUI:0016AC* + ID_OUI_FROM_DATABASE=Toho Technology Corp. +@@ -32342,7 +32348,7 @@ OUI:00188A* + ID_OUI_FROM_DATABASE=Infinova LLC + + OUI:00188B* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:00188C* + ID_OUI_FROM_DATABASE=Mobile Action Technology Inc. +@@ -35348,7 +35354,7 @@ OUI:001C74* + ID_OUI_FROM_DATABASE=Syswan Technologies Inc. + + OUI:001C75* +- ID_OUI_FROM_DATABASE=RF Systems GmbH ++ ID_OUI_FROM_DATABASE=Segnet Ltd. + + OUI:001C76* + ID_OUI_FROM_DATABASE=The Wandsworth Group Ltd +@@ -35831,7 +35837,7 @@ OUI:001D15* + ID_OUI_FROM_DATABASE=Shenzhen Dolphin Electronic Co., Ltd + + OUI:001D16* +- ID_OUI_FROM_DATABASE=Efixo ++ ID_OUI_FROM_DATABASE=SFR + + OUI:001D17* + ID_OUI_FROM_DATABASE=Digital Sky Corporation +@@ -35957,7 +35963,7 @@ OUI:001D3F* + ID_OUI_FROM_DATABASE=Mitron Pty Ltd + + OUI:001D40* +- ID_OUI_FROM_DATABASE=Living Independently Group, Inc. ++ ID_OUI_FROM_DATABASE=Intel – GE Care Innovations LLC + + OUI:001D41* + ID_OUI_FROM_DATABASE=Hardy Instruments +@@ -35969,7 +35975,7 @@ OUI:001D43* + ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. + + OUI:001D44* +- ID_OUI_FROM_DATABASE=Krohne ++ ID_OUI_FROM_DATABASE=KROHNE + + OUI:001D45* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +@@ -40316,7 +40322,7 @@ OUI:0022EE* + ID_OUI_FROM_DATABASE=Algo Communication Products Ltd + + OUI:0022EF* +- ID_OUI_FROM_DATABASE=Ibis Tek, LLC ++ ID_OUI_FROM_DATABASE=iWDL Technologies + + OUI:0022F0* + ID_OUI_FROM_DATABASE=3 Greens Aviation Limited +@@ -40361,7 +40367,7 @@ OUI:0022FE* + ID_OUI_FROM_DATABASE=Microprocessor Designs Inc + + OUI:0022FF* +- ID_OUI_FROM_DATABASE=NIVIS LLC ++ ID_OUI_FROM_DATABASE=iWDL Technologies + + OUI:002300* + ID_OUI_FROM_DATABASE=Cayee Computer Ltd. +@@ -41258,7 +41264,7 @@ OUI:00242E* + ID_OUI_FROM_DATABASE=Datastrip Inc. + + OUI:00242F* +- ID_OUI_FROM_DATABASE=VirtenSys Inc ++ ID_OUI_FROM_DATABASE=Micron + + OUI:002430* + ID_OUI_FROM_DATABASE=Ruby Tech Corp. +@@ -43028,7 +43034,7 @@ OUI:002686* + ID_OUI_FROM_DATABASE=Quantenna Communcations, Inc. + + OUI:002687* +- ID_OUI_FROM_DATABASE=ALLIED TELESIS, K.K corega division. ++ ID_OUI_FROM_DATABASE=Corega K.K + + OUI:002688* + ID_OUI_FROM_DATABASE=Juniper Networks +@@ -46118,7 +46124,7 @@ OUI:00605F* + ID_OUI_FROM_DATABASE=NIPPON UNISOFT CORPORATION + + OUI:006060* +- ID_OUI_FROM_DATABASE=DAWNING TECHNOLOGIES, INC. ++ ID_OUI_FROM_DATABASE=Data Innovations North America + + OUI:006061* + ID_OUI_FROM_DATABASE=WHISTLE COMMUNICATIONS CORP. +@@ -46621,12 +46627,18 @@ OUI:0070B0* + OUI:0070B3* + ID_OUI_FROM_DATABASE=DATA RECALL LTD. + ++OUI:0071CC* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:00738D* + ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp + + OUI:0073E0* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:007532* ++ ID_OUI_FROM_DATABASE=INID BV ++ + OUI:0075E1* + ID_OUI_FROM_DATABASE=Ampt, LLC + +@@ -48623,7 +48635,7 @@ OUI:00A086* + ID_OUI_FROM_DATABASE=AMBER WAVE SYSTEMS, INC. + + OUI:00A087* +- ID_OUI_FROM_DATABASE=Zarlink Semiconductor Ltd. ++ ID_OUI_FROM_DATABASE=Microsemi Corporation + + OUI:00A088* + ID_OUI_FROM_DATABASE=ESSENTIAL COMMUNICATIONS +@@ -49009,6 +49021,9 @@ OUI:00AA3C* + OUI:00AA70* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:00ACE0* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:00B009* + ID_OUI_FROM_DATABASE=Grass Valley Group + +@@ -51550,6 +51565,9 @@ OUI:00E0FE* + OUI:00E0FF* + ID_OUI_FROM_DATABASE=SECURITY DYNAMICS TECHNOLOGIES, Inc. + ++OUI:00E16D* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:00E175* + ID_OUI_FROM_DATABASE=AK-Systems Ltd + +@@ -51703,6 +51721,9 @@ OUI:0444A1* + OUI:044665* + ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. + ++OUI:04489A* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:044A50* + ID_OUI_FROM_DATABASE=Ramaxel Technology (Shenzhen) limited company + +@@ -51727,6 +51748,9 @@ OUI:045453* + OUI:0455CA* + ID_OUI_FROM_DATABASE=BriView (Xiamen) Corp. + ++OUI:04572F* ++ ID_OUI_FROM_DATABASE=Sertel Electronics UK Ltd ++ + OUI:04586F* + ID_OUI_FROM_DATABASE=Sichuan Whayer information industry Co.,LTD + +@@ -51892,6 +51916,9 @@ OUI:04E548* + OUI:04E662* + ID_OUI_FROM_DATABASE=Acroname Inc. + ++OUI:04E676* ++ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. ++ + OUI:04E9E5* + ID_OUI_FROM_DATABASE=PJRC.COM, LLC + +@@ -52486,6 +52513,9 @@ OUI:085AE0* + OUI:085B0E* + ID_OUI_FROM_DATABASE=Fortinet, Inc. + ++OUI:085DDD* ++ ID_OUI_FROM_DATABASE=Mercury Corporation ++ + OUI:08606E* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + +@@ -52504,6 +52534,9 @@ OUI:086DF2* + OUI:087045* + ID_OUI_FROM_DATABASE=Apple + ++OUI:0874F6* ++ ID_OUI_FROM_DATABASE=Winterhalter Gastronom GmbH ++ + OUI:087572* + ID_OUI_FROM_DATABASE=Obelux Oy + +@@ -52573,6 +52606,9 @@ OUI:08ACA5* + OUI:08AF78* + ID_OUI_FROM_DATABASE=Totus Solutions, Inc. + ++OUI:08B2A3* ++ ID_OUI_FROM_DATABASE=Cynny Italia S.r.L. ++ + OUI:08B4CF* + ID_OUI_FROM_DATABASE=Abicom International + +@@ -52615,6 +52651,9 @@ OUI:08D5C0* + OUI:08D833* + ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co,.Ltd + ++OUI:08DF1F* ++ ID_OUI_FROM_DATABASE=Bose Corporation ++ + OUI:08E5DA* + ID_OUI_FROM_DATABASE=NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD. + +@@ -52687,6 +52726,9 @@ OUI:0C191F* + OUI:0C1DC2* + ID_OUI_FROM_DATABASE=SeAH Networks + ++OUI:0C2026* ++ ID_OUI_FROM_DATABASE=noax Technologies AG ++ + OUI:0C2724* + ID_OUI_FROM_DATABASE=Cisco + +@@ -52756,6 +52798,9 @@ OUI:0C5CD8* + OUI:0C6076* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:0C63FC* ++ ID_OUI_FROM_DATABASE=Nanjing Signway Technology Co., Ltd ++ + OUI:0C6803* + ID_OUI_FROM_DATABASE=Cisco + +@@ -52984,6 +53029,9 @@ OUI:1000FD* + OUI:1001CA* + ID_OUI_FROM_DATABASE=Ashley Butterworth + ++OUI:1005CA* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:10090C* + ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. + +@@ -53008,6 +53056,9 @@ OUI:100E2B* + OUI:100E7E* + ID_OUI_FROM_DATABASE=Juniper networks + ++OUI:100F18* ++ ID_OUI_FROM_DATABASE=Fu Gang Electronic(KunShan)CO.,LTD ++ + OUI:1010B6* + ID_OUI_FROM_DATABASE=McCain Inc + +@@ -53158,6 +53209,9 @@ OUI:1083D2* + OUI:10880F* + ID_OUI_FROM_DATABASE=Daruma Telecomunicações e Informática S.A. + ++OUI:1088CE* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:108CCF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -53317,6 +53371,9 @@ OUI:1423D7* + OUI:142BD2* + ID_OUI_FROM_DATABASE=Armtel Ltd. + ++OUI:142BD6* ++ ID_OUI_FROM_DATABASE=Guangdong Appscomm Co.,Ltd ++ + OUI:142D27* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -53329,6 +53386,9 @@ OUI:142DF5* + OUI:14307A* + ID_OUI_FROM_DATABASE=Avermetrics + ++OUI:1430C6* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:14358B* + ID_OUI_FROM_DATABASE=Mediabridge Products, LLC. + +@@ -53344,6 +53404,9 @@ OUI:14373B* + OUI:143AEA* + ID_OUI_FROM_DATABASE=Dynapower Company LLC + ++OUI:143DF2* ++ ID_OUI_FROM_DATABASE=Beijing Shidai Hongyuan Network Communication Co.,Ltd ++ + OUI:143E60* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + +@@ -53368,6 +53431,9 @@ OUI:144C1A* + OUI:145412* + ID_OUI_FROM_DATABASE=Entis Co., Ltd. + ++OUI:145645* ++ ID_OUI_FROM_DATABASE=Savitech Corp. ++ + OUI:145A05* + ID_OUI_FROM_DATABASE=Apple + +@@ -53440,6 +53506,9 @@ OUI:14B126* + OUI:14B1C8* + ID_OUI_FROM_DATABASE=InfiniWing, Inc. + ++OUI:14B484* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:14B73D* + ID_OUI_FROM_DATABASE=ARCHEAN Technologies + +@@ -53489,7 +53558,7 @@ OUI:14EB33* + ID_OUI_FROM_DATABASE=BSMediasoft Co., Ltd. + + OUI:14EDA5* +- ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme ++ ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme + + OUI:14EE9D* + ID_OUI_FROM_DATABASE=AirNav Systems LLC +@@ -53572,6 +53641,9 @@ OUI:182032* + OUI:1820A6* + ID_OUI_FROM_DATABASE=Sage Co., Ltd. + ++OUI:18227E* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:182666* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53726,7 +53798,7 @@ OUI:18A905* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + + OUI:18A99B* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:18AA45* + ID_OUI_FROM_DATABASE=Fon Technology +@@ -53779,6 +53851,9 @@ OUI:18CC23* + OUI:18D071* + ID_OUI_FROM_DATABASE=DASAN SMC, Inc. + ++OUI:18D5B6* ++ ID_OUI_FROM_DATABASE=SMG Holdings LLC ++ + OUI:18D66A* + ID_OUI_FROM_DATABASE=Inmarsat + +@@ -53824,6 +53899,9 @@ OUI:18F87A* + OUI:18FA6F* + ID_OUI_FROM_DATABASE=ISC applied systems corp + ++OUI:18FB7B* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:18FC9F* + ID_OUI_FROM_DATABASE=Changhe Electronics Co., Ltd. + +@@ -53863,9 +53941,15 @@ OUI:1C184A* + OUI:1C19DE* + ID_OUI_FROM_DATABASE=eyevis GmbH + ++OUI:1C1AC0* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:1C1B68* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:1C1CFD* ++ ID_OUI_FROM_DATABASE=Dalian Hi-Think Computer Technology, Corp ++ + OUI:1C1D67* + ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd + +@@ -54157,6 +54241,9 @@ OUI:201D03* + OUI:2021A5* + ID_OUI_FROM_DATABASE=LG Electronics Inc + ++OUI:202564* ++ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION ++ + OUI:202598* + ID_OUI_FROM_DATABASE=Teleview + +@@ -54202,6 +54289,9 @@ OUI:204E6B* + OUI:204E7F* + ID_OUI_FROM_DATABASE=NETGEAR + ++OUI:2053CA* ++ ID_OUI_FROM_DATABASE=Risk Technology Ltd ++ + OUI:205476* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + +@@ -54211,6 +54301,9 @@ OUI:205721* + OUI:2059A0* + ID_OUI_FROM_DATABASE=Paragon Technologies Inc. + ++OUI:205A00* ++ ID_OUI_FROM_DATABASE=Coval ++ + OUI:205B5E* + ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd + +@@ -54265,12 +54358,18 @@ OUI:20918A* + OUI:2091D9* + ID_OUI_FROM_DATABASE=I'M SPA + ++OUI:209AE9* ++ ID_OUI_FROM_DATABASE=Volacomm Co., Ltd ++ + OUI:209BA5* + ID_OUI_FROM_DATABASE=JIAXING GLEAD Electronics Co.,Ltd + + OUI:20A2E7* + ID_OUI_FROM_DATABASE=Lee-Dickens Ltd + ++OUI:20A787* ++ ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited ++ + OUI:20AA25* + ID_OUI_FROM_DATABASE=IP-NET LLC + +@@ -54394,6 +54493,9 @@ OUI:24050F* + OUI:240917* + ID_OUI_FROM_DATABASE=Devlin Electronics Limited + ++OUI:240A11* ++ ID_OUI_FROM_DATABASE=TCT Mobile Limited ++ + OUI:240A64* + ID_OUI_FROM_DATABASE=AzureWaveTechnologies,Inc + +@@ -54691,9 +54793,15 @@ OUI:282CB2* + OUI:283152* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:2832C5* ++ ID_OUI_FROM_DATABASE=Humax.co.,ltd ++ + OUI:283410* + ID_OUI_FROM_DATABASE=Enigma Diagnostics Limited + ++OUI:2834A2* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:283737* + ID_OUI_FROM_DATABASE=Apple + +@@ -54778,6 +54886,9 @@ OUI:2872F0* + OUI:287994* + ID_OUI_FROM_DATABASE=Realplay Digital Technology(Shenzhen) Co.,Ltd + ++OUI:288023* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:28852D* + ID_OUI_FROM_DATABASE=Touch Networks + +@@ -55024,6 +55135,9 @@ OUI:2C3731* + OUI:2C3996* + ID_OUI_FROM_DATABASE=SAGEMCOM + ++OUI:2C39C1* ++ ID_OUI_FROM_DATABASE=Ciena Corporation ++ + OUI:2C3A28* + ID_OUI_FROM_DATABASE=Fagor Electrónica + +@@ -55069,6 +55183,9 @@ OUI:2C5A05* + OUI:2C5AA3* + ID_OUI_FROM_DATABASE=PROMATE ELECTRONIC CO.LTD + ++OUI:2C5BE1* ++ ID_OUI_FROM_DATABASE=Centripetal Networks, Inc ++ + OUI:2C5D93* + ID_OUI_FROM_DATABASE=Ruckus Wireless + +@@ -55117,6 +55234,9 @@ OUI:2C8065* + OUI:2C8158* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd + ++OUI:2C8A72* ++ ID_OUI_FROM_DATABASE=HTC Corporation ++ + OUI:2C8BF2* + ID_OUI_FROM_DATABASE=Hitachi Metals America Ltd + +@@ -55135,6 +55255,9 @@ OUI:2C957F* + OUI:2C9717* + ID_OUI_FROM_DATABASE=I.C.Y. B.V. + ++OUI:2C9AA4* ++ ID_OUI_FROM_DATABASE=NGI SpA ++ + OUI:2C9E5F* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -55327,6 +55450,9 @@ OUI:3055ED* + OUI:3057AC* + ID_OUI_FROM_DATABASE=IRLAB LTD. + ++OUI:3059B7* ++ ID_OUI_FROM_DATABASE=Microsoft ++ + OUI:305D38* + ID_OUI_FROM_DATABASE=Beissbarth + +@@ -55387,6 +55513,9 @@ OUI:308CFB* + OUI:3090AB* + ID_OUI_FROM_DATABASE=Apple + ++OUI:30918F* ++ ID_OUI_FROM_DATABASE=Technicolor ++ + OUI:3092F6* + ID_OUI_FROM_DATABASE=SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD + +@@ -55417,12 +55546,18 @@ OUI:30B5C2* + OUI:30C750* + ID_OUI_FROM_DATABASE=MIC Technology Group + ++OUI:30C7AE* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:30C82A* + ID_OUI_FROM_DATABASE=Wi-Next s.r.l. + + OUI:30CDA7* + ID_OUI_FROM_DATABASE=Samsung Electronics ITS, Printer division + ++OUI:30D17E* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:30D357* + ID_OUI_FROM_DATABASE=Logosol, Inc. + +@@ -55462,6 +55597,9 @@ OUI:30F70D* + OUI:30F7C5* + ID_OUI_FROM_DATABASE=Apple + ++OUI:30F7D7* ++ ID_OUI_FROM_DATABASE=Thread Technology Co., Ltd ++ + OUI:30F9ED* + ID_OUI_FROM_DATABASE=Sony Corporation + +@@ -55474,6 +55612,9 @@ OUI:3407FB* + OUI:340804* + ID_OUI_FROM_DATABASE=D-Link Corporation + ++OUI:340AFF* ++ ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd ++ + OUI:3413A8* + ID_OUI_FROM_DATABASE=Mediplan Limited + +@@ -55484,7 +55625,7 @@ OUI:34159E* + ID_OUI_FROM_DATABASE=Apple + + OUI:3417EB* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:341A4C* + ID_OUI_FROM_DATABASE=SHENZHEN WEIBU ELECTRONICS CO.,LTD. +@@ -55534,6 +55675,9 @@ OUI:344F5C* + OUI:344F69* + ID_OUI_FROM_DATABASE=EKINOPS SAS + ++OUI:3451AA* ++ ID_OUI_FROM_DATABASE=JID GLOBAL ++ + OUI:3451C9* + ID_OUI_FROM_DATABASE=Apple + +@@ -55543,6 +55687,9 @@ OUI:345B11* + OUI:345C40* + ID_OUI_FROM_DATABASE=Cargt Holdings LLC + ++OUI:345D10* ++ ID_OUI_FROM_DATABASE=Wytek ++ + OUI:346178* + ID_OUI_FROM_DATABASE=The Boeing Company + +@@ -55573,6 +55720,9 @@ OUI:347E39* + OUI:348137* + ID_OUI_FROM_DATABASE=UNICARD SA + ++OUI:3481C4* ++ ID_OUI_FROM_DATABASE=AVM GmbH ++ + OUI:3482DE* + ID_OUI_FROM_DATABASE=Kayo Technology, Inc. + +@@ -55741,6 +55891,9 @@ OUI:34E0D7* + OUI:34E2FD* + ID_OUI_FROM_DATABASE=Apple + ++OUI:34E42A* ++ ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. ++ + OUI:34EF44* + ID_OUI_FROM_DATABASE=2Wire + +@@ -55933,6 +56086,9 @@ OUI:38B74D* + OUI:38BB23* + ID_OUI_FROM_DATABASE=OzVision America LLC + ++OUI:38BB3C* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:38BC1A* + ID_OUI_FROM_DATABASE=Meizu technology co.,ltd + +@@ -56224,6 +56380,9 @@ OUI:3CA72B* + OUI:3CA9F4* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:3CAB8E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:3CB15B* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -56311,6 +56470,9 @@ OUI:3CF72A* + OUI:3CF748* + ID_OUI_FROM_DATABASE=Shenzhen Linsn Technology Development Co.,Ltd + ++OUI:3CF808* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:3CFB96* + ID_OUI_FROM_DATABASE=Emcraft Systems LLC + +@@ -56341,6 +56503,9 @@ OUI:4013D9* + OUI:401597* + ID_OUI_FROM_DATABASE=Protect America, Inc. + ++OUI:40167E* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:40169F* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO., LTD. + +@@ -56392,6 +56557,9 @@ OUI:404022* + OUI:40406B* + ID_OUI_FROM_DATABASE=Icomera + ++OUI:4045DA* ++ ID_OUI_FROM_DATABASE=Spreadtrum Communications (Shanghai) Co., Ltd. ++ + OUI:404A03* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + +@@ -56527,6 +56695,9 @@ OUI:40B2C8* + OUI:40B395* + ID_OUI_FROM_DATABASE=Apple + ++OUI:40B3CD* ++ ID_OUI_FROM_DATABASE=Chiyoda Electronics Co.,Ltd. ++ + OUI:40B3FC* + ID_OUI_FROM_DATABASE=Logital Co. Limited + +@@ -56596,6 +56767,9 @@ OUI:40F02F* + OUI:40F14C* + ID_OUI_FROM_DATABASE=ISE Europe SPRL + ++OUI:40F201* ++ ID_OUI_FROM_DATABASE=SAGEMCOM ++ + OUI:40F2E9* + ID_OUI_FROM_DATABASE=IBM + +@@ -56632,6 +56806,9 @@ OUI:44184F* + OUI:4419B6* + ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. + ++OUI:441E91* ++ ID_OUI_FROM_DATABASE=ARVIDA Intelligent Electronics Technology Co.,Ltd. ++ + OUI:441EA1* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -56776,6 +56953,9 @@ OUI:448312* + OUI:448500* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:4486C1* ++ ID_OUI_FROM_DATABASE=Siemens Low Voltage & Products ++ + OUI:4487FC* + ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. + +@@ -56860,6 +57040,9 @@ OUI:44D2CA* + OUI:44D3CA* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:44D4E0* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:44D63D* + ID_OUI_FROM_DATABASE=Talari Networks + +@@ -56920,6 +57103,9 @@ OUI:48174C* + OUI:481842* + ID_OUI_FROM_DATABASE=Shanghai Winaas Co. Equipment Co. Ltd. + ++OUI:481A84* ++ ID_OUI_FROM_DATABASE=Pointer Telocation Ltd ++ + OUI:481BD2* + ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. + +@@ -56950,9 +57136,15 @@ OUI:4846F1* + OUI:4846FB* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:4851B7* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:485261* + ID_OUI_FROM_DATABASE=SOREEL + ++OUI:485929* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:485A3F* + ID_OUI_FROM_DATABASE=WISOL + +@@ -56971,6 +57163,9 @@ OUI:4860BC* + OUI:4861A3* + ID_OUI_FROM_DATABASE=Concern "Axion" JSC + ++OUI:486276* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:486B91* + ID_OUI_FROM_DATABASE=Fleetwood Group Inc. + +@@ -56986,6 +57181,9 @@ OUI:487119* + OUI:48746E* + ID_OUI_FROM_DATABASE=Apple + ++OUI:488244* ++ ID_OUI_FROM_DATABASE=Life Fitness / Div. of Brunswick ++ + OUI:488E42* + ID_OUI_FROM_DATABASE=DIGALOG GmbH + +@@ -57046,15 +57244,24 @@ OUI:48CB6E* + OUI:48D0CF* + ID_OUI_FROM_DATABASE=Universal Electronics, Inc. + ++OUI:48D18E* ++ ID_OUI_FROM_DATABASE=Metis Communication Co.,Ltd ++ + OUI:48D224* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + + OUI:48D54C* + ID_OUI_FROM_DATABASE=Jeda Networks + ++OUI:48D705* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:48D7FF* + ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH + ++OUI:48D855* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY ++ + OUI:48D8FE* + ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. + +@@ -57136,6 +57343,9 @@ OUI:4C0F6E* + OUI:4C0FC7* + ID_OUI_FROM_DATABASE=Earda Electronics Co.,Ltd + ++OUI:4C11BF* ++ ID_OUI_FROM_DATABASE=ZHEJIANG DAHUA TECHNOLOGY CO.,LTD. ++ + OUI:4C1480* + ID_OUI_FROM_DATABASE=NOREGON SYSTEMS, INC + +@@ -57178,6 +57388,9 @@ OUI:4C322D* + OUI:4C32D9* + ID_OUI_FROM_DATABASE=M Rutty Holdings Pty. Ltd. + ++OUI:4C3909* ++ ID_OUI_FROM_DATABASE=HPL Electric & Power Private Limited ++ + OUI:4C3910* + ID_OUI_FROM_DATABASE=Newtek Electronics co., Ltd. + +@@ -57478,9 +57691,15 @@ OUI:505663* + OUI:5056A8* + ID_OUI_FROM_DATABASE=Jolla Ltd + ++OUI:5056BF* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD ++ + OUI:5057A8* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:505800* ++ ID_OUI_FROM_DATABASE=WyTec International, Inc. ++ + OUI:505AC6* + ID_OUI_FROM_DATABASE=GUANGDONG SUPER TELECOM CO.,LTD. + +@@ -57601,6 +57820,9 @@ OUI:50C271* + OUI:50C58D* + ID_OUI_FROM_DATABASE=Juniper Networks + ++OUI:50C7BF* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:50C971* + ID_OUI_FROM_DATABASE=GN Netcom A/S + +@@ -57706,6 +57928,9 @@ OUI:54271E* + OUI:542A9C* + ID_OUI_FROM_DATABASE=LSY Defense, LLC. + ++OUI:542AA2* ++ ID_OUI_FROM_DATABASE=Alpha Networks Inc. ++ + OUI:542CEA* + ID_OUI_FROM_DATABASE=PROTECTRON + +@@ -57739,9 +57964,15 @@ OUI:544408* + OUI:54466B* + ID_OUI_FROM_DATABASE=Shenzhen CZTIC Electronic Technology Co., Ltd + ++OUI:544A00* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:544A05* + ID_OUI_FROM_DATABASE=wenglor sensoric gmbh + ++OUI:544A16* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:5453ED* + ID_OUI_FROM_DATABASE=Sony Corporation + +@@ -57844,6 +58075,9 @@ OUI:54B620* + OUI:54BEF7* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + ++OUI:54C80F* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:54CDA7* + ID_OUI_FROM_DATABASE=Fujian Shenzhou Electronic Co.,Ltd + +@@ -57886,6 +58120,12 @@ OUI:54E6FC* + OUI:54EAA8* + ID_OUI_FROM_DATABASE=Apple, Inc. + ++OUI:54EE75* ++ ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. ++ ++OUI:54EF92* ++ ID_OUI_FROM_DATABASE=Shenzhen Elink Technology Co., LTD ++ + OUI:54F5B6* + ID_OUI_FROM_DATABASE=ORIENTAL PACIFIC INTERNATIONAL LIMITED + +@@ -57928,12 +58168,18 @@ OUI:581CBD* + OUI:581D91* + ID_OUI_FROM_DATABASE=Advanced Mobile Telecom co.,ltd. + ++OUI:581F67* ++ ID_OUI_FROM_DATABASE=Open-m technology limited ++ + OUI:581FAA* + ID_OUI_FROM_DATABASE=Apple + + OUI:581FEF* + ID_OUI_FROM_DATABASE=Tuttnaer LTD + ++OUI:58238C* ++ ID_OUI_FROM_DATABASE=Technicolor CH USA ++ + OUI:582EFE* + ID_OUI_FROM_DATABASE=Lighting Science Group + +@@ -58123,6 +58369,9 @@ OUI:58DB8D* + OUI:58E02C* + ID_OUI_FROM_DATABASE=Micro Technic A/S + ++OUI:58E326* ++ ID_OUI_FROM_DATABASE=Compass Technologies Inc. ++ + OUI:58E476* + ID_OUI_FROM_DATABASE=CENTRON COMMUNICATIONS TECHNOLOGIES FUJIAN CO.,LTD + +@@ -58213,6 +58462,9 @@ OUI:5C260A* + OUI:5C2AEF* + ID_OUI_FROM_DATABASE=Open Access Pty Ltd + ++OUI:5C313E* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:5C3327* + ID_OUI_FROM_DATABASE=Spazio Italia srl + +@@ -58411,6 +58663,9 @@ OUI:5CF370* + OUI:5CF3FC* + ID_OUI_FROM_DATABASE=IBM Corp + ++OUI:5CF4AB* ++ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp ++ + OUI:5CF50D* + ID_OUI_FROM_DATABASE=Institute of microelectronic applications + +@@ -58561,6 +58816,9 @@ OUI:60748D* + OUI:607688* + ID_OUI_FROM_DATABASE=Velodyne + ++OUI:60812B* ++ ID_OUI_FROM_DATABASE=Custom Control Concepts ++ + OUI:6083B2* + ID_OUI_FROM_DATABASE=GkWare e.K. + +@@ -58585,9 +58843,15 @@ OUI:608C2B* + OUI:608D17* + ID_OUI_FROM_DATABASE=Sentrus Government Systems Division, Inc + ++OUI:608F5C* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:609084* + ID_OUI_FROM_DATABASE=DSSD Inc + ++OUI:609217* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:609AA4* + ID_OUI_FROM_DATABASE=GVI SECURITY INC. + +@@ -58615,6 +58879,9 @@ OUI:60B3C4* + OUI:60B606* + ID_OUI_FROM_DATABASE=Phorus + ++OUI:60B617* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:60B933* + ID_OUI_FROM_DATABASE=Deutron Electronics Corp. + +@@ -58633,6 +58900,9 @@ OUI:60BD91* + OUI:60BEB5* + ID_OUI_FROM_DATABASE=Motorola Mobility LLC + ++OUI:60C1CB* ++ ID_OUI_FROM_DATABASE=Fujian Great Power PLC Equipment Co.,Ltd ++ + OUI:60C397* + ID_OUI_FROM_DATABASE=2Wire Inc + +@@ -58681,6 +58951,9 @@ OUI:60DE44* + OUI:60E00E* + ID_OUI_FROM_DATABASE=SHINSEI ELECTRONICS CO LTD + ++OUI:60E327* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:60E956* + ID_OUI_FROM_DATABASE=Ayla Networks, Inc + +@@ -58753,6 +59026,9 @@ OUI:640F28* + OUI:641084* + ID_OUI_FROM_DATABASE=HEXIUM Technical Development Co., Ltd. + ++OUI:641225* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:64168D* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -58966,6 +59242,9 @@ OUI:64A3CB* + OUI:64A769* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:64A7DD* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:64A837* + ID_OUI_FROM_DATABASE=Juni Korea Co., Ltd + +@@ -59062,6 +59341,9 @@ OUI:64E8E6* + OUI:64E950* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:64EAC5* ++ ID_OUI_FROM_DATABASE=SiboTech Automation Co., Ltd. ++ + OUI:64EB8C* + ID_OUI_FROM_DATABASE=Seiko Epson Corporation + +@@ -59131,6 +59413,9 @@ OUI:681FD8* + OUI:68234B* + ID_OUI_FROM_DATABASE=Nihon Dengyo Kousaku + ++OUI:6828BA* ++ ID_OUI_FROM_DATABASE=Dejai ++ + OUI:682DDC* + ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD + +@@ -59188,6 +59473,9 @@ OUI:6869F2* + OUI:686E23* + ID_OUI_FROM_DATABASE=Wi3 Inc. + ++OUI:686E48* ++ ID_OUI_FROM_DATABASE=Prophet Electronic Technology Corp.,Ltd ++ + OUI:687251* + ID_OUI_FROM_DATABASE=Ubiquiti Networks + +@@ -59332,6 +59620,9 @@ OUI:68DB96* + OUI:68DCE8* + ID_OUI_FROM_DATABASE=PacketStorm Communications + ++OUI:68DFDD* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:68E41F* + ID_OUI_FROM_DATABASE=Unglaube Identech GmbH + +@@ -59377,12 +59668,18 @@ OUI:6C0E0D* + OUI:6C0F6A* + ID_OUI_FROM_DATABASE=JDC Tech Co., Ltd. + ++OUI:6C14F7* ++ ID_OUI_FROM_DATABASE=Erhardt+Leimer GmbH ++ + OUI:6C15F9* + ID_OUI_FROM_DATABASE=Nautronix Limited + + OUI:6C1811* + ID_OUI_FROM_DATABASE=Decatur Electronics + ++OUI:6C198F* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:6C2056* + ID_OUI_FROM_DATABASE=Cisco + +@@ -59395,6 +59692,9 @@ OUI:6C23B9* + OUI:6C2995* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:6C2C06* ++ ID_OUI_FROM_DATABASE=OOO NPP Systemotechnika-NN ++ + OUI:6C2E33* + ID_OUI_FROM_DATABASE=Accelink Technologies Co.,Ltd. + +@@ -59539,6 +59839,9 @@ OUI:6CA906* + OUI:6CA96F* + ID_OUI_FROM_DATABASE=TransPacket AS + ++OUI:6CAAB3* ++ ID_OUI_FROM_DATABASE=Ruckus Wireless ++ + OUI:6CAB4D* + ID_OUI_FROM_DATABASE=Digital Payment Technologies + +@@ -59608,6 +59911,9 @@ OUI:6CE983* + OUI:6CECA1* + ID_OUI_FROM_DATABASE=SHENZHEN CLOU ELECTRONICS CO. LTD. + ++OUI:6CECEB* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:6CF049* + ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. + +@@ -59623,6 +59929,9 @@ OUI:6CF97C* + OUI:6CFA58* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:6CFAA7* ++ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. ++ + OUI:6CFDB9* + ID_OUI_FROM_DATABASE=Proware Technologies Co Ltd. + +@@ -59686,6 +59995,9 @@ OUI:702F97* + OUI:703018* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:70305D* ++ ID_OUI_FROM_DATABASE=Ubiquoss Inc ++ + OUI:70305E* + ID_OUI_FROM_DATABASE=Nanjing Zhongke Menglian Information Technology Co.,LTD + +@@ -59767,6 +60079,9 @@ OUI:7060DE* + OUI:706173* + ID_OUI_FROM_DATABASE=Calantec GmbH + ++OUI:7062B8* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:706417* + ID_OUI_FROM_DATABASE=ORBIS TECNOLOGIA ELECTRICA S.A. + +@@ -59881,6 +60196,9 @@ OUI:70B14E* + OUI:70B265* + ID_OUI_FROM_DATABASE=Hiltron s.r.l. + ++OUI:70B3D5* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see OUI36 public listing for more information. ++ + OUI:70B599* + ID_OUI_FROM_DATABASE=Embedded Technologies s.r.o. + +@@ -59950,6 +60268,9 @@ OUI:70F395* + OUI:70F927* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:70F96D* ++ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited ++ + OUI:70FF76* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -59965,12 +60286,18 @@ OUI:741489* + OUI:7415E2* + ID_OUI_FROM_DATABASE=Tri-Sen Systems Corporation + ++OUI:7419F8* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:741E93* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + + OUI:74258A* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:7426AC* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:74273C* + ID_OUI_FROM_DATABASE=ChangYang Technology (Nanjing) Co., LTD + +@@ -60077,7 +60404,7 @@ OUI:747E2D* + ID_OUI_FROM_DATABASE=Beijing Thomson CITIC Digital Technology Co. LTD. + + OUI:74867A* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:74882A* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD +@@ -60172,6 +60499,9 @@ OUI:74D675* + OUI:74D850* + ID_OUI_FROM_DATABASE=Evrisko Systems + ++OUI:74DA38* ++ ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. ++ + OUI:74DE2B* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -60292,6 +60622,9 @@ OUI:7831C1* + OUI:78324F* + ID_OUI_FROM_DATABASE=Millennium Group, Inc. + ++OUI:783A84* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:783CE3* + ID_OUI_FROM_DATABASE=Kai-EE + +@@ -60319,6 +60652,9 @@ OUI:7846C4* + OUI:78471D* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:784859* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:78491D* + ID_OUI_FROM_DATABASE=The Will-Burt Company + +@@ -60391,6 +60727,9 @@ OUI:788C54* + OUI:788DF7* + ID_OUI_FROM_DATABASE=Hitron Technologies. Inc + ++OUI:78923E* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:78929C* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -60523,6 +60862,9 @@ OUI:78D38D* + OUI:78D5B5* + ID_OUI_FROM_DATABASE=NAVIELEKTRO KY + ++OUI:78D66F* ++ ID_OUI_FROM_DATABASE=Aristocrat Technologies Australia Pty. Ltd. ++ + OUI:78D6F0* + ID_OUI_FROM_DATABASE=Samsung Electro Mechanics + +@@ -60736,6 +61078,9 @@ OUI:7C6C8F* + OUI:7C6D62* + ID_OUI_FROM_DATABASE=Apple + ++OUI:7C6DF8* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:7C6F06* + ID_OUI_FROM_DATABASE=Caterpillar Trimble Control Technologies + +@@ -60856,6 +61201,9 @@ OUI:7CCFCF* + OUI:7CD1C3* + ID_OUI_FROM_DATABASE=Apple + ++OUI:7CD30A* ++ ID_OUI_FROM_DATABASE=INVENTEC Corporation ++ + OUI:7CD762* + ID_OUI_FROM_DATABASE=Freestyle Technology Pty Ltd + +@@ -60919,6 +61267,9 @@ OUI:7CFADF* + OUI:7CFE28* + ID_OUI_FROM_DATABASE=Salutron Inc. + ++OUI:7CFE4E* ++ ID_OUI_FROM_DATABASE=Shenzhen Safe vision Technology Co.,LTD ++ + OUI:7CFF62* + ID_OUI_FROM_DATABASE=Huizhou Super Electron Technology Co.,Ltd. + +@@ -60940,9 +61291,15 @@ OUI:8007A2* + OUI:800A06* + ID_OUI_FROM_DATABASE=COMTEC co.,ltd + ++OUI:800E24* ++ ID_OUI_FROM_DATABASE=ForgetBox ++ + OUI:801440* + ID_OUI_FROM_DATABASE=Sunlit System Technology Corp + ++OUI:8014A8* ++ ID_OUI_FROM_DATABASE=Guangzhou V-SOLUTION Electronic Technology Co., Ltd. ++ + OUI:8016B7* + ID_OUI_FROM_DATABASE=Brunel University + +@@ -60952,6 +61309,9 @@ OUI:80177D* + OUI:8018A7* + ID_OUI_FROM_DATABASE=Samsung Eletronics Co., Ltd + ++OUI:801934* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:801DAA* + ID_OUI_FROM_DATABASE=Avaya Inc + +@@ -60994,6 +61354,9 @@ OUI:803F5D* + OUI:803FD6* + ID_OUI_FROM_DATABASE=bytes at work AG + ++OUI:80414E* ++ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., ++ + OUI:80427C* + ID_OUI_FROM_DATABASE=Adolf Tedsen GmbH & Co. KG + +@@ -61279,6 +61642,9 @@ OUI:843611* + OUI:843835* + ID_OUI_FROM_DATABASE=Apple + ++OUI:843838* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ + OUI:843A4B* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -61360,6 +61726,9 @@ OUI:848506* + OUI:848D84* + ID_OUI_FROM_DATABASE=Rajant Corporation + ++OUI:848DC7* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:848E0C* + ID_OUI_FROM_DATABASE=Apple + +@@ -61372,6 +61741,12 @@ OUI:848F69* + OUI:849000* + ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik + ++OUI:84948C* ++ ID_OUI_FROM_DATABASE=Hitron Technologies. Inc ++ ++OUI:8496D8* ++ ID_OUI_FROM_DATABASE=Pace plc ++ + OUI:8497B8* + ID_OUI_FROM_DATABASE=Memjet Inc. + +@@ -61399,6 +61774,9 @@ OUI:84ACA4* + OUI:84AF1F* + ID_OUI_FROM_DATABASE=Beat System Service Co,. Ltd. + ++OUI:84B153* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:84B59C* + ID_OUI_FROM_DATABASE=Juniper networks + +@@ -61468,6 +61846,9 @@ OUI:880355* + OUI:880905* + ID_OUI_FROM_DATABASE=MTMCommunications + ++OUI:880F10* ++ ID_OUI_FROM_DATABASE=Huami Information Technology Co.,Ltd. ++ + OUI:880FB6* + ID_OUI_FROM_DATABASE=Jabil Circuits India Pvt Ltd,-EHTP unit + +@@ -61558,7 +61939,10 @@ OUI:88576D* + OUI:885A92* + ID_OUI_FROM_DATABASE=Cisco + +-OUI:885C4F* ++OUI:885BDD* ++ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. ++ ++OUI:885C47* + ID_OUI_FROM_DATABASE=Alcatel Lucent + + OUI:88615A* +@@ -61654,6 +62038,9 @@ OUI:88AE1D* + OUI:88B168* + ID_OUI_FROM_DATABASE=Delta Control GmbH + ++OUI:88B1E1* ++ ID_OUI_FROM_DATABASE=AirTight Networks, Inc. ++ + OUI:88B627* + ID_OUI_FROM_DATABASE=Gembird Europe BV + +@@ -62107,6 +62494,9 @@ OUI:9046B7* + OUI:904716* + ID_OUI_FROM_DATABASE=RORZE CORPORATION + ++OUI:90489A* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:9049FA* + ID_OUI_FROM_DATABASE=Intel Corporation + +@@ -62179,6 +62569,9 @@ OUI:907A28* + OUI:907AF1* + ID_OUI_FROM_DATABASE=SNUPI Technologies + ++OUI:907EBA* ++ ID_OUI_FROM_DATABASE=UTEK TECHNOLOGY (SHENZHEN) CO.,LTD ++ + OUI:907F61* + ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. + +@@ -62197,12 +62590,12 @@ OUI:9088A2* + OUI:908C44* + ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. + ++OUI:908C63* ++ ID_OUI_FROM_DATABASE=GZ Weedong Networks Technology Co. , Ltd ++ + OUI:908D1D* + ID_OUI_FROM_DATABASE=GH Technologies + +-OUI:908F93* +- ID_OUI_FROM_DATABASE=MakerBot Industries +- + OUI:908FCF* + ID_OUI_FROM_DATABASE=UNO System Co., Ltd + +@@ -62245,6 +62638,9 @@ OUI:90A7C1* + OUI:90AC3F* + ID_OUI_FROM_DATABASE=BrightSign LLC + ++OUI:90AE1B* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:90B11C* + ID_OUI_FROM_DATABASE=Dell Inc. + +@@ -62303,7 +62699,7 @@ OUI:90DFB7* + ID_OUI_FROM_DATABASE=s.m.s smart microwave sensors GmbH + + OUI:90E0F0* +- ID_OUI_FROM_DATABASE=Harman International ++ ID_OUI_FROM_DATABASE=IEEE 1722a Working Group + + OUI:90E2BA* + ID_OUI_FROM_DATABASE=Intel Corporate +@@ -62683,6 +63079,9 @@ OUI:983571* + OUI:9835B8* + ID_OUI_FROM_DATABASE=Assembled Products Corporation + ++OUI:983713* ++ ID_OUI_FROM_DATABASE=PT.Navicom Indonesia ++ + OUI:983B16* + ID_OUI_FROM_DATABASE=AMPAK Technology Inc + +@@ -62746,6 +63145,9 @@ OUI:986022* + OUI:9866EA* + ID_OUI_FROM_DATABASE=Industrial Control Communications, Inc. + ++OUI:986B3D* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:986CF5* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -62812,6 +63214,9 @@ OUI:98BC57* + OUI:98BC99* + ID_OUI_FROM_DATABASE=Edeltech Co.,Ltd. + ++OUI:98BE94* ++ ID_OUI_FROM_DATABASE=IBM ++ + OUI:98C0EB* + ID_OUI_FROM_DATABASE=Global Regency Ltd + +@@ -62929,6 +63334,9 @@ OUI:9C2840* + OUI:9C28BF* + ID_OUI_FROM_DATABASE=Continental Automotive Czech Republic s.r.o. + ++OUI:9C28EF* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:9C2A70* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -63184,6 +63592,9 @@ OUI:9CFBF1* + OUI:9CFFBE* + ID_OUI_FROM_DATABASE=OTSL Inc. + ++OUI:A002DC* ++ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. ++ + OUI:A00363* + ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH + +@@ -63205,6 +63616,9 @@ OUI:A00CA1* + OUI:A01290* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:A012DB* ++ ID_OUI_FROM_DATABASE=TABUCHI ELECTRIC CO.,LTD ++ + OUI:A0133B* + ID_OUI_FROM_DATABASE=Copyright © HiTi Digital, Inc. + +@@ -63235,6 +63649,9 @@ OUI:A021B7* + OUI:A0231B* + ID_OUI_FROM_DATABASE=TeleComp R&D Corp. + ++OUI:A02BB8* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:A02EF3* + ID_OUI_FROM_DATABASE=United Integrated Services Co., Led. + +@@ -63439,6 +63856,9 @@ OUI:A0D12A* + OUI:A0D3C1* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A0DA92* ++ ID_OUI_FROM_DATABASE=Nanjing Glarun Atten Technology Co. Ltd. ++ + OUI:A0DC04* + ID_OUI_FROM_DATABASE=Becker-Antriebe GmbH + +@@ -63502,6 +63922,9 @@ OUI:A0F450* + OUI:A0F459* + ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED + ++OUI:A0FC6E* ++ ID_OUI_FROM_DATABASE=Telegrafia a.s. ++ + OUI:A0FE91* + ID_OUI_FROM_DATABASE=AVAT Automation GmbH + +@@ -63565,6 +63988,12 @@ OUI:A438FC* + OUI:A43A69* + ID_OUI_FROM_DATABASE=Vers Inc + ++OUI:A43BFA* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ ++OUI:A43D78* ++ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD ++ + OUI:A4466B* + ID_OUI_FROM_DATABASE=EOC Technology + +@@ -63604,6 +64033,9 @@ OUI:A45C27* + OUI:A45D36* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A46032* ++ ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD ++ + OUI:A46706* + ID_OUI_FROM_DATABASE=Apple + +@@ -63632,7 +64064,13 @@ OUI:A47C14* + ID_OUI_FROM_DATABASE=ChargeStorm AB + + OUI:A47C1F* +- ID_OUI_FROM_DATABASE=Global Microwave Systems Inc. ++ ID_OUI_FROM_DATABASE=Cobham plc ++ ++OUI:A47E39* ++ ID_OUI_FROM_DATABASE=zte corporation ++ ++OUI:A481EE* ++ ID_OUI_FROM_DATABASE=Nokia Corporation + + OUI:A4856B* + ID_OUI_FROM_DATABASE=Q Electronics Ltd +@@ -63664,6 +64102,9 @@ OUI:A49B13* + OUI:A49EDB* + ID_OUI_FROM_DATABASE=AutoCrib, Inc. + ++OUI:A49F85* ++ ID_OUI_FROM_DATABASE=Lyve Minds, Inc ++ + OUI:A49F89* + ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. + +@@ -63964,6 +64405,9 @@ OUI:A8995C* + OUI:A89B10* + ID_OUI_FROM_DATABASE=inMotion Ltd. + ++OUI:A8A668* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:A8AD3D* + ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd + +@@ -64021,6 +64465,9 @@ OUI:A8F274* + OUI:A8F470* + ID_OUI_FROM_DATABASE=Fujian Newland Communication Science Technologies Co.,Ltd. + ++OUI:A8F7E0* ++ ID_OUI_FROM_DATABASE=PLANET Technology Corporation ++ + OUI:A8F94B* + ID_OUI_FROM_DATABASE=Eltex Enterprise Ltd. + +@@ -64258,12 +64705,21 @@ OUI:ACA22C* + OUI:ACA430* + ID_OUI_FROM_DATABASE=Peerless AV + ++OUI:ACA919* ++ ID_OUI_FROM_DATABASE=TrekStor GmbH ++ ++OUI:ACA9A0* ++ ID_OUI_FROM_DATABASE=Audioengine, Ltd. ++ + OUI:ACAB8D* + ID_OUI_FROM_DATABASE=Lyngso Marine A/S + + OUI:ACB313* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:ACB859* ++ ID_OUI_FROM_DATABASE=Uniband Electronic Corp, ++ + OUI:ACBD0B* + ID_OUI_FROM_DATABASE=IMAC CO.,LTD + +@@ -64375,6 +64831,9 @@ OUI:ACF97E* + OUI:ACFDEC* + ID_OUI_FROM_DATABASE=Apple, Inc + ++OUI:B000B4* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:B00594* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -64465,6 +64924,9 @@ OUI:B06CBF* + OUI:B0750C* + ID_OUI_FROM_DATABASE=QA Cafe + ++OUI:B0754D* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:B075D5* + ID_OUI_FROM_DATABASE=ZTE Corporation + +@@ -64528,9 +64990,15 @@ OUI:B09FBA* + OUI:B0A10A* + ID_OUI_FROM_DATABASE=Pivotal Systems Corporation + ++OUI:B0A37E* ++ ID_OUI_FROM_DATABASE=Qingdao Haier Electronics Co.,Ltd ++ + OUI:B0A72A* + ID_OUI_FROM_DATABASE=Ensemble Designs, Inc. + ++OUI:B0A737* ++ ID_OUI_FROM_DATABASE=Roku, Inc. ++ + OUI:B0A86E* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -64597,6 +65065,9 @@ OUI:B0D09C* + OUI:B0D2F5* + ID_OUI_FROM_DATABASE=Vello Systems, Inc. + ++OUI:B0D59D* ++ ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd ++ + OUI:B0D7C5* + ID_OUI_FROM_DATABASE=STP KFT + +@@ -64813,6 +65284,9 @@ OUI:B499BA* + OUI:B49DB4* + ID_OUI_FROM_DATABASE=Axion Technologies Inc. + ++OUI:B49EAC* ++ ID_OUI_FROM_DATABASE=Imagik Int'l Corp ++ + OUI:B49EE6* + ID_OUI_FROM_DATABASE=SHENZHEN TECHNOLOGY CO LTD + +@@ -64900,6 +65374,9 @@ OUI:B4ED19* + OUI:B4ED54* + ID_OUI_FROM_DATABASE=Wohler Technologies + ++OUI:B4EEB4* ++ ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP ++ + OUI:B4EED4* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -64963,6 +65440,9 @@ OUI:B8288B* + OUI:B829F7* + ID_OUI_FROM_DATABASE=Blaster Tech + ++OUI:B82A72* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:B82ADC* + ID_OUI_FROM_DATABASE=EFR Europäische Funk-Rundsteuerung GmbH + +@@ -65047,6 +65527,9 @@ OUI:B87424* + OUI:B87447* + ID_OUI_FROM_DATABASE=Convergence Technologies + ++OUI:B875C0* ++ ID_OUI_FROM_DATABASE=PayPal, Inc. ++ + OUI:B8763F* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -65062,6 +65545,9 @@ OUI:B8797E* + OUI:B87AC9* + ID_OUI_FROM_DATABASE=Siemens Ltd. + ++OUI:B87CF2* ++ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. ++ + OUI:B8871E* + ID_OUI_FROM_DATABASE=Good Mind Industries Co., Ltd. + +@@ -65152,6 +65638,9 @@ OUI:B8BB6D* + OUI:B8BEBF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:B8BF83* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:B8C1A2* + ID_OUI_FROM_DATABASE=Dragon Path Technologies Co., Limited + +@@ -65171,7 +65660,7 @@ OUI:B8C855* + ID_OUI_FROM_DATABASE=Shanghai GBCOM Communication Technology Co.,Ltd. + + OUI:B8CA3A* +- ID_OUI_FROM_DATABASE=Dell PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:B8CD93* + ID_OUI_FROM_DATABASE=Penetek, Inc +@@ -65215,6 +65704,9 @@ OUI:B8E856* + OUI:B8E937* + ID_OUI_FROM_DATABASE=Sonos, Inc. + ++OUI:B8EE65* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:B8EE79* + ID_OUI_FROM_DATABASE=YWire Technologies, Inc. + +@@ -65284,6 +65776,9 @@ OUI:BC20A4* + OUI:BC20BA* + ID_OUI_FROM_DATABASE=Inspur (Shandong) Electronic Information Co., Ltd + ++OUI:BC25F0* ++ ID_OUI_FROM_DATABASE=3D Display Technologies Co., Ltd. ++ + OUI:BC261D* + ID_OUI_FROM_DATABASE=HONG KONG TECON TECHNOLOGY + +@@ -65311,6 +65806,9 @@ OUI:BC305B* + OUI:BC307D* + ID_OUI_FROM_DATABASE=Wistron Neweb Corp. + ++OUI:BC3400* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:BC35E5* + ID_OUI_FROM_DATABASE=Hydro Systems Company + +@@ -65419,6 +65917,9 @@ OUI:BC8B55* + OUI:BC8CCD* + ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. + ++OUI:BC8D0E* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:BC926B* + ID_OUI_FROM_DATABASE=Apple + +@@ -65572,6 +66073,9 @@ OUI:C038F9* + OUI:C03B8F* + ID_OUI_FROM_DATABASE=Minicom Digital Signage + ++OUI:C03D46* ++ ID_OUI_FROM_DATABASE=Shanghai Mochui Network Technology Co., Ltd ++ + OUI:C03E0F* + ID_OUI_FROM_DATABASE=BSkyB Ltd + +@@ -65602,6 +66106,9 @@ OUI:C04A00* + OUI:C04DF7* + ID_OUI_FROM_DATABASE=SERELEC + ++OUI:C056E3* ++ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. ++ + OUI:C057BC* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -65614,6 +66121,9 @@ OUI:C05E6F* + OUI:C05E79* + ID_OUI_FROM_DATABASE=SHENZHEN HUAXUN ARK TECHNOLOGIES CO.,LTD + ++OUI:C06118* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:C0626B* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -65794,6 +66304,9 @@ OUI:C40415* + OUI:C40528* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:C4084A* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:C40938* + ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd + +@@ -65848,6 +66361,9 @@ OUI:C4291D* + OUI:C42C03* + ID_OUI_FROM_DATABASE=Apple + ++OUI:C4346B* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:C436DA* + ID_OUI_FROM_DATABASE=Rusteletech Ltd. + +@@ -65938,6 +66454,9 @@ OUI:C467B5* + OUI:C46AB7* + ID_OUI_FROM_DATABASE=Xiaomi Technology,Inc. + ++OUI:C46BB4* ++ ID_OUI_FROM_DATABASE=myIDkey ++ + OUI:C46DF1* + ID_OUI_FROM_DATABASE=DataGravity + +@@ -65983,6 +66502,9 @@ OUI:C48508* + OUI:C488E5* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:C4913A* ++ ID_OUI_FROM_DATABASE=Shenzhen Sanland Electronic Co., ltd. ++ + OUI:C49300* + ID_OUI_FROM_DATABASE=8Devices + +@@ -66025,6 +66547,9 @@ OUI:C4C755* + OUI:C4C919* + ID_OUI_FROM_DATABASE=Energy Imports Ltd + ++OUI:C4C9EC* ++ ID_OUI_FROM_DATABASE=D&D GROUP sp. z o.o. ++ + OUI:C4CAD9* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + +@@ -66113,7 +66638,7 @@ OUI:C81E8E* + ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd + + OUI:C81F66* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:C8208E* + ID_OUI_FROM_DATABASE=Storagedata +@@ -66127,6 +66652,9 @@ OUI:C82A14* + OUI:C82E94* + ID_OUI_FROM_DATABASE=Halfa Enterprise Co., Ltd. + ++OUI:C83168* ++ ID_OUI_FROM_DATABASE=eZEX corporation ++ + OUI:C83232* + ID_OUI_FROM_DATABASE=Hunting Innova + +@@ -66238,6 +66766,9 @@ OUI:C89C1D* + OUI:C89CDC* + ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. + ++OUI:C89F1D* ++ ID_OUI_FROM_DATABASE=SHENZHEN COMMUNICATION TECHNOLOGIES CO.,LTD ++ + OUI:C89F42* + ID_OUI_FROM_DATABASE=VDII Innovation AB + +@@ -66274,6 +66805,9 @@ OUI:C8B373* + OUI:C8B5B7* + ID_OUI_FROM_DATABASE=Apple + ++OUI:C8BA94* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ + OUI:C8BBD3* + ID_OUI_FROM_DATABASE=Embrane + +@@ -66316,6 +66850,9 @@ OUI:C8D3A3* + OUI:C8D429* + ID_OUI_FROM_DATABASE=Muehlbauer AG + ++OUI:C8D590* ++ ID_OUI_FROM_DATABASE=FLIGHT DATA SYSTEMS ++ + OUI:C8D5FE* + ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd + +@@ -66337,6 +66874,9 @@ OUI:C8E0EB* + OUI:C8E1A7* + ID_OUI_FROM_DATABASE=Vertu Corporation Limited + ++OUI:C8E42F* ++ ID_OUI_FROM_DATABASE=Technical Research Design and Development ++ + OUI:C8EE08* + ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD + +@@ -66358,6 +66898,9 @@ OUI:C8F386* + OUI:C8F406* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:C8F650* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:C8F68D* + ID_OUI_FROM_DATABASE=S.E.TECHNOLOGIES LIMITED + +@@ -66379,6 +66922,9 @@ OUI:C8FB26* + OUI:C8FE30* + ID_OUI_FROM_DATABASE=Bejing DAYO Mobile Communication Technology Ltd. + ++OUI:C8FF77* ++ ID_OUI_FROM_DATABASE=Dyson Limited ++ + OUI:CC0080* + ID_OUI_FROM_DATABASE=BETTINI SRL + +@@ -66394,6 +66940,9 @@ OUI:CC051B* + OUI:CC07AB* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:CC07E4* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:CC08E0* + ID_OUI_FROM_DATABASE=Apple + +@@ -66574,6 +67123,9 @@ OUI:CC9E00* + OUI:CC9F35* + ID_OUI_FROM_DATABASE=Transbit Sp. z o.o. + ++OUI:CCA0E5* ++ ID_OUI_FROM_DATABASE=DZG Metering GmbH ++ + OUI:CCA374* + ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd + +@@ -66595,6 +67147,9 @@ OUI:CCB3F8* + OUI:CCB55A* + ID_OUI_FROM_DATABASE=Fraunhofer ITWM + ++OUI:CCB691* ++ ID_OUI_FROM_DATABASE=NECMagnusCommunications ++ + OUI:CCB888* + ID_OUI_FROM_DATABASE=AnB Securite s.a. + +@@ -66610,6 +67165,9 @@ OUI:CCBE71* + OUI:CCC104* + ID_OUI_FROM_DATABASE=Applied Technical Systems + ++OUI:CCC3EA* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:CCC50A* + ID_OUI_FROM_DATABASE=SHENZHEN DAJIAHAO TECHNOLOGY CO.,LTD + +@@ -66643,6 +67201,9 @@ OUI:CCD811* + OUI:CCD9E9* + ID_OUI_FROM_DATABASE=SCR Engineers Ltd. + ++OUI:CCE1D5* ++ ID_OUI_FROM_DATABASE=Buffalo Inc. ++ + OUI:CCE798* + ID_OUI_FROM_DATABASE=My Social Stuff + +@@ -66778,6 +67339,12 @@ OUI:D059C3* + OUI:D05A0F* + ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD + ++OUI:D05AF1* ++ ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd ++ ++OUI:D05FB8* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:D05FCE* + ID_OUI_FROM_DATABASE=Hitachi Data Systems + +@@ -66799,6 +67366,9 @@ OUI:D0699E* + OUI:D069D0* + ID_OUI_FROM_DATABASE=Verto Medical Solutions, LLC + ++OUI:D072DC* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:D0737F* + ID_OUI_FROM_DATABASE=Mini-Circuits + +@@ -66811,6 +67381,9 @@ OUI:D073D5* + OUI:D075BE* + ID_OUI_FROM_DATABASE=Reno A&E + ++OUI:D07650* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:D07AB5* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -66895,6 +67468,9 @@ OUI:D0C42F* + OUI:D0C789* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:D0C7C0* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:D0CDE1* + ID_OUI_FROM_DATABASE=Scientech Electronics + +@@ -67018,6 +67594,9 @@ OUI:D41F0C* + OUI:D4206D* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:D42122* ++ ID_OUI_FROM_DATABASE=Sercomm Corporation ++ + OUI:D4223F* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + +@@ -67099,6 +67678,9 @@ OUI:D464F7* + OUI:D466A8* + ID_OUI_FROM_DATABASE=Riedo Networks GmbH + ++OUI:D46761* ++ ID_OUI_FROM_DATABASE=SAHAB TECHNOLOGY ++ + OUI:D467E7* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + +@@ -67168,6 +67750,9 @@ OUI:D49524* + OUI:D496DF* + ID_OUI_FROM_DATABASE=SUNGJIN C&T CO.,LTD + ++OUI:D4970B* ++ ID_OUI_FROM_DATABASE=XIAOMI CORPORATION ++ + OUI:D49A20* + ID_OUI_FROM_DATABASE=Apple + +@@ -67207,6 +67792,9 @@ OUI:D4AE52* + OUI:D4B110* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:D4B43E* ++ ID_OUI_FROM_DATABASE=Messcomp Datentechnik GmbH ++ + OUI:D4BED9* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -67237,6 +67825,9 @@ OUI:D4CBAF* + OUI:D4CEB8* + ID_OUI_FROM_DATABASE=Enatel LTD + ++OUI:D4CFF9* ++ ID_OUI_FROM_DATABASE=Shenzhen Sen5 Technology Co., Ltd. ++ + OUI:D4D184* + ID_OUI_FROM_DATABASE=ADB Broadband Italia + +@@ -67258,6 +67849,9 @@ OUI:D4D919* + OUI:D4DF57* + ID_OUI_FROM_DATABASE=Alpinion Medical Systems + ++OUI:D4E08E* ++ ID_OUI_FROM_DATABASE=ValueHD Corporation ++ + OUI:D4E32C* + ID_OUI_FROM_DATABASE=S. Siedle & Sohne + +@@ -67375,6 +67969,9 @@ OUI:D84606* + OUI:D8490B* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:D8492F* ++ ID_OUI_FROM_DATABASE=CANON INC. ++ + OUI:D84B2A* + ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. + +@@ -67397,7 +67994,7 @@ OUI:D85D84* + ID_OUI_FROM_DATABASE=CAx soft GmbH + + OUI:D86194* +- ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido ++ ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido + + OUI:D862DB* + ID_OUI_FROM_DATABASE=Eno Inc. +@@ -67438,6 +68035,9 @@ OUI:D87988* + OUI:D87CDD* + ID_OUI_FROM_DATABASE=SANIX INCORPORATED + ++OUI:D87EB1* ++ ID_OUI_FROM_DATABASE=x.o.ware, inc. ++ + OUI:D881CE* + ID_OUI_FROM_DATABASE=AHN INC. + +@@ -67462,6 +68062,9 @@ OUI:D8973B* + OUI:D89760* + ID_OUI_FROM_DATABASE=C2 Development, Inc. + ++OUI:D8977C* ++ ID_OUI_FROM_DATABASE=Grey Innovation ++ + OUI:D89D67* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -67525,6 +68128,9 @@ OUI:D8C7C8* + OUI:D8C99D* + ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED + ++OUI:D8CF9C* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:D8D1CB* + ID_OUI_FROM_DATABASE=Apple + +@@ -67555,6 +68161,9 @@ OUI:D8DD5F* + OUI:D8DDFD* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:D8DECE* ++ ID_OUI_FROM_DATABASE=ISUNG CO.,LTD ++ + OUI:D8DF0D* + ID_OUI_FROM_DATABASE=beroNet GmbH + +@@ -67660,6 +68269,9 @@ OUI:DC3350* + OUI:DC37D2* + ID_OUI_FROM_DATABASE=Hunan HKT Electronic Technology Co., Ltd + ++OUI:DC38E1* ++ ID_OUI_FROM_DATABASE=Juniper networks ++ + OUI:DC3A5E* + ID_OUI_FROM_DATABASE=Roku, Inc + +@@ -67693,6 +68305,9 @@ OUI:DC5E36* + OUI:DC647C* + ID_OUI_FROM_DATABASE=C.R.S. iiMotion GmbH + ++OUI:DC663A* ++ ID_OUI_FROM_DATABASE=Apacer Technology Inc. ++ + OUI:DC6F00* + ID_OUI_FROM_DATABASE=Livescribe, Inc. + +@@ -67816,6 +68431,9 @@ OUI:DCE71C* + OUI:DCF05D* + ID_OUI_FROM_DATABASE=Letta Teknoloji + ++OUI:DCF110* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:DCF755* + ID_OUI_FROM_DATABASE=SITRONIK + +@@ -67939,6 +68557,9 @@ OUI:E063E5* + OUI:E064BB* + ID_OUI_FROM_DATABASE=DigiView S.r.l. + ++OUI:E06678* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:E067B3* + ID_OUI_FROM_DATABASE=C-Data Technology Co., Ltd + +@@ -68071,6 +68692,9 @@ OUI:E0CA94* + OUI:E0CB4E* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + ++OUI:E0CBEE* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:E0CEC3* + ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP + +@@ -68152,6 +68776,9 @@ OUI:E40439* + OUI:E4115B* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:E41218* ++ ID_OUI_FROM_DATABASE=ShenZhen Rapoo Technology Co., Ltd. ++ + OUI:E4121D* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -68341,6 +68968,9 @@ OUI:E4C806* + OUI:E4CE8F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:E4D332* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:E4D3F1* + ID_OUI_FROM_DATABASE=Cisco + +@@ -68371,6 +69001,9 @@ OUI:E4F365* + OUI:E4F3E3* + ID_OUI_FROM_DATABASE=Shanghai iComhome Co.,Ltd. + ++OUI:E4F4C6* ++ ID_OUI_FROM_DATABASE=NETGEAR ++ + OUI:E4F7A1* + ID_OUI_FROM_DATABASE=Datafox GmbH + +@@ -68671,6 +69304,9 @@ OUI:E8EADA* + OUI:E8EDF3* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:E8EF89* ++ ID_OUI_FROM_DATABASE=OPMEX Tech. ++ + OUI:E8F1B0* + ID_OUI_FROM_DATABASE=SAGEMCOM SAS + +@@ -68719,6 +69355,9 @@ OUI:EC2AF0* + OUI:EC2C49* + ID_OUI_FROM_DATABASE=University of Tokyo + ++OUI:EC2E4E* ++ ID_OUI_FROM_DATABASE=HITACHI-LG DATA STORAGE INC ++ + OUI:EC3091* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -68881,6 +69520,9 @@ OUI:ECE09B* + OUI:ECE1A9* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:ECE512* ++ ID_OUI_FROM_DATABASE=tado GmbH ++ + OUI:ECE555* + ID_OUI_FROM_DATABASE=Hirschmann Automation + +@@ -68909,7 +69551,7 @@ OUI:ECF35B* + ID_OUI_FROM_DATABASE=Nokia Corporation + + OUI:ECF4BB* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:ECF72B* + ID_OUI_FROM_DATABASE=HD DIGITAL TECH CO., LTD. +@@ -68948,7 +69590,7 @@ OUI:F01C13* + ID_OUI_FROM_DATABASE=LG Electronics + + OUI:F01FAF* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F0219D* + ID_OUI_FROM_DATABASE=Cal-Comp Electronics & Communications Company Ltd. +@@ -69085,6 +69727,9 @@ OUI:F08A28* + OUI:F08BFE* + ID_OUI_FROM_DATABASE=COSTEL.,CO.LTD + ++OUI:F08CFB* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:F08EDB* + ID_OUI_FROM_DATABASE=VeloCloud Networks + +@@ -69241,6 +69886,9 @@ OUI:F4044C* + OUI:F4068D* + ID_OUI_FROM_DATABASE=devolo AG + ++OUI:F406A5* ++ ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. ++ + OUI:F40B93* + ID_OUI_FROM_DATABASE=Research In Motion + +@@ -69427,6 +70075,9 @@ OUI:F4B7E2* + OUI:F4BD7C* + ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD + ++OUI:F4C447* ++ ID_OUI_FROM_DATABASE=Coagent International Enterprise Limited ++ + OUI:F4C6D7* + ID_OUI_FROM_DATABASE=blackned GmbH + +@@ -69478,6 +70129,9 @@ OUI:F4F15A* + OUI:F4F5A5* + ID_OUI_FROM_DATABASE=Nokia corporation + ++OUI:F4F5E8* ++ ID_OUI_FROM_DATABASE=Google ++ + OUI:F4F951* + ID_OUI_FROM_DATABASE=Apple + +@@ -69502,6 +70156,9 @@ OUI:F80BD0* + OUI:F80CF3* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:F80D43* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. ++ + OUI:F80DEA* + ID_OUI_FROM_DATABASE=ZyCast Technology Inc. + +@@ -69586,6 +70243,9 @@ OUI:F8472D* + OUI:F84897* + ID_OUI_FROM_DATABASE=Hitachi, Ltd. + ++OUI:F84A73* ++ ID_OUI_FROM_DATABASE=EUMTECH CO., LTD ++ + OUI:F84A7F* + ID_OUI_FROM_DATABASE=Innometriks Inc + +@@ -69622,6 +70282,12 @@ OUI:F85F2A* + OUI:F862AA* + ID_OUI_FROM_DATABASE=xn systems + ++OUI:F86601* ++ ID_OUI_FROM_DATABASE=Suzhou Chi-tek information technology Co., Ltd ++ ++OUI:F866D1* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. ++ + OUI:F866F2* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -69710,13 +70376,13 @@ OUI:F8AC6D* + ID_OUI_FROM_DATABASE=Deltenna Ltd + + OUI:F8B156* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F8B599* + ID_OUI_FROM_DATABASE=Guangzhou CHNAVS Digital Technology Co.,Ltd + + OUI:F8BC12* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F8C001* + ID_OUI_FROM_DATABASE=Juniper Networks +@@ -69764,7 +70430,7 @@ OUI:F8DB7F* + ID_OUI_FROM_DATABASE=HTC Corporation + + OUI:F8DB88* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F8DC7A* + ID_OUI_FROM_DATABASE=Variscite LTD +@@ -69892,6 +70558,9 @@ OUI:FC1FC0* + OUI:FC229C* + ID_OUI_FROM_DATABASE=Han Kyung I Net Co.,Ltd. + ++OUI:FC2325* ++ ID_OUI_FROM_DATABASE=EosTek (Shenzhen) Co., Ltd. ++ + OUI:FC253F* + ID_OUI_FROM_DATABASE=Apple + +@@ -69928,6 +70597,9 @@ OUI:FC455F* + OUI:FC48EF* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:FC4AE9* ++ ID_OUI_FROM_DATABASE=Castlenet Technology Inc. ++ + OUI:FC4B1C* + ID_OUI_FROM_DATABASE=INTERSENSOR S.R.L. + +@@ -70030,6 +70702,9 @@ OUI:FCBBA1* + OUI:FCC23D* + ID_OUI_FROM_DATABASE=Atmel Corporation + ++OUI:FCC2DE* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:FCC734* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -70048,6 +70723,9 @@ OUI:FCD4F2* + OUI:FCD4F6* + ID_OUI_FROM_DATABASE=Messana Air.Ray Conditioning s.r.l. + ++OUI:FCD5D9* ++ ID_OUI_FROM_DATABASE=Shenzhen SDMC Technology Co., Ltd. ++ + OUI:FCD6BD* + ID_OUI_FROM_DATABASE=Robert Bosch GmbH + +@@ -70060,6 +70738,9 @@ OUI:FCDB96* + OUI:FCDD55* + ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd + ++OUI:FCE186* ++ ID_OUI_FROM_DATABASE=A3M Co., LTD ++ + OUI:FCE192* + ID_OUI_FROM_DATABASE=Sichuan Jinwangtong Electronic Science&Technology Co,.Ltd + +@@ -70078,12 +70759,18 @@ OUI:FCE892* + OUI:FCEDB9* + ID_OUI_FROM_DATABASE=Arrayent + ++OUI:FCF152* ++ ID_OUI_FROM_DATABASE=Sony Corporation ++ + OUI:FCF1CD* + ID_OUI_FROM_DATABASE=OPTEX-FA CO.,LTD. + + OUI:FCF528* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + ++OUI:FCF647* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:FCF8AE* + ID_OUI_FROM_DATABASE=Intel Corporate + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 7f833e3..371a685 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -890,6 +890,9 @@ pci:v00001000d0000005Bsv00001000sd00009295* + pci:v00001000d0000005Bsv00001014sd0000040B* + ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller + ++pci:v00001000d0000005Bsv00001014sd0000040C* ++ ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller ++ + pci:v00001000d0000005Bsv00001014sd00000412* + ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller + +@@ -917,6 +920,9 @@ pci:v00001000d0000005Bsv00001028sd00001F37* + pci:v00001000d0000005Bsv00001028sd00001F38* + ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) + ++pci:v00001000d0000005Bsv000015D9sd00000690* ++ ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB ++ + pci:v00001000d0000005Bsv00008086sd00003510* + ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller + +@@ -950,6 +956,12 @@ pci:v00001000d0000005Dsv00001028sd00001F49* + pci:v00001000d0000005Dsv00001028sd00001F4A* + ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) + ++pci:v00001000d0000005Dsv000017AAsd00001052* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i ++ ++pci:v00001000d0000005Dsv000017AAsd00001053* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix ++ + pci:v00001000d0000005E* + ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS + +@@ -1163,6 +1175,9 @@ pci:v00001000d00000073sv000015D9sd00000400* + pci:v00001000d00000073sv00001734sd00001177* + ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) + ++pci:v00001000d00000073sv000017AAsd00001051* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i ++ + pci:v00001000d00000073sv00008086sd0000350D* + ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller + +@@ -1598,6 +1613,9 @@ pci:v00001000d00001960sv00008086sd00000520* + pci:v00001000d00001960sv00008086sd00000523* + ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 + ++pci:v00001000d00003050* ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 ++ + pci:v00001000d00006001* + ID_MODEL_FROM_DATABASE=DX1 Multiformat Broadcast HD/SD Encoder/Decoder + +@@ -1665,7 +1683,7 @@ pci:v00001002d0000130E* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d0000130F* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] + + pci:v00001002d00001310* + ID_MODEL_FROM_DATABASE=Kaveri +@@ -1673,9 +1691,12 @@ pci:v00001002d00001310* + pci:v00001002d00001311* + ID_MODEL_FROM_DATABASE=Kaveri + +-pci:v00001002d00001313* ++pci:v00001002d00001312* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d00001313* ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] ++ + pci:v00001002d00001314* + ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio + +@@ -1686,6 +1707,9 @@ pci:v00001002d00001315* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d00001316* ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] ++ ++pci:v00001002d00001317* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d0000131B* +@@ -1694,6 +1718,9 @@ pci:v00001002d0000131B* + pci:v00001002d0000131C* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d0000131D* ++ ID_MODEL_FROM_DATABASE=Kaveri ++ + pci:v00001002d00001714* + ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] + +@@ -4176,20 +4203,41 @@ pci:v00001002d00006603* + ID_MODEL_FROM_DATABASE=Mars + + pci:v00001002d00006604* +- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M265] ++ ID_MODEL_FROM_DATABASE=Opal XT [Radeon R7 M265] + + pci:v00001002d00006605* +- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M260] ++ ID_MODEL_FROM_DATABASE=Opal PRO [Radeon R7 M260] + + pci:v00001002d00006606* + ID_MODEL_FROM_DATABASE=Mars XTX [Radeon HD 8790M] + + pci:v00001002d00006607* +- ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M] ++ ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M / R5 M240] + + pci:v00001002d00006610* + ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] + ++pci:v00001002d00006610sv00001019sd00000030* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001028sd00002120* ++ ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ++pci:v00001002d00006610sv00001028sd00002322* ++ ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ++pci:v00001002d00006610sv00001462sd00002910* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001462sd00002911* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001642sd00003C81* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001642sd00003C91* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ + pci:v00001002d00006611* + ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] + +@@ -4278,13 +4326,13 @@ pci:v00001002d00006663sv00001025sd00000846* + ID_MODEL_FROM_DATABASE=Radeon HD 8570A + + pci:v00001002d00006664* +- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M200 Series] ++ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] + + pci:v00001002d00006665* +- ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M200 Series] ++ ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] + + pci:v00001002d00006667* +- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M200 Series] ++ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] + + pci:v00001002d0000666F* + ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] +@@ -5003,6 +5051,9 @@ pci:v00001002d00006759sv00001B0Asd000090B5* + pci:v00001002d00006759sv00001B0Asd000090B6* + ID_MODEL_FROM_DATABASE=Radeon HD 7570 + ++pci:v00001002d0000675B* ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] ++ + pci:v00001002d0000675D* + ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 7570] + +@@ -5801,6 +5852,9 @@ pci:v00001002d00006798sv00001092sd00003000* + pci:v00001002d00006798sv00001458sd00002261* + ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] + ++pci:v00001002d00006798sv00001462sd00002774* ++ ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE ++ + pci:v00001002d00006798sv00001682sd00003211* + ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition + +@@ -5823,7 +5877,7 @@ pci:v00001002d00006799* + ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] + + pci:v00001002d0000679A* +- ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950] ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] + + pci:v00001002d0000679Asv00001002sd00000B01* + ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM +@@ -5903,6 +5957,9 @@ pci:v00001002d00006801* + pci:v00001002d00006801sv00001002sd00000124* + ID_MODEL_FROM_DATABASE=Radeon HD 8970M + ++pci:v00001002d00006801sv00001462sd00001117* ++ ID_MODEL_FROM_DATABASE=Radeon R9 M290X ++ + pci:v00001002d00006801sv00008086sd00002110* + ID_MODEL_FROM_DATABASE=Radeon HD 8970M + +@@ -5966,6 +6023,12 @@ pci:v00001002d00006821* + pci:v00001002d00006821sv00001002sd0000031E* + ID_MODEL_FROM_DATABASE=FirePro SX4000 + ++pci:v00001002d00006821sv00001028sd000005CC* ++ ID_MODEL_FROM_DATABASE=FirePro M5100 ++ ++pci:v00001002d00006821sv00001028sd000015CC* ++ ID_MODEL_FROM_DATABASE=FirePro M5100 ++ + pci:v00001002d00006822* + ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] + +@@ -6039,7 +6102,7 @@ pci:v00001002d0000683B* + ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7700 Series] + + pci:v00001002d0000683D* +- ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] + + pci:v00001002d0000683Dsv00001002sd00000030* + ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM +@@ -6050,8 +6113,14 @@ pci:v00001002d0000683Dsv00001019sd00000030* + pci:v00001002d0000683Dsv0000103Csd00006890* + ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM + ++pci:v00001002d0000683Dsv00001043sd00008760* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ++pci:v00001002d0000683Dsv0000174Bsd00008304* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ + pci:v00001002d0000683F* +- ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750] ++ ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] + + pci:v00001002d00006840* + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] +@@ -8891,6 +8960,9 @@ pci:v00001002d0000985E* + pci:v00001002d0000985F* + ID_MODEL_FROM_DATABASE=Mullins + ++pci:v00001002d00009900* ++ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660G] ++ + pci:v00001002d00009901* + ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660D] + +@@ -9498,7 +9570,7 @@ pci:v00001011d0000000D* + ID_MODEL_FROM_DATABASE=PBXGB [TGA2] + + pci:v00001011d0000000F* +- ID_MODEL_FROM_DATABASE=PCI-to-PDQ Interface Chip [PFI] ++ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] + + pci:v00001011d0000000Fsv00001011sd0000DEF1* + ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) +@@ -9596,6 +9668,9 @@ pci:v00001011d00000019sv00001186sd00001102* + pci:v00001011d00000019sv00001186sd00001112* + ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet + ++pci:v00001011d00000019sv000011F0sd00004235* ++ ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] ++ + pci:v00001011d00000019sv00001259sd00002800* + ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet + +@@ -9761,6 +9836,9 @@ pci:v00001013d000000B0* + pci:v00001013d000000B8* + ID_MODEL_FROM_DATABASE=GD 5446 + ++pci:v00001013d000000B8sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001013d000000BC* + ID_MODEL_FROM_DATABASE=GD 5480 + +@@ -10487,6 +10565,9 @@ pci:v0000101Ed00001960sv00001028sd00000511* + pci:v0000101Ed00001960sv0000103Csd000060E7* + ID_MODEL_FROM_DATABASE=NetRAID-1M + ++pci:v0000101Ed00001960sv0000103Csd000060E8* ++ ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] ++ + pci:v0000101Ed00009010* + ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller + +@@ -10811,6 +10892,9 @@ pci:v00001022d00002003* + pci:v00001022d00002020* + ID_MODEL_FROM_DATABASE=53c974 [PCscsi] + ++pci:v00001022d00002020sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001022d00002040* + ID_MODEL_FROM_DATABASE=79c974 + +@@ -12263,6 +12347,9 @@ pci:v0000102Bd00002007* + pci:v0000102Bd00002527* + ID_MODEL_FROM_DATABASE=Millennium G550 + ++pci:v0000102Bd00002527sv0000102Bsd00000F42* ++ ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI ++ + pci:v0000102Bd00002527sv0000102Bsd00000F83* + ID_MODEL_FROM_DATABASE=Millennium G550 + +@@ -12515,6 +12602,9 @@ pci:v0000102Bd00004949* + pci:v0000102Bd00004949sv0000102Bsd00000010* + ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber + ++pci:v0000102Bd00004949sv0000102Bsd00000011* ++ ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber ++ + pci:v0000102Bd00004949sv0000102Bsd00000020* + ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber + +@@ -12527,6 +12617,18 @@ pci:v0000102Bd00004949sv0000102Bsd00000040* + pci:v0000102Bd00004949sv0000102Bsd00000050* + ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber + ++pci:v0000102Bd00004949sv0000102Bsd00001010* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber ++ ++pci:v0000102Bd00004949sv0000102Bsd00001015* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber ++ ++pci:v0000102Bd00004949sv0000102Bsd00001020* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber ++ ++pci:v0000102Bd00004949sv0000102Bsd00001050* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber ++ + pci:v0000102Bd00004CDC* + ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator + +@@ -12911,6 +13013,9 @@ pci:v00001033d00000194sv00001028sd000004DA* + pci:v00001033d00000194sv00001043sd00008413* + ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard + ++pci:v00001033d00000194sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001033d00000194sv00001B96sd00000001* + ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card + +@@ -13853,9 +13958,6 @@ pci:v0000103Cd00004037* + pci:v0000103Cd0000403B* + ID_MODEL_FROM_DATABASE=PCIe Root Port + +-pci:v0000103Cd000060E8* +- ID_MODEL_FROM_DATABASE=NetRAID-2M : ZX1/M (OEM AMI MegaRAID 493) +- + pci:v0000103E* + ID_VENDOR_FROM_DATABASE=Solliday Engineering + +@@ -14159,6 +14261,9 @@ pci:v0000104Ad00000010* + pci:v0000104Ad00000010sv0000104Asd00004018* + ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) + ++pci:v0000104Ad00000010sv00001681sd00000010* ++ ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] ++ + pci:v0000104Ad00000010sv00001681sd00000028* + ID_MODEL_FROM_DATABASE=3D Prophet 4000XT + +@@ -14426,6 +14531,9 @@ pci:v0000104Cd00008022sv0000104Csd00008023* + pci:v0000104Cd00008023* + ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] + ++pci:v0000104Cd00008023sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v0000104Cd00008023sv0000103Csd0000088C* + ID_MODEL_FROM_DATABASE=NC8000 laptop + +@@ -15233,6 +15341,9 @@ pci:v00001054d0000302C* + pci:v00001054d0000302D* + ID_MODEL_FROM_DATABASE=M001 PCI Express Switch Downstream Port + ++pci:v00001054d00003070* ++ ID_MODEL_FROM_DATABASE=Hitachi FIVE-FX Fibre Channel to PCIe HBA ++ + pci:v00001054d00003505* + ID_MODEL_FROM_DATABASE=SH7751 PCI Controller (PCIC) + +@@ -16208,6 +16319,9 @@ pci:v0000106Bd0000003E* + pci:v0000106Bd0000003F* + ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB + ++pci:v0000106Bd0000003Fsv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v0000106Bd00000040* + ID_MODEL_FROM_DATABASE=K2 KeyLargo USB + +@@ -16517,6 +16631,9 @@ pci:v00001077d00002422sv0000103Csd000012DD* + pci:v00001077d00002432* + ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA + ++pci:v00001077d00002432sv0000103Csd00007040* ++ ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] ++ + pci:v00001077d00002532* + ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA + +@@ -16815,7 +16932,7 @@ pci:v0000108Dd00000002* + ID_MODEL_FROM_DATABASE=16/4 Token Ring + + pci:v0000108Dd00000004* +- ID_MODEL_FROM_DATABASE=RapidFire 3139 Token-Ring 16/4 PCI Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter + + pci:v0000108Dd00000004sv0000108Dsd00000004* + ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter +@@ -17294,6 +17411,30 @@ pci:v00001093d00002CC0* + pci:v00001093d00002DB0* + ID_MODEL_FROM_DATABASE=PCI-6608 + ++pci:v00001093d0000702C* ++ ID_MODEL_FROM_DATABASE=PXI-7831R ++ ++pci:v00001093d0000702D* ++ ID_MODEL_FROM_DATABASE=PCI-7831R ++ ++pci:v00001093d0000702E* ++ ID_MODEL_FROM_DATABASE=PXI-7811R ++ ++pci:v00001093d0000702F* ++ ID_MODEL_FROM_DATABASE=PCI-7811R ++ ++pci:v00001093d00007055* ++ ID_MODEL_FROM_DATABASE=PXI-7830R ++ ++pci:v00001093d00007056* ++ ID_MODEL_FROM_DATABASE=PCI-7830R ++ ++pci:v00001093d00007074* ++ ID_MODEL_FROM_DATABASE=PXI-7833R ++ ++pci:v00001093d00007083* ++ ID_MODEL_FROM_DATABASE=PCI-7833R ++ + pci:v00001093d00007085* + ID_MODEL_FROM_DATABASE=PCI-6509 + +@@ -17369,6 +17510,9 @@ pci:v00001093d0000714C* + pci:v00001093d0000714D* + ID_MODEL_FROM_DATABASE=PCI-5114 + ++pci:v00001093d00007152* ++ ID_MODEL_FROM_DATABASE=PCI-5640R ++ + pci:v00001093d0000716C* + ID_MODEL_FROM_DATABASE=PCI-6225 + +@@ -17378,6 +17522,12 @@ pci:v00001093d0000717D* + pci:v00001093d0000717F* + ID_MODEL_FROM_DATABASE=PCIe-6259 + ++pci:v00001093d00007193* ++ ID_MODEL_FROM_DATABASE=PXI-7813R ++ ++pci:v00001093d00007194* ++ ID_MODEL_FROM_DATABASE=PCI-7813R ++ + pci:v00001093d000071BC* + ID_MODEL_FROM_DATABASE=PCI-6221 (37pin) + +@@ -17420,6 +17570,51 @@ pci:v00001093d0000734A* + pci:v00001093d0000737D* + ID_MODEL_FROM_DATABASE=PXI-5124EX + ++pci:v00001093d00007384* ++ ID_MODEL_FROM_DATABASE=PXI-7851R ++ ++pci:v00001093d00007385* ++ ID_MODEL_FROM_DATABASE=PXI-7852R ++ ++pci:v00001093d00007386* ++ ID_MODEL_FROM_DATABASE=PCIe-7851R ++ ++pci:v00001093d00007387* ++ ID_MODEL_FROM_DATABASE=PCIe-7852R ++ ++pci:v00001093d00007390* ++ ID_MODEL_FROM_DATABASE=PXI-7841R ++ ++pci:v00001093d00007391* ++ ID_MODEL_FROM_DATABASE=PXI-7842R ++ ++pci:v00001093d00007392* ++ ID_MODEL_FROM_DATABASE=PXI-7853R ++ ++pci:v00001093d00007393* ++ ID_MODEL_FROM_DATABASE=PCIe-7841R ++ ++pci:v00001093d00007394* ++ ID_MODEL_FROM_DATABASE=PCIe-7842R ++ ++pci:v00001093d000073A5* ++ ID_MODEL_FROM_DATABASE=PXIe-5641R ++ ++pci:v00001093d000073D5* ++ ID_MODEL_FROM_DATABASE=PXI-7951R ++ ++pci:v00001093d000073D6* ++ ID_MODEL_FROM_DATABASE=PXI-7952R ++ ++pci:v00001093d000073D7* ++ ID_MODEL_FROM_DATABASE=PXI-7953R ++ ++pci:v00001093d000073E1* ++ ID_MODEL_FROM_DATABASE=PXI-7854R ++ ++pci:v00001093d000073EC* ++ ID_MODEL_FROM_DATABASE=PXI-7954R ++ + pci:v00001093d000073F0* + ID_MODEL_FROM_DATABASE=PXI-5153 + +@@ -17438,6 +17633,18 @@ pci:v00001093d00007460* + pci:v00001093d00007461* + ID_MODEL_FROM_DATABASE=PCI-5154EX + ++pci:v00001093d00007539* ++ ID_MODEL_FROM_DATABASE=NI 9157 ++ ++pci:v00001093d0000753A* ++ ID_MODEL_FROM_DATABASE=NI 9159 ++ ++pci:v00001093d00007626* ++ ID_MODEL_FROM_DATABASE=NI 9154 ++ ++pci:v00001093d00007627* ++ ID_MODEL_FROM_DATABASE=NI 9155 ++ + pci:v00001093d0000B001* + ID_MODEL_FROM_DATABASE=IMAQ-PCI-1408 + +@@ -17469,7 +17676,28 @@ pci:v00001093d0000B091* + ID_MODEL_FROM_DATABASE=IMAQ-PXI-1411 + + pci:v00001093d0000C4C4* +- ID_MODEL_FROM_DATABASE=PXIe-4353/5160 ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device ++ ++pci:v00001093d0000C4C4sv00001093sd000074B2* ++ ID_MODEL_FROM_DATABASE=PXIe-4353 ++ ++pci:v00001093d0000C4C4sv00001093sd000074D0* ++ ID_MODEL_FROM_DATABASE=PXIe-7961R ++ ++pci:v00001093d0000C4C4sv00001093sd000074E2* ++ ID_MODEL_FROM_DATABASE=PXIe-7962R ++ ++pci:v00001093d0000C4C4sv00001093sd000074E3* ++ ID_MODEL_FROM_DATABASE=PXIe-7965R ++ ++pci:v00001093d0000C4C4sv00001093sd00007553* ++ ID_MODEL_FROM_DATABASE=PCIe-1473R ++ ++pci:v00001093d0000C4C4sv00001093sd000075CE* ++ ID_MODEL_FROM_DATABASE=PXIe-7966R ++ ++pci:v00001093d0000C4C4sv00001093sd000076B7* ++ ID_MODEL_FROM_DATABASE=PXIe-7975R + + pci:v00001093d0000C4C4sv00001093sd000076D0* + ID_MODEL_FROM_DATABASE=PXIe-5160 +@@ -17696,9 +17924,6 @@ pci:v0000109Ed0000036Esv00001461sd00000761* + pci:v0000109Ed0000036Esv00001461sd00000771* + ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 + +-pci:v0000109Ed0000036Esv00001464sd0000AA00* +- ID_MODEL_FROM_DATABASE=iTuner Spectra8 +- + pci:v0000109Ed0000036Esv000014F1sd00000001* + ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC + +@@ -18152,6 +18377,9 @@ pci:v000010A9d00008001* + pci:v000010A9d00008002* + ID_MODEL_FROM_DATABASE=G-net NT + ++pci:v000010A9d0000802B* ++ ID_MODEL_FROM_DATABASE=REACT external interrupt controller ++ + pci:v000010AA* + ID_VENDOR_FROM_DATABASE=ACC Microelectronics + +@@ -18485,6 +18713,9 @@ pci:v000010B5d00008732* + pci:v000010B5d00008734* + ID_MODEL_FROM_DATABASE=PEX 8734 32-lane, 8-Port PCI Express Gen 3 (8.0GT/s) Switch + ++pci:v000010B5d00008747* ++ ID_MODEL_FROM_DATABASE=PEX 8747 48-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch ++ + pci:v000010B5d000087B0* + ID_MODEL_FROM_DATABASE=PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch + +@@ -18969,10 +19200,10 @@ pci:v000010B6d00000009sv000010B6sd00000009* + ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode + + pci:v000010B6d0000000A* +- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode ++ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner + + pci:v000010B6d0000000Asv000010B6sd0000000A* +- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode ++ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner + + pci:v000010B6d0000000B* + ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 +@@ -19001,6 +19232,9 @@ pci:v000010B7* + pci:v000010B7d00000001* + ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) + ++pci:v000010B7d00000001sv00009850sd00000001* ++ ID_MODEL_FROM_DATABASE=3c985B-SX ++ + pci:v000010B7d00000013* + ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) + +@@ -21042,10 +21276,7 @@ pci:v000010DEd000000CC* + ID_MODEL_FROM_DATABASE=NV41GLM [Quadro FX Go1400] + + pci:v000010DEd000000CD* +- ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 3450/4000 SDI] +- +-pci:v000010DEd000000CDsv000010DEsd0000029B* +- ID_MODEL_FROM_DATABASE=wx4300 Workstation ++ ID_MODEL_FROM_DATABASE=NV42GL [Quadro FX 3450/4000 SDI] + + pci:v000010DEd000000CE* + ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 1400] +@@ -24858,7 +25089,7 @@ pci:v000010DEd0000086E* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9100M G] + + pci:v000010DEd0000086F* +- ID_MODEL_FROM_DATABASE=C79 [GeForce 9200M G] ++ ID_MODEL_FROM_DATABASE=MCP79 [GeForce 8200M G] + + pci:v000010DEd00000870* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] +@@ -26006,6 +26237,9 @@ pci:v000010DEd00001005sv00003842sd00002795* + pci:v000010DEd0000100A* + ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] + ++pci:v000010DEd0000100C* ++ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX Titan Black] ++ + pci:v000010DEd0000101F* + ID_MODEL_FROM_DATABASE=GK110GL [Tesla K20] + +@@ -26582,6 +26816,9 @@ pci:v000010DEd00001140sv00001462sd000010B8* + pci:v000010DEd00001140sv00001462sd000010E9* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + ++pci:v000010DEd00001140sv00001462sd00001116* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ + pci:v000010DEd00001140sv00001462sd0000AA33* + ID_MODEL_FROM_DATABASE=GeForce 720M + +@@ -26750,6 +26987,9 @@ pci:v000010DEd00001140sv00001B0Asd00002202* + pci:v000010DEd00001180* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] + ++pci:v000010DEd00001180sv00001043sd000083F1* ++ ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 ++ + pci:v000010DEd00001180sv00003842sd00003682* + ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition + +@@ -26804,6 +27044,15 @@ pci:v000010DEd0000118F* + pci:v000010DEd00001193* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] + ++pci:v000010DEd00001198* ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] ++ ++pci:v000010DEd00001199* ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 870M] ++ ++pci:v000010DEd0000119A* ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 860M] ++ + pci:v000010DEd0000119D* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 775M Mac Edition] + +@@ -27065,6 +27314,9 @@ pci:v000010DEd00001251* + pci:v000010DEd00001280* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 635] + ++pci:v000010DEd00001281* ++ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 710] ++ + pci:v000010DEd00001282* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 640 Rev. 2] + +@@ -27107,6 +27359,9 @@ pci:v000010DEd00001294* + pci:v000010DEd00001295* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] + ++pci:v000010DEd00001296* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] ++ + pci:v000010DEd00001298* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 720M] + +@@ -27119,12 +27374,48 @@ pci:v000010DEd000012B9* + pci:v000010DEd000012BA* + ID_MODEL_FROM_DATABASE=GK208GLM [Quadro K510M] + ++pci:v000010DEd00001340* ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] ++ ++pci:v000010DEd00001341* ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] ++ ++pci:v000010DEd00001380* ++ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] ++ ++pci:v000010DEd00001381* ++ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750] ++ ++pci:v000010DEd00001382* ++ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 745] ++ ++pci:v000010DEd00001390* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce 845M] ++ ++pci:v000010DEd00001391* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] ++ ++pci:v000010DEd00001392* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] ++ ++pci:v000010DEd00001393* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] ++ + pci:v000010DF* + ID_VENDOR_FROM_DATABASE=Emulex Corporation + + pci:v000010DFd00000720* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) + ++pci:v000010DFd00000720sv000017AAsd00001056* ++ ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric ++ ++pci:v000010DFd00000720sv000017AAsd00001057* ++ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric ++ ++pci:v000010DFd00000720sv000017AAsd00001059* ++ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric ++ + pci:v000010DFd00000722* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) + +@@ -27167,6 +27458,12 @@ pci:v000010DFd0000E208* + pci:v000010DFd0000E220* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) + ++pci:v000010DFd0000E220sv000017AAsd00001054* ++ ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric ++ ++pci:v000010DFd0000E220sv000017AAsd00001055* ++ ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric ++ + pci:v000010DFd0000E240* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) + +@@ -27573,7 +27870,7 @@ pci:v000010ECd00008029sv00001259sd00002400* + ID_MODEL_FROM_DATABASE=AT-2400 + + pci:v000010ECd00008029sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine + + pci:v000010ECd00008129* + ID_MODEL_FROM_DATABASE=RTL-8129 +@@ -27603,7 +27900,7 @@ pci:v000010ECd00008138sv000010ECsd00008138* + ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter + + pci:v000010ECd00008139* +- ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter + + pci:v000010ECd00008139sv00000357sd0000000A* + ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 +@@ -27638,11 +27935,14 @@ pci:v000010ECd00008139sv00001071sd00008160* + pci:v000010ECd00008139sv000010BDsd00000320* + ID_MODEL_FROM_DATABASE=EP-320X-R + ++pci:v000010ECd00008139sv000010ECsd00008139* ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter ++ + pci:v000010ECd00008139sv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop + + pci:v000010ECd00008139sv00001113sd0000EC01* +- ID_MODEL_FROM_DATABASE=FNC-0107TX ++ ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX + + pci:v000010ECd00008139sv00001186sd00001300* + ID_MODEL_FROM_DATABASE=DFE-538TX +@@ -27734,6 +28034,9 @@ pci:v000010ECd00008139sv0000187Esd00003303* + pci:v000010ECd00008139sv00001904sd00008139* + ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter + ++pci:v000010ECd00008139sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v000010ECd00008139sv00002646sd00000001* + ID_MODEL_FROM_DATABASE=KNE120TX + +@@ -27779,6 +28082,9 @@ pci:v000010ECd00008168sv0000103Csd00001611* + pci:v000010ECd00008168sv0000103Csd00001950* + ID_MODEL_FROM_DATABASE=ProBook 450/455 + ++pci:v000010ECd00008168sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v000010ECd00008168sv00001043sd000011F5* + ID_MODEL_FROM_DATABASE=A6J-Q008 + +@@ -27815,6 +28121,9 @@ pci:v000010ECd00008168sv00001462sd0000238C* + pci:v000010ECd00008168sv00001462sd0000368C* + ID_MODEL_FROM_DATABASE=K9AG Neo2 + ++pci:v000010ECd00008168sv00001462sd00004180* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v000010ECd00008168sv00001462sd00007522* + ID_MODEL_FROM_DATABASE=X58 Pro-E + +@@ -27894,10 +28203,10 @@ pci:v000010ECd00008176sv00001A3Bsd00001139* + ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card + + pci:v000010ECd00008177* +- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter ++ ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter + + pci:v000010ECd00008178* +- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter ++ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter + + pci:v000010ECd00008179* + ID_MODEL_FROM_DATABASE=RTL8188EE Wireless Network Adapter +@@ -27914,11 +28223,14 @@ pci:v000010ECd00008180sv00001737sd00000019* + pci:v000010ECd00008185* + ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller + ++pci:v000010ECd0000818B* ++ ID_MODEL_FROM_DATABASE=RTL8192EE PCIe Wireless Network Adapter ++ + pci:v000010ECd00008190* +- ID_MODEL_FROM_DATABASE=RTL8190 802.11n Wireless LAN ++ ID_MODEL_FROM_DATABASE=RTL8190 802.11n PCI Wireless Network Adapter + + pci:v000010ECd00008191* +- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter ++ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter + + pci:v000010ECd00008192* + ID_MODEL_FROM_DATABASE=RTL8192E/RTL8192SE Wireless LAN Controller +@@ -27938,6 +28250,15 @@ pci:v000010ECd00008199sv00001462sd00006894* + pci:v000010ECd00008723* + ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter + ++pci:v000010ECd00008812* ++ ID_MODEL_FROM_DATABASE=RTL8812AE 802.11ac PCIe Wireless Network Adapter ++ ++pci:v000010ECd00008813* ++ ID_MODEL_FROM_DATABASE=RTL8813AE 802.11ac PCIe Wireless Network Adapter ++ ++pci:v000010ECd00008821* ++ ID_MODEL_FROM_DATABASE=RTL8821AE 802.11ac PCIe Wireless Network Adapter ++ + pci:v000010ECd0000B723* + ID_MODEL_FROM_DATABASE=RTL8723BE PCIe Wireless Network Adapter + +@@ -28211,6 +28532,9 @@ pci:v00001102d00000004sv00001102sd00000058* + pci:v00001102d00000004sv00001102sd00001002* + ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum + ++pci:v00001102d00000004sv00001102sd00001003* ++ ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 ++ + pci:v00001102d00000004sv00001102sd00001007* + ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 + +@@ -28436,6 +28760,9 @@ pci:v00001103d00001742* + pci:v00001103d00002210* + ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller + ++pci:v00001103d00002210sv000011ABsd000011AB* ++ ID_MODEL_FROM_DATABASE=88SX6042 ++ + pci:v00001103d00002300* + ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller + +@@ -28635,7 +28962,7 @@ pci:v00001106d00000415* + ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller + + pci:v00001106d00000415sv00001043sd0000838F* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=Motherboard + + pci:v00001106d00000501* + ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] +@@ -29033,6 +29360,9 @@ pci:v00001106d00003038sv00001849sd00003038* + pci:v00001106d00003038sv000019DAsd0000A179* + ID_MODEL_FROM_DATABASE=ZBOX nano VD01 + ++pci:v00001106d00003038sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001106d00003040* + ID_MODEL_FROM_DATABASE=VT82C586B ACPI + +@@ -29591,6 +29921,9 @@ pci:v00001106d00003238* + pci:v00001106d00003249* + ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller + ++pci:v00001106d00003249sv00001106sd00003249* ++ ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller ++ + pci:v00001106d0000324A* + ID_MODEL_FROM_DATABASE=CX700/VX700 PCI to PCI Bridge + +@@ -30180,7 +30513,7 @@ pci:v00001109d00001400* + ID_MODEL_FROM_DATABASE=EM110TX [EX110TX] + + pci:v0000110A* +- ID_VENDOR_FROM_DATABASE=Siemens Nixdorf AG ++ ID_VENDOR_FROM_DATABASE=Siemens AG + + pci:v0000110Ad00000002* + ID_MODEL_FROM_DATABASE=Pirahna 2-port +@@ -30216,20 +30549,56 @@ pci:v0000110Ad00002104* + ID_MODEL_FROM_DATABASE=Eicon Diva 2.02 compatible passive ISDN card + + pci:v0000110Ad00003141* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 (Profibus Adapter) ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 / 5621 + + pci:v0000110Ad00003142* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A1 (Profibus Adapter) ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 / 5614 ++ ++pci:v0000110Ad00003143* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 + + pci:v0000110Ad00004021* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) + + pci:v0000110Ad00004029* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A2 (Profibus Adapter) ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 ++ ++pci:v0000110Ad00004029sv0000110Asd00004029* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 ++ ++pci:v0000110Ad00004029sv0000110Asd0000C029* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 + + pci:v0000110Ad00004035* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 + ++pci:v0000110Ad00004036* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1616 ++ ++pci:v0000110Ad00004038* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1604 ++ ++pci:v0000110Ad00004069* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 ++ ++pci:v0000110Ad00004069sv0000110Asd0000C069* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 ++ ++pci:v0000110Ad0000407C* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 ++ ++pci:v0000110Ad0000407D* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A3 ++ ++pci:v0000110Ad0000407E* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5622 ++ ++pci:v0000110Ad00004083* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A3 ++ ++pci:v0000110Ad00004084* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1626 ++ + pci:v0000110Ad00004942* + ID_MODEL_FROM_DATABASE=FPGA I-Bus Tracer for MBD + +@@ -31244,9 +31613,24 @@ pci:v00001131d00007133sv00005ACEsd00006290* + pci:v00001131d00007133sv00005ACEsd00007090* + ID_MODEL_FROM_DATABASE=Behold TV A7 + ++pci:v00001131d00007133sv00005ACEsd00007150* ++ ID_MODEL_FROM_DATABASE=Behold TV H75 ++ ++pci:v00001131d00007133sv00005ACEsd00007151* ++ ID_MODEL_FROM_DATABASE=Behold TV H75 ++ + pci:v00001131d00007133sv00005ACEsd00007190* + ID_MODEL_FROM_DATABASE=Behold TV H7 + ++pci:v00001131d00007133sv00005ACEsd00007191* ++ ID_MODEL_FROM_DATABASE=Behold TV H7 ++ ++pci:v00001131d00007133sv00005ACEsd00007290* ++ ID_MODEL_FROM_DATABASE=Behold TV T7 ++ ++pci:v00001131d00007133sv00005ACEsd00007591* ++ ID_MODEL_FROM_DATABASE=Behold TV X7 ++ + pci:v00001131d00007133sv00005ACEsd00007595* + ID_MODEL_FROM_DATABASE=Behold TV X7 + +@@ -31553,9 +31937,30 @@ pci:v00001131d00007231* + pci:v00001131d00007231sv00005ACEsd00008000* + ID_MODEL_FROM_DATABASE=Behold TV H8 + ++pci:v00001131d00007231sv00005ACEsd00008001* ++ ID_MODEL_FROM_DATABASE=Behold TV H8 ++ ++pci:v00001131d00007231sv00005ACEsd00008050* ++ ID_MODEL_FROM_DATABASE=Behold TV H85 ++ ++pci:v00001131d00007231sv00005ACEsd00008051* ++ ID_MODEL_FROM_DATABASE=Behold TV H85 ++ + pci:v00001131d00007231sv00005ACEsd00008100* + ID_MODEL_FROM_DATABASE=Behold TV A8 + ++pci:v00001131d00007231sv00005ACEsd00008101* ++ ID_MODEL_FROM_DATABASE=Behold TV A8 ++ ++pci:v00001131d00007231sv00005ACEsd00008150* ++ ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ++pci:v00001131d00007231sv00005ACEsd00008151* ++ ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ++pci:v00001131d00007231sv00005ACEsd00008201* ++ ID_MODEL_FROM_DATABASE=Behold TV T8 ++ + pci:v00001131d00009730* + ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller + +@@ -35042,6 +35447,9 @@ pci:v000011C1d00005811* + pci:v000011C1d00005811sv0000103Csd00002A34* + ID_MODEL_FROM_DATABASE=Pavilion a1677c + ++pci:v000011C1d00005811sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v000011C1d00005811sv0000103Csd00002A9E* + ID_MODEL_FROM_DATABASE=Pavilion p6310f + +@@ -35858,6 +36266,9 @@ pci:v00001217d00008330sv00001028sd000004A3* + pci:v00001217d00008331* + ID_MODEL_FROM_DATABASE=O2 Flash Memory Card + ++pci:v00001217d00008520* ++ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller ++ + pci:v00001218* + ID_VENDOR_FROM_DATABASE=Hybricon Corp. + +@@ -36852,7 +37263,7 @@ pci:v00001274d00001171* + ID_MODEL_FROM_DATABASE=ES1373 [AudioPCI] (also Creative Labs CT5803) + + pci:v00001274d00001371* +- ID_MODEL_FROM_DATABASE=ES1371 [AudioPCI-97] ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] + + pci:v00001274d00001371sv00000E11sd00000024* + ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro +@@ -36870,7 +37281,7 @@ pci:v00001274d00001371sv0000107Bsd00008054* + ID_MODEL_FROM_DATABASE=Tabor2 + + pci:v00001274d00001371sv00001274sd00001371* +- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI64V, AudioPCI128 ++ ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 + + pci:v00001274d00001371sv00001274sd00008001* + ID_MODEL_FROM_DATABASE=CT4751 board +@@ -41858,12 +42269,24 @@ pci:v00001425d00005013* + pci:v00001425d00005014* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005015* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005080* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005081* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005083* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005084* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005085* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d00005401* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -41924,12 +42347,24 @@ pci:v00001425d00005413* + pci:v00001425d00005414* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005415* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005480* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005481* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005483* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005484* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005485* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d00005501* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller + +@@ -41990,12 +42425,24 @@ pci:v00001425d00005513* + pci:v00001425d00005514* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller + ++pci:v00001425d00005515* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller ++ + pci:v00001425d00005580* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller + + pci:v00001425d00005581* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller + ++pci:v00001425d00005583* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller ++ ++pci:v00001425d00005584* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller ++ ++pci:v00001425d00005585* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller ++ + pci:v00001425d00005601* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller + +@@ -42056,12 +42503,24 @@ pci:v00001425d00005613* + pci:v00001425d00005614* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller + ++pci:v00001425d00005615* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller ++ + pci:v00001425d00005680* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller + + pci:v00001425d00005681* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller + ++pci:v00001425d00005683* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller ++ ++pci:v00001425d00005684* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller ++ ++pci:v00001425d00005685* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller ++ + pci:v00001425d00005701* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -42122,12 +42581,24 @@ pci:v00001425d00005713* + pci:v00001425d00005714* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005715* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005780* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005781* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005783* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005784* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005785* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d00005801* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -42188,12 +42659,24 @@ pci:v00001425d00005813* + pci:v00001425d00005814* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005815* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005880* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005881* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005883* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005884* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005885* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d0000A000* + ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller + +@@ -42483,7 +42966,7 @@ pci:v00001461d0000F436* + ID_MODEL_FROM_DATABASE=AVerTV Hybrid+FM + + pci:v00001462* +- ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. ++ ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. [MSI] + + pci:v00001463* + ID_VENDOR_FROM_DATABASE=Fast Corporation +@@ -43847,6 +44330,33 @@ pci:v000014E4d0000168E* + pci:v000014E4d0000168Esv0000103Csd00001798* + ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] + ++pci:v000014E4d0000168Esv0000103Csd000017A5* ++ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd000018D3* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001930* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001931* ++ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001932* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001933* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd0000193A* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00003382* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd0000339D* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ + pci:v000014E4d00001690* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe + +@@ -43922,9 +44432,21 @@ pci:v000014E4d000016A1* + pci:v000014E4d000016A2* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet + ++pci:v000014E4d000016A2sv0000103Csd00001916* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ++pci:v000014E4d000016A2sv0000103Csd00001917* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ + pci:v000014E4d000016A4* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function + ++pci:v000014E4d000016A4sv0000103Csd00001916* ++ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter ++ ++pci:v000014E4d000016A4sv0000103Csd00001917* ++ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter ++ + pci:v000014E4d000016A5* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function + +@@ -44048,12 +44570,78 @@ pci:v000014E4d000016ACsv0000103Csd0000703D* + pci:v000014E4d000016AD* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function + ++pci:v000014E4d000016ADsv0000103Csd00001916* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ++pci:v000014E4d000016ADsv0000103Csd00001917* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ + pci:v000014E4d000016AE* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function + ++pci:v000014E4d000016AEsv0000103Csd00001798* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd000017A5* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd000018D3* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001930* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001931* ++ ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001932* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001933* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd0000193A* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00003382* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd0000339D* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter ++ + pci:v000014E4d000016AF* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function + ++pci:v000014E4d000016AFsv0000103Csd00001798* ++ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd000017A5* ++ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd000018D3* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001930* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001931* ++ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001932* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001933* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd0000193A* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00003382* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd0000339D* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ + pci:v000014E4d000016B0* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe + +@@ -49484,6 +50072,9 @@ pci:v00001814d0000539F* + pci:v00001814d0000539Fsv0000103Csd00001637* + ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card + ++pci:v00001814d00005592* ++ ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter ++ + pci:v00001814d0000E932* + ID_MODEL_FROM_DATABASE=RT2560F 802.11 b/g PCI + +@@ -50480,6 +51071,12 @@ pci:v0000193Fd00000367* + pci:v0000193Fd00000370* + ID_MODEL_FROM_DATABASE=AHA370-PCIe + ++pci:v0000193Fd00003641* ++ ID_MODEL_FROM_DATABASE=AHA3641 ++ ++pci:v0000193Fd00003642* ++ ID_MODEL_FROM_DATABASE=AHA3642 ++ + pci:v00001942* + ID_VENDOR_FROM_DATABASE=ClearSpeed Technology plc + +@@ -50633,6 +51230,9 @@ pci:v00001957d00000084* + pci:v00001957d00000085* + ID_MODEL_FROM_DATABASE=MPC8347 PBGA + ++pci:v00001957d00000085sv0000110Asd00004046* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 ++ + pci:v00001957d00000086* + ID_MODEL_FROM_DATABASE=MPC8343E + +@@ -51095,6 +51695,9 @@ pci:v000019A2d00000710sv0000103Csd00003341* + pci:v000019A2d00000710sv0000103Csd00003345* + ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter + ++pci:v000019A2d00000710sv0000103Csd0000337B* ++ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ + pci:v000019A2d00000712* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) + +@@ -51104,6 +51707,9 @@ pci:v000019A2d00000714* + pci:v000019A2d00000714sv0000103Csd00003315* + ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter + ++pci:v000019A2d00000714sv0000103Csd0000337B* ++ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ + pci:v000019A8* + ID_VENDOR_FROM_DATABASE=DAQDATA GmbH + +@@ -51236,6 +51842,9 @@ pci:v00001A22* + pci:v00001A29* + ID_VENDOR_FROM_DATABASE=Fortinet, Inc. + ++pci:v00001A29d00004338* ++ ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC ++ + pci:v00001A2B* + ID_VENDOR_FROM_DATABASE=Ascom AG + +@@ -51605,6 +52214,12 @@ pci:v00001AF4d00001005* + pci:v00001AF4d00001009* + ID_MODEL_FROM_DATABASE=Virtio filesystem + ++pci:v00001AF4d00001110* ++ ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory ++ ++pci:v00001AF4d00001110sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001AF5* + ID_VENDOR_FROM_DATABASE=Netezza Corp. + +@@ -51647,6 +52262,9 @@ pci:v00001B21d00000612sv00001849sd00000612* + pci:v00001B21d00001042* + ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller + ++pci:v00001B21d00001042sv00001043sd00008488* ++ ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ + pci:v00001B21d00001042sv00001849sd00001042* + ID_MODEL_FROM_DATABASE=Motherboard + +@@ -51662,6 +52280,39 @@ pci:v00001B2C* + pci:v00001B36* + ID_VENDOR_FROM_DATABASE=Red Hat, Inc. + ++pci:v00001B36d00000001* ++ ID_MODEL_FROM_DATABASE=QEMU PCI-PCI bridge ++ ++pci:v00001B36d00000002* ++ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter ++ ++pci:v00001B36d00000002sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000003* ++ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter ++ ++pci:v00001B36d00000003sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000004* ++ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter ++ ++pci:v00001B36d00000004sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000005* ++ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device ++ ++pci:v00001B36d00000005sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000100* ++ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card ++ ++pci:v00001B36d00000100sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001B37* + ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB + +@@ -51725,6 +52376,9 @@ pci:v00001B4Bd00009130sv00001043sd00008438* + pci:v00001B4Bd00009172* + ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller + ++pci:v00001B4Bd00009178* ++ ID_MODEL_FROM_DATABASE=88SE9170 PCIe SATA 6Gb/s Controller ++ + pci:v00001B4Bd0000917A* + ID_MODEL_FROM_DATABASE=88SE9172 SATA III 6Gb/s RAID Controller + +@@ -51875,6 +52529,9 @@ pci:v00001BBFd00000004* + pci:v00001BF4* + ID_VENDOR_FROM_DATABASE=VTI Instruments Corporation + ++pci:v00001BF4d00000001* ++ ID_MODEL_FROM_DATABASE=SentinelEX ++ + pci:v00001BFD* + ID_VENDOR_FROM_DATABASE=EeeTOP + +@@ -51902,6 +52559,18 @@ pci:v00001C2Cd000000A1* + pci:v00001C2Cd000000A2* + ID_MODEL_FROM_DATABASE=FBC8XG Capture 8x10Gb + ++pci:v00001C2Cd000000A3* ++ ID_MODEL_FROM_DATABASE=FBC2XG Capture 2x10Gb ++ ++pci:v00001C2Cd000000A4* ++ ID_MODEL_FROM_DATABASE=FBC4XGG3 Capture 4x10Gb ++ ++pci:v00001C2Cd000000A5* ++ ID_MODEL_FROM_DATABASE=FBC2XLG Capture 2x40Gb ++ ++pci:v00001C2Cd000000A6* ++ ID_MODEL_FROM_DATABASE=FBC1CG Capture 1x100Gb ++ + pci:v00001C32* + ID_VENDOR_FROM_DATABASE=Highland Technology, Inc. + +@@ -53970,7 +54639,7 @@ pci:v00008086d00000100sv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + + pci:v00008086d00000100sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard + + pci:v00008086d00000101* + ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port +@@ -53987,6 +54656,9 @@ pci:v00008086d00000102* + pci:v00008086d00000102sv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + ++pci:v00008086d00000102sv00001043sd00000102* ++ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ + pci:v00008086d00000104* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller + +@@ -54065,9 +54737,15 @@ pci:v00008086d00000151* + pci:v00008086d00000151sv00001043sd00001477* + ID_MODEL_FROM_DATABASE=N56VZ + ++pci:v00008086d00000151sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00000151sv00001043sd000084CA* + ID_MODEL_FROM_DATABASE=P8H77-I Motherboard + ++pci:v00008086d00000151sv00008086sd00002010* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00000152* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + +@@ -54098,12 +54776,21 @@ pci:v00008086d00000154sv00001043sd00001517* + pci:v00008086d00000155* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + ++pci:v00008086d00000155sv00008086sd00002010* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00000156* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller + + pci:v00008086d00000158* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller + ++pci:v00008086d00000158sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ++pci:v00008086d00000158sv00008086sd00002010* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00000159* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + +@@ -54116,6 +54803,9 @@ pci:v00008086d0000015C* + pci:v00008086d0000015D* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + ++pci:v00008086d0000015Dsv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d0000015E* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + +@@ -54137,6 +54827,9 @@ pci:v00008086d00000166sv00001043sd00002103* + pci:v00008086d0000016A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + ++pci:v00008086d0000016Asv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ + pci:v00008086d00000172* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + +@@ -54753,7 +55446,7 @@ pci:v00008086d0000095Asv00008086sd00005002* + ID_MODEL_FROM_DATABASE=Wireless-N 7265 + + pci:v00008086d0000095Asv00008086sd0000500A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 + + pci:v00008086d0000095Asv00008086sd00005010* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 +@@ -54770,9 +55463,18 @@ pci:v00008086d0000095Asv00008086sd0000502A* + pci:v00008086d0000095Asv00008086sd00005090* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00005100* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ++pci:v00008086d0000095Asv00008086sd0000510A* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00005110* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00005112* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00005190* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + +@@ -54794,9 +55496,15 @@ pci:v00008086d0000095Asv00008086sd00005590* + pci:v00008086d0000095Asv00008086sd00009010* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00009012* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00009110* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00009112* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00009210* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + +@@ -55089,397 +55797,409 @@ pci:v00008086d00000D36* + ID_MODEL_FROM_DATABASE=Crystal Well Integrated Graphics Controller + + pci:v00008086d00000E00* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DMI2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DMI2 + + pci:v00008086d00000E01* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode + + pci:v00008086d00000E02* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1a ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a + + pci:v00008086d00000E03* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1b ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1b + + pci:v00008086d00000E04* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2a ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a + + pci:v00008086d00000E05* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2b ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2b + + pci:v00008086d00000E06* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2c ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2c + + pci:v00008086d00000E07* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2d ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2d + + pci:v00008086d00000E08* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3a ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a + + pci:v00008086d00000E09* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3b ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3b + + pci:v00008086d00000E0A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3c ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3c + + pci:v00008086d00000E0B* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3d ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3d + + pci:v00008086d00000E10* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E13* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E17* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E18* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E1C* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E1D* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E1E* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers + + pci:v00008086d00000E1F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers + + pci:v00008086d00000E20* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 + + pci:v00008086d00000E21* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 + + pci:v00008086d00000E22* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 + + pci:v00008086d00000E23* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 + + pci:v00008086d00000E24* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 + + pci:v00008086d00000E25* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 + + pci:v00008086d00000E26* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 + + pci:v00008086d00000E27* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 + + pci:v00008086d00000E28* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 VTd/Memory Map/Misc ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 VTd/Memory Map/Misc + + pci:v00008086d00000E29* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Memory Hotplug ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Memory Hotplug + + pci:v00008086d00000E2A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO RAS ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO RAS + + pci:v00008086d00000E2C* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IOAPIC ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IOAPIC + + pci:v00008086d00000E2E* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA + + pci:v00008086d00000E2F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA + + pci:v00008086d00000E30* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 + + pci:v00008086d00000E32* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 + + pci:v00008086d00000E33* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 + + pci:v00008086d00000E34* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E36* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E37* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E38* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 + + pci:v00008086d00000E3A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 + + pci:v00008086d00000E3E* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E3F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E40* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 + + pci:v00008086d00000E41* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E43* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 + + pci:v00008086d00000E44* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 ++ ++pci:v00008086d00000E45* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register ++ ++pci:v00008086d00000E47* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register + + pci:v00008086d00000E60* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 + + pci:v00008086d00000E68* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers + + pci:v00008086d00000E6A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E6B* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E6C* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E6D* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E71* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers + + pci:v00008086d00000E74* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E75* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E77* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E79* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers + + pci:v00008086d00000E7D* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers + + pci:v00008086d00000E7F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E80* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 + + pci:v00008086d00000E81* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E83* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 + + pci:v00008086d00000E84* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 ++ ++pci:v00008086d00000E85* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register + + pci:v00008086d00000E87* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Registers + + pci:v00008086d00000E90* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 + + pci:v00008086d00000E93* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 + + pci:v00008086d00000E94* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 1 ++ ++pci:v00008086d00000E95* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register + + pci:v00008086d00000EA0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 + + pci:v00008086d00000EA8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers + + pci:v00008086d00000EAA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAB* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAD* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EAF* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EB0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 + + pci:v00008086d00000EB1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 + + pci:v00008086d00000EB2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 + + pci:v00008086d00000EB3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 + + pci:v00008086d00000EB4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 + + pci:v00008086d00000EB5* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 + + pci:v00008086d00000EB6* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 + + pci:v00008086d00000EB7* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 + + pci:v00008086d00000EBC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EBE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EBF* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EC0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 0 + + pci:v00008086d00000EC1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 1 + + pci:v00008086d00000EC2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 2 + + pci:v00008086d00000EC3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 3 + + pci:v00008086d00000EC4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 4 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 4 + + pci:v00008086d00000EC8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 System Address Decoder ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 System Address Decoder + + pci:v00008086d00000EC9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers + + pci:v00008086d00000ECA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers + + pci:v00008086d00000ED8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000ED9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDD* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDF* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EE0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE5* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE6* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE7* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEB* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EED* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EF0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 + + pci:v00008086d00000EF1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 + + pci:v00008086d00000EF2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 + + pci:v00008086d00000EF3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 + + pci:v00008086d00000EF4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 + + pci:v00008086d00000EF5* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 + + pci:v00008086d00000EF6* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 + + pci:v00008086d00000EF7* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 + + pci:v00008086d00000EF8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EF9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFB* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFD* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000F00* + ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +@@ -55868,6 +56588,9 @@ pci:v00008086d0000100Esv00001028sd00000151* + pci:v00008086d0000100Esv0000107Bsd00008920* + ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter + ++pci:v00008086d0000100Esv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000100Esv00008086sd0000001E* + ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter + +@@ -56057,6 +56780,9 @@ pci:v00008086d0000101Esv00008086sd0000101E* + pci:v00008086d00001026* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + ++pci:v00008086d00001026sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d00001026sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -56867,15 +57593,24 @@ pci:v00008086d000010D3* + pci:v00008086d000010D3sv0000103Csd00003250* + ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter + ++pci:v00008086d000010D3sv00001043sd00008369* ++ ID_MODEL_FROM_DATABASE=Motherboard ++ + pci:v00008086d000010D3sv000010A9sd00008029* + ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet + + pci:v00008086d000010D3sv000015D9sd0000060A* + ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard + ++pci:v00008086d000010D3sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d000010D3sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter + ++pci:v00008086d000010D3sv00008086sd0000357A* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d000010D3sv00008086sd0000A01F* + ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter + +@@ -57002,6 +57737,9 @@ pci:v00008086d000010EF* + pci:v00008086d000010EFsv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d000010EFsv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d000010F0* + ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection + +@@ -57086,6 +57824,9 @@ pci:v00008086d000010FBsv0000108Esd00007B11* + pci:v00008086d000010FBsv00001734sd000011A9* + ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection + ++pci:v00008086d000010FBsv000017AAsd00001071* ++ ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric ++ + pci:v00008086d000010FBsv00008086sd00000002* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 + +@@ -57182,6 +57923,9 @@ pci:v00008086d00001209* + pci:v00008086d00001209sv0000140Bsd00000610* + ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board + ++pci:v00008086d00001209sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00001209sv00004C53sd00001050* + ID_MODEL_FROM_DATABASE=CT7 mainboard + +@@ -57428,6 +58172,9 @@ pci:v00008086d00001229sv00001775sd00001100* + pci:v00008086d00001229sv00001775sd0000CE90* + ID_MODEL_FROM_DATABASE=CE9 + ++pci:v00008086d00001229sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00001229sv00004C53sd00001080* + ID_MODEL_FROM_DATABASE=CT8 mainboard + +@@ -57782,6 +58529,9 @@ pci:v00008086d00001502* + pci:v00008086d00001502sv00001028sd000004A3* + ID_MODEL_FROM_DATABASE=Precision M4600 + ++pci:v00008086d00001502sv00008086sd0000357A* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00001503* + ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection + +@@ -57878,12 +58628,18 @@ pci:v00008086d00001520* + pci:v00008086d00001521* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection + ++pci:v00008086d00001521sv00001028sd00000602* ++ ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM ++ + pci:v00008086d00001521sv00001028sd00001F60* + ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC + + pci:v00008086d00001521sv00001028sd00001F62* + ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC + ++pci:v00008086d00001521sv00001028sd0000FF9A* ++ ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC ++ + pci:v00008086d00001521sv0000103Csd000017D1* + ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter + +@@ -57911,6 +58667,9 @@ pci:v00008086d00001521sv0000108Esd00007B18* + pci:v00008086d00001521sv000010A9sd0000802A* + ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE + ++pci:v00008086d00001521sv000017AAsd00001074* ++ ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric ++ + pci:v00008086d00001521sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 + +@@ -57962,6 +58721,9 @@ pci:v00008086d00001522sv00008086sd000000A4* + pci:v00008086d00001523* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection + ++pci:v00008086d00001523sv00001028sd00001F9B* ++ ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC ++ + pci:v00008086d00001523sv0000103Csd00001784* + ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter + +@@ -58025,6 +58787,9 @@ pci:v00008086d00001528sv0000108Esd00007B15* + pci:v00008086d00001528sv00001137sd000000BF* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 + ++pci:v00008086d00001528sv000017AAsd00001073* ++ ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric ++ + pci:v00008086d00001528sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 + +@@ -58055,6 +58820,9 @@ pci:v00008086d00001533* + pci:v00008086d00001533sv0000103Csd00000003* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 + ++pci:v00008086d00001533sv000017AAsd00001100* ++ ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter ++ + pci:v00008086d00001533sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 + +@@ -58103,6 +58871,9 @@ pci:v00008086d0000154Asv00008086sd0000011B* + pci:v00008086d0000154Asv00008086sd0000011C* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 + ++pci:v00008086d0000154C* ++ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ + pci:v00008086d0000154D* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter + +@@ -58148,12 +58919,78 @@ pci:v00008086d0000155Dsv00008086sd00000002* + pci:v00008086d00001560* + ID_MODEL_FROM_DATABASE=Ethernet Controller X540 + ++pci:v00008086d00001571* ++ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ ++pci:v00008086d00001572* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter ++ ++pci:v00008086d00001572sv00001028sd00001F99* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC ++ ++pci:v00008086d00001572sv00008086sd00000001* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ++pci:v00008086d00001572sv00008086sd00000002* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ++pci:v00008086d00001572sv00008086sd00000004* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ++pci:v00008086d00001572sv00008086sd00000005* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter ++ ++pci:v00008086d00001572sv00008086sd00000006* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter ++ ++pci:v00008086d00001572sv00008086sd00000007* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ ++pci:v00008086d00001572sv00008086sd00000008* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ + pci:v00008086d0000157B* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection + + pci:v00008086d0000157C* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + ++pci:v00008086d00001580* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane ++ ++pci:v00008086d00001581* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane ++ ++pci:v00008086d00001581sv00001028sd00001F98* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC ++ ++pci:v00008086d00001583* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ ++ ++pci:v00008086d00001583sv00008086sd00000001* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ++pci:v00008086d00001583sv00008086sd00000002* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ++pci:v00008086d00001583sv00008086sd00000003* ++ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 ++ ++pci:v00008086d00001584* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ ++ ++pci:v00008086d00001584sv00008086sd00000001* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ++pci:v00008086d00001584sv00008086sd00000002* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ++pci:v00008086d00001584sv00008086sd00000003* ++ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 ++ ++pci:v00008086d00001585* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ ++ + pci:v00008086d000015A0* + ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I218-LM + +@@ -58166,6 +59003,117 @@ pci:v00008086d000015A2* + pci:v00008086d000015A3* + ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V + ++pci:v00008086d00001600* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI ++ ++pci:v00008086d00001601* ++ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x16 Controller ++ ++pci:v00008086d00001602* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001603* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Camarillo Device ++ ++pci:v00008086d00001604* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI ++ ++pci:v00008086d00001605* ++ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x8 Controller ++ ++pci:v00008086d00001606* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001607* ++ ID_MODEL_FROM_DATABASE=Broadwell-U CHAPS Device ++ ++pci:v00008086d00001608* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI ++ ++pci:v00008086d00001609* ++ ID_MODEL_FROM_DATABASE=Broadwell-U x4 PCIe ++ ++pci:v00008086d0000160A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160C* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Audio Controller ++ ++pci:v00008086d0000160D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160F* ++ ID_MODEL_FROM_DATABASE=Broadwell-U SoftSKU ++ ++pci:v00008086d00001610* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI ++ ++pci:v00008086d00001612* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001614* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI ++ ++pci:v00008086d00001616* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001618* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI ++ ++pci:v00008086d0000161A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000161B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000161D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000161E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001622* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001626* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001632* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001636* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ + pci:v00008086d00001960* + ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor + +@@ -58308,7 +59256,10 @@ pci:v00008086d00001C02sv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + + pci:v00008086d00001C02sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ++pci:v00008086d00001C02sv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS + + pci:v00008086d00001C03* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller +@@ -58346,8 +59297,11 @@ pci:v00008086d00001C10sv00001028sd000004AA* + pci:v00008086d00001C10sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + ++pci:v00008086d00001C10sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00001C10sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C12* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 +@@ -58379,18 +59333,27 @@ pci:v00008086d00001C18* + pci:v00008086d00001C18sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + ++pci:v00008086d00001C18sv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00001C1A* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 + + pci:v00008086d00001C1Asv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + ++pci:v00008086d00001C1Asv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00001C1C* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 + + pci:v00008086d00001C1E* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 + ++pci:v00008086d00001C1Esv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00001C20* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller + +@@ -58412,6 +59375,9 @@ pci:v00008086d00001C20sv00001028sd000004DA* + pci:v00008086d00001C20sv00001043sd00008418* + ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard + ++pci:v00008086d00001C20sv00001043sd0000841B* ++ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ + pci:v00008086d00001C20sv00008086sd00002008* + ID_MODEL_FROM_DATABASE=DQ67SW board + +@@ -58434,10 +59400,10 @@ pci:v00008086d00001C22sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C22sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C22sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C24* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller +@@ -58461,10 +59427,10 @@ pci:v00008086d00001C26sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C26sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C26sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C27* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 +@@ -58494,10 +59460,10 @@ pci:v00008086d00001C2Dsv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C2Dsv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C2Dsv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C33* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller +@@ -58521,7 +59487,7 @@ pci:v00008086d00001C3Asv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C3Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C3Asv00008086sd00007270* + ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] +@@ -58577,6 +59543,9 @@ pci:v00008086d00001C4A* + pci:v00008086d00001C4Asv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + ++pci:v00008086d00001C4Asv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ + pci:v00008086d00001C4B* + ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller + +@@ -58610,6 +59579,9 @@ pci:v00008086d00001C51* + pci:v00008086d00001C52* + ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller + ++pci:v00008086d00001C52sv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00001C53* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller + +@@ -58622,6 +59594,9 @@ pci:v00008086d00001C55* + pci:v00008086d00001C56* + ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller + ++pci:v00008086d00001C56sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ + pci:v00008086d00001C57* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller + +@@ -59345,6 +60320,9 @@ pci:v00008086d0000225C* + pci:v00008086d0000225D* + ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 3120 series + ++pci:v00008086d0000225E* ++ ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 31S1 ++ + pci:v00008086d00002310* + ID_MODEL_FROM_DATABASE=DH89xxCC LPC Controller + +@@ -59495,6 +60473,9 @@ pci:v00008086d00002415sv000011D4sd00005340* + pci:v00008086d00002415sv00001734sd00001025* + ID_MODEL_FROM_DATABASE=Activy 3xx + ++pci:v00008086d00002415sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002416* + ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller + +@@ -59804,6 +60785,9 @@ pci:v00008086d00002449sv00001186sd00007801* + pci:v00008086d00002449sv0000144Dsd00002602* + ID_MODEL_FROM_DATABASE=HomePNA 1M CNR + ++pci:v00008086d00002449sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002449sv00008086sd00003010* + ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE + +@@ -59897,6 +60881,9 @@ pci:v00008086d0000244Esv00001028sd000002DA* + pci:v00008086d0000244Esv0000103Csd00002A3B* + ID_MODEL_FROM_DATABASE=Pavilion A1512X + ++pci:v00008086d0000244Esv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000244Esv0000103Csd000031FE* + ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 + +@@ -59906,15 +60893,27 @@ pci:v00008086d0000244Esv0000103Csd0000330B* + pci:v00008086d0000244Esv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + ++pci:v00008086d0000244Esv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d0000244Esv00001458sd00005000* + ID_MODEL_FROM_DATABASE=Motherboard + ++pci:v00008086d0000244Esv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ++pci:v00008086d0000244Esv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d0000244Esv000015D9sd00009680* + ID_MODEL_FROM_DATABASE=X7DBN Motherboard + + pci:v00008086d0000244Esv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + ++pci:v00008086d0000244Esv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00002450* + ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) + +@@ -60671,6 +61670,9 @@ pci:v00008086d000024CDsv00001734sd00001004* + pci:v00008086d000024CDsv00001734sd00001055* + ID_MODEL_FROM_DATABASE=Amilo M1420 + ++pci:v00008086d000024CDsv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000024CDsv00004C53sd00001090* + ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard + +@@ -60689,6 +61691,9 @@ pci:v00008086d000024D0* + pci:v00008086d000024D1* + ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller + ++pci:v00008086d000024D1sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D1sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60740,6 +61745,9 @@ pci:v00008086d000024D2sv00001014sd000002DD* + pci:v00008086d000024D2sv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024D2sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D2sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60809,6 +61817,9 @@ pci:v00008086d000024D3sv00001014sd000002ED* + pci:v00008086d000024D3sv00001028sd00000156* + ID_MODEL_FROM_DATABASE=Precision 360 + ++pci:v00008086d000024D3sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D3sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60860,6 +61871,9 @@ pci:v00008086d000024D4sv00001014sd000002DD* + pci:v00008086d000024D4sv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024D4sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D4sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60926,6 +61940,9 @@ pci:v00008086d000024D5* + pci:v00008086d000024D5sv0000100Asd0000147B* + ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard + ++pci:v00008086d000024D5sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D5sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60977,6 +61994,9 @@ pci:v00008086d000024D7* + pci:v00008086d000024D7sv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=xSeries server mainboard + ++pci:v00008086d000024D7sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D7sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61040,6 +62060,9 @@ pci:v00008086d000024DBsv00001014sd000002DD* + pci:v00008086d000024DBsv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024DBsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024DBsv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61112,6 +62135,9 @@ pci:v00008086d000024DDsv00001014sd000002DD* + pci:v00008086d000024DDsv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024DDsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024DDsv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61169,6 +62195,9 @@ pci:v00008086d000024DE* + pci:v00008086d000024DEsv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=xSeries server mainboard + ++pci:v00008086d000024DEsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024DEsv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61208,6 +62237,21 @@ pci:v00008086d000024DEsv00008086sd0000524C* + pci:v00008086d000024DF* + ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller + ++pci:v00008086d000024DFsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ++pci:v00008086d000024F3* ++ ID_MODEL_FROM_DATABASE=Wireless 8260 ++ ++pci:v00008086d000024F3sv00008086sd00000010* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ ++pci:v00008086d000024F4* ++ ID_MODEL_FROM_DATABASE=Wireless 8260 ++ ++pci:v00008086d000024F4sv00008086sd00000030* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ + pci:v00008086d00002500* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) + +@@ -61679,6 +62723,9 @@ pci:v00008086d000025ABsv00001775sd00001100* + pci:v00008086d000025ABsv00001775sd0000CE90* + ID_MODEL_FROM_DATABASE=CE9 + ++pci:v00008086d000025ABsv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000025ABsv00004C53sd000010B0* + ID_MODEL_FROM_DATABASE=CL9 mainboard + +@@ -62330,6 +63377,9 @@ pci:v00008086d00002668sv00001043sd0000814E* + pci:v00008086d00002668sv00001462sd00007028* + ID_MODEL_FROM_DATABASE=915P/G Neo2 + ++pci:v00008086d00002668sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000266A* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller + +@@ -62657,6 +63707,9 @@ pci:v00008086d00002770sv00001043sd0000817A* + pci:v00008086d00002770sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=E4500 + ++pci:v00008086d00002770sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d00002770sv00008086sd0000544E* + ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP + +@@ -62669,6 +63722,9 @@ pci:v00008086d00002772* + pci:v00008086d00002772sv0000103Csd00002A3B* + ID_MODEL_FROM_DATABASE=Pavilion A1512X + ++pci:v00008086d00002772sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d00002772sv00008086sd0000544E* + ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP + +@@ -62831,6 +63887,9 @@ pci:v00008086d000027B8sv00001043sd00008179* + pci:v00008086d000027B8sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=E4500 + ++pci:v00008086d000027B8sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027B8sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -62906,6 +63965,9 @@ pci:v00008086d000027C0sv00001462sd00002310* + pci:v00008086d000027C0sv00001462sd00007236* + ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard + ++pci:v00008086d000027C0sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027C0sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -62961,7 +64023,7 @@ pci:v00008086d000027C4sv00001028sd000001D7* + ID_MODEL_FROM_DATABASE=XPS M1210 + + pci:v00008086d000027C4sv000017AAsd0000200E* +- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 ++ ID_MODEL_FROM_DATABASE=ThinkPad T60 + + pci:v00008086d000027C5* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] +@@ -63026,6 +64088,9 @@ pci:v00008086d000027C8sv0000144Dsd0000C072* + pci:v00008086d000027C8sv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027C8sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027C8sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63089,6 +64154,9 @@ pci:v00008086d000027C9sv0000144Dsd0000C072* + pci:v00008086d000027C9sv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027C9sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027C9sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63152,6 +64220,9 @@ pci:v00008086d000027CAsv0000144Dsd0000C072* + pci:v00008086d000027CAsv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027CAsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027CAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63209,6 +64280,9 @@ pci:v00008086d000027CBsv0000144Dsd0000C072* + pci:v00008086d000027CBsv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027CBsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027CBsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63266,6 +64340,9 @@ pci:v00008086d000027CCsv0000144Dsd0000C072* + pci:v00008086d000027CCsv00001458sd00005006* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027CCsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027CCsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63296,6 +64373,9 @@ pci:v00008086d000027D0sv0000144Dsd0000C072* + pci:v00008086d000027D0sv00001458sd00005001* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027D0sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D0sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63314,6 +64394,9 @@ pci:v00008086d000027D2sv0000103Csd000030A3* + pci:v00008086d000027D2sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=Notebook N150P + ++pci:v00008086d000027D2sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D2sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63326,6 +64409,9 @@ pci:v00008086d000027D4* + pci:v00008086d000027D4sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=Notebook N150P + ++pci:v00008086d000027D4sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D4sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63341,6 +64427,9 @@ pci:v00008086d000027D6sv0000103Csd000030A3* + pci:v00008086d000027D6sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=Notebook N150P + ++pci:v00008086d000027D6sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D6sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63410,6 +64499,9 @@ pci:v00008086d000027D8sv00001458sd0000A002* + pci:v00008086d000027D8sv00001458sd0000A102* + ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard + ++pci:v00008086d000027D8sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D8sv0000152Dsd00000753* + ID_MODEL_FROM_DATABASE=Softmodem + +@@ -63470,6 +64562,9 @@ pci:v00008086d000027DAsv0000144Dsd0000C072* + pci:v00008086d000027DAsv00001458sd00005001* + ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard + ++pci:v00008086d000027DAsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027DAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63545,6 +64640,9 @@ pci:v00008086d000027DFsv0000107Bsd00005048* + pci:v00008086d000027DFsv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop + ++pci:v00008086d000027DFsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027DFsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63632,6 +64730,9 @@ pci:v00008086d00002822* + pci:v00008086d00002822sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d00002822sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002823* + ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller + +@@ -64202,6 +65303,9 @@ pci:v00008086d00002916* + pci:v00008086d00002916sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d00002916sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002916sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + +@@ -64223,6 +65327,9 @@ pci:v00008086d00002918sv00001028sd00000236* + pci:v00008086d00002918sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002918sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002919* + ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller + +@@ -64265,6 +65372,9 @@ pci:v00008086d00002921sv00001462sd00007360* + pci:v00008086d00002922* + ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] + ++pci:v00008086d00002922sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002922sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64331,6 +65441,9 @@ pci:v00008086d00002930sv00001028sd0000020D* + pci:v00008086d00002930sv00001028sd00000211* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002930sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002930sv0000103Csd00003628* + ID_MODEL_FROM_DATABASE=dv6-1190en + +@@ -64340,6 +65453,9 @@ pci:v00008086d00002930sv00001043sd00008277* + pci:v00008086d00002930sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002930sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002930sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64388,12 +65504,18 @@ pci:v00008086d00002934sv00001028sd0000029C* + pci:v00008086d00002934sv00001028sd00002011* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002934sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002934sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002934sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002934sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002934sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64433,12 +65555,18 @@ pci:v00008086d00002935sv00001028sd00000287* + pci:v00008086d00002935sv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller + ++pci:v00008086d00002935sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002935sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002935sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002935sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002935sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64472,12 +65600,18 @@ pci:v00008086d00002936sv00001028sd00000287* + pci:v00008086d00002936sv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller + ++pci:v00008086d00002936sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002936sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002936sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002936sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002936sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64511,12 +65645,18 @@ pci:v00008086d00002937sv00001028sd0000029C* + pci:v00008086d00002937sv00001028sd00002011* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002937sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002937sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002937sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002937sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002937sv00008086sd00002937* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64553,12 +65693,18 @@ pci:v00008086d00002938sv00001028sd00000287* + pci:v00008086d00002938sv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller + ++pci:v00008086d00002938sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002938sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002938sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002938sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002938sv00008086sd00002938* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64580,12 +65726,18 @@ pci:v00008086d00002939sv00001028sd00000210* + pci:v00008086d00002939sv00001028sd00000237* + ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller + ++pci:v00008086d00002939sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002939sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002939sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002939sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002939sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64625,12 +65777,18 @@ pci:v00008086d0000293Asv00001028sd00000287* + pci:v00008086d0000293Asv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller + ++pci:v00008086d0000293Asv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000293Asv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d0000293Asv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d0000293Asv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000293Asv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64661,12 +65819,18 @@ pci:v00008086d0000293Csv00001028sd00000287* + pci:v00008086d0000293Csv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller + ++pci:v00008086d0000293Csv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000293Csv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d0000293Csv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d0000293Csv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000293Csv00008086sd0000293C* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64685,6 +65849,9 @@ pci:v00008086d0000293Esv00001028sd0000020D* + pci:v00008086d0000293Esv00001028sd00000211* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d0000293Esv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000293Esv0000103Csd00003628* + ID_MODEL_FROM_DATABASE=dv6-1190en + +@@ -64694,6 +65861,9 @@ pci:v00008086d0000293Esv00001043sd0000829F* + pci:v00008086d0000293Esv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d0000293Esv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000293Esv00008086sd0000293E* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64712,6 +65882,9 @@ pci:v00008086d00002940sv00001028sd0000020D* + pci:v00008086d00002940sv00001028sd00000211* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002940sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002940sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + +@@ -64730,6 +65903,9 @@ pci:v00008086d00002944* + pci:v00008086d00002944sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d00002944sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002946* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 + +@@ -64910,6 +66086,9 @@ pci:v00008086d000029C0* + pci:v00008086d000029C0sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d000029C0sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d000029C0sv00001043sd00008276* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + +@@ -64919,6 +66098,9 @@ pci:v00008086d000029C0sv00001043sd000082B0* + pci:v00008086d000029C0sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d000029C0sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000029C0sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -66050,6 +67232,9 @@ pci:v00008086d00002F37* + pci:v00008086d00002F38* + ID_MODEL_FROM_DATABASE=Haswell-E Home Agent 1 + ++pci:v00008086d00002F39* ++ ID_MODEL_FROM_DATABASE=Haswell-E I/O Performance Monitoring ++ + pci:v00008086d00002F3A* + ID_MODEL_FROM_DATABASE=Haswell-E QPI Link 2 + +@@ -66899,6 +68084,9 @@ pci:v00008086d00003591* + pci:v00008086d00003591sv00001014sd000002DD* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d00003591sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d00003591sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -66968,6 +68156,9 @@ pci:v00008086d0000359Bsv00001014sd000002DD* + pci:v00008086d0000359E* + ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub + ++pci:v00008086d0000359Esv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d0000359Esv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -67586,6 +68777,9 @@ pci:v00008086d00003B0A* + pci:v00008086d00003B0Asv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d00003B0Asv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B0B* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller + +@@ -67661,6 +68855,9 @@ pci:v00008086d00003B22* + pci:v00008086d00003B22sv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d00003B22sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B23* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller + +@@ -67715,6 +68912,9 @@ pci:v00008086d00003B30sv00001028sd000002DA* + pci:v00008086d00003B30sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B30sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B30sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67736,6 +68936,9 @@ pci:v00008086d00003B34sv00001028sd000002DA* + pci:v00008086d00003B34sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B34sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B34sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67769,6 +68972,9 @@ pci:v00008086d00003B3Csv00001028sd000002DA* + pci:v00008086d00003B3Csv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B3Csv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B3Csv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67793,12 +68999,18 @@ pci:v00008086d00003B42sv00001028sd000002DA* + pci:v00008086d00003B42sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B42sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B44* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 + + pci:v00008086d00003B44sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B44sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B46* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 + +@@ -67841,6 +69053,9 @@ pci:v00008086d00003B56sv00001028sd000002DA* + pci:v00008086d00003B56sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B56sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B56sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67853,6 +69068,9 @@ pci:v00008086d00003B64* + pci:v00008086d00003B64sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=Aspire 7740G + ++pci:v00008086d00003B64sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B64sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -68601,10 +69819,10 @@ pci:v00008086d0000504C* + ID_MODEL_FROM_DATABASE=EP80579 Integrated Processor with QuickAssist TDM + + pci:v00008086d00005200* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server ++ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server PCI Bridge + + pci:v00008086d00005201* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server ++ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller + + pci:v00008086d00005201sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter +@@ -68612,6 +69830,12 @@ pci:v00008086d00005201sv00008086sd00000001* + pci:v00008086d0000530D* + ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor + ++pci:v00008086d00005845* ++ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller ++ ++pci:v00008086d00005845sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000065C0* + ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub + +@@ -68688,7 +69912,7 @@ pci:v00008086d00007020* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] + + pci:v00008086d00007020sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine + + pci:v00008086d00007030* + ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] +@@ -68720,6 +69944,9 @@ pci:v00008086d00007112* + pci:v00008086d00007112sv000015ADsd00001976* + ID_MODEL_FROM_DATABASE=Virtual Machine Chipset + ++pci:v00008086d00007112sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00007113* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI + +@@ -69383,6 +70610,9 @@ pci:v00008086d00008D04* + pci:v00008086d00008D06* + ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] + ++pci:v00008086d00008D06sv000017AAsd00001031* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i ++ + pci:v00008086d00008D08* + ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] + +@@ -69959,6 +71189,9 @@ pci:v00008086d0000D131* + pci:v00008086d0000D131sv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d0000D131sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d0000D132* + ID_MODEL_FROM_DATABASE=Core Processor DMI + +@@ -69989,6 +71222,9 @@ pci:v00008086d0000D138sv00001028sd000002DA* + pci:v00008086d0000D138sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d0000D138sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d0000D139* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 + +@@ -71144,6 +72380,9 @@ pci:v00009005d00008089* + pci:v00009005d0000808F* + ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID + ++pci:v00009005d0000808Fsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00009005d00008090* + ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID + +@@ -71271,11 +72510,14 @@ pci:v00009710d00009912* + ID_MODEL_FROM_DATABASE=PCIe 9912 Multi-I/O Controller + + pci:v00009710d00009922* +- ID_MODEL_FROM_DATABASE=PCIe 9922 Multi-I/O Controller ++ ID_MODEL_FROM_DATABASE=MCS9922 PCIe Multi-I/O Controller + + pci:v00009710d00009990* + ID_MODEL_FROM_DATABASE=MCS9990 PCIe to 4‐Port USB 2.0 Host Controller + ++pci:v00009850* ++ ID_VENDOR_FROM_DATABASE=3Com (wrong ID) ++ + pci:v00009902* + ID_VENDOR_FROM_DATABASE=Stargen Inc. + +@@ -71381,6 +72623,9 @@ pci:v0000BD11* + pci:v0000BDBD* + ID_VENDOR_FROM_DATABASE=Blackmagic Design + ++pci:v0000BDBDd0000A106* ++ ID_MODEL_FROM_DATABASE=Multibridge Extreme ++ + pci:v0000BDBDd0000A117* + ID_MODEL_FROM_DATABASE=Intensity Pro + +@@ -71585,6 +72830,51 @@ pci:v0000D84D* + pci:v0000DADA* + ID_VENDOR_FROM_DATABASE=Datapath Limited + ++pci:v0000DADAd00000133* ++ ID_MODEL_FROM_DATABASE=VisionRGB-X2 ++ ++pci:v0000DADAd00000139* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E1 ++ ++pci:v0000DADAd00000144* ++ ID_MODEL_FROM_DATABASE=VisionSD8 ++ ++pci:v0000DADAd00000150* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E2 ++ ++pci:v0000DADAd00000151* ++ ID_MODEL_FROM_DATABASE=VisionSD4+1 ++ ++pci:v0000DADAd00000159* ++ ID_MODEL_FROM_DATABASE=VisionAV ++ ++pci:v0000DADAd00000161* ++ ID_MODEL_FROM_DATABASE=DGC161 ++ ++pci:v0000DADAd00000165* ++ ID_MODEL_FROM_DATABASE=DGC165 ++ ++pci:v0000DADAd00000167* ++ ID_MODEL_FROM_DATABASE=DGC167 ++ ++pci:v0000DADAd00000168* ++ ID_MODEL_FROM_DATABASE=DGC168 ++ ++pci:v0000DADAd00001139* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E1S ++ ++pci:v0000DADAd00001150* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E2S ++ ++pci:v0000DADAd00001151* ++ ID_MODEL_FROM_DATABASE=VisionSD4+1S ++ ++pci:v0000DADAd00001153* ++ ID_MODEL_FROM_DATABASE=VisionDVI-DL ++ ++pci:v0000DADAd00001154* ++ ID_MODEL_FROM_DATABASE=VisionSDI2 ++ + pci:v0000DB10* + ID_VENDOR_FROM_DATABASE=Diablo Technologies + +@@ -71735,6 +73025,9 @@ pci:v0000E4BFd0000CC47* + pci:v0000E4BFd0000CC4D* + ID_MODEL_FROM_DATABASE=CCM-BOOGIE + ++pci:v0000E4E4* ++ ID_VENDOR_FROM_DATABASE=Xorcom ++ + pci:v0000E55E* + ID_VENDOR_FROM_DATABASE=Essence Technology, Inc. + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 60dbcd2..014c628 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -20,6 +20,12 @@ usb:v0003* + usb:v0004* + ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart + ++usb:v0011* ++ ID_VENDOR_FROM_DATABASE=Unknown manufacturer ++ ++usb:v0011p7788* ++ ID_MODEL_FROM_DATABASE=Flash mass storage drive ++ + usb:v0053* + ID_VENDOR_FROM_DATABASE=Planex + +@@ -30,7 +36,7 @@ usb:v0079* + ID_VENDOR_FROM_DATABASE=DragonRise Inc. + + usb:v0079p0006* +- ID_MODEL_FROM_DATABASE=Generic USB Joystick ++ ID_MODEL_FROM_DATABASE=PC TWIN SHOCK Gamepad + + usb:v0079p0011* + ID_MODEL_FROM_DATABASE=Gamepad +@@ -63,7 +69,7 @@ usb:v0204* + ID_VENDOR_FROM_DATABASE=Chipsbank Microelectronics Co., Ltd + + usb:v0204p6025* +- ID_MODEL_FROM_DATABASE=CBM2080 Flash drive controller ++ ID_MODEL_FROM_DATABASE=CBM2080 / CBM2090 Flash drive controller + + usb:v0204p6026* + ID_MODEL_FROM_DATABASE=CBM1180 Flash drive controller +@@ -263,6 +269,9 @@ usb:v03EBp2109* + usb:v03EBp210D* + ID_MODEL_FROM_DATABASE=XPLAIN evaluation kit (CDC ACM) + ++usb:v03EBp2110* ++ ID_MODEL_FROM_DATABASE=AVR JTAGICE3 Debugger and Programmer ++ + usb:v03EBp2122* + ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit + +@@ -1001,6 +1010,9 @@ usb:v03F0p2505* + usb:v03F0p2512* + ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 + ++usb:v03F0p2514* ++ ID_MODEL_FROM_DATABASE=4-port hub ++ + usb:v03F0p2517* + ID_MODEL_FROM_DATABASE=LaserJet 2410 + +@@ -1376,6 +1388,9 @@ usb:v03F0p5111* + usb:v03F0p5211* + ID_MODEL_FROM_DATABASE=PhotoSmart 3300 series + ++usb:v03F0p5307* ++ ID_MODEL_FROM_DATABASE=v165w Stick ++ + usb:v03F0p5311* + ID_MODEL_FROM_DATABASE=OfficeJet 6300 + +@@ -2054,6 +2069,21 @@ usb:v0403p8A28* + usb:v0403p8A98* + ID_MODEL_FROM_DATABASE=TIAO Multi-Protocol Adapter + ++usb:v0403p8B28* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCI70 ++ ++usb:v0403p8B29* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 CLS ++ ++usb:v0403p8B2A* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium Q1 ++ ++usb:v0403p8B2B* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCD ++ ++usb:v0403p8B2C* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 ++ + usb:v0403p9133* + ID_MODEL_FROM_DATABASE=CallerID + +@@ -2156,6 +2186,9 @@ usb:v0403pC8BD* + usb:v0403pC8BE* + ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium D1 + ++usb:v0403pC8BF* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 RLV ++ + usb:v0403pCC48* + ID_MODEL_FROM_DATABASE=Tactrix OpenPort 1.3 Mitsubishi + +@@ -2966,6 +2999,9 @@ usb:v040Ap4021* + usb:v040Ap4022* + ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer + ++usb:v040Ap402E* ++ ID_MODEL_FROM_DATABASE=605 Photo Printer ++ + usb:v040Ap4034* + ID_MODEL_FROM_DATABASE=805 Photo Printer + +@@ -4949,6 +4985,9 @@ usb:v043Ep7001* + usb:v043Ep7013* + ID_MODEL_FROM_DATABASE=MP3 Player + ++usb:v043Ep70D7* ++ ID_MODEL_FROM_DATABASE=Mouse Scanner LSM-150 [LG Smart Scan Mouse] ++ + usb:v043Ep70F5* + ID_MODEL_FROM_DATABASE=External HDD + +@@ -5114,6 +5153,9 @@ usb:v044FpB203* + usb:v044FpB300* + ID_MODEL_FROM_DATABASE=Firestorm Dual Power + ++usb:v044FpB303* ++ ID_MODEL_FROM_DATABASE=FireStorm Dual Analog 2 ++ + usb:v044FpB304* + ID_MODEL_FROM_DATABASE=Firestorm Dual Power + +@@ -6437,6 +6479,9 @@ usb:v045Ep0772* + usb:v045Ep0779* + ID_MODEL_FROM_DATABASE=LifeCam HD-3000 + ++usb:v045Ep0780* ++ ID_MODEL_FROM_DATABASE=Comfort Curve Keyboard 3000 ++ + usb:v045Ep0797* + ID_MODEL_FROM_DATABASE=Optical Mouse 200 + +@@ -7313,6 +7358,9 @@ usb:v046DpC062* + usb:v046DpC063* + ID_MODEL_FROM_DATABASE=DELL Laser Mouse + ++usb:v046DpC064* ++ ID_MODEL_FROM_DATABASE=M110 corded optical mouse (M-B0001) ++ + usb:v046DpC066* + ID_MODEL_FROM_DATABASE=G9x Laser Mouse + +@@ -7331,6 +7379,9 @@ usb:v046DpC06B* + usb:v046DpC06C* + ID_MODEL_FROM_DATABASE=Optical Mouse + ++usb:v046DpC077* ++ ID_MODEL_FROM_DATABASE=M105 Optical Mouse ++ + usb:v046DpC101* + ID_MODEL_FROM_DATABASE=UltraX Media Remote + +@@ -7361,6 +7412,9 @@ usb:v046DpC125* + usb:v046DpC126* + ID_MODEL_FROM_DATABASE=Harmony Link + ++usb:v046DpC12B* ++ ID_MODEL_FROM_DATABASE=Harmony Touch Remote ++ + usb:v046DpC201* + ID_MODEL_FROM_DATABASE=WingMan Extreme Joystick with Throttle + +@@ -7448,6 +7502,12 @@ usb:v046DpC226* + usb:v046DpC227* + ID_MODEL_FROM_DATABASE=G15 Refresh Keyboard + ++usb:v046DpC228* ++ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard ++ ++usb:v046DpC229* ++ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard Macro Interface ++ + usb:v046DpC22A* + ID_MODEL_FROM_DATABASE=Gaming Keyboard G110 + +@@ -7466,6 +7526,18 @@ usb:v046DpC245* + usb:v046DpC246* + ID_MODEL_FROM_DATABASE=Gaming Mouse G300 + ++usb:v046DpC248* ++ ID_MODEL_FROM_DATABASE=G105 Gaming Keyboard ++ ++usb:v046DpC24A* ++ ID_MODEL_FROM_DATABASE=G600 Gaming Mouse ++ ++usb:v046DpC24D* ++ ID_MODEL_FROM_DATABASE=G710 Gaming Keyboard ++ ++usb:v046DpC24E* ++ ID_MODEL_FROM_DATABASE=G500s Laser Gaming Mouse ++ + usb:v046DpC281* + ID_MODEL_FROM_DATABASE=WingMan Force + +@@ -8543,6 +8615,9 @@ usb:v0480pA006* + usb:v0480pA007* + ID_MODEL_FROM_DATABASE=External Disk USB 3.0 + ++usb:v0480pA009* ++ ID_MODEL_FROM_DATABASE=Stor.E Basics ++ + usb:v0480pD010* + ID_MODEL_FROM_DATABASE=External Disk 3TB + +@@ -10814,6 +10889,9 @@ usb:v04A9p31E5* + usb:v04A9p31E6* + ID_MODEL_FROM_DATABASE=PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS + ++usb:v04A9p31E7* ++ ID_MODEL_FROM_DATABASE=SELPHY CP790 ++ + usb:v04A9p31EA* + ID_MODEL_FROM_DATABASE=EOS Rebel T2i / EOS 550D / EOS Kiss X4 + +@@ -10985,6 +11063,9 @@ usb:v04A9p325F* + usb:v04A9p3260* + ID_MODEL_FROM_DATABASE=PowerShot SX270 HS + ++usb:v04A9p3262* ++ ID_MODEL_FROM_DATABASE=PowerShot A2600 ++ + usb:v04A9p3264* + ID_MODEL_FROM_DATABASE=PowerShot A1400 + +@@ -11000,6 +11081,9 @@ usb:v04A9p3271* + usb:v04A9p3276* + ID_MODEL_FROM_DATABASE=PowerShot SX170 IS + ++usb:v04A9p3277* ++ ID_MODEL_FROM_DATABASE=PowerShot SX510 HS ++ + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + +@@ -11312,6 +11396,9 @@ usb:v04B3p4482* + usb:v04B3p4485* + ID_MODEL_FROM_DATABASE=Serial Converter + ++usb:v04B3p4524* ++ ID_MODEL_FROM_DATABASE=40 Character Vacuum Fluorescent Display ++ + usb:v04B3p4525* + ID_MODEL_FROM_DATABASE=Double sided CRT + +@@ -12335,6 +12422,9 @@ usb:v04C5p10FE* + usb:v04C5p1150* + ID_MODEL_FROM_DATABASE=fi-6230 + ++usb:v04C5p201D* ++ ID_MODEL_FROM_DATABASE=SATA 3.0 6Gbit/s Adaptor [GROOVY] ++ + usb:v04C6* + ID_VENDOR_FROM_DATABASE=Toshiba America Electronic Components + +@@ -12374,6 +12464,9 @@ usb:v04C8p072D* + usb:v04CA* + ID_VENDOR_FROM_DATABASE=Lite-On Technology Corp. + ++usb:v04CAp004F* ++ ID_MODEL_FROM_DATABASE=SK-9020 keyboard ++ + usb:v04CAp1766* + ID_MODEL_FROM_DATABASE=HID Monitor Controls + +@@ -13346,6 +13439,9 @@ usb:v04E6p5292* + usb:v04E6p5410* + ID_MODEL_FROM_DATABASE=SCR35xx Smart Card Reader + ++usb:v04E6p5591* ++ ID_MODEL_FROM_DATABASE=SCL3711-NFC&RW ++ + usb:v04E6pE000* + ID_MODEL_FROM_DATABASE=SCRx31 Reader + +@@ -14138,6 +14234,9 @@ usb:v04F2p0841* + usb:v04F2p0860* + ID_MODEL_FROM_DATABASE=2.4G Multimedia Wireless Kit + ++usb:v04F2p1121* ++ ID_MODEL_FROM_DATABASE=Periboard 717 Mini Wireless Keyboard ++ + usb:v04F2pA001* + ID_MODEL_FROM_DATABASE=E-Video DC-100 Camera + +@@ -28935,10 +29034,10 @@ usb:v0906* + ID_VENDOR_FROM_DATABASE=Faraday Technology Corp. + + usb:v0908* +- ID_VENDOR_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd ++ ID_VENDOR_FROM_DATABASE=Siemens AG + + usb:v0908p2701* +- ID_MODEL_FROM_DATABASE=Spy Pen VGA ++ ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA + + usb:v0909* + ID_VENDOR_FROM_DATABASE=Audio-Technica Corp. +@@ -38360,6 +38459,12 @@ usb:v0FFC* + usb:v0FFCp0021* + ID_MODEL_FROM_DATABASE=Nord Stage 2 + ++usb:v0FFD* ++ ID_VENDOR_FROM_DATABASE=EarlySense ++ ++usb:v0FFDpFF00* ++ ID_MODEL_FROM_DATABASE=OEM ++ + usb:v0FFF* + ID_VENDOR_FROM_DATABASE=Aopen, Inc. + +@@ -47762,6 +47867,12 @@ usb:v2237* + usb:v2237p4161* + ID_MODEL_FROM_DATABASE=eReader White + ++usb:v228D* ++ ID_VENDOR_FROM_DATABASE=8D Technologies inc. ++ ++usb:v228Dp0001* ++ ID_MODEL_FROM_DATABASE=Terminal Bike Key Reader ++ + usb:v22A6* + ID_VENDOR_FROM_DATABASE=Pie Digital, Inc. + +-- +1.7.9.2 + diff --git a/0001-journal-cleanup-up-error-handling-in-update_catalog.patch b/0001-journal-cleanup-up-error-handling-in-update_catalog.patch new file mode 100644 index 00000000..2062149b --- /dev/null +++ b/0001-journal-cleanup-up-error-handling-in-update_catalog.patch @@ -0,0 +1,104 @@ +From e3b9d9c8027a7c4c55cf1614e0fe9423fad69e8f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Apr 2014 08:44:55 -0400 +Subject: [PATCH] journal: cleanup up error handling in update_catalog() + +- Negative/positive errno mixup caused duplicates not to be detected properly. + Now we get a warning about some duplicate entries in our own catalogs... +- Errors in update_catalog would be ignored, but they should not be. +--- + src/journal/catalog.c | 25 +++++++++++++------------ + src/journal/test-catalog.c | 3 ++- + 2 files changed, 15 insertions(+), 13 deletions(-) + +diff --git src/journal/catalog.c src/journal/catalog.c +index 3ed0b7e..02dedc4 100644 +--- src/journal/catalog.c ++++ src/journal/catalog.c +@@ -103,7 +103,7 @@ static int finish_item( + const char *payload) { + + ssize_t offset; +- CatalogItem *i; ++ _cleanup_free_ CatalogItem *i = NULL; + int r; + + assert(h); +@@ -126,13 +126,14 @@ static int finish_item( + i->offset = htole64((uint64_t) offset); + + r = hashmap_put(h, i, i); +- if (r == EEXIST) { ++ if (r == -EEXIST) { + log_warning("Duplicate entry for " SD_ID128_FORMAT_STR ".%s, ignoring.", + SD_ID128_FORMAT_VAL(id), language ? language : "C"); +- free(i); + return 0; +- } ++ } else if (r < 0) ++ return r; + ++ i = NULL; + return 0; + } + +@@ -383,8 +384,8 @@ error: + int catalog_update(const char* database, const char* root, const char* const* dirs) { + _cleanup_strv_free_ char **files = NULL; + char **f; +- Hashmap *h; + struct strbuf *sb = NULL; ++ _cleanup_hashmap_free_free_ Hashmap *h = NULL; + _cleanup_free_ CatalogItem *items = NULL; + CatalogItem *i; + Iterator j; +@@ -406,13 +407,17 @@ int catalog_update(const char* database, const char* root, const char* const* di + } + + STRV_FOREACH(f, files) { +- log_debug("reading file '%s'", *f); +- catalog_import_file(h, sb, *f); ++ log_debug("Reading file '%s'", *f); ++ r = catalog_import_file(h, sb, *f); ++ if (r < 0) { ++ log_error("Failed to import file '%s': %s.", ++ *f, strerror(-r)); ++ goto finish; ++ } + } + + if (hashmap_size(h) <= 0) { + log_info("No items in catalog."); +- r = 0; + goto finish; + } else + log_debug("Found %u items in catalog.", hashmap_size(h)); +@@ -443,11 +448,7 @@ int catalog_update(const char* database, const char* root, const char* const* di + log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.", + database, n, sb->len, r); + +- r = 0; +- + finish: +- if (h) +- hashmap_free_free(h); + if (sb) + strbuf_cleanup(sb); + +diff --git src/journal/test-catalog.c src/journal/test-catalog.c +index b087a8b..967ab67 100644 +--- src/journal/test-catalog.c ++++ src/journal/test-catalog.c +@@ -157,7 +157,8 @@ int main(int argc, char *argv[]) { + + setlocale(LC_ALL, "de_DE.UTF-8"); + +- log_set_max_level(LOG_DEBUG); ++ log_parse_environment(); ++ log_open(); + + test_catalog_file_lang(); + +-- +1.7.9.2 + diff --git a/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch b/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch new file mode 100644 index 00000000..382d4bf1 --- /dev/null +++ b/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch @@ -0,0 +1,168 @@ +From 6a79c58603ea816a1b4fa1520397b4e138bc1ca0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 19:30:16 +0100 +Subject: [PATCH] logind: ignore lid switch if more than 1 display is + connected + +Previously we expected the desktop environment to take an inhibitor +lock, but this opened a race on boot-up where logind might already be +running but no DE is active. + +Hence, let's move checking for additional displays into logind. This +also opens up this logic for other DEs, given that only GNOME +implemented the inhibitor logic so far. +--- + man/logind.conf.xml | 14 +++++++----- + src/login/logind-action.c | 8 +++++++ + src/login/logind-core.c | 55 +++++++++++++++++++++++++++++++++++++++++++-- + src/login/logind.h | 1 + + 4 files changed, 71 insertions(+), 7 deletions(-) + +diff --git man/logind.conf.xml man/logind.conf.xml +index 54cc379..7673201 100644 +--- man/logind.conf.xml ++++ man/logind.conf.xml +@@ -242,10 +242,10 @@ + ignore, logind will + never handle these keys. If + lock, all running +- sessions will be screen-locked; otherwise, +- the specified action +- will be taken in the respective +- event. Only input devices with the ++ sessions will be screen-locked; ++ otherwise, the specified action will ++ be taken in the respective event. Only ++ input devices with the + power-switch udev + tag will be watched for key/lid switch + events. HandlePowerKey= +@@ -257,7 +257,11 @@ + default to suspend. + HandleHibernateKey= + defaults to +- hibernate. ++ hibernate. Note ++ that the lid switch is ignored if the ++ system is inserted in a docking ++ station, or if more than one display ++ is connected. + + + +diff --git src/login/logind-action.c src/login/logind-action.c +index c04f210..da5a830 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -72,10 +72,18 @@ int manager_handle_action( + + /* If we are docked don't react to lid closing */ + if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { ++ int n; ++ + if (manager_is_docked(m)) { + log_debug("Ignoring lid switch request, system is docked."); + return 0; + } ++ ++ n = manager_count_displays(m); ++ if (n != 1) { ++ log_debug("Ignoring lid switch request, %s displays connected."); ++ return 0; ++ } + } + + /* If the key handling is inhibited, don't do anything */ +diff --git src/login/logind-core.c src/login/logind-core.c +index e4e593f..b8d03c3 100644 +--- src/login/logind-core.c ++++ src/login/logind-core.c +@@ -32,6 +32,7 @@ + #include "audit.h" + #include "bus-util.h" + #include "bus-error.h" ++#include "udev-util.h" + #include "logind.h" + + int manager_add_device(Manager *m, const char *sysfs, bool master, Device **_device) { +@@ -276,9 +277,11 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) { + return 0; + } + +- /* ignore non-master devices for unknown seats */ ++ seat = hashmap_get(m->seats, sn); + master = udev_device_has_tag(d, "master-of-seat"); +- if (!master && !(seat = hashmap_get(m->seats, sn))) ++ ++ /* Ignore non-master devices for unknown seats */ ++ if (!master && !seat) + return 0; + + r = manager_add_device(m, udev_device_get_syspath(d), master, &device); +@@ -514,3 +517,51 @@ bool manager_is_docked(Manager *m) { + + return false; + } ++ ++int manager_count_displays(Manager *m) { ++ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; ++ struct udev_list_entry *item = NULL, *first = NULL; ++ int r; ++ int n = 0; ++ ++ e = udev_enumerate_new(m->udev); ++ if (!e) ++ return -ENOMEM; ++ ++ r = udev_enumerate_add_match_subsystem(e, "drm"); ++ if (r < 0) ++ return r; ++ ++ r = udev_enumerate_scan_devices(e); ++ if (r < 0) ++ return r; ++ ++ first = udev_enumerate_get_list_entry(e); ++ udev_list_entry_foreach(item, first) { ++ _cleanup_udev_device_unref_ struct udev_device *d = NULL; ++ struct udev_device *p; ++ const char *status; ++ ++ d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item)); ++ if (!d) ++ return -ENOMEM; ++ ++ p = udev_device_get_parent(d); ++ if (!p) ++ return -ENOMEM; ++ ++ /* If the parent shares the same subsystem as the ++ * device we are looking at then it is a connector, ++ * which is what we are interested in. */ ++ if (!streq_ptr(udev_device_get_subsystem(p), "drm")) ++ continue; ++ ++ /* We count any connector which is not explicitly ++ * "disconnected" as connected. */ ++ status = udev_device_get_sysattr_value(d, "status"); ++ if (!streq_ptr(status, "disconnected")) ++ n++; ++ } ++ ++ return n; ++} +diff --git src/login/logind.h src/login/logind.h +index 0344acc..74d6641 100644 +--- src/login/logind.h ++++ src/login/logind.h +@@ -149,6 +149,7 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); + int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); + + bool manager_is_docked(Manager *m); ++int manager_count_displays(Manager *m); + + extern const sd_bus_vtable manager_vtable[]; + +-- +1.7.9.2 + diff --git a/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..a386c649 --- /dev/null +++ b/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,32 @@ +From f401e2b24ba17452f9655993a6dedefdffe06d23 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Tue, 11 Mar 2014 09:33:31 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 0335a71..7d86f10 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -911,3 +911,15 @@ bluetooth:v012C* + + bluetooth:v012D* + ID_VENDOR_FROM_DATABASE=Sony Corporation ++ ++bluetooth:v012E* ++ ID_VENDOR_FROM_DATABASE=ASSA ABLOY ++ ++bluetooth:v012F* ++ ID_VENDOR_FROM_DATABASE=Clarion Co., Ltd. ++ ++bluetooth:v0130* ++ ID_VENDOR_FROM_DATABASE=Warehouse Innovations ++ ++bluetooth:v0131* ++ ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation +-- +1.7.9.2 + diff --git a/0002-hwdb-update.patch b/0002-hwdb-update.patch new file mode 100644 index 00000000..1d3abc28 --- /dev/null +++ b/0002-hwdb-update.patch @@ -0,0 +1,2058 @@ +From dbe633cc027e31a0d4fb488a3c68b7762ef0e7b3 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 13 Apr 2014 23:46:27 -0700 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 275 +++++++++++++++++++++- + hwdb/20-pci-vendor-model.hwdb | 522 ++++++++++++++++++++++++++++++++++++++--- + 2 files changed, 751 insertions(+), 46 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 209b89e..17794ed 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -6929,7 +6929,7 @@ OUI:0050C2912* + ID_OUI_FROM_DATABASE=ASSET InterTech, Inc. + + OUI:0050C2913* +- ID_OUI_FROM_DATABASE=Selex Sensors & Airborne Systems ++ ID_OUI_FROM_DATABASE=Selex Ex Ltd + + OUI:0050C2914* + ID_OUI_FROM_DATABASE=IO-Connect +@@ -15944,7 +15944,7 @@ OUI:000300* + ID_OUI_FROM_DATABASE=Barracuda Networks, Inc. + + OUI:000301* +- ID_OUI_FROM_DATABASE=Avantas Networks Corporation ++ ID_OUI_FROM_DATABASE=EXFO + + OUI:000302* + ID_OUI_FROM_DATABASE=Charles Industries, Ltd. +@@ -24575,7 +24575,7 @@ OUI:000E65* + ID_OUI_FROM_DATABASE=TransCore + + OUI:000E66* +- ID_OUI_FROM_DATABASE=Hitachi Advanced Digital, Inc. ++ ID_OUI_FROM_DATABASE=Hitachi Industry & Control Solutions, Ltd. + + OUI:000E67* + ID_OUI_FROM_DATABASE=Eltis Microelectronics Ltd. +@@ -24947,7 +24947,7 @@ OUI:000EE1* + ID_OUI_FROM_DATABASE=ExtremeSpeed Inc. + + OUI:000EE2* +- ID_OUI_FROM_DATABASE=Custom Engineering S.p.A. ++ ID_OUI_FROM_DATABASE=Custom Engineering + + OUI:000EE3* + ID_OUI_FROM_DATABASE=Chiyu Technology Co.,Ltd +@@ -51760,6 +51760,9 @@ OUI:045A95* + OUI:045C06* + ID_OUI_FROM_DATABASE=Zmodo Technology Corporation + ++OUI:045C8E* ++ ID_OUI_FROM_DATABASE=gosund GROUP CO.,LTD ++ + OUI:045D56* + ID_OUI_FROM_DATABASE=camtron industrial inc. + +@@ -51865,6 +51868,9 @@ OUI:04C5A4* + OUI:04C880* + ID_OUI_FROM_DATABASE=Samtec Inc + ++OUI:04C991* ++ ID_OUI_FROM_DATABASE=Phistek INC. ++ + OUI:04CB1D* + ID_OUI_FROM_DATABASE=Traka plc + +@@ -52633,6 +52639,9 @@ OUI:08CA45* + OUI:08CC68* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:08CD9B* ++ ID_OUI_FROM_DATABASE=samtec automotive electronics & software GmbH ++ + OUI:08D09F* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -52684,6 +52693,9 @@ OUI:08F2F4* + OUI:08F6F8* + ID_OUI_FROM_DATABASE=GET Engineering + ++OUI:08F728* ++ ID_OUI_FROM_DATABASE=GLOBO Multimedia Sp. z o.o. Sp.k. ++ + OUI:08FAE0* + ID_OUI_FROM_DATABASE=Fohhn Audio AG + +@@ -52750,6 +52762,9 @@ OUI:0C3021* + OUI:0C37DC* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:0C383E* ++ ID_OUI_FROM_DATABASE=Fanvil Technology Co., Ltd. ++ + OUI:0C3956* + ID_OUI_FROM_DATABASE=Observator instruments + +@@ -53104,6 +53119,9 @@ OUI:102D96* + OUI:102EAF* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:103047* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:103378* + ID_OUI_FROM_DATABASE=FLECTRON Co., LTD + +@@ -53215,6 +53233,9 @@ OUI:1088CE* + OUI:108CCF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:109266* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:1093E9* + ID_OUI_FROM_DATABASE=Apple + +@@ -53260,6 +53281,9 @@ OUI:10BF48* + OUI:10C2BA* + ID_OUI_FROM_DATABASE=UTT Co., Ltd. + ++OUI:10C37B* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:10C586* + ID_OUI_FROM_DATABASE=BIO SOUND LAB CO., LTD. + +@@ -53365,6 +53389,9 @@ OUI:141BBD* + OUI:141BF0* + ID_OUI_FROM_DATABASE=Intellimedia Systems Ltd + ++OUI:141FBA* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:1423D7* + ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD. + +@@ -53518,6 +53545,9 @@ OUI:14B968* + OUI:14C089* + ID_OUI_FROM_DATABASE=DUNE HD LTD + ++OUI:14C126* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:14C21D* + ID_OUI_FROM_DATABASE=Sabtech Industries + +@@ -53572,6 +53602,9 @@ OUI:14F28E* + OUI:14F42A* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:14F65A* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:14FEAF* + ID_OUI_FROM_DATABASE=SAGITTAR LIMITED + +@@ -53659,6 +53692,9 @@ OUI:182B05* + OUI:182C91* + ID_OUI_FROM_DATABASE=Concept Development, Inc. + ++OUI:183009* ++ ID_OUI_FROM_DATABASE=Woojin Industrial Systems Co., Ltd. ++ + OUI:1832A2* + ID_OUI_FROM_DATABASE=LAON TECHNOLOGY CO., LTD. + +@@ -53698,6 +53734,9 @@ OUI:184617* + OUI:1848D8* + ID_OUI_FROM_DATABASE=Fastback Networks + ++OUI:184A6F* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd ++ + OUI:184E94* + ID_OUI_FROM_DATABASE=MESSOA TECHNOLOGIES INC. + +@@ -53758,6 +53797,9 @@ OUI:1880F5* + OUI:188331* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:1883BF* ++ ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation ++ + OUI:188410* + ID_OUI_FROM_DATABASE=CoreTrust Inc. + +@@ -54322,6 +54364,9 @@ OUI:206A8A* + OUI:206AFF* + ID_OUI_FROM_DATABASE=Atlas Elektronik UK Limited + ++OUI:206E9C* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:206FEC* + ID_OUI_FROM_DATABASE=Braemac CA LLC + +@@ -54838,6 +54883,9 @@ OUI:284C53* + OUI:284D92* + ID_OUI_FROM_DATABASE=Luminator + ++OUI:284ED7* ++ ID_OUI_FROM_DATABASE=OutSmart Power Systems, Inc. ++ + OUI:284FCE* + ID_OUI_FROM_DATABASE=Liaoning Wontel Science and Technology Development Co.,Ltd. + +@@ -54976,6 +55024,9 @@ OUI:28C68E* + OUI:28C718* + ID_OUI_FROM_DATABASE=Altierre + ++OUI:28C7CE* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:28C825* + ID_OUI_FROM_DATABASE=DellKing Industrial Co., Ltd + +@@ -55069,6 +55120,9 @@ OUI:28FBD3* + OUI:28FC51* + ID_OUI_FROM_DATABASE=The Electric Controller and Manufacturing Co., LLC + ++OUI:28FCF6* ++ ID_OUI_FROM_DATABASE=Shenzhen Xin KingBrand enterprises Co.,Ltd ++ + OUI:2C002C* + ID_OUI_FROM_DATABASE=UNOWHY + +@@ -55291,6 +55345,9 @@ OUI:2CB693* + OUI:2CB69D* + ID_OUI_FROM_DATABASE=RED Digital Cinema + ++OUI:2CBE08* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:2CBE97* + ID_OUI_FROM_DATABASE=Ingenieurbuero Bickele und Buehler GmbH + +@@ -55354,6 +55411,9 @@ OUI:30055C* + OUI:300B9C* + ID_OUI_FROM_DATABASE=Delta Mobile Systems, Inc. + ++OUI:300D2A* ++ ID_OUI_FROM_DATABASE=Zhejiang Wellcom Technology Co.,Ltd. ++ + OUI:300ED5* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd + +@@ -55450,6 +55510,9 @@ OUI:3055ED* + OUI:3057AC* + ID_OUI_FROM_DATABASE=IRLAB LTD. + ++OUI:30595B* ++ ID_OUI_FROM_DATABASE=streamnow AG ++ + OUI:3059B7* + ID_OUI_FROM_DATABASE=Microsoft + +@@ -55543,6 +55606,9 @@ OUI:30B3A2* + OUI:30B5C2* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:30B5F1* ++ ID_OUI_FROM_DATABASE=Aitexin Technology Co., Ltd ++ + OUI:30C750* + ID_OUI_FROM_DATABASE=MIC Technology Group + +@@ -55606,6 +55672,9 @@ OUI:30F9ED* + OUI:30FD11* + ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. + ++OUI:340286* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:3407FB* + ID_OUI_FROM_DATABASE=Ericsson AB + +@@ -55654,6 +55723,9 @@ OUI:342F6E* + OUI:343111* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:3431C4* ++ ID_OUI_FROM_DATABASE=AVM GmbH ++ + OUI:3440B5* + ID_OUI_FROM_DATABASE=IBM + +@@ -55840,6 +55912,9 @@ OUI:34C059* + OUI:34C3AC* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:34C5D0* ++ ID_OUI_FROM_DATABASE=Hagleitner Hygiene International GmbH ++ + OUI:34C69A* + ID_OUI_FROM_DATABASE=Enecsys Ltd + +@@ -55963,6 +56038,9 @@ OUI:3826CD* + OUI:3828EA* + ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD + ++OUI:382DD1* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:3831AC* + ID_OUI_FROM_DATABASE=WEG + +@@ -56371,6 +56449,9 @@ OUI:3C99F7* + OUI:3C9F81* + ID_OUI_FROM_DATABASE=Shenzhen CATIC Bit Communications Technology Co.,Ltd + ++OUI:3CA10D* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:3CA315* + ID_OUI_FROM_DATABASE=Bless Information & Communications Co., Ltd + +@@ -56380,6 +56461,9 @@ OUI:3CA72B* + OUI:3CA9F4* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:3CAA3F* ++ ID_OUI_FROM_DATABASE=iKey, Ltd. ++ + OUI:3CAB8E* + ID_OUI_FROM_DATABASE=Apple + +@@ -56413,6 +56497,9 @@ OUI:3CC99E* + OUI:3CCA87* + ID_OUI_FROM_DATABASE=Iders Incorporated + ++OUI:3CCD5A* ++ ID_OUI_FROM_DATABASE=Technische Alternative GmbH ++ + OUI:3CCD93* + ID_OUI_FROM_DATABASE=LG ELECTRONICS INC + +@@ -57109,6 +57196,9 @@ OUI:481A84* + OUI:481BD2* + ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. + ++OUI:4826E8* ++ ID_OUI_FROM_DATABASE=Tek-Air Systems, Inc. ++ + OUI:48282F* + ID_OUI_FROM_DATABASE=ZTE Corporation + +@@ -57260,7 +57350,7 @@ OUI:48D7FF* + ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH + + OUI:48D855* +- ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY ++ ID_OUI_FROM_DATABASE=Telvent + + OUI:48D8FE* + ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. +@@ -57748,6 +57838,9 @@ OUI:507E5D* + OUI:508569* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD + ++OUI:508789* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:5087B8* + ID_OUI_FROM_DATABASE=Nuvyyo Inc + +@@ -57880,6 +57973,9 @@ OUI:50FC30* + OUI:50FC9F* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:50FEF2* ++ ID_OUI_FROM_DATABASE=Sify Technologies Ltd ++ + OUI:5403F5* + ID_OUI_FROM_DATABASE=EBN Technology Corp. + +@@ -58072,6 +58168,9 @@ OUI:54AE27* + OUI:54B620* + ID_OUI_FROM_DATABASE=SUHDOL E&C Co.Ltd. + ++OUI:54B753* ++ ID_OUI_FROM_DATABASE=Hunan Fenghui Yinjia Science And Technology Co.,Ltd ++ + OUI:54BEF7* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + +@@ -58132,6 +58231,9 @@ OUI:54F5B6* + OUI:54F666* + ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG + ++OUI:54FA3E* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD ++ + OUI:54FB58* + ID_OUI_FROM_DATABASE=WISEWARE, Lda + +@@ -58462,6 +58564,9 @@ OUI:5C260A* + OUI:5C2AEF* + ID_OUI_FROM_DATABASE=Open Access Pty Ltd + ++OUI:5C2E59* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:5C313E* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -58519,6 +58624,9 @@ OUI:5C57C8* + OUI:5C5948* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C5BC2* ++ ID_OUI_FROM_DATABASE=YIK Corporation ++ + OUI:5C5EAB* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -58558,6 +58666,9 @@ OUI:5C8778* + OUI:5C89D4* + ID_OUI_FROM_DATABASE=Beijing Banner Electric Co.,Ltd + ++OUI:5C8D4E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:5C95AE* + ID_OUI_FROM_DATABASE=Apple + +@@ -58819,6 +58930,9 @@ OUI:607688* + OUI:60812B* + ID_OUI_FROM_DATABASE=Custom Control Concepts + ++OUI:6081F9* ++ ID_OUI_FROM_DATABASE=Helium Systems, Inc ++ + OUI:6083B2* + ID_OUI_FROM_DATABASE=GkWare e.K. + +@@ -58867,6 +58981,9 @@ OUI:60A10A* + OUI:60A44C* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + ++OUI:60A8FE* ++ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks ++ + OUI:60A9B0* + ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc + +@@ -58918,6 +59035,9 @@ OUI:60C980* + OUI:60CBFB* + ID_OUI_FROM_DATABASE=AirScape Inc. + ++OUI:60CDA9* ++ ID_OUI_FROM_DATABASE=Abloomy ++ + OUI:60CDC5* + ID_OUI_FROM_DATABASE=Taiwan Carol Electronics., Ltd + +@@ -59092,6 +59212,9 @@ OUI:644D70* + OUI:644F74* + ID_OUI_FROM_DATABASE=LENUS Co., Ltd. + ++OUI:644FB0* ++ ID_OUI_FROM_DATABASE=Hyunjin.com ++ + OUI:64517E* + ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. + +@@ -59146,6 +59269,9 @@ OUI:64680C* + OUI:6469BC* + ID_OUI_FROM_DATABASE=Hytera Communications Co .,ltd + ++OUI:646CB2* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:646E6C* + ID_OUI_FROM_DATABASE=Radio Datacom LLC + +@@ -59305,6 +59431,9 @@ OUI:64D814* + OUI:64D912* + ID_OUI_FROM_DATABASE=Solidica, Inc. + ++OUI:64D954* ++ ID_OUI_FROM_DATABASE=TAICANG AND W ELECTRONICS CO LTD ++ + OUI:64D989* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -59368,6 +59497,9 @@ OUI:64F987* + OUI:64FC8C* + ID_OUI_FROM_DATABASE=Zonar Systems + ++OUI:680571* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:6805CA* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -59701,6 +59833,9 @@ OUI:6C2E33* + OUI:6C2E85* + ID_OUI_FROM_DATABASE=SAGEMCOM + ++OUI:6C2F2C* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:6C32DE* + ID_OUI_FROM_DATABASE=Indieon Technologies Pvt. Ltd. + +@@ -59860,6 +59995,9 @@ OUI:6CADF8* + OUI:6CAE8B* + ID_OUI_FROM_DATABASE=IBM Corporation + ++OUI:6CB0CE* ++ ID_OUI_FROM_DATABASE=NETGEAR ++ + OUI:6CB311* + ID_OUI_FROM_DATABASE=Shenzhen Lianrui Electronics Co.,Ltd + +@@ -59875,6 +60013,9 @@ OUI:6CBEE9* + OUI:6CC1D2* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:6CC217* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:6CC26B* + ID_OUI_FROM_DATABASE=Apple + +@@ -59929,6 +60070,9 @@ OUI:6CF97C* + OUI:6CFA58* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:6CFA89* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:6CFAA7* + ID_OUI_FROM_DATABASE=AMPAK Technology Inc. + +@@ -60097,6 +60241,9 @@ OUI:7071B3* + OUI:7071BC* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + ++OUI:70720D* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:70723C* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -60502,6 +60649,9 @@ OUI:74D850* + OUI:74DA38* + ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. + ++OUI:74DBD1* ++ ID_OUI_FROM_DATABASE=Ebay Inc ++ + OUI:74DE2B* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -60733,6 +60883,9 @@ OUI:78923E* + OUI:78929C* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:789684* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:7898FD* + ID_OUI_FROM_DATABASE=Q9 Networks Inc. + +@@ -60922,6 +61075,9 @@ OUI:78F7BE* + OUI:78F7D0* + ID_OUI_FROM_DATABASE=Silverbrook Research + ++OUI:78FD94* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:78FE3D* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -61060,6 +61216,9 @@ OUI:7C69F6* + OUI:7C6AB3* + ID_OUI_FROM_DATABASE=IBC TECHNOLOGIES INC. + ++OUI:7C6AC3* ++ ID_OUI_FROM_DATABASE=GatesAir, Inc ++ + OUI:7C6ADB* + ID_OUI_FROM_DATABASE=SafeTone Technology Co.,Ltd + +@@ -61087,6 +61246,9 @@ OUI:7C6F06* + OUI:7C6FF8* + ID_OUI_FROM_DATABASE=ShenZhen ACTO Digital Video Technology Co.,Ltd. + ++OUI:7C70BC* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:7C72E4* + ID_OUI_FROM_DATABASE=Unikey Technologies + +@@ -61174,6 +61336,9 @@ OUI:7CBFB1* + OUI:7CC3A1* + ID_OUI_FROM_DATABASE=Apple + ++OUI:7CC4EF* ++ ID_OUI_FROM_DATABASE=Devialet ++ + OUI:7CC537* + ID_OUI_FROM_DATABASE=Apple + +@@ -61231,6 +61396,9 @@ OUI:7CE044* + OUI:7CE1FF* + ID_OUI_FROM_DATABASE=Computer Performance, Inc. DBA Digital Loggers, Inc. + ++OUI:7CE524* ++ ID_OUI_FROM_DATABASE=Quirky, Inc. ++ + OUI:7CE56B* + ID_OUI_FROM_DATABASE=ESEN Optoelectronics Technology Co.,Ltd. + +@@ -61477,6 +61645,9 @@ OUI:80A1D7* + OUI:80AAA4* + ID_OUI_FROM_DATABASE=USAG + ++OUI:80AD67* ++ ID_OUI_FROM_DATABASE=Kasda Digital Technology Co.,Ltd ++ + OUI:80B219* + ID_OUI_FROM_DATABASE=ELEKTRON TECHNOLOGY UK LIMITED + +@@ -61564,6 +61735,9 @@ OUI:80FFA8* + OUI:8400D2* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:8401A7* ++ ID_OUI_FROM_DATABASE=Greyware Automation Products, Inc ++ + OUI:840B2D* + ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS CO., LTD + +@@ -61576,6 +61750,9 @@ OUI:841715* + OUI:841766* + ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd + ++OUI:84183A* ++ ID_OUI_FROM_DATABASE=Ruckus Wireless ++ + OUI:841888* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -61723,6 +61900,9 @@ OUI:848433* + OUI:848506* + ID_OUI_FROM_DATABASE=Apple + ++OUI:84850A* ++ ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH ++ + OUI:848D84* + ID_OUI_FROM_DATABASE=Rajant Corporation + +@@ -61885,6 +62065,9 @@ OUI:8823FE* + OUI:88252C* + ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation + ++OUI:882950* ++ ID_OUI_FROM_DATABASE=Dalian Netmoon Tech Develop Co.,Ltd ++ + OUI:882E5A* + ID_OUI_FROM_DATABASE=storONE + +@@ -61948,6 +62131,9 @@ OUI:885C47* + OUI:88615A* + ID_OUI_FROM_DATABASE=Siano Mobile Silicon Ltd. + ++OUI:8863DF* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:88685C* + ID_OUI_FROM_DATABASE=Shenzhen ChuangDao & Perpetual Eternal Technology Co.,Ltd + +@@ -62098,6 +62284,9 @@ OUI:88E917* + OUI:88ED1C* + ID_OUI_FROM_DATABASE=Cudo Communication Co., Ltd. + ++OUI:88F031* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:88F077* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -62326,6 +62515,9 @@ OUI:8CB864* + OUI:8CBEBE* + ID_OUI_FROM_DATABASE=Xiaomi Technology Co.,Ltd + ++OUI:8CBF9D* ++ ID_OUI_FROM_DATABASE=Shanghai Xinyou Information Technology Ltd. Co. ++ + OUI:8CC121* + ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company + +@@ -62662,6 +62854,9 @@ OUI:90B97D* + OUI:90C115* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:90C792* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:90CC24* + ID_OUI_FROM_DATABASE=Synaptics, Inc + +@@ -63259,6 +63454,9 @@ OUI:98EC65* + OUI:98F0AB* + ID_OUI_FROM_DATABASE=Apple + ++OUI:98F170* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:98F537* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -63496,6 +63694,9 @@ OUI:9CA577* + OUI:9CA9E4* + ID_OUI_FROM_DATABASE=zte corporation + ++OUI:9CAD97* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:9CADEF* + ID_OUI_FROM_DATABASE=Obihai Technology, Inc. + +@@ -64456,6 +64657,9 @@ OUI:A8E018* + OUI:A8E3EE* + ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. + ++OUI:A8E539* ++ ID_OUI_FROM_DATABASE=Moimstone Co.,Ltd ++ + OUI:A8EF26* + ID_OUI_FROM_DATABASE=Tritonwave + +@@ -64702,6 +64906,9 @@ OUI:ACA016* + OUI:ACA22C* + ID_OUI_FROM_DATABASE=Baycity Technologies Ltd + ++OUI:ACA31E* ++ ID_OUI_FROM_DATABASE=Aruba Networks ++ + OUI:ACA430* + ID_OUI_FROM_DATABASE=Peerless AV + +@@ -64837,6 +65044,12 @@ OUI:B000B4* + OUI:B00594* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + ++OUI:B009D3* ++ ID_OUI_FROM_DATABASE=Avizia ++ ++OUI:B01041* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:B01203* + ID_OUI_FROM_DATABASE=Dynamics Hong Kong Limited + +@@ -64951,6 +65164,9 @@ OUI:B0808C* + OUI:B081D8* + ID_OUI_FROM_DATABASE=I-sys Corp + ++OUI:B083FE* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:B0869E* + ID_OUI_FROM_DATABASE=Chloride S.r.L + +@@ -65122,6 +65338,9 @@ OUI:B407F9* + OUI:B40832* + ID_OUI_FROM_DATABASE=TC Communications + ++OUI:B40B44* ++ ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. ++ + OUI:B40B7A* + ID_OUI_FROM_DATABASE=Brusa Elektronik AG + +@@ -65200,6 +65419,9 @@ OUI:B4417A* + OUI:B4430D* + ID_OUI_FROM_DATABASE=Broadlink Pty Ltd + ++OUI:B4475E* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:B44CC2* + ID_OUI_FROM_DATABASE=NR ELECTRIC CO., LTD + +@@ -65608,6 +65830,9 @@ OUI:B8A8AF* + OUI:B8AC6F* + ID_OUI_FROM_DATABASE=Dell Inc + ++OUI:B8AD3E* ++ ID_OUI_FROM_DATABASE=BLUECOM ++ + OUI:B8AE6E* + ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. + +@@ -65842,6 +66067,9 @@ OUI:BC4B79* + OUI:BC4E3C* + ID_OUI_FROM_DATABASE=CORE STAFF CO., LTD. + ++OUI:BC4E5D* ++ ID_OUI_FROM_DATABASE=ZhongMiao Technology Co., Ltd. ++ + OUI:BC51FE* + ID_OUI_FROM_DATABASE=Swann Communications Pty Ltd + +@@ -65974,6 +66202,9 @@ OUI:BCC6DB* + OUI:BCC810* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:BCCAB5* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:BCCD45* + ID_OUI_FROM_DATABASE=VOISMART + +@@ -66748,6 +66979,9 @@ OUI:C88B47* + OUI:C8903E* + ID_OUI_FROM_DATABASE=Pakton Technologies + ++OUI:C891F9* ++ ID_OUI_FROM_DATABASE=SAGEMCOM ++ + OUI:C89346* + ID_OUI_FROM_DATABASE=MXCHIP Company Limited + +@@ -67000,6 +67234,9 @@ OUI:CC3A61* + OUI:CC3C3F* + ID_OUI_FROM_DATABASE=SA.S.S. Datentechnik AG + ++OUI:CC3D82* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:CC3E5F* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -67303,6 +67540,9 @@ OUI:D03761* + OUI:D03972* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:D039B3* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:D046DC* + ID_OUI_FROM_DATABASE=Southwest Research Institute + +@@ -67735,6 +67975,9 @@ OUI:D48FAA* + OUI:D491AF* + ID_OUI_FROM_DATABASE=Electroacustica General Iberica, S.A. + ++OUI:D49398* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:D493A0* + ID_OUI_FROM_DATABASE=Fidelix Oy + +@@ -68057,7 +68300,7 @@ OUI:D89695* + ID_OUI_FROM_DATABASE=Apple + + OUI:D8973B* +- ID_OUI_FROM_DATABASE=Emerson Network Power Embedded Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:D89760* + ID_OUI_FROM_DATABASE=C2 Development, Inc. +@@ -68170,6 +68413,9 @@ OUI:D8DF0D* + OUI:D8E3AE* + ID_OUI_FROM_DATABASE=CIRTEC MEDICAL SYSTEMS + ++OUI:D8E56D* ++ ID_OUI_FROM_DATABASE=TCT Mobile Limited ++ + OUI:D8E72B* + ID_OUI_FROM_DATABASE=OnPATH Technologies + +@@ -69319,6 +69565,9 @@ OUI:E8F928* + OUI:E8FC60* + ID_OUI_FROM_DATABASE=ELCOM Innovations Private Limited + ++OUI:E8FCAF* ++ ID_OUI_FROM_DATABASE=NETGEAR INC., ++ + OUI:EC0ED6* + ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS + +@@ -69442,6 +69691,9 @@ OUI:EC888F* + OUI:EC89F5* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:EC8A4C* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:EC8EAD* + ID_OUI_FROM_DATABASE=DLX + +@@ -70099,6 +70351,9 @@ OUI:F4CE46* + OUI:F4CFE2* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:F4D261* ++ ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd ++ + OUI:F4D9FB* + ID_OUI_FROM_DATABASE=Samsung Electronics CO., LTD + +@@ -70111,6 +70366,9 @@ OUI:F4DCDA* + OUI:F4DCF9* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:F4DD9E* ++ ID_OUI_FROM_DATABASE=GoPro ++ + OUI:F4E142* + ID_OUI_FROM_DATABASE=Delta Elektronika BV + +@@ -70318,6 +70576,9 @@ OUI:F87B8C* + OUI:F8811A* + ID_OUI_FROM_DATABASE=OVERKIZ + ++OUI:F884F2* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:F88C1C* + ID_OUI_FROM_DATABASE=KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING + +@@ -70586,7 +70847,7 @@ OUI:FC3FAB* + ID_OUI_FROM_DATABASE=Henan Lanxin Technology Co., Ltd + + OUI:FC4463* +- ID_OUI_FROM_DATABASE=Universal Audio ++ ID_OUI_FROM_DATABASE=Universal Audio, Inc + + OUI:FC4499* + ID_OUI_FROM_DATABASE=Swarco LEA d.o.o. +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 371a685..d54cb2a 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -497,6 +497,9 @@ pci:v00000E11d0000F130* + pci:v00000E11d0000F150* + ID_MODEL_FROM_DATABASE=NetFlex-3/P ThunderLAN 2.3 + ++pci:v00000E55* ++ ID_VENDOR_FROM_DATABASE=HaSoTec GmbH ++ + pci:v00000EAC* + ID_VENDOR_FROM_DATABASE=SHF Communication Technologies AG + +@@ -1169,6 +1172,12 @@ pci:v00001000d00000073sv00001137sd000000B0* + pci:v00001000d00000073sv00001137sd000000B1* + ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i + ++pci:v00001000d00000073sv00001137sd000000C2* ++ ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide ++ ++pci:v00001000d00000073sv00001137sd000000C3* ++ ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide ++ + pci:v00001000d00000073sv000015D9sd00000400* + ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR + +@@ -1665,25 +1674,25 @@ pci:v00001002d00001307* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d00001309* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d0000130A* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] + + pci:v00001002d0000130B* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] + + pci:v00001002d0000130C* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d0000130D* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] + + pci:v00001002d0000130E* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] + + pci:v00001002d0000130F* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d00001310* + ID_MODEL_FROM_DATABASE=Kaveri +@@ -1695,7 +1704,7 @@ pci:v00001002d00001312* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d00001313* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d00001314* + ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio +@@ -1704,22 +1713,25 @@ pci:v00001002d00001314sv0000174Bsd00001001* + ID_MODEL_FROM_DATABASE=PURE Fusion Mini + + pci:v00001002d00001315* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] + + pci:v00001002d00001316* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] + + pci:v00001002d00001317* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d00001318* ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] ++ + pci:v00001002d0000131B* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] + + pci:v00001002d0000131C* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d0000131D* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] + + pci:v00001002d00001714* + ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] +@@ -4275,7 +4287,7 @@ pci:v00001002d00006641* + ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] + + pci:v00001002d00006649* +- ID_MODEL_FROM_DATABASE=Bonaire ++ ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] + + pci:v00001002d00006650* + ID_MODEL_FROM_DATABASE=Bonaire +@@ -4326,13 +4338,13 @@ pci:v00001002d00006663sv00001025sd00000846* + ID_MODEL_FROM_DATABASE=Radeon HD 8570A + + pci:v00001002d00006664* +- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] ++ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] + + pci:v00001002d00006665* + ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] + + pci:v00001002d00006667* +- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] ++ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] + + pci:v00001002d0000666F* + ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] +@@ -5808,7 +5820,7 @@ pci:v00001002d00006792* + ID_MODEL_FROM_DATABASE=Tahiti + + pci:v00001002d00006798* +- ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/R9 280X] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] + + pci:v00001002d00006798sv00001002sd00003000* + ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] +@@ -5934,7 +5946,7 @@ pci:v00001002d000067B1* + ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] + + pci:v00001002d000067B9* +- ID_MODEL_FROM_DATABASE=Vesuvius ++ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] + + pci:v00001002d000067BE* + ID_MODEL_FROM_DATABASE=Hawaii LE +@@ -5952,7 +5964,7 @@ pci:v00001002d00006800sv00008086sd00002111* + ID_MODEL_FROM_DATABASE=Radeon HD 7970M + + pci:v00001002d00006801* +- ID_MODEL_FROM_DATABASE=Neptune [Radeon HD 8970M] ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] + + pci:v00001002d00006801sv00001002sd00000124* + ID_MODEL_FROM_DATABASE=Radeon HD 8970M +@@ -6017,6 +6029,9 @@ pci:v00001002d00006820* + pci:v00001002d00006820sv0000103Csd00001851* + ID_MODEL_FROM_DATABASE=Radeon HD 7750M + ++pci:v00001002d00006820sv000017AAsd00003801* ++ ID_MODEL_FROM_DATABASE=Radeon R9 M275 ++ + pci:v00001002d00006821* + ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] + +@@ -7817,6 +7832,12 @@ pci:v00001002d000068FAsv000017AFsd00003015* + pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE + ++pci:v00001002d00006900* ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] ++ ++pci:v00001002d00006901* ++ ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] ++ + pci:v00001002d00006920* + ID_MODEL_FROM_DATABASE=Tonga + +@@ -10391,6 +10412,15 @@ pci:v00001014d0000034Asv00001014sd00000499* + pci:v00001014d0000034Asv00001014sd0000049A* + ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) + ++pci:v00001014d0000034Asv00001014sd000004C7* ++ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) ++ ++pci:v00001014d0000034Asv00001014sd000004C8* ++ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) ++ ++pci:v00001014d0000034Asv00001014sd00000C49* ++ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) ++ + pci:v00001014d000004AA* + ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) + +@@ -13793,6 +13823,63 @@ pci:v0000103Cd00003238sv0000103Csd00003211* + pci:v0000103Cd00003238sv0000103Csd00003212* + ID_MODEL_FROM_DATABASE=Smart Array E200 + ++pci:v0000103Cd00003239* ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers ++ ++pci:v0000103Cd00003239sv0000103Csd000021BD* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021BE* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021BF* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C0* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C1* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C2* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C3* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C4* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C5* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C6* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C7* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C8* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C9* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CA* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CB* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CC* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CD* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CE* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ + pci:v0000103Cd0000323A* + ID_MODEL_FROM_DATABASE=Smart Array G6 controllers + +@@ -17954,6 +18041,54 @@ pci:v0000109Ed0000036Esv000018ACsd0000D500* + pci:v0000109Ed0000036Esv0000270Fsd0000FC00* + ID_MODEL_FROM_DATABASE=Digitop DTT-1000 + ++pci:v0000109Ed0000036Esv0000AA00sd00001460* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 ++ ++pci:v0000109Ed0000036Esv0000AA01sd00001461* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 ++ ++pci:v0000109Ed0000036Esv0000AA02sd00001462* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 ++ ++pci:v0000109Ed0000036Esv0000AA03sd00001463* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 ++ ++pci:v0000109Ed0000036Esv0000AA04sd00001464* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 ++ ++pci:v0000109Ed0000036Esv0000AA05sd00001465* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 ++ ++pci:v0000109Ed0000036Esv0000AA06sd00001466* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 ++ ++pci:v0000109Ed0000036Esv0000AA07sd00001467* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 ++ ++pci:v0000109Ed0000036Esv0000AA08sd00001468* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 ++ ++pci:v0000109Ed0000036Esv0000AA09sd00001469* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 ++ ++pci:v0000109Ed0000036Esv0000AA0Asd0000146A* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 ++ ++pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 ++ ++pci:v0000109Ed0000036Esv0000AA0Csd0000146C* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 ++ ++pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 ++ ++pci:v0000109Ed0000036Esv0000AA0Esd0000146E* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 ++ ++pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 ++ + pci:v0000109Ed0000036Esv0000BD11sd00001200* + ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) + +@@ -26009,6 +26144,9 @@ pci:v000010DEd00000E1A* + pci:v000010DEd00000E1B* + ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller + ++pci:v000010DEd00000E1Bsv0000103Csd0000197B* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v000010DEd00000E1Bsv00001043sd00008428* + ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 + +@@ -26165,6 +26303,9 @@ pci:v000010DEd00000FF5* + pci:v000010DEd00000FF6* + ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] + ++pci:v000010DEd00000FF6sv0000103Csd0000197B* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v000010DEd00000FF7* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] + +@@ -26234,6 +26375,12 @@ pci:v000010DEd00001005sv00003842sd00002794* + pci:v000010DEd00001005sv00003842sd00002795* + ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature + ++pci:v000010DEd00001007* ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] ++ ++pci:v000010DEd00001008* ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Ti Rev. 2] ++ + pci:v000010DEd0000100A* + ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] + +@@ -26294,6 +26441,9 @@ pci:v000010DEd0000104Asv000010B0sd0000104A* + pci:v000010DEd0000104B* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] + ++pci:v000010DEd0000104C* ++ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 705] ++ + pci:v000010DEd00001050* + ID_MODEL_FROM_DATABASE=GF119M [GeForce GT 520M] + +@@ -26333,6 +26483,24 @@ pci:v000010DEd00001058sv00001043sd000010BC* + pci:v000010DEd00001058sv00001043sd00001652* + ID_MODEL_FROM_DATABASE=GeForce GT 610M + ++pci:v000010DEd00001058sv000017AAsd0000367A* ++ ID_MODEL_FROM_DATABASE=GeForce 610M ++ ++pci:v000010DEd00001058sv000017AAsd00003682* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd00001058sv000017AAsd00003687* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd00001058sv000017AAsd00003692* ++ ID_MODEL_FROM_DATABASE=GeForce 705A ++ ++pci:v000010DEd00001058sv000017AAsd00003695* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd00001058sv000017AAsd0000A117* ++ ID_MODEL_FROM_DATABASE=GeForce 610M ++ + pci:v000010DEd00001059* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] + +@@ -26351,6 +26519,15 @@ pci:v000010DEd0000105B* + pci:v000010DEd0000105Bsv0000103Csd00002AFB* + ID_MODEL_FROM_DATABASE=GeForce 705A + ++pci:v000010DEd0000105Bsv000017AAsd0000309D* ++ ID_MODEL_FROM_DATABASE=GeForce 705A ++ ++pci:v000010DEd0000105Bsv000017AAsd000030B1* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd0000105Bsv000017AAsd000036A1* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ + pci:v000010DEd0000107C* + ID_MODEL_FROM_DATABASE=GF119 [NVS 315] + +@@ -26675,6 +26852,30 @@ pci:v000010DEd00001140sv00001043sd000014C7* + pci:v000010DEd00001140sv00001043sd00001507* + ID_MODEL_FROM_DATABASE=GeForce GT 620M + ++pci:v000010DEd00001140sv00001043sd000015AD* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd000015ED* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000160D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000163D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000166D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd000016CD* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd000016DD* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000170D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ + pci:v000010DEd00001140sv00001043sd00002132* + ID_MODEL_FROM_DATABASE=GeForce GT 620M + +@@ -26699,6 +26900,12 @@ pci:v000010DEd00001140sv00001043sd0000223A* + pci:v000010DEd00001140sv00001043sd0000224A* + ID_MODEL_FROM_DATABASE=GeForce GT 710M + ++pci:v000010DEd00001140sv00001043sd0000227A* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000228A* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ + pci:v000010DEd00001140sv00001043sd00008595* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + +@@ -26864,9 +27071,48 @@ pci:v000010DEd00001140sv000017AAsd00002213* + pci:v000010DEd00001140sv000017AAsd00002220* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + ++pci:v000010DEd00001140sv000017AAsd0000309C* ++ ID_MODEL_FROM_DATABASE=GeForce GT 720A ++ ++pci:v000010DEd00001140sv000017AAsd000030B4* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ + pci:v000010DEd00001140sv000017AAsd00003656* + ID_MODEL_FROM_DATABASE=GeForce GT 620M + ++pci:v000010DEd00001140sv000017AAsd0000365A* ++ ID_MODEL_FROM_DATABASE=GeForce 705M ++ ++pci:v000010DEd00001140sv000017AAsd0000365E* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd0000366C* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd00003685* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd00003686* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd00003687* ++ ID_MODEL_FROM_DATABASE=GeForce 705A ++ ++pci:v000010DEd00001140sv000017AAsd00003696* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369B* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369C* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369D* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369E* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ + pci:v000010DEd00001140sv000017AAsd00003800* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + +@@ -27044,6 +27290,9 @@ pci:v000010DEd0000118F* + pci:v000010DEd00001193* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] + ++pci:v000010DEd00001195* ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 Rev. 2] ++ + pci:v000010DEd00001198* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] + +@@ -27173,6 +27422,9 @@ pci:v000010DEd000011E2* + pci:v000010DEd000011E3* + ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] + ++pci:v000010DEd000011E3sv000017AAsd00003683* ++ ID_MODEL_FROM_DATABASE=GeForce GTX 760A ++ + pci:v000010DEd000011FA* + ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] + +@@ -27323,6 +27575,9 @@ pci:v000010DEd00001282* + pci:v000010DEd00001284* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 630 Rev. 2] + ++pci:v000010DEd00001286* ++ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] ++ + pci:v000010DEd00001290* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] + +@@ -27380,6 +27635,15 @@ pci:v000010DEd00001340* + pci:v000010DEd00001341* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] + ++pci:v000010DEd00001341sv000017AAsd00003697* ++ ID_MODEL_FROM_DATABASE=GeForce 840A ++ ++pci:v000010DEd00001341sv000017AAsd00003699* ++ ID_MODEL_FROM_DATABASE=GeForce 840A ++ ++pci:v000010DEd00001341sv000017AAsd0000369C* ++ ID_MODEL_FROM_DATABASE=GeForce 840A ++ + pci:v000010DEd00001380* + ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] + +@@ -27395,6 +27659,12 @@ pci:v000010DEd00001390* + pci:v000010DEd00001391* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] + ++pci:v000010DEd00001391sv000017AAsd00003697* ++ ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ ++pci:v000010DEd00001391sv000017AAsd0000A125* ++ ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ + pci:v000010DEd00001392* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] + +@@ -27839,6 +28109,9 @@ pci:v000010ECd00005227* + pci:v000010ECd00005227sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + ++pci:v000010ECd00005227sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v000010ECd00005229* + ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader + +@@ -27848,6 +28121,12 @@ pci:v000010ECd00005229sv00001025sd00000813* + pci:v000010ECd00005229sv0000103Csd0000194E* + ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook + ++pci:v000010ECd00005249* ++ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader ++ ++pci:v000010ECd00005249sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v000010ECd00005288* + ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader + +@@ -30561,7 +30840,7 @@ pci:v0000110Ad00004021* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) + + pci:v0000110Ad00004029* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 + + pci:v0000110Ad00004029sv0000110Asd00004029* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 +@@ -30581,6 +30860,9 @@ pci:v0000110Ad00004038* + pci:v0000110Ad00004069* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 + ++pci:v0000110Ad00004069sv0000110Asd00004069* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 ++ + pci:v0000110Ad00004069sv0000110Asd0000C069* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 + +@@ -31541,6 +31823,9 @@ pci:v00001131d00007133sv0000153Bsd00001160* + pci:v00001131d00007133sv0000153Bsd00001162* + ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile + ++pci:v00001131d00007133sv000017DEsd00007256* ++ ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card ++ + pci:v00001131d00007133sv000017DEsd00007350* + ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner + +@@ -33651,7 +33936,7 @@ pci:v00001180d00000476sv000014EFsd00000220* + ID_MODEL_FROM_DATABASE=PCD-RP-220S + + pci:v00001180d00000476sv000017AAsd0000201C* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00001180d00000476sv000017AAsd000020C4* + ID_MODEL_FROM_DATABASE=ThinkPad T61 +@@ -33711,7 +33996,7 @@ pci:v00001180d00000552sv0000144Dsd0000C00C* + ID_MODEL_FROM_DATABASE=P30/P35 notebook + + pci:v00001180d00000552sv000017AAsd0000201E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00001180d00000554* + ID_MODEL_FROM_DATABASE=R5C554 +@@ -33813,7 +34098,7 @@ pci:v00001180d00000822sv0000144Dsd0000C018* + ID_MODEL_FROM_DATABASE=X20 IV + + pci:v00001180d00000822sv000017AAsd0000201D* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00001180d00000822sv000017AAsd000020C7* + ID_MODEL_FROM_DATABASE=ThinkPad T61 +@@ -33833,6 +34118,9 @@ pci:v00001180d00000832sv00001028sd000001D7* + pci:v00001180d00000832sv00001028sd000001F3* + ID_MODEL_FROM_DATABASE=Inspiron 1420 + ++pci:v00001180d00000832sv00001028sd0000024D* ++ ID_MODEL_FROM_DATABASE=Latitude E4300 ++ + pci:v00001180d00000832sv0000103Csd000030B5* + ID_MODEL_FROM_DATABASE=Presario V3242AU + +@@ -49442,6 +49730,18 @@ pci:v00001797d00006812* + pci:v00001797d00006813* + ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller + ++pci:v00001797d00006814* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ ++pci:v00001797d00006815* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ ++pci:v00001797d00006816* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ ++pci:v00001797d00006817* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ + pci:v00001799* + ID_VENDOR_FROM_DATABASE=Belkin + +@@ -50978,12 +51278,33 @@ pci:v00001924d00000813sv00001924sd00007904* + pci:v00001924d00000903* + ID_MODEL_FROM_DATABASE=SFC9120 + ++pci:v00001924d00000903sv00001014sd000004CC* ++ ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra ++ + pci:v00001924d00000903sv00001924sd00008002* + ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter + ++pci:v00001924d00000903sv00001924sd00008003* ++ ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ + pci:v00001924d00000903sv00001924sd00008006* + ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter + ++pci:v00001924d00000903sv00001924sd00008007* ++ ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter ++ ++pci:v00001924d00000903sv00001924sd00008009* ++ ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter ++ ++pci:v00001924d00000903sv00001924sd0000800A* ++ ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter ++ ++pci:v00001924d00000923* ++ ID_MODEL_FROM_DATABASE=SFC9140 ++ ++pci:v00001924d00000923sv00001924sd0000800B* ++ ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ + pci:v00001924d00001803* + ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] + +@@ -51227,6 +51548,9 @@ pci:v00001957d00000083* + pci:v00001957d00000084* + ID_MODEL_FROM_DATABASE=MPC8347E PBGA + ++pci:v00001957d00000084sv0000110Asd00004074* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 ++ + pci:v00001957d00000085* + ID_MODEL_FROM_DATABASE=MPC8347 PBGA + +@@ -51456,7 +51780,7 @@ pci:v00001969d00002062* + ID_MODEL_FROM_DATABASE=AR8152 v2.0 Fast Ethernet + + pci:v00001969d0000E091* +- ID_MODEL_FROM_DATABASE=Killer E2200 Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=Killer E220x Gigabit Ethernet Controller + + pci:v0000196A* + ID_VENDOR_FROM_DATABASE=Sensory Networks Inc. +@@ -52214,8 +52538,14 @@ pci:v00001AF4d00001005* + pci:v00001AF4d00001009* + ID_MODEL_FROM_DATABASE=Virtio filesystem + ++pci:v00001AF4d00001010* ++ ID_MODEL_FROM_DATABASE=Virtio GPU ++ ++pci:v00001AF4d00001012* ++ ID_MODEL_FROM_DATABASE=Virtio input device ++ + pci:v00001AF4d00001110* +- ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory ++ ID_MODEL_FROM_DATABASE=Inter-VM shared memory + + pci:v00001AF4d00001110sv00001AF4sd00001100* + ID_MODEL_FROM_DATABASE=QEMU Virtual Machine +@@ -52397,6 +52727,9 @@ pci:v00001B4Bd000091A4* + pci:v00001B4Bd00009230* + ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller + ++pci:v00001B4Bd00009445* ++ ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller ++ + pci:v00001B4Bd00009480* + ID_MODEL_FROM_DATABASE=88SE9480 SAS/SATA 6Gb/s RAID controller + +@@ -55550,15 +55883,24 @@ pci:v00008086d00000964* + pci:v00008086d00000A04* + ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller + ++pci:v00008086d00000A04sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00000A06* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + + pci:v00008086d00000A0C* + ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller + ++pci:v00008086d00000A0Csv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00000A16* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + ++pci:v00008086d00000A16sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00000A22* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + +@@ -55655,6 +55997,9 @@ pci:v00008086d00000C01* + pci:v00008086d00000C04* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller + ++pci:v00008086d00000C04sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00000C04sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -57360,7 +57705,7 @@ pci:v00008086d0000109Asv000017AAsd00002001* + ID_MODEL_FROM_DATABASE=ThinkPad T60 + + pci:v00008086d0000109Asv000017AAsd0000207E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00008086d0000109Asv00008086sd0000109A* + ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection +@@ -58847,6 +59192,9 @@ pci:v00008086d00001539* + pci:v00008086d0000153A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM + ++pci:v00008086d0000153Asv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d0000153Asv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -58901,6 +59249,9 @@ pci:v00008086d00001559* + pci:v00008086d0000155A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM + ++pci:v00008086d0000155Asv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d0000155C* + ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter + +@@ -63816,7 +64167,7 @@ pci:v00008086d000027A0sv000017AAsd00002015* + ID_MODEL_FROM_DATABASE=ThinkPad T60 + + pci:v00008086d000027A0sv000017AAsd00002017* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027A1* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port +@@ -63834,7 +64185,7 @@ pci:v00008086d000027A2sv0000103Csd000030A1* + ID_MODEL_FROM_DATABASE=NC2400 + + pci:v00008086d000027A2sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027A2sv00009902sd00001584* + ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F +@@ -63849,7 +64200,7 @@ pci:v00008086d000027A6sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) + + pci:v00008086d000027A6sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027AC* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub +@@ -63915,7 +64266,7 @@ pci:v00008086d000027B9sv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop + + pci:v00008086d000027B9sv000017AAsd00002009* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027BC* + ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller +@@ -64035,7 +64386,7 @@ pci:v00008086d000027C5sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=Compaq nw8440 + + pci:v00008086d000027C5sv000017AAsd0000200D* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027C6* + ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] +@@ -64095,7 +64446,7 @@ pci:v00008086d000027C8sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027C8sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027C8sv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64161,7 +64512,7 @@ pci:v00008086d000027C9sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027C9sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027C9sv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64227,7 +64578,7 @@ pci:v00008086d000027CAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027CAsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027CAsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64287,7 +64638,7 @@ pci:v00008086d000027CBsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027CBsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027CBsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64347,7 +64698,7 @@ pci:v00008086d000027CCsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027CCsv000017AAsd0000200B* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027CCsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64509,7 +64860,7 @@ pci:v00008086d000027D8sv00001734sd000010AD* + ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP + + pci:v00008086d000027D8sv000017AAsd00002010* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027D8sv000017AAsd00003802* + ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] +@@ -64569,7 +64920,7 @@ pci:v00008086d000027DAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027DAsv000017AAsd0000200F* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027DAsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64647,7 +64998,7 @@ pci:v00008086d000027DFsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027DFsv000017AAsd0000200C* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027DFsv00008086sd0000544E* + ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP +@@ -70358,6 +70709,9 @@ pci:v00008086d00008C02* + pci:v00008086d00008C03* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] + ++pci:v00008086d00008C03sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C03sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70442,6 +70796,9 @@ pci:v00008086d00008C1F* + pci:v00008086d00008C20* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller + ++pci:v00008086d00008C20sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C20sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70451,6 +70808,9 @@ pci:v00008086d00008C21* + pci:v00008086d00008C22* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller + ++pci:v00008086d00008C22sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C22sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70463,18 +70823,27 @@ pci:v00008086d00008C24* + pci:v00008086d00008C26* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 + ++pci:v00008086d00008C26sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C26sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + + pci:v00008086d00008C2D* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 + ++pci:v00008086d00008C2Dsv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C2Dsv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + + pci:v00008086d00008C31* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI + ++pci:v00008086d00008C31sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C31sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70487,6 +70856,9 @@ pci:v00008086d00008C34* + pci:v00008086d00008C3A* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 + ++pci:v00008086d00008C3Asv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C3Asv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70547,6 +70919,9 @@ pci:v00008086d00008C4E* + pci:v00008086d00008C4F* + ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller + ++pci:v00008086d00008C4Fsv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C4Fsv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70820,6 +71195,9 @@ pci:v00008086d00009C02* + pci:v00008086d00009C03* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] + ++pci:v00008086d00009C03sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C04* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] + +@@ -70907,12 +71285,18 @@ pci:v00008086d00009C1F* + pci:v00008086d00009C20* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller + ++pci:v00008086d00009C20sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C21* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller + + pci:v00008086d00009C22* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller + ++pci:v00008086d00009C22sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C23* + ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters + +@@ -70922,12 +71306,18 @@ pci:v00008086d00009C24* + pci:v00008086d00009C26* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 + ++pci:v00008086d00009C26sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C2D* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 + + pci:v00008086d00009C31* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC + ++pci:v00008086d00009C31sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C35* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller + +@@ -70937,6 +71327,9 @@ pci:v00008086d00009C36* + pci:v00008086d00009C3A* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 + ++pci:v00008086d00009C3Asv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C3B* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 + +@@ -70958,6 +71351,9 @@ pci:v00008086d00009C42* + pci:v00008086d00009C43* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller + ++pci:v00008086d00009C43sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C44* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller + +@@ -72557,6 +72953,54 @@ pci:v0000A727d00000013* + pci:v0000A727d00006803* + ID_MODEL_FROM_DATABASE=3CRDAG675B Wireless 11a/b/g Adapter + ++pci:v0000AA00* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA01* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA02* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA03* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA04* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA05* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA06* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA07* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA08* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA09* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0A* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0B* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0C* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0D* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0E* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0F* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ + pci:v0000AA42* + ID_VENDOR_FROM_DATABASE=Scitex Digital Video + +-- +1.7.9.2 + diff --git a/0002-journal-properly-detect-language-specified-in-line.patch b/0002-journal-properly-detect-language-specified-in-line.patch new file mode 100644 index 00000000..361518a2 --- /dev/null +++ b/0002-journal-properly-detect-language-specified-in-line.patch @@ -0,0 +1,99 @@ +From baf167ee0a2953f98e4e7d4c35752ef737832674 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Apr 2014 20:57:27 -0400 +Subject: [PATCH] journal: properly detect language specified in line + +... it turns out that the duplicates in our own catalog were not real +duplicates, but translations. +--- + TODO | 2 ++ + src/journal/catalog.c | 53 +++++++++++++++++++++++++++++++------------------ + 2 files changed, 36 insertions(+), 19 deletions(-) + +diff --git TODO TODO +index 0343b94..a7307f7 100644 +--- TODO ++++ TODO +@@ -709,6 +709,8 @@ External: + + * fedora: update policy to declare access mode and ownership of unit files to root:root 0644, and add an rpmlint check for it + ++* register catalog database signature as file magic ++ + Regularly: + + * look for close() vs. close_nointr() vs. close_nointr_nofail() +diff --git src/journal/catalog.c src/journal/catalog.c +index 02dedc4..f03357d 100644 +--- src/journal/catalog.c ++++ src/journal/catalog.c +@@ -159,6 +159,37 @@ int catalog_file_lang(const char* filename, char **lang) { + return 1; + } + ++static int catalog_entry_lang(const char* filename, int line, ++ const char* t, const char* deflang, char **lang) { ++ size_t c; ++ ++ c = strlen(t); ++ if (c == 0) { ++ log_error("[%s:%u] Language too short.", filename, line); ++ return -EINVAL; ++ } ++ if (c > 31) { ++ log_error("[%s:%u] language too long.", filename, line); ++ return -EINVAL; ++ } ++ ++ if (deflang) { ++ if (streq(t, deflang)) { ++ log_warning("[%s:%u] language specified unnecessarily", ++ filename, line); ++ return 0; ++ } else ++ log_warning("[%s:%u] language differs from default for file", ++ filename, line); ++ } ++ ++ *lang = strdup(t); ++ if (!*lang) ++ return -ENOMEM; ++ ++ return 0; ++} ++ + int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { + _cleanup_fclose_ FILE *f = NULL; + _cleanup_free_ char *payload = NULL; +@@ -238,25 +269,9 @@ int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { + if (with_language) { + t = strstrip(line + 2 + 1 + 32 + 1); + +- c = strlen(t); +- if (c <= 0) { +- log_error("[%s:%u] Language too short.", path, n); +- return -EINVAL; +- } +- if (c > 31) { +- log_error("[%s:%u] language too long.", path, n); +- return -EINVAL; +- } +- +- if (deflang) { +- log_warning("[%s:%u] language %s", path, n, +- streq(t, deflang) ? +- "specified unnecessarily" : +- "differs from default for file"); +- lang = strdup(t); +- if (!lang) +- return -ENOMEM; +- } ++ r = catalog_entry_lang(path, n, t, deflang, &lang); ++ if (r < 0) ++ return r; + } + + got_id = true; +-- +1.7.9.2 + diff --git a/0002-logind-fix-printf-format.patch b/0002-logind-fix-printf-format.patch new file mode 100644 index 00000000..61bbc9aa --- /dev/null +++ b/0002-logind-fix-printf-format.patch @@ -0,0 +1,25 @@ +From 7e9110a29d90041b0364cb93a84aec9dd72363b6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 19:39:51 +0100 +Subject: [PATCH] logind: fix printf format + +--- + src/login/logind-action.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index da5a830..c9d8bc5 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -81,7 +81,7 @@ int manager_handle_action( + + n = manager_count_displays(m); + if (n != 1) { +- log_debug("Ignoring lid switch request, %s displays connected."); ++ log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } + } +-- +1.7.9.2 + diff --git a/0002-man-note-that-entire-sections-can-now-be-ignored.patch b/0002-man-note-that-entire-sections-can-now-be-ignored.patch new file mode 100644 index 00000000..2db35728 --- /dev/null +++ b/0002-man-note-that-entire-sections-can-now-be-ignored.patch @@ -0,0 +1,35 @@ +From 2bcc2523711e69e6daa744641e56ed8b78646676 Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Sat, 17 May 2014 16:09:08 -0700 +Subject: [PATCH] man: note that entire sections can now be ignored + +Prefixing a section name with "X-" will cause it and all of its contents +to be silently ignored as of commit 342aea19. +--- + man/systemd.unit.xml | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 157530b..e903156 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -139,10 +139,12 @@ + Unit files may contain additional options on top + of those listed here. If systemd encounters an unknown + option, it will write a warning log message but +- continue loading the unit. If an option is prefixed +- with , it is ignored completely by +- systemd. Applications may use this to include +- additional information in the unit files. ++ continue loading the unit. If an option or section name ++ is prefixed with , it is ignored ++ completely by systemd. Options within an ignored ++ section do not need the prefix. Applications may use ++ this to include additional information in the unit ++ files. + + Boolean arguments used in unit files can be + written in various formats. For positive settings the +-- +1.7.9.2 + diff --git a/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch b/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch new file mode 100644 index 00000000..6515929b --- /dev/null +++ b/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch @@ -0,0 +1,51583 @@ +Based on d060b62fcb4746d3758c567e9379c6728a035b66 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 14 Apr 2014 07:54:35 -0700 +Subject: [PATCH] hwdb: PCI - include "primary" model string in subsystem + model string + +The data in the PCI ids file is randomly inconsistent. Many +subvendor model strings just describe the "product" where the +hardware is built into, not the hardware itself. This causes +some "Network Card Model Foo" to show up as "Laptop Model Bar". + +Try to make the best out of this mess and concatenate both +strings to describe the hardware. +--- + hwdb/20-pci-vendor-model.hwdb |21356 +++++++++++++++++++++--------------------- + 1 file changed, 10678 insertions(+), 10678 deletions(-) + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index d54cb2a..14637d3 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -15,10 +15,10 @@ pci:v0000001Cd00000001* + ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller + + pci:v0000001Cd00000001sv0000001Csd00000004* +- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 ++ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000) + + pci:v0000001Cd00000001sv0000001Csd00000005* +- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 (Optically Isolated) ++ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000 (Optically Isolated)) + + pci:v0000003D* + ID_VENDOR_FROM_DATABASE=Lockheed Martin-Marietta Corp +@@ -189,19 +189,19 @@ pci:v00000E11d00000046* + ID_MODEL_FROM_DATABASE=Smart Array 64xx + + pci:v00000E11d00000046sv00000E11sd00004091* +- ID_MODEL_FROM_DATABASE=Smart Array 6i ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6i) + + pci:v00000E11d00000046sv00000E11sd0000409A* +- ID_MODEL_FROM_DATABASE=Smart Array 641 ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 641) + + pci:v00000E11d00000046sv00000E11sd0000409B* +- ID_MODEL_FROM_DATABASE=Smart Array 642 ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 642) + + pci:v00000E11d00000046sv00000E11sd0000409C* +- ID_MODEL_FROM_DATABASE=Smart Array 6400 ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400) + + pci:v00000E11d00000046sv00000E11sd0000409D* +- ID_MODEL_FROM_DATABASE=Smart Array 6400 EM ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400 EM) + + pci:v00000E11d00000049* + ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module +@@ -321,7 +321,7 @@ pci:v00000E11d0000A0F0* + ID_MODEL_FROM_DATABASE=Advanced System Management Controller + + pci:v00000E11d0000A0F0sv00000E11sd0000B0F3* +- ID_MODEL_FROM_DATABASE=ProLiant DL360 ++ ID_MODEL_FROM_DATABASE=Advanced System Management Controller (ProLiant DL360) + + pci:v00000E11d0000A0F3* + ID_MODEL_FROM_DATABASE=Triflex PCI to ISA Bridge +@@ -330,10 +330,10 @@ pci:v00000E11d0000A0F7* + ID_MODEL_FROM_DATABASE=PCI Hotplug Controller + + pci:v00000E11d0000A0F7sv00008086sd0000002A* +- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller A ++ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (A) + + pci:v00000E11d0000A0F7sv00008086sd0000002B* +- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller B ++ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (B) + + pci:v00000E11d0000A0F8* + ID_MODEL_FROM_DATABASE=ZFMicro Chipset USB +@@ -345,19 +345,19 @@ pci:v00000E11d0000AE10* + ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller + + pci:v00000E11d0000AE10sv00000E11sd00004030* +- ID_MODEL_FROM_DATABASE=Smart-2/P Array Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2/P Array Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004031* +- ID_MODEL_FROM_DATABASE=Smart-2SL Array Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2SL Array Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004032* +- ID_MODEL_FROM_DATABASE=Smart Array 3200 Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3200 Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004033* +- ID_MODEL_FROM_DATABASE=Smart Array 3100ES Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3100ES Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004034* +- ID_MODEL_FROM_DATABASE=Smart Array 221 Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 221 Controller) + + pci:v00000E11d0000AE29* + ID_MODEL_FROM_DATABASE=MIS-L +@@ -468,13 +468,13 @@ pci:v00000E11d0000B178* + ID_MODEL_FROM_DATABASE=Smart Array 5i/532 + + pci:v00000E11d0000B178sv00000E11sd00004080* +- ID_MODEL_FROM_DATABASE=Smart Array 5i ++ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5i) + + pci:v00000E11d0000B178sv00000E11sd00004082* +- ID_MODEL_FROM_DATABASE=Smart Array 532 ++ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 532) + + pci:v00000E11d0000B178sv00000E11sd00004083* +- ID_MODEL_FROM_DATABASE=Smart Array 5312 ++ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5312) + + pci:v00000E11d0000B1A4* + ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter +@@ -516,7 +516,7 @@ pci:v00001000d00000001* + ID_MODEL_FROM_DATABASE=53c810 + + pci:v00001000d00000001sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C810AE PCI to SCSI I/O Processor ++ ID_MODEL_FROM_DATABASE=53c810 (LSI53C810AE PCI to SCSI I/O Processor) + + pci:v00001000d00000002* + ID_MODEL_FROM_DATABASE=53c820 +@@ -525,7 +525,7 @@ pci:v00001000d00000003* + ID_MODEL_FROM_DATABASE=53c825 + + pci:v00001000d00000003sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide) ++ ID_MODEL_FROM_DATABASE=53c825 (LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide)) + + pci:v00001000d00000004* + ID_MODEL_FROM_DATABASE=53c815 +@@ -537,49 +537,49 @@ pci:v00001000d00000006* + ID_MODEL_FROM_DATABASE=53c860 + + pci:v00001000d00000006sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C860E PCI to Ultra SCSI I/O Processor ++ ID_MODEL_FROM_DATABASE=53c860 (LSI53C860E PCI to Ultra SCSI I/O Processor) + + pci:v00001000d0000000A* + ID_MODEL_FROM_DATABASE=53c1510 + + pci:v00001000d0000000Asv00000E11sd0000B143* +- ID_MODEL_FROM_DATABASE=Integrated Dual Channel Wide Ultra2 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1510 (Integrated Dual Channel Wide Ultra2 SCSI Controller) + + pci:v00001000d0000000Asv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode) ++ ID_MODEL_FROM_DATABASE=53c1510 (LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode)) + + pci:v00001000d0000000B* + ID_MODEL_FROM_DATABASE=53C896/897 + + pci:v00001000d0000000Bsv00000E11sd00006004* +- ID_MODEL_FROM_DATABASE=EOB003 Series SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53C896/897 (EOB003 Series SCSI host adapter) + + pci:v00001000d0000000Bsv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller ++ ID_MODEL_FROM_DATABASE=53C896/897 (LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller) + + pci:v00001000d0000000Bsv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53C896/897 (LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter) + + pci:v00001000d0000000Bsv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53C896/897 (LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter) + + pci:v00001000d0000000Bsv000013E9sd00001000* +- ID_MODEL_FROM_DATABASE=6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics) ++ ID_MODEL_FROM_DATABASE=53C896/897 (6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics)) + + pci:v00001000d0000000C* + ID_MODEL_FROM_DATABASE=53c895 + + pci:v00001000d0000000Csv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=LSI8951U PCI to Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c895 (LSI8951U PCI to Ultra2 SCSI host adapter) + + pci:v00001000d0000000Csv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=LSI8952U PCI to Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c895 (LSI8952U PCI to Ultra2 SCSI host adapter) + + pci:v00001000d0000000Csv00001DE1sd00003906* +- ID_MODEL_FROM_DATABASE=DC-390U2B SCSI adapter ++ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2B SCSI adapter) + + pci:v00001000d0000000Csv00001DE1sd00003907* +- ID_MODEL_FROM_DATABASE=DC-390U2W ++ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2W) + + pci:v00001000d0000000D* + ID_MODEL_FROM_DATABASE=53c885 +@@ -588,151 +588,151 @@ pci:v00001000d0000000F* + ID_MODEL_FROM_DATABASE=53c875 + + pci:v00001000d0000000Fsv00000E11sd00007004* +- ID_MODEL_FROM_DATABASE=Embedded Ultra Wide SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875 (Embedded Ultra Wide SCSI Controller) + + pci:v00001000d0000000Fsv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C876/E PCI to Dual Channel SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875 (LSI53C876/E PCI to Dual Channel SCSI Controller) + + pci:v00001000d0000000Fsv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=LSI22801 PCI to Dual Channel Ultra SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c875 (LSI22801 PCI to Dual Channel Ultra SCSI host adapter) + + pci:v00001000d0000000Fsv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=LSI22802 PCI to Dual Channel Ultra SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c875 (LSI22802 PCI to Dual Channel Ultra SCSI host adapter) + + pci:v00001000d0000000Fsv00001092sd00008760* +- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875 (FirePort 40 Dual SCSI Controller) + + pci:v00001000d0000000Fsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Wide Ultra SCSI ++ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Wide Ultra SCSI) + + pci:v00001000d0000000Fsv00001775sd000010D1* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Ultra SCSI ++ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Ultra SCSI) + + pci:v00001000d0000000Fsv00001DE1sd00003904* +- ID_MODEL_FROM_DATABASE=DC390F/U Ultra Wide SCSI Adapter ++ ID_MODEL_FROM_DATABASE=53c875 (DC390F/U Ultra Wide SCSI Adapter) + + pci:v00001000d0000000Fsv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=53c875 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00001000d0000000Fsv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=53c875 (CT7 mainboard) + + pci:v00001000d00000010* + ID_MODEL_FROM_DATABASE=53C1510 + + pci:v00001000d00000010sv00000E11sd00004040* +- ID_MODEL_FROM_DATABASE=Integrated Smart Array Controller ++ ID_MODEL_FROM_DATABASE=53C1510 (Integrated Smart Array Controller) + + pci:v00001000d00000010sv00000E11sd00004048* +- ID_MODEL_FROM_DATABASE=RAID LC2 Controller ++ ID_MODEL_FROM_DATABASE=53C1510 (RAID LC2 Controller) + + pci:v00001000d00000010sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode) ++ ID_MODEL_FROM_DATABASE=53C1510 (PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)) + + pci:v00001000d00000012* + ID_MODEL_FROM_DATABASE=53c895a + + pci:v00001000d00000012sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C895A PCI to Ultra2 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c895a (LSI53C895A PCI to Ultra2 SCSI Controller) + + pci:v00001000d00000013* + ID_MODEL_FROM_DATABASE=53c875a + + pci:v00001000d00000013sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C875A PCI to Ultra SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875a (LSI53C875A PCI to Ultra SCSI Controller) + + pci:v00001000d00000020* + ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter + + pci:v00001000d00000020sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller) + + pci:v00001000d00000020sv0000107Bsd00001040* +- ID_MODEL_FROM_DATABASE=Server Onboard 53C1010-33 ++ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (Server Onboard 53C1010-33) + + pci:v00001000d00000020sv00001DE1sd00001020* +- ID_MODEL_FROM_DATABASE=DC-390U3W ++ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (DC-390U3W) + + pci:v00001000d00000021* + ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter + + pci:v00001000d00000021sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller) + + pci:v00001000d00000021sv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=Asus TR-DLS onboard 53C1010-66 ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Asus TR-DLS onboard 53C1010-66) + + pci:v00001000d00000021sv0000103Csd00001300* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [AB306A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [AB306A]) + + pci:v00001000d00000021sv0000103Csd00001310* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A9918A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A9918A]) + + pci:v00001000d00000021sv0000103Csd00001330* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7059A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7059A]) + + pci:v00001000d00000021sv0000103Csd00001340* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7060A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7060A]) + + pci:v00001000d00000021sv0000124Bsd00001070* +- ID_MODEL_FROM_DATABASE=PMC-USCSI3 ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (PMC-USCSI3) + + pci:v00001000d00000021sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (CT8 mainboard) + + pci:v00001000d00000021sv00004C53sd00001300* +- ID_MODEL_FROM_DATABASE=P017 mezzanine (32-bit PMC) ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (32-bit PMC)) + + pci:v00001000d00000021sv00004C53sd00001310* +- ID_MODEL_FROM_DATABASE=P017 mezzanine (64-bit PMC) ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (64-bit PMC)) + + pci:v00001000d0000002F* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] + + pci:v00001000d0000002Fsv00001028sd00001F3E* +- ID_MODEL_FROM_DATABASE=SPERC 8 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] (SPERC 8) + + pci:v00001000d00000030* + ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI + + pci:v00001000d00000030sv00000E11sd000000DA* +- ID_MODEL_FROM_DATABASE=ProLiant ML 350 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (ProLiant ML 350) + + pci:v00001000d00000030sv00001028sd00000123* +- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) + + pci:v00001000d00000030sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) + + pci:v00001000d00000030sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4) ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4)) + + pci:v00001000d00000030sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) + + pci:v00001000d00000030sv00001028sd0000018A* +- ID_MODEL_FROM_DATABASE=PERC 4/IM ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PERC 4/IM) + + pci:v00001000d00000030sv00001028sd00001010* +- ID_MODEL_FROM_DATABASE=LSI U320 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI U320 SCSI Controller) + + pci:v00001000d00000030sv0000103Csd000012C5* +- ID_MODEL_FROM_DATABASE=Ultra320 SCSI [A7173A] ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Ultra320 SCSI [A7173A]) + + pci:v00001000d00000030sv0000103Csd00001323* +- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Core I/O LAN/SCSI Combo [AB314A]) + + pci:v00001000d00000030sv0000103Csd00003108* +- ID_MODEL_FROM_DATABASE=Single Channel Ultra320 SCSI HBA G2 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Single Channel Ultra320 SCSI HBA G2) + + pci:v00001000d00000030sv0000124Bsd00001170* +- ID_MODEL_FROM_DATABASE=PMC-USCSI320 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PMC-USCSI320) + + pci:v00001000d00000030sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=LSI Logic Parallel SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic Parallel SCSI Controller) + + pci:v00001000d00000030sv00001734sd00001052* +- ID_MODEL_FROM_DATABASE=PRIMERGY BX/RX/TX S2 series onboard SCSI(IME) ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PRIMERGY BX/RX/TX S2 series onboard SCSI(IME)) + + pci:v00001000d00000031* + ID_MODEL_FROM_DATABASE=53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI +@@ -741,7 +741,7 @@ pci:v00001000d00000032* + ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI + + pci:v00001000d00000032sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller) + + pci:v00001000d00000033* + ID_MODEL_FROM_DATABASE=1030ZC_53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI +@@ -750,10 +750,10 @@ pci:v00001000d00000040* + ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI + + pci:v00001000d00000040sv00001000sd00000033* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XR ++ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XR) + + pci:v00001000d00000040sv00001000sd00000066* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XRWS ++ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XRWS) + + pci:v00001000d00000041* + ID_MODEL_FROM_DATABASE=53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI +@@ -762,73 +762,73 @@ pci:v00001000d00000050* + ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS + + pci:v00001000d00000050sv00001028sd00001F04* +- ID_MODEL_FROM_DATABASE=SAS 5/E ++ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5/E) + + pci:v00001000d00000050sv00001028sd00001F09* +- ID_MODEL_FROM_DATABASE=SAS 5i/R ++ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5i/R) + + pci:v00001000d00000054* + ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS + + pci:v00001000d00000054sv00001028sd00001F04* +- ID_MODEL_FROM_DATABASE=SAS 5/E Adapter Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/E Adapter Controller) + + pci:v00001000d00000054sv00001028sd00001F05* +- ID_MODEL_FROM_DATABASE=SAS 5/i Adapter Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Adapter Controller) + + pci:v00001000d00000054sv00001028sd00001F06* +- ID_MODEL_FROM_DATABASE=SAS 5/i Integrated Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Integrated Controller) + + pci:v00001000d00000054sv00001028sd00001F07* +- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) + + pci:v00001000d00000054sv00001028sd00001F08* +- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) + + pci:v00001000d00000054sv00001028sd00001F09* +- ID_MODEL_FROM_DATABASE=SAS 5/iR Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Adapter RAID Controller) + + pci:v00001000d00000054sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=SAS Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS Controller) + + pci:v00001000d00000055* + ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS + + pci:v00001000d00000055sv00001033sd00008336* +- ID_MODEL_FROM_DATABASE=SAS1068 ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS1068) + + pci:v00001000d00000056* + ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS + + pci:v00001000d00000056sv00001014sd000003BB* +- ID_MODEL_FROM_DATABASE=ServeRAID BR10il SAS/SATA Controller v2 ++ ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS (ServeRAID BR10il SAS/SATA Controller v2) + + pci:v00001000d00000057* + ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS + + pci:v00001000d00000057sv00008086sd0000346C* +- ID_MODEL_FROM_DATABASE=Embedded Software RAID Technology II (ESTRII) ++ ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS (Embedded Software RAID Technology II (ESTRII)) + + pci:v00001000d00000058* + ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS + + pci:v00001000d00000058sv00001000sd00003140* +- ID_MODEL_FROM_DATABASE=SAS3081E-R 8-Port SAS/SATA Host Bus Adapter ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS3081E-R 8-Port SAS/SATA Host Bus Adapter) + + pci:v00001000d00000058sv00001028sd0000021D* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Workstations RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Workstations RAID Controller) + + pci:v00001000d00000058sv00001028sd00001F0E* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Adapter RAID Controller) + + pci:v00001000d00000058sv00001028sd00001F0F* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Blades RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Blades RAID Controller) + + pci:v00001000d00000058sv00001028sd00001F10* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated RAID Controller) + + pci:v00001000d00000058sv0000103Csd00003229* +- ID_MODEL_FROM_DATABASE=SC44Ge Host Bus Adapter ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SC44Ge Host Bus Adapter) + + pci:v00001000d00000059* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 8208ELP/8208ELP +@@ -840,97 +840,97 @@ pci:v00001000d0000005B* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] + + pci:v00001000d0000005Bsv00001000sd00009265* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265-8i) + + pci:v00001000d0000005Bsv00001000sd00009266* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-8i) + + pci:v00001000d0000005Bsv00001000sd00009267* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9267-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9267-8i) + + pci:v00001000d0000005Bsv00001000sd00009268* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265CV-8i / 9270CV-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265CV-8i / 9270CV-8i) + + pci:v00001000d0000005Bsv00001000sd00009269* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-4i) + + pci:v00001000d0000005Bsv00001000sd00009270* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-8i) + + pci:v00001000d0000005Bsv00001000sd00009271* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8i) + + pci:v00001000d0000005Bsv00001000sd00009272* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9272-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9272-8i) + + pci:v00001000d0000005Bsv00001000sd00009273* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270CV-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270CV-8i) + + pci:v00001000d0000005Bsv00001000sd00009274* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-4i) + + pci:v00001000d0000005Bsv00001000sd00009275* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8iCC ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8iCC) + + pci:v00001000d0000005Bsv00001000sd00009276* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-4i) + + pci:v00001000d0000005Bsv00001000sd00009285* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285-8e) + + pci:v00001000d0000005Bsv00001000sd00009288* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285CV-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285CV-8e) + + pci:v00001000d0000005Bsv00001000sd00009290* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286-8e) + + pci:v00001000d0000005Bsv00001000sd00009291* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8e) + + pci:v00001000d0000005Bsv00001000sd00009295* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8eCC ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8eCC) + + pci:v00001000d0000005Bsv00001014sd0000040B* +- ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110 SAS/SATA Controller) + + pci:v00001000d0000005Bsv00001014sd0000040C* +- ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5120 SAS/SATA Controller) + + pci:v00001000d0000005Bsv00001014sd00000412* +- ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110e SAS/SATA Controller) + + pci:v00001000d0000005Bsv00001028sd00001F2D* +- ID_MODEL_FROM_DATABASE=PERC H810 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H810 Adapter) + + pci:v00001000d0000005Bsv00001028sd00001F30* +- ID_MODEL_FROM_DATABASE=PERC H710 Embedded ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Embedded) + + pci:v00001000d0000005Bsv00001028sd00001F31* +- ID_MODEL_FROM_DATABASE=PERC H710P Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Adapter) + + pci:v00001000d0000005Bsv00001028sd00001F33* +- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for blades)) + + pci:v00001000d0000005Bsv00001028sd00001F34* +- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for monolithics) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for monolithics)) + + pci:v00001000d0000005Bsv00001028sd00001F35* +- ID_MODEL_FROM_DATABASE=PERC H710 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Adapter) + + pci:v00001000d0000005Bsv00001028sd00001F37* +- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for blades)) + + pci:v00001000d0000005Bsv00001028sd00001F38* +- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for monolithics)) + + pci:v00001000d0000005Bsv000015D9sd00000690* +- ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (LSI MegaRAID ROMB) + + pci:v00001000d0000005Bsv00008086sd00003510* +- ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25PB080 RAID Controller) + + pci:v00001000d0000005Bsv00008086sd00003513* +- ID_MODEL_FROM_DATABASE=RMS25CB080 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25CB080 RAID Controller) + + pci:v00001000d0000005C* + ID_MODEL_FROM_DATABASE=SAS1064A PCI-X Fusion-MPT SAS +@@ -939,31 +939,31 @@ pci:v00001000d0000005D* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] + + pci:v00001000d0000005Dsv00001028sd00001F41* +- ID_MODEL_FROM_DATABASE=PERC H830 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H830 Adapter) + + pci:v00001000d0000005Dsv00001028sd00001F42* +- ID_MODEL_FROM_DATABASE=PERC H730P Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Adapter) + + pci:v00001000d0000005Dsv00001028sd00001F43* +- ID_MODEL_FROM_DATABASE=PERC H730 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Adapter) + + pci:v00001000d0000005Dsv00001028sd00001F47* +- ID_MODEL_FROM_DATABASE=PERC H730P Mini ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini) + + pci:v00001000d0000005Dsv00001028sd00001F48* +- ID_MODEL_FROM_DATABASE=PERC H730P Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini (for blades)) + + pci:v00001000d0000005Dsv00001028sd00001F49* +- ID_MODEL_FROM_DATABASE=PERC H730 Mini ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini) + + pci:v00001000d0000005Dsv00001028sd00001F4A* +- ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) + + pci:v00001000d0000005Dsv000017AAsd00001052* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) + + pci:v00001000d0000005Dsv000017AAsd00001053* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720ix) + + pci:v00001000d0000005E* + ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS +@@ -972,109 +972,109 @@ pci:v00001000d0000005F* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] + + pci:v00001000d0000005Fsv00001028sd00001F44* +- ID_MODEL_FROM_DATABASE=PERC H330 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Adapter) + + pci:v00001000d0000005Fsv00001028sd00001F4B* +- ID_MODEL_FROM_DATABASE=PERC H330 Mini ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini) + + pci:v00001000d0000005Fsv00001028sd00001F4C* +- ID_MODEL_FROM_DATABASE=PERC H330 Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini (for blades)) + + pci:v00001000d0000005Fsv00001028sd00001F4D* +- ID_MODEL_FROM_DATABASE=PERC H330 Embedded (for monolithic) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Embedded (for monolithic)) + + pci:v00001000d00000060* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 + + pci:v00001000d00000060sv00001000sd00001006* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8888ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8888ELP) + + pci:v00001000d00000060sv00001000sd0000100A* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708ELP) + + pci:v00001000d00000060sv00001000sd0000100E* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8884E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8884E) + + pci:v00001000d00000060sv00001000sd0000100F* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708E) + + pci:v00001000d00000060sv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-8ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-8ELP) + + pci:v00001000d00000060sv00001000sd00001011* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-4ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-4ELP) + + pci:v00001000d00000060sv00001000sd00001012* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8704ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8704ELP) + + pci:v00001000d00000060sv00001000sd00001016* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8880EM2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8880EM2) + + pci:v00001000d00000060sv00001014sd00000363* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001014sd00000364* +- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8808E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8808E) + + pci:v00001000d00000060sv00001014sd00000365* +- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8884E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8884E) + + pci:v00001000d00000060sv00001014sd00000379* +- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8880EM2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8880EM2) + + pci:v00001000d00000060sv00001028sd00001F0A* +- ID_MODEL_FROM_DATABASE=PERC 6/E Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/E Adapter RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F0B* +- ID_MODEL_FROM_DATABASE=PERC 6/i Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Adapter RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F0C* +- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F0D* +- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F11* +- ID_MODEL_FROM_DATABASE=CERC 6/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (CERC 6/i Integrated RAID Controller) + + pci:v00001000d00000060sv00001033sd0000835A* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001043sd0000824D* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001170sd0000002F* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001170sd00000036* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv000015D9sd0000C080* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv000017AAsd00006B7C* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv000018A1sd00000003* +- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (LSI MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00008086sd00001006* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EP) + + pci:v00001000d00000060sv00008086sd0000100A* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EV ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EV) + + pci:v00001000d00000060sv00008086sd00001010* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSATA28E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSATA28E) + + pci:v00001000d00000060sv00008086sd000034CC* +- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) + + pci:v00001000d00000060sv00008086sd000034CD* +- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) + + pci:v00001000d00000060sv00008086sd00003505* +- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSASMP2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSASMP2) + + pci:v00001000d00000062* + ID_MODEL_FROM_DATABASE=SAS1078 PCI-Express Fusion-MPT SAS +@@ -1101,100 +1101,100 @@ pci:v00001000d00000072* + ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] + + pci:v00001000d00000072sv00001028sd00001F1C* +- ID_MODEL_FROM_DATABASE=6Gbps SAS HBA Adapter ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (6Gbps SAS HBA Adapter) + + pci:v00001000d00000072sv00001028sd00001F1D* +- ID_MODEL_FROM_DATABASE=PERC H200 Adapter ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Adapter) + + pci:v00001000d00000072sv00001028sd00001F1E* +- ID_MODEL_FROM_DATABASE=PERC H200 Integrated ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Integrated) + + pci:v00001000d00000072sv00001028sd00001F1F* +- ID_MODEL_FROM_DATABASE=PERC H200 Modular ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Modular) + + pci:v00001000d00000072sv00001028sd00001F20* +- ID_MODEL_FROM_DATABASE=PERC H200 Embedded ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Embedded) + + pci:v00001000d00000072sv00001028sd00001F22* +- ID_MODEL_FROM_DATABASE=Internal Tape Adapter ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (Internal Tape Adapter) + + pci:v00001000d00000072sv00008086sd0000350F* +- ID_MODEL_FROM_DATABASE=RMS2LL040 RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (RMS2LL040 RAID Controller) + + pci:v00001000d00000073* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] + + pci:v00001000d00000073sv00001000sd00009240* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-8i) + + pci:v00001000d00000073sv00001000sd00009241* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-4i) + + pci:v00001000d00000073sv00001000sd000092A0* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9220-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9220-8i) + + pci:v00001000d00000073sv00001014sd000003B1* +- ID_MODEL_FROM_DATABASE=ServeRAID M1015 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ServeRAID M1015 SAS/SATA Controller) + + pci:v00001000d00000073sv00001028sd00001F4E* +- ID_MODEL_FROM_DATABASE=PERC H310 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Adapter) + + pci:v00001000d00000073sv00001028sd00001F4F* +- ID_MODEL_FROM_DATABASE=PERC H310 Integrated ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Integrated) + + pci:v00001000d00000073sv00001028sd00001F50* +- ID_MODEL_FROM_DATABASE=PERC H310 Mini Blades ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Blades) + + pci:v00001000d00000073sv00001028sd00001F51* +- ID_MODEL_FROM_DATABASE=PERC H310 Mini Monolithics ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Monolithics) + + pci:v00001000d00000073sv00001028sd00001F52* +- ID_MODEL_FROM_DATABASE=PERC H310 Embedded1 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded1) + + pci:v00001000d00000073sv00001028sd00001F53* +- ID_MODEL_FROM_DATABASE=PERC H310 Embedded2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded2) + + pci:v00001000d00000073sv00001028sd00001F54* +- ID_MODEL_FROM_DATABASE=PERC H310 Reserved ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Reserved) + + pci:v00001000d00000073sv00001054sd00003035* +- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS 9240-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (LSI MegaRAID SAS 9240-8i) + + pci:v00001000d00000073sv00001137sd00000072* +- ID_MODEL_FROM_DATABASE=2004 iMR ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2004 iMR ROMB) + + pci:v00001000d00000073sv00001137sd00000073* +- ID_MODEL_FROM_DATABASE=2008 ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2008 ROMB) + + pci:v00001000d00000073sv00001137sd000000B0* +- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) + + pci:v00001000d00000073sv00001137sd000000B1* +- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) + + pci:v00001000d00000073sv00001137sd000000C2* +- ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Double Wide) + + pci:v00001000d00000073sv00001137sd000000C3* +- ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Single Wide) + + pci:v00001000d00000073sv000015D9sd00000400* +- ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (Supermicro SMC2008-iMR) + + pci:v00001000d00000073sv00001734sd00001177* +- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Ctrl SAS 6G 0/1 (D2607)) + + pci:v00001000d00000073sv000017AAsd00001051* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ThinkServer RAID 510i) + + pci:v00001000d00000073sv00008086sd0000350D* +- ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RMS2AF040 RAID Controller) + + pci:v00001000d00000073sv00008086sd00009240* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC080 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC080) + + pci:v00001000d00000073sv00008086sd00009241* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC040 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC040) + + pci:v00001000d00000074* + ID_MODEL_FROM_DATABASE=SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] +@@ -1209,106 +1209,106 @@ pci:v00001000d00000079* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] + + pci:v00001000d00000079sv00001000sd00009251* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4ix ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4ix) + + pci:v00001000d00000079sv00001000sd00009256* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8ix ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8ix) + + pci:v00001000d00000079sv00001000sd00009260* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4i) + + pci:v00001000d00000079sv00001000sd00009261* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8i) + + pci:v00001000d00000079sv00001000sd00009262* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9262-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9262-8i) + + pci:v00001000d00000079sv00001000sd00009263* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9261-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9261-8i) + + pci:v00001000d00000079sv00001000sd00009264* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9264-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9264-8i) + + pci:v00001000d00000079sv00001000sd00009267* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-4i) + + pci:v00001000d00000079sv00001000sd00009268* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-8i) + + pci:v00001000d00000079sv00001000sd00009275* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8ex ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8ex) + + pci:v00001000d00000079sv00001000sd00009276* +- ID_MODEL_FROM_DATABASE=MR9260-16i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MR9260-16i) + + pci:v00001000d00000079sv00001000sd00009280* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8e) + + pci:v00001000d00000079sv00001000sd00009281* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9281-8E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9281-8E) + + pci:v00001000d00000079sv00001000sd00009282* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-4i4e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-4i4e) + + pci:v00001000d00000079sv00001000sd00009290* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280DE-24i4e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280DE-24i4e) + + pci:v00001000d00000079sv00001014sd000003B2* +- ID_MODEL_FROM_DATABASE=ServeRAID M5015 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5015 SAS/SATA Controller) + + pci:v00001000d00000079sv00001014sd000003B3* +- ID_MODEL_FROM_DATABASE=ServeRAID M5025 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5025 SAS/SATA Controller) + + pci:v00001000d00000079sv00001028sd00001F15* +- ID_MODEL_FROM_DATABASE=PERC H800 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Adapter) + + pci:v00001000d00000079sv00001028sd00001F16* +- ID_MODEL_FROM_DATABASE=PERC H700 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Adapter) + + pci:v00001000d00000079sv00001028sd00001F17* +- ID_MODEL_FROM_DATABASE=PERC H700 Integrated ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) + + pci:v00001000d00000079sv00001028sd00001F18* +- ID_MODEL_FROM_DATABASE=PERC H700 Modular ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Modular) + + pci:v00001000d00000079sv00001028sd00001F1A* +- ID_MODEL_FROM_DATABASE=PERC H800 Proto Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Proto Adapter) + + pci:v00001000d00000079sv00001028sd00001F1B* +- ID_MODEL_FROM_DATABASE=PERC H700 Integrated ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) + + pci:v00001000d00000079sv00001043sd00008480* +- ID_MODEL_FROM_DATABASE=PIKE-2108 16PD ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PIKE-2108 16PD) + + pci:v00001000d00000079sv00001734sd00001176* +- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 5/6 512MB (D2616) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 5/6 512MB (D2616)) + + pci:v00001000d00000079sv00001734sd00001177* +- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 0/1 (D2607)) + + pci:v00001000d00000079sv00008086sd00009256* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260DE-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260DE-8i) + + pci:v00001000d00000079sv00008086sd00009260* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL040 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL040) + + pci:v00001000d00000079sv00008086sd00009261* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL080 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL080) + + pci:v00001000d00000079sv00008086sd00009264* +- ID_MODEL_FROM_DATABASE=Warm Beach (Caster Lite) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (Warm Beach (Caster Lite)) + + pci:v00001000d00000079sv00008086sd00009267* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB040 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB040) + + pci:v00001000d00000079sv00008086sd00009268* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB080 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB080) + + pci:v00001000d0000007C* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE + + pci:v00001000d0000007Csv00001014sd00000395* +- ID_MODEL_FROM_DATABASE=ServeRAID-AR10is SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE (ServeRAID-AR10is SAS/SATA Controller) + + pci:v00001000d0000007E* + ID_MODEL_FROM_DATABASE=SSS6200 PCI-Express Flash SSD +@@ -1338,16 +1338,16 @@ pci:v00001000d00000087* + ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 + + pci:v00001000d00000087sv00001590sd00000044* +- ID_MODEL_FROM_DATABASE=H220i ++ ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 (H220i) + + pci:v00001000d0000008F* + ID_MODEL_FROM_DATABASE=53c875J + + pci:v00001000d0000008Fsv00001092sd00008000* +- ID_MODEL_FROM_DATABASE=FirePort 40 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 SCSI Controller) + + pci:v00001000d0000008Fsv00001092sd00008760* +- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 Dual SCSI Host Adapter) + + pci:v00001000d00000090* + ID_MODEL_FROM_DATABASE=SAS3108 PCI-Express Fusion-MPT SAS-3 +@@ -1368,151 +1368,151 @@ pci:v00001000d00000097* + ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 + + pci:v00001000d00000097sv00001028sd00001F45* +- ID_MODEL_FROM_DATABASE=12GB/s HBA internal ++ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA internal) + + pci:v00001000d00000097sv00001028sd00001F46* +- ID_MODEL_FROM_DATABASE=12GB/s HBA external ++ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA external) + + pci:v00001000d00000407* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00000407sv00001000sd00000530* +- ID_MODEL_FROM_DATABASE=MegaRAID 530 SCSI 320-0X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (530 SCSI 320-0X RAID Controller) + + pci:v00001000d00000407sv00001000sd00000531* +- ID_MODEL_FROM_DATABASE=MegaRAID 531 SCSI 320-4X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (531 SCSI 320-4X RAID Controller) + + pci:v00001000d00000407sv00001000sd00000532* +- ID_MODEL_FROM_DATABASE=MegaRAID 532 SCSI 320-2X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (532 SCSI 320-2X RAID Controller) + + pci:v00001000d00000407sv00001028sd00000531* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00000407sv00001028sd00000533* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00000407sv00008086sd00000530* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCZCRX ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCZCRX) + + pci:v00001000d00000407sv00008086sd00000532* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42X ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42X) + + pci:v00001000d00000408* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00000408sv00001000sd00000001* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-1E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-1E RAID Controller) + + pci:v00001000d00000408sv00001000sd00000002* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-2E RAID Controller) + + pci:v00001000d00000408sv00001025sd0000004D* +- ID_MODEL_FROM_DATABASE=MegaRAID ACER ROMB-2E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (ACER ROMB-2E RAID Controller) + + pci:v00001000d00000408sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/SC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/SC) + + pci:v00001000d00000408sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/DC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/DC) + + pci:v00001000d00000408sv00001028sd00000012* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller RAC4 ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller RAC4) + + pci:v00001000d00000408sv00001028sd00000015* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) + + pci:v00001000d00000408sv00001028sd00001F03* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) + + pci:v00001000d00000408sv00001734sd00001065* +- ID_MODEL_FROM_DATABASE=FSC MegaRAID PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID (FSC MegaRAID PCI Express ROMB) + + pci:v00001000d00000408sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42E ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42E) + + pci:v00001000d00000408sv00008086sd00003449* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SROMBU ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SROMBU) + + pci:v00001000d00000409* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00000409sv00001000sd00003004* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-4X RAID Controller) + + pci:v00001000d00000409sv00001000sd00003008* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-8X RAID Controller) + + pci:v00001000d00000409sv00008086sd00003008* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS28X ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS28X) + + pci:v00001000d00000409sv00008086sd00003431* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Alief SROMBU42E ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Alief SROMBU42E) + + pci:v00001000d00000409sv00008086sd00003499* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Harwich SROMBU42E ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Harwich SROMBU42E) + + pci:v00001000d00000411* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 + + pci:v00001000d00000411sv00001000sd00001001* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8408E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8408E) + + pci:v00001000d00000411sv00001000sd00001002* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8480E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8480E) + + pci:v00001000d00000411sv00001000sd00001003* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8344ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8344ELP) + + pci:v00001000d00000411sv00001000sd00001004* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8308ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8308ELP) + + pci:v00001000d00000411sv00001000sd00001008* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 84016E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 84016E) + + pci:v00001000d00000411sv00001000sd0000100C* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-12E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-12E) + + pci:v00001000d00000411sv00001000sd0000100D* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-16E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-16E) + + pci:v00001000d00000411sv00001000sd00002004* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-8ELP) + + pci:v00001000d00000411sv00001000sd00002005* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-4ELP) + + pci:v00001000d00000411sv00001033sd00008287* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000411sv00001054sd00003016* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS RoMB Server ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS RoMB Server) + + pci:v00001000d00000411sv00001734sd00001081* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000411sv00001734sd000010A3* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000411sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS18E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS18E) + + pci:v00001000d00000411sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS144E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS144E) + + pci:v00001000d00000411sv00008086sd00003500* +- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) + + pci:v00001000d00000411sv00008086sd00003501* +- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) + + pci:v00001000d00000411sv00008086sd00003504* +- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) + + pci:v00001000d00000413* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] + + pci:v00001000d00000413sv00001000sd00001005* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8300XLP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] (MegaRAID SAS 8300XLP) + + pci:v00001000d00000621* + ID_MODEL_FROM_DATABASE=FC909 Fibre Channel Adapter +@@ -1521,7 +1521,7 @@ pci:v00001000d00000622* + ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter + + pci:v00001000d00000622sv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=44929 O Dual Fibre Channel card ++ ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter (44929 O Dual Fibre Channel card) + + pci:v00001000d00000623* + ID_MODEL_FROM_DATABASE=FC929 LAN +@@ -1536,7 +1536,7 @@ pci:v00001000d00000626* + ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter + + pci:v00001000d00000626sv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=7202-XP-LC Dual Fibre Channel card ++ ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter (7202-XP-LC Dual Fibre Channel card) + + pci:v00001000d00000627* + ID_MODEL_FROM_DATABASE=FC929X LAN +@@ -1563,7 +1563,7 @@ pci:v00001000d00000702* + ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet + + pci:v00001000d00000702sv00001318sd00000000* +- ID_MODEL_FROM_DATABASE=PEI100X ++ ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet (PEI100X) + + pci:v00001000d00000804* + ID_MODEL_FROM_DATABASE=SA2010 +@@ -1587,40 +1587,40 @@ pci:v00001000d00001960* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00001960sv00001000sd00000518* +- ID_MODEL_FROM_DATABASE=MegaRAID 518 SCSI 320-2 Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (518 SCSI 320-2 Controller) + + pci:v00001000d00001960sv00001000sd00000520* +- ID_MODEL_FROM_DATABASE=MegaRAID 520 SCSI 320-1 Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (520 SCSI 320-1 Controller) + + pci:v00001000d00001960sv00001000sd00000522* +- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4 133 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4 133 RAID Controller) + + pci:v00001000d00001960sv00001000sd00000523* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-6 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-6 RAID Controller) + + pci:v00001000d00001960sv00001000sd00004523* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-4 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-4 RAID Controller) + + pci:v00001000d00001960sv00001000sd0000A520* +- ID_MODEL_FROM_DATABASE=MegaRAID ZCR SCSI 320-0 Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (ZCR SCSI 320-0 Controller) + + pci:v00001000d00001960sv00001028sd00000518* +- ID_MODEL_FROM_DATABASE=MegaRAID 518 DELL PERC 4/DC RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (518 DELL PERC 4/DC RAID Controller) + + pci:v00001000d00001960sv00001028sd00000520* +- ID_MODEL_FROM_DATABASE=MegaRAID 520 DELL PERC 4/SC RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (520 DELL PERC 4/SC RAID Controller) + + pci:v00001000d00001960sv00001028sd00000531* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00001960sv00001028sd00000533* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00001960sv00008086sd00000520* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCU41L ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCU41L) + + pci:v00001000d00001960sv00008086sd00000523* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS16) + + pci:v00001000d00003050* + ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 +@@ -1710,7 +1710,7 @@ pci:v00001002d00001314* + ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio + + pci:v00001002d00001314sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio (PURE Fusion Mini) + + pci:v00001002d00001315* + ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] +@@ -1737,13 +1737,13 @@ pci:v00001002d00001714* + ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] + + pci:v00001002d00001714sv0000103Csd0000168B* +- ID_MODEL_FROM_DATABASE=ProBook 4535s ++ ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] (ProBook 4535s) + + pci:v00001002d00003150* + ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] + + pci:v00001002d00003150sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=nx8220 ++ ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] (nx8220) + + pci:v00001002d00003151* + ID_MODEL_FROM_DATABASE=RV380 GL [FireMV 2400] +@@ -1791,73 +1791,73 @@ pci:v00001002d00004150* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] + + pci:v00001002d00004150sv00001002sd00000002* +- ID_MODEL_FROM_DATABASE=R9600 Pro primary (Asus OEM for HP) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro primary (Asus OEM for HP)) + + pci:v00001002d00004150sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro secondary (Asus OEM for HP)) + + pci:v00001002d00004150sv00001002sd00004722* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (All-in-Wonder 2006 AGP Edition) + + pci:v00001002d00004150sv00001458sd00004024* +- ID_MODEL_FROM_DATABASE=GV-R96128D ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GV-R96128D) + + pci:v00001002d00004150sv0000148Csd00002064* +- ID_MODEL_FROM_DATABASE=R96A-C3N ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) + + pci:v00001002d00004150sv0000148Csd00002066* +- ID_MODEL_FROM_DATABASE=R96A-C3N ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) + + pci:v00001002d00004150sv0000174Bsd00007C19* +- ID_MODEL_FROM_DATABASE=Atlantis Radeon 9600 Pro ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Atlantis Radeon 9600 Pro) + + pci:v00001002d00004150sv0000174Bsd00007C29* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO) + + pci:v00001002d00004150sv000017EEsd00002002* +- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb Primary ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Radeon 9600 256Mb Primary) + + pci:v00001002d00004150sv000018BCsd00000101* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Primary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO (Primary)) + + pci:v00001002d00004151* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] + + pci:v00001002d00004151sv00001043sd0000C004* +- ID_MODEL_FROM_DATABASE=A9600SE ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] (A9600SE) + + pci:v00001002d00004152* + ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] + + pci:v00001002d00004152sv00001002sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) + + pci:v00001002d00004152sv00001002sd00004772* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (All-in-Wonder 9600 XT) + + pci:v00001002d00004152sv00001043sd0000C002* +- ID_MODEL_FROM_DATABASE=Radeon 9600 XT TVD ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT TVD) + + pci:v00001002d00004152sv00001043sd0000C01A* +- ID_MODEL_FROM_DATABASE=A9600XT/TD ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (A9600XT/TD) + + pci:v00001002d00004152sv00001462sd00009510* +- ID_MODEL_FROM_DATABASE=RX9600XT (MS-8951) ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (RX9600XT (MS-8951)) + + pci:v00001002d00004152sv0000174Bsd00007C29* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) + + pci:v00001002d00004152sv00001787sd00004002* +- ID_MODEL_FROM_DATABASE=Radeon 9600 XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT) + + pci:v00001002d00004153* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] + + pci:v00001002d00004153sv00001043sd0000010C* +- ID_MODEL_FROM_DATABASE=A9550GE/TD ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (A9550GE/TD) + + pci:v00001002d00004153sv00001462sd0000932C* +- ID_MODEL_FROM_DATABASE=RX9550SE-TD128 (MS-8932) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (RX9550SE-TD128 (MS-8932)) + + pci:v00001002d00004154* + ID_MODEL_FROM_DATABASE=RV350 GL [FireGL T2] +@@ -1887,64 +1887,64 @@ pci:v00001002d00004170* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) + + pci:v00001002d00004170sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R9600 Pro secondary (Asus OEM for HP)) + + pci:v00001002d00004170sv00001002sd00004723* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (All-in-Wonder 2006 AGP Edition (Secondary)) + + pci:v00001002d00004170sv00001458sd00004025* +- ID_MODEL_FROM_DATABASE=GV-R96128D (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GV-R96128D (Secondary)) + + pci:v00001002d00004170sv0000148Csd00002067* +- ID_MODEL_FROM_DATABASE=R96A-C3N (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R96A-C3N (Secondary)) + + pci:v00001002d00004170sv0000174Bsd00007C28* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) + + pci:v00001002d00004170sv000017EEsd00002003* +- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (Radeon 9600 256Mb (Secondary)) + + pci:v00001002d00004170sv000018BCsd00000100* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) + + pci:v00001002d00004171* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) + + pci:v00001002d00004171sv00001043sd0000C005* +- ID_MODEL_FROM_DATABASE=A9600SE (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) (A9600SE (Secondary)) + + pci:v00001002d00004172* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) + + pci:v00001002d00004172sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) + + pci:v00001002d00004172sv00001002sd00004773* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (All-in-Wonder 9600 XT (Secondary)) + + pci:v00001002d00004172sv00001043sd0000C003* +- ID_MODEL_FROM_DATABASE=A9600XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT (Secondary)) + + pci:v00001002d00004172sv00001043sd0000C01B* +- ID_MODEL_FROM_DATABASE=A9600XT/TD (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT/TD (Secondary)) + + pci:v00001002d00004172sv0000174Bsd00007C28* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) + + pci:v00001002d00004172sv00001787sd00004003* +- ID_MODEL_FROM_DATABASE=Radeon 9600 XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600 XT (Secondary)) + + pci:v00001002d00004173* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) + + pci:v00001002d00004173sv00001043sd0000010D* +- ID_MODEL_FROM_DATABASE=A9550GE/TD (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) (A9550GE/TD (Secondary)) + + pci:v00001002d00004242* + ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] + + pci:v00001002d00004242sv00001002sd000002AA* +- ID_MODEL_FROM_DATABASE=Radeon 8500 AIW DV Edition ++ ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] (Radeon 8500 AIW DV Edition) + + pci:v00001002d00004243* + ID_MODEL_FROM_DATABASE=R200 PCI Bridge [All-in-Wonder Radeon 8500DV] +@@ -1953,22 +1953,22 @@ pci:v00001002d00004336* + ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] + + pci:v00001002d00004336sv00001002sd00004336* +- ID_MODEL_FROM_DATABASE=Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M) ++ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M)) + + pci:v00001002d00004336sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Video ++ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4400 builtin Video) + + pci:v00001002d00004336sv0000161Fsd00002029* +- ID_MODEL_FROM_DATABASE=eMachines M5312 builtin Video ++ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (eMachines M5312 builtin Video) + + pci:v00001002d00004337* + ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] + + pci:v00001002d00004337sv00001014sd0000053A* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (ThinkPad R40e) + + pci:v00001002d00004337sv0000103Csd00000850* +- ID_MODEL_FROM_DATABASE=Radeon IGP 345M ++ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (Radeon IGP 345M) + + pci:v00001002d00004341* + ID_MODEL_FROM_DATABASE=IXP150 AC'97 Audio Controller +@@ -2013,160 +2013,160 @@ pci:v00001002d00004370* + ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller + + pci:v00001002d00004370sv00001025sd00000079* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5024WLMMi) + + pci:v00001002d00004370sv00001025sd00000091* +- ID_MODEL_FROM_DATABASE=Aspire 5032WXMi ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5032WXMi) + + pci:v00001002d00004370sv0000103Csd00002A05* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004370sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6125) + + pci:v00001002d00004370sv0000105Bsd00000C81* +- ID_MODEL_FROM_DATABASE=Realtek ALC 653 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Realtek ALC 653) + + pci:v00001002d00004370sv0000107Bsd00000300* +- ID_MODEL_FROM_DATABASE=MX6421 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6421) + + pci:v00001002d00004370sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MS-1013 Notebook) + + pci:v00001002d00004371* + ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge + + pci:v00001002d00004371sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (MX6125) + + pci:v00001002d00004371sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (Aspire L250) + + pci:v00001002d00004372* + ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller + + pci:v00001002d00004372sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire 5024WLMMi) + + pci:v00001002d00004372sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004372sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MX6125) + + pci:v00001002d00004372sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MS-1013 Notebook) + + pci:v00001002d00004372sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire L250) + + pci:v00001002d00004373* + ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller + + pci:v00001002d00004373sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire 5024WLMMi) + + pci:v00001002d00004373sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004373sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (MX6125) + + pci:v00001002d00004373sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire L250) + + pci:v00001002d00004374* + ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller + + pci:v00001002d00004374sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004374sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) + + pci:v00001002d00004374sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) + + pci:v00001002d00004375* + ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller + + pci:v00001002d00004375sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire 5024WLMMi) + + pci:v00001002d00004375sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004375sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) + + pci:v00001002d00004375sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) + + pci:v00001002d00004376* + ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller + + pci:v00001002d00004376sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire 5024WLMMi) + + pci:v00001002d00004376sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004376sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MX6125) + + pci:v00001002d00004376sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MS-1013 Notebook) + + pci:v00001002d00004376sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire L250) + + pci:v00001002d00004377* + ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge + + pci:v00001002d00004377sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire 5024WLMi) + + pci:v00001002d00004377sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004377sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (MX6125) + + pci:v00001002d00004377sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire L250) + + pci:v00001002d00004378* + ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller + + pci:v00001002d00004378sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (Aspire 5024WLMMi) + + pci:v00001002d00004378sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MX6125) + + pci:v00001002d00004378sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MS-1013 Notebook) + + pci:v00001002d00004379* + ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller + + pci:v00001002d00004379sv00001462sd00007141* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller (Aspire L250) + + pci:v00001002d0000437A* + ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller + + pci:v00001002d0000437Asv00001002sd00004379* +- ID_MODEL_FROM_DATABASE=4379 Serial ATA Controller ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (4379 Serial ATA Controller) + + pci:v00001002d0000437Asv00001002sd0000437A* +- ID_MODEL_FROM_DATABASE=437A Serial ATA Controller ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (437A Serial ATA Controller) + + pci:v00001002d0000437Asv00001462sd00007141* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Aspire L250) + + pci:v00001002d0000437Asv000014F1sd00008800* +- ID_MODEL_FROM_DATABASE=Leadtek WinFast TV2000XP Expert ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Leadtek WinFast TV2000XP Expert) + + pci:v00001002d0000437B* + ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller +@@ -2175,31 +2175,31 @@ pci:v00001002d0000437Bsv00001002sd0000437B* + ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller + + pci:v00001002d0000437Bsv000010CFsd00001326* +- ID_MODEL_FROM_DATABASE=Fujitsu Lifebook A3040 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Fujitsu Lifebook A3040) + + pci:v00001002d0000437Bsv00001734sd000010B8* +- ID_MODEL_FROM_DATABASE=Realtek High Definition Audio ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Realtek High Definition Audio) + + pci:v00001002d00004380* + ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA + + pci:v00001002d00004380sv0000103Csd00002813* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (DC5750 Microtower) + + pci:v00001002d00004380sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Satellite P305D-S8995E) + + pci:v00001002d00004380sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-MA790FX-DS5 (rev. 1.0) ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (GA-MA790FX-DS5 (rev. 1.0)) + + pci:v00001002d00004380sv00001458sd0000B005* +- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Gigabyte GA-MA69G-S3H Motherboard) + + pci:v00001002d00004380sv00001462sd00007327* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (K9AG Neo2) + + pci:v00001002d00004380sv000017F2sd00005999* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (KI690-AM2 Motherboard) + + pci:v00001002d00004381* + ID_MODEL_FROM_DATABASE=SB600 SATA Controller (RAID 5 mode) +@@ -2211,34 +2211,34 @@ pci:v00001002d00004383* + ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) + + pci:v00001002d00004383sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (A785GM-M) + + pci:v00001002d00004383sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Pavilion DM1Z-3000) + + pci:v00001002d00004383sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (DC5750 Microtower) + + pci:v00001002d00004383sv00001043sd00008230* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M3A78-EH Motherboard) + + pci:v00001002d00004383sv00001043sd0000836C* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A785TD Motherboard) + + pci:v00001002d00004383sv00001043sd00008410* +- ID_MODEL_FROM_DATABASE=M4A89GTD PRO/USB3 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A89GTD PRO/USB3 Motherboard) + + pci:v00001002d00004383sv00001043sd0000841B* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M5A88-V EVO) + + pci:v00001002d00004383sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Satellite P305D-S8995E) + + pci:v00001002d00004383sv00001458sd0000A022* +- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (GA-MA770-DS3rev2.0 Motherboard) + + pci:v00001002d00004383sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (KI690-AM2 Motherboard) + + pci:v00001002d00004384* + ID_MODEL_FROM_DATABASE=SBx00 PCI to PCI Bridge +@@ -2247,160 +2247,160 @@ pci:v00001002d00004385* + ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller + + pci:v00001002d00004385sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (A785GM-M) + + pci:v00001002d00004385sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Pavilion DM1Z-3000) + + pci:v00001002d00004385sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (DC5750 Microtower) + + pci:v00001002d00004385sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M3A78-EH Motherboard) + + pci:v00001002d00004385sv00001043sd00008389* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M4A785TD Motherboard) + + pci:v00001002d00004385sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Satellite P305D-S8995E) + + pci:v00001002d00004385sv00001458sd00004385* +- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (GA-MA770-DS3rev2.0 Motherboard) + + pci:v00001002d00004385sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (K9AG Neo2) + + pci:v00001002d00004385sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (H8DGU) + + pci:v00001002d00004385sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (PURE Fusion Mini) + + pci:v00001002d00004385sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (KI690-AM2 Motherboard) + + pci:v00001002d00004386* + ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) + + pci:v00001002d00004386sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (DC5750 Microtower) + + pci:v00001002d00004386sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (Satellite P305D-S8995E) + + pci:v00001002d00004386sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (K9AG Neo2) + + pci:v00001002d00004386sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (KI690-AM2 Motherboard) + + pci:v00001002d00004387* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) + + pci:v00001002d00004387sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (DC5750 Microtower) + + pci:v00001002d00004387sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (Satellite P305D-S8995E) + + pci:v00001002d00004387sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (K9AG Neo2) + + pci:v00001002d00004387sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (KI690-AM2 Motherboard) + + pci:v00001002d00004388* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) + + pci:v00001002d00004388sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (DC5750 Microtower) + + pci:v00001002d00004388sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (Satellite P305D-S8995E) + + pci:v00001002d00004388sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (K9AG Neo2) + + pci:v00001002d00004388sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (KI690-AM2 Motherboard) + + pci:v00001002d00004389* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) + + pci:v00001002d00004389sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (DC5750 Microtower) + + pci:v00001002d00004389sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (Satellite P305D-S8995E) + + pci:v00001002d00004389sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (K9AG Neo2) + + pci:v00001002d00004389sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (KI690-AM2 Motherboard) + + pci:v00001002d0000438A* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) + + pci:v00001002d0000438Asv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (DC5750 Microtower) + + pci:v00001002d0000438Asv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (Satellite P305D-S8995E) + + pci:v00001002d0000438Asv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (K9AG Neo2) + + pci:v00001002d0000438Asv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (KI690-AM2 Motherboard) + + pci:v00001002d0000438B* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) + + pci:v00001002d0000438Bsv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (DC5750 Microtower) + + pci:v00001002d0000438Bsv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (Satellite P305D-S8995E) + + pci:v00001002d0000438Bsv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (K9AG Neo2) + + pci:v00001002d0000438Bsv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (KI690-AM2 Motherboard) + + pci:v00001002d0000438C* + ID_MODEL_FROM_DATABASE=SB600 IDE + + pci:v00001002d0000438Csv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 IDE (DC5750 Microtower) + + pci:v00001002d0000438Csv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 IDE (Satellite P305D-S8995E) + + pci:v00001002d0000438Csv00001458sd00005002* +- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 IDE (Gigabyte GA-MA69G-S3H Motherboard) + + pci:v00001002d0000438Csv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 IDE (K9AG Neo2) + + pci:v00001002d0000438Csv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 IDE (KI690-AM2 Motherboard) + + pci:v00001002d0000438D* + ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge + + pci:v00001002d0000438Dsv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (DC5750 Microtower) + + pci:v00001002d0000438Dsv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (Satellite P305D-S8995E) + + pci:v00001002d0000438Dsv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (K9AG Neo2) + + pci:v00001002d0000438Dsv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (KI690-AM2 Motherboard) + + pci:v00001002d0000438E* + ID_MODEL_FROM_DATABASE=SB600 AC97 Modem +@@ -2409,31 +2409,31 @@ pci:v00001002d00004390* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] + + pci:v00001002d00004390sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M3A78-EH Motherboard) + + pci:v00001002d00004390sv00001043sd00008389* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M4A785TD Motherboard) + + pci:v00001002d00004390sv00001458sd0000B002* +- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (GA-MA770-DS3rev2.0 Motherboard) + + pci:v00001002d00004390sv00001849sd00004390* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (Motherboard (one of many)) + + pci:v00001002d00004391* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] + + pci:v00001002d00004391sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (Pavilion DM1Z-3000) + + pci:v00001002d00004391sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M3A78-EH Motherboard) + + pci:v00001002d00004391sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M5A88-V EVO) + + pci:v00001002d00004391sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (PURE Fusion Mini) + + pci:v00001002d00004392* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] +@@ -2451,97 +2451,97 @@ pci:v00001002d00004396* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller + + pci:v00001002d00004396sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (A785GM-M) + + pci:v00001002d00004396sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (Pavilion DM1Z-3000) + + pci:v00001002d00004396sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M3A78-EH Motherboard) + + pci:v00001002d00004396sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M5A88-V EVO) + + pci:v00001002d00004396sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (H8DGU) + + pci:v00001002d00004396sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (PURE Fusion Mini) + + pci:v00001002d00004397* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller + + pci:v00001002d00004397sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (A785GM-M) + + pci:v00001002d00004397sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (Pavilion DM1Z-3000) + + pci:v00001002d00004397sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M3A78-EH Motherboard) + + pci:v00001002d00004397sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M5A88-V EVO) + + pci:v00001002d00004397sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (H8DGU) + + pci:v00001002d00004397sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (PURE Fusion Mini) + + pci:v00001002d00004398* + ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller + + pci:v00001002d00004398sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (A785GM-M) + + pci:v00001002d00004398sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (M3A78-EH Motherboard) + + pci:v00001002d00004398sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (H8DGU) + + pci:v00001002d00004399* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller + + pci:v00001002d00004399sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (A785GM-M) + + pci:v00001002d00004399sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M3A78-EH Motherboard) + + pci:v00001002d00004399sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M5A88-V EVO) + + pci:v00001002d00004399sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (PURE Fusion Mini) + + pci:v00001002d0000439C* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller + + pci:v00001002d0000439Csv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (A785GM-M) + + pci:v00001002d0000439Csv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (M3A78-EH Motherboard) + + pci:v00001002d0000439D* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller + + pci:v00001002d0000439Dsv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (A785GM-M) + + pci:v00001002d0000439Dsv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (Pavilion DM1Z-3000) + + pci:v00001002d0000439Dsv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M3A78-EH Motherboard) + + pci:v00001002d0000439Dsv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M5A88-V EVO) + + pci:v00001002d0000439Dsv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (PURE Fusion Mini) + + pci:v00001002d000043A0* + ID_MODEL_FROM_DATABASE=SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) +@@ -2568,88 +2568,88 @@ pci:v00001002d00004742* + ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X + + pci:v00001002d00004742sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00000061* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) + + pci:v00001002d00004742sv00001002sd00000062* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) + + pci:v00001002d00004742sv00001002sd00000063* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) + + pci:v00001002d00004742sv00001002sd00000080* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00004742* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00008001* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001028sd00000082* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001028sd00004082* +- ID_MODEL_FROM_DATABASE=Optiplex GX1 Onboard Display Adapter ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Optiplex GX1 Onboard Display Adapter) + + pci:v00001002d00004742sv00001028sd00008082* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001028sd0000C082* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00008086sd00004152* +- ID_MODEL_FROM_DATABASE=Xpert 98D AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Xpert 98D AGP 2X) + + pci:v00001002d00004742sv00008086sd0000464A* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004744* + ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X + + pci:v00001002d00004744sv00001002sd00004744* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage Pro Turbo AGP) + + pci:v00001002d00004744sv00008086sd00004D55* +- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 1X [Intel MU440EX] ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage 3D Pro AGP 1X [Intel MU440EX]) + + pci:v00001002d00004749* + ID_MODEL_FROM_DATABASE=3D Rage PRO PCI + + pci:v00001002d00004749sv00001002sd00000061* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW ++ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) + + pci:v00001002d00004749sv00001002sd00000062* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW ++ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) + + pci:v00001002d0000474D* + ID_MODEL_FROM_DATABASE=Rage XL AGP 2X + + pci:v00001002d0000474Dsv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) + + pci:v00001002d0000474Dsv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) + + pci:v00001002d0000474Dsv00001002sd00000080* + ID_MODEL_FROM_DATABASE=Rage XL AGP 2X + + pci:v00001002d0000474Dsv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 AGP 2X) + + pci:v00001002d0000474Dsv00001002sd0000474D* +- ID_MODEL_FROM_DATABASE=Rage XL AGP ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) + + pci:v00001002d0000474Dsv00001033sd0000806A* +- ID_MODEL_FROM_DATABASE=Rage XL AGP ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) + + pci:v00001002d0000474E* + ID_MODEL_FROM_DATABASE=Rage XC AGP +@@ -2670,79 +2670,79 @@ pci:v00001002d00004750* + ID_MODEL_FROM_DATABASE=3D Rage Pro PCI + + pci:v00001002d00004750sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00000080* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00004750* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004752* + ID_MODEL_FROM_DATABASE=Rage XL PCI + + pci:v00001002d00004752sv00000E11sd0000001E* +- ID_MODEL_FROM_DATABASE=Proliant Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) + + pci:v00001002d00004752sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) + + pci:v00001002d00004752sv00001002sd00004752* +- ID_MODEL_FROM_DATABASE=Proliant Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) + + pci:v00001002d00004752sv00001002sd00008008* +- ID_MODEL_FROM_DATABASE=Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) + + pci:v00001002d00004752sv00001014sd00000240* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (eServer xSeries server mainboard) + + pci:v00001002d00004752sv00001028sd000000CE* +- ID_MODEL_FROM_DATABASE=PowerEdge 1400 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1400) + + pci:v00001002d00004752sv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=PowerEdge 2550 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2550) + + pci:v00001002d00004752sv00001028sd000000D9* +- ID_MODEL_FROM_DATABASE=PowerEdge 2500 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2500) + + pci:v00001002d00004752sv00001028sd00000134* +- ID_MODEL_FROM_DATABASE=PowerEdge 600SC ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 600SC) + + pci:v00001002d00004752sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1750) + + pci:v00001002d00004752sv00001028sd00000165* +- ID_MODEL_FROM_DATABASE=PowerEdge 750 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 750) + + pci:v00001002d00004752sv0000103Csd000010E1* +- ID_MODEL_FROM_DATABASE=NetServer Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (NetServer Rage XL) + + pci:v00001002d00004752sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (ProLiant DL140 G2) + + pci:v00001002d00004752sv0000107Bsd00006400* +- ID_MODEL_FROM_DATABASE=6400 Server ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (6400 Server) + + pci:v00001002d00004752sv00001734sd0000007A* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard VGA ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PRIMERGY RX/TX series onboard VGA) + + pci:v00001002d00004752sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Primergy Econel 200 D2020 mainboard) + + pci:v00001002d00004752sv00008086sd00003411* +- ID_MODEL_FROM_DATABASE=SDS2 Mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (SDS2 Mainboard) + + pci:v00001002d00004752sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (S875WP1-E mainboard) + + pci:v00001002d00004752sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (S845WD1-E mainboard) + + pci:v00001002d00004753* + ID_MODEL_FROM_DATABASE=Rage XC +@@ -2760,28 +2760,28 @@ pci:v00001002d00004756* + ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] + + pci:v00001002d00004756sv00001002sd00004756* +- ID_MODEL_FROM_DATABASE=Rage IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] (Rage IIC) + + pci:v00001002d00004757* + ID_MODEL_FROM_DATABASE=3D Rage IIC AGP + + pci:v00001002d00004757sv00001002sd00004757* +- ID_MODEL_FROM_DATABASE=Rage IIC AGP ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) + + pci:v00001002d00004757sv00001028sd00000089* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004757sv00001028sd0000008E* +- ID_MODEL_FROM_DATABASE=PowerEdge 1300 onboard video ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (PowerEdge 1300 onboard video) + + pci:v00001002d00004757sv00001028sd00004082* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004757sv00001028sd00008082* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004757sv00001028sd0000C082* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004758* + ID_MODEL_FROM_DATABASE=210888GX [Mach64 GX PCI] +@@ -2793,40 +2793,40 @@ pci:v00001002d0000475A* + ID_MODEL_FROM_DATABASE=3D Rage IIC AGP + + pci:v00001002d0000475Asv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 2x XPERT 98 ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D Pro AGP 2x XPERT 98) + + pci:v00001002d0000475Asv00001002sd00000087* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d0000475Asv00001002sd0000475A* +- ID_MODEL_FROM_DATABASE=Rage IIC AGP ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) + + pci:v00001002d00004966* + ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] + + pci:v00001002d00004966sv000010F1sd00000002* +- ID_MODEL_FROM_DATABASE=RV250 If [Tachyon G9000 PRO] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Tachyon G9000 PRO]) + + pci:v00001002d00004966sv0000148Csd00002039* +- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 Pro "Evil Commando"] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 Pro "Evil Commando"]) + + pci:v00001002d00004966sv00001509sd00009A00* +- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "AT009"] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "AT009"]) + + pci:v00001002d00004966sv00001681sd00000040* +- ID_MODEL_FROM_DATABASE=RV250 If [3D prophet 9000] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [3D prophet 9000]) + + pci:v00001002d00004966sv0000174Bsd00007176* +- ID_MODEL_FROM_DATABASE=Radeon 9000 Pro ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (Radeon 9000 Pro) + + pci:v00001002d00004966sv0000174Bsd00007192* +- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "Atlantis"] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "Atlantis"]) + + pci:v00001002d00004966sv000017AFsd00002005* +- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000 Pro] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000 Pro]) + + pci:v00001002d00004966sv000017AFsd00002006* +- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000]) + + pci:v00001002d0000496E* + ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000] (Secondary) +@@ -2835,7 +2835,7 @@ pci:v00001002d00004A49* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] + + pci:v00001002d00004A49sv0000174Bsd00002620* +- ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GTO AGP] ++ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] (R420 [Radeon X800 GTO AGP]) + + pci:v00001002d00004A4A* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GT AGP] +@@ -2859,7 +2859,7 @@ pci:v00001002d00004A54* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] + + pci:v00001002d00004A54sv00001002sd00004422* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 VE AGP ++ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] (All-In-Wonder X800 VE AGP) + + pci:v00001002d00004A69* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO] (Secondary) +@@ -2898,40 +2898,40 @@ pci:v00001002d00004C42* + ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X + + pci:v00001002d00004C42sv00000E11sd0000B0E7* +- ID_MODEL_FROM_DATABASE=Rage LT Pro (Compaq Presario 5240) ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro (Compaq Presario 5240)) + + pci:v00001002d00004C42sv00000E11sd0000B0E8* +- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) + + pci:v00001002d00004C42sv00000E11sd0000B10E* +- ID_MODEL_FROM_DATABASE=3D Rage LT Pro (Compaq Armada 1750) ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (3D Rage LT Pro (Compaq Armada 1750)) + + pci:v00001002d00004C42sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001002sd00004C42* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001002sd00008001* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001028sd00000085* +- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) + + pci:v00001002d00004C46* + ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 + + pci:v00001002d00004C46sv00001002sd00000155* +- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p ++ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) + + pci:v00001002d00004C46sv00001014sd00000155* +- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p ++ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) + + pci:v00001002d00004C46sv00001028sd000000B1* +- ID_MODEL_FROM_DATABASE=Latitude C600 ++ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (Latitude C600) + + pci:v00001002d00004C47* + ID_MODEL_FROM_DATABASE=3D Rage IIC PCI / Mobility Radeon 7500/7500C +@@ -2940,55 +2940,55 @@ pci:v00001002d00004C49* + ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI + + pci:v00001002d00004C49sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C49sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C49sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C49sv00001002sd00004C49* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C4D* + ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series + + pci:v00001002d00004C4Dsv00000E11sd0000B111* +- ID_MODEL_FROM_DATABASE=Armada M700 ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada M700) + + pci:v00001002d00004C4Dsv00000E11sd0000B160* +- ID_MODEL_FROM_DATABASE=Armada E500 ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada E500) + + pci:v00001002d00004C4Dsv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X (Mobility) ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Xpert 98 AGP 2X (Mobility)) + + pci:v00001002d00004C4Dsv00001014sd00000154* +- ID_MODEL_FROM_DATABASE=ThinkPad A20m/A21m ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (ThinkPad A20m/A21m) + + pci:v00001002d00004C4Dsv00001028sd000000AA* +- ID_MODEL_FROM_DATABASE=Latitude CPt ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPt) + + pci:v00001002d00004C4Dsv00001028sd000000BB* +- ID_MODEL_FROM_DATABASE=Latitude CPx ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPx) + + pci:v00001002d00004C4Dsv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Satellite 1715XCDS laptop ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Satellite 1715XCDS laptop) + + pci:v00001002d00004C4Dsv000013BDsd00001019* +- ID_MODEL_FROM_DATABASE=PC-AR10 ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (PC-AR10) + + pci:v00001002d00004C50* + ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI + + pci:v00001002d00004C50sv00001002sd00004C50* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C52* + ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI + + pci:v00001002d00004C52sv00001033sd00008112* +- ID_MODEL_FROM_DATABASE=Versa Note VXi ++ ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI (Versa Note VXi) + + pci:v00001002d00004C54* + ID_MODEL_FROM_DATABASE=264LT [Mach64 LT] +@@ -2997,22 +2997,22 @@ pci:v00001002d00004C57* + ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] + + pci:v00001002d00004C57sv00001014sd00000517* +- ID_MODEL_FROM_DATABASE=ThinkPad T30 ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) + + pci:v00001002d00004C57sv00001014sd00000530* +- ID_MODEL_FROM_DATABASE=ThinkPad T42 2373-4WU ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) + + pci:v00001002d00004C57sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW (Dell Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) + + pci:v00001002d00004C57sv00001028sd0000012A* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Latitude C640) + + pci:v00001002d00004C57sv00001043sd00001622* +- ID_MODEL_FROM_DATABASE=Mobility Radeon M7 (L3C/S) ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Mobility Radeon M7 (L3C/S)) + + pci:v00001002d00004C57sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW in vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW in vpr Matrix 170B4) + + pci:v00001002d00004C58* + ID_MODEL_FROM_DATABASE=RV200/M7 GL [Mobility FireGL 7800] +@@ -3021,31 +3021,31 @@ pci:v00001002d00004C59* + ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] + + pci:v00001002d00004C59sv00000E11sd0000B111* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Evo N600c) + + pci:v00001002d00004C59sv00001014sd00000235* +- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p (2652/2653) ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad A30/A30p (2652/2653)) + + pci:v00001002d00004C59sv00001014sd00000239* +- ID_MODEL_FROM_DATABASE=ThinkPad X22/X23/X24 ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad X22/X23/X24) + + pci:v00001002d00004C59sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (XE4500 Notebook) + + pci:v00001002d00004C59sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00001002d00004C59sv0000104Dsd00008140* +- ID_MODEL_FROM_DATABASE=PCG-Z1SP laptop ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (PCG-Z1SP laptop) + + pci:v00001002d00004C59sv00001509sd00001930* +- ID_MODEL_FROM_DATABASE=Medion MD9703 ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Medion MD9703) + + pci:v00001002d00004C66* + ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] + + pci:v00001002d00004C66sv00001014sd0000054D* +- ID_MODEL_FROM_DATABASE=ThinkPad T41 ++ ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] (ThinkPad T41) + + pci:v00001002d00004C6E* + ID_MODEL_FROM_DATABASE=RV250/M9 [Mobility Radeon 9000] (Secondary) +@@ -3063,19 +3063,19 @@ pci:v00001002d00004E44* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] + + pci:v00001002d00004E44sv00001002sd0000515E* +- ID_MODEL_FROM_DATABASE=Radeon ES1000 ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) + + pci:v00001002d00004E44sv00001002sd00005965* +- ID_MODEL_FROM_DATABASE=Radeon ES1000 ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) + + pci:v00001002d00004E45* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] + + pci:v00001002d00004E45sv00001002sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Radeon R300 NE [Radeon 9500 Pro]) + + pci:v00001002d00004E45sv00001681sd00000002* +- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro]) + + pci:v00001002d00004E46* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9600 TX] +@@ -3093,7 +3093,7 @@ pci:v00001002d00004E4A* + ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] + + pci:v00001002d00004E4Asv00001002sd00004E4A* +- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] ++ ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] (R360 [Radeon 9800 XT]) + + pci:v00001002d00004E4B* + ID_MODEL_FROM_DATABASE=R350 GL [FireGL X2 AGP Pro] +@@ -3102,22 +3102,22 @@ pci:v00001002d00004E50* + ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] + + pci:v00001002d00004E50sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (TravelMate 290) + + pci:v00001002d00004E50sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC8000 laptop) + + pci:v00001002d00004E50sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC6000 laptop) + + pci:v00001002d00004E50sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P35 notebook ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (P35 notebook) + + pci:v00001002d00004E50sv00001462sd00000311* +- ID_MODEL_FROM_DATABASE=MSI M510A ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (MSI M510A) + + pci:v00001002d00004E50sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420W ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (Amilo M1420W) + + pci:v00001002d00004E51* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] +@@ -3126,7 +3126,7 @@ pci:v00001002d00004E52* + ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] + + pci:v00001002d00004E52sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P35 notebook ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] (P35 notebook) + + pci:v00001002d00004E54* + ID_MODEL_FROM_DATABASE=RV350/M10 GL [Mobility FireGL T2] +@@ -3141,10 +3141,10 @@ pci:v00001002d00004E65* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) + + pci:v00001002d00004E65sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Radeon R300 NE [Radeon 9500 Pro]) + + pci:v00001002d00004E65sv00001681sd00000003* +- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary) ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary)) + + pci:v00001002d00004E66* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) +@@ -3162,10 +3162,10 @@ pci:v00001002d00004E6A* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) + + pci:v00001002d00004E6Asv00001002sd00004E6A* +- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (R360 [Radeon 9800 XT] (Secondary)) + + pci:v00001002d00004E6Asv00001002sd00004E71* +- ID_MODEL_FROM_DATABASE=M10 NQ [Radeon Mobility 9600] ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (M10 NQ [Radeon Mobility 9600]) + + pci:v00001002d00004E71* + ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600] (Secondary) +@@ -3180,46 +3180,46 @@ pci:v00001002d00005044* + ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI + + pci:v00001002d00005044sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) + + pci:v00001002d00005044sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) + + pci:v00001002d00005046* + ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS + + pci:v00001002d00005046sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) + + pci:v00001002d00005046sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005046sv00001002sd00000014* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) + + pci:v00001002d00005046sv00001002sd00000018* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005046sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) + + pci:v00001002d00005046sv00001002sd0000002A* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) + + pci:v00001002d00005046sv00001002sd00000048* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) + + pci:v00001002d00005046sv00001002sd00002000* +- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (VGA device) ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (VGA device)) + + pci:v00001002d00005046sv00001002sd00002001* +- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (Extra device?!) ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (Extra device?!)) + + pci:v00001002d00005050* + ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] + + pci:v00001002d00005050sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 128 ++ ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] (Xpert 128) + + pci:v00001002d00005052* + ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4X TMDS +@@ -3228,79 +3228,79 @@ pci:v00001002d00005144* + ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] + + pci:v00001002d00005144sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon VE) + + pci:v00001002d00005144sv00001002sd00000009* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000000A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000001A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Radeon AIW ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) + + pci:v00001002d00005144sv00001002sd00000038* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd00000039* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000008A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd000000BA* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd00000139* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000028A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd000002AA* +- ID_MODEL_FROM_DATABASE=Radeon AIW ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) + + pci:v00001002d00005144sv00001002sd0000053A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005148* + ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] + + pci:v00001002d00005148sv00001002sd0000010A* +- ID_MODEL_FROM_DATABASE=FireGL 8800 64Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 64Mb) + + pci:v00001002d00005148sv00001002sd00000152* +- ID_MODEL_FROM_DATABASE=FireGL 8800 128Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 128Mb) + + pci:v00001002d00005148sv00001002sd00000162* +- ID_MODEL_FROM_DATABASE=FireGL 8700 32Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 32Mb) + + pci:v00001002d00005148sv00001002sd00000172* +- ID_MODEL_FROM_DATABASE=FireGL 8700 64Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 64Mb) + + pci:v00001002d0000514C* + ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] + + pci:v00001002d0000514Csv00001002sd0000003A* +- ID_MODEL_FROM_DATABASE=Radeon R200 QL [Radeon 8500 LE] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [Radeon 8500 LE]) + + pci:v00001002d0000514Csv00001002sd0000013A* +- ID_MODEL_FROM_DATABASE=Radeon 8500 ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500) + + pci:v00001002d0000514Csv0000148Csd00002026* +- ID_MODEL_FROM_DATABASE=R200 QL [Radeon 8500 Evil Master II Multi Display Edition] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (R200 QL [Radeon 8500 Evil Master II Multi Display Edition]) + + pci:v00001002d0000514Csv00001681sd00000010* +- ID_MODEL_FROM_DATABASE=Radeon 8500 [3D Prophet 8500 128Mb] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 [3D Prophet 8500 128Mb]) + + pci:v00001002d0000514Csv0000174Bsd00007149* +- ID_MODEL_FROM_DATABASE=Radeon 8500 LE ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 LE) + + pci:v00001002d0000514Csv00001787sd00000F08* +- ID_MODEL_FROM_DATABASE=Radeon R200 QL [PowerMagic Radeon 8500] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [PowerMagic Radeon 8500]) + + pci:v00001002d0000514D* + ID_MODEL_FROM_DATABASE=R200 [Radeon 9100] +@@ -3309,196 +3309,196 @@ pci:v00001002d00005157* + ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] + + pci:v00001002d00005157sv00001002sd0000013A* +- ID_MODEL_FROM_DATABASE=Radeon 7500 ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500) + + pci:v00001002d00005157sv00001002sd00000F2B* +- ID_MODEL_FROM_DATABASE=ALL-IN-WONDER VE PCI ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (ALL-IN-WONDER VE PCI) + + pci:v00001002d00005157sv00001002sd0000103A* +- ID_MODEL_FROM_DATABASE=Dell Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Dell Optiplex GX260) + + pci:v00001002d00005157sv00001458sd00004000* +- ID_MODEL_FROM_DATABASE=RV200 QW [RADEON 7500 PRO MAYA AR] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [RADEON 7500 PRO MAYA AR]) + + pci:v00001002d00005157sv0000148Csd00002024* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500LE Dual Display] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500LE Dual Display]) + + pci:v00001002d00005157sv0000148Csd00002025* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 Evil Master Multi Display Edition] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 Evil Master Multi Display Edition]) + + pci:v00001002d00005157sv0000148Csd00002036* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 PCI Dual Display] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 PCI Dual Display]) + + pci:v00001002d00005157sv0000174Bsd00007146* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 LE] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 LE]) + + pci:v00001002d00005157sv0000174Bsd00007147* +- ID_MODEL_FROM_DATABASE=Radeon 7500 LE ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500 LE) + + pci:v00001002d00005157sv0000174Bsd00007161* +- ID_MODEL_FROM_DATABASE=Radeon RV200 QW [Radeon 7500 LE] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon RV200 QW [Radeon 7500 LE]) + + pci:v00001002d00005157sv000017AFsd00000202* +- ID_MODEL_FROM_DATABASE=RV200 QW [Excalibur Radeon 7500LE] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Excalibur Radeon 7500LE]) + + pci:v00001002d00005159* + ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] + + pci:v00001002d00005159sv00001002sd0000000A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd0000000B* +- ID_MODEL_FROM_DATABASE=Radeon 7000 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) + + pci:v00001002d00005159sv00001002sd00000038* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd0000003A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd000000BA* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd0000013A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd00000908* +- ID_MODEL_FROM_DATABASE=XVR-100 (supplied by Sun) ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (XVR-100 (supplied by Sun)) + + pci:v00001002d00005159sv00001014sd0000029A* +- ID_MODEL_FROM_DATABASE=Remote Supervisor Adapter II (RSA2) ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Remote Supervisor Adapter II (RSA2)) + + pci:v00001002d00005159sv00001014sd000002C8* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (eServer xSeries server mainboard) + + pci:v00001002d00005159sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Embedded Radeon 7000/VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 1850 Embedded Radeon 7000/VE) + + pci:v00001002d00005159sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Embedded Radeon 7000-M ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 2850 Embedded Radeon 7000-M) + + pci:v00001002d00005159sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Embedded Radeon 7000/VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 6850 Embedded Radeon 7000/VE) + + pci:v00001002d00005159sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge SC1425) + + pci:v00001002d00005159sv0000103Csd00001292* +- ID_MODEL_FROM_DATABASE=Radeon 7000 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) + + pci:v00001002d00005159sv00001043sd0000C00A* +- ID_MODEL_FROM_DATABASE=A7000/T/64M ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (A7000/T/64M) + + pci:v00001002d00005159sv00001458sd00004002* +- ID_MODEL_FROM_DATABASE=RV100 QY [RADEON 7000 PRO MAYA AV Series] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [RADEON 7000 PRO MAYA AV Series]) + + pci:v00001002d00005159sv0000148Csd00002003* +- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Multi-Display Edition] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Multi-Display Edition]) + + pci:v00001002d00005159sv0000148Csd00002023* +- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Evil Master Multi-Display] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Evil Master Multi-Display]) + + pci:v00001002d00005159sv0000174Bsd00000280* +- ID_MODEL_FROM_DATABASE=Radeon RV100 QY [Radeon 7000/VE] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon RV100 QY [Radeon 7000/VE]) + + pci:v00001002d00005159sv0000174Bsd00007112* +- ID_MODEL_FROM_DATABASE=Radeon VE 7000 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000) + + pci:v00001002d00005159sv0000174Bsd00007C28* +- ID_MODEL_FROM_DATABASE=Radeon VE 7000 DDR ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000 DDR) + + pci:v00001002d00005159sv00001787sd00000202* +- ID_MODEL_FROM_DATABASE=RV100 QY [Excalibur Radeon 7000] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Excalibur Radeon 7000]) + + pci:v00001002d00005159sv000017EEsd00001001* +- ID_MODEL_FROM_DATABASE=Radeon 7000 64MB DDR + DVI ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000 64MB DDR + DVI) + + pci:v00001002d0000515E* + ID_MODEL_FROM_DATABASE=ES1000 + + pci:v00001002d0000515Esv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 1955 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge SC440) + + pci:v00001002d0000515Esv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 860) + + pci:v00001002d0000515Esv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R900 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 2970 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T605 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R300 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T300 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R805 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000223* +- ID_MODEL_FROM_DATABASE=PowerEdge R905 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R905 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T105 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R200 Embedded ATI ES1000) + + pci:v00001002d0000515Esv0000103Csd00001304* +- ID_MODEL_FROM_DATABASE=Integrity iLO2 Advanced KVM VGA [AD307A] ++ ID_MODEL_FROM_DATABASE=ES1000 (Integrity iLO2 Advanced KVM VGA [AD307A]) + + pci:v00001002d0000515Esv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=ES1000 (X7DVL-E-O motherboard) + + pci:v00001002d0000515Esv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=ES1000 (X7DBN Motherboard) + + pci:v00001002d0000515Esv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=ES1000 (S5000PSLSATA Server Board) + + pci:v00001002d00005245* + ID_MODEL_FROM_DATABASE=Rage 128 GL PCI + + pci:v00001002d00005245sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 128 ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Xpert 128) + + pci:v00001002d00005245sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) + + pci:v00001002d00005245sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) + + pci:v00001002d00005245sv00001002sd00000068* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) + + pci:v00001002d00005246* + ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x + + pci:v00001002d00005246sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Magnum/Xpert 128/Xpert 99 ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert 128/Xpert 99) + + pci:v00001002d00005246sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Magnum/Xpert128/X99/Xpert2000 ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert128/X99/Xpert2000) + + pci:v00001002d00005246sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) + + pci:v00001002d00005246sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury/Xpert 128/Xpert 2000) + + pci:v00001002d00005246sv00001002sd00000068* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) + + pci:v00001002d00005246sv00001002sd00000448* +- ID_MODEL_FROM_DATABASE=Rage Fury ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury) + + pci:v00001002d0000524B* + ID_MODEL_FROM_DATABASE=Rage 128 VR PCI +@@ -3507,73 +3507,73 @@ pci:v00001002d0000524C* + ID_MODEL_FROM_DATABASE=Rage 128 VR AGP + + pci:v00001002d0000524Csv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99/Xpert 2000) + + pci:v00001002d0000524Csv00001002sd00000088* +- ID_MODEL_FROM_DATABASE=Xpert 99 ++ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99) + + pci:v00001002d00005346* + ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x + + pci:v00001002d00005346sv00001002sd00000048* +- ID_MODEL_FROM_DATABASE=RAGE 128 16MB VGA TVOUT AMC PAL ++ ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x (RAGE 128 16MB VGA TVOUT AMC PAL) + + pci:v00001002d0000534D* + ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x + + pci:v00001002d0000534Dsv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 99/Xpert 2000) + + pci:v00001002d0000534Dsv00001002sd00000018* +- ID_MODEL_FROM_DATABASE=Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 2000) + + pci:v00001002d00005354* + ID_MODEL_FROM_DATABASE=Mach 64 VT + + pci:v00001002d00005354sv00001002sd00005654* +- ID_MODEL_FROM_DATABASE=Mach 64 reference ++ ID_MODEL_FROM_DATABASE=Mach 64 VT (Mach 64 reference) + + pci:v00001002d00005446* + ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x + + pci:v00001002d00005446sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro) + + pci:v00001002d00005446sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005446sv00001002sd00000018* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005446sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) + + pci:v00001002d00005446sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) + + pci:v00001002d00005446sv00001002sd0000002A* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) + + pci:v00001002d00005446sv00001002sd0000002B* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) + + pci:v00001002d00005446sv00001002sd00000048* +- ID_MODEL_FROM_DATABASE=Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Xpert 2000 Pro) + + pci:v00001002d00005452* + ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP + + pci:v00001002d00005452sv00001002sd0000001C* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) + + pci:v00001002d00005452sv0000103Csd00001279* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) + + pci:v00001002d00005460* + ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] + + pci:v00001002d00005460sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] (CR11/VR11 Single Board Computer) + + pci:v00001002d00005461* + ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] +@@ -3594,16 +3594,16 @@ pci:v00001002d0000554B* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] + + pci:v00001002d0000554Bsv00001002sd00000302* +- ID_MODEL_FROM_DATABASE=Radeon X800 SE ++ ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] (Radeon X800 SE) + + pci:v00001002d0000554D* + ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] + + pci:v00001002d0000554Dsv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 XL ++ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (All-In-Wonder X800 XL) + + pci:v00001002d0000554Dsv00001458sd00002124* +- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) ++ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (GV-R80L256V-B (AGP)) + + pci:v00001002d0000554E* + ID_MODEL_FROM_DATABASE=R430 [All-In-Wonder X800 GT] +@@ -3627,7 +3627,7 @@ pci:v00001002d0000556D* + ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) + + pci:v00001002d0000556Dsv00001458sd00002125* +- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) ++ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) (GV-R80L256V-B (AGP)) + + pci:v00001002d0000556F* + ID_MODEL_FROM_DATABASE=R430 [Radeon X800] (Secondary) +@@ -3648,16 +3648,16 @@ pci:v00001002d00005653* + ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] + + pci:v00001002d00005653sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (Aspire 5024WLMi) + + pci:v00001002d00005653sv0000103Csd00000940* +- ID_MODEL_FROM_DATABASE=HP Compaq NW8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (HP Compaq NW8240 Mobile Workstation) + + pci:v00001002d00005654* + ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] + + pci:v00001002d00005654sv00001002sd00005654* +- ID_MODEL_FROM_DATABASE=Mach64VT Reference ++ ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] (Mach64VT Reference) + + pci:v00001002d00005655* + ID_MODEL_FROM_DATABASE=264VT3 [Mach64 VT3] +@@ -3699,22 +3699,22 @@ pci:v00001002d00005940* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) + + pci:v00001002d00005940sv000017AFsd00002021* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) (Excalibur Radeon 9250 (Secondary)) + + pci:v00001002d00005941* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) + + pci:v00001002d00005941sv00001458sd00004019* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) + + pci:v00001002d00005941sv0000174Bsd00007C12* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) + + pci:v00001002d00005941sv000017AFsd0000200D* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Excalibur Radeon 9200) + + pci:v00001002d00005941sv000018BCsd00000050* +- ID_MODEL_FROM_DATABASE=GC-R9200-C3 (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (GC-R9200-C3 (Secondary)) + + pci:v00001002d00005944* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE PCI] +@@ -3723,22 +3723,22 @@ pci:v00001002d00005950* + ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge + + pci:v00001002d00005950sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire 5024WLMMi) + + pci:v00001002d00005950sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (DC5750 Microtower) + + pci:v00001002d00005950sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Pavilion t3030.de Desktop PC) + + pci:v00001002d00005950sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MX6125) + + pci:v00001002d00005950sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MS-1013 Notebook) + + pci:v00001002d00005950sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire L250) + + pci:v00001002d00005951* + ID_MODEL_FROM_DATABASE=RX480/RX482 Host Bridge +@@ -3750,19 +3750,19 @@ pci:v00001002d00005954* + ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] + + pci:v00001002d00005954sv00001002sd00005954* +- ID_MODEL_FROM_DATABASE=RV370 [Radeon Xpress 200G Series] ++ ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] (RV370 [Radeon Xpress 200G Series]) + + pci:v00001002d00005955* + ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] + + pci:v00001002d00005955sv00001002sd00005955* +- ID_MODEL_FROM_DATABASE=RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)] ++ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]) + + pci:v00001002d00005955sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MX6125) + + pci:v00001002d00005955sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MS-1013 Notebook) + + pci:v00001002d00005956* + ID_MODEL_FROM_DATABASE=RD790 Host Bridge +@@ -3771,7 +3771,7 @@ pci:v00001002d00005957* + ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge + + pci:v00001002d00005957sv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge (A770CrossFire Motherboard) + + pci:v00001002d00005958* + ID_MODEL_FROM_DATABASE=RD780 Host Bridge +@@ -3780,37 +3780,37 @@ pci:v00001002d00005960* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] + + pci:v00001002d00005960sv000017AFsd00002020* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Excalibur Radeon 9250) + + pci:v00001002d00005961* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] + + pci:v00001002d00005961sv00001002sd00002F72* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 9200 Series ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (All-in-Wonder 9200 Series) + + pci:v00001002d00005961sv00001019sd00004C30* +- ID_MODEL_FROM_DATABASE=Radeon 9200 VIVO ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 VIVO) + + pci:v00001002d00005961sv000012ABsd00005961* +- ID_MODEL_FROM_DATABASE=YUAN SMARTVGA Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (YUAN SMARTVGA Radeon 9200) + + pci:v00001002d00005961sv00001458sd00004018* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) + + pci:v00001002d00005961sv0000174Bsd00007C13* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) + + pci:v00001002d00005961sv000017AFsd0000200C* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Excalibur Radeon 9200) + + pci:v00001002d00005961sv000018BCsd00000050* +- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster) + + pci:v00001002d00005961sv000018BCsd00000051* +- ID_MODEL_FROM_DATABASE=GC-R9200-C3 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (GC-R9200-C3) + + pci:v00001002d00005961sv000018BCsd00000053* +- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster VIVO ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster VIVO) + + pci:v00001002d00005962* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] +@@ -3819,37 +3819,37 @@ pci:v00001002d00005964* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] + + pci:v00001002d00005964sv00001002sd00005964* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz) + + pci:v00001002d00005964sv00001043sd0000C006* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE / TD / 128M ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE / TD / 128M) + + pci:v00001002d00005964sv00001458sd00004018* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) + + pci:v00001002d00005964sv00001458sd00004032* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE 128MB) + + pci:v00001002d00005964sv0000147Bsd00006191* +- ID_MODEL_FROM_DATABASE=R9200SE-DT ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (R9200SE-DT) + + pci:v00001002d00005964sv0000148Csd00002073* +- ID_MODEL_FROM_DATABASE=CN-AG92E ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (CN-AG92E) + + pci:v00001002d00005964sv0000174Bsd00007C13* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) + + pci:v00001002d00005964sv00001787sd00005964* +- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Excalibur 9200SE VIVO 128M) + + pci:v00001002d00005964sv000017AFsd00002012* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE Excalibur) + + pci:v00001002d00005964sv000018BCsd00000170* +- ID_MODEL_FROM_DATABASE=Sapphire Radeon 9200 SE 128MB Game Buster ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Sapphire Radeon 9200 SE 128MB Game Buster) + + pci:v00001002d00005964sv000018BCsd00000173* +- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) + + pci:v00001002d00005965* + ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] +@@ -3858,10 +3858,10 @@ pci:v00001002d00005974* + ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] + + pci:v00001002d00005974sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (DC5750 Microtower) + + pci:v00001002d00005974sv00001462sd00007141* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (Aspire L250) + + pci:v00001002d00005975* + ID_MODEL_FROM_DATABASE=RS482M [Mobility Radeon Xpress 200] +@@ -3870,7 +3870,7 @@ pci:v00001002d00005978* + ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) + + pci:v00001002d00005978sv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) (A770CrossFire Motherboard) + + pci:v00001002d00005979* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx0 port B) +@@ -3891,13 +3891,13 @@ pci:v00001002d0000597E* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) + + pci:v00001002d0000597Esv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) (A770CrossFire Motherboard) + + pci:v00001002d0000597F* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) + + pci:v00001002d0000597Fsv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) (A770CrossFire Motherboard) + + pci:v00001002d00005980* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx1 port A) +@@ -3918,7 +3918,7 @@ pci:v00001002d00005A12* + ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part + + pci:v00001002d00005A12sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part (H8DGU) + + pci:v00001002d00005A13* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (external gfx0 port A) +@@ -3939,7 +3939,7 @@ pci:v00001002d00005A18* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) + + pci:v00001002d00005A18sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) (H8DGU) + + pci:v00001002d00005A19* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port E) +@@ -3963,7 +3963,7 @@ pci:v00001002d00005A1F* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) + + pci:v00001002d00005A1Fsv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) (H8DGU) + + pci:v00001002d00005A20* + ID_MODEL_FROM_DATABASE=RD890S PCI Express bridge for GPP2 port 1 +@@ -3996,7 +3996,7 @@ pci:v00001002d00005A3F* + ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] + + pci:v00001002d00005A3Fsv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] (Aspire L250) + + pci:v00001002d00005A41* + ID_MODEL_FROM_DATABASE=RS400 [Radeon Xpress 200] +@@ -4014,25 +4014,25 @@ pci:v00001002d00005B60* + ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] + + pci:v00001002d00005B60sv00001043sd0000002A* +- ID_MODEL_FROM_DATABASE=Extreme AX300SE-X ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300SE-X) + + pci:v00001002d00005B60sv00001043sd0000032E* +- ID_MODEL_FROM_DATABASE=Extreme AX300/TD ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300/TD) + + pci:v00001002d00005B60sv00001458sd00002102* +- ID_MODEL_FROM_DATABASE=GV-RX30S128D (X300SE) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (GV-RX30S128D (X300SE)) + + pci:v00001002d00005B60sv00001462sd00000400* +- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940 REV:200) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940 REV:200)) + + pci:v00001002d00005B60sv00001462sd00000402* +- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940)) + + pci:v00001002d00005B60sv0000174Bsd00000500* +- ID_MODEL_FROM_DATABASE=Radeon X300 (PCIE) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Radeon X300 (PCIE)) + + pci:v00001002d00005B60sv0000196Dsd00001086* +- ID_MODEL_FROM_DATABASE=X300SE HM ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (X300SE HM) + + pci:v00001002d00005B62* + ID_MODEL_FROM_DATABASE=RV370 [Radeon X600/X600 SE] +@@ -4053,13 +4053,13 @@ pci:v00001002d00005B70* + ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] + + pci:v00001002d00005B70sv00001462sd00000403* +- ID_MODEL_FROM_DATABASE=Radeon X300 SE 128MB DDR ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE 128MB DDR) + + pci:v00001002d00005B70sv0000174Bsd00000501* +- ID_MODEL_FROM_DATABASE=Radeon X300 SE ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE) + + pci:v00001002d00005B70sv0000196Dsd00001087* +- ID_MODEL_FROM_DATABASE=Radeon X300 SE HyperMemory ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE HyperMemory) + + pci:v00001002d00005B72* + ID_MODEL_FROM_DATABASE=RV380 [Radeon X300/X550/X1050 Series] (Secondary) +@@ -4080,37 +4080,37 @@ pci:v00001002d00005C63* + ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] + + pci:v00001002d00005C63sv00001002sd00005C63* +- ID_MODEL_FROM_DATABASE=Apple iBook G4 2004 ++ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (Apple iBook G4 2004) + + pci:v00001002d00005C63sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (P30 notebook) + + pci:v00001002d00005D44* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) + + pci:v00001002d00005D44sv00001458sd00004019* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) + + pci:v00001002d00005D44sv00001458sd00004032* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB) + + pci:v00001002d00005D44sv0000147Bsd00006190* +- ID_MODEL_FROM_DATABASE=R9200SE-DT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (R9200SE-DT (Secondary)) + + pci:v00001002d00005D44sv0000174Bsd00007C12* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) + + pci:v00001002d00005D44sv00001787sd00005965* +- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Excalibur 9200SE VIVO 128M (Secondary)) + + pci:v00001002d00005D44sv000017AFsd00002013* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE Excalibur (Secondary)) + + pci:v00001002d00005D44sv000018BCsd00000171* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB Game Buster (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB Game Buster (Secondary)) + + pci:v00001002d00005D44sv000018BCsd00000172* +- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) + + pci:v00001002d00005D45* + ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] (Secondary) +@@ -4140,7 +4140,7 @@ pci:v00001002d00005D52* + ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] + + pci:v00001002d00005D52sv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Primary) ++ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (PowerColor X850XT PCIe (Primary)) + + pci:v00001002d00005D57* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] +@@ -4155,7 +4155,7 @@ pci:v00001002d00005D72* + ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) + + pci:v00001002d00005D72sv00001002sd00000B13* +- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Secondary) ++ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) (PowerColor X850XT PCIe (Secondary)) + + pci:v00001002d00005D77* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] (Secondary) +@@ -4179,13 +4179,13 @@ pci:v00001002d00005E4D* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] + + pci:v00001002d00005E4Dsv0000148Csd00002116* +- ID_MODEL_FROM_DATABASE=Bravo X700 ++ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Bravo X700) + + pci:v00001002d00005E4F* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] + + pci:v00001002d00005E4Fsv00001569sd00001E4F* +- ID_MODEL_FROM_DATABASE=Radeon X550 XT ++ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Radeon X550 XT) + + pci:v00001002d00005E6B* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700 PRO] (Secondary) +@@ -4194,7 +4194,7 @@ pci:v00001002d00005E6D* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) + + pci:v00001002d00005E6Dsv0000148Csd00002117* +- ID_MODEL_FROM_DATABASE=Bravo X700 (Secondary) ++ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) (Bravo X700 (Secondary)) + + pci:v00001002d00005F57* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] +@@ -4206,7 +4206,7 @@ pci:v00001002d00006601* + ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] + + pci:v00001002d00006601sv0000103Csd00002100* +- ID_MODEL_FROM_DATABASE=FirePro M4100 ++ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] (FirePro M4100) + + pci:v00001002d00006602* + ID_MODEL_FROM_DATABASE=Mars +@@ -4230,40 +4230,40 @@ pci:v00001002d00006610* + ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] + + pci:v00001002d00006610sv00001019sd00000030* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001028sd00002120* +- ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) + + pci:v00001002d00006610sv00001028sd00002322* +- ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) + + pci:v00001002d00006610sv00001462sd00002910* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001462sd00002911* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001642sd00003C81* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001642sd00003C91* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006611* + ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] + + pci:v00001002d00006611sv00001028sd0000210B* +- ID_MODEL_FROM_DATABASE=Radeon R5 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R5 240 OEM) + + pci:v00001002d00006611sv0000174Bsd00004248* +- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) + + pci:v00001002d00006611sv0000174Bsd0000A240* +- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) + + pci:v00001002d00006611sv00001B0Asd000090D3* +- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) + + pci:v00001002d00006613* + ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] +@@ -4302,28 +4302,28 @@ pci:v00001002d0000665C* + ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] + + pci:v00001002d0000665Csv00001043sd00000452* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 DirectCU II OC ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 DirectCU II OC) + + pci:v00001002d0000665Csv00001462sd00002930* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 OC ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 OC) + + pci:v00001002d0000665Csv00001462sd00002932* +- ID_MODEL_FROM_DATABASE=Radeon HD 8770 ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 8770) + + pci:v00001002d0000665Csv00001462sd00002934* +- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) + + pci:v00001002d0000665Csv0000148Csd00009260* +- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) + + pci:v00001002d0000665Csv00001682sd00003310* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Black Edition 2 GB ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Black Edition 2 GB) + + pci:v00001002d0000665Csv0000174Bsd0000E253* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Dual-X OC ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Dual-X OC) + + pci:v00001002d0000665Csv00001787sd00002329* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 TurboDuo ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 TurboDuo) + + pci:v00001002d0000665D* + ID_MODEL_FROM_DATABASE=Bonaire [Radeon R7 200 Series] +@@ -4335,7 +4335,7 @@ pci:v00001002d00006663* + ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] + + pci:v00001002d00006663sv00001025sd00000846* +- ID_MODEL_FROM_DATABASE=Radeon HD 8570A ++ ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] (Radeon HD 8570A) + + pci:v00001002d00006664* + ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] +@@ -4377,34 +4377,34 @@ pci:v00001002d00006720* + ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] + + pci:v00001002d00006720sv00001028sd0000048F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv00001028sd00000490* +- ID_MODEL_FROM_DATABASE=Alienware M17x R3 Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Alienware M17x R3 Radeon HD 6970M) + + pci:v00001002d00006720sv00001028sd000004A4* +- ID_MODEL_FROM_DATABASE=FirePro M8900 ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) + + pci:v00001002d00006720sv00001028sd000004BA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv00001028sd0000053F* +- ID_MODEL_FROM_DATABASE=FirePro M8900 ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) + + pci:v00001002d00006720sv0000106Bsd00000B00* +- ID_MODEL_FROM_DATABASE=Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) + + pci:v00001002d00006720sv00001558sd00005102* +- ID_MODEL_FROM_DATABASE=Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) + + pci:v00001002d00006720sv00001558sd00005104* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv00001558sd00007201* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv0000174Bsd0000E188* +- ID_MODEL_FROM_DATABASE=Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) + + pci:v00001002d00006724* + ID_MODEL_FROM_DATABASE=Blackcomb [Mobility Radeon HD 6000 series] +@@ -4416,511 +4416,511 @@ pci:v00001002d00006738* + ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] + + pci:v00001002d00006738sv00001682sd00003103* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Radeon HD 8670) + + pci:v00001002d00006738sv00001787sd0000201A* +- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] ++ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) + + pci:v00001002d00006738sv00001787sd0000201B* +- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] ++ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) + + pci:v00001002d00006739* + ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] + + pci:v00001002d00006739sv00001043sd000003B4* +- ID_MODEL_FROM_DATABASE=EAH6850 [Radeon HD 6850] ++ ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] (EAH6850 [Radeon HD 6850]) + + pci:v00001002d0000673E* + ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] + + pci:v00001002d0000673Esv0000148Csd00007720* +- ID_MODEL_FROM_DATABASE=Radeon HD 7720 OEM ++ ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] (Radeon HD 7720 OEM) + + pci:v00001002d00006740* + ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] + + pci:v00001002d00006740sv00001019sd0000238C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001019sd00002391* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001019sd00002392* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Precision M4600) + + pci:v00001002d00006740sv00001028sd0000053E* +- ID_MODEL_FROM_DATABASE=FirePro M5950 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) + + pci:v00001002d00006740sv0000103Csd00001630* +- ID_MODEL_FROM_DATABASE=FirePro M5950 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) + + pci:v00001002d00006740sv0000103Csd00001631* +- ID_MODEL_FROM_DATABASE=FirePro M5950 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) + + pci:v00001002d00006740sv0000103Csd0000164B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000103Csd0000164E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000103Csd00001657* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00001658* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000165A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000165B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00001688* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00001689* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000168A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000185E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7690M XT ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 7690M XT) + + pci:v00001002d00006740sv0000103Csd00003388* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00003389* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00003582* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000366C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001043sd00001D02* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001043sd00001D12* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000104Dsd00009084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000104Dsd00009085* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B074* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B077* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B088* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv000017AAsd00003982* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006741* + ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] + + pci:v00001002d00006741sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001019sd0000238F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000379* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000037B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000037E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000382* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000384* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000385* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000386* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000387* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000388* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000442* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000451* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000489* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000048B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000048C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000513* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000515* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000516* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000051E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000051F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000520* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000521* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000052A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000555* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000556* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000055D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000055E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000056D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000600* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000605* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000606* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000619* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001028sd000004C1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004C5* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004CD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004D7* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004D9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd0000052D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000103Csd00001617* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd00001646* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00001647* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd0000164B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd0000164E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd00001688* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00001689* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd0000168A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00001860* +- ID_MODEL_FROM_DATABASE=Radeon HD 7690M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7690M) + + pci:v00001002d00006741sv0000103Csd00003385* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000103Csd00003560* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd0000358D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00003590* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00003593* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd0000366C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00001CD2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002121* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002122* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002123* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002125* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) + + pci:v00001002d00006741sv00001043sd00002127* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) + + pci:v00001002d00006741sv0000104Dsd0000907B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000104Dsd00009080* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000106Bsd000000E2* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", Late 2011] ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (MacBookPro8,2 [Core i7, 15", Late 2011]) + + pci:v00001002d00006741sv00001179sd0000FD63* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001179sd0000FD65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000144Dsd0000C093* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000144Dsd0000C0AC* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000144Dsd0000C0B3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000144Dsd0000C539* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000144Dsd0000C609* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000152Dsd00000914* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv000017AAsd000021E1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv000017AAsd00003970* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv000017AAsd00003976* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001854sd00000907* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006742* + ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] + + pci:v00001002d00006742sv00001002sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00001019sd00002393* +- ID_MODEL_FROM_DATABASE=Radeon HD 6610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6610M) + + pci:v00001002d00006742sv00001043sd00001D82* +- ID_MODEL_FROM_DATABASE=K53SK Laptop Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (K53SK Laptop Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB22* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB23* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB27* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB2A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB2C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB30* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB31* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB32* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB38* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB39* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB3A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB3B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB40* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB41* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB47* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB48* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB49* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB51* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB53* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB81* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB82* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB83* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FC56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FCD4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FCEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001458sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00001462sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv0000148Csd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00001682sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv0000174Bsd00005570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 5570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 5570]) + + pci:v00001002d00006742sv0000174Bsd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv0000174Bsd00007570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 7570]) + + pci:v00001002d00006742sv0000174Bsd00008510* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8510] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8510]) + + pci:v00001002d00006742sv0000174Bsd00008570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8570]) + + pci:v00001002d00006742sv00001787sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv000017AFsd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Radeon HD 6625M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6625M) + + pci:v00001002d00006743* + ID_MODEL_FROM_DATABASE=Whistler [Radeon E6760] +@@ -4935,133 +4935,133 @@ pci:v00001002d00006750* + ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] + + pci:v00001002d00006750sv00001462sd00002670* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6670A) + + pci:v00001002d00006750sv000017AAsd00003079* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) + + pci:v00001002d00006750sv000017AAsd0000307A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006750sv000017AAsd00003087* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) + + pci:v00001002d00006750sv000017AAsd00003618* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006750sv000017AAsd00003623* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006750sv000017AAsd00003627* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006751* + ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] + + pci:v00001002d00006751sv00001028sd00000548* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006751sv00001462sd00002671* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) + + pci:v00001002d00006751sv00001462sd00002672* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) + + pci:v00001002d00006751sv00001462sd00002680* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006751sv00001462sd00002681* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006751sv000017AAsd00003087* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006758* + ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] + + pci:v00001002d00006758sv00001028sd00000B0E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006758sv0000103Csd00006882* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006758sv00001462sd0000250A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv0000148Csd00007670* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv00001545sd00007670* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv00001682sd00003300* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv0000174Bsd00007670* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv0000174Bsd0000E181* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006758sv00001787sd00002309* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006759* + ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] + + pci:v00001002d00006759sv0000103Csd00003130* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001043sd00000403* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001462sd00002500* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001462sd00002509* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv0000148Csd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv00001642sd00003A67* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001682sd00003280* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv00001682sd00003530* +- ID_MODEL_FROM_DATABASE=Radeon HD 8550 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 8550) + + pci:v00001002d00006759sv0000174Bsd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv0000174Bsd0000E142* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv0000174Bsd0000E181* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd0000908F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd00009090* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd00009091* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd00009092* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd0000909E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd000090B5* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv00001B0Asd000090B6* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d0000675B* + ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] +@@ -5073,526 +5073,526 @@ pci:v00001002d0000675F* + ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] + + pci:v00001002d0000675Fsv0000148Csd00006510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) + + pci:v00001002d0000675Fsv0000148Csd00006530* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6530) + + pci:v00001002d0000675Fsv0000148Csd00007510* +- ID_MODEL_FROM_DATABASE=Radeon HD 7510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) + + pci:v00001002d0000675Fsv00001545sd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7570) + + pci:v00001002d0000675Fsv0000174Bsd00006510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) + + pci:v00001002d0000675Fsv0000174Bsd00007510* +- ID_MODEL_FROM_DATABASE=Radeon HD 7510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) + + pci:v00001002d0000675Fsv0000174Bsd00008510* +- ID_MODEL_FROM_DATABASE=Radeon HD 8510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 8510) + + pci:v00001002d0000675Fsv00001787sd00002012* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 2GB GDDR3 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 2GB GDDR3) + + pci:v00001002d0000675Fsv00001787sd00002314* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 1GB DDR2/GDDR3 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 1GB DDR2/GDDR3) + + pci:v00001002d00006760* + ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] + + pci:v00001002d00006760sv00001002sd00000124* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001002sd00000134* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd0000238B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd00002390* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd00009985* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004C1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004C3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004CA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004CB* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004CC* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Vostro 3350) + + pci:v00001002d00006760sv00001028sd000004D1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004D3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004D7* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000502* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000503* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000506* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000507* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd0000051C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001028sd0000051D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv0000103Csd0000161A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000161B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000161E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000161F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001622* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv0000103Csd00001623* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv0000103Csd0000164A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000164D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001651* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001656* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00001658* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00001659* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000165B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000165D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000165F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001661* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001663* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001665* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001667* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001669* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000166B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000166C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000166E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001670* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001672* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000167A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000167B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000167D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000167F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000168C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000168F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001694* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001696* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001698* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000169A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000169C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00001855* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd00001859* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd0000185C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd0000185D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000103Csd0000185F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000103Csd00001863* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd0000355C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000355F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003563* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003565* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003567* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003569* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003581* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003584* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000358C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000358F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003592* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003596* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000366B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003671* +- ID_MODEL_FROM_DATABASE=FirePro M3900 ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (FirePro M3900) + + pci:v00001002d00006760sv0000103Csd00003673* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000100A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000100C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000101B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000101C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000102A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv00001043sd0000102C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000104B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000105D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000106B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000106D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000107D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00001CB2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00001D22* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00001D32* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00002001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00002002* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00002107* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00002108* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00002109* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd000084A0* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd000084E9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00008515* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00008517* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000855A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000104Dsd0000907B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000104Dsd00009084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000104Dsd00009085* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001179sd00000003* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001179sd00000004* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001179sd0000FB22* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB23* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB2C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB31* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB32* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB33* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB38* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB39* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB3A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB40* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB41* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB42* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB47* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB48* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB51* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB53* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB81* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB82* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB83* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FC51* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001179sd0000FC52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FC56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FCD3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FCD4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FCEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FDEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000144Dsd0000B074* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000B084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C095* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C0B3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000144Dsd0000C538* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C581* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C589* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C609* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000144Dsd0000C625* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000144Dsd0000C636* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv00001462sd000010AC* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000152Dsd00000916* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd000021E5* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd00003900* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00003902* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00003969* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd00003970* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00003976* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd0000397B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd0000397D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd00005101* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv000017AAsd00005102* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00005103* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00005106* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv00001854sd00000897* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001854sd00000900* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001854sd00000908* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001854sd00002015* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006761* + ID_MODEL_FROM_DATABASE=Seymour LP [Radeon HD 6430M] +@@ -5619,22 +5619,22 @@ pci:v00001002d00006770* + ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] + + pci:v00001002d00006770sv000017AAsd0000308D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7450A) + + pci:v00001002d00006770sv000017AAsd00003623* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd00003627* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd00003629* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd0000363C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd00003658* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7470A) + + pci:v00001002d00006771* + ID_MODEL_FROM_DATABASE=Caicos XTX [Radeon HD 8490 / R5 235X OEM] +@@ -5646,133 +5646,133 @@ pci:v00001002d00006778* + ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] + + pci:v00001002d00006778sv00001019sd00000024* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) + + pci:v00001002d00006778sv00001019sd00000027* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001028sd00002120* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) + + pci:v00001002d00006778sv00001462sd0000B491* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001462sd0000B492* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001462sd0000B493* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 OEM ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470 OEM) + + pci:v00001002d00006778sv00001642sd00003C65* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001642sd00003C75* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv0000174Bsd00008145* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv0000174Bsd0000E145* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) + + pci:v00001002d00006779* + ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] + + pci:v00001002d00006779sv00001019sd00000016* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001019sd00000017* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001019sd00000018* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001028sd00002120* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000103Csd00002128* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000103Csd00002AEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) + + pci:v00001002d00006779sv00001462sd00002125* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001462sd00002346* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv00001462sd00002490* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001462sd00002494* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001462sd00002496* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000148Csd00007450* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000148Csd00008450* +- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) + + pci:v00001002d00006779sv00001545sd00007470* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7470) + + pci:v00001002d00006779sv00001642sd00003A65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001642sd00003A66* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv00001642sd00003A75* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001642sd00003A76* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv00001682sd00003200* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000174Bsd00007450* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000174Bsd0000E164* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1 GB DDR3 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450 1 GB DDR3) + + pci:v00001002d00006779sv0000174Bsd0000E180* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000174Bsd0000E201* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv000017AFsd00008450* +- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) + + pci:v00001002d00006779sv00001B0Asd00009096* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001B0Asd00009097* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001B0Asd000090A8* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450A) + + pci:v00001002d00006779sv00001B0Asd000090B1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001B0Asd000090B3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) + + pci:v00001002d00006779sv00001B0Asd000090BB* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) + + pci:v00001002d0000677B* + ID_MODEL_FROM_DATABASE=Caicos PRO [Radeon HD 7450] +@@ -5790,25 +5790,25 @@ pci:v00001002d0000678A* + ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] + + pci:v00001002d0000678Asv00001002sd0000030C* +- ID_MODEL_FROM_DATABASE=FirePro W8000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) + + pci:v00001002d0000678Asv00001002sd00000310* +- ID_MODEL_FROM_DATABASE=FirePro S9000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S9000) + + pci:v00001002d0000678Asv00001002sd00000420* +- ID_MODEL_FROM_DATABASE=Radeon Sky 700 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 700) + + pci:v00001002d0000678Asv00001002sd00000422* +- ID_MODEL_FROM_DATABASE=Radeon Sky 900 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 900) + + pci:v00001002d0000678Asv00001002sd00000B0E* +- ID_MODEL_FROM_DATABASE=FirePro S10000 Passive ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000 Passive) + + pci:v00001002d0000678Asv00001002sd00000B2A* +- ID_MODEL_FROM_DATABASE=FirePro S10000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000) + + pci:v00001002d0000678Asv00001028sd0000030C* +- ID_MODEL_FROM_DATABASE=FirePro W8000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) + + pci:v00001002d00006790* + ID_MODEL_FROM_DATABASE=Tahiti +@@ -5823,67 +5823,67 @@ pci:v00001002d00006798* + ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] + + pci:v00001002d00006798sv00001002sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) + + pci:v00001002d00006798sv00001002sd00003001* +- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X]) + + pci:v00001002d00006798sv00001002sd00004000* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970 OEM ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 8970 OEM) + + pci:v00001002d00006798sv00001043sd0000041C* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II) + + pci:v00001002d00006798sv00001043sd00000420* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) + + pci:v00001002d00006798sv00001043sd00000444* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) + + pci:v00001002d00006798sv00001043sd00000448* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) + + pci:v00001002d00006798sv00001043sd0000044A* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970]) + + pci:v00001002d00006798sv00001043sd0000044C* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970 Platinum] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970 Platinum]) + + pci:v00001002d00006798sv00001043sd00003001* +- ID_MODEL_FROM_DATABASE=Tahiti XTL [ROG Matrix R9 280X] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [ROG Matrix R9 280X]) + + pci:v00001002d00006798sv00001043sd00003006* +- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X DirectCU II TOP] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X DirectCU II TOP]) + + pci:v00001002d00006798sv00001043sd00009999* +- ID_MODEL_FROM_DATABASE=ARES II ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (ARES II) + + pci:v00001002d00006798sv00001092sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) + + pci:v00001002d00006798sv00001458sd00002261* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition OC]) + + pci:v00001002d00006798sv00001462sd00002774* +- ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (MSI R7970 TF 3GD5/OC BE) + + pci:v00001002d00006798sv00001682sd00003211* +- ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970 Black Edition) + + pci:v00001002d00006798sv00001682sd00003213* +- ID_MODEL_FROM_DATABASE=HD 7970 Black Edition ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 Black Edition) + + pci:v00001002d00006798sv00001682sd00003214* +- ID_MODEL_FROM_DATABASE=Double D HD 7970 ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970) + + pci:v00001002d00006798sv00001787sd0000201C* +- ID_MODEL_FROM_DATABASE=HD 7970 IceQ X² ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 IceQ X²) + + pci:v00001002d00006798sv00001787sd00002317* +- ID_MODEL_FROM_DATABASE=Radeon HD 7990 ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 7990) + + pci:v00001002d00006798sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) + + pci:v00001002d00006799* + ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] +@@ -5892,28 +5892,28 @@ pci:v00001002d0000679A* + ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] + + pci:v00001002d0000679Asv00001002sd00000B01* +- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) + + pci:v00001002d0000679Asv00001002sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti PRO2 [Radeon HD 7950 Boost] ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Tahiti PRO2 [Radeon HD 7950 Boost]) + + pci:v00001002d0000679Asv00001462sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) + + pci:v00001002d0000679B* + ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] + + pci:v00001002d0000679Bsv00001002sd00000B28* +- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) + + pci:v00001002d0000679Bsv00001002sd00000B2A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7990 ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 7990) + + pci:v00001002d0000679Bsv00001462sd00008036* +- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) + + pci:v00001002d0000679Bsv0000148Csd00008990* +- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) + + pci:v00001002d0000679E* + ID_MODEL_FROM_DATABASE=Tahiti LE [Radeon HD 7870 XT] +@@ -5955,28 +5955,28 @@ pci:v00001002d00006800* + ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] + + pci:v00001002d00006800sv00001002sd00000124* +- ID_MODEL_FROM_DATABASE=Radeon HD 7970M ++ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) + + pci:v00001002d00006800sv00008086sd00002110* +- ID_MODEL_FROM_DATABASE=Radeon HD 7970M ++ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) + + pci:v00001002d00006800sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Radeon HD 7970M ++ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) + + pci:v00001002d00006801* + ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] + + pci:v00001002d00006801sv00001002sd00000124* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970M ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) + + pci:v00001002d00006801sv00001462sd00001117* +- ID_MODEL_FROM_DATABASE=Radeon R9 M290X ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon R9 M290X) + + pci:v00001002d00006801sv00008086sd00002110* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970M ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) + + pci:v00001002d00006801sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970M ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) + + pci:v00001002d00006802* + ID_MODEL_FROM_DATABASE=Wimbledon +@@ -5988,10 +5988,10 @@ pci:v00001002d00006808* + ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] + + pci:v00001002d00006808sv00001002sd00000310* +- ID_MODEL_FROM_DATABASE=FirePro S7000 ++ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (FirePro S7000) + + pci:v00001002d00006808sv00001002sd00000420* +- ID_MODEL_FROM_DATABASE=Radeon Sky 500 ++ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (Radeon Sky 500) + + pci:v00001002d00006809* + ID_MODEL_FROM_DATABASE=Pitcairn LE GL [FirePro W5000] +@@ -6012,37 +6012,37 @@ pci:v00001002d00006818* + ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] + + pci:v00001002d00006818sv00001002sd00000B05* +- ID_MODEL_FROM_DATABASE=Radeon HD 8870 OEM ++ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8870 OEM) + + pci:v00001002d00006818sv0000174Bsd00008B04* +- ID_MODEL_FROM_DATABASE=Radeon HD 8860 ++ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8860) + + pci:v00001002d00006819* + ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] + + pci:v00001002d00006819sv0000174Bsd0000E221* +- ID_MODEL_FROM_DATABASE=Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP ++ ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) + + pci:v00001002d00006820* + ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] + + pci:v00001002d00006820sv0000103Csd00001851* +- ID_MODEL_FROM_DATABASE=Radeon HD 7750M ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) + + pci:v00001002d00006820sv000017AAsd00003801* +- ID_MODEL_FROM_DATABASE=Radeon R9 M275 ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) + + pci:v00001002d00006821* + ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] + + pci:v00001002d00006821sv00001002sd0000031E* +- ID_MODEL_FROM_DATABASE=FirePro SX4000 ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) + + pci:v00001002d00006821sv00001028sd000005CC* +- ID_MODEL_FROM_DATABASE=FirePro M5100 ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) + + pci:v00001002d00006821sv00001028sd000015CC* +- ID_MODEL_FROM_DATABASE=FirePro M5100 ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) + + pci:v00001002d00006822* + ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] +@@ -6054,7 +6054,7 @@ pci:v00001002d00006825* + ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] + + pci:v00001002d00006825sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Chelsea PRO ++ ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] (Chelsea PRO) + + pci:v00001002d00006826* + ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7700M Series] +@@ -6081,7 +6081,7 @@ pci:v00001002d0000682F* + ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] + + pci:v00001002d0000682Fsv0000103Csd00001851* +- ID_MODEL_FROM_DATABASE=Radeon HD 7750M ++ ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] (Radeon HD 7750M) + + pci:v00001002d00006830* + ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7800M Series] +@@ -6096,16 +6096,16 @@ pci:v00001002d00006837* + ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] + + pci:v00001002d00006837sv00001462sd00002796* +- ID_MODEL_FROM_DATABASE=Radeon HD 8730 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) + + pci:v00001002d00006837sv00001462sd00008092* +- ID_MODEL_FROM_DATABASE=Radeon HD 8730 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) + + pci:v00001002d00006837sv0000148Csd00008730* +- ID_MODEL_FROM_DATABASE=Radeon HD 8730 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) + + pci:v00001002d00006837sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 6570) + + pci:v00001002d00006838* + ID_MODEL_FROM_DATABASE=Cape Verde +@@ -6120,19 +6120,19 @@ pci:v00001002d0000683D* + ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] + + pci:v00001002d0000683Dsv00001002sd00000030* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv00001019sd00000030* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv0000103Csd00006890* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv00001043sd00008760* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv0000174Bsd00008304* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683F* + ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] +@@ -6141,322 +6141,322 @@ pci:v00001002d00006840* + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] + + pci:v00001002d00006840sv00001025sd0000050E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000050F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000513* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000056D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000059A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000059B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000059E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000600* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000606* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000696* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000697* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000698* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000699* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000757* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd0000056A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd0000056E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd00000598* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd0000059D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd000005A3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd000005B9* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd000005BB* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000017F1* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7570M) + + pci:v00001002d00006840sv0000103Csd000017F4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv0000103Csd00001813* +- ID_MODEL_FROM_DATABASE=Radeon HD 7590M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7590M) + + pci:v00001002d00006840sv0000103Csd0000182F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001830* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001835* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000183A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000183C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000183E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001840* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001842* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001844* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001848* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000184A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000184C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001895* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001897* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000018A5* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000018A7* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000018F4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd0000100A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd0000104B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd000010DC* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002121* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002122* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002123* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002125* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002127* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB11* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB22* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB23* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB2C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB31* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB32* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB38* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB39* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB3A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB40* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB41* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB47* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB48* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB51* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB53* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB81* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB82* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB83* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FC56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FCD4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FCEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000144Dsd0000C0C5* +- ID_MODEL_FROM_DATABASE=Radeon HD 7690M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7690M) + + pci:v00001002d00006840sv0000144Dsd0000C0CE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000144Dsd0000C0DA* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00003970* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd0000397B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00005101* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00005102* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00005103* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006841* + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] + + pci:v00001002d00006841sv00001028sd00000561* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001028sd0000056C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001028sd0000057F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv0000103Csd000017F1* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv0000103Csd000017F4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001813* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv0000103Csd0000183A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd0000183C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd0000183E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001840* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001842* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001844* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd0000100A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd0000104B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd000010DC* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd00002134* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv00001179sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv00001179sd0000FB43* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FB91* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FB92* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FB93* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FBA2* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FBA3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv0000144Dsd0000C0C7* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006842* + ID_MODEL_FROM_DATABASE=Thames LE [Radeon HD 7000M Series] +@@ -6471,13 +6471,13 @@ pci:v00001002d00006889* + ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] + + pci:v00001002d00006889sv00001002sd00000301* +- ID_MODEL_FROM_DATABASE=FirePro V7800P ++ ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] (FirePro V7800P) + + pci:v00001002d0000688A* + ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] + + pci:v00001002d0000688Asv00001002sd0000030C* +- ID_MODEL_FROM_DATABASE=FirePro V9800P ++ ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] (FirePro V9800P) + + pci:v00001002d0000688C* + ID_MODEL_FROM_DATABASE=Cypress XT GL [FireStream 9370] +@@ -6489,28 +6489,28 @@ pci:v00001002d00006898* + ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] + + pci:v00001002d00006898sv00001002sd00000B00* +- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Eyefinity⁶ Edition ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Eyefinity⁶ Edition) + + pci:v00001002d00006898sv0000106Bsd000000D0* +- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Mac Edition ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Mac Edition) + + pci:v00001002d00006898sv00001462sd00008032* +- ID_MODEL_FROM_DATABASE=Radeon HD 5870 1 GB GDDR5 ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 1 GB GDDR5) + + pci:v00001002d00006898sv0000174Bsd00006870* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870 1600SP Edition ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 6870 1600SP Edition) + + pci:v00001002d00006899* + ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] + + pci:v00001002d00006899sv00001043sd00000330* +- ID_MODEL_FROM_DATABASE=Radeon HD 5850 ++ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850) + + pci:v00001002d00006899sv0000174Bsd0000237B* +- ID_MODEL_FROM_DATABASE=Radeon HD 5850 X2 ++ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850 X2) + + pci:v00001002d00006899sv0000174Bsd00006850* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850 1440SP Edition ++ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 6850 1440SP Edition) + + pci:v00001002d0000689B* + ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 6800 Series] +@@ -6519,7 +6519,7 @@ pci:v00001002d0000689C* + ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] + + pci:v00001002d0000689Csv00001043sd00000352* +- ID_MODEL_FROM_DATABASE=ARES ++ ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] (ARES) + + pci:v00001002d0000689D* + ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] +@@ -6531,79 +6531,79 @@ pci:v00001002d000068A0* + ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] + + pci:v00001002d000068A0sv00001028sd000012EF* +- ID_MODEL_FROM_DATABASE=FirePro M7820 ++ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) + + pci:v00001002d000068A0sv0000103Csd00001520* +- ID_MODEL_FROM_DATABASE=FirePro M7820 ++ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) + + pci:v00001002d000068A1* + ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] + + pci:v00001002d000068A1sv0000106Bsd000000CC* +- ID_MODEL_FROM_DATABASE=iMac MC511 Mobility Radeon HD 5850 MXM Module ++ ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] (iMac MC511 Mobility Radeon HD 5850 MXM Module) + + pci:v00001002d000068A8* + ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] + + pci:v00001002d000068A8sv00001025sd00000442* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000451* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000513* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000515* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000516* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000525* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000526* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000056D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001028sd0000048F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv00001028sd00000490* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv00001028sd000004B9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv00001028sd000004BA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv0000103Csd0000159B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv0000144Dsd0000C0AD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A9* + ID_MODEL_FROM_DATABASE=Juniper XT [FirePro V5800] +@@ -6612,7 +6612,7 @@ pci:v00001002d000068B8* + ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] + + pci:v00001002d000068B8sv0000106Bsd000000CF* +- ID_MODEL_FROM_DATABASE=MacPro5,1 [Mac Pro 2.8GHz DDR3] ++ ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] (MacPro5,1 [Mac Pro 2.8GHz DDR3]) + + pci:v00001002d000068B9* + ID_MODEL_FROM_DATABASE=Juniper LE [Radeon HD 5670 640SP Edition] +@@ -6624,466 +6624,466 @@ pci:v00001002d000068BE* + ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] + + pci:v00001002d000068BEsv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750 ++ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] (Radeon HD 6750) + + pci:v00001002d000068BF* + ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] + + pci:v00001002d000068BFsv0000174Bsd00006750* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750 ++ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] (Radeon HD 6750) + + pci:v00001002d000068C0* + ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] + + pci:v00001002d000068C0sv00001019sd00002383* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv00001028sd000002A2* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv00001028sd000002FE* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv00001028sd00000419* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv0000103Csd0000147D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv0000103Csd00001521* +- ID_MODEL_FROM_DATABASE=Madison XT [FirePro M5800] ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Madison XT [FirePro M5800]) + + pci:v00001002d000068C0sv0000103Csd00001593* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) + + pci:v00001002d000068C0sv0000103Csd00001596* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) + + pci:v00001002d000068C0sv0000103Csd00001599* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) + + pci:v00001002d000068C0sv00001043sd00001C22* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv000017AAsd00003927* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv000017AAsd00003952* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv000017AAsd00003978* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Radeon HD 6570M) + + pci:v00001002d000068C1* + ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] + + pci:v00001002d000068C1sv00001025sd00000205* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000293* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000294* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000296* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000308* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000030A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000311* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000312* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000031C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000031D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000033D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000033E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000033F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000346* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Aspire 7740G) + + pci:v00001002d000068C1sv00001025sd00000348* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000356* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000357* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000358* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000359* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000360* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000362* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000364* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000365* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000366* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000367* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000368* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000372* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000373* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000377* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000378* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000379* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000382* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000383* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000384* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000385* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000386* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000387* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000388* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000038B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000038C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000039A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000411* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000412* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000418* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000419* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000420* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000421* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000425* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000042A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000042E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000042F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000432* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000433* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000442* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000044C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000044E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000451* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000454* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000455* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000475* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000476* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000487* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000489* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000498* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000517* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd00000525* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd00000526* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000052B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000052C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd00000607* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001028sd0000041B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000447* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000448* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000456* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000457* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001436* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001437* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001440* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001448* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001449* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000144A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000144B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000147B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000149C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000149E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001521* +- ID_MODEL_FROM_DATABASE=Madison Pro [FirePro M5800] ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Madison Pro [FirePro M5800]) + + pci:v00001002d000068C1sv00001043sd00001BC2* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000104Dsd00009071* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000104Dsd00009077* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD00* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD12* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD1A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD30* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD31* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD50* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD52* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv00001179sd0000FD63* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv00001179sd0000FD65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv00001179sd0000FDD0* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FDD2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv0000144Dsd0000C07E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000144Dsd0000C085* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000014C0sd00000043* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000014C0sd0000004D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000017AAsd00003928* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000017AAsd00003951* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000017AAsd00003977* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C7* + ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] + + pci:v00001002d000068C7sv00001462sd00002241* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) + + pci:v00001002d000068C7sv00001462sd00002243* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) + + pci:v00001002d000068C7sv00001462sd00002244* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) + + pci:v00001002d000068C7sv00001462sd00002245* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550A ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) + + pci:v00001002d000068C7sv00001462sd00002246* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550A ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) + + pci:v00001002d000068C8* + ID_MODEL_FROM_DATABASE=Redwood XT GL [FirePro V4800] +@@ -7095,115 +7095,115 @@ pci:v00001002d000068D8* + ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] + + pci:v00001002d000068D8sv00001028sd000068E0* +- ID_MODEL_FROM_DATABASE=Radeon HD 5670 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) + + pci:v00001002d000068D8sv0000174Bsd00005690* +- ID_MODEL_FROM_DATABASE=Radeon HD 5690 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) + + pci:v00001002d000068D8sv0000174Bsd00005730* +- ID_MODEL_FROM_DATABASE=Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) + + pci:v00001002d000068D8sv0000174Bsd0000E151* +- ID_MODEL_FROM_DATABASE=Radeon HD 5670 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) + + pci:v00001002d000068D8sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) + + pci:v00001002d000068D8sv000017AFsd00003010* +- ID_MODEL_FROM_DATABASE=Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) + + pci:v00001002d000068D8sv000017AFsd00003011* +- ID_MODEL_FROM_DATABASE=Radeon HD 5690 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) + + pci:v00001002d000068D9* + ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] + + pci:v00001002d000068D9sv0000103Csd00006870* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv0000103Csd00006872* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001043sd000003CE* +- ID_MODEL_FROM_DATABASE=Radeon HD 5550 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) + + pci:v00001002d000068D9sv00001462sd00002151* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001462sd00002240* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6610 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) + + pci:v00001002d000068D9sv00001545sd00005550* +- ID_MODEL_FROM_DATABASE=Radeon HD 5550 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) + + pci:v00001002d000068D9sv00001545sd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 7570) + + pci:v00001002d000068D9sv00001642sd00003985* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001642sd00003996* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv0000174Bsd00006510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv0000174Bsd00006610* +- ID_MODEL_FROM_DATABASE=Radeon HD 6610 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) + + pci:v00001002d000068D9sv0000174Bsd0000E142* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv000017AFsd00003010* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5630) + + pci:v00001002d000068DA* + ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] + + pci:v00001002d000068DAsv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6390 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) + + pci:v00001002d000068DAsv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) + + pci:v00001002d000068DAsv00001545sd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 7570) + + pci:v00001002d000068DAsv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6390 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) + + pci:v00001002d000068DAsv0000174Bsd00005570* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5570) + + pci:v00001002d000068DAsv0000174Bsd00005630* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) + + pci:v00001002d000068DAsv0000174Bsd00006490* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) + + pci:v00001002d000068DAsv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) + + pci:v00001002d000068DAsv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6390 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) + + pci:v00001002d000068DAsv000017AFsd00003010* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) + + pci:v00001002d000068DE* + ID_MODEL_FROM_DATABASE=Redwood +@@ -7212,349 +7212,349 @@ pci:v00001002d000068E0* + ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] + + pci:v00001002d000068E0sv00001028sd00000404* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv00001028sd00000414* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv00001028sd00000434* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001433* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001434* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001469* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd0000146B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001486* +- ID_MODEL_FROM_DATABASE=TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450) ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450)) + + pci:v00001002d000068E0sv0000103Csd00001622* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001623* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd0000EEEE* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000104Dsd00009076* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv00001682sd0000304E* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E0sv00001682sd00006000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E0sv000017AAsd00009E52* +- ID_MODEL_FROM_DATABASE=FirePro M3800 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) + + pci:v00001002d000068E0sv000017AAsd00009E53* +- ID_MODEL_FROM_DATABASE=FirePro M3800 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) + + pci:v00001002d000068E1* + ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] + + pci:v00001002d000068E1sv00001043sd0000041F* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv00001043sd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) + + pci:v00001002d000068E1sv0000148Csd00003002* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6250] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6250]) + + pci:v00001002d000068E1sv0000148Csd00003003* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) + + pci:v00001002d000068E1sv0000148Csd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv0000148Csd00008350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350]) + + pci:v00001002d000068E1sv00001545sd00005450* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv00001682sd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv00001682sd00006000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv00001682sd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000174Bsd00005470* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5470] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5470]) + + pci:v00001002d000068E1sv0000174Bsd00006000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000174Bsd00006230* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) + + pci:v00001002d000068E1sv0000174Bsd00006350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) + + pci:v00001002d000068E1sv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv000017AFsd00003001* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) + + pci:v00001002d000068E1sv000017AFsd00003014* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) + + pci:v00001002d000068E1sv000017AFsd00003015* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv000017AFsd00008350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350 OEM] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350 OEM]) + + pci:v00001002d000068E4* + ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] + + pci:v00001002d000068E4sv00001019sd00002386* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) + + pci:v00001002d000068E4sv00001019sd00002387* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) + + pci:v00001002d000068E4sv00001019sd0000238D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd00000382* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd00000489* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd0000048A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd0000048B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd0000048C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004C1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004CA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004CC* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004CD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004D7* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001411* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001421* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001426* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001428* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000142A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000142B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000143A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000143C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001445* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001639* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001641* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001643* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00003578* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000357A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00003673* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00003675* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001043sd00001C92* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001043sd000084A1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001043sd000084AD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 7350]) + + pci:v00001002d000068E4sv00001558sd00004510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001558sd00005505* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000174Bsd00005450* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 5450]) + + pci:v00001002d000068E4sv000017AAsd000021DD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv000017AAsd000021E9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv000017AAsd00003971* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv000017AAsd00003972* +- ID_MODEL_FROM_DATABASE=Radeon HD 7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) + + pci:v00001002d000068E4sv000017AAsd0000397A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) + + pci:v00001002d000068E4sv000017AAsd0000397B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) + + pci:v00001002d000068E4sv000017AAsd0000397F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) + + pci:v00001002d000068E5* + ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] + + pci:v00001002d000068E5sv00001179sd0000FD3C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD50* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD52* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD63* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD73* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD75* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDD0* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDD2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDEA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDF8* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv0000148Csd00005450* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 5450]) + + pci:v00001002d000068E5sv0000148Csd00006350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 6350]) + + pci:v00001002d000068E5sv0000148Csd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) + + pci:v00001002d000068E5sv0000148Csd00008350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 8350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 8350]) + + pci:v00001002d000068E5sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) + + pci:v00001002d000068E8* + ID_MODEL_FROM_DATABASE=Cedar +@@ -7575,259 +7575,259 @@ pci:v00001002d000068F9* + ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] + + pci:v00001002d000068F9sv00001019sd00000001* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001019sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001019sd00000019* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001025sd00000518* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001025sd00000519* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (XPS 8300) + + pci:v00001002d000068F9sv00001028sd00002126* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000103Csd00002126* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000103Csd00002AAC* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000103Csd00002AAE* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000103Csd00003580* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001043sd00000386* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001043sd000003C2* +- ID_MODEL_FROM_DATABASE=EAH5450 SILENT/DI/512MD2 (LP) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (EAH5450 SILENT/DI/512MD2 (LP)) + + pci:v00001002d000068F9sv00001462sd00002130* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002131* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002133* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001462sd00002180* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002181* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002182* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001462sd00002183* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001462sd00002230* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002231* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002495* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 5530/6250 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530/6250) + + pci:v00001002d000068F9sv0000148Csd00003002* +- ID_MODEL_FROM_DATABASE=Radeon HD 6290 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) + + pci:v00001002d000068F9sv0000148Csd00003003* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv0000148Csd00003004* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000148Csd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv0000148Csd00008350* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) + + pci:v00001002d000068F9sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv00001642sd00003983* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001642sd00003984* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001642sd00003987* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001642sd00003997* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001642sd00003A05* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001642sd00003B31* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350A ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350A) + + pci:v00001002d000068F9sv00001682sd00003270* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv0000174Bsd00003987* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000174Bsd00005470* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv0000174Bsd00005490* +- ID_MODEL_FROM_DATABASE=Radeon HD 5490 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) + + pci:v00001002d000068F9sv0000174Bsd00005530* +- ID_MODEL_FROM_DATABASE=Radeon HD 5530 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) + + pci:v00001002d000068F9sv0000174Bsd00006230* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv0000174Bsd00006250* +- ID_MODEL_FROM_DATABASE=Radeon HD 6250 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) + + pci:v00001002d000068F9sv0000174Bsd00006290* +- ID_MODEL_FROM_DATABASE=Radeon HD 6290 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) + + pci:v00001002d000068F9sv0000174Bsd00006350* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv0000174Bsd00008350* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) + + pci:v00001002d000068F9sv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000174Bsd0000E145* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv00001787sd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 5530 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) + + pci:v00001002d000068F9sv00001787sd00003002* +- ID_MODEL_FROM_DATABASE=Radeon HD 5490 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) + + pci:v00001002d000068F9sv000017AAsd00003602* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AAsd00003603* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AAsd0000360F* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AAsd00003619* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6250 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) + + pci:v00001002d000068F9sv000017AFsd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv000017AFsd00003002* +- ID_MODEL_FROM_DATABASE=Radeon HD 6290 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) + + pci:v00001002d000068F9sv000017AFsd00003011* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv000017AFsd00003012* +- ID_MODEL_FROM_DATABASE=Radeon HD 5490 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) + + pci:v00001002d000068F9sv000017AFsd00003013* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv000017AFsd00003014* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068FA* + ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] + + pci:v00001002d000068FAsv00001019sd00000019* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000021* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000022* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000026* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000103Csd00002ADF* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350A ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) + + pci:v00001002d000068FAsv0000103Csd00002AE8* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350A ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) + + pci:v00001002d000068FAsv00001043sd00008350* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) + + pci:v00001002d000068FAsv00001462sd00002128* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002184* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002186* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002495* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd0000B490* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001642sd00003985* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd00008153* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E180* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv000017AFsd00003015* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE +@@ -7863,16 +7863,16 @@ pci:v00001002d00007109* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] + + pci:v00001002d00007109sv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-in-Wonder X1800XL ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (All-in-Wonder X1800XL) + + pci:v00001002d00007109sv00001002sd00000D02* +- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (Radeon X1800 CrossFire Edition) + + pci:v00001002d0000710A* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] + + pci:v00001002d0000710Asv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=Radeon X1800 GTO² ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] (Radeon X1800 GTO²) + + pci:v00001002d0000710B* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] +@@ -7887,10 +7887,10 @@ pci:v00001002d00007129* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) + + pci:v00001002d00007129sv00001002sd00000323* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X1800 XL (Secondary) ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (All-In-Wonder X1800 XL (Secondary)) + + pci:v00001002d00007129sv00001002sd00000D03* +- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (Radeon X1800 CrossFire Edition (Secondary)) + + pci:v00001002d00007140* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550/X1600 Series] +@@ -7899,10 +7899,10 @@ pci:v00001002d00007142* + ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] + + pci:v00001002d00007142sv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition ++ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (All-in-Wonder 2006 PCI-E Edition) + + pci:v00001002d00007142sv00001043sd00000142* +- ID_MODEL_FROM_DATABASE=EAX1300PRO/TD/256M ++ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (EAX1300PRO/TD/256M) + + pci:v00001002d00007143* + ID_MODEL_FROM_DATABASE=RV505 [Radeon X1300/X1550 Series] +@@ -7911,16 +7911,16 @@ pci:v00001002d00007145* + ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] + + pci:v00001002d00007145sv000017AAsd00002006* +- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 ++ ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] (Thinkpad T60 model 2007) + + pci:v00001002d00007146* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] + + pci:v00001002d00007146sv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (All-in-Wonder 2006 PCI-E Edition) + + pci:v00001002d00007146sv00001545sd00001996* +- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (Radeon X1300 512MB PCI-e) + + pci:v00001002d00007147* + ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 64-bit] +@@ -7944,7 +7944,7 @@ pci:v00001002d00007162* + ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) + + pci:v00001002d00007162sv00001002sd00000323* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) + + pci:v00001002d00007163* + ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 Series] (Secondary) +@@ -7953,10 +7953,10 @@ pci:v00001002d00007166* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) + + pci:v00001002d00007166sv00001002sd00000323* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) + + pci:v00001002d00007166sv00001545sd00001997* +- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e (Secondary) ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (Radeon X1300 512MB PCI-e (Secondary)) + + pci:v00001002d00007167* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1550 64-bit] (Secondary) +@@ -7983,7 +7983,7 @@ pci:v00001002d00007188* + ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] + + pci:v00001002d00007188sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=6910p ++ ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] (6910p) + + pci:v00001002d0000718A* + ID_MODEL_FROM_DATABASE=RV516/M64 [Mobility Radeon X2300] +@@ -8028,16 +8028,16 @@ pci:v00001002d000071C0* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] + + pci:v00001002d000071C0sv00001002sd0000E160* +- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO ++ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) + + pci:v00001002d000071C0sv0000174Bsd0000E160* +- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO ++ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) + + pci:v00001002d000071C1* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] + + pci:v00001002d000071C1sv0000174Bsd00000880* +- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Radeon X1700 FSC) + + pci:v00001002d000071C2* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 PRO] +@@ -8046,22 +8046,22 @@ pci:v00001002d000071C4* + ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] + + pci:v00001002d000071C4sv000017AAsd00002007* +- ID_MODEL_FROM_DATABASE=ThinkPad T60p ++ ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] (ThinkPad T60p) + + pci:v00001002d000071C5* + ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] + + pci:v00001002d000071C5sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq nx9420 Notebook) + + pci:v00001002d000071C5sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq NW8440 ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq NW8440) + + pci:v00001002d000071C5sv00001043sd000010B2* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (A6J-Q008) + + pci:v00001002d000071C5sv0000106Bsd00000080* +- ID_MODEL_FROM_DATABASE=MacBook Pro ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (MacBook Pro) + + pci:v00001002d000071C6* + ID_MODEL_FROM_DATABASE=RV530LE [Radeon X1600/X1650 PRO] +@@ -8070,7 +8070,7 @@ pci:v00001002d000071C7* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] + + pci:v00001002d000071C7sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=PowerColor X1650 PRO AGP ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (PowerColor X1650 PRO AGP) + + pci:v00001002d000071CE* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1300 XT/X1600 PRO] +@@ -8094,13 +8094,13 @@ pci:v00001002d000071E0* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) + + pci:v00001002d000071E0sv0000174Bsd0000E161* +- ID_MODEL_FROM_DATABASE=Radeon X1600 GTO (Secondary) ++ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) (Radeon X1600 GTO (Secondary)) + + pci:v00001002d000071E1* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) + + pci:v00001002d000071E1sv0000174Bsd00000881* +- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC (Secondary) ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1700 FSC (Secondary)) + + pci:v00001002d000071E2* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) +@@ -8112,7 +8112,7 @@ pci:v00001002d000071E7* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) + + pci:v00001002d000071E7sv00001787sd00003001* +- ID_MODEL_FROM_DATABASE=Radeon X1650 PRO AGP ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1650 PRO AGP) + + pci:v00001002d000071F2* + ID_MODEL_FROM_DATABASE=RV530 GL [FireGL V3400] (Secondary) +@@ -8127,7 +8127,7 @@ pci:v00001002d00007240* + ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] + + pci:v00001002d00007240sv00001002sd00000D02* +- ID_MODEL_FROM_DATABASE=Radeon X1950 CrossFire Edition ++ ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] (Radeon X1950 CrossFire Edition) + + pci:v00001002d00007244* + ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XT] +@@ -8139,25 +8139,25 @@ pci:v00001002d00007249* + ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] + + pci:v00001002d00007249sv00001002sd00000412* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X1900 ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (All-In-Wonder X1900) + + pci:v00001002d00007249sv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=Radeon X1900 XT/XTX ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XT/XTX) + + pci:v00001002d00007249sv00001002sd00000D02* +- ID_MODEL_FROM_DATABASE=Radeon X1900 CrossFire Edition ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 CrossFire Edition) + + pci:v00001002d00007249sv00001043sd00000160* +- ID_MODEL_FROM_DATABASE=Radeon X1900 XTX 512 MB GDDR3 ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XTX 512 MB GDDR3) + + pci:v00001002d0000724B* + ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] + + pci:v00001002d0000724Bsv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=Radeon X1900 (Primary) ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Primary)) + + pci:v00001002d0000724Bsv00001002sd00000B13* +- ID_MODEL_FROM_DATABASE=Radeon X1900 (Secondary) ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Secondary)) + + pci:v00001002d0000724E* + ID_MODEL_FROM_DATABASE=R580 GL [FireGL V7350] +@@ -8181,7 +8181,7 @@ pci:v00001002d00007291* + ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] + + pci:v00001002d00007291sv00001462sd00000810* +- ID_MODEL_FROM_DATABASE=Radeon X1700 SE ++ ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] (Radeon X1700 SE) + + pci:v00001002d00007293* + ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 GT] +@@ -8214,10 +8214,10 @@ pci:v00001002d00007910* + ID_MODEL_FROM_DATABASE=RS690 Host Bridge + + pci:v00001002d00007910sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (Satellite P305D-S8995E) + + pci:v00001002d00007910sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (KI690-AM2 Motherboard) + + pci:v00001002d00007911* + ID_MODEL_FROM_DATABASE=RS690 Host Bridge +@@ -8238,31 +8238,31 @@ pci:v00001002d00007917* + ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) + + pci:v00001002d00007917sv00001002sd00007910* +- ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge ++ ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) (RS690 PCI to PCI Bridge) + + pci:v00001002d00007919* + ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] + + pci:v00001002d00007919sv00001179sd00007919* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (Satellite P305D-S8995E) + + pci:v00001002d00007919sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (KI690-AM2 Motherboard) + + pci:v00001002d0000791E* + ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] + + pci:v00001002d0000791Esv00001462sd00007327* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (K9AG Neo2) + + pci:v00001002d0000791Esv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (KI690-AM2 Motherboard) + + pci:v00001002d0000791F* + ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] + + pci:v00001002d0000791Fsv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] (Satellite P305D-S8995E) + + pci:v00001002d00007930* + ID_MODEL_FROM_DATABASE=RS600 Host Bridge +@@ -8301,13 +8301,13 @@ pci:v00001002d00009400* + ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] + + pci:v00001002d00009400sv00001002sd00002552* +- ID_MODEL_FROM_DATABASE=Radeon HD 2900 XT ++ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 XT) + + pci:v00001002d00009400sv00001002sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 2900 PRO ++ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 PRO) + + pci:v00001002d00009400sv00001002sd00003142* +- ID_MODEL_FROM_DATABASE=HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe ++ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe) + + pci:v00001002d00009401* + ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 XT] +@@ -8337,10 +8337,10 @@ pci:v00001002d00009442* + ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] + + pci:v00001002d00009442sv00001002sd00000502* +- ID_MODEL_FROM_DATABASE=MSI Radeon HD 4850 512MB GDDR3 ++ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (MSI Radeon HD 4850 512MB GDDR3) + + pci:v00001002d00009442sv0000174Bsd0000E810* +- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 ++ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (Radeon HD 4850 512MB GDDR3) + + pci:v00001002d00009443* + ID_MODEL_FROM_DATABASE=R700 [Radeon HD 4850 X2] +@@ -8364,7 +8364,7 @@ pci:v00001002d0000944E* + ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] + + pci:v00001002d0000944Esv0000174Bsd00003261* +- ID_MODEL_FROM_DATABASE=Radeon HD 4810 ++ ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] (Radeon HD 4810) + + pci:v00001002d00009450* + ID_MODEL_FROM_DATABASE=RV770 GL [FireStream 9270] +@@ -8391,7 +8391,7 @@ pci:v00001002d00009480* + ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] + + pci:v00001002d00009480sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4650 [dv6-1190en] ++ ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] (Mobility Radeon HD 4650 [dv6-1190en]) + + pci:v00001002d00009488* + ID_MODEL_FROM_DATABASE=RV730/M96-XT [Mobility Radeon HD 4670] +@@ -8403,7 +8403,7 @@ pci:v00001002d00009490* + ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] + + pci:v00001002d00009490sv0000174Bsd0000E880* +- ID_MODEL_FROM_DATABASE=Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO ++ ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] (Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO) + + pci:v00001002d00009491* + ID_MODEL_FROM_DATABASE=RV730/M96-CSP [Radeon E4690] +@@ -8412,19 +8412,19 @@ pci:v00001002d00009495* + ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] + + pci:v00001002d00009495sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650/4670 AGP ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650/4670 AGP) + + pci:v00001002d00009495sv00001092sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4670 AGP 512MB DDR2 ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4670 AGP 512MB DDR2) + + pci:v00001002d00009495sv00001458sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) + + pci:v00001002d00009495sv00001682sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) + + pci:v00001002d00009495sv0000174Bsd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP DDR2 ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP DDR2) + + pci:v00001002d00009498* + ID_MODEL_FROM_DATABASE=RV730 PRO [Radeon HD 4650] +@@ -8457,22 +8457,22 @@ pci:v00001002d000094C1* + ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] + + pci:v00001002d000094C1sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) + + pci:v00001002d000094C1sv00001028sd00000D02* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) + + pci:v00001002d000094C3* + ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] + + pci:v00001002d000094C3sv00001028sd00000302* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 Pro ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 Pro) + + pci:v00001002d000094C3sv0000174Bsd0000E400* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) + + pci:v00001002d000094C3sv000018BCsd00003550* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) + + pci:v00001002d000094C4* + ID_MODEL_FROM_DATABASE=RV610 LE [Radeon HD 2400 PRO AGP] +@@ -8490,7 +8490,7 @@ pci:v00001002d000094C9* + ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] + + pci:v00001002d000094C9sv00001002sd000094C9* +- ID_MODEL_FROM_DATABASE=Radeon HD2400 ++ ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] (Radeon HD2400) + + pci:v00001002d000094CB* + ID_MODEL_FROM_DATABASE=RV610 [Radeon E2400] +@@ -8505,7 +8505,7 @@ pci:v00001002d00009501* + ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] + + pci:v00001002d00009501sv0000174Bsd0000E620* +- ID_MODEL_FROM_DATABASE=Radeon HD 3870 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] (Radeon HD 3870) + + pci:v00001002d00009504* + ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850] +@@ -8514,13 +8514,13 @@ pci:v00001002d00009505* + ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] + + pci:v00001002d00009505sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3850 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3850) + + pci:v00001002d00009505sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3690/3850 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690/3850) + + pci:v00001002d00009505sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3690 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690) + + pci:v00001002d00009506* + ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850 X2] +@@ -8556,76 +8556,76 @@ pci:v00001002d0000954F* + ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] + + pci:v00001002d0000954Fsv00001462sd00001618* +- ID_MODEL_FROM_DATABASE=R4350 MD512H (MS-V161) ++ ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] (R4350 MD512H (MS-V161)) + + pci:v00001002d00009552* + ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] + + pci:v00001002d00009552sv00001028sd00001103* +- ID_MODEL_FROM_DATABASE=M92 [Mobility Radeon HD 4330] ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (M92 [Mobility Radeon HD 4330]) + + pci:v00001002d00009552sv00001458sd000021AC* +- ID_MODEL_FROM_DATABASE=Radeon HD 4350 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350) + + pci:v00001002d00009552sv00001458sd000021ED* +- ID_MODEL_FROM_DATABASE=Radeon HD 4550 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4550) + + pci:v00001002d00009552sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 4350 Go! Green 512MB GDDR3 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350 Go! Green 512MB GDDR3) + + pci:v00001002d00009552sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 4350/4550 HyperMemory DDR2 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350/4550 HyperMemory DDR2) + + pci:v00001002d00009553* + ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] + + pci:v00001002d00009553sv00001025sd0000015E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd0000017D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd00000205* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd00000206* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd00000237* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001028sd000002BE* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001028sd000002E8* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv0000103Csd00003624* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv0000103Csd00003636* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv00001043sd00001B32* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001043sd00001B42* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv0000104Dsd00009056* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001179sd0000FF82* +- ID_MODEL_FROM_DATABASE=Satellite L505-13T GPU (Mobility Radeon HD 5145) ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Satellite L505-13T GPU (Mobility Radeon HD 5145)) + + pci:v00001002d00009555* + ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] + + pci:v00001002d00009555sv0000103Csd00001411* +- ID_MODEL_FROM_DATABASE=ProBook 4720s GPU (Mobility Radeon HD 4350) ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] (ProBook 4720s GPU (Mobility Radeon HD 4350)) + + pci:v00001002d00009557* + ID_MODEL_FROM_DATABASE=RV711 GL [FirePro RG220] +@@ -8643,10 +8643,10 @@ pci:v00001002d00009583* + ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] + + pci:v00001002d00009583sv0000106Bsd00000083* +- ID_MODEL_FROM_DATABASE=iMac 7,1 ++ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (iMac 7,1) + + pci:v00001002d00009583sv00001734sd00001107* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 2700 ++ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (Mobility Radeon HD 2700) + + pci:v00001002d00009586* + ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT AGP] +@@ -8658,13 +8658,13 @@ pci:v00001002d00009588* + ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] + + pci:v00001002d00009588sv00001458sd0000216C* +- ID_MODEL_FROM_DATABASE=Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H) ++ ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] (Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H)) + + pci:v00001002d00009589* + ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] + + pci:v00001002d00009589sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3610 ++ ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] (Radeon HD 3610) + + pci:v00001002d0000958A* + ID_MODEL_FROM_DATABASE=RV630 [Radeon HD 2600 X2] +@@ -8682,7 +8682,7 @@ pci:v00001002d00009591* + ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] + + pci:v00001002d00009591sv00001002sd00009591* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3650 ++ ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] (Mobility Radeon HD 3650) + + pci:v00001002d00009593* + ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3670] +@@ -8694,7 +8694,7 @@ pci:v00001002d00009596* + ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] + + pci:v00001002d00009596sv00001043sd00000028* +- ID_MODEL_FROM_DATABASE=EAH3650 SILENT/HTDI/512M/A ++ ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] (EAH3650 SILENT/HTDI/512M/A) + + pci:v00001002d00009597* + ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] +@@ -8703,19 +8703,19 @@ pci:v00001002d00009598* + ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] + + pci:v00001002d00009598sv00001002sd00009598* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3600 ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Mobility Radeon HD 3600) + + pci:v00001002d00009598sv00001043sd000001D6* +- ID_MODEL_FROM_DATABASE=EAH3650 Silent ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (EAH3650 Silent) + + pci:v00001002d00009598sv00001043sd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 4570) + + pci:v00001002d00009598sv0000174Bsd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 3750 ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 3750) + + pci:v00001002d00009598sv0000174Bsd00004580* +- ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 4580] ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (RV635 PRO [Radeon HD 4580]) + + pci:v00001002d00009599* + ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] +@@ -8724,7 +8724,7 @@ pci:v00001002d000095C0* + ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] + + pci:v00001002d000095C0sv00001002sd000095C0* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3470 ++ ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] (Mobility Radeon HD 3470) + + pci:v00001002d000095C2* + ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3410/3430] +@@ -8733,13 +8733,13 @@ pci:v00001002d000095C4* + ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] + + pci:v00001002d000095C4sv00001002sd000095C4* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3400 ++ ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] (Mobility Radeon HD 3400) + + pci:v00001002d000095C5* + ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] + + pci:v00001002d000095C5sv00001028sd00000342* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] (OptiPlex 980) + + pci:v00001002d000095C6* + ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450 AGP] +@@ -8760,7 +8760,7 @@ pci:v00001002d00009610* + ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] + + pci:v00001002d00009610sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-MA78GM-S2H Motherboard ++ ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] (GA-MA78GM-S2H Motherboard) + + pci:v00001002d00009611* + ID_MODEL_FROM_DATABASE=RS780C [Radeon 3100] +@@ -8823,22 +8823,22 @@ pci:v00001002d0000970F* + ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] + + pci:v00001002d0000970Fsv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (A785GM-M) + + pci:v00001002d0000970Fsv00001043sd000083A2* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M4A785TD Motherboard) + + pci:v00001002d0000970Fsv00001043sd0000843E* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M5A88-V EVO) + + pci:v00001002d00009710* + ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] + + pci:v00001002d00009710sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (A785GM-M) + + pci:v00001002d00009710sv00001043sd000083A2* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (M4A785TD Motherboard) + + pci:v00001002d00009712* + ID_MODEL_FROM_DATABASE=RS880M [Mobility Radeon HD 4225/4250] +@@ -8853,13 +8853,13 @@ pci:v00001002d00009715* + ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] + + pci:v00001002d00009715sv00001043sd0000843E* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] (M5A88-V EVO) + + pci:v00001002d00009802* + ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] + + pci:v00001002d00009802sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] (PURE Fusion Mini) + + pci:v00001002d00009803* + ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] +@@ -8991,16 +8991,16 @@ pci:v00001002d00009902* + ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller + + pci:v00001002d00009902sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller (ProBook 455 G1 Notebook) + + pci:v00001002d00009903* + ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] + + pci:v00001002d00009903sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) + + pci:v00001002d00009903sv0000103Csd00001952* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) + + pci:v00001002d00009904* + ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7560D] +@@ -9114,10 +9114,10 @@ pci:v00001002d0000AA10* + ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] + + pci:v00001002d0000AA10sv0000174Bsd0000AA10* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) + + pci:v00001002d0000AA10sv000018BCsd0000AA10* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) + + pci:v00001002d0000AA18* + ID_MODEL_FROM_DATABASE=RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] +@@ -9132,13 +9132,13 @@ pci:v00001002d0000AA30* + ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] + + pci:v00001002d0000AA30sv0000174Bsd0000AA30* +- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink ++ ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] (Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink) + + pci:v00001002d0000AA38* + ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] + + pci:v00001002d0000AA38sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] (dv6-1190en) + + pci:v00001002d0000AA50* + ID_MODEL_FROM_DATABASE=Cypress HDMI Audio [Radeon HD 5800 Series] +@@ -9150,16 +9150,16 @@ pci:v00001002d0000AA60* + ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] + + pci:v00001002d0000AA60sv00001025sd0000033D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Mobility Radeon HD 5650) + + pci:v00001002d0000AA60sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Aspire 7740G) + + pci:v00001002d0000AA68* + ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] + + pci:v00001002d0000AA68sv00001028sd0000AA68* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] (XPS 8300) + + pci:v00001002d0000AA80* + ID_MODEL_FROM_DATABASE=Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] +@@ -9171,13 +9171,13 @@ pci:v00001002d0000AA90* + ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] + + pci:v00001002d0000AA90sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] (Precision M4600) + + pci:v00001002d0000AA98* + ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] + + pci:v00001002d0000AA98sv0000174Bsd0000AA98* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1GB DDR3 ++ ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] (Radeon HD 6450 1GB DDR3) + + pci:v00001002d0000AAA0* + ID_MODEL_FROM_DATABASE=Tahiti XT HDMI Audio [Radeon HD 7970 Series] +@@ -9264,10 +9264,10 @@ pci:v00001004d00000304sv00001004sd00000304* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio + + pci:v00001004d00000304sv0000122Dsd00001206* +- ID_MODEL_FROM_DATABASE=DSP368 Audio ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (DSP368 Audio) + + pci:v00001004d00000304sv00001483sd00005020* +- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (XWave Thunder 3D Audio) + + pci:v00001004d00000305* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport +@@ -9276,10 +9276,10 @@ pci:v00001004d00000305sv00001004sd00000305* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport + + pci:v00001004d00000305sv0000122Dsd00001207* +- ID_MODEL_FROM_DATABASE=DSP368 Audio Gameport ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (DSP368 Audio Gameport) + + pci:v00001004d00000305sv00001483sd00005021* +- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Gameport ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (XWave Thunder 3D Audio Gameport) + + pci:v00001004d00000306* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers +@@ -9288,22 +9288,22 @@ pci:v00001004d00000306sv00001004sd00000306* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers + + pci:v00001004d00000306sv0000122Dsd00001208* +- ID_MODEL_FROM_DATABASE=DSP368 Audio Support Registers ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (DSP368 Audio Support Registers) + + pci:v00001004d00000306sv00001483sd00005022* +- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Support Registers ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (XWave Thunder 3D Audio Support Registers) + + pci:v00001004d00000307* + ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio + + pci:v00001004d00000307sv00001004sd00000703* +- ID_MODEL_FROM_DATABASE=Philips Rhythmic Edge PSC703 ++ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Rhythmic Edge PSC703) + + pci:v00001004d00000307sv00001004sd00000705* +- ID_MODEL_FROM_DATABASE=Philips Seismic Edge PSC705 ++ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Seismic Edge PSC705) + + pci:v00001004d00000307sv00001004sd00000706* +- ID_MODEL_FROM_DATABASE=Philips Acoustic Edge PSC706 ++ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Acoustic Edge PSC706) + + pci:v00001004d00000308* + ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio Gameport +@@ -9375,16 +9375,16 @@ pci:v0000100Bd00000020* + ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller + + pci:v0000100Bd00000020sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Network ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Pavilion ze4400 builtin Network) + + pci:v0000100Bd00000020sv000012D9sd0000000C* +- ID_MODEL_FROM_DATABASE=Aculab E1/T1 PMXc cPCI carrier card ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Aculab E1/T1 PMXc cPCI carrier card) + + pci:v0000100Bd00000020sv00001385sd0000F311* +- ID_MODEL_FROM_DATABASE=FA311 / FA312 (FA311 with WoL HW) ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA311 / FA312 (FA311 with WoL HW)) + + pci:v0000100Bd00000020sv00001385sd0000F312* +- ID_MODEL_FROM_DATABASE=FA312 (rev. A1) Fast Ethernet PCI Adapter ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA312 (rev. A1) Fast Ethernet PCI Adapter) + + pci:v0000100Bd00000021* + ID_MODEL_FROM_DATABASE=PC87200 PCI to ISA Bridge +@@ -9393,13 +9393,13 @@ pci:v0000100Bd00000022* + ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller + + pci:v0000100Bd00000022sv00001186sd00004900* +- ID_MODEL_FROM_DATABASE=DGE-500T ++ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (DGE-500T) + + pci:v0000100Bd00000022sv00001385sd0000621A* +- ID_MODEL_FROM_DATABASE=GA621 ++ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA621) + + pci:v0000100Bd00000022sv00001385sd0000622A* +- ID_MODEL_FROM_DATABASE=GA622T ++ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA622T) + + pci:v0000100Bd00000028* + ID_MODEL_FROM_DATABASE=Geode GX2 Host Bridge +@@ -9435,13 +9435,13 @@ pci:v0000100Bd00000502* + ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller + + pci:v0000100Bd00000502sv0000100Bsd00000502* +- ID_MODEL_FROM_DATABASE=IDE Controller ++ ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller (IDE Controller) + + pci:v0000100Bd00000503* + ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller + + pci:v0000100Bd00000503sv0000100Bsd00000503* +- ID_MODEL_FROM_DATABASE=XpressAudio controller ++ ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller (XpressAudio controller) + + pci:v0000100Bd00000504* + ID_MODEL_FROM_DATABASE=SCx200 Video +@@ -9453,19 +9453,19 @@ pci:v0000100Bd00000510* + ID_MODEL_FROM_DATABASE=SC1100 Bridge + + pci:v0000100Bd00000510sv0000100Bsd00000500* +- ID_MODEL_FROM_DATABASE=GPIO and LPC support bridge ++ ID_MODEL_FROM_DATABASE=SC1100 Bridge (GPIO and LPC support bridge) + + pci:v0000100Bd00000511* + ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI + + pci:v0000100Bd00000511sv0000100Bsd00000501* +- ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI bridge ++ ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI (bridge) + + pci:v0000100Bd00000515* + ID_MODEL_FROM_DATABASE=SC1100 XBus + + pci:v0000100Bd00000515sv0000100Bsd00000505* +- ID_MODEL_FROM_DATABASE=SC1100 PCI to XBus bridge ++ ID_MODEL_FROM_DATABASE=SC1100 XBus (SC1100 PCI to XBus bridge) + + pci:v0000100Bd0000D001* + ID_MODEL_FROM_DATABASE=87410 IDE +@@ -9534,55 +9534,55 @@ pci:v00001011d00000009* + ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] + + pci:v00001011d00000009sv00001025sd00000310* +- ID_MODEL_FROM_DATABASE=21140 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (21140 Fast Ethernet) + + pci:v00001011d00000009sv000010B8sd00002001* +- ID_MODEL_FROM_DATABASE=SMC9332BDT EtherPower 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BDT EtherPower 10/100) + + pci:v00001011d00000009sv000010B8sd00002002* +- ID_MODEL_FROM_DATABASE=SMC9332BVT EtherPower T4 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BVT EtherPower T4 10/100) + + pci:v00001011d00000009sv000010B8sd00002003* +- ID_MODEL_FROM_DATABASE=SMC9334BDT EtherPower 10/100 (1-port) ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9334BDT EtherPower 10/100 (1-port)) + + pci:v00001011d00000009sv00001109sd00002400* +- ID_MODEL_FROM_DATABASE=ANA-6944A/TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (ANA-6944A/TX Fast Ethernet) + + pci:v00001011d00000009sv00001112sd00002300* +- ID_MODEL_FROM_DATABASE=RNS2300 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2300 Fast Ethernet) + + pci:v00001011d00000009sv00001112sd00002320* +- ID_MODEL_FROM_DATABASE=RNS2320 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2320 Fast Ethernet) + + pci:v00001011d00000009sv00001112sd00002340* +- ID_MODEL_FROM_DATABASE=RNS2340 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2340 Fast Ethernet) + + pci:v00001011d00000009sv00001113sd00001207* +- ID_MODEL_FROM_DATABASE=EN-1207-TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (EN-1207-TX Fast Ethernet) + + pci:v00001011d00000009sv00001186sd00001100* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-500TX Fast Ethernet) + + pci:v00001011d00000009sv00001186sd00001112* +- ID_MODEL_FROM_DATABASE=DFE-570TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-570TX Fast Ethernet) + + pci:v00001011d00000009sv00001186sd00001140* +- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) + + pci:v00001011d00000009sv00001186sd00001142* +- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) + + pci:v00001011d00000009sv000011F6sd00000503* +- ID_MODEL_FROM_DATABASE=Freedomline Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (Freedomline Fast Ethernet) + + pci:v00001011d00000009sv00001282sd00009100* +- ID_MODEL_FROM_DATABASE=AEF-380TXD Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (AEF-380TXD Fast Ethernet) + + pci:v00001011d00000009sv00001385sd00001100* +- ID_MODEL_FROM_DATABASE=FA310TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (FA310TX Fast Ethernet) + + pci:v00001011d00000009sv00002646sd00000001* +- ID_MODEL_FROM_DATABASE=KNE100TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (KNE100TX Fast Ethernet) + + pci:v00001011d0000000A* + ID_MODEL_FROM_DATABASE=21230 Video Codec +@@ -9594,16 +9594,16 @@ pci:v00001011d0000000F* + ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] + + pci:v00001011d0000000Fsv00001011sd0000DEF1* +- ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) ++ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (DEFPA)) + + pci:v00001011d0000000Fsv0000103Csd0000DEF1* +- ID_MODEL_FROM_DATABASE=FDDI controller (3X-DEFPA) ++ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (3X-DEFPA)) + + pci:v00001011d00000014* + ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] + + pci:v00001011d00000014sv00001186sd00000100* +- ID_MODEL_FROM_DATABASE=DE-530+ ++ ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] (DE-530+) + + pci:v00001011d00000016* + ID_MODEL_FROM_DATABASE=DGLPB [OPPO] +@@ -9618,133 +9618,133 @@ pci:v00001011d00000019* + ID_MODEL_FROM_DATABASE=DECchip 21142/43 + + pci:v00001011d00000019sv00001011sd0000500A* +- ID_MODEL_FROM_DATABASE=DE500A Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500A Fast Ethernet) + + pci:v00001011d00000019sv00001011sd0000500B* +- ID_MODEL_FROM_DATABASE=DE500B Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500B Fast Ethernet) + + pci:v00001011d00000019sv00001014sd00000001* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 EtherJet Cardbus) + + pci:v00001011d00000019sv00001025sd00000315* +- ID_MODEL_FROM_DATABASE=ALN315 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ALN315 Fast Ethernet) + + pci:v00001011d00000019sv00001033sd0000800C* +- ID_MODEL_FROM_DATABASE=PC-9821-CS01 100BASE-TX Interface Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821-CS01 100BASE-TX Interface Card) + + pci:v00001011d00000019sv00001033sd0000800D* +- ID_MODEL_FROM_DATABASE=PC-9821NR-B06 100BASE-TX Interface Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821NR-B06 100BASE-TX Interface Card) + + pci:v00001011d00000019sv0000103Csd0000125A* +- ID_MODEL_FROM_DATABASE=10/100Base-TX (PCI) [A5506B] ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100Base-TX (PCI) [A5506B]) + + pci:v00001011d00000019sv0000108Dsd00000016* +- ID_MODEL_FROM_DATABASE=Rapidfire 2327 10/100 Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Rapidfire 2327 10/100 Ethernet) + + pci:v00001011d00000019sv0000108Dsd00000017* +- ID_MODEL_FROM_DATABASE=GoCard 2250 Ethernet 10/100 Cardbus ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (GoCard 2250 Ethernet 10/100 Cardbus) + + pci:v00001011d00000019sv000010B8sd00002005* +- ID_MODEL_FROM_DATABASE=SMC8032DT Extreme Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8032DT Extreme Ethernet 10/100) + + pci:v00001011d00000019sv000010B8sd00008034* +- ID_MODEL_FROM_DATABASE=SMC8034 Extreme Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8034 Extreme Ethernet 10/100) + + pci:v00001011d00000019sv000010EFsd00008169* +- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) + + pci:v00001011d00000019sv00001109sd00002A00* +- ID_MODEL_FROM_DATABASE=ANA-6911A/TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TX Fast Ethernet) + + pci:v00001011d00000019sv00001109sd00002B00* +- ID_MODEL_FROM_DATABASE=ANA-6911A/TXC Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TXC Fast Ethernet) + + pci:v00001011d00000019sv00001109sd00003000* +- ID_MODEL_FROM_DATABASE=ANA-6922/TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6922/TX Fast Ethernet) + + pci:v00001011d00000019sv00001113sd00001207* +- ID_MODEL_FROM_DATABASE=Cheetah Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cheetah Fast Ethernet) + + pci:v00001011d00000019sv00001113sd00002220* +- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) + + pci:v00001011d00000019sv0000115Dsd00000002* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet 10/100) + + pci:v00001011d00000019sv00001179sd00000203* +- ID_MODEL_FROM_DATABASE=Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Fast Ethernet) + + pci:v00001011d00000019sv00001179sd00000204* +- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001100* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001101* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001102* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001112* +- ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-570TX Quad Fast Ethernet) + + pci:v00001011d00000019sv000011F0sd00004235* +- ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (21143 [FASTLine-II UTP 10/100]) + + pci:v00001011d00000019sv00001259sd00002800* +- ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (AT-2800Tx Fast Ethernet) + + pci:v00001011d00000019sv00001266sd00000004* +- ID_MODEL_FROM_DATABASE=Eagle Fast EtherMAX ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Eagle Fast EtherMAX) + + pci:v00001011d00000019sv000012AFsd00000019* +- ID_MODEL_FROM_DATABASE=NetFlyer Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (NetFlyer Cardbus Fast Ethernet) + + pci:v00001011d00000019sv00001374sd00000001* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001374sd00000002* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001374sd00000007* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001374sd00000008* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001385sd00002100* +- ID_MODEL_FROM_DATABASE=FA510 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FA510) + + pci:v00001011d00000019sv00001395sd00000001* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet CardBus PC Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 Ethernet CardBus PC Card) + + pci:v00001011d00000019sv000013D1sd0000AB01* +- ID_MODEL_FROM_DATABASE=EtherFast 10/100 Cardbus (PCMPC200) ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherFast 10/100 Cardbus (PCMPC200)) + + pci:v00001011d00000019sv00001498sd0000000A* +- ID_MODEL_FROM_DATABASE=TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter) + + pci:v00001011d00000019sv00001498sd0000000B* +- ID_MODEL_FROM_DATABASE=TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter) + + pci:v00001011d00000019sv00001498sd0000000C* +- ID_MODEL_FROM_DATABASE=TPMC880-12 Single 10Base2 PMC Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-12 Single 10Base2 PMC Ethernet Adapter) + + pci:v00001011d00000019sv000014CBsd00000100* +- ID_MODEL_FROM_DATABASE=LNDL-100N 100Base-TX Ethernet PC Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (LNDL-100N 100Base-TX Ethernet PC Card) + + pci:v00001011d00000019sv00001668sd00002000* +- ID_MODEL_FROM_DATABASE=FastNet Pro (PE2000) ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FastNet Pro (PE2000)) + + pci:v00001011d00000019sv00002646sd00000001* +- ID_MODEL_FROM_DATABASE=KNE100TX ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE100TX) + + pci:v00001011d00000019sv00002646sd00000002* +- ID_MODEL_FROM_DATABASE=KNE-CB4TX ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE-CB4TX) + + pci:v00001011d00000019sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherExpress PRO/100 Mobile CardBus 32) + + pci:v00001011d0000001A* + ID_MODEL_FROM_DATABASE=Farallon PN9000SX Gigabit Ethernet +@@ -9780,46 +9780,46 @@ pci:v00001011d00000046* + ID_MODEL_FROM_DATABASE=DECchip 21554 + + pci:v00001011d00000046sv00000E11sd00004050* +- ID_MODEL_FROM_DATABASE=Smart Array 4200 Controller ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4200 Controller) + + pci:v00001011d00000046sv00000E11sd00004051* +- ID_MODEL_FROM_DATABASE=Smart Array 4250ES Controller ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4250ES Controller) + + pci:v00001011d00000046sv00000E11sd00004058* +- ID_MODEL_FROM_DATABASE=Smart Array 431 Controller ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 431 Controller) + + pci:v00001011d00000046sv0000103Csd000010C2* +- ID_MODEL_FROM_DATABASE=NetRAID-4M ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (NetRAID-4M) + + pci:v00001011d00000046sv000012D9sd0000000A* +- ID_MODEL_FROM_DATABASE=IP Telephony card ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (IP Telephony card) + + pci:v00001011d00000046sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (CT7 mainboard) + + pci:v00001011d00000046sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (CE7 mainboard) + + pci:v00001011d00000046sv00009005sd00000364* +- ID_MODEL_FROM_DATABASE=5400S (Mustang) ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) + + pci:v00001011d00000046sv00009005sd00000365* +- ID_MODEL_FROM_DATABASE=5400S (Mustang) ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) + + pci:v00001011d00000046sv00009005sd00001364* +- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) + + pci:v00001011d00000046sv00009005sd00001365* +- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) + + pci:v00001011d00000046sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CC8-1-BLUES ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (CC8-1-BLUES) + + pci:v00001011d00001065* + ID_MODEL_FROM_DATABASE=StrongARM DC21285 + + pci:v00001011d00001065sv00001069sd00000020* +- ID_MODEL_FROM_DATABASE=DAC960P / DAC1164P ++ ID_MODEL_FROM_DATABASE=StrongARM DC21285 (DAC960P / DAC1164P) + + pci:v00001012* + ID_VENDOR_FROM_DATABASE=Micronics Computers Inc +@@ -9858,13 +9858,13 @@ pci:v00001013d000000B8* + ID_MODEL_FROM_DATABASE=GD 5446 + + pci:v00001013d000000B8sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=GD 5446 (QEMU Virtual Machine) + + pci:v00001013d000000BC* + ID_MODEL_FROM_DATABASE=GD 5480 + + pci:v00001013d000000BCsv00001013sd000000BC* +- ID_MODEL_FROM_DATABASE=CL-GD5480 ++ ID_MODEL_FROM_DATABASE=GD 5480 (CL-GD5480) + + pci:v00001013d000000D0* + ID_MODEL_FROM_DATABASE=GD 5462 +@@ -9882,10 +9882,10 @@ pci:v00001013d000000D6* + ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] + + pci:v00001013d000000D6sv000013CEsd00008031* +- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) + + pci:v00001013d000000D6sv000013CFsd00008031* +- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) + + pci:v00001013d000000E8* + ID_MODEL_FROM_DATABASE=GD 5436U +@@ -9921,34 +9921,34 @@ pci:v00001013d00006001* + ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] + + pci:v00001013d00006001sv00001014sd00001010* +- ID_MODEL_FROM_DATABASE=CS4610 SoundFusion Audio Accelerator ++ ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] (CS4610 SoundFusion Audio Accelerator) + + pci:v00001013d00006003* + ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] + + pci:v00001013d00006003sv00001013sd00004280* +- ID_MODEL_FROM_DATABASE=Crystal SoundFusion PCI Audio Accelerator ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Crystal SoundFusion PCI Audio Accelerator) + + pci:v00001013d00006003sv00001014sd00000153* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A20m ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (ThinkPad 600X/A20m) + + pci:v00001013d00006003sv0000153Bsd0000112E* +- ID_MODEL_FROM_DATABASE=DMX XFire 1024 ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (DMX XFire 1024) + + pci:v00001013d00006003sv0000153Bsd00001136* +- ID_MODEL_FROM_DATABASE=SiXPack 5.1+ ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (SiXPack 5.1+) + + pci:v00001013d00006003sv00001681sd00000050* +- ID_MODEL_FROM_DATABASE=Game Theater XP ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Game Theater XP) + + pci:v00001013d00006003sv00001681sd0000A010* +- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo II ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo II) + + pci:v00001013d00006003sv00001681sd0000A011* +- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo III 7.1 ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo III 7.1) + + pci:v00001013d00006003sv00005053sd00003357* +- ID_MODEL_FROM_DATABASE=Santa Cruz ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Santa Cruz) + + pci:v00001013d00006004* + ID_MODEL_FROM_DATABASE=CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] +@@ -10029,16 +10029,16 @@ pci:v00001014d0000002E* + ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] + + pci:v00001014d0000002Esv00001014sd0000002E* +- ID_MODEL_FROM_DATABASE=ServeRAID-3x ++ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-3x) + + pci:v00001014d0000002Esv00001014sd0000022E* +- ID_MODEL_FROM_DATABASE=ServeRAID-4H ++ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-4H) + + pci:v00001014d00000031* + ID_MODEL_FROM_DATABASE=2 Port Serial Adapter + + pci:v00001014d00000031sv00001014sd00000031* +- ID_MODEL_FROM_DATABASE=2721 WAN IOA - 2 Port Sync Serial Adapter ++ ID_MODEL_FROM_DATABASE=2 Port Serial Adapter (2721 WAN IOA - 2 Port Sync Serial Adapter) + + pci:v00001014d00000036* + ID_MODEL_FROM_DATABASE=PCI to 32-bit LocalBus Bridge [Miami] +@@ -10056,25 +10056,25 @@ pci:v00001014d0000003E* + ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller + + pci:v00001014d0000003Esv00001014sd0000003E* +- ID_MODEL_FROM_DATABASE=Token-Ring Adapter ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter) + + pci:v00001014d0000003Esv00001014sd000000CD* +- ID_MODEL_FROM_DATABASE=Token-Ring Adapter + Wake-On-LAN ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter + Wake-On-LAN) + + pci:v00001014d0000003Esv00001014sd000000CE* +- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2) + + pci:v00001014d0000003Esv00001014sd000000CF* +- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter Special ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter Special) + + pci:v00001014d0000003Esv00001014sd000000E4* +- ID_MODEL_FROM_DATABASE=High-Speed 100/16/4 Token-Ring Adapter ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (High-Speed 100/16/4 Token-Ring Adapter) + + pci:v00001014d0000003Esv00001014sd000000E5* +- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 + Wake-On-LAN ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2 + Wake-On-LAN) + + pci:v00001014d0000003Esv00001014sd0000016D* +- ID_MODEL_FROM_DATABASE=iSeries 2744 Card ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (iSeries 2744 Card) + + pci:v00001014d00000045* + ID_MODEL_FROM_DATABASE=SSA Adapter +@@ -10131,7 +10131,7 @@ pci:v00001014d00000090* + ID_MODEL_FROM_DATABASE=GXT 3000P + + pci:v00001014d00000090sv00001014sd0000008E* +- ID_MODEL_FROM_DATABASE=GXT-3000P ++ ID_MODEL_FROM_DATABASE=GXT 3000P (GXT-3000P) + + pci:v00001014d00000091* + ID_MODEL_FROM_DATABASE=SSA Adapter +@@ -10143,13 +10143,13 @@ pci:v00001014d00000096* + ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller + + pci:v00001014d00000096sv00001014sd00000097* +- ID_MODEL_FROM_DATABASE=iSeries 2778 DASD IOA ++ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2778 DASD IOA) + + pci:v00001014d00000096sv00001014sd00000098* +- ID_MODEL_FROM_DATABASE=iSeries 2763 DASD IOA ++ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2763 DASD IOA) + + pci:v00001014d00000096sv00001014sd00000099* +- ID_MODEL_FROM_DATABASE=iSeries 2748 DASD IOA ++ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2748 DASD IOA) + + pci:v00001014d0000009F* + ID_MODEL_FROM_DATABASE=PCI 4758 Cryptographic Accelerator +@@ -10164,7 +10164,7 @@ pci:v00001014d000000B7* + ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] + + pci:v00001014d000000B7sv00001092sd000000B8* +- ID_MODEL_FROM_DATABASE=FireGL1 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] (FireGL1 AGP 32Mb) + + pci:v00001014d000000B8* + ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter +@@ -10188,13 +10188,13 @@ pci:v00001014d00000142* + ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input + + pci:v00001014d00000142sv00001014sd00000143* +- ID_MODEL_FROM_DATABASE=Yotta Input Controller (ytin) ++ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input (Yotta Input Controller (ytin)) + + pci:v00001014d00000144* + ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output + + pci:v00001014d00000144sv00001014sd00000145* +- ID_MODEL_FROM_DATABASE=Yotta Output Controller (ytout) ++ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output (Yotta Output Controller (ytout)) + + pci:v00001014d00000156* + ID_MODEL_FROM_DATABASE=405GP PLB to PCI Bridge +@@ -10218,10 +10218,10 @@ pci:v00001014d00000180* + ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller + + pci:v00001014d00000180sv00001014sd00000241* +- ID_MODEL_FROM_DATABASE=iSeries 2757 DASD IOA ++ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (iSeries 2757 DASD IOA) + + pci:v00001014d00000180sv00001014sd00000264* +- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X U320 SCSI RAID Adapter (2780) ++ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (Quad Channel PCI-X U320 SCSI RAID Adapter (2780)) + + pci:v00001014d00000188* + ID_MODEL_FROM_DATABASE=EADS-X PCI-X to PCI-X Bridge +@@ -10233,28 +10233,28 @@ pci:v00001014d000001BD* + ID_MODEL_FROM_DATABASE=ServeRAID Controller + + pci:v00001014d000001BDsv00001014sd000001BD* +- ID_MODEL_FROM_DATABASE=ServeRAID 4Lx ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 4Lx) + + pci:v00001014d000001BDsv00001014sd000001BE* +- ID_MODEL_FROM_DATABASE=ServeRAID-4M ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4M) + + pci:v00001014d000001BDsv00001014sd000001BF* +- ID_MODEL_FROM_DATABASE=ServeRAID-4L ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4L) + + pci:v00001014d000001BDsv00001014sd00000208* +- ID_MODEL_FROM_DATABASE=ServeRAID-4Mx ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Mx) + + pci:v00001014d000001BDsv00001014sd0000020E* +- ID_MODEL_FROM_DATABASE=ServeRAID-4Lx ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Lx) + + pci:v00001014d000001BDsv00001014sd0000022E* +- ID_MODEL_FROM_DATABASE=ServeRAID-4H ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4H) + + pci:v00001014d000001BDsv00001014sd00000258* +- ID_MODEL_FROM_DATABASE=ServeRAID-5i ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) + + pci:v00001014d000001BDsv00001014sd00000259* +- ID_MODEL_FROM_DATABASE=ServeRAID-5i ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) + + pci:v00001014d000001C1* + ID_MODEL_FROM_DATABASE=64bit/66MHz PCI ATM 155 UTP +@@ -10266,10 +10266,10 @@ pci:v00001014d000001EF* + ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge + + pci:v00001014d000001EFsv00001734sd0000102B* +- ID_MODEL_FROM_DATABASE=PCEAS PCI-X Dual Port ESCON Adapter ++ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAS PCI-X Dual Port ESCON Adapter) + + pci:v00001014d000001EFsv00001734sd000010F8* +- ID_MODEL_FROM_DATABASE=PCEAT PCI-Express Dual Port ESCON Adapter ++ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAT PCI-Express Dual Port ESCON Adapter) + + pci:v00001014d000001FF* + ID_MODEL_FROM_DATABASE=10/100 Mbps Ethernet +@@ -10278,13 +10278,13 @@ pci:v00001014d00000219* + ID_MODEL_FROM_DATABASE=Multiport Serial Adapter + + pci:v00001014d00000219sv00001014sd0000021A* +- ID_MODEL_FROM_DATABASE=Dual RVX ++ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Dual RVX) + + pci:v00001014d00000219sv00001014sd00000251* +- ID_MODEL_FROM_DATABASE=Internal Modem/RVX ++ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Internal Modem/RVX) + + pci:v00001014d00000219sv00001014sd00000252* +- ID_MODEL_FROM_DATABASE=Quad Internal Modem ++ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Quad Internal Modem) + + pci:v00001014d0000021B* + ID_MODEL_FROM_DATABASE=GXT6500P Graphics Adapter +@@ -10299,16 +10299,16 @@ pci:v00001014d0000028C* + ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller + + pci:v00001014d0000028Csv00001014sd0000028D* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR SAS RAID Adapter (572E) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR SAS RAID Adapter (572E)) + + pci:v00001014d0000028Csv00001014sd000002BE* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B)) + + pci:v00001014d0000028Csv00001014sd000002C0* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI Adapter (571A) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI Adapter (571A)) + + pci:v00001014d0000028Csv00001014sd0000030D* +- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575B) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575B)) + + pci:v00001014d000002A1* + ID_MODEL_FROM_DATABASE=Calgary PCI-X Host Bridge +@@ -10317,13 +10317,13 @@ pci:v00001014d000002BD* + ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller + + pci:v00001014d000002BDsv00001014sd000002C1* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) + + pci:v00001014d000002BDsv00001014sd000002C2* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/571D) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)) + + pci:v00001014d000002BDsv00001014sd00000338* +- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575C) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575C)) + + pci:v00001014d00000302* + ID_MODEL_FROM_DATABASE=Winnipeg PCI-X Host Bridge +@@ -10338,88 +10338,88 @@ pci:v00001014d0000032D* + ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip + + pci:v00001014d0000032Dsv00001014sd000003A1* +- ID_MODEL_FROM_DATABASE=PCIe PowerXCell 8i Cell Accelerator Board ++ ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip (PCIe PowerXCell 8i Cell Accelerator Board) + + pci:v00001014d00000339* + ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller + + pci:v00001014d00000339sv00001014sd0000030A* +- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS RAID Adapter (574E) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS RAID Adapter (574E)) + + pci:v00001014d00000339sv00001014sd0000033A* +- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS Adapter (57B3) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS Adapter (57B3)) + + pci:v00001014d00000339sv00001014sd0000035C* +- ID_MODEL_FROM_DATABASE=PCIe x8 Internal 3Gb SAS adapter (57CC) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe x8 Internal 3Gb SAS adapter (57CC)) + + pci:v00001014d00000339sv00001014sd00000360* +- ID_MODEL_FROM_DATABASE=PCI-E Auxiliary Cache Adapter (57B7) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCI-E Auxiliary Cache Adapter (57B7)) + + pci:v00001014d0000033D* + ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) + + pci:v00001014d0000033Dsv00001014sd0000033C* +- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5)) + + pci:v00001014d0000033Dsv00001014sd00000353* +- ID_MODEL_FROM_DATABASE=PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3)) + + pci:v00001014d0000033Dsv00001014sd00000354* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Dual-port (57C4) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Dual-port (57C4)) + + pci:v00001014d0000033Dsv00001014sd00000356* +- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D)) + + pci:v00001014d0000033Dsv00001014sd0000035F* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57B2) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Quad-port (57B2)) + + pci:v00001014d0000034A* + ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) + + pci:v00001014d0000034Asv00001014sd0000033B* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS RAID Adapter Quad-port (57B4) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS RAID Adapter Quad-port (57B4)) + + pci:v00001014d0000034Asv00001014sd00000355* +- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1)) + + pci:v00001014d0000034Asv00001014sd00000357* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57C6) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS Adapter Quad-port (57C6)) + + pci:v00001014d0000034Asv00001014sd0000035D* +- ID_MODEL_FROM_DATABASE=PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8)) + + pci:v00001014d0000034Asv00001014sd0000035E* +- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE)) + + pci:v00001014d0000034Asv00001014sd000003FB* +- ID_MODEL_FROM_DATABASE=PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5)) + + pci:v00001014d0000034Asv00001014sd000003FE* +- ID_MODEL_FROM_DATABASE=PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8)) + + pci:v00001014d0000034Asv00001014sd000003FF* +- ID_MODEL_FROM_DATABASE=PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7)) + + pci:v00001014d0000034Asv00001014sd00000474* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB)) + + pci:v00001014d0000034Asv00001014sd00000475* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC)) + + pci:v00001014d0000034Asv00001014sd00000499* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED)) + + pci:v00001014d0000034Asv00001014sd0000049A* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE)) + + pci:v00001014d0000034Asv00001014sd000004C7* +- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA)) + + pci:v00001014d0000034Asv00001014sd000004C8* +- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2)) + + pci:v00001014d0000034Asv00001014sd00000C49* +- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) + + pci:v00001014d000004AA* + ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) +@@ -10461,13 +10461,13 @@ pci:v0000101Ad00000007* + ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G + + pci:v0000101Ad00000007sv0000101Asd00000019* +- ID_MODEL_FROM_DATABASE=BYNET BIC2C ++ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2C) + + pci:v0000101Ad00000007sv0000101Asd0000001C* +- ID_MODEL_FROM_DATABASE=BYNET BIC2G ++ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2G) + + pci:v0000101Ad00000007sv0000101Asd0000001F* +- ID_MODEL_FROM_DATABASE=BYNET BIC4G ++ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC4G) + + pci:v0000101Ad00000009* + ID_MODEL_FROM_DATABASE=PQS Memory Controller +@@ -10488,19 +10488,19 @@ pci:v0000101Ad00001DC1* + ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M + + pci:v0000101Ad00001DC1sv0000101Asd00000019* +- ID_MODEL_FROM_DATABASE=BIC2M ++ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC2M) + + pci:v0000101Ad00001DC1sv0000101Asd0000001F* +- ID_MODEL_FROM_DATABASE=BIC4M ++ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC4M) + + pci:v0000101Ad00001DC1sv0000101Asd00000ECE* +- ID_MODEL_FROM_DATABASE=BYA4M ++ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BYA4M) + + pci:v0000101Ad00001FA8* + ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) + + pci:v0000101Ad00001FA8sv0000101Asd000000C3* +- ID_MODEL_FROM_DATABASE=BYNET BIC2SE ++ ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) (BYNET BIC2SE) + + pci:v0000101B* + ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor +@@ -10557,46 +10557,46 @@ pci:v0000101Ed00001960* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v0000101Ed00001960sv0000101Esd00000471* +- ID_MODEL_FROM_DATABASE=MegaRAID 471 Enterprise 1600 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (471 Enterprise 1600 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000475* +- ID_MODEL_FROM_DATABASE=MegaRAID 475 Express 500/500LC RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (475 Express 500/500LC RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000477* +- ID_MODEL_FROM_DATABASE=MegaRAID 477 Elite 3100 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (477 Elite 3100 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000493* +- ID_MODEL_FROM_DATABASE=MegaRAID 493 Elite 1600 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (493 Elite 1600 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000494* +- ID_MODEL_FROM_DATABASE=MegaRAID 494 Elite 1650 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (494 Elite 1650 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000503* +- ID_MODEL_FROM_DATABASE=MegaRAID 503 Enterprise 1650 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (503 Enterprise 1650 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000511* +- ID_MODEL_FROM_DATABASE=MegaRAID 511 i4 IDE RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (511 i4 IDE RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000522* +- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4133 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4133 RAID Controller) + + pci:v0000101Ed00001960sv00001028sd00000471* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/QC) + + pci:v0000101Ed00001960sv00001028sd00000475* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/SC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/SC) + + pci:v0000101Ed00001960sv00001028sd00000493* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/DC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/DC) + + pci:v0000101Ed00001960sv00001028sd00000511* +- ID_MODEL_FROM_DATABASE=PowerEdge Cost Effective RAID Controller ATA100/4Ch ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Cost Effective RAID Controller ATA100/4Ch) + + pci:v0000101Ed00001960sv0000103Csd000060E7* +- ID_MODEL_FROM_DATABASE=NetRAID-1M ++ ID_MODEL_FROM_DATABASE=MegaRAID (NetRAID-1M) + + pci:v0000101Ed00001960sv0000103Csd000060E8* +- ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] ++ ID_MODEL_FROM_DATABASE=MegaRAID (NetRaid 2M [AMI MegaRaid 493]) + + pci:v0000101Ed00009010* + ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller +@@ -10623,7 +10623,7 @@ pci:v0000101Ed00009063* + ID_MODEL_FROM_DATABASE=MegaRAC + + pci:v0000101Ed00009063sv0000101Esd00000767* +- ID_MODEL_FROM_DATABASE=Dell Remote Assistant Card 2 ++ ID_MODEL_FROM_DATABASE=MegaRAC (Dell Remote Assistant Card 2) + + pci:v0000101F* + ID_VENDOR_FROM_DATABASE=PictureTel +@@ -10731,7 +10731,7 @@ pci:v00001022d00001510* + ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex + + pci:v00001022d00001510sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex (PURE Fusion Mini) + + pci:v00001022d00001512* + ID_MODEL_FROM_DATABASE=Family 14h Processor Root Port +@@ -10842,79 +10842,79 @@ pci:v00001022d00002000* + ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] + + pci:v00001022d00002000sv00001014sd00002000* +- ID_MODEL_FROM_DATABASE=NetFinity 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (NetFinity 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001022sd00002000* +- ID_MODEL_FROM_DATABASE=PCnet - Fast 79C971 ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PCnet - Fast 79C971) + + pci:v00001022d00002000sv0000103Csd0000104C* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd00001064* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd00001065* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd0000106C* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd0000106E* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd000010EA* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv00001113sd00001220* +- ID_MODEL_FROM_DATABASE=EN1220 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (EN1220 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002450* +- ID_MODEL_FROM_DATABASE=AT-2450 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002454* +- ID_MODEL_FROM_DATABASE=AT-2450v4 10Mb Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450v4 10Mb Ethernet Adapter) + + pci:v00001022d00002000sv00001259sd00002700* +- ID_MODEL_FROM_DATABASE=AT-2700TX 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700TX 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002701* +- ID_MODEL_FROM_DATABASE=AT-2700FX 100Mb Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FX 100Mb Ethernet) + + pci:v00001022d00002000sv00001259sd00002702* +- ID_MODEL_FROM_DATABASE=AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002703* +- ID_MODEL_FROM_DATABASE=AT-2701FX ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FX) + + pci:v00001022d00002000sv00001259sd00002704* +- ID_MODEL_FROM_DATABASE=AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet) + + pci:v00001022d00002000sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00001022d00002000sv00004C53sd00001010* +- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CP5/CR6 mainboard) + + pci:v00001022d00002000sv00004C53sd00001020* +- ID_MODEL_FROM_DATABASE=VR6 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (VR6 mainboard) + + pci:v00001022d00002000sv00004C53sd00001030* +- ID_MODEL_FROM_DATABASE=PC5 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC5 mainboard) + + pci:v00001022d00002000sv00004C53sd00001040* +- ID_MODEL_FROM_DATABASE=CL7 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CL7 mainboard) + + pci:v00001022d00002000sv00004C53sd00001060* +- ID_MODEL_FROM_DATABASE=PC7 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC7 mainboard) + + pci:v00001022d00002001* + ID_MODEL_FROM_DATABASE=79c978 [HomePNA] + + pci:v00001022d00002001sv00001092sd00000A78* +- ID_MODEL_FROM_DATABASE=Multimedia Home Network Adapter ++ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (Multimedia Home Network Adapter) + + pci:v00001022d00002001sv00001668sd00000299* +- ID_MODEL_FROM_DATABASE=ActionLink Home Network Adapter ++ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (ActionLink Home Network Adapter) + + pci:v00001022d00002003* + ID_MODEL_FROM_DATABASE=Am 1771 MBW [Alchemy] +@@ -10923,7 +10923,7 @@ pci:v00001022d00002020* + ID_MODEL_FROM_DATABASE=53c974 [PCscsi] + + pci:v00001022d00002020sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=53c974 [PCscsi] (QEMU Virtual Machine) + + pci:v00001022d00002040* + ID_MODEL_FROM_DATABASE=79c974 +@@ -11043,7 +11043,7 @@ pci:v00001022d00007440* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA + + pci:v00001022d00007440sv00001043sd00008044* +- ID_MODEL_FROM_DATABASE=A7M-D Mainboard ++ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA (A7M-D Mainboard) + + pci:v00001022d00007441* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] IDE +@@ -11052,7 +11052,7 @@ pci:v00001022d00007443* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI + + pci:v00001022d00007443sv00001043sd00008044* +- ID_MODEL_FROM_DATABASE=A7M-D Mainboard ++ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI (A7M-D Mainboard) + + pci:v00001022d00007445* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] Audio +@@ -11088,7 +11088,7 @@ pci:v00001022d00007460* + ID_MODEL_FROM_DATABASE=AMD-8111 PCI + + pci:v00001022d00007460sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 PCI (HDAMB) + + pci:v00001022d00007461* + ID_MODEL_FROM_DATABASE=AMD-8111 USB +@@ -11103,22 +11103,22 @@ pci:v00001022d00007464* + ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI + + pci:v00001022d00007464sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI (HDAMB) + + pci:v00001022d00007468* + ID_MODEL_FROM_DATABASE=AMD-8111 LPC + + pci:v00001022d00007468sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 LPC (HDAMB) + + pci:v00001022d00007469* + ID_MODEL_FROM_DATABASE=AMD-8111 IDE + + pci:v00001022d00007469sv00001022sd00002B80* +- ID_MODEL_FROM_DATABASE=AMD-8111 IDE [Quartet] ++ ID_MODEL_FROM_DATABASE=AMD-8111 IDE ([Quartet]) + + pci:v00001022d00007469sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 IDE (HDAMB) + + pci:v00001022d0000746A* + ID_MODEL_FROM_DATABASE=AMD-8111 SMBus 2.0 +@@ -11127,13 +11127,13 @@ pci:v00001022d0000746B* + ID_MODEL_FROM_DATABASE=AMD-8111 ACPI + + pci:v00001022d0000746Bsv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 ACPI (HDAMB) + + pci:v00001022d0000746D* + ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio + + pci:v00001022d0000746Dsv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio (HDAMB) + + pci:v00001022d0000746E* + ID_MODEL_FROM_DATABASE=AMD-8111 MC97 Modem +@@ -11148,10 +11148,10 @@ pci:v00001022d00007801* + ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] + + pci:v00001022d00007801sv0000103Csd0000168B* +- ID_MODEL_FROM_DATABASE=ProBook 4535s Notebook ++ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 4535s Notebook) + + pci:v00001022d00007801sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 455 G1 Notebook) + + pci:v00001022d00007802* + ID_MODEL_FROM_DATABASE=FCH SATA Controller [RAID mode] +@@ -11172,25 +11172,25 @@ pci:v00001022d00007807* + ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller + + pci:v00001022d00007807sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d00007808* + ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller + + pci:v00001022d00007808sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d00007809* + ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller + + pci:v00001022d00007809sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d0000780B* + ID_MODEL_FROM_DATABASE=FCH SMBus Controller + + pci:v00001022d0000780Bsv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH SMBus Controller (ProBook 455 G1 Notebook) + + pci:v00001022d0000780C* + ID_MODEL_FROM_DATABASE=FCH IDE Controller +@@ -11199,16 +11199,16 @@ pci:v00001022d0000780D* + ID_MODEL_FROM_DATABASE=FCH Azalia Controller + + pci:v00001022d0000780Dsv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (ProBook 455 G1 Notebook) + + pci:v00001022d0000780Dsv00001043sd00008444* +- ID_MODEL_FROM_DATABASE=F2A85-M Series ++ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (F2A85-M Series) + + pci:v00001022d0000780E* + ID_MODEL_FROM_DATABASE=FCH LPC Bridge + + pci:v00001022d0000780Esv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH LPC Bridge (ProBook 455 G1 Notebook) + + pci:v00001022d0000780F* + ID_MODEL_FROM_DATABASE=FCH PCI Bridge +@@ -11223,7 +11223,7 @@ pci:v00001022d00007814* + ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller + + pci:v00001022d00007814sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d00007900* + ID_MODEL_FROM_DATABASE=FCH SATA Controller [IDE mode] +@@ -11262,16 +11262,16 @@ pci:v00001022d00009600* + ID_MODEL_FROM_DATABASE=RS780 Host Bridge + + pci:v00001022d00009600sv00001043sd000082F1* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=RS780 Host Bridge (M3A78-EH Motherboard) + + pci:v00001022d00009601* + ID_MODEL_FROM_DATABASE=RS880 Host Bridge + + pci:v00001022d00009601sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (A785GM-M) + + pci:v00001022d00009601sv00001043sd0000843E* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (M5A88-V EVO) + + pci:v00001022d00009602* + ID_MODEL_FROM_DATABASE=RS780/RS880 PCI to PCI bridge (int gfx) +@@ -11316,7 +11316,7 @@ pci:v00001023d00002001* + ID_MODEL_FROM_DATABASE=4DWave NX + + pci:v00001023d00002001sv0000122Dsd00001400* +- ID_MODEL_FROM_DATABASE=Trident PCI288-Q3DII (NX) ++ ID_MODEL_FROM_DATABASE=4DWave NX (Trident PCI288-Q3DII (NX)) + + pci:v00001023d00002100* + ID_MODEL_FROM_DATABASE=CyberBlade XP4m32 +@@ -11328,13 +11328,13 @@ pci:v00001023d00008400* + ID_MODEL_FROM_DATABASE=CyberBlade/i7 + + pci:v00001023d00008400sv00001023sd00008400* +- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade/i7 (CyberBlade i7 AGP) + + pci:v00001023d00008420* + ID_MODEL_FROM_DATABASE=CyberBlade/i7d + + pci:v00001023d00008420sv00000E11sd0000B15A* +- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade/i7d (CyberBlade i7 AGP) + + pci:v00001023d00008500* + ID_MODEL_FROM_DATABASE=CyberBlade/i1 +@@ -11343,19 +11343,19 @@ pci:v00001023d00008520* + ID_MODEL_FROM_DATABASE=CyberBlade i1 + + pci:v00001023d00008520sv00000E11sd0000B16E* +- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) + + pci:v00001023d00008520sv00001023sd00008520* +- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) + + pci:v00001023d00008620* + ID_MODEL_FROM_DATABASE=CyberBlade/i1 + + pci:v00001023d00008620sv00001014sd00000502* +- ID_MODEL_FROM_DATABASE=ThinkPad R30/T30 ++ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (ThinkPad R30/T30) + + pci:v00001023d00008620sv00001014sd00001025* +- ID_MODEL_FROM_DATABASE=Travelmate 352TE ++ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (Travelmate 352TE) + + pci:v00001023d00008820* + ID_MODEL_FROM_DATABASE=CyberBlade XPAi1 +@@ -11460,7 +11460,7 @@ pci:v00001023d00009880* + ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP + + pci:v00001023d00009880sv00001023sd00009880* +- ID_MODEL_FROM_DATABASE=Blade 3D ++ ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP (Blade 3D) + + pci:v00001023d00009910* + ID_MODEL_FROM_DATABASE=CyberBlade/XP +@@ -11523,7 +11523,7 @@ pci:v00001025d00001533* + ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge + + pci:v00001025d00001533sv000010B9sd00001533* +- ID_MODEL_FROM_DATABASE=ALI M1533 Aladdin IV/V ISA South Bridge ++ ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge (ALI M1533 Aladdin IV/V ISA South Bridge) + + pci:v00001025d00001535* + ID_MODEL_FROM_DATABASE=M1535 PCI Bridge + Super I/O + FIR +@@ -11532,7 +11532,7 @@ pci:v00001025d00001541* + ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] + + pci:v00001025d00001541sv000010B9sd00001541* +- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP+PCI North Bridge ++ ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] (ALI M1541 Aladdin V/V+ AGP+PCI North Bridge) + + pci:v00001025d00001542* + ID_MODEL_FROM_DATABASE=M1542 Northbridge [Aladdin V] +@@ -11658,31 +11658,31 @@ pci:v00001028d00000001* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si + + pci:v00001028d00000001sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=PowerEdge 2400 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si (PowerEdge 2400) + + pci:v00001028d00000002* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di + + pci:v00001028d00000002sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=PowerEdge 4400 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PowerEdge 4400) + + pci:v00001028d00000002sv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=PERC 3/DiV [Viper] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiV [Viper]) + + pci:v00001028d00000002sv00001028sd000000D9* +- ID_MODEL_FROM_DATABASE=PERC 3/DiL [Lexus] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiL [Lexus]) + + pci:v00001028d00000003* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si + + pci:v00001028d00000003sv00001028sd00000003* +- ID_MODEL_FROM_DATABASE=PowerEdge 2450 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si (PowerEdge 2450) + + pci:v00001028d00000004* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] + + pci:v00001028d00000004sv00001028sd00000004* +- ID_MODEL_FROM_DATABASE=PERC 3/DiF [Iguana] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] (PERC 3/DiF [Iguana]) + + pci:v00001028d00000006* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di +@@ -11700,13 +11700,13 @@ pci:v00001028d0000000A* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di + + pci:v00001028d0000000Asv00001028sd00000106* +- ID_MODEL_FROM_DATABASE=PERC 3/DiJ [Jaguar] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiJ [Jaguar]) + + pci:v00001028d0000000Asv00001028sd0000011B* +- ID_MODEL_FROM_DATABASE=PERC 3/DiD [Dagger] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiD [Dagger]) + + pci:v00001028d0000000Asv00001028sd00000121* +- ID_MODEL_FROM_DATABASE=PERC 3/DiB [Boxster] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiB [Boxster]) + + pci:v00001028d0000000C* + ID_MODEL_FROM_DATABASE=Embedded Remote Access or ERA/O +@@ -11721,7 +11721,7 @@ pci:v00001028d0000000F* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di + + pci:v00001028d0000000Fsv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di (PowerEdge 1750) + + pci:v00001028d00000010* + ID_MODEL_FROM_DATABASE=Remote Access Card 4 +@@ -11736,19 +11736,19 @@ pci:v00001028d00000013* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 + + pci:v00001028d00000013sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Si ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Si) + + pci:v00001028d00000013sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000013sv00001028sd0000016E* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000013sv00001028sd0000016F* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000013sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000014* + ID_MODEL_FROM_DATABASE=Remote Access Card 4 Daughter Card SMIC interface +@@ -11757,19 +11757,19 @@ pci:v00001028d00000015* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 + + pci:v00001028d00000015sv00001028sd00001F01* +- ID_MODEL_FROM_DATABASE=PERC 5/E Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/E Adapter RAID Controller) + + pci:v00001028d00000015sv00001028sd00001F02* +- ID_MODEL_FROM_DATABASE=PERC 5/i Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Adapter RAID Controller) + + pci:v00001028d00000015sv00001028sd00001F03* +- ID_MODEL_FROM_DATABASE=PERC 5/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Integrated RAID Controller) + + pci:v00001028d00000016* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 + + pci:v00001028d00000016sv00001028sd00001F24* +- ID_MODEL_FROM_DATABASE=PERC S300 Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 (PERC S300 Controller) + + pci:v00001029* + ID_VENDOR_FROM_DATABASE=Siemens Nixdorf IS +@@ -11787,28 +11787,28 @@ pci:v0000102Ad0000001F* + ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers + + pci:v0000102Ad0000001Fsv00009005sd0000000F* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) + + pci:v0000102Ad0000001Fsv00009005sd00000106* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) + + pci:v0000102Ad0000001Fsv00009005sd0000A180* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) + + pci:v0000102Ad000000C5* + ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller + + pci:v0000102Ad000000C5sv00001028sd000000C5* +- ID_MODEL_FROM_DATABASE=PowerEdge 2550/2650/4600 ++ ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller (PowerEdge 2550/2650/4600) + + pci:v0000102Ad000000CF* + ID_MODEL_FROM_DATABASE=AIC-7899P U160/m + + pci:v0000102Ad000000CFsv00001028sd00000106* +- ID_MODEL_FROM_DATABASE=PowerEdge 4600 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 4600) + + pci:v0000102Ad000000CFsv00001028sd00000121* +- ID_MODEL_FROM_DATABASE=PowerEdge 2650 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2650) + + pci:v0000102B* + ID_VENDOR_FROM_DATABASE=Matrox Electronics Systems Ltd. +@@ -11829,34 +11829,34 @@ pci:v0000102Bd0000051A* + ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] + + pci:v0000102Bd0000051Asv0000102Bsd00000100* +- ID_MODEL_FROM_DATABASE=MGA-1064SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1064SG Mystique) + + pci:v0000102Bd0000051Asv0000102Bsd00001100* +- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) + + pci:v0000102Bd0000051Asv0000102Bsd00001200* +- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) + + pci:v0000102Bd0000051Asv00001100sd0000102B* +- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) + + pci:v0000102Bd0000051Asv0000110Asd00000018* +- ID_MODEL_FROM_DATABASE=Scenic Pro C5 (D1025) ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (Scenic Pro C5 (D1025)) + + pci:v0000102Bd0000051B* + ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] + + pci:v0000102Bd0000051Bsv0000102Bsd0000051B* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051Bsv0000102Bsd00001100* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051Bsv0000102Bsd00001200* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051Bsv0000102Bsd00002100* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051E* + ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] AGP +@@ -11868,391 +11868,391 @@ pci:v0000102Bd00000520* + ID_MODEL_FROM_DATABASE=MGA G200 + + pci:v0000102Bd00000520sv0000102Bsd0000DBC2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000DBC8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000DBE2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000DBE8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G200 SD ++ ID_MODEL_FROM_DATABASE=MGA G200 (Millennium G200 SD) + + pci:v0000102Bd00000520sv0000102Bsd0000FF04* +- ID_MODEL_FROM_DATABASE=Marvel G200 ++ ID_MODEL_FROM_DATABASE=MGA G200 (Marvel G200) + + pci:v0000102Bd00000521* + ID_MODEL_FROM_DATABASE=MGA G200 AGP + + pci:v0000102Bd00000521sv00001014sd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd000048E9* +- ID_MODEL_FROM_DATABASE=Mystique G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd000048F8* +- ID_MODEL_FROM_DATABASE=Millennium G200 SD AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 SD AGP) + + pci:v0000102Bd00000521sv0000102Bsd00004A60* +- ID_MODEL_FROM_DATABASE=Millennium G200 LE AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 LE AGP) + + pci:v0000102Bd00000521sv0000102Bsd00004A64* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000C93C* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000C9B0* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000C9BC* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000CA60* +- ID_MODEL_FROM_DATABASE=Millennium G250 LE AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 LE AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000CA6C* +- ID_MODEL_FROM_DATABASE=Millennium G250 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000DBBC* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000DBC2* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBC3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBC8* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD4* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD5* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD9* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBE2* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBE3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBE8* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF4* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF5* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF9* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000F806* +- ID_MODEL_FROM_DATABASE=Mystique G200 Video AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 Video AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF00* +- ID_MODEL_FROM_DATABASE=MGA-G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF02* +- ID_MODEL_FROM_DATABASE=Mystique G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF04* +- ID_MODEL_FROM_DATABASE=Marvel G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Marvel G200 AGP) + + pci:v0000102Bd00000521sv0000110Asd00000032* +- ID_MODEL_FROM_DATABASE=MGA-G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) + + pci:v0000102Bd00000522* + ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) + + pci:v0000102Bd00000522sv0000103Csd000031FA* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) (ProLiant DL140 G3) + + pci:v0000102Bd00000525* + ID_MODEL_FROM_DATABASE=MGA G400/G450 + + pci:v0000102Bd00000525sv00000E11sd0000B16F* +- ID_MODEL_FROM_DATABASE=MGA-G400 AGP ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (MGA-G400 AGP) + + pci:v0000102Bd00000525sv0000102Bsd00000328* +- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) + + pci:v0000102Bd00000525sv0000102Bsd00000338* +- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) + + pci:v0000102Bd00000525sv0000102Bsd00000378* +- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SDRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SDRAM) + + pci:v0000102Bd00000525sv0000102Bsd00000541* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head) + + pci:v0000102Bd00000525sv0000102Bsd00000542* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX) + + pci:v0000102Bd00000525sv0000102Bsd00000543* +- ID_MODEL_FROM_DATABASE=Millennium G450 Single Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Single Head LX) + + pci:v0000102Bd00000525sv0000102Bsd00000641* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head) + + pci:v0000102Bd00000525sv0000102Bsd00000642* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head LX) + + pci:v0000102Bd00000525sv0000102Bsd00000643* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Single Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Single Head LX) + + pci:v0000102Bd00000525sv0000102Bsd000007C0* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LE ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LE) + + pci:v0000102Bd00000525sv0000102Bsd000007C1* +- ID_MODEL_FROM_DATABASE=Millennium G450 SDR Dual Head LE ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 SDR Dual Head LE) + + pci:v0000102Bd00000525sv0000102Bsd00000D41* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head PCI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head PCI) + + pci:v0000102Bd00000525sv0000102Bsd00000D42* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX PCI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX PCI) + + pci:v0000102Bd00000525sv0000102Bsd00000D43* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb Dual Head PCI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb Dual Head PCI) + + pci:v0000102Bd00000525sv0000102Bsd00000E00* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000E01* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000E02* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000E03* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000F80* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) + + pci:v0000102Bd00000525sv0000102Bsd00000F81* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) + + pci:v0000102Bd00000525sv0000102Bsd00000F82* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) + + pci:v0000102Bd00000525sv0000102Bsd00000F83* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) + + pci:v0000102Bd00000525sv0000102Bsd000019D8* +- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SGRAM) + + pci:v0000102Bd00000525sv0000102Bsd000019F8* +- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SGRAM) + + pci:v0000102Bd00000525sv0000102Bsd00002159* +- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head 16Mb ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head 16Mb) + + pci:v0000102Bd00000525sv0000102Bsd00002179* +- ID_MODEL_FROM_DATABASE=Millennium G400 MAX/Dual Head 32Mb ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 MAX/Dual Head 32Mb) + + pci:v0000102Bd00000525sv0000102Bsd0000217D* +- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head Max ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head Max) + + pci:v0000102Bd00000525sv0000102Bsd000023C0* +- ID_MODEL_FROM_DATABASE=Millennium G450 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) + + pci:v0000102Bd00000525sv0000102Bsd000023C1* +- ID_MODEL_FROM_DATABASE=Millennium G450 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) + + pci:v0000102Bd00000525sv0000102Bsd000023C2* +- ID_MODEL_FROM_DATABASE=Millennium G450 DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) + + pci:v0000102Bd00000525sv0000102Bsd000023C3* +- ID_MODEL_FROM_DATABASE=Millennium G450 DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) + + pci:v0000102Bd00000525sv0000102Bsd00002F58* +- ID_MODEL_FROM_DATABASE=Millennium G400 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) + + pci:v0000102Bd00000525sv0000102Bsd00002F78* +- ID_MODEL_FROM_DATABASE=Millennium G400 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) + + pci:v0000102Bd00000525sv0000102Bsd00003693* +- ID_MODEL_FROM_DATABASE=Marvel G400 AGP ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G400 AGP) + + pci:v0000102Bd00000525sv0000102Bsd00005DD0* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00005F50* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00005F51* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00005F52* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00009010* +- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head) + + pci:v0000102Bd00000525sv00001458sd00000400* +- ID_MODEL_FROM_DATABASE=GA-G400 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (GA-G400) + + pci:v0000102Bd00000525sv00001705sd00000001* +- ID_MODEL_FROM_DATABASE=Millennium G450 32MB SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB SGRAM) + + pci:v0000102Bd00000525sv00001705sd00000002* +- ID_MODEL_FROM_DATABASE=Millennium G450 16MB SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB SGRAM) + + pci:v0000102Bd00000525sv00001705sd00000003* +- ID_MODEL_FROM_DATABASE=Millennium G450 32MB ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB) + + pci:v0000102Bd00000525sv00001705sd00000004* +- ID_MODEL_FROM_DATABASE=Millennium G450 16MB ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB) + + pci:v0000102Bd00000527* + ID_MODEL_FROM_DATABASE=Parhelia + + pci:v0000102Bd00000527sv0000102Bsd00000840* +- ID_MODEL_FROM_DATABASE=Parhelia 128Mb ++ ID_MODEL_FROM_DATABASE=Parhelia (128Mb) + + pci:v0000102Bd00000527sv0000102Bsd00000850* +- ID_MODEL_FROM_DATABASE=Parhelia 256MB ++ ID_MODEL_FROM_DATABASE=Parhelia (256MB) + + pci:v0000102Bd00000527sv0000102Bsd00000870* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000527sv0000102Bsd00000880* +- ID_MODEL_FROM_DATABASE=P-256 Edge Overlap Controller ++ ID_MODEL_FROM_DATABASE=Parhelia (P-256 Edge Overlap Controller) + + pci:v0000102Bd00000528* + ID_MODEL_FROM_DATABASE=Parhelia + + pci:v0000102Bd00000528sv0000102Bsd00001020* +- ID_MODEL_FROM_DATABASE=Parhelia 128MB ++ ID_MODEL_FROM_DATABASE=Parhelia (128MB) + + pci:v0000102Bd00000528sv0000102Bsd00001030* +- ID_MODEL_FROM_DATABASE=Parhelia 256 MB Dual DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (256 MB Dual DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001040* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001050* +- ID_MODEL_FROM_DATABASE=Sono S20 ++ ID_MODEL_FROM_DATABASE=Parhelia (Sono S20) + + pci:v0000102Bd00000528sv0000102Bsd00001060* +- ID_MODEL_FROM_DATABASE=PJ-30L ++ ID_MODEL_FROM_DATABASE=Parhelia (PJ-30L) + + pci:v0000102Bd00000528sv0000102Bsd00001070* +- ID_MODEL_FROM_DATABASE=PJ-40L ++ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40L) + + pci:v0000102Bd00000528sv0000102Bsd00001421* +- ID_MODEL_FROM_DATABASE=MED5mp ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp) + + pci:v0000102Bd00000528sv0000102Bsd00001431* +- ID_MODEL_FROM_DATABASE=MED3mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001451* +- ID_MODEL_FROM_DATABASE=MED5mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001491* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd000014B1* +- ID_MODEL_FROM_DATABASE=MED3mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd000014C1* +- ID_MODEL_FROM_DATABASE=MED5mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd000014E1* +- ID_MODEL_FROM_DATABASE=Parhelia PCI 256MB ++ ID_MODEL_FROM_DATABASE=Parhelia (PCI 256MB) + + pci:v0000102Bd00000528sv0000102Bsd000014F1* +- ID_MODEL_FROM_DATABASE=Parhelia Precision SGT ++ ID_MODEL_FROM_DATABASE=Parhelia (Precision SGT) + + pci:v0000102Bd00000528sv0000102Bsd00001501* +- ID_MODEL_FROM_DATABASE=ATC-4MP ++ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) + + pci:v0000102Bd00000528sv0000102Bsd00001511* +- ID_MODEL_FROM_DATABASE=ATC-4MP ++ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) + + pci:v0000102Bd00000528sv0000102Bsd00001521* +- ID_MODEL_FROM_DATABASE=TheatreVUE T30 ++ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T30) + + pci:v0000102Bd00000528sv0000102Bsd00001531* +- ID_MODEL_FROM_DATABASE=TheatreVUE T20 ++ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T20) + + pci:v0000102Bd00000528sv0000102Bsd00001541* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001551* +- ID_MODEL_FROM_DATABASE=MED3mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001561* +- ID_MODEL_FROM_DATABASE=MED5mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001571* +- ID_MODEL_FROM_DATABASE=Parhelia DL256 PCI ++ ID_MODEL_FROM_DATABASE=Parhelia (DL256 PCI) + + pci:v0000102Bd00000528sv0000102Bsd00001591* +- ID_MODEL_FROM_DATABASE=Parhelia Precision SDT ++ ID_MODEL_FROM_DATABASE=Parhelia (Precision SDT) + + pci:v0000102Bd00000528sv0000102Bsd000015A1* +- ID_MODEL_FROM_DATABASE=MED4mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED4mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00002011* +- ID_MODEL_FROM_DATABASE=Parhelia HR256 ++ ID_MODEL_FROM_DATABASE=Parhelia (HR256) + + pci:v0000102Bd00000528sv0000102Bsd00002021* +- ID_MODEL_FROM_DATABASE=QID Pro ++ ID_MODEL_FROM_DATABASE=Parhelia (QID Pro) + + pci:v0000102Bd00000528sv0000102Bsd00002061* +- ID_MODEL_FROM_DATABASE=PJ-40LP ++ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40LP) + + pci:v0000102Bd00000528sv0000102Bsd00002081* +- ID_MODEL_FROM_DATABASE=EWS Quad ++ ID_MODEL_FROM_DATABASE=Parhelia (EWS Quad) + + pci:v0000102Bd00000528sv0000102Bsd00002411* +- ID_MODEL_FROM_DATABASE=PPX-OUT8 ++ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT8) + + pci:v0000102Bd00000528sv0000102Bsd00002421* +- ID_MODEL_FROM_DATABASE=VPX-OUT8 ++ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT8) + + pci:v0000102Bd00000528sv0000102Bsd00002441* +- ID_MODEL_FROM_DATABASE=PPX-OUT4 ++ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT4) + + pci:v0000102Bd00000528sv0000102Bsd00002451* +- ID_MODEL_FROM_DATABASE=VPX-OUT4 ++ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT4) + + pci:v0000102Bd00000528sv0000102Bsd00002491* +- ID_MODEL_FROM_DATABASE=LPX-OUT4 ++ ID_MODEL_FROM_DATABASE=Parhelia (LPX-OUT4) + + pci:v0000102Bd00000530* + ID_MODEL_FROM_DATABASE=MGA G200EV +@@ -12261,37 +12261,37 @@ pci:v0000102Bd00000532* + ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 + + pci:v0000102Bd00000532sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R710 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R610 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T610 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M610 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R410 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T410 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M710 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd000002A4* +- ID_MODEL_FROM_DATABASE=PowerEdge T310 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) + + pci:v0000102Bd00000533* + ID_MODEL_FROM_DATABASE=MGA G200EH + + pci:v0000102Bd00000533sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=MGA G200EH (iLO4) + + pci:v0000102Bd00000534* + ID_MODEL_FROM_DATABASE=G200eR2 +@@ -12300,40 +12300,40 @@ pci:v0000102Bd00000540* + ID_MODEL_FROM_DATABASE=M91XX + + pci:v0000102Bd00000540sv0000102Bsd00002080* +- ID_MODEL_FROM_DATABASE=M9140 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9140 LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd000020C0* +- ID_MODEL_FROM_DATABASE=Xenia ++ ID_MODEL_FROM_DATABASE=M91XX (Xenia) + + pci:v0000102Bd00000540sv0000102Bsd000020C1* +- ID_MODEL_FROM_DATABASE=Xenia Pro ++ ID_MODEL_FROM_DATABASE=M91XX (Xenia Pro) + + pci:v0000102Bd00000540sv0000102Bsd00002100* +- ID_MODEL_FROM_DATABASE=M9120 PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9120 PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002140* +- ID_MODEL_FROM_DATABASE=M9125 PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9125 PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002180* +- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd000021C0* +- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x1 ++ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x1) + + pci:v0000102Bd00000540sv0000102Bsd00002200* +- ID_MODEL_FROM_DATABASE=VDA1164 Output Board ++ ID_MODEL_FROM_DATABASE=M91XX (VDA1164 Output Board) + + pci:v0000102Bd00000540sv0000102Bsd00002240* +- ID_MODEL_FROM_DATABASE=M9148 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9148 LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002241* +- ID_MODEL_FROM_DATABASE=M9138 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9138 LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002280* +- ID_MODEL_FROM_DATABASE=M9188 ATX PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9188 ATX PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd000022C0* +- ID_MODEL_FROM_DATABASE=M9128 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9128 LP PCIe x16) + + pci:v0000102Bd00000D10* + ID_MODEL_FROM_DATABASE=MGA Ultima/Impression +@@ -12342,34 +12342,34 @@ pci:v0000102Bd00001000* + ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] + + pci:v0000102Bd00001000sv0000102Bsd0000FF01* +- ID_MODEL_FROM_DATABASE=Productiva G100 ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100) + + pci:v0000102Bd00001000sv0000102Bsd0000FF05* +- ID_MODEL_FROM_DATABASE=Productiva G100 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100 Multi-Monitor) + + pci:v0000102Bd00001001* + ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP + + pci:v0000102Bd00001001sv0000102Bsd00001001* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF00* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF01* +- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (Millennium G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF04* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF05* +- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP Multi-Monitor) + + pci:v0000102Bd00001001sv0000110Asd0000001E* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00002007* + ID_MODEL_FROM_DATABASE=MGA Mistral +@@ -12378,163 +12378,163 @@ pci:v0000102Bd00002527* + ID_MODEL_FROM_DATABASE=Millennium G550 + + pci:v0000102Bd00002527sv0000102Bsd00000F42* +- ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI ++ ID_MODEL_FROM_DATABASE=Millennium G550 (Matrox G550 Low Profile PCI) + + pci:v0000102Bd00002527sv0000102Bsd00000F83* + ID_MODEL_FROM_DATABASE=Millennium G550 + + pci:v0000102Bd00002527sv0000102Bsd00000F84* +- ID_MODEL_FROM_DATABASE=Millennium G550 Dual Head DDR 32Mb ++ ID_MODEL_FROM_DATABASE=Millennium G550 (Dual Head DDR 32Mb) + + pci:v0000102Bd00002527sv0000102Bsd00001E41* + ID_MODEL_FROM_DATABASE=Millennium G550 + + pci:v0000102Bd00002527sv0000102Bsd00002300* +- ID_MODEL_FROM_DATABASE=Millennium G550 LP PCIE ++ ID_MODEL_FROM_DATABASE=Millennium G550 (LP PCIE) + + pci:v0000102Bd00002537* + ID_MODEL_FROM_DATABASE=Millenium P650/P750 + + pci:v0000102Bd00002537sv0000102Bsd00001820* +- ID_MODEL_FROM_DATABASE=Millennium P750 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P750 64MB) + + pci:v0000102Bd00002537sv0000102Bsd00001830* +- ID_MODEL_FROM_DATABASE=Millennium P650 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 64MB) + + pci:v0000102Bd00002537sv0000102Bsd00001850* +- ID_MODEL_FROM_DATABASE=RAD2mp ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD2mp) + + pci:v0000102Bd00002537sv0000102Bsd00001860* +- ID_MODEL_FROM_DATABASE=RAD3mp ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD3mp) + + pci:v0000102Bd00002537sv0000102Bsd00001880* +- ID_MODEL_FROM_DATABASE=Sono S10 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Sono S10) + + pci:v0000102Bd00002537sv0000102Bsd00001C10* +- ID_MODEL_FROM_DATABASE=QID 128MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID 128MB) + + pci:v0000102Bd00002537sv0000102Bsd00002811* +- ID_MODEL_FROM_DATABASE=Millennium P650 Low-profile PCI 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 Low-profile PCI 64MB) + + pci:v0000102Bd00002537sv0000102Bsd00002821* +- ID_MODEL_FROM_DATABASE=Millenium P650 Low-profile PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millenium P650 Low-profile PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002841* +- ID_MODEL_FROM_DATABASE=RAD PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002851* +- ID_MODEL_FROM_DATABASE=Spectrum PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Spectrum PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002871* +- ID_MODEL_FROM_DATABASE=EpicA TC2 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC2) + + pci:v0000102Bd00002537sv0000102Bsd00002C11* +- ID_MODEL_FROM_DATABASE=QID Low-profile PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID Low-profile PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002C21* +- ID_MODEL_FROM_DATABASE=QID LP PCI LW ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI LW) + + pci:v0000102Bd00002537sv0000102Bsd00002C31* +- ID_MODEL_FROM_DATABASE=QID LP PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002C41* +- ID_MODEL_FROM_DATABASE=EpicA TC4 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC4) + + pci:v0000102Bd00002537sv0000102Bsd00003001* +- ID_MODEL_FROM_DATABASE=Extio F1400 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1400) + + pci:v0000102Bd00002537sv0000102Bsd00003011* +- ID_MODEL_FROM_DATABASE=Extio F1220 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1220) + + pci:v0000102Bd00002537sv0000102Bsd00003041* +- ID_MODEL_FROM_DATABASE=RG-200DL ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-200DL) + + pci:v0000102Bd00002537sv0000102Bsd00003051* +- ID_MODEL_FROM_DATABASE=RG-400SL ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-400SL) + + pci:v0000102Bd00002537sv0000102Bsd00003061* +- ID_MODEL_FROM_DATABASE=Extio F1420 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1420) + + pci:v0000102Bd00002537sv0000102Bsd00003081* +- ID_MODEL_FROM_DATABASE=Extio F1240 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1240) + + pci:v0000102Bd00002538* + ID_MODEL_FROM_DATABASE=Millenium P650 PCIe + + pci:v0000102Bd00002538sv0000102Bsd00000847* +- ID_MODEL_FROM_DATABASE=RAD PCIe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (RAD PCIe) + + pci:v0000102Bd00002538sv0000102Bsd000008C7* +- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 128MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 128MB) + + pci:v0000102Bd00002538sv0000102Bsd00000907* +- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 64MB) + + pci:v0000102Bd00002538sv0000102Bsd00000947* +- ID_MODEL_FROM_DATABASE=Parhelia APVe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) + + pci:v0000102Bd00002538sv0000102Bsd00000987* +- ID_MODEL_FROM_DATABASE=ATC PCIe 4MP ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (ATC PCIe 4MP) + + pci:v0000102Bd00002538sv0000102Bsd00001047* +- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 128MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 128MB) + + pci:v0000102Bd00002538sv0000102Bsd00001087* +- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 64MB) + + pci:v0000102Bd00002538sv0000102Bsd00001801* +- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe x1 ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (x1) + + pci:v0000102Bd00002538sv0000102Bsd00002538* +- ID_MODEL_FROM_DATABASE=Parhelia APVe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) + + pci:v0000102Bd00002538sv0000102Bsd00003007* +- ID_MODEL_FROM_DATABASE=QID Low-profile PCIe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID Low-profile PCIe) + + pci:v0000102Bd00002538sv0000102Bsd00003087* +- ID_MODEL_FROM_DATABASE=Aurora VX3mp ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Aurora VX3mp) + + pci:v0000102Bd00002538sv0000102Bsd000030C7* +- ID_MODEL_FROM_DATABASE=QID LP PCIe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID LP PCIe) + + pci:v0000102Bd00002539* + ID_MODEL_FROM_DATABASE=Millennium P690 + + pci:v0000102Bd00002539sv0000102Bsd00000040* +- ID_MODEL_FROM_DATABASE=Millenium P690 PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd00000042* +- ID_MODEL_FROM_DATABASE=ONYX ++ ID_MODEL_FROM_DATABASE=Millennium P690 (ONYX) + + pci:v0000102Bd00002539sv0000102Bsd00000043* +- ID_MODEL_FROM_DATABASE=SPECTRA ++ ID_MODEL_FROM_DATABASE=Millennium P690 (SPECTRA) + + pci:v0000102Bd00002539sv0000102Bsd00000080* +- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd00000081* +- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd00000082* +- ID_MODEL_FROM_DATABASE=RAD LPX PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd000000C0* +- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCI) + + pci:v0000102Bd00002539sv0000102Bsd000000C2* +- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCI) + + pci:v0000102Bd00002539sv0000102Bsd000000C3* +- ID_MODEL_FROM_DATABASE=RAD LPX PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCI) + + pci:v0000102Bd00002539sv0000102Bsd00000101* +- ID_MODEL_FROM_DATABASE=Millenium P690 PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCI) + + pci:v0000102Bd00002539sv0000102Bsd00000140* +- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x1 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x1) + + pci:v0000102Bd00002539sv0000102Bsd00000180* +- ID_MODEL_FROM_DATABASE=Display Wall IP Decode 128 MB ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Display Wall IP Decode 128 MB) + + pci:v0000102Bd00004164* + ID_MODEL_FROM_DATABASE=Morphis QxT frame grabber +@@ -12558,43 +12558,43 @@ pci:v0000102Bd0000475D* + ID_MODEL_FROM_DATABASE=Vio frame grabber family + + pci:v0000102Bd0000475Dsv0000102Bsd00004B90* +- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber (single channel) ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber (single channel)) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B91* +- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B92* +- ID_MODEL_FROM_DATABASE=Vio Analog frame grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Analog frame grabber) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B93* +- ID_MODEL_FROM_DATABASE=Vio SDI Frame Grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio SDI Frame Grabber) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B94* +- ID_MODEL_FROM_DATABASE=Vio DVI-A frame grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio DVI-A frame grabber) + + pci:v0000102Bd0000475F* + ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber + + pci:v0000102Bd0000475Fsv0000102Bsd0000475F* +- ID_MODEL_FROM_DATABASE=Solios eCL/XCL-F frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eCL/XCL-F frame grabber) + + pci:v0000102Bd0000475Fsv0000102Bsd00004D5F* +- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Full) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eV-CL (single-Full) frame grabber) + + pci:v0000102Bd0000475Fsv0000102Bsd00004E5F* +- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Full) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eM-CL (single-Full) frame grabber) + + pci:v0000102Bd000047A1* + ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber + + pci:v0000102Bd000047A1sv0000102Bsd00004BE0* +- ID_MODEL_FROM_DATABASE=Solios eA/XA (single) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (single) frame grabber) + + pci:v0000102Bd000047A1sv0000102Bsd00004BE1* +- ID_MODEL_FROM_DATABASE=Solios eA/XA (dual) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (dual) frame grabber) + + pci:v0000102Bd000047A1sv0000102Bsd00004BE2* +- ID_MODEL_FROM_DATABASE=Solios eA/XA (quad) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (quad) frame grabber) + + pci:v0000102Bd000047A2* + ID_MODEL_FROM_DATABASE=Solios COM port +@@ -12603,25 +12603,25 @@ pci:v0000102Bd000047C1* + ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber + + pci:v0000102Bd000047C1sv0000102Bsd00000000* +- ID_MODEL_FROM_DATABASE=Solios frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004B80* +- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (single-Medium) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (single-Medium) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004B81* +- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (dual-Base) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (dual-Base) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004D80* +- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Medium) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (single-Medium) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004D81* +- ID_MODEL_FROM_DATABASE=Solios eV-CL (dual-Base) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (dual-Base) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004E80* +- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Medium) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (single-Medium) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004E81* +- ID_MODEL_FROM_DATABASE=Solios eM-CL (dual-Base) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (dual-Base) frame grabber) + + pci:v0000102Bd000047C2* + ID_MODEL_FROM_DATABASE=Solios COM port +@@ -12630,34 +12630,34 @@ pci:v0000102Bd00004949* + ID_MODEL_FROM_DATABASE=Radient frame grabber family + + pci:v0000102Bd00004949sv0000102Bsd00000010* +- ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Single-full) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000011* +- ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCLV (Single-full) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000020* +- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-base) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000030* +- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-full) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-full) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000040* +- ID_MODEL_FROM_DATABASE=Radient eCL (Quad-base) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Quad-base) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000050* +- ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Golden) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001010* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-6) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001015* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (dual CXP-6) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001020* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-3) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001050* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (Golden) frame grabber) + + pci:v0000102Bd00004CDC* + ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator +@@ -12687,22 +12687,22 @@ pci:v0000102Cd000000C0sv0000102Csd000000C0* + ID_MODEL_FROM_DATABASE=F69000 HiQVideo + + pci:v0000102Cd000000C0sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001010* +- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CP5/CR6 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001020* +- ID_MODEL_FROM_DATABASE=VR6 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (VR6 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001030* +- ID_MODEL_FROM_DATABASE=PC5 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (PC5 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CT7 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CE7 mainboard) + + pci:v0000102Cd000000D0* + ID_MODEL_FROM_DATABASE=F65545 +@@ -12723,10 +12723,10 @@ pci:v0000102Cd000000E5* + ID_MODEL_FROM_DATABASE=F65555 HiQVPro + + pci:v0000102Cd000000E5sv00000E11sd0000B049* +- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop Display Controller ++ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Armada 1700 Laptop Display Controller) + + pci:v0000102Cd000000E5sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite Pro/Satellite ++ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Satellite Pro/Satellite) + + pci:v0000102Cd000000F0* + ID_MODEL_FROM_DATABASE=F68554 +@@ -12741,16 +12741,16 @@ pci:v0000102Cd00000C30* + ID_MODEL_FROM_DATABASE=F69030 + + pci:v0000102Cd00000C30sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v0000102Cd00000C30sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CT7 mainboard) + + pci:v0000102Cd00000C30sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CE7 mainboard) + + pci:v0000102Cd00000C30sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CT8 mainboard) + + pci:v0000102D* + ID_VENDOR_FROM_DATABASE=Wyse Technology Inc. +@@ -12894,34 +12894,34 @@ pci:v00001033d00000035* + ID_MODEL_FROM_DATABASE=OHCI USB Controller + + pci:v00001033d00000035sv00001033sd00000035* +- ID_MODEL_FROM_DATABASE=USB Controller ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB Controller) + + pci:v00001033d00000035sv0000103Csd00001293* +- ID_MODEL_FROM_DATABASE=USB add-in card ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB add-in card) + + pci:v00001033d00000035sv0000103Csd00001294* +- ID_MODEL_FROM_DATABASE=USB 2.0 add-in card ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB 2.0 add-in card) + + pci:v00001033d00000035sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=USB ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB) + + pci:v00001033d00000035sv000012EEsd00007000* +- ID_MODEL_FROM_DATABASE=Root Hub ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) + + pci:v00001033d00000035sv000014C2sd00000105* +- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PTI-205N USB 2.0 Host Controller) + + pci:v00001033d00000035sv00001799sd00000001* +- ID_MODEL_FROM_DATABASE=Root Hub ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) + + pci:v00001033d00000035sv00001931sd0000000A* +- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (PPP data) ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (PPP data)) + + pci:v00001033d00000035sv00001931sd0000000B* +- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (GSM data) ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (GSM data)) + + pci:v00001033d00000035sv0000807Dsd00000035* +- ID_MODEL_FROM_DATABASE=PCI-USB2 (OHCI subsystem) ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PCI-USB2 (OHCI subsystem)) + + pci:v00001033d0000003B* + ID_MODEL_FROM_DATABASE=PCI to C-bus Bridge +@@ -12942,28 +12942,28 @@ pci:v00001033d00000067* + ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset + + pci:v00001033d00000067sv00001010sd00000020* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) + + pci:v00001033d00000067sv00001010sd00000080* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) + + pci:v00001033d00000067sv00001010sd00000088* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) + + pci:v00001033d00000067sv00001010sd00000090* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) + + pci:v00001033d00000067sv00001010sd00000098* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) + + pci:v00001033d00000067sv00001010sd000000A0* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) + + pci:v00001033d00000067sv00001010sd000000A8* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 32Mb) + + pci:v00001033d00000067sv00001010sd00000120* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) + + pci:v00001033d00000072* + ID_MODEL_FROM_DATABASE=uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr +@@ -12972,7 +12972,7 @@ pci:v00001033d00000074* + ID_MODEL_FROM_DATABASE=56k Voice Modem + + pci:v00001033d00000074sv00001033sd00008014* +- ID_MODEL_FROM_DATABASE=RCV56ACF 56k Voice Modem ++ ID_MODEL_FROM_DATABASE=56k Voice Modem (RCV56ACF 56k Voice Modem) + + pci:v00001033d0000009B* + ID_MODEL_FROM_DATABASE=Vrc5476 +@@ -12987,7 +12987,7 @@ pci:v00001033d000000CD* + ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller + + pci:v00001033d000000CDsv000012EEsd00008011* +- ID_MODEL_FROM_DATABASE=Root hub ++ ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller (Root hub) + + pci:v00001033d000000CE* + ID_MODEL_FROM_DATABASE=uPD72871 [Firewarden] IEEE1394a OHCI 1.0 Link/1-port PHY Controller +@@ -12999,16 +12999,16 @@ pci:v00001033d000000E0* + ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller + + pci:v00001033d000000E0sv000012EEsd00007001* +- ID_MODEL_FROM_DATABASE=Root hub ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root hub) + + pci:v00001033d000000E0sv000014C2sd00000205* +- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PTI-205N USB 2.0 Host Controller) + + pci:v00001033d000000E0sv00001799sd00000002* +- ID_MODEL_FROM_DATABASE=Root Hub ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root Hub) + + pci:v00001033d000000E0sv0000807Dsd00001043* +- ID_MODEL_FROM_DATABASE=PCI-USB2 (EHCI subsystem) ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PCI-USB2 (EHCI subsystem)) + + pci:v00001033d000000E7* + ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller +@@ -13032,22 +13032,22 @@ pci:v00001033d00000194* + ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller + + pci:v00001033d00000194sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Precision M4600) + + pci:v00001033d00000194sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3350) + + pci:v00001033d00000194sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3750) + + pci:v00001033d00000194sv00001043sd00008413* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (P8P67 Deluxe Motherboard) + + pci:v00001033d00000194sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (QEMU Virtual Machine) + + pci:v00001033d00000194sv00001B96sd00000001* +- ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (USB 3.0 PCIe Card) + + pci:v00001033d000001E7* + ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller +@@ -13116,7 +13116,7 @@ pci:v00001039d00000182* + ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller + + pci:v00001039d00000182sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller (D2030-A1) + + pci:v00001039d00000186* + ID_MODEL_FROM_DATABASE=AHCI Controller (0106) +@@ -13131,7 +13131,7 @@ pci:v00001039d00000200* + ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA + + pci:v00001039d00000200sv00001039sd00000000* +- ID_MODEL_FROM_DATABASE=SiS5597 SVGA (Shared RAM) ++ ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA (SiS5597 SVGA (Shared RAM)) + + pci:v00001039d00000204* + ID_MODEL_FROM_DATABASE=82C204 +@@ -13143,7 +13143,7 @@ pci:v00001039d00000300* + ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter + + pci:v00001039d00000300sv0000107Dsd00002720* +- ID_MODEL_FROM_DATABASE=Leadtek WinFast VR300 ++ ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter (Leadtek WinFast VR300) + + pci:v00001039d00000310* + ID_MODEL_FROM_DATABASE=315H PCI/AGP VGA Display Adapter +@@ -13239,7 +13239,7 @@ pci:v00001039d00000741* + ID_MODEL_FROM_DATABASE=741/741GX/M741 Host + + pci:v00001039d00000741sv00001849sd00000741* +- ID_MODEL_FROM_DATABASE=K7S41/K7S41GX motherboard ++ ID_MODEL_FROM_DATABASE=741/741GX/M741 Host (K7S41/K7S41GX motherboard) + + pci:v00001039d00000745* + ID_MODEL_FROM_DATABASE=745 Host +@@ -13257,25 +13257,25 @@ pci:v00001039d00000761* + ID_MODEL_FROM_DATABASE=761/M761 Host + + pci:v00001039d00000761sv00001734sd00001099* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=761/M761 Host (D2030-A1 Motherboard) + + pci:v00001039d00000900* + ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet + + pci:v00001039d00000900sv00001019sd00000A14* +- ID_MODEL_FROM_DATABASE=K7S5A motherboard ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (K7S5A motherboard) + + pci:v00001039d00000900sv00001039sd00000900* +- ID_MODEL_FROM_DATABASE=SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA] ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA]) + + pci:v00001039d00000900sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (CUSI-FX motherboard) + + pci:v00001039d00000900sv00001043sd000080A7* +- ID_MODEL_FROM_DATABASE=Motherboard P4S800D-X ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (Motherboard P4S800D-X) + + pci:v00001039d00000900sv00001462sd00000900* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (MS-6701 motherboard) + + pci:v00001039d00000961* + ID_MODEL_FROM_DATABASE=SiS961 [MuTIOL Media IO] +@@ -13335,22 +13335,22 @@ pci:v00001039d00005513* + ID_MODEL_FROM_DATABASE=5513 IDE Controller + + pci:v00001039d00005513sv00001019sd00000970* +- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (P6STP-FL motherboard) + + pci:v00001039d00005513sv00001039sd00005513* +- ID_MODEL_FROM_DATABASE=SiS5513 EIDE Controller (A,B step) ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (SiS5513 EIDE Controller (A,B step)) + + pci:v00001039d00005513sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (CUSI-FX motherboard) + + pci:v00001039d00005513sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (MS-6701 motherboard) + + pci:v00001039d00005513sv00001631sd00005513* +- ID_MODEL_FROM_DATABASE=GA-8SIML Rev1.0 Motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (GA-8SIML Rev1.0 Motherboard) + + pci:v00001039d00005513sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (D2030-A1 Motherboard) + + pci:v00001039d00005517* + ID_MODEL_FROM_DATABASE=5517 +@@ -13389,13 +13389,13 @@ pci:v00001039d00006300* + ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter + + pci:v00001039d00006300sv00001019sd00000970* +- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard ++ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (P6STP-FL motherboard) + + pci:v00001039d00006300sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (CUSI-FX motherboard) + + pci:v00001039d00006300sv0000104Dsd000080E2* +- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 ++ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (VAIO PCV-J200) + + pci:v00001039d00006306* + ID_MODEL_FROM_DATABASE=530/620 PCI/AGP VGA Display Adapter +@@ -13404,49 +13404,49 @@ pci:v00001039d00006325* + ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter + + pci:v00001039d00006325sv00001039sd00006325* +- ID_MODEL_FROM_DATABASE=SiS 651 onboard [Asus P4SC-EA] ++ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651 onboard [Asus P4SC-EA]) + + pci:v00001039d00006325sv00001631sd00001004* +- ID_MODEL_FROM_DATABASE=SiS 651C onboard [Gigabyte GA-8SIML Rev1.0] ++ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651C onboard [Gigabyte GA-8SIML Rev1.0]) + + pci:v00001039d00006326* + ID_MODEL_FROM_DATABASE=86C326 5598/6326 + + pci:v00001039d00006326sv00001039sd00006326* +- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) + + pci:v00001039d00006326sv00001092sd00000A50* +- ID_MODEL_FROM_DATABASE=SpeedStar A50 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A50) + + pci:v00001039d00006326sv00001092sd00000A70* +- ID_MODEL_FROM_DATABASE=SpeedStar A70 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) + + pci:v00001039d00006326sv00001092sd00004910* +- ID_MODEL_FROM_DATABASE=SpeedStar A70 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) + + pci:v00001039d00006326sv00001092sd00004920* +- ID_MODEL_FROM_DATABASE=SpeedStar A70 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) + + pci:v00001039d00006326sv000010B0sd00006326* +- ID_MODEL_FROM_DATABASE=S6110-B (AGP) ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (S6110-B (AGP)) + + pci:v00001039d00006326sv00001569sd00006326* +- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) + + pci:v00001039d00006330* + ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter + + pci:v00001039d00006330sv00001039sd00006330* +- ID_MODEL_FROM_DATABASE=[M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter ([M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter) + + pci:v00001039d00006330sv00001043sd00008113* +- ID_MODEL_FROM_DATABASE=SiS Real 256E (ASUS P5S800-VM motherboard) ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS Real 256E (ASUS P5S800-VM motherboard)) + + pci:v00001039d00006330sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=SiS661FX GUI 2D/3D Accelerator ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS661FX GUI 2D/3D Accelerator) + + pci:v00001039d00006330sv00001734sd00001099* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (D2030-A1) + + pci:v00001039d00006350* + ID_MODEL_FROM_DATABASE=770/670 PCIE VGA Display Adapter +@@ -13458,70 +13458,70 @@ pci:v00001039d00007001* + ID_MODEL_FROM_DATABASE=USB 1.1 Controller + + pci:v00001039d00007001sv00001019sd00000A14* +- ID_MODEL_FROM_DATABASE=K7S5A motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (K7S5A motherboard) + + pci:v00001039d00007001sv00001039sd00007000* +- ID_MODEL_FROM_DATABASE=Onboard USB Controller ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Onboard USB Controller) + + pci:v00001039d00007001sv00001462sd00005470* +- ID_MODEL_FROM_DATABASE=ECS K7SOM+ motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ECS K7SOM+ motherboard) + + pci:v00001039d00007001sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (MS-6701 motherboard) + + pci:v00001039d00007001sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (D2030-A1 Motherboard) + + pci:v00001039d00007002* + ID_MODEL_FROM_DATABASE=USB 2.0 Controller + + pci:v00001039d00007002sv00001462sd00005470* +- ID_MODEL_FROM_DATABASE=K7SOM+ 5.2C Motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (K7SOM+ 5.2C Motherboard) + + pci:v00001039d00007002sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (MS-6701 motherboard) + + pci:v00001039d00007002sv00001509sd00007002* +- ID_MODEL_FROM_DATABASE=Onboard USB Controller ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (Onboard USB Controller) + + pci:v00001039d00007002sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (D2030-A1) + + pci:v00001039d00007007* + ID_MODEL_FROM_DATABASE=FireWire Controller + + pci:v00001039d00007007sv00001462sd0000701D* +- ID_MODEL_FROM_DATABASE=MS-6701 ++ ID_MODEL_FROM_DATABASE=FireWire Controller (MS-6701) + + pci:v00001039d00007012* + ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller + + pci:v00001039d00007012sv00001019sd00000F05* +- ID_MODEL_FROM_DATABASE=A928 (i-Buddie) ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A928 (i-Buddie)) + + pci:v00001039d00007012sv00001039sd00007012* +- ID_MODEL_FROM_DATABASE=SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller) + + pci:v00001039d00007012sv00001043sd0000818F* +- ID_MODEL_FROM_DATABASE=A8S-X Motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A8S-X Motherboard) + + pci:v00001039d00007012sv000013F6sd00000300* +- ID_MODEL_FROM_DATABASE=CMI9739(A) on ECS K7SOM+ motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (CMI9739(A) on ECS K7SOM+ motherboard) + + pci:v00001039d00007012sv00001462sd00005850* +- ID_MODEL_FROM_DATABASE=MSI 648 Max (MS-6585) ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MSI 648 Max (MS-6585)) + + pci:v00001039d00007012sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MS-6701 motherboard) + + pci:v00001039d00007012sv000015BDsd00001001* +- ID_MODEL_FROM_DATABASE=DFI 661FX motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (DFI 661FX motherboard) + + pci:v00001039d00007012sv00001734sd0000109F* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (D2030-A1 Motherboard) + + pci:v00001039d00007012sv00001849sd00007012* +- ID_MODEL_FROM_DATABASE=K7S41GX motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (K7S41GX motherboard) + + pci:v00001039d00007013* + ID_MODEL_FROM_DATABASE=AC'97 Modem Controller +@@ -13530,7 +13530,7 @@ pci:v00001039d00007016* + ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter + + pci:v00001039d00007016sv00001039sd00007016* +- ID_MODEL_FROM_DATABASE=SiS7016 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter (SiS7016 10/100 Ethernet Adapter) + + pci:v00001039d00007018* + ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator +@@ -13560,7 +13560,7 @@ pci:v00001039d00007018sv00001043sd0000800B* + ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator + + pci:v00001039d00007018sv0000104Dsd000080E2* +- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 ++ ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator (VAIO PCV-J200) + + pci:v00001039d00007018sv00001054sd00007018* + ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator +@@ -13635,25 +13635,25 @@ pci:v0000103Cd00001029* + ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter + + pci:v0000103Cd00001029sv0000107Esd0000000F* +- ID_MODEL_FROM_DATABASE=Interphase 5560 Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (Interphase 5560 Fibre Channel Adapter) + + pci:v0000103Cd00001029sv00009004sd00009210* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd00001029sv00009004sd00009211* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd0000102A* + ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter + + pci:v0000103Cd0000102Asv0000107Esd0000000E* +- ID_MODEL_FROM_DATABASE=Interphase 5540/5541 Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (Interphase 5540/5541 Fibre Channel Adapter) + + pci:v0000103Cd0000102Asv00009004sd00009110* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd0000102Asv00009004sd00009111* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd00001030* + ID_MODEL_FROM_DATABASE=J2585A DeskDirect 10/100VG NIC +@@ -13662,13 +13662,13 @@ pci:v0000103Cd00001031* + ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter + + pci:v0000103Cd00001031sv0000103Csd00001040* +- ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC ++ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2973A DeskDirect 10BaseT NIC) + + pci:v0000103Cd00001031sv0000103Csd00001041* +- ID_MODEL_FROM_DATABASE=J2585B DeskDirect 10/100VG NIC ++ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2585B DeskDirect 10/100VG NIC) + + pci:v0000103Cd00001031sv0000103Csd00001042* +- ID_MODEL_FROM_DATABASE=J2970A DeskDirect 10BaseT/2 NIC ++ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2970A DeskDirect 10BaseT/2 NIC) + + pci:v0000103Cd00001040* + ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC +@@ -13683,28 +13683,28 @@ pci:v0000103Cd00001048* + ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART + + pci:v0000103Cd00001048sv0000103Csd00001049* +- ID_MODEL_FROM_DATABASE=Tosca Console ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Console) + + pci:v0000103Cd00001048sv0000103Csd0000104A* +- ID_MODEL_FROM_DATABASE=Tosca Secondary ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Secondary) + + pci:v0000103Cd00001048sv0000103Csd0000104B* +- ID_MODEL_FROM_DATABASE=Maestro SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Maestro SP2) + + pci:v0000103Cd00001048sv0000103Csd00001223* +- ID_MODEL_FROM_DATABASE=Superdome Console ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Superdome Console) + + pci:v0000103Cd00001048sv0000103Csd00001226* +- ID_MODEL_FROM_DATABASE=Keystone SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Keystone SP2) + + pci:v0000103Cd00001048sv0000103Csd00001227* +- ID_MODEL_FROM_DATABASE=Powerbar SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Powerbar SP2) + + pci:v0000103Cd00001048sv0000103Csd00001282* +- ID_MODEL_FROM_DATABASE=Everest SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Everest SP2) + + pci:v0000103Cd00001048sv0000103Csd00001301* +- ID_MODEL_FROM_DATABASE=Diva RMP3 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Diva RMP3) + + pci:v0000103Cd00001054* + ID_MODEL_FROM_DATABASE=PCI Local Bus Adapter +@@ -13758,7 +13758,7 @@ pci:v0000103Cd00001290* + ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port + + pci:v0000103Cd00001290sv0000103Csd00001291* +- ID_MODEL_FROM_DATABASE=Diva SP2 ++ ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port (Diva SP2) + + pci:v0000103Cd00001291* + ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port +@@ -13794,208 +13794,208 @@ pci:v0000103Cd00003220* + ID_MODEL_FROM_DATABASE=Smart Array P600 + + pci:v0000103Cd00003220sv0000103Csd00003225* +- ID_MODEL_FROM_DATABASE=3 Gb/s SAS RAID ++ ID_MODEL_FROM_DATABASE=Smart Array P600 (3 Gb/s SAS RAID) + + pci:v0000103Cd00003230* + ID_MODEL_FROM_DATABASE=Smart Array Controller + + pci:v0000103Cd00003230sv0000103Csd00003223* +- ID_MODEL_FROM_DATABASE=Smart Array P800 ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (Smart Array P800) + + pci:v0000103Cd00003230sv0000103Csd00003234* +- ID_MODEL_FROM_DATABASE=P400 SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400 SAS Controller) + + pci:v0000103Cd00003230sv0000103Csd00003235* +- ID_MODEL_FROM_DATABASE=P400i SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400i SAS Controller) + + pci:v0000103Cd00003230sv0000103Csd00003237* +- ID_MODEL_FROM_DATABASE=E500 SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (E500 SAS Controller) + + pci:v0000103Cd00003230sv0000103Csd0000323D* +- ID_MODEL_FROM_DATABASE=P700m SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (P700m SAS Controller) + + pci:v0000103Cd00003238* + ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) + + pci:v0000103Cd00003238sv0000103Csd00003211* +- ID_MODEL_FROM_DATABASE=Smart Array E200i ++ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200i) + + pci:v0000103Cd00003238sv0000103Csd00003212* +- ID_MODEL_FROM_DATABASE=Smart Array E200 ++ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200) + + pci:v0000103Cd00003239* + ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers + + pci:v0000103Cd00003239sv0000103Csd000021BD* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021BE* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021BF* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C0* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C1* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C2* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C3* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C4* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C5* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C6* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C7* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C8* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C9* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CA* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CB* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CC* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CD* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CE* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd0000323A* + ID_MODEL_FROM_DATABASE=Smart Array G6 controllers + + pci:v0000103Cd0000323Asv0000103Csd00003241* +- ID_MODEL_FROM_DATABASE=Smart Array P212 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P212) + + pci:v0000103Cd0000323Asv0000103Csd00003243* +- ID_MODEL_FROM_DATABASE=Smart Array P410 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410) + + pci:v0000103Cd0000323Asv0000103Csd00003245* +- ID_MODEL_FROM_DATABASE=Smart Array P410i ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410i) + + pci:v0000103Cd0000323Asv0000103Csd00003247* +- ID_MODEL_FROM_DATABASE=Smart Array P411 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P411) + + pci:v0000103Cd0000323Asv0000103Csd00003249* +- ID_MODEL_FROM_DATABASE=Smart Array P812 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P812) + + pci:v0000103Cd0000323Asv0000103Csd0000324A* +- ID_MODEL_FROM_DATABASE=HP Smart Array 712m (Mezzanine RAID controller) ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (HP Smart Array 712m (Mezzanine RAID controller)) + + pci:v0000103Cd0000323Asv0000103Csd0000324B* +- ID_MODEL_FROM_DATABASE=Smart Array P711m (Mezzanine RAID controller) ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P711m (Mezzanine RAID controller)) + + pci:v0000103Cd0000323B* + ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers + + pci:v0000103Cd0000323Bsv0000103Csd00003350* +- ID_MODEL_FROM_DATABASE=P222 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P222) + + pci:v0000103Cd0000323Bsv0000103Csd00003351* +- ID_MODEL_FROM_DATABASE=P420 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420) + + pci:v0000103Cd0000323Bsv0000103Csd00003352* +- ID_MODEL_FROM_DATABASE=P421 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P421) + + pci:v0000103Cd0000323Bsv0000103Csd00003354* +- ID_MODEL_FROM_DATABASE=P420i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420i) + + pci:v0000103Cd0000323Bsv0000103Csd00003355* +- ID_MODEL_FROM_DATABASE=P220i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P220i) + + pci:v0000103Cd0000323C* + ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers + + pci:v0000103Cd0000323Csv0000103Csd00001920* +- ID_MODEL_FROM_DATABASE=P430i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430i) + + pci:v0000103Cd0000323Csv0000103Csd00001921* +- ID_MODEL_FROM_DATABASE=P830i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830i) + + pci:v0000103Cd0000323Csv0000103Csd00001922* +- ID_MODEL_FROM_DATABASE=P430 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430) + + pci:v0000103Cd0000323Csv0000103Csd00001923* +- ID_MODEL_FROM_DATABASE=P431 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P431) + + pci:v0000103Cd0000323Csv0000103Csd00001924* +- ID_MODEL_FROM_DATABASE=P830 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830) + + pci:v0000103Cd0000323Csv0000103Csd00001925* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (Smart Array) + + pci:v0000103Cd0000323Csv0000103Csd00001926* +- ID_MODEL_FROM_DATABASE=P731m ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P731m) + + pci:v0000103Cd0000323Csv0000103Csd00001928* +- ID_MODEL_FROM_DATABASE=P230i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P230i) + + pci:v0000103Cd00003300* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller + + pci:v0000103Cd00003300sv0000103Csd00003304* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) + + pci:v0000103Cd00003300sv0000103Csd00003305* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) + + pci:v0000103Cd00003300sv0000103Csd00003309* +- ID_MODEL_FROM_DATABASE=iLO2 GXL/iLO3 GXE ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2 GXL/iLO3 GXE) + + pci:v0000103Cd00003300sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO3) + + pci:v0000103Cd00003300sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO4) + + pci:v0000103Cd00003301* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port + + pci:v0000103Cd00003301sv0000103Csd00003304* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) + + pci:v0000103Cd00003301sv0000103Csd00003305* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) + + pci:v0000103Cd00003301sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO3) + + pci:v0000103Cd00003301sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO4) + + pci:v0000103Cd00003302* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface + + pci:v0000103Cd00003302sv0000103Csd00003304* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) + + pci:v0000103Cd00003302sv0000103Csd00003305* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) + + pci:v0000103Cd00003302sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO3) + + pci:v0000103Cd00003302sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO4) + + pci:v0000103Cd00003305* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out (iLO2) Controller +@@ -14004,31 +14004,31 @@ pci:v0000103Cd00003306* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support + + pci:v0000103Cd00003306sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO3) + + pci:v0000103Cd00003306sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO4) + + pci:v0000103Cd00003307* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging + + pci:v0000103Cd00003307sv0000103Csd00003309* +- ID_MODEL_FROM_DATABASE=iLO 2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO 2) + + pci:v0000103Cd00003307sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO3) + + pci:v0000103Cd00003307sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO4) + + pci:v0000103Cd00003308* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer + + pci:v0000103Cd00003308sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO3) + + pci:v0000103Cd00003308sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO4) + + pci:v0000103Cd0000402F* + ID_MODEL_FROM_DATABASE=PCIe Root Port +@@ -14082,19 +14082,19 @@ pci:v00001043d00000675* + ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D + + pci:v00001043d00000675sv00000675sd00001704* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) ++ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, D, C)) + + pci:v00001043d00000675sv00000675sd00001707* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001043d00000675sv000010CFsd0000105E* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001043d00009602* + ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) + + pci:v00001043d00009602sv00001043sd000083A2* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) (M4A785TD Motherboard) + + pci:v00001044* + ID_VENDOR_FROM_DATABASE=Adaptec (formerly DPT) +@@ -14112,118 +14112,118 @@ pci:v00001044d0000A501* + ID_MODEL_FROM_DATABASE=SmartRAID V Controller + + pci:v00001044d0000A501sv00001044sd0000C001* +- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C002* +- ID_MODEL_FROM_DATABASE=PM1654U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1654U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C003* +- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C004* +- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C005* +- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C00A* +- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C00B* +- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C00C* +- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C00D* +- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C00E* +- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C00F* +- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C014* +- ID_MODEL_FROM_DATABASE=PM3754U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3754U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C015* +- ID_MODEL_FROM_DATABASE=PM3755U2B Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755U2B Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C016* +- ID_MODEL_FROM_DATABASE=PM3755F Fibre Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755F Fibre Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C01E* +- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C01F* +- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C020* +- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C021* +- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Quad Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Quad Channel) + + pci:v00001044d0000A501sv00001044sd0000C028* +- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C029* +- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C02A* +- ID_MODEL_FROM_DATABASE=PM2865F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C03C* +- ID_MODEL_FROM_DATABASE=2000S Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C03D* +- ID_MODEL_FROM_DATABASE=2000S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C03E* +- ID_MODEL_FROM_DATABASE=2000F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C046* +- ID_MODEL_FROM_DATABASE=3000S Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C047* +- ID_MODEL_FROM_DATABASE=3000S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C048* +- ID_MODEL_FROM_DATABASE=3000F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C050* +- ID_MODEL_FROM_DATABASE=5000S Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C051* +- ID_MODEL_FROM_DATABASE=5000S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C052* +- ID_MODEL_FROM_DATABASE=5000F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C05A* +- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel) + + pci:v00001044d0000A501sv00001044sd0000C05B* +- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel DAC ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel DAC) + + pci:v00001044d0000A501sv00001044sd0000C064* +- ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C065* +- ID_MODEL_FROM_DATABASE=3410S Ultra160 Four Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3410S Ultra160 Four Channel) + + pci:v00001044d0000A501sv00001044sd0000C066* +- ID_MODEL_FROM_DATABASE=3010S Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Fibre Channel) + + pci:v00001044d0000A511* + ID_MODEL_FROM_DATABASE=SmartRAID V Controller + + pci:v00001044d0000A511sv00001044sd0000C032* +- ID_MODEL_FROM_DATABASE=ASR-2005S I2O Zero Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2005S I2O Zero Channel) + + pci:v00001044d0000A511sv00001044sd0000C035* +- ID_MODEL_FROM_DATABASE=ASR-2010S I2O Zero Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2010S I2O Zero Channel) + + pci:v00001044d0000C066* + ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel +@@ -14325,7 +14325,7 @@ pci:v00001048d00008901* + ID_MODEL_FROM_DATABASE=Gloria XL + + pci:v00001048d00008901sv00001048sd00000935* +- ID_MODEL_FROM_DATABASE=GLoria XL (Virge) ++ ID_MODEL_FROM_DATABASE=Gloria XL (GLoria XL (Virge)) + + pci:v00001049* + ID_VENDOR_FROM_DATABASE=Fountain Technologies, Inc. +@@ -14346,19 +14346,19 @@ pci:v0000104Ad00000010* + ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] + + pci:v0000104Ad00000010sv0000104Asd00004018* +- ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (ST PowerVR Kyro (64MB AGP TVO)) + + pci:v0000104Ad00000010sv00001681sd00000010* +- ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (PowerVR Kyro II [3D Prophet 4500]) + + pci:v0000104Ad00000010sv00001681sd00000028* +- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) + + pci:v0000104Ad00000010sv00001681sd0000C010* +- ID_MODEL_FROM_DATABASE=3D Prophet 4500 TV-Out ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4500 TV-Out) + + pci:v0000104Ad00000010sv00001681sd0000C069* +- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) + + pci:v0000104Ad00000201* + ID_MODEL_FROM_DATABASE=STPC Vega Northbridge +@@ -14400,7 +14400,7 @@ pci:v0000104Ad00000500* + ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver + + pci:v0000104Ad00000500sv0000104Asd00000500* +- ID_MODEL_FROM_DATABASE=BeWAN ADSL PCI st ++ ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver (BeWAN ADSL PCI st) + + pci:v0000104Ad00000564* + ID_MODEL_FROM_DATABASE=STPC Client Northbridge +@@ -14454,115 +14454,115 @@ pci:v0000104Cd00003D07* + ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] + + pci:v0000104Cd00003D07sv00001011sd00004D10* +- ID_MODEL_FROM_DATABASE=Comet ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Comet) + + pci:v0000104Cd00003D07sv00001040sd0000000F* +- ID_MODEL_FROM_DATABASE=AccelStar II ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) + + pci:v0000104Cd00003D07sv00001040sd00000011* +- ID_MODEL_FROM_DATABASE=AccelStar II ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) + + pci:v0000104Cd00003D07sv00001048sd00000A31* +- ID_MODEL_FROM_DATABASE=WINNER 2000 ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WINNER 2000) + + pci:v0000104Cd00003D07sv00001048sd00000A32* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A34* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A35* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A36* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A43* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A44* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv0000107Dsd00002633* +- ID_MODEL_FROM_DATABASE=WinFast 3D L2300 ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WinFast 3D L2300) + + pci:v0000104Cd00003D07sv00001092sd00000126* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000127* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000136* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000141* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000146* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000148* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000149* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000152* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000154* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000155* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000156* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000157* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001097sd00003D01* +- ID_MODEL_FROM_DATABASE=Jeronimo Pro ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Jeronimo Pro) + + pci:v0000104Cd00003D07sv00001102sd0000100F* +- ID_MODEL_FROM_DATABASE=Graphics Blaster Extreme ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Graphics Blaster Extreme) + + pci:v0000104Cd00003D07sv00003D3Dsd00000100* +- ID_MODEL_FROM_DATABASE=Reference Permedia 2 3D ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Reference Permedia 2 3D) + + pci:v0000104Cd00008000* + ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller + + pci:v0000104Cd00008000sv0000105Esd00008003* +- ID_MODEL_FROM_DATABASE=FireBoard200 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) + + pci:v0000104Cd00008000sv00001443sd00008003* +- ID_MODEL_FROM_DATABASE=FireBoard200 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) + + pci:v0000104Cd00008000sv00001443sd00008005* +- ID_MODEL_FROM_DATABASE=FireBoard400 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) + + pci:v0000104Cd00008000sv00001443sd00008006* +- ID_MODEL_FROM_DATABASE=FireBoard400 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) + + pci:v0000104Cd00008000sv0000E4BFsd00001010* +- ID_MODEL_FROM_DATABASE=CF1-1-SNARE ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-1-SNARE) + + pci:v0000104Cd00008000sv0000E4BFsd00001020* +- ID_MODEL_FROM_DATABASE=CF1-2-SNARE ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-2-SNARE) + + pci:v0000104Cd00008000sv0000E4BFsd00001040* +- ID_MODEL_FROM_DATABASE=FireCompact400 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireCompact400) + + pci:v0000104Cd00008009* + ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller + + pci:v0000104Cd00008009sv0000104Dsd00008032* +- ID_MODEL_FROM_DATABASE=8032 OHCI i.LINK (IEEE 1394) Controller ++ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (8032 OHCI i.LINK (IEEE 1394) Controller) + + pci:v0000104Cd00008009sv00001443sd00008010* +- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI ++ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (FireBoard400-OHCI) + + pci:v0000104Cd00008017* + ID_MODEL_FROM_DATABASE=PCI4410 FireWire Controller +@@ -14571,223 +14571,223 @@ pci:v0000104Cd00008019* + ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller + + pci:v0000104Cd00008019sv000011BDsd0000000A* +- ID_MODEL_FROM_DATABASE=Studio DV500-1394 ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV500-1394) + + pci:v0000104Cd00008019sv000011BDsd0000000E* +- ID_MODEL_FROM_DATABASE=Studio DV ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV) + + pci:v0000104Cd00008019sv00001443sd00008010* +- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (FireBoard400-OHCI) + + pci:v0000104Cd00008019sv0000E4BFsd00001010* +- ID_MODEL_FROM_DATABASE=CF2-1-CYMBAL ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (CF2-1-CYMBAL) + + pci:v0000104Cd00008020* + ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) + + pci:v0000104Cd00008020sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Precision 530) + + pci:v0000104Cd00008020sv0000104Dsd000080E2* +- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (VAIO PCV-J200) + + pci:v0000104Cd00008020sv000011BDsd0000000F* +- ID_MODEL_FROM_DATABASE=Studio DV500-1394 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Studio DV500-1394) + + pci:v0000104Cd00008020sv000011BDsd0000001C* +- ID_MODEL_FROM_DATABASE=Excalibur 4.1 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Excalibur 4.1) + + pci:v0000104Cd00008020sv00001443sd00008010* +- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (FireBoard400-OHCI) + + pci:v0000104Cd00008021* + ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) + + pci:v0000104Cd00008021sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (Vaio PCG-FX403) + + pci:v0000104Cd00008021sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v0000104Cd00008022* + ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] + + pci:v0000104Cd00008022sv0000104Csd00008023* +- ID_MODEL_FROM_DATABASE=TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) ++ ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)) + + pci:v0000104Cd00008023* + ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] + + pci:v0000104Cd00008023sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Precision Workstation 670 Mainboard) + + pci:v0000104Cd00008023sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (NC8000 laptop) + + pci:v0000104Cd00008023sv00001043sd0000808B* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (K8N4/A8N Series Mainboard) + + pci:v0000104Cd00008023sv00001043sd0000815B* +- ID_MODEL_FROM_DATABASE=P5W DH Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (P5W DH Deluxe Motherboard) + + pci:v0000104Cd00008023sv00001443sd00008023* +- ID_MODEL_FROM_DATABASE=FireCard400 ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (FireCard400) + + pci:v0000104Cd00008023sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Desktop Board DP35DP) + + pci:v0000104Cd00008024* + ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) + + pci:v0000104Cd00008024sv0000107Dsd00006620* +- ID_MODEL_FROM_DATABASE=Winfast DV2000 FireWire Controller ++ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Winfast DV2000 FireWire Controller) + + pci:v0000104Cd00008024sv00001443sd00008024* +- ID_MODEL_FROM_DATABASE=FireBoard Blue ++ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (FireBoard Blue) + + pci:v0000104Cd00008024sv00001458sd00001000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Motherboard) + + pci:v0000104Cd00008025* + ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller + + pci:v0000104Cd00008025sv00001043sd0000813C* +- ID_MODEL_FROM_DATABASE=P5P series mainboard ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (P5P series mainboard) + + pci:v0000104Cd00008025sv00001443sd00008025* +- ID_MODEL_FROM_DATABASE=FireBoard800 ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FireBoard800) + + pci:v0000104Cd00008025sv00001458sd00001000* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GA-K8N Ultra-9 Mainboard) + + pci:v0000104Cd00008025sv00001546sd00008025* +- ID_MODEL_FROM_DATABASE=FWB-PCI01 ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FWB-PCI01) + + pci:v0000104Cd00008025sv000017FCsd00008025* +- ID_MODEL_FROM_DATABASE=GIC3800 ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GIC3800) + + pci:v0000104Cd00008026* + ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) + + pci:v0000104Cd00008026sv00001025sd00000035* +- ID_MODEL_FROM_DATABASE=TravelMate 660 ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (TravelMate 660) + + pci:v0000104Cd00008026sv00001025sd0000003C* +- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compaq CL50 motherboard) ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (Aspire 2001WLCi (Compaq CL50 motherboard)) + + pci:v0000104Cd00008026sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (XE4500 Notebook) + + pci:v0000104Cd00008026sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (NX9500) + + pci:v0000104Cd00008026sv00001043sd0000808D* +- ID_MODEL_FROM_DATABASE=A7V333 mainboard. ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (A7V333 mainboard.) + + pci:v0000104Cd00008027* + ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller + + pci:v0000104Cd00008027sv00001028sd000000E5* +- ID_MODEL_FROM_DATABASE=Latitude C810 ++ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Latitude C810) + + pci:v0000104Cd00008027sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Dell Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller ((Dell Inspiron 8100)) + + pci:v0000104Cd00008029* + ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller + + pci:v0000104Cd00008029sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Latitude D505) + + pci:v0000104Cd00008029sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Inspiron 5160) + + pci:v0000104Cd00008029sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2900 ++ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (MIM2900) + + pci:v0000104Cd0000802B* + ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller + + pci:v0000104Cd0000802Bsv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D400) + + pci:v0000104Cd0000802Bsv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D800) ++ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller ((Latitude D800)) + + pci:v0000104Cd0000802E* + ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller + + pci:v0000104Cd0000802Esv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller (Inspiron 700m/710m) + + pci:v0000104Cd00008031* + ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller + + pci:v0000104Cd00008031sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008031sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008031sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (NX6110/NC6120) + + pci:v0000104Cd00008031sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (MX6125) + + pci:v0000104Cd00008032* + ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller + + pci:v0000104Cd00008032sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008032sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008032sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (NX6110/NC6120) + + pci:v0000104Cd00008032sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (MX6125) + + pci:v0000104Cd00008033* + ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller + + pci:v0000104Cd00008033sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008033sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008033sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (NX6110/NC6120) + + pci:v0000104Cd00008033sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (MX6125) + + pci:v0000104Cd00008034* + ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller + + pci:v0000104Cd00008034sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008034sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008034sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (NX6110/NC6120) + + pci:v0000104Cd00008034sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (MX6125) + + pci:v0000104Cd00008035* + ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller + + pci:v0000104Cd00008035sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008035sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (NX6110/NC6120) + + pci:v0000104Cd00008036* + ID_MODEL_FROM_DATABASE=PCI6515 Cardbus Controller +@@ -14799,67 +14799,67 @@ pci:v0000104Cd00008039* + ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller + + pci:v0000104Cd00008039sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nx9420 Notebook) + + pci:v0000104Cd00008039sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (NC2400) + + pci:v0000104Cd00008039sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nw8440) + + pci:v0000104Cd00008039sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (VAIO VGN-NR120E) + + pci:v0000104Cd0000803A* + ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller + + pci:v0000104Cd0000803Asv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=nx9420 ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (nx9420) + + pci:v0000104Cd0000803Asv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (NC2400) + + pci:v0000104Cd0000803Asv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (Compaq nw8440) + + pci:v0000104Cd0000803Asv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (VAIO VGN-NR120E) + + pci:v0000104Cd0000803B* + ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) + + pci:v0000104Cd0000803Bsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=nx9420 ++ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (nx9420) + + pci:v0000104Cd0000803Bsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (Compaq nw8440) + + pci:v0000104Cd0000803Bsv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (VAIO VGN-NR120E) + + pci:v0000104Cd0000803C* + ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller + + pci:v0000104Cd0000803Csv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=nx9420 ++ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (nx9420) + + pci:v0000104Cd0000803Csv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (Compaq nw8440) + + pci:v0000104Cd0000803D* + ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller + + pci:v0000104Cd0000803Dsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (Compaq nx9420 Notebook) + + pci:v0000104Cd0000803Dsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (NC2400) + + pci:v0000104Cd0000803Dsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=nc8430 ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc8430) + + pci:v0000104Cd0000803Dsv0000103Csd000030AA* +- ID_MODEL_FROM_DATABASE=nc6310 ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc6310) + + pci:v0000104Cd00008101* + ID_MODEL_FROM_DATABASE=TSB43DB42 IEEE-1394a-2000 Controller (PHY/Link) +@@ -14871,16 +14871,16 @@ pci:v0000104Cd00008204* + ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function + + pci:v0000104Cd00008204sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D400) + + pci:v0000104Cd00008204sv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=Latitude D800 ++ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D800) + + pci:v0000104Cd00008231* + ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge + + pci:v0000104Cd00008231sv00005678sd00001234* +- ID_MODEL_FROM_DATABASE=DC-1394 PCIe ++ ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge (DC-1394 PCIe) + + pci:v0000104Cd00008232* + ID_MODEL_FROM_DATABASE=XIO3130 PCI Express Switch (Upstream) +@@ -14892,7 +14892,7 @@ pci:v0000104Cd00008235* + ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) + + pci:v0000104Cd00008235sv00005678sd00001234* +- ID_MODEL_FROM_DATABASE=DC-1394 PCIe ++ ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) (DC-1394 PCIe) + + pci:v0000104Cd0000823E* + ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] +@@ -14901,7 +14901,7 @@ pci:v0000104Cd0000823F* + ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] + + pci:v0000104Cd0000823Fsv00001546sd0000803C* +- ID_MODEL_FROM_DATABASE=FWB-PCIE1X11B ++ ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (FWB-PCIE1X11B) + + pci:v0000104Cd00008240* + ID_MODEL_FROM_DATABASE=XIO2001 PCI Express-to-PCI Bridge +@@ -14913,16 +14913,16 @@ pci:v0000104Cd00008400* + ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface + + pci:v0000104Cd00008400sv00001186sd00003B00* +- ID_MODEL_FROM_DATABASE=DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus] ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus]) + + pci:v0000104Cd00008400sv00001186sd00003B01* +- ID_MODEL_FROM_DATABASE=DWL-520+ 22Mbps PCI Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-520+ 22Mbps PCI Wireless Adapter) + + pci:v0000104Cd00008400sv00001395sd00002201* +- ID_MODEL_FROM_DATABASE=WL22-PC ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL22-PC) + + pci:v0000104Cd00008400sv000016ABsd00008501* +- ID_MODEL_FROM_DATABASE=WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter) + + pci:v0000104Cd00008401* + ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface +@@ -14937,58 +14937,58 @@ pci:v0000104Cd00009066* + ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface + + pci:v0000104Cd00009066sv00000308sd00003404* +- ID_MODEL_FROM_DATABASE=G-102 v1 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-102 v1 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv00000308sd00003406* +- ID_MODEL_FROM_DATABASE=G-162 v2 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v2 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv0000104Csd00009066* +- ID_MODEL_FROM_DATABASE=WL212 Sitecom Wireless Network PCI-Card 100M (Version 1) ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WL212 Sitecom Wireless Network PCI-Card 100M (Version 1)) + + pci:v0000104Cd00009066sv0000104Csd00009067* +- ID_MODEL_FROM_DATABASE=TNETW1130GVF ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (TNETW1130GVF) + + pci:v0000104Cd00009066sv0000104Csd00009096* +- ID_MODEL_FROM_DATABASE=Trendnet TEW-412PC Wireless PCI Adapter (Version A) ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Trendnet TEW-412PC Wireless PCI Adapter (Version A)) + + pci:v0000104Cd00009066sv00001186sd00003B04* +- ID_MODEL_FROM_DATABASE=DWL-G520+ Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G520+ Wireless PCI Adapter) + + pci:v0000104Cd00009066sv00001186sd00003B05* +- ID_MODEL_FROM_DATABASE=DWL-G650+ AirPlusG+ CardBus Wireless LAN ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G650+ AirPlusG+ CardBus Wireless LAN) + + pci:v0000104Cd00009066sv00001186sd00003B08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1) ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1)) + + pci:v0000104Cd00009066sv00001385sd00004C00* +- ID_MODEL_FROM_DATABASE=WG311v2 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WG311v2 802.11g Wireless PCI Adapter) + + pci:v0000104Cd00009066sv000013D1sd0000ABA0* +- ID_MODEL_FROM_DATABASE=SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+ ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+) + + pci:v0000104Cd00009066sv000014EAsd0000AB07* +- ID_MODEL_FROM_DATABASE=GW-NS54GM Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (GW-NS54GM Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv000016ECsd0000010D* +- ID_MODEL_FROM_DATABASE=USR5416 802.11g Wireless Turbo PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5416 802.11g Wireless Turbo PCI Adapter) + + pci:v0000104Cd00009066sv000016ECsd0000010E* +- ID_MODEL_FROM_DATABASE=USR5410 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5410 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv00001737sd00000033* +- ID_MODEL_FROM_DATABASE=WPC54G v2 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WPC54G v2 802.11g Wireless-G Notebook Adapter) + + pci:v0000104Cd00009066sv000017CFsd00000032* +- ID_MODEL_FROM_DATABASE=G-162 v1 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v1 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv000017CFsd00000033* +- ID_MODEL_FROM_DATABASE=Z-Com XG650 Wireless miniPCI 802.11b/g ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Z-Com XG650 Wireless miniPCI 802.11b/g) + + pci:v0000104Cd00009066sv0000187Esd0000340B* +- ID_MODEL_FROM_DATABASE=G-302 v2 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-302 v2 802.11g Wireless PCI Adapter) + + pci:v0000104Cd00009066sv0000187Esd0000340C* +- ID_MODEL_FROM_DATABASE=G-360 v2 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-360 v2 802.11g Wireless PCI Adapter) + + pci:v0000104Cd0000A001* + ID_MODEL_FROM_DATABASE=TDC1570 +@@ -15003,13 +15003,13 @@ pci:v0000104Cd0000A106* + ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 + + pci:v0000104Cd0000A106sv0000175Csd00005000* +- ID_MODEL_FROM_DATABASE=ASI50xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI50xx Audio Adapter) + + pci:v0000104Cd0000A106sv0000175Csd00006400* +- ID_MODEL_FROM_DATABASE=ASI6400 Cobranet series ++ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI6400 Cobranet series) + + pci:v0000104Cd0000A106sv0000175Csd00008700* +- ID_MODEL_FROM_DATABASE=ASI87xx Radio Tuner card ++ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI87xx Radio Tuner card) + + pci:v0000104Cd0000AC10* + ID_MODEL_FROM_DATABASE=PCI1050 +@@ -15030,7 +15030,7 @@ pci:v0000104Cd0000AC16* + ID_MODEL_FROM_DATABASE=PCI1250 + + pci:v0000104Cd0000AC16sv00001014sd00000092* +- ID_MODEL_FROM_DATABASE=ThinkPad 600 ++ ID_MODEL_FROM_DATABASE=PCI1250 (ThinkPad 600) + + pci:v0000104Cd0000AC17* + ID_MODEL_FROM_DATABASE=PCI1220 +@@ -15048,19 +15048,19 @@ pci:v0000104Cd0000AC1B* + ID_MODEL_FROM_DATABASE=PCI1450 + + pci:v0000104Cd0000AC1Bsv00000E11sd0000B113* +- ID_MODEL_FROM_DATABASE=Armada M700 ++ ID_MODEL_FROM_DATABASE=PCI1450 (Armada M700) + + pci:v0000104Cd0000AC1Bsv00001014sd00000130* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A21m/T20/T22 ++ ID_MODEL_FROM_DATABASE=PCI1450 (ThinkPad 600X/A21m/T20/T22) + + pci:v0000104Cd0000AC1C* + ID_MODEL_FROM_DATABASE=PCI1225 + + pci:v0000104Cd0000AC1Csv00000E11sd0000B121* +- ID_MODEL_FROM_DATABASE=Armada E500 ++ ID_MODEL_FROM_DATABASE=PCI1225 (Armada E500) + + pci:v0000104Cd0000AC1Csv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=Latitude CPi A400XT ++ ID_MODEL_FROM_DATABASE=PCI1225 (Latitude CPi A400XT) + + pci:v0000104Cd0000AC1D* + ID_MODEL_FROM_DATABASE=PCI1251A +@@ -15102,40 +15102,40 @@ pci:v0000104Cd0000AC42* + ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller + + pci:v0000104Cd0000AC42sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=PCI4451 PC card CardBus Controller (Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller (PCI4451 PC card CardBus Controller (Inspiron 8100)) + + pci:v0000104Cd0000AC44* + ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller + + pci:v0000104Cd0000AC44sv00001028sd00000149* +- ID_MODEL_FROM_DATABASE=Inspiron 5100 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5100) + + pci:v0000104Cd0000AC44sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Latitude D505) + + pci:v0000104Cd0000AC44sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5160) + + pci:v0000104Cd0000AC44sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (MIM2000) + + pci:v0000104Cd0000AC46* + ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller + + pci:v0000104Cd0000AC46sv00001014sd00000552* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller (ThinkPad) + + pci:v0000104Cd0000AC47* + ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller + + pci:v0000104Cd0000AC47sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D400) + + pci:v0000104Cd0000AC47sv00001028sd0000013F* +- ID_MODEL_FROM_DATABASE=Precision M60 ++ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Precision M60) + + pci:v0000104Cd0000AC47sv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=Latitude D800 ++ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D800) + + pci:v0000104Cd0000AC48* + ID_MODEL_FROM_DATABASE=PCI7610 PC Card Cardbus Controller +@@ -15147,10 +15147,10 @@ pci:v0000104Cd0000AC4A* + ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge + + pci:v0000104Cd0000AC4Asv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D400) + + pci:v0000104Cd0000AC4Asv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=Latitude D800 ++ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D800) + + pci:v0000104Cd0000AC4B* + ID_MODEL_FROM_DATABASE=PCI7610 SD/MMC controller +@@ -15165,28 +15165,28 @@ pci:v0000104Cd0000AC51* + ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller + + pci:v0000104Cd0000AC51sv00000E11sd0000004E* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Evo N600c) + + pci:v0000104Cd0000AC51sv00001014sd00000148* +- ID_MODEL_FROM_DATABASE=ThinkPad A20m ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad A20m) + + pci:v0000104Cd0000AC51sv00001014sd0000023B* +- ID_MODEL_FROM_DATABASE=ThinkPad T23 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad T23) + + pci:v0000104Cd0000AC51sv00001028sd000000B1* +- ID_MODEL_FROM_DATABASE=Latitude C600 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C600) + + pci:v0000104Cd0000AC51sv00001028sd0000012A* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C640) + + pci:v0000104Cd0000AC51sv00001033sd000080CD* +- ID_MODEL_FROM_DATABASE=Versa Note VXi ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Versa Note VXi) + + pci:v0000104Cd0000AC51sv000010CFsd00001095* +- ID_MODEL_FROM_DATABASE=Lifebook S-4510/C6155 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Lifebook S-4510/C6155) + + pci:v0000104Cd0000AC51sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CP2-2-HIPHOP ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (CP2-2-HIPHOP) + + pci:v0000104Cd0000AC52* + ID_MODEL_FROM_DATABASE=PCI1451 PC card Cardbus Controller +@@ -15198,55 +15198,55 @@ pci:v0000104Cd0000AC54* + ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller + + pci:v0000104Cd0000AC54sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller (tc1100 tablet) + + pci:v0000104Cd0000AC55* + ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller + + pci:v0000104Cd0000AC55sv00001014sd00000512* +- ID_MODEL_FROM_DATABASE=ThinkPad T30/T40 ++ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (ThinkPad T30/T40) + + pci:v0000104Cd0000AC55sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (XE4500 Notebook) + + pci:v0000104Cd0000AC56* + ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller + + pci:v0000104Cd0000AC56sv00001014sd00000512* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R50e) + + pci:v0000104Cd0000AC56sv00001014sd00000528* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R40e) + + pci:v0000104Cd0000AC56sv000017AAsd00002012* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad T60/R60 series) + + pci:v0000104Cd0000AC60* + ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller + + pci:v0000104Cd0000AC60sv0000175Csd00005100* +- ID_MODEL_FROM_DATABASE=ASI51xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI51xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000175Csd00006100* +- ID_MODEL_FROM_DATABASE=ASI61xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI61xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000175Csd00006200* +- ID_MODEL_FROM_DATABASE=ASI62xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI62xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000175Csd00008800* +- ID_MODEL_FROM_DATABASE=ASI88xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI88xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000186Fsd00003001* +- ID_MODEL_FROM_DATABASE=WR-G303 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G303 PCI radio receiver) + + pci:v0000104Cd0000AC60sv0000186Fsd00003005* +- ID_MODEL_FROM_DATABASE=WR-G305 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G305 PCI radio receiver) + + pci:v0000104Cd0000AC60sv0000186Fsd00003101* +- ID_MODEL_FROM_DATABASE=WR-G313 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G313 PCI radio receiver) + + pci:v0000104Cd0000AC60sv0000186Fsd00003105* +- ID_MODEL_FROM_DATABASE=WR-G315 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G315 PCI radio receiver) + + pci:v0000104Cd0000AC8D* + ID_MODEL_FROM_DATABASE=PCI 7620 +@@ -15255,13 +15255,13 @@ pci:v0000104Cd0000AC8E* + ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller + + pci:v0000104Cd0000AC8Esv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller (Inspiron 700m/710m) + + pci:v0000104Cd0000AC8F* + ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller + + pci:v0000104Cd0000AC8Fsv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller (Inspiron 700m/710m) + + pci:v0000104Cd0000B001* + ID_MODEL_FROM_DATABASE=TMS320C6424 +@@ -15336,10 +15336,10 @@ pci:v00001050d00000840* + ID_MODEL_FROM_DATABASE=W89C840 + + pci:v00001050d00000840sv00001050sd00000001* +- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) + + pci:v00001050d00000840sv00001050sd00000840* +- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) + + pci:v00001050d00000940* + ID_MODEL_FROM_DATABASE=W89C940 +@@ -15351,22 +15351,22 @@ pci:v00001050d00006692* + ID_MODEL_FROM_DATABASE=W6692 + + pci:v00001050d00006692sv00001043sd00001702* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) + + pci:v00001050d00006692sv00001043sd00001703* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00006692sv00001043sd00001707* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00006692sv0000144Fsd00001702* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) + + pci:v00001050d00006692sv0000144Fsd00001703* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00006692sv0000144Fsd00001707* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00009921* + ID_MODEL_FROM_DATABASE=W99200F MPEG-1 Video Encoder +@@ -15501,76 +15501,76 @@ pci:v00001057d00001801* + ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor + + pci:v00001057d00001801sv000014FBsd00000101* +- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM]) + + pci:v00001057d00001801sv000014FBsd00000102* +- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM-2]) + + pci:v00001057d00001801sv000014FBsd00000202* +- ID_MODEL_FROM_DATABASE=Transas Radar Integrator Board [RIB-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Integrator Board [RIB-2]) + + pci:v00001057d00001801sv000014FBsd00000611* +- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci-1] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci-1]) + + pci:v00001057d00001801sv000014FBsd00000612* +- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci-2]) + + pci:v00001057d00001801sv000014FBsd00000613* +- ID_MODEL_FROM_DATABASE=3 channels CAN bus Controller [CanPci-3] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (3 channels CAN bus Controller [CanPci-3]) + + pci:v00001057d00001801sv000014FBsd00000614* +- ID_MODEL_FROM_DATABASE=4 channels CAN bus Controller [CanPci-4] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (4 channels CAN bus Controller [CanPci-4]) + + pci:v00001057d00001801sv000014FBsd00000621* +- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci2-1] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci2-1]) + + pci:v00001057d00001801sv000014FBsd00000622* +- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci2-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci2-2]) + + pci:v00001057d00001801sv000014FBsd00000810* +- ID_MODEL_FROM_DATABASE=Transas VTS Radar Integrator Board [RIB-4] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas VTS Radar Integrator Board [RIB-4]) + + pci:v00001057d00001801sv0000175Csd00004200* +- ID_MODEL_FROM_DATABASE=ASI4215 Audio Adapter ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4215 Audio Adapter) + + pci:v00001057d00001801sv0000175Csd00004300* +- ID_MODEL_FROM_DATABASE=ASI43xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI43xx Audio Adapter) + + pci:v00001057d00001801sv0000175Csd00004400* +- ID_MODEL_FROM_DATABASE=ASI4401 Audio Adapter ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4401 Audio Adapter) + + pci:v00001057d00001801sv0000ECC0sd00000010* +- ID_MODEL_FROM_DATABASE=Darla ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla) + + pci:v00001057d00001801sv0000ECC0sd00000020* +- ID_MODEL_FROM_DATABASE=Gina ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina) + + pci:v00001057d00001801sv0000ECC0sd00000030* +- ID_MODEL_FROM_DATABASE=Layla rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000031* +- ID_MODEL_FROM_DATABASE=Layla rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000040* +- ID_MODEL_FROM_DATABASE=Darla24 rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000041* +- ID_MODEL_FROM_DATABASE=Darla24 rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000050* +- ID_MODEL_FROM_DATABASE=Gina24 rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000051* +- ID_MODEL_FROM_DATABASE=Gina24 rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000070* +- ID_MODEL_FROM_DATABASE=Mona rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000071* +- ID_MODEL_FROM_DATABASE=Mona rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000072* +- ID_MODEL_FROM_DATABASE=Mona rev.2 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.2) + + pci:v00001057d000018C0* + ID_MODEL_FROM_DATABASE=MPC8265A/8266/8272 +@@ -15585,40 +15585,40 @@ pci:v00001057d00003410* + ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor + + pci:v00001057d00003410sv0000ECC0sd00000050* +- ID_MODEL_FROM_DATABASE=Gina24 rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.0) + + pci:v00001057d00003410sv0000ECC0sd00000051* +- ID_MODEL_FROM_DATABASE=Gina24 rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.1) + + pci:v00001057d00003410sv0000ECC0sd00000060* +- ID_MODEL_FROM_DATABASE=Layla24 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Layla24) + + pci:v00001057d00003410sv0000ECC0sd00000070* +- ID_MODEL_FROM_DATABASE=Mona rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.0) + + pci:v00001057d00003410sv0000ECC0sd00000071* +- ID_MODEL_FROM_DATABASE=Mona rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.1) + + pci:v00001057d00003410sv0000ECC0sd00000072* +- ID_MODEL_FROM_DATABASE=Mona rev.2 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.2) + + pci:v00001057d00003410sv0000ECC0sd00000080* +- ID_MODEL_FROM_DATABASE=Mia rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.0) + + pci:v00001057d00003410sv0000ECC0sd00000081* +- ID_MODEL_FROM_DATABASE=Mia rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.1) + + pci:v00001057d00003410sv0000ECC0sd00000090* +- ID_MODEL_FROM_DATABASE=Indigo ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo) + + pci:v00001057d00003410sv0000ECC0sd000000A0* +- ID_MODEL_FROM_DATABASE=Indigo IO ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo IO) + + pci:v00001057d00003410sv0000ECC0sd000000B0* +- ID_MODEL_FROM_DATABASE=Indigo DJ ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo DJ) + + pci:v00001057d00003410sv0000ECC0sd00000100* +- ID_MODEL_FROM_DATABASE=3G ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (3G) + + pci:v00001057d00004801* + ID_MODEL_FROM_DATABASE=Raven +@@ -15639,55 +15639,55 @@ pci:v00001057d00005600* + ID_MODEL_FROM_DATABASE=SM56 PCI Modem + + pci:v00001057d00005600sv00001057sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001057sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice Modem) + + pci:v00001057d00005600sv00001057sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001057sd00005600* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv000013D2sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv000013D2sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv000013D2sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001436sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001436sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv00001436sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv0000144Fsd0000100C* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001494sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001494sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv000014C8sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv000014C8sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001668sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001668sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005608* + ID_MODEL_FROM_DATABASE=Wildcard X100P +@@ -15723,16 +15723,16 @@ pci:v0000105Ad00000D30* + ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) + + pci:v0000105Ad00000D30sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=AV7266-E South Bridge Promise RAID ++ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (AV7266-E South Bridge Promise RAID) + + pci:v0000105Ad00000D30sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=Ultra100 ++ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (Ultra100) + + pci:v0000105Ad00000D38* + ID_MODEL_FROM_DATABASE=20263 + + pci:v0000105Ad00000D38sv0000105Asd00004D39* +- ID_MODEL_FROM_DATABASE=Fasttrak66 ++ ID_MODEL_FROM_DATABASE=20263 (Fasttrak66) + + pci:v0000105Ad00001275* + ID_MODEL_FROM_DATABASE=20275 +@@ -15744,10 +15744,10 @@ pci:v0000105Ad00003319* + ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) + + pci:v0000105Ad00003319sv0000105Asd00003319* +- ID_MODEL_FROM_DATABASE=FastTrak S150 TX4 4 port SATA PCI board ++ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (FastTrak S150 TX4 4 port SATA PCI board) + + pci:v0000105Ad00003319sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (S875WP1-E mainboard) + + pci:v0000105Ad00003371* + ID_MODEL_FROM_DATABASE=PDC20371 (FastTrak S150 TX2plus) +@@ -15756,13 +15756,13 @@ pci:v0000105Ad00003373* + ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) + + pci:v0000105Ad00003373sv00001043sd000080F5* +- ID_MODEL_FROM_DATABASE=K8V Deluxe/PC-DL Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8V Deluxe/PC-DL Deluxe motherboard) + + pci:v0000105Ad00003373sv00001462sd0000590D* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (KT6 Delta-FIS2R (MS-6590)) + + pci:v0000105Ad00003373sv00001462sd0000702E* +- ID_MODEL_FROM_DATABASE=K8T NEO FIS2R motherboard ++ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8T NEO FIS2R motherboard) + + pci:v0000105Ad00003375* + ID_MODEL_FROM_DATABASE=PDC20375 (SATA150 TX2plus) +@@ -15771,7 +15771,7 @@ pci:v0000105Ad00003376* + ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) + + pci:v0000105Ad00003376sv00001043sd0000809E* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) (A7V8X motherboard) + + pci:v0000105Ad00003515* + ID_MODEL_FROM_DATABASE=PDC40719 [FastTrak TX4300/TX4310] +@@ -15813,58 +15813,58 @@ pci:v0000105Ad00004D30* + ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) + + pci:v0000105Ad00004D30sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=Ultra100 ++ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (Ultra100) + + pci:v0000105Ad00004D30sv0000105Asd00004D39* +- ID_MODEL_FROM_DATABASE=FastTrak100 ++ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (FastTrak100) + + pci:v0000105Ad00004D30sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (S845WD1-E mainboard) + + pci:v0000105Ad00004D33* + ID_MODEL_FROM_DATABASE=20246 + + pci:v0000105Ad00004D33sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=20246 IDE Controller ++ ID_MODEL_FROM_DATABASE=20246 (IDE Controller) + + pci:v0000105Ad00004D38* + ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) + + pci:v0000105Ad00004D38sv0000105Asd00004D30* +- ID_MODEL_FROM_DATABASE=Ultra Device on SuperTrak ++ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra Device on SuperTrak) + + pci:v0000105Ad00004D38sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=Ultra66 ++ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra66) + + pci:v0000105Ad00004D38sv0000105Asd00004D39* +- ID_MODEL_FROM_DATABASE=FastTrak66 ++ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (FastTrak66) + + pci:v0000105Ad00004D68* + ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] + + pci:v0000105Ad00004D68sv0000105Asd00004D68* +- ID_MODEL_FROM_DATABASE=Ultra100 TX2 ++ ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] (Ultra100 TX2) + + pci:v0000105Ad00004D69* + ID_MODEL_FROM_DATABASE=20269 + + pci:v0000105Ad00004D69sv0000105Asd00004D68* +- ID_MODEL_FROM_DATABASE=Ultra133TX2 ++ ID_MODEL_FROM_DATABASE=20269 (Ultra133TX2) + + pci:v0000105Ad00005275* + ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) + + pci:v0000105Ad00005275sv00001043sd0000807E* +- ID_MODEL_FROM_DATABASE=A7V333 motherboard. ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (A7V333 motherboard.) + + pci:v0000105Ad00005275sv0000105Asd00000275* +- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 IDE ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (SuperTrak SX6000 IDE) + + pci:v0000105Ad00005275sv0000105Asd00001275* +- ID_MODEL_FROM_DATABASE=MBFastTrak133 Lite (tm) Controller (RAID mode) ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBFastTrak133 Lite (tm) Controller (RAID mode)) + + pci:v0000105Ad00005275sv00001458sd0000B001* +- ID_MODEL_FROM_DATABASE=MBUltra 133 ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBUltra 133) + + pci:v0000105Ad00005300* + ID_MODEL_FROM_DATABASE=DC5300 +@@ -15873,13 +15873,13 @@ pci:v0000105Ad00006268* + ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) + + pci:v0000105Ad00006268sv0000105Asd00004D68* +- ID_MODEL_FROM_DATABASE=FastTrak100 TX2 ++ ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) (FastTrak100 TX2) + + pci:v0000105Ad00006269* + ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) + + pci:v0000105Ad00006269sv0000105Asd00006269* +- ID_MODEL_FROM_DATABASE=FastTrak TX2/TX2000 ++ ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) (FastTrak TX2/TX2000) + + pci:v0000105Ad00006300* + ID_MODEL_FROM_DATABASE=PDC81731 [FastTrak SX8300] +@@ -15912,43 +15912,43 @@ pci:v0000105Ad00008650* + ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] + + pci:v0000105Ad00008650sv0000105Asd00004600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX4650A ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650A) + + pci:v0000105Ad00008650sv0000105Asd00004601* +- ID_MODEL_FROM_DATABASE=SuperTrak EX4650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650) + + pci:v0000105Ad00008650sv0000105Asd00004610* +- ID_MODEL_FROM_DATABASE=SuperTrak EX4650EL ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650EL) + + pci:v0000105Ad00008650sv0000105Asd00008600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650EL ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650EL) + + pci:v0000105Ad00008650sv0000105Asd00008601* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650A ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650A) + + pci:v0000105Ad00008650sv0000105Asd00008602* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8654 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8654) + + pci:v0000105Ad00008650sv0000105Asd00008603* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8658 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8658) + + pci:v0000105Ad00008650sv0000105Asd00008604* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650) + + pci:v0000105Ad00008650sv0000105Asd00008610* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650M ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650M) + + pci:v0000105Ad00008650sv0000105Asd0000A600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX12650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX12650) + + pci:v0000105Ad00008650sv0000105Asd0000B600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX16650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16650) + + pci:v0000105Ad00008650sv0000105Asd0000B601* +- ID_MODEL_FROM_DATABASE=SuperTrak EX16654 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16654) + + pci:v0000105Ad00008650sv0000105Asd0000B602* +- ID_MODEL_FROM_DATABASE=SuperTrak EX16658 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16658) + + pci:v0000105Ad00008760* + ID_MODEL_FROM_DATABASE=PM8010 [SuperTrak EX SAS and SATA 6G RAID Controller] +@@ -15975,106 +15975,106 @@ pci:v0000105Dd00002339* + ID_MODEL_FROM_DATABASE=Imagine 128-II + + pci:v0000105Dd00002339sv0000105Dsd00000000* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000001* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000002* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000003* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000004* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000005* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000006* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000007* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000008* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000009* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) + + pci:v0000105Dd00002339sv0000105Dsd0000000A* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd0000000B* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb H-VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb H-VRAM) + + pci:v0000105Dd00002339sv000011A4sd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000000* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000004* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000005* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000006* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000008* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000009* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd0000000C* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd0000493D* + ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] + + pci:v0000105Dd0000493Dsv000011A4sd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000011A4sd0000000B* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000002* +- ID_MODEL_FROM_DATABASE=Barco Metheus 4 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 4 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000003* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000007* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000008* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000009* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd00005348* + ID_MODEL_FROM_DATABASE=Revolution 4 + + pci:v0000105Dd00005348sv0000105Dsd00000037* +- ID_MODEL_FROM_DATABASE=Revolution IV-FP AGP (For SGI 1600SW) ++ ID_MODEL_FROM_DATABASE=Revolution 4 (Revolution IV-FP AGP (For SGI 1600SW)) + + pci:v0000105Dd00005348sv000011A4sd00000028* +- ID_MODEL_FROM_DATABASE=PVS5600M ++ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600M) + + pci:v0000105Dd00005348sv000011A4sd00000038* +- ID_MODEL_FROM_DATABASE=PVS5600D ++ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600D) + + pci:v0000105E* + ID_VENDOR_FROM_DATABASE=Vtech Computers Ltd +@@ -16236,43 +16236,43 @@ pci:v00001069d00000050* + ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device + + pci:v00001069d00000050sv00001069sd00000050* +- ID_MODEL_FROM_DATABASE=AcceleRAID 352 support Device ++ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 352 support Device) + + pci:v00001069d00000050sv00001069sd00000052* +- ID_MODEL_FROM_DATABASE=AcceleRAID 170 support Device ++ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 170 support Device) + + pci:v00001069d00000050sv00001069sd00000054* +- ID_MODEL_FROM_DATABASE=AcceleRAID 160 support Device ++ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 160 support Device) + + pci:v00001069d0000B166* + ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device + + pci:v00001069d0000B166sv00001014sd00000242* +- ID_MODEL_FROM_DATABASE=iSeries 2872 DASD IOA ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (iSeries 2872 DASD IOA) + + pci:v00001069d0000B166sv00001014sd00000266* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) + + pci:v00001069d0000B166sv00001014sd00000278* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) + + pci:v00001069d0000B166sv00001014sd000002D3* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) + + pci:v00001069d0000B166sv00001014sd000002D4* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) + + pci:v00001069d0000B166sv00001069sd00000200* +- ID_MODEL_FROM_DATABASE=AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000B166sv00001069sd00000202* +- ID_MODEL_FROM_DATABASE=AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000B166sv00001069sd00000204* +- ID_MODEL_FROM_DATABASE=AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000B166sv00001069sd00000206* +- ID_MODEL_FROM_DATABASE=AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000BA55* + ID_MODEL_FROM_DATABASE=eXtremeRAID 1100 support Device +@@ -16281,16 +16281,16 @@ pci:v00001069d0000BA56* + ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device + + pci:v00001069d0000BA56sv00001069sd00000030* +- ID_MODEL_FROM_DATABASE=eXtremeRAID 3000 support Device ++ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 3000 support Device) + + pci:v00001069d0000BA56sv00001069sd00000040* +- ID_MODEL_FROM_DATABASE=eXtremeRAID 2000 support Device ++ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 2000 support Device) + + pci:v00001069d0000BA57* + ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device + + pci:v00001069d0000BA57sv00001069sd00000072* +- ID_MODEL_FROM_DATABASE=eXtremeRAID 5000 support Device ++ ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device (eXtremeRAID 5000 support Device) + + pci:v0000106A* + ID_VENDOR_FROM_DATABASE=Aten Research Inc +@@ -16380,7 +16380,7 @@ pci:v0000106Bd00000031* + ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire + + pci:v0000106Bd00000031sv0000106Bsd00005811* +- ID_MODEL_FROM_DATABASE=iBook G4 2004 ++ ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire (iBook G4 2004) + + pci:v0000106Bd00000032* + ID_MODEL_FROM_DATABASE=UniNorth 2 GMAC (Sun GEM) +@@ -16407,7 +16407,7 @@ pci:v0000106Bd0000003F* + ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB + + pci:v0000106Bd0000003Fsv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB (QEMU Virtual Machine) + + pci:v0000106Bd00000040* + ID_MODEL_FROM_DATABASE=K2 KeyLargo USB +@@ -16563,13 +16563,13 @@ pci:v00001073d00000004* + ID_MODEL_FROM_DATABASE=YMF-724 + + pci:v00001073d00000004sv00001073sd00000004* +- ID_MODEL_FROM_DATABASE=YMF724-Based PCI Audio Adapter ++ ID_MODEL_FROM_DATABASE=YMF-724 (YMF724-Based PCI Audio Adapter) + + pci:v00001073d00000005* + ID_MODEL_FROM_DATABASE=DS1 Audio + + pci:v00001073d00000005sv00001073sd00000005* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d00000006* + ID_MODEL_FROM_DATABASE=DS1 Audio +@@ -16578,46 +16578,46 @@ pci:v00001073d00000008* + ID_MODEL_FROM_DATABASE=DS1 Audio + + pci:v00001073d00000008sv00001073sd00000008* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000A* + ID_MODEL_FROM_DATABASE=DS1L Audio + + pci:v00001073d0000000Asv00001073sd00000004* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000Asv00001073sd0000000A* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000Asv00008086sd00004D55* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC [Intel MU440EX] ++ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC [Intel MU440EX]) + + pci:v00001073d0000000C* + ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] + + pci:v00001073d0000000Csv0000107Asd0000000C* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000D* + ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] + + pci:v00001073d0000000Dsv00001073sd0000000D* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d00000010* + ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] + + pci:v00001073d00000010sv00001073sd00000006* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d00000010sv00001073sd00000010* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d00000012* + ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] + + pci:v00001073d00000012sv00001073sd00000012* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio Codec ++ ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] (DS-XG PCI Audio Codec) + + pci:v00001073d00000020* + ID_MODEL_FROM_DATABASE=DS-1 Audio +@@ -16662,10 +16662,10 @@ pci:v00001077d00001216* + ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor + + pci:v00001077d00001216sv0000101Esd00008471* +- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID ++ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) + + pci:v00001077d00001216sv0000101Esd00008493* +- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID ++ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) + + pci:v00001077d00001240* + ID_MODEL_FROM_DATABASE=ISP1240 SCSI Host Adapter +@@ -16689,7 +16689,7 @@ pci:v00001077d00002200* + ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter + + pci:v00001077d00002200sv00001077sd00000002* +- ID_MODEL_FROM_DATABASE=QLA2200 ++ ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter (QLA2200) + + pci:v00001077d00002300* + ID_MODEL_FROM_DATABASE=QLA2300 64-bit Fibre Channel Adapter +@@ -16698,10 +16698,10 @@ pci:v00001077d00002312* + ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA + + pci:v00001077d00002312sv0000103Csd00000131* +- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Single port [A7538A] ++ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Single port [A7538A]) + + pci:v00001077d00002312sv0000103Csd000012BA* +- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Dual port [A6826A] ++ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Dual port [A6826A]) + + pci:v00001077d00002322* + ID_MODEL_FROM_DATABASE=ISP2322-based 2Gb Fibre Channel to PCI-X HBA +@@ -16710,25 +16710,25 @@ pci:v00001077d00002422* + ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA + + pci:v00001077d00002422sv0000103Csd000012D7* +- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB379A] ++ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB379A]) + + pci:v00001077d00002422sv0000103Csd000012DD* +- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB429A] ++ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB429A]) + + pci:v00001077d00002432* + ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA + + pci:v00001077d00002432sv0000103Csd00007040* +- ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] ++ ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA (FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]) + + pci:v00001077d00002532* + ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA + + pci:v00001077d00002532sv0000103Csd00003262* +- ID_MODEL_FROM_DATABASE=StorageWorks 81Q ++ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (StorageWorks 81Q) + + pci:v00001077d00002532sv00001077sd00000167* +- ID_MODEL_FROM_DATABASE=QME2572 Dual Port FC8 HBA Mezzanine ++ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (QME2572 Dual Port FC8 HBA Mezzanine) + + pci:v00001077d00003022* + ID_MODEL_FROM_DATABASE=ISP4022-based Ethernet NIC +@@ -16770,55 +16770,55 @@ pci:v00001077d00008020* + ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller + + pci:v00001077d00008020sv0000103Csd00003346* +- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (CN1000Q Dual Port Converged Network Adapter) + + pci:v00001077d00008020sv0000103Csd00003733* +- ID_MODEL_FROM_DATABASE=NC523SFP 10Gb 2-port Server Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (NC523SFP 10Gb 2-port Server Adapter) + + pci:v00001077d00008020sv00001077sd00000203* +- ID_MODEL_FROM_DATABASE=8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008020sv00001077sd00000207* +- ID_MODEL_FROM_DATABASE=8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008020sv00001077sd0000020B* +- ID_MODEL_FROM_DATABASE=3200 Series Dual Port 10Gb Intelligent Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Dual Port 10Gb Intelligent Ethernet Adapter) + + pci:v00001077d00008020sv00001077sd0000020C* +- ID_MODEL_FROM_DATABASE=3200 Series Quad Port 1Gb Intelligent Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Quad Port 1Gb Intelligent Ethernet Adapter) + + pci:v00001077d00008020sv00001077sd0000020F* +- ID_MODEL_FROM_DATABASE=3200 Series Single Port 10Gb Intelligent Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Single Port 10Gb Intelligent Ethernet Adapter) + + pci:v00001077d00008020sv00001077sd00000210* +- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (QME8242-k 10GbE Dual Port Mezzanine Card) + + pci:v00001077d00008021* + ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) + + pci:v00001077d00008021sv0000103Csd00003348* +- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (CN1000Q Dual Port Converged Network Adapter) + + pci:v00001077d00008021sv00001077sd00000211* +- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, FCoE ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (QME8242-k 10GbE Dual Port Mezzanine Card, FCoE) + + pci:v00001077d00008022* + ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) + + pci:v00001077d00008022sv0000103Csd00003347* +- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (CN1000Q Dual Port Converged Network Adapter) + + pci:v00001077d00008022sv00001077sd00000212* +- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI) + + pci:v00001077d00008030* + ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller + + pci:v00001077d00008030sv00001077sd00000243* +- ID_MODEL_FROM_DATABASE=8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008030sv00001077sd00000246* +- ID_MODEL_FROM_DATABASE=8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008031* + ID_MODEL_FROM_DATABASE=8300 Series 10GbE Converged Network Adapter (FCoE) +@@ -17022,7 +17022,7 @@ pci:v0000108Dd00000004* + ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter + + pci:v0000108Dd00000004sv0000108Dsd00000004* +- ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter (OC-3139/3140 RapidFire Token-Ring 16/4 Adapter) + + pci:v0000108Dd00000005* + ID_MODEL_FROM_DATABASE=GoCard 3250 Token-Ring 16/4 CardBus PC Card +@@ -17034,13 +17034,13 @@ pci:v0000108Dd00000007* + ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter + + pci:v0000108Dd00000007sv0000108Dsd00000007* +- ID_MODEL_FROM_DATABASE=OC-3141 RapidFire Token-Ring 16/4 Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter (OC-3141 RapidFire Token-Ring 16/4 Adapter) + + pci:v0000108Dd00000008* + ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter + + pci:v0000108Dd00000008sv0000108Dsd00000008* +- ID_MODEL_FROM_DATABASE=OC-3540 RapidFire HSTR 100/16/4 Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter (OC-3540 RapidFire HSTR 100/16/4 Adapter) + + pci:v0000108Dd00000011* + ID_MODEL_FROM_DATABASE=OC-2315 +@@ -17058,10 +17058,10 @@ pci:v0000108Dd00000019* + ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter + + pci:v0000108Dd00000019sv0000108Dsd00000016* +- ID_MODEL_FROM_DATABASE=OC-2327 Rapidfire 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2327 Rapidfire 10/100 Ethernet Adapter) + + pci:v0000108Dd00000019sv0000108Dsd00000017* +- ID_MODEL_FROM_DATABASE=OC-2250 GoCard 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2250 GoCard 10/100 Ethernet Adapter) + + pci:v0000108Dd00000021* + ID_MODEL_FROM_DATABASE=OC-6151/6152 [RapidFire ATM 155] +@@ -17085,25 +17085,25 @@ pci:v0000108Ed00001100* + ID_MODEL_FROM_DATABASE=RIO EBUS + + pci:v0000108Ed00001100sv0000108Esd00001100* +- ID_MODEL_FROM_DATABASE=RIO EBUS on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO EBUS (on Blade 100 motherboard) + + pci:v0000108Ed00001101* + ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] + + pci:v0000108Ed00001101sv0000108Esd00001101* +- ID_MODEL_FROM_DATABASE=RIO GEM on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] (RIO GEM on Blade 100 motherboard) + + pci:v0000108Ed00001102* + ID_MODEL_FROM_DATABASE=RIO 1394 + + pci:v0000108Ed00001102sv0000108Esd00001102* +- ID_MODEL_FROM_DATABASE=RIO 1394 on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO 1394 (on Blade 100 motherboard) + + pci:v0000108Ed00001103* + ID_MODEL_FROM_DATABASE=RIO USB + + pci:v0000108Ed00001103sv0000108Esd00001103* +- ID_MODEL_FROM_DATABASE=RIO USB on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO USB (on Blade 100 motherboard) + + pci:v0000108Ed00001647* + ID_MODEL_FROM_DATABASE=Broadcom 570x 10/100/1000 Ethernet [bge] +@@ -17124,7 +17124,7 @@ pci:v0000108Ed00005000* + ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge + + pci:v0000108Ed00005000sv0000108Esd00005000* +- ID_MODEL_FROM_DATABASE=Netra AX1105-500 ++ ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge (Netra AX1105-500) + + pci:v0000108Ed00005043* + ID_MODEL_FROM_DATABASE=SunPCI Co-processor +@@ -17226,7 +17226,7 @@ pci:v0000108Ed0000A001* + ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] + + pci:v0000108Ed0000A001sv0000108Esd0000A001* +- ID_MODEL_FROM_DATABASE=Ultra IIe on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] (Ultra IIe on Blade 100 motherboard) + + pci:v0000108Ed0000A801* + ID_MODEL_FROM_DATABASE=Schizo Fireplane-PCI bus bridge module [pcisch] +@@ -17295,7 +17295,7 @@ pci:v00001092d00000028* + ID_MODEL_FROM_DATABASE=Viper V770 + + pci:v00001092d00000028sv00001092sd00004A00* +- ID_MODEL_FROM_DATABASE=Viper V770 32MB ++ ID_MODEL_FROM_DATABASE=Viper V770 (32MB) + + pci:v00001092d000000A0* + ID_MODEL_FROM_DATABASE=Speedstar Pro SE +@@ -17766,28 +17766,28 @@ pci:v00001093d0000C4C4* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device + + pci:v00001093d0000C4C4sv00001093sd000074B2* +- ID_MODEL_FROM_DATABASE=PXIe-4353 ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4353) + + pci:v00001093d0000C4C4sv00001093sd000074D0* +- ID_MODEL_FROM_DATABASE=PXIe-7961R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7961R) + + pci:v00001093d0000C4C4sv00001093sd000074E2* +- ID_MODEL_FROM_DATABASE=PXIe-7962R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7962R) + + pci:v00001093d0000C4C4sv00001093sd000074E3* +- ID_MODEL_FROM_DATABASE=PXIe-7965R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7965R) + + pci:v00001093d0000C4C4sv00001093sd00007553* +- ID_MODEL_FROM_DATABASE=PCIe-1473R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1473R) + + pci:v00001093d0000C4C4sv00001093sd000075CE* +- ID_MODEL_FROM_DATABASE=PXIe-7966R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7966R) + + pci:v00001093d0000C4C4sv00001093sd000076B7* +- ID_MODEL_FROM_DATABASE=PXIe-7975R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7975R) + + pci:v00001093d0000C4C4sv00001093sd000076D0* +- ID_MODEL_FROM_DATABASE=PXIe-5160 ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160) + + pci:v00001093d0000C801* + ID_MODEL_FROM_DATABASE=PCI-GPIB +@@ -17820,19 +17820,19 @@ pci:v00001095d00000648* + ID_MODEL_FROM_DATABASE=PCI0648 + + pci:v00001095d00000648sv00001043sd00008025* +- ID_MODEL_FROM_DATABASE=CUBX motherboard ++ ID_MODEL_FROM_DATABASE=PCI0648 (CUBX motherboard) + + pci:v00001095d00000649* + ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller + + pci:v00001095d00000649sv00000E11sd0000005D* +- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 Dual Channel Controller ++ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 Dual Channel Controller) + + pci:v00001095d00000649sv00000E11sd0000007E* +- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 IDE RAID Controller ++ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 IDE RAID Controller) + + pci:v00001095d00000649sv0000101Esd00000649* +- ID_MODEL_FROM_DATABASE=AMI MegaRAID IDE 100 Controller ++ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (AMI MegaRAID IDE 100 Controller) + + pci:v00001095d00000650* + ID_MODEL_FROM_DATABASE=PBC0650A +@@ -17850,34 +17850,34 @@ pci:v00001095d00000680* + ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller + + pci:v00001095d00000680sv00001095sd00000680* +- ID_MODEL_FROM_DATABASE=SiI 0680 ATA/133 Controller ++ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (SiI 0680 ATA/133 Controller) + + pci:v00001095d00000680sv00001095sd00003680* +- ID_MODEL_FROM_DATABASE=Winic W-680 (Silicon Image 680 based) ++ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (Winic W-680 (Silicon Image 680 based)) + + pci:v00001095d00003112* + ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller + + pci:v00001095d00003112sv00001095sd00003112* +- ID_MODEL_FROM_DATABASE=SiI 3112 SATALink Controller ++ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATALink Controller) + + pci:v00001095d00003112sv00001095sd00006112* +- ID_MODEL_FROM_DATABASE=SiI 3112 SATARaid Controller ++ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATARaid Controller) + + pci:v00001095d00003112sv00009005sd00000250* +- ID_MODEL_FROM_DATABASE=SATAConnect 1205SA Host Controller ++ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SATAConnect 1205SA Host Controller) + + pci:v00001095d00003114* + ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller + + pci:v00001095d00003114sv00001043sd00008167* +- ID_MODEL_FROM_DATABASE=A8N-SLI Deluxe/Premium Mainboard ++ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (A8N-SLI Deluxe/Premium Mainboard) + + pci:v00001095d00003114sv00001095sd00003114* +- ID_MODEL_FROM_DATABASE=SiI 3114 SATALink Controller ++ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATALink Controller) + + pci:v00001095d00003114sv00001095sd00006114* +- ID_MODEL_FROM_DATABASE=SiI 3114 SATARaid Controller ++ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATARaid Controller) + + pci:v00001095d00003124* + ID_MODEL_FROM_DATABASE=SiI 3124 PCI-X Serial ATA Controller +@@ -17892,10 +17892,10 @@ pci:v00001095d00003512* + ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller + + pci:v00001095d00003512sv00001095sd00003512* +- ID_MODEL_FROM_DATABASE=SiI 3512 SATALink Controller ++ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATALink Controller) + + pci:v00001095d00003512sv00001095sd00006512* +- ID_MODEL_FROM_DATABASE=SiI 3512 SATARaid Controller ++ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATARaid Controller) + + pci:v00001095d00003531* + ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller +@@ -17949,412 +17949,412 @@ pci:v0000109Ed00000369* + ID_MODEL_FROM_DATABASE=Bt878 Video Capture + + pci:v0000109Ed00000369sv00001002sd00000001* +- ID_MODEL_FROM_DATABASE=TV-Wonder ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder) + + pci:v0000109Ed00000369sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=TV-Wonder/VE ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder/VE) + + pci:v0000109Ed0000036C* + ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture + + pci:v0000109Ed0000036Csv000013E9sd00000070* +- ID_MODEL_FROM_DATABASE=Win/TV (Video Section) ++ ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture (Win/TV (Video Section)) + + pci:v0000109Ed0000036E* + ID_MODEL_FROM_DATABASE=Bt878 Video Capture + + pci:v0000109Ed0000036Esv00000070sd000013EB* +- ID_MODEL_FROM_DATABASE=WinTV Series ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinTV Series) + + pci:v0000109Ed0000036Esv00000070sd0000FF01* +- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Viewcast Osprey 200) + + pci:v0000109Ed0000036Esv00000071sd00000101* +- ID_MODEL_FROM_DATABASE=DigiTV PCI ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DigiTV PCI) + + pci:v0000109Ed0000036Esv0000107Dsd00006606* +- ID_MODEL_FROM_DATABASE=WinFast TV 2000 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinFast TV 2000) + + pci:v0000109Ed0000036Esv000011BDsd00000012* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) + + pci:v0000109Ed0000036Esv000011BDsd0000001C* +- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV Sat (DBC receiver)) + + pci:v0000109Ed0000036Esv0000127Asd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) + + pci:v0000109Ed0000036Esv0000127Asd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv0000127Asd00000003* +- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv0000127Asd00000048* +- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) + + pci:v0000109Ed0000036Esv0000144Fsd00003000* +- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Video ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (MagicTView CPH060 - Video) + + pci:v0000109Ed0000036Esv00001461sd00000002* +- ID_MODEL_FROM_DATABASE=TV98 Series (TV/No FM/Remote) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV98 Series (TV/No FM/Remote)) + + pci:v0000109Ed0000036Esv00001461sd00000003* +- ID_MODEL_FROM_DATABASE=AverMedia UltraTV PCI 350 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia UltraTV PCI 350) + + pci:v0000109Ed0000036Esv00001461sd00000004* +- ID_MODEL_FROM_DATABASE=AVerTV WDM Video Capture ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AVerTV WDM Video Capture) + + pci:v0000109Ed0000036Esv00001461sd00000761* +- ID_MODEL_FROM_DATABASE=AverTV DVB-T ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverTV DVB-T) + + pci:v0000109Ed0000036Esv00001461sd00000771* +- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia AVerTV DVB-T 771) + + pci:v0000109Ed0000036Esv000014F1sd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) + + pci:v0000109Ed0000036Esv000014F1sd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv000014F1sd00000003* +- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv000014F1sd00000048* +- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) + + pci:v0000109Ed0000036Esv00001822sd00000001* +- ID_MODEL_FROM_DATABASE=VisionPlus DVB card ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (VisionPlus DVB card) + + pci:v0000109Ed0000036Esv00001851sd00001850* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video) + + pci:v0000109Ed0000036Esv00001851sd00001851* +- ID_MODEL_FROM_DATABASE=FlyVideo II ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo II) + + pci:v0000109Ed0000036Esv00001852sd00001852* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video (with FM Tuner)) + + pci:v0000109Ed0000036Esv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DViCO FusionHDTV5 Lite) + + pci:v0000109Ed0000036Esv0000270Fsd0000FC00* +- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Digitop DTT-1000) + + pci:v0000109Ed0000036Esv0000AA00sd00001460* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input0) + + pci:v0000109Ed0000036Esv0000AA01sd00001461* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input1) + + pci:v0000109Ed0000036Esv0000AA02sd00001462* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input2) + + pci:v0000109Ed0000036Esv0000AA03sd00001463* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input3) + + pci:v0000109Ed0000036Esv0000AA04sd00001464* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input0) + + pci:v0000109Ed0000036Esv0000AA05sd00001465* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input1) + + pci:v0000109Ed0000036Esv0000AA06sd00001466* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input2) + + pci:v0000109Ed0000036Esv0000AA07sd00001467* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input3) + + pci:v0000109Ed0000036Esv0000AA08sd00001468* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input0) + + pci:v0000109Ed0000036Esv0000AA09sd00001469* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input1) + + pci:v0000109Ed0000036Esv0000AA0Asd0000146A* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input2) + + pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input3) + + pci:v0000109Ed0000036Esv0000AA0Csd0000146C* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input0) + + pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input1) + + pci:v0000109Ed0000036Esv0000AA0Esd0000146E* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input2) + + pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input3) + + pci:v0000109Ed0000036Esv0000BD11sd00001200* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) + + pci:v0000109Ed0000036F* + ID_MODEL_FROM_DATABASE=Bt879 Video Capture + + pci:v0000109Ed0000036Fsv0000127Asd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv0000127Asd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv0000127Asd00000244* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv0000127Asd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv0000127Asd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00001522* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) + + pci:v0000109Ed0000036Fsv0000127Asd00001622* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) + + pci:v0000109Ed0000036Fsv0000127Asd00001722* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv000014F1sd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv000014F1sd00000244* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv000014F1sd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv000014F1sd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00001522* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) + + pci:v0000109Ed0000036Fsv000014F1sd00001622* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) + + pci:v0000109Ed0000036Fsv000014F1sd00001722* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv00001851sd00001850* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video) + + pci:v0000109Ed0000036Fsv00001851sd00001851* +- ID_MODEL_FROM_DATABASE=FlyVideo II ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo II) + + pci:v0000109Ed0000036Fsv00001852sd00001852* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video (with FM Tuner)) + + pci:v0000109Ed00000370* + ID_MODEL_FROM_DATABASE=Bt880 Video Capture + + pci:v0000109Ed00000370sv00001851sd00001850* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 ++ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98) + + pci:v0000109Ed00000370sv00001851sd00001851* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 EZ - video ++ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 EZ - video) + + pci:v0000109Ed00000370sv00001852sd00001852* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 (with FM Tuner) ++ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 (with FM Tuner)) + + pci:v0000109Ed00000878* + ID_MODEL_FROM_DATABASE=Bt878 Audio Capture + + pci:v0000109Ed00000878sv00000070sd000013EB* +- ID_MODEL_FROM_DATABASE=WinTV Series ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (WinTV Series) + + pci:v0000109Ed00000878sv00000070sd0000FF01* +- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Viewcast Osprey 200) + + pci:v0000109Ed00000878sv00000071sd00000101* +- ID_MODEL_FROM_DATABASE=DigiTV PCI ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DigiTV PCI) + + pci:v0000109Ed00000878sv00001002sd00000001* +- ID_MODEL_FROM_DATABASE=TV-Wonder ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder) + + pci:v0000109Ed00000878sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=TV-Wonder/VE ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder/VE) + + pci:v0000109Ed00000878sv000011BDsd00000012* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) + + pci:v0000109Ed00000878sv000011BDsd0000001C* +- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV Sat (DBC receiver)) + + pci:v0000109Ed00000878sv0000127Asd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv0000127Asd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv0000127Asd00000003* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv0000127Asd00000048* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000013E9sd00000070* +- ID_MODEL_FROM_DATABASE=Win/TV (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Win/TV (Audio Section)) + + pci:v0000109Ed00000878sv0000144Fsd00003000* +- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Audio ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (MagicTView CPH060 - Audio) + + pci:v0000109Ed00000878sv00001461sd00000002* +- ID_MODEL_FROM_DATABASE=Avermedia PCTV98 Audio Capture ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Avermedia PCTV98 Audio Capture) + + pci:v0000109Ed00000878sv00001461sd00000003* +- ID_MODEL_FROM_DATABASE=UltraTV PCI 350 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (UltraTV PCI 350) + + pci:v0000109Ed00000878sv00001461sd00000004* +- ID_MODEL_FROM_DATABASE=AVerTV WDM Audio Capture ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV WDM Audio Capture) + + pci:v0000109Ed00000878sv00001461sd00000761* +- ID_MODEL_FROM_DATABASE=AVerTV DVB-T ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV DVB-T) + + pci:v0000109Ed00000878sv00001461sd00000771* +- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AverMedia AVerTV DVB-T 771) + + pci:v0000109Ed00000878sv000014F1sd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000014F1sd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000014F1sd00000003* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000014F1sd00000048* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv00001822sd00000001* +- ID_MODEL_FROM_DATABASE=VisionPlus DVB Card ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (VisionPlus DVB Card) + + pci:v0000109Ed00000878sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DViCO FusionHDTV5 Lite) + + pci:v0000109Ed00000878sv0000270Fsd0000FC00* +- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Digitop DTT-1000) + + pci:v0000109Ed00000878sv0000BD11sd00001200* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) + + pci:v0000109Ed00000879* + ID_MODEL_FROM_DATABASE=Bt879 Audio Capture + + pci:v0000109Ed00000879sv0000127Asd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000244* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001522* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001622* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001722* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000244* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001522* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001622* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001722* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000880* + ID_MODEL_FROM_DATABASE=Bt880 Audio Capture +@@ -18585,7 +18585,7 @@ pci:v000010B4d00001B1D* + ID_MODEL_FROM_DATABASE=Velocity 128 3D + + pci:v000010B4d00001B1Dsv000010B4sd0000237E* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=Velocity 128 3D (Velocity 4400) + + pci:v000010B5* + ID_VENDOR_FROM_DATABASE=PLX Technology, Inc. +@@ -18597,13 +18597,13 @@ pci:v000010B5d00000557* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00000557sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card) + + pci:v000010B5d00001000* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00001000sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM AT400P Quad T1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AT400P Quad T1 PCI card) + + pci:v000010B5d00001024* + ID_MODEL_FROM_DATABASE=Acromag, Inc. IndustryPack Carrier Card +@@ -18636,7 +18636,7 @@ pci:v000010B5d00002000* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00002000sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM AE400P Quad E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AE400P Quad E1 PCI card) + + pci:v000010B5d00002540* + ID_MODEL_FROM_DATABASE=IXXAT CAN-Interface PC-I 04/PCI +@@ -18651,19 +18651,19 @@ pci:v000010B5d00004000* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00004000sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card) + + pci:v000010B5d00004001* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00004001sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM A400PE Quad E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PE Quad E1 PCI card) + + pci:v000010B5d00004002* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00004002sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM A400PT Quad T1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PT Quad T1 PCI card) + + pci:v000010B5d00006140* + ID_MODEL_FROM_DATABASE=PCI6140 32-bit 33MHz PCI-to-PCI Bridge +@@ -18690,28 +18690,28 @@ pci:v000010B5d00006540* + ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge + + pci:v000010B5d00006540sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (CR11 Single Board Computer) + + pci:v000010B5d00006540sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (PSL09 PrPMC) + + pci:v000010B5d00006541* + ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) + + pci:v000010B5d00006541sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (CR11 Single Board Computer) + + pci:v000010B5d00006541sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (PSL09 PrPMC) + + pci:v000010B5d00006542* + ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) + + pci:v000010B5d00006542sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (CR11 Single Board Computer) + + pci:v000010B5d00006542sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (PSL09 PrPMC) + + pci:v000010B5d00008111* + ID_MODEL_FROM_DATABASE=PEX 8111 PCI Express-to-PCI Bridge +@@ -18807,7 +18807,7 @@ pci:v000010B5d00008624* + ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] + + pci:v000010B5d00008624sv000013A3sd00001845* +- ID_MODEL_FROM_DATABASE=DX1845 Acceleration Card ++ ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] (DX1845 Acceleration Card) + + pci:v000010B5d00008625* + ID_MODEL_FROM_DATABASE=PEX 8625 24-lane, 24-Port PCI Express Gen 2 (5.0 GT/s) Switch +@@ -18861,85 +18861,85 @@ pci:v000010B5d00009030* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009030sv000010B5sd00002695* +- ID_MODEL_FROM_DATABASE=Hilscher CIF50-PB/DPS Profibus ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Hilscher CIF50-PB/DPS Profibus) + + pci:v000010B5d00009030sv000010B5sd00002862* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00002906* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board) + + pci:v000010B5d00009030sv000010B5sd00002940* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00002977* +- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCI CAN Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCI CAN Board) + + pci:v000010B5d00009030sv000010B5sd00002978* +- ID_MODEL_FROM_DATABASE=SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card) + + pci:v000010B5d00009030sv000010B5sd00003025* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00003068* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00003463* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000012FEsd00000111* +- ID_MODEL_FROM_DATABASE=CPCI-ASIO4 (ESD 4-port Serial Interface Board) ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (CPCI-ASIO4 (ESD 4-port Serial Interface Board)) + + pci:v000010B5d00009030sv00001369sd00009C01* +- ID_MODEL_FROM_DATABASE=VX222v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222v2) + + pci:v000010B5d00009030sv00001369sd00009D01* +- ID_MODEL_FROM_DATABASE=VX222-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) + + pci:v000010B5d00009030sv00001369sd00009D02* +- ID_MODEL_FROM_DATABASE=VX222-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) + + pci:v000010B5d00009030sv00001369sd00009E01* +- ID_MODEL_FROM_DATABASE=PCX924v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924v2) + + pci:v000010B5d00009030sv00001369sd00009F01* +- ID_MODEL_FROM_DATABASE=PCX924-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) + + pci:v000010B5d00009030sv00001369sd00009F02* +- ID_MODEL_FROM_DATABASE=PCX924-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) + + pci:v000010B5d00009030sv00001369sd0000A001* +- ID_MODEL_FROM_DATABASE=PCX22v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX22v2) + + pci:v000010B5d00009030sv00001369sd0000A701* +- ID_MODEL_FROM_DATABASE=LCM220v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM220v2) + + pci:v000010B5d00009030sv00001369sd0000A801* +- ID_MODEL_FROM_DATABASE=LCM200 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM200) + + pci:v000010B5d00009030sv00001397sd00003136* +- ID_MODEL_FROM_DATABASE=4xS0-ISDN PCI Adapter ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (4xS0-ISDN PCI Adapter) + + pci:v000010B5d00009030sv00001397sd00003137* +- ID_MODEL_FROM_DATABASE=S2M-E1-ISDN PCI Adapter ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (S2M-E1-ISDN PCI Adapter) + + pci:v000010B5d00009030sv00001518sd00000200* +- ID_MODEL_FROM_DATABASE=Kontron ThinkIO-C ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Kontron ThinkIO-C) + + pci:v000010B5d00009030sv000015EDsd00001002* +- ID_MODEL_FROM_DATABASE=MCCS 8-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 8-port Serial Hot Swap) + + pci:v000010B5d00009030sv000015EDsd00001003* +- ID_MODEL_FROM_DATABASE=MCCS 16-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 16-port Serial Hot Swap) + + pci:v000010B5d00009030sv0000E1C5sd00000001* +- ID_MODEL_FROM_DATABASE=TE1-PCI ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TE1-PCI) + + pci:v000010B5d00009030sv0000E1C5sd00000005* +- ID_MODEL_FROM_DATABASE=TA1-PCI ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI) + + pci:v000010B5d00009030sv0000E1C5sd00000006* +- ID_MODEL_FROM_DATABASE=TA1-PCI4 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI4) + + pci:v000010B5d00009036* + ID_MODEL_FROM_DATABASE=9036 +@@ -18948,145 +18948,145 @@ pci:v000010B5d00009050* + ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge + + pci:v000010B5d00009050sv000010B5sd00001067* +- ID_MODEL_FROM_DATABASE=IXXAT CAN i165 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IXXAT CAN i165) + + pci:v000010B5d00009050sv000010B5sd0000114E* +- ID_MODEL_FROM_DATABASE=Wasco WITIO PCI168extended ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco WITIO PCI168extended) + + pci:v000010B5d00009050sv000010B5sd00001169* +- ID_MODEL_FROM_DATABASE=Wasco OPTOIO32standard 32 digital in, 32 digital out ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco OPTOIO32standard 32 digital in, 32 digital out) + + pci:v000010B5d00009050sv000010B5sd00001172* +- ID_MODEL_FROM_DATABASE=IK220 (Heidenhain) ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IK220 (Heidenhain)) + + pci:v000010B5d00009050sv000010B5sd00002036* +- ID_MODEL_FROM_DATABASE=SatPak GPS ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SatPak GPS) + + pci:v000010B5d00009050sv000010B5sd00002221* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV: Timecode Reader Board) + + pci:v000010B5d00009050sv000010B5sd00002273* +- ID_MODEL_FROM_DATABASE=SH ARC-PCI SOHARD ARCNET card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SH ARC-PCI SOHARD ARCNET card) + + pci:v000010B5d00009050sv000010B5sd00002431* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D: Timecode Reader Board) + + pci:v000010B5d00009050sv000010B5sd00002905* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS: Time Synchronisation Board ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCI TS: Time Synchronisation Board) + + pci:v000010B5d00009050sv000010B5sd00003196* +- ID_MODEL_FROM_DATABASE=Goramo PLX200SYN sync serial card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Goramo PLX200SYN sync serial card) + + pci:v000010B5d00009050sv000010B5sd00009050* +- ID_MODEL_FROM_DATABASE=PCI-I04 PCI Passive PC/CAN Interface ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCI-I04 PCI Passive PC/CAN Interface) + + pci:v000010B5d00009050sv00001369sd00008901* +- ID_MODEL_FROM_DATABASE=PCX11+ PCI ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX11+ PCI) + + pci:v000010B5d00009050sv00001369sd00008F01* +- ID_MODEL_FROM_DATABASE=VX222 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (VX222) + + pci:v000010B5d00009050sv00001369sd00009401* +- ID_MODEL_FROM_DATABASE=PCX924 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX924) + + pci:v000010B5d00009050sv00001369sd00009501* +- ID_MODEL_FROM_DATABASE=PCX22 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX22) + + pci:v000010B5d00009050sv00001498sd00000362* +- ID_MODEL_FROM_DATABASE=TPMC866 8 Channel Serial Card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (TPMC866 8 Channel Serial Card) + + pci:v000010B5d00009050sv00001522sd00000001* +- ID_MODEL_FROM_DATABASE=RockForce 4 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 4 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000002* +- ID_MODEL_FROM_DATABASE=RockForce 2 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 2 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000003* +- ID_MODEL_FROM_DATABASE=RockForce 6 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 6 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000004* +- ID_MODEL_FROM_DATABASE=RockForce 8 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 8 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000010* +- ID_MODEL_FROM_DATABASE=RockForce2000 4 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 4 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000020* +- ID_MODEL_FROM_DATABASE=RockForce2000 2 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 2 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv000015EDsd00001000* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial) + + pci:v000010B5d00009050sv000015EDsd00001001* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial) + + pci:v000010B5d00009050sv000015EDsd00001002* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial Hot Swap) + + pci:v000010B5d00009050sv000015EDsd00001003* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial Hot Swap) + + pci:v000010B5d00009050sv00005654sd00002036* +- ID_MODEL_FROM_DATABASE=OpenSwitch 6 Telephony card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 6 Telephony card) + + pci:v000010B5d00009050sv00005654sd00003132* +- ID_MODEL_FROM_DATABASE=OpenSwitch 12 Telephony card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 12 Telephony card) + + pci:v000010B5d00009050sv00005654sd00005634* +- ID_MODEL_FROM_DATABASE=OpenLine4 Telephony Card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenLine4 Telephony Card) + + pci:v000010B5d00009050sv0000D531sd0000C002* +- ID_MODEL_FROM_DATABASE=PCIntelliCAN 2xSJA1000 CAN bus ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCIntelliCAN 2xSJA1000 CAN bus) + + pci:v000010B5d00009050sv0000D84Dsd00004006* +- ID_MODEL_FROM_DATABASE=EX-4006 1P ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4006 1P) + + pci:v000010B5d00009050sv0000D84Dsd00004008* +- ID_MODEL_FROM_DATABASE=EX-4008 1P EPP/ECP ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4008 1P EPP/ECP) + + pci:v000010B5d00009050sv0000D84Dsd00004014* +- ID_MODEL_FROM_DATABASE=EX-4014 2P ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4014 2P) + + pci:v000010B5d00009050sv0000D84Dsd00004018* +- ID_MODEL_FROM_DATABASE=EX-4018 3P EPP/ECP ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4018 3P EPP/ECP) + + pci:v000010B5d00009050sv0000D84Dsd00004025* +- ID_MODEL_FROM_DATABASE=EX-4025 1S(16C550) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4025 1S(16C550) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004027* +- ID_MODEL_FROM_DATABASE=EX-4027 1S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4027 1S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004028* +- ID_MODEL_FROM_DATABASE=EX-4028 1S(16C850) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4028 1S(16C850) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004036* +- ID_MODEL_FROM_DATABASE=EX-4036 2S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4036 2S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004037* +- ID_MODEL_FROM_DATABASE=EX-4037 2S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4037 2S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004038* +- ID_MODEL_FROM_DATABASE=EX-4038 2S(16C850) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4038 2S(16C850) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004052* +- ID_MODEL_FROM_DATABASE=EX-4052 1S(16C550) RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4052 1S(16C550) RS-422/485) + + pci:v000010B5d00009050sv0000D84Dsd00004053* +- ID_MODEL_FROM_DATABASE=EX-4053 2S(16C550) RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4053 2S(16C550) RS-422/485) + + pci:v000010B5d00009050sv0000D84Dsd00004055* +- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C550) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C550) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004058* +- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004065* +- ID_MODEL_FROM_DATABASE=EX-4065 8S(16C550) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4065 8S(16C550) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004068* +- ID_MODEL_FROM_DATABASE=EX-4068 8S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4068 8S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004078* +- ID_MODEL_FROM_DATABASE=EX-4078 2S(16C552) RS-232+1P ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4078 2S(16C552) RS-232+1P) + + pci:v000010B5d00009052* + ID_MODEL_FROM_DATABASE=PCI9052 PCI <-> IOBus Bridge +@@ -19095,88 +19095,88 @@ pci:v000010B5d00009054* + ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009054sv000010B5sd00002455* +- ID_MODEL_FROM_DATABASE=Wessex Techology PHIL-PCI ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Wessex Techology PHIL-PCI) + + pci:v000010B5d00009054sv000010B5sd00002696* +- ID_MODEL_FROM_DATABASE=Innes Corp AM Radcap card ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp AM Radcap card) + + pci:v000010B5d00009054sv000010B5sd00002717* +- ID_MODEL_FROM_DATABASE=Innes Corp Auricon card ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp Auricon card) + + pci:v000010B5d00009054sv000010B5sd00002844* +- ID_MODEL_FROM_DATABASE=Innes Corp TVS Encoder card ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp TVS Encoder card) + + pci:v000010B5d00009054sv000012C7sd00004001* +- ID_MODEL_FROM_DATABASE=Intel Dialogic DM/V960-4T1 PCI ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Intel Dialogic DM/V960-4T1 PCI) + + pci:v000010B5d00009054sv000012D9sd00000002* +- ID_MODEL_FROM_DATABASE=PCI Prosody Card rev 1.5 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PCI Prosody Card rev 1.5) + + pci:v000010B5d00009054sv000014B4sd0000D100* +- ID_MODEL_FROM_DATABASE=Dektec DTA-100 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-100) + + pci:v000010B5d00009054sv000014B4sd0000D114* +- ID_MODEL_FROM_DATABASE=Dektec DTA-120 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-120) + + pci:v000010B5d00009054sv000016DFsd00000011* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM PCI ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM PCI) + + pci:v000010B5d00009054sv000016DFsd00000012* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8) + + pci:v000010B5d00009054sv000016DFsd00000013* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 (without CAS Signaling) ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8 (without CAS Signaling)) + + pci:v000010B5d00009054sv000016DFsd00000014* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 4 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 4) + + pci:v000010B5d00009054sv000016DFsd00000015* +- ID_MODEL_FROM_DATABASE=PIKA Daytona MM ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA Daytona MM) + + pci:v000010B5d00009054sv000016DFsd00000016* +- ID_MODEL_FROM_DATABASE=PIKA InLine MM ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA InLine MM) + + pci:v000010B5d00009056* + ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009056sv000010B5sd00002979* +- ID_MODEL_FROM_DATABASE=CellinkBlade 11 - CPCI board VoATM AAL1 ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (CellinkBlade 11 - CPCI board VoATM AAL1) + + pci:v000010B5d00009056sv000010B5sd00003268* +- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCIe CAN Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCIe CAN Board) + + pci:v000010B5d00009056sv000010B5sd00003352* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe HD: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe HD: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003353* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe D: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe D: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003354* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe LV: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe LV: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003355* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe L: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe L: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003415* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCIe TS: Time Synchronisation Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCIe TS: Time Synchronisation Board) + + pci:v000010B5d00009056sv000010B5sd00003493* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe 3G: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe 3G: Timecode Reader Board) + + pci:v000010B5d00009056sv00001369sd0000C001* +- ID_MODEL_FROM_DATABASE=LX6464ES ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX6464ES) + + pci:v000010B5d00009056sv00001369sd0000C201* +- ID_MODEL_FROM_DATABASE=LX1616ES ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX1616ES) + + pci:v000010B5d00009056sv000014B4sd0000D10A* +- ID_MODEL_FROM_DATABASE=DekTec DTA-110T ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (DekTec DTA-110T) + + pci:v000010B5d00009056sv000014B4sd0000D140* +- ID_MODEL_FROM_DATABASE=Dektec DTA-140 ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-140) + + pci:v000010B5d00009056sv00001A0Esd0000006F* +- ID_MODEL_FROM_DATABASE=Dektec DTA-111 ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-111) + + pci:v000010B5d00009060* + ID_MODEL_FROM_DATABASE=PCI9060 32-bit 33MHz PCI <-> IOBus Bridge +@@ -19185,7 +19185,7 @@ pci:v000010B5d0000906D* + ID_MODEL_FROM_DATABASE=9060SD + + pci:v000010B5d0000906Dsv0000125Csd00000640* +- ID_MODEL_FROM_DATABASE=Aries 16000P ++ ID_MODEL_FROM_DATABASE=9060SD (Aries 16000P) + + pci:v000010B5d0000906E* + ID_MODEL_FROM_DATABASE=9060ES +@@ -19194,61 +19194,61 @@ pci:v000010B5d00009080* + ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009080sv0000103Csd000010EB* +- ID_MODEL_FROM_DATABASE=(Agilent) E2777B 83K Series Optical Communication Interface ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E2777B 83K Series Optical Communication Interface) + + pci:v000010B5d00009080sv0000103Csd000010EC* +- ID_MODEL_FROM_DATABASE=(Agilent) E6978-66442 PCI CIC ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E6978-66442 PCI CIC) + + pci:v000010B5d00009080sv000010B5sd00001123* +- ID_MODEL_FROM_DATABASE=Sectra KK631 encryption board ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (Sectra KK631 encryption board) + + pci:v000010B5d00009080sv000010B5sd00009080* +- ID_MODEL_FROM_DATABASE=9080 [real subsystem ID not set] ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (9080 [real subsystem ID not set]) + + pci:v000010B5d00009080sv000012D9sd00000002* +- ID_MODEL_FROM_DATABASE=PCI Prosody Card ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCI Prosody Card) + + pci:v000010B5d00009080sv000012DFsd00004422* +- ID_MODEL_FROM_DATABASE=4422PCI ["Do-All" Telemetry Data Aquisition System] ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (4422PCI ["Do-All" Telemetry Data Aquisition System]) + + pci:v000010B5d00009080sv00001369sd00009601* +- ID_MODEL_FROM_DATABASE=PCX822np ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822np) + + pci:v000010B5d00009080sv00001369sd0000A102* +- ID_MODEL_FROM_DATABASE=PCX822v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822v2) + + pci:v000010B5d00009080sv00001369sd0000A201* +- ID_MODEL_FROM_DATABASE=PCX442 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX442) + + pci:v000010B5d00009080sv00001369sd0000A301* +- ID_MODEL_FROM_DATABASE=LCM440v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM440v2) + + pci:v000010B5d00009080sv00001369sd0000A401* +- ID_MODEL_FROM_DATABASE=VX822 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822) + + pci:v000010B5d00009080sv00001369sd0000A402* +- ID_MODEL_FROM_DATABASE=VX822v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822v2) + + pci:v000010B5d00009080sv00001369sd0000A901* +- ID_MODEL_FROM_DATABASE=LCM420 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM420) + + pci:v000010B5d00009080sv00001369sd0000AA01* +- ID_MODEL_FROM_DATABASE=VX820v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX820v2) + + pci:v000010B5d00009080sv00001517sd0000000B* +- ID_MODEL_FROM_DATABASE=ECSG-1R3ADC-PMC Clock synthesizer ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (ECSG-1R3ADC-PMC Clock synthesizer) + + pci:v000010B5d00009656* + ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge + + pci:v000010B5d00009656sv00001517sd0000000F* +- ID_MODEL_FROM_DATABASE=ECDR-GC314-PMC Receiver ++ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (ECDR-GC314-PMC Receiver) + + pci:v000010B5d00009656sv00001885sd00000700* +- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S40 ++ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S40) + + pci:v000010B5d00009656sv00001885sd00000701* +- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S30 ++ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S30) + + pci:v000010B5d0000A100* + ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink +@@ -19263,28 +19263,28 @@ pci:v000010B5d0000D00D* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d0000D00Dsv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card) + + pci:v000010B5d0000D33D* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d0000D33Dsv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PT Quad T1/J1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PT Quad T1/J1 PCI card) + + pci:v000010B5d0000D44D* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d0000D44Dsv000010B5sd000017F6* +- ID_MODEL_FROM_DATABASE=Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card) + + pci:v000010B5d0000D44Dsv000010B5sd000017F7* +- ID_MODEL_FROM_DATABASE=Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card) + + pci:v000010B5d0000D44Dsv000010B5sd000017F8* +- ID_MODEL_FROM_DATABASE=Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card) + + pci:v000010B5d0000D44Dsv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PE Quad E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PE Quad E1 PCI card) + + pci:v000010B6* + ID_VENDOR_FROM_DATABASE=Madge Networks +@@ -19299,19 +19299,19 @@ pci:v000010B6d00000002sv000010B6sd00000002* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 + + pci:v000010B6d00000002sv000010B6sd00000006* +- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter ++ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 (16/4 CardBus Adapter) + + pci:v000010B6d00000003* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 + + pci:v000010B6d00000003sv00000E11sd0000B0FD* +- ID_MODEL_FROM_DATABASE=Compaq NC4621 PCI, 4/16, WOL ++ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Compaq NC4621 PCI, 4/16, WOL) + + pci:v000010B6d00000003sv000010B6sd00000003* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 + + pci:v000010B6d00000003sv000010B6sd00000007* +- ID_MODEL_FROM_DATABASE=Presto PCI Plus Adapter ++ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Presto PCI Plus Adapter) + + pci:v000010B6d00000004* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk1 +@@ -19320,13 +19320,13 @@ pci:v000010B6d00000006* + ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter + + pci:v000010B6d00000006sv000010B6sd00000006* +- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter ++ ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter (16/4 CardBus Adapter) + + pci:v000010B6d00000007* + ID_MODEL_FROM_DATABASE=Presto PCI Adapter + + pci:v000010B6d00000007sv000010B6sd00000007* +- ID_MODEL_FROM_DATABASE=Presto PCI ++ ID_MODEL_FROM_DATABASE=Presto PCI Adapter (Presto PCI) + + pci:v000010B6d00000009* + ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode +@@ -19347,7 +19347,7 @@ pci:v000010B6d0000000Bsv000010B6sd00000008* + ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 + + pci:v000010B6d0000000Bsv000010B6sd0000000B* +- ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter Mk2 ++ ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 (16/4 Cardbus Adapter Mk2) + + pci:v000010B6d0000000C* + ID_MODEL_FROM_DATABASE=RapidFire 3140V2 16/4 TR Adapter +@@ -19368,13 +19368,13 @@ pci:v000010B7d00000001* + ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) + + pci:v000010B7d00000001sv00009850sd00000001* +- ID_MODEL_FROM_DATABASE=3c985B-SX ++ ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) (3c985B-SX) + + pci:v000010B7d00000013* + ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) + + pci:v000010B7d00000013sv000010B7sd00002031* +- ID_MODEL_FROM_DATABASE=3CRDAG675 11a/b/g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) (3CRDAG675 11a/b/g Wireless PCI Adapter) + + pci:v000010B7d00000910* + ID_MODEL_FROM_DATABASE=3C910-A01 +@@ -19386,10 +19386,10 @@ pci:v000010B7d00001007* + ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem + + pci:v000010B7d00001007sv000010B7sd0000615B* +- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem ++ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) + + pci:v000010B7d00001007sv000010B7sd0000615C* +- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem ++ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) + + pci:v000010B7d00001201* + ID_MODEL_FROM_DATABASE=3c982-TXM 10/100baseTX Dual Port A [Hydra] +@@ -19401,16 +19401,16 @@ pci:v000010B7d00001700* + ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] + + pci:v000010B7d00001700sv00001043sd000080EB* +- ID_MODEL_FROM_DATABASE=A7V600/P4P800/K8V motherboard ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (A7V600/P4P800/K8V motherboard) + + pci:v000010B7d00001700sv000010B7sd00000010* +- ID_MODEL_FROM_DATABASE=3C940 Gigabit LOM Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C940 Gigabit LOM Ethernet Adapter) + + pci:v000010B7d00001700sv000010B7sd00000020* +- ID_MODEL_FROM_DATABASE=3C941 Gigabit LOM Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C941 Gigabit LOM Ethernet Adapter) + + pci:v000010B7d00001700sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (KV8-MAX3 motherboard) + + pci:v000010B7d00003390* + ID_MODEL_FROM_DATABASE=3c339 TokenLink Velocity +@@ -19419,7 +19419,7 @@ pci:v000010B7d00003590* + ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL + + pci:v000010B7d00003590sv000010B7sd00003590* +- ID_MODEL_FROM_DATABASE=TokenLink Velocity XL Adapter (3C359/359B) ++ ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL (TokenLink Velocity XL Adapter (3C359/359B)) + + pci:v000010B7d00004500* + ID_MODEL_FROM_DATABASE=3c450 HomePNA [Tornado] +@@ -19431,19 +19431,19 @@ pci:v000010B7d00005057* + ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] + + pci:v000010B7d00005057sv000010B7sd00005A57* +- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card ++ ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) + + pci:v000010B7d00005157* + ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] + + pci:v000010B7d00005157sv000010B7sd00005B57* +- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card ++ ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] (3C575 Megahertz 10/100 LAN Cardbus PC Card) + + pci:v000010B7d00005257* + ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] + + pci:v000010B7d00005257sv000010B7sd00005C57* +- ID_MODEL_FROM_DATABASE=FE575C-3Com 10/100 LAN CardBus-Fast Ethernet ++ ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] (FE575C-3Com 10/100 LAN CardBus-Fast Ethernet) + + pci:v000010B7d00005900* + ID_MODEL_FROM_DATABASE=3c590 10BaseT [Vortex] +@@ -19467,7 +19467,7 @@ pci:v000010B7d00005B57* + ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] + + pci:v000010B7d00005B57sv000010B7sd00005B57* +- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card ++ ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) + + pci:v000010B7d00006000* + ID_MODEL_FROM_DATABASE=3CRSHPW796 [OfficeConnect Wireless CardBus] +@@ -19482,31 +19482,31 @@ pci:v000010B7d00006056* + ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] + + pci:v000010B7d00006056sv000010B7sd00006556* +- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] (10/100 Mini PCI Ethernet Adapter) + + pci:v000010B7d00006560* + ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] + + pci:v000010B7d00006560sv000010B7sd0000656A* +- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] (3CCFEM656 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006561* + ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus + + pci:v000010B7d00006561sv000010B7sd0000656B* +- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006562* + ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] + + pci:v000010B7d00006562sv000010B7sd0000656B* +- ID_MODEL_FROM_DATABASE=3CCFEM656B 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] (3CCFEM656B 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006563* + ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus + + pci:v000010B7d00006563sv000010B7sd0000656B* +- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006564* + ID_MODEL_FROM_DATABASE=3cXFEM656C 10/100 LAN+Winmodem CardBus [Tornado] +@@ -19542,13 +19542,13 @@ pci:v000010B7d00009004* + ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] + + pci:v000010B7d00009004sv000010B7sd00009004* +- ID_MODEL_FROM_DATABASE=3C900B-TPO Etherlink XL TPO 10Mb ++ ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] (3C900B-TPO Etherlink XL TPO 10Mb) + + pci:v000010B7d00009005* + ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] + + pci:v000010B7d00009005sv000010B7sd00009005* +- ID_MODEL_FROM_DATABASE=3C900B-Combo Etherlink XL Combo ++ ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] (3C900B-Combo Etherlink XL Combo) + + pci:v000010B7d00009006* + ID_MODEL_FROM_DATABASE=3c900B-TPC Etherlink XL [Cyclone] +@@ -19572,67 +19572,67 @@ pci:v000010B7d00009055* + ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] + + pci:v000010B7d00009055sv00001028sd00000080* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000081* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000082* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000083* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000084* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000085* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000086* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000087* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000089* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000090* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000091* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000092* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000093* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000094* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000096* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000097* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000098* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000099* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv000010B7sd00009055* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009056* + ID_MODEL_FROM_DATABASE=3c905B-T4 Fast EtherLink XL [Cyclone] +@@ -19647,40 +19647,40 @@ pci:v000010B7d00009200* + ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] + + pci:v000010B7d00009200sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) + + pci:v000010B7d00009200sv00001028sd00000097* +- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) + + pci:v000010B7d00009200sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (OptiPlex GX110) + + pci:v000010B7d00009200sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Precision 530) + + pci:v000010B7d00009200sv00001028sd000000FE* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Optiplex GX240) + + pci:v000010B7d00009200sv00001028sd0000012A* +- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller [Latitude C640] ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller [Latitude C640]) + + pci:v000010B7d00009200sv000010B7sd00001000* +- ID_MODEL_FROM_DATABASE=3C905CX-TX/TX-M Fast Etherlink for PC Management NIC ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C905CX-TX/TX-M Fast Etherlink for PC Management NIC) + + pci:v000010B7d00009200sv000010B7sd00007000* +- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (10/100 Mini PCI Ethernet Adapter) + + pci:v000010B7d00009200sv000010F1sd00002466* +- ID_MODEL_FROM_DATABASE=Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller) ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)) + + pci:v000010B7d00009200sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (X10 Laptop) + + pci:v000010B7d00009201* + ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] + + pci:v000010B7d00009201sv00001043sd000080AB* +- ID_MODEL_FROM_DATABASE=A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller ++ ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] (A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller) + + pci:v000010B7d00009202* + ID_MODEL_FROM_DATABASE=3Com 3C920B-EMB-WNM Integrated Fast Ethernet Controller +@@ -19695,22 +19695,22 @@ pci:v000010B7d00009800* + ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] + + pci:v000010B7d00009800sv000010B7sd00009800* +- ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter ++ ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] (3c980-TX Fast Etherlink XL Server Adapter) + + pci:v000010B7d00009805* + ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] + + pci:v000010B7d00009805sv000010B7sd00001201* +- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port A ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port A) + + pci:v000010B7d00009805sv000010B7sd00001202* +- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port B ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port B) + + pci:v000010B7d00009805sv000010B7sd00009805* +- ID_MODEL_FROM_DATABASE=3c980 10/100baseTX NIC [Python-T] ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (3c980 10/100baseTX NIC [Python-T]) + + pci:v000010B7d00009805sv000010F1sd00002462* +- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (Thunder K7 S2462) + + pci:v000010B7d00009900* + ID_MODEL_FROM_DATABASE=3C990-TX [Typhoon] +@@ -19725,25 +19725,25 @@ pci:v000010B7d00009904* + ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] + + pci:v000010B7d00009904sv000010B7sd00001000* +- ID_MODEL_FROM_DATABASE=3CR990B-TX-M [Typhoon2] ++ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990B-TX-M [Typhoon2]) + + pci:v000010B7d00009904sv000010B7sd00002000* +- ID_MODEL_FROM_DATABASE=3CR990BSVR [Typhoon2 Server] ++ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990BSVR [Typhoon2 Server]) + + pci:v000010B7d00009905* + ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] + + pci:v000010B7d00009905sv000010B7sd00001101* +- ID_MODEL_FROM_DATABASE=3CR990-FX-95 [Typhoon Fiber 56-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 [Typhoon Fiber 56-bit]) + + pci:v000010B7d00009905sv000010B7sd00001102* +- ID_MODEL_FROM_DATABASE=3CR990-FX-97 [Typhoon Fiber 168-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 [Typhoon Fiber 168-bit]) + + pci:v000010B7d00009905sv000010B7sd00002101* +- ID_MODEL_FROM_DATABASE=3CR990-FX-95 Server [Typhoon Fiber 56-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 Server [Typhoon Fiber 56-bit]) + + pci:v000010B7d00009905sv000010B7sd00002102* +- ID_MODEL_FROM_DATABASE=3CR990-FX-97 Server [Typhoon Fiber 168-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 Server [Typhoon Fiber 168-bit]) + + pci:v000010B7d00009908* + ID_MODEL_FROM_DATABASE=3CR990SVR95 [Typhoon Server 56-bit] +@@ -19764,49 +19764,49 @@ pci:v000010B8d00000005* + ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter + + pci:v000010B8d00000005sv00001055sd0000E000* +- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171Q-PCI] ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171Q-PCI]) + + pci:v000010B8d00000005sv00001055sd0000E002* +- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171G-PCI] ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171G-PCI]) + + pci:v000010B8d00000005sv000010B8sd0000A011* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A014* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A015* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A016* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A017* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000006* + ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter + + pci:v000010B8d00000006sv00001055sd0000E100* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv00001055sd0000E102* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv00001055sd0000E300* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv00001055sd0000E302* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv000010B8sd0000A012* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv000013A2sd00008002* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv000013A2sd00008006* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00001000* + ID_MODEL_FROM_DATABASE=FDC 37c665 +@@ -19869,13 +19869,13 @@ pci:v000010B9d00001521* + ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] + + pci:v000010B9d00001521sv000010B9sd00001521* +- ID_MODEL_FROM_DATABASE=ALI M1521 Aladdin III CPU Bridge ++ ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] (ALI M1521 Aladdin III CPU Bridge) + + pci:v000010B9d00001523* + ID_MODEL_FROM_DATABASE=M1523 + + pci:v000010B9d00001523sv000010B9sd00001523* +- ID_MODEL_FROM_DATABASE=ALI M1523 ISA Bridge ++ ID_MODEL_FROM_DATABASE=M1523 (ALI M1523 ISA Bridge) + + pci:v000010B9d00001531* + ID_MODEL_FROM_DATABASE=M1531 [Aladdin IV] +@@ -19884,16 +19884,16 @@ pci:v000010B9d00001533* + ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] + + pci:v000010B9d00001533sv00001014sd0000053B* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ThinkPad R40e) + + pci:v000010B9d00001533sv000010B9sd00001533* +- ID_MODEL_FROM_DATABASE=ALi M1533 Aladdin IV/V ISA Bridge ++ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ALi M1533 Aladdin IV/V ISA Bridge) + + pci:v000010B9d00001541* + ID_MODEL_FROM_DATABASE=M1541 + + pci:v000010B9d00001541sv000010B9sd00001541* +- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP System Controller ++ ID_MODEL_FROM_DATABASE=M1541 (ALI M1541 Aladdin V/V+ AGP System Controller) + + pci:v000010B9d00001543* + ID_MODEL_FROM_DATABASE=M1543 +@@ -19902,10 +19902,10 @@ pci:v000010B9d00001563* + ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge + + pci:v000010B9d00001563sv000010B9sd00001563* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00001563sv00001849sd00001563* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00001573* + ID_MODEL_FROM_DATABASE=PCI to LPC Controller +@@ -20007,22 +20007,22 @@ pci:v000010B9d00005229* + ID_MODEL_FROM_DATABASE=M5229 IDE + + pci:v000010B9d00005229sv00001014sd0000050F* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R30) + + pci:v000010B9d00005229sv00001014sd0000053D* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R40e) + + pci:v000010B9d00005229sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin IDE ++ ID_MODEL_FROM_DATABASE=M5229 IDE (Pavilion ze4400 builtin IDE) + + pci:v000010B9d00005229sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M5229 IDE (XE4500 Notebook) + + pci:v000010B9d00005229sv00001043sd00008053* +- ID_MODEL_FROM_DATABASE=A7A266 Motherboard IDE ++ ID_MODEL_FROM_DATABASE=M5229 IDE (A7A266 Motherboard IDE) + + pci:v000010B9d00005229sv00001849sd00005229* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard IDE (PATA) ++ ID_MODEL_FROM_DATABASE=M5229 IDE (ASRock 939Dual-SATA2 Motherboard IDE (PATA)) + + pci:v000010B9d00005235* + ID_MODEL_FROM_DATABASE=M5225 +@@ -20031,31 +20031,31 @@ pci:v000010B9d00005237* + ID_MODEL_FROM_DATABASE=USB 1.1 Controller + + pci:v000010B9d00005237sv00001014sd00000540* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ThinkPad R40e) + + pci:v000010B9d00005237sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin USB ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Pavilion ze4400 builtin USB) + + pci:v000010B9d00005237sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (XE4500 Notebook) + + pci:v000010B9d00005237sv0000104Dsd0000810F* +- ID_MODEL_FROM_DATABASE=VAIO PCG-U1 USB/OHCI Revision 1.0 ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (VAIO PCG-U1 USB/OHCI Revision 1.0) + + pci:v000010B9d00005237sv000010B9sd00005237* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005237sv00001849sd00005237* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005239* + ID_MODEL_FROM_DATABASE=USB 2.0 Controller + + pci:v000010B9d00005239sv000010B9sd00005239* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005239sv00001849sd00005239* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005243* + ID_MODEL_FROM_DATABASE=M1541 PCI to AGP Controller +@@ -20103,7 +20103,7 @@ pci:v000010B9d00005288* + ID_MODEL_FROM_DATABASE=ULi M5288 SATA + + pci:v000010B9d00005288sv00001043sd00008056* +- ID_MODEL_FROM_DATABASE=A8R-MVP Mainboard ++ ID_MODEL_FROM_DATABASE=ULi M5288 SATA (A8R-MVP Mainboard) + + pci:v000010B9d00005289* + ID_MODEL_FROM_DATABASE=ULi 5289 SATA +@@ -20115,16 +20115,16 @@ pci:v000010B9d00005451* + ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device + + pci:v000010B9d00005451sv00001014sd00000506* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R30) + + pci:v000010B9d00005451sv00001014sd0000053E* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R40e) + + pci:v000010B9d00005451sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Audio ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (Pavilion ze4400 builtin Audio) + + pci:v000010B9d00005451sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (XE4500 Notebook) + + pci:v000010B9d00005453* + ID_MODEL_FROM_DATABASE=M5453 PCI AC-Link Controller Modem Device +@@ -20133,22 +20133,22 @@ pci:v000010B9d00005455* + ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device + + pci:v000010B9d00005455sv000010B9sd00005455* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005455sv00001849sd00000850* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005457* + ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller + + pci:v000010B9d00005457sv00001014sd00000535* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (ThinkPad R40e) + + pci:v000010B9d00005457sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Modem Device ++ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (Pavilion ze4400 builtin Modem Device) + + pci:v000010B9d00005457sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (XE4500 Notebook) + + pci:v000010B9d00005459* + ID_MODEL_FROM_DATABASE=SmartLink SmartPCI561 56K Modem +@@ -20169,19 +20169,19 @@ pci:v000010B9d00007101* + ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] + + pci:v000010B9d00007101sv00001014sd00000510* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R30) + + pci:v000010B9d00007101sv00001014sd0000053C* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R40e) + + pci:v000010B9d00007101sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (Pavilion ze4400) + + pci:v000010B9d00007101sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (XE4500 Notebook) + + pci:v000010B9d00007101sv00001849sd00007101* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010BA* + ID_VENDOR_FROM_DATABASE=Mitsubishi Electric Corp. +@@ -20196,7 +20196,7 @@ pci:v000010BAd00000308* + ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] + + pci:v000010BAd00000308sv000010DDsd00000024* +- ID_MODEL_FROM_DATABASE=Tornado 3000 ++ ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] (Tornado 3000) + + pci:v000010BAd00001002* + ID_MODEL_FROM_DATABASE=VG500 [VolumePro Volume Rendering Accelerator] +@@ -20259,79 +20259,79 @@ pci:v000010C8d00000004* + ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] + + pci:v000010C8d00000004sv00001014sd000000BA* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001025sd00001007* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd00000074* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd00000075* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd0000007D* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd0000007E* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001033sd0000802F* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv0000104Dsd0000801B* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv0000104Dsd0000802F* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv0000104Dsd0000830B* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010BAsd00000E00* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010C8sd00000004* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010CFsd00001029* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd00008308* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd00008309* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd0000830B* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd0000830D* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd00008312* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000005* + ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] + + pci:v000010C8d00000005sv00001014sd000000DD* +- ID_MODEL_FROM_DATABASE=ThinkPad 570 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (ThinkPad 570) + + pci:v000010C8d00000005sv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=Latitude CPi A ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (Latitude CPi A) + + pci:v000010C8d00000006* + ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] + + pci:v000010C8d00000006sv00001014sd00000152* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X ++ ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] (ThinkPad 600X) + + pci:v000010C8d00000016* + ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] + + pci:v000010C8d00000016sv000010C8sd00000016* +- ID_MODEL_FROM_DATABASE=MagicMedia 256XL+ ++ ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] (MagicMedia 256XL+) + + pci:v000010C8d00000025* + ID_MODEL_FROM_DATABASE=NM2230 [MagicGraph 256AV+] +@@ -20343,40 +20343,40 @@ pci:v000010C8d00008005* + ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] + + pci:v000010C8d00008005sv00000E11sd0000B0D1* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Discovery ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Discovery) + + pci:v000010C8d00008005sv00000E11sd0000B126* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Durango ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Durango) + + pci:v000010C8d00008005sv00001014sd000000DD* +- ID_MODEL_FROM_DATABASE=ThinkPad 390/i1720/i1721 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (ThinkPad 390/i1720/i1721) + + pci:v000010C8d00008005sv00001025sd00001003* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on TravelMate 720 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on TravelMate 720) + + pci:v000010C8d00008005sv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=Latitude CPi A ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (Latitude CPi A) + + pci:v000010C8d00008005sv00001028sd0000008F* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Colorado Inspiron ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Colorado Inspiron) + + pci:v000010C8d00008005sv0000103Csd00000007* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager II ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager II) + + pci:v000010C8d00008005sv0000103Csd00000008* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager III ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager III) + + pci:v000010C8d00008005sv0000103Csd0000000D* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Omnibook 900 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Omnibook 900) + + pci:v000010C8d00008005sv000010C8sd00008005* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on FireAnt ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on FireAnt) + + pci:v000010C8d00008005sv0000110Asd00008005* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) + + pci:v000010C8d00008005sv000014C0sd00000004* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) + + pci:v000010C8d00008006* + ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX Audio] +@@ -20415,10 +20415,10 @@ pci:v000010CDd00001300* + ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U + + pci:v000010CDd00001300sv000010CDsd00001310* +- ID_MODEL_FROM_DATABASE=ASC1300 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (ASC1300 SCSI Adapter) + + pci:v000010CDd00001300sv00001195sd00001320* +- ID_MODEL_FROM_DATABASE=Ultra-SCSI CardBus PC Card REX CB31 ++ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (Ultra-SCSI CardBus PC Card REX CB31) + + pci:v000010CDd00002300* + ID_MODEL_FROM_DATABASE=ABP940-UW +@@ -20511,7 +20511,7 @@ pci:v000010D9d00000531* + ID_MODEL_FROM_DATABASE=MX987x5 + + pci:v000010D9d00000531sv00001186sd00001200* +- ID_MODEL_FROM_DATABASE=DFE-540TX ProFAST 10/100 Adapter ++ ID_MODEL_FROM_DATABASE=MX987x5 (DFE-540TX ProFAST 10/100 Adapter) + + pci:v000010D9d00008625* + ID_MODEL_FROM_DATABASE=MX86250 +@@ -20559,7 +20559,7 @@ pci:v000010DDd00000100* + ID_MODEL_FROM_DATABASE=Lightning 1200 + + pci:v000010DDd00000100sv000010DDsd00000023* +- ID_MODEL_FROM_DATABASE=Lightning 1200 15+16M ++ ID_MODEL_FROM_DATABASE=Lightning 1200 (15+16M) + + pci:v000010DE* + ID_VENDOR_FROM_DATABASE=NVIDIA Corporation +@@ -20574,193 +20574,193 @@ pci:v000010DEd00000020* + ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] + + pci:v000010DEd00000020sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=V3400 TNT ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (V3400 TNT) + + pci:v000010DEd00000020sv00001048sd00000C18* +- ID_MODEL_FROM_DATABASE=Erazor II SGRAM ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II SGRAM) + + pci:v000010DEd00000020sv00001048sd00000C19* +- ID_MODEL_FROM_DATABASE=Erazor II ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) + + pci:v000010DEd00000020sv00001048sd00000C1B* +- ID_MODEL_FROM_DATABASE=Erazor II ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) + + pci:v000010DEd00000020sv00001048sd00000C1C* +- ID_MODEL_FROM_DATABASE=Erazor II ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) + + pci:v000010DEd00000020sv00001092sd00000550* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00000552* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004804* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004808* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004810* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004812* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004815* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004820* +- ID_MODEL_FROM_DATABASE=Viper V550 with TV out ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550 with TV out) + + pci:v000010DEd00000020sv00001092sd00004822* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004904* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004914* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00008225* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv000010B4sd0000273D* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) + + pci:v000010DEd00000020sv000010B4sd0000273E* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) + + pci:v000010DEd00000020sv000010B4sd00002740* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) + + pci:v000010DEd00000020sv000010DEsd00000020* +- ID_MODEL_FROM_DATABASE=Riva TNT ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Riva TNT) + + pci:v000010DEd00000020sv00001102sd00001015* +- ID_MODEL_FROM_DATABASE=Graphics Blaster CT6710 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster CT6710) + + pci:v000010DEd00000020sv00001102sd00001016* +- ID_MODEL_FROM_DATABASE=Graphics Blaster RIVA TNT ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster RIVA TNT) + + pci:v000010DEd00000028* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] + + pci:v000010DEd00000028sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800 SGRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SGRAM) + + pci:v000010DEd00000028sv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800 SDRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SDRAM) + + pci:v000010DEd00000028sv00001043sd00000205* +- ID_MODEL_FROM_DATABASE=PCI-V3800 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (PCI-V3800) + + pci:v000010DEd00000028sv00001043sd00004000* +- ID_MODEL_FROM_DATABASE=AGP-V3800PRO ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800PRO) + + pci:v000010DEd00000028sv00001048sd00000C21* +- ID_MODEL_FROM_DATABASE=Synergy II ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Synergy II) + + pci:v000010DEd00000028sv00001048sd00000C28* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C29* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C2A* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C2B* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C31* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv00001048sd00000C32* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv00001048sd00000C33* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv00001048sd00000C34* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv0000107Dsd00002134* +- ID_MODEL_FROM_DATABASE=WinFast 3D S320 II + TV-Out ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (WinFast 3D S320 II + TV-Out) + + pci:v000010DEd00000028sv00001092sd00004804* +- ID_MODEL_FROM_DATABASE=Viper V770 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) + + pci:v000010DEd00000028sv00001092sd00004A00* +- ID_MODEL_FROM_DATABASE=Viper V770 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) + + pci:v000010DEd00000028sv00001092sd00004A02* +- ID_MODEL_FROM_DATABASE=Viper V770 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) + + pci:v000010DEd00000028sv00001092sd00005A00* +- ID_MODEL_FROM_DATABASE=RIVA TNT2/TNT2 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2/TNT2 Pro) + + pci:v000010DEd00000028sv00001092sd00005A40* +- ID_MODEL_FROM_DATABASE=Viper V770D AGP ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770D AGP) + + pci:v000010DEd00000028sv00001092sd00006A02* +- ID_MODEL_FROM_DATABASE=Viper V770 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) + + pci:v000010DEd00000028sv00001092sd00007A02* +- ID_MODEL_FROM_DATABASE=Viper V770 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) + + pci:v000010DEd00000028sv000010DEsd00000005* +- ID_MODEL_FROM_DATABASE=RIVA TNT2 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2 Pro) + + pci:v000010DEd00000028sv000010DEsd0000000F* +- ID_MODEL_FROM_DATABASE=Compaq NVIDIA TNT2 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Compaq NVIDIA TNT2 Pro) + + pci:v000010DEd00000028sv00001102sd00001020* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2) + + pci:v000010DEd00000028sv00001102sd00001026* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Digital ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2 Digital) + + pci:v000010DEd00000028sv00001462sd00008806* +- ID_MODEL_FROM_DATABASE=MS-8806 AGPhantom Graphics Card ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (MS-8806 AGPhantom Graphics Card) + + pci:v000010DEd00000028sv000014AFsd00005810* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Maxi Gamer Xentor) + + pci:v000010DEd00000029* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] + + pci:v000010DEd00000029sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Deluxe ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Deluxe) + + pci:v000010DEd00000029sv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Ultra SDRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Ultra SDRAM) + + pci:v000010DEd00000029sv00001043sd00000205* +- ID_MODEL_FROM_DATABASE=PCI-V3800 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (PCI-V3800 Ultra) + + pci:v000010DEd00000029sv00001048sd00000C2E* +- ID_MODEL_FROM_DATABASE=Erazor III Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) + + pci:v000010DEd00000029sv00001048sd00000C2F* +- ID_MODEL_FROM_DATABASE=Erazor III Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) + + pci:v000010DEd00000029sv00001048sd00000C30* +- ID_MODEL_FROM_DATABASE=Erazor III Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) + + pci:v000010DEd00000029sv00001102sd00001021* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) + + pci:v000010DEd00000029sv00001102sd00001029* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) + + pci:v000010DEd00000029sv00001102sd0000102F* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) + + pci:v000010DEd00000029sv000014AFsd00005820* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor 32 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Maxi Gamer Xentor 32) + + pci:v000010DEd00000029sv00004843sd00004F34* +- ID_MODEL_FROM_DATABASE=Dynamite ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Dynamite) + + pci:v000010DEd0000002A* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2] +@@ -20772,85 +20772,85 @@ pci:v000010DEd0000002C* + ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] + + pci:v000010DEd0000002Csv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat SDRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat SDRAM) + + pci:v000010DEd0000002Csv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat) + + pci:v000010DEd0000002Csv00001048sd00000C20* +- ID_MODEL_FROM_DATABASE=TNT2 Vanta ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) + + pci:v000010DEd0000002Csv00001048sd00000C21* +- ID_MODEL_FROM_DATABASE=TNT2 Vanta ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) + + pci:v000010DEd0000002Csv00001048sd00000C25* +- ID_MODEL_FROM_DATABASE=TNT2 Vanta 16MB ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta 16MB) + + pci:v000010DEd0000002Csv00001092sd00006820* +- ID_MODEL_FROM_DATABASE=Viper V730 ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Viper V730) + + pci:v000010DEd0000002Csv00001102sd00001031* +- ID_MODEL_FROM_DATABASE=CT6938 VANTA 8MB ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6938 VANTA 8MB) + + pci:v000010DEd0000002Csv00001102sd00001034* +- ID_MODEL_FROM_DATABASE=CT6894 VANTA 16MB ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6894 VANTA 16MB) + + pci:v000010DEd0000002Csv000014AFsd00005008* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix 2 ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Maxi Gamer Phoenix 2) + + pci:v000010DEd0000002D* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] + + pci:v000010DEd0000002Dsv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800M ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) + + pci:v000010DEd0000002Dsv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800M ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) + + pci:v000010DEd0000002Dsv00001048sd00000C3A* +- ID_MODEL_FROM_DATABASE=Erazor III LT ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) + + pci:v000010DEd0000002Dsv00001048sd00000C3B* +- ID_MODEL_FROM_DATABASE=Erazor III LT ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) + + pci:v000010DEd0000002Dsv0000107Dsd00002137* +- ID_MODEL_FROM_DATABASE=WinFast 3D S325 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (WinFast 3D S325) + + pci:v000010DEd0000002Dsv000010DEsd00000006* +- ID_MODEL_FROM_DATABASE=RIVA TNT2 Model 64/Model 64 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (RIVA TNT2 Model 64/Model 64 Pro) + + pci:v000010DEd0000002Dsv000010DEsd0000001E* +- ID_MODEL_FROM_DATABASE=M64 AGP4x ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (M64 AGP4x) + + pci:v000010DEd0000002Dsv00001102sd00001023* +- ID_MODEL_FROM_DATABASE=CT6892 RIVA TNT2 Value ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6892 RIVA TNT2 Value) + + pci:v000010DEd0000002Dsv00001102sd00001024* +- ID_MODEL_FROM_DATABASE=CT6932 RIVA TNT2 Value 32Mb ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6932 RIVA TNT2 Value 32Mb) + + pci:v000010DEd0000002Dsv00001102sd0000102C* +- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value [Jumper] ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value [Jumper]) + + pci:v000010DEd0000002Dsv00001102sd00001030* +- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value) + + pci:v000010DEd0000002Dsv0000110Asd0000006F* +- ID_MODEL_FROM_DATABASE=GM1000-16 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) + + pci:v000010DEd0000002Dsv0000110Asd00000081* +- ID_MODEL_FROM_DATABASE=GM1000-16 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) + + pci:v000010DEd0000002Dsv00001462sd00008808* +- ID_MODEL_FROM_DATABASE=MSI-8808 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (MSI-8808) + + pci:v000010DEd0000002Dsv000014AFsd00005620* +- ID_MODEL_FROM_DATABASE=Gamer Cougar Video Edition ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Gamer Cougar Video Edition) + + pci:v000010DEd0000002Dsv00001554sd00001041* +- ID_MODEL_FROM_DATABASE=Pixelview RIVA TNT2 M64 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Pixelview RIVA TNT2 M64) + + pci:v000010DEd0000002Dsv00001569sd0000002D* +- ID_MODEL_FROM_DATABASE=Palit Microsystems Daytona TNT2 M64 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Palit Microsystems Daytona TNT2 M64) + + pci:v000010DEd00000034* + ID_MODEL_FROM_DATABASE=MCP04 SMBus +@@ -20889,19 +20889,19 @@ pci:v000010DEd00000041* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] + + pci:v000010DEd00000041sv00001043sd0000817B* +- ID_MODEL_FROM_DATABASE=V9999 Gamer Edition ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (V9999 Gamer Edition) + + pci:v000010DEd00000041sv0000107Dsd00002992* +- ID_MODEL_FROM_DATABASE=WinFast A400 ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (WinFast A400) + + pci:v000010DEd00000041sv00001458sd0000310F* +- ID_MODEL_FROM_DATABASE=Geforce 6800 GV-N6812 ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (Geforce 6800 GV-N6812) + + pci:v000010DEd00000042* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] + + pci:v000010DEd00000042sv0000107Dsd0000299B* +- ID_MODEL_FROM_DATABASE=WinFast A400 LE ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] (WinFast A400 LE) + + pci:v000010DEd00000043* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XE] +@@ -20913,16 +20913,16 @@ pci:v000010DEd00000045* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] + + pci:v000010DEd00000045sv00001043sd0000817D* +- ID_MODEL_FROM_DATABASE=V9999GT ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (V9999GT) + + pci:v000010DEd00000045sv00001458sd00003140* +- ID_MODEL_FROM_DATABASE=GV-N68T256D ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (GV-N68T256D) + + pci:v000010DEd00000047* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] + + pci:v000010DEd00000047sv00001682sd00002109* +- ID_MODEL_FROM_DATABASE=GeForce 6800 GS ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] (GeForce 6800 GS) + + pci:v000010DEd00000048* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XT] +@@ -20934,133 +20934,133 @@ pci:v000010DEd00000050* + ID_MODEL_FROM_DATABASE=CK804 ISA Bridge + + pci:v000010DEd00000050sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000050sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (Tomcat K8E (S2865)) + + pci:v000010DEd00000050sv00001458sd00000C11* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000050sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (MSI K8N Diamond) + + pci:v000010DEd00000050sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N Neo4-F mainboard) + + pci:v000010DEd00000050sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (KN8-Ultra Mainboard) + + pci:v000010DEd00000050sv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (NF4 AM2L Mainboard) + + pci:v000010DEd00000051* + ID_MODEL_FROM_DATABASE=CK804 ISA Bridge + + pci:v000010DEd00000051sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 ISA Bridge ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (PowerEdge T105 ISA Bridge) + + pci:v000010DEd00000052* + ID_MODEL_FROM_DATABASE=CK804 SMBus + + pci:v000010DEd00000052sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 SMBus ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (PowerEdge T105 SMBus) + + pci:v000010DEd00000052sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000052sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (Tomcat K8E (S2865)) + + pci:v000010DEd00000052sv00001458sd00000C11* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000052sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (MSI K8N Diamond) + + pci:v000010DEd00000052sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N Neo4-F mainboard) + + pci:v000010DEd00000052sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (KN8-Ultra Mainboard) + + pci:v000010DEd00000052sv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (NF4 AM2L Mainboard) + + pci:v000010DEd00000053* + ID_MODEL_FROM_DATABASE=CK804 IDE + + pci:v000010DEd00000053sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000053sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 IDE (Tomcat K8E (S2865)) + + pci:v000010DEd00000053sv00001458sd00005002* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000053sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 IDE (MSI K8N Diamond) + + pci:v000010DEd00000053sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N Neo4-F mainboard) + + pci:v000010DEd00000053sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (KN8-Ultra Mainboard) + + pci:v000010DEd00000053sv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (NF4 AM2L Mainboard) + + pci:v000010DEd00000054* + ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller + + pci:v000010DEd00000054sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) + + pci:v000010DEd00000054sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (A8N Series Mainboard) + + pci:v000010DEd00000054sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000054sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000054sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (MSI K8N Diamond) + + pci:v000010DEd00000054sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000054sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000054sv00001565sd00005401* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) + + pci:v000010DEd00000055* + ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller + + pci:v000010DEd00000055sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) + + pci:v000010DEd00000055sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000055sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000055sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000055sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000055sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000055sv00001565sd00005401* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) + + pci:v000010DEd00000056* + ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller +@@ -21069,28 +21069,28 @@ pci:v000010DEd00000057* + ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller + + pci:v000010DEd00000057sv00001043sd00008141* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000057sv000010DEsd0000CB84* +- ID_MODEL_FROM_DATABASE=NF4 Lanparty ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 Lanparty) + + pci:v000010DEd00000057sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000057sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000057sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (MSI K8N Diamond) + + pci:v000010DEd00000057sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000057sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000057sv00001565sd00002501* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 AM2L Mainboard) + + pci:v000010DEd00000058* + ID_MODEL_FROM_DATABASE=CK804 AC'97 Modem +@@ -21099,73 +21099,73 @@ pci:v000010DEd00000059* + ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller + + pci:v000010DEd00000059sv00001043sd0000812A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000059sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000059sv00001462sd00007585* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000059sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000059sv00001565sd00008211* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005A* + ID_MODEL_FROM_DATABASE=CK804 USB Controller + + pci:v000010DEd0000005Asv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) + + pci:v000010DEd0000005Asv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd0000005Asv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) + + pci:v000010DEd0000005Asv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd0000005Asv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) + + pci:v000010DEd0000005Asv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) + + pci:v000010DEd0000005Asv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) + + pci:v000010DEd0000005Asv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005B* + ID_MODEL_FROM_DATABASE=CK804 USB Controller + + pci:v000010DEd0000005Bsv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) + + pci:v000010DEd0000005Bsv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd0000005Bsv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) + + pci:v000010DEd0000005Bsv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd0000005Bsv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) + + pci:v000010DEd0000005Bsv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) + + pci:v000010DEd0000005Bsv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) + + pci:v000010DEd0000005Bsv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005C* + ID_MODEL_FROM_DATABASE=CK804 PCI Bridge +@@ -21177,34 +21177,34 @@ pci:v000010DEd0000005E* + ID_MODEL_FROM_DATABASE=CK804 Memory Controller + + pci:v000010DEd0000005Esv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Memory Controller ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (PowerEdge T105 Memory Controller) + + pci:v000010DEd0000005Esv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (A8N Series Mainboard) + + pci:v000010DEd0000005Esv000010DEsd0000005E* +- ID_MODEL_FROM_DATABASE=ECS Elitegroup NFORCE3-A939 motherboard. ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (ECS Elitegroup NFORCE3-A939 motherboard.) + + pci:v000010DEd0000005Esv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Tomcat K8E (S2865)) + + pci:v000010DEd0000005Esv000010F1sd00002891* +- ID_MODEL_FROM_DATABASE=Thunder K8SRE Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Thunder K8SRE Mainboard) + + pci:v000010DEd0000005Esv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd0000005Esv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=K8N Diamond Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Diamond Mainboard) + + pci:v000010DEd0000005Esv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Neo4-F Mainboard) + + pci:v000010DEd0000005Esv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (KN8-Ultra Mainboard) + + pci:v000010DEd0000005Esv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005F* + ID_MODEL_FROM_DATABASE=CK804 Memory Controller +@@ -21213,61 +21213,61 @@ pci:v000010DEd00000060* + ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge + + pci:v000010DEd00000060sv00001043sd000080AD* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard ++ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (A7N8X Mainboard) + + pci:v000010DEd00000060sv0000147Bsd00001C02* +- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X ++ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (NF7-S/NF7 (nVidia-nForce2) 2.X) + + pci:v000010DEd00000060sv0000A0A0sd000003BA* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (UK79G-1394 motherboard) + + pci:v000010DEd00000064* + ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) + + pci:v000010DEd00000064sv0000147Bsd00001C02* +- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X ++ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (NF7-S/NF7 (nVidia-nForce2) 2.X) + + pci:v000010DEd00000064sv0000A0A0sd000003BB* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (UK79G-1394 motherboard) + + pci:v000010DEd00000065* + ID_MODEL_FROM_DATABASE=nForce2 IDE + + pci:v000010DEd00000065sv000010DEsd00000C11* +- ID_MODEL_FROM_DATABASE=nForce 2 EIDE Controller ++ ID_MODEL_FROM_DATABASE=nForce2 IDE (nForce 2 EIDE Controller) + + pci:v000010DEd00000065sv0000A0A0sd000003B2* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 IDE (UK79G-1394 motherboard) + + pci:v000010DEd00000066* + ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller + + pci:v000010DEd00000066sv00001043sd000080A7* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard onboard nForce2 Ethernet ++ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (A7N8X Mainboard onboard nForce2 Ethernet) + + pci:v000010DEd00000066sv000010DEsd00000C11* +- ID_MODEL_FROM_DATABASE=nForce MCP-T Networking Adapter ++ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (nForce MCP-T Networking Adapter) + + pci:v000010DEd00000066sv0000A0A0sd000003B3* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (UK79G-1394 motherboard) + + pci:v000010DEd00000067* + ID_MODEL_FROM_DATABASE=nForce2 USB Controller + + pci:v000010DEd00000067sv00001043sd00000C11* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) + + pci:v000010DEd00000067sv0000A0A0sd000003B4* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) + + pci:v000010DEd00000068* + ID_MODEL_FROM_DATABASE=nForce2 USB Controller + + pci:v000010DEd00000068sv00001043sd00000C11* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) + + pci:v000010DEd00000068sv0000A0A0sd000003B4* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) + + pci:v000010DEd0000006A* + ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) +@@ -21276,16 +21276,16 @@ pci:v000010DEd0000006Asv00001043sd00008095* + ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) + + pci:v000010DEd0000006Asv0000A0A0sd00000304* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) (UK79G-1394 motherboard) + + pci:v000010DEd0000006B* + ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit + + pci:v000010DEd0000006Bsv000010DEsd0000006B* +- ID_MODEL_FROM_DATABASE=nForce2 MCP Audio Processing Unit ++ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (nForce2 MCP Audio Processing Unit) + + pci:v000010DEd0000006Bsv0000A0A0sd00000304* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (UK79G-1394 motherboard) + + pci:v000010DEd0000006C* + ID_MODEL_FROM_DATABASE=nForce2 External PCI Bridge +@@ -21297,25 +21297,25 @@ pci:v000010DEd0000006E* + ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller + + pci:v000010DEd0000006Esv0000A0A0sd00000306* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller (UK79G-1394 motherboard) + + pci:v000010DEd00000080* + ID_MODEL_FROM_DATABASE=MCP2A ISA bridge + + pci:v000010DEd00000080sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A ISA bridge (NV7 Motherboard) + + pci:v000010DEd00000084* + ID_MODEL_FROM_DATABASE=MCP2A SMBus + + pci:v000010DEd00000084sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A SMBus (NV7 Motherboard) + + pci:v000010DEd00000085* + ID_MODEL_FROM_DATABASE=MCP2A IDE + + pci:v000010DEd00000085sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A IDE (NV7 Motherboard) + + pci:v000010DEd00000086* + ID_MODEL_FROM_DATABASE=MCP2A Ethernet Controller +@@ -21324,19 +21324,19 @@ pci:v000010DEd00000087* + ID_MODEL_FROM_DATABASE=MCP2A USB Controller + + pci:v000010DEd00000087sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) + + pci:v000010DEd00000088* + ID_MODEL_FROM_DATABASE=MCP2A USB Controller + + pci:v000010DEd00000088sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) + + pci:v000010DEd0000008A* + ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller + + pci:v000010DEd0000008Asv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller (NV7 Motherboard) + + pci:v000010DEd0000008B* + ID_MODEL_FROM_DATABASE=MCP2A PCI Bridge +@@ -21378,7 +21378,7 @@ pci:v000010DEd000000A0* + ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] + + pci:v000010DEd000000A0sv000014AFsd00005810* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor ++ ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] (Maxi Gamer Xentor) + + pci:v000010DEd000000C0* + ID_MODEL_FROM_DATABASE=NV41 [GeForce 6800 GS] +@@ -21459,46 +21459,46 @@ pci:v000010DEd000000DF* + ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller + + pci:v000010DEd000000DFsv00001043sd000080A7* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (K8N-E) + + pci:v000010DEd000000DFsv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000DFsv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (NF8 Mainboard) + + pci:v000010DEd000000E0* + ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge + + pci:v000010DEd000000E0sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N-E) + + pci:v000010DEd000000E0sv000010DEsd00000C11* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Winfast NF3250K8AA) + + pci:v000010DEd000000E0sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E0sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (NF8 Mainboard) + + pci:v000010DEd000000E0sv00001849sd000000E0* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Motherboard (one of many)) + + pci:v000010DEd000000E1* + ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge + + pci:v000010DEd000000E1sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N-E) + + pci:v000010DEd000000E1sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E1sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (NF8 Mainboard) + + pci:v000010DEd000000E1sv00001849sd000000E1* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (Motherboard (one of many)) + + pci:v000010DEd000000E2* + ID_MODEL_FROM_DATABASE=nForce3 250Gb AGP Host to PCI Bridge +@@ -21507,55 +21507,55 @@ pci:v000010DEd000000E3* + ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller + + pci:v000010DEd000000E3sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (K8N-E) + + pci:v000010DEd000000E3sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000E3sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (NF8 Mainboard) + + pci:v000010DEd000000E3sv00001849sd000000E3* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Motherboard (one of many)) + + pci:v000010DEd000000E4* + ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management + + pci:v000010DEd000000E4sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N-E) + + pci:v000010DEd000000E4sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Winfast NF3250K8AA) + + pci:v000010DEd000000E4sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E4sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (NF8 Mainboard) + + pci:v000010DEd000000E4sv00001849sd000000E4* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Motherboard (one of many)) + + pci:v000010DEd000000E5* + ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) + + pci:v000010DEd000000E5sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N-E) + + pci:v000010DEd000000E5sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Winfast NF3250K8AA) + + pci:v000010DEd000000E5sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E5sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (NF8 Mainboard) + + pci:v000010DEd000000E5sv00001849sd000000E5* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) + + pci:v000010DEd000000E5sv0000F849sd000000E5* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) + + pci:v000010DEd000000E6* + ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller +@@ -21564,52 +21564,52 @@ pci:v000010DEd000000E7* + ID_MODEL_FROM_DATABASE=CK8S USB Controller + + pci:v000010DEd000000E7sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N-E) + + pci:v000010DEd000000E7sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000E7sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E7sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (NF8 Mainboard) + + pci:v000010DEd000000E7sv00001849sd000000E7* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Motherboard (one of many)) + + pci:v000010DEd000000E8* + ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller + + pci:v000010DEd000000E8sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N-E) + + pci:v000010DEd000000E8sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000E8sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E8sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (NF8 Mainboard) + + pci:v000010DEd000000E8sv00001849sd000000E8* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Motherboard (one of many)) + + pci:v000010DEd000000EA* + ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller + + pci:v000010DEd000000EAsv00001043sd0000819D* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N-E) + + pci:v000010DEd000000EAsv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000EAsv00001462sd0000B010* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N Neo-FSR v2.0) + + pci:v000010DEd000000EAsv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (NF8 Mainboard) + + pci:v000010DEd000000ED* + ID_MODEL_FROM_DATABASE=nForce3 250Gb PCI-to-PCI Bridge +@@ -21621,28 +21621,28 @@ pci:v000010DEd000000F1* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] + + pci:v000010DEd000000F1sv00001043sd000081A6* +- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) + + pci:v000010DEd000000F1sv00001043sd000081C6* +- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) + + pci:v000010DEd000000F1sv00001458sd00003150* +- ID_MODEL_FROM_DATABASE=GV-N66T128VP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-N66T128VP) + + pci:v000010DEd000000F1sv00001554sd00001191* +- ID_MODEL_FROM_DATABASE=PixelView PV-N43UA (128KD) ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (PixelView PV-N43UA (128KD)) + + pci:v000010DEd000000F1sv00001682sd00002119* +- ID_MODEL_FROM_DATABASE=GeForce 6600 GT AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GeForce 6600 GT AGP) + + pci:v000010DEd000000F2* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] + + pci:v000010DEd000000F2sv00001554sd00001194* +- ID_MODEL_FROM_DATABASE=PixelView PV-N43AT (256KD) ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (PixelView PV-N43AT (256KD)) + + pci:v000010DEd000000F2sv00001682sd0000211C* +- ID_MODEL_FROM_DATABASE=GeForce 6600 256MB DDR DUAL DVI TV ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GeForce 6600 256MB DDR DUAL DVI TV) + + pci:v000010DEd000000F3* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6200] +@@ -21657,7 +21657,7 @@ pci:v000010DEd000000F6* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] + + pci:v000010DEd000000F6sv00001682sd0000217E* +- ID_MODEL_FROM_DATABASE=XFX GeForce 6800 XTreme 256MB DDR3 AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] (XFX GeForce 6800 XTreme 256MB DDR3 AGP) + + pci:v000010DEd000000F8* + ID_MODEL_FROM_DATABASE=NV40GL [Quadro FX 3400/4400] +@@ -21666,10 +21666,10 @@ pci:v000010DEd000000F9* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] + + pci:v000010DEd000000F9sv000010DEsd000000F9* +- ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (NV40 [GeForce 6800 GT]) + + pci:v000010DEd000000F9sv00001682sd00002120* +- ID_MODEL_FROM_DATABASE=GEFORCE 6800 GT PCI-E ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (GEFORCE 6800 GT PCI-E) + + pci:v000010DEd000000FA* + ID_MODEL_FROM_DATABASE=NV36 [GeForce PCX 5750] +@@ -21693,130 +21693,130 @@ pci:v000010DEd00000100* + ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] + + pci:v000010DEd00000100sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) + + pci:v000010DEd00000100sv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) + + pci:v000010DEd00000100sv00001043sd00004008* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) + + pci:v000010DEd00000100sv00001043sd00004009* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) + + pci:v000010DEd00000100sv00001048sd00000C41* +- ID_MODEL_FROM_DATABASE=Erazor X ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Erazor X) + + pci:v000010DEd00000100sv00001048sd00000C43* +- ID_MODEL_FROM_DATABASE=ERAZOR X PCI ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (ERAZOR X PCI) + + pci:v000010DEd00000100sv00001048sd00000C48* +- ID_MODEL_FROM_DATABASE=Synergy Force ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Synergy Force) + + pci:v000010DEd00000100sv00001102sd0000102D* +- ID_MODEL_FROM_DATABASE=CT6941 GeForce 256 ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (CT6941 GeForce 256) + + pci:v000010DEd00000100sv000014AFsd00005022* +- ID_MODEL_FROM_DATABASE=3D Prophet SE ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (3D Prophet SE) + + pci:v000010DEd00000101* + ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] + + pci:v000010DEd00000101sv00001043sd00000202* +- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR) + + pci:v000010DEd00000101sv00001043sd0000400A* +- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SGRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SGRAM) + + pci:v000010DEd00000101sv00001043sd0000400B* +- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SDRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SDRAM) + + pci:v000010DEd00000101sv00001048sd00000C42* +- ID_MODEL_FROM_DATABASE=Erazor X ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (Erazor X) + + pci:v000010DEd00000101sv0000107Dsd00002822* +- ID_MODEL_FROM_DATABASE=WinFast GeForce 256 ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (WinFast GeForce 256) + + pci:v000010DEd00000101sv00001102sd0000102E* +- ID_MODEL_FROM_DATABASE=CT6970/CT6971 ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (CT6970/CT6971) + + pci:v000010DEd00000101sv000014AFsd00005021* +- ID_MODEL_FROM_DATABASE=3D Prophet DDR-DVI ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (3D Prophet DDR-DVI) + + pci:v000010DEd00000103* + ID_MODEL_FROM_DATABASE=NV10GL [Quadro] + + pci:v000010DEd00000103sv00001048sd00000C40* +- ID_MODEL_FROM_DATABASE=GLoria II-64 ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64) + + pci:v000010DEd00000103sv00001048sd00000C44* +- ID_MODEL_FROM_DATABASE=GLoria II ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) + + pci:v000010DEd00000103sv00001048sd00000C45* +- ID_MODEL_FROM_DATABASE=GLoria II ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) + + pci:v000010DEd00000103sv00001048sd00000C4A* +- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro) + + pci:v000010DEd00000103sv00001048sd00000C4B* +- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro DVII ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro DVII) + + pci:v000010DEd00000110* + ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] + + pci:v000010DEd00000110sv00001043sd00004015* +- ID_MODEL_FROM_DATABASE=AGP-V7100 Pro ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (AGP-V7100 Pro) + + pci:v000010DEd00000110sv00001043sd00004021* +- ID_MODEL_FROM_DATABASE=V7100 Deluxe Combo ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Deluxe Combo) + + pci:v000010DEd00000110sv00001043sd00004031* +- ID_MODEL_FROM_DATABASE=V7100 Pro with TV output ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Pro with TV output) + + pci:v000010DEd00000110sv00001048sd00000C60* +- ID_MODEL_FROM_DATABASE=Gladiac MX ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac MX) + + pci:v000010DEd00000110sv00001048sd00000C61* +- ID_MODEL_FROM_DATABASE=Gladiac 511PCI ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511PCI) + + pci:v000010DEd00000110sv00001048sd00000C63* +- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 32MB ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 32MB) + + pci:v000010DEd00000110sv00001048sd00000C64* +- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 64MB ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 64MB) + + pci:v000010DEd00000110sv00001048sd00000C65* +- ID_MODEL_FROM_DATABASE=Gladiac 511TWIN ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TWIN) + + pci:v000010DEd00000110sv00001048sd00000C66* +- ID_MODEL_FROM_DATABASE=Gladiac 311 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 311) + + pci:v000010DEd00000110sv000010B0sd00000001* +- ID_MODEL_FROM_DATABASE=GeForce2 MX Jumbo TV ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (GeForce2 MX Jumbo TV) + + pci:v000010DEd00000110sv000010DEsd00000091* +- ID_MODEL_FROM_DATABASE=Dell OEM GeForce 2 MX 400 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Dell OEM GeForce 2 MX 400) + + pci:v000010DEd00000110sv000010DEsd000000A1* +- ID_MODEL_FROM_DATABASE=Apple OEM GeForce2 MX ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Apple OEM GeForce2 MX) + + pci:v000010DEd00000110sv00001462sd00008523* +- ID_MODEL_FROM_DATABASE=MS-8852 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MS-8852) + + pci:v000010DEd00000110sv00001462sd00008817* +- ID_MODEL_FROM_DATABASE=MSI GeForce2 MX400 Pro32S [MS-8817] ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MSI GeForce2 MX400 Pro32S [MS-8817]) + + pci:v000010DEd00000110sv000014AFsd00007102* +- ID_MODEL_FROM_DATABASE=3D Prophet II MX ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX) + + pci:v000010DEd00000110sv000014AFsd00007103* +- ID_MODEL_FROM_DATABASE=3D Prophet II MX Dual-Display ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX Dual-Display) + + pci:v000010DEd00000110sv00001545sd00000023* +- ID_MODEL_FROM_DATABASE=Xtasy Rev. B2 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Xtasy Rev. B2) + + pci:v000010DEd00000110sv00001554sd00001081* +- ID_MODEL_FROM_DATABASE=MVGA-NVG11AM(400) ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MVGA-NVG11AM(400)) + + pci:v000010DEd00000111* + ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX200] +@@ -21831,28 +21831,28 @@ pci:v000010DEd00000140* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] + + pci:v000010DEd00000140sv00001458sd00003125* +- ID_MODEL_FROM_DATABASE=GV-NX66T128D ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T128D) + + pci:v000010DEd00000140sv00001458sd00003126* +- ID_MODEL_FROM_DATABASE=GV-NX66T256DE ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T256DE) + + pci:v000010DEd00000140sv00001462sd00008939* +- ID_MODEL_FROM_DATABASE=MS-8983 ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (MS-8983) + + pci:v000010DEd00000141* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] + + pci:v000010DEd00000141sv00001043sd000081B0* +- ID_MODEL_FROM_DATABASE=EN6600 Silencer ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (EN6600 Silencer) + + pci:v000010DEd00000141sv0000107Dsd0000593A* +- ID_MODEL_FROM_DATABASE=LR2A22 128MB TV OUT ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (LR2A22 128MB TV OUT) + + pci:v000010DEd00000141sv0000107Dsd0000597B* +- ID_MODEL_FROM_DATABASE=WINFAST PX6600 ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (WINFAST PX6600) + + pci:v000010DEd00000141sv00001458sd00003124* +- ID_MODEL_FROM_DATABASE=GV-NX66128DP Turbo Force Edition ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GV-NX66128DP Turbo Force Edition) + + pci:v000010DEd00000142* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 LE] +@@ -21897,49 +21897,49 @@ pci:v000010DEd00000150* + ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] + + pci:v000010DEd00000150sv00001043sd00004016* +- ID_MODEL_FROM_DATABASE=V7700 AGP Video Card ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (V7700 AGP Video Card) + + pci:v000010DEd00000150sv00001043sd0000402A* +- ID_MODEL_FROM_DATABASE=AGP-V7700 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (AGP-V7700) + + pci:v000010DEd00000150sv00001048sd00000C50* +- ID_MODEL_FROM_DATABASE=Gladiac ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac) + + pci:v000010DEd00000150sv00001048sd00000C52* +- ID_MODEL_FROM_DATABASE=Gladiac-64 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac-64) + + pci:v000010DEd00000150sv0000107Dsd00002840* +- ID_MODEL_FROM_DATABASE=WinFast GeForce2 GTS with TV output ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce2 GTS with TV output) + + pci:v000010DEd00000150sv0000107Dsd00002842* +- ID_MODEL_FROM_DATABASE=WinFast GeForce 2 Pro ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce 2 Pro) + + pci:v000010DEd00000150sv000010DEsd0000002E* +- ID_MODEL_FROM_DATABASE=GeForce2 GTS ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (GeForce2 GTS) + + pci:v000010DEd00000150sv00001462sd0000815A* +- ID_MODEL_FROM_DATABASE=MS-8815 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (MS-8815) + + pci:v000010DEd00000150sv00001462sd00008831* +- ID_MODEL_FROM_DATABASE=Creative GeForce2 Pro ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Creative GeForce2 Pro) + + pci:v000010DEd00000151* + ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] + + pci:v000010DEd00000151sv00001043sd0000405F* +- ID_MODEL_FROM_DATABASE=V7700Ti ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (V7700Ti) + + pci:v000010DEd00000151sv00001462sd00005506* +- ID_MODEL_FROM_DATABASE=Creative 3D Blaster GeForce2 Titanium ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (Creative 3D Blaster GeForce2 Titanium) + + pci:v000010DEd00000151sv00001462sd00008364* +- ID_MODEL_FROM_DATABASE=MS-8836 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (MS-8836) + + pci:v000010DEd00000152* + ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] + + pci:v000010DEd00000152sv00001048sd00000C56* +- ID_MODEL_FROM_DATABASE=GLADIAC Ultra ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] (GLADIAC Ultra) + + pci:v000010DEd00000153* + ID_MODEL_FROM_DATABASE=NV15GL [Quadro2 Pro] +@@ -21990,40 +21990,40 @@ pci:v000010DEd00000170* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] + + pci:v000010DEd00000170sv00001462sd00008630* +- ID_MODEL_FROM_DATABASE=MS-8863 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] (MS-8863) + + pci:v000010DEd00000171* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] + + pci:v000010DEd00000171sv000010B0sd00000002* +- ID_MODEL_FROM_DATABASE=Gainward Pro/600 TV ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Gainward Pro/600 TV) + + pci:v000010DEd00000171sv000010DEsd00000008* +- ID_MODEL_FROM_DATABASE=Apple OEM GeForce4 MX 440 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Apple OEM GeForce4 MX 440) + + pci:v000010DEd00000171sv00001462sd00008661* +- ID_MODEL_FROM_DATABASE=G4MX440-VTP ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (G4MX440-VTP) + + pci:v000010DEd00000171sv00001462sd00008730* +- ID_MODEL_FROM_DATABASE=MX440SES-T (MS-8873) ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MX440SES-T (MS-8873)) + + pci:v000010DEd00000171sv00001462sd00008743* +- ID_MODEL_FROM_DATABASE=MS-8874 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MS-8874) + + pci:v000010DEd00000171sv00001462sd00008852* +- ID_MODEL_FROM_DATABASE=GeForce4 MX440 PCI ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (GeForce4 MX440 PCI) + + pci:v000010DEd00000171sv0000147Bsd00008F00* +- ID_MODEL_FROM_DATABASE=Abit Siluro GeForce4MX440 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Abit Siluro GeForce4MX440) + + pci:v000010DEd00000172* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] + + pci:v000010DEd00000172sv00001462sd00008730* +- ID_MODEL_FROM_DATABASE=MS-8873 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8873) + + pci:v000010DEd00000172sv00001462sd00008784* +- ID_MODEL_FROM_DATABASE=MS-8878 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8878) + + pci:v000010DEd00000173* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440-SE] +@@ -22038,13 +22038,13 @@ pci:v000010DEd00000176* + ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] + + pci:v000010DEd00000176sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (tc1100 tablet) + + pci:v000010DEd00000176sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (X10 Laptop) + + pci:v000010DEd00000176sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (Cx9 / Vx9 mainboard) + + pci:v000010DEd00000177* + ID_MODEL_FROM_DATABASE=NV17M [GeForce4 460 Go] +@@ -22056,7 +22056,7 @@ pci:v000010DEd00000179* + ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] + + pci:v000010DEd00000179sv000010DEsd00000179* +- ID_MODEL_FROM_DATABASE=GeForce4 MX (Mac) ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] (GeForce4 MX (Mac)) + + pci:v000010DEd0000017A* + ID_MODEL_FROM_DATABASE=NV17GL [Quadro NVS] +@@ -22074,25 +22074,25 @@ pci:v000010DEd00000181* + ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] + + pci:v000010DEd00000181sv00001043sd00008063* +- ID_MODEL_FROM_DATABASE=GeForce4 MX 440 AGP 8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (GeForce4 MX 440 AGP 8X) + + pci:v000010DEd00000181sv00001043sd0000806F* +- ID_MODEL_FROM_DATABASE=V9180 Magic ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (V9180 Magic) + + pci:v000010DEd00000181sv00001462sd00008880* +- ID_MODEL_FROM_DATABASE=MS-StarForce GeForce4 MX 440 with AGP8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-StarForce GeForce4 MX 440 with AGP8X) + + pci:v000010DEd00000181sv00001462sd00008900* +- ID_MODEL_FROM_DATABASE=MS-8890 GeForce 4 MX440 AGP8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-8890 GeForce 4 MX440 AGP8X) + + pci:v000010DEd00000181sv00001462sd00009350* +- ID_MODEL_FROM_DATABASE=MSI GeForce4 MX T8X with AGP8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MSI GeForce4 MX T8X with AGP8X) + + pci:v000010DEd00000181sv0000147Bsd00008F0D* +- ID_MODEL_FROM_DATABASE=Siluro GF4 MX-8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (Siluro GF4 MX-8X) + + pci:v000010DEd00000181sv00001554sd00001111* +- ID_MODEL_FROM_DATABASE=PixelView MVGA-NVG18A ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (PixelView MVGA-NVG18A) + + pci:v000010DEd00000182* + ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440SE AGP 8x] +@@ -22146,7 +22146,7 @@ pci:v000010DEd00000193* + ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] + + pci:v000010DEd00000193sv0000107Dsd000020BD* +- ID_MODEL_FROM_DATABASE=WinFast PX 8800 GTS TDH ++ ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] (WinFast PX 8800 GTS TDH) + + pci:v000010DEd00000194* + ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 Ultra] +@@ -22212,13 +22212,13 @@ pci:v000010DEd000001D1* + ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] + + pci:v000010DEd000001D1sv0000107Dsd00005EFA* +- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD128 ++ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD128) + + pci:v000010DEd000001D1sv0000107Dsd00005EFB* +- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD256 ++ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD256) + + pci:v000010DEd000001D1sv00001462sd00000345* +- ID_MODEL_FROM_DATABASE=7300LE PCI Express Graphics Adapter ++ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (7300LE PCI Express Graphics Adapter) + + pci:v000010DEd000001D2* + ID_MODEL_FROM_DATABASE=G72 [GeForce 7550 LE] +@@ -22239,7 +22239,7 @@ pci:v000010DEd000001D8* + ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] + + pci:v000010DEd000001D8sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] (XPS M1210) + + pci:v000010DEd000001D9* + ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7450] +@@ -22260,7 +22260,7 @@ pci:v000010DEd000001DE* + ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] + + pci:v000010DEd000001DEsv000010DEsd000001DC* +- ID_MODEL_FROM_DATABASE=Quadro FX Go350M ++ ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] (Quadro FX Go350M) + + pci:v000010DEd000001DF* + ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 GS] +@@ -22269,7 +22269,7 @@ pci:v000010DEd000001E0* + ID_MODEL_FROM_DATABASE=nForce2 IGP2 + + pci:v000010DEd000001E0sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 IGP2 (NV7 Motherboard) + + pci:v000010DEd000001E8* + ID_MODEL_FROM_DATABASE=nForce2 AGP +@@ -22278,55 +22278,55 @@ pci:v000010DEd000001EA* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 + + pci:v000010DEd000001EAsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 (UK79G-1394 motherboard) + + pci:v000010DEd000001EB* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 + + pci:v000010DEd000001EBsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 (UK79G-1394 motherboard) + + pci:v000010DEd000001EC* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 + + pci:v000010DEd000001ECsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 (UK79G-1394 motherboard) + + pci:v000010DEd000001ED* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 + + pci:v000010DEd000001EDsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 (UK79G-1394 motherboard) + + pci:v000010DEd000001EE* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 + + pci:v000010DEd000001EEsv000010DEsd000001EE* +- ID_MODEL_FROM_DATABASE=MSI Delta-L nForce2 memory controller ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (MSI Delta-L nForce2 memory controller) + + pci:v000010DEd000001EEsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (UK79G-1394 motherboard) + + pci:v000010DEd000001EF* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 + + pci:v000010DEd000001EFsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 (UK79G-1394 motherboard) + + pci:v000010DEd000001F0* + ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] + + pci:v000010DEd000001F0sv0000A0A0sd000003B5* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] (UK79G-1394 motherboard) + + pci:v000010DEd00000200* + ID_MODEL_FROM_DATABASE=NV20 [GeForce3] + + pci:v000010DEd00000200sv00001043sd0000402F* +- ID_MODEL_FROM_DATABASE=AGP-V8200 DDR ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (AGP-V8200 DDR) + + pci:v000010DEd00000200sv00001048sd00000C70* +- ID_MODEL_FROM_DATABASE=GLADIAC 920 ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (GLADIAC 920) + + pci:v000010DEd00000201* + ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 200] +@@ -22335,10 +22335,10 @@ pci:v000010DEd00000202* + ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] + + pci:v000010DEd00000202sv00001043sd0000405B* +- ID_MODEL_FROM_DATABASE=V8200 T5 ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (V8200 T5) + + pci:v000010DEd00000202sv00001545sd0000002F* +- ID_MODEL_FROM_DATABASE=Xtasy 6964 ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (Xtasy 6964) + + pci:v000010DEd00000203* + ID_MODEL_FROM_DATABASE=NV20GL [Quadro DCC] +@@ -22359,10 +22359,10 @@ pci:v000010DEd00000221* + ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] + + pci:v000010DEd00000221sv00001043sd000081E1* +- ID_MODEL_FROM_DATABASE=N6200/TD/256M/A ++ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (N6200/TD/256M/A) + + pci:v000010DEd00000221sv00003842sd0000A341* +- ID_MODEL_FROM_DATABASE=256A8N341DX ++ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (256A8N341DX) + + pci:v000010DEd00000222* + ID_MODEL_FROM_DATABASE=NV44 [GeForce 6200 A-LE] +@@ -22374,10 +22374,10 @@ pci:v000010DEd00000240* + ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] + + pci:v000010DEd00000240sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM ++ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (A8N-VM CSM) + + pci:v000010DEd00000240sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (K8NGM2 series) + + pci:v000010DEd00000241* + ID_MODEL_FROM_DATABASE=C51 [GeForce 6150 LE] +@@ -22386,7 +22386,7 @@ pci:v000010DEd00000242* + ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] + + pci:v000010DEd00000242sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] (Winfast 6100K8MB) + + pci:v000010DEd00000243* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge +@@ -22395,13 +22395,13 @@ pci:v000010DEd00000244* + ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] + + pci:v000010DEd00000244sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V3242AU) + + pci:v000010DEd00000244sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V6133CL) + + pci:v000010DEd00000244sv000010DEsd00000244* +- ID_MODEL_FROM_DATABASE=GeForce Go 6150 ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (GeForce Go 6150) + + pci:v000010DEd00000245* + ID_MODEL_FROM_DATABASE=C51 [Quadro NVS 210S/GeForce 6150LE] +@@ -22413,7 +22413,7 @@ pci:v000010DEd00000247* + ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] + + pci:v000010DEd00000247sv00001043sd00001382* +- ID_MODEL_FROM_DATABASE=MCP51 PCI-X GeForce Go 6100 ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] (MCP51 PCI-X GeForce Go 6100) + + pci:v000010DEd00000248* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge +@@ -22446,13 +22446,13 @@ pci:v000010DEd00000251* + ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] + + pci:v000010DEd00000251sv00001043sd00008023* +- ID_MODEL_FROM_DATABASE=v8440 GeForce 4 Ti4400 ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (v8440 GeForce 4 Ti4400) + + pci:v000010DEd00000251sv000010DEsd00000251* +- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) + + pci:v000010DEd00000251sv00001462sd00008710* +- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) + + pci:v000010DEd00000252* + ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti] +@@ -22461,10 +22461,10 @@ pci:v000010DEd00000253* + ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] + + pci:v000010DEd00000253sv0000107Dsd00002896* +- ID_MODEL_FROM_DATABASE=WinFast A250 LE TD (Dual VGA/TV-out/DVI) ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (WinFast A250 LE TD (Dual VGA/TV-out/DVI)) + + pci:v000010DEd00000253sv0000147Bsd00008F09* +- ID_MODEL_FROM_DATABASE=Siluro (Dual VGA/TV-out/DVI) ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (Siluro (Dual VGA/TV-out/DVI)) + + pci:v000010DEd00000258* + ID_MODEL_FROM_DATABASE=NV25GL [Quadro4 900 XGL] +@@ -22479,25 +22479,25 @@ pci:v000010DEd00000260* + ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge + + pci:v000010DEd00000260sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Pavilion a1677c) + + pci:v000010DEd00000260sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Presario V6133CL) + + pci:v000010DEd00000260sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd00000260sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (GA-M55plus-S3G) + + pci:v000010DEd00000260sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (K8NGM2 series) + + pci:v000010DEd00000261* + ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge + + pci:v000010DEd00000261sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Winfast 6100K8MB) + + pci:v000010DEd00000262* + ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge +@@ -22509,64 +22509,64 @@ pci:v000010DEd00000264* + ID_MODEL_FROM_DATABASE=MCP51 SMBus + + pci:v000010DEd00000264sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Pavilion a1677c) + + pci:v000010DEd00000264sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Presario V6133CL) + + pci:v000010DEd00000264sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (A8N-VM CSM Mainboard) + + pci:v000010DEd00000264sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Winfast 6100K8MB) + + pci:v000010DEd00000264sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (K8NGM2 series) + + pci:v000010DEd00000265* + ID_MODEL_FROM_DATABASE=MCP51 IDE + + pci:v000010DEd00000265sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (Pavilion a1677c) + + pci:v000010DEd00000265sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (Presario V6133CL) + + pci:v000010DEd00000265sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (A8N-VM CSM Mainboard) + + pci:v000010DEd00000265sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (K8NGM2 series) + + pci:v000010DEd00000265sv0000F05Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (Winfast 6100K8MB) + + pci:v000010DEd00000266* + ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller + + pci:v000010DEd00000266sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) + + pci:v000010DEd00000266sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Presario V6133CL) + + pci:v000010DEd00000266sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd00000266sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) + + pci:v000010DEd00000267* + ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller + + pci:v000010DEd00000267sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) + + pci:v000010DEd00000267sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd00000267sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) + + pci:v000010DEd00000268* + ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller +@@ -22575,16 +22575,16 @@ pci:v000010DEd00000269* + ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller + + pci:v000010DEd00000269sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Pavilion a1677c) + + pci:v000010DEd00000269sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Presario V6133CL) + + pci:v000010DEd00000269sv00001043sd00008141* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd00000269sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (K8NGM2 series) + + pci:v000010DEd0000026A* + ID_MODEL_FROM_DATABASE=MCP51 MCI +@@ -22593,142 +22593,142 @@ pci:v000010DEd0000026B* + ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller + + pci:v000010DEd0000026Bsv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller (Winfast 6100K8MB) + + pci:v000010DEd0000026C* + ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio + + pci:v000010DEd0000026Csv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Pavilion a1677c) + + pci:v000010DEd0000026Csv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V3242AU) + + pci:v000010DEd0000026Csv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V6133CL) + + pci:v000010DEd0000026Csv000010DEsd0000CB84* +- ID_MODEL_FROM_DATABASE=ASUSTeK Computer Inc. A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (ASUSTeK Computer Inc. A8N-VM CSM Mainboard) + + pci:v000010DEd0000026Csv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (K8NGM2 series) + + pci:v000010DEd0000026D* + ID_MODEL_FROM_DATABASE=MCP51 USB Controller + + pci:v000010DEd0000026Dsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) + + pci:v000010DEd0000026Dsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) + + pci:v000010DEd0000026Dsv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd0000026Dsv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) + + pci:v000010DEd0000026Dsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) + + pci:v000010DEd0000026E* + ID_MODEL_FROM_DATABASE=MCP51 USB Controller + + pci:v000010DEd0000026Esv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) + + pci:v000010DEd0000026Esv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) + + pci:v000010DEd0000026Esv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd0000026Esv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) + + pci:v000010DEd0000026Esv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) + + pci:v000010DEd0000026F* + ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge + + pci:v000010DEd0000026Fsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge (Presario V6133CL) + + pci:v000010DEd00000270* + ID_MODEL_FROM_DATABASE=MCP51 Host Bridge + + pci:v000010DEd00000270sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Pavilion a1677c) + + pci:v000010DEd00000270sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Presario V6133CL) + + pci:v000010DEd00000270sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd00000270sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Winfast 6100K8MB) + + pci:v000010DEd00000270sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (GA-M55plus-S3G) + + pci:v000010DEd00000270sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (K8NGM2 series) + + pci:v000010DEd00000271* + ID_MODEL_FROM_DATABASE=MCP51 PMU + + pci:v000010DEd00000271sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V3242AU) + + pci:v000010DEd00000271sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V6133CL) + + pci:v000010DEd00000272* + ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 + + pci:v000010DEd00000272sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Pavilion a1677c) + + pci:v000010DEd00000272sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Winfast 6100K8MB) + + pci:v000010DEd0000027E* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 + + pci:v000010DEd0000027Esv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Pavilion a1677c) + + pci:v000010DEd0000027Esv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Presario V6133CL) + + pci:v000010DEd0000027Esv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (A8N-VM CSM Mainboard) + + pci:v000010DEd0000027Esv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (GA-M55plus-S3G) + + pci:v000010DEd0000027Esv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (K8NGM2 series) + + pci:v000010DEd0000027F* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 + + pci:v000010DEd0000027Fsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Pavilion a1677c) + + pci:v000010DEd0000027Fsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Presario V6133CL) + + pci:v000010DEd0000027Fsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (A8N-VM CSM Mainboard) + + pci:v000010DEd0000027Fsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (GA-M55plus-S3G) + + pci:v000010DEd0000027Fsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (K8NGM2 series) + + pci:v000010DEd00000280* + ID_MODEL_FROM_DATABASE=NV28 [GeForce4 Ti 4800] +@@ -22758,7 +22758,7 @@ pci:v000010DEd00000291* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] + + pci:v000010DEd00000291sv000010DEsd0000042B* +- ID_MODEL_FROM_DATABASE=NX7900GTO-T2D512E [7900 GTO] ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] (NX7900GTO-T2D512E [7900 GTO]) + + pci:v000010DEd00000292* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GS] +@@ -22773,13 +22773,13 @@ pci:v000010DEd00000295* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] + + pci:v000010DEd00000295sv00001043sd00008225* +- ID_MODEL_FROM_DATABASE=GeForce 7950 GT ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (GeForce 7950 GT) + + pci:v000010DEd00000295sv0000107Dsd00002A68* +- ID_MODEL_FROM_DATABASE=WinFast PX7950GT TDH ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (WinFast PX7950GT TDH) + + pci:v000010DEd00000295sv00001462sd00000663* +- ID_MODEL_FROM_DATABASE=NX7950GT-VT2D512EZ-HD ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (NX7950GT-VT2D512EZ-HD) + + pci:v000010DEd00000297* + ID_MODEL_FROM_DATABASE=G71M [GeForce Go 7950 GTX] +@@ -22803,7 +22803,7 @@ pci:v000010DEd0000029D* + ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] + + pci:v000010DEd0000029Dsv00001028sd0000019B* +- ID_MODEL_FROM_DATABASE=G71GLM [Quadro FX 3500M] ++ ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] (G71GLM [Quadro FX 3500M]) + + pci:v000010DEd0000029E* + ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 1500] +@@ -22824,16 +22824,16 @@ pci:v000010DEd000002E0* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] + + pci:v000010DEd000002E0sv000002E0sd00002249* +- ID_MODEL_FROM_DATABASE=GF 7600GT 560M 256MB DDR3 DUAL DVI TV ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GF 7600GT 560M 256MB DDR3 DUAL DVI TV) + + pci:v000010DEd000002E1* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] + + pci:v000010DEd000002E1sv00001682sd0000222B* +- ID_MODEL_FROM_DATABASE=PV-T73K-UAL3 (256MB) ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (PV-T73K-UAL3 (256MB)) + + pci:v000010DEd000002E1sv00001682sd00002247* +- ID_MODEL_FROM_DATABASE=GF 7600GS 512MB DDR2 ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (GF 7600GS 512MB DDR2) + + pci:v000010DEd000002E2* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] +@@ -22845,28 +22845,28 @@ pci:v000010DEd000002E4* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] + + pci:v000010DEd000002E4sv00001682sd00002271* +- ID_MODEL_FROM_DATABASE=PV-T71A-YDF7 (512MB) ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (PV-T71A-YDF7 (512MB)) + + pci:v000010DEd000002F0* + ID_MODEL_FROM_DATABASE=C51 Host Bridge + + pci:v000010DEd000002F0sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) + + pci:v000010DEd000002F0sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) + + pci:v000010DEd000002F0sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd000002F0sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) + + pci:v000010DEd000002F1* + ID_MODEL_FROM_DATABASE=C51 Host Bridge + + pci:v000010DEd000002F1sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) + + pci:v000010DEd000002F2* + ID_MODEL_FROM_DATABASE=C51 Host Bridge +@@ -22890,55 +22890,55 @@ pci:v000010DEd000002F8* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 + + pci:v000010DEd000002F8sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Pavilion a1677c) + + pci:v000010DEd000002F8sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Presario V6133CL) + + pci:v000010DEd000002F8sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002F8sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (GA-M55plus-S3G) + + pci:v000010DEd000002F8sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (K8NGM2 series) + + pci:v000010DEd000002F9* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 + + pci:v000010DEd000002F9sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Pavilion a1677c) + + pci:v000010DEd000002F9sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Presario V6133CL) + + pci:v000010DEd000002F9sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002F9sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (GA-M55plus-S3G) + + pci:v000010DEd000002F9sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (K8NGM2 series) + + pci:v000010DEd000002FA* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 + + pci:v000010DEd000002FAsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Pavilion a1677c) + + pci:v000010DEd000002FAsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Presario V6133CL) + + pci:v000010DEd000002FAsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002FAsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (GA-M55plus-S3G) + + pci:v000010DEd000002FAsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (K8NGM2 series) + + pci:v000010DEd000002FB* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge +@@ -22947,49 +22947,49 @@ pci:v000010DEd000002FC* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge + + pci:v000010DEd000002FCsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) + + pci:v000010DEd000002FD* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge + + pci:v000010DEd000002FDsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) + + pci:v000010DEd000002FE* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 + + pci:v000010DEd000002FEsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Pavilion a1677c) + + pci:v000010DEd000002FEsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Presario V6133CL) + + pci:v000010DEd000002FEsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002FEsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (GA-M55plus-S3G) + + pci:v000010DEd000002FEsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (K8NGM2 series) + + pci:v000010DEd000002FF* + ID_MODEL_FROM_DATABASE=C51 Host Bridge + + pci:v000010DEd000002FFsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) + + pci:v000010DEd000002FFsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) + + pci:v000010DEd000002FFsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd000002FFsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) + + pci:v000010DEd000002FFsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) + + pci:v000010DEd00000300* + ID_MODEL_FROM_DATABASE=NV30 [GeForce FX] +@@ -23016,7 +23016,7 @@ pci:v000010DEd00000314* + ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] + + pci:v000010DEd00000314sv00001043sd0000814A* +- ID_MODEL_FROM_DATABASE=V9560XT/TD ++ ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] (V9560XT/TD) + + pci:v000010DEd00000316* + ID_MODEL_FROM_DATABASE=NV31M +@@ -23043,25 +23043,25 @@ pci:v000010DEd00000322* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] + + pci:v000010DEd00000322sv00001043sd000002FB* +- ID_MODEL_FROM_DATABASE=V9250 Magic ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9250 Magic) + + pci:v000010DEd00000322sv00001043sd00008180* +- ID_MODEL_FROM_DATABASE=V9520-X/TD/128M ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9520-X/TD/128M) + + pci:v000010DEd00000322sv0000107Dsd00002967* +- ID_MODEL_FROM_DATABASE=WinFast A340T 128MB ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (WinFast A340T 128MB) + + pci:v000010DEd00000322sv00001462sd00009110* +- ID_MODEL_FROM_DATABASE=MS-8911 (FX5200-TD128) ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8911 (FX5200-TD128)) + + pci:v000010DEd00000322sv00001462sd00009171* +- ID_MODEL_FROM_DATABASE=MS-8917 (FX5200-T128) ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8917 (FX5200-T128)) + + pci:v000010DEd00000322sv00001462sd00009360* +- ID_MODEL_FROM_DATABASE=MS-8936 (FX5200-T128) ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8936 (FX5200-T128)) + + pci:v000010DEd00000322sv00001682sd00001351* +- ID_MODEL_FROM_DATABASE=GeForce FX 5200 ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (GeForce FX 5200) + + pci:v000010DEd00000323* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200LE] +@@ -23070,13 +23070,13 @@ pci:v000010DEd00000324* + ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] + + pci:v000010DEd00000324sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Inspiron 5160) + + pci:v000010DEd00000324sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=Pavilion ZD7000 laptop ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Pavilion ZD7000 laptop) + + pci:v000010DEd00000324sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (MIM2000) + + pci:v000010DEd00000325* + ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5250] +@@ -23085,10 +23085,10 @@ pci:v000010DEd00000326* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] + + pci:v000010DEd00000326sv00001458sd0000310D* +- ID_MODEL_FROM_DATABASE=GeForce FX 5500 128 MB ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce FX 5500 128 MB) + + pci:v000010DEd00000326sv00001682sd00002034* +- ID_MODEL_FROM_DATABASE=GeForce 5500 256 MB ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce 5500 256 MB) + + pci:v000010DEd00000327* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5100] +@@ -23100,7 +23100,7 @@ pci:v000010DEd00000329* + ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] + + pci:v000010DEd00000329sv000010DEsd00000010* +- ID_MODEL_FROM_DATABASE=Powerbook G4 ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] (Powerbook G4) + + pci:v000010DEd0000032A* + ID_MODEL_FROM_DATABASE=NV34GL [Quadro NVS 280 PCI] +@@ -23124,13 +23124,13 @@ pci:v000010DEd00000330* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] + + pci:v000010DEd00000330sv00001043sd00008137* +- ID_MODEL_FROM_DATABASE=V9950 Ultra / 256 MB ++ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] (V9950 Ultra / 256 MB) + + pci:v000010DEd00000331* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] + + pci:v000010DEd00000331sv00001043sd00008145* +- ID_MODEL_FROM_DATABASE=V9950GE ++ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] (V9950GE) + + pci:v000010DEd00000332* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900XT] +@@ -23142,7 +23142,7 @@ pci:v000010DEd00000334* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] + + pci:v000010DEd00000334sv00001462sd00009373* +- ID_MODEL_FROM_DATABASE=FX5900ZT-VTD128 (MS-8937) ++ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] (FX5900ZT-VTD128 (MS-8937)) + + pci:v000010DEd00000338* + ID_MODEL_FROM_DATABASE=NV35GL [Quadro FX 3000] +@@ -23154,7 +23154,7 @@ pci:v000010DEd00000341* + ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] + + pci:v000010DEd00000341sv00001462sd00009380* +- ID_MODEL_FROM_DATABASE=MS-8938 (FX5700U-TD128) ++ ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] (MS-8938 (FX5700U-TD128)) + + pci:v000010DEd00000342* + ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700] +@@ -23169,7 +23169,7 @@ pci:v000010DEd00000347* + ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] + + pci:v000010DEd00000347sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] (NX9500) + + pci:v000010DEd00000348* + ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] +@@ -23190,13 +23190,13 @@ pci:v000010DEd00000361* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000361sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge ++ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) + + pci:v000010DEd00000362* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000362sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (KN9 series mainboard) + + pci:v000010DEd00000363* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge +@@ -23205,7 +23205,7 @@ pci:v000010DEd00000364* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000364sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge ++ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) + + pci:v000010DEd00000365* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge +@@ -23220,19 +23220,19 @@ pci:v000010DEd00000368* + ID_MODEL_FROM_DATABASE=MCP55 SMBus + + pci:v000010DEd00000368sv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 SMBus ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge M605 MCP55 SMBus) + + pci:v000010DEd00000368sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SMBus ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge R805 MCP55 SMBus) + + pci:v000010DEd00000368sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus (KN9 series mainboard) + + pci:v000010DEd00000369* + ID_MODEL_FROM_DATABASE=MCP55 Memory Controller + + pci:v000010DEd00000369sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 Memory Controller (KN9 series mainboard) + + pci:v000010DEd0000036A* + ID_MODEL_FROM_DATABASE=MCP55 Memory Controller +@@ -23244,31 +23244,31 @@ pci:v000010DEd0000036C* + ID_MODEL_FROM_DATABASE=MCP55 USB Controller + + pci:v000010DEd0000036Csv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) + + pci:v000010DEd0000036Csv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) + + pci:v000010DEd0000036Csv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) + + pci:v000010DEd0000036D* + ID_MODEL_FROM_DATABASE=MCP55 USB Controller + + pci:v000010DEd0000036Dsv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) + + pci:v000010DEd0000036Dsv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) + + pci:v000010DEd0000036Dsv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) + + pci:v000010DEd0000036E* + ID_MODEL_FROM_DATABASE=MCP55 IDE + + pci:v000010DEd0000036Esv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 IDE (KN9 series mainboard) + + pci:v000010DEd00000370* + ID_MODEL_FROM_DATABASE=MCP55 PCI bridge +@@ -23277,7 +23277,7 @@ pci:v000010DEd00000371* + ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio + + pci:v000010DEd00000371sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio (KN9 series mainboard) + + pci:v000010DEd00000372* + ID_MODEL_FROM_DATABASE=MCP55 Ethernet +@@ -23286,7 +23286,7 @@ pci:v000010DEd00000373* + ID_MODEL_FROM_DATABASE=MCP55 Ethernet + + pci:v000010DEd00000373sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 Ethernet (KN9 series mainboard) + + pci:v000010DEd00000374* + ID_MODEL_FROM_DATABASE=MCP55 PCI Express bridge +@@ -23313,10 +23313,10 @@ pci:v000010DEd0000037F* + ID_MODEL_FROM_DATABASE=MCP55 SATA Controller + + pci:v000010DEd0000037Fsv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SATA Controller ++ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (PowerEdge R805 MCP55 SATA Controller) + + pci:v000010DEd0000037Fsv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (KN9 series mainboard) + + pci:v000010DEd0000038B* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7650 GS] +@@ -23328,25 +23328,25 @@ pci:v000010DEd00000391* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] + + pci:v000010DEd00000391sv00001458sd00003427* +- ID_MODEL_FROM_DATABASE=GV-NX76T128D-RH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GV-NX76T128D-RH) + + pci:v000010DEd00000391sv00001462sd00000452* +- ID_MODEL_FROM_DATABASE=NX7600GT-VT2D256E ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (NX7600GT-VT2D256E) + + pci:v000010DEd00000392* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] + + pci:v000010DEd00000392sv00001462sd00000622* +- ID_MODEL_FROM_DATABASE=NX7600GS-T2D256EH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (NX7600GS-T2D256EH) + + pci:v000010DEd00000393* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] + + pci:v000010DEd00000393sv000010DEsd00000412* +- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) + + pci:v000010DEd00000393sv00001462sd00000412* +- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) + + pci:v000010DEd00000394* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 LE] +@@ -23364,7 +23364,7 @@ pci:v000010DEd00000398* + ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] + + pci:v000010DEd00000398sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=Acer 9814 WKMI ++ ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] (Acer 9814 WKMI) + + pci:v000010DEd00000399* + ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600 GT] +@@ -23379,7 +23379,7 @@ pci:v000010DEd0000039C* + ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] + + pci:v000010DEd0000039Csv000010DEsd0000039C* +- ID_MODEL_FROM_DATABASE=Quadro FX 560M ++ ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] (Quadro FX 560M) + + pci:v000010DEd0000039D* + ID_MODEL_FROM_DATABASE=G73 +@@ -23481,7 +23481,7 @@ pci:v000010DEd000003D0* + ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] + + pci:v000010DEd000003D0sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] (Inspiron 531) + + pci:v000010DEd000003D1* + ID_MODEL_FROM_DATABASE=C61 [GeForce 6100 nForce 405] +@@ -23499,22 +23499,22 @@ pci:v000010DEd000003E0* + ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge + + pci:v000010DEd000003E0sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (Inspiron 531) + + pci:v000010DEd000003E0sv00001849sd000003E0* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003E1* + ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge + + pci:v000010DEd000003E1sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (M4N68T series motherboard) + + pci:v000010DEd000003E2* + ID_MODEL_FROM_DATABASE=MCP61 Host Bridge + + pci:v000010DEd000003E2sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 Host Bridge (M4N68T series motherboard) + + pci:v000010DEd000003E3* + ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge +@@ -23535,55 +23535,55 @@ pci:v000010DEd000003E8* + ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge + + pci:v000010DEd000003E8sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) + + pci:v000010DEd000003E8sv00001849sd000003E8* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003E9* + ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge + + pci:v000010DEd000003E9sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) + + pci:v000010DEd000003E9sv00001849sd000003E9* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003EA* + ID_MODEL_FROM_DATABASE=MCP61 Memory Controller + + pci:v000010DEd000003EAsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) + + pci:v000010DEd000003EAsv00001849sd000003EA* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003EB* + ID_MODEL_FROM_DATABASE=MCP61 SMBus + + pci:v000010DEd000003EBsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 SMBus (Inspiron 531) + + pci:v000010DEd000003EBsv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 SMBus (M4N68T series motherboard) + + pci:v000010DEd000003EBsv00001849sd000003EB* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 SMBus (939NF6G-VSTA Board) + + pci:v000010DEd000003EC* + ID_MODEL_FROM_DATABASE=MCP61 IDE + + pci:v000010DEd000003ECsv00001025sd00000392* +- ID_MODEL_FROM_DATABASE=ET1350 ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (ET1350) + + pci:v000010DEd000003ECsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (Inspiron 531) + + pci:v000010DEd000003ECsv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (M4N68T series motherboard) + + pci:v000010DEd000003ECsv00001849sd000003EC* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (939NF6G-VSTA Board) + + pci:v000010DEd000003EE* + ID_MODEL_FROM_DATABASE=MCP61 Ethernet +@@ -23592,61 +23592,61 @@ pci:v000010DEd000003EF* + ID_MODEL_FROM_DATABASE=MCP61 Ethernet + + pci:v000010DEd000003EFsv00001025sd00008000* +- ID_MODEL_FROM_DATABASE=ET1350 ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (ET1350) + + pci:v000010DEd000003EFsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (Inspiron 531) + + pci:v000010DEd000003EFsv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (M4N68T series motherboard) + + pci:v000010DEd000003EFsv00001849sd000003EF* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (939NF6G-VSTA Board) + + pci:v000010DEd000003F0* + ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio + + pci:v000010DEd000003F0sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (Inspiron 531) + + pci:v000010DEd000003F0sv00001043sd00008415* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (M4N68T series motherboard) + + pci:v000010DEd000003F0sv00001849sd00000888* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (939NF6G-VSTA Board) + + pci:v000010DEd000003F1* + ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller + + pci:v000010DEd000003F1sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (Inspiron 531) + + pci:v000010DEd000003F1sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (M4N68T series motherboard) + + pci:v000010DEd000003F1sv00001849sd000003F1* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F2* + ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller + + pci:v000010DEd000003F2sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (Inspiron 531) + + pci:v000010DEd000003F2sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (M4N68T series motherboard) + + pci:v000010DEd000003F2sv00001849sd000003F2* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F3* + ID_MODEL_FROM_DATABASE=MCP61 PCI bridge + + pci:v000010DEd000003F3sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (Inspiron 531) + + pci:v000010DEd000003F3sv00001849sd000003F3* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003F4* + ID_MODEL_FROM_DATABASE=MCP61 SMU +@@ -23655,25 +23655,25 @@ pci:v000010DEd000003F5* + ID_MODEL_FROM_DATABASE=MCP61 Memory Controller + + pci:v000010DEd000003F5sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) + + pci:v000010DEd000003F5sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (M4N68T series motherboard) + + pci:v000010DEd000003F5sv00001849sd000003EB* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F6* + ID_MODEL_FROM_DATABASE=MCP61 SATA Controller + + pci:v000010DEd000003F6sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (Inspiron 531) + + pci:v000010DEd000003F6sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (M4N68T series motherboard) + + pci:v000010DEd000003F6sv00001849sd000003F6* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F7* + ID_MODEL_FROM_DATABASE=MCP61 SATA Controller +@@ -23682,7 +23682,7 @@ pci:v000010DEd00000400* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] + + pci:v000010DEd00000400sv00001043sd00008241* +- ID_MODEL_FROM_DATABASE=EN8600GTS ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] (EN8600GTS) + + pci:v000010DEd00000401* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] +@@ -23691,10 +23691,10 @@ pci:v000010DEd00000402* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] + + pci:v000010DEd00000402sv00001458sd00003455* +- ID_MODEL_FROM_DATABASE=GV-NX86T512H ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (GV-NX86T512H) + + pci:v000010DEd00000402sv00001462sd00000910* +- ID_MODEL_FROM_DATABASE=NX8600GT-T2D256EZ ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (NX8600GT-T2D256EZ) + + pci:v000010DEd00000403* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GS] +@@ -23703,7 +23703,7 @@ pci:v000010DEd00000404* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] + + pci:v000010DEd00000404sv00001462sd00001230* +- ID_MODEL_FROM_DATABASE=NX8400GS-TD256E ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] (NX8400GS-TD256E) + + pci:v000010DEd00000405* + ID_MODEL_FROM_DATABASE=G84M [GeForce 9500M GS] +@@ -23730,7 +23730,7 @@ pci:v000010DEd0000040C* + ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] + + pci:v000010DEd0000040Csv000017AAsd000020D9* +- ID_MODEL_FROM_DATABASE=ThinkPad T61p ++ ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] (ThinkPad T61p) + + pci:v000010DEd0000040D* + ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 1600M] +@@ -23754,7 +23754,7 @@ pci:v000010DEd00000421* + ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] + + pci:v000010DEd00000421sv00001462sd00000960* +- ID_MODEL_FROM_DATABASE=NX8500GT-TD512EH/M2 ++ ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] (NX8500GT-TD512EH/M2) + + pci:v000010DEd00000422* + ID_MODEL_FROM_DATABASE=G86 [GeForce 8400 GS] +@@ -23769,7 +23769,7 @@ pci:v000010DEd00000425* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] + + pci:v000010DEd00000425sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] (Aspire 5920G) + + pci:v000010DEd00000426* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GT] +@@ -23778,10 +23778,10 @@ pci:v000010DEd00000427* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] + + pci:v000010DEd00000427sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv6700) + + pci:v000010DEd00000427sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000428* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M G] +@@ -23790,7 +23790,7 @@ pci:v000010DEd00000429* + ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] + + pci:v000010DEd00000429sv000017AAsd000020D8* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] (ThinkPad T61) + + pci:v000010DEd0000042A* + ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 130M] +@@ -23820,7 +23820,7 @@ pci:v000010DEd00000442* + ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge + + pci:v000010DEd00000442sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000443* + ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge +@@ -23829,7 +23829,7 @@ pci:v000010DEd00000444* + ID_MODEL_FROM_DATABASE=MCP65 Memory Controller + + pci:v000010DEd00000444sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 Memory Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000445* + ID_MODEL_FROM_DATABASE=MCP65 Memory Controller +@@ -23838,31 +23838,31 @@ pci:v000010DEd00000446* + ID_MODEL_FROM_DATABASE=MCP65 SMBus + + pci:v000010DEd00000446sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 SMBus (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000447* + ID_MODEL_FROM_DATABASE=MCP65 SMU + + pci:v000010DEd00000447sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 SMU (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000448* + ID_MODEL_FROM_DATABASE=MCP65 IDE + + pci:v000010DEd00000448sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 IDE (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000449* + ID_MODEL_FROM_DATABASE=MCP65 PCI bridge + + pci:v000010DEd00000449sv000010DEsd0000CB84* +- ID_MODEL_FROM_DATABASE=HP Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 PCI bridge (HP Pavilion dv9668eg Laptop) + + pci:v000010DEd0000044A* + ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio + + pci:v000010DEd0000044Asv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio (Pavilion dv9668eg Laptop) + + pci:v000010DEd0000044B* + ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio +@@ -23883,7 +23883,7 @@ pci:v000010DEd00000450* + ID_MODEL_FROM_DATABASE=MCP65 Ethernet + + pci:v000010DEd00000450sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 Ethernet (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000451* + ID_MODEL_FROM_DATABASE=MCP65 Ethernet +@@ -23898,13 +23898,13 @@ pci:v000010DEd00000454* + ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller + + pci:v000010DEd00000454sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000455* + ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller + + pci:v000010DEd00000455sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000456* + ID_MODEL_FROM_DATABASE=MCP65 USB Controller +@@ -23943,7 +23943,7 @@ pci:v000010DEd0000045D* + ID_MODEL_FROM_DATABASE=MCP65 SATA Controller + + pci:v000010DEd0000045Dsv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 SATA Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd0000045E* + ID_MODEL_FROM_DATABASE=MCP65 SATA Controller +@@ -23964,7 +23964,7 @@ pci:v000010DEd0000053B* + ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] + + pci:v000010DEd0000053Bsv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] (M2N68-AM Motherbord) + + pci:v000010DEd0000053E* + ID_MODEL_FROM_DATABASE=C68 [GeForce 7025 / nForce 630a] +@@ -23976,7 +23976,7 @@ pci:v000010DEd00000542* + ID_MODEL_FROM_DATABASE=MCP67 SMBus + + pci:v000010DEd00000542sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=MCP67 SMBus (M2N68-AM Motherbord) + + pci:v000010DEd00000543* + ID_MODEL_FROM_DATABASE=MCP67 Co-processor +@@ -23985,25 +23985,25 @@ pci:v000010DEd00000547* + ID_MODEL_FROM_DATABASE=MCP67 Memory Controller + + pci:v000010DEd00000547sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (M2N68-AM Motherbord) + + pci:v000010DEd00000547sv00001849sd00000547* +- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready ++ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (ALiveNF7G-HDready) + + pci:v000010DEd00000548* + ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge + + pci:v000010DEd00000548sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge (M2N68-AM Motherboard) + + pci:v000010DEd0000054C* + ID_MODEL_FROM_DATABASE=MCP67 Ethernet + + pci:v000010DEd0000054Csv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (M2N68-AM Motherbord) + + pci:v000010DEd0000054Csv00001849sd0000054C* +- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready, MCP67 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (ALiveNF7G-HDready, MCP67 Gigabit Ethernet) + + pci:v000010DEd0000054D* + ID_MODEL_FROM_DATABASE=MCP67 Ethernet +@@ -24018,25 +24018,25 @@ pci:v000010DEd00000550* + ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller + + pci:v000010DEd00000550sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000554* + ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller + + pci:v000010DEd00000554sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000555* + ID_MODEL_FROM_DATABASE=MCP67 SATA Controller + + pci:v000010DEd00000555sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 SATA Controller (M2N68-AM Motherboard) + + pci:v000010DEd0000055C* + ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio + + pci:v000010DEd0000055Csv00001043sd00008290* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio (M2N68-AM Motherboard) + + pci:v000010DEd0000055D* + ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio +@@ -24045,19 +24045,19 @@ pci:v000010DEd0000055E* + ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller + + pci:v000010DEd0000055Esv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller (M2N68-AM Motherboard) + + pci:v000010DEd0000055F* + ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller + + pci:v000010DEd0000055Fsv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000560* + ID_MODEL_FROM_DATABASE=MCP67 IDE Controller + + pci:v000010DEd00000560sv0000F043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 IDE Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000561* + ID_MODEL_FROM_DATABASE=MCP67 PCI Bridge +@@ -24066,7 +24066,7 @@ pci:v000010DEd00000562* + ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge + + pci:v000010DEd00000562sv00001849sd00000562* +- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready ++ ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge (ALiveNF7G-HDready) + + pci:v000010DEd00000563* + ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge +@@ -24075,64 +24075,64 @@ pci:v000010DEd00000568* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller + + pci:v000010DEd00000568sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) + + pci:v000010DEd00000568sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) + + pci:v000010DEd00000568sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) + + pci:v000010DEd00000568sv00001849sd00000568* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) + + pci:v000010DEd00000569* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge + + pci:v000010DEd00000569sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) + + pci:v000010DEd00000569sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) + + pci:v000010DEd00000569sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) + + pci:v000010DEd00000569sv00001849sd00000569* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) + + pci:v000010DEd0000056A* + ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) + + pci:v000010DEd0000056Asv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) (MCP73PVT-SM) + + pci:v000010DEd0000056C* + ID_MODEL_FROM_DATABASE=MCP73 IDE + + pci:v000010DEd0000056Csv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 IDE (MCP73PVT-SM) + + pci:v000010DEd0000056Csv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 IDE (JW-IN7150-HD) + + pci:v000010DEd0000056D* + ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge + + pci:v000010DEd0000056Dsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) + + pci:v000010DEd0000056E* + ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge + + pci:v000010DEd0000056Esv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) + + pci:v000010DEd0000056F* + ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge + + pci:v000010DEd0000056Fsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) + + pci:v000010DEd000005B1* + ID_MODEL_FROM_DATABASE=NF200 PCIe 2.0 switch +@@ -24156,7 +24156,7 @@ pci:v000010DEd000005E3* + ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] + + pci:v000010DEd000005E3sv00001682sd00002490* +- ID_MODEL_FROM_DATABASE=GX-285N-ZDF ++ ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] (GX-285N-ZDF) + + pci:v000010DEd000005E6* + ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 275] +@@ -24165,19 +24165,19 @@ pci:v000010DEd000005E7* + ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] + + pci:v000010DEd000005E7sv000010DEsd00000595* +- ID_MODEL_FROM_DATABASE=Tesla T10 Processor ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) + + pci:v000010DEd000005E7sv000010DEsd0000068F* +- ID_MODEL_FROM_DATABASE=Tesla T10 Processor ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) + + pci:v000010DEd000005E7sv000010DEsd00000697* +- ID_MODEL_FROM_DATABASE=Tesla M1060 ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) + + pci:v000010DEd000005E7sv000010DEsd00000714* +- ID_MODEL_FROM_DATABASE=Tesla M1060 ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) + + pci:v000010DEd000005E7sv000010DEsd00000743* +- ID_MODEL_FROM_DATABASE=Tesla M1060 ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) + + pci:v000010DEd000005EA* + ID_MODEL_FROM_DATABASE=GT200 [GeForce GTX 260] +@@ -24240,7 +24240,7 @@ pci:v000010DEd00000609* + ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] + + pci:v000010DEd00000609sv0000106Bsd000000A7* +- ID_MODEL_FROM_DATABASE=GeForce 8800 GS ++ ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] (GeForce 8800 GS) + + pci:v000010DEd0000060A* + ID_MODEL_FROM_DATABASE=G92M [GeForce GTX 280M] +@@ -24261,16 +24261,16 @@ pci:v000010DEd00000610* + ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] + + pci:v000010DEd00000610sv00001682sd00002385* +- ID_MODEL_FROM_DATABASE=GeForce 9600 GSO 768mb ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] (GeForce 9600 GSO 768mb) + + pci:v000010DEd00000611* + ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] + + pci:v000010DEd00000611sv0000107Dsd00002AB0* +- ID_MODEL_FROM_DATABASE=Winfast PX8800 GT PCI-E ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (Winfast PX8800 GT PCI-E) + + pci:v000010DEd00000611sv000019DAsd00001040* +- ID_MODEL_FROM_DATABASE=ZT-88TES2P-FSP ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (ZT-88TES2P-FSP) + + pci:v000010DEd00000612* + ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GTX / 9800 GTX+] +@@ -24282,22 +24282,22 @@ pci:v000010DEd00000614* + ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] + + pci:v000010DEd00000614sv0000107Dsd00002AB3* +- ID_MODEL_FROM_DATABASE=WinFast PX9800 GT (S-Fanpipe) ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] (WinFast PX9800 GT (S-Fanpipe)) + + pci:v000010DEd00000615* + ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] + + pci:v000010DEd00000615sv00003842sd00001150* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1150-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1150-TR) + + pci:v000010DEd00000615sv00003842sd00001151* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1151-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1151-TR) + + pci:v000010DEd00000615sv00003842sd00001155* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1155-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1155-TR) + + pci:v000010DEd00000615sv00003842sd00001156* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1156-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1156-TR) + + pci:v000010DEd00000617* + ID_MODEL_FROM_DATABASE=G92M [GeForce 9800M GTX] +@@ -24336,10 +24336,10 @@ pci:v000010DEd00000622* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] + + pci:v000010DEd00000622sv0000107Dsd00002AC1* +- ID_MODEL_FROM_DATABASE=WinFast PX9600GT 1024MB ++ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (WinFast PX9600GT 1024MB) + + pci:v000010DEd00000622sv00001458sd00003481* +- ID_MODEL_FROM_DATABASE=GV-NX96T512HP ++ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GV-NX96T512HP) + + pci:v000010DEd00000623* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GS] +@@ -24375,7 +24375,7 @@ pci:v000010DEd0000062E* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] + + pci:v000010DEd0000062Esv0000106Bsd00000605* +- ID_MODEL_FROM_DATABASE=GeForce GT 130 ++ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GeForce GT 130) + + pci:v000010DEd0000062F* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9800 S] +@@ -24435,7 +24435,7 @@ pci:v000010DEd00000649* + ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] + + pci:v000010DEd00000649sv00001043sd0000202D* +- ID_MODEL_FROM_DATABASE=GeForce GT 220M ++ ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] (GeForce GT 220M) + + pci:v000010DEd0000064A* + ID_MODEL_FROM_DATABASE=G96M [GeForce 9700M GT] +@@ -24459,7 +24459,7 @@ pci:v000010DEd00000652* + ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] + + pci:v000010DEd00000652sv0000152Dsd00000850* +- ID_MODEL_FROM_DATABASE=GeForce GT 240M LE ++ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] (GeForce GT 240M LE) + + pci:v000010DEd00000653* + ID_MODEL_FROM_DATABASE=G96M [GeForce GT 120M] +@@ -24468,10 +24468,10 @@ pci:v000010DEd00000654* + ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] + + pci:v000010DEd00000654sv00001043sd000014A2* +- ID_MODEL_FROM_DATABASE=GeForce GT 320M ++ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) + + pci:v000010DEd00000654sv00001043sd000014D2* +- ID_MODEL_FROM_DATABASE=GeForce GT 320M ++ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) + + pci:v000010DEd00000655* + ID_MODEL_FROM_DATABASE=G96 [GeForce GT 120] +@@ -24519,28 +24519,28 @@ pci:v000010DEd000006D1* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] + + pci:v000010DEd000006D1sv000010DEsd00000771* +- ID_MODEL_FROM_DATABASE=Tesla C2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2050) + + pci:v000010DEd000006D1sv000010DEsd00000772* +- ID_MODEL_FROM_DATABASE=Tesla C2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2070) + + pci:v000010DEd000006D2* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] + + pci:v000010DEd000006D2sv000010DEsd00000774* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D2sv000010DEsd00000830* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D2sv000010DEsd00000842* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D2sv000010DEsd0000088F* +- ID_MODEL_FROM_DATABASE=Tesla X2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla X2070) + + pci:v000010DEd000006D2sv000010DEsd00000908* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D8* + ID_MODEL_FROM_DATABASE=GF100GL [Quadro 6000] +@@ -24561,37 +24561,37 @@ pci:v000010DEd000006DE* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] + + pci:v000010DEd000006DEsv000010DEsd00000773* +- ID_MODEL_FROM_DATABASE=Tesla S2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla S2050) + + pci:v000010DEd000006DEsv000010DEsd0000082F* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000840* +- ID_MODEL_FROM_DATABASE=Tesla X2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla X2070) + + pci:v000010DEd000006DEsv000010DEsd00000842* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000846* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000866* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000907* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd0000091E* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DF* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] + + pci:v000010DEd000006DFsv000010DEsd0000084D* +- ID_MODEL_FROM_DATABASE=Tesla M2070-Q ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) + + pci:v000010DEd000006DFsv000010DEsd0000087F* +- ID_MODEL_FROM_DATABASE=Tesla M2070-Q ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) + + pci:v000010DEd000006E0* + ID_MODEL_FROM_DATABASE=G98 [GeForce 9300 GE] +@@ -24609,7 +24609,7 @@ pci:v000010DEd000006E4* + ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] + + pci:v000010DEd000006E4sv00001458sd00003475* +- ID_MODEL_FROM_DATABASE=GV-NX84S256HE [GeForce 8400 GS] ++ ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] (GV-NX84S256HE [GeForce 8400 GS]) + + pci:v000010DEd000006E5* + ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] +@@ -24624,13 +24624,13 @@ pci:v000010DEd000006E8* + ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] + + pci:v000010DEd000006E8sv0000103Csd0000360B* +- ID_MODEL_FROM_DATABASE=GeForce 9200M GE ++ ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] (GeForce 9200M GE) + + pci:v000010DEd000006E9* + ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] + + pci:v000010DEd000006E9sv00001043sd000019B2* +- ID_MODEL_FROM_DATABASE=U6V laptop ++ ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] (U6V laptop) + + pci:v000010DEd000006EA* + ID_MODEL_FROM_DATABASE=G98M [Quadro NVS 150M] +@@ -24672,139 +24672,139 @@ pci:v000010DEd000006FF* + ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] + + pci:v000010DEd000006FFsv000010DEsd00000711* +- ID_MODEL_FROM_DATABASE=HICx8 + Graphics ++ ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] (HICx8 + Graphics) + + pci:v000010DEd00000751* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller + + pci:v000010DEd00000751sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) + + pci:v000010DEd00000751sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) + + pci:v000010DEd00000751sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) + + pci:v000010DEd00000751sv00001849sd00000751* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) + + pci:v000010DEd00000752* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus + + pci:v000010DEd00000752sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (Pavilion p6310f) + + pci:v000010DEd00000752sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (M3N72-D) + + pci:v000010DEd00000752sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K9N2GM-FIH) + + pci:v000010DEd00000752sv00001849sd00000752* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 SMBus ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K10N78FullHD-hSLI R3.0 SMBus) + + pci:v000010DEd00000753* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor + + pci:v000010DEd00000753sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (Pavilion p6310f) + + pci:v000010DEd00000753sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (M3N72-D) + + pci:v000010DEd00000753sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K9N2GM-FIH) + + pci:v000010DEd00000753sv00001849sd00000753* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Co-Processor ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K10N78FullHD-hSLI R3.0 Co-Processor) + + pci:v000010DEd00000754* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller + + pci:v000010DEd00000754sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) + + pci:v000010DEd00000754sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) + + pci:v000010DEd00000754sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) + + pci:v000010DEd00000754sv00001849sd00000754* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) + + pci:v000010DEd00000759* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE + + pci:v000010DEd00000759sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (M3N72-D) + + pci:v000010DEd00000759sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K9N2GM-FIH) + + pci:v000010DEd00000759sv00001849sd00000759* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K10N78FullHD-hSLI R3.0 IDE) + + pci:v000010DEd0000075A* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge + + pci:v000010DEd0000075Asv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) + + pci:v000010DEd0000075Asv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) + + pci:v000010DEd0000075Asv00001849sd0000075A* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) + + pci:v000010DEd0000075B* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge + + pci:v000010DEd0000075Bsv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) + + pci:v000010DEd0000075Bsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) + + pci:v000010DEd0000075Bsv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) + + pci:v000010DEd0000075Bsv00001849sd0000075B* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) + + pci:v000010DEd0000075C* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge + + pci:v000010DEd0000075Csv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (Pavilion p6310f) + + pci:v000010DEd0000075Csv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K9N2GM-FIH) + + pci:v000010DEd0000075Csv00001849sd0000075C* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 LPC Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K10N78FullHD-hSLI R3.0 LPC Bridge) + + pci:v000010DEd0000075D* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge + + pci:v000010DEd0000075Dsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (M3N72-D) + + pci:v000010DEd00000760* + ID_MODEL_FROM_DATABASE=MCP77 Ethernet + + pci:v000010DEd00000760sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (Pavilion p6310f) + + pci:v000010DEd00000760sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (M3N72-D) + + pci:v000010DEd00000760sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K9N2GM-FIH) + + pci:v000010DEd00000760sv00001849sd00000760* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Ethernet ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K10N78FullHD-hSLI R3.0 Ethernet) + + pci:v000010DEd00000761* + ID_MODEL_FROM_DATABASE=MCP77 Ethernet +@@ -24819,118 +24819,118 @@ pci:v000010DEd00000774* + ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio + + pci:v000010DEd00000774sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (Pavilion p6310f) + + pci:v000010DEd00000774sv00001043sd000082FE* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (M3N72-D) + + pci:v000010DEd00000774sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K9N2GM-FIH) + + pci:v000010DEd00000774sv00001849sd00003662* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 High Definition Audio ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K10N78FullHD-hSLI R3.0 High Definition Audio) + + pci:v000010DEd00000778* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge + + pci:v000010DEd00000778sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) + + pci:v000010DEd00000778sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) + + pci:v000010DEd00000778sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) + + pci:v000010DEd00000778sv00001849sd00000778* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) + + pci:v000010DEd0000077A* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge + + pci:v000010DEd0000077Asv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) + + pci:v000010DEd0000077Asv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) + + pci:v000010DEd0000077Asv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K9N2GM-FIH) + + pci:v000010DEd0000077Asv00001849sd0000077A* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) + + pci:v000010DEd0000077B* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller + + pci:v000010DEd0000077Bsv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Bsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) + + pci:v000010DEd0000077Bsv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Bsv00001849sd0000077B* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) + + pci:v000010DEd0000077C* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller + + pci:v000010DEd0000077Csv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Csv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) + + pci:v000010DEd0000077Csv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Csv00001849sd0000077C* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) + + pci:v000010DEd0000077D* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller + + pci:v000010DEd0000077Dsv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Dsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) + + pci:v000010DEd0000077Dsv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Dsv00001849sd0000077D* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) + + pci:v000010DEd0000077E* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller + + pci:v000010DEd0000077Esv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Esv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) + + pci:v000010DEd0000077Esv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Esv00001849sd0000077E* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) + + pci:v000010DEd000007C0* + ID_MODEL_FROM_DATABASE=MCP73 Host Bridge + + pci:v000010DEd000007C0sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (JW-IN7150-HD) + + pci:v000010DEd000007C1* + ID_MODEL_FROM_DATABASE=MCP73 Host Bridge + + pci:v000010DEd000007C1sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (MCP73PVT-SM) + + pci:v000010DEd000007C2* + ID_MODEL_FROM_DATABASE=MCP73 Host Bridge +@@ -24942,124 +24942,124 @@ pci:v000010DEd000007C8* + ID_MODEL_FROM_DATABASE=MCP73 Memory Controller + + pci:v000010DEd000007C8sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) + + pci:v000010DEd000007C8sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) + + pci:v000010DEd000007CB* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CBsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CBsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007CD* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CDsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CDsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007CE* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CEsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CEsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007CF* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CFsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CFsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D0* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D0sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D0sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D1* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D1sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D1sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D2* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D2sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D2sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D3* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D3sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D3sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D6* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D6sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D6sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D7* + ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge + + pci:v000010DEd000007D7sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (MCP73PVT-SM) + + pci:v000010DEd000007D7sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (JW-IN7150-HD) + + pci:v000010DEd000007D8* + ID_MODEL_FROM_DATABASE=MCP73 SMBus + + pci:v000010DEd000007D8sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 SMBus (MCP73PVT-SM) + + pci:v000010DEd000007D8sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 SMBus (JW-IN7150-HD) + + pci:v000010DEd000007D9* + ID_MODEL_FROM_DATABASE=MCP73 Memory Controller + + pci:v000010DEd000007D9sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) + + pci:v000010DEd000007D9sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) + + pci:v000010DEd000007DA* + ID_MODEL_FROM_DATABASE=MCP73 Co-processor + + pci:v000010DEd000007DAsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Co-processor (JW-IN7150-HD) + + pci:v000010DEd000007DC* + ID_MODEL_FROM_DATABASE=MCP73 Ethernet +@@ -25077,13 +25077,13 @@ pci:v000010DEd000007E0* + ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] + + pci:v000010DEd000007E0sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] (JW-IN7150-HD) + + pci:v000010DEd000007E1* + ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] + + pci:v000010DEd000007E1sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] (MCP73PVT-SM) + + pci:v000010DEd000007E2* + ID_MODEL_FROM_DATABASE=C73 [GeForce 7050 / nForce 630i] +@@ -25101,7 +25101,7 @@ pci:v000010DEd000007F4* + ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA + + pci:v000010DEd000007F4sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA (MCP73PVT-SM) + + pci:v000010DEd000007F8* + ID_MODEL_FROM_DATABASE=MCP73 SATA RAID Controller +@@ -25110,7 +25110,7 @@ pci:v000010DEd000007FC* + ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio + + pci:v000010DEd000007FCsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio (MCP73PVT-SM) + + pci:v000010DEd000007FCsv000010DEsd000007FC* + ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio +@@ -25119,10 +25119,10 @@ pci:v000010DEd000007FE* + ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB + + pci:v000010DEd000007FEsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (MCP73PVT-SM) + + pci:v000010DEd000007FEsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (JW-IN7150-HD) + + pci:v000010DEd00000840* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8200M] +@@ -25140,7 +25140,7 @@ pci:v000010DEd00000847* + ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] + + pci:v000010DEd00000847sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] (Pavilion p6310f) + + pci:v000010DEd00000848* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8300] +@@ -25149,10 +25149,10 @@ pci:v000010DEd00000849* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] + + pci:v000010DEd00000849sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K9N2GM-FIH) + + pci:v000010DEd00000849sv00001849sd00000849* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 GeForce 8200 ++ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K10N78FullHD-hSLI R3.0 GeForce 8200) + + pci:v000010DEd0000084A* + ID_MODEL_FROM_DATABASE=C77 [nForce 730a] +@@ -25167,7 +25167,7 @@ pci:v000010DEd0000084D* + ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] + + pci:v000010DEd0000084Dsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D mGPU ++ ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] (M3N72-D mGPU) + + pci:v000010DEd0000084F* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8100 / nForce 720a] +@@ -25185,7 +25185,7 @@ pci:v000010DEd00000863* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] + + pci:v000010DEd00000863sv0000106Bsd000000AA* +- ID_MODEL_FROM_DATABASE=MacBook5,1 ++ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] (MacBook5,1) + + pci:v000010DEd00000864* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9300] +@@ -25197,13 +25197,13 @@ pci:v000010DEd00000866* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] + + pci:v000010DEd00000866sv0000106Bsd000000B1* +- ID_MODEL_FROM_DATABASE=GeForce 9400M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] (GeForce 9400M) + + pci:v000010DEd00000867* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] + + pci:v000010DEd00000867sv0000106Bsd000000AD* +- ID_MODEL_FROM_DATABASE=iMac 9,1 ++ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] (iMac 9,1) + + pci:v000010DEd00000868* + ID_MODEL_FROM_DATABASE=C79 [nForce 760i SLI] +@@ -25236,28 +25236,28 @@ pci:v000010DEd00000872* + ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] + + pci:v000010DEd00000872sv00001043sd000019B4* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000872sv00001043sd00001AA2* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000872sv00001043sd00001C02* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000872sv00001043sd00001C42* +- ID_MODEL_FROM_DATABASE=GeForce G205M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) + + pci:v000010DEd00000873* + ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] + + pci:v000010DEd00000873sv00001043sd000019B4* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000873sv00001043sd00001C12* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000873sv00001043sd00001C52* +- ID_MODEL_FROM_DATABASE=GeForce G205M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) + + pci:v000010DEd00000874* + ID_MODEL_FROM_DATABASE=C79 [ION] +@@ -25272,7 +25272,7 @@ pci:v000010DEd0000087D* + ID_MODEL_FROM_DATABASE=ION VGA + + pci:v000010DEd0000087Dsv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=ION VGA (IONITX-F-E) + + pci:v000010DEd0000087E* + ID_MODEL_FROM_DATABASE=ION LE VGA +@@ -25299,7 +25299,7 @@ pci:v000010DEd00000A20* + ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] + + pci:v000010DEd00000A20sv00001043sd00008311* +- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 ++ ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] (ENGT220/DI/1GD3(LP)/V2) + + pci:v000010DEd00000A21* + ID_MODEL_FROM_DATABASE=GT216M [GeForce GT 330M] +@@ -25368,7 +25368,7 @@ pci:v000010DEd00000A65* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] + + pci:v000010DEd00000A65sv00001043sd00008334* +- ID_MODEL_FROM_DATABASE=EN210 SILENT ++ ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] (EN210 SILENT) + + pci:v000010DEd00000A66* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 310] +@@ -25389,10 +25389,10 @@ pci:v000010DEd00000A6C* + ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] + + pci:v000010DEd00000A6Csv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (Latitude E6510) + + pci:v000010DEd00000A6Csv000017AAsd00002142* +- ID_MODEL_FROM_DATABASE=ThinkPad T410 ++ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (ThinkPad T410) + + pci:v000010DEd00000A6E* + ID_MODEL_FROM_DATABASE=GT218M [GeForce 305M] +@@ -25416,7 +25416,7 @@ pci:v000010DEd00000A74* + ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] + + pci:v000010DEd00000A74sv00001B0Asd0000903A* +- ID_MODEL_FROM_DATABASE=GeForce G210 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] (GeForce G210) + + pci:v000010DEd00000A75* + ID_MODEL_FROM_DATABASE=GT218M [GeForce 310M] +@@ -25431,127 +25431,127 @@ pci:v000010DEd00000A7A* + ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] + + pci:v000010DEd00000A7Asv0000104Dsd0000907E* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC50* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC61* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC71* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC90* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCC0* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCD0* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCE2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCF2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD16* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD40* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD50* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD52* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD61* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD71* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD92* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD96* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FDD0* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FDD2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FDFE* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C0A2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C0B2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C581* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C587* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C588* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C597* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C606* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001462sd0000AA51* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AA58* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AC71* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AC81* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001462sd0000AC82* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AE33* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001642sd00003980* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv000017AAsd00003950* +- ID_MODEL_FROM_DATABASE=GeForce 405M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) + + pci:v000010DEd00000A7Asv000017AAsd0000397D* +- ID_MODEL_FROM_DATABASE=GeForce 405M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) + + pci:v000010DEd00000A7Asv00001B0Asd00002091* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001B0Asd000090B4* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001BFDsd00000003* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001BFDsd00008006* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001BFDsd00008007* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7B* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 505] +@@ -25593,64 +25593,64 @@ pci:v000010DEd00000A98* + ID_MODEL_FROM_DATABASE=MCP79 Memory Controller + + pci:v000010DEd00000A98sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (iMac 9,1) + + pci:v000010DEd00000AA0* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AA0sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AA2* + ID_MODEL_FROM_DATABASE=MCP79 SMBus + + pci:v000010DEd00000AA2sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 SMBus (Apple iMac 9,1) + + pci:v000010DEd00000AA2sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 SMBus (IONITX-F-E) + + pci:v000010DEd00000AA3* + ID_MODEL_FROM_DATABASE=MCP79 Co-processor + + pci:v000010DEd00000AA3sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (Apple iMac 9,1) + + pci:v000010DEd00000AA3sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (IONITX-F-E) + + pci:v000010DEd00000AA4* + ID_MODEL_FROM_DATABASE=MCP79 Memory Controller + + pci:v000010DEd00000AA4sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (IONITX-F-E) + + pci:v000010DEd00000AA5* + ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller + + pci:v000010DEd00000AA5sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA5sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) + + pci:v000010DEd00000AA6* + ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller + + pci:v000010DEd00000AA6sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA6sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) + + pci:v000010DEd00000AA7* + ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller + + pci:v000010DEd00000AA7sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA7sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) + + pci:v000010DEd00000AA8* + ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller +@@ -25659,10 +25659,10 @@ pci:v000010DEd00000AA9* + ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller + + pci:v000010DEd00000AA9sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA9sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) + + pci:v000010DEd00000AAA* + ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller +@@ -25671,7 +25671,7 @@ pci:v000010DEd00000AAB* + ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge + + pci:v000010DEd00000AABsv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AAC* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge +@@ -25680,13 +25680,13 @@ pci:v000010DEd00000AAD* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge + + pci:v000010DEd00000AADsv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (IONITX-F-E) + + pci:v000010DEd00000AAE* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge + + pci:v000010DEd00000AAEsv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AAF* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge +@@ -25695,10 +25695,10 @@ pci:v000010DEd00000AB0* + ID_MODEL_FROM_DATABASE=MCP79 Ethernet + + pci:v000010DEd00000AB0sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (Apple iMac 9,1) + + pci:v000010DEd00000AB0sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (IONITX-F-E) + + pci:v000010DEd00000AB1* + ID_MODEL_FROM_DATABASE=MCP79 Ethernet +@@ -25713,7 +25713,7 @@ pci:v000010DEd00000AB4* + ID_MODEL_FROM_DATABASE=MCP79 SATA Controller + + pci:v000010DEd00000AB4sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 SATA Controller (IONITX-F-E) + + pci:v000010DEd00000AB5* + ID_MODEL_FROM_DATABASE=MCP79 SATA Controller +@@ -25731,7 +25731,7 @@ pci:v000010DEd00000AB9* + ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller + + pci:v000010DEd00000AB9sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller (Apple iMac 9,1) + + pci:v000010DEd00000ABA* + ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller +@@ -25755,7 +25755,7 @@ pci:v000010DEd00000AC0* + ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio + + pci:v000010DEd00000AC0sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio (Apple iMac 9,1) + + pci:v000010DEd00000AC1* + ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio +@@ -25770,7 +25770,7 @@ pci:v000010DEd00000AC4* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AC4sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AC5* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge +@@ -25779,13 +25779,13 @@ pci:v000010DEd00000AC6* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AC6sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AC7* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AC7sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AC8* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge +@@ -25794,22 +25794,22 @@ pci:v000010DEd00000AD0* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) + + pci:v000010DEd00000AD0sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K9N2GM-FIH) + + pci:v000010DEd00000AD0sv00001849sd00000AD0* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K10N78FullHD-hSLI R3.0 IDE) + + pci:v000010DEd00000AD4* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller + + pci:v000010DEd00000AD4sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (Pavilion p6310f) + + pci:v000010DEd00000AD4sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (M3N72-D) + + pci:v000010DEd00000AD4sv00001849sd00000AD4* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 AHCI Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (K10N78FullHD-hSLI R3.0 AHCI Controller) + + pci:v000010DEd00000AD8* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (RAID mode) +@@ -25818,16 +25818,16 @@ pci:v000010DEd00000BE2* + ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller + + pci:v000010DEd00000BE2sv00001043sd00008311* +- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 ++ ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller (ENGT220/DI/1GD3(LP)/V2) + + pci:v000010DEd00000BE3* + ID_MODEL_FROM_DATABASE=High Definition Audio Controller + + pci:v000010DEd00000BE3sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (Latitude E6510) + + pci:v000010DEd00000BE3sv000010DEsd0000066D* +- ID_MODEL_FROM_DATABASE=G98 [GeForce 8400GS] ++ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (G98 [GeForce 8400GS]) + + pci:v000010DEd00000BE4* + ID_MODEL_FROM_DATABASE=High Definition Audio Controller +@@ -25839,22 +25839,22 @@ pci:v000010DEd00000BE9* + ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller + + pci:v000010DEd00000BE9sv00001558sd00008687* +- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU ++ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (CLEVO/KAPOK W860CU) + + pci:v000010DEd00000BE9sv00003842sd00001452* +- ID_MODEL_FROM_DATABASE=GeForce GTS 450 ++ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (GeForce GTS 450) + + pci:v000010DEd00000BEA* + ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller + + pci:v000010DEd00000BEAsv00003842sd00001430* +- ID_MODEL_FROM_DATABASE=GeForce GT 430 ++ ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller (GeForce GT 430) + + pci:v000010DEd00000BEB* + ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller + + pci:v000010DEd00000BEBsv00001462sd00002322* +- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC ++ ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller (N460GTX Cyclone 1GD5/OC) + + pci:v000010DEd00000BEE* + ID_MODEL_FROM_DATABASE=GF116 High Definition Audio Controller +@@ -25968,7 +25968,7 @@ pci:v000010DEd00000DD1* + ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] + + pci:v000010DEd00000DD1sv00001558sd00008687* +- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU ++ ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] (CLEVO/KAPOK W860CU) + + pci:v000010DEd00000DD2* + ID_MODEL_FROM_DATABASE=GF106M [GeForce GT 445M] +@@ -25983,7 +25983,7 @@ pci:v000010DEd00000DD8* + ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] + + pci:v000010DEd00000DD8sv000010DEsd00000914* +- ID_MODEL_FROM_DATABASE=Quadro 2000D ++ ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] (Quadro 2000D) + + pci:v000010DEd00000DDA* + ID_MODEL_FROM_DATABASE=GF106GLM [Quadro 2000M] +@@ -25995,7 +25995,7 @@ pci:v000010DEd00000DE1* + ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] + + pci:v000010DEd00000DE1sv00003842sd00001430* +- ID_MODEL_FROM_DATABASE=GeForce GT 430 ++ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] (GeForce GT 430) + + pci:v000010DEd00000DE2* + ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 420] +@@ -26019,49 +26019,49 @@ pci:v000010DEd00000DE9* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] + + pci:v000010DEd00000DE9sv00001025sd00000692* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000725* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000728* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd0000072B* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd0000072E* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000753* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000754* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv000017AAsd00003977* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 640M LE) + + pci:v000010DEd00000DE9sv00001B0Asd00002210* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 635M) + + pci:v000010DEd00000DEA* + ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] + + pci:v000010DEd00000DEAsv000017AAsd0000365A* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd0000365B* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd0000365E* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd00003660* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd0000366C* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEB* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 555M] +@@ -26094,10 +26094,10 @@ pci:v000010DEd00000DF4* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] + + pci:v000010DEd00000DF4sv0000152Dsd00000952* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) + + pci:v000010DEd00000DF4sv0000152Dsd00000953* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) + + pci:v000010DEd00000DF5* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 525M] +@@ -26124,7 +26124,7 @@ pci:v000010DEd00000E08* + ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller + + pci:v000010DEd00000E08sv000010B0sd0000104A* +- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 ++ ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller (Gainward GeForce GT 610) + + pci:v000010DEd00000E09* + ID_MODEL_FROM_DATABASE=GF110 High Definition Audio Controller +@@ -26145,16 +26145,16 @@ pci:v000010DEd00000E1B* + ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller + + pci:v000010DEd00000E1Bsv0000103Csd0000197B* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (ZBook 15) + + pci:v000010DEd00000E1Bsv00001043sd00008428* +- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 ++ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (GTX650-DC-1GD5) + + pci:v000010DEd00000E22* + ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] + + pci:v000010DEd00000E22sv00001462sd00002322* +- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC ++ ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] (N460GTX Cyclone 1GD5/OC) + + pci:v000010DEd00000E23* + ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460 SE] +@@ -26193,7 +26193,7 @@ pci:v000010DEd00000FC6* + ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] + + pci:v000010DEd00000FC6sv00001043sd00008428* +- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 ++ ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) + + pci:v000010DEd00000FCD* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] +@@ -26205,34 +26205,34 @@ pci:v000010DEd00000FD1* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] + + pci:v000010DEd00000FD1sv00001043sd00001597* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD1sv00001043sd000015A7* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD1sv00001043sd00002103* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (N56VZ) + + pci:v000010DEd00000FD1sv00001043sd00002105* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD1sv00001043sd00002141* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD2* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] + + pci:v000010DEd00000FD2sv00001028sd0000054F* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) + + pci:v000010DEd00000FD2sv00001028sd0000055F* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) + + pci:v000010DEd00000FD2sv00001028sd00000595* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) + + pci:v000010DEd00000FD2sv00001028sd000005B2* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) + + pci:v000010DEd00000FD3* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M LE] +@@ -26265,7 +26265,7 @@ pci:v000010DEd00000FE3* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] + + pci:v000010DEd00000FE3sv000017AAsd00003675* +- ID_MODEL_FROM_DATABASE=GeForce GT 745A ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) + + pci:v000010DEd00000FE4* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M] +@@ -26280,7 +26280,7 @@ pci:v000010DEd00000FE7* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] + + pci:v000010DEd00000FE7sv000010DEsd0000101E* +- ID_MODEL_FROM_DATABASE=GRID K100 ++ ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] (GRID K100) + + pci:v000010DEd00000FE9* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M Mac Edition] +@@ -26304,13 +26304,13 @@ pci:v000010DEd00000FF6* + ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] + + pci:v000010DEd00000FF6sv0000103Csd0000197B* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] (ZBook 15) + + pci:v000010DEd00000FF7* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] + + pci:v000010DEd00000FF7sv000010DEsd00001037* +- ID_MODEL_FROM_DATABASE=GRID K140Q ++ ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] (GRID K140Q) + + pci:v000010DEd00000FF8* + ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K500M] +@@ -26343,37 +26343,37 @@ pci:v000010DEd00001004* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] + + pci:v000010DEd00001004sv00003842sd00000784* +- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 SC w/ ACX Cooler] ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 SC w/ ACX Cooler]) + + pci:v000010DEd00001004sv00003842sd00001784* +- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler] ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler]) + + pci:v000010DEd00001004sv00003842sd00001788* +- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler] ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler]) + + pci:v000010DEd00001005* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] + + pci:v000010DEd00001005sv00001043sd00008451* +- ID_MODEL_FROM_DATABASE=GTXTITAN-6GD5 ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GTXTITAN-6GD5) + + pci:v000010DEd00001005sv000010DEsd00001035* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) + + pci:v000010DEd00001005sv00003842sd00002790* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) + + pci:v000010DEd00001005sv00003842sd00002791* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC) + + pci:v000010DEd00001005sv00003842sd00002793* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Signature ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Signature) + + pci:v000010DEd00001005sv00003842sd00002794* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper) + + pci:v000010DEd00001005sv00003842sd00002795* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper Signature) + + pci:v000010DEd00001007* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] +@@ -26436,7 +26436,7 @@ pci:v000010DEd0000104A* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] + + pci:v000010DEd0000104Asv000010B0sd0000104A* +- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 ++ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] (Gainward GeForce GT 610) + + pci:v000010DEd0000104B* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] +@@ -26469,37 +26469,37 @@ pci:v000010DEd00001058* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] + + pci:v000010DEd00001058sv0000103Csd00002AED* +- ID_MODEL_FROM_DATABASE=GeForce 610 ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) + + pci:v000010DEd00001058sv0000103Csd00002AF1* +- ID_MODEL_FROM_DATABASE=GeForce 610 ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) + + pci:v000010DEd00001058sv00001043sd000010AC* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd00001058sv00001043sd000010BC* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd00001058sv00001043sd00001652* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd00001058sv000017AAsd0000367A* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) + + pci:v000010DEd00001058sv000017AAsd00003682* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) + + pci:v000010DEd00001058sv000017AAsd00003687* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) + + pci:v000010DEd00001058sv000017AAsd00003692* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 705A) + + pci:v000010DEd00001058sv000017AAsd00003695* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) + + pci:v000010DEd00001058sv000017AAsd0000A117* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) + + pci:v000010DEd00001059* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] +@@ -26508,25 +26508,25 @@ pci:v000010DEd0000105A* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] + + pci:v000010DEd0000105Asv00001043sd00002111* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd0000105Asv00001043sd00002112* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd0000105B* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] + + pci:v000010DEd0000105Bsv0000103Csd00002AFB* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) + + pci:v000010DEd0000105Bsv000017AAsd0000309D* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) + + pci:v000010DEd0000105Bsv000017AAsd000030B1* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) + + pci:v000010DEd0000105Bsv000017AAsd000036A1* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) + + pci:v000010DEd0000107C* + ID_MODEL_FROM_DATABASE=GF119 [NVS 315] +@@ -26541,7 +26541,7 @@ pci:v000010DEd00001081* + ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] + + pci:v000010DEd00001081sv000010DEsd0000087E* +- ID_MODEL_FROM_DATABASE=Leadtek WinFast GTX 570 ++ ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] (Leadtek WinFast GTX 570) + + pci:v000010DEd00001082* + ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 560 Ti OEM] +@@ -26571,31 +26571,31 @@ pci:v000010DEd00001091* + ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] + + pci:v000010DEd00001091sv000010DEsd0000088E* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001091sv000010DEsd00000891* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001091sv000010DEsd00000974* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001091sv000010DEsd0000098D* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001094* + ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] + + pci:v000010DEd00001094sv000010DEsd00000888* +- ID_MODEL_FROM_DATABASE=Tesla M2075 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] (Tesla M2075) + + pci:v000010DEd00001096* + ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] + + pci:v000010DEd00001096sv000010DEsd00000910* +- ID_MODEL_FROM_DATABASE=Tesla C2075 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2075) + + pci:v000010DEd00001096sv000010DEsd00000911* +- ID_MODEL_FROM_DATABASE=Tesla C2050 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2050) + + pci:v000010DEd0000109A* + ID_MODEL_FROM_DATABASE=GF100GLM [Quadro 5010M] +@@ -26604,7 +26604,7 @@ pci:v000010DEd0000109B* + ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] + + pci:v000010DEd0000109Bsv000010DEsd00000918* +- ID_MODEL_FROM_DATABASE=Quadro 7000 ++ ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] (Quadro 7000) + + pci:v000010DEd000010C0* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 9300 GS Rev. 2] +@@ -26622,622 +26622,622 @@ pci:v000010DEd00001140* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] + + pci:v000010DEd00001140sv00001025sd00000600* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000606* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000064A* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000064C* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000067A* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000680* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000686* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000689* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000068B* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000068D* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000068E* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000691* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000692* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000694* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000702* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000719* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000725* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000728* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000072B* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000072E* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000732* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000763* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000773* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000774* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000776* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd0000077A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077B* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077C* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077D* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077E* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077F* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000781* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000798* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000799* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd0000079B* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd0000079C* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000807* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000821* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000823* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000830* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000837* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000841* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001028sd0000054D* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd0000054E* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000554* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001028sd00000557* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001028sd00000562* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd00000565* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000568* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000590* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000592* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd00000594* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd00000595* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005A2* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005B1* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005B3* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005DA* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd000005DE* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001028sd000005E0* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001028sd000005E8* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd000005F4* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv0000103Csd000018EF* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018F9* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018FB* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018FD* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018FF* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd00002AEF* +- ID_MODEL_FROM_DATABASE=GeForce GT 720A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) + + pci:v000010DEd00001140sv0000103Csd00002AF9* +- ID_MODEL_FROM_DATABASE=GeForce 710A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710A) + + pci:v000010DEd00001140sv00001043sd000010DD* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv00001043sd000010ED* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv00001043sd000011FD* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000124D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000126D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000131D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd000013FD* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd000014C7* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd00001507* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001043sd000015AD* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd000015ED* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000160D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000163D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000166D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd000016CD* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd000016DD* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000170D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd00002132* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001043sd00002136* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv00001043sd000021BA* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd000021FA* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000220A* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000221A* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000223A* +- ID_MODEL_FROM_DATABASE=GeForce GT 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) + + pci:v000010DEd00001140sv00001043sd0000224A* +- ID_MODEL_FROM_DATABASE=GeForce GT 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) + + pci:v000010DEd00001140sv00001043sd0000227A* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000228A* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd00008595* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001072sd0000152D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000010CFsd000017F5* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001179sd0000FA01* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA02* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA03* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA05* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA11* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA13* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA18* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA19* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA21* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA23* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA2A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA32* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA33* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA36* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA38* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA42* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA43* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA45* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA47* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA49* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA58* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA59* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA88* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA89* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000144Dsd0000B092* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv0000144Dsd0000C0D5* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000144Dsd0000C0D7* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv0000144Dsd0000C0E2* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv0000144Dsd0000C0E3* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv0000144Dsd0000C0E4* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv0000144Dsd0000C652* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv0000144Dsd0000C709* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000144Dsd0000C711* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000144Dsd0000C736* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001462sd000010B8* +- ID_MODEL_FROM_DATABASE=GeForce GT 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) + + pci:v000010DEd00001140sv00001462sd000010E9* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001462sd00001116* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001462sd0000AA33* +- ID_MODEL_FROM_DATABASE=GeForce 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) + + pci:v000010DEd00001140sv00001462sd0000AAA2* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001462sd0000AAA3* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001462sd0000AE71* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv0000152Dsd00000926* +- ID_MODEL_FROM_DATABASE=GeForce 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 620M) + + pci:v000010DEd00001140sv0000152Dsd00000982* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000152Dsd00000983* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000152Dsd00001012* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000152Dsd00001030* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000152Dsd00001055* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000152Dsd00001067* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv0000152Dsd00001072* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00002200* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv000017AAsd00002213* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00002220* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000309C* +- ID_MODEL_FROM_DATABASE=GeForce GT 720A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) + + pci:v000010DEd00001140sv000017AAsd000030B4* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd00003656* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv000017AAsd0000365A* +- ID_MODEL_FROM_DATABASE=GeForce 705M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) + + pci:v000010DEd00001140sv000017AAsd0000365E* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd0000366C* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd00003685* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd00003686* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd00003687* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705A) + + pci:v000010DEd00001140sv000017AAsd00003696* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369B* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369C* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369D* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369E* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd00003800* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003801* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003802* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003803* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003804* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003901* +- ID_MODEL_FROM_DATABASE=GeForce 610M / GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) + + pci:v000010DEd00001140sv000017AAsd00003902* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00003903* +- ID_MODEL_FROM_DATABASE=GeForce 610M/710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M/710M) + + pci:v000010DEd00001140sv000017AAsd00003904* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M/625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M/625M) + + pci:v000010DEd00001140sv000017AAsd00003905* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003910* +- ID_MODEL_FROM_DATABASE=GeForce 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) + + pci:v000010DEd00001140sv000017AAsd00003912* +- ID_MODEL_FROM_DATABASE=GeForce 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) + + pci:v000010DEd00001140sv000017AAsd00003977* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003983* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) + + pci:v000010DEd00001140sv000017AAsd00005001* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) + + pci:v000010DEd00001140sv000017AAsd00005003* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00005005* +- ID_MODEL_FROM_DATABASE=GeForce 705M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) + + pci:v000010DEd00001140sv000017AAsd0000500D* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv000017AAsd00005014* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00005017* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00005019* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000501A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000501F* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00005025* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00005027* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000502A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000502B* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000502D* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000502E* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000502F* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000503E* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000503F* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001854sd00000177* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001854sd00000180* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001854sd00000190* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001854sd00000192* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001B0Asd000020DD* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001B0Asd000020DF* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001B0Asd00002202* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001180* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] + + pci:v000010DEd00001180sv00001043sd000083F1* +- ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GTX680-DC2-2GD5) + + pci:v000010DEd00001180sv00003842sd00003682* +- ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GeForce GTX 680 Mac Edition) + + pci:v000010DEd00001182* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti] +@@ -27252,7 +27252,7 @@ pci:v000010DEd00001185* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] + + pci:v000010DEd00001185sv000010DEsd0000106F* +- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] (GK104 [GeForce GTX 760 OEM]) + + pci:v000010DEd00001187* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760] +@@ -27264,7 +27264,7 @@ pci:v000010DEd00001189* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] + + pci:v000010DEd00001189sv000010DEsd00001074* +- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] (GK104 [GeForce GTX 760 Ti OEM]) + + pci:v000010DEd0000118A* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K520] +@@ -27279,7 +27279,7 @@ pci:v000010DEd0000118D* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] + + pci:v000010DEd0000118Dsv000010DEsd0000101D* +- ID_MODEL_FROM_DATABASE=GRID K200 ++ ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] (GRID K200) + + pci:v000010DEd0000118E* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] +@@ -27324,7 +27324,7 @@ pci:v000010DEd000011A3* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] + + pci:v000010DEd000011A3sv0000106Bsd0000010D* +- ID_MODEL_FROM_DATABASE=iMac 13,2 ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] (iMac 13,2) + + pci:v000010DEd000011A7* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 675MX] +@@ -27333,10 +27333,10 @@ pci:v000010DEd000011B0* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] + + pci:v000010DEd000011B0sv000010DEsd0000101A* +- ID_MODEL_FROM_DATABASE=GRID K240Q ++ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K240Q) + + pci:v000010DEd000011B0sv000010DEsd0000101B* +- ID_MODEL_FROM_DATABASE=GRID K260Q ++ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K260Q) + + pci:v000010DEd000011B1* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] +@@ -27375,28 +27375,28 @@ pci:v000010DEd000011C2* + ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] + + pci:v000010DEd000011C2sv00001043sd0000845B* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost DirectCU II OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost DirectCU II OC) + + pci:v000010DEd000011C2sv00001462sd00002874* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost TwinFrozr II OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost TwinFrozr II OC) + + pci:v000010DEd000011C2sv00001569sd000011C2* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) + + pci:v000010DEd000011C2sv000019DAsd00001281* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) + + pci:v000010DEd000011C2sv00003842sd00003657* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost) + + pci:v000010DEd000011C2sv00003842sd00003658* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost Superclocked ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost Superclocked) + + pci:v000010DEd000011C3* + ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] + + pci:v000010DEd000011C3sv000010DEsd00001030* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti OEM ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] (GeForce GTX 650 Ti OEM) + + pci:v000010DEd000011C4* + ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 645 OEM] +@@ -27423,7 +27423,7 @@ pci:v000010DEd000011E3* + ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] + + pci:v000010DEd000011E3sv000017AAsd00003683* +- ID_MODEL_FROM_DATABASE=GeForce GTX 760A ++ ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] (GeForce GTX 760A) + + pci:v000010DEd000011FA* + ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] +@@ -27486,55 +27486,55 @@ pci:v000010DEd00001247* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] + + pci:v000010DEd00001247sv00001043sd00001752* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001247sv00001043sd00002050* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001247sv00001043sd00002051* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001247sv00001043sd0000212A* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001247sv00001043sd0000212B* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001247sv00001043sd0000212C* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001247sv0000152Dsd00000930* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001248* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] + + pci:v000010DEd00001248sv0000152Dsd00000930* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001248sv000017C0sd000010E7* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv000017C0sd000010E8* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv000017C0sd000010EA* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00000890* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00000891* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00001795* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00001796* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00003005* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001249* + ID_MODEL_FROM_DATABASE=GF116 [GeForce GTS 450 Rev. 3] +@@ -27546,19 +27546,19 @@ pci:v000010DEd0000124D* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] + + pci:v000010DEd0000124Dsv00001028sd00000491* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001028sd00000570* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001028sd00000571* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001462sd0000108D* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001462sd000010CC* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001251* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 560M] +@@ -27582,16 +27582,16 @@ pci:v000010DEd00001290* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] + + pci:v000010DEd00001290sv0000103Csd00002AFA* +- ID_MODEL_FROM_DATABASE=GeForce GT 730A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) + + pci:v000010DEd00001290sv0000103Csd00002B04* +- ID_MODEL_FROM_DATABASE=GeForce GT 730A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) + + pci:v000010DEd00001290sv00001043sd000013AD* +- ID_MODEL_FROM_DATABASE=GeForce GT 730M ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) + + pci:v000010DEd00001290sv00001043sd000013CD* +- ID_MODEL_FROM_DATABASE=GeForce GT 730M ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) + + pci:v000010DEd00001291* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 735M] +@@ -27600,10 +27600,10 @@ pci:v000010DEd00001292* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] + + pci:v000010DEd00001292sv000017AAsd00003675* +- ID_MODEL_FROM_DATABASE=GeForce GT 740A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) + + pci:v000010DEd00001292sv000017AAsd00003684* +- ID_MODEL_FROM_DATABASE=GeForce GT 740A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) + + pci:v000010DEd00001293* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] +@@ -27636,13 +27636,13 @@ pci:v000010DEd00001341* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] + + pci:v000010DEd00001341sv000017AAsd00003697* +- ID_MODEL_FROM_DATABASE=GeForce 840A ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) + + pci:v000010DEd00001341sv000017AAsd00003699* +- ID_MODEL_FROM_DATABASE=GeForce 840A ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) + + pci:v000010DEd00001341sv000017AAsd0000369C* +- ID_MODEL_FROM_DATABASE=GeForce 840A ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) + + pci:v000010DEd00001380* + ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] +@@ -27660,10 +27660,10 @@ pci:v000010DEd00001391* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] + + pci:v000010DEd00001391sv000017AAsd00003697* +- ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) + + pci:v000010DEd00001391sv000017AAsd0000A125* +- ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) + + pci:v000010DEd00001392* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] +@@ -27678,13 +27678,13 @@ pci:v000010DFd00000720* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) + + pci:v000010DFd00000720sv000017AAsd00001056* +- ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14102-UX-L AnyFabric) + + pci:v000010DFd00000720sv000017AAsd00001057* +- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UX-L AnyFabric) + + pci:v000010DFd00000720sv000017AAsd00001059* +- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UT-L AnyFabric) + + pci:v000010DFd00000722* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) +@@ -27729,10 +27729,10 @@ pci:v000010DFd0000E220* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) + + pci:v000010DFd0000E220sv000017AAsd00001054* +- ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16002B-M6-L AnyFabric) + + pci:v000010DFd0000E220sv000017AAsd00001055* +- ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16004B-M8-L AnyFabric) + + pci:v000010DFd0000E240* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) +@@ -27831,7 +27831,7 @@ pci:v000010DFd0000FC00* + ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter + + pci:v000010DFd0000FC00sv000010DFsd0000FC00* +- ID_MODEL_FROM_DATABASE=LP10000 LightPulse Fibre Channel Host Adapter ++ ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter (LP10000 LightPulse Fibre Channel Host Adapter) + + pci:v000010DFd0000FC10* + ID_MODEL_FROM_DATABASE=Helios-X LightPulse Fibre Channel Host Adapter +@@ -27897,7 +27897,7 @@ pci:v000010E1d00000391* + ID_MODEL_FROM_DATABASE=TRM-S1040 + + pci:v000010E1d00000391sv000010E1sd00000391* +- ID_MODEL_FROM_DATABASE=DC-315U SCSI-3 Host Adapter ++ ID_MODEL_FROM_DATABASE=TRM-S1040 (DC-315U SCSI-3 Host Adapter) + + pci:v000010E1d0000690C* + ID_MODEL_FROM_DATABASE=DC-690c +@@ -27921,7 +27921,7 @@ pci:v000010E3d00000148* + ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] + + pci:v000010E3d00000148sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] (VR11 Single Board Computer) + + pci:v000010E3d00000860* + ID_MODEL_FROM_DATABASE=CA91C860 [QSpan] +@@ -28107,25 +28107,25 @@ pci:v000010ECd00005227* + ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader + + pci:v000010ECd00005227sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad T440p) + + pci:v000010ECd00005227sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad X240) + + pci:v000010ECd00005229* + ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader + + pci:v000010ECd00005229sv00001025sd00000813* +- ID_MODEL_FROM_DATABASE=Aspire R7-571 ++ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (Aspire R7-571) + + pci:v000010ECd00005229sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (ProBook 455 G1 Notebook) + + pci:v000010ECd00005249* + ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader + + pci:v000010ECd00005249sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) + + pci:v000010ECd00005288* + ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader +@@ -28134,334 +28134,334 @@ pci:v000010ECd00008029* + ID_MODEL_FROM_DATABASE=RTL-8029(AS) + + pci:v000010ECd00008029sv000010B8sd00002011* +- ID_MODEL_FROM_DATABASE=EZ-Card (SMC1208) ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EZ-Card (SMC1208)) + + pci:v000010ECd00008029sv000010ECsd00008029* + ID_MODEL_FROM_DATABASE=RTL-8029(AS) + + pci:v000010ECd00008029sv00001113sd00001208* +- ID_MODEL_FROM_DATABASE=EN1208 ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EN1208) + + pci:v000010ECd00008029sv00001186sd00000300* +- ID_MODEL_FROM_DATABASE=DE-528 ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (DE-528) + + pci:v000010ECd00008029sv00001259sd00002400* +- ID_MODEL_FROM_DATABASE=AT-2400 ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (AT-2400) + + pci:v000010ECd00008029sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (QEMU Virtual Machine) + + pci:v000010ECd00008129* + ID_MODEL_FROM_DATABASE=RTL-8129 + + pci:v000010ECd00008129sv000010ECsd00008129* +- ID_MODEL_FROM_DATABASE=RT8129 Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL-8129 (RT8129 Fast Ethernet Adapter) + + pci:v000010ECd00008129sv000011ECsd00008129* +- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCIe Gigabit Ethernet (misconfigured) ++ ID_MODEL_FROM_DATABASE=RTL-8129 (RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)) + + pci:v000010ECd00008136* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller + + pci:v000010ECd00008136sv0000103Csd00002AB1* +- ID_MODEL_FROM_DATABASE=Pavillion p6774 ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) + + pci:v000010ECd00008136sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) + + pci:v000010ECd00008136sv00001179sd0000FF64* +- ID_MODEL_FROM_DATABASE=RTL8102E PCI-E Fast Ethernet NIC ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) + + pci:v000010ECd00008138* + ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter + + pci:v000010ECd00008138sv000010ECsd00008138* +- ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter (RT8139 (B/C) Fast Ethernet Adapter) + + pci:v000010ECd00008139* + ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter + + pci:v000010ECd00008139sv00000357sd0000000A* +- ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TTP-Monitoring Card V2.0) + + pci:v000010ECd00008139sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TravelMate 290) + + pci:v000010ECd00008139sv00001025sd00008920* +- ID_MODEL_FROM_DATABASE=ALN-325 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) + + pci:v000010ECd00008139sv00001025sd00008921* +- ID_MODEL_FROM_DATABASE=ALN-325 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) + + pci:v000010ECd00008139sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (NX9500) + + pci:v000010ECd00008139sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Pavilion t3030.de Desktop PC) + + pci:v000010ECd00008139sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Presario C700) + + pci:v000010ECd00008139sv00001043sd00001045* +- ID_MODEL_FROM_DATABASE=L8400B or L3C/S notebook ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (L8400B or L3C/S notebook) + + pci:v000010ECd00008139sv00001043sd00008109* +- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P5P800-MX Mainboard) + + pci:v000010ECd00008139sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MIM2000) + + pci:v000010ECd00008139sv000010BDsd00000320* +- ID_MODEL_FROM_DATABASE=EP-320X-R ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EP-320X-R) + + pci:v000010ECd00008139sv000010ECsd00008139* + ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter + + pci:v000010ECd00008139sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Panasonic CF-Y5 laptop) + + pci:v000010ECd00008139sv00001113sd0000EC01* +- ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LevelOne FNC-0107TX/FNC-0109TX) + + pci:v000010ECd00008139sv00001186sd00001300* +- ID_MODEL_FROM_DATABASE=DFE-538TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DFE-538TX) + + pci:v000010ECd00008139sv00001186sd00001320* +- ID_MODEL_FROM_DATABASE=SN5200 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (SN5200) + + pci:v000010ECd00008139sv00001186sd00008139* +- ID_MODEL_FROM_DATABASE=DRN-32TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DRN-32TX) + + pci:v000010ECd00008139sv000011F6sd00008139* +- ID_MODEL_FROM_DATABASE=FN22-3(A) LinxPRO Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN22-3(A) LinxPRO Ethernet Adapter) + + pci:v000010ECd00008139sv00001259sd00002500* +- ID_MODEL_FROM_DATABASE=AT-2500TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX) + + pci:v000010ECd00008139sv00001259sd00002503* +- ID_MODEL_FROM_DATABASE=AT-2500TX/ACPI ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX/ACPI) + + pci:v000010ECd00008139sv00001385sd0000F31D* +- ID_MODEL_FROM_DATABASE=FA311 v2 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FA311 v2) + + pci:v000010ECd00008139sv00001395sd00002100* +- ID_MODEL_FROM_DATABASE=AMB2100 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AMB2100) + + pci:v000010ECd00008139sv00001429sd0000D010* +- ID_MODEL_FROM_DATABASE=ND010/ND012 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ND010/ND012) + + pci:v000010ECd00008139sv00001432sd00009130* +- ID_MODEL_FROM_DATABASE=EN-9130TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EN-9130TX) + + pci:v000010ECd00008139sv00001436sd00008139* +- ID_MODEL_FROM_DATABASE=RT8139 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RT8139) + + pci:v000010ECd00008139sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P30/P35 notebook) + + pci:v000010ECd00008139sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-7VM400M/7VT600 Motherboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GA-7VM400M/7VT600 Motherboard) + + pci:v000010ECd00008139sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MS-1013 Notebook) + + pci:v000010ECd00008139sv00001462sd0000217C* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Aspire L250) + + pci:v000010ECd00008139sv00001462sd0000788C* +- ID_MODEL_FROM_DATABASE=865PE Neo2-V Mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (865PE Neo2-V Mainboard) + + pci:v000010ECd00008139sv0000146Csd00001439* +- ID_MODEL_FROM_DATABASE=FE-1439TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FE-1439TX) + + pci:v000010ECd00008139sv00001489sd00006001* +- ID_MODEL_FROM_DATABASE=GF100TXRII ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRII) + + pci:v000010ECd00008139sv00001489sd00006002* +- ID_MODEL_FROM_DATABASE=GF100TXRA ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRA) + + pci:v000010ECd00008139sv0000149Csd0000139A* +- ID_MODEL_FROM_DATABASE=LFE-8139ATX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139ATX) + + pci:v000010ECd00008139sv0000149Csd00008139* +- ID_MODEL_FROM_DATABASE=LFE-8139TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139TX) + + pci:v000010ECd00008139sv000014CBsd00000200* +- ID_MODEL_FROM_DATABASE=LNR-100 Family 10/100 Base-TX Ethernet ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LNR-100 Family 10/100 Base-TX Ethernet) + + pci:v000010ECd00008139sv00001565sd00002300* +- ID_MODEL_FROM_DATABASE=P4TSV Onboard LAN (RTL8100B) ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P4TSV Onboard LAN (RTL8100B)) + + pci:v000010ECd00008139sv00001631sd00007003* +- ID_MODEL_FROM_DATABASE=Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard) + + pci:v000010ECd00008139sv00001695sd00009001* +- ID_MODEL_FROM_DATABASE=Onboard RTL8101L 10/100 MBit ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8101L 10/100 MBit) + + pci:v000010ECd00008139sv000016ECsd000000FF* +- ID_MODEL_FROM_DATABASE=USR997900A ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (USR997900A) + + pci:v000010ECd00008139sv00001799sd00005000* +- ID_MODEL_FROM_DATABASE=F5D5000 PCI Card/Desktop Network PCI Card ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5000 PCI Card/Desktop Network PCI Card) + + pci:v000010ECd00008139sv00001799sd00005010* +- ID_MODEL_FROM_DATABASE=F5D5010 CardBus Notebook Network Card ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5010 CardBus Notebook Network Card) + + pci:v000010ECd00008139sv0000187Esd00003303* +- ID_MODEL_FROM_DATABASE=FN312 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN312) + + pci:v000010ECd00008139sv00001904sd00008139* +- ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RTL8139D Fast Ethernet Adapter) + + pci:v000010ECd00008139sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (QEMU Virtual Machine) + + pci:v000010ECd00008139sv00002646sd00000001* +- ID_MODEL_FROM_DATABASE=KNE120TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KNE120TX) + + pci:v000010ECd00008139sv00008E2Esd00007000* +- ID_MODEL_FROM_DATABASE=KF-230TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX) + + pci:v000010ECd00008139sv00008E2Esd00007100* +- ID_MODEL_FROM_DATABASE=KF-230TX/2 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX/2) + + pci:v000010ECd00008139sv0000A0A0sd00000007* +- ID_MODEL_FROM_DATABASE=ALN-325C ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325C) + + pci:v000010ECd00008167* + ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet + + pci:v000010ECd00008167sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-MA69G-S3H Motherboard ++ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (GA-MA69G-S3H Motherboard) + + pci:v000010ECd00008167sv00001462sd0000235C* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (P965 Neo MS-7235 mainboard) + + pci:v000010ECd00008167sv00001462sd0000236C* +- ID_MODEL_FROM_DATABASE=945P Neo3-F motherboard ++ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (945P Neo3-F motherboard) + + pci:v000010ECd00008168* + ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller + + pci:v000010ECd00008168sv00001019sd00008168* +- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) + + pci:v000010ECd00008168sv00001028sd00000283* +- ID_MODEL_FROM_DATABASE=Vostro 220 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 220) + + pci:v000010ECd00008168sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3350) + + pci:v000010ECd00008168sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3750) + + pci:v000010ECd00008168sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Pavilion DM1Z-3000) + + pci:v000010ECd00008168sv0000103Csd00001950* +- ID_MODEL_FROM_DATABASE=ProBook 450/455 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (ProBook 450/455) + + pci:v000010ECd00008168sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Asus IPIBL-LB Motherboard) + + pci:v000010ECd00008168sv00001043sd000011F5* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (A6J-Q008) + + pci:v000010ECd00008168sv00001043sd000016D5* +- ID_MODEL_FROM_DATABASE=U6V/U31J laptop ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (U6V/U31J laptop) + + pci:v000010ECd00008168sv00001043sd000081AA* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P5B) + + pci:v000010ECd00008168sv00001043sd000082C6* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M3A78-EH Motherboard) + + pci:v000010ECd00008168sv00001043sd000083A3* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M4A785TD Motherboard) + + pci:v000010ECd00008168sv00001043sd00008432* +- ID_MODEL_FROM_DATABASE=P8P67 and other motherboards ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) + + pci:v000010ECd00008168sv00001043sd00008505* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) + + pci:v000010ECd00008168sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) + + pci:v000010ECd00008168sv000010ECsd00008168* +- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) + + pci:v000010ECd00008168sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard) + + pci:v000010ECd00008168sv00001462sd0000238C* +- ID_MODEL_FROM_DATABASE=Onboard RTL8111b on MSI P965 Platinum Mainboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Onboard RTL8111b on MSI P965 Platinum Mainboard) + + pci:v000010ECd00008168sv00001462sd0000368C* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (K9AG Neo2) + + pci:v000010ECd00008168sv00001462sd00004180* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Wind PC MS-7418) + + pci:v000010ECd00008168sv00001462sd00007522* +- ID_MODEL_FROM_DATABASE=X58 Pro-E ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (X58 Pro-E) + + pci:v000010ECd00008168sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (CC11/CL11) + + pci:v000010ECd00008168sv00001849sd00008168* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard (one of many)) + + pci:v000010ECd00008168sv00008086sd0000D615* +- ID_MODEL_FROM_DATABASE=Desktop Board D510MO/D525MW ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Desktop Board D510MO/D525MW) + + pci:v000010ECd00008169* + ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller + + pci:v000010ECd00008169sv00001025sd00000079* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Aspire 5024WLMi) + + pci:v000010ECd00008169sv000010BDsd00003202* +- ID_MODEL_FROM_DATABASE=EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter) + + pci:v000010ECd00008169sv000010ECsd00008169* +- ID_MODEL_FROM_DATABASE=RTL8169/8110 Family PCI Gigabit Ethernet NIC ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (RTL8169/8110 Family PCI Gigabit Ethernet NIC) + + pci:v000010ECd00008169sv00001259sd0000C107* +- ID_MODEL_FROM_DATABASE=CG-LAPCIGT ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (CG-LAPCIGT) + + pci:v000010ECd00008169sv00001371sd0000434E* +- ID_MODEL_FROM_DATABASE=ProG-2000L ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (ProG-2000L) + + pci:v000010ECd00008169sv00001385sd0000311A* +- ID_MODEL_FROM_DATABASE=GA311 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA311) + + pci:v000010ECd00008169sv00001385sd00005200* +- ID_MODEL_FROM_DATABASE=GA511 Gigabit PC Card ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA511 Gigabit PC Card) + + pci:v000010ECd00008169sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA-8I915ME-G Mainboard) + + pci:v000010ECd00008169sv00001462sd0000030C* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 mainboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8N Neo-FSR v2.0 mainboard) + + pci:v000010ECd00008169sv00001462sd0000065C* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Hetis 865GV-E (MS-7065)) + + pci:v000010ECd00008169sv00001462sd0000702C* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T NEO 2 motherboard) + + pci:v000010ECd00008169sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T Neo2-F V2.0) + + pci:v000010ECd00008169sv000016ECsd0000011F* +- ID_MODEL_FROM_DATABASE=USR997903 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (USR997903) + + pci:v000010ECd00008169sv00001734sd00001091* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (D2030-A1) + + pci:v000010ECd00008169sv0000A0A0sd00000449* +- ID_MODEL_FROM_DATABASE=AK86-L motherboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (AK86-L motherboard) + + pci:v000010ECd00008171* + ID_MODEL_FROM_DATABASE=RTL8191SEvA Wireless LAN Controller +@@ -28479,7 +28479,7 @@ pci:v000010ECd00008176* + ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter + + pci:v000010ECd00008176sv00001A3Bsd00001139* +- ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter (AW-NE139H Half-size Mini PCIe Card) + + pci:v000010ECd00008177* + ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter +@@ -28494,10 +28494,10 @@ pci:v000010ECd00008180* + ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC + + pci:v000010ECd00008180sv00001385sd00004700* +- ID_MODEL_FROM_DATABASE=MA521 802.11b Wireless PC Card ++ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (MA521 802.11b Wireless PC Card) + + pci:v000010ECd00008180sv00001737sd00000019* +- ID_MODEL_FROM_DATABASE=WPC11v4 802.11b Wireless-B Notebook Adapter ++ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (WPC11v4 802.11b Wireless-B Notebook Adapter) + + pci:v000010ECd00008185* + ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller +@@ -28524,7 +28524,7 @@ pci:v000010ECd00008199* + ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller + + pci:v000010ECd00008199sv00001462sd00006894* +- ID_MODEL_FROM_DATABASE=MN54G2 / MS-6894 Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller (MN54G2 / MS-6894 Wireless Mini PCIe Card) + + pci:v000010ECd00008723* + ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter +@@ -28734,115 +28734,115 @@ pci:v00001102d00000002* + ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 + + pci:v00001102d00000002sv0000100Asd00001102* +- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF) + + pci:v00001102d00000002sv00001102sd00000020* +- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00000021* +- ID_MODEL_FROM_DATABASE=CT4620 SBLive! ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4620 SBLive!) + + pci:v00001102d00000002sv00001102sd0000002F* +- ID_MODEL_FROM_DATABASE=SBLive! mainboard implementation ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! mainboard implementation) + + pci:v00001102d00000002sv00001102sd0000100A* +- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM [SB0220] ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM [SB0220]) + + pci:v00001102d00000002sv00001102sd00004001* +- ID_MODEL_FROM_DATABASE=E-mu APS ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (E-mu APS) + + pci:v00001102d00000002sv00001102sd00008022* +- ID_MODEL_FROM_DATABASE=CT4780 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4780 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008023* +- ID_MODEL_FROM_DATABASE=CT4790 SoundBlaster PCI512 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4790 SoundBlaster PCI512) + + pci:v00001102d00000002sv00001102sd00008024* +- ID_MODEL_FROM_DATABASE=CT4760 SBLive! ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) + + pci:v00001102d00000002sv00001102sd00008025* +- ID_MODEL_FROM_DATABASE=SBLive! Mainboard Implementation ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Mainboard Implementation) + + pci:v00001102d00000002sv00001102sd00008026* +- ID_MODEL_FROM_DATABASE=CT4830 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4830 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008027* +- ID_MODEL_FROM_DATABASE=CT4832 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4832 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008028* +- ID_MODEL_FROM_DATABASE=CT4760 SBLive! OEM version ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive! OEM version) + + pci:v00001102d00000002sv00001102sd00008031* +- ID_MODEL_FROM_DATABASE=CT4831 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4831 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008040* +- ID_MODEL_FROM_DATABASE=CT4760 SBLive! ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) + + pci:v00001102d00000002sv00001102sd00008051* +- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008061* +- ID_MODEL_FROM_DATABASE=SBLive! Player 5.1 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Player 5.1) + + pci:v00001102d00000002sv00001102sd00008064* +- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Model SB0100 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Model SB0100) + + pci:v00001102d00000002sv00001102sd00008065* +- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Digital Model SB0220 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Digital Model SB0220) + + pci:v00001102d00000002sv00001102sd00008066* +- ID_MODEL_FROM_DATABASE=Live! 5.1 Digital [SB0228] ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (Live! 5.1 Digital [SB0228]) + + pci:v00001102d00000002sv00001102sd00008067* +- ID_MODEL_FROM_DATABASE=SBLive! 5.1 eMicro 28028 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 eMicro 28028) + + pci:v00001102d00000004* + ID_MODEL_FROM_DATABASE=SB Audigy + + pci:v00001102d00000004sv00001102sd00000051* +- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player) + + pci:v00001102d00000004sv00001102sd00000053* +- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) + + pci:v00001102d00000004sv00001102sd00000058* +- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) + + pci:v00001102d00000004sv00001102sd00001002* +- ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 Platinum) + + pci:v00001102d00000004sv00001102sd00001003* +- ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0350 Audigy 2) + + pci:v00001102d00000004sv00001102sd00001007* +- ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0240 Audigy 2 Platinum 6.1) + + pci:v00001102d00000004sv00001102sd00001009* +- ID_MODEL_FROM_DATABASE=SB Audigy2 OEM HP ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 OEM HP) + + pci:v00001102d00000004sv00001102sd00002001* +- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS Platinum Pro ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS Platinum Pro) + + pci:v00001102d00000004sv00001102sd00002002* +- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS (SB0350) ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS (SB0350)) + + pci:v00001102d00000004sv00001102sd00004001* +- ID_MODEL_FROM_DATABASE=E-MU 1010 ++ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 1010) + + pci:v00001102d00000004sv00001102sd00004002* +- ID_MODEL_FROM_DATABASE=E-MU 0404 ++ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 0404) + + pci:v00001102d00000005* + ID_MODEL_FROM_DATABASE=SB X-Fi + + pci:v00001102d00000005sv00001102sd00000021* +- ID_MODEL_FROM_DATABASE=X-Fi Platinum ++ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi Platinum) + + pci:v00001102d00000005sv00001102sd0000002C* +- ID_MODEL_FROM_DATABASE=X-Fi XtremeGamer FATAL1TY PRO ++ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeGamer FATAL1TY PRO) + + pci:v00001102d00000005sv00001102sd00001003* +- ID_MODEL_FROM_DATABASE=X-Fi XtremeMusic ++ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeMusic) + + pci:v00001102d00000006* + ID_MODEL_FROM_DATABASE=[SB Live! Value] EMU10k1X +@@ -28851,37 +28851,37 @@ pci:v00001102d00000007* + ID_MODEL_FROM_DATABASE=CA0106 Soundblaster + + pci:v00001102d00000007sv00001102sd00000007* +- ID_MODEL_FROM_DATABASE=SBLive! 24bit ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SBLive! 24bit) + + pci:v00001102d00000007sv00001102sd00001001* +- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0310 Audigy LS) + + pci:v00001102d00000007sv00001102sd00001002* +- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0312 Audigy LS) + + pci:v00001102d00000007sv00001102sd00001006* +- ID_MODEL_FROM_DATABASE=SB0410 SBLive! 24-bit ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0410 SBLive! 24-bit) + + pci:v00001102d00000007sv00001102sd0000100A* +- ID_MODEL_FROM_DATABASE=SB0570 [SB Audigy SE] ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0570 [SB Audigy SE]) + + pci:v00001102d00000007sv00001102sd00001012* +- ID_MODEL_FROM_DATABASE=SB0790 X-Fi XA ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0790 X-Fi XA) + + pci:v00001102d00000007sv00001102sd00001013* +- ID_MODEL_FROM_DATABASE=Soundblaster X-Fi Xtreme Audio ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (Soundblaster X-Fi Xtreme Audio) + + pci:v00001102d00000007sv00001462sd00001009* +- ID_MODEL_FROM_DATABASE=K8N Diamond ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (K8N Diamond) + + pci:v00001102d00000008* + ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value + + pci:v00001102d00000008sv00001102sd00000008* +- ID_MODEL_FROM_DATABASE=EMU0404 Digital Audio System ++ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU0404 Digital Audio System) + + pci:v00001102d00000008sv00001102sd00004004* +- ID_MODEL_FROM_DATABASE=EMU1010 Digital Audio System [MAEM8960] ++ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU1010 Digital Audio System [MAEM8960]) + + pci:v00001102d00000009* + ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG +@@ -28890,13 +28890,13 @@ pci:v00001102d00000009sv00001102sd00000010* + ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG + + pci:v00001102d00000009sv00001102sd00000018* +- ID_MODEL_FROM_DATABASE=SB1040 ++ ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG (SB1040) + + pci:v00001102d0000000B* + ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] + + pci:v00001102d0000000Bsv00001102sd00000041* +- ID_MODEL_FROM_DATABASE=SB0880 [SoundBlaster X-Fi Titanium PCI-e] ++ ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) + + pci:v00001102d00004001* + ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port +@@ -28908,7 +28908,7 @@ pci:v00001102d00007002* + ID_MODEL_FROM_DATABASE=SB Live! Game Port + + pci:v00001102d00007002sv00001102sd00000020* +- ID_MODEL_FROM_DATABASE=Gameport Joystick ++ ID_MODEL_FROM_DATABASE=SB Live! Game Port (Gameport Joystick) + + pci:v00001102d00007003* + ID_MODEL_FROM_DATABASE=SB Audigy Game Port +@@ -28917,7 +28917,7 @@ pci:v00001102d00007003sv00001102sd00000040* + ID_MODEL_FROM_DATABASE=SB Audigy Game Port + + pci:v00001102d00007003sv00001102sd00000060* +- ID_MODEL_FROM_DATABASE=SB Audigy2 MIDI/Game Port ++ ID_MODEL_FROM_DATABASE=SB Audigy Game Port (SB Audigy2 MIDI/Game Port) + + pci:v00001102d00007004* + ID_MODEL_FROM_DATABASE=[SB Live! Value] Input device controller +@@ -28926,10 +28926,10 @@ pci:v00001102d00007005* + ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port + + pci:v00001102d00007005sv00001102sd00001001* +- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS MIDI/Game port ++ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0310 Audigy LS MIDI/Game port) + + pci:v00001102d00007005sv00001102sd00001002* +- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS MIDI/Game port ++ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0312 Audigy LS MIDI/Game port) + + pci:v00001102d00007006* + ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG PCI to PCIe Bridge +@@ -28938,49 +28938,49 @@ pci:v00001102d00008938* + ID_MODEL_FROM_DATABASE=Ectiva EV1938 + + pci:v00001102d00008938sv00001033sd000080E5* +- ID_MODEL_FROM_DATABASE=SlimTower-Jim (NEC) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (SlimTower-Jim (NEC)) + + pci:v00001102d00008938sv00001071sd00007150* +- ID_MODEL_FROM_DATABASE=Mitac 7150 ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Mitac 7150) + + pci:v00001102d00008938sv0000110Asd00005938* +- ID_MODEL_FROM_DATABASE=Siemens Scenic Mobile 510PIII ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Siemens Scenic Mobile 510PIII) + + pci:v00001102d00008938sv000013BDsd0000100C* +- ID_MODEL_FROM_DATABASE=Ceres-C (Sharp, Intel BX) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Ceres-C (Sharp, Intel BX)) + + pci:v00001102d00008938sv000013BDsd0000100D* +- ID_MODEL_FROM_DATABASE=Sharp, Intel Banister ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Sharp, Intel Banister) + + pci:v00001102d00008938sv000013BDsd0000100E* +- ID_MODEL_FROM_DATABASE=TwinHead P09S/P09S3 (Sharp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (TwinHead P09S/P09S3 (Sharp)) + + pci:v00001102d00008938sv000013BDsd0000F6F1* +- ID_MODEL_FROM_DATABASE=Marlin (Sharp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Marlin (Sharp)) + + pci:v00001102d00008938sv000014FFsd00000E70* +- ID_MODEL_FROM_DATABASE=P88TE (TWINHEAD INTERNATIONAL Corp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (P88TE (TWINHEAD INTERNATIONAL Corp)) + + pci:v00001102d00008938sv000014FFsd0000C401* +- ID_MODEL_FROM_DATABASE=Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp)) + + pci:v00001102d00008938sv0000156Dsd0000B400* +- ID_MODEL_FROM_DATABASE=G400 - Geo (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G400 - Geo (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B550* +- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B560* +- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B700* +- ID_MODEL_FROM_DATABASE=G700/U700 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G700/U700 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B795* +- ID_MODEL_FROM_DATABASE=G795 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G795 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B797* +- ID_MODEL_FROM_DATABASE=G797 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G797 (AlphaTop (Taiwan))) + + pci:v00001103* + ID_VENDOR_FROM_DATABASE=HighPoint Technologies, Inc. +@@ -28992,16 +28992,16 @@ pci:v00001103d00000004* + ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N + + pci:v00001103d00000004sv00001103sd00000001* +- ID_MODEL_FROM_DATABASE=HPT370A ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370A) + + pci:v00001103d00000004sv00001103sd00000004* +- ID_MODEL_FROM_DATABASE=HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4) ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)) + + pci:v00001103d00000004sv00001103sd00000005* +- ID_MODEL_FROM_DATABASE=HPT370 UDMA100 ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370 UDMA100) + + pci:v00001103d00000004sv00001103sd00000006* +- ID_MODEL_FROM_DATABASE=HPT302/302N ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT302/302N) + + pci:v00001103d00000005* + ID_MODEL_FROM_DATABASE=HPT372A/372N +@@ -29040,7 +29040,7 @@ pci:v00001103d00002210* + ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller + + pci:v00001103d00002210sv000011ABsd000011AB* +- ID_MODEL_FROM_DATABASE=88SX6042 ++ ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller (88SX6042) + + pci:v00001103d00002300* + ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller +@@ -29112,13 +29112,13 @@ pci:v00001105d00008475* + ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder + + pci:v00001105d00008475sv00001105sd00000001* +- ID_MODEL_FROM_DATABASE=REALmagic X-Card ++ ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder (REALmagic X-Card) + + pci:v00001105d00008476* + ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder + + pci:v00001105d00008476sv0000127Dsd00000000* +- ID_MODEL_FROM_DATABASE=CineView II ++ ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder (CineView II) + + pci:v00001105d00008485* + ID_MODEL_FROM_DATABASE=EM8485 REALmagic DVD/MPEG-4 A/V Decoder +@@ -29163,7 +29163,7 @@ pci:v00001106d00000282* + ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge + + pci:v00001106d00000282sv00001043sd000080A3* +- ID_MODEL_FROM_DATABASE=A8V Deluxe ++ ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge (A8V Deluxe) + + pci:v00001106d00000290* + ID_MODEL_FROM_DATABASE=K8M890 Host Bridge +@@ -29178,28 +29178,28 @@ pci:v00001106d00000305* + ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] + + pci:v00001106d00000305sv00001019sd00000987* +- ID_MODEL_FROM_DATABASE=K7VZA Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (K7VZA Mainboard) + + pci:v00001106d00000305sv00001043sd00008033* +- ID_MODEL_FROM_DATABASE=A7V Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V Mainboard) + + pci:v00001106d00000305sv00001043sd0000803E* +- ID_MODEL_FROM_DATABASE=A7V-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V-E Mainboard) + + pci:v00001106d00000305sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V133/A7V133-C Mainboard) + + pci:v00001106d00000305sv0000147Bsd0000A401* +- ID_MODEL_FROM_DATABASE=KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard) + + pci:v00001106d00000308* + ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge + + pci:v00001106d00000308sv00001043sd00008199* +- ID_MODEL_FROM_DATABASE=P4V800D-X Mainboard ++ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (P4V800D-X Mainboard) + + pci:v00001106d00000308sv00001849sd00000308* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (Motherboard) + + pci:v00001106d00000314* + ID_MODEL_FROM_DATABASE=CN700/VN800/P4M800CE/Pro Host Bridge +@@ -29226,7 +29226,7 @@ pci:v00001106d00000364* + ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge + + pci:v00001106d00000364sv00001043sd000081CE* +- ID_MODEL_FROM_DATABASE=P5VD2-VM mothervoard ++ ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge (P5VD2-VM mothervoard) + + pci:v00001106d00000391* + ID_MODEL_FROM_DATABASE=VT8371 [KX133] +@@ -29241,7 +29241,7 @@ pci:v00001106d00000415* + ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller + + pci:v00001106d00000415sv00001043sd0000838F* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller (Motherboard) + + pci:v00001106d00000501* + ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] +@@ -29256,55 +29256,55 @@ pci:v00001106d00000571* + ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE + + pci:v00001106d00000571sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (P6VXA Motherboard) + + pci:v00001106d00000571sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00000571sv00001043sd00008052* +- ID_MODEL_FROM_DATABASE=VT8233A Bus Master ATA100/66/33 IDE ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT8233A Bus Master ATA100/66/33 IDE) + + pci:v00001106d00000571sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V8X / A7V333 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X / A7V333 motherboard) + + pci:v00001106d00000571sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev. 1.01 ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X-X motherboard rev. 1.01) + + pci:v00001106d00000571sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00000571sv00001106sd00000571* +- ID_MODEL_FROM_DATABASE=VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE) + + pci:v00001106d00000571sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (Magnia Z310) + + pci:v00001106d00000571sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (FX41 motherboard) + + pci:v00001106d00000571sv00001458sd00005002* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (GA-7VAX Mainboard) + + pci:v00001106d00000571sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00000571sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T NEO 2 motherboard) + + pci:v00001106d00000571sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T Neo2-F V2.0) + + pci:v00001106d00000571sv00001462sd00007120* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT4AV motherboard) + + pci:v00001106d00000571sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8MM3-V mainboard) + + pci:v00001106d00000571sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KV8-MAX3 motherboard) + + pci:v00001106d00000571sv00001849sd00000571* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K7VT series Motherboards) + + pci:v00001106d00000576* + ID_MODEL_FROM_DATABASE=VT82C576 3V [Apollo Master] +@@ -29313,7 +29313,7 @@ pci:v00001106d00000581* + ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller + + pci:v00001106d00000581sv00001106sd00000581* +- ID_MODEL_FROM_DATABASE=Wrong IDE ID ++ ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller (Wrong IDE ID) + + pci:v00001106d00000585* + ID_MODEL_FROM_DATABASE=VT82C585VP [Apollo VP1/VPX] +@@ -29322,7 +29322,7 @@ pci:v00001106d00000586* + ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] + + pci:v00001106d00000586sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=MVP3 ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] (MVP3 ISA Bridge) + + pci:v00001106d00000591* + ID_MODEL_FROM_DATABASE=VT8237A SATA 2-Port Controller +@@ -29334,10 +29334,10 @@ pci:v00001106d00000596* + ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] + + pci:v00001106d00000596sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) + + pci:v00001106d00000596sv00001458sd00000596* +- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) + + pci:v00001106d00000597* + ID_MODEL_FROM_DATABASE=VT82C597 [Apollo VP3] +@@ -29352,10 +29352,10 @@ pci:v00001106d00000605* + ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] + + pci:v00001106d00000605sv0000103Csd00001254* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00001106d00000605sv00001043sd0000802C* +- ID_MODEL_FROM_DATABASE=CUV4X mainboard ++ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (CUV4X mainboard) + + pci:v00001106d00000680* + ID_MODEL_FROM_DATABASE=VT82C680 [Apollo P6] +@@ -29364,49 +29364,49 @@ pci:v00001106d00000686* + ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] + + pci:v00001106d00000686sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (P6VXA Motherboard) + + pci:v00001106d00000686sv0000103Csd00001256* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00001106d00000686sv00001043sd0000802C* +- ID_MODEL_FROM_DATABASE=CUV4X mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (CUV4X mainboard) + + pci:v00001106d00000686sv00001043sd00008033* +- ID_MODEL_FROM_DATABASE=A7V Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V Mainboard) + + pci:v00001106d00000686sv00001043sd0000803E* +- ID_MODEL_FROM_DATABASE=A7V-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V-E Mainboard) + + pci:v00001106d00000686sv00001043sd00008040* +- ID_MODEL_FROM_DATABASE=A7M266 Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7M266 Mainboard) + + pci:v00001106d00000686sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V133/A7V133-C Mainboard) + + pci:v00001106d00000686sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) + + pci:v00001106d00000686sv00001106sd00000686* +- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) + + pci:v00001106d00000686sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (Magnia Z310) + + pci:v00001106d00000686sv0000147Bsd0000A702* +- ID_MODEL_FROM_DATABASE=KG7-Lite Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (KG7-Lite Mainboard) + + pci:v00001106d00000691* + ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] + + pci:v00001106d00000691sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (P6VXA Motherboard) + + pci:v00001106d00000691sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (Magnia Z310) + + pci:v00001106d00000691sv00001458sd00000691* +- ID_MODEL_FROM_DATABASE=VT82C691 Apollo Pro System Controller ++ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (VT82C691 Apollo Pro System Controller) + + pci:v00001106d00000693* + ID_MODEL_FROM_DATABASE=VT82C693 [Apollo Pro Plus] +@@ -29586,61 +29586,61 @@ pci:v00001106d00003038* + ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller + + pci:v00001106d00003038sv00000925sd00001234* +- ID_MODEL_FROM_DATABASE=VA-502 Mainboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VA-502 Mainboard) + + pci:v00001106d00003038sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (P6VXA Motherboard) + + pci:v00001106d00003038sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003038sv00001043sd00008080* +- ID_MODEL_FROM_DATABASE=A7V333 motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V333 motherboard) + + pci:v00001106d00003038sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=VT6202 USB2.0 4 port controller ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VT6202 USB2.0 4 port controller) + + pci:v00001106d00003038sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V8X-X motherboard) + + pci:v00001106d00003038sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003038sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (Magnia Z310) + + pci:v00001106d00003038sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (GA-7VAX Mainboard) + + pci:v00001106d00003038sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003038sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T NEO 2 motherboard) + + pci:v00001106d00003038sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T Neo2-F V2.0) + + pci:v00001106d00003038sv00001462sd00007120* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT4AV motherboard) + + pci:v00001106d00003038sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8MM3-V mainboard) + + pci:v00001106d00003038sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KV8-MAX3 motherboard) + + pci:v00001106d00003038sv0000182Dsd0000201D* +- ID_MODEL_FROM_DATABASE=CN-029 USB2.0 4 port PCI Card ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (CN-029 USB2.0 4 port PCI Card) + + pci:v00001106d00003038sv00001849sd00003038* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K7VT series Motherboards) + + pci:v00001106d00003038sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (ZBOX nano VD01) + + pci:v00001106d00003038sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (QEMU Virtual Machine) + + pci:v00001106d00003040* + ID_MODEL_FROM_DATABASE=VT82C586B ACPI +@@ -29649,52 +29649,52 @@ pci:v00001106d00003043* + ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] + + pci:v00001106d00003043sv000010BDsd00000000* +- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) + + pci:v00001106d00003043sv00001106sd00000100* +- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) + + pci:v00001106d00003043sv00001186sd00001400* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev A ++ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (DFE-530TX rev A) + + pci:v00001106d00003044* + ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller + + pci:v00001106d00003044sv00000010sd00000001* +- ID_MODEL_FROM_DATABASE=IEEE 1394 4port DCST 1394-3+1B ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (IEEE 1394 4port DCST 1394-3+1B) + + pci:v00001106d00003044sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (TravelMate 290) + + pci:v00001106d00003044sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Pavilion t3030.de Desktop PC) + + pci:v00001106d00003044sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Media Center PC m7590n ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Media Center PC m7590n) + + pci:v00001106d00003044sv00001043sd0000808A* +- ID_MODEL_FROM_DATABASE=A8V/A8N/P4P800 series motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (A8V/A8N/P4P800 series motherboard) + + pci:v00001106d00003044sv00001043sd000081FE* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Motherboard) + + pci:v00001106d00003044sv00001458sd00001000* +- ID_MODEL_FROM_DATABASE=GA-7VT600-1394 Motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (GA-7VT600-1394 Motherboard) + + pci:v00001106d00003044sv00001462sd0000207D* +- ID_MODEL_FROM_DATABASE=K8NGM2 series motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8NGM2 series motherboard) + + pci:v00001106d00003044sv00001462sd0000217D* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Aspire L250) + + pci:v00001106d00003044sv00001462sd0000590D* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003044sv00001462sd0000702D* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8T NEO 2 motherboard) + + pci:v00001106d00003044sv00001462sd0000971D* +- ID_MODEL_FROM_DATABASE=MS-6917 ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (MS-6917) + + pci:v00001106d00003050* + ID_MODEL_FROM_DATABASE=VT82C596 Power Management +@@ -29709,205 +29709,205 @@ pci:v00001106d00003057* + ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] + + pci:v00001106d00003057sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (P6VXA Motherboard) + + pci:v00001106d00003057sv00001019sd00000987* +- ID_MODEL_FROM_DATABASE=K7VZA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (K7VZA Motherboard) + + pci:v00001106d00003057sv00001043sd00008033* +- ID_MODEL_FROM_DATABASE=A7V Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V Mainboard) + + pci:v00001106d00003057sv00001043sd0000803E* +- ID_MODEL_FROM_DATABASE=A7V-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V-E Mainboard) + + pci:v00001106d00003057sv00001043sd00008040* +- ID_MODEL_FROM_DATABASE=A7M266 Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7M266 Mainboard) + + pci:v00001106d00003057sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V133/A7V133-C Mainboard) + + pci:v00001106d00003057sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (Magnia Z310) + + pci:v00001106d00003058* + ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller + + pci:v00001106d00003058sv00000E11sd00000097* +- ID_MODEL_FROM_DATABASE=SoundMax Digital Integrated Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (SoundMax Digital Integrated Audio) + + pci:v00001106d00003058sv00000E11sd0000B194* +- ID_MODEL_FROM_DATABASE=Soundmax integrated digital audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Soundmax integrated digital audio) + + pci:v00001106d00003058sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (P6VXA Motherboard) + + pci:v00001106d00003058sv00001019sd00000987* +- ID_MODEL_FROM_DATABASE=K7VZA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (K7VZA Motherboard) + + pci:v00001106d00003058sv0000103Csd00001251* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00001106d00003058sv00001043sd00001106* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (A7V133/A7V133-C Mainboard) + + pci:v00001106d00003058sv00001106sd00004511* +- ID_MODEL_FROM_DATABASE=Onboard Audio on EP7KXA ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio on EP7KXA) + + pci:v00001106d00003058sv00001106sd0000AA03* +- ID_MODEL_FROM_DATABASE=VT1612A AC'97 Audio Controller ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (VT1612A AC'97 Audio Controller) + + pci:v00001106d00003058sv000011D4sd00005348* +- ID_MODEL_FROM_DATABASE=AD1881A audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (AD1881A audio) + + pci:v00001106d00003058sv00001458sd00007600* +- ID_MODEL_FROM_DATABASE=Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) + + pci:v00001106d00003058sv00001462sd00003091* +- ID_MODEL_FROM_DATABASE=MS-6309 Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 Onboard Audio) + + pci:v00001106d00003058sv00001462sd00003092* +- ID_MODEL_FROM_DATABASE=MS-6309 v2.x Mainboard (VIA VT1611A codec) ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 v2.x Mainboard (VIA VT1611A codec)) + + pci:v00001106d00003058sv00001462sd00003300* +- ID_MODEL_FROM_DATABASE=MS-6330 Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6330 Onboard Audio) + + pci:v00001106d00003058sv000015DDsd00007609* +- ID_MODEL_FROM_DATABASE=Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) + + pci:v00001106d00003059* + ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller + + pci:v00001106d00003059sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003059sv00001019sd00001877* +- ID_MODEL_FROM_DATABASE=K8M800-M2 (V2.0) onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8M800-M2 (V2.0) onboard audio) + + pci:v00001106d00003059sv00001043sd00008095* +- ID_MODEL_FROM_DATABASE=A7V8X Motherboard (Realtek ALC650 codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X Motherboard (Realtek ALC650 codec)) + + pci:v00001106d00003059sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X-X Motherboard) + + pci:v00001106d00003059sv00001043sd000080B0* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX]) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX])) + + pci:v00001106d00003059sv00001043sd0000810D* +- ID_MODEL_FROM_DATABASE=Asus P5VD1-X (AD1888 codec [SoundMax]) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Asus P5VD1-X (AD1888 codec [SoundMax])) + + pci:v00001106d00003059sv00001043sd0000812A* +- ID_MODEL_FROM_DATABASE=A8V Deluxe motherboard (Realtek ALC850 codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A8V Deluxe motherboard (Realtek ALC850 codec)) + + pci:v00001106d00003059sv000010ECsd00008168* +- ID_MODEL_FROM_DATABASE=High Definition Audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (High Definition Audio) + + pci:v00001106d00003059sv00001106sd00003059* +- ID_MODEL_FROM_DATABASE=L7VMM2 Motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VMM2 Motherboard) + + pci:v00001106d00003059sv00001106sd00004161* +- ID_MODEL_FROM_DATABASE=K7VT2 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT2 motherboard) + + pci:v00001106d00003059sv00001106sd00004170* +- ID_MODEL_FROM_DATABASE=PCPartner P4M800-8237R Motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (PCPartner P4M800-8237R Motherboard) + + pci:v00001106d00003059sv00001106sd00004552* +- ID_MODEL_FROM_DATABASE=Soyo KT-600 Dragon Plus (Realtek ALC 650) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Soyo KT-600 Dragon Plus (Realtek ALC 650)) + + pci:v00001106d00003059sv00001297sd0000C160* +- ID_MODEL_FROM_DATABASE=FX41 motherboard (Realtek ALC650 codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (FX41 motherboard (Realtek ALC650 codec)) + + pci:v00001106d00003059sv00001413sd0000147B* +- ID_MODEL_FROM_DATABASE=KV8 Pro motherboard onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8 Pro motherboard onboard audio) + + pci:v00001106d00003059sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-7VAX Onboard Audio (Realtek ALC650) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (GA-7VAX Onboard Audio (Realtek ALC650)) + + pci:v00001106d00003059sv00001462sd00000080* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8T NEO 2 motherboard) + + pci:v00001106d00003059sv00001462sd00003800* +- ID_MODEL_FROM_DATABASE=KT266 onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT266 onboard audio) + + pci:v00001106d00003059sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003059sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8MM3-V mainboard) + + pci:v00001106d00003059sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8-MAX3 motherboard) + + pci:v00001106d00003059sv00001695sd0000300C* +- ID_MODEL_FROM_DATABASE=EP-8KRA2+ Mainboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (EP-8KRA2+ Mainboard) + + pci:v00001106d00003059sv00001849sd00000850* +- ID_MODEL_FROM_DATABASE=ASRock 775Dual-880 Pro onboard audio (Realtek ALC850) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (ASRock 775Dual-880 Pro onboard audio (Realtek ALC850)) + + pci:v00001106d00003059sv00001849sd00009739* +- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard (C-Media CMI9739A codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (P4VT8 Mainboard (C-Media CMI9739A codec)) + + pci:v00001106d00003059sv00001849sd00009761* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT series Motherboards) + + pci:v00001106d00003059sv00004005sd00004710* +- ID_MODEL_FROM_DATABASE=MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P)) + + pci:v00001106d00003059sv0000A0A0sd000001B6* +- ID_MODEL_FROM_DATABASE=AK77-8XN onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK77-8XN onboard audio) + + pci:v00001106d00003059sv0000A0A0sd00000342* +- ID_MODEL_FROM_DATABASE=AK86-L motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK86-L motherboard) + + pci:v00001106d00003065* + ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] + + pci:v00001106d00003065sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V8X-X Motherboard) + + pci:v00001106d00003065sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600-X Motherboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V600-X Motherboard) + + pci:v00001106d00003065sv00001106sd00000102* +- ID_MODEL_FROM_DATABASE=VT6102 [Rhine II] Embeded Ethernet Controller on VT8235 ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6102 [Rhine II] Embeded Ethernet Controller on VT8235) + + pci:v00001106d00003065sv00001186sd00001400* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev A ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev A) + + pci:v00001106d00003065sv00001186sd00001401* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev B ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev B) + + pci:v00001106d00003065sv000013B9sd00001421* +- ID_MODEL_FROM_DATABASE=LD-10/100AL PCI Fast Ethernet Adapter (rev.B) ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (LD-10/100AL PCI Fast Ethernet Adapter (rev.B)) + + pci:v00001106d00003065sv00001462sd00007061* +- ID_MODEL_FROM_DATABASE=MS-7061 ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (MS-7061) + + pci:v00001106d00003065sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K8MM3-V mainboard) + + pci:v00001106d00003065sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (NV7 Motherboard) + + pci:v00001106d00003065sv00001695sd00003005* +- ID_MODEL_FROM_DATABASE=VT6103 ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6103) + + pci:v00001106d00003065sv00001695sd0000300C* +- ID_MODEL_FROM_DATABASE=Realtek ALC655 sound chip ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (Realtek ALC655 sound chip) + + pci:v00001106d00003065sv00001849sd00003065* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K7VT series Motherboards) + + pci:v00001106d00003068* + ID_MODEL_FROM_DATABASE=AC'97 Modem Controller + + pci:v00001106d00003068sv00001462sd0000309E* +- ID_MODEL_FROM_DATABASE=MS-6309 Saturn Motherboard ++ ID_MODEL_FROM_DATABASE=AC'97 Modem Controller (MS-6309 Saturn Motherboard) + + pci:v00001106d00003074* + ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge + + pci:v00001106d00003074sv00001043sd00008052* +- ID_MODEL_FROM_DATABASE=VT8233A ++ ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge (VT8233A) + + pci:v00001106d00003091* + ID_MODEL_FROM_DATABASE=VT8633 [Apollo Pro266] +@@ -29916,13 +29916,13 @@ pci:v00001106d00003099* + ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] + + pci:v00001106d00003099sv00001043sd00008064* +- ID_MODEL_FROM_DATABASE=A7V266-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V266-E Mainboard) + + pci:v00001106d00003099sv00001043sd0000807F* +- ID_MODEL_FROM_DATABASE=A7V333 Mainboard ++ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V333 Mainboard) + + pci:v00001106d00003099sv00001849sd00003099* +- ID_MODEL_FROM_DATABASE=K7VT2 motherboard ++ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (K7VT2 motherboard) + + pci:v00001106d00003101* + ID_MODEL_FROM_DATABASE=VT8653 Host Bridge +@@ -29937,70 +29937,70 @@ pci:v00001106d00003104* + ID_MODEL_FROM_DATABASE=USB 2.0 + + pci:v00001106d00003104sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=USB 2.0 (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003104sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X motherboard) + + pci:v00001106d00003104sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev 1.01 ++ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X-X motherboard rev 1.01) + + pci:v00001106d00003104sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003104sv00001106sd00003104* +- ID_MODEL_FROM_DATABASE=USB 2.0 Controller ++ ID_MODEL_FROM_DATABASE=USB 2.0 (Controller) + + pci:v00001106d00003104sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (FX41 motherboard) + + pci:v00001106d00003104sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (GA-7VAX Mainboard) + + pci:v00001106d00003104sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=USB 2.0 (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003104sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T NEO 2 motherboard) + + pci:v00001106d00003104sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T Neo2-F V2.0) + + pci:v00001106d00003104sv00001462sd00007120* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (KT4AV motherboard) + + pci:v00001106d00003104sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K8MM3-V mainboard) + + pci:v00001106d00003104sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (KV8-MAX3 motherboard) + + pci:v00001106d00003104sv0000182Dsd0000201D* +- ID_MODEL_FROM_DATABASE=CN-029 USB 2.0 4 port PCI Card ++ ID_MODEL_FROM_DATABASE=USB 2.0 (CN-029 USB 2.0 4 port PCI Card) + + pci:v00001106d00003104sv00001849sd00003104* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K7VT series Motherboards) + + pci:v00001106d00003104sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=USB 2.0 (ZBOX nano VD01) + + pci:v00001106d00003106* + ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] + + pci:v00001106d00003106sv00001106sd00000105* +- ID_MODEL_FROM_DATABASE=VT6106S [Rhine-III] ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (VT6106S [Rhine-III]) + + pci:v00001106d00003106sv00001186sd00001403* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev C ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX rev C) + + pci:v00001106d00003106sv00001186sd00001405* +- ID_MODEL_FROM_DATABASE=DFE-520TX Fast Ethernet PCI Adapter ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-520TX Fast Ethernet PCI Adapter) + + pci:v00001106d00003106sv00001186sd00001406* +- ID_MODEL_FROM_DATABASE=DFE-530TX+ rev F2 ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX+ rev F2) + + pci:v00001106d00003106sv00001186sd00001407* +- ID_MODEL_FROM_DATABASE=DFE-538TX ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-538TX) + + pci:v00001106d00003108* + ID_MODEL_FROM_DATABASE=K8M800/K8N800/K8N800A [S3 UniChrome Pro] +@@ -30018,7 +30018,7 @@ pci:v00001106d00003116* + ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge + + pci:v00001106d00003116sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge (FX41 motherboard) + + pci:v00001106d00003118* + ID_MODEL_FROM_DATABASE=CN400/PM800/PM880/PN800/PN880 [S3 UniChrome Pro] +@@ -30045,7 +30045,7 @@ pci:v00001106d00003147* + ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge + + pci:v00001106d00003147sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V333 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge (A7V333 motherboard) + + pci:v00001106d00003148* + ID_MODEL_FROM_DATABASE=P4M266 Host Bridge +@@ -30054,34 +30054,34 @@ pci:v00001106d00003149* + ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller + + pci:v00001106d00003149sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003149sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-7VM400AM(F) Motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (GA-7VM400AM(F) Motherboard) + + pci:v00001106d00003149sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003149sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T Neo 2 Motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo 2 Motherboard) + + pci:v00001106d00003149sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo2-F V2.0) + + pci:v00001106d00003149sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8MM3-V mainboard) + + pci:v00001106d00003149sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV8-MAX3 motherboard) + + pci:v00001106d00003149sv0000147Bsd00001408* +- ID_MODEL_FROM_DATABASE=KV7 ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV7) + + pci:v00001106d00003149sv00001849sd00003149* +- ID_MODEL_FROM_DATABASE=K7VT6 motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K7VT6 motherboard) + + pci:v00001106d00003149sv0000A0A0sd000004AD* +- ID_MODEL_FROM_DATABASE=AK86-L motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (AK86-L motherboard) + + pci:v00001106d00003156* + ID_MODEL_FROM_DATABASE=P/KN266 Host Bridge +@@ -30093,40 +30093,40 @@ pci:v00001106d00003164* + ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller + + pci:v00001106d00003164sv00001043sd000080F4* +- ID_MODEL_FROM_DATABASE=P4P800 Mainboard Deluxe ATX ++ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (P4P800 Mainboard Deluxe ATX) + + pci:v00001106d00003164sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (915P/G Neo2) + + pci:v00001106d00003168* + ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge + + pci:v00001106d00003168sv00001849sd00003168* +- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard ++ ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge (P4VT8 Mainboard) + + pci:v00001106d00003177* + ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge + + pci:v00001106d00003177sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003177sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X motherboard) + + pci:v00001106d00003177sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X-X motherboard) + + pci:v00001106d00003177sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (KT4AV motherboard) + + pci:v00001106d00003177sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (FX41 motherboard) + + pci:v00001106d00003177sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (GA-7VAX Mainboard) + + pci:v00001106d00003177sv00001849sd00003177* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (K7VT series Motherboards) + + pci:v00001106d00003178* + ID_MODEL_FROM_DATABASE=ProSavageDDR P4N333 Host Bridge +@@ -30135,25 +30135,25 @@ pci:v00001106d00003188* + ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge + + pci:v00001106d00003188sv00001043sd000080A3* +- ID_MODEL_FROM_DATABASE=K8V Deluxe/K8V-X motherboard ++ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (K8V Deluxe/K8V-X motherboard) + + pci:v00001106d00003188sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (KV8-MAX3 motherboard) + + pci:v00001106d00003189* + ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge + + pci:v00001106d00003189sv00001043sd0000807F* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (A7V8X motherboard) + + pci:v00001106d00003189sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard (KT400A) ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (KT4AV motherboard (KT400A)) + + pci:v00001106d00003189sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (GA-7VAX Mainboard) + + pci:v00001106d00003189sv00001849sd00003189* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (K7VT series Motherboards) + + pci:v00001106d00003204* + ID_MODEL_FROM_DATABASE=K8M800 Host Bridge +@@ -30162,7 +30162,7 @@ pci:v00001106d00003205* + ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge + + pci:v00001106d00003205sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-7VM400M Motherboard ++ ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge (GA-7VM400M Motherboard) + + pci:v00001106d00003208* + ID_MODEL_FROM_DATABASE=PT890 Host Bridge +@@ -30177,19 +30177,19 @@ pci:v00001106d00003227* + ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] + + pci:v00001106d00003227sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003227sv00001106sd00003227* +- ID_MODEL_FROM_DATABASE=DFI KT600-AL / Soltek SL-B9D-FGR Motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (DFI KT600-AL / Soltek SL-B9D-FGR Motherboard) + + pci:v00001106d00003227sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-7VT600 Motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (GA-7VT600 Motherboard) + + pci:v00001106d00003227sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (KV8-MAX3 motherboard) + + pci:v00001106d00003227sv00001849sd00003227* +- ID_MODEL_FROM_DATABASE=K7VT4 motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (K7VT4 motherboard) + + pci:v00001106d00003230* + ID_MODEL_FROM_DATABASE=K8M890CE/K8N890CE [Chrome 9] +@@ -30237,7 +30237,7 @@ pci:v00001106d00003288* + ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller + + pci:v00001106d00003288sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX VD01 ++ ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller (ZBOX VD01) + + pci:v00001106d00003290* + ID_MODEL_FROM_DATABASE=K8M890 Host Bridge +@@ -30294,10 +30294,10 @@ pci:v00001106d00003403* + ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller + + pci:v00001106d00003403sv00001043sd00008374* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (M5A88-V EVO) + + pci:v00001106d00003403sv00001043sd00008384* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (P8P67 Deluxe Motherboard) + + pci:v00001106d00003409* + ID_MODEL_FROM_DATABASE=VX855/VX875 DRAM Bus Control +@@ -30306,7 +30306,7 @@ pci:v00001106d00003410* + ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control + + pci:v00001106d00003410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control (ZBOX nano VD01) + + pci:v00001106d00003432* + ID_MODEL_FROM_DATABASE=VL80x xHCI USB 3.0 Controller +@@ -30378,7 +30378,7 @@ pci:v00001106d00004410* + ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control + + pci:v00001106d00004410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control (ZBOX nano VD01) + + pci:v00001106d00005030* + ID_MODEL_FROM_DATABASE=VT82C596 ACPI [Apollo PRO] +@@ -30456,7 +30456,7 @@ pci:v00001106d00006410* + ID_MODEL_FROM_DATABASE=VX900 Scratch Registers + + pci:v00001106d00006410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 Scratch Registers (ZBOX nano VD01) + + pci:v00001106d00007122* + ID_MODEL_FROM_DATABASE=VX900 Graphics [Chrome9 HD] +@@ -30468,10 +30468,10 @@ pci:v00001106d00007205* + ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] + + pci:v00001106d00007205sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=Gigabyte GA-7VM400(A)M(F) Motherboard ++ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (Gigabyte GA-7VM400(A)M(F) Motherboard) + + pci:v00001106d00007205sv00001462sd00007061* +- ID_MODEL_FROM_DATABASE=MS-7061 ++ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (MS-7061) + + pci:v00001106d00007208* + ID_MODEL_FROM_DATABASE=PT890 Host Bridge +@@ -30534,7 +30534,7 @@ pci:v00001106d00007410* + ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control + + pci:v00001106d00007410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control (ZBOX nano VD01) + + pci:v00001106d00008231* + ID_MODEL_FROM_DATABASE=VT8231 [PCI-to-ISA Bridge] +@@ -30564,7 +30564,7 @@ pci:v00001106d00008410* + ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management + + pci:v00001106d00008410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX VD01 ++ ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management (ZBOX VD01) + + pci:v00001106d00008500* + ID_MODEL_FROM_DATABASE=KLE133/PLE133/PLE133T +@@ -30582,7 +30582,7 @@ pci:v00001106d00008598* + ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] + + pci:v00001106d00008598sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] (P6VXA Motherboard) + + pci:v00001106d00008601* + ID_MODEL_FROM_DATABASE=VT8601 [Apollo ProMedia AGP] +@@ -30669,7 +30669,7 @@ pci:v00001106d0000B188* + ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] + + pci:v00001106d0000B188sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] (KV8-MAX3 motherboard) + + pci:v00001106d0000B198* + ID_MODEL_FROM_DATABASE=VT8237/VX700 PCI Bridge +@@ -30846,7 +30846,7 @@ pci:v0000110Ad00004029sv0000110Asd00004029* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 + + pci:v0000110Ad00004029sv0000110Asd0000C029* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 (SIMATIC NET CP 5614 A2) + + pci:v0000110Ad00004035* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 +@@ -30864,7 +30864,7 @@ pci:v0000110Ad00004069sv0000110Asd00004069* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 + + pci:v0000110Ad00004069sv0000110Asd0000C069* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 (SIMATIC NET CP 5624) + + pci:v0000110Ad0000407C* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 +@@ -30942,25 +30942,25 @@ pci:v00001113d00001211* + ID_MODEL_FROM_DATABASE=SMC2-1211TX + + pci:v00001113d00001211sv0000103Csd00001207* +- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) + + pci:v00001113d00001211sv00001113sd00001211* +- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) + + pci:v00001113d00001216* + ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter + + pci:v00001113d00001216sv00001113sd00001216* +- ID_MODEL_FROM_DATABASE=EN1207F series PCI Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN1207F series PCI Fast Ethernet Adapter) + + pci:v00001113d00001216sv00001113sd00002220* +- ID_MODEL_FROM_DATABASE=EN2220A Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2220A Cardbus Fast Ethernet Adapter) + + pci:v00001113d00001216sv00001113sd00002242* +- ID_MODEL_FROM_DATABASE=EN2242 10/100 Ethernet Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2242 10/100 Ethernet Mini-PCI Card) + + pci:v00001113d00001216sv0000111Asd00001020* +- ID_MODEL_FROM_DATABASE=SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?] ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?]) + + pci:v00001113d00001217* + ID_MODEL_FROM_DATABASE=EN-1217 Ethernet Adapter +@@ -31272,37 +31272,37 @@ pci:v0000111Ad00000003* + ID_MODEL_FROM_DATABASE=ENI-25P ATM + + pci:v0000111Ad00000003sv0000111Asd00000000* +- ID_MODEL_FROM_DATABASE=ENI-25p Miniport ATM Adapter ++ ID_MODEL_FROM_DATABASE=ENI-25P ATM (ENI-25p Miniport ATM Adapter) + + pci:v0000111Ad00000005* + ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) + + pci:v0000111Ad00000005sv0000111Asd00000001* +- ID_MODEL_FROM_DATABASE=ENI-3010 ATM ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) + + pci:v0000111Ad00000005sv0000111Asd00000009* +- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0)) + + pci:v0000111Ad00000005sv0000111Asd00000101* +- ID_MODEL_FROM_DATABASE=ENI-3010 ATM ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) + + pci:v0000111Ad00000005sv0000111Asd00000109* +- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0)) + + pci:v0000111Ad00000005sv0000111Asd00000809* +- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0 or 8) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0 or 8)) + + pci:v0000111Ad00000005sv0000111Asd00000909* +- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0 or 8) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0 or 8)) + + pci:v0000111Ad00000005sv0000111Asd00000A09* +- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=<0..15>) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=<0..15>)) + + pci:v0000111Ad00000007* + ID_MODEL_FROM_DATABASE=SpeedStream ADSL + + pci:v0000111Ad00000007sv0000111Asd00001001* +- ID_MODEL_FROM_DATABASE=ENI-3061 ADSL [ASIC] ++ ID_MODEL_FROM_DATABASE=SpeedStream ADSL (ENI-3061 ADSL [ASIC]) + + pci:v0000111Ad00001020* + ID_MODEL_FROM_DATABASE=SpeedStream PCI 10/100 Network Card +@@ -31446,7 +31446,7 @@ pci:v0000111Dd0000806A* + ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch + + pci:v0000111Dd0000806Asv000014C1sd0000000C* +- ID_MODEL_FROM_DATABASE=10G-PCIE2-8B2 ++ ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch (10G-PCIE2-8B2) + + pci:v0000111Dd0000806C* + ID_MODEL_FROM_DATABASE=PES16T4A/4T4G2 PCI Express Gen2 Switch +@@ -31515,7 +31515,7 @@ pci:v00001127d00000400* + ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter + + pci:v00001127d00000400sv00001127sd00000400* +- ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM ++ ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter (ForeRunnerHE ATM) + + pci:v00001129* + ID_VENDOR_FROM_DATABASE=Firmworks +@@ -31557,13 +31557,13 @@ pci:v00001131d00001561* + ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller + + pci:v00001131d00001561sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K onboard USB 1.1 host controller ++ ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller (C2K onboard USB 1.1 host controller) + + pci:v00001131d00001562* + ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller + + pci:v00001131d00001562sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K onboard USB 2.0 host controller ++ ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller (C2K onboard USB 2.0 host controller) + + pci:v00001131d00003400* + ID_MODEL_FROM_DATABASE=SmartPCI56(UCB1500) 56K Modem +@@ -31572,49 +31572,49 @@ pci:v00001131d00005400* + ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 + + pci:v00001131d00005400sv000012CAsd00000000* +- ID_MODEL_FROM_DATABASE=BlueICE ++ ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 (BlueICE) + + pci:v00001131d00005402* + ID_MODEL_FROM_DATABASE=TriMedia TM1300 + + pci:v00001131d00005402sv00001244sd00000F00* +- ID_MODEL_FROM_DATABASE=Fritz!Card DSL ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (Fritz!Card DSL) + + pci:v00001131d00005402sv000015EBsd00001300* +- ID_MODEL_FROM_DATABASE=DT1300 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1300) + + pci:v00001131d00005402sv000015EBsd00001302* +- ID_MODEL_FROM_DATABASE=DT1302 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1302) + + pci:v00001131d00005402sv000015EBsd00001304* +- ID_MODEL_FROM_DATABASE=DT1304 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1304) + + pci:v00001131d00005402sv000015EBsd00001305* +- ID_MODEL_FROM_DATABASE=DT1305 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1305) + + pci:v00001131d00005402sv000015EBsd00001306* +- ID_MODEL_FROM_DATABASE=PMCDT1306 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PMCDT1306) + + pci:v00001131d00005402sv000015EBsd00001308* +- ID_MODEL_FROM_DATABASE=DT1308 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1308) + + pci:v00001131d00005402sv000015EBsd00001331* +- ID_MODEL_FROM_DATABASE=DT1301 with SAA7121 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7121) + + pci:v00001131d00005402sv000015EBsd00001337* +- ID_MODEL_FROM_DATABASE=DT1301 with SAA7127 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7127) + + pci:v00001131d00005402sv000015EBsd00002D3D* +- ID_MODEL_FROM_DATABASE=X3D ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (X3D) + + pci:v00001131d00005402sv000015EBsd00007022* +- ID_MODEL_FROM_DATABASE=PTM1300 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PTM1300) + + pci:v00001131d00005405* + ID_MODEL_FROM_DATABASE=TriMedia TM1500 + + pci:v00001131d00005405sv00001136sd00000005* +- ID_MODEL_FROM_DATABASE=LCP-1500 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1500 (LCP-1500) + + pci:v00001131d00005406* + ID_MODEL_FROM_DATABASE=TriMedia TM1700 +@@ -31623,409 +31623,409 @@ pci:v00001131d0000540B* + ID_MODEL_FROM_DATABASE=PNX1005 Media Processor + + pci:v00001131d0000540Bsv00001131sd00000020* +- ID_MODEL_FROM_DATABASE=PNXLite PCI Demo Board ++ ID_MODEL_FROM_DATABASE=PNX1005 Media Processor (PNXLite PCI Demo Board) + + pci:v00001131d00007130* + ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder + + pci:v00001131d00007130sv00000000sd00004016* +- ID_MODEL_FROM_DATABASE=Behold TV 401 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 401) + + pci:v00001131d00007130sv00000000sd00004051* +- ID_MODEL_FROM_DATABASE=Behold TV 405 FM ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 405 FM) + + pci:v00001131d00007130sv00000000sd00005051* +- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) + + pci:v00001131d00007130sv00000000sd0000505B* +- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) + + pci:v00001131d00007130sv0000102Bsd000048D0* +- ID_MODEL_FROM_DATABASE=Matrox CronosPlus ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Matrox CronosPlus) + + pci:v00001131d00007130sv00001048sd0000226B* +- ID_MODEL_FROM_DATABASE=ELSA EX-VISION 300TV ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (ELSA EX-VISION 300TV) + + pci:v00001131d00007130sv0000107Dsd00006655* +- ID_MODEL_FROM_DATABASE=WinFast DTV1000S ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (WinFast DTV1000S) + + pci:v00001131d00007130sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=SAA7130-based TV tuner card ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (SAA7130-based TV tuner card) + + pci:v00001131d00007130sv00001131sd00002001* +- ID_MODEL_FROM_DATABASE=10MOONS PCI TV CAPTURE CARD ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (10MOONS PCI TV CAPTURE CARD) + + pci:v00001131d00007130sv00001131sd00002005* +- ID_MODEL_FROM_DATABASE=Techcom (India) TV Tuner Card (SSD-TV-670) ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Techcom (India) TV Tuner Card (SSD-TV-670)) + + pci:v00001131d00007130sv00001458sd00009006* +- ID_MODEL_FROM_DATABASE=GT-PS700 DVB-S tuner ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (GT-PS700 DVB-S tuner) + + pci:v00001131d00007130sv00001461sd0000050C* +- ID_MODEL_FROM_DATABASE=Nagase Sangyo TransGear 3000TV ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Nagase Sangyo TransGear 3000TV) + + pci:v00001131d00007130sv00001461sd000010FF* +- ID_MODEL_FROM_DATABASE=AVerMedia DVD EZMaker ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AVerMedia DVD EZMaker) + + pci:v00001131d00007130sv00001461sd00002108* +- ID_MODEL_FROM_DATABASE=AverMedia AverTV/305 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV/305) + + pci:v00001131d00007130sv00001461sd00002115* +- ID_MODEL_FROM_DATABASE=AverMedia AverTV Studio 305 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV Studio 305) + + pci:v00001131d00007130sv0000153Bsd00001152* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 200 TV ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Terratec Cinergy 200 TV) + + pci:v00001131d00007130sv0000185Bsd0000C100* +- ID_MODEL_FROM_DATABASE=Compro VideoMate TV PVR/FM ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Compro VideoMate TV PVR/FM) + + pci:v00001131d00007130sv0000185Bsd0000C901* +- ID_MODEL_FROM_DATABASE=Videomate DVB-T200 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Videomate DVB-T200) + + pci:v00001131d00007130sv00005168sd00000138* +- ID_MODEL_FROM_DATABASE=LifeView FlyVIDEO2000 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (LifeView FlyVIDEO2000) + + pci:v00001131d00007130sv00005ACEsd00005010* +- ID_MODEL_FROM_DATABASE=Behold TV 501 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 501) + + pci:v00001131d00007130sv00005ACEsd00005050* +- ID_MODEL_FROM_DATABASE=Behold TV 505 FM ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 FM) + + pci:v00001131d00007133* + ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder + + pci:v00001131d00007133sv00000000sd00004091* +- ID_MODEL_FROM_DATABASE=Beholder BeholdTV 409 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Beholder BeholdTV 409 FM) + + pci:v00001131d00007133sv00000000sd00005071* +- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) + + pci:v00001131d00007133sv00000000sd0000507B* +- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) + + pci:v00001131d00007133sv00000000sd00005201* +- ID_MODEL_FROM_DATABASE=Behold TV Columbus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV Columbus) + + pci:v00001131d00007133sv00000070sd00006701* +- ID_MODEL_FROM_DATABASE=WinTV HVR-1110 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (WinTV HVR-1110) + + pci:v00001131d00007133sv00001019sd00004CB5* +- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)) + + pci:v00001131d00007133sv00001043sd00000210* +- ID_MODEL_FROM_DATABASE=FlyTV mini Asus Digimatrix ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (FlyTV mini Asus Digimatrix) + + pci:v00001131d00007133sv00001043sd00004843* +- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7133 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ASUS TV-FM 7133) + + pci:v00001131d00007133sv00001043sd00004845* +- ID_MODEL_FROM_DATABASE=TV-FM 7135 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV-FM 7135) + + pci:v00001131d00007133sv00001043sd00004862* +- ID_MODEL_FROM_DATABASE=P7131 Dual ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (P7131 Dual) + + pci:v00001131d00007133sv00001043sd00004876* +- ID_MODEL_FROM_DATABASE=My Cinema-P7131 Hybrid ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (My Cinema-P7131 Hybrid) + + pci:v00001131d00007133sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (SAA713x-based TV tuner card) + + pci:v00001131d00007133sv00001131sd00002001* +- ID_MODEL_FROM_DATABASE=Proteus Pro [philips reference design] ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Proteus Pro [philips reference design]) + + pci:v00001131d00007133sv00001131sd00002018* +- ID_MODEL_FROM_DATABASE=Tiger reference design ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Tiger reference design) + + pci:v00001131d00007133sv00001131sd00004EE9* +- ID_MODEL_FROM_DATABASE=MonsterTV Mobile ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (MonsterTV Mobile) + + pci:v00001131d00007133sv00001131sd00007133* +- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 301i ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Pinnacle PCTV 301i) + + pci:v00001131d00007133sv000011BDsd0000002B* +- ID_MODEL_FROM_DATABASE=PCTV Stereo ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV Stereo) + + pci:v00001131d00007133sv000011BDsd0000002E* +- ID_MODEL_FROM_DATABASE=PCTV 110i (saa7133) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV 110i (saa7133)) + + pci:v00001131d00007133sv000012ABsd00000800* +- ID_MODEL_FROM_DATABASE=PURPLE TV ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PURPLE TV) + + pci:v00001131d00007133sv000013C2sd00002804* +- ID_MODEL_FROM_DATABASE=Technotrend Budget T-3000 Hybrid ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Technotrend Budget T-3000 Hybrid) + + pci:v00001131d00007133sv00001421sd00000335* +- ID_MODEL_FROM_DATABASE=Instant TV DVB-T Cardbus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV DVB-T Cardbus) + + pci:v00001131d00007133sv00001421sd00001370* +- ID_MODEL_FROM_DATABASE=Instant TV (saa7135) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV (saa7135)) + + pci:v00001131d00007133sv00001435sd00007330* +- ID_MODEL_FROM_DATABASE=VFG7330 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7330) + + pci:v00001131d00007133sv00001435sd00007350* +- ID_MODEL_FROM_DATABASE=VFG7350 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7350) + + pci:v00001131d00007133sv00001458sd00009001* +- ID_MODEL_FROM_DATABASE=GC-PTV-TAF Hybrid TV card ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GC-PTV-TAF Hybrid TV card) + + pci:v00001131d00007133sv00001458sd00009002* +- ID_MODEL_FROM_DATABASE=GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009003* +- ID_MODEL_FROM_DATABASE=GT-PTV-AF-RH Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-AF-RH Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009004* +- ID_MODEL_FROM_DATABASE=GT-P8000 DVB-T/Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P8000 DVB-T/Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009005* +- ID_MODEL_FROM_DATABASE=GT-P6000 Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P6000 Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009008* +- ID_MODEL_FROM_DATABASE=GT-P5100 Analog TV tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P5100 Analog TV tuner) + + pci:v00001131d00007133sv00001461sd00001044* +- ID_MODEL_FROM_DATABASE=AVerTVHD MCE A180 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTVHD MCE A180) + + pci:v00001131d00007133sv00001461sd00004836* +- ID_MODEL_FROM_DATABASE=M10D Hybrid DVBT ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M10D Hybrid DVBT) + + pci:v00001131d00007133sv00001461sd0000861E* +- ID_MODEL_FROM_DATABASE=M105 PAL/SECAM/NTSC/FM Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M105 PAL/SECAM/NTSC/FM Tuner) + + pci:v00001131d00007133sv00001461sd0000A14B* +- ID_MODEL_FROM_DATABASE=AVerTV Studio 509 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTV Studio 509) + + pci:v00001131d00007133sv00001461sd0000A836* +- ID_MODEL_FROM_DATABASE=M115 DVB-T, PAL/SECAM/NTSC Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M115 DVB-T, PAL/SECAM/NTSC Tuner) + + pci:v00001131d00007133sv00001461sd0000F01D* +- ID_MODEL_FROM_DATABASE=DVB-T Super 007 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (DVB-T Super 007) + + pci:v00001131d00007133sv00001461sd0000F31F* +- ID_MODEL_FROM_DATABASE=Avermedia AVerTV GO 007 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Avermedia AVerTV GO 007 FM) + + pci:v00001131d00007133sv00001461sd0000F936* +- ID_MODEL_FROM_DATABASE=Hybrid+FM PCI (rev A16D) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Hybrid+FM PCI (rev A16D)) + + pci:v00001131d00007133sv00001462sd00006231* +- ID_MODEL_FROM_DATABASE=TV@nywhere Plus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV@nywhere Plus) + + pci:v00001131d00007133sv00001489sd00000214* +- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum FM) + + pci:v00001131d00007133sv000014C0sd00001212* +- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum Mini2 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum Mini2) + + pci:v00001131d00007133sv0000153Bsd00001160* +- ID_MODEL_FROM_DATABASE=Cinergy 250 PCI TV ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Cinergy 250 PCI TV) + + pci:v00001131d00007133sv0000153Bsd00001162* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Terratec Cinergy 400 mobile) + + pci:v00001131d00007133sv000017DEsd00007256* +- ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PlusTV All In One PI610 card) + + pci:v00001131d00007133sv000017DEsd00007350* +- ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 110 Digital / Analog HDTV Tuner) + + pci:v00001131d00007133sv000017DEsd00007352* +- ID_MODEL_FROM_DATABASE=ATSC 115 Digital / Analog HDTV Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 115 Digital / Analog HDTV Tuner) + + pci:v00001131d00007133sv0000185Bsd0000C100* +- ID_MODEL_FROM_DATABASE=VideoMate TV ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate TV) + + pci:v00001131d00007133sv0000185Bsd0000C900* +- ID_MODEL_FROM_DATABASE=VideoMate T750 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate T750) + + pci:v00001131d00007133sv00005168sd00000306* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T DUO ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T DUO) + + pci:v00001131d00007133sv00005168sd00000319* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio) + + pci:v00001131d00007133sv00005168sd00000502* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Duo CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Duo CardBus) + + pci:v00001131d00007133sv00005168sd00000520* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio CardBus) + + pci:v00001131d00007133sv00005168sd00001502* +- ID_MODEL_FROM_DATABASE=LifeView FlyTV CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV CardBus) + + pci:v00001131d00007133sv00005168sd00002502* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T CardBus) + + pci:v00001131d00007133sv00005168sd00002520* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-S Duo CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-S Duo CardBus) + + pci:v00001131d00007133sv00005168sd00003502* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Hybrid CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Hybrid CardBus) + + pci:v00001131d00007133sv00005168sd00003520* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio N CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio N CardBus) + + pci:v00001131d00007133sv00005ACEsd00005030* +- ID_MODEL_FROM_DATABASE=Behold TV 503 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 503 FM) + + pci:v00001131d00007133sv00005ACEsd00005090* +- ID_MODEL_FROM_DATABASE=Behold TV 509 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 509 FM) + + pci:v00001131d00007133sv00005ACEsd00006090* +- ID_MODEL_FROM_DATABASE=Behold TV 609 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) + + pci:v00001131d00007133sv00005ACEsd00006091* +- ID_MODEL_FROM_DATABASE=Behold TV 609 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) + + pci:v00001131d00007133sv00005ACEsd00006092* +- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) + + pci:v00001131d00007133sv00005ACEsd00006093* +- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) + + pci:v00001131d00007133sv00005ACEsd00006190* +- ID_MODEL_FROM_DATABASE=Behold TV M6 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6) + + pci:v00001131d00007133sv00005ACEsd00006191* +- ID_MODEL_FROM_DATABASE=Behold TV M63 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M63) + + pci:v00001131d00007133sv00005ACEsd00006193* +- ID_MODEL_FROM_DATABASE=Behold TV M6 Extra ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6 Extra) + + pci:v00001131d00007133sv00005ACEsd00006290* +- ID_MODEL_FROM_DATABASE=Behold TV H6 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H6) + + pci:v00001131d00007133sv00005ACEsd00007090* +- ID_MODEL_FROM_DATABASE=Behold TV A7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV A7) + + pci:v00001131d00007133sv00005ACEsd00007150* +- ID_MODEL_FROM_DATABASE=Behold TV H75 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) + + pci:v00001131d00007133sv00005ACEsd00007151* +- ID_MODEL_FROM_DATABASE=Behold TV H75 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) + + pci:v00001131d00007133sv00005ACEsd00007190* +- ID_MODEL_FROM_DATABASE=Behold TV H7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) + + pci:v00001131d00007133sv00005ACEsd00007191* +- ID_MODEL_FROM_DATABASE=Behold TV H7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) + + pci:v00001131d00007133sv00005ACEsd00007290* +- ID_MODEL_FROM_DATABASE=Behold TV T7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV T7) + + pci:v00001131d00007133sv00005ACEsd00007591* +- ID_MODEL_FROM_DATABASE=Behold TV X7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) + + pci:v00001131d00007133sv00005ACEsd00007595* +- ID_MODEL_FROM_DATABASE=Behold TV X7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) + + pci:v00001131d00007134* + ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder + + pci:v00001131d00007134sv00000000sd00004036* +- ID_MODEL_FROM_DATABASE=Behold TV 403 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403) + + pci:v00001131d00007134sv00000000sd00004037* +- ID_MODEL_FROM_DATABASE=Behold TV 403 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403 FM) + + pci:v00001131d00007134sv00000000sd00004071* +- ID_MODEL_FROM_DATABASE=Behold TV 407 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 407 FM) + + pci:v00001131d00007134sv00001019sd00004CB4* +- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM)) + + pci:v00001131d00007134sv00001043sd00000210* +- ID_MODEL_FROM_DATABASE=Digimatrix TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Digimatrix TV) + + pci:v00001131d00007134sv00001043sd00004840* +- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7134 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ASUS TV-FM 7134) + + pci:v00001131d00007134sv00001043sd00004842* +- ID_MODEL_FROM_DATABASE=TV-FM 7134 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (TV-FM 7134) + + pci:v00001131d00007134sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SAA713x-based TV tuner card) + + pci:v00001131d00007134sv00001131sd00002004* +- ID_MODEL_FROM_DATABASE=EUROPA V3 reference design ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EUROPA V3 reference design) + + pci:v00001131d00007134sv00001131sd00004E85* +- ID_MODEL_FROM_DATABASE=SKNet Monster TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SKNet Monster TV) + + pci:v00001131d00007134sv00001131sd00006752* +- ID_MODEL_FROM_DATABASE=EMPRESS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EMPRESS) + + pci:v00001131d00007134sv000011BDsd0000002B* +- ID_MODEL_FROM_DATABASE=PCTV Stereo ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV Stereo) + + pci:v00001131d00007134sv000011BDsd0000002D* +- ID_MODEL_FROM_DATABASE=PCTV 300i DVB-T + PAL ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV 300i DVB-T + PAL) + + pci:v00001131d00007134sv00001461sd00002C00* +- ID_MODEL_FROM_DATABASE=AverTV Hybrid+FM PCI ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverTV Hybrid+FM PCI) + + pci:v00001131d00007134sv00001461sd00009715* +- ID_MODEL_FROM_DATABASE=AVerTV Studio 307 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Studio 307) + + pci:v00001131d00007134sv00001461sd0000A70A* +- ID_MODEL_FROM_DATABASE=Avermedia AVerTV 307 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Avermedia AVerTV 307) + + pci:v00001131d00007134sv00001461sd0000A70B* +- ID_MODEL_FROM_DATABASE=AverMedia M156 / Medion 2819 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverMedia M156 / Medion 2819) + + pci:v00001131d00007134sv00001461sd0000D6EE* +- ID_MODEL_FROM_DATABASE=Cardbus TV/Radio (E500) ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Cardbus TV/Radio (E500)) + + pci:v00001131d00007134sv00001471sd0000B7E9* +- ID_MODEL_FROM_DATABASE=AVerTV Cardbus plus ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Cardbus plus) + + pci:v00001131d00007134sv0000153Bsd00001142* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 400 TV) + + pci:v00001131d00007134sv0000153Bsd00001143* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV) + + pci:v00001131d00007134sv0000153Bsd00001158* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV MK3 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV MK3) + + pci:v00001131d00007134sv00001540sd00009524* +- ID_MODEL_FROM_DATABASE=ProVideo PV952 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ProVideo PV952) + + pci:v00001131d00007134sv000016BEsd00000003* +- ID_MODEL_FROM_DATABASE=Medion 7134 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Medion 7134) + + pci:v00001131d00007134sv0000185Bsd0000C200* +- ID_MODEL_FROM_DATABASE=Compro VideoMate Gold+ Pal ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Compro VideoMate Gold+ Pal) + + pci:v00001131d00007134sv0000185Bsd0000C900* +- ID_MODEL_FROM_DATABASE=Videomate DVB-T300 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Videomate DVB-T300) + + pci:v00001131d00007134sv00001894sd0000A006* +- ID_MODEL_FROM_DATABASE=KNC One TV-Station DVR ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station DVR) + + pci:v00001131d00007134sv00001894sd0000FE01* +- ID_MODEL_FROM_DATABASE=KNC One TV-Station RDS / Typhoon TV Tuner RDS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station RDS / Typhoon TV Tuner RDS) + + pci:v00001131d00007134sv00005168sd00000138* +- ID_MODEL_FROM_DATABASE=FLY TV PRIME 34FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FLY TV PRIME 34FM) + + pci:v00001131d00007134sv00005168sd00000300* +- ID_MODEL_FROM_DATABASE=FlyDVB-S ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FlyDVB-S) + + pci:v00001131d00007134sv00005ACEsd00005070* +- ID_MODEL_FROM_DATABASE=Behold TV 507 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 507 FM) + + pci:v00001131d00007134sv00005ACEsd00006070* +- ID_MODEL_FROM_DATABASE=Behold TV 607 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) + + pci:v00001131d00007134sv00005ACEsd00006071* +- ID_MODEL_FROM_DATABASE=Behold TV 607 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) + + pci:v00001131d00007134sv00005ACEsd00006072* +- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) + + pci:v00001131d00007134sv00005ACEsd00006073* +- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) + + pci:v00001131d00007145* + ID_MODEL_FROM_DATABASE=SAA7145 +@@ -32034,223 +32034,223 @@ pci:v00001131d00007146* + ID_MODEL_FROM_DATABASE=SAA7146 + + pci:v00001131d00007146sv0000110Asd00000000* +- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) + + pci:v00001131d00007146sv0000110Asd0000FFFF* +- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) + + pci:v00001131d00007146sv00001124sd00002581* +- ID_MODEL_FROM_DATABASE=Leutron Vision PicPort ++ ID_MODEL_FROM_DATABASE=SAA7146 (Leutron Vision PicPort) + + pci:v00001131d00007146sv00001131sd00004F56* +- ID_MODEL_FROM_DATABASE=KNC1 DVB-S Budget ++ ID_MODEL_FROM_DATABASE=SAA7146 (KNC1 DVB-S Budget) + + pci:v00001131d00007146sv00001131sd00004F60* +- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Activy DVB-S Budget Rev AL ++ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu-Siemens Activy DVB-S Budget Rev AL) + + pci:v00001131d00007146sv00001131sd00004F61* +- ID_MODEL_FROM_DATABASE=Activy DVB-S Budget Rev GR ++ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-S Budget Rev GR) + + pci:v00001131d00007146sv00001131sd00005F61* +- ID_MODEL_FROM_DATABASE=Activy DVB-T Budget ++ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-T Budget) + + pci:v00001131d00007146sv0000114Bsd00002003* +- ID_MODEL_FROM_DATABASE=DVRaptor Video Edit/Capture Card ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVRaptor Video Edit/Capture Card) + + pci:v00001131d00007146sv000011BDsd00000006* +- ID_MODEL_FROM_DATABASE=DV500 Overlay ++ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) + + pci:v00001131d00007146sv000011BDsd0000000A* +- ID_MODEL_FROM_DATABASE=DV500 Overlay ++ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) + + pci:v00001131d00007146sv000011BDsd0000000F* +- ID_MODEL_FROM_DATABASE=DV500 Overlay ++ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) + + pci:v00001131d00007146sv000013C2sd00000000* +- ID_MODEL_FROM_DATABASE=Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5) + + pci:v00001131d00007146sv000013C2sd00000001* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) + + pci:v00001131d00007146sv000013C2sd00000002* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv000013C2sd00000003* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv000013C2sd00000004* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv000013C2sd00000006* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) + + pci:v00001131d00007146sv000013C2sd00000008* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB-T ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB-T) + + pci:v00001131d00007146sv000013C2sd0000000A* +- ID_MODEL_FROM_DATABASE=Octal/Technotrend DVB-C for iTV ++ ID_MODEL_FROM_DATABASE=SAA7146 (Octal/Technotrend DVB-C for iTV) + + pci:v00001131d00007146sv000013C2sd0000000E* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.3 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.3) + + pci:v00001131d00007146sv000013C2sd00001003* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card) + + pci:v00001131d00007146sv000013C2sd00001004* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card) + + pci:v00001131d00007146sv000013C2sd00001005* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) + + pci:v00001131d00007146sv000013C2sd0000100C* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) + + pci:v00001131d00007146sv000013C2sd0000100F* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) + + pci:v00001131d00007146sv000013C2sd00001010* +- ID_MODEL_FROM_DATABASE=DVB C-1500 ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVB C-1500) + + pci:v00001131d00007146sv000013C2sd00001011* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) + + pci:v00001131d00007146sv000013C2sd00001012* +- ID_MODEL_FROM_DATABASE=DVB T-1500 ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVB T-1500) + + pci:v00001131d00007146sv000013C2sd00001013* +- ID_MODEL_FROM_DATABASE=SATELCO Multimedia DVB ++ ID_MODEL_FROM_DATABASE=SAA7146 (SATELCO Multimedia DVB) + + pci:v00001131d00007146sv000013C2sd00001016* +- ID_MODEL_FROM_DATABASE=WinTV-NOVA-SE DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (WinTV-NOVA-SE DVB card) + + pci:v00001131d00007146sv000013C2sd00001018* +- ID_MODEL_FROM_DATABASE=DVB S-1401 ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVB S-1401) + + pci:v00001131d00007146sv000013C2sd00001019* +- ID_MODEL_FROM_DATABASE=S2-3200 ++ ID_MODEL_FROM_DATABASE=SAA7146 (S2-3200) + + pci:v00001131d00007146sv000013C2sd00001102* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv0000153Bsd00001155* +- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-S ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) + + pci:v00001131d00007146sv0000153Bsd00001156* +- ID_MODEL_FROM_DATABASE=Terratec Cynergy 1200C ++ ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) + + pci:v00001131d00007146sv0000153Bsd00001157* +- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-T ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) + + pci:v00001131d00007146sv00001894sd00000020* +- ID_MODEL_FROM_DATABASE=KNC One DVB-C V1.0 ++ ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) + + pci:v00001131d00007146sv00001894sd00000023* +- ID_MODEL_FROM_DATABASE=TVStation DVB-C plus ++ ID_MODEL_FROM_DATABASE=SAA7146 (TVStation DVB-C plus) + + pci:v00001131d00007160* + ID_MODEL_FROM_DATABASE=SAA7160 + + pci:v00001131d00007160sv00001458sd00009009* +- ID_MODEL_FROM_DATABASE=E8000 DVB-T/Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) + + pci:v00001131d00007162* + ID_MODEL_FROM_DATABASE=SAA7162 + + pci:v00001131d00007162sv000011BDsd00000101* +- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 7010iX TV Card ++ ID_MODEL_FROM_DATABASE=SAA7162 (Pinnacle PCTV 7010iX TV Card) + + pci:v00001131d00007164* + ID_MODEL_FROM_DATABASE=SAA7164 + + pci:v00001131d00007164sv00000070sd00008800* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008810* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008851* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008853* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008880* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008891* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd000088A0* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd000088A1* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008900* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008901* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008940* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 (submodel 89619) ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200 (submodel 89619)) + + pci:v00001131d00007164sv00000070sd00008951* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008953* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008980* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008991* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008993* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd000089A0* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd000089A1* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007231* + ID_MODEL_FROM_DATABASE=SAA7231 + + pci:v00001131d00007231sv00005ACEsd00008000* +- ID_MODEL_FROM_DATABASE=Behold TV H8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) + + pci:v00001131d00007231sv00005ACEsd00008001* +- ID_MODEL_FROM_DATABASE=Behold TV H8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) + + pci:v00001131d00007231sv00005ACEsd00008050* +- ID_MODEL_FROM_DATABASE=Behold TV H85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) + + pci:v00001131d00007231sv00005ACEsd00008051* +- ID_MODEL_FROM_DATABASE=Behold TV H85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) + + pci:v00001131d00007231sv00005ACEsd00008100* +- ID_MODEL_FROM_DATABASE=Behold TV A8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) + + pci:v00001131d00007231sv00005ACEsd00008101* +- ID_MODEL_FROM_DATABASE=Behold TV A8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) + + pci:v00001131d00007231sv00005ACEsd00008150* +- ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) + + pci:v00001131d00007231sv00005ACEsd00008151* +- ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) + + pci:v00001131d00007231sv00005ACEsd00008201* +- ID_MODEL_FROM_DATABASE=Behold TV T8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV T8) + + pci:v00001131d00009730* + ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller + + pci:v00001131d00009730sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=Integrated Multimedia and Peripheral Controller ++ ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller (Integrated Multimedia and Peripheral Controller) + + pci:v00001132* + ID_VENDOR_FROM_DATABASE=Mitel Corp. +@@ -32364,7 +32364,7 @@ pci:v00001133d0000E010* + ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI + + pci:v00001133d0000E010sv0000110Asd00000021* +- ID_MODEL_FROM_DATABASE=Fujitsu Siemens ISDN S0 ++ ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI (Fujitsu Siemens ISDN S0) + + pci:v00001133d0000E011* + ID_MODEL_FROM_DATABASE=Diva Server BRI S/T Rev 2 +@@ -32376,10 +32376,10 @@ pci:v00001133d0000E013* + ID_MODEL_FROM_DATABASE=4BRI + + pci:v00001133d0000E013sv00001133sd00001300* +- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCI v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCI v2) + + pci:v00001133d0000E013sv00001133sd0000E013* +- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCI v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCI v2) + + pci:v00001133d0000E014* + ID_MODEL_FROM_DATABASE=Diva Server PRI-30M PCI +@@ -32394,22 +32394,22 @@ pci:v00001133d0000E017* + ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 + + pci:v00001133d0000E017sv00001133sd0000E017* +- ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI-8M 2.0 PCI ++ ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 (Diva Server Voice 4BRI-8M 2.0 PCI) + + pci:v00001133d0000E018* + ID_MODEL_FROM_DATABASE=BRI + + pci:v00001133d0000E018sv00001133sd00001800* +- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCI v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCI v2) + + pci:v00001133d0000E018sv00001133sd0000E018* +- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCI v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCI v2) + + pci:v00001133d0000E019* + ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 + + pci:v00001133d0000E019sv00001133sd0000E019* +- ID_MODEL_FROM_DATABASE=Diva Server Voice PRI 2.0 PCI ++ ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 (Diva Server Voice PRI 2.0 PCI) + + pci:v00001133d0000E01A* + ID_MODEL_FROM_DATABASE=Diva BRI-2FX PCI v2 +@@ -32424,85 +32424,85 @@ pci:v00001133d0000E01C* + ID_MODEL_FROM_DATABASE=PRI + + pci:v00001133d0000E01Csv00001133sd00001C01* +- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-8 PCI v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-8 PCI v3) + + pci:v00001133d0000E01Csv00001133sd00001C02* +- ID_MODEL_FROM_DATABASE=Diva PRI/T1-24 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/T1-24 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C03* +- ID_MODEL_FROM_DATABASE=Diva PRI/E1-30 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1-30 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C04* +- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-CTI PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-CTI PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C05* +- ID_MODEL_FROM_DATABASE=Diva V-PRI/T1-24 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/T1-24 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C06* +- ID_MODEL_FROM_DATABASE=Diva V-PRI/E1-30 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/E1-30 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C07* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1-8 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1-8 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C08* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/T1-24 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/T1-24 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C09* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1-30 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1-30 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C0A* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C0B* +- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/T1-24 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/T1-24 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C0C* +- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/E1-30 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/E1-30 Cornet NQ) + + pci:v00001133d0000E01E* + ID_MODEL_FROM_DATABASE=2PRI + + pci:v00001133d0000E01Esv00001133sd00001E01* +- ID_MODEL_FROM_DATABASE=Diva 2PRI/E1/T1-60 PCI v1 ++ ID_MODEL_FROM_DATABASE=2PRI (Diva 2PRI/E1/T1-60 PCI v1) + + pci:v00001133d0000E01Esv00001133sd0000E01E* +- ID_MODEL_FROM_DATABASE=Diva V-2PRI/E1/T1-60 PCI v1 ++ ID_MODEL_FROM_DATABASE=2PRI (Diva V-2PRI/E1/T1-60 PCI v1) + + pci:v00001133d0000E020* + ID_MODEL_FROM_DATABASE=4PRI + + pci:v00001133d0000E020sv00001133sd00002001* +- ID_MODEL_FROM_DATABASE=Diva 4PRI/E1/T1-120 PCI v1 ++ ID_MODEL_FROM_DATABASE=4PRI (Diva 4PRI/E1/T1-120 PCI v1) + + pci:v00001133d0000E020sv00001133sd0000E020* +- ID_MODEL_FROM_DATABASE=Diva V-4PRI/E1/T1-120 PCI v1 ++ ID_MODEL_FROM_DATABASE=4PRI (Diva V-4PRI/E1/T1-120 PCI v1) + + pci:v00001133d0000E022* + ID_MODEL_FROM_DATABASE=Analog-2 + + pci:v00001133d0000E022sv00001133sd00002200* +- ID_MODEL_FROM_DATABASE=Diva V-Analog-2 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-2 (Diva V-Analog-2 PCI v1) + + pci:v00001133d0000E022sv00001133sd0000E022* +- ID_MODEL_FROM_DATABASE=Diva Analog-2 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-2 (Diva Analog-2 PCI v1) + + pci:v00001133d0000E024* + ID_MODEL_FROM_DATABASE=Analog-4 + + pci:v00001133d0000E024sv00001133sd00002400* +- ID_MODEL_FROM_DATABASE=Diva V-Analog-4 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-4 (Diva V-Analog-4 PCI v1) + + pci:v00001133d0000E024sv00001133sd0000E024* +- ID_MODEL_FROM_DATABASE=Diva Analog-4 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-4 (Diva Analog-4 PCI v1) + + pci:v00001133d0000E028* + ID_MODEL_FROM_DATABASE=Analog-8 + + pci:v00001133d0000E028sv00001133sd00002800* +- ID_MODEL_FROM_DATABASE=Diva V-Analog-8 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-8 (Diva V-Analog-8 PCI v1) + + pci:v00001133d0000E028sv00001133sd0000E028* +- ID_MODEL_FROM_DATABASE=Diva Analog-8 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-8 (Diva Analog-8 PCI v1) + + pci:v00001133d0000E02A* + ID_MODEL_FROM_DATABASE=Diva IPM-300 PCI v1 +@@ -32514,19 +32514,19 @@ pci:v00001133d0000E02E* + ID_MODEL_FROM_DATABASE=4BRI + + pci:v00001133d0000E02Esv00001133sd00002E01* +- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCIe v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCIe v2) + + pci:v00001133d0000E02Esv00001133sd0000E02E* +- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCIe v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCIe v2) + + pci:v00001133d0000E032* + ID_MODEL_FROM_DATABASE=BRI + + pci:v00001133d0000E032sv00001133sd00003201* +- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCIe v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCIe v2) + + pci:v00001133d0000E032sv00001133sd0000E032* +- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCIe v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCIe v2) + + pci:v00001133d0000E034* + ID_MODEL_FROM_DATABASE=Diva BRI-CTI PCI v2 +@@ -32574,88 +32574,88 @@ pci:v00001137d00000042* + ID_MODEL_FROM_DATABASE=VIC Management Controller + + pci:v00001137d00000042sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC P81E PCIe Management Controller) + + pci:v00001137d00000042sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225 PCIe Management Controller) + + pci:v00001137d00000042sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1285 PCIe Management Controller) + + pci:v00001137d00000042sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225T PCIe Management Controller) + + pci:v00001137d00000043* + ID_MODEL_FROM_DATABASE=VIC Ethernet NIC + + pci:v00001137d00000043sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC P81E PCIe Ethernet NIC) + + pci:v00001137d00000043sv00001137sd00000048* +- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC M81KR Mezzanine Ethernet NIC) + + pci:v00001137d00000043sv00001137sd0000004F* +- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1280 Mezzanine Ethernet NIC) + + pci:v00001137d00000043sv00001137sd00000084* +- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1240 MLOM Ethernet NIC) + + pci:v00001137d00000043sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225 PCIe Ethernet NIC) + + pci:v00001137d00000043sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1285 PCIe Ethernet NIC) + + pci:v00001137d00000043sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225T PCIe Ethernet NIC) + + pci:v00001137d00000044* + ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic + + pci:v00001137d00000044sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC P81E PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd00000048* +- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC M81KR Mezzanine Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd0000004F* +- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1280 Mezzanine Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd00000084* +- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1240 MLOM Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225 PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1285 PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225T PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000045* + ID_MODEL_FROM_DATABASE=VIC FCoE HBA + + pci:v00001137d00000045sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC P81E PCIe FCoE HBA) + + pci:v00001137d00000045sv00001137sd00000048* +- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC M81KR Mezzanine FCoE HBA) + + pci:v00001137d00000045sv00001137sd0000004F* +- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1280 Mezzanine FCoE HBA) + + pci:v00001137d00000045sv00001137sd00000084* +- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1240 MLOM FCoE HBA) + + pci:v00001137d00000045sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225 PCIe FCoE HBA) + + pci:v00001137d00000045sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1285 PCIe FCoE HBA) + + pci:v00001137d00000045sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225T PCIe FCoE HBA) + + pci:v00001137d0000004E* + ID_MODEL_FROM_DATABASE=VIC 82 PCIe Upstream Port +@@ -32814,49 +32814,49 @@ pci:v00001148d00004000* + ID_MODEL_FROM_DATABASE=FDDI Adapter + + pci:v00001148d00004000sv00000E11sd0000B03B* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS Fibre SC ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS Fibre SC) + + pci:v00001148d00004000sv00000E11sd0000B03C* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre SC ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre SC) + + pci:v00001148d00004000sv00000E11sd0000B03D* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS UTP ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS UTP) + + pci:v00001148d00004000sv00000E11sd0000B03E* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS UTP ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS UTP) + + pci:v00001148d00004000sv00000E11sd0000B03F* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre MIC ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre MIC) + + pci:v00001148d00004000sv00001148sd00005521* +- ID_MODEL_FROM_DATABASE=FDDI SK-5521 (SK-NET FDDI-UP) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5521 (SK-NET FDDI-UP)) + + pci:v00001148d00004000sv00001148sd00005522* +- ID_MODEL_FROM_DATABASE=FDDI SK-5522 (SK-NET FDDI-UP DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5522 (SK-NET FDDI-UP DAS)) + + pci:v00001148d00004000sv00001148sd00005541* +- ID_MODEL_FROM_DATABASE=FDDI SK-5541 (SK-NET FDDI-FP) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5541 (SK-NET FDDI-FP)) + + pci:v00001148d00004000sv00001148sd00005543* +- ID_MODEL_FROM_DATABASE=FDDI SK-5543 (SK-NET FDDI-LP) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5543 (SK-NET FDDI-LP)) + + pci:v00001148d00004000sv00001148sd00005544* +- ID_MODEL_FROM_DATABASE=FDDI SK-5544 (SK-NET FDDI-LP DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5544 (SK-NET FDDI-LP DAS)) + + pci:v00001148d00004000sv00001148sd00005821* +- ID_MODEL_FROM_DATABASE=FDDI SK-5821 (SK-NET FDDI-UP64) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5821 (SK-NET FDDI-UP64)) + + pci:v00001148d00004000sv00001148sd00005822* +- ID_MODEL_FROM_DATABASE=FDDI SK-5822 (SK-NET FDDI-UP64 DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5822 (SK-NET FDDI-UP64 DAS)) + + pci:v00001148d00004000sv00001148sd00005841* +- ID_MODEL_FROM_DATABASE=FDDI SK-5841 (SK-NET FDDI-FP64) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5841 (SK-NET FDDI-FP64)) + + pci:v00001148d00004000sv00001148sd00005843* +- ID_MODEL_FROM_DATABASE=FDDI SK-5843 (SK-NET FDDI-LP64) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5843 (SK-NET FDDI-LP64)) + + pci:v00001148d00004000sv00001148sd00005844* +- ID_MODEL_FROM_DATABASE=FDDI SK-5844 (SK-NET FDDI-LP64 DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5844 (SK-NET FDDI-LP64 DAS)) + + pci:v00001148d00004200* + ID_MODEL_FROM_DATABASE=Token Ring adapter +@@ -32865,115 +32865,115 @@ pci:v00001148d00004300* + ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) + + pci:v00001148d00004300sv00001148sd00009821* +- ID_MODEL_FROM_DATABASE=SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T)) + + pci:v00001148d00004300sv00001148sd00009822* +- ID_MODEL_FROM_DATABASE=SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link)) + + pci:v00001148d00004300sv00001148sd00009841* +- ID_MODEL_FROM_DATABASE=SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX)) + + pci:v00001148d00004300sv00001148sd00009842* +- ID_MODEL_FROM_DATABASE=SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link)) + + pci:v00001148d00004300sv00001148sd00009843* +- ID_MODEL_FROM_DATABASE=SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX)) + + pci:v00001148d00004300sv00001148sd00009844* +- ID_MODEL_FROM_DATABASE=SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link)) + + pci:v00001148d00004300sv00001148sd00009861* +- ID_MODEL_FROM_DATABASE=SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition)) + + pci:v00001148d00004300sv00001148sd00009862* +- ID_MODEL_FROM_DATABASE=SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link)) + + pci:v00001148d00004300sv00001148sd00009871* +- ID_MODEL_FROM_DATABASE=SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX)) + + pci:v00001148d00004300sv00001148sd00009872* + ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) + + pci:v00001148d00004300sv00001259sd00002970* +- ID_MODEL_FROM_DATABASE=AT-2970SX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002971* +- ID_MODEL_FROM_DATABASE=AT-2970LX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002972* +- ID_MODEL_FROM_DATABASE=AT-2970TX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002973* +- ID_MODEL_FROM_DATABASE=AT-2971SX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971SX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002974* +- ID_MODEL_FROM_DATABASE=AT-2971T Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971T Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002975* +- ID_MODEL_FROM_DATABASE=AT-2970SX/2SC Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX/2SC Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002976* +- ID_MODEL_FROM_DATABASE=AT-2970LX/2SC Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX/2SC Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002977* +- ID_MODEL_FROM_DATABASE=AT-2970TX/2TX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX/2TX Gigabit Ethernet Adapter) + + pci:v00001148d00004320* + ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC + + pci:v00001148d00004320sv00001148sd00000121* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8001 Adapter) + + pci:v00001148d00004320sv00001148sd00000221* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8002 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8002 Adapter) + + pci:v00001148d00004320sv00001148sd00000321* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8003 Adapter) + + pci:v00001148d00004320sv00001148sd00000421* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8004 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8004 Adapter) + + pci:v00001148d00004320sv00001148sd00000621* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8006 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8006 Adapter) + + pci:v00001148d00004320sv00001148sd00000721* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8007 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8007 Adapter) + + pci:v00001148d00004320sv00001148sd00000821* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8008 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8008 Adapter) + + pci:v00001148d00004320sv00001148sd00000921* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8009 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8009 Adapter) + + pci:v00001148d00004320sv00001148sd00001121* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8011 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8011 Adapter) + + pci:v00001148d00004320sv00001148sd00001221* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8012 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8012 Adapter) + + pci:v00001148d00004320sv00001148sd00003221* +- ID_MODEL_FROM_DATABASE=SK-9521 V2.0 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 V2.0 10/100/1000Base-T Adapter) + + pci:v00001148d00004320sv00001148sd00005021* +- ID_MODEL_FROM_DATABASE=SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter) + + pci:v00001148d00004320sv00001148sd00005041* +- ID_MODEL_FROM_DATABASE=SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter) + + pci:v00001148d00004320sv00001148sd00005043* +- ID_MODEL_FROM_DATABASE=SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter) + + pci:v00001148d00004320sv00001148sd00005051* +- ID_MODEL_FROM_DATABASE=SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter) + + pci:v00001148d00004320sv00001148sd00005061* +- ID_MODEL_FROM_DATABASE=SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter) + + pci:v00001148d00004320sv00001148sd00005071* +- ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter) + + pci:v00001148d00004320sv00001148sd00009521* +- ID_MODEL_FROM_DATABASE=SK-9521 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 10/100/1000Base-T Adapter) + + pci:v00001148d00004400* + ID_MODEL_FROM_DATABASE=SK-9Dxx Gigabit Ethernet Adapter +@@ -32991,25 +32991,25 @@ pci:v00001148d00009E00* + ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 + + pci:v00001148d00009E00sv00001148sd00002100* +- ID_MODEL_FROM_DATABASE=SK-9E21 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21 Server Adapter) + + pci:v00001148d00009E00sv00001148sd000021D0* +- ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21D 10/100/1000Base-T Adapter) + + pci:v00001148d00009E00sv00001148sd00002200* +- ID_MODEL_FROM_DATABASE=SK-9E22 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E22 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00008100* +- ID_MODEL_FROM_DATABASE=SK-9E81 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E81 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00008200* +- ID_MODEL_FROM_DATABASE=SK-9E82 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E82 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00009100* +- ID_MODEL_FROM_DATABASE=SK-9E91 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E91 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00009200* +- ID_MODEL_FROM_DATABASE=SK-9E92 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E92 Server Adapter) + + pci:v00001148d00009E01* + ID_MODEL_FROM_DATABASE=SK-9E21M 10/100/1000Base-T Adapter +@@ -33111,16 +33111,16 @@ pci:v0000114Fd0000001D* + ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI + + pci:v0000114Fd0000001Dsv0000114Fsd00000050* +- ID_MODEL_FROM_DATABASE=DataFire RAS E1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS E1 Adapter) + + pci:v0000114Fd0000001Dsv0000114Fsd00000051* +- ID_MODEL_FROM_DATABASE=DataFire RAS Dual E1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual E1 Adapter) + + pci:v0000114Fd0000001Dsv0000114Fsd00000052* +- ID_MODEL_FROM_DATABASE=DataFire RAS T1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS T1 Adapter) + + pci:v0000114Fd0000001Dsv0000114Fsd00000053* +- ID_MODEL_FROM_DATABASE=DataFire RAS Dual T1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual T1 Adapter) + + pci:v0000114Fd00000023* + ID_MODEL_FROM_DATABASE=AccelePort RAS +@@ -33129,10 +33129,10 @@ pci:v0000114Fd00000024* + ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U + + pci:v0000114Fd00000024sv0000114Fsd00000030* +- ID_MODEL_FROM_DATABASE=DataFire RAS BRI U Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI U Adapter) + + pci:v0000114Fd00000024sv0000114Fsd00000031* +- ID_MODEL_FROM_DATABASE=DataFire RAS BRI S/T Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI S/T Adapter) + + pci:v0000114Fd00000026* + ID_MODEL_FROM_DATABASE=AccelePort 4r 920 +@@ -33156,19 +33156,19 @@ pci:v0000114Fd00000040* + ID_MODEL_FROM_DATABASE=AccelePort Xp + + pci:v0000114Fd00000040sv0000114Fsd00000042* +- ID_MODEL_FROM_DATABASE=AccelePort 2p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 2p PCI) + + pci:v0000114Fd00000040sv0000114Fsd00000043* +- ID_MODEL_FROM_DATABASE=AccelePort 4p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 4p PCI) + + pci:v0000114Fd00000040sv0000114Fsd00000044* +- ID_MODEL_FROM_DATABASE=AccelePort 8p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 8p PCI) + + pci:v0000114Fd00000040sv0000114Fsd00000045* +- ID_MODEL_FROM_DATABASE=AccelePort 16p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 16p PCI) + + pci:v0000114Fd00000040sv0000114Fsd0000004E* +- ID_MODEL_FROM_DATABASE=AccelePort 32p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 32p PCI) + + pci:v0000114Fd00000042* + ID_MODEL_FROM_DATABASE=AccelePort 2p +@@ -33300,22 +33300,22 @@ pci:v0000115Dd00000003* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000003sv00001014sd00000181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv00001014sd00001181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv00001014sd00008181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv00001014sd00009181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv0000115Dsd00000181* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000003sv0000115Dsd00000182* +- ID_MODEL_FROM_DATABASE=RealPort2 CardBus Ethernet 10/100 (R2BE-100) ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (RealPort2 CardBus Ethernet 10/100 (R2BE-100)) + + pci:v0000115Dd00000003sv0000115Dsd00001181* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33324,19 +33324,19 @@ pci:v0000115Dd00000003sv00001179sd00000181* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000003sv00008086sd00008181* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) + + pci:v0000115Dd00000003sv00008086sd00009181* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) + + pci:v0000115Dd00000005* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000005sv00001014sd00000182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000005sv00001014sd00001182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000005sv0000115Dsd00000182* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33348,10 +33348,10 @@ pci:v0000115Dd00000007* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000007sv00001014sd00000182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000007sv00001014sd00001182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000007sv0000115Dsd00000182* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33363,7 +33363,7 @@ pci:v0000115Dd0000000B* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd0000000Bsv00001014sd00000183* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd0000000Bsv0000115Dsd00000183* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33375,7 +33375,7 @@ pci:v0000115Dd0000000F* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd0000000Fsv00001014sd00000183* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd0000000Fsv0000115Dsd00000183* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33387,22 +33387,22 @@ pci:v0000115Dd00000101* + ID_MODEL_FROM_DATABASE=Cardbus 56k modem + + pci:v0000115Dd00000101sv0000115Dsd00001081* +- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus 56k modem (Cardbus 56k Modem) + + pci:v0000115Dd00000103* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem + + pci:v0000115Dd00000103sv00001014sd00009181* +- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus 56k Modem) + + pci:v0000115Dd00000103sv00001115sd00001181* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 100 + 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus Ethernet 100 + 56k Modem) + + pci:v0000115Dd00000103sv0000115Dsd00001181* +- ID_MODEL_FROM_DATABASE=CBEM56G-100 Ethernet + 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (CBEM56G-100 Ethernet + 56k Modem) + + pci:v0000115Dd00000103sv00008086sd00009181* +- ID_MODEL_FROM_DATABASE=PRO/100 LAN + Modem56 CardBus ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (PRO/100 LAN + Modem56 CardBus) + + pci:v0000115E* + ID_VENDOR_FROM_DATABASE=Peer Protocols Inc +@@ -33429,7 +33429,7 @@ pci:v00001163d00002000* + ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 + + pci:v00001163d00002000sv00001092sd00002000* +- ID_MODEL_FROM_DATABASE=Stealth II S220 ++ ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 (Stealth II S220) + + pci:v00001164* + ID_VENDOR_FROM_DATABASE=Advanced Peripherals Technologies +@@ -33510,7 +33510,7 @@ pci:v00001166d00000132* + ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge + + pci:v00001166d00000132sv00001166sd00000132* +- ID_MODEL_FROM_DATABASE=HT2000 PCI-Express bridge ++ ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge (HT2000 PCI-Express bridge) + + pci:v00001166d00000140* + ID_MODEL_FROM_DATABASE=HT2100 PCI-Express Bridge +@@ -33531,13 +33531,13 @@ pci:v00001166d00000201* + ID_MODEL_FROM_DATABASE=CSB5 South Bridge + + pci:v00001166d00000201sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=CSB5 South Bridge (CT8 mainboard) + + pci:v00001166d00000203* + ID_MODEL_FROM_DATABASE=CSB6 South Bridge + + pci:v00001166d00000203sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series ++ ID_MODEL_FROM_DATABASE=CSB6 South Bridge (PRIMERGY RX/TX series) + + pci:v00001166d00000205* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] Legacy South Bridge +@@ -33549,37 +33549,37 @@ pci:v00001166d00000212* + ID_MODEL_FROM_DATABASE=CSB5 IDE Controller + + pci:v00001166d00000212sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1750) + + pci:v00001166d00000212sv00001028sd0000810B* +- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 ++ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1650/2550) + + pci:v00001166d00000212sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (CT8 mainboard) + + pci:v00001166d00000213* + ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller + + pci:v00001166d00000213sv00001028sd00004134* +- ID_MODEL_FROM_DATABASE=PowerEdge 600SC ++ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PowerEdge 600SC) + + pci:v00001166d00000213sv00001028sd0000C134* +- ID_MODEL_FROM_DATABASE=Poweredge SC600 ++ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (Poweredge SC600) + + pci:v00001166d00000213sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard IDE ++ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PRIMERGY RX/TX series onboard IDE) + + pci:v00001166d00000214* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE + + pci:v00001166d00000214sv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 IDE ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE (PowerEdge 2970 HT1000 IDE) + + pci:v00001166d00000217* + ID_MODEL_FROM_DATABASE=CSB6 IDE Controller + + pci:v00001166d00000217sv00001028sd00004134* +- ID_MODEL_FROM_DATABASE=Poweredge SC600 ++ ID_MODEL_FROM_DATABASE=CSB6 IDE Controller (Poweredge SC600) + + pci:v00001166d0000021B* + ID_MODEL_FROM_DATABASE=HT1100 HD Audio +@@ -33588,22 +33588,22 @@ pci:v00001166d00000220* + ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller + + pci:v00001166d00000220sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller (CT8 mainboard) + + pci:v00001166d00000221* + ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller + + pci:v00001166d00000221sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard OHCI ++ ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller (PRIMERGY RX/TX series onboard OHCI) + + pci:v00001166d00000223* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB + + pci:v00001166d00000223sv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 USB Controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge 2970 HT1000 USB Controller) + + pci:v00001166d00000223sv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 USB Controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge T605 HT1000 USB Controller) + + pci:v00001166d00000225* + ID_MODEL_FROM_DATABASE=CSB5 LPC bridge +@@ -33612,22 +33612,22 @@ pci:v00001166d00000227* + ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge + + pci:v00001166d00000227sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series ++ ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge (PRIMERGY RX/TX series) + + pci:v00001166d00000230* + ID_MODEL_FROM_DATABASE=CSB5 LPC bridge + + pci:v00001166d00000230sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=CSB5 LPC bridge (CT8 mainboard) + + pci:v00001166d00000234* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC + + pci:v00001166d00000234sv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 LPC ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge 2970 HT1000 LPC) + + pci:v00001166d00000234sv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 LPC ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge T605 HT1000 LPC) + + pci:v00001166d00000235* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] XIOAPIC0-2 +@@ -33648,13 +33648,13 @@ pci:v00001166d0000024A* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) + + pci:v00001166d0000024Asv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) (PowerEdge T605 onboard SATA Controller) + + pci:v00001166d0000024B* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) + + pci:v00001166d0000024Bsv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 SATA controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) (PowerEdge 2970 HT1000 SATA controller) + + pci:v00001166d00000406* + ID_MODEL_FROM_DATABASE=HT1100 PCI-X Bridge +@@ -33666,7 +33666,7 @@ pci:v00001166d0000040A* + ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge + + pci:v00001166d0000040Asv00001028sd00000223* +- ID_MODEL_FROM_DATABASE=PowerEdge R905 HT1100 ISA-LPC Bridge ++ ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge (PowerEdge R905 HT1100 ISA-LPC Bridge) + + pci:v00001166d00000410* + ID_MODEL_FROM_DATABASE=HT1100 SATA Controller (Native SATA Mode) +@@ -33783,7 +33783,7 @@ pci:v00001179d00000601* + ID_MODEL_FROM_DATABASE=CPU to PCI bridge + + pci:v00001179d00000601sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite Pro ++ ID_MODEL_FROM_DATABASE=CPU to PCI bridge (Satellite Pro) + + pci:v00001179d00000602* + ID_MODEL_FROM_DATABASE=PCI to ISA bridge +@@ -33798,13 +33798,13 @@ pci:v00001179d0000060A* + ID_MODEL_FROM_DATABASE=ToPIC95 + + pci:v00001179d0000060Asv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite Pro ++ ID_MODEL_FROM_DATABASE=ToPIC95 (Satellite Pro) + + pci:v00001179d0000060F* + ID_MODEL_FROM_DATABASE=ToPIC97 + + pci:v00001179d0000060Fsv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite 4010 ++ ID_MODEL_FROM_DATABASE=ToPIC97 (Satellite 4010) + + pci:v00001179d00000617* + ID_MODEL_FROM_DATABASE=ToPIC100 PCI to Cardbus Bridge with ZV Support +@@ -33846,16 +33846,16 @@ pci:v0000117Cd00000030* + ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter + + pci:v0000117Cd00000030sv0000117Csd00008013* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL4D ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4D) + + pci:v0000117Cd00000030sv0000117Csd00008014* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL4S ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4S) + + pci:v0000117Cd00000030sv0000117Csd00008027* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D) + + pci:v0000117Cd00000030sv0000117Csd0000802F* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D Low Profile ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D Low Profile) + + pci:v0000117Cd00000033* + ID_MODEL_FROM_DATABASE=SAS Adapter +@@ -33882,67 +33882,67 @@ pci:v00001180d00000475* + ID_MODEL_FROM_DATABASE=RL5c475 + + pci:v00001180d00000475sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 CardBus bridge ++ ID_MODEL_FROM_DATABASE=RL5c475 (vpr Matrix 170B4 CardBus bridge) + + pci:v00001180d00000476* + ID_MODEL_FROM_DATABASE=RL5c476 II + + pci:v00001180d00000476sv00001014sd00000185* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad A/T/X Series) + + pci:v00001180d00000476sv00001014sd0000056C* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad Z60t) + + pci:v00001180d00000476sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Latitude X300 laptop) + + pci:v00001180d00000476sv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Inspiron 6000 laptop) + + pci:v00001180d00000476sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6710b) + + pci:v00001180d00000476sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6910p) + + pci:v00001180d00000476sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (A6J-Q008) + + pci:v00001180d00000476sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=RL5c476 II (V6800V) + + pci:v00001180d00000476sv00001043sd00001987* +- ID_MODEL_FROM_DATABASE=Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines ) ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines )) + + pci:v00001180d00000476sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Vaio PCG-FX403) + + pci:v00001180d00000476sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00001180d00000476sv0000104Dsd0000814E* +- ID_MODEL_FROM_DATABASE=VAIO GRZ390Z ++ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO GRZ390Z) + + pci:v00001180d00000476sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Panasonic CF-Y5 laptop) + + pci:v00001180d00000476sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (X10 Laptop) + + pci:v00001180d00000476sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=RL5c476 II (P30/P35 notebook) + + pci:v00001180d00000476sv000014EFsd00000220* +- ID_MODEL_FROM_DATABASE=PCD-RP-220S ++ ID_MODEL_FROM_DATABASE=RL5c476 II (PCD-RP-220S) + + pci:v00001180d00000476sv000017AAsd0000201C* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad X60/X60s) + + pci:v00001180d00000476sv000017AAsd000020C4* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad T61) + + pci:v00001180d00000476sv000017AAsd000020C6* +- ID_MODEL_FROM_DATABASE=ThinkPad R61 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad R61) + + pci:v00001180d00000477* + ID_MODEL_FROM_DATABASE=RL5c477 +@@ -33951,7 +33951,7 @@ pci:v00001180d00000478* + ID_MODEL_FROM_DATABASE=RL5c478 + + pci:v00001180d00000478sv00001014sd00000184* +- ID_MODEL_FROM_DATABASE=ThinkPad A30p ++ ID_MODEL_FROM_DATABASE=RL5c478 (ThinkPad A30p) + + pci:v00001180d00000511* + ID_MODEL_FROM_DATABASE=R5C511 +@@ -33960,43 +33960,43 @@ pci:v00001180d00000522* + ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller + + pci:v00001180d00000522sv00001014sd000001CF* +- ID_MODEL_FROM_DATABASE=ThinkPad A30p ++ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (ThinkPad A30p) + + pci:v00001180d00000522sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (V6800V) + + pci:v00001180d00000551* + ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller + + pci:v00001180d00000551sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller (vpr Matrix 170B4) + + pci:v00001180d00000552* + ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller + + pci:v00001180d00000552sv00001014sd00000511* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad A/T/X Series) + + pci:v00001180d00000552sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Latitude X300 laptop) + + pci:v00001180d00000552sv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Inspiron 6000 laptop) + + pci:v00001180d00000552sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (A6J-Q008) + + pci:v00001180d00000552sv00001043sd00001757* +- ID_MODEL_FROM_DATABASE=M2400N laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (M2400N laptop) + + pci:v00001180d00000552sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (X10 Laptop) + + pci:v00001180d00000552sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (P30/P35 notebook) + + pci:v00001180d00000552sv000017AAsd0000201E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad X60/X60s) + + pci:v00001180d00000554* + ID_MODEL_FROM_DATABASE=R5C554 +@@ -34011,37 +34011,37 @@ pci:v00001180d00000592* + ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter + + pci:v00001180d00000592sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Aspire 5920G) + + pci:v00001180d00000592sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (XPS M1210) + + pci:v00001180d00000592sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Inspiron 1420) + + pci:v00001180d00000592sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V3242AU) + + pci:v00001180d00000592sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V6133CL) + + pci:v00001180d00000592sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv6700) + + pci:v00001180d00000592sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv9668eg Laptop) + + pci:v00001180d00000592sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (A6J-Q008) + + pci:v00001180d00000592sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (V6800V) + + pci:v00001180d00000592sv0000144Dsd0000C018* +- ID_MODEL_FROM_DATABASE=X20 IV ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (X20 IV) + + pci:v00001180d00000592sv000017AAsd000020CA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (ThinkPad T61) + + pci:v00001180d00000811* + ID_MODEL_FROM_DATABASE=R5C811 +@@ -34050,94 +34050,94 @@ pci:v00001180d00000822* + ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter + + pci:v00001180d00000822sv00001014sd00000556* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s / Z60t ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60s / Z60t) + + pci:v00001180d00000822sv00001014sd00000598* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60m ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad Z60m) + + pci:v00001180d00000822sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Aspire 5920G) + + pci:v00001180d00000822sv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 6000 laptop) + + pci:v00001180d00000822sv00001028sd000001A2* +- ID_MODEL_FROM_DATABASE=Inspiron 9200 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 9200) + + pci:v00001180d00000822sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (XPS M1210) + + pci:v00001180d00000822sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 1420) + + pci:v00001180d00000822sv0000103Csd000003B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V3242AU) + + pci:v00001180d00000822sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V6133CL) + + pci:v00001180d00000822sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Compaq 6910p) + + pci:v00001180d00000822sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv6700) + + pci:v00001180d00000822sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv9668eg Laptop) + + pci:v00001180d00000822sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (A6J-Q008) + + pci:v00001180d00000822sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=ASUS V6800V ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ASUS V6800V) + + pci:v00001180d00000822sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Panasonic CF-Y5 laptop) + + pci:v00001180d00000822sv0000144Dsd0000C018* +- ID_MODEL_FROM_DATABASE=X20 IV ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (X20 IV) + + pci:v00001180d00000822sv000017AAsd0000201D* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60/X60s) + + pci:v00001180d00000822sv000017AAsd000020C7* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad T61) + + pci:v00001180d00000822sv000017AAsd000020C8* +- ID_MODEL_FROM_DATABASE=ThinkPad W500 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad W500) + + pci:v00001180d00000832* + ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller + + pci:v00001180d00000832sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Aspire 5920G) + + pci:v00001180d00000832sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (XPS M1210) + + pci:v00001180d00000832sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Inspiron 1420) + + pci:v00001180d00000832sv00001028sd0000024D* +- ID_MODEL_FROM_DATABASE=Latitude E4300 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Latitude E4300) + + pci:v00001180d00000832sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V3242AU) + + pci:v00001180d00000832sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V6133CL) + + pci:v00001180d00000832sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Compaq 6910p) + + pci:v00001180d00000832sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv6700) + + pci:v00001180d00000832sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv9668eg Laptop) + + pci:v00001180d00000832sv000017AAsd000020C7* +- ID_MODEL_FROM_DATABASE=ThinkPad R61 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (ThinkPad R61) + + pci:v00001180d00000841* + ID_MODEL_FROM_DATABASE=R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394 +@@ -34146,58 +34146,58 @@ pci:v00001180d00000843* + ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller + + pci:v00001180d00000843sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Aspire 5920G) + + pci:v00001180d00000843sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (XPS M1210) + + pci:v00001180d00000843sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Inspiron 1420) + + pci:v00001180d00000843sv00001028sd000001F5* +- ID_MODEL_FROM_DATABASE=Dell Inspiron 1501 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Inspiron 1501) + + pci:v00001180d00000843sv00001028sd0000024F* +- ID_MODEL_FROM_DATABASE=Dell Latitude e6500 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Latitude e6500) + + pci:v00001180d00000843sv0000103Csd000003B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V3242AU) + + pci:v00001180d00000843sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V6133CL) + + pci:v00001180d00000843sv00001183sd00000843* +- ID_MODEL_FROM_DATABASE=Alienware Aurora m9700 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Alienware Aurora m9700) + + pci:v00001180d00000852* + ID_MODEL_FROM_DATABASE=xD-Picture Card Controller + + pci:v00001180d00000852sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Aspire 5920G) + + pci:v00001180d00000852sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Inspiron 1420) + + pci:v00001180d00000852sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V3242AU) + + pci:v00001180d00000852sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V6133CL) + + pci:v00001180d00000852sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv6700) + + pci:v00001180d00000852sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv9668eg Laptop) + + pci:v00001180d00000852sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (V6800V) + + pci:v00001180d00000852sv00001180sd00000852* +- ID_MODEL_FROM_DATABASE=Pavilion 2410us ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion 2410us) + + pci:v00001180d00000852sv00001324sd000010CF* +- ID_MODEL_FROM_DATABASE=P7120 ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (P7120) + + pci:v00001180d0000E230* + ID_MODEL_FROM_DATABASE=R5U2xx (R5U230 / R5U231 / R5U241) [Memory Stick Host Controller] +@@ -34206,19 +34206,19 @@ pci:v00001180d0000E476* + ID_MODEL_FROM_DATABASE=CardBus bridge + + pci:v00001180d0000E476sv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6410) + + pci:v00001180d0000E476sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6510) + + pci:v00001180d0000E822* + ID_MODEL_FROM_DATABASE=MMC/SD Host Controller + + pci:v00001180d0000E822sv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6410) + + pci:v00001180d0000E822sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6510) + + pci:v00001180d0000E823* + ID_MODEL_FROM_DATABASE=PCIe SDXC/MMC Host Controller +@@ -34227,10 +34227,10 @@ pci:v00001180d0000E832* + ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller + + pci:v00001180d0000E832sv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6410) + + pci:v00001180d0000E832sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6510) + + pci:v00001180d0000E852* + ID_MODEL_FROM_DATABASE=PCIe xD-Picture Card Controller +@@ -34254,10 +34254,10 @@ pci:v00001186d00001002* + ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet + + pci:v00001186d00001002sv00001186sd00001002* +- ID_MODEL_FROM_DATABASE=DFE-550TX/FX ++ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-550TX/FX) + + pci:v00001186d00001002sv00001186sd00001012* +- ID_MODEL_FROM_DATABASE=DFE-580TX ++ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-580TX) + + pci:v00001186d00001025* + ID_MODEL_FROM_DATABASE=AirPlus Xtreme G DWL-G650 Adapter +@@ -34272,13 +34272,13 @@ pci:v00001186d00001300* + ID_MODEL_FROM_DATABASE=RTL8139 Ethernet + + pci:v00001186d00001300sv00001186sd00001300* +- ID_MODEL_FROM_DATABASE=DFE-538TX 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-538TX 10/100 Ethernet Adapter) + + pci:v00001186d00001300sv00001186sd00001301* +- ID_MODEL_FROM_DATABASE=DFE-530TX+ 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-530TX+ 10/100 Ethernet Adapter) + + pci:v00001186d00001300sv00001186sd00001303* +- ID_MODEL_FROM_DATABASE=DFE-528TX 10/100 Fast Ethernet PCI Adapter ++ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-528TX 10/100 Fast Ethernet PCI Adapter) + + pci:v00001186d00001340* + ID_MODEL_FROM_DATABASE=DFE-690TXD CardBus PC Card +@@ -34296,10 +34296,10 @@ pci:v00001186d00003300* + ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] + + pci:v00001186d00003300sv00001186sd00003300* +- ID_MODEL_FROM_DATABASE=DWL-610 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-610 Wireless Cardbus Adapter) + + pci:v00001186d00003300sv00001186sd00003301* +- ID_MODEL_FROM_DATABASE=DWL-510 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-510 Wireless PCI Adapter) + + pci:v00001186d00003A10* + ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter(rev.B) +@@ -34317,7 +34317,7 @@ pci:v00001186d00004300* + ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter + + pci:v00001186d00004300sv00001186sd00004B10* +- ID_MODEL_FROM_DATABASE=DGE-560T PCI Express (x1) Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter (DGE-560T PCI Express (x1) Gigabit Ethernet Adapter) + + pci:v00001186d00004302* + ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter (rev.C1) [Realtek RTL8169] +@@ -34338,7 +34338,7 @@ pci:v00001186d00004C00* + ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter + + pci:v00001186d00004C00sv00001186sd00004C00* +- ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (DGE-530T Gigabit Ethernet Adapter) + + pci:v00001186d00008400* + ID_MODEL_FROM_DATABASE=D-Link DWL-650+ CardBus PC Card +@@ -34620,7 +34620,7 @@ pci:v000011ABd00001FA6* + ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter + + pci:v000011ABd00001FA6sv00001186sd00003B08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1) ++ ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1)) + + pci:v000011ABd00001FA7* + ID_MODEL_FROM_DATABASE=88W8310 and 88W8000G [Libertas] 802.11g client chipset +@@ -34629,13 +34629,13 @@ pci:v000011ABd00001FAA* + ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless + + pci:v000011ABd00001FAAsv00001385sd00004E00* +- ID_MODEL_FROM_DATABASE=WG511v2 54 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG511v2 54 Mbps Wireless PC Card) + + pci:v000011ABd00001FAAsv00001385sd00006B00* +- ID_MODEL_FROM_DATABASE=WG311v3 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG311v3 802.11g Wireless PCI Adapter) + + pci:v000011ABd00001FAAsv00001737sd00000040* +- ID_MODEL_FROM_DATABASE=WPC54G v5 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WPC54G v5 802.11g Wireless-G Notebook Adapter) + + pci:v000011ABd00002211* + ID_MODEL_FROM_DATABASE=88SB2211 PCI Express to PCI Bridge +@@ -34647,19 +34647,19 @@ pci:v000011ABd00002A02* + ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless + + pci:v000011ABd00002A02sv000007D1sd00003B02* +- ID_MODEL_FROM_DATABASE=DIR-615 rev. A1 Mini PCI Wireless Module ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (DIR-615 rev. A1 Mini PCI Wireless Module) + + pci:v000011ABd00002A02sv00001385sd00007C00* +- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless PC Card) + + pci:v000011ABd00002A02sv00001385sd00007C01* +- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter) + + pci:v000011ABd00002A02sv00001385sd00007E00* +- ID_MODEL_FROM_DATABASE=WN311T RangeMax Next 300 Mbps Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN311T RangeMax Next 300 Mbps Wireless PCI Adapter) + + pci:v000011ABd00002A02sv00001799sd0000801B* +- ID_MODEL_FROM_DATABASE=F5D8011 v2 802.11n N1 Wireless Notebook Card ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (F5D8011 v2 802.11n N1 Wireless Notebook Card) + + pci:v000011ABd00002A08* + ID_MODEL_FROM_DATABASE=88W8362e [TopDog] 802.11a/b/g/n Wireless +@@ -34701,58 +34701,58 @@ pci:v000011ABd00004320* + ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller + + pci:v000011ABd00004320sv00001019sd00000F38* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) + + pci:v000011ABd00004320sv00001019sd00008001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) + + pci:v000011ABd00004320sv00001043sd0000173C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004320sv00001043sd0000811A* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004320sv0000105Bsd00000C19* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Foxconn) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Foxconn)) + + pci:v000011ABd00004320sv000010B8sd0000B452* +- ID_MODEL_FROM_DATABASE=EZ Card 1000 (SMC9452TXV.2) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (EZ Card 1000 (SMC9452TXV.2)) + + pci:v000011ABd00004320sv000011ABsd00000121* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8001) + + pci:v000011ABd00004320sv000011ABsd00000321* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8003) + + pci:v000011ABd00004320sv000011ABsd00001021* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8010 ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8010) + + pci:v000011ABd00004320sv000011ABsd00004320* +- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus)) + + pci:v000011ABd00004320sv000011ABsd00005021* +- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit)) + + pci:v000011ABd00004320sv000011ABsd00009521* +- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit)) + + pci:v000011ABd00004320sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte)) + + pci:v000011ABd00004320sv0000147Bsd00001406* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Abit) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Abit)) + + pci:v000011ABd00004320sv000015D4sd00000047* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Iwill) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Iwill)) + + pci:v000011ABd00004320sv00001695sd00009025* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Epox) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Epox)) + + pci:v000011ABd00004320sv000017F2sd00001C03* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Albatron) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Albatron)) + + pci:v000011ABd00004320sv0000270Fsd00002803* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Chaintech) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Chaintech)) + + pci:v000011ABd00004340* + ID_MODEL_FROM_DATABASE=88E8021 PCI-X IPMI Gigabit Ethernet Controller +@@ -34779,115 +34779,115 @@ pci:v000011ABd00004347* + ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller + + pci:v000011ABd00004347sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 PrAMC Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller (Telum ASLP10 PrAMC Gigabit Ethernet) + + pci:v000011ABd00004350* + ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004350sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (Toshiba) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (Toshiba)) + + pci:v000011ABd00004350sv000011ABsd00003521* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8035 ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell RDK-8035) + + pci:v000011ABd00004350sv00001854sd0000000D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000000E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000000F* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000011* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000012* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000016* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000017* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000018* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000019* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000001C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000001E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000020* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351* + ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004351sv0000107Bsd00004009* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Wistron) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Wistron)) + + pci:v000011ABd00004351sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Panasonic) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Panasonic)) + + pci:v000011ABd00004351sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Toshiba) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Toshiba)) + + pci:v000011ABd00004351sv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Compal) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Compal)) + + pci:v000011ABd00004351sv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Inventec) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Inventec)) + + pci:v000011ABd00004351sv000011ABsd00003621* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8036 ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell RDK-8036) + + pci:v000011ABd00004351sv000013D1sd0000AC12* +- ID_MODEL_FROM_DATABASE=Abocom EFE3K - 10/100 Ethernet Expresscard ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Abocom EFE3K - 10/100 Ethernet Expresscard) + + pci:v000011ABd00004351sv0000161Fsd0000203D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Arima) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Arima)) + + pci:v000011ABd00004351sv00001854sd0000000D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000000E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000000F* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000011* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000012* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000016* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000017* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000018* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000019* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000001C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000001E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000020* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004352* + ID_MODEL_FROM_DATABASE=88E8038 PCI-E Fast Ethernet Controller +@@ -34896,19 +34896,19 @@ pci:v000011ABd00004353* + ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004353sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller (VAIO VGN-NR120E) + + pci:v000011ABd00004354* + ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004354sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) + + pci:v000011ABd00004355* + ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller + + pci:v000011ABd00004355sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller (Satellite P305D-S8995E) + + pci:v000011ABd00004356* + ID_MODEL_FROM_DATABASE=88EC033 PCI-E Fast Ethernet Controller +@@ -34923,163 +34923,163 @@ pci:v000011ABd00004360* + ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller + + pci:v000011ABd00004360sv00001043sd00008134* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004360sv0000107Bsd00004009* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Wistron) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Wistron)) + + pci:v000011ABd00004360sv000011ABsd00005221* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8052 ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell RDK-8052) + + pci:v000011ABd00004360sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte)) + + pci:v000011ABd00004360sv00001462sd0000052C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (MSI) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (MSI)) + + pci:v000011ABd00004360sv00001849sd00008052* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (ASRock) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (ASRock)) + + pci:v000011ABd00004360sv0000A0A0sd00000509* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Aopen) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Aopen)) + + pci:v000011ABd00004361* + ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller + + pci:v000011ABd00004361sv0000107Bsd00003015* +- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Gateway) ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Gateway)) + + pci:v000011ABd00004361sv000011ABsd00005021* +- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) + + pci:v000011ABd00004361sv00008086sd00003063* +- ID_MODEL_FROM_DATABASE=D925XCVLK mainboard ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (D925XCVLK mainboard) + + pci:v000011ABd00004361sv00008086sd00003439* +- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) + + pci:v000011ABd00004362* + ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller + + pci:v000011ABd00004362sv0000103Csd00002A0D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004362sv00001043sd00008142* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus)) + + pci:v000011ABd00004362sv0000109Fsd00003197* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Trigem) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Trigem)) + + pci:v000011ABd00004362sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Panasonic) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Panasonic)) + + pci:v000011ABd00004362sv000010FDsd0000A430* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (SOYO) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (SOYO)) + + pci:v000011ABd00004362sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Toshiba) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Toshiba)) + + pci:v000011ABd00004362sv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) + + pci:v000011ABd00004362sv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Inventec) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Inventec)) + + pci:v000011ABd00004362sv000011ABsd00005321* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8053 ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell RDK-8053) + + pci:v000011ABd00004362sv00001297sd0000C240* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C241* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C242* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C243* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C244* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv000013D1sd0000AC11* +- ID_MODEL_FROM_DATABASE=EGE5K - Giga Ethernet Expresscard ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (EGE5K - Giga Ethernet Expresscard) + + pci:v000011ABd00004362sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte)) + + pci:v000011ABd00004362sv00001462sd0000058C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (MSI) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (MSI)) + + pci:v000011ABd00004362sv000014C0sd00000012* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) + + pci:v000011ABd00004362sv00001558sd000004A0* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Clevo) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Clevo)) + + pci:v000011ABd00004362sv000015BDsd00001003* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (DFI) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (DFI)) + + pci:v000011ABd00004362sv0000161Fsd0000203C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) + + pci:v000011ABd00004362sv0000161Fsd0000203D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) + + pci:v000011ABd00004362sv00001695sd00009029* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Epox) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Epox)) + + pci:v000011ABd00004362sv000017F2sd00002C08* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Albatron) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Albatron)) + + pci:v000011ABd00004362sv000017FFsd00000585* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Quanta) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Quanta)) + + pci:v000011ABd00004362sv00001849sd00008053* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (ASRock) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (ASRock)) + + pci:v000011ABd00004362sv00001854sd0000000B* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000000C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000010* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000013* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000014* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000015* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001A* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001B* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001F* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000021* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000022* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv0000270Fsd00002801* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Chaintech) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Chaintech)) + + pci:v000011ABd00004362sv0000A0A0sd00000506* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Aopen) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Aopen)) + + pci:v000011ABd00004363* + ID_MODEL_FROM_DATABASE=88E8055 PCI-E Gigabit Ethernet Controller +@@ -35088,10 +35088,10 @@ pci:v000011ABd00004364* + ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller + + pci:v000011ABd00004364sv00001043sd000081F8* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (Motherboard) + + pci:v000011ABd00004364sv000011BAsd000000BA* +- ID_MODEL_FROM_DATABASE=8056 Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (8056 Gigabit Ethernet Controller) + + pci:v000011ABd00004365* + ID_MODEL_FROM_DATABASE=88E8070 based Ethernet Controller +@@ -35112,7 +35112,7 @@ pci:v000011ABd0000436A* + ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller + + pci:v000011ABd0000436Asv000011ABsd000000BA* +- ID_MODEL_FROM_DATABASE=Imac 8,1 Wired Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller (Imac 8,1 Wired Ethernet Adapter) + + pci:v000011ABd0000436B* + ID_MODEL_FROM_DATABASE=88E8071 PCI-E Gigabit Ethernet Controller +@@ -35178,7 +35178,7 @@ pci:v000011ABd00006101* + ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface + + pci:v000011ABd00006101sv00001043sd000082E0* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface (P5K PRO Motherboard) + + pci:v000011ABd00006111* + ID_MODEL_FROM_DATABASE=88SE6111 1-port PATA133(IDE) and 1-port SATA II Controllers +@@ -35217,7 +35217,7 @@ pci:v000011ABd00006480* + ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller + + pci:v000011ABd00006480sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K CompactPCI single board computer ++ ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller (C2K CompactPCI single board computer) + + pci:v000011ABd00006485* + ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller, Revision B +@@ -35226,7 +35226,7 @@ pci:v000011ABd00007042* + ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II + + pci:v000011ABd00007042sv000016B8sd0000434B* +- ID_MODEL_FROM_DATABASE=Tempo SATA E4P ++ ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II (Tempo SATA E4P) + + pci:v000011ABd00007810* + ID_MODEL_FROM_DATABASE=MV78100 [Discovery Innovation] ARM SoC +@@ -35259,19 +35259,19 @@ pci:v000011ADd00000002sv000011ADsd0000FFFF* + ID_MODEL_FROM_DATABASE=LNE100TX + + pci:v000011ADd00000002sv00001385sd0000F004* +- ID_MODEL_FROM_DATABASE=FA310TX ++ ID_MODEL_FROM_DATABASE=LNE100TX (FA310TX) + + pci:v000011ADd00000002sv00002646sd0000F002* +- ID_MODEL_FROM_DATABASE=KNE110TX EtheRx Fast Ethernet ++ ID_MODEL_FROM_DATABASE=LNE100TX (KNE110TX EtheRx Fast Ethernet) + + pci:v000011ADd0000C115* + ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] + + pci:v000011ADd0000C115sv000011ADsd0000C001* +- ID_MODEL_FROM_DATABASE=LNE100TX [ver 2.0] ++ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (LNE100TX [ver 2.0]) + + pci:v000011ADd0000C115sv00002646sd0000000B* +- ID_MODEL_FROM_DATABASE=KNE111TX ++ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (KNE111TX) + + pci:v000011AE* + ID_VENDOR_FROM_DATABASE=Aztech System Ltd +@@ -35355,28 +35355,28 @@ pci:v000011BDd00000040* + ID_MODEL_FROM_DATABASE=Royal TS Function 1 + + pci:v000011BDd00000040sv000011BDsd00000044* +- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 1 ++ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV 2000i Dual DVB-T Pro PCI Tuner 1) + + pci:v000011BDd00000040sv000011BDsd00000045* +- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 1 ++ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV Dual Sat Pro PCI 4000i Tuner 1) + + pci:v000011BDd00000041* + ID_MODEL_FROM_DATABASE=RoyalTS Function 2 + + pci:v000011BDd00000041sv000011BDsd00000044* +- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 2 ++ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV 2000i Dual DVB-T Pro PCI Tuner 2) + + pci:v000011BDd00000041sv000011BDsd00000045* +- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 2 ++ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV Dual Sat Pro PCI 4000i Tuner 2) + + pci:v000011BDd00000042* + ID_MODEL_FROM_DATABASE=Royal TS Function 3 + + pci:v000011BDd00000042sv000011BDsd00000044* +- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Common ++ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV 2000i Dual DVB-T Pro PCI Common) + + pci:v000011BDd00000042sv000011BDsd00000045* +- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Common ++ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV Dual Sat Pro PCI 4000i Common) + + pci:v000011BDd00000051* + ID_MODEL_FROM_DATABASE=PCTV HD 800i +@@ -35400,154 +35400,154 @@ pci:v000011C1d00000440* + ID_MODEL_FROM_DATABASE=56k WinModem + + pci:v000011C1d00000440sv00001033sd00008015* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv00001033sd00008047* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv00001033sd0000804F* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000010CFsd0000102C* +- ID_MODEL_FROM_DATABASE=LB LT Modem V.90 56k ++ ID_MODEL_FROM_DATABASE=56k WinModem (LB LT Modem V.90 56k) + + pci:v000011C1d00000440sv000010CFsd0000104A* +- ID_MODEL_FROM_DATABASE=BIBLO LT Modem 56k ++ ID_MODEL_FROM_DATABASE=56k WinModem (BIBLO LT Modem 56k) + + pci:v000011C1d00000440sv000010CFsd0000105F* +- ID_MODEL_FROM_DATABASE=LB2 LT Modem V.90 56k ++ ID_MODEL_FROM_DATABASE=56k WinModem (LB2 LT Modem V.90 56k) + + pci:v000011C1d00000440sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Internal V.90 Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) + + pci:v000011C1d00000440sv000011C1sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv0000122Dsd00004101* +- ID_MODEL_FROM_DATABASE=MDP7800-U Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) + + pci:v000011C1d00000440sv0000122Dsd00004102* +- ID_MODEL_FROM_DATABASE=MDP7800SP-U Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800SP-U Modem) + + pci:v000011C1d00000440sv000013E0sd00000040* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd00000441* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd00000450* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd0000F100* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd0000F101* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv0000144Dsd00002101* +- ID_MODEL_FROM_DATABASE=LT56PV Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PV Modem) + + pci:v000011C1d00000440sv0000149Fsd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000441* + ID_MODEL_FROM_DATABASE=56k WinModem + + pci:v000011C1d00000441sv00001033sd0000804D* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv00001033sd00008065* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv00001092sd00000440* +- ID_MODEL_FROM_DATABASE=Supra 56i ++ ID_MODEL_FROM_DATABASE=56k WinModem (Supra 56i) + + pci:v000011C1d00000441sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Internal V.90 Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) + + pci:v000011C1d00000441sv000011C1sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000011C1sd00000441* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv0000122Dsd00004100* +- ID_MODEL_FROM_DATABASE=MDP7800-U Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) + + pci:v000011C1d00000441sv000013E0sd00000040* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000100* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000410* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000420* +- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem ++ ID_MODEL_FROM_DATABASE=56k WinModem (TelePath Internet 56k WinModem) + + pci:v000011C1d00000441sv000013E0sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000443* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd0000F102* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv00001416sd00009804* +- ID_MODEL_FROM_DATABASE=CommWave 56k Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (CommWave 56k Modem) + + pci:v000011C1d00000441sv0000141Dsd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv0000144Fsd00000441* +- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) + + pci:v000011C1d00000441sv0000144Fsd00000449* +- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) + + pci:v000011C1d00000441sv0000144Fsd0000110D* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) + + pci:v000011C1d00000441sv00001468sd00000441* +- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DF Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Presario 56k V.90 DF Modem) + + pci:v000011C1d00000441sv00001668sd00000440* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) + + pci:v000011C1d00000442* + ID_MODEL_FROM_DATABASE=56k WinModem + + pci:v000011C1d00000442sv000011C1sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000011C1sd00000442* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000013E0sd00000412* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000013E0sd00000442* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000013FCsd00002471* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv0000144Dsd00002104* +- ID_MODEL_FROM_DATABASE=LT56PT Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PT Modem) + + pci:v000011C1d00000442sv0000144Fsd00001104* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv0000149Fsd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv00001668sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000443* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35559,10 +35559,10 @@ pci:v000011C1d00000445* + ID_MODEL_FROM_DATABASE=LT WinModem + + pci:v000011C1d00000445sv00008086sd00002203* +- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card) ++ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card)) + + pci:v000011C1d00000445sv00008086sd00002204* +- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI on Armada E500 ++ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI on Armada E500) + + pci:v000011C1d00000446* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35574,64 +35574,64 @@ pci:v000011C1d00000448* + ID_MODEL_FROM_DATABASE=WinModem 56k + + pci:v000011C1d00000448sv00001014sd00000131* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=WinModem 56k (Lucent Win Modem) + + pci:v000011C1d00000448sv00001033sd00008066* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000448sv000013E0sd00000030* +- ID_MODEL_FROM_DATABASE=56k Voice Modem ++ ID_MODEL_FROM_DATABASE=WinModem 56k (56k Voice Modem) + + pci:v000011C1d00000448sv000013E0sd00000040* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000448sv00001668sd00002400* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k (MiniPCI Ethernet+Modem) ++ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k (MiniPCI Ethernet+Modem)) + + pci:v000011C1d00000449* + ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k + + pci:v000011C1d00000449sv00000E11sd0000B14D* +- ID_MODEL_FROM_DATABASE=56k V.90 Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (56k V.90 Modem) + + pci:v000011C1d00000449sv00001014sd0000018C* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (ThinkPad 600X) + + pci:v000011C1d00000449sv000013E0sd00000020* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000449sv000013E0sd00000041* +- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (TelePath Internet 56k WinModem) + + pci:v000011C1d00000449sv00001436sd00000440* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) + + pci:v000011C1d00000449sv0000144Fsd00000449* +- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DFi Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent 56k V.90 DFi Modem) + + pci:v000011C1d00000449sv00001468sd00000410* +- ID_MODEL_FROM_DATABASE=IBM ThinkPad T23 ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (IBM ThinkPad T23) + + pci:v000011C1d00000449sv00001468sd00000440* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) + + pci:v000011C1d00000449sv00001468sd00000449* +- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DFi Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Presario 56k V.90 DFi Modem) + + pci:v000011C1d0000044A* + ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) + + pci:v000011C1d0000044Asv000010CFsd00001072* +- ID_MODEL_FROM_DATABASE=LB Global LT Modem ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LB Global LT Modem) + + pci:v000011C1d0000044Asv000013E0sd00000012* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d0000044Asv000013E0sd00000042* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d0000044Asv0000144Fsd00001005* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d0000044B* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35652,13 +35652,13 @@ pci:v000011C1d00000450* + ID_MODEL_FROM_DATABASE=LT WinModem + + pci:v000011C1d00000450sv00001033sd000080A8* +- ID_MODEL_FROM_DATABASE=Versa Note Vxi ++ ID_MODEL_FROM_DATABASE=LT WinModem (Versa Note Vxi) + + pci:v000011C1d00000450sv0000144Fsd00004005* +- ID_MODEL_FROM_DATABASE=Magnia SG20 ++ ID_MODEL_FROM_DATABASE=LT WinModem (Magnia SG20) + + pci:v000011C1d00000450sv00001468sd00000450* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=LT WinModem (Evo N600c) + + pci:v000011C1d00000451* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35733,22 +35733,22 @@ pci:v000011C1d00005811* + ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller + + pci:v000011C1d00005811sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion a1677c) + + pci:v000011C1d00005811sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Asus IPIBL-LB Motherboard) + + pci:v000011C1d00005811sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion p6310f) + + pci:v000011C1d00005811sv00001043sd00008294* +- ID_MODEL_FROM_DATABASE=LSI FW322/323 IEEE 1394a FireWire Controller ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (LSI FW322/323 IEEE 1394a FireWire Controller) + + pci:v000011C1d00005811sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (D865PERL mainboard) + + pci:v000011C1d00005811sv0000DEADsd00000800* +- ID_MODEL_FROM_DATABASE=FireWire Host Bus Adapter ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (FireWire Host Bus Adapter) + + pci:v000011C1d00005901* + ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller +@@ -35757,10 +35757,10 @@ pci:v000011C1d00005901sv000011C1sd00005900* + ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller + + pci:v000011C1d00005901sv00001443sd00000643* +- ID_MODEL_FROM_DATABASE=FireBoard800-e V.2 ++ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FireBoard800-e V.2) + + pci:v000011C1d00005901sv00001546sd00000643* +- ID_MODEL_FROM_DATABASE=FWB-PCIE1X2x ++ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FWB-PCIE1X2x) + + pci:v000011C1d00005903* + ID_MODEL_FROM_DATABASE=FW533 [TrueFire] PCIe 1394a Controller +@@ -35769,7 +35769,7 @@ pci:v000011C1d00008110* + ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch + + pci:v000011C1d00008110sv000012D9sd0000000C* +- ID_MODEL_FROM_DATABASE=E1/T1 PMXc cPCI carrier card ++ ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch (E1/T1 PMXc cPCI carrier card) + + pci:v000011C1d0000AB10* + ID_MODEL_FROM_DATABASE=WL60010 Wireless LAN MAC +@@ -35778,16 +35778,16 @@ pci:v000011C1d0000AB11* + ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC + + pci:v000011C1d0000AB11sv000011C1sd0000AB12* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1102) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1102)) + + pci:v000011C1d0000AB11sv000011C1sd0000AB13* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0512) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0512)) + + pci:v000011C1d0000AB11sv000011C1sd0000AB15* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1106) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1106)) + + pci:v000011C1d0000AB11sv000011C1sd0000AB16* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0516) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0516)) + + pci:v000011C1d0000AB20* + ID_MODEL_FROM_DATABASE=ORiNOCO PCI Adapter +@@ -35856,10 +35856,10 @@ pci:v000011CBd00002000* + ID_MODEL_FROM_DATABASE=PCI_9050 + + pci:v000011CBd00002000sv000011CBsd00000200* +- ID_MODEL_FROM_DATABASE=SX ++ ID_MODEL_FROM_DATABASE=PCI_9050 (SX) + + pci:v000011CBd00002000sv000011CBsd0000B008* +- ID_MODEL_FROM_DATABASE=I/O8+ ++ ID_MODEL_FROM_DATABASE=PCI_9050 (I/O8+) + + pci:v000011CBd00004000* + ID_MODEL_FROM_DATABASE=SUPI_1 +@@ -35949,28 +35949,28 @@ pci:v000011DEd00006057* + ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset + + pci:v000011DEd00006057sv00001031sd00007EFE* +- ID_MODEL_FROM_DATABASE=DC10 Plus ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (DC10 Plus) + + pci:v000011DEd00006057sv00001031sd0000FC00* +- ID_MODEL_FROM_DATABASE=MiroVIDEO DC50, Motion JPEG Capture/CODEC Board ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (MiroVIDEO DC50, Motion JPEG Capture/CODEC Board) + + pci:v000011DEd00006057sv000012F8sd00008A02* +- ID_MODEL_FROM_DATABASE=Tekram Video Kit ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (Tekram Video Kit) + + pci:v000011DEd00006057sv000013CAsd00004231* +- ID_MODEL_FROM_DATABASE=JPEG/TV Card ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (JPEG/TV Card) + + pci:v000011DEd00006120* + ID_MODEL_FROM_DATABASE=ZR36120 + + pci:v000011DEd00006120sv00001328sd0000F001* +- ID_MODEL_FROM_DATABASE=Cinemaster C DVD Decoder ++ ID_MODEL_FROM_DATABASE=ZR36120 (Cinemaster C DVD Decoder) + + pci:v000011DEd00006120sv000013C2sd00000000* +- ID_MODEL_FROM_DATABASE=MediaFocus Satellite TV Card ++ ID_MODEL_FROM_DATABASE=ZR36120 (MediaFocus Satellite TV Card) + + pci:v000011DEd00006120sv00001DE1sd00009FFF* +- ID_MODEL_FROM_DATABASE=Video Kit C210 ++ ID_MODEL_FROM_DATABASE=ZR36120 (Video Kit C210) + + pci:v000011DF* + ID_VENDOR_FROM_DATABASE=New Wave PDG +@@ -36102,13 +36102,13 @@ pci:v000011F6d00002011* + ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 + + pci:v000011F6d00002011sv000011F6sd00002011* +- ID_MODEL_FROM_DATABASE=RL100-ATX ++ ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 (RL100-ATX) + + pci:v000011F6d00002201* + ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) + + pci:v000011F6d00002201sv000011F6sd00002011* +- ID_MODEL_FROM_DATABASE=ReadyLink 100TX ++ ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) (ReadyLink 100TX) + + pci:v000011F6d00009881* + ID_MODEL_FROM_DATABASE=RL100TX Fast Ethernet +@@ -36138,10 +36138,10 @@ pci:v000011F8d00008032* + ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN + + pci:v000011F8d00008032sv0000117Csd0000003B* +- ID_MODEL_FROM_DATABASE=Celerity FC-82EN Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-82EN Fibre Channel Adapter) + + pci:v000011F8d00008032sv0000117Csd0000003C* +- ID_MODEL_FROM_DATABASE=Celerity FC-84EN Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-84EN Fibre Channel Adapter) + + pci:v000011F9* + ID_VENDOR_FROM_DATABASE=I-Cube Inc +@@ -36285,16 +36285,16 @@ pci:v00001202d00004300* + ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter + + pci:v00001202d00004300sv00001202sd00009841* +- ID_MODEL_FROM_DATABASE=SK-9841 LX ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX) + + pci:v00001202d00004300sv00001202sd00009842* +- ID_MODEL_FROM_DATABASE=SK-9841 LX dual link ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX dual link) + + pci:v00001202d00004300sv00001202sd00009843* +- ID_MODEL_FROM_DATABASE=SK-9843 SX ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX) + + pci:v00001202d00004300sv00001202sd00009844* +- ID_MODEL_FROM_DATABASE=SK-9843 SX dual link ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX dual link) + + pci:v00001203* + ID_VENDOR_FROM_DATABASE=Bayer Corporation, Agfa Division +@@ -36411,7 +36411,7 @@ pci:v00001217d000000F7* + ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) + + pci:v00001217d000000F7sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) + + pci:v00001217d000010F7* + ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller +@@ -36420,7 +36420,7 @@ pci:v00001217d000011F7* + ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller + + pci:v00001217d000011F7sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller (Precision M4600) + + pci:v00001217d000013F7* + ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller +@@ -36447,31 +36447,31 @@ pci:v00001217d00006933* + ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller + + pci:v00001217d00006933sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller (Travelmate 612 TX) + + pci:v00001217d00006972* + ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller + + pci:v00001217d00006972sv00001014sd0000020C* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (ThinkPad R30) + + pci:v00001217d00006972sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Latitude D500) + + pci:v00001217d00006972sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Magnia Z310) + + pci:v00001217d00007110* + ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator + + pci:v00001217d00007110sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC8000 laptop) + + pci:v00001217d00007110sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC6000 laptop) + + pci:v00001217d00007110sv00001734sd0000106C* +- ID_MODEL_FROM_DATABASE=Amilo A1645 ++ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (Amilo A1645) + + pci:v00001217d00007112* + ID_MODEL_FROM_DATABASE=OZ711EC1/M1 SmartCardBus/MemoryCardBus Controller +@@ -36480,7 +36480,7 @@ pci:v00001217d00007113* + ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller + + pci:v00001217d00007113sv00001025sd00000035* +- ID_MODEL_FROM_DATABASE=TravelMate 660 ++ ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller (TravelMate 660) + + pci:v00001217d00007114* + ID_MODEL_FROM_DATABASE=OZ711M1/MC1 4-in-1 MemoryCardBus Controller +@@ -36489,13 +36489,13 @@ pci:v00001217d00007120* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller + + pci:v00001217d00007120sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) + + pci:v00001217d00007130* + ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller + + pci:v00001217d00007130sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) + + pci:v00001217d00007134* + ID_MODEL_FROM_DATABASE=OZ711MP1/MS1 MemoryCardBus Controller +@@ -36519,13 +36519,13 @@ pci:v00001217d00007223* + ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller + + pci:v00001217d00007223sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC8000 laptop) + + pci:v00001217d00007223sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC6000 laptop) + + pci:v00001217d00007223sv000010CFsd000011C4* +- ID_MODEL_FROM_DATABASE=Lifebook P5020D Laptop ++ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (Lifebook P5020D Laptop) + + pci:v00001217d00007233* + ID_MODEL_FROM_DATABASE=OZ711MP3/MS3 4-in-1 MemoryCardBus Controller +@@ -36540,7 +36540,7 @@ pci:v00001217d00008320* + ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller + + pci:v00001217d00008320sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) + + pci:v00001217d00008321* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller +@@ -36549,7 +36549,7 @@ pci:v00001217d00008330* + ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller + + pci:v00001217d00008330sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller (Precision M4600) + + pci:v00001217d00008331* + ID_MODEL_FROM_DATABASE=O2 Flash Memory Card +@@ -36576,52 +36576,52 @@ pci:v0000121Ad00000003* + ID_MODEL_FROM_DATABASE=Voodoo Banshee + + pci:v0000121Ad00000003sv00001092sd00000003* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00004000* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00004002* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00004801* +- ID_MODEL_FROM_DATABASE=Monster Fusion AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) + + pci:v0000121Ad00000003sv00001092sd00004803* +- ID_MODEL_FROM_DATABASE=Monster Fusion AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) + + pci:v0000121Ad00000003sv00001092sd00008030* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00008035* +- ID_MODEL_FROM_DATABASE=Monster Fusion AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) + + pci:v0000121Ad00000003sv000010B0sd00000001* +- ID_MODEL_FROM_DATABASE=Dragon 4000 ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Dragon 4000) + + pci:v0000121Ad00000003sv00001102sd00001017* +- ID_MODEL_FROM_DATABASE=3D Blaster Banshee PCI (CT6760) ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee PCI (CT6760)) + + pci:v0000121Ad00000003sv00001102sd00001018* +- ID_MODEL_FROM_DATABASE=3D Blaster Banshee VE ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee VE) + + pci:v0000121Ad00000003sv0000121Asd00000001* +- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP) + + pci:v0000121Ad00000003sv0000121Asd00000003* +- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP SGRAM ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP SGRAM) + + pci:v0000121Ad00000003sv0000121Asd00000004* + ID_MODEL_FROM_DATABASE=Voodoo Banshee + + pci:v0000121Ad00000003sv0000139Csd00000016* +- ID_MODEL_FROM_DATABASE=Raven ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) + + pci:v0000121Ad00000003sv0000139Csd00000017* +- ID_MODEL_FROM_DATABASE=Raven ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) + + pci:v0000121Ad00000003sv000014AFsd00000002* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Maxi Gamer Phoenix) + + pci:v0000121Ad00000004* + ID_MODEL_FROM_DATABASE=Voodoo Banshee [Velocity 100] +@@ -36630,70 +36630,70 @@ pci:v0000121Ad00000005* + ID_MODEL_FROM_DATABASE=Voodoo 3 + + pci:v0000121Ad00000005sv0000121Asd00000004* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000030* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000031* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000034* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000036* +- ID_MODEL_FROM_DATABASE=Voodoo3 2000 PCI ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 2000 PCI) + + pci:v0000121Ad00000005sv0000121Asd00000037* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000038* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd0000003A* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000044* +- ID_MODEL_FROM_DATABASE=Voodoo3 ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3) + + pci:v0000121Ad00000005sv0000121Asd0000004B* +- ID_MODEL_FROM_DATABASE=Velocity 100 ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 100) + + pci:v0000121Ad00000005sv0000121Asd0000004C* +- ID_MODEL_FROM_DATABASE=Velocity 200 ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 200) + + pci:v0000121Ad00000005sv0000121Asd0000004D* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd0000004E* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000051* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000052* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000057* +- ID_MODEL_FROM_DATABASE=Voodoo3 3000 PCI ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3000 PCI) + + pci:v0000121Ad00000005sv0000121Asd00000060* +- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (NTSC) ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (NTSC)) + + pci:v0000121Ad00000005sv0000121Asd00000061* +- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (PAL) ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (PAL)) + + pci:v0000121Ad00000005sv0000121Asd00000062* +- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (SECAM) ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (SECAM)) + + pci:v0000121Ad00000009* + ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 + + pci:v0000121Ad00000009sv0000121Asd00000003* +- ID_MODEL_FROM_DATABASE=Voodoo5 PCI 5500 ++ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 PCI 5500) + + pci:v0000121Ad00000009sv0000121Asd00000009* +- ID_MODEL_FROM_DATABASE=Voodoo5 AGP 5500/6000 ++ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 AGP 5500/6000) + + pci:v0000121Ad00000057* + ID_MODEL_FROM_DATABASE=Voodoo 3/3000 [Avenger] +@@ -36930,31 +36930,31 @@ pci:v0000123Fd00008120* + ID_MODEL_FROM_DATABASE=DVxplore Codec + + pci:v0000123Fd00008120sv000010DEsd000001E1* +- ID_MODEL_FROM_DATABASE=NVTV PAL ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) + + pci:v0000123Fd00008120sv000010DEsd000001E2* +- ID_MODEL_FROM_DATABASE=NVTV NTSC ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) + + pci:v0000123Fd00008120sv000010DEsd000001E3* +- ID_MODEL_FROM_DATABASE=NVTV PAL ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) + + pci:v0000123Fd00008120sv000010DEsd00000248* +- ID_MODEL_FROM_DATABASE=NVTV NTSC ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) + + pci:v0000123Fd00008120sv000010DEsd00000249* +- ID_MODEL_FROM_DATABASE=NVTV PAL ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) + + pci:v0000123Fd00008120sv000011BDsd00000006* +- ID_MODEL_FROM_DATABASE=DV500 E4 ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) + + pci:v0000123Fd00008120sv000011BDsd0000000A* +- ID_MODEL_FROM_DATABASE=DV500 E4 ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) + + pci:v0000123Fd00008120sv000011BDsd0000000F* +- ID_MODEL_FROM_DATABASE=DV500 E4 ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) + + pci:v0000123Fd00008120sv00001809sd00000016* +- ID_MODEL_FROM_DATABASE=Emuzed MAUI-III PCI PVR FM TV ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (Emuzed MAUI-III PCI PVR FM TV) + + pci:v0000123Fd00008888* + ID_MODEL_FROM_DATABASE=Cinemaster C 3.0 DVD Decoder +@@ -36981,10 +36981,10 @@ pci:v00001242d00001560* + ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller + + pci:v00001242d00001560sv00001242sd00006562* +- ID_MODEL_FROM_DATABASE=FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter) + + pci:v00001242d00001560sv00001242sd0000656A* +- ID_MODEL_FROM_DATABASE=FCX-6562 PCI-X Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX-6562 PCI-X Fibre Channel Adapter) + + pci:v00001242d00004643* + ID_MODEL_FROM_DATABASE=FCI-1063 Fibre Channel Adapter +@@ -37011,7 +37011,7 @@ pci:v00001244d00000A00* + ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] + + pci:v00001244d00000A00sv00001244sd00000A00* +- ID_MODEL_FROM_DATABASE=FRITZ!Card ISDN Controller ++ ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] (FRITZ!Card ISDN Controller) + + pci:v00001244d00000E00* + ID_MODEL_FROM_DATABASE=Fritz!PCI v2.0 ISDN +@@ -37053,7 +37053,7 @@ pci:v0000124Bd00000040* + ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier + + pci:v0000124Bd00000040sv0000124Bsd00009080* +- ID_MODEL_FROM_DATABASE=PCI9080 Bridge ++ ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier (PCI9080 Bridge) + + pci:v0000124C* + ID_VENDOR_FROM_DATABASE=Solitron Technologies, Inc. +@@ -37164,7 +37164,7 @@ pci:v0000125Bd00001400* + ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller + + pci:v0000125Bd00001400sv00001186sd00001100* +- ID_MODEL_FROM_DATABASE=AX8814X Based PCI Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller (AX8814X Based PCI Fast Ethernet Adapter) + + pci:v0000125C* + ID_VENDOR_FROM_DATABASE=Aurora Technologies, Inc. +@@ -37188,61 +37188,61 @@ pci:v0000125Dd00001968* + ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 + + pci:v0000125Dd00001968sv00001028sd00000085* +- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 PCI ++ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 PCI) + + pci:v0000125Dd00001968sv00001033sd00008051* +- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 Audiodrive) + + pci:v0000125Dd00001969* + ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive + + pci:v0000125Dd00001969sv00001014sd00000166* +- ID_MODEL_FROM_DATABASE=ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard ++ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard) + + pci:v0000125Dd00001969sv0000125Dsd00008888* +- ID_MODEL_FROM_DATABASE=Solo-1 Audio Adapter ++ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Solo-1 Audio Adapter) + + pci:v0000125Dd00001969sv0000153Bsd0000111B* +- ID_MODEL_FROM_DATABASE=Terratec 128i PCI ++ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Terratec 128i PCI) + + pci:v0000125Dd00001978* + ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E + + pci:v0000125Dd00001978sv00000E11sd0000B112* +- ID_MODEL_FROM_DATABASE=Armada M700/E500 ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Armada M700/E500) + + pci:v0000125Dd00001978sv00001033sd0000803C* +- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) + + pci:v0000125Dd00001978sv00001033sd00008058* +- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) + + pci:v0000125Dd00001978sv00001092sd00004000* +- ID_MODEL_FROM_DATABASE=Monster Sound MX400 ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Monster Sound MX400) + + pci:v0000125Dd00001978sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) + + pci:v0000125Dd00001988* + ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 + + pci:v0000125Dd00001988sv00000E11sd00000098* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Evo N600c) + + pci:v0000125Dd00001988sv00001092sd00004100* +- ID_MODEL_FROM_DATABASE=Sonic Impact S100 ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Sonic Impact S100) + + pci:v0000125Dd00001988sv0000125Dsd00000431* +- ID_MODEL_FROM_DATABASE=Allegro AudioDrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) + + pci:v0000125Dd00001988sv0000125Dsd00001988* +- ID_MODEL_FROM_DATABASE=ESS Allegro-1 Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (ESS Allegro-1 Audiodrive) + + pci:v0000125Dd00001988sv0000125Dsd00001998* +- ID_MODEL_FROM_DATABASE=Allegro AudioDrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) + + pci:v0000125Dd00001988sv0000125Dsd00001999* +- ID_MODEL_FROM_DATABASE=Allegro-1 AudioDrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro-1 AudioDrive) + + pci:v0000125Dd00001989* + ID_MODEL_FROM_DATABASE=ESS Modem +@@ -37254,13 +37254,13 @@ pci:v0000125Dd00001998* + ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator + + pci:v0000125Dd00001998sv00001028sd000000B1* +- ID_MODEL_FROM_DATABASE=Latitude C600 ++ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C600) + + pci:v0000125Dd00001998sv00001028sd000000E5* +- ID_MODEL_FROM_DATABASE=Latitude C810 ++ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C810) + + pci:v0000125Dd00001998sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i (Dell Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (ES1983S Maestro-3i (Dell Inspiron 8100)) + + pci:v0000125Dd00001999* + ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Modem Accelerator +@@ -37281,34 +37281,34 @@ pci:v0000125Dd00002898* + ID_MODEL_FROM_DATABASE=ES2898 Modem + + pci:v0000125Dd00002898sv0000125Dsd00000424* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000425* +- ID_MODEL_FROM_DATABASE=ES56T-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56T-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000426* +- ID_MODEL_FROM_DATABASE=ES56V-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56V-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000427* +- ID_MODEL_FROM_DATABASE=VW-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (VW-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000428* +- ID_MODEL_FROM_DATABASE=ES56ST-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56ST-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000429* +- ID_MODEL_FROM_DATABASE=ES56SV-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56SV-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000147Asd0000C001* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000148Dsd00001030* +- ID_MODEL_FROM_DATABASE=HCF WV-PI56 [ESS ES56-PI Data Fax Modem] ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (HCF WV-PI56 [ESS ES56-PI Data Fax Modem]) + + pci:v0000125Dd00002898sv000014FEsd00000428* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125Dd00002898sv000014FEsd00000429* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125E* + ID_VENDOR_FROM_DATABASE=Specialvideo Engineering SRL +@@ -37323,40 +37323,40 @@ pci:v00001260d00003872* + ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] + + pci:v00001260d00003872sv00001468sd00000202* +- ID_MODEL_FROM_DATABASE=LAN-Express IEEE 802.11b Wireless LAN ++ ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] (LAN-Express IEEE 802.11b Wireless LAN) + + pci:v00001260d00003873* + ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] + + pci:v00001260d00003873sv000010CFsd00001169* +- ID_MODEL_FROM_DATABASE=MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874]) + + pci:v00001260d00003873sv00001186sd00003501* +- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874]) + + pci:v00001260d00003873sv00001186sd00003700* +- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev E1) [ISL3872] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev E1) [ISL3872]) + + pci:v00001260d00003873sv00001385sd00004105* +- ID_MODEL_FROM_DATABASE=MA311 802.11b wireless adapter [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MA311 802.11b wireless adapter [ISL3874]) + + pci:v00001260d00003873sv00001668sd00000414* +- ID_MODEL_FROM_DATABASE=HWP01170-01 802.11b PCI Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (HWP01170-01 802.11b PCI Wireless Adapter) + + pci:v00001260d00003873sv000016A5sd00001601* +- ID_MODEL_FROM_DATABASE=AIR.mate PC-400 PCI Wireless LAN Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (AIR.mate PC-400 PCI Wireless LAN Adapter) + + pci:v00001260d00003873sv00001737sd00003874* +- ID_MODEL_FROM_DATABASE=WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874]) + + pci:v00001260d00003873sv00004033sd00007033* +- ID_MODEL_FROM_DATABASE=PCW200 802.11b Wireless PCI Adapter [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (PCW200 802.11b Wireless PCI Adapter [ISL3874]) + + pci:v00001260d00003873sv00008086sd00002510* +- ID_MODEL_FROM_DATABASE=M3AWEB Wireless 802.11b MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (M3AWEB Wireless 802.11b MiniPCI Adapter) + + pci:v00001260d00003873sv00008086sd00002513* +- ID_MODEL_FROM_DATABASE=Wireless 802.11b MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (Wireless 802.11b MiniPCI Adapter) + + pci:v00001260d00003877* + ID_MODEL_FROM_DATABASE=ISL3877 [Prism Indigo] +@@ -37365,58 +37365,58 @@ pci:v00001260d00003886* + ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] + + pci:v00001260d00003886sv000017CFsd00000037* +- ID_MODEL_FROM_DATABASE=XG-901 and clones Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] (XG-901 and clones Wireless Adapter) + + pci:v00001260d00003890* + ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] + + pci:v00001260d00003890sv000010B8sd00002802* +- ID_MODEL_FROM_DATABASE=SMC2802W V1 Wireless PCI Adapter [ISL3890] ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V1 Wireless PCI Adapter [ISL3890]) + + pci:v00001260d00003890sv000010B8sd00002835* +- ID_MODEL_FROM_DATABASE=SMC2835W Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W Wireless Cardbus Adapter) + + pci:v00001260d00003890sv000010B8sd0000A835* +- ID_MODEL_FROM_DATABASE=SMC2835W V2 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V2 Wireless Cardbus Adapter) + + pci:v00001260d00003890sv00001113sd00004203* +- ID_MODEL_FROM_DATABASE=WN4201B ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WN4201B) + + pci:v00001260d00003890sv00001113sd00008201* +- ID_MODEL_FROM_DATABASE=T-Com T-Sinus 154pcicard Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Com T-Sinus 154pcicard Wireless PCI Adapter) + + pci:v00001260d00003890sv00001113sd0000B301* +- ID_MODEL_FROM_DATABASE=T-Sinus 154card Cardbus ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Sinus 154card Cardbus) + + pci:v00001260d00003890sv00001113sd0000EE03* +- ID_MODEL_FROM_DATABASE=SMC2802W V2 Wireless PCI Adapter [ISL3886] ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V2 Wireless PCI Adapter [ISL3886]) + + pci:v00001260d00003890sv00001113sd0000EE08* +- ID_MODEL_FROM_DATABASE=SMC2835W V3 EU Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V3 EU Wireless Cardbus Adapter) + + pci:v00001260d00003890sv00001186sd00003202* +- ID_MODEL_FROM_DATABASE=DWL-G650 A1 Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (DWL-G650 A1 Wireless Adapter) + + pci:v00001260d00003890sv00001259sd0000C104* +- ID_MODEL_FROM_DATABASE=CG-WLCB54GT Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (CG-WLCB54GT Wireless Adapter) + + pci:v00001260d00003890sv00001260sd00000000* +- ID_MODEL_FROM_DATABASE=WG511 v1 54 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v1 54 Mbps Wireless PC Card) + + pci:v00001260d00003890sv00001385sd00004800* +- ID_MODEL_FROM_DATABASE=WG511 v2/v3 54 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v2/v3 54 Mbps Wireless PC Card) + + pci:v00001260d00003890sv000016A5sd00001605* +- ID_MODEL_FROM_DATABASE=ALLNET ALL0271 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (ALLNET ALL0271 Wireless PCI Adapter) + + pci:v00001260d00003890sv000017CFsd00000014* +- ID_MODEL_FROM_DATABASE=XG-600 and clones Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-600 and clones Wireless Adapter) + + pci:v00001260d00003890sv000017CFsd00000020* +- ID_MODEL_FROM_DATABASE=XG-900 and clones Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-900 and clones Wireless Adapter) + + pci:v00001260d00003890sv0000187Esd00003403* +- ID_MODEL_FROM_DATABASE=G-110 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (G-110 802.11g Wireless Cardbus Adapter) + + pci:v00001260d00008130* + ID_MODEL_FROM_DATABASE=HMP8130 NTSC/PAL Video Decoder +@@ -37428,7 +37428,7 @@ pci:v00001260d0000FFFF* + ID_MODEL_FROM_DATABASE=ISL3886IK + + pci:v00001260d0000FFFFsv00001260sd00000000* +- ID_MODEL_FROM_DATABASE=Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter ++ ID_MODEL_FROM_DATABASE=ISL3886IK (Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter) + + pci:v00001261* + ID_VENDOR_FROM_DATABASE=Matsushita-Kotobuki Electronics Industries, Ltd. +@@ -37455,7 +37455,7 @@ pci:v00001266d00001910* + ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter + + pci:v00001266d00001910sv00001266sd00001910* +- ID_MODEL_FROM_DATABASE=NE2000Plus Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter (NE2000Plus Ethernet Adapter) + + pci:v00001267* + ID_VENDOR_FROM_DATABASE=S. A. Telecommunications +@@ -37554,169 +37554,169 @@ pci:v00001274d00001371* + ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] + + pci:v00001274d00001371sv00000E11sd00000024* +- ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI on Motherboard Compaq Deskpro) + + pci:v00001274d00001371sv00000E11sd0000B1A7* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) + + pci:v00001274d00001371sv00001033sd000080AC* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) + + pci:v00001274d00001371sv00001042sd00001854* +- ID_MODEL_FROM_DATABASE=Tazer ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tazer) + + pci:v00001274d00001371sv0000107Bsd00008054* +- ID_MODEL_FROM_DATABASE=Tabor2 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tabor2) + + pci:v00001274d00001371sv00001274sd00001371* +- ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI 64V/128 / Creative Sound Blaster CT4810) + + pci:v00001274d00001371sv00001274sd00008001* +- ID_MODEL_FROM_DATABASE=CT4751 board ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (CT4751 board) + + pci:v00001274d00001371sv00001462sd00006470* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A) + + pci:v00001274d00001371sv00001462sd00006560* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10) + + pci:v00001274d00001371sv00001462sd00006630* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A) + + pci:v00001274d00001371sv00001462sd00006631* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A) + + pci:v00001274d00001371sv00001462sd00006632* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A) + + pci:v00001274d00001371sv00001462sd00006633* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A) + + pci:v00001274d00001371sv00001462sd00006820* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00) + + pci:v00001274d00001371sv00001462sd00006822* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A) + + pci:v00001274d00001371sv00001462sd00006830* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00) + + pci:v00001274d00001371sv00001462sd00006880* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00) + + pci:v00001274d00001371sv00001462sd00006900* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00) + + pci:v00001274d00001371sv00001462sd00006910* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6191 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6191) + + pci:v00001274d00001371sv00001462sd00006930* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6193 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6193) + + pci:v00001274d00001371sv00001462sd00006990* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A) + + pci:v00001274d00001371sv00001462sd00006991* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A) + + pci:v00001274d00001371sv000014A4sd00002077* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KR639 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KR639) + + pci:v00001274d00001371sv000014A4sd00002105* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR800 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR800) + + pci:v00001274d00001371sv000014A4sd00002107* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR801 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR801) + + pci:v00001274d00001371sv000014A4sd00002172* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard DR739 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard DR739) + + pci:v00001274d00001371sv00001509sd00009902* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW11 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW11) + + pci:v00001274d00001371sv00001509sd00009903* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW31 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW31) + + pci:v00001274d00001371sv00001509sd00009904* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KA11 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KA11) + + pci:v00001274d00001371sv00001509sd00009905* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KC13 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KC13) + + pci:v00001274d00001371sv0000152Dsd00008801* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810E ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810E) + + pci:v00001274d00001371sv0000152Dsd00008802* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810) + + pci:v00001274d00001371sv0000152Dsd00008803* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810E ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810E) + + pci:v00001274d00001371sv0000152Dsd00008804* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810-S ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810-S) + + pci:v00001274d00001371sv0000152Dsd00008805* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3820-S ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3820-S) + + pci:v00001274d00001371sv0000270Fsd00002001* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6CTR ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6CTR) + + pci:v00001274d00001371sv0000270Fsd00002200* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WTX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WTX) + + pci:v00001274d00001371sv0000270Fsd00003000* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WSV ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WSV) + + pci:v00001274d00001371sv0000270Fsd00003100* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV2 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV2) + + pci:v00001274d00001371sv0000270Fsd00003102* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV) + + pci:v00001274d00001371sv0000270Fsd00007060* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6ASA2 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6ASA2) + + pci:v00001274d00001371sv00008086sd00004249* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BI440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BI440ZX) + + pci:v00001274d00001371sv00008086sd0000424C* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BL440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BL440ZX) + + pci:v00001274d00001371sv00008086sd0000425A* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BZ440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BZ440ZX) + + pci:v00001274d00001371sv00008086sd00004341* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cayman ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cayman) + + pci:v00001274d00001371sv00008086sd00004343* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cape Cod ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cape Cod) + + pci:v00001274d00001371sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=D815EEA Motherboard ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (D815EEA Motherboard) + + pci:v00001274d00001371sv00008086sd00004649* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Fire Island ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Fire Island) + + pci:v00001274d00001371sv00008086sd0000464A* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard FJ440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard FJ440ZX) + + pci:v00001274d00001371sv00008086sd00004D4F* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Montreal ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Montreal) + + pci:v00001274d00001371sv00008086sd00004F43* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard OC440LX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard OC440LX) + + pci:v00001274d00001371sv00008086sd00005243* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard RC440BX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard RC440BX) + + pci:v00001274d00001371sv00008086sd00005352* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard SunRiver ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard SunRiver) + + pci:v00001274d00001371sv00008086sd00005643* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Vancouver ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Vancouver) + + pci:v00001274d00001371sv00008086sd00005753* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard WS440BX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard WS440BX) + + pci:v00001274d00005000* + ID_MODEL_FROM_DATABASE=ES1370 [AudioPCI] +@@ -37725,31 +37725,31 @@ pci:v00001274d00005880* + ID_MODEL_FROM_DATABASE=5880B [AudioPCI] + + pci:v00001274d00005880sv00001274sd00002000* +- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) + + pci:v00001274d00005880sv00001274sd00002003* +- ID_MODEL_FROM_DATABASE=Creative SoundBlaster AudioPCI 128 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative SoundBlaster AudioPCI 128) + + pci:v00001274d00005880sv00001274sd00005880* +- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) + + pci:v00001274d00005880sv00001274sd00008001* +- ID_MODEL_FROM_DATABASE=Sound Blaster 16PCI 4.1ch ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Sound Blaster 16PCI 4.1ch) + + pci:v00001274d00005880sv00001458sd0000A000* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6OXET ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6OXET) + + pci:v00001274d00005880sv00001462sd00006880* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard MS-6188 1.00 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard MS-6188 1.00) + + pci:v00001274d00005880sv0000270Fsd00002001* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6CTR ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6CTR) + + pci:v00001274d00005880sv0000270Fsd00002200* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6WTX ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6WTX) + + pci:v00001274d00005880sv0000270Fsd00007040* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6ATA4 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6ATA4) + + pci:v00001274d00008001* + ID_MODEL_FROM_DATABASE=CT5880 [AudioPCI] +@@ -37809,181 +37809,181 @@ pci:v0000127Ad00001002* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00001002sv00001092sd0000094C* +- ID_MODEL_FROM_DATABASE=SupraExpress 56i PRO [Diamond SUP2380] ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (SupraExpress 56i PRO [Diamond SUP2380]) + + pci:v0000127Ad00001002sv0000122Dsd00004002* +- ID_MODEL_FROM_DATABASE=HPG / MDP3858-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (HPG / MDP3858-U) + + pci:v0000127Ad00001002sv0000122Dsd00004005* +- ID_MODEL_FROM_DATABASE=MDP3858-E ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-E) + + pci:v0000127Ad00001002sv0000122Dsd00004007* +- ID_MODEL_FROM_DATABASE=MDP3858-A/-NZ ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-A/-NZ) + + pci:v0000127Ad00001002sv0000122Dsd00004012* +- ID_MODEL_FROM_DATABASE=MDP3858-SA ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-SA) + + pci:v0000127Ad00001002sv0000122Dsd00004017* +- ID_MODEL_FROM_DATABASE=MDP3858-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) + + pci:v0000127Ad00001002sv0000122Dsd00004018* +- ID_MODEL_FROM_DATABASE=MDP3858-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) + + pci:v0000127Ad00001002sv0000127Asd00001002* +- ID_MODEL_FROM_DATABASE=Rockwell 56K D/F HCF Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Rockwell 56K D/F HCF Modem) + + pci:v0000127Ad00001003* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00001003sv00000E11sd0000B0BC* +- ID_MODEL_FROM_DATABASE=229-DF Zephyr ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Zephyr) + + pci:v0000127Ad00001003sv00000E11sd0000B114* +- ID_MODEL_FROM_DATABASE=229-DF Cheetah ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Cheetah) + + pci:v0000127Ad00001003sv00001033sd0000802B* +- ID_MODEL_FROM_DATABASE=229-DF ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF) + + pci:v0000127Ad00001003sv000013DFsd00001003* +- ID_MODEL_FROM_DATABASE=PCI56RX Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PCI56RX Modem) + + pci:v0000127Ad00001003sv000013E0sd00000117* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv000013E0sd00000147* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 Spain V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 Spain V.90 Modem) + + pci:v0000127Ad00001003sv000013E0sd00000197* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv000013E0sd000001C7* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 WW V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 WW V.90 Modem) + + pci:v0000127Ad00001003sv000013E0sd000001F7* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv00001436sd00001003* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv00001436sd00001103* +- ID_MODEL_FROM_DATABASE=IBM 5614PM3G V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM 5614PM3G V.90 Modem) + + pci:v0000127Ad00001003sv00001436sd00001602* +- ID_MODEL_FROM_DATABASE=Compaq 229-DF Ducati ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq 229-DF Ducati) + + pci:v0000127Ad00001004* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem + + pci:v0000127Ad00001004sv00001048sd00001500* +- ID_MODEL_FROM_DATABASE=MicroLink 56k Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (MicroLink 56k Modem) + + pci:v0000127Ad00001004sv000010CFsd00001059* +- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFRT ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (Fujitsu 229-DFRT) + + pci:v0000127Ad00001005* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v0000127Ad00001005sv00001005sd0000127A* +- ID_MODEL_FROM_DATABASE=AOpen FM56-P ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (AOpen FM56-P) + + pci:v0000127Ad00001005sv00001033sd00008029* +- ID_MODEL_FROM_DATABASE=229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (229-DFSV) + + pci:v0000127Ad00001005sv00001033sd00008054* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Modem) + + pci:v0000127Ad00001005sv000010CFsd0000103C* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00001005sv000010CFsd00001055* +- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) + + pci:v0000127Ad00001005sv000010CFsd00001056* +- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) + + pci:v0000127Ad00001005sv0000122Dsd00004003* +- ID_MODEL_FROM_DATABASE=MDP3858SP-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-U) + + pci:v0000127Ad00001005sv0000122Dsd00004006* +- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-E ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-E) + + pci:v0000127Ad00001005sv0000122Dsd00004008* +- ID_MODEL_FROM_DATABASE=MDP3858SP-A/SP-NZ ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-A/SP-NZ) + + pci:v0000127Ad00001005sv0000122Dsd00004009* +- ID_MODEL_FROM_DATABASE=MDP3858SP-E ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-E) + + pci:v0000127Ad00001005sv0000122Dsd00004010* +- ID_MODEL_FROM_DATABASE=MDP3858V-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-U) + + pci:v0000127Ad00001005sv0000122Dsd00004011* +- ID_MODEL_FROM_DATABASE=MDP3858SP-SA ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-SA) + + pci:v0000127Ad00001005sv0000122Dsd00004013* +- ID_MODEL_FROM_DATABASE=MDP3858V-A/V-NZ ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-A/V-NZ) + + pci:v0000127Ad00001005sv0000122Dsd00004015* +- ID_MODEL_FROM_DATABASE=MDP3858SP-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-W) + + pci:v0000127Ad00001005sv0000122Dsd00004016* +- ID_MODEL_FROM_DATABASE=MDP3858V-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-W) + + pci:v0000127Ad00001005sv0000122Dsd00004019* +- ID_MODEL_FROM_DATABASE=MDP3858V-SA ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-SA) + + pci:v0000127Ad00001005sv000013DFsd00001005* +- ID_MODEL_FROM_DATABASE=PCI56RVP Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (PCI56RVP Modem) + + pci:v0000127Ad00001005sv000013E0sd00000187* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv000013E0sd000001A7* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv000013E0sd000001B7* +- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 Spain V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 Spain V.90 Modem) + + pci:v0000127Ad00001005sv000013E0sd000001D7* +- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 WW V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 WW V.90 Modem) + + pci:v0000127Ad00001005sv00001436sd00001005* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv00001436sd00001105* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv00001437sd00001105* +- ID_MODEL_FROM_DATABASE=IBM 5614PS3G V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM 5614PS3G V.90 Modem) + + pci:v0000127Ad00001022* + ID_MODEL_FROM_DATABASE=HCF 56k Modem + + pci:v0000127Ad00001022sv00001436sd00001303* +- ID_MODEL_FROM_DATABASE=M3-5614PM3G V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (M3-5614PM3G V.90 Modem) + + pci:v0000127Ad00001023* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00001023sv0000122Dsd00004020* +- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858-WE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Packard Bell MDP3858-WE) + + pci:v0000127Ad00001023sv0000122Dsd00004023* +- ID_MODEL_FROM_DATABASE=MDP3858-UE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-UE) + + pci:v0000127Ad00001023sv000013E0sd00000247* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 Spain V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 Spain V.90 Modem) + + pci:v0000127Ad00001023sv000013E0sd00000297* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001023sv000013E0sd000002C7* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 WW V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 WW V.90 Modem) + + pci:v0000127Ad00001023sv00001436sd00001203* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001023sv00001436sd00001303* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001024* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem +@@ -37992,19 +37992,19 @@ pci:v0000127Ad00001025* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v0000127Ad00001025sv000010CFsd0000106A* +- ID_MODEL_FROM_DATABASE=Fujitsu 235-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 235-DFSV) + + pci:v0000127Ad00001025sv0000122Dsd00004021* +- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-WE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-WE) + + pci:v0000127Ad00001025sv0000122Dsd00004022* +- ID_MODEL_FROM_DATABASE=MDP3858SP-WE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-WE) + + pci:v0000127Ad00001025sv0000122Dsd00004024* +- ID_MODEL_FROM_DATABASE=MDP3858V-UE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-UE) + + pci:v0000127Ad00001025sv0000122Dsd00004025* +- ID_MODEL_FROM_DATABASE=MDP3858SP-UE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-UE) + + pci:v0000127Ad00001026* + ID_MODEL_FROM_DATABASE=HCF 56k PCI Speakerphone Modem +@@ -38034,85 +38034,85 @@ pci:v0000127Ad00002005* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00002005sv0000104Dsd00008044* +- ID_MODEL_FROM_DATABASE=229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd00008045* +- ID_MODEL_FROM_DATABASE=229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd00008055* +- ID_MODEL_FROM_DATABASE=PBE/Aztech 235W-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PBE/Aztech 235W-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd00008056* +- ID_MODEL_FROM_DATABASE=235-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (235-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd0000805A* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002005sv0000104Dsd0000805F* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002005sv0000104Dsd00008074* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002013* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem + + pci:v0000127Ad00002013sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002013sv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002014* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem + + pci:v0000127Ad00002014sv000010CFsd00001057* +- ID_MODEL_FROM_DATABASE=Fujitsu Citicorp III ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Fujitsu Citicorp III) + + pci:v0000127Ad00002014sv0000122Dsd00004050* +- ID_MODEL_FROM_DATABASE=MSP3880-U ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-U) + + pci:v0000127Ad00002014sv0000122Dsd00004055* +- ID_MODEL_FROM_DATABASE=MSP3880-W ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-W) + + pci:v0000127Ad00002015* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v0000127Ad00002015sv000010CFsd00001063* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00002015sv000010CFsd00001064* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00002015sv00001468sd00002015* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00002016* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem + + pci:v0000127Ad00002016sv0000122Dsd00004051* +- ID_MODEL_FROM_DATABASE=MSP3880V-W ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-W) + + pci:v0000127Ad00002016sv0000122Dsd00004052* +- ID_MODEL_FROM_DATABASE=MSP3880SP-W ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-W) + + pci:v0000127Ad00002016sv0000122Dsd00004054* +- ID_MODEL_FROM_DATABASE=MSP3880V-U ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-U) + + pci:v0000127Ad00002016sv0000122Dsd00004056* +- ID_MODEL_FROM_DATABASE=MSP3880SP-U ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-U) + + pci:v0000127Ad00002016sv0000122Dsd00004057* +- ID_MODEL_FROM_DATABASE=MSP3880SP-A ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-A) + + pci:v0000127Ad00004311* + ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem + + pci:v0000127Ad00004311sv0000127Asd00004311* +- ID_MODEL_FROM_DATABASE=Ring Modular? Riptide HSF RT HP Dom ++ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (Ring Modular? Riptide HSF RT HP Dom) + + pci:v0000127Ad00004311sv000013E0sd00000210* +- ID_MODEL_FROM_DATABASE=HP-GVC ++ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (HP-GVC) + + pci:v0000127Ad00004320* + ID_MODEL_FROM_DATABASE=Riptide PCI Audio Controller +@@ -38124,16 +38124,16 @@ pci:v0000127Ad00004321* + ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem + + pci:v0000127Ad00004321sv00001235sd00004321* +- ID_MODEL_FROM_DATABASE=Hewlett Packard DF ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) + + pci:v0000127Ad00004321sv00001235sd00004324* +- ID_MODEL_FROM_DATABASE=Hewlett Packard DF ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) + + pci:v0000127Ad00004321sv000013E0sd00000210* +- ID_MODEL_FROM_DATABASE=Hewlett Packard DF ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) + + pci:v0000127Ad00004321sv0000144Dsd00002321* +- ID_MODEL_FROM_DATABASE=Riptide ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Riptide) + + pci:v0000127Ad00004322* + ID_MODEL_FROM_DATABASE=Riptide PCI Game Controller +@@ -38190,7 +38190,7 @@ pci:v00001282d00009102* + ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet + + pci:v00001282d00009102sv00000291sd00008212* +- ID_MODEL_FROM_DATABASE=DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit ++ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit) + + pci:v00001282d00009132* + ID_MODEL_FROM_DATABASE=Ethernet 100/10 MBit +@@ -38208,19 +38208,19 @@ pci:v00001283d00008211* + ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 + + pci:v00001283d00008211sv00001043sd00008138* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 (P5GD1-VW Mainboard) + + pci:v00001283d00008212* + ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller + + pci:v00001283d00008212sv00001283sd00000001* +- ID_MODEL_FROM_DATABASE=IT/ITE8212 Dual channel ATA RAID controller ++ ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller (IT/ITE8212 Dual channel ATA RAID controller) + + pci:v00001283d00008213* + ID_MODEL_FROM_DATABASE=IT8213 IDE Controller + + pci:v00001283d00008213sv00001458sd0000B000* +- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard ++ ID_MODEL_FROM_DATABASE=IT8213 IDE Controller (GA-EG45M-DS2H Mainboard) + + pci:v00001283d00008330* + ID_MODEL_FROM_DATABASE=IT8330G +@@ -38451,19 +38451,19 @@ pci:v000012AEd00000001* + ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet + + pci:v000012AEd00000001sv00001014sd00000104* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX PCI Adapter ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX PCI Adapter) + + pci:v000012AEd00000001sv000012AEsd00000001* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX (Universal) ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX (Universal)) + + pci:v000012AEd00000002* + ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) + + pci:v000012AEd00000002sv000010A9sd00008002* +- ID_MODEL_FROM_DATABASE=Acenic Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Acenic Gigabit Ethernet) + + pci:v000012AEd00000002sv000012AEsd00000002* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-T (3C986-T) ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Gigabit Ethernet-T (3C986-T)) + + pci:v000012AEd000000FA* + ID_MODEL_FROM_DATABASE=Farallon PN9100-T Gigabit Ethernet +@@ -38505,64 +38505,64 @@ pci:v000012B9d00001006* + ID_MODEL_FROM_DATABASE=WinModem + + pci:v000012B9d00001006sv000012B9sd0000005C* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 3472) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 3472)) + + pci:v000012B9d00001006sv000012B9sd0000005E* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 662975) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 662975)) + + pci:v000012B9d00001006sv000012B9sd00000062* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662978) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662978)) + + pci:v000012B9d00001006sv000012B9sd00000068* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 5690) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 5690)) + + pci:v000012B9d00001006sv000012B9sd0000007A* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662974) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662974)) + + pci:v000012B9d00001006sv000012B9sd0000007F* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 5698, 5699) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 5698, 5699)) + + pci:v000012B9d00001006sv000012B9sd00000080* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 2975, 3528) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 2975, 3528)) + + pci:v000012B9d00001006sv000012B9sd00000081* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Models 2974, 3529) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Models 2974, 3529)) + + pci:v000012B9d00001006sv000012B9sd00000091* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 2978) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 2978)) + + pci:v000012B9d00001007* + ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem + + pci:v000012B9d00001007sv000012B9sd000000A3* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Model 3595) ++ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem ((Model 3595)) + + pci:v000012B9d00001007sv000012B9sd000000C4* +- ID_MODEL_FROM_DATABASE=U.S. Robotics V.92 Voice Faxmodem (2884A/B/C) ++ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (U.S. Robotics V.92 Voice Faxmodem (2884A/B/C)) + + pci:v000012B9d00001008* + ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 + + pci:v000012B9d00001008sv000012B9sd000000A2* +- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 2977) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 2977)) + + pci:v000012B9d00001008sv000012B9sd000000AA* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 2976) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 2976)) + + pci:v000012B9d00001008sv000012B9sd000000AB* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 5609) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 5609)) + + pci:v000012B9d00001008sv000012B9sd000000AC* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 3298) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 3298)) + + pci:v000012B9d00001008sv000012B9sd000000AD* +- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 5610) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 5610)) + + pci:v000012B9d00001008sv000012B9sd000000D3* +- ID_MODEL_FROM_DATABASE=USR 56K Internal V92 FAX Modem (Model 5610) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal V92 FAX Modem (Model 5610)) + + pci:v000012B9d00001008sv000012B9sd0000BABA* +- ID_MODEL_FROM_DATABASE=USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk] ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk]) + + pci:v000012BA* + ID_VENDOR_FROM_DATABASE=BittWare, Inc. +@@ -38586,7 +38586,7 @@ pci:v000012BEd00003042* + ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite + + pci:v000012BEd00003042sv000012BEsd00003042* +- ID_MODEL_FROM_DATABASE=Anchor Chips Lite Evaluation Board ++ ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite (Anchor Chips Lite Evaluation Board) + + pci:v000012BF* + ID_VENDOR_FROM_DATABASE=Fujifilm Microdevices +@@ -38781,58 +38781,58 @@ pci:v000012D2d00000018* + ID_MODEL_FROM_DATABASE=Riva128 + + pci:v000012D2d00000018sv00001048sd00000C10* +- ID_MODEL_FROM_DATABASE=VICTORY Erazor ++ ID_MODEL_FROM_DATABASE=Riva128 (VICTORY Erazor) + + pci:v000012D2d00000018sv0000107Bsd00008030* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv00001092sd00000350* +- ID_MODEL_FROM_DATABASE=Viper V330 ++ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) + + pci:v000012D2d00000018sv00001092sd00001092* +- ID_MODEL_FROM_DATABASE=Viper V330 ++ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) + + pci:v000012D2d00000018sv000010B4sd00001B1B* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00001B1D* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00001B1E* +- ID_MODEL_FROM_DATABASE=STB Velocity 128, PAL TV-Out ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128, PAL TV-Out) + + pci:v000012D2d00000018sv000010B4sd00001B20* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 Sapphire ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 Sapphire) + + pci:v000012D2d00000018sv000010B4sd00001B21* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00001B22* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, NTSC TV-Out ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, NTSC TV-Out) + + pci:v000012D2d00000018sv000010B4sd00001B23* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, PAL TV-Out ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, PAL TV-Out) + + pci:v000012D2d00000018sv000010B4sd00001B27* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 DVD ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 DVD) + + pci:v000012D2d00000018sv000010B4sd00001B88* +- ID_MODEL_FROM_DATABASE=MVP Pro 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (MVP Pro 128) + + pci:v000012D2d00000018sv000010B4sd0000222A* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) + + pci:v000012D2d00000018sv000010B4sd00002230* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00002232* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00002235* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) + + pci:v000012D2d00000018sv00002A15sd000054A3* +- ID_MODEL_FROM_DATABASE=3DVision-SAGP / 3DexPlorer 3000 ++ ID_MODEL_FROM_DATABASE=Riva128 (3DVision-SAGP / 3DexPlorer 3000) + + pci:v000012D2d00000019* + ID_MODEL_FROM_DATABASE=Riva128ZX +@@ -38916,7 +38916,7 @@ pci:v000012D8d0000E110* + ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge + + pci:v000012D8d0000E110sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 CompactPCI Bridge ++ ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge (CC11/CL11 CompactPCI Bridge) + + pci:v000012D8d0000E111* + ID_MODEL_FROM_DATABASE=PI7C9X111SL PCIe-to-PCI Reversible Bridge +@@ -38940,10 +38940,10 @@ pci:v000012D9d00001078* + ID_MODEL_FROM_DATABASE=Prosody X class e1000 device + + pci:v000012D9d00001078sv000012D9sd0000000D* +- ID_MODEL_FROM_DATABASE=Prosody X PCI ++ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X PCI) + + pci:v000012D9d00001078sv000012D9sd0000000E* +- ID_MODEL_FROM_DATABASE=Prosody X cPCI ++ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X cPCI) + + pci:v000012DA* + ID_VENDOR_FROM_DATABASE=True Time Inc. +@@ -39015,67 +39015,67 @@ pci:v000012EBd00000001* + ID_MODEL_FROM_DATABASE=Vortex 1 + + pci:v000012EBd00000001sv0000104Dsd00008036* +- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) + + pci:v000012EBd00000001sv00001092sd00002000* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv00001092sd00002100* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv00001092sd00002110* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv00001092sd00002200* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv0000122Dsd00001002* +- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) + + pci:v000012EBd00000001sv000012EBsd00000001* +- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) + + pci:v000012EBd00000001sv00005053sd00003355* +- ID_MODEL_FROM_DATABASE=Montego ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Montego) + + pci:v000012EBd00000001sv000050B2sd00001111* +- ID_MODEL_FROM_DATABASE=XLerate ++ ID_MODEL_FROM_DATABASE=Vortex 1 (XLerate) + + pci:v000012EBd00000002* + ID_MODEL_FROM_DATABASE=Vortex 2 + + pci:v000012EBd00000002sv0000104Dsd00008049* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv0000104Dsd0000807B* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv00001092sd00003000* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003001* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003002* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003003* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003004* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv000012EBsd00000002* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv000012EBsd00000088* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv0000144Dsd00003510* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv00005053sd00003356* +- ID_MODEL_FROM_DATABASE=Montego II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Montego II) + + pci:v000012EBd00000003* + ID_MODEL_FROM_DATABASE=AU8810 Vortex Digital Audio Processor +@@ -39465,16 +39465,16 @@ pci:v00001317d00000985* + ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 + + pci:v00001317d00000985sv00001734sd0000100C* +- ID_MODEL_FROM_DATABASE=Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter ++ ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 (Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter) + + pci:v00001317d00001985* + ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet + + pci:v00001317d00001985sv00001385sd0000511A* +- ID_MODEL_FROM_DATABASE=FA511 ++ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (FA511) + + pci:v00001317d00001985sv00001395sd00002103* +- ID_MODEL_FROM_DATABASE=CB100-EZ (4-LED version) ++ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (CB100-EZ (4-LED version)) + + pci:v00001317d00002850* + ID_MODEL_FROM_DATABASE=HSP MicroModem 56 +@@ -39486,10 +39486,10 @@ pci:v00001317d00008201* + ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface + + pci:v00001317d00008201sv000010B8sd00002635* +- ID_MODEL_FROM_DATABASE=SMC2635W v1 802.11b Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v1 802.11b Wireless Cardbus Adapter) + + pci:v00001317d00008201sv00001317sd00008201* +- ID_MODEL_FROM_DATABASE=SMC2635W v2 802.11b Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v2 802.11b Wireless Cardbus Adapter) + + pci:v00001317d00008211* + ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface +@@ -39510,13 +39510,13 @@ pci:v00001319d00000801* + ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] + + pci:v00001319d00000801sv00001319sd00001319* +- ID_MODEL_FROM_DATABASE=FM801 PCI Audio ++ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] (FM801 PCI Audio) + + pci:v00001319d00000802* + ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] + + pci:v00001319d00000802sv00001319sd00001319* +- ID_MODEL_FROM_DATABASE=FM801 PCI Joystick ++ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] (FM801 PCI Joystick) + + pci:v00001319d00001000* + ID_MODEL_FROM_DATABASE=FM801 PCI Audio +@@ -39618,7 +39618,7 @@ pci:v0000131Fd00002030* + ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 + + pci:v0000131Fd00002030sv0000131Fsd00002030* +- ID_MODEL_FROM_DATABASE=PCI Serial Card ++ ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 (PCI Serial Card) + + pci:v0000131Fd00002031* + ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16650 +@@ -39834,7 +39834,7 @@ pci:v0000134Dd00007890* + ID_MODEL_FROM_DATABASE=HSP MicroModem 56 + + pci:v0000134Dd00007890sv0000134Dsd00000001* +- ID_MODEL_FROM_DATABASE=PCT789 adapter ++ ID_MODEL_FROM_DATABASE=HSP MicroModem 56 (PCT789 adapter) + + pci:v0000134Dd00007891* + ID_MODEL_FROM_DATABASE=HSP MicroModem 56 +@@ -40119,7 +40119,7 @@ pci:v00001371d0000434E* + ID_MODEL_FROM_DATABASE=GigaCard Network Adapter + + pci:v00001371d0000434Esv00001371sd0000434E* +- ID_MODEL_FROM_DATABASE=N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L) ++ ID_MODEL_FROM_DATABASE=GigaCard Network Adapter (N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)) + + pci:v00001373* + ID_VENDOR_FROM_DATABASE=Silicon Vision Inc +@@ -40515,10 +40515,10 @@ pci:v00001394d00000001* + ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet + + pci:v00001394d00000001sv00001186sd00004800* +- ID_MODEL_FROM_DATABASE=DGE-500SX ++ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (DGE-500SX) + + pci:v00001394d00000001sv00001394sd00000001* +- ID_MODEL_FROM_DATABASE=NetCelerator Adapter ++ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (NetCelerator Adapter) + + pci:v00001395* + ID_VENDOR_FROM_DATABASE=Ambicom Inc +@@ -40533,40 +40533,40 @@ pci:v00001397d000008B4* + ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] + + pci:v00001397d000008B4sv00001397sd0000B520* +- ID_MODEL_FROM_DATABASE=HFC-4S [IOB4ST] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [IOB4ST]) + + pci:v00001397d000008B4sv00001397sd0000B540* +- ID_MODEL_FROM_DATABASE=HFC-4S [Swyx 4xS0 SX2 QuadBri] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Swyx 4xS0 SX2 QuadBri]) + + pci:v00001397d000008B4sv00001397sd0000B550* +- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns quadBRI] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns quadBRI]) + + pci:v00001397d000008B4sv00001397sd0000B556* +- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns DuoDBRI] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns DuoDBRI]) + + pci:v00001397d000008B4sv00001397sd0000E888* +- ID_MODEL_FROM_DATABASE=HFC-4S [OpenVox B200P / B400P] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [OpenVox B200P / B400P]) + + pci:v00001397d000016B8* + ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] + + pci:v00001397d000016B8sv00001397sd0000B562* +- ID_MODEL_FROM_DATABASE=HFC-8S [IOB8ST] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [IOB8ST]) + + pci:v00001397d00002BD0* + ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] + + pci:v00001397d00002BD0sv00000675sd00001704* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C)) + + pci:v00001397d00002BD0sv00000675sd00001708* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C, ACPI) ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C, ACPI)) + + pci:v00001397d00002BD0sv00001397sd00002BD0* +- ID_MODEL_FROM_DATABASE=ISDN Board ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Board) + + pci:v00001397d00002BD0sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CI1-1-Harp ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (CI1-1-Harp) + + pci:v00001397d000030B1* + ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] +@@ -40665,46 +40665,46 @@ pci:v000013A3d0000002F* + ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor + + pci:v000013A3d0000002Fsv000013A3sd00001600* +- ID_MODEL_FROM_DATABASE=DR1600 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1600 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001605* +- ID_MODEL_FROM_DATABASE=DR1605 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1605 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001610* +- ID_MODEL_FROM_DATABASE=DR1610 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1610 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001615* +- ID_MODEL_FROM_DATABASE=DR1615 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1615 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001620* +- ID_MODEL_FROM_DATABASE=DR1620 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1620 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001625* +- ID_MODEL_FROM_DATABASE=DR1625 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1625 Acceleration Card) + + pci:v000013A3d00000033* + ID_MODEL_FROM_DATABASE=8201 Acceleration Processor + + pci:v000013A3d00000033sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1710 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8201 Acceleration Processor (DX1710 Acceleration Card) + + pci:v000013A3d00000034* + ID_MODEL_FROM_DATABASE=8202 Acceleration Processor + + pci:v000013A3d00000034sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1720 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8202 Acceleration Processor (DX1720 Acceleration Card) + + pci:v000013A3d00000035* + ID_MODEL_FROM_DATABASE=8203 Acceleration Processor + + pci:v000013A3d00000035sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1730 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8203 Acceleration Processor (DX1730 Acceleration Card) + + pci:v000013A3d00000037* + ID_MODEL_FROM_DATABASE=8204 Acceleration Processor + + pci:v000013A3d00000037sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1740 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8204 Acceleration Processor (DX1740 Acceleration Card) + + pci:v000013A4* + ID_VENDOR_FROM_DATABASE=Rascom Inc +@@ -41067,7 +41067,7 @@ pci:v000013F0d00000200* + ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY + + pci:v000013F0d00000200sv00001043sd00008213* +- ID_MODEL_FROM_DATABASE=NX1001 ++ ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (NX1001) + + pci:v000013F0d00000201* + ID_MODEL_FROM_DATABASE=ST201 Sundance Ethernet +@@ -41079,7 +41079,7 @@ pci:v000013F0d00001023* + ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet + + pci:v000013F0d00001023sv00001043sd00008180* +- ID_MODEL_FROM_DATABASE=NX1101 ++ ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet (NX1101) + + pci:v000013F1* + ID_VENDOR_FROM_DATABASE=Oce' - Technologies B.V. +@@ -41109,76 +41109,76 @@ pci:v000013F6d00000100* + ID_MODEL_FROM_DATABASE=CM8338A + + pci:v000013F6d00000100sv000013F6sd0000FFFF* +- ID_MODEL_FROM_DATABASE=CMI8338/C3DX PCI Audio Device ++ ID_MODEL_FROM_DATABASE=CM8338A (CMI8338/C3DX PCI Audio Device) + + pci:v000013F6d00000101* + ID_MODEL_FROM_DATABASE=CM8338B + + pci:v000013F6d00000101sv000013F6sd00000101* +- ID_MODEL_FROM_DATABASE=CMI8338-031 PCI Audio Device ++ ID_MODEL_FROM_DATABASE=CM8338B (CMI8338-031 PCI Audio Device) + + pci:v000013F6d00000111* + ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio + + pci:v000013F6d00000111sv00001019sd00000970* +- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (P6STP-FL motherboard) + + pci:v000013F6d00000111sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CUSI-FX motherboard) + + pci:v000013F6d00000111sv00001043sd00008077* +- ID_MODEL_FROM_DATABASE=CMI8738 6-channel audio controller ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6-channel audio controller) + + pci:v000013F6d00000111sv00001043sd000080E2* +- ID_MODEL_FROM_DATABASE=CMI8738 6ch-MX ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6ch-MX) + + pci:v000013F6d00000111sv000013F6sd00000111* +- ID_MODEL_FROM_DATABASE=CMI8738/C3DX PCI Audio Device ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738/C3DX PCI Audio Device) + + pci:v000013F6d00000111sv000013F6sd00009761* +- ID_MODEL_FROM_DATABASE=Theatron Agrippa ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Theatron Agrippa) + + pci:v000013F6d00000111sv0000153Bsd00001144* +- ID_MODEL_FROM_DATABASE=Aureon 5.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 5.1) + + pci:v000013F6d00000111sv0000153Bsd00001170* +- ID_MODEL_FROM_DATABASE=Aureon 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 7.1) + + pci:v000013F6d00000111sv00001681sd0000A000* +- ID_MODEL_FROM_DATABASE=Gamesurround MUSE XL ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Gamesurround MUSE XL) + + pci:v000013F6d00000111sv000017ABsd00000604* +- ID_MODEL_FROM_DATABASE=PSC604 Dynamic Edge ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC604 Dynamic Edge) + + pci:v000013F6d00000111sv000017ABsd00000605* +- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) + + pci:v000013F6d00000111sv000017ABsd00007777* +- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) + + pci:v000013F6d00000111sv0000270Fsd00001103* +- ID_MODEL_FROM_DATABASE=CT-7NJS Ultra motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CT-7NJS Ultra motherboard) + + pci:v000013F6d00000111sv0000270Fsd0000F462* +- ID_MODEL_FROM_DATABASE=7NJL1 motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (7NJL1 motherboard) + + pci:v000013F6d00000111sv0000584Dsd00003731* +- ID_MODEL_FROM_DATABASE=Digital X-Mystique ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Digital X-Mystique) + + pci:v000013F6d00000111sv0000584Dsd00003741* +- ID_MODEL_FROM_DATABASE=X-Plosion 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Plosion 7.1) + + pci:v000013F6d00000111sv0000584Dsd00003751* +- ID_MODEL_FROM_DATABASE=X-Raider 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Raider 7.1) + + pci:v000013F6d00000111sv0000584Dsd00003761* +- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP) + + pci:v000013F6d00000111sv0000584Dsd00003771* +- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP Value ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP Value) + + pci:v000013F6d00000111sv00007284sd00008384* +- ID_MODEL_FROM_DATABASE=Striker 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Striker 7.1) + + pci:v000013F6d00000211* + ID_MODEL_FROM_DATABASE=CM8738 +@@ -41187,85 +41187,85 @@ pci:v000013F6d00005011* + ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] + + pci:v000013F6d00005011sv000013F6sd00005011* +- ID_MODEL_FROM_DATABASE=HDA Controller ++ ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] (HDA Controller) + + pci:v000013F6d00008788* + ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] + + pci:v000013F6d00008788sv00001043sd00008269* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2)) + + pci:v000013F6d00008788sv00001043sd00008275* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) + + pci:v000013F6d00008788sv00001043sd000082B7* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2X) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2X)) + + pci:v000013F6d00008788sv00001043sd00008314* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3)) + + pci:v000013F6d00008788sv00001043sd00008327* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) + + pci:v000013F6d00008788sv00001043sd0000834F* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar D1) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar D1)) + + pci:v000013F6d00008788sv00001043sd0000835C* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Essence STX) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX)) + + pci:v000013F6d00008788sv00001043sd0000835D* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar ST) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar ST)) + + pci:v000013F6d00008788sv00001043sd0000835E* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3 Slim) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3 Slim)) + + pci:v000013F6d00008788sv00001043sd0000838E* +- ID_MODEL_FROM_DATABASE=Virtuoso 66 (Xonar DS) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 66 (Xonar DS)) + + pci:v000013F6d00008788sv00001043sd00008428* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Xense) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Xense)) + + pci:v000013F6d00008788sv00001043sd00008467* +- ID_MODEL_FROM_DATABASE=CMI8786 (Xonar DG) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) + + pci:v000013F6d00008788sv000013F6sd00008782* +- ID_MODEL_FROM_DATABASE=PCI 2.0 HD Audio ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) + + pci:v000013F6d00008788sv000013F6sd0000FFFF* +- ID_MODEL_FROM_DATABASE=CMI8787-HG2PCI ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8787-HG2PCI) + + pci:v000013F6d00008788sv000014C3sd00001710* +- ID_MODEL_FROM_DATABASE=HiFier Fantasia ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Fantasia) + + pci:v000013F6d00008788sv000014C3sd00001711* +- ID_MODEL_FROM_DATABASE=HiFier Serenade ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade) + + pci:v000013F6d00008788sv000014C3sd00001713* +- ID_MODEL_FROM_DATABASE=HiFier Serenade III ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade III) + + pci:v000013F6d00008788sv00001A58sd00000910* +- ID_MODEL_FROM_DATABASE=Barracuda AC-1 ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Barracuda AC-1) + + pci:v000013F6d00008788sv0000415Asd00005431* +- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1) + + pci:v000013F6d00008788sv00005431sd0000017A* +- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 2G ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1 2G) + + pci:v000013F6d00008788sv0000584Dsd00003781* +- ID_MODEL_FROM_DATABASE=HDA X-Purity 7.1 Platinum ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HDA X-Purity 7.1 Platinum) + + pci:v000013F6d00008788sv00007284sd00009761* +- ID_MODEL_FROM_DATABASE=CLARO ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO) + + pci:v000013F6d00008788sv00007284sd00009781* +- ID_MODEL_FROM_DATABASE=CLARO halo ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO halo) + + pci:v000013F6d00008788sv00007284sd00009783* +- ID_MODEL_FROM_DATABASE=eCLARO ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (eCLARO) + + pci:v000013F6d00008788sv00007284sd00009787* +- ID_MODEL_FROM_DATABASE=CLARO II ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO II) + + pci:v000013F7* + ID_VENDOR_FROM_DATABASE=Wildfire Communications +@@ -41298,13 +41298,13 @@ pci:v000013FEd00001600* + ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) + + pci:v000013FEd00001600sv00001601sd00000002* +- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1601 2-port unisolated RS-422/485) + + pci:v000013FEd00001600sv00001602sd00000002* +- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1602 2-port isolated RS-422/485) + + pci:v000013FEd00001600sv00001612sd00000004* +- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1612 4-port RS-232/422/485) + + pci:v000013FEd00001603* + ID_MODEL_FROM_DATABASE=PCI-1603 2-port isolated RS-232/current loop +@@ -41316,13 +41316,13 @@ pci:v000013FEd000016FF* + ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) + + pci:v000013FEd000016FFsv00001601sd00000000* +- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 PCI communications card ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1601 2-port unisolated RS-422/485 PCI communications card) + + pci:v000013FEd000016FFsv00001602sd00000000* +- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1602 2-port isolated RS-422/485) + + pci:v000013FEd000016FFsv00001612sd00000000* +- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1612 4-port RS-232/422/485) + + pci:v000013FEd00001711* + ID_MODEL_FROM_DATABASE=PCI-1711 16-channel data acquisition card 12-bit, 100kS/s +@@ -41676,37 +41676,37 @@ pci:v00001409d00007168* + ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) + + pci:v00001409d00007168sv00001409sd00000002* +- ID_MODEL_FROM_DATABASE=SER4036A3V (2x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4036A3V (2x RS232 port)) + + pci:v00001409d00007168sv00001409sd00004027* +- ID_MODEL_FROM_DATABASE=SER4027A (1x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027A (1x RS232 port)) + + pci:v00001409d00007168sv00001409sd00004037* +- ID_MODEL_FROM_DATABASE=SER4037A (2x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037A (2x RS232 port)) + + pci:v00001409d00007168sv00001409sd00004056* +- ID_MODEL_FROM_DATABASE=SER4056A (4x RS232) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056A (4x RS232)) + + pci:v00001409d00007168sv00001409sd00005027* +- ID_MODEL_FROM_DATABASE=SER4027D ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027D) + + pci:v00001409d00007168sv00001409sd00005037* +- ID_MODEL_FROM_DATABASE=SER4037D (2x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037D (2x RS232 port)) + + pci:v00001409d00007168sv00001409sd00005066* +- ID_MODEL_FROM_DATABASE=SER4066R (8x RS232) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4066R (8x RS232)) + + pci:v00001409d00007168sv00001409sd00006056* +- ID_MODEL_FROM_DATABASE=SER4056D (4x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056D (4x RS232 port)) + + pci:v00001409d00007268* + ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) + + pci:v00001409d00007268sv00001409sd00000103* +- ID_MODEL_FROM_DATABASE=PAR4008A ++ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4008A) + + pci:v00001409d00007268sv00001409sd00000104* +- ID_MODEL_FROM_DATABASE=PAR4018A ++ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4018A) + + pci:v0000140A* + ID_VENDOR_FROM_DATABASE=DSP Research Inc +@@ -41739,106 +41739,106 @@ pci:v00001412d00001712* + ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller + + pci:v00001412d00001712sv00001412sd00001712* +- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24) + + pci:v00001412d00001712sv00001412sd00003632* +- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 192 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 192) + + pci:v00001412d00001712sv00001412sd0000D630* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010) + + pci:v00001412d00001712sv00001412sd0000D631* +- ID_MODEL_FROM_DATABASE=M-Audio Delta DiO ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta DiO) + + pci:v00001412d00001712sv00001412sd0000D632* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 66 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 66) + + pci:v00001412d00001712sv00001412sd0000D633* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 44 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 44) + + pci:v00001412d00001712sv00001412sd0000D634* +- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 2496 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 2496) + + pci:v00001412d00001712sv00001412sd0000D635* +- ID_MODEL_FROM_DATABASE=M-Audio Delta TDIF ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta TDIF) + + pci:v00001412d00001712sv00001412sd0000D637* +- ID_MODEL_FROM_DATABASE=M-Audio Delta RBUS ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta RBUS) + + pci:v00001412d00001712sv00001412sd0000D638* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 410 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 410) + + pci:v00001412d00001712sv00001412sd0000D63B* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010LT ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010LT) + + pci:v00001412d00001712sv00001412sd0000D63C* +- ID_MODEL_FROM_DATABASE=Digigram VX442 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Digigram VX442) + + pci:v00001412d00001712sv00001416sd00001712* +- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 Media 7.1 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24 Media 7.1) + + pci:v00001412d00001712sv0000153Bsd00001115* +- ID_MODEL_FROM_DATABASE=EWS88 MT ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT) + + pci:v00001412d00001712sv0000153Bsd00001125* +- ID_MODEL_FROM_DATABASE=EWS88 MT (Master) ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT (Master)) + + pci:v00001412d00001712sv0000153Bsd0000112B* +- ID_MODEL_FROM_DATABASE=EWS88 D ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D) + + pci:v00001412d00001712sv0000153Bsd0000112C* +- ID_MODEL_FROM_DATABASE=EWS88 D (Master) ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D (Master)) + + pci:v00001412d00001712sv0000153Bsd00001130* +- ID_MODEL_FROM_DATABASE=EWX 24/96 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWX 24/96) + + pci:v00001412d00001712sv0000153Bsd00001138* +- ID_MODEL_FROM_DATABASE=DMX 6fire 24/96 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (DMX 6fire 24/96) + + pci:v00001412d00001712sv0000153Bsd00001151* +- ID_MODEL_FROM_DATABASE=PHASE88 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (PHASE88) + + pci:v00001412d00001712sv000016CEsd00001040* +- ID_MODEL_FROM_DATABASE=Edirol DA-2496 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Edirol DA-2496) + + pci:v00001412d00001724* + ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller + + pci:v00001412d00001724sv000010B0sd00000200* +- ID_MODEL_FROM_DATABASE=Hollywood@Home 7.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Hollywood@Home 7.1) + + pci:v00001412d00001724sv00001412sd00001724* +- ID_MODEL_FROM_DATABASE=Albatron PX865PE 7.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Albatron PX865PE 7.1) + + pci:v00001412d00001724sv00001412sd00003630* +- ID_MODEL_FROM_DATABASE=M-Audio Revolution 7.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 7.1) + + pci:v00001412d00001724sv00001412sd00003631* +- ID_MODEL_FROM_DATABASE=M-Audio Revolution 5.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 5.1) + + pci:v00001412d00001724sv0000153Bsd00001145* +- ID_MODEL_FROM_DATABASE=Aureon 7.1 Space ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Space) + + pci:v00001412d00001724sv0000153Bsd00001147* +- ID_MODEL_FROM_DATABASE=Aureon 5.1 Sky ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 5.1 Sky) + + pci:v00001412d00001724sv0000153Bsd00001150* +- ID_MODEL_FROM_DATABASE=PHASE 22 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PHASE 22) + + pci:v00001412d00001724sv0000153Bsd00001153* +- ID_MODEL_FROM_DATABASE=Aureon 7.1 Universe ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Universe) + + pci:v00001412d00001724sv000017ABsd00001906* +- ID_MODEL_FROM_DATABASE=PSC 724 [Ultimate Edge] ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PSC 724 [Ultimate Edge]) + + pci:v00001412d00001724sv0000270Fsd0000F641* +- ID_MODEL_FROM_DATABASE=ZNF3-150 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-150) + + pci:v00001412d00001724sv0000270Fsd0000F645* +- ID_MODEL_FROM_DATABASE=ZNF3-250 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-250) + + pci:v00001412d00001724sv00003130sd00004154* +- ID_MODEL_FROM_DATABASE=MAYA 44 MKII ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (MAYA 44 MKII) + + pci:v00001413* + ID_VENDOR_FROM_DATABASE=Addonics +@@ -41904,28 +41904,28 @@ pci:v00001415d00009501* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) + + pci:v00001415d00009501sv000012C4sd00000201* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (2 port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (2 port)) + + pci:v00001415d00009501sv000012C4sd00000202* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (4 port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (4 port)) + + pci:v00001415d00009501sv000012C4sd00000203* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (8 port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (8 port)) + + pci:v00001415d00009501sv000012C4sd00000210* +- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p1-4) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/104-Plus (8 port, p1-4)) + + pci:v00001415d00009501sv0000131Fsd00002050* +- ID_MODEL_FROM_DATABASE=CyberPro (4-port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberPro (4-port)) + + pci:v00001415d00009501sv0000131Fsd00002051* +- ID_MODEL_FROM_DATABASE=CyberSerial 4S Plus ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberSerial 4S Plus) + + pci:v00001415d00009501sv000015EDsd00002000* +- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 8 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 8) + + pci:v00001415d00009501sv000015EDsd00002001* +- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 16 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 16) + + pci:v00001415d00009505* + ID_MODEL_FROM_DATABASE=OXuPCI952 (Dual 16C950 UART) +@@ -41940,19 +41940,19 @@ pci:v00001415d00009510* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) + + pci:v00001415d00009510sv000012C4sd00000200* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (Unused) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) (Titan/cPCI (Unused)) + + pci:v00001415d00009511* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) + + pci:v00001415d00009511sv000012C4sd00000211* +- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p5-8) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (Titan/104-Plus (8 port, p5-8)) + + pci:v00001415d00009511sv000015EDsd00002000* +- ID_MODEL_FROM_DATABASE=MCCR Serial p4-7 of 8 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-7 of 8) + + pci:v00001415d00009511sv000015EDsd00002001* +- ID_MODEL_FROM_DATABASE=MCCR Serial p4-15 of 16 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-15 of 16) + + pci:v00001415d00009512* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (32bit bus) +@@ -41970,10 +41970,10 @@ pci:v00001415d0000C158* + ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART + + pci:v00001415d0000C158sv0000E4BFsd0000C504* +- ID_MODEL_FROM_DATABASE=CP4-SCAT Wireless Technologies Carrier Board ++ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (CP4-SCAT Wireless Technologies Carrier Board) + + pci:v00001415d0000C158sv0000E4BFsd0000D551* +- ID_MODEL_FROM_DATABASE=DU1-MUSTANG Dual-Port RS-485 Interface ++ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (DU1-MUSTANG Dual-Port RS-485 Interface) + + pci:v00001415d0000C308* + ID_MODEL_FROM_DATABASE=EX-44016 16-port serial +@@ -42042,7 +42042,7 @@ pci:v00001425d00000030* + ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter + + pci:v00001425d00000030sv0000103Csd0000705E* +- ID_MODEL_FROM_DATABASE=PCIe 10GBase-SR [AD386A] ++ ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter (PCIe 10GBase-SR [AD386A]) + + pci:v00001425d00000031* + ID_MODEL_FROM_DATABASE=T320 10GbE Dual Port Adapter +@@ -43170,13 +43170,13 @@ pci:v0000144Dd0000A820* + ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X + + pci:v0000144Dd0000A820sv00001028sd00001F95* +- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 400GB ++ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 400GB) + + pci:v0000144Dd0000A820sv00001028sd00001F96* +- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 800GB ++ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 800GB) + + pci:v0000144Dd0000A820sv00001028sd00001F97* +- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 1600GB ++ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 1600GB) + + pci:v0000144E* + ID_VENDOR_FROM_DATABASE=OLITEC +@@ -43656,19 +43656,19 @@ pci:v000014C1d00000008* + ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC + + pci:v000014C1d00000008sv000014C1sd00000008* +- ID_MODEL_FROM_DATABASE=10G-PCIE-8A ++ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A) + + pci:v000014C1d00000008sv000014C1sd00000009* +- ID_MODEL_FROM_DATABASE=10G-PCIE-8A (MSI-X firmware) ++ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A (MSI-X firmware)) + + pci:v000014C1d00000008sv000014C1sd0000000A* +- ID_MODEL_FROM_DATABASE=10G-PCIE-8B ++ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8B) + + pci:v000014C1d00008043* + ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect + + pci:v000014C1d00008043sv0000103Csd00001240* +- ID_MODEL_FROM_DATABASE=Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) ++ ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect (Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)) + + pci:v000014C2* + ID_VENDOR_FROM_DATABASE=DTK Computer +@@ -43929,19 +43929,19 @@ pci:v000014E4d00001600* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express + + pci:v000014E4d00001600sv00001028sd000001C1* +- ID_MODEL_FROM_DATABASE=Precision 490 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Precision 490) + + pci:v000014E4d00001600sv00001028sd000001C2* +- ID_MODEL_FROM_DATABASE=Latitude D620 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Latitude D620) + + pci:v000014E4d00001600sv0000103Csd00003015* +- ID_MODEL_FROM_DATABASE=PCIe LAN on Motherboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (PCIe LAN on Motherboard) + + pci:v000014E4d00001600sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 Onboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (E4500 Onboard) + + pci:v000014E4d00001600sv00001259sd00002705* +- ID_MODEL_FROM_DATABASE=AT-2711FX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (AT-2711FX) + + pci:v000014E4d00001601* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5752M Gigabit Ethernet PCI Express +@@ -43956,52 +43956,52 @@ pci:v000014E4d00001639* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet + + pci:v000014E4d00001639sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 BCM5709 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R710 BCM5709 Gigabit Ethernet) + + pci:v000014E4d00001639sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 BCM5709 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R610 BCM5709 Gigabit Ethernet) + + pci:v000014E4d00001639sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 BCM5709 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge T610 BCM5709 Gigabit Ethernet) + + pci:v000014E4d00001639sv0000103Csd00007055* +- ID_MODEL_FROM_DATABASE=NC382i Integrated Multi-port PCI Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382i Integrated Multi-port PCI Express Gigabit Server Adapter) + + pci:v000014E4d00001639sv0000103Csd00007059* +- ID_MODEL_FROM_DATABASE=NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter) + + pci:v000014E4d00001639sv000010A9sd00008027* +- ID_MODEL_FROM_DATABASE=Quad port Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (Quad port Gigabit Ethernet Controller) + + pci:v000014E4d0000163A* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet + + pci:v000014E4d0000163Asv00001028sd0000027B* +- ID_MODEL_FROM_DATABASE=PowerEdge M805 Broadcom NetXtreme II BCM5709S ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M805 Broadcom NetXtreme II BCM5709S) + + pci:v000014E4d0000163Asv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 BCM5709S Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M710 BCM5709S Gigabit Ethernet) + + pci:v000014E4d0000163Asv0000103Csd0000171D* +- ID_MODEL_FROM_DATABASE=NC382m Dual Port 1GbE Multifunction BL-c Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382m Dual Port 1GbE Multifunction BL-c Adapter) + + pci:v000014E4d0000163Asv0000103Csd00007056* +- ID_MODEL_FROM_DATABASE=NC382i Integrated Quad Port PCI Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382i Integrated Quad Port PCI Express Gigabit Server Adapter) + + pci:v000014E4d0000163Asv00001259sd00002984* +- ID_MODEL_FROM_DATABASE=AT-2973SX ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (AT-2973SX) + + pci:v000014E4d0000163B* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet + + pci:v000014E4d0000163Bsv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 BCM5716 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R410 BCM5716 Gigabit Ethernet) + + pci:v000014E4d0000163Bsv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 BCM5716 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge T410 BCM5716 Gigabit Ethernet) + + pci:v000014E4d0000163Bsv00001028sd000002F1* +- ID_MODEL_FROM_DATABASE=PowerEdge R510 BCM5716 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R510 BCM5716 Gigabit Ethernet) + + pci:v000014E4d0000163C* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716S Gigabit Ethernet +@@ -44028,220 +44028,220 @@ pci:v000014E4d00001644* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet + + pci:v000014E4d00001644sv00001014sd00000277* +- ID_MODEL_FROM_DATABASE=Broadcom Vigil B5700 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom Vigil B5700 1000Base-T) + + pci:v000014E4d00001644sv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) + + pci:v000014E4d00001644sv00001028sd00000106* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) + + pci:v000014E4d00001644sv00001028sd00000109* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000Base-T) + + pci:v000014E4d00001644sv00001028sd0000010A* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000BaseTX) + + pci:v000014E4d00001644sv000010B7sd00001000* +- ID_MODEL_FROM_DATABASE=3C996-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-T 1000Base-T) + + pci:v000014E4d00001644sv000010B7sd00001001* +- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996B-T 1000Base-T) + + pci:v000014E4d00001644sv000010B7sd00001002* +- ID_MODEL_FROM_DATABASE=3C996C-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996C-T 1000Base-T) + + pci:v000014E4d00001644sv000010B7sd00001003* +- ID_MODEL_FROM_DATABASE=3C997-T 1000Base-T Dual Port ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-T 1000Base-T Dual Port) + + pci:v000014E4d00001644sv000010B7sd00001004* +- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-SX 1000Base-SX) + + pci:v000014E4d00001644sv000010B7sd00001005* +- ID_MODEL_FROM_DATABASE=3C997-SX 1000Base-SX Dual Port ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-SX 1000Base-SX Dual Port) + + pci:v000014E4d00001644sv000010B7sd00001008* +- ID_MODEL_FROM_DATABASE=3C942 Gigabit LOM (31X31) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C942 Gigabit LOM (31X31)) + + pci:v000014E4d00001644sv000014E4sd00000002* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) + + pci:v000014E4d00001644sv000014E4sd00000003* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) + + pci:v000014E4d00001644sv000014E4sd00000004* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-T) + + pci:v000014E4d00001644sv000014E4sd00001028* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000BaseTX) + + pci:v000014E4d00001644sv000014E4sd00001644* +- ID_MODEL_FROM_DATABASE=BCM5700 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (BCM5700 1000Base-T) + + pci:v000014E4d00001645* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet + + pci:v000014E4d00001645sv00000E11sd0000007C* +- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) + + pci:v000014E4d00001645sv00000E11sd0000007D* +- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) + + pci:v000014E4d00001645sv00000E11sd00000085* +- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) + + pci:v000014E4d00001645sv00000E11sd00000099* +- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) + + pci:v000014E4d00001645sv00000E11sd0000009A* +- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) + + pci:v000014E4d00001645sv00000E11sd000000C1* +- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) + + pci:v000014E4d00001645sv00001028sd00000121* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Broadcom BCM5701 1000Base-T) + + pci:v000014E4d00001645sv0000103Csd0000128A* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T (HP, OEM 3COM) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T (HP, OEM 3COM)) + + pci:v000014E4d00001645sv0000103Csd0000128B* +- ID_MODEL_FROM_DATABASE=1000Base-SX (PCI) [A7073A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (1000Base-SX (PCI) [A7073A]) + + pci:v000014E4d00001645sv0000103Csd000012A4* +- ID_MODEL_FROM_DATABASE=Core Lan 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core Lan 1000Base-T) + + pci:v000014E4d00001645sv0000103Csd000012C1* +- ID_MODEL_FROM_DATABASE=IOX Core Lan 1000Base-T [A7109AX] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IOX Core Lan 1000Base-T [A7109AX]) + + pci:v000014E4d00001645sv0000103Csd00001300* +- ID_MODEL_FROM_DATABASE=Core LAN/SCSI Combo [A6794A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core LAN/SCSI Combo [A6794A]) + + pci:v000014E4d00001645sv000010A9sd00008010* +- ID_MODEL_FROM_DATABASE=IO9/IO10 Gigabit Ethernet (Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IO9/IO10 Gigabit Ethernet (Copper)) + + pci:v000014E4d00001645sv000010A9sd00008011* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Copper)) + + pci:v000014E4d00001645sv000010A9sd00008012* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Fiber) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Fiber)) + + pci:v000014E4d00001645sv000010B7sd00001004* +- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996-SX 1000Base-SX) + + pci:v000014E4d00001645sv000010B7sd00001006* +- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996B-T 1000Base-T) + + pci:v000014E4d00001645sv000010B7sd00001007* +- ID_MODEL_FROM_DATABASE=3C1000-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C1000-T 1000Base-T) + + pci:v000014E4d00001645sv000010B7sd00001008* +- ID_MODEL_FROM_DATABASE=3C940-BR01 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C940-BR01 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000001* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000005* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000006* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000007* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-SX) + + pci:v000014E4d00001645sv000014E4sd00000008* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00001645* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet + + pci:v000014E4d00001645sv000014E4sd00008008* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001646* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet + + pci:v000014E4d00001646sv00000E11sd000000BB* +- ID_MODEL_FROM_DATABASE=NC7760 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (NC7760 1000BaseTX) + + pci:v000014E4d00001646sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5702 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (Broadcom BCM5702 1000BaseTX) + + pci:v000014E4d00001646sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5702 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (BCM5702 1000BaseTX) + + pci:v000014E4d00001647* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet + + pci:v000014E4d00001647sv00000E11sd00000099* +- ID_MODEL_FROM_DATABASE=NC7780 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7780 1000BaseTX) + + pci:v000014E4d00001647sv00000E11sd0000009A* +- ID_MODEL_FROM_DATABASE=NC7770 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7770 1000BaseTX) + + pci:v000014E4d00001647sv000010A9sd00008010* +- ID_MODEL_FROM_DATABASE=SGI IO9 Gigabit Ethernet (Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (SGI IO9 Gigabit Ethernet (Copper)) + + pci:v000014E4d00001647sv000014E4sd00000009* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001647sv000014E4sd0000000A* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseSX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseSX) + + pci:v000014E4d00001647sv000014E4sd0000000B* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001647sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001647sv000014E4sd0000800A* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001648* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet + + pci:v000014E4d00001648sv00000E11sd000000CF* +- ID_MODEL_FROM_DATABASE=NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv00000E11sd000000D0* +- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv00000E11sd000000D1* +- ID_MODEL_FROM_DATABASE=NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 1750) + + pci:v000014E4d00001648sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Broadcom NetXtreme BCM5704 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 6850 Broadcom NetXtreme BCM5704) + + pci:v000014E4d00001648sv0000103Csd0000310F* +- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv000010A9sd00008013* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Copper)) + + pci:v000014E4d00001648sv000010A9sd00008018* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (A330) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (A330)) + + pci:v000014E4d00001648sv000010A9sd0000801A* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (IA-blade) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (IA-blade)) + + pci:v000014E4d00001648sv000010A9sd0000801B* +- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Copper)) + + pci:v000014E4d00001648sv000010B7sd00002000* +- ID_MODEL_FROM_DATABASE=3C998-T Dual Port 10/100/1000 PCI-X ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C998-T Dual Port 10/100/1000 PCI-X) + + pci:v000014E4d00001648sv000010B7sd00003000* +- ID_MODEL_FROM_DATABASE=3C999-T Quad Port 10/100/1000 PCI-X ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C999-T Quad Port 10/100/1000 PCI-X) + + pci:v000014E4d00001648sv00001166sd00001648* +- ID_MODEL_FROM_DATABASE=NetXtreme CIOB-E 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NetXtreme CIOB-E 1000Base-T) + + pci:v000014E4d00001648sv00001734sd0000100B* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard LAN ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PRIMERGY RX/TX series onboard LAN) + + pci:v000014E4d00001649* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S_2 Gigabit Ethernet +@@ -44250,46 +44250,46 @@ pci:v000014E4d0000164A* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet + + pci:v000014E4d0000164Asv0000103Csd00001709* +- ID_MODEL_FROM_DATABASE=NC371i Integrated PCI-X Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC371i Integrated PCI-X Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Asv0000103Csd00003070* +- ID_MODEL_FROM_DATABASE=NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Asv0000103Csd00003101* +- ID_MODEL_FROM_DATABASE=NC370T MultifuNCtion Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370T MultifuNCtion Gigabit Server Adapter) + + pci:v000014E4d0000164Asv0000103Csd00003106* +- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164C* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet + + pci:v000014E4d0000164Csv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R900 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge 2970 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge T605 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00000223* +- ID_MODEL_FROM_DATABASE=PowerEdge R905 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R905 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00001F12* +- ID_MODEL_FROM_DATABASE=PowerEdge R805/R905 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805/R905 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv0000103Csd00007037* +- ID_MODEL_FROM_DATABASE=NC373T PCI Express Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373T PCI Express Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Csv0000103Csd00007038* +- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Csv0000103Csd00007045* +- ID_MODEL_FROM_DATABASE=NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702FE Gigabit Ethernet +@@ -44298,10 +44298,10 @@ pci:v000014E4d0000164E* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] + + pci:v000014E4d0000164Esv0000103Csd0000171C* +- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532m Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d0000164Esv0000103Csd00007058* +- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532i Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d0000164F* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711 10-Gigabit PCIe +@@ -44310,31 +44310,31 @@ pci:v000014E4d00001650* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe + + pci:v000014E4d00001650sv0000103Csd0000171C* +- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532m Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d00001650sv0000103Csd00007058* +- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532i Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d00001653* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet + + pci:v000014E4d00001653sv00000E11sd000000E3* +- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (NC7761 Gigabit Server Adapter) + + pci:v000014E4d00001653sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (Primergy Econel 200 D2020 mainboard) + + pci:v000014E4d00001654* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet + + pci:v000014E4d00001654sv00000E11sd000000E3* +- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC7761 Gigabit Server Adapter) + + pci:v000014E4d00001654sv0000103Csd00003100* +- ID_MODEL_FROM_DATABASE=NC1020 ProLiant Gigabit Server Adapter 32 PCI ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC1020 ProLiant Gigabit Server Adapter 32 PCI) + + pci:v000014E4d00001654sv0000103Csd00003226* +- ID_MODEL_FROM_DATABASE=NC150T 4-port Gigabit Combo Switch & Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC150T 4-port Gigabit Combo Switch & Adapter) + + pci:v000014E4d00001655* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5717 Gigabit Ethernet PCIe +@@ -44349,52 +44349,52 @@ pci:v000014E4d00001659* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express + + pci:v000014E4d00001659sv00001014sd000002C6* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (eServer xSeries server mainboard) + + pci:v000014E4d00001659sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge 860) + + pci:v000014E4d00001659sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 Broadcom NetXtreme BCM5721 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge R200 Broadcom NetXtreme BCM5721) + + pci:v000014E4d00001659sv0000103Csd0000170B* +- ID_MODEL_FROM_DATABASE=NC320m PCI Express Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320m PCI Express Dual Port Gigabit Server Adapter) + + pci:v000014E4d00001659sv0000103Csd00007031* +- ID_MODEL_FROM_DATABASE=NC320T PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320T PCIe Gigabit Server Adapter) + + pci:v000014E4d00001659sv0000103Csd00007032* +- ID_MODEL_FROM_DATABASE=NC320i PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320i PCIe Gigabit Server Adapter) + + pci:v000014E4d00001659sv00001734sd00001061* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard LAN ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PRIMERGY RX/TX S2 series onboard LAN) + + pci:v000014E4d0000165A* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express + + pci:v000014E4d0000165Asv00001014sd00000378* +- ID_MODEL_FROM_DATABASE=IBM System x3350 (Machine type 4192) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (IBM System x3350 (Machine type 4192)) + + pci:v000014E4d0000165Asv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 Broadcom NetXtreme 5722 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge R300 Broadcom NetXtreme 5722) + + pci:v000014E4d0000165Asv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 Broadcom NetXtreme 5722 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T300 Broadcom NetXtreme 5722) + + pci:v000014E4d0000165Asv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Broadcom NetXtreme 5722 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T105 Broadcom NetXtreme 5722) + + pci:v000014E4d0000165Asv0000103Csd00007051* +- ID_MODEL_FROM_DATABASE=NC105i PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105i PCIe Gigabit Server Adapter) + + pci:v000014E4d0000165Asv0000103Csd00007052* +- ID_MODEL_FROM_DATABASE=NC105T PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105T PCIe Gigabit Server Adapter) + + pci:v000014E4d0000165B* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe + + pci:v000014E4d0000165Bsv0000103Csd0000705D* +- ID_MODEL_FROM_DATABASE=NC107i Integrated PCI Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe (NC107i Integrated PCI Express Gigabit Server Adapter) + + pci:v000014E4d0000165C* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5724 Gigabit Ethernet PCIe +@@ -44403,25 +44403,25 @@ pci:v000014E4d0000165D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet + + pci:v000014E4d0000165Dsv00001028sd0000865D* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Latitude D400) + + pci:v000014E4d0000165Dsv000014E4sd0000165D* +- ID_MODEL_FROM_DATABASE=Dell Latitude D600 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Dell Latitude D600) + + pci:v000014E4d0000165E* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet + + pci:v000014E4d0000165Esv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC8000 laptop) + + pci:v000014E4d0000165Esv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC6000 laptop) + + pci:v000014E4d0000165Esv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NX6110/NC6120) + + pci:v000014E4d0000165Esv000010CFsd00001279* +- ID_MODEL_FROM_DATABASE=LifeBook E8010D ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (LifeBook E8010D) + + pci:v000014E4d0000165F* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5720 Gigabit Ethernet PCIe +@@ -44439,7 +44439,7 @@ pci:v000014E4d00001668* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet + + pci:v000014E4d00001668sv0000103Csd00007039* +- ID_MODEL_FROM_DATABASE=NC324i PCIe Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet (NC324i PCIe Dual Port Gigabit Server Adapter) + + pci:v000014E4d00001669* + ID_MODEL_FROM_DATABASE=NetXtreme 5714S Gigabit Ethernet +@@ -44448,7 +44448,7 @@ pci:v000014E4d0000166A* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet + + pci:v000014E4d0000166Asv0000103Csd00007035* +- ID_MODEL_FROM_DATABASE=NC325i Integrated Dual port PCIe Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet (NC325i Integrated Dual port PCIe Express Gigabit Server Adapter) + + pci:v000014E4d0000166B* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5780S Gigabit Ethernet +@@ -44472,91 +44472,91 @@ pci:v000014E4d00001677* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express + + pci:v000014E4d00001677sv00001028sd00000176* +- ID_MODEL_FROM_DATABASE=Dimension XPS Gen 4 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension XPS Gen 4) + + pci:v000014E4d00001677sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension 8400) + + pci:v000014E4d00001677sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Optiplex GX280) + + pci:v000014E4d00001677sv00001028sd00000182* +- ID_MODEL_FROM_DATABASE=Latitude D610 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Latitude D610) + + pci:v000014E4d00001677sv00001028sd00000187* +- ID_MODEL_FROM_DATABASE=Precision M70 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision M70) + + pci:v000014E4d00001677sv00001028sd000001A8* +- ID_MODEL_FROM_DATABASE=Precision 380 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision 380) + + pci:v000014E4d00001677sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (OptiPlex GX620) + + pci:v000014E4d00001677sv0000103Csd00003006* +- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (DC7100 SFF(DX878AV)) + + pci:v000014E4d00001677sv00001462sd0000028C* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (915P/G Neo2) + + pci:v000014E4d00001677sv00001734sd0000105D* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Scenic W620) + + pci:v000014E4d00001678* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet + + pci:v000014E4d00001678sv0000103Csd0000703E* +- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) + + pci:v000014E4d00001679* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet + + pci:v000014E4d00001679sv0000103Csd00001707* +- ID_MODEL_FROM_DATABASE=NC326m PCIe Dual Port Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326m PCIe Dual Port Adapter) + + pci:v000014E4d00001679sv0000103Csd0000170C* +- ID_MODEL_FROM_DATABASE=NC325m PCIe Quad Port Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC325m PCIe Quad Port Adapter) + + pci:v000014E4d00001679sv0000103Csd0000703C* +- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) + + pci:v000014E4d0000167A* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express + + pci:v000014E4d0000167Asv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (OptiPlex 745) + + pci:v000014E4d0000167Asv00001028sd000001DE* +- ID_MODEL_FROM_DATABASE=Precision 390 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision 390) + + pci:v000014E4d0000167Asv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (PowerEdge SC440) + + pci:v000014E4d0000167Asv00001028sd00000214* +- ID_MODEL_FROM_DATABASE=Precision T3400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T3400) + + pci:v000014E4d0000167Asv00001028sd0000021E* +- ID_MODEL_FROM_DATABASE=Precision T5400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T5400) + + pci:v000014E4d0000167B* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express + + pci:v000014E4d0000167Bsv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express (DC5750 Microtower) + + pci:v000014E4d0000167D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express + + pci:v000014E4d0000167Dsv00001014sd00000577* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad Z60t) + + pci:v000014E4d0000167Dsv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP nx8220 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP nx8220) + + pci:v000014E4d0000167Dsv0000103Csd00000940* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP Compaq nw8240 Mobile Workstation) + + pci:v000014E4d0000167Dsv000017AAsd00002081* +- ID_MODEL_FROM_DATABASE=ThinkPad R60e ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad R60e) + + pci:v000014E4d0000167E* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5751F Fast Ethernet PCI Express +@@ -44592,22 +44592,22 @@ pci:v000014E4d00001688* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet + + pci:v000014E4d00001688sv00001259sd00002708* +- ID_MODEL_FROM_DATABASE=AT-2712 FX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet (AT-2712 FX) + + pci:v000014E4d0000168A* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet + + pci:v000014E4d0000168Asv00001028sd00001F5C* +- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) + + pci:v000014E4d0000168Asv00001028sd00001F5D* +- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) + + pci:v000014E4d0000168Asv00001028sd00001F67* +- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) + + pci:v000014E4d0000168Asv00001028sd00001F68* +- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) + + pci:v000014E4d0000168D* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet +@@ -44616,34 +44616,34 @@ pci:v000014E4d0000168E* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet + + pci:v000014E4d0000168Esv0000103Csd00001798* +- ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (Flex-10 10Gb 2-port 530FLB Adapter [Meru]) + + pci:v000014E4d0000168Esv0000103Csd000017A5* +- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Flex-10 10Gb 2-port 530M Adapter) + + pci:v000014E4d0000168Esv0000103Csd000018D3* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530T Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001930* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001931* +- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP StoreFabric CN1100R Dual Port Converged Network Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001932* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLB Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001933* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534M Adapter) + + pci:v000014E4d0000168Esv0000103Csd0000193A* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) + + pci:v000014E4d0000168Esv0000103Csd00003382* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) + + pci:v000014E4d0000168Esv0000103Csd0000339D* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530SFP+ Adapter) + + pci:v000014E4d00001690* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe +@@ -44652,22 +44652,22 @@ pci:v000014E4d00001691* + ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe + + pci:v000014E4d00001691sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe (XPS 8300) + + pci:v000014E4d00001692* + ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe + + pci:v000014E4d00001692sv00001025sd0000033D* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe (Aspire 7740G) + + pci:v000014E4d00001693* + ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express + + pci:v000014E4d00001693sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (Aspire 5920G) + + pci:v000014E4d00001693sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=6710b ++ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (6710b) + + pci:v000014E4d00001694* + ID_MODEL_FROM_DATABASE=NetLink BCM57790 Gigabit Ethernet PCIe +@@ -44676,10 +44676,10 @@ pci:v000014E4d00001696* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet + + pci:v000014E4d00001696sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (d530 CMT (DG746A)) + + pci:v000014E4d00001696sv000014E4sd0000000D* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (NetXtreme BCM5782 1000Base-T) + + pci:v000014E4d00001698* + ID_MODEL_FROM_DATABASE=NetLink BCM5784M Gigabit Ethernet PCIe +@@ -44697,16 +44697,16 @@ pci:v000014E4d0000169C* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet + + pci:v000014E4d0000169Csv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (MX6125) + + pci:v000014E4d0000169Csv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (NC2400) + + pci:v000014E4d0000169Csv0000144Dsd0000C018* +- ID_MODEL_FROM_DATABASE=X20 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (X20) + + pci:v000014E4d0000169Csv00001462sd0000590C* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (KT6 Delta-FIS2R (MS-6590)) + + pci:v000014E4d0000169D* + ID_MODEL_FROM_DATABASE=NetLink BCM5789 Gigabit Ethernet PCI Express +@@ -44721,112 +44721,112 @@ pci:v000014E4d000016A2* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet + + pci:v000014E4d000016A2sv0000103Csd00001916* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630FLB Adapter) + + pci:v000014E4d000016A2sv0000103Csd00001917* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) + + pci:v000014E4d000016A4* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function + + pci:v000014E4d000016A4sv0000103Csd00001916* +- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630FLB Adapter) + + pci:v000014E4d000016A4sv0000103Csd00001917* +- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630M Adapter) + + pci:v000014E4d000016A5* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function + + pci:v000014E4d000016A5sv00001028sd00001F5C* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A5sv00001028sd00001F5D* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A5sv00001028sd00001F67* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A5sv00001028sd00001F68* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A6* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet + + pci:v000014E4d000016A6sv00000E11sd000000BB* +- ID_MODEL_FROM_DATABASE=NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) + + pci:v000014E4d000016A6sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016A6sv000014E4sd0000000C* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016A6sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016A7* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet + + pci:v000014E4d000016A7sv00000E11sd000000CA* +- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016A7sv00000E11sd000000CB* +- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016A7sv00001014sd0000026F* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (eServer xSeries server mainboard) + + pci:v000014E4d000016A7sv000014E4sd00000009* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016A7sv000014E4sd0000000A* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) + + pci:v000014E4d000016A7sv000014E4sd0000000B* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016A7sv000014E4sd0000800A* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016A8* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet + + pci:v000014E4d000016A8sv0000103Csd0000132B* +- ID_MODEL_FROM_DATABASE=PCI-X 1000Mbps Dual-port Built-in ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (PCI-X 1000Mbps Dual-port Built-in) + + pci:v000014E4d000016A8sv000010A9sd00008014* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Fiber) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Fiber)) + + pci:v000014E4d000016A8sv000010A9sd0000801C* +- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Fiber) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Fiber)) + + pci:v000014E4d000016A8sv000010B7sd00002001* +- ID_MODEL_FROM_DATABASE=3C998-SX Dual Port 1000-SX PCI-X ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (3C998-SX Dual Port 1000-SX PCI-X) + + pci:v000014E4d000016A9* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function + + pci:v000014E4d000016A9sv00001028sd00001F5C* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016A9sv00001028sd00001F5D* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016A9sv00001028sd00001F67* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016A9sv00001028sd00001F68* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016AA* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet + + pci:v000014E4d000016AAsv0000103Csd00003102* +- ID_MODEL_FROM_DATABASE=NC370F MultifuNCtion Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370F MultifuNCtion Gigabit Server Adapter) + + pci:v000014E4d000016AAsv0000103Csd0000310C* +- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016AB* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Multi Function +@@ -44838,97 +44838,97 @@ pci:v000014E4d000016ACsv00001014sd00000304* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet + + pci:v000014E4d000016ACsv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Broadcom NetXtreme II BCM5708S ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge 1955 Broadcom NetXtreme II BCM5708S) + + pci:v000014E4d000016ACsv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 Broadcom NetXtreme II BCM5708S ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge M605 Broadcom NetXtreme II BCM5708S) + + pci:v000014E4d000016ACsv0000103Csd00001706* +- ID_MODEL_FROM_DATABASE=NC373m Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373m Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016ACsv0000103Csd00007038* +- ID_MODEL_FROM_DATABASE=NC373i PCI Express Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i PCI Express Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016ACsv0000103Csd0000703B* +- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016ACsv0000103Csd0000703D* +- ID_MODEL_FROM_DATABASE=NC373F PCI Express Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373F PCI Express Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016AD* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function + + pci:v000014E4d000016ADsv0000103Csd00001916* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630FLB Adapter) + + pci:v000014E4d000016ADsv0000103Csd00001917* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630M Adapter) + + pci:v000014E4d000016AE* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function + + pci:v000014E4d000016AEsv0000103Csd00001798* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLB Adapter) + + pci:v000014E4d000016AEsv0000103Csd000017A5* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530M Adapter) + + pci:v000014E4d000016AEsv0000103Csd000018D3* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530T Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001930* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001931* +- ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR CN1100R Dual Port Converged Network Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001932* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLB Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001933* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534M Adapter) + + pci:v000014E4d000016AEsv0000103Csd0000193A* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 533FLR-T Adapter) + + pci:v000014E4d000016AEsv0000103Csd00003382* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter) + + pci:v000014E4d000016AEsv0000103Csd0000339D* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530SFP+ Adapter) + + pci:v000014E4d000016AF* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function + + pci:v000014E4d000016AFsv0000103Csd00001798* +- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530FLB Adapter) + + pci:v000014E4d000016AFsv0000103Csd000017A5* +- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530M Adapter) + + pci:v000014E4d000016AFsv0000103Csd000018D3* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530T Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001930* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001931* +- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP StoreFabric CN1100R Dual Port Converged Network Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001932* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLB Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001933* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534M Adapter) + + pci:v000014E4d000016AFsv0000103Csd0000193A* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) + + pci:v000014E4d000016AFsv0000103Csd00003382* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) + + pci:v000014E4d000016AFsv0000103Csd0000339D* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530SFP+ Adapter) + + pci:v000014E4d000016B0* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe +@@ -44937,7 +44937,7 @@ pci:v000014E4d000016B1* + ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe + + pci:v000014E4d000016B1sv00001849sd000096B1* +- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard ++ ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe (Z77 Extreme4 motherboard) + + pci:v000014E4d000016B2* + ID_MODEL_FROM_DATABASE=NetLink BCM57791 Gigabit Ethernet PCIe +@@ -44970,37 +44970,37 @@ pci:v000014E4d000016C6* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet + + pci:v000014E4d000016C6sv000010B7sd00001100* +- ID_MODEL_FROM_DATABASE=3C1000B-T 10/100/1000 PCI ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (3C1000B-T 10/100/1000 PCI) + + pci:v000014E4d000016C6sv000014E4sd0000000C* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016C6sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016C7* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet + + pci:v000014E4d000016C7sv00000E11sd000000CA* +- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016C7sv00000E11sd000000CB* +- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016C7sv0000103Csd000012C3* +- ID_MODEL_FROM_DATABASE=Combo FC/GigE-SX [A9782A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-SX [A9782A]) + + pci:v000014E4d000016C7sv0000103Csd000012CA* +- ID_MODEL_FROM_DATABASE=Combo FC/GigE-T [A9784A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-T [A9784A]) + + pci:v000014E4d000016C7sv0000103Csd00001321* +- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Core I/O LAN/SCSI Combo [AB314A]) + + pci:v000014E4d000016C7sv000014E4sd00000009* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016C7sv000014E4sd0000000A* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) + + pci:v000014E4d000016DD* + ID_MODEL_FROM_DATABASE=NetLink BCM5781 Gigabit Ethernet PCI Express +@@ -45015,10 +45015,10 @@ pci:v000014E4d000016FD* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express + + pci:v000014E4d000016FDsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nx9420 Notebook) + + pci:v000014E4d000016FDsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nw8440) + + pci:v000014E4d000016FE* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5753F Fast Ethernet PCI Express +@@ -45027,40 +45027,40 @@ pci:v000014E4d0000170C* + ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX + + pci:v000014E4d0000170Csv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6000 laptop) + + pci:v000014E4d0000170Csv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 700m/710m) + + pci:v000014E4d0000170Csv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 5160) + + pci:v000014E4d0000170Csv00001028sd000001AF* +- ID_MODEL_FROM_DATABASE=Inspiron 6400 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6400) + + pci:v000014E4d0000170Csv00001028sd000001CD* +- ID_MODEL_FROM_DATABASE=Inspiron 9400 Laptop ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 9400 Laptop) + + pci:v000014E4d0000170Csv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (XPS M1210) + + pci:v000014E4d0000170Csv00001028sd000001D8* +- ID_MODEL_FROM_DATABASE=Inspiron E1405 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron E1405) + + pci:v000014E4d0000170Csv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX6110/NC6120) + + pci:v000014E4d0000170Csv0000103Csd000030A2* +- ID_MODEL_FROM_DATABASE=NX7300 laptop ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX7300 laptop) + + pci:v000014E4d0000170Csv000014E4sd0000170C* +- ID_MODEL_FROM_DATABASE=HP Compaq 6720t Mobile Thin Client ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (HP Compaq 6720t Mobile Thin Client) + + pci:v000014E4d0000170D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX + + pci:v000014E4d0000170Dsv00001014sd00000545* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX (ThinkPad R40e) + + pci:v000014E4d0000170E* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX +@@ -45072,16 +45072,16 @@ pci:v000014E4d00001713* + ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express + + pci:v000014E4d00001713sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Inspiron 1420) + + pci:v000014E4d00001713sv00001028sd00000209* +- ID_MODEL_FROM_DATABASE=XPS M1330 ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (XPS M1330) + + pci:v000014E4d00001713sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Compaq 6710b) + + pci:v000014E4d00001713sv000017AAsd00003A23* +- ID_MODEL_FROM_DATABASE=IdeaPad S10e ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (IdeaPad S10e) + + pci:v000014E4d00003352* + ID_MODEL_FROM_DATABASE=BCM3352 +@@ -45108,16 +45108,16 @@ pci:v000014E4d00004301* + ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller + + pci:v000014E4d00004301sv00001028sd00000407* +- ID_MODEL_FROM_DATABASE=TrueMobile 1180 Onboard WLAN ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (TrueMobile 1180 Onboard WLAN) + + pci:v000014E4d00004301sv00001043sd00000120* +- ID_MODEL_FROM_DATABASE=WL-103b Wireless LAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WL-103b Wireless LAN PC Card) + + pci:v000014E4d00004301sv000016A5sd00001602* +- ID_MODEL_FROM_DATABASE=B-300 802.11b Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (B-300 802.11b Wireless CardBus Adapter) + + pci:v000014E4d00004301sv00001737sd00004301* +- ID_MODEL_FROM_DATABASE=WMP11 v2.7 802.11b Wireless-B PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WMP11 v2.7 802.11b Wireless-B PCI Adapter) + + pci:v000014E4d00004305* + ID_MODEL_FROM_DATABASE=BCM4307 V.90 56k Modem +@@ -45135,85 +45135,85 @@ pci:v000014E4d00004311* + ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN + + pci:v000014E4d00004311sv00001028sd00000007* +- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN Mini-Card) + + pci:v000014E4d00004311sv00001028sd00000008* +- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN ExpressCard ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN ExpressCard) + + pci:v000014E4d00004311sv0000103Csd00001363* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001364* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001365* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001374* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001375* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001376* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001377* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd0000137F* +- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001380* +- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) + + pci:v000014E4d00004311sv000014E4sd00004311* +- ID_MODEL_FROM_DATABASE=BCM94311MCG ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM94311MCG) + + pci:v000014E4d00004312* + ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g + + pci:v000014E4d00004312sv00001028sd00000007* +- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN Mini-Card) + + pci:v000014E4d00004312sv00001028sd00000008* +- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN ExpressCard ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN ExpressCard) + + pci:v000014E4d00004312sv0000103Csd0000135A* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd0000135F* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001360* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001361* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001362* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001370* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001371* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001372* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001373* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Presario V3242AU) + + pci:v000014E4d00004312sv0000106Bsd00000089* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (AirPort Extreme) + + pci:v000014E4d00004312sv00001371sd0000103C* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11 Multiband-netwerkadapter(6715s) ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11 Multiband-netwerkadapter(6715s)) + + pci:v000014E4d00004313* + ID_MODEL_FROM_DATABASE=BCM4311 802.11a +@@ -45222,175 +45222,175 @@ pci:v000014E4d00004315* + ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY + + pci:v000014E4d00004315sv00001028sd0000000B* +- ID_MODEL_FROM_DATABASE=Wireless 1395 WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1395 WLAN Mini-Card) + + pci:v000014E4d00004315sv00001028sd0000000C* +- ID_MODEL_FROM_DATABASE=Wireless 1397 WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1397 WLAN Mini-Card) + + pci:v000014E4d00004315sv0000103Csd0000137C* +- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004315sv0000103Csd0000137D* +- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004315sv0000103Csd00001507* +- ID_MODEL_FROM_DATABASE=U98Z049.00 Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (U98Z049.00 Wireless Mini PCIe Card) + + pci:v000014E4d00004315sv0000105Bsd0000E003* +- ID_MODEL_FROM_DATABASE=T77H030.00 Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H030.00 Wireless Mini PCIe Card) + + pci:v000014E4d00004315sv0000105Bsd0000E01B* +- ID_MODEL_FROM_DATABASE=T77H106.00 Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H106.00 Wireless Half-size Mini PCIe Card) + + pci:v000014E4d00004318* + ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller + + pci:v000014E4d00004318sv00001028sd00000005* +- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN Mini-PCI Card) + + pci:v000014E4d00004318sv00001028sd00000006* +- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN PC Card) + + pci:v000014E4d00004318sv0000103Csd00001355* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004318sv0000103Csd00001356* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004318sv0000103Csd00001357* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004318sv00001043sd0000100F* +- ID_MODEL_FROM_DATABASE=WL-138G v2 / WL-138gE / WL-100gE ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WL-138G v2 / WL-138gE / WL-100gE) + + pci:v000014E4d00004318sv00001043sd0000120F* +- ID_MODEL_FROM_DATABASE=A6U notebook embedded card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (A6U notebook embedded card) + + pci:v000014E4d00004318sv00001154sd00000355* +- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter) + + pci:v000014E4d00004318sv00001468sd00000311* +- ID_MODEL_FROM_DATABASE=Aspire 3022WLMi, 5024WLMi, 5020 ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Aspire 3022WLMi, 5024WLMi, 5020) + + pci:v000014E4d00004318sv00001468sd00000312* +- ID_MODEL_FROM_DATABASE=TravelMate 2410 ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (TravelMate 2410) + + pci:v000014E4d00004318sv000014E4sd00000449* +- ID_MODEL_FROM_DATABASE=Gateway 7510GX ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Gateway 7510GX) + + pci:v000014E4d00004318sv000016ECsd00000119* +- ID_MODEL_FROM_DATABASE=U.S.Robotics Wireless MAXg PC Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (U.S.Robotics Wireless MAXg PC Card) + + pci:v000014E4d00004318sv00001737sd00000042* +- ID_MODEL_FROM_DATABASE=WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster) + + pci:v000014E4d00004318sv00001737sd00000048* +- ID_MODEL_FROM_DATABASE=WPC54G v3 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54G v3 802.11g Wireless-G Notebook Adapter) + + pci:v000014E4d00004318sv00001737sd00000049* +- ID_MODEL_FROM_DATABASE=WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster) + + pci:v000014E4d00004318sv00001799sd00007000* +- ID_MODEL_FROM_DATABASE=F5D7000 v4000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7000 v4000 Wireless G Desktop Card) + + pci:v000014E4d00004318sv00001799sd00007001* +- ID_MODEL_FROM_DATABASE=F5D7001 v2000 Wireless G Plus Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7001 v2000 Wireless G Plus Desktop Card) + + pci:v000014E4d00004318sv00001799sd00007010* +- ID_MODEL_FROM_DATABASE=F5D7010 v4000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7010 v4000 Wireless G Notebook Card) + + pci:v000014E4d00004318sv00001799sd00007011* +- ID_MODEL_FROM_DATABASE=F5D7011 v2000 High-Speed Mode Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7011 v2000 High-Speed Mode Wireless G Notebook Card) + + pci:v000014E4d00004319* + ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver + + pci:v000014E4d00004319sv00001028sd00000005* +- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN Mini-PCI Card) + + pci:v000014E4d00004319sv00001028sd00000006* +- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN PC Card) + + pci:v000014E4d00004319sv0000103Csd00001358* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004319sv0000103Csd00001359* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004319sv0000103Csd0000135A* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004320* + ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller + + pci:v000014E4d00004320sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN Mini-PCI Card) + + pci:v000014E4d00004320sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN PC Card) + + pci:v000014E4d00004320sv00001028sd00000003* +- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN Mini-PCI Card) + + pci:v000014E4d00004320sv00001028sd00000004* +- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN PC Card) + + pci:v000014E4d00004320sv0000103Csd000012F4* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv0000103Csd000012F8* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv0000103Csd000012FA* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv0000103Csd000012FB* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv00001043sd0000100F* +- ID_MODEL_FROM_DATABASE=WL-100G ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WL-100G) + + pci:v000014E4d00004320sv00001057sd00007025* +- ID_MODEL_FROM_DATABASE=WN825G ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WN825G) + + pci:v000014E4d00004320sv0000106Bsd0000004E* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (AirPort Extreme) + + pci:v000014E4d00004320sv00001154sd00000330* +- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter) + + pci:v000014E4d00004320sv0000144Fsd00007050* +- ID_MODEL_FROM_DATABASE=eMachines M6805 802.11g Built-in Wireless ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (eMachines M6805 802.11g Built-in Wireless) + + pci:v000014E4d00004320sv0000144Fsd00007051* +- ID_MODEL_FROM_DATABASE=Sonnet Aria Extreme PCI ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Sonnet Aria Extreme PCI) + + pci:v000014E4d00004320sv00001737sd00000013* +- ID_MODEL_FROM_DATABASE=WMP54G v1 802.11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v1 802.11g PCI Adapter) + + pci:v000014E4d00004320sv00001737sd00000014* +- ID_MODEL_FROM_DATABASE=WMP54G v2 802.11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v2 802.11g PCI Adapter) + + pci:v000014E4d00004320sv00001737sd00000015* +- ID_MODEL_FROM_DATABASE=WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster) + + pci:v000014E4d00004320sv00001737sd00004320* +- ID_MODEL_FROM_DATABASE=WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter) + + pci:v000014E4d00004320sv00001799sd00007000* +- ID_MODEL_FROM_DATABASE=F5D7000 v1000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7000 v1000 Wireless G Desktop Card) + + pci:v000014E4d00004320sv00001799sd00007001* +- ID_MODEL_FROM_DATABASE=F5D7001 v1000 Wireless G Plus Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7001 v1000 Wireless G Plus Desktop Card) + + pci:v000014E4d00004320sv00001799sd00007010* +- ID_MODEL_FROM_DATABASE=F5D7010 v1000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7010 v1000 Wireless G Notebook Card) + + pci:v000014E4d00004320sv00001799sd00007011* +- ID_MODEL_FROM_DATABASE=F5D7011 v1000 High-Speed Mode Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7011 v1000 High-Speed Mode Wireless G Notebook Card) + + pci:v000014E4d00004320sv0000185Fsd00001220* +- ID_MODEL_FROM_DATABASE=TravelMate 290E WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TravelMate 290E WLAN Mini-PCI Card) + + pci:v000014E4d00004321* + ID_MODEL_FROM_DATABASE=BCM4321 802.11a Wireless Network Controller +@@ -45402,31 +45402,31 @@ pci:v000014E4d00004324* + ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller + + pci:v000014E4d00004324sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=Truemobile 1400 ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1400) + + pci:v000014E4d00004324sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=TrueMobile 1400 Dual Band WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (TrueMobile 1400 Dual Band WLAN PC Card) + + pci:v000014E4d00004324sv00001028sd00000003* +- ID_MODEL_FROM_DATABASE=Truemobile 1450 MiniPCI ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1450 MiniPCI) + + pci:v000014E4d00004324sv00001028sd00000004* +- ID_MODEL_FROM_DATABASE=Wireless 1450 Dual Band WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Wireless 1450 Dual Band WLAN PC Card) + + pci:v000014E4d00004324sv0000103Csd000012F9* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004324sv0000103Csd000012FC* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004325* + ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller + + pci:v000014E4d00004325sv00001414sd00000003* +- ID_MODEL_FROM_DATABASE=Wireless Notebook Adapter MN-720 ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless Notebook Adapter MN-720) + + pci:v000014E4d00004325sv00001414sd00000004* +- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter MN-730 ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless PCI Adapter MN-730) + + pci:v000014E4d00004326* + ID_MODEL_FROM_DATABASE=BCM4307 Chipcommon I/O Controller? +@@ -45435,58 +45435,58 @@ pci:v000014E4d00004328* + ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n + + pci:v000014E4d00004328sv00001028sd00000009* +- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-Card) + + pci:v000014E4d00004328sv00001028sd0000000A* +- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-card ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-card) + + pci:v000014E4d00004328sv0000103Csd00001366* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000103Csd00001367* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000103Csd00001368* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000103Csd00001369* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000106Bsd00000087* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd00000088* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd0000008B* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd0000008C* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd00000090* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv000014E4sd00004328* +- ID_MODEL_FROM_DATABASE=BCM4328 802.11a/b/g/n ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (BCM4328 802.11a/b/g/n) + + pci:v000014E4d00004328sv00001737sd00000066* +- ID_MODEL_FROM_DATABASE=WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter) + + pci:v000014E4d00004328sv00001737sd00000068* +- ID_MODEL_FROM_DATABASE=WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard) + + pci:v000014E4d00004329* + ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n + + pci:v000014E4d00004329sv00001385sd00007B00* +- ID_MODEL_FROM_DATABASE=WN511B RangeMax NEXT Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN511B RangeMax NEXT Wireless Notebook Adapter) + + pci:v000014E4d00004329sv00001385sd00007D00* +- ID_MODEL_FROM_DATABASE=WN311B RangeMax Next 270 Mbps Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN311B RangeMax Next 270 Mbps Wireless PCI Adapter) + + pci:v000014E4d00004329sv00001737sd00000058* +- ID_MODEL_FROM_DATABASE=WPC300N v1 Wireless-N Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WPC300N v1 Wireless-N Notebook Adapter) + + pci:v000014E4d0000432A* + ID_MODEL_FROM_DATABASE=BCM4321 802.11an Wireless Network Controller +@@ -45495,19 +45495,19 @@ pci:v000014E4d0000432B* + ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller + + pci:v000014E4d0000432Bsv00001028sd0000000D* +- ID_MODEL_FROM_DATABASE=Wireless 1510 Wireless-N WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (Wireless 1510 Wireless-N WLAN Mini-Card) + + pci:v000014E4d0000432Bsv0000106Bsd0000008D* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) + + pci:v000014E4d0000432Bsv0000106Bsd0000008E* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) + + pci:v000014E4d0000432C* + ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n + + pci:v000014E4d0000432Csv00001799sd0000D311* +- ID_MODEL_FROM_DATABASE=Dynex DX-NNBX 802.11n WLAN Cardbus Card ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n (Dynex DX-NNBX 802.11n WLAN Cardbus Card) + + pci:v000014E4d0000432D* + ID_MODEL_FROM_DATABASE=BCM4322 802.11an Wireless Network Controller +@@ -45516,25 +45516,25 @@ pci:v000014E4d00004331* + ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n + + pci:v000014E4d00004331sv0000106Bsd000000D6* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000E4* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000EF* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000F4* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000F5* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd0000010E* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd0000010F* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004333* + ID_MODEL_FROM_DATABASE=Serial (EDGE/GPRS modem part of Option GT Combo Edge) +@@ -45549,25 +45549,25 @@ pci:v000014E4d00004353* + ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n + + pci:v000014E4d00004353sv00001028sd0000000E* +- ID_MODEL_FROM_DATABASE=Wireless 1520 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (Wireless 1520 Half-size Mini PCIe Card) + + pci:v000014E4d00004353sv0000103Csd00001509* +- ID_MODEL_FROM_DATABASE=WMIB-275N Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (WMIB-275N Half-size Mini PCIe Card) + + pci:v000014E4d00004353sv0000106Bsd00000093* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004353sv0000106Bsd000000D1* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004353sv0000106Bsd000000E9* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004357* + ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n + + pci:v000014E4d00004357sv0000105Bsd0000E021* +- ID_MODEL_FROM_DATABASE=T77H103.00 Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n (T77H103.00 Wireless Half-size Mini PCIe Card) + + pci:v000014E4d00004358* + ID_MODEL_FROM_DATABASE=BCM43227 802.11b/g/n +@@ -45576,16 +45576,16 @@ pci:v000014E4d00004359* + ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n + + pci:v000014E4d00004359sv00001028sd00000011* +- ID_MODEL_FROM_DATABASE=Wireless 1530 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (Wireless 1530 Half-size Mini PCIe Card) + + pci:v000014E4d00004359sv0000103Csd0000182C* +- ID_MODEL_FROM_DATABASE=BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter ++ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) + + pci:v000014E4d00004365* + ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n + + pci:v000014E4d00004365sv00001028sd00000016* +- ID_MODEL_FROM_DATABASE=Wireless 1704 802.11n + BT 4.0 ++ ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n (Wireless 1704 802.11n + BT 4.0) + + pci:v000014E4d000043A0* + ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter +@@ -45597,13 +45597,13 @@ pci:v000014E4d00004401* + ID_MODEL_FROM_DATABASE=BCM4401 100Base-T + + pci:v000014E4d00004401sv00001025sd00000035* +- ID_MODEL_FROM_DATABASE=TravelMate 660 ++ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (TravelMate 660) + + pci:v000014E4d00004401sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (tc1100 tablet) + + pci:v000014E4d00004401sv00001043sd000080A8* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (A7V8X motherboard) + + pci:v000014E4d00004402* + ID_MODEL_FROM_DATABASE=BCM4402 Integrated 10/100BaseT +@@ -45696,7 +45696,7 @@ pci:v000014E4d00004727* + ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter + + pci:v000014E4d00004727sv00001028sd00000010* +- ID_MODEL_FROM_DATABASE=Inspiron M5010 / XPS 8300 ++ ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter (Inspiron M5010 / XPS 8300) + + pci:v000014E4d00005365* + ID_MODEL_FROM_DATABASE=BCM5365P Sentry5 Host Bridge +@@ -45867,55 +45867,55 @@ pci:v000014F1d00001033* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v000014F1d00001033sv00001033sd00008077* +- ID_MODEL_FROM_DATABASE=NEC ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (NEC) + + pci:v000014F1d00001033sv0000122Dsd00004027* +- ID_MODEL_FROM_DATABASE=Dell Zeus - MDP3880-W(B) Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Zeus - MDP3880-W(B) Data Fax Modem) + + pci:v000014F1d00001033sv0000122Dsd00004030* +- ID_MODEL_FROM_DATABASE=Dell Mercury - MDP3880-U(B) Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Mercury - MDP3880-U(B) Data Fax Modem) + + pci:v000014F1d00001033sv0000122Dsd00004034* +- ID_MODEL_FROM_DATABASE=Dell Thor - MDP3880-W(U) Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Thor - MDP3880-W(U) Data Fax Modem) + + pci:v000014F1d00001033sv000013E0sd0000020D* +- ID_MODEL_FROM_DATABASE=Dell Copper ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Copper) + + pci:v000014F1d00001033sv000013E0sd0000020E* +- ID_MODEL_FROM_DATABASE=Dell Silver ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Silver) + + pci:v000014F1d00001033sv000013E0sd00000261* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv000013E0sd00000290* +- ID_MODEL_FROM_DATABASE=Compaq Goldwing ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Goldwing) + + pci:v000014F1d00001033sv000013E0sd000002A0* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv000013E0sd000002B0* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv000013E0sd000002C0* +- ID_MODEL_FROM_DATABASE=Compaq Scooter ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Scooter) + + pci:v000014F1d00001033sv000013E0sd000002D0* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv0000144Fsd00001500* +- ID_MODEL_FROM_DATABASE=IBM P85-DF (1) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (1)) + + pci:v000014F1d00001033sv0000144Fsd00001501* +- ID_MODEL_FROM_DATABASE=IBM P85-DF (2) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (2)) + + pci:v000014F1d00001033sv0000144Fsd0000150A* +- ID_MODEL_FROM_DATABASE=IBM P85-DF (3) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (3)) + + pci:v000014F1d00001033sv0000144Fsd0000150B* +- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (1) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (1)) + + pci:v000014F1d00001033sv0000144Fsd00001510* +- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (2) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (2)) + + pci:v000014F1d00001034* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem +@@ -45924,31 +45924,31 @@ pci:v000014F1d00001035* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v000014F1d00001035sv000010CFsd00001098* +- ID_MODEL_FROM_DATABASE=Fujitsu P85-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu P85-DFSV) + + pci:v000014F1d00001036* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem + + pci:v000014F1d00001036sv0000104Dsd00008067* +- ID_MODEL_FROM_DATABASE=HCF 56k Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (HCF 56k Modem) + + pci:v000014F1d00001036sv0000122Dsd00004029* +- ID_MODEL_FROM_DATABASE=MDP3880SP-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-W) + + pci:v000014F1d00001036sv0000122Dsd00004031* +- ID_MODEL_FROM_DATABASE=MDP3880SP-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-U) + + pci:v000014F1d00001036sv000013E0sd00000209* +- ID_MODEL_FROM_DATABASE=Dell Titanium ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Titanium) + + pci:v000014F1d00001036sv000013E0sd0000020A* +- ID_MODEL_FROM_DATABASE=Dell Graphite ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Graphite) + + pci:v000014F1d00001036sv000013E0sd00000260* +- ID_MODEL_FROM_DATABASE=Gateway Red Owl ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway Red Owl) + + pci:v000014F1d00001036sv000013E0sd00000270* +- ID_MODEL_FROM_DATABASE=Gateway White Horse ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway White Horse) + + pci:v000014F1d00001052* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Worldwide) +@@ -45966,7 +45966,7 @@ pci:v000014F1d00001056* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) + + pci:v000014F1d00001056sv0000122Dsd00004035* +- ID_MODEL_FROM_DATABASE=MDP3900V-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) (MDP3900V-W) + + pci:v000014F1d00001057* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) +@@ -45987,7 +45987,7 @@ pci:v000014F1d00001066* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem + + pci:v000014F1d00001066sv0000122Dsd00004033* +- ID_MODEL_FROM_DATABASE=Dell Athena - MDP3900V-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Athena - MDP3900V-U) + + pci:v000014F1d00001085* + ID_MODEL_FROM_DATABASE=HCF V90 56k Data/Fax/Voice/Spkp PCI Modem +@@ -46011,16 +46011,16 @@ pci:v000014F1d00001453* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v000014F1d00001453sv000013E0sd00000240* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001453sv000013E0sd00000250* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001453sv0000144Fsd00001502* +- ID_MODEL_FROM_DATABASE=IBM P95-DF (1) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (1)) + + pci:v000014F1d00001453sv0000144Fsd00001503* +- ID_MODEL_FROM_DATABASE=IBM P95-DF (2) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (2)) + + pci:v000014F1d00001454* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem +@@ -46032,10 +46032,10 @@ pci:v000014F1d00001456* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem + + pci:v000014F1d00001456sv0000122Dsd00004035* +- ID_MODEL_FROM_DATABASE=Dell Europa - MDP3900V-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Europa - MDP3900V-W) + + pci:v000014F1d00001456sv0000122Dsd00004302* +- ID_MODEL_FROM_DATABASE=Dell MP3930V-W(C) MiniPCI ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell MP3930V-W(C) MiniPCI) + + pci:v000014F1d00001610* + ID_MODEL_FROM_DATABASE=ADSL AccessRunner PCI Arbitration Device +@@ -46056,10 +46056,10 @@ pci:v000014F1d00001803* + ID_MODEL_FROM_DATABASE=HCF 56k Modem + + pci:v000014F1d00001803sv00000E11sd00000023* +- ID_MODEL_FROM_DATABASE=623-LAN Grizzly ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Grizzly) + + pci:v000014F1d00001803sv00000E11sd00000043* +- ID_MODEL_FROM_DATABASE=623-LAN Yogi ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Yogi) + + pci:v000014F1d00001811* + ID_MODEL_FROM_DATABASE=MiniPCI Network Adapter +@@ -46068,10 +46068,10 @@ pci:v000014F1d00001815* + ID_MODEL_FROM_DATABASE=HCF 56k Modem + + pci:v000014F1d00001815sv00000E11sd00000022* +- ID_MODEL_FROM_DATABASE=Grizzly ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Grizzly) + + pci:v000014F1d00001815sv00000E11sd00000042* +- ID_MODEL_FROM_DATABASE=Yogi ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Yogi) + + pci:v000014F1d00002003* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem +@@ -46089,28 +46089,28 @@ pci:v000014F1d00002013* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem + + pci:v000014F1d00002013sv00000E11sd0000B195* +- ID_MODEL_FROM_DATABASE=Bear ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Bear) + + pci:v000014F1d00002013sv00000E11sd0000B196* +- ID_MODEL_FROM_DATABASE=Seminole 1 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 1) + + pci:v000014F1d00002013sv00000E11sd0000B1BE* +- ID_MODEL_FROM_DATABASE=Seminole 2 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 2) + + pci:v000014F1d00002013sv00001025sd00008013* +- ID_MODEL_FROM_DATABASE=Acer ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Acer) + + pci:v000014F1d00002013sv00001033sd0000809D* +- ID_MODEL_FROM_DATABASE=NEC ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) + + pci:v000014F1d00002013sv00001033sd000080BC* +- ID_MODEL_FROM_DATABASE=NEC ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) + + pci:v000014F1d00002013sv0000155Dsd00006793* +- ID_MODEL_FROM_DATABASE=HP ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (HP) + + pci:v000014F1d00002013sv0000155Dsd00008850* +- ID_MODEL_FROM_DATABASE=E Machines ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (E Machines) + + pci:v000014F1d00002014* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem +@@ -46131,7 +46131,7 @@ pci:v000014F1d00002045* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) + + pci:v000014F1d00002045sv000014F1sd00002045* +- ID_MODEL_FROM_DATABASE=Generic SoftK56 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) (Generic SoftK56) + + pci:v000014F1d00002046* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (WorldW SmartDAA) +@@ -46152,7 +46152,7 @@ pci:v000014F1d00002093* + ID_MODEL_FROM_DATABASE=HSF 56k Modem + + pci:v000014F1d00002093sv0000155Dsd00002F07* +- ID_MODEL_FROM_DATABASE=Legend ++ ID_MODEL_FROM_DATABASE=HSF 56k Modem (Legend) + + pci:v000014F1d00002143* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Cell Modem (Mob WorldW SmartDAA) +@@ -46206,13 +46206,13 @@ pci:v000014F1d00002443* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) + + pci:v000014F1d00002443sv0000104Dsd00008075* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) + + pci:v000014F1d00002443sv0000104Dsd00008083* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) + + pci:v000014F1d00002443sv0000104Dsd00008097* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) + + pci:v000014F1d00002444* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Mob WorldW SmartDAA) +@@ -46239,13 +46239,13 @@ pci:v000014F1d00002F00* + ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem + + pci:v000014F1d00002F00sv000013E0sd00008D84* +- ID_MODEL_FROM_DATABASE=IBM HSFi V.90 ++ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (IBM HSFi V.90) + + pci:v000014F1d00002F00sv000013E0sd00008D85* +- ID_MODEL_FROM_DATABASE=Compaq Stinger ++ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Compaq Stinger) + + pci:v000014F1d00002F00sv000014F1sd00002004* +- ID_MODEL_FROM_DATABASE=Dynalink 56PMi ++ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Dynalink 56PMi) + + pci:v000014F1d00002F02* + ID_MODEL_FROM_DATABASE=HSF 56k HSFi Data/Fax +@@ -46257,16 +46257,16 @@ pci:v000014F1d00002F20* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem + + pci:v000014F1d00002F20sv000014F1sd0000200C* +- ID_MODEL_FROM_DATABASE=Soft Data Fax Modem with SmartCP ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Soft Data Fax Modem with SmartCP) + + pci:v000014F1d00002F20sv000014F1sd0000200F* +- ID_MODEL_FROM_DATABASE=Dimension 3000 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Dimension 3000) + + pci:v000014F1d00002F30* + ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP + + pci:v000014F1d00002F30sv000014F1sd00002014* +- ID_MODEL_FROM_DATABASE=Devolo MikroLink 56K Modem PCI ++ ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP (Devolo MikroLink 56K Modem PCI) + + pci:v000014F1d00002F50* + ID_MODEL_FROM_DATABASE=Conexant SoftK56 Data/Fax Modem +@@ -46275,13 +46275,13 @@ pci:v000014F1d00005B7A* + ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder + + pci:v000014F1d00005B7Asv00000070sd00007444* +- ID_MODEL_FROM_DATABASE=WinTV HVR-1600 ++ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinTV HVR-1600) + + pci:v000014F1d00005B7Asv0000107Dsd00006F34* +- ID_MODEL_FROM_DATABASE=WinFast DVR3100 H ++ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinFast DVR3100 H) + + pci:v000014F1d00005B7Asv00005854sd00003343* +- ID_MODEL_FROM_DATABASE=GoTView PCI DVD3 Hybrid ++ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (GoTView PCI DVD3 Hybrid) + + pci:v000014F1d00008200* + ID_MODEL_FROM_DATABASE=CX25850 +@@ -46293,304 +46293,304 @@ pci:v000014F1d00008800* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder + + pci:v000014F1d00008800sv00000070sd00002801* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 28xxx (Roslyn) models) + + pci:v000014F1d00008800sv00000070sd00003400* +- ID_MODEL_FROM_DATABASE=WinTV 34604 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 34604) + + pci:v000014F1d00008800sv00000070sd00003401* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 34xxx models) + + pci:v000014F1d00008800sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-4000-HD) + + pci:v000014F1d00008800sv00000070sd00007801* +- ID_MODEL_FROM_DATABASE=WinTV HVR-1800 MCE ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-1800 MCE) + + pci:v000014F1d00008800sv00000070sd00009001* +- ID_MODEL_FROM_DATABASE=Nova-T DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-T DVB-T) + + pci:v000014F1d00008800sv00000070sd00009200* +- ID_MODEL_FROM_DATABASE=Nova-SE2 DVB-S ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-SE2 DVB-S) + + pci:v000014F1d00008800sv00000070sd00009202* +- ID_MODEL_FROM_DATABASE=Nova-S-Plus DVB-S ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-S-Plus DVB-S) + + pci:v000014F1d00008800sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008800sv00000070sd00009600* +- ID_MODEL_FROM_DATABASE=WinTV 88x Video ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 88x Video) + + pci:v000014F1d00008800sv00000070sd00009802* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid (Low Profile) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid (Low Profile)) + + pci:v000014F1d00008800sv00001002sd000000F8* +- ID_MODEL_FROM_DATABASE=ATI TV Wonder Pro ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) + + pci:v000014F1d00008800sv00001002sd0000A101* +- ID_MODEL_FROM_DATABASE=HDTV Wonder ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) + + pci:v000014F1d00008800sv00001043sd00004823* +- ID_MODEL_FROM_DATABASE=ASUS PVR-416 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ASUS PVR-416) + + pci:v000014F1d00008800sv0000107Dsd00006611* +- ID_MODEL_FROM_DATABASE=Winfast TV 2000XP Expert ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Winfast TV 2000XP Expert) + + pci:v000014F1d00008800sv0000107Dsd00006613* +- ID_MODEL_FROM_DATABASE=Leadtek Winfast 2000XP Expert ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast 2000XP Expert) + + pci:v000014F1d00008800sv0000107Dsd00006620* +- ID_MODEL_FROM_DATABASE=Leadtek Winfast DV2000 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast DV2000) + + pci:v000014F1d00008800sv0000107Dsd0000663C* +- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek PVR 2000) + + pci:v000014F1d00008800sv0000107Dsd0000665F* +- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinFast DTV1000-T) + + pci:v000014F1d00008800sv000010FCsd0000D003* +- ID_MODEL_FROM_DATABASE=IODATA GV-VCP3/PCI ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV-VCP3/PCI) + + pci:v000014F1d00008800sv000010FCsd0000D035* +- ID_MODEL_FROM_DATABASE=IODATA GV/BCTV7E ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV/BCTV7E) + + pci:v000014F1d00008800sv00001421sd00000334* +- ID_MODEL_FROM_DATABASE=Instant TV DVB-T PCI ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Instant TV DVB-T PCI) + + pci:v000014F1d00008800sv00001461sd0000000A* +- ID_MODEL_FROM_DATABASE=AVerTV 303 (M126) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AVerTV 303 (M126)) + + pci:v000014F1d00008800sv00001461sd0000000B* +- ID_MODEL_FROM_DATABASE=AverTV Studio 303 (M126) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AverTV Studio 303 (M126)) + + pci:v000014F1d00008800sv00001461sd00008011* +- ID_MODEL_FROM_DATABASE=UltraTV Media Center PCI 550 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (UltraTV Media Center PCI 550) + + pci:v000014F1d00008800sv00001462sd00008606* +- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (MSI TV-@nywhere Master) + + pci:v000014F1d00008800sv000014C7sd00000107* +- ID_MODEL_FROM_DATABASE=GDI Black Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GDI Black Gold) + + pci:v000014F1d00008800sv000014F1sd00000187* +- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Conexant DVB-T reference design) + + pci:v000014F1d00008800sv000014F1sd00000342* +- ID_MODEL_FROM_DATABASE=Digital-Logic MICROSPACE Entertainment Center (MEC) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Digital-Logic MICROSPACE Entertainment Center (MEC)) + + pci:v000014F1d00008800sv0000153Bsd00001166* +- ID_MODEL_FROM_DATABASE=Cinergy 1400 DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Cinergy 1400 DVB-T) + + pci:v000014F1d00008800sv00001540sd00002580* +- ID_MODEL_FROM_DATABASE=Provideo PV259 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Provideo PV259) + + pci:v000014F1d00008800sv00001554sd00004811* +- ID_MODEL_FROM_DATABASE=PixelView ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (PixelView) + + pci:v000014F1d00008800sv00001554sd00004813* +- ID_MODEL_FROM_DATABASE=Club 3D ZAP1000 MCE Edition ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Club 3D ZAP1000 MCE Edition) + + pci:v000014F1d00008800sv000017DEsd000008A1* +- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T with cx22702 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T with cx22702) + + pci:v000014F1d00008800sv000017DEsd000008A6* +- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T) + + pci:v000014F1d00008800sv000017DEsd000008B2* +- ID_MODEL_FROM_DATABASE=KWorld DVB-S 100 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld DVB-S 100) + + pci:v000014F1d00008800sv000017DEsd0000A8A6* +- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T) + + pci:v000014F1d00008800sv00001822sd00000025* +- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T Pro ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T Pro) + + pci:v000014F1d00008800sv0000185Bsd0000E000* +- ID_MODEL_FROM_DATABASE=VideoMate X500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (VideoMate X500) + + pci:v000014F1d00008800sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=FusionHDTV 5 Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 5 Gold) + + pci:v000014F1d00008800sv000018ACsd0000D810* +- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-Q ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-Q) + + pci:v000014F1d00008800sv000018ACsd0000D820* +- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-T) + + pci:v000014F1d00008800sv000018ACsd0000DB00* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T1 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T1) + + pci:v000014F1d00008800sv000018ACsd0000DB11* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Plus ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Plus) + + pci:v000014F1d00008800sv000018ACsd0000DB50* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Digital ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Digital) + + pci:v000014F1d00008800sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TV Tuner Card ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GoTView PCI Hybrid TV Tuner Card) + + pci:v000014F1d00008800sv00007063sd00003000* +- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD3000 HDTV) + + pci:v000014F1d00008800sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD-5500) + + pci:v000014F1d00008801* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] + + pci:v000014F1d00008801sv00000070sd00002801* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 28xxx (Roslyn) models) + + pci:v000014F1d00008801sv0000185Bsd0000E000* +- ID_MODEL_FROM_DATABASE=VideoMate X500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (VideoMate X500) + + pci:v000014F1d00008801sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio AVStream Device ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio AVStream Device) + + pci:v000014F1d00008801sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (pcHDTV HD-5500) + + pci:v000014F1d00008802* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] + + pci:v000014F1d00008802sv00000070sd00002801* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Hauppauge WinTV 28xxx (Roslyn) models) + + pci:v000014F1d00008802sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV HVR-4000-HD) + + pci:v000014F1d00008802sv00000070sd00009002* +- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Nova-T DVB-T Model 909) + + pci:v000014F1d00008802sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008802sv00000070sd00009600* +- ID_MODEL_FROM_DATABASE=WinTV 88x MPEG Encoder ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV 88x MPEG Encoder) + + pci:v000014F1d00008802sv00001043sd00004823* +- ID_MODEL_FROM_DATABASE=ASUS PVR-416 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (ASUS PVR-416) + + pci:v000014F1d00008802sv0000107Dsd0000663C* +- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Leadtek PVR 2000) + + pci:v000014F1d00008802sv0000107Dsd0000665F* +- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinFast DTV1000-T) + + pci:v000014F1d00008802sv000014F1sd00000187* +- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Conexant DVB-T reference design) + + pci:v000014F1d00008802sv000017DEsd000008A1* +- ID_MODEL_FROM_DATABASE=XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture) + + pci:v000014F1d00008802sv000017DEsd000008A6* +- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (KWorld/VStream XPert DVB-T) + + pci:v000014F1d00008802sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV5 Gold) + + pci:v000014F1d00008802sv000018ACsd0000D810* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-Q) + + pci:v000014F1d00008802sv000018ACsd0000D820* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-T) + + pci:v000014F1d00008802sv000018ACsd0000DB00* +- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T1) + + pci:v000014F1d00008802sv000018ACsd0000DB10* +- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T Plus ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T Plus) + + pci:v000014F1d00008802sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TS Capture Device ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (GoTView PCI Hybrid TS Capture Device) + + pci:v000014F1d00008802sv00007063sd00003000* +- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD3000 HDTV) + + pci:v000014F1d00008802sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD-5500) + + pci:v000014F1d00008804* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] + + pci:v000014F1d00008804sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV HVR-4000-HD) + + pci:v000014F1d00008804sv00000070sd00009002* +- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (Nova-T DVB-T Model 909) + + pci:v000014F1d00008804sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008804sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (pcHDTV HD-5500) + + pci:v000014F1d00008811* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] + + pci:v000014F1d00008811sv00000070sd00003400* +- ID_MODEL_FROM_DATABASE=WinTV 34604 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 34604) + + pci:v000014F1d00008811sv00000070sd00003401* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 34xxx models) + + pci:v000014F1d00008811sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV HVR-4000-HD) + + pci:v000014F1d00008811sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008811sv00000070sd00009600* +- ID_MODEL_FROM_DATABASE=WinTV 88x Audio ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 88x Audio) + + pci:v000014F1d00008811sv00001462sd00008606* +- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (MSI TV-@nywhere Master) + + pci:v000014F1d00008811sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV5 Gold) + + pci:v000014F1d00008811sv000018ACsd0000D810* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-Q) + + pci:v000014F1d00008811sv000018ACsd0000D820* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-T) + + pci:v000014F1d00008811sv000018ACsd0000DB00* +- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DVICO FusionHDTV DVB-T1) + + pci:v000014F1d00008811sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio Capture Device ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio Capture Device) + + pci:v000014F1d00008852* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder + + pci:v000014F1d00008852sv00000070sd00008010* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV HVR-1400 ExpressCard ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) + + pci:v000014F1d00008852sv0000107Dsd00006F22* +- ID_MODEL_FROM_DATABASE=WinFast PxTV1200 ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) + + pci:v000014F1d00008852sv00001461sd0000C039* +- ID_MODEL_FROM_DATABASE=AVerTV Hybrid Express (A577) ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (AVerTV Hybrid Express (A577)) + + pci:v000014F1d00008852sv0000153Bsd0000117E* +- ID_MODEL_FROM_DATABASE=Cinergy T PCIe Dual ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Cinergy T PCIe Dual) + + pci:v000014F1d00008852sv000018ACsd0000DB78* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Express ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) + + pci:v000014F1d00008880* + ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb + + pci:v000014F1d00008880sv00000070sd0000C108* +- ID_MODEL_FROM_DATABASE=WinTV-HVR-4400-HD model 1278 ++ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (WinTV-HVR-4400-HD model 1278) + + pci:v000014F1d00008880sv00005654sd00002389* +- ID_MODEL_FROM_DATABASE=GoTView X5 DVD Hybrid PCI-E ++ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 DVD Hybrid PCI-E) + + pci:v000014F1d00008880sv00005654sd00002390* +- ID_MODEL_FROM_DATABASE=GoTView X5 3D HYBRID PCI-E ++ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 3D HYBRID PCI-E) + + pci:v000014F2* + ID_VENDOR_FROM_DATABASE=MOBILITY Electronics +@@ -46842,100 +46842,100 @@ pci:v00001522d00000100* + ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge + + pci:v00001522d00000100sv00001522sd00000200* +- ID_MODEL_FROM_DATABASE=RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000300* +- ID_MODEL_FROM_DATABASE=RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000400* +- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000500* +- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000600* +- ID_MODEL_FROM_DATABASE=RockForce+ 2 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 2 Port V.90 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000700* +- ID_MODEL_FROM_DATABASE=RockForce+ 4 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 4 Port V.90 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000800* +- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000C00* +- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) + + pci:v00001522d00000100sv00001522sd00000D00* +- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) + + pci:v00001522d00000100sv00001522sd00001D00* +- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) + + pci:v00001522d00000100sv00001522sd00002000* +- ID_MODEL_FROM_DATABASE=RockForceD1 1 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD1 1 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002100* +- ID_MODEL_FROM_DATABASE=RockForceF1 1 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF1 1 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00002200* +- ID_MODEL_FROM_DATABASE=RockForceD2 2 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD2 2 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002300* +- ID_MODEL_FROM_DATABASE=RockForceF2 2 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF2 2 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00002400* +- ID_MODEL_FROM_DATABASE=RockForceD4 4 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD4 4 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002500* +- ID_MODEL_FROM_DATABASE=RockForceF4 4 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF4 4 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00002600* +- ID_MODEL_FROM_DATABASE=RockForceD8 8 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD8 8 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002700* +- ID_MODEL_FROM_DATABASE=RockForceF8 8 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF8 8 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003000* +- ID_MODEL_FROM_DATABASE=IQ Express D1 - 1 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D1 - 1 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003100* +- ID_MODEL_FROM_DATABASE=IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003200* +- ID_MODEL_FROM_DATABASE=IQ Express D2 - 2 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D2 - 2 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003300* +- ID_MODEL_FROM_DATABASE=IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003400* +- ID_MODEL_FROM_DATABASE=IQ Express D4 - 4 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D4 - 4 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003500* +- ID_MODEL_FROM_DATABASE=IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003C00* +- ID_MODEL_FROM_DATABASE=IQ Express D8 - 8 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D8 - 8 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003D00* +- ID_MODEL_FROM_DATABASE=IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00004000* + ID_MODEL_FROM_DATABASE=PCI Express UART + + pci:v00001522d00004000sv00001522sd00004001* +- ID_MODEL_FROM_DATABASE=IQ Express 1-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 1-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004002* +- ID_MODEL_FROM_DATABASE=IQ Express 2-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 2-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004004* +- ID_MODEL_FROM_DATABASE=IQ Express 4-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 4-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004008* +- ID_MODEL_FROM_DATABASE=IQ Express 8-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 8-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004100* +- ID_MODEL_FROM_DATABASE=IQ Express SideBand ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express SideBand) + + pci:v00001523* + ID_VENDOR_FROM_DATABASE=MUSIC Semiconductors +@@ -46947,7 +46947,7 @@ pci:v00001524d00000510* + ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller + + pci:v00001524d00000510sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller (NX9500) + + pci:v00001524d00000520* + ID_MODEL_FROM_DATABASE=FLASH memory: ENE Technology Inc: +@@ -46986,16 +46986,16 @@ pci:v00001524d00001410* + ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller + + pci:v00001524d00001410sv00001025sd0000003C* +- ID_MODEL_FROM_DATABASE=CL50 motherboard ++ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (CL50 motherboard) + + pci:v00001524d00001410sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (TravelMate 290) + + pci:v00001524d00001411* + ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller + + pci:v00001524d00001411sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller (NX9500) + + pci:v00001524d00001412* + ID_MODEL_FROM_DATABASE=CB-712/4 Cardbus Controller +@@ -47598,7 +47598,7 @@ pci:v000015ADd00000801* + ID_MODEL_FROM_DATABASE=Virtual Machine Interface + + pci:v000015ADd00000801sv000015ADsd00000800* +- ID_MODEL_FROM_DATABASE=Hypervisor ROM Interface ++ ID_MODEL_FROM_DATABASE=Virtual Machine Interface (Hypervisor ROM Interface) + + pci:v000015ADd00001977* + ID_MODEL_FROM_DATABASE=HD Audio Controller +@@ -47748,10 +47748,10 @@ pci:v000015B3d00006746* + ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] + + pci:v000015B3d00006746sv0000103Csd00001781* +- ID_MODEL_FROM_DATABASE=NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter ++ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter) + + pci:v000015B3d00006746sv0000103Csd00003349* +- ID_MODEL_FROM_DATABASE=NC543i 2-port 4xQDR IB/10Gb Adapter ++ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 2-port 4xQDR IB/10Gb Adapter) + + pci:v000015B3d00006750* + ID_MODEL_FROM_DATABASE=MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] +@@ -47763,7 +47763,7 @@ pci:v000015B3d00006764* + ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] + + pci:v000015B3d00006764sv0000103Csd00003313* +- ID_MODEL_FROM_DATABASE=HP NC542m Dual Port Flex-10 10GbE BLc Adapter ++ ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] (HP NC542m Dual Port Flex-10 10GbE BLc Adapter) + + pci:v000015B3d0000676E* + ID_MODEL_FROM_DATABASE=MT26478 [ConnectX EN 40GigE, PCIe 2.0 5GT/s] +@@ -47886,13 +47886,13 @@ pci:v000015BCd00000105* + ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES + + pci:v000015BCd00000105sv0000117Csd00000022* +- ID_MODEL_FROM_DATABASE=Celerity FC-42XS Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42XS Fibre Channel Adapter) + + pci:v000015BCd00000105sv0000117Csd00000025* +- ID_MODEL_FROM_DATABASE=Celerity FC-44ES Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-44ES Fibre Channel Adapter) + + pci:v000015BCd00000105sv0000117Csd00000026* +- ID_MODEL_FROM_DATABASE=Celerity FC-42ES Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42ES Fibre Channel Adapter) + + pci:v000015BCd00001100* + ID_MODEL_FROM_DATABASE=E8001-66442 PCI Express CIC +@@ -48306,34 +48306,34 @@ pci:v00001657d00000013* + ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA + + pci:v00001657d00000013sv0000103Csd00001742* +- ID_MODEL_FROM_DATABASE=HP 82B 8Gbps dual port FC HBA ++ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 82B 8Gbps dual port FC HBA) + + pci:v00001657d00000013sv0000103Csd00001744* +- ID_MODEL_FROM_DATABASE=HP 42B 4Gbps dual port FC HBA ++ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 42B 4Gbps dual port FC HBA) + + pci:v00001657d00000013sv00001657sd00000014* +- ID_MODEL_FROM_DATABASE=425/825 4Gbps/8Gbps PCIe dual port FC HBA ++ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (425/825 4Gbps/8Gbps PCIe dual port FC HBA) + + pci:v00001657d00000014* + ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA + + pci:v00001657d00000014sv00001657sd00000014* +- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - FCOE ++ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- FCOE) + + pci:v00001657d00000014sv00001657sd00000015* +- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - LL ++ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- LL) + + pci:v00001657d00000017* + ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA + + pci:v00001657d00000017sv0000103Csd00001741* +- ID_MODEL_FROM_DATABASE=HP 41B 4Gbps single port FC HBA ++ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 41B 4Gbps single port FC HBA) + + pci:v00001657d00000017sv0000103Csd00001743* +- ID_MODEL_FROM_DATABASE=HP 81B 8Gbps single port FC HBA ++ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 81B 8Gbps single port FC HBA) + + pci:v00001657d00000017sv00001657sd00000014* +- ID_MODEL_FROM_DATABASE=415/815 4Gbps/8Gbps single port PCIe FC HBA ++ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (415/815 4Gbps/8Gbps single port PCIe FC HBA) + + pci:v00001657d00000021* + ID_MODEL_FROM_DATABASE=804 8Gbps FC HBA for HP Bladesystem c-class +@@ -48342,13 +48342,13 @@ pci:v00001657d00000022* + ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter + + pci:v00001657d00000022sv00001657sd00000022* +- ID_MODEL_FROM_DATABASE=10Gbps CNA - FCOE ++ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - FCOE) + + pci:v00001657d00000022sv00001657sd00000023* +- ID_MODEL_FROM_DATABASE=10Gbps CNA - LL ++ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - LL) + + pci:v00001657d00000022sv00001657sd00000024* +- ID_MODEL_FROM_DATABASE=16Gbps FC HBA ++ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (16Gbps FC HBA) + + pci:v00001657d00000023* + ID_MODEL_FROM_DATABASE=1867/1869 16Gbps FC HBA +@@ -48435,10 +48435,10 @@ pci:v0000167Bd00002102* + ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 + + pci:v0000167Bd00002102sv0000187Esd00003406* +- ID_MODEL_FROM_DATABASE=ZyAIR B-122 CardBus 11Mbs Wireless LAN Card ++ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-122 CardBus 11Mbs Wireless LAN Card) + + pci:v0000167Bd00002102sv0000187Esd00003407* +- ID_MODEL_FROM_DATABASE=ZyAIR B-320 802.11b Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-320 802.11b Wireless PCI Adapter) + + pci:v0000167Bd00002116* + ID_MODEL_FROM_DATABASE=ZD1212B Wireless Adapter +@@ -48471,16 +48471,16 @@ pci:v0000168Cd00000007* + ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] + + pci:v0000168Cd00000007sv00001737sd00000007* +- ID_MODEL_FROM_DATABASE=WPC54A Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (WPC54A Wireless PC Card) + + pci:v0000168Cd00000007sv00001B47sd00000100* +- ID_MODEL_FROM_DATABASE=Harmony 8450CN Wireless CardBus Module ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Harmony 8450CN Wireless CardBus Module) + + pci:v0000168Cd00000007sv00001B47sd00000110* +- ID_MODEL_FROM_DATABASE=Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter) + + pci:v0000168Cd00000007sv00008086sd00002501* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 5000 LAN PCI Adapter Module ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (PRO/Wireless 5000 LAN PCI Adapter Module) + + pci:v0000168Cd00000011* + ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001A 802.11a] +@@ -48489,562 +48489,562 @@ pci:v0000168Cd00000012* + ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] + + pci:v0000168Cd00000012sv00001186sd00003A03* +- ID_MODEL_FROM_DATABASE=AirPro DWL-A650 Wireless Cardbus Adapter (rev.B) ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-A650 Wireless Cardbus Adapter (rev.B)) + + pci:v0000168Cd00000012sv00001186sd00003A04* +- ID_MODEL_FROM_DATABASE=AirPro DWL-AB650 Multimode Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB650 Multimode Wireless Cardbus Adapter) + + pci:v0000168Cd00000012sv00001186sd00003A05* +- ID_MODEL_FROM_DATABASE=AirPro DWL-AB520 Multimode Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB520 Multimode Wireless PCI Adapter) + + pci:v0000168Cd00000012sv0000126Csd00008031* +- ID_MODEL_FROM_DATABASE=2201 Mobile Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (2201 Mobile Adapter) + + pci:v0000168Cd00000012sv00001385sd00004400* +- ID_MODEL_FROM_DATABASE=WAB501 802.11ab Wireless CardBus Card ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (WAB501 802.11ab Wireless CardBus Card) + + pci:v0000168Cd00000012sv00001B47sd0000AA00* +- ID_MODEL_FROM_DATABASE=8460 802.11ab Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (8460 802.11ab Wireless CardBus Adapter) + + pci:v0000168Cd00000013* + ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter + + pci:v0000168Cd00000013sv00000308sd00003402* +- ID_MODEL_FROM_DATABASE=AG-100 802.11ag Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AG-100 802.11ag Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00000308sd00003405* +- ID_MODEL_FROM_DATABASE=G-102 v2 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-102 v2 802.11g Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00000308sd00003408* +- ID_MODEL_FROM_DATABASE=G-170S 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-170S 802.11g Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv00000E11sd000000E5* +- ID_MODEL_FROM_DATABASE=NC6000/NC8000 laptop ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (NC6000/NC8000 laptop) + + pci:v0000168Cd00000013sv000010B7sd00006002* +- ID_MODEL_FROM_DATABASE=3CRWE154A72 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRWE154A72 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv00001113sd0000D301* +- ID_MODEL_FROM_DATABASE=Philips CPWNA100 Wireless CardBus adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Philips CPWNA100 Wireless CardBus adapter) + + pci:v0000168Cd00000013sv00001113sd0000EE23* +- ID_MODEL_FROM_DATABASE=SMCWPCIT-G 108Mbps Wireless PCI adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (SMCWPCIT-G 108Mbps Wireless PCI adapter) + + pci:v0000168Cd00000013sv00001154sd0000033B* +- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AMG54 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AMG54) + + pci:v0000168Cd00000013sv00001154sd0000034E* +- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003202* +- ID_MODEL_FROM_DATABASE=DWL-G650 (Rev B3,B5) Wireless cardbus adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650 (Rev B3,B5) Wireless cardbus adapter) + + pci:v0000168Cd00000013sv00001186sd00003203* +- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. A) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) + + pci:v0000168Cd00000013sv00001186sd00003A07* +- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG650 Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A08* +- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG520 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG520 Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A12* +- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C)) + + pci:v0000168Cd00000013sv00001186sd00003A13* +- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. B) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. B)) + + pci:v0000168Cd00000013sv00001186sd00003A14* +- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A)) + + pci:v0000168Cd00000013sv00001186sd00003A17* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G680 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G680 Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A18* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G550 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G550 Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A1A* +- ID_MODEL_FROM_DATABASE=WNA-2330 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WNA-2330 802.11bg Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A63* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A93* +- ID_MODEL_FROM_DATABASE=Conceptronic C54I Wireless 801.11g PCI card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54I Wireless 801.11g PCI card) + + pci:v0000168Cd00000013sv00001186sd00003A94* +- ID_MODEL_FROM_DATABASE=Conceptronic C54C 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54C 802.11g Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003AB0* +- ID_MODEL_FROM_DATABASE=Allnet ALL0281 Wireless PCI Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Allnet ALL0281 Wireless PCI Card) + + pci:v0000168Cd00000013sv00001385sd00004600* +- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) + + pci:v0000168Cd00000013sv00001385sd00004610* +- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) + + pci:v0000168Cd00000013sv00001385sd00004900* +- ID_MODEL_FROM_DATABASE=WG311v1 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311v1 802.11g Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001385sd00004A00* +- ID_MODEL_FROM_DATABASE=WAG311 802.11a/g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG311 802.11a/g Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001385sd00004B00* +- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.A/B) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.A/B)) + + pci:v0000168Cd00000013sv00001385sd00004D00* +- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A2) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A2)) + + pci:v0000168Cd00000013sv00001385sd00004F00* +- ID_MODEL_FROM_DATABASE=WG511U Double 108 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511U Double 108 Mbps Wireless PC Card) + + pci:v0000168Cd00000013sv00001385sd00005A00* +- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A3) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A3)) + + pci:v0000168Cd00000013sv00001385sd00005B00* +- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.C) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.C)) + + pci:v0000168Cd00000013sv00001385sd00005D00* +- ID_MODEL_FROM_DATABASE=WPN511 RangeMax Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPN511 RangeMax Wireless PC Card) + + pci:v0000168Cd00000013sv00001458sd0000E911* +- ID_MODEL_FROM_DATABASE=GN-WIAG02 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (GN-WIAG02) + + pci:v0000168Cd00000013sv00001468sd00000403* +- ID_MODEL_FROM_DATABASE=U10H014 802.11g Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (U10H014 802.11g Cardbus Adapter) + + pci:v0000168Cd00000013sv00001468sd00000408* +- ID_MODEL_FROM_DATABASE=ThinkPad 11b/g Wireless LAN Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (ThinkPad 11b/g Wireless LAN Mini PCI Adapter) + + pci:v0000168Cd00000013sv000014B7sd00000A10* +- ID_MODEL_FROM_DATABASE=8480-WD 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8480-WD 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv000014B7sd00000A60* +- ID_MODEL_FROM_DATABASE=8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter) + + pci:v0000168Cd00000013sv000014B7sd0000AA30* +- ID_MODEL_FROM_DATABASE=8800-FC 802.11bg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8800-FC 802.11bg Cardbus Adapter) + + pci:v0000168Cd00000013sv000014B7sd0000AA40* +- ID_MODEL_FROM_DATABASE=8470-WD 802.11bg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8470-WD 802.11bg Cardbus Adapter) + + pci:v0000168Cd00000013sv000014B9sd0000CB21* +- ID_MODEL_FROM_DATABASE=CB21 802.11a/b/g Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CB21 802.11a/b/g Cardbus Adapter) + + pci:v0000168Cd00000013sv00001668sd00001026* +- ID_MODEL_FROM_DATABASE=IBM HighRate 11 a/b/g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (IBM HighRate 11 a/b/g Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00000013* +- ID_MODEL_FROM_DATABASE=AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001025* +- ID_MODEL_FROM_DATABASE=DWL-G650B2 Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650B2 Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001027* +- ID_MODEL_FROM_DATABASE=Engenius NL-3054CB ARIES b/g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius NL-3054CB ARIES b/g CardBus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001042* +- ID_MODEL_FROM_DATABASE=Ubiquiti Networks SuperRange a/b/g Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Ubiquiti Networks SuperRange a/b/g Cardbus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001051* +- ID_MODEL_FROM_DATABASE=EZ Connect g 802.11g 108Mbps Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (EZ Connect g 802.11g 108Mbps Wireless PCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002026* +- ID_MODEL_FROM_DATABASE=Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002027* +- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) + + pci:v0000168Cd00000013sv0000168Csd00002041* +- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002042* +- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002051* +- ID_MODEL_FROM_DATABASE=TRENDnet TEW-443PI Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (TRENDnet TEW-443PI Wireless PCI Adapter) + + pci:v0000168Cd00000013sv000016A5sd0000160A* +- ID_MODEL_FROM_DATABASE=BWP712 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (BWP712 802.11bg Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv000016ABsd00007302* +- ID_MODEL_FROM_DATABASE=Trust Speedshare Turbo Pro Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Trust Speedshare Turbo Pro Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001737sd00000017* +- ID_MODEL_FROM_DATABASE=WPC55AG ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG) + + pci:v0000168Cd00000013sv00001737sd00000026* +- ID_MODEL_FROM_DATABASE=WMP55AG v1.1 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.1) + + pci:v0000168Cd00000013sv00001737sd00000035* +- ID_MODEL_FROM_DATABASE=WPC55AG v1.2 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG v1.2 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv00001737sd00000036* +- ID_MODEL_FROM_DATABASE=WMP55AG v1.2 802.11abg PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.2 802.11abg PCI Adapter) + + pci:v0000168Cd00000013sv00001799sd00003000* +- ID_MODEL_FROM_DATABASE=F6D3000 Dual-Band Wireless A+G Desktop Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3000 Dual-Band Wireless A+G Desktop Card) + + pci:v0000168Cd00000013sv00001799sd00003010* +- ID_MODEL_FROM_DATABASE=F6D3010 Dual-Band Wireless A+G Notebook Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3010 Dual-Band Wireless A+G Notebook Card) + + pci:v0000168Cd00000013sv000017CFsd00000042* +- ID_MODEL_FROM_DATABASE=Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter) + + pci:v0000168Cd00000013sv0000185Fsd00001012* +- ID_MODEL_FROM_DATABASE=CM9 Wireless a/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CM9 Wireless a/b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000185Fsd00002012* +- ID_MODEL_FROM_DATABASE=Wistron NeWeb WLAN a+b+g model CB9 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Wistron NeWeb WLAN a+b+g model CB9) + + pci:v0000168Cd00000013sv0000A727sd00006801* +- ID_MODEL_FROM_DATABASE=3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card) + + pci:v0000168Cd0000001A* + ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] + + pci:v0000168Cd0000001Asv00001052sd0000168C* +- ID_MODEL_FROM_DATABASE=Sweex Wireless Lan PC Card 54Mbps ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Sweex Wireless Lan PC Card 54Mbps) + + pci:v0000168Cd0000001Asv00001113sd0000EE20* +- ID_MODEL_FROM_DATABASE=SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU)) + + pci:v0000168Cd0000001Asv00001113sd0000EE24* +- ID_MODEL_FROM_DATABASE=SMC Wireless PCI Card WPCI-G ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless PCI Card WPCI-G) + + pci:v0000168Cd0000001Asv00001186sd00003A15* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1)) + + pci:v0000168Cd0000001Asv00001186sd00003A16* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless PCI Adapter(rev.B) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G510 Wireless PCI Adapter(rev.B)) + + pci:v0000168Cd0000001Asv00001186sd00003A1C* +- ID_MODEL_FROM_DATABASE=WNA-1330 Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WNA-1330 Notebook Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003A1D* +- ID_MODEL_FROM_DATABASE=WDA-1320 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WDA-1320 Desktop Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003A23* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G520+A Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G520+A Wireless PCI Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003A24* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G650+A Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G650+A Wireless Cardbus Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003B08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1)) + + pci:v0000168Cd0000001Asv0000168Csd0000001A* +- ID_MODEL_FROM_DATABASE=Belkin FD7000 ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Belkin FD7000) + + pci:v0000168Cd0000001Asv0000168Csd00001052* +- ID_MODEL_FROM_DATABASE=TP-Link TL-WN510G Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (TP-Link TL-WN510G Wireless CardBus Adapter) + + pci:v0000168Cd0000001Asv0000168Csd00002052* +- ID_MODEL_FROM_DATABASE=Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G] ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G]) + + pci:v0000168Cd0000001Asv000016ECsd00000122* +- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter Model 5418 ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Wireless PCI Adapter Model 5418) + + pci:v0000168Cd0000001Asv00001737sd00000053* +- ID_MODEL_FROM_DATABASE=WPC54G v7 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WPC54G v7 802.11g Wireless-G Notebook Adapter) + + pci:v0000168Cd0000001Asv00001799sd0000700C* +- ID_MODEL_FROM_DATABASE=F5D7000 v5000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7000 v5000 Wireless G Desktop Card) + + pci:v0000168Cd0000001Asv00001799sd0000701D* +- ID_MODEL_FROM_DATABASE=F5D7010 v5000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7010 v5000 Wireless G Notebook Card) + + pci:v0000168Cd0000001Asv000017F9sd00000008* +- ID_MODEL_FROM_DATABASE=DX-WGNBC 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGNBC 802.11bg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Asv000017F9sd00000018* +- ID_MODEL_FROM_DATABASE=DX-WGDTC 802.11bg Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGDTC 802.11bg Wireless PCI Adapter) + + pci:v0000168Cd0000001B* + ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] + + pci:v0000168Cd0000001Bsv00000777sd00001107* +- ID_MODEL_FROM_DATABASE=UB5 802.11a Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (UB5 802.11a Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00000777sd00003002* +- ID_MODEL_FROM_DATABASE=XR2 802.11g Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR2 802.11g Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00000777sd00003005* +- ID_MODEL_FROM_DATABASE=XR5 802.11a Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR5 802.11a Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00000777sd00003009* +- ID_MODEL_FROM_DATABASE=XR9 900MHz Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR9 900MHz Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00001154sd0000034E* +- ID_MODEL_FROM_DATABASE=WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Bsv00001186sd00003A19* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter) + + pci:v0000168Cd0000001Bsv00001186sd00003A22* +- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B) ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B)) + + pci:v0000168Cd0000001Bsv000011ADsd00005001* +- ID_MODEL_FROM_DATABASE=WN5301A 802.11bg Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WN5301A 802.11bg Wireless PCI Adapter) + + pci:v0000168Cd0000001Bsv00001458sd0000E901* +- ID_MODEL_FROM_DATABASE=GN-WI01HT Wireless a/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (GN-WI01HT Wireless a/b/g MiniPCI Adapter) + + pci:v0000168Cd0000001Bsv0000168Csd0000001B* +- ID_MODEL_FROM_DATABASE=Wireless LAN PCI LiteOn ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless LAN PCI LiteOn) + + pci:v0000168Cd0000001Bsv0000168Csd00001062* +- ID_MODEL_FROM_DATABASE=IPN-W100CB 802.11abg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (IPN-W100CB 802.11abg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Bsv0000168Csd00002062* +- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG) ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG)) + + pci:v0000168Cd0000001Bsv0000168Csd00002063* +- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG) + + pci:v0000168Cd0000001Bsv000017F9sd0000000B* +- ID_MODEL_FROM_DATABASE=WL-711A 802.11abg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WL-711A 802.11abg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Bsv000017F9sd0000000C* +- ID_MODEL_FROM_DATABASE=WPIA-112AG 802.11abg Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WPIA-112AG 802.11abg Wireless PCI Adapter) + + pci:v0000168Cd0000001Bsv000017F9sd0000000D* +- ID_MODEL_FROM_DATABASE=PC-686X 802.11abg Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (PC-686X 802.11abg Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv0000185Fsd00001600* +- ID_MODEL_FROM_DATABASE=DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW) ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)) + + pci:v0000168Cd0000001Bsv00001948sd00003ABA* +- ID_MODEL_FROM_DATABASE=RBTBJ-AW 802.11abg Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (RBTBJ-AW 802.11abg Wireless Cardbus Adapter) + + pci:v0000168Cd0000001Bsv0000A727sd00006804* +- ID_MODEL_FROM_DATABASE=Wireless 11a/b/g PC Card with XJACK(r) Antenna ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless 11a/b/g PC Card with XJACK(r) Antenna) + + pci:v0000168Cd0000001C* + ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) + + pci:v0000168Cd0000001Csv00000777sd00003006* +- ID_MODEL_FROM_DATABASE=SRX 802.11abg Wireless ExpressCard Adapter ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (SRX 802.11abg Wireless ExpressCard Adapter) + + pci:v0000168Cd0000001Csv0000103Csd0000137A* +- ID_MODEL_FROM_DATABASE=AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC) + + pci:v0000168Cd0000001Csv0000106Bsd00000086* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPort Extreme) + + pci:v0000168Cd0000001Csv0000144Fsd00007106* +- ID_MODEL_FROM_DATABASE=WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card) + + pci:v0000168Cd0000001Csv0000144Fsd00007128* +- ID_MODEL_FROM_DATABASE=WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card) + + pci:v0000168Cd0000001Csv00001468sd00000428* +- ID_MODEL_FROM_DATABASE=AR5BXB63 802.11bg NIC ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 802.11bg NIC) + + pci:v0000168Cd0000001Csv00001468sd0000042A* +- ID_MODEL_FROM_DATABASE=AR5007EG 802.11bg NIC ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5007EG 802.11bg NIC) + + pci:v0000168Cd0000001Csv0000147Bsd00001033* +- ID_MODEL_FROM_DATABASE=AirPace Wi-Fi ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPace Wi-Fi) + + pci:v0000168Cd0000001Csv0000168Csd0000001C* +- ID_MODEL_FROM_DATABASE=AR242x 802.11abg NIC (PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg NIC (PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003061* +- ID_MODEL_FROM_DATABASE=AR5006EGS 802.11bg NIC (2.4GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EGS 802.11bg NIC (2.4GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003062* +- ID_MODEL_FROM_DATABASE=AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003063* +- ID_MODEL_FROM_DATABASE=AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003065* +- ID_MODEL_FROM_DATABASE=AR5006EG 802.11bg NIC (2.4GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EG 802.11bg NIC (2.4GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003067* +- ID_MODEL_FROM_DATABASE=AR242x 802.11abg Wireless PCI Express Adapter (rev 01) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg Wireless PCI Express Adapter (rev 01)) + + pci:v0000168Cd0000001Csv00001A3Bsd00001026* +- ID_MODEL_FROM_DATABASE=AW-GE780 802.11bg Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AW-GE780 802.11bg Wireless Mini PCIe Card) + + pci:v0000168Cd0000001D* + ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] + + pci:v0000168Cd0000001Dsv00001799sd0000720B* +- ID_MODEL_FROM_DATABASE=F5D7000 v8000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7000 v8000 Wireless G Desktop Card) + + pci:v0000168Cd0000001Dsv00001799sd0000721B* +- ID_MODEL_FROM_DATABASE=F5D7010 v8000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7010 v8000 Wireless G Notebook Card) + + pci:v0000168Cd00000020* + ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC + + pci:v0000168Cd00000020sv00000308sd00003407* +- ID_MODEL_FROM_DATABASE=M-102 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-102 802.11g Wireless Cardbus Adapter) + + pci:v0000168Cd00000020sv00001186sd00003A67* +- ID_MODEL_FROM_DATABASE=DWL-G650M Super G MIMO Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G650M Super G MIMO Wireless Notebook Adapter) + + pci:v0000168Cd00000020sv00001186sd00003A68* +- ID_MODEL_FROM_DATABASE=DWL-G520M Wireless 108G MIMO Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G520M Wireless 108G MIMO Desktop Adapter) + + pci:v0000168Cd00000020sv0000187Esd0000340E* +- ID_MODEL_FROM_DATABASE=M-302 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-302 802.11g Wireless PCI Adapter) + + pci:v0000168Cd00000020sv00001976sd00002003* +- ID_MODEL_FROM_DATABASE=TEW-601PC 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (TEW-601PC 802.11g Wireless CardBus Adapter) + + pci:v0000168Cd00000023* + ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] + + pci:v0000168Cd00000023sv00000308sd0000340B* +- ID_MODEL_FROM_DATABASE=NWD-170N 802.11bgn Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-170N 802.11bgn Wireless CardBus Adapter) + + pci:v0000168Cd00000023sv00001154sd00000365* +- ID_MODEL_FROM_DATABASE=Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter) + + pci:v0000168Cd00000023sv00001154sd00000367* +- ID_MODEL_FROM_DATABASE=WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter) + + pci:v0000168Cd00000023sv00001186sd00003A6A* +- ID_MODEL_FROM_DATABASE=DWA-642 802.11n RangeBooster N CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-642 802.11n RangeBooster N CardBus Adapter) + + pci:v0000168Cd00000023sv00001186sd00003A6B* +- ID_MODEL_FROM_DATABASE=DWA-547 802.11n RangeBooster N 650 DeskTop Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-547 802.11n RangeBooster N 650 DeskTop Adapter) + + pci:v0000168Cd00000023sv00001186sd00003A6D* +- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A1) ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-552 802.11n Xtreme N Desktop Adapter (rev A1)) + + pci:v0000168Cd00000023sv00001186sd00003A76* +- ID_MODEL_FROM_DATABASE=DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1) ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1)) + + pci:v0000168Cd00000023sv00001737sd00000059* +- ID_MODEL_FROM_DATABASE=WPC300N v2 Wireless-N Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC300N v2 Wireless-N Notebook Adapter) + + pci:v0000168Cd00000023sv00001737sd00000069* +- ID_MODEL_FROM_DATABASE=WPC100 v1 802.11n RangePlus Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC100 v1 802.11n RangePlus Wireless Notebook Adapter) + + pci:v0000168Cd00000023sv00001737sd00000072* +- ID_MODEL_FROM_DATABASE=WMP110 v1 802.11n RangePlus Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WMP110 v1 802.11n RangePlus Wireless PCI Adapter) + + pci:v0000168Cd00000023sv00001799sd00008011* +- ID_MODEL_FROM_DATABASE=F5D8011 v1 802.11n N1 Wireless Notebook Card ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (F5D8011 v1 802.11n N1 Wireless Notebook Card) + + pci:v0000168Cd00000023sv0000187Esd00003411* +- ID_MODEL_FROM_DATABASE=NWD-370N 802.11n Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-370N 802.11n Wireless PCI Adapter) + + pci:v0000168Cd00000023sv00001976sd00002008* +- ID_MODEL_FROM_DATABASE=TEW-621PC 802.11bgn Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (TEW-621PC 802.11bgn Wireless CardBus Adapter) + + pci:v0000168Cd00000024* + ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) + + pci:v0000168Cd00000024sv0000106Bsd00000087* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (AirPort Extreme) + + pci:v0000168Cd00000024sv00001186sd00003A70* +- ID_MODEL_FROM_DATABASE=DWA-556 Xtreme N PCI Express Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (DWA-556 Xtreme N PCI Express Desktop Adapter) + + pci:v0000168Cd00000027* + ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] + + pci:v0000168Cd00000027sv00000777sd00004082* +- ID_MODEL_FROM_DATABASE=SR71-A 802.11abgn Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] (SR71-A 802.11abgn Wireless Mini PCI Adapter) + + pci:v0000168Cd00000029* + ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter + + pci:v0000168Cd00000029sv00000777sd00004005* +- ID_MODEL_FROM_DATABASE=SR71-15 802.11an Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (SR71-15 802.11an Mini PCI Adapter) + + pci:v0000168Cd00000029sv00001186sd00003A7A* +- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A2) ++ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A2)) + + pci:v0000168Cd00000029sv00001186sd00003A7D* +- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A3) ++ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A3)) + + pci:v0000168Cd0000002A* + ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) + + pci:v0000168Cd0000002Asv00000777sd00004F05* +- ID_MODEL_FROM_DATABASE=SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280]) + + pci:v0000168Cd0000002Asv0000103Csd00003041* +- ID_MODEL_FROM_DATABASE=AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) + + pci:v0000168Cd0000002Asv0000105Bsd0000E006* +- ID_MODEL_FROM_DATABASE=T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv0000105Bsd0000E01F* +- ID_MODEL_FROM_DATABASE=T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) + + pci:v0000168Cd0000002Asv0000106Bsd0000008F* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AirPort Extreme) + + pci:v0000168Cd0000002Asv000011ADsd00006600* +- ID_MODEL_FROM_DATABASE=WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv0000144Fsd00007141* +- ID_MODEL_FROM_DATABASE=WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv0000168Csd00000203* +- ID_MODEL_FROM_DATABASE=DW1525 802.11abgn WLAN PCIe Card [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (DW1525 802.11abgn WLAN PCIe Card [AR9280]) + + pci:v0000168Cd0000002Asv00001A32sd00000303* +- ID_MODEL_FROM_DATABASE=EM303 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM303 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv00001A32sd00000306* +- ID_MODEL_FROM_DATABASE=EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) + + pci:v0000168Cd0000002Asv00001A3Bsd00001067* +- ID_MODEL_FROM_DATABASE=AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv00001A3Bsd00001081* +- ID_MODEL_FROM_DATABASE=AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) + + pci:v0000168Cd0000002B* + ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) + + pci:v0000168Cd0000002Bsv00001028sd00000204* +- ID_MODEL_FROM_DATABASE=Wireless 1502 802.11bgn Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1502 802.11bgn Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD] ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD]) + + pci:v0000168Cd0000002Bsv0000103Csd0000303F* +- ID_MODEL_FROM_DATABASE=U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000103Csd00003040* +- ID_MODEL_FROM_DATABASE=U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000105Bsd0000E017* +- ID_MODEL_FROM_DATABASE=T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000105Bsd0000E023* +- ID_MODEL_FROM_DATABASE=T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001113sd0000E811* +- ID_MODEL_FROM_DATABASE=WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000185Fsd000030AF* +- ID_MODEL_FROM_DATABASE=DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001931sd00000023* +- ID_MODEL_FROM_DATABASE=Option GTM67x PCIe WiFi Adapter ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Option GTM67x PCIe WiFi Adapter) + + pci:v0000168Cd0000002Bsv00001A3Bsd00001089* +- ID_MODEL_FROM_DATABASE=AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001A3Bsd00002C37* +- ID_MODEL_FROM_DATABASE=AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) + + pci:v0000168Cd0000002Bsv00001B9Asd00000401* +- ID_MODEL_FROM_DATABASE=XW204E 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (XW204E 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001B9Asd00000C03* +- ID_MODEL_FROM_DATABASE=WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) + + pci:v0000168Cd0000002C* + ID_MODEL_FROM_DATABASE=AR2427 802.11bg Wireless Network Adapter (PCI-Express) +@@ -49059,25 +49059,25 @@ pci:v0000168Cd00000030* + ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter + + pci:v0000168Cd00000030sv0000103Csd00001627* +- ID_MODEL_FROM_DATABASE=AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter) + + pci:v0000168Cd00000030sv0000106Bsd0000009A* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AirPort Extreme) + + pci:v0000168Cd00000030sv00001186sd00003A7E* +- ID_MODEL_FROM_DATABASE=DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter) + + pci:v0000168Cd00000030sv00001A56sd00002000* +- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382] ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382]) + + pci:v0000168Cd00000030sv00001A56sd00002001* +- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380] ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380]) + + pci:v0000168Cd00000032* + ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter + + pci:v0000168Cd00000032sv0000103Csd00001838* +- ID_MODEL_FROM_DATABASE=AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter ++ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter) + + pci:v0000168Cd00000033* + ID_MODEL_FROM_DATABASE=AR9580 Wireless Network Adapter +@@ -49086,7 +49086,7 @@ pci:v0000168Cd00000034* + ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter + + pci:v0000168Cd00000034sv00001A56sd00002003* +- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1202 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter (Killer Wireless-N 1202 Half-size Mini PCIe Card) + + pci:v0000168Cd00000036* + ID_MODEL_FROM_DATABASE=QCA9565 / AR9565 Wireless Network Adapter +@@ -49095,7 +49095,7 @@ pci:v0000168Cd00000037* + ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter + + pci:v0000168Cd00000037sv00001A3Bsd00002100* +- ID_MODEL_FROM_DATABASE=AW-NB100H 802.11n Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AW-NB100H 802.11n Wireless Mini PCIe Card) + + pci:v0000168Cd0000003C* + ID_MODEL_FROM_DATABASE=QCA988x 802.11ac Wireless Network Adapter +@@ -49107,7 +49107,7 @@ pci:v0000168Cd00001014* + ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC + + pci:v0000168Cd00001014sv00001014sd0000058A* +- ID_MODEL_FROM_DATABASE=ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6) ++ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)) + + pci:v0000168Cd00009013* + ID_MODEL_FROM_DATABASE=AR5002X Wireless Network Adapter +@@ -49125,7 +49125,7 @@ pci:v0000168Cd0000FF1D* + ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter + + pci:v0000168Cd0000FF1Dsv0000168Csd0000EE1C* +- ID_MODEL_FROM_DATABASE=AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3] ++ ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter (AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3]) + + pci:v00001695* + ID_VENDOR_FROM_DATABASE=EPoX Computer Co., Ltd. +@@ -49524,16 +49524,16 @@ pci:v00001737d00001032* + ID_MODEL_FROM_DATABASE=Gigabit Network Adapter + + pci:v00001737d00001032sv00001737sd00000015* +- ID_MODEL_FROM_DATABASE=EG1032 v2 Instant Gigabit Network Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v2 Instant Gigabit Network Adapter) + + pci:v00001737d00001032sv00001737sd00000024* +- ID_MODEL_FROM_DATABASE=EG1032 v3 Instant Gigabit Network Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v3 Instant Gigabit Network Adapter) + + pci:v00001737d00001064* + ID_MODEL_FROM_DATABASE=Gigabit Network Adapter + + pci:v00001737d00001064sv00001737sd00000016* +- ID_MODEL_FROM_DATABASE=EG1064 v2 Instant Gigabit Network Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1064 v2 Instant Gigabit Network Adapter) + + pci:v00001737d0000AB08* + ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet +@@ -49554,7 +49554,7 @@ pci:v0000173Bd000003EA* + ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet + + pci:v0000173Bd000003EAsv0000173Bsd00000001* +- ID_MODEL_FROM_DATABASE=AC1002 ++ ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet (AC1002) + + pci:v0000173Bd000003EB* + ID_MODEL_FROM_DATABASE=AC1003 Gigabit Ethernet +@@ -49851,19 +49851,19 @@ pci:v000017CBd00000001* + ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card + + pci:v000017CBd00000001sv00001385sd00005C00* +- ID_MODEL_FROM_DATABASE=WGM511 Pre-N 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WGM511 Pre-N 802.11g Wireless CardBus Adapter) + + pci:v000017CBd00000001sv00001737sd00000045* +- ID_MODEL_FROM_DATABASE=WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX ++ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX) + + pci:v000017CBd00000002* + ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card + + pci:v000017CBd00000002sv00001385sd00006D00* +- ID_MODEL_FROM_DATABASE=WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter) + + pci:v000017CBd00000002sv00001737sd00000054* +- ID_MODEL_FROM_DATABASE=WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400 ++ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400) + + pci:v000017CC* + ID_VENDOR_FROM_DATABASE=NetChip Technology, Inc +@@ -49914,7 +49914,7 @@ pci:v000017D3d00001280* + ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller + + pci:v000017D3d00001280sv000017D3sd00001221* +- ID_MODEL_FROM_DATABASE=ARC-1221 8-Port PCI-Express to SATA RAID Controller ++ ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller (ARC-1221 8-Port PCI-Express to SATA RAID Controller) + + pci:v000017D3d00001300* + ID_MODEL_FROM_DATABASE=ARC-1300ix-16 16-Port PCI-Express to SAS Non-RAID Host Adapter +@@ -49923,7 +49923,7 @@ pci:v000017D3d00001680* + ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller + + pci:v000017D3d00001680sv000017D3sd00001212* +- ID_MODEL_FROM_DATABASE=ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller ++ ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller (ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller) + + pci:v000017D3d00001880* + ID_MODEL_FROM_DATABASE=ARC-1880 8/12 port PCIe/PCI-X to SAS/SATA II RAID Controller +@@ -49941,82 +49941,82 @@ pci:v000017D5d00005831* + ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X + + pci:v000017D5d00005831sv0000103Csd000012D5* +- ID_MODEL_FROM_DATABASE=PCI-X 133MHz 10GbE SR Fiber ++ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (PCI-X 133MHz 10GbE SR Fiber) + + pci:v000017D5d00005831sv000010A9sd00008020* +- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) ++ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) + + pci:v000017D5d00005831sv000010A9sd00008024* +- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) ++ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) + + pci:v000017D5d00005832* + ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 + + pci:v000017D5d00005832sv0000103Csd00001337* +- ID_MODEL_FROM_DATABASE=PCI-X 266MHz 10GigE SR [AD385A] ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (PCI-X 266MHz 10GigE SR [AD385A]) + + pci:v000017D5d00005832sv000010A9sd00008021* +- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet II (PCI-X, Fiber) ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Single Port 10-Gigabit Ethernet II (PCI-X, Fiber)) + + pci:v000017D5d00005832sv000017D5sd00006020* +- ID_MODEL_FROM_DATABASE=Xframe II SR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR) + + pci:v000017D5d00005832sv000017D5sd00006021* +- ID_MODEL_FROM_DATABASE=Xframe II SR, Low Profile ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR, Low Profile) + + pci:v000017D5d00005832sv000017D5sd00006022* +- ID_MODEL_FROM_DATABASE=Xframe E SR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E SR) + + pci:v000017D5d00005832sv000017D5sd00006420* +- ID_MODEL_FROM_DATABASE=Xframe II LR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR) + + pci:v000017D5d00005832sv000017D5sd00006421* +- ID_MODEL_FROM_DATABASE=Xframe II LR, Low Profile ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR, Low Profile) + + pci:v000017D5d00005832sv000017D5sd00006422* +- ID_MODEL_FROM_DATABASE=Xframe E LR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E LR) + + pci:v000017D5d00005832sv000017D5sd00006C20* +- ID_MODEL_FROM_DATABASE=Xframe II CX4 ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4) + + pci:v000017D5d00005832sv000017D5sd00006C21* +- ID_MODEL_FROM_DATABASE=Xframe II CX4, Low Profile ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4, Low Profile) + + pci:v000017D5d00005832sv000017D5sd00006C22* +- ID_MODEL_FROM_DATABASE=Xframe E CX4 ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E CX4) + + pci:v000017D5d00005833* + ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe + + pci:v000017D5d00005833sv000017D5sd00006030* +- ID_MODEL_FROM_DATABASE=X3110 Single Port SR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port SR) + + pci:v000017D5d00005833sv000017D5sd00006031* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port SR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port SR) + + pci:v000017D5d00005833sv000017D5sd00006430* +- ID_MODEL_FROM_DATABASE=X3110 Single Port LR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LR) + + pci:v000017D5d00005833sv000017D5sd00006431* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port LR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LR) + + pci:v000017D5d00005833sv000017D5sd00007030* +- ID_MODEL_FROM_DATABASE=X3110 Single Port LRM ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LRM) + + pci:v000017D5d00005833sv000017D5sd00007031* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port LRM ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LRM) + + pci:v000017D5d00005833sv000017D5sd00007430* +- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-T ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-T) + + pci:v000017D5d00005833sv000017D5sd00007431* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-T ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-T) + + pci:v000017D5d00005833sv000017D5sd00007830* +- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-CR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-CR) + + pci:v000017D5d00005833sv000017D5sd00007831* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-CR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-CR) + + pci:v000017DB* + ID_VENDOR_FROM_DATABASE=Cray Inc +@@ -50103,16 +50103,16 @@ pci:v000017FEd00002120* + ID_MODEL_FROM_DATABASE=IPN 2120 802.11b + + pci:v000017FEd00002120sv00001737sd00000020* +- ID_MODEL_FROM_DATABASE=WMP11 v4 802.11b Wireless-B PCI Adapter ++ ID_MODEL_FROM_DATABASE=IPN 2120 802.11b (WMP11 v4 802.11b Wireless-B PCI Adapter) + + pci:v000017FEd00002220* + ID_MODEL_FROM_DATABASE=IPN 2220 802.11g + + pci:v000017FEd00002220sv00001468sd00000305* +- ID_MODEL_FROM_DATABASE=T60N871 802.11g Mini PCI Wireless Adapter ++ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (T60N871 802.11g Mini PCI Wireless Adapter) + + pci:v000017FEd00002220sv00001737sd00000029* +- ID_MODEL_FROM_DATABASE=WPC54G v4 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (WPC54G v4 802.11g Wireless-G Notebook Adapter) + + pci:v000017FF* + ID_VENDOR_FROM_DATABASE=Benq Corporation +@@ -50133,13 +50133,13 @@ pci:v00001813d00004000* + ID_MODEL_FROM_DATABASE=HaM controllerless modem + + pci:v00001813d00004000sv000016BEsd00000001* +- ID_MODEL_FROM_DATABASE=V9x HAM Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HaM controllerless modem (V9x HAM Data Fax Modem) + + pci:v00001813d00004100* + ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem + + pci:v00001813d00004100sv000016BEsd00000002* +- ID_MODEL_FROM_DATABASE=V9x HAM 1394 ++ ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem (V9x HAM 1394) + + pci:v00001814* + ID_VENDOR_FROM_DATABASE=Ralink corp. +@@ -50148,13 +50148,13 @@ pci:v00001814d00000101* + ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 + + pci:v00001814d00000101sv00001043sd00000127* +- ID_MODEL_FROM_DATABASE=WiFi-b add-on Card ++ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (WiFi-b add-on Card) + + pci:v00001814d00000101sv00001371sd00000010* +- ID_MODEL_FROM_DATABASE=Minitar MNW2BPCI Wireless PCI Card ++ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (Minitar MNW2BPCI Wireless PCI Card) + + pci:v00001814d00000101sv00001462sd00006828* +- ID_MODEL_FROM_DATABASE=PC11B2 (MS-6828) Wireless 11b PCI Card ++ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (PC11B2 (MS-6828) Wireless 11b PCI Card) + + pci:v00001814d00000200* + ID_MODEL_FROM_DATABASE=RT2500 802.11g PCI [PC54G2] +@@ -50163,58 +50163,58 @@ pci:v00001814d00000201* + ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg + + pci:v00001814d00000201sv00001043sd0000130F* +- ID_MODEL_FROM_DATABASE=WL-130g ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-130g) + + pci:v00001814d00000201sv00001186sd00003C00* +- ID_MODEL_FROM_DATABASE=DWL-G650X Wireless 11g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (DWL-G650X Wireless 11g CardBus Adapter) + + pci:v00001814d00000201sv00001371sd0000001E* +- ID_MODEL_FROM_DATABASE=CWC-854 Wireless-G CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWC-854 Wireless-G CardBus Adapter) + + pci:v00001814d00000201sv00001371sd0000001F* +- ID_MODEL_FROM_DATABASE=CWM-854 Wireless-G Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWM-854 Wireless-G Mini PCI Adapter) + + pci:v00001814d00000201sv00001371sd00000020* +- ID_MODEL_FROM_DATABASE=CWP-854 Wireless-G PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWP-854 Wireless-G PCI Adapter) + + pci:v00001814d00000201sv00001458sd0000E381* +- ID_MODEL_FROM_DATABASE=GN-WMKG 802.11b/g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WMKG 802.11b/g Wireless CardBus Adapter) + + pci:v00001814d00000201sv00001458sd0000E931* +- ID_MODEL_FROM_DATABASE=GN-WIKG 802.11b/g mini-PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WIKG 802.11b/g mini-PCI Adapter) + + pci:v00001814d00000201sv00001462sd00006833* +- ID_MODEL_FROM_DATABASE=Unknown 802.11g mini-PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Unknown 802.11g mini-PCI Adapter) + + pci:v00001814d00000201sv00001462sd00006835* +- ID_MODEL_FROM_DATABASE=Wireless 11G CardBus CB54G2 ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Wireless 11G CardBus CB54G2) + + pci:v00001814d00000201sv00001737sd00000032* +- ID_MODEL_FROM_DATABASE=WMP54G v4.0 PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WMP54G v4.0 PCI Adapter) + + pci:v00001814d00000201sv00001799sd0000700A* +- ID_MODEL_FROM_DATABASE=F5D7000 v2000/v3000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7000 v2000/v3000 Wireless G Desktop Card) + + pci:v00001814d00000201sv00001799sd0000701A* +- ID_MODEL_FROM_DATABASE=F5D7010 v2000/v3000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7010 v2000/v3000 Wireless G Notebook Card) + + pci:v00001814d00000201sv00001814sd00002560* + ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg + + pci:v00001814d00000201sv0000182Dsd00009073* +- ID_MODEL_FROM_DATABASE=WL-115 Wireless Network PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-115 Wireless Network PCI Adapter) + + pci:v00001814d00000201sv0000185Fsd000022A0* +- ID_MODEL_FROM_DATABASE=CN-WF513 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CN-WF513 Wireless Cardbus Adapter) + + pci:v00001814d00000201sv000018EBsd00005312* +- ID_MODEL_FROM_DATABASE=WL531P IEEE 802.11g PCI Card-EU ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL531P IEEE 802.11g PCI Card-EU) + + pci:v00001814d00000201sv00001948sd00003C00* +- ID_MODEL_FROM_DATABASE=C54RC v1 Wireless 11g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54RC v1 Wireless 11g CardBus Adapter) + + pci:v00001814d00000201sv00001948sd00003C01* +- ID_MODEL_FROM_DATABASE=C54Ri v1 Wireless 11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54Ri v1 Wireless 11g PCI Adapter) + + pci:v00001814d00000300* + ID_MODEL_FROM_DATABASE=Wireless Adapter Canyon CN-WF511 +@@ -50223,88 +50223,88 @@ pci:v00001814d00000301* + ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI + + pci:v00001814d00000301sv00001186sd00003C08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1) ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1)) + + pci:v00001814d00000301sv00001186sd00003C09* +- ID_MODEL_FROM_DATABASE=DWL-G510 Rev C ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (DWL-G510 Rev C) + + pci:v00001814d00000301sv000013D1sd0000ABE3* +- ID_MODEL_FROM_DATABASE=miniPCI Pluscom 802.11 a/b/g ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (miniPCI Pluscom 802.11 a/b/g) + + pci:v00001814d00000301sv00001458sd0000E933* +- ID_MODEL_FROM_DATABASE=GN-WI01GS ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WI01GS) + + pci:v00001814d00000301sv00001458sd0000E934* +- ID_MODEL_FROM_DATABASE=GN-WP01GS ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WP01GS) + + pci:v00001814d00000301sv00001737sd00000055* +- ID_MODEL_FROM_DATABASE=WMP54G v4.1 ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (WMP54G v4.1) + + pci:v00001814d00000301sv00001799sd0000700E* +- ID_MODEL_FROM_DATABASE=F5D7000 v6000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7000 v6000 Wireless G Desktop Card) + + pci:v00001814d00000301sv00001799sd0000701E* +- ID_MODEL_FROM_DATABASE=F5D7010 v6000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7010 v6000 Wireless G Notebook Card) + + pci:v00001814d00000301sv000017F9sd00000012* +- ID_MODEL_FROM_DATABASE=AWLC3026T 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AWLC3026T 802.11g Wireless CardBus Adapter) + + pci:v00001814d00000301sv00001814sd00002561* +- ID_MODEL_FROM_DATABASE=EW-7108PCg/EW-7128g ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (EW-7108PCg/EW-7128g) + + pci:v00001814d00000302* + ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g + + pci:v00001814d00000302sv00001186sd00003A71* +- ID_MODEL_FROM_DATABASE=DWA-510 Wireless G Desktop Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (DWA-510 Wireless G Desktop Adapter) + + pci:v00001814d00000302sv00001186sd00003C08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2) ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2)) + + pci:v00001814d00000302sv00001186sd00003C09* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless Network Adapter (Rev.C) ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G510 Wireless Network Adapter (Rev.C)) + + pci:v00001814d00000302sv00001462sd0000B834* +- ID_MODEL_FROM_DATABASE=PC54G3 Wireless 11g PCI Card ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (PC54G3 Wireless 11g PCI Card) + + pci:v00001814d00000302sv00001948sd00003C23* +- ID_MODEL_FROM_DATABASE=C54RC v2 Wireless 11g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54RC v2 Wireless 11g CardBus Adapter) + + pci:v00001814d00000302sv00001948sd00003C24* +- ID_MODEL_FROM_DATABASE=C54Ri v2 Wireless 11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54Ri v2 Wireless 11g PCI Adapter) + + pci:v00001814d00000401* + ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO + + pci:v00001814d00000401sv00001737sd00000052* +- ID_MODEL_FROM_DATABASE=WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster ++ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster) + + pci:v00001814d00000401sv000017F9sd00000011* +- ID_MODEL_FROM_DATABASE=WPCR-137G 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPCR-137G 802.11bg Wireless CardBus Adapter) + + pci:v00001814d00000401sv000017F9sd00000016* +- ID_MODEL_FROM_DATABASE=WPIR-119GH 802.11bg Wireless Desktop Adapter ++ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPIR-119GH 802.11bg Wireless Desktop Adapter) + + pci:v00001814d00000601* + ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI + + pci:v00001814d00000601sv00001799sd0000801C* +- ID_MODEL_FROM_DATABASE=F5D8011 v3 802.11n N1 Wireless Notebook Card ++ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (F5D8011 v3 802.11n N1 Wireless Notebook Card) + + pci:v00001814d00000601sv0000187Esd00003412* +- ID_MODEL_FROM_DATABASE=NWD-310N 802.11n Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (NWD-310N 802.11n Wireless PCI Adapter) + + pci:v00001814d00000681* + ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe + + pci:v00001814d00000681sv00001458sd0000E939* +- ID_MODEL_FROM_DATABASE=GN-WS30N-RH 802.11bgn Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe (GN-WS30N-RH 802.11bgn Mini PCIe Card) + + pci:v00001814d00000701* + ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R + + pci:v00001814d00000701sv00001737sd00000074* +- ID_MODEL_FROM_DATABASE=WMP110 v2 802.11n RangePlus Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R (WMP110 v2 802.11n RangePlus Wireless PCI Adapter) + + pci:v00001814d00000781* + ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe +@@ -50313,7 +50313,7 @@ pci:v00001814d00003060* + ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R + + pci:v00001814d00003060sv00001186sd00003C04* +- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A1) ++ ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A1)) + + pci:v00001814d00003062* + ID_MODEL_FROM_DATABASE=RT3062 Wireless 802.11n 2T/2R +@@ -50322,7 +50322,7 @@ pci:v00001814d00003090* + ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe + + pci:v00001814d00003090sv000013BDsd00001057* +- ID_MODEL_FROM_DATABASE=GN-WS32L-RH Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe (GN-WS32L-RH Half-size Mini PCIe Card) + + pci:v00001814d00003091* + ID_MODEL_FROM_DATABASE=RT3091 Wireless 802.11n 1T/2R PCIe +@@ -50334,13 +50334,13 @@ pci:v00001814d00003290* + ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe + + pci:v00001814d00003290sv0000103Csd000018EC* +- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter ++ ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) + + pci:v00001814d00003298* + ID_MODEL_FROM_DATABASE=RT3290 Bluetooth + + pci:v00001814d00003298sv0000103Csd000018EC* +- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter ++ ID_MODEL_FROM_DATABASE=RT3290 Bluetooth (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) + + pci:v00001814d00003592* + ID_MODEL_FROM_DATABASE=RT3592 Wireless 802.11abgn 2T/2R PCIe +@@ -50352,16 +50352,16 @@ pci:v00001814d00005360* + ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R + + pci:v00001814d00005360sv00001186sd00003C05* +- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A2) ++ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A2)) + + pci:v00001814d00005360sv000020F4sd0000703A* +- ID_MODEL_FROM_DATABASE=TEW-703PI N150 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (TEW-703PI N150 Wireless PCI Adapter) + + pci:v00001814d00005390* + ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe + + pci:v00001814d00005390sv0000103Csd00001636* +- ID_MODEL_FROM_DATABASE=U98Z077.00 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe (U98Z077.00 Half-size Mini PCIe Card) + + pci:v00001814d00005392* + ID_MODEL_FROM_DATABASE=RT5392 PCIe Wireless Network Adapter +@@ -50370,7 +50370,7 @@ pci:v00001814d0000539F* + ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] + + pci:v00001814d0000539Fsv0000103Csd00001637* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card ++ ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] (Pavilion DM1Z-3000 PCIe wireless card) + + pci:v00001814d00005592* + ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter +@@ -50637,7 +50637,7 @@ pci:v000018C3d00000720* + ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller + + pci:v000018C3d00000720sv000007CAsd0000032E* +- ID_MODEL_FROM_DATABASE=Hybrid M779 PCI-E ++ ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller (Hybrid M779 PCI-E) + + pci:v000018C8* + ID_VENDOR_FROM_DATABASE=Cray Inc +@@ -50697,70 +50697,70 @@ pci:v000018ECd00006D05* + ID_MODEL_FROM_DATABASE=ML555 + + pci:v000018ECd00006D05sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=ML555 (NIC (ethernet interfaces)) + + pci:v000018ECd00006D05sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 4x1G) + + pci:v000018ECd00006D05sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 2x10G) + + pci:v000018ECd00006D05sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd00006D05sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd00006D05sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=ML555 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd00006D05sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=ML555 (Testing design) + + pci:v000018ECd00006D05sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=ML555 (Boot design) + + pci:v000018ECd0000C006* + ID_MODEL_FROM_DATABASE=COMBO6 + + pci:v000018ECd0000C006sv000018ECsd0000D001* +- ID_MODEL_FROM_DATABASE=COMBO-4MTX ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4MTX) + + pci:v000018ECd0000C006sv000018ECsd0000D002* +- ID_MODEL_FROM_DATABASE=COMBO-4SFP ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFP) + + pci:v000018ECd0000C006sv000018ECsd0000D003* +- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFPRO) + + pci:v000018ECd0000C006sv000018ECsd0000D004* +- ID_MODEL_FROM_DATABASE=COMBO-2XFP ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-2XFP) + + pci:v000018ECd0000C032* + ID_MODEL_FROM_DATABASE=COMBO-LXT110 + + pci:v000018ECd0000C032sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (ethernet interfaces)) + + pci:v000018ECd0000C032sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 4x1G) + + pci:v000018ECd0000C032sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 2x10G) + + pci:v000018ECd0000C032sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd0000C032sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd0000C032sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd0000C032sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Testing design) + + pci:v000018ECd0000C032sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Boot design) + + pci:v000018ECd0000C045* + ID_MODEL_FROM_DATABASE=COMBO6E +@@ -50772,70 +50772,70 @@ pci:v000018ECd0000C058* + ID_MODEL_FROM_DATABASE=COMBO6X + + pci:v000018ECd0000C058sv000018ECsd0000D001* +- ID_MODEL_FROM_DATABASE=COMBO-4MTX ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4MTX) + + pci:v000018ECd0000C058sv000018ECsd0000D002* +- ID_MODEL_FROM_DATABASE=COMBO-4SFP ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFP) + + pci:v000018ECd0000C058sv000018ECsd0000D003* +- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFPRO) + + pci:v000018ECd0000C058sv000018ECsd0000D004* +- ID_MODEL_FROM_DATABASE=COMBO-2XFP ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-2XFP) + + pci:v000018ECd0000C132* + ID_MODEL_FROM_DATABASE=COMBO-LXT155 + + pci:v000018ECd0000C132sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (ethernet interfaces)) + + pci:v000018ECd0000C132sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 4x1G) + + pci:v000018ECd0000C132sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 2x10G) + + pci:v000018ECd0000C132sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd0000C132sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd0000C132sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd0000C132sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Testing design) + + pci:v000018ECd0000C132sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Boot design) + + pci:v000018ECd0000C232* + ID_MODEL_FROM_DATABASE=COMBO-FXT100 + + pci:v000018ECd0000C232sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (ethernet interfaces)) + + pci:v000018ECd0000C232sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 4x1G) + + pci:v000018ECd0000C232sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 2x10G) + + pci:v000018ECd0000C232sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd0000C232sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd0000C232sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd0000C232sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Testing design) + + pci:v000018ECd0000C232sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Boot design) + + pci:v000018EE* + ID_VENDOR_FROM_DATABASE=Chenming Mold Ind. Corp. +@@ -51075,235 +51075,235 @@ pci:v00001924d00000703* + ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] + + pci:v00001924d00000703sv000010B8sd00000102* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) + + pci:v00001924d00000703sv000010B8sd00000103* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) + + pci:v00001924d00000703sv000010B8sd00000201* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) + + pci:v00001924d00000703sv00001924sd00000101* +- ID_MODEL_FROM_DATABASE=SFE4001-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A1) + + pci:v00001924d00000703sv00001924sd00000102* +- ID_MODEL_FROM_DATABASE=SFE4001-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A2) + + pci:v00001924d00000703sv00001924sd00000103* +- ID_MODEL_FROM_DATABASE=SFE4001-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A3) + + pci:v00001924d00000703sv00001924sd00000201* +- ID_MODEL_FROM_DATABASE=SFE4002-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4002-A1) + + pci:v00001924d00000703sv00001924sd00000301* +- ID_MODEL_FROM_DATABASE=SFE4003-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A1) + + pci:v00001924d00000703sv00001924sd00000302* +- ID_MODEL_FROM_DATABASE=SFE4003-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A2) + + pci:v00001924d00000703sv00001924sd00000303* +- ID_MODEL_FROM_DATABASE=SFE4003-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A3) + + pci:v00001924d00000703sv00001924sd00000304* +- ID_MODEL_FROM_DATABASE=SFE4003-A4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A4) + + pci:v00001924d00000703sv00001924sd00000500* +- ID_MODEL_FROM_DATABASE=SFE4005-A0 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4005-A0) + + pci:v00001924d00000710* + ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] + + pci:v00001924d00000710sv000010B8sd00000103* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) + + pci:v00001924d00000710sv000010B8sd00000201* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) + + pci:v00001924d00000710sv00001924sd00000102* +- ID_MODEL_FROM_DATABASE=SFE4001-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A2) + + pci:v00001924d00000710sv00001924sd00000103* +- ID_MODEL_FROM_DATABASE=SFE4001-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A3) + + pci:v00001924d00000710sv00001924sd00000201* +- ID_MODEL_FROM_DATABASE=SFE4002-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4002-A1) + + pci:v00001924d00000710sv00001924sd00000302* +- ID_MODEL_FROM_DATABASE=SFE4003-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A2) + + pci:v00001924d00000710sv00001924sd00000303* +- ID_MODEL_FROM_DATABASE=SFE4003-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A3) + + pci:v00001924d00000710sv00001924sd00000304* +- ID_MODEL_FROM_DATABASE=SFE4003-A4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A4) + + pci:v00001924d00000710sv00001924sd00000500* +- ID_MODEL_FROM_DATABASE=SFE4005-A0 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4005-A0) + + pci:v00001924d00000710sv00001924sd00005102* +- ID_MODEL_FROM_DATABASE=SFN4111T-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-A2) + + pci:v00001924d00000710sv00001924sd00005103* +- ID_MODEL_FROM_DATABASE=SFN4111T-R3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R3) + + pci:v00001924d00000710sv00001924sd00005104* +- ID_MODEL_FROM_DATABASE=SFN4111T-R4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R4) + + pci:v00001924d00000710sv00001924sd00005105* +- ID_MODEL_FROM_DATABASE=SFN4111T-R5 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R5) + + pci:v00001924d00000710sv00001924sd00005201* +- ID_MODEL_FROM_DATABASE=SFN4112F-R1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R1) + + pci:v00001924d00000710sv00001924sd00005202* +- ID_MODEL_FROM_DATABASE=SFN4112F-R2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R2) + + pci:v00001924d00000803* + ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] + + pci:v00001924d00000803sv00001014sd00000478* +- ID_MODEL_FROM_DATABASE=2-port 10GbE Low-Latency (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE Low-Latency (R7)) + + pci:v00001924d00000803sv00001014sd00000479* +- ID_MODEL_FROM_DATABASE=2-port 10GbE OpenOnload (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE OpenOnload (R7)) + + pci:v00001924d00000803sv00001014sd000004A7* +- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Low-latency Dual-port HBA (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Low-latency Dual-port HBA (R7)) + + pci:v00001924d00000803sv00001014sd000004A8* +- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Dual-port HBA (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Dual-port HBA (R7)) + + pci:v00001924d00000803sv0000103Csd00002132* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1)) + + pci:v00001924d00000803sv0000103Csd00002136* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570SFP+ Adapter (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570SFP+ Adapter (R7)) + + pci:v00001924d00000803sv00001924sd00001201* +- ID_MODEL_FROM_DATABASE=SFA6902F-R1 SFP+ AOE Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFA6902F-R1 SFP+ AOE Adapter) + + pci:v00001924d00000803sv00001924sd00006200* +- ID_MODEL_FROM_DATABASE=SFN5122F-R0 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R0 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006201* +- ID_MODEL_FROM_DATABASE=SFN5122F-R1 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R1 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006202* +- ID_MODEL_FROM_DATABASE=SFN5122F-R2 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R2 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006204* +- ID_MODEL_FROM_DATABASE=SFN5122F-R4 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R4 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006205* +- ID_MODEL_FROM_DATABASE=SFN5122F-R5 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R5 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006206* +- ID_MODEL_FROM_DATABASE=SFN5122F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006207* +- ID_MODEL_FROM_DATABASE=SFN5122F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R7 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006210* +- ID_MODEL_FROM_DATABASE=SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006211* +- ID_MODEL_FROM_DATABASE=SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006217* +- ID_MODEL_FROM_DATABASE=SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006227* +- ID_MODEL_FROM_DATABASE=SFN6122F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6122F-R7 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006237* +- ID_MODEL_FROM_DATABASE=SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006501* +- ID_MODEL_FROM_DATABASE=SFN5802K-R1 Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5802K-R1 Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006511* +- ID_MODEL_FROM_DATABASE=SFN5814H-R1 Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5814H-R1 Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006521* +- ID_MODEL_FROM_DATABASE=SFN5812H-R1 Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5812H-R1 Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006562* +- ID_MODEL_FROM_DATABASE=SFN6832F-R2 SFP+ Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6832F-R2 SFP+ Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006A05* +- ID_MODEL_FROM_DATABASE=SFN5112F-R5 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R5 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006A06* +- ID_MODEL_FROM_DATABASE=SFN5112F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007206* +- ID_MODEL_FROM_DATABASE=SFN5162F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007207* +- ID_MODEL_FROM_DATABASE=SFN5162F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R7 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007A06* +- ID_MODEL_FROM_DATABASE=SFN5152F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007A07* +- ID_MODEL_FROM_DATABASE=SFN5152F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R7 SFP+ Server Adapter) + + pci:v00001924d00000813* + ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] + + pci:v00001924d00000813sv00001924sd00006100* +- ID_MODEL_FROM_DATABASE=SFN5121T-R0 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R0 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006102* +- ID_MODEL_FROM_DATABASE=SFN5121T-R2 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R2 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006103* +- ID_MODEL_FROM_DATABASE=SFN5121T-R3 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R3 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006104* +- ID_MODEL_FROM_DATABASE=SFN5121T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006902* +- ID_MODEL_FROM_DATABASE=SFN5111T-R2 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R2 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006904* +- ID_MODEL_FROM_DATABASE=SFN5111T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00007104* +- ID_MODEL_FROM_DATABASE=SFN5161T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5161T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00007904* +- ID_MODEL_FROM_DATABASE=SFN5151T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5151T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000903* + ID_MODEL_FROM_DATABASE=SFC9120 + + pci:v00001924d00000903sv00001014sd000004CC* +- ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R2 2x10GbE SFP+ Flareon Ultra) + + pci:v00001924d00000903sv00001924sd00008002* +- ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R1 SFP+ Server Adapter) + + pci:v00001924d00000903sv00001924sd00008003* +- ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) + + pci:v00001924d00000903sv00001924sd00008006* +- ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7022F-R1 SFP+ Server Adapter) + + pci:v00001924d00000903sv00001924sd00008007* +- ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7322F-R2 Precision Time SFP+ Server Adapter) + + pci:v00001924d00000903sv00001924sd00008009* +- ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter) + + pci:v00001924d00000903sv00001924sd0000800A* +- ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x02F-R2 Flareon 7000 Series 10G Adapter) + + pci:v00001924d00000923* + ID_MODEL_FROM_DATABASE=SFC9140 + + pci:v00001924d00000923sv00001924sd0000800B* +- ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9140 (SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) + + pci:v00001924d00001803* + ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] +@@ -51315,40 +51315,40 @@ pci:v00001924d00006703* + ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] + + pci:v00001924d00006703sv000010B8sd00000102* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) + + pci:v00001924d00006703sv000010B8sd00000103* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) + + pci:v00001924d00006703sv000010B8sd00000201* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) + + pci:v00001924d00006703sv00001924sd00000101* +- ID_MODEL_FROM_DATABASE=SFE4001-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A1) + + pci:v00001924d00006703sv00001924sd00000102* +- ID_MODEL_FROM_DATABASE=SFE4001-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A2) + + pci:v00001924d00006703sv00001924sd00000103* +- ID_MODEL_FROM_DATABASE=SFE4001-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A3) + + pci:v00001924d00006703sv00001924sd00000201* +- ID_MODEL_FROM_DATABASE=SFE4002-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4002-A1) + + pci:v00001924d00006703sv00001924sd00000301* +- ID_MODEL_FROM_DATABASE=SFE4003-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A1) + + pci:v00001924d00006703sv00001924sd00000302* +- ID_MODEL_FROM_DATABASE=SFE4003-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A2) + + pci:v00001924d00006703sv00001924sd00000303* +- ID_MODEL_FROM_DATABASE=SFE4003-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A3) + + pci:v00001924d00006703sv00001924sd00000304* +- ID_MODEL_FROM_DATABASE=SFE4003-A4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A4) + + pci:v00001924d00006703sv00001924sd00000500* +- ID_MODEL_FROM_DATABASE=SFE4005-A0 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4005-A0) + + pci:v00001924d0000C101* + ID_MODEL_FROM_DATABASE=EF1-21022T [EtherFabric] +@@ -51549,13 +51549,13 @@ pci:v00001957d00000084* + ID_MODEL_FROM_DATABASE=MPC8347E PBGA + + pci:v00001957d00000084sv0000110Asd00004074* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 ++ ID_MODEL_FROM_DATABASE=MPC8347E PBGA (SIMATIC NET CP 1628) + + pci:v00001957d00000085* + ID_MODEL_FROM_DATABASE=MPC8347 PBGA + + pci:v00001957d00000085sv0000110Asd00004046* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 ++ ID_MODEL_FROM_DATABASE=MPC8347 PBGA (SIMATIC NET CP 1623) + + pci:v00001957d00000086* + ID_MODEL_FROM_DATABASE=MPC8343E +@@ -51570,7 +51570,7 @@ pci:v00001957d000000B6* + ID_MODEL_FROM_DATABASE=MPC8314E + + pci:v00001957d000000B6sv00001A56sd00001101* +- ID_MODEL_FROM_DATABASE=Killer Xeno Pro Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=MPC8314E (Killer Xeno Pro Gigabit Ethernet Controller) + + pci:v00001957d000000C2* + ID_MODEL_FROM_DATABASE=MPC8379E +@@ -51621,7 +51621,7 @@ pci:v00001957d00000111* + ID_MODEL_FROM_DATABASE=P1022 + + pci:v00001957d00000111sv00001C7Fsd00005200* +- ID_MODEL_FROM_DATABASE=EB5200 ++ ID_MODEL_FROM_DATABASE=P1022 (EB5200) + + pci:v00001957d00000118* + ID_MODEL_FROM_DATABASE=P1013E +@@ -51660,7 +51660,7 @@ pci:v00001957d0000C006* + ID_MODEL_FROM_DATABASE=MPC8308 + + pci:v00001957d0000C006sv00001A56sd00001201* +- ID_MODEL_FROM_DATABASE=Killer E2100 Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=MPC8308 (Killer E2100 Gigabit Ethernet Controller) + + pci:v00001958* + ID_VENDOR_FROM_DATABASE=Faster Technology, LLC. +@@ -51726,13 +51726,13 @@ pci:v00001969d00001026* + ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet + + pci:v00001969d00001026sv00001043sd00008304* +- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard ++ ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (P5KPL-CM Motherboard) + + pci:v00001969d00001048* + ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet + + pci:v00001969d00001048sv00001043sd00008226* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet (P5KPL-VM Motherboard) + + pci:v00001969d00001062* + ID_MODEL_FROM_DATABASE=AR8132 Fast Ethernet +@@ -51741,7 +51741,7 @@ pci:v00001969d00001063* + ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet + + pci:v00001969d00001063sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-G31M-ES2L Motherboard ++ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) + + pci:v00001969d00001066* + ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet +@@ -51762,7 +51762,7 @@ pci:v00001969d00001091* + ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet + + pci:v00001969d00001091sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet (N56VZ) + + pci:v00001969d000010A0* + ID_MODEL_FROM_DATABASE=QCA8172 Fast Ethernet +@@ -51804,7 +51804,7 @@ pci:v00001971d00001011* + ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] + + pci:v00001971d00001011sv00001043sd00000001* +- ID_MODEL_FROM_DATABASE=PhysX P1 ++ ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] (PhysX P1) + + pci:v00001974* + ID_VENDOR_FROM_DATABASE=Eberspaecher Electronics +@@ -51834,25 +51834,25 @@ pci:v0000197Bd00002361* + ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE + + pci:v0000197Bd00002361sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE (P965 Neo MS-7235 mainboard) + + pci:v0000197Bd00002362* + ID_MODEL_FROM_DATABASE=JMB362 SATA Controller + + pci:v0000197Bd00002362sv00001043sd00008460* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=JMB362 SATA Controller (P8P67 Deluxe Motherboard) + + pci:v0000197Bd00002363* + ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller + + pci:v0000197Bd00002363sv00001043sd000081E4* +- ID_MODEL_FROM_DATABASE=P5B [JMB363] ++ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (P5B [JMB363]) + + pci:v0000197Bd00002363sv00001458sd0000B000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard) + + pci:v0000197Bd00002363sv00001849sd00002363* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard (one of many)) + + pci:v0000197Bd00002364* + ID_MODEL_FROM_DATABASE=JMB364 AHCI Controller +@@ -51984,19 +51984,19 @@ pci:v000019A2d00000700* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC + + pci:v000019A2d00000700sv0000103Csd00001747* +- ID_MODEL_FROM_DATABASE=NC550SFP DualPort 10GbE Server Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP DualPort 10GbE Server Adapter) + + pci:v000019A2d00000700sv0000103Csd00001749* +- ID_MODEL_FROM_DATABASE=NC550SFP Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP Dual Port Server Adapter) + + pci:v000019A2d00000700sv0000103Csd0000174A* +- ID_MODEL_FROM_DATABASE=NC551m Dual Port FlexFabric 10Gb Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551m Dual Port FlexFabric 10Gb Adapter) + + pci:v000019A2d00000700sv0000103Csd0000174B* +- ID_MODEL_FROM_DATABASE=StorageWorks NC550 DualPort Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (StorageWorks NC550 DualPort Converged Network Adapter) + + pci:v000019A2d00000700sv0000103Csd00003314* +- ID_MODEL_FROM_DATABASE=NC551i Dual Port FlexFabric 10Gb Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551i Dual Port FlexFabric 10Gb Adapter) + + pci:v000019A2d00000702* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator +@@ -52008,19 +52008,19 @@ pci:v000019A2d00000710* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) + + pci:v000019A2d00000710sv0000103Csd00003315* +- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000710sv0000103Csd00003340* +- ID_MODEL_FROM_DATABASE=NC552SFP 2-port 10Gb Server Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552SFP 2-port 10Gb Server Adapter) + + pci:v000019A2d00000710sv0000103Csd00003341* +- ID_MODEL_FROM_DATABASE=NC552m 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552m 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000710sv0000103Csd00003345* +- ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553m 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000710sv0000103Csd0000337B* +- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000712* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) +@@ -52029,10 +52029,10 @@ pci:v000019A2d00000714* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) + + pci:v000019A2d00000714sv0000103Csd00003315* +- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000714sv0000103Csd0000337B* +- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A8* + ID_VENDOR_FROM_DATABASE=DAQDATA GmbH +@@ -52332,16 +52332,16 @@ pci:v00001A78d00000031* + ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive + + pci:v00001A78d00000031sv00001A78sd00000034* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) + + pci:v00001A78d00000031sv00001A78sd00000037* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3D] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) + + pci:v00001A78d00000031sv00001A78sd00000038* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) + + pci:v00001A78d00000031sv00001A78sd00000039* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4D] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) + + pci:v00001A78d00000040* + ID_MODEL_FROM_DATABASE=FlashMAX II +@@ -52479,25 +52479,25 @@ pci:v00001AEDd00001005* + ID_MODEL_FROM_DATABASE=ioDimm3 + + pci:v00001AEDd00001005sv00001014sd000003C3* +- ID_MODEL_FROM_DATABASE=High IOPS SSD PCIe Adapter ++ ID_MODEL_FROM_DATABASE=ioDimm3 (High IOPS SSD PCIe Adapter) + + pci:v00001AEDd00001005sv0000103Csd0000176F* +- ID_MODEL_FROM_DATABASE=1.28TB MLC PCIe ioDrive Duo ++ ID_MODEL_FROM_DATABASE=ioDimm3 (1.28TB MLC PCIe ioDrive Duo) + + pci:v00001AEDd00001005sv0000103Csd00001770* +- ID_MODEL_FROM_DATABASE=5.2TB MLC PCIe ioDrive Octal ++ ID_MODEL_FROM_DATABASE=ioDimm3 (5.2TB MLC PCIe ioDrive Octal) + + pci:v00001AEDd00001005sv0000103Csd0000178B* +- ID_MODEL_FROM_DATABASE=160GB SLC PCIe ioDrive ++ ID_MODEL_FROM_DATABASE=ioDimm3 (160GB SLC PCIe ioDrive) + + pci:v00001AEDd00001005sv0000103Csd0000178C* +- ID_MODEL_FROM_DATABASE=320GB MLC PCIe ioDrive ++ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB MLC PCIe ioDrive) + + pci:v00001AEDd00001005sv0000103Csd0000178D* +- ID_MODEL_FROM_DATABASE=320GB SLC PCIe ioDrive Duo ++ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB SLC PCIe ioDrive Duo) + + pci:v00001AEDd00001005sv0000103Csd0000178E* +- ID_MODEL_FROM_DATABASE=640GB MLC PCIe ioDrive Duo ++ ID_MODEL_FROM_DATABASE=ioDimm3 (640GB MLC PCIe ioDrive Duo) + + pci:v00001AEDd00001006* + ID_MODEL_FROM_DATABASE=ioXtreme +@@ -52548,7 +52548,7 @@ pci:v00001AF4d00001110* + ID_MODEL_FROM_DATABASE=Inter-VM shared memory + + pci:v00001AF4d00001110sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=Inter-VM shared memory (QEMU Virtual Machine) + + pci:v00001AF5* + ID_VENDOR_FROM_DATABASE=Netezza Corp. +@@ -52587,22 +52587,22 @@ pci:v00001B21d00000612* + ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller + + pci:v00001B21d00000612sv00001849sd00000612* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller (Motherboard) + + pci:v00001B21d00001042* + ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller + + pci:v00001B21d00001042sv00001043sd00008488* +- ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (P8B WS Motherboard) + + pci:v00001B21d00001042sv00001849sd00001042* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (Motherboard) + + pci:v00001B21d00001080* + ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge + + pci:v00001B21d00001080sv00001849sd00001080* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) + + pci:v00001B2C* + ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. +@@ -52617,31 +52617,31 @@ pci:v00001B36d00000002* + ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter + + pci:v00001B36d00000002sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter (QEMU Virtual Machine) + + pci:v00001B36d00000003* + ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter + + pci:v00001B36d00000003sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter (QEMU Virtual Machine) + + pci:v00001B36d00000004* + ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter + + pci:v00001B36d00000004sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter (QEMU Virtual Machine) + + pci:v00001B36d00000005* + ID_MODEL_FROM_DATABASE=QEMU PCI Test Device + + pci:v00001B36d00000005sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device (QEMU Virtual Machine) + + pci:v00001B36d00000100* + ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card + + pci:v00001B36d00000100sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card (QEMU Virtual Machine) + + pci:v00001B37* + ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB +@@ -52662,10 +52662,10 @@ pci:v00001B3Ed00001FA8* + ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X + + pci:v00001B3Ed00001FA8sv00001B3Esd000000A3* +- ID_MODEL_FROM_DATABASE=BYNET BIC2SX ++ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SX) + + pci:v00001B3Ed00001FA8sv00001B3Esd000000C3* +- ID_MODEL_FROM_DATABASE=BYNET BIC2SE ++ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SE) + + pci:v00001B40* + ID_VENDOR_FROM_DATABASE=Schooner Information Technology, Inc. +@@ -52701,7 +52701,7 @@ pci:v00001B4Bd00009130* + ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo + + pci:v00001B4Bd00009130sv00001043sd00008438* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo (P8P67 Deluxe Motherboard) + + pci:v00001B4Bd00009172* + ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller +@@ -52767,7 +52767,7 @@ pci:v00001B73d00001000* + ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller + + pci:v00001B73d00001000sv00001D5Csd00001000* +- ID_MODEL_FROM_DATABASE=Anker USB 3.0 Express Card ++ ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller (Anker USB 3.0 Express Card) + + pci:v00001B73d00001009* + ID_MODEL_FROM_DATABASE=FL1009 USB 3.0 Host Controller +@@ -53010,67 +53010,67 @@ pci:v00001FC9d00003010* + ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC + + pci:v00001FC9d00003010sv00000000sd00003002* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port XFP SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port XFP SmartNIC) + + pci:v00001FC9d00003010sv00000000sd00003004* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) + + pci:v00001FC9d00003010sv00000000sd00003008* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port CX4 SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port CX4 SmartNIC) + + pci:v00001FC9d00003014* + ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port + + pci:v00001FC9d00003014sv00000000sd00003003* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port XFP Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port XFP Low Profile SmartNIC) + + pci:v00001FC9d00003014sv00000000sd00003005* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003014sv00000000sd00003014* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003110* + ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC + + pci:v00001FC9d00003110sv00000000sd00003004* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) + + pci:v00001FC9d00003114* + ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC + + pci:v00001FC9d00003114sv00000000sd00003005* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003114sv00000000sd00003011* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003114sv00000000sd00003012* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003114sv00000000sd00003014* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003310* + ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC + + pci:v00001FC9d00003310sv00000000sd00003004* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) + + pci:v00001FC9d00003314* + ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC + + pci:v00001FC9d00003314sv00000000sd00003005* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003314sv00000000sd00003011* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003314sv00000000sd00003012* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003314sv00000000sd00003014* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) + + pci:v00001FCE* + ID_VENDOR_FROM_DATABASE=Cognio Inc. +@@ -53172,31 +53172,31 @@ pci:v00003388d00000021* + ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) + + pci:v00003388d00000021sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K CompactPCI interface bridge ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (C2K CompactPCI interface bridge) + + pci:v00003388d00000021sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CE9) + + pci:v00003388d00000021sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT7 mainboard) + + pci:v00003388d00000021sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT8 mainboard) + + pci:v00003388d00000021sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (Cx9 mainboard) + + pci:v00003388d00000021sv00004C53sd000010A0* +- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CA3/CR3 mainboard) + + pci:v00003388d00000021sv00004C53sd00003010* +- ID_MODEL_FROM_DATABASE=PPCI mezzanine (32-bit PMC) ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (32-bit PMC)) + + pci:v00003388d00000021sv00004C53sd00003011* +- ID_MODEL_FROM_DATABASE=PPCI mezzanine (64-bit PMC) ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (64-bit PMC)) + + pci:v00003388d00000021sv00004C53sd00004000* +- ID_MODEL_FROM_DATABASE=PMCCARR1 carrier board ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PMCCARR1 carrier board) + + pci:v00003388d00000022* + ID_MODEL_FROM_DATABASE=HiNT HB4 PCI-PCI Bridge (PCI6150) +@@ -53220,19 +53220,19 @@ pci:v00003388d00008011* + ID_MODEL_FROM_DATABASE=VXPro II Chipset + + pci:v00003388d00008011sv00003388sd00008011* +- ID_MODEL_FROM_DATABASE=VXPro II Chipset CPU to PCI Bridge ++ ID_MODEL_FROM_DATABASE=VXPro II Chipset (CPU to PCI Bridge) + + pci:v00003388d00008012* + ID_MODEL_FROM_DATABASE=VXPro II Chipset + + pci:v00003388d00008012sv00003388sd00008012* +- ID_MODEL_FROM_DATABASE=VXPro II Chipset PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VXPro II Chipset (PCI to ISA Bridge) + + pci:v00003388d00008013* + ID_MODEL_FROM_DATABASE=VXPro II IDE + + pci:v00003388d00008013sv00003388sd00008013* +- ID_MODEL_FROM_DATABASE=VXPro II Chipset EIDE Controller ++ ID_MODEL_FROM_DATABASE=VXPro II IDE (VXPro II Chipset EIDE Controller) + + pci:v00003388d0000A103* + ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink HD Pro +@@ -53277,13 +53277,13 @@ pci:v00003D3Dd00000002* + ID_MODEL_FROM_DATABASE=GLINT 500TX + + pci:v00003D3Dd00000002sv00000000sd00000000* +- ID_MODEL_FROM_DATABASE=GLoria L ++ ID_MODEL_FROM_DATABASE=GLINT 500TX (GLoria L) + + pci:v00003D3Dd00000003* + ID_MODEL_FROM_DATABASE=GLINT Delta + + pci:v00003D3Dd00000003sv00000000sd00000000* +- ID_MODEL_FROM_DATABASE=GLoria XL ++ ID_MODEL_FROM_DATABASE=GLINT Delta (GLoria XL) + + pci:v00003D3Dd00000004* + ID_MODEL_FROM_DATABASE=Permedia +@@ -53295,10 +53295,10 @@ pci:v00003D3Dd00000006* + ID_MODEL_FROM_DATABASE=GLINT MX + + pci:v00003D3Dd00000006sv00000000sd00000000* +- ID_MODEL_FROM_DATABASE=GLoria XL ++ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XL) + + pci:v00003D3Dd00000006sv00001048sd00000A42* +- ID_MODEL_FROM_DATABASE=GLoria XXL ++ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XXL) + + pci:v00003D3Dd00000007* + ID_MODEL_FROM_DATABASE=3D Extreme +@@ -53307,55 +53307,55 @@ pci:v00003D3Dd00000008* + ID_MODEL_FROM_DATABASE=GLINT Gamma G1 + + pci:v00003D3Dd00000008sv00001048sd00000A42* +- ID_MODEL_FROM_DATABASE=GLoria XXL ++ ID_MODEL_FROM_DATABASE=GLINT Gamma G1 (GLoria XXL) + + pci:v00003D3Dd00000009* + ID_MODEL_FROM_DATABASE=Permedia II 2D+3D + + pci:v00003D3Dd00000009sv00001040sd00000011* +- ID_MODEL_FROM_DATABASE=AccelStar II ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II) + + pci:v00003D3Dd00000009sv00001048sd00000A42* +- ID_MODEL_FROM_DATABASE=GLoria XXL ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (GLoria XXL) + + pci:v00003D3Dd00000009sv000013E9sd00001000* +- ID_MODEL_FROM_DATABASE=6221L-4U ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (6221L-4U) + + pci:v00003D3Dd00000009sv00003D3Dsd00000100* +- ID_MODEL_FROM_DATABASE=AccelStar II 3D Accelerator ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II 3D Accelerator) + + pci:v00003D3Dd00000009sv00003D3Dsd00000111* +- ID_MODEL_FROM_DATABASE=Permedia 3:16 ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia 3:16) + + pci:v00003D3Dd00000009sv00003D3Dsd00000114* +- ID_MODEL_FROM_DATABASE=Santa Ana ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana) + + pci:v00003D3Dd00000009sv00003D3Dsd00000116* +- ID_MODEL_FROM_DATABASE=Oxygen GVX1 ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen GVX1) + + pci:v00003D3Dd00000009sv00003D3Dsd00000119* +- ID_MODEL_FROM_DATABASE=Scirocco ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Scirocco) + + pci:v00003D3Dd00000009sv00003D3Dsd00000120* +- ID_MODEL_FROM_DATABASE=Santa Ana PCL ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana PCL) + + pci:v00003D3Dd00000009sv00003D3Dsd00000125* +- ID_MODEL_FROM_DATABASE=Oxygen VX1 ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen VX1) + + pci:v00003D3Dd00000009sv00003D3Dsd00000127* +- ID_MODEL_FROM_DATABASE=Permedia3 Create! ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia3 Create!) + + pci:v00003D3Dd0000000A* + ID_MODEL_FROM_DATABASE=GLINT R3 + + pci:v00003D3Dd0000000Asv00003D3Dsd00000121* +- ID_MODEL_FROM_DATABASE=Oxygen VX1 ++ ID_MODEL_FROM_DATABASE=GLINT R3 (Oxygen VX1) + + pci:v00003D3Dd0000000C* + ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] + + pci:v00003D3Dd0000000Csv00003D3Dsd00000144* +- ID_MODEL_FROM_DATABASE=Oxygen VX1-4X AGP [Permedia 4] ++ ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] (Oxygen VX1-4X AGP [Permedia 4]) + + pci:v00003D3Dd0000000D* + ID_MODEL_FROM_DATABASE=GLint R4 rev A +@@ -53472,13 +53472,13 @@ pci:v00004040d00000001* + ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface + + pci:v00004040d00000001sv0000103Csd00007047* +- ID_MODEL_FROM_DATABASE=NC510F PCIe 10-Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface (NC510F PCIe 10-Gigabit Server Adapter) + + pci:v00004040d00000002* + ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface + + pci:v00004040d00000002sv0000103Csd00007048* +- ID_MODEL_FROM_DATABASE=NC510c PCIe 10-Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface (NC510c PCIe 10-Gigabit Server Adapter) + + pci:v00004040d00000003* + ID_MODEL_FROM_DATABASE=NXB-4GCU Quad Gigabit Ethernet PCIe Adapter with 1000-BASE-T interface +@@ -53490,7 +53490,7 @@ pci:v00004040d00000005* + ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class + + pci:v00004040d00000005sv0000103Csd0000170E* +- ID_MODEL_FROM_DATABASE=NC512m Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class (NC512m Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v00004040d00000024* + ID_MODEL_FROM_DATABASE=XG Mgmt +@@ -53502,28 +53502,28 @@ pci:v00004040d00000100* + ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter + + pci:v00004040d00000100sv0000103Csd0000171B* +- ID_MODEL_FROM_DATABASE=NC522m Dual Port 10GbE Multifunction BL-c Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522m Dual Port 10GbE Multifunction BL-c Adapter) + + pci:v00004040d00000100sv0000103Csd00001740* +- ID_MODEL_FROM_DATABASE=NC375T PCI Express Quad Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375T PCI Express Quad Port Gigabit Server Adapter) + + pci:v00004040d00000100sv0000103Csd00003251* +- ID_MODEL_FROM_DATABASE=NC375i 1G w/NC524SFP 10G Module ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i 1G w/NC524SFP 10G Module) + + pci:v00004040d00000100sv0000103Csd0000705A* +- ID_MODEL_FROM_DATABASE=NC375i Integrated Quad Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i Integrated Quad Port Multifunction Gigabit Server Adapter) + + pci:v00004040d00000100sv0000103Csd0000705B* +- ID_MODEL_FROM_DATABASE=NC522SFP Dual Port 10GbE Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522SFP Dual Port 10GbE Server Adapter) + + pci:v00004040d00000100sv0000152Dsd0000896B* +- ID_MODEL_FROM_DATABASE=TG20 Dual Port 10GbE Server/Storage Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (TG20 Dual Port 10GbE Server/Storage Adapter) + + pci:v00004040d00000100sv00004040sd00000124* +- ID_MODEL_FROM_DATABASE=NX3031 Quad Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NX3031 Quad Port Gigabit Server Adapter) + + pci:v00004040d00000100sv00004040sd00000126* +- ID_MODEL_FROM_DATABASE=Dual Port SFP+ 10GbE Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (Dual Port SFP+ 10GbE Server Adapter) + + pci:v00004143* + ID_VENDOR_FROM_DATABASE=Digital Equipment Corp +@@ -53571,190 +53571,190 @@ pci:v00004444d00000016* + ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder + + pci:v00004444d00000016sv00000070sd00000003* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00000009* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00000801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00000807* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00004001* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00004009* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00004801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00004803* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00008003* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00008801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd0000C801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd0000E807* +- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (1st unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (1st unit)) + + pci:v00004444d00000016sv00000070sd0000E817* +- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (2nd unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (2nd unit)) + + pci:v00004444d00000016sv00000070sd0000FF92* +- ID_MODEL_FROM_DATABASE=WiNTV PVR-550 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WiNTV PVR-550) + + pci:v00004444d00000016sv00000270sd00000801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv0000104Dsd0000013D* +- ID_MODEL_FROM_DATABASE=ENX-26 TV Encoder ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (ENX-26 TV Encoder) + + pci:v00004444d00000016sv000010FCsd0000D038* +- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (1st unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (1st unit)) + + pci:v00004444d00000016sv000010FCsd0000D039* +- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (2nd unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (2nd unit)) + + pci:v00004444d00000016sv000012ABsd0000FFF3* +- ID_MODEL_FROM_DATABASE=MPG600 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) + + pci:v00004444d00000016sv000012ABsd0000FFFF* +- ID_MODEL_FROM_DATABASE=MPG600 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) + + pci:v00004444d00000016sv00001461sd0000C00A* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C00B* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C00C* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner)) + + pci:v00004444d00000016sv00001461sd0000C010* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C011* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C018* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C019* +- ID_MODEL_FROM_DATABASE=UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C01A* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C01B* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C030* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C031* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C032* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C033* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C034* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C035* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C03F* +- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) + + pci:v00004444d00000016sv00001461sd0000C136* +- ID_MODEL_FROM_DATABASE=M104 mini-PCI Analog TV ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M104 mini-PCI Analog TV) + + pci:v00004444d00000016sv00001461sd0000C20A* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C218* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C219* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C21A* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C21B* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C230* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C231* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C232* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C233* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C234* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C235* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C337* +- ID_MODEL_FROM_DATABASE=E106 AVerMedia AVerTV Video Capture ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (E106 AVerMedia AVerTV Video Capture) + + pci:v00004444d00000016sv00001461sd0000C439* +- ID_MODEL_FROM_DATABASE=M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner)) + + pci:v00004444d00000016sv00001461sd0000C5FF* +- ID_MODEL_FROM_DATABASE=C755 AVerTV Video Capture card (no tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C755 AVerTV Video Capture card (no tuner)) + + pci:v00004444d00000016sv00001461sd0000C6FF* +- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) + + pci:v00004444d00000016sv00001461sd0000C739* +- ID_MODEL_FROM_DATABASE=M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner)) + + pci:v00004444d00000016sv00009005sd00000092* +- ID_MODEL_FROM_DATABASE=VideOh! AVC-2010 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2010) + + pci:v00004444d00000016sv00009005sd00000093* +- ID_MODEL_FROM_DATABASE=VideOh! AVC-2410 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2410) + + pci:v00004444d00000803* + ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder + + pci:v00004444d00000803sv00000070sd00004000* +- ID_MODEL_FROM_DATABASE=WinTV PVR-350 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350) + + pci:v00004444d00000803sv00000070sd00004001* +- ID_MODEL_FROM_DATABASE=WinTV PVR-250 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-250) + + pci:v00004444d00000803sv00000070sd00004800* +- ID_MODEL_FROM_DATABASE=WinTV PVR-350 (V1) ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350 (V1)) + + pci:v00004444d00000803sv000012ABsd00000000* +- ID_MODEL_FROM_DATABASE=MPG160 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (MPG160) + + pci:v00004444d00000803sv00001461sd0000A3CE* +- ID_MODEL_FROM_DATABASE=M179 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) + + pci:v00004444d00000803sv00001461sd0000A3CF* +- ID_MODEL_FROM_DATABASE=M179 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) + + pci:v00004468* + ID_VENDOR_FROM_DATABASE=Bridgeport machines +@@ -53961,7 +53961,7 @@ pci:v00004A14d00005000* + ID_MODEL_FROM_DATABASE=NV5000SC + + pci:v00004A14d00005000sv00004A14sd00005000* +- ID_MODEL_FROM_DATABASE=RT8029-Based Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=NV5000SC (RT8029-Based Ethernet Adapter) + + pci:v00004B10* + ID_VENDOR_FROM_DATABASE=Buslogic Inc. +@@ -53976,16 +53976,16 @@ pci:v00004C53d00000000* + ID_MODEL_FROM_DATABASE=PLUSTEST device + + pci:v00004C53d00000000sv00004C53sd00003000* +- ID_MODEL_FROM_DATABASE=PLUSTEST card (PC104+) ++ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PC104+)) + + pci:v00004C53d00000000sv00004C53sd00003001* +- ID_MODEL_FROM_DATABASE=PLUSTEST card (PMC) ++ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PMC)) + + pci:v00004C53d00000001* + ID_MODEL_FROM_DATABASE=PLUSTEST-MM device + + pci:v00004C53d00000001sv00004C53sd00003002* +- ID_MODEL_FROM_DATABASE=PLUSTEST-MM card (PMC) ++ ID_MODEL_FROM_DATABASE=PLUSTEST-MM device (PLUSTEST-MM card (PMC)) + + pci:v00004CA1* + ID_VENDOR_FROM_DATABASE=Seanix Technology Inc +@@ -54222,13 +54222,13 @@ pci:v00005333d00008900* + ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] + + pci:v00005333d00008900sv00005333sd00008900* +- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX ++ ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] (86C775 Trio64V2/DX) + + pci:v00005333d00008901* + ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] + + pci:v00005333d00008901sv00005333sd00008901* +- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX, 86C785 Trio64V2/GX ++ ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] (86C775 Trio64V2/DX, 86C785 Trio64V2/GX) + + pci:v00005333d00008902* + ID_MODEL_FROM_DATABASE=Plato/PX +@@ -54240,13 +54240,13 @@ pci:v00005333d00008904* + ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] + + pci:v00005333d00008904sv00001014sd000000DB* +- ID_MODEL_FROM_DATABASE=Integrated Trio3D ++ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Integrated Trio3D) + + pci:v00005333d00008904sv00004843sd0000314A* +- ID_MODEL_FROM_DATABASE=Terminator 128/3D GLH ++ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Terminator 128/3D GLH) + + pci:v00005333d00008904sv00005333sd00008904* +- ID_MODEL_FROM_DATABASE=86C365 Trio3D AGP ++ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (86C365 Trio3D AGP) + + pci:v00005333d00008905* + ID_MODEL_FROM_DATABASE=Trio 64V+ family +@@ -54285,40 +54285,40 @@ pci:v00005333d00008A01* + ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] + + pci:v00005333d00008A01sv00000E11sd0000B032* +- ID_MODEL_FROM_DATABASE=ViRGE/GX ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/GX) + + pci:v00005333d00008A01sv000010B4sd00001617* +- ID_MODEL_FROM_DATABASE=Nitro 3D ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) + + pci:v00005333d00008A01sv000010B4sd00001717* +- ID_MODEL_FROM_DATABASE=Nitro 3D ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) + + pci:v00005333d00008A01sv00005333sd00008A01* +- ID_MODEL_FROM_DATABASE=ViRGE/DX ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/DX) + + pci:v00005333d00008A10* + ID_MODEL_FROM_DATABASE=ViRGE/GX2 + + pci:v00005333d00008A10sv00001092sd00008A10* +- ID_MODEL_FROM_DATABASE=Stealth 3D 4000 ++ ID_MODEL_FROM_DATABASE=ViRGE/GX2 (Stealth 3D 4000) + + pci:v00005333d00008A13* + ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] + + pci:v00005333d00008A13sv00005333sd00008A13* +- ID_MODEL_FROM_DATABASE=Trio3D/2X ++ ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] (Trio3D/2X) + + pci:v00005333d00008A20* + ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] + + pci:v00005333d00008A20sv00005333sd00008A20* +- ID_MODEL_FROM_DATABASE=86C391 Savage3D ++ ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] (86C391 Savage3D) + + pci:v00005333d00008A21* + ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] + + pci:v00005333d00008A21sv00005333sd00008A21* +- ID_MODEL_FROM_DATABASE=86C390 Savage3D/MV ++ ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] (86C390 Savage3D/MV) + + pci:v00005333d00008A22* + ID_MODEL_FROM_DATABASE=Savage 4 +@@ -54330,85 +54330,85 @@ pci:v00005333d00008A22sv00001033sd00008069* + ID_MODEL_FROM_DATABASE=Savage 4 + + pci:v00005333d00008A22sv00001033sd00008110* +- ID_MODEL_FROM_DATABASE=Savage 4 LT ++ ID_MODEL_FROM_DATABASE=Savage 4 (LT) + + pci:v00005333d00008A22sv0000105Dsd00000018* +- ID_MODEL_FROM_DATABASE=SR9 8Mb SDRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 8Mb SDRAM) + + pci:v00005333d00008A22sv0000105Dsd0000002A* +- ID_MODEL_FROM_DATABASE=SR9 Pro 16Mb SDRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 16Mb SDRAM) + + pci:v00005333d00008A22sv0000105Dsd0000003A* +- ID_MODEL_FROM_DATABASE=SR9 Pro 32Mb SDRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 32Mb SDRAM) + + pci:v00005333d00008A22sv0000105Dsd0000092F* +- ID_MODEL_FROM_DATABASE=SR9 Pro+ 16Mb SGRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro+ 16Mb SGRAM) + + pci:v00005333d00008A22sv00001092sd00004207* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004800* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004807* +- ID_MODEL_FROM_DATABASE=SpeedStar A90 ++ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A90) + + pci:v00005333d00008A22sv00001092sd00004808* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004809* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd0000480E* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004904* +- ID_MODEL_FROM_DATABASE=Stealth III S520 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S520) + + pci:v00005333d00008A22sv00001092sd00004905* +- ID_MODEL_FROM_DATABASE=SpeedStar A200 ++ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A200) + + pci:v00005333d00008A22sv00001092sd00004A09* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004A0B* +- ID_MODEL_FROM_DATABASE=Stealth III S540 Xtreme ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540 Xtreme) + + pci:v00005333d00008A22sv00001092sd00004A0F* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004E01* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001102sd0000101D* +- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 ++ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) + + pci:v00005333d00008A22sv00001102sd0000101E* +- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 ++ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) + + pci:v00005333d00008A22sv00005333sd00008100* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 100 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 100) + + pci:v00005333d00008A22sv00005333sd00008110* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 110 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 110) + + pci:v00005333d00008A22sv00005333sd00008125* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 125 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 125) + + pci:v00005333d00008A22sv00005333sd00008143* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 143 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 143) + + pci:v00005333d00008A22sv00005333sd00008A22* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4) + + pci:v00005333d00008A22sv00005333sd00008A2E* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 32bit ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 32bit) + + pci:v00005333d00008A22sv00005333sd00009125* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 125 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 125) + + pci:v00005333d00008A22sv00005333sd00009143* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 143 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 143) + + pci:v00005333d00008A23* + ID_MODEL_FROM_DATABASE=Savage 4 +@@ -54417,7 +54417,7 @@ pci:v00005333d00008A25* + ID_MODEL_FROM_DATABASE=ProSavage PM133 + + pci:v00005333d00008A25sv00000303sd00000303* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=ProSavage PM133 (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00005333d00008A26* + ID_MODEL_FROM_DATABASE=ProSavage KM133 +@@ -54447,16 +54447,16 @@ pci:v00005333d00008C12* + ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] + + pci:v00005333d00008C12sv00001014sd0000017F* +- ID_MODEL_FROM_DATABASE=ThinkPad T20/T22 ++ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (ThinkPad T20/T22) + + pci:v00005333d00008C12sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=86C584 SuperSavage/IXC Toshiba ++ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (86C584 SuperSavage/IXC Toshiba) + + pci:v00005333d00008C13* + ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] + + pci:v00005333d00008C13sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] (Magnia Z310) + + pci:v00005333d00008C22* + ID_MODEL_FROM_DATABASE=SuperSavage MX/128 +@@ -54483,7 +54483,7 @@ pci:v00005333d00008C2E* + ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR + + pci:v00005333d00008C2Esv00001014sd000001FC* +- ID_MODEL_FROM_DATABASE=ThinkPad T23 ++ ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR (ThinkPad T23) + + pci:v00005333d00008C2F* + ID_MODEL_FROM_DATABASE=SuperSavage IX/C DDR +@@ -54513,7 +54513,7 @@ pci:v00005333d00008E48* + ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] + + pci:v00005333d00008E48sv00005333sd00000130* +- ID_MODEL_FROM_DATABASE=Chrome S27 256M DDR2 ++ ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] (Chrome S27 256M DDR2) + + pci:v00005333d00009043* + ID_MODEL_FROM_DATABASE=Chrome 430 GT +@@ -54528,28 +54528,28 @@ pci:v00005333d00009102* + ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] + + pci:v00005333d00009102sv00001092sd00005932* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005934* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005952* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005954* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A35* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A37* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A55* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A57* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d0000CA00* + ID_MODEL_FROM_DATABASE=SonicVibes +@@ -54774,13 +54774,13 @@ pci:v00008086d00000044* + ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller + + pci:v00008086d00000044sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Aspire 7740G) + + pci:v00008086d00000044sv00001025sd00000487* +- ID_MODEL_FROM_DATABASE=TravelMate 5742 ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) + + pci:v00008086d00000044sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) + + pci:v00008086d00000045* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port +@@ -54789,7 +54789,7 @@ pci:v00008086d00000046* + ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller + + pci:v00008086d00000046sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) + + pci:v00008086d00000047* + ID_MODEL_FROM_DATABASE=Core Processor Secondary PCI Express Root Port +@@ -54816,202 +54816,202 @@ pci:v00008086d00000082* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] + + pci:v00008086d00000082sv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) + + pci:v00008086d00000082sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) + + pci:v00008086d00000082sv00008086sd00001307* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 BG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 BG) + + pci:v00008086d00000082sv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) + + pci:v00008086d00000082sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) + + pci:v00008086d00000083* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] + + pci:v00008086d00000083sv00008086sd00001205* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001206* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000083sv00008086sd00001225* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001226* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000083sv00008086sd00001305* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000083sv00008086sd00001325* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000084* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] + + pci:v00008086d00000084sv00008086sd00001215* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000084sv00008086sd00001216* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000084sv00008086sd00001315* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000084sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000085* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] + + pci:v00008086d00000085sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) + + pci:v00008086d00000085sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) + + pci:v00008086d00000087* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] + + pci:v00008086d00000087sv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) + + pci:v00008086d00000087sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) + + pci:v00008086d00000087sv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) + + pci:v00008086d00000087sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) + + pci:v00008086d00000089* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] + + pci:v00008086d00000089sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) + + pci:v00008086d00000089sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) + + pci:v00008086d0000008A* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] + + pci:v00008086d0000008Asv00008086sd00005305* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) + + pci:v00008086d0000008Asv00008086sd00005307* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) + + pci:v00008086d0000008Asv00008086sd00005325* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) + + pci:v00008086d0000008Asv00008086sd00005327* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) + + pci:v00008086d0000008B* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] + + pci:v00008086d0000008Bsv00008086sd00005315* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) + + pci:v00008086d0000008Bsv00008086sd00005317* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) + + pci:v00008086d00000090* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] + + pci:v00008086d00000090sv00008086sd00005211* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) + + pci:v00008086d00000090sv00008086sd00005215* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) + + pci:v00008086d00000090sv00008086sd00005216* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) + + pci:v00008086d00000091* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] + + pci:v00008086d00000091sv00008086sd00005201* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) + + pci:v00008086d00000091sv00008086sd00005205* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) + + pci:v00008086d00000091sv00008086sd00005206* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) + + pci:v00008086d00000091sv00008086sd00005207* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BG) + + pci:v00008086d00000091sv00008086sd00005221* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) + + pci:v00008086d00000091sv00008086sd00005225* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) + + pci:v00008086d00000091sv00008086sd00005226* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) + + pci:v00008086d00000100* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller + + pci:v00008086d00000100sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (XPS 8300) + + pci:v00008086d00000100sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (P8P67/P8H67 Series Motherboard) + + pci:v00008086d00000101* + ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port + + pci:v00008086d00000101sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (Vostro 3350) + + pci:v00008086d00000101sv0000106Bsd000000DC* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00000102* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller + + pci:v00008086d00000102sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (XPS 8300) + + pci:v00008086d00000102sv00001043sd00000102* +- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (P8H67 Series Motherboard) + + pci:v00008086d00000104* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller + + pci:v00008086d00000104sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Precision M4600) + + pci:v00008086d00000104sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3350) + + pci:v00008086d00000104sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3750) + + pci:v00008086d00000104sv0000106Bsd000000DC* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00000105* + ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port + + pci:v00008086d00000105sv0000106Bsd000000DC* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00000106* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller +@@ -55044,7 +55044,7 @@ pci:v00008086d00000116* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller + + pci:v00008086d00000116sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3750) + + pci:v00008086d00000122* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller +@@ -55053,64 +55053,64 @@ pci:v00008086d00000126* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller + + pci:v00008086d00000126sv00001028sd000004CC* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3350) + + pci:v00008086d00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller + + pci:v00008086d00000150sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) + + pci:v00008086d00000150sv00001849sd00000150* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) + + pci:v00008086d00000151* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + + pci:v00008086d00000151sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (N56VZ) + + pci:v00008086d00000151sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) + + pci:v00008086d00000151sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8H77-I Motherboard) + + pci:v00008086d00000151sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) + + pci:v00008086d00000152* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + + pci:v00008086d00000152sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8H77-I Motherboard) + + pci:v00008086d00000153* + ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem + + pci:v00008086d00000153sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem (Zenbook Prime UX31A) + + pci:v00008086d00000154* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller + + pci:v00008086d00000154sv00001025sd00000813* +- ID_MODEL_FROM_DATABASE=Aspire R7-571 ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Aspire R7-571) + + pci:v00008086d00000154sv0000103Csd000017F6* +- ID_MODEL_FROM_DATABASE=ProBook 4540s ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (ProBook 4540s) + + pci:v00008086d00000154sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (N56VZ) + + pci:v00008086d00000154sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Zenbook Prime UX31A) + + pci:v00008086d00000155* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + + pci:v00008086d00000155sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) + + pci:v00008086d00000156* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller +@@ -55119,10 +55119,10 @@ pci:v00008086d00000158* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller + + pci:v00008086d00000158sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (P8 series motherboard) + + pci:v00008086d00000158sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (Server Board S1200BTS) + + pci:v00008086d00000159* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port +@@ -55137,7 +55137,7 @@ pci:v00008086d0000015D* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + + pci:v00008086d0000015Dsv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) + + pci:v00008086d0000015E* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller +@@ -55146,22 +55146,22 @@ pci:v00008086d00000162* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + + pci:v00008086d00000162sv00001849sd00000162* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) + + pci:v00008086d00000166* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller + + pci:v00008086d00000166sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (Zenbook Prime UX31A) + + pci:v00008086d00000166sv00001043sd00002103* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (N56VZ) + + pci:v00008086d0000016A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + + pci:v00008086d0000016Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8B WS Motherboard) + + pci:v00008086d00000172* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller +@@ -55179,19 +55179,19 @@ pci:v00008086d00000326* + ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A + + pci:v00008086d00000326sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (ProLiant DL140 G2) + + pci:v00008086d00000326sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (CR11/VR11 Single Board Computer) + + pci:v00008086d00000327* + ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B + + pci:v00008086d00000327sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (ProLiant DL140 G2) + + pci:v00008086d00000327sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (CR11/VR11 Single Board Computer) + + pci:v00008086d00000329* + ID_MODEL_FROM_DATABASE=6700PXH PCI Express-to-PCI Bridge A +@@ -55260,7 +55260,7 @@ pci:v00008086d00000416* + ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller + + pci:v00008086d00000416sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller (ThinkPad T440p) + + pci:v00008086d0000041A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller +@@ -55365,16 +55365,16 @@ pci:v00008086d00000600* + ID_MODEL_FROM_DATABASE=RAID Controller + + pci:v00008086d00000600sv00008086sd00000136* +- ID_MODEL_FROM_DATABASE=SRCU31L ++ ID_MODEL_FROM_DATABASE=RAID Controller (SRCU31L) + + pci:v00008086d00000600sv00008086sd000001AF* +- ID_MODEL_FROM_DATABASE=SRCZCR ++ ID_MODEL_FROM_DATABASE=RAID Controller (SRCZCR) + + pci:v00008086d00000600sv00008086sd000001C1* +- ID_MODEL_FROM_DATABASE=ICP Vortex GDT8546RZ ++ ID_MODEL_FROM_DATABASE=RAID Controller (ICP Vortex GDT8546RZ) + + pci:v00008086d00000600sv00008086sd000001F7* +- ID_MODEL_FROM_DATABASE=SCRU32 ++ ID_MODEL_FROM_DATABASE=RAID Controller (SCRU32) + + pci:v00008086d0000061F* + ID_MODEL_FROM_DATABASE=80303 I/O Processor +@@ -55467,301 +55467,301 @@ pci:v00008086d00000885* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 + + pci:v00008086d00000885sv00008086sd00001305* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) + + pci:v00008086d00000885sv00008086sd00001307* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) + + pci:v00008086d00000885sv00008086sd00001325* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) + + pci:v00008086d00000885sv00008086sd00001327* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) + + pci:v00008086d00000886* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 + + pci:v00008086d00000886sv00008086sd00001315* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) + + pci:v00008086d00000886sv00008086sd00001317* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) + + pci:v00008086d00000887* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 + + pci:v00008086d00000887sv00008086sd00004062* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) + + pci:v00008086d00000887sv00008086sd00004462* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) + + pci:v00008086d00000888* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 + + pci:v00008086d00000888sv00008086sd00004262* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) + + pci:v00008086d0000088E* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 + + pci:v00008086d0000088Esv00008086sd00004060* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) + + pci:v00008086d0000088Esv00008086sd00004460* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) + + pci:v00008086d0000088F* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 + + pci:v00008086d0000088Fsv00008086sd00004260* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) + + pci:v00008086d00000890* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 + + pci:v00008086d00000890sv00008086sd00004022* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000890sv00008086sd00004422* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000890sv00008086sd00004822* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000891* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 + + pci:v00008086d00000891sv00008086sd00004222* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000892* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 + + pci:v00008086d00000892sv00008086sd00000062* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) + + pci:v00008086d00000892sv00008086sd00000462* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) + + pci:v00008086d00000893* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 + + pci:v00008086d00000893sv00008086sd00000262* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) + + pci:v00008086d00000894* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 + + pci:v00008086d00000894sv00008086sd00000022* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000894sv00008086sd00000422* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000894sv00008086sd00000822* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000895* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 + + pci:v00008086d00000895sv00008086sd00000222* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000896* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 + + pci:v00008086d00000896sv00008086sd00005005* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) + + pci:v00008086d00000896sv00008086sd00005007* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) + + pci:v00008086d00000896sv00008086sd00005025* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) + + pci:v00008086d00000896sv00008086sd00005027* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) + + pci:v00008086d00000897* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 + + pci:v00008086d00000897sv00008086sd00005015* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) + + pci:v00008086d00000897sv00008086sd00005017* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) + + pci:v00008086d000008AE* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 + + pci:v00008086d000008AEsv00008086sd00001005* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) + + pci:v00008086d000008AEsv00008086sd00001007* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) + + pci:v00008086d000008AEsv00008086sd00001025* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) + + pci:v00008086d000008AEsv00008086sd00001027* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) + + pci:v00008086d000008AF* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 + + pci:v00008086d000008AFsv00008086sd00001015* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) + + pci:v00008086d000008AFsv00008086sd00001017* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) + + pci:v00008086d000008B1* + ID_MODEL_FROM_DATABASE=Wireless 7260 + + pci:v00008086d000008B1sv00008086sd00004060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004062* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004160* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004162* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004460* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004462* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000486E* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004870* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004A6C* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004A6E* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004A70* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000C020* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C062* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000C160* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C162* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000C420* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C460* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C462* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B2* + ID_MODEL_FROM_DATABASE=Wireless 7260 + + pci:v00008086d000008B2sv00008086sd00004220* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd00004260* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd00004262* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd00004270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B2sv00008086sd0000C220* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd0000C260* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd0000C262* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd0000C270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B3* + ID_MODEL_FROM_DATABASE=Wireless 3160 + + pci:v00008086d000008B3sv00008086sd00000060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-N 3160) + + pci:v00008086d000008B3sv00008086sd00000062* +- ID_MODEL_FROM_DATABASE=Wireless-N 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless-N 3160) + + pci:v00008086d000008B3sv00008086sd00000070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B3sv00008086sd00000170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B3sv00008086sd00000470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B3sv00008086sd00008060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless N-3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless N-3160) + + pci:v00008086d000008B3sv00008086sd00008062* +- ID_MODEL_FROM_DATABASE=Wireless N-3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless N-3160) + + pci:v00008086d000008B3sv00008086sd00008070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008B3sv00008086sd00008170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008B3sv00008086sd00008470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008B4* + ID_MODEL_FROM_DATABASE=Wireless 3160 + + pci:v00008086d000008B4sv00008086sd00000270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B4sv00008086sd00008270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008CF* + ID_MODEL_FROM_DATABASE=Atom Processor Z2760 Integrated Graphics Controller +@@ -55770,106 +55770,106 @@ pci:v00008086d0000095A* + ID_MODEL_FROM_DATABASE=Wireless 7265 + + pci:v00008086d0000095Asv00008086sd00001010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005000* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005002* +- ID_MODEL_FROM_DATABASE=Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd0000500A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005012* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005020* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd0000502A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005090* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005100* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd0000510A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005110* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005112* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005190* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005400* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005410* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005420* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005490* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005590* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009012* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009110* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009112* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009210* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009310* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009410* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009510* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095B* + ID_MODEL_FROM_DATABASE=Wireless 7265 + + pci:v00008086d0000095Bsv00008086sd00005200* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Bsv00008086sd00005202* +- ID_MODEL_FROM_DATABASE=Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) + + pci:v00008086d0000095Bsv00008086sd00005210* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Bsv00008086sd00005290* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Bsv00008086sd00005302* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Bsv00008086sd00005310* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d00000960* + ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor/Bridge +@@ -55884,7 +55884,7 @@ pci:v00008086d00000A04* + ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller + + pci:v00008086d00000A04sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller (ThinkPad X240) + + pci:v00008086d00000A06* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller +@@ -55893,13 +55893,13 @@ pci:v00008086d00000A0C* + ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller + + pci:v00008086d00000A0Csv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller (ThinkPad X240) + + pci:v00008086d00000A16* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + + pci:v00008086d00000A16sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller (ThinkPad X240) + + pci:v00008086d00000A22* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller +@@ -55917,7 +55917,7 @@ pci:v00008086d00000BE1* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller + + pci:v00008086d00000BE1sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller (D270S/D250S Motherboard) + + pci:v00008086d00000BE2* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller +@@ -55980,7 +55980,7 @@ pci:v00008086d00000BF5* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller + + pci:v00008086d00000BF5sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller (D270S/D250S Motherboard) + + pci:v00008086d00000BF6* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller +@@ -55998,10 +55998,10 @@ pci:v00008086d00000C04* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller + + pci:v00008086d00000C04sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ZBook 15) + + pci:v00008086d00000C04sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ThinkPad T440p) + + pci:v00008086d00000C05* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller +@@ -56016,7 +56016,7 @@ pci:v00008086d00000C0C* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller + + pci:v00008086d00000C0Csv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (ThinkPad T440p) + + pci:v00008086d00000C46* + ID_MODEL_FROM_DATABASE=Atom Processor S1200 PCI Express Root Port 1 +@@ -56787,34 +56787,34 @@ pci:v00008086d00001000* + ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001000sv00000E11sd0000B0DF* +- ID_MODEL_FROM_DATABASE=NC6132 Gigabit Ethernet Adapter (1000-SX) ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6132 Gigabit Ethernet Adapter (1000-SX)) + + pci:v00008086d00001000sv00000E11sd0000B0E0* +- ID_MODEL_FROM_DATABASE=NC6133 Gigabit Ethernet Adapter (1000-LX) ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6133 Gigabit Ethernet Adapter (1000-LX)) + + pci:v00008086d00001000sv00000E11sd0000B123* +- ID_MODEL_FROM_DATABASE=NC6134 Gigabit Ethernet Adapter (1000-LX) ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6134 Gigabit Ethernet Adapter (1000-LX)) + + pci:v00008086d00001000sv00001014sd00000119* +- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) + + pci:v00008086d00001000sv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (PRO/1000 Gigabit Server Adapter) + + pci:v00008086d00001001* + ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001001sv00000E11sd0000004A* +- ID_MODEL_FROM_DATABASE=NC6136 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (NC6136 Gigabit Server Adapter) + + pci:v00008086d00001001sv00001014sd000001EA* +- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) + + pci:v00008086d00001001sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) + + pci:v00008086d00001001sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) + + pci:v00008086d00001002* + ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II +@@ -56823,64 +56823,64 @@ pci:v00008086d00001002sv00008086sd0000200E* + ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II + + pci:v00008086d00001002sv00008086sd00002013* +- ID_MODEL_FROM_DATABASE=Pro 100 SR Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 SR Mobile Combo Adapter) + + pci:v00008086d00001002sv00008086sd00002017* +- ID_MODEL_FROM_DATABASE=Pro 100 S Combo Mobile Adapter ++ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 S Combo Mobile Adapter) + + pci:v00008086d00001004* + ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001004sv00000E11sd00000049* +- ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7132 Gigabit Upgrade Module) + + pci:v00008086d00001004sv00000E11sd0000B1A4* +- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7131 Gigabit Server Adapter) + + pci:v00008086d00001004sv00001014sd000010F2* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (Gigabit Ethernet Server Adapter) + + pci:v00008086d00001004sv00008086sd00001004* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) + + pci:v00008086d00001004sv00008086sd00002004* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) + + pci:v00008086d00001008* + ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001008sv00001014sd00000269* +- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) + + pci:v00008086d00001008sv00001028sd0000011B* +- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PowerEdge 1650/2550) + + pci:v00008086d00001008sv00001028sd0000011C* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) + + pci:v00008086d00001008sv00008086sd00001107* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) + + pci:v00008086d00001008sv00008086sd00002107* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) + + pci:v00008086d00001008sv00008086sd00002110* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Desktop Adapter) + + pci:v00008086d00001008sv00008086sd00003108* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) + + pci:v00008086d00001009* + ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001009sv00001014sd00000268* +- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) + + pci:v00008086d00001009sv00008086sd00001109* +- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) + + pci:v00008086d00001009sv00008086sd00002109* +- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) + + pci:v00008086d0000100A* + ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller +@@ -56889,286 +56889,286 @@ pci:v00008086d0000100C* + ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000100Csv00008086sd00001112* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) + + pci:v00008086d0000100Csv00008086sd00002112* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) + + pci:v00008086d0000100D* + ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) + + pci:v00008086d0000100Dsv00001028sd00000123* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (PRO/1000 XT Network Connection) + + pci:v00008086d0000100Dsv00001079sd0000891F* +- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) + + pci:v00008086d0000100Dsv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (CT8 mainboard) + + pci:v00008086d0000100Dsv00008086sd0000110D* +- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) + + pci:v00008086d0000100E* + ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller + + pci:v00008086d0000100Esv00001014sd00000265* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Esv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Esv00001014sd0000026A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Esv00001028sd0000002E* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX260) + + pci:v00008086d0000100Esv00001028sd00000134* +- ID_MODEL_FROM_DATABASE=PowerEdge 600SC ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PowerEdge 600SC) + + pci:v00008086d0000100Esv00001028sd00000151* +- ID_MODEL_FROM_DATABASE=Optiplex GX270 ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX270) + + pci:v00008086d0000100Esv0000107Bsd00008920* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d0000100Esv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (QEMU Virtual Machine) + + pci:v00008086d0000100Esv00008086sd0000001E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d0000100Esv00008086sd0000002E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d0000100Esv00008086sd00001376* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000100Esv00008086sd00001476* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000100F* + ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000100Fsv00001014sd00000269* +- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) + + pci:v00008086d0000100Fsv00001014sd0000028E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Fsv000015ADsd00000750* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Single Port Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter) + + pci:v00008086d0000100Fsv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Fsv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Server Adapter) + + pci:v00008086d00001010* + ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001010sv00000E11sd000000DB* +- ID_MODEL_FROM_DATABASE=NC7170 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (NC7170 Gigabit Server Adapter) + + pci:v00008086d00001010sv00001014sd0000027C* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Adapter) + + pci:v00008086d00001010sv000015ADsd00000760* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Adapter) + + pci:v00008086d00001010sv000018FBsd00007872* +- ID_MODEL_FROM_DATABASE=RESlink-X ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (RESlink-X) + + pci:v00008086d00001010sv00001FC1sd00000026* +- ID_MODEL_FROM_DATABASE=Niagara 2260 Bypass Card ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (Niagara 2260 Bypass Card) + + pci:v00008086d00001010sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CT8 mainboard) + + pci:v00008086d00001010sv00004C53sd000010A0* +- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CA3/CR3 mainboard) + + pci:v00008086d00001010sv00008086sd00001011* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d00001010sv00008086sd00001012* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d00001010sv00008086sd0000101A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Connection) + + pci:v00008086d00001010sv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (SE7501HG2 Mainboard) + + pci:v00008086d00001011* + ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001011sv00001014sd00000268* +- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) + + pci:v00008086d00001011sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter) + + pci:v00008086d00001011sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter (LX) ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter (LX)) + + pci:v00008086d00001012* + ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001012sv00000E11sd000000DC* +- ID_MODEL_FROM_DATABASE=NC6170 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (NC6170 Gigabit Server Adapter) + + pci:v00008086d00001012sv00008086sd00001012* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Dual Port Server Adapter) + + pci:v00008086d00001013* + ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller + + pci:v00008086d00001013sv00008086sd00000013* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001013sv00008086sd00001013* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001013sv00008086sd00001113* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d00001014* + ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller + + pci:v00008086d00001014sv00008086sd00000014* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Connection ++ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Desktop Connection) + + pci:v00008086d00001014sv00008086sd00001014* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001015* + ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) + + pci:v00008086d00001015sv00008086sd00001015* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001016* + ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) + + pci:v00008086d00001016sv00001014sd0000052C* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001016sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001016sv00008086sd00001016* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001017* + ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller + + pci:v00008086d00001017sv00008086sd00001017* +- ID_MODEL_FROM_DATABASE=PR0/1000 MT Desktop Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (PR0/1000 MT Desktop Connection) + + pci:v00008086d00001018* + ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller + + pci:v00008086d00001018sv00008086sd00001018* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001019* + ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller + + pci:v00008086d00001019sv00001458sd00001019* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d00001019sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Intel Gigabit Ethernet (Kenai II) ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel Gigabit Ethernet (Kenai II)) + + pci:v00008086d00001019sv00008086sd00001019* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Desktop Connection ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (PRO/1000 CT Desktop Connection) + + pci:v00008086d00001019sv00008086sd0000301F* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D865PERL mainboard) + + pci:v00008086d00001019sv00008086sd00003025* +- ID_MODEL_FROM_DATABASE=D875PBZ motherboard ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D875PBZ motherboard) + + pci:v00008086d00001019sv00008086sd0000302C* +- ID_MODEL_FROM_DATABASE=Intel 82865G Mainboard (D865GBF) ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel 82865G Mainboard (D865GBF)) + + pci:v00008086d00001019sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (S875WP1-E mainboard) + + pci:v00008086d0000101A* + ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) + + pci:v00008086d0000101Asv00008086sd0000101A* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) (PRO/1000 CT Mobile Connection) + + pci:v00008086d0000101D* + ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller + + pci:v00008086d0000101Dsv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (PRO/1000 MT Quad Port Server Adapter) + + pci:v00008086d0000101E* + ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) + + pci:v00008086d0000101Esv00001014sd00000549* +- ID_MODEL_FROM_DATABASE=Thinkpad ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (Thinkpad) + + pci:v00008086d0000101Esv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d0000101Esv00008086sd0000101E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001026* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + + pci:v00008086d00001026sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d00001026sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision 470) + + pci:v00008086d00001026sv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) + + pci:v00008086d00001026sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) + + pci:v00008086d00001026sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) + + pci:v00008086d00001026sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 GT Server Adapter) + + pci:v00008086d00001026sv00008086sd00001026* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) + + pci:v00008086d00001027* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + + pci:v00008086d00001027sv0000103Csd00003103* +- ID_MODEL_FROM_DATABASE=NC310F PCI-X Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (NC310F PCI-X Gigabit Server Adapter) + + pci:v00008086d00001027sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) + + pci:v00008086d00001027sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) + + pci:v00008086d00001027sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) + + pci:v00008086d00001027sv00008086sd00001027* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter) + + pci:v00008086d00001028* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + + pci:v00008086d00001028sv00008086sd00001028* +- ID_MODEL_FROM_DATABASE=PRO/1000 MB Server Connection ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MB Server Connection) + + pci:v00008086d00001029* + ID_MODEL_FROM_DATABASE=82559 Ethernet Controller +@@ -57180,31 +57180,31 @@ pci:v00008086d00001031* + ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller + + pci:v00008086d00001031sv00001014sd00000209* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (ThinkPad A/T/X Series) + + pci:v00008086d00001031sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00001031sv0000104Dsd0000813C* +- ID_MODEL_FROM_DATABASE=Vaio PCG-GRV616G ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GRV616G) + + pci:v00008086d00001031sv0000107Bsd00005350* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C000* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C003* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (vpr Matrix 170B4) + + pci:v00008086d00001032* + ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE Ethernet Controller +@@ -57228,16 +57228,16 @@ pci:v00008086d00001038* + ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller + + pci:v00008086d00001038sv00000E11sd00000098* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller (Evo N600c) + + pci:v00008086d00001039* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller + + pci:v00008086d00001039sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (NetVista A30p) + + pci:v00008086d00001039sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH1 ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (PC8 onboard ethernet ETH1) + + pci:v00008086d0000103A* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (CNR) Ethernet Controller +@@ -57252,13 +57252,13 @@ pci:v00008086d0000103D* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller + + pci:v00008086d0000103Dsv00001014sd00000522* +- ID_MODEL_FROM_DATABASE=ThinkPad R40 ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (ThinkPad R40) + + pci:v00008086d0000103Dsv00001028sd00002002* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (Latitude D500) + + pci:v00008086d0000103Dsv00008086sd0000103D* +- ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (82562EZ 10/100 Ethernet Controller) + + pci:v00008086d0000103E* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VM (MOB) Ethernet Controller +@@ -57267,43 +57267,43 @@ pci:v00008086d00001040* + ID_MODEL_FROM_DATABASE=536EP Data Fax Modem + + pci:v00008086d00001040sv000016BEsd00001040* +- ID_MODEL_FROM_DATABASE=V.9X DSP Data Fax Modem ++ ID_MODEL_FROM_DATABASE=536EP Data Fax Modem (V.9X DSP Data Fax Modem) + + pci:v00008086d00001043* + ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter + + pci:v00008086d00001043sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (tc1100 tablet) + + pci:v00008086d00001043sv00008086sd00002522* +- ID_MODEL_FROM_DATABASE=Samsung X10/P30 integrated WLAN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Samsung X10/P30 integrated WLAN) + + pci:v00008086d00001043sv00008086sd00002527* +- ID_MODEL_FROM_DATABASE=MIM2000/Centrino ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (MIM2000/Centrino) + + pci:v00008086d00001043sv00008086sd00002561* +- ID_MODEL_FROM_DATABASE=Dell Latitude D800 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Dell Latitude D800) + + pci:v00008086d00001043sv00008086sd00002581* +- ID_MODEL_FROM_DATABASE=Toshiba Satellite M10 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Toshiba Satellite M10) + + pci:v00008086d00001048* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d00001048sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001048sv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001049* + ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection + + pci:v00008086d00001049sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (Compaq 6910p) + + pci:v00008086d00001049sv000017AAsd000020B9* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (ThinkPad T61/R61) + + pci:v00008086d0000104A* + ID_MODEL_FROM_DATABASE=82566DM Gigabit Network Connection +@@ -57321,22 +57321,22 @@ pci:v00008086d00001050* + ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller + + pci:v00008086d00001050sv00001028sd0000019D* +- ID_MODEL_FROM_DATABASE=Dimension 3000 ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Dimension 3000) + + pci:v00008086d00001050sv00001462sd0000728C* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d00001050sv00001462sd0000758C* +- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (MS-6758 (875P Neo)) + + pci:v00008086d00001050sv00008086sd00003020* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (D865PERL mainboard) + + pci:v00008086d00001050sv00008086sd0000302F* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Desktop Board D865GBF) + + pci:v00008086d00001050sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (S875WP1-E mainboard) + + pci:v00008086d00001051* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) integrated LAN Controller +@@ -57369,70 +57369,70 @@ pci:v00008086d0000105E* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d0000105Esv0000103Csd00007044* +- ID_MODEL_FROM_DATABASE=NC360T PCI Express Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (NC360T PCI Express Dual Port Gigabit Server Adapter) + + pci:v00008086d0000105Esv0000103Csd0000704E* +- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T (PCIe) [AD337A] ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-T (PCIe) [AD337A]) + + pci:v00008086d0000105Esv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d0000105Esv00001775sd00006003* +- ID_MODEL_FROM_DATABASE=Telum GE-QT ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Telum GE-QT) + + pci:v00008086d0000105Esv000018DFsd00001214* +- ID_MODEL_FROM_DATABASE=2x 1GbE, PCIe x1, dual Intel 82571EB chips ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (2x 1GbE, PCIe x1, dual Intel 82571EB chips) + + pci:v00008086d0000105Esv00008086sd0000005E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Connection) + + pci:v00008086d0000105Esv00008086sd0000105E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Network Connection) + + pci:v00008086d0000105Esv00008086sd000010D5* +- ID_MODEL_FROM_DATABASE=82571PT Gigabit PT Quad Port Server ExpressModule ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (82571PT Gigabit PT Quad Port Server ExpressModule) + + pci:v00008086d0000105Esv00008086sd0000115E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) + + pci:v00008086d0000105Esv00008086sd0000125E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) + + pci:v00008086d0000105Esv00008086sd0000135E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) + + pci:v00008086d0000105F* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d0000105Fsv0000103Csd0000704F* +- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-SX (PCIe) [AD338A] ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-SX (PCIe) [AD338A]) + + pci:v00008086d0000105Fsv00008086sd0000005A* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d0000105Fsv00008086sd0000115F* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d0000105Fsv00008086sd0000125F* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d0000105Fsv00008086sd0000135F* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d00001060* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d00001060sv00008086sd00000060* +- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) + + pci:v00008086d00001060sv00008086sd00001060* +- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) + + pci:v00008086d00001064* + ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller + + pci:v00008086d00001064sv00001043sd000080F8* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller (P5GD1-VW Mainboard) + + pci:v00008086d00001065* + ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller +@@ -57459,148 +57459,148 @@ pci:v00008086d00001075* + ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller + + pci:v00008086d00001075sv00001028sd00000165* +- ID_MODEL_FROM_DATABASE=PowerEdge 750 ++ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PowerEdge 750) + + pci:v00008086d00001075sv00008086sd00000075* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection ++ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) + + pci:v00008086d00001075sv00008086sd00001075* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection ++ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) + + pci:v00008086d00001076* + ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller + + pci:v00008086d00001076sv00001028sd00000165* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00001028sd0000106D* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00008086sd00000076* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00008086sd00001076* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00008086sd00001176* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d00001076sv00008086sd00001276* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Adapter ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Adapter) + + pci:v00008086d00001077* + ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller + + pci:v00008086d00001077sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001077sv00008086sd00000077* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001077sv00008086sd00001077* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001078* + ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller + + pci:v00008086d00001078sv00008086sd00001078* +- ID_MODEL_FROM_DATABASE=82541ER-based Network Connection ++ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (82541ER-based Network Connection) + + pci:v00008086d00001079* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d00001079sv0000103Csd000012A6* +- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T [A9900A] ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000Base-T [A9900A]) + + pci:v00008086d00001079sv0000103Csd000012CF* +- ID_MODEL_FROM_DATABASE=Core Dual Port 1000Base-T [AB352A] ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Core Dual Port 1000Base-T [AB352A]) + + pci:v00008086d00001079sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (V5D Single Board Computer Gigabit Ethernet) + + pci:v00008086d00001079sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CE9) + + pci:v00008086d00001079sv00001FC1sd00000027* +- ID_MODEL_FROM_DATABASE=Niagara 2261 Failover NIC ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Niagara 2261 Failover NIC) + + pci:v00008086d00001079sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d00001079sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CL9 mainboard) + + pci:v00008086d00001079sv00008086sd00000079* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) + + pci:v00008086d00001079sv00008086sd00001079* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) + + pci:v00008086d00001079sv00008086sd00001179* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d00001079sv00008086sd0000117A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d0000107A* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d0000107Asv0000103Csd000012A8* +- ID_MODEL_FROM_DATABASE=Dual Port 1000base-SX [A9899A] ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000base-SX [A9899A]) + + pci:v00008086d0000107Asv00008086sd0000107A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) + + pci:v00008086d0000107Asv00008086sd0000127A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) + + pci:v00008086d0000107B* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d0000107Bsv00008086sd0000007B* +- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) + + pci:v00008086d0000107Bsv00008086sd0000107B* +- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) + + pci:v00008086d0000107C* + ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller + + pci:v00008086d0000107Csv00008086sd00001376* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000107Csv00008086sd00001476* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000107D* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000107Dsv00008086sd00001082* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) + + pci:v00008086d0000107Dsv00008086sd00001084* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) + + pci:v00008086d0000107Dsv00008086sd00001092* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) + + pci:v00008086d0000107E* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) + + pci:v00008086d0000107Esv00008086sd00001084* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) + + pci:v00008086d0000107Esv00008086sd00001085* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) + + pci:v00008086d0000107Esv00008086sd00001094* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) + + pci:v00008086d0000107F* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller +@@ -57636,16 +57636,16 @@ pci:v00008086d0000108A* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d0000108Asv00008086sd0000108A* +- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) + + pci:v00008086d0000108Asv00008086sd0000118A* +- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) + + pci:v00008086d0000108B* + ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000108Bsv00001462sd0000176C* +- ID_MODEL_FROM_DATABASE=on board on MSI 945P - NEO (MS-7176) ++ ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) (on board on MSI 945P - NEO (MS-7176)) + + pci:v00008086d0000108C* + ID_MODEL_FROM_DATABASE=82573E Gigabit Ethernet Controller (Copper) +@@ -57675,13 +57675,13 @@ pci:v00008086d00001096* + ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001096sv000015D9sd00001096* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Motherboard) + + pci:v00008086d00001096sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (X7DVL-E-O motherboard) + + pci:v00008086d00001096sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Intel S5000PSLSATA Server Board) + + pci:v00008086d00001097* + ID_MODEL_FROM_DATABASE=631xESB/632xESB DPT LAN Controller (Fiber) +@@ -57693,28 +57693,28 @@ pci:v00008086d00001099* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001099sv00008086sd00001099* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) + + pci:v00008086d0000109A* + ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller + + pci:v00008086d0000109Asv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=PRO/1000 PL ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL) + + pci:v00008086d0000109Asv000017AAsd00002001* +- ID_MODEL_FROM_DATABASE=ThinkPad T60 ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad T60) + + pci:v00008086d0000109Asv000017AAsd0000207E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad X60/X60s) + + pci:v00008086d0000109Asv00008086sd0000109A* +- ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL Network Connection) + + pci:v00008086d0000109Asv00008086sd0000309C* +- ID_MODEL_FROM_DATABASE=Desktop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D945GTP) + + pci:v00008086d0000109Asv00008086sd000030A5* +- ID_MODEL_FROM_DATABASE=Desktop Board D975XBX ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D975XBX) + + pci:v00008086d0000109B* + ID_MODEL_FROM_DATABASE=82546GB PRO/1000 GF Quad Port Server Adapter +@@ -57723,10 +57723,10 @@ pci:v00008086d0000109E* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d0000109Esv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) + + pci:v00008086d0000109Esv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) + + pci:v00008086d000010A0* + ID_MODEL_FROM_DATABASE=82571EB PRO/1000 AT Quad Port Bypass Adapter +@@ -57738,19 +57738,19 @@ pci:v00008086d000010A4* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d000010A4sv00008086sd000010A4* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) + + pci:v00008086d000010A4sv00008086sd000011A4* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) + + pci:v00008086d000010A5* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) + + pci:v00008086d000010A5sv00008086sd000010A5* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) + + pci:v00008086d000010A5sv00008086sd000010A6* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) + + pci:v00008086d000010A6* + ID_MODEL_FROM_DATABASE=82599EB 10-Gigabit Dummy Function +@@ -57759,7 +57759,7 @@ pci:v00008086d000010A7* + ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection + + pci:v00008086d000010A7sv00008086sd000010A8* +- ID_MODEL_FROM_DATABASE=82575EB Gigabit Riser Card ++ ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection (82575EB Gigabit Riser Card) + + pci:v00008086d000010A9* + ID_MODEL_FROM_DATABASE=82575EB Gigabit Backplane Connection +@@ -57780,13 +57780,13 @@ pci:v00008086d000010B5* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) + + pci:v00008086d000010B5sv0000103Csd00003109* +- ID_MODEL_FROM_DATABASE=NC340T PCI-X Quad-port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (NC340T PCI-X Quad-port Gigabit Server Adapter) + + pci:v00008086d000010B5sv00008086sd00001099* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) + + pci:v00008086d000010B5sv00008086sd00001199* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) + + pci:v00008086d000010B6* + ID_MODEL_FROM_DATABASE=82598 10GbE PCI-Express Ethernet Controller +@@ -57795,13 +57795,13 @@ pci:v00008086d000010B9* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) + + pci:v00008086d000010B9sv0000103Csd0000704A* +- ID_MODEL_FROM_DATABASE=HP 110T PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (HP 110T PCIe Gigabit Server Adapter) + + pci:v00008086d000010B9sv00008086sd00001083* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) + + pci:v00008086d000010B9sv00008086sd00001093* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) + + pci:v00008086d000010BA* + ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) +@@ -57813,22 +57813,22 @@ pci:v00008086d000010BC* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) + + pci:v00008086d000010BCsv0000103Csd0000704B* +- ID_MODEL_FROM_DATABASE=NC364T PCI Express Quad Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (NC364T PCI Express Quad Port Gigabit Server Adapter) + + pci:v00008086d000010BCsv0000108Esd000011BC* +- ID_MODEL_FROM_DATABASE=x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter) + + pci:v00008086d000010BCsv00008086sd000010BC* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) + + pci:v00008086d000010BCsv00008086sd000011BC* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) + + pci:v00008086d000010BD* + ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection + + pci:v00008086d000010BDsv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection (OptiPlex 755) + + pci:v00008086d000010BF* + ID_MODEL_FROM_DATABASE=82567LF Gigabit Network Connection +@@ -57837,7 +57837,7 @@ pci:v00008086d000010C0* + ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection + + pci:v00008086d000010C0sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection (Inspiron 530) + + pci:v00008086d000010C2* + ID_MODEL_FROM_DATABASE=82562G-2 10/100 Network Connection +@@ -57855,67 +57855,67 @@ pci:v00008086d000010C6* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection + + pci:v00008086d000010C6sv00008086sd0000A05F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) + + pci:v00008086d000010C6sv00008086sd0000A15F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) + + pci:v00008086d000010C7* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection + + pci:v00008086d000010C7sv00001014sd0000037F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C7sv00001014sd00000380* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) + + pci:v00008086d000010C7sv00008086sd0000A05F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C7sv00008086sd0000A15F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C7sv00008086sd0000A16F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C8* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection + + pci:v00008086d000010C8sv00008086sd0000A10C* +- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) + + pci:v00008086d000010C8sv00008086sd0000A11C* +- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) + + pci:v00008086d000010C8sv00008086sd0000A12C* +- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) + + pci:v00008086d000010C9* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010C9sv0000103Csd000031EF* +- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) + + pci:v00008086d000010C9sv0000103Csd0000323F* +- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) + + pci:v00008086d000010C9sv000010A9sd00008028* +- ID_MODEL_FROM_DATABASE=UV-BaseIO dual-port GbE ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (UV-BaseIO dual-port GbE) + + pci:v00008086d000010C9sv000013A3sd00000037* +- ID_MODEL_FROM_DATABASE=DS4100 Secure Multi-Gigabit Server Adapter with Compression ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (DS4100 Secure Multi-Gigabit Server Adapter with Compression) + + pci:v00008086d000010C9sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (H8DGU) + + pci:v00008086d000010C9sv00008086sd0000A01C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) + + pci:v00008086d000010C9sv00008086sd0000A03C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) + + pci:v00008086d000010C9sv00008086sd0000A04C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) + + pci:v00008086d000010CA* + ID_MODEL_FROM_DATABASE=82576 Virtual Function +@@ -57936,34 +57936,34 @@ pci:v00008086d000010D3* + ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection + + pci:v00008086d000010D3sv0000103Csd00003250* +- ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (NC112T PCI Express single Port Gigabit Server Adapter) + + pci:v00008086d000010D3sv00001043sd00008369* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Motherboard) + + pci:v00008086d000010D3sv000010A9sd00008029* +- ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Prism XL Single Port Gigabit Ethernet) + + pci:v00008086d000010D3sv000015D9sd0000060A* +- ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (X7SPA-H/X7SPA-HF Motherboard) + + pci:v00008086d000010D3sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (C7SIM-Q Motherboard) + + pci:v00008086d000010D3sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT2 Desktop Adapter) + + pci:v00008086d000010D3sv00008086sd0000357A* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Server Board S1200BTS) + + pci:v00008086d000010D3sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT Desktop Adapter) + + pci:v00008086d000010D3sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC1-GROOVE) + + pci:v00008086d000010D3sv0000E4BFsd000050C2* +- ID_MODEL_FROM_DATABASE=PC2-LIMBO ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC2-LIMBO) + + pci:v00008086d000010D4* + ID_MODEL_FROM_DATABASE=Matrox Concord GE (customized Intel 82574) +@@ -57975,13 +57975,13 @@ pci:v00008086d000010D6* + ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection + + pci:v00008086d000010D6sv00008086sd000010D6* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010D6sv00008086sd0000145A* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010D6sv00008086sd0000147A* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010D8* + ID_MODEL_FROM_DATABASE=82599EB 10 Gigabit Unprogrammed +@@ -57990,13 +57990,13 @@ pci:v00008086d000010D9* + ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter + + pci:v00008086d000010D9sv0000103Csd00001716* +- ID_MODEL_FROM_DATABASE=NC360m Dual Port 1GbE BL-c Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter (NC360m Dual Port 1GbE BL-c Adapter) + + pci:v00008086d000010DA* + ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter + + pci:v00008086d000010DAsv0000103Csd00001717* +- ID_MODEL_FROM_DATABASE=NC364m Quad Port 1GbE BL-c Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter (NC364m Quad Port 1GbE BL-c Adapter) + + pci:v00008086d000010DB* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit Dual Port Network Connection +@@ -58014,13 +58014,13 @@ pci:v00008086d000010E1* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection + + pci:v00008086d000010E1sv00008086sd0000A15F* +- ID_MODEL_FROM_DATABASE=10-Gigabit SR Dual Port Express Module ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit SR Dual Port Express Module) + + pci:v00008086d000010E2* + ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection + + pci:v00008086d000010E2sv00008086sd000010E2* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010E5* + ID_MODEL_FROM_DATABASE=82567LM-4 Gigabit Network Connection +@@ -58029,37 +58029,37 @@ pci:v00008086d000010E6* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010E6sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) + + pci:v00008086d000010E6sv00008086sd0000A02F* +- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) + + pci:v00008086d000010E7* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010E7sv0000103Csd000031FF* +- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual Port BL-c Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual Port BL-c Gigabit Server Adapter) + + pci:v00008086d000010E8* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010E8sv00008086sd0000A02B* +- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) + + pci:v00008086d000010E8sv00008086sd0000A02C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) + + pci:v00008086d000010EA* + ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection + + pci:v00008086d000010EAsv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6410) + + pci:v00008086d000010EAsv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6510) + + pci:v00008086d000010EAsv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (PC1-GROOVE) + + pci:v00008086d000010EB* + ID_MODEL_FROM_DATABASE=82577LC Gigabit Network Connection +@@ -58068,10 +58068,10 @@ pci:v00008086d000010EC* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection + + pci:v00008086d000010ECsv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) + + pci:v00008086d000010ECsv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) + + pci:v00008086d000010ED* + ID_MODEL_FROM_DATABASE=82599 Ethernet Controller Virtual Function +@@ -58080,10 +58080,10 @@ pci:v00008086d000010EF* + ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection + + pci:v00008086d000010EFsv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (OptiPlex 980) + + pci:v00008086d000010EFsv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (C7SIM-Q Motherboard) + + pci:v00008086d000010F0* + ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection +@@ -58092,19 +58092,19 @@ pci:v00008086d000010F1* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection + + pci:v00008086d000010F1sv00008086sd0000A20F* +- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) + + pci:v00008086d000010F1sv00008086sd0000A21F* +- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) + + pci:v00008086d000010F4* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection + + pci:v00008086d000010F4sv00008086sd0000106F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) + + pci:v00008086d000010F4sv00008086sd0000A06F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) + + pci:v00008086d000010F5* + ID_MODEL_FROM_DATABASE=82567LM Gigabit Network Connection +@@ -58116,25 +58116,25 @@ pci:v00008086d000010F7* + ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection + + pci:v00008086d000010F7sv0000108Esd00007B12* +- ID_MODEL_FROM_DATABASE=Sun Dual 10GbE PCIe 2.0 FEM ++ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Sun Dual 10GbE PCIe 2.0 FEM) + + pci:v00008086d000010F7sv00008086sd0000000D* +- ID_MODEL_FROM_DATABASE=Ethernet Mezzanine Adapter X520-KX4-2 ++ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Ethernet Mezzanine Adapter X520-KX4-2) + + pci:v00008086d000010F8* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection + + pci:v00008086d000010F8sv00001028sd00001F63* +- ID_MODEL_FROM_DATABASE=10GbE 2P X520k bNDC ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (10GbE 2P X520k bNDC) + + pci:v00008086d000010F8sv0000103Csd000017D2* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560M Adapter) + + pci:v00008086d000010F8sv0000103Csd000018D0* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLB Adapter ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560FLB Adapter) + + pci:v00008086d000010F8sv00008086sd0000000C* +- ID_MODEL_FROM_DATABASE=Ethernet X520 10GbE Dual Port KX4-KR Mezz ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet X520 10GbE Dual Port KX4-KR Mezz) + + pci:v00008086d000010F9* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection +@@ -58143,58 +58143,58 @@ pci:v00008086d000010FB* + ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection + + pci:v00008086d000010FBsv00001028sd00001F72* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X520/I350 rNDC ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10G 4P X520/I350 rNDC) + + pci:v00008086d000010FBsv0000103Csd000017D0* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560FLR-SFP+ Adapter) + + pci:v00008086d000010FBsv0000103Csd000017D2* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560M Adapter) + + pci:v00008086d000010FBsv0000103Csd000017D3* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560SFP+ Adapter) + + pci:v00008086d000010FBsv0000103Csd0000211B* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port P560FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port P560FLR-SFP+ Adapter) + + pci:v00008086d000010FBsv0000103Csd00002147* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port 561i Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port 561i Adapter) + + pci:v00008086d000010FBsv0000103Csd00002159* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 562i Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 562i Adapter) + + pci:v00008086d000010FBsv0000108Esd00007B11* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00001734sd000011A9* +- ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (10 Gigabit Dual Port Network Connection) + + pci:v00008086d000010FBsv000017AAsd00001071* +- ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (ThinkServer X520-2 AnyFabric) + + pci:v00008086d000010FBsv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-DA2) + + pci:v00008086d000010FBsv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) + + pci:v00008086d000010FBsv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet OCP Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd0000000A* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) + + pci:v00008086d000010FBsv00008086sd0000000C* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd00007A11* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd00007A12* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FC* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection +@@ -58209,19 +58209,19 @@ pci:v00008086d00001130* + ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub + + pci:v00008086d00001130sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Travelmate 612 TX) + + pci:v00008086d00001130sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (TUSL2-C Mainboard) + + pci:v00008086d00001130sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Vaio PCG-FX403) + + pci:v00008086d00001130sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EEA2 mainboard) + + pci:v00008086d00001130sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EGEW Mainboard) + + pci:v00008086d00001131* + ID_MODEL_FROM_DATABASE=82815 815 Chipset AGP Bridge +@@ -58230,28 +58230,28 @@ pci:v00008086d00001132* + ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) + + pci:v00008086d00001132sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Travelmate 612 TX) + + pci:v00008086d00001132sv0000103Csd00002001* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (e-pc 40) + + pci:v00008086d00001132sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Vaio PCG-FX403) + + pci:v00008086d00001132sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 Mainboard ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA2 Mainboard) + + pci:v00008086d00001132sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=D815EEA Motherboard ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA Motherboard) + + pci:v00008086d00001132sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EGEW Mainboard) + + pci:v00008086d00001161* + ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller + + pci:v00008086d00001161sv00008086sd00001161* +- ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub APIC ++ ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller (82806AA PCI64 Hub APIC) + + pci:v00008086d00001162* + ID_MODEL_FROM_DATABASE=Xscale 80200 Big Endian Companion Chip +@@ -58260,25 +58260,25 @@ pci:v00008086d00001200* + ID_MODEL_FROM_DATABASE=IXP1200 Network Processor + + pci:v00008086d00001200sv0000172Asd00000000* +- ID_MODEL_FROM_DATABASE=AEP SSL Accelerator ++ ID_MODEL_FROM_DATABASE=IXP1200 Network Processor (AEP SSL Accelerator) + + pci:v00008086d00001209* + ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller + + pci:v00008086d00001209sv0000140Bsd00000610* +- ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PMC610 quad Ethernet board) + + pci:v00008086d00001209sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (QEMU Virtual Machine) + + pci:v00008086d00001209sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CT7 mainboard) + + pci:v00008086d00001209sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CE7 mainboard) + + pci:v00008086d00001209sv00004C53sd00001070* +- ID_MODEL_FROM_DATABASE=PC6 mainboard ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PC6 mainboard) + + pci:v00008086d00001221* + ID_MODEL_FROM_DATABASE=82092AA PCI to PCMCIA Bridge +@@ -58305,487 +58305,487 @@ pci:v00008086d00001229* + ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 + + pci:v00008086d00001229sv00000E11sd00003001* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003002* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003003* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003004* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003005* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003006* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003007* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd0000B01E* +- ID_MODEL_FROM_DATABASE=NC3120 Fast Ethernet NIC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3120 Fast Ethernet NIC) + + pci:v00008086d00001229sv00000E11sd0000B01F* +- ID_MODEL_FROM_DATABASE=NC3122 Fast Ethernet NIC (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3122 Fast Ethernet NIC (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B02F* +- ID_MODEL_FROM_DATABASE=NC1120 Ethernet NIC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC1120 Ethernet NIC) + + pci:v00008086d00001229sv00000E11sd0000B04A* +- ID_MODEL_FROM_DATABASE=Netelligent 10/100TX NIC with Wake on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netelligent 10/100TX NIC with Wake on LAN) + + pci:v00008086d00001229sv00000E11sd0000B0C6* +- ID_MODEL_FROM_DATABASE=NC3161 Fast Ethernet NIC (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3161 Fast Ethernet NIC (embedded, WOL)) + + pci:v00008086d00001229sv00000E11sd0000B0C7* +- ID_MODEL_FROM_DATABASE=NC3160 Fast Ethernet NIC (embedded) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3160 Fast Ethernet NIC (embedded)) + + pci:v00008086d00001229sv00000E11sd0000B0D7* +- ID_MODEL_FROM_DATABASE=NC3121 Fast Ethernet NIC (WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3121 Fast Ethernet NIC (WOL)) + + pci:v00008086d00001229sv00000E11sd0000B0DD* +- ID_MODEL_FROM_DATABASE=NC3131 Fast Ethernet NIC (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3131 Fast Ethernet NIC (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B0DE* +- ID_MODEL_FROM_DATABASE=NC3132 Fast Ethernet Module (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3132 Fast Ethernet Module (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B0E1* +- ID_MODEL_FROM_DATABASE=NC3133 Fast Ethernet Module (100-FX) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3133 Fast Ethernet Module (100-FX)) + + pci:v00008086d00001229sv00000E11sd0000B134* +- ID_MODEL_FROM_DATABASE=NC3163 Fast Ethernet NIC (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3163 Fast Ethernet NIC (embedded, WOL)) + + pci:v00008086d00001229sv00000E11sd0000B13C* +- ID_MODEL_FROM_DATABASE=NC3162 Fast Ethernet NIC (embedded) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3162 Fast Ethernet NIC (embedded)) + + pci:v00008086d00001229sv00000E11sd0000B144* +- ID_MODEL_FROM_DATABASE=NC3123 Fast Ethernet NIC (WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3123 Fast Ethernet NIC (WOL)) + + pci:v00008086d00001229sv00000E11sd0000B163* +- ID_MODEL_FROM_DATABASE=NC3134 Fast Ethernet NIC (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3134 Fast Ethernet NIC (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B164* +- ID_MODEL_FROM_DATABASE=NC3135 Fast Ethernet Upgrade Module (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3135 Fast Ethernet Upgrade Module (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B1A4* +- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC7131 Gigabit Server Adapter) + + pci:v00008086d00001229sv00001014sd0000005C* +- ID_MODEL_FROM_DATABASE=82558B Ethernet Pro 10/100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B Ethernet Pro 10/100) + + pci:v00008086d00001229sv00001014sd000001BC* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN On Motherboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN On Motherboard) + + pci:v00008086d00001229sv00001014sd000001F1* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001014sd000001F2* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001014sd00000207* +- ID_MODEL_FROM_DATABASE=Ethernet Pro/100 S ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Ethernet Pro/100 S) + + pci:v00008086d00001229sv00001014sd00000232* +- ID_MODEL_FROM_DATABASE=10/100 Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Dual Port Server Adapter) + + pci:v00008086d00001229sv00001014sd0000023A* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad R30) + + pci:v00008086d00001229sv00001014sd0000105C* +- ID_MODEL_FROM_DATABASE=Netfinity 10/100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netfinity 10/100) + + pci:v00008086d00001229sv00001014sd00002205* +- ID_MODEL_FROM_DATABASE=ThinkPad A22p ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad A22p) + + pci:v00008086d00001229sv00001014sd0000305C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Management Adapter) + + pci:v00008086d00001229sv00001014sd0000405C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Adapter with Alert on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Adapter with Alert on LAN) + + pci:v00008086d00001229sv00001014sd0000505C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) + + pci:v00008086d00001229sv00001014sd0000605C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) + + pci:v00008086d00001229sv00001014sd0000705C* +- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) + + pci:v00008086d00001229sv00001014sd0000805C* +- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) + + pci:v00008086d00001229sv00001028sd0000009B* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001028sd000000CE* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001033sd00008000* +- ID_MODEL_FROM_DATABASE=PC-9821X-B06 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC-9821X-B06) + + pci:v00008086d00001229sv00001033sd00008016* +- ID_MODEL_FROM_DATABASE=PK-UG-X006 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) + + pci:v00008086d00001229sv00001033sd0000801F* +- ID_MODEL_FROM_DATABASE=PK-UG-X006 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) + + pci:v00008086d00001229sv00001033sd00008026* +- ID_MODEL_FROM_DATABASE=PK-UG-X006 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) + + pci:v00008086d00001229sv00001033sd00008063* +- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) + + pci:v00008086d00001229sv00001033sd00008064* +- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) + + pci:v00008086d00001229sv0000103Csd000010C0* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010C3* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010CA* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010CB* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010E3* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010E4* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd00001200* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000108Esd000010CF* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100(B) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100(B)) + + pci:v00008086d00001229sv000010C3sd00001100* +- ID_MODEL_FROM_DATABASE=SmartEther100 SC1100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SmartEther100 SC1100) + + pci:v00008086d00001229sv000010CFsd00001115* +- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) + + pci:v00008086d00001229sv000010CFsd00001143* +- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) + + pci:v00008086d00001229sv0000110Asd0000008B* +- ID_MODEL_FROM_DATABASE=82551QM Fast Ethernet Multifuction PCI/CardBus Controller ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82551QM Fast Ethernet Multifuction PCI/CardBus Controller) + + pci:v00008086d00001229sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH2 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC8 onboard ethernet ETH2) + + pci:v00008086d00001229sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) + + pci:v00008086d00001229sv00001179sd00000002* +- ID_MODEL_FROM_DATABASE=PCI FastEther LAN on Docker ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PCI FastEther LAN on Docker) + + pci:v00008086d00001229sv00001179sd00000003* +- ID_MODEL_FROM_DATABASE=8255x-based Fast Ethernet ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Fast Ethernet) + + pci:v00008086d00001229sv00001259sd00002560* +- ID_MODEL_FROM_DATABASE=AT-2560 100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100) + + pci:v00008086d00001229sv00001259sd00002561* +- ID_MODEL_FROM_DATABASE=AT-2560 100 FX Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100 FX Ethernet Adapter) + + pci:v00008086d00001229sv00001266sd00000001* +- ID_MODEL_FROM_DATABASE=NE10/100 Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NE10/100 Adapter) + + pci:v00008086d00001229sv000013E9sd00001000* +- ID_MODEL_FROM_DATABASE=6221L-4U ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (6221L-4U) + + pci:v00008086d00001229sv0000144Dsd00002501* +- ID_MODEL_FROM_DATABASE=SEM-2000 MiniPCI LAN Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2000 MiniPCI LAN Adapter) + + pci:v00008086d00001229sv0000144Dsd00002502* +- ID_MODEL_FROM_DATABASE=SEM-2100IL MiniPCI LAN Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2100IL MiniPCI LAN Adapter) + + pci:v00008086d00001229sv00001668sd00001100* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)) + + pci:v00008086d00001229sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CR11/VR11 Single Board Computer) + + pci:v00008086d00001229sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CE9) + + pci:v00008086d00001229sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (QEMU Virtual Machine) + + pci:v00008086d00001229sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CT8 mainboard) + + pci:v00008086d00001229sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PSL09 PrPMC) + + pci:v00008086d00001229sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX)) + + pci:v00008086d00001229sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (T4) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (T4)) + + pci:v00008086d00001229sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/10+ ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/10+) + + pci:v00008086d00001229sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 WfM ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 WfM) + + pci:v00008086d00001229sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=82557 10/100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100) + + pci:v00008086d00001229sv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=82557 10/100 with Wake on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100 with Wake on LAN) + + pci:v00008086d00001229sv00008086sd00000007* +- ID_MODEL_FROM_DATABASE=82558 10/100 Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 Adapter) + + pci:v00008086d00001229sv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=82558 10/100 with Wake on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 with Wake on LAN) + + pci:v00008086d00001229sv00008086sd00000009* +- ID_MODEL_FROM_DATABASE=82558B PRO/100+ PCI (TP) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B PRO/100+ PCI (TP)) + + pci:v00008086d00001229sv00008086sd0000000A* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) + + pci:v00008086d00001229sv00008086sd0000000B* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+) + + pci:v00008086d00001229sv00008086sd0000000C* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) + + pci:v00008086d00001229sv00008086sd0000000D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Alert On LAN II* Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Alert On LAN II* Adapter) + + pci:v00008086d00001229sv00008086sd0000000E* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN*) + + pci:v00008086d00001229sv00008086sd0000000F* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) + + pci:v00008086d00001229sv00008086sd00000011* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) + + pci:v00008086d00001229sv00008086sd00000012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (D) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (D)) + + pci:v00008086d00001229sv00008086sd00000013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (E) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (E)) + + pci:v00008086d00001229sv00008086sd00000030* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Management Adapter with Alert On LAN* GC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Management Adapter with Alert On LAN* GC) + + pci:v00008086d00001229sv00008086sd00000031* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000040* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000041* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000042* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000050* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00001009* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter) + + pci:v00008086d00001229sv00008086sd0000100C* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter (PILA8470B) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter (PILA8470B)) + + pci:v00008086d00001229sv00008086sd00001012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (D) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (D)) + + pci:v00008086d00001229sv00008086sd00001013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (E) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (E)) + + pci:v00008086d00001229sv00008086sd00001015* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Dual Port Server Adapter) + + pci:v00008086d00001229sv00008086sd00001017* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Server Adapter) + + pci:v00008086d00001229sv00008086sd00001030* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server) + + pci:v00008086d00001229sv00008086sd00001040* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) + + pci:v00008086d00001229sv00008086sd00001041* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) + + pci:v00008086d00001229sv00008086sd00001042* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) + + pci:v00008086d00001229sv00008086sd00001050* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) + + pci:v00008086d00001229sv00008086sd00001051* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) + + pci:v00008086d00001229sv00008086sd00001052* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) + + pci:v00008086d00001229sv00008086sd000010F0* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Adapter) + + pci:v00008086d00001229sv00008086sd00001229* +- ID_MODEL_FROM_DATABASE=82557/8/9 [Ethernet Pro 100] ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557/8/9 [Ethernet Pro 100]) + + pci:v00008086d00001229sv00008086sd00002009* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) + + pci:v00008086d00001229sv00008086sd0000200D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Cardbus ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Cardbus) + + pci:v00008086d00001229sv00008086sd0000200E* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 LAN+V90 Cardbus Modem ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 LAN+V90 Cardbus Modem) + + pci:v00008086d00001229sv00008086sd0000200F* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002016* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002017* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Combo Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Combo Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002018* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002019* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Combo Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Combo Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002101* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002102* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002103* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002104* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002105* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002106* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002107* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd00002108* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd00002200* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002201* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002202* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002203* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002204* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002205* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002206* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002207* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002208* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002402* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002407* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002408* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002409* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd0000240F* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002410* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002411* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002412* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002413* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00003000* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN on Motherboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN on Motherboard) + + pci:v00008086d00001229sv00008086sd00003001* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Basic Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Basic Alert on LAN*) + + pci:v00008086d00001229sv00008086sd00003002* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN II* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN II*) + + pci:v00008086d00001229sv00008086sd00003006* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003007* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003008* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd00003010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003011* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd0000301A* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (S845WD1-E mainboard) + + pci:v00008086d00001229sv00008086sd00003411* +- ID_MODEL_FROM_DATABASE=SDS2 Mainboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SDS2 Mainboard) + + pci:v00008086d0000122D* + ID_MODEL_FROM_DATABASE=430FX - 82437FX TSC [Triton I] +@@ -58809,7 +58809,7 @@ pci:v00008086d00001237* + ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] + + pci:v00008086d00001237sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] (Qemu virtual machine) + + pci:v00008086d00001239* + ID_MODEL_FROM_DATABASE=82371FB PIIX IDE Interface +@@ -58857,10 +58857,10 @@ pci:v00008086d00001461* + ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC + + pci:v00008086d00001461sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (P4DP6) + + pci:v00008086d00001461sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9/Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (Cx9/Vx9 mainboard) + + pci:v00008086d00001462* + ID_MODEL_FROM_DATABASE=82870P2 P64H2 Hot Plug Controller +@@ -58872,16 +58872,16 @@ pci:v00008086d00001502* + ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection + + pci:v00008086d00001502sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Precision M4600) + + pci:v00008086d00001502sv00008086sd0000357A* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Server Board S1200BTS) + + pci:v00008086d00001503* + ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection + + pci:v00008086d00001503sv00001043sd0000849C* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection (P8P67 Deluxe Motherboard) + + pci:v00008086d00001507* + ID_MODEL_FROM_DATABASE=Ethernet Express Module X520-P2 +@@ -58911,19 +58911,19 @@ pci:v00008086d0000150D* + ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection + + pci:v00008086d0000150Dsv00008086sd0000A10C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Mezzanine Card ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection (Gigabit ET Quad Port Mezzanine Card) + + pci:v00008086d0000150E* + ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection + + pci:v00008086d0000150Esv0000103Csd00001780* +- ID_MODEL_FROM_DATABASE=NC365T 4-port Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (NC365T 4-port Ethernet Server Adapter) + + pci:v00008086d0000150Esv00008086sd000012A1* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) + + pci:v00008086d0000150Esv00008086sd000012A2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) + + pci:v00008086d0000150F* + ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection +@@ -58947,16 +58947,16 @@ pci:v00008086d00001516* + ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection + + pci:v00008086d00001516sv00008086sd000012B1* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) + + pci:v00008086d00001516sv00008086sd000012B2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) + + pci:v00008086d00001517* + ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection + + pci:v00008086d00001517sv00001137sd0000006A* +- ID_MODEL_FROM_DATABASE=UCS CNA M61KR-I Intel Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection (UCS CNA M61KR-I Intel Converged Network Adapter) + + pci:v00008086d00001518* + ID_MODEL_FROM_DATABASE=82576NS SerDes Gigabit Network Connection +@@ -58965,7 +58965,7 @@ pci:v00008086d0000151C* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection + + pci:v00008086d0000151Csv0000108Esd00007B13* +- ID_MODEL_FROM_DATABASE=Dual 10GBASE-T LP ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection (Dual 10GBASE-T LP) + + pci:v00008086d00001520* + ID_MODEL_FROM_DATABASE=I350 Ethernet Controller Virtual Function +@@ -58974,115 +58974,115 @@ pci:v00008086d00001521* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection + + pci:v00008086d00001521sv00001028sd00000602* +- ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) + + pci:v00008086d00001521sv00001028sd00001F60* +- ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) + + pci:v00008086d00001521sv00001028sd00001F62* +- ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) + + pci:v00008086d00001521sv00001028sd0000FF9A* +- ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) + + pci:v00008086d00001521sv0000103Csd000017D1* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366FLR Adapter) + + pci:v00008086d00001521sv0000103Csd00002003* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 367i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 367i Adapter) + + pci:v00008086d00001521sv0000103Csd00002226* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 1-port 364i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 1-port 364i Adapter) + + pci:v00008086d00001521sv0000103Csd0000337F* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361i Adapter) + + pci:v00008086d00001521sv0000103Csd00003380* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366i Adapter) + + pci:v00008086d00001521sv0000103Csd0000339E* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361T Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361T Adapter) + + pci:v00008086d00001521sv0000108Esd00007B16* +- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, UTP ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, UTP) + + pci:v00008086d00001521sv0000108Esd00007B18* +- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP) + + pci:v00008086d00001521sv000010A9sd0000802A* +- ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (UV2-BaseIO dual-port GbE) + + pci:v00008086d00001521sv000017AAsd00001074* +- ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (ThinkServer I350-T4 AnyFabric) + + pci:v00008086d00001521sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) + + pci:v00008086d00001521sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001521sv00008086sd000000A1* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) + + pci:v00008086d00001521sv00008086sd000000A2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001521sv00008086sd00005001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) + + pci:v00008086d00001521sv00008086sd00005002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001522* + ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection + + pci:v00008086d00001522sv0000108Esd00007B17* +- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, MMF ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, MMF) + + pci:v00008086d00001522sv0000108Esd00007B19* +- ID_MODEL_FROM_DATABASE=Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF) + + pci:v00008086d00001522sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001522sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) + + pci:v00008086d00001522sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) + + pci:v00008086d00001522sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F1 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F1) + + pci:v00008086d00001522sv00008086sd000000A2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001522sv00008086sd000000A3* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) + + pci:v00008086d00001522sv00008086sd000000A4* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) + + pci:v00008086d00001523* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection + + pci:v00008086d00001523sv00001028sd00001F9B* +- ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) + + pci:v00008086d00001523sv0000103Csd00001784* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) + + pci:v00008086d00001523sv0000103Csd000018D1* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) + + pci:v00008086d00001523sv0000103Csd00001989* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 363i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 363i Adapter) + + pci:v00008086d00001523sv0000103Csd0000339F* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366M Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 4-port 366M Adapter) + + pci:v00008086d00001523sv00008086sd00001F52* +- ID_MODEL_FROM_DATABASE=1GbE 4P I350 Mezz ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (1GbE 4P I350 Mezz) + + pci:v00008086d00001524* + ID_MODEL_FROM_DATABASE=I350 Gigabit Connection +@@ -59094,64 +59094,64 @@ pci:v00008086d00001526* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d00001526sv00008086sd0000A05C* +- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) + + pci:v00008086d00001526sv00008086sd0000A06C* +- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) + + pci:v00008086d00001527* + ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection + + pci:v00008086d00001527sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) + + pci:v00008086d00001527sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) + + pci:v00008086d00001528* + ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 + + pci:v00008086d00001528sv00001028sd00001F61* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) + + pci:v00008086d00001528sv0000103Csd0000192D* +- ID_MODEL_FROM_DATABASE=561FLR-T 2-port 10Gb Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (561FLR-T 2-port 10Gb Ethernet Adapter) + + pci:v00008086d00001528sv0000103Csd00002004* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561i Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561i Adapter) + + pci:v00008086d00001528sv0000103Csd0000211A* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561T Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561T Adapter) + + pci:v00008086d00001528sv0000108Esd00007B14* +- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T) + + pci:v00008086d00001528sv0000108Esd00007B15* +- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T) + + pci:v00008086d00001528sv00001137sd000000BF* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) + + pci:v00008086d00001528sv000017AAsd00001073* +- ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (ThinkServer X540-T2 AnyFabric) + + pci:v00008086d00001528sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) + + pci:v00008086d00001528sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) + + pci:v00008086d00001528sv00008086sd0000001A* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) + + pci:v00008086d00001528sv00008086sd000000A2* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) + + pci:v00008086d00001528sv00008086sd00001F61* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) + + pci:v00008086d00001528sv00008086sd00005003* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X540-t Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 2P X540-t Adapter) + + pci:v00008086d00001529* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection with FCoE +@@ -59163,16 +59163,16 @@ pci:v00008086d00001533* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection + + pci:v00008086d00001533sv0000103Csd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + + pci:v00008086d00001533sv000017AAsd00001100* +- ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) + + pci:v00008086d00001533sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + + pci:v00008086d00001533sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + + pci:v00008086d00001534* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +@@ -59193,10 +59193,10 @@ pci:v00008086d0000153A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM + + pci:v00008086d0000153Asv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ZBook 15) + + pci:v00008086d0000153Asv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ThinkPad T440p) + + pci:v00008086d0000153B* + ID_MODEL_FROM_DATABASE=Ethernet Connection I217-V +@@ -59211,13 +59211,13 @@ pci:v00008086d0000154A* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 + + pci:v00008086d0000154Asv00008086sd0000011A* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154Asv00008086sd0000011B* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154Asv00008086sd0000011C* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154C* + ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function +@@ -59226,13 +59226,13 @@ pci:v00008086d0000154D* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter + + pci:v00008086d0000154Dsv00008086sd00007B11* +- ID_MODEL_FROM_DATABASE=10GbE 2P X520 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter (10GbE 2P X520 Adapter) + + pci:v00008086d00001557* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection + + pci:v00008086d00001557sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-1 ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection (Ethernet OCP Server Adapter X520-1) + + pci:v00008086d00001558* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-Q1 +@@ -59250,22 +59250,22 @@ pci:v00008086d0000155A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM + + pci:v00008086d0000155Asv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM (ThinkPad X240) + + pci:v00008086d0000155C* + ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter + + pci:v00008086d0000155Csv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X540-T2) + + pci:v00008086d0000155D* + ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter + + pci:v00008086d0000155Dsv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-SR2 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-SR2) + + pci:v00008086d0000155Dsv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-LR2 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-LR2) + + pci:v00008086d00001560* + ID_MODEL_FROM_DATABASE=Ethernet Controller X540 +@@ -59277,28 +59277,28 @@ pci:v00008086d00001572* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter + + pci:v00008086d00001572sv00001028sd00001F99* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) + + pci:v00008086d00001572sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000007* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d00001572sv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d0000157B* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +@@ -59313,31 +59313,31 @@ pci:v00008086d00001581* + ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane + + pci:v00008086d00001581sv00001028sd00001F98* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) + + pci:v00008086d00001583* + ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ + + pci:v00008086d00001583sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) + + pci:v00008086d00001584* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + + pci:v00008086d00001584sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) + + pci:v00008086d00001584sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) + + pci:v00008086d00001584sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q1) + + pci:v00008086d00001585* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ +@@ -59469,82 +59469,82 @@ pci:v00008086d00001960* + ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor + + pci:v00008086d00001960sv0000101Esd00000431* +- ID_MODEL_FROM_DATABASE=MegaRAID 431 RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 431 RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000438* +- ID_MODEL_FROM_DATABASE=MegaRAID 438 Ultra2 LVD RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438 Ultra2 LVD RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000466* +- ID_MODEL_FROM_DATABASE=MegaRAID 466 Express Plus RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466 Express Plus RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000467* +- ID_MODEL_FROM_DATABASE=MegaRAID 467 Enterprise 1500 RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 467 Enterprise 1500 RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000490* +- ID_MODEL_FROM_DATABASE=MegaRAID 490 Express 300 RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 490 Express 300 RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000762* +- ID_MODEL_FROM_DATABASE=MegaRAID 762 Express RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 762 Express RAID Controller) + + pci:v00008086d00001960sv0000101Esd000009A0* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv00001028sd00000467* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/DC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/DC) + + pci:v00008086d00001960sv00001028sd00001111* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv0000103Csd000003A2* +- ID_MODEL_FROM_DATABASE=MegaRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) + + pci:v00008086d00001960sv0000103Csd000010C6* +- ID_MODEL_FROM_DATABASE=MegaRAID 438, NetRAID-3Si ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438, NetRAID-3Si) + + pci:v00008086d00001960sv0000103Csd000010C7* +- ID_MODEL_FROM_DATABASE=MegaRAID T5, Integrated NetRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID T5, Integrated NetRAID) + + pci:v00008086d00001960sv0000103Csd000010CC* +- ID_MODEL_FROM_DATABASE=MegaRAID, Integrated NetRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID, Integrated NetRAID) + + pci:v00008086d00001960sv0000103Csd000010CD* +- ID_MODEL_FROM_DATABASE=NetRAID-1Si ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (NetRAID-1Si) + + pci:v00008086d00001960sv0000105Asd00000000* +- ID_MODEL_FROM_DATABASE=SuperTrak ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak) + + pci:v00008086d00001960sv0000105Asd00002168* +- ID_MODEL_FROM_DATABASE=SuperTrak Pro ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak Pro) + + pci:v00008086d00001960sv0000105Asd00005168* +- ID_MODEL_FROM_DATABASE=SuperTrak66/100 ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak66/100) + + pci:v00008086d00001960sv00001111sd00001111* +- ID_MODEL_FROM_DATABASE=MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv00001111sd00001112* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv0000113Csd000003A2* +- ID_MODEL_FROM_DATABASE=MegaRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) + + pci:v00008086d00001960sv0000E4BFsd00001010* +- ID_MODEL_FROM_DATABASE=CG1-RADIO ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CG1-RADIO) + + pci:v00008086d00001960sv0000E4BFsd00001020* +- ID_MODEL_FROM_DATABASE=CU2-QUARTET ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU2-QUARTET) + + pci:v00008086d00001960sv0000E4BFsd00001040* +- ID_MODEL_FROM_DATABASE=CU1-CHORUS ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU1-CHORUS) + + pci:v00008086d00001960sv0000E4BFsd00003100* +- ID_MODEL_FROM_DATABASE=CX1-BAND ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CX1-BAND) + + pci:v00008086d00001962* + ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor + + pci:v00008086d00001962sv0000105Asd00000000* +- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 I2O CPU ++ ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor (SuperTrak SX6000 I2O CPU) + + pci:v00008086d00001A21* + ID_MODEL_FROM_DATABASE=82840 840 [Carmel] Chipset Host Bridge (Hub A) +@@ -59559,10 +59559,10 @@ pci:v00008086d00001A30* + ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge + + pci:v00008086d00001A30sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Optiplex GX240) + + pci:v00008086d00001A30sv000015D9sd00003280* +- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard ++ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Supermicro P4SBE Mainboard) + + pci:v00008086d00001A31* + ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset AGP Bridge +@@ -59571,28 +59571,28 @@ pci:v00008086d00001A38* + ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine + + pci:v00008086d00001A38sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (X7DVL-E-O motherboard) + + pci:v00008086d00001A38sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (Intel S5000PSLSATA Server Board) + + pci:v00008086d00001A48* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d00001A48sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) + + pci:v00008086d00001A48sv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) + + pci:v00008086d00001B48* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d00001B48sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001B48sv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001C00* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 4 port SATA IDE Controller +@@ -59604,28 +59604,28 @@ pci:v00008086d00001C02* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller + + pci:v00008086d00001C02sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (XPS 8300) + + pci:v00008086d00001C02sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (P8 series motherboard) + + pci:v00008086d00001C02sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (Server Board S1200BTS) + + pci:v00008086d00001C03* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller + + pci:v00008086d00001C03sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Precision M4600) + + pci:v00008086d00001C03sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3350) + + pci:v00008086d00001C03sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3750) + + pci:v00008086d00001C03sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C04* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA RAID Controller +@@ -59643,58 +59643,58 @@ pci:v00008086d00001C10* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 + + pci:v00008086d00001C10sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (XPS 8300) + + pci:v00008086d00001C10sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Vostro 3750) + + pci:v00008086d00001C10sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (P8 series motherboard) + + pci:v00008086d00001C10sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C12* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 + + pci:v00008086d00001C12sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (XPS 8300) + + pci:v00008086d00001C12sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C14* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 + + pci:v00008086d00001C14sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Vostro 3750) + + pci:v00008086d00001C14sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C16* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 + + pci:v00008086d00001C16sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 (XPS 8300) + + pci:v00008086d00001C18* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 + + pci:v00008086d00001C18sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Vostro 3750) + + pci:v00008086d00001C18sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Server Board S1200BTS) + + pci:v00008086d00001C1A* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 + + pci:v00008086d00001C1Asv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (Vostro 3750) + + pci:v00008086d00001C1Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (P8 series motherboard) + + pci:v00008086d00001C1C* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 +@@ -59703,58 +59703,58 @@ pci:v00008086d00001C1E* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 + + pci:v00008086d00001C1Esv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 (P8 series motherboard) + + pci:v00008086d00001C20* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller + + pci:v00008086d00001C20sv00001028sd00000490* +- ID_MODEL_FROM_DATABASE=Alienware M17x R3 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Alienware M17x R3) + + pci:v00008086d00001C20sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Precision M4600) + + pci:v00008086d00001C20sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (XPS 8300) + + pci:v00008086d00001C20sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3350) + + pci:v00008086d00001C20sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3750) + + pci:v00008086d00001C20sv00001043sd00008418* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8P67 Deluxe Motherboard) + + pci:v00008086d00001C20sv00001043sd0000841B* +- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8H67 Series Motherboard) + + pci:v00008086d00001C20sv00008086sd00002008* +- ID_MODEL_FROM_DATABASE=DQ67SW board ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (DQ67SW board) + + pci:v00008086d00001C20sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C22* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller + + pci:v00008086d00001C22sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Precision M4600) + + pci:v00008086d00001C22sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (XPS 8300) + + pci:v00008086d00001C22sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3350) + + pci:v00008086d00001C22sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3750) + + pci:v00008086d00001C22sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (P8 series motherboard) + + pci:v00008086d00001C22sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C24* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller +@@ -59766,55 +59766,55 @@ pci:v00008086d00001C26* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 + + pci:v00008086d00001C26sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Precision M4600) + + pci:v00008086d00001C26sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (XPS 8300) + + pci:v00008086d00001C26sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3350) + + pci:v00008086d00001C26sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3750) + + pci:v00008086d00001C26sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) + + pci:v00008086d00001C26sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C27* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 + + pci:v00008086d00001C27sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C2C* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 + + pci:v00008086d00001C2Csv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C2D* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 + + pci:v00008086d00001C2Dsv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Precision M4600) + + pci:v00008086d00001C2Dsv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (XPS 8300) + + pci:v00008086d00001C2Dsv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3350) + + pci:v00008086d00001C2Dsv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3750) + + pci:v00008086d00001C2Dsv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) + + pci:v00008086d00001C2Dsv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C33* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller +@@ -59826,22 +59826,22 @@ pci:v00008086d00001C3A* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 + + pci:v00008086d00001C3Asv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Precision M4600) + + pci:v00008086d00001C3Asv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (XPS 8300) + + pci:v00008086d00001C3Asv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3350) + + pci:v00008086d00001C3Asv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3750) + + pci:v00008086d00001C3Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (P8 series motherboard) + + pci:v00008086d00001C3Asv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C3B* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #2 +@@ -59874,7 +59874,7 @@ pci:v00008086d00001C46* + ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller + + pci:v00008086d00001C46sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller (P8P67 Deluxe Motherboard) + + pci:v00008086d00001C47* + ID_MODEL_FROM_DATABASE=UM67 Express Chipset Family LPC Controller +@@ -59886,25 +59886,25 @@ pci:v00008086d00001C49* + ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller + + pci:v00008086d00001C49sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C4A* + ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller + + pci:v00008086d00001C4Asv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (XPS 8300) + + pci:v00008086d00001C4Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (P8H67 Series Motherboard) + + pci:v00008086d00001C4B* + ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller + + pci:v00008086d00001C4Bsv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3350) + + pci:v00008086d00001C4Bsv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3750) + + pci:v00008086d00001C4C* + ID_MODEL_FROM_DATABASE=Q65 Express Chipset Family LPC Controller +@@ -59919,7 +59919,7 @@ pci:v00008086d00001C4F* + ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller + + pci:v00008086d00001C4Fsv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller (Precision M4600) + + pci:v00008086d00001C50* + ID_MODEL_FROM_DATABASE=B65 Express Chipset Family LPC Controller +@@ -59931,7 +59931,7 @@ pci:v00008086d00001C52* + ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller + + pci:v00008086d00001C52sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller (Server Board S1200BTS) + + pci:v00008086d00001C53* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller +@@ -59946,7 +59946,7 @@ pci:v00008086d00001C56* + ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller + + pci:v00008086d00001C56sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller (P8B WS Motherboard) + + pci:v00008086d00001C57* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller +@@ -60177,19 +60177,19 @@ pci:v00008086d00001E02* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] + + pci:v00008086d00001E02sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) + + pci:v00008086d00001E02sv00001849sd00001E02* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) + + pci:v00008086d00001E03* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] + + pci:v00008086d00001E03sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (N56VZ) + + pci:v00008086d00001E03sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (Zenbook Prime UX31A) + + pci:v00008086d00001E04* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SATA Controller [RAID mode] +@@ -60216,25 +60216,25 @@ pci:v00008086d00001E10* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 + + pci:v00008086d00001E10sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (N56VZ) + + pci:v00008086d00001E10sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Zenbook Prime UX31A) + + pci:v00008086d00001E10sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (P8H77-I Motherboard) + + pci:v00008086d00001E10sv00001849sd00001E10* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Motherboard) + + pci:v00008086d00001E12* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 + + pci:v00008086d00001E12sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (N56VZ) + + pci:v00008086d00001E12sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (Zenbook Prime UX31A) + + pci:v00008086d00001E14* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 3 +@@ -60243,25 +60243,25 @@ pci:v00008086d00001E16* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 + + pci:v00008086d00001E16sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (N56VZ) + + pci:v00008086d00001E16sv00001849sd00001618* +- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (Z77 Extreme4 motherboard) + + pci:v00008086d00001E18* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 + + pci:v00008086d00001E18sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (P8H77-I Motherboard) + + pci:v00008086d00001E18sv00001849sd00001E18* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (Motherboard) + + pci:v00008086d00001E1A* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 + + pci:v00008086d00001E1Asv00001849sd00001E1A* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 (Motherboard) + + pci:v00008086d00001E1C* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 7 +@@ -60270,43 +60270,43 @@ pci:v00008086d00001E1E* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 + + pci:v00008086d00001E1Esv00001849sd00001E1E* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 (Motherboard) + + pci:v00008086d00001E20* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller + + pci:v00008086d00001E20sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (N56VZ) + + pci:v00008086d00001E20sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E20sv00001043sd00008415* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) + + pci:v00008086d00001E20sv00001849sd00001898* +- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) + + pci:v00008086d00001E22* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller + + pci:v00008086d00001E22sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (N56VZ) + + pci:v00008086d00001E22sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E22sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) + + pci:v00008086d00001E22sv00001849sd00001E22* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) + + pci:v00008086d00001E24* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller + + pci:v00008086d00001E24sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E25* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family DMI to PCI Bridge +@@ -60315,49 +60315,49 @@ pci:v00008086d00001E26* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 + + pci:v00008086d00001E26sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (N56VZ) + + pci:v00008086d00001E26sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E26sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) + + pci:v00008086d00001E26sv00001849sd00001E26* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) + + pci:v00008086d00001E2D* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 + + pci:v00008086d00001E2Dsv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (N56VZ) + + pci:v00008086d00001E2Dsv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) + + pci:v00008086d00001E2Dsv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) + + pci:v00008086d00001E2Dsv00001849sd00001E2D* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) + + pci:v00008086d00001E31* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller + + pci:v00008086d00001E31sv0000103Csd000017AB* +- ID_MODEL_FROM_DATABASE=ProBook 6570b ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (ProBook 6570b) + + pci:v00008086d00001E31sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (N56VZ) + + pci:v00008086d00001E31sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E31sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) + + pci:v00008086d00001E31sv00001849sd00001E31* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) + + pci:v00008086d00001E33* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family LAN Controller +@@ -60366,16 +60366,16 @@ pci:v00008086d00001E3A* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 + + pci:v00008086d00001E3Asv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (N56VZ) + + pci:v00008086d00001E3Asv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E3Asv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) + + pci:v00008086d00001E3Asv00001849sd00001E3A* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) + + pci:v00008086d00001E3B* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #2 +@@ -60399,7 +60399,7 @@ pci:v00008086d00001E44* + ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller + + pci:v00008086d00001E44sv00001849sd00001E44* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) + + pci:v00008086d00001E45* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller +@@ -60420,7 +60420,7 @@ pci:v00008086d00001E4A* + ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller + + pci:v00008086d00001E4Asv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller (P8H77-I Motherboard) + + pci:v00008086d00001E4B* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller +@@ -60468,10 +60468,10 @@ pci:v00008086d00001E59* + ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller + + pci:v00008086d00001E59sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (N56VZ) + + pci:v00008086d00001E59sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E5A* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller +@@ -60804,28 +60804,28 @@ pci:v00008086d00002415* + ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller + + pci:v00008086d00002415sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Precision Workstation 220 Integrated Digital Audio) + + pci:v00008086d00002415sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (OptiPlex GX110) + + pci:v00008086d00002415sv0000110Asd00000051* +- ID_MODEL_FROM_DATABASE=Activy 2xx ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 2xx) + + pci:v00008086d00002415sv000011D4sd00000040* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002415sv000011D4sd00000048* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002415sv000011D4sd00005340* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002415sv00001734sd00001025* +- ID_MODEL_FROM_DATABASE=Activy 3xx ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 3xx) + + pci:v00008086d00002415sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (QEMU Virtual Machine) + + pci:v00008086d00002416* + ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller +@@ -60849,10 +60849,10 @@ pci:v00008086d00002425* + ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller + + pci:v00008086d00002425sv000011D4sd00000040* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002425sv000011D4sd00000048* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002426* + ID_MODEL_FROM_DATABASE=82801AB AC'97 Modem Controller +@@ -60864,352 +60864,352 @@ pci:v00008086d00002440* + ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) + + pci:v00008086d00002440sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E ++ ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) (S845WD1-E) + + pci:v00008086d00002442* + ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 + + pci:v00008086d00002442sv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Netvista A40/A40p) + + pci:v00008086d00002442sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) + + pci:v00008086d00002442sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) + + pci:v00008086d00002442sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) + + pci:v00008086d00002442sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) + + pci:v00008086d00002442sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) + + pci:v00008086d00002442sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) + + pci:v00008086d00002442sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) + + pci:v00008086d00002442sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) + + pci:v00008086d00002442sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) + + pci:v00008086d00002442sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EGEW Mainboard) + + pci:v00008086d00002442sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) + + pci:v00008086d00002443* + ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller + + pci:v00008086d00002443sv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Netvista A40/A40p) + + pci:v00008086d00002443sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Travelmate 612 TX) + + pci:v00008086d00002443sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Dimension 8100) + + pci:v00008086d00002443sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Precision 530) + + pci:v00008086d00002443sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Optiplex GX240) + + pci:v00008086d00002443sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (e-pc 40) + + pci:v00008086d00002443sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TUSL2-C Mainboard) + + pci:v00008086d00002443sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Vaio PCG-FX403) + + pci:v00008086d00002443sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TH7II-RAID) + + pci:v00008086d00002443sv000015D9sd00003280* +- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Supermicro P4SBE Mainboard) + + pci:v00008086d00002443sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EEA2 mainboard) + + pci:v00008086d00002443sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EGEW Mainboard) + + pci:v00008086d00002443sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (S845WD1-E mainboard) + + pci:v00008086d00002444* + ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 + + pci:v00008086d00002444sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) + + pci:v00008086d00002444sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) + + pci:v00008086d00002444sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) + + pci:v00008086d00002444sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) + + pci:v00008086d00002444sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) + + pci:v00008086d00002444sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) + + pci:v00008086d00002444sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) + + pci:v00008086d00002444sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) + + pci:v00008086d00002444sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) + + pci:v00008086d00002444sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) + + pci:v00008086d00002445* + ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller + + pci:v00008086d00002445sv00000E11sd0000000B* +- ID_MODEL_FROM_DATABASE=Compaq Deskpro EN Audio ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Compaq Deskpro EN Audio) + + pci:v00008086d00002445sv00000E11sd00000088* +- ID_MODEL_FROM_DATABASE=Evo D500 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Evo D500) + + pci:v00008086d00002445sv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Netvista A40/A40p) + + pci:v00008086d00002445sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Travelmate 612 TX) + + pci:v00008086d00002445sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Precision 530) + + pci:v00008086d00002445sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (e-pc 40) + + pci:v00008086d00002445sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Vaio PCG-FX403) + + pci:v00008086d00002445sv00001462sd00003370* +- ID_MODEL_FROM_DATABASE=STAC9721 AC ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (STAC9721 AC) + + pci:v00008086d00002445sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (TH7II-RAID) + + pci:v00008086d00002445sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (D815EGEW Mainboard) + + pci:v00008086d00002446* + ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller + + pci:v00008086d00002446sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Travelmate 612 TX) + + pci:v00008086d00002446sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Vaio PCG-FX403) + + pci:v00008086d00002448* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge + + pci:v00008086d00002448sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Latitude E6510) + + pci:v00008086d00002448sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002448sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (NX6110/NC6120) + + pci:v00008086d00002448sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nx9420 Notebook) + + pci:v00008086d00002448sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nw8440) + + pci:v00008086d00002448sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq 6910p) + + pci:v00008086d00002448sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (VAIO VGN-NR120E) + + pci:v00008086d00002448sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) + + pci:v00008086d00002448sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) + + pci:v00008086d00002448sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) + + pci:v00008086d00002448sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (GA-D525TUD) + + pci:v00008086d00002448sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Amilo M1420) + + pci:v00008086d00002448sv000017AAsd000020AE* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) + + pci:v00008086d00002448sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) + + pci:v00008086d00002448sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (CCG-RUMBA) + + pci:v00008086d00002449* + ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller + + pci:v00008086d00002449sv00000E11sd00000012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) + + pci:v00008086d00002449sv00000E11sd00000091* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001CE* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001DC* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001EB* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001EC* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000202* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000205* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000217* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000234* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd0000023D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000244* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000245* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000265* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) + + pci:v00008086d00002449sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) + + pci:v00008086d00002449sv00001014sd0000026A* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) + + pci:v00008086d00002449sv0000109Fsd0000315D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv0000109Fsd00003181* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001179sd0000FF01* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Network Connection) + + pci:v00008086d00002449sv00001186sd00007801* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv0000144Dsd00002602* +- ID_MODEL_FROM_DATABASE=HomePNA 1M CNR ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (HomePNA 1M CNR) + + pci:v00008086d00002449sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (QEMU Virtual Machine) + + pci:v00008086d00002449sv00008086sd00003010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00008086sd00003011* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) + + pci:v00008086d00002449sv00008086sd00003012* +- ID_MODEL_FROM_DATABASE=82562EH based Phoneline ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) + + pci:v00008086d00002449sv00008086sd00003013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00008086sd00003014* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) + + pci:v00008086d00002449sv00008086sd00003015* +- ID_MODEL_FROM_DATABASE=82562EH based Phoneline ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) + + pci:v00008086d00002449sv00008086sd00003016* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile Combo) + + pci:v00008086d00002449sv00008086sd00003017* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile) + + pci:v00008086d00002449sv00008086sd00003018* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100) + + pci:v00008086d0000244A* + ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller + + pci:v00008086d0000244Asv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612TX ++ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Travelmate 612TX) + + pci:v00008086d0000244Asv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Vaio PCG-FX403) + + pci:v00008086d0000244B* + ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller + + pci:v00008086d0000244Bsv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Netvista A40/A40p) + + pci:v00008086d0000244Bsv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Dimension 8100) + + pci:v00008086d0000244Bsv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Precision 530) + + pci:v00008086d0000244Bsv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Optiplex GX240) + + pci:v00008086d0000244Bsv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (e-pc 40) + + pci:v00008086d0000244Bsv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TUSL2-C Mainboard) + + pci:v00008086d0000244Bsv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TH7II-RAID) + + pci:v00008086d0000244Bsv000015D9sd00003280* +- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Supermicro P4SBE Mainboard) + + pci:v00008086d0000244Bsv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EEA2 mainboard) + + pci:v00008086d0000244Bsv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EGEW Mainboard) + + pci:v00008086d0000244Bsv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (S845WD1-E mainboard) + + pci:v00008086d0000244C* + ID_MODEL_FROM_DATABASE=82801BAM ISA Bridge (LPC) +@@ -61218,52 +61218,52 @@ pci:v00008086d0000244E* + ID_MODEL_FROM_DATABASE=82801 PCI Bridge + + pci:v00008086d0000244Esv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (NetVista A30p) + + pci:v00008086d0000244Esv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Inspiron 530) + + pci:v00008086d0000244Esv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Optiplex 755) + + pci:v00008086d0000244Esv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (OptiPlex 980) + + pci:v00008086d0000244Esv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Pavilion A1512X) + + pci:v00008086d0000244Esv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000244Esv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant DL140 G3) + + pci:v00008086d0000244Esv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant ML150 G6 Server) + + pci:v00008086d0000244Esv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P5K PRO Motherboard) + + pci:v00008086d0000244Esv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P8 series motherboard) + + pci:v00008086d0000244Esv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Motherboard) + + pci:v00008086d0000244Esv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Wind PC MS-7418) + + pci:v00008086d0000244Esv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (C7SIM-Q Motherboard) + + pci:v00008086d0000244Esv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (X7DBN Motherboard) + + pci:v00008086d0000244Esv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (CC11/CL11) + + pci:v00008086d0000244Esv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Server Board S1200BTS) + + pci:v00008086d00002450* + ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) +@@ -61293,160 +61293,160 @@ pci:v00008086d00002482* + ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 + + pci:v00008086d00002482sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Evo N600c) + + pci:v00008086d00002482sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (ThinkPad A/T/X Series) + + pci:v00008086d00002482sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002482sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (P4DP6) + + pci:v00008086d00002482sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (vpr Matrix 170B4) + + pci:v00008086d00002482sv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (SE7501HG2 Mainboard) + + pci:v00008086d00002482sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Latitude C640) + + pci:v00008086d00002483* + ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller + + pci:v00008086d00002483sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002483sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002483sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (P4DP6) + + pci:v00008086d00002483sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (vpr Matrix 170B4) + + pci:v00008086d00002484* + ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 + + pci:v00008086d00002484sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (Evo N600c) + + pci:v00008086d00002484sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (ThinkPad A/T/X Series) + + pci:v00008086d00002484sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002484sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (P4DP6) + + pci:v00008086d00002484sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (vpr Matrix 170B4) + + pci:v00008086d00002485* + ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller + + pci:v00008086d00002485sv00001013sd00005959* +- ID_MODEL_FROM_DATABASE=Crystal WMD Audio Codec ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (Crystal WMD Audio Codec) + + pci:v00008086d00002485sv00001014sd00000222* +- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p/T23 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A30/A30p/T23) + + pci:v00008086d00002485sv00001014sd00000508* +- ID_MODEL_FROM_DATABASE=ThinkPad T30 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad T30) + + pci:v00008086d00002485sv00001014sd0000051C* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002485sv00001043sd00001583* +- ID_MODEL_FROM_DATABASE=L3C (SPDIF) ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3C (SPDIF)) + + pci:v00008086d00002485sv00001043sd00001623* +- ID_MODEL_FROM_DATABASE=L2B (no SPDIF) ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L2B (no SPDIF)) + + pci:v00008086d00002485sv00001043sd00001643* +- ID_MODEL_FROM_DATABASE=L3F ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3F) + + pci:v00008086d00002485sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002485sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (vpr Matrix 170B4) + + pci:v00008086d00002486* + ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller + + pci:v00008086d00002486sv00001014sd00000223* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002486sv00001014sd00000503* +- ID_MODEL_FROM_DATABASE=ThinkPad R31 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad R31) + + pci:v00008086d00002486sv00001014sd0000051A* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002486sv0000101Fsd00001025* +- ID_MODEL_FROM_DATABASE=620 Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (620 Series) + + pci:v00008086d00002486sv00001043sd00001496* +- ID_MODEL_FROM_DATABASE=PCtel HSP56 MR ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (PCtel HSP56 MR) + + pci:v00008086d00002486sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002486sv0000134Dsd00004C21* +- ID_MODEL_FROM_DATABASE=Dell Inspiron 2100 internal modem ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (Dell Inspiron 2100 internal modem) + + pci:v00008086d00002486sv0000144Dsd00002115* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 internal modem ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (vpr Matrix 170B4 internal modem) + + pci:v00008086d00002486sv000014F1sd00005421* +- ID_MODEL_FROM_DATABASE=MD56ORD V.92 MDC Modem ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (MD56ORD V.92 MDC Modem) + + pci:v00008086d00002487* + ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 + + pci:v00008086d00002487sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (Evo N600c) + + pci:v00008086d00002487sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (ThinkPad A/T/X Series) + + pci:v00008086d00002487sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002487sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (P4DP6) + + pci:v00008086d00002487sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (vpr Matrix 170B4) + + pci:v00008086d0000248A* + ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller + + pci:v00008086d0000248Asv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Evo N600c) + + pci:v00008086d0000248Asv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (ThinkPad A/T/X Series) + + pci:v00008086d0000248Asv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d0000248Asv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (vpr Matrix 170B4) + + pci:v00008086d0000248Asv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Latitude C640) + + pci:v00008086d0000248B* + ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller + + pci:v00008086d0000248Bsv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller (P4DP6) + + pci:v00008086d0000248C* + ID_MODEL_FROM_DATABASE=82801CAM ISA Bridge (LPC) +@@ -61455,10 +61455,10 @@ pci:v00008086d000024C0* + ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge + + pci:v00008086d000024C0sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (NetVista A30p) + + pci:v00008086d000024C0sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (845PE Max (MS-6580)) + + pci:v00008086d000024C1* + ID_MODEL_FROM_DATABASE=82801DBL (ICH4-L) IDE Controller +@@ -61467,574 +61467,574 @@ pci:v00008086d000024C2* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 + + pci:v00008086d000024C2sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NetVista A30p) + + pci:v00008086d000024C2sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (ThinkPad) + + pci:v00008086d000024C2sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (TravelMate 290) + + pci:v00008086d000024C2sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Optiplex GX260) + + pci:v00008086d000024C2sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D505) + + pci:v00008086d000024C2sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 700m/710m) + + pci:v00008086d000024C2sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 5160) + + pci:v00008086d000024C2sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC8000 laptop) + + pci:v00008086d000024C2sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC6000 laptop) + + pci:v00008086d000024C2sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (tc1100 tablet) + + pci:v00008086d000024C2sv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P4B533) + + pci:v00008086d000024C2sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (MIM2000) + + pci:v00008086d000024C2sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard USB 1.x ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (PC8 onboard USB 1.x) + + pci:v00008086d000024C2sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (X10 Laptop) + + pci:v00008086d000024C2sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P30/P35 notebook) + + pci:v00008086d000024C2sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (845PE Max (MS-6580)) + + pci:v00008086d000024C2sv00001509sd00002990* +- ID_MODEL_FROM_DATABASE=Averatec 5110H laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Averatec 5110H laptop) + + pci:v00008086d000024C2sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C2sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Amilo M1420) + + pci:v00008086d000024C2sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C2sv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude X300) + + pci:v00008086d000024C2sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D400/D500) + + pci:v00008086d000024C2sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CC9-SAMBA) + + pci:v00008086d000024C2sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CD2-BEBOP) + + pci:v00008086d000024C3* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller + + pci:v00008086d000024C3sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NetVista A30p) + + pci:v00008086d000024C3sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (ThinkPad) + + pci:v00008086d000024C3sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (TravelMate 290) + + pci:v00008086d000024C3sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Optiplex GX260) + + pci:v00008086d000024C3sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Latitude X300) + + pci:v00008086d000024C3sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Inspiron 700m/710m) + + pci:v00008086d000024C3sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC8000 laptop) + + pci:v00008086d000024C3sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC6000 laptop) + + pci:v00008086d000024C3sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (tc1100 tablet) + + pci:v00008086d000024C3sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (MIM2000) + + pci:v00008086d000024C3sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard SMbus ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (PC8 onboard SMbus) + + pci:v00008086d000024C3sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (X10 Laptop) + + pci:v00008086d000024C3sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (P30/P35 notebook) + + pci:v00008086d000024C3sv00001458sd000024C2* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (GA-8PE667 Ultra) + + pci:v00008086d000024C3sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (845PE Max (MS-6580)) + + pci:v00008086d000024C3sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C3sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Amilo M1420) + + pci:v00008086d000024C3sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C3sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CC9-SAMBA) + + pci:v00008086d000024C3sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CD2-BEBOP) + + pci:v00008086d000024C4* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 + + pci:v00008086d000024C4sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NetVista A30p) + + pci:v00008086d000024C4sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (ThinkPad) + + pci:v00008086d000024C4sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (TravelMate 290) + + pci:v00008086d000024C4sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Optiplex GX260) + + pci:v00008086d000024C4sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D505) + + pci:v00008086d000024C4sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 700m/710m) + + pci:v00008086d000024C4sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 5160) + + pci:v00008086d000024C4sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC8000 laptop) + + pci:v00008086d000024C4sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC6000 laptop) + + pci:v00008086d000024C4sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (tc1100 tablet) + + pci:v00008086d000024C4sv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P4B533) + + pci:v00008086d000024C4sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (MIM2000) + + pci:v00008086d000024C4sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P30/P35 notebook) + + pci:v00008086d000024C4sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (845PE Max (MS-6580)) + + pci:v00008086d000024C4sv00001509sd00002990* +- ID_MODEL_FROM_DATABASE=Averatec 5110H ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Averatec 5110H) + + pci:v00008086d000024C4sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C4sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C4sv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude X300) + + pci:v00008086d000024C4sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D400/D500) + + pci:v00008086d000024C4sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CC9-SAMBA) + + pci:v00008086d000024C4sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CD2-BEBOP) + + pci:v00008086d000024C5* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller + + pci:v00008086d000024C5sv00000E11sd000000B8* +- ID_MODEL_FROM_DATABASE=Analog Devices Inc. codec [SoundMAX] ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Analog Devices Inc. codec [SoundMAX]) + + pci:v00008086d000024C5sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) + + pci:v00008086d000024C5sv00001014sd00000537* +- ID_MODEL_FROM_DATABASE=ThinkPad T41 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) + + pci:v00008086d000024C5sv00001014sd0000055F* +- ID_MODEL_FROM_DATABASE=Thinkpad R50e model 1634 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) + + pci:v00008086d000024C5sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (TravelMate 290) + + pci:v00008086d000024C5sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D400) + + pci:v00008086d000024C5sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude X300) + + pci:v00008086d000024C5sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D500) + + pci:v00008086d000024C5sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D505) + + pci:v00008086d000024C5sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m [SigmaTel STAC9750,51] ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 700m/710m [SigmaTel STAC9750,51]) + + pci:v00008086d000024C5sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 5160) + + pci:v00008086d000024C5sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC8000 laptop) + + pci:v00008086d000024C5sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC6000 laptop) + + pci:v00008086d000024C5sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (tc1100 tablet) + + pci:v00008086d000024C5sv00001043sd00001713* +- ID_MODEL_FROM_DATABASE=M2400N/M6800N laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (M2400N/M6800N laptop) + + pci:v00008086d000024C5sv00001043sd000080B0* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P4B533) + + pci:v00008086d000024C5sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (MIM2000) + + pci:v00008086d000024C5sv00001179sd00000201* +- ID_MODEL_FROM_DATABASE=Toshiba Tecra M1 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Toshiba Tecra M1) + + pci:v00008086d000024C5sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (X10 Laptop) + + pci:v00008086d000024C5sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P30/P35 notebook) + + pci:v00008086d000024C5sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (GA-8PE667 Ultra) + + pci:v00008086d000024C5sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (845PE Max (MS-6580)) + + pci:v00008086d000024C5sv00001734sd00001005* +- ID_MODEL_FROM_DATABASE=D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T) + + pci:v00008086d000024C5sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Amilo M1420) + + pci:v00008086d000024C5sv00008086sd000024C5* +- ID_MODEL_FROM_DATABASE=Dell Dimension 2400 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Dell Dimension 2400) + + pci:v00008086d000024C6* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller + + pci:v00008086d000024C6sv00001014sd00000524* +- ID_MODEL_FROM_DATABASE=ThinkPad T41 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) + + pci:v00008086d000024C6sv00001014sd00000525* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) + + pci:v00008086d000024C6sv00001014sd00000559* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad R50e) + + pci:v00008086d000024C6sv00001025sd0000003C* +- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compal CL50 motherboard) implementation ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Aspire 2001WLCi (Compal CL50 motherboard) implementation) + + pci:v00008086d000024C6sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (TravelMate 290) + + pci:v00008086d000024C6sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Inspiron 5160) + + pci:v00008086d000024C6sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC8000 laptop) + + pci:v00008086d000024C6sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC6000 laptop) + + pci:v00008086d000024C6sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (tc1100 tablet) + + pci:v00008086d000024C6sv00001043sd00001716* +- ID_MODEL_FROM_DATABASE=M2400N laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M2400N laptop) + + pci:v00008086d000024C6sv00001043sd00001826* +- ID_MODEL_FROM_DATABASE=M6800N ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M6800N) + + pci:v00008086d000024C6sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (MIM2000) + + pci:v00008086d000024C6sv0000134Dsd00004C21* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Latitude D500) + + pci:v00008086d000024C6sv0000144Dsd00002115* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (X10 Laptop) + + pci:v00008086d000024C6sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (P30/P35 notebook) + + pci:v00008086d000024C6sv000014F1sd00005422* +- ID_MODEL_FROM_DATABASE=D480 MDC V.9x Modem ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (D480 MDC V.9x Modem) + + pci:v00008086d000024C7* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 + + pci:v00008086d000024C7sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NetVista A30p) + + pci:v00008086d000024C7sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (ThinkPad) + + pci:v00008086d000024C7sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (TravelMate 290) + + pci:v00008086d000024C7sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Optiplex GX260) + + pci:v00008086d000024C7sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D505) + + pci:v00008086d000024C7sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 700m/710m) + + pci:v00008086d000024C7sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 5160) + + pci:v00008086d000024C7sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC8000 laptop) + + pci:v00008086d000024C7sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC6000 laptop) + + pci:v00008086d000024C7sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (tc1100 tablet) + + pci:v00008086d000024C7sv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P4B533) + + pci:v00008086d000024C7sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (MIM2000) + + pci:v00008086d000024C7sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P30/P35 notebook) + + pci:v00008086d000024C7sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (845PE Max (MS-6580)) + + pci:v00008086d000024C7sv00001509sd00002990* +- ID_MODEL_FROM_DATABASE=Averatec 5110H ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Averatec 5110H) + + pci:v00008086d000024C7sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C7sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C7sv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude X300) + + pci:v00008086d000024C7sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D400/D500) + + pci:v00008086d000024C7sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CC9-SAMBA) + + pci:v00008086d000024C7sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CD2-BEBOP) + + pci:v00008086d000024CA* + ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller + + pci:v00008086d000024CAsv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (ThinkPad) + + pci:v00008086d000024CAsv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (TravelMate 290) + + pci:v00008086d000024CAsv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude X300) + + pci:v00008086d000024CAsv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D505) + + pci:v00008086d000024CAsv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 700m/710m) + + pci:v00008086d000024CAsv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 5160) + + pci:v00008086d000024CAsv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC8000 laptop) + + pci:v00008086d000024CAsv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC6000 laptop) + + pci:v00008086d000024CAsv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (tc1100 tablet) + + pci:v00008086d000024CAsv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (MIM2000) + + pci:v00008086d000024CAsv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (X10 Laptop) + + pci:v00008086d000024CAsv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (P30/P35 notebook) + + pci:v00008086d000024CAsv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Amilo M1420) + + pci:v00008086d000024CAsv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D400/D500) + + pci:v00008086d000024CB* + ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller + + pci:v00008086d000024CBsv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (NetVista A30p) + + pci:v00008086d000024CBsv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Optiplex GX260) + + pci:v00008086d000024CBsv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (P4B533) + + pci:v00008086d000024CBsv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard IDE ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (PC8 onboard IDE) + + pci:v00008086d000024CBsv00001458sd000024C2* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (GA-8PE667 Ultra) + + pci:v00008086d000024CBsv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (845PE Max (MS-6580)) + + pci:v00008086d000024CBsv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024CBsv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d000024CBsv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CC9-SAMBA) + + pci:v00008086d000024CBsv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CD2-BEBOP) + + pci:v00008086d000024CC* + ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge + + pci:v00008086d000024CCsv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (P30 notebook) + + pci:v00008086d000024CCsv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (Amilo M1420) + + pci:v00008086d000024CD* + ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller + + pci:v00008086d000024CDsv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NetVista A30p) + + pci:v00008086d000024CDsv00001014sd0000052E* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (ThinkPad) + + pci:v00008086d000024CDsv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (TravelMate 290) + + pci:v00008086d000024CDsv00001028sd0000011D* +- ID_MODEL_FROM_DATABASE=Latitude D600 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D600) + + pci:v00008086d000024CDsv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Optiplex GX260) + + pci:v00008086d000024CDsv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D400) + + pci:v00008086d000024CDsv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D500) + + pci:v00008086d000024CDsv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D505) + + pci:v00008086d000024CDsv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 700m/710m) + + pci:v00008086d000024CDsv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 5160) + + pci:v00008086d000024CDsv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC8000 laptop) + + pci:v00008086d000024CDsv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC6000 laptop) + + pci:v00008086d000024CDsv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (tc1100 tablet) + + pci:v00008086d000024CDsv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P4B533) + + pci:v00008086d000024CDsv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (MIM2000) + + pci:v00008086d000024CDsv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard USB 2.0 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (PC8 onboard USB 2.0) + + pci:v00008086d000024CDsv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Satellite 2430 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Satellite 2430) + + pci:v00008086d000024CDsv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (X10 Laptop) + + pci:v00008086d000024CDsv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P30/P35 notebook) + + pci:v00008086d000024CDsv00001462sd00003981* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (845PE Max (MS-6580)) + + pci:v00008086d000024CDsv00001509sd00001968* +- ID_MODEL_FROM_DATABASE=Averatec 5110H ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Averatec 5110H) + + pci:v00008086d000024CDsv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024CDsv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Amilo M1420) + + pci:v00008086d000024CDsv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (QEMU Virtual Machine) + + pci:v00008086d000024CDsv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d000024CDsv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude X300) + + pci:v00008086d000024CDsv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CC9-SAMBA) + + pci:v00008086d000024CDsv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CD2-BEBOP) + + pci:v00008086d000024D0* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) LPC Interface Bridge +@@ -62043,436 +62043,436 @@ pci:v00008086d000024D1* + ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller + + pci:v00008086d000024D1sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D1sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision 470) + + pci:v00008086d000024D1sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (PowerEdge SC1425) + + pci:v00008086d000024D1sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (d530 CMT (DG746A)) + + pci:v00008086d000024D1sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (ProLiant DL140 G2) + + pci:v00008086d000024D1sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4P800 series motherboard) + + pci:v00008086d000024D1sv00001458sd000024D1* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D1sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D1sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D1sv00001565sd00005200* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4TSV Motherboard (865G)) + + pci:v00008086d000024D1sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4SCE Mainboard) + + pci:v00008086d000024D1sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (S875WP1-E mainboard) + + pci:v00008086d000024D1sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GBF) + + pci:v00008086d000024D1sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GLC) + + pci:v00008086d000024D1sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (D865PERL mainboard) + + pci:v00008086d000024D2* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 + + pci:v00008086d000024D2sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) + + pci:v00008086d000024D2sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) + + pci:v00008086d000024D2sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D2sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision 470) + + pci:v00008086d000024D2sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1850 onboard UHCI) + + pci:v00008086d000024D2sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 2850 onboard UHCI) + + pci:v00008086d000024D2sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 6850 onboard UHCI) + + pci:v00008086d000024D2sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1800) + + pci:v00008086d000024D2sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge SC1425) + + pci:v00008086d000024D2sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (NX9500) + + pci:v00008086d000024D2sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (d530 CMT (DG746A)) + + pci:v00008086d000024D2sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (ProLiant DL140 G2) + + pci:v00008086d000024D2sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D2sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (GA-8IPE1000/8KNXP motherboard) + + pci:v00008086d000024D2sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D2sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4TSV Motherboard (865G)) + + pci:v00008086d000024D2sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4SCE Mainboard) + + pci:v00008086d000024D2sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PRIMERGY RX/TX series onboard UHCI) + + pci:v00008086d000024D2sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (S875WP1-E mainboard) + + pci:v00008086d000024D2sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GBF) + + pci:v00008086d000024D2sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GLC) + + pci:v00008086d000024D2sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (D865PERL mainboard) + + pci:v00008086d000024D3* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller + + pci:v00008086d000024D3sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) + + pci:v00008086d000024D3sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) + + pci:v00008086d000024D3sv00001028sd00000156* +- ID_MODEL_FROM_DATABASE=Precision 360 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 360) + + pci:v00008086d000024D3sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D3sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 470) + + pci:v00008086d000024D3sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d330 uT ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (d330 uT) + + pci:v00008086d000024D3sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (ProLiant DL140 G2) + + pci:v00008086d000024D3sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D3sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D3sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D3sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D3sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4TSV Motherboard (865G)) + + pci:v00008086d000024D3sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4SCE Mainboard) + + pci:v00008086d000024D3sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series SMBus ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (PRIMERGY RX/TX S2 series SMBus) + + pci:v00008086d000024D3sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (S875WP1-E mainboard) + + pci:v00008086d000024D3sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GBF) + + pci:v00008086d000024D3sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GLC) + + pci:v00008086d000024D3sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (D865PERL mainboard) + + pci:v00008086d000024D4* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 + + pci:v00008086d000024D4sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) + + pci:v00008086d000024D4sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) + + pci:v00008086d000024D4sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D4sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision 470) + + pci:v00008086d000024D4sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1850 onboard UHCI) + + pci:v00008086d000024D4sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 2850 onboard UHCI) + + pci:v00008086d000024D4sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 6850 onboard UHCI) + + pci:v00008086d000024D4sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1800) + + pci:v00008086d000024D4sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge SC1425) + + pci:v00008086d000024D4sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (NX9500) + + pci:v00008086d000024D4sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (d530 CMT (DG746A)) + + pci:v00008086d000024D4sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (ProLiant DL140 G2) + + pci:v00008086d000024D4sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D4sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D4sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D4sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D4sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4TSV Motherboard (865G)) + + pci:v00008086d000024D4sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4SCE Mainboard) + + pci:v00008086d000024D4sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PRIMERGY RX/TX S2 series onboard UHCI) + + pci:v00008086d000024D4sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (S875WP1-E mainboard) + + pci:v00008086d000024D4sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GBF) + + pci:v00008086d000024D4sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GLC) + + pci:v00008086d000024D4sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (D865PERL mainboard) + + pci:v00008086d000024D5* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller + + pci:v00008086d000024D5sv0000100Asd0000147B* +- ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Abit IS7-E motherboard) + + pci:v00008086d000024D5sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D5sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision 470) + + pci:v00008086d000024D5sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (NX9500) + + pci:v00008086d000024D5sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d330 uT ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (d330 uT) + + pci:v00008086d000024D5sv00001043sd000080F3* +- ID_MODEL_FROM_DATABASE=P4P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P4P800 series motherboard) + + pci:v00008086d000024D5sv00001043sd0000810F* +- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P5P800-MX Mainboard) + + pci:v00008086d000024D5sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (GA-8IPE1000/8KNXP motherboard) + + pci:v00008086d000024D5sv00001462sd00000080* +- ID_MODEL_FROM_DATABASE=865PE Neo2-V (MS-6788) Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2-V (MS-6788) Mainboard) + + pci:v00008086d000024D5sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D5sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D5sv00008086sd0000A000* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) + + pci:v00008086d000024D5sv00008086sd0000E000* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) + + pci:v00008086d000024D5sv00008086sd0000E001* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Desktop Board D865GBF) + + pci:v00008086d000024D5sv00008086sd0000E002* +- ID_MODEL_FROM_DATABASE=SoundMax Intergrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (SoundMax Intergrated Digital Audio) + + pci:v00008086d000024D6* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller + + pci:v00008086d000024D6sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller (NX9500) + + pci:v00008086d000024D7* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 + + pci:v00008086d000024D7sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (xSeries server mainboard) + + pci:v00008086d000024D7sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D7sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision 470) + + pci:v00008086d000024D7sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1850 onboard UHCI) + + pci:v00008086d000024D7sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 2850 onboard UHCI) + + pci:v00008086d000024D7sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 6850 onboard UHCI) + + pci:v00008086d000024D7sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1800) + + pci:v00008086d000024D7sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (NX9500) + + pci:v00008086d000024D7sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (d530 CMT (DG746A)) + + pci:v00008086d000024D7sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D7sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D7sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D7sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D7sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4TSV Motherboard (865G)) + + pci:v00008086d000024D7sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4SCE Mainboard) + + pci:v00008086d000024D7sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PRIMERGY RX/TX S2 series onboard UHCI) + + pci:v00008086d000024D7sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (S875WP1-E mainboard) + + pci:v00008086d000024D7sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GBF) + + pci:v00008086d000024D7sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GLC) + + pci:v00008086d000024D7sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (D865PERL mainboard) + + pci:v00008086d000024DB* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller + + pci:v00008086d000024DBsv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DBsv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DBsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024DBsv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision 470) + + pci:v00008086d000024DBsv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 IDE Controller ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 1850 IDE Controller) + + pci:v00008086d000024DBsv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 IDE Controller ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 2850 IDE Controller) + + pci:v00008086d000024DBsv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 IDE Controller ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 6850 IDE Controller) + + pci:v00008086d000024DBsv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge SC1425) + + pci:v00008086d000024DBsv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (NX9500) + + pci:v00008086d000024DBsv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (d530 CMT (DG746A)) + + pci:v00008086d000024DBsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4P800/P5P800 series motherboard) + + pci:v00008086d000024DBsv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024DBsv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024DBsv00001462sd00007580* +- ID_MODEL_FROM_DATABASE=MSI 875P ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (MSI 875P) + + pci:v00008086d000024DBsv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024DBsv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4TSV Motherboard (865G)) + + pci:v00008086d000024DBsv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4SCE Mainboard) + + pci:v00008086d000024DBsv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard IDE ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PRIMERGY RX/TX S2 series onboard IDE) + + pci:v00008086d000024DBsv00008086sd000024DB* +- ID_MODEL_FROM_DATABASE=P4C800 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4C800 Mainboard) + + pci:v00008086d000024DBsv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (S875WP1-E mainboard) + + pci:v00008086d000024DBsv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GBF) + + pci:v00008086d000024DBsv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GLC) + + pci:v00008086d000024DBsv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (D865PERL mainboard) + + pci:v00008086d000024DC* + ID_MODEL_FROM_DATABASE=82801EB (ICH5) LPC Interface Bridge +@@ -62481,142 +62481,142 @@ pci:v00008086d000024DD* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller + + pci:v00008086d000024DDsv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DDsv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DDsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024DDsv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision 470) + + pci:v00008086d000024DDsv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1850 onboard EHCI) + + pci:v00008086d000024DDsv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 2850 onboard EHCI) + + pci:v00008086d000024DDsv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 6850 onboard EHCI) + + pci:v00008086d000024DDsv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1800) + + pci:v00008086d000024DDsv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge SC1425) + + pci:v00008086d000024DDsv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (NX9500) + + pci:v00008086d000024DDsv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (d530 CMT (DG746A)) + + pci:v00008086d000024DDsv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (ProLiant DL140 G2) + + pci:v00008086d000024DDsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (P4P800/P5P800 series motherboard) + + pci:v00008086d000024DDsv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024DDsv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024DDsv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024DDsv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (S875WP1-E mainboard) + + pci:v00008086d000024DDsv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GBF) + + pci:v00008086d000024DDsv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GLC) + + pci:v00008086d000024DDsv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (D865PERL mainboard) + + pci:v00008086d000024DE* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 + + pci:v00008086d000024DEsv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (xSeries server mainboard) + + pci:v00008086d000024DEsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024DEsv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision 470) + + pci:v00008086d000024DEsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024DEsv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024DEsv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024DEsv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024DEsv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4TSV Motherboard (865G)) + + pci:v00008086d000024DEsv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4SCE Mainboard) + + pci:v00008086d000024DEsv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (PRIMERGY RX/TX S2 series onboard UHCI) + + pci:v00008086d000024DEsv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (S875WP1-E mainboard) + + pci:v00008086d000024DEsv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GBF) + + pci:v00008086d000024DEsv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GLC) + + pci:v00008086d000024DEsv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (D865PERL mainboard) + + pci:v00008086d000024DF* + ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller + + pci:v00008086d000024DFsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024F3* + ID_MODEL_FROM_DATABASE=Wireless 8260 + + pci:v00008086d000024F3sv00008086sd00000010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) + + pci:v00008086d000024F4* + ID_MODEL_FROM_DATABASE=Wireless 8260 + + pci:v00008086d000024F4sv00008086sd00000030* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) + + pci:v00008086d00002500* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) + + pci:v00008086d00002500sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Chipset ++ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (Precision Workstation 220 Chipset) + + pci:v00008086d00002500sv00001043sd0000801C* +- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset ++ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) + + pci:v00008086d00002501* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) + + pci:v00008086d00002501sv00001043sd0000801C* +- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset ++ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) + + pci:v00008086d0000250B* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge +@@ -62634,16 +62634,16 @@ pci:v00008086d00002530* + ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) + + pci:v00008086d00002530sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (Dimension 8100) + + pci:v00008086d00002530sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (TH7II-RAID) + + pci:v00008086d00002531* + ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) + + pci:v00008086d00002531sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) (Precision 530) + + pci:v00008086d00002532* + ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset AGP Bridge +@@ -62658,19 +62658,19 @@ pci:v00008086d00002540* + ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub + + pci:v00008086d00002540sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub (P4DP6) + + pci:v00008086d00002541* + ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller + + pci:v00008086d00002541sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (P4DP6) + + pci:v00008086d00002541sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d00002541sv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (SE7501HG2 Mainboard) + + pci:v00008086d00002543* + ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B PCI-to-PCI Bridge +@@ -62679,7 +62679,7 @@ pci:v00008086d00002544* + ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller + + pci:v00008086d00002544sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d00002545* + ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface C PCI-to-PCI Bridge +@@ -62697,10 +62697,10 @@ pci:v00008086d0000254C* + ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub + + pci:v00008086d0000254Csv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (Cx9 / Vx9 mainboard) + + pci:v00008086d0000254Csv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (SE7501HG2 Mainboard) + + pci:v00008086d00002550* + ID_MODEL_FROM_DATABASE=E7505 Memory Controller Hub +@@ -62724,13 +62724,13 @@ pci:v00008086d00002560* + ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface + + pci:v00008086d00002560sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (Optiplex GX260) + + pci:v00008086d00002560sv00001458sd00002560* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (GA-8PE667 Ultra) + + pci:v00008086d00002560sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (845PE Max (MS-6580)) + + pci:v00008086d00002561* + ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge +@@ -62739,31 +62739,31 @@ pci:v00008086d00002562* + ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device + + pci:v00008086d00002562sv00000E11sd000000B9* +- ID_MODEL_FROM_DATABASE=Evo D510 SFF ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (Evo D510 SFF) + + pci:v00008086d00002562sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (NetVista A30p) + + pci:v00008086d00002562sv00001734sd00001003* +- ID_MODEL_FROM_DATABASE=D1521 Mainboard (Fujitsu-Siemens) ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1521 Mainboard (Fujitsu-Siemens)) + + pci:v00008086d00002562sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d00002570* + ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface + + pci:v00008086d00002570sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (NX9500) + + pci:v00008086d00002570sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d330 uT ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (d330 uT) + + pci:v00008086d00002570sv00001043sd000080F2* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (P4P800/P5P800 series motherboard) + + pci:v00008086d00002570sv00001458sd00002570* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d00002571* + ID_MODEL_FROM_DATABASE=82865G/PE/P AGP Bridge +@@ -62772,25 +62772,25 @@ pci:v00008086d00002572* + ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller + + pci:v00008086d00002572sv00001028sd0000019D* +- ID_MODEL_FROM_DATABASE=Dimension 3000 ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Dimension 3000) + + pci:v00008086d00002572sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=D530 sff(dc578av) ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (D530 sff(dc578av)) + + pci:v00008086d00002572sv00001043sd000080A5* +- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (P5P800-MX Mainboard) + + pci:v00008086d00002572sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d00002572sv00001734sd0000101B* +- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Scenic E300 i865GV ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Fujitsu-Siemens Scenic E300 i865GV) + + pci:v00008086d00002572sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GBF) + + pci:v00008086d00002572sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GLC) + + pci:v00008086d00002573* + ID_MODEL_FROM_DATABASE=82865G/PE/P PCI to CSA Bridge +@@ -62802,13 +62802,13 @@ pci:v00008086d00002578* + ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub + + pci:v00008086d00002578sv00001458sd00002578* +- ID_MODEL_FROM_DATABASE=GA-8KNXP motherboard (875P) ++ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (GA-8KNXP motherboard (875P)) + + pci:v00008086d00002578sv00001462sd00007580* +- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) ++ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (MS-6758 (875P Neo)) + + pci:v00008086d00002578sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Motherboard ++ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (P4SCE Motherboard) + + pci:v00008086d00002579* + ID_MODEL_FROM_DATABASE=82875P Processor to AGP Controller +@@ -62823,13 +62823,13 @@ pci:v00008086d00002580* + ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub + + pci:v00008086d00002580sv00001458sd00002580* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (GA-8I915ME-G Mainboard) + + pci:v00008086d00002580sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (915P/G Neo2) + + pci:v00008086d00002580sv00001734sd0000105B* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (Scenic W620) + + pci:v00008086d00002581* + ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL PCI Express Root Port +@@ -62838,28 +62838,28 @@ pci:v00008086d00002582* + ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller + + pci:v00008086d00002582sv00001028sd00001079* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Optiplex GX280) + + pci:v00008086d00002582sv0000103Csd00003006* +- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (DC7100 SFF(DX878AV)) + + pci:v00008086d00002582sv00001043sd00002582* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002582sv00001458sd00002582* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d00002582sv00001734sd0000105B* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Scenic W620) + + pci:v00008086d00002582sv00001849sd00002582* +- ID_MODEL_FROM_DATABASE=ASRock P4Dual-915GL ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (ASRock P4Dual-915GL) + + pci:v00008086d00002584* + ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub + + pci:v00008086d00002584sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub (Dimension 8400) + + pci:v00008086d00002585* + ID_MODEL_FROM_DATABASE=82925X/XE PCI Express Root Port +@@ -62877,58 +62877,58 @@ pci:v00008086d00002590* + ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller + + pci:v00008086d00002590sv00001014sd00000575* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (ThinkPad Z60t) + + pci:v00008086d00002590sv00001028sd00000182* +- ID_MODEL_FROM_DATABASE=Dell Latitude C610 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Dell Latitude C610) + + pci:v00008086d00002590sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Compaq nw8240/nx8220) + + pci:v00008086d00002590sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (NX6110/NC6120) + + pci:v00008086d00002590sv0000104Dsd000081B7* +- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) + + pci:v00008086d00002590sv0000A304sd000081B7* +- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) + + pci:v00008086d00002590sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CCD-CALYPSO) + + pci:v00008086d00002590sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CD3-JIVE) + + pci:v00008086d00002590sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (XB1) + + pci:v00008086d00002591* + ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port + + pci:v00008086d00002591sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002592* + ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller + + pci:v00008086d00002592sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) + + pci:v00008086d00002592sv0000103Csd0000308A* +- ID_MODEL_FROM_DATABASE=NC6220 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NC6220) + + pci:v00008086d00002592sv00001043sd00001881* +- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) + + pci:v00008086d00002592sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) + + pci:v00008086d00002592sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) + + pci:v00008086d00002592sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) + + pci:v00008086d000025A1* + ID_MODEL_FROM_DATABASE=6300ESB LPC Interface Controller +@@ -62937,79 +62937,79 @@ pci:v00008086d000025A2* + ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller + + pci:v00008086d000025A2sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A2sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer IDE ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (V5D Single Board Computer IDE) + + pci:v00008086d000025A2sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A2sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CE9) + + pci:v00008086d000025A2sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CL9 mainboard) + + pci:v00008086d000025A2sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (PSL09 PrPMC) + + pci:v00008086d000025A3* + ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller + + pci:v00008086d000025A3sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A3sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A3sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CE9) + + pci:v00008086d000025A3sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CL9 mainboard) + + pci:v00008086d000025A3sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025A3sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (PSL09 PrPMC) + + pci:v00008086d000025A4* + ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller + + pci:v00008086d000025A4sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A4sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (V5D Single Board Computer) + + pci:v00008086d000025A4sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A4sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CE9) + + pci:v00008086d000025A4sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CL9 mainboard) + + pci:v00008086d000025A4sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025A4sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (PSL09 PrPMC) + + pci:v00008086d000025A6* + ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller + + pci:v00008086d000025A6sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A6sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CE9) + + pci:v00008086d000025A6sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CL9 mainboard) + + pci:v00008086d000025A7* + ID_MODEL_FROM_DATABASE=6300ESB AC'97 Modem Controller +@@ -63018,121 +63018,121 @@ pci:v00008086d000025A9* + ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller + + pci:v00008086d000025A9sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A9sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (V5D Single Board Computer USB) + + pci:v00008086d000025A9sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A9sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) + + pci:v00008086d000025A9sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) + + pci:v00008086d000025A9sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025A9sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) + + pci:v00008086d000025AA* + ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller + + pci:v00008086d000025AAsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025AAsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025AAsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) + + pci:v00008086d000025AAsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) + + pci:v00008086d000025AAsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025AAsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) + + pci:v00008086d000025AB* + ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer + + pci:v00008086d000025ABsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025ABsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (V5D Single Board Computer) + + pci:v00008086d000025ABsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CR11/VR11 Single Board Computer) + + pci:v00008086d000025ABsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CE9) + + pci:v00008086d000025ABsv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (QEMU Virtual Machine) + + pci:v00008086d000025ABsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CL9 mainboard) + + pci:v00008086d000025ABsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Telum ASLP10 Processor AMC) + + pci:v00008086d000025ABsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (PSL09 PrPMC) + + pci:v00008086d000025AC* + ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller + + pci:v00008086d000025ACsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025ACsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (V5D Single Board Computer) + + pci:v00008086d000025ACsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025ACsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CE9) + + pci:v00008086d000025ACsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CL9 mainboard) + + pci:v00008086d000025ACsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025ACsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (PSL09 PrPMC) + + pci:v00008086d000025AD* + ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller + + pci:v00008086d000025ADsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025ADsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB 2.0 ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (V5D Single Board Computer USB 2.0) + + pci:v00008086d000025ADsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025ADsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CE9) + + pci:v00008086d000025ADsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CL9 mainboard) + + pci:v00008086d000025ADsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025ADsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (PSL09 PrPMC) + + pci:v00008086d000025AE* + ID_MODEL_FROM_DATABASE=6300ESB 64-bit PCI-X Bridge +@@ -63141,13 +63141,13 @@ pci:v00008086d000025B0* + ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller + + pci:v00008086d000025B0sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025B0sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025B0sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (PSL09 PrPMC) + + pci:v00008086d000025C0* + ID_MODEL_FROM_DATABASE=5000X Chipset Memory Controller Hub +@@ -63159,16 +63159,16 @@ pci:v00008086d000025D4* + ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub + + pci:v00008086d000025D4sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub (X7DVL-E-O motherboard) + + pci:v00008086d000025D8* + ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub + + pci:v00008086d000025D8sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (X7DBN Motherboard) + + pci:v00008086d000025D8sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (S5000PSLSATA Server Board) + + pci:v00008086d000025E2* + ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x4 Port 2 +@@ -63192,79 +63192,79 @@ pci:v00008086d000025F0* + ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers + + pci:v00008086d000025F0sv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 FSB Registers ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (PowerEdge 1955 FSB Registers) + + pci:v00008086d000025F0sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (ProLiant DL140 G3) + + pci:v00008086d000025F0sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F0sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DBN Motherboard) + + pci:v00008086d000025F0sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F1* + ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers + + pci:v00008086d000025F1sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) + + pci:v00008086d000025F1sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F1sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) + + pci:v00008086d000025F1sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F3* + ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers + + pci:v00008086d000025F3sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) + + pci:v00008086d000025F3sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F3sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) + + pci:v00008086d000025F3sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F5* + ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers + + pci:v00008086d000025F5sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) + + pci:v00008086d000025F5sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F5sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) + + pci:v00008086d000025F5sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F6* + ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers + + pci:v00008086d000025F6sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) + + pci:v00008086d000025F6sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F6sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) + + pci:v00008086d000025F6sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F7* + ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x8 Port 2-3 +@@ -63282,7 +63282,7 @@ pci:v00008086d00002600* + ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 + + pci:v00008086d00002600sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Hub Interface ++ ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 (PowerEdge 6850 Hub Interface) + + pci:v00008086d00002601* + ID_MODEL_FROM_DATABASE=E8500/E8501 PCI Express x4 Port D +@@ -63363,76 +63363,76 @@ pci:v00008086d00002620* + ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge + + pci:v00008086d00002620sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Bridge ++ ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge (PowerEdge 6850 Memory Bridge) + + pci:v00008086d00002621* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers + + pci:v00008086d00002621sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 XMB Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers (PowerEdge 6850 XMB Registers) + + pci:v00008086d00002622* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers + + pci:v00008086d00002622sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Interleaving Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers (PowerEdge 6850 Memory Interleaving Registers) + + pci:v00008086d00002623* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration + + pci:v00008086d00002623sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 DDR Initialization and Calibration ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration (PowerEdge 6850 DDR Initialization and Calibration) + + pci:v00008086d00002624* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002624sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002625* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002625sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002626* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002626sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002627* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002627sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002640* + ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge + + pci:v00008086d00002640sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (915P/G Neo2) + + pci:v00008086d00002640sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (Scenic W620) + + pci:v00008086d00002640sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CCD-CALYPSO) + + pci:v00008086d00002640sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CD3-JIVE) + + pci:v00008086d00002640sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (XB1) + + pci:v00008086d00002641* + ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge + + pci:v00008086d00002641sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (Compaq nw8240/nx8220) + + pci:v00008086d00002641sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (NX6110/NC6120) + + pci:v00008086d00002642* + ID_MODEL_FROM_DATABASE=82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge +@@ -63441,34 +63441,34 @@ pci:v00008086d00002651* + ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller + + pci:v00008086d00002651sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Optiplex GX280) + + pci:v00008086d00002651sv00001043sd00002601* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002651sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Scenic W620) + + pci:v00008086d00002651sv00008086sd00004147* +- ID_MODEL_FROM_DATABASE=D915GAG Motherboard ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (D915GAG Motherboard) + + pci:v00008086d00002651sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CCD-CALYPSO) + + pci:v00008086d00002651sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CD3-JIVE) + + pci:v00008086d00002651sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (XB1) + + pci:v00008086d00002652* + ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller + + pci:v00008086d00002652sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (Dimension 8400) + + pci:v00008086d00002652sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (915P/G Neo2) + + pci:v00008086d00002653* + ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) SATA Controller +@@ -63477,289 +63477,289 @@ pci:v00008086d00002658* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 + + pci:v00008086d00002658sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Dimension 8400) + + pci:v00008086d00002658sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Optiplex GX280) + + pci:v00008086d00002658sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Compaq nw8240/nx8220) + + pci:v00008086d00002658sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (NX6110/NC6120) + + pci:v00008086d00002658sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (P5GD1-VW Mainboard) + + pci:v00008086d00002658sv00001458sd00002558* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (GA-8I915ME-G Mainboard) + + pci:v00008086d00002658sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (915P/G Neo2) + + pci:v00008086d00002658sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Scenic W620) + + pci:v00008086d00002658sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CCD-CALYPSO) + + pci:v00008086d00002658sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CD3-JIVE) + + pci:v00008086d00002658sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (XB1) + + pci:v00008086d00002659* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 + + pci:v00008086d00002659sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Dimension 8400) + + pci:v00008086d00002659sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Optiplex GX280) + + pci:v00008086d00002659sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Compaq nw8240/nx8220) + + pci:v00008086d00002659sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (NX6110/NC6120) + + pci:v00008086d00002659sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (P5GD1-VW Mainboard) + + pci:v00008086d00002659sv00001458sd00002659* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (GA-8I915ME-G Mainboard) + + pci:v00008086d00002659sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (915P/G Neo2) + + pci:v00008086d00002659sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Scenic W620) + + pci:v00008086d00002659sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CCD-CALYPSO) + + pci:v00008086d00002659sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CD3-JIVE) + + pci:v00008086d00002659sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (XB1) + + pci:v00008086d0000265A* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 + + pci:v00008086d0000265Asv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Dimension 8400) + + pci:v00008086d0000265Asv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Optiplex GX280) + + pci:v00008086d0000265Asv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Compaq nw8240/nx8220) + + pci:v00008086d0000265Asv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (NX6110/NC6120) + + pci:v00008086d0000265Asv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (P5GD1-VW Mainboard) + + pci:v00008086d0000265Asv00001458sd0000265A* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (GA-8I915ME-G Mainboard) + + pci:v00008086d0000265Asv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (915P/G Neo2) + + pci:v00008086d0000265Asv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Scenic W620) + + pci:v00008086d0000265Asv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CCD-CALYPSO) + + pci:v00008086d0000265Asv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CD3-JIVE) + + pci:v00008086d0000265Asv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (XB1) + + pci:v00008086d0000265B* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 + + pci:v00008086d0000265Bsv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Dimension 8400) + + pci:v00008086d0000265Bsv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Optiplex GX280) + + pci:v00008086d0000265Bsv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (NX6110/NC6120) + + pci:v00008086d0000265Bsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (P5GD1-VW Mainboard) + + pci:v00008086d0000265Bsv00001458sd0000265A* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (GA-8I915ME-G Mainboard) + + pci:v00008086d0000265Bsv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (915P/G Neo2) + + pci:v00008086d0000265Bsv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Scenic W620) + + pci:v00008086d0000265Bsv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CCD-CALYPSO) + + pci:v00008086d0000265Bsv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CD3-JIVE) + + pci:v00008086d0000265Bsv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (XB1) + + pci:v00008086d0000265C* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller + + pci:v00008086d0000265Csv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 8400) + + pci:v00008086d0000265Csv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Optiplex GX280) + + pci:v00008086d0000265Csv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000265Csv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (NX6110/NC6120) + + pci:v00008086d0000265Csv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (P5GD1-VW Mainboard) + + pci:v00008086d0000265Csv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000265Csv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (915P/G Neo2) + + pci:v00008086d0000265Csv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Scenic W620) + + pci:v00008086d0000265Csv00008086sd0000265C* +- ID_MODEL_FROM_DATABASE=Dimension 3100 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 3100) + + pci:v00008086d0000265Csv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CCD-CALYPSO) + + pci:v00008086d0000265Csv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CD3-JIVE) + + pci:v00008086d0000265Csv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (XB1) + + pci:v00008086d00002660* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 + + pci:v00008086d00002660sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002660sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (NX6110/NC6120) + + pci:v00008086d00002660sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CCD-CALYPSO) + + pci:v00008086d00002660sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CD3-JIVE) + + pci:v00008086d00002660sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (XB1) + + pci:v00008086d00002662* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 + + pci:v00008086d00002662sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002662sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CCD-CALYPSO) + + pci:v00008086d00002662sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CD3-JIVE) + + pci:v00008086d00002662sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (XB1) + + pci:v00008086d00002664* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 + + pci:v00008086d00002664sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CCD-CALYPSO) + + pci:v00008086d00002664sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CD3-JIVE) + + pci:v00008086d00002664sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (XB1) + + pci:v00008086d00002666* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 + + pci:v00008086d00002666sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CCD-CALYPSO) + + pci:v00008086d00002666sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CD3-JIVE) + + pci:v00008086d00002666sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (XB1) + + pci:v00008086d00002668* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller + + pci:v00008086d00002668sv00001014sd000005B7* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (ThinkPad Z60t) + + pci:v00008086d00002668sv0000103Csd00002A09* +- ID_MODEL_FROM_DATABASE=PufferM-UL8E ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (PufferM-UL8E) + + pci:v00008086d00002668sv00001043sd00001173* +- ID_MODEL_FROM_DATABASE=Asus A6VC ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (Asus A6VC) + + pci:v00008086d00002668sv00001043sd0000814E* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002668sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (915P/G Neo2) + + pci:v00008086d00002668sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (QEMU Virtual Machine) + + pci:v00008086d0000266A* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller + + pci:v00008086d0000266Asv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Dimension 8400) + + pci:v00008086d0000266Asv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Optiplex GX280) + + pci:v00008086d0000266Asv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (P5GD1-VW Mainboard) + + pci:v00008086d0000266Asv00001458sd0000266A* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000266Asv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (915P/G Neo2) + + pci:v00008086d0000266Asv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Scenic W620) + + pci:v00008086d0000266Asv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CCD-CALYPSO) + + pci:v00008086d0000266Asv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CD3-JIVE) + + pci:v00008086d0000266Asv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (XB1) + + pci:v00008086d0000266C* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller +@@ -63768,103 +63768,103 @@ pci:v00008086d0000266D* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller + + pci:v00008086d0000266Dsv00001025sd0000006A* +- ID_MODEL_FROM_DATABASE=Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop) ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)) + + pci:v00008086d0000266Dsv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000266Dsv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (NX6110/NC6120) + + pci:v00008086d0000266E* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller + + pci:v00008086d0000266Esv00001025sd0000006A* +- ID_MODEL_FROM_DATABASE=Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop) ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)) + + pci:v00008086d0000266Esv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dimension 8400) + + pci:v00008086d0000266Esv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Optiplex GX280) + + pci:v00008086d0000266Esv00001028sd00000182* +- ID_MODEL_FROM_DATABASE=Latitude D610 Laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Latitude D610 Laptop) + + pci:v00008086d0000266Esv00001028sd00000187* +- ID_MODEL_FROM_DATABASE=Dell Precision M70 Laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dell Precision M70 Laptop) + + pci:v00008086d0000266Esv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Inspiron 6000 laptop) + + pci:v00008086d0000266Esv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000266Esv0000103Csd00000944* +- ID_MODEL_FROM_DATABASE=Compaq NC6220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq NC6220) + + pci:v00008086d0000266Esv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (NX6110/NC6120) + + pci:v00008086d0000266Esv0000103Csd00003006* +- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (DC7100 SFF(DX878AV)) + + pci:v00008086d0000266Esv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000266Esv0000152Dsd00000745* +- ID_MODEL_FROM_DATABASE=Packard Bell A8550 Laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Packard Bell A8550 Laptop) + + pci:v00008086d0000266Esv00001734sd0000105A* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Scenic W620) + + pci:v00008086d0000266F* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller + + pci:v00008086d0000266Fsv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Dimension 8400) + + pci:v00008086d0000266Fsv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000266Fsv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (NX6110/NC6120) + + pci:v00008086d0000266Fsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (P5GD1-VW Mainboard) + + pci:v00008086d0000266Fsv00001458sd0000266F* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000266Fsv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (915P/G Neo2) + + pci:v00008086d0000266Fsv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Scenic W620) + + pci:v00008086d0000266Fsv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CCD-CALYPSO) + + pci:v00008086d0000266Fsv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CD3-JIVE) + + pci:v00008086d0000266Fsv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (XB1) + + pci:v00008086d00002670* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller + + pci:v00008086d00002670sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (ProLiant DL140 G3) + + pci:v00008086d00002670sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DVL-E-O motherboard) + + pci:v00008086d00002670sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DBN Motherboard) + + pci:v00008086d00002670sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002680* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SATA IDE Controller +@@ -63873,22 +63873,22 @@ pci:v00008086d00002681* + ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller + + pci:v00008086d00002681sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (ProLiant DL140 G3) + + pci:v00008086d00002681sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DVL-E-O motherboard) + + pci:v00008086d00002681sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DBN Motherboard) + + pci:v00008086d00002681sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002682* + ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller + + pci:v00008086d00002682sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=Adaptec Serial ATA HostRAID ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller (Adaptec Serial ATA HostRAID) + + pci:v00008086d00002683* + ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller +@@ -63897,109 +63897,109 @@ pci:v00008086d00002688* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 + + pci:v00008086d00002688sv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge 1955 onboard USB) + + pci:v00008086d00002688sv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge R900 onboard USB) + + pci:v00008086d00002688sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (ProLiant DL140 G3) + + pci:v00008086d00002688sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DVL-E-O motherboard) + + pci:v00008086d00002688sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DBN Motherboard) + + pci:v00008086d00002688sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002689* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 + + pci:v00008086d00002689sv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge 1955 onboard USB) + + pci:v00008086d00002689sv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge R900 onboard USB) + + pci:v00008086d00002689sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (ProLiant DL140 G3) + + pci:v00008086d00002689sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DVL-E-O motherboard) + + pci:v00008086d00002689sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DBN Motherboard) + + pci:v00008086d00002689sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000268A* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 + + pci:v00008086d0000268Asv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (PowerEdge R900 onboard USB) + + pci:v00008086d0000268Asv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (ProLiant DL140 G3) + + pci:v00008086d0000268Asv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DVL-E-O motherboard) + + pci:v00008086d0000268Asv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DBN Motherboard) + + pci:v00008086d0000268Asv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000268B* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 + + pci:v00008086d0000268Bsv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (PowerEdge R900 onboard USB) + + pci:v00008086d0000268Bsv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (X7DVL-E-O motherboard) + + pci:v00008086d0000268Bsv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000268C* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller + + pci:v00008086d0000268Csv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge 1955 onboard USB) + + pci:v00008086d0000268Csv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge R900 onboard USB) + + pci:v00008086d0000268Csv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (ProLiant DL140 G3) + + pci:v00008086d0000268Csv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DVL-E-O motherboard) + + pci:v00008086d0000268Csv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DBN Motherboard) + + pci:v00008086d0000268Csv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002690* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 + + pci:v00008086d00002690sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (ProLiant DL140 G3) + + pci:v00008086d00002690sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (X7DBN Motherboard) + + pci:v00008086d00002692* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 + + pci:v00008086d00002692sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 (ProLiant DL140 G3) + + pci:v00008086d00002694* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 3 +@@ -64020,49 +64020,49 @@ pci:v00008086d0000269B* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller + + pci:v00008086d0000269Bsv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (ProLiant DL140 G3) + + pci:v00008086d0000269Bsv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DVL-E-O motherboard) + + pci:v00008086d0000269Bsv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DBN Motherboard) + + pci:v00008086d0000269Bsv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000269E* + ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller + + pci:v00008086d0000269Esv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (ProLiant DL140 G3) + + pci:v00008086d0000269Esv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DVL-E-O motherboard) + + pci:v00008086d0000269Esv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DBN Motherboard) + + pci:v00008086d00002770* + ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub + + pci:v00008086d00002770sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (OptiPlex GX620) + + pci:v00008086d00002770sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Pavilion A1512X) + + pci:v00008086d00002770sv00001043sd0000817A* +- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (P5LD2-VM Mainboard) + + pci:v00008086d00002770sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (E4500) + + pci:v00008086d00002770sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Wind PC MS-7418) + + pci:v00008086d00002770sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (DeskTop Board D945GTP) + + pci:v00008086d00002771* + ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL PCI Express Root Port +@@ -64071,16 +64071,16 @@ pci:v00008086d00002772* + ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller + + pci:v00008086d00002772sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Pavilion A1512X) + + pci:v00008086d00002772sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Wind PC MS-7418) + + pci:v00008086d00002772sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (DeskTop Board D945GTP) + + pci:v00008086d00002772sv00008086sd0000D605* +- ID_MODEL_FROM_DATABASE=Intel Desktop Board D945GCCR ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Intel Desktop Board D945GCCR) + + pci:v00008086d00002774* + ID_MODEL_FROM_DATABASE=82955X Memory Controller Hub +@@ -64095,10 +64095,10 @@ pci:v00008086d00002778* + ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub + + pci:v00008086d00002778sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge SC440) + + pci:v00008086d00002778sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge 860) + + pci:v00008086d00002779* + ID_MODEL_FROM_DATABASE=E7230/3000/3010 PCI Express Root Port +@@ -64110,7 +64110,7 @@ pci:v00008086d0000277C* + ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub + + pci:v00008086d0000277Csv00001043sd00008178* +- ID_MODEL_FROM_DATABASE=P5WDG2 WS Professional motherboard ++ ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub (P5WDG2 WS Professional motherboard) + + pci:v00008086d0000277D* + ID_MODEL_FROM_DATABASE=82975X PCI Express Root Port +@@ -64119,94 +64119,94 @@ pci:v00008086d00002782* + ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller + + pci:v00008086d00002782sv00001043sd00002582* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002782sv00001734sd0000105B* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (Scenic W620) + + pci:v00008086d00002792* + ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller + + pci:v00008086d00002792sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) + + pci:v00008086d00002792sv00001043sd00001881* +- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) + + pci:v00008086d00002792sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) + + pci:v00008086d00002792sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) + + pci:v00008086d00002792sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) + + pci:v00008086d000027A0* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub + + pci:v00008086d000027A0sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (9814 WKMI) + + pci:v00008086d000027A0sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (XPS M1210) + + pci:v00008086d000027A0sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nx9420 Notebook) + + pci:v00008086d000027A0sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (NC2400) + + pci:v00008086d000027A0sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nw8440) + + pci:v00008086d000027A0sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) + + pci:v00008086d000027A0sv000017AAsd00002015* +- ID_MODEL_FROM_DATABASE=ThinkPad T60 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) + + pci:v00008086d000027A0sv000017AAsd00002017* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027A1* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port + + pci:v00008086d000027A1sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nx9420 Notebook) + + pci:v00008086d000027A1sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) + + pci:v00008086d000027A2* + ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller + + pci:v00008086d000027A2sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (NC2400) + + pci:v00008086d000027A2sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027A2sv00009902sd00001584* +- ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (CCE MPL-D10H120F) + + pci:v00008086d000027A6* + ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller + + pci:v00008086d000027A6sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (NC2400) + + pci:v00008086d000027A6sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (CC11/CL11 integrated graphics (secondary)) + + pci:v00008086d000027A6sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027AC* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub + + pci:v00008086d000027ACsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub (CC11/CL11) + + pci:v00008086d000027AD* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express PCI Express Root Port +@@ -64215,178 +64215,178 @@ pci:v00008086d000027AE* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller + + pci:v00008086d000027AEsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (primary) ++ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller (CC11/CL11 integrated graphics (primary)) + + pci:v00008086d000027B0* + ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge + + pci:v00008086d000027B0sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (Pavilion A1512X) + + pci:v00008086d000027B0sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (DeskTop Board D945GTP) + + pci:v00008086d000027B8* + ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge + + pci:v00008086d000027B8sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (PowerEdge 860) + + pci:v00008086d000027B8sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (P5KPL-VM Motherboard) + + pci:v00008086d000027B8sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (E4500) + + pci:v00008086d000027B8sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (Wind PC MS-7418) + + pci:v00008086d000027B8sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (CC11/CL11) + + pci:v00008086d000027B8sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (DeskTop Board D945GTP) + + pci:v00008086d000027B9* + ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge + + pci:v00008086d000027B9sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (XPS M1210) + + pci:v00008086d000027B9sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nx9420 Notebook) + + pci:v00008086d000027B9sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (NC2400) + + pci:v00008086d000027B9sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) + + pci:v00008086d000027B9sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) + + pci:v00008086d000027B9sv000017AAsd00002009* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027BC* + ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller + + pci:v00008086d000027BCsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (D270S/D250S Motherboard) + + pci:v00008086d000027BCsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Notebook N150P) + + pci:v00008086d000027BCsv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (GA-D525TUD) + + pci:v00008086d000027BCsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (DeskTop Board D510MO) + + pci:v00008086d000027BCsv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Desktop Board D425KT) + + pci:v00008086d000027BD* + ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge + + pci:v00008086d000027BDsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge (9814 WKMI) + + pci:v00008086d000027C0* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] + + pci:v00008086d000027C0sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (OptiPlex GX620) + + pci:v00008086d000027C0sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge SC440) + + pci:v00008086d000027C0sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge 860) + + pci:v00008086d000027C0sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (P5KPL-VM Motherboard) + + pci:v00008086d000027C0sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (E4500) + + pci:v00008086d000027C0sv00001462sd00002310* +- ID_MODEL_FROM_DATABASE=MSI Hetis 945 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (MSI Hetis 945) + + pci:v00008086d000027C0sv00001462sd00007236* +- ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (945P Neo3-F Rev. 2.2 motherboard) + + pci:v00008086d000027C0sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Wind PC MS-7418) + + pci:v00008086d000027C0sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (CC11/CL11) + + pci:v00008086d000027C0sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Desktop Board D425KT) + + pci:v00008086d000027C0sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (DeskTop Board D945GTP) + + pci:v00008086d000027C1* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] + + pci:v00008086d000027C1sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (PowerEdge SC440) + + pci:v00008086d000027C1sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Pavilion A1512X) + + pci:v00008086d000027C1sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (D270S/D250S Motherboard) + + pci:v00008086d000027C1sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Notebook N150P) + + pci:v00008086d000027C1sv00001458sd0000B005* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (GA-D525TUD) + + pci:v00008086d000027C1sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (CC11/CL11) + + pci:v00008086d000027C1sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D510MO) + + pci:v00008086d000027C1sv00008086sd00005842* +- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D975XBX) + + pci:v00008086d000027C3* + ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] + + pci:v00008086d000027C3sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (CC11/CL11) + + pci:v00008086d000027C3sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (DeskTop Board D945GTP) + + pci:v00008086d000027C4* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] + + pci:v00008086d000027C4sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (9814 WKMI) + + pci:v00008086d000027C4sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) + + pci:v00008086d000027C4sv000017AAsd0000200E* +- ID_MODEL_FROM_DATABASE=ThinkPad T60 ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) + + pci:v00008086d000027C5* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] + + pci:v00008086d000027C5sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nx9420 Notebook) + + pci:v00008086d000027C5sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nw8440) + + pci:v00008086d000027C5sv000017AAsd0000200D* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027C6* + ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] +@@ -64395,553 +64395,553 @@ pci:v00008086d000027C8* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 + + pci:v00008086d000027C8sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (9814 WKMI) + + pci:v00008086d000027C8sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (OptiPlex GX620) + + pci:v00008086d000027C8sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (XPS M1210) + + pci:v00008086d000027C8sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge SC440) + + pci:v00008086d000027C8sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge 860) + + pci:v00008086d000027C8sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Pavilion A1512X) + + pci:v00008086d000027C8sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nx9420 Notebook) + + pci:v00008086d000027C8sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (NC2400) + + pci:v00008086d000027C8sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nw8440) + + pci:v00008086d000027C8sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (A6J-Q008) + + pci:v00008086d000027C8sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027C8sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) + + pci:v00008086d000027C8sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) + + pci:v00008086d000027C8sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Notebook N150P) + + pci:v00008086d000027C8sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (GA-D525TUD) + + pci:v00008086d000027C8sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Wind PC MS-7418) + + pci:v00008086d000027C8sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (CC11/CL11) + + pci:v00008086d000027C8sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027C8sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D510MO) + + pci:v00008086d000027C8sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Desktop Board D425KT) + + pci:v00008086d000027C8sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D945GTP) + + pci:v00008086d000027C9* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 + + pci:v00008086d000027C9sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (9814 WKMI) + + pci:v00008086d000027C9sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (OptiPlex GX620) + + pci:v00008086d000027C9sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (XPS M1210) + + pci:v00008086d000027C9sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge SC440) + + pci:v00008086d000027C9sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge 860) + + pci:v00008086d000027C9sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Pavilion A1512X) + + pci:v00008086d000027C9sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nx9420 Notebook) + + pci:v00008086d000027C9sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (NC2400) + + pci:v00008086d000027C9sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nw8440) + + pci:v00008086d000027C9sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (A6J-Q008) + + pci:v00008086d000027C9sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027C9sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) + + pci:v00008086d000027C9sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) + + pci:v00008086d000027C9sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Notebook N150P) + + pci:v00008086d000027C9sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (GA-D525TUD) + + pci:v00008086d000027C9sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Wind PC MS-7418) + + pci:v00008086d000027C9sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (CC11/CL11) + + pci:v00008086d000027C9sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027C9sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D510MO) + + pci:v00008086d000027C9sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Desktop Board D425KT) + + pci:v00008086d000027C9sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D945GTP) + + pci:v00008086d000027CA* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 + + pci:v00008086d000027CAsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (9814 WKMI) + + pci:v00008086d000027CAsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (OptiPlex GX620) + + pci:v00008086d000027CAsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (XPS M1210) + + pci:v00008086d000027CAsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge SC440) + + pci:v00008086d000027CAsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge 860) + + pci:v00008086d000027CAsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Pavilion A1512X) + + pci:v00008086d000027CAsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nx9420 Notebook) + + pci:v00008086d000027CAsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (NC2400) + + pci:v00008086d000027CAsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nw8440) + + pci:v00008086d000027CAsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (A6J-Q008) + + pci:v00008086d000027CAsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027CAsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) + + pci:v00008086d000027CAsv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) + + pci:v00008086d000027CAsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Notebook N150P) + + pci:v00008086d000027CAsv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (GA-D525TUD) + + pci:v00008086d000027CAsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Wind PC MS-7418) + + pci:v00008086d000027CAsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (CC11/CL11) + + pci:v00008086d000027CAsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027CAsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D510MO) + + pci:v00008086d000027CAsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D945GTP) + + pci:v00008086d000027CB* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 + + pci:v00008086d000027CBsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (9814 WKMI) + + pci:v00008086d000027CBsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (OptiPlex GX620) + + pci:v00008086d000027CBsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (XPS M1210) + + pci:v00008086d000027CBsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (PowerEdge SC440) + + pci:v00008086d000027CBsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Pavilion A1512X) + + pci:v00008086d000027CBsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nx9420 Notebook) + + pci:v00008086d000027CBsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (NC2400) + + pci:v00008086d000027CBsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nw8440) + + pci:v00008086d000027CBsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (A6J-Q008) + + pci:v00008086d000027CBsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027CBsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) + + pci:v00008086d000027CBsv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) + + pci:v00008086d000027CBsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Notebook N150P) + + pci:v00008086d000027CBsv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (GA-D525TUD) + + pci:v00008086d000027CBsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Wind PC MS-7418) + + pci:v00008086d000027CBsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (CC11/CL11) + + pci:v00008086d000027CBsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027CBsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D510MO) + + pci:v00008086d000027CBsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D945GTP) + + pci:v00008086d000027CC* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller + + pci:v00008086d000027CCsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (9814 WKMI) + + pci:v00008086d000027CCsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (OptiPlex GX620) + + pci:v00008086d000027CCsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (XPS M1210) + + pci:v00008086d000027CCsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge SC440) + + pci:v00008086d000027CCsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge 860) + + pci:v00008086d000027CCsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Pavilion A1512X) + + pci:v00008086d000027CCsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nx9420 Notebook) + + pci:v00008086d000027CCsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (NC2400) + + pci:v00008086d000027CCsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nw8440) + + pci:v00008086d000027CCsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (A6J-Q008) + + pci:v00008086d000027CCsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027CCsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) + + pci:v00008086d000027CCsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) + + pci:v00008086d000027CCsv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (GA-D525TUD) + + pci:v00008086d000027CCsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Wind PC MS-7418) + + pci:v00008086d000027CCsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (CC11/CL11) + + pci:v00008086d000027CCsv000017AAsd0000200B* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027CCsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D510MO) + + pci:v00008086d000027CCsv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Desktop Board D425KT) + + pci:v00008086d000027CCsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D945GTP) + + pci:v00008086d000027D0* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 + + pci:v00008086d000027D0sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nx9420 Notebook) + + pci:v00008086d000027D0sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) + + pci:v00008086d000027D0sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) + + pci:v00008086d000027D0sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (GA-D525TUD) + + pci:v00008086d000027D0sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Wind PC MS-7418) + + pci:v00008086d000027D0sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (CC11/CL11) + + pci:v00008086d000027D0sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Desktop Board D425KT) + + pci:v00008086d000027D2* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 + + pci:v00008086d000027D2sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nx9420 Notebook) + + pci:v00008086d000027D2sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) + + pci:v00008086d000027D2sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) + + pci:v00008086d000027D2sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Wind PC MS-7418) + + pci:v00008086d000027D2sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (CC11/CL11) + + pci:v00008086d000027D2sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Desktop Board D425KT) + + pci:v00008086d000027D4* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 + + pci:v00008086d000027D4sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) + + pci:v00008086d000027D4sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Wind PC MS-7418) + + pci:v00008086d000027D4sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (CC11/CL11) + + pci:v00008086d000027D4sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Desktop Board D425KT) + + pci:v00008086d000027D6* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 + + pci:v00008086d000027D6sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) + + pci:v00008086d000027D6sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) + + pci:v00008086d000027D6sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Wind PC MS-7418) + + pci:v00008086d000027D6sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (CC11/CL11) + + pci:v00008086d000027D6sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Desktop Board D425KT) + + pci:v00008086d000027D8* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller + + pci:v00008086d000027D8sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (9814 WKMI) + + pci:v00008086d000027D8sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (XPS M1210) + + pci:v00008086d000027D8sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Pavilion A1512X) + + pci:v00008086d000027D8sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nx9420 Notebook) + + pci:v00008086d000027D8sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (NC2400) + + pci:v00008086d000027D8sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nw8440) + + pci:v00008086d000027D8sv00001043sd00001123* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (A6J-Q008) + + pci:v00008086d000027D8sv00001043sd000013C4* +- ID_MODEL_FROM_DATABASE=Asus G2P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus G2P) + + pci:v00008086d000027D8sv00001043sd0000817F* +- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard (Realtek ALC 882 codec) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5LD2-VM Mainboard (Realtek ALC 882 codec)) + + pci:v00008086d000027D8sv00001043sd00008290* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-VM Motherboard) + + pci:v00008086d000027D8sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-CM Motherboard) + + pci:v00008086d000027D8sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) + + pci:v00008086d000027D8sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) + + pci:v00008086d000027D8sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Panasonic CF-Y5 laptop) + + pci:v00008086d000027D8sv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=Toshiba Satellite A100-796 audio (Realtek ALC861) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Toshiba Satellite A100-796 audio (Realtek ALC861)) + + pci:v00008086d000027D8sv00001179sd0000FF31* +- ID_MODEL_FROM_DATABASE=AC97 Data Fax SoftModem with SmartCP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (AC97 Data Fax SoftModem with SmartCP) + + pci:v00008086d000027D8sv00001447sd00001043* +- ID_MODEL_FROM_DATABASE=Asus A8JP (Analog Devices AD1986A) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus A8JP (Analog Devices AD1986A)) + + pci:v00008086d000027D8sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Notebook N150P) + + pci:v00008086d000027D8sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-D525TUD (Realtek ALC887) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-D525TUD (Realtek ALC887)) + + pci:v00008086d000027D8sv00001458sd0000A102* +- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-8I945PG-RH Mainboard) + + pci:v00008086d000027D8sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Wind PC MS-7418) + + pci:v00008086d000027D8sv0000152Dsd00000753* +- ID_MODEL_FROM_DATABASE=Softmodem ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Softmodem) + + pci:v00008086d000027D8sv00001734sd000010AD* +- ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Conexant softmodem SmartCP) + + pci:v00008086d000027D8sv000017AAsd00002010* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027D8sv000017AAsd00003802* +- ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Lenovo 3000 C200 audio [Realtek ALC861VD]) + + pci:v00008086d000027D8sv00008086sd00001112* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) + + pci:v00008086d000027D8sv00008086sd000027D8* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) + + pci:v00008086d000027D8sv00008086sd0000D618* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D510MO) + + pci:v00008086d000027D8sv00008384sd00007680* +- ID_MODEL_FROM_DATABASE=STAC9221 HD Audio Codec ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (STAC9221 HD Audio Codec) + + pci:v00008086d000027DA* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller + + pci:v00008086d000027DAsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (9814 WKMI) + + pci:v00008086d000027DAsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (OptiPlex GX620) + + pci:v00008086d000027DAsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (XPS M1210) + + pci:v00008086d000027DAsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge SC440) + + pci:v00008086d000027DAsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge 860) + + pci:v00008086d000027DAsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Pavilion A1512X) + + pci:v00008086d000027DAsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (P5KPL-VM Motherboard) + + pci:v00008086d000027DAsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) + + pci:v00008086d000027DAsv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) + + pci:v00008086d000027DAsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Notebook N150P) + + pci:v00008086d000027DAsv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (GA-8I945PG-RH/GA-D525TUD Mainboard) + + pci:v00008086d000027DAsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Wind PC MS-7418) + + pci:v00008086d000027DAsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (CC11/CL11) + + pci:v00008086d000027DAsv000017AAsd0000200F* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027DAsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D510MO) + + pci:v00008086d000027DAsv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Desktop Board D425KT) + + pci:v00008086d000027DAsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D945GTP) + + pci:v00008086d000027DAsv00008086sd00005842* +- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D975XBX) + + pci:v00008086d000027DC* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller + + pci:v00008086d000027DCsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (Pavilion A1512X) + + pci:v00008086d000027DCsv00008086sd0000308D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (DeskTop Board D945GTP) + + pci:v00008086d000027DD* + ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Modem Controller +@@ -64950,88 +64950,88 @@ pci:v00008086d000027DE* + ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller + + pci:v00008086d000027DEsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (OptiPlex GX620) + + pci:v00008086d000027DEsv00001462sd00007267* +- ID_MODEL_FROM_DATABASE=Realtek ALC883 Audio Controller ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (Realtek ALC883 Audio Controller) + + pci:v00008086d000027DEsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11 integrated audio (AD1981BL codec) ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (CC11 integrated audio (AD1981BL codec)) + + pci:v00008086d000027DF* + ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller + + pci:v00008086d000027DFsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge SC440) + + pci:v00008086d000027DFsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge 860) + + pci:v00008086d000027DFsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Pavilion A1512X) + + pci:v00008086d000027DFsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nx9420 Notebook) + + pci:v00008086d000027DFsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (NC2400) + + pci:v00008086d000027DFsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nw8440) + + pci:v00008086d000027DFsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (A6J-Q008) + + pci:v00008086d000027DFsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (P5KPL-VM Motherboard) + + pci:v00008086d000027DFsv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (E4500) + + pci:v00008086d000027DFsv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Panasonic CF-Y5 laptop) + + pci:v00008086d000027DFsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Wind PC MS-7418) + + pci:v00008086d000027DFsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (CC11/CL11) + + pci:v00008086d000027DFsv000017AAsd0000200C* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027DFsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (DeskTop Board D945GTP) + + pci:v00008086d000027E0* + ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 + + pci:v00008086d000027E0sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 (CC11/CL11) + + pci:v00008086d000027E2* + ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 + + pci:v00008086d000027E2sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (CC11/CL11) + + pci:v00008086d00002810* + ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller + + pci:v00008086d00002810sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller (P5B) + + pci:v00008086d00002811* + ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller + + pci:v00008086d00002811sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (Compaq 6910p) + + pci:v00008086d00002811sv000017AAsd000020B6* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (ThinkPad T61/R61) + + pci:v00008086d00002811sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (CCG-RUMBA) + + pci:v00008086d00002812* + ID_MODEL_FROM_DATABASE=82801HH (ICH8DH) LPC Interface Controller +@@ -65043,34 +65043,34 @@ pci:v00008086d00002815* + ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller + + pci:v00008086d00002815sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Aspire 5920G) + + pci:v00008086d00002815sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Inspiron 1420) + + pci:v00008086d00002815sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Compaq 6710b) + + pci:v00008086d00002815sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Pavilion dv6700) + + pci:v00008086d00002815sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Presario C700) + + pci:v00008086d00002815sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Vaio VGN-FZ260E) + + pci:v00008086d00002815sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) + + pci:v00008086d00002820* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] + + pci:v00008086d00002820sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (OptiPlex 745) + + pci:v00008086d00002820sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002821* + ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA Controller [AHCI mode] +@@ -65079,10 +65079,10 @@ pci:v00008086d00002822* + ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] + + pci:v00008086d00002822sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Inspiron 530) + + pci:v00008086d00002822sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002823* + ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller +@@ -65091,16 +65091,16 @@ pci:v00008086d00002824* + ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] + + pci:v00008086d00002824sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] (P5B) + + pci:v00008086d00002825* + ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] + + pci:v00008086d00002825sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (OptiPlex 745) + + pci:v00008086d00002825sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002826* + ID_MODEL_FROM_DATABASE=C600/X79 series chipset SATA RAID Controller +@@ -65112,424 +65112,424 @@ pci:v00008086d00002828* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] + + pci:v00008086d00002828sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Inspiron 1420) + + pci:v00008086d00002828sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Compaq 6710b) + + pci:v00008086d00002828sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (CCG-RUMBA) + + pci:v00008086d00002829* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] + + pci:v00008086d00002829sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Aspire 5920G) + + pci:v00008086d00002829sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6710b) + + pci:v00008086d00002829sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6910p) + + pci:v00008086d00002829sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Pavilion dv6700) + + pci:v00008086d00002829sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Presario C700) + + pci:v00008086d00002829sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Vaio VGN-FZ260E) + + pci:v00008086d00002829sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (VAIO VGN-NR120E) + + pci:v00008086d00002829sv000017AAsd000020A7* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) + + pci:v00008086d00002829sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) + + pci:v00008086d0000282A* + ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] + + pci:v00008086d0000282Asv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (Latitude E6510) + + pci:v00008086d0000282Asv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (PC1-GROOVE) + + pci:v00008086d00002830* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 + + pci:v00008086d00002830sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Acer Aspire 5920G) + + pci:v00008086d00002830sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (OptiPlex 745) + + pci:v00008086d00002830sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Inspiron 1420) + + pci:v00008086d00002830sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6710b) + + pci:v00008086d00002830sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6910p) + + pci:v00008086d00002830sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Pavilion dv6700) + + pci:v00008086d00002830sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Presario C700) + + pci:v00008086d00002830sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P5B) + + pci:v00008086d00002830sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Vaio VGN-FZ260E) + + pci:v00008086d00002830sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (VAIO VGN-NR120E) + + pci:v00008086d00002830sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002830sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) + + pci:v00008086d00002830sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) + + pci:v00008086d00002831* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 + + pci:v00008086d00002831sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Aspire 5920G) + + pci:v00008086d00002831sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (OptiPlex 745) + + pci:v00008086d00002831sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Inspiron 1420) + + pci:v00008086d00002831sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6710b) + + pci:v00008086d00002831sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6910p) + + pci:v00008086d00002831sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Pavilion dv6700) + + pci:v00008086d00002831sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Presario C700) + + pci:v00008086d00002831sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P5B) + + pci:v00008086d00002831sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Vaio VGN-FZ260E) + + pci:v00008086d00002831sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (VAIO VGN-NR120E) + + pci:v00008086d00002831sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002831sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) + + pci:v00008086d00002831sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) + + pci:v00008086d00002832* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 + + pci:v00008086d00002832sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Aspire 5920G) + + pci:v00008086d00002832sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (OptiPlex 745) + + pci:v00008086d00002832sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Inspiron 1420) + + pci:v00008086d00002832sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6710b) + + pci:v00008086d00002832sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6910p) + + pci:v00008086d00002832sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Pavilion dv6700) + + pci:v00008086d00002832sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Presario C700) + + pci:v00008086d00002832sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (P5B) + + pci:v00008086d00002832sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Vaio VGN-FZ260E) + + pci:v00008086d00002832sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (VAIO VGN-NR120E) + + pci:v00008086d00002832sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) + + pci:v00008086d00002832sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) + + pci:v00008086d00002833* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 + + pci:v00008086d00002833sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) + + pci:v00008086d00002834* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 + + pci:v00008086d00002834sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Aspire 5920G) + + pci:v00008086d00002834sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (OptiPlex 745) + + pci:v00008086d00002834sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Inspiron 1420) + + pci:v00008086d00002834sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6710b) + + pci:v00008086d00002834sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6910p) + + pci:v00008086d00002834sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Pavilion dv6700) + + pci:v00008086d00002834sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) + + pci:v00008086d00002834sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Vaio VGN-FZ260E) + + pci:v00008086d00002834sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (VAIO VGN-NR120E) + + pci:v00008086d00002834sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002834sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) + + pci:v00008086d00002834sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) + + pci:v00008086d00002835* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 + + pci:v00008086d00002835sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Acer Aspire 5920G) + + pci:v00008086d00002835sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (OptiPlex 745) + + pci:v00008086d00002835sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Inspiron 1420) + + pci:v00008086d00002835sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6710b) + + pci:v00008086d00002835sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6910p) + + pci:v00008086d00002835sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Pavilion dv6700) + + pci:v00008086d00002835sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (P5B) + + pci:v00008086d00002835sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Vaio VGN-FZ260E) + + pci:v00008086d00002835sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (VAIO VGN-NR120E) + + pci:v00008086d00002835sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=Thinkpad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) + + pci:v00008086d00002835sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) + + pci:v00008086d00002836* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 + + pci:v00008086d00002836sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Aspire 5920G) + + pci:v00008086d00002836sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (OptiPlex 745) + + pci:v00008086d00002836sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Inspiron 1420) + + pci:v00008086d00002836sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6710b) + + pci:v00008086d00002836sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6910p) + + pci:v00008086d00002836sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Pavilion dv6700) + + pci:v00008086d00002836sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Presario C700) + + pci:v00008086d00002836sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P5B) + + pci:v00008086d00002836sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Vaio VGN-FZ260E) + + pci:v00008086d00002836sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (VAIO VGN-NR120E) + + pci:v00008086d00002836sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002836sv000017AAsd000020AB* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) + + pci:v00008086d00002836sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) + + pci:v00008086d0000283A* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 + + pci:v00008086d0000283Asv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Acer Aspire 5920G) + + pci:v00008086d0000283Asv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (OptiPlex 745) + + pci:v00008086d0000283Asv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Inspiron 1420) + + pci:v00008086d0000283Asv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6710b) + + pci:v00008086d0000283Asv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6910p) + + pci:v00008086d0000283Asv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Pavilion dv6700) + + pci:v00008086d0000283Asv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (P5B) + + pci:v00008086d0000283Asv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Vaio VGN-FZ260E) + + pci:v00008086d0000283Asv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (VAIO VGN-NR120E) + + pci:v00008086d0000283Asv000017AAsd000020AB* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) + + pci:v00008086d0000283Asv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) + + pci:v00008086d0000283E* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller + + pci:v00008086d0000283Esv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Aspire 5920G) + + pci:v00008086d0000283Esv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (OptiPlex 745) + + pci:v00008086d0000283Esv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Inspiron 1420) + + pci:v00008086d0000283Esv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Presario C700) + + pci:v00008086d0000283Esv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P5B) + + pci:v00008086d0000283Esv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-FZ260E) + + pci:v00008086d0000283Esv0000104Dsd00009008* +- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-SZ79SN_C) + + pci:v00008086d0000283Esv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (VAIO VGN-NR120E) + + pci:v00008086d0000283Esv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P965 Neo MS-7235 mainboard) + + pci:v00008086d0000283Esv000017AAsd000020A9* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) + + pci:v00008086d0000283Esv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) + + pci:v00008086d0000283F* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 + + pci:v00008086d0000283Fsv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (OptiPlex 745) + + pci:v00008086d0000283Fsv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Compaq 6910p) + + pci:v00008086d0000283Fsv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (VAIO VGN-NR120E) + + pci:v00008086d0000283Fsv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) + + pci:v00008086d00002841* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 + + pci:v00008086d00002841sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Compaq 6910p) + + pci:v00008086d00002841sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (VAIO VGN-NR120E) + + pci:v00008086d00002841sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) + + pci:v00008086d00002843* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 + + pci:v00008086d00002843sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (VAIO VGN-NR120E) + + pci:v00008086d00002843sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) + + pci:v00008086d00002845* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 + + pci:v00008086d00002845sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) + + pci:v00008086d00002847* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 + + pci:v00008086d00002847sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (OptiPlex 745) + + pci:v00008086d00002847sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Compaq 6910p) + + pci:v00008086d00002847sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) + + pci:v00008086d00002849* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 +@@ -65538,70 +65538,70 @@ pci:v00008086d0000284B* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller + + pci:v00008086d0000284Bsv00001025sd0000011F* +- ID_MODEL_FROM_DATABASE=Realtek ALC268 audio codec ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC268 audio codec) + + pci:v00008086d0000284Bsv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Aspire 5920G) + + pci:v00008086d0000284Bsv00001025sd00000145* +- ID_MODEL_FROM_DATABASE=Realtek ALC889 (Aspire 8920G w. Dolby Theather) ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC889 (Aspire 8920G w. Dolby Theather)) + + pci:v00008086d0000284Bsv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (OptiPlex 745) + + pci:v00008086d0000284Bsv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Inspiron 1420) + + pci:v00008086d0000284Bsv00001028sd000001F9* +- ID_MODEL_FROM_DATABASE=Dell Latitude D630 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Latitude D630) + + pci:v00008086d0000284Bsv00001028sd000001FF* +- ID_MODEL_FROM_DATABASE=Dell Precision M4300 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Precision M4300) + + pci:v00008086d0000284Bsv00001028sd00000256* +- ID_MODEL_FROM_DATABASE=Studio 1735 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Studio 1735) + + pci:v00008086d0000284Bsv0000103Csd00002802* +- ID_MODEL_FROM_DATABASE=HP Compaq dc7700p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (HP Compaq dc7700p) + + pci:v00008086d0000284Bsv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6710b) + + pci:v00008086d0000284Bsv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6910p) + + pci:v00008086d0000284Bsv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Pavilion dv6700) + + pci:v00008086d0000284Bsv00001043sd00001339* +- ID_MODEL_FROM_DATABASE=Asus M51S series ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Asus M51S series) + + pci:v00008086d0000284Bsv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (P5B) + + pci:v00008086d0000284Bsv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-FZ260E) + + pci:v00008086d0000284Bsv0000104Dsd00009008* +- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-SZ79SN_C) + + pci:v00008086d0000284Bsv0000104Dsd00009016* +- ID_MODEL_FROM_DATABASE=Sony VAIO VGN-AR51M ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Sony VAIO VGN-AR51M) + + pci:v00008086d0000284Bsv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (VAIO VGN-NR120E) + + pci:v00008086d0000284Bsv000014F1sd00005051* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Presario C700) + + pci:v00008086d0000284Bsv000017AAsd000020AC* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) + + pci:v00008086d0000284Bsv00008384sd00007616* +- ID_MODEL_FROM_DATABASE=Dell Vostro 1400 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) + + pci:v00008086d0000284Bsv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (CCG-RUMBA) + + pci:v00008086d0000284F* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) Thermal Reporting Device +@@ -65610,34 +65610,34 @@ pci:v00008086d00002850* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller + + pci:v00008086d00002850sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Aspire 5920G) + + pci:v00008086d00002850sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Inspiron 1420) + + pci:v00008086d00002850sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6710b) + + pci:v00008086d00002850sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6910p) + + pci:v00008086d00002850sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Pavilion dv6700) + + pci:v00008086d00002850sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Presario C700) + + pci:v00008086d00002850sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Vaio VGN-FZ260E) + + pci:v00008086d00002850sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (VAIO VGN-NR120E) + + pci:v00008086d00002850sv000017AAsd000020A6* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) + + pci:v00008086d00002850sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) + + pci:v00008086d00002912* + ID_MODEL_FROM_DATABASE=82801IH (ICH9DH) LPC Interface Controller +@@ -65646,40 +65646,40 @@ pci:v00008086d00002914* + ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller + + pci:v00008086d00002914sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller (Optiplex 755) + + pci:v00008086d00002916* + ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller + + pci:v00008086d00002916sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Inspiron 530) + + pci:v00008086d00002916sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002916sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (P5K PRO Motherboard) + + pci:v00008086d00002916sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Desktop Board DP35DP) + + pci:v00008086d00002917* + ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller + + pci:v00008086d00002917sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller (CCM-BOOGIE) + + pci:v00008086d00002918* + ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller + + pci:v00008086d00002918sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 82801IB (ICH9) LPC Interface Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (PowerEdge R610 82801IB (ICH9) LPC Interface Controller) + + pci:v00008086d00002918sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (G33/P35 Neo) + + pci:v00008086d00002918sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (QEMU Virtual Machine) + + pci:v00008086d00002919* + ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller +@@ -65688,46 +65688,46 @@ pci:v00008086d00002920* + ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] + + pci:v00008086d00002920sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Inspiron 530) + + pci:v00008086d00002920sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) + + pci:v00008086d00002920sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) + + pci:v00008086d00002920sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Optiplex 755) + + pci:v00008086d00002920sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R200 onboard SATA Controller) + + pci:v00008086d00002920sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (P5K PRO Motherboard) + + pci:v00008086d00002921* + ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] + + pci:v00008086d00002921sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R710 SATA IDE Controller) + + pci:v00008086d00002921sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R610 SATA IDE Controller) + + pci:v00008086d00002921sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge T610 SATA IDE Controller) + + pci:v00008086d00002921sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (G33/P35 Neo) + + pci:v00008086d00002922* + ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] + + pci:v00008086d00002922sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (QEMU Virtual Machine) + + pci:v00008086d00002922sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (Desktop Board DP35DP) + + pci:v00008086d00002923* + ID_MODEL_FROM_DATABASE=82801IB (ICH9) 4 port SATA Controller [AHCI mode] +@@ -65736,31 +65736,31 @@ pci:v00008086d00002925* + ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] + + pci:v00008086d00002925sv00001734sd000010E0* +- ID_MODEL_FROM_DATABASE=System Board D2542 ++ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) + + pci:v00008086d00002925sv00008086sd00002925* +- ID_MODEL_FROM_DATABASE=System Board D2542 ++ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) + + pci:v00008086d00002926* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] + + pci:v00008086d00002926sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Inspiron 530) + + pci:v00008086d00002926sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) + + pci:v00008086d00002926sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) + + pci:v00008086d00002926sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Optiplex 755) + + pci:v00008086d00002926sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (P5K PRO Motherboard) + + pci:v00008086d00002926sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (G33/P35 Neo) + + pci:v00008086d00002928* + ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] +@@ -65769,10 +65769,10 @@ pci:v00008086d00002929* + ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] + + pci:v00008086d00002929sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (dv6-1190en) + + pci:v00008086d00002929sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (CCM-BOOGIE) + + pci:v00008086d0000292C* + ID_MODEL_FROM_DATABASE=82801IEM (ICH9M-E) SATA Controller [RAID mode] +@@ -65781,511 +65781,511 @@ pci:v00008086d0000292D* + ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] + + pci:v00008086d0000292Dsv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] (CCM-BOOGIE) + + pci:v00008086d00002930* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller + + pci:v00008086d00002930sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Inspiron 530) + + pci:v00008086d00002930sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Optiplex 755) + + pci:v00008086d00002930sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002930sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (dv6-1190en) + + pci:v00008086d00002930sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (P5K PRO Motherboard) + + pci:v00008086d00002930sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (G33/P35 Neo) + + pci:v00008086d00002930sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (QEMU Virtual Machine) + + pci:v00008086d00002930sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Desktop Board DP35DP) + + pci:v00008086d00002930sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (CCM-BOOGIE) + + pci:v00008086d00002932* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem + + pci:v00008086d00002932sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem (dv6-1190en) + + pci:v00008086d00002934* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 + + pci:v00008086d00002934sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Inspiron 530) + + pci:v00008086d00002934sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R300 onboard UHCI) + + pci:v00008086d00002934sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002934sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) + + pci:v00008086d00002934sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R200 onboard UHCI) + + pci:v00008086d00002934sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002934sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd00002011* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) + + pci:v00008086d00002934sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002934sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (P5K PRO Motherboard) + + pci:v00008086d00002934sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (G33/P35 Neo) + + pci:v00008086d00002934sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (QEMU Virtual Machine) + + pci:v00008086d00002934sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Desktop Board DP35DP) + + pci:v00008086d00002934sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (CCM-BOOGIE) + + pci:v00008086d00002935* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 + + pci:v00008086d00002935sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Inspiron 530) + + pci:v00008086d00002935sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R300 onboard UHCI) + + pci:v00008086d00002935sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002935sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Optiplex 755) + + pci:v00008086d00002935sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002935sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002935sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002935sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R200 onboard UHCI) + + pci:v00008086d00002935sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002935sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002935sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002935sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (P5K PRO Motherboard) + + pci:v00008086d00002935sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (G33/P35 Neo) + + pci:v00008086d00002935sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (QEMU Virtual Machine) + + pci:v00008086d00002935sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Desktop Board DP35DP) + + pci:v00008086d00002935sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (CCM-BOOGIE) + + pci:v00008086d00002936* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 + + pci:v00008086d00002936sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Inspiron 530) + + pci:v00008086d00002936sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R300 onboard UHCI) + + pci:v00008086d00002936sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002936sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Optiplex 755) + + pci:v00008086d00002936sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002936sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R200 onboard UHCI) + + pci:v00008086d00002936sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002936sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002936sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002936sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (P5K PRO Motherboard) + + pci:v00008086d00002936sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (G33/P35 Neo) + + pci:v00008086d00002936sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (QEMU Virtual Machine) + + pci:v00008086d00002936sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Desktop Board DP35DP) + + pci:v00008086d00002936sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (CCM-BOOGIE) + + pci:v00008086d00002937* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 + + pci:v00008086d00002937sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Inspiron 530) + + pci:v00008086d00002937sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) + + pci:v00008086d00002937sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002937sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00002011* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) + + pci:v00008086d00002937sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002937sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (P5K PRO Motherboard) + + pci:v00008086d00002937sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (G33/P35 Neo) + + pci:v00008086d00002937sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (QEMU Virtual Machine) + + pci:v00008086d00002937sv00008086sd00002937* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) + + pci:v00008086d00002937sv00008086sd00002942* +- ID_MODEL_FROM_DATABASE=828011 (ICH9 Family ) USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (828011 (ICH9 Family ) USB UHCI Controller) + + pci:v00008086d00002937sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Desktop Board DP35DP) + + pci:v00008086d00002937sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (CCM-BOOGIE) + + pci:v00008086d00002938* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 + + pci:v00008086d00002938sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Inspiron 530) + + pci:v00008086d00002938sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) + + pci:v00008086d00002938sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002938sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002938sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002938sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002938sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002938sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002938sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (P5K PRO Motherboard) + + pci:v00008086d00002938sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (G33/P35 Neo) + + pci:v00008086d00002938sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (QEMU Virtual Machine) + + pci:v00008086d00002938sv00008086sd00002938* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) + + pci:v00008086d00002938sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Desktop Board DP35DP) + + pci:v00008086d00002938sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (CCM-BOOGIE) + + pci:v00008086d00002939* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 + + pci:v00008086d00002939sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Inspiron 530) + + pci:v00008086d00002939sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002939sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002939sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002939sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (P5K PRO Motherboard) + + pci:v00008086d00002939sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (G33/P35 Neo) + + pci:v00008086d00002939sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (QEMU Virtual Machine) + + pci:v00008086d00002939sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Desktop Board DP35DP) + + pci:v00008086d00002939sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (CCM-BOOGIE) + + pci:v00008086d0000293A* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 + + pci:v00008086d0000293Asv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Inspiron 530) + + pci:v00008086d0000293Asv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R300 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T300 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Optiplex 755) + + pci:v00008086d0000293Asv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R710 USB EHCI Controller) + + pci:v00008086d0000293Asv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R610 USB EHCI Controller) + + pci:v00008086d0000293Asv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T610 USB EHCI Controller) + + pci:v00008086d0000293Asv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R200 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M610 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M710 USB EHCI Controller) + + pci:v00008086d0000293Asv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000293Asv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (P5K PRO Motherboard) + + pci:v00008086d0000293Asv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (G33/P35 Neo) + + pci:v00008086d0000293Asv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (QEMU Virtual Machine) + + pci:v00008086d0000293Asv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Desktop Board DP35DP) + + pci:v00008086d0000293Asv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (CCM-BOOGIE) + + pci:v00008086d0000293C* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 + + pci:v00008086d0000293Csv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Inspiron 530) + + pci:v00008086d0000293Csv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) + + pci:v00008086d0000293Csv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R710 USB EHCI Controller) + + pci:v00008086d0000293Csv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R610 USB EHCI Controller) + + pci:v00008086d0000293Csv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge T610 USB EHCI Controller) + + pci:v00008086d0000293Csv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M610 onboard EHCI) + + pci:v00008086d0000293Csv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M710 USB EHCI Controller) + + pci:v00008086d0000293Csv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000293Csv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (P5K PRO Motherboard) + + pci:v00008086d0000293Csv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (G33/P35 Neo) + + pci:v00008086d0000293Csv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (QEMU Virtual Machine) + + pci:v00008086d0000293Csv00008086sd0000293C* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) + + pci:v00008086d0000293Csv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Desktop Board DP35DP) + + pci:v00008086d0000293Csv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (CCM-BOOGIE) + + pci:v00008086d0000293E* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller + + pci:v00008086d0000293Esv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Inspiron 530) + + pci:v00008086d0000293Esv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) + + pci:v00008086d0000293Esv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000293Esv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (dv6-1190en) + + pci:v00008086d0000293Esv00001043sd0000829F* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (P5K PRO Motherboard) + + pci:v00008086d0000293Esv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (G33/P35 Neo) + + pci:v00008086d0000293Esv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (QEMU Virtual Machine) + + pci:v00008086d0000293Esv00008086sd0000293E* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) + + pci:v00008086d0000293Esv00008086sd00002940* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) + + pci:v00008086d0000293Esv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (CCM-BOOGIE) + + pci:v00008086d00002940* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 + + pci:v00008086d00002940sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Inspiron 530) + + pci:v00008086d00002940sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) + + pci:v00008086d00002940sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002940sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (P5K PRO Motherboard) + + pci:v00008086d00002940sv00008086sd00002940* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) + + pci:v00008086d00002942* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 + + pci:v00008086d00002942sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 (Inspiron 530) + + pci:v00008086d00002944* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 + + pci:v00008086d00002944sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Inspiron 530) + + pci:v00008086d00002944sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002946* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 + + pci:v00008086d00002946sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 (Inspiron 530) + + pci:v00008086d00002948* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 + + pci:v00008086d00002948sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (Inspiron 530) + + pci:v00008086d00002948sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (P5K PRO Motherboard) + + pci:v00008086d0000294A* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 + + pci:v00008086d0000294Asv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (Inspiron 530) + + pci:v00008086d0000294Asv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (P5K PRO Motherboard) + + pci:v00008086d0000294C* + ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection + + pci:v00008086d0000294Csv000017AAsd0000302E* +- ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection ++ ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection (82566DM-2 Gigabit Network Connection) + + pci:v00008086d00002970* + ID_MODEL_FROM_DATABASE=82946GZ/PL/GL Memory Controller Hub +@@ -66330,7 +66330,7 @@ pci:v00008086d00002990* + ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub + + pci:v00008086d00002990sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub (OptiPlex 745) + + pci:v00008086d00002991* + ID_MODEL_FROM_DATABASE=82Q963/Q965 PCI Express Root Port +@@ -66357,10 +66357,10 @@ pci:v00008086d000029A0* + ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub + + pci:v00008086d000029A0sv00001043sd000081EA* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (P5B) + + pci:v00008086d000029A0sv00001462sd00007276* +- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] ++ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (MS-7276 [G965MDH]) + + pci:v00008086d000029A1* + ID_MODEL_FROM_DATABASE=82P965/G965 PCI Express Root Port +@@ -66369,7 +66369,7 @@ pci:v00008086d000029A2* + ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller + + pci:v00008086d000029A2sv00001462sd00007276* +- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] ++ ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller (MS-7276 [G965MDH]) + + pci:v00008086d000029A3* + ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller +@@ -66390,31 +66390,31 @@ pci:v00008086d000029B0* + ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller + + pci:v00008086d000029B0sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller (OptiPlex 755) + + pci:v00008086d000029B1* + ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port + + pci:v00008086d000029B1sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port (OptiPlex 755) + + pci:v00008086d000029B2* + ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller + + pci:v00008086d000029B2sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) + + pci:v00008086d000029B3* + ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller + + pci:v00008086d000029B3sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) + + pci:v00008086d000029B4* + ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller + + pci:v00008086d000029B4sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller (OptiPlex 755) + + pci:v00008086d000029B5* + ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller +@@ -66423,70 +66423,70 @@ pci:v00008086d000029B6* + ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller + + pci:v00008086d000029B6sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller (OptiPlex 755) + + pci:v00008086d000029B7* + ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller + + pci:v00008086d000029B7sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller (OptiPlex 755) + + pci:v00008086d000029C0* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller + + pci:v00008086d000029C0sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Inspiron 530) + + pci:v00008086d000029C0sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d000029C0sv00001043sd00008276* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5K PRO Motherboard) + + pci:v00008086d000029C0sv00001043sd000082B0* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5KPL-VM Motherboard) + + pci:v00008086d000029C0sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (G33/P35 Neo) + + pci:v00008086d000029C0sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (QEMU Virtual Machine) + + pci:v00008086d000029C0sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Desktop Board DP35DP) + + pci:v00008086d000029C1* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port + + pci:v00008086d000029C1sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (Inspiron 530) + + pci:v00008086d000029C1sv00001043sd00008276* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (P5K PRO Motherboard) + + pci:v00008086d000029C2* + ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller + + pci:v00008086d000029C2sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) + + pci:v00008086d000029C2sv00001043sd000082B0* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) + + pci:v00008086d000029C3* + ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller + + pci:v00008086d000029C3sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) + + pci:v00008086d000029C3sv00001043sd000082B0* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) + + pci:v00008086d000029C4* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller + + pci:v00008086d000029C4sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller (Desktop Board DP35DP) + + pci:v00008086d000029C5* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller +@@ -66570,37 +66570,37 @@ pci:v00008086d00002A00* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub + + pci:v00008086d00002A00sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Acer Aspire 5920G) + + pci:v00008086d00002A00sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Inspiron 1420) + + pci:v00008086d00002A00sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6710b) + + pci:v00008086d00002A00sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6910p) + + pci:v00008086d00002A00sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Pavilion dv6700) + + pci:v00008086d00002A00sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Presario C700) + + pci:v00008086d00002A00sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Vaio VGN-FZ260E) + + pci:v00008086d00002A00sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (VAIO VGN-NR120E) + + pci:v00008086d00002A00sv000017AAsd000020B1* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61) + + pci:v00008086d00002A00sv000017AAsd000020B3* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) + + pci:v00008086d00002A00sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) + + pci:v00008086d00002A01* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 PCI Express Root Port +@@ -66609,52 +66609,52 @@ pci:v00008086d00002A02* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) + + pci:v00008086d00002A02sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Inspiron 1420) + + pci:v00008086d00002A02sv00001028sd000001F9* +- ID_MODEL_FROM_DATABASE=Latitude D630 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Latitude D630) + + pci:v00008086d00002A02sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Compaq 6710b) + + pci:v00008086d00002A02sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Presario C700) + + pci:v00008086d00002A02sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (VAIO VGN-NR120E) + + pci:v00008086d00002A02sv000017AAsd000020B5* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) + + pci:v00008086d00002A02sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) + + pci:v00008086d00002A03* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) + + pci:v00008086d00002A03sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Dell Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) + + pci:v00008086d00002A03sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) + + pci:v00008086d00002A03sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Presario C700) + + pci:v00008086d00002A03sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (VAIO VGN-NR120E) + + pci:v00008086d00002A03sv000017AAsd000020B5* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) + + pci:v00008086d00002A03sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) + + pci:v00008086d00002A04* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller + + pci:v00008086d00002A04sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller (Compaq 6910p) + + pci:v00008086d00002A05* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller +@@ -66663,19 +66663,19 @@ pci:v00008086d00002A06* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller + + pci:v00008086d00002A06sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller (Compaq 6910p) + + pci:v00008086d00002A07* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller + + pci:v00008086d00002A07sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller (Compaq 6910p) + + pci:v00008086d00002A10* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub + + pci:v00008086d00002A10sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub (CCG-RUMBA) + + pci:v00008086d00002A11* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 PCI Express Root Port +@@ -66684,13 +66684,13 @@ pci:v00008086d00002A12* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller + + pci:v00008086d00002A12sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) + + pci:v00008086d00002A13* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller + + pci:v00008086d00002A13sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) + + pci:v00008086d00002A14* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 MEI Controller +@@ -66708,25 +66708,25 @@ pci:v00008086d00002A40* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub + + pci:v00008086d00002A40sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub (CCM-BOOGIE) + + pci:v00008086d00002A41* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port + + pci:v00008086d00002A41sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port (CCM-BOOGIE) + + pci:v00008086d00002A42* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002A42sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) + + pci:v00008086d00002A43* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002A43sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) + + pci:v00008086d00002A44* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset MEI Controller +@@ -67251,34 +67251,34 @@ pci:v00008086d00002E20* + ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller + + pci:v00008086d00002E20sv00001028sd00000283* +- ID_MODEL_FROM_DATABASE=Dell Vostro 220 ++ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (Dell Vostro 220) + + pci:v00008086d00002E20sv00001043sd000082D3* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00002E20sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00002E21* + ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port + + pci:v00008086d00002E21sv00001043sd000082D3* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (P5Q Deluxe Motherboard) + + pci:v00008086d00002E21sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (GA-EP45-DS5 Motherboard) + + pci:v00008086d00002E22* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002E22sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) + + pci:v00008086d00002E23* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002E23sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) + + pci:v00008086d00002E24* + ID_MODEL_FROM_DATABASE=4 Series Chipset HECI Controller +@@ -67917,16 +67917,16 @@ pci:v00008086d00003200* + ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA + + pci:v00008086d00003200sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K onboard SATA host bus adapter ++ ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA (C2K onboard SATA host bus adapter) + + pci:v00008086d00003310* + ID_MODEL_FROM_DATABASE=IOP348 I/O Processor + + pci:v00008086d00003310sv00001054sd00003030* +- ID_MODEL_FROM_DATABASE=HRA380 Hitachi RAID Adapter to PCIe ++ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA380 Hitachi RAID Adapter to PCIe) + + pci:v00008086d00003310sv00001054sd00003034* +- ID_MODEL_FROM_DATABASE=HRA381 Hitachi RAID Adapter to PCIe ++ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA381 Hitachi RAID Adapter to PCIe) + + pci:v00008086d00003313* + ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA +@@ -67944,31 +67944,31 @@ pci:v00008086d00003340* + ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller + + pci:v00008086d00003340sv00001014sd00000529* +- ID_MODEL_FROM_DATABASE=Thinkpad T40 series ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (Thinkpad T40 series) + + pci:v00008086d00003340sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (TravelMate 290) + + pci:v00008086d00003340sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC8000 laptop) + + pci:v00008086d00003340sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC6000 laptop) + + pci:v00008086d00003340sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (tc1100 tablet) + + pci:v00008086d00003340sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (X10 Laptop) + + pci:v00008086d00003340sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (P30/P35 notebook) + + pci:v00008086d00003341* + ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller + + pci:v00008086d00003341sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller (P30 notebook) + + pci:v00008086d00003363* + ID_MODEL_FROM_DATABASE=IOC340 I/O Controller in IOC Mode SAS/SATA +@@ -67995,19 +67995,19 @@ pci:v00008086d00003403* + ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port + + pci:v00008086d00003403sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R610 I/O Hub to ESI Port) + + pci:v00008086d00003403sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge M610 I/O Hub to ESI Port) + + pci:v00008086d00003403sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R410 I/O Hub to ESI Port) + + pci:v00008086d00003403sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge T410 I/O Hub to ESI Port) + + pci:v00008086d00003403sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (ProLiant ML150 G6 Server) + + pci:v00008086d00003404* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port +@@ -68019,7 +68019,7 @@ pci:v00008086d00003406* + ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port + + pci:v00008086d00003406sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port (ProLiant G6 series) + + pci:v00008086d00003407* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port +@@ -68028,7 +68028,7 @@ pci:v00008086d00003408* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 + + pci:v00008086d00003408sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 (ProLiant G6 series) + + pci:v00008086d00003409* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 2 +@@ -68037,7 +68037,7 @@ pci:v00008086d0000340A* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 + + pci:v00008086d0000340Asv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 (ProLiant ML150 G6 Server) + + pci:v00008086d0000340B* + ID_MODEL_FROM_DATABASE=5520/X58 I/O Hub PCI Express Root Port 4 +@@ -68052,7 +68052,7 @@ pci:v00008086d0000340E* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 + + pci:v00008086d0000340Esv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 (ProLiant ML150 G6 Server) + + pci:v00008086d0000340F* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 8 +@@ -68079,13 +68079,13 @@ pci:v00008086d00003422* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers + + pci:v00008086d00003422sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (ProLiant G6 series) + + pci:v00008086d00003423* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers + + pci:v00008086d00003423sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (ProLiant G6 series) + + pci:v00008086d00003425* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Physical and Link Layer Registers Port 0 +@@ -68118,7 +68118,7 @@ pci:v00008086d0000342E* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers + + pci:v00008086d0000342Esv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers (ProLiant G6 series) + + pci:v00008086d0000342F* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Trusted Execution Technology Registers +@@ -68142,10 +68142,10 @@ pci:v00008086d00003500* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port + + pci:v00008086d00003500sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (ProLiant DL140 G3) + + pci:v00008086d00003500sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (X7DBN Motherboard) + + pci:v00008086d00003501* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express Upstream Port +@@ -68160,10 +68160,10 @@ pci:v00008086d0000350C* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge + + pci:v00008086d0000350Csv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (ProLiant DL140 G3) + + pci:v00008086d0000350Csv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (X7DBN Motherboard) + + pci:v00008086d0000350D* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express to PCI-X Bridge +@@ -68172,10 +68172,10 @@ pci:v00008086d00003510* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 + + pci:v00008086d00003510sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (ProLiant DL140 G3) + + pci:v00008086d00003510sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (X7DBN Motherboard) + + pci:v00008086d00003511* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E1 +@@ -68190,7 +68190,7 @@ pci:v00008086d00003518* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 + + pci:v00008086d00003518sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 (X7DBN Motherboard) + + pci:v00008086d00003519* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E3 +@@ -68199,13 +68199,13 @@ pci:v00008086d00003575* + ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge + + pci:v00008086d00003575sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (Evo N600c) + + pci:v00008086d00003575sv00001014sd0000021D* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (ThinkPad A/T/X Series) + + pci:v00008086d00003575sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00003576* + ID_MODEL_FROM_DATABASE=82830M/MP AGP Bridge +@@ -68214,7 +68214,7 @@ pci:v00008086d00003577* + ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller + + pci:v00008086d00003577sv00001014sd00000513* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller (ThinkPad A/T/X Series) + + pci:v00008086d00003578* + ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge +@@ -68223,181 +68223,181 @@ pci:v00008086d00003580* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller + + pci:v00008086d00003580sv00001014sd0000055C* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) + + pci:v00008086d00003580sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) + + pci:v00008086d00003580sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) + + pci:v00008086d00003580sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) + + pci:v00008086d00003580sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) + + pci:v00008086d00003580sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) + + pci:v00008086d00003580sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) + + pci:v00008086d00003580sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) + + pci:v00008086d00003580sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) + + pci:v00008086d00003580sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) + + pci:v00008086d00003580sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) + + pci:v00008086d00003580sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) + + pci:v00008086d00003580sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) + + pci:v00008086d00003580sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CC9-SAMBA) + + pci:v00008086d00003580sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CD2-BEBOP) + + pci:v00008086d00003581* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller + + pci:v00008086d00003581sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller (Amilo M1420) + + pci:v00008086d00003582* + ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device + + pci:v00008086d00003582sv00001014sd00000562* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (ThinkPad R50e) + + pci:v00008086d00003582sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D400) + + pci:v00008086d00003582sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude X300) + + pci:v00008086d00003582sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D500) + + pci:v00008086d00003582sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D505) + + pci:v00008086d00003582sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Inspiron 700m/710m) + + pci:v00008086d00003582sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 integrated graphics ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PC8 integrated graphics) + + pci:v00008086d00003582sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer VGA ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (V5D Single Board Computer VGA) + + pci:v00008086d00003582sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CE9) + + pci:v00008086d00003582sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CL9 mainboard) + + pci:v00008086d00003582sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PSL09 PrPMC) + + pci:v00008086d00003582sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CC9-SAMBA) + + pci:v00008086d00003582sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CD2-BEBOP) + + pci:v00008086d00003584* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller + + pci:v00008086d00003584sv00001014sd0000055D* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) + + pci:v00008086d00003584sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) + + pci:v00008086d00003584sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) + + pci:v00008086d00003584sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) + + pci:v00008086d00003584sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) + + pci:v00008086d00003584sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) + + pci:v00008086d00003584sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) + + pci:v00008086d00003584sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) + + pci:v00008086d00003584sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) + + pci:v00008086d00003584sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) + + pci:v00008086d00003584sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) + + pci:v00008086d00003584sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) + + pci:v00008086d00003584sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) + + pci:v00008086d00003585* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller + + pci:v00008086d00003585sv00001014sd0000055E* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) + + pci:v00008086d00003585sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) + + pci:v00008086d00003585sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) + + pci:v00008086d00003585sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) + + pci:v00008086d00003585sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) + + pci:v00008086d00003585sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) + + pci:v00008086d00003585sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) + + pci:v00008086d00003585sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) + + pci:v00008086d00003585sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) + + pci:v00008086d00003585sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) + + pci:v00008086d00003585sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) + + pci:v00008086d00003585sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) + + pci:v00008086d00003585sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) + + pci:v00008086d0000358C* + ID_MODEL_FROM_DATABASE=82854 GMCH +@@ -68409,70 +68409,70 @@ pci:v00008086d00003590* + ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub + + pci:v00008086d00003590sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (eServer xSeries server mainboard) + + pci:v00008086d00003590sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Memory Controller Hub ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 1850 Memory Controller Hub) + + pci:v00008086d00003590sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Memory Controller Hub ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 2850 Memory Controller Hub) + + pci:v00008086d00003590sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge SC1425) + + pci:v00008086d00003590sv00001734sd0000103E* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PRIMERGY RX/TX S2 series) + + pci:v00008086d00003590sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (CR11/VR11 Single Board Computer) + + pci:v00008086d00003590sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (Telum ASLP10 Processor AMC) + + pci:v00008086d00003591* + ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers + + pci:v00008086d00003591sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (eServer xSeries server mainboard) + + pci:v00008086d00003591sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision Workstation 670 Mainboard) + + pci:v00008086d00003591sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision 470) + + pci:v00008086d00003591sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (ProLiant DL140 G2) + + pci:v00008086d00003591sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Telum ASLP10 Processor AMC) + + pci:v00008086d00003592* + ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub + + pci:v00008086d00003592sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d00003593* + ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers + + pci:v00008086d00003593sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d00003594* + ID_MODEL_FROM_DATABASE=E7520 DMA Controller + + pci:v00008086d00003594sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d00003594sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d00003595* + ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A + + pci:v00008086d00003595sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A (CR11/VR11 Single Board Computer) + + pci:v00008086d00003596* + ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A1 +@@ -68481,19 +68481,19 @@ pci:v00008086d00003597* + ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B + + pci:v00008086d00003597sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B (CR11/VR11 Single Board Computer) + + pci:v00008086d00003598* + ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 + + pci:v00008086d00003598sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 (CR11/VR11 Single Board Computer) + + pci:v00008086d00003599* + ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C + + pci:v00008086d00003599sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C (CR11/VR11 Single Board Computer) + + pci:v00008086d0000359A* + ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C1 +@@ -68502,16 +68502,16 @@ pci:v00008086d0000359B* + ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers + + pci:v00008086d0000359Bsv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers (eServer xSeries server mainboard) + + pci:v00008086d0000359E* + ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub + + pci:v00008086d0000359Esv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision Workstation 670 Mainboard) + + pci:v00008086d0000359Esv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision 470) + + pci:v00008086d000035B0* + ID_MODEL_FROM_DATABASE=3100 Chipset Memory I/O Controller Hub +@@ -68562,7 +68562,7 @@ pci:v00008086d0000360C* + ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers + + pci:v00008086d0000360Csv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 7300 Chipset FSB Registers ++ ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers (PowerEdge R900 7300 Chipset FSB Registers) + + pci:v00008086d0000360D* + ID_MODEL_FROM_DATABASE=7300 Chipset Snoop Filter Registers +@@ -68724,19 +68724,19 @@ pci:v00008086d00003A16* + ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller + + pci:v00008086d00003A16sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 LPC Interface Controller ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge R410 LPC Interface Controller) + + pci:v00008086d00003A16sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 LPC Interface Controller ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge T410 LPC Interface Controller) + + pci:v00008086d00003A16sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (ProLiant G6 series) + + pci:v00008086d00003A16sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A16sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A18* + ID_MODEL_FROM_DATABASE=82801JIB (ICH10) LPC Interface Controller +@@ -68748,52 +68748,52 @@ pci:v00008086d00003A20* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 + + pci:v00008086d00003A20sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge R410 SATA IDE Controller) + + pci:v00008086d00003A20sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge T410 SATA IDE Controller) + + pci:v00008086d00003A22* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller + + pci:v00008086d00003A22sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (ProLiant G6 series) + + pci:v00008086d00003A22sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A22sv00001458sd0000B005* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A25* + ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller + + pci:v00008086d00003A25sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R410) ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R410)) + + pci:v00008086d00003A25sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE T410) ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE T410)) + + pci:v00008086d00003A25sv00001028sd000002F1* +- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R510) ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R510)) + + pci:v00008086d00003A26* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 + + pci:v00008086d00003A26sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge R410 SATA IDE Controller) + + pci:v00008086d00003A26sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge T410 SATA IDE Controller) + + pci:v00008086d00003A30* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller + + pci:v00008086d00003A30sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A30sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A32* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Thermal Subsystem +@@ -68802,178 +68802,178 @@ pci:v00008086d00003A34* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 + + pci:v00008086d00003A34sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A34sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A34sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (ProLiant G6 series) + + pci:v00008086d00003A34sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A34sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A35* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 + + pci:v00008086d00003A35sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A35sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A35sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (ProLiant G6 series) + + pci:v00008086d00003A35sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A35sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A36* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 + + pci:v00008086d00003A36sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A36sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A36sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (ProLiant G6 series) + + pci:v00008086d00003A36sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A36sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A37* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 + + pci:v00008086d00003A37sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A37sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A37sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (ProLiant G6 series) + + pci:v00008086d00003A37sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A37sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (Motherboard) + + pci:v00008086d00003A38* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 + + pci:v00008086d00003A38sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A38sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A38sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A38sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A38sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (Motherboard) + + pci:v00008086d00003A39* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 + + pci:v00008086d00003A39sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A39sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A39sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A39sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A39sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (Motherboard) + + pci:v00008086d00003A3A* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 + + pci:v00008086d00003A3Asv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge R410 USB EHCI Controller) + + pci:v00008086d00003A3Asv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge T410 USB EHCI Controller) + + pci:v00008086d00003A3Asv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (ProLiant G6 series) + + pci:v00008086d00003A3Asv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A3Asv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A3C* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 + + pci:v00008086d00003A3Csv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge R410 USB EHCI Controller) + + pci:v00008086d00003A3Csv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge T410 USB EHCI Controller) + + pci:v00008086d00003A3Csv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (ProLiant G6 series) + + pci:v00008086d00003A3Csv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A3Csv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (Motherboard) + + pci:v00008086d00003A3E* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller + + pci:v00008086d00003A3Esv00001043sd00008311* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A3Esv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-EP45-UD3R Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-UD3R Motherboard) + + pci:v00008086d00003A3Esv00001458sd0000A102* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A40* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 + + pci:v00008086d00003A40sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 PCI Express Port 1 ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge R410 PCI Express Port 1) + + pci:v00008086d00003A40sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 PCI Express Port 1 ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge T410 PCI Express Port 1) + + pci:v00008086d00003A40sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A40sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A40sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A40sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A42* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Port 2 +@@ -68982,43 +68982,43 @@ pci:v00008086d00003A44* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 + + pci:v00008086d00003A44sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A46* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 + + pci:v00008086d00003A46sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A46sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A48* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 + + pci:v00008086d00003A48sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A48sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (P6T Deluxe Motherboard) + + pci:v00008086d00003A48sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A4A* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 + + pci:v00008086d00003A4Asv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A4Asv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A4Asv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A4Asv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A4C* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Gigabit Ethernet Controller +@@ -69108,10 +69108,10 @@ pci:v00008086d00003B07* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller + + pci:v00008086d00003B07sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Latitude E6510) + + pci:v00008086d00003B07sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (PC1-GROOVE) + + pci:v00008086d00003B08* + ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller +@@ -69120,16 +69120,16 @@ pci:v00008086d00003B09* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller + + pci:v00008086d00003B09sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) + + pci:v00008086d00003B0A* + ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller + + pci:v00008086d00003B0Asv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (OptiPlex 980) + + pci:v00008086d00003B0Asv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B0B* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller +@@ -69204,10 +69204,10 @@ pci:v00008086d00003B22* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller + + pci:v00008086d00003B22sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (OptiPlex 980) + + pci:v00008086d00003B22sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B23* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller +@@ -69225,7 +69225,7 @@ pci:v00008086d00003B29* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller + + pci:v00008086d00003B29sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) + + pci:v00008086d00003B2C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller +@@ -69234,64 +69234,64 @@ pci:v00008086d00003B2D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller + + pci:v00008086d00003B2Dsv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) + + pci:v00008086d00003B2E* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller + + pci:v00008086d00003B2Esv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (PC1-GROOVE) + + pci:v00008086d00003B2F* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller + + pci:v00008086d00003B2Fsv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (Latitude E6510) + + pci:v00008086d00003B2Fsv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (PC1-GROOVE) + + pci:v00008086d00003B30* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller + + pci:v00008086d00003B30sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Aspire 7740G) + + pci:v00008086d00003B30sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (OptiPlex 980) + + pci:v00008086d00003B30sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) + + pci:v00008086d00003B30sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B30sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) + + pci:v00008086d00003B32* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem + + pci:v00008086d00003B32sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) + + pci:v00008086d00003B34* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller + + pci:v00008086d00003B34sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) + + pci:v00008086d00003B34sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) + + pci:v00008086d00003B34sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + + pci:v00008086d00003B34sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B34sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + + pci:v00008086d00003B36* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller +@@ -69315,19 +69315,19 @@ pci:v00008086d00003B3C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller + + pci:v00008086d00003B3Csv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) + + pci:v00008086d00003B3Csv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) + + pci:v00008086d00003B3Csv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + + pci:v00008086d00003B3Csv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B3Csv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + + pci:v00008086d00003B3E* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller +@@ -69345,40 +69345,40 @@ pci:v00008086d00003B42* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 + + pci:v00008086d00003B42sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (OptiPlex 980) + + pci:v00008086d00003B42sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) + + pci:v00008086d00003B42sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) + + pci:v00008086d00003B44* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 + + pci:v00008086d00003B44sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Latitude E6510) + + pci:v00008086d00003B44sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) + + pci:v00008086d00003B46* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 + + pci:v00008086d00003B46sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) + + pci:v00008086d00003B48* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 + + pci:v00008086d00003B48sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) + + pci:v00008086d00003B4A* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 + + pci:v00008086d00003B4Asv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) + + pci:v00008086d00003B4C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 +@@ -69396,19 +69396,19 @@ pci:v00008086d00003B56* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio + + pci:v00008086d00003B56sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Aspire 7740G) + + pci:v00008086d00003B56sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (OptiPlex 980) + + pci:v00008086d00003B56sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) + + pci:v00008086d00003B56sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) + + pci:v00008086d00003B56sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) + + pci:v00008086d00003B57* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio +@@ -69417,13 +69417,13 @@ pci:v00008086d00003B64* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller + + pci:v00008086d00003B64sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Aspire 7740G) + + pci:v00008086d00003B64sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B64sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) + + pci:v00008086d00003B65* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller +@@ -69435,7 +69435,7 @@ pci:v00008086d00003B67* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller + + pci:v00008086d00003B67sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller (PC1-GROOVE) + + pci:v00008086d00003C00* + ID_MODEL_FROM_DATABASE=Xeon E5/Core i7 DMI2 +@@ -69765,25 +69765,25 @@ pci:v00008086d00004220* + ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection + + pci:v00008086d00004220sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Compaq nw8240/nx8220) + + pci:v00008086d00004220sv0000103Csd000012F6* +- ID_MODEL_FROM_DATABASE=nc6120/nx8220/nw8240 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (nc6120/nx8220/nw8240) + + pci:v00008086d00004220sv00008086sd00002701* +- ID_MODEL_FROM_DATABASE=WM3B2300BG Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (WM3B2300BG Mini-PCI Card) + + pci:v00008086d00004220sv00008086sd00002712* +- ID_MODEL_FROM_DATABASE=IBM ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (IBM ThinkPad R50e) + + pci:v00008086d00004220sv00008086sd00002721* +- ID_MODEL_FROM_DATABASE=Dell B130 laptop integrated WLAN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell B130 laptop integrated WLAN) + + pci:v00008086d00004220sv00008086sd00002722* +- ID_MODEL_FROM_DATABASE=Dell Latitude D600 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell Latitude D600) + + pci:v00008086d00004220sv00008086sd00002731* +- ID_MODEL_FROM_DATABASE=Samsung P35 integrated WLAN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Samsung P35 integrated WLAN) + + pci:v00008086d00004222* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection +@@ -69792,40 +69792,40 @@ pci:v00008086d00004222sv0000103Csd0000135C* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection + + pci:v00008086d00004222sv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004222sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004222sv00008086sd00001005* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004222sv00008086sd00001034* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004222sv00008086sd00001044* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004222sv00008086sd00001C00* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004223* + ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection + + pci:v00008086d00004223sv00001000sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B Americas/Europe ZZA ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Americas/Europe ZZA) + + pci:v00008086d00004223sv00001001sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B Europe ZZE ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Europe ZZE) + + pci:v00008086d00004223sv00001002sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B Japan ZZJ ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Japan ZZJ) + + pci:v00008086d00004223sv00001003sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B High-Band ZZH ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B High-Band ZZH) + + pci:v00008086d00004223sv00001351sd0000103C* +- ID_MODEL_FROM_DATABASE=Compaq NC6220 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (Compaq NC6220) + + pci:v00008086d00004224* + ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection +@@ -69834,106 +69834,106 @@ pci:v00008086d00004227* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection + + pci:v00008086d00004227sv00008086sd00001011* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60e/X60s ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (ThinkPad T60/R60e/X60s) + + pci:v00008086d00004227sv00008086sd00001014* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004229* + ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection + + pci:v00008086d00004229sv00008086sd00001100* +- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Vaio VGN-SZ79SN_C) + + pci:v00008086d00004229sv00008086sd00001101* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (PRO/Wireless 4965 AG or AGN) + + pci:v00008086d0000422B* + ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 + + pci:v00008086d0000422Bsv00008086sd00001101* +- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) + + pci:v00008086d0000422Bsv00008086sd00001121* +- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) + + pci:v00008086d0000422C* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 + + pci:v00008086d0000422Csv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) + + pci:v00008086d0000422Csv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) + + pci:v00008086d0000422Csv00008086sd00001307* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 BG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 BG) + + pci:v00008086d0000422Csv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) + + pci:v00008086d0000422Csv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) + + pci:v00008086d00004230* + ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection + + pci:v00008086d00004230sv00008086sd00001110* +- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T51 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T51) + + pci:v00008086d00004230sv00008086sd00001111* +- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T61) + + pci:v00008086d00004232* + ID_MODEL_FROM_DATABASE=WiFi Link 5100 + + pci:v00008086d00004232sv00008086sd00001201* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001204* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001205* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001206* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004232sv00008086sd00001221* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001224* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001225* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001226* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004232sv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001304* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001305* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004232sv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001324* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001325* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004235* + ID_MODEL_FROM_DATABASE=Ultimate N WiFi Link 5300 +@@ -69945,43 +69945,43 @@ pci:v00008086d00004237* + ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection + + pci:v00008086d00004237sv00008086sd00001211* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001214* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001215* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) + + pci:v00008086d00004237sv00008086sd00001216* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) + + pci:v00008086d00004237sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001314* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001315* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) + + pci:v00008086d00004237sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) + + pci:v00008086d00004238* + ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 + + pci:v00008086d00004238sv00008086sd00001111* +- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) + + pci:v00008086d00004239* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 + + pci:v00008086d00004239sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) + + pci:v00008086d00004239sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) + + pci:v00008086d0000423A* + ID_MODEL_FROM_DATABASE=PRO/Wireless 5350 AGN [Echo Peak] Network Connection +@@ -69993,37 +69993,37 @@ pci:v00008086d0000423C* + ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 + + pci:v00008086d0000423Csv00008086sd00001201* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Csv00008086sd00001206* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000423Csv00008086sd00001221* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Csv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Csv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000423Csv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423D* + ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 + + pci:v00008086d0000423Dsv00008086sd00001211* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Dsv00008086sd00001216* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000423Dsv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Dsv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000444E* + ID_MODEL_FROM_DATABASE=Turbo Memory Controller +@@ -70176,7 +70176,7 @@ pci:v00008086d00005201* + ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller + + pci:v00008086d00005201sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller (EtherExpress PRO/100 Server Ethernet Adapter) + + pci:v00008086d0000530D* + ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor +@@ -70185,7 +70185,7 @@ pci:v00008086d00005845* + ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller + + pci:v00008086d00005845sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller (QEMU Virtual Machine) + + pci:v00008086d000065C0* + ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub +@@ -70212,16 +70212,16 @@ pci:v00008086d000065F0* + ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers + + pci:v00008086d000065F0sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 ++ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge R300) + + pci:v00008086d000065F0sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 ++ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge T300) + + pci:v00008086d000065F1* + ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers + + pci:v00008086d000065F1sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 ++ ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers (PowerEdge T300) + + pci:v00008086d000065F3* + ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers +@@ -70251,19 +70251,19 @@ pci:v00008086d00007000* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] + + pci:v00008086d00007000sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] (Qemu virtual machine) + + pci:v00008086d00007010* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] + + pci:v00008086d00007010sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] (Qemu virtual machine) + + pci:v00008086d00007020* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] + + pci:v00008086d00007020sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] (QEMU Virtual Machine) + + pci:v00008086d00007030* + ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] +@@ -70281,52 +70281,52 @@ pci:v00008086d00007110* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA + + pci:v00008086d00007110sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA (Virtual Machine Chipset) + + pci:v00008086d00007111* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE + + pci:v00008086d00007111sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE (Virtual Machine Chipset) + + pci:v00008086d00007112* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB + + pci:v00008086d00007112sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (Virtual Machine Chipset) + + pci:v00008086d00007112sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (QEMU Virtual Machine) + + pci:v00008086d00007113* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI + + pci:v00008086d00007113sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Virtual Machine Chipset) + + pci:v00008086d00007113sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Qemu virtual machine) + + pci:v00008086d00007120* + ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) + + pci:v00008086d00007120sv00004C53sd00001040* +- ID_MODEL_FROM_DATABASE=CL7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (CL7 mainboard) + + pci:v00008086d00007120sv00004C53sd00001060* +- ID_MODEL_FROM_DATABASE=PC7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (PC7 mainboard) + + pci:v00008086d00007121* + ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller + + pci:v00008086d00007121sv00004C53sd00001040* +- ID_MODEL_FROM_DATABASE=CL7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (CL7 mainboard) + + pci:v00008086d00007121sv00004C53sd00001060* +- ID_MODEL_FROM_DATABASE=PC7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (PC7 mainboard) + + pci:v00008086d00007121sv00008086sd00004341* +- ID_MODEL_FROM_DATABASE=Cayman (CA810) Mainboard ++ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (Cayman (CA810) Mainboard) + + pci:v00008086d00007122* + ID_MODEL_FROM_DATABASE=82810 DC-100 (GMCH) Graphics Memory Controller Hub +@@ -70338,13 +70338,13 @@ pci:v00008086d00007124* + ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub + + pci:v00008086d00007124sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub (OptiPlex GX110) + + pci:v00008086d00007125* + ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller + + pci:v00008086d00007125sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller (OptiPlex GX110) + + pci:v00008086d00007126* + ID_MODEL_FROM_DATABASE=82810 DC-133 System and Graphics Controller +@@ -70365,73 +70365,73 @@ pci:v00008086d00007190* + ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge + + pci:v00008086d00007190sv00000E11sd00000500* +- ID_MODEL_FROM_DATABASE=Armada 1750 Laptop System Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada 1750 Laptop System Chipset) + + pci:v00008086d00007190sv00000E11sd0000B110* +- ID_MODEL_FROM_DATABASE=Armada M700/E500 ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada M700/E500) + + pci:v00008086d00007190sv00001028sd0000008E* +- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (PowerEdge 1300 mainboard) + + pci:v00008086d00007190sv00001043sd0000803B* +- ID_MODEL_FROM_DATABASE=CUBX-L/E Mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CUBX-L/E Mainboard) + + pci:v00008086d00007190sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Toshiba Tecra 8100 Laptop System Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Toshiba Tecra 8100 Laptop System Chipset) + + pci:v00008086d00007190sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Virtual Machine Chipset) + + pci:v00008086d00007190sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CT7 mainboard) + + pci:v00008086d00007190sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CE7 mainboard) + + pci:v00008086d00007191* + ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + pci:v00008086d00007191sv00001028sd0000008E* +- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (PowerEdge 1300 mainboard) + + pci:v00008086d00007192* + ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) + + pci:v00008086d00007192sv00000E11sd00000460* +- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop System Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Armada 1700 Laptop System Chipset) + + pci:v00008086d00007192sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite 4010 ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Satellite 4010) + + pci:v00008086d00007192sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00008086d00007192sv00008086sd00007190* +- ID_MODEL_FROM_DATABASE=Dell PowerEdge 350 ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Dell PowerEdge 350) + + pci:v00008086d00007194* + ID_MODEL_FROM_DATABASE=82440MX Host Bridge + + pci:v00008086d00007194sv00001033sd00000000* +- ID_MODEL_FROM_DATABASE=Versa Note Vxi ++ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (Versa Note Vxi) + + pci:v00008086d00007194sv00004C53sd000010A0* +- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard ++ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (CA3/CR3 mainboard) + + pci:v00008086d00007195* + ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller + + pci:v00008086d00007195sv00001033sd000080CC* +- ID_MODEL_FROM_DATABASE=Versa Note VXi ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (Versa Note VXi) + + pci:v00008086d00007195sv000010CFsd00001099* +- ID_MODEL_FROM_DATABASE=QSound_SigmaTel Stac97 PCI Audio ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (QSound_SigmaTel Stac97 PCI Audio) + + pci:v00008086d00007195sv000011D4sd00000040* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00007195sv000011D4sd00000048* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00007196* + ID_MODEL_FROM_DATABASE=82440MX AC'97 Modem Controller +@@ -70452,10 +70452,10 @@ pci:v00008086d000071A0* + ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge + + pci:v00008086d000071A0sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CT7 mainboard) + + pci:v00008086d000071A0sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CE7 mainboard) + + pci:v00008086d000071A1* + ID_MODEL_FROM_DATABASE=440GX - 82443GX AGP bridge +@@ -70464,7 +70464,7 @@ pci:v00008086d000071A2* + ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) + + pci:v00008086d000071A2sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00008086d00007600* + ID_MODEL_FROM_DATABASE=82372FB PIIX5 ISA +@@ -70482,25 +70482,25 @@ pci:v00008086d00007800* + ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator + + pci:v00008086d00007800sv0000003Dsd00000008* +- ID_MODEL_FROM_DATABASE=Starfighter AGP ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) + + pci:v00008086d00007800sv0000003Dsd0000000B* +- ID_MODEL_FROM_DATABASE=Starfighter AGP ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) + + pci:v00008086d00007800sv00001092sd00000100* +- ID_MODEL_FROM_DATABASE=Stealth II G460 ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Stealth II G460) + + pci:v00008086d00007800sv000010B4sd0000201A* +- ID_MODEL_FROM_DATABASE=Lightspeed 740 ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) + + pci:v00008086d00007800sv000010B4sd0000202F* +- ID_MODEL_FROM_DATABASE=Lightspeed 740 ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) + + pci:v00008086d00007800sv00008086sd00000000* +- ID_MODEL_FROM_DATABASE=Terminator 2x/i ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Terminator 2x/i) + + pci:v00008086d00007800sv00008086sd00000100* +- ID_MODEL_FROM_DATABASE=Intel740 Graphics Accelerator ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Intel740 Graphics Accelerator) + + pci:v00008086d00008002* + ID_MODEL_FROM_DATABASE=Trusted Execution Technology Registers +@@ -70611,13 +70611,13 @@ pci:v00008086d00008500* + ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) + + pci:v00008086d00008500sv00001993sd00000DED* +- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#2 ++ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#2) + + pci:v00008086d00008500sv00001993sd00000DEE* +- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#1 ++ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#1) + + pci:v00008086d00008500sv00001993sd00000DEF* +- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#0 ++ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#0) + + pci:v00008086d00008800* + ID_MODEL_FROM_DATABASE=Platform Controller Hub EG20T PCI Express Port +@@ -70710,10 +70710,10 @@ pci:v00008086d00008C03* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] + + pci:v00008086d00008C03sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ZBook 15) + + pci:v00008086d00008C03sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ThinkPad T440p) + + pci:v00008086d00008C04* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode] +@@ -70743,7 +70743,7 @@ pci:v00008086d00008C10* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 + + pci:v00008086d00008C10sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 (ThinkPad T440p) + + pci:v00008086d00008C11* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 +@@ -70752,7 +70752,7 @@ pci:v00008086d00008C12* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 + + pci:v00008086d00008C12sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 (ThinkPad T440p) + + pci:v00008086d00008C13* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 +@@ -70797,10 +70797,10 @@ pci:v00008086d00008C20* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller + + pci:v00008086d00008C20sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ZBook 15) + + pci:v00008086d00008C20sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ThinkPad T440p) + + pci:v00008086d00008C21* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller +@@ -70809,10 +70809,10 @@ pci:v00008086d00008C22* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller + + pci:v00008086d00008C22sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ZBook 15) + + pci:v00008086d00008C22sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ThinkPad T440p) + + pci:v00008086d00008C23* + ID_MODEL_FROM_DATABASE=8 Series Chipset Family CHAP Counters +@@ -70824,28 +70824,28 @@ pci:v00008086d00008C26* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 + + pci:v00008086d00008C26sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ZBook 15) + + pci:v00008086d00008C26sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ThinkPad T440p) + + pci:v00008086d00008C2D* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 + + pci:v00008086d00008C2Dsv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ZBook 15) + + pci:v00008086d00008C2Dsv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ThinkPad T440p) + + pci:v00008086d00008C31* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI + + pci:v00008086d00008C31sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ZBook 15) + + pci:v00008086d00008C31sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ThinkPad T440p) + + pci:v00008086d00008C33* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LAN Controller +@@ -70857,10 +70857,10 @@ pci:v00008086d00008C3A* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 + + pci:v00008086d00008C3Asv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ZBook 15) + + pci:v00008086d00008C3Asv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ThinkPad T440p) + + pci:v00008086d00008C3B* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #2 +@@ -70920,10 +70920,10 @@ pci:v00008086d00008C4F* + ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller + + pci:v00008086d00008C4Fsv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ZBook 15) + + pci:v00008086d00008C4Fsv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ThinkPad T440p) + + pci:v00008086d00008C50* + ID_MODEL_FROM_DATABASE=B85 Express LPC Controller +@@ -70986,7 +70986,7 @@ pci:v00008086d00008D06* + ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] + + pci:v00008086d00008D06sv000017AAsd00001031* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i ++ ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] (ThinkServer RAID 110i) + + pci:v00008086d00008D08* + ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] +@@ -71196,7 +71196,7 @@ pci:v00008086d00009C03* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] + + pci:v00008086d00009C03sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) + + pci:v00008086d00009C04* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] +@@ -71286,7 +71286,7 @@ pci:v00008086d00009C20* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller + + pci:v00008086d00009C20sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) + + pci:v00008086d00009C21* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller +@@ -71295,7 +71295,7 @@ pci:v00008086d00009C22* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller + + pci:v00008086d00009C22sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) + + pci:v00008086d00009C23* + ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters +@@ -71307,7 +71307,7 @@ pci:v00008086d00009C26* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 + + pci:v00008086d00009C26sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) + + pci:v00008086d00009C2D* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 +@@ -71316,7 +71316,7 @@ pci:v00008086d00009C31* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC + + pci:v00008086d00009C31sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) + + pci:v00008086d00009C35* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller +@@ -71328,7 +71328,7 @@ pci:v00008086d00009C3A* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 + + pci:v00008086d00009C3Asv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) + + pci:v00008086d00009C3B* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 +@@ -71352,7 +71352,7 @@ pci:v00008086d00009C43* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller + + pci:v00008086d00009C43sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) + + pci:v00008086d00009C44* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller +@@ -71496,25 +71496,25 @@ pci:v00008086d0000A000* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge + + pci:v00008086d0000A000sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (GA-D525TUD) + + pci:v00008086d0000A000sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (DeskTop Board D510MO) + + pci:v00008086d0000A000sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Desktop Board D425KT) + + pci:v00008086d0000A001* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + + pci:v00008086d0000A001sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (GA-D525TUD) + + pci:v00008086d0000A001sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (DeskTop Board D510MO) + + pci:v00008086d0000A001sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Desktop Board D425KT) + + pci:v00008086d0000A002* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller +@@ -71526,19 +71526,19 @@ pci:v00008086d0000A010* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge + + pci:v00008086d0000A010sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Notebook N150P) + + pci:v00008086d0000A011* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + + pci:v00008086d0000A011sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) + + pci:v00008086d0000A012* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + + pci:v00008086d0000A012sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) + + pci:v00008086d0000A013* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx CHAPS counter +@@ -71559,22 +71559,22 @@ pci:v00008086d0000B555* + ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge + + pci:v00008086d0000B555sv000012C7sd00005005* +- ID_MODEL_FROM_DATABASE=SS7HD PCI Adaptor Card ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HD PCI Adaptor Card) + + pci:v00008086d0000B555sv000012C7sd00005006* +- ID_MODEL_FROM_DATABASE=SS7HDC cPCI Adaptor Card ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HDC cPCI Adaptor Card) + + pci:v00008086d0000B555sv000012D9sd0000000A* +- ID_MODEL_FROM_DATABASE=PCI VoIP Gateway ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (PCI VoIP Gateway) + + pci:v00008086d0000B555sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CT7 mainboard) + + pci:v00008086d0000B555sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CE7 mainboard) + + pci:v00008086d0000B555sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CC8-1-BLUES ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CC8-1-BLUES) + + pci:v00008086d0000D130* + ID_MODEL_FROM_DATABASE=Core Processor DMI +@@ -71583,16 +71583,16 @@ pci:v00008086d0000D131* + ID_MODEL_FROM_DATABASE=Core Processor DMI + + pci:v00008086d0000D131sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=Core Processor DMI (OptiPlex 980) + + pci:v00008086d0000D131sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=Core Processor DMI (C7SIM-Q Motherboard) + + pci:v00008086d0000D132* + ID_MODEL_FROM_DATABASE=Core Processor DMI + + pci:v00008086d0000D132sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=Core Processor DMI (Latitude E6510) + + pci:v00008086d0000D133* + ID_MODEL_FROM_DATABASE=Core Processor DMI +@@ -71613,13 +71613,13 @@ pci:v00008086d0000D138* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 + + pci:v00008086d0000D138sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (OptiPlex 980) + + pci:v00008086d0000D138sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (Latitude E6510) + + pci:v00008086d0000D138sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (C7SIM-Q Motherboard) + + pci:v00008086d0000D139* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 +@@ -71730,7 +71730,7 @@ pci:v00009004d00005078* + ID_MODEL_FROM_DATABASE=AIC-7850 + + pci:v00009004d00005078sv00009004sd00007850* +- ID_MODEL_FROM_DATABASE=AHA-2904/Integrated AIC-7850 ++ ID_MODEL_FROM_DATABASE=AIC-7850 (AHA-2904/Integrated AIC-7850) + + pci:v00009004d00005175* + ID_MODEL_FROM_DATABASE=AIC-755x +@@ -71766,10 +71766,10 @@ pci:v00009004d00005647* + ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine + + pci:v00009004d00005647sv00009004sd00007710* +- ID_MODEL_FROM_DATABASE=ANA-7711F TCP Offload Engine - Optical ++ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711F TCP Offload Engine - Optical) + + pci:v00009004d00005647sv00009004sd00007711* +- ID_MODEL_FROM_DATABASE=ANA-7711LP TCP Offload Engine - Copper ++ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711LP TCP Offload Engine - Copper) + + pci:v00009004d00005675* + ID_MODEL_FROM_DATABASE=AIC-755x +@@ -71799,7 +71799,7 @@ pci:v00009004d00006075* + ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 + + pci:v00009004d00006075sv00009004sd00007560* +- ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 Cardbus ++ ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 (Cardbus) + + pci:v00009004d00006078* + ID_MODEL_FROM_DATABASE=AIC-7860 +@@ -71808,7 +71808,7 @@ pci:v00009004d00006178* + ID_MODEL_FROM_DATABASE=AIC-7861 + + pci:v00009004d00006178sv00009004sd00007861* +- ID_MODEL_FROM_DATABASE=AHA-2940AU Single ++ ID_MODEL_FROM_DATABASE=AIC-7861 (AHA-2940AU Single) + + pci:v00009004d00006278* + ID_MODEL_FROM_DATABASE=AIC-7860 +@@ -71832,46 +71832,46 @@ pci:v00009004d00006915* + ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A + + pci:v00009004d00006915sv00009004sd00000008* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) + + pci:v00009004d00006915sv00009004sd00000009* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) + + pci:v00009004d00006915sv00009004sd00000010* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) + + pci:v00009004d00006915sv00009004sd00000018* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) + + pci:v00009004d00006915sv00009004sd00000019* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) + + pci:v00009004d00006915sv00009004sd00000020* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) + + pci:v00009004d00006915sv00009004sd00000028* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) + + pci:v00009004d00006915sv00009004sd00008008* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008009* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008010* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008018* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008019* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008020* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008028* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) + + pci:v00009004d00007078* + ID_MODEL_FROM_DATABASE=AHA-294x / AIC-7870 +@@ -71910,7 +71910,7 @@ pci:v00009004d00007815* + ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC + + pci:v00009004d00007815sv00009004sd00007815* +- ID_MODEL_FROM_DATABASE=ARO-1130U2 RAID Controller ++ ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC (ARO-1130U2 RAID Controller) + + pci:v00009004d00007815sv00009004sd00007840* + ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC +@@ -71961,25 +71961,25 @@ pci:v00009004d00007895* + ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 + + pci:v00009004d00007895sv00009004sd00007890* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007895sv00009004sd00007891* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual) + + pci:v00009004d00007895sv00009004sd00007892* +- ID_MODEL_FROM_DATABASE=AHA-3940AU/AUW/AUWD/UWD ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3940AU/AUW/AUWD/UWD) + + pci:v00009004d00007895sv00009004sd00007894* +- ID_MODEL_FROM_DATABASE=AHA-3944AUWD ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3944AUWD) + + pci:v00009004d00007895sv00009004sd00007895* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007895sv00009004sd00007896* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007895sv00009004sd00007897* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007896* + ID_MODEL_FROM_DATABASE=AIC-789x +@@ -71991,13 +71991,13 @@ pci:v00009004d00008078* + ID_MODEL_FROM_DATABASE=AIC-7880U + + pci:v00009004d00008078sv00009004sd00007880* +- ID_MODEL_FROM_DATABASE=AIC-7880P Ultra/Ultra Wide SCSI Chipset ++ ID_MODEL_FROM_DATABASE=AIC-7880U (AIC-7880P Ultra/Ultra Wide SCSI Chipset) + + pci:v00009004d00008178* + ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U + + pci:v00009004d00008178sv00009004sd00007881* +- ID_MODEL_FROM_DATABASE=AHA-2940UW SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U (AHA-2940UW SCSI Host Adapter) + + pci:v00009004d00008278* + ID_MODEL_FROM_DATABASE=AHA-3940U/UW/UWD / AIC-7882U +@@ -72018,13 +72018,13 @@ pci:v00009004d00008778* + ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x + + pci:v00009004d00008778sv00009004sd00007887* +- ID_MODEL_FROM_DATABASE=2940UW Pro Ultra-Wide SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x (2940UW Pro Ultra-Wide SCSI Controller) + + pci:v00009004d00008878* + ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 + + pci:v00009004d00008878sv00009004sd00007888* +- ID_MODEL_FROM_DATABASE=AHA-2930UW SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 (AHA-2930UW SCSI Controller) + + pci:v00009004d00008B78* + ID_MODEL_FROM_DATABASE=ABA-1030 +@@ -72039,19 +72039,19 @@ pci:v00009005d00000010* + ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W + + pci:v00009005d00000010sv00009005sd00002180* +- ID_MODEL_FROM_DATABASE=AHA-2940U2 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2 SCSI Controller) + + pci:v00009005d00000010sv00009005sd00008100* +- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) + + pci:v00009005d00000010sv00009005sd0000A100* +- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) + + pci:v00009005d00000010sv00009005sd0000A180* +- ID_MODEL_FROM_DATABASE=AHA-2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2W SCSI Controller) + + pci:v00009005d00000010sv00009005sd0000E100* +- ID_MODEL_FROM_DATABASE=AHA-2950U2B SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2950U2B SCSI Controller) + + pci:v00009005d00000011* + ID_MODEL_FROM_DATABASE=AHA-2930U2 +@@ -72060,19 +72060,19 @@ pci:v00009005d00000013* + ID_MODEL_FROM_DATABASE=78902 + + pci:v00009005d00000013sv00009005sd00000003* +- ID_MODEL_FROM_DATABASE=AAA-131U2 Array1000 1 Channel RAID Controller ++ ID_MODEL_FROM_DATABASE=78902 (AAA-131U2 Array1000 1 Channel RAID Controller) + + pci:v00009005d00000013sv00009005sd0000000F* +- ID_MODEL_FROM_DATABASE=AIC7890_ARO ++ ID_MODEL_FROM_DATABASE=78902 (AIC7890_ARO) + + pci:v00009005d0000001F* + ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 + + pci:v00009005d0000001Fsv00009005sd0000000F* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) + + pci:v00009005d0000001Fsv00009005sd0000A180* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) + + pci:v00009005d00000020* + ID_MODEL_FROM_DATABASE=AIC-7890 +@@ -72090,10 +72090,10 @@ pci:v00009005d00000050* + ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x + + pci:v00009005d00000050sv00009005sd0000F500* +- ID_MODEL_FROM_DATABASE=AHA-3950U2B ++ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) + + pci:v00009005d00000050sv00009005sd0000FFFF* +- ID_MODEL_FROM_DATABASE=AHA-3950U2B ++ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) + + pci:v00009005d00000051* + ID_MODEL_FROM_DATABASE=AHA-3950U2D +@@ -72105,7 +72105,7 @@ pci:v00009005d00000053* + ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller + + pci:v00009005d00000053sv00009005sd0000FFFF* +- ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller mainboard implementation ++ ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller (mainboard implementation) + + pci:v00009005d0000005F* + ID_MODEL_FROM_DATABASE=AIC-7896U2/7897U2 +@@ -72114,25 +72114,25 @@ pci:v00009005d00000080* + ID_MODEL_FROM_DATABASE=AIC-7892A U160/m + + pci:v00009005d00000080sv00000E11sd0000E2A0* +- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter) + + pci:v00009005d00000080sv00009005sd00006220* +- ID_MODEL_FROM_DATABASE=AHA-29160C ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (AHA-29160C) + + pci:v00009005d00000080sv00009005sd000062A0* +- ID_MODEL_FROM_DATABASE=29160N Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160N Ultra160 SCSI Controller) + + pci:v00009005d00000080sv00009005sd0000E220* +- ID_MODEL_FROM_DATABASE=29160LP Low Profile Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160LP Low Profile Ultra160 SCSI Controller) + + pci:v00009005d00000080sv00009005sd0000E2A0* +- ID_MODEL_FROM_DATABASE=29160 Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160 Ultra160 SCSI Controller) + + pci:v00009005d00000081* + ID_MODEL_FROM_DATABASE=AIC-7892B U160/m + + pci:v00009005d00000081sv00009005sd000062A1* +- ID_MODEL_FROM_DATABASE=19160 Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892B U160/m (19160 Ultra160 SCSI Controller) + + pci:v00009005d00000083* + ID_MODEL_FROM_DATABASE=AIC-7892D U160/m +@@ -72141,10 +72141,10 @@ pci:v00009005d0000008F* + ID_MODEL_FROM_DATABASE=AIC-7892P U160/m + + pci:v00009005d0000008Fsv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Magnia Z310) + + pci:v00009005d0000008Fsv000015D9sd00009005* +- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Onboard SCSI Host Adapter) + + pci:v00009005d00000092* + ID_MODEL_FROM_DATABASE=AVC-2010 [VideoH!] +@@ -72156,10 +72156,10 @@ pci:v00009005d000000C0* + ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m + + pci:v00009005d000000C0sv00000E11sd0000F620* +- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter) + + pci:v00009005d000000C0sv00009005sd0000F620* +- ID_MODEL_FROM_DATABASE=AHA-3960D U160/m ++ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (AHA-3960D U160/m) + + pci:v00009005d000000C1* + ID_MODEL_FROM_DATABASE=AIC-7899B U160/m +@@ -72171,28 +72171,28 @@ pci:v00009005d000000C5* + ID_MODEL_FROM_DATABASE=RAID subsystem HBA + + pci:v00009005d000000C5sv00001028sd000000C5* +- ID_MODEL_FROM_DATABASE=PowerEdge 2400,2500,2550,4400 ++ ID_MODEL_FROM_DATABASE=RAID subsystem HBA (PowerEdge 2400,2500,2550,4400) + + pci:v00009005d000000CF* + ID_MODEL_FROM_DATABASE=AIC-7899P U160/m + + pci:v00009005d000000CFsv00001028sd000000CE* +- ID_MODEL_FROM_DATABASE=PowerEdge 1400 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 1400) + + pci:v00009005d000000CFsv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=PowerEdge 2550 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2550) + + pci:v00009005d000000CFsv00001028sd000000D9* +- ID_MODEL_FROM_DATABASE=PowerEdge 2500 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2500) + + pci:v00009005d000000CFsv000010F1sd00002462* +- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Thunder K7 S2462) + + pci:v00009005d000000CFsv000015D9sd00009005* +- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Onboard SCSI Host Adapter) + + pci:v00009005d000000CFsv00008086sd00003411* +- ID_MODEL_FROM_DATABASE=SDS2 Mainboard ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (SDS2 Mainboard) + + pci:v00009005d00000241* + ID_MODEL_FROM_DATABASE=Serial ATA II RAID 1420SA +@@ -72210,13 +72210,13 @@ pci:v00009005d00000250* + ID_MODEL_FROM_DATABASE=ServeRAID Controller + + pci:v00009005d00000250sv00001014sd00000279* +- ID_MODEL_FROM_DATABASE=ServeRAID 6M ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6M) + + pci:v00009005d00000250sv00001014sd0000028C* +- ID_MODEL_FROM_DATABASE=ServeRAID 6i/6i+ ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6i/6i+) + + pci:v00009005d00000250sv00001014sd0000028E* +- ID_MODEL_FROM_DATABASE=ServeRAID 7k ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 7k) + + pci:v00009005d00000279* + ID_MODEL_FROM_DATABASE=ServeRAID 6M +@@ -72225,415 +72225,415 @@ pci:v00009005d00000283* + ID_MODEL_FROM_DATABASE=AAC-RAID + + pci:v00009005d00000283sv00009005sd00000283* +- ID_MODEL_FROM_DATABASE=Catapult ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Catapult) + + pci:v00009005d00000284* + ID_MODEL_FROM_DATABASE=AAC-RAID + + pci:v00009005d00000284sv00009005sd00000284* +- ID_MODEL_FROM_DATABASE=Tomcat ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Tomcat) + + pci:v00009005d00000285* + ID_MODEL_FROM_DATABASE=AAC-RAID + + pci:v00009005d00000285sv00000E11sd00000295* +- ID_MODEL_FROM_DATABASE=SATA 6Ch (Bearcat) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SATA 6Ch (Bearcat)) + + pci:v00009005d00000285sv00001014sd000002F2* +- ID_MODEL_FROM_DATABASE=ServeRAID 8i ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ServeRAID 8i) + + pci:v00009005d00000285sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 320/DC ++ ID_MODEL_FROM_DATABASE=AAC-RAID (PowerEdge Expandable RAID Controller 320/DC) + + pci:v00009005d00000285sv00001028sd00000291* +- ID_MODEL_FROM_DATABASE=CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)) + + pci:v00009005d00000285sv0000103Csd00003227* +- ID_MODEL_FROM_DATABASE=AAR-2610SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2610SA) + + pci:v00009005d00000285sv0000108Esd00000286* +- ID_MODEL_FROM_DATABASE=Sun StorageTek SAS RAID HBA, Internal ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Sun StorageTek SAS RAID HBA, Internal) + + pci:v00009005d00000285sv0000108Esd00000287* +- ID_MODEL_FROM_DATABASE=STK RAID EXT ++ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EXT) + + pci:v00009005d00000285sv0000108Esd00007AAC* +- ID_MODEL_FROM_DATABASE=STK RAID REM ++ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID REM) + + pci:v00009005d00000285sv0000108Esd00007AAE* +- ID_MODEL_FROM_DATABASE=STK RAID EX ++ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EX) + + pci:v00009005d00000285sv000015D9sd000002B5* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4i ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4i) + + pci:v00009005d00000285sv000015D9sd000002B6* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i) + + pci:v00009005d00000285sv000015D9sd000002C9* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4iR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4iR) + + pci:v00009005d00000285sv000015D9sd000002CA* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR) + + pci:v00009005d00000285sv000015D9sd000002D2* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i-LP ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i-LP) + + pci:v00009005d00000285sv000015D9sd000002D3* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR-LP ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR-LP) + + pci:v00009005d00000285sv000017AAsd00000286* +- ID_MODEL_FROM_DATABASE=Legend S220 (Legend Crusader) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S220 (Legend Crusader)) + + pci:v00009005d00000285sv000017AAsd00000287* +- ID_MODEL_FROM_DATABASE=Legend S230 (Legend Vulcan) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S230 (Legend Vulcan)) + + pci:v00009005d00000285sv00009005sd00000285* +- ID_MODEL_FROM_DATABASE=2200S (Vulcan) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan)) + + pci:v00009005d00000285sv00009005sd00000286* +- ID_MODEL_FROM_DATABASE=2120S (Crusader) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (2120S (Crusader)) + + pci:v00009005d00000285sv00009005sd00000287* +- ID_MODEL_FROM_DATABASE=2200S (Vulcan-2m) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan-2m)) + + pci:v00009005d00000285sv00009005sd00000288* +- ID_MODEL_FROM_DATABASE=3230S (Harrier) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3230S (Harrier)) + + pci:v00009005d00000285sv00009005sd00000289* +- ID_MODEL_FROM_DATABASE=3240S (Tornado) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3240S (Tornado)) + + pci:v00009005d00000285sv00009005sd0000028A* +- ID_MODEL_FROM_DATABASE=ASR-2020ZCR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020ZCR) + + pci:v00009005d00000285sv00009005sd0000028B* +- ID_MODEL_FROM_DATABASE=ASR-2025ZCR (Terminator) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025ZCR (Terminator)) + + pci:v00009005d00000285sv00009005sd0000028E* +- ID_MODEL_FROM_DATABASE=ASR-2020SA (Skyhawk) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020SA (Skyhawk)) + + pci:v00009005d00000285sv00009005sd0000028F* +- ID_MODEL_FROM_DATABASE=ASR-2025SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025SA) + + pci:v00009005d00000285sv00009005sd00000290* +- ID_MODEL_FROM_DATABASE=AAR-2410SA PCI SATA 4ch (Jaguar II) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2410SA PCI SATA 4ch (Jaguar II)) + + pci:v00009005d00000285sv00009005sd00000292* +- ID_MODEL_FROM_DATABASE=AAR-2810SA PCI SATA 8ch (Corsair-8) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2810SA PCI SATA 8ch (Corsair-8)) + + pci:v00009005d00000285sv00009005sd00000293* +- ID_MODEL_FROM_DATABASE=AAR-21610SA PCI SATA 16ch (Corsair-16) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-21610SA PCI SATA 16ch (Corsair-16)) + + pci:v00009005d00000285sv00009005sd00000294* +- ID_MODEL_FROM_DATABASE=ESD SO-DIMM PCI-X SATA ZCR (Prowler) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ESD SO-DIMM PCI-X SATA ZCR (Prowler)) + + pci:v00009005d00000285sv00009005sd00000296* +- ID_MODEL_FROM_DATABASE=ASR-2240S ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2240S) + + pci:v00009005d00000285sv00009005sd00000297* +- ID_MODEL_FROM_DATABASE=ASR-4005SAS ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4005SAS) + + pci:v00009005d00000285sv00009005sd00000298* +- ID_MODEL_FROM_DATABASE=ASR-4000 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4000) + + pci:v00009005d00000285sv00009005sd00000299* +- ID_MODEL_FROM_DATABASE=ASR-4800SAS ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4800SAS) + + pci:v00009005d00000285sv00009005sd0000029A* +- ID_MODEL_FROM_DATABASE=4805SAS ++ ID_MODEL_FROM_DATABASE=AAC-RAID (4805SAS) + + pci:v00009005d00000285sv00009005sd000002A4* +- ID_MODEL_FROM_DATABASE=ICP ICP9085LI ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP9085LI) + + pci:v00009005d00000285sv00009005sd000002A5* +- ID_MODEL_FROM_DATABASE=ICP ICP5085BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BR) + + pci:v00009005d00000285sv00009005sd000002B5* +- ID_MODEL_FROM_DATABASE=ASR5800 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5800) + + pci:v00009005d00000285sv00009005sd000002B6* +- ID_MODEL_FROM_DATABASE=ASR5805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5805) + + pci:v00009005d00000285sv00009005sd000002B7* +- ID_MODEL_FROM_DATABASE=ASR5808 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5808) + + pci:v00009005d00000285sv00009005sd000002B8* +- ID_MODEL_FROM_DATABASE=ICP5445SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5445SL) + + pci:v00009005d00000285sv00009005sd000002B9* +- ID_MODEL_FROM_DATABASE=ICP5085SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5085SL) + + pci:v00009005d00000285sv00009005sd000002BA* +- ID_MODEL_FROM_DATABASE=ICP5805SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805SL) + + pci:v00009005d00000285sv00009005sd000002BB* +- ID_MODEL_FROM_DATABASE=3405 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3405) + + pci:v00009005d00000285sv00009005sd000002BC* +- ID_MODEL_FROM_DATABASE=3805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3805) + + pci:v00009005d00000285sv00009005sd000002BD* +- ID_MODEL_FROM_DATABASE=31205 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (31205) + + pci:v00009005d00000285sv00009005sd000002BE* +- ID_MODEL_FROM_DATABASE=31605 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (31605) + + pci:v00009005d00000285sv00009005sd000002BF* +- ID_MODEL_FROM_DATABASE=ICP ICP5045BL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5045BL) + + pci:v00009005d00000285sv00009005sd000002C0* +- ID_MODEL_FROM_DATABASE=ICP ICP5085BL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BL) + + pci:v00009005d00000285sv00009005sd000002C1* +- ID_MODEL_FROM_DATABASE=ICP ICP5125BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125BR) + + pci:v00009005d00000285sv00009005sd000002C2* +- ID_MODEL_FROM_DATABASE=ICP ICP5165BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165BR) + + pci:v00009005d00000285sv00009005sd000002C3* +- ID_MODEL_FROM_DATABASE=51205 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51205) + + pci:v00009005d00000285sv00009005sd000002C4* +- ID_MODEL_FROM_DATABASE=51605 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51605) + + pci:v00009005d00000285sv00009005sd000002C5* +- ID_MODEL_FROM_DATABASE=ICP ICP5125SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125SL) + + pci:v00009005d00000285sv00009005sd000002C6* +- ID_MODEL_FROM_DATABASE=ICP ICP5165SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165SL) + + pci:v00009005d00000285sv00009005sd000002C7* +- ID_MODEL_FROM_DATABASE=3085 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3085) + + pci:v00009005d00000285sv00009005sd000002C8* +- ID_MODEL_FROM_DATABASE=ICP5805BL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805BL) + + pci:v00009005d00000285sv00009005sd000002CE* +- ID_MODEL_FROM_DATABASE=51245 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51245) + + pci:v00009005d00000285sv00009005sd000002CF* +- ID_MODEL_FROM_DATABASE=51645 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51645) + + pci:v00009005d00000285sv00009005sd000002D0* +- ID_MODEL_FROM_DATABASE=52445 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (52445) + + pci:v00009005d00000285sv00009005sd000002D1* +- ID_MODEL_FROM_DATABASE=5405 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5405) + + pci:v00009005d00000285sv00009005sd000002D4* +- ID_MODEL_FROM_DATABASE=ASR-2045 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045) + + pci:v00009005d00000285sv00009005sd000002D5* +- ID_MODEL_FROM_DATABASE=ASR-2405 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405) + + pci:v00009005d00000285sv00009005sd000002D6* +- ID_MODEL_FROM_DATABASE=ASR-2445 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445) + + pci:v00009005d00000285sv00009005sd000002D7* +- ID_MODEL_FROM_DATABASE=ASR-2805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805) + + pci:v00009005d00000285sv00009005sd000002D8* +- ID_MODEL_FROM_DATABASE=5405G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5405G) + + pci:v00009005d00000285sv00009005sd000002D9* +- ID_MODEL_FROM_DATABASE=5445G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5445G) + + pci:v00009005d00000285sv00009005sd000002DA* +- ID_MODEL_FROM_DATABASE=5805G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5805G) + + pci:v00009005d00000285sv00009005sd000002DB* +- ID_MODEL_FROM_DATABASE=5085G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5085G) + + pci:v00009005d00000285sv00009005sd000002DC* +- ID_MODEL_FROM_DATABASE=51245G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51245G) + + pci:v00009005d00000285sv00009005sd000002DD* +- ID_MODEL_FROM_DATABASE=51645G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51645G) + + pci:v00009005d00000285sv00009005sd000002DE* +- ID_MODEL_FROM_DATABASE=52445G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (52445G) + + pci:v00009005d00000285sv00009005sd000002DF* +- ID_MODEL_FROM_DATABASE=ASR-2045G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045G) + + pci:v00009005d00000285sv00009005sd000002E0* +- ID_MODEL_FROM_DATABASE=ASR-2405G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405G) + + pci:v00009005d00000285sv00009005sd000002E1* +- ID_MODEL_FROM_DATABASE=ASR-2445G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445G) + + pci:v00009005d00000285sv00009005sd000002E2* +- ID_MODEL_FROM_DATABASE=ASR-2805G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805G) + + pci:v00009005d00000286* + ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) + + pci:v00009005d00000286sv00001014sd0000034D* +- ID_MODEL_FROM_DATABASE=8s ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (8s) + + pci:v00009005d00000286sv00001014sd00009540* +- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l4 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l4) + + pci:v00009005d00000286sv00001014sd00009580* +- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l8 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l8) + + pci:v00009005d00000286sv00009005sd0000028C* +- ID_MODEL_FROM_DATABASE=ASR-2230S + ASR-2230SLP PCI-X (Lancer) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2230S + ASR-2230SLP PCI-X (Lancer)) + + pci:v00009005d00000286sv00009005sd0000028D* +- ID_MODEL_FROM_DATABASE=ASR-2130S ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2130S) + + pci:v00009005d00000286sv00009005sd0000029B* +- ID_MODEL_FROM_DATABASE=ASR-2820SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2820SA) + + pci:v00009005d00000286sv00009005sd0000029C* +- ID_MODEL_FROM_DATABASE=ASR-2620SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2620SA) + + pci:v00009005d00000286sv00009005sd0000029D* +- ID_MODEL_FROM_DATABASE=ASR-2420SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2420SA) + + pci:v00009005d00000286sv00009005sd0000029E* +- ID_MODEL_FROM_DATABASE=ICP ICP9024R0 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9024R0) + + pci:v00009005d00000286sv00009005sd0000029F* +- ID_MODEL_FROM_DATABASE=ICP ICP9014R0 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9014R0) + + pci:v00009005d00000286sv00009005sd000002A0* +- ID_MODEL_FROM_DATABASE=ICP ICP9047MA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9047MA) + + pci:v00009005d00000286sv00009005sd000002A1* +- ID_MODEL_FROM_DATABASE=ICP ICP9087MA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9087MA) + + pci:v00009005d00000286sv00009005sd000002A2* +- ID_MODEL_FROM_DATABASE=3800 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3800) + + pci:v00009005d00000286sv00009005sd000002A3* +- ID_MODEL_FROM_DATABASE=ICP ICP5445AU ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5445AU) + + pci:v00009005d00000286sv00009005sd000002A4* +- ID_MODEL_FROM_DATABASE=ICP ICP9085LI ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9085LI) + + pci:v00009005d00000286sv00009005sd000002A5* +- ID_MODEL_FROM_DATABASE=ICP ICP5085BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085BR) + + pci:v00009005d00000286sv00009005sd000002A6* +- ID_MODEL_FROM_DATABASE=ICP9067MA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP9067MA) + + pci:v00009005d00000286sv00009005sd000002A7* +- ID_MODEL_FROM_DATABASE=3805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3805) + + pci:v00009005d00000286sv00009005sd000002A8* +- ID_MODEL_FROM_DATABASE=3400 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3400) + + pci:v00009005d00000286sv00009005sd000002A9* +- ID_MODEL_FROM_DATABASE=ICP ICP5085AU ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085AU) + + pci:v00009005d00000286sv00009005sd000002AA* +- ID_MODEL_FROM_DATABASE=ICP ICP5045AU ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AU) + + pci:v00009005d00000286sv00009005sd000002AC* +- ID_MODEL_FROM_DATABASE=1800 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (1800) + + pci:v00009005d00000286sv00009005sd000002B3* +- ID_MODEL_FROM_DATABASE=2400 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (2400) + + pci:v00009005d00000286sv00009005sd000002B4* +- ID_MODEL_FROM_DATABASE=ICP ICP5045AL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AL) + + pci:v00009005d00000286sv00009005sd00000800* +- ID_MODEL_FROM_DATABASE=Callisto ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (Callisto) + + pci:v00009005d0000028B* + ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 + + pci:v00009005d0000028Bsv00009005sd00000200* +- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000201* +- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000300* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6405 - 4 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6405 - 4 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000301* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6805 - 8 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6805 - 8 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000302* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000310* +- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000311* +- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS) + + pci:v00009005d0000028Bsv00009005sd00000400* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61205 - 12 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61205 - 12 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000401* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61605 - 16 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61605 - 16 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000403* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-62405 - 24 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-62405 - 24 internal 6G SAS ports) + + pci:v00009005d0000028C* + ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 + + pci:v00009005d0000028Csv00009005sd00000500* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000501* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000502* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000503* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000504* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000505* +- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000506* +- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028D* + ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 + + pci:v00009005d0000028Dsv00009005sd00000550* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000551* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000552* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000553* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000554* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d00000410* + ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) + + pci:v00009005d00000410sv00009005sd00000410* +- ID_MODEL_FROM_DATABASE=ASC-48300(Spirit RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-48300(Spirit RAID)) + + pci:v00009005d00000410sv00009005sd00000411* +- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-58300 (Oakmont RAID)) + + pci:v00009005d00000412* + ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) + + pci:v00009005d00000412sv00009005sd00000412* +- ID_MODEL_FROM_DATABASE=ASC-48300 (Spirit non-RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-48300 (Spirit non-RAID)) + + pci:v00009005d00000412sv00009005sd00000413* +- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont non-RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-58300 (Oakmont non-RAID)) + + pci:v00009005d00000415* + ID_MODEL_FROM_DATABASE=ASC-58300 SAS (Razor-External HBA RAID) +@@ -72657,13 +72657,13 @@ pci:v00009005d00000430* + ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) + + pci:v00009005d00000430sv00009005sd00000430* +- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) (ASC-44300 (Spirit-Lite RAID)) + + pci:v00009005d00000432* + ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) + + pci:v00009005d00000432sv00009005sd00000432* +- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite non-RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) (ASC-44300 (Spirit-Lite non-RAID)) + + pci:v00009005d0000043E* + ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite ASIC non-RAID) +@@ -72678,22 +72678,22 @@ pci:v00009005d00000500* + ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller + + pci:v00009005d00000500sv00001014sd000002C1* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) + + pci:v00009005d00000500sv00001014sd000002C2* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/572D) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/572D)) + + pci:v00009005d00000503* + ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller + + pci:v00009005d00000503sv00001014sd000002BF* +- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E) ++ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E)) + + pci:v00009005d00000503sv00001014sd000002C3* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572F) ++ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572F)) + + pci:v00009005d00000503sv00001014sd000002D5* +- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F) ++ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F)) + + pci:v00009005d00000910* + ID_MODEL_FROM_DATABASE=AUA-3100B +@@ -72714,10 +72714,10 @@ pci:v00009005d00008011* + ID_MODEL_FROM_DATABASE=ASC-39320D + + pci:v00009005d00008011sv00000E11sd000000AC* +- ID_MODEL_FROM_DATABASE=ASC-39320D U320 ++ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) + + pci:v00009005d00008011sv00009005sd00000041* +- ID_MODEL_FROM_DATABASE=ASC-39320D U320 ++ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) + + pci:v00009005d00008012* + ID_MODEL_FROM_DATABASE=ASC-29320 U320 +@@ -72738,10 +72738,10 @@ pci:v00009005d00008017* + ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 + + pci:v00009005d00008017sv00009005sd00000044* +- ID_MODEL_FROM_DATABASE=ASC-29320ALP PCIx U320 ++ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320ALP PCIx U320) + + pci:v00009005d00008017sv00009005sd00000045* +- ID_MODEL_FROM_DATABASE=ASC-29320LPE PCIe U320 ++ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320LPE PCIe U320) + + pci:v00009005d0000801C* + ID_MODEL_FROM_DATABASE=ASC-39320D U320 +@@ -72750,7 +72750,7 @@ pci:v00009005d0000801D* + ID_MODEL_FROM_DATABASE=AIC-7902B U320 + + pci:v00009005d0000801Dsv00001014sd000002CC* +- ID_MODEL_FROM_DATABASE=ServeRAID 7e ++ ID_MODEL_FROM_DATABASE=AIC-7902B U320 (ServeRAID 7e) + + pci:v00009005d0000801E* + ID_MODEL_FROM_DATABASE=AIC-7901A U320 +@@ -72759,7 +72759,7 @@ pci:v00009005d0000801F* + ID_MODEL_FROM_DATABASE=AIC-7902 U320 + + pci:v00009005d0000801Fsv00001734sd00001011* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX300 onboard SCSI ++ ID_MODEL_FROM_DATABASE=AIC-7902 U320 (PRIMERGY RX300 onboard SCSI) + + pci:v00009005d00008080* + ID_MODEL_FROM_DATABASE=ASC-29320A U320 w/HostRAID +@@ -72777,7 +72777,7 @@ pci:v00009005d0000808F* + ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID + + pci:v00009005d0000808Fsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID (Precision Workstation 670 Mainboard) + + pci:v00009005d00008090* + ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID +@@ -72810,7 +72810,7 @@ pci:v00009005d0000809D* + ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID + + pci:v00009005d0000809Dsv00001014sd000002CC* +- ID_MODEL_FROM_DATABASE=ServeRAID 7e ++ ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID (ServeRAID 7e) + + pci:v00009005d0000809E* + ID_MODEL_FROM_DATABASE=AIC-7901A U320 w/HostRAID +@@ -72858,7 +72858,7 @@ pci:v00009710d00009815* + ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller + + pci:v00009710d00009815sv00001000sd00000020* +- ID_MODEL_FROM_DATABASE=2P0S (2 port parallel adaptor) ++ ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller (2P0S (2 port parallel adaptor)) + + pci:v00009710d00009820* + ID_MODEL_FROM_DATABASE=PCI 9820 Multi-I/O Controller +@@ -72867,31 +72867,31 @@ pci:v00009710d00009835* + ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller + + pci:v00009710d00009835sv00001000sd00000002* +- ID_MODEL_FROM_DATABASE=2S (16C550 UART) ++ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (2S (16C550 UART)) + + pci:v00009710d00009835sv00001000sd00000012* +- ID_MODEL_FROM_DATABASE=1P2S ++ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (1P2S) + + pci:v00009710d00009845* + ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller + + pci:v00009710d00009845sv00001000sd00000004* +- ID_MODEL_FROM_DATABASE=0P4S (4 port 16550A serial card) ++ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P4S (4 port 16550A serial card)) + + pci:v00009710d00009845sv00001000sd00000006* +- ID_MODEL_FROM_DATABASE=0P6S (6 port 16550a serial card) ++ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P6S (6 port 16550a serial card)) + + pci:v00009710d00009845sv00001000sd00000014* +- ID_MODEL_FROM_DATABASE=1P4S (1 Parallel / 4 16550A Serial Port Adapter) ++ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (1P4S (1 Parallel / 4 16550A Serial Port Adapter)) + + pci:v00009710d00009855* + ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller + + pci:v00009710d00009855sv00001000sd00000014* +- ID_MODEL_FROM_DATABASE=1P4S ++ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (1P4S) + + pci:v00009710d00009855sv00001000sd00000022* +- ID_MODEL_FROM_DATABASE=2P2S (2 Parallel / 2 16550A Serial Port Adapter) ++ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (2P2S (2 Parallel / 2 16550A Serial Port Adapter)) + + pci:v00009710d00009865* + ID_MODEL_FROM_DATABASE=PCI 9865 Multi-I/O Controller +@@ -73350,40 +73350,40 @@ pci:v0000DD01d00000003* + ID_MODEL_FROM_DATABASE=Octopus DVB Adapter + + pci:v0000DD01d00000003sv0000DD01sd00000001* +- ID_MODEL_FROM_DATABASE=Octopus DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000002* +- ID_MODEL_FROM_DATABASE=Octopus LE DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus LE DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000003* +- ID_MODEL_FROM_DATABASE=Octopus OEM ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus OEM) + + pci:v0000DD01d00000003sv0000DD01sd00000004* +- ID_MODEL_FROM_DATABASE=Octopus V3 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus V3 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000010* +- ID_MODEL_FROM_DATABASE=Octopus Mini ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus Mini) + + pci:v0000DD01d00000003sv0000DD01sd00000020* +- ID_MODEL_FROM_DATABASE=Cine S2 V6 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000021* +- ID_MODEL_FROM_DATABASE=Cine S2 V6.5 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6.5 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000030* +- ID_MODEL_FROM_DATABASE=Cine CT V6.1 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine CT V6.1 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd0000DB03* +- ID_MODEL_FROM_DATABASE=Mystique SaTiX-S2 V3 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Mystique SaTiX-S2 V3 DVB adapter) + + pci:v0000DD01d00000011* + ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter + + pci:v0000DD01d00000011sv0000DD01sd00000040* +- ID_MODEL_FROM_DATABASE=Octopus CI ++ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI) + + pci:v0000DD01d00000011sv0000DD01sd00000041* +- ID_MODEL_FROM_DATABASE=Octopus CI Single ++ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI Single) + + pci:v0000DEAD* + ID_VENDOR_FROM_DATABASE=Indigita Corporation +@@ -73416,22 +73416,22 @@ pci:v0000E159d00000001* + ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface + + pci:v0000E159d00000001sv00000059sd00000001* +- ID_MODEL_FROM_DATABASE=128k ISDN-S/T Adapter ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-S/T Adapter) + + pci:v0000E159d00000001sv00000059sd00000003* +- ID_MODEL_FROM_DATABASE=128k ISDN-U Adapter ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-U Adapter) + + pci:v0000E159d00000001sv000000A7sd00000001* +- ID_MODEL_FROM_DATABASE=TELES.S0/PCI 2.x ISDN Adapter ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (TELES.S0/PCI 2.x ISDN Adapter) + + pci:v0000E159d00000001sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Digium X100P/X101P analogue PSTN FXO interface ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (Digium X100P/X101P analogue PSTN FXO interface) + + pci:v0000E159d00000001sv0000B100sd00000003* +- ID_MODEL_FROM_DATABASE=OpenVox A400P 4-port analog card ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (OpenVox A400P 4-port analog card) + + pci:v0000E159d00000001sv0000B1D9sd00000003* +- ID_MODEL_FROM_DATABASE=AX400P 4-port analog card ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (AX400P 4-port analog card) + + pci:v0000E159d00000002* + ID_MODEL_FROM_DATABASE=Tiger100APC ISDN chipset +-- +1.7.9.2 + diff --git a/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..5f097f39 --- /dev/null +++ b/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,38 @@ +From f89b42ec0fd51feab5566d6bdbacee101023c037 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Tue, 25 Mar 2014 20:21:23 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 7d86f10..b928f5a 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -923,3 +923,21 @@ bluetooth:v0130* + + bluetooth:v0131* + ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation ++ ++bluetooth:v0132* ++ ID_VENDOR_FROM_DATABASE=MADS Inc ++ ++bluetooth:v0133* ++ ID_VENDOR_FROM_DATABASE=Blue Maestro Limited ++ ++bluetooth:v0134* ++ ID_VENDOR_FROM_DATABASE=Resolution Products, Inc. ++ ++bluetooth:v0135* ++ ID_VENDOR_FROM_DATABASE=Airewear LLC ++ ++bluetooth:v0136* ++ ID_VENDOR_FROM_DATABASE=ETC sp. z.o.o. ++ ++bluetooth:v0137* ++ ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. +-- +1.7.9.2 + diff --git a/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch b/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch new file mode 100644 index 00000000..596702d6 --- /dev/null +++ b/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch @@ -0,0 +1,174 @@ +From f9cd6be10ece07e10488c05e270a0b5860779864 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 20:49:33 +0100 +Subject: [PATCH] logind: ignore lid switch events for 30s after each suspend + and 3min after startup + +This is needed to give USB docking stations and suchlike time to settle, +so that a display connected to an USB docking station can actually act +as a lid swith inhibitor correctly. + +With this change we should have somewhat reliable docking station +support in place. +--- + src/login/logind-action.c | 15 ++++++++++++++- + src/login/logind-dbus.c | 3 +++ + src/login/logind.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ + src/login/logind.h | 7 +++++++ + 4 files changed, 69 insertions(+), 1 deletion(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index c9d8bc5..ae7b350 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -70,20 +70,33 @@ int manager_handle_action( + return 0; + } + +- /* If we are docked don't react to lid closing */ + if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { + int n; + ++ /* If we are docked don't react to lid closing */ + if (manager_is_docked(m)) { + log_debug("Ignoring lid switch request, system is docked."); + return 0; + } + ++ /* If we have more than one or no displays connected, ++ * don't react to lid closing. The no display case we ++ * treat like this under the assumption that there is ++ * no modern drm driver available. */ + n = manager_count_displays(m); + if (n != 1) { + log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } ++ ++ /* If the last system suspend or startup is too close, ++ * let's not suspend for now, to give USB docking ++ * stations some time to settle so that we can ++ * properly watch its displays. */ ++ if (m->lid_switch_ignore_event_source) { ++ log_debug("Ignoring lid switch request, system startup or resume too close."); ++ return 0; ++ } + } + + /* If the key handling is inhibited, don't do anything */ +diff --git src/login/logind-dbus.c src/login/logind-dbus.c +index fc89531..c9c58f3 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -1337,6 +1337,9 @@ static int execute_shutdown_or_sleep( + m->action_job = c; + m->action_what = w; + ++ /* Make sure the lid switch is ignored for a while */ ++ manager_set_lid_switch_ignore(m, now(CLOCK_MONOTONIC) + IGNORE_LID_SWITCH_SUSPEND_USEC); ++ + return 0; + } + +diff --git src/login/logind.c src/login/logind.c +index 10f61ab..fd113b3 100644 +--- src/login/logind.c ++++ src/login/logind.c +@@ -144,6 +144,7 @@ void manager_free(Manager *m) { + sd_event_source_unref(m->udev_device_event_source); + sd_event_source_unref(m->udev_vcsa_event_source); + sd_event_source_unref(m->udev_button_event_source); ++ sd_event_source_unref(m->lid_switch_ignore_event_source); + + if (m->console_active_fd >= 0) + close_nointr_nofail(m->console_active_fd); +@@ -959,6 +960,46 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us + return 0; + } + ++static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(e); ++ assert(m); ++ ++ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); ++ return 0; ++} ++ ++int manager_set_lid_switch_ignore(Manager *m, usec_t until) { ++ int r; ++ ++ assert(m); ++ ++ if (until <= now(CLOCK_MONOTONIC)) ++ return 0; ++ ++ /* We want to ignore the lid switch for a while after each ++ * suspend, and after boot-up. Hence let's install a timer for ++ * this. As long as the event source exists we ignore the lid ++ * switch. */ ++ ++ if (m->lid_switch_ignore_event_source) { ++ usec_t u; ++ ++ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); ++ if (r < 0) ++ return r; ++ ++ if (until <= u) ++ return 0; ++ ++ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); ++ } else ++ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); ++ ++ return r; ++} ++ + int manager_startup(Manager *m) { + int r; + Seat *seat; +@@ -994,6 +1035,10 @@ int manager_startup(Manager *m) { + return r; + } + ++ r = manager_set_lid_switch_ignore(m, 0 + IGNORE_LID_SWITCH_STARTUP_USEC); ++ if (r < 0) ++ log_warning("Failed to set up lid switch ignore event source: %s", strerror(-r)); ++ + /* Deserialize state */ + r = manager_enumerate_devices(m); + if (r < 0) +diff --git src/login/logind.h src/login/logind.h +index 74d6641..4bb8e7b 100644 +--- src/login/logind.h ++++ src/login/logind.h +@@ -42,6 +42,9 @@ typedef struct Manager Manager; + #include "logind-button.h" + #include "logind-action.h" + ++#define IGNORE_LID_SWITCH_STARTUP_USEC (3 * USEC_PER_MINUTE) ++#define IGNORE_LID_SWITCH_SUSPEND_USEC (30 * USEC_PER_SEC) ++ + struct Manager { + sd_event *event; + sd_bus *bus; +@@ -118,6 +121,8 @@ struct Manager { + bool lid_switch_ignore_inhibited; + + Hashmap *polkit_registry; ++ ++ sd_event_source *lid_switch_ignore_event_source; + }; + + Manager *manager_new(void); +@@ -178,3 +183,5 @@ const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned lengt + + int manager_watch_busname(Manager *manager, const char *name); + void manager_drop_busname(Manager *manager, const char *name); ++ ++int manager_set_lid_switch_ignore(Manager *m, usec_t until); +-- +1.7.9.2 + diff --git a/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch b/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch new file mode 100644 index 00000000..070a9100 --- /dev/null +++ b/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch @@ -0,0 +1,40 @@ +From 05a2f6fefedd7254fd799502191d025d2908cf74 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Sat, 12 Apr 2014 08:37:38 +0300 +Subject: [PATCH] man: mention XDG_CONFIG_HOME in systemd.unit + +--- + man/systemd.unit.xml | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 07a73fd..bcd4ba8 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -70,7 +70,8 @@ + ... + + +- $HOME/.config/systemd/user/* ++ $XDG_CONFIG_HOME/systemd/user/* ++$HOME/.config/systemd/user/* + /etc/systemd/user/* + /run/systemd/user/* + /usr/lib/systemd/user/* +@@ -320,8 +321,12 @@ + + + ++ $XDG_CONFIG_HOME/systemd/user ++ User configuration (only used when $XDG_CONFIG_HOME is set) ++ ++ + $HOME/.config/systemd/user +- User configuration ++ User configuration (only used when $XDG_CONFIG_HOME is not set) + + + /etc/systemd/user +-- +1.7.9.2 + diff --git a/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..7ae03b91 --- /dev/null +++ b/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,50 @@ +From b189101727e80a09864c5e5880663ef565467f19 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Sat, 12 Apr 2014 10:38:16 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index b928f5a..28aa2a7 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -733,7 +733,7 @@ bluetooth:v00F1* + ID_VENDOR_FROM_DATABASE=Witron Technology Limited + + bluetooth:v00F2* +- ID_VENDOR_FROM_DATABASE=Morse Project Inc. ++ ID_VENDOR_FROM_DATABASE=Aether Things Inc. (formerly Morse Project Inc.) + + bluetooth:v00F3* + ID_VENDOR_FROM_DATABASE=Kent Displays Inc. +@@ -941,3 +941,24 @@ bluetooth:v0136* + + bluetooth:v0137* + ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. ++ ++bluetooth:v0138* ++ ID_VENDOR_FROM_DATABASE=NTEO Inc. ++ ++bluetooth:v0139* ++ ID_VENDOR_FROM_DATABASE=Focus Systems Corporation ++ ++bluetooth:v013A* ++ ID_VENDOR_FROM_DATABASE=Tencent Holdings Limited ++ ++bluetooth:v013B* ++ ID_VENDOR_FROM_DATABASE=Allegion ++ ++bluetooth:v013C* ++ ID_VENDOR_FROM_DATABASE=Murata Manufacuring Co., Ltd. ++ ++bluetooth:v013D* ++ ID_VENDOR_FROM_DATABASE=WirelessWERX ++ ++bluetooth:v013E* ++ ID_VENDOR_FROM_DATABASE=nimai +-- +1.7.9.2 + diff --git a/0004-hwdb-update.patch b/0004-hwdb-update.patch new file mode 100644 index 00000000..572bcd32 --- /dev/null +++ b/0004-hwdb-update.patch @@ -0,0 +1,3964 @@ +From 61fb23db45c626d92b4e33f09b9287f58a3625a5 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 5 May 2014 14:23:10 +0200 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 295 +++++++++++- + hwdb/20-pci-vendor-model.hwdb | 174 ++++++-- + hwdb/20-usb-vendor-model.hwdb | 992 +++++++++++++++++++++++++++++++++++++++-- + 3 files changed, 1368 insertions(+), 93 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 17794ed..afc0d90 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -13940,7 +13940,7 @@ OUI:000063* + ID_OUI_FROM_DATABASE=BARCO CONTROL ROOMS GMBH + + OUI:000064* +- ID_OUI_FROM_DATABASE=YOKOGAWA DIGITAL COMPUTER CORP ++ ID_OUI_FROM_DATABASE=Yokogawa Electric Corporation + + OUI:000065* + ID_OUI_FROM_DATABASE=Network General Corporation +@@ -14927,7 +14927,7 @@ OUI:0001AE* + ID_OUI_FROM_DATABASE=Trex Enterprises + + OUI:0001AF* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:0001B0* + ID_OUI_FROM_DATABASE=Fulltek Technology Co., Ltd. +@@ -18272,7 +18272,7 @@ OUI:00060A* + ID_OUI_FROM_DATABASE=Blue2space + + OUI:00060B* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:00060C* + ID_OUI_FROM_DATABASE=Melco Industries, Inc. +@@ -20441,7 +20441,7 @@ OUI:0008F8* + ID_OUI_FROM_DATABASE=UTC CCS + + OUI:0008F9* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:0008FA* + ID_OUI_FROM_DATABASE=Karl E.Brinkmann GmbH +@@ -46612,6 +46612,9 @@ OUI:0064A6* + OUI:00664B* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:006B8E* ++ ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. ++ + OUI:006B9E* + ID_OUI_FROM_DATABASE=VIZIO Inc + +@@ -46850,7 +46853,7 @@ OUI:008041* + ID_OUI_FROM_DATABASE=VEB KOMBINAT ROBOTRON + + OUI:008042* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:008043* + ID_OUI_FROM_DATABASE=NETWORLD, INC. +@@ -49919,7 +49922,7 @@ OUI:00C0F8* + ID_OUI_FROM_DATABASE=ABOUT COMPUTING INC. + + OUI:00C0F9* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:00C0FA* + ID_OUI_FROM_DATABASE=CANARY COMMUNICATIONS, INC. +@@ -50957,7 +50960,7 @@ OUI:00E034* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:00E035* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:00E036* + ID_OUI_FROM_DATABASE=PIONEER CORPORATION +@@ -52477,6 +52480,9 @@ OUI:0838A5* + OUI:083AB8* + ID_OUI_FROM_DATABASE=Shinoda Plasma Co., Ltd. + ++OUI:083D88* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:083E0C* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -52495,9 +52501,6 @@ OUI:084027* + OUI:08482C* + ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. + +-OUI:084929* +- ID_OUI_FROM_DATABASE=CYBATI +- + OUI:084E1C* + ID_OUI_FROM_DATABASE=H2A Systems, LLC + +@@ -52867,6 +52870,9 @@ OUI:0C8910* + OUI:0C8BFD* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:0C8C8F* ++ ID_OUI_FROM_DATABASE=Kamo Technology Limited ++ + OUI:0C8CDC* + ID_OUI_FROM_DATABASE=Suunto Oy + +@@ -53515,6 +53521,9 @@ OUI:1499E2* + OUI:149FE8* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:14A364* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:14A62C* + ID_OUI_FROM_DATABASE=S.M. Dezac S.A. + +@@ -54403,6 +54412,9 @@ OUI:20918A* + OUI:2091D9* + ID_OUI_FROM_DATABASE=I'M SPA + ++OUI:20934D* ++ ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd ++ + OUI:209AE9* + ID_OUI_FROM_DATABASE=Volacomm Co., Ltd + +@@ -54598,6 +54610,9 @@ OUI:24470E* + OUI:24497B* + ID_OUI_FROM_DATABASE=Innovative Converged Devices Inc + ++OUI:244F1D* ++ ID_OUI_FROM_DATABASE=iRule LLC ++ + OUI:245FDF* + ID_OUI_FROM_DATABASE=KYOCERA Corporation + +@@ -54751,6 +54766,9 @@ OUI:24DEC6* + OUI:24E271* + ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd + ++OUI:24E314* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:24E6BA* + ID_OUI_FROM_DATABASE=JSC Zavod im. Kozitsky + +@@ -54829,6 +54847,9 @@ OUI:2826A6* + OUI:28285D* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + ++OUI:2829CC* ++ ID_OUI_FROM_DATABASE=Corsa Technology Incorporated ++ + OUI:2829D9* + ID_OUI_FROM_DATABASE=GlobalBeiMing technology (Beijing)Co. Ltd + +@@ -55087,12 +55108,18 @@ OUI:28E14C* + OUI:28E297* + ID_OUI_FROM_DATABASE=Shanghai InfoTM Microelectronics Co.,Ltd. + ++OUI:28E31F* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:28E347* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + + OUI:28E608* + ID_OUI_FROM_DATABASE=Tokheim + ++OUI:28E6E9* ++ ID_OUI_FROM_DATABASE=SIS Sat Internet Services GmbH ++ + OUI:28E794* + ID_OUI_FROM_DATABASE=Microtime Computer Inc. + +@@ -55225,6 +55252,9 @@ OUI:2C534A* + OUI:2C542D* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:2C54CF* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:2C553C* + ID_OUI_FROM_DATABASE=Gainspeed, Inc. + +@@ -55330,6 +55360,9 @@ OUI:2CA835* + OUI:2CAB25* + ID_OUI_FROM_DATABASE=Shenzhen Gongjin Electronics Co.,Ltd + ++OUI:2CABA4* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:2CB05D* + ID_OUI_FROM_DATABASE=NETGEAR + +@@ -55456,6 +55489,9 @@ OUI:303294* + OUI:3032D4* + ID_OUI_FROM_DATABASE=Hanilstm Co., Ltd. + ++OUI:303335* ++ ID_OUI_FROM_DATABASE=Boosty ++ + OUI:3037A6* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -55888,6 +55924,9 @@ OUI:34BA9A* + OUI:34BB1F* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:34BB26* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:34BCA6* + ID_OUI_FROM_DATABASE=Beijing Ding Qing Technology, Ltd. + +@@ -55975,6 +56014,9 @@ OUI:34EF44* + OUI:34EF8B* + ID_OUI_FROM_DATABASE=NTT Communications Corporation + ++OUI:34F0CA* ++ ID_OUI_FROM_DATABASE=Shenzhen Linghangyuan Digital Technology Co.,Ltd. ++ + OUI:34F39B* + ID_OUI_FROM_DATABASE=WizLAN Ltd. + +@@ -56023,6 +56065,9 @@ OUI:381766* + OUI:38192F* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:381C1A* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:381C4A* + ID_OUI_FROM_DATABASE=SIMCom Wireless Solutions Co.,Ltd. + +@@ -56236,6 +56281,9 @@ OUI:38F597* + OUI:38F708* + ID_OUI_FROM_DATABASE=National Resource Management, Inc. + ++OUI:38F889* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:38F8B7* + ID_OUI_FROM_DATABASE=V2COM PARTICIPACOES S.A. + +@@ -56287,6 +56335,9 @@ OUI:3C15C2* + OUI:3C15EA* + ID_OUI_FROM_DATABASE=TESCOM CO., LTD. + ++OUI:3C189F* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:3C18A0* + ID_OUI_FROM_DATABASE=Luxshare Precision Industry Co.,Ltd. + +@@ -56521,6 +56572,9 @@ OUI:3CD7DA* + OUI:3CD92B* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + ++OUI:3CD9CE* ++ ID_OUI_FROM_DATABASE=Eclipse WiFi ++ + OUI:3CDF1E* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -56725,6 +56779,9 @@ OUI:407A80* + OUI:407B1B* + ID_OUI_FROM_DATABASE=Mettle Networks Inc. + ++OUI:408256* ++ ID_OUI_FROM_DATABASE=Continental Automotive GmbH ++ + OUI:4083DE* + ID_OUI_FROM_DATABASE=Motorola + +@@ -56818,6 +56875,9 @@ OUI:40C245* + OUI:40C4D6* + ID_OUI_FROM_DATABASE=ChongQing Camyu Technology Development Co.,Ltd. + ++OUI:40C62A* ++ ID_OUI_FROM_DATABASE=Shanghai Jing Ren Electronic Technology Co., Ltd. ++ + OUI:40C7C9* + ID_OUI_FROM_DATABASE=Naviit Inc. + +@@ -57001,6 +57061,9 @@ OUI:446132* + OUI:44619C* + ID_OUI_FROM_DATABASE=FONsystem co. ltd. + ++OUI:44666E* ++ ID_OUI_FROM_DATABASE=IP-LINE ++ + OUI:446755* + ID_OUI_FROM_DATABASE=Orbit Irrigation + +@@ -57019,6 +57082,9 @@ OUI:44700B* + OUI:447098* + ID_OUI_FROM_DATABASE=MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED + ++OUI:44746C* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:447BC4* + ID_OUI_FROM_DATABASE=DualShine Technology(SZ)Co.,Ltd + +@@ -57079,6 +57145,9 @@ OUI:44A42D* + OUI:44A689* + ID_OUI_FROM_DATABASE=PROMAX ELECTRONICA SA + ++OUI:44A6E5* ++ ID_OUI_FROM_DATABASE=THINKING TECHNOLOGY CO.,LTD ++ + OUI:44A7CF* + ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. + +@@ -57178,6 +57247,9 @@ OUI:48022A* + OUI:480362* + ID_OUI_FROM_DATABASE=DESAY ELECTRONICS(HUIZHOU)CO.,LTD + ++OUI:480C49* ++ ID_OUI_FROM_DATABASE=NAKAYO TELECOMMUNICATIONS,INC ++ + OUI:481249* + ID_OUI_FROM_DATABASE=Luxcom Technologies Inc. + +@@ -57463,6 +57535,9 @@ OUI:4C2258* + OUI:4C2578* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:4C26E7* ++ ID_OUI_FROM_DATABASE=Welgate Co., Ltd. ++ + OUI:4C2C80* + ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd + +@@ -57535,6 +57610,9 @@ OUI:4C63EB* + OUI:4C64D9* + ID_OUI_FROM_DATABASE=Guangdong Leawin Group Co., Ltd + ++OUI:4C6E6E* ++ ID_OUI_FROM_DATABASE=Comnect Technology CO.,LTD ++ + OUI:4C72B9* + ID_OUI_FROM_DATABASE=Pegatron Corporation + +@@ -57565,6 +57643,9 @@ OUI:4C8093* + OUI:4C82CF* + ID_OUI_FROM_DATABASE=Echostar Technologies + ++OUI:4C83DE* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:4C8B30* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + +@@ -57592,6 +57673,9 @@ OUI:4C9E80* + OUI:4C9EE4* + ID_OUI_FROM_DATABASE=Hanyang Navicom Co.,Ltd. + ++OUI:4C9EFF* ++ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp ++ + OUI:4CA56D* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -57775,6 +57859,9 @@ OUI:504A6E* + OUI:504F94* + ID_OUI_FROM_DATABASE=Loxone Electronics GmbH + ++OUI:505065* ++ ID_OUI_FROM_DATABASE=TAKT Corporation ++ + OUI:505663* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -57808,6 +57895,9 @@ OUI:506313* + OUI:506441* + ID_OUI_FROM_DATABASE=Greenlee + ++OUI:506787* ++ ID_OUI_FROM_DATABASE=iTellus ++ + OUI:5067F0* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + +@@ -58693,6 +58783,12 @@ OUI:5CAC4C* + OUI:5CB524* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:5CB6CC* ++ ID_OUI_FROM_DATABASE=NovaComm Technologies Inc. ++ ++OUI:5CB8CB* ++ ID_OUI_FROM_DATABASE=Allis Communications ++ + OUI:5CBD9E* + ID_OUI_FROM_DATABASE=HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED + +@@ -58789,6 +58885,9 @@ OUI:5CF8A1* + OUI:5CF938* + ID_OUI_FROM_DATABASE=Apple, Inc + ++OUI:5CF96A* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:5CF9DD* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -58927,6 +59026,9 @@ OUI:60748D* + OUI:607688* + ID_OUI_FROM_DATABASE=Velodyne + ++OUI:6077E2* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:60812B* + ID_OUI_FROM_DATABASE=Custom Control Concepts + +@@ -59074,6 +59176,9 @@ OUI:60E00E* + OUI:60E327* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:60E701* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:60E956* + ID_OUI_FROM_DATABASE=Ayla Networks, Inc + +@@ -59131,6 +59236,9 @@ OUI:6405BE* + OUI:64094C* + ID_OUI_FROM_DATABASE=Beijing Superbee Wireless Technology Co.,Ltd + ++OUI:640980* ++ ID_OUI_FROM_DATABASE=XIAOMI Electronics,CO.,LTD ++ + OUI:640B4A* + ID_OUI_FROM_DATABASE=Digital Telecom Technology Limited + +@@ -59254,6 +59362,9 @@ OUI:645FFF* + OUI:646223* + ID_OUI_FROM_DATABASE=Cellient Co., Ltd. + ++OUI:64649B* ++ ID_OUI_FROM_DATABASE=juniper networks ++ + OUI:6465C0* + ID_OUI_FROM_DATABASE=Nuvon, Inc + +@@ -59680,6 +59791,9 @@ OUI:689C5E* + OUI:689C70* + ID_OUI_FROM_DATABASE=Apple + ++OUI:68A0F6* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:68A1B7* + ID_OUI_FROM_DATABASE=Honghao Mingchuan Technology (Beijing) CO.,Ltd. + +@@ -60130,6 +60244,9 @@ OUI:702B1D* + OUI:702C1F* + ID_OUI_FROM_DATABASE=Wisol + ++OUI:702DD1* ++ ID_OUI_FROM_DATABASE=Newings Communication CO., LTD. ++ + OUI:702F4B* + ID_OUI_FROM_DATABASE=PolyVision Inc. + +@@ -60211,6 +60328,9 @@ OUI:705986* + OUI:705AB6* + ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. + ++OUI:705B2E* ++ ID_OUI_FROM_DATABASE=M2Communication Inc. ++ + OUI:705CAD* + ID_OUI_FROM_DATABASE=Konami Gaming Inc + +@@ -60568,6 +60688,9 @@ OUI:748EF8* + OUI:748F1B* + ID_OUI_FROM_DATABASE=MasterImage 3D + ++OUI:748F4D* ++ ID_OUI_FROM_DATABASE=MEN Mikro Elektronik GmbH ++ + OUI:749050* + ID_OUI_FROM_DATABASE=Renesas Electronics Corporation + +@@ -60694,6 +60817,9 @@ OUI:74F07D* + OUI:74F102* + ID_OUI_FROM_DATABASE=Beijing HCHCOM Technology Co., Ltd + ++OUI:74F413* ++ ID_OUI_FROM_DATABASE=Maxwell Forest ++ + OUI:74F612* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -61582,6 +61708,9 @@ OUI:806CBC* + OUI:80711F* + ID_OUI_FROM_DATABASE=Juniper Networks + ++OUI:80717A* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:807693* + ID_OUI_FROM_DATABASE=Newag SA + +@@ -61633,6 +61762,9 @@ OUI:80946C* + OUI:8096B1* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:8096CA* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind Co.,Ltd ++ + OUI:80971B* + ID_OUI_FROM_DATABASE=Altenergy Power System,Inc. + +@@ -61699,6 +61831,9 @@ OUI:80D019* + OUI:80D18B* + ID_OUI_FROM_DATABASE=Hangzhou I'converge Technology Co.,Ltd + ++OUI:80D21D* ++ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc ++ + OUI:80D433* + ID_OUI_FROM_DATABASE=LzLabs GmbH + +@@ -62356,6 +62491,9 @@ OUI:8C2F39* + OUI:8C3330* + ID_OUI_FROM_DATABASE=EmFirst Co., Ltd. + ++OUI:8C3357* ++ ID_OUI_FROM_DATABASE=HiteVision Digital Media Technology Co.,Ltd. ++ + OUI:8C3AE3* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -62842,6 +62980,9 @@ OUI:90B134* + OUI:90B21F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:90B686* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:90B8D0* + ID_OUI_FROM_DATABASE=Joyent, Inc. + +@@ -62887,6 +63028,9 @@ OUI:90D92C* + OUI:90DA4E* + ID_OUI_FROM_DATABASE=AVANU + ++OUI:90DA6A* ++ ID_OUI_FROM_DATABASE=MCC System Co., Ltd. ++ + OUI:90DB46* + ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD + +@@ -63100,6 +63244,9 @@ OUI:94ACCA* + OUI:94AE61* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:94AEE3* ++ ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. ++ + OUI:94B8C5* + ID_OUI_FROM_DATABASE=RuggedCom Inc. + +@@ -63151,6 +63298,9 @@ OUI:94CE2C* + OUI:94D019* + ID_OUI_FROM_DATABASE=Cydle Corp. + ++OUI:94D60E* ++ ID_OUI_FROM_DATABASE=shenzhen yunmao information technologies co., ltd ++ + OUI:94D723* + ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd + +@@ -63730,6 +63880,9 @@ OUI:9CC077* + OUI:9CC0D2* + ID_OUI_FROM_DATABASE=Conductix-Wampfler AG + ++OUI:9CC172* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:9CC7A6* + ID_OUI_FROM_DATABASE=AVM GmbH + +@@ -63799,6 +63952,9 @@ OUI:A002DC* + OUI:A00363* + ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH + ++OUI:A00627* ++ ID_OUI_FROM_DATABASE=NEXPA System ++ + OUI:A00798* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -63898,6 +64054,9 @@ OUI:A051C6* + OUI:A055DE* + ID_OUI_FROM_DATABASE=Pace plc + ++OUI:A056B2* ++ ID_OUI_FROM_DATABASE=Harman/Becker Automotive Systems GmbH ++ + OUI:A0593A* + ID_OUI_FROM_DATABASE=V.D.S. Video Display Systems srl + +@@ -64234,6 +64393,9 @@ OUI:A45C27* + OUI:A45D36* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A45DA1* ++ ID_OUI_FROM_DATABASE=ADB Broadband Italia ++ + OUI:A46032* + ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD + +@@ -64312,6 +64474,9 @@ OUI:A49F89* + OUI:A4A24A* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:A4A4D3* ++ ID_OUI_FROM_DATABASE=Bluebank Communication Technology Co.Ltd ++ + OUI:A4A80F* + ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd. + +@@ -64462,6 +64627,9 @@ OUI:A80600* + OUI:A80C0D* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:A81374* ++ ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company ++ + OUI:A8154D* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + +@@ -64495,6 +64663,9 @@ OUI:A82BD6* + OUI:A830AD* + ID_OUI_FROM_DATABASE=Wei Fang Goertek Electronics Co.,Ltd + ++OUI:A8329A* ++ ID_OUI_FROM_DATABASE=Digicom Futuristic Technologies Ltd. ++ + OUI:A83944* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + +@@ -64582,6 +64753,9 @@ OUI:A88CEE* + OUI:A88D7B* + ID_OUI_FROM_DATABASE=SunDroid Global limited. + ++OUI:A88E24* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:A8922C* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -64903,6 +65077,9 @@ OUI:AC9CE4* + OUI:ACA016* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:ACA213* ++ ID_OUI_FROM_DATABASE=Shenzhen Bilian electronic CO.,LTD ++ + OUI:ACA22C* + ID_OUI_FROM_DATABASE=Baycity Technologies Ltd + +@@ -65068,6 +65245,9 @@ OUI:B01B7C* + OUI:B01C91* + ID_OUI_FROM_DATABASE=Elim Co + ++OUI:B01F81* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:B024F3* + ID_OUI_FROM_DATABASE=Progeny Systems + +@@ -65113,6 +65293,9 @@ OUI:B058C4* + OUI:B05B1F* + ID_OUI_FROM_DATABASE=THERMO FISHER SCIENTIFIC S.P.A. + ++OUI:B05B67* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:B05CE5* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -65338,6 +65521,9 @@ OUI:B407F9* + OUI:B40832* + ID_OUI_FROM_DATABASE=TC Communications + ++OUI:B40AC6* ++ ID_OUI_FROM_DATABASE=DEXON Systems Ltd. ++ + OUI:B40B44* + ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. + +@@ -65533,6 +65719,9 @@ OUI:B4AA4D* + OUI:B4AB2C* + ID_OUI_FROM_DATABASE=MtM Technology Corporation + ++OUI:B4AE6F* ++ ID_OUI_FROM_DATABASE=Circle Reliance, Inc. ++ + OUI:B4B017* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -65566,6 +65755,9 @@ OUI:B4C810* + OUI:B4CCE9* + ID_OUI_FROM_DATABASE=PROSYST + ++OUI:B4CEF6* ++ ID_OUI_FROM_DATABASE=HTC Corporation ++ + OUI:B4CFDB* + ID_OUI_FROM_DATABASE=Shenzhen Jiuzhou Electric Co.,LTD + +@@ -65812,6 +66004,9 @@ OUI:B898B0* + OUI:B898F7* + ID_OUI_FROM_DATABASE=Gionee Communication Equipment Co,Ltd.ShenZhen + ++OUI:B89919* ++ ID_OUI_FROM_DATABASE=7signal Solutions, Inc ++ + OUI:B89AED* + ID_OUI_FROM_DATABASE=OceanServer Technology, Inc + +@@ -66160,6 +66355,9 @@ OUI:BC9889* + OUI:BC99BC* + ID_OUI_FROM_DATABASE=FonSee Technology Inc. + ++OUI:BC9CC5* ++ ID_OUI_FROM_DATABASE=Beijing Huafei Technology Co., Ltd. ++ + OUI:BC9DA5* + ID_OUI_FROM_DATABASE=DASCOM Europe GmbH + +@@ -66511,6 +66709,9 @@ OUI:C0EAE4* + OUI:C0F1C4* + ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. + ++OUI:C0F2FB* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:C0F79D* + ID_OUI_FROM_DATABASE=Powercode + +@@ -66613,6 +66814,9 @@ OUI:C43C3C* + OUI:C43DC7* + ID_OUI_FROM_DATABASE=NETGEAR + ++OUI:C44202* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:C4438F* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -66634,6 +66838,9 @@ OUI:C44AD0* + OUI:C44B44* + ID_OUI_FROM_DATABASE=Omniprint Inc. + ++OUI:C44BD1* ++ ID_OUI_FROM_DATABASE=Wallys Communications Teachnologies Co.,Ltd. ++ + OUI:C44E1F* + ID_OUI_FROM_DATABASE=BlueN + +@@ -66835,6 +67042,9 @@ OUI:C4F57C* + OUI:C4FCE4* + ID_OUI_FROM_DATABASE=DishTV NZ Ltd + ++OUI:C80210* ++ ID_OUI_FROM_DATABASE=LG Innotek ++ + OUI:C80258* + ID_OUI_FROM_DATABASE=ITW GSE ApS + +@@ -67363,6 +67573,9 @@ OUI:CC9F35* + OUI:CCA0E5* + ID_OUI_FROM_DATABASE=DZG Metering GmbH + ++OUI:CCA223* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:CCA374* + ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd + +@@ -67498,6 +67711,9 @@ OUI:CCFE3C* + OUI:D00790* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:D00AAB* ++ ID_OUI_FROM_DATABASE=Yokogawa Digital Computer Corporation ++ + OUI:D00EA4* + ID_OUI_FROM_DATABASE=Porsche Cars North America + +@@ -67576,6 +67792,9 @@ OUI:D05875* + OUI:D059C3* + ID_OUI_FROM_DATABASE=CeraMicro Technology Corporation + ++OUI:D059E4* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:D05A0F* + ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD + +@@ -68248,6 +68467,9 @@ OUI:D86595* + OUI:D866C6* + ID_OUI_FROM_DATABASE=Shenzhen Daystar Technology Co.,ltd + ++OUI:D866EE* ++ ID_OUI_FROM_DATABASE=BOXIN COMMUNICATION CO.,LTD. ++ + OUI:D867D9* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -68542,6 +68764,9 @@ OUI:DC49C9* + OUI:DC4EDE* + ID_OUI_FROM_DATABASE=SHINYEI TECHNOLOGY CO., LTD. + ++OUI:DC537C* ++ ID_OUI_FROM_DATABASE=Compal Broadband Networks, Inc. ++ + OUI:DC5726* + ID_OUI_FROM_DATABASE=Power-One + +@@ -69112,6 +69337,9 @@ OUI:E45614* + OUI:E457A8* + ID_OUI_FROM_DATABASE=Stuart Manufacturing, Inc. + ++OUI:E45D52* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:E46449* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -69298,6 +69526,9 @@ OUI:E81132* + OUI:E81324* + ID_OUI_FROM_DATABASE=GuangZhou Bonsoninfo System CO.,LTD + ++OUI:E8150E* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:E817FC* + ID_OUI_FROM_DATABASE=NIFTY Corporation + +@@ -69373,6 +69604,9 @@ OUI:E85B5B* + OUI:E85BF0* + ID_OUI_FROM_DATABASE=Imaging Diagnostics + ++OUI:E85D6B* ++ ID_OUI_FROM_DATABASE=Luminate Wireless ++ + OUI:E85E53* + ID_OUI_FROM_DATABASE=Infratec Datentechnik GmbH + +@@ -69409,6 +69643,9 @@ OUI:E878A1* + OUI:E87AF3* + ID_OUI_FROM_DATABASE=S5 Tech S.r.l. + ++OUI:E8802E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:E880D8* + ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. + +@@ -69719,7 +69956,7 @@ OUI:EC9B5B* + ID_OUI_FROM_DATABASE=Nokia Corporation + + OUI:EC9ECD* +- ID_OUI_FROM_DATABASE=Emerson Network Power and Embedded Computing ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:ECA29B* + ID_OUI_FROM_DATABASE=Kemppi Oy +@@ -69745,6 +69982,9 @@ OUI:ECC38A* + OUI:ECC882* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:ECCB30* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:ECCD6D* + ID_OUI_FROM_DATABASE=Allied Telesis, Inc. + +@@ -69763,6 +70003,9 @@ OUI:ECD925* + OUI:ECD950* + ID_OUI_FROM_DATABASE=IRT SA + ++OUI:ECD9D1* ++ ID_OUI_FROM_DATABASE=Shenzhen TG-NET Botone Technology Co.,Ltd. ++ + OUI:ECDE3D* + ID_OUI_FROM_DATABASE=Lamprey Networks, Inc. + +@@ -70144,6 +70387,12 @@ OUI:F406A5* + OUI:F40B93* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:F40E11* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ ++OUI:F40F1B* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F40F9B* + ID_OUI_FROM_DATABASE=WAVELINK + +@@ -70165,6 +70414,9 @@ OUI:F41FC2* + OUI:F42012* + ID_OUI_FROM_DATABASE=Cuciniale GmbH + ++OUI:F42833* ++ ID_OUI_FROM_DATABASE=MMPC Inc. ++ + OUI:F42896* + ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA + +@@ -70294,6 +70546,9 @@ OUI:F499AC* + OUI:F49F54* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:F49FF3* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:F4A294* + ID_OUI_FROM_DATABASE=EAGLE WORLD DEVELOPMENT CO., LIMITED + +@@ -70351,6 +70606,9 @@ OUI:F4CE46* + OUI:F4CFE2* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:F4D032* ++ ID_OUI_FROM_DATABASE=Yunnan Ideal Information&Technology.,Ltd ++ + OUI:F4D261* + ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd + +@@ -70390,12 +70648,18 @@ OUI:F4F5A5* + OUI:F4F5E8* + ID_OUI_FROM_DATABASE=Google + ++OUI:F4F646* ++ ID_OUI_FROM_DATABASE=Dediprog Technology Co. Ltd. ++ + OUI:F4F951* + ID_OUI_FROM_DATABASE=Apple + + OUI:F4FC32* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:F4FD2B* ++ ID_OUI_FROM_DATABASE=ZOYI Company ++ + OUI:F80113* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -70798,6 +71062,9 @@ OUI:FC1607* + OUI:FC1794* + ID_OUI_FROM_DATABASE=InterCreative Co., Ltd + ++OUI:FC1910* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:FC19D0* + ID_OUI_FROM_DATABASE=Cloud Vision Networks Technology Co.,Ltd. + +@@ -70906,6 +71173,9 @@ OUI:FC7516* + OUI:FC75E6* + ID_OUI_FROM_DATABASE=Handreamnet + ++OUI:FC790B* ++ ID_OUI_FROM_DATABASE=Hitachi High Technologies America, Inc. ++ + OUI:FC7CE7* + ID_OUI_FROM_DATABASE=FCI USA LLC + +@@ -70948,6 +71218,9 @@ OUI:FCA841* + OUI:FCA9B0* + ID_OUI_FROM_DATABASE=MIARTECH (SHANGHAI),INC. + ++OUI:FCAA14* ++ ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. ++ + OUI:FCAD0F* + ID_OUI_FROM_DATABASE=QTS NETWORKS + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 14637d3..2957774 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -1673,6 +1673,9 @@ pci:v00001002d00001306* + pci:v00001002d00001307* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d00001308* ++ ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller ++ + pci:v00001002d00001309* + ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + +@@ -4268,6 +4271,9 @@ pci:v00001002d00006611sv00001B0Asd000090D3* + pci:v00001002d00006613* + ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] + ++pci:v00001002d00006613sv00001682sd00007240* ++ ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] (R7 240 2048 MB) ++ + pci:v00001002d00006620* + ID_MODEL_FROM_DATABASE=Mars + +@@ -6024,31 +6030,31 @@ pci:v00001002d00006819sv0000174Bsd0000E221* + ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) + + pci:v00001002d00006820* +- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] + + pci:v00001002d00006820sv0000103Csd00001851* +- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon HD 7750M) + + pci:v00001002d00006820sv000017AAsd00003801* +- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon R9 M275) + + pci:v00001002d00006821* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] + + pci:v00001002d00006821sv00001002sd0000031E* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro SX4000) + + pci:v00001002d00006821sv00001028sd000005CC* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) + + pci:v00001002d00006821sv00001028sd000015CC* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) + + pci:v00001002d00006822* + ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] + + pci:v00001002d00006823* +- ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M] ++ ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M / R9 M265X] + + pci:v00001002d00006825* + ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] +@@ -7770,64 +7776,73 @@ pci:v00001002d000068F9sv000017AFsd00003014* + ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068FA* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] + + pci:v00001002d000068FAsv00001019sd00000019* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000021* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000022* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000026* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000103Csd00002ADF* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) + + pci:v00001002d000068FAsv0000103Csd00002AE8* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) + + pci:v00001002d000068FAsv00001043sd00008350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) + + pci:v00001002d000068FAsv00001462sd00002128* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002184* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002186* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002495* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd0000B490* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001642sd00003985* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) ++ ++pci:v00001002d000068FAsv0000174Bsd00003510* ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) ++ ++pci:v00001002d000068FAsv0000174Bsd00003521* ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) ++ ++pci:v00001002d000068FAsv0000174Bsd00003522* ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) + + pci:v00001002d000068FAsv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd00008153* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E180* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv000017AFsd00003015* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE +@@ -8886,7 +8901,7 @@ pci:v00001002d0000980A* + ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 7290] + + pci:v00001002d00009830* +- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400] ++ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400 / R3 Series] + + pci:v00001002d00009831* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400E] +@@ -8904,13 +8919,13 @@ pci:v00001002d00009835* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8310E] + + pci:v00001002d00009836* +- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280] ++ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280 / R3 Series] + + pci:v00001002d00009837* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280E] + + pci:v00001002d00009838* +- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240] ++ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240 / R3 Series] + + pci:v00001002d00009839* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8180] +@@ -10724,6 +10739,33 @@ pci:v00001022d00001418* + pci:v00001022d00001419* + ID_MODEL_FROM_DATABASE=Family 15h (Models 10h-1fh) I/O Memory Management Unit + ++pci:v00001022d0000141A* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 0 ++ ++pci:v00001022d0000141B* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 1 ++ ++pci:v00001022d0000141C* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 2 ++ ++pci:v00001022d0000141D* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 3 ++ ++pci:v00001022d0000141E* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 4 ++ ++pci:v00001022d0000141F* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 5 ++ ++pci:v00001022d00001422* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Complex ++ ++pci:v00001022d00001423* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) I/O Memory Management Unit ++ ++pci:v00001022d00001426* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Port ++ + pci:v00001022d00001439* + ID_MODEL_FROM_DATABASE=Family 16h Processor Functions 5:1 + +@@ -17621,6 +17663,9 @@ pci:v00001093d000071BC* + pci:v00001093d000071D0* + ID_MODEL_FROM_DATABASE=PXI-6143 + ++pci:v00001093d000071DC* ++ ID_MODEL_FROM_DATABASE=PCI-1588 ++ + pci:v00001093d00007260* + ID_MODEL_FROM_DATABASE=PXI-5142 + +@@ -17639,6 +17684,9 @@ pci:v00001093d000072AA* + pci:v00001093d000072AB* + ID_MODEL_FROM_DATABASE=PCI-5105 + ++pci:v00001093d000072B8* ++ ID_MODEL_FROM_DATABASE=PXI-6682 ++ + pci:v00001093d0000730F* + ID_MODEL_FROM_DATABASE=PXI-5922EX + +@@ -17708,6 +17756,9 @@ pci:v00001093d000073F0* + pci:v00001093d000073F1* + ID_MODEL_FROM_DATABASE=PCI-5153 + ++pci:v00001093d00007405* ++ ID_MODEL_FROM_DATABASE=PXIe-6674T ++ + pci:v00001093d0000745E* + ID_MODEL_FROM_DATABASE=PXI-5153EX + +@@ -17726,6 +17777,12 @@ pci:v00001093d00007539* + pci:v00001093d0000753A* + ID_MODEL_FROM_DATABASE=NI 9159 + ++pci:v00001093d000075E5* ++ ID_MODEL_FROM_DATABASE=PXI-6683 ++ ++pci:v00001093d000075E6* ++ ID_MODEL_FROM_DATABASE=PXI-6683H ++ + pci:v00001093d00007626* + ID_MODEL_FROM_DATABASE=NI 9154 + +@@ -28100,6 +28157,9 @@ pci:v000010EC* + pci:v000010ECd00000139* + ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ Ethernet Controller + ++pci:v000010ECd00005208* ++ ID_MODEL_FROM_DATABASE=RTS5208 PCI Express Card Reader ++ + pci:v000010ECd00005209* + ID_MODEL_FROM_DATABASE=RTS5209 PCI Express Card Reader + +@@ -28128,7 +28188,7 @@ pci:v000010ECd00005249sv0000103Csd00001909* + ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) + + pci:v000010ECd00005288* +- ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader ++ ID_MODEL_FROM_DATABASE=RTS5288 PCI Express Card Reader + + pci:v000010ECd00008029* + ID_MODEL_FROM_DATABASE=RTL-8029(AS) +@@ -32153,6 +32213,9 @@ pci:v00001131d00007160* + pci:v00001131d00007160sv00001458sd00009009* + ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) + ++pci:v00001131d00007160sv00001461sd00001455* ++ ID_MODEL_FROM_DATABASE=SAA7160 (AVerTV Hybrid Speedy PCI-E (H788)) ++ + pci:v00001131d00007162* + ID_MODEL_FROM_DATABASE=SAA7162 + +@@ -34691,6 +34754,9 @@ pci:v000011ABd00002A42* + pci:v000011ABd00002A43* + ID_MODEL_FROM_DATABASE=88W8366 [TopDog] 802.11n Wireless + ++pci:v000011ABd00002A55* ++ ID_MODEL_FROM_DATABASE=88W8864 [Avastar] 802.11ac Wireless ++ + pci:v000011ABd00002B36* + ID_MODEL_FROM_DATABASE=88W8764 [Avastar] 802.11n Wireless + +@@ -36536,6 +36602,9 @@ pci:v00001217d00008120* + pci:v00001217d00008130* + ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller + ++pci:v00001217d00008221* ++ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller ++ + pci:v00001217d00008320* + ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller + +@@ -43278,7 +43347,13 @@ pci:v00001469* + ID_VENDOR_FROM_DATABASE=Cleveland Motion Controls + + pci:v0000146A* +- ID_VENDOR_FROM_DATABASE=IFR ++ ID_VENDOR_FROM_DATABASE=Aeroflex ++ ++pci:v0000146Ad00003010* ++ ID_MODEL_FROM_DATABASE=3010 RF Synthesizer ++ ++pci:v0000146Ad00003A11* ++ ID_MODEL_FROM_DATABASE=3011A PXI RF Synthesizer + + pci:v0000146B* + ID_VENDOR_FROM_DATABASE=Parascan Technologies Ltd +@@ -52409,6 +52484,9 @@ pci:v00001AB8d00004006* + pci:v00001AB9* + ID_VENDOR_FROM_DATABASE=Espia Srl + ++pci:v00001AC8* ++ ID_VENDOR_FROM_DATABASE=Aeroflex Gaisler ++ + pci:v00001ACC* + ID_VENDOR_FROM_DATABASE=Point of View BV + +@@ -52724,9 +52802,15 @@ pci:v00001B4Bd000091A0* + pci:v00001B4Bd000091A4* + ID_MODEL_FROM_DATABASE=88SE912x IDE Controller + ++pci:v00001B4Bd00009220* ++ ID_MODEL_FROM_DATABASE=88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller ++ + pci:v00001B4Bd00009230* + ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller + ++pci:v00001B4Bd00009235* ++ ID_MODEL_FROM_DATABASE=88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller ++ + pci:v00001B4Bd00009445* + ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller + +@@ -54693,7 +54777,7 @@ pci:v00006688* + ID_VENDOR_FROM_DATABASE=Zycoo Co., Ltd + + pci:v00006688d00001200* +- ID_MODEL_FROM_DATABASE=CooVOX TDM Analog Module ++ ID_MODEL_FROM_DATABASE=CooVox TDM Analog Module + + pci:v00006688d00001400* + ID_MODEL_FROM_DATABASE=CooVOX TDM GSM Module +@@ -59066,8 +59150,11 @@ pci:v00008086d00001522sv00008086sd000000A4* + pci:v00008086d00001523* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection + ++pci:v00008086d00001523sv00001028sd00000060* ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 2P I350 LOM) ++ + pci:v00008086d00001523sv00001028sd00001F9B* +- ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350-t bNDC) + + pci:v00008086d00001523sv0000103Csd00001784* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) +@@ -59183,9 +59270,6 @@ pci:v00008086d00001536* + pci:v00008086d00001537* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + +-pci:v00008086d00001538* +- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +- + pci:v00008086d00001539* + ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection + +@@ -59270,6 +59354,12 @@ pci:v00008086d0000155Dsv00008086sd00000002* + pci:v00008086d00001560* + ID_MODEL_FROM_DATABASE=Ethernet Controller X540 + ++pci:v00008086d0000156F* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-LM ++ ++pci:v00008086d00001570* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V ++ + pci:v00008086d00001571* + ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function + +@@ -59316,16 +59406,16 @@ pci:v00008086d00001581sv00001028sd00001F98* + ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) + + pci:v00008086d00001583* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + + pci:v00008086d00001583sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) + + pci:v00008086d00001584* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 014c628..52586bc 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -21,7 +21,7 @@ usb:v0004* + ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart + + usb:v0011* +- ID_VENDOR_FROM_DATABASE=Unknown manufacturer ++ ID_VENDOR_FROM_DATABASE=Unknown + + usb:v0011p7788* + ID_MODEL_FROM_DATABASE=Flash mass storage drive +@@ -275,6 +275,9 @@ usb:v03EBp2110* + usb:v03EBp2122* + ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit + ++usb:v03EBp2141* ++ ID_MODEL_FROM_DATABASE=ICE debugger ++ + usb:v03EBp2310* + ID_MODEL_FROM_DATABASE=EVK11xx evaluation board + +@@ -455,6 +458,9 @@ usb:v03F0p0121* + usb:v03F0p0122* + ID_MODEL_FROM_DATABASE=HID Internet Keyboard + ++usb:v03F0p0139* ++ ID_MODEL_FROM_DATABASE=Barcode Scanner 4430 ++ + usb:v03F0p0201* + ID_MODEL_FROM_DATABASE=ScanJet 6200c + +@@ -782,6 +788,9 @@ usb:v03F0p1517* + usb:v03F0p1524* + ID_MODEL_FROM_DATABASE=Smart Card Keyboard - KR + ++usb:v03F0p1539* ++ ID_MODEL_FROM_DATABASE=Mini Magnetic Stripe Reader ++ + usb:v03F0p1602* + ID_MODEL_FROM_DATABASE=PhotoSmart 330 series + +@@ -893,6 +902,9 @@ usb:v03F0p1D02* + usb:v03F0p1D17* + ID_MODEL_FROM_DATABASE=LaserJet 1320 + ++usb:v03F0p1D24* ++ ID_MODEL_FROM_DATABASE=Barcode scanner ++ + usb:v03F0p1E02* + ID_MODEL_FROM_DATABASE=PhotoSmart A320 Printer series + +@@ -935,6 +947,9 @@ usb:v03F0p2012* + usb:v03F0p201D* + ID_MODEL_FROM_DATABASE=un2400 Gobi Wireless Modem (QDL mode) + ++usb:v03F0p2039* ++ ID_MODEL_FROM_DATABASE=Cashdrawer ++ + usb:v03F0p2102* + ID_MODEL_FROM_DATABASE=PhotoSmart 7345 + +@@ -1008,7 +1023,7 @@ usb:v03F0p2505* + ID_MODEL_FROM_DATABASE=ScanJet 3770 + + usb:v03F0p2512* +- ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 ++ ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 / Compaq LA2405 series monitor + + usb:v03F0p2514* + ID_MODEL_FROM_DATABASE=4-port hub +@@ -1046,6 +1061,9 @@ usb:v03F0p2704* + usb:v03F0p2717* + ID_MODEL_FROM_DATABASE=Color LaserJet 2830 + ++usb:v03F0p2724* ++ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader IDRA-334133-HP ++ + usb:v03F0p2811* + ID_MODEL_FROM_DATABASE=PSC-2100 + +@@ -1424,6 +1442,9 @@ usb:v03F0p5817* + usb:v03F0p5911* + ID_MODEL_FROM_DATABASE=PhotoSmart C6180 + ++usb:v03F0p5912* ++ ID_MODEL_FROM_DATABASE=Officejet Pro 8600 ++ + usb:v03F0p5A11* + ID_MODEL_FROM_DATABASE=PhotoSmart C7100 series + +@@ -1532,6 +1553,9 @@ usb:v03F0p6B02* + usb:v03F0p6B11* + ID_MODEL_FROM_DATABASE=Photosmart C4500 series + ++usb:v03F0p6C11* ++ ID_MODEL_FROM_DATABASE=Photosmart C4480 ++ + usb:v03F0p6C17* + ID_MODEL_FROM_DATABASE=Color LaserJet 4610 + +@@ -1913,6 +1937,9 @@ usb:v03FC* + usb:v03FD* + ID_VENDOR_FROM_DATABASE=Xilinx, Inc. + ++usb:v03FDp0008* ++ ID_MODEL_FROM_DATABASE=Platform Cable USB II ++ + usb:v03FE* + ID_VENDOR_FROM_DATABASE=Farallon Comunications + +@@ -2012,6 +2039,9 @@ usb:v0403p0232* + usb:v0403p1060* + ID_MODEL_FROM_DATABASE=JTAG adapter + ++usb:v0403p1234* ++ ID_MODEL_FROM_DATABASE=IronLogic RFID Adapter [Z-2 USB] ++ + usb:v0403p6001* + ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC + +@@ -2084,12 +2114,18 @@ usb:v0403p8B2B* + usb:v0403p8B2C* + ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 + ++usb:v0403p9132* ++ ID_MODEL_FROM_DATABASE=LCD and Temperature Interface ++ + usb:v0403p9133* + ID_MODEL_FROM_DATABASE=CallerID + + usb:v0403p9135* + ID_MODEL_FROM_DATABASE=Rotary Pub alarm + ++usb:v0403p9136* ++ ID_MODEL_FROM_DATABASE=Pulsecounter ++ + usb:v0403p9E90* + ID_MODEL_FROM_DATABASE=Marvell OpenRD Base/Client + +@@ -2291,6 +2327,9 @@ usb:v0403pEF10* + usb:v0403pF070* + ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] + ++usb:v0403pF0E9* ++ ID_MODEL_FROM_DATABASE=Tagsys L-P101 ++ + usb:v0403pF1A0* + ID_MODEL_FROM_DATABASE=Asix PRESTO Programmer + +@@ -2999,6 +3038,9 @@ usb:v040Ap4021* + usb:v040Ap4022* + ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer + ++usb:v040Ap402B* ++ ID_MODEL_FROM_DATABASE=Photo Printer 6850 ++ + usb:v040Ap402E* + ID_MODEL_FROM_DATABASE=605 Photo Printer + +@@ -4379,6 +4421,9 @@ usb:v0424p7500* + usb:v0424p9512* + ID_MODEL_FROM_DATABASE=SMC9512/9514 USB Hub + ++usb:v0424p9514* ++ ID_MODEL_FROM_DATABASE=SMC9514 Hub ++ + usb:v0424pA700* + ID_MODEL_FROM_DATABASE=2 Port Hub + +@@ -5219,6 +5264,9 @@ usb:v0451p2046* + usb:v0451p2077* + ID_MODEL_FROM_DATABASE=TUSB2077 Hub + ++usb:v0451p2F90* ++ ID_MODEL_FROM_DATABASE=SM-USB-DIG ++ + usb:v0451p3410* + ID_MODEL_FROM_DATABASE=TUSB3410 Microcontroller + +@@ -5534,6 +5582,9 @@ usb:v0458p5003* + usb:v0458p5004* + ID_MODEL_FROM_DATABASE=G-pen Tablet + ++usb:v0458p505E* ++ ID_MODEL_FROM_DATABASE=Genius iSlim 330 ++ + usb:v0458p6001* + ID_MODEL_FROM_DATABASE=GF3000F Ethernet Adapter + +@@ -5600,6 +5651,24 @@ usb:v0458p705A* + usb:v0458p705C* + ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF + ++usb:v0458p7061* ++ ID_MODEL_FROM_DATABASE=Genius iLook 1321 V2 ++ ++usb:v0458p7066* ++ ID_MODEL_FROM_DATABASE=Acer Crystal Eye Webcam ++ ++usb:v0458p7067* ++ ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF V2 ++ ++usb:v0458p7068* ++ ID_MODEL_FROM_DATABASE=Genius eFace 1325R ++ ++usb:v0458p706D* ++ ID_MODEL_FROM_DATABASE=Genius iSlim 2000AF V2 ++ ++usb:v0458p7076* ++ ID_MODEL_FROM_DATABASE=Genius FaceCam 312 ++ + usb:v0458p7079* + ID_MODEL_FROM_DATABASE=FaceCam 2025R + +@@ -5609,6 +5678,12 @@ usb:v0458p707F* + usb:v0458p7088* + ID_MODEL_FROM_DATABASE=WideCam 1050 + ++usb:v0458p7089* ++ ID_MODEL_FROM_DATABASE=Genius FaceCam 320 ++ ++usb:v0458p708C* ++ ID_MODEL_FROM_DATABASE=Genius WideCam F100 ++ + usb:v0459* + ID_VENDOR_FROM_DATABASE=Adobe Systems, Inc. + +@@ -6017,6 +6092,15 @@ usb:v045Ep02B0* + usb:v045Ep02B6* + ID_MODEL_FROM_DATABASE=Xbox 360 / Bluetooth Wireless Headset + ++usb:v045Ep02BE* ++ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Audio ++ ++usb:v045Ep02BF* ++ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Camera ++ ++usb:v045Ep02C2* ++ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Motor ++ + usb:v045Ep0400* + ID_MODEL_FROM_DATABASE=Windows Powered Pocket PC 2002 + +@@ -6866,6 +6950,9 @@ usb:v046Dp0830* + usb:v046Dp0840* + ID_MODEL_FROM_DATABASE=QuickCam Express + ++usb:v046Dp0843* ++ ID_MODEL_FROM_DATABASE=Webcam C930e ++ + usb:v046Dp0850* + ID_MODEL_FROM_DATABASE=QuickCam Web + +@@ -7169,6 +7256,12 @@ usb:v046Dp0A1F* + usb:v046Dp0A29* + ID_MODEL_FROM_DATABASE=H600 [Wireless Headset] + ++usb:v046Dp0A38* ++ ID_MODEL_FROM_DATABASE=Headset H340 ++ ++usb:v046Dp0A4D* ++ ID_MODEL_FROM_DATABASE=G430 Surround Sound Gaming Headset ++ + usb:v046Dp0B02* + ID_MODEL_FROM_DATABASE=C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode) + +@@ -7650,7 +7743,7 @@ usb:v046DpC31B* + ID_MODEL_FROM_DATABASE=Compact Keyboard K300 + + usb:v046DpC31C* +- ID_MODEL_FROM_DATABASE=Keyboard K120 for Business ++ ID_MODEL_FROM_DATABASE=Keyboard K120 + + usb:v046DpC31D* + ID_MODEL_FROM_DATABASE=Media Keyboard K200 +@@ -7751,6 +7844,9 @@ usb:v046DpC529* + usb:v046DpC52B* + ID_MODEL_FROM_DATABASE=Unifying Receiver + ++usb:v046DpC52D* ++ ID_MODEL_FROM_DATABASE=R700 Remote Presenter receiver ++ + usb:v046DpC52E* + ID_MODEL_FROM_DATABASE=MK260 Wireless Combo Receiver + +@@ -7760,6 +7856,18 @@ usb:v046DpC52F* + usb:v046DpC532* + ID_MODEL_FROM_DATABASE=Unifying Receiver + ++usb:v046DpC603* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT ++ ++usb:v046DpC605* ++ ID_MODEL_FROM_DATABASE=3Dconnexion CADman ++ ++usb:v046DpC606* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Classic ++ ++usb:v046DpC621* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Spaceball 5000 ++ + usb:v046DpC623* + ID_MODEL_FROM_DATABASE=3Dconnexion Space Traveller 3D Mouse + +@@ -7772,9 +7880,18 @@ usb:v046DpC626* + usb:v046DpC627* + ID_MODEL_FROM_DATABASE=3Dconnexion Space Explorer 3D Mouse + ++usb:v046DpC628* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Space Navigator for Notebooks ++ + usb:v046DpC629* + ID_MODEL_FROM_DATABASE=3Dconnexion SpacePilot Pro 3D Mouse + ++usb:v046DpC62B* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Space Mouse Pro ++ ++usb:v046DpC640* ++ ID_MODEL_FROM_DATABASE=NuLOOQ navigator ++ + usb:v046DpC702* + ID_MODEL_FROM_DATABASE=Cordless Presenter + +@@ -8609,6 +8726,9 @@ usb:v0480p0011* + usb:v0480p0014* + ID_MODEL_FROM_DATABASE=InTouch Module + ++usb:v0480p0100* ++ ID_MODEL_FROM_DATABASE=Stor.E Slim USB 3.0 ++ + usb:v0480pA006* + ID_MODEL_FROM_DATABASE=External Disk 1.5TB + +@@ -10043,6 +10163,9 @@ usb:v04A9p2225* + usb:v04A9p2228* + ID_MODEL_FROM_DATABASE=CanoScan 4400F + ++usb:v04A9p2229* ++ ID_MODEL_FROM_DATABASE=CanoScan 8600F ++ + usb:v04A9p2602* + ID_MODEL_FROM_DATABASE=MultiPASS C555 + +@@ -10988,6 +11111,9 @@ usb:v04A9p3233* + usb:v04A9p3234* + ID_MODEL_FROM_DATABASE=PowerShot SX150 IS + ++usb:v04A9p3235* ++ ID_MODEL_FROM_DATABASE=PowerShot ELPH 510 HS / IXUS 1100 HS ++ + usb:v04A9p3236* + ID_MODEL_FROM_DATABASE=PowerShot S100 + +@@ -11057,12 +11183,18 @@ usb:v04A9p325B* + usb:v04A9p325C* + ID_MODEL_FROM_DATABASE=PowerShot SX500 IS + ++usb:v04A9p325E* ++ ID_MODEL_FROM_DATABASE=PowerShot N ++ + usb:v04A9p325F* + ID_MODEL_FROM_DATABASE=PowerShot SX280 HS + + usb:v04A9p3260* + ID_MODEL_FROM_DATABASE=PowerShot SX270 HS + ++usb:v04A9p3261* ++ ID_MODEL_FROM_DATABASE=PowerShot A3500 IS ++ + usb:v04A9p3262* + ID_MODEL_FROM_DATABASE=PowerShot A2600 + +@@ -11087,6 +11219,15 @@ usb:v04A9p3277* + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + ++usb:v04A9p3288* ++ ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 ++ ++usb:v04A9p3289* ++ ID_MODEL_FROM_DATABASE=PowerShot ELPH 340 HS / IXUS 265 HS ++ ++usb:v04A9p328A* ++ ID_MODEL_FROM_DATABASE=PowerShot ELPH 150 IS / IXUS 155 ++ + usb:v04AA* + ID_VENDOR_FROM_DATABASE=DaeWoo Telecom, Ltd + +@@ -11471,6 +11612,9 @@ usb:v04B4p2050* + usb:v04B4p2830* + ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) + ++usb:v04B4p4235* ++ ID_MODEL_FROM_DATABASE=Monitor 02 Driver ++ + usb:v04B4p4381* + ID_MODEL_FROM_DATABASE=SCAPS USC-1 Scanner Controller + +@@ -12407,6 +12551,9 @@ usb:v04C5p10AE* + usb:v04C5p10AF* + ID_MODEL_FROM_DATABASE=fi-4220C2 + ++usb:v04C5p10C7* ++ ID_MODEL_FROM_DATABASE=fi-60f scanner ++ + usb:v04C5p10E0* + ID_MODEL_FROM_DATABASE=fi-5120c Scanner + +@@ -12981,7 +13128,7 @@ usb:v04D9p2519* + ID_MODEL_FROM_DATABASE=Shenzhen LogoTech 2.4GHz receiver + + usb:v04D9p2832* +- ID_MODEL_FROM_DATABASE=1channel Telephone line recorder ++ ID_MODEL_FROM_DATABASE=HT82A832R Audio MCU + + usb:v04D9p2834* + ID_MODEL_FROM_DATABASE=HT82A834R Audio MCU +@@ -13070,6 +13217,9 @@ usb:v04DAp2374* + usb:v04DAp2451* + ID_MODEL_FROM_DATABASE=HDC-SD9 + ++usb:v04DAp245B* ++ ID_MODEL_FROM_DATABASE=HC-X920K (3MOS Full HD video camcorder) ++ + usb:v04DAp2497* + ID_MODEL_FROM_DATABASE=HDC-TM700 + +@@ -13535,6 +13685,9 @@ usb:v04E8p1006* + usb:v04E8p130C* + ID_MODEL_FROM_DATABASE=NX100 + ++usb:v04E8p1F05* ++ ID_MODEL_FROM_DATABASE=S2 Portable [JMicron] (500GB) ++ + usb:v04E8p1F06* + ID_MODEL_FROM_DATABASE=HX-MU064DA portable harddisk + +@@ -13670,6 +13823,9 @@ usb:v04E8p3310* + usb:v04E8p3315* + ID_MODEL_FROM_DATABASE=ML-2540 Series Laser Printer + ++usb:v04E8p331E* ++ ID_MODEL_FROM_DATABASE=M262x/M282x Xpress Series Laser Printer ++ + usb:v04E8p3409* + ID_MODEL_FROM_DATABASE=SCX-4216F Scanner + +@@ -13718,6 +13874,9 @@ usb:v04E8p3420* + usb:v04E8p3426* + ID_MODEL_FROM_DATABASE=SCX-4500 Laser Printer + ++usb:v04E8p342D* ++ ID_MODEL_FROM_DATABASE=SCX-4x28 Series ++ + usb:v04E8p344F* + ID_MODEL_FROM_DATABASE=SCX-3400 Series + +@@ -14058,7 +14217,7 @@ usb:v04E8p685B* + ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (mass storage mode) + + usb:v04E8p685C* +- ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] ++ ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] (Mass storage mode) + + usb:v04E8p685D* + ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (Download mode) +@@ -14067,7 +14226,10 @@ usb:v04E8p685E* + ID_MODEL_FROM_DATABASE=GT-I9100 / GT-C3350 Phones (USB Debugging mode) + + usb:v04E8p6860* +- ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] ++ ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] , GT-I9500 [Galaxy S 4] ++ ++usb:v04E8p6863* ++ ID_MODEL_FROM_DATABASE=GT-I9500 [Galaxy S4] / GT-I9250 [Galaxy Nexus] (network tethering) + + usb:v04E8p6865* + ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (PTP mode) +@@ -14075,6 +14237,9 @@ usb:v04E8p6865* + usb:v04E8p6866* + ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (debugging mode) + ++usb:v04E8p6868* ++ ID_MODEL_FROM_DATABASE=Escape Composite driver for Android Phones: Modem+Diagnostic+ADB ++ + usb:v04E8p6875* + ID_MODEL_FROM_DATABASE=GT-B3710 Standalone LTE device (Commercial) + +@@ -14342,6 +14507,12 @@ usb:v04F2pB057* + usb:v04F2pB059* + ID_MODEL_FROM_DATABASE=CKF7037 HP webcam + ++usb:v04F2pB064* ++ ID_MODEL_FROM_DATABASE=CNA7137 Integrated Webcam ++ ++usb:v04F2pB070* ++ ID_MODEL_FROM_DATABASE=Camera ++ + usb:v04F2pB071* + ID_MODEL_FROM_DATABASE=2.0M UVC Webcam / CNF7129 + +@@ -14411,6 +14582,9 @@ usb:v04F2pB2B0* + usb:v04F2pB2B9* + ID_MODEL_FROM_DATABASE=Lenovo Integrated Camera UVC + ++usb:v04F2pB2DA* ++ ID_MODEL_FROM_DATABASE=thinkpad t430s camera ++ + usb:v04F2pB2EA* + ID_MODEL_FROM_DATABASE=Integrated Camera [ThinkPad] + +@@ -14420,6 +14594,9 @@ usb:v04F2pB330* + usb:v04F2pB354* + ID_MODEL_FROM_DATABASE=UVC 1.00 device HD UVC WebCam + ++usb:v04F2pB394* ++ ID_MODEL_FROM_DATABASE=Integrated Camera ++ + usb:v04F3* + ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. + +@@ -15038,6 +15215,9 @@ usb:v04F9p01EB* + usb:v04F9p01F4* + ID_MODEL_FROM_DATABASE=MFC-5890CN + ++usb:v04F9p0217* ++ ID_MODEL_FROM_DATABASE=MFC-8480DN ++ + usb:v04F9p0223* + ID_MODEL_FROM_DATABASE=DCP-365CN + +@@ -15158,9 +15338,15 @@ usb:v04FCp5331* + usb:v04FCp5360* + ID_MODEL_FROM_DATABASE=Sunplus Generic Digital Camera + ++usb:v04FCp5563* ++ ID_MODEL_FROM_DATABASE=Digital Media Player MP3/WMA [The Sharper Image] ++ + usb:v04FCp5720* + ID_MODEL_FROM_DATABASE=Card Reader Driver + ++usb:v04FCp6333* ++ ID_MODEL_FROM_DATABASE=Siri A9 UVC chipset ++ + usb:v04FCp7333* + ID_MODEL_FROM_DATABASE=Finet Technology Palmpix DC-85 + +@@ -15239,6 +15425,18 @@ usb:v0502p3325* + usb:v0502p3341* + ID_MODEL_FROM_DATABASE=Iconia tablet A500 + ++usb:v0502p33C3* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 ++ ++usb:v0502p33C4* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode) ++ ++usb:v0502p33C7* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (USB tethering) ++ ++usb:v0502p33C8* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode, USB tethering) ++ + usb:v0502pD001* + ID_MODEL_FROM_DATABASE=Divio NW801/DVC-V6+ Digital Camera + +@@ -15446,6 +15644,9 @@ usb:v050Dp0416* + usb:v050Dp0551* + ID_MODEL_FROM_DATABASE=F6C550-AVR UPS + ++usb:v050Dp065A* ++ ID_MODEL_FROM_DATABASE=F8T065BF Mini Bluetooth 4.0 Adapter ++ + usb:v050Dp0706* + ID_MODEL_FROM_DATABASE=2-N-1 7-Port Hub (Lower half) + +@@ -15497,6 +15698,9 @@ usb:v050Dp2103* + usb:v050Dp21F1* + ID_MODEL_FROM_DATABASE=N300 WLAN N Adapter [ISY] + ++usb:v050Dp21F2* ++ ID_MODEL_FROM_DATABASE=RTL8192CU 802.11n WLAN Adapter [ISY IWL 4000] ++ + usb:v050Dp258A* + ID_MODEL_FROM_DATABASE=F5U258 Host to Host cable + +@@ -15728,6 +15932,9 @@ usb:v0525p1200* + usb:v0525p1265* + ID_MODEL_FROM_DATABASE=File-backed Storage Gadget + ++usb:v0525p3424* ++ ID_MODEL_FROM_DATABASE=Lumidigm Venus fingerprint sensor ++ + usb:v0525pA0F0* + ID_MODEL_FROM_DATABASE=Cambridge Electronic Devices Power1401 mk 2 + +@@ -16655,6 +16862,9 @@ usb:v054Cp035B* + usb:v054Cp035C* + ID_MODEL_FROM_DATABASE=NWZ-A726/A728/A729 + ++usb:v054Cp035F* ++ ID_MODEL_FROM_DATABASE=UP-DR200 Photo Printer ++ + usb:v054Cp0382* + ID_MODEL_FROM_DATABASE=Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1) + +@@ -16694,9 +16904,18 @@ usb:v054Cp0485* + usb:v054Cp04CB* + ID_MODEL_FROM_DATABASE=WALKMAN NWZ-E354 + ++usb:v054Cp0541* ++ ID_MODEL_FROM_DATABASE=DSC-HX100V [Cybershot Digital Still Camera] ++ ++usb:v054Cp0689* ++ ID_MODEL_FROM_DATABASE=Walkman NWZ-B173F ++ + usb:v054Cp06BB* + ID_MODEL_FROM_DATABASE=WALKMAN NWZ-F805 + ++usb:v054Cp088C* ++ ID_MODEL_FROM_DATABASE=Portable Headphone Amplifier ++ + usb:v054Cp1000* + ID_MODEL_FROM_DATABASE=Wireless Buzz! Receiver + +@@ -16721,6 +16940,12 @@ usb:v0550p0004* + usb:v0550p0005* + ID_MODEL_FROM_DATABASE=InkJet Color Printer + ++usb:v0550p000B* ++ ID_MODEL_FROM_DATABASE=Workcentre 24 ++ ++usb:v0550p014E* ++ ID_MODEL_FROM_DATABASE=CM215b Printer ++ + usb:v0551* + ID_VENDOR_FROM_DATABASE=CompuTrend Systems, Inc. + +@@ -17306,6 +17531,9 @@ usb:v056Ap0069* + usb:v056Ap0081* + ID_MODEL_FROM_DATABASE=Graphire Wireless 6x8 + ++usb:v056Ap0084* ++ ID_MODEL_FROM_DATABASE=Wireless adapter for Bamboo tablets ++ + usb:v056Ap0090* + ID_MODEL_FROM_DATABASE=TPC90 + +@@ -17372,6 +17600,9 @@ usb:v056Ap00D1* + usb:v056Ap00D3* + ID_MODEL_FROM_DATABASE=Bamboo Fun (CTH-661) + ++usb:v056Ap00D4* ++ ID_MODEL_FROM_DATABASE=Bamboo Pen (CTL-460) ++ + usb:v056Ap00D6* + ID_MODEL_FROM_DATABASE=Bamboo Pen & Touch (CTH-460) + +@@ -17390,6 +17621,12 @@ usb:v056Ap00F6* + usb:v056Ap00F8* + ID_MODEL_FROM_DATABASE=Cintiq 24HD touch (DTH-2400) tablet + ++usb:v056Ap0307* ++ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) tablet ++ ++usb:v056Ap0309* ++ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) touchscreen ++ + usb:v056Ap0400* + ID_MODEL_FROM_DATABASE=PenPartner 4x5 + +@@ -18719,6 +18956,9 @@ usb:v0586p341E* + usb:v0586p341F* + ID_MODEL_FROM_DATABASE=NWD2205 802.11n Wireless N Adapter [Realtek RTL8192CU] + ++usb:v0586p3425* ++ ID_MODEL_FROM_DATABASE=NWD6505 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] ++ + usb:v0586p343E* + ID_MODEL_FROM_DATABASE=N220 802.11bgn Wireless Adapter + +@@ -18737,9 +18977,15 @@ usb:v058A* + usb:v058B* + ID_VENDOR_FROM_DATABASE=Infineon Technologies + ++usb:v058Bp0015* ++ ID_MODEL_FROM_DATABASE=Flash Loader utility ++ + usb:v058Bp001C* + ID_MODEL_FROM_DATABASE=Flash Drive + ++usb:v058Bp0041* ++ ID_MODEL_FROM_DATABASE=Flash Loader utility ++ + usb:v058C* + ID_VENDOR_FROM_DATABASE=In Focus Systems + +@@ -18855,7 +19101,7 @@ usb:v058Fp6366* + ID_MODEL_FROM_DATABASE=Multi Flash Reader + + usb:v058Fp6377* +- ID_MODEL_FROM_DATABASE=Multimedia Card Reader ++ ID_MODEL_FROM_DATABASE=AU6375 4-LUN card reader + + usb:v058Fp6386* + ID_MODEL_FROM_DATABASE=Memory Card +@@ -18926,12 +19172,18 @@ usb:v058Fp9510* + usb:v058Fp9520* + ID_MODEL_FROM_DATABASE=EMV Certified Smart Card Reader + ++usb:v058Fp9540* ++ ID_MODEL_FROM_DATABASE=AU9540 Smartcard Reader ++ + usb:v058Fp9720* + ID_MODEL_FROM_DATABASE=USB-Serial Adapter + + usb:v058FpA014* + ID_MODEL_FROM_DATABASE=Asus Integrated Webcam + ++usb:v058FpB002* ++ ID_MODEL_FROM_DATABASE=Acer Integrated Webcam ++ + usb:v0590* + ID_VENDOR_FROM_DATABASE=Omron Corp. + +@@ -18983,6 +19235,9 @@ usb:v0596p0002* + usb:v0596p0500* + ID_MODEL_FROM_DATABASE=PCT Multitouch HID Controller + ++usb:v0596p0543* ++ ID_MODEL_FROM_DATABASE=DELL XPS touchscreen ++ + usb:v0597* + ID_VENDOR_FROM_DATABASE=Trisignal Communications + +@@ -19055,6 +19310,9 @@ usb:v059Bp0061* + usb:v059Bp006D* + ID_MODEL_FROM_DATABASE=HipZip MP3 Player + ++usb:v059Bp0070* ++ ID_MODEL_FROM_DATABASE=eGo Portable Hard Drive ++ + usb:v059Bp007C* + ID_MODEL_FROM_DATABASE=Ultra Max USB/1394 + +@@ -19163,9 +19421,15 @@ usb:v059Fp0323* + usb:v059Fp0421* + ID_MODEL_FROM_DATABASE=Big Disk G465 + ++usb:v059Fp0525* ++ ID_MODEL_FROM_DATABASE=BigDisk Extreme 500 ++ + usb:v059Fp0641* + ID_MODEL_FROM_DATABASE=Mobile Hard Drive + ++usb:v059Fp0829* ++ ID_MODEL_FROM_DATABASE=BigDisk Extreme+ ++ + usb:v059Fp100C* + ID_MODEL_FROM_DATABASE=Rugged Triple Interface Mobile Hard Drive + +@@ -19190,6 +19454,9 @@ usb:v059Fp1049* + usb:v059Fp1052* + ID_MODEL_FROM_DATABASE=P'9220 Mobile Drive + ++usb:v059Fp1064* ++ ID_MODEL_FROM_DATABASE=Rugged 16 and 32 GB ++ + usb:v059FpA601* + ID_MODEL_FROM_DATABASE=HardDrive + +@@ -19464,7 +19731,7 @@ usb:v05ACp0225* + ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (JIS) + + usb:v05ACp0229* +- ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ANSI) ++ ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (ANSI) + + usb:v05ACp022A* + ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ISO) +@@ -19545,7 +19812,7 @@ usb:v05ACp0302* + ID_MODEL_FROM_DATABASE=Optical Mouse [Fujitsu] + + usb:v05ACp0304* +- ID_MODEL_FROM_DATABASE=Optical USB Mouse [Mitsumi] ++ ID_MODEL_FROM_DATABASE=Mighty Mouse [Mitsumi, M1152] + + usb:v05ACp0306* + ID_MODEL_FROM_DATABASE=Optical USB Mouse [Fujitsu] +@@ -19577,6 +19844,9 @@ usb:v05ACp1003* + usb:v05ACp1006* + ID_MODEL_FROM_DATABASE=Hub in Aluminum Keyboard + ++usb:v05ACp1008* ++ ID_MODEL_FROM_DATABASE=Mini DisplayPort to Dual-Link DVI Adapter ++ + usb:v05ACp1101* + ID_MODEL_FROM_DATABASE=Speakers + +@@ -19670,6 +19940,9 @@ usb:v05ACp1265* + usb:v05ACp1266* + ID_MODEL_FROM_DATABASE=iPod Nano 6.Gen + ++usb:v05ACp1267* ++ ID_MODEL_FROM_DATABASE=iPod Nano 7.Gen ++ + usb:v05ACp1281* + ID_MODEL_FROM_DATABASE=Apple Mobile Device [Recovery Mode] + +@@ -19700,6 +19973,9 @@ usb:v05ACp1299* + usb:v05ACp129A* + ID_MODEL_FROM_DATABASE=iPad + ++usb:v05ACp129C* ++ ID_MODEL_FROM_DATABASE=iPhone 4(CDMA) ++ + usb:v05ACp129E* + ID_MODEL_FROM_DATABASE=iPod Touch 4.Gen + +@@ -19712,15 +19988,30 @@ usb:v05ACp12A0* + usb:v05ACp12A2* + ID_MODEL_FROM_DATABASE=iPad 2 (3G; 64GB) + ++usb:v05ACp12A3* ++ ID_MODEL_FROM_DATABASE=iPad 2 (CDMA) ++ ++usb:v05ACp12A4* ++ ID_MODEL_FROM_DATABASE=iPad 3 (wifi) ++ ++usb:v05ACp12A5* ++ ID_MODEL_FROM_DATABASE=iPad 3 (CDMA) ++ + usb:v05ACp12A6* + ID_MODEL_FROM_DATABASE=iPad 3 (3G, 16 GB) + ++usb:v05ACp12A8* ++ ID_MODEL_FROM_DATABASE=iPhone5/5C/5S ++ + usb:v05ACp12A9* + ID_MODEL_FROM_DATABASE=iPad 2 + + usb:v05ACp12AA* + ID_MODEL_FROM_DATABASE=iPod Touch 5.Gen [A1421] + ++usb:v05ACp12AB* ++ ID_MODEL_FROM_DATABASE=iPad 4 (WiFi, 32GB) ++ + usb:v05ACp1300* + ID_MODEL_FROM_DATABASE=iPod Shuffle + +@@ -19742,6 +20033,15 @@ usb:v05ACp1402* + usb:v05ACp1500* + ID_MODEL_FROM_DATABASE=SuperDrive [A1379] + ++usb:v05ACp8005* ++ ID_MODEL_FROM_DATABASE=OHCI Root Hub Simulation ++ ++usb:v05ACp8006* ++ ID_MODEL_FROM_DATABASE=EHCI Root Hub Simulation ++ ++usb:v05ACp8007* ++ ID_MODEL_FROM_DATABASE=XHCI Root Hub USB 2.0 Simulation ++ + usb:v05ACp8202* + ID_MODEL_FROM_DATABASE=HCF V.90 Data/Fax Modem + +@@ -19838,6 +20138,9 @@ usb:v05ACp8510* + usb:v05ACp911C* + ID_MODEL_FROM_DATABASE=Hub in A1082 [Cinema HD Display 23"] + ++usb:v05ACp9127* ++ ID_MODEL_FROM_DATABASE=Hub in Thunderbolt Display ++ + usb:v05ACp912F* + ID_MODEL_FROM_DATABASE=Hub in 30" Cinema Display + +@@ -20042,6 +20345,9 @@ usb:v05C6p9202* + usb:v05C6p9203* + ID_MODEL_FROM_DATABASE=Gobi Wireless Modem + ++usb:v05C6p9205* ++ ID_MODEL_FROM_DATABASE=Gobi 2000 ++ + usb:v05C6p9211* + ID_MODEL_FROM_DATABASE=Acer Gobi Wireless Modem (QDL mode) + +@@ -20123,9 +20429,18 @@ usb:v05C8p021A* + usb:v05C8p0318* + ID_MODEL_FROM_DATABASE=Webcam + ++usb:v05C8p0361* ++ ID_MODEL_FROM_DATABASE=SunplusIT INC. HP Truevision HD Webcam ++ ++usb:v05C8p036E* ++ ID_MODEL_FROM_DATABASE=Webcam ++ + usb:v05C8p0403* + ID_MODEL_FROM_DATABASE=Webcam + ++usb:v05C8p041B* ++ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam ++ + usb:v05C9* + ID_VENDOR_FROM_DATABASE=Semtech Corp. + +@@ -20861,6 +21176,9 @@ usb:v05DCp4D12* + usb:v05DCp4D30* + ID_MODEL_FROM_DATABASE=MP3 Player + ++usb:v05DCpA209* ++ ID_MODEL_FROM_DATABASE=JumpDrive S70 ++ + usb:v05DCpA300* + ID_MODEL_FROM_DATABASE=JumpDrive2 + +@@ -20921,6 +21239,9 @@ usb:v05DCpA701* + usb:v05DCpA731* + ID_MODEL_FROM_DATABASE=JumpDrive FireFly + ++usb:v05DCpA768* ++ ID_MODEL_FROM_DATABASE=JumpDrive Retrax ++ + usb:v05DCpA790* + ID_MODEL_FROM_DATABASE=JumpDrive 2GB + +@@ -20930,6 +21251,9 @@ usb:v05DCpA811* + usb:v05DCpA813* + ID_MODEL_FROM_DATABASE=16gB flash thumb drive + ++usb:v05DCpA815* ++ ID_MODEL_FROM_DATABASE=JumpDrive V10 ++ + usb:v05DCpB002* + ID_MODEL_FROM_DATABASE=USB CF Reader + +@@ -20939,6 +21263,9 @@ usb:v05DCpB018* + usb:v05DCpB047* + ID_MODEL_FROM_DATABASE=SDHC Reader [RW047-7000] + ++usb:v05DCpBA02* ++ ID_MODEL_FROM_DATABASE=Workflow CFR1 ++ + usb:v05DCpC753* + ID_MODEL_FROM_DATABASE=JumpDrive TwistTurn + +@@ -21084,7 +21411,7 @@ usb:v05E3p0607* + ID_MODEL_FROM_DATABASE=Logitech G110 Hub + + usb:v05E3p0608* +- ID_MODEL_FROM_DATABASE=USB-2.0 4-Port HUB ++ ID_MODEL_FROM_DATABASE=Hub + + usb:v05E3p0610* + ID_MODEL_FROM_DATABASE=4-port hub +@@ -21158,6 +21485,9 @@ usb:v05E3p0718* + usb:v05E3p0719* + ID_MODEL_FROM_DATABASE=SATA adapter + ++usb:v05E3p0722* ++ ID_MODEL_FROM_DATABASE=SD/MMC card reader ++ + usb:v05E3p0723* + ID_MODEL_FROM_DATABASE=GL827L SD/MMC/MS Flash Card Reader + +@@ -21170,9 +21500,18 @@ usb:v05E3p0727* + usb:v05E3p0731* + ID_MODEL_FROM_DATABASE=GL3310 SATA 3Gb/s Bridge Controller + ++usb:v05E3p0732* ++ ID_MODEL_FROM_DATABASE=All-in-One Cardreader ++ + usb:v05E3p0736* + ID_MODEL_FROM_DATABASE=microSD Reader/Writer + ++usb:v05E3p0741* ++ ID_MODEL_FROM_DATABASE=microSD Card Reader ++ ++usb:v05E3p0743* ++ ID_MODEL_FROM_DATABASE=SDXC and microSDXC CardReader ++ + usb:v05E3p0760* + ID_MODEL_FROM_DATABASE=USB 2.0 Card Reader/Writer + +@@ -21296,6 +21635,9 @@ usb:v05F3p0081* + usb:v05F3p00FF* + ID_MODEL_FROM_DATABASE=VEC Footpedal + ++usb:v05F3p0203* ++ ID_MODEL_FROM_DATABASE=Y-mouse Keyboard & Mouse Adapter ++ + usb:v05F3p020B* + ID_MODEL_FROM_DATABASE=PS2 Adapter + +@@ -21410,6 +21752,9 @@ usb:v05FEp0014* + usb:v05FEp1010* + ID_MODEL_FROM_DATABASE=Optical Wireless + ++usb:v05FEp2001* ++ ID_MODEL_FROM_DATABASE=Microsoft Wireless Receiver 700 ++ + usb:v05FF* + ID_VENDOR_FROM_DATABASE=LeCroy Corp. + +@@ -21434,6 +21779,9 @@ usb:v0603* + usb:v0603p00F1* + ID_MODEL_FROM_DATABASE=Keyboard + ++usb:v0603p00F2* ++ ID_MODEL_FROM_DATABASE=Keyboard (Labtec Ultra Flat Keyboard) ++ + usb:v0603p6871* + ID_MODEL_FROM_DATABASE=Mouse + +@@ -21491,6 +21839,9 @@ usb:v060Bp2231* + usb:v060Bp2270* + ID_MODEL_FROM_DATABASE=Gigabyte K8100 Aivia Gaming Keyboard + ++usb:v060Bp5253* ++ ID_MODEL_FROM_DATABASE=Thermaltake MEKA G-Unit Gaming Keyboard ++ + usb:v060Bp5811* + ID_MODEL_FROM_DATABASE=ACK-571U Wireless Keyboard + +@@ -21911,6 +22262,9 @@ usb:v064EpA110* + usb:v064EpA114* + ID_MODEL_FROM_DATABASE=Lemote Webcam + ++usb:v064EpA116* ++ ID_MODEL_FROM_DATABASE=UVC 1.3MPixel WebCam ++ + usb:v064EpA136* + ID_MODEL_FROM_DATABASE=Asus Integrated Webcam [CN031B] + +@@ -22893,7 +23247,7 @@ usb:v068Ep00F4* + ID_MODEL_FROM_DATABASE=Combatstick + + usb:v068Ep00FA* +- ID_MODEL_FROM_DATABASE=Flight Sim Pedals ++ ID_MODEL_FROM_DATABASE=Ch Throttle Quadrant + + usb:v068Ep00FF* + ID_MODEL_FROM_DATABASE=Flight Sim Yoke +@@ -22955,6 +23309,9 @@ usb:v0698p9999* + usb:v0699* + ID_VENDOR_FROM_DATABASE=Tektronix, Inc. + ++usb:v0699p0347* ++ ID_MODEL_FROM_DATABASE=AFG 3022B ++ + usb:v069A* + ID_VENDOR_FROM_DATABASE=Askey Computer Corp. + +@@ -23486,6 +23843,9 @@ usb:v06C2* + usb:v06C2p0030* + ID_MODEL_FROM_DATABASE=PhidgetRFID + ++usb:v06C2p0031* ++ ID_MODEL_FROM_DATABASE=RFID reader ++ + usb:v06C2p0038* + ID_MODEL_FROM_DATABASE=4-Motor PhidgetServo v3.0 + +@@ -23789,6 +24149,12 @@ usb:v06D3p0394* + usb:v06D3p03A1* + ID_MODEL_FROM_DATABASE=CP9550D/DW Port + ++usb:v06D3p3B30* ++ ID_MODEL_FROM_DATABASE=CP-D70DW / CP-D707DW ++ ++usb:v06D3p3B31* ++ ID_MODEL_FROM_DATABASE=CP-K60DW-S ++ + usb:v06D4* + ID_VENDOR_FROM_DATABASE=Cisco Systems + +@@ -24575,6 +24941,9 @@ usb:v072Fp1000* + usb:v072Fp1001* + ID_MODEL_FROM_DATABASE=PLDT Drive + ++usb:v072Fp2200* ++ ID_MODEL_FROM_DATABASE=ACR122U ++ + usb:v072Fp8002* + ID_MODEL_FROM_DATABASE=AET63 BioTRUSTKey + +@@ -25046,6 +25415,12 @@ usb:v0765* + usb:v0765p5001* + ID_MODEL_FROM_DATABASE=Huey PRO Colorimeter + ++usb:v0765p5020* ++ ID_MODEL_FROM_DATABASE=i1 Display Pro ++ ++usb:v0765p6003* ++ ID_MODEL_FROM_DATABASE=ColorMunki Smile ++ + usb:v0765pD094* + ID_MODEL_FROM_DATABASE=X-Rite DTP94 [Quato Silver Haze Pro] + +@@ -25325,12 +25700,24 @@ usb:v0781p5530* + usb:v0781p5567* + ID_MODEL_FROM_DATABASE=Cruzer Blade + ++usb:v0781p556C* ++ ID_MODEL_FROM_DATABASE=Ultra ++ ++usb:v0781p556D* ++ ID_MODEL_FROM_DATABASE=Memory Vault ++ + usb:v0781p5571* + ID_MODEL_FROM_DATABASE=Cruzer Fit + ++usb:v0781p5576* ++ ID_MODEL_FROM_DATABASE=Cruzer Facet ++ + usb:v0781p5580* + ID_MODEL_FROM_DATABASE=SDCZ80 Flash Drive + ++usb:v0781p5581* ++ ID_MODEL_FROM_DATABASE=Ultra ++ + usb:v0781p5E10* + ID_MODEL_FROM_DATABASE=Encrypted + +@@ -25830,7 +26217,7 @@ usb:v07AAp001A* + ID_MODEL_FROM_DATABASE=ULUSB-11 Key + + usb:v07AAp001C* +- ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] ++ ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] + + usb:v07AAp002E* + ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] +@@ -26114,6 +26501,9 @@ usb:v07B4p0114* + usb:v07B4p0118* + ID_MODEL_FROM_DATABASE=Mju Mini Digital/Mju Digital 500 Camera / Stylus 850 SW + ++usb:v07B4p0125* ++ ID_MODEL_FROM_DATABASE=Tough TG-1 Camera ++ + usb:v07B4p0184* + ID_MODEL_FROM_DATABASE=P-S100 port + +@@ -26441,6 +26831,9 @@ usb:v07C4pA400* + usb:v07C4pA600* + ID_MODEL_FROM_DATABASE=Card Reader + ++usb:v07C4pA604* ++ ID_MODEL_FROM_DATABASE=12-in-1 Card Reader ++ + usb:v07C4pAD01* + ID_MODEL_FROM_DATABASE=Mass Storage Device + +@@ -26474,6 +26867,9 @@ usb:v07C4pC010* + usb:v07C5* + ID_VENDOR_FROM_DATABASE=APG Cash Drawer + ++usb:v07C5p0500* ++ ID_MODEL_FROM_DATABASE=Cash Drawer ++ + usb:v07C6* + ID_VENDOR_FROM_DATABASE=ShareWave, Inc. + +@@ -27140,6 +27536,9 @@ usb:v0803* + usb:v0803p1300* + ID_MODEL_FROM_DATABASE=V92 Faxmodem + ++usb:v0803p3095* ++ ID_MODEL_FROM_DATABASE=V.92 56K Mini External Modem Model 3095 ++ + usb:v0803p4310* + ID_MODEL_FROM_DATABASE=4410a Wireless-G Adapter [Intersil ISL3887] + +@@ -27713,6 +28112,9 @@ usb:v0846p9018* + usb:v0846p9020* + ID_MODEL_FROM_DATABASE=WNA3100(v1) Wireless-N 300 [Broadcom BCM43231] + ++usb:v0846p9021* ++ ID_MODEL_FROM_DATABASE=WNA3100M(v1) Wireless-N 300 [Realtek RTL8192CU] ++ + usb:v0846p9030* + ID_MODEL_FROM_DATABASE=WNA1100 Wireless-N 150 [Atheros AR9271] + +@@ -27722,9 +28124,21 @@ usb:v0846p9040* + usb:v0846p9041* + ID_MODEL_FROM_DATABASE=WNA1000M 802.11bgn [Realtek RTL8188CUS] + ++usb:v0846p9042* ++ ID_MODEL_FROM_DATABASE=On Networks N150MA 802.11bgn [Realtek RTL8188CUS] ++ ++usb:v0846p9050* ++ ID_MODEL_FROM_DATABASE=A6200 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] ++ ++usb:v0846p9052* ++ ID_MODEL_FROM_DATABASE=A6100 AC600 DB Wireless Adapter [Realtek RTL8811AU] ++ + usb:v0846pA001* + ID_MODEL_FROM_DATABASE=PA101 10 Mbps HPNA Home Phoneline RJ-1 + ++usb:v0846pF001* ++ ID_MODEL_FROM_DATABASE=On Networks N300MA 802.11bgn [Realtek RTL8192CU] ++ + usb:v084D* + ID_VENDOR_FROM_DATABASE=Minton Optic Industry Co., Inc. + +@@ -27875,8 +28289,17 @@ usb:v085Ap8027* + usb:v085C* + ID_VENDOR_FROM_DATABASE=ColorVision, Inc. + ++usb:v085Cp0100* ++ ID_MODEL_FROM_DATABASE=Spyder 1 ++ + usb:v085Cp0200* +- ID_MODEL_FROM_DATABASE=Monitor Spyder ++ ID_MODEL_FROM_DATABASE=Spyder 2 ++ ++usb:v085Cp0300* ++ ID_MODEL_FROM_DATABASE=Spyder 3 ++ ++usb:v085Cp0400* ++ ID_MODEL_FROM_DATABASE=Spyder 4 + + usb:v0862* + ID_VENDOR_FROM_DATABASE=Teletrol Systems, Inc. +@@ -28127,6 +28550,12 @@ usb:v0892* + usb:v0892p0101* + ID_MODEL_FROM_DATABASE=Smartdio Reader/Writer + ++usb:v0894* ++ ID_VENDOR_FROM_DATABASE=TSI Incorporated ++ ++usb:v0894p0010* ++ ID_MODEL_FROM_DATABASE=Remote NDIS Network Device ++ + usb:v0897* + ID_VENDOR_FROM_DATABASE=Lauterbach + +@@ -28181,6 +28610,18 @@ usb:v08A9p0015* + usb:v08AE* + ID_VENDOR_FROM_DATABASE=Macally (Mace Group, Inc.) + ++usb:v08B0* ++ ID_VENDOR_FROM_DATABASE=Metrohm ++ ++usb:v08B0p0006* ++ ID_MODEL_FROM_DATABASE=814 Sample Processor ++ ++usb:v08B0p0015* ++ ID_MODEL_FROM_DATABASE=857 Titrando ++ ++usb:v08B0p001A* ++ ID_MODEL_FROM_DATABASE=852 Titrando ++ + usb:v08B4* + ID_VENDOR_FROM_DATABASE=Sorenson Vision, Inc. + +@@ -29036,6 +29477,12 @@ usb:v0906* + usb:v0908* + ID_VENDOR_FROM_DATABASE=Siemens AG + ++usb:v0908p01F4* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5711 ++ ++usb:v0908p01FE* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET PC Adapter A2 ++ + usb:v0908p2701* + ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA + +@@ -29285,12 +29732,18 @@ usb:v091Ep23CC* + usb:v091Ep2459* + ID_MODEL_FROM_DATABASE=GPSmap 62/78 series + ++usb:v091Ep2491* ++ ID_MODEL_FROM_DATABASE=Edge 800 ++ + usb:v091Ep2519* + ID_MODEL_FROM_DATABASE=eTrex 30 + + usb:v091Ep2535* + ID_MODEL_FROM_DATABASE=Edge 800 + ++usb:v091Ep253C* ++ ID_MODEL_FROM_DATABASE=GPSmap 62sc ++ + usb:v091Ep255B* + ID_MODEL_FROM_DATABASE=Nuvi 2505LM + +@@ -29315,12 +29768,18 @@ usb:v0922p0007* + usb:v0922p0009* + ID_MODEL_FROM_DATABASE=LabelWriter 310 + ++usb:v0922p0019* ++ ID_MODEL_FROM_DATABASE=LabelWriter 400 ++ + usb:v0922p001A* + ID_MODEL_FROM_DATABASE=LabelWriter 400 Turbo + + usb:v0922p0020* + ID_MODEL_FROM_DATABASE=LabelWriter 450 + ++usb:v0922p1001* ++ ID_MODEL_FROM_DATABASE=LabelManager PnP ++ + usb:v0923* + ID_VENDOR_FROM_DATABASE=IC Media Corp. + +@@ -29363,6 +29822,9 @@ usb:v0925* + usb:v0925p0005* + ID_MODEL_FROM_DATABASE=Gamtec.,Ltd SmartJoy PLUS Adapter + ++usb:v0925p03E8* ++ ID_MODEL_FROM_DATABASE=Wii Classic Controller Adapter ++ + usb:v0925p3881* + ID_MODEL_FROM_DATABASE=Saleae Logic + +@@ -29417,6 +29879,9 @@ usb:v0930p000C* + usb:v0930p0010* + ID_MODEL_FROM_DATABASE=Gigabeat S (mtp) + ++usb:v0930p0200* ++ ID_MODEL_FROM_DATABASE=Integrated Bluetooth (Taiyo Yuden) ++ + usb:v0930p0301* + ID_MODEL_FROM_DATABASE=PCX1100U Cable Modem (WDM) + +@@ -29483,6 +29948,9 @@ usb:v0930p070B* + usb:v0930p0A07* + ID_MODEL_FROM_DATABASE=WLM-10U1 802.11abgn Wireless Adapter [Ralink RT3572] + ++usb:v0930p0A13* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Toshiba] ++ + usb:v0930p0B05* + ID_MODEL_FROM_DATABASE=PX1220E-1G25 External hard drive + +@@ -29691,7 +30159,7 @@ usb:v0939* + ID_VENDOR_FROM_DATABASE=Lumberg, Inc. + + usb:v0939p0B15* +- ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 1TB (PX1710E-1HJ0) ++ ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 + + usb:v093A* + ID_VENDOR_FROM_DATABASE=Pixart Imaging, Inc. +@@ -29753,6 +30221,9 @@ usb:v093Ap260F* + usb:v093Ap2621* + ID_MODEL_FROM_DATABASE=PAC731x Trust Webcam + ++usb:v093Ap2622* ++ ID_MODEL_FROM_DATABASE=Webcam Genius ++ + usb:v093Ap2624* + ID_MODEL_FROM_DATABASE=Webcam + +@@ -29951,6 +30422,9 @@ usb:v0951p1653* + usb:v0951p1656* + ID_MODEL_FROM_DATABASE=DataTraveler Ultimate G2 + ++usb:v0951p1665* ++ ID_MODEL_FROM_DATABASE=Digital DataTraveler SE9 64GB ++ + usb:v0951p1689* + ID_MODEL_FROM_DATABASE=DataTraveler SE9 + +@@ -29993,6 +30467,9 @@ usb:v0957p0200* + usb:v0957p0202* + ID_MODEL_FROM_DATABASE=E-Video DC-350 Camera + ++usb:v0957p0407* ++ ID_MODEL_FROM_DATABASE=33220A Waveform Generator ++ + usb:v0957p0518* + ID_MODEL_FROM_DATABASE=82357B GPIB Interface + +@@ -30033,7 +30510,7 @@ usb:v095Dp0001* + ID_MODEL_FROM_DATABASE=Polycom ViaVideo + + usb:v0967* +- ID_VENDOR_FROM_DATABASE=Acer (??) ++ ID_VENDOR_FROM_DATABASE=Acer NeWeb Corp. + + usb:v0967p0204* + ID_MODEL_FROM_DATABASE=WarpLink 802.11b Adapter +@@ -30056,6 +30533,12 @@ usb:v096Ep0807* + usb:v0971* + ID_VENDOR_FROM_DATABASE=Gretag-Macbeth AG + ++usb:v0971p2000* ++ ID_MODEL_FROM_DATABASE=i1 Pro ++ ++usb:v0971p2001* ++ ID_MODEL_FROM_DATABASE=i1 Monitor ++ + usb:v0971p2003* + ID_MODEL_FROM_DATABASE=Eye-One display + +@@ -30063,7 +30546,7 @@ usb:v0971p2005* + ID_MODEL_FROM_DATABASE=Huey + + usb:v0971p2007* +- ID_MODEL_FROM_DATABASE=ColorMunki ++ ID_MODEL_FROM_DATABASE=ColorMunki Photo + + usb:v0973* + ID_VENDOR_FROM_DATABASE=Schlumberger +@@ -30182,6 +30665,9 @@ usb:v099Ap0638* + usb:v099Ap610C* + ID_MODEL_FROM_DATABASE=EL-610 Super Mini Electron luminescent Keyboard + ++usb:v099Ap713A* ++ ID_MODEL_FROM_DATABASE=WK-713 Multimedia Keyboard ++ + usb:v099Ap7160* + ID_MODEL_FROM_DATABASE=Hyper Slim Keyboard + +@@ -30375,7 +30861,10 @@ usb:v09D3* + ID_VENDOR_FROM_DATABASE=Com One + + usb:v09D3p0001* +- ID_MODEL_FROM_DATABASE=ISDN TA ++ ID_MODEL_FROM_DATABASE=ISDN TA / Light Rider 128K ++ ++usb:v09D3p000B* ++ ID_MODEL_FROM_DATABASE=Bluetooth Adapter class 1 [BlueLight] + + usb:v09D7* + ID_VENDOR_FROM_DATABASE=Novatel Wireless +@@ -30596,6 +31085,12 @@ usb:v0A07p00DA* + usb:v0A0B* + ID_VENDOR_FROM_DATABASE=Cybex Computer Products Co. + ++usb:v0A0D* ++ ID_VENDOR_FROM_DATABASE=Servergy, Inc ++ ++usb:v0A0Dp2514* ++ ID_MODEL_FROM_DATABASE=CTS-1000 Internal Hub ++ + usb:v0A11* + ID_VENDOR_FROM_DATABASE=Xentec, Inc. + +@@ -30887,6 +31382,9 @@ usb:v0A48p5024* + usb:v0A48p5025* + ID_MODEL_FROM_DATABASE=Mass Storage Device + ++usb:v0A4A* ++ ID_VENDOR_FROM_DATABASE=Ploytec GmbH ++ + usb:v0A4B* + ID_VENDOR_FROM_DATABASE=Fujitsu Media Devices, Ltd + +@@ -31217,6 +31715,9 @@ usb:v0A5CpBD11* + usb:v0A5CpBD13* + ID_MODEL_FROM_DATABASE=BCM4323 802.11abgn Wireless Adapter + ++usb:v0A5CpBD16* ++ ID_MODEL_FROM_DATABASE=BCM4319 802.11bgn Wireless Adapter ++ + usb:v0A5CpBD17* + ID_MODEL_FROM_DATABASE=BCM43236 802.11abgn Wireless Adapter + +@@ -31775,6 +32276,9 @@ usb:v0AC8pC33F* + usb:v0AC8pC429* + ID_MODEL_FROM_DATABASE=Lenovo ThinkCentre Web Camera + ++usb:v0AC8pC42D* ++ ID_MODEL_FROM_DATABASE=Lenovo IdeaCentre Web Camera ++ + usb:v0AC9* + ID_VENDOR_FROM_DATABASE=Micro Solutions, Inc. + +@@ -31823,6 +32327,9 @@ usb:v0ACDp0630* + usb:v0ACDp0810* + ID_MODEL_FROM_DATABASE=SecurePIN (IDPA-506100Y) PIN Pad + ++usb:v0ACDp2030* ++ ID_MODEL_FROM_DATABASE=ValueMag Magnetic Stripe Reader ++ + usb:v0ACE* + ID_VENDOR_FROM_DATABASE=ZyDAS + +@@ -32024,6 +32531,12 @@ usb:v0AF9p0010* + usb:v0AF9p0011* + ID_MODEL_FROM_DATABASE=Micro Innovations IC50C Webcam + ++usb:v0AFA* ++ ID_VENDOR_FROM_DATABASE=DMC Co., Ltd. ++ ++usb:v0AFAp07D2* ++ ID_MODEL_FROM_DATABASE=Controller Board for Projected Capacitive Touch Screen DUS3000 ++ + usb:v0AFC* + ID_VENDOR_FROM_DATABASE=Zaptronix Ltd + +@@ -32042,6 +32555,9 @@ usb:v0B00* + usb:v0B05* + ID_VENDOR_FROM_DATABASE=ASUSTek Computer, Inc. + ++usb:v0B05p0001* ++ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (CD-ROM mode) ++ + usb:v0B05p1101* + ID_MODEL_FROM_DATABASE=Mass Storage (UISDMC4S) + +@@ -32147,6 +32663,9 @@ usb:v0B05p1784* + usb:v0B05p1786* + ID_MODEL_FROM_DATABASE=USB-N10 802.11n Network Adapter [Realtek RTL8188SU] + ++usb:v0B05p1788* ++ ID_MODEL_FROM_DATABASE=BT-270 Bluetooth Adapter ++ + usb:v0B05p1791* + ID_MODEL_FROM_DATABASE=WL-167G v3 802.11n Adapter [Realtek RTL8188SU] + +@@ -32159,12 +32678,18 @@ usb:v0B05p179E* + usb:v0B05p179F* + ID_MODEL_FROM_DATABASE=Eee Note EA800 (tablet mode) + ++usb:v0B05p17A0* ++ ID_MODEL_FROM_DATABASE=Xonar U3 sound card ++ + usb:v0B05p17A1* + ID_MODEL_FROM_DATABASE=Eee Note EA800 (mass storage mode) + + usb:v0B05p17AB* + ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] + ++usb:v0B05p17C9* ++ ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] ++ + usb:v0B05p4C80* + ID_MODEL_FROM_DATABASE=Transformer Pad TF300TG + +@@ -32183,6 +32708,12 @@ usb:v0B05p4D01* + usb:v0B05p4DAF* + ID_MODEL_FROM_DATABASE=Transformer Pad Infinity TF700 (Fastboot) + ++usb:v0B05p5410* ++ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (MTP mode) ++ ++usb:v0B05p5412* ++ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) ++ + usb:v0B05p6101* + ID_MODEL_FROM_DATABASE=Cable Modem + +@@ -32228,9 +32759,15 @@ usb:v0B0E* + usb:v0B0Ep0420* + ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 + ++usb:v0B0Ep094D* ++ ID_MODEL_FROM_DATABASE=GN Netcom / Jabra REVO Wireless ++ + usb:v0B0Ep1022* + ID_MODEL_FROM_DATABASE=Jabra PRO 9450, Type 9400BS (DECT Headset) + ++usb:v0B0Ep2007* ++ ID_MODEL_FROM_DATABASE=GN 2000 Stereo Corded Headset ++ + usb:v0B0Ep620C* + ID_MODEL_FROM_DATABASE=Jabra BT620s + +@@ -32291,6 +32828,9 @@ usb:v0B33* + usb:v0B33p0020* + ID_MODEL_FROM_DATABASE=ShuttleXpress + ++usb:v0B33p0700* ++ ID_MODEL_FROM_DATABASE=RollerMouse Pro ++ + usb:v0B37* + ID_VENDOR_FROM_DATABASE=Hitachi ULSI Systems Co., Ltd + +@@ -32687,6 +33227,9 @@ usb:v0B95p1720* + usb:v0B95p1780* + ID_MODEL_FROM_DATABASE=AX88178 + ++usb:v0B95p1790* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet ++ + usb:v0B95p7720* + ID_MODEL_FROM_DATABASE=AX88772 + +@@ -32786,6 +33329,9 @@ usb:v0BAFp011B* + usb:v0BAFp0121* + ID_MODEL_FROM_DATABASE=USR5423 802.11bg Wireless Adapter [ZyDAS ZD1211B] + ++usb:v0BAFp0303* ++ ID_MODEL_FROM_DATABASE=USR5637 56K Faxmodem ++ + usb:v0BAFp6112* + ID_MODEL_FROM_DATABASE=FaxModem Model 5633 + +@@ -33332,6 +33878,9 @@ usb:v0BB4p0C01* + usb:v0BB4p0C02* + ID_MODEL_FROM_DATABASE=Dream / ADP1 / G1 / Magic / Tattoo (Debug) + ++usb:v0BB4p0C03* ++ ID_MODEL_FROM_DATABASE=Android Phone [Fairphone First Edition (FP1)] ++ + usb:v0BB4p0C13* + ID_MODEL_FROM_DATABASE=Diamond + +@@ -33371,6 +33920,12 @@ usb:v0BB4p0CA2* + usb:v0BB4p0CA5* + ID_MODEL_FROM_DATABASE=Android Phone [Evo Shift 4G] + ++usb:v0BB4p0CAE* ++ ID_MODEL_FROM_DATABASE=T-Mobile MyTouch 4G Slide [Doubleshot] ++ ++usb:v0BB4p0DEA* ++ ID_MODEL_FROM_DATABASE=M7_UL [HTC One] ++ + usb:v0BB4p0FF8* + ID_MODEL_FROM_DATABASE=Desire HD (Tethering Mode) + +@@ -33443,18 +33998,33 @@ usb:v0BC2p2320* + usb:v0BC2p3008* + ID_MODEL_FROM_DATABASE=FreeAgent Desk 1TB + ++usb:v0BC2p3101* ++ ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB ++ ++usb:v0BC2p3312* ++ ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] ++ + usb:v0BC2p3320* + ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] + + usb:v0BC2p3332* + ID_MODEL_FROM_DATABASE=Expansion + ++usb:v0BC2p5020* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex ++ + usb:v0BC2p5021* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 2.0 + ++usb:v0BC2p5030* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Upgrade Cable STAE104 ++ + usb:v0BC2p5031* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 3.0 + ++usb:v0BC2p5070* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk ++ + usb:v0BC2p50A1* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk + +@@ -33476,6 +34046,9 @@ usb:v0BC2pA0A1* + usb:v0BC2pA0A4* + ID_MODEL_FROM_DATABASE=Backup Plus Desktop Drive + ++usb:v0BC2pAB00* ++ ID_MODEL_FROM_DATABASE=Slim Portable Drive ++ + usb:v0BC3* + ID_VENDOR_FROM_DATABASE=IPWireless, Inc. + +@@ -33650,6 +34223,12 @@ usb:v0BDAp0184* + usb:v0BDAp0186* + ID_MODEL_FROM_DATABASE=Card Reader + ++usb:v0BDAp0301* ++ ID_MODEL_FROM_DATABASE=multicard reader ++ ++usb:v0BDAp1724* ++ ID_MODEL_FROM_DATABASE=RTL8723AU 802.11n WLAN Adapter ++ + usb:v0BDAp2831* + ID_MODEL_FROM_DATABASE=RTL2831U DVB-T + +@@ -33707,6 +34286,9 @@ usb:v0BDAp8198* + usb:v0BDAp8199* + ID_MODEL_FROM_DATABASE=RTL8187SU 802.11g WLAN Adapter + ++usb:v0BDAp8812* ++ ID_MODEL_FROM_DATABASE=RTL8812AU 802.11a/b/g/n/ac WLAN Adapter ++ + usb:v0BDB* + ID_VENDOR_FROM_DATABASE=Ericsson Business Mobile Networks BV + +@@ -34038,7 +34620,7 @@ usb:v0C24p0019* + ID_MODEL_FROM_DATABASE=Bluetooth Device + + usb:v0C24p0021* +- ID_MODEL_FROM_DATABASE=Bluetooth Device ++ ID_MODEL_FROM_DATABASE=Bluetooth Device (V2.1+EDR) + + usb:v0C24p0C24* + ID_MODEL_FROM_DATABASE=Bluetooth Device(SAMPLE) +@@ -34142,6 +34724,9 @@ usb:v0C45* + usb:v0C45p0011* + ID_MODEL_FROM_DATABASE=EBUDDY + ++usb:v0C45p0520* ++ ID_MODEL_FROM_DATABASE=MaxTrack Wireless Mouse ++ + usb:v0C45p1018* + ID_MODEL_FROM_DATABASE=Compact Flash storage memory card reader + +@@ -34496,9 +35081,15 @@ usb:v0C45p62C0* + usb:v0C45p62E0* + ID_MODEL_FROM_DATABASE=MSI Starcam Racer + ++usb:v0C45p6300* ++ ID_MODEL_FROM_DATABASE=PC Microscope camera ++ + usb:v0C45p6310* + ID_MODEL_FROM_DATABASE=Sonix USB 2.0 Camera + ++usb:v0C45p6340* ++ ID_MODEL_FROM_DATABASE=Camera ++ + usb:v0C45p6341* + ID_MODEL_FROM_DATABASE=Defender G-Lens 2577 HD720p Camera + +@@ -34526,6 +35117,12 @@ usb:v0C45p6419* + usb:v0C45p641D* + ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam + ++usb:v0C45p643F* ++ ID_MODEL_FROM_DATABASE=Dell Integrated HD Webcam ++ ++usb:v0C45p644D* ++ ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam ++ + usb:v0C45p6480* + ID_MODEL_FROM_DATABASE=Sonix 1.3 MP Laptop Integrated Webcam + +@@ -34535,6 +35132,9 @@ usb:v0C45p648B* + usb:v0C45p64BD* + ID_MODEL_FROM_DATABASE=Sony Visual Communication Camera + ++usb:v0C45p7401* ++ ID_MODEL_FROM_DATABASE=TEMPer Temperature Sensor ++ + usb:v0C45p7402* + ID_MODEL_FROM_DATABASE=TEMPerHUM Temperature & Humidity Sensor + +@@ -35390,6 +35990,9 @@ usb:v0CF3p3000* + usb:v0CF3p3002* + ID_MODEL_FROM_DATABASE=AR3011 Bluetooth + ++usb:v0CF3p3004* ++ ID_MODEL_FROM_DATABASE=AR3012 Bluetooth 4.0 ++ + usb:v0CF3p3005* + ID_MODEL_FROM_DATABASE=AR3011 Bluetooth + +@@ -35564,6 +36167,15 @@ usb:v0D35* + usb:v0D3A* + ID_VENDOR_FROM_DATABASE=Posiflex Technologies, Inc. + ++usb:v0D3Ap0206* ++ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer ++ ++usb:v0D3Ap0207* ++ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer ++ ++usb:v0D3Ap0500* ++ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader ++ + usb:v0D3C* + ID_VENDOR_FROM_DATABASE=Sri Cable Technology, Ltd + +@@ -35573,6 +36185,9 @@ usb:v0D3D* + usb:v0D3Dp0001* + ID_MODEL_FROM_DATABASE=HID Keyboard + ++usb:v0D3Dp0040* ++ ID_MODEL_FROM_DATABASE=PS/2 Adapter ++ + usb:v0D3E* + ID_VENDOR_FROM_DATABASE=Fitcom, inc. + +@@ -35651,6 +36266,9 @@ usb:v0D49p7010* + usb:v0D49p7100* + ID_MODEL_FROM_DATABASE=OneTouch II 300GB External Hard Disk + ++usb:v0D49p7310* ++ ID_MODEL_FROM_DATABASE=OneTouch 4 ++ + usb:v0D49p7410* + ID_MODEL_FROM_DATABASE=Mobile Hard Disk Drive (1TB) + +@@ -35858,6 +36476,9 @@ usb:v0D78* + usb:v0D7A* + ID_VENDOR_FROM_DATABASE=MARX Datentechnik GmbH + ++usb:v0D7Ap0001* ++ ID_MODEL_FROM_DATABASE=CrypToken ++ + usb:v0D7B* + ID_VENDOR_FROM_DATABASE=Wellco Technology Co., Ltd + +@@ -36404,6 +37025,12 @@ usb:v0DB7* + usb:v0DB7p0002* + ID_MODEL_FROM_DATABASE=Goldpfeil P-LAN + ++usb:v0DBA* ++ ID_VENDOR_FROM_DATABASE=Digidesign ++ ++usb:v0DBAp3000* ++ ID_MODEL_FROM_DATABASE=Mbox 2 ++ + usb:v0DBC* + ID_VENDOR_FROM_DATABASE=A&D Medical + +@@ -36776,6 +37403,9 @@ usb:v0DF6p0060* + usb:v0DF6p0062* + ID_MODEL_FROM_DATABASE=WLA-5000 802.11abgn [Ralink RT3572] + ++usb:v0DF6p0072* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Sitecom] ++ + usb:v0DF6p061C* + ID_MODEL_FROM_DATABASE=LN-028 Network USB 2.0 Adapter + +@@ -37253,6 +37883,9 @@ usb:v0E79p14AD* + usb:v0E79p150E* + ID_MODEL_FROM_DATABASE=80 G9 + ++usb:v0E79p3001* ++ ID_MODEL_FROM_DATABASE=40 Titanium ++ + usb:v0E7B* + ID_VENDOR_FROM_DATABASE=On-Tech Industry Co., Ltd + +@@ -37292,9 +37925,15 @@ usb:v0E8Dp1806* + usb:v0E8Dp1836* + ID_MODEL_FROM_DATABASE=Samsung SE-S084 Super WriteMaster Slim External DVD writer + ++usb:v0E8Dp2000* ++ ID_MODEL_FROM_DATABASE=MT65xx Preloader ++ + usb:v0E8Dp3329* + ID_MODEL_FROM_DATABASE=Qstarz BT-Q1000XT + ++usb:v0E8Dp763E* ++ ID_MODEL_FROM_DATABASE=MT7630e Bluetooth Adapter ++ + usb:v0E8F* + ID_VENDOR_FROM_DATABASE=GreenAsia Inc. + +@@ -37302,7 +37941,7 @@ usb:v0E8Fp0003* + ID_MODEL_FROM_DATABASE=MaxFire Blaze2 + + usb:v0E8Fp0012* +- ID_MODEL_FROM_DATABASE=USB Wireless 2.4GHz Gamepad ++ ID_MODEL_FROM_DATABASE=Joystick/Gamepad + + usb:v0E8Fp0016* + ID_MODEL_FROM_DATABASE=4 port USB 1.1 hub UH-174 +@@ -37436,9 +38075,18 @@ usb:v0EB7* + usb:v0EB8* + ID_VENDOR_FROM_DATABASE=Mettler Toledo + ++usb:v0EB8p2200* ++ ID_MODEL_FROM_DATABASE=Ariva Scale ++ + usb:v0EB8pF000* + ID_MODEL_FROM_DATABASE=PS60 Scale + ++usb:v0EBB* ++ ID_VENDOR_FROM_DATABASE=Thermo Fisher Scientific ++ ++usb:v0EBBp0002* ++ ID_MODEL_FROM_DATABASE=FT-IR Spectrometer ++ + usb:v0EBE* + ID_VENDOR_FROM_DATABASE=VWeb Corp. + +@@ -37559,6 +38207,12 @@ usb:v0EEFp0001* + usb:v0EEFp0002* + ID_MODEL_FROM_DATABASE=Touchscreen Controller(Professional) + ++usb:v0EEFp7200* ++ ID_MODEL_FROM_DATABASE=Touchscreen Controller ++ ++usb:v0EEFpA802* ++ ID_MODEL_FROM_DATABASE=eGalaxTouch EXC7920 ++ + usb:v0EF0* + ID_VENDOR_FROM_DATABASE=Hitachi Cable, Ltd + +@@ -37670,6 +38324,12 @@ usb:v0F12* + usb:v0F13* + ID_VENDOR_FROM_DATABASE=Acetek Technology Co., Ltd + ++usb:v0F14* ++ ID_VENDOR_FROM_DATABASE=Ingenico ++ ++usb:v0F14p0012* ++ ID_MODEL_FROM_DATABASE=Vital'Act 3S ++ + usb:v0F18* + ID_VENDOR_FROM_DATABASE=Finger Lakes Instrumentation + +@@ -37754,6 +38414,12 @@ usb:v0F37* + usb:v0F38* + ID_VENDOR_FROM_DATABASE=Nien-Yi Industrial Corp. + ++usb:v0F39* ++ ID_VENDOR_FROM_DATABASE=TG3 Electronics ++ ++usb:v0F39p0876* ++ ID_MODEL_FROM_DATABASE=Keyboard [87 Francium Pro] ++ + usb:v0F3D* + ID_VENDOR_FROM_DATABASE=Airprime, Incorporated + +@@ -37841,6 +38507,9 @@ usb:v0F63* + usb:v0F63p0010* + ID_MODEL_FROM_DATABASE=Leapster Explorer + ++usb:v0F63p0022* ++ ID_MODEL_FROM_DATABASE=Leap Reader ++ + usb:v0F63p0500* + ID_MODEL_FROM_DATABASE=Fly Fusion + +@@ -37928,6 +38597,9 @@ usb:v0F6Ep0404* + usb:v0F73* + ID_VENDOR_FROM_DATABASE=DFI + ++usb:v0F78* ++ ID_VENDOR_FROM_DATABASE=Guntermann & Drunck GmbH ++ + usb:v0F7C* + ID_VENDOR_FROM_DATABASE=DQ Technology, Inc. + +@@ -38064,7 +38736,7 @@ usb:v0FCAp8001* + ID_MODEL_FROM_DATABASE=Blackberry Handheld + + usb:v0FCAp8004* +- ID_MODEL_FROM_DATABASE=Blackberry Handheld ++ ID_MODEL_FROM_DATABASE=Blackberry + + usb:v0FCAp8007* + ID_MODEL_FROM_DATABASE=Blackberry Handheld +@@ -38147,6 +38819,12 @@ usb:v0FCEp3138* + usb:v0FCEp3149* + ID_MODEL_FROM_DATABASE=Xperia X8 + ++usb:v0FCEp514F* ++ ID_MODEL_FROM_DATABASE=Xperia arc S [Adb-Enable Mode] ++ ++usb:v0FCEp5169* ++ ID_MODEL_FROM_DATABASE=Xperia S [Adb-Enable Mode] ++ + usb:v0FCEp5177* + ID_MODEL_FROM_DATABASE=Xperia Ion [Debug Mode] + +@@ -38309,6 +38987,9 @@ usb:v0FCEpE166* + usb:v0FCEpE167* + ID_MODEL_FROM_DATABASE=XPERIA mini + ++usb:v0FCEpF0FA* ++ ID_MODEL_FROM_DATABASE=Liveview micro display MN800 in DFU mode ++ + usb:v0FCF* + ID_VENDOR_FROM_DATABASE=Dynastream Innovations, Inc. + +@@ -38316,13 +38997,16 @@ usb:v0FCFp1003* + ID_MODEL_FROM_DATABASE=ANT Development Board + + usb:v0FCFp1004* +- ID_MODEL_FROM_DATABASE=ANT2USB ++ ID_MODEL_FROM_DATABASE=ANTUSB Stick + + usb:v0FCFp1006* + ID_MODEL_FROM_DATABASE=ANT Development Board + + usb:v0FCFp1008* +- ID_MODEL_FROM_DATABASE=Mini stick Suunto ++ ID_MODEL_FROM_DATABASE=ANTUSB2 Stick ++ ++usb:v0FCFp1009* ++ ID_MODEL_FROM_DATABASE=ANTUSB-m Stick + + usb:v0FD0* + ID_VENDOR_FROM_DATABASE=Tulip Computers B.V. +@@ -38378,6 +39062,12 @@ usb:v0FDAp0100* + usb:v0FDC* + ID_VENDOR_FROM_DATABASE=Micro Plus + ++usb:v0FDE* ++ ID_VENDOR_FROM_DATABASE=Oregon Scientific ++ ++usb:v0FDEpCA01* ++ ID_MODEL_FROM_DATABASE=WMRS200 weather station ++ + usb:v0FE0* + ID_VENDOR_FROM_DATABASE=Osterhout Design Group + +@@ -38471,6 +39161,9 @@ usb:v0FFF* + usb:v1000* + ID_VENDOR_FROM_DATABASE=Speed Tech Corp. + ++usb:v1000p153B* ++ ID_MODEL_FROM_DATABASE=TerraTec Electronic GmbH ++ + usb:v1001* + ID_VENDOR_FROM_DATABASE=Ritronics Components (S) Pte., Ltd + +@@ -38504,6 +39197,9 @@ usb:v1004p618E* + usb:v1004p618F* + ID_MODEL_FROM_DATABASE=Ally/Optimus One + ++usb:v1004p61C5* ++ ID_MODEL_FROM_DATABASE=P880 / Charge only ++ + usb:v1004p61C6* + ID_MODEL_FROM_DATABASE=Vortex (msc) + +@@ -38514,7 +39210,7 @@ usb:v1004p61F1* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [LG Software mode] + + usb:v1004p61F9* +- ID_MODEL_FROM_DATABASE=V909 G-Slate ++ ID_MODEL_FROM_DATABASE=Optimus (Various Models) MTP Mode + + usb:v1004p61FC* + ID_MODEL_FROM_DATABASE=Optimus 3 +@@ -38528,9 +39224,15 @@ usb:v1004p6300* + usb:v1004p631C* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [MTP mode] + ++usb:v1004p631D* ++ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Camera/PTP Mode) ++ + usb:v1004p631E* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [Camera/PTP mode] + ++usb:v1004p631F* ++ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Charge Mode) ++ + usb:v1004p6356* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [Virtual CD mode] + +@@ -38540,6 +39242,9 @@ usb:v1004p6800* + usb:v1004p7000* + ID_MODEL_FROM_DATABASE=LG LDP-7024D(LD)USB + ++usb:v1004p91C8* ++ ID_MODEL_FROM_DATABASE=P880 / USB tethering ++ + usb:v1004pA400* + ID_MODEL_FROM_DATABASE=Renoir (KC910) + +@@ -38742,13 +39447,13 @@ usb:v1033p0068* + ID_MODEL_FROM_DATABASE=3,5'' HDD case MD-231 + + usb:v1038* +- ID_VENDOR_FROM_DATABASE=Ideazon, Inc. ++ ID_VENDOR_FROM_DATABASE=SteelSeries ApS + + usb:v1038p0100* +- ID_MODEL_FROM_DATABASE=Zboard ++ ID_MODEL_FROM_DATABASE=Ideazon Zboard + + usb:v1038p1361* +- ID_MODEL_FROM_DATABASE=Sensei ++ ID_MODEL_FROM_DATABASE=Ideazon Sensei + + usb:v1039* + ID_VENDOR_FROM_DATABASE=devolo AG +@@ -38946,28 +39651,37 @@ usb:v1058p0704* + ID_MODEL_FROM_DATABASE=Passport External HDD + + usb:v1058p070A* +- ID_MODEL_FROM_DATABASE=My Passport Essential SE ++ ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) + + usb:v1058p071A* + ID_MODEL_FROM_DATABASE=My Passport + + usb:v1058p0730* +- ID_MODEL_FROM_DATABASE=My Passport ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) + + usb:v1058p0740* + ID_MODEL_FROM_DATABASE=My Passport + ++usb:v1058p0741* ++ ID_MODEL_FROM_DATABASE=My Passport Ultra ++ + usb:v1058p0742* + ID_MODEL_FROM_DATABASE=My Passport Essential SE + + usb:v1058p0748* +- ID_MODEL_FROM_DATABASE=My Passport 1TB USB 3.0 ++ ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) ++ ++usb:v1058p0810* ++ ID_MODEL_FROM_DATABASE=My Passport Ultra + + usb:v1058p0900* + ID_MODEL_FROM_DATABASE=MyBook Essential External HDD + + usb:v1058p0901* +- ID_MODEL_FROM_DATABASE=MyBook External HDD ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) ++ ++usb:v1058p0902* ++ ID_MODEL_FROM_DATABASE=My Book Pro Edition + + usb:v1058p0903* + ID_MODEL_FROM_DATABASE=My Book Premium Edition +@@ -38976,20 +39690,32 @@ usb:v1058p0910* + ID_MODEL_FROM_DATABASE=MyBook Essential External HDD + + usb:v1058p1001* +- ID_MODEL_FROM_DATABASE=External Hard Disk [Elements] ++ ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) + + usb:v1058p1003* + ID_MODEL_FROM_DATABASE=Elements 1000 GB + + usb:v1058p1010* +- ID_MODEL_FROM_DATABASE=Elements External HDD ++ ID_MODEL_FROM_DATABASE=Elements Portable (WDBAAR) + + usb:v1058p1021* +- ID_MODEL_FROM_DATABASE=Elements 2TB ++ ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) + + usb:v1058p1023* + ID_MODEL_FROM_DATABASE=Elements SE + ++usb:v1058p1048* ++ ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) ++ ++usb:v1058p10A2* ++ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBPCK) ++ ++usb:v1058p10A8* ++ ID_MODEL_FROM_DATABASE=Elements Portable (WDBUZG) ++ ++usb:v1058p1100* ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition 2.0 (WDH1U) ++ + usb:v1058p1103* + ID_MODEL_FROM_DATABASE=My Book Studio + +@@ -39272,6 +39998,9 @@ usb:v106Fp0009* + usb:v106Fp000A* + ID_MODEL_FROM_DATABASE=CR10x Coin Recycler + ++usb:v106Fp000C* ++ ID_MODEL_FROM_DATABASE=Xchange ++ + usb:v1076* + ID_VENDOR_FROM_DATABASE=GCT Semiconductor, Inc. + +@@ -39335,6 +40064,12 @@ usb:v1099* + usb:v109A* + ID_VENDOR_FROM_DATABASE=DATASOFT Systems GmbH + ++usb:v109B* ++ ID_VENDOR_FROM_DATABASE=Hisense ++ ++usb:v109Bp9118* ++ ID_MODEL_FROM_DATABASE=Medion P4013 Mobile ++ + usb:v109F* + ID_VENDOR_FROM_DATABASE=eSOL Co., Ltd + +@@ -39458,6 +40193,15 @@ usb:v10BF* + usb:v10BFp0001* + ID_MODEL_FROM_DATABASE=SmartHome PowerLinc + ++usb:v10C3* ++ ID_VENDOR_FROM_DATABASE=Universal Laser Systems, Inc. ++ ++usb:v10C3p00A4* ++ ID_MODEL_FROM_DATABASE=ULS PLS Series Laser Engraver Firmware Loader ++ ++usb:v10C3p00A5* ++ ID_MODEL_FROM_DATABASE=ULS Print Support ++ + usb:v10C4* + ID_VENDOR_FROM_DATABASE=Cygnal Integrated Products, Inc. + +@@ -39509,6 +40253,12 @@ usb:v10C4p8461* + usb:v10C4p8477* + ID_MODEL_FROM_DATABASE=Balluff RFID Reader + ++usb:v10C4p8496* ++ ID_MODEL_FROM_DATABASE=SiLabs Cypress FW downloader ++ ++usb:v10C4p8497* ++ ID_MODEL_FROM_DATABASE=SiLabs Cypress EVB ++ + usb:v10C4p8605* + ID_MODEL_FROM_DATABASE=dilitronics ESoLUX solar lighting controller + +@@ -39527,6 +40277,9 @@ usb:v10C4p8863* + usb:v10C4p8897* + ID_MODEL_FROM_DATABASE=C8051F38x HDMI Splitter [UHBX] + ++usb:v10C4p8918* ++ ID_MODEL_FROM_DATABASE=C8051F38x HDMI Audio Extractor [VSA-HA-DP] ++ + usb:v10C4pEA60* + ID_MODEL_FROM_DATABASE=CP210x UART Bridge / myAVR mySmartUSB light + +@@ -39908,6 +40661,9 @@ usb:v1141* + usb:v1142* + ID_VENDOR_FROM_DATABASE=CyberScan Technologies, Inc. + ++usb:v1142p0709* ++ ID_MODEL_FROM_DATABASE=Cyberview High Speed Scanner ++ + usb:v1145* + ID_VENDOR_FROM_DATABASE=Japan Radio Company + +@@ -39938,6 +40694,9 @@ usb:v114D* + usb:v114F* + ID_VENDOR_FROM_DATABASE=Wavecom + ++usb:v114Fp1234* ++ ID_MODEL_FROM_DATABASE=Fastrack Xtend FXT001 Modem ++ + usb:v115B* + ID_VENDOR_FROM_DATABASE=Salix Technology Co., Ltd. + +@@ -40128,7 +40887,7 @@ usb:v1199p683A* + ID_MODEL_FROM_DATABASE=MC8785 Device + + usb:v1199p683C* +- ID_MODEL_FROM_DATABASE=MC8790 Device ++ ID_MODEL_FROM_DATABASE=Mobile Broadband 3G/UMTS (MC8790 Device) + + usb:v1199p6850* + ID_MODEL_FROM_DATABASE=AirCard 880 Device +@@ -40196,6 +40955,12 @@ usb:v1199p9009* + usb:v1199p900A* + ID_MODEL_FROM_DATABASE=Gobi 2000 Wireless Modem + ++usb:v1199p9055* ++ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (NAT mode) ++ ++usb:v1199p9057* ++ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (IP passthrough mode) ++ + usb:v119A* + ID_VENDOR_FROM_DATABASE=ZHAN QI Technology Co., Ltd + +@@ -40238,12 +41003,30 @@ usb:v11ACp6565* + usb:v11B0* + ID_VENDOR_FROM_DATABASE=ATECH FLASH TECHNOLOGY + ++usb:v11B0p6208* ++ ID_MODEL_FROM_DATABASE=PRO-28U ++ ++usb:v11BE* ++ ID_VENDOR_FROM_DATABASE=R&D International NV ++ ++usb:v11BEpF0A0* ++ ID_MODEL_FROM_DATABASE=Martin Maxxyz DMX ++ + usb:v11C5* + ID_VENDOR_FROM_DATABASE=Inmax + + usb:v11C5p0521* + ID_MODEL_FROM_DATABASE=IMT-0521 Smartcard Reader + ++usb:v11CA* ++ ID_VENDOR_FROM_DATABASE=VeriFone Inc ++ ++usb:v11CAp0207* ++ ID_MODEL_FROM_DATABASE=PIN Pad VX 810 ++ ++usb:v11CAp0220* ++ ID_MODEL_FROM_DATABASE=PIN Pad VX 805 ++ + usb:v11DB* + ID_VENDOR_FROM_DATABASE=Topfield Co., Ltd. + +@@ -40274,6 +41057,9 @@ usb:v11F5p0005* + usb:v11F5p0008* + ID_MODEL_FROM_DATABASE=UMTS/HSDPA Data Card + ++usb:v11F5p0101* ++ ID_MODEL_FROM_DATABASE=RCU Connect ++ + usb:v11F6* + ID_VENDOR_FROM_DATABASE=Prolific + +@@ -40284,7 +41070,7 @@ usb:v11F7* + ID_VENDOR_FROM_DATABASE=Alcatel (?) + + usb:v11F7p02DF* +- ID_MODEL_FROM_DATABASE=TD10 Mobile phone USB cable ++ ID_MODEL_FROM_DATABASE=Serial cable (v2) for TD-10 Mobile Phone + + usb:v1203* + ID_VENDOR_FROM_DATABASE=TSC Auto ID Technology Co., Ltd +@@ -40352,6 +41138,9 @@ usb:v1228p0012* + usb:v1228p0015* + ID_MODEL_FROM_DATABASE=TPaq21/MPaq21 Datalogger + ++usb:v1228p584C* ++ ID_MODEL_FROM_DATABASE=XL2 Logger ++ + usb:v1230* + ID_VENDOR_FROM_DATABASE=Chipidea-Microelectronica, S.A. + +@@ -40377,20 +41166,110 @@ usb:v1235* + ID_VENDOR_FROM_DATABASE=Novation EMS + + usb:v1235p0001* +- ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation ++ ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition + + usb:v1235p0002* + ID_MODEL_FROM_DATABASE=Speedio + + usb:v1235p0003* +- ID_MODEL_FROM_DATABASE=ReMOTE ZeRO SL ++ ID_MODEL_FROM_DATABASE=RemoteSL + ZeroSL ++ ++usb:v1235p0004* ++ ID_MODEL_FROM_DATABASE=ReMOTE LE ++ ++usb:v1235p0005* ++ ID_MODEL_FROM_DATABASE=XIOSynth [First Edition] ++ ++usb:v1235p0006* ++ ID_MODEL_FROM_DATABASE=XStation ++ ++usb:v1235p0007* ++ ID_MODEL_FROM_DATABASE=XIOSynth ++ ++usb:v1235p0008* ++ ID_MODEL_FROM_DATABASE=ReMOTE SL Compact ++ ++usb:v1235p0009* ++ ID_MODEL_FROM_DATABASE=nIO ++ ++usb:v1235p000A* ++ ID_MODEL_FROM_DATABASE=Nocturn ++ ++usb:v1235p000B* ++ ID_MODEL_FROM_DATABASE=ReMOTE SL MkII ++ ++usb:v1235p000C* ++ ID_MODEL_FROM_DATABASE=ZeRO MkII ++ ++usb:v1235p000E* ++ ID_MODEL_FROM_DATABASE=Launchpad ++ ++usb:v1235p0010* ++ ID_MODEL_FROM_DATABASE=Saffire 6 ++ ++usb:v1235p0011* ++ ID_MODEL_FROM_DATABASE=Ultranova ++ ++usb:v1235p0012* ++ ID_MODEL_FROM_DATABASE=Nocturn Keyboard ++ ++usb:v1235p0013* ++ ID_MODEL_FROM_DATABASE=VRM Box ++ ++usb:v1235p0014* ++ ID_MODEL_FROM_DATABASE=VRM Box Audio Class (2-out) ++ ++usb:v1235p0015* ++ ID_MODEL_FROM_DATABASE=Dicer ++ ++usb:v1235p0016* ++ ID_MODEL_FROM_DATABASE=Ultranova ++ ++usb:v1235p0018* ++ ID_MODEL_FROM_DATABASE=Twitch ++ ++usb:v1235p0019* ++ ID_MODEL_FROM_DATABASE=Impulse 25 ++ ++usb:v1235p001A* ++ ID_MODEL_FROM_DATABASE=Impulse 49 ++ ++usb:v1235p001B* ++ ID_MODEL_FROM_DATABASE=Impulse 61 + + usb:v1235p4661* + ID_MODEL_FROM_DATABASE=ReMOTE25 + ++usb:v1235p8000* ++ ID_MODEL_FROM_DATABASE=Scarlett 18i6 ++ ++usb:v1235p8002* ++ ID_MODEL_FROM_DATABASE=Scarlett 8i6 ++ + usb:v1235p8006* + ID_MODEL_FROM_DATABASE=Focusrite Scarlett 2i2 + ++usb:v1235p8008* ++ ID_MODEL_FROM_DATABASE=Saffire 6 ++ ++usb:v1235p800A* ++ ID_MODEL_FROM_DATABASE=Scarlett 2i4 ++ ++usb:v1235p800C* ++ ID_MODEL_FROM_DATABASE=Scarlett 18i20 ++ ++usb:v1235p800E* ++ ID_MODEL_FROM_DATABASE=iTrack Solo ++ ++usb:v1235p8010* ++ ID_MODEL_FROM_DATABASE=Forte ++ ++usb:v1235p8012* ++ ID_MODEL_FROM_DATABASE=Scarlett 6i6 ++ ++usb:v1235p8014* ++ ID_MODEL_FROM_DATABASE=Scarlett 18i8 ++ + usb:v1241* + ID_VENDOR_FROM_DATABASE=Belkin + +@@ -40410,7 +41289,7 @@ usb:v1241p1166* + ID_MODEL_FROM_DATABASE=MI-2150 Trust Mouse + + usb:v1241p1177* +- ID_MODEL_FROM_DATABASE=F8E842-DL Mouse ++ ID_MODEL_FROM_DATABASE=Mouse [HT82M21A] + + usb:v1241p1503* + ID_MODEL_FROM_DATABASE=Keyboard +@@ -40463,6 +41342,9 @@ usb:v125Fp312A* + usb:v125Fp312B* + ID_MODEL_FROM_DATABASE=Superior S102 Pro + ++usb:v125FpA22A* ++ ID_MODEL_FROM_DATABASE=DashDrive Elite HE720 500GB ++ + usb:v125FpA91A* + ID_MODEL_FROM_DATABASE=Portable HDD CH91 + +@@ -40478,6 +41360,9 @@ usb:v125FpC93A* + usb:v125FpC96A* + ID_MODEL_FROM_DATABASE=C906 Flash Drive + ++usb:v125FpCB10* ++ ID_MODEL_FROM_DATABASE=Dash Drive UV100 ++ + usb:v1260* + ID_VENDOR_FROM_DATABASE=Standard Microsystems Corp. + +@@ -40637,6 +41522,9 @@ usb:v1283p0150* + usb:v1286* + ID_VENDOR_FROM_DATABASE=Marvell Semiconductor, Inc. + ++usb:v1286p00BC* ++ ID_MODEL_FROM_DATABASE=Marvell JTAG Probe ++ + usb:v1286p1FAB* + ID_MODEL_FROM_DATABASE=88W8338 [Libertas] 802.11g + +@@ -40733,6 +41621,12 @@ usb:v12C4p0006* + usb:v12C4p0008* + ID_MODEL_FROM_DATABASE=Teleprompter Foot Control (v1) + ++usb:v12CF* ++ ID_VENDOR_FROM_DATABASE=DEXIN ++ ++usb:v12CFp0170* ++ ID_MODEL_FROM_DATABASE=Tt eSPORTS BLACK Gaming mouse ++ + usb:v12D1* + ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd. + +@@ -40802,9 +41696,15 @@ usb:v12D1p14CF* + usb:v12D1p14D1* + ID_MODEL_FROM_DATABASE=K3770 3G Modem (Mass Storage Mode) + ++usb:v12D1p14DB* ++ ID_MODEL_FROM_DATABASE=E353/E3131 ++ + usb:v12D1p14F1* + ID_MODEL_FROM_DATABASE=Gobi 3000 HSPA+ Modem + ++usb:v12D1p14FE* ++ ID_MODEL_FROM_DATABASE=Modem (Mass Storage Mode) ++ + usb:v12D1p1501* + ID_MODEL_FROM_DATABASE=Pulse + +@@ -40826,6 +41726,9 @@ usb:v12D1p1521* + usb:v12D1p155A* + ID_MODEL_FROM_DATABASE=R205 Mobile WiFi (CD-ROM mode) + ++usb:v12D1p1575* ++ ID_MODEL_FROM_DATABASE=K5150 LTE modem ++ + usb:v12D1p1805* + ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone + +@@ -41376,7 +42279,7 @@ usb:v13BA* + ID_VENDOR_FROM_DATABASE=PCPlay + + usb:v13BAp0001* +- ID_MODEL_FROM_DATABASE=König Electronic CMP-KEYPAD12 Numeric Keypad ++ ID_MODEL_FROM_DATABASE=Konig Electronic CMP-KEYPAD12 Numeric Keypad + + usb:v13BAp0017* + ID_MODEL_FROM_DATABASE=PS/2 Keyboard+Mouse Adapter +@@ -44096,6 +44999,9 @@ usb:v1740p9801* + usb:v1743* + ID_VENDOR_FROM_DATABASE=General Atomics + ++usb:v1748* ++ ID_VENDOR_FROM_DATABASE=MQP Electronics ++ + usb:v174C* + ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. + +@@ -46569,7 +47475,7 @@ usb:v1C7B* + ID_VENDOR_FROM_DATABASE=LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD. + + usb:v1C83* +- ID_VENDOR_FROM_DATABASE=Schomäcker GmbH ++ ID_VENDOR_FROM_DATABASE=Schomaecker GmbH + + usb:v1C83p0001* + ID_MODEL_FROM_DATABASE=RS150 V2 +@@ -47678,6 +48584,12 @@ usb:v2047* + usb:v2047p0200* + ID_MODEL_FROM_DATABASE=MSP430 USB HID Bootstrap Loader + ++usb:v2047p0855* ++ ID_MODEL_FROM_DATABASE=Invensense Embedded MotionApp HID Sensor ++ ++usb:v2047p0964* ++ ID_MODEL_FROM_DATABASE=Inventio Software MSP430 ++ + usb:v2080* + ID_VENDOR_FROM_DATABASE=Barnes & Noble + +-- +1.7.9.2 + diff --git a/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch b/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch new file mode 100644 index 00000000..c19bfcee --- /dev/null +++ b/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch @@ -0,0 +1,45 @@ +From 94036de887ad5b0dc805abe38b5c1c58b57d9465 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Tue, 11 Mar 2014 17:49:00 +0200 +Subject: [PATCH] logind: Do not fail display count if a device has no parent + +udev_device_get_parent() may return NULL when the device doesn't have a +parent, as is the case with (for example) /sys/devices/virtual/drm/ttm. + +Also, log an actual error message instead of "-12 displays connected". +--- + src/login/logind-action.c | 4 +++- + src/login/logind-core.c | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index ae7b350..1928f43 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -84,7 +84,9 @@ int manager_handle_action( + * treat like this under the assumption that there is + * no modern drm driver available. */ + n = manager_count_displays(m); +- if (n != 1) { ++ if (n < 0) ++ log_warning("Display counting failed: %s", strerror(-n)); ++ else if (n != 1) { + log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } +diff --git src/login/logind-core.c src/login/logind-core.c +index ca34d37..053d2ed 100644 +--- src/login/logind-core.c ++++ src/login/logind-core.c +@@ -520,7 +520,7 @@ int manager_count_displays(Manager *m) { + + p = udev_device_get_parent(d); + if (!p) +- return -ENOMEM; ++ continue; + + /* If the parent shares the same subsystem as the + * device we are looking at then it is a connector, +-- +1.7.9.2 + diff --git a/0004-machined-make-sure-GetMachineAddresses-is-available-.patch b/0004-machined-make-sure-GetMachineAddresses-is-available-.patch new file mode 100644 index 00000000..20b625ba --- /dev/null +++ b/0004-machined-make-sure-GetMachineAddresses-is-available-.patch @@ -0,0 +1,38 @@ +From d3152a09ac5804ec8603daee12f98cf03523cce0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 19 May 2014 00:47:26 +0900 +Subject: [PATCH] machined: make sure GetMachineAddresses() is available for + unprivileged processes + +--- + src/machine/org.freedesktop.machine1.conf | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git src/machine/org.freedesktop.machine1.conf src/machine/org.freedesktop.machine1.conf +index 970ccd8..ab349a5 100644 +--- src/machine/org.freedesktop.machine1.conf ++++ src/machine/org.freedesktop.machine1.conf +@@ -42,12 +42,20 @@ + + ++ ++ + + + ++ ++ + + + +-- +1.7.9.2 + diff --git a/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch b/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch new file mode 100644 index 00000000..361a1713 --- /dev/null +++ b/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch @@ -0,0 +1,137 @@ +From cdc06ed7b6120c1049305fa7033f228ee9d86043 Mon Sep 17 00:00:00 2001 +From: David Strauss +Date: Mon, 28 Apr 2014 12:08:32 -0700 +Subject: [PATCH] core: Filter by state behind the D-Bus API, not in the + systemctl client. + +--- + src/core/dbus-manager.c | 24 +++++++++++++++++++++++- + src/core/org.freedesktop.systemd1.conf | 4 ++++ + src/systemctl/systemctl.c | 24 +++++++++++++----------- + 3 files changed, 40 insertions(+), 12 deletions(-) + +diff --git src/core/dbus-manager.c src/core/dbus-manager.c +index 58e484d..d5fab0a 100644 +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c +@@ -728,7 +728,7 @@ static int method_reset_failed(sd_bus *bus, sd_bus_message *message, void *userd + return sd_bus_reply_method_return(message, NULL); + } + +-static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { ++static int list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error, char **states) { + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + Manager *m = userdata; + const char *k; +@@ -761,6 +761,12 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat + + following = unit_following(u); + ++ if (!strv_isempty(states) && ++ !strv_contains(states, unit_load_state_to_string(u->load_state)) && ++ !strv_contains(states, unit_active_state_to_string(unit_active_state(u))) && ++ !strv_contains(states, unit_sub_state_to_string(u))) ++ continue; ++ + unit_path = unit_dbus_path(u); + if (!unit_path) + return -ENOMEM; +@@ -794,6 +800,21 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat + return sd_bus_send(bus, reply, NULL); + } + ++static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { ++ return list_units_filtered(bus, message, userdata, error, NULL); ++} ++ ++static int method_list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { ++ _cleanup_strv_free_ char **states = NULL; ++ int r; ++ ++ r = sd_bus_message_read_strv(message, &states); ++ if (r < 0) ++ return r; ++ ++ return list_units_filtered(bus, message, userdata, error, states); ++} ++ + static int method_list_jobs(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + Manager *m = userdata; +@@ -1670,6 +1691,7 @@ const sd_bus_vtable bus_manager_vtable[] = { + SD_BUS_METHOD("ClearJobs", NULL, NULL, method_clear_jobs, 0), + SD_BUS_METHOD("ResetFailed", NULL, NULL, method_reset_failed, 0), + SD_BUS_METHOD("ListUnits", NULL, "a(ssssssouso)", method_list_units, SD_BUS_VTABLE_UNPRIVILEGED), ++ SD_BUS_METHOD("ListUnitsFiltered", "as", "a(ssssssouso)", method_list_units_filtered, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("ListJobs", NULL, "a(usssoo)", method_list_jobs, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Subscribe", NULL, NULL, method_subscribe, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Unsubscribe", NULL, NULL, method_unsubscribe, SD_BUS_VTABLE_UNPRIVILEGED), +diff --git src/core/org.freedesktop.systemd1.conf src/core/org.freedesktop.systemd1.conf +index a375dce..9dfca81 100644 +--- src/core/org.freedesktop.systemd1.conf ++++ src/core/org.freedesktop.systemd1.conf +@@ -64,6 +64,10 @@ + + ++ ++ + + load_state) || +- strv_contains(arg_states, u->sub_state) || +- strv_contains(arg_states, u->active_state); +- + if (!strv_isempty(patterns)) { + char **pattern; + +@@ -467,6 +461,7 @@ static int get_unit_list( + UnitInfo **_unit_infos, + char **patterns) { + ++ _cleanup_bus_message_unref_ sd_bus_message *m = NULL; + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + _cleanup_free_ UnitInfo *unit_infos = NULL; +@@ -478,15 +473,22 @@ static int get_unit_list( + assert(_reply); + assert(_unit_infos); + +- r = sd_bus_call_method( ++ r = sd_bus_message_new_method_call( + bus, ++ &m, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", +- "ListUnits", +- &error, +- &reply, +- NULL); ++ "ListUnitsFiltered"); ++ ++ if (r < 0) ++ return bus_log_create_error(r); ++ ++ r = sd_bus_message_append_strv(m, arg_states); ++ if (r < 0) ++ return bus_log_create_error(r); ++ ++ r = sd_bus_call(bus, m, 0, &error, &reply); + if (r < 0) { + log_error("Failed to list units: %s", bus_error_message(&error, r)); + return r; +-- +1.7.9.2 + diff --git a/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..a309f6b9 --- /dev/null +++ b/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,73 @@ +From 24e29480bd800d3acdb3087e5863440bd0dd1d80 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Fri, 16 May 2014 15:57:35 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 53 ++++++++++++++++++++++++++++++++- + 1 file changed, 52 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 28aa2a7..a65c7db 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -961,4 +961,55 @@ bluetooth:v013D* + ID_VENDOR_FROM_DATABASE=WirelessWERX + + bluetooth:v013E* +- ID_VENDOR_FROM_DATABASE=nimai ++ ID_VENDOR_FROM_DATABASE=Nod, Inc. ++ ++bluetooth:v013F* ++ ID_VENDOR_FROM_DATABASE=B&B Manufacturing Company ++ ++bluetooth:v0140* ++ ID_VENDOR_FROM_DATABASE=Alpine Electronics (China) Co., Ltd ++ ++bluetooth:v0141* ++ ID_VENDOR_FROM_DATABASE=FedEx Services ++ ++bluetooth:v0142* ++ ID_VENDOR_FROM_DATABASE=Grape Systems Inc. ++ ++bluetooth:v0143* ++ ID_VENDOR_FROM_DATABASE=Bkon Connect ++ ++bluetooth:v0144* ++ ID_VENDOR_FROM_DATABASE=Lintech GmbH ++ ++bluetooth:v0145* ++ ID_VENDOR_FROM_DATABASE=Novatel Wireless ++ ++bluetooth:v0146* ++ ID_VENDOR_FROM_DATABASE=Ciright ++ ++bluetooth:v0147* ++ ID_VENDOR_FROM_DATABASE=Mighty Cast, Inc. ++ ++bluetooth:v0148* ++ ID_VENDOR_FROM_DATABASE=Ambimat Electronics ++ ++bluetooth:v0149* ++ ID_VENDOR_FROM_DATABASE=Perytons Ltd. ++ ++bluetooth:v014A* ++ ID_VENDOR_FROM_DATABASE=Tivoli Audio, LLC ++ ++bluetooth:v014B* ++ ID_VENDOR_FROM_DATABASE=Master Lock ++ ++bluetooth:v014C* ++ ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd ++ ++bluetooth:v014D* ++ ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. ++ ++bluetooth:v014E* ++ ID_VENDOR_FROM_DATABASE=Tangerine, Inc. ++ ++bluetooth:v014F* ++ ID_VENDOR_FROM_DATABASE=B&W Group Ltd. +-- +1.7.9.2 + diff --git a/0005-hwdb-update.patch b/0005-hwdb-update.patch new file mode 100644 index 00000000..e97da5f5 --- /dev/null +++ b/0005-hwdb-update.patch @@ -0,0 +1,1560 @@ +From 7ba52a1283a0864b56947fa091048e8fe31a5899 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 21 May 2014 18:19:24 +0900 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 155 ++++++++++++++++++++- + hwdb/20-pci-vendor-model.hwdb | 141 ++++++++++++++++--- + hwdb/20-usb-vendor-model.hwdb | 302 ++++++++++++++++++++++++++++++++++++++++- + 3 files changed, 572 insertions(+), 26 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index afc0d90..6188bfc 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -52915,6 +52915,9 @@ OUI:0CA42A* + OUI:0CA694* + ID_OUI_FROM_DATABASE=Sunitec Enterprise Co.,Ltd + ++OUI:0CAC05* ++ ID_OUI_FROM_DATABASE=Unitend Technologies Inc. ++ + OUI:0CAF5A* + ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED + +@@ -53164,6 +53167,9 @@ OUI:1048B1* + OUI:104D77* + ID_OUI_FROM_DATABASE=Innovative Computer Engineering + ++OUI:105172* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:1056CA* + ID_OUI_FROM_DATABASE=Peplink International Ltd. + +@@ -53488,6 +53494,9 @@ OUI:147373* + OUI:147411* + ID_OUI_FROM_DATABASE=RIM + ++OUI:147590* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:147DB3* + ID_OUI_FROM_DATABASE=JOA TELECOM.CO.,LTD + +@@ -53899,6 +53908,9 @@ OUI:18C8E7* + OUI:18CC23* + ID_OUI_FROM_DATABASE=Philio Technology Corporation + ++OUI:18CF5E* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:18D071* + ID_OUI_FROM_DATABASE=DASAN SMC, Inc. + +@@ -54517,6 +54529,9 @@ OUI:20E791* + OUI:20EAC7* + ID_OUI_FROM_DATABASE=SHENZHEN RIOPINE ELECTRONICS CO., LTD + ++OUI:20ED74* ++ ID_OUI_FROM_DATABASE=Ability enterprise co.,Ltd. ++ + OUI:20EEC6* + ID_OUI_FROM_DATABASE=Elefirst Science & Tech Co ., ltd + +@@ -54742,6 +54757,9 @@ OUI:24CBE7* + OUI:24CF21* + ID_OUI_FROM_DATABASE=Shenzhen State Micro Technology Co., Ltd + ++OUI:24D13F* ++ ID_OUI_FROM_DATABASE=MEXUS CO.,LTD ++ + OUI:24D2CC* + ID_OUI_FROM_DATABASE=SmartDrive Systems Inc. + +@@ -55438,6 +55456,9 @@ OUI:2CF203* + OUI:2CF4C5* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:2CFAA2* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:30055C* + ID_OUI_FROM_DATABASE=Brother industries, LTD. + +@@ -55708,6 +55729,9 @@ OUI:30F9ED* + OUI:30FD11* + ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. + ++OUI:3400A3* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:340286* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -56077,6 +56101,9 @@ OUI:38229D* + OUI:3822D6* + ID_OUI_FROM_DATABASE=H3C Technologies Co., Limited + ++OUI:38262B* ++ ID_OUI_FROM_DATABASE=UTran Technology ++ + OUI:3826CD* + ID_OUI_FROM_DATABASE=ANDTEK + +@@ -56395,6 +56422,9 @@ OUI:3C404F* + OUI:3C438E* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:3C46D8* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:3C4A92* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -56710,6 +56740,9 @@ OUI:404A18* + OUI:404D8E* + ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd + ++OUI:404EEB* ++ ID_OUI_FROM_DATABASE=Higher Way Electronic Co., Ltd. ++ + OUI:4050E0* + ID_OUI_FROM_DATABASE=Milton Security Group LLC + +@@ -57709,6 +57742,9 @@ OUI:4CB9C8* + OUI:4CBAA3* + ID_OUI_FROM_DATABASE=Bison Electronics Inc. + ++OUI:4CBB58* ++ ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. ++ + OUI:4CBCA5* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -57757,6 +57793,9 @@ OUI:4CEDDE* + OUI:4CF02E* + ID_OUI_FROM_DATABASE=Vifa Denmark A/S + ++OUI:4CF2BF* ++ ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd. ++ + OUI:4CF45B* + ID_OUI_FROM_DATABASE=Blue Clover Devices + +@@ -57994,6 +58033,9 @@ OUI:50B888* + OUI:50B8A2* + ID_OUI_FROM_DATABASE=ImTech Technologies LLC, + ++OUI:50BD5F* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:50C006* + ID_OUI_FROM_DATABASE=Carmanah Signs + +@@ -58285,6 +58327,9 @@ OUI:54D1B0* + OUI:54D46F* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:54DF00* ++ ID_OUI_FROM_DATABASE=Ulterius Technologies, LLC ++ + OUI:54DF63* + ID_OUI_FROM_DATABASE=Intrakey technologies GmbH + +@@ -58597,6 +58642,9 @@ OUI:58F6BF* + OUI:58F98E* + ID_OUI_FROM_DATABASE=SECUDOS GmbH + ++OUI:58FCDB* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:58FD20* + ID_OUI_FROM_DATABASE=Bravida Sakerhet AB + +@@ -58621,6 +58669,9 @@ OUI:5C1193* + OUI:5C1437* + ID_OUI_FROM_DATABASE=Thyssenkrupp Aufzugswerke GmbH + ++OUI:5C1515* ++ ID_OUI_FROM_DATABASE=ADVAN ++ + OUI:5C15E1* + ID_OUI_FROM_DATABASE=AIDC TECHNOLOGY (S) PTE LTD + +@@ -58891,12 +58942,18 @@ OUI:5CF96A* + OUI:5CF9DD* + ID_OUI_FROM_DATABASE=Dell Inc + ++OUI:5CF9F0* ++ ID_OUI_FROM_DATABASE=Atomos Engineering P/L ++ + OUI:5CFF35* + ID_OUI_FROM_DATABASE=Wistron Corporation + + OUI:5CFFFF* + ID_OUI_FROM_DATABASE=Shenzhen Kezhonglong Optoelectronic Technology Co., Ltd + ++OUI:600292* ++ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION ++ + OUI:6002B4* + ID_OUI_FROM_DATABASE=Wistron NeWeb Corp. + +@@ -59323,6 +59380,9 @@ OUI:644F74* + OUI:644FB0* + ID_OUI_FROM_DATABASE=Hyunjin.com + ++OUI:645106* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:64517E* + ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. + +@@ -59902,6 +59962,9 @@ OUI:68FB95* + OUI:68FCB3* + ID_OUI_FROM_DATABASE=Next Level Security Systems, Inc. + ++OUI:6C0273* ++ ID_OUI_FROM_DATABASE=Shenzhen Jin Yun Video Equipment Co., Ltd. ++ + OUI:6C0460* + ID_OUI_FROM_DATABASE=RBH Access Technologies Inc. + +@@ -60874,6 +60937,9 @@ OUI:781FDB* + OUI:78223D* + ID_OUI_FROM_DATABASE=Affirmed Networks + ++OUI:7824AF* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:782544* + ID_OUI_FROM_DATABASE=Omnima Limited + +@@ -60919,6 +60985,9 @@ OUI:784405* + OUI:784476* + ID_OUI_FROM_DATABASE=Zioncom technology co.,ltd + ++OUI:784561* ++ ID_OUI_FROM_DATABASE=CyberTAN Technology Inc. ++ + OUI:7845C4* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -61024,6 +61093,9 @@ OUI:789966* + OUI:78998F* + ID_OUI_FROM_DATABASE=MEDILINE ITALIA SRL + ++OUI:789CE7* ++ ID_OUI_FROM_DATABASE=Shenzhen Aikede Technology Co., Ltd ++ + OUI:789ED0* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -61480,6 +61552,9 @@ OUI:7CC8D7* + OUI:7CCB0D* + ID_OUI_FROM_DATABASE=Antaira Technologies, LLC + ++OUI:7CCCB8* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:7CCD11* + ID_OUI_FROM_DATABASE=MS-Magnet + +@@ -61945,6 +62020,9 @@ OUI:842F75* + OUI:8430E5* + ID_OUI_FROM_DATABASE=SkyHawke Technologies, LLC + ++OUI:8432EA* ++ ID_OUI_FROM_DATABASE=ANHUI WANZTEN P&T CO., LTD ++ + OUI:843497* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -63295,6 +63373,9 @@ OUI:94CDAC* + OUI:94CE2C* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + ++OUI:94CE31* ++ ID_OUI_FROM_DATABASE=CTS Limited ++ + OUI:94D019* + ID_OUI_FROM_DATABASE=Cydle Corp. + +@@ -63409,6 +63490,9 @@ OUI:982CBE* + OUI:982D56* + ID_OUI_FROM_DATABASE=Resolution Audio + ++OUI:982F3C* ++ ID_OUI_FROM_DATABASE=Sichuan Changhong Electric Ltd. ++ + OUI:983000* + ID_OUI_FROM_DATABASE=Beijing KEMACOM Technologies Co., Ltd. + +@@ -63508,6 +63592,9 @@ OUI:9876B6* + OUI:987770* + ID_OUI_FROM_DATABASE=Pep Digital Technology (Guangzhou) Co., Ltd + ++OUI:987E46* ++ ID_OUI_FROM_DATABASE=Emizon Networks Limited ++ + OUI:988217* + ID_OUI_FROM_DATABASE=Disruptive Ltd + +@@ -64303,6 +64390,9 @@ OUI:A40BED* + OUI:A40CC3* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:A41242* ++ ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ + OUI:A4134E* + ID_OUI_FROM_DATABASE=Luxul + +@@ -65740,6 +65830,9 @@ OUI:B4B5AF* + OUI:B4B676* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:B4B859* ++ ID_OUI_FROM_DATABASE=Texa Spa ++ + OUI:B4B88D* + ID_OUI_FROM_DATABASE=Thuh Company + +@@ -65815,6 +65908,9 @@ OUI:B80305* + OUI:B80415* + ID_OUI_FROM_DATABASE=Bayan Audio + ++OUI:B808CF* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:B80B9D* + ID_OUI_FROM_DATABASE=ROPEX Industrie-Elektronik GmbH + +@@ -66277,6 +66373,9 @@ OUI:BC5FF4* + OUI:BC629F* + ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. + ++OUI:BC671C* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:BC6778* + ID_OUI_FROM_DATABASE=Apple + +@@ -66412,6 +66511,9 @@ OUI:BCCFCC* + OUI:BCD177* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:BCD1D3* ++ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp ++ + OUI:BCD5B6* + ID_OUI_FROM_DATABASE=d2d technologies + +@@ -66706,6 +66808,9 @@ OUI:C0E54E* + OUI:C0EAE4* + ID_OUI_FROM_DATABASE=Sonicwall + ++OUI:C0EEFB* ++ ID_OUI_FROM_DATABASE=OnePlus Tech (Shenzhen) Ltd ++ + OUI:C0F1C4* + ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. + +@@ -66721,6 +66826,9 @@ OUI:C0F8DA* + OUI:C0F991* + ID_OUI_FROM_DATABASE=GME Standard Communications P/L + ++OUI:C40006* ++ ID_OUI_FROM_DATABASE=Lipi Data Systems Ltd. ++ + OUI:C40142* + ID_OUI_FROM_DATABASE=MaxMedia Technology Limited + +@@ -67885,6 +67993,9 @@ OUI:D09C30* + OUI:D09D0A* + ID_OUI_FROM_DATABASE=LINKCOM + ++OUI:D0A0D6* ++ ID_OUI_FROM_DATABASE=Chengdu TD Tech Ltd. ++ + OUI:D0A311* + ID_OUI_FROM_DATABASE=Neuberger Gebäudeautomation GmbH + +@@ -68126,7 +68237,7 @@ OUI:D45AB2* + ID_OUI_FROM_DATABASE=Galleon Systems + + OUI:D45C70* +- ID_OUI_FROM_DATABASE=Wireless Gigabit Alliance ++ ID_OUI_FROM_DATABASE=Wi-Fi Alliance + + OUI:D45D42* + ID_OUI_FROM_DATABASE=Nokia Corporation +@@ -68359,6 +68470,9 @@ OUI:D808F5* + OUI:D809C3* + ID_OUI_FROM_DATABASE=Cercacor Labs + ++OUI:D80CCF* ++ ID_OUI_FROM_DATABASE=C.G.V. S.A.S. ++ + OUI:D80DE3* + ID_OUI_FROM_DATABASE=FXI TECHNOLOGIES AS + +@@ -68386,6 +68500,9 @@ OUI:D81EDE* + OUI:D824BD* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:D82522* ++ ID_OUI_FROM_DATABASE=Pace plc ++ + OUI:D826B9* + ID_OUI_FROM_DATABASE=Guangdong Coagent Electronics S &T Co., Ltd. + +@@ -68521,6 +68638,9 @@ OUI:D89685* + OUI:D89695* + ID_OUI_FROM_DATABASE=Apple + ++OUI:D896E0* ++ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. ++ + OUI:D8973B* + ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + +@@ -68941,6 +69061,9 @@ OUI:E01C41* + OUI:E01CEE* + ID_OUI_FROM_DATABASE=Bravo Tech, Inc. + ++OUI:E01D38* ++ ID_OUI_FROM_DATABASE=Beijing HuaqinWorld Technology Co.,Ltd ++ + OUI:E01D3B* + ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd + +@@ -69373,6 +69496,9 @@ OUI:E47CF9* + OUI:E47D5A* + ID_OUI_FROM_DATABASE=Beijing Hanbang Technology Corp. + ++OUI:E47FB2* ++ ID_OUI_FROM_DATABASE=Fujitsu Limited ++ + OUI:E48184* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + +@@ -69829,6 +69955,9 @@ OUI:EC219F* + OUI:EC2257* + ID_OUI_FROM_DATABASE=JiangSu NanJing University Electronic Information Technology Co.,Ltd + ++OUI:EC2280* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:EC233D* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -69970,6 +70099,9 @@ OUI:ECB106* + OUI:ECB541* + ID_OUI_FROM_DATABASE=SHINANO E and E Co.Ltd. + ++OUI:ECB907* ++ ID_OUI_FROM_DATABASE=CloudGenix Inc ++ + OUI:ECBBAE* + ID_OUI_FROM_DATABASE=Digivoice Tecnologia em Eletronica Ltda + +@@ -70189,6 +70321,9 @@ OUI:F0728C* + OUI:F073AE* + ID_OUI_FROM_DATABASE=PEAK-System Technik + ++OUI:F0761C* ++ ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. ++ + OUI:F07765* + ID_OUI_FROM_DATABASE=Sourcefire, Inc + +@@ -70378,6 +70513,9 @@ OUI:F40321* + OUI:F4044C* + ID_OUI_FROM_DATABASE=ValenceTech Limited + ++OUI:F40669* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:F4068D* + ID_OUI_FROM_DATABASE=devolo AG + +@@ -70642,6 +70780,9 @@ OUI:F4EC38* + OUI:F4F15A* + ID_OUI_FROM_DATABASE=Apple + ++OUI:F4F26D* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:F4F5A5* + ID_OUI_FROM_DATABASE=Nokia corporation + +@@ -70825,6 +70966,9 @@ OUI:F871FE* + OUI:F872EA* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:F87394* ++ ID_OUI_FROM_DATABASE=NETGEAR INC., ++ + OUI:F8769B* + ID_OUI_FROM_DATABASE=Neopis Co., Ltd. + +@@ -70915,6 +71059,9 @@ OUI:F8C001* + OUI:F8C091* + ID_OUI_FROM_DATABASE=Highgates Technology + ++OUI:F8C288* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F8C678* + ID_OUI_FROM_DATABASE=Carefusion + +@@ -71167,6 +71314,9 @@ OUI:FC683E* + OUI:FC6C31* + ID_OUI_FROM_DATABASE=LXinstruments GmbH + ++OUI:FC6DC0* ++ ID_OUI_FROM_DATABASE=BME CORPORATION ++ + OUI:FC7516* + ID_OUI_FROM_DATABASE=D-Link International + +@@ -71319,3 +71469,6 @@ OUI:FCFBFB* + + OUI:FCFE77* + ID_OUI_FROM_DATABASE=Hitachi Reftechno, Inc. ++ ++OUI:FCFFAA* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAL public listing for more information. +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 2957774..62941b9 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -4205,6 +4205,9 @@ pci:v00001002d00005F57* + pci:v00001002d00006600* + ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] + ++pci:v00001002d00006600sv0000103Csd00001952* ++ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] (ProBook 455 G1) ++ + pci:v00001002d00006601* + ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] + +@@ -4292,6 +4295,12 @@ pci:v00001002d00006640* + pci:v00001002d00006641* + ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] + ++pci:v00001002d00006646* ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon R9 M280X] ++ ++pci:v00001002d00006647* ++ ID_MODEL_FROM_DATABASE=Bonaire PRO [Radeon R9 M270X] ++ + pci:v00001002d00006649* + ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] + +@@ -6137,6 +6146,9 @@ pci:v00001002d0000683Dsv0000103Csd00006890* + pci:v00001002d0000683Dsv00001043sd00008760* + ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + ++pci:v00001002d0000683Dsv00001462sd00002710* ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (R7770-PMD1GD5) ++ + pci:v00001002d0000683Dsv0000174Bsd00008304* + ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + +@@ -7856,6 +7868,15 @@ pci:v00001002d00006901* + pci:v00001002d00006920* + ID_MODEL_FROM_DATABASE=Tonga + ++pci:v00001002d00006921* ++ ID_MODEL_FROM_DATABASE=Amethyst XT [Radeon R9 M295X] ++ ++pci:v00001002d0000692B* ++ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] ++ ++pci:v00001002d0000692F* ++ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] ++ + pci:v00001002d0000700F* + ID_MODEL_FROM_DATABASE=RS100 AGP Bridge + +@@ -24470,6 +24491,9 @@ pci:v000010DEd00000640* + pci:v000010DEd00000641* + ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] + ++pci:v000010DEd00000641sv00001682sd00004009* ++ ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] (PV-T94G-ZAFG) ++ + pci:v000010DEd00000643* + ID_MODEL_FROM_DATABASE=G96 [GeForce 9500 GT] + +@@ -26306,6 +26330,9 @@ pci:v000010DEd00000FD8* + pci:v000010DEd00000FD9* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 645M] + ++pci:v000010DEd00000FDB* ++ ID_MODEL_FROM_DATABASE=GK107M ++ + pci:v000010DEd00000FDF* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 740M] + +@@ -26861,6 +26888,12 @@ pci:v000010DEd00001140sv00001028sd000005E8* + pci:v000010DEd00001140sv00001028sd000005F4* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv00001028sd0000064E* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001028sd0000068D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv0000103Csd000018EF* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + +@@ -27185,6 +27218,36 @@ pci:v000010DEd00001140sv000017AAsd00003803* + pci:v000010DEd00001140sv000017AAsd00003804* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv000017AAsd00003806* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) ++ ++pci:v000010DEd00001140sv000017AAsd00003808* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) ++ ++pci:v000010DEd00001140sv000017AAsd0000380D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd0000380E* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd0000380F* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003811* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003812* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003813* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003816* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003818* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv000017AAsd00003901* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) + +@@ -27260,12 +27323,27 @@ pci:v000010DEd00001140sv000017AAsd0000502E* + pci:v000010DEd00001140sv000017AAsd0000502F* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv000017AAsd00005030* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) ++ ++pci:v000010DEd00001140sv000017AAsd00005031* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) ++ ++pci:v000010DEd00001140sv000017AAsd00005032* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00005033* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv000017AAsd0000503E* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000503F* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + ++pci:v000010DEd00001140sv000017AAsd00005040* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001854sd00000177* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + +@@ -28443,7 +28521,7 @@ pci:v000010ECd00008168sv00001043sd00008432* + ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) + + pci:v000010ECd00008168sv00001043sd00008505* +- ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8 series motherboard) + + pci:v000010ECd00008168sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) +@@ -35300,6 +35378,9 @@ pci:v000011ABd00007810* + pci:v000011ABd00007820* + ID_MODEL_FROM_DATABASE=MV78200 [Discovery Innovation] ARM SoC + ++pci:v000011ABd00007823* ++ ID_MODEL_FROM_DATABASE=MV78230 [Armada XP] ARM SoC ++ + pci:v000011ABd0000F003* + ID_MODEL_FROM_DATABASE=GT-64010 Primary Image Piranha Image Generator + +@@ -36602,17 +36683,20 @@ pci:v00001217d00008120* + pci:v00001217d00008130* + ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller + ++pci:v00001217d00008220* ++ ID_MODEL_FROM_DATABASE=OZ600FJ1/OZ900FJ1 SD/MMC Card Reader Controller ++ + pci:v00001217d00008221* +- ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller ++ ID_MODEL_FROM_DATABASE=OZ600FJ0/OZ900FJ0/OZ600FJS SD/MMC Card Reader Controller + + pci:v00001217d00008320* +- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller ++ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller + + pci:v00001217d00008320sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) ++ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller (Precision M4600) + + pci:v00001217d00008321* +- ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller ++ ID_MODEL_FROM_DATABASE=OZ600RJ0/OZ900RJ0/OZ600RJS SD/MMC Card Reader Controller + + pci:v00001217d00008330* + ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller +@@ -46403,6 +46487,9 @@ pci:v000014F1d00008800sv00000070sd00009802* + pci:v000014F1d00008800sv00001002sd000000F8* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) + ++pci:v000014F1d00008800sv00001002sd000000F9* ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder) ++ + pci:v000014F1d00008800sv00001002sd0000A101* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) + +@@ -50978,6 +51065,12 @@ pci:v000018F4d00000125* + pci:v000018F4d00000135* + ID_MODEL_FROM_DATABASE=NT20E2-PTP Network Adapter 2x10Gb + ++pci:v000018F4d00000145* ++ ID_MODEL_FROM_DATABASE=NT40E3-4-PTP Network Adapter 4x10Gb ++ ++pci:v000018F4d00000155* ++ ID_MODEL_FROM_DATABASE=NT100E3-1-PTP Network Adapter 1x100Gb ++ + pci:v000018F6* + ID_VENDOR_FROM_DATABASE=NextIO + +@@ -55143,7 +55236,7 @@ pci:v00008086d00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller + + pci:v00008086d00000150sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) + + pci:v00008086d00000150sv00001849sd00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) +@@ -55229,6 +55322,9 @@ pci:v00008086d0000015E* + pci:v00008086d00000162* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + ++pci:v00008086d00000162sv00001043sd000084CA* ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8 series motherboard) ++ + pci:v00008086d00000162sv00001849sd00000162* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) + +@@ -59061,10 +59157,10 @@ pci:v00008086d00001521sv00001028sd00000602* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) + + pci:v00008086d00001521sv00001028sd00001F60* +- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P I350-t rNDC) + + pci:v00008086d00001521sv00001028sd00001F62* +- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC) + + pci:v00008086d00001521sv00001028sd0000FF9A* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) +@@ -59250,7 +59346,10 @@ pci:v00008086d00001533* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection + + pci:v00008086d00001533sv0000103Csd00000003* +- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet I210-T1 GbE NIC) ++ ++pci:v00008086d00001533sv000010A9sd0000802C* ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (UV300 BaseIO single-port GbE) + + pci:v00008086d00001533sv000017AAsd00001100* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) +@@ -59261,15 +59360,15 @@ pci:v00008086d00001533sv00008086sd00000001* + pci:v00008086d00001533sv00008086sd00000002* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + +-pci:v00008086d00001534* +- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +- + pci:v00008086d00001536* + ID_MODEL_FROM_DATABASE=I210 Gigabit Fiber Network Connection + + pci:v00008086d00001537* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + ++pci:v00008086d00001538* ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection ++ + pci:v00008086d00001539* + ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection + +@@ -60267,7 +60366,7 @@ pci:v00008086d00001E02* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] + + pci:v00008086d00001E02sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8 series motherboard) + + pci:v00008086d00001E02sv00001849sd00001E02* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) +@@ -60374,6 +60473,9 @@ pci:v00008086d00001E20sv00001043sd00001517* + pci:v00008086d00001E20sv00001043sd00008415* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) + ++pci:v00008086d00001E20sv00001043sd00008445* ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (ASUS P8Z77-V LX Motherboard) ++ + pci:v00008086d00001E20sv00001849sd00001898* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) + +@@ -60387,7 +60489,7 @@ pci:v00008086d00001E22sv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E22sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8 series motherboard) + + pci:v00008086d00001E22sv00001849sd00001E22* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) +@@ -60411,7 +60513,7 @@ pci:v00008086d00001E26sv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E26sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) + + pci:v00008086d00001E26sv00001849sd00001E26* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) +@@ -60426,7 +60528,7 @@ pci:v00008086d00001E2Dsv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) + + pci:v00008086d00001E2Dsv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) + + pci:v00008086d00001E2Dsv00001849sd00001E2D* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) +@@ -60444,7 +60546,7 @@ pci:v00008086d00001E31sv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E31sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8 series motherboard) + + pci:v00008086d00001E31sv00001849sd00001E31* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) +@@ -60462,7 +60564,7 @@ pci:v00008086d00001E3Asv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E3Asv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8 series motherboard) + + pci:v00008086d00001E3Asv00001849sd00001E3A* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) +@@ -60488,6 +60590,9 @@ pci:v00008086d00001E43* + pci:v00008086d00001E44* + ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller + ++pci:v00008086d00001E44sv00001043sd000084CA* ++ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (P8 series motherboard) ++ + pci:v00008086d00001E44sv00001849sd00001E44* + ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 52586bc..05f267d 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -41163,7 +41163,7 @@ usb:v1234pED02* + ID_MODEL_FROM_DATABASE=Emotiv EPOC Developer Headset Wireless Dongle + + usb:v1235* +- ID_VENDOR_FROM_DATABASE=Novation EMS ++ ID_VENDOR_FROM_DATABASE=Focusrite-Novation + + usb:v1235p0001* + ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition +@@ -41729,6 +41729,9 @@ usb:v12D1p155A* + usb:v12D1p1575* + ID_MODEL_FROM_DATABASE=K5150 LTE modem + ++usb:v12D1p15CA* ++ ID_MODEL_FROM_DATABASE=E3131 3G/UMTS/HSPA+ Modem (Mass Storage Mode) ++ + usb:v12D1p1805* + ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone + +@@ -41744,6 +41747,12 @@ usb:v12D1p1C20* + usb:v12D1p1D50* + ID_MODEL_FROM_DATABASE=ET302s TD-SCDMA/TD-HSDPA Mobile Broadband + ++usb:v12D1p1F01* ++ ID_MODEL_FROM_DATABASE=E353/E3131 (Mass storage mode) ++ ++usb:v12D1p1F16* ++ ID_MODEL_FROM_DATABASE=K5150 LTE modem (Mass Storage Mode) ++ + usb:v12D1p380B* + ID_MODEL_FROM_DATABASE=WiMAX USB modem(s) + +@@ -41762,6 +41771,12 @@ usb:v12D6p0888* + usb:v12D7* + ID_VENDOR_FROM_DATABASE=BETTER WIRE FACTORY CO., LTD. + ++usb:v12D8* ++ ID_VENDOR_FROM_DATABASE=Araneus Information Systems Oy ++ ++usb:v12D8p0001* ++ ID_MODEL_FROM_DATABASE=Alea I True Random Number Generator ++ + usb:v12E6* + ID_VENDOR_FROM_DATABASE=Waldorf Music GmbH + +@@ -41805,7 +41820,7 @@ usb:v1307p0163* + ID_MODEL_FROM_DATABASE=256MB/512MB/1GB Flash Drive + + usb:v1307p0165* +- ID_MODEL_FROM_DATABASE=2GB/4GB Flash Drive ++ ID_MODEL_FROM_DATABASE=2GB/4GB/8GB Flash Drive + + usb:v1307p0190* + ID_MODEL_FROM_DATABASE=Ut190 8 GB Flash Drive with MicroSD reader +@@ -41846,6 +41861,51 @@ usb:v1312* + usb:v1313* + ID_VENDOR_FROM_DATABASE=ThorLabs + ++usb:v1313p0010* ++ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (Jungo) ++ ++usb:v1313p0011* ++ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (Jungo) ++ ++usb:v1313p0012* ++ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (Jungo) ++ ++usb:v1313p0110* ++ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (VISA) ++ ++usb:v1313p0111* ++ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (VISA) ++ ++usb:v1313p0112* ++ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (VISA) ++ ++usb:v1313p8001* ++ ID_MODEL_FROM_DATABASE=TXP-Series Slot (TXP5001, TXP5004) ++ ++usb:v1313p8012* ++ ID_MODEL_FROM_DATABASE=BC106 Camera Beam Profiler ++ ++usb:v1313p8013* ++ ID_MODEL_FROM_DATABASE=WFS10 Wavefront Sensor ++ ++usb:v1313p8017* ++ ID_MODEL_FROM_DATABASE=BC206 Camera Beam Profiler ++ ++usb:v1313p8019* ++ ID_MODEL_FROM_DATABASE=BP2 Multi Slit Beam Profiler ++ ++usb:v1313p8020* ++ ID_MODEL_FROM_DATABASE=PM300 Optical Power Meter ++ ++usb:v1313p8021* ++ ID_MODEL_FROM_DATABASE=PM300E Optical Power and Energy Meter ++ ++usb:v1313p8022* ++ ID_MODEL_FROM_DATABASE=PM320E Optical Power and Energy Meter ++ ++usb:v1313p8030* ++ ID_MODEL_FROM_DATABASE=ER100 Extinction Ratio Meter ++ + usb:v1313p8070* + ID_MODEL_FROM_DATABASE=PM100D + +@@ -41975,6 +42035,18 @@ usb:v1342p0204* + usb:v1342p0304* + ID_MODEL_FROM_DATABASE=EasiDock Ethernet + ++usb:v1343* ++ ID_VENDOR_FROM_DATABASE=Citizen Systems ++ ++usb:v1343p0003* ++ ID_MODEL_FROM_DATABASE=CX / DNP DS40 ++ ++usb:v1343p0004* ++ ID_MODEL_FROM_DATABASE=CX-W / DNP DS80 ++ ++usb:v1343p0005* ++ ID_MODEL_FROM_DATABASE=CY / DNP DSRX ++ + usb:v1345* + ID_VENDOR_FROM_DATABASE=Sino Lite Technology Corp. + +@@ -42002,6 +42074,12 @@ usb:v1347p0403* + usb:v1347p0404* + ID_MODEL_FROM_DATABASE=G2/G3/G4 CCD-F KAF CCD + ++usb:v1347p0405* ++ ID_MODEL_FROM_DATABASE=Gx CCD-I CCD ++ ++usb:v1347p0406* ++ ID_MODEL_FROM_DATABASE=Gx CCD-F CCD ++ + usb:v1347p0410* + ID_MODEL_FROM_DATABASE=G1-0400 CCD + +@@ -42149,6 +42227,9 @@ usb:v138Ap003C* + usb:v138Ap003D* + ID_MODEL_FROM_DATABASE=VFS491 + ++usb:v138Ap0050* ++ ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor ++ + usb:v138E* + ID_VENDOR_FROM_DATABASE=Jungo LTD + +@@ -42161,6 +42242,9 @@ usb:v1390* + usb:v1390p0001* + ID_MODEL_FROM_DATABASE=GO 520 T/GO 630/ONE XL (v9) + ++usb:v1390p5454* ++ ID_MODEL_FROM_DATABASE=Blue & Me 2 ++ + usb:v1391* + ID_VENDOR_FROM_DATABASE=IdealTEK, Inc. + +@@ -42263,6 +42347,15 @@ usb:v13B1p0039* + usb:v13B1p003A* + ID_MODEL_FROM_DATABASE=AE2500 802.11abgn Wireless Adapter [Broadcom BCM43236] + ++usb:v13B1p003B* ++ ID_MODEL_FROM_DATABASE=AE3000 802.11abgn (3x3) Wireless Adapter [Ralink RT3573] ++ ++usb:v13B1p003E* ++ ID_MODEL_FROM_DATABASE=AE6000 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] ++ ++usb:v13B1p003F* ++ ID_MODEL_FROM_DATABASE=WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] ++ + usb:v13B1p13B1* + ID_MODEL_FROM_DATABASE=WUSB200: Wireless-G Business Network Adapter with Rangebooster + +@@ -42446,6 +42539,12 @@ usb:v13D3p3315* + usb:v13D3p3375* + ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth 4.0 Adapter + ++usb:v13D3p3392* ++ ID_MODEL_FROM_DATABASE=Azurewave 43228+20702 ++ ++usb:v13D3p3394* ++ ID_MODEL_FROM_DATABASE=Bluetooth ++ + usb:v13D3p5070* + ID_MODEL_FROM_DATABASE=Webcam + +@@ -42458,6 +42557,9 @@ usb:v13D3p5115* + usb:v13D3p5116* + ID_MODEL_FROM_DATABASE=Integrated Webcam + ++usb:v13D3p5122* ++ ID_MODEL_FROM_DATABASE=2M Integrated Webcam ++ + usb:v13D3p5126* + ID_MODEL_FROM_DATABASE=PC Cam + +@@ -42524,6 +42626,9 @@ usb:v13FDp0840* + usb:v13FDp0841* + ID_MODEL_FROM_DATABASE=Samsung SE-T084M DVD-RW + ++usb:v13FDp1040* ++ ID_MODEL_FROM_DATABASE=INIC-1511L PATA Bridge ++ + usb:v13FDp1340* + ID_MODEL_FROM_DATABASE=Hi-Speed USB to SATA Bridge + +@@ -42533,9 +42638,15 @@ usb:v13FDp160F* + usb:v13FDp1640* + ID_MODEL_FROM_DATABASE=INIC-1610L SATA Bridge + ++usb:v13FDp1669* ++ ID_MODEL_FROM_DATABASE=INIC-1609PN ++ + usb:v13FDp1840* + ID_MODEL_FROM_DATABASE=INIC-1608 SATA bridge + ++usb:v13FDp1E40* ++ ID_MODEL_FROM_DATABASE=INIC-1610P SATA bridge ++ + usb:v13FE* + ID_VENDOR_FROM_DATABASE=Kingston Technology Company Inc. + +@@ -42555,10 +42666,10 @@ usb:v13FEp1E50* + ID_MODEL_FROM_DATABASE=U3 Smart Drive + + usb:v13FEp1F00* +- ID_MODEL_FROM_DATABASE=DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive ++ ID_MODEL_FROM_DATABASE=Kingston DataTraveler / Patriot Xporter + + usb:v13FEp1F23* +- ID_MODEL_FROM_DATABASE=2Gb ++ ID_MODEL_FROM_DATABASE=PS2232 flash drive controller + + usb:v13FEp2240* + ID_MODEL_FROM_DATABASE=microSD card reader +@@ -42569,12 +42680,18 @@ usb:v13FEp3100* + usb:v13FEp3123* + ID_MODEL_FROM_DATABASE=Verbatim STORE N GO 4GB + ++usb:v13FEp3600* ++ ID_MODEL_FROM_DATABASE=flash drive (4GB, EMTEC) ++ + usb:v13FEp3800* + ID_MODEL_FROM_DATABASE=Rage XT Flash Drive + + usb:v13FEp3E00* + ID_MODEL_FROM_DATABASE=Flash Drive + ++usb:v13FEp5000* ++ ID_MODEL_FROM_DATABASE=USB flash drive (32 GB SHARKOON Accelerate) ++ + usb:v13FEp5100* + ID_MODEL_FROM_DATABASE=Flash Drive + +@@ -42674,6 +42791,12 @@ usb:v1415p2000* + usb:v1419* + ID_VENDOR_FROM_DATABASE=ABILITY ENTERPRISE CO., LTD. + ++usb:v1421* ++ ID_VENDOR_FROM_DATABASE=Sensor Technology ++ ++usb:v1421p0605* ++ ID_MODEL_FROM_DATABASE=Sentech Camera ++ + usb:v1429* + ID_VENDOR_FROM_DATABASE=Vega Technologies Industrial (Austria) Co. + +@@ -42776,6 +42899,18 @@ usb:v1457p5118* + usb:v1457p5119* + ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot cdc_acm serial port + ++usb:v1457p511A* ++ ID_MODEL_FROM_DATABASE=HXD8 u-boot usbtty CDC ACM Mode ++ ++usb:v1457p511B* ++ ID_MODEL_FROM_DATABASE=SMDK2440 u-boot usbtty CDC ACM mode ++ ++usb:v1457p511C* ++ ID_MODEL_FROM_DATABASE=SMDK2443 u-boot usbtty CDC ACM mode ++ ++usb:v1457p511D* ++ ID_MODEL_FROM_DATABASE=QT2410 u-boot usbtty CDC ACM mode ++ + usb:v1457p5120* + ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot usbtty generic serial + +@@ -42935,6 +43070,9 @@ usb:v148E* + usb:v148F* + ID_VENDOR_FROM_DATABASE=Ralink Technology, Corp. + ++usb:v148Fp1000* ++ ID_MODEL_FROM_DATABASE=Motorola BC4 Bluetooth 3.0+HS Adapter ++ + usb:v148Fp1706* + ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter + +@@ -42983,6 +43121,9 @@ usb:v148Fp5372* + usb:v148Fp5572* + ID_MODEL_FROM_DATABASE=RT5572 Wireless Adapter + ++usb:v148Fp7601* ++ ID_MODEL_FROM_DATABASE=MT7601U Wireless Adapter ++ + usb:v148Fp9020* + ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter + +@@ -42998,6 +43139,15 @@ usb:v1491p0020* + usb:v1493* + ID_VENDOR_FROM_DATABASE=Suunto + ++usb:v1493p0010* ++ ID_MODEL_FROM_DATABASE=Bluebird [Ambit] ++ ++usb:v1493p0019* ++ ID_MODEL_FROM_DATABASE=Duck [Ambit2] ++ ++usb:v1493p001A* ++ ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] ++ + usb:v1497* + ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. + +@@ -43118,6 +43268,9 @@ usb:v14CD* + usb:v14CDp121C* + ID_MODEL_FROM_DATABASE=microSD card reader + ++usb:v14CDp121F* ++ ID_MODEL_FROM_DATABASE=microSD CardReader SY-T18 ++ + usb:v14CDp123A* + ID_MODEL_FROM_DATABASE=SD/MMC/RS-MMC Card Reader + +@@ -43131,7 +43284,7 @@ usb:v14CDp6116* + ID_MODEL_FROM_DATABASE=M6116 SATA Bridge + + usb:v14CDp6600* +- ID_MODEL_FROM_DATABASE=USB 2.0 IDE DEVICE ++ ID_MODEL_FROM_DATABASE=M110E PATA bridge + + usb:v14CDp6700* + ID_MODEL_FROM_DATABASE=Card Reader +@@ -43166,6 +43319,9 @@ usb:v14E1* + usb:v14E1p5000* + ID_MODEL_FROM_DATABASE=PenMount 5000 Touch Controller + ++usb:v14E4* ++ ID_VENDOR_FROM_DATABASE=Broadcom Corp. ++ + usb:v14E5* + ID_VENDOR_FROM_DATABASE=SAIN Information & Communications Co., Ltd. + +@@ -43214,6 +43370,15 @@ usb:v1501* + usb:v1509* + ID_VENDOR_FROM_DATABASE=First International Computer, Inc. + ++usb:v1509p0A01* ++ ID_MODEL_FROM_DATABASE=LI-3100 Area Meter ++ ++usb:v1509p0A02* ++ ID_MODEL_FROM_DATABASE=LI-7000 CO2/H2O Gas Analyzer ++ ++usb:v1509p0A03* ++ ID_MODEL_FROM_DATABASE=C-DiGit Blot Scanner ++ + usb:v1509p9242* + ID_MODEL_FROM_DATABASE=eHome Infrared Transceiver + +@@ -43253,6 +43418,12 @@ usb:v1518p0001* + usb:v1518p0002* + ID_MODEL_FROM_DATABASE=HDReye (before firmware loads) + ++usb:v1519* ++ ID_VENDOR_FROM_DATABASE=Comneon ++ ++usb:v1519p0020* ++ ID_MODEL_FROM_DATABASE=HSIC Device ++ + usb:v1520* + ID_VENDOR_FROM_DATABASE=Bitwire Corp. + +@@ -43280,6 +43451,15 @@ usb:v1529p3100* + usb:v152A* + ID_VENDOR_FROM_DATABASE=Thesycon Systemsoftware & Consulting GmbH + ++usb:v152Ap8400* ++ ID_MODEL_FROM_DATABASE=INI DVS128 ++ ++usb:v152Ap840D* ++ ID_MODEL_FROM_DATABASE=INI DAViS ++ ++usb:v152Ap841A* ++ ID_MODEL_FROM_DATABASE=INI DAViS FX3 ++ + usb:v152D* + ID_VENDOR_FROM_DATABASE=JMicron Technology Corp. / JMicron USA Technology Corp. + +@@ -43337,6 +43517,9 @@ usb:v1532p0007* + usb:v1532p0013* + ID_MODEL_FROM_DATABASE=Orochi mouse + ++usb:v1532p0015* ++ ID_MODEL_FROM_DATABASE=Naga Mouse ++ + usb:v1532p0016* + ID_MODEL_FROM_DATABASE=DeathAdder Mouse + +@@ -43364,9 +43547,21 @@ usb:v1532p0102* + usb:v1532p0109* + ID_MODEL_FROM_DATABASE=Lycosa Keyboard + ++usb:v1532p0113* ++ ID_MODEL_FROM_DATABASE=RZ07-0074 Gaming Keypad [Orbweaver] ++ + usb:v1532p0300* + ID_MODEL_FROM_DATABASE=RZ06-0063 Motion Sensing Controllers [Hydra] + ++usb:v153B* ++ ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH ++ ++usb:v153Bp1181* ++ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 1 ++ ++usb:v153Bp1182* ++ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 2 ++ + usb:v1546* + ID_VENDOR_FROM_DATABASE=U-Blox AG + +@@ -43388,12 +43583,18 @@ usb:v154B* + usb:v154Bp0010* + ID_MODEL_FROM_DATABASE=USB 2.0 Flash Drive + ++usb:v154Bp0048* ++ ID_MODEL_FROM_DATABASE=Flash Drive ++ + usb:v154Bp004D* + ID_MODEL_FROM_DATABASE=8 GB Flash Drive + + usb:v154Bp0057* + ID_MODEL_FROM_DATABASE=32GB Micro Slide Attache Flash Drive + ++usb:v154Bp007A* ++ ID_MODEL_FROM_DATABASE=8GB Classic Attache Flash Drive ++ + usb:v154Bp6545* + ID_MODEL_FROM_DATABASE=FD Device + +@@ -43530,7 +43731,10 @@ usb:v15A2p0052* + ID_MODEL_FROM_DATABASE=i.MX50 SystemOnChip in RecoveryMode + + usb:v15A2p0054* +- ID_MODEL_FROM_DATABASE=i.MX6Q SystemOnChip in RecoveryMode ++ ID_MODEL_FROM_DATABASE=i.MX 6Dual/6Quad SystemOnChip in RecoveryMode ++ ++usb:v15A2p0061* ++ ID_MODEL_FROM_DATABASE=i.MX 6Solo/6DualLite SystemOnChip in RecoveryMode + + usb:v15A4* + ID_VENDOR_FROM_DATABASE=Afatech Technologies, Inc. +@@ -43640,6 +43844,9 @@ usb:v15C2p0036* + usb:v15C2p0038* + ID_MODEL_FROM_DATABASE=GD01 MX LCD Display/IR Receiver + ++usb:v15C2p0042* ++ ID_MODEL_FROM_DATABASE=Antec Veris Multimedia Station E-Z IR Receiver ++ + usb:v15C2pFFDA* + ID_MODEL_FROM_DATABASE=iMON PAD Remote Controller + +@@ -43724,6 +43931,9 @@ usb:v15D9p0A4C* + usb:v15D9p0A4D* + ID_MODEL_FROM_DATABASE=Optical Mouse + ++usb:v15D9p0A4F* ++ ID_MODEL_FROM_DATABASE=Optical Mouse ++ + usb:v15DC* + ID_VENDOR_FROM_DATABASE=Hynix Semiconductor Inc. + +@@ -44507,6 +44717,15 @@ usb:v1690p0740* + usb:v1690p0901* + ID_MODEL_FROM_DATABASE=Voyager 205 ADSL Router + ++usb:v1690p2000* ++ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard ++ ++usb:v1690p2001* ++ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard ++ ++usb:v1690pFE12* ++ ID_MODEL_FROM_DATABASE=Bootloader ++ + usb:v1696* + ID_VENDOR_FROM_DATABASE=Hitachi Video and Information System, Inc. + +@@ -44669,6 +44888,9 @@ usb:v16C0p06B4* + usb:v16C0p06B5* + ID_MODEL_FROM_DATABASE=USB2LPT with 3 interfaces (native, HID, printer) + ++usb:v16C0p0762* ++ ID_MODEL_FROM_DATABASE=Osmocom SIMtrace ++ + usb:v16C0p076B* + ID_MODEL_FROM_DATABASE=OpenPCD 13.56MHz RFID Reader + +@@ -44759,6 +44981,15 @@ usb:v16D0p075D* + usb:v16D0p080A* + ID_MODEL_FROM_DATABASE=S2E1 Interface + ++usb:v16D0p0870* ++ ID_MODEL_FROM_DATABASE=Kaufmann Automotive GmbH, RKS+CAN Interface ++ ++usb:v16D1* ++ ID_VENDOR_FROM_DATABASE=Suprema Inc. ++ ++usb:v16D1p0401* ++ ID_MODEL_FROM_DATABASE=SUP-SFR400(A) BioMini Fingerprint Reader ++ + usb:v16D3* + ID_VENDOR_FROM_DATABASE=Frontline Test Equipment, Inc. + +@@ -44774,6 +45005,9 @@ usb:v16D5p6501* + usb:v16D5p6502* + ID_MODEL_FROM_DATABASE=CDMA/UMTS/GPRS modem + ++usb:v16D5p6603* ++ ID_MODEL_FROM_DATABASE=ADU-890WH modem ++ + usb:v16D6* + ID_VENDOR_FROM_DATABASE=JABLOCOM s.r.o. + +@@ -44870,6 +45104,18 @@ usb:v170Bp0011* + usb:v170D* + ID_VENDOR_FROM_DATABASE=Avnera + ++usb:v1711* ++ ID_VENDOR_FROM_DATABASE=Leica Microsystems ++ ++usb:v1711p3020* ++ ID_MODEL_FROM_DATABASE=IC80 HD Camera ++ ++usb:v1724* ++ ID_VENDOR_FROM_DATABASE=Meyer Instruments (MIS) ++ ++usb:v1724p0115* ++ ID_MODEL_FROM_DATABASE=PAXcam5 ++ + usb:v1725* + ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor + +@@ -44957,9 +45203,21 @@ usb:v1737p0078* + usb:v1737p0079* + ID_MODEL_FROM_DATABASE=WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572] + ++usb:v173D* ++ ID_VENDOR_FROM_DATABASE=QSENN ++ ++usb:v173Dp0002* ++ ID_MODEL_FROM_DATABASE=GP-K7000 keyboard ++ + usb:v1740* + ID_VENDOR_FROM_DATABASE=Senao + ++usb:v1740p0100* ++ ID_MODEL_FROM_DATABASE=EUB1200AC AC1200 DB Wireless Adapter [Realtek RTL8812AU] ++ ++usb:v1740p0600* ++ ID_MODEL_FROM_DATABASE=EUB600v1 802.11abgn Wireless Adapter [Ralink RT3572] ++ + usb:v1740p0605* + ID_MODEL_FROM_DATABASE=LevelOne WUA-0605 N_Max Wireless USB Adapter + +@@ -45002,14 +45260,20 @@ usb:v1743* + usb:v1748* + ID_VENDOR_FROM_DATABASE=MQP Electronics + ++usb:v1748p0101* ++ ID_MODEL_FROM_DATABASE=Packet-Master USB12 ++ + usb:v174C* + ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. + + usb:v174Cp5106* + ID_MODEL_FROM_DATABASE=Transcend StoreJet 25M3 + ++usb:v174Cp5136* ++ ID_MODEL_FROM_DATABASE=ASM1053 SATA 6Gb/s bridge ++ + usb:v174Cp55AA* +- ID_MODEL_FROM_DATABASE=ASMedia 2105 SATA bridge ++ ID_MODEL_FROM_DATABASE=ASM1051 SATA 3Gb/s bridge + + usb:v174F* + ID_VENDOR_FROM_DATABASE=Syntek +@@ -45137,6 +45401,9 @@ usb:v1781p0C31* + usb:v1781p0C9F* + ID_MODEL_FROM_DATABASE=USBtiny + ++usb:v1781p1EEF* ++ ID_MODEL_FROM_DATABASE=OpenAPC SecuKey ++ + usb:v1782* + ID_VENDOR_FROM_DATABASE=Spreadtrum Communications Inc. + +@@ -45206,6 +45473,9 @@ usb:v17A0p0100* + usb:v17A0p0101* + ID_MODEL_FROM_DATABASE=UB1 boundary microphone + ++usb:v17A0p0120* ++ ID_MODEL_FROM_DATABASE=Meteorite condenser microphone ++ + usb:v17A0p0200* + ID_MODEL_FROM_DATABASE=StudioDock monitors (internal hub) + +@@ -45221,6 +45491,9 @@ usb:v17A0p0301* + usb:v17A0p0302* + ID_MODEL_FROM_DATABASE=GoMic compact condenser microphone + ++usb:v17A0p0303* ++ ID_MODEL_FROM_DATABASE=C01U Pro condenser microphone ++ + usb:v17A0p0304* + ID_MODEL_FROM_DATABASE=Q2U handheld mic with XLR + +@@ -45371,6 +45644,9 @@ usb:v17E9p037C* + usb:v17E9p037D* + ID_MODEL_FROM_DATABASE=Plugable USB2-HDMI-165 + ++usb:v17E9p410A* ++ ID_MODEL_FROM_DATABASE=HDMI Adapter ++ + usb:v17E9p430A* + ID_MODEL_FROM_DATABASE=HP Port Replicator (Composite Device) + +@@ -45383,6 +45659,9 @@ usb:v17EB* + usb:v17EF* + ID_VENDOR_FROM_DATABASE=Lenovo + ++usb:v17EFp1000* ++ ID_MODEL_FROM_DATABASE=Hub ++ + usb:v17EFp1003* + ID_MODEL_FROM_DATABASE=Integrated Smart Card Reader + +@@ -45395,6 +45674,9 @@ usb:v17EFp1008* + usb:v17EFp100A* + ID_MODEL_FROM_DATABASE=ThinkPad Mini Dock Plus Series 3 + ++usb:v17EFp304B* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [ThinkPad OneLink GigaLAN] ++ + usb:v17EFp3815* + ID_MODEL_FROM_DATABASE=ChipsBnk 2GB USB Stick + +@@ -45455,6 +45737,12 @@ usb:v17EFp6009* + usb:v17EFp6014* + ID_MODEL_FROM_DATABASE=Mini Wireless Keyboard N5901 + ++usb:v17EFp6025* ++ ID_MODEL_FROM_DATABASE=ThinkPad Travel Mouse ++ ++usb:v17EFp7203* ++ ID_MODEL_FROM_DATABASE=Ethernet adapter [U2L 100P-Y1] ++ + usb:v17EFp7423* + ID_MODEL_FROM_DATABASE=IdeaPad A1 Tablet + +-- +1.7.9.2 + diff --git a/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch b/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch new file mode 100644 index 00000000..aaae9d12 --- /dev/null +++ b/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch @@ -0,0 +1,119 @@ +From b5d3e1688133077ca20542a20dcd8919147e72e1 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 11 Mar 2014 22:38:54 +0100 +Subject: [PATCH] logind: move lid switch handling from logind-main to + logind-core + +../src/login/logind-dbus.c:1352: error: undefined reference to 'manager_set_lid_switch_ignore' +collect2: error: ld returned 1 exit status +make[2]: *** [test-login-tables] +--- + src/login/logind-dbus.c | 40 ++++++++++++++++++++++++++++++++++++++++ + src/login/logind.c | 40 ---------------------------------------- + 2 files changed, 40 insertions(+), 40 deletions(-) + +diff --git src/login/logind-dbus.c src/login/logind-dbus.c +index c5f9cb3..2ef87f7 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -1305,6 +1305,46 @@ static int bus_manager_log_shutdown( + q, NULL); + } + ++static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(e); ++ assert(m); ++ ++ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); ++ return 0; ++} ++ ++int manager_set_lid_switch_ignore(Manager *m, usec_t until) { ++ int r; ++ ++ assert(m); ++ ++ if (until <= now(CLOCK_MONOTONIC)) ++ return 0; ++ ++ /* We want to ignore the lid switch for a while after each ++ * suspend, and after boot-up. Hence let's install a timer for ++ * this. As long as the event source exists we ignore the lid ++ * switch. */ ++ ++ if (m->lid_switch_ignore_event_source) { ++ usec_t u; ++ ++ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); ++ if (r < 0) ++ return r; ++ ++ if (until <= u) ++ return 0; ++ ++ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); ++ } else ++ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); ++ ++ return r; ++} ++ + static int execute_shutdown_or_sleep( + Manager *m, + InhibitWhat w, +diff --git src/login/logind.c src/login/logind.c +index 03b7753..2d734ff 100644 +--- src/login/logind.c ++++ src/login/logind.c +@@ -962,46 +962,6 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us + return 0; + } + +-static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { +- Manager *m = userdata; +- +- assert(e); +- assert(m); +- +- m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); +- return 0; +-} +- +-int manager_set_lid_switch_ignore(Manager *m, usec_t until) { +- int r; +- +- assert(m); +- +- if (until <= now(CLOCK_MONOTONIC)) +- return 0; +- +- /* We want to ignore the lid switch for a while after each +- * suspend, and after boot-up. Hence let's install a timer for +- * this. As long as the event source exists we ignore the lid +- * switch. */ +- +- if (m->lid_switch_ignore_event_source) { +- usec_t u; +- +- r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); +- if (r < 0) +- return r; +- +- if (until <= u) +- return 0; +- +- r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); +- } else +- r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); +- +- return r; +-} +- + int manager_startup(Manager *m) { + int r; + Seat *seat; +-- +1.7.9.2 + diff --git a/0006-login-add-mir-to-the-list-of-session-types.patch b/0006-login-add-mir-to-the-list-of-session-types.patch new file mode 100644 index 00000000..9e966958 --- /dev/null +++ b/0006-login-add-mir-to-the-list-of-session-types.patch @@ -0,0 +1,90 @@ +From 9541666b8d97f107335dd7e3cb93b4d2cfbf19c9 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Wed, 9 Apr 2014 21:22:48 +0200 +Subject: [PATCH] login: add 'mir' to the list of session types + +Add Mir to the list of session types. This is implemented for LightDM +in lp:~robert-ancell/lightdm/xdg-session-desktop [1]. + +[1] https://code.launchpad.net/~robert-ancell/lightdm/xdg-session-desktop/+merge/214108 + +(david: adjusted commit-header and fixed whitespace issues) +--- + man/pam_systemd.xml | 5 +++-- + man/sd_session_is_active.xml | 6 +++--- + src/login/logind-session.c | 1 + + src/login/logind-session.h | 1 + + src/systemd/sd-login.h | 2 +- + 5 files changed, 9 insertions(+), 6 deletions(-) + +diff --git man/pam_systemd.xml man/pam_systemd.xml +index 3022cdb..f973899 100644 +--- man/pam_systemd.xml ++++ man/pam_systemd.xml +@@ -145,8 +145,9 @@ + variable takes precedence. One of + unspecified, + tty, +- x11 or +- wayland. See ++ x11, ++ wayland or ++ mir. See + sd_session_get_type3 + for details about the session type. + +diff --git man/sd_session_is_active.xml man/sd_session_is_active.xml +index ddb2bee..31a6119 100644 +--- man/sd_session_is_active.xml ++++ man/sd_session_is_active.xml +@@ -201,9 +201,9 @@ + be used to determine the type of the session + identified by the specified session identifier. The + returned string is one of x11, +- wayland, tty or +- unspecified and needs to be freed +- with the libc ++ wayland, tty, ++ mir or unspecified and ++ needs to be freed with the libc + free3 + call after use. + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-05-20 12:49:07.150236121 +0000 +@@ -1124,6 +1124,7 @@ static const char* const session_type_ta + [SESSION_TTY] = "tty", + [SESSION_X11] = "x11", + [SESSION_WAYLAND] = "wayland", ++ [SESSION_MIR] = "mir", + [SESSION_UNSPECIFIED] = "unspecified", + }; + +diff --git src/login/logind-session.h src/login/logind-session.h +index c9af5eb..7ecc9f0 100644 +--- src/login/logind-session.h ++++ src/login/logind-session.h +@@ -55,6 +55,7 @@ typedef enum SessionType { + SESSION_TTY, + SESSION_X11, + SESSION_WAYLAND, ++ SESSION_MIR, + _SESSION_TYPE_MAX, + _SESSION_TYPE_INVALID = -1 + } SessionType; +diff --git src/systemd/sd-login.h src/systemd/sd-login.h +index a4ca231..776733a 100644 +--- src/systemd/sd-login.h ++++ src/systemd/sd-login.h +@@ -138,7 +138,7 @@ int sd_session_get_seat(const char *session, char **seat); + /* Determine the (PAM) service name this session was registered by. */ + int sd_session_get_service(const char *session, char **service); + +-/* Determine the type of this session, i.e. one of "tty", "x11" or "unspecified". */ ++/* Determine the type of this session, i.e. one of "tty", "x11", "wayland", "mir" or "unspecified". */ + int sd_session_get_type(const char *session, char **type); + + /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ +-- +1.7.9.2 + diff --git a/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch b/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch new file mode 100644 index 00000000..4313946b --- /dev/null +++ b/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch @@ -0,0 +1,39 @@ +From 33169701b0640d3629d4c36cf8c71dc26d2cb7e1 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 May 2014 01:33:22 +0200 +Subject: [PATCH] man: clarify that the ExecReload= command should be + synchronous + +http://lists.freedesktop.org/archives/systemd-devel/2014-May/019054.html +--- + man/systemd.service.xml | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git man/systemd.service.xml man/systemd.service.xml +index af32ccb..364ad7d 100644 +--- man/systemd.service.xml ++++ man/systemd.service.xml +@@ -519,6 +519,20 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} + following: + + /bin/kill -HUP $MAINPID ++ ++ Note however that reloading a ++ daemon by sending a signal (as with ++ the example line above) is usually not ++ a good choice, because this is an ++ asynchronous operation and hence not ++ suitable to order reloads of multiple ++ services against each other. It is ++ strongly recommended to set ++ ExecReload= to a ++ command that no only triggers a ++ configuration reload of the daemon, ++ but also synchronously waits for it ++ complete. + + + +-- +1.7.9.2 + diff --git a/0007-logind-fix-Display-property-of-user-objects.patch b/0007-logind-fix-Display-property-of-user-objects.patch new file mode 100644 index 00000000..8fbbbeac --- /dev/null +++ b/0007-logind-fix-Display-property-of-user-objects.patch @@ -0,0 +1,147 @@ +From 952d32609f9bceee444fa2690afb4d28539b4b92 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 19 May 2014 09:03:20 +0900 +Subject: [PATCH] logind: fix Display property of user objects + +When we dropped support for creating a per-user to the "main" X11 +display we stopped returning useful data in the "Display" user property. +With this change this is fixed and we again expose an appropriate +(graphical session) in the property that is useful as the "main" one, if +one is needed. +--- + src/login/logind-session.c | 8 ++++++-- + src/login/logind-session.h | 2 ++ + src/login/logind-user-dbus.c | 2 +- + src/login/logind-user.c | 37 +++++++++++++++++++++++++++++++++++++ + src/login/logind-user.h | 1 + + 5 files changed, 47 insertions(+), 3 deletions(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 4fb229e..9a54101 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -545,6 +545,8 @@ int session_start(Session *s) { + + s->started = true; + ++ user_elect_display(s->user); ++ + /* Save data */ + session_save(s); + user_save(s->user); +@@ -553,7 +555,7 @@ int session_start(Session *s) { + + /* Send signals */ + session_send_signal(s, true); +- user_send_changed(s->user, "Sessions", NULL); ++ user_send_changed(s->user, "Sessions", "Display", NULL); + if (s->seat) { + if (s->seat->active == s) + seat_send_changed(s->seat, "Sessions", "ActiveSession", NULL); +@@ -612,6 +614,8 @@ int session_stop(Session *s, bool force) { + + s->stopping = true; + ++ user_elect_display(s->user); ++ + session_save(s); + user_save(s->user); + +@@ -660,7 +664,7 @@ int session_finalize(Session *s) { + } + + user_save(s->user); +- user_send_changed(s->user, "Sessions", NULL); ++ user_send_changed(s->user, "Sessions", "Display", NULL); + + return r; + } +diff --git src/login/logind-session.h src/login/logind-session.h +index f78f309..81957df 100644 +--- src/login/logind-session.h ++++ src/login/logind-session.h +@@ -60,6 +60,8 @@ typedef enum SessionType { + _SESSION_TYPE_INVALID = -1 + } SessionType; + ++#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR) ++ + enum KillWho { + KILL_LEADER, + KILL_ALL, +diff --git src/login/logind-user-dbus.c src/login/logind-user-dbus.c +index 6266ccb..51793f6 100644 +--- src/login/logind-user-dbus.c ++++ src/login/logind-user-dbus.c +@@ -220,7 +220,7 @@ const sd_bus_vtable user_vtable[] = { + SD_BUS_PROPERTY("RuntimePath", "s", NULL, offsetof(User, runtime_path), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("Service", "s", NULL, offsetof(User, service), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("Slice", "s", NULL, offsetof(User, slice), SD_BUS_VTABLE_PROPERTY_CONST), +- SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_CONST), ++ SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("State", "s", property_get_state, 0, 0), + SD_BUS_PROPERTY("Sessions", "a(so)", property_get_sessions, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("IdleHint", "b", property_get_idle_hint, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), +diff --git src/login/logind-user.c src/login/logind-user.c +index 5fffa65..fdbccb3 100644 +--- src/login/logind-user.c ++++ src/login/logind-user.c +@@ -713,6 +713,43 @@ int user_kill(User *u, int signo) { + return manager_kill_unit(u->manager, u->slice, KILL_ALL, signo, NULL); + } + ++void user_elect_display(User *u) { ++ Session *graphical = NULL, *text = NULL, *s; ++ ++ assert(u); ++ ++ /* This elects a primary session for each user, which we call ++ * the "display". We try to keep the assignment stable, but we ++ * "upgrade" to better choices. */ ++ ++ LIST_FOREACH(sessions_by_user, s, u->sessions) { ++ ++ if (s->class != SESSION_USER) ++ continue; ++ ++ if (s->stopping) ++ continue; ++ ++ if (SESSION_TYPE_IS_GRAPHICAL(s->type)) ++ graphical = s; ++ else ++ text = s; ++ } ++ ++ if (graphical && ++ (!u->display || ++ u->display->class != SESSION_USER || ++ u->display->stopping || ++ !SESSION_TYPE_IS_GRAPHICAL(u->display->type))) ++ u->display = graphical; ++ ++ if (text && ++ (!u->display || ++ u->display->class != SESSION_USER || ++ u->display->stopping)) ++ u->display = text; ++} ++ + static const char* const user_state_table[_USER_STATE_MAX] = { + [USER_OFFLINE] = "offline", + [USER_OPENING] = "opening", +diff --git src/login/logind-user.h src/login/logind-user.h +index f237d2a..4e0568f 100644 +--- src/login/logind-user.h ++++ src/login/logind-user.h +@@ -80,6 +80,7 @@ int user_save(User *u); + int user_load(User *u); + int user_kill(User *u, int signo); + int user_check_linger_file(User *u); ++void user_elect_display(User *u); + + extern const sd_bus_vtable user_vtable[]; + int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); +-- +1.7.9.2 + diff --git a/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch b/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch new file mode 100644 index 00000000..ee54ea31 --- /dev/null +++ b/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch @@ -0,0 +1,41 @@ +From 332bc31992acffc6f32e194c0122e01607bd0e27 Mon Sep 17 00:00:00 2001 +From: Alison Chaiken +Date: Fri, 16 May 2014 09:25:53 +0200 +Subject: [PATCH] man: readahead: fix cmdline switch inconsistency between + readahead.c and docs + +Source code has "files-max" and XML has --max-files. +--- + man/systemd-readahead-replay.service.xml | 2 +- + src/readahead/readahead.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-readahead-replay.service.xml man/systemd-readahead-replay.service.xml +index 67b41f5..669fe78 100644 +--- man/systemd-readahead-replay.service.xml ++++ man/systemd-readahead-replay.service.xml +@@ -117,7 +117,7 @@ + + + +- ++ + + Maximum number of + files to read ahead. Only valid +diff --git src/readahead/readahead.c src/readahead/readahead.c +index d6729ec..73cf538 100644 +--- src/readahead/readahead.c ++++ src/readahead/readahead.c +@@ -42,7 +42,7 @@ static int help(void) { + "Collect read-ahead data on early boot.\n\n" + " -h --help Show this help\n" + " --version Show package version\n" +- " --max-files=INT Maximum number of files to read ahead\n" ++ " --files-max=INT Maximum number of files to read ahead\n" + " --file-size-max=BYTES Maximum size of files to read ahead\n" + " --timeout=USEC Maximum time to spend collecting data\n\n\n", + program_invocation_short_name); +-- +1.7.9.2 + diff --git a/0008-man-update-journald-rate-limit-defaults.patch b/0008-man-update-journald-rate-limit-defaults.patch new file mode 100644 index 00000000..54aad943 --- /dev/null +++ b/0008-man-update-journald-rate-limit-defaults.patch @@ -0,0 +1,28 @@ +From 8f18f550e7023948f199616fdfbb0f09711fd615 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Wed, 30 Apr 2014 19:53:13 +0300 +Subject: [PATCH] man: update journald rate limit defaults + +This brings the man page back into sync with the actual code. +--- + man/journald.conf.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/journald.conf.xml man/journald.conf.xml +index 239a2ec..5cd09a2 100644 +--- man/journald.conf.xml ++++ man/journald.conf.xml +@@ -190,8 +190,8 @@ + limiting is applied per-service, so + that two services which log do not + interfere with each other's +- limits. Defaults to 200 messages in +- 10s. The time specification for ++ limits. Defaults to 1000 messages in ++ 30s. The time specification for + RateLimitInterval= + may be specified in the following + units: s, +-- +1.7.9.2 + diff --git a/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch b/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch new file mode 100644 index 00000000..a88af680 --- /dev/null +++ b/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch @@ -0,0 +1,56 @@ +From 9f24adc288de142d6606fde3c5a5971613f3b6b9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 May 2014 19:37:19 +0200 +Subject: [PATCH] nspawn: properly format container_uuid in UUID format + +http://lists.freedesktop.org/archives/systemd-devel/2014-April/018971.html +--- + src/nspawn/nspawn.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 0bd52da..6be4dca 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) { + return 0; + } + ++static char* id128_format_as_uuid(sd_id128_t id, char s[37]) { ++ ++ snprintf(s, 37, ++ "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", ++ SD_ID128_FORMAT_VAL(id)); ++ ++ return s; ++} ++ + static int setup_boot_id(const char *dest) { + _cleanup_free_ char *from = NULL, *to = NULL; + sd_id128_t rnd = {}; +@@ -794,10 +803,7 @@ static int setup_boot_id(const char *dest) { + return r; + } + +- snprintf(as_uuid, sizeof(as_uuid), +- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", +- SD_ID128_FORMAT_VAL(rnd)); +- char_array_0(as_uuid); ++ id128_format_as_uuid(rnd, as_uuid); + + r = write_string_file(from, as_uuid); + if (r < 0) { +@@ -2954,7 +2960,9 @@ int main(int argc, char *argv[]) { + } + + if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) { +- if (asprintf((char**)(envp + n_env++), "container_uuid=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(arg_uuid)) < 0) { ++ char as_uuid[37]; ++ ++ if (asprintf((char**)(envp + n_env++), "container_uuid=%s", id128_format_as_uuid(arg_uuid, as_uuid)) < 0) { + log_oom(); + goto child_fail; + } +-- +1.7.9.2 + diff --git a/0010-logind-allow-suspending-if-there-are-no-displays.patch b/0010-logind-allow-suspending-if-there-are-no-displays.patch new file mode 100644 index 00000000..a12ff513 --- /dev/null +++ b/0010-logind-allow-suspending-if-there-are-no-displays.patch @@ -0,0 +1,42 @@ +From d36d90933a832bd1e1eb8e3d16b3de73f91636b4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Mon, 28 Apr 2014 00:58:56 +0300 +Subject: [PATCH] logind: allow suspending if there are no displays + +With proprietary graphics drivers, there won't be any 'drm' devices in +sysfs, so logind will never suspend the system upon closing the lid, +even if only one (internal) display is connected. This has been reported +by multiple users so far. + +IMHO, it's better to suspend the system in this case for safety reasons, +to avoid having nvidia blob users' laptops overheat, for the same reason +that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes). +--- + src/login/logind-action.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index ae9cd48..36ee441 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -79,14 +79,12 @@ int manager_handle_action( + return 0; + } + +- /* If we have more than one or no displays connected, +- * don't react to lid closing. The no display case we +- * treat like this under the assumption that there is +- * no modern drm driver available. */ ++ /* If we have more than one display connected, ++ * don't react to lid closing. */ + n = manager_count_displays(m); + if (n < 0) + log_warning("Display counting failed: %s", strerror(-n)); +- else if (n != 1) { ++ else if (n > 1) { + log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } +-- +1.7.9.2 + diff --git a/0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch b/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch similarity index 100% rename from 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch rename to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch diff --git a/1017-udev-serialize-synchronize-block-device-event-handli.patch b/1017-udev-serialize-synchronize-block-device-event-handli.patch new file mode 100644 index 00000000..559c0bc3 --- /dev/null +++ b/1017-udev-serialize-synchronize-block-device-event-handli.patch @@ -0,0 +1,83 @@ +From 3ebdb81ef088afd3b4c72b516beb5610f8c93a0d Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 13 Apr 2014 19:54:27 -0700 +Subject: [PATCH] udev: serialize/synchronize block device event handling with + file locks + +--- + src/udev/udevd.c | 33 +++++++++++++++++++++++++++++++-- + 1 file changed, 31 insertions(+), 2 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index f9ee368..aecd208 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -265,6 +266,7 @@ static void worker_new(struct event *event) + for (;;) { + struct udev_event *udev_event; + struct worker_message msg; ++ int fd_lock = -1; + int err; + + log_debug("seq %llu running", udev_device_get_seqnum(dev)); +@@ -280,6 +282,30 @@ static void worker_new(struct event *event) + if (exec_delay > 0) + udev_event->exec_delay = exec_delay; + ++ /* ++ * Take a "read lock" on the device node; this establishes ++ * a concept of device "ownership" to serialize device ++ * access. External processes holding a "write lock" will ++ * cause udev to skip the event handling; in the case udev ++ * acquired the lock, the external process will block until ++ * udev has finished its event handling. ++ */ ++ if (streq_ptr("block", udev_device_get_subsystem(dev))) { ++ struct udev_device *d = dev; ++ ++ if (streq_ptr("partition", udev_device_get_devtype(d))) ++ d = udev_device_get_parent(d); ++ ++ if (d) { ++ fd_lock = open(udev_device_get_devnode(d), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { ++ log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); ++ err = -EWOULDBLOCK; ++ goto skip; ++ } ++ } ++ } ++ + /* apply rules, create node, symlinks */ + err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); + +@@ -292,13 +318,16 @@ static void worker_new(struct event *event) + udev_device_update_db(dev); + } + ++ if (fd_lock >= 0) ++ close(fd_lock); ++ + /* send processed event back to libudev listeners */ + udev_monitor_send_device(worker_monitor, NULL, dev); + ++skip: + /* send udevd the result of the event execution */ + memzero(&msg, sizeof(struct worker_message)); +- if (err != 0) +- msg.exitcode = err; ++ msg.exitcode = err; + msg.pid = getpid(); + send(worker_watch[WRITE_END], &msg, sizeof(struct worker_message), 0); + +-- +1.7.9.2 + diff --git a/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch b/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch new file mode 100644 index 00000000..e3bd7286 --- /dev/null +++ b/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch @@ -0,0 +1,140 @@ +From 1ea972174baba40dbc80c51cbfc4edc49764b59b Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 14 May 2014 00:34:49 +0200 +Subject: [PATCH] udev: do not skip the execution of RUN when renaming a + network device fails + +--- + src/test/test-udev.c | 5 ++--- + src/udev/udev-event.c | 11 +++++------ + src/udev/udev.h | 2 +- + src/udev/udevadm-test.c | 13 +++++-------- + src/udev/udevd.c | 5 ++--- + 5 files changed, 15 insertions(+), 21 deletions(-) + +diff --git src/test/test-udev.c src/test/test-udev.c +index b064744..b057cc8 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -155,9 +155,8 @@ int main(int argc, char *argv[]) { + } + } + +- err = udev_event_execute_rules(event, rules, &sigmask_orig); +- if (err == 0) +- udev_event_execute_run(event, NULL); ++ udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_run(event, 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 2cab42b..5213a4a 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -776,13 +776,12 @@ static int rename_netif(struct udev_event *event) + return r; + } + +-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) ++void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) + { + struct udev_device *dev = event->dev; +- int err = 0; + + if (udev_device_get_subsystem(dev) == NULL) +- return -1; ++ return; + + if (streq(udev_device_get_action(dev), "remove")) { + udev_device_read_db(dev, NULL); +@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, + event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) { + char syspath[UTIL_PATH_SIZE]; + char *pos; ++ int r; + +- err = rename_netif(event); +- if (err == 0) { ++ r = rename_netif(event); ++ if (r >= 0) { + log_debug("renamed netif to '%s'", event->name); + + /* remember old name */ +@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, + udev_device_unref(event->dev_db); + event->dev_db = NULL; + } +- return err; + } + + void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) +diff --git src/udev/udev.h src/udev/udev.h +index 936adfb..62538bc 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string, + int udev_event_spawn(struct udev_event *event, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); ++void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); + void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); + int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); + +diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c +index 6cd311b..6a2f548 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + _cleanup_udev_device_unref_ struct udev_device *dev = NULL; + _cleanup_udev_event_unref_ struct udev_event *event = NULL; + sigset_t mask, sigmask_orig; +- int err; + int rc = 0, c; + + static const struct option options[] = { +@@ -139,18 +138,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + goto out; + } + +- err = udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 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)); + +- if (err == 0) { +- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { +- char program[UTIL_PATH_SIZE]; ++ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { ++ char program[UTIL_PATH_SIZE]; + +- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); +- printf("run: '%s'\n", program); +- } ++ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); ++ printf("run: '%s'\n", program); + } + out: + if (event != NULL && event->fd_signal >= 0) +diff --git src/udev/udevd.c src/udev/udevd.c +index aecd208..bc0696c 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -307,10 +307,9 @@ static void worker_new(struct event *event) + } + + /* apply rules, create node, symlinks */ +- err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, rules, &sigmask_orig); + +- if (err == 0) +- udev_event_execute_run(udev_event, &sigmask_orig); ++ udev_event_execute_run(udev_event, &sigmask_orig); + + /* apply/restore inotify watch */ + if (err == 0 && udev_event->inotify_watch) { +-- +1.7.9.2 + diff --git a/1019-udev-avoid-use-of-uninitialized-err.patch b/1019-udev-avoid-use-of-uninitialized-err.patch new file mode 100644 index 00000000..c520436e --- /dev/null +++ b/1019-udev-avoid-use-of-uninitialized-err.patch @@ -0,0 +1,37 @@ +From bf9bead187802a52a1f376a03caee762d663e945 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 16 May 2014 23:46:48 +0200 +Subject: [PATCH] udev: avoid use of uninitialized err + +After 1ea972174baba40dbc80c51cbfc4edc49764b59b err is no longer +set unless we hit a special case. Initialize it to 0 and remove +a check that will never fail. +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index bc0696c..1c9488e 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -267,7 +267,7 @@ static void worker_new(struct event *event) + struct udev_event *udev_event; + struct worker_message msg; + int fd_lock = -1; +- int err; ++ int err = 0; + + log_debug("seq %llu running", udev_device_get_seqnum(dev)); + udev_event = udev_event_new(dev); +@@ -312,7 +312,7 @@ static void worker_new(struct event *event) + udev_event_execute_run(udev_event, &sigmask_orig); + + /* apply/restore inotify watch */ +- if (err == 0 && udev_event->inotify_watch) { ++ if (udev_event->inotify_watch) { + udev_watch_begin(udev, dev); + udev_device_update_db(dev); + } +-- +1.7.9.2 + diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index 87518f9d..93db6de4 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -1,20 +1,20 @@ addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") -addFilter(".*files-duplicate .*/reboot.8.*") -addFilter(".*files-duplicate .*/sd_is_socket.3.*") -addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion.sh") -addFilter("non-conffile-in-etc /etc/rpm/macros.systemd") +addFilter(".*files-duplicate .*/reboot\.8.*") +addFilter(".*files-duplicate .*/sd_is_socket\.3.*") +addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh") +addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd") addFilter(".*dbus-policy-allow-receive") addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*") addFilter(".*dangling-symlink /lib/udev/devices/core.*") addFilter(".*dangling-symlink /lib/udev/devices/fd.*") -addFilter(".*incoherent-init-script-name boot.udev.*") -addFilter(".init-script-without-%stop_on_removal-preun /etc/init.d/boot.udev") -addFilter(".init-script-without-%restart_on_update-postun /etc/init.d/boot.udev") +addFilter(".*incoherent-init-script-name boot\.udev.*") +addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev") +addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev") addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") - +addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") diff --git a/systemd-mini.changes b/systemd-mini.changes index 6eea7ee7..3d58685a 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,86 @@ +------------------------------------------------------------------- +Wed May 21 19:23:32 UTC 2014 - coolo@suse.com + +- fix file list of systemd.pc + +------------------------------------------------------------------- +Wed May 21 13:24:13 UTC 2014 - werner@suse.de + +- Add a workaround for old distributions like 13.1 to avoid + deadlocks due NFS shares stopped after network + +------------------------------------------------------------------- +Wed May 21 10:23:14 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-journal-cleanup-up-error-handling-in-update_catalog.patch + 0002-journal-properly-detect-language-specified-in-line.patch + 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch + +------------------------------------------------------------------- +Wed May 21 10:14:32 UTC 2014 - werner@suse.de + +- Add upstream patches to update usb and pci company identifiers + 0001-hwdb-update.patch + 0002-hwdb-update.patch + 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch + 0004-hwdb-update.patch + 0005-hwdb-update.patch + +------------------------------------------------------------------- +Wed May 21 08:33:34 UTC 2014 - werner@suse.de + +- Move systemd.pc and udev.pc to their main packages (bnc#876587) + +------------------------------------------------------------------- +Tue May 20 12:13:05 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-conf-parser-silently-ignore-sections-starting-with-X.patch + 0002-man-note-that-entire-sections-can-now-be-ignored.patch + 0004-machined-make-sure-GetMachineAddresses-is-available-.patch + 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch + 0006-login-add-mir-to-the-list-of-session-types.patch + 0007-logind-fix-Display-property-of-user-objects.patch + +------------------------------------------------------------------- +Tue May 20 11:31:46 UTC 2014 - werner@suse.de + +- Add upstream patches to update BluTooth company identifiers + 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Tue May 20 11:03:54 UTC 2014 - werner@suse.de + +- Add upstream patches to allow processes to serialize block device + events, also do execute the RUN tag if rename of a network device + fails: + 1016-udev-serialize-synchronize-block-device-event-handli.patch + 1017-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch + 1018-udev-avoid-use-of-uninitialized-err.patch +- Rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch + to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch + +------------------------------------------------------------------- +Mon May 19 13:21:18 UTC 2014 - werner@suse.de + +- Add upstream patches mainly for better lid handling (bnc#878525 + and bnc#868019) + 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch + 0002-logind-fix-printf-format.patch + 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch + 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch + 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch + 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch + 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch + 0008-man-update-journald-rate-limit-defaults.patch + 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch + 0010-logind-allow-suspending-if-there-are-no-displays.patch + ------------------------------------------------------------------- Fri May 16 12:00:12 UTC 2014 - werner@suse.de @@ -7,7 +90,7 @@ Fri May 16 12:00:12 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Fri May 16 11:47:06 UTC 2014 - werner@suse.de -- Add upstram patches +- Add upstream patches 0001-core-close-socket-fds-asynchronously.patch 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch 0003-core-make-sure-to-serialize-jobs-for-all-units.patch @@ -15,7 +98,7 @@ Fri May 16 11:47:06 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Wed May 14 07:37:08 UTC 2014 - werner@suse.de -- Add upstram patches +- Add upstream patches 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch to avoid that in pam session unwanted file descriptors are inherited @@ -30,7 +113,7 @@ Tue May 13 08:28:05 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Mon May 12 13:35:25 UTC 2014 - werner@suse.de -- Add upstram patches for backlight +- Add upstream patches for backlight 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch 0002-backlight-do-nothing-if-max_brightness-is-0.patch 0003-backlight-unify-error-messages.patch @@ -103,7 +186,7 @@ Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-bash-completion-fix-__get_startable_units.patch 0002-sysctl-replaces-some-slashes-with-dots.patch 0003-delta-do-not-use-unicode-chars-in-C-locale.patch @@ -188,7 +271,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de - Add patch portmap-wants-rpcbind-socket.patch to make sure that rpcbind socket as well as service is up with the target -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-journal-fix-export-of-messages-containing-newlines.patch 0002-systemctl-update-NAME-to-PATTERN-in-help.patch 0003-tty-ask-password-agent-return-negative-errno.patch @@ -198,7 +281,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch @@ -261,7 +344,7 @@ Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de - Add Robert's udev-generate-peristent-rule shell script to udev's tool library -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch 0006-Do-not-return-1-EINVAL-on-allocation-error.patch diff --git a/systemd-mini.spec b/systemd-mini.spec index af3e53e2..d75bed5b 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -410,8 +410,6 @@ Patch208: parse-crypttab-for-noauto-option.patch # PATCH-FIX-UPSTREAM added at 2014/05/12 Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch # PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch210: 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch # PATCH-FIX-UPSTREAM added at 2014/05/12 Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch @@ -439,6 +437,64 @@ Patch222: 0001-core-close-socket-fds-asynchronously.patch Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch226: 0002-logind-fix-printf-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch232: 0008-man-update-journald-rate-limit-defaults.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch +# PATCHFIX-UPSTREAM added at 2014/05/20 +Patch245: 0007-logind-fix-Display-property-of-user-objects.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch246: 0001-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch247: 0002-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch249: 0004-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch250: 0005-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch252: 0002-journal-properly-detect-language-specified-in-line.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch # UDEV PATCHES # ============ @@ -476,6 +532,14 @@ Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch Patch1014: 1014-udev-update-net_id-comments.patch # PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -833,7 +897,6 @@ cp %{SOURCE7} m4/ %patch207 -p0 %patch208 -p1 %patch209 -p0 -%patch210 -p0 %patch211 -p0 %patch212 -p0 %patch213 -p0 @@ -848,6 +911,35 @@ cp %{SOURCE7} m4/ %patch222 -p0 %patch223 -p0 %patch224 -p0 +%patch225 -p0 +%patch226 -p0 +%patch227 -p0 +%patch228 -p0 +%patch229 -p0 +%patch230 -p0 +%patch231 -p0 +%patch232 -p0 +%patch233 -p0 +%patch234 -p0 +%patch235 -p0 +%patch236 -p0 +%patch237 -p0 +%patch238 -p0 +%patch239 -p0 +%patch240 -p0 +%patch241 -p0 +%patch242 -p0 +%patch243 -p0 +%patch244 -p0 +%patch245 -p0 +%patch246 -p0 +%patch247 -p0 +%patch248 -p0 +%patch249 -p0 +%patch250 -p0 +%patch251 -p0 +%patch252 -p0 +%patch253 -p0 # udev patches %patch1001 -p1 @@ -866,6 +958,10 @@ cp %{SOURCE7} m4/ %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p0 +%patch1017 -p0 +%patch1018 -p0 +%patch1019 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -1117,6 +1213,30 @@ do done %endif +%if 0%{suse_version} < 1310 +cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' + [Unit] + Description=Fix against deadlock at shutdown + Wants=remote-fs.target remote-fs-pre.target + Before=remote-fs.target systemd-logind.service + After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target + ConditionPathExists=|/etc/init.d/autofs + ConditionPathExists=|/etc/init.d/nfs + + [Service] + Type=oneshot + RemainAfterExit=true + ExecStart=/bin/true + ExecStop=-/etc/init.d/autofs stop + ExecStop=-/etc/init.d/nfs stop + + [Install] + WantedBy=remote-fs.target + EOF + mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants + ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1512,6 +1632,9 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed +%if 0%{?suse_version} > 1310 +%{_datadir}/pkgconfig/systemd.pc +%endif %if ! 0%{?bootstrap} %files bash-completion -f files.completion @@ -1535,7 +1658,9 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h +%if 0%{?suse_version} <= 1310 %{_datadir}/pkgconfig/systemd.pc +%endif %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -1609,6 +1734,9 @@ exit 0 %dir %{_prefix}/lib/systemd/network %{_prefix}/lib/systemd/network/*.link %{_prefix}/lib/systemd/network/*.network +%if 0%{?suse_version} > 1310 +%{_datadir}/pkgconfig/udev.pc +%endif %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) @@ -1618,7 +1746,9 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so +%if 0%{?suse_version} <= 1310 %{_datadir}/pkgconfig/udev.pc +%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index 87518f9d..93db6de4 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,20 +1,20 @@ addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") -addFilter(".*files-duplicate .*/reboot.8.*") -addFilter(".*files-duplicate .*/sd_is_socket.3.*") -addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion.sh") -addFilter("non-conffile-in-etc /etc/rpm/macros.systemd") +addFilter(".*files-duplicate .*/reboot\.8.*") +addFilter(".*files-duplicate .*/sd_is_socket\.3.*") +addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh") +addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd") addFilter(".*dbus-policy-allow-receive") addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*") addFilter(".*dangling-symlink /lib/udev/devices/core.*") addFilter(".*dangling-symlink /lib/udev/devices/fd.*") -addFilter(".*incoherent-init-script-name boot.udev.*") -addFilter(".init-script-without-%stop_on_removal-preun /etc/init.d/boot.udev") -addFilter(".init-script-without-%restart_on_update-postun /etc/init.d/boot.udev") +addFilter(".*incoherent-init-script-name boot\.udev.*") +addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev") +addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev") addFilter(".*devel-file-in-non-devel-package.*udev.pc.*") addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") - +addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") diff --git a/systemd.changes b/systemd.changes index 6eea7ee7..3d58685a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,86 @@ +------------------------------------------------------------------- +Wed May 21 19:23:32 UTC 2014 - coolo@suse.com + +- fix file list of systemd.pc + +------------------------------------------------------------------- +Wed May 21 13:24:13 UTC 2014 - werner@suse.de + +- Add a workaround for old distributions like 13.1 to avoid + deadlocks due NFS shares stopped after network + +------------------------------------------------------------------- +Wed May 21 10:23:14 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-journal-cleanup-up-error-handling-in-update_catalog.patch + 0002-journal-properly-detect-language-specified-in-line.patch + 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch + +------------------------------------------------------------------- +Wed May 21 10:14:32 UTC 2014 - werner@suse.de + +- Add upstream patches to update usb and pci company identifiers + 0001-hwdb-update.patch + 0002-hwdb-update.patch + 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch + 0004-hwdb-update.patch + 0005-hwdb-update.patch + +------------------------------------------------------------------- +Wed May 21 08:33:34 UTC 2014 - werner@suse.de + +- Move systemd.pc and udev.pc to their main packages (bnc#876587) + +------------------------------------------------------------------- +Tue May 20 12:13:05 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-conf-parser-silently-ignore-sections-starting-with-X.patch + 0002-man-note-that-entire-sections-can-now-be-ignored.patch + 0004-machined-make-sure-GetMachineAddresses-is-available-.patch + 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch + 0006-login-add-mir-to-the-list-of-session-types.patch + 0007-logind-fix-Display-property-of-user-objects.patch + +------------------------------------------------------------------- +Tue May 20 11:31:46 UTC 2014 - werner@suse.de + +- Add upstream patches to update BluTooth company identifiers + 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Tue May 20 11:03:54 UTC 2014 - werner@suse.de + +- Add upstream patches to allow processes to serialize block device + events, also do execute the RUN tag if rename of a network device + fails: + 1016-udev-serialize-synchronize-block-device-event-handli.patch + 1017-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch + 1018-udev-avoid-use-of-uninitialized-err.patch +- Rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch + to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch + +------------------------------------------------------------------- +Mon May 19 13:21:18 UTC 2014 - werner@suse.de + +- Add upstream patches mainly for better lid handling (bnc#878525 + and bnc#868019) + 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch + 0002-logind-fix-printf-format.patch + 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch + 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch + 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch + 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch + 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch + 0008-man-update-journald-rate-limit-defaults.patch + 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch + 0010-logind-allow-suspending-if-there-are-no-displays.patch + ------------------------------------------------------------------- Fri May 16 12:00:12 UTC 2014 - werner@suse.de @@ -7,7 +90,7 @@ Fri May 16 12:00:12 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Fri May 16 11:47:06 UTC 2014 - werner@suse.de -- Add upstram patches +- Add upstream patches 0001-core-close-socket-fds-asynchronously.patch 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch 0003-core-make-sure-to-serialize-jobs-for-all-units.patch @@ -15,7 +98,7 @@ Fri May 16 11:47:06 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Wed May 14 07:37:08 UTC 2014 - werner@suse.de -- Add upstram patches +- Add upstream patches 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch to avoid that in pam session unwanted file descriptors are inherited @@ -30,7 +113,7 @@ Tue May 13 08:28:05 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Mon May 12 13:35:25 UTC 2014 - werner@suse.de -- Add upstram patches for backlight +- Add upstream patches for backlight 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch 0002-backlight-do-nothing-if-max_brightness-is-0.patch 0003-backlight-unify-error-messages.patch @@ -103,7 +186,7 @@ Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-bash-completion-fix-__get_startable_units.patch 0002-sysctl-replaces-some-slashes-with-dots.patch 0003-delta-do-not-use-unicode-chars-in-C-locale.patch @@ -188,7 +271,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de - Add patch portmap-wants-rpcbind-socket.patch to make sure that rpcbind socket as well as service is up with the target -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-journal-fix-export-of-messages-containing-newlines.patch 0002-systemctl-update-NAME-to-PATTERN-in-help.patch 0003-tty-ask-password-agent-return-negative-errno.patch @@ -198,7 +281,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de ------------------------------------------------------------------- Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch @@ -261,7 +344,7 @@ Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de - Add Robert's udev-generate-peristent-rule shell script to udev's tool library -- Add or port upstram bugfix patches: +- Add or port upstream bugfix patches: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch 0006-Do-not-return-1-EINVAL-on-allocation-error.patch diff --git a/systemd.spec b/systemd.spec index 27df9a98..88a3b8ab 100644 --- a/systemd.spec +++ b/systemd.spec @@ -405,8 +405,6 @@ Patch208: parse-crypttab-for-noauto-option.patch # PATCH-FIX-UPSTREAM added at 2014/05/12 Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch # PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch210: 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch # PATCH-FIX-UPSTREAM added at 2014/05/12 Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch @@ -434,6 +432,64 @@ Patch222: 0001-core-close-socket-fds-asynchronously.patch Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch226: 0002-logind-fix-printf-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch232: 0008-man-update-journald-rate-limit-defaults.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch +# PATCHFIX-UPSTREAM added at 2014/05/20 +Patch245: 0007-logind-fix-Display-property-of-user-objects.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch246: 0001-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch247: 0002-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch249: 0004-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch250: 0005-hwdb-update.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch252: 0002-journal-properly-detect-language-specified-in-line.patch +# PATCHFIX-UPSTREAM added at 2014/05/21 +Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch # UDEV PATCHES # ============ @@ -471,6 +527,14 @@ Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch Patch1014: 1014-udev-update-net_id-comments.patch # PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -828,7 +892,6 @@ cp %{SOURCE7} m4/ %patch207 -p0 %patch208 -p1 %patch209 -p0 -%patch210 -p0 %patch211 -p0 %patch212 -p0 %patch213 -p0 @@ -843,6 +906,35 @@ cp %{SOURCE7} m4/ %patch222 -p0 %patch223 -p0 %patch224 -p0 +%patch225 -p0 +%patch226 -p0 +%patch227 -p0 +%patch228 -p0 +%patch229 -p0 +%patch230 -p0 +%patch231 -p0 +%patch232 -p0 +%patch233 -p0 +%patch234 -p0 +%patch235 -p0 +%patch236 -p0 +%patch237 -p0 +%patch238 -p0 +%patch239 -p0 +%patch240 -p0 +%patch241 -p0 +%patch242 -p0 +%patch243 -p0 +%patch244 -p0 +%patch245 -p0 +%patch246 -p0 +%patch247 -p0 +%patch248 -p0 +%patch249 -p0 +%patch250 -p0 +%patch251 -p0 +%patch252 -p0 +%patch253 -p0 # udev patches %patch1001 -p1 @@ -861,6 +953,10 @@ cp %{SOURCE7} m4/ %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 +%patch1016 -p0 +%patch1017 -p0 +%patch1018 -p0 +%patch1019 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -1112,6 +1208,30 @@ do done %endif +%if 0%{suse_version} < 1310 +cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' + [Unit] + Description=Fix against deadlock at shutdown + Wants=remote-fs.target remote-fs-pre.target + Before=remote-fs.target systemd-logind.service + After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target + ConditionPathExists=|/etc/init.d/autofs + ConditionPathExists=|/etc/init.d/nfs + + [Service] + Type=oneshot + RemainAfterExit=true + ExecStart=/bin/true + ExecStop=-/etc/init.d/autofs stop + ExecStop=-/etc/init.d/nfs stop + + [Install] + WantedBy=remote-fs.target + EOF + mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants + ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1507,6 +1627,9 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed +%if 0%{?suse_version} > 1310 +%{_datadir}/pkgconfig/systemd.pc +%endif %if ! 0%{?bootstrap} %files bash-completion -f files.completion @@ -1530,7 +1653,9 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h +%if 0%{?suse_version} <= 1310 %{_datadir}/pkgconfig/systemd.pc +%endif %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -1604,6 +1729,9 @@ exit 0 %dir %{_prefix}/lib/systemd/network %{_prefix}/lib/systemd/network/*.link %{_prefix}/lib/systemd/network/*.network +%if 0%{?suse_version} > 1310 +%{_datadir}/pkgconfig/udev.pc +%endif %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) @@ -1613,7 +1741,9 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so +%if 0%{?suse_version} <= 1310 %{_datadir}/pkgconfig/udev.pc +%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc From f026ff3dde079a2d7d99b2a358fa0d7e04751e60311d7c1f8f07d3285ce73a1c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 28 May 2014 04:43:08 +0000 Subject: [PATCH 184/221] Accepting request 235517 from Base:System - Add upstream patches 0001-Do-not-unescape-unit-names-in-Install-section.patch 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - Add upstream patch 1020-udev-keyboard-also-hook-into-change-events.patch - Add upstream patches to update keyboard data base 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch - Add upstream patches 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch 0002-nspawn-restore-journal-directory-is-empty-check.patch 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch 0004-socket-properly-handle-if-our-service-vanished-durin.patch - Add upstream patches 0001-Do-not-unescape-unit-names-in-Install-section.patch 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - Add upstream patch 1020-udev-keyboard-also-hook-into-change-events.patch - Add upstream patches to update keyboard data base 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch - Add upstream patches 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch 0002-nspawn-restore-journal-directory-is-empty-check.patch 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch OBS-URL: https://build.opensuse.org/request/show/235517 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=189 --- ...escape-unit-names-in-Install-section.patch | 21 ++++ ...map-Add-Lenovo-Enhanced-USB-Keyboard.patch | 36 ++++++ ...bind-mount-journal-on-top-of-a-non-e.patch | 45 ++++++++ ...bus_open_transport_systemd-instead-o.patch | 46 ++++++++ ...eymap-Asus-EeePC-touchpad-toggle-key.patch | 28 +++++ ...ore-journal-directory-is-empty-check.patch | 30 +++++ ...der-failure-when-reading-drop-ins-fa.patch | 109 ++++++++++++++++++ ...handle-if-our-service-vanished-durin.patch | 30 +++++ ...eyboard-also-hook-into-change-events.patch | 27 +++++ systemd-mini.changes | 25 ++++ systemd-mini.spec | 27 +++++ systemd.changes | 25 ++++ systemd.spec | 27 +++++ 13 files changed, 476 insertions(+) create mode 100644 0001-Do-not-unescape-unit-names-in-Install-section.patch create mode 100644 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch create mode 100644 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch create mode 100644 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch create mode 100644 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch create mode 100644 0002-nspawn-restore-journal-directory-is-empty-check.patch create mode 100644 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch create mode 100644 0004-socket-properly-handle-if-our-service-vanished-durin.patch create mode 100644 1020-udev-keyboard-also-hook-into-change-events.patch diff --git a/0001-Do-not-unescape-unit-names-in-Install-section.patch b/0001-Do-not-unescape-unit-names-in-Install-section.patch new file mode 100644 index 00000000..18e4aaa1 --- /dev/null +++ b/0001-Do-not-unescape-unit-names-in-Install-section.patch @@ -0,0 +1,21 @@ +Based on 000f6e5667eb4f73e137cbd0d7395a9f9db7728a Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Mon, 26 May 2014 20:09:45 +0200 +Subject: [PATCH] Do not unescape unit names in [Install] section + +https://bugs.freedesktop.org/show_bug.cgi?id=49316 +--- + src/shared/conf-parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c 2014-05-27 07:36:20.478236631 +0000 +@@ -723,7 +723,7 @@ int config_parse_strv(const char *unit, + FOREACH_WORD_QUOTED(w, l, rvalue, state) { + _cleanup_free_ char *n; + +- n = cunescape_length(w, l); ++ n = strndup(w, l); + if (!n) + return log_oom(); + diff --git a/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch b/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch new file mode 100644 index 00000000..09bd55ef --- /dev/null +++ b/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch @@ -0,0 +1,36 @@ +From d258d4967eb24122c2b1014d4e873f61b633f1d2 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Sun, 25 May 2014 11:57:22 +0200 +Subject: [PATCH] keymap: Add Lenovo Enhanced USB Keyboard + +https://bugs.freedesktop.org/show_bug.cgi?id=77234 +--- + hwdb/60-keyboard.hwdb | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 832c686..fe5b3ee 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -579,6 +579,18 @@ keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr* + KEYBOARD_KEY_f1=f21 + ++# enhanced USB keyboard ++keyboard:usb:v04B3p301B* ++ KEYBOARD_KEY_90001=prog1 # ThinkVantage ++ KEYBOARD_KEY_90002=screenlock ++ KEYBOARD_KEY_90003=file ++ KEYBOARD_KEY_90004=wordprocessor ++ KEYBOARD_KEY_90005=spreadsheet ++ KEYBOARD_KEY_90006=calc ++ KEYBOARD_KEY_90007=mail ++ KEYBOARD_KEY_90008=www ++ ++ + ########################################################### + # Logitech + ########################################################### +-- +1.7.9.2 + diff --git a/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch b/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch new file mode 100644 index 00000000..7d5b066f --- /dev/null +++ b/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch @@ -0,0 +1,45 @@ +From e6a4a517befe559adf6d1dbbadf425c3538849c9 Mon Sep 17 00:00:00 2001 +From: Djalal Harouni +Date: Fri, 11 Apr 2014 01:45:52 +0100 +Subject: [PATCH] nspawn: allow to bind mount journal on top of a non empty + container journal dentry + +Currently if nspawn was called with --link-journal=host or +--link-journal=auto and the right /var/log/journal/machine-id/ exists +then the bind mount the subdirectory into the container might fail due +to the ~/mycontainer/var/log/journal/machine-id/ of the container not +being empty. + +There is no reason to check if the container journal subdir is empty +since there will be a bind mount on top of it. The user asked for a bind +mount so give it. + +Note: a next call with --link-journal=guest may fail due to the +/var/log/journal/machine-id/ on the host not being empty. + +https://bugs.freedesktop.org/show_bug.cgi?id=76193 + +Reported-by: Tobias Hunger +--- + src/nspawn/nspawn.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 9d9238f..ef84664 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1143,11 +1143,6 @@ static int setup_journal(const char *directory) { + } else if (access(p, F_OK) < 0) + return 0; + +- if (dir_is_empty(q) == 0) { +- log_error("%s not empty.", q); +- return -ENOTEMPTY; +- } +- + r = mkdir_p(q, 0755); + if (r < 0) { + log_error("Failed to create %s: %m", q); +-- +1.7.9.2 + diff --git a/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch b/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch new file mode 100644 index 00000000..c18fcb9e --- /dev/null +++ b/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch @@ -0,0 +1,46 @@ +From 1f89214e6e990a0b552f6854f87f8514ca384956 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 21 Feb 2014 11:55:24 +0100 +Subject: [PATCH] analyze/run: use bus_open_transport_systemd instead of + bus_open_transport + +Both systemd-analyze and systemd-run only access org.freedesktop.systemd1 +on the bus. This patch allows using systemd-run --user and systemd-analyze +--user even if the user session's bus is not properly integrated with the +systemd user unit. + +https://bugs.freedesktop.org/show_bug.cgi?id=79252 and other reports... +--- + src/analyze/analyze.c | 2 +- + src/run/run.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/analyze/analyze.c src/analyze/analyze.c +index 4c5fcfe..0a4190c 100644 +--- src/analyze/analyze.c ++++ src/analyze/analyze.c +@@ -1335,7 +1335,7 @@ int main(int argc, char *argv[]) { + if (r <= 0) + goto finish; + +- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); ++ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); + if (r < 0) { + log_error("Failed to create bus connection: %s", strerror(-r)); + goto finish; +diff --git src/run/run.c src/run/run.c +index e4c695c..9d5527b 100644 +--- src/run/run.c ++++ src/run/run.c +@@ -593,7 +593,7 @@ int main(int argc, char* argv[]) { + arg_description = description; + } + +- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); ++ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); + if (r < 0) { + log_error("Failed to create bus connection: %s", strerror(-r)); + goto finish; +-- +1.7.9.2 + diff --git a/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch b/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch new file mode 100644 index 00000000..e921c60b --- /dev/null +++ b/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch @@ -0,0 +1,28 @@ +From e55edb22a71e67f01534d28f91c6aa27bba48fc1 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Sun, 25 May 2014 12:16:35 +0200 +Subject: [PATCH] keymap: Asus EeePC touchpad toggle key + +Originally is KEY_TOUCHPAD_TOGGLE, but X.org can't handle the big key events, +so use the F21 convention. + +https://bugs.freedesktop.org/show_bug.cgi?id=72807 +--- + hwdb/60-keyboard.hwdb | 1 + + 1 file changed, 1 insertion(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index fe5b3ee..05e6a04 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -138,6 +138,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* + KEYBOARD_KEY_ef=mute + + keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* ++keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* + KEYBOARD_KEY_6b=f21 # Touchpad Toggle + + ########################################################### +-- +1.7.9.2 + diff --git a/0002-nspawn-restore-journal-directory-is-empty-check.patch b/0002-nspawn-restore-journal-directory-is-empty-check.patch new file mode 100644 index 00000000..c3d60bd4 --- /dev/null +++ b/0002-nspawn-restore-journal-directory-is-empty-check.patch @@ -0,0 +1,30 @@ +From cdb2b9d05a2f3d649f47bd2ba24eb3fe30b52e92 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 May 2014 15:19:46 +0900 +Subject: [PATCH] nspawn: restore journal directory is empty check + +This undoes part of commit e6a4a517befe559adf6d1dbbadf425c3538849c9. + +Instead of removing the error message about non-empty journal bind mount +directories, simply downgrade the message to a warning and proceed. +--- + src/nspawn/nspawn.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index ef84664..eb9c5e0 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1143,6 +1143,9 @@ static int setup_journal(const char *directory) { + } else if (access(p, F_OK) < 0) + return 0; + ++ if (dir_is_empty(q) == 0) ++ log_warning("%s is not empty, proceeding anyway.", q); ++ + r = mkdir_p(q, 0755); + if (r < 0) { + log_error("Failed to create %s: %m", q); +-- +1.7.9.2 + diff --git a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch new file mode 100644 index 00000000..5ee22e2c --- /dev/null +++ b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch @@ -0,0 +1,109 @@ +From bcd816bd349241bcd9c0bfbfd9cfe7b034ba351b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 May 2014 16:49:12 +0900 +Subject: [PATCH] core: never consider failure when reading drop-ins fatal + +drop-ins don't carry the main configuration of a unit, hence read them +if we can't, complain if we cannot, but don't fail. +--- + src/core/load-dropin.c | 42 +++++++++++++----------------------------- + 1 file changed, 13 insertions(+), 29 deletions(-) + +diff --git src/core/load-dropin.c src/core/load-dropin.c +index 546e560..f2ffc97 100644 +--- src/core/load-dropin.c ++++ src/core/load-dropin.c +@@ -58,6 +58,7 @@ static int iterate_dir( + if (errno == ENOENT) + return 0; + ++ log_error("Failed to open directory %s: %m", path); + return -errno; + } + +@@ -101,7 +102,7 @@ static int process_dir( + char ***strv) { + + _cleanup_free_ char *path = NULL; +- int r; ++ int r, q; + + assert(u); + assert(unit_path); +@@ -112,11 +113,8 @@ static int process_dir( + if (!path) + return log_oom(); + +- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) { +- r = iterate_dir(u, path, dependency, strv); +- if (r < 0) +- return r; +- } ++ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) ++ iterate_dir(u, path, dependency, strv); + + if (u->instance) { + _cleanup_free_ char *template = NULL, *p = NULL; +@@ -130,11 +128,8 @@ static int process_dir( + if (!p) + return log_oom(); + +- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) { +- r = iterate_dir(u, p, dependency, strv); +- if (r < 0) +- return r; +- } ++ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) ++ iterate_dir(u, p, dependency, strv); + } + + return 0; +@@ -152,12 +147,8 @@ char **unit_find_dropin_paths(Unit *u) { + SET_FOREACH(t, u->names, i) { + char **p; + +- STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { +- /* This loads the drop-in config snippets */ +- r = process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); +- if (r < 0) +- return NULL; +- } ++ STRV_FOREACH(p, u->manager->lookup_paths.unit_path) ++ process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); + } + + if (strv_isempty(strv)) +@@ -186,13 +177,8 @@ int unit_load_dropin(Unit *u) { + char **p; + + STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { +- r = process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); +- if (r < 0) +- return r; +- +- r = process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); +- if (r < 0) +- return r; ++ process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); ++ process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); + } + } + +@@ -201,11 +187,9 @@ int unit_load_dropin(Unit *u) { + return 0; + + STRV_FOREACH(f, u->dropin_paths) { +- r = config_parse(u->id, *f, NULL, +- UNIT_VTABLE(u)->sections, config_item_perf_lookup, +- (void*) load_fragment_gperf_lookup, false, false, u); +- if (r < 0) +- return r; ++ config_parse(u->id, *f, NULL, ++ UNIT_VTABLE(u)->sections, config_item_perf_lookup, ++ (void*) load_fragment_gperf_lookup, false, false, u); + } + + u->dropin_mtime = now(CLOCK_REALTIME); +-- +1.7.9.2 + diff --git a/0004-socket-properly-handle-if-our-service-vanished-durin.patch b/0004-socket-properly-handle-if-our-service-vanished-durin.patch new file mode 100644 index 00000000..b119ad24 --- /dev/null +++ b/0004-socket-properly-handle-if-our-service-vanished-durin.patch @@ -0,0 +1,30 @@ +From 640ace4a8de907994a1b95f6d368c3e6a8fcf60f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 May 2014 16:56:21 +0900 +Subject: [PATCH] socket: properly handle if our service vanished during + runtime + +--- + src/core/socket.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git src/core/socket.c src/core/socket.c +index 05af8fe..aca20fd 100644 +--- src/core/socket.c ++++ src/core/socket.c +@@ -1503,6 +1503,12 @@ static void socket_enter_running(Socket *s, int cfd) { + } + + if (!pending) { ++ if (!UNIT_ISSET(s->service)) { ++ log_error_unit(UNIT(s)->id, "%s: service to activate vanished, refusing activation.", UNIT(s)->id); ++ r = -ENOENT; ++ goto fail; ++ } ++ + r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service), JOB_REPLACE, true, &error, NULL); + if (r < 0) + goto fail; +-- +1.7.9.2 + diff --git a/1020-udev-keyboard-also-hook-into-change-events.patch b/1020-udev-keyboard-also-hook-into-change-events.patch new file mode 100644 index 00000000..0d285973 --- /dev/null +++ b/1020-udev-keyboard-also-hook-into-change-events.patch @@ -0,0 +1,27 @@ +From 49804365ea1242456c9763058a59cf68479e07ea Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 26 May 2014 09:30:21 +0800 +Subject: [PATCH] udev: keyboard - also hook into "change" events + +Re-apply the keymaps when "udevadm trigger" is called. Hooking into +"add" only would just remove all keymap content from the udev database +instead of applying the new config. +--- + rules/60-keyboard.rules | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git rules/60-keyboard.rules rules/60-keyboard.rules +index 4e0f366..22f71e7 100644 +--- rules/60-keyboard.rules ++++ rules/60-keyboard.rules +@@ -1,6 +1,6 @@ + # do not edit this file, it will be overwritten on update + +-ACTION!="add", GOTO="keyboard_end" ++ACTION=="remove", GOTO="keyboard_end" + KERNEL!="event*", GOTO="keyboard_end" + ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" + +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 3d58685a..70662ea3 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Tue May 27 07:23:47 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-Do-not-unescape-unit-names-in-Install-section.patch + 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch + +------------------------------------------------------------------- +Mon May 26 16:34:10 UTC 2014 - werner@suse.de + +- Add upstream patch + 1020-udev-keyboard-also-hook-into-change-events.patch + +------------------------------------------------------------------- +Mon May 26 15:25:28 UTC 2014 - werner@suse.de + +- Add upstream patches to update keyboard data base + 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch + 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +- Add upstream patches + 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch + 0002-nspawn-restore-journal-directory-is-empty-check.patch + 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + 0004-socket-properly-handle-if-our-service-vanished-durin.patch + ------------------------------------------------------------------- Wed May 21 19:23:32 UTC 2014 - coolo@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index d75bed5b..6c0acde3 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -495,6 +495,22 @@ Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch Patch252: 0002-journal-properly-detect-language-specified-in-line.patch # PATCHFIX-UPSTREAM added at 2014/05/21 Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch +# PATCHFIX-UPSTREAM added at 2014/05/27 +Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch +# PATCHFIX-UPSTREAM added at 2014/05/27 +Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch # UDEV PATCHES # ============ @@ -540,6 +556,8 @@ Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch # PATCH-FIX-UPSTREAM added at 2014/05/20 Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -940,6 +958,14 @@ cp %{SOURCE7} m4/ %patch251 -p0 %patch252 -p0 %patch253 -p0 +%patch254 -p0 +%patch255 -p0 +%patch256 -p0 +%patch257 -p0 +%patch258 -p0 +%patch259 -p0 +%patch260 -p0 +%patch261 -p0 # udev patches %patch1001 -p1 @@ -962,6 +988,7 @@ cp %{SOURCE7} m4/ %patch1017 -p0 %patch1018 -p0 %patch1019 -p0 +%patch1020 -p0 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 3d58685a..70662ea3 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Tue May 27 07:23:47 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-Do-not-unescape-unit-names-in-Install-section.patch + 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch + +------------------------------------------------------------------- +Mon May 26 16:34:10 UTC 2014 - werner@suse.de + +- Add upstream patch + 1020-udev-keyboard-also-hook-into-change-events.patch + +------------------------------------------------------------------- +Mon May 26 15:25:28 UTC 2014 - werner@suse.de + +- Add upstream patches to update keyboard data base + 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch + 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +- Add upstream patches + 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch + 0002-nspawn-restore-journal-directory-is-empty-check.patch + 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + 0004-socket-properly-handle-if-our-service-vanished-durin.patch + ------------------------------------------------------------------- Wed May 21 19:23:32 UTC 2014 - coolo@suse.com diff --git a/systemd.spec b/systemd.spec index 88a3b8ab..f7024fae 100644 --- a/systemd.spec +++ b/systemd.spec @@ -490,6 +490,22 @@ Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch Patch252: 0002-journal-properly-detect-language-specified-in-line.patch # PATCHFIX-UPSTREAM added at 2014/05/21 Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch +# PATCHFIX-UPSTREAM added at 2014/05/27 +Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch +# PATCHFIX-UPSTREAM added at 2014/05/27 +Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch # UDEV PATCHES # ============ @@ -535,6 +551,8 @@ Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch # PATCH-FIX-UPSTREAM added at 2014/05/20 Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch +# PATCHFIX-UPSTREAM added at 2014/05/26 +Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -935,6 +953,14 @@ cp %{SOURCE7} m4/ %patch251 -p0 %patch252 -p0 %patch253 -p0 +%patch254 -p0 +%patch255 -p0 +%patch256 -p0 +%patch257 -p0 +%patch258 -p0 +%patch259 -p0 +%patch260 -p0 +%patch261 -p0 # udev patches %patch1001 -p1 @@ -957,6 +983,7 @@ cp %{SOURCE7} m4/ %patch1017 -p0 %patch1018 -p0 %patch1019 -p0 +%patch1020 -p0 # ensure generate files are removed rm -f units/emergency.service From 9fc3254595072c355fa6d5395d6e71e3785ee09348721314ea39f54c1b61e6ed Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Mon, 30 Jun 2014 19:43:27 +0000 Subject: [PATCH 185/221] Accepting request 238853 from Base:System - Update of patch 0001-detect-s390-virt.patch (bnc#880438) - Shut up stupid check scripts crying for not mentioned systemd-mini-rpmlintrc - Add upstream patchs 0001-core-use-correct-format-string-for-UIDs.patch 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - Add upstream patch 0001-units-order-network-online.target-after-network.targ.patch to make sure that etwork-online.target follows network.target - rules: re-enable dev_id conditionally in persistent rules (bnc#884403 and bnc#882714). Add 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch - Add upstream patches 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch 0005-man-fix-path-in-crypttab-5.patch - Add upstream patch 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it fixes udevadm settle exit code which may had roken dracut scripts (bnc#884271 comment#18) - Temporary disable patch 1022 (bnc#884271 and bnc#882714). OBS-URL: https://build.opensuse.org/request/show/238853 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=190 --- ...ibc-s-xattr-support-instead-of-requi.patch | 215 +++ 0001-core-fix-invalid-free-in-killall.patch | 32 + ...network-should-be-equivalent-to-netw.patch | 51 + ...e-use-correct-format-string-for-UIDs.patch | 20 + 0001-detect-s390-virt.patch | 35 + 0001-hwdb-fix-case-sensitive-match.patch | 25 + ...nt-restore-correct-timeout-behaviour.patch | 37 + 0001-umount-modernizations.patch | 119 ++ ...ork-online.target-after-network.targ.patch | 20 + ...sctl.service.in-run-after-load-modul.patch | 29 + ...py-character-maps-not-just-fonts-fro.patch | 56 + ...irt-rework-container-detection-logic.patch | 159 ++ ...sd_bus_try_close-in-exit-on-idle-ser.patch | 59 + ...nvironment-fields-passed-in-for-tran.patch | 27 + ...-fix-cycle-break-attempts-outside-tr.patch | 42 + ...ice-name-in-the-message-about-missin.patch | 26 + ...etting-up-an-inaccessible-mount-poin.patch | 122 ++ ...g-caps-so-that-GetAddresses-can-work.patch | 18 + ...-put-the-cached-result-of-use_smack-.patch | 32 + 0003-core-allow-transient-mount-units.patch | 115 ++ ...fsck-implementation-linked-to-bin-tr.patch | 98 ++ ...l-fix-invalid-free-in-unit_file_mask.patch | 30 + ...emd-tmpfiles-clean.service-after-tim.patch | 26 + ...de-mixed-for-systemd-nspawn-.service.patch | 26 + ...-add-unit-dependency-on-dev-null-dev.patch | 53 + ...rator-properly-escape-instance-names.patch | 39 + ...d-detect-virt-only-discover-Xen-domU.patch | 79 + ...e-should-not-allow-files-ending-with.patch | 28 + ...ght-Do-not-clamp-brightness-for-LEDs.patch | 60 + 0005-man-fix-path-in-crypttab-5.patch | 26 + 0005-po-add-Greek-translation.patch | 436 +++++ ...base-of-Bluetooth-company-identifier.patch | 82 + ...-the-kernel-s-quiet-cmdline-argument.patch | 29 + ...-agent-Do-tell-what-directory-we-fai.patch | 26 + ...d-add-Plantronics-.Audio-mute-button.patch | 32 + 0007-po-add-German-translation.patch | 448 +++++ ...Reset-signal-mask-on-re-exec-to-init.patch | 37 +- ...an-up-signal-reset-logic-when-reexec.patch | 50 + ...t-fuse.sshfs-as-a-network-filesystem.patch | 25 + ...d-pthread-flag-for-libsystemd-shared.patch | 28 + ...-avoid-misleading-error-message-when.patch | 42 + 1021-udev-re-add-persistent-net-rules.patch | 532 ++++++ ...um-API-and-all-assumptions-about-seq.patch | 1445 +++++++++++++++++ ...board-do-tell-on-which-device-EVIOCS.patch | 31 + ...ev-always-close-lock-file-descriptor.patch | 41 + ...ice-mapper-from-block-device-ownersh.patch | 39 + 1026-udevd-inotify-modernizations.patch | 85 + ...change-events-for-partitions-when-to.patch | 84 + 1028-udev-link-config-fix-mem-leak.patch | 34 + ...first-re-reading-the-partition-table.patch | 94 ++ ...guard-REREADP-logic-with-open-O_ECXL.patch | 23 + ...re-we-always-get-change-for-the-disk.patch | 98 ++ ...DPT-by-exclusive-lock-instead-of-O_E.patch | 29 + ...lude-device-mapper-from-block-device.patch | 39 + ...eturn-value-from-udev_enumerate_scan.patch | 26 + ...-Ignore-devices-with-SYSTEMD_READY-0.patch | 32 + ...-usage-of-dev_id-in-persistent-rules.patch | 14 + ...dev-exclude-cd-dvd-from-block-device.patch | 14 + ...x-invalid-free-in-enable_name_policy.patch | 30 + ...le-fixed-return-code-for-empty-queue.patch | 34 + ...id-conditionally-in-persistent-rules.patch | 16 + apply-ACL-for-nvidia-uvm-device-node.patch | 26 + ...etup-after-md-dmraid-lvm-are-started.patch | 45 - ...e-started-before-local-fs-pre-target.patch | 17 - ...assword-wall-starts-after-getty-tty1.patch | 11 +- ...are-applied-after-modules-are-loaded.patch | 19 - getty-generator-with-serial-3270-tty.patch | 34 - insserv-generator.patch | 20 +- keep-crypt-password-prompt.patch | 2 +- systemd-detect-xendom.patch | 35 - systemd-mini.changes | 313 ++++ systemd-mini.spec | 441 ++++- systemd.changes | 313 ++++ systemd.spec | 441 ++++- ...s-do-not-clean-for-mandb-index-files.patch | 22 + 75 files changed, 7149 insertions(+), 269 deletions(-) create mode 100644 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch create mode 100644 0001-core-fix-invalid-free-in-killall.patch create mode 100644 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch create mode 100644 0001-core-use-correct-format-string-for-UIDs.patch create mode 100644 0001-detect-s390-virt.patch create mode 100644 0001-hwdb-fix-case-sensitive-match.patch create mode 100644 0001-sd-event-restore-correct-timeout-behaviour.patch create mode 100644 0001-umount-modernizations.patch create mode 100644 0001-units-order-network-online.target-after-network.targ.patch create mode 100644 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch create mode 100644 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch create mode 100644 0001-virt-rework-container-detection-logic.patch create mode 100644 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch create mode 100644 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch create mode 100644 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch create mode 100644 0002-fsck-include-device-name-in-the-message-about-missin.patch create mode 100644 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch create mode 100644 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch create mode 100644 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch create mode 100644 0003-core-allow-transient-mount-units.patch create mode 100644 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch create mode 100644 0003-install-fix-invalid-free-in-unit_file_mask.patch create mode 100644 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch create mode 100644 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch create mode 100644 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch create mode 100644 0004-getty-generator-properly-escape-instance-names.patch create mode 100644 0004-systemd-detect-virt-only-discover-Xen-domU.patch create mode 100644 0004-util-ignore_file-should-not-allow-files-ending-with.patch create mode 100644 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch create mode 100644 0005-man-fix-path-in-crypttab-5.patch create mode 100644 0005-po-add-Greek-translation.patch create mode 100644 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch create mode 100644 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch create mode 100644 0007-keyboard-add-Plantronics-.Audio-mute-button.patch create mode 100644 0007-po-add-German-translation.patch rename 0001-systemd-empty-sigmask-on-reexec.patch => 0008-Reset-signal-mask-on-re-exec-to-init.patch (53%) create mode 100644 0009-core-clean-up-signal-reset-logic-when-reexec.patch create mode 100644 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch create mode 100644 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch create mode 100644 0012-core-transaction-avoid-misleading-error-message-when.patch create mode 100644 1021-udev-re-add-persistent-net-rules.patch create mode 100644 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch create mode 100644 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch create mode 100644 1024-udev-always-close-lock-file-descriptor.patch create mode 100644 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch create mode 100644 1026-udevd-inotify-modernizations.patch create mode 100644 1027-udev-synthesize-change-events-for-partitions-when-to.patch create mode 100644 1028-udev-link-config-fix-mem-leak.patch create mode 100644 1029-udev-try-first-re-reading-the-partition-table.patch create mode 100644 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch create mode 100644 1031-udev-make-sure-we-always-get-change-for-the-disk.patch create mode 100644 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch create mode 100644 1033-udev-really-exclude-device-mapper-from-block-device.patch create mode 100644 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch create mode 100644 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch create mode 100644 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch create mode 100644 1037-udev-exclude-cd-dvd-from-block-device.patch create mode 100644 1038-udev-fix-invalid-free-in-enable_name_policy.patch create mode 100644 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch create mode 100644 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch create mode 100644 apply-ACL-for-nvidia-uvm-device-node.patch delete mode 100644 delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch delete mode 100644 ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch delete mode 100644 ensure-sysctl-are-applied-after-modules-are-loaded.patch delete mode 100644 getty-generator-with-serial-3270-tty.patch delete mode 100644 systemd-detect-xendom.patch create mode 100644 tmpfiles-do-not-clean-for-mandb-index-files.patch diff --git a/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch b/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch new file mode 100644 index 00000000..f8632b99 --- /dev/null +++ b/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch @@ -0,0 +1,215 @@ +Based on d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 28 May 2014 17:36:40 +0800 +Subject: [PATCH] build-sys: use glibc's xattr support instead of requiring + libattr + +--- + configure.ac | 53 ++----------------------------------------- + src/core/mount-setup.c | 2 - + src/core/socket.c | 4 --- + src/journal/journal-file.c | 7 ----- + src/journal/journal-vacuum.c | 10 -------- + src/shared/label.c | 2 - + src/shared/smack-util.c | 4 --- + 7 files changed, 7 insertions(+), 75 deletions(-) + +--- configure.ac ++++ configure.ac 2014-06-03 00:00:00.000000000 +0000 +@@ -526,44 +526,6 @@ AC_SUBST(ACL_LIBS) + AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno]) + + # ------------------------------------------------------------------------------ +-AC_ARG_ENABLE([xattr], +- AS_HELP_STRING([--disable-xattr],[Disable optional XATTR support]), +- [case "${enableval}" in +- yes) have_xattr=yes ;; +- no) have_xattr=no ;; +- *) AC_MSG_ERROR(bad value ${enableval} for --disable-xattr) ;; +- esac], +- [have_xattr=auto]) +- +-if test "x${have_xattr}" != xno ; then +- AC_CHECK_HEADERS( +- [attr/xattr.h], +- [have_xattr=yes], +- [if test "x$have_xattr" = xyes ; then +- AC_MSG_ERROR([*** XATTR headers not found.]) +- fi]) +- +- AC_CHECK_LIB( +- [attr], +- [fsetxattr], +- [have_xattr=yes], +- [if test "x$have_xattr" = xyes ; then +- AC_MSG_ERROR([*** libattr not found.]) +- fi]) +- +- if test "x$have_xattr" = xyes ; then +- XATTR_LIBS="-lattr" +- AC_DEFINE(HAVE_XATTR, 1, [XATTR available]) +- else +- have_xattr=no +- fi +-else +- XATTR_LIBS= +-fi +-AC_SUBST(XATTR_LIBS) +-AM_CONDITIONAL([HAVE_XATTR], [test "x$have_xattr" != xno]) +- +-# ------------------------------------------------------------------------------ + AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK support]), + [case "${enableval}" in + yes) have_smack=yes ;; +@@ -572,17 +534,9 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([- + esac], + [have_smack=auto]) + +-if test "x${have_xattr}" = xno; then +- if test "x${have_smack}" = xyes; then +- AC_MSG_ERROR(SMACK requires xattr support) +- else +- have_smack=no +- fi +-else +- if test "x${have_smack}" = xauto; then +- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" +- have_smack=yes +- fi ++if test "x${have_smack}" = xauto; then ++ M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" ++ have_smack=yes + fi + + AC_ARG_WITH(smack-run-label, +@@ -1131,7 +1085,6 @@ AC_MSG_RESULT([ + SMACK: ${have_smack} + XZ: ${have_xz} + ACL: ${have_acl} +- XATTR: ${have_xattr} + GCRYPT: ${have_gcrypt} + QRENCODE: ${have_qrencode} + MICROHTTPD: ${have_microhttpd} +--- src/core/mount-setup.c ++++ src/core/mount-setup.c 2014-06-03 00:00:00.000000000 +0000 +@@ -93,10 +93,8 @@ static const MountPoint mount_table[] = + NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, + NULL, MNT_IN_CONTAINER }, +-#ifdef HAVE_XATTR + { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_IN_CONTAINER }, +-#endif + { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_IN_CONTAINER }, + { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +--- src/core/socket.c ++++ src/core/socket.c 2014-06-03 00:00:00.000000000 +0000 +@@ -29,9 +29,7 @@ + #include + #include + #include +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "sd-event.h" + #include "log.h" +--- src/journal/journal-file.c ++++ src/journal/journal-file.c 2014-06-03 00:00:00.000000000 +0000 +@@ -26,10 +26,7 @@ + #include + #include + #include +- +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "journal-def.h" + #include "journal-file.h" +@@ -2515,7 +2512,6 @@ int journal_file_open( + } + + if (f->last_stat.st_size == 0 && f->writable) { +-#ifdef HAVE_XATTR + uint64_t crtime; + + /* Let's attach the creation time to the journal file, +@@ -2530,7 +2526,6 @@ int journal_file_open( + + crtime = htole64((uint64_t) now(CLOCK_REALTIME)); + fsetxattr(f->fd, "user.crtime_usec", &crtime, sizeof(crtime), XATTR_CREATE); +-#endif + + #ifdef HAVE_GCRYPT + /* Try to load the FSPRG state, and if we can't, then +--- src/journal/journal-vacuum.c ++++ src/journal/journal-vacuum.c 2014-06-03 00:00:00.000000000 +0000 +@@ -24,10 +24,7 @@ + #include + #include + #include +- +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "journal-def.h" + #include "journal-file.h" +@@ -79,11 +76,8 @@ static void patch_realtime( + unsigned long long *realtime) { + + usec_t x; +- +-#ifdef HAVE_XATTR + uint64_t crtime; + _cleanup_free_ const char *path = NULL; +-#endif + + /* The timestamp was determined by the file name, but let's + * see if the file might actually be older than the file name +@@ -106,7 +100,6 @@ static void patch_realtime( + if (x > 0 && x != (usec_t) -1 && x < *realtime) + *realtime = x; + +-#ifdef HAVE_XATTR + /* Let's read the original creation time, if possible. Ideally + * we'd just query the creation time the FS might provide, but + * unfortunately there's currently no sane API to query +@@ -125,7 +118,6 @@ static void patch_realtime( + if (crtime > 0 && crtime != (uint64_t) -1 && crtime < *realtime) + *realtime = crtime; + } +-#endif + } + + static int journal_file_empty(int dir_fd, const char *name) { +--- src/shared/label.c ++++ src/shared/label.c 2014-06-03 00:00:00.000000000 +0000 +@@ -27,9 +27,7 @@ + #include + #include + #include +-#ifdef HAVE_XATTR + #include +-#endif + #ifdef HAVE_SELINUX + #include + #include +--- src/shared/smack-util.c ++++ src/shared/smack-util.c 2014-06-03 00:00:00.000000000 +0000 +@@ -23,9 +23,7 @@ + + #include + #include +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "smack-util.h" + diff --git a/0001-core-fix-invalid-free-in-killall.patch b/0001-core-fix-invalid-free-in-killall.patch new file mode 100644 index 00000000..23d527e8 --- /dev/null +++ b/0001-core-fix-invalid-free-in-killall.patch @@ -0,0 +1,32 @@ +From 3e09eb5c83e56bc0184bd9d9c44f76047464f77c Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Fri, 13 Jun 2014 18:48:19 +0200 +Subject: [PATCH] core: fix invalid free() in killall() + +static int killall(....) in ./src/core/killall.c tries to get "s" +initialized by calling get_process_comm(...) which calls +read_one_line_file(...) which if it fails will mean it is left +uninitialized. +It is then used in argument to strna(s) call where it is +dereferenced(!), in addition to nothing else initializing it before +the scope it is in finishes. +--- + src/core/killall.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/killall.c src/core/killall.c +index 57ed41c..eab48f7 100644 +--- src/core/killall.c ++++ src/core/killall.c +@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) { + continue; + + if (sig == SIGKILL) { +- _cleanup_free_ char *s; ++ _cleanup_free_ char *s = NULL; + + get_process_comm(pid, &s); + log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s)); +-- +1.7.9.2 + diff --git a/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch b/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch new file mode 100644 index 00000000..06371697 --- /dev/null +++ b/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch @@ -0,0 +1,51 @@ +From 0404c609f399b2092a3de52eef9d75b0dc12e94c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 12 May 2014 21:26:54 +0200 +Subject: [PATCH] core: sysvcompat - $network should be equivalent to + network-online, rather than network target +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Most likely the facility needed is actual connectivity, rather than whether or not the +network managment daemon is running. + +We also need to explicitly pull in the network-online.target, as it is not active by +default. + +This means {systemd-networkd,NetworkManager}-wait-online.service, can be enabled by default +as part of network-online.target, and only delay boot when some service actively pulls it in. + +See: + +Cc: Pavel Šimerda +Cc: Michal Sekletar +--- + TODO | 4 ---- + src/core/service.c | 8 ++++++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +Modified by Andrey Borzenkov for openSUSE. +Index: systemd-210/src/core/service.c +=================================================================== +--- systemd-210.orig/src/core/service.c ++++ systemd-210/src/core/service.c +@@ -404,7 +404,7 @@ static int sysv_translate_facility(const + static const char * const table[] = { + /* LSB defined facilities */ + "local_fs", NULL, +- "network", SPECIAL_NETWORK_TARGET, ++ "network", SPECIAL_NETWORK_ONLINE_TARGET, + "named", SPECIAL_NSS_LOOKUP_TARGET, + "portmap", SPECIAL_RPCBIND_TARGET, + "remote_fs", SPECIAL_REMOTE_FS_TARGET, +@@ -881,6 +881,9 @@ static int service_load_sysv_path(Servic + if (r == 0) + continue; + ++ if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && d == UNIT_AFTER && e == _UNIT_DEPENDENCY_INVALID) ++ e = UNIT_WANTS; ++ + if (e != _UNIT_DEPENDENCY_INVALID) + r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); + else diff --git a/0001-core-use-correct-format-string-for-UIDs.patch b/0001-core-use-correct-format-string-for-UIDs.patch new file mode 100644 index 00000000..f0906df0 --- /dev/null +++ b/0001-core-use-correct-format-string-for-UIDs.patch @@ -0,0 +1,20 @@ +Based on d6239dc4b0cf55a953d6c40890859b85d504ef19 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= +Date: Wed, 25 Jun 2014 14:54:48 +0200 +Subject: [PATCH] core: use correct format string for UIDs + +--- + src/core/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/main.c ++++ src/core/main.c 2014-06-26 09:29:28.182235325 +0000 +@@ -1526,7 +1526,7 @@ int main(int argc, char *argv[]) { + + } else { + _cleanup_free_ char *t = uid_to_name(getuid()); +- log_debug(PACKAGE_STRING " running in user mode for user "PID_FMT"/%s. (" SYSTEMD_FEATURES ")", ++ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", + getuid(), t); + } + diff --git a/0001-detect-s390-virt.patch b/0001-detect-s390-virt.patch new file mode 100644 index 00000000..3a437118 --- /dev/null +++ b/0001-detect-s390-virt.patch @@ -0,0 +1,35 @@ +bnc#880438 - systemd-detect-virt doesn't work on System z + +--- systemd-210/src/shared/virt.c ++++ systemd-210/src/shared/virt.c 2014-06-26 07:55:30.081608729 +0000 +@@ -196,6 +196,30 @@ + } else + return r; + ++#if defined(__s390x__) ++ /* First layer virtualization (PR/SM) is always present on s390x */ ++ _id = "PR/SM"; ++ r = 1; ++ ++ /* Check for second layer virtualization */ ++ _cleanup_fclose_ FILE *f = NULL; ++ char line[LINE_MAX]; ++ f = fopen("/proc/sysinfo", "re"); ++ if (f) { ++ FOREACH_LINE(line, f, return -errno) { ++ if (startswith(line, "VM00 Control Program:")) { ++ if (strstr(line,"z/VM")) ++ _id = "z/VM"; ++ else if (strstr(line,"KVM/Linux")) ++ _id = "KVM"; ++ break; ++ } ++ } ++ } ++ ++ goto finish; ++#endif ++ + /* this will set _id to "other" and return 0 for unknown hypervisors */ + r = detect_vm_cpuid(&_id); + if (r != 0) diff --git a/0001-hwdb-fix-case-sensitive-match.patch b/0001-hwdb-fix-case-sensitive-match.patch new file mode 100644 index 00000000..64642714 --- /dev/null +++ b/0001-hwdb-fix-case-sensitive-match.patch @@ -0,0 +1,25 @@ +From 4c02dd7153f970244950b5e00f7bdfea8d2ff0be Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 17:55:14 +0200 +Subject: [PATCH] hwdb: fix case-sensitive match + +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index d053766..c7ff4e4 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -870,7 +870,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* + ########################################################### + + # Plantronics .Audio 626 DSP +-keyboard:usb:v047fpC006* ++keyboard:usb:v047FpC006* + KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute + + ########################################################### +-- +1.7.9.2 + diff --git a/0001-sd-event-restore-correct-timeout-behaviour.patch b/0001-sd-event-restore-correct-timeout-behaviour.patch new file mode 100644 index 00000000..8787f3f3 --- /dev/null +++ b/0001-sd-event-restore-correct-timeout-behaviour.patch @@ -0,0 +1,37 @@ +Based on eec6022cf039e62233139000b9e95db943959e48 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 13:43:30 +0200 +Subject: [PATCH] sd-event: restore correct timeout behaviour + +--- + src/libsystemd/sd-event/sd-event.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c 2014-06-06 10:26:51.422235695 +0000 +@@ -2047,6 +2047,7 @@ _public_ int sd_event_run(sd_event *e, u + unsigned ev_queue_max; + sd_event_source *p; + int r, i, m; ++ bool timedout; + + assert_return(e, -EINVAL); + assert_return(!event_pid_changed(e), -ECHILD); +@@ -2084,6 +2085,8 @@ _public_ int sd_event_run(sd_event *e, u + goto finish; + } + ++ timedout = m == 0; ++ + dual_timestamp_get(&e->timestamp); + + for (i = 0; i < m; i++) { +@@ -2123,7 +2126,7 @@ _public_ int sd_event_run(sd_event *e, u + + p = event_next_pending(e); + if (!p) { +- r = 1; ++ r = !timedout; + goto finish; + } + diff --git a/0001-umount-modernizations.patch b/0001-umount-modernizations.patch new file mode 100644 index 00000000..1397d155 --- /dev/null +++ b/0001-umount-modernizations.patch @@ -0,0 +1,119 @@ +From c3544e8d2c2d870a2aff0944aff4ab7824b9ae6b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 21:35:15 +0200 +Subject: [PATCH] umount: modernizations + +--- + src/core/umount.c | 65 ++++++++++++++++++++++------------------------------- + 1 file changed, 27 insertions(+), 38 deletions(-) + +diff --git src/core/umount.c src/core/umount.c +index d1258f0..a30f674 100644 +--- src/core/umount.c ++++ src/core/umount.c +@@ -61,52 +61,46 @@ static void mount_points_list_free(MountPoint **head) { + } + + static int mount_points_list_get(MountPoint **head) { +- FILE *proc_self_mountinfo; +- char *path, *p; ++ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; + unsigned int i; +- int r; + + assert(head); + +- if (!(proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"))) ++ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); ++ if (!proc_self_mountinfo) + return -errno; + + for (i = 1;; i++) { +- int k; ++ _cleanup_free_ char *path = NULL; ++ char *p = NULL; + MountPoint *m; ++ int k; + +- path = p = NULL; +- +- if ((k = fscanf(proc_self_mountinfo, +- "%*s " /* (1) mount id */ +- "%*s " /* (2) parent id */ +- "%*s " /* (3) major:minor */ +- "%*s " /* (4) root */ +- "%ms " /* (5) mount point */ +- "%*s" /* (6) mount options */ +- "%*[^-]" /* (7) optional fields */ +- "- " /* (8) separator */ +- "%*s " /* (9) file system type */ +- "%*s" /* (10) mount source */ +- "%*s" /* (11) mount options 2 */ +- "%*[^\n]", /* some rubbish at the end */ +- &path)) != 1) { ++ k = fscanf(proc_self_mountinfo, ++ "%*s " /* (1) mount id */ ++ "%*s " /* (2) parent id */ ++ "%*s " /* (3) major:minor */ ++ "%*s " /* (4) root */ ++ "%ms " /* (5) mount point */ ++ "%*s" /* (6) mount options */ ++ "%*[^-]" /* (7) optional fields */ ++ "- " /* (8) separator */ ++ "%*s " /* (9) file system type */ ++ "%*s" /* (10) mount source */ ++ "%*s" /* (11) mount options 2 */ ++ "%*[^\n]", /* some rubbish at the end */ ++ &path); ++ if (k != 1) { + if (k == EOF) + break; + + log_warning("Failed to parse /proc/self/mountinfo:%u.", i); +- +- free(path); + continue; + } + + p = cunescape(path); +- free(path); +- +- if (!p) { +- r = -ENOMEM; +- goto finish; +- } ++ if (!p) ++ return -ENOMEM; + + /* Ignore mount points we can't unmount because they + * are API or because we are keeping them open (like +@@ -118,22 +112,17 @@ static int mount_points_list_get(MountPoint **head) { + continue; + } + +- if (!(m = new0(MountPoint, 1))) { ++ m = new0(MountPoint, 1); ++ if (!m) { + free(p); +- r = -ENOMEM; +- goto finish; ++ return -ENOMEM; + } + + m->path = p; + LIST_PREPEND(mount_point, *head, m); + } + +- r = 0; +- +-finish: +- fclose(proc_self_mountinfo); +- +- return r; ++ return 0; + } + + static int swap_list_get(MountPoint **head) { +-- +1.7.9.2 + diff --git a/0001-units-order-network-online.target-after-network.targ.patch b/0001-units-order-network-online.target-after-network.targ.patch new file mode 100644 index 00000000..d09fa29e --- /dev/null +++ b/0001-units-order-network-online.target-after-network.targ.patch @@ -0,0 +1,20 @@ +Based on 58e027023b47b32e42cf93dd4a629b869ee1ef25 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Jun 2014 14:58:32 +0200 +Subject: [PATCH] units: order network-online.target after network.target + +There might be implementations around where the network-online logic +might not talk to any network configuration service (and thus not have +to wait for it), hence let's explicitly order network-online.target +after network.target to avoid any ambiguities. +--- + units/network-online.target | 1 + + 1 file changed, 1 insertion(+) + +--- units/network-online.target ++++ units/network-online.target 2014-06-26 00:00:00.000000000 +0000 +@@ -9,3 +9,4 @@ + Description=Network is Online + Documentation=man:systemd.special(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget ++After=network.target diff --git a/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch b/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch new file mode 100644 index 00000000..6c60f8b7 --- /dev/null +++ b/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch @@ -0,0 +1,29 @@ +Based on 0b73eab7a2185ae0377650e3fdb8208347a8a575 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Sat, 23 Mar 2013 03:54:16 +0100 +Subject: [PATCH] units/systemd-sysctl.service.in: run after load-modules + +Modules might or will register new sysctl options. + +[zj: This mechanism of adding modules just to reliably set sysctl +attributes is not ideal. Nevertheless, sysctl for dynamically created +attributes is simply broken, and this is the easiest workaround.] + +https://bugzilla.redhat.com/show_bug.cgi?id=1022977 +https://bugzilla.novell.com/show_bug.cgi?id=725412 +--- + units/systemd-sysctl.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git units/systemd-sysctl.service.in units/systemd-sysctl.service.in +index 5c7c5d7..ade9dc3 100644 +--- units/systemd-sysctl.service.in ++++ units/systemd-sysctl.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service + DefaultDependencies=no + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service ++After=systemd-modules-load.service + Before=sysinit.target shutdown.target + ConditionPathIsReadWrite=/proc/sys/ + ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch b/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch new file mode 100644 index 00000000..bf379908 --- /dev/null +++ b/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch @@ -0,0 +1,56 @@ +From ff452e76e2c0f89a32542b7179bb2fd538335933 Mon Sep 17 00:00:00 2001 +From: Carl Schaefer +Date: Mon, 23 Jun 2014 18:23:48 +0200 +Subject: [PATCH] vconsole: also copy character maps (not just fonts) from vt1 + to vt2, vt3, ... + +https://bugs.freedesktop.org/show_bug.cgi?id=78796 +--- + src/vconsole/vconsole-setup.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git src/vconsole/vconsole-setup.c src/vconsole/vconsole-setup.c +index 0f2b706..e0c4050 100644 +--- src/vconsole/vconsole-setup.c ++++ src/vconsole/vconsole-setup.c +@@ -180,6 +180,10 @@ static int font_load(const char *vc, const char *font, const char *map, const ch + */ + static void font_copy_to_all_vcs(int fd) { + struct vt_stat vcs = {}; ++ unsigned char map8[E_TABSZ]; ++ unsigned short map16[E_TABSZ]; ++ struct unimapdesc unimapd; ++ struct unipair unipairs[USHRT_MAX]; + int i, r; + + /* get active, and 16 bit mask of used VT numbers */ +@@ -209,6 +213,26 @@ static void font_copy_to_all_vcs(int fd) { + cfo.op = KD_FONT_OP_COPY; + cfo.height = vcs.v_active-1; /* tty1 == index 0 */ + ioctl(vcfd, KDFONTOP, &cfo); ++ ++ /* copy map of 8bit chars */ ++ if (ioctl(fd, GIO_SCRNMAP, map8) >= 0) ++ ioctl(vcfd, PIO_SCRNMAP, map8); ++ ++ /* copy map of 8bit chars -> 16bit Unicode values */ ++ if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0) ++ ioctl(vcfd, PIO_UNISCRNMAP, map16); ++ ++ /* copy unicode translation table */ ++ /* unimapd is a ushort count and a pointer to an ++ array of struct unipair { ushort, ushort } */ ++ unimapd.entries = unipairs; ++ unimapd.entry_ct = USHRT_MAX; ++ if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) { ++ struct unimapinit adv = { 0, 0, 0 }; ++ ++ ioctl(vcfd, PIO_UNIMAPCLR, &adv); ++ ioctl(vcfd, PIO_UNIMAP, &unimapd); ++ } + } + } + +-- +1.7.9.2 + diff --git a/0001-virt-rework-container-detection-logic.patch b/0001-virt-rework-container-detection-logic.patch new file mode 100644 index 00000000..4adc20a2 --- /dev/null +++ b/0001-virt-rework-container-detection-logic.patch @@ -0,0 +1,159 @@ +Based on fdd25311706bd32580ec4d43211cdf4665d2f9de Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 28 May 2014 18:37:11 +0800 +Subject: [PATCH] virt: rework container detection logic + +Instead of accessing /proc/1/environ directly, trying to read the +$container variable from it, let's make PID 1 save the contents of that +variable to /run/systemd/container. This allows us to detect containers +without the need for CAP_SYS_PTRACE, which allows us to drop it from a +number of daemons and from the file capabilities of systemd-detect-virt. + +Also, don't consider chroot a container technology anymore. After all, +we don't consider file system namespaces container technology anymore, +and hence chroot() should be considered a container even less. +--- + Makefile.am | 3 --- + configure.ac | 2 -- + src/core/main.c | 12 ++++++++++++ + src/shared/virt.c | 48 ++++++++++++++++++++++++++++++------------------ + 4 files changed, 42 insertions(+), 23 deletions(-) + +diff --git Makefile.am Makefile.am +index 5b26bc3..f66ef42 100644 +--- Makefile.am ++++ Makefile.am +@@ -1798,9 +1798,6 @@ systemd_detect_virt_SOURCES = \ + systemd_detect_virt_LDADD = \ + libsystemd-shared.la + +-systemd-detect-virt-install-hook: +- -$(SETCAP) cap_dac_override,cap_sys_ptrace=ep $(DESTDIR)$(bindir)/systemd-detect-virt +- + INSTALL_EXEC_HOOKS += \ + systemd-detect-virt-install-hook + +--- configure.ac ++++ configure.ac 2014-06-03 14:16:45.046237826 +0000 +@@ -68,8 +68,6 @@ AC_PATH_PROG([XSLTPROC], [xsltproc]) + AC_PATH_PROG([QUOTAON], [quotaon], [/usr/sbin/quotaon]) + AC_PATH_PROG([QUOTACHECK], [quotacheck], [/usr/sbin/quotacheck]) + +-AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap]) +- + AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) + + AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod]) +diff --git src/core/main.c src/core/main.c +index 77cc2fb..d5d1ee2 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1261,6 +1261,16 @@ static int status_welcome(void) { + isempty(pretty_name) ? "Linux" : pretty_name); + } + ++static int write_container_id(void) { ++ const char *c; ++ ++ c = getenv("container"); ++ if (isempty(c)) ++ return 0; ++ ++ return write_string_file("/run/systemd/container", c); ++} ++ + int main(int argc, char *argv[]) { + Manager *m = NULL; + int r, retval = EXIT_FAILURE; +@@ -1544,6 +1554,8 @@ int main(int argc, char *argv[]) { + if (virtualization) + log_info("Detected virtualization '%s'.", virtualization); + ++ write_container_id(); ++ + log_info("Detected architecture '%s'.", architecture_to_string(uname_architecture())); + + if (in_initrd()) +diff --git src/shared/virt.c src/shared/virt.c +index 0db0514..1e227c5 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -217,8 +217,8 @@ int detect_container(const char **id) { + static thread_local int cached_found = -1; + static thread_local const char *cached_id = NULL; + +- _cleanup_free_ char *e = NULL; +- const char *_id = NULL; ++ _cleanup_free_ char *m = NULL; ++ const char *_id = NULL, *e = NULL; + int r; + + if (_likely_(cached_found >= 0)) { +@@ -229,17 +229,6 @@ int detect_container(const char **id) { + return cached_found; + } + +- /* Unfortunately many of these operations require root access +- * in one way or another */ +- +- r = running_in_chroot(); +- if (r < 0) +- return r; +- if (r > 0) { +- _id = "chroot"; +- goto finish; +- } +- + /* /proc/vz exists in container and outside of the container, + * /proc/bc only outside of the container. */ + if (access("/proc/vz", F_OK) >= 0 && +@@ -249,11 +238,32 @@ int detect_container(const char **id) { + goto finish; + } + +- r = getenv_for_pid(1, "container", &e); +- if (r < 0) +- return r; +- if (r == 0) +- goto finish; ++ if (getpid() == 1) { ++ /* If we are PID 1 we can just check our own ++ * environment variable */ ++ ++ e = getenv("container"); ++ if (isempty(e)) { ++ r = 0; ++ goto finish; ++ } ++ } else { ++ ++ /* Otherwise, PID 1 dropped this information into a ++ * file in /run. This is better than accessing ++ * /proc/1/environ, since we don't need CAP_SYS_PTRACE ++ * for that. */ ++ ++ r = read_one_line_file("/run/systemd/container", &m); ++ if (r == -ENOENT) { ++ r = 0; ++ goto finish; ++ } ++ if (r < 0) ++ return r; ++ ++ e = m; ++ } + + /* We only recognize a selected few here, since we want to + * enforce a redacted namespace */ +@@ -266,6 +276,8 @@ int detect_container(const char **id) { + else + _id = "other"; + ++ r = 1; ++ + finish: + cached_found = r; + +-- +1.7.9.2 + diff --git a/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch b/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch new file mode 100644 index 00000000..3961c020 --- /dev/null +++ b/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch @@ -0,0 +1,59 @@ +From b27adf354a83ad25f4a209c0a6f7989ecab7b4e2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 13:31:25 +0200 +Subject: [PATCH] bus: make use of sd_bus_try_close() in exit-on-idle services + +--- + src/libsystemd/sd-bus/bus-util.c | 25 +++++++++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c +index 6bd21cc..6441c5b 100644 +--- src/libsystemd/sd-bus/bus-util.c ++++ src/libsystemd/sd-bus/bus-util.c +@@ -43,7 +43,9 @@ static int name_owner_change_callback(sd_bus *bus, sd_bus_message *m, void *user + assert(m); + assert(e); + ++ sd_bus_close(bus); + sd_event_exit(e, 0); ++ + return 1; + } + +@@ -121,11 +123,30 @@ int bus_event_loop_with_idle( + return r; + + if (r == 0 && !exiting) { +- r = bus_async_unregister_and_exit(e, bus, name); ++ ++ r = sd_bus_try_close(bus); ++ if (r == -EBUSY) ++ continue; ++ ++ if (r == -ENOTSUP) { ++ /* Fallback for dbus1 connections: we ++ * unregister the name and wait for ++ * the response to come through for ++ * it */ ++ ++ r = bus_async_unregister_and_exit(e, bus, name); ++ if (r < 0) ++ return r; ++ ++ exiting = true; ++ continue; ++ } ++ + if (r < 0) + return r; + +- exiting = true; ++ sd_event_exit(e, 0); ++ break; + } + } + +-- +1.7.9.2 + diff --git a/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch b/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch new file mode 100644 index 00000000..ec455770 --- /dev/null +++ b/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch @@ -0,0 +1,27 @@ +From cdd7b7dfd44649b204c43e907f03d4294de4f28a Mon Sep 17 00:00:00 2001 +From: Hristo Venev +Date: Mon, 23 Jun 2014 18:53:04 +0200 +Subject: [PATCH] core: make sure Environment fields passed in for transient + units are properly written to unit files + +https://bugs.freedesktop.org/show_bug.cgi?id=76744 +--- + src/core/dbus-execute.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/dbus-execute.c src/core/dbus-execute.c +index cb9a077..ecbadd7 100644 +--- src/core/dbus-execute.c ++++ src/core/dbus-execute.c +@@ -848,7 +848,7 @@ int bus_exec_context_set_transient_property( + strv_free(c->environment); + c->environment = e; + +- joined = strv_join(c->environment, " "); ++ joined = strv_join_quoted(c->environment); + if (!joined) + return -ENOMEM; + +-- +1.7.9.2 + diff --git a/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch b/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch new file mode 100644 index 00000000..61888e5f --- /dev/null +++ b/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch @@ -0,0 +1,42 @@ +From 375ae4aa4d2f89ae8afdd27e9f2b8336fcc2a046 Mon Sep 17 00:00:00 2001 +From: Uoti Urpala +Date: Mon, 23 Jun 2014 16:50:03 +0300 +Subject: [PATCH] core/transaction: fix cycle break attempts outside + transaction + +Patch fixes some incorrect-looking code in transaction.c. +It could fix cases where Debian users with bad package configurations +had systemd go into an infinite loop printing messages about breaking an +ordering cycle, though I have not reproduced that problem myself. + +transaction_verify_order_one() considers jobs/units outside current +transaction when checking whether ordering dependencies cause cycles. +It would also incorrectly try to break cycles at these jobs; this +cannot work, as the break action is to remove the job from the +transaction, which is a no-op if the job isn't part of the transaction +to begin with. The unit_matters_to_anchor() test also looks like it +would not work correctly for non-transaction jobs. Add a check to +verify that the unit is part of the transaction before considering a +job a candidate for deletion. + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752259 +--- + src/core/transaction.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/transaction.c src/core/transaction.c +index d23a45c..805d40a 100644 +--- src/core/transaction.c ++++ src/core/transaction.c +@@ -381,7 +381,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi + "Found dependency on %s/%s", + k->unit->id, job_type_to_string(k->type)); + +- if (!delete && ++ if (!delete && hashmap_get(tr->jobs, k->unit) && + !unit_matters_to_anchor(k->unit, k)) { + /* Ok, we can drop this one, so let's + * do so. */ +-- +1.7.9.2 + diff --git a/0002-fsck-include-device-name-in-the-message-about-missin.patch b/0002-fsck-include-device-name-in-the-message-about-missin.patch new file mode 100644 index 00000000..7ec3506f --- /dev/null +++ b/0002-fsck-include-device-name-in-the-message-about-missin.patch @@ -0,0 +1,26 @@ +Based on 8d2a6145334257c8a9ceabc9dd52dff06cca818e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 26 May 2014 23:03:11 -0400 +Subject: [PATCH] fsck: include device name in the message about missing fsck + +--- + src/fsck/fsck.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- src/fsck/fsck.c ++++ src/fsck/fsck.c 2014-06-03 14:15:15.746235301 +0000 +@@ -284,10 +284,12 @@ int main(int argc, char *argv[]) { + r = access(checker, X_OK); + if (r < 0) { + if (errno == ENOENT) { +- log_info("%s doesn't exist, not checking file system.", checker); ++ log_info("%s doesn't exist, not checking file system on %s", ++ checker, device); + return EXIT_SUCCESS; + } else +- log_warning("%s cannot be used: %m", checker); ++ log_warning("%s cannot be used for %s: %m", ++ checker, device); + } + } + diff --git a/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch b/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch new file mode 100644 index 00000000..dfbf403c --- /dev/null +++ b/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch @@ -0,0 +1,122 @@ +Based on 6d313367d9ef780560e117e886502a99fa220eac Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 21:35:35 +0200 +Subject: [PATCH] namespace: when setting up an inaccessible mount point, + unmounting everything below + +This has the benefit of not triggering any autofs mount points +unnecessarily. + +--- + src/core/namespace.c | 6 ++++ + src/shared/util.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/shared/util.h | 2 + + 3 files changed, 76 insertions(+) + +--- src/core/namespace.c ++++ src/core/namespace.c 2014-06-11 00:00:00.000000000 +0000 +@@ -220,6 +220,12 @@ static int apply_mount( + return mount_dev(m); + + case INACCESSIBLE: ++ ++ /* First, get rid of everything that is below if there ++ * is anything... Then, overmount it with an ++ * inaccessible directory. */ ++ umount_recursive(m->path, 0); ++ + what = "/run/systemd/inaccessible"; + break; + +--- src/shared/util.c ++++ src/shared/util.c 2014-06-11 00:00:00.000000000 +0000 +@@ -54,6 +54,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -4635,6 +4636,73 @@ char *strjoin(const char *x, ...) { + return r; + } + ++int umount_recursive(const char *prefix, int flags) { ++ bool again; ++ int n = 0, r; ++ ++ /* Try to umount everything recursively below a ++ * directory. Also, take care of stacked mounts, and keep ++ * unmounting them until they are gone. */ ++ ++ do { ++ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; ++ ++ again = false; ++ r = 0; ++ ++ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); ++ if (!proc_self_mountinfo) ++ return -errno; ++ ++ for (;;) { ++ _cleanup_free_ char *path = NULL, *p = NULL; ++ int k; ++ ++ k = fscanf(proc_self_mountinfo, ++ "%*s " /* (1) mount id */ ++ "%*s " /* (2) parent id */ ++ "%*s " /* (3) major:minor */ ++ "%*s " /* (4) root */ ++ "%ms " /* (5) mount point */ ++ "%*s" /* (6) mount options */ ++ "%*[^-]" /* (7) optional fields */ ++ "- " /* (8) separator */ ++ "%*s " /* (9) file system type */ ++ "%*s" /* (10) mount source */ ++ "%*s" /* (11) mount options 2 */ ++ "%*[^\n]", /* some rubbish at the end */ ++ &path); ++ ++ if (k != 1) { ++ if (k == EOF) ++ break; ++ ++ continue; ++ } ++ ++ p = cunescape(path); ++ if (!p) ++ return -ENOMEM; ++ ++ if (!path_startswith(p, prefix)) ++ continue; ++ ++ if (umount2(p, flags) < 0) { ++ r = -errno; ++ continue; ++ } ++ ++ again = true; ++ n++; ++ ++ break; ++ } ++ ++ } while (again); ++ ++ return r ? r : n; ++} ++ + bool is_main_thread(void) { + static thread_local int cached = 0; + +--- src/shared/util.h ++++ src/shared/util.h 2014-06-11 10:10:08.000000000 +0000 +@@ -890,3 +890,5 @@ union file_handle_union { + struct file_handle handle; + char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; + }; ++ ++int umount_recursive(const char *target, int flags); diff --git a/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch b/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch new file mode 100644 index 00000000..58189d0f --- /dev/null +++ b/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch @@ -0,0 +1,18 @@ +Basedo n a55954297dade7b432fd3a4f328f23261621ff79 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 19 Jun 2014 19:53:16 +0200 +Subject: [PATCH] units: add missing caps so that GetAddresses() can work + +--- + units/systemd-machined.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- units/systemd-machined.service.in ++++ units/systemd-machined.service.in 2014-06-24 11:26:19.554235869 +0000 +@@ -15,5 +15,5 @@ After=machine.slice + [Service] + ExecStart=@rootlibexecdir@/systemd-machined + BusName=org.freedesktop.machine1 +-CapabilityBoundingSet=CAP_KILL ++CapabilityBoundingSet=CAP_KILL CAP_SYS_PTRACE CAP_SYS_ADMIN CAP_SETGID + WatchdogSec=1min diff --git a/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch b/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch new file mode 100644 index 00000000..8305035f --- /dev/null +++ b/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch @@ -0,0 +1,32 @@ +From d1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f Mon Sep 17 00:00:00 2001 +From: Ronan Le Martret +Date: Tue, 22 Apr 2014 10:33:25 +0200 +Subject: [PATCH] core: You can not put the cached result of use_smack fct, as + we are not sure the "/sys" is mounted. So we should mount + "sys" before "/proc" + +https://bugs.freedesktop.org/show_bug.cgi?id=77646 +--- + src/core/mount-setup.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index ae8447c..991bfdf 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -67,10 +67,10 @@ typedef struct MountPoint { + #define N_EARLY_MOUNT 5 + + static const MountPoint mount_table[] = { +- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +- NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, + NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +-- +1.7.9.2 + diff --git a/0003-core-allow-transient-mount-units.patch b/0003-core-allow-transient-mount-units.patch new file mode 100644 index 00000000..607bdaea --- /dev/null +++ b/0003-core-allow-transient-mount-units.patch @@ -0,0 +1,115 @@ +From 0e252f6b375af59eac9bd6d2fe8dd6ee2f51998d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 6 Jun 2014 15:10:20 +0200 +Subject: [PATCH] core: allow transient mount units + +For now only What=, Options=, Type= are supported, and Where= is deduced +from the unit name. +--- + src/core/dbus-mount.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++- + src/core/mount.c | 2 ++ + 2 files changed, 65 insertions(+), 1 deletion(-) + +diff --git src/core/dbus-mount.c src/core/dbus-mount.c +index e64d3ea..e27019d 100644 +--- src/core/dbus-mount.c ++++ src/core/dbus-mount.c +@@ -124,6 +124,47 @@ const sd_bus_vtable bus_mount_vtable[] = { + SD_BUS_VTABLE_END + }; + ++static int bus_mount_set_transient_property( ++ Mount *m, ++ const char *name, ++ sd_bus_message *message, ++ UnitSetPropertiesMode mode, ++ sd_bus_error *error) { ++ ++ const char *new_property; ++ char **property; ++ char *p; ++ int r; ++ ++ assert(m); ++ assert(name); ++ assert(message); ++ ++ if (streq(name, "What")) ++ property = &m->parameters_fragment.what; ++ else if (streq(name, "Options")) ++ property = &m->parameters_fragment.options; ++ else if (streq(name, "Type")) ++ property = &m->parameters_fragment.fstype; ++ else ++ return 0; ++ ++ r = sd_bus_message_read(message, "s", &new_property); ++ if (r < 0) ++ return r; ++ ++ if (mode != UNIT_CHECK) { ++ p = strdup(new_property); ++ if (!p) ++ return -ENOMEM; ++ ++ free(*property); ++ *property = p; ++ } ++ ++ return 1; ++} ++ + int bus_mount_set_property( + Unit *u, + const char *name, +@@ -132,12 +173,33 @@ int bus_mount_set_property( + sd_bus_error *error) { + + Mount *m = MOUNT(u); ++ int r; + + assert(m); + assert(name); + assert(message); + +- return bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); ++ r = bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); ++ if (r != 0) ++ return r; ++ ++ if (u->transient && u->load_state == UNIT_STUB) { ++ /* This is a transient unit, let's load a little more */ ++ ++ r = bus_mount_set_transient_property(m, name, message, mode, error); ++ if (r != 0) ++ return r; ++ ++ r = bus_exec_context_set_transient_property(u, &m->exec_context, name, message, mode, error); ++ if (r != 0) ++ return r; ++ ++ r = bus_kill_context_set_transient_property(u, &m->kill_context, name, message, mode, error); ++ if (r != 0) ++ return r; ++ } ++ ++ return 0; + } + + int bus_mount_commit_properties(Unit *u) { +diff --git src/core/mount.c src/core/mount.c +index a979837..14ac0a0 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1819,6 +1819,8 @@ const UnitVTable mount_vtable = { + + .get_timeout = mount_get_timeout, + ++ .can_transient = true, ++ + .enumerate = mount_enumerate, + .shutdown = mount_shutdown, + +-- +1.7.9.2 + diff --git a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch new file mode 100644 index 00000000..8c53718c --- /dev/null +++ b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch @@ -0,0 +1,98 @@ +Based on 571d0134bd464444567cf4eb0d2ed8df40045f36 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 24 Jun 2014 19:37:22 +0200 +Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true + non-existant + +--- + src/fsck/fsck.c | 32 ++++++++++++++++++++++---------- + src/shared/path-util.c | 26 +++++++++++++++----------- + 2 files changed, 37 insertions(+), 21 deletions(-) + +--- src/fsck/fsck.c ++++ src/fsck/fsck.c 2014-06-26 09:19:58.591864710 +0000 +@@ -280,16 +280,28 @@ int main(int argc, char *argv[]) { + + type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); + if (type) { +- const char *checker = strappenda("/sbin/fsck.", type); +- r = access(checker, X_OK); +- if (r < 0) { +- if (errno == ENOENT) { +- log_info("%s doesn't exist, not checking file system on %s", +- checker, device); +- return EXIT_SUCCESS; +- } else +- log_warning("%s cannot be used for %s: %m", +- checker, device); ++ _cleanup_free_ char *p = NULL, *d = NULL; ++ const char *checker = strappenda("fsck.", type); ++ r = find_binary(checker, &p); ++ if (r == -ENOENT) { ++ log_info("fsck.%s doesn't exist, not checking file system on %s", ++ type, device); ++ return EXIT_SUCCESS; ++ } else if (r < 0) { ++ log_warning("fsck.%s cannot be used for %s: %m", ++ type, device); ++ return r; ++ } ++ ++ /* An fsck that is linked to /bin/true is a non-existant fsck */ ++ r = readlink_malloc(p, &d); ++ if (r >= 0 && ++ (path_equal(d, "/bin/true") || ++ path_equal(d, "/usr/bin/true") || ++ path_equal(d, "/dev/null"))) { ++ log_info("fsck.%s doesn't exist, not checking file system on %s", ++ type, device); ++ return EXIT_SUCCESS; + } + } + +--- src/shared/path-util.c ++++ src/shared/path-util.c 2014-06-26 09:14:15.651559638 +0000 +@@ -425,19 +425,21 @@ int path_is_os_tree(const char *path) { + + int find_binary(const char *name, char **filename) { + assert(name); +- assert(filename); + +- if (strchr(name, '/')) { +- char *p; ++ if (is_path(name)) { ++ if (access(name, X_OK) < 0) ++ return -errno; ++ ++ if (filename) { ++ char *p; + +- if (path_is_absolute(name)) +- p = strdup(name); +- else + p = path_make_absolute_cwd(name); +- if (!p) +- return -ENOMEM; ++ if (!p) ++ return -ENOMEM; ++ ++ *filename = p; ++ } + +- *filename = p; + return 0; + } else { + const char *path; +@@ -463,8 +465,10 @@ int find_binary(const char *name, char * + continue; + } + +- path_kill_slashes(p); +- *filename = p; ++ if (filename) { ++ path_kill_slashes(p); ++ *filename = p; ++ } + + return 0; + } diff --git a/0003-install-fix-invalid-free-in-unit_file_mask.patch b/0003-install-fix-invalid-free-in-unit_file_mask.patch new file mode 100644 index 00000000..0fe0581b --- /dev/null +++ b/0003-install-fix-invalid-free-in-unit_file_mask.patch @@ -0,0 +1,30 @@ +From 223217749e57996336d5730b0a28716cca56d45d Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Fri, 13 Jun 2014 18:48:18 +0200 +Subject: [PATCH] install: fix invalid free() in unit_file_mask() + +int unit_file_mask(...) in ./src/shared/install.c calls +get_config_path(...) which can in 4 error cases return without setting +"ret", and thus "prefix" can be uninitialized when unit_file_mask(...) +finishes (which it does directly after the error is returned from +get_config_path(...)). +--- + src/shared/install.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/install.c src/shared/install.c +index 487d0f6..f562063 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -563,7 +563,7 @@ int unit_file_mask( + unsigned *n_changes) { + + char **i; +- _cleanup_free_ char *prefix; ++ _cleanup_free_ char *prefix = NULL; + int r; + + assert(scope >= 0); +-- +1.7.9.2 + diff --git a/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch b/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch new file mode 100644 index 00000000..5f466ea6 --- /dev/null +++ b/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch @@ -0,0 +1,26 @@ +Based on 497d1986c13032f1ef8f4592bb7ed8d3aa321a47 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 20 Jun 2014 00:15:39 +0200 +Subject: [PATCH] units: order systemd-tmpfiles-clean.service after + time-sync.target + +That way, on systems lacking an RTC we don't false start removing aged +files too early. +--- + units/systemd-tmpfiles-clean.service.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- units/systemd-tmpfiles-clean.service.in ++++ units/systemd-tmpfiles-clean.service.in 2014-06-24 10:47:57.398235644 +0000 +@@ -10,8 +10,9 @@ Description=Cleanup of Temporary Directo + Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) + DefaultDependencies=no + Wants=local-fs.target +-After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target +-Before=sysinit.target shutdown.target ++Conflicts=shutdown.target ++After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target ++Before=shutdown.target + ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/etc/tmpfiles.d diff --git a/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch b/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch new file mode 100644 index 00000000..15c8d7f5 --- /dev/null +++ b/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch @@ -0,0 +1,26 @@ +From d8e40d62ab871a87fde421c4b246bb45bc3cbe2d Mon Sep 17 00:00:00 2001 +From: Jonathan Liu +Date: Thu, 29 May 2014 01:17:25 +1000 +Subject: [PATCH] units: use KillMode=mixed for systemd-nspawn@.service + +This causes the container to shut down cleanly when the service is +stopped. +--- + units/systemd-nspawn@.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git units/systemd-nspawn@.service.in units/systemd-nspawn@.service.in +index ff36e90..e373628 100644 +--- units/systemd-nspawn@.service.in ++++ units/systemd-nspawn@.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-nspawn(1) + + [Service] + ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i ++KillMode=mixed + Type=notify + + [Install] +-- +1.7.9.2 + diff --git a/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch b/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch new file mode 100644 index 00000000..4bed22a5 --- /dev/null +++ b/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch @@ -0,0 +1,53 @@ +Based on bde29068aa3815c88190a91e9867605a0aeaf9c4 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 23 Jun 2014 19:18:44 +0200 +Subject: [PATCH] cryptsetup: don't add unit dependency on /dev/null devices + when it is listed as password file + +As special magic, don't create device dependencies for /dev/null. Of +course, there might be similar devices we might want to include, but +given that none of them really make sense to specify as password source +there's really no point in checking for anything else here. + +https://bugs.freedesktop.org/show_bug.cgi?id=75816 +--- + src/cryptsetup/cryptsetup-generator.c | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +--- src/cryptsetup/cryptsetup-generator.c ++++ src/cryptsetup/cryptsetup-generator.c 2014-06-25 17:24:14.338237375 +0000 +@@ -29,6 +29,7 @@ + #include "mkdir.h" + #include "strv.h" + #include "fileio.h" ++#include "path-util.h" + + static const char *arg_dest = "/tmp"; + static bool arg_enabled = true; +@@ -141,14 +142,18 @@ static int create_disk( + if (uu == NULL) + return log_oom(); + +- if (is_device_path(uu)) { +- _cleanup_free_ char *dd = unit_name_from_path(uu, ".device"); +- if (dd == NULL) +- return log_oom(); +- +- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); +- } else +- fprintf(f, "RequiresMountsFor=%s\n", password); ++ if (!path_equal(uu, "/dev/null")) { ++ if (is_device_path(uu)) { ++ _cleanup_free_ char *dd; ++ ++ dd = unit_name_from_path(uu, ".device"); ++ if (!dd) ++ return log_oom(); ++ ++ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); ++ } else ++ fprintf(f, "RequiresMountsFor=%s\n", password); ++ } + } + } + diff --git a/0004-getty-generator-properly-escape-instance-names.patch b/0004-getty-generator-properly-escape-instance-names.patch new file mode 100644 index 00000000..26feb694 --- /dev/null +++ b/0004-getty-generator-properly-escape-instance-names.patch @@ -0,0 +1,39 @@ +From a2ae516a25dafe41e0cd296ab7b5d022fa62b95f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 19 Jun 2014 22:02:55 -0400 +Subject: [PATCH] getty-generator: properly escape instance names + +Otherwise the add_symlink() function tries to make directories for +each slash even for the slash after the @ symbol in the final link +name, failing for /dev/3270/tty1. + +Based on a patch by Werner Fink . +--- + src/getty-generator/getty-generator.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/getty-generator/getty-generator.c src/getty-generator/getty-generator.c +index 35cd858..7d4b546 100644 +--- src/getty-generator/getty-generator.c ++++ src/getty-generator/getty-generator.c +@@ -67,7 +67,7 @@ static int add_serial_getty(const char *tty) { + + log_debug("Automatically adding serial getty for /dev/%s.", tty); + +- n = unit_name_replace_instance("serial-getty@.service", tty); ++ n = unit_name_from_path_instance("serial-getty", tty, ".service"); + if (!n) + return log_oom(); + +@@ -81,7 +81,7 @@ static int add_container_getty(const char *tty) { + + log_debug("Automatically adding container getty for /dev/pts/%s.", tty); + +- n = unit_name_replace_instance("container-getty@.service", tty); ++ n = unit_name_from_path_instance("container-getty", tty, ".service"); + if (!n) + return log_oom(); + +-- +1.7.9.2 + diff --git a/0004-systemd-detect-virt-only-discover-Xen-domU.patch b/0004-systemd-detect-virt-only-discover-Xen-domU.patch new file mode 100644 index 00000000..246e09b3 --- /dev/null +++ b/0004-systemd-detect-virt-only-discover-Xen-domU.patch @@ -0,0 +1,79 @@ +From 37287585b6ba9a55065c8f94458f6db3c0abe0af Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Fri, 6 Jun 2014 16:36:45 +0200 +Subject: [PATCH] systemd-detect-virt: only discover Xen domU + +The current vm detection lacks the distinction between Xen dom0 and Xen domU. +Both, dom0 and domU are running inside the hypervisor. +Therefore systemd-detect-virt and the ConditionVirtualization directive detect +dom0 as a virtual machine. + +dom0 is not using virtual devices but is accessing the real hardware. +Therefore dom0 should be considered the virtualisation host and not a virtual +machine. + +https://bugs.freedesktop.org/show_bug.cgi?id=77271 +--- + src/shared/virt.c | 34 +++++++++++++++++++++++++++------- + 1 file changed, 27 insertions(+), 7 deletions(-) + +diff --git src/shared/virt.c src/shared/virt.c +index 1e227c5..774915f 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -148,7 +148,7 @@ static int detect_vm_dmi(const char **_id) { + + /* Returns a short identifier for the various VM implementations */ + int detect_vm(const char **id) { +- _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL; ++ _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL; + static thread_local int cached_found = -1; + static thread_local const char *cached_id = NULL; + const char *_id = NULL; +@@ -162,17 +162,37 @@ int detect_vm(const char **id) { + return cached_found; + } + +- /* Try high-level hypervisor sysfs file first: ++ /* Try xen capabilities file first, if not found try high-level hypervisor sysfs file: + * +- * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */ +- r = read_one_line_file("/sys/hypervisor/type", &hvtype); ++ * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */ ++ r = read_one_line_file("/proc/xen/capabilities", &domcap); + if (r >= 0) { +- if (streq(hvtype, "xen")) { ++ char *cap, *i = domcap; ++ ++ while ((cap = strsep(&i, ","))) ++ if (streq(cap, "control_d")) ++ break; ++ ++ if (!i) { + _id = "xen"; + r = 1; +- goto finish; + } +- } else if (r != -ENOENT) ++ ++ goto finish; ++ ++ } else if (r == -ENOENT) { ++ _cleanup_free_ char *hvtype = NULL; ++ ++ r = read_one_line_file("/sys/hypervisor/type", &hvtype); ++ if (r >= 0) { ++ if (streq(hvtype, "xen")) { ++ _id = "xen"; ++ r = 1; ++ goto finish; ++ } ++ } else if (r != -ENOENT) ++ return r; ++ } else + return r; + + /* this will set _id to "other" and return 0 for unknown hypervisors */ +-- +1.7.9.2 + diff --git a/0004-util-ignore_file-should-not-allow-files-ending-with.patch b/0004-util-ignore_file-should-not-allow-files-ending-with.patch new file mode 100644 index 00000000..a30b4c4f --- /dev/null +++ b/0004-util-ignore_file-should-not-allow-files-ending-with.patch @@ -0,0 +1,28 @@ +From 93f1a06374e335e8508d89e1bdaadf45be6ab777 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 31 May 2014 21:36:23 +0200 +Subject: [PATCH] util: ignore_file should not allow files ending with '~' + +ignore_file currently allows any file ending with '~' while it +seems that the opposite was intended: +a228a22fda4faa9ecb7c5a5e499980c8ae5d2a08 +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 0c27394..17b0ae1 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1371,7 +1371,7 @@ bool ignore_file(const char *filename) { + assert(filename); + + if (endswith(filename, "~")) +- return false; ++ return true; + + return ignore_file_allow_backup(filename); + } +-- +1.7.9.2 + diff --git a/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch b/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch new file mode 100644 index 00000000..37c42d2e --- /dev/null +++ b/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch @@ -0,0 +1,60 @@ +From 4cd2b2cf8ca585d15ebc859701b346658262b5bb Mon Sep 17 00:00:00 2001 +From: Denis Tikhomirov +Date: Thu, 5 Jun 2014 23:59:40 +0400 +Subject: [PATCH] backlight: Do not clamp brightness for LEDs + +https://bugs.freedesktop.org/show_bug.cgi?id=77092 + +On Thu, Jun 05, 2014 at 08:37:20AM +0200, Lennart Poettering wrote: +> The patch is line-broken, please send an uncorrupted patch! +I am very sorry, I forgot that my client limits line width. I will use +mutt now on. +> clamp_brightness() clamps the brightness value to the range of the +> actual device. This is a recent addition that was added to deal with +> driver updates where the resolution is changed. I don't think this part +> should be dropped for LED devices. The clamp_brightness() call hence +> should be called unconditionally, however, internally it should use a +> different min_brightness value if something is an !backlight devices... +Thank you for explanation, this sounds very reasonable to me. Please, +see updated patch: +--- + src/backlight/backlight.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 691472c..4d94ebf 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -225,11 +225,13 @@ static unsigned get_max_brightness(struct udev_device *device) { + + /* Some systems turn the backlight all the way off at the lowest levels. + * clamp_brightness clamps the saved brightness to at least 1 or 5% of +- * max_brightness. This avoids preserving an unreadably dim screen, which +- * would otherwise force the user to disable state restoration. */ ++ * max_brightness in case of 'backlight' subsystem. This avoids preserving ++ * an unreadably dim screen, which would otherwise force the user to ++ * disable state restoration. */ + static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { + int r; + unsigned brightness, new_brightness, min_brightness; ++ const char *subsystem; + + r = safe_atou(*value, &brightness); + if (r < 0) { +@@ -237,7 +239,12 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned + return; + } + +- min_brightness = MAX(1U, max_brightness/20); ++ subsystem = udev_device_get_subsystem(device); ++ if (streq_ptr(subsystem, "backlight")) ++ min_brightness = MAX(1U, max_brightness/20); ++ else ++ min_brightness = 0; ++ + new_brightness = CLAMP(brightness, min_brightness, max_brightness); + if (new_brightness != brightness) { + char *old_value = *value; +-- +1.7.9.2 + diff --git a/0005-man-fix-path-in-crypttab-5.patch b/0005-man-fix-path-in-crypttab-5.patch new file mode 100644 index 00000000..d0aef604 --- /dev/null +++ b/0005-man-fix-path-in-crypttab-5.patch @@ -0,0 +1,26 @@ +From 9fcdf32294e66f91d2a177f73a77049832768311 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 23 Jun 2014 23:07:53 -0400 +Subject: [PATCH] man: fix path in crypttab(5) + +https://bugs.freedesktop.org/show_bug.cgi?id=75816 +--- + man/crypttab.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git man/crypttab.xml man/crypttab.xml +index 668e51d..9030015 100644 +--- man/crypttab.xml ++++ man/crypttab.xml +@@ -369,7 +369,7 @@ + luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b + swap /dev/sda7 /dev/urandom swap + truecrypt /dev/sda2 /etc/container_password tcrypt +-hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile ++hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile + + + +-- +1.7.9.2 + diff --git a/0005-po-add-Greek-translation.patch b/0005-po-add-Greek-translation.patch new file mode 100644 index 00000000..029ce4fa --- /dev/null +++ b/0005-po-add-Greek-translation.patch @@ -0,0 +1,436 @@ +From 3d89c35c2ae08c3fbf1a037c4df54c8e5ae56faf Mon Sep 17 00:00:00 2001 +From: Dimitris Spingos +Date: Wed, 7 May 2014 18:27:02 +0200 +Subject: [PATCH] po: add Greek translation + +https://bugs.freedesktop.org/show_bug.cgi?id=78064 +--- + po/LINGUAS | 3 +- + po/el.po | 404 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 406 insertions(+), 1 deletion(-) + create mode 100644 po/el.po + +diff --git po/LINGUAS po/LINGUAS +index 0301751..820ca82 100644 +--- po/LINGUAS ++++ po/LINGUAS +@@ -1,4 +1,5 @@ ++el + fr ++it + pl + ru +-it +diff --git po/el.po po/el.po +new file mode 100644 +index 0000000..1570565 +--- /dev/null ++++ po/el.po +@@ -0,0 +1,404 @@ ++# Greek translation for systemd. ++# Copyright (C) 2014 systemd's COPYRIGHT HOLDER ++# This file is distributed under the same license as the systemd package. ++# Dimitris Spingos , 2014. ++# Dimitris Spingos (Δημήτρης Σπίγγος) , 2014. ++msgid "" ++msgstr "" ++"Project-Id-Version: systemd master\n" ++"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" ++"temd&keywords=I18N+L10N&component=general\n" ++"POT-Creation-Date: 2014-04-25 15:51+0000\n" ++"PO-Revision-Date: 2014-04-29 09:17+0300\n" ++"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" ++"Language-Team: team@lists.gnome.gr\n" ++"Language: el\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Virtaal 0.7.0\n" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 ++msgid "Set host name" ++msgstr "Ορισμός ονόματος οικοδεσπότη" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 ++msgid "Authentication is required to set the local host name." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 ++msgid "Set static host name" ++msgstr "Ορισμός στατικού ονόματος οικοδεσπότη" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 ++msgid "" ++"Authentication is required to set the statically configured local host name, " ++"as well as the pretty host name." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ορίσετε το στατικά ρυθμισμένο όνομα τοπικού " ++"οικοδεσπότη, καθώς και το pretty όνομα οικοδεσπότη." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 ++msgid "Set machine information" ++msgstr "Ορισμός πληροφοριών μηχανής" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 ++msgid "Authentication is required to set local machine information." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε πληροφορίες τοπικής μηχανής." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 ++msgid "Set system locale" ++msgstr "Ορισμός τοπικών ρυθμίσεων συστήματος" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 ++msgid "Authentication is required to set the system locale." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ορίσετε τις τοπικές ρυθμίσεις του συστήματος." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 ++msgid "Set system keyboard settings" ++msgstr "Ορισμός ρυθμίσεων πληκτρολογίου συστήματος" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 ++msgid "Authentication is required to set the system keyboard settings." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ορίσετε τις ρυθμίσεις πληκτρολογίου του " ++"συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:1 ++msgid "Allow applications to inhibit system shutdown" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τον τερματισμό του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:2 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"shutdown." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει τον " ++"τερματισμό του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:3 ++msgid "Allow applications to delay system shutdown" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να καθυστερούν τον τερματισμό του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:4 ++msgid "" ++"Authentication is required to allow an application to delay system shutdown." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " ++"τον τερματισμό του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:5 ++msgid "Allow applications to inhibit system sleep" ++msgstr "Να επιτρέπεται στις εφαρμογές να αποτρέπουν την ύπνωση του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:6 ++msgid "" ++"Authentication is required to allow an application to inhibit system sleep." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"ύπνωση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:7 ++msgid "Allow applications to delay system sleep" ++msgstr "Να επιτρέπεται στις εφαρμογές να καθυστερούν την ύπνωση του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:8 ++msgid "" ++"Authentication is required to allow an application to delay system sleep." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " ++"την ύπνωση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:9 ++msgid "Allow applications to inhibit automatic system suspend" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν την αυτόματη αναστολή του " ++"συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:10 ++msgid "" ++"Authentication is required to allow an application to inhibit automatic " ++"system suspend." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"αυτόματη αναστολή του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:11 ++msgid "Allow applications to inhibit system handling of the power key" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " ++"ενεργοποίησης του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:12 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the power key." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του πλήκτρου ενεργοποίησης του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:13 ++msgid "Allow applications to inhibit system handling of the suspend key" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " ++"αναστολής του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:14 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the suspend key." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του πλήκτρου αναστολής του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:15 ++msgid "Allow applications to inhibit system handling of the hibernate key" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " ++"αδρανοποίησης του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:16 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the hibernate key." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του πλήκτρου αδρανοποίησης του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:17 ++msgid "Allow applications to inhibit system handling of the lid switch" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του διακόπτη " ++"καλύμματος του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:18 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the lid switch." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του διακόπτη καλύμματος του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:19 ++msgid "Allow non-logged-in users to run programs" ++msgstr "Να επιτρέπεται σε μη συνδεμένους χρήστες να εκτελούν προγράμματα" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:20 ++msgid "" ++"Authentication is required to allow a non-logged-in user to run programs." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μη συνδεμένους χρήστες να " ++"εκτελούν προγράμματα." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:21 ++msgid "Allow attaching devices to seats" ++msgstr "Να επιτρέπεται η προσάρτηση συσκευών στους σταθμούς εργασίας" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:22 ++msgid "Authentication is required for attaching a device to a seat." ++msgstr "" ++"Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:23 ++msgid "Flush device to seat attachments" ++msgstr "Αφαίρεση συσκευής από προσαρτήσεις σταθμού εργασίας" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:24 ++msgid "" ++"Authentication is required for resetting how devices are attached to seats." ++msgstr "" ++"Απαιτείται πιστοποίηση για επαναφορά του τρόπου που οι συσκευές προσαρτώνται " ++"στους σταθμούς εργασίας." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:25 ++msgid "Power off the system" ++msgstr "Σβήσιμο του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:26 ++msgid "Authentication is required for powering off the system." ++msgstr "Απαιτείται πιστοποίηση για την σβήσιμο του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:27 ++msgid "Power off the system while other users are logged in" ++msgstr "Σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:28 ++msgid "" ++"Authentication is required for powering off the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι " ++"συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:29 ++msgid "Power off the system while an application asked to inhibit it" ++msgstr "Απενεργοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:30 ++msgid "" ++"Authentication is required for powering off the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για απενεργοποίηση του συστήματος ενώ μια εφαρμογή " ++"ζήτησε να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:31 ++msgid "Reboot the system" ++msgstr "Επανεκκίνηση του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:32 ++msgid "Authentication is required for rebooting the system." ++msgstr "Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:33 ++msgid "Reboot the system while other users are logged in" ++msgstr "Επανεκκίνηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:34 ++msgid "" ++"Authentication is required for rebooting the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ άλλοι χρήστες " ++"είναι συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:35 ++msgid "Reboot the system while an application asked to inhibit it" ++msgstr "Επανεκκίνηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:36 ++msgid "" ++"Authentication is required for rebooting the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ μια εφαρμογή " ++"ζήτησε να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:37 ++msgid "Suspend the system" ++msgstr "Αναστολή του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:38 ++msgid "Authentication is required for suspending the system." ++msgstr "Απαιτείται πιστοποίηση για την αναστολή του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:39 ++msgid "Suspend the system while other users are logged in" ++msgstr "Αναστολή του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:40 ++msgid "" ++"Authentication is required for suspending the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ άλλοι χρήστες είναι " ++"συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:41 ++msgid "Suspend the system while an application asked to inhibit it" ++msgstr "Αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:42 ++msgid "" ++"Authentication is required for suspending the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε " ++"να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:43 ++msgid "Hibernate the system" ++msgstr "Αδρανοποίηση του συτήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:44 ++msgid "Authentication is required for hibernating the system." ++msgstr "Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:45 ++msgid "Hibernate the system while other users are logged in" ++msgstr "Αδρανοποίηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:46 ++msgid "" ++"Authentication is required for hibernating the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ άλλοι χρήστες " ++"είναι συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:47 ++msgid "Hibernate the system while an application asked to inhibit it" ++msgstr "Αδρανοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:48 ++msgid "" ++"Authentication is required for hibernating the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ μια εφαρμογή " ++"ζήτησε να αποτραπεί." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 ++msgid "Set system time" ++msgstr "Ορισμός ώρας συστήματος" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 ++msgid "Authentication is required to set the system time." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 ++msgid "Set system timezone" ++msgstr "Ορισμός ζώνης ώρας συστήματος" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 ++msgid "Authentication is required to set the system timezone." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα ζώνης του συστήματος." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 ++msgid "Set RTC to local timezone or UTC" ++msgstr "Ορισμός RTC στην τοπική ζώνη ώρας ή UTC" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 ++msgid "" ++"Authentication is required to control whether the RTC stores the local or " ++"UTC time." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ελέγξετε αν το RTC αποθηκεύει την τοπική ή την " ++"ώρα UTC." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 ++msgid "Turn network time synchronization on or off" ++msgstr "Ενεργοποίηση/Απενεργοποίηση συγχρονισμού ώρας δικτύου" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 ++msgid "" ++"Authentication is required to control whether network time synchronization " ++"shall be enabled." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ελέγξετε αν ο συγχρονισμός ώρας δικτύου θα " ++"ενεργοποιηθεί." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 ++msgid "Send passphrase back to system" ++msgstr "Αποστολή του συνθηματικού πίσω στο σύστημα" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 ++msgid "" ++"Authentication is required to send the entered passphrase back to the system." ++msgstr "" ++"Απαιτείται πιστοποίηση για αποστολή του εισερχόμενου συνθηματικού πίσω στο " ++"σύστημα." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 ++msgid "Privileged system and service manager access" ++msgstr "Προνομιούχος πρόσβαση διαχειριστή συστήματος και υπηρεσίας" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 ++msgid "Authentication is required to access the system and service manager." ++msgstr "" ++"Απαιτείται πιστοποίηση για να προσπελάσετε τον διαχειριστή συστήματος και " ++"υπηρεσιών." +-- +1.7.9.2 + diff --git a/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..c4e89bb1 --- /dev/null +++ b/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,82 @@ +From 7cfa80f07e94c3e48703d145ef03a73dd6e7b983 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Wed, 18 Jun 2014 13:55:32 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 42 ++++++++++++++++++++++++++++++--- + 1 file changed, 39 insertions(+), 3 deletions(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index a65c7db..377748a 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -115,7 +115,7 @@ bluetooth:v0024* + ID_VENDOR_FROM_DATABASE=Alcatel + + bluetooth:v0025* +- ID_VENDOR_FROM_DATABASE=Philips Semiconductors ++ ID_VENDOR_FROM_DATABASE=NXP Semiconductors (formerly Philips Semiconductors) + + bluetooth:v0026* + ID_VENDOR_FROM_DATABASE=C Technologies +@@ -427,7 +427,7 @@ bluetooth:v008B* + ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC + + bluetooth:v008C* +- ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.) ++ ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.) + + bluetooth:v008D* + ID_VENDOR_FROM_DATABASE=Zscan Software +@@ -1006,10 +1006,46 @@ bluetooth:v014C* + ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd + + bluetooth:v014D* +- ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. ++ ID_VENDOR_FROM_DATABASE=Huizhou Desay SV Automotive CO., LTD. + + bluetooth:v014E* + ID_VENDOR_FROM_DATABASE=Tangerine, Inc. + + bluetooth:v014F* + ID_VENDOR_FROM_DATABASE=B&W Group Ltd. ++ ++bluetooth:v0150* ++ ID_VENDOR_FROM_DATABASE=Pioneer Corporation ++ ++bluetooth:v0151* ++ ID_VENDOR_FROM_DATABASE=OnBeep ++ ++bluetooth:v0152* ++ ID_VENDOR_FROM_DATABASE=Vernier Software & Technology ++ ++bluetooth:v0153* ++ ID_VENDOR_FROM_DATABASE=ROL Ergo ++ ++bluetooth:v0154* ++ ID_VENDOR_FROM_DATABASE=Pebble Technology ++ ++bluetooth:v0155* ++ ID_VENDOR_FROM_DATABASE=NETATMO ++ ++bluetooth:v0156* ++ ID_VENDOR_FROM_DATABASE=Accumulate AB ++ ++bluetooth:v0157* ++ ID_VENDOR_FROM_DATABASE=Anhui Huami Information Technology Co., Ltd. ++ ++bluetooth:v0158* ++ ID_VENDOR_FROM_DATABASE=Inmite s.r.o. ++ ++bluetooth:v0159* ++ ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. ++ ++bluetooth:v015A* ++ ID_VENDOR_FROM_DATABASE=micus AG ++ ++bluetooth:v015B* ++ ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. +-- +1.7.9.2 + diff --git a/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch b/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch new file mode 100644 index 00000000..e76abb48 --- /dev/null +++ b/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch @@ -0,0 +1,29 @@ +From e683212f049ac5d3f95fb17300cfa2fd971f78f3 Mon Sep 17 00:00:00 2001 +From: Ronny Chevalier +Date: Tue, 3 Jun 2014 19:44:03 +0200 +Subject: [PATCH] log: honour the kernel's quiet cmdline argument + +It was forgotten in b1e90ec515408aec2702522f6f68c4920b56375b + +See https://bugs.freedesktop.org/show_bug.cgi?id=79582 +--- + src/shared/log.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/shared/log.c src/shared/log.c +index 9039db3..6f17705 100644 +--- src/shared/log.c ++++ src/shared/log.c +@@ -878,6 +878,9 @@ void log_parse_environment(void) { + if (l == 5 && startswith(w, "debug")) { + log_set_max_level(LOG_DEBUG); + break; ++ } else if (l == 5 && startswith(w, "quiet")) { ++ log_set_max_level(LOG_WARNING); ++ break; + } + } + } +-- +1.7.9.2 + diff --git a/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch b/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch new file mode 100644 index 00000000..aa77e4cc --- /dev/null +++ b/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch @@ -0,0 +1,26 @@ +From 267b3e41df5a2181f2911433539f81de2fa1511a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Thu, 29 May 2014 14:17:37 -0400 +Subject: [PATCH] tty-ask-password-agent: Do tell what directory we failed to + open + +--- + .../tty-ask-password-agent.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 3203474..55a2215 100644 +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -501,7 +501,7 @@ static int show_passwords(void) { + if (errno == ENOENT) + return 0; + +- log_error("opendir(): %m"); ++ log_error("opendir(/run/systemd/ask-password): %m"); + return -errno; + } + +-- +1.7.9.2 + diff --git a/0007-keyboard-add-Plantronics-.Audio-mute-button.patch b/0007-keyboard-add-Plantronics-.Audio-mute-button.patch new file mode 100644 index 00000000..53c701bd --- /dev/null +++ b/0007-keyboard-add-Plantronics-.Audio-mute-button.patch @@ -0,0 +1,32 @@ +From 9e3dbf6b2b99d0e16989d9cedb458729db5a60c3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 1 Jun 2014 14:01:23 -0400 +Subject: [PATCH] keyboard: add Plantronics .Audio mute button + +https://bugs.freedesktop.org/show_bug.cgi?id=79495 +--- + hwdb/60-keyboard.hwdb | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 05e6a04..d053766 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -866,6 +866,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* + KEYBOARD_KEY_f3=volumeup + + ########################################################### ++# Plantronics ++########################################################### ++ ++# Plantronics .Audio 626 DSP ++keyboard:usb:v047fpC006* ++ KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute ++ ++########################################################### + # Quanta + ########################################################### + +-- +1.7.9.2 + diff --git a/0007-po-add-German-translation.patch b/0007-po-add-German-translation.patch new file mode 100644 index 00000000..d653c8ff --- /dev/null +++ b/0007-po-add-German-translation.patch @@ -0,0 +1,448 @@ +From 351e57652a7d9a51f9064c089794d13801eaee73 Mon Sep 17 00:00:00 2001 +From: Benjamin Steinwender +Date: Sun, 8 Jun 2014 18:39:50 +0200 +Subject: [PATCH] po: add German translation + +https://bugs.freedesktop.org/show_bug.cgi?id=79430 +--- + po/LINGUAS | 1 + + po/de.po | 418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 419 insertions(+) + create mode 100644 po/de.po + +diff --git po/LINGUAS po/LINGUAS +index 820ca82..2cb0f30 100644 +--- po/LINGUAS ++++ po/LINGUAS +@@ -1,3 +1,4 @@ ++de + el + fr + it +diff --git po/de.po po/de.po +new file mode 100644 +index 0000000..a41e33d +--- /dev/null ++++ po/de.po +@@ -0,0 +1,418 @@ ++# German translation for systemd. ++# Copyright (C) 2014 systemd's COPYRIGHT HOLDER ++# This file is distributed under the same license as the systemd package. ++# Christian Kirbach , 2014. ++# Benjamin Steinwender , 2014. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: systemd master\n" ++"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?" ++"product=systemd&keywords=I18N+L10N&component=general\n" ++"POT-Creation-Date: 2014-06-02 10:25+0000\n" ++"PO-Revision-Date: 2014-06-02 22:43+0100\n" ++"Last-Translator: Benjamin Steinwender \n" ++"Language-Team: German \n" ++"Language: de\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Poedit 1.6.5\n" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 ++msgid "Set host name" ++msgstr "Rechnername festlegen" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 ++msgid "Authentication is required to set the local host name." ++msgstr "Legitimierung ist zum Festlegen des lokalen Rechnernamens notwendig" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 ++msgid "Set static host name" ++msgstr "Statischen Rechnernamen festlegen" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 ++msgid "" ++"Authentication is required to set the statically configured local host name, " ++"as well as the pretty host name." ++msgstr "" ++"Authentifizierung ist erforderlich, um den statisch geänderten, lokalen " ++"Rechnernamen, sowie den beschönigten Rechnernamen festzulegen." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 ++msgid "Set machine information" ++msgstr "Maschinen-Information festlegen" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 ++msgid "Authentication is required to set local machine information." ++msgstr "" ++"Legitimierung ist zum Festlegen der lokalen Maschinen-Information " ++"erforderlich." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 ++msgid "Set system locale" ++msgstr "Die lokale Sprachumgebung festlegen" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 ++msgid "Authentication is required to set the system locale." ++msgstr "" ++"Legitimierung ist zum Festlegen der systemweiten Spracheinstellungen " ++"erforderlich." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 ++msgid "Set system keyboard settings" ++msgstr "Tastatureinstellungen des Systems festlegen" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 ++msgid "Authentication is required to set the system keyboard settings." ++msgstr "" ++"Legitimierung ist zum Festlegen der Tastatureinstellungen des Systems " ++"erforderlich." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:1 ++msgid "Allow applications to inhibit system shutdown" ++msgstr "Anwendungen dürfen das Herunterfahren des Systems unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:2 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"shutdown." ++msgstr "" ++"Legitimierung ist notwendig, um Anwendungen das Herunterfahren des Systems " ++"zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:3 ++msgid "Allow applications to delay system shutdown" ++msgstr "Anwendungen dürfen das Herunterfahren des Systems verzögern" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:4 ++msgid "" ++"Authentication is required to allow an application to delay system shutdown." ++msgstr "" ++"Legitimierung ist notwendig, um Anwendungen das Verzögern des Herunterfahren " ++"des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:5 ++msgid "Allow applications to inhibit system sleep" ++msgstr "Anwendungen dürfen den Bereitschaftsmodus unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:6 ++msgid "" ++"Authentication is required to allow an application to inhibit system sleep." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden des " ++"Bereitschaftsmodus zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:7 ++msgid "Allow applications to delay system sleep" ++msgstr "Anwendungen dürfen den Bereitschaftsmodus verzögern" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:8 ++msgid "" ++"Authentication is required to allow an application to delay system sleep." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Verzögern des " ++"Bereitschaftsmodus zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:9 ++msgid "Allow applications to inhibit automatic system suspend" ++msgstr "Anwendungen dürfen den automatischen Bereitschaftsmodus unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:10 ++msgid "" ++"Authentication is required to allow an application to inhibit automatic " ++"system suspend." ++msgstr "" ++"Legitimierung ist notwendig, um Anwendungen das Unterbinden des " ++"automatischen Bereitschaftsmodus zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:11 ++msgid "Allow applications to inhibit system handling of the power key" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Ein-/Ausschaltknopfs des Systems " ++"unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:12 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the power key." ++msgstr "" ++"Legitmierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung " ++"der Ein-/Ausschaltknopfs des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:13 ++msgid "Allow applications to inhibit system handling of the suspend key" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Bereitschaftsknopfs des Systems " ++"unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:14 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the suspend key." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " ++"Auswertung des Bereitschaftsknopfes des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:15 ++msgid "Allow applications to inhibit system handling of the hibernate key" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Knopfs für den Ruhezustand unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:16 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the hibernate key." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " ++"Auswertung des Knopfs für den Ruhezustand zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:17 ++msgid "Allow applications to inhibit system handling of the lid switch" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Notebookdeckelschalters unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:18 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the lid switch." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " ++"Auswertung des Notebookdeckelschalters des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:19 ++msgid "Allow non-logged-in users to run programs" ++msgstr "Nicht angemeldete Benutzer dürfen Programme ausführen" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:20 ++msgid "" ++"Authentication is required to allow a non-logged-in user to run programs." ++msgstr "" ++"Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme " ++"ausführen dürfen." ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:21 ++msgid "Allow attaching devices to seats" ++msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben" ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:22 ++msgid "Authentication is required for attaching a device to a seat." ++msgstr "" ++"Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation " ++"notwendig." ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:23 ++msgid "Flush device to seat attachments" ++msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte" ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:24 ++msgid "" ++"Authentication is required for resetting how devices are attached to seats." ++msgstr "" ++"Legitimierung ist zum Zurücksetzen notwendig, wie Geräte an eine " ++"Arbeitsstation angeschlossen werden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:25 ++msgid "Power off the system" ++msgstr "Das System ausschalten" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:26 ++msgid "Authentication is required for powering off the system." ++msgstr "Legitimierung ist zum Ausschalten des Systems notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:27 ++msgid "Power off the system while other users are logged in" ++msgstr "Das System herunter fahren, während andere Benutzer angemeldet sind" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:28 ++msgid "" ++"Authentication is required for powering off the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Herunterfahren des Systems notwendig, während andere " ++"Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:29 ++msgid "Power off the system while an application asked to inhibit it" ++msgstr "" ++"Das System ausschalten, während eine Anwendung anfordert es zu unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:30 ++msgid "" ++"Authentication is required for powering off the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Ausschalten des Systems notwendig, während eine " ++"Anwendung anfordert es zu unterbinden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:31 ++msgid "Reboot the system" ++msgstr "Das System neu starten" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:32 ++msgid "Authentication is required for rebooting the system." ++msgstr "Legitimierung ist zum Neustart des Systems notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:33 ++msgid "Reboot the system while other users are logged in" ++msgstr "Das Systems neu starten, während andere Benutzer angemeldet sind" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:34 ++msgid "" ++"Authentication is required for rebooting the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Neustart des Systems notwendig, während andere " ++"Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:35 ++msgid "Reboot the system while an application asked to inhibit it" ++msgstr "" ++"Das System neu starten, während eine Anwendung anfordert es zu unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:36 ++msgid "" ++"Authentication is required for rebooting the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Neustart des Systems notwendig, während eine Anwendung " ++"anforderte es zu unterbinden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:37 ++msgid "Suspend the system" ++msgstr "Das System in Bereitschaft versetzen" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:38 ++msgid "Authentication is required for suspending the system." ++msgstr "Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:39 ++msgid "Suspend the system while other users are logged in" ++msgstr "" ++"Das System in Bereitschaft versetzen, während andere Benutzer angemeldet " ++"sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:40 ++msgid "" ++"Authentication is required for suspending the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " ++"während andere Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:41 ++msgid "Suspend the system while an application asked to inhibit it" ++msgstr "" ++"Das System in Bereitschaft versetzen, während eine Anwendung anfordert dies " ++"zu unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:42 ++msgid "" ++"Authentication is required for suspending the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " ++"während eine Anwendung anfordert dies zu unterbinden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:43 ++msgid "Hibernate the system" ++msgstr "Den Ruhezustand des Systems aktivieren" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:44 ++msgid "Authentication is required for hibernating the system." ++msgstr "" ++"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:45 ++msgid "Hibernate the system while other users are logged in" ++msgstr "" ++"Den Ruhezustand des Systems aktivieren, während andere Benutzer angemeldet " ++"sind" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:46 ++msgid "" ++"Authentication is required for hibernating the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, " ++"während andere Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:47 ++msgid "Hibernate the system while an application asked to inhibit it" ++msgstr "" ++"Das System in den Ruhezustand versetzen, während eine Anwendung wünscht dies " ++"zu verhindern" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:48 ++msgid "" ++"Authentication is required for hibernating the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Versetzen des System in den Ruhezustand notwendig, " ++"während eine Anwendung wünscht dies zu verhindern." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 ++msgid "Set system time" ++msgstr "Die Systemzeit festlegen" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 ++msgid "Authentication is required to set the system time." ++msgstr "Legitimierung ist zum Festlegen der Systemzeit notwendig." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 ++msgid "Set system timezone" ++msgstr "Die Systemzeitzone festlegen" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 ++msgid "Authentication is required to set the system timezone." ++msgstr "Legitimierung ist zum Festlegen der Systemzeitzone notwendig." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 ++msgid "Set RTC to local timezone or UTC" ++msgstr "Echtzeituhr auf lokale Zeitzone oder UTC setzen" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 ++msgid "" ++"Authentication is required to control whether the RTC stores the local or " ++"UTC time." ++msgstr "" ++"Legitimierung ist notwendig zum Festlegen, ob die Echtzeituhr auf lokale " ++"Zeitzone oder UTC eingestellt ist." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 ++msgid "Turn network time synchronization on or off" ++msgstr "Netzwerkzeitabgeich ein- oder ausschalten" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 ++msgid "" ++"Authentication is required to control whether network time synchronization " ++"shall be enabled." ++msgstr "" ++"Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein " ++"soll, erforderlich." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 ++msgid "Send passphrase back to system" ++msgstr "Passphrase zurück an das System senden" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 ++msgid "" ++"Authentication is required to send the entered passphrase back to the system." ++msgstr "" ++"Legitimierung ist zum Senden des eingegebenen Kennworts zurück an das System " ++"notwendig." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 ++msgid "Privileged system and service manager access" ++msgstr "Privilegierter Zugriff auf die System- und Dienstverwaltung" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 ++msgid "Authentication is required to access the system and service manager." ++msgstr "" ++"Legitimierung ist notwendig für den Zugriff auf die System- und " ++"Dienstverwaltung." +-- +1.7.9.2 + diff --git a/0001-systemd-empty-sigmask-on-reexec.patch b/0008-Reset-signal-mask-on-re-exec-to-init.patch similarity index 53% rename from 0001-systemd-empty-sigmask-on-reexec.patch rename to 0008-Reset-signal-mask-on-re-exec-to-init.patch index f4f3ac92..9fe7d1ea 100644 --- a/0001-systemd-empty-sigmask-on-reexec.patch +++ b/0008-Reset-signal-mask-on-re-exec-to-init.patch @@ -1,16 +1,23 @@ -Process 1 (aka init) needs to be started with an empty signal mask. That -includes the process 1 that's started after the initrd is finished. When the -initrd is using systemd (as it does with dracut based initrds) then it is -systemd that calls the real init. Normally this is systemd again, except -when the user uses for instance "init=/bin/bash" on the kernel command line. +From 5a85ca1cb622fda4a39c8a6f00dccea7f8a1e82a Mon Sep 17 00:00:00 2001 +From: Ruediger Oertel +Date: Fri, 13 Jun 2014 16:41:06 +0200 +Subject: [PATCH] Reset signal-mask on re-exec to init=.. +Process 1 (aka init) needs to be started with an empty signal mask. +That includes the process 1 that's started after the initrd is finished. +When the initrd is using systemd (as it does with dracut based initrds) +then it is systemd that calls the real init. Normally this is systemd +again, except when the user uses for instance "init=/bin/bash" on the +kernel command line. --- - main.c | 9 +++++++++ - 1 file changed, 9 insertions(+) + src/core/main.c | 8 ++++++++ + 1 file changed, 8 insertions(+) +diff --git src/core/main.c src/core/main.c +index 3aac5d1..3e57f07 100644 --- src/core/main.c -+++ src/core/main.c 2014-02-27 13:54:21.922236495 +0000 -@@ -1780,6 +1780,7 @@ finish: ++++ src/core/main.c +@@ -1843,6 +1843,7 @@ finish: if (reexecute) { const char **args; unsigned i, args_size; @@ -18,25 +25,27 @@ when the user uses for instance "init=/bin/bash" on the kernel command line. /* Close and disarm the watchdog, so that the new * instance can reinitialize it, but doesn't get -@@ -1863,6 +1864,11 @@ finish: +@@ -1926,6 +1927,11 @@ finish: args[i++] = NULL; assert(i <= args_size); + /* reenable any blocked signals, especially important + * if we switch from initial ramdisk to init=... */ + sigemptyset(&ss); -+ sigprocmask(SIG_SETMASK,&ss,&o_ss); ++ sigprocmask(SIG_SETMASK, &ss, &o_ss); + if (switch_root_init) { args[0] = switch_root_init; execv(args[0], (char* const*) args); -@@ -1881,6 +1887,9 @@ finish: +@@ -1944,6 +1950,8 @@ finish: log_error("Failed to execute /bin/sh, giving up: %m"); } else log_warning("Failed to execute /sbin/init, giving up: %m"); + -+ /* back to saved state if reexec failed */ -+ sigprocmask(SIG_SETMASK,&o_ss,NULL); ++ sigprocmask(SIG_SETMASK, &o_ss, NULL); } if (arg_serialization) { +-- +1.7.9.2 + diff --git a/0009-core-clean-up-signal-reset-logic-when-reexec.patch b/0009-core-clean-up-signal-reset-logic-when-reexec.patch new file mode 100644 index 00000000..cfe54186 --- /dev/null +++ b/0009-core-clean-up-signal-reset-logic-when-reexec.patch @@ -0,0 +1,50 @@ +From 9bfcda9528636914aef3e0ab91191bb81654c83d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 20 Jun 2014 16:58:21 +0200 +Subject: [PATCH] core: clean-up signal reset logic when reexec + +There's no need to save the old sigmask, if we are going to die. Let's +simplify this. Also, reset all the signal handlers, so that we don't +leave SIG_IGN set for some of them across reexec. +--- + src/core/main.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git src/core/main.c src/core/main.c +index 863ba52..6981e72 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1824,7 +1824,7 @@ finish: + if (reexecute) { + const char **args; + unsigned i, args_size; +- sigset_t ss, o_ss; ++ sigset_t ss; + + /* Close and disarm the watchdog, so that the new + * instance can reinitialize it, but doesn't get +@@ -1910,8 +1910,10 @@ finish: + + /* reenable any blocked signals, especially important + * if we switch from initial ramdisk to init=... */ +- sigemptyset(&ss); +- sigprocmask(SIG_SETMASK, &ss, &o_ss); ++ reset_all_signal_handlers(); ++ ++ assert_se(sigemptyset(&ss) == 0); ++ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); + + if (switch_root_init) { + args[0] = switch_root_init; +@@ -1931,8 +1933,6 @@ finish: + log_error("Failed to execute /bin/sh, giving up: %m"); + } else + log_warning("Failed to execute /sbin/init, giving up: %m"); +- +- sigprocmask(SIG_SETMASK, &o_ss, NULL); + } + + if (arg_serialization) { +-- +1.7.9.2 + diff --git a/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch b/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch new file mode 100644 index 00000000..e99c1a0d --- /dev/null +++ b/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch @@ -0,0 +1,25 @@ +From da92ca5eb506d513033e0c7a85daf25a7e1c9d0e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 20 Jun 2014 22:43:49 -0400 +Subject: [PATCH] util: treat fuse.sshfs as a network filesystem + +https://bugs.freedesktop.org/show_bug.cgi?id=73727 +--- + src/shared/util.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/util.c src/shared/util.c +index 882a690..dbdb692 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1514,6 +1514,7 @@ bool fstype_is_network(const char *fstype) { + static const char table[] = + "cifs\0" + "smbfs\0" ++ "sshfs\0" + "ncpfs\0" + "ncp\0" + "nfs\0" +-- +1.7.9.2 + diff --git a/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch b/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch new file mode 100644 index 00000000..325f04a9 --- /dev/null +++ b/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch @@ -0,0 +1,28 @@ +From 8e75477abdd838d3beddc5fd1c6a7707b22748b6 Mon Sep 17 00:00:00 2001 +From: Ronny Chevalier +Date: Sat, 21 Jun 2014 22:07:09 +0200 +Subject: [PATCH] build-sys: add -pthread flag for libsystemd-shared + +src/shared/async.c uses pthread so it will fail at link time if we link +only to libsystemd-shared and use async +--- + Makefile.am | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git Makefile.am Makefile.am +index c7653ea..00db82d 100644 +--- Makefile.am ++++ Makefile.am +@@ -837,7 +837,8 @@ nodist_libsystemd_shared_la_SOURCES = \ + + libsystemd_shared_la_CFLAGS = \ + $(AM_CFLAGS) \ +- $(SECCOMP_CFLAGS) ++ $(SECCOMP_CFLAGS) \ ++ -pthread + + # ------------------------------------------------------------------------------ + noinst_LTLIBRARIES += \ +-- +1.7.9.2 + diff --git a/0012-core-transaction-avoid-misleading-error-message-when.patch b/0012-core-transaction-avoid-misleading-error-message-when.patch new file mode 100644 index 00000000..03021cd2 --- /dev/null +++ b/0012-core-transaction-avoid-misleading-error-message-when.patch @@ -0,0 +1,42 @@ +Based on 04ef5b03f64d3824a51a2a903548af029a006744 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 22 Jun 2014 14:04:23 -0400 +Subject: [PATCH] core/transaction: avoid misleading error message when unit + not found + +There's no point in telling the user to look at the logs when +an attempt to load the unit file failed with ENOENT. + +https://bugzilla.redhat.com/show_bug.cgi?id=996133 +--- + TODO | 4 ---- + src/core/transaction.c | 18 ++++++++++++------ + 2 files changed, 12 insertions(+), 10 deletions(-) + +--- src/core/transaction.c ++++ src/core/transaction.c 2014-06-24 11:18:42.746235805 +0000 +@@ -865,12 +865,18 @@ int transaction_add_job_and_dependencies + } + + if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { +- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, +- "Unit %s failed to load: %s. " +- "See system logs and 'systemctl status %s' for details.", +- unit->id, +- strerror(-unit->load_error), +- unit->id); ++ if (unit->load_error == -ENOENT) ++ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, ++ "Unit %s failed to load: %s.", ++ unit->id, ++ strerror(-unit->load_error)); ++ else ++ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, ++ "Unit %s failed to load: %s. " ++ "See system logs and 'systemctl status %s' for details.", ++ unit->id, ++ strerror(-unit->load_error), ++ unit->id); + return -EINVAL; + } + diff --git a/1021-udev-re-add-persistent-net-rules.patch b/1021-udev-re-add-persistent-net-rules.patch new file mode 100644 index 00000000..e8cd290c --- /dev/null +++ b/1021-udev-re-add-persistent-net-rules.patch @@ -0,0 +1,532 @@ +Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +@@ -0,0 +1,105 @@ ++# do not edit this file, it will be overwritten on update ++ ++# these rules generate rules for persistent network device naming ++# ++# variables used to communicate: ++# MATCHADDR MAC address used for the match ++# MATCHID bus_id used for the match ++# MATCHDRV driver name used for the match ++# MATCHIFTYPE interface type match ++# COMMENT comment to add to the generated rule ++# INTERFACE_NAME requested name supplied by external tool ++# INTERFACE_NEW new interface name returned by rule writer ++ ++ACTION!="add", GOTO="persistent_net_generator_end" ++SUBSYSTEM!="net", GOTO="persistent_net_generator_end" ++ ++# ignore the interface if a name has already been set ++NAME=="?*", GOTO="persistent_net_generator_end" ++ ++# device name whitelist ++KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" ++ ++IMPORT{cmdline}="net.ifnames" ++ENV{net.ifnames}=="1", GOTO="persistent_net_generator_end" ++ ++# ignore Xen virtual interfaces ++SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" ++ ++# read MAC address ++ENV{MATCHADDR}="$attr{address}" ++ ++# match interface type ++ENV{MATCHIFTYPE}="$attr{type}" ++ ++# ignore KVM virtual interfaces ++ENV{MATCHADDR}=="52:54:00:*", GOTO="persistent_net_generator_end" ++# ignore VMWare virtual interfaces ++ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", GOTO="persistent_net_generator_end" ++# ignore Hyper-V virtual interfaces ++ENV{MATCHADDR}=="00:15:5d:*", GOTO="persistent_net_generator_end" ++ ++# These vendors are known to violate the local MAC address assignment scheme ++# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom ++ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" ++# 3Com ++ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" ++# 3Com IBM PC; Imagen; Valid; Cisco; Apple ++ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" ++# Intel ++ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" ++# Olivetti ++ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" ++# CMC Masscomp; Silicon Graphics; Prime EXL ++ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" ++# Prominet Corporation Gigabit Ethernet Switch ++ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" ++# BTI (Bus-Tech, Inc.) IBM Mainframes ++ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" ++# Realtek ++ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist" ++# Novell 2000 ++ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" ++# Realtec ++ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" ++# Kingston Technologies ++ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" ++# Xensource ++ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" ++ ++# match interface dev_id ++ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" ++ ++# do not use "locally administered" MAC address ++ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" ++ ++# do not use empty address ++ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" ++ ++LABEL="globally_administered_whitelist" ++ ++# build comment line for generated rule: ++SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" ++SUBSYSTEMS=="usb", ATTRS{idVendor}=="?*", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" ++SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" ++SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" ++ ++# ibmveth likes to use "locally administered" MAC addresses ++DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" ++ ++# S/390 uses id matches only, do not use MAC address match ++SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" ++ ++# see if we got enough data to create a rule ++ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" ++ ++# default comment ++ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" ++ ++# write rule ++DRIVERS=="?*", IMPORT{program}="write_net_rules" ++ ++# rename interface if needed ++ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" ++ ++LABEL="persistent_net_generator_end" +Index: systemd-210/src/udev/rule_generator/rule_generator.functions +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/rule_generator.functions +@@ -0,0 +1,113 @@ ++# functions used by the udev rule generator ++ ++# Copyright (C) 2006 Marco d'Itri ++ ++# 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. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++PATH='/usr/bin:/bin:/usr/sbin:/sbin' ++ ++# Read a single line from file $1 in the $DEVPATH directory. ++# The function must not return an error even if the file does not exist. ++sysread() { ++ local file="$1" ++ [ -e "/sys$DEVPATH/$file" ] || return 0 ++ local value ++ read value < "/sys$DEVPATH/$file" || return 0 ++ echo "$value" ++} ++ ++sysreadlink() { ++ local file="$1" ++ [ -e "/sys$DEVPATH/$file" ] || return 0 ++ readlink -f /sys$DEVPATH/$file 2> /dev/null || true ++} ++ ++# Return true if a directory is writeable. ++writeable() { ++ if ln -s test-link $1/.is-writeable 2> /dev/null; then ++ rm -f $1/.is-writeable ++ return 0 ++ else ++ return 1 ++ fi ++} ++ ++# Create a lock file for the current rules file. ++lock_rules_file() { ++ RUNDIR="/run/udev" ++ [ -e "$RUNDIR" ] || return 0 ++ ++ RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" ++ ++ retry=30 ++ while ! mkdir $RULES_LOCK 2> /dev/null; do ++ if [ $retry -eq 0 ]; then ++ echo "Cannot lock $RULES_FILE!" >&2 ++ exit 2 ++ fi ++ sleep 1 ++ retry=$(($retry - 1)) ++ done ++} ++ ++unlock_rules_file() { ++ [ "$RULES_LOCK" ] || return 0 ++ rmdir $RULES_LOCK || true ++} ++ ++# Choose the real rules file if it is writeable or a temporary file if not. ++# Both files should be checked later when looking for existing rules. ++choose_rules_file() { ++ RUNDIR="/run/udev" ++ local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" ++ [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 ++ ++ if writeable ${RULES_FILE%/*}; then ++ RO_RULES_FILE='/dev/null' ++ else ++ RO_RULES_FILE=$RULES_FILE ++ RULES_FILE=$tmp_rules_file ++ fi ++} ++ ++# Return the name of the first free device. ++raw_find_next_available() { ++ local links="$1" ++ ++ local basename=${links%%[ 0-9]*} ++ local max=-1 ++ for name in $links; do ++ local num=${name#$basename} ++ [ "$num" ] || num=0 ++ [ $num -gt $max ] && max=$num ++ done ++ ++ local max=$(($max + 1)) ++ # "name0" actually is just "name" ++ [ $max -eq 0 ] && return ++ echo "$max" ++} ++ ++# Find all rules matching a key (with action) and a pattern. ++find_all_rules() { ++ local key="$1" ++ local linkre="$2" ++ local match="$3" ++ ++ local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' ++ echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ ++ $RO_RULES_FILE \ ++ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ ++ 2>/dev/null) ++} +Index: systemd-210/src/udev/rule_generator/write_net_rules +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/write_net_rules +@@ -0,0 +1,141 @@ ++#!/bin/sh -e ++ ++# This script is run to create persistent network device naming rules ++# based on properties of the device. ++# If the interface needs to be renamed, INTERFACE_NEW= will be printed ++# on stdout to allow udev to IMPORT it. ++ ++# variables used to communicate: ++# MATCHADDR MAC address used for the match ++# MATCHID bus_id used for the match ++# MATCHDEVID dev_id used for the match ++# MATCHDRV driver name used for the match ++# MATCHIFTYPE interface type match ++# COMMENT comment to add to the generated rule ++# INTERFACE_NAME requested name supplied by external tool ++# INTERFACE_NEW new interface name returned by rule writer ++ ++# Copyright (C) 2006 Marco d'Itri ++# Copyright (C) 2007 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. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# debug, if UDEV_LOG= ++if [ -n "$UDEV_LOG" ]; then ++ if [ "$UDEV_LOG" -ge 7 ]; then ++ set -x ++ fi ++fi ++ ++RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' ++ ++. /usr/lib/udev/rule_generator.functions ++ ++interface_name_taken() { ++ local value="$(find_all_rules 'NAME=' $INTERFACE)" ++ if [ "$value" ]; then ++ return 0 ++ else ++ return 1 ++ fi ++} ++ ++find_next_available() { ++ raw_find_next_available "$(find_all_rules 'NAME=' "$1")" ++} ++ ++write_rule() { ++ local match="$1" ++ local name="$2" ++ local comment="$3" ++ ++ { ++ if [ "$PRINT_HEADER" ]; then ++ PRINT_HEADER= ++ echo "# This file was automatically generated by the $0" ++ echo "# program, run by the persistent-net-generator.rules rules file." ++ echo "#" ++ echo "# You can modify it, as long as you keep each rule on a single" ++ echo "# line, and change only the value of the NAME= key." ++ fi ++ ++ echo "" ++ [ "$comment" ] && echo "# $comment" ++ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" ++ } >> $RULES_FILE ++} ++ ++if [ -z "$INTERFACE" ]; then ++ echo "missing \$INTERFACE" >&2 ++ exit 1 ++fi ++ ++# Prevent concurrent processes from modifying the file at the same time. ++lock_rules_file ++ ++# Check if the rules file is writeable. ++choose_rules_file ++ ++# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces ++if [ "$MATCHADDR" ]; then ++ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" ++fi ++ ++if [ "$MATCHDRV" ]; then ++ match="$match, DRIVERS==\"$MATCHDRV\"" ++fi ++ ++if [ "$MATCHDEVID" ]; then ++ match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" ++fi ++ ++if [ "$MATCHID" ]; then ++ match="$match, KERNELS==\"$MATCHID\"" ++fi ++ ++if [ "$MATCHIFTYPE" ]; then ++ match="$match, ATTR{type}==\"$MATCHIFTYPE\"" ++fi ++ ++if [ -z "$match" ]; then ++ echo "missing valid match" >&2 ++ unlock_rules_file ++ exit 1 ++fi ++ ++basename=${INTERFACE%%[0-9]*} ++match="$match, KERNEL==\"$basename*\"" ++ ++if [ "$INTERFACE_NAME" ]; then ++ # external tools may request a custom name ++ COMMENT="$COMMENT (custom name provided by external tool)" ++ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then ++ INTERFACE=$INTERFACE_NAME; ++ echo "INTERFACE_NEW=$INTERFACE" ++ fi ++else ++ # if a rule using the current name already exists, find a new name ++ if interface_name_taken; then ++ INTERFACE="$basename$(find_next_available "$basename[0-9]*")" ++ # prevent INTERFACE from being "eth" instead of "eth0" ++ [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 ++ echo "INTERFACE_NEW=$INTERFACE" ++ fi ++fi ++ ++write_rule "$match" "$INTERFACE" "$COMMENT" ++ ++unlock_rules_file ++ ++exit 0 +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2552,7 +2552,14 @@ dist_udevrules_DATA += \ + rules/75-tty-description.rules \ + rules/78-sound-card.rules \ + rules/80-net-setup-link.rules \ +- rules/95-udev-late.rules ++ rules/95-udev-late.rules \ ++ src/udev/rule_generator/75-persistent-net-generator.rules \ ++ src/udev/rule_generator/76-net-sriov-names.rules ++ ++udevlibexec_PROGRAMS += \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules \ ++ src/udev/rule_generator/net-set-sriov-names + + dist_udevhwdb_DATA = \ + hwdb/20-pci-vendor-model.hwdb \ +Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +@@ -0,0 +1,18 @@ ++# do not edit this file, it will be overwritten on update ++# ++# rename SRIOV virtual function interfaces ++ ++ACTION=="remove", GOTO="net-sriov-names_end" ++SUBSYSTEM!="net", GOTO="net-sriov-names_end" ++ ++IMPORT{cmdline}="net.ifnames" ++ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" ++ ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" ++ ++# rename interface if needed ++ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" ++ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" ++ ++LABEL="net-sriov-names_end" +Index: systemd-210/src/udev/rule_generator/net-set-sriov-names +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/net-set-sriov-names +@@ -0,0 +1,79 @@ ++#!/bin/bash -e ++# ++# This script is run to rename virtual interfaces ++# ++ ++if [ -n "$UDEV_LOG" ]; then ++ if [ "$UDEV_LOG" -ge 7 ]; then ++ set -x ++ fi ++fi ++ ++# according to dev_new_index(), ifindex is within [1, INT_MAX] ++int_max=$(/usr/bin/getconf INT_MAX) ++ifindex_before() { ++ a=$1 ++ b=$2 ++ ++ ((0 < (b - a) && (b - a) < int_max / 2 || ++ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) ++} ++ ++rename_interface() { ++ local src_net=$1 ++ local dest_net=$2 ++ local err=0 ++ ++ /sbin/ip link set dev $src_net down ++ /sbin/ip link set dev $src_net name $dest_net ++} ++ ++if [ -z "$INTERFACE" ]; then ++ echo "missing \$INTERFACE" >&2 ++ exit 1 ++fi ++ ++if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then ++ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") ++ if [ $(echo "$pf" | wc -l) -ne 1 ]; then ++ echo "too many pf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$INTERFACE/ifindex" ++ read pfindex < "/sys/class/net/$pf/ifindex" ++ if ifindex_before $pfindex $vfindex; then ++ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) ++ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do ++ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ echo "INTERFACE_NEW=$pf.vf$vfnum" ++ exit 0 ++ fi ++ done ++ fi ++fi ++ ++read pfindex < "/sys/class/net/$INTERFACE/ifindex" ++shopt -s nullglob ++for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do ++ vf=$(ls -1 "$virtfn/net") ++ if [ $(echo "$vf" | wc -l) -ne 1 ]; then ++ echo "too many vf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$vf/ifindex" ++ if ifindex_before $vfindex $pfindex; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ if [ "$INTERFACE_NEW" ]; then ++ new_name=$INTERFACE_NEW ++ else ++ new_name=$INTERFACE ++ fi ++ new_name="$new_name.vf$vfnum" ++ if [ "$vf" != "$new_name" ]; then ++ rename_interface "$vf" "$new_name" ++ fi ++ fi ++done +Index: systemd-210/src/udev/net/link-config.c +=================================================================== +--- systemd-210.orig/src/udev/net/link-config.c ++++ systemd-210/src/udev/net/link-config.c +@@ -193,6 +193,18 @@ static bool enable_name_policy(void) { + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); ++#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) ++# warning Using persistent rules as a default ++ if (r <= 0) ++ return false; ++ ++ FOREACH_WORD_QUOTED(w, l, line, state) ++ if (strneq(w, "net.ifnames=1", l)) ++ return true; ++ ++ return false; ++#else ++# warning Using predictable rules as a default + if (r <= 0) + return true; + +@@ -201,6 +213,7 @@ static bool enable_name_policy(void) { + return false; + + return true; ++#endif + } + + int link_config_load(link_config_ctx *ctx) { diff --git a/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch b/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch new file mode 100644 index 00000000..39e385c0 --- /dev/null +++ b/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch @@ -0,0 +1,1445 @@ +From 9ea28c55a2488e6cd4a44ac5786f12b71ad5bc9f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 12 Apr 2014 22:35:50 -0700 +Subject: [PATCH] udev: remove seqnum API and all assumptions about seqnums + +The way the kernel namespaces have been implemented breaks assumptions +udev made regarding uevent sequence numbers. Creating devices in a +namespace "steals" uevents and its sequence numbers from the host. It +confuses the "udevadmin settle" logic, which might block until util a +timeout is reached, even when no uevent is pending. + +Remove any assumptions about sequence numbers and deprecate libudev's +API exposing these numbers; none of that can reliably be used anymore +when namespaces are involved. +--- + Makefile.am | 6 +- + man/udevadm.xml | 22 -- + src/libudev/libudev-monitor.c | 17 +- + src/libudev/libudev-queue-private.c | 406 ----------------------------------- + src/libudev/libudev-queue.c | 302 ++------------------------ + src/libudev/libudev.h | 10 +- + src/shared/udev-util.h | 2 - + src/test/test-libudev.c | 24 --- + src/udev/udev-ctrl.c | 2 +- + src/udev/udevadm-settle.c | 131 ++--------- + src/udev/udevd.c | 59 +++-- + 11 files changed, 84 insertions(+), 897 deletions(-) + delete mode 100644 src/libudev/libudev-queue-private.c + +diff --git Makefile.am Makefile.am +index 5d84605..0ad1729 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2587,8 +2587,7 @@ noinst_LTLIBRARIES += \ + + libudev_internal_la_SOURCES =\ + $(libudev_la_SOURCES) \ +- src/libudev/libudev-device-private.c \ +- src/libudev/libudev-queue-private.c ++ src/libudev/libudev-device-private.c + + libudev_internal_la_CFLAGS = \ + $(AM_CFLAGS) \ +@@ -5169,6 +5168,9 @@ test_libsystemd_sym_LDADD = \ + + test_libudev_sym_SOURCES = \ + test-libudev-sym.c ++test_libudev_sym_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ -Wno-deprecated-declarations + test_libudev_sym_LDADD = \ + libudev.la + +diff --git man/udevadm.xml man/udevadm.xml +index 21d1443..fbfa85a 100644 +--- a/man/udevadm.xml ++++ b/man/udevadm.xml +@@ -339,21 +339,6 @@ + + + +- +- +- +- Wait only for events after the given sequence +- number. +- +- +- +- +- +- +- Wait only for events before the given sequence number. +- +- +- + + + +@@ -361,13 +346,6 @@ + + + +- +- +- +- Do not print any output, like the remaining queue entries when reaching the timeout. +- +- +- + + + +diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c +index ba1b04d..3f7436b 100644 +--- a/src/libudev/libudev-monitor.c ++++ b/src/libudev/libudev-monitor.c +@@ -146,21 +146,6 @@ static bool udev_has_devtmpfs(struct udev *udev) { + return false; + } + +-/* we consider udev running when we have running udev service */ +-static bool udev_has_service(struct udev *udev) { +- struct udev_queue *queue; +- bool active; +- +- queue = udev_queue_new(udev); +- if (!queue) +- return false; +- +- active = udev_queue_get_udev_is_active(queue); +- udev_queue_unref(queue); +- +- return active; +-} +- + struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) + { + struct udev_monitor *udev_monitor; +@@ -184,7 +169,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c + * We do not set a netlink multicast group here, so the socket + * will not receive any messages. + */ +- if (!udev_has_service(udev) && !udev_has_devtmpfs(udev)) { ++ if (access("/run/udev/control", F_OK) < 0 && !udev_has_devtmpfs(udev)) { + udev_dbg(udev, "the udev service seems not to be active, disable the monitor\n"); + group = UDEV_MONITOR_NONE; + } else +diff --git src/libudev/libudev-queue-private.c src/libudev/libudev-queue-private.c +deleted file mode 100644 +index d5a2b50..0000000 +--- a/src/libudev/libudev-queue-private.c ++++ /dev/null +@@ -1,406 +0,0 @@ +-/*** +- This file is part of systemd. +- +- Copyright 2008-2012 Kay Sievers +- Copyright 2009 Alan Jenkins +- +- systemd is free software; you can redistribute it and/or modify it +- under the terms of the GNU Lesser General Public License as published by +- the Free Software Foundation; either version 2.1 of the License, or +- (at your option) any later version. +- +- systemd 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public License +- along with systemd; If not, see . +-***/ +- +-/* +- * DISCLAIMER - The file format mentioned here is private to udev/libudev, +- * and may be changed without notice. +- * +- * The udev event queue is exported as a binary log file. +- * Each log record consists of a sequence number followed by the device path. +- * +- * When a new event is queued, its details are appended to the log. +- * When the event finishes, a second record is appended to the log +- * with the same sequence number but a devpath len of 0. +- * +- * Example: +- * { 0x0000000000000001 } +- * { 0x0000000000000001, 0x0019, "/devices/virtual/mem/null" }, +- * { 0x0000000000000002, 0x001b, "/devices/virtual/mem/random" }, +- * { 0x0000000000000001, 0x0000 }, +- * { 0x0000000000000003, 0x0019, "/devices/virtual/mem/zero" }, +- * +- * Events 2 and 3 are still queued, but event 1 has finished. +- * +- * The queue does not grow indefinitely. It is periodically re-created +- * to remove finished events. Atomic rename() makes this transparent to readers. +- * +- * The queue file starts with a single sequence number which specifies the +- * minimum sequence number in the log that follows. Any events prior to this +- * sequence number have already finished. +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "libudev.h" +-#include "libudev-private.h" +- +-static int rebuild_queue_file(struct udev_queue_export *udev_queue_export); +- +-struct udev_queue_export { +- struct udev *udev; +- int queued_count; /* number of unfinished events exported in queue file */ +- FILE *queue_file; +- unsigned long long int seqnum_max; /* earliest sequence number in queue file */ +- unsigned long long int seqnum_min; /* latest sequence number in queue file */ +- int waste_bytes; /* queue file bytes wasted on finished events */ +-}; +- +-struct udev_queue_export *udev_queue_export_new(struct udev *udev) +-{ +- struct udev_queue_export *udev_queue_export; +- unsigned long long int initial_seqnum; +- +- if (udev == NULL) +- return NULL; +- +- udev_queue_export = new0(struct udev_queue_export, 1); +- if (udev_queue_export == NULL) +- return NULL; +- udev_queue_export->udev = udev; +- +- initial_seqnum = udev_get_kernel_seqnum(udev); +- udev_queue_export->seqnum_min = initial_seqnum; +- udev_queue_export->seqnum_max = initial_seqnum; +- +- udev_queue_export_cleanup(udev_queue_export); +- if (rebuild_queue_file(udev_queue_export) != 0) { +- free(udev_queue_export); +- return NULL; +- } +- +- return udev_queue_export; +-} +- +-struct udev_queue_export *udev_queue_export_unref(struct udev_queue_export *udev_queue_export) +-{ +- if (udev_queue_export == NULL) +- return NULL; +- if (udev_queue_export->queue_file != NULL) +- fclose(udev_queue_export->queue_file); +- free(udev_queue_export); +- return NULL; +-} +- +-void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export) +-{ +- if (udev_queue_export == NULL) +- return; +- unlink("/run/udev/queue.tmp"); +- unlink("/run/udev/queue.bin"); +-} +- +-static int skip_to(FILE *file, long offset) +-{ +- long old_offset; +- +- /* fseek may drop buffered data, avoid it for small seeks */ +- old_offset = ftell(file); +- if (offset > old_offset && offset - old_offset <= BUFSIZ) { +- size_t skip_bytes = offset - old_offset; +- char *buf = alloca(skip_bytes); +- +- if (fread(buf, skip_bytes, 1, file) != skip_bytes) +- return -1; +- } +- +- return fseek(file, offset, SEEK_SET); +-} +- +-struct queue_devpaths { +- unsigned int devpaths_first; /* index of first queued event */ +- unsigned int devpaths_size; +- long devpaths[]; /* seqnum -> offset of devpath in queue file (or 0) */ +-}; +- +-/* +- * Returns a table mapping seqnum to devpath file offset for currently queued events. +- * devpaths[i] represents the event with seqnum = i + udev_queue_export->seqnum_min. +- */ +-static struct queue_devpaths *build_index(struct udev_queue_export *udev_queue_export) +-{ +- struct queue_devpaths *devpaths; +- unsigned long long int range; +- long devpath_offset; +- ssize_t devpath_len; +- unsigned long long int seqnum; +- unsigned long long int n; +- unsigned int i; +- +- /* seek to the first event in the file */ +- rewind(udev_queue_export->queue_file); +- udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum); +- +- /* allocate the table */ +- range = udev_queue_export->seqnum_min - udev_queue_export->seqnum_max; +- if (range - 1 > INT_MAX) { +- udev_err(udev_queue_export->udev, "queue file overflow\n"); +- return NULL; +- } +- devpaths = malloc0(sizeof(struct queue_devpaths) + (range + 1) * sizeof(long)); +- if (devpaths == NULL) +- return NULL; +- devpaths->devpaths_size = range + 1; +- +- /* read all records and populate the table */ +- for (;;) { +- if (udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum) < 0) +- break; +- n = seqnum - udev_queue_export->seqnum_max; +- if (n >= devpaths->devpaths_size) +- goto read_error; +- +- devpath_offset = ftell(udev_queue_export->queue_file); +- devpath_len = udev_queue_skip_devpath(udev_queue_export->queue_file); +- if (devpath_len < 0) +- goto read_error; +- +- if (devpath_len > 0) +- devpaths->devpaths[n] = devpath_offset; +- else +- devpaths->devpaths[n] = 0; +- } +- +- /* find first queued event */ +- for (i = 0; i < devpaths->devpaths_size; i++) { +- if (devpaths->devpaths[i] != 0) +- break; +- } +- devpaths->devpaths_first = i; +- +- return devpaths; +- +-read_error: +- udev_err(udev_queue_export->udev, "queue file corrupted\n"); +- free(devpaths); +- return NULL; +-} +- +-static int rebuild_queue_file(struct udev_queue_export *udev_queue_export) +-{ +- unsigned long long int seqnum; +- struct queue_devpaths *devpaths = NULL; +- FILE *new_queue_file = NULL; +- unsigned int i; +- +- /* read old queue file */ +- if (udev_queue_export->queue_file != NULL) { +- devpaths = build_index(udev_queue_export); +- if (devpaths != NULL) +- udev_queue_export->seqnum_max += devpaths->devpaths_first; +- } +- if (devpaths == NULL) { +- udev_queue_export->queued_count = 0; +- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; +- } +- +- /* create new queue file */ +- new_queue_file = fopen("/run/udev/queue.tmp", "w+e"); +- if (new_queue_file == NULL) +- goto error; +- seqnum = udev_queue_export->seqnum_max; +- fwrite(&seqnum, 1, sizeof(unsigned long long int), new_queue_file); +- +- /* copy unfinished events only to the new file */ +- if (devpaths != NULL) { +- for (i = devpaths->devpaths_first; i < devpaths->devpaths_size; i++) { +- char devpath[UTIL_PATH_SIZE]; +- int err; +- unsigned short devpath_len; +- +- if (devpaths->devpaths[i] != 0) +- { +- skip_to(udev_queue_export->queue_file, devpaths->devpaths[i]); +- err = udev_queue_read_devpath(udev_queue_export->queue_file, devpath, sizeof(devpath)); +- devpath_len = err; +- +- fwrite(&seqnum, sizeof(unsigned long long int), 1, new_queue_file); +- fwrite(&devpath_len, sizeof(unsigned short), 1, new_queue_file); +- fwrite(devpath, 1, devpath_len, new_queue_file); +- } +- seqnum++; +- } +- free(devpaths); +- devpaths = NULL; +- } +- fflush(new_queue_file); +- if (ferror(new_queue_file)) +- goto error; +- +- /* rename the new file on top of the old one */ +- if (rename("/run/udev/queue.tmp", "/run/udev/queue.bin") != 0) +- goto error; +- +- if (udev_queue_export->queue_file != NULL) +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = new_queue_file; +- udev_queue_export->waste_bytes = 0; +- +- return 0; +- +-error: +- udev_err(udev_queue_export->udev, "failed to create queue file: %m\n"); +- udev_queue_export_cleanup(udev_queue_export); +- +- if (udev_queue_export->queue_file != NULL) { +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = NULL; +- } +- if (new_queue_file != NULL) +- fclose(new_queue_file); +- +- if (devpaths != NULL) +- free(devpaths); +- udev_queue_export->queued_count = 0; +- udev_queue_export->waste_bytes = 0; +- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; +- +- return -1; +-} +- +-static int write_queue_record(struct udev_queue_export *udev_queue_export, +- unsigned long long int seqnum, const char *devpath, size_t devpath_len) +-{ +- unsigned short len; +- +- if (udev_queue_export->queue_file == NULL) +- return -1; +- +- if (fwrite(&seqnum, sizeof(unsigned long long int), 1, udev_queue_export->queue_file) != 1) +- goto write_error; +- +- len = (devpath_len < USHRT_MAX) ? devpath_len : USHRT_MAX; +- if (fwrite(&len, sizeof(unsigned short), 1, udev_queue_export->queue_file) != 1) +- goto write_error; +- if (len > 0) { +- if (fwrite(devpath, 1, len, udev_queue_export->queue_file) != len) +- goto write_error; +- } +- +- /* *must* flush output; caller may fork */ +- if (fflush(udev_queue_export->queue_file) != 0) +- goto write_error; +- +- return 0; +- +-write_error: +- /* if we failed half way through writing a record to a file, +- we should not try to write any further records to it. */ +- udev_err(udev_queue_export->udev, "error writing to queue file: %m\n"); +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = NULL; +- +- return -1; +-} +- +-enum device_state { +- DEVICE_QUEUED, +- DEVICE_FINISHED, +-}; +- +-static inline size_t queue_record_size(size_t devpath_len) +-{ +- return sizeof(unsigned long long int) + sizeof(unsigned short int) + devpath_len; +-} +- +-static int update_queue(struct udev_queue_export *udev_queue_export, +- struct udev_device *udev_device, enum device_state state) +-{ +- unsigned long long int seqnum = udev_device_get_seqnum(udev_device); +- const char *devpath = NULL; +- size_t devpath_len = 0; +- int bytes; +- int err; +- +- /* FINISHED records have a zero length devpath */ +- if (state == DEVICE_QUEUED) { +- devpath = udev_device_get_devpath(udev_device); +- devpath_len = strlen(devpath); +- } +- +- /* recover from an earlier failed rebuild */ +- if (udev_queue_export->queue_file == NULL) { +- if (rebuild_queue_file(udev_queue_export) != 0) +- return -1; +- } +- +- /* if we're removing the last event from the queue, that's the best time to rebuild it */ +- if (state != DEVICE_QUEUED && udev_queue_export->queued_count == 1) { +- /* we don't need to read the old queue file */ +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = NULL; +- rebuild_queue_file(udev_queue_export); +- return 0; +- } +- +- /* try to rebuild the queue files before they grow larger than one page. */ +- bytes = ftell(udev_queue_export->queue_file) + queue_record_size(devpath_len); +- if ((udev_queue_export->waste_bytes > bytes / 2) && bytes > 4096) +- rebuild_queue_file(udev_queue_export); +- +- /* don't record a finished event, if we already dropped the event in a failed rebuild */ +- if (seqnum < udev_queue_export->seqnum_max) +- return 0; +- +- /* now write to the queue */ +- if (state == DEVICE_QUEUED) { +- udev_queue_export->queued_count++; +- udev_queue_export->seqnum_min = seqnum; +- } else { +- udev_queue_export->waste_bytes += queue_record_size(devpath_len) + queue_record_size(0); +- udev_queue_export->queued_count--; +- } +- err = write_queue_record(udev_queue_export, seqnum, devpath, devpath_len); +- +- /* try to handle ENOSPC */ +- if (err != 0 && udev_queue_export->queued_count == 0) { +- udev_queue_export_cleanup(udev_queue_export); +- err = rebuild_queue_file(udev_queue_export); +- } +- +- return err; +-} +- +-static int update(struct udev_queue_export *udev_queue_export, +- struct udev_device *udev_device, enum device_state state) +-{ +- if (update_queue(udev_queue_export, udev_device, state) != 0) +- return -1; +- +- return 0; +-} +- +-int udev_queue_export_device_queued(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) +-{ +- return update(udev_queue_export, udev_device, DEVICE_QUEUED); +-} +- +-int udev_queue_export_device_finished(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) +-{ +- return update(udev_queue_export, udev_device, DEVICE_FINISHED); +-} +diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index 2cb4d67..eb0e096 100644 +--- a/src/libudev/libudev-queue.c ++++ b/src/libudev/libudev-queue.c +@@ -24,8 +24,6 @@ + #include + #include + #include +-#include +-#include + #include + #include + +@@ -36,10 +34,7 @@ + * SECTION:libudev-queue + * @short_description: access to currently active events + * +- * The udev daemon processes events asynchronously. All events which do not have +- * interdependencies run in parallel. This exports the current state of the +- * event processing queue, and the current event sequence numbers from the kernel +- * and the udev daemon. ++ * This exports the current state of the udev processing queue. + */ + + /** +@@ -50,7 +45,6 @@ + struct udev_queue { + struct udev *udev; + int refcount; +- struct udev_list queue_list; + }; + + /** +@@ -72,9 +66,9 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) + udev_queue = new0(struct udev_queue, 1); + if (udev_queue == NULL) + return NULL; ++ + udev_queue->refcount = 1; + udev_queue->udev = udev; +- udev_list_init(udev, &udev_queue->queue_list, false); + return udev_queue; + } + +@@ -90,6 +84,7 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue) + { + if (udev_queue == NULL) + return NULL; ++ + udev_queue->refcount++; + return udev_queue; + } +@@ -107,10 +102,11 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) + { + if (udev_queue == NULL) + return NULL; ++ + udev_queue->refcount--; + if (udev_queue->refcount > 0) + return NULL; +- udev_list_cleanup(&udev_queue->queue_list); ++ + free(udev_queue); + return NULL; + } +@@ -130,141 +126,30 @@ _public_ struct udev *udev_queue_get_udev(struct udev_queue *udev_queue) + return udev_queue->udev; + } + +-unsigned long long int udev_get_kernel_seqnum(struct udev *udev) +-{ +- unsigned long long int seqnum; +- int fd; +- char buf[32]; +- ssize_t len; +- +- fd = open("/sys/kernel/uevent_seqnum", O_RDONLY|O_CLOEXEC); +- if (fd < 0) +- return 0; +- len = read(fd, buf, sizeof(buf)); +- close(fd); +- if (len <= 2) +- return 0; +- buf[len-1] = '\0'; +- seqnum = strtoull(buf, NULL, 10); +- return seqnum; +-} +- + /** + * udev_queue_get_kernel_seqnum: + * @udev_queue: udev queue context + * +- * Get the current kernel event sequence number. ++ * This function is deprecated. + * +- * Returns: the sequence number. ++ * Returns: 0. + **/ + _public_ unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum; +- +- if (udev_queue == NULL) +- return -EINVAL; +- +- seqnum = udev_get_kernel_seqnum(udev_queue->udev); +- return seqnum; +-} +- +-int udev_queue_read_seqnum(FILE *queue_file, unsigned long long int *seqnum) +-{ +- if (fread(seqnum, sizeof(unsigned long long int), 1, queue_file) != 1) +- return -1; +- + return 0; + } + +-ssize_t udev_queue_skip_devpath(FILE *queue_file) +-{ +- unsigned short int len; +- +- if (fread(&len, sizeof(unsigned short int), 1, queue_file) == 1) { +- char *devpath = alloca(len); +- +- /* use fread to skip, fseek might drop buffered data */ +- if (fread(devpath, 1, len, queue_file) == len) +- return len; +- } +- +- return -1; +-} +- +-ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t size) +-{ +- unsigned short int read_bytes = 0; +- unsigned short int len; +- +- if (fread(&len, sizeof(unsigned short int), 1, queue_file) != 1) +- return -1; +- +- read_bytes = (len < size - 1) ? len : size - 1; +- if (fread(devpath, 1, read_bytes, queue_file) != read_bytes) +- return -1; +- devpath[read_bytes] = '\0'; +- +- /* if devpath was too long, skip unread characters */ +- if (read_bytes != len) { +- unsigned short int skip_bytes = len - read_bytes; +- char *buf = alloca(skip_bytes); +- +- if (fread(buf, 1, skip_bytes, queue_file) != skip_bytes) +- return -1; +- } +- +- return read_bytes; +-} +- +-static FILE *open_queue_file(struct udev_queue *udev_queue, unsigned long long int *seqnum_start) +-{ +- FILE *queue_file; +- +- queue_file = fopen("/run/udev/queue.bin", "re"); +- if (queue_file == NULL) +- return NULL; +- +- if (udev_queue_read_seqnum(queue_file, seqnum_start) < 0) { +- udev_err(udev_queue->udev, "corrupt queue file\n"); +- fclose(queue_file); +- return NULL; +- } +- +- return queue_file; +-} +- + /** + * udev_queue_get_udev_seqnum: + * @udev_queue: udev queue context + * +- * Get the last known udev event sequence number. ++ * This function is deprecated. + * +- * Returns: the sequence number. ++ * Returns: 0. + **/ + _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum_udev; +- FILE *queue_file; +- +- queue_file = open_queue_file(udev_queue, &seqnum_udev); +- if (queue_file == NULL) +- return 0; +- +- for (;;) { +- unsigned long long int seqnum; +- ssize_t devpath_len; +- +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- devpath_len = udev_queue_skip_devpath(queue_file); +- if (devpath_len < 0) +- break; +- if (devpath_len > 0) +- seqnum_udev = seqnum; +- } +- +- fclose(queue_file); +- return seqnum_udev; ++ return 0; + } + + /** +@@ -277,15 +162,7 @@ _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *ud + **/ + _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum_start; +- FILE *queue_file; +- +- queue_file = open_queue_file(udev_queue, &seqnum_start); +- if (queue_file == NULL) +- return 0; +- +- fclose(queue_file); +- return 1; ++ return access("/run/udev/control", F_OK) >= 0; + } + + /** +@@ -298,48 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) + **/ + _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum_kernel; +- unsigned long long int seqnum_udev = 0; +- int queued = 0; +- int is_empty = 0; +- FILE *queue_file; +- +- if (udev_queue == NULL) +- return -EINVAL; +- queue_file = open_queue_file(udev_queue, &seqnum_udev); +- if (queue_file == NULL) +- return 1; +- +- for (;;) { +- unsigned long long int seqnum; +- ssize_t devpath_len; +- +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- devpath_len = udev_queue_skip_devpath(queue_file); +- if (devpath_len < 0) +- break; +- +- if (devpath_len > 0) { +- queued++; +- seqnum_udev = seqnum; +- } else { +- queued--; +- } +- } +- +- if (queued > 0) +- goto out; +- +- seqnum_kernel = udev_queue_get_kernel_seqnum(udev_queue); +- if (seqnum_udev < seqnum_kernel) +- goto out; +- +- is_empty = 1; +- +-out: +- fclose(queue_file); +- return is_empty; ++ return access("/run/udev/queue", F_OK) >= 0; + } + + /** +@@ -348,63 +184,15 @@ out: + * @start: first event sequence number + * @end: last event sequence number + * +- * Check if udev is currently processing any events in a given sequence number range. ++ * This function is deprecated, it just returns the result of ++ * udev_queue_get_queue_is_empty(). + * +- * Returns: a flag indicating if any of the sequence numbers in the given range is currently active. ++ * Returns: a flag indicating if udev is currently handling events. + **/ + _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, + unsigned long long int start, unsigned long long int end) + { +- unsigned long long int seqnum; +- ssize_t devpath_len; +- int unfinished; +- FILE *queue_file; +- +- if (udev_queue == NULL) +- return -EINVAL; +- queue_file = open_queue_file(udev_queue, &seqnum); +- if (queue_file == NULL) +- return 1; +- if (start < seqnum) +- start = seqnum; +- if (start > end) { +- fclose(queue_file); +- return 1; +- } +- if (end - start > INT_MAX - 1) { +- fclose(queue_file); +- return -EOVERFLOW; +- } +- +- /* +- * we might start with 0, and handle the initial seqnum +- * only when we find an entry in the queue file +- **/ +- unfinished = end - start; +- +- do { +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- devpath_len = udev_queue_skip_devpath(queue_file); +- if (devpath_len < 0) +- break; +- +- /* +- * we might start with an empty or re-build queue file, where +- * the initial seqnum is not recorded as finished +- */ +- if (start == seqnum && devpath_len > 0) +- unfinished++; +- +- if (devpath_len == 0) { +- if (seqnum >= start && seqnum <= end) +- unfinished--; +- } +- } while (unfinished > 0); +- +- fclose(queue_file); +- +- return (unfinished == 0); ++ return udev_queue_get_queue_is_empty(udev_queue); + } + + /** +@@ -412,69 +200,25 @@ _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_ + * @udev_queue: udev queue context + * @seqnum: sequence number + * +- * Check if udev is currently processing a given sequence number. ++ * This function is deprecated, it just returns the result of ++ * udev_queue_get_queue_is_empty(). + * +- * Returns: a flag indicating if the given sequence number is currently active. ++ * Returns: a flag indicating if udev is currently handling events. + **/ + _public_ int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) + { +- if (!udev_queue_get_seqnum_sequence_is_finished(udev_queue, seqnum, seqnum)) +- return 0; +- +- return 1; ++ return udev_queue_get_queue_is_empty(udev_queue); + } + + /** + * udev_queue_get_queued_list_entry: + * @udev_queue: udev queue context + * +- * Get the first entry of the list of queued events. ++ * This function is deprecated. + * +- * Returns: a udev_list_entry. ++ * Returns: NULL. + **/ + _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum; +- FILE *queue_file; +- +- if (udev_queue == NULL) +- return NULL; +- udev_list_cleanup(&udev_queue->queue_list); +- +- queue_file = open_queue_file(udev_queue, &seqnum); +- if (queue_file == NULL) +- return NULL; +- +- for (;;) { +- char syspath[UTIL_PATH_SIZE]; +- char *s; +- size_t l; +- ssize_t len; +- char seqnum_str[32]; +- struct udev_list_entry *list_entry; +- +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- snprintf(seqnum_str, sizeof(seqnum_str), "%llu", seqnum); +- +- s = syspath; +- l = strpcpy(&s, sizeof(syspath), "/sys"); +- len = udev_queue_read_devpath(queue_file, s, l); +- if (len < 0) +- break; +- +- if (len > 0) { +- udev_list_entry_add(&udev_queue->queue_list, syspath, seqnum_str); +- } else { +- udev_list_entry_foreach(list_entry, udev_list_get_entry(&udev_queue->queue_list)) { +- if (streq(seqnum_str, udev_list_entry_get_value(list_entry))) { +- udev_list_entry_delete(list_entry); +- break; +- } +- } +- } +- } +- fclose(queue_file); +- +- return udev_list_get_entry(&udev_queue->queue_list); ++ return NULL; + } +diff --git src/libudev/libudev.h src/libudev/libudev.h +index b9b8f13..ceb89bd 100644 +--- a/src/libudev/libudev.h ++++ b/src/libudev/libudev.h +@@ -170,14 +170,14 @@ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue); + struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue); + struct udev *udev_queue_get_udev(struct udev_queue *udev_queue); + struct udev_queue *udev_queue_new(struct udev *udev); +-unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue); +-unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue); ++unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); ++unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); + int udev_queue_get_udev_is_active(struct udev_queue *udev_queue); + int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); +-int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum); ++int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); + int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, +- unsigned long long int start, unsigned long long int end); +-struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue); ++ unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); ++struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); + + /* + * udev_hwdb +diff --git src/shared/udev-util.h src/shared/udev-util.h +index 40f8b77..5f09ce1 100644 +--- a/src/shared/udev-util.h ++++ b/src/shared/udev-util.h +@@ -31,7 +31,6 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_ctrl*, udev_ctrl_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_monitor*, udev_monitor_unref); +-DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); + + #define _cleanup_udev_unref_ _cleanup_(udev_unrefp) + #define _cleanup_udev_device_unref_ _cleanup_(udev_device_unrefp) +@@ -40,5 +39,4 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); + #define _cleanup_udev_rules_unref_ _cleanup_(udev_rules_unrefp) + #define _cleanup_udev_ctrl_unref_ _cleanup_(udev_ctrl_unrefp) + #define _cleanup_udev_monitor_unref_ _cleanup_(udev_monitor_unrefp) +-#define _cleanup_udev_queue_unref_ _cleanup_(udev_queue_unrefp) + #define _cleanup_udev_list_cleanup_ _cleanup_(udev_list_cleanup) +diff --git src/test/test-libudev.c src/test/test-libudev.c +index c233b1e..f5c8bc7 100644 +--- a/src/test/test-libudev.c ++++ b/src/test/test-libudev.c +@@ -303,38 +303,14 @@ out: + + static int test_queue(struct udev *udev) { + struct udev_queue *udev_queue; +- unsigned long long int seqnum; +- struct udev_list_entry *list_entry; + + udev_queue = udev_queue_new(udev); + if (udev_queue == NULL) + return -1; +- seqnum = udev_queue_get_kernel_seqnum(udev_queue); +- printf("seqnum kernel: %llu\n", seqnum); +- seqnum = udev_queue_get_udev_seqnum(udev_queue); +- printf("seqnum udev : %llu\n", seqnum); + + if (udev_queue_get_queue_is_empty(udev_queue)) + printf("queue is empty\n"); +- printf("get queue list\n"); +- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) +- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); +- printf("\n"); +- printf("get queue list again\n"); +- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) +- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); +- printf("\n"); + +- list_entry = udev_queue_get_queued_list_entry(udev_queue); +- if (list_entry != NULL) { +- printf("event [%llu] is queued\n", seqnum); +- seqnum = strtoull(udev_list_entry_get_value(list_entry), NULL, 10); +- if (udev_queue_get_seqnum_is_finished(udev_queue, seqnum)) +- printf("event [%llu] is not finished\n", seqnum); +- else +- printf("event [%llu] is finished\n", seqnum); +- } +- printf("\n"); + udev_queue_unref(udev_queue); + return 0; + } +diff --git src/udev/udev-ctrl.c src/udev/udev-ctrl.c +index 1e91ec2..74bbd3a 100644 +--- a/src/udev/udev-ctrl.c ++++ b/src/udev/udev-ctrl.c +@@ -275,7 +275,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int + + pfd[0].fd = uctrl->sock; + pfd[0].events = POLLIN; +- r = poll(pfd, 1, timeout * 1000); ++ r = poll(pfd, 1, timeout * MSEC_PER_SEC); + if (r < 0) { + if (errno == EINTR) + continue; +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 927ea2a..65fc35f 100644 +--- a/src/udev/udevadm-settle.c ++++ b/src/udev/udevadm-settle.c +@@ -41,42 +41,28 @@ + static void help(void) { + printf("Usage: udevadm settle OPTIONS\n" + " -t,--timeout= maximum time to wait for events\n" +- " -s,--seq-start= first seqnum to wait for\n" +- " -e,--seq-end= last seqnum to wait for\n" + " -E,--exit-if-exists= stop waiting if file exists\n" +- " -q,--quiet do not print list after timeout\n" + " -h,--help\n\n"); + } + + static int adm_settle(struct udev *udev, int argc, char *argv[]) + { + static const struct option options[] = { +- { "seq-start", required_argument, NULL, 's' }, +- { "seq-end", required_argument, NULL, 'e' }, ++ { "seq-start", required_argument, NULL, '\0' }, /* removed */ ++ { "seq-end", required_argument, NULL, '\0' }, /* removed */ + { "timeout", required_argument, NULL, 't' }, + { "exit-if-exists", required_argument, NULL, 'E' }, +- { "quiet", no_argument, NULL, 'q' }, ++ { "quiet", no_argument, NULL, 'q' }, /* removed */ + { "help", no_argument, NULL, 'h' }, + {} + }; +- usec_t start_usec = now(CLOCK_MONOTONIC); +- usec_t start = 0; +- usec_t end = 0; +- int quiet = 0; + const char *exists = NULL; + unsigned int timeout = 120; + struct pollfd pfd[1] = { {.fd = -1}, }; +- _cleanup_udev_queue_unref_ struct udev_queue *udev_queue = NULL; + int rc = EXIT_FAILURE, c; + +- while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) ++ while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { + switch (c) { +- case 's': +- start = strtoull(optarg, NULL, 0); +- break; +- case 'e': +- end = strtoull(optarg, NULL, 0); +- break; + case 't': { + int r; + +@@ -91,9 +77,6 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + case 'E': + exists = optarg; + break; +- case 'q': +- quiet = 1; +- break; + case 'h': + help(); + exit(EXIT_SUCCESS); +@@ -102,44 +85,13 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + default: + assert_not_reached("Unknown argument"); + } ++ } + + if (optind < argc) { + fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); + exit(EXIT_FAILURE); + } + +- udev_queue = udev_queue_new(udev); +- if (udev_queue == NULL) +- exit(2); +- +- if (start > 0) { +- unsigned long long kernel_seq; +- +- kernel_seq = udev_queue_get_kernel_seqnum(udev_queue); +- +- /* unless specified, the last event is the current kernel seqnum */ +- if (end == 0) +- end = udev_queue_get_kernel_seqnum(udev_queue); +- +- if (start > end) { +- log_error("seq-start larger than seq-end, ignoring"); +- start = 0; +- end = 0; +- } +- +- if (start > kernel_seq || end > kernel_seq) { +- log_error("seq-start or seq-end larger than current kernel value, ignoring"); +- start = 0; +- end = 0; +- } +- log_debug("start=%llu end=%llu current=%llu", (unsigned long long)start, (unsigned long long)end, kernel_seq); +- } else { +- if (end > 0) { +- log_error("seq-end needs seq-start parameter, ignoring"); +- end = 0; +- } +- } +- + /* guarantee that the udev daemon isn't pre-processing */ + if (getuid() == 0) { + struct udev_ctrl *uctrl; +@@ -160,73 +112,34 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + pfd[0].fd = inotify_init1(IN_CLOEXEC); + if (pfd[0].fd < 0) { + log_error("inotify_init failed: %m"); +- } else { +- if (inotify_add_watch(pfd[0].fd, "/run/udev" , IN_MOVED_TO) < 0) { +- log_error("watching /run/udev failed"); +- close(pfd[0].fd); +- pfd[0].fd = -1; +- } ++ goto out; + } + +- for (;;) { +- struct stat statbuf; ++ if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { ++ log_debug("watching /run/udev failed"); ++ goto out; ++ } + +- if (exists != NULL && stat(exists, &statbuf) == 0) { ++ for (;;) { ++ if (exists && access(exists, F_OK) >= 0) { + rc = EXIT_SUCCESS; + break; + } + +- if (start > 0) { +- /* if asked for, wait for a specific sequence of events */ +- if (udev_queue_get_seqnum_sequence_is_finished(udev_queue, start, end) == 1) { +- rc = EXIT_SUCCESS; +- break; +- } +- } else { +- /* exit if queue is empty */ +- if (udev_queue_get_queue_is_empty(udev_queue)) { +- rc = EXIT_SUCCESS; +- break; +- } +- } +- +- if (pfd[0].fd >= 0) { +- int delay; +- +- if (exists != NULL || start > 0) +- delay = 100; +- else +- delay = 1000; +- /* wake up after delay, or immediately after the queue is rebuilt */ +- if (poll(pfd, 1, delay) > 0 && pfd[0].revents & POLLIN) { +- char buf[sizeof(struct inotify_event) + PATH_MAX]; +- +- read(pfd[0].fd, buf, sizeof(buf)); +- } +- } else { +- sleep(1); ++ /* exit if queue is empty */ ++ if (access("/run/udev/queue", F_OK) < 0) { ++ rc = EXIT_SUCCESS; ++ break; + } + +- if (timeout > 0) { +- usec_t age_usec; ++ /* wake up when "queue" file is deleted */ ++ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { ++ char buf[sizeof(struct inotify_event) + PATH_MAX]; + +- age_usec = now(CLOCK_MONOTONIC) - start_usec; +- if (age_usec / (1000 * 1000) >= timeout) { +- struct udev_list_entry *list_entry; +- +- if (!quiet && udev_queue_get_queued_list_entry(udev_queue) != NULL) { +- log_debug("timeout waiting for udev queue"); +- printf("\nudevadm settle - timeout of %i seconds reached, the event queue contains:\n", timeout); +- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) +- printf(" %s (%s)\n", +- udev_list_entry_get_name(list_entry), +- udev_list_entry_get_value(list_entry)); +- } +- +- break; +- } ++ read(pfd[0].fd, buf, sizeof(buf)); + } + } ++ + out: + if (pfd[0].fd >= 0) + close(pfd[0].fd); +@@ -236,5 +149,5 @@ out: + const struct udevadm_cmd udevadm_settle = { + .name = "settle", + .cmd = adm_settle, +- .help = "wait for the event queue to finish", ++ .help = "wait for pending udev events", + }; +diff --git src/udev/udevd.c src/udev/udevd.c +index f21c227..f9ee368 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -60,7 +60,6 @@ void udev_main_log(struct udev *udev, int priority, + } + + static struct udev_rules *rules; +-static struct udev_queue_export *udev_queue_export; + static struct udev_ctrl *udev_ctrl; + static struct udev_monitor *monitor; + static int worker_watch[2] = { -1, -1 }; +@@ -139,14 +138,9 @@ static inline struct worker *node_to_worker(struct udev_list_node *node) + return container_of(node, struct worker, node); + } + +-static void event_queue_delete(struct event *event, bool export) ++static void event_queue_delete(struct event *event) + { + udev_list_node_remove(&event->node); +- +- if (export) { +- udev_queue_export_device_finished(udev_queue_export, event->dev); +- log_debug("seq %llu done with %i", udev_device_get_seqnum(event->dev), event->exitcode); +- } + udev_device_unref(event->dev); + free(event); + } +@@ -225,7 +219,6 @@ static void worker_new(struct event *event) + free(worker); + worker_list_cleanup(udev); + event_queue_cleanup(udev, EVENT_UNDEF); +- udev_queue_export_unref(udev_queue_export); + udev_monitor_unref(monitor); + udev_ctrl_unref(udev_ctrl); + close(fd_signal); +@@ -449,7 +442,6 @@ static int event_queue_insert(struct udev_device *dev) + 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), + udev_device_get_action(dev), udev_device_get_subsystem(dev)); + +@@ -580,7 +572,7 @@ static void event_queue_cleanup(struct udev *udev, enum event_state match_type) + if (match_type != EVENT_UNDEF && match_type != event->state) + continue; + +- event_queue_delete(event, false); ++ event_queue_delete(event); + } + } + +@@ -605,7 +597,7 @@ static void worker_returned(int fd_worker) + /* worker returned */ + if (worker->event) { + worker->event->exitcode = msg.exitcode; +- event_queue_delete(worker->event, true); ++ event_queue_delete(worker->event); + worker->event = NULL; + } + if (worker->state != WORKER_KILLED) +@@ -797,7 +789,8 @@ static void handle_signal(struct udev *udev, int signo) + log_error("worker [%u] failed while handling '%s'", + pid, worker->event->devpath); + worker->event->exitcode = -32; +- event_queue_delete(worker->event, true); ++ event_queue_delete(worker->event); ++ + /* drop reference taken for state 'running' */ + worker_unref(worker); + } +@@ -1076,14 +1069,7 @@ int main(int argc, char *argv[]) + goto exit; + } + +- udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024); +- +- /* create queue file before signalling 'ready', to make sure we block 'settle' */ +- udev_queue_export = udev_queue_export_new(udev); +- if (udev_queue_export == NULL) { +- log_error("error creating queue file"); +- goto exit; +- } ++ udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024); + + if (daemonize) { + pid_t pid; +@@ -1241,12 +1227,12 @@ int main(int argc, char *argv[]) + worker_kill(udev); + + /* exit after all has cleaned up */ +- if (udev_list_node_is_empty(&event_list) && udev_list_node_is_empty(&worker_list)) ++ if (udev_list_node_is_empty(&event_list) && children == 0) + break; + + /* timeout at exit for workers to finish */ +- timeout = 30 * 1000; +- } else if (udev_list_node_is_empty(&event_list) && !children) { ++ timeout = 30 * MSEC_PER_SEC; ++ } else if (udev_list_node_is_empty(&event_list) && children == 0) { + /* we are idle */ + timeout = -1; + +@@ -1255,8 +1241,20 @@ int main(int argc, char *argv[]) + cg_kill(SYSTEMD_CGROUP_CONTROLLER, udev_cgroup, SIGKILL, false, true, NULL); + } else { + /* kill idle or hanging workers */ +- timeout = 3 * 1000; ++ timeout = 3 * MSEC_PER_SEC; + } ++ ++ /* tell settle that we are busy or idle */ ++ if (!udev_list_node_is_empty(&event_list)) { ++ int fd; ++ ++ fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); ++ if (fd >= 0) ++ close(fd); ++ } else { ++ unlink("/run/udev/queue"); ++ } ++ + fdcount = epoll_wait(fd_ep, ev, ELEMENTSOF(ev), timeout); + if (fdcount < 0) + continue; +@@ -1283,18 +1281,18 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { + log_error("worker [%u] %s timeout; kill it", worker->pid, + worker->event ? worker->event->devpath : ""); + kill(worker->pid, SIGKILL); + worker->state = WORKER_KILLED; ++ + /* drop reference taken for state 'running' */ + worker_unref(worker); + if (worker->event) { +- log_error("seq %llu '%s' killed", +- udev_device_get_seqnum(worker->event->dev), worker->event->devpath); ++ 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); ++ event_queue_delete(worker->event); + worker->event = NULL; + } + } +@@ -1317,7 +1315,7 @@ int main(int argc, char *argv[]) + } + + /* check for changed config, every 3 seconds at most */ +- if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * USEC_PER_SEC) { + if (udev_rules_check_timestamp(rules)) + reload = true; + if (udev_builtin_validate(udev)) +@@ -1390,8 +1388,8 @@ int main(int argc, char *argv[]) + + rc = EXIT_SUCCESS; + exit: +- udev_queue_export_cleanup(udev_queue_export); + udev_ctrl_cleanup(udev_ctrl); ++ unlink("/run/udev/queue"); + exit_daemonize: + if (fd_ep >= 0) + close(fd_ep); +@@ -1406,7 +1404,6 @@ exit_daemonize: + if (worker_watch[WRITE_END] >= 0) + close(worker_watch[WRITE_END]); + udev_monitor_unref(monitor); +- udev_queue_export_unref(udev_queue_export); + udev_ctrl_connection_unref(ctrl_conn); + udev_ctrl_unref(udev_ctrl); + label_finish(); +-- +1.7.9.2 + diff --git a/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch b/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch new file mode 100644 index 00000000..75da64fa --- /dev/null +++ b/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch @@ -0,0 +1,31 @@ +From a52ec8ed881537627869afa8f0486db7e20ce2db Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Fri, 30 May 2014 13:16:56 -0400 +Subject: [PATCH] udev-builtin-keyboard: do tell on which device EVIOCSKEYCODE + failed. + +I am getting + +"Error calling EVIOCSKEYCODE (scan code 0xc022d, key code 418): Invalid +argument", the error message does not tell on which specific device the +problem is, add that info. +--- + src/udev/udev-builtin-keyboard.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/udev-builtin-keyboard.c src/udev/udev-builtin-keyboard.c +index 614e44e..9b66bfd 100644 +--- src/udev/udev-builtin-keyboard.c ++++ src/udev/udev-builtin-keyboard.c +@@ -143,7 +143,7 @@ static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], boo + log_debug("keyboard: mapping scan code %d (0x%x) to key code %d (0x%x)", + map[i].scan, map[i].scan, map[i].key, map[i].key); + if (ioctl(fd, EVIOCSKEYCODE, &map[i]) < 0) +- log_error("Error calling EVIOCSKEYCODE (scan code 0x%x, key code %d): %m", map[i].scan, map[i].key); ++ log_error("Error calling EVIOCSKEYCODE on device node '%s' (scan code 0x%x, key code %d): %m", node, map[i].scan, map[i].key); + } + + /* install list of force-release codes */ +-- +1.7.9.2 + diff --git a/1024-udev-always-close-lock-file-descriptor.patch b/1024-udev-always-close-lock-file-descriptor.patch new file mode 100644 index 00000000..aaa4b296 --- /dev/null +++ b/1024-udev-always-close-lock-file-descriptor.patch @@ -0,0 +1,41 @@ +Based on 3d06f4183470d42361303086ed9dedd29c0ffc1b Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 3 Jun 2014 10:46:51 +0200 +Subject: [PATCH] udev: always close lock file descriptor + +https://bugs.freedesktop.org/show_bug.cgi?id=79576 +--- + src/udev/udevd.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-06-03 15:34:42.778346368 +0000 +@@ -301,6 +301,7 @@ static void worker_new(struct event *eve + if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { + log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); + err = -EWOULDBLOCK; ++ close_nointr_nofail(fd_lock); fd_lock = -1; + goto skip; + } + } +@@ -318,7 +319,7 @@ static void worker_new(struct event *eve + } + + if (fd_lock >= 0) +- close(fd_lock); ++ close_nointr_nofail(fd_lock); + + /* send processed event back to libudev listeners */ + udev_monitor_send_device(worker_monitor, NULL, dev); +@@ -378,9 +379,9 @@ skip: + out: + udev_device_unref(dev); + if (fd_signal >= 0) +- close(fd_signal); ++ close_nointr_nofail(fd_signal); + if (fd_ep >= 0) +- close(fd_ep); ++ close_nointr_nofail(fd_ep); + close(fd_inotify); + close(worker_watch[WRITE_END]); + udev_rules_unref(rules); diff --git a/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch b/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch new file mode 100644 index 00000000..2dc531f4 --- /dev/null +++ b/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch @@ -0,0 +1,39 @@ +From e918a1b5a94f270186dca59156354acd2a596494 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 3 Jun 2014 16:49:38 +0200 +Subject: [PATCH] udev: exclude device-mapper from block device ownership event + locking + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 819ea3b..6c05104 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -290,7 +290,19 @@ static void worker_new(struct event *event) + * acquired the lock, the external process will block until + * udev has finished its event handling. + */ +- if (streq_ptr("block", udev_device_get_subsystem(dev))) { ++ ++ /* ++ * since we make check - device seems unused - we try ++ * ioctl to deactivate - and device is found to be opened ++ * sure, you try to take a write lock ++ * if you get it udev is out ++ * if you can't get it, udev is busy ++ * we cannot deactivate openned device (as it is in-use) ++ * maybe we should just exclude dm from that thing entirely ++ * IMHO this sounds like a good plan for this moment ++ */ ++ if (streq_ptr("block", udev_device_get_subsystem(dev)) && ++ !startswith("dm-", udev_device_get_sysname(dev))) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +-- +1.8.4.5 + diff --git a/1026-udevd-inotify-modernizations.patch b/1026-udevd-inotify-modernizations.patch new file mode 100644 index 00000000..c63093ff --- /dev/null +++ b/1026-udevd-inotify-modernizations.patch @@ -0,0 +1,85 @@ +From edd32000c806e4527c5f376d138f7bff07724c26 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 11:05:45 +0200 +Subject: [PATCH] udevd: inotify - modernizations + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 45 ++++++++++++++++++++++----------------------- + 1 file changed, 22 insertions(+), 23 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -736,20 +736,30 @@ out: + return udev_ctrl_connection_unref(ctrl_conn); + } + ++static void synthesize_change(struct udev_device *dev) { ++ char filename[UTIL_PATH_SIZE]; ++ ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++} ++ + /* read inotify messages */ + static int handle_inotify(struct udev *udev) + { + int nbytes, pos; + char *buf; + struct inotify_event *ev; ++ int r; + +- if ((ioctl(fd_inotify, FIONREAD, &nbytes) < 0) || (nbytes <= 0)) +- return 0; ++ r = ioctl(fd_inotify, FIONREAD, &nbytes); ++ if (r < 0 || nbytes <= 0) ++ return -errno; + + buf = malloc(nbytes); +- if (buf == NULL) { ++ if (!buf) { + log_error("error getting buffer for inotify"); +- return -1; ++ return -ENOMEM; + } + + nbytes = read(fd_inotify, buf, nbytes); +@@ -759,27 +769,16 @@ static int handle_inotify(struct udev *u + + ev = (struct inotify_event *)(buf + pos); + dev = udev_watch_lookup(udev, ev->wd); +- if (dev != NULL) { +- log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); +- if (ev->mask & IN_CLOSE_WRITE) { +- char filename[UTIL_PATH_SIZE]; +- int fd; +- +- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); +- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); +- fd = open(filename, O_WRONLY|O_CLOEXEC); +- if (fd >= 0) { +- if (write(fd, "change", 6) < 0) +- log_debug("error writing uevent: %m"); +- close(fd); +- } +- } +- if (ev->mask & IN_IGNORED) +- udev_watch_end(udev, dev); ++ if (!dev) ++ continue; + +- udev_device_unref(dev); +- } ++ log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); ++ if (ev->mask & IN_CLOSE_WRITE) ++ synthesize_change(dev); ++ else if (ev->mask & IN_IGNORED) ++ udev_watch_end(udev, dev); + ++ udev_device_unref(dev); + } + + free(buf); diff --git a/1027-udev-synthesize-change-events-for-partitions-when-to.patch b/1027-udev-synthesize-change-events-for-partitions-when-to.patch new file mode 100644 index 00000000..ab09c1b2 --- /dev/null +++ b/1027-udev-synthesize-change-events-for-partitions-when-to.patch @@ -0,0 +1,84 @@ +From f3a740a5dae792fb6b2d411022ce8c29ced1c3f1 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 12:16:28 +0200 +Subject: [PATCH] udev: synthesize "change' events for partitions when tools + change the disk + +This should make sure that fdisk-like programs will automatically +cause an update of all partitions, just like mkfs-like programs cause +an update of the partition. + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 42 insertions(+), 2 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -46,6 +46,7 @@ + #include + + #include "udev.h" ++#include "udev-util.h" + #include "sd-daemon.h" + #include "cgroup-util.h" + #include "dev-setup.h" +@@ -736,15 +737,54 @@ out: + return udev_ctrl_connection_unref(ctrl_conn); + } + +-static void synthesize_change(struct udev_device *dev) { ++static int synthesize_change(struct udev_device *dev) { + char filename[UTIL_PATH_SIZE]; ++ int r; + + log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); + strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); + write_string_file(filename, "change"); ++ ++ /* for disks devices, re-trigger all partitions too */ ++ if (streq_ptr("block", udev_device_get_subsystem(dev)) && ++ streq_ptr("disk", udev_device_get_devtype(dev))) { ++ struct udev *udev = udev_device_get_udev(dev); ++ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; ++ struct udev_list_entry *item; ++ ++ e = udev_enumerate_new(udev); ++ if (!e) ++ return -ENOMEM; ++ ++ r = udev_enumerate_add_match_parent(e, dev); ++ if (r < 0) ++ return r; ++ ++ r = udev_enumerate_add_match_subsystem(e, "block"); ++ if (r < 0) ++ return r; ++ ++ r = udev_enumerate_scan_devices(e); ++ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { ++ _cleanup_udev_device_unref_ struct udev_device *d = NULL; ++ ++ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); ++ if (!d) ++ continue; ++ ++ if (!streq_ptr("partition", udev_device_get_devtype(d))) ++ continue; ++ ++ log_debug("device %s closed, synthesising partition '%s' 'change'", ++ udev_device_get_devnode(dev), udev_device_get_devnode(d)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ } ++ } ++ ++ return 0; + } + +-/* read inotify messages */ + static int handle_inotify(struct udev *udev) + { + int nbytes, pos; diff --git a/1028-udev-link-config-fix-mem-leak.patch b/1028-udev-link-config-fix-mem-leak.patch new file mode 100644 index 00000000..265009f0 --- /dev/null +++ b/1028-udev-link-config-fix-mem-leak.patch @@ -0,0 +1,34 @@ +From edf029b7fd9a5853a87d3ca99aac2922bb8a277e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 4 Jun 2014 12:34:23 +0200 +Subject: [PATCH] udev: link-config - fix mem leak + +Reported by Kay. + +Signed-off-by: Robert Milasan +--- + src/udev/net/link-config.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +Index: systemd-210/src/udev/net/link-config.c +=================================================================== +--- systemd-210.orig/src/udev/net/link-config.c ++++ systemd-210/src/udev/net/link-config.c +@@ -118,6 +118,7 @@ static void link_configs_free(link_confi + free(link->match_type); + free(link->description); + free(link->alias); ++ free(link->name_policy); + + free(link); + } +@@ -205,7 +206,8 @@ static bool enable_name_policy(void) { + + int link_config_load(link_config_ctx *ctx) { + int r; +- char **files, **f; ++ _cleanup_strv_free_ char **files; ++ char **f; + + link_configs_free(ctx); + diff --git a/1029-udev-try-first-re-reading-the-partition-table.patch b/1029-udev-try-first-re-reading-the-partition-table.patch new file mode 100644 index 00000000..fa20002b --- /dev/null +++ b/1029-udev-try-first-re-reading-the-partition-table.patch @@ -0,0 +1,94 @@ +From ede344452a54e1c53f541cad12a06269a4fe96a9 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 13:30:24 +0200 +Subject: [PATCH] udev: try first re-reading the partition table + +mounted partitions: + # dd if=/dev/zero of=/dev/sda bs=1 count=1 + UDEV [4157.369250] change .../0:0:0:0/block/sda (block) + UDEV [4157.375059] change .../0:0:0:0/block/sda/sda1 (block) + UDEV [4157.397088] change .../0:0:0:0/block/sda/sda2 (block) + UDEV [4157.404842] change .../0:0:0:0/block/sda/sda4 (block) + +unmounted partitions: + # dd if=/dev/zero of=/dev/sdb bs=1 count=1 + UDEV [4163.450217] remove .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) + UDEV [4163.593167] change .../target6:0:0/6:0:0:0/block/sdb (block) + UDEV [4163.713982] add .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 39 +++++++++++++++++++++++++++++++++------ + 1 file changed, 33 insertions(+), 6 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -741,17 +742,37 @@ static int synthesize_change(struct udev + char filename[UTIL_PATH_SIZE]; + int r; + +- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); +- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); +- write_string_file(filename, "change"); +- +- /* for disks devices, re-trigger all partitions too */ + if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- streq_ptr("disk", udev_device_get_devtype(dev))) { ++ streq_ptr("disk", udev_device_get_devtype(dev)) && ++ !startswith("dm-", udev_device_get_sysname(dev))) { ++ int fd; + struct udev *udev = udev_device_get_udev(dev); + _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; + struct udev_list_entry *item; + ++ /* ++ * Try to re-read the partition table, this only succeeds if ++ * none of the devices is busy. ++ * ++ * The kernel will send out a change event for the disk, and ++ * "remove/add" for all partitions. ++ */ ++ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ if (fd >= 0) { ++ r = ioctl(fd, BLKRRPART, 0); ++ close(fd); ++ if (r >= 0) ++ return 0; ++ } ++ ++ /* ++ * Re-reading the partition table did not work, synthesize "change" ++ * events for the disk and all partitions. ++ */ ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ + e = udev_enumerate_new(udev); + if (!e) + return -ENOMEM; +@@ -780,8 +801,14 @@ static int synthesize_change(struct udev + strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); + write_string_file(filename, "change"); + } ++ ++ return 0; + } + ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ + return 0; + } + diff --git a/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch b/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch new file mode 100644 index 00000000..6fb7b15f --- /dev/null +++ b/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch @@ -0,0 +1,23 @@ +From 10fab50a3091e0b819c3ddab5a7c07acf750c050 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 14:09:31 +0200 +Subject: [PATCH] udev: guard REREADP logic with open(O_ECXL) + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -757,7 +757,7 @@ static int synthesize_change(struct udev + * The kernel will send out a change event for the disk, and + * "remove/add" for all partitions. + */ +- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd >= 0) { + r = ioctl(fd, BLKRRPART, 0); + close(fd); diff --git a/1031-udev-make-sure-we-always-get-change-for-the-disk.patch b/1031-udev-make-sure-we-always-get-change-for-the-disk.patch new file mode 100644 index 00000000..4f48cd3a --- /dev/null +++ b/1031-udev-make-sure-we-always-get-change-for-the-disk.patch @@ -0,0 +1,98 @@ +From e9fc29f4ecc9509ccc02eb8a014341e26c0d7831 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 15:17:15 +0200 +Subject: [PATCH] udev: make sure we always get "change" for the disk + +The kernel will return 0 for REREADPT when no partition table +is found, we have to send out "change" ourselves. + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 53 +++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 39 insertions(+), 14 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -745,34 +745,28 @@ static int synthesize_change(struct udev + if (streq_ptr("block", udev_device_get_subsystem(dev)) && + streq_ptr("disk", udev_device_get_devtype(dev)) && + !startswith("dm-", udev_device_get_sysname(dev))) { ++ bool part_table_read = false; ++ bool has_partitions = false; + int fd; + struct udev *udev = udev_device_get_udev(dev); + _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; + struct udev_list_entry *item; + + /* +- * Try to re-read the partition table, this only succeeds if +- * none of the devices is busy. +- * +- * The kernel will send out a change event for the disk, and +- * "remove/add" for all partitions. ++ * Try to re-read the partition table. This only succeeds if ++ * none of the devices is busy. The kernel returns 0 if no ++ * partition table is found, and we will not get an event for ++ * the disk. + */ + fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd >= 0) { + r = ioctl(fd, BLKRRPART, 0); + close(fd); + if (r >= 0) +- return 0; ++ part_table_read = true; + } + +- /* +- * Re-reading the partition table did not work, synthesize "change" +- * events for the disk and all partitions. +- */ +- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); +- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); +- write_string_file(filename, "change"); +- ++ /* search for partitions */ + e = udev_enumerate_new(udev); + if (!e) + return -ENOMEM; +@@ -786,6 +780,37 @@ static int synthesize_change(struct udev + return r; + + r = udev_enumerate_scan_devices(e); ++ ++ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { ++ _cleanup_udev_device_unref_ struct udev_device *d = NULL; ++ ++ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); ++ if (!d) ++ continue; ++ ++ if (!streq_ptr("partition", udev_device_get_devtype(d))) ++ continue; ++ ++ has_partitions = true; ++ break; ++ } ++ ++ /* ++ * We have partitions and re-read the table, the kernel already sent ++ * out a "change" event for the disk, and "remove/add" for all ++ * partitions. ++ */ ++ if (part_table_read && has_partitions) ++ return 0; ++ ++ /* ++ * We have partitions but re-reading the partition table did not ++ * work, synthesize "change" for the disk and all partitions. ++ */ ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ + udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { + _cleanup_udev_device_unref_ struct udev_device *d = NULL; + diff --git a/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch b/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch new file mode 100644 index 00000000..4a6d7c13 --- /dev/null +++ b/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch @@ -0,0 +1,29 @@ +From 02ba8fb3357daf57f6120ac512fb464a4c623419 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 16:21:19 +0200 +Subject: [PATCH] udev: guard REREADPT by exclusive lock instead of O_EXCL + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -758,9 +758,12 @@ static int synthesize_change(struct udev + * partition table is found, and we will not get an event for + * the disk. + */ +- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd >= 0) { +- r = ioctl(fd, BLKRRPART, 0); ++ r = flock(fd, LOCK_EX|LOCK_NB); ++ if (r >= 0) ++ r = ioctl(fd, BLKRRPART, 0); ++ + close(fd); + if (r >= 0) + part_table_read = true; diff --git a/1033-udev-really-exclude-device-mapper-from-block-device.patch b/1033-udev-really-exclude-device-mapper-from-block-device.patch new file mode 100644 index 00000000..594331c3 --- /dev/null +++ b/1033-udev-really-exclude-device-mapper-from-block-device.patch @@ -0,0 +1,39 @@ +From 638ca89c53e2b897cfb3f627f4acbc7d09af2f4c Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Tue, 10 Jun 2014 15:51:15 +0200 +Subject: [PATCH] udev: really exclude device-mapper from block device + ownership event locking + +Arguments were wrong order, no? +This fixes commits: + +e918a1b5a94f270186dca59156354acd2a596494 +3d06f4183470d42361303086ed9dedd29c0ffc1b + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -304,7 +304,7 @@ static void worker_new(struct event *eve + * IMHO this sounds like a good plan for this moment + */ + if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- !startswith("dm-", udev_device_get_sysname(dev))) { ++ !startswith(udev_device_get_sysname(dev), "dm-")) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +@@ -744,7 +744,7 @@ static int synthesize_change(struct udev + + if (streq_ptr("block", udev_device_get_subsystem(dev)) && + streq_ptr("disk", udev_device_get_devtype(dev)) && +- !startswith("dm-", udev_device_get_sysname(dev))) { ++ !startswith(udev_device_get_sysname(dev), "dm-")) { + bool part_table_read = false; + bool has_partitions = false; + int fd; diff --git a/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch b/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch new file mode 100644 index 00000000..c2a21fce --- /dev/null +++ b/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch @@ -0,0 +1,26 @@ +From 47a3fa0f7679521b85f7aeba9e245c52cc7bb2cb Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Wed, 4 Jun 2014 23:40:43 +0200 +Subject: [PATCH] udev: check the return value from udev_enumerate_scan_devices + +The return value from udev_enumerate_scan_devices was stored but +never used. I assume this was meant to be checked. + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 2 ++ + 1 file changed, 2 insertions(+) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -783,6 +783,8 @@ static int synthesize_change(struct udev + return r; + + r = udev_enumerate_scan_devices(e); ++ if (r < 0) ++ return r; + + udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { + _cleanup_udev_device_unref_ struct udev_device *d = NULL; diff --git a/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch b/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch new file mode 100644 index 00000000..09c5202c --- /dev/null +++ b/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch @@ -0,0 +1,32 @@ +From c9af1be90db5a29ac86605c67bc2bb4bc5780520 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 12 Jun 2014 12:25:03 +0200 +Subject: [PATCH] 99-systemd.rules: Ignore devices with 'SYSTEMD_READY=0' + +Whenever a rule sets 'SYSTEMD_READY=0' it tries to indicate +that systemd should ignore this device. So we should not +set the 'systemd' tag in these cases; otherwise systemd +will pick up the device. + +References: bnc#881942 + +Signed-off-by: Hannes Reinecke +--- + rules/99-systemd.rules.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in +index db72373..11ee262 100644 +--- a/rules/99-systemd.rules.in ++++ b/rules/99-systemd.rules.in +@@ -11,6 +11,7 @@ SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270 + + KERNEL=="vport*", TAG+="systemd" + ++SUBSYSTEM=="block", KERNEL!="ram*", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end" + SUBSYSTEM=="block", KERNEL!="ram*", TAG+="systemd" + SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" + +-- +1.8.4.5 + diff --git a/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch b/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch new file mode 100644 index 00000000..d26c49c0 --- /dev/null +++ b/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch @@ -0,0 +1,14 @@ +Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/75-persistent-net-generator.rules ++++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +@@ -68,7 +68,8 @@ ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="glob + ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" + + # match interface dev_id +-ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" ++# disable due to bnc#882714 ++# ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" + + # do not use "locally administered" MAC address + ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" diff --git a/1037-udev-exclude-cd-dvd-from-block-device.patch b/1037-udev-exclude-cd-dvd-from-block-device.patch new file mode 100644 index 00000000..0b8d68ff --- /dev/null +++ b/1037-udev-exclude-cd-dvd-from-block-device.patch @@ -0,0 +1,14 @@ +Exclude cd/dvd as well (bnc#882714) + +--- systemd-210/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c 2014-06-18 12:53:34.454235577 +0000 +@@ -744,7 +744,8 @@ static int synthesize_change(struct udev + + if (streq_ptr("block", udev_device_get_subsystem(dev)) && + streq_ptr("disk", udev_device_get_devtype(dev)) && +- !startswith(udev_device_get_sysname(dev), "dm-")) { ++ !startswith(udev_device_get_sysname(dev), "dm-") && ++ !startswith(udev_device_get_sysname(dev), "sr")) { + bool part_table_read = false; + bool has_partitions = false; + int fd; diff --git a/1038-udev-fix-invalid-free-in-enable_name_policy.patch b/1038-udev-fix-invalid-free-in-enable_name_policy.patch new file mode 100644 index 00000000..4afdb7ce --- /dev/null +++ b/1038-udev-fix-invalid-free-in-enable_name_policy.patch @@ -0,0 +1,30 @@ +From f8a0bb5285024b6ce372c3157e761e6543ebdcd2 Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Fri, 13 Jun 2014 18:48:21 +0200 +Subject: [PATCH] udev: fix invalid free() in enable_name_policy() + +static bool enable_name_policy(...) in ./src/udev/net/link-config.c +calls proc_cmdline(...) to get "line" initialized, but +proc_cmdline(...) does not guarantee that atleast when both +conditions (detect_container(NULL) > 0) and +read_full_file(...) returned < 0. +--- + src/udev/net/link-config.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/net/link-config.c src/udev/net/link-config.c +index a9acc3d..7a9d01b 100644 +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c +@@ -185,7 +185,7 @@ static int load_link(link_config_ctx *ctx, const char *filename) { + } + + static bool enable_name_policy(void) { +- _cleanup_free_ char *line; ++ _cleanup_free_ char *line = NULL; + char *w, *state; + int r; + size_t l; +-- +1.7.9.2 + diff --git a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch new file mode 100644 index 00000000..2760970f --- /dev/null +++ b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch @@ -0,0 +1,34 @@ +From 83be2c398589a3d64db5999cfd5527c5219bff46 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 20 May 2014 12:25:16 +0200 +Subject: [PATCH] udevadm-settle: fixed return code for empty queue + +If the udev queue is empty and "/run/udev/queue" does not exist, +"udevadm settle" would return with EXIT_FAILURE, because the inotify on +"/run/udev/queue" would fail with ENOENT. + +This patch lets "udevadm settle" exit with EXIT_SUCCESS in this case. +--- + src/udev/udevadm-settle.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 65fc35f..66fd843 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -116,7 +116,11 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { +- log_debug("watching /run/udev failed"); ++ /* If it does not exist, we don't have to wait */ ++ if (errno == ENOENT) ++ rc = EXIT_SUCCESS; ++ else ++ log_debug("watching /run/udev/queue failed"); + goto out; + } + +-- +1.7.9.2 + diff --git a/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch b/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch new file mode 100644 index 00000000..e203d8d3 --- /dev/null +++ b/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch @@ -0,0 +1,16 @@ +Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/75-persistent-net-generator.rules ++++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +@@ -68,8 +68,9 @@ ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="glob + ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" + + # match interface dev_id +-# disable due to bnc#882714 +-# ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" ++# HACK: for s390x, if layer2 == 0, dont use dev_id ++ENV{LAYER2}="1", TEST=="device/layer2", ENV{LAYER2}="$attr{device/layer2}" ++ENV{LAYER2}!="0", ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" + + # do not use "locally administered" MAC address + ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" diff --git a/apply-ACL-for-nvidia-uvm-device-node.patch b/apply-ACL-for-nvidia-uvm-device-node.patch new file mode 100644 index 00000000..6471d229 --- /dev/null +++ b/apply-ACL-for-nvidia-uvm-device-node.patch @@ -0,0 +1,26 @@ +From c79437b7967cf5a23faa881bc5da6b88b63a1ada Mon Sep 17 00:00:00 2001 +From: Stefan Dirsch +Date: Tue, 3 Jun 2014 15:05:55 +0200 +Subject: [PATCH] apply ACL for nvidia-uvm device node + +set ACL on nvidia-uvm device (bnc#879767). +--- + src/login/logind-acl.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c +index 54bc16b..a40af21 100644 +--- a/src/login/logind-acl.c ++++ b/src/login/logind-acl.c +@@ -295,6 +295,8 @@ int devnode_acl_all(struct udev *udev, + if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) + break; + } ++ /* required for additional CUDA support (nvidia-uvm module with appropriate device), bnc#879767 */ ++ devnode_acl("/dev/nvidia-uvm", flush, del, old_uid, add, new_uid); + } + + return r; +-- +1.8.4.5 + diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch deleted file mode 100644 index 1bde222f..00000000 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: Frederic Crozat -Date: Wed, 9 Nov 2011 11:10:49 +0100 -Subject: delay fsck / cryptsetup after md / dmraid are started - ---- - src/cryptsetup/cryptsetup-generator.c | 1 + - units/systemd-fsck@.service.in | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -Index: systemd-208/src/cryptsetup/cryptsetup-generator.c -=================================================================== ---- systemd-208.orig/src/cryptsetup/cryptsetup-generator.c -+++ systemd-208/src/cryptsetup/cryptsetup-generator.c -@@ -119,6 +119,7 @@ static int create_disk( - "DefaultDependencies=no\n" - "BindsTo=dev-mapper-%i.device\n" - "IgnoreOnIsolate=true\n" -+ "After=md.service dmraid.service\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", - f); - -Index: systemd-208/units/systemd-fsck@.service.in -=================================================================== ---- systemd-280.orig/units/systemd-fsck@.service.in -+++ systemd-280/units/systemd-fsck@.service.in -@@ -10,7 +10,7 @@ - Documentation=man:systemd-fsck@.service(8) - DefaultDependencies=no - BindsTo=%i.device --After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service md.service dmraid.service - Before=shutdown.target - - [Service] ---- systemd-280.orig/units/systemd-fsck-root.service.in -+++ systemd-280/units/systemd-fsck-root.service.in -@@ -9,7 +9,7 @@ - Description=File System Check on Root Device - Documentation=man:systemd-fsck-root.service(8) - DefaultDependencies=no --After=systemd-readahead-collect.service systemd-readahead-replay.service -+After=systemd-readahead-collect.service systemd-readahead-replay.service md.service dmraid.service - Before=local-fs.target shutdown.target - - ConditionPathIsReadWrite=!/ diff --git a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch b/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch deleted file mode 100644 index d53eb948..00000000 --- a/ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +++ /dev/null @@ -1,17 +0,0 @@ -From: Frederic Crozat -Date: Thu, 9 Feb 2012 16:19:38 +0000 -Subject: ensure DM and dmraid are started before local-fs-pre-target - -ensure md / dmraid is started before mounting partitions, -if fsck was disabled for them (bnc#733283). ---- - units/local-fs-pre.target | 1 + - 1 file changed, 1 insertion(+) - ---- systemd-206_git201308300826.orig/units/local-fs-pre.target -+++ systemd-206_git201308300826/units/local-fs-pre.target -@@ -9,3 +9,4 @@ - Description=Local File Systems (Pre) - Documentation=man:systemd.special(7) - RefuseManualStart=yes -+After=md.service dmraid.service diff --git a/ensure-ask-password-wall-starts-after-getty-tty1.patch b/ensure-ask-password-wall-starts-after-getty-tty1.patch index 17d2e05e..ac8dbcfd 100644 --- a/ensure-ask-password-wall-starts-after-getty-tty1.patch +++ b/ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -1,20 +1,23 @@ From: Frederic Crozat +Cc: Werner Fink Date: Wed, 24 Aug 2011 13:02:12 +0000 Subject: ensure ask-password-wall starts after getty@tty1 ensure passphrase is handled before starting getty on tty1. + --- - units/systemd-ask-password-wall.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + units/systemd-ask-password-wall.service.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) --- systemd-206_git201308300826.orig/units/systemd-ask-password-wall.service.in +++ systemd-206_git201308300826/units/systemd-ask-password-wall.service.in -@@ -8,7 +8,7 @@ +@@ -8,7 +8,8 @@ [Unit] Description=Forward Password Requests to Wall Documentation=man:systemd-ask-password-console.service(8) -After=systemd-user-sessions.service -+After=systemd-user-sessions.service getty@tty1.service ++Wants=getty.target ++After=systemd-user-sessions.service getty.target [Service] ExecStartPre=-@SYSTEMCTL@ stop systemd-ask-password-console.path systemd-ask-password-console.service systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service diff --git a/ensure-sysctl-are-applied-after-modules-are-loaded.patch b/ensure-sysctl-are-applied-after-modules-are-loaded.patch deleted file mode 100644 index a672f33c..00000000 --- a/ensure-sysctl-are-applied-after-modules-are-loaded.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Frederic Crozat -Date: Mon, 9 Jan 2012 17:01:22 +0000 -Subject: ensure sysctl are applied after modules are loaded - -(bnc#725412) ---- - units/systemd-sysctl.service.in | 1 + - 1 file changed, 1 insertion(+) - ---- systemd-206_git201308300826.orig/units/systemd-sysctl.service.in -+++ systemd-206_git201308300826/units/systemd-sysctl.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service - DefaultDependencies=no - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service -+After=systemd-modules-load.service - Before=sysinit.target shutdown.target - ConditionPathIsReadWrite=/proc/sys/ - ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/getty-generator-with-serial-3270-tty.patch b/getty-generator-with-serial-3270-tty.patch deleted file mode 100644 index 41a2e278..00000000 --- a/getty-generator-with-serial-3270-tty.patch +++ /dev/null @@ -1,34 +0,0 @@ -The path for the serial 3270 console looks like (dev/)3270/tty1 which -causes trouble in the systemd-getty-generator as the add_symlink() -tries to make directories for each slash even for the slash after -the @ symbol in the final link name. - ---- - getty-generator.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- systemd-210/src/getty-generator/getty-generator.c -+++ systemd-210/src/getty-generator/getty-generator.c 2014-03-14 14:13:09.296463091 +0000 -@@ -67,6 +67,7 @@ static int add_symlink(const char *fserv - - static int add_serial_getty(const char *tty) { - _cleanup_free_ char *n = NULL; -+ char *at; - - assert(tty); - -@@ -76,6 +77,14 @@ static int add_serial_getty(const char * - if (!n) - return log_oom(); - -+ if ((at = strchr(n, '@'))) { -+ char *sl; -+ while (*(++at) && (sl = strchr(at, '/'))) { -+ *sl = '-'; -+ at = sl; -+ } -+ } -+ - return add_symlink("serial-getty@.service", n); - } - diff --git a/insserv-generator.patch b/insserv-generator.patch index f1a2452f..5525222a 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -13,11 +13,11 @@ systemd unit drop-in files to add dependencies create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c -Index: systemd-208/Makefile.am +Index: systemd-210/Makefile.am =================================================================== ---- systemd-208.orig/Makefile.am -+++ systemd-208/Makefile.am -@@ -322,6 +322,7 @@ rootlibexec_PROGRAMS = \ +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -343,6 +343,7 @@ rootlibexec_PROGRAMS = \ systemd-socket-proxyd systemgenerator_PROGRAMS = \ @@ -25,7 +25,7 @@ Index: systemd-208/Makefile.am systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1658,6 +1659,14 @@ systemd_delta_LDADD = \ +@@ -1728,6 +1729,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ @@ -40,10 +40,10 @@ Index: systemd-208/Makefile.am systemd_getty_generator_SOURCES = \ src/getty-generator/getty-generator.c -Index: systemd-208/src/insserv-generator/Makefile +Index: systemd-210/src/insserv-generator/Makefile =================================================================== --- /dev/null -+++ systemd-208/src/insserv-generator/Makefile ++++ systemd-210/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -73,10 +73,10 @@ Index: systemd-208/src/insserv-generator/Makefile + $(MAKE) -C .. clean + +.PHONY: all clean -Index: systemd-208/src/insserv-generator/insserv-generator.c +Index: systemd-210/src/insserv-generator/insserv-generator.c =================================================================== --- /dev/null -+++ systemd-208/src/insserv-generator/insserv-generator.c ++++ systemd-210/src/insserv-generator/insserv-generator.c @@ -0,0 +1,312 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -146,7 +146,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + static const char * const table[] = { + /* LSB defined facilities */ + "local_fs", NULL, -+ "network", SPECIAL_NETWORK_TARGET, ++ "network", SPECIAL_NETWORK_ONLINE_TARGET, + "named", SPECIAL_NSS_LOOKUP_TARGET, + "portmap", SPECIAL_RPCBIND_TARGET, + "remote_fs", SPECIAL_REMOTE_FS_TARGET, diff --git a/keep-crypt-password-prompt.patch b/keep-crypt-password-prompt.patch index 3caffec8..10ddf398 100644 --- a/keep-crypt-password-prompt.patch +++ b/keep-crypt-password-prompt.patch @@ -9,10 +9,10 @@ + struct dirent *de; + + if (!(d = opendir("/run/systemd/ask-password"))) { -+ log_error("opendir(): %m"); + + if (errno == ENOENT) + return 1; ++ log_error("opendir(/run/systemd/ask-password): %m"); + + return -errno; + } diff --git a/systemd-detect-xendom.patch b/systemd-detect-xendom.patch deleted file mode 100644 index 7c02a07a..00000000 --- a/systemd-detect-xendom.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -Naur systemd-210/src/shared/virt.c systemd-210-mod/src/shared/virt.c ---- systemd-210/src/shared/virt.c 2014-02-24 15:38:03.909784909 +0100 -+++ systemd-210/src/shared/virt.c 2014-04-10 13:48:05.568766957 +0200 -@@ -149,7 +149,7 @@ - - /* Returns a short identifier for the various VM implementations */ - int detect_vm(const char **id) { -- _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL; -+ _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL; - static thread_local int cached_found = -1; - static thread_local const char *cached_id = NULL; - const char *_id = NULL; -@@ -166,13 +166,18 @@ - /* Try high-level hypervisor sysfs file first: - * - * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */ -- r = read_one_line_file("/sys/hypervisor/type", &hvtype); -+ r = read_one_line_file("/proc/xen/capabilities", &domcap); - if (r >= 0) { -- if (streq(hvtype, "xen")) { -- _id = "xen"; -+ if (strstr(domcap, "control_d")) { -+ r = 0; -+ _id = "xen-dom0"; -+ } else { - r = 1; -- goto finish; -+ _id = "xen-domU"; - } -+ -+ goto finish; -+ - } else if (r != -ENOENT) - return r; - diff --git a/systemd-mini.changes b/systemd-mini.changes index 70662ea3..da40a9c5 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,316 @@ +------------------------------------------------------------------- +Fri Jun 27 08:17:47 UTC 2014 - werner@suse.de + +- Update of patch 0001-detect-s390-virt.patch (bnc#880438) + +------------------------------------------------------------------- +Thu Jun 26 10:02:26 UTC 2014 - werner@suse.de + +- Shut up stupid check scripts crying for not mentioned systemd-mini-rpmlintrc + +------------------------------------------------------------------- +Thu Jun 26 09:31:19 UTC 2014 - werner@suse.de + +- Add upstream patchs + 0001-core-use-correct-format-string-for-UIDs.patch + 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch + 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + +------------------------------------------------------------------- +Thu Jun 26 06:44:09 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-units-order-network-online.target-after-network.targ.patch + to make sure that etwork-online.target follows network.target + +------------------------------------------------------------------- +Wed Jun 25 18:09:52 UTC 2014 - rmilasan@suse.com + +- rules: re-enable dev_id conditionally in persistent rules + (bnc#884403 and bnc#882714). + Add 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch + +------------------------------------------------------------------- +Wed Jun 25 17:27:55 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch + 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch + 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch + 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch + 0005-man-fix-path-in-crypttab-5.patch + +------------------------------------------------------------------- +Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de + +- Add upstream patch + 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it + fixes udevadm settle exit code which may had roken dracut scripts + (bnc#884271 comment#18) + +------------------------------------------------------------------- +Wed Jun 25 14:12:52 UTC 2014 - werner@suse.de + +- Temporary disable patch 1022 (bnc#884271 and bnc#882714). + +------------------------------------------------------------------- +Tue Jun 24 11:55:39 UTC 2014 - rmilasan@suse.com + +- Rename 0002-udev-fix-invalid-free-in-enable_name_policy.patch + to 1038-udev-fix-invalid-free-in-enable_name_policy.patch + +------------------------------------------------------------------- +Tue Jun 24 11:27:27 UTC 2014 - werner@suse.de + +- Replace patches + 0001-systemd-empty-sigmask-on-reexec.patch with + upstream 0008-Reset-signal-mask-on-re-exec-to-init.patch + ensure-sysctl-are-applied-after-modules-are-loaded.patch with + upstream 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch + getty-generator-with-serial-3270-tty.patch with + upstream 0004-getty-generator-properly-escape-instance-names.patch +- Add upstream patches + 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch + 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch + 0005-po-add-Greek-translation.patch + 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0007-po-add-German-translation.patch + 0009-core-clean-up-signal-reset-logic-when-reexec.patch + 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch + 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch + 0012-core-transaction-avoid-misleading-error-message-when.patch + +------------------------------------------------------------------- +Tue Jun 24 10:04:21 UTC 2014 - werner@suse.de + +- Invert of the boolean for locking scheme of fsck (bnc#881125) +- Remove the ghost entry /etc/hostname and require the netcfg + +------------------------------------------------------------------- +Mon Jun 23 16:39:50 UTC 2014 - arvidjaar@gmail.com + +- make sure legacy services that depend on network are started after + network is available (bnc#883565) + * 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch + * update insserv-generator.patch to translate $network into + network-online.target + +------------------------------------------------------------------- +Wed Jun 18 13:35:58 UTC 2014 - werner@suse.de + +- Add patch 0001-detect-s390-virt.patch from Thomas Blume (bnc#880438) + to detect the virtualization layers on s390x as well + +------------------------------------------------------------------- +Wed Jun 18 12:58:42 UTC 2014 - werner@suse.de + +- Do not generate synthesize change for cd/dvd (bnc#882714, comment #51) + add patch 1037-udev-exclude-cd-dvd-from-block-device.patch from + Roberts suggestion as well as readd + 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + +------------------------------------------------------------------- +Tue Jun 17 14:21:56 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-core-fix-invalid-free-in-killall.patch + 0002-udev-fix-invalid-free-in-enable_name_policy.patch + 0003-install-fix-invalid-free-in-unit_file_mask.patch + +------------------------------------------------------------------- +Tue Jun 17 11:43:23 UTC 2014 - rmilasan@suse.com + +- rules: disable usage of dev_id in persistent rules (bnc#882714). + add: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +- Disable patch (bnc#882714). + 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + +------------------------------------------------------------------- +Thu Jun 12 12:14:11 UTC 2014 - werner@suse.de + +- Add patch + 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch + from Hannes Reinecke to avoid a race condition between variable + 'SYSTEMD_READY=0' and 'systemd' tag within udev rules (bnc#881942) + +------------------------------------------------------------------- +Thu Jun 12 09:40:54 UTC 2014 - werner@suse.de + +- Add workaround for bnc#882393 by adding the systemd update utmp + runlevel service to the wanted unit of e.g. the graphical target +- Add some later on created files to our file list + +------------------------------------------------------------------- +Thu Jun 12 03:33:01 UTC 2014 - jlee@suse.com + +- Generate %{_libexecdir}/modules-load.d/efivars.conf so we load efivars + module at boot time not from udev (bnc#881559). + +------------------------------------------------------------------- +Wed Jun 11 21:59:29 UTC 2014 - crrodriguez@opensuse.org + +- Do not build EFI support code in architectures on which + the kernel does not support CONFIG_EFI, it won't work. + (ia64 also supports it, but that's dead so is not included) + +------------------------------------------------------------------- +Wed Jun 11 14:09:30 UTC 2014 - werner@suse.de + +- Add patch tmpfiles-do-not-clean-for-mandb-index-files.patch + there is no need to clean out all 30 days the index data base + files nor the cachedir tags of mandb. Those files are used + for whatis(1) as well as for apropos(1). + +------------------------------------------------------------------- +Wed Jun 11 13:31:53 UTC 2014 - werner@suse.de + +- Do not override predictable names for openSUSE + +------------------------------------------------------------------- +Wed Jun 11 11:03:45 UTC 2014 - werner@suse.de + +- Remove systemd-detect-xendom.patch as it becomes obsolete with + upstream patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +- Add upstream patches + 0001-umount-modernizations.patch + 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch + 0003-core-allow-transient-mount-units.patch + 0004-systemd-detect-virt-only-discover-Xen-domU.patch + 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch + 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch + +------------------------------------------------------------------- +Tue Jun 10 19:58:56 UTC 2014 - rmilasan@suse.com + +- Add upstream patches + 1033-udev-really-exclude-device-mapper-from-block-device.patch + 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch + +------------------------------------------------------------------- +Tue Jun 10 15:29:49 UTC 2014 - werner@suse.de + +- Change detection of new locking scheme of fsck + +------------------------------------------------------------------- +Tue Jun 10 11:11:55 UTC 2014 - werner@suse.de + +- Change 1021-udev-re-add-persistent-net-rules.patch to use persistent + rules as a default on SLES-12 and predictable rules as a default + otherwise +- Add cflags shell function to check possible flags for the compiler + as well as for the linker + +------------------------------------------------------------------- +Mon Jun 9 08:38:33 UTC 2014 - rmilasan@suse.com + +- Add upstream patches + 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch + 1026-udevd-inotify-modernizations.patch + 1027-udev-synthesize-change-events-for-partitions-when-to.patch + 1028-udev-link-config-fix-mem-leak.patch + 1029-udev-try-first-re-reading-the-partition-table.patch + 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch + 1031-udev-make-sure-we-always-get-change-for-the-disk.patch + 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch + +------------------------------------------------------------------- +Fri Jun 6 10:24:19 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-sd-event-restore-correct-timeout-behaviour.patch + 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch + +------------------------------------------------------------------- +Thu Jun 5 13:29:20 UTC 2014 - werner@suse.de + +- Add upstream patch 0001-hwdb-fix-case-sensitive-match.patch + +------------------------------------------------------------------- +Thu Jun 5 13:23:24 UTC 2014 - werner@suse.de + +- Add dynamic detection of util-linux version to be able to + disable the fsck option -l for version less than 2.25.0 + +------------------------------------------------------------------- +Thu Jun 5 08:06:02 UTC 2014 - werner@suse.de + +- Add changes from Cristian Rodríguez: + * The patches + delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch and + ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch + indeed mention unit files which do not exist anymore. +- Make sure that systemd-ask-password-wall.service has a tty as + it is not sure that a tty1 exists +- Avoid broken firmware loading on newer distributions as 13.1 + +------------------------------------------------------------------- +Thu Jun 5 07:24:35 UTC 2014 - werner@suse.de + +- Correct version check for the tcp-devel drop +- Use correct permissions for /var/log/journal +- Use ACLs for /var/log/journal as described in man:systemd-journald.service(8) + +------------------------------------------------------------------- +Thu Jun 5 02:33:48 UTC 2014 - crrodriguez@opensuse.org + +- Correct the libseccomp distribution version test must be >= 13.1 +- In order to use unit directive AppArmorProfile= libapparmor-devel + must be present in buildRequires. + +------------------------------------------------------------------- +Tue Jun 3 16:31:44 UTC 2014 - sndirsch@suse.com + +- apply-ACL-for-nvidia-uvm-device-node.patch: set ACL on nvidia-uvm + device (bnc#879767). + +------------------------------------------------------------------- +Tue Jun 3 15:56:01 UTC 2014 - werner@suse.de + +- Add changes from Cristian Rodríguez: + * fix keep-crypt-password-prompt.patch which floods the system + logs with bogus opendir failures, still the wrong thing to do however. + * Use %find_lang to collect locale files + * systemd-no-libattr.patch: systemd does not require libattr + but just sys/xattr.h, therefore drop the dependency. + (from upstream) + * Again, drop tcp-devel from buildRequires, this time it is not a + SUSE specific feature removal, tcpd supportdisappeared in systemd + 212 and we shouldn't keep it around. +- Add patch 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch + that is rename systemd-no-libattr.patch to git format +- Drop tcp-devel only for *next* openSUSE and not for SLES-12 nor + for openSUSE 13.1 + +------------------------------------------------------------------- +Tue Jun 3 14:23:40 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-virt-rework-container-detection-logic.patch + 0002-fsck-include-device-name-in-the-message-about-missin.patch + 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch + 0004-util-ignore_file-should-not-allow-files-ending-with.patch + 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +- Add upstream patches to update keyboard data base + 0007-keyboard-add-Plantronics-.Audio-mute-button.patch +- Add upstream patches for udev + 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch + 1024-udev-always-close-lock-file-descriptor.patch + +------------------------------------------------------------------- +Tue Jun 3 12:55:53 UTC 2014 - rmilasan@suse.com + +- Fix enabling predictable rules when using net.ifnames=1. + update: 1021-udev-re-add-persistent-net-rules.patch + +------------------------------------------------------------------- +Fri May 30 07:35:07 UTC 2014 - rmilasan@suse.com + +- Re-add persistent rules as a default and make predictable rules as + fallback (bnc#880732). + add: 1021-udev-re-add-persistent-net-rules.patch +- udev: remove seqnum API and all assumptions about seqnums + add: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + ------------------------------------------------------------------- Tue May 27 07:23:47 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 6c0acde3..15e40108 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -26,6 +26,12 @@ %bcond_without compat_libs %bcond_with networkd %bcond_with python +%ifarch %{ix86} x86_64 aarch64 +%define has_efi 1 +%else +%define has_efi 0 +%endif +%bcond_with udevsettle Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -38,6 +44,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: %{real} = %{version}-%{release} +BuildRequires: acl BuildRequires: audit-devel %if %{with compat_libs} # See gold_archs in binutils.spec @@ -59,7 +66,6 @@ BuildRequires: gtk-doc %endif BuildRequires: intltool BuildRequires: libacl-devel -BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libkmod-devel BuildRequires: libsepol-devel @@ -72,7 +78,9 @@ BuildRequires: pam-devel %if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros %endif +%if 0%{?suse_version} <= 1315 BuildRequires: tcpd-devel +%endif BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 %if ! 0%{?bootstrap} @@ -98,11 +106,14 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif -%if 0%{?suse_version} > 1310 +%if 0%{?suse_version} >= 1310 %ifarch %ix86 x86_64 x32 %arm BuildRequires: pkgconfig(libseccomp) %endif %endif +%if ! 0%{?bootstrap} +BuildRequires: libapparmor-devel +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?suse_version} > 1310 @@ -125,6 +136,7 @@ Requires: kmod >= 14 %else Requires: kmod >= 15 %endif +Requires: netcfg Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -135,12 +147,21 @@ Requires(post): findutils %if ! 0%{?bootstrap} Requires(post): pam-config %endif +Requires(pre): /usr/bin/getent +Requires(pre): /usr/sbin/groupadd +Requires(post): /usr/bin/awk +Requires(post): /usr/bin/getent +Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz +%if ! 0%{?bootstrap} Source1: systemd-rpmlintrc +%else +Source1: systemd-mini-rpmlintrc +%endif Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf @@ -168,16 +189,15 @@ Patch6: insserv-generator.patch Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch -Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch -Patch14: ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch Patch18: fix-owner-of-var-log-btmp.patch -# PATCH-FIX-SUSE Avoid error message about not existing getty@3270 file -Patch19: getty-generator-with-serial-3270-tty.patch +# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file +Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -189,6 +209,8 @@ Patch21: allow-multiple-sulogin-to-be-started.patch Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch +# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device +Patch28: apply-ACL-for-nvidia-uvm-device-node.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. @@ -225,8 +247,8 @@ Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -# PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com -Patch114: 0001-systemd-empty-sigmask-on-reexec.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com @@ -381,8 +403,8 @@ Patch193: portmap-wants-rpcbind-socket.patch Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch # PATCH-FIX-USTREAM added at 2014/03/14 Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -# PATCH-FIX-SUSE Detect XEN dom0 as well as domU -Patch196: systemd-detect-xendom.patch +# PATCH-FIX-SUSE Do not clean the data base files of the manual pages +Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap @@ -477,40 +499,116 @@ Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch # PATCH-FIX-UPSTREAM added at 2014/05/20 Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch -# PATCHFIX-UPSTREAM added at 2014/05/20 +# PATCH-FIX-UPSTREAM added at 2014/05/20 Patch245: 0007-logind-fix-Display-property-of-user-objects.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch246: 0001-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch247: 0002-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch249: 0004-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch250: 0005-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch252: 0002-journal-properly-detect-language-specified-in-line.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch -# PATCHFIX-UPSTREAM added at 2014/05/27 +# PATCH-FIX-UPSTREAM added at 2014/05/27 Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch -# PATCHFIX-UPSTREAM added at 2014/05/27 +# PATCH-FIX-UPSTREAM added at 2014/05/27 Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch262: 0001-virt-rework-container-detection-logic.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +# PATCH-FIX-UPSTREAM added at 2014/06/05 +Patch269: 0001-hwdb-fix-case-sensitive-match.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch272: 0001-umount-modernizations.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch274: 0003-core-allow-transient-mount-units.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU +Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch278: 0001-core-fix-invalid-free-in-killall.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch +# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438) +Patch280: 0001-detect-s390-virt.patch +# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available +Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch284: 0005-po-add-Greek-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch286: 0007-po-add-German-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch295: 0005-man-fix-path-in-crypttab-5.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch296: 0001-units-order-network-online.target-after-network.targ.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch297: 0001-core-use-correct-format-string-for-UIDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch # UDEV PATCHES # ============ @@ -556,8 +654,48 @@ Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch # PATCH-FIX-UPSTREAM added at 2014/05/20 Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch +# PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch +Patch1021: 1021-udev-re-add-persistent-net-rules.patch +# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1024: 1024-udev-always-close-lock-file-descriptor.patch +# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch +Patch1026: 1026-udevd-inotify-modernizations.patch +# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch +Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch +# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch +Patch1028: 1028-udev-link-config-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch +Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch +# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch +Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch +# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +# PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch +Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch +# PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +# PATCH-FIX-SUSE See bnc#882714 comment #51 +Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch +# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch +Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch +# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +# PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) +Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -613,12 +751,19 @@ Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq +PreReq: /bin/rm +PreReq: %insserv_prereq +PreReq: %fillup_prereq +PreReq: /usr/bin/sg_inq +Requires(pre): /usr/bin/stat +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/bin/getent Requires(post): lib%{udevpkgname}%{udev_major} Requires(post): sed -Requires(post): systemd +Requires(post): /usr/bin/systemctl %if %{defined regenerate_initrd_post} Requires(post): coreutils +Requires(post): /usr/bin/stat Requires(postun): coreutils Requires(posttrans): suse-module-tools Requires(posttrans): /sbin/mkinitrd @@ -720,6 +865,11 @@ License: LGPL-2.1+ Group: System/Base Provides: syslog Provides: sysvinit(syslog) +Requires(pre): /usr/bin/getent +Requires(pre): /usr/sbin/groupadd +Requires(post): /usr/bin/getent +Requires(post): /usr/bin/setfacl +Requires(post): /usr/bin/systemctl Conflicts: otherproviders(syslog) %description logger @@ -786,15 +936,13 @@ cp %{SOURCE7} m4/ %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch11 -p1 %patch12 -p1 -%patch13 -p1 -%patch14 -p1 +%patch13 -p0 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 -%patch19 -p1 +%patch19 -p0 %patch20 -p1 %patch21 -p1 %patch22 -p1 @@ -806,6 +954,7 @@ cp %{SOURCE7} m4/ # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 +%patch28 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 @@ -900,8 +1049,8 @@ cp %{SOURCE7} m4/ %patch192 -p1 %patch193 -p1 %patch194 -p0 -%patch195 -p0 %patch196 -p1 +%patch195 -p0 %patch197 -p1 %patch198 -p1 %patch199 -p0 @@ -966,6 +1115,44 @@ cp %{SOURCE7} m4/ %patch259 -p0 %patch260 -p0 %patch261 -p0 +%patch262 -p0 +%patch263 -p0 +%patch264 -p0 +%patch265 -p0 +%patch266 -p0 +%patch267 -p0 +%patch268 -p0 +%patch269 -p0 +%patch270 -p0 +%patch271 -p0 +%patch272 -p0 +%patch273 -p0 +%patch274 -p0 +%patch275 -p0 +%patch276 -p0 +%patch277 -p0 +%patch278 -p0 +%patch279 -p0 +%patch280 -p1 +%patch281 -p1 +%patch282 -p0 +%patch283 -p0 +%patch284 -p0 +%patch285 -p0 +%patch286 -p0 +%patch287 -p0 +%patch288 -p0 +%patch289 -p0 +%patch290 -p0 +%patch291 -p0 +%patch292 -p0 +%patch293 -p0 +%patch294 -p0 +%patch295 -p0 +%patch296 -p0 +%patch297 -p0 +%patch298 -p0 +%patch299 -p0 # udev patches %patch1001 -p1 @@ -989,15 +1176,111 @@ cp %{SOURCE7} m4/ %patch1018 -p0 %patch1019 -p0 %patch1020 -p0 +%patch1021 -p1 +%if 0%{?suse_version} > 1310 +%if %{with udevsettle} +%patch1022 -p1 +%endif +%endif +%patch1023 -p0 +%patch1024 -p0 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 +%patch1028 -p1 +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%patch1035 -p1 +%patch1036 -p1 +%patch1037 -p1 +%patch1038 -p0 +%if 0%{?suse_version} > 1310 +%if %{with udevsettle} +%patch1039 -p0 +%endif +%endif +%patch1040 -p1 # ensure generate files are removed rm -f units/emergency.service +# disable "-l" option for fsck if it does not support new locking scheme +# compare with commit c343be283b7152554bac0c02493a4e1759c163f7 +PATH=${PATH}:/sbin:/usr/sbin +PATH_FSCK=$(type -p fsck) +if grep -q /run/fsck/%%s\\.lock $PATH_FSCK +then + echo Found new $PATH_FSCK that is allow private locking +else + echo Found old $PATH_FSCK that is disable flock for this one + sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c +fi + +%if 0%{?suse_version} <= 1310 +# +# Older versions like oS 13.1 do not distinguish between +# network.target and network-online.target +# +for f in src/core/service.c src/insserv-generator/insserv-generator.c +do + sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f +done +%endif + %build +cflags () +{ + local flag=$1; shift + local var=$1; shift + local gold + test -n "${flag}" -a -n "${var}" || return + case "${!var}" in + *${flag}*) return + esac + if type ld.gold > /dev/null 2>&1 ; then + gold=-Wl,-fuse-ld=gold + fi + set -o noclobber + case "$flag" in + -Wl,*) + if echo 'int main () { return 0; }' | \ + ${CC:-gcc} -Werror $gold $flag -o /dev/null -xc - > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + rm -f ldtest.c + ;; + *) + if ${CC:-gcc} -Werror $gold $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + if ${CXX:-g++} -Werror $gold $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + esac + set +o noclobber +} autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; -export V=1 +export V=e +export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" +export LDFLAGS +%if 0%{?suse_version} == 1315 + CFLAGS="$CFLAGS -DNET_IFNAMES=1" +%else + CFLAGS="$CFLAGS -DNET_IFNAMES=0" + for rules in 75-persistent-net-generator 76-net-sriov-names + do + sed -ri '/^ENV\{net.ifnames\}=="1", GOTO="[^"]*"$/{ s/=="1"/!="0"/ }' src/udev/rule_generator/${rules}.rules + done +%endif +cflags -pipe CFLAGS +cflags -Wl,-O2 LDFLAGS +cflags -Wl,--hash-size=8599 LDFLAGS # keep split-usr until all packages have moved their systemd rules to /usr %configure \ --docdir=%{_docdir}/systemd \ @@ -1024,7 +1307,12 @@ export V=1 --enable-selinux \ --enable-split-usr \ --disable-static \ +%if 0%{?suse_version} <= 1310 --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ +%endif +%if ! 0%{has_efi} + --disable-efi \ +%endif --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ @@ -1036,8 +1324,7 @@ export V=1 %if %{without networkd} --disable-networkd \ %endif - --disable-kdbus \ - CFLAGS="%{optflags}" + --disable-kdbus make %{?_smp_mflags} %if ! 0%{?bootstrap} make %{?_smp_mflags} update-man-list man @@ -1072,7 +1359,9 @@ ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif +%if 0%{?suse_version} <= 1310 ln -sf /lib/firmware %{buildroot}/usr/lib/firmware +%endif %if ! 0%{?bootstrap} install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config @@ -1140,6 +1429,12 @@ cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf # load sg module at boot time sg EOF +%if 0%{has_efi} +cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/efivars.conf +# load efivars module at boot time +efivars +EOF +%endif # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual @@ -1240,7 +1535,7 @@ do done %endif -%if 0%{suse_version} < 1310 +%if 0%{suse_version} <= 1310 cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' [Unit] Description=Fix against deadlock at shutdown @@ -1264,6 +1559,28 @@ cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants %endif +# Some files which may created by us or by the admin later on +mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d +for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ + machine-id machine-info \ + systemd/system/runlevel2.target \ + systemd/system/runlevel3.target \ + systemd/system/runlevel4.target \ + systemd/system/runlevel4.target \ + systemd/system/runlevel5.target +do + > %{buildroot}%{_sysconfdir}/$ghost +done + +# Workaround for bug #882393 +for runlevel in poweroff rescue multi-user graphical reboot +do + mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants + ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ +done + +%find_lang systemd + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1279,8 +1596,14 @@ exit 0 /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files -chgrp systemd-journal %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : -chmod g+s %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +chmod g+s %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +if read ID < /etc/machine-id > /dev/null 2>&1 ; then + chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : + chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : +fi +getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -1348,7 +1671,7 @@ elif [ ! -e /lib/udev ]; then ln -s /usr/lib/udev /lib/udev fi # Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules -/usr/sbin/groupadd -r tape 2> /dev/null || : +getent group tape >/dev/null || groupadd -r tape 2> /dev/null || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then @@ -1427,7 +1750,13 @@ fi %postun -n libgudev-1_0-0 -p /sbin/ldconfig +%pre logger +getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : +exit 0 + %post logger +getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : @@ -1465,7 +1794,6 @@ exit 0 /bin/systemd-ask-password /bin/systemctl %{_bindir}/systemd-sleep-grub -%{_bindir}/bootctl %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl @@ -1553,7 +1881,10 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif +%if 0%{has_efi} +%{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator +%endif %{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator @@ -1566,6 +1897,9 @@ exit 0 %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf +%if 0%{has_efi} +%{_libexecdir}/modules-load.d/efivars.conf +%endif %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d @@ -1599,6 +1933,18 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf +# Some files which may created by us +%dir %{_sysconfdir}/X11/xorg.conf.d +%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf +%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf +%ghost %config(noreplace) %{_sysconfdir}/locale.conf +%ghost %config(noreplace) %{_sysconfdir}/machine-id +%ghost %config(noreplace) %{_sysconfdir}/machine-info +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target + %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service @@ -1720,7 +2066,9 @@ exit 0 # keep for compatibility %ghost /lib/udev %{_bindir}/udevadm +%if 0%{?suse_version} <= 1310 %{_prefix}/lib/firmware +%endif %dir %{_prefix}/lib/udev/ %{_prefix}/lib/udev/accelerometer %{_prefix}/lib/udev/ata_id @@ -1731,6 +2079,9 @@ exit 0 %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule %{_prefix}/lib/udev/udev-generate-peristent-rule +%{_prefix}/lib/udev/net-set-sriov-names +%{_prefix}/lib/udev/rule_generator.functions +%{_prefix}/lib/udev/write_net_rules %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules @@ -1808,7 +2159,7 @@ exit 0 %files logger %defattr(-,root,root) -%dir %{_localstatedir}/log/journal +%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal %{_localstatedir}/log/README /etc/init.d/systemd-journald diff --git a/systemd.changes b/systemd.changes index 70662ea3..da40a9c5 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,316 @@ +------------------------------------------------------------------- +Fri Jun 27 08:17:47 UTC 2014 - werner@suse.de + +- Update of patch 0001-detect-s390-virt.patch (bnc#880438) + +------------------------------------------------------------------- +Thu Jun 26 10:02:26 UTC 2014 - werner@suse.de + +- Shut up stupid check scripts crying for not mentioned systemd-mini-rpmlintrc + +------------------------------------------------------------------- +Thu Jun 26 09:31:19 UTC 2014 - werner@suse.de + +- Add upstream patchs + 0001-core-use-correct-format-string-for-UIDs.patch + 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch + 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + +------------------------------------------------------------------- +Thu Jun 26 06:44:09 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-units-order-network-online.target-after-network.targ.patch + to make sure that etwork-online.target follows network.target + +------------------------------------------------------------------- +Wed Jun 25 18:09:52 UTC 2014 - rmilasan@suse.com + +- rules: re-enable dev_id conditionally in persistent rules + (bnc#884403 and bnc#882714). + Add 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch + +------------------------------------------------------------------- +Wed Jun 25 17:27:55 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch + 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch + 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch + 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch + 0005-man-fix-path-in-crypttab-5.patch + +------------------------------------------------------------------- +Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de + +- Add upstream patch + 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it + fixes udevadm settle exit code which may had roken dracut scripts + (bnc#884271 comment#18) + +------------------------------------------------------------------- +Wed Jun 25 14:12:52 UTC 2014 - werner@suse.de + +- Temporary disable patch 1022 (bnc#884271 and bnc#882714). + +------------------------------------------------------------------- +Tue Jun 24 11:55:39 UTC 2014 - rmilasan@suse.com + +- Rename 0002-udev-fix-invalid-free-in-enable_name_policy.patch + to 1038-udev-fix-invalid-free-in-enable_name_policy.patch + +------------------------------------------------------------------- +Tue Jun 24 11:27:27 UTC 2014 - werner@suse.de + +- Replace patches + 0001-systemd-empty-sigmask-on-reexec.patch with + upstream 0008-Reset-signal-mask-on-re-exec-to-init.patch + ensure-sysctl-are-applied-after-modules-are-loaded.patch with + upstream 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch + getty-generator-with-serial-3270-tty.patch with + upstream 0004-getty-generator-properly-escape-instance-names.patch +- Add upstream patches + 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch + 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch + 0005-po-add-Greek-translation.patch + 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch + 0007-po-add-German-translation.patch + 0009-core-clean-up-signal-reset-logic-when-reexec.patch + 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch + 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch + 0012-core-transaction-avoid-misleading-error-message-when.patch + +------------------------------------------------------------------- +Tue Jun 24 10:04:21 UTC 2014 - werner@suse.de + +- Invert of the boolean for locking scheme of fsck (bnc#881125) +- Remove the ghost entry /etc/hostname and require the netcfg + +------------------------------------------------------------------- +Mon Jun 23 16:39:50 UTC 2014 - arvidjaar@gmail.com + +- make sure legacy services that depend on network are started after + network is available (bnc#883565) + * 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch + * update insserv-generator.patch to translate $network into + network-online.target + +------------------------------------------------------------------- +Wed Jun 18 13:35:58 UTC 2014 - werner@suse.de + +- Add patch 0001-detect-s390-virt.patch from Thomas Blume (bnc#880438) + to detect the virtualization layers on s390x as well + +------------------------------------------------------------------- +Wed Jun 18 12:58:42 UTC 2014 - werner@suse.de + +- Do not generate synthesize change for cd/dvd (bnc#882714, comment #51) + add patch 1037-udev-exclude-cd-dvd-from-block-device.patch from + Roberts suggestion as well as readd + 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + +------------------------------------------------------------------- +Tue Jun 17 14:21:56 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-core-fix-invalid-free-in-killall.patch + 0002-udev-fix-invalid-free-in-enable_name_policy.patch + 0003-install-fix-invalid-free-in-unit_file_mask.patch + +------------------------------------------------------------------- +Tue Jun 17 11:43:23 UTC 2014 - rmilasan@suse.com + +- rules: disable usage of dev_id in persistent rules (bnc#882714). + add: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +- Disable patch (bnc#882714). + 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + +------------------------------------------------------------------- +Thu Jun 12 12:14:11 UTC 2014 - werner@suse.de + +- Add patch + 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch + from Hannes Reinecke to avoid a race condition between variable + 'SYSTEMD_READY=0' and 'systemd' tag within udev rules (bnc#881942) + +------------------------------------------------------------------- +Thu Jun 12 09:40:54 UTC 2014 - werner@suse.de + +- Add workaround for bnc#882393 by adding the systemd update utmp + runlevel service to the wanted unit of e.g. the graphical target +- Add some later on created files to our file list + +------------------------------------------------------------------- +Thu Jun 12 03:33:01 UTC 2014 - jlee@suse.com + +- Generate %{_libexecdir}/modules-load.d/efivars.conf so we load efivars + module at boot time not from udev (bnc#881559). + +------------------------------------------------------------------- +Wed Jun 11 21:59:29 UTC 2014 - crrodriguez@opensuse.org + +- Do not build EFI support code in architectures on which + the kernel does not support CONFIG_EFI, it won't work. + (ia64 also supports it, but that's dead so is not included) + +------------------------------------------------------------------- +Wed Jun 11 14:09:30 UTC 2014 - werner@suse.de + +- Add patch tmpfiles-do-not-clean-for-mandb-index-files.patch + there is no need to clean out all 30 days the index data base + files nor the cachedir tags of mandb. Those files are used + for whatis(1) as well as for apropos(1). + +------------------------------------------------------------------- +Wed Jun 11 13:31:53 UTC 2014 - werner@suse.de + +- Do not override predictable names for openSUSE + +------------------------------------------------------------------- +Wed Jun 11 11:03:45 UTC 2014 - werner@suse.de + +- Remove systemd-detect-xendom.patch as it becomes obsolete with + upstream patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +- Add upstream patches + 0001-umount-modernizations.patch + 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch + 0003-core-allow-transient-mount-units.patch + 0004-systemd-detect-virt-only-discover-Xen-domU.patch + 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch + 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch + +------------------------------------------------------------------- +Tue Jun 10 19:58:56 UTC 2014 - rmilasan@suse.com + +- Add upstream patches + 1033-udev-really-exclude-device-mapper-from-block-device.patch + 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch + +------------------------------------------------------------------- +Tue Jun 10 15:29:49 UTC 2014 - werner@suse.de + +- Change detection of new locking scheme of fsck + +------------------------------------------------------------------- +Tue Jun 10 11:11:55 UTC 2014 - werner@suse.de + +- Change 1021-udev-re-add-persistent-net-rules.patch to use persistent + rules as a default on SLES-12 and predictable rules as a default + otherwise +- Add cflags shell function to check possible flags for the compiler + as well as for the linker + +------------------------------------------------------------------- +Mon Jun 9 08:38:33 UTC 2014 - rmilasan@suse.com + +- Add upstream patches + 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch + 1026-udevd-inotify-modernizations.patch + 1027-udev-synthesize-change-events-for-partitions-when-to.patch + 1028-udev-link-config-fix-mem-leak.patch + 1029-udev-try-first-re-reading-the-partition-table.patch + 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch + 1031-udev-make-sure-we-always-get-change-for-the-disk.patch + 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch + +------------------------------------------------------------------- +Fri Jun 6 10:24:19 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-sd-event-restore-correct-timeout-behaviour.patch + 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch + +------------------------------------------------------------------- +Thu Jun 5 13:29:20 UTC 2014 - werner@suse.de + +- Add upstream patch 0001-hwdb-fix-case-sensitive-match.patch + +------------------------------------------------------------------- +Thu Jun 5 13:23:24 UTC 2014 - werner@suse.de + +- Add dynamic detection of util-linux version to be able to + disable the fsck option -l for version less than 2.25.0 + +------------------------------------------------------------------- +Thu Jun 5 08:06:02 UTC 2014 - werner@suse.de + +- Add changes from Cristian Rodríguez: + * The patches + delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch and + ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch + indeed mention unit files which do not exist anymore. +- Make sure that systemd-ask-password-wall.service has a tty as + it is not sure that a tty1 exists +- Avoid broken firmware loading on newer distributions as 13.1 + +------------------------------------------------------------------- +Thu Jun 5 07:24:35 UTC 2014 - werner@suse.de + +- Correct version check for the tcp-devel drop +- Use correct permissions for /var/log/journal +- Use ACLs for /var/log/journal as described in man:systemd-journald.service(8) + +------------------------------------------------------------------- +Thu Jun 5 02:33:48 UTC 2014 - crrodriguez@opensuse.org + +- Correct the libseccomp distribution version test must be >= 13.1 +- In order to use unit directive AppArmorProfile= libapparmor-devel + must be present in buildRequires. + +------------------------------------------------------------------- +Tue Jun 3 16:31:44 UTC 2014 - sndirsch@suse.com + +- apply-ACL-for-nvidia-uvm-device-node.patch: set ACL on nvidia-uvm + device (bnc#879767). + +------------------------------------------------------------------- +Tue Jun 3 15:56:01 UTC 2014 - werner@suse.de + +- Add changes from Cristian Rodríguez: + * fix keep-crypt-password-prompt.patch which floods the system + logs with bogus opendir failures, still the wrong thing to do however. + * Use %find_lang to collect locale files + * systemd-no-libattr.patch: systemd does not require libattr + but just sys/xattr.h, therefore drop the dependency. + (from upstream) + * Again, drop tcp-devel from buildRequires, this time it is not a + SUSE specific feature removal, tcpd supportdisappeared in systemd + 212 and we shouldn't keep it around. +- Add patch 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch + that is rename systemd-no-libattr.patch to git format +- Drop tcp-devel only for *next* openSUSE and not for SLES-12 nor + for openSUSE 13.1 + +------------------------------------------------------------------- +Tue Jun 3 14:23:40 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-virt-rework-container-detection-logic.patch + 0002-fsck-include-device-name-in-the-message-about-missin.patch + 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch + 0004-util-ignore_file-should-not-allow-files-ending-with.patch + 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +- Add upstream patches to update keyboard data base + 0007-keyboard-add-Plantronics-.Audio-mute-button.patch +- Add upstream patches for udev + 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch + 1024-udev-always-close-lock-file-descriptor.patch + +------------------------------------------------------------------- +Tue Jun 3 12:55:53 UTC 2014 - rmilasan@suse.com + +- Fix enabling predictable rules when using net.ifnames=1. + update: 1021-udev-re-add-persistent-net-rules.patch + +------------------------------------------------------------------- +Fri May 30 07:35:07 UTC 2014 - rmilasan@suse.com + +- Re-add persistent rules as a default and make predictable rules as + fallback (bnc#880732). + add: 1021-udev-re-add-persistent-net-rules.patch +- udev: remove seqnum API and all assumptions about seqnums + add: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + ------------------------------------------------------------------- Tue May 27 07:23:47 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index f7024fae..55ff9a7d 100644 --- a/systemd.spec +++ b/systemd.spec @@ -24,6 +24,12 @@ %bcond_without compat_libs %bcond_with networkd %bcond_with python +%ifarch %{ix86} x86_64 aarch64 +%define has_efi 1 +%else +%define has_efi 0 +%endif +%bcond_with udevsettle Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -33,6 +39,7 @@ Summary: A System and Session Manager License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: acl BuildRequires: audit-devel %if %{with compat_libs} # See gold_archs in binutils.spec @@ -54,7 +61,6 @@ BuildRequires: gtk-doc %endif BuildRequires: intltool BuildRequires: libacl-devel -BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libkmod-devel BuildRequires: libsepol-devel @@ -67,7 +73,9 @@ BuildRequires: pam-devel %if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros %endif +%if 0%{?suse_version} <= 1315 BuildRequires: tcpd-devel +%endif BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 %if ! 0%{?bootstrap} @@ -93,11 +101,14 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif -%if 0%{?suse_version} > 1310 +%if 0%{?suse_version} >= 1310 %ifarch %ix86 x86_64 x32 %arm BuildRequires: pkgconfig(libseccomp) %endif %endif +%if ! 0%{?bootstrap} +BuildRequires: libapparmor-devel +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?suse_version} > 1310 @@ -120,6 +131,7 @@ Requires: kmod >= 14 %else Requires: kmod >= 15 %endif +Requires: netcfg Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -130,12 +142,21 @@ Requires(post): findutils %if ! 0%{?bootstrap} Requires(post): pam-config %endif +Requires(pre): /usr/bin/getent +Requires(pre): /usr/sbin/groupadd +Requires(post): /usr/bin/awk +Requires(post): /usr/bin/getent +Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz +%if ! 0%{?bootstrap} Source1: systemd-rpmlintrc +%else +Source1: systemd-mini-rpmlintrc +%endif Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf @@ -163,16 +184,15 @@ Patch6: insserv-generator.patch Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch -Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch -Patch14: ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch Patch18: fix-owner-of-var-log-btmp.patch -# PATCH-FIX-SUSE Avoid error message about not existing getty@3270 file -Patch19: getty-generator-with-serial-3270-tty.patch +# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file +Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -184,6 +204,8 @@ Patch21: allow-multiple-sulogin-to-be-started.patch Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch +# PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device +Patch28: apply-ACL-for-nvidia-uvm-device-node.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. @@ -220,8 +242,8 @@ Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -# PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com -Patch114: 0001-systemd-empty-sigmask-on-reexec.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com @@ -376,8 +398,8 @@ Patch193: portmap-wants-rpcbind-socket.patch Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch # PATCH-FIX-USTREAM added at 2014/03/14 Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -# PATCH-FIX-SUSE Detect XEN dom0 as well as domU -Patch196: systemd-detect-xendom.patch +# PATCH-FIX-SUSE Do not clean the data base files of the manual pages +Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap @@ -472,40 +494,116 @@ Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch # PATCH-FIX-UPSTREAM added at 2014/05/20 Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch -# PATCHFIX-UPSTREAM added at 2014/05/20 +# PATCH-FIX-UPSTREAM added at 2014/05/20 Patch245: 0007-logind-fix-Display-property-of-user-objects.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch246: 0001-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch247: 0002-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch249: 0004-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch250: 0005-hwdb-update.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch252: 0002-journal-properly-detect-language-specified-in-line.patch -# PATCHFIX-UPSTREAM added at 2014/05/21 +# PATCH-FIX-UPSTREAM added at 2014/05/21 Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch -# PATCHFIX-UPSTREAM added at 2014/05/27 +# PATCH-FIX-UPSTREAM added at 2014/05/27 Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch -# PATCHFIX-UPSTREAM added at 2014/05/27 +# PATCH-FIX-UPSTREAM added at 2014/05/27 Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch262: 0001-virt-rework-container-detection-logic.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +# PATCH-FIX-UPSTREAM added at 2014/06/05 +Patch269: 0001-hwdb-fix-case-sensitive-match.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch272: 0001-umount-modernizations.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch274: 0003-core-allow-transient-mount-units.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU +Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch278: 0001-core-fix-invalid-free-in-killall.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch +# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438) +Patch280: 0001-detect-s390-virt.patch +# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available +Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch284: 0005-po-add-Greek-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch286: 0007-po-add-German-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch295: 0005-man-fix-path-in-crypttab-5.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch296: 0001-units-order-network-online.target-after-network.targ.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch297: 0001-core-use-correct-format-string-for-UIDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch # UDEV PATCHES # ============ @@ -551,8 +649,48 @@ Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch # PATCH-FIX-UPSTREAM added at 2014/05/20 Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch -# PATCHFIX-UPSTREAM added at 2014/05/26 +# PATCH-FIX-UPSTREAM added at 2014/05/26 Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch +# PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch +Patch1021: 1021-udev-re-add-persistent-net-rules.patch +# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1024: 1024-udev-always-close-lock-file-descriptor.patch +# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch +Patch1026: 1026-udevd-inotify-modernizations.patch +# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch +Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch +# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch +Patch1028: 1028-udev-link-config-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch +Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch +# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch +Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch +# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +# PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch +Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch +# PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +# PATCH-FIX-SUSE See bnc#882714 comment #51 +Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch +# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch +Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch +# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +# PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) +Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -608,12 +746,19 @@ Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html -PreReq: /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq +PreReq: /bin/rm +PreReq: %insserv_prereq +PreReq: %fillup_prereq +PreReq: /usr/bin/sg_inq +Requires(pre): /usr/bin/stat +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/bin/getent Requires(post): lib%{udevpkgname}%{udev_major} Requires(post): sed -Requires(post): systemd +Requires(post): /usr/bin/systemctl %if %{defined regenerate_initrd_post} Requires(post): coreutils +Requires(post): /usr/bin/stat Requires(postun): coreutils Requires(posttrans): suse-module-tools Requires(posttrans): /sbin/mkinitrd @@ -715,6 +860,11 @@ License: LGPL-2.1+ Group: System/Base Provides: syslog Provides: sysvinit(syslog) +Requires(pre): /usr/bin/getent +Requires(pre): /usr/sbin/groupadd +Requires(post): /usr/bin/getent +Requires(post): /usr/bin/setfacl +Requires(post): /usr/bin/systemctl Conflicts: otherproviders(syslog) %description logger @@ -781,15 +931,13 @@ cp %{SOURCE7} m4/ %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch11 -p1 %patch12 -p1 -%patch13 -p1 -%patch14 -p1 +%patch13 -p0 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 -%patch19 -p1 +%patch19 -p0 %patch20 -p1 %patch21 -p1 %patch22 -p1 @@ -801,6 +949,7 @@ cp %{SOURCE7} m4/ # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 +%patch28 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 @@ -895,8 +1044,8 @@ cp %{SOURCE7} m4/ %patch192 -p1 %patch193 -p1 %patch194 -p0 -%patch195 -p0 %patch196 -p1 +%patch195 -p0 %patch197 -p1 %patch198 -p1 %patch199 -p0 @@ -961,6 +1110,44 @@ cp %{SOURCE7} m4/ %patch259 -p0 %patch260 -p0 %patch261 -p0 +%patch262 -p0 +%patch263 -p0 +%patch264 -p0 +%patch265 -p0 +%patch266 -p0 +%patch267 -p0 +%patch268 -p0 +%patch269 -p0 +%patch270 -p0 +%patch271 -p0 +%patch272 -p0 +%patch273 -p0 +%patch274 -p0 +%patch275 -p0 +%patch276 -p0 +%patch277 -p0 +%patch278 -p0 +%patch279 -p0 +%patch280 -p1 +%patch281 -p1 +%patch282 -p0 +%patch283 -p0 +%patch284 -p0 +%patch285 -p0 +%patch286 -p0 +%patch287 -p0 +%patch288 -p0 +%patch289 -p0 +%patch290 -p0 +%patch291 -p0 +%patch292 -p0 +%patch293 -p0 +%patch294 -p0 +%patch295 -p0 +%patch296 -p0 +%patch297 -p0 +%patch298 -p0 +%patch299 -p0 # udev patches %patch1001 -p1 @@ -984,15 +1171,111 @@ cp %{SOURCE7} m4/ %patch1018 -p0 %patch1019 -p0 %patch1020 -p0 +%patch1021 -p1 +%if 0%{?suse_version} > 1310 +%if %{with udevsettle} +%patch1022 -p1 +%endif +%endif +%patch1023 -p0 +%patch1024 -p0 +%patch1025 -p1 +%patch1026 -p1 +%patch1027 -p1 +%patch1028 -p1 +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%patch1035 -p1 +%patch1036 -p1 +%patch1037 -p1 +%patch1038 -p0 +%if 0%{?suse_version} > 1310 +%if %{with udevsettle} +%patch1039 -p0 +%endif +%endif +%patch1040 -p1 # ensure generate files are removed rm -f units/emergency.service +# disable "-l" option for fsck if it does not support new locking scheme +# compare with commit c343be283b7152554bac0c02493a4e1759c163f7 +PATH=${PATH}:/sbin:/usr/sbin +PATH_FSCK=$(type -p fsck) +if grep -q /run/fsck/%%s\\.lock $PATH_FSCK +then + echo Found new $PATH_FSCK that is allow private locking +else + echo Found old $PATH_FSCK that is disable flock for this one + sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c +fi + +%if 0%{?suse_version} <= 1310 +# +# Older versions like oS 13.1 do not distinguish between +# network.target and network-online.target +# +for f in src/core/service.c src/insserv-generator/insserv-generator.c +do + sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f +done +%endif + %build +cflags () +{ + local flag=$1; shift + local var=$1; shift + local gold + test -n "${flag}" -a -n "${var}" || return + case "${!var}" in + *${flag}*) return + esac + if type ld.gold > /dev/null 2>&1 ; then + gold=-Wl,-fuse-ld=gold + fi + set -o noclobber + case "$flag" in + -Wl,*) + if echo 'int main () { return 0; }' | \ + ${CC:-gcc} -Werror $gold $flag -o /dev/null -xc - > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + rm -f ldtest.c + ;; + *) + if ${CC:-gcc} -Werror $gold $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + if ${CXX:-g++} -Werror $gold $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then + eval $var=\${$var:+\$$var\ }$flag + fi + esac + set +o noclobber +} autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; -export V=1 +export V=e +export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" +export LDFLAGS +%if 0%{?suse_version} == 1315 + CFLAGS="$CFLAGS -DNET_IFNAMES=1" +%else + CFLAGS="$CFLAGS -DNET_IFNAMES=0" + for rules in 75-persistent-net-generator 76-net-sriov-names + do + sed -ri '/^ENV\{net.ifnames\}=="1", GOTO="[^"]*"$/{ s/=="1"/!="0"/ }' src/udev/rule_generator/${rules}.rules + done +%endif +cflags -pipe CFLAGS +cflags -Wl,-O2 LDFLAGS +cflags -Wl,--hash-size=8599 LDFLAGS # keep split-usr until all packages have moved their systemd rules to /usr %configure \ --docdir=%{_docdir}/systemd \ @@ -1019,7 +1302,12 @@ export V=1 --enable-selinux \ --enable-split-usr \ --disable-static \ +%if 0%{?suse_version} <= 1310 --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ +%endif +%if ! 0%{has_efi} + --disable-efi \ +%endif --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ @@ -1031,8 +1319,7 @@ export V=1 %if %{without networkd} --disable-networkd \ %endif - --disable-kdbus \ - CFLAGS="%{optflags}" + --disable-kdbus make %{?_smp_mflags} %if ! 0%{?bootstrap} make %{?_smp_mflags} update-man-list man @@ -1067,7 +1354,9 @@ ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif +%if 0%{?suse_version} <= 1310 ln -sf /lib/firmware %{buildroot}/usr/lib/firmware +%endif %if ! 0%{?bootstrap} install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config @@ -1135,6 +1424,12 @@ cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf # load sg module at boot time sg EOF +%if 0%{has_efi} +cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/efivars.conf +# load efivars module at boot time +efivars +EOF +%endif # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual @@ -1235,7 +1530,7 @@ do done %endif -%if 0%{suse_version} < 1310 +%if 0%{suse_version} <= 1310 cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' [Unit] Description=Fix against deadlock at shutdown @@ -1259,6 +1554,28 @@ cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants %endif +# Some files which may created by us or by the admin later on +mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d +for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ + machine-id machine-info \ + systemd/system/runlevel2.target \ + systemd/system/runlevel3.target \ + systemd/system/runlevel4.target \ + systemd/system/runlevel4.target \ + systemd/system/runlevel5.target +do + > %{buildroot}%{_sysconfdir}/$ghost +done + +# Workaround for bug #882393 +for runlevel in poweroff rescue multi-user graphical reboot +do + mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants + ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ +done + +%find_lang systemd + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1274,8 +1591,14 @@ exit 0 /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files -chgrp systemd-journal %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : -chmod g+s %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +chmod g+s %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +if read ID < /etc/machine-id > /dev/null 2>&1 ; then + chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : + chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : +fi +getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -1343,7 +1666,7 @@ elif [ ! -e /lib/udev ]; then ln -s /usr/lib/udev /lib/udev fi # Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules -/usr/sbin/groupadd -r tape 2> /dev/null || : +getent group tape >/dev/null || groupadd -r tape 2> /dev/null || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then @@ -1422,7 +1745,13 @@ fi %postun -n libgudev-1_0-0 -p /sbin/ldconfig +%pre logger +getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : +exit 0 + %post logger +getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : @@ -1460,7 +1789,6 @@ exit 0 /bin/systemd-ask-password /bin/systemctl %{_bindir}/systemd-sleep-grub -%{_bindir}/bootctl %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl @@ -1548,7 +1876,10 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif +%if 0%{has_efi} +%{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator +%endif %{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator @@ -1561,6 +1892,9 @@ exit 0 %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf +%if 0%{has_efi} +%{_libexecdir}/modules-load.d/efivars.conf +%endif %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d @@ -1594,6 +1928,18 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf +# Some files which may created by us +%dir %{_sysconfdir}/X11/xorg.conf.d +%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf +%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf +%ghost %config(noreplace) %{_sysconfdir}/locale.conf +%ghost %config(noreplace) %{_sysconfdir}/machine-id +%ghost %config(noreplace) %{_sysconfdir}/machine-info +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target +%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target + %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service @@ -1715,7 +2061,9 @@ exit 0 # keep for compatibility %ghost /lib/udev %{_bindir}/udevadm +%if 0%{?suse_version} <= 1310 %{_prefix}/lib/firmware +%endif %dir %{_prefix}/lib/udev/ %{_prefix}/lib/udev/accelerometer %{_prefix}/lib/udev/ata_id @@ -1726,6 +2074,9 @@ exit 0 %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule %{_prefix}/lib/udev/udev-generate-peristent-rule +%{_prefix}/lib/udev/net-set-sriov-names +%{_prefix}/lib/udev/rule_generator.functions +%{_prefix}/lib/udev/write_net_rules %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules @@ -1803,7 +2154,7 @@ exit 0 %files logger %defattr(-,root,root) -%dir %{_localstatedir}/log/journal +%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal %{_localstatedir}/log/README /etc/init.d/systemd-journald diff --git a/tmpfiles-do-not-clean-for-mandb-index-files.patch b/tmpfiles-do-not-clean-for-mandb-index-files.patch new file mode 100644 index 00000000..3bfd928f --- /dev/null +++ b/tmpfiles-do-not-clean-for-mandb-index-files.patch @@ -0,0 +1,22 @@ +There is no need to clean out all 30 days the index data base +files nor the cachedir tags of mandb. Those files are used +for whatis(1) as well as for apropos(1). + +--- + systemd-210/tmpfiles.d/systemd.conf | 5 +++++ + 1 file changed, 5 insertions(+) + +--- systemd-210/tmpfiles.d/systemd.conf ++++ systemd-210/tmpfiles.d/systemd.conf 2014-06-11 13:47:59.470236564 +0000 +@@ -14,6 +14,11 @@ f /var/log/wtmp 0664 root utmp - + f /var/log/btmp 0600 root root - + + d /var/cache/man - - - 30d ++# mandb uses data base file which should not be cleared ++x /var/cache/man/index.* ++x /var/cache/man/CACHEDIR.TAG ++x /var/cache/man/*/index.* ++x /var/cache/man/*/CACHEDIR.TAG + + d /run/systemd/ask-password 0755 root root - + d /run/systemd/seats 0755 root root - From 0e288fc9c52bc3a598079e2a4f527efc0bf2ec3bde51f00f03d51775c7a33616 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 12 Jul 2014 15:14:24 +0000 Subject: [PATCH 186/221] Accepting request 239780 from Base:System - Add upstream patch 0001-machine-don-t-return-uninitialized-variable.patch - Port and add upstream patch 0002-vconsole-setup-run-setfont-before-loadkeys.patch - Rename 0001-udev-net_setup_link-add-a-bit-more-logging.patch to 1048-udev-net_setup_link-add-a-bit-more-logging.patch - Port and add upstream patches 0001-udev-net_setup_link-add-a-bit-more-logging.patch 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch 0002-namespace-fix-uninitialized-memory-access.patch - Add upstream patches 0001-architecture-Add-tilegx.patch 0002-architecture-Add-cris.patch 0003-arch-add-crisv32-to-uname-check.patch 0004-architecture-remove-cris-from-uname-list.patch - Add upstream patches 0006-hwdb-update.patch 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - Add upstream patches 0001-parse_uid-return-ENXIO-for-1-uids.patch 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch 0003-localed-consider-an-unset-model-as-a-wildcard.patch 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch OBS-URL: https://build.opensuse.org/request/show/239780 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=191 --- 0001-architecture-Add-tilegx.patch | 56 + ...core-close-socket-fds-asynchronously.patch | 12 +- ...-don-t-return-uninitialized-variable.patch | 26 + ...-might-fail-due-to-OOM-protect-again.patch | 26 + 0001-parse_uid-return-ENXIO-for-1-uids.patch | 45 + 0002-architecture-Add-cris.patch | 55 + ...-MaxFileSec-really-default-to-1month.patch | 30 + ...pace-fix-uninitialized-memory-access.patch | 28 + ...ping-strings-don-t-allow-smuggling-i.patch | 74 + ...le-setup-run-setfont-before-loadkeys.patch | 166 + 0003-arch-add-crisv32-to-uname-check.patch | 24 + ...onsider-an-unset-model-as-a-wildcard.patch | 39 + ...ure-tmp-var-tmp-and-dev-are-writable.patch | 34 + ...useManualStart-from-units-which-are-.patch | 65 + ...itecture-remove-cris-from-uname-list.patch | 27 + ...vent-loop-terminates-explicitly-clos.patch | 27 + ...idering-UID-0xFFFF-and-0xFFFFFFFF-va.patch | 31 + ...s-close-a-bus-that-failed-to-connect.patch | 28 + ...n_by_handle_at-and-others-via-seccom.patch | 94 + 0006-hwdb-update.patch | 4392 +++++++++++++++++ ...o-automatic-cleanup-in-XDG_RUNTIME_D.patch | 26 + ...base-of-Bluetooth-company-identifier.patch | 49 + ...skip-mounting-tmp-if-it-is-a-symlink.patch | 26 + ...-udev_queue_get_queue_is_empty-logic.patch | 25 + ...ovide-file-descriptor-to-watch-busy-.patch | 248 + ...tch-entire-directory-to-allow-the-re.patch | 40 + 1044-rules-update-qemu-hid-rules.patch | 45 + ...-t-enable-usb-pm-for-Avocent-devices.patch | 29 + ...licated-rules-with-layer3-interfaces.patch | 16 + ...ink-builtin-should-print-the-reason-.patch | 61 + ...et_setup_link-add-a-bit-more-logging.patch | 39 + systemd-mini.changes | 94 + systemd-mini.spec | 98 +- systemd.changes | 94 + systemd.spec | 98 +- 35 files changed, 6252 insertions(+), 15 deletions(-) create mode 100644 0001-architecture-Add-tilegx.patch create mode 100644 0001-machine-don-t-return-uninitialized-variable.patch create mode 100644 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch create mode 100644 0001-parse_uid-return-ENXIO-for-1-uids.patch create mode 100644 0002-architecture-Add-cris.patch create mode 100644 0002-journald-make-MaxFileSec-really-default-to-1month.patch create mode 100644 0002-namespace-fix-uninitialized-memory-access.patch create mode 100644 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch create mode 100644 0002-vconsole-setup-run-setfont-before-loadkeys.patch create mode 100644 0003-arch-add-crisv32-to-uname-check.patch create mode 100644 0003-localed-consider-an-unset-model-as-a-wildcard.patch create mode 100644 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch create mode 100644 0003-units-remove-RefuseManualStart-from-units-which-are-.patch create mode 100644 0004-architecture-remove-cris-from-uname-list.patch create mode 100644 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch create mode 100644 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch create mode 100644 0005-bus-close-a-bus-that-failed-to-connect.patch create mode 100644 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch create mode 100644 0006-hwdb-update.patch create mode 100644 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch create mode 100644 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch create mode 100644 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch create mode 100644 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch create mode 100644 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch create mode 100644 1044-rules-update-qemu-hid-rules.patch create mode 100644 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch create mode 100644 1046-fix-duplicated-rules-with-layer3-interfaces.patch create mode 100644 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch create mode 100644 1048-udev-net_setup_link-add-a-bit-more-logging.patch diff --git a/0001-architecture-Add-tilegx.patch b/0001-architecture-Add-tilegx.patch new file mode 100644 index 00000000..277587c3 --- /dev/null +++ b/0001-architecture-Add-tilegx.patch @@ -0,0 +1,56 @@ +From 46eea341c36f0caf0bdd5b2274a1ef7cb4e83e97 Mon Sep 17 00:00:00 2001 +From: Henrik Grindal Bakken +Date: Thu, 27 Feb 2014 21:19:13 +0100 +Subject: [PATCH] architecture: Add tilegx + +Add Tilera's TILE-GX processor family support. +--- + src/shared/architecture.c | 3 +++ + src/shared/architecture.h | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index ceba492..fcdb3d5 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -112,6 +112,8 @@ Architecture uname_architecture(void) { + { "sh", ARCHITECTURE_SH }, + #elif defined(__m68k__) + { "m68k", ARCHITECTURE_M68K }, ++#elif defined(__tilegx__) ++ { "tilegx", ARCHITECTURE_TILEGX }, + #else + #error "Please register your architecture here!" + #endif +@@ -158,6 +160,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { + [ARCHITECTURE_SH] = "sh", + [ARCHITECTURE_SH64] = "sh64", + [ARCHITECTURE_M68K] = "m68k", ++ [ARCHITECTURE_TILEGX] = "tilegx", + }; + + DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); +diff --git src/shared/architecture.h src/shared/architecture.h +index 3183645..e589a91 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -47,6 +47,7 @@ typedef enum Architecture { + ARCHITECTURE_SH, + ARCHITECTURE_SH64, + ARCHITECTURE_M68K, ++ ARCHITECTURE_TILEGX, + _ARCHITECTURE_MAX, + _ARCHITECTURE_INVALID = -1 + } Architecture; +@@ -107,6 +108,8 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_SH + #elif defined(__m68k__) + # define native_architecture() ARCHITECTURE_M68K ++#elif defined(__tilegx__) ++# define native_architecture() ARCHITECTURE_TILEGX + #else + #error "Please register your architecture here!" + #endif +-- +1.7.9.2 + diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch index 70eebd3c..b94b3802 100644 --- a/0001-core-close-socket-fds-asynchronously.patch +++ b/0001-core-close-socket-fds-asynchronously.patch @@ -5,9 +5,9 @@ Subject: [PATCH] core: close socket fds asynchronously http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html --- - src/core/async.c | 22 ++++++++++++++++++++++ + src/core/async.c | 24 ++++++++++++++++++++++++ src/core/service.c | 5 +++-- - 2 files changed, 25 insertions(+), 2 deletions(-) + 2 files changed, 27 insertions(+), 2 deletions(-) --- src/core/service.c +++ src/core/service.c 2014-05-16 11:41:50.150735247 +0000 @@ -47,13 +47,15 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html int asynchronous_job(void* (*func)(void *p), void *arg) { pthread_attr_t a; -@@ -70,3 +71,24 @@ int asynchronous_sync(void) { +@@ -70,3 +71,26 @@ int asynchronous_sync(void) { return asynchronous_job(sync_thread, NULL); } + +static void *close_thread(void *p) { -+ close_nointr_nofail(PTR_TO_INT(p)); ++ int fd = PTR_TO_INT(p); ++ if (fd >= 0) ++ close_nointr_nofail(fd); + return NULL; +} + @@ -67,7 +69,7 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html + * far away as we can. */ + + r = asynchronous_job(close_thread, INT_TO_PTR(fd)); -+ if (r < 0) ++ if (r < 0 && fd >= 0) + close_nointr_nofail(fd); + + return -1; diff --git a/0001-machine-don-t-return-uninitialized-variable.patch b/0001-machine-don-t-return-uninitialized-variable.patch new file mode 100644 index 00000000..5c1bfd05 --- /dev/null +++ b/0001-machine-don-t-return-uninitialized-variable.patch @@ -0,0 +1,26 @@ +From f14aa1f1b2e4e99ee20393871b5f64f1378ed6c3 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sun, 6 Jul 2014 14:12:28 +0200 +Subject: [PATCH] machine: don't return uninitialized variable + +Repotred by Ronny Chevalier +--- + src/machine/machine.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/machine/machine.c src/machine/machine.c +index c0fa1b2..cf38e3f 100644 +--- src/machine/machine.c ++++ src/machine/machine.c +@@ -371,7 +371,7 @@ static int machine_stop_scope(Machine *m) { + free(m->scope_job); + m->scope_job = job; + +- return r; ++ return 0; + } + + int machine_stop(Machine *m) { +-- +1.7.9.2 + diff --git a/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch b/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch new file mode 100644 index 00000000..df04192f --- /dev/null +++ b/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch @@ -0,0 +1,26 @@ +Based on 1f97091d3cb0887c264176b47b0a86c269acf0b5 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 27 Jun 2014 18:34:37 +0200 +Subject: [PATCH] main: uid_to_name() might fail due to OOM, protect against + that + +--- + src/core/main.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-07-01 12:25:17.906235000 +0000 +@@ -1525,9 +1525,10 @@ int main(int argc, char *argv[]) { + log_info("Running in initial RAM disk."); + + } else { +- _cleanup_free_ char *t = uid_to_name(getuid()); +- log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", +- getuid(), t); ++ _cleanup_free_ char *t; ++ ++ t = uid_to_name(getuid()); ++ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", getuid(), strna(t)); + } + + if (arg_running_as == SYSTEMD_SYSTEM && !skip_setup) { diff --git a/0001-parse_uid-return-ENXIO-for-1-uids.patch b/0001-parse_uid-return-ENXIO-for-1-uids.patch new file mode 100644 index 00000000..bc23d1a9 --- /dev/null +++ b/0001-parse_uid-return-ENXIO-for-1-uids.patch @@ -0,0 +1,45 @@ +From f841a154efbb3162d2a732936f031ac7a6b0d4cf Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 1 Jul 2014 16:00:05 +0200 +Subject: [PATCH] parse_uid: return -ENXIO for -1 uids + +--- + src/shared/audit.c | 3 --- + src/shared/util.c | 4 ++-- + 2 files changed, 2 insertions(+), 5 deletions(-) + +diff --git src/shared/audit.c src/shared/audit.c +index 5466447..f101050 100644 +--- src/shared/audit.c ++++ src/shared/audit.c +@@ -77,9 +77,6 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) { + if (r < 0) + return r; + +- if (u == (uid_t) -1) +- return -ENXIO; +- + *uid = (uid_t) u; + return 0; + } +diff --git src/shared/util.c src/shared/util.c +index e75f6c9..9b5a47a 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -282,11 +282,11 @@ int parse_uid(const char *s, uid_t* ret_uid) { + + /* Some libc APIs use (uid_t) -1 as special placeholder */ + if (uid == (uid_t) 0xFFFFFFFF) +- return -EINVAL; ++ return -ENXIO; + + /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ + if (uid == (uid_t) 0xFFFF) +- return -EINVAL; ++ return -ENXIO; + + *ret_uid = uid; + return 0; +-- +1.7.9.2 + diff --git a/0002-architecture-Add-cris.patch b/0002-architecture-Add-cris.patch new file mode 100644 index 00000000..a93d29d9 --- /dev/null +++ b/0002-architecture-Add-cris.patch @@ -0,0 +1,55 @@ +From 86bafac9540ba9e111ccba2fdf4161fe3a67cd3b Mon Sep 17 00:00:00 2001 +From: Umut Tezduyar Lindskog +Date: Tue, 4 Mar 2014 13:58:35 +0100 +Subject: [PATCH] architecture: Add cris + +--- + src/shared/architecture.c | 3 +++ + src/shared/architecture.h | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index fcdb3d5..9e0c3ef 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -114,6 +114,8 @@ Architecture uname_architecture(void) { + { "m68k", ARCHITECTURE_M68K }, + #elif defined(__tilegx__) + { "tilegx", ARCHITECTURE_TILEGX }, ++#elif defined(__cris__) ++ { "cris", ARCHITECTURE_CRIS }, + #else + #error "Please register your architecture here!" + #endif +@@ -161,6 +163,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { + [ARCHITECTURE_SH64] = "sh64", + [ARCHITECTURE_M68K] = "m68k", + [ARCHITECTURE_TILEGX] = "tilegx", ++ [ARCHITECTURE_CRIS] = "cris", + }; + + DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); +diff --git src/shared/architecture.h src/shared/architecture.h +index e589a91..20e848b 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -48,6 +48,7 @@ typedef enum Architecture { + ARCHITECTURE_SH64, + ARCHITECTURE_M68K, + ARCHITECTURE_TILEGX, ++ ARCHITECTURE_CRIS, + _ARCHITECTURE_MAX, + _ARCHITECTURE_INVALID = -1 + } Architecture; +@@ -110,6 +111,8 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_M68K + #elif defined(__tilegx__) + # define native_architecture() ARCHITECTURE_TILEGX ++#elif defined(__cris__) ++# define native_architecture() ARCHITECTURE_CRIS + #else + #error "Please register your architecture here!" + #endif +-- +1.7.9.2 + diff --git a/0002-journald-make-MaxFileSec-really-default-to-1month.patch b/0002-journald-make-MaxFileSec-really-default-to-1month.patch new file mode 100644 index 00000000..9b48fcae --- /dev/null +++ b/0002-journald-make-MaxFileSec-really-default-to-1month.patch @@ -0,0 +1,30 @@ +Based on e150e82097211f09b911c7784a89ef9efed713ca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= +Date: Thu, 26 Jun 2014 22:11:35 +0200 +Subject: [PATCH] journald: make MaxFileSec really default to 1month + +journald.conf(5) states that the default for MaxFileSec is one month, +but the code didn't respect that. +--- + src/journal/journald-server.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- src/journal/journald-server.c ++++ src/journal/journald-server.c 2014-07-01 12:28:25.506735287 +0000 +@@ -68,6 +68,7 @@ + #define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE) + #define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC) + #define DEFAULT_RATE_LIMIT_BURST 1000 ++#define DEFAULT_MAX_FILE_USEC USEC_PER_MONTH + + #define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC) + +@@ -1496,6 +1497,8 @@ int server_init(Server *s) { + + s->forward_to_syslog = true; + ++ s->max_file_usec = DEFAULT_MAX_FILE_USEC; ++ + s->max_level_store = LOG_DEBUG; + s->max_level_syslog = LOG_DEBUG; + s->max_level_kmsg = LOG_NOTICE; diff --git a/0002-namespace-fix-uninitialized-memory-access.patch b/0002-namespace-fix-uninitialized-memory-access.patch new file mode 100644 index 00000000..bb6ea8ea --- /dev/null +++ b/0002-namespace-fix-uninitialized-memory-access.patch @@ -0,0 +1,28 @@ +Based on 002b226843e77630128da580225f9c3ef8474db2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 16:27:53 +0200 +Subject: [PATCH] namespace: fix uninitialized memory access + +--- + src/core/namespace.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- src/core/namespace.c ++++ src/core/namespace.c 2014-07-04 00:00:00.000000000 +0000 +@@ -68,6 +68,7 @@ static int append_mounts(BindMount **p, + STRV_FOREACH(i, strv) { + + (*p)->ignore = false; ++ (*p)->done = false; + + if ((mode == INACCESSIBLE || mode == READONLY) && (*i)[0] == '-') { + (*p)->ignore = true; +@@ -298,7 +299,7 @@ int setup_namespace( + private_dev; + + if (n > 0) { +- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); ++ m = mounts = (BindMount *) alloca0(n * sizeof(BindMount)); + r = append_mounts(&m, read_write_dirs, READWRITE); + if (r < 0) + return r; diff --git a/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch b/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch new file mode 100644 index 00000000..b202ce37 --- /dev/null +++ b/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch @@ -0,0 +1,74 @@ +Based on e0a33e7ba619eb44f732aaf23cb249fa43d0ce8d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Jul 2014 13:42:25 +0200 +Subject: [PATCH] util: when unescaping strings, don't allow smuggling in of + additional NUL bytes + +Better safe than sorry. +--- + src/shared/util.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git src/shared/util.c src/shared/util.c +index ceafa01..4ad3f20 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1256,7 +1256,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre + a = unhexchar(f[1]); + b = unhexchar(f[2]); + +- if (a < 0 || b < 0) { ++ if (a < 0 || b < 0 || (a == 0 && b == 0)) { + /* Invalid escape code, let's take it literal then */ + *(t++) = '\\'; + *(t++) = 'x'; +@@ -1283,7 +1283,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre + b = unoctchar(f[1]); + c = unoctchar(f[2]); + +- if (a < 0 || b < 0 || c < 0) { ++ if (a < 0 || b < 0 || c < 0 || (a == 0 && b == 0 && c == 0)) { + /* Invalid escape code, let's take it literal then */ + *(t++) = '\\'; + *(t++) = f[0]; +@@ -1566,8 +1566,7 @@ int chvt(int vt) { + + int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + struct termios old_termios, new_termios; +- char c; +- char line[LINE_MAX]; ++ char c, line[LINE_MAX]; + + assert(f); + assert(ret); +@@ -1604,9 +1603,10 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + } + } + +- if (t != (usec_t) -1) ++ if (t != (usec_t) -1) { + if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0) + return -ETIMEDOUT; ++ } + + if (!fgets(line, sizeof(line), f)) + return -EIO; +@@ -1624,6 +1624,7 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + } + + int ask(char *ret, const char *replies, const char *text, ...) { ++ int r; + + assert(ret); + assert(replies); +@@ -1632,7 +1633,6 @@ int ask(char *ret, const char *replies, const char *text, ...) { + for (;;) { + va_list ap; + char c; +- int r; + bool need_nl = true; + + if (on_tty()) +-- +1.7.9.2 + diff --git a/0002-vconsole-setup-run-setfont-before-loadkeys.patch b/0002-vconsole-setup-run-setfont-before-loadkeys.patch new file mode 100644 index 00000000..dab9f876 --- /dev/null +++ b/0002-vconsole-setup-run-setfont-before-loadkeys.patch @@ -0,0 +1,166 @@ +Based on abee28c56d523e55751b0c007d0bf812cc285c00 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 1 Jul 2014 22:20:11 -0400 +Subject: [PATCH] vconsole-setup: run setfont before loadkeys + +https://bugs.freedesktop.org/show_bug.cgi?id=80685 + +For SUSE please note that this had been ported on top of the patches + * handle-disable_caplock-and-compose_table-and-kbd_rate.patch + * handle-numlock-value-in-etc-sysconfig-keyboard.patch +that is that now set_kbd_rate() will be called first before font_load(). +Then font_load() is followed by load_compose_table() and afterwards as +in the original commit the keymap_load() follows. + +--- + src/vconsole/vconsole-setup.c | 93 +++++++++++++++++++++--------------------- + 1 file changed, 47 insertions(+), 46 deletions(-) + +--- src/vconsole/vconsole-setup.c ++++ src/vconsole/vconsole-setup.c 2014-07-07 12:30:27.390235226 +0000 +@@ -340,23 +340,20 @@ static int set_kbd_rate(const char *vc, + + int main(int argc, char **argv) { + const char *vc; +- char *vc_keymap = NULL; +- char *vc_keymap_toggle = NULL; +- char *vc_font = NULL; +- char *vc_font_map = NULL; +- char *vc_font_unimap = NULL; ++ _cleanup_free_ char ++ *vc_keymap = NULL, *vc_keymap_toggle = NULL, ++ *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; ++ _cleanup_close_ int fd = -1; + #ifdef HAVE_SYSV_COMPAT +- char *vc_kbd_delay = NULL; +- char *vc_kbd_rate = NULL; +- char *vc_kbd_disable_caps_lock = NULL; +- char *vc_kbd_numlock = NULL; +- char *vc_compose_table = NULL; ++ _cleanup_free_ char ++ *vc_kbd_numlock = NULL, *vc_kbd_delay = NULL, ++ *vc_kbd_rate = NULL, * vc_kbd_disable_caps_lock = NULL, ++ *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; ++ bool numlock = false; + #endif +- int fd = -1; + bool utf8; + bool disable_capslock = false; +- bool numlock = false; + pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -377,12 +374,12 @@ int main(int argc, char **argv) { + fd = open_terminal(vc, O_RDWR|O_CLOEXEC); + if (fd < 0) { + log_error("Failed to open %s: %m", vc); +- goto finish; ++ return EXIT_FAILURE; + } + + if (!is_vconsole(fd)) { + log_error("Device %s is not a virtual console.", vc); +- goto finish; ++ return EXIT_FAILURE; + } + + utf8 = is_locale_utf8(); +@@ -464,61 +461,65 @@ int main(int argc, char **argv) { + } else + #endif + numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); +- + #endif + } + ++#ifdef HAVE_SYSV_COMPAT ++finish: ++ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); ++ if (r < 0) { ++ log_error("Failed to start /bin/kbdrate: %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } ++#endif ++ + if (utf8) + enable_utf8(fd); + else + disable_utf8(fd); + +- r = EXIT_FAILURE; ++ r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } ++ ++ if (font_pid > 0) ++ wait_for_terminate_and_warn(KBD_SETFONT, font_pid); + +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && + #ifdef HAVE_SYSV_COMPAT +- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && +- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && ++ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } ++ ++ if (compose_table_pid > 0) ++ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); + #endif +- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) +- r = EXIT_SUCCESS; + +-finish: ++ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } ++ + if (keymap_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ ++#ifdef HAVE_SYSV_COMPAT + if (numlock) + touch("/run/numlock-on"); + else + unlink("/run/numlock-on"); + +-#ifdef HAVE_SYSV_COMPAT +- if (compose_table_pid > 0) +- wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); +- + if (kbd_rate_pid > 0) + wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); + #endif + +- if (font_pid > 0) { +- wait_for_terminate_and_warn(KBD_SETFONT, font_pid); +- if (font_copy) +- font_copy_to_all_vcs(fd); +- } +- +- free(vc_keymap); +- free(vc_font); +- free(vc_font_map); +- free(vc_font_unimap); +- free(vc_kbd_numlock); +-#ifdef HAVE_SYSV_COMPAT +- free(vc_kbd_delay); +- free(vc_kbd_rate); +- free(vc_kbd_disable_caps_lock); +- free(vc_compose_table); +-#endif +- +- if (fd >= 0) +- close_nointr_nofail(fd); ++ /* Only copy the font when we started setfont successfully */ ++ if (font_copy && font_pid > 0) ++ font_copy_to_all_vcs(fd); + + return r; + } diff --git a/0003-arch-add-crisv32-to-uname-check.patch b/0003-arch-add-crisv32-to-uname-check.patch new file mode 100644 index 00000000..c8a9e7f3 --- /dev/null +++ b/0003-arch-add-crisv32-to-uname-check.patch @@ -0,0 +1,24 @@ +From 9b3a0ba3e9e28382a1072bf0e2c07a3661432743 Mon Sep 17 00:00:00 2001 +From: Umut Tezduyar Lindskog +Date: Thu, 3 Jul 2014 09:54:45 +0200 +Subject: [PATCH] arch: add crisv32 to uname check + +--- + src/shared/architecture.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index 9e0c3ef..7dd049a 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -116,6 +116,7 @@ Architecture uname_architecture(void) { + { "tilegx", ARCHITECTURE_TILEGX }, + #elif defined(__cris__) + { "cris", ARCHITECTURE_CRIS }, ++ { "crisv32", ARCHITECTURE_CRIS }, + #else + #error "Please register your architecture here!" + #endif +-- +1.7.9.2 + diff --git a/0003-localed-consider-an-unset-model-as-a-wildcard.patch b/0003-localed-consider-an-unset-model-as-a-wildcard.patch new file mode 100644 index 00000000..3fbdb74e --- /dev/null +++ b/0003-localed-consider-an-unset-model-as-a-wildcard.patch @@ -0,0 +1,39 @@ +From 387066c2e5bda159201896b194711965b52f34a9 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Fri, 30 May 2014 18:20:16 +0200 +Subject: [PATCH] localed: consider an unset model as a wildcard + +--- + src/locale/localed.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git src/locale/localed.c src/locale/localed.c +index e3061c8..358f6c2 100644 +--- src/locale/localed.c ++++ src/locale/localed.c +@@ -712,15 +712,16 @@ static int find_legacy_keymap(Context *c, char **new_keymap) { + } + } + +- if (matching > 0 && +- streq_ptr(c->x11_model, a[2])) { +- matching++; +- +- if (streq_ptr(c->x11_variant, a[3])) { ++ if (matching > 0) { ++ if (isempty(c->x11_model) || streq_ptr(c->x11_model, a[2])) { + matching++; + +- if (streq_ptr(c->x11_options, a[4])) ++ if (streq_ptr(c->x11_variant, a[3])) { + matching++; ++ ++ if (streq_ptr(c->x11_options, a[4])) ++ matching++; ++ } + } + } + +-- +1.7.9.2 + diff --git a/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch b/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch new file mode 100644 index 00000000..a8e538e2 --- /dev/null +++ b/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch @@ -0,0 +1,34 @@ +Based on 664064d60c36e1f62c7e9177e4c7498035467e07 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 16:27:57 +0200 +Subject: [PATCH] namespace: make sure /tmp, /var/tmp and /dev are writable in + namespaces we set up + +--- + src/core/namespace.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- src/core/namespace.c ++++ src/core/namespace.c 2014-07-04 09:55:21.582234949 +0000 +@@ -263,14 +263,17 @@ static int make_read_only(BindMount *m) + + assert(m); + +- if (m->mode != INACCESSIBLE && m->mode != READONLY) +- return 0; ++ if (IN_SET(m->mode, INACCESSIBLE, READONLY)) ++ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); ++ else if (IN_SET(m->mode, READWRITE, PRIVATE_TMP, PRIVATE_VAR_TMP, PRIVATE_DEV)) ++ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_REC, NULL); ++ else ++ r = 0; + +- r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); + if (r < 0 && !(m->ignore && errno == ENOENT)) + return -errno; + +- return 0; ++ return r; + } + + int setup_namespace( diff --git a/0003-units-remove-RefuseManualStart-from-units-which-are-.patch b/0003-units-remove-RefuseManualStart-from-units-which-are-.patch new file mode 100644 index 00000000..d9ffedbf --- /dev/null +++ b/0003-units-remove-RefuseManualStart-from-units-which-are-.patch @@ -0,0 +1,65 @@ +Based on 0fdeb6e011dfdb17636c81e2d7e0d632186359ce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 28 Jun 2014 00:06:30 -0400 +Subject: [PATCH] units: remove RefuseManualStart from units which are always + around + +In a normal running system, non-passive targets and units used during +early bootup are always started. So refusing "manual start" for them +doesn't make any difference, because a "start" command doesn't cause +any action. + +In early boot however, the administrator might want to start on +of those targets or services by hand. We shouldn't interfere with that. + +Note: in case of systemd-tmpfiles-setup.service, really running the +unit after system is up would break the system. So e.g. restarting +should not be allowed. The unit has "RefuseManualStop=yes", which +prevents restart too. +--- + units/basic.target | 1 - + units/sysinit.target | 1 - + units/systemd-tmpfiles-setup.service.in | 1 - + units/user/basic.target | 1 - + 4 files changed, 4 deletions(-) + +diff --git units/basic.target units/basic.target +index d7c68f4..b890d48 100644 +--- units/basic.target ++++ units/basic.target +@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) + Requires=sysinit.target + Wants=sockets.target timers.target paths.target slices.target + After=sysinit.target sockets.target timers.target paths.target slices.target +-RefuseManualStart=yes +diff --git units/sysinit.target units/sysinit.target +index 8f4fb8f..ec33503 100644 +--- units/sysinit.target ++++ units/sysinit.target +@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) + Conflicts=emergency.service emergency.target + Wants=local-fs.target swap.target + After=local-fs.target swap.target emergency.service emergency.target +-RefuseManualStart=yes +--- units/systemd-tmpfiles-setup.service.in ++++ units/systemd-tmpfiles-setup.service.in 2014-07-01 12:17:48.154235348 +0000 +@@ -18,7 +18,6 @@ ConditionDirectoryNotEmpty=|/lib/tmpfile + ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/etc/tmpfiles.d + ConditionDirectoryNotEmpty=|/run/tmpfiles.d +-RefuseManualStart=yes + RefuseManualStop=yes + + [Service] +diff --git units/user/basic.target units/user/basic.target +index b74d13c..afc6e93 100644 +--- units/user/basic.target ++++ units/user/basic.target +@@ -10,4 +10,3 @@ Description=Basic System + Documentation=man:systemd.special(7) + Wants=sockets.target timers.target paths.target + After=sockets.target timers.target paths.target +-RefuseManualStart=yes +-- +1.7.9.2 + diff --git a/0004-architecture-remove-cris-from-uname-list.patch b/0004-architecture-remove-cris-from-uname-list.patch new file mode 100644 index 00000000..dc1aa466 --- /dev/null +++ b/0004-architecture-remove-cris-from-uname-list.patch @@ -0,0 +1,27 @@ +From bc4bc52bc3de56405045b0437e145a7067fb085d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 22:52:44 +0200 +Subject: [PATCH] architecture: remove "cris" from uname list + +the only correct name appears to be "crisv32"... + +http://lists.freedesktop.org/archives/systemd-devel/2014-July/020899.html +--- + src/shared/architecture.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/shared/architecture.c src/shared/architecture.c +index 7dd049a..6cdca4e 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -115,7 +115,6 @@ Architecture uname_architecture(void) { + #elif defined(__tilegx__) + { "tilegx", ARCHITECTURE_TILEGX }, + #elif defined(__cris__) +- { "cris", ARCHITECTURE_CRIS }, + { "crisv32", ARCHITECTURE_CRIS }, + #else + #error "Please register your architecture here!" +-- +1.7.9.2 + diff --git a/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch b/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch new file mode 100644 index 00000000..51b46fb4 --- /dev/null +++ b/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch @@ -0,0 +1,27 @@ +From 7bb4d371af5ec6b8c50b71d2a80c2866d8134d9a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Jul 2014 17:36:47 +0200 +Subject: [PATCH] sd-bus: when an event loop terminates, explicitly close the + bus + +This makes sure we actually release the bus and all the messages it +references. +--- + src/libsystemd/sd-bus/sd-bus.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index d52afe8..eb267d4 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -2940,6 +2940,7 @@ static int quit_callback(sd_event_source *event, void *userdata) { + assert(event); + + sd_bus_flush(bus); ++ sd_bus_close(bus); + + return 1; + } +-- +1.7.9.2 + diff --git a/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch b/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch new file mode 100644 index 00000000..23ccc1d5 --- /dev/null +++ b/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch @@ -0,0 +1,31 @@ +From 306a55c86360a7ae7b2509771d5ea6ab0d166d85 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 29 Jun 2014 22:15:33 +0200 +Subject: [PATCH] util: refuse considering UID 0xFFFF and 0xFFFFFFFF valid + +--- + src/shared/util.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git src/shared/util.c src/shared/util.c +index e7ff0f8..1709bb7 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -280,6 +280,14 @@ int parse_uid(const char *s, uid_t* ret_uid) { + if ((unsigned long) uid != ul) + return -ERANGE; + ++ /* Some libc APIs use (uid_t) -1 as special placeholder */ ++ if (uid == (uid_t) 0xFFFFFFFF) ++ return -EINVAL; ++ ++ /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ ++ if (uid == (uid_t) 0xFFFF) ++ return -EINVAL; ++ + *ret_uid = uid; + return 0; + } +-- +1.7.9.2 + diff --git a/0005-bus-close-a-bus-that-failed-to-connect.patch b/0005-bus-close-a-bus-that-failed-to-connect.patch new file mode 100644 index 00000000..9633317f --- /dev/null +++ b/0005-bus-close-a-bus-that-failed-to-connect.patch @@ -0,0 +1,28 @@ +From db9bb83fa5ec72da38eb5bd0c259ef8c76a71858 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 01:19:21 +0200 +Subject: [PATCH] bus: close a bus that failed to connect + +--- + 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 c25375c..28fc19e 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -1033,8 +1033,10 @@ _public_ int sd_bus_start(sd_bus *bus) { + else + return -EINVAL; + +- if (r < 0) ++ if (r < 0) { ++ sd_bus_close(bus); + return r; ++ } + + return bus_send_hello(bus); + } +-- +1.7.9.2 + diff --git a/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch b/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch new file mode 100644 index 00000000..e5b6706d --- /dev/null +++ b/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch @@ -0,0 +1,94 @@ +From 28650077f36466d9c5ee27ef2006fae3171a2430 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 30 Jun 2014 16:22:12 +0200 +Subject: [PATCH] nspawn: block open_by_handle_at() and others via seccomp + +Let's protect ourselves against the recently reported docker security +issue. Our man page makes clear that we do not make any security +promises anyway, but well, this one is easy to mitigate, so let's do it. +While we are at it block a couple of more syscalls that are no good in +containers, too. +--- + src/nspawn/nspawn.c | 47 +++++++++++++++++++++++++++++++++++------------ + 1 file changed, 35 insertions(+), 12 deletions(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index fd61d07..656c1bf 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1864,22 +1864,25 @@ static int setup_macvlan(pid_t pid) { + return 0; + } + +-static int audit_still_doesnt_work_in_containers(void) { ++static int setup_seccomp(void) { + + #ifdef HAVE_SECCOMP ++ static const int blacklist[] = { ++ SCMP_SYS(kexec_load), ++ SCMP_SYS(open_by_handle_at), ++ SCMP_SYS(init_module), ++ SCMP_SYS(finit_module), ++ SCMP_SYS(delete_module), ++ SCMP_SYS(iopl), ++ SCMP_SYS(ioperm), ++ SCMP_SYS(swapon), ++ SCMP_SYS(swapoff), ++ }; ++ + scmp_filter_ctx seccomp; ++ unsigned i; + int r; + +- /* +- Audit is broken in containers, much of the userspace audit +- hookup will fail if running inside a container. We don't +- care and just turn off creation of audit sockets. +- +- This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail +- with EAFNOSUPPORT which audit userspace uses as indication +- that audit is disabled in the kernel. +- */ +- + seccomp = seccomp_init(SCMP_ACT_ALLOW); + if (!seccomp) + return log_oom(); +@@ -1890,6 +1893,26 @@ static int audit_still_doesnt_work_in_containers(void) { + goto finish; + } + ++ for (i = 0; i < ELEMENTSOF(blacklist); i++) { ++ r = seccomp_rule_add(seccomp, SCMP_ACT_ERRNO(EPERM), blacklist[i], 0); ++ if (r == -EFAULT) ++ continue; /* unknown syscall */ ++ if (r < 0) { ++ log_error("Failed to block syscall: %s", strerror(-r)); ++ goto finish; ++ } ++ } ++ ++ /* ++ Audit is broken in containers, much of the userspace audit ++ hookup will fail if running inside a container. We don't ++ care and just turn off creation of audit sockets. ++ ++ This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail ++ with EAFNOSUPPORT which audit userspace uses as indication ++ that audit is disabled in the kernel. ++ */ ++ + r = seccomp_rule_add( + seccomp, + SCMP_ACT_ERRNO(EAFNOSUPPORT), +@@ -3050,7 +3073,7 @@ int main(int argc, char *argv[]) { + + dev_setup(arg_directory); + +- if (audit_still_doesnt_work_in_containers() < 0) ++ if (setup_seccomp() < 0) + goto child_fail; + + if (setup_dev_console(arg_directory, console) < 0) +-- +1.7.9.2 + diff --git a/0006-hwdb-update.patch b/0006-hwdb-update.patch new file mode 100644 index 00000000..080bd96c --- /dev/null +++ b/0006-hwdb-update.patch @@ -0,0 +1,4392 @@ +From 98be1a746ac0d7a17e69ccb05936a4d6b3223e97 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 3 Jul 2014 16:28:40 +0200 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 543 +++++++++++++++++++-- + hwdb/20-pci-classes.hwdb | 27 ++ + hwdb/20-pci-vendor-model.hwdb | 1071 +++++++++++++++++++++++++++-------------- + hwdb/20-usb-classes.hwdb | 3 + + hwdb/20-usb-vendor-model.hwdb | 102 +++- + 5 files changed, 1362 insertions(+), 384 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 6188bfc..97f1e6b 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -6446,7 +6446,7 @@ OUI:0050C2871* + ID_OUI_FROM_DATABASE=R-S-I Elektrotechnik GmbH & Co. KG + + OUI:0050C2872* +- ID_OUI_FROM_DATABASE=Oliotalo - Objecthouse Oy ++ ID_OUI_FROM_DATABASE=Oliotalo Oy + + OUI:0050C2873* + ID_OUI_FROM_DATABASE=XRONET Corporation +@@ -37139,76 +37139,76 @@ OUI:001EC7* + ID_OUI_FROM_DATABASE=2Wire, Inc. + + OUI:001EC8* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Rapid Mobile (Pty) Ltd + + OUI:001EC9* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001ECA* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Nortel + + OUI:001ECB* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE="RPC "Energoautomatika" Ltd + + OUI:001ECC* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=CDVI + + OUI:001ECD* + ID_OUI_FROM_DATABASE=KYLAND Technology Co. LTD + + OUI:001ECE* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=BISA Technologies (Hong Kong) Limited + + OUI:001ECF* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=PHILIPS ELECTRONICS UK LTD + + OUI:001ED0* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Ingespace + + OUI:001ED1* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Keyprocessor B.V. + + OUI:001ED2* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Ray Shine Video Technology Inc + + OUI:001ED3* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Dot Technology Int'l Co., Ltd. + + OUI:001ED4* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Doble Engineering + + OUI:001ED5* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Tekon-Automatics + + OUI:001ED6* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Alentec & Orion AB + + OUI:001ED7* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=H-Stream Wireless, Inc. + + OUI:001ED8* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Digital United Inc. + + OUI:001ED9* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Mitsubishi Precision Co.,LTd. + + OUI:001EDA* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Wesemann Elektrotechniek B.V. + + OUI:001EDB* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Giken Trastem Co., Ltd. + + OUI:001EDC* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + + OUI:001EDD* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=WASKO S.A. + + OUI:001EDE* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=BYD COMPANY LIMITED + + OUI:001EDF* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Master Industrialization Center Kista + + OUI:001EE0* + ID_OUI_FROM_DATABASE=Urmet Domus SpA +@@ -45800,7 +45800,7 @@ OUI:0050F8* + ID_OUI_FROM_DATABASE=ENTREGA TECHNOLOGIES, INC. + + OUI:0050F9* +- ID_OUI_FROM_DATABASE=SENSORMATIC ACD ++ ID_OUI_FROM_DATABASE=Sensormatic Electronics LLC + + OUI:0050FA* + ID_OUI_FROM_DATABASE=OXTEL, LTD. +@@ -45829,6 +45829,9 @@ OUI:0054AF* + OUI:005907* + ID_OUI_FROM_DATABASE=LenovoEMC Products USA, LLC + ++OUI:005A39* ++ ID_OUI_FROM_DATABASE=SHENZHEN FAST TECHNOLOGIES CO., LTD. ++ + OUI:005CB1* + ID_OUI_FROM_DATABASE=Gospell DIGITAL TECHNOLOGY CO., LTD + +@@ -46603,6 +46606,9 @@ OUI:0060FE* + OUI:0060FF* + ID_OUI_FROM_DATABASE=QuVis, Inc. + ++OUI:006171* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:006440* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -48238,6 +48244,9 @@ OUI:009C02* + OUI:009D8E* + ID_OUI_FROM_DATABASE=CARDIAC RECORDERS, INC. + ++OUI:009EC8* ++ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronic Products Co., Ltd. ++ + OUI:00A000* + ID_OUI_FROM_DATABASE=CENTILLION NETWORKS, INC. + +@@ -50740,6 +50749,9 @@ OUI:00D38D* + OUI:00D632* + ID_OUI_FROM_DATABASE=GE Energy + ++OUI:00D9D1* ++ ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. ++ + OUI:00DB1E* + ID_OUI_FROM_DATABASE=Albedo Telecom SL + +@@ -51778,6 +51790,9 @@ OUI:0462D7* + OUI:0463E0* + ID_OUI_FROM_DATABASE=Nome Oy + ++OUI:046785* ++ ID_OUI_FROM_DATABASE=scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH ++ + OUI:046D42* + ID_OUI_FROM_DATABASE=Bryston Ltd. + +@@ -51901,6 +51916,9 @@ OUI:04DB8A* + OUI:04DD4C* + ID_OUI_FROM_DATABASE=Velocytech + ++OUI:04DEDB* ++ ID_OUI_FROM_DATABASE=Rockport Networks Inc ++ + OUI:04DF69* + ID_OUI_FROM_DATABASE=Car Connectivity Consortium + +@@ -52498,6 +52516,9 @@ OUI:083F76* + OUI:084027* + ID_OUI_FROM_DATABASE=Gridstore Inc. + ++OUI:084656* ++ ID_OUI_FROM_DATABASE=VODALYS Ingénierie ++ + OUI:08482C* + ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. + +@@ -52966,6 +52987,9 @@ OUI:0CCDD3* + OUI:0CCDFB* + ID_OUI_FROM_DATABASE=EDIC Systems Inc. + ++OUI:0CCFD1* ++ ID_OUI_FROM_DATABASE=SPRINGWAVE Co., Ltd ++ + OUI:0CD292* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -53089,6 +53113,9 @@ OUI:1010B6* + OUI:101212* + ID_OUI_FROM_DATABASE=Vivo International Corporation Pty Ltd + ++OUI:101218* ++ ID_OUI_FROM_DATABASE=Korins Inc. ++ + OUI:101248* + ID_OUI_FROM_DATABASE=ITG, Inc. + +@@ -53128,6 +53155,9 @@ OUI:102D96* + OUI:102EAF* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:102F6B* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:103047* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53164,6 +53194,9 @@ OUI:104780* + OUI:1048B1* + ID_OUI_FROM_DATABASE=Beijing Duokan Technology Limited + ++OUI:104B46* ++ ID_OUI_FROM_DATABASE=Mitsubishi Electric Corporation ++ + OUI:104D77* + ID_OUI_FROM_DATABASE=Innovative Computer Engineering + +@@ -53242,6 +53275,9 @@ OUI:10880F* + OUI:1088CE* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + ++OUI:108A1B* ++ ID_OUI_FROM_DATABASE=RAONIX Inc. ++ + OUI:108CCF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -53458,6 +53494,9 @@ OUI:144319* + OUI:1446E4* + ID_OUI_FROM_DATABASE=AVISTEL + ++OUI:14488B* ++ ID_OUI_FROM_DATABASE=Shenzhen Doov Technology Co.,Ltd ++ + OUI:144978* + ID_OUI_FROM_DATABASE=Digital Control Incorporated + +@@ -53473,6 +53512,9 @@ OUI:145412* + OUI:145645* + ID_OUI_FROM_DATABASE=Savitech Corp. + ++OUI:1458D0* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:145A05* + ID_OUI_FROM_DATABASE=Apple + +@@ -53608,6 +53650,9 @@ OUI:14EB33* + OUI:14EDA5* + ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme + ++OUI:14EDE4* ++ ID_OUI_FROM_DATABASE=Kaiam Corporation ++ + OUI:14EE9D* + ID_OUI_FROM_DATABASE=AirNav Systems LLC + +@@ -53794,6 +53839,9 @@ OUI:1867B0* + OUI:186D99* + ID_OUI_FROM_DATABASE=Adanis Inc. + ++OUI:187117* ++ ID_OUI_FROM_DATABASE=eta plus electronic gmbh ++ + OUI:1879A2* + ID_OUI_FROM_DATABASE=GMJ ELECTRIC LIMITED + +@@ -53812,6 +53860,9 @@ OUI:1880CE* + OUI:1880F5* + ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd + ++OUI:188219* ++ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. ++ + OUI:188331* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53857,6 +53908,9 @@ OUI:189EFC* + OUI:18A905* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + ++OUI:18A958* ++ ID_OUI_FROM_DATABASE=PROVISION THAI CO., LTD. ++ + OUI:18A99B* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -54049,6 +54103,9 @@ OUI:1C43EC* + OUI:1C4593* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:1C4840* ++ ID_OUI_FROM_DATABASE=IMS Messsysteme GmbH ++ + OUI:1C48F9* + ID_OUI_FROM_DATABASE=GN Netcom A/S + +@@ -54064,6 +54121,9 @@ OUI:1C4BD6* + OUI:1C51B5* + ID_OUI_FROM_DATABASE=Techaya LTD + ++OUI:1C5216* ++ ID_OUI_FROM_DATABASE=DONGGUAN HELE ELECTRONICS CO., LTD ++ + OUI:1C52D6* + ID_OUI_FROM_DATABASE=FLAT DISPLAY TECHNOLOGY CORPORATION + +@@ -54100,6 +54160,9 @@ OUI:1C66AA* + OUI:1C69A5* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:1C6A7A* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:1C6BCA* + ID_OUI_FROM_DATABASE=Mitsunami Co., Ltd. + +@@ -54163,6 +54226,12 @@ OUI:1C973D* + OUI:1C994C* + ID_OUI_FROM_DATABASE=Murata Manufactuaring Co.,Ltd. + ++OUI:1C9C26* ++ ID_OUI_FROM_DATABASE=Zoovel Technologies ++ ++OUI:1CA2B1* ++ ID_OUI_FROM_DATABASE=ruwido austria gmbh ++ + OUI:1CA770* + ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT + +@@ -54217,6 +54286,9 @@ OUI:1CC63C* + OUI:1CD40C* + ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH + ++OUI:1CDEA7* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:1CDF0F* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -54286,6 +54358,9 @@ OUI:20107A* + OUI:201257* + ID_OUI_FROM_DATABASE=Most Lucky Trading Ltd + ++OUI:2012D5* ++ ID_OUI_FROM_DATABASE=Scientech Materials Corporation ++ + OUI:2013E0* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -54370,6 +54445,9 @@ OUI:205A00* + OUI:205B5E* + ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd + ++OUI:205CFA* ++ ID_OUI_FROM_DATABASE=Yangzhou ChangLian Network Technology Co,ltd. ++ + OUI:206432* + ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO.,LTD. + +@@ -54439,6 +54517,9 @@ OUI:20A2E7* + OUI:20A787* + ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited + ++OUI:20A99B* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:20AA25* + ID_OUI_FROM_DATABASE=IP-NET LLC + +@@ -54469,6 +54550,9 @@ OUI:20BFDB* + OUI:20C1AF* + ID_OUI_FROM_DATABASE=i Wit Digital Co., Limited + ++OUI:20C38F* ++ ID_OUI_FROM_DATABASE=Texas Instruments Inc ++ + OUI:20C60D* + ID_OUI_FROM_DATABASE=Shanghai annijie Information technology Co.,LTD + +@@ -54616,6 +54700,9 @@ OUI:2437EF* + OUI:243C20* + ID_OUI_FROM_DATABASE=Dynamode Group + ++OUI:2442BC* ++ ID_OUI_FROM_DATABASE=Alinco,incorporated ++ + OUI:244597* + ID_OUI_FROM_DATABASE=GEMUE Gebr. Mueller Apparatebau + +@@ -55027,6 +55114,9 @@ OUI:28A241* + OUI:28A574* + ID_OUI_FROM_DATABASE=Miller Electric Mfg. Co. + ++OUI:28A5EE* ++ ID_OUI_FROM_DATABASE=Shenzhen SDGI CATV Co., Ltd ++ + OUI:28AF0A* + ID_OUI_FROM_DATABASE=Sirius XM Radio Inc + +@@ -55177,6 +55267,9 @@ OUI:2C0033* + OUI:2C00F7* + ID_OUI_FROM_DATABASE=XOS + ++OUI:2C010B* ++ ID_OUI_FROM_DATABASE=NASCENT Technology, LLC - RemKon ++ + OUI:2C0623* + ID_OUI_FROM_DATABASE=Win Leader Inc. + +@@ -55192,6 +55285,9 @@ OUI:2C18AE* + OUI:2C1984* + ID_OUI_FROM_DATABASE=IDN Telecom, Inc. + ++OUI:2C1A31* ++ ID_OUI_FROM_DATABASE=Electronics Company Limited ++ + OUI:2C1EEA* + ID_OUI_FROM_DATABASE=AERODEV + +@@ -55369,6 +55465,9 @@ OUI:2C9EFC* + OUI:2CA157* + ID_OUI_FROM_DATABASE=acromate, Inc. + ++OUI:2CA30E* ++ ID_OUI_FROM_DATABASE=POWER DRAGON DEVELOPMENT LIMITED ++ + OUI:2CA780* + ID_OUI_FROM_DATABASE=True Technologies Inc. + +@@ -55540,6 +55639,9 @@ OUI:303EAD* + OUI:304174* + ID_OUI_FROM_DATABASE=ALTEC LANSING LLC + ++OUI:304225* ++ ID_OUI_FROM_DATABASE=BURG-WÄCHTER KG ++ + OUI:304449* + ID_OUI_FROM_DATABASE=PLATH GmbH + +@@ -55603,6 +55705,9 @@ OUI:306E5C* + OUI:3071B2* + ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. + ++OUI:307512* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:30766F* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -55735,6 +55840,9 @@ OUI:3400A3* + OUI:340286* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:34029B* ++ ID_OUI_FROM_DATABASE=CloudBerry Technologies Private Limited ++ + OUI:3407FB* + ID_OUI_FROM_DATABASE=Ericsson AB + +@@ -55774,6 +55882,9 @@ OUI:3423BA* + OUI:34255D* + ID_OUI_FROM_DATABASE=Shenzhen Loadcom Technology Co.,Ltd + ++OUI:3428F0* ++ ID_OUI_FROM_DATABASE=ATN International Limited ++ + OUI:3429EA* + ID_OUI_FROM_DATABASE=MCD ELECTRONICS SP. Z O.O. + +@@ -55798,6 +55909,9 @@ OUI:344B3D* + OUI:344B50* + ID_OUI_FROM_DATABASE=ZTE Corporation + ++OUI:344DF7* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:344F3F* + ID_OUI_FROM_DATABASE=IO-Power Technology Co., Ltd. + +@@ -55825,6 +55939,9 @@ OUI:345D10* + OUI:346178* + ID_OUI_FROM_DATABASE=The Boeing Company + ++OUI:346288* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:34684A* + ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. + +@@ -55939,6 +56056,9 @@ OUI:34B1F7* + OUI:34B571* + ID_OUI_FROM_DATABASE=PLDS + ++OUI:34B7FD* ++ ID_OUI_FROM_DATABASE=Guangzhou Younghead Electronic Technology Co.,Ltd ++ + OUI:34BA51* + ID_OUI_FROM_DATABASE=Se-Kure Controls, Inc. + +@@ -56047,6 +56167,9 @@ OUI:34F39B* + OUI:34F62D* + ID_OUI_FROM_DATABASE=SHARP Corporation + ++OUI:34F6D2* ++ ID_OUI_FROM_DATABASE=Panasonic Taiwan Co.,Ltd. ++ + OUI:34F968* + ID_OUI_FROM_DATABASE=ATEK Products, LLC + +@@ -56062,6 +56185,9 @@ OUI:380197* + OUI:3806B4* + ID_OUI_FROM_DATABASE=A.D.C. GmbH + ++OUI:3808FD* ++ ID_OUI_FROM_DATABASE=Silca Spa ++ + OUI:380A0A* + ID_OUI_FROM_DATABASE=Sky-City Communication and Electronics Limited Company + +@@ -56137,6 +56263,9 @@ OUI:384608* + OUI:38484C* + ID_OUI_FROM_DATABASE=Apple + ++OUI:384B76* ++ ID_OUI_FROM_DATABASE=AIRTAME ApS ++ + OUI:384FF0* + ID_OUI_FROM_DATABASE=Azurewave Technologies, Inc. + +@@ -56227,6 +56356,9 @@ OUI:38AA3C* + OUI:38B12D* + ID_OUI_FROM_DATABASE=Sonotronic Nagel GmbH + ++OUI:38B1DB* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:38B5BD* + ID_OUI_FROM_DATABASE=E.G.O. Elektro-Ger + +@@ -56302,6 +56434,9 @@ OUI:38EE9D* + OUI:38F098* + ID_OUI_FROM_DATABASE=Vapor Stone Rail Systems + ++OUI:38F33F* ++ ID_OUI_FROM_DATABASE=TATSUNO CORPORATION ++ + OUI:38F597* + ID_OUI_FROM_DATABASE=home2net GmbH + +@@ -56443,6 +56578,9 @@ OUI:3C57D5* + OUI:3C5A37* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:3C5AB4* ++ ID_OUI_FROM_DATABASE=Google ++ + OUI:3C5F01* + ID_OUI_FROM_DATABASE=Synerchip Co., Ltd. + +@@ -56803,6 +56941,9 @@ OUI:407074* + OUI:407496* + ID_OUI_FROM_DATABASE=aFUN TECHNOLOGY INC. + ++OUI:40786A* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:407875* + ID_OUI_FROM_DATABASE=IMBEL - Industria de Material Belico do Brasil + +@@ -56929,6 +57070,9 @@ OUI:40D40E* + OUI:40D559* + ID_OUI_FROM_DATABASE=MICRO S.E.R.I. + ++OUI:40E230* ++ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc. ++ + OUI:40E730* + ID_OUI_FROM_DATABASE=DEY Storage Systems, Inc. + +@@ -57145,6 +57289,9 @@ OUI:4486C1* + OUI:4487FC* + ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. + ++OUI:4488CB* ++ ID_OUI_FROM_DATABASE=Camco Technologies NV ++ + OUI:448A5B* + ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD. + +@@ -57337,6 +57484,9 @@ OUI:4851B7* + OUI:485261* + ID_OUI_FROM_DATABASE=SOREEL + ++OUI:4857DD* ++ ID_OUI_FROM_DATABASE=Facebook ++ + OUI:485929* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -57361,6 +57511,9 @@ OUI:4861A3* + OUI:486276* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:486B2C* ++ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., ++ + OUI:486B91* + ID_OUI_FROM_DATABASE=Fleetwood Group Inc. + +@@ -57391,6 +57544,9 @@ OUI:4891F6* + OUI:489BE2* + ID_OUI_FROM_DATABASE=SCI Innovations Ltd + ++OUI:489D18* ++ ID_OUI_FROM_DATABASE=Flashbay Limited ++ + OUI:489D24* + ID_OUI_FROM_DATABASE=Research In Motion + +@@ -57655,6 +57811,9 @@ OUI:4C7367* + OUI:4C73A5* + ID_OUI_FROM_DATABASE=KOVE + ++OUI:4C7403* ++ ID_OUI_FROM_DATABASE=Mundo Reader (bq) ++ + OUI:4C774F* + ID_OUI_FROM_DATABASE=Embedded Wireless Labs + +@@ -57745,6 +57904,9 @@ OUI:4CBAA3* + OUI:4CBB58* + ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. + ++OUI:4CBC42* ++ ID_OUI_FROM_DATABASE=Shenzhen Hangsheng Electronics Co.,Ltd. ++ + OUI:4CBCA5* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -57784,6 +57946,9 @@ OUI:4CE1BB* + OUI:4CE676* + ID_OUI_FROM_DATABASE=Buffalo Inc. + ++OUI:4CE933* ++ ID_OUI_FROM_DATABASE=RailComm, LLC ++ + OUI:4CEB42* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -57799,6 +57964,9 @@ OUI:4CF2BF* + OUI:4CF45B* + ID_OUI_FROM_DATABASE=Blue Clover Devices + ++OUI:4CF5A0* ++ ID_OUI_FROM_DATABASE=Scalable Network Technologies Inc ++ + OUI:4CF737* + ID_OUI_FROM_DATABASE=SamJi Electronics Co., Ltd + +@@ -57823,6 +57991,9 @@ OUI:500E6D* + OUI:5011EB* + ID_OUI_FROM_DATABASE=SilverNet Ltd + ++OUI:5014B5* ++ ID_OUI_FROM_DATABASE=Richfit Information Technology Co., Ltd ++ + OUI:5017FF* + ID_OUI_FROM_DATABASE=Cisco + +@@ -57847,6 +58018,9 @@ OUI:502690* + OUI:5027C7* + ID_OUI_FROM_DATABASE=TECHNART Co.,Ltd + ++OUI:50294D* ++ ID_OUI_FROM_DATABASE=NANJING IOT SENSOR TECHNOLOGY CO,LTD ++ + OUI:502A7E* + ID_OUI_FROM_DATABASE=Smart electronic GmbH + +@@ -57937,6 +58111,9 @@ OUI:506441* + OUI:506787* + ID_OUI_FROM_DATABASE=iTellus + ++OUI:5067AE* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:5067F0* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + +@@ -58276,6 +58453,9 @@ OUI:549B12* + OUI:549D85* + ID_OUI_FROM_DATABASE=EnerAccess inc + ++OUI:549F35* ++ ID_OUI_FROM_DATABASE=Dell Inc. ++ + OUI:54A04F* + ID_OUI_FROM_DATABASE=t-mac Technologies Ltd + +@@ -58366,6 +58546,9 @@ OUI:54F5B6* + OUI:54F666* + ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG + ++OUI:54F876* ++ ID_OUI_FROM_DATABASE=ABB AG ++ + OUI:54FA3E* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD + +@@ -58375,6 +58558,9 @@ OUI:54FB58* + OUI:54FDBF* + ID_OUI_FROM_DATABASE=Scheidt & Bachmann GmbH + ++OUI:54FFCF* ++ ID_OUI_FROM_DATABASE=Mopria Alliance ++ + OUI:580528* + ID_OUI_FROM_DATABASE=LABRIS NETWORKS + +@@ -58390,6 +58576,9 @@ OUI:5809E5* + OUI:580A20* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:58108C* ++ ID_OUI_FROM_DATABASE=Intelbras ++ + OUI:581243* + ID_OUI_FROM_DATABASE=AcSiP Technology Corp. + +@@ -58504,9 +58693,15 @@ OUI:587521* + OUI:587675* + ID_OUI_FROM_DATABASE=Beijing ECHO Technologies Co.,Ltd + ++OUI:5876C5* ++ ID_OUI_FROM_DATABASE=DIGI I'S LTD ++ + OUI:587A4D* + ID_OUI_FROM_DATABASE=Stonesoft Corporation + ++OUI:587BE9* ++ ID_OUI_FROM_DATABASE=AirPro Technology India Pvt. Ltd ++ + OUI:587E61* + ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd + +@@ -58633,6 +58828,9 @@ OUI:58EECE* + OUI:58F387* + ID_OUI_FROM_DATABASE=HCCP + ++OUI:58F39C* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:58F67B* + ID_OUI_FROM_DATABASE=Xia Men UnionCore Technology LTD. + +@@ -58810,6 +59008,12 @@ OUI:5C89D4* + OUI:5C8D4E* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C8FE0* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ ++OUI:5C93A2* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:5C95AE* + ID_OUI_FROM_DATABASE=Apple + +@@ -59011,6 +59215,9 @@ OUI:60334B* + OUI:603553* + ID_OUI_FROM_DATABASE=Buwon Technology + ++OUI:603696* ++ ID_OUI_FROM_DATABASE=The Sapling Company ++ + OUI:6036DD* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -59038,9 +59245,18 @@ OUI:604616* + OUI:6047D4* + ID_OUI_FROM_DATABASE=FORICS Electronic Technology Co., Ltd. + ++OUI:604826* ++ ID_OUI_FROM_DATABASE=Newbridge Technologies Int. Ltd. ++ + OUI:604A1C* + ID_OUI_FROM_DATABASE=SUYIN Corporation + ++OUI:6050C1* ++ ID_OUI_FROM_DATABASE=Kinetek Sports ++ ++OUI:60512C* ++ ID_OUI_FROM_DATABASE=TCT mobile limited ++ + OUI:6052D0* + ID_OUI_FROM_DATABASE=FACTS Engineering + +@@ -59125,6 +59341,9 @@ OUI:609084* + OUI:609217* + ID_OUI_FROM_DATABASE=Apple + ++OUI:6099D1* ++ ID_OUI_FROM_DATABASE=Vuzix / Lenovo ++ + OUI:609AA4* + ID_OUI_FROM_DATABASE=GVI SECURITY INC. + +@@ -59284,6 +59503,9 @@ OUI:60FEF9* + OUI:60FFDD* + ID_OUI_FROM_DATABASE=C.E. ELECTRONICS, INC + ++OUI:64002D* ++ ID_OUI_FROM_DATABASE=Powerlinq Co., LTD ++ + OUI:6400F1* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -59557,6 +59779,9 @@ OUI:64B310* + OUI:64B370* + ID_OUI_FROM_DATABASE=PowerComm Solutons LLC + ++OUI:64B473* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:64B64A* + ID_OUI_FROM_DATABASE=ViVOtech, Inc. + +@@ -59917,6 +60142,9 @@ OUI:68D247* + OUI:68D925* + ID_OUI_FROM_DATABASE=ProSys Development Services + ++OUI:68D93C* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:68DB67* + ID_OUI_FROM_DATABASE=Nantong Coship Electronics Co., Ltd + +@@ -59950,6 +60178,9 @@ OUI:68EE96* + OUI:68EFBD* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:68F06D* ++ ID_OUI_FROM_DATABASE=ALONG INDUSTRIAL CO., LIMITED ++ + OUI:68F125* + ID_OUI_FROM_DATABASE=Data Controls Inc. + +@@ -60079,6 +60310,9 @@ OUI:6C626D* + OUI:6C641A* + ID_OUI_FROM_DATABASE=Penguin Computing + ++OUI:6C6EFE* ++ ID_OUI_FROM_DATABASE=Core Logic Inc. ++ + OUI:6C6F18* + ID_OUI_FROM_DATABASE=Stereotaxis, Inc. + +@@ -60091,6 +60325,9 @@ OUI:6C709F* + OUI:6C71D9* + ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc + ++OUI:6C7660* ++ ID_OUI_FROM_DATABASE=KYOCERA Corporation ++ + OUI:6C81FE* + ID_OUI_FROM_DATABASE=Mitsuba Corporation + +@@ -60122,7 +60359,7 @@ OUI:6C92BF* + ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd. + + OUI:6C98EB* +- ID_OUI_FROM_DATABASE=Xyne GmbH ++ ID_OUI_FROM_DATABASE=Ocedo GmbH + + OUI:6C9989* + ID_OUI_FROM_DATABASE=Cisco +@@ -60187,6 +60424,9 @@ OUI:6CB7F4* + OUI:6CBEE9* + ID_OUI_FROM_DATABASE=Alcatel-Lucent-IPD + ++OUI:6CBFB5* ++ ID_OUI_FROM_DATABASE=Noon Technology Co., Ltd ++ + OUI:6CC1D2* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -60514,6 +60754,9 @@ OUI:70A8E3* + OUI:70AAB2* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:70AF25* ++ ID_OUI_FROM_DATABASE=Nishiyama Industry Co.,LTD. ++ + OUI:70B035* + ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd + +@@ -60535,6 +60778,9 @@ OUI:70B599* + OUI:70B921* + ID_OUI_FROM_DATABASE=FiberHome Telecommunication Technologies CO.,LTD + ++OUI:70BAEF* ++ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited ++ + OUI:70C6AC* + ID_OUI_FROM_DATABASE=Bosch Automotive Aftermarket + +@@ -60586,6 +60832,9 @@ OUI:70EE50* + OUI:70F176* + ID_OUI_FROM_DATABASE=Data Modul AG + ++OUI:70F196* ++ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc ++ + OUI:70F1A1* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -60796,6 +61045,9 @@ OUI:74B00C* + OUI:74B9EB* + ID_OUI_FROM_DATABASE=Fujian JinQianMao Electronic Technology Co.,Ltd + ++OUI:74BADB* ++ ID_OUI_FROM_DATABASE=Longconn Electornics(shenzhen)Co.,Ltd ++ + OUI:74BE08* + ID_OUI_FROM_DATABASE=ATEK Products, LLC + +@@ -60844,6 +61096,9 @@ OUI:74DE2B* + OUI:74E06E* + ID_OUI_FROM_DATABASE=Ergophone GmbH + ++OUI:74E14A* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:74E1B6* + ID_OUI_FROM_DATABASE=Apple + +@@ -61318,6 +61573,9 @@ OUI:7C092B* + OUI:7C0A50* + ID_OUI_FROM_DATABASE=J-MEX Inc. + ++OUI:7C0ECE* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:7C11BE* + ID_OUI_FROM_DATABASE=Apple + +@@ -61345,6 +61603,9 @@ OUI:7C2048* + OUI:7C2064* + ID_OUI_FROM_DATABASE=Alcatel Lucent IPD + ++OUI:7C2587* ++ ID_OUI_FROM_DATABASE=chaowifi.com ++ + OUI:7C2CF3* + ID_OUI_FROM_DATABASE=Secure Electrans Ltd + +@@ -61504,6 +61765,9 @@ OUI:7CAD74* + OUI:7CB03E* + ID_OUI_FROM_DATABASE=OSRAM GmbH + ++OUI:7CB177* ++ ID_OUI_FROM_DATABASE=Satelco AG ++ + OUI:7CB21B* + ID_OUI_FROM_DATABASE=Cisco SPVTG + +@@ -61774,6 +62038,9 @@ OUI:8065E9* + OUI:806629* + ID_OUI_FROM_DATABASE=Prescope Technologies CO.,LTD. + ++OUI:806C1B* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:806C8B* + ID_OUI_FROM_DATABASE=KAESER KOMPRESSOREN AG + +@@ -61918,9 +62185,15 @@ OUI:80D733* + OUI:80DB31* + ID_OUI_FROM_DATABASE=Power Quotient International Co., Ltd. + ++OUI:80E650* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:80EA96* + ID_OUI_FROM_DATABASE=Apple + ++OUI:80EACA* ++ ID_OUI_FROM_DATABASE=Dialog Semiconductor Hellas SA ++ + OUI:80EE73* + ID_OUI_FROM_DATABASE=Shuttle Inc. + +@@ -61933,6 +62206,9 @@ OUI:80F593* + OUI:80F62E* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:80F8EB* ++ ID_OUI_FROM_DATABASE=RayTight ++ + OUI:80FA5B* + ID_OUI_FROM_DATABASE=CLEVO CO. + +@@ -62116,6 +62392,9 @@ OUI:848506* + OUI:84850A* + ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH + ++OUI:8486F3* ++ ID_OUI_FROM_DATABASE=Greenvity Communications ++ + OUI:848D84* + ID_OUI_FROM_DATABASE=Rajant Corporation + +@@ -62134,9 +62413,15 @@ OUI:848F69* + OUI:849000* + ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik + ++OUI:84930C* ++ ID_OUI_FROM_DATABASE=InCoax Networks Europe AB ++ + OUI:84948C* + ID_OUI_FROM_DATABASE=Hitron Technologies. Inc + ++OUI:849681* ++ ID_OUI_FROM_DATABASE=Cathay Communication Co.,Ltd ++ + OUI:8496D8* + ID_OUI_FROM_DATABASE=Pace plc + +@@ -62206,6 +62491,9 @@ OUI:84DE3D* + OUI:84DF0C* + ID_OUI_FROM_DATABASE=NET2GRID BV + ++OUI:84E058* ++ ID_OUI_FROM_DATABASE=Pace plc ++ + OUI:84E4D9* + ID_OUI_FROM_DATABASE=Shenzhen NEED technology Ltd. + +@@ -62545,6 +62833,9 @@ OUI:8C0EE3* + OUI:8C11CB* + ID_OUI_FROM_DATABASE=ABUS Security-Center GmbH & Co. KG + ++OUI:8C18D9* ++ ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co., Ltd ++ + OUI:8C1F94* + ID_OUI_FROM_DATABASE=RF Surgical System Inc. + +@@ -62632,6 +62923,9 @@ OUI:8C5AF0* + OUI:8C5CA1* + ID_OUI_FROM_DATABASE=d-broad,INC + ++OUI:8C5D60* ++ ID_OUI_FROM_DATABASE=UCI Corporation Co.,Ltd. ++ + OUI:8C5FDF* + ID_OUI_FROM_DATABASE=Beijing Railway Signal Factory + +@@ -62683,6 +62977,9 @@ OUI:8C7CFF* + OUI:8C7EB3* + ID_OUI_FROM_DATABASE=Lytro, Inc. + ++OUI:8C7F3B* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:8C82A8* + ID_OUI_FROM_DATABASE=Insigma Technology Co.,Ltd + +@@ -62716,6 +63013,9 @@ OUI:8CAE4C* + OUI:8CAE89* + ID_OUI_FROM_DATABASE=Y-cam Solutions Ltd + ++OUI:8CB094* ++ ID_OUI_FROM_DATABASE=Airtech I&C Co., Ltd ++ + OUI:8CB64F* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -62770,6 +63070,9 @@ OUI:8CD628* + OUI:8CDB25* + ID_OUI_FROM_DATABASE=ESG Solutions + ++OUI:8CDCD4* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:8CDD8D* + ID_OUI_FROM_DATABASE=Wifly-City System Inc. + +@@ -62788,6 +63091,9 @@ OUI:8CE7B3* + OUI:8CEEC6* + ID_OUI_FROM_DATABASE=Precepscion Pty. Ltd. + ++OUI:8CF813* ++ ID_OUI_FROM_DATABASE=ORANGE POLSKA ++ + OUI:8CF945* + ID_OUI_FROM_DATABASE=Power Automation pte Ltd + +@@ -62851,6 +63157,9 @@ OUI:901D27* + OUI:901EDD* + ID_OUI_FROM_DATABASE=GREAT COMPUTER CORPORATION + ++OUI:90203A* ++ ID_OUI_FROM_DATABASE=BYD Precision Manufacture Co.,Ltd ++ + OUI:902083* + ID_OUI_FROM_DATABASE=General Engine Management Systems Ltd. + +@@ -63127,6 +63436,9 @@ OUI:90E6BA* + OUI:90EA60* + ID_OUI_FROM_DATABASE=SPI Lasers Ltd + ++OUI:90EF68* ++ ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation ++ + OUI:90F1AA* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD + +@@ -63154,6 +63466,9 @@ OUI:90FB5B* + OUI:90FBA6* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd + ++OUI:90FD61* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:90FF79* + ID_OUI_FROM_DATABASE=Metro Ethernet Forum + +@@ -63247,6 +63562,9 @@ OUI:945103* + OUI:9451BF* + ID_OUI_FROM_DATABASE=Hyundai ESG + ++OUI:945493* ++ ID_OUI_FROM_DATABASE=Rigado, LLC ++ + OUI:94592D* + ID_OUI_FROM_DATABASE=EKE Building Technology Systems Ltd + +@@ -63256,6 +63574,9 @@ OUI:945B7E* + OUI:946124* + ID_OUI_FROM_DATABASE=Pason Systems + ++OUI:946269* ++ ID_OUI_FROM_DATABASE=Arris Group, Inc. ++ + OUI:9463D1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -63622,6 +63943,9 @@ OUI:988EDD* + OUI:989080* + ID_OUI_FROM_DATABASE=Linkpower Network System Inc Ltd. + ++OUI:989096* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:9893CC* + ID_OUI_FROM_DATABASE=LG Electronics Inc. + +@@ -63781,6 +64105,9 @@ OUI:9C3178* + OUI:9C31B6* + ID_OUI_FROM_DATABASE=Kulite Semiconductor Products Inc + ++OUI:9C3583* ++ ID_OUI_FROM_DATABASE=Nipro Diagnostics, Inc ++ + OUI:9C3AAF* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -64234,6 +64561,9 @@ OUI:A08C9B* + OUI:A090DE* + ID_OUI_FROM_DATABASE=VEEDIMS,LLC + ++OUI:A09347* ++ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD. ++ + OUI:A09805* + ID_OUI_FROM_DATABASE=OpenVox Communication Co Ltd + +@@ -64336,6 +64666,9 @@ OUI:A0E534* + OUI:A0E5E9* + ID_OUI_FROM_DATABASE=enimai Inc + ++OUI:A0E6F8* ++ ID_OUI_FROM_DATABASE=Texas Instruments Inc ++ + OUI:A0E9DB* + ID_OUI_FROM_DATABASE=Ningbo FreeWings Technologies Co.,Ltd + +@@ -64498,6 +64831,9 @@ OUI:A46CC1* + OUI:A46E79* + ID_OUI_FROM_DATABASE=DFT System Co.Ltd + ++OUI:A470D6* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:A47733* + ID_OUI_FROM_DATABASE=Google + +@@ -64643,7 +64979,7 @@ OUI:A4D3B5* + ID_OUI_FROM_DATABASE=GLITEL Stropkov, s.r.o. + + OUI:A4D856* +- ID_OUI_FROM_DATABASE=Qualcomm Labs Inc. ++ ID_OUI_FROM_DATABASE=Gimbal, Inc + + OUI:A4DA3F* + ID_OUI_FROM_DATABASE=Bionics Corp. +@@ -64732,6 +65068,9 @@ OUI:A81758* + OUI:A81B18* + ID_OUI_FROM_DATABASE=XTS CORP + ++OUI:A81B5D* ++ ID_OUI_FROM_DATABASE=Foxtel Management Pty Ltd ++ + OUI:A81FAF* + ID_OUI_FROM_DATABASE=KRYPTON POLSKA + +@@ -64984,6 +65323,9 @@ OUI:AC0A61* + OUI:AC0DFE* + ID_OUI_FROM_DATABASE=Ekon GmbH - myGEKKO + ++OUI:AC11D3* ++ ID_OUI_FROM_DATABASE=Suzhou HOTEK Video Technology Co. Ltd ++ + OUI:AC1461* + ID_OUI_FROM_DATABASE=ATAW Co., Ltd. + +@@ -65023,6 +65365,9 @@ OUI:AC34CB* + OUI:AC3613* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:AC3870* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:AC3C0B* + ID_OUI_FROM_DATABASE=Apple + +@@ -65191,6 +65536,9 @@ OUI:ACAB8D* + OUI:ACB313* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:ACB74F* ++ ID_OUI_FROM_DATABASE=METEL s.r.o. ++ + OUI:ACB859* + ID_OUI_FROM_DATABASE=Uniband Electronic Corp, + +@@ -65356,6 +65704,9 @@ OUI:B03850* + OUI:B0435D* + ID_OUI_FROM_DATABASE=NuLEDs, Inc. + ++OUI:B04515* ++ ID_OUI_FROM_DATABASE=mira fitness,LLC. ++ + OUI:B04545* + ID_OUI_FROM_DATABASE=YACOUB Automation GmbH + +@@ -65635,6 +65986,9 @@ OUI:B41489* + OUI:B41513* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:B41780* ++ ID_OUI_FROM_DATABASE=DTI Group Ltd ++ + OUI:B418D1* + ID_OUI_FROM_DATABASE=Apple + +@@ -65746,6 +66100,12 @@ OUI:B4749F* + OUI:B4750E* + ID_OUI_FROM_DATABASE=Belkin International Inc. + ++OUI:B479A7* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ ++OUI:B47C29* ++ ID_OUI_FROM_DATABASE=Shenzhen Guzidi Technology Co.,Ltd ++ + OUI:B47F5E* + ID_OUI_FROM_DATABASE=Foresight Manufacture (S) Pte Ltd + +@@ -65923,6 +66283,9 @@ OUI:B81619* + OUI:B817C2* + ID_OUI_FROM_DATABASE=Apple + ++OUI:B8186F* ++ ID_OUI_FROM_DATABASE=ORIENTAL MOTOR CO., LTD. ++ + OUI:B81999* + ID_OUI_FROM_DATABASE=Nesys + +@@ -65989,6 +66352,9 @@ OUI:B843E4* + OUI:B847C6* + ID_OUI_FROM_DATABASE=SanJet Technology Corp. + ++OUI:B84FD5* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:B85510* + ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. + +@@ -66109,6 +66475,9 @@ OUI:B89AED* + OUI:B89BC9* + ID_OUI_FROM_DATABASE=SMC Networks Inc + ++OUI:B89BE4* ++ ID_OUI_FROM_DATABASE=ABB Power Systems Power Generation ++ + OUI:B8A386* + ID_OUI_FROM_DATABASE=D-Link International + +@@ -66151,6 +66520,9 @@ OUI:B8BA72* + OUI:B8BB6D* + ID_OUI_FROM_DATABASE=ENERES Co.,Ltd. + ++OUI:B8BD79* ++ ID_OUI_FROM_DATABASE=TrendPoint Systems ++ + OUI:B8BEBF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -66226,6 +66598,9 @@ OUI:B8EE65* + OUI:B8EE79* + ID_OUI_FROM_DATABASE=YWire Technologies, Inc. + ++OUI:B8F317* ++ ID_OUI_FROM_DATABASE=iSun Smasher Communications Private Limited ++ + OUI:B8F4D0* + ID_OUI_FROM_DATABASE=Herrmann Ultraschalltechnik GmbH & Co. Kg + +@@ -66373,6 +66748,9 @@ OUI:BC5FF4* + OUI:BC629F* + ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. + ++OUI:BC6641* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:BC671C* + ID_OUI_FROM_DATABASE=Cisco + +@@ -66838,6 +67216,9 @@ OUI:C4017C* + OUI:C401B1* + ID_OUI_FROM_DATABASE=SeekTech INC + ++OUI:C401CE* ++ ID_OUI_FROM_DATABASE=PRESITION (2000) CO., LTD. ++ + OUI:C40415* + ID_OUI_FROM_DATABASE=NETGEAR INC., + +@@ -66970,6 +67351,12 @@ OUI:C455C2* + OUI:C45600* + ID_OUI_FROM_DATABASE=Galleon Embedded Computing + ++OUI:C456FE* ++ ID_OUI_FROM_DATABASE=Lava International Ltd. ++ ++OUI:C4576E* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD ++ + OUI:C458C2* + ID_OUI_FROM_DATABASE=Shenzhen TATFOOK Technology Co., Ltd. + +@@ -67081,6 +67468,9 @@ OUI:C4B512* + OUI:C4BA99* + ID_OUI_FROM_DATABASE=I+ME Actia Informatik und Mikro-Elektronik GmbH + ++OUI:C4BD6A* ++ ID_OUI_FROM_DATABASE=SKF GmbH ++ + OUI:C4C0AE* + ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD. + +@@ -67429,6 +67819,9 @@ OUI:C8E1A7* + OUI:C8E42F* + ID_OUI_FROM_DATABASE=Technical Research Design and Development + ++OUI:C8E7D8* ++ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. ++ + OUI:C8EE08* + ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD + +@@ -67480,6 +67873,9 @@ OUI:C8FF77* + OUI:CC0080* + ID_OUI_FROM_DATABASE=BETTINI SRL + ++OUI:CC03FA* ++ ID_OUI_FROM_DATABASE=Technicolor CH USA ++ + OUI:CC047C* + ID_OUI_FROM_DATABASE=G-WAY Microwave + +@@ -67507,6 +67903,9 @@ OUI:CC0CDA* + OUI:CC0DEC* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:CC10A3* ++ ID_OUI_FROM_DATABASE=Beijing Nan Bao Technology Co., Ltd. ++ + OUI:CC14A6* + ID_OUI_FROM_DATABASE=Yichun MyEnergy Domain, Inc + +@@ -67531,6 +67930,9 @@ OUI:CC2A80* + OUI:CC2D8C* + ID_OUI_FROM_DATABASE=LG ELECTRONICS INC + ++OUI:CC3080* ++ ID_OUI_FROM_DATABASE=VAIO Corporation ++ + OUI:CC33BB* + ID_OUI_FROM_DATABASE=SAGEMCOM SAS + +@@ -67756,9 +68158,15 @@ OUI:CCD539* + OUI:CCD811* + ID_OUI_FROM_DATABASE=Aiconn Technology Corporation + ++OUI:CCD8C1* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:CCD9E9* + ID_OUI_FROM_DATABASE=SCR Engineers Ltd. + ++OUI:CCE17F* ++ ID_OUI_FROM_DATABASE=juniper networks ++ + OUI:CCE1D5* + ID_OUI_FROM_DATABASE=Buffalo Inc. + +@@ -67786,6 +68194,9 @@ OUI:CCF3A5* + OUI:CCF407* + ID_OUI_FROM_DATABASE=EUKREA ELECTROMATIQUE SARL + ++OUI:CCF538* ++ ID_OUI_FROM_DATABASE=3isysnetworks ++ + OUI:CCF67A* + ID_OUI_FROM_DATABASE=Ayecka Communication Systems LTD + +@@ -67825,6 +68236,9 @@ OUI:D00AAB* + OUI:D00EA4* + ID_OUI_FROM_DATABASE=Porsche Cars North America + ++OUI:D01242* ++ ID_OUI_FROM_DATABASE=BIOS Corporation ++ + OUI:D0131E* + ID_OUI_FROM_DATABASE=Sunrex Technology Corp + +@@ -67915,6 +68329,9 @@ OUI:D05FB8* + OUI:D05FCE* + ID_OUI_FROM_DATABASE=Hitachi Data Systems + ++OUI:D062A0* ++ ID_OUI_FROM_DATABASE=China Essence Technology (Zhumadian) Co., Ltd. ++ + OUI:D0634D* + ID_OUI_FROM_DATABASE=Meiko Maschinenbau GmbH & Co. KG + +@@ -67963,6 +68380,9 @@ OUI:D07E28* + OUI:D07E35* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:D084B0* ++ ID_OUI_FROM_DATABASE=Sagemcom ++ + OUI:D08999* + ID_OUI_FROM_DATABASE=APCON, Inc. + +@@ -68110,6 +68530,9 @@ OUI:D0F27F* + OUI:D0F73B* + ID_OUI_FROM_DATABASE=Helmut Mauell GmbH + ++OUI:D0FA1D* ++ ID_OUI_FROM_DATABASE=Qihoo 360 Technology Co.,Ltd ++ + OUI:D0FF50* + ID_OUI_FROM_DATABASE=Texas Instruments, Inc + +@@ -68191,6 +68614,9 @@ OUI:D42F23* + OUI:D4319D* + ID_OUI_FROM_DATABASE=Sinwatec + ++OUI:D437D7* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:D43A65* + ID_OUI_FROM_DATABASE=IGRS Engineering Lab Ltd. + +@@ -68278,6 +68704,9 @@ OUI:D46F42* + OUI:D479C3* + ID_OUI_FROM_DATABASE=Cameronet GmbH & Co. KG + ++OUI:D47B35* ++ ID_OUI_FROM_DATABASE=NEO Monitors AS ++ + OUI:D47B75* + ID_OUI_FROM_DATABASE=HARTING Electronics GmbH + +@@ -68299,6 +68728,9 @@ OUI:D48890* + OUI:D48CB5* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:D48F33* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:D48FAA* + ID_OUI_FROM_DATABASE=Sogecam Industrial, S.A. + +@@ -68440,6 +68872,9 @@ OUI:D4EA0E* + OUI:D4EC0C* + ID_OUI_FROM_DATABASE=Harley-Davidson Motor Company + ++OUI:D4EC86* ++ ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd ++ + OUI:D4EE07* + ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd. + +@@ -68551,6 +68986,9 @@ OUI:D8490B* + OUI:D8492F* + ID_OUI_FROM_DATABASE=CANON INC. + ++OUI:D84A87* ++ ID_OUI_FROM_DATABASE=OI ELECTRIC CO.,LTD ++ + OUI:D84B2A* + ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. + +@@ -68860,6 +69298,9 @@ OUI:DC37D2* + OUI:DC38E1* + ID_OUI_FROM_DATABASE=Juniper networks + ++OUI:DC3979* ++ ID_OUI_FROM_DATABASE=Skyport Systems ++ + OUI:DC3A5E* + ID_OUI_FROM_DATABASE=Roku, Inc + +@@ -69199,6 +69640,9 @@ OUI:E09467* + OUI:E09579* + ID_OUI_FROM_DATABASE=ORTHOsoft inc, d/b/a Zimmer CAS + ++OUI:E09796* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:E097F2* + ID_OUI_FROM_DATABASE=Atomax Inc. + +@@ -69226,6 +69670,9 @@ OUI:E0AAB0* + OUI:E0ABFE* + ID_OUI_FROM_DATABASE=Orb Networks, Inc. + ++OUI:E0ACF1* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:E0AE5E* + ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. + +@@ -69523,6 +69970,9 @@ OUI:E492E7* + OUI:E492FB* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:E4956E* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:E496AE* + ID_OUI_FROM_DATABASE=ALTOGRAPHICS Inc. + +@@ -69553,6 +70003,9 @@ OUI:E4B021* + OUI:E4C146* + ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A + ++OUI:E4C62B* ++ ID_OUI_FROM_DATABASE=Airware ++ + OUI:E4C63D* + ID_OUI_FROM_DATABASE=Apple, Inc. + +@@ -69910,6 +70363,9 @@ OUI:E8EA6A* + OUI:E8EADA* + ID_OUI_FROM_DATABASE=Denkovi Assembly Electroncs LTD + ++OUI:E8ED05* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:E8EDF3* + ID_OUI_FROM_DATABASE=Cisco + +@@ -69931,6 +70387,9 @@ OUI:E8FC60* + OUI:E8FCAF* + ID_OUI_FROM_DATABASE=NETGEAR INC., + ++OUI:EC0EC4* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:EC0ED6* + ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS + +@@ -69949,6 +70408,9 @@ OUI:EC1766* + OUI:EC1A59* + ID_OUI_FROM_DATABASE=Belkin International Inc. + ++OUI:EC1D7F* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:EC219F* + ID_OUI_FROM_DATABASE=VidaBox LLC + +@@ -69982,6 +70444,9 @@ OUI:EC3586* + OUI:EC3BF0* + ID_OUI_FROM_DATABASE=NovelSat + ++OUI:EC3C5A* ++ ID_OUI_FROM_DATABASE=SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD ++ + OUI:EC3E09* + ID_OUI_FROM_DATABASE=PERFORMANCE DESIGNED PRODUCTS, LLC + +@@ -70522,6 +70987,9 @@ OUI:F4068D* + OUI:F406A5* + ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. + ++OUI:F409D8* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ + OUI:F40B93* + ID_OUI_FROM_DATABASE=Research In Motion + +@@ -70555,6 +71023,9 @@ OUI:F42012* + OUI:F42833* + ID_OUI_FROM_DATABASE=MMPC Inc. + ++OUI:F42853* ++ ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. ++ + OUI:F42896* + ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA + +@@ -70780,6 +71251,9 @@ OUI:F4EC38* + OUI:F4F15A* + ID_OUI_FROM_DATABASE=Apple + ++OUI:F4F1E1* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:F4F26D* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + +@@ -70855,6 +71329,9 @@ OUI:F81EDF* + OUI:F82285* + ID_OUI_FROM_DATABASE=Cypress Technology CO., LTD. + ++OUI:F82441* ++ ID_OUI_FROM_DATABASE=Yeelink ++ + OUI:F82793* + ID_OUI_FROM_DATABASE=Apple, Inc + +@@ -71119,6 +71596,9 @@ OUI:F8E4FB* + OUI:F8E7B5* + ID_OUI_FROM_DATABASE=µTech Tecnologia LTDA + ++OUI:F8E811* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:F8E968* + ID_OUI_FROM_DATABASE=Egker Kft. + +@@ -71221,6 +71701,9 @@ OUI:FC1BFF* + OUI:FC1D59* + ID_OUI_FROM_DATABASE=I Smart Cities HK Ltd + ++OUI:FC1D84* ++ ID_OUI_FROM_DATABASE=Autobase ++ + OUI:FC1E16* + ID_OUI_FROM_DATABASE=IPEVO corp + +@@ -71359,6 +71842,9 @@ OUI:FC9947* + OUI:FC9FAE* + ID_OUI_FROM_DATABASE=Fidus Systems Inc + ++OUI:FC9FE1* ++ ID_OUI_FROM_DATABASE=CONWIN.Tech. Ltd ++ + OUI:FCA13E* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -71419,6 +71905,9 @@ OUI:FCD817* + OUI:FCDB96* + ID_OUI_FROM_DATABASE=ENERVALLEY CO., LTD + ++OUI:FCDBB3* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:FCDD55* + ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd + +diff --git hwdb/20-pci-classes.hwdb hwdb/20-pci-classes.hwdb +index fd1d5d0..5702c40 100644 +--- hwdb/20-pci-classes.hwdb ++++ hwdb/20-pci-classes.hwdb +@@ -47,12 +47,24 @@ pci:v*d*sv*sd*bc01sc06i00* + pci:v*d*sv*sd*bc01sc06i01* + ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0 + ++pci:v*d*sv*sd*bc01sc06i02* ++ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus ++ + pci:v*d*sv*sd*bc01sc07* + ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller + ++pci:v*d*sv*sd*bc01sc07i01* ++ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus ++ + pci:v*d*sv*sd*bc01sc08* + ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller + ++pci:v*d*sv*sd*bc01sc08i01* ++ ID_PCI_INTERFACE_FROM_DATABASE=NVMHCI ++ ++pci:v*d*sv*sd*bc01sc08i02* ++ ID_PCI_INTERFACE_FROM_DATABASE=NVM Express ++ + pci:v*d*sv*sd*bc01sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller + +@@ -80,6 +92,9 @@ pci:v*d*sv*sd*bc02sc05* + pci:v*d*sv*sd*bc02sc06* + ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller + ++pci:v*d*sv*sd*bc02sc07* ++ ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller ++ + pci:v*d*sv*sd*bc02sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Network controller + +@@ -311,6 +326,9 @@ pci:v*d*sv*sd*bc08sc02i01* + pci:v*d*sv*sd*bc08sc02i02* + ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers + ++pci:v*d*sv*sd*bc08sc02i03* ++ ID_PCI_INTERFACE_FROM_DATABASE=HPET ++ + pci:v*d*sv*sd*bc08sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=RTC + +@@ -527,5 +545,14 @@ pci:v*d*sv*sd*bc11sc20* + pci:v*d*sv*sd*bc11sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller + ++pci:v*d*sv*sd*bc12* ++ ID_PCI_CLASS_FROM_DATABASE=Processing accelerators ++ ++pci:v*d*sv*sd*bc12sc00* ++ ID_PCI_SUBCLASS_FROM_DATABASE=Processing accelerators ++ ++pci:v*d*sv*sd*bc13* ++ ID_PCI_CLASS_FROM_DATABASE=Non-Essential Instrumentation ++ + pci:v*d*sv*sd*bcFF* + ID_PCI_CLASS_FROM_DATABASE=Unassigned class +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 62941b9..77c727d 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -959,6 +959,15 @@ pci:v00001000d0000005Dsv00001028sd00001F49* + pci:v00001000d0000005Dsv00001028sd00001F4A* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) + ++pci:v00001000d0000005Dsv00001028sd00001F4D* ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xS) ++ ++pci:v00001000d0000005Dsv00001028sd00001F4F* ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Slim) ++ ++pci:v00001000d0000005Dsv00001028sd00001F54* ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xD) ++ + pci:v00001000d0000005Dsv000017AAsd00001052* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) + +@@ -1677,7 +1686,7 @@ pci:v00001002d00001308* + ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller + + pci:v00001002d00001309* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6/R7 Graphics] + + pci:v00001002d0000130A* + ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] +@@ -3003,7 +3012,7 @@ pci:v00001002d00004C57sv00001014sd00000517* + ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) + + pci:v00001002d00004C57sv00001014sd00000530* +- ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T4x Series) + + pci:v00001002d00004C57sv00001028sd000000E6* + ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) +@@ -4362,7 +4371,7 @@ pci:v00001002d00006667* + ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] + + pci:v00001002d0000666F* +- ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] ++ ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M / R5 M230] + + pci:v00001002d00006670* + ID_MODEL_FROM_DATABASE=Hainan +@@ -5937,10 +5946,10 @@ pci:v00001002d0000679F* + ID_MODEL_FROM_DATABASE=Tahiti + + pci:v00001002d000067A0* +- ID_MODEL_FROM_DATABASE=Hawaii XT GL ++ ID_MODEL_FROM_DATABASE=Hawaii XT GL [FirePro W9100] + + pci:v00001002d000067A1* +- ID_MODEL_FROM_DATABASE=Hawaii GL ++ ID_MODEL_FROM_DATABASE=Hawaii PRO GL [FirePro W8100] + + pci:v00001002d000067A2* + ID_MODEL_FROM_DATABASE=Hawaii GL +@@ -5961,7 +5970,7 @@ pci:v00001002d000067B1* + ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] + + pci:v00001002d000067B9* +- ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] ++ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295X2] + + pci:v00001002d000067BE* + ID_MODEL_FROM_DATABASE=Hawaii LE +@@ -7860,7 +7869,13 @@ pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE + + pci:v00001002d00006900* +- ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] ++ ++pci:v00001002d00006900sv00001028sd00000640* ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M265) ++ ++pci:v00001002d00006900sv00001179sd0000F934* ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M260) + + pci:v00001002d00006901* + ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] +@@ -8027,6 +8042,9 @@ pci:v00001002d0000718A* + pci:v00001002d0000718B* + ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] + ++pci:v00001002d0000718Bsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001002d0000718C* + ID_MODEL_FROM_DATABASE=RV516/M62-CSP64 [Mobility Radeon X1350] + +@@ -8969,26 +8987,29 @@ pci:v00001002d0000983E* + pci:v00001002d0000983F* + ID_MODEL_FROM_DATABASE=Kabini + ++pci:v00001002d00009840* ++ ID_MODEL_FROM_DATABASE=Kabini HDMI/DP Audio ++ + pci:v00001002d00009850* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A6-6200 with R3 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] + + pci:v00001002d00009851* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics] + + pci:v00001002d00009852* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] + + pci:v00001002d00009853* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-4000 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] + + pci:v00001002d00009854* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-3700 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] + + pci:v00001002d00009855* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2450M with R3 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R6 Graphics] + + pci:v00001002d00009856* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] + + pci:v00001002d00009857* + ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] +@@ -12347,6 +12368,9 @@ pci:v0000102Bd00000532sv00001028sd0000029C* + pci:v0000102Bd00000532sv00001028sd000002A4* + ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) + ++pci:v0000102Bd00000532sv000015D9sd00000624* ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (X9SCM-F Motherboard) ++ + pci:v0000102Bd00000532sv000015D9sd0000A811* + ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) + +@@ -13169,6 +13193,9 @@ pci:v00001039d00000016* + pci:v00001039d00000018* + ID_MODEL_FROM_DATABASE=SiS85C503/5513 (LPC Bridge) + ++pci:v00001039d00000163* ++ ID_MODEL_FROM_DATABASE=163 802.11b/g Wireless LAN Adapter ++ + pci:v00001039d00000180* + ID_MODEL_FROM_DATABASE=RAID bus controller 180 SATA/PATA [SiS] + +@@ -14141,6 +14168,9 @@ pci:v00001042d00003020* + pci:v00001043* + ID_VENDOR_FROM_DATABASE=ASUSTeK Computer Inc. + ++pci:v00001043d00000464* ++ ID_MODEL_FROM_DATABASE=Radeon R9 270x GPU ++ + pci:v00001043d00000675* + ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D + +@@ -17978,6 +18008,9 @@ pci:v00001095d00003512sv00001095sd00006512* + pci:v00001095d00003531* + ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller + ++pci:v00001095d00003531sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00001096* + ID_VENDOR_FROM_DATABASE=Alacron + +@@ -26261,6 +26294,9 @@ pci:v000010DEd00000F00* + pci:v000010DEd00000F01* + ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 620] + ++pci:v000010DEd00000F02* ++ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 730] ++ + pci:v000010DEd00000FC0* + ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 640 OEM] + +@@ -26276,6 +26312,9 @@ pci:v000010DEd00000FC6* + pci:v000010DEd00000FC6sv00001043sd00008428* + ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) + ++pci:v000010DEd00000FC8* ++ ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 740] ++ + pci:v000010DEd00000FCD* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] + +@@ -26420,6 +26459,9 @@ pci:v000010DEd00000FFE* + pci:v000010DEd00000FFF* + ID_MODEL_FROM_DATABASE=GK107GL [Quadro 410] + ++pci:v000010DEd00001001* ++ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX TITAN Z] ++ + pci:v000010DEd00001003* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan LE] + +@@ -26828,9 +26870,57 @@ pci:v000010DEd00001140sv00001025sd00000830* + pci:v000010DEd00001140sv00001025sd00000837* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv00001025sd0000083E* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001025sd00000841* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + ++pci:v000010DEd00001140sv00001025sd00000854* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000855* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000856* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000857* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000858* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000868* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000869* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) ++ ++pci:v000010DEd00001140sv00001025sd00000873* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000878* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000087B* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000087C* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) ++ ++pci:v000010DEd00001140sv00001025sd00000881* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000088A* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000090F* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000921* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001028sd0000054D* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + +@@ -26966,6 +27056,18 @@ pci:v000010DEd00001140sv00001043sd000016DD* + pci:v000010DEd00001140sv00001043sd0000170D* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + ++pci:v000010DEd00001140sv00001043sd0000176D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001043sd0000178D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001043sd0000179D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001043sd000017DD* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001043sd00002132* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + +@@ -27713,6 +27815,9 @@ pci:v000010DEd00001284* + pci:v000010DEd00001286* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] + ++pci:v000010DEd00001287* ++ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 730] ++ + pci:v000010DEd00001290* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] + +@@ -27749,6 +27854,21 @@ pci:v000010DEd00001294* + pci:v000010DEd00001295* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] + ++pci:v000010DEd00001295sv0000103Csd00002B0D* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B0F* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B11* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B21* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B22* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) ++ + pci:v000010DEd00001296* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] + +@@ -28302,7 +28422,7 @@ pci:v000010ECd00008136* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller + + pci:v000010ECd00008136sv0000103Csd00002AB1* +- ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion p6774) + + pci:v000010ECd00008136sv0000103Csd000030CC* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) +@@ -28310,6 +28430,9 @@ pci:v000010ECd00008136sv0000103Csd000030CC* + pci:v000010ECd00008136sv00001179sd0000FF64* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) + ++pci:v000010ECd00008136sv000017C0sd00001053* ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (AzureWave AW-NE766 802.11B/G/N Mini PCIe Card Model RT2700E) ++ + pci:v000010ECd00008138* + ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter + +@@ -29036,6 +29159,9 @@ pci:v00001102d0000000B* + pci:v00001102d0000000Bsv00001102sd00000041* + ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) + ++pci:v00001102d00000012* ++ ID_MODEL_FROM_DATABASE=SB Recon3D ++ + pci:v00001102d00004001* + ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port + +@@ -30878,6 +31004,9 @@ pci:v00001106d0000E340* + pci:v00001106d0000E353* + ID_MODEL_FROM_DATABASE=VX800/VX820 PCI Express Root Port + ++pci:v00001106d0000E410* ++ ID_MODEL_FROM_DATABASE=VX900 PCI Express Physical Layer Electrical Sub-block ++ + pci:v00001106d0000F208* + ID_MODEL_FROM_DATABASE=PT890 PCI to PCI Bridge Controller + +@@ -35045,6 +35174,9 @@ pci:v000011ABd00004353sv0000104Dsd0000902D* + pci:v000011ABd00004354* + ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller + ++pci:v000011ABd00004354sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (R730 Laptop) ++ + pci:v000011ABd00004354sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) + +@@ -36557,6 +36689,9 @@ pci:v00001217* + pci:v00001217d000000F7* + ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) + ++pci:v00001217d000000F7sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001217d000000F7sv00001179sd0000FF50* + ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) + +@@ -36635,12 +36770,18 @@ pci:v00001217d00007114* + pci:v00001217d00007120* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller + ++pci:v00001217d00007120sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001217d00007120sv00001179sd0000FF50* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) + + pci:v00001217d00007130* + ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller + ++pci:v00001217d00007130sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001217d00007130sv00001179sd0000FF50* + ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) + +@@ -42276,7 +42417,7 @@ pci:v00001425d00004083* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller + + pci:v00001425d00004084* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller + + pci:v00001425d00004085* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller +@@ -42348,7 +42489,7 @@ pci:v00001425d00004483* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller + + pci:v00001425d00004484* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller + + pci:v00001425d00004485* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller +@@ -42420,7 +42561,7 @@ pci:v00001425d00004583* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller + + pci:v00001425d00004584* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller + + pci:v00001425d00004585* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller +@@ -42492,7 +42633,7 @@ pci:v00001425d00004683* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller + + pci:v00001425d00004684* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller + + pci:v00001425d00004685* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller +@@ -42564,7 +42705,7 @@ pci:v00001425d00004783* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller + + pci:v00001425d00004784* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller + + pci:v00001425d00004785* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller +@@ -42579,76 +42720,76 @@ pci:v00001425d00004788* + ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller + + pci:v00001425d00004801* +- ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004802* +- ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004803* +- ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004804* +- ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004805* +- ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004806* +- ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004807* +- ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004808* +- ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004809* +- ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480A* +- ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480B* +- ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480C* +- ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480D* +- ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480E* +- ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480F* +- ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004880* +- ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004881* +- ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004882* +- ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004883* +- ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004884* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004885* +- ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004886* +- ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004887* +- ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004888* +- ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005001* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller +@@ -43041,82 +43182,82 @@ pci:v00001425d00005785* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller + + pci:v00001425d00005801* +- ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005802* +- ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005803* +- ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005804* +- ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005805* +- ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005806* +- ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005807* +- ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005808* +- ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005809* +- ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580A* +- ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580B* +- ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580C* +- ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580D* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580E* +- ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580F* +- ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005810* +- ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005811* +- ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005812* +- ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005813* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005814* +- ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005815* +- ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005880* +- ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005881* +- ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005883* +- ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005884* +- ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005885* +- ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000A000* + ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller +@@ -43562,6 +43703,9 @@ pci:v0000148E* + pci:v0000148F* + ID_VENDOR_FROM_DATABASE=Plant Equipment, Inc. + ++pci:v0000148Fd00005370* ++ ID_MODEL_FROM_DATABASE=Dexlink AUWL15I1 ++ + pci:v00001490* + ID_VENDOR_FROM_DATABASE=Stone Microsystems PTY Ltd. + +@@ -44885,6 +45029,9 @@ pci:v000014E4d000016A2sv0000103Csd00001916* + pci:v000014E4d000016A2sv0000103Csd00001917* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) + ++pci:v000014E4d000016A3* ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM57786 Gigabit Ethernet PCIe ++ + pci:v000014E4d000016A4* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function + +@@ -47796,7 +47943,7 @@ pci:v000015B3d00001003* + ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3] + + pci:v000015B3d00001004* +- ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3 Virtual Function] ++ ID_MODEL_FROM_DATABASE=MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function] + + pci:v000015B3d00001005* + ID_MODEL_FROM_DATABASE=MT27510 Family +@@ -47807,9 +47954,6 @@ pci:v000015B3d00001006* + pci:v000015B3d00001007* + ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro] + +-pci:v000015B3d00001008* +- ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro Virtual Function] +- + pci:v000015B3d00001009* + ID_MODEL_FROM_DATABASE=MT27530 Family + +@@ -49187,6 +49331,9 @@ pci:v0000168Cd0000002Bsv0000105Bsd0000E017* + pci:v0000168Cd0000002Bsv0000105Bsd0000E023* + ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) + ++pci:v0000168Cd0000002Bsv0000105Bsd0000E025* ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.05 802.11bgn Wireless Half-size Mini PCIe Card) ++ + pci:v0000168Cd0000002Bsv00001113sd0000E811* + ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) + +@@ -50471,6 +50618,9 @@ pci:v00001814d00000701sv00001737sd00000074* + pci:v00001814d00000781* + ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe + ++pci:v00001814d00000781sv00001814sd00002790* ++ ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe ++ + pci:v00001814d00003060* + ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R + +@@ -51911,6 +52061,9 @@ pci:v00001969d00001063* + pci:v00001969d00001063sv00001458sd0000E000* + ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) + ++pci:v00001969d00001063sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00001969d00001066* + ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet + +@@ -52358,6 +52511,18 @@ pci:v00001A2Bd0000000A* + pci:v00001A2Bd0000000E* + ID_MODEL_FROM_DATABASE=DSLP-104 v1.1 + ++pci:v00001A30* ++ ID_VENDOR_FROM_DATABASE=Lantiq ++ ++pci:v00001A30d00000680* ++ ID_MODEL_FROM_DATABASE=MtW8171 [Hyperion II] ++ ++pci:v00001A30d00000700* ++ ID_MODEL_FROM_DATABASE=Wave300 PSB8224 [Hyperion III] ++ ++pci:v00001A30d00000710* ++ ID_MODEL_FROM_DATABASE=Wave300 PSB8231 [Hyperion III] ++ + pci:v00001A32* + ID_VENDOR_FROM_DATABASE=Quanta Microsystems, Inc + +@@ -52497,19 +52662,19 @@ pci:v00001A78* + ID_VENDOR_FROM_DATABASE=Virident Systems Inc. + + pci:v00001A78d00000031* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive + + pci:v00001A78d00000031sv00001A78sd00000034* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) + + pci:v00001A78d00000031sv00001A78sd00000037* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) + + pci:v00001A78d00000031sv00001A78sd00000038* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) + + pci:v00001A78d00000031sv00001A78sd00000039* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) + + pci:v00001A78d00000040* + ID_MODEL_FROM_DATABASE=FlashMAX II +@@ -52520,6 +52685,9 @@ pci:v00001A78d00000041* + pci:v00001A78d00000042* + ID_MODEL_FROM_DATABASE=FlashMAX II + ++pci:v00001A78d00000050* ++ ID_MODEL_FROM_DATABASE=FlashMAX III ++ + pci:v00001A84* + ID_VENDOR_FROM_DATABASE=Commex Technologies + +@@ -52682,6 +52850,15 @@ pci:v00001AEDd00001008* + pci:v00001AEDd00002001* + ID_MODEL_FROM_DATABASE=ioDrive2 + ++pci:v00001AEDd00003001* ++ ID_MODEL_FROM_DATABASE=ioMemory FHHL ++ ++pci:v00001AEDd00003002* ++ ID_MODEL_FROM_DATABASE=ioMemory HHHL ++ ++pci:v00001AEDd00003003* ++ ID_MODEL_FROM_DATABASE=ioMemory Mezzanine ++ + pci:v00001AEE* + ID_VENDOR_FROM_DATABASE=Caustic Graphics Inc. + +@@ -52775,6 +52952,9 @@ pci:v00001B21d00001080* + pci:v00001B21d00001080sv00001849sd00001080* + ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) + ++pci:v00001B21d00001142* ++ ID_MODEL_FROM_DATABASE=ASM1042A USB 3.0 Host Controller ++ + pci:v00001B2C* + ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. + +@@ -52916,6 +53096,9 @@ pci:v00001B4Bd00009485* + pci:v00001B55* + ID_VENDOR_FROM_DATABASE=NetUP Inc. + ++pci:v00001B55d000018F6* ++ ID_MODEL_FROM_DATABASE=Dual DVB Universal CI card ++ + pci:v00001B55d00002A2C* + ID_MODEL_FROM_DATABASE=Dual DVB-S2-CI card + +@@ -53135,6 +53318,9 @@ pci:v00001CE4d00000002* + pci:v00001CF7* + ID_VENDOR_FROM_DATABASE=Subspace Dynamics + ++pci:v00001D21* ++ ID_VENDOR_FROM_DATABASE=Allo ++ + pci:v00001D44* + ID_VENDOR_FROM_DATABASE=DPT + +@@ -54956,15 +55142,30 @@ pci:v00008086d00000044sv00001025sd00000347* + pci:v00008086d00000044sv00001025sd00000487* + ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) + ++pci:v00008086d00000044sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (R730 Laptop) ++ ++pci:v00008086d00000044sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00000044sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) + + pci:v00008086d00000045* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port + ++pci:v00008086d00000045sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00000046* + ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller + ++pci:v00008086d00000046sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (R730 Laptop) ++ ++pci:v00008086d00000046sv000017C0sd000010D9* ++ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00000046sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) + +@@ -55238,6 +55439,9 @@ pci:v00008086d00000150* + pci:v00008086d00000150sv00001043sd000084CA* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) + ++pci:v00008086d00000150sv000015D9sd00000624* ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (X9SCM-F Motherboard) ++ + pci:v00008086d00000150sv00001849sd00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) + +@@ -55445,6 +55649,9 @@ pci:v00008086d00000416sv000017AAsd0000220E* + pci:v00008086d0000041A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller + ++pci:v00008086d0000041E* ++ ID_MODEL_FROM_DATABASE=4th Generation Core Processor Family Integrated Graphics Controller ++ + pci:v00008086d00000433* + ID_MODEL_FROM_DATABASE=Coleto Creek ACC - ME/CPM interface + +@@ -56727,241 +56934,85 @@ pci:v00008086d00000EFD* + ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000F00* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +- +-pci:v00008086d00000F01* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +- +-pci:v00008086d00000F02* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +- +-pci:v00008086d00000F03* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register + + pci:v00008086d00000F04* +- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller +- +-pci:v00008086d00000F05* +- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller + + pci:v00008086d00000F06* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller +- +-pci:v00008086d00000F07* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 DMA Controller + + pci:v00008086d00000F08* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller + + pci:v00008086d00000F09* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller + + pci:v00008086d00000F0A* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 +- +-pci:v00008086d00000F0B* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #1 + + pci:v00008086d00000F0C* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 +- +-pci:v00008086d00000F0D* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #2 + + pci:v00008086d00000F0E* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller +- +-pci:v00008086d00000F0F* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller +- +-pci:v00008086d00000F10* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller +- +-pci:v00008086d00000F11* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller +- +-pci:v00008086d00000F12* +- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller +- +-pci:v00008086d00000F13* +- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 SPI Controller + + pci:v00008086d00000F14* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller + + pci:v00008086d00000F15* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller + + pci:v00008086d00000F16* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller +- +-pci:v00008086d00000F17* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller + + pci:v00008086d00000F18* +- ID_MODEL_FROM_DATABASE=ValleyView SEC +- +-pci:v00008086d00000F19* +- ID_MODEL_FROM_DATABASE=ValleyView SEC +- +-pci:v00008086d00000F1A* +- ID_MODEL_FROM_DATABASE=ValleyView SEC +- +-pci:v00008086d00000F1B* +- ID_MODEL_FROM_DATABASE=ValleyView SEC ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine + + pci:v00008086d00000F1C* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F1D* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F1E* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F1F* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F20* +- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller +- +-pci:v00008086d00000F21* +- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller +- +-pci:v00008086d00000F22* +- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller +- +-pci:v00008086d00000F23* +- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller +- +-pci:v00008086d00000F24* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F25* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F26* +- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller +- +-pci:v00008086d00000F27* +- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Power Control Unit + + pci:v00008086d00000F28* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F29* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F2A* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F2B* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F2E* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F2F* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F30* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPE Audio Controller + + pci:v00008086d00000F31* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 +- +-pci:v00008086d00000F32* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 +- +-pci:v00008086d00000F33* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Graphics & Display + + pci:v00008086d00000F34* +- ID_MODEL_FROM_DATABASE=ValleyView USB Enhanced Host Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB EHCI + + pci:v00008086d00000F35* +- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller +- +-pci:v00008086d00000F36* +- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB xHCI + + pci:v00008086d00000F37* +- ID_MODEL_FROM_DATABASE=ValleyView OTG ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series OTG USB Device + + pci:v00008086d00000F38* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F39* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3A* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3B* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3C* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3D* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3E* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3F* +- ID_MODEL_FROM_DATABASE=ValleyView ISP ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Camera ISP + + pci:v00008086d00000F40* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 DMA Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 DMA Controller + + pci:v00008086d00000F41* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #1 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #1 + + pci:v00008086d00000F42* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #2 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #2 + + pci:v00008086d00000F43* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #3 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #3 + + pci:v00008086d00000F44* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #4 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #4 + + pci:v00008086d00000F45* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #5 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #5 + + pci:v00008086d00000F46* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #6 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #6 + + pci:v00008086d00000F47* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #7 +- +-pci:v00008086d00000F48* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F49* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4A* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4B* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4C* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4D* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4E* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4F* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F50* +- ID_MODEL_FROM_DATABASE=ValleyView MIPI-HSI Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #7 + + pci:v00008086d00001000* + ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) +@@ -57842,6 +57893,9 @@ pci:v00008086d00001091* + pci:v00008086d00001092* + ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection + ++pci:v00008086d00001092sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d00001093* + ID_MODEL_FROM_DATABASE=PRO/100 VM Network Connection + +@@ -59403,7 +59457,7 @@ pci:v00008086d0000154Asv00008086sd0000011C* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154C* +- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function + + pci:v00008086d0000154D* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter +@@ -59460,34 +59514,37 @@ pci:v00008086d00001570* + ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V + + pci:v00008086d00001571* +- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function + + pci:v00008086d00001572* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ + + pci:v00008086d00001572sv00001028sd00001F99* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710/I350 rNDC) ++ ++pci:v00008086d00001572sv00008086sd00000000* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710) + + pci:v00008086d00001572sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 2P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000007* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d00001572sv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d0000157B* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +@@ -59496,17 +59553,20 @@ pci:v00008086d0000157C* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + + pci:v00008086d00001580* +- ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE backplane + + pci:v00008086d00001581* +- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane + + pci:v00008086d00001581sv00001028sd00001F98* +- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane (Ethernet 10G 4P X710-k bNDC) + + pci:v00008086d00001583* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + ++pci:v00008086d00001583sv00008086sd00000000* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) ++ + pci:v00008086d00001583sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + +@@ -59519,6 +59579,9 @@ pci:v00008086d00001583sv00008086sd00000003* + pci:v00008086d00001584* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + ++pci:v00008086d00001584sv00008086sd00000000* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) ++ + pci:v00008086d00001584sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) + +@@ -61244,9 +61307,15 @@ pci:v00008086d00002448sv0000104Dsd0000902D* + pci:v00008086d00002448sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) + ++pci:v00008086d00002448sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d00002448sv0000144Dsd0000C00C* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) + ++pci:v00008086d00002448sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (R730 Laptop) ++ + pci:v00008086d00002448sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) + +@@ -61259,6 +61328,12 @@ pci:v00008086d00002448sv00001734sd00001055* + pci:v00008086d00002448sv000017AAsd000020AE* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) + ++pci:v00008086d00002448sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion Akoya E7214 Notebook PC [MD98410]) ++ ++pci:v00008086d00002448sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002448sv00008086sd0000544B* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) + +@@ -61872,7 +61947,7 @@ pci:v00008086d000024C5sv00001014sd00000267* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) + + pci:v00008086d000024C5sv00001014sd00000537* +- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T4x Series) + + pci:v00008086d000024C5sv00001014sd0000055F* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) +@@ -61944,7 +62019,7 @@ pci:v00008086d000024C6* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller + + pci:v00008086d000024C6sv00001014sd00000524* +- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T4x Series) + + pci:v00008086d000024C6sv00001014sd00000525* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) +@@ -64358,6 +64433,9 @@ pci:v00008086d000027A0sv0000103Csd000030A3* + pci:v00008086d000027A0sv00001043sd00001237* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) + ++pci:v00008086d000027A0sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027A0sv000017AAsd00002015* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) + +@@ -64373,6 +64451,9 @@ pci:v00008086d000027A1sv0000103Csd0000309F* + pci:v00008086d000027A1sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) + ++pci:v00008086d000027A1sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027A2* + ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller + +@@ -64457,6 +64538,9 @@ pci:v00008086d000027B9sv0000103Csd000030A1* + pci:v00008086d000027B9sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) + ++pci:v00008086d000027B9sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027B9sv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) + +@@ -64568,6 +64652,9 @@ pci:v00008086d000027C4sv00001025sd0000006C* + pci:v00008086d000027C4sv00001028sd000001D7* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) + ++pci:v00008086d000027C4sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027C4sv000017AAsd0000200E* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) + +@@ -64625,6 +64712,9 @@ pci:v00008086d000027C8sv00001043sd00008179* + pci:v00008086d000027C8sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) + ++pci:v00008086d000027C8sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027C8sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) + +@@ -64691,6 +64781,9 @@ pci:v00008086d000027C9sv00001043sd00008179* + pci:v00008086d000027C9sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) + ++pci:v00008086d000027C9sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027C9sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) + +@@ -64757,6 +64850,9 @@ pci:v00008086d000027CAsv00001043sd00008179* + pci:v00008086d000027CAsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) + ++pci:v00008086d000027CAsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027CAsv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) + +@@ -64817,6 +64913,9 @@ pci:v00008086d000027CBsv00001043sd00008179* + pci:v00008086d000027CBsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) + ++pci:v00008086d000027CBsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027CBsv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) + +@@ -64880,6 +64979,9 @@ pci:v00008086d000027CCsv00001043sd00008179* + pci:v00008086d000027CCsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) + ++pci:v00008086d000027CCsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027CCsv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) + +@@ -64913,6 +65015,9 @@ pci:v00008086d000027D0sv0000103Csd0000309F* + pci:v00008086d000027D0sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) + ++pci:v00008086d000027D0sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D0sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) + +@@ -64937,6 +65042,9 @@ pci:v00008086d000027D2sv0000103Csd0000309F* + pci:v00008086d000027D2sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) + ++pci:v00008086d000027D2sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D2sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) + +@@ -64952,6 +65060,9 @@ pci:v00008086d000027D2sv00008086sd0000544B* + pci:v00008086d000027D4* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 + ++pci:v00008086d000027D4sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D4sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) + +@@ -64970,6 +65081,9 @@ pci:v00008086d000027D6* + pci:v00008086d000027D6sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) + ++pci:v00008086d000027D6sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D6sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) + +@@ -65021,6 +65135,9 @@ pci:v00008086d000027D8sv00001043sd000082EA* + pci:v00008086d000027D8sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) + ++pci:v00008086d000027D8sv00001071sd00008207* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D8sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) + +@@ -65099,6 +65216,9 @@ pci:v00008086d000027DAsv00001043sd00008179* + pci:v00008086d000027DAsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) + ++pci:v00008086d000027DAsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027DAsv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) + +@@ -65258,6 +65378,9 @@ pci:v00008086d00002815sv0000104Dsd00009005* + pci:v00008086d00002815sv0000104Dsd0000902D* + ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) + ++pci:v00008086d00002815sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002820* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] + +@@ -65342,6 +65465,9 @@ pci:v00008086d00002829sv0000104Dsd0000902D* + pci:v00008086d00002829sv000017AAsd000020A7* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) + ++pci:v00008086d00002829sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002829sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) + +@@ -65393,6 +65519,9 @@ pci:v00008086d00002830sv00001462sd00007235* + pci:v00008086d00002830sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) + ++pci:v00008086d00002830sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002830sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) + +@@ -65435,6 +65564,9 @@ pci:v00008086d00002831sv00001462sd00007235* + pci:v00008086d00002831sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) + ++pci:v00008086d00002831sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002831sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) + +@@ -65474,6 +65606,9 @@ pci:v00008086d00002832sv0000104Dsd0000902D* + pci:v00008086d00002832sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) + ++pci:v00008086d00002832sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002832sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) + +@@ -65519,6 +65654,9 @@ pci:v00008086d00002834sv00001462sd00007235* + pci:v00008086d00002834sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) + ++pci:v00008086d00002834sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002834sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) + +@@ -65555,6 +65693,9 @@ pci:v00008086d00002835sv0000104Dsd0000902D* + pci:v00008086d00002835sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) + ++pci:v00008086d00002835sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002835sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) + +@@ -65597,6 +65738,9 @@ pci:v00008086d00002836sv00001462sd00007235* + pci:v00008086d00002836sv000017AAsd000020AB* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) + ++pci:v00008086d00002836sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002836sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) + +@@ -65633,6 +65777,9 @@ pci:v00008086d0000283Asv0000104Dsd0000902D* + pci:v00008086d0000283Asv000017AAsd000020AB* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) + ++pci:v00008086d0000283Asv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d0000283Asv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) + +@@ -65669,6 +65816,9 @@ pci:v00008086d0000283Esv00001462sd00007235* + pci:v00008086d0000283Esv000017AAsd000020A9* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) + ++pci:v00008086d0000283Esv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d0000283Esv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) + +@@ -65687,6 +65837,9 @@ pci:v00008086d0000283Fsv0000104Dsd0000902D* + pci:v00008086d0000283Fsv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) + ++pci:v00008086d0000283Fsv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002841* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 + +@@ -65699,6 +65852,9 @@ pci:v00008086d00002841sv0000104Dsd0000902D* + pci:v00008086d00002841sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) + ++pci:v00008086d00002841sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002843* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 + +@@ -65708,12 +65864,18 @@ pci:v00008086d00002843sv0000104Dsd0000902D* + pci:v00008086d00002843sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) + ++pci:v00008086d00002843sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002845* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 + + pci:v00008086d00002845sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) + ++pci:v00008086d00002845sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002847* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 + +@@ -65726,6 +65888,9 @@ pci:v00008086d00002847sv0000103Csd000030C1* + pci:v00008086d00002847sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) + ++pci:v00008086d00002847sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002849* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 + +@@ -65792,6 +65957,9 @@ pci:v00008086d0000284Bsv000014F1sd00005051* + pci:v00008086d0000284Bsv000017AAsd000020AC* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) + ++pci:v00008086d0000284Bsv000017C0sd00004088* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d0000284Bsv00008384sd00007616* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) + +@@ -65831,6 +65999,9 @@ pci:v00008086d00002850sv0000104Dsd0000902D* + pci:v00008086d00002850sv000017AAsd000020A6* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) + ++pci:v00008086d00002850sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002850sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) + +@@ -66794,6 +66965,9 @@ pci:v00008086d00002A00sv000017AAsd000020B1* + pci:v00008086d00002A00sv000017AAsd000020B3* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) + ++pci:v00008086d00002A00sv000017C0sd00004082* ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002A00sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) + +@@ -66821,6 +66995,9 @@ pci:v00008086d00002A02sv0000104Dsd0000902D* + pci:v00008086d00002A02sv000017AAsd000020B5* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) + ++pci:v00008086d00002A02sv000017C0sd00004082* ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002A02sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) + +@@ -66828,7 +67005,7 @@ pci:v00008086d00002A03* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) + + pci:v00008086d00002A03sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Inspiron 1420) + + pci:v00008086d00002A03sv0000103Csd000030C0* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) +@@ -66842,6 +67019,9 @@ pci:v00008086d00002A03sv0000104Dsd0000902D* + pci:v00008086d00002A03sv000017AAsd000020B5* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) + ++pci:v00008086d00002A03sv000017C0sd00004082* ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002A03sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) + +@@ -67317,13 +67497,13 @@ pci:v00008086d00002D10* + ID_MODEL_FROM_DATABASE=Core Processor QPI Link 0 + + pci:v00008086d00002D11* +- ID_MODEL_FROM_DATABASE=Core Processor QPI Physical 0 ++ ID_MODEL_FROM_DATABASE=1st Generation Core Processor QPI Physical 0 + + pci:v00008086d00002D12* +- ID_MODEL_FROM_DATABASE=Core Processor Reserved ++ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved + + pci:v00008086d00002D13* +- ID_MODEL_FROM_DATABASE=Core Processor Reserved ++ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved + + pci:v00008086d00002D81* + ID_MODEL_FROM_DATABASE=Xeon 5600 Series QuickPath Architecture System Address Decoder +@@ -67427,6 +67607,9 @@ pci:v00008086d00002E11* + pci:v00008086d00002E12* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + ++pci:v00008086d00002E12sv000017AAsd00003048* ++ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (ThinkCentre M6258) ++ + pci:v00008086d00002E13* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + +@@ -69317,6 +69500,12 @@ pci:v00008086d00003B09* + pci:v00008086d00003B09sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) + ++pci:v00008086d00003B09sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (R730 Laptop) ++ ++pci:v00008086d00003B09sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B0A* + ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller + +@@ -69416,18 +69605,36 @@ pci:v00008086d00003B26* + pci:v00008086d00003B28* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller + ++pci:v00008086d00003B28sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (R730 Laptop) ++ ++pci:v00008086d00003B28sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B29* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller + + pci:v00008086d00003B29sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) + ++pci:v00008086d00003B29sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (R730 Laptop) ++ ++pci:v00008086d00003B29sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B2C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller + + pci:v00008086d00003B2D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller + ++pci:v00008086d00003B2Dsv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (R730 Laptop) ++ ++pci:v00008086d00003B2Dsv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B2Dsv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) + +@@ -69458,9 +69665,15 @@ pci:v00008086d00003B30sv00001028sd000002DA* + pci:v00008086d00003B30sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) + ++pci:v00008086d00003B30sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (R730 Laptop) ++ + pci:v00008086d00003B30sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B30sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B30sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) + +@@ -69470,6 +69683,12 @@ pci:v00008086d00003B32* + pci:v00008086d00003B32sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) + ++pci:v00008086d00003B32sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (R730 Laptop) ++ ++pci:v00008086d00003B32sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B34* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller + +@@ -69482,9 +69701,15 @@ pci:v00008086d00003B34sv00001028sd000002DA* + pci:v00008086d00003B34sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + ++pci:v00008086d00003B34sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) ++ + pci:v00008086d00003B34sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B34sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B34sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + +@@ -69518,9 +69743,15 @@ pci:v00008086d00003B3Csv00001028sd000002DA* + pci:v00008086d00003B3Csv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + ++pci:v00008086d00003B3Csv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) ++ + pci:v00008086d00003B3Csv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B3Csv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B3Csv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + +@@ -69545,9 +69776,15 @@ pci:v00008086d00003B42sv00001028sd000002DA* + pci:v00008086d00003B42sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) + ++pci:v00008086d00003B42sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (R730 Laptop) ++ + pci:v00008086d00003B42sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) + ++pci:v00008086d00003B42sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B44* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 + +@@ -69557,24 +69794,39 @@ pci:v00008086d00003B44sv00001028sd0000040B* + pci:v00008086d00003B44sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) + ++pci:v00008086d00003B44sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B46* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 + + pci:v00008086d00003B46sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) + ++pci:v00008086d00003B46sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (R730 Laptop) ++ ++pci:v00008086d00003B46sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B48* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 + + pci:v00008086d00003B48sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) + ++pci:v00008086d00003B48sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (R730 Laptop) ++ + pci:v00008086d00003B4A* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 + + pci:v00008086d00003B4Asv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) + ++pci:v00008086d00003B4Asv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B4C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 + +@@ -69599,9 +69851,15 @@ pci:v00008086d00003B56sv00001028sd000002DA* + pci:v00008086d00003B56sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) + ++pci:v00008086d00003B56sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (R730 Laptop) ++ + pci:v00008086d00003B56sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) + ++pci:v00008086d00003B56sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B56sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) + +@@ -69617,6 +69875,9 @@ pci:v00008086d00003B64sv00001025sd00000347* + pci:v00008086d00003B64sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B64sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B64sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) + +@@ -69990,7 +70251,7 @@ pci:v00008086d00004222sv00008086sd00001000* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004222sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (WM3945ABG MOW2) + + pci:v00008086d00004222sv00008086sd00001005* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) +@@ -71168,6 +71429,114 @@ pci:v00008086d00008C5E* + pci:v00008086d00008C5F* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LPC Controller + ++pci:v00008086d00008C80* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C81* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C82* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] ++ ++pci:v00008086d00008C83* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] ++ ++pci:v00008086d00008C84* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C85* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C86* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C87* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C88* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C89* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C8E* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C8F* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C90* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 1 ++ ++pci:v00008086d00008C92* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 2 ++ ++pci:v00008086d00008C94* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 3 ++ ++pci:v00008086d00008C96* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 4 ++ ++pci:v00008086d00008C98* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 5 ++ ++pci:v00008086d00008C9A* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 6 ++ ++pci:v00008086d00008C9C* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 7 ++ ++pci:v00008086d00008C9E* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 8 ++ ++pci:v00008086d00008CA0* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HD Audio Controller ++ ++pci:v00008086d00008CA2* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SMBus Controller ++ ++pci:v00008086d00008CA4* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Thermal Controller ++ ++pci:v00008086d00008CA6* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #1 ++ ++pci:v00008086d00008CAD* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #2 ++ ++pci:v00008086d00008CB1* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB xHCI Controller ++ ++pci:v00008086d00008CB3* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LAN Controller ++ ++pci:v00008086d00008CBA* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #1 ++ ++pci:v00008086d00008CBB* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #2 ++ ++pci:v00008086d00008CBC* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family IDE-R Controller ++ ++pci:v00008086d00008CBD* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family KT Controller ++ ++pci:v00008086d00008CC1* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller ++ ++pci:v00008086d00008CC2* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller ++ ++pci:v00008086d00008CC3* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HM97 LPC Controller ++ ++pci:v00008086d00008CC4* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Z97 LPC Controller ++ ++pci:v00008086d00008CC6* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family H97 Controller ++ + pci:v00008086d00008D00* + ID_MODEL_FROM_DATABASE=Wellsburg 4-port SATA Controller [IDE mode] + +@@ -71379,208 +71748,208 @@ pci:v00008086d000096A1* + ID_MODEL_FROM_DATABASE=Integrated RAID + + pci:v00008086d00009C00* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] + + pci:v00008086d00009C01* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] + + pci:v00008086d00009C02* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] + + pci:v00008086d00009C03* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] + + pci:v00008086d00009C03sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] (ThinkPad X240) + + pci:v00008086d00009C04* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C05* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C06* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C07* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C08* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] + + pci:v00008086d00009C09* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] + + pci:v00008086d00009C0A* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0B* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0C* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0D* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0E* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C0F* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C10* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 + + pci:v00008086d00009C11* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 + + pci:v00008086d00009C12* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 + + pci:v00008086d00009C13* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 + + pci:v00008086d00009C14* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 + + pci:v00008086d00009C15* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 + + pci:v00008086d00009C16* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 + + pci:v00008086d00009C17* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 + + pci:v00008086d00009C18* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 + + pci:v00008086d00009C19* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 + + pci:v00008086d00009C1A* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 + + pci:v00008086d00009C1B* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 + + pci:v00008086d00009C1C* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 + + pci:v00008086d00009C1D* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 + + pci:v00008086d00009C1E* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 + + pci:v00008086d00009C1F* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 + + pci:v00008086d00009C20* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller ++ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller + + pci:v00008086d00009C20sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller (ThinkPad X240) + + pci:v00008086d00009C21* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller ++ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller + + pci:v00008086d00009C22* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller ++ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller + + pci:v00008086d00009C22sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller (ThinkPad X240) + + pci:v00008086d00009C23* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters ++ ID_MODEL_FROM_DATABASE=8 Series CHAP Counters + + pci:v00008086d00009C24* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP Thermal ++ ID_MODEL_FROM_DATABASE=8 Series Thermal + + pci:v00008086d00009C26* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 ++ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 + + pci:v00008086d00009C26sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 (ThinkPad X240) + + pci:v00008086d00009C2D* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 ++ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #2 + + pci:v00008086d00009C31* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC ++ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC + + pci:v00008086d00009C31sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC (ThinkPad X240) + + pci:v00008086d00009C35* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller ++ ID_MODEL_FROM_DATABASE=8 Series SDIO Controller + + pci:v00008086d00009C36* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP Audio DSP Controller ++ ID_MODEL_FROM_DATABASE=8 Series Audio DSP Controller + + pci:v00008086d00009C3A* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 ++ ID_MODEL_FROM_DATABASE=8 Series HECI #0 + + pci:v00008086d00009C3Asv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series HECI #0 (ThinkPad X240) + + pci:v00008086d00009C3B* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 ++ ID_MODEL_FROM_DATABASE=8 Series HECI #1 + + pci:v00008086d00009C3C* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI IDER ++ ID_MODEL_FROM_DATABASE=8 Series HECI IDER + + pci:v00008086d00009C3D* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI KT ++ ID_MODEL_FROM_DATABASE=8 Series HECI KT + + pci:v00008086d00009C40* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C41* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C42* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C43* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C43sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller (ThinkPad X240) + + pci:v00008086d00009C44* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C45* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C46* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C47* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C60* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP Low Power Sub-System DMA ++ ID_MODEL_FROM_DATABASE=8 Series Low Power Sub-System DMA + + pci:v00008086d00009C61* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #0 ++ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #0 + + pci:v00008086d00009C62* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #1 ++ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #1 + + pci:v00008086d00009C63* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #0 ++ ID_MODEL_FROM_DATABASE=8 Series UART Controller #0 + + pci:v00008086d00009C64* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #1 ++ ID_MODEL_FROM_DATABASE=8 Series UART Controller #1 + + pci:v00008086d00009C65* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #0 ++ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #0 + + pci:v00008086d00009C66* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #1 ++ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #1 + + pci:v00008086d00009C83* + ID_MODEL_FROM_DATABASE=Wildcat Point-LP SATA Controller [AHCI Mode] +diff --git hwdb/20-usb-classes.hwdb hwdb/20-usb-classes.hwdb +index 3294d8a..418d39b 100644 +--- hwdb/20-usb-classes.hwdb ++++ hwdb/20-usb-classes.hwdb +@@ -311,6 +311,9 @@ usb:v*p*d*dcEFdsc02dp02* + usb:v*p*d*dcEFdsc03dp01* + ID_USB_PROTOCOL_FROM_DATABASE=Cable Based Association + ++usb:v*p*d*dcEFdsc05* ++ ID_USB_SUBCLASS_FROM_DATABASE=USB3 Vision ++ + usb:v*p*d*dcFE* + ID_USB_CLASS_FROM_DATABASE=Application Specific Interface + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 05f267d..89cd5b1 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -284,9 +284,18 @@ usb:v03EBp2310* + usb:v03EBp2FE4* + ID_MODEL_FROM_DATABASE=ATxmega32A4U DFU bootloader + ++usb:v03EBp2FE6* ++ ID_MODEL_FROM_DATABASE=Cactus V6 (DFU) ++ ++usb:v03EBp2FEA* ++ ID_MODEL_FROM_DATABASE=Cactus RF60 (DFU) ++ + usb:v03EBp2FF0* + ID_MODEL_FROM_DATABASE=atmega32u2 DFU bootloader + ++usb:v03EBp2FF4* ++ ID_MODEL_FROM_DATABASE=atmega32u4 DFU bootloader ++ + usb:v03EBp2FFA* + ID_MODEL_FROM_DATABASE=at90usb162 DFU bootloader + +@@ -4409,6 +4418,9 @@ usb:v0424p2602* + usb:v0424p2640* + ID_MODEL_FROM_DATABASE=USB 2.0 Hub + ++usb:v0424p2660* ++ ID_MODEL_FROM_DATABASE=Hub ++ + usb:v0424p4060* + ID_MODEL_FROM_DATABASE=Ultra Fast Media Reader + +@@ -5373,7 +5385,7 @@ usb:v0457p0162* + ID_MODEL_FROM_DATABASE=SiS162 usb Wireless LAN Adapter + + usb:v0457p0163* +- ID_MODEL_FROM_DATABASE=802.11 Wireless LAN Adapter ++ ID_MODEL_FROM_DATABASE=SiS163U 802.11 Wireless LAN Adapter + + usb:v0457p0817* + ID_MODEL_FROM_DATABASE=SiS-184-ASUS-4352.17 touch panel +@@ -6947,6 +6959,9 @@ usb:v046Dp082D* + usb:v046Dp0830* + ID_MODEL_FROM_DATABASE=QuickClip + ++usb:v046Dp0837* ++ ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam ++ + usb:v046Dp0840* + ID_MODEL_FROM_DATABASE=QuickCam Express + +@@ -7856,6 +7871,9 @@ usb:v046DpC52F* + usb:v046DpC532* + ID_MODEL_FROM_DATABASE=Unifying Receiver + ++usb:v046DpC534* ++ ID_MODEL_FROM_DATABASE=Unifying Receiver ++ + usb:v046DpC603* + ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT + +@@ -8738,6 +8756,9 @@ usb:v0480pA007* + usb:v0480pA009* + ID_MODEL_FROM_DATABASE=Stor.E Basics + ++usb:v0480pA00D* ++ ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB ++ + usb:v0480pD010* + ID_MODEL_FROM_DATABASE=External Disk 3TB + +@@ -10943,6 +10964,9 @@ usb:v04A9p3196* + usb:v04A9p319A* + ID_MODEL_FROM_DATABASE=EOS 7D + ++usb:v04A9p319B* ++ ID_MODEL_FROM_DATABASE=EOS 50D ++ + usb:v04A9p31AA* + ID_MODEL_FROM_DATABASE=SELPHY CP770 + +@@ -11219,6 +11243,15 @@ usb:v04A9p3277* + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + ++usb:v04A9p327F* ++ ID_MODEL_FROM_DATABASE=EOS Rebel T5 / EOS 1200D / EOS Kiss X70 ++ ++usb:v04A9p3284* ++ ID_MODEL_FROM_DATABASE=PowerShot D30 ++ ++usb:v04A9p3286* ++ ID_MODEL_FROM_DATABASE=PowerShot SX600 HS ++ + usb:v04A9p3288* + ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 + +@@ -13040,6 +13073,9 @@ usb:v04D8p0036* + usb:v04D8p00E0* + ID_MODEL_FROM_DATABASE=PIC32 Starter Board + ++usb:v04D8p04CD* ++ ID_MODEL_FROM_DATABASE=28Cxxx EEPROM Programmer ++ + usb:v04D8p0A04* + ID_MODEL_FROM_DATABASE=AGP LIN Serial Analyzer + +@@ -14093,6 +14129,9 @@ usb:v04E8p5F05* + usb:v04E8p6032* + ID_MODEL_FROM_DATABASE=G2 Portable hard drive + ++usb:v04E8p6033* ++ ID_MODEL_FROM_DATABASE=G2 Portable device ++ + usb:v04E8p6034* + ID_MODEL_FROM_DATABASE=G2 Portable hard drive + +@@ -14102,6 +14141,9 @@ usb:v04E8p60B3* + usb:v04E8p60C4* + ID_MODEL_FROM_DATABASE=M2 Portable Hard Drive USB 3.0 + ++usb:v04E8p6124* ++ ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive ++ + usb:v04E8p61B6* + ID_MODEL_FROM_DATABASE=M3 Portable Hard Drive 1TB + +@@ -15224,6 +15266,9 @@ usb:v04F9p0223* + usb:v04F9p0248* + ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer + ++usb:v04F9p02B3* ++ ID_MODEL_FROM_DATABASE=MFC J4510DW ++ + usb:v04F9p1000* + ID_MODEL_FROM_DATABASE=Printer + +@@ -15546,7 +15591,7 @@ usb:v050Dp0013* + ID_MODEL_FROM_DATABASE=F8T013 Bluetooth Adapter + + usb:v050Dp0017* +- ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 ++ ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 / F4U017 USB 2.0 7-port Hub + + usb:v050Dp003A* + ID_MODEL_FROM_DATABASE=Universal Media Reader +@@ -15683,6 +15728,9 @@ usb:v050Dp1106* + usb:v050Dp1109* + ID_MODEL_FROM_DATABASE=F9L1109v1 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] + ++usb:v050Dp110A* ++ ID_MODEL_FROM_DATABASE=F9L1101v2 802.11abgn Wireless Adapter [Realtek RTL8192DU] ++ + usb:v050Dp11F2* + ID_MODEL_FROM_DATABASE=ISY Wireless Micro Adapter IWL 2000 [RTL8188CUS] + +@@ -15723,7 +15771,7 @@ usb:v050Dp6051* + ID_MODEL_FROM_DATABASE=F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201] + + usb:v050Dp615A* +- ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101 802.11abgn Wireless Adapter [Broadcom BCM4323] ++ ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101v1 802.11abgn Wireless Adapter [Broadcom BCM4323] + + usb:v050Dp7050* + ID_MODEL_FROM_DATABASE=F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887] +@@ -16358,6 +16406,9 @@ usb:v0547p2810* + usb:v0547p4D90* + ID_MODEL_FROM_DATABASE=AmScope MD1900 camera + ++usb:v0547p7000* ++ ID_MODEL_FROM_DATABASE=PowerSpec MCE460 Front Panel LED Display ++ + usb:v0547p7777* + ID_MODEL_FROM_DATABASE=Bluetooth Device + +@@ -21677,6 +21728,9 @@ usb:v05F9p2601* + usb:v05F9p2602* + ID_MODEL_FROM_DATABASE=Datalogic Magellan 1100i Barcode Scanner + ++usb:v05F9p4204* ++ ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4470 Fixed Scanner ++ + usb:v05F9p5204* + ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4170 (config mode) + +@@ -23234,6 +23288,9 @@ usb:v068Ep00D3* + usb:v068Ep00E2* + ID_MODEL_FROM_DATABASE=HFX OEM Joystick + ++usb:v068Ep00F0* ++ ID_MODEL_FROM_DATABASE=Multi-Function Panel ++ + usb:v068Ep00F1* + ID_MODEL_FROM_DATABASE=Pro Throttle + +@@ -25838,6 +25895,9 @@ usb:v0781p74D0* + usb:v0781p74D1* + ID_MODEL_FROM_DATABASE=Sansa Clip+ (msc) + ++usb:v0781p74E5* ++ ID_MODEL_FROM_DATABASE=Sansa Clip Zip ++ + usb:v0781p8181* + ID_MODEL_FROM_DATABASE=Pen Flash + +@@ -26219,6 +26279,9 @@ usb:v07AAp001A* + usb:v07AAp001C* + ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] + ++usb:v07AAp0020* ++ ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] ++ + usb:v07AAp002E* + ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] + +@@ -26939,6 +27002,9 @@ usb:v07CApA827* + usb:v07CApA867* + ID_MODEL_FROM_DATABASE=AVerTV DVB-T (A867) + ++usb:v07CApB300* ++ ID_MODEL_FROM_DATABASE=A300 DVB-T TV receiver ++ + usb:v07CApB800* + ID_MODEL_FROM_DATABASE=MR800 FM Radio + +@@ -27941,6 +28007,9 @@ usb:v083Ap4507* + usb:v083Ap4521* + ID_MODEL_FROM_DATABASE=Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887] + ++usb:v083Ap4531* ++ ID_MODEL_FROM_DATABASE=T-Com Sinus 154 data II [Intersil ISL3887] ++ + usb:v083Ap5046* + ID_MODEL_FROM_DATABASE=SpeedStream 10/100 Ethernet [pegasus] + +@@ -30476,6 +30545,9 @@ usb:v0957p0518* + usb:v0957p0A07* + ID_MODEL_FROM_DATABASE=34411A Multimeter + ++usb:v0957p1507* ++ ID_MODEL_FROM_DATABASE=33210A Waveform Generator ++ + usb:v0957p1745* + ID_MODEL_FROM_DATABASE=Test and Measurement Device (IVI) + +@@ -30876,13 +30948,13 @@ usb:v09D9* + ID_VENDOR_FROM_DATABASE=KRF Tech, Ltd + + usb:v09DA* +- ID_VENDOR_FROM_DATABASE=A4 Tech Co., Ltd ++ ID_VENDOR_FROM_DATABASE=A4Tech Co., Ltd. + + usb:v09DAp0006* + ID_MODEL_FROM_DATABASE=Optical Mouse WOP-35 / Trust 450L Optical Mouse + + usb:v09DAp000A* +- ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D ++ ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D / OP-620D + + usb:v09DAp000E* + ID_MODEL_FROM_DATABASE=X-F710F Optical Mouse 3xFire Gaming Mouse +@@ -32174,6 +32246,9 @@ usb:v0AB1* + usb:v0AB1p0002* + ID_MODEL_FROM_DATABASE=OBID RFID-Reader + ++usb:v0AB1p0004* ++ ID_MODEL_FROM_DATABASE=OBID classic-pro ++ + usb:v0ABA* + ID_VENDOR_FROM_DATABASE=Ellisys + +@@ -32571,7 +32646,7 @@ usb:v0B05p1708* + ID_MODEL_FROM_DATABASE=Mass Storage Device + + usb:v0B05p170B* +- ID_MODEL_FROM_DATABASE=Mass Storage Device ++ ID_MODEL_FROM_DATABASE=Multi card reader + + usb:v0B05p170C* + ID_MODEL_FROM_DATABASE=WL-159g 802.11bg +@@ -32687,6 +32762,9 @@ usb:v0B05p17A1* + usb:v0B05p17AB* + ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] + ++usb:v0B05p17C7* ++ ID_MODEL_FROM_DATABASE=WL-330NUL ++ + usb:v0B05p17C9* + ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] + +@@ -32714,6 +32792,9 @@ usb:v0B05p5410* + usb:v0B05p5412* + ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) + ++usb:v0B05p550F* ++ ID_MODEL_FROM_DATABASE=ASUS fonepad 7 ++ + usb:v0B05p6101* + ID_MODEL_FROM_DATABASE=Cable Modem + +@@ -32756,6 +32837,9 @@ usb:v0B0Dp0000* + usb:v0B0E* + ID_VENDOR_FROM_DATABASE=GN Netcom + ++usb:v0B0Ep034C* ++ ID_MODEL_FROM_DATABASE=Jabra UC Voice 750 MS ++ + usb:v0B0Ep0420* + ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 + +@@ -49610,6 +49694,12 @@ usb:v2659p1212* + usb:v2659p1213* + ID_MODEL_FROM_DATABASE=MediaTV Pro III MiniPCIe (US) + ++usb:v2676* ++ ID_VENDOR_FROM_DATABASE=Basler AG ++ ++usb:v2676pBA02* ++ ID_MODEL_FROM_DATABASE=ace ++ + usb:v2730* + ID_VENDOR_FROM_DATABASE=Citizen + +-- +1.7.9.2 + diff --git a/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch b/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch new file mode 100644 index 00000000..8647f1e1 --- /dev/null +++ b/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch @@ -0,0 +1,26 @@ +Based on 6fc27667950fe153033f0f49cb5b57e8954c3e54 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 30 Jun 2014 19:06:18 +0200 +Subject: [PATCH] tmpfiles: don't do automatic cleanup in $XDG_RUNTIME_DIR + +Now that logind will clean up all IPC resources of a user we should +really consider $XDG_RUNTIME_DIR as just another kind of IPC with the +same life-cycle logic as the other IPC resources. This should be safe +now to do since every user gets his own $XDG_RUNTIME_DIR tmpfs instance +with a fixed size limit, so that flooding of it will more effectively be +averted. +--- + tmpfiles.d/systemd.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- tmpfiles.d/systemd.conf ++++ tmpfiles.d/systemd.conf 2014-07-01 12:31:01.858735866 +0000 +@@ -7,7 +7,7 @@ + + # See tmpfiles.d(5) for details + +-d /run/user 0755 root root ~10d ++d /run/user 0755 root root - + F! /run/utmp 0664 root utmp - + + f /var/log/wtmp 0664 root utmp - diff --git a/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..7b77e2ab --- /dev/null +++ b/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,49 @@ +From 063e36db8aed7b54100b33089deb6d2e86d516b9 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Thu, 3 Jul 2014 16:13:48 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 377748a..9f3136a 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -1045,7 +1045,31 @@ bluetooth:v0159* + ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. + + bluetooth:v015A* +- ID_VENDOR_FROM_DATABASE=micus AG ++ ID_VENDOR_FROM_DATABASE=micas AG + + bluetooth:v015B* + ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. ++ ++bluetooth:v015C* ++ ID_VENDOR_FROM_DATABASE=Pitius Tec S.L. ++ ++bluetooth:v015D* ++ ID_VENDOR_FROM_DATABASE=Estimote, Inc. ++ ++bluetooth:v015E* ++ ID_VENDOR_FROM_DATABASE=Unikey Technologies, Inc. ++ ++bluetooth:v015F* ++ ID_VENDOR_FROM_DATABASE=Timer Cap Co. ++ ++bluetooth:v0160* ++ ID_VENDOR_FROM_DATABASE=AwoX ++ ++bluetooth:v0161* ++ ID_VENDOR_FROM_DATABASE=yikes ++ ++bluetooth:v0162* ++ ID_VENDOR_FROM_DATABASE=MADSGlobal NZ Ltd. ++ ++bluetooth:v0163* ++ ID_VENDOR_FROM_DATABASE=PCH International +-- +1.7.9.2 + diff --git a/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch b/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch new file mode 100644 index 00000000..a1046c39 --- /dev/null +++ b/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch @@ -0,0 +1,26 @@ +From 8ebf02d6f382ce1ac7e0d44a713b8795a07b08cd Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 30 Jun 2014 21:44:05 +0200 +Subject: [PATCH] units: skip mounting /tmp if it is a symlink + +We shouldn't get confused if people have symlinked /tmp somewhere, so +let's simply skip the mount then. +--- + units/tmp.mount | 1 + + 1 file changed, 1 insertion(+) + +diff --git units/tmp.mount units/tmp.mount +index 99a3ba3..00a0d28 100644 +--- units/tmp.mount ++++ units/tmp.mount +@@ -9,6 +9,7 @@ + Description=Temporary Directory + Documentation=man:hier(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems ++ConditionPathIsSymbolicLink=!/tmp + DefaultDependencies=no + Conflicts=umount.target + Before=local-fs.target umount.target +-- +1.7.9.2 + diff --git a/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch b/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch new file mode 100644 index 00000000..21d21356 --- /dev/null +++ b/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch @@ -0,0 +1,25 @@ +From 45e60962b7965f32755a76b79a28126299aac149 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 27 Jun 2014 14:20:17 +0200 +Subject: [PATCH] libudev: fix udev_queue_get_queue_is_empty() logic + +--- + src/libudev/libudev-queue.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index eb0e096..c32a7ef 100644 +--- src/libudev/libudev-queue.c ++++ src/libudev/libudev-queue.c +@@ -175,7 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) + **/ + _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) + { +- return access("/run/udev/queue", F_OK) >= 0; ++ return access("/run/udev/queue", F_OK) < 0; + } + + /** +-- +1.7.9.2 + diff --git a/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch b/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch new file mode 100644 index 00000000..a9458e36 --- /dev/null +++ b/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch @@ -0,0 +1,248 @@ +Based on 14cb733684d3c3f50d088a3a370ddf8e8894dfa4 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 27 Jun 2014 17:42:44 +0200 +Subject: [PATCH] libudev: queue provide file descriptor to watch busy event + queue + +--- + docs/libudev/libudev-sections.txt | 2 ++ + src/libudev/libudev-queue.c | 46 +++++++++++++++++++++++++++++++++++ + src/libudev/libudev.h | 2 ++ + src/libudev/libudev.sym | 2 ++ + src/udev/udevadm-settle.c | 48 ++++++++++++++++--------------------- + 5 files changed, 73 insertions(+), 27 deletions(-) + +diff --git docs/libudev/libudev-sections.txt docs/libudev/libudev-sections.txt +index c154645..8a31ded 100644 +--- docs/libudev/libudev-sections.txt ++++ docs/libudev/libudev-sections.txt +@@ -116,6 +116,8 @@ udev_queue_get_seqnum_sequence_is_finished + udev_queue_get_queued_list_entry + udev_queue_get_kernel_seqnum + udev_queue_get_udev_seqnum ++udev_queue_get_fd ++udev_queue_flush + + +
+diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index c32a7ef..d4334b4 100644 +--- src/libudev/libudev-queue.c ++++ src/libudev/libudev-queue.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "libudev.h" + #include "libudev-private.h" +@@ -45,6 +46,7 @@ + struct udev_queue { + struct udev *udev; + int refcount; ++ int fd; + }; + + /** +@@ -69,6 +71,7 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) + + udev_queue->refcount = 1; + udev_queue->udev = udev; ++ udev_queue->fd = -1; + return udev_queue; + } + +@@ -107,6 +110,9 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) + if (udev_queue->refcount > 0) + return NULL; + ++ if (udev_queue->fd >= 0) ++ close_nointr_nofail(udev_queue->fd); ++ + free(udev_queue); + return NULL; + } +@@ -222,3 +228,44 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu + { + return NULL; + } ++ ++/** ++ * udev_queue_get_fd: ++ * @udev_queue: udev queue context ++ * ++ * Returns: a file descriptor to watch for a queue to become empty. ++ */ ++_public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { ++ int fd; ++ int r; ++ ++ if (udev_queue->fd >= 0) ++ return udev_queue->fd; ++ ++ fd = inotify_init1(IN_CLOEXEC); ++ if (fd < 0) ++ return -errno; ++ ++ r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); ++ if (r < 0) { ++ r = -errno; ++ close(fd); ++ return r; ++ } ++ ++ udev_queue->fd = fd; ++ return fd; ++} ++ ++/** ++ * udev_queue_flush: ++ * @udev_queue: udev queue context ++ * ++ * Returns: the result of clearing the watch for queue changes. ++ */ ++_public_ int udev_queue_flush(struct udev_queue *udev_queue) { ++ if (udev_queue->fd < 0) ++ return -EINVAL; ++ ++ return flush_fd(udev_queue->fd); ++} +diff --git src/libudev/libudev.h src/libudev/libudev.h +index ceb89bd..4f2f115 100644 +--- src/libudev/libudev.h ++++ src/libudev/libudev.h +@@ -177,6 +177,8 @@ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); + int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); + int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, + unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); ++int udev_queue_get_fd(struct udev_queue *udev_queue); ++int udev_queue_flush(struct udev_queue *udev_queue); + struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); + + /* +diff --git src/libudev/libudev.sym src/libudev/libudev.sym +index 1e6f885..95cd1c7 100644 +--- src/libudev/libudev.sym ++++ src/libudev/libudev.sym +@@ -82,6 +82,8 @@ global: + udev_queue_get_udev; + udev_queue_get_udev_is_active; + udev_queue_get_udev_seqnum; ++ udev_queue_get_fd; ++ udev_queue_flush; + udev_queue_new; + udev_queue_ref; + udev_queue_unref; +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 66fd843..79e8b59 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -29,7 +29,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -59,7 +58,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + const char *exists = NULL; + unsigned int timeout = 120; + struct pollfd pfd[1] = { {.fd = -1}, }; +- int rc = EXIT_FAILURE, c; ++ int c; ++ struct udev_queue *queue; ++ int rc = EXIT_FAILURE; + + while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { + switch (c) { +@@ -79,9 +80,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + break; + case 'h': + help(); +- exit(EXIT_SUCCESS); ++ return EXIT_SUCCESS; + case '?': +- exit(EXIT_FAILURE); ++ return EXIT_FAILURE; + default: + assert_not_reached("Unknown argument"); + } +@@ -89,7 +90,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + + if (optind < argc) { + fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); +- exit(EXIT_FAILURE); ++ return EXIT_FAILURE; + } + + /* guarantee that the udev daemon isn't pre-processing */ +@@ -101,26 +102,23 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + if (udev_ctrl_send_ping(uctrl, timeout) < 0) { + log_debug("no connection to daemon"); + udev_ctrl_unref(uctrl); +- rc = EXIT_SUCCESS; +- goto out; ++ return EXIT_SUCCESS; + } + udev_ctrl_unref(uctrl); + } + } + +- pfd[0].events = POLLIN; +- pfd[0].fd = inotify_init1(IN_CLOEXEC); +- if (pfd[0].fd < 0) { +- log_error("inotify_init failed: %m"); +- goto out; ++ queue = udev_queue_new(udev); ++ if (!queue) { ++ log_error("unable to get udev queue"); ++ return EXIT_FAILURE; + } + +- if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { +- /* If it does not exist, we don't have to wait */ +- if (errno == ENOENT) +- rc = EXIT_SUCCESS; +- else +- log_debug("watching /run/udev/queue failed"); ++ pfd[0].events = POLLIN; ++ pfd[0].fd = udev_queue_get_fd(queue); ++ if (pfd[0].fd < 0) { ++ log_debug("queue is empty, nothing to watch"); ++ rc = EXIT_SUCCESS; + goto out; + } + +@@ -131,22 +129,18 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + /* exit if queue is empty */ +- if (access("/run/udev/queue", F_OK) < 0) { ++ if (udev_queue_get_queue_is_empty(queue)) { + rc = EXIT_SUCCESS; + break; + } + +- /* wake up when "queue" file is deleted */ +- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { +- char buf[sizeof(struct inotify_event) + PATH_MAX]; +- +- read(pfd[0].fd, buf, sizeof(buf)); +- } ++ /* wake up when queue is empty */ ++ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) ++ udev_queue_flush(queue); + } + + out: +- if (pfd[0].fd >= 0) +- close(pfd[0].fd); ++ udev_queue_unref(queue); + return rc; + } + +-- +1.7.9.2 + diff --git a/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch b/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch new file mode 100644 index 00000000..78c1c084 --- /dev/null +++ b/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch @@ -0,0 +1,40 @@ +From 8a7a0c19edd2d971d4aa9d635f7978af841e8278 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 27 Jun 2014 19:54:45 +0200 +Subject: [PATCH] libudev: queue - watch entire directory to allow the re-use + of the watch descriptor + +--- + src/libudev/libudev-queue.c | 2 +- + src/udev/udevadm-settle.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index d4334b4..8ef1f3d 100644 +--- src/libudev/libudev-queue.c ++++ src/libudev/libudev-queue.c +@@ -245,7 +245,7 @@ _public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { + if (fd < 0) + return -errno; + +- r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); ++ r = inotify_add_watch(fd, "/run/udev" , IN_DELETE); + if (r < 0) { + r = -errno; + close(fd); +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 79e8b59..fa5b0c2 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -135,7 +135,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + /* wake up when queue is empty */ +- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) ++ if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) + udev_queue_flush(queue); + } + +-- +1.7.9.2 + diff --git a/1044-rules-update-qemu-hid-rules.patch b/1044-rules-update-qemu-hid-rules.patch new file mode 100644 index 00000000..52741afe --- /dev/null +++ b/1044-rules-update-qemu-hid-rules.patch @@ -0,0 +1,45 @@ +From cd31d1884f1ecf38e11bc6268f446d75dfafbc25 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Mon, 24 Mar 2014 12:07:41 +0100 +Subject: [PATCH] rules: update qemu hid rules + +Update comment to be a bit more specific. + +Change match to blacklist the serial number of the broken devices +instead of whitelisting the serial number of the fixed devices. +This allows to do something useful with the serial number in the +future. +--- + rules/42-usb-hid-pm.rules | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules +index 3fd6e8a..c675b5b 100644 +--- rules/42-usb-hid-pm.rules ++++ rules/42-usb-hid-pm.rules +@@ -2,14 +2,15 @@ + # + # Enable autosuspend for qemu emulated usb hid devices + +-# Note that there are buggy qemu versions which advertise remote +-# wakeup support but don't actually implement it correctly. This +-# is the reason why we need a match for the serial number here. +-# The serial number "42" is used to tag the implementations where ++# Note that there are buggy qemu versions (0.13 & older) which ++# advertise remote wakeup support but don't actually implement ++# it correctly. This is the reason why we need a match for the ++# serial number here. Old, broken versions have serial "1". ++# It has been changed to "42" after fixing the bug to indicate + # remote wakeup is working. +-ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" +-ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" +-ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" + + # Catch-all for Avocent HID devices. Keyed off interface in order to only + # trigger on HID class devices. +-- +1.7.9.2 + diff --git a/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch b/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch new file mode 100644 index 00000000..cd1f72c7 --- /dev/null +++ b/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch @@ -0,0 +1,29 @@ +Based on 52fb538361053f8c4abce0e40cd0bae3d28ceb16 Mon Sep 17 00:00:00 2001 +From: Tom Hirst +Date: Wed, 25 Jun 2014 11:57:11 +0000 +Subject: [PATCH] rules: don't enable usb pm for Avocent devices + +The Avocent KVM over IP devices doesn't work correctly with USB power +management enabled. +--- + rules/42-usb-hid-pm.rules | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules +index c675b5b..4c300da 100644 +--- rules/42-usb-hid-pm.rules ++++ rules/42-usb-hid-pm.rules +@@ -12,10 +12,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!= + ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" + ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" + +-# Catch-all for Avocent HID devices. Keyed off interface in order to only +-# trigger on HID class devices. +-ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{bInterfaceClass}=="03", TEST=="../power/control", ATTR{../power/control}="auto" +- + # Dell DRAC 4 + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="2500", TEST=="power/control", ATTR{power/control}="auto" + +-- +1.7.9.2 + diff --git a/1046-fix-duplicated-rules-with-layer3-interfaces.patch b/1046-fix-duplicated-rules-with-layer3-interfaces.patch new file mode 100644 index 00000000..47445a83 --- /dev/null +++ b/1046-fix-duplicated-rules-with-layer3-interfaces.patch @@ -0,0 +1,16 @@ +Index: systemd-210/src/udev/rule_generator/write_net_rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/write_net_rules ++++ systemd-210/src/udev/rule_generator/write_net_rules +@@ -101,6 +101,11 @@ if [ "$MATCHDEVID" ]; then + fi + + if [ "$MATCHID" ]; then ++ ID="$(find_all_rules 'KERNELS==' "$MATCHID")" ++ if [ "$ID" == "$MATCHID" ]; then ++ unlock_rules_file ++ exit 0 ++ fi + match="$match, KERNELS==\"$MATCHID\"" + fi + diff --git a/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch b/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch new file mode 100644 index 00000000..47fce280 --- /dev/null +++ b/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch @@ -0,0 +1,61 @@ +From 01d4590b775661ebc71c7b81b0c62ccd69395268 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Jul 2014 15:13:29 +0200 +Subject: [PATCH] udev: net_setup_link builtin should print the reason why + something fails + +Let's tell users what is going wrong. +--- + src/udev/udev-builtin-net_setup_link.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git src/udev/udev-builtin-net_setup_link.c src/udev/udev-builtin-net_setup_link.c +index 3cd384e..6207269 100644 +--- src/udev/udev-builtin-net_setup_link.c ++++ src/udev/udev-builtin-net_setup_link.c +@@ -43,17 +43,17 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv + r = link_config_get(ctx, dev, &link); + if (r < 0) { + if (r == -ENOENT) { +- log_debug("No matching link configuration found"); ++ log_debug("No matching link configuration found."); + return EXIT_SUCCESS; + } else { +- log_error("Could not get link config"); ++ log_error("Could not get link config: %s", strerror(-r)); + return EXIT_FAILURE; + } + } + + r = link_config_apply(ctx, link, dev, &name); + if (r < 0) { +- log_error("Could not apply link config to %s", udev_device_get_sysname(dev)); ++ log_error("Could not apply link config to %s: %s", udev_device_get_sysname(dev), strerror(-r)); + return EXIT_FAILURE; + } + +@@ -77,18 +77,18 @@ static int builtin_net_setup_link_init(struct udev *udev) { + if (r < 0) + return r; + +- log_debug("Created link configuration context"); ++ log_debug("Created link configuration context."); + return 0; + } + + static void builtin_net_setup_link_exit(struct udev *udev) { + link_config_ctx_free(ctx); + ctx = NULL; +- log_debug("Unloaded link configuration context"); ++ log_debug("Unloaded link configuration context."); + } + + static bool builtin_net_setup_link_validate(struct udev *udev) { +- log_debug("Check if link configuration needs reloading"); ++ log_debug("Check if link configuration needs reloading."); + if (!ctx) + return false; + +-- +1.7.9.2 + diff --git a/1048-udev-net_setup_link-add-a-bit-more-logging.patch b/1048-udev-net_setup_link-add-a-bit-more-logging.patch new file mode 100644 index 00000000..740e3c36 --- /dev/null +++ b/1048-udev-net_setup_link-add-a-bit-more-logging.patch @@ -0,0 +1,39 @@ +From 866ee3682213789f85b877700457fdca05695a0e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 3 Jul 2014 09:57:27 +0200 +Subject: [PATCH] udev: net_setup_link - add a bit more logging + +--- + src/udev/net/link-config.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git src/udev/net/link-config.c src/udev/net/link-config.c +index 7a9d01b..b8650a6 100644 +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c +@@ -92,14 +92,20 @@ static int link_config_ctx_connect(link_config_ctx *ctx) { + + if (ctx->ethtool_fd == -1) { + r = ethtool_connect(&ctx->ethtool_fd); +- if (r < 0) ++ if (r < 0) { ++ log_warning("link_config: could not connect to ethtool: %s", ++ strerror(-r)); + return r; ++ } + } + + if (!ctx->rtnl) { + r = sd_rtnl_open(&ctx->rtnl, 0); +- if (r < 0) ++ if (r < 0) { ++ log_warning("link_config: could not connect to rtnl: %s", ++ strerror(-r)); + return r; ++ } + } + + return 0; +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index da40a9c5..8bec33f3 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,97 @@ +------------------------------------------------------------------- +Mon Jul 7 13:06:35 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-machine-don-t-return-uninitialized-variable.patch +- Port and add upstream patch + 0002-vconsole-setup-run-setfont-before-loadkeys.patch + +------------------------------------------------------------------- +Mon Jul 7 13:04:00 UTC 2014 - rmilasan@suse.com + +- Rename + 0001-udev-net_setup_link-add-a-bit-more-logging.patch + to + 1048-udev-net_setup_link-add-a-bit-more-logging.patch + +------------------------------------------------------------------- +Fri Jul 4 10:01:07 UTC 2014 - werner@suse.de + +- Port and add upstream patches + 0001-udev-net_setup_link-add-a-bit-more-logging.patch + 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch + 0002-namespace-fix-uninitialized-memory-access.patch + +------------------------------------------------------------------- +Fri Jul 4 09:43:12 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-architecture-Add-tilegx.patch + 0002-architecture-Add-cris.patch + 0003-arch-add-crisv32-to-uname-check.patch + 0004-architecture-remove-cris-from-uname-list.patch + +------------------------------------------------------------------- +Fri Jul 4 09:32:47 UTC 2014 - werner@suse.de + +- Add upstream patches + 0006-hwdb-update.patch + 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Thu Jul 3 12:48:27 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-parse_uid-return-ENXIO-for-1-uids.patch + 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch + 0003-localed-consider-an-unset-model-as-a-wildcard.patch + 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch + 0005-bus-close-a-bus-that-failed-to-connect.patch + 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch + +------------------------------------------------------------------- +Wed Jul 2 18:06:32 UTC 2014 - rmilasan@suse.com + +- Fix duplicated rules when having layer3 interfaces (bnc#882714). + Add 1046-fix-duplicated-rules-with-layer3-interfaces.patch + +------------------------------------------------------------------- +Tue Jul 1 14:53:44 UTC 2014 - werner@suse.de + +- Require correct pam-config version overall even for scriptlets (bnc#885288) + +------------------------------------------------------------------- +Tue Jul 1 12:19:27 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch + 0002-journald-make-MaxFileSec-really-default-to-1month.patch + 0003-units-remove-RefuseManualStart-from-units-which-are-.patch + 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch + 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch + 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch + 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch + +------------------------------------------------------------------- +Tue Jul 1 09:58:04 UTC 2014 - werner@suse.de + +- Be aware that close_nointr_nofail() may fail whereas safe_close() not + +------------------------------------------------------------------- +Tue Jul 1 08:56:48 UTC 2014 - werner@suse.de + +- Add upstream patches + 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch + 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch + 1044-rules-update-qemu-hid-rules.patch + 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch + +------------------------------------------------------------------- +Fri Jun 27 12:46:12 UTC 2014 - werner@suse.de + +- Add upstream bug fix patch + 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch (bnc#882714) + ------------------------------------------------------------------- Fri Jun 27 08:17:47 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 15e40108..ea36e8a2 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -145,7 +145,7 @@ Requires(post): coreutils Requires(post): findutils %endif %if ! 0%{?bootstrap} -Requires(post): pam-config +Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd @@ -609,6 +609,50 @@ Patch297: 0001-core-use-correct-format-string-for-UIDs.patch Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch # PATCH-FIX-UPSTREAM added at 2014/06/26 Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch312: 0006-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch314: 0001-architecture-Add-tilegx.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch315: 0002-architecture-Add-cris.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch316: 0003-arch-add-crisv32-to-uname-check.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch317: 0004-architecture-remove-cris-from-uname-list.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch319: 0002-namespace-fix-uninitialized-memory-access.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch320: 0001-machine-don-t-return-uninitialized-variable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch # UDEV PATCHES # ============ @@ -696,6 +740,22 @@ Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch +# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch +Patch1044: 1044-rules-update-qemu-hid-rules.patch +# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +# PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) +Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch +# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch +Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1153,6 +1213,28 @@ cp %{SOURCE7} m4/ %patch297 -p0 %patch298 -p0 %patch299 -p0 +%patch300 -p0 +%patch301 -p0 +%patch302 -p0 +%patch303 -p0 +%patch304 -p0 +%patch305 -p0 +%patch306 -p0 +%patch307 -p0 +%patch308 -p0 +%patch309 -p0 +%patch310 -p0 +%patch311 -p0 +%patch312 -p0 +%patch313 -p0 +%patch314 -p0 +%patch315 -p0 +%patch316 -p0 +%patch317 -p0 +%patch318 -p0 +%patch319 -p0 +%patch320 -p0 +%patch321 -p0 # udev patches %patch1001 -p1 @@ -1177,11 +1259,9 @@ cp %{SOURCE7} m4/ %patch1019 -p0 %patch1020 -p0 %patch1021 -p1 -%if 0%{?suse_version} > 1310 %if %{with udevsettle} %patch1022 -p1 %endif -%endif %patch1023 -p0 %patch1024 -p0 %patch1025 -p1 @@ -1198,12 +1278,20 @@ cp %{SOURCE7} m4/ %patch1036 -p1 %patch1037 -p1 %patch1038 -p0 -%if 0%{?suse_version} > 1310 %if %{with udevsettle} %patch1039 -p0 %endif -%endif %patch1040 -p1 +%if %{with udevsettle} +%patch1041 -p0 +%patch1042 -p0 +%patch1043 -p0 +%endif +%patch1044 -p0 +%patch1045 -p0 +%patch1046 -p1 +%patch1047 -p0 +%patch1048 -p0 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index da40a9c5..8bec33f3 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,97 @@ +------------------------------------------------------------------- +Mon Jul 7 13:06:35 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-machine-don-t-return-uninitialized-variable.patch +- Port and add upstream patch + 0002-vconsole-setup-run-setfont-before-loadkeys.patch + +------------------------------------------------------------------- +Mon Jul 7 13:04:00 UTC 2014 - rmilasan@suse.com + +- Rename + 0001-udev-net_setup_link-add-a-bit-more-logging.patch + to + 1048-udev-net_setup_link-add-a-bit-more-logging.patch + +------------------------------------------------------------------- +Fri Jul 4 10:01:07 UTC 2014 - werner@suse.de + +- Port and add upstream patches + 0001-udev-net_setup_link-add-a-bit-more-logging.patch + 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch + 0002-namespace-fix-uninitialized-memory-access.patch + +------------------------------------------------------------------- +Fri Jul 4 09:43:12 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-architecture-Add-tilegx.patch + 0002-architecture-Add-cris.patch + 0003-arch-add-crisv32-to-uname-check.patch + 0004-architecture-remove-cris-from-uname-list.patch + +------------------------------------------------------------------- +Fri Jul 4 09:32:47 UTC 2014 - werner@suse.de + +- Add upstream patches + 0006-hwdb-update.patch + 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Thu Jul 3 12:48:27 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-parse_uid-return-ENXIO-for-1-uids.patch + 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch + 0003-localed-consider-an-unset-model-as-a-wildcard.patch + 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch + 0005-bus-close-a-bus-that-failed-to-connect.patch + 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch + +------------------------------------------------------------------- +Wed Jul 2 18:06:32 UTC 2014 - rmilasan@suse.com + +- Fix duplicated rules when having layer3 interfaces (bnc#882714). + Add 1046-fix-duplicated-rules-with-layer3-interfaces.patch + +------------------------------------------------------------------- +Tue Jul 1 14:53:44 UTC 2014 - werner@suse.de + +- Require correct pam-config version overall even for scriptlets (bnc#885288) + +------------------------------------------------------------------- +Tue Jul 1 12:19:27 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch + 0002-journald-make-MaxFileSec-really-default-to-1month.patch + 0003-units-remove-RefuseManualStart-from-units-which-are-.patch + 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch + 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch + 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch + 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch + +------------------------------------------------------------------- +Tue Jul 1 09:58:04 UTC 2014 - werner@suse.de + +- Be aware that close_nointr_nofail() may fail whereas safe_close() not + +------------------------------------------------------------------- +Tue Jul 1 08:56:48 UTC 2014 - werner@suse.de + +- Add upstream patches + 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch + 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch + 1044-rules-update-qemu-hid-rules.patch + 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch + +------------------------------------------------------------------- +Fri Jun 27 12:46:12 UTC 2014 - werner@suse.de + +- Add upstream bug fix patch + 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch (bnc#882714) + ------------------------------------------------------------------- Fri Jun 27 08:17:47 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 55ff9a7d..6d3eac09 100644 --- a/systemd.spec +++ b/systemd.spec @@ -140,7 +140,7 @@ Requires(post): coreutils Requires(post): findutils %endif %if ! 0%{?bootstrap} -Requires(post): pam-config +Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd @@ -604,6 +604,50 @@ Patch297: 0001-core-use-correct-format-string-for-UIDs.patch Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch # PATCH-FIX-UPSTREAM added at 2014/06/26 Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch312: 0006-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch314: 0001-architecture-Add-tilegx.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch315: 0002-architecture-Add-cris.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch316: 0003-arch-add-crisv32-to-uname-check.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch317: 0004-architecture-remove-cris-from-uname-list.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch319: 0002-namespace-fix-uninitialized-memory-access.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch320: 0001-machine-don-t-return-uninitialized-variable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch # UDEV PATCHES # ============ @@ -691,6 +735,22 @@ Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch +# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch +Patch1044: 1044-rules-update-qemu-hid-rules.patch +# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +# PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) +Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch +# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch +Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1148,6 +1208,28 @@ cp %{SOURCE7} m4/ %patch297 -p0 %patch298 -p0 %patch299 -p0 +%patch300 -p0 +%patch301 -p0 +%patch302 -p0 +%patch303 -p0 +%patch304 -p0 +%patch305 -p0 +%patch306 -p0 +%patch307 -p0 +%patch308 -p0 +%patch309 -p0 +%patch310 -p0 +%patch311 -p0 +%patch312 -p0 +%patch313 -p0 +%patch314 -p0 +%patch315 -p0 +%patch316 -p0 +%patch317 -p0 +%patch318 -p0 +%patch319 -p0 +%patch320 -p0 +%patch321 -p0 # udev patches %patch1001 -p1 @@ -1172,11 +1254,9 @@ cp %{SOURCE7} m4/ %patch1019 -p0 %patch1020 -p0 %patch1021 -p1 -%if 0%{?suse_version} > 1310 %if %{with udevsettle} %patch1022 -p1 %endif -%endif %patch1023 -p0 %patch1024 -p0 %patch1025 -p1 @@ -1193,12 +1273,20 @@ cp %{SOURCE7} m4/ %patch1036 -p1 %patch1037 -p1 %patch1038 -p0 -%if 0%{?suse_version} > 1310 %if %{with udevsettle} %patch1039 -p0 %endif -%endif %patch1040 -p1 +%if %{with udevsettle} +%patch1041 -p0 +%patch1042 -p0 +%patch1043 -p0 +%endif +%patch1044 -p0 +%patch1045 -p0 +%patch1046 -p1 +%patch1047 -p0 +%patch1048 -p0 # ensure generate files are removed rm -f units/emergency.service From 714ab2a3f6a1bc13b8b21d0c416f9308febc8105c687df0f591b9decdf224047 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 16 Jul 2014 14:36:37 +0000 Subject: [PATCH 187/221] Accepting request 241067 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/241067 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=192 --- ...pull-in-sd-event.h-from-event-util.h.patch | 24 +++ ...-return-early-in-uncompress_startswi.patch | 176 ++++++++++++++++++ ...switching-to-unused-VTs-via-SwitchTo.patch | 37 ++++ ...xecStopPost-action-part-of-ExecStart.patch | 46 +++++ ...7F-a-control-chracter-which-it-is-DE.patch | 54 ++++++ ...d-add-a-new-chassis-type-for-watches.patch | 26 +++ ...s-improve-xz-compression-performance.patch | 82 ++++++++ ...der-tabs-special-in-string_has_cc-an.patch | 130 +++++++++++++ 0002-util-fix-has-cc-check-and-add-test.patch | 25 +++ ...-string-table-entries-for-mips-le-ar.patch | 52 ++++++ ...call-epoll_ctl-on-mask-updates-if-ed.patch | 46 +++++ ...rt-for-ERRNO-NOTIFY_SOCKET-message-p.patch | 67 +++++++ ...te-more-shell-characters-in-envfiles.patch | 54 ++++++ ...cept-negative-ERRNO-notification-mes.patch | 25 +++ ...tatusErrno-value-in-systemctl-status.patch | 37 ++++ ...atus-text-and-errno-values-each-time.patch | 29 +++ 1007-physical-hotplug-cpu-and-memory.patch | 15 +- ...-ignore-errors-due-to-missing-MAC-ad.patch | 36 ++++ ...VF-devices-when-name-starts-with-eth.patch | 12 ++ systemd-mini.changes | 81 ++++++++ systemd-mini.spec | 76 +++++++- systemd-remount-tmpfs | 15 ++ systemd.changes | 81 ++++++++ systemd.spec | 76 +++++++- vhangup-on-all-consoles.patch | 28 +++ 25 files changed, 1306 insertions(+), 24 deletions(-) create mode 100644 0001-event-pull-in-sd-event.h-from-event-util.h.patch create mode 100644 0001-journal-compress-return-early-in-uncompress_startswi.patch create mode 100644 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch create mode 100644 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch create mode 100644 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch create mode 100644 0002-hostnamed-add-a-new-chassis-type-for-watches.patch create mode 100644 0002-journal-compress-improve-xz-compression-performance.patch create mode 100644 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch create mode 100644 0002-util-fix-has-cc-check-and-add-test.patch create mode 100644 0003-architecture-add-string-table-entries-for-mips-le-ar.patch create mode 100644 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch create mode 100644 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch create mode 100644 0004-fileio-quote-more-shell-characters-in-envfiles.patch create mode 100644 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch create mode 100644 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch create mode 100644 0007-service-flush-status-text-and-errno-values-each-time.patch create mode 100644 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch create mode 100644 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch create mode 100644 systemd-remount-tmpfs create mode 100644 vhangup-on-all-consoles.patch diff --git a/0001-event-pull-in-sd-event.h-from-event-util.h.patch b/0001-event-pull-in-sd-event.h-from-event-util.h.patch new file mode 100644 index 00000000..e9fc98ce --- /dev/null +++ b/0001-event-pull-in-sd-event.h-from-event-util.h.patch @@ -0,0 +1,24 @@ +From 138992534878483de28417dfc61c546bba5cb8ad Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 10 Jul 2014 18:25:08 +0200 +Subject: [PATCH] event: pull in sd-event.h from event-util.h + +--- + src/libsystemd/sd-event/event-util.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/libsystemd/sd-event/event-util.h src/libsystemd/sd-event/event-util.h +index e58020d..e7cad9b 100644 +--- src/libsystemd/sd-event/event-util.h ++++ src/libsystemd/sd-event/event-util.h +@@ -22,6 +22,7 @@ + ***/ + + #include "util.h" ++#include "sd-event.h" + + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event*, sd_event_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event_source*, sd_event_source_unref); +-- +1.7.9.2 + diff --git a/0001-journal-compress-return-early-in-uncompress_startswi.patch b/0001-journal-compress-return-early-in-uncompress_startswi.patch new file mode 100644 index 00000000..55476789 --- /dev/null +++ b/0001-journal-compress-return-early-in-uncompress_startswi.patch @@ -0,0 +1,176 @@ +Based on 5e592c66bdf76dfc8445b332f7a5088ca504ee90 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 4 Jul 2014 19:53:58 -0400 +Subject: [PATCH] journal/compress: return early in uncompress_startswith + +uncompress_startswith would always decode the whole stream, even +if it did not start with the given prefix. + +Reallocation policy was also strange. +--- + src/journal/compress.c | 91 ++++++++++++++----------------------------------- + 1 file changed, 27 insertions(+), 64 deletions(-) + +--- src/journal/compress.c ++++ src/journal/compress.c 2014-07-09 00:00:00.000000000 +0000 +@@ -69,10 +69,9 @@ fail: + bool uncompress_blob(const void *src, uint64_t src_size, + void **dst, uint64_t *dst_alloc_size, uint64_t* dst_size, uint64_t dst_max) { + +- lzma_stream s = LZMA_STREAM_INIT; ++ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; + lzma_ret ret; + uint64_t space; +- bool b = false; + + assert(src); + assert(src_size > 0); +@@ -85,26 +84,18 @@ bool uncompress_blob(const void *src, ui + if (ret != LZMA_OK) + return false; + +- if (*dst_alloc_size <= src_size) { +- void *p; +- +- p = realloc(*dst, src_size*2); +- if (!p) +- return false; +- +- *dst = p; +- *dst_alloc_size = src_size*2; +- } ++ space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); ++ if (!greedy_realloc(dst, dst_alloc_size, space, 1)) ++ return false; + + s.next_in = src; + s.avail_in = src_size; + + s.next_out = *dst; +- space = dst_max > 0 ? MIN(*dst_alloc_size, dst_max) : *dst_alloc_size; + s.avail_out = space; + + for (;;) { +- void *p; ++ uint64_t used; + + ret = lzma_code(&s, LZMA_FINISH); + +@@ -112,31 +103,25 @@ bool uncompress_blob(const void *src, ui + break; + + if (ret != LZMA_OK) +- goto fail; ++ return false; + + if (dst_max > 0 && (space - s.avail_out) >= dst_max) + break; + +- p = realloc(*dst, space*2); +- if (!p) +- goto fail; +- +- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *dst); +- s.avail_out += space; ++ if (dst_max > 0 && space == dst_max) ++ return false; + +- space *= 2; ++ used = space - s.avail_out; ++ space = MIN(2 * space, dst_max ?: (uint64_t) -1); ++ if (!greedy_realloc(dst, dst_alloc_size, space, 1)) ++ return false; + +- *dst = p; +- *dst_alloc_size = space; ++ s.avail_out = space - used; ++ s.next_out = *dst + used; + } + + *dst_size = space - s.avail_out; +- b = true; +- +-fail: +- lzma_end(&s); +- +- return b; ++ return true; + } + + bool uncompress_startswith(const void *src, uint64_t src_size, +@@ -144,9 +129,8 @@ bool uncompress_startswith(const void *s + const void *prefix, uint64_t prefix_len, + uint8_t extra) { + +- lzma_stream s = LZMA_STREAM_INIT; ++ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; + lzma_ret ret; +- bool b = false; + + /* Checks whether the uncompressed blob starts with the + * mentioned prefix. The byte extra needs to follow the +@@ -163,16 +147,8 @@ bool uncompress_startswith(const void *s + if (ret != LZMA_OK) + return false; + +- if (*buffer_size <= prefix_len) { +- void *p; +- +- p = realloc(*buffer, prefix_len*2); +- if (!p) +- return false; +- +- *buffer = p; +- *buffer_size = prefix_len*2; +- } ++ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1, 1))) ++ return false; + + s.next_in = src; + s.avail_in = src_size; +@@ -181,36 +157,23 @@ bool uncompress_startswith(const void *s + s.avail_out = *buffer_size; + + for (;;) { +- void *p; +- + ret = lzma_code(&s, LZMA_FINISH); + + if (ret != LZMA_STREAM_END && ret != LZMA_OK) +- goto fail; ++ return false; + +- if ((*buffer_size - s.avail_out > prefix_len) && +- memcmp(*buffer, prefix, prefix_len) == 0 && +- ((const uint8_t*) *buffer)[prefix_len] == extra) +- break; ++ if (*buffer_size - s.avail_out >= prefix_len + 1) ++ return memcmp(*buffer, prefix, prefix_len) == 0 && ++ ((const uint8_t*) *buffer)[prefix_len] == extra; + + if (ret == LZMA_STREAM_END) +- goto fail; +- +- p = realloc(*buffer, *buffer_size*2); +- if (!p) +- goto fail; ++ return false; + +- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *buffer); + s.avail_out += *buffer_size; + +- *buffer = p; +- *buffer_size *= 2; +- } +- +- b = true; +- +-fail: +- lzma_end(&s); ++ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2, 1))) ++ return false; + +- return b; ++ s.next_out = *buffer + *buffer_size - s.avail_out; ++ } + } diff --git a/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch b/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch new file mode 100644 index 00000000..269adaba --- /dev/null +++ b/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch @@ -0,0 +1,37 @@ +From 154034270c4643b7cfe61c0be1676d78bb1b7b07 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 8 Jul 2014 12:56:55 +0200 +Subject: [PATCH] logind: allow switching to unused VTs via SwitchTo() + +If compositors use the new SwitchTo() logic to map F1-F12, we should allow +them to switch to unregistered VTs, too. Otherwise, the auto-spawn logic +of gettys won't trigger. + +Reported-by: Jasper St. Pierre +Signed-off-by: David Herrmann +--- + src/login/logind-seat.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 3114de8..9992195 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -275,8 +275,13 @@ int seat_switch_to(Seat *s, unsigned int num) { + if (!num) + return -EINVAL; + +- if (num >= s->position_count || !s->positions[num]) ++ if (num >= s->position_count || !s->positions[num]) { ++ /* allow switching to unused VTs to trigger auto-activate */ ++ if (seat_has_vts(s) && num < 64) ++ return chvt(num); ++ + return -EINVAL; ++ } + + return session_activate(s->positions[num]); + } +-- +1.7.9.2 + diff --git a/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch b/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch new file mode 100644 index 00000000..bb9010bd --- /dev/null +++ b/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch @@ -0,0 +1,46 @@ +Based on d3381512282f2ca1c7669f77fb736a90fdce6982 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 8 Jul 2014 17:42:23 +0200 +Subject: [PATCH] units: make ExecStopPost action part of ExecStart + +Currently after exiting rescue shell we isolate default target. User +might want to isolate to some other target than default one. However +issuing systemctl isolate command to desired target would bring system +to default target as a consequence of running ExecStopPost action. + +Having common ancestor for rescue shell and possible followup systemctl +default command should fix this. If user exits rescue shell we will +proceed with isolating default target, otherwise, on manual isolate, +parent shell process is terminated and we don't isolate default target, +but target chosen by user. + +Suggested-by: Michal Schmidt +--- + units/emergency.service.in | 3 +-- + units/rescue.service.m4.in | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +--- units/emergency.service.in ++++ units/emergency.service.in 2014-07-10 13:31:50.662235825 +0000 +@@ -18,8 +18,7 @@ WorkingDirectory=/root + ExecStartPre=-/usr/bin/plymouth quit + ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' +-ExecStart=-/usr/sbin/sulogin +-ExecStopPost=@SYSTEMCTL@ --fail --no-block default ++ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + Type=idle + StandardInput=tty-force + StandardOutput=inherit +--- units/rescue.service.m4.in ++++ units/rescue.service.m4.in 2014-07-10 13:32:15.678235509 +0000 +@@ -19,8 +19,7 @@ WorkingDirectory=/root + ExecStartPre=-/usr/bin/plymouth quit + ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' +-ExecStart=-/usr/sbin/sulogin +-ExecStopPost=-@SYSTEMCTL@ --fail --no-block default ++ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + Type=idle + StandardInput=tty-force + StandardOutput=inherit diff --git a/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch b/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch new file mode 100644 index 00000000..9a6c97a5 --- /dev/null +++ b/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch @@ -0,0 +1,54 @@ +From 3a8a916338d8446b938f3cf40f6aae0c611892e3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 11:47:10 +0200 +Subject: [PATCH] util: consider 0x7F a control chracter (which it is: DEL) + +Let's better be safe than sorry. +--- + src/shared/util.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git src/shared/util.c src/shared/util.c +index 3d875c7..d25ee66 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1608,8 +1608,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + return -ETIMEDOUT; + } + ++ errno = 0; + if (!fgets(line, sizeof(line), f)) +- return -EIO; ++ return errno ? -errno : -EIO; + + truncate_nl(line); + +@@ -5355,6 +5356,9 @@ bool string_is_safe(const char *p) { + if (*t > 0 && *t < ' ') + return false; + ++ if (*t == 127) ++ return false; ++ + if (strchr("\\\"\'", *t)) + return false; + } +@@ -5371,10 +5375,14 @@ bool string_has_cc(const char *p) { + + assert(p); + +- for (t = p; *t; t++) ++ for (t = p; *t; t++) { + if (*t > 0 && *t < ' ' && *t != '\t') + return true; + ++ if (*t == 127) ++ return true; ++ } ++ + return false; + } + +-- +1.7.9.2 + diff --git a/0002-hostnamed-add-a-new-chassis-type-for-watches.patch b/0002-hostnamed-add-a-new-chassis-type-for-watches.patch new file mode 100644 index 00000000..a20c11c6 --- /dev/null +++ b/0002-hostnamed-add-a-new-chassis-type-for-watches.patch @@ -0,0 +1,26 @@ +From c49e59c1831f20fe02276d7bc6ba7d23d24c4ab3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 9 Jul 2014 13:20:05 +0200 +Subject: [PATCH] hostnamed: add a new chassis type for watches + +--- + src/hostname/hostnamed.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c +index 514554d..eaae113 100644 +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c +@@ -144,7 +144,8 @@ static bool valid_chassis(const char *chassis) { + "laptop\0" + "server\0" + "tablet\0" +- "handset\0", ++ "handset\0" ++ "watch\0", + chassis); + } + +-- +1.7.9.2 + diff --git a/0002-journal-compress-improve-xz-compression-performance.patch b/0002-journal-compress-improve-xz-compression-performance.patch new file mode 100644 index 00000000..adccdaad --- /dev/null +++ b/0002-journal-compress-improve-xz-compression-performance.patch @@ -0,0 +1,82 @@ +Based on 1930eed2a7855d2df06ccf51f9e394428bf547e2 Mon Sep 17 00:00:00 2001 +From: Jon Severinsson +Date: Tue, 8 Jul 2014 18:29:46 +0200 +Subject: [PATCH] journal/compress: improve xz compression performance + +The new lzma2 compression options at the top of compress_blob_xz are +equivalent to using preset "0", exept for using a 1 MiB dictionary +(the same as preset "1"). This makes the memory usage at most 7.5 MiB +in the compressor, and 1 MiB in the decompressor, instead of the +previous 92 MiB in the compressor and 8 MiB in the decompressor. + +According to test-compress-benchmark this commit makes XZ compression +20 times faster, with no increase in compressed data size. +Using more realistic test data (an ELF binary rather than repeating +ASCII letters 'a' through 'z' in order) it only provides a factor 10 +speedup, and at a cost if a 10% increase in compressed data size. +But that is still a worthwhile trade-off. + +According to test-compress-benchmark XZ compression is still 25 times +slower than LZ4, but the compressed data is one eighth the size. +Using more realistic test data XZ compression is only 18 times slower +than LZ4, and the compressed data is only one quarter the size. + +--- + src/journal/compress.c | 33 ++++++++++++++------------------- + 1 file changed, 14 insertions(+), 19 deletions(-) + +--- src/journal/compress.c ++++ src/journal/compress.c 2014-07-09 12:09:45.814235274 +0000 +@@ -28,8 +28,15 @@ + #include "compress.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { +- lzma_stream s = LZMA_STREAM_INIT; ++ static const lzma_options_lzma opt = { ++ 1u << 20u, NULL, 0, LZMA_LC_DEFAULT, LZMA_LP_DEFAULT, ++ LZMA_PB_DEFAULT, LZMA_MODE_FAST, 128, LZMA_MF_HC3, 4}; ++ static const lzma_filter filters[2] = { ++ {LZMA_FILTER_LZMA2, (lzma_options_lzma*) &opt}, ++ {LZMA_VLI_UNKNOWN, NULL} ++ }; + lzma_ret ret; ++ size_t out_pos = 0; + bool b = false; + + assert(src); +@@ -40,29 +47,17 @@ bool compress_blob(const void *src, uint + /* Returns false if we couldn't compress the data or the + * compressed result is longer than the original */ + +- ret = lzma_easy_encoder(&s, LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE); +- if (ret != LZMA_OK) ++ if (src_size < 80) + return false; + +- s.next_in = src; +- s.avail_in = src_size; +- s.next_out = dst; +- s.avail_out = src_size; +- +- /* Does it fit? */ +- if (lzma_code(&s, LZMA_FINISH) != LZMA_STREAM_END) +- goto fail; +- +- /* Is it actually shorter? */ +- if (s.avail_out == 0) +- goto fail; ++ ret = lzma_stream_buffer_encode((lzma_filter*) filters, LZMA_CHECK_NONE, NULL, ++ src, src_size, dst, &out_pos, src_size - 1); ++ if (ret != LZMA_OK) ++ return false; + +- *dst_size = src_size - s.avail_out; ++ *dst_size = out_pos; + b = true; + +-fail: +- lzma_end(&s); +- + return b; + } + diff --git a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch new file mode 100644 index 00000000..aeb7ab26 --- /dev/null +++ b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch @@ -0,0 +1,130 @@ +From 6294aa76d818e831de4592b41a37e225fd0871f9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 12:04:55 +0200 +Subject: [PATCH] util: don't consider tabs special in string_has_cc() anymore + +Instead, take a list of exceptions to our usual CC check +--- + src/hostname/hostnamed.c | 3 +-- + src/shared/env-util.c | 4 +++- + src/shared/fileio.c | 2 +- + src/shared/util.c | 19 ++++++++++--------- + src/shared/util.h | 5 +++-- + 5 files changed, 18 insertions(+), 15 deletions(-) + +diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c +index 14629dd..514554d 100644 +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c +@@ -550,8 +550,7 @@ static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop + + if (prop == PROP_ICON_NAME && !filename_is_safe(name)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); +- if (prop == PROP_PRETTY_HOSTNAME && +- (string_has_cc(name) || chars_intersect(name, "\t"))) ++ if (prop == PROP_PRETTY_HOSTNAME && string_has_cc(name, NULL)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); + if (prop == PROP_CHASSIS && !valid_chassis(name)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name); +diff --git src/shared/env-util.c src/shared/env-util.c +index b2e4553..20b208f 100644 +--- src/shared/env-util.c ++++ src/shared/env-util.c +@@ -78,7 +78,9 @@ bool env_value_is_valid(const char *e) { + if (!utf8_is_valid(e)) + return false; + +- if (string_has_cc(e)) ++ /* bash allows tabs in environment variables, and so should ++ * we */ ++ if (string_has_cc(e, "\t")) + return false; + + /* POSIX says the overall size of the environment block cannot +diff --git src/shared/fileio.c src/shared/fileio.c +index fb1c1bc..b1de590 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -738,7 +738,7 @@ static void write_env_var(FILE *f, const char *v) { + p++; + fwrite(v, 1, p-v, f); + +- if (string_has_cc(p) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { ++ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { + fputc('\"', f); + + for (; *p; p++) { +diff --git src/shared/util.c src/shared/util.c +index d25ee66..d223ecf 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -5350,16 +5350,14 @@ bool filename_is_safe(const char *p) { + bool string_is_safe(const char *p) { + const char *t; + +- assert(p); ++ if (!p) ++ return false; + + for (t = p; *t; t++) { + if (*t > 0 && *t < ' ') + return false; + +- if (*t == 127) +- return false; +- +- if (strchr("\\\"\'", *t)) ++ if (strchr("\\\"\'\0x7f", *t)) + return false; + } + +@@ -5367,16 +5365,19 @@ bool string_is_safe(const char *p) { + } + + /** +- * Check if a string contains control characters. +- * Spaces and tabs are not considered control characters. ++ * Check if a string contains control characters. If 'ok' is non-NULL ++ * it may be a string containing additional CCs to be considered OK. + */ +-bool string_has_cc(const char *p) { ++bool string_has_cc(const char *p, const char *ok) { + const char *t; + + assert(p); + + for (t = p; *t; t++) { +- if (*t > 0 && *t < ' ' && *t != '\t') ++ if (ok && strchr(ok, *t)) ++ return false; ++ ++ if (*t > 0 && *t < ' ') + return true; + + if (*t == 127) +diff --git src/shared/util.h src/shared/util.h +index e23069c..8544940 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -382,7 +382,8 @@ bool fstype_is_network(const char *fstype); + int chvt(int vt); + + int read_one_char(FILE *f, char *ret, usec_t timeout, bool *need_nl); +-int ask(char *ret, const char *replies, const char *text, ...) _printf_(3, 4); ++int ask_char(char *ret, const char *replies, const char *text, ...) _printf_(3, 4); ++int ask_string(char **ret, const char *text, ...) _printf_(2, 3); + + int reset_terminal_fd(int fd, bool switch_to_text); + int reset_terminal(const char *name); +@@ -692,7 +693,7 @@ _alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t a, size_ + bool filename_is_safe(const char *p) _pure_; + bool path_is_safe(const char *p) _pure_; + bool string_is_safe(const char *p) _pure_; +-bool string_has_cc(const char *p) _pure_; ++bool string_has_cc(const char *p, const char *ok) _pure_; + + /** + * Check if a string contains any glob patterns. +-- +1.7.9.2 + diff --git a/0002-util-fix-has-cc-check-and-add-test.patch b/0002-util-fix-has-cc-check-and-add-test.patch new file mode 100644 index 00000000..f39ad16c --- /dev/null +++ b/0002-util-fix-has-cc-check-and-add-test.patch @@ -0,0 +1,25 @@ +Based on 1cb1767a29458b3d16d6b161b4ee34dd496ff60d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Jul 2014 09:21:15 -0400 +Subject: [PATCH] util: fix has cc check and add test + +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 3342798..75dc58b 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -5419,7 +5419,7 @@ bool string_has_cc(const char *p, const char *ok) { + + for (t = p; *t; t++) { + if (ok && strchr(ok, *t)) +- return false; ++ continue; + + if (*t > 0 && *t < ' ') + return true; +-- +1.7.9.2 + diff --git a/0003-architecture-add-string-table-entries-for-mips-le-ar.patch b/0003-architecture-add-string-table-entries-for-mips-le-ar.patch new file mode 100644 index 00000000..c3944702 --- /dev/null +++ b/0003-architecture-add-string-table-entries-for-mips-le-ar.patch @@ -0,0 +1,52 @@ +Based on 037c26d0aeb750ca9c8d605884ea1db7baecfea8 Mon Sep 17 00:00:00 2001 +Based on 9a00f57a5ba7ed431e6bac8d8b36518708503b4e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 14:59:06 +0200 +Subject: [PATCH] architecture: add string table entries for mips-le archs + which were missing + +--- + src/shared/architecture.c | 2 ++ + src/shared/architecture.h | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index 6cdca4e..dc45f35 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -153,7 +153,9 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { + [ARCHITECTURE_SPARC] = "sparc", + [ARCHITECTURE_SPARC64] = "sparc64", + [ARCHITECTURE_MIPS] = "mips", ++ [ARCHITECTURE_MIPS_LE] = "mips-le", + [ARCHITECTURE_MIPS64] = "mips64", ++ [ARCHITECTURE_MIPS64_LE] = "mips64-le", + [ARCHITECTURE_ALPHA] = "alpha", + [ARCHITECTURE_ARM] = "arm", + [ARCHITECTURE_ARM_BE] = "arm-be", +diff --git src/shared/architecture.h src/shared/architecture.h +index 20e848b..0807924 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -23,6 +23,8 @@ + + #include "util.h" + ++/* A cleaned up architecture definition */ ++ + typedef enum Architecture { + ARCHITECTURE_X86 = 0, + ARCHITECTURE_X86_64, +@@ -38,7 +40,9 @@ typedef enum Architecture { + ARCHITECTURE_SPARC, + ARCHITECTURE_SPARC64, + ARCHITECTURE_MIPS, ++ ARCHITECTURE_MIPS_LE, + ARCHITECTURE_MIPS64, ++ ARCHITECTURE_MIPS64_LE, + ARCHITECTURE_ALPHA, + ARCHITECTURE_ARM, + ARCHITECTURE_ARM_BE, +-- +1.7.9.2 + diff --git a/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch b/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch new file mode 100644 index 00000000..f401411e --- /dev/null +++ b/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch @@ -0,0 +1,46 @@ +From b63c8d4f0364457b0ead8793504012bb7113974f Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 10 Jul 2014 00:47:23 +0200 +Subject: [PATCH] sd-event: always call epoll_ctl() on mask-updates if + edge-triggered + +A call to sd_event_source_set_io_events() skipps calling into the kernel +if the new event-mask matches the old one. This is safe for +level-triggered sources as the kernel moves them onto the ready-list +automatically if events change. However, edge-triggered sources might not +be on the ready-list even though events are present. + +A call to sd_event_source_set_io_events() with EPOLLET set might thus be +used to just move the io-source onto the ready-list so the next poll +will return it again. This is very useful to avoid starvation in +priority-based event queues. + +Imagine a read() loop on an edge-triggered fd. If we cannot read data fast +enough to drain the receive queue, we might decide to skip reading for now +and schedule it for later. On edge-triggered io-sources we have to make +sure it's put on the ready-list so the next dispatch-round will return it +again if it's still the highest priority task. We could make sd-event +handle edge-triggered sources directly and allow marking them ready again. +However, it's much simpler to let the kernel do that for now via +EPOLL_CTL_MOD. +--- + src/libsystemd/sd-event/sd-event.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index 53f1904..a21f7db 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -1282,7 +1282,8 @@ _public_ int sd_event_source_set_io_events(sd_event_source *s, uint32_t events) + assert_return(s->event->state != SD_EVENT_FINISHED, -ESTALE); + assert_return(!event_pid_changed(s->event), -ECHILD); + +- if (s->io.events == events) ++ /* edge-triggered updates are never skipped, so we can reset edges */ ++ if (s->io.events == events && !(events & EPOLLET)) + return 0; + + if (s->enabled != SD_EVENT_OFF) { +-- +1.7.9.2 + diff --git a/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch b/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch new file mode 100644 index 00000000..3ae99a64 --- /dev/null +++ b/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch @@ -0,0 +1,67 @@ +Based on 4774e357268e4a1e9fa82adb0563a538932a4c8e Mon Sep 17 00:00:00 2001 +From: Miguel Angel Ajo +Date: Mon, 7 Jul 2014 14:20:36 +0200 +Subject: [PATCH] core: Added support for ERRNO NOTIFY_SOCKET message parsing, + and added StatusErrno dbus property along StatusText to + allow notification of numeric status condition while + degraded service operation or any other special situation. + +--- + src/core/dbus-service.c | 1 + + src/core/service.c | 17 +++++++++++++++++ + src/core/service.h | 1 + + 3 files changed, 19 insertions(+) + +diff --git src/core/dbus-service.c src/core/dbus-service.c +index 093289f..5a881e8 100644 +--- src/core/dbus-service.c ++++ src/core/dbus-service.c +@@ -60,6 +60,7 @@ const sd_bus_vtable bus_service_vtable[] = { + SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Service, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("BusName", "s", NULL, offsetof(Service, bus_name), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("StatusText", "s", NULL, offsetof(Service, status_text), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), ++ SD_BUS_PROPERTY("StatusErrno", "i", NULL, offsetof(Service, status_errno), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Service, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + BUS_EXEC_STATUS_VTABLE("ExecMain", offsetof(Service, main_exec_status), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + BUS_EXEC_COMMAND_LIST_VTABLE("ExecStartPre", offsetof(Service, exec_command[SERVICE_EXEC_START_PRE]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION), +diff --git src/core/service.c src/core/service.c +index 0b19767..ace45e2 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -2637,6 +2637,23 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + free(t); + } + ++ /* Interpret ERRNO= */ ++ e = strv_find_prefix(tags, "ERRNO="); ++ if (e) { ++ int status_errno; ++ ++ if (safe_atoi(e + 6, &status_errno) < 0) ++ log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); ++ else { ++ log_debug_unit(u->id, "%s: got %s", u->id, e); ++ ++ if (s->status_errno != status_errno) { ++ s->status_errno = status_errno; ++ notify_dbus = true; ++ } ++ } ++ } ++ + /* Interpret WATCHDOG= */ + if (strv_find(tags, "WATCHDOG=1")) { + log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); +--- src/core/service.h ++++ src/core/service.h 2014-07-08 12:54:39.238736046 +0200 +@@ -187,6 +187,7 @@ struct Service { + char *bus_name; + + char *status_text; ++ int status_errno; + + RateLimit start_limit; + StartLimitAction start_limit_action; +-- +1.7.9.2 + diff --git a/0004-fileio-quote-more-shell-characters-in-envfiles.patch b/0004-fileio-quote-more-shell-characters-in-envfiles.patch new file mode 100644 index 00000000..b4cd3e96 --- /dev/null +++ b/0004-fileio-quote-more-shell-characters-in-envfiles.patch @@ -0,0 +1,54 @@ +From 0ce5a80601597fe4d1a715a8f70ce8d5ccaa2d86 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Sun, 13 Jul 2014 18:49:00 +0300 +Subject: [PATCH] fileio: quote more shell characters in envfiles + +Turns out, making strings shell-proof is harder than expected: + + # machinectl set-hostname "foo|poweroff" && . /etc/machine-info + +(This could be simplified by quoting *and* escaping all characters, +which is harmless in shell but unnecessary.) +--- + src/shared/fileio.c | 4 ++-- + src/shared/util.h | 6 ++++++ + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git src/shared/fileio.c src/shared/fileio.c +index b0ab780..cbb40c2 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -738,11 +738,11 @@ static void write_env_var(FILE *f, const char *v) { + p++; + fwrite(v, 1, p-v, f); + +- if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { ++ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE SHELL_NEED_QUOTES)) { + fputc('\"', f); + + for (; *p; p++) { +- if (strchr("\'\"\\`$", *p)) ++ if (strchr(SHELL_NEED_ESCAPE, *p)) + fputc('\\', f); + + fputc(*p, f); +diff --git src/shared/util.h src/shared/util.h +index c5eadc9..b3187a9 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -93,6 +93,12 @@ + #define COMMENTS "#;" + #define GLOB_CHARS "*?[" + ++/* What characters are special in the shell? */ ++/* must be escaped outside and inside double-quotes */ ++#define SHELL_NEED_ESCAPE "\"\\`$" ++/* can be escaped or double-quoted */ ++#define SHELL_NEED_QUOTES SHELL_NEED_ESCAPE GLOB_CHARS "'()<>|&;" ++ + #define FORMAT_BYTES_MAX 8 + + #define ANSI_HIGHLIGHT_ON "\x1B[1;39m" +-- +1.7.9.2 + diff --git a/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch b/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch new file mode 100644 index 00000000..ed5997e0 --- /dev/null +++ b/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch @@ -0,0 +1,25 @@ +From 2040ccf171404b709acb0ecf1d1f17b87c5d05f0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:32:44 +0200 +Subject: [PATCH] service: don't accept negative ERRNO= notification messages + +--- + src/core/service.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/service.c src/core/service.c +index 5c54a34..d5aff99 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -2637,7 +2637,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + if (e) { + int status_errno; + +- if (safe_atoi(e + 6, &status_errno) < 0) ++ if (safe_atoi(e + 6, &status_errno) < 0 || status_errno < 0) + log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); + else { + log_debug_unit(u->id, "%s: got %s", u->id, e); +-- +1.7.9.2 + diff --git a/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch b/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch new file mode 100644 index 00000000..b1fc0988 --- /dev/null +++ b/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch @@ -0,0 +1,37 @@ +Based on b4af5a803aa71a57733ca46fef29b7afb20a626c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:33:26 +0200 +Subject: [PATCH] systemctl: show StatusErrno value in "systemctl status" + +--- + src/systemctl/systemctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-07-08 10:57:30.170735691 +0000 +@@ -2710,6 +2710,7 @@ typedef struct UnitStatusInfo { + const char *status_text; + const char *pid_file; + bool running:1; ++ int status_errno; + + usec_t start_timestamp; + usec_t exit_timestamp; +@@ -2982,6 +2983,8 @@ static void print_status_info( + + if (i->status_text) + printf(" Status: \"%s\"\n", i->status_text); ++ if (i->status_errno > 0) ++ printf(" Error: %i (%s)\n", i->status_errno, strerror(i->status_errno)); + + if (i->control_group && + (i->main_pid > 0 || i->control_pid > 0 || cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, i->control_group, false) == 0)) { +@@ -3203,6 +3206,8 @@ static int status_property(const char *n + i->exit_code = (int) j; + else if (streq(name, "ExecMainStatus")) + i->exit_status = (int) j; ++ else if (streq(name, "StatusErrno")) ++ i->status_errno = (int) j; + + break; + } diff --git a/0007-service-flush-status-text-and-errno-values-each-time.patch b/0007-service-flush-status-text-and-errno-values-each-time.patch new file mode 100644 index 00000000..7dbe5a89 --- /dev/null +++ b/0007-service-flush-status-text-and-errno-values-each-time.patch @@ -0,0 +1,29 @@ +From 8cfdb077b8e3da1c47fc1d735d051f21f33144c1 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:33:46 +0200 +Subject: [PATCH] service: flush status text and errno values each time a + service is started + +We shouldn't show status texts from previous service starts +--- + src/core/service.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git src/core/service.c src/core/service.c +index d5aff99..0f542ed 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -1699,6 +1699,10 @@ static int service_start(Unit *u) { + s->main_pid_alien = false; + s->forbid_restart = false; + ++ free(s->status_text); ++ s->status_text = NULL; ++ s->status_errno = 0; ++ + service_enter_start_pre(s); + return 0; + } +-- +1.7.9.2 + diff --git a/1007-physical-hotplug-cpu-and-memory.patch b/1007-physical-hotplug-cpu-and-memory.patch index 7daebb20..98500575 100644 --- a/1007-physical-hotplug-cpu-and-memory.patch +++ b/1007-physical-hotplug-cpu-and-memory.patch @@ -1,6 +1,6 @@ ---- /dev/null -+++ systemd-206/rules/80-hotplug-cpu-mem.rules -@@ -0,0 +1,9 @@ +--- systemd-210/rules/80-hotplug-cpu-mem.rules ++++ systemd-210/rules/80-hotplug-cpu-mem.rules 2014-05-21 15:47:01.885605543 +0000 +@@ -0,0 +1,12 @@ +# do not edit this file, it will be overwritten on update + +# Hotplug physical CPU @@ -9,9 +9,12 @@ + +# Hotplug physical memory +SUBSYSTEM=="memory", ACTION=="add", TEST=="state", ATTR{state}=="offline", \ -+ ATTR{state}="online" ---- systemd-206.orig/Makefile.am -+++ systemd-206/Makefile.am ++ ATTR{state}="online", TAG+="tmpfs" ++ ++# ++TAG=="tmpfs", RUN+="/usr/lib/udev/remount-tmpfs" +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am @@ -2480,6 +2480,10 @@ dist_udevrules_DATA += \ rules/73-seat-numlock.rules diff --git a/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch b/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch new file mode 100644 index 00000000..6b3d7ec6 --- /dev/null +++ b/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch @@ -0,0 +1,36 @@ +Based on a669ea9860900d5cdebbc4cb9aaea72db7e28a02 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 7 Jul 2014 14:50:16 +0200 +Subject: [PATCH] udev: link_config - ignore errors due to missing MAC address + +Otherwis, we get misleading error messages on links with MACs. + +Reported by Leonid Isaev. +--- + src/udev/net/link-config.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c 2014-07-08 10:44:19.450735575 +0000 +@@ -440,7 +440,9 @@ int link_config_apply(link_config_ctx *c + case MACPOLICY_PERSISTENT: + if (!mac_is_permanent(device)) { + r = get_mac(device, false, &generated_mac); +- if (r < 0) ++ if (r == -ENOENT) ++ break; ++ else if (r < 0) + return r; + mac = &generated_mac; + } +@@ -448,7 +450,9 @@ int link_config_apply(link_config_ctx *c + case MACPOLICY_RANDOM: + if (!mac_is_random(device)) { + r = get_mac(device, true, &generated_mac); +- if (r < 0) ++ if (r == -ENOENT) ++ break; ++ else if (r < 0) + return r; + mac = &generated_mac; + } diff --git a/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch b/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch new file mode 100644 index 00000000..5a89f11c --- /dev/null +++ b/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch @@ -0,0 +1,12 @@ +Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules ++++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +@@ -4,6 +4,7 @@ + + ACTION=="remove", GOTO="net-sriov-names_end" + SUBSYSTEM!="net", GOTO="net-sriov-names_end" ++KERNEL!="eth*", GOTO="net-sriov-names_end" + + IMPORT{cmdline}="net.ifnames" + ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index 8bec33f3..49b84eb0 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,84 @@ +------------------------------------------------------------------- +Tue Jul 15 12:30:31 UTC 2014 - rmilasan@suse.com + +- Only rename SRIOV-VF devices if device name start with eth (bnc#885232). + Add 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch + +------------------------------------------------------------------- +Tue Jul 15 07:39:40 UTC 2014 - werner@suse.de + +- Add patch vhangup-on-all-consoles.patch that is do a vhangup on + lines (bnc#886599) + +------------------------------------------------------------------- +Tue Jul 15 06:29:54 UTC 2014 - jlee@suse.com + +- Removed %{_libexecdir}/modules-load.d/efivars.conf because the kernel + patch of autoload efivars driver accepted by linux-efi upstream. + (bnc#881559) + https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=next&id=be756a5327fe3d4686d74d3e9b273010424e230c + +------------------------------------------------------------------- +Mon Jul 14 14:53:21 UTC 2014 - werner@suse.de + +- Update patch + 1007-physical-hotplug-cpu-and-memory.patch (bnc#869603) +- Add script systemd-remount-tmpfs (bnc#869603) as helper script + for the rule changed in patch 1007-physical-hotplug-cpu-and-memory.patch + +------------------------------------------------------------------- +Mon Jul 14 11:43:12 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-event-pull-in-sd-event.h-from-event-util.h.patch + 0002-util-fix-has-cc-check-and-add-test.patch + 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch + 0004-fileio-quote-more-shell-characters-in-envfiles.patch + +------------------------------------------------------------------- +Fri Jul 11 12:21:06 UTC 2014 - werner@suse.de + +- Only on SLES12 seccomp is available on ppc64 and s390x + +------------------------------------------------------------------- +Thu Jul 10 13:33:32 UTC 2014 - werner@suse.de + +- Port and add upstream patch + 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch + +------------------------------------------------------------------- +Wed Jul 9 13:14:02 UTC 2014 - werner@suse.de + +- Add patches + 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch + 0002-hostnamed-add-a-new-chassis-type-for-watches.patch +- Port and add upstream patches + 0001-journal-compress-return-early-in-uncompress_startswi.patch + 0002-journal-compress-improve-xz-compression-performance.patch + +------------------------------------------------------------------- +Wed Jul 9 12:41:53 UTC 2014 - meissner@suse.com + +- enable seccomp also for ppc64 and s390x + +------------------------------------------------------------------- +Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de + +- Port and add upstream patches + 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch + 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + 0003-architecture-add-string-table-entries-for-mips-le-ar.patch + 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch + 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch + 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch + 0007-service-flush-status-text-and-errno-values-each-time.patch + +------------------------------------------------------------------ +Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de + +- Add upstream patch + 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch + ------------------------------------------------------------------- Mon Jul 7 13:06:35 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index ea36e8a2..4652a12c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -106,11 +106,17 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif +%if 0%{?suse_version} >= 1315 +%ifarch %ix86 x86_64 x32 %arm ppc64le s390x +BuildRequires: pkgconfig(libseccomp) +%endif +%else %if 0%{?suse_version} >= 1310 %ifarch %ix86 x86_64 x32 %arm BuildRequires: pkgconfig(libseccomp) %endif %endif +%endif %if ! 0%{?bootstrap} BuildRequires: libapparmor-devel %endif @@ -140,6 +146,7 @@ Requires: netcfg Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding +Requires: sysvinit-tools Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils @@ -176,6 +183,7 @@ Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink Source1063: udev-generate-peristent-rule.sh Source1064: systemd-sleep-grub +Source1065: systemd-remount-tmpfs # # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r @@ -653,6 +661,40 @@ Patch319: 0002-namespace-fix-uninitialized-memory-access.patch Patch320: 0001-machine-don-t-return-uninitialized-variable.patch # PATCH-FIX-UPSTREAM added at 2014/07/07 Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch330: 0002-journal-compress-improve-xz-compression-performance.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/10 +Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch335: 0002-util-fix-has-cc-check-and-add-test.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch +# PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) +Patch338: vhangup-on-all-consoles.patch # UDEV PATCHES # ============ @@ -756,6 +798,10 @@ Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch # PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch +# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +# PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) +Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1235,6 +1281,23 @@ cp %{SOURCE7} m4/ %patch319 -p0 %patch320 -p0 %patch321 -p0 +%patch322 -p0 +%patch323 -p0 +%patch324 -p0 +%patch325 -p0 +%patch326 -p0 +%patch327 -p0 +%patch328 -p0 +%patch329 -p0 +%patch330 -p0 +%patch331 -p0 +%patch332 -p0 +%patch333 -p0 +%patch334 -p0 +%patch335 -p0 +%patch336 -p0 +%patch337 -p0 +%patch338 -p0 # udev patches %patch1001 -p1 @@ -1292,6 +1355,8 @@ cp %{SOURCE7} m4/ %patch1046 -p1 %patch1047 -p0 %patch1048 -p0 +%patch1049 -p0 +%patch1050 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -1466,6 +1531,7 @@ sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub +install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -1517,12 +1583,6 @@ cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf # load sg module at boot time sg EOF -%if 0%{has_efi} -cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/efivars.conf -# load efivars module at boot time -efivars -EOF -%endif # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual @@ -1985,9 +2045,6 @@ exit 0 %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf -%if 0%{has_efi} -%{_libexecdir}/modules-load.d/efivars.conf -%endif %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d @@ -2168,6 +2225,7 @@ exit 0 %{_prefix}/lib/udev/write_dev_root_rule %{_prefix}/lib/udev/udev-generate-peristent-rule %{_prefix}/lib/udev/net-set-sriov-names +%{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions %{_prefix}/lib/udev/write_net_rules %dir %{_prefix}/lib/udev/rules.d/ diff --git a/systemd-remount-tmpfs b/systemd-remount-tmpfs new file mode 100644 index 00000000..2e326469 --- /dev/null +++ b/systemd-remount-tmpfs @@ -0,0 +1,15 @@ +#!/bin/sh + +PATH=/usr/bin:/bin:/usr/sbin:/sbin +DIR=$(sed -rn '/^#/d;\@^[[:graph:]]+[[:space:]]+/[[:graph:]]+[[:space:]]+tmpfs[[:space:]]+.*size=[0-9]+[kmg,[:space:]]@{ s@^[[:graph:]]+[[:space:]]+(/[[:graph:]]+).*@\1@p }' /etc/fstab) + +if [ -n "$DIR" ]; then + for i in $DIR; do + echo $i + mount -o remount "$i" >/dev/null 2>&1 + STATE=$? + if [ "$STATE" -gt 0 ]; then + logger "Remount of $i failed with state $STATE" + fi + done +fi diff --git a/systemd.changes b/systemd.changes index 8bec33f3..49b84eb0 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,84 @@ +------------------------------------------------------------------- +Tue Jul 15 12:30:31 UTC 2014 - rmilasan@suse.com + +- Only rename SRIOV-VF devices if device name start with eth (bnc#885232). + Add 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch + +------------------------------------------------------------------- +Tue Jul 15 07:39:40 UTC 2014 - werner@suse.de + +- Add patch vhangup-on-all-consoles.patch that is do a vhangup on + lines (bnc#886599) + +------------------------------------------------------------------- +Tue Jul 15 06:29:54 UTC 2014 - jlee@suse.com + +- Removed %{_libexecdir}/modules-load.d/efivars.conf because the kernel + patch of autoload efivars driver accepted by linux-efi upstream. + (bnc#881559) + https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=next&id=be756a5327fe3d4686d74d3e9b273010424e230c + +------------------------------------------------------------------- +Mon Jul 14 14:53:21 UTC 2014 - werner@suse.de + +- Update patch + 1007-physical-hotplug-cpu-and-memory.patch (bnc#869603) +- Add script systemd-remount-tmpfs (bnc#869603) as helper script + for the rule changed in patch 1007-physical-hotplug-cpu-and-memory.patch + +------------------------------------------------------------------- +Mon Jul 14 11:43:12 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-event-pull-in-sd-event.h-from-event-util.h.patch + 0002-util-fix-has-cc-check-and-add-test.patch + 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch + 0004-fileio-quote-more-shell-characters-in-envfiles.patch + +------------------------------------------------------------------- +Fri Jul 11 12:21:06 UTC 2014 - werner@suse.de + +- Only on SLES12 seccomp is available on ppc64 and s390x + +------------------------------------------------------------------- +Thu Jul 10 13:33:32 UTC 2014 - werner@suse.de + +- Port and add upstream patch + 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch + +------------------------------------------------------------------- +Wed Jul 9 13:14:02 UTC 2014 - werner@suse.de + +- Add patches + 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch + 0002-hostnamed-add-a-new-chassis-type-for-watches.patch +- Port and add upstream patches + 0001-journal-compress-return-early-in-uncompress_startswi.patch + 0002-journal-compress-improve-xz-compression-performance.patch + +------------------------------------------------------------------- +Wed Jul 9 12:41:53 UTC 2014 - meissner@suse.com + +- enable seccomp also for ppc64 and s390x + +------------------------------------------------------------------- +Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de + +- Port and add upstream patches + 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch + 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + 0003-architecture-add-string-table-entries-for-mips-le-ar.patch + 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch + 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch + 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch + 0007-service-flush-status-text-and-errno-values-each-time.patch + +------------------------------------------------------------------ +Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de + +- Add upstream patch + 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch + ------------------------------------------------------------------- Mon Jul 7 13:06:35 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 6d3eac09..e9129035 100644 --- a/systemd.spec +++ b/systemd.spec @@ -101,11 +101,17 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif +%if 0%{?suse_version} >= 1315 +%ifarch %ix86 x86_64 x32 %arm ppc64le s390x +BuildRequires: pkgconfig(libseccomp) +%endif +%else %if 0%{?suse_version} >= 1310 %ifarch %ix86 x86_64 x32 %arm BuildRequires: pkgconfig(libseccomp) %endif %endif +%endif %if ! 0%{?bootstrap} BuildRequires: libapparmor-devel %endif @@ -135,6 +141,7 @@ Requires: netcfg Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding +Requires: sysvinit-tools Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils @@ -171,6 +178,7 @@ Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink Source1063: udev-generate-peristent-rule.sh Source1064: systemd-sleep-grub +Source1065: systemd-remount-tmpfs # # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r @@ -648,6 +656,40 @@ Patch319: 0002-namespace-fix-uninitialized-memory-access.patch Patch320: 0001-machine-don-t-return-uninitialized-variable.patch # PATCH-FIX-UPSTREAM added at 2014/07/07 Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch330: 0002-journal-compress-improve-xz-compression-performance.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/10 +Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch335: 0002-util-fix-has-cc-check-and-add-test.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch +# PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) +Patch338: vhangup-on-all-consoles.patch # UDEV PATCHES # ============ @@ -751,6 +793,10 @@ Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch # PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch +# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +# PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) +Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1230,6 +1276,23 @@ cp %{SOURCE7} m4/ %patch319 -p0 %patch320 -p0 %patch321 -p0 +%patch322 -p0 +%patch323 -p0 +%patch324 -p0 +%patch325 -p0 +%patch326 -p0 +%patch327 -p0 +%patch328 -p0 +%patch329 -p0 +%patch330 -p0 +%patch331 -p0 +%patch332 -p0 +%patch333 -p0 +%patch334 -p0 +%patch335 -p0 +%patch336 -p0 +%patch337 -p0 +%patch338 -p0 # udev patches %patch1001 -p1 @@ -1287,6 +1350,8 @@ cp %{SOURCE7} m4/ %patch1046 -p1 %patch1047 -p0 %patch1048 -p0 +%patch1049 -p0 +%patch1050 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -1461,6 +1526,7 @@ sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub +install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -1512,12 +1578,6 @@ cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf # load sg module at boot time sg EOF -%if 0%{has_efi} -cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/efivars.conf -# load efivars module at boot time -efivars -EOF -%endif # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual @@ -1980,9 +2040,6 @@ exit 0 %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf -%if 0%{has_efi} -%{_libexecdir}/modules-load.d/efivars.conf -%endif %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d @@ -2163,6 +2220,7 @@ exit 0 %{_prefix}/lib/udev/write_dev_root_rule %{_prefix}/lib/udev/udev-generate-peristent-rule %{_prefix}/lib/udev/net-set-sriov-names +%{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions %{_prefix}/lib/udev/write_net_rules %dir %{_prefix}/lib/udev/rules.d/ diff --git a/vhangup-on-all-consoles.patch b/vhangup-on-all-consoles.patch new file mode 100644 index 00000000..b318b124 --- /dev/null +++ b/vhangup-on-all-consoles.patch @@ -0,0 +1,28 @@ +Related to bnc#886599 and others. That is use the vhangup(8) tool +to explicit do a virtually hangup on the specified on the terminal +line to give e.g. the bash a few seconds to e.g. safe its history. + +--- + units/getty@.service.m4 | 1 + + units/serial-getty@.service.m4 | 1 + + 2 files changed, 2 insertions(+) +--- units/getty@.service.m4 ++++ units/getty@.service.m4 2014-07-15 07:30:28.006235859 +0000 +@@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0 + [Service] + # the VT is cleared by TTYVTDisallocate + ExecStart=-/sbin/agetty --noclear %I $TERM ++ExecStopPost=-/sbin/vhangup /dev/%I + Type=idle + Restart=always + RestartSec=0 +--- units/serial-getty@.service.m4 ++++ units/serial-getty@.service.m4 2014-07-15 07:30:01.366235017 +0000 +@@ -24,6 +24,7 @@ IgnoreOnIsolate=yes + + [Service] + ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600 $TERM ++ExecStopPost=-/sbin/vhangup /dev/%I + Type=idle + Restart=always + RestartSec=0 From 828fb3456397e72b9b57592d56b280892d5eba8a7d1a92e4a06922dae0fb6f0e Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 18 Jul 2014 04:40:27 +0000 Subject: [PATCH 188/221] Accepting request 241318 from Base:System - Add upstream patches 0001-po-add-Ukrainian-translation.patch 0002-man-document-yearly-and-annually-in-systemd.time-7.patch 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch - Add patch 0001-fix-only-discover-Xen-domU.patch to fix upstream patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch - Check if NAME key has a value before going thru the rule (bnc#885232). Add 1051-check-if-NAME-has-a-value.patch - Add upstream patches 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch 0002-units-serial-getty-.service-use-the-default-RestartS.patch 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - Add upstream patches 0001-po-add-Ukrainian-translation.patch 0002-man-document-yearly-and-annually-in-systemd.time-7.patch 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch - Add patch 0001-fix-only-discover-Xen-domU.patch to fix upstream patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch - Check if NAME key has a value before going thru the rule (bnc#885232). Add 1051-check-if-NAME-has-a-value.patch - Add upstream patches 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch 0002-units-serial-getty-.service-use-the-default-RestartS.patch OBS-URL: https://build.opensuse.org/request/show/241318 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=193 --- ...on-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch | 110 +++++ 0001-fix-only-discover-Xen-domU.patch | 17 + 0001-po-add-Ukrainian-translation.patch | 406 ++++++++++++++++++ ...early-and-annually-in-systemd.time-7.patch | 49 +++ ...ty-.service-use-the-default-RestartS.patch | 29 ++ ...ge-when-inotify-watches-are-exhauste.patch | 30 ++ 1051-check-if-NAME-has-a-value.patch | 12 + ...-rules-uaccess-add-ID_SOFTWARE_RADIO.patch | 45 ++ systemd-mini.changes | 24 ++ systemd-mini.spec | 24 ++ systemd.changes | 24 ++ systemd.spec | 24 ++ 12 files changed, 794 insertions(+) create mode 100644 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch create mode 100644 0001-fix-only-discover-Xen-domU.patch create mode 100644 0001-po-add-Ukrainian-translation.patch create mode 100644 0002-man-document-yearly-and-annually-in-systemd.time-7.patch create mode 100644 0002-units-serial-getty-.service-use-the-default-RestartS.patch create mode 100644 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch create mode 100644 1051-check-if-NAME-has-a-value.patch create mode 100644 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch diff --git a/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch b/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch new file mode 100644 index 00000000..53ccbcf5 --- /dev/null +++ b/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch @@ -0,0 +1,110 @@ +Based on 874bc134ac6504c45e94174e37af13ff21a6bfe2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 14 Jul 2014 16:53:23 -0400 +Subject: [PATCH] Clear up confusion wrt. ENTRY_SIZE_MAX and DATA_SIZE_MAX + +Define DATA_SIZE_MAX to mean the maximum size of a single +field, and ENTRY_SIZE_MAX to mean the size of the whole +entry, with some rough calculation of overhead over the payload. + +Check if entries are not too big when processing native journal +messages. +--- + src/journal/coredump.c | 6 +++--- + src/journal/journald-native.c | 25 +++++++++++++++++++++---- + 2 files changed, 24 insertions(+), 7 deletions(-) +--- src/journal/coredump.c ++++ src/journal/coredump.c 2014-07-16 13:02:54.438235659 +0000 +@@ -38,10 +38,10 @@ + #include "cgroup-util.h" + + /* Few programs have less than 3MiB resident */ +-#define COREDUMP_MIN_START (3*1024*1024) ++#define COREDUMP_MIN_START (3*1024*1024u) + /* Make sure to not make this larger than the maximum journal entry +- * size. See ENTRY_SIZE_MAX in journald-native.c. */ +-#define COREDUMP_MAX (767*1024*1024) ++ * size. See DATA_SIZE_MAX in journald-native.c. */ ++#define COREDUMP_MAX (1024*1024*767u) + + enum { + ARG_PID = 1, +--- src/journal/journald-native.c ++++ src/journal/journald-native.c 2014-07-16 12:50:45.000000000 +0000 +@@ -34,8 +34,8 @@ + + /* Make sure not to make this smaller than the maximum coredump + * size. See COREDUMP_MAX in coredump.c */ +-#define ENTRY_SIZE_MAX (1024*1024*768) +-#define DATA_SIZE_MAX (1024*1024*768) ++#define ENTRY_SIZE_MAX (1024*1024*770u) ++#define DATA_SIZE_MAX (1024*1024*768u) + + static bool valid_user_field(const char *p, size_t l) { + const char *a; +@@ -86,7 +86,7 @@ void server_process_native_message( + struct iovec *iovec = NULL; + unsigned n = 0, j, tn = (unsigned) -1; + const char *p; +- size_t remaining, m = 0; ++ size_t remaining, m = 0, entry_size = 0; + int priority = LOG_INFO; + char *identifier = NULL, *message = NULL; + pid_t object_pid = 0; +@@ -110,9 +110,17 @@ void server_process_native_message( + + if (e == p) { + /* Entry separator */ ++ ++ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ ++ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", ++ n, entry_size); ++ continue; ++ } ++ + server_dispatch_message(s, iovec, n, m, ucred, tv, label, label_len, NULL, priority, object_pid); + n = 0; + priority = LOG_INFO; ++ entry_size = 0; + + p++; + remaining--; +@@ -150,6 +158,7 @@ void server_process_native_message( + iovec[n].iov_base = (char*) p; + iovec[n].iov_len = l; + n++; ++ entry_size += iovec[n].iov_len; + + /* We need to determine the priority + * of this entry for the rate limiting +@@ -218,7 +227,7 @@ void server_process_native_message( + l = le64toh(l_le); + + if (l > DATA_SIZE_MAX) { +- log_debug("Received binary data block too large, ignoring."); ++ log_debug("Received binary data block of %zu bytes is too large, ignoring.", l); + break; + } + +@@ -242,6 +251,7 @@ void server_process_native_message( + iovec[n].iov_base = k; + iovec[n].iov_len = (e - p) + 1 + l; + n++; ++ entry_size += iovec[n].iov_len; + } else + free(k); + +@@ -255,6 +265,13 @@ void server_process_native_message( + + tn = n++; + IOVEC_SET_STRING(iovec[tn], "_TRANSPORT=journal"); ++ entry_size += strlen("_TRANSPORT=journal"); ++ ++ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ ++ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", ++ n, entry_size); ++ goto finish; ++ } + + if (message) { + if (s->forward_to_syslog) diff --git a/0001-fix-only-discover-Xen-domU.patch b/0001-fix-only-discover-Xen-domU.patch new file mode 100644 index 00000000..c832f0a9 --- /dev/null +++ b/0001-fix-only-discover-Xen-domU.patch @@ -0,0 +1,17 @@ +Fix upstream patch patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +of the commit 37287585b6ba9a55065c8f94458f6db3c0abe0af +--- + systemd-210/src/shared/virt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- systemd-210/src/shared/virt.c ++++ systemd-210/src/shared/virt.c 2014-07-17 07:25:12.169628255 +0000 +@@ -174,7 +174,7 @@ + if (streq(cap, "control_d")) + break; + +- if (!i) { ++ if (!cap) { + _id = "xen"; + r = 1; + } diff --git a/0001-po-add-Ukrainian-translation.patch b/0001-po-add-Ukrainian-translation.patch new file mode 100644 index 00000000..b7dba0ee --- /dev/null +++ b/0001-po-add-Ukrainian-translation.patch @@ -0,0 +1,406 @@ +From 260b6323cc2aebe722d5b8e43fa63a502f906774 Mon Sep 17 00:00:00 2001 +From: Daniel Korostil +Date: Thu, 17 Jul 2014 02:07:29 +0300 +Subject: [PATCH] po: add Ukrainian translation + +--- + po/LINGUAS | 1 + + po/uk.po | 377 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 378 insertions(+) + create mode 100644 po/uk.po + +diff --git po/LINGUAS po/LINGUAS +index 2cb0f30..f214ece 100644 +--- po/LINGUAS ++++ po/LINGUAS +@@ -4,3 +4,4 @@ fr + it + pl + ru ++uk +diff --git po/uk.po po/uk.po +new file mode 100644 +index 0000000..7a5212a +--- /dev/null ++++ po/uk.po +@@ -0,0 +1,377 @@ ++# Ukrainian translation for systemd. ++# Copyright (C) 2014 systemd's COPYRIGHT HOLDER ++# This file is distributed under the same license as the systemd package. ++# Eugene Melnik , 2014. ++# Daniel Korostil , 2014. ++msgid "" ++msgstr "" ++"Project-Id-Version: systemd master\n" ++"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" ++"temd&keywords=I18N+L10N&component=general\n" ++"POT-Creation-Date: 2014-06-06 22:16+0000\n" ++"PO-Revision-Date: 2014-07-16 19:13+0300\n" ++"Last-Translator: Daniel Korostil \n" ++"Language-Team: linux.org.ua\n" ++"Language: uk\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" ++"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" ++"X-Generator: Virtaal 0.7.1\n" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 ++msgid "Set host name" ++msgstr "Встановити назву вузла" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 ++msgid "Authentication is required to set the local host name." ++msgstr "Засвідчення потрібне, щоб встановити назву локального вузла." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 ++msgid "Set static host name" ++msgstr "Встановити статичну назву вузла" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 ++msgid "" ++"Authentication is required to set the statically configured local host name, " ++"as well as the pretty host name." ++msgstr "" ++"Засвідчення потрібне, щоб вказати статично налаштовану назву локального " ++"вузла, так само й форматовану." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 ++msgid "Set machine information" ++msgstr "Встановити інформацію про машину" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 ++msgid "Authentication is required to set local machine information." ++msgstr "Засвідчення потрібно, щоб вказати локальну інформацію про машини." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 ++msgid "Set system locale" ++msgstr "Вказати системну локаль" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 ++msgid "Authentication is required to set the system locale." ++msgstr "Засвідчення потрібно, щоб встановити системну локаль." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 ++msgid "Set system keyboard settings" ++msgstr "Вказати налаштування системної клавіатури" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 ++msgid "Authentication is required to set the system keyboard settings." ++msgstr "Засвідчення потрібно, щоб вказати налаштування системної клавіатури." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:1 ++msgid "Allow applications to inhibit system shutdown" ++msgstr "Дозволити програмам перешкоджати вимкненню системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:2 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"shutdown." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати вимкненню системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:3 ++msgid "Allow applications to delay system shutdown" ++msgstr "Дозволити програмам затримувати вимкнення системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:4 ++msgid "" ++"Authentication is required to allow an application to delay system shutdown." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам затримувати вимкнення системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:5 ++msgid "Allow applications to inhibit system sleep" ++msgstr "Дозволити програмам перешкоджати засинанню системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:6 ++msgid "" ++"Authentication is required to allow an application to inhibit system sleep." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати засинанню системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:7 ++msgid "Allow applications to delay system sleep" ++msgstr "Дозволити програмами затримувати засинання системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:8 ++msgid "" ++"Authentication is required to allow an application to delay system sleep." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам затримувати засинання системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:9 ++msgid "Allow applications to inhibit automatic system suspend" ++msgstr "Дозволити програмам перешкоджати автоматичному призупиненню системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:10 ++msgid "" ++"Authentication is required to allow an application to inhibit automatic " ++"system suspend." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати автоматичному " ++"призупиненню системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:11 ++msgid "Allow applications to inhibit system handling of the power key" ++msgstr "Дозволити програмам перешкоджати обробленню системою клавіші живлення" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:12 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the power key." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші живлення." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:13 ++msgid "Allow applications to inhibit system handling of the suspend key" ++msgstr "" ++"Дозволити програмам перешкоджати обробленню системою клавіші призупинення" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:14 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the suspend key." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші призупинення." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:15 ++msgid "Allow applications to inhibit system handling of the hibernate key" ++msgstr "Дозволити програмам перешкоджати обробленню системою клавіші присипання" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:16 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the hibernate key." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші присипання." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:17 ++msgid "Allow applications to inhibit system handling of the lid switch" ++msgstr "" ++"Дозволити програмам перешкоджати обробленню системою клавіші перемикання " ++"кришки" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:18 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the lid switch." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші перемикання кришки." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:19 ++msgid "Allow non-logged-in users to run programs" ++msgstr "Дозволити незареєстрованим користувачам запускати програми" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:20 ++msgid "" ++"Authentication is required to allow a non-logged-in user to run programs." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити незареєстрованим користувачам запускати " ++"програми." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:21 ++msgid "Allow attaching devices to seats" ++msgstr "Дозволити під'єднання пристроїв до місць" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:22 ++msgid "Authentication is required for attaching a device to a seat." ++msgstr "Засвідчення потрібно, щоб під'єднувати пристрої до місць." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:23 ++msgid "Flush device to seat attachments" ++msgstr "Очисний пристрій для під'єднань до місця" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:24 ++msgid "" ++"Authentication is required for resetting how devices are attached to seats." ++msgstr "Засвідчення потрібно, щоб перезапустити спосіб під'єднання до місць." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:25 ++msgid "Power off the system" ++msgstr "Вимкнути систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:26 ++msgid "Authentication is required for powering off the system." ++msgstr "Засвідчення потрібно, щоб вимкнути систему." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:27 ++msgid "Power off the system while other users are logged in" ++msgstr "Вимикнути систему, коли інші користувачі ще в ній" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:28 ++msgid "" ++"Authentication is required for powering off the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб вимкнути систему, коли інші користувачі в ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:29 ++msgid "Power off the system while an application asked to inhibit it" ++msgstr "Вимкнути систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:30 ++msgid "" ++"Authentication is required for powering off the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб вимкнути систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:31 ++msgid "Reboot the system" ++msgstr "Перезавантажити систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:32 ++msgid "Authentication is required for rebooting the system." ++msgstr "Для перезавантаження системи необхідна ідентифікація." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:33 ++msgid "Reboot the system while other users are logged in" ++msgstr "Перезавантажити, якщо інщі користувачі в системі" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:34 ++msgid "" ++"Authentication is required for rebooting the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб перезапустити систему, коли інші користувачі в " ++"ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:35 ++msgid "Reboot the system while an application asked to inhibit it" ++msgstr "Перезапустити систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:36 ++msgid "" ++"Authentication is required for rebooting the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб перезапустити систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:37 ++msgid "Suspend the system" ++msgstr "Призупинити систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:38 ++msgid "Authentication is required for suspending the system." ++msgstr "Засвідчення потрібно, щоб призупинити систему." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:39 ++msgid "Suspend the system while other users are logged in" ++msgstr "Призупинити систему, коли інші користувачі в ній" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:40 ++msgid "" ++"Authentication is required for suspending the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб призупинити систему, коли інші користувачі в ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:41 ++msgid "Suspend the system while an application asked to inhibit it" ++msgstr "Призупинити систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:42 ++msgid "" ++"Authentication is required for suspending the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб призупнити систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:43 ++msgid "Hibernate the system" ++msgstr "Приспати систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:44 ++msgid "Authentication is required for hibernating the system." ++msgstr "Засвідчення потрібно, щоб приспати систему." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:45 ++msgid "Hibernate the system while other users are logged in" ++msgstr "Приспати систему, коли інші користувачі в ній" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:46 ++msgid "" ++"Authentication is required for hibernating the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб присипання систему, коли інші користувачі в ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:47 ++msgid "Hibernate the system while an application asked to inhibit it" ++msgstr "Приспати систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:48 ++msgid "" ++"Authentication is required for hibernating the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб приспати систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 ++msgid "Set system time" ++msgstr "Вказати системний час" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 ++msgid "Authentication is required to set the system time." ++msgstr "Засвідчення потрібно, щоб вказати системний час." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 ++msgid "Set system timezone" ++msgstr "Вказати системний часовий пояс" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 ++msgid "Authentication is required to set the system timezone." ++msgstr "Засвідчення потрібно, щоб вказати системний часовий пояс." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 ++msgid "Set RTC to local timezone or UTC" ++msgstr "Вкажіть RTC для локального часового поясу або UTC" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 ++msgid "" ++"Authentication is required to control whether the RTC stores the local or " ++"UTC time." ++msgstr "Засвідчення потрібно, щоб контролювати, чи RTC зберігає час, чи UTC." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 ++msgid "Turn network time synchronization on or off" ++msgstr "Увімкнути або вимкнути синхронізування через мережу" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 ++msgid "" ++"Authentication is required to control whether network time synchronization " ++"shall be enabled." ++msgstr "" ++"Засвідчення потрібно, щоб контролювати, чи синхронізування часу через мережу " ++"запущено." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 ++msgid "Send passphrase back to system" ++msgstr "Надіслати пароль назад у систему" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 ++msgid "" ++"Authentication is required to send the entered passphrase back to the system." ++msgstr "Засвідчення потрібно, щоб надіслати введений пароль назад у систему." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 ++msgid "Privileged system and service manager access" ++msgstr "Привілейований доступ до менеджера системи і служб" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 ++msgid "Authentication is required to access the system and service manager." ++msgstr "Засвідчення потрібно, щоб доступитись до менеджера системи і служб." +-- +1.7.9.2 + diff --git a/0002-man-document-yearly-and-annually-in-systemd.time-7.patch b/0002-man-document-yearly-and-annually-in-systemd.time-7.patch new file mode 100644 index 00000000..521b22cc --- /dev/null +++ b/0002-man-document-yearly-and-annually-in-systemd.time-7.patch @@ -0,0 +1,49 @@ +From 8c275eef38bf7e3e592e4cb35a497522d1f15bb6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Jul 2014 22:17:29 -0400 +Subject: [PATCH] man: document yearly and annually in systemd.time(7) + +https://bugs.freedesktop.org/show_bug.cgi?id=81158 +--- + man/systemd.time.xml | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git man/systemd.time.xml man/systemd.time.xml +index 0706cdf..02431a5 100644 +--- man/systemd.time.xml ++++ man/systemd.time.xml +@@ -243,12 +243,16 @@ + + The special expressions + hourly, daily, +- monthly and weekly +- may be used as calendar events which refer to +- *-*-* *:00:00, *-*-* +- 00:00:00, *-*-01 00:00:00 and +- Mon *-*-* 00:00:00, +- respectively. ++ monthly, weekly, ++ and yearly or ++ annually may be used as calendar ++ events which refer to ++ *-*-* *:00:00, ++ *-*-* 00:00:00, ++ *-*-01 00:00:00, ++ Mon *-*-* 00:00:00, and ++ *-01-01 00:00:00 respectively. ++ + + Examples for valid timestamps and their + normalized form: +@@ -277,6 +281,8 @@ Wed-Sat,Tue 12-10-15 1:2:3 → Tue-Sat 2012-10-15 01:02:03 + daily → *-*-* 00:00:00 + monthly → *-*-01 00:00:00 + weekly → Mon *-*-* 00:00:00 ++ yearly → *-01-01 00:00:00 ++ annually → *-01-01 00:00:00 + *:2/3 → *-*-* *:02/3:00 + + Calendar events are used by timer units, see +-- +1.7.9.2 + diff --git a/0002-units-serial-getty-.service-use-the-default-RestartS.patch b/0002-units-serial-getty-.service-use-the-default-RestartS.patch new file mode 100644 index 00000000..3945e4cd --- /dev/null +++ b/0002-units-serial-getty-.service-use-the-default-RestartS.patch @@ -0,0 +1,29 @@ +Based on 4bf04322b8b7ecca4f3d65cfc642d0ac16356129 Mon Sep 17 00:00:00 2001 +From: Michael Olbrich +Date: Tue, 15 Jul 2014 18:28:10 +0200 +Subject: [PATCH] units/serial-getty@.service: use the default RestartSec + +For pluggable ttys such as USB serial devices, the getty is restarted +and exits in a loop until the remove event reaches systemd. Under +certain circumstances the restart loop can overload the system in a +way that prevents the remove event from reaching systemd for a long +time (e.g. at least several minutes on a small embedded system). + +Use the default RestartSec to prevent the restart loop from +overloading the system. Serial gettys are interactive units, so +waiting an extra 100ms really doesn't make a difference anyways +compared to the time it takes the user to log in. +--- + units/serial-getty@.service.m4 | 1 - + 1 file changed, 1 deletion(-) + +--- units/serial-getty@.service.m4 ++++ units/serial-getty@.service.m4 2014-07-16 00:00:00.000000000 +0000 +@@ -27,7 +27,6 @@ ExecStart=-/sbin/agetty --keep-baud %I 1 + ExecStopPost=-/sbin/vhangup /dev/%I + Type=idle + Restart=always +-RestartSec=0 + UtmpIdentifier=%I + TTYPath=/dev/%I + TTYReset=yes diff --git a/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch b/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch new file mode 100644 index 00000000..5a60b86b --- /dev/null +++ b/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch @@ -0,0 +1,30 @@ +From 18abe7bd3e13525b257da69ac49ff7841c289567 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Jul 2014 22:52:53 -0400 +Subject: [PATCH] core: nicer message when inotify watches are exhausted + +inotify_add_watch returns ENOSPC, which translates to +"No space left on device", which is misleading. + +https://bugs.freedesktop.org/show_bug.cgi?id=73628 +--- + src/core/path.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/core/path.c src/core/path.c +index 20e454d..f54c77f 100644 +--- src/core/path.c ++++ src/core/path.c +@@ -99,7 +99,8 @@ int path_spec_watch(PathSpec *s, sd_event_io_handler_t handler) { + break; + } + +- log_warning("Failed to add watch on %s: %m", s->path); ++ log_warning("Failed to add watch on %s: %s", s->path, ++ errno == ENOSPC ? "too many watches" : strerror(-r)); + r = -errno; + if (cut) + *cut = tmp; +-- +1.7.9.2 + diff --git a/1051-check-if-NAME-has-a-value.patch b/1051-check-if-NAME-has-a-value.patch new file mode 100644 index 00000000..3ea5f800 --- /dev/null +++ b/1051-check-if-NAME-has-a-value.patch @@ -0,0 +1,12 @@ +Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules ++++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +@@ -5,6 +5,7 @@ + ACTION=="remove", GOTO="net-sriov-names_end" + SUBSYSTEM!="net", GOTO="net-sriov-names_end" + KERNEL!="eth*", GOTO="net-sriov-names_end" ++NAME=="?*", GOTO="net-sriov-names_end" + + IMPORT{cmdline}="net.ifnames" + ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" diff --git a/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch b/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch new file mode 100644 index 00000000..edab1583 --- /dev/null +++ b/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch @@ -0,0 +1,45 @@ +From 30632d97d9d68c8202e562f34afae8f8d6e9c377 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 15 Jul 2014 17:35:53 +0200 +Subject: [PATCH] rules: uaccess - add ID_SOFTWARE_RADIO + +On Tue, Jul 15, 2014 at 1:52 PM, Alick Zhao wrote: +>>> +>>> So maybe ID_SOFTWARE_RADIO ? +>> +>> Hmm, SDR is more a term for a generic technology than for a device +>> class. To me it does not really sound like an administrator would know +>> what this is. +>> +>> What exactly is the device or subsystem you want to make accessible to +>> locally logged-in users only? +> +> Initially it is bladeRF, but many more are of interest: USRP, rtl-sdr, +> HackRF, ... [1] +> +> I agree an administrator might not know what SDR is, since it is +> currently still not widely known, and makes sense only for amateurs +> and researchers. But as a SDR fan, I see many new SDR peripherals +> are created recently, and expect to see more. So a generic ID seems +> reasonable to me. +> +> [1] http://en.wikipedia.org/wiki/List_of_software-defined_radios +--- + src/login/70-uaccess.rules | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/login/70-uaccess.rules src/login/70-uaccess.rules +index 57f619d..694df2c 100644 +--- src/login/70-uaccess.rules ++++ src/login/70-uaccess.rules +@@ -72,4 +72,7 @@ ENV{DDC_DEVICE}=="?*", TAG+="uaccess" + # media player raw devices (for user-mode drivers, Android SDK, etc.) + SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="uaccess" + ++# software-defined radio communication devices ++ENV{ID_SOFTWARE_RADIO}=="?*", TAG+="uaccess" ++ + LABEL="uaccess_end" +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 49b84eb0..f63d54dc 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-po-add-Ukrainian-translation.patch + 0002-man-document-yearly-and-annually-in-systemd.time-7.patch + 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +- Add patch 0001-fix-only-discover-Xen-domU.patch to fix upstream + patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch + +------------------------------------------------------------------- +Thu Jul 17 06:32:51 UTC 2014 - rmilasan@suse.com + +- Check if NAME key has a value before going thru the rule (bnc#885232). + Add 1051-check-if-NAME-has-a-value.patch + +------------------------------------------------------------------- +Wed Jul 16 16:33:12 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch + 0002-units-serial-getty-.service-use-the-default-RestartS.patch + 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch + ------------------------------------------------------------------- Tue Jul 15 12:30:31 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 4652a12c..50f02669 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -695,6 +695,18 @@ Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch341: 0001-po-add-Ukrainian-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +# PATCH-FIX-SUSE Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +Patch344: 0001-fix-only-discover-Xen-domU.patch # UDEV PATCHES # ============ @@ -802,6 +814,10 @@ Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch +# PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) +Patch1051: 1051-check-if-NAME-has-a-value.patch +# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1298,6 +1314,12 @@ cp %{SOURCE7} m4/ %patch336 -p0 %patch337 -p0 %patch338 -p0 +%patch339 -p0 +%patch340 -p0 +%patch341 -p0 +%patch342 -p0 +%patch343 -p0 +%patch344 -p1 # udev patches %patch1001 -p1 @@ -1357,6 +1379,8 @@ cp %{SOURCE7} m4/ %patch1048 -p0 %patch1049 -p0 %patch1050 -p1 +%patch1051 -p1 +%patch1052 -p0 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 49b84eb0..f63d54dc 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-po-add-Ukrainian-translation.patch + 0002-man-document-yearly-and-annually-in-systemd.time-7.patch + 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +- Add patch 0001-fix-only-discover-Xen-domU.patch to fix upstream + patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch + +------------------------------------------------------------------- +Thu Jul 17 06:32:51 UTC 2014 - rmilasan@suse.com + +- Check if NAME key has a value before going thru the rule (bnc#885232). + Add 1051-check-if-NAME-has-a-value.patch + +------------------------------------------------------------------- +Wed Jul 16 16:33:12 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch + 0002-units-serial-getty-.service-use-the-default-RestartS.patch + 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch + ------------------------------------------------------------------- Tue Jul 15 12:30:31 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index e9129035..318788d6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -690,6 +690,18 @@ Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch341: 0001-po-add-Ukrainian-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +# PATCH-FIX-SUSE Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +Patch344: 0001-fix-only-discover-Xen-domU.patch # UDEV PATCHES # ============ @@ -797,6 +809,10 @@ Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch +# PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) +Patch1051: 1051-check-if-NAME-has-a-value.patch +# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1293,6 +1309,12 @@ cp %{SOURCE7} m4/ %patch336 -p0 %patch337 -p0 %patch338 -p0 +%patch339 -p0 +%patch340 -p0 +%patch341 -p0 +%patch342 -p0 +%patch343 -p0 +%patch344 -p1 # udev patches %patch1001 -p1 @@ -1352,6 +1374,8 @@ cp %{SOURCE7} m4/ %patch1048 -p0 %patch1049 -p0 %patch1050 -p1 +%patch1051 -p1 +%patch1052 -p0 # ensure generate files are removed rm -f units/emergency.service From bc05a7952f91b3297035f90078802bdfcb4f8100a68e12fa104867c3b9d4fef2 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 23 Jul 2014 20:06:11 +0000 Subject: [PATCH 189/221] Accepting request 241980 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/241980 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=194 --- ...h-completion-p-option-for-journalctl.patch | 46 +++++ 0001-compress-fix-return-value.patch | 34 ++++ 0001-detect-s390-virt.patch | 35 ---- 0001-detect-virt-Fix-Xen-domU-discovery.patch | 33 ++++ 0001-fix-only-discover-Xen-domU.patch | 17 -- ...tect-virt-detect-s390-virtualization.patch | 72 ++++++++ ...re-verbose-when-bind-or-listen-fails.patch | 92 ++++++++++ ...rnalctl-man-allow-only-between-terms.patch | 109 ++++++++++++ 0003-Add-quotes-to-warning-message.patch | 41 +++++ ...-systemd-use-pager-for-test-and-help.patch | 111 ++++++++++++ ...the-first-error-from-manager_startup.patch | 57 +++++++ 1053-better-checks-in-write_net_rules.patch | 29 ++++ set-and-use-default-logconsole.patch | 159 ++++++++++++++++++ systemd-mini-rpmlintrc | 7 + systemd-mini.changes | 62 ++++++- systemd-mini.spec | 79 +++++++-- systemd-rpmlintrc | 7 + systemd.changes | 62 ++++++- systemd.spec | 79 +++++++-- 19 files changed, 1049 insertions(+), 82 deletions(-) create mode 100644 0001-bash-completion-p-option-for-journalctl.patch create mode 100644 0001-compress-fix-return-value.patch delete mode 100644 0001-detect-s390-virt.patch create mode 100644 0001-detect-virt-Fix-Xen-domU-discovery.patch delete mode 100644 0001-fix-only-discover-Xen-domU.patch create mode 100644 0001-systemd-detect-virt-detect-s390-virtualization.patch create mode 100644 0002-Be-more-verbose-when-bind-or-listen-fails.patch create mode 100644 0002-journalctl-man-allow-only-between-terms.patch create mode 100644 0003-Add-quotes-to-warning-message.patch create mode 100644 0003-systemd-use-pager-for-test-and-help.patch create mode 100644 0004-systemd-return-the-first-error-from-manager_startup.patch create mode 100644 1053-better-checks-in-write_net_rules.patch create mode 100644 set-and-use-default-logconsole.patch diff --git a/0001-bash-completion-p-option-for-journalctl.patch b/0001-bash-completion-p-option-for-journalctl.patch new file mode 100644 index 00000000..f41318f5 --- /dev/null +++ b/0001-bash-completion-p-option-for-journalctl.patch @@ -0,0 +1,46 @@ +From be8f4a9fa732d61e845e1ab1a62ac3a6b368d3a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 19 Jul 2014 19:46:04 -0400 +Subject: [PATCH] bash-completion: -p option for journalctl + +--- + shell-completion/bash/journalctl | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git shell-completion/bash/journalctl shell-completion/bash/journalctl +index e4b2f4a..14dcd22 100644 +--- shell-completion/bash/journalctl ++++ shell-completion/bash/journalctl +@@ -35,6 +35,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} + _UDEV_{SYSNAME,DEVNODE,DEVLINK} + __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) + ++__syslog_priorities=(emerg alert crit err warning notice info debug) ++ + _journalctl() { + local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + local -A OPTS=( +@@ -44,8 +46,8 @@ _journalctl() { + --no-tail -q --quiet --setup-keys --this-boot --verify + --version --list-catalog --update-catalog --list-boots' + [ARG]='-b --boot --this-boot -D --directory --file -F --field +- -o --output -u --unit --user-unit' +- [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until ++ -o --output -u --unit --user-unit -p --priority' ++ [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until + --verify-key' + ) + +@@ -68,6 +70,9 @@ _journalctl() { + --field|-F) + comps=${__journal_fields[*]} + ;; ++ --priority|-p) ++ comps=${__syslog_priorities[*]} ++ ;; + --unit|-u) + comps=$(journalctl -F '_SYSTEMD_UNIT' 2>/dev/null) + ;; +-- +1.7.9.2 + diff --git a/0001-compress-fix-return-value.patch b/0001-compress-fix-return-value.patch new file mode 100644 index 00000000..b2e03c27 --- /dev/null +++ b/0001-compress-fix-return-value.patch @@ -0,0 +1,34 @@ +From 01c3322e017989d25f7b4b51268245d5315ae678 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 18 Jul 2014 21:44:36 -0400 +Subject: [PATCH] compress: fix return value + +--- + src/journal/compress.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/journal/compress.c src/journal/compress.c +index 316c1a6..ee18bc8 100644 +--- src/journal/compress.c ++++ src/journal/compress.c +@@ -132,7 +132,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size, + + space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); + if (!greedy_realloc(dst, dst_alloc_size, space, 1)) +- return false; ++ return -ENOMEM; + + s.next_in = src; + s.avail_in = src_size; +@@ -158,7 +158,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size, + used = space - s.avail_out; + space = MIN(2 * space, dst_max ?: (uint64_t) -1); + if (!greedy_realloc(dst, dst_alloc_size, space, 1)) +- return false; ++ return -ENOMEM; + + s.avail_out = space - used; + s.next_out = *dst + used; +-- +1.7.9.2 + diff --git a/0001-detect-s390-virt.patch b/0001-detect-s390-virt.patch deleted file mode 100644 index 3a437118..00000000 --- a/0001-detect-s390-virt.patch +++ /dev/null @@ -1,35 +0,0 @@ -bnc#880438 - systemd-detect-virt doesn't work on System z - ---- systemd-210/src/shared/virt.c -+++ systemd-210/src/shared/virt.c 2014-06-26 07:55:30.081608729 +0000 -@@ -196,6 +196,30 @@ - } else - return r; - -+#if defined(__s390x__) -+ /* First layer virtualization (PR/SM) is always present on s390x */ -+ _id = "PR/SM"; -+ r = 1; -+ -+ /* Check for second layer virtualization */ -+ _cleanup_fclose_ FILE *f = NULL; -+ char line[LINE_MAX]; -+ f = fopen("/proc/sysinfo", "re"); -+ if (f) { -+ FOREACH_LINE(line, f, return -errno) { -+ if (startswith(line, "VM00 Control Program:")) { -+ if (strstr(line,"z/VM")) -+ _id = "z/VM"; -+ else if (strstr(line,"KVM/Linux")) -+ _id = "KVM"; -+ break; -+ } -+ } -+ } -+ -+ goto finish; -+#endif -+ - /* this will set _id to "other" and return 0 for unknown hypervisors */ - r = detect_vm_cpuid(&_id); - if (r != 0) diff --git a/0001-detect-virt-Fix-Xen-domU-discovery.patch b/0001-detect-virt-Fix-Xen-domU-discovery.patch new file mode 100644 index 00000000..8582f560 --- /dev/null +++ b/0001-detect-virt-Fix-Xen-domU-discovery.patch @@ -0,0 +1,33 @@ +From a71516dfd1858f37712ef52a288bf5fb274383e0 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Thu, 17 Jul 2014 11:25:37 +0200 +Subject: [PATCH] detect-virt: Fix Xen domU discovery + +The conditional for detection xen virtualization contained a little mistake. +It is checking for i to be empty: 'if (!i) {', but it must check for cap instead, +because: 'cap = strsep(&i, ",")' will set cap to the discovered value and i to +the next value after the separator. +Hence, i would be empty, if there is only control_d in domcap, leading to a wrong +domU detection. + +https://bugs.freedesktop.org/show_bug.cgi?id=77271 +--- + src/shared/virt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/virt.c src/shared/virt.c +index 774915f..20a8d7c 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -173,7 +173,7 @@ int detect_vm(const char **id) { + if (streq(cap, "control_d")) + break; + +- if (!i) { ++ if (!cap) { + _id = "xen"; + r = 1; + } +-- +1.7.9.2 + diff --git a/0001-fix-only-discover-Xen-domU.patch b/0001-fix-only-discover-Xen-domU.patch deleted file mode 100644 index c832f0a9..00000000 --- a/0001-fix-only-discover-Xen-domU.patch +++ /dev/null @@ -1,17 +0,0 @@ -Fix upstream patch patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -of the commit 37287585b6ba9a55065c8f94458f6db3c0abe0af ---- - systemd-210/src/shared/virt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- systemd-210/src/shared/virt.c -+++ systemd-210/src/shared/virt.c 2014-07-17 07:25:12.169628255 +0000 -@@ -174,7 +174,7 @@ - if (streq(cap, "control_d")) - break; - -- if (!i) { -+ if (!cap) { - _id = "xen"; - r = 1; - } diff --git a/0001-systemd-detect-virt-detect-s390-virtualization.patch b/0001-systemd-detect-virt-detect-s390-virtualization.patch new file mode 100644 index 00000000..300258fb --- /dev/null +++ b/0001-systemd-detect-virt-detect-s390-virtualization.patch @@ -0,0 +1,72 @@ +From f41925b4e442a34c93ad120ef1426c974a047ed1 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Fri, 18 Jul 2014 09:13:36 -0400 +Subject: [PATCH] systemd-detect-virt: detect s390 virtualization + +A system that is running on a logical partition (LPAR) provided by +PR/SM has access to physical hardware (except CPU). It is true that +PR/SM abstracts the hardware, but only for sharing purposes. + +Details are statet at: + +http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm + +-->-- +In other words, PR/SM transforms physical resources into virtual resources so +that many logical partitions can share the same physical resources. +--<-- + +Still, from the OS point of view, the shared virtual resource is real +hardware. ConditionVirtualization must be set to false if the OS runs +directly on PR/SM (e.g. in an LPAR). + +[zj: reorder code so that variables are not allocated when #if-def is +false. Add commit message.] +--- + man/systemd.unit.xml | 1 + + src/shared/virt.c | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 6447584..86a8cbb 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -996,6 +996,7 @@ + virtualization solution, or one of + qemu, + kvm, ++ zvm, + vmware, + microsoft, + oracle, +diff --git src/shared/virt.c src/shared/virt.c +index 20a8d7c..b436895 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -220,6 +220,23 @@ int detect_vm(const char **id) { + goto finish; + } + ++#if defined(__s390__) ++ { ++ _cleanup_free_ char *t = NULL; ++ ++ r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t); ++ if (r >= 0) { ++ if (streq(t, "z/VM")) ++ _id = "zvm"; ++ else ++ _id = "kvm"; ++ r = 1; ++ ++ goto finish; ++ } ++ } ++#endif ++ + r = 0; + + finish: +-- +1.7.9.2 + diff --git a/0002-Be-more-verbose-when-bind-or-listen-fails.patch b/0002-Be-more-verbose-when-bind-or-listen-fails.patch new file mode 100644 index 00000000..0a8e80e6 --- /dev/null +++ b/0002-Be-more-verbose-when-bind-or-listen-fails.patch @@ -0,0 +1,92 @@ +Based on 6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 3 Mar 2014 19:49:40 -0500 +Subject: [PATCH] Be more verbose when bind or listen fails + +Also be more verbose in devnode_acl_all(). +--- + src/core/manager.c | 2 +- + src/journal/journald-native.c | 2 +- + src/journal/journald-stream.c | 4 ++-- + src/journal/journald-syslog.c | 2 +- + src/login/logind-acl.c | 5 ++++- + src/shared/ask-password-api.c | 2 +- + 6 files changed, 10 insertions(+), 7 deletions(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-07-21 10:57:20.286367050 +0000 +@@ -571,7 +571,7 @@ static int manager_setup_notify(Manager + + r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); + return -errno; + } + +--- src/journal/journald-native.c ++++ src/journal/journald-native.c 2014-07-21 00:00:00.000000000 +0000 +@@ -405,7 +405,7 @@ int server_open_native_socket(Server*s) + + r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + return -errno; + } + +--- src/journal/journald-stream.c ++++ src/journal/journald-stream.c 2014-07-21 00:00:00.000000000 +0000 +@@ -447,14 +447,14 @@ int server_open_stdout_socket(Server *s) + + r = bind(s->stdout_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + return -errno; + } + + chmod(sa.un.sun_path, 0666); + + if (listen(s->stdout_fd, SOMAXCONN) < 0) { +- log_error("listen() failed: %m"); ++ log_error("listen(%s) failed: %m", sa.un.sun_path); + return -errno; + } + } else +--- src/journal/journald-syslog.c ++++ src/journal/journald-syslog.c 2014-07-21 00:00:00.000000000 +0000 +@@ -437,7 +437,7 @@ int server_open_syslog_socket(Server *s) + + r = bind(s->syslog_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + return -errno; + } + +--- src/login/logind-acl.c ++++ src/login/logind-acl.c 2014-07-21 10:59:04.986235573 +0000 +@@ -277,7 +277,10 @@ int devnode_acl_all(struct udev *udev, + SET_FOREACH(n, nodes, i) { + int k; + +- log_debug("Fixing up ACLs at %s for seat %s", n, seat); ++ log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"→"UID_FMT"%s%s)", ++ n, seat, old_uid, new_uid, ++ del ? " del" : "", add ? " add" : ""); ++ + k = devnode_acl(n, flush, del, old_uid, add, new_uid); + if (k < 0) + r = k; +--- src/shared/ask-password-api.c ++++ src/shared/ask-password-api.c 2014-07-21 00:00:00.000000000 +0000 +@@ -275,7 +275,7 @@ static int create_socket(char **name) { + + if (r < 0) { + r = -errno; +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + goto fail; + } + diff --git a/0002-journalctl-man-allow-only-between-terms.patch b/0002-journalctl-man-allow-only-between-terms.patch new file mode 100644 index 00000000..c29bdf6f --- /dev/null +++ b/0002-journalctl-man-allow-only-between-terms.patch @@ -0,0 +1,109 @@ +From 4e6029435111adcad71489aca2dd68bc65aeffd4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 19 Jul 2014 21:05:07 -0400 +Subject: [PATCH] journalctl,man: allow + only between terms + +https://bugzilla.redhat.com/show_bug.cgi?id=1110712 +--- + man/journalctl.xml | 19 +++++++++++++++---- + src/journal/journalctl.c | 20 +++++++++++++++++--- + 2 files changed, 32 insertions(+), 7 deletions(-) + +diff --git man/journalctl.xml man/journalctl.xml +index 47b5a05..df9c794 100644 +--- man/journalctl.xml ++++ man/journalctl.xml +@@ -84,10 +84,11 @@ + field, then they are automatically matched as + alternatives, i.e. the resulting output will show + entries matching any of the specified matches for the +- same field. Finally, if the character +- + appears as a separate word on the +- command line, all matches before and after are combined +- in a disjunction (i.e. logical OR). ++ same field. Finally, the character ++ + may appears as a separate word ++ between other terms on the command line. This causes ++ all matches before and after to be combined in a ++ disjunction (i.e. logical OR). + + As shortcuts for a few types of field/value + matches, file paths may be specified. If a file path +@@ -98,11 +99,21 @@ + _KERNEL_DEVICE= match for the + device. + ++ Additional contraints may be added using options ++ , , ++ etc, to futher limit what entries will be shown ++ (logical AND). ++ + Output is interleaved from all accessible + journal files, whether they are rotated or currently + being written, and regardless of whether they belong to the + system itself or are accessible user journals. + ++ The set of journal files which will be used ++ can be modified using the , ++ , , ++ and options, see below. ++ + All users are granted access to their private + per-user journals. However, by default, only root and + users who are members of the systemd-journal +diff --git src/journal/journalctl.c src/journal/journalctl.c +index 92e8286..7aedbf0 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -699,15 +699,20 @@ static int generate_new_id128(void) { + + static int add_matches(sd_journal *j, char **args) { + char **i; ++ bool have_term = false; + + assert(j); + + STRV_FOREACH(i, args) { + int r; + +- if (streq(*i, "+")) ++ if (streq(*i, "+")) { ++ if (!have_term) ++ break; + r = sd_journal_add_disjunction(j); +- else if (path_is_absolute(*i)) { ++ have_term = false; ++ ++ } else if (path_is_absolute(*i)) { + _cleanup_free_ char *p, *t = NULL, *t2 = NULL; + const char *path; + _cleanup_free_ char *interpreter = NULL; +@@ -756,8 +761,12 @@ static int add_matches(sd_journal *j, char **args) { + r = sd_journal_add_match(j, t, 0); + if (t2) + r = sd_journal_add_match(j, t2, 0); +- } else ++ have_term = true; ++ ++ } else { + r = sd_journal_add_match(j, *i, 0); ++ have_term = true; ++ } + + if (r < 0) { + log_error("Failed to add match '%s': %s", *i, strerror(-r)); +@@ -765,6 +774,11 @@ static int add_matches(sd_journal *j, char **args) { + } + } + ++ if (!strv_isempty(args) && !have_term) { ++ log_error("\"+\" can only be used between terms"); ++ return -EINVAL; ++ } ++ + return 0; + } + +-- +1.7.9.2 + diff --git a/0003-Add-quotes-to-warning-message.patch b/0003-Add-quotes-to-warning-message.patch new file mode 100644 index 00000000..3a742bac --- /dev/null +++ b/0003-Add-quotes-to-warning-message.patch @@ -0,0 +1,41 @@ +From f0ea29eaeb3449822bfbdfa839b00e323dfc523e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 20 Jul 2014 19:47:42 -0400 +Subject: [PATCH] Add quotes to warning message + +The message for SYSTEMD_LOG_LEVEL= looked a bit strange. +--- + src/shared/log.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git src/shared/log.c src/shared/log.c +index 9039db3..3941e3e 100644 +--- src/shared/log.c ++++ src/shared/log.c +@@ -884,19 +884,19 @@ void log_parse_environment(void) { + + e = secure_getenv("SYSTEMD_LOG_TARGET"); + if (e && log_set_target_from_string(e) < 0) +- log_warning("Failed to parse log target %s. Ignoring.", e); ++ log_warning("Failed to parse log target '%s'. Ignoring.", e); + + e = secure_getenv("SYSTEMD_LOG_LEVEL"); + if (e && log_set_max_level_from_string(e) < 0) +- log_warning("Failed to parse log level %s. Ignoring.", e); ++ log_warning("Failed to parse log level '%s'. Ignoring.", e); + + e = secure_getenv("SYSTEMD_LOG_COLOR"); + if (e && log_show_color_from_string(e) < 0) +- log_warning("Failed to parse bool %s. Ignoring.", e); ++ log_warning("Failed to parse bool '%s'. Ignoring.", e); + + e = secure_getenv("SYSTEMD_LOG_LOCATION"); + if (e && log_show_location_from_string(e) < 0) +- log_warning("Failed to parse bool %s. Ignoring.", e); ++ log_warning("Failed to parse bool '%s'. Ignoring.", e); + } + + LogTarget log_get_target(void) { +-- +1.7.9.2 + diff --git a/0003-systemd-use-pager-for-test-and-help.patch b/0003-systemd-use-pager-for-test-and-help.patch new file mode 100644 index 00000000..a22e0b9d --- /dev/null +++ b/0003-systemd-use-pager-for-test-and-help.patch @@ -0,0 +1,111 @@ +From b87c2aa6bf1247c298c9bd9f56b9b56a87836b2d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 7 Jan 2014 00:00:05 -0500 +Subject: [PATCH] systemd: use pager for --test and --help + +--- + src/core/main.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git src/core/main.c src/core/main.c +index f9ee297..ae38b43 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -50,6 +50,7 @@ + #include "conf-parser.h" + #include "missing.h" + #include "label.h" ++#include "pager.h" + #include "build.h" + #include "strv.h" + #include "def.h" +@@ -94,6 +95,7 @@ static int arg_crash_chvt = -1; + static bool arg_confirm_spawn = false; + static ShowStatus arg_show_status = _SHOW_STATUS_UNSET; + static bool arg_switched_root = false; ++static int arg_no_pager = -1; + static char ***arg_join_controllers = NULL; + static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL; + static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT; +@@ -117,6 +119,14 @@ static bool arg_default_memory_accounting = false; + + static void nop_handler(int sig) {} + ++static void pager_open_if_enabled(void) { ++ ++ if (arg_no_pager <= 0) ++ return; ++ ++ pager_open(false); ++} ++ + noreturn static void crash(int sig) { + + if (getpid() != 1) +@@ -704,6 +714,7 @@ static int parse_argv(int argc, char *argv[]) { + ARG_SYSTEM, + ARG_USER, + ARG_TEST, ++ ARG_NO_PAGER, + ARG_VERSION, + ARG_DUMP_CONFIGURATION_ITEMS, + ARG_DUMP_CORE, +@@ -725,6 +736,7 @@ static int parse_argv(int argc, char *argv[]) { + { "system", no_argument, NULL, ARG_SYSTEM }, + { "user", no_argument, NULL, ARG_USER }, + { "test", no_argument, NULL, ARG_TEST }, ++ { "no-pager", no_argument, NULL, ARG_NO_PAGER }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, ARG_VERSION }, + { "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS }, +@@ -832,6 +844,12 @@ static int parse_argv(int argc, char *argv[]) { + + case ARG_TEST: + arg_action = ACTION_TEST; ++ if (arg_no_pager < 0) ++ arg_no_pager = true; ++ break; ++ ++ case ARG_NO_PAGER: ++ arg_no_pager = true; + break; + + case ARG_VERSION: +@@ -912,6 +930,8 @@ static int parse_argv(int argc, char *argv[]) { + + case 'h': + arg_action = ACTION_HELP; ++ if (arg_no_pager < 0) ++ arg_no_pager = true; + break; + + case 'D': +@@ -984,6 +1004,7 @@ static int help(void) { + "Starts up and maintains the system or user services.\n\n" + " -h --help Show this help\n" + " --test Determine startup sequence, dump it and exit\n" ++ " --no-pager Do not pipe output into a pager\n" + " --dump-configuration-items Dump understood unit configuration items\n" + " --unit=UNIT Set default unit\n" + " --system Run a system instance, even if PID != 1\n" +@@ -1452,6 +1473,8 @@ int main(int argc, char *argv[]) { + goto finish; + } + ++ pager_open_if_enabled(); ++ + if (arg_action == ACTION_HELP) { + retval = help(); + goto finish; +@@ -1798,6 +1821,8 @@ int main(int argc, char *argv[]) { + } + + finish: ++ pager_close(); ++ + if (m) { + manager_free(m); + m = NULL; +-- +1.7.9.2 + diff --git a/0004-systemd-return-the-first-error-from-manager_startup.patch b/0004-systemd-return-the-first-error-from-manager_startup.patch new file mode 100644 index 00000000..0db56a17 --- /dev/null +++ b/0004-systemd-return-the-first-error-from-manager_startup.patch @@ -0,0 +1,57 @@ +From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 18 Jul 2014 17:05:18 -0400 +Subject: [PATCH] systemd: return the first error from manager_startup() + +--- + src/core/manager.c | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git src/core/manager.c src/core/manager.c +index 2e63c5e..0653d7e 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + dual_timestamp_get(&m->units_load_finish_timestamp); + + /* Second, deserialize if there is something to deserialize */ +- if (serialization) { +- q = manager_deserialize(m, serialization, fds); +- if (q < 0) +- r = q; +- } ++ if (serialization) ++ r = manager_deserialize(m, serialization, fds); + + /* Any fds left? Find some unit which wants them. This is + * useful to allow container managers to pass some file +@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + * socket-based activation of entire containers. */ + if (fdset_size(fds) > 0) { + q = manager_distribute_fds(m, fds); +- if (q < 0) ++ if (q < 0 && r == 0) + r = q; + } + + /* We might have deserialized the notify fd, but if we didn't + * then let's create the bus now */ +- manager_setup_notify(m); ++ q = manager_setup_notify(m); ++ if (q < 0 && r == 0) ++ r = q; + + /* We might have deserialized the kdbus control fd, but if we + * didn't, then let's create the bus now. */ +@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + + /* Third, fire things up! */ + q = manager_coldplug(m); +- if (q < 0) ++ if (q < 0 && r == 0) + r = q; + + if (serialization) { +-- +1.7.9.2 + diff --git a/1053-better-checks-in-write_net_rules.patch b/1053-better-checks-in-write_net_rules.patch new file mode 100644 index 00000000..50e03693 --- /dev/null +++ b/1053-better-checks-in-write_net_rules.patch @@ -0,0 +1,29 @@ +Index: systemd-210/src/udev/rule_generator/write_net_rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/write_net_rules ++++ systemd-210/src/udev/rule_generator/write_net_rules +@@ -89,6 +89,12 @@ choose_rules_file + + # the DRIVERS key is needed to not match bridges and VLAN sub-interfaces + if [ "$MATCHADDR" ]; then ++ # Check if MACADDR doesn't exist already in the generated rules ++ MAC="$(/usr/bin/grep -w -o -C1 -m1 "$MATCHADDR" "$RULES_FILE" 2>/dev/null || true)" ++ if [ "$MAC" == "$MATCHADDR" ]; then ++ unlock_rules_file ++ exit 0 ++ fi + match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" + fi + +@@ -101,8 +107,9 @@ if [ "$MATCHDEVID" ]; then + fi + + if [ "$MATCHID" ]; then +- ID="$(find_all_rules 'KERNELS==' "$MATCHID")" +- if [ "$ID" == "$MATCHID" ]; then ++ # Check if KERNEL doesn't exist already in the generated rules ++ KERNEL="$(find_all_rules 'KERNELS==' "$MATCHID")" ++ if [ "$KERNEL" == "$MATCHID" ]; then + unlock_rules_file + exit 0 + fi diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch new file mode 100644 index 00000000..59c5ff56 --- /dev/null +++ b/set-and-use-default-logconsole.patch @@ -0,0 +1,159 @@ +Use and set default logging console for both journald and kernel messages + +--- + src/journal/journald-console.c | 96 +++++++++++++++++++++++++++++++++++++++++ + src/journal/journald-console.h | 4 + + src/journal/journald-server.c | 5 ++ + 3 files changed, 105 insertions(+) + +--- src/journal/journald-console.c ++++ src/journal/journald-console.c 2014-07-23 09:08:29.522235688 +0000 +@@ -23,6 +23,14 @@ + #include + #include + #include ++#ifdef HAVE_SYSV_COMPAT ++# include ++# include ++# include ++# include ++# include ++# include "util.h" ++#endif + + #include "fileio.h" + #include "journald-server.h" +@@ -43,6 +51,74 @@ static bool prefix_timestamp(void) { + return cached_printk_time; + } + ++#ifdef HAVE_SYSV_COMPAT ++void defaul_tty_path(Server *s) ++{ ++ static const char list[] = "/dev/tty10\0" "/dev/console\0"; ++ const char *vc; ++ ++ if (s->tty_path) ++ return; ++ ++ NULSTR_FOREACH(vc, list) { ++ _cleanup_close_ int fd = -1; ++ ++ if (access(vc, F_OK) < 0) ++ continue; ++ ++ fd = open_terminal(vc, O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ if (fd < 0) ++ continue; ++ ++ s->tty_path = strdup(vc); ++ break; ++ } ++} ++ ++void klogconsole(Server *s) ++{ ++ _cleanup_free_ char *klogconsole_params = NULL; ++ _cleanup_close_ int fd = -1; ++ const char *vc = s->tty_path; ++ const char *num; ++ int tiocl[2]; ++ int r; ++ ++ if (!vc || *vc == 0 || !strneq("/dev/tty", vc, 8)) ++ return; ++ ++ num = vc + strcspn(vc, "0123456789"); ++ if (safe_atoi(num, &r) < 0) ++ return; ++ ++ if (access(vc, F_OK) < 0) ++ return false; ++ ++ fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC); ++ if (fd < 0) ++ return; ++ ++ tiocl[0] = TIOCL_SETKMSGREDIRECT; ++ tiocl[1] = r; ++ ++ if (ioctl(fd, TIOCLINUX, tiocl) < 0) ++ return; ++ ++ zero(klogconsole_params); ++ r = parse_env_file("/etc/sysconfig/boot", NEWLINE, ++ "KLOGCONSOLE_PARAMS", &klogconsole_params, ++ NULL); ++ if (r < 0) ++ return; ++ if (!klogconsole_params || *klogconsole_params == 0) ++ return; ++ ++ num = klogconsole_params + strcspn(klogconsole_params, "0123456789"); ++ if (safe_atoi(num, &r) == 0) ++ klogctl(8, 0, r); ++} ++#endif ++ + void server_forward_console( + Server *s, + int priority, +@@ -63,6 +139,10 @@ void server_forward_console( + + if (LOG_PRI(priority) > s->max_level_console) + return; ++ ++ /* Do not write security/authorization (private) messages to console */ ++ if (priority & LOG_AUTHPRIV) ++ return; + + /* First: timestamp */ + if (prefix_timestamp()) { +@@ -101,7 +181,23 @@ void server_forward_console( + fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); + if (fd < 0) { + log_debug("Failed to open %s for logging: %m", tty); ++#ifdef HAVE_SYSV_COMPAT ++ if (fd != -ENOENT && fd != -ENODEV) ++ return; ++ if (tty != s->tty_path) ++ return; ++ if (!streq("/dev/console", tty)) { ++ if (s->tty_path) ++ free(s->tty_path); ++ s->tty_path = NULL; ++ tty = "/dev/console"; ++ fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ if (fd < 0) ++ return; ++ } ++#else + return; ++#endif + } + + if (writev(fd, iovec, n) < 0) +--- src/journal/journald-console.h ++++ src/journal/journald-console.h 2014-07-22 11:20:52.754235644 +0000 +@@ -24,3 +24,7 @@ + #include "journald-server.h" + + void server_forward_console(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred); ++#ifdef HAVE_SYSV_COMPAT ++void klogconsole(Server *s); ++void defaul_tty_path(Server *s); ++#endif +--- src/journal/journald-server.c ++++ src/journal/journald-server.c 2014-07-22 11:16:45.966236859 +0000 +@@ -1509,6 +1509,11 @@ int server_init(Server *s) { + + server_parse_config_file(s); + server_parse_proc_cmdline(s); ++ defaul_tty_path(s); ++ ++ if (s->tty_path) ++ klogconsole(s); ++ + if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { + log_debug("Setting both rate limit interval and burst from %llu,%u to 0,0", + (long long unsigned) s->rate_limit_interval, diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index 93db6de4..def95a7d 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -18,3 +18,10 @@ addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") +addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") +addFilter(".*files-duplicate.*/systemd-logger.*") +addFilter(".*missing-call-to-setgroups-before-setuid.*") +addFilter(".*missing-call-to-chdir-with-chroot.*") +addFilter(".*systemd-service-without-service.*") +addFilter(".*shlib-policy-missing-suffix.*") +addFilter(".*suse-missing-rclink.*") diff --git a/systemd-mini.changes b/systemd-mini.changes index f63d54dc..bd231f90 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,55 @@ +------------------------------------------------------------------- +Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com + +- Enable better checks in write_net_rules to skip adding duplicated + entries in the generate rules (bnc#888178). + Add 1053-better-checks-in-write_net_rules.patch + +------------------------------------------------------------------- +Wed Jul 23 09:13:43 UTC 2014 - werner@suse.de + +- Change patch set-and-use-default-logconsole.patch to avoid to + write security/authorization (private) messages to console + +------------------------------------------------------------------- +Tue Jul 22 11:50:44 UTC 2014 - werner@suse.de + +- Add patch set-and-use-default-logconsole.patch to use and set + the default logging console for both journald and kernel messages + +------------------------------------------------------------------- +Mon Jul 21 13:22:35 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-bash-completion-p-option-for-journalctl.patch + 0002-journalctl-man-allow-only-between-terms.patch + 0003-systemd-use-pager-for-test-and-help.patch + +------------------------------------------------------------------- +Mon Jul 21 12:49:00 UTC 2014 - werner@suse.de + +- Use verify scripts and add permission files for systemd logger +- Avoid useless warning about static systemd unit files +- Make pam file a config file +- Remove non-break-space from this changelog + +------------------------------------------------------------------- +Mon Jul 21 11:09:44 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-compress-fix-return-value.patch + 0002-Be-more-verbose-when-bind-or-listen-fails.patch + 0003-Add-quotes-to-warning-message.patch + 0004-systemd-return-the-first-error-from-manager_startup.patch + +------------------------------------------------------------------- +Mon Jul 21 10:42:10 UTC 2014 - werner@suse.de + +- Replace patch 0001-fix-only-discover-Xen-domU.patch with + upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch +- Replace patch 0001-detect-s390-virt.patch with upstream + patch 0001-systemd-detect-virt-detect-s390-virtualization.patch + ------------------------------------------------------------------- Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de @@ -2504,15 +2556,15 @@ Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com may now be passed more than once. 'systemctl list-sockets' has been added. + systemd gained a new unit 'systemd-static-nodes.service' -    that generates static device nodes earlier during boot, and -    can run in conjunction with udev. + that generates static device nodes earlier during boot, and + can run in conjunction with udev. + systemd-nspawn now places all containers in the new /machine -    top-level cgroup directory in the name=systemd hierarchy. + top-level cgroup directory in the name=systemd hierarchy. + bootchart can now store its data in the journal. + journactl can now take multiple --unit= and --user-unit= -    switches. + switches. + The cryptsetup logic now understands the "luks.key=" kernel -    command line switch. If a configured key file is missing, it + line switch. If a configured key file is missing, it will fallback to prompting the user. - Rebase some patches - Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to diff --git a/systemd-mini.spec b/systemd-mini.spec index 50f02669..821ddb1c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -31,7 +31,8 @@ %else %define has_efi 0 %endif -%bcond_with udevsettle +%bcond_with udevsettle +%bcond_with permission Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -577,8 +578,8 @@ Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch Patch278: 0001-core-fix-invalid-free-in-killall.patch # PATCH-FIX-UPSTREAM added at 2014/06/17 Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch -# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438) -Patch280: 0001-detect-s390-virt.patch +# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) +Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch # PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch # PATCH-FIX-UPSTREAM added at 2014/06/24 @@ -705,8 +706,24 @@ Patch341: 0001-po-add-Ukrainian-translation.patch Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch # PATCH-FIX-UPSTREAM added at 2014/07/17 Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -# PATCH-FIX-SUSE Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -Patch344: 0001-fix-only-discover-Xen-domU.patch +# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch345: 0001-compress-fix-return-value.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch347: 0003-Add-quotes-to-warning-message.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch349: 0001-bash-completion-p-option-for-journalctl.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch350: 0002-journalctl-man-allow-only-between-terms.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch351: 0003-systemd-use-pager-for-test-and-help.patch +# PATCH-FIX-SUSE +Patch352: set-and-use-default-logconsole.patch # UDEV PATCHES # ============ @@ -818,6 +835,8 @@ Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patc Patch1051: 1051-check-if-NAME-has-a-value.patch # PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) +Patch1053: 1053-better-checks-in-write_net_rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -992,6 +1011,7 @@ Requires(pre): /usr/sbin/groupadd Requires(post): /usr/bin/getent Requires(post): /usr/bin/setfacl Requires(post): /usr/bin/systemctl +Requires(post): permissions Conflicts: otherproviders(syslog) %description logger @@ -1255,7 +1275,7 @@ cp %{SOURCE7} m4/ %patch277 -p0 %patch278 -p0 %patch279 -p0 -%patch280 -p1 +%patch280 -p0 %patch281 -p1 %patch282 -p0 %patch283 -p0 @@ -1319,7 +1339,15 @@ cp %{SOURCE7} m4/ %patch341 -p0 %patch342 -p0 %patch343 -p0 -%patch344 -p1 +%patch344 -p0 +%patch345 -p0 +%patch346 -p0 +%patch347 -p0 +%patch348 -p0 +%patch349 -p0 +%patch350 -p0 +%patch351 -p0 +%patch352 -p0 # udev patches %patch1001 -p1 @@ -1381,6 +1409,7 @@ cp %{SOURCE7} m4/ %patch1050 -p1 %patch1051 -p1 %patch1052 -p0 +%patch1053 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -1408,6 +1437,14 @@ do done %endif +# +# In combination with Patch352 set-and-use-default-logconsole.patch +# Ensure that journald log on tty10 +# +%ifarch %ix86 x86_64 x32 +sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf +%endif + %build cflags () { @@ -1751,6 +1788,17 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done +# Add permission files for logger +%if %{with permission} +mkdir -p %{buildroot}%{_sysconfdir}/permissions.d +cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF' + %{_localstatedir}/log/journal/ root:systemd-journal 2755 +EOF +cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF' + %{_localstatedir}/log/journal/ root:systemd-journal 2755 +EOF +%endif + %find_lang systemd %pre @@ -1922,11 +1970,19 @@ fi %postun -n libgudev-1_0-0 -p /sbin/ldconfig +%if %{with permission} +%verifyscript logger +%verify_permissions -e %{_localstatedir}/log/journal +%endif + %pre logger getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post logger +%if %{with permission} +%set_permissions %{_localstatedir}/log/journal +%endif getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : if [ "$1" -eq 1 ]; then @@ -1960,7 +2016,7 @@ exit 0 %endif -%files +%files -f systemd.lang %defattr(-,root,root) /bin/systemd /bin/systemd-ask-password @@ -2064,7 +2120,7 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so -/etc/pam.d/systemd-user +%config /etc/pam.d/systemd-user %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d @@ -2132,7 +2188,6 @@ exit 0 %exclude %{_datadir}/systemd/gatewayd %endif %{_datadir}/systemd -%{_datadir}/locale/*/LC_MESSAGES %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage @@ -2329,6 +2384,10 @@ exit 0 %files logger %defattr(-,root,root) +%if %{with permission} +%config %{_sysconfdir}/permissions.d/systemd-logger +%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid +%endif %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal %{_localstatedir}/log/README /etc/init.d/systemd-journald diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index 93db6de4..def95a7d 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -18,3 +18,10 @@ addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") +addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") +addFilter(".*files-duplicate.*/systemd-logger.*") +addFilter(".*missing-call-to-setgroups-before-setuid.*") +addFilter(".*missing-call-to-chdir-with-chroot.*") +addFilter(".*systemd-service-without-service.*") +addFilter(".*shlib-policy-missing-suffix.*") +addFilter(".*suse-missing-rclink.*") diff --git a/systemd.changes b/systemd.changes index f63d54dc..bd231f90 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,55 @@ +------------------------------------------------------------------- +Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com + +- Enable better checks in write_net_rules to skip adding duplicated + entries in the generate rules (bnc#888178). + Add 1053-better-checks-in-write_net_rules.patch + +------------------------------------------------------------------- +Wed Jul 23 09:13:43 UTC 2014 - werner@suse.de + +- Change patch set-and-use-default-logconsole.patch to avoid to + write security/authorization (private) messages to console + +------------------------------------------------------------------- +Tue Jul 22 11:50:44 UTC 2014 - werner@suse.de + +- Add patch set-and-use-default-logconsole.patch to use and set + the default logging console for both journald and kernel messages + +------------------------------------------------------------------- +Mon Jul 21 13:22:35 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-bash-completion-p-option-for-journalctl.patch + 0002-journalctl-man-allow-only-between-terms.patch + 0003-systemd-use-pager-for-test-and-help.patch + +------------------------------------------------------------------- +Mon Jul 21 12:49:00 UTC 2014 - werner@suse.de + +- Use verify scripts and add permission files for systemd logger +- Avoid useless warning about static systemd unit files +- Make pam file a config file +- Remove non-break-space from this changelog + +------------------------------------------------------------------- +Mon Jul 21 11:09:44 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-compress-fix-return-value.patch + 0002-Be-more-verbose-when-bind-or-listen-fails.patch + 0003-Add-quotes-to-warning-message.patch + 0004-systemd-return-the-first-error-from-manager_startup.patch + +------------------------------------------------------------------- +Mon Jul 21 10:42:10 UTC 2014 - werner@suse.de + +- Replace patch 0001-fix-only-discover-Xen-domU.patch with + upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch +- Replace patch 0001-detect-s390-virt.patch with upstream + patch 0001-systemd-detect-virt-detect-s390-virtualization.patch + ------------------------------------------------------------------- Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de @@ -2504,15 +2556,15 @@ Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com may now be passed more than once. 'systemctl list-sockets' has been added. + systemd gained a new unit 'systemd-static-nodes.service' -    that generates static device nodes earlier during boot, and -    can run in conjunction with udev. + that generates static device nodes earlier during boot, and + can run in conjunction with udev. + systemd-nspawn now places all containers in the new /machine -    top-level cgroup directory in the name=systemd hierarchy. + top-level cgroup directory in the name=systemd hierarchy. + bootchart can now store its data in the journal. + journactl can now take multiple --unit= and --user-unit= -    switches. + switches. + The cryptsetup logic now understands the "luks.key=" kernel -    command line switch. If a configured key file is missing, it + line switch. If a configured key file is missing, it will fallback to prompting the user. - Rebase some patches - Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to diff --git a/systemd.spec b/systemd.spec index 318788d6..0e5ecf3a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -29,7 +29,8 @@ %else %define has_efi 0 %endif -%bcond_with udevsettle +%bcond_with udevsettle +%bcond_with permission Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -572,8 +573,8 @@ Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch Patch278: 0001-core-fix-invalid-free-in-killall.patch # PATCH-FIX-UPSTREAM added at 2014/06/17 Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch -# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438) -Patch280: 0001-detect-s390-virt.patch +# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) +Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch # PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch # PATCH-FIX-UPSTREAM added at 2014/06/24 @@ -700,8 +701,24 @@ Patch341: 0001-po-add-Ukrainian-translation.patch Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch # PATCH-FIX-UPSTREAM added at 2014/07/17 Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -# PATCH-FIX-SUSE Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -Patch344: 0001-fix-only-discover-Xen-domU.patch +# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch345: 0001-compress-fix-return-value.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch347: 0003-Add-quotes-to-warning-message.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch349: 0001-bash-completion-p-option-for-journalctl.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch350: 0002-journalctl-man-allow-only-between-terms.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch351: 0003-systemd-use-pager-for-test-and-help.patch +# PATCH-FIX-SUSE +Patch352: set-and-use-default-logconsole.patch # UDEV PATCHES # ============ @@ -813,6 +830,8 @@ Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patc Patch1051: 1051-check-if-NAME-has-a-value.patch # PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) +Patch1053: 1053-better-checks-in-write_net_rules.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -987,6 +1006,7 @@ Requires(pre): /usr/sbin/groupadd Requires(post): /usr/bin/getent Requires(post): /usr/bin/setfacl Requires(post): /usr/bin/systemctl +Requires(post): permissions Conflicts: otherproviders(syslog) %description logger @@ -1250,7 +1270,7 @@ cp %{SOURCE7} m4/ %patch277 -p0 %patch278 -p0 %patch279 -p0 -%patch280 -p1 +%patch280 -p0 %patch281 -p1 %patch282 -p0 %patch283 -p0 @@ -1314,7 +1334,15 @@ cp %{SOURCE7} m4/ %patch341 -p0 %patch342 -p0 %patch343 -p0 -%patch344 -p1 +%patch344 -p0 +%patch345 -p0 +%patch346 -p0 +%patch347 -p0 +%patch348 -p0 +%patch349 -p0 +%patch350 -p0 +%patch351 -p0 +%patch352 -p0 # udev patches %patch1001 -p1 @@ -1376,6 +1404,7 @@ cp %{SOURCE7} m4/ %patch1050 -p1 %patch1051 -p1 %patch1052 -p0 +%patch1053 -p1 # ensure generate files are removed rm -f units/emergency.service @@ -1403,6 +1432,14 @@ do done %endif +# +# In combination with Patch352 set-and-use-default-logconsole.patch +# Ensure that journald log on tty10 +# +%ifarch %ix86 x86_64 x32 +sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf +%endif + %build cflags () { @@ -1746,6 +1783,17 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done +# Add permission files for logger +%if %{with permission} +mkdir -p %{buildroot}%{_sysconfdir}/permissions.d +cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF' + %{_localstatedir}/log/journal/ root:systemd-journal 2755 +EOF +cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF' + %{_localstatedir}/log/journal/ root:systemd-journal 2755 +EOF +%endif + %find_lang systemd %pre @@ -1917,11 +1965,19 @@ fi %postun -n libgudev-1_0-0 -p /sbin/ldconfig +%if %{with permission} +%verifyscript logger +%verify_permissions -e %{_localstatedir}/log/journal +%endif + %pre logger getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post logger +%if %{with permission} +%set_permissions %{_localstatedir}/log/journal +%endif getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : if [ "$1" -eq 1 ]; then @@ -1955,7 +2011,7 @@ exit 0 %endif -%files +%files -f systemd.lang %defattr(-,root,root) /bin/systemd /bin/systemd-ask-password @@ -2059,7 +2115,7 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so -/etc/pam.d/systemd-user +%config /etc/pam.d/systemd-user %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d @@ -2127,7 +2183,6 @@ exit 0 %exclude %{_datadir}/systemd/gatewayd %endif %{_datadir}/systemd -%{_datadir}/locale/*/LC_MESSAGES %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage @@ -2324,6 +2379,10 @@ exit 0 %files logger %defattr(-,root,root) +%if %{with permission} +%config %{_sysconfdir}/permissions.d/systemd-logger +%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid +%endif %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal %{_localstatedir}/log/README /etc/init.d/systemd-journald From c14a1e98d3adbdebd5ca5a11603ded60eeb3786fd6c979a53f8807367ec2defc Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 26 Jul 2014 10:19:44 +0000 Subject: [PATCH 190/221] Accepting request 242359 from Base:System - Disable blkrrpart for SLES12 and below - Add upstream patch 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch - Add with condition blkrrpart to be able to disable the patches 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 which uses the BLKRRPART ioctl for e.g. synthesize change events which may interfere with other tools like parted. - Update handle-disable_caplock-and-compose_table-and-kbd_rate.patch, handle-numlock-value-in-etc-sysconfig-keyboard.patch: read /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) otherwise empty value in /etc/sysconfig/keyboard might override /etc/vconsole.conf values. - Update : 0001-journal-compress-return-early-in-uncompress_startswi.patch 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch 0002-vconsole-setup-run-setfont-before-loadkeys.patch 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch apply-ACL-for-nvidia-device-nodes.patch keep-crypt-password-prompt.patch log-target-null-instead-kmsg.patch parse-crypttab-for-noauto-option.patch set-and-use-default-logconsole.patch: fix all warnings in code - Remove 0001-compress-fix-return-value.patch: not relevant to systemd v210 code. - Also change udev-generate-peristent-rule to udev-generate-persistent-rule OBS-URL: https://build.opensuse.org/request/show/242359 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=195 --- 0001-compress-fix-return-value.patch | 34 ------- ...core-close-socket-fds-asynchronously.patch | 21 ++++- ...-return-early-in-uncompress_startswi.patch | 34 ++++--- ...der-tabs-special-in-string_has_cc-an.patch | 53 ++++------- ...le-setup-run-setfont-before-loadkeys.patch | 93 ++++++++++--------- ...der-failure-when-reading-drop-ins-fa.patch | 30 +++--- ...fsck-implementation-linked-to-bin-tr.patch | 22 ++++- ...from-block-device-ownership-event-lo.patch | 53 +++++++++++ apply-ACL-for-nvidia-device-nodes.patch | 12 ++- ...plock-and-compose_table-and-kbd_rate.patch | 60 ++++++------ ...lock-value-in-etc-sysconfig-keyboard.patch | 58 +++++++----- keep-crypt-password-prompt.patch | 14 +-- log-target-null-instead-kmsg.patch | 40 ++++---- parse-crypttab-for-noauto-option.patch | 19 ++-- set-and-use-default-logconsole.patch | 28 +++--- systemd-mini.changes | 52 ++++++++++- systemd-mini.spec | 30 ++++-- systemd.changes | 52 ++++++++++- systemd.spec | 30 ++++-- ...ule.sh => udev-generate-persistent-rule.sh | 0 20 files changed, 467 insertions(+), 268 deletions(-) delete mode 100644 0001-compress-fix-return-value.patch create mode 100644 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch rename udev-generate-peristent-rule.sh => udev-generate-persistent-rule.sh (100%) diff --git a/0001-compress-fix-return-value.patch b/0001-compress-fix-return-value.patch deleted file mode 100644 index b2e03c27..00000000 --- a/0001-compress-fix-return-value.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 01c3322e017989d25f7b4b51268245d5315ae678 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 18 Jul 2014 21:44:36 -0400 -Subject: [PATCH] compress: fix return value - ---- - src/journal/compress.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/journal/compress.c src/journal/compress.c -index 316c1a6..ee18bc8 100644 ---- src/journal/compress.c -+++ src/journal/compress.c -@@ -132,7 +132,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size, - - space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); - if (!greedy_realloc(dst, dst_alloc_size, space, 1)) -- return false; -+ return -ENOMEM; - - s.next_in = src; - s.avail_in = src_size; -@@ -158,7 +158,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size, - used = space - s.avail_out; - space = MIN(2 * space, dst_max ?: (uint64_t) -1); - if (!greedy_realloc(dst, dst_alloc_size, space, 1)) -- return false; -+ return -ENOMEM; - - s.avail_out = space - used; - s.next_out = *dst + used; --- -1.7.9.2 - diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch index b94b3802..90649f90 100644 --- a/0001-core-close-socket-fds-asynchronously.patch +++ b/0001-core-close-socket-fds-asynchronously.patch @@ -9,8 +9,10 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html src/core/service.c | 5 +++-- 2 files changed, 27 insertions(+), 2 deletions(-) ---- src/core/service.c -+++ src/core/service.c 2014-05-16 11:41:50.150735247 +0000 +Index: src/core/service.c +=================================================================== +--- src/core/service.c.orig ++++ src/core/service.c @@ -25,6 +25,7 @@ #include #include @@ -37,8 +39,10 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html s->socket_fd = fdset_remove(fds, fd); } } else if (streq(key, "main-exec-status-pid")) { ---- src/core/async.c -+++ src/core/async.c 2014-05-07 09:40:35.000000000 +0000 +Index: src/core/async.c +=================================================================== +--- src/core/async.c.orig ++++ src/core/async.c @@ -24,6 +24,7 @@ #include "async.h" @@ -74,3 +78,12 @@ http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html + + return -1; +} +Index: src/core/async.h +=================================================================== +--- src/core/async.h.orig ++++ src/core/async.h +@@ -23,3 +23,4 @@ + + int asynchronous_job(void* (*func)(void *p), void *arg); + int asynchronous_sync(void); ++int asynchronous_close(int fd); diff --git a/0001-journal-compress-return-early-in-uncompress_startswi.patch b/0001-journal-compress-return-early-in-uncompress_startswi.patch index 55476789..74777205 100644 --- a/0001-journal-compress-return-early-in-uncompress_startswi.patch +++ b/0001-journal-compress-return-early-in-uncompress_startswi.patch @@ -11,9 +11,19 @@ Reallocation policy was also strange. src/journal/compress.c | 91 ++++++++++++++----------------------------------- 1 file changed, 27 insertions(+), 64 deletions(-) ---- src/journal/compress.c -+++ src/journal/compress.c 2014-07-09 00:00:00.000000000 +0000 -@@ -69,10 +69,9 @@ fail: +Index: src/journal/compress.c +=================================================================== +--- src/journal/compress.c.orig ++++ src/journal/compress.c +@@ -25,6 +25,7 @@ + #include + + #include "macro.h" ++#include "util.h" + #include "compress.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { +@@ -69,10 +70,9 @@ fail: bool uncompress_blob(const void *src, uint64_t src_size, void **dst, uint64_t *dst_alloc_size, uint64_t* dst_size, uint64_t dst_max) { @@ -25,7 +35,7 @@ Reallocation policy was also strange. assert(src); assert(src_size > 0); -@@ -85,26 +84,18 @@ bool uncompress_blob(const void *src, ui +@@ -85,26 +85,18 @@ bool uncompress_blob(const void *src, ui if (ret != LZMA_OK) return false; @@ -40,7 +50,7 @@ Reallocation policy was also strange. - *dst_alloc_size = src_size*2; - } + space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space, 1)) ++ if (!greedy_realloc(dst, dst_alloc_size, space)) + return false; s.next_in = src; @@ -56,7 +66,7 @@ Reallocation policy was also strange. ret = lzma_code(&s, LZMA_FINISH); -@@ -112,31 +103,25 @@ bool uncompress_blob(const void *src, ui +@@ -112,31 +104,25 @@ bool uncompress_blob(const void *src, ui break; if (ret != LZMA_OK) @@ -78,7 +88,7 @@ Reallocation policy was also strange. - space *= 2; + used = space - s.avail_out; + space = MIN(2 * space, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space, 1)) ++ if (!greedy_realloc(dst, dst_alloc_size, space)) + return false; - *dst = p; @@ -98,7 +108,7 @@ Reallocation policy was also strange. } bool uncompress_startswith(const void *src, uint64_t src_size, -@@ -144,9 +129,8 @@ bool uncompress_startswith(const void *s +@@ -144,9 +130,8 @@ bool uncompress_startswith(const void *s const void *prefix, uint64_t prefix_len, uint8_t extra) { @@ -109,7 +119,7 @@ Reallocation policy was also strange. /* Checks whether the uncompressed blob starts with the * mentioned prefix. The byte extra needs to follow the -@@ -163,16 +147,8 @@ bool uncompress_startswith(const void *s +@@ -163,16 +148,8 @@ bool uncompress_startswith(const void *s if (ret != LZMA_OK) return false; @@ -123,12 +133,12 @@ Reallocation policy was also strange. - *buffer = p; - *buffer_size = prefix_len*2; - } -+ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1, 1))) ++ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1))) + return false; s.next_in = src; s.avail_in = src_size; -@@ -181,36 +157,23 @@ bool uncompress_startswith(const void *s +@@ -181,36 +158,23 @@ bool uncompress_startswith(const void *s s.avail_out = *buffer_size; for (;;) { @@ -167,7 +177,7 @@ Reallocation policy was also strange. - -fail: - lzma_end(&s); -+ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2, 1))) ++ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2))) + return false; - return b; diff --git a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch index aeb7ab26..7dd59ed5 100644 --- a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +++ b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch @@ -12,11 +12,11 @@ Instead, take a list of exceptions to our usual CC check src/shared/util.h | 5 +++-- 5 files changed, 18 insertions(+), 15 deletions(-) -diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c -index 14629dd..514554d 100644 ---- src/hostname/hostnamed.c +Index: src/hostname/hostnamed.c +=================================================================== +--- src/hostname/hostnamed.c.orig +++ src/hostname/hostnamed.c -@@ -550,8 +550,7 @@ static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop +@@ -507,8 +507,7 @@ static int set_machine_info(Context *c, if (prop == PROP_ICON_NAME && !filename_is_safe(name)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); @@ -26,9 +26,9 @@ index 14629dd..514554d 100644 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); if (prop == PROP_CHASSIS && !valid_chassis(name)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name); -diff --git src/shared/env-util.c src/shared/env-util.c -index b2e4553..20b208f 100644 ---- src/shared/env-util.c +Index: src/shared/env-util.c +=================================================================== +--- src/shared/env-util.c.orig +++ src/shared/env-util.c @@ -78,7 +78,9 @@ bool env_value_is_valid(const char *e) { if (!utf8_is_valid(e)) @@ -41,11 +41,11 @@ index b2e4553..20b208f 100644 return false; /* POSIX says the overall size of the environment block cannot -diff --git src/shared/fileio.c src/shared/fileio.c -index fb1c1bc..b1de590 100644 ---- src/shared/fileio.c +Index: src/shared/fileio.c +=================================================================== +--- src/shared/fileio.c.orig +++ src/shared/fileio.c -@@ -738,7 +738,7 @@ static void write_env_var(FILE *f, const char *v) { +@@ -658,7 +658,7 @@ static void write_env_var(FILE *f, const p++; fwrite(v, 1, p-v, f); @@ -54,11 +54,11 @@ index fb1c1bc..b1de590 100644 fputc('\"', f); for (; *p; p++) { -diff --git src/shared/util.c src/shared/util.c -index d25ee66..d223ecf 100644 ---- src/shared/util.c +Index: src/shared/util.c +=================================================================== +--- src/shared/util.c.orig +++ src/shared/util.c -@@ -5350,16 +5350,14 @@ bool filename_is_safe(const char *p) { +@@ -5466,16 +5466,14 @@ bool filename_is_safe(const char *p) { bool string_is_safe(const char *p) { const char *t; @@ -78,7 +78,7 @@ index d25ee66..d223ecf 100644 return false; } -@@ -5367,16 +5365,19 @@ bool string_is_safe(const char *p) { +@@ -5483,16 +5481,19 @@ bool string_is_safe(const char *p) { } /** @@ -102,21 +102,11 @@ index d25ee66..d223ecf 100644 return true; if (*t == 127) -diff --git src/shared/util.h src/shared/util.h -index e23069c..8544940 100644 ---- src/shared/util.h +Index: src/shared/util.h +=================================================================== +--- src/shared/util.h.orig +++ src/shared/util.h -@@ -382,7 +382,8 @@ bool fstype_is_network(const char *fstype); - int chvt(int vt); - - int read_one_char(FILE *f, char *ret, usec_t timeout, bool *need_nl); --int ask(char *ret, const char *replies, const char *text, ...) _printf_(3, 4); -+int ask_char(char *ret, const char *replies, const char *text, ...) _printf_(3, 4); -+int ask_string(char **ret, const char *text, ...) _printf_(2, 3); - - int reset_terminal_fd(int fd, bool switch_to_text); - int reset_terminal(const char *name); -@@ -692,7 +693,7 @@ _alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t a, size_ +@@ -652,7 +652,7 @@ _alloc_(2, 3) static inline void *memdup bool filename_is_safe(const char *p) _pure_; bool path_is_safe(const char *p) _pure_; bool string_is_safe(const char *p) _pure_; @@ -125,6 +115,3 @@ index e23069c..8544940 100644 /** * Check if a string contains any glob patterns. --- -1.7.9.2 - diff --git a/0002-vconsole-setup-run-setfont-before-loadkeys.patch b/0002-vconsole-setup-run-setfont-before-loadkeys.patch index dab9f876..7ef05c2d 100644 --- a/0002-vconsole-setup-run-setfont-before-loadkeys.patch +++ b/0002-vconsole-setup-run-setfont-before-loadkeys.patch @@ -16,8 +16,10 @@ in the original commit the keymap_load() follows. src/vconsole/vconsole-setup.c | 93 +++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 46 deletions(-) ---- src/vconsole/vconsole-setup.c -+++ src/vconsole/vconsole-setup.c 2014-07-07 12:30:27.390235226 +0000 +Index: src/vconsole/vconsole-setup.c +=================================================================== +--- src/vconsole/vconsole-setup.c.orig ++++ src/vconsole/vconsole-setup.c @@ -340,23 +340,20 @@ static int set_kbd_rate(const char *vc, int main(int argc, char **argv) { @@ -66,14 +68,10 @@ in the original commit the keymap_load() follows. } utf8 = is_locale_utf8(); -@@ -464,61 +461,65 @@ int main(int argc, char **argv) { - } else - #endif - numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); -- - #endif +@@ -464,58 +461,62 @@ int main(int argc, char **argv) { + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); } - +#ifdef HAVE_SYSV_COMPAT +finish: + r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); @@ -81,81 +79,84 @@ in the original commit the keymap_load() follows. + log_error("Failed to start /bin/kbdrate: %s", strerror(-r)); + return EXIT_FAILURE; + } -+#endif + ++ if (kbd_rate_pid > 0) ++ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); ++#endif + if (utf8) enable_utf8(fd); else disable_utf8(fd); - r = EXIT_FAILURE; +- +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +-#ifdef HAVE_SYSV_COMPAT +- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && +- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && +-#endif +- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) +- r = EXIT_SUCCESS; + r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); + if (r < 0) { + log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); + return EXIT_FAILURE; + } -+ + +-finish: +- if (keymap_pid > 0) +- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); +- if (numlock) +- touch("/run/numlock-on"); +- else +- unlink("/run/numlock-on"); + if (font_pid > 0) + wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && #ifdef HAVE_SYSV_COMPAT -- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && -- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && + r = load_compose_table(vc, vc_compose_table, &compose_table_pid); + if (r < 0) { -+ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } -+ -+ if (compose_table_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); - #endif -- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) -- r = EXIT_SUCCESS; - --finish: -+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); -+ if (r < 0) { + log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); + return EXIT_FAILURE; + } + - if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ -+#ifdef HAVE_SYSV_COMPAT - if (numlock) - touch("/run/numlock-on"); - else - unlink("/run/numlock-on"); - --#ifdef HAVE_SYSV_COMPAT -- if (compose_table_pid > 0) -- wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); + if (compose_table_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); - - if (kbd_rate_pid > 0) - wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); +- if (kbd_rate_pid > 0) +- wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); #endif - if (font_pid > 0) { - wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - if (font_copy) - font_copy_to_all_vcs(fd); -- } -- ++ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ return EXIT_FAILURE; + } + - free(vc_keymap); - free(vc_font); - free(vc_font_map); - free(vc_font_unimap); - free(vc_kbd_numlock); --#ifdef HAVE_SYSV_COMPAT ++ if (keymap_pid > 0) ++ wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ + #ifdef HAVE_SYSV_COMPAT - free(vc_kbd_delay); - free(vc_kbd_rate); - free(vc_kbd_disable_caps_lock); - free(vc_compose_table); --#endif -- ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + #endif + - if (fd >= 0) - close_nointr_nofail(fd); + /* Only copy the font when we started setfont successfully */ diff --git a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch index 5ee22e2c..74a3f0e8 100644 --- a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +++ b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch @@ -9,9 +9,9 @@ if we can't, complain if we cannot, but don't fail. src/core/load-dropin.c | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) -diff --git src/core/load-dropin.c src/core/load-dropin.c -index 546e560..f2ffc97 100644 ---- src/core/load-dropin.c +Index: src/core/load-dropin.c +=================================================================== +--- src/core/load-dropin.c.orig +++ src/core/load-dropin.c @@ -58,6 +58,7 @@ static int iterate_dir( if (errno == ENOENT) @@ -21,16 +21,15 @@ index 546e560..f2ffc97 100644 return -errno; } -@@ -101,7 +102,7 @@ static int process_dir( +@@ -101,7 +102,6 @@ static int process_dir( char ***strv) { _cleanup_free_ char *path = NULL; - int r; -+ int r, q; assert(u); assert(unit_path); -@@ -112,11 +113,8 @@ static int process_dir( +@@ -112,11 +112,8 @@ static int process_dir( if (!path) return log_oom(); @@ -44,7 +43,7 @@ index 546e560..f2ffc97 100644 if (u->instance) { _cleanup_free_ char *template = NULL, *p = NULL; -@@ -130,11 +128,8 @@ static int process_dir( +@@ -130,11 +127,8 @@ static int process_dir( if (!p) return log_oom(); @@ -58,7 +57,7 @@ index 546e560..f2ffc97 100644 } return 0; -@@ -152,12 +147,8 @@ char **unit_find_dropin_paths(Unit *u) { +@@ -152,12 +146,8 @@ char **unit_find_dropin_paths(Unit *u) { SET_FOREACH(t, u->names, i) { char **p; @@ -73,7 +72,15 @@ index 546e560..f2ffc97 100644 } if (strv_isempty(strv)) -@@ -186,13 +177,8 @@ int unit_load_dropin(Unit *u) { +@@ -176,7 +166,6 @@ char **unit_find_dropin_paths(Unit *u) { + int unit_load_dropin(Unit *u) { + Iterator i; + char *t, **f; +- int r; + + assert(u); + +@@ -186,13 +175,8 @@ int unit_load_dropin(Unit *u) { char **p; STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { @@ -89,7 +96,7 @@ index 546e560..f2ffc97 100644 } } -@@ -201,11 +187,9 @@ int unit_load_dropin(Unit *u) { +@@ -201,11 +185,9 @@ int unit_load_dropin(Unit *u) { return 0; STRV_FOREACH(f, u->dropin_paths) { @@ -104,6 +111,3 @@ index 546e560..f2ffc97 100644 } u->dropin_mtime = now(CLOCK_REALTIME); --- -1.7.9.2 - diff --git a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch index 8c53718c..27bfc4e6 100644 --- a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +++ b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch @@ -9,9 +9,19 @@ Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true src/shared/path-util.c | 26 +++++++++++++++----------- 2 files changed, 37 insertions(+), 21 deletions(-) ---- src/fsck/fsck.c -+++ src/fsck/fsck.c 2014-06-26 09:19:58.591864710 +0000 -@@ -280,16 +280,28 @@ int main(int argc, char *argv[]) { +Index: src/fsck/fsck.c +=================================================================== +--- src/fsck/fsck.c.orig ++++ src/fsck/fsck.c +@@ -37,6 +37,7 @@ + #include "bus-errors.h" + #include "fileio.h" + #include "udev-util.h" ++#include "path-util.h" + + static bool arg_skip = false; + static bool arg_force = false; +@@ -280,16 +281,28 @@ int main(int argc, char *argv[]) { type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); if (type) { @@ -50,8 +60,10 @@ Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true } } ---- src/shared/path-util.c -+++ src/shared/path-util.c 2014-06-26 09:14:15.651559638 +0000 +Index: src/shared/path-util.c +=================================================================== +--- src/shared/path-util.c.orig ++++ src/shared/path-util.c @@ -425,19 +425,21 @@ int path_is_os_tree(const char *path) { int find_binary(const char *name, char **filename) { diff --git a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch new file mode 100644 index 00000000..ecf11ad5 --- /dev/null +++ b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch @@ -0,0 +1,53 @@ +From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 24 Jul 2014 23:37:35 +0200 +Subject: [PATCH] udev: exclude MD from block device ownership event locking + +MD instantiates devices at open(). This is incomptible with the +locking logic, as the "change" event emitted when stopping a +device will bring it back. +--- + src/udev/udevd.c | 23 +++++++---------------- + 1 file changed, 7 insertions(+), 16 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index a45d324..db935d6 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -285,26 +285,17 @@ static void worker_new(struct event *event) + udev_event->exec_delay = exec_delay; + + /* +- * Take a "read lock" on the device node; this establishes ++ * Take a shared lock on the device node; this establishes + * a concept of device "ownership" to serialize device +- * access. External processes holding a "write lock" will ++ * access. External processes holding an exclusive lock will + * cause udev to skip the event handling; in the case udev +- * acquired the lock, the external process will block until ++ * acquired the lock, the external process can block until + * udev has finished its event handling. + */ +- +- /* +- * since we make check - device seems unused - we try +- * ioctl to deactivate - and device is found to be opened +- * sure, you try to take a write lock +- * if you get it udev is out +- * if you can't get it, udev is busy +- * we cannot deactivate openned device (as it is in-use) +- * maybe we should just exclude dm from that thing entirely +- * IMHO this sounds like a good plan for this moment +- */ +- if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- !startswith(udev_device_get_sysname(dev), "dm-")) { ++ if (!streq_ptr(udev_device_get_action(dev), "remove") && ++ streq_ptr("block", udev_device_get_subsystem(dev)) && ++ !startswith(udev_device_get_sysname(dev), "dm-") && ++ !startswith(udev_device_get_sysname(dev), "md")) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +-- +1.7.9.2 + diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index f17d6ede..d151032e 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -7,18 +7,20 @@ set ACL on nvidia devices (bnc#808319). logind-acl.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) ---- systemd-209/src/login/logind-acl.c -+++ systemd-209/src/login/logind-acl.c 2014-02-28 17:27:51.806239118 +0000 +Index: systemd-210/src/login/logind-acl.c +=================================================================== +--- systemd-210.orig/src/login/logind-acl.c ++++ systemd-210/src/login/logind-acl.c @@ -283,5 +283,17 @@ int devnode_acl_all(struct udev *udev, r = k; } + /* only apply ACL on nvidia* if /dev/nvidiactl exists */ + if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { -+ int i; -+ for (i = 0; i <= 256 ; i++) { ++ int j; ++ for (j = 0; j <= 256 ; j++) { + _cleanup_free_ char *devname = NULL; -+ if (asprintf(&devname, "/dev/nvidia%d", i) < 0) ++ if (asprintf(&devname, "/dev/nvidia%d", j) < 0) + break; + if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) + break; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index a6193b65..96213505 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -7,8 +7,10 @@ Subject: handle disable_caplock and compose_table and kbd_rate src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 3 deletions(-) ---- systemd-206_git201308300826.orig/src/vconsole/vconsole-setup.c -+++ systemd-206_git201308300826/src/vconsole/vconsole-setup.c +Index: systemd-210/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-210.orig/src/vconsole/vconsole-setup.c ++++ systemd-210/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" @@ -156,38 +158,36 @@ Subject: handle disable_caplock and compose_table and kbd_rate pid_t font_pid = 0, keymap_pid = 0; bool font_copy = false; int r = EXIT_FAILURE; -@@ -276,13 +382,43 @@ int main(int argc, char **argv) { - log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); - } +@@ -251,6 +357,28 @@ int main(int argc, char **argv) { + + utf8 = is_locale_utf8(); -+ if (r <= 0) { +#ifdef HAVE_SYSV_COMPAT -+ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, -+ "KEYTABLE", &vc_keymap, -+ "KBD_DELAY", &vc_kbd_delay, -+ "KBD_RATE", &vc_kbd_rate, -+ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "COMPOSETABLE", &vc_compose_table, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); ++ r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE, ++ "KEYTABLE", &vc_keymap, ++ "KBD_DELAY", &vc_kbd_delay, ++ "KBD_RATE", &vc_kbd_rate, ++ "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "COMPOSETABLE", &vc_compose_table, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); + -+ r = parse_env_file("/etc/sysconfig/console", NEWLINE, -+ "CONSOLE_FONT", &vc_font, -+ "CONSOLE_SCREENMAP", &vc_font_map, -+ "CONSOLE_UNICODEMAP", &vc_font_unimap, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); -+ -+ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++ r = parse_env_file("/etc/sysconfig/console", NEWLINE, ++ "CONSOLE_FONT", &vc_font, ++ "CONSOLE_SCREENMAP", &vc_font_map, ++ "CONSOLE_UNICODEMAP", &vc_font_unimap, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + ++ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; +#endif -+ } + - if (utf8) - enable_utf8(fd); - else + r = parse_env_file("/etc/vconsole.conf", NEWLINE, + "KEYMAP", &vc_keymap, + "KEYMAP_TOGGLE", &vc_keymap_toggle, +@@ -282,7 +410,12 @@ int main(int argc, char **argv) { disable_utf8(fd); r = EXIT_FAILURE; @@ -201,7 +201,7 @@ Subject: handle disable_caplock and compose_table and kbd_rate font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -290,6 +426,14 @@ finish: +@@ -290,6 +423,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -216,7 +216,7 @@ Subject: handle disable_caplock and compose_table and kbd_rate if (font_pid > 0) { wait_for_terminate_and_warn(KBD_SETFONT, font_pid); if (font_copy) -@@ -300,6 +444,12 @@ finish: +@@ -300,6 +441,12 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 023e66a2..4278436c 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,8 +6,10 @@ Authors: Stanislav Brabec Cristian Rodríguez ---- systemd-206_git201308300826.orig/src/vconsole/vconsole-setup.c -+++ systemd-206_git201308300826/src/vconsole/vconsole-setup.c +Index: systemd-210/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-210.orig/src/vconsole/vconsole-setup.c ++++ systemd-210/src/vconsole/vconsole-setup.c @@ -42,6 +42,10 @@ #include "fileio.h" #include "strv.h" @@ -34,18 +36,18 @@ Cristian Rodríguez pid_t font_pid = 0, keymap_pid = 0; bool font_copy = false; int r = EXIT_FAILURE; -@@ -389,6 +395,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -403,6 +410,36 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); +@@ -363,6 +369,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -377,6 +384,36 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; +#if defined(__i386__) || defined(__x86_64__) + if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { + int _cleanup_close_ fdmem; @@ -76,10 +78,10 @@ Cristian Rodríguez + } else +#endif + numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); - #endif - } -@@ -425,6 +462,10 @@ int main(int argc, char **argv) { + + r = parse_env_file("/etc/vconsole.conf", NEWLINE, +@@ -422,6 +459,10 @@ int main(int argc, char **argv) { finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -90,7 +92,7 @@ Cristian Rodríguez #ifdef HAVE_SYSV_COMPAT if (compose_table_pid > 0) -@@ -444,6 +485,7 @@ finish: +@@ -441,6 +482,7 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); @@ -98,9 +100,11 @@ Cristian Rodríguez #ifdef HAVE_SYSV_COMPAT free(vc_kbd_delay); free(vc_kbd_rate); ---- systemd-206_git201308300826.orig/Makefile.am -+++ systemd-206_git201308300826/Makefile.am -@@ -2488,6 +2488,19 @@ dist_udevrules_DATA += \ +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2847,6 +2847,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -120,8 +124,10 @@ Cristian Rodríguez if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ +Index: systemd-210/rules/73-seat-numlock.rules +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/rules/73-seat-numlock.rules ++++ systemd-210/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -131,8 +137,10 @@ Cristian Rodríguez +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" +Index: systemd-210/src/login/numlock-on.c +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/src/login/numlock-on.c ++++ systemd-210/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -168,8 +176,10 @@ Cristian Rodríguez + + exit(0); +} ---- systemd-206_git201308300826.orig/units/systemd-vconsole-setup.service.in -+++ systemd-206_git201308300826/units/systemd-vconsole-setup.service.in +Index: systemd-210/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-210.orig/units/systemd-vconsole-setup.service.in ++++ systemd-210/units/systemd-vconsole-setup.service.in @@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target diff --git a/keep-crypt-password-prompt.patch b/keep-crypt-password-prompt.patch index 10ddf398..ba356b54 100644 --- a/keep-crypt-password-prompt.patch +++ b/keep-crypt-password-prompt.patch @@ -1,6 +1,8 @@ ---- systemd-210/src/core/manager.c 2014-05-05 11:46:17.700483956 +0200 -+++ systemd-210/src/core/manager.c 2014-05-05 13:29:13.296503646 +0200 -@@ -152,6 +152,29 @@ +Index: systemd-210/src/core/manager.c +=================================================================== +--- systemd-210.orig/src/core/manager.c ++++ systemd-210/src/core/manager.c +@@ -152,6 +152,29 @@ void manager_flip_auto_status(Manager *m } } @@ -30,13 +32,13 @@ static void manager_print_jobs_in_progress(Manager *m) { static int is_ansi_console = -1; _cleanup_free_ char *job_of_n = NULL; -@@ -195,6 +217,10 @@ +@@ -195,6 +218,10 @@ static void manager_print_jobs_in_progre m->jobs_in_progress_iteration++; + //don't overwrite the crypt password prompt with job status messages -+ if (check_for_password_prompt() == 0); -+ return 0; ++ if (check_for_password_prompt() == 0) ++ return; + if (m->n_running_jobs > 1) if (asprintf(&job_of_n, "(%u of %u) ", counter, m->n_running_jobs) < 0) diff --git a/log-target-null-instead-kmsg.patch b/log-target-null-instead-kmsg.patch index f1d429b6..4e715385 100644 --- a/log-target-null-instead-kmsg.patch +++ b/log-target-null-instead-kmsg.patch @@ -5,15 +5,15 @@ src/shared/util.c | 6 +++++- 4 files changed, 50 insertions(+), 4 deletions(-) ---- systemd-210/src/journal/journald-kmsg.c -+++ systemd-210/src/journal/journald-kmsg.c 2014-05-09 07:35:02.880122386 +0000 -@@ -391,12 +391,26 @@ +Index: systemd-210/src/journal/journald-kmsg.c +=================================================================== +--- systemd-210.orig/src/journal/journald-kmsg.c ++++ systemd-210/src/journal/journald-kmsg.c +@@ -391,12 +391,24 @@ static int dispatch_dev_kmsg(sd_event_so return server_read_dev_kmsg(s); } +static int parse_proc_cmdline_word(const char *word) { -+ int r; -+ + if (streq(word, "systemd.log_target=null")) + return -115; + @@ -35,15 +35,15 @@ if (s->dev_kmsg_fd < 0) { log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, "Failed to open /dev/kmsg, ignoring: %m"); ---- systemd-210/src/libudev/libudev-util.c -+++ systemd-210/src/libudev/libudev-util.c 2014-05-09 07:35:28.304122530 +0000 -@@ -416,6 +416,15 @@ +Index: systemd-210/src/libudev/libudev-util.c +=================================================================== +--- systemd-210.orig/src/libudev/libudev-util.c ++++ systemd-210/src/libudev/libudev-util.c +@@ -416,6 +416,13 @@ uint64_t util_string_bloom64(const char return bits; } +static int parse_proc_cmdline_word(const char *word) { -+ int r; -+ + if (streq(word, "systemd.log_target=null")) + return -115; + @@ -53,7 +53,7 @@ ssize_t print_kmsg(const char *fmt, ...) { _cleanup_close_ int fd = -1; -@@ -424,7 +433,12 @@ +@@ -424,7 +431,12 @@ ssize_t print_kmsg(const char *fmt, ...) ssize_t len; ssize_t ret; @@ -67,15 +67,15 @@ if (fd < 0) return -errno; ---- systemd-210/src/shared/log.c -+++ systemd-210/src/shared/log.c 2014-05-09 07:35:52.900122669 +0000 -@@ -92,12 +92,26 @@ +Index: systemd-210/src/shared/log.c +=================================================================== +--- systemd-210.orig/src/shared/log.c ++++ systemd-210/src/shared/log.c +@@ -92,12 +92,24 @@ void log_close_kmsg(void) { kmsg_fd = -1; } +static int parse_proc_cmdline_word(const char *word) { -+ int r; -+ + if (streq(word, "systemd.log_target=null")) + return -115; + @@ -97,9 +97,11 @@ if (kmsg_fd < 0) return -errno; ---- systemd-210/src/shared/util.c -+++ systemd-210/src/shared/util.c 2014-05-09 08:51:55.436148462 +0000 -@@ -5975,7 +5975,11 @@ +Index: systemd-210/src/shared/util.c +=================================================================== +--- systemd-210.orig/src/shared/util.c ++++ systemd-210/src/shared/util.c +@@ -6069,7 +6069,11 @@ int parse_proc_cmdline(int (*parse_word) r = parse_word(word); if (r < 0) { diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index cb390f87..13f576db 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -2,23 +2,22 @@ src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) ---- systemd-210/src/fstab-generator/fstab-generator.c -+++ systemd-210/src/fstab-generator/fstab-generator.c 2014-05-07 09:15:01.003911151 +0000 -@@ -37,6 +37,53 @@ +Index: systemd-210/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-210.orig/src/fstab-generator/fstab-generator.c ++++ systemd-210/src/fstab-generator/fstab-generator.c +@@ -37,6 +37,50 @@ static const char *arg_dest = "/tmp"; static bool arg_enabled = true; +static int check_crypttab(const char *what) { + _cleanup_fclose_ FILE *f = NULL; + unsigned n = 0; -+ int r; + + f = fopen("/etc/crypttab", "re"); + if (!f) { -+ if (errno == ENOENT) -+ r = EXIT_SUCCESS; -+ else -+ log_error("Failed to open /etc/crypttab: %m"); ++ if (errno != ENOENT) ++ log_error("Failed to open /etc/crypttab: %m"); + + return 1; + } @@ -58,7 +57,7 @@ static int mount_find_pri(struct mntent *me, int *ret) { char *end, *pri; unsigned long r; -@@ -212,7 +259,7 @@ +@@ -212,7 +256,7 @@ static int add_mount( *name = NULL, *unit = NULL, *lnk = NULL, *automount_name = NULL, *automount_unit = NULL; _cleanup_fclose_ FILE *f = NULL; @@ -67,7 +66,7 @@ assert(what); assert(where); -@@ -286,7 +333,8 @@ +@@ -288,7 +332,8 @@ static int add_mount( return -errno; } diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index 59c5ff56..559892d5 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -6,8 +6,10 @@ Use and set default logging console for both journald and kernel messages src/journal/journald-server.c | 5 ++ 3 files changed, 105 insertions(+) ---- src/journal/journald-console.c -+++ src/journal/journald-console.c 2014-07-23 09:08:29.522235688 +0000 +Index: src/journal/journald-console.c +=================================================================== +--- src/journal/journald-console.c.orig ++++ src/journal/journald-console.c @@ -23,6 +23,14 @@ #include #include @@ -68,7 +70,7 @@ Use and set default logging console for both journald and kernel messages + return; + + if (access(vc, F_OK) < 0) -+ return false; ++ return; + + fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC); + if (fd < 0) @@ -98,17 +100,17 @@ Use and set default logging console for both journald and kernel messages void server_forward_console( Server *s, int priority, -@@ -63,6 +139,10 @@ void server_forward_console( - +@@ -64,6 +140,10 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; -+ + + /* Do not write security/authorization (private) messages to console */ + if (priority & LOG_AUTHPRIV) + return; - ++ /* First: timestamp */ if (prefix_timestamp()) { + assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); @@ -101,7 +181,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { @@ -133,8 +135,10 @@ Use and set default logging console for both journald and kernel messages } if (writev(fd, iovec, n) < 0) ---- src/journal/journald-console.h -+++ src/journal/journald-console.h 2014-07-22 11:20:52.754235644 +0000 +Index: src/journal/journald-console.h +=================================================================== +--- src/journal/journald-console.h.orig ++++ src/journal/journald-console.h @@ -24,3 +24,7 @@ #include "journald-server.h" @@ -143,8 +147,10 @@ Use and set default logging console for both journald and kernel messages +void klogconsole(Server *s); +void defaul_tty_path(Server *s); +#endif ---- src/journal/journald-server.c -+++ src/journal/journald-server.c 2014-07-22 11:16:45.966236859 +0000 +Index: src/journal/journald-server.c +=================================================================== +--- src/journal/journald-server.c.orig ++++ src/journal/journald-server.c @@ -1509,6 +1509,11 @@ int server_init(Server *s) { server_parse_config_file(s); diff --git a/systemd-mini.changes b/systemd-mini.changes index bd231f90..f97f18df 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de + +- Disable blkrrpart for SLES12 and below + +------------------------------------------------------------------- +Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de + +- Add upstream patch + 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +- Add with condition blkrrpart to be able to disable the patches + 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 + which uses the BLKRRPART ioctl for e.g. synthesize change events + which may interfere with other tools like parted. + +------------------------------------------------------------------- +Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com + +- Update + handle-disable_caplock-and-compose_table-and-kbd_rate.patch, + handle-numlock-value-in-etc-sysconfig-keyboard.patch: read + /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) + otherwise empty value in /etc/sysconfig/keyboard might override + /etc/vconsole.conf values. +- Update : + 0001-journal-compress-return-early-in-uncompress_startswi.patch + 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + 0002-vconsole-setup-run-setfont-before-loadkeys.patch + 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + apply-ACL-for-nvidia-device-nodes.patch + keep-crypt-password-prompt.patch + log-target-null-instead-kmsg.patch + parse-crypttab-for-noauto-option.patch + set-and-use-default-logconsole.patch: fix all warnings in code +- Remove 0001-compress-fix-return-value.patch: not relevant to + systemd v210 code. + +------------------------------------------------------------------- +Thu Jul 24 10:07:08 UTC 2014 - werner@suse.de + +- Also change udev-generate-peristent-rule to udev-generate-persistent-rule + in file list + +------------------------------------------------------------------- +Thu Jul 24 09:00:43 UTC 2014 - rmilasan@suse.com + +- Rename (fix typo in script name): + udev-generate-peristent-rule.sh to udev-generate-persistent-rule.sh + ------------------------------------------------------------------- Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com @@ -296,7 +346,7 @@ Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de - Add upstream patch 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it - fixes udevadm settle exit code which may had roken dracut scripts + fixes udevadm settle exit code which may had broken dracut scripts (bnc#884271 comment#18) ------------------------------------------------------------------- diff --git a/systemd-mini.spec b/systemd-mini.spec index 821ddb1c..98584596 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -31,8 +31,14 @@ %else %define has_efi 0 %endif -%bcond_with udevsettle %bcond_with permission +%if 0%{?suse_version} > 1315 +%bcond_without blkrrpart +%bcond_without udevsettle +%else +%bcond_with blkrrpart +%bcond_with udevsettle +%endif Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -182,7 +188,7 @@ Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink -Source1063: udev-generate-peristent-rule.sh +Source1063: udev-generate-persistent-rule.sh Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs @@ -709,8 +715,6 @@ Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch # PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch345: 0001-compress-fix-return-value.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 Patch347: 0003-Add-quotes-to-warning-message.patch @@ -837,6 +841,8 @@ Patch1051: 1051-check-if-NAME-has-a-value.patch Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch +# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch +Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1340,7 +1346,6 @@ cp %{SOURCE7} m4/ %patch342 -p0 %patch343 -p0 %patch344 -p0 -%patch345 -p0 %patch346 -p0 %patch347 -p0 %patch348 -p0 @@ -1377,19 +1382,27 @@ cp %{SOURCE7} m4/ %endif %patch1023 -p0 %patch1024 -p0 +%if %{with blkrrpart} %patch1025 -p1 +%endif %patch1026 -p1 +%if %{with blkrrpart} %patch1027 -p1 +%endif %patch1028 -p1 +%if %{with blkrrpart} %patch1029 -p1 %patch1030 -p1 %patch1031 -p1 %patch1032 -p1 %patch1033 -p1 %patch1034 -p1 +%endif %patch1035 -p1 %patch1036 -p1 +%if %{with blkrrpart} %patch1037 -p1 +%endif %patch1038 -p0 %if %{with udevsettle} %patch1039 -p0 @@ -1410,6 +1423,9 @@ cp %{SOURCE7} m4/ %patch1051 -p1 %patch1052 -p0 %patch1053 -p1 +%if %{with blkrrpart} +%patch1054 -p0 +%endif # ensure generate files are removed rm -f units/emergency.service @@ -1590,7 +1606,7 @@ sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule +install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants @@ -2302,7 +2318,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%{_prefix}/lib/udev/udev-generate-peristent-rule +%{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions diff --git a/systemd.changes b/systemd.changes index bd231f90..f97f18df 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de + +- Disable blkrrpart for SLES12 and below + +------------------------------------------------------------------- +Fri Jul 25 09:37:56 UTC 2014 - werner@suse.de + +- Add upstream patch + 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +- Add with condition blkrrpart to be able to disable the patches + 1025, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1037, and 1054 + which uses the BLKRRPART ioctl for e.g. synthesize change events + which may interfere with other tools like parted. + +------------------------------------------------------------------- +Thu Jul 24 13:05:42 UTC 2014 - fcrozat@suse.com + +- Update + handle-disable_caplock-and-compose_table-and-kbd_rate.patch, + handle-numlock-value-in-etc-sysconfig-keyboard.patch: read + /etc/vconsole.conf after /etc/sysconfig/(keyboard,console) + otherwise empty value in /etc/sysconfig/keyboard might override + /etc/vconsole.conf values. +- Update : + 0001-journal-compress-return-early-in-uncompress_startswi.patch + 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + 0002-vconsole-setup-run-setfont-before-loadkeys.patch + 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + apply-ACL-for-nvidia-device-nodes.patch + keep-crypt-password-prompt.patch + log-target-null-instead-kmsg.patch + parse-crypttab-for-noauto-option.patch + set-and-use-default-logconsole.patch: fix all warnings in code +- Remove 0001-compress-fix-return-value.patch: not relevant to + systemd v210 code. + +------------------------------------------------------------------- +Thu Jul 24 10:07:08 UTC 2014 - werner@suse.de + +- Also change udev-generate-peristent-rule to udev-generate-persistent-rule + in file list + +------------------------------------------------------------------- +Thu Jul 24 09:00:43 UTC 2014 - rmilasan@suse.com + +- Rename (fix typo in script name): + udev-generate-peristent-rule.sh to udev-generate-persistent-rule.sh + ------------------------------------------------------------------- Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com @@ -296,7 +346,7 @@ Wed Jun 25 17:06:07 UTC 2014 - werner@suse.de - Add upstream patch 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch it - fixes udevadm settle exit code which may had roken dracut scripts + fixes udevadm settle exit code which may had broken dracut scripts (bnc#884271 comment#18) ------------------------------------------------------------------- diff --git a/systemd.spec b/systemd.spec index 0e5ecf3a..e151db11 100644 --- a/systemd.spec +++ b/systemd.spec @@ -29,8 +29,14 @@ %else %define has_efi 0 %endif -%bcond_with udevsettle %bcond_with permission +%if 0%{?suse_version} > 1315 +%bcond_without blkrrpart +%bcond_without udevsettle +%else +%bcond_with blkrrpart +%bcond_with udevsettle +%endif Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -177,7 +183,7 @@ Source11: after-local.service Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink -Source1063: udev-generate-peristent-rule.sh +Source1063: udev-generate-persistent-rule.sh Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs @@ -704,8 +710,6 @@ Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch # PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch345: 0001-compress-fix-return-value.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 Patch347: 0003-Add-quotes-to-warning-message.patch @@ -832,6 +836,8 @@ Patch1051: 1051-check-if-NAME-has-a-value.patch Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch +# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch +Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1335,7 +1341,6 @@ cp %{SOURCE7} m4/ %patch342 -p0 %patch343 -p0 %patch344 -p0 -%patch345 -p0 %patch346 -p0 %patch347 -p0 %patch348 -p0 @@ -1372,19 +1377,27 @@ cp %{SOURCE7} m4/ %endif %patch1023 -p0 %patch1024 -p0 +%if %{with blkrrpart} %patch1025 -p1 +%endif %patch1026 -p1 +%if %{with blkrrpart} %patch1027 -p1 +%endif %patch1028 -p1 +%if %{with blkrrpart} %patch1029 -p1 %patch1030 -p1 %patch1031 -p1 %patch1032 -p1 %patch1033 -p1 %patch1034 -p1 +%endif %patch1035 -p1 %patch1036 -p1 +%if %{with blkrrpart} %patch1037 -p1 +%endif %patch1038 -p0 %if %{with udevsettle} %patch1039 -p0 @@ -1405,6 +1418,9 @@ cp %{SOURCE7} m4/ %patch1051 -p1 %patch1052 -p0 %patch1053 -p1 +%if %{with blkrrpart} +%patch1054 -p0 +%endif # ensure generate files are removed rm -f units/emergency.service @@ -1585,7 +1601,7 @@ sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-peristent-rule +install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants @@ -2297,7 +2313,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/write_dev_root_rule -%{_prefix}/lib/udev/udev-generate-peristent-rule +%{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions diff --git a/udev-generate-peristent-rule.sh b/udev-generate-persistent-rule.sh similarity index 100% rename from udev-generate-peristent-rule.sh rename to udev-generate-persistent-rule.sh From 20ad5f583e2c44f7deeea6b31193b0c271f3f2174d2c4da8996938efe9062df4 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 29 Jul 2014 19:21:37 +0000 Subject: [PATCH 191/221] Accepting request 242699 from Base:System - Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid rpmlink warning - Add upstream patches 0001-bus-proxyd-fix-incorrect-comparison.patch 0002-shell-completion-prevent-mangling-unit-names.patch 0003-Always-check-asprintf-return-code.patch 0004-bash-completion-use-list-unit-files-to-get-all-units.patch 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch 0006-parse_boolean-require-exact-matches.patch 0007-drop_duplicates-copy-full-BindMount-struct.patch 0008-shell-completion-prevent-mangling-unit-names-bash.patch 0009-journald-always-add-syslog-facility-for-messages-com.patch - Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid rpmlink warning - Add upstream patches 0001-bus-proxyd-fix-incorrect-comparison.patch 0002-shell-completion-prevent-mangling-unit-names.patch 0003-Always-check-asprintf-return-code.patch 0004-bash-completion-use-list-unit-files-to-get-all-units.patch 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch 0006-parse_boolean-require-exact-matches.patch 0007-drop_duplicates-copy-full-BindMount-struct.patch 0008-shell-completion-prevent-mangling-unit-names-bash.patch 0009-journald-always-add-syslog-facility-for-messages-com.patch OBS-URL: https://build.opensuse.org/request/show/242699 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=196 --- ...-bus-proxyd-fix-incorrect-comparison.patch | 21 ++ ...mpletion-prevent-mangling-unit-names.patch | 67 ++++++ 0003-Always-check-asprintf-return-code.patch | 223 ++++++++++++++++++ ...use-list-unit-files-to-get-all-units.patch | 39 +++ ...e-kernel-s-timezone-when-the-RTC-run.patch | 121 ++++++++++ ...-parse_boolean-require-exact-matches.patch | 48 ++++ ...uplicates-copy-full-BindMount-struct.patch | 31 +++ ...ion-prevent-mangling-unit-names-bash.patch | 87 +++++++ ...add-syslog-facility-for-messages-com.patch | 40 ++++ shut-up-rpmlint-on-var-log-journal.patch | 19 ++ systemd-mini.changes | 16 ++ systemd-mini.spec | 58 +++-- systemd.changes | 16 ++ systemd.spec | 58 +++-- 14 files changed, 802 insertions(+), 42 deletions(-) create mode 100644 0001-bus-proxyd-fix-incorrect-comparison.patch create mode 100644 0002-shell-completion-prevent-mangling-unit-names.patch create mode 100644 0003-Always-check-asprintf-return-code.patch create mode 100644 0004-bash-completion-use-list-unit-files-to-get-all-units.patch create mode 100644 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch create mode 100644 0006-parse_boolean-require-exact-matches.patch create mode 100644 0007-drop_duplicates-copy-full-BindMount-struct.patch create mode 100644 0008-shell-completion-prevent-mangling-unit-names-bash.patch create mode 100644 0009-journald-always-add-syslog-facility-for-messages-com.patch create mode 100644 shut-up-rpmlint-on-var-log-journal.patch diff --git a/0001-bus-proxyd-fix-incorrect-comparison.patch b/0001-bus-proxyd-fix-incorrect-comparison.patch new file mode 100644 index 00000000..404e4c8d --- /dev/null +++ b/0001-bus-proxyd-fix-incorrect-comparison.patch @@ -0,0 +1,21 @@ +Based on e05aa2e02ba35d8b3741dddb79af3c802308414b Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 25 Jul 2014 10:25:06 +0200 +Subject: [PATCH] bus-proxyd: fix incorrect comparison + +We should be interested in k variable. +--- + src/bus-proxyd/bus-proxyd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/bus-proxyd/bus-proxyd.c ++++ src/bus-proxyd/bus-proxyd.c 2014-07-28 09:37:29.274735818 +0000 +@@ -698,7 +698,7 @@ int main(int argc, char *argv[]) { + + k = sd_bus_send(a, m, NULL); + if (k < 0) { +- if (r == -ECONNRESET) ++ if (k == -ECONNRESET) + r = 0; + else { + r = k; diff --git a/0002-shell-completion-prevent-mangling-unit-names.patch b/0002-shell-completion-prevent-mangling-unit-names.patch new file mode 100644 index 00000000..9d8b1324 --- /dev/null +++ b/0002-shell-completion-prevent-mangling-unit-names.patch @@ -0,0 +1,67 @@ +Based on 6d314eca15f6cbda38d82774b210f784d3d4f52a Mon Sep 17 00:00:00 2001 +From: Eric Cook +Date: Sat, 26 Jul 2014 11:15:52 -0400 +Subject: [PATCH] shell-completion: prevent mangling unit names + +Units with literal hex '\xFF' in their names has to be read +and printed properly. +dev-disk-byx2dlabel-root.device != dev-disk-by\x2dlabel-root.device +--- + shell-completion/zsh/_systemctl.in | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git shell-completion/zsh/_systemctl.in shell-completion/zsh/_systemctl.in +index d364d17..e681ec6 100644 +--- shell-completion/zsh/_systemctl ++++ shell-completion/zsh/_systemctl +@@ -100,7 +100,7 @@ _systemctl_all_units() + if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) && + ! _retrieve_cache SYS_ALL_UNITS; + then +- _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo " $a"; done; }) ) ++ _sys_all_units=( $(__systemctl list-units --all | { while read -r a b; do echo -E - " $a"; done; }) ) + _store_cache SYS_ALL_UNITS _sys_all_units + fi + } +@@ -113,7 +113,7 @@ _systemctl_really_all_units() + if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) && + ! _retrieve_cache SYS_REALLY_ALL_UNITS; + then +- all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo " $a"; done; }) ) ++ all_unit_files=( $(__systemctl list-unit-files | { while read -r a b; do echo -E - " $a"; done; }) ) + _systemctl_all_units + really_all_units=($_sys_all_units $all_unit_files) + _sys_really_all_units=(${(u)really_all_units}) +@@ -138,12 +138,12 @@ _filter_units_by_property() { + done + } + +-_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo " $a"; done; }) )} +-_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )} +-_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )} +-_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )} +-_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )} +-_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )} ++_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} ++_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} ++_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} ++_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} ++_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} ++_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )} + + # Completion functions for ALL_UNITS + for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies ; do +@@ -219,8 +219,8 @@ for fun in restart reload-or-restart ; do + { + _systemctl_all_units + compadd "$@" - $( _filter_units_by_property CanStart yes \ +- ${_sys_all_units[*]} | while read line; do \ +- [[ "$line" =~ \.device$ ]] || echo " $line"; \ ++ ${_sys_all_units[*]} | while read -r line; do \ ++ [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ + done ) + } + done +-- +1.7.9.2 + diff --git a/0003-Always-check-asprintf-return-code.patch b/0003-Always-check-asprintf-return-code.patch new file mode 100644 index 00000000..00d873f7 --- /dev/null +++ b/0003-Always-check-asprintf-return-code.patch @@ -0,0 +1,223 @@ +Based on 7de80bfe2e61d5818601ccfddbadad3b7703ed70 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 25 Jul 2014 15:38:31 +0200 +Subject: [PATCH] Always check asprintf return code + +There is a small number of the places in sources where we don't check +asprintf() return code and assume that after error the function +returns NULL pointer via the first argument. That's wrong, after +error the content of pointer is undefined. +--- + src/core/unit-printf.c | 8 ++++---- + src/cryptsetup/cryptsetup.c | 11 ++++++++--- + src/journal/journalctl.c | 16 +++++++++++----- + src/run/run.c | 20 ++++++++++---------- + src/shared/install.c | 15 +++++++++------ + src/systemctl/systemctl.c | 18 +++++++++--------- + src/tty-ask-password-agent/tty-ask-password-agent.c | 5 +++-- + 7 files changed, 54 insertions(+), 39 deletions(-) + +--- src/core/unit-printf.c ++++ src/core/unit-printf.c 2014-07-28 09:42:20.726235696 +0000 +@@ -182,7 +182,7 @@ static int specifier_user_name(char spec + char *printed = NULL; + Unit *u = userdata; + ExecContext *c; +- int r; ++ int r = 0; + + assert(u); + +@@ -208,7 +208,7 @@ static int specifier_user_name(char spec + if (r < 0) + return -ENODATA; + +- asprintf(&printed, "%lu", (unsigned long) uid); ++ r = asprintf(&printed, "%lu", (unsigned long) uid); + } + } + +@@ -231,10 +231,10 @@ static int specifier_user_name(char spec + if (specifier == 'u') + printed = strdup(username); + else +- asprintf(&printed, "%lu", (unsigned long) uid); ++ r = asprintf(&printed, "%lu", (unsigned long) uid); + } + +- if (!printed) ++ if (r < 0 || !printed) + return -ENOMEM; + + *ret = printed; +--- src/cryptsetup/cryptsetup.c ++++ src/cryptsetup/cryptsetup.c 2014-07-28 00:00:00.000000000 +0000 +@@ -535,13 +535,18 @@ int main(int argc, char *argv[]) { + description = NULL; + } + ++ k = 0; + if (mount_point && description) +- asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); ++ k = asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); + else if (mount_point) +- asprintf(&name_buffer, "%s on %s", argv[2], mount_point); ++ k = asprintf(&name_buffer, "%s on %s", argv[2], mount_point); + else if (description) +- asprintf(&name_buffer, "%s (%s)", description, argv[2]); ++ k = asprintf(&name_buffer, "%s (%s)", description, argv[2]); + ++ if (k < 0) { ++ log_oom(); ++ goto finish; ++ } + name = name_buffer ? name_buffer : argv[2]; + + k = crypt_init(&cd, argv[3]); +--- src/journal/journalctl.c ++++ src/journal/journalctl.c 2014-07-28 00:00:00.000000000 +0000 +@@ -746,11 +746,17 @@ static int add_matches(sd_journal *j, ch + } + } else + t = strappend("_EXE=", path); +- } else if (S_ISCHR(st.st_mode)) +- asprintf(&t, "_KERNEL_DEVICE=c%u:%u", major(st.st_rdev), minor(st.st_rdev)); +- else if (S_ISBLK(st.st_mode)) +- asprintf(&t, "_KERNEL_DEVICE=b%u:%u", major(st.st_rdev), minor(st.st_rdev)); +- else { ++ } else if (S_ISCHR(st.st_mode)) { ++ if (asprintf(&t, "_KERNEL_DEVICE=c%u:%u", ++ major(st.st_rdev), ++ minor(st.st_rdev)) < 0) ++ return -ENOMEM; ++ } else if (S_ISBLK(st.st_mode)) { ++ if (asprintf(&t, "_KERNEL_DEVICE=b%u:%u", ++ major(st.st_rdev), ++ minor(st.st_rdev)) < 0) ++ return -ENOMEM; ++ } else { + log_error("File is neither a device node, nor regular file, nor executable: %s", *i); + return -EINVAL; + } +--- src/run/run.c ++++ src/run/run.c 2014-07-28 09:46:36.846235596 +0000 +@@ -309,12 +309,12 @@ static int start_transient_service( + _cleanup_free_ char *name = NULL; + int r; + +- if (arg_unit) ++ if (arg_unit) { + name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".service"); +- else +- asprintf(&name, "run-%lu.service", (unsigned long) getpid()); +- if (!name) +- return -ENOMEM; ++ if (!name) ++ return log_oom(); ++ } else if (asprintf(&name, "run-%lu.service", (unsigned long) getpid()) < 0) ++ return log_oom(); + + r = message_start_transient_unit_new(bus, name, &m); + if (r < 0) +@@ -436,12 +436,12 @@ static int start_transient_scope( + + assert(bus); + +- if (arg_unit) ++ if (arg_unit) { + name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope"); +- else +- asprintf(&name, "run-%lu.scope", (unsigned long) getpid()); +- if (!name) +- return -ENOMEM; ++ if (!name) ++ return log_oom(); ++ } else if (asprintf(&name, "run-%lu.scope", (unsigned long) getpid()) < 0) ++ return log_oom(); + + r = message_start_transient_unit_new(bus, name, &m); + if (r < 0) +--- src/shared/install.c ++++ src/shared/install.c 2014-07-28 00:00:00.000000000 +0000 +@@ -72,13 +72,16 @@ static int get_config_path(UnitFileScope + + case UNIT_FILE_SYSTEM: + +- if (root_dir && runtime) +- asprintf(&p, "%s/run/systemd/system", root_dir); +- else if (runtime) ++ if (root_dir && runtime) { ++ if (asprintf(&p, "%s/run/systemd/system", root_dir) < 0) ++ return -ENOMEM; ++ } else if (runtime) + p = strdup("/run/systemd/system"); +- else if (root_dir) +- asprintf(&p, "%s/%s", root_dir, SYSTEM_CONFIG_UNIT_PATH); +- else ++ else if (root_dir) { ++ if (asprintf(&p, "%s/%s", root_dir, ++ SYSTEM_CONFIG_UNIT_PATH) < 0) ++ return -ENOMEM; ++ } else + p = strdup(SYSTEM_CONFIG_UNIT_PATH); + + break; +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-07-28 09:51:40.894735541 +0000 +@@ -4639,11 +4639,11 @@ static int enable_sysv_units(const char + + STRV_FOREACH(k, paths.unit_path) { + if (!isempty(arg_root)) +- asprintf(&p, "%s/%s/%s", arg_root, *k, name); ++ j = asprintf(&p, "%s/%s/%s", arg_root, *k, name); + else +- asprintf(&p, "%s/%s", *k, name); ++ j = asprintf(&p, "%s/%s", *k, name); + +- if (!p) { ++ if (j < 0) { + r = log_oom(); + goto finish; + } +@@ -4660,10 +4660,10 @@ static int enable_sysv_units(const char + continue; + + if (!isempty(arg_root)) +- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); ++ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); + else +- asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); +- if (!p) { ++ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); ++ if (j < 0) { + r = log_oom(); + goto finish; + } +@@ -4676,10 +4676,10 @@ static int enable_sysv_units(const char + free(p); + p = NULL; + if (!isempty(arg_root)) +- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); ++ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else +- asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); +- if (!p) { ++ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); ++ if (j < 0) { + r = log_oom(); + goto finish; + } +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-28 00:00:00.000000000 +0000 +@@ -102,8 +102,9 @@ static int ask_password_plymouth( + if (accept_cached) { + packet = strdup("c"); + n = 1; +- } else +- asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), message, &n); ++ } else if (asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), ++ message, &n) < 0) ++ packet = NULL; + + if (!packet) { + r = -ENOMEM; diff --git a/0004-bash-completion-use-list-unit-files-to-get-all-units.patch b/0004-bash-completion-use-list-unit-files-to-get-all-units.patch new file mode 100644 index 00000000..b5ab5359 --- /dev/null +++ b/0004-bash-completion-use-list-unit-files-to-get-all-units.patch @@ -0,0 +1,39 @@ +Based on c6a373a26348544d944b08bf0c5dea4f72f6980b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 26 Jul 2014 20:11:58 -0400 +Subject: [PATCH] bash-completion: use list-unit-files to get "all" units + +I think that it is better to return good results slightly more slowly, +than partial quickly. Also reading from disk seems fast enough. Even +the delay on first try with completely cold cache is acceptable. + +This is just for bash, 'cause zsh was already doing this. + +https://bugzilla.redhat.com/show_bug.cgi?id=790768 +--- + shell-completion/bash/systemctl.in | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in +index c5950cc..69ef04b 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -51,11 +51,13 @@ __filter_units_by_property () { + done + } + +-__get_all_units () { __systemctl $1 list-units --all \ ++__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ + | { while read -r a b; do echo " $a"; done; }; } + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } +-__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ ++__get_startable_units () { { ++ __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap ++ __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ + | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } + __get_failed_units () { __systemctl $1 list-units \ + | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } +-- +1.7.9.2 + diff --git a/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch b/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch new file mode 100644 index 00000000..05d6edc1 --- /dev/null +++ b/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch @@ -0,0 +1,121 @@ +Based on c264aeab4b0e7b69f469e12e78d4a48b3ed7a66e Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 27 Jul 2014 00:11:08 +0200 +Subject: [PATCH] core: only set the kernel's timezone when the RTC runs in + local time + +We can not reliably manage any notion of local time. Every daylight +saving time change or time zone change by traveling will make the +time jump, and the local time might jump backwards which creates +unsolvable problems with file timestamps. + +We will no longer tell the kernel our local time zone and leave +everything set to UTC. This will effectively turn FAT timestamps +into UTC timestamps. + +If and only if the machine is configured to read the RTC in local +time mode, the kernel's time zone will be configured, but +systemd-timesysnc will disable the kernel's system time to RTC +syncing. In this mode, the RTC will not be managed, and external +tools like Windows bootups are expected to manage the RTC's time. + +https://bugs.freedesktop.org/show_bug.cgi?id=81538 +--- + src/core/main.c | 23 +++++++++++++++-------- + src/shared/hwclock.c | 15 ++++++++------- + src/shared/hwclock.h | 2 +- + 3 files changed, 24 insertions(+), 16 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-07-28 09:59:35.778235585 +0000 +@@ -1349,7 +1349,14 @@ int main(int argc, char *argv[]) { + if (hwclock_is_localtime() > 0) { + int min; + +- /* The first-time call to settimeofday() does a time warp in the kernel */ ++ /* ++ * The very first call of settimeofday() also does a time warp in the kernel. ++ * ++ * In the rtc-in-local time mode, we set the kernel's timezone, and rely on ++ * external tools to take care of maintaining the RTC and do all adjustments. ++ * This matches the behavior of Windows, which leaves the RTC alone if the ++ * registry tells that the RTC runs in UTC. ++ */ + r = hwclock_set_timezone(&min); + if (r < 0) + log_error("Failed to apply local time delta, ignoring: %s", strerror(-r)); +@@ -1357,19 +1364,19 @@ int main(int argc, char *argv[]) { + log_info("RTC configured in localtime, applying delta of %i minutes to system time.", min); + } else if (!in_initrd()) { + /* +- * Do dummy first-time call to seal the kernel's time warp magic ++ * Do a dummy very first call to seal the kernel's time warp magic. + * + * Do not call this this from inside the initrd. The initrd might not + * carry /etc/adjtime with LOCAL, but the real system could be set up + * that way. In such case, we need to delay the time-warp or the sealing + * until we reach the real system. ++ * ++ * Do no set the kernel's timezone. The concept of local time cannot ++ * be supported reliably, the time will jump or be incorrect at every daylight ++ * saving time change. All kernel local time concepts will be treated ++ * as UTC that way. + */ +- hwclock_reset_timezone(); +- +- /* Tell the kernel our timezone */ +- r = hwclock_set_timezone(NULL); +- if (r < 0) +- log_error("Failed to set the kernel's timezone, ignoring: %s", strerror(-r)); ++ hwclock_reset_timewarp(); + } + } + +--- src/shared/hwclock.c ++++ src/shared/hwclock.c 2014-07-28 09:59:12.914235566 +0000 +@@ -124,9 +124,10 @@ int hwclock_set_timezone(int *min) { + tz.tz_dsttime = 0; /* DST_NONE*/ + + /* +- * If the hardware clock does not run in UTC, but in local time: +- * The very first time we set the kernel's timezone, it will warp +- * the clock so that it runs in UTC instead of local time. ++ * If the RTC does not run in UTC but in local time, the very first ++ * call to settimeofday() will set the kernel's timezone and will warp the ++ * system clock, so that it runs in UTC instead of the local time we ++ * have read from the RTC. + */ + if (settimeofday(tv_null, &tz) < 0) + return -errno; +@@ -135,7 +136,7 @@ int hwclock_set_timezone(int *min) { + return 0; + } + +-int hwclock_reset_timezone(void) { ++int hwclock_reset_timewarp(void) { + const struct timeval *tv_null = NULL; + struct timezone tz; + +@@ -143,9 +144,9 @@ int hwclock_reset_timezone(void) { + tz.tz_dsttime = 0; /* DST_NONE*/ + + /* +- * The very first time we set the kernel's timezone, it will warp +- * the clock. Do a dummy call here, so the time warping is sealed +- * and we set only the timezone with next call. ++ * The very first call to settimeofday() does time warp magic. Do a ++ * dummy call here, so the time warping is sealed and all later calls ++ * behave as expected. + */ + if (settimeofday(tv_null, &tz) < 0) + return -errno; +--- src/shared/hwclock.h ++++ src/shared/hwclock.h 2014-07-28 09:59:25.034736002 +0000 +@@ -23,6 +23,6 @@ + + int hwclock_is_localtime(void); + int hwclock_set_timezone(int *min); +-int hwclock_reset_timezone(void); ++int hwclock_reset_timewarp(void); + int hwclock_get_time(struct tm *tm); + int hwclock_set_time(const struct tm *tm); diff --git a/0006-parse_boolean-require-exact-matches.patch b/0006-parse_boolean-require-exact-matches.patch new file mode 100644 index 00000000..2c279f99 --- /dev/null +++ b/0006-parse_boolean-require-exact-matches.patch @@ -0,0 +1,48 @@ +From 0f625d0b87139fc18cd565c9b6da05c53a0eb7ab Mon Sep 17 00:00:00 2001 +From: Ansgar Burchardt +Date: Sun, 27 Jul 2014 15:19:00 +0200 +Subject: [PATCH] parse_boolean: require exact matches + +Require exact matches in all cases instead of treating strings +starting with 't' ('f') as true (false). + +This is required for config_parse_protect_system to parse ProtectSystem=full +correctly: it uses parse_boolean and only tries a more specific parsing +function if that did not return a valid result. Thus "full" was treated as +"false" before. +--- + src/shared/util.c | 4 ++-- + src/test/test-util.c | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git src/shared/util.c src/shared/util.c +index 4fda31c..49c17ef 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -231,9 +231,9 @@ int unlink_noerrno(const char *path) { + int parse_boolean(const char *v) { + assert(v); + +- if (streq(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || strcaseeq(v, "on")) ++ if (streq(v, "1") || strcaseeq(v, "yes") || strcaseeq(v, "y") || strcaseeq(v, "true") || strcaseeq(v, "t") || strcaseeq(v, "on")) + return 1; +- else if (streq(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || strcaseeq(v, "off")) ++ else if (streq(v, "0") || strcaseeq(v, "no") || strcaseeq(v, "n") || strcaseeq(v, "false") || strcaseeq(v, "f") || strcaseeq(v, "off")) + return 0; + + return -EINVAL; +diff --git src/test/test-util.c src/test/test-util.c +index ed91a67..9a28ef9 100644 +--- src/test/test-util.c ++++ src/test/test-util.c +@@ -129,6 +129,7 @@ static void test_parse_boolean(void) { + + assert_se(parse_boolean("garbage") < 0); + assert_se(parse_boolean("") < 0); ++ assert_se(parse_boolean("full") < 0); + } + + static void test_parse_pid(void) { +-- +1.7.9.2 + diff --git a/0007-drop_duplicates-copy-full-BindMount-struct.patch b/0007-drop_duplicates-copy-full-BindMount-struct.patch new file mode 100644 index 00000000..434f119d --- /dev/null +++ b/0007-drop_duplicates-copy-full-BindMount-struct.patch @@ -0,0 +1,31 @@ +From e2d7c1a0758ce80d7cb439745deefefdffd67655 Mon Sep 17 00:00:00 2001 +From: Ansgar Burchardt +Date: Sun, 27 Jul 2014 16:32:13 +0200 +Subject: [PATCH] drop_duplicates: copy full BindMount struct + +At least + + t->ignore = f->ignore; + +is missing here. Just copy the full struct to be sure. +--- + src/core/namespace.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git src/core/namespace.c src/core/namespace.c +index 5466b7b..fe95377 100644 +--- src/core/namespace.c ++++ src/core/namespace.c +@@ -124,8 +124,7 @@ static void drop_duplicates(BindMount *m, unsigned *n) { + if (previous && path_equal(f->path, previous->path)) + continue; + +- t->path = f->path; +- t->mode = f->mode; ++ *t = *f; + + previous = t; + +-- +1.7.9.2 + diff --git a/0008-shell-completion-prevent-mangling-unit-names-bash.patch b/0008-shell-completion-prevent-mangling-unit-names-bash.patch new file mode 100644 index 00000000..7a52c0d7 --- /dev/null +++ b/0008-shell-completion-prevent-mangling-unit-names-bash.patch @@ -0,0 +1,87 @@ +Based on c317a1a19cd9584e07ee43f1b6fafc26c2c75cca Mon Sep 17 00:00:00 2001 +From: Eric Cook +Date: Sun, 27 Jul 2014 15:07:03 -0400 +Subject: [PATCH] shell-completion: prevent mangling unit names (bash) + +This fixes the issue noted by Zbigniew in most cases. +if a unit's name is enclosed in single quotes completion still +will not happen after the first `\'. + +https://bugs.freedesktop.org/show_bug.cgi?id=78388 +--- + shell-completion/bash/systemctl.in | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in +index 69ef04b..64b15df 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -158,20 +158,25 @@ _systemctl () { + + elif __contains_word "$verb" ${VERBS[ALL_UNITS]}; then + comps=$( __get_all_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[ENABLED_UNITS]}; then + comps=$( __get_enabled_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then + comps=$( __get_disabled_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then + comps=$( __get_disabled_units $mode; + __get_enabled_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ + $( __get_startable_units $mode)) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +@@ -179,24 +184,30 @@ _systemctl () { + | while read -r line; do \ + [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ + done )) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStop yes \ + $( __get_active_units $mode ) ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[RELOADABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanReload yes \ + $( __get_active_units $mode ) ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[ISOLATABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode AllowIsolate yes \ + $( __get_all_units $mode ) ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[FAILED_UNITS]}; then + comps=$( __get_failed_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[MASKED_UNITS]}; then + comps=$( __get_masked_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[NAME]}; then + comps='' +@@ -221,7 +232,7 @@ _systemctl () { + | { while read -r a b; do echo " $a"; done; } ) + fi + +- COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) ++ COMPREPLY=( $(compgen -o filenames -W '$comps' -- "$cur") ) + return 0 + } + +-- +1.7.9.2 + diff --git a/0009-journald-always-add-syslog-facility-for-messages-com.patch b/0009-journald-always-add-syslog-facility-for-messages-com.patch new file mode 100644 index 00000000..58a8bdd2 --- /dev/null +++ b/0009-journald-always-add-syslog-facility-for-messages-com.patch @@ -0,0 +1,40 @@ +From 36dd072cdf03dcac0fcd2d6b42f261444dc7ac88 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Fri, 25 Jul 2014 14:38:22 +0200 +Subject: [PATCH] journald: always add syslog facility for messages coming + from kmsg + +Set SYSLOG_FACILITY field for kernel log messages too. Setting only +SYSLOG_IDENTIFIER="kernel" is not sufficient and tools reading journal +maybe confused by missing SYSLOG_FACILITY field for kernel log messages. +--- + src/journal/journald-kmsg.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c +index 12992e7..bb62a76 100644 +--- src/journal/journald-kmsg.c ++++ src/journal/journald-kmsg.c +@@ -274,6 +274,9 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { + if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0) + IOVEC_SET_STRING(iovec[n++], syslog_priority); + ++ if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) ++ IOVEC_SET_STRING(iovec[n++], syslog_facility); ++ + if ((priority & LOG_FACMASK) == LOG_KERN) + IOVEC_SET_STRING(iovec[n++], "SYSLOG_IDENTIFIER=kernel"); + else { +@@ -295,9 +298,6 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { + if (syslog_pid) + IOVEC_SET_STRING(iovec[n++], syslog_pid); + } +- +- if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) +- IOVEC_SET_STRING(iovec[n++], syslog_facility); + } + + message = cunescape_length_with_prefix(p, pl, "MESSAGE="); +-- +1.7.9.2 + diff --git a/shut-up-rpmlint-on-var-log-journal.patch b/shut-up-rpmlint-on-var-log-journal.patch new file mode 100644 index 00000000..3230a8f1 --- /dev/null +++ b/shut-up-rpmlint-on-var-log-journal.patch @@ -0,0 +1,19 @@ +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-07-28 09:05:41.002735451 +0000 +@@ -3242,11 +3242,11 @@ noinst_LTLIBRARIES += \ + libsystemd-journal-core.la + + journal-install-hook: +- -$(MKDIR_P) $(DESTDIR)/var/log/journal +- -chown 0:0 $(DESTDIR)/var/log/journal +- -chmod 755 $(DESTDIR)/var/log/journal +- -setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/ +- -setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ ++ -$(MKDIR_P) $(DESTDIR)/var/log/journal/ ++ -@echo chown 0:0 $(DESTDIR)/var/log/journal/ ++ -chmod 755 $(DESTDIR)/var/log/journal/ ++ -@echo setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/ ++ -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ + + journal-uninstall-hook: + -rmdir $(DESTDIR)/var/log/journal/ diff --git a/systemd-mini.changes b/systemd-mini.changes index f97f18df..f4d2a66b 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de + +- Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid + rpmlink warning +- Add upstream patches + 0001-bus-proxyd-fix-incorrect-comparison.patch + 0002-shell-completion-prevent-mangling-unit-names.patch + 0003-Always-check-asprintf-return-code.patch + 0004-bash-completion-use-list-unit-files-to-get-all-units.patch + 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch + 0006-parse_boolean-require-exact-matches.patch + 0007-drop_duplicates-copy-full-BindMount-struct.patch + 0008-shell-completion-prevent-mangling-unit-names-bash.patch + 0009-journald-always-add-syslog-facility-for-messages-com.patch + ------------------------------------------------------------------- Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 98584596..24ae5099 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -31,11 +31,12 @@ %else %define has_efi 0 %endif -%bcond_with permission %if 0%{?suse_version} > 1315 +%bcond_without permission %bcond_without blkrrpart %bcond_without udevsettle %else +%bcond_with permission %bcond_with blkrrpart %bcond_with udevsettle %endif @@ -714,6 +715,8 @@ Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch # PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch +# PATCH-FIX-SUSE Shut up rpmlint warning +Patch345: shut-up-rpmlint-on-var-log-journal.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 @@ -728,6 +731,24 @@ Patch350: 0002-journalctl-man-allow-only-between-terms.patch Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch355: 0003-Always-check-asprintf-return-code.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch358: 0006-parse_boolean-require-exact-matches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch # UDEV PATCHES # ============ @@ -1346,6 +1367,7 @@ cp %{SOURCE7} m4/ %patch342 -p0 %patch343 -p0 %patch344 -p0 +%patch345 -p1 %patch346 -p0 %patch347 -p0 %patch348 -p0 @@ -1353,6 +1375,15 @@ cp %{SOURCE7} m4/ %patch350 -p0 %patch351 -p0 %patch352 -p0 +%patch353 -p0 +%patch354 -p0 +%patch355 -p0 +%patch356 -p0 +%patch357 -p0 +%patch358 -p0 +%patch359 -p0 +%patch360 -p0 +%patch361 -p0 # udev patches %patch1001 -p1 @@ -1688,7 +1719,7 @@ done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}%{_localstatedir}/log/journal +mkdir -p %{buildroot}%{_localstatedir}/log/journal/ # Make sure directories in /var exist mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump @@ -1804,17 +1835,6 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done -# Add permission files for logger -%if %{with permission} -mkdir -p %{buildroot}%{_sysconfdir}/permissions.d -cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF' - %{_localstatedir}/log/journal/ root:systemd-journal 2755 -EOF -cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF' - %{_localstatedir}/log/journal/ root:systemd-journal 2755 -EOF -%endif - %find_lang systemd %pre @@ -1988,7 +2008,7 @@ fi %if %{with permission} %verifyscript logger -%verify_permissions -e %{_localstatedir}/log/journal +%verify_permissions -e %{_localstatedir}/log/journal/ %endif %pre logger @@ -1997,7 +2017,7 @@ exit 0 %post logger %if %{with permission} -%set_permissions %{_localstatedir}/log/journal +%set_permissions %{_localstatedir}/log/journal/ %endif getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : @@ -2016,7 +2036,7 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -2400,11 +2420,7 @@ exit 0 %files logger %defattr(-,root,root) -%if %{with permission} -%config %{_sysconfdir}/permissions.d/systemd-logger -%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid -%endif -%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal +%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ %{_localstatedir}/log/README /etc/init.d/systemd-journald diff --git a/systemd.changes b/systemd.changes index f97f18df..f4d2a66b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de + +- Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid + rpmlink warning +- Add upstream patches + 0001-bus-proxyd-fix-incorrect-comparison.patch + 0002-shell-completion-prevent-mangling-unit-names.patch + 0003-Always-check-asprintf-return-code.patch + 0004-bash-completion-use-list-unit-files-to-get-all-units.patch + 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch + 0006-parse_boolean-require-exact-matches.patch + 0007-drop_duplicates-copy-full-BindMount-struct.patch + 0008-shell-completion-prevent-mangling-unit-names-bash.patch + 0009-journald-always-add-syslog-facility-for-messages-com.patch + ------------------------------------------------------------------- Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index e151db11..0031cf2e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -29,11 +29,12 @@ %else %define has_efi 0 %endif -%bcond_with permission %if 0%{?suse_version} > 1315 +%bcond_without permission %bcond_without blkrrpart %bcond_without udevsettle %else +%bcond_with permission %bcond_with blkrrpart %bcond_with udevsettle %endif @@ -709,6 +710,8 @@ Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch # PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch +# PATCH-FIX-SUSE Shut up rpmlint warning +Patch345: shut-up-rpmlint-on-var-log-journal.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch # PATCH-FIX-UPSTREAM added at 2014/07/21 @@ -723,6 +726,24 @@ Patch350: 0002-journalctl-man-allow-only-between-terms.patch Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch355: 0003-Always-check-asprintf-return-code.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch358: 0006-parse_boolean-require-exact-matches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch # UDEV PATCHES # ============ @@ -1341,6 +1362,7 @@ cp %{SOURCE7} m4/ %patch342 -p0 %patch343 -p0 %patch344 -p0 +%patch345 -p1 %patch346 -p0 %patch347 -p0 %patch348 -p0 @@ -1348,6 +1370,15 @@ cp %{SOURCE7} m4/ %patch350 -p0 %patch351 -p0 %patch352 -p0 +%patch353 -p0 +%patch354 -p0 +%patch355 -p0 +%patch356 -p0 +%patch357 -p0 +%patch358 -p0 +%patch359 -p0 +%patch360 -p0 +%patch361 -p0 # udev patches %patch1001 -p1 @@ -1683,7 +1714,7 @@ done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}%{_localstatedir}/log/journal +mkdir -p %{buildroot}%{_localstatedir}/log/journal/ # Make sure directories in /var exist mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump @@ -1799,17 +1830,6 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done -# Add permission files for logger -%if %{with permission} -mkdir -p %{buildroot}%{_sysconfdir}/permissions.d -cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF' - %{_localstatedir}/log/journal/ root:systemd-journal 2755 -EOF -cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF' - %{_localstatedir}/log/journal/ root:systemd-journal 2755 -EOF -%endif - %find_lang systemd %pre @@ -1983,7 +2003,7 @@ fi %if %{with permission} %verifyscript logger -%verify_permissions -e %{_localstatedir}/log/journal +%verify_permissions -e %{_localstatedir}/log/journal/ %endif %pre logger @@ -1992,7 +2012,7 @@ exit 0 %post logger %if %{with permission} -%set_permissions %{_localstatedir}/log/journal +%set_permissions %{_localstatedir}/log/journal/ %endif getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : @@ -2011,7 +2031,7 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -2395,11 +2415,7 @@ exit 0 %files logger %defattr(-,root,root) -%if %{with permission} -%config %{_sysconfdir}/permissions.d/systemd-logger -%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid -%endif -%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal +%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ %{_localstatedir}/log/README /etc/init.d/systemd-journald From 45fa941854ac341ca52fc1beada022ddbfc40f440a14f488c12941ab754e2eed Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 31 Jul 2014 19:49:13 +0000 Subject: [PATCH 192/221] Accepting request 243103 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/243103 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=197 --- ...cripts-which-provide-network-before-.patch | 34 ++ ...ophone-mute-keymap-for-Dell-Latitude.patch | 38 ++ ...map-Annotate-all-micmute-workarounds.patch | 54 ++ ...aa13539ed2cd4b31972cd30f678543-apply.patch | 26 + ...add-event-timeout-commandline-option.patch | 119 +++++ 1057-udev-unify-event-timeout-handling.patch | 504 ++++++++++++++++++ 1058-udev-unify-event-timeout-handling.patch | 504 ++++++++++++++++++ ...t-dd5eddd28a74a49607a8fffcaf960040db.patch | 26 + ...r-target-name-for-btrfs-device-ready.patch | 43 ++ systemd-mini.changes | 50 ++ systemd-mini.spec | 37 ++ systemd.changes | 50 ++ systemd.spec | 37 ++ tomcat6-var-lock-subsys-legacy.patch | 18 + tty-ask-password-agent-on-console.patch | 285 ++++++++++ 15 files changed, 1825 insertions(+) create mode 100644 0001-sysv-order-initscripts-which-provide-network-before-.patch create mode 100644 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch create mode 100644 0003-keymap-Annotate-all-micmute-workarounds.patch create mode 100644 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch create mode 100644 1056-udevd-add-event-timeout-commandline-option.patch create mode 100644 1057-udev-unify-event-timeout-handling.patch create mode 100644 1058-udev-unify-event-timeout-handling.patch create mode 100644 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch create mode 100644 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch create mode 100644 tomcat6-var-lock-subsys-legacy.patch create mode 100644 tty-ask-password-agent-on-console.patch diff --git a/0001-sysv-order-initscripts-which-provide-network-before-.patch b/0001-sysv-order-initscripts-which-provide-network-before-.patch new file mode 100644 index 00000000..944b9158 --- /dev/null +++ b/0001-sysv-order-initscripts-which-provide-network-before-.patch @@ -0,0 +1,34 @@ +Based on 805b573fad06b845502e76f3db3a0efa7583149d Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 23 Jul 2014 12:49:14 +0200 +Subject: [PATCH] sysv: order initscripts which provide $network before + network.target + +Due to recent changes where $network "maps" to network-online.target +it is not guaranteed that initscript which provides networking will +be terminated after network.target during shutdown which is against LSB. +--- + src/core/service.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/core/service.c ++++ src/core/service.c 2014-07-30 11:27:16.074235995 +0000 +@@ -820,7 +820,7 @@ static int service_load_sysv_path(Servic + + if (unit_name_to_type(m) == UNIT_SERVICE) + r = unit_merge_by_name(u, m); +- else ++ else { + /* NB: SysV targets + * which are provided + * by a service are +@@ -835,6 +835,9 @@ static int service_load_sysv_path(Servic + * in the SysV + * services! */ + r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, UNIT_WANTS, m, NULL, true); ++ if (r >= 0 && streq(m, SPECIAL_NETWORK_ONLINE_TARGET)) ++ r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_NETWORK_TARGET, NULL, true); ++ } + + if (r < 0) + log_error_unit(u->id, diff --git a/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch b/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch new file mode 100644 index 00000000..7ba1dc4d --- /dev/null +++ b/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch @@ -0,0 +1,38 @@ +From 1f6d36f267186c0e3184bab4c7eca48481c6faab Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Wed, 30 Jul 2014 16:09:08 +0800 +Subject: [PATCH] keymap: Add microphone mute keymap for Dell Latitude + +On the Dell Latitude, the mic mute key event is generated by wmi +driver, the keycode assigned to this hotkey from kernel is +KEY_MICMUTE (248), this keycode is too big for xorg to handle, +in the xorg, the XF86AudioMicMute is assigned to F20. + +Please refer to 4e648ea0 of xkeyboard-config. + +BugLink: https://bugs.launchpad.net/bugs/1326684 +BugLink: https://bugs.launchpad.net/bugs/1339998 +Signed-off-by: Hui Wang +Signed-off-by: Martin Pitt +--- + hwdb/60-keyboard.hwdb | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index c7ff4e4..70e372b 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -229,6 +229,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + KEYBOARD_KEY_8c=!unknown + ++# Dell Latitude microphone mute ++keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* ++ KEYBOARD_KEY_150=f20 # Mic mute toggle ++ + ########################################################### + # Everex + ########################################################### +-- +1.7.9.2 + diff --git a/0003-keymap-Annotate-all-micmute-workarounds.patch b/0003-keymap-Annotate-all-micmute-workarounds.patch new file mode 100644 index 00000000..00f1e431 --- /dev/null +++ b/0003-keymap-Annotate-all-micmute-workarounds.patch @@ -0,0 +1,54 @@ +From d946bb53f94713241004810de92cc37f1e19c2d2 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Wed, 30 Jul 2014 10:54:23 +0200 +Subject: [PATCH] keymap: Annotate all micmute workarounds + +Add a comment to all assignments to f20 that this actually should be "micmute" +in a future when we aren't limited by X.org's key code limiations any more. +--- + hwdb/60-keyboard.hwdb | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 70e372b..cbbbf2c 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -231,7 +231,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + + # Dell Latitude microphone mute + keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* +- KEYBOARD_KEY_150=f20 # Mic mute toggle ++ KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute + + ########################################################### + # Everex +@@ -505,7 +505,7 @@ keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* + KEYBOARD_KEY_15=volumedown + KEYBOARD_KEY_16=mute + KEYBOARD_KEY_17=prog1 +- KEYBOARD_KEY_1a=f20 ++ KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute + + # ThinkPad Keyboard with TrackPoint + keyboard:usb:v17EFp6009* +@@ -573,7 +573,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr* + + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr* + KEYBOARD_KEY_f1=f21 +- KEYBOARD_KEY_ce=f20 ++ KEYBOARD_KEY_ce=f20 # micmute + + keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* + KEYBOARD_KEY_a0=!mute +@@ -809,7 +809,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:* + KEYBOARD_KEY_f3=f17 + KEYBOARD_KEY_f2=f18 + KEYBOARD_KEY_f1=f19 +- KEYBOARD_KEY_f0=f20 ++ KEYBOARD_KEY_f0=f20 # micmute + KEYBOARD_KEY_ef=f21 + KEYBOARD_KEY_ee=chat + KEYBOARD_KEY_e4=chat +-- +1.7.9.2 + diff --git a/1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch b/1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch new file mode 100644 index 00000000..8a108af0 --- /dev/null +++ b/1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch @@ -0,0 +1,26 @@ +Exist only to be able to apply the patch +1056-udevd-add-event-timeout-commandline-option.patch +without the BLKRRPART ioctl patches. + +--- systemd-210/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c 2014-07-30 11:52:34.318235685 +0000 +@@ -1311,16 +1311,16 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { + log_error("worker [%u] %s timeout; kill it", worker->pid, + worker->event ? worker->event->devpath : ""); + kill(worker->pid, SIGKILL); + worker->state = WORKER_KILLED; ++ + /* drop reference taken for state 'running' */ + worker_unref(worker); + if (worker->event) { +- log_error("seq %llu '%s' killed", +- udev_device_get_seqnum(worker->event->dev), worker->event->devpath); ++ 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; diff --git a/1056-udevd-add-event-timeout-commandline-option.patch b/1056-udevd-add-event-timeout-commandline-option.patch new file mode 100644 index 00000000..1f670688 --- /dev/null +++ b/1056-udevd-add-event-timeout-commandline-option.patch @@ -0,0 +1,119 @@ +From 9719859c07aa13539ed2cd4b31972cd30f678543 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Tue, 29 Jul 2014 09:06:14 +0200 +Subject: [PATCH] udevd: add --event-timeout commandline option + +Some events take longer than the default 30 seconds. Killing those +events will leave the machine halfway configured. + +Add a commandline option '--event-timeout' to handle these cases. +--- + man/systemd-udevd.service.xml | 19 +++++++++++++++++++ + src/udev/udevd.c | 12 +++++++++++- + 2 files changed, 30 insertions(+), 1 deletion(-) + +diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml +index f44b7a0..8de43b1 100644 +--- man/systemd-udevd.service.xml ++++ man/systemd-udevd.service.xml +@@ -44,6 +44,7 @@ + + + ++ + + + +@@ -96,6 +97,15 @@ + + + ++ ++ ++ Wait for the event to finish up to the given ++ number of seconds. After this time the event will ++ be terminated. Default is 30. ++ ++ ++ ++ + + + Specify when systemd-udevd should resolve names of users and groups. +@@ -156,6 +166,15 @@ + + + ++ udev.event-timeout= ++ rd.udev.event-timeout= ++ ++ Wait for events to finish up to the given number ++ of seconds. This option might be useful if events are ++ terminated due to a timeout in large configurations. ++ ++ ++ + net.ifnames= + + Network interfaces are renamed to give them predictable names +diff --git src/udev/udevd.c src/udev/udevd.c +index db935d6..c5dd739 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -74,6 +74,7 @@ static bool reload; + static int children; + static int children_max; + static int exec_delay; ++static int event_timeout = 30; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -312,6 +313,9 @@ static void worker_new(struct event *event) + } + } + ++ if (event_timeout != 30) ++ udev_event->timeout_usec = event_timeout * USEC_PER_SEC; ++ + /* apply rules, create node, symlinks */ + udev_event_execute_rules(udev_event, rules, &sigmask_orig); + +@@ -1009,6 +1013,8 @@ static void kernel_cmdline_options(struct udev *udev) + children_max = strtoul(opt + 18, NULL, 0); + } else if (startswith(opt, "udev.exec-delay=")) { + exec_delay = strtoul(opt + 16, NULL, 0); ++ } else if (startswith(opt, "udev.event-timeout=")) { ++ event_timeout = strtoul(opt + 16, NULL, 0); + } + + free(s); +@@ -1026,6 +1032,7 @@ int main(int argc, char *argv[]) + { "debug", no_argument, NULL, 'D' }, + { "children-max", required_argument, NULL, 'c' }, + { "exec-delay", required_argument, NULL, 'e' }, ++ { "event-timeout", required_argument, NULL, 't' }, + { "resolve-names", required_argument, NULL, 'N' }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'V' }, +@@ -1069,6 +1076,9 @@ int main(int argc, char *argv[]) + case 'e': + exec_delay = strtoul(optarg, NULL, 0); + break; ++ case 't': ++ event_timeout = strtoul(optarg, NULL, 0); ++ break; + case 'D': + debug = true; + log_set_max_level(LOG_DEBUG); +@@ -1406,7 +1416,7 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { ++ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { + log_error("worker [%u] %s timeout; kill it", worker->pid, + worker->event ? worker->event->devpath : ""); + kill(worker->pid, SIGKILL); +-- +1.7.9.2 + diff --git a/1057-udev-unify-event-timeout-handling.patch b/1057-udev-unify-event-timeout-handling.patch new file mode 100644 index 00000000..9aa819b6 --- /dev/null +++ b/1057-udev-unify-event-timeout-handling.patch @@ -0,0 +1,504 @@ +From dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 29 Jul 2014 15:18:27 +0200 +Subject: [PATCH] udev: unify event timeout handling + +--- + man/systemd-udevd.service.xml | 7 +++--- + man/udev.xml | 7 ------ + src/test/test-udev.c | 5 ++-- + src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- + src/udev/udev-rules.c | 38 ++++++++--------------------- + src/udev/udev.h | 8 +++---- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 32 ++++++++++--------------- + 8 files changed, 61 insertions(+), 91 deletions(-) + +diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml +index 8de43b1..3053dc7 100644 +--- man/systemd-udevd.service.xml ++++ man/systemd-udevd.service.xml +@@ -99,9 +99,8 @@ + + + +- Wait for the event to finish up to the given +- number of seconds. After this time the event will +- be terminated. Default is 30. ++ Set the number of seconds to wait for events to finish. After ++ this time the event will be terminated. The default is 30 seconds. + + + +@@ -171,7 +170,7 @@ + + Wait for events to finish up to the given number + of seconds. This option might be useful if events are +- terminated due to a timeout in large configurations. ++ terminated due to kernel drivers taking too long to initialize. + + + +diff --git man/udev.xml man/udev.xml +index 4e5f8f0..123c073 100644 +--- man/udev.xml ++++ man/udev.xml +@@ -516,13 +516,6 @@ + + + +- +- +- Number of seconds an event waits for operations to finish before +- giving up and terminating itself. +- +- +- + + + Usually control and other possibly unsafe characters are replaced +diff --git src/test/test-udev.c src/test/test-udev.c +index b057cc8..26d6537 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -80,7 +80,6 @@ out: + return err; + } + +- + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_event_unref_ struct udev_event *event = NULL; +@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { + } + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); +- udev_event_execute_run(event, NULL); ++ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) + udev_list_init(udev, &event->seclabel_list, false); + event->fd_signal = -1; + event->birth_usec = now(CLOCK_MONOTONIC); +- event->timeout_usec = 30 * 1000 * 1000; + return event; + } + +@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, + } + + static void spawn_read(struct udev_event *event, +- const char *cmd, +- int fd_stdout, int fd_stderr, +- char *result, size_t ressize) ++ usec_t timeout_usec, ++ const char *cmd, ++ int fd_stdout, int fd_stderr, ++ char *result, size_t ressize) + { + size_t respos = 0; + int fd_ep = -1; +@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, + struct epoll_event ev[4]; + int i; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) { ++ if (age_usec >= timeout_usec) { + log_error("timeout '%s'", cmd); + goto out; + } +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -543,8 +543,9 @@ out: + close(fd_ep); + } + +-static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) +-{ ++static int spawn_wait(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *cmd, pid_t pid) { + struct pollfd pfd[1]; + int err = 0; + +@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) + int timeout; + int fdcount; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) ++ if (age_usec >= timeout_usec) + timeout = 1000; + else +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -657,9 +658,9 @@ out: + } + + int udev_event_spawn(struct udev_event *event, ++ usec_t timeout_usec, + const char *cmd, char **envp, const sigset_t *sigmask, +- char *result, size_t ressize) +-{ ++ char *result, size_t ressize) { + struct udev *udev = event->udev; + int outpipe[2] = {-1, -1}; + int errpipe[2] = {-1, -1}; +@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, + errpipe[WRITE_END] = -1; + } + +- spawn_read(event, cmd, +- outpipe[READ_END], errpipe[READ_END], +- result, ressize); ++ spawn_read(event, ++ timeout_usec, ++ cmd, ++ outpipe[READ_END], errpipe[READ_END], ++ result, ressize); + +- err = spawn_wait(event, cmd, pid); ++ err = spawn_wait(event, timeout_usec, cmd, pid); + } + + out: +@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) + return r; + } + +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) +-{ ++void udev_event_execute_rules(struct udev_event *event, ++ usec_t timeout_usec, ++ struct udev_rules *rules, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + + if (udev_device_get_subsystem(dev) == NULL) +@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + if (major(udev_device_get_devnum(dev)) != 0) + udev_watch_end(event->udev, dev); + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); +@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + udev_watch_end(event->udev, event->dev_db); + } + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + /* rename a new network interface, if needed */ + if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && +@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + } + } + +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) +-{ ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { + struct udev_list_entry *list_entry; + + udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { +@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) + + udev_event_apply_format(event, cmd, program, sizeof(program)); + envp = udev_device_get_properties_envp(event->dev); +- udev_event_spawn(event, program, envp, sigmask, NULL, 0); ++ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); + } + } + } +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 9864016..aacde38 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -137,7 +137,6 @@ enum token_type { + TK_M_PARENTS_MAX, + + TK_M_TEST, /* val, mode_t */ +- TK_M_EVENT_TIMEOUT, /* int */ + TK_M_PROGRAM, /* val */ + TK_M_IMPORT_FILE, /* val */ + TK_M_IMPORT_PROG, /* val */ +@@ -201,7 +200,6 @@ struct token { + uid_t uid; + gid_t gid; + int devlink_prio; +- int event_timeout; + int watch; + enum udev_builtin_cmd builtin_cmd; + }; +@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) + [TK_M_PARENTS_MAX] = "M PARENTS_MAX", + + [TK_M_TEST] = "M TEST", +- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", + [TK_M_PROGRAM] = "M PROGRAM", + [TK_M_IMPORT_FILE] = "M IMPORT_FILE", + [TK_M_IMPORT_PROG] = "M IMPORT_PROG", +@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) + case TK_A_SECLABEL: + log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); + break; +- case TK_M_EVENT_TIMEOUT: +- log_debug("%s %u", token_str(type), token->key.event_timeout); +- break; + case TK_A_GOTO: + log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); + break; +@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file + return 0; + } + +-static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) +-{ ++static int import_program_into_properties(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *program, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + char **envp; + char result[UTIL_LINE_SIZE]; +@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * + int err; + + envp = udev_device_get_properties_envp(dev); +- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); ++ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); + if (err < 0) + return err; + +@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, + case TK_A_MODE_ID: + token->key.mode = *(mode_t *)data; + break; +- case TK_M_EVENT_TIMEOUT: +- token->key.event_timeout = *(int *)data; +- break; + case TK_RULE: + case TK_M_PARENTS_MIN: + case TK_M_PARENTS_MAX: +@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, + rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); + } + +- pos = strstr(value, "event_timeout="); +- if (pos != NULL) { +- int tout = atoi(&pos[strlen("event_timeout=")]); +- +- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); +- } +- +- pos = strstr(value, "string_escape="); + if (pos != NULL) { + pos = &pos[strlen("string_escape=")]; + if (startswith(pos, "none")) +@@ -1829,8 +1813,10 @@ enum escape_type { + ESCAPE_REPLACE, + }; + +-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) +-{ ++int udev_rules_apply_to_event(struct udev_rules *rules, ++ struct udev_event *event, ++ usec_t timeout_usec, ++ const sigset_t *sigmask) { + struct token *cur; + struct token *rule; + enum escape_type esc = ESCAPE_UNSET; +@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + goto nomatch; + break; + } +- case TK_M_EVENT_TIMEOUT: +- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); +- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; +- break; + case TK_M_PROGRAM: { + char program[UTIL_PATH_SIZE]; + char **envp; +@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { ++ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { + if (cur->key.op != OP_NOMATCH) + goto nomatch; + } else { +@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (import_program_into_properties(event, import, sigmask) != 0) ++ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) + if (cur->key.op != OP_NOMATCH) + goto nomatch; + break; +diff --git src/udev/udev.h src/udev/udev.h +index 62538bc..4aca70b 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -43,7 +43,6 @@ struct udev_event { + struct udev_list run_list; + int exec_delay; + usec_t birth_usec; +- usec_t timeout_usec; + int fd_signal; + unsigned int builtin_run; + unsigned int builtin_ret; +@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); ++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_static_dev_perms(struct udev_rules *rules); + + /* udev-event.c */ +@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * + 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, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); ++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); + 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 6a2f548..52cc26c 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + goto out; + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 30 * 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)); +diff --git src/udev/udevd.c src/udev/udevd.c +index c5dd739..dee7a87 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 int event_timeout = 30; ++static usec_t event_timeout_usec = 30 * USEC_PER_SEC; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -313,13 +313,10 @@ static void worker_new(struct event *event) + } + } + +- if (event_timeout != 30) +- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; +- + /* apply rules, create node, symlinks */ +- udev_event_execute_rules(udev_event, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); + +- udev_event_execute_run(udev_event, &sigmask_orig); ++ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); + + /* apply/restore inotify watch */ + if (udev_event->inotify_watch) { +@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) + } else if (startswith(opt, "udev.exec-delay=")) { + exec_delay = strtoul(opt + 16, NULL, 0); + } else if (startswith(opt, "udev.event-timeout=")) { +- event_timeout = strtoul(opt + 16, NULL, 0); ++ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; + } + + free(s); + } + } + +-int main(int argc, char *argv[]) +-{ ++int main(int argc, char *argv[]) { + struct udev *udev; + sigset_t mask; + int daemonize = false; +@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) + exec_delay = strtoul(optarg, NULL, 0); + break; + case 't': +- event_timeout = strtoul(optarg, NULL, 0); ++ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; + break; + case 'D': + debug = true; +@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) + " --debug\n" + " --children-max=\n" + " --exec-delay=\n" ++ " --event-timeout=\n" + " --resolve-names=early|late|never\n" + " --version\n" + " --help\n" +@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { +- log_error("worker [%u] %s timeout; kill it", worker->pid, +- worker->event ? worker->event->devpath : ""); ++ 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); +- if (worker->event) { +- 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; +- } ++ 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; + } + } + +-- +1.7.9.2 + diff --git a/1058-udev-unify-event-timeout-handling.patch b/1058-udev-unify-event-timeout-handling.patch new file mode 100644 index 00000000..a92d15f7 --- /dev/null +++ b/1058-udev-unify-event-timeout-handling.patch @@ -0,0 +1,504 @@ +Based on dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 29 Jul 2014 15:18:27 +0200 +Subject: [PATCH] udev: unify event timeout handling + +--- + man/systemd-udevd.service.xml | 7 +++--- + man/udev.xml | 7 ------ + src/test/test-udev.c | 5 ++-- + src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- + src/udev/udev-rules.c | 38 ++++++++--------------------- + src/udev/udev.h | 8 +++---- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 32 ++++++++++--------------- + 8 files changed, 61 insertions(+), 91 deletions(-) + +diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml +index 8de43b1..3053dc7 100644 +--- man/systemd-udevd.service.xml ++++ man/systemd-udevd.service.xml +@@ -99,9 +99,8 @@ + + + +- Wait for the event to finish up to the given +- number of seconds. After this time the event will +- be terminated. Default is 30. ++ Set the number of seconds to wait for events to finish. After ++ this time the event will be terminated. The default is 30 seconds. + + + +@@ -171,7 +170,7 @@ + + Wait for events to finish up to the given number + of seconds. This option might be useful if events are +- terminated due to a timeout in large configurations. ++ terminated due to kernel drivers taking too long to initialize. + + + +diff --git man/udev.xml man/udev.xml +index 4e5f8f0..123c073 100644 +--- man/udev.xml ++++ man/udev.xml +@@ -516,13 +516,6 @@ + + + +- +- +- Number of seconds an event waits for operations to finish before +- giving up and terminating itself. +- +- +- + + + Usually control and other possibly unsafe characters are replaced +diff --git src/test/test-udev.c src/test/test-udev.c +index b057cc8..26d6537 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -80,7 +80,6 @@ out: + return err; + } + +- + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_event_unref_ struct udev_event *event = NULL; +@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { + } + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); +- udev_event_execute_run(event, NULL); ++ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) + udev_list_init(udev, &event->seclabel_list, false); + event->fd_signal = -1; + event->birth_usec = now(CLOCK_MONOTONIC); +- event->timeout_usec = 30 * 1000 * 1000; + return event; + } + +@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, + } + + static void spawn_read(struct udev_event *event, +- const char *cmd, +- int fd_stdout, int fd_stderr, +- char *result, size_t ressize) ++ usec_t timeout_usec, ++ const char *cmd, ++ int fd_stdout, int fd_stderr, ++ char *result, size_t ressize) + { + size_t respos = 0; + int fd_ep = -1; +@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, + struct epoll_event ev[4]; + int i; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) { ++ if (age_usec >= timeout_usec) { + log_error("timeout '%s'", cmd); + goto out; + } +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -543,8 +543,9 @@ out: + close(fd_ep); + } + +-static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) +-{ ++static int spawn_wait(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *cmd, pid_t pid) { + struct pollfd pfd[1]; + int err = 0; + +@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) + int timeout; + int fdcount; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) ++ if (age_usec >= timeout_usec) + timeout = 1000; + else +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -657,9 +658,9 @@ out: + } + + int udev_event_spawn(struct udev_event *event, ++ usec_t timeout_usec, + const char *cmd, char **envp, const sigset_t *sigmask, +- char *result, size_t ressize) +-{ ++ char *result, size_t ressize) { + struct udev *udev = event->udev; + int outpipe[2] = {-1, -1}; + int errpipe[2] = {-1, -1}; +@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, + errpipe[WRITE_END] = -1; + } + +- spawn_read(event, cmd, +- outpipe[READ_END], errpipe[READ_END], +- result, ressize); ++ spawn_read(event, ++ timeout_usec, ++ cmd, ++ outpipe[READ_END], errpipe[READ_END], ++ result, ressize); + +- err = spawn_wait(event, cmd, pid); ++ err = spawn_wait(event, timeout_usec, cmd, pid); + } + + out: +@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) + return r; + } + +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) +-{ ++void udev_event_execute_rules(struct udev_event *event, ++ usec_t timeout_usec, ++ struct udev_rules *rules, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + + if (udev_device_get_subsystem(dev) == NULL) +@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + if (major(udev_device_get_devnum(dev)) != 0) + udev_watch_end(event->udev, dev); + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); +@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + udev_watch_end(event->udev, event->dev_db); + } + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + /* rename a new network interface, if needed */ + if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && +@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + } + } + +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) +-{ ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { + struct udev_list_entry *list_entry; + + udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { +@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) + + udev_event_apply_format(event, cmd, program, sizeof(program)); + envp = udev_device_get_properties_envp(event->dev); +- udev_event_spawn(event, program, envp, sigmask, NULL, 0); ++ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); + } + } + } +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 9864016..aacde38 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -137,7 +137,6 @@ enum token_type { + TK_M_PARENTS_MAX, + + TK_M_TEST, /* val, mode_t */ +- TK_M_EVENT_TIMEOUT, /* int */ + TK_M_PROGRAM, /* val */ + TK_M_IMPORT_FILE, /* val */ + TK_M_IMPORT_PROG, /* val */ +@@ -201,7 +200,6 @@ struct token { + uid_t uid; + gid_t gid; + int devlink_prio; +- int event_timeout; + int watch; + enum udev_builtin_cmd builtin_cmd; + }; +@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) + [TK_M_PARENTS_MAX] = "M PARENTS_MAX", + + [TK_M_TEST] = "M TEST", +- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", + [TK_M_PROGRAM] = "M PROGRAM", + [TK_M_IMPORT_FILE] = "M IMPORT_FILE", + [TK_M_IMPORT_PROG] = "M IMPORT_PROG", +@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) + case TK_A_SECLABEL: + log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); + break; +- case TK_M_EVENT_TIMEOUT: +- log_debug("%s %u", token_str(type), token->key.event_timeout); +- break; + case TK_A_GOTO: + log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); + break; +@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file + return 0; + } + +-static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) +-{ ++static int import_program_into_properties(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *program, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + char **envp; + char result[UTIL_LINE_SIZE]; +@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * + int err; + + envp = udev_device_get_properties_envp(dev); +- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); ++ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); + if (err < 0) + return err; + +@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, + case TK_A_MODE_ID: + token->key.mode = *(mode_t *)data; + break; +- case TK_M_EVENT_TIMEOUT: +- token->key.event_timeout = *(int *)data; +- break; + case TK_RULE: + case TK_M_PARENTS_MIN: + case TK_M_PARENTS_MAX: +@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, + rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); + } + +- pos = strstr(value, "event_timeout="); +- if (pos != NULL) { +- int tout = atoi(&pos[strlen("event_timeout=")]); +- +- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); +- } +- +- pos = strstr(value, "string_escape="); + if (pos != NULL) { + pos = &pos[strlen("string_escape=")]; + if (startswith(pos, "none")) +@@ -1829,8 +1813,10 @@ enum escape_type { + ESCAPE_REPLACE, + }; + +-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) +-{ ++int udev_rules_apply_to_event(struct udev_rules *rules, ++ struct udev_event *event, ++ usec_t timeout_usec, ++ const sigset_t *sigmask) { + struct token *cur; + struct token *rule; + enum escape_type esc = ESCAPE_UNSET; +@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + goto nomatch; + break; + } +- case TK_M_EVENT_TIMEOUT: +- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); +- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; +- break; + case TK_M_PROGRAM: { + char program[UTIL_PATH_SIZE]; + char **envp; +@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { ++ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { + if (cur->key.op != OP_NOMATCH) + goto nomatch; + } else { +@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (import_program_into_properties(event, import, sigmask) != 0) ++ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) + if (cur->key.op != OP_NOMATCH) + goto nomatch; + break; +diff --git src/udev/udev.h src/udev/udev.h +index 62538bc..4aca70b 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -43,7 +43,6 @@ struct udev_event { + struct udev_list run_list; + int exec_delay; + usec_t birth_usec; +- usec_t timeout_usec; + int fd_signal; + unsigned int builtin_run; + unsigned int builtin_ret; +@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); ++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_static_dev_perms(struct udev_rules *rules); + + /* udev-event.c */ +@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * + 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, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); ++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); + 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 6a2f548..52cc26c 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + goto out; + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 30 * 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)); +diff --git src/udev/udevd.c src/udev/udevd.c +index c5dd739..dee7a87 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 int event_timeout = 30; ++static usec_t event_timeout_usec = 30 * USEC_PER_SEC; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -313,13 +313,10 @@ static void worker_new(struct event *event) + } + } + +- if (event_timeout != 30) +- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; +- + /* apply rules, create node, symlinks */ +- udev_event_execute_rules(udev_event, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); + +- udev_event_execute_run(udev_event, &sigmask_orig); ++ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); + + /* apply/restore inotify watch */ + if (udev_event->inotify_watch) { +@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) + } else if (startswith(opt, "udev.exec-delay=")) { + exec_delay = strtoul(opt + 16, NULL, 0); + } else if (startswith(opt, "udev.event-timeout=")) { +- event_timeout = strtoul(opt + 16, NULL, 0); ++ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; + } + + free(s); + } + } + +-int main(int argc, char *argv[]) +-{ ++int main(int argc, char *argv[]) { + struct udev *udev; + sigset_t mask; + int daemonize = false; +@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) + exec_delay = strtoul(optarg, NULL, 0); + break; + case 't': +- event_timeout = strtoul(optarg, NULL, 0); ++ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; + break; + case 'D': + debug = true; +@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) + " --debug\n" + " --children-max=\n" + " --exec-delay=\n" ++ " --event-timeout=\n" + " --resolve-names=early|late|never\n" + " --version\n" + " --help\n" +@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { +- log_error("worker [%u] %s timeout; kill it", worker->pid, +- worker->event ? worker->event->devpath : ""); ++ 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); +- if (worker->event) { +- 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; +- } ++ 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; + } + } + +-- +1.7.9.2 + diff --git a/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch b/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch new file mode 100644 index 00000000..62d5d665 --- /dev/null +++ b/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch @@ -0,0 +1,26 @@ +From 9f20a8a376f924c8eb5423cfc1f98644fc1e2d1a Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Wed, 30 Jul 2014 10:10:46 +0200 +Subject: [PATCH] udev: fixup commit dd5eddd28a74a49607a8fffcaf960040dba98479 + +Commit dd5eddd28a74a49607a8fffcaf960040dba98479 accidentally +removed one line too many. +--- + src/udev/udev-rules.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 59bc124..cc56215 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -1436,6 +1436,7 @@ static int add_rule(struct udev_rules *rules, char *line, + rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); + } + ++ pos = strstr(value, "string_escape="); + if (pos != NULL) { + pos = &pos[strlen("string_escape=")]; + if (startswith(pos, "none")) +-- +1.7.9.2 + diff --git a/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch b/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch new file mode 100644 index 00000000..862afa48 --- /dev/null +++ b/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch @@ -0,0 +1,43 @@ +From: Jeff Mahoney +Subject: udev: use device mapper target name for btrfs device ready +References: bnc#888215 + +When udev gets a change event for a block device, it calls the builtin +btrfs helper to scan it for a btrfs file system. If the file system was +mounted using a device mapper node, mount(8) will have looked up the +device mapper table and used the /dev/mapper/ node for mount. + +If something like partprobe runs, and then causes change events to be +handled, the btrfs ready event is handled using /dev/dm-N instead of +the device mapper named node. Btrfs caches the last name passed to +the scanning ioctl and uses that to report the device name for +things like /proc/mounts. + +So, after running partprobe we go from: +/dev/mapper/test-test on /mnt type btrfs (rw,relatime,space_cache) +... to ... +/dev/dm-0 on /mnt type btrfs (rw,relatime,space_cache) + +This doesn't apply only to LVM device, but multipath as well. + +If the device is a DM device, udev will have already cached the table name +from sysfs and we can use that to pass /dev/mapper/ to the builtin +so that the correct name is used. + +Signed-off-by: Jeff Mahoney +--- + rules/64-btrfs.rules | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/rules/64-btrfs.rules ++++ b/rules/64-btrfs.rules +@@ -6,7 +6,8 @@ ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_en + ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end" + + # let the kernel know about this btrfs filesystem, and check if it is complete +-IMPORT{builtin}="btrfs ready $devnode" ++ENV{DM_NAME}=="", IMPORT{builtin}="btrfs ready $devnode" ++ENV{DM_NAME}=="?*", IMPORT{builtin}="btrfs ready /dev/mapper/$env{DM_NAME}" + + # mark the device as not ready to be used by the system + ENV{ID_BTRFS_READY}=="0", ENV{SYSTEMD_READY}="0" diff --git a/systemd-mini.changes b/systemd-mini.changes index f4d2a66b..04737d6e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Thu Jul 31 07:55:47 UTC 2014 - rmilasan@suse.com + +- Rename: + udev-use-device-mapper-target-name-for-btrfs-device-ready.patch + to + 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch + +------------------------------------------------------------------- +Wed Jul 30 21:10:21 UTC 2014 - jeffm@suse.com + +- udev: use device mapper target name for btrfs device ready (bnc#888215). +- Add udev-use-device-mapper-target-name-for-btrfs-device-ready.patch + +------------------------------------------------------------------- +Wed Jul 30 12:53:07 UTC 2014 - werner@suse.de + +- Add patch tomcat6-var-lock-subsys-legacy.patch to add the + compatibility directory /var/lock/subsys (bnc#889357) + +------------------------------------------------------------------- +Wed Jul 30 11:45:21 UTC 2014 - werner@suse.de + +- Add portabiltiy patch + 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch + +------------------------------------------------------------------- +Wed Jul 30 11:32:23 UTC 2014 - werner@suse.de + +- Port and add upstream patch + 0001-sysv-order-initscripts-which-provide-network-before-.patch + 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch + 0003-keymap-Annotate-all-micmute-workarounds.patch + +------------------------------------------------------------------- +Wed Jul 30 11:10:34 UTC 2014 - werner@suse.de + +- Add patch tty-ask-password-agent-on-console.patch that is for system + console do ask passphrases on all devices of the console (bnc#886211) + +------------------------------------------------------------------- +Wed Jul 30 11:02:27 UTC 2014 - werner@suse.de + +- Add former SUSE and/now upstream patches (bnc#889297) + 1056-udevd-add-event-timeout-commandline-option.patch + 1057-udev-unify-event-timeout-handling.patch + 1058-udev-unify-event-timeout-handling.patch (backport for + compatibility if patch 1022 is not applied) + 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch + ------------------------------------------------------------------- Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 24ae5099..687f6ba4 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -749,6 +749,16 @@ Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch # PATCH-FIX-UPSTREAM added at 2014/07/28 Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch +# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console +Patch362: tty-ask-password-agent-on-console.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch +# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) +Patch366: tomcat6-var-lock-subsys-legacy.patch # UDEV PATCHES # ============ @@ -864,6 +874,18 @@ Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch Patch1053: 1053-better-checks-in-write_net_rules.patch # PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +# PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch +Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch +# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch +Patch1057: 1057-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch +Patch1058: 1058-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +# PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1384,6 +1406,11 @@ cp %{SOURCE7} m4/ %patch359 -p0 %patch360 -p0 %patch361 -p0 +%patch362 -p1 +%patch363 -p0 +%patch364 -p0 +%patch365 -p0 +%patch366 -p1 # udev patches %patch1001 -p1 @@ -1456,7 +1483,17 @@ cp %{SOURCE7} m4/ %patch1053 -p1 %if %{with blkrrpart} %patch1054 -p0 +%else +%patch1055 -p1 %endif +%patch1056 -p0 +%if %{with udevsettle} +%patch1057 -p0 +%else +%patch1058 -p0 +%endif +%patch1059 -p0 +%patch1060 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index f4d2a66b..04737d6e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Thu Jul 31 07:55:47 UTC 2014 - rmilasan@suse.com + +- Rename: + udev-use-device-mapper-target-name-for-btrfs-device-ready.patch + to + 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch + +------------------------------------------------------------------- +Wed Jul 30 21:10:21 UTC 2014 - jeffm@suse.com + +- udev: use device mapper target name for btrfs device ready (bnc#888215). +- Add udev-use-device-mapper-target-name-for-btrfs-device-ready.patch + +------------------------------------------------------------------- +Wed Jul 30 12:53:07 UTC 2014 - werner@suse.de + +- Add patch tomcat6-var-lock-subsys-legacy.patch to add the + compatibility directory /var/lock/subsys (bnc#889357) + +------------------------------------------------------------------- +Wed Jul 30 11:45:21 UTC 2014 - werner@suse.de + +- Add portabiltiy patch + 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch + +------------------------------------------------------------------- +Wed Jul 30 11:32:23 UTC 2014 - werner@suse.de + +- Port and add upstream patch + 0001-sysv-order-initscripts-which-provide-network-before-.patch + 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch + 0003-keymap-Annotate-all-micmute-workarounds.patch + +------------------------------------------------------------------- +Wed Jul 30 11:10:34 UTC 2014 - werner@suse.de + +- Add patch tty-ask-password-agent-on-console.patch that is for system + console do ask passphrases on all devices of the console (bnc#886211) + +------------------------------------------------------------------- +Wed Jul 30 11:02:27 UTC 2014 - werner@suse.de + +- Add former SUSE and/now upstream patches (bnc#889297) + 1056-udevd-add-event-timeout-commandline-option.patch + 1057-udev-unify-event-timeout-handling.patch + 1058-udev-unify-event-timeout-handling.patch (backport for + compatibility if patch 1022 is not applied) + 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch + ------------------------------------------------------------------- Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 0031cf2e..88659bfc 100644 --- a/systemd.spec +++ b/systemd.spec @@ -744,6 +744,16 @@ Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch # PATCH-FIX-UPSTREAM added at 2014/07/28 Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch +# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console +Patch362: tty-ask-password-agent-on-console.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch +# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) +Patch366: tomcat6-var-lock-subsys-legacy.patch # UDEV PATCHES # ============ @@ -859,6 +869,18 @@ Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch Patch1053: 1053-better-checks-in-write_net_rules.patch # PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +# PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch +Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch +# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch +Patch1057: 1057-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch +Patch1058: 1058-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +# PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1379,6 +1401,11 @@ cp %{SOURCE7} m4/ %patch359 -p0 %patch360 -p0 %patch361 -p0 +%patch362 -p1 +%patch363 -p0 +%patch364 -p0 +%patch365 -p0 +%patch366 -p1 # udev patches %patch1001 -p1 @@ -1451,7 +1478,17 @@ cp %{SOURCE7} m4/ %patch1053 -p1 %if %{with blkrrpart} %patch1054 -p0 +%else +%patch1055 -p1 %endif +%patch1056 -p0 +%if %{with udevsettle} +%patch1057 -p0 +%else +%patch1058 -p0 +%endif +%patch1059 -p0 +%patch1060 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/tomcat6-var-lock-subsys-legacy.patch b/tomcat6-var-lock-subsys-legacy.patch new file mode 100644 index 00000000..71452e81 --- /dev/null +++ b/tomcat6-var-lock-subsys-legacy.patch @@ -0,0 +1,18 @@ +Provide /run/lock/subsys directory to be able to provide the +/var/lock/subsys via the symbolic link /var/lock (bnc#889357) + +--- + tmpfiles.d/legacy.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- systemd-210/tmpfiles.d/legacy.conf ++++ systemd-210/tmpfiles.d/legacy.conf 2014-07-30 12:36:36.862735670 +0000 +@@ -16,7 +16,7 @@ d /run/lock 0775 root lock - + # /run/lock/subsys is used for serializing SysV service execution, and + # hence without use on SysV-less systems. + +-#d /run/lock/subsys 0755 root root - ++d /run/lock/subsys 0755 root root - + + # /run/lock/lockdev is used to serialize access to tty devices via + # LCK..xxx style lock files, For more information see: diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch new file mode 100644 index 00000000..1091a730 --- /dev/null +++ b/tty-ask-password-agent-on-console.patch @@ -0,0 +1,285 @@ +--- + src/tty-ask-password-agent/tty-ask-password-agent.c | 190 +++++++++++++++++++- + 1 file changed, 185 insertions(+), 5 deletions(-) + +--- systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-30 10:48:43.602052750 +0000 +@@ -28,8 +28,12 @@ + #include + #include + #include ++#include + #include ++#include ++#include + #include ++#include + #include + + #include "util.h" +@@ -41,6 +45,9 @@ + #include "ask-password-api.h" + #include "strv.h" + #include "build.h" ++#include "fileio.h" ++#include "macro.h" ++#include "list.h" + + static enum { + ACTION_LIST, +@@ -49,6 +56,21 @@ static enum { + ACTION_WALL + } arg_action = ACTION_QUERY; + ++struct console { ++ LIST_FIELDS(struct console, handle); ++ char *tty; ++ pid_t pid; ++ int id; ++}; ++ ++static volatile uint32_t *usemask; ++static volatile sig_atomic_t sigchild; ++static void chld_handler(int sig) ++{ ++ (void)sig; ++ sigchild++; ++} ++ + static bool arg_plymouth = false; + static bool arg_console = false; + +@@ -246,12 +268,77 @@ finish: + return r; + } + ++static const char *current_dev = "/dev/console"; ++static LIST_HEAD(struct console, consoles); ++static int collect_consoles(void) { ++ _cleanup_free_ char *active = NULL; ++ char *w, *state; ++ struct console *c; ++ size_t l; ++ int id; ++ int r; ++ ++ r = read_one_line_file("/sys/class/tty/console/active", &active); ++ if (r < 0) ++ return r; ++ ++ id = 0; ++ FOREACH_WORD(w, l, active, state) { ++ _cleanup_free_ char *tty = NULL; ++ ++ if (strneq(w, "tty0", l)) { ++ if (read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { ++ w = tty; ++ l = strlen(tty); ++ } ++ } ++ ++ c = malloc0(sizeof(struct console)+5+l+1); ++ if (!c) { ++ log_oom(); ++ continue; ++ } ++ ++ c->tty = ((char*)c)+sizeof(struct console); ++ stpncpy(stpcpy(c->tty, "/dev/"),w,l); ++ c->id = id++; ++ ++ LIST_PREPEND(handle, consoles, c); ++ } ++ ++ if (!consoles) { ++ ++ c = malloc0(sizeof(struct console)); ++ if (!c) { ++ log_oom(); ++ return -ENOMEM; ++ } ++ ++ c->tty = (char *)current_dev; ++ c->id = id++; ++ ++ LIST_PREPEND(handle, consoles, c); ++ } ++ ++ return 0; ++} ++ ++static void free_consoles(void) { ++ struct console *c; ++ LIST_FOREACH(handle, c, consoles) { ++ LIST_REMOVE(handle, consoles, c); ++ free(c); ++ } ++ LIST_HEAD_INIT(consoles); ++} ++ + static int parse_password(const char *filename, char **wall) { + char *socket_name = NULL, *message = NULL, *packet = NULL; + uint64_t not_after = 0; + unsigned pid = 0; + int socket_fd = -1; + bool accept_cached = false; ++ size_t packet_length = 0; + + const ConfigTableItem items[] = { + { "Ask", "Socket", config_parse_string, 0, &socket_name }, +@@ -323,7 +410,6 @@ static int parse_password(const char *fi + struct sockaddr sa; + struct sockaddr_un un; + } sa = {}; +- size_t packet_length = 0; + + assert(arg_action == ACTION_QUERY || + arg_action == ACTION_WATCH); +@@ -365,7 +451,7 @@ static int parse_password(const char *fi + char *password = NULL; + + if (arg_console) +- if ((tty_fd = acquire_terminal("/dev/console", false, false, false, (usec_t) -1)) < 0) { ++ if ((tty_fd = acquire_terminal(current_dev, false, false, true, (usec_t) -1)) < 0) { + r = tty_fd; + goto finish; + } +@@ -386,6 +472,7 @@ static int parse_password(const char *fi + strcpy(packet+1, password); + } + ++ memset(password, 0, strlen(password)); + free(password); + } + } +@@ -423,6 +510,7 @@ finish: + if (socket_fd >= 0) + close_nointr_nofail(socket_fd); + ++ memset(packet, 0, packet_length); + free(packet); + free(socket_name); + free(message); +@@ -726,8 +814,10 @@ static int parse_argv(int argc, char *ar + } + + int main(int argc, char *argv[]) { ++ int id = 0; + int r; + ++ LIST_HEAD_INIT(consoles); + log_set_target(LOG_TARGET_AUTO); + log_parse_environment(); + log_open(); +@@ -737,11 +827,99 @@ int main(int argc, char *argv[]) { + if ((r = parse_argv(argc, argv)) <= 0) + goto finish; + ++ usemask = (uint32_t*) mmap(NULL, sizeof(uint32_t), PROT_READ|PROT_WRITE, ++ MAP_ANONYMOUS|MAP_SHARED, -1, 0); ++ + if (arg_console) { +- setsid(); +- release_terminal(); +- } ++ if (!arg_plymouth && arg_action != ACTION_WALL && ++ arg_action != ACTION_LIST) { ++ struct console *c; ++ struct sigaction sig = { ++ .sa_handler = chld_handler, ++ .sa_flags = SA_NOCLDSTOP|SA_RESTART, ++ }; ++ struct sigaction oldsig; ++ sigset_t set, oldset; ++ int status = 0; ++ pid_t job; ++ ++ collect_consoles(); ++ ++ if (!consoles->handle_next) { ++ consoles->pid = 0; ++ c = consoles; ++ goto nofork; ++ } + ++ assert_se(sigemptyset(&set) == 0); ++ assert_se(sigaddset(&set, SIGHUP) == 0); ++ assert_se(sigaddset(&set, SIGCHLD) == 0); ++ assert_se(sigemptyset(&sig.sa_mask) == 0); ++ ++ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); ++ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); ++ sig.sa_handler = SIG_DFL; ++ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); ++ LIST_FOREACH(handle, c, consoles) { ++ ++ switch ((c->pid = fork())) { ++ case 0: ++ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) ++ _exit(EXIT_FAILURE); ++ zero(sig); ++ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); ++ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); ++ /* fall through */ ++ nofork: ++ setsid(); ++ release_terminal(); ++ id = c->id; ++ *usemask |= (1<tty; ++ goto forked; /* child */ ++ case -1: ++ log_error("Failed to query password: %s", strerror(errno)); ++ return EXIT_FAILURE; ++ default: ++ break; ++ } ++ } ++ ++ r = 0; ++ while ((job = wait(&status))) { ++ if (job < 0) { ++ if (errno != EINTR) ++ break; ++ continue; ++ } ++ LIST_FOREACH(handle, c, consoles) { ++ if (c->pid == job) { ++ *usemask &= ~(1<id); ++ continue; ++ } ++ if (kill(c->pid, 0) < 0) { ++ *usemask &= ~(1<id); ++ continue; ++ } ++ if (*usemask & (1<id)) ++ continue; ++ kill(c->pid, SIGHUP); ++ usleep(50000); ++ kill(c->pid, SIGKILL); ++ } ++ ++ if (WIFEXITED(status) && !r) ++ r = WEXITSTATUS(status); ++ } ++ free_consoles(); ++ return r != 0 ? EXIT_FAILURE : EXIT_SUCCESS; /* parent */ ++ ++ } else { ++ setsid(); ++ release_terminal(); ++ } ++ } ++forked: + if (arg_action == ACTION_WATCH || + arg_action == ACTION_WALL) + r = watch_passwords(); +@@ -751,6 +929,8 @@ int main(int argc, char *argv[]) { + if (r < 0) + log_error("Error: %s", strerror(-r)); + ++ free_consoles(); ++ *usemask &= ~(1< Date: Sun, 3 Aug 2014 13:36:33 +0000 Subject: [PATCH 193/221] Accepting request 243367 from Base:System - Add upstream patches 0007-hwdb-update.patch 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - Add upstream patches 0007-hwdb-update.patch 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch OBS-URL: https://build.opensuse.org/request/show/243367 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=198 --- 0007-hwdb-update.patch | 1910 +++++++++++++++++ ...emd-to-manage-loop-device-partitions.patch | 32 + systemd-mini.changes | 7 + systemd-mini.spec | 6 + systemd.changes | 7 + systemd.spec | 6 + 6 files changed, 1968 insertions(+) create mode 100644 0007-hwdb-update.patch create mode 100644 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch diff --git a/0007-hwdb-update.patch b/0007-hwdb-update.patch new file mode 100644 index 00000000..462cdb4a --- /dev/null +++ b/0007-hwdb-update.patch @@ -0,0 +1,1910 @@ +Based on bd64a88fb0478da2e93c363849b73aed8be36ae7 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 31 Jul 2014 23:06:04 +0200 +Subject: [PATCH] hwdb: update + +--- + 20-OUI.hwdb | 380 +++++++++++++++++++++++++++++++++++++++++++++-- + 20-pci-vendor-model.hwdb | 35 +++- + 20-usb-vendor-model.hwdb | 208 +++++++++++++++++++++++-- + 3 files changed, 586 insertions(+), 37 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 97f1e6b..f9501be 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -23288,7 +23288,7 @@ OUI:000CB1* + ID_OUI_FROM_DATABASE=Salland Engineering (Europe) BV + + OUI:000CB2* +- ID_OUI_FROM_DATABASE=Comstar Co., Ltd. ++ ID_OUI_FROM_DATABASE=UNION co., ltd. + + OUI:000CB3* + ID_OUI_FROM_DATABASE=ROUND Co.,Ltd. +@@ -23528,7 +23528,7 @@ OUI:000D01* + ID_OUI_FROM_DATABASE=P&E Microcomputer Systems, Inc. + + OUI:000D02* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:000D03* + ID_OUI_FROM_DATABASE=Matrics, Inc. +@@ -30311,7 +30311,7 @@ OUI:0015DF* + ID_OUI_FROM_DATABASE=Clivet S.p.A. + + OUI:0015E0* +- ID_OUI_FROM_DATABASE=ST-Ericsson ++ ID_OUI_FROM_DATABASE=Ericsson + + OUI:0015E1* + ID_OUI_FROM_DATABASE=Picochip Ltd +@@ -32375,7 +32375,7 @@ OUI:001893* + ID_OUI_FROM_DATABASE=SHENZHEN PHOTON BROADBAND TECHNOLOGY CO.,LTD + + OUI:001894* +- ID_OUI_FROM_DATABASE=zimocom ++ ID_OUI_FROM_DATABASE=NPCore, Inc. + + OUI:001895* + ID_OUI_FROM_DATABASE=Hansun Technologies Inc. +@@ -33887,7 +33887,7 @@ OUI:001A8B* + ID_OUI_FROM_DATABASE=CHUNIL ELECTRIC IND., CO. + + OUI:001A8C* +- ID_OUI_FROM_DATABASE=Astaro AG ++ ID_OUI_FROM_DATABASE=Sophos Ltd + + OUI:001A8D* + ID_OUI_FROM_DATABASE=AVECS Bergen GmbH +@@ -34652,7 +34652,7 @@ OUI:001B8A* + ID_OUI_FROM_DATABASE=2M Electronic A/S + + OUI:001B8B* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:001B8C* + ID_OUI_FROM_DATABASE=JMicron Technology Corp. +@@ -35066,7 +35066,7 @@ OUI:001C14* + ID_OUI_FROM_DATABASE=VMware, Inc + + OUI:001C15* +- ID_OUI_FROM_DATABASE=TXP Corporation ++ ID_OUI_FROM_DATABASE=iPhotonix LLC + + OUI:001C16* + ID_OUI_FROM_DATABASE=ThyssenKrupp Elevator +@@ -35975,7 +35975,7 @@ OUI:001D43* + ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. + + OUI:001D44* +- ID_OUI_FROM_DATABASE=KROHNE ++ ID_OUI_FROM_DATABASE=KROHNE Messtechnik GmbH + + OUI:001D45* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +@@ -36863,7 +36863,7 @@ OUI:001E6B* + ID_OUI_FROM_DATABASE=Cisco SPVTG + + OUI:001E6C* +- ID_OUI_FROM_DATABASE=Carbon Mountain LLC ++ ID_OUI_FROM_DATABASE=Opaque Systems + + OUI:001E6D* + ID_OUI_FROM_DATABASE=IT R&D Center +@@ -38471,7 +38471,7 @@ OUI:002084* + ID_OUI_FROM_DATABASE=OCE PRINTING SYSTEMS, GMBH + + OUI:002085* +- ID_OUI_FROM_DATABASE=EXIDE ELECTRONICS ++ ID_OUI_FROM_DATABASE=Eaton Corporation + + OUI:002086* + ID_OUI_FROM_DATABASE=MICROTECH ELECTRONICS LIMITED +@@ -44312,7 +44312,7 @@ OUI:003A9C* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:003A9D* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:003AAF* + ID_OUI_FROM_DATABASE=BlueBit Ltd. +@@ -46394,7 +46394,7 @@ OUI:0060B8* + ID_OUI_FROM_DATABASE=CORELIS Inc. + + OUI:0060B9* +- ID_OUI_FROM_DATABASE=NEC Infrontia Corporation ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd + + OUI:0060BA* + ID_OUI_FROM_DATABASE=SAHARA NETWORKS, INC. +@@ -49015,6 +49015,9 @@ OUI:00A1DE* + OUI:00A2DA* + ID_OUI_FROM_DATABASE=INAT GmbH + ++OUI:00A2F5* ++ ID_OUI_FROM_DATABASE=Guangzhou Yuanyun Network Technology Co.,Ltd ++ + OUI:00A2FF* + ID_OUI_FROM_DATABASE=abatec group AG + +@@ -49036,6 +49039,9 @@ OUI:00AA70* + OUI:00ACE0* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:00AEFA* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:00B009* + ID_OUI_FROM_DATABASE=Grass Valley Group + +@@ -51613,6 +51619,9 @@ OUI:00F403* + OUI:00F4B9* + ID_OUI_FROM_DATABASE=Apple + ++OUI:00F76F* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:00F860* + ID_OUI_FROM_DATABASE=PT. Panggung Electric Citrabuana + +@@ -51844,6 +51853,9 @@ OUI:0494A1* + OUI:0498F3* + ID_OUI_FROM_DATABASE=ALPS Electric Co,. Ltd. + ++OUI:0499E6* ++ ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd ++ + OUI:049C62* + ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. + +@@ -52423,6 +52435,9 @@ OUI:0808C2* + OUI:0808EA* + ID_OUI_FROM_DATABASE=AMSC + ++OUI:0809B6* ++ ID_OUI_FROM_DATABASE=Masimo Corp ++ + OUI:080C0B* + ID_OUI_FROM_DATABASE=SysMik GmbH Dresden + +@@ -52438,6 +52453,9 @@ OUI:080EA8* + OUI:080FFA* + ID_OUI_FROM_DATABASE=KSP INC. + ++OUI:08115E* ++ ID_OUI_FROM_DATABASE=Bitel Co., Ltd. ++ + OUI:081196* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -52597,6 +52615,9 @@ OUI:087D21* + OUI:088039* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:0881BC* ++ ID_OUI_FROM_DATABASE=HongKong Ipro Technology Co., Limited ++ + OUI:0881F4* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -52693,6 +52714,9 @@ OUI:08E5DA* + OUI:08E672* + ID_OUI_FROM_DATABASE=JEBSEE ELECTRONICS CO.,LTD. + ++OUI:08E84F* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:08EA44* + ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. + +@@ -52759,6 +52783,9 @@ OUI:0C17F1* + OUI:0C191F* + ID_OUI_FROM_DATABASE=Inform Electronik + ++OUI:0C1DAF* ++ ID_OUI_FROM_DATABASE=Beijing Xiaomi communications co.,ltd ++ + OUI:0C1DC2* + ID_OUI_FROM_DATABASE=SeAH Networks + +@@ -53080,6 +53107,9 @@ OUI:1001CA* + OUI:1005CA* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:1008B1* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:10090C* + ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. + +@@ -53200,6 +53230,9 @@ OUI:104B46* + OUI:104D77* + ID_OUI_FROM_DATABASE=Innovative Computer Engineering + ++OUI:104E07* ++ ID_OUI_FROM_DATABASE=Shanghai Genvision Industries Co.,Ltd ++ + OUI:105172* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + +@@ -53234,7 +53267,7 @@ OUI:1065CF* + ID_OUI_FROM_DATABASE=IQSIM + + OUI:106682* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:10683F* + ID_OUI_FROM_DATABASE=LG Electronics +@@ -53668,6 +53701,9 @@ OUI:14F42A* + OUI:14F65A* + ID_OUI_FROM_DATABASE=Xiaomi inc. + ++OUI:14F893* ++ ID_OUI_FROM_DATABASE=Wuhan FiberHome Digital Technology Co.,Ltd. ++ + OUI:14FEAF* + ID_OUI_FROM_DATABASE=SAGITTAR LIMITED + +@@ -54190,6 +54226,9 @@ OUI:1C7C45* + OUI:1C7CC7* + ID_OUI_FROM_DATABASE=Coriant GmbH + ++OUI:1C7E51* ++ ID_OUI_FROM_DATABASE=3bumen.com ++ + OUI:1C7EE5* + ID_OUI_FROM_DATABASE=D-Link International + +@@ -54220,6 +54259,9 @@ OUI:1C955D* + OUI:1C959F* + ID_OUI_FROM_DATABASE=Veethree Electronics And Marine LLC + ++OUI:1C965A* ++ ID_OUI_FROM_DATABASE=Weifang goertek Electronics CO.,LTD ++ + OUI:1C973D* + ID_OUI_FROM_DATABASE=PRICOM Design + +@@ -54229,6 +54271,9 @@ OUI:1C994C* + OUI:1C9C26* + ID_OUI_FROM_DATABASE=Zoovel Technologies + ++OUI:1C9ECB* ++ ID_OUI_FROM_DATABASE=Beijing Nari Smartchip Microelectronics Company Limited ++ + OUI:1CA2B1* + ID_OUI_FROM_DATABASE=ruwido austria gmbh + +@@ -54254,7 +54299,7 @@ OUI:1CB094* + ID_OUI_FROM_DATABASE=HTC Corporation + + OUI:1CB17F* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:1CB243* + ID_OUI_FROM_DATABASE=TDC A/S +@@ -54478,6 +54523,9 @@ OUI:2074CF* + OUI:207600* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + ++OUI:207693* ++ ID_OUI_FROM_DATABASE=Lenovo (Beijing) Limited. ++ + OUI:207C8F* + ID_OUI_FROM_DATABASE=Quanta Microsystems,Inc. + +@@ -54766,6 +54814,9 @@ OUI:249442* + OUI:249504* + ID_OUI_FROM_DATABASE=SFR + ++OUI:2497ED* ++ ID_OUI_FROM_DATABASE=Techvision Intelligent Technology Limited ++ + OUI:24A2E1* + ID_OUI_FROM_DATABASE=Apple, Inc + +@@ -55306,6 +55357,9 @@ OUI:2C27D7* + OUI:2C282D* + ID_OUI_FROM_DATABASE=BBK COMMUNICATIAO TECHNOLOGY CO.,LTD. + ++OUI:2C2997* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:2C2D48* + ID_OUI_FROM_DATABASE=bct electronic GesmbH + +@@ -55327,6 +55381,9 @@ OUI:2C36F8* + OUI:2C3731* + ID_OUI_FROM_DATABASE=ShenZhen Yifang Digital Technology Co.,LTD + ++OUI:2C3796* ++ ID_OUI_FROM_DATABASE=CYBO CO.,LTD. ++ + OUI:2C3996* + ID_OUI_FROM_DATABASE=SAGEMCOM + +@@ -55390,6 +55447,9 @@ OUI:2C5D93* + OUI:2C5FF3* + ID_OUI_FROM_DATABASE=Pertronic Industries + ++OUI:2C600C* ++ ID_OUI_FROM_DATABASE=QUANTA COMPUTER INC. ++ + OUI:2C625A* + ID_OUI_FROM_DATABASE=Finest Security Systems Co., Ltd + +@@ -55549,12 +55609,18 @@ OUI:2CEDEB* + OUI:2CEE26* + ID_OUI_FROM_DATABASE=Petroleum Geo-Services + ++OUI:2CF0EE* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:2CF203* + ID_OUI_FROM_DATABASE=EMKO ELEKTRONIK SAN VE TIC AS + + OUI:2CF4C5* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:2CF7F1* ++ ID_OUI_FROM_DATABASE=Seeed Technology Inc. ++ + OUI:2CFAA2* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + +@@ -55570,6 +55636,9 @@ OUI:300D2A* + OUI:300ED5* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd + ++OUI:3010B3* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:3010E4* + ID_OUI_FROM_DATABASE=Apple, Inc. + +@@ -55711,6 +55780,9 @@ OUI:307512* + OUI:30766F* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:3077CB* ++ ID_OUI_FROM_DATABASE=Maike Industry(Shenzhen)CO.,LTD ++ + OUI:30786B* + ID_OUI_FROM_DATABASE=TIANJIN Golden Pentagon Electronics Co., Ltd. + +@@ -55831,6 +55903,9 @@ OUI:30F7D7* + OUI:30F9ED* + ID_OUI_FROM_DATABASE=Sony Corporation + ++OUI:30FAB7* ++ ID_OUI_FROM_DATABASE=Tunai Creative ++ + OUI:30FD11* + ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. + +@@ -55909,6 +55984,9 @@ OUI:344B3D* + OUI:344B50* + ID_OUI_FROM_DATABASE=ZTE Corporation + ++OUI:344DEA* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:344DF7* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -55942,6 +56020,9 @@ OUI:346178* + OUI:346288* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:3464A9* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:34684A* + ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. + +@@ -56152,6 +56233,9 @@ OUI:34E2FD* + OUI:34E42A* + ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. + ++OUI:34E6AD* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:34EF44* + ID_OUI_FROM_DATABASE=2Wire + +@@ -56200,6 +56284,9 @@ OUI:380B40* + OUI:380DD4* + ID_OUI_FROM_DATABASE=Primax Electronics LTD. + ++OUI:380E7B* ++ ID_OUI_FROM_DATABASE=V.P.S. Thai Co., Ltd ++ + OUI:380F4A* + ID_OUI_FROM_DATABASE=Apple + +@@ -56989,6 +57076,9 @@ OUI:40984E* + OUI:40987B* + ID_OUI_FROM_DATABASE=Aisino Corporation + ++OUI:409B0D* ++ ID_OUI_FROM_DATABASE=Shenzhen Yourf Kwan Industrial Co., Ltd ++ + OUI:409FC7* + ID_OUI_FROM_DATABASE=BAEKCHUN I&C Co., Ltd. + +@@ -57367,6 +57457,9 @@ OUI:44C56F* + OUI:44C9A2* + ID_OUI_FROM_DATABASE=Greenwald Industries + ++OUI:44CE7D* ++ ID_OUI_FROM_DATABASE=SFR ++ + OUI:44D15E* + ID_OUI_FROM_DATABASE=Shanghai Kingto Information Technology Ltd + +@@ -57703,6 +57796,9 @@ OUI:4C1480* + OUI:4C14A3* + ID_OUI_FROM_DATABASE=TCL Technoly Electronics (Huizhou) Co., Ltd. + ++OUI:4C16F1* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:4C17EB* + ID_OUI_FROM_DATABASE=SAGEMCOM + +@@ -57730,6 +57826,9 @@ OUI:4C26E7* + OUI:4C2C80* + ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd + ++OUI:4C2C83* ++ ID_OUI_FROM_DATABASE=Zhejiang KaNong Network Technology Co.,Ltd. ++ + OUI:4C2F9D* + ID_OUI_FROM_DATABASE=ICM Controls + +@@ -57754,6 +57853,9 @@ OUI:4C3B74* + OUI:4C3C16* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:4C48DA* ++ ID_OUI_FROM_DATABASE=Beijing Autelan Technology Co.,Ltd ++ + OUI:4C4B68* + ID_OUI_FROM_DATABASE=Mobile Device, Inc. + +@@ -57943,6 +58045,9 @@ OUI:4CDF3D* + OUI:4CE1BB* + ID_OUI_FROM_DATABASE=Zhuhai HiFocus Technology Co., Ltd. + ++OUI:4CE2F1* ++ ID_OUI_FROM_DATABASE=sclak srl ++ + OUI:4CE676* + ID_OUI_FROM_DATABASE=Buffalo Inc. + +@@ -58459,6 +58564,9 @@ OUI:549F35* + OUI:54A04F* + ID_OUI_FROM_DATABASE=t-mac Technologies Ltd + ++OUI:54A050* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:54A31B* + ID_OUI_FROM_DATABASE=Shenzhen Linkworld Technology Co,.LTD + +@@ -58525,6 +58633,9 @@ OUI:54E3B0* + OUI:54E43A* + ID_OUI_FROM_DATABASE=Apple, Inc. + ++OUI:54E4BD* ++ ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED ++ + OUI:54E63F* + ID_OUI_FROM_DATABASE=ShenZhen LingKeWeiEr Technology Co., Ltd. + +@@ -58603,6 +58714,9 @@ OUI:581FAA* + OUI:581FEF* + ID_OUI_FROM_DATABASE=Tuttnaer LTD + ++OUI:582136* ++ ID_OUI_FROM_DATABASE=KMB systems, s.r.o. ++ + OUI:58238C* + ID_OUI_FROM_DATABASE=Technicolor CH USA + +@@ -58705,6 +58819,9 @@ OUI:587BE9* + OUI:587E61* + ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd + ++OUI:587FB7* ++ ID_OUI_FROM_DATABASE=SONAR INDUSTRIAL CO., LTD. ++ + OUI:587FC8* + ID_OUI_FROM_DATABASE=S2M + +@@ -58903,6 +59020,9 @@ OUI:5C260A* + OUI:5C2AEF* + ID_OUI_FROM_DATABASE=Open Access Pty Ltd + ++OUI:5C2BF5* ++ ID_OUI_FROM_DATABASE=Vivint ++ + OUI:5C2E59* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -59020,6 +59140,9 @@ OUI:5C95AE* + OUI:5C969D* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C97F3* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:5C9AD8* + ID_OUI_FROM_DATABASE=Fujitsu Limited + +@@ -59032,6 +59155,9 @@ OUI:5CA3EB* + OUI:5CA48A* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:5CAAFD* ++ ID_OUI_FROM_DATABASE=Sonos, Inc. ++ + OUI:5CAC4C* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -59167,6 +59293,9 @@ OUI:600308* + OUI:600347* + ID_OUI_FROM_DATABASE=Billion Electric Co. Ltd. + ++OUI:600417* ++ ID_OUI_FROM_DATABASE=POSBANK CO.,LTD ++ + OUI:600F77* + ID_OUI_FROM_DATABASE=SilverPlus, Inc + +@@ -59407,6 +59536,9 @@ OUI:60C547* + OUI:60C5A8* + ID_OUI_FROM_DATABASE=Beijing LT Honway Technology Co.,Ltd + ++OUI:60C798* ++ ID_OUI_FROM_DATABASE=Verifone, Inc. ++ + OUI:60C980* + ID_OUI_FROM_DATABASE=Trymus + +@@ -59947,6 +60079,9 @@ OUI:6828BA* + OUI:682DDC* + ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD + ++OUI:6836B5* ++ ID_OUI_FROM_DATABASE=DriveScale, Inc. ++ + OUI:683B1E* + ID_OUI_FROM_DATABASE=Countwise LTD + +@@ -60007,6 +60142,9 @@ OUI:686E48* + OUI:687251* + ID_OUI_FROM_DATABASE=Ubiquiti Networks + ++OUI:6872DC* ++ ID_OUI_FROM_DATABASE=CETORY.TV Company Limited ++ + OUI:68764F* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + +@@ -60097,6 +60235,9 @@ OUI:68AAD2* + OUI:68AB8A* + ID_OUI_FROM_DATABASE=RF IDeas + ++OUI:68AE20* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:68AF13* + ID_OUI_FROM_DATABASE=Futura Mobility + +@@ -60202,6 +60343,9 @@ OUI:6C0460* + OUI:6C09D6* + ID_OUI_FROM_DATABASE=Digiquest Electronics LTD + ++OUI:6C0B84* ++ ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co.,Ltd. ++ + OUI:6C0E0D* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + +@@ -60268,6 +60412,9 @@ OUI:6C3E6D* + OUI:6C3E9C* + ID_OUI_FROM_DATABASE=KE Knestel Elektronik GmbH + ++OUI:6C4008* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:6C40C6* + ID_OUI_FROM_DATABASE=Nimbus Data Systems, Inc. + +@@ -60850,6 +60997,12 @@ OUI:70F927* + OUI:70F96D* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:70FC8C* ++ ID_OUI_FROM_DATABASE=OneAccess SA ++ ++OUI:70FF5C* ++ ID_OUI_FROM_DATABASE=Cheerzing Communication(Xiamen)Technology Co.,Ltd ++ + OUI:70FF76* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -60967,6 +61120,9 @@ OUI:746F3D* + OUI:7472F2* + ID_OUI_FROM_DATABASE=Chipsip Technology Co., Ltd. + ++OUI:747548* ++ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. ++ + OUI:747818* + ID_OUI_FROM_DATABASE=ServiceAssure + +@@ -61117,6 +61273,9 @@ OUI:74E537* + OUI:74E543* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + ++OUI:74E6E2* ++ ID_OUI_FROM_DATABASE=Dell Inc. ++ + OUI:74E7C6* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -61921,6 +62080,9 @@ OUI:8005DF* + OUI:8007A2* + ID_OUI_FROM_DATABASE=Esson Technology Inc. + ++OUI:800902* ++ ID_OUI_FROM_DATABASE=Keysight Technologies, Inc. ++ + OUI:800A06* + ID_OUI_FROM_DATABASE=COMTEC co.,ltd + +@@ -61945,6 +62107,9 @@ OUI:8018A7* + OUI:801934* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:801967* ++ ID_OUI_FROM_DATABASE=Shanghai Reallytek Information Technology Co.,Ltd ++ + OUI:801DAA* + ID_OUI_FROM_DATABASE=Avaya Inc + +@@ -61972,6 +62137,9 @@ OUI:802FDE* + OUI:803457* + ID_OUI_FROM_DATABASE=OT Systems Limited + ++OUI:803773* ++ ID_OUI_FROM_DATABASE=Netgear Inc ++ + OUI:8038FD* + ID_OUI_FROM_DATABASE=LeapFrog Enterprises, Inc. + +@@ -62146,6 +62314,9 @@ OUI:80BAE6* + OUI:80BBEB* + ID_OUI_FROM_DATABASE=Satmap Systems Ltd + ++OUI:80BE05* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:80C16E* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -62236,6 +62407,9 @@ OUI:841715* + OUI:841766* + ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd + ++OUI:841826* ++ ID_OUI_FROM_DATABASE=Osram GmbH ++ + OUI:84183A* + ID_OUI_FROM_DATABASE=Ruckus Wireless + +@@ -62365,6 +62539,9 @@ OUI:84742A* + OUI:847616* + ID_OUI_FROM_DATABASE=Addat S.r.o. + ++OUI:84788B* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:8478AC* + ID_OUI_FROM_DATABASE=Cisco + +@@ -62506,6 +62683,9 @@ OUI:84E714* + OUI:84EA99* + ID_OUI_FROM_DATABASE=Vieworks + ++OUI:84EB18* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:84ED33* + ID_OUI_FROM_DATABASE=BBMC Co.,Ltd + +@@ -62641,6 +62821,9 @@ OUI:88685C* + OUI:886B76* + ID_OUI_FROM_DATABASE=CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD + ++OUI:88708C* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:887398* + ID_OUI_FROM_DATABASE=K2E Tekpoint + +@@ -62746,6 +62929,9 @@ OUI:88C626* + OUI:88C663* + ID_OUI_FROM_DATABASE=Apple + ++OUI:88C9D0* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:88CB87* + ID_OUI_FROM_DATABASE=Apple + +@@ -63082,6 +63268,9 @@ OUI:8CDE52* + OUI:8CDE99* + ID_OUI_FROM_DATABASE=Comlab Inc. + ++OUI:8CDF9D* ++ ID_OUI_FROM_DATABASE=NEC Corporation ++ + OUI:8CE081* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -63133,6 +63322,12 @@ OUI:900D66* + OUI:900DCB* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:90179B* ++ ID_OUI_FROM_DATABASE=Nanomegas ++ ++OUI:9017AC* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:90185E* + ID_OUI_FROM_DATABASE=Apex Tool Group GmbH & Co OHG + +@@ -63166,12 +63361,18 @@ OUI:902083* + OUI:902155* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:902181* ++ ID_OUI_FROM_DATABASE=Shanghai Huaqin Telecom Technology Co.,Ltd ++ + OUI:9027E4* + ID_OUI_FROM_DATABASE=Apple + + OUI:902B34* + ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. + ++OUI:902CC7* ++ ID_OUI_FROM_DATABASE=C-MAX Asia Limited ++ + OUI:902E87* + ID_OUI_FROM_DATABASE=LabJack + +@@ -63304,6 +63505,9 @@ OUI:90840D* + OUI:9088A2* + ID_OUI_FROM_DATABASE=IONICS TECHNOLOGY ME LTDA + ++OUI:908C09* ++ ID_OUI_FROM_DATABASE=Total Phase ++ + OUI:908C44* + ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. + +@@ -63337,6 +63541,9 @@ OUI:909916* + OUI:909DE0* + ID_OUI_FROM_DATABASE=Newland Design + Assoc. Inc. + ++OUI:909F33* ++ ID_OUI_FROM_DATABASE=EFM Networks ++ + OUI:909F43* + ID_OUI_FROM_DATABASE=Accutron Instruments Inc. + +@@ -63416,7 +63623,7 @@ OUI:90DA4E* + ID_OUI_FROM_DATABASE=AVANU + + OUI:90DA6A* +- ID_OUI_FROM_DATABASE=MCC System Co., Ltd. ++ ID_OUI_FROM_DATABASE=FOCUS H&S Co., Ltd. + + OUI:90DB46* + ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD +@@ -63580,6 +63787,9 @@ OUI:946269* + OUI:9463D1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:9470D2* ++ ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY ++ + OUI:9471AC* + ID_OUI_FROM_DATABASE=TCT Mobile Limited + +@@ -63646,6 +63856,9 @@ OUI:94AE61* + OUI:94AEE3* + ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. + ++OUI:94B40F* ++ ID_OUI_FROM_DATABASE=Aruba Networks ++ + OUI:94B8C5* + ID_OUI_FROM_DATABASE=RuggedCom Inc. + +@@ -63661,9 +63874,15 @@ OUI:94BA56* + OUI:94BF1E* + ID_OUI_FROM_DATABASE=eflow Inc. / Smart Device Planning and Development Division + ++OUI:94BF95* ++ ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd ++ + OUI:94C014* + ID_OUI_FROM_DATABASE=Sorter Sp. j. Konrad Grzeszczyk MichaA, Ziomek + ++OUI:94C038* ++ ID_OUI_FROM_DATABASE=Tallac Networks ++ + OUI:94C150* + ID_OUI_FROM_DATABASE=2Wire Inc + +@@ -63793,6 +64012,9 @@ OUI:980D2E* + OUI:981094* + ID_OUI_FROM_DATABASE=Shenzhen Vsun communication technology Co.,ltd + ++OUI:9816EC* ++ ID_OUI_FROM_DATABASE=IC Intracom ++ + OUI:98208E* + ID_OUI_FROM_DATABASE=Definium Technologies + +@@ -64724,7 +64946,7 @@ OUI:A40CC3* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:A41242* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:A4134E* + ID_OUI_FROM_DATABASE=Luxul +@@ -64753,6 +64975,9 @@ OUI:A42305* + OUI:A424B3* + ID_OUI_FROM_DATABASE=FlatFrog Laboratories AB + ++OUI:A4251B* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:A42940* + ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd + +@@ -64783,6 +65008,9 @@ OUI:A4466B* + OUI:A446FA* + ID_OUI_FROM_DATABASE=AmTRAN Video Corporation + ++OUI:A44AD3* ++ ID_OUI_FROM_DATABASE=ST Electronics(Shanghai) Co.,Ltd ++ + OUI:A44B15* + ID_OUI_FROM_DATABASE=Sun Cupid Technology (HK) LTD + +@@ -64897,6 +65125,9 @@ OUI:A49F85* + OUI:A49F89* + ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. + ++OUI:A4A1C2* ++ ID_OUI_FROM_DATABASE=Ericsson AB (EAB) ++ + OUI:A4A24A* + ID_OUI_FROM_DATABASE=Cisco SPVTG + +@@ -65209,6 +65440,9 @@ OUI:A8995C* + OUI:A89B10* + ID_OUI_FROM_DATABASE=inMotion Ltd. + ++OUI:A89DD2* ++ ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd ++ + OUI:A8A668* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -65488,6 +65722,9 @@ OUI:AC8674* + OUI:AC867E* + ID_OUI_FROM_DATABASE=Create New Technology (HK) Limited Company + ++OUI:AC87A3* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:AC8ACD* + ID_OUI_FROM_DATABASE=ROGER D.Wensker, G.Wensker sp.j. + +@@ -65650,6 +65887,9 @@ OUI:ACF7F3* + OUI:ACF97E* + ID_OUI_FROM_DATABASE=ELESYS INC. + ++OUI:ACFDCE* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:ACFDEC* + ID_OUI_FROM_DATABASE=Apple, Inc + +@@ -66496,6 +66736,9 @@ OUI:B8AD3E* + OUI:B8AE6E* + ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. + ++OUI:B8AEED* ++ ID_OUI_FROM_DATABASE=Elitegroup Computer Systems Co., Ltd. ++ + OUI:B8AF67* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -66562,6 +66805,9 @@ OUI:B8D06F* + OUI:B8D49D* + ID_OUI_FROM_DATABASE=M Seven System Ltd. + ++OUI:B8D812* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:B8D9CE* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -66658,6 +66904,9 @@ OUI:BC15A6* + OUI:BC1665* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:BC16F5* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:BC1A67* + ID_OUI_FROM_DATABASE=YF Technology Co., Ltd + +@@ -66766,6 +67015,9 @@ OUI:BC6A16* + OUI:BC6A29* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:BC6B4D* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:BC6E76* + ID_OUI_FROM_DATABASE=Green Energy Options Ltd + +@@ -66868,6 +67120,9 @@ OUI:BCC168* + OUI:BCC23A* + ID_OUI_FROM_DATABASE=Thomson Video Networks + ++OUI:BCC342* ++ ID_OUI_FROM_DATABASE=Panasonic System Networks Co., Ltd. ++ + OUI:BCC61A* + ID_OUI_FROM_DATABASE=SPECTRA EMBEDDED SYSTEMS + +@@ -66907,6 +67162,9 @@ OUI:BCE59F* + OUI:BCEA2B* + ID_OUI_FROM_DATABASE=CityCom GmbH + ++OUI:BCEAFA* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:BCEE7B* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + +@@ -66976,6 +67234,9 @@ OUI:C03580* + OUI:C035BD* + ID_OUI_FROM_DATABASE=Velocytech Aps + ++OUI:C03896* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:C038F9* + ID_OUI_FROM_DATABASE=Nokia Danmark A/S + +@@ -67087,6 +67348,9 @@ OUI:C09132* + OUI:C09134* + ID_OUI_FROM_DATABASE=ProCurve Networking by HP + ++OUI:C09879* ++ ID_OUI_FROM_DATABASE=Acer Inc. ++ + OUI:C098E5* + ID_OUI_FROM_DATABASE=University of Michigan + +@@ -67228,6 +67492,9 @@ OUI:C40528* + OUI:C4084A* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + ++OUI:C40880* ++ ID_OUI_FROM_DATABASE=Shenzhen UTEPO Tech Co., Ltd. ++ + OUI:C40938* + ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd + +@@ -67675,6 +67942,9 @@ OUI:C88439* + OUI:C88447* + ID_OUI_FROM_DATABASE=Beautiful Enterprise Co., Ltd + ++OUI:C88550* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:C8873B* + ID_OUI_FROM_DATABASE=Net Optics + +@@ -67774,6 +68044,9 @@ OUI:C8CBB8* + OUI:C8CD72* + ID_OUI_FROM_DATABASE=SAGEMCOM + ++OUI:C8D019* ++ ID_OUI_FROM_DATABASE=Shanghai Tigercel Communication Technology Co.,Ltd ++ + OUI:C8D10B* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -67960,6 +68233,9 @@ OUI:CC3D82* + OUI:CC3E5F* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:CC3F1D* ++ ID_OUI_FROM_DATABASE=Intesis Software SL ++ + OUI:CC43E3* + ID_OUI_FROM_DATABASE=Trump s.a. + +@@ -68668,6 +68944,9 @@ OUI:D45C70* + OUI:D45D42* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:D46132* ++ ID_OUI_FROM_DATABASE=Pro Concept Manufacturer Co.,Ltd. ++ + OUI:D464F7* + ID_OUI_FROM_DATABASE=CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD + +@@ -68728,6 +69007,9 @@ OUI:D48890* + OUI:D48CB5* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:D48DD9* ++ ID_OUI_FROM_DATABASE=Meld Technology, Inc ++ + OUI:D48F33* + ID_OUI_FROM_DATABASE=Microsoft Corporation + +@@ -68887,6 +69169,9 @@ OUI:D4F0B4* + OUI:D4F143* + ID_OUI_FROM_DATABASE=IPROAD.,Inc + ++OUI:D4F46F* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:D4F63F* + ID_OUI_FROM_DATABASE=IEA S.R.L. + +@@ -69058,6 +69343,9 @@ OUI:D87CDD* + OUI:D87EB1* + ID_OUI_FROM_DATABASE=x.o.ware, inc. + ++OUI:D88039* ++ ID_OUI_FROM_DATABASE=Microchip Technology Inc. ++ + OUI:D881CE* + ID_OUI_FROM_DATABASE=AHN INC. + +@@ -69121,6 +69409,9 @@ OUI:D8B12A* + OUI:D8B377* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:D8B6B7* ++ ID_OUI_FROM_DATABASE=Comtrend Corporation ++ + OUI:D8B6C1* + ID_OUI_FROM_DATABASE=NetworkAccountant, Inc. + +@@ -69214,6 +69505,9 @@ OUI:D8EE78* + OUI:D8F0F2* + ID_OUI_FROM_DATABASE=Zeebo Inc + ++OUI:D8FB11* ++ ID_OUI_FROM_DATABASE=AXACORE ++ + OUI:D8FC93* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -69286,6 +69580,9 @@ OUI:DC2C26* + OUI:DC2E6A* + ID_OUI_FROM_DATABASE=HCT. Co., Ltd. + ++OUI:DC2F03* ++ ID_OUI_FROM_DATABASE=Step forward Group Co., Ltd. ++ + OUI:DC309C* + ID_OUI_FROM_DATABASE=Heyrex Limited + +@@ -69418,6 +69715,9 @@ OUI:DCC101* + OUI:DCC422* + ID_OUI_FROM_DATABASE=Systembase Limited + ++OUI:DCC622* ++ ID_OUI_FROM_DATABASE=BUHEUNG SYSTEM ++ + OUI:DCC793* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -69448,6 +69748,9 @@ OUI:DCD52A* + OUI:DCD87F* + ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd + ++OUI:DCDA4F* ++ ID_OUI_FROM_DATABASE=GET Technology,INC ++ + OUI:DCDECA* + ID_OUI_FROM_DATABASE=Akyllor + +@@ -69490,6 +69793,9 @@ OUI:E00B28* + OUI:E00C7F* + ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. + ++OUI:E0107F* ++ ID_OUI_FROM_DATABASE=Ruckus Wireless ++ + OUI:E0143E* + ID_OUI_FROM_DATABASE=Modoosis Inc. + +@@ -69688,6 +69994,9 @@ OUI:E0AF4B* + OUI:E0B2F1* + ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED + ++OUI:E0B52D* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:E0B7B1* + ID_OUI_FROM_DATABASE=Pace plc + +@@ -69829,9 +70138,15 @@ OUI:E41289* + OUI:E41C4B* + ID_OUI_FROM_DATABASE=V2 TECHNOLOGY, INC. + ++OUI:E41D2D* ++ ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc. ++ + OUI:E41F13* + ID_OUI_FROM_DATABASE=IBM Corp + ++OUI:E42354* ++ ID_OUI_FROM_DATABASE=SHENZHEN FUZHI SOFTWARE TECHNOLOGY CO.,LTD ++ + OUI:E425E7* + ID_OUI_FROM_DATABASE=Apple + +@@ -69961,6 +70276,9 @@ OUI:E48AD5* + OUI:E48B7F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:E48C0F* ++ ID_OUI_FROM_DATABASE=Discovery Insure ++ + OUI:E49069* + ID_OUI_FROM_DATABASE=Rockwell Automation + +@@ -70111,6 +70429,9 @@ OUI:E8150E* + OUI:E817FC* + ID_OUI_FROM_DATABASE=NIFTY Corporation + ++OUI:E81863* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:E82877* + ID_OUI_FROM_DATABASE=TMY Co., Ltd. + +@@ -70249,6 +70570,9 @@ OUI:E8944C* + OUI:E894F6* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:E89606* ++ ID_OUI_FROM_DATABASE=testo Instruments (Shenzhen) Co., Ltd. ++ + OUI:E8995A* + ID_OUI_FROM_DATABASE=PiiGAB, Processinformation i Goteborg AB + +@@ -70396,6 +70720,9 @@ OUI:EC0ED6* + OUI:EC1120* + ID_OUI_FROM_DATABASE=FloDesign Wind Turbine Corporation + ++OUI:EC13B2* ++ ID_OUI_FROM_DATABASE=Netonix ++ + OUI:EC14F6* + ID_OUI_FROM_DATABASE=BioControl AS + +@@ -70729,6 +71056,9 @@ OUI:F03A4B* + OUI:F03A55* + ID_OUI_FROM_DATABASE=Omega Elektronik AS + ++OUI:F03D29* ++ ID_OUI_FROM_DATABASE=Actility ++ + OUI:F03FF8* + ID_OUI_FROM_DATABASE=R L Drake + +@@ -70801,6 +71131,9 @@ OUI:F07BCB* + OUI:F07D68* + ID_OUI_FROM_DATABASE=D-Link Corporation + ++OUI:F07F06* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F07F0C* + ID_OUI_FROM_DATABASE=Leopold Kostal GmbH &Co. KG + +@@ -70843,6 +71176,9 @@ OUI:F09CBB* + OUI:F09CE9* + ID_OUI_FROM_DATABASE=Aerohive Networks Inc + ++OUI:F09E63* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F0A764* + ID_OUI_FROM_DATABASE=GST Co., Ltd. + +@@ -71188,6 +71524,9 @@ OUI:F4B72A* + OUI:F4B7E2* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:F4B85E* ++ ID_OUI_FROM_DATABASE=Texas INstruments ++ + OUI:F4BD7C* + ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD + +@@ -71461,6 +71800,9 @@ OUI:F87B8C* + OUI:F8811A* + ID_OUI_FROM_DATABASE=OVERKIZ + ++OUI:F88479* ++ ID_OUI_FROM_DATABASE=Yaojin Technology(Shenzhen)Co.,Ltd ++ + OUI:F884F2* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -71599,6 +71941,9 @@ OUI:F8E7B5* + OUI:F8E811* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:F8E903* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:F8E968* + ID_OUI_FROM_DATABASE=Egker Kft. + +@@ -71782,6 +72127,9 @@ OUI:FC5B24* + OUI:FC5B26* + ID_OUI_FROM_DATABASE=MikroBits + ++OUI:FC5B39* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:FC6018* + ID_OUI_FROM_DATABASE=Zhejiang Kangtai Electric Co., Ltd. + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 77c727d..a6a2754 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -32403,11 +32403,14 @@ pci:v00001131d00007146sv0000153Bsd00001155* + ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) + + pci:v00001131d00007146sv0000153Bsd00001156* +- ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C) + + pci:v00001131d00007146sv0000153Bsd00001157* + ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) + ++pci:v00001131d00007146sv0000153Bsd00001176* ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C (MK3)) ++ + pci:v00001131d00007146sv00001894sd00000020* + ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) + +@@ -42846,7 +42849,7 @@ pci:v00001425d00005012* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller + + pci:v00001425d00005013* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller + + pci:v00001425d00005014* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller +@@ -42924,7 +42927,7 @@ pci:v00001425d00005412* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller + + pci:v00001425d00005413* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller + + pci:v00001425d00005414* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller +@@ -43002,7 +43005,7 @@ pci:v00001425d00005512* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller + + pci:v00001425d00005513* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller + + pci:v00001425d00005514* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller +@@ -43080,7 +43083,7 @@ pci:v00001425d00005612* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller + + pci:v00001425d00005613* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller + + pci:v00001425d00005614* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller +@@ -43236,7 +43239,7 @@ pci:v00001425d00005812* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005813* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005814* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] +@@ -45887,6 +45890,9 @@ pci:v000014E4d00004359sv00001028sd00000011* + pci:v000014E4d00004359sv0000103Csd0000182C* + ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) + ++pci:v000014E4d00004360* ++ ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter ++ + pci:v000014E4d00004365* + ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n + +@@ -45896,6 +45902,9 @@ pci:v000014E4d00004365sv00001028sd00000016* + pci:v000014E4d000043A0* + ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter + ++pci:v000014E4d000043A9* ++ ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n ++ + pci:v000014E4d000043B1* + ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter + +@@ -47886,7 +47895,10 @@ pci:v000015ADd00000774* + ID_MODEL_FROM_DATABASE=USB1.1 UHCI Controller + + pci:v000015ADd00000778* +- ID_MODEL_FROM_DATABASE=USB3 xHCI Controller ++ ID_MODEL_FROM_DATABASE=USB3 xHCI 0.96 Controller ++ ++pci:v000015ADd00000779* ++ ID_MODEL_FROM_DATABASE=USB3 xHCI 1.0 Controller + + pci:v000015ADd00000790* + ID_MODEL_FROM_DATABASE=PCI bridge +@@ -52490,6 +52502,9 @@ pci:v00001A29* + pci:v00001A29d00004338* + ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC + ++pci:v00001A29d00004E36* ++ ID_MODEL_FROM_DATABASE=NP6 Network Processor ++ + pci:v00001A2B* + ID_VENDOR_FROM_DATABASE=Ascom AG + +@@ -73781,6 +73796,9 @@ pci:v0000D161d00001405* + pci:v0000D161d00001420* + ID_MODEL_FROM_DATABASE=Wildcard TE420 quad-span T1/E1/J1 card 3.3V (PCI-Express) (5th gen) + ++pci:v0000D161d00001820* ++ ID_MODEL_FROM_DATABASE=Wildcard TE820 octal-span T1/E1/J1 card 3.3V (PCI-Express) ++ + pci:v0000D161d00002400* + ID_MODEL_FROM_DATABASE=Wildcard TDM2400P 24-port analog card + +@@ -73820,6 +73838,9 @@ pci:v0000D161d0000800A* + pci:v0000D161d0000800B* + ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card + ++pci:v0000D161d0000800E* ++ ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) ++ + pci:v0000D161d0000B410* + ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 89cd5b1..ed6b2b1 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -524,6 +524,9 @@ usb:v03F0p0317* + usb:v03F0p0324* + ID_MODEL_FROM_DATABASE=SK-2885 keyboard + ++usb:v03F0p034A* ++ ID_MODEL_FROM_DATABASE=Elite Keyboard ++ + usb:v03F0p0401* + ID_MODEL_FROM_DATABASE=ScanJet 5200c + +@@ -767,6 +770,9 @@ usb:v03F0p1317* + usb:v03F0p1327* + ID_MODEL_FROM_DATABASE=iLO Virtual Hub + ++usb:v03F0p134A* ++ ID_MODEL_FROM_DATABASE=Optical Mouse ++ + usb:v03F0p1405* + ID_MODEL_FROM_DATABASE=ScanJet 3670 + +@@ -2336,6 +2342,12 @@ usb:v0403pEF10* + usb:v0403pF070* + ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] + ++usb:v0403pF0C8* ++ ID_MODEL_FROM_DATABASE=SPROG Decoder Programmer ++ ++usb:v0403pF0C9* ++ ID_MODEL_FROM_DATABASE=SPROG-DCC CAN-USB ++ + usb:v0403pF0E9* + ID_MODEL_FROM_DATABASE=Tagsys L-P101 + +@@ -2642,6 +2654,9 @@ usb:v0409p02B4* + usb:v0409p02B6* + ID_MODEL_FROM_DATABASE=Aterm WL300NU-GS 802.11n Wireless Adapter + ++usb:v0409p02BC* ++ ID_MODEL_FROM_DATABASE=Computer Monitor ++ + usb:v0409p0300* + ID_MODEL_FROM_DATABASE=LifeTouch Note + +@@ -5348,6 +5363,9 @@ usb:v0452p0050* + usb:v0452p0051* + ID_MODEL_FROM_DATABASE=Integrated Hub + ++usb:v0452p0100* ++ ID_MODEL_FROM_DATABASE=Control Panel for Leica TCS SP5 ++ + usb:v0453* + ID_VENDOR_FROM_DATABASE=CMD Technology + +@@ -8759,6 +8777,9 @@ usb:v0480pA009* + usb:v0480pA00D* + ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB + ++usb:v0480pB001* ++ ID_MODEL_FROM_DATABASE=Stor.E Partner ++ + usb:v0480pD010* + ID_MODEL_FROM_DATABASE=External Disk 3TB + +@@ -13100,9 +13121,15 @@ usb:v04D8p900A* + usb:v04D8pC001* + ID_MODEL_FROM_DATABASE=PicoLCD 20x4 + ++usb:v04D8pF4B5* ++ ID_MODEL_FROM_DATABASE=SmartScope ++ + usb:v04D8pF8DA* + ID_MODEL_FROM_DATABASE=Hughski Ltd. ColorHug + ++usb:v04D8pF91C* ++ ID_MODEL_FROM_DATABASE=SPROG IIv3 ++ + usb:v04D8pFAFF* + ID_MODEL_FROM_DATABASE=Dangerous Prototypes BusPirate v4 Bootloader mode + +@@ -13118,6 +13145,9 @@ usb:v04D8pFBBA* + usb:v04D8pFBBB* + ID_MODEL_FROM_DATABASE=DiscFerret Magnetic Disc Analyser (active mode) + ++usb:v04D8pFC1E* ++ ID_MODEL_FROM_DATABASE=Bachrus Speedometer Interface ++ + usb:v04D8pFC92* + ID_MODEL_FROM_DATABASE=Open Bench Logic Sniffer + +@@ -14432,6 +14462,9 @@ usb:v04F2p0403* + usb:v04F2p0418* + ID_MODEL_FROM_DATABASE=KU-0418 Tactical Pad + ++usb:v04F2p0618* ++ ID_MODEL_FROM_DATABASE=RG-0618U Wireless HID Receiver & KG-0609 Wireless Keyboard with Touchpad ++ + usb:v04F2p0760* + ID_MODEL_FROM_DATABASE=Acer KU-0760 Keyboard + +@@ -15336,7 +15369,7 @@ usb:v04FCp0171* + ID_MODEL_FROM_DATABASE=SPCA1527A/SPCA1528 SD card camera (Mass Storage mode) + + usb:v04FCp0201* +- ID_MODEL_FROM_DATABASE=RS232C Adapter ++ ID_MODEL_FROM_DATABASE=SPCP825 RS232C Adapter + + usb:v04FCp0232* + ID_MODEL_FROM_DATABASE=Fingerprint +@@ -29036,6 +29069,9 @@ usb:v08E3p0301* + usb:v08E4* + ID_VENDOR_FROM_DATABASE=Pioneer Corp. + ++usb:v08E4p0185* ++ ID_MODEL_FROM_DATABASE=DDJ-WeGO2 ++ + usb:v08E5* + ID_VENDOR_FROM_DATABASE=Litronic + +@@ -33080,6 +33116,9 @@ usb:v0B48p300D* + usb:v0B48p300E* + ID_MODEL_FROM_DATABASE=TT-connect C-2400 + ++usb:v0B48p3014* ++ ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 ++ + usb:v0B49* + ID_VENDOR_FROM_DATABASE=ASCII Corp. + +@@ -34086,7 +34125,7 @@ usb:v0BC2p3101* + ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB + + usb:v0BC2p3312* +- ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] ++ ID_MODEL_FROM_DATABASE=SRD00F2 Expansion Desktop Drive (STBV) + + usb:v0BC2p3320* + ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] +@@ -34109,6 +34148,9 @@ usb:v0BC2p5031* + usb:v0BC2p5070* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk + ++usb:v0BC2p5071* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk ++ + usb:v0BC2p50A1* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk + +@@ -34133,6 +34175,9 @@ usb:v0BC2pA0A4* + usb:v0BC2pAB00* + ID_MODEL_FROM_DATABASE=Slim Portable Drive + ++usb:v0BC2pAB20* ++ ID_MODEL_FROM_DATABASE=Backup Plus Portable Drive ++ + usb:v0BC3* + ID_VENDOR_FROM_DATABASE=IPWireless, Inc. + +@@ -34301,6 +34346,9 @@ usb:v0BDAp0176* + usb:v0BDAp0178* + ID_MODEL_FROM_DATABASE=Mass Storage Device + ++usb:v0BDAp0179* ++ ID_MODEL_FROM_DATABASE=RTL8188ETV Wireless LAN 802.11n Network Adapter ++ + usb:v0BDAp0184* + ID_MODEL_FROM_DATABASE=RTS5182 Card Reader + +@@ -34322,6 +34370,9 @@ usb:v0BDAp2832* + usb:v0BDAp2838* + ID_MODEL_FROM_DATABASE=RTL2838 DVB-T + ++usb:v0BDAp5730* ++ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam ++ + usb:v0BDAp8150* + ID_MODEL_FROM_DATABASE=RTL8150 Fast Ethernet Adapter + +@@ -36012,11 +36063,53 @@ usb:v0CE5p0003* + ID_MODEL_FROM_DATABASE=Matrix + + usb:v0CE9* +- ID_VENDOR_FROM_DATABASE=pico Technology ++ ID_VENDOR_FROM_DATABASE=Pico Technology + + usb:v0CE9p1001* + ID_MODEL_FROM_DATABASE=PicoScope3000 series PC Oscilloscope + ++usb:v0CE9p1007* ++ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope ++ ++usb:v0CE9p1008* ++ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope ++ ++usb:v0CE9p1009* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope ++ ++usb:v0CE9p100E* ++ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope ++ ++usb:v0CE9p1012* ++ ID_MODEL_FROM_DATABASE=PicoScope 3000A series PC Oscilloscope ++ ++usb:v0CE9p1016* ++ ID_MODEL_FROM_DATABASE=PicoScope 2000A series PC Oscilloscope ++ ++usb:v0CE9p1018* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000A series PC Oscilloscope ++ ++usb:v0CE9p1200* ++ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope ++ ++usb:v0CE9p1201* ++ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope ++ ++usb:v0CE9p1202* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope ++ ++usb:v0CE9p1203* ++ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope ++ ++usb:v0CE9p1204* ++ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope ++ ++usb:v0CE9p1211* ++ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope ++ ++usb:v0CE9p1212* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope ++ + usb:v0CF1* + ID_VENDOR_FROM_DATABASE=e-Conn Electronic Co., Ltd + +@@ -36998,6 +37091,9 @@ usb:v0DB0p1020* + usb:v0DB0p1967* + ID_MODEL_FROM_DATABASE=Bluetooth Dongle + ++usb:v0DB0p3713* ++ ID_MODEL_FROM_DATABASE=Primo 73 ++ + usb:v0DB0p3801* + ID_MODEL_FROM_DATABASE=Motorola Bluetooth 2.1+EDR Device + +@@ -37112,6 +37208,9 @@ usb:v0DB7p0002* + usb:v0DBA* + ID_VENDOR_FROM_DATABASE=Digidesign + ++usb:v0DBAp1000* ++ ID_MODEL_FROM_DATABASE=Mbox 1 [Mbox] ++ + usb:v0DBAp3000* + ID_MODEL_FROM_DATABASE=Mbox 2 + +@@ -37913,6 +38012,12 @@ usb:v0E6A* + usb:v0E6Ap0101* + ID_MODEL_FROM_DATABASE=MA100 [USB-UART Bridge IC] + ++usb:v0E6Ap030B* ++ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard (Device Firmware Update mode) ++ ++usb:v0E6Ap030C* ++ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard ++ + usb:v0E6Ap6001* + ID_MODEL_FROM_DATABASE=GEMBIRD Flexible keyboard KB-109F-B-DE + +@@ -39548,6 +39653,12 @@ usb:v1039p0824* + usb:v1039p2140* + ID_MODEL_FROM_DATABASE=dsl+ 1100 duo + ++usb:v103A* ++ ID_VENDOR_FROM_DATABASE=PSA ++ ++usb:v103ApF000* ++ ID_MODEL_FROM_DATABASE=Actia Evo XS ++ + usb:v103D* + ID_VENDOR_FROM_DATABASE=Stanton + +@@ -39692,6 +39803,9 @@ usb:v1050p0110* + usb:v1050p0111* + ID_MODEL_FROM_DATABASE=Yubikey NEO OTP+CCID + ++usb:v1050p0200* ++ ID_MODEL_FROM_DATABASE=U2F Gnubby ++ + usb:v1050p0211* + ID_MODEL_FROM_DATABASE=Gnubby + +@@ -39735,16 +39849,25 @@ usb:v1058p0704* + ID_MODEL_FROM_DATABASE=Passport External HDD + + usb:v1058p070A* +- ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA), My Passport for Mac (WDBAAB), My Passport Essential SE (WDBABM), My Passport SE for Mac (WDBABW) ++ ++usb:v1058p070B* ++ ID_MODEL_FROM_DATABASE=My Passport Elite (WDBAAC) ++ ++usb:v1058p070C* ++ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBAAE) + + usb:v1058p071A* +- ID_MODEL_FROM_DATABASE=My Passport ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA) ++ ++usb:v1058p071D* ++ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBALG) + + usb:v1058p0730* + ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) + + usb:v1058p0740* +- ID_MODEL_FROM_DATABASE=My Passport ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) + + usb:v1058p0741* + ID_MODEL_FROM_DATABASE=My Passport Ultra +@@ -39756,22 +39879,22 @@ usb:v1058p0748* + ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) + + usb:v1058p0810* +- ID_MODEL_FROM_DATABASE=My Passport Ultra ++ ID_MODEL_FROM_DATABASE=My Passport Ultra (WDBZFP) + + usb:v1058p0900* + ID_MODEL_FROM_DATABASE=MyBook Essential External HDD + + usb:v1058p0901* +- ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) + + usb:v1058p0902* +- ID_MODEL_FROM_DATABASE=My Book Pro Edition ++ ID_MODEL_FROM_DATABASE=My Book Pro Edition (WDG1T) + + usb:v1058p0903* + ID_MODEL_FROM_DATABASE=My Book Premium Edition + + usb:v1058p0910* +- ID_MODEL_FROM_DATABASE=MyBook Essential External HDD ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) + + usb:v1058p1001* + ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) +@@ -39786,7 +39909,7 @@ usb:v1058p1021* + ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) + + usb:v1058p1023* +- ID_MODEL_FROM_DATABASE=Elements SE ++ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBABV) + + usb:v1058p1048* + ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) +@@ -39809,11 +39932,23 @@ usb:v1058p1104* + usb:v1058p1105* + ID_MODEL_FROM_DATABASE=My Book Studio II + ++usb:v1058p1110* ++ ID_MODEL_FROM_DATABASE=My Book Essential (WDBAAF), My Book for Mac (WDBAAG) ++ ++usb:v1058p1111* ++ ID_MODEL_FROM_DATABASE=My Book Elite (WDBAAH) ++ ++usb:v1058p1112* ++ ID_MODEL_FROM_DATABASE=My Book Studio (WDBAAJ), My Book Studio LX (WDBACH) ++ + usb:v1058p1123* +- ID_MODEL_FROM_DATABASE=My Book 3.0 ++ ID_MODEL_FROM_DATABASE=My Book 3.0 (WDBABP) ++ ++usb:v1058p1130* ++ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) + + usb:v1058p1140* +- ID_MODEL_FROM_DATABASE=My Book Essential USB3.0 ++ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) + + usb:v1059* + ID_VENDOR_FROM_DATABASE=Giesecke & Devrient GmbH +@@ -42098,6 +42233,12 @@ usb:v132Bp2045* + usb:v132Bp2049* + ID_MODEL_FROM_DATABASE=Magicolor 2490MF + ++usb:v133E* ++ ID_VENDOR_FROM_DATABASE=Kemper Digital GmbH ++ ++usb:v133Ep0815* ++ ID_MODEL_FROM_DATABASE=Virus TI Desktop ++ + usb:v1342* + ID_VENDOR_FROM_DATABASE=Mobility + +@@ -42203,6 +42344,9 @@ usb:v134E* + usb:v1357* + ID_VENDOR_FROM_DATABASE=P&E Microcomputer Systems + ++usb:v1357p0089* ++ ID_MODEL_FROM_DATABASE=OpenSDA - CDC Serial Port ++ + usb:v1357p0503* + ID_MODEL_FROM_DATABASE=USB-ML-12 HCS08/HCS12 Multilink + +@@ -42213,7 +42357,7 @@ usb:v1366* + ID_VENDOR_FROM_DATABASE=SEGGER + + usb:v1366p0101* +- ID_MODEL_FROM_DATABASE=J-Link ARM ++ ID_MODEL_FROM_DATABASE=J-Link PLUS + + usb:v136B* + ID_VENDOR_FROM_DATABASE=STEC +@@ -42311,6 +42455,9 @@ usb:v138Ap003C* + usb:v138Ap003D* + ID_MODEL_FROM_DATABASE=VFS491 + ++usb:v138Ap003F* ++ ID_MODEL_FROM_DATABASE=VFS495 Fingerprint Reader ++ + usb:v138Ap0050* + ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor + +@@ -42647,6 +42794,9 @@ usb:v13D3p5122* + usb:v13D3p5126* + ID_MODEL_FROM_DATABASE=PC Cam + ++usb:v13D3p5130* ++ ID_MODEL_FROM_DATABASE=Integrated Webcam ++ + usb:v13D3p5702* + ID_MODEL_FROM_DATABASE=UVC VGA Webcam + +@@ -43232,6 +43382,9 @@ usb:v1493p0019* + usb:v1493p001A* + ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] + ++usb:v1493p001D* ++ ID_MODEL_FROM_DATABASE=Greentit [Ambit2 R] ++ + usb:v1497* + ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. + +@@ -49640,12 +49793,39 @@ usb:v2478* + usb:v2478p2008* + ID_MODEL_FROM_DATABASE=U209-000-R Serial Port + ++usb:v249C* ++ ID_VENDOR_FROM_DATABASE=M2Tech s.r.l. ++ + usb:v2632* + ID_VENDOR_FROM_DATABASE=TwinMOS + + usb:v2632p3209* + ID_MODEL_FROM_DATABASE=7-in-1 Card Reader + ++usb:v2639* ++ ID_VENDOR_FROM_DATABASE=Xsens ++ ++usb:v2639p0001* ++ ID_MODEL_FROM_DATABASE=MTi-10 IMU ++ ++usb:v2639p0002* ++ ID_MODEL_FROM_DATABASE=MTi-20 VRU ++ ++usb:v2639p0003* ++ ID_MODEL_FROM_DATABASE=MTi-30 AHRS ++ ++usb:v2639p0011* ++ ID_MODEL_FROM_DATABASE=MTi-100 IMU ++ ++usb:v2639p0012* ++ ID_MODEL_FROM_DATABASE=MTi-200 VRU ++ ++usb:v2639p0013* ++ ID_MODEL_FROM_DATABASE=MTi-300 AHRS ++ ++usb:v2639p0017* ++ ID_MODEL_FROM_DATABASE=MTi-G-700 GPS INS ++ + usb:v2650* + ID_VENDOR_FROM_DATABASE=Electronics For Imaging, Inc. [hex] + +-- +1.7.9.2 + diff --git a/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch b/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch new file mode 100644 index 00000000..20d064f8 --- /dev/null +++ b/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch @@ -0,0 +1,32 @@ +From b5df2eabf3fdd3e1663bc4c948812472084f3e96 Mon Sep 17 00:00:00 2001 +From: Kevin Wells +Date: Thu, 31 Jul 2014 17:38:21 +0200 +Subject: [PATCH] rules: allow systemd to manage loop device partitions + +SYSTEMD_READY is currently set to 0 for all loop devices (loop[0-9]*) +that do not have a backing_file. Partitioned loop devices (ex. loop0p1), +however, are matched by this rule and excluded by systemd even though +they are active devices. + +This change adds an additional check to the rule, ensuring that only +top level loop devices (loop[0-9]+$) are excluded from systemd. +--- + rules/99-systemd.rules.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in +index c3ef81b..aa435c4 100644 +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in +@@ -23,7 +23,7 @@ SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", + SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" + + # Ignore loop devices that don't have any file attached +-SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" ++SUBSYSTEM=="block", KERNEL=="loop[0-9]*", ENV{DEVTYPE}=="disk", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" + + # Ignore nbd devices in the "add" event, with "change" the nbd is ready + ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 04737d6e..2d8e7a10 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Aug 1 09:53:30 UTC 2014 - werner@suse.de + +- Add upstream patches + 0007-hwdb-update.patch + 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch + ------------------------------------------------------------------- Thu Jul 31 07:55:47 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 687f6ba4..2fd4dbf0 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -759,6 +759,8 @@ Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch +# PATCH-FIX-UPSTREAM added at 2014/08/01 +Patch367: 0007-hwdb-update.patch # UDEV PATCHES # ============ @@ -886,6 +888,8 @@ Patch1058: 1058-udev-unify-event-timeout-handling.patch Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1411,6 +1415,7 @@ cp %{SOURCE7} m4/ %patch364 -p0 %patch365 -p0 %patch366 -p1 +%patch367 -p0 # udev patches %patch1001 -p1 @@ -1494,6 +1499,7 @@ cp %{SOURCE7} m4/ %endif %patch1059 -p0 %patch1060 -p1 +%patch1061 -p0 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 04737d6e..2d8e7a10 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Aug 1 09:53:30 UTC 2014 - werner@suse.de + +- Add upstream patches + 0007-hwdb-update.patch + 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch + ------------------------------------------------------------------- Thu Jul 31 07:55:47 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 88659bfc..a5f11d12 100644 --- a/systemd.spec +++ b/systemd.spec @@ -754,6 +754,8 @@ Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch +# PATCH-FIX-UPSTREAM added at 2014/08/01 +Patch367: 0007-hwdb-update.patch # UDEV PATCHES # ============ @@ -881,6 +883,8 @@ Patch1058: 1058-udev-unify-event-timeout-handling.patch Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1406,6 +1410,7 @@ cp %{SOURCE7} m4/ %patch364 -p0 %patch365 -p0 %patch366 -p1 +%patch367 -p0 # udev patches %patch1001 -p1 @@ -1489,6 +1494,7 @@ cp %{SOURCE7} m4/ %endif %patch1059 -p0 %patch1060 -p1 +%patch1061 -p0 # ensure generate files are removed rm -f units/emergency.service From 6da4c8e3f47fa8e7250543990ba7f215a62e3f153b17edbd19c5a268da372252 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Mon, 11 Aug 2014 08:08:39 +0000 Subject: [PATCH 194/221] Accepting request 243963 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/243963 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=199 --- ...s-set-default-permissions-for-GenWQE-devices.patch | 11 +++++++++++ systemd-mini.changes | 6 ++++++ systemd-mini.spec | 3 +++ systemd.changes | 6 ++++++ systemd.spec | 3 +++ 5 files changed, 29 insertions(+) create mode 100644 1062-rules-set-default-permissions-for-GenWQE-devices.patch diff --git a/1062-rules-set-default-permissions-for-GenWQE-devices.patch b/1062-rules-set-default-permissions-for-GenWQE-devices.patch new file mode 100644 index 00000000..8db264df --- /dev/null +++ b/1062-rules-set-default-permissions-for-GenWQE-devices.patch @@ -0,0 +1,11 @@ +Index: systemd-210/rules/50-udev-default.rules +=================================================================== +--- systemd-210.orig/rules/50-udev-default.rules ++++ systemd-210/rules/50-udev-default.rules +@@ -66,4 +66,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st + + KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse" + ++KERNEL=="genwqe*", MODE="0666" ++ + LABEL="default_permissions_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index 2d8e7a10..d691713d 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com + +- Set default permissions for GenWQE device nodes to 0666 (bnc#890977). + Add 1062-rules-set-default-permissions-for-GenWQE-devices.patch + ------------------------------------------------------------------- Fri Aug 1 09:53:30 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 2fd4dbf0..98a2cf3c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -890,6 +890,8 @@ Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch # PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) +Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1500,6 +1502,7 @@ cp %{SOURCE7} m4/ %patch1059 -p0 %patch1060 -p1 %patch1061 -p0 +%patch1062 -p1 # ensure generate files are removed rm -f units/emergency.service diff --git a/systemd.changes b/systemd.changes index 2d8e7a10..d691713d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com + +- Set default permissions for GenWQE device nodes to 0666 (bnc#890977). + Add 1062-rules-set-default-permissions-for-GenWQE-devices.patch + ------------------------------------------------------------------- Fri Aug 1 09:53:30 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index a5f11d12..13707cf4 100644 --- a/systemd.spec +++ b/systemd.spec @@ -885,6 +885,8 @@ Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch # PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) +Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1495,6 +1497,7 @@ cp %{SOURCE7} m4/ %patch1059 -p0 %patch1060 -p1 %patch1061 -p0 +%patch1062 -p1 # ensure generate files are removed rm -f units/emergency.service From 8d0e9d5913c4d2c394f4716f507c8867a7c91137e50ebeb342b7eb4572f5ef97 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 27 Aug 2014 14:53:07 +0000 Subject: [PATCH 195/221] Accepting request 246497 from Base:System - Add upstream patches for hwdb 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch 0003-keymap-Fix-HP-Pavillon-DV7.patch 0004-hwdb-update-format-description-and-document-reloadin.patch 0008-hwdb-update.patch - Port back and add the missed upstream patches from 2014/08/22 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch 0006-login-share-VT-signal-handler-between-sessions.patch - Add upstream patches 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch 0002-switch-root-umount-the-old-root-correctly.patch 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - man pages from section 3 are developer docs, move them to the -devel package. - Add patch 0001-let-systemctl-completion-ignore-at-names.patch to remove error messages for tab completion for systemctl isolate (bnc#892162) OBS-URL: https://build.opensuse.org/request/show/246497 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=200 --- ...db-keymaps-for-Samsung-900X3E-900X3F.patch | 40 + ...systemctl-completion-ignore-at-names.patch | 11 + ...ation-of-machine-names-in-interface-.patch | 31 + ...wdb-entry-for-Samsung-Series-7-Ultra.patch | 31 + ...h-root-umount-the-old-root-correctly.patch | 26 + ...ot-OK-to-return-1-from-a-main-progra.patch | 27 + 0003-keymap-Fix-HP-Pavillon-DV7.patch | 28 + ...at-description-and-document-reloadin.patch | 60 + ...ller-should-fail-if-prepare_vt-fails.patch | 134 ++ ...llocation-if-query-ids-never-reuse-t.patch | 45 + ...e-VT-signal-handler-between-sessions.patch | 246 +++ ...crease-the-SendBuffer-of-dev-log-to-.patch | 23 + 0008-hwdb-update.patch | 1425 +++++++++++++++++ ...counting-of-early-mounts-without-SMA.patch | 32 + ...-by-one-error-in-Missed-X-kernel-mes.patch | 29 + ...-t-kill-the-unit-when-killing-the-le.patch | 32 + ...o-logic-when-applied-relative-to-ser.patch | 93 ++ ...-bit-more-NFS-compatible-when-checki.patch | 36 + ...press-ID_PATH-for-devices-with-an-un.patch | 96 ++ systemd-mini.changes | 50 + systemd-mini.spec | 69 +- systemd.changes | 50 + systemd.spec | 69 +- 23 files changed, 2681 insertions(+), 2 deletions(-) create mode 100644 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch create mode 100644 0001-let-systemctl-completion-ignore-at-names.patch create mode 100644 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch create mode 100644 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch create mode 100644 0002-switch-root-umount-the-old-root-correctly.patch create mode 100644 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch create mode 100644 0003-keymap-Fix-HP-Pavillon-DV7.patch create mode 100644 0004-hwdb-update-format-description-and-document-reloadin.patch create mode 100644 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch create mode 100644 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch create mode 100644 0006-login-share-VT-signal-handler-between-sessions.patch create mode 100644 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch create mode 100644 0008-hwdb-update.patch create mode 100644 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch create mode 100644 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch create mode 100644 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch create mode 100644 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch create mode 100644 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch create mode 100644 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch diff --git a/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch b/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch new file mode 100644 index 00000000..d3acf899 --- /dev/null +++ b/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch @@ -0,0 +1,40 @@ +From 77e8ff6974ffaa6c9954e3d2264d9aa75ef25233 Mon Sep 17 00:00:00 2001 +From: Kieran Clancy +Date: Thu, 27 Feb 2014 16:02:57 +1030 +Subject: [PATCH] hwdb: keymaps for Samsung 900X3E/900X3F + +Keymaps for Samsung 900X3E and 900X3F should be the same as for other +models in the series. + +I have also moved the comment for '# Series 9' to the right place +--- + hwdb/60-keyboard.hwdb | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index edfa842..bd8fd10 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -897,9 +897,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* + KEYBOARD_KEY_a8=! # Fn Lock - Function lock on + KEYBOARD_KEY_a9=! # Fn Lock - Function lock off + ++# Series 7 / 9 + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* +-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDG]*:pvr* ++keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* + KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings + KEYBOARD_KEY_a0=!mute # Fn+F6 mute +@@ -909,7 +910,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* + KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up + KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer + +-# Series 9 + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr* + KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up + KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down +-- +1.7.9.2 + diff --git a/0001-let-systemctl-completion-ignore-at-names.patch b/0001-let-systemctl-completion-ignore-at-names.patch new file mode 100644 index 00000000..ea89c56a --- /dev/null +++ b/0001-let-systemctl-completion-ignore-at-names.patch @@ -0,0 +1,11 @@ +--- systemd-210/shell-completion/bash/systemctl ++++ systemd-210/shell-completion/bash/systemctl 2014-08-20 15:01:04.502736981 +0000 +@@ -43,7 +43,7 @@ __filter_units_by_property () { + local units=("$@") + local props + IFS=$'\n' read -rd '' -a props < \ +- <(__systemctl $mode show --property "$property" -- "${units[@]}") ++ <(__systemctl $mode show --property "$property" -- "${units[@]}" 2> /dev/null) + for ((i=0; $i < ${#units[*]}; i++)); do + if [[ "${props[i]}" = "$property=$value" ]]; then + echo " ${units[i]}" diff --git a/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch b/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch new file mode 100644 index 00000000..4378b91f --- /dev/null +++ b/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch @@ -0,0 +1,31 @@ +Based on 4212a3375e03fd12cb407b34cab59dbe4ed9f4eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 3 Aug 2014 01:28:21 -0400 +Subject: [PATCH] nspawn: fix truncation of machine names in interface names + +Based on patch by Michael Marineau : + +When deriving the network interface name from machine name strncpy was +not properly null terminating the string and the maximum string size as +returned by strlen() is actually IFNAMSIZ-1, not IFNAMSIZ. +--- + src/nspawn/nspawn.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-08-22 10:18:20.390235611 +0000 +@@ -1383,12 +1383,8 @@ static int setup_veth(pid_t pid, char if + + /* Use two different interface name prefixes depending whether + * we are in bridge mode or not. */ +- if (arg_network_bridge) +- memcpy(iface_name, "vb-", 3); +- else +- memcpy(iface_name, "ve-", 3); +- +- strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3); ++ snprintf(iface_name, IFNAMSIZ, "%s-%s", ++ arg_network_bridge ? "vb" : "ve", arg_machine); + + r = sd_rtnl_open(&rtnl, 0); + if (r < 0) { diff --git a/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch b/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch new file mode 100644 index 00000000..30dc17d0 --- /dev/null +++ b/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch @@ -0,0 +1,31 @@ +From 15f392394e75ffb7f318920008fd1bbe4e82b488 Mon Sep 17 00:00:00 2001 +From: Scott Thrasher +Date: Wed, 26 Mar 2014 18:48:13 -0700 +Subject: [PATCH] Add hwdb entry for Samsung Series 7 Ultra + +--- + hwdb/60-keyboard.hwdb | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index bd8fd10..832c686 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -924,6 +924,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr* + KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up + KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle + ++# Series 7 Ultra ++keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* ++ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings ++ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down ++ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up ++ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer ++ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch ++ + # SQ1US + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* + KEYBOARD_KEY_d4=menu +-- +1.7.9.2 + diff --git a/0002-switch-root-umount-the-old-root-correctly.patch b/0002-switch-root-umount-the-old-root-correctly.patch new file mode 100644 index 00000000..df79c8f0 --- /dev/null +++ b/0002-switch-root-umount-the-old-root-correctly.patch @@ -0,0 +1,26 @@ +Based on 23f25b1496c31ef4c20b8f3ee8328f7b1d5f3a54 Mon Sep 17 00:00:00 2001 +From: Dan Dedrick +Date: Tue, 29 Jul 2014 15:31:23 -0400 +Subject: [PATCH] switch-root: umount the old root correctly + +The unmount occurs after the pivot_root, so the path used to unmount +should take into account the new root directory. This will allow the +umount to actually succeed. +--- + src/core/switch-root.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/switch-root.c ++++ src/core/switch-root.c 2014-08-22 11:22:50.230735231 +0000 +@@ -122,9 +122,9 @@ int switch_root(const char *new_root) { + + /* Immediately get rid of the old root. Since we are + * running off it we need to do this lazily. */ +- if (umount2(temporary_old_root, MNT_DETACH) < 0) { ++ if (umount2("/mnt", MNT_DETACH) < 0) { + r = -errno; +- log_error("Failed to umount old root dir %s: %m", temporary_old_root); ++ log_error("Failed to umount old root dir /mnt: %m"); + goto fail; + } + diff --git a/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch b/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch new file mode 100644 index 00000000..9796af4f --- /dev/null +++ b/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch @@ -0,0 +1,27 @@ +From 4155f7d4be5053d5f34a26e5437fd85e1fe00fa3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 11 Aug 2014 18:23:47 +0200 +Subject: [PATCH] bootchart: it's not OK to return -1 from a main program + +--- + src/bootchart/bootchart.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c +index c0e176d..8ef5ad1 100644 +--- src/bootchart/bootchart.c ++++ src/bootchart/bootchart.c +@@ -380,8 +380,8 @@ int main(int argc, char *argv[]) { + + sampledata = new0(struct list_sample_data, 1); + if (sampledata == NULL) { +- log_error("Failed to allocate memory for a node: %m"); +- return -1; ++ log_oom(); ++ return EXIT_FAILURE; + } + + sampledata->sampletime = gettime_ns(); +-- +1.7.9.2 + diff --git a/0003-keymap-Fix-HP-Pavillon-DV7.patch b/0003-keymap-Fix-HP-Pavillon-DV7.patch new file mode 100644 index 00000000..33908a82 --- /dev/null +++ b/0003-keymap-Fix-HP-Pavillon-DV7.patch @@ -0,0 +1,28 @@ +From efb4bf4e419e14a13eead6289ea40165579a816f Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Tue, 5 Aug 2014 12:29:27 +0200 +Subject: [PATCH] keymap: Fix HP Pavillon DV7 + +Properly disable scan code 94 instead of producing KEY_0. + +https://launchpad.net/bugs/1322770 +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index cbbbf2c..5c3d4ca 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -368,7 +368,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:pvr + KEYBOARD_KEY_b7=print + KEYBOARD_KEY_c2=media # FIXME: quick play + KEYBOARD_KEY_c6=break +- KEYBOARD_KEY_94=0 ++ KEYBOARD_KEY_94=reserved + + # Elitebook + keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr* +-- +1.7.9.2 + diff --git a/0004-hwdb-update-format-description-and-document-reloadin.patch b/0004-hwdb-update-format-description-and-document-reloadin.patch new file mode 100644 index 00000000..a65a46f0 --- /dev/null +++ b/0004-hwdb-update-format-description-and-document-reloadin.patch @@ -0,0 +1,60 @@ +From fa9d4be3f1f4a792b2f3624c2a08fe9cc6ce6e54 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 7 Aug 2014 21:48:57 -0400 +Subject: [PATCH] hwdb: update format description and document reloading + +https://bugs.freedesktop.org/show_bug.cgi?id=82311 +--- + hwdb/60-keyboard.hwdb | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 5c3d4ca..ef0ebc5 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -28,19 +28,33 @@ + # driver, is the firmware-provided string exported + # by the kernel DMI modalias. + # +-# Scan codes are specified as: +-# KEYBOARD_KEY_= +-# The scan code should be expressed in hex lowercase and in +-# full bytes, a multiple of 2 digits. The key codes are retrieved +-# and normalized from the kernel input API header. ++# Scan codes are specified as: ++# KEYBOARD_KEY_= ++# The scan code should be expressed in hex lowercase. The key codes ++# are retrieved and normalized from the kernel input API header. + # +-# A '!' as the first charcter of the key identifier string +-# will add the scan code to the AT keyboard's list of scan codes +-# where the driver will synthesize a release event and not expect +-# it to be generated by the hardware. ++# An '!' as the first character of the key identifier string ++# will add the scan code to the AT keyboard's list of scan codes ++# where the driver will synthesize a release event and not expect ++# it to be generated by the hardware. + # + # To debug key presses and access scan code mapping data of + # an input device use the commonly available tool: evtest(1). ++# ++# To update this file, create a new file ++# /etc/udev/hwdb.d/70-keyboad.hwdb ++# and add your rules there. To load the new rules execute (as root): ++# udevadm hwdb --update ++# udevadm trigger /dev/input/eventXX ++# where /dev/input/eventXX is the keyboard in question. If in ++# doubt, simply use /dev/input/event* to reload all input rules. ++# ++# If your changes are generally applicable, open a bug report on ++# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd ++# and include your new rules, a description of the device, and the ++# output of ++# udevadm info /dev/input/eventXX ++# (or /dev/input/event*). + + ########################################## + # Acer +-- +1.7.9.2 + diff --git a/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch b/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch new file mode 100644 index 00000000..848a73d3 --- /dev/null +++ b/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch @@ -0,0 +1,134 @@ +Based on baccf3e40bab6c0b69992ae29c396930de4660c9 Mon Sep 17 00:00:00 2001 +From: Olivier Brunel +Date: Fri, 8 Aug 2014 20:45:43 +0200 +Subject: [PATCH] login: set_controller should fail if prepare_vt fails + +If controllers can expect logind to have "prepared" the VT (e.g. set it to +graphics mode, etc) then TakeControl() should fail if said preparation +failed (and session_restore_vt() was called). + +(David: fixed up !CONFIG_VT case and errno-numbers) +--- + src/login/logind-session.c | 47 +++++++++++++++++++++++++++++++++------------ + src/login/logind-session.h | 2 - + 2 files changed, 36 insertions(+), 13 deletions(-) + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-08-26 10:14:21.014235811 +0000 +@@ -950,8 +950,8 @@ int session_kill(Session *s, KillWho who + static int session_open_vt(Session *s) { + char path[sizeof("/dev/tty") + DECIMAL_STR_MAX(s->vtnr)]; + +- if (!s->vtnr) +- return -1; ++ if (s->vtnr < 1) ++ return -ENODEV; + + if (s->vtfd >= 0) + return s->vtfd; +@@ -975,22 +975,38 @@ static int session_vt_fn(sd_event_source + return 0; + } + +-void session_mute_vt(Session *s) { ++int session_mute_vt(Session *s) { + int vt, r; + struct vt_mode mode = { 0 }; + sigset_t mask; + ++ if (s->vtnr < 1) ++ return 0; ++ + vt = session_open_vt(s); + if (vt < 0) +- return; ++ return vt; ++ ++ r = fchown(vt, s->user->uid, -1); ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot change owner of /dev/tty%u: %m", s->vtnr); ++ goto error; ++ } + + r = ioctl(vt, KDSKBMODE, K_OFF); +- if (r < 0) ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot set K_OFF on /dev/tty%u: %m", s->vtnr); + goto error; ++ } + + r = ioctl(vt, KDSETMODE, KD_GRAPHICS); +- if (r < 0) ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot set KD_GRAPHICS on /dev/tty%u: %m", s->vtnr); + goto error; ++ } + + sigemptyset(&mask); + sigaddset(&mask, SIGUSR1); +@@ -1007,14 +1023,17 @@ void session_mute_vt(Session *s) { + mode.relsig = SIGUSR1; + mode.acqsig = SIGUSR1; + r = ioctl(vt, VT_SETMODE, &mode); +- if (r < 0) ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot set VT_PROCESS on /dev/tty%u: %m", s->vtnr); + goto error; ++ } + +- return; ++ return 0; + + error: +- log_error("cannot mute VT %u for session %s (%d/%d)", s->vtnr, s->id, r, errno); + session_restore_vt(s); ++ return r; + } + + void session_restore_vt(Session *s) { +@@ -1037,6 +1056,8 @@ void session_restore_vt(Session *s) { + mode.mode = VT_AUTO; + ioctl(vt, VT_SETMODE, &mode); + ++ fchown(vt, 0, -1); ++ + close_nointr_nofail(vt); + s->vtfd = -1; + } +@@ -1091,8 +1112,6 @@ int session_set_controller(Session *s, c + return r; + } + +- session_swap_controller(s, t); +- + /* When setting a session controller, we forcibly mute the VT and set + * it into graphics-mode. Applications can override that by changing + * VT state after calling TakeControl(). However, this serves as a good +@@ -1101,7 +1120,11 @@ int session_set_controller(Session *s, c + * exits. + * If logind crashes/restarts, we restore the controller during restart + * or reset the VT in case it crashed/exited, too. */ +- session_mute_vt(s); ++ r = session_mute_vt(s); ++ if (r < 0) ++ return r; ++ ++ session_swap_controller(s, t); + + return 0; + } +--- src/login/logind-session.h ++++ src/login/logind-session.h 2014-08-25 17:19:29.042236429 +0000 +@@ -172,7 +172,7 @@ SessionClass session_class_from_string(c + const char *kill_who_to_string(KillWho k) _const_; + KillWho kill_who_from_string(const char *s) _pure_; + +-void session_mute_vt(Session *s); ++int session_mute_vt(Session *s); + void session_restore_vt(Session *s); + + bool session_is_controller(Session *s, const char *sender); diff --git a/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch b/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch new file mode 100644 index 00000000..5dfa4ed5 --- /dev/null +++ b/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch @@ -0,0 +1,45 @@ +Based on 85529c815b47c22839e0f148af67fd37e977cbfa Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 12 Aug 2014 19:29:27 +0200 +Subject: [PATCH] sd-resolve: fix allocation if query ids, never reuse them + +--- + src/libsystemd/sd-resolve/sd-resolve.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +--- src/libsystemd/sd-resolve/sd-resolve.c ++++ src/libsystemd/sd-resolve/sd-resolve.c 2014-08-22 14:18:24.838235343 +0000 +@@ -81,7 +81,7 @@ struct sd_resolve { + pthread_t workers[WORKERS_MAX]; + unsigned n_valid_workers; + +- unsigned current_id, current_index; ++ unsigned current_id; + sd_resolve_query* queries[QUERIES_MAX]; + unsigned n_queries; + +@@ -892,21 +892,17 @@ static int alloc_query(sd_resolve *resol + if (r < 0) + return r; + +- while (resolve->queries[resolve->current_index]) { +- resolve->current_index++; ++ while (resolve->queries[resolve->current_id % QUERIES_MAX]) + resolve->current_id++; + +- resolve->current_index %= QUERIES_MAX; +- } +- +- q = resolve->queries[resolve->current_index] = new0(sd_resolve_query, 1); ++ q = resolve->queries[resolve->current_id % QUERIES_MAX] = new0(sd_resolve_query, 1); + if (!q) + return -ENOMEM; + + resolve->n_queries++; + + q->resolve = resolve; +- q->id = resolve->current_id; ++ q->id = resolve->current_id++; + + *_q = q; + return 0; diff --git a/0006-login-share-VT-signal-handler-between-sessions.patch b/0006-login-share-VT-signal-handler-between-sessions.patch new file mode 100644 index 00000000..599aa261 --- /dev/null +++ b/0006-login-share-VT-signal-handler-between-sessions.patch @@ -0,0 +1,246 @@ +Based on 92683ad2e28c79891e4123d9a421b018dc58870c Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Mon, 11 Aug 2014 18:17:54 +0200 +Subject: [PATCH] login: share VT-signal handler between sessions + +sd-event does not allow multiple handlers for a single signal. However, +logind sets up signal handlers for each session with VT_PROCESS set (that +is, it has an active controller). Therefore, registering multiple such +controllers will fail. + +Lets make the VT-handler global, as it's mostly trivial, anyway. This way, +the sessions don't have to take care of that and we can simply acknowledge +all VT-switch requests as we always did. +--- + src/libsystemd/sd-event/sd-event.c | 5 +- + src/login/logind-session.c | 26 +------------ + src/login/logind-session.h | 1 + src/login/logind.c | 70 +++++++++++++++++++++++++++++++++++++ + src/shared/util.c | 18 +++++++++ + src/shared/util.h | 1 + 6 files changed, 94 insertions(+), 27 deletions(-) + +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c 2014-08-26 11:02:54.500683967 +0000 +@@ -839,7 +839,6 @@ _public_ int sd_event_add_signal( + assert_return(sig > 0, -EINVAL); + assert_return(sig < _NSIG, -EINVAL); + assert_return(callback, -EINVAL); +- assert_return(ret, -EINVAL); + assert_return(e->state != SD_EVENT_FINISHED, -ESTALE); + assert_return(!event_pid_changed(e), -ECHILD); + +@@ -877,7 +876,9 @@ _public_ int sd_event_add_signal( + } + } + +- *ret = s; ++ if (ret) ++ *ret = s; ++ + return 0; + } + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-08-25 17:22:46.000000000 +0000 +@@ -153,8 +153,6 @@ void session_free(Session *s) { + + hashmap_remove(s->manager->sessions, s->id); + +- s->vt_source = sd_event_source_unref(s->vt_source); +- + free(s->state_file); + free(s); + } +@@ -966,19 +964,9 @@ static int session_open_vt(Session *s) { + return s->vtfd; + } + +-static int session_vt_fn(sd_event_source *source, const struct signalfd_siginfo *si, void *data) { +- Session *s = data; +- +- if (s->vtfd >= 0) +- ioctl(s->vtfd, VT_RELDISP, 1); +- +- return 0; +-} +- + int session_mute_vt(Session *s) { + int vt, r; + struct vt_mode mode = { 0 }; +- sigset_t mask; + + if (s->vtnr < 1) + return 0; +@@ -1008,20 +996,12 @@ int session_mute_vt(Session *s) { + goto error; + } + +- sigemptyset(&mask); +- sigaddset(&mask, SIGUSR1); +- sigprocmask(SIG_BLOCK, &mask, NULL); +- +- r = sd_event_add_signal(s->manager->event, &s->vt_source, SIGUSR1, session_vt_fn, s); +- if (r < 0) +- goto error; +- + /* Oh, thanks to the VT layer, VT_AUTO does not work with KD_GRAPHICS. + * So we need a dummy handler here which just acknowledges *all* VT + * switch requests. */ + mode.mode = VT_PROCESS; +- mode.relsig = SIGUSR1; +- mode.acqsig = SIGUSR1; ++ mode.relsig = SIGRTMIN; ++ mode.acqsig = SIGRTMIN + 1; + r = ioctl(vt, VT_SETMODE, &mode); + if (r < 0) { + r = -errno; +@@ -1045,8 +1025,6 @@ void session_restore_vt(Session *s) { + if (vt < 0) + return; + +- s->vt_source = sd_event_source_unref(s->vt_source); +- + ioctl(vt, KDSETMODE, KD_TEXT); + + if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1') +--- src/login/logind-session.h ++++ src/login/logind-session.h 2014-08-25 00:00:00.000000000 +0000 +@@ -98,7 +98,6 @@ struct Session { + Seat *seat; + unsigned int vtnr; + int vtfd; +- sd_event_source *vt_source; + + pid_t leader; + uint32_t audit_id; +--- src/login/logind.c ++++ src/login/logind.c 2014-08-26 11:18:41.422235366 +0000 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + + #include "sd-daemon.h" +@@ -714,6 +715,47 @@ static int manager_connect_bus(Manager * + return 0; + } + ++static int manager_vt_switch(sd_event_source *src, const struct signalfd_siginfo *si, void *data) { ++ Manager *m = data; ++ Session *active, *iter; ++ ++ /* ++ * We got a VT-switch signal and we have to acknowledge it immediately. ++ * Preferably, we'd just use m->seat0->active->vtfd, but unfortunately, ++ * old user-space might run multiple sessions on a single VT, *sigh*. ++ * Therefore, we have to iterate all sessions and find one with a vtfd ++ * on the requested VT. ++ * As only VTs with active controllers have VT_PROCESS set, our current ++ * notion of the active VT might be wrong (for instance if the switch ++ * happens while we setup VT_PROCESS). Therefore, read the current VT ++ * first and then use s->active->vtnr as reference. Note that this is ++ * not racy, as no further VT-switch can happen as long as we're in ++ * synchronous VT_PROCESS mode. ++ */ ++ ++ assert(m->seat0); ++ seat_read_active_vt(m->seat0); ++ ++ active = m->seat0->active; ++ if (!active || active->vtnr < 1) { ++ log_warning("Received VT_PROCESS signal without a registered session on that VT."); ++ return 0; ++ } ++ ++ if (active->vtfd >= 0) { ++ ioctl(active->vtfd, VT_RELDISP, 1); ++ } else { ++ LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { ++ if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { ++ ioctl(iter->vtfd, VT_RELDISP, 1); ++ break; ++ } ++ } ++ } ++ ++ return 0; ++} ++ + static int manager_connect_console(Manager *m) { + int r; + +@@ -744,6 +786,34 @@ static int manager_connect_console(Manag + return r; + } + ++ /* ++ * SIGRTMIN is used as global VT-release signal, SIGRTMIN + 1 is used ++ * as VT-acquire signal. We ignore any acquire-events (yes, we still ++ * have to provide a valid signal-number for it!) and acknowledge all ++ * release events immediately. ++ */ ++ ++ if (SIGRTMIN + 1 > SIGRTMAX) { ++ log_error("Not enough real-time signals available: %u-%u", SIGRTMIN, SIGRTMAX); ++ return -EINVAL; ++ } ++ ++ r = ignore_signals(SIGRTMIN + 1, -1); ++ if (r < 0) { ++ log_error("Cannot ignore SIGRTMIN + 1: %s", strerror(-r)); ++ return r; ++ } ++ ++ r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1); ++ if (r < 0) { ++ log_error("Cannot block SIGRTMIN: %s", strerror(-r)); ++ return r; ++ } ++ ++ r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m); ++ if (r < 0) ++ return r; ++ + return 0; + } + +--- src/shared/util.c ++++ src/shared/util.c 2014-08-26 10:20:14.000000000 +0000 +@@ -2434,6 +2434,24 @@ void sigset_add_many(sigset_t *ss, ...) + va_end(ap); + } + ++int sigprocmask_many(int how, ...) { ++ va_list ap; ++ sigset_t ss; ++ int sig; ++ ++ assert_se(sigemptyset(&ss) == 0); ++ ++ va_start(ap, how); ++ while ((sig = va_arg(ap, int)) > 0) ++ assert_se(sigaddset(&ss, sig) == 0); ++ va_end(ap); ++ ++ if (sigprocmask(how, &ss, NULL) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + char* gethostname_malloc(void) { + struct utsname u; + +--- src/shared/util.h ++++ src/shared/util.h 2014-08-26 10:21:08.000000000 +0000 +@@ -390,6 +390,7 @@ char* dirname_malloc(const char *path); + void rename_process(const char name[8]); + + void sigset_add_many(sigset_t *ss, ...); ++int sigprocmask_many(int how, ...); + + bool hostname_is_set(void); + diff --git a/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch b/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch new file mode 100644 index 00000000..54b97960 --- /dev/null +++ b/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch @@ -0,0 +1,23 @@ +Based on 5e8b767df6e18444d5aff2987b5e5603361ed528 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 13 Aug 2014 18:53:05 +0200 +Subject: [PATCH] journald: also increase the SendBuffer of /dev/log to 8M + +http://lists.freedesktop.org/archives/systemd-devel/2014-August/021825.html +--- + units/systemd-journald.socket | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- units/systemd-journald.socket ++++ units/systemd-journald.socket 2014-08-22 14:31:11.022236471 +0000 +@@ -23,4 +23,10 @@ ListenDatagram=/dev/log + SocketMode=0666 + PassCredentials=yes + PassSecurity=yes ++ ++# Increase both the send and receive buffer, so that things don't ++# block early. Note that journald internally uses the this socket both ++# for receiving syslog messages, and for forwarding them to any other ++# syslog, hence we bump both values. + ReceiveBuffer=8M ++SendBuffer=8M diff --git a/0008-hwdb-update.patch b/0008-hwdb-update.patch new file mode 100644 index 00000000..062b229b --- /dev/null +++ b/0008-hwdb-update.patch @@ -0,0 +1,1425 @@ +From cccc74971fe3c853832d742a15eac94f365603b6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 20 Aug 2014 00:38:39 +0200 +Subject: [PATCH] update hwdb + +--- + hwdb/20-OUI.hwdb | 177 +++++++++++- + hwdb/20-pci-vendor-model.hwdb | 592 ++++++++++++++++++++++++++++++++++++++++- + hwdb/20-usb-vendor-model.hwdb | 12 + + 3 files changed, 776 insertions(+), 5 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index f9501be..e0c5fed 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -21371,7 +21371,7 @@ OUI:000A2F* + ID_OUI_FROM_DATABASE=Artnix Inc. + + OUI:000A30* +- ID_OUI_FROM_DATABASE=Johnson Controls-ASG ++ ID_OUI_FROM_DATABASE=Visteon Corporation + + OUI:000A31* + ID_OUI_FROM_DATABASE=HCV Consulting +@@ -51601,6 +51601,9 @@ OUI:00E666* + OUI:00E6D3* + ID_OUI_FROM_DATABASE=NIXDORF COMPUTER CORP. + ++OUI:00E6E8* ++ ID_OUI_FROM_DATABASE=Netzin Technology Corporation,.Ltd. ++ + OUI:00E8AB* + ID_OUI_FROM_DATABASE=Meggitt Training Systems, Inc. + +@@ -51616,6 +51619,9 @@ OUI:00F051* + OUI:00F403* + ID_OUI_FROM_DATABASE=Orbis Systems Oy + ++OUI:00F46F* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:00F4B9* + ID_OUI_FROM_DATABASE=Apple + +@@ -51856,6 +51862,9 @@ OUI:0498F3* + OUI:0499E6* + ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd + ++OUI:049B9C* ++ ID_OUI_FROM_DATABASE=Eadingcore Intelligent Technology Co., Ltd. ++ + OUI:049C62* + ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. + +@@ -52720,6 +52729,9 @@ OUI:08E84F* + OUI:08EA44* + ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. + ++OUI:08EB29* ++ ID_OUI_FROM_DATABASE=Jiangsu Huitong Group Co.,Ltd. ++ + OUI:08EB74* + ID_OUI_FROM_DATABASE=Humax + +@@ -52729,6 +52741,9 @@ OUI:08EBED* + OUI:08EDB9* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:08EE8B* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:08EF3B* + ID_OUI_FROM_DATABASE=MCS Logic Inc. + +@@ -52969,6 +52984,9 @@ OUI:0CAC05* + OUI:0CAF5A* + ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED + ++OUI:0CB319* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:0CB4EF* + ID_OUI_FROM_DATABASE=Digience Co.,Ltd. + +@@ -53036,7 +53054,7 @@ OUI:0CD996* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:0CD9C1* +- ID_OUI_FROM_DATABASE=Johnson Controls-ASG ++ ID_OUI_FROM_DATABASE=Visteon Corporation + + OUI:0CDA41* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited +@@ -53434,6 +53452,9 @@ OUI:10F96F* + OUI:10F9EE* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:10FACE* ++ ID_OUI_FROM_DATABASE=Reacheng Communication Technology Co.,Ltd ++ + OUI:10FBF0* + ID_OUI_FROM_DATABASE=KangSheng LTD. + +@@ -55417,6 +55438,9 @@ OUI:2C441B* + OUI:2C44FD* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:2C5089* ++ ID_OUI_FROM_DATABASE=Shenzhen Kaixuan Visual Technology Co.,Limited ++ + OUI:2C534A* + ID_OUI_FROM_DATABASE=Shenzhen Winyao Electronic Limited + +@@ -55774,6 +55798,9 @@ OUI:306E5C* + OUI:3071B2* + ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. + ++OUI:307350* ++ ID_OUI_FROM_DATABASE=Inpeco SA ++ + OUI:307512* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + +@@ -55972,6 +55999,9 @@ OUI:343111* + OUI:3431C4* + ID_OUI_FROM_DATABASE=AVM GmbH + ++OUI:3438AF* ++ ID_OUI_FROM_DATABASE=Inlab Software GmbH ++ + OUI:3440B5* + ID_OUI_FROM_DATABASE=IBM + +@@ -56323,12 +56353,18 @@ OUI:3826CD* + OUI:3828EA* + ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD + ++OUI:382C4A* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:382DD1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + + OUI:3831AC* + ID_OUI_FROM_DATABASE=WEG + ++OUI:383BC8* ++ ID_OUI_FROM_DATABASE=2wire ++ + OUI:383F10* + ID_OUI_FROM_DATABASE=DBL Technology Ltd. + +@@ -56416,6 +56452,9 @@ OUI:388EE7* + OUI:3891FB* + ID_OUI_FROM_DATABASE=Xenox Holding BV + ++OUI:389496* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:389592* + ID_OUI_FROM_DATABASE=Beijing Tendyron Corporation + +@@ -56605,6 +56644,9 @@ OUI:3C1A79* + OUI:3C1CBE* + ID_OUI_FROM_DATABASE=JADAK LLC + ++OUI:3C1E13* ++ ID_OUI_FROM_DATABASE=HANGZHOU SUNRISE TECHNOLOGY CO., LTD ++ + OUI:3C25D7* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -57343,6 +57385,9 @@ OUI:446C24* + OUI:446D57* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + ++OUI:446D6C* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:44700B* + ID_OUI_FROM_DATABASE=IFFU + +@@ -57778,6 +57823,9 @@ OUI:4C09B4* + OUI:4C0B3A* + ID_OUI_FROM_DATABASE=TCT Mobile Limited + ++OUI:4C0BBE* ++ ID_OUI_FROM_DATABASE=Microsoft ++ + OUI:4C0DEE* + ID_OUI_FROM_DATABASE=JABIL CIRCUIT (SHANGHAI) LTD. + +@@ -58372,6 +58420,9 @@ OUI:50ED94* + OUI:50F003* + ID_OUI_FROM_DATABASE=Open Stack, Inc. + ++OUI:50F43C* ++ ID_OUI_FROM_DATABASE=Leeo Inc ++ + OUI:50F520* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -58405,6 +58456,9 @@ OUI:540536* + OUI:54055F* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:54098D* ++ ID_OUI_FROM_DATABASE=deister electronic GmbH ++ + OUI:54112F* + ID_OUI_FROM_DATABASE=Sulzer Pump Solutions Finland Oy + +@@ -59137,6 +59191,9 @@ OUI:5C93A2* + OUI:5C95AE* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C966A* ++ ID_OUI_FROM_DATABASE=RTNET ++ + OUI:5C969D* + ID_OUI_FROM_DATABASE=Apple + +@@ -59905,6 +59962,9 @@ OUI:64AE0C* + OUI:64AE88* + ID_OUI_FROM_DATABASE=Polytec GmbH + ++OUI:64B21D* ++ ID_OUI_FROM_DATABASE=Chengdu Phycom Tech Co., Ltd. ++ + OUI:64B310* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -59917,6 +59977,9 @@ OUI:64B473* + OUI:64B64A* + ID_OUI_FROM_DATABASE=ViVOtech, Inc. + ++OUI:64B853* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:64B9E8* + ID_OUI_FROM_DATABASE=Apple + +@@ -60208,6 +60271,9 @@ OUI:68974B* + OUI:6897E8* + ID_OUI_FROM_DATABASE=Society of Motion Picture & Television Engineers + ++OUI:6899CD* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:689C5E* + ID_OUI_FROM_DATABASE=AcSiP Technology Corp. + +@@ -60325,6 +60391,9 @@ OUI:68F06D* + OUI:68F125* + ID_OUI_FROM_DATABASE=Data Controls Inc. + ++OUI:68F728* ++ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd ++ + OUI:68F895* + ID_OUI_FROM_DATABASE=Redflow Limited + +@@ -61081,12 +61150,18 @@ OUI:744D79* + OUI:745327* + ID_OUI_FROM_DATABASE=COMMSEN CO., LIMITED + ++OUI:74547D* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:745612* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + + OUI:745798* + ID_OUI_FROM_DATABASE=TRUMPF Laser GmbH + Co. KG + ++OUI:745C9F* ++ ID_OUI_FROM_DATABASE=TCT mobile ltd. ++ + OUI:745E1C* + ID_OUI_FROM_DATABASE=PIONEER CORPORATION + +@@ -62446,6 +62521,9 @@ OUI:842615* + OUI:84262B* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + ++OUI:842690* ++ ID_OUI_FROM_DATABASE=BEIJING THOUGHT SCIENCE CO.,LTD. ++ + OUI:8427CE* + ID_OUI_FROM_DATABASE=Corporation of the Presiding Bishop of The Church of Jesus Christ of Latter-day Saints + +@@ -62506,6 +62584,9 @@ OUI:844F03* + OUI:845181* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:8455A5* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:84569C* + ID_OUI_FROM_DATABASE=Coho Data, Inc., + +@@ -62611,6 +62692,9 @@ OUI:849CA6* + OUI:849DC5* + ID_OUI_FROM_DATABASE=Centera Photonics Inc. + ++OUI:84A466* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:84A6C8* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -62824,6 +62908,9 @@ OUI:886B76* + OUI:88708C* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:8870EF* ++ ID_OUI_FROM_DATABASE=SC Professional Trading Co., Ltd. ++ + OUI:887398* + ID_OUI_FROM_DATABASE=K2E Tekpoint + +@@ -62998,6 +63085,9 @@ OUI:8C006D* + OUI:8C04FF* + ID_OUI_FROM_DATABASE=Technicolor USA Inc. + ++OUI:8C0551* ++ ID_OUI_FROM_DATABASE=Koubachi AG ++ + OUI:8C078C* + ID_OUI_FROM_DATABASE=FLOW DATA INC + +@@ -63181,6 +63271,9 @@ OUI:8C8E76* + OUI:8C90D3* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:8C9109* ++ ID_OUI_FROM_DATABASE=Toyoshima Electric Technoeogy(Suzhou) Co.,Ltd. ++ + OUI:8C9236* + ID_OUI_FROM_DATABASE=Aus.Linx Technology Co., Ltd. + +@@ -64249,6 +64342,9 @@ OUI:98F8C1* + OUI:98F8DB* + ID_OUI_FROM_DATABASE=Marini Impianti Industriali s.r.l. + ++OUI:98FAE3* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:98FB12* + ID_OUI_FROM_DATABASE=Grand Electronics (HK) Ltd + +@@ -64804,6 +64900,9 @@ OUI:A0A130* + OUI:A0A23C* + ID_OUI_FROM_DATABASE=GPMS + ++OUI:A0A3E2* ++ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc ++ + OUI:A0A763* + ID_OUI_FROM_DATABASE=Polytron Vertrieb GmbH + +@@ -64819,6 +64918,9 @@ OUI:A0B100* + OUI:A0B3CC* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A0B4A5* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:A0B5DA* + ID_OUI_FROM_DATABASE=HongKong THTF Co., Ltd + +@@ -65116,6 +65218,9 @@ OUI:A49A58* + OUI:A49B13* + ID_OUI_FROM_DATABASE=Burroughs Payment Systems, Inc. + ++OUI:A49D49* ++ ID_OUI_FROM_DATABASE=Ketra, Inc. ++ + OUI:A49EDB* + ID_OUI_FROM_DATABASE=AutoCrib, Inc. + +@@ -65389,6 +65494,9 @@ OUI:A8776F* + OUI:A87B39* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:A87C01* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:A87E33* + ID_OUI_FROM_DATABASE=Nokia Danmark A/S + +@@ -65479,6 +65587,9 @@ OUI:A8CCC5* + OUI:A8CE90* + ID_OUI_FROM_DATABASE=CVC + ++OUI:A8D0E3* ++ ID_OUI_FROM_DATABASE=Systech Electronics Ltd. ++ + OUI:A8D0E5* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -65488,6 +65599,9 @@ OUI:A8D236* + OUI:A8D3C8* + ID_OUI_FROM_DATABASE=Wachendorff Elektronik GmbH & Co. KG + ++OUI:A8D88A* ++ ID_OUI_FROM_DATABASE=Wyconn ++ + OUI:A8E018* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -65602,6 +65716,9 @@ OUI:AC3613* + OUI:AC3870* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:AC3A7A* ++ ID_OUI_FROM_DATABASE=Roku ++ + OUI:AC3C0B* + ID_OUI_FROM_DATABASE=Apple + +@@ -66049,6 +66166,9 @@ OUI:B09074* + OUI:B09134* + ID_OUI_FROM_DATABASE=Taleo + ++OUI:B09137* ++ ID_OUI_FROM_DATABASE=ISis ImageStream Internet Solutions, Inc ++ + OUI:B0973A* + ID_OUI_FROM_DATABASE=E-Fuel Corporation + +@@ -66271,6 +66391,9 @@ OUI:B435F7* + OUI:B43741* + ID_OUI_FROM_DATABASE=Consert, Inc. + ++OUI:B43934* ++ ID_OUI_FROM_DATABASE=Pen Generations, Inc. ++ + OUI:B439D6* + ID_OUI_FROM_DATABASE=ProCurve Networking by HP + +@@ -66397,6 +66520,9 @@ OUI:B4A4E3* + OUI:B4A5A9* + ID_OUI_FROM_DATABASE=MODI GmbH + ++OUI:B4A828* ++ ID_OUI_FROM_DATABASE=Shenzhen Concox Information Technology Co., Ltd ++ + OUI:B4A82B* + ID_OUI_FROM_DATABASE=Histar Digital Electronics Co., Ltd. + +@@ -67114,6 +67240,9 @@ OUI:BCBAE1* + OUI:BCBBC9* + ID_OUI_FROM_DATABASE=Kellendonk Elektronik GmbH + ++OUI:BCBC46* ++ ID_OUI_FROM_DATABASE=SKS Welding Systems GmbH ++ + OUI:BCC168* + ID_OUI_FROM_DATABASE=DinBox Sverige AB + +@@ -67840,6 +67969,9 @@ OUI:C819F7* + OUI:C81AFE* + ID_OUI_FROM_DATABASE=DLOGIC GmbH + ++OUI:C81B6B* ++ ID_OUI_FROM_DATABASE=Innova Security ++ + OUI:C81E8E* + ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd + +@@ -68530,6 +68662,9 @@ OUI:D01AA7* + OUI:D01CBB* + ID_OUI_FROM_DATABASE=Beijing Ctimes Digital Technology Co., Ltd. + ++OUI:D02212* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:D022BE* + ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. + +@@ -69259,6 +69394,9 @@ OUI:D831CF* + OUI:D8337F* + ID_OUI_FROM_DATABASE=Office FA.com Co.,Ltd. + ++OUI:D83C69* ++ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp ++ + OUI:D842AC* + ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. + +@@ -69349,6 +69487,9 @@ OUI:D88039* + OUI:D881CE* + ID_OUI_FROM_DATABASE=AHN INC. + ++OUI:D88466* ++ ID_OUI_FROM_DATABASE=Extreme Networks ++ + OUI:D88A3B* + ID_OUI_FROM_DATABASE=UNIT-EM + +@@ -69376,6 +69517,9 @@ OUI:D89760* + OUI:D8977C* + ID_OUI_FROM_DATABASE=Grey Innovation + ++OUI:D897BA* ++ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION ++ + OUI:D89D67* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -69442,6 +69586,9 @@ OUI:D8C7C8* + OUI:D8C99D* + ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED + ++OUI:D8CB8A* ++ ID_OUI_FROM_DATABASE=Micro-Star INTL CO., LTD. ++ + OUI:D8CF9C* + ID_OUI_FROM_DATABASE=Apple + +@@ -69505,6 +69652,9 @@ OUI:D8EE78* + OUI:D8F0F2* + ID_OUI_FROM_DATABASE=Zeebo Inc + ++OUI:D8F710* ++ ID_OUI_FROM_DATABASE=Libre Wireless Technologies Inc. ++ + OUI:D8FB11* + ID_OUI_FROM_DATABASE=AXACORE + +@@ -69749,7 +69899,7 @@ OUI:DCD87F* + ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd + + OUI:DCDA4F* +- ID_OUI_FROM_DATABASE=GET Technology,INC ++ ID_OUI_FROM_DATABASE=GETCK TECHNOLOGY, INC + + OUI:DCDECA* + ID_OUI_FROM_DATABASE=Akyllor +@@ -69763,6 +69913,9 @@ OUI:DCE578* + OUI:DCE71C* + ID_OUI_FROM_DATABASE=AUG Elektronik GmbH + ++OUI:DCEC06* ++ ID_OUI_FROM_DATABASE=Heimi Network Technology Co., Ltd. ++ + OUI:DCF05D* + ID_OUI_FROM_DATABASE=Letta Teknoloji + +@@ -69856,6 +70009,9 @@ OUI:E039D7* + OUI:E03C5B* + ID_OUI_FROM_DATABASE=SHENZHEN JIAXINJIE ELECTRON CO.,LTD + ++OUI:E03E44* ++ ID_OUI_FROM_DATABASE=Broadcom Corporation ++ + OUI:E03E4A* + ID_OUI_FROM_DATABASE=Cavanagh Group International + +@@ -70378,6 +70534,9 @@ OUI:E4F4C6* + OUI:E4F7A1* + ID_OUI_FROM_DATABASE=Datafox GmbH + ++OUI:E4F8EF* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:E4FA1D* + ID_OUI_FROM_DATABASE=PAD Peripheral Advanced Design Inc. + +@@ -70549,6 +70708,9 @@ OUI:E8802E* + OUI:E880D8* + ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. + ++OUI:E887A3* ++ ID_OUI_FROM_DATABASE=Loxley Public Company Limited ++ + OUI:E8892C* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -70627,6 +70789,9 @@ OUI:E8C320* + OUI:E8CBA1* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:E8CC18* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:E8CC32* + ID_OUI_FROM_DATABASE=Micronet LTD + +@@ -71008,6 +71173,9 @@ OUI:F015A0* + OUI:F01C13* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:F01C2D* ++ ID_OUI_FROM_DATABASE=Juniper Networks ++ + OUI:F01FAF* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -71398,6 +71566,9 @@ OUI:F4472A* + OUI:F44848* + ID_OUI_FROM_DATABASE=Amscreen Group Ltd + ++OUI:F44E05* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F44EFD* + ID_OUI_FROM_DATABASE=Actions Semiconductor Co.,Ltd.(Cayman Islands) + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index a6a2754..3bcdbc0 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -10478,6 +10478,9 @@ pci:v00001014d0000034Asv00001014sd000004C8* + pci:v00001014d0000034Asv00001014sd00000C49* + ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) + ++pci:v00001014d0000044B* ++ ID_MODEL_FROM_DATABASE=GenWQE Accelerator Adapter ++ + pci:v00001014d000004AA* + ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) + +@@ -26387,6 +26390,9 @@ pci:v000010DEd00000FE2* + pci:v000010DEd00000FE3* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] + ++pci:v000010DEd00000FE3sv0000103Csd00002B16* ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) ++ + pci:v000010DEd00000FE3sv000017AAsd00003675* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) + +@@ -26420,6 +26426,9 @@ pci:v000010DEd00000FF1* + pci:v000010DEd00000FF2* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K1] + ++pci:v000010DEd00000FF3* ++ ID_MODEL_FROM_DATABASE=GK107GL [Quadro K420] ++ + pci:v000010DEd00000FF5* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K1 Tesla USM] + +@@ -26546,6 +26555,9 @@ pci:v000010DEd00001029* + pci:v000010DEd0000103A* + ID_MODEL_FROM_DATABASE=GK110GL [Quadro K6000] + ++pci:v000010DEd0000103C* ++ ID_MODEL_FROM_DATABASE=GK110GL [Quadro K5200] ++ + pci:v000010DEd00001040* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 520] + +@@ -26981,6 +26993,12 @@ pci:v000010DEd00001140sv00001028sd000005F4* + pci:v000010DEd00001140sv00001028sd0000064E* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + ++pci:v000010DEd00001140sv00001028sd00000652* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001028sd00000662* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001028sd0000068D* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + +@@ -27239,9 +27257,15 @@ pci:v000010DEd00001140sv0000152Dsd00000982* + pci:v000010DEd00001140sv0000152Dsd00000983* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + ++pci:v000010DEd00001140sv0000152Dsd00001005* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 820M) ++ + pci:v000010DEd00001140sv0000152Dsd00001012* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + ++pci:v000010DEd00001140sv0000152Dsd00001019* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv0000152Dsd00001030* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + +@@ -27254,6 +27278,9 @@ pci:v000010DEd00001140sv0000152Dsd00001067* + pci:v000010DEd00001140sv0000152Dsd00001072* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv0000152Dsd00001086* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv000017AAsd00002200* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + +@@ -27578,6 +27605,9 @@ pci:v000010DEd000011B0sv000010DEsd0000101B* + pci:v000010DEd000011B1* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] + ++pci:v000010DEd000011B4* ++ ID_MODEL_FROM_DATABASE=GK104GL [Quadro K4200] ++ + pci:v000010DEd000011B6* + ID_MODEL_FROM_DATABASE=GK104GLM [Quadro K3100M] + +@@ -27863,6 +27893,9 @@ pci:v000010DEd00001295sv0000103Csd00002B0F* + pci:v000010DEd00001295sv0000103Csd00002B11* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) + ++pci:v000010DEd00001295sv0000103Csd00002B20* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce 810A) ++ + pci:v000010DEd00001295sv0000103Csd00002B21* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) + +@@ -27887,6 +27920,9 @@ pci:v000010DEd000012BA* + pci:v000010DEd00001340* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] + ++pci:v000010DEd00001340sv0000103Csd00002B2B* ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] (GeForce 830A) ++ + pci:v000010DEd00001341* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] + +@@ -27926,6 +27962,15 @@ pci:v000010DEd00001392* + pci:v000010DEd00001393* + ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] + ++pci:v000010DEd000013B3* ++ ID_MODEL_FROM_DATABASE=GM107GLM [Quadro K2200M] ++ ++pci:v000010DEd000013BA* ++ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K2200] ++ ++pci:v000010DEd000013BB* ++ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K620] ++ + pci:v000010DF* + ID_VENDOR_FROM_DATABASE=Emulex Corporation + +@@ -29291,6 +29336,9 @@ pci:v00001103d00000622* + pci:v00001103d00000640* + ID_MODEL_FROM_DATABASE=RocketRAID 640 4 Port SATA-III Controller + ++pci:v00001103d00000644* ++ ID_MODEL_FROM_DATABASE=RocketRAID 644 4 Port SATA-III Controller (eSATA) ++ + pci:v00001103d00001720* + ID_MODEL_FROM_DATABASE=RocketRAID 1720 (2x SATA II RAID Controller) + +@@ -40325,6 +40373,12 @@ pci:v00001360d00000205* + pci:v00001360d00000206* + ID_MODEL_FROM_DATABASE=GPS180PEX GPS Receiver (PCI Express) + ++pci:v00001360d00000207* ++ ID_MODEL_FROM_DATABASE=GLN180PEX GPS/GLONASS receiver (PCI Express) ++ ++pci:v00001360d00000208* ++ ID_MODEL_FROM_DATABASE=GPS180AMC GPS Receiver (PCI Express / MicroTCA / AdvancedMC) ++ + pci:v00001360d00000301* + ID_MODEL_FROM_DATABASE=TCR510PCI IRIG Timecode Reader + +@@ -41525,6 +41579,9 @@ pci:v000013F6d00008788sv00001043sd00008428* + pci:v000013F6d00008788sv00001043sd00008467* + ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) + ++pci:v000013F6d00008788sv00001043sd000085F4* ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX II)) ++ + pci:v000013F6d00008788sv000013F6sd00008782* + ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) + +@@ -45905,6 +45962,9 @@ pci:v000014E4d000043A0* + pci:v000014E4d000043A9* + ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n + ++pci:v000014E4d000043AA* ++ ID_MODEL_FROM_DATABASE=BCM43131 802.11b/g/n ++ + pci:v000014E4d000043B1* + ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter + +@@ -46884,7 +46944,7 @@ pci:v000014F1d00008852* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder + + pci:v000014F1d00008852sv00000070sd00008010* +- ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinTV HVR-1400 ExpressCard) + + pci:v000014F1d00008852sv0000107Dsd00006F22* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) +@@ -46898,6 +46958,9 @@ pci:v000014F1d00008852sv0000153Bsd0000117E* + pci:v000014F1d00008852sv000018ACsd0000DB78* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) + ++pci:v000014F1d00008852sv00004254sd00009580* ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (T9580) ++ + pci:v000014F1d00008880* + ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb + +@@ -47438,6 +47501,18 @@ pci:v00001542* + pci:v00001542d00009260* + ID_MODEL_FROM_DATABASE=RCIM-II Real-Time Clock & Interrupt Module + ++pci:v00001542d00009272* ++ ID_MODEL_FROM_DATABASE=Pulse Width Modulator Card ++ ++pci:v00001542d00009277* ++ ID_MODEL_FROM_DATABASE=5 Volt Delta Sigma Converter Card ++ ++pci:v00001542d00009278* ++ ID_MODEL_FROM_DATABASE=10 Volt Delta Sigma Converter Card ++ ++pci:v00001542d00009287* ++ ID_MODEL_FROM_DATABASE=Analog Output Card ++ + pci:v00001543* + ID_VENDOR_FROM_DATABASE=SILICON Laboratories + +@@ -49505,6 +49580,9 @@ pci:v000016B8* + pci:v000016BE* + ID_VENDOR_FROM_DATABASE=Creatix Polymedia GmbH + ++pci:v000016C3* ++ ID_VENDOR_FROM_DATABASE=Synopsys, Inc. ++ + pci:v000016C6* + ID_VENDOR_FROM_DATABASE=Micrel-Kendin + +@@ -53936,6 +54014,9 @@ pci:v0000416Cd00000100* + pci:v0000416Cd00000200* + ID_MODEL_FROM_DATABASE=CPC + ++pci:v00004254* ++ ID_VENDOR_FROM_DATABASE=DVBSky ++ + pci:v00004321* + ID_VENDOR_FROM_DATABASE=Tata Power Strategic Electronics Division + +@@ -59621,6 +59702,12 @@ pci:v00008086d000015A2* + pci:v00008086d000015A3* + ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V + ++pci:v00008086d000015B7* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-V ++ ++pci:v00008086d000015B8* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-LM ++ + pci:v00008086d00001600* + ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI + +@@ -69614,6 +69701,9 @@ pci:v00008086d00003B23* + pci:v00008086d00003B25* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller + ++pci:v00008086d00003B25sv0000103Csd00003118* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller (HP Smart Array B110i SATA RAID Controller) ++ + pci:v00008086d00003B26* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller + +@@ -70718,6 +70808,489 @@ pci:v00008086d000065FA* + pci:v00008086d000065FF* + ID_MODEL_FROM_DATABASE=5100 Chipset DMA Engine + ++pci:v00008086d00006F00* ++ ID_MODEL_FROM_DATABASE=Broadwell DMI2 ++ ++pci:v00008086d00006F01* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 0 ++ ++pci:v00008086d00006F02* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 ++ ++pci:v00008086d00006F03* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 ++ ++pci:v00008086d00006F04* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F05* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F06* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F07* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F08* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F09* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F0A* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F0B* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F10* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F11* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F12* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F13* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F14* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F15* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F16* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F17* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F18* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F19* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1A* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1B* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1C* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1D* ++ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent ++ ++pci:v00008086d00006F1E* ++ ID_MODEL_FROM_DATABASE=Broadwell Ubox ++ ++pci:v00008086d00006F1F* ++ ID_MODEL_FROM_DATABASE=Broadwell Ubox ++ ++pci:v00008086d00006F20* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 0 ++ ++pci:v00008086d00006F21* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 1 ++ ++pci:v00008086d00006F22* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 2 ++ ++pci:v00008086d00006F23* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 3 ++ ++pci:v00008086d00006F24* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 4 ++ ++pci:v00008086d00006F25* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 5 ++ ++pci:v00008086d00006F26* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 6 ++ ++pci:v00008086d00006F27* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 7 ++ ++pci:v00008086d00006F28* ++ ID_MODEL_FROM_DATABASE=Broadwell Adress Map/VTd_Misc/System Management ++ ++pci:v00008086d00006F29* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Hot Plug ++ ++pci:v00008086d00006F2A* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO RAS/Control Status/Global Errors ++ ++pci:v00008086d00006F2C* ++ ID_MODEL_FROM_DATABASE=Broadwell I/O APIC ++ ++pci:v00008086d00006F30* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 ++ ++pci:v00008086d00006F32* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 ++ ++pci:v00008086d00006F33* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 ++ ++pci:v00008086d00006F34* ++ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent ++ ++pci:v00008086d00006F36* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 ++ ++pci:v00008086d00006F37* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 ++ ++pci:v00008086d00006F38* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 ++ ++pci:v00008086d00006F39* ++ ID_MODEL_FROM_DATABASE=Broadwell IO Performance Monitoring ++ ++pci:v00008086d00006F3A* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 ++ ++pci:v00008086d00006F3E* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 ++ ++pci:v00008086d00006F3F* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 ++ ++pci:v00008086d00006F40* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 ++ ++pci:v00008086d00006F41* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 ++ ++pci:v00008086d00006F43* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 ++ ++pci:v00008086d00006F45* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug ++ ++pci:v00008086d00006F46* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug ++ ++pci:v00008086d00006F47* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug ++ ++pci:v00008086d00006F60* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 ++ ++pci:v00008086d00006F68* ++ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS ++ ++pci:v00008086d00006F6A* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6B* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6C* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6D* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6E* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Broadcast ++ ++pci:v00008086d00006F6F* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast ++ ++pci:v00008086d00006F70* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 Debug ++ ++pci:v00008086d00006F71* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS ++ ++pci:v00008086d00006F76* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug ++ ++pci:v00008086d00006F78* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 Debug ++ ++pci:v00008086d00006F79* ++ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS ++ ++pci:v00008086d00006F7D* ++ ID_MODEL_FROM_DATABASE=Broadwell Ubox ++ ++pci:v00008086d00006F7E* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug ++ ++pci:v00008086d00006F80* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 ++ ++pci:v00008086d00006F81* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 ++ ++pci:v00008086d00006F83* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 ++ ++pci:v00008086d00006F85* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug ++ ++pci:v00008086d00006F86* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug ++ ++pci:v00008086d00006F87* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug ++ ++pci:v00008086d00006F88* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F8A* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F90* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 ++ ++pci:v00008086d00006F93* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 ++ ++pci:v00008086d00006F95* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug ++ ++pci:v00008086d00006F96* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug ++ ++pci:v00008086d00006F98* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F99* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F9A* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F9C* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FA0* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 ++ ++pci:v00008086d00006FA8* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS ++ ++pci:v00008086d00006FAA* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAB* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAC* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAD* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAE* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Broadcast ++ ++pci:v00008086d00006FAF* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast ++ ++pci:v00008086d00006FB0* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Thermal Control ++ ++pci:v00008086d00006FB1* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Thermal Control ++ ++pci:v00008086d00006FB2* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Error ++ ++pci:v00008086d00006FB3* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Error ++ ++pci:v00008086d00006FB4* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Thermal Control ++ ++pci:v00008086d00006FB5* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Thermal Control ++ ++pci:v00008086d00006FB6* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Error ++ ++pci:v00008086d00006FB7* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Error ++ ++pci:v00008086d00006FB8* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FB9* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FBA* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FBB* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FBC* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FBD* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FBE* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FBF* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FC0* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC1* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC2* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC3* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC4* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC5* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC6* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC7* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC8* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC9* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCA* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCB* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCC* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCD* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCE* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCF* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FD0* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Thermal Control ++ ++pci:v00008086d00006FD1* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Thermal Control ++ ++pci:v00008086d00006FD2* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Error ++ ++pci:v00008086d00006FD3* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Error ++ ++pci:v00008086d00006FD4* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Thermal Control ++ ++pci:v00008086d00006FD5* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Thermal Control ++ ++pci:v00008086d00006FD6* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Error ++ ++pci:v00008086d00006FD7* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Error ++ ++pci:v00008086d00006FE0* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE1* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE2* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE3* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE4* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE5* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE6* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE7* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE8* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE9* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEA* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEB* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEC* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FED* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEE* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEF* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF0* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF1* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF8* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF9* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFA* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFB* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFC* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFD* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFE* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ + pci:v00008086d00007000* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] + +@@ -73838,8 +74411,23 @@ pci:v0000D161d0000800A* + pci:v0000D161d0000800B* + ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card + ++pci:v0000D161d0000800C* ++ ID_MODEL_FROM_DATABASE=Wildcard A8A 8-port analog card ++ ++pci:v0000D161d0000800D* ++ ID_MODEL_FROM_DATABASE=Wildcard A8B 8-port analog card (PCI-Express) ++ + pci:v0000D161d0000800E* +- ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) ++ ID_MODEL_FROM_DATABASE=Wildcard TE235/TE435 quad-span T1/E1/J1 card (PCI-Express) ++ ++pci:v0000D161d0000800F* ++ ID_MODEL_FROM_DATABASE=Wildcard A4A 4-port analog card ++ ++pci:v0000D161d00008010* ++ ID_MODEL_FROM_DATABASE=Wildcard A4B 4-port analog card (PCI-Express) ++ ++pci:v0000D161d00008013* ++ ID_MODEL_FROM_DATABASE=Wildcard TE236/TE436 quad-span T1/E1/J1 card + + pci:v0000D161d0000B410* + ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index ed6b2b1..d87313c 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -11243,6 +11243,9 @@ usb:v04A9p3261* + usb:v04A9p3262* + ID_MODEL_FROM_DATABASE=PowerShot A2600 + ++usb:v04A9p3263* ++ ID_MODEL_FROM_DATABASE=PowerShot SX275 HS ++ + usb:v04A9p3264* + ID_MODEL_FROM_DATABASE=PowerShot A1400 + +@@ -11261,6 +11264,9 @@ usb:v04A9p3276* + usb:v04A9p3277* + ID_MODEL_FROM_DATABASE=PowerShot SX510 HS + ++usb:v04A9p3278* ++ ID_MODEL_FROM_DATABASE=PowerShot S200 ++ + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + +@@ -11666,6 +11672,9 @@ usb:v04B4p2050* + usb:v04B4p2830* + ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) + ++usb:v04B4p3813* ++ ID_MODEL_FROM_DATABASE=NANO BIOS Programmer ++ + usb:v04B4p4235* + ID_MODEL_FROM_DATABASE=Monitor 02 Driver + +@@ -33116,6 +33125,9 @@ usb:v0B48p300D* + usb:v0B48p300E* + ID_MODEL_FROM_DATABASE=TT-connect C-2400 + ++usb:v0B48p3012* ++ ID_MODEL_FROM_DATABASE=TT-connect CT2-4650 CI ++ + usb:v0B48p3014* + ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 + +-- +1.7.9.2 + diff --git a/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch b/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch new file mode 100644 index 00000000..b189c671 --- /dev/null +++ b/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch @@ -0,0 +1,32 @@ +From 7c96ab1d2484ab2df3c6a84f1a1d2e076f469085 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 13 Aug 2014 20:01:19 +0200 +Subject: [PATCH] mount-setup: fix counting of early mounts without SMACK + +http://lists.freedesktop.org/archives/systemd-devel/2014-August/021772.html +--- + src/core/mount-setup.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index 206f89a..cc2633e 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -63,8 +63,13 @@ typedef struct MountPoint { + + /* The first three entries we might need before SELinux is up. The + * fourth (securityfs) is needed by IMA to load a custom policy. The +- * other ones we can delay until SELinux and IMA are loaded. */ ++ * other ones we can delay until SELinux and IMA are loaded. When ++ * SMACK is enabled we need smackfs, too, so it's a fifth one. */ ++#ifdef HAVE_SMACK + #define N_EARLY_MOUNT 5 ++#else ++#define N_EARLY_MOUNT 4 ++#endif + + static const MountPoint mount_table[] = { + { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +-- +1.7.9.2 + diff --git a/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch b/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch new file mode 100644 index 00000000..864b9982 --- /dev/null +++ b/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch @@ -0,0 +1,29 @@ +From b9c488f60050248b35640f28e4d00958702ba1c3 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Wed, 6 Aug 2014 13:14:51 +0200 +Subject: [PATCH] journald: Fix off-by-one error in "Missed X kernel messages" + warning + +On receiving a message, "kernel_seqnum" is set to "serial + 1". So +subtracting 1 will cause messages like "Missed 0 kernel messages", +which should be "Missed 1 kernel messages". +--- + src/journal/journald-kmsg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c +index 9935986..fb8ea08 100644 +--- src/journal/journald-kmsg.c ++++ src/journal/journald-kmsg.c +@@ -152,7 +152,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { + /* Did we lose any? */ + if (serial > *s->kernel_seqnum) + server_driver_message(s, SD_MESSAGE_JOURNAL_MISSED, "Missed %"PRIu64" kernel messages", +- serial - *s->kernel_seqnum - 1); ++ serial - *s->kernel_seqnum); + + /* Make sure we never read this one again. Note that + * we always store the next message serial we expect +-- +1.7.9.2 + diff --git a/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch b/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch new file mode 100644 index 00000000..cd65acf9 --- /dev/null +++ b/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch @@ -0,0 +1,32 @@ +From 9d685ca8193c0da3ad5746be3871f5350179a3b3 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Thu, 14 Aug 2014 19:59:16 +0200 +Subject: [PATCH] machine_kill(): Don't kill the unit when killing the leader + +If "machinectl poweroff" or "machinectl reboot" is used on a +systemd-nspawn container started with --keep-unit and --register, it +should *only* send the appropriate signal to the leader PID (i.e. the +container's systemd process). It shouldn't fall through to +manager_kill_unit() to also send the signal to the unit. The latter +ends up killing systemd-nspawn, which takes down the container +prematurely. +--- + src/machine/machine.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/machine/machine.c src/machine/machine.c +index 1c9177e..13d3448 100644 +--- src/machine/machine.c ++++ src/machine/machine.c +@@ -493,6 +493,8 @@ int machine_kill(Machine *m, KillWho who, int signo) { + + if (kill(m->leader, signo) < 0) + return -errno; ++ ++ return 0; + } + + /* Otherwise make PID 1 do it for us, for the entire cgroup */ +-- +1.7.9.2 + diff --git a/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch b/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch new file mode 100644 index 00000000..7dee5011 --- /dev/null +++ b/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch @@ -0,0 +1,93 @@ +From ff50244582bf69e8489bba6ce59a21663d7f8274 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 18 Aug 2014 22:21:42 +0200 +Subject: [PATCH] units: fix BindsTo= logic when applied relative to services + with Type=oneshot +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Start jobs for Type=oneshot units are successful when the unit state +transition activating → inactive took place. In such a case all units +that BindsTo= on it previously would continue to run, even though the unit +they dependet on was actually already gone. +--- + src/core/unit.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 44 insertions(+), 4 deletions(-) + +diff --git src/core/unit.c src/core/unit.c +index a5f6b2e..950b83a 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1471,12 +1471,44 @@ static void unit_check_unneeded(Unit *u) { + if (unit_active_or_pending(other)) + return; + +- log_info_unit(u->id, "Service %s is not needed anymore. Stopping.", u->id); ++ log_info_unit(u->id, "Unit %s is not needed anymore. Stopping.", u->id); + + /* Ok, nobody needs us anymore. Sniff. Then let's commit suicide */ + manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); + } + ++static void unit_check_binds_to(Unit *u) { ++ bool stop = false; ++ Unit *other; ++ Iterator i; ++ ++ assert(u); ++ ++ if (u->job) ++ return; ++ ++ if (unit_active_state(u) != UNIT_ACTIVE) ++ return; ++ ++ SET_FOREACH(other, u->dependencies[UNIT_BINDS_TO], i) { ++ if (other->job) ++ continue; ++ ++ if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) ++ continue; ++ ++ stop = true; ++ } ++ ++ if (!stop) ++ return; ++ ++ log_info_unit(u->id, "Unit %s is bound to inactive service. Stopping, too.", u->id); ++ ++ /* A unit we need to run is gone. Sniff. Let's stop this. */ ++ manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); ++} ++ + static void retroactively_start_dependencies(Unit *u) { + Iterator i; + Unit *other; +@@ -1788,11 +1820,19 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + manager_recheck_journal(m); + unit_trigger_notify(u); + +- /* Maybe we finished startup and are now ready for being +- * stopped because unneeded? */ +- if (u->manager->n_reloading <= 0) ++ if (u->manager->n_reloading <= 0) { ++ /* Maybe we finished startup and are now ready for ++ * being stopped because unneeded? */ + unit_check_unneeded(u); + ++ /* Maybe we finished startup, but something we needed ++ * has vanished? Let's die then. (This happens when ++ * something BindsTo= to a Type=oneshot unit, as these ++ * units go directly from starting to inactive, ++ * without ever entering started.) */ ++ unit_check_binds_to(u); ++ } ++ + unit_add_to_dbus_queue(u); + unit_add_to_gc_queue(u); + } +-- +1.7.9.2 + diff --git a/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch b/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch new file mode 100644 index 00000000..becc7844 --- /dev/null +++ b/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch @@ -0,0 +1,36 @@ +From 70421bdce2719d76efffd8afdc28433c75aac5a2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 18 Aug 2014 23:15:51 +0200 +Subject: [PATCH] util: try to be a bit more NFS compatible when checking + whether an FS is writable + +https://bugs.freedesktop.org/show_bug.cgi?id=81169 +--- + src/shared/path-util.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git src/shared/path-util.c src/shared/path-util.c +index 57554cd..67566bc 100644 +--- src/shared/path-util.c ++++ src/shared/path-util.c +@@ -533,7 +533,16 @@ int path_is_read_only_fs(const char *path) { + if (statvfs(path, &st) < 0) + return -errno; + +- return !!(st.f_flag & ST_RDONLY); ++ if (st.f_flag & ST_RDONLY) ++ return true; ++ ++ /* On NFS, statvfs() might not reflect whether we can actually ++ * write to the remote share. Let's try again with ++ * access(W_OK) which is more reliable, at least sometimes. */ ++ if (access(path, W_OK) < 0 && errno == EROFS) ++ return true; ++ ++ return false; + } + + int path_is_os_tree(const char *path) { +-- +1.7.9.2 + diff --git a/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch b/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch new file mode 100644 index 00000000..06966c4c --- /dev/null +++ b/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch @@ -0,0 +1,96 @@ +Based on e98bbfd2074e2b1079b7059341eac25741baf319 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 4 Aug 2014 18:15:34 +0200 +Subject: [PATCH] udev: path_id - suppress ID_PATH for devices with an unknown + parent device type + +https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1321816 +--- + src/udev/udev-builtin-path_id.c | 38 +++++++++++++++++++++++++++----------- + 1 file changed, 27 insertions(+), 11 deletions(-) + +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c 2014-08-22 14:08:59.250235369 +0000 +@@ -524,7 +524,8 @@ static int builtin_path_id(struct udev_d + { + struct udev_device *parent; + char *path = NULL; +- bool some_transport = false; ++ bool supported_transport = false; ++ bool supported_parent = false; + + /* S390 ccw bus */ + parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL); +@@ -545,47 +546,62 @@ static int builtin_path_id(struct udev_d + handle_scsi_tape(parent, &path); + } else if (streq(subsys, "scsi")) { + parent = handle_scsi(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "cciss")) { + parent = handle_cciss(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "usb")) { + parent = handle_usb(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "bcma")) { + parent = handle_bcma(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "serio")) { + path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent)); + parent = skip_subsystem(parent, "serio"); + } else if (streq(subsys, "pci")) { + path_prepend(&path, "pci-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "pci"); ++ supported_parent = true; + } else if (streq(subsys, "platform")) { + path_prepend(&path, "platform-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "platform"); +- some_transport = true; ++ supported_transport = true; ++ supported_parent = true; + } else if (streq(subsys, "acpi")) { + path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "acpi"); ++ supported_parent = true; + } else if (streq(subsys, "xen")) { + path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "xen"); ++ supported_parent = true; + } else if (streq(subsys, "scm")) { + path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "scm"); +- some_transport = true; ++ supported_transport = true; ++ supported_parent = true; + } + + parent = udev_device_get_parent(parent); + } + + /* +- * Do not return a single-parent-device-only for block +- * devices, they might have entire buses behind it which +- * do not get unique IDs only by using the parent device. ++ * Do return devices with have an unknown type of parent device, they ++ * might produce conflicting IDs below multiple independent parent ++ * devices. + */ +- if (!some_transport && streq(udev_device_get_subsystem(dev), "block")) { ++ if (!supported_parent) { ++ free(path); ++ path = NULL; ++ } ++ ++ /* ++ * Do not return a have-only a single-parent block devices, some ++ * have entire hidden buses behind it, and not create predictable ++ * IDs that way. ++ */ ++ if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { + free(path); + path = NULL; + } diff --git a/systemd-mini.changes b/systemd-mini.changes index d691713d..6a8f2c70 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de + +- Add upstream patches for hwdb + 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch + 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch + 0003-keymap-Fix-HP-Pavillon-DV7.patch + 0004-hwdb-update-format-description-and-document-reloadin.patch + 0008-hwdb-update.patch + +------------------------------------------------------------------- +Tue Aug 26 11:25:57 UTC 2014 - werner@suse.de + +- Port back and add the missed upstream patches from 2014/08/22 + 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch + 0006-login-share-VT-signal-handler-between-sessions.patch + +------------------------------------------------------------------- +Fri Aug 22 15:12:23 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch + 0002-switch-root-umount-the-old-root-correctly.patch + 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch + 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch + 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch + 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch + 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch + 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch + 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch + 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch + 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch + +------------------------------------------------------------------- +Fri Aug 22 01:29:06 UTC 2014 - crrodriguez@opensuse.org + +- man pages from section 3 are developer docs, move them to + the -devel package. + +------------------------------------------------------------------- +Wed Aug 20 15:06:25 UTC 2014 - werner@suse.de + +- Add patch 0001-let-systemctl-completion-ignore-at-names.patch to + remove error messages for tab completion for systemctl isolate (bnc#892162) + +------------------------------------------------------------------- +Mon Aug 18 14:40:55 UTC 2014 - werner@suse.de + +- Disable the usage of the systemd groups wheel and adm (bnc#892300) + ------------------------------------------------------------------- Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 98a2cf3c..887777cd 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -40,6 +40,7 @@ %bcond_with blkrrpart %bcond_with udevsettle %endif +%bcond_with systemgrps Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -761,6 +762,42 @@ Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch Patch366: tomcat6-var-lock-subsys-legacy.patch # PATCH-FIX-UPSTREAM added at 2014/08/01 Patch367: 0007-hwdb-update.patch +# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) +Patch368: 0001-let-systemctl-completion-ignore-at-names.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch370: 0002-switch-root-umount-the-old-root-correctly.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch385: 0008-hwdb-update.patch # UDEV PATCHES # ============ @@ -892,6 +929,8 @@ Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.p Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch +# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1418,6 +1457,24 @@ cp %{SOURCE7} m4/ %patch365 -p0 %patch366 -p1 %patch367 -p0 +%patch368 -p1 +%patch369 -p0 +%patch370 -p0 +%patch371 -p0 +%patch372 -p0 +%patch373 -p0 +%patch374 -p0 +%patch375 -p0 +%patch376 -p0 +%patch377 -p0 +%patch378 -p0 +%patch379 -p0 +%patch380 -p0 +%patch381 -p0 +%patch382 -p0 +%patch383 -p0 +%patch384 -p0 +%patch385 -p0 # udev patches %patch1001 -p1 @@ -1503,6 +1560,10 @@ cp %{SOURCE7} m4/ %patch1060 -p1 %patch1061 -p0 %patch1062 -p1 +%patch1063 -p0 + +# remove patch backups +find -name '*.orig' -exec rm -f '{}' \+ # ensure generate files are removed rm -f units/emergency.service @@ -1904,8 +1965,10 @@ if read ID < /etc/machine-id > /dev/null 2>&1 ; then chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : fi +%if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +%endif # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -2065,8 +2128,10 @@ exit 0 %if %{with permission} %set_permissions %{_localstatedir}/log/journal/ %endif +%if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +%endif if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : @@ -2283,7 +2348,6 @@ exit 0 %exclude %{_mandir}/man*/*udev*.[0-9]* %exclude %{_mandir}/man8/systemd-journal-gatewayd.* %{_mandir}/man1/*.1* -%{_mandir}/man3/*.3* %{_mandir}/man5/*.5* %{_mandir}/man7/*.7* %{_mandir}/man8/*.8* @@ -2345,6 +2409,9 @@ exit 0 %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc +%if ! 0%{?bootstrap} +%{_mandir}/man3/*.3* +%endif %files sysvinit %defattr(-,root,root,-) diff --git a/systemd.changes b/systemd.changes index d691713d..6a8f2c70 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de + +- Add upstream patches for hwdb + 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch + 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch + 0003-keymap-Fix-HP-Pavillon-DV7.patch + 0004-hwdb-update-format-description-and-document-reloadin.patch + 0008-hwdb-update.patch + +------------------------------------------------------------------- +Tue Aug 26 11:25:57 UTC 2014 - werner@suse.de + +- Port back and add the missed upstream patches from 2014/08/22 + 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch + 0006-login-share-VT-signal-handler-between-sessions.patch + +------------------------------------------------------------------- +Fri Aug 22 15:12:23 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch + 0002-switch-root-umount-the-old-root-correctly.patch + 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch + 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch + 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch + 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch + 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch + 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch + 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch + 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch + 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch + +------------------------------------------------------------------- +Fri Aug 22 01:29:06 UTC 2014 - crrodriguez@opensuse.org + +- man pages from section 3 are developer docs, move them to + the -devel package. + +------------------------------------------------------------------- +Wed Aug 20 15:06:25 UTC 2014 - werner@suse.de + +- Add patch 0001-let-systemctl-completion-ignore-at-names.patch to + remove error messages for tab completion for systemctl isolate (bnc#892162) + +------------------------------------------------------------------- +Mon Aug 18 14:40:55 UTC 2014 - werner@suse.de + +- Disable the usage of the systemd groups wheel and adm (bnc#892300) + ------------------------------------------------------------------- Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 13707cf4..cfdfe49d 100644 --- a/systemd.spec +++ b/systemd.spec @@ -38,6 +38,7 @@ %bcond_with blkrrpart %bcond_with udevsettle %endif +%bcond_with systemgrps Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -756,6 +757,42 @@ Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch Patch366: tomcat6-var-lock-subsys-legacy.patch # PATCH-FIX-UPSTREAM added at 2014/08/01 Patch367: 0007-hwdb-update.patch +# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) +Patch368: 0001-let-systemctl-completion-ignore-at-names.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch370: 0002-switch-root-umount-the-old-root-correctly.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch385: 0008-hwdb-update.patch # UDEV PATCHES # ============ @@ -887,6 +924,8 @@ Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.p Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch +# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1413,6 +1452,24 @@ cp %{SOURCE7} m4/ %patch365 -p0 %patch366 -p1 %patch367 -p0 +%patch368 -p1 +%patch369 -p0 +%patch370 -p0 +%patch371 -p0 +%patch372 -p0 +%patch373 -p0 +%patch374 -p0 +%patch375 -p0 +%patch376 -p0 +%patch377 -p0 +%patch378 -p0 +%patch379 -p0 +%patch380 -p0 +%patch381 -p0 +%patch382 -p0 +%patch383 -p0 +%patch384 -p0 +%patch385 -p0 # udev patches %patch1001 -p1 @@ -1498,6 +1555,10 @@ cp %{SOURCE7} m4/ %patch1060 -p1 %patch1061 -p0 %patch1062 -p1 +%patch1063 -p0 + +# remove patch backups +find -name '*.orig' -exec rm -f '{}' \+ # ensure generate files are removed rm -f units/emergency.service @@ -1899,8 +1960,10 @@ if read ID < /etc/machine-id > /dev/null 2>&1 ; then chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : fi +%if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +%endif # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -2060,8 +2123,10 @@ exit 0 %if %{with permission} %set_permissions %{_localstatedir}/log/journal/ %endif +%if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +%endif if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : @@ -2278,7 +2343,6 @@ exit 0 %exclude %{_mandir}/man*/*udev*.[0-9]* %exclude %{_mandir}/man8/systemd-journal-gatewayd.* %{_mandir}/man1/*.1* -%{_mandir}/man3/*.3* %{_mandir}/man5/*.5* %{_mandir}/man7/*.7* %{_mandir}/man8/*.8* @@ -2340,6 +2404,9 @@ exit 0 %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc +%if ! 0%{?bootstrap} +%{_mandir}/man3/*.3* +%endif %files sysvinit %defattr(-,root,root,-) From 77593c6f2f800fc052eca33bfbf5d0101b156aa1fc02db4e676aec6bb2a0f85b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 29 Aug 2014 15:43:00 +0000 Subject: [PATCH 196/221] Accepting request 246717 from Base:System - Add upstream patches 0001-login-fix-memory-leak-on-DropController.patch 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch 0003-sd-journal-properly-convert-object-size-on-big-endia.patch 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - Add upstream patch 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch to avoid that hwdb ID's for unrecognised USB device are taken from the USB hub. - Add upstream patches 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - Add patch use-rndaddentropy-ioctl-to-load-random-seed.patch to use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) - Add upstream patches 0001-login-fix-memory-leak-on-DropController.patch 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch 0003-sd-journal-properly-convert-object-size-on-big-endia.patch 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - Add upstream patch 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch to avoid that hwdb ID's for unrecognised USB device are taken from the USB hub. - Add upstream patches OBS-URL: https://build.opensuse.org/request/show/246717 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=202 --- ...in-fix-memory-leak-on-DropController.patch | 36 ++++++ ...t-error-message-printed-when-bus_pro.patch | 28 ++++ ...emd-fsck-.service-after-local-fs-pre.patch | 29 +++++ ...-race-where-we-might-miss-SIGTERMs-w.patch | 96 ++++++++++++++ ...Adjust-for-more-Samsung-900X4-series.patch | 29 +++++ ...rly-convert-object-size-on-big-endia.patch | 39 ++++++ ...y-that-object-start-with-the-field-n.patch | 41 ++++++ ...db-do-not-look-at-usb_device-parents.patch | 63 +++++++++ systemd-mini.changes | 28 ++++ systemd-mini.spec | 27 ++++ systemd.changes | 28 ++++ systemd.spec | 27 ++++ ...addentropy-ioctl-to-load-random-seed.patch | 121 ++++++++++++++++++ 13 files changed, 592 insertions(+) create mode 100644 0001-login-fix-memory-leak-on-DropController.patch create mode 100644 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch create mode 100644 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch create mode 100644 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch create mode 100644 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch create mode 100644 0003-sd-journal-properly-convert-object-size-on-big-endia.patch create mode 100644 0004-sd-journal-verify-that-object-start-with-the-field-n.patch create mode 100644 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch create mode 100644 use-rndaddentropy-ioctl-to-load-random-seed.patch diff --git a/0001-login-fix-memory-leak-on-DropController.patch b/0001-login-fix-memory-leak-on-DropController.patch new file mode 100644 index 00000000..ba5ed744 --- /dev/null +++ b/0001-login-fix-memory-leak-on-DropController.patch @@ -0,0 +1,36 @@ +From 60240797a4ce464ec7a0537ccbec4c83f599251c Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Fri, 22 Aug 2014 14:57:11 +0200 +Subject: [PATCH] login: fix memory-leak on DropController() + +Our bus-name watch helpers only remove a bus-name if it's not a +controller, anymore. If we call manager_drop_busname() before +unregistering the controller, the busname will not be dropped. Therefore, +first drop the controller, then drop the bus-name. +--- + src/login/logind-session.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 136bbce..0c6e425 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -1061,11 +1061,13 @@ bool session_is_controller(Session *s, const char *sender) { + + static void session_swap_controller(Session *s, char *name) { + SessionDevice *sd; ++ char *c; + + if (s->controller) { +- manager_drop_busname(s->manager, s->controller); +- free(s->controller); ++ c = s->controller; + s->controller = NULL; ++ manager_drop_busname(s->manager, c); ++ free(c); + + /* Drop all devices as they're now unused. Do that after the + * controller is released to avoid sending out useles +-- +1.7.9.2 + diff --git a/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch b/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch new file mode 100644 index 00000000..917c8ec2 --- /dev/null +++ b/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch @@ -0,0 +1,28 @@ +From 498cfc230af8f83675be2e92057956f1792969e4 Mon Sep 17 00:00:00 2001 +From: Sjoerd Simons +Date: Sat, 23 Aug 2014 21:11:44 +0200 +Subject: [PATCH] systemctl: Correct error message printed when + bus_process_wait fails + +Actually use the variable containing the return code of bus_process_wait when +printing the error message as a result of it failing. +--- + src/systemctl/systemctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index d9b8bee..6534819 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -2382,7 +2382,7 @@ static int wait_for_jobs(sd_bus *bus, Set *s) { + while (!set_isempty(s)) { + q = bus_process_wait(bus); + if (q < 0) { +- log_error("Failed to wait for response: %s", strerror(-r)); ++ log_error("Failed to wait for response: %s", strerror(-q)); + return q; + } + +-- +1.7.9.2 + diff --git a/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch b/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch new file mode 100644 index 00000000..6bc06d23 --- /dev/null +++ b/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch @@ -0,0 +1,29 @@ +From 66f311206e908a5b6f21e66fad73e1e5ea3e31d6 Mon Sep 17 00:00:00 2001 +From: Ivan Shapovalov +Date: Wed, 27 Aug 2014 00:17:43 +0400 +Subject: [PATCH] units: order systemd-fsck@.service after + local-fs-pre.target. + +With this change, it becomes possible to order a unit to activate before any +modifications to the file systems. This is especially useful for supporting +resume from hibernation. +--- + units/systemd-fsck@.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git units/systemd-fsck@.service.in units/systemd-fsck@.service.in +index c12efa8..d2cda6a 100644 +--- units/systemd-fsck@.service.in ++++ units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Description=File System Check on %f + Documentation=man:systemd-fsck@.service(8) + DefaultDependencies=no + BindsTo=%i.device +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service local-fs-pre.target + Before=shutdown.target + + [Service] +-- +1.7.9.2 + diff --git a/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch b/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch new file mode 100644 index 00000000..9cd13c2d --- /dev/null +++ b/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch @@ -0,0 +1,96 @@ +Based on 8a7c93d858c342744adf481565d8bb03b9713dcf Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 27 Aug 2014 21:42:20 +0200 +Subject: [PATCH] util: fix minimal race where we might miss SIGTERMs when + forking off an agent + +Before forking, block all signals, and unblock them afterwards. This way +the child will have them blocked, and we won't lose them. +--- + src/shared/util.c | 39 ++++++++++++++++++++++++++++++++++----- + 1 file changed, 34 insertions(+), 5 deletions(-) + +--- src/shared/util.c ++++ src/shared/util.c 2014-08-28 10:32:06.442693437 +0000 +@@ -894,6 +894,18 @@ int reset_all_signal_handlers(void) { + return 0; + } + ++static int reset_signal_mask(void) { ++ sigset_t ss; ++ ++ if (sigemptyset(&ss) < 0) ++ return -errno; ++ ++ if (sigprocmask(SIG_SETMASK, &ss, NULL) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + char *strstrip(char *s) { + char *e; + +@@ -5119,9 +5131,9 @@ int fd_inc_rcvbuf(int fd, size_t n) { + } + + int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *path, ...) { +- pid_t parent_pid, agent_pid; +- int fd; + bool stdout_is_tty, stderr_is_tty; ++ pid_t parent_pid, agent_pid; ++ sigset_t ss, saved_ss; + unsigned n, i; + va_list ap; + char **l; +@@ -5129,16 +5141,25 @@ int fork_agent(pid_t *pid, const int exc + assert(pid); + assert(path); + +- parent_pid = getpid(); +- + /* Spawns a temporary TTY agent, making sure it goes away when + * we go away */ + ++ parent_pid = getpid(); ++ ++ /* First we temporarily block all signals, so that the new ++ * child has them blocked initially. This way, we can be sure ++ * that SIGTERMs are not lost we might send to the agent. */ ++ assert_se(sigfillset(&ss) >= 0); ++ assert_se(sigprocmask(SIG_SETMASK, &ss, &saved_ss) >= 0); ++ + agent_pid = fork(); +- if (agent_pid < 0) ++ if (agent_pid < 0) { ++ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); + return -errno; ++ } + + if (agent_pid != 0) { ++ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); + *pid = agent_pid; + return 0; + } +@@ -5149,6 +5170,12 @@ int fork_agent(pid_t *pid, const int exc + if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) + _exit(EXIT_FAILURE); + ++ /* Make sure we actually can kill the agent, if we need to, in ++ * case somebody invoked us from a shell script that trapped ++ * SIGTERM or so... */ ++ reset_all_signal_handlers(); ++ reset_signal_mask(); ++ + /* Check whether our parent died before we were able + * to set the death signal */ + if (getppid() != parent_pid) +@@ -5161,6 +5188,8 @@ int fork_agent(pid_t *pid, const int exc + stderr_is_tty = isatty(STDERR_FILENO); + + if (!stdout_is_tty || !stderr_is_tty) { ++ int fd; ++ + /* Detach from stdout/stderr. and reopen + * /dev/tty for them. This is important to + * ensure that when systemctl is started via diff --git a/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch b/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch new file mode 100644 index 00000000..c9ab5e0e --- /dev/null +++ b/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch @@ -0,0 +1,29 @@ +From e512e8a255ef29d5a8eb605f8849202ea3d3e4cb Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Wed, 27 Aug 2014 08:41:10 +0200 +Subject: [PATCH] keymap: Adjust for more Samsung 900X4 series + +Reportedly also applies to NP900X4B, so relax the match to apply to all models +of this series. + +https://launchpad.net/bugs/902332 +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index ef0ebc5..0ffcb83 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -939,7 +939,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* + # Series 7 / 9 + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* +-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* ++keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34]*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* + KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings + KEYBOARD_KEY_a0=!mute # Fn+F6 mute +-- +1.7.9.2 + diff --git a/0003-sd-journal-properly-convert-object-size-on-big-endia.patch b/0003-sd-journal-properly-convert-object-size-on-big-endia.patch new file mode 100644 index 00000000..40e8d57c --- /dev/null +++ b/0003-sd-journal-properly-convert-object-size-on-big-endia.patch @@ -0,0 +1,39 @@ +From 57cd09acf2c63a414aa2131c00a2b3f600eb0133 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 23 Aug 2014 22:35:03 -0400 +Subject: [PATCH] sd-journal: properly convert object->size on big endian + +mmap code crashes when attempting to map an object of zero size. + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758392 +https://bugs.freedesktop.org/show_bug.cgi?id=82894 +--- + src/journal/journal-file.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git src/journal/journal-file.h src/journal/journal-file.h +index 3d41682..da2ef3b 100644 +--- src/journal/journal-file.h ++++ src/journal/journal-file.h +@@ -214,14 +214,15 @@ static unsigned type_to_context(int type) { + + static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset) { + unsigned context = type_to_context(o->object.type); ++ uint64_t s = le64toh(o->object.size); + + return mmap_cache_get(f->mmap, f->fd, f->prot, context, true, +- offset, o->object.size, &f->last_stat, NULL); ++ offset, s, &f->last_stat, NULL); + } + + static inline int journal_file_object_release(JournalFile *f, Object *o, uint64_t offset) { + unsigned context = type_to_context(o->object.type); ++ uint64_t s = le64toh(o->object.size); + +- return mmap_cache_release(f->mmap, f->fd, f->prot, context, +- offset, o->object.size); ++ return mmap_cache_release(f->mmap, f->fd, f->prot, context, offset, s); + } +-- +1.7.9.2 + diff --git a/0004-sd-journal-verify-that-object-start-with-the-field-n.patch b/0004-sd-journal-verify-that-object-start-with-the-field-n.patch new file mode 100644 index 00000000..e3ee663d --- /dev/null +++ b/0004-sd-journal-verify-that-object-start-with-the-field-n.patch @@ -0,0 +1,41 @@ +Based on 0f99f74a14ef193c1ebde687c5cc76e1d67b85ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 26 Aug 2014 23:54:31 -0400 +Subject: [PATCH] sd-journal: verify that object start with the field name + +If the journal is corrupted, we might return an object that does +not start with the expected field name and/or is shorter than it +should. +--- + src/journal/sd-journal.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git src/journal/sd-journal.c src/journal/sd-journal.c +index 80ff8fe..693707c 100644 +--- src/journal/sd-journal.c ++++ src/journal/sd-journal.c +@@ -2571,6 +2571,21 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_ + if (r < 0) + return r; + ++ /* Check if we have at least the field name and "=". */ ++ if (ol <= k) { ++ log_debug("%s:offset " OFSfmt ": object has size %zu, expected at least %zu", ++ j->unique_file->path, j->unique_offset, ++ ol, k + 1); ++ return -EBADMSG; ++ } ++ ++ if (memcmp(odata, j->unique_field, k) || ((const char*) odata)[k] != '=') { ++ log_debug("%s:offset " OFSfmt ": object does not start with \"%s=\"", ++ j->unique_file->path, j->unique_offset, ++ j->unique_field); ++ return -EBADMSG; ++ } ++ + /* OK, now let's see if we already returned this data + * object by checking if it exists in the earlier + * traversed files. */ +-- +1.7.9.2 + diff --git a/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch b/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch new file mode 100644 index 00000000..07755c04 --- /dev/null +++ b/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch @@ -0,0 +1,63 @@ +From 77cf759ea05bea476cdcb8d0dcd04c4e6fb3b2ff Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 26 Aug 2014 18:27:36 +0200 +Subject: [PATCH] udev: hwdb - do not look at "usb_device" parents + +Based on a patch from Simon McVittie . + +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758050 +--- + src/udev/udev-builtin-hwdb.c | 22 ++++++++++++++-------- + 1 file changed, 14 insertions(+), 8 deletions(-) + +diff --git src/udev/udev-builtin-hwdb.c src/udev/udev-builtin-hwdb.c +index cac97e7..695a31a 100644 +--- src/udev/udev-builtin-hwdb.c ++++ src/udev/udev-builtin-hwdb.c +@@ -88,9 +88,10 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device + const char *filter, bool test) { + struct udev_device *d; + char s[16]; +- int n = 0; ++ bool last = false; ++ int r = 0; + +- for (d = srcdev; d; d = udev_device_get_parent(d)) { ++ for (d = srcdev; d && !last; d = udev_device_get_parent(d)) { + const char *dsubsys; + const char *modalias = NULL; + +@@ -104,19 +105,24 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device + + modalias = udev_device_get_property_value(d, "MODALIAS"); + +- /* the usb_device does not have a modalias, compose one */ +- if (!modalias && streq(dsubsys, "usb")) +- modalias = modalias_usb(d, s, sizeof(s)); ++ if (streq(dsubsys, "usb") && streq_ptr(udev_device_get_devtype(d), "usb_device")) { ++ /* if the usb_device does not have a modalias, compose one */ ++ if (!modalias) ++ modalias = modalias_usb(d, s, sizeof(s)); ++ ++ /* avoid looking at any parent device, they are usually just a USB hub */ ++ last = true; ++ } + + if (!modalias) + continue; + +- n = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); +- if (n > 0) ++ r = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); ++ if (r > 0) + break; + } + +- return n; ++ return r; + } + + static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool test) { +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 6a8f2c70..28287a59 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Thu Aug 28 10:07:10 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-login-fix-memory-leak-on-DropController.patch + 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch + 0003-sd-journal-properly-convert-object-size-on-big-endia.patch + 0004-sd-journal-verify-that-object-start-with-the-field-n.patch +- Add upstream patch + 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch + to avoid that hwdb ID's for unrecognised USB device are taken + from the USB hub. + +------------------------------------------------------------------- +Wed Aug 27 16:01:17 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch + 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch + 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch + +------------------------------------------------------------------- +Wed Aug 27 12:52:09 UTC 2014 - werner@suse.de + +- Add patch use-rndaddentropy-ioctl-to-load-random-seed.patch to + use RNDADDENTROPY ioctl to load random-seed and to increase + entropy count as well (bnc#892096) + ------------------------------------------------------------------- Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 887777cd..991e05e4 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -798,6 +798,22 @@ Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch # PATCH-FIX-UPSTREAM added at 2014/08/25 Patch385: 0008-hwdb-update.patch +# PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) +Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch390: 0001-login-fix-memory-leak-on-DropController.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch # UDEV PATCHES # ============ @@ -931,6 +947,8 @@ Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch # PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1475,6 +1493,14 @@ cp %{SOURCE7} m4/ %patch383 -p0 %patch384 -p0 %patch385 -p0 +%patch386 -p1 +%patch387 -p0 +%patch388 -p0 +%patch389 -p0 +%patch390 -p0 +%patch391 -p0 +%patch392 -p0 +%patch393 -p0 # udev patches %patch1001 -p1 @@ -1561,6 +1587,7 @@ cp %{SOURCE7} m4/ %patch1061 -p0 %patch1062 -p1 %patch1063 -p0 +%patch1064 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index 6a8f2c70..28287a59 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Thu Aug 28 10:07:10 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-login-fix-memory-leak-on-DropController.patch + 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch + 0003-sd-journal-properly-convert-object-size-on-big-endia.patch + 0004-sd-journal-verify-that-object-start-with-the-field-n.patch +- Add upstream patch + 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch + to avoid that hwdb ID's for unrecognised USB device are taken + from the USB hub. + +------------------------------------------------------------------- +Wed Aug 27 16:01:17 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch + 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch + 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch + +------------------------------------------------------------------- +Wed Aug 27 12:52:09 UTC 2014 - werner@suse.de + +- Add patch use-rndaddentropy-ioctl-to-load-random-seed.patch to + use RNDADDENTROPY ioctl to load random-seed and to increase + entropy count as well (bnc#892096) + ------------------------------------------------------------------- Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index cfdfe49d..479cc115 100644 --- a/systemd.spec +++ b/systemd.spec @@ -793,6 +793,22 @@ Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch # PATCH-FIX-UPSTREAM added at 2014/08/25 Patch385: 0008-hwdb-update.patch +# PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) +Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch390: 0001-login-fix-memory-leak-on-DropController.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch # UDEV PATCHES # ============ @@ -926,6 +942,8 @@ Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch # PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1470,6 +1488,14 @@ cp %{SOURCE7} m4/ %patch383 -p0 %patch384 -p0 %patch385 -p0 +%patch386 -p1 +%patch387 -p0 +%patch388 -p0 +%patch389 -p0 +%patch390 -p0 +%patch391 -p0 +%patch392 -p0 +%patch393 -p0 # udev patches %patch1001 -p1 @@ -1556,6 +1582,7 @@ cp %{SOURCE7} m4/ %patch1061 -p0 %patch1062 -p1 %patch1063 -p0 +%patch1064 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/use-rndaddentropy-ioctl-to-load-random-seed.patch b/use-rndaddentropy-ioctl-to-load-random-seed.patch new file mode 100644 index 00000000..3cbe548a --- /dev/null +++ b/use-rndaddentropy-ioctl-to-load-random-seed.patch @@ -0,0 +1,121 @@ +Simply writing /var/lib/systemd/random-seed back to /dev/(u)random does not +increase the entropy bit count. Therefore use the RNDADDENTROPY ioctl to +write back the bytes and increase the entropy bit counter. + +Related to bnc#892096 + +--- + systemd-210/src/random-seed/random-seed.c | 66 +++++++++++++++++++++++++++--- + 1 file changed, 61 insertions(+), 5 deletions(-) + +--- systemd-210/src/random-seed/random-seed.c ++++ systemd-210/src/random-seed/random-seed.c 2014-08-27 11:58:59.022526580 +0000 +@@ -22,7 +22,9 @@ + #include + #include + #include ++#include + #include ++#include + #include + + #include "log.h" +@@ -32,8 +34,9 @@ + #define POOL_SIZE_MIN 512 + + int main(int argc, char *argv[]) { +- _cleanup_close_ int seed_fd = -1, random_fd = -1; ++ _cleanup_close_ int seed_fd = -1, random_fd = -1, entropy_fd = -1; + _cleanup_free_ void* buf = NULL; ++ size_t entropy_count = 0; + size_t buf_size = 0; + ssize_t k; + int r; +@@ -82,6 +85,23 @@ int main(int argc, char *argv[]) { + + if (streq(argv[1], "load")) { + ++ entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); ++ if (entropy_fd < 0) { ++ entropy_count = 0; ++ if (errno != ENOENT) { ++ log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); ++ r = -errno; ++ goto finish; ++ } ++ } else { ++ r = read(entropy_fd, &entropy_count, sizeof(entropy_count)); ++ if (r < 0) { ++ log_error("Failed to read entropy count file: %m"); ++ r = -errno; ++ goto finish; ++ } ++ } ++ + seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); + if (seed_fd < 0) { + seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); +@@ -113,16 +133,37 @@ int main(int argc, char *argv[]) { + } else { + lseek(seed_fd, 0, SEEK_SET); + +- k = loop_write(random_fd, buf, (size_t) k, false); +- if (k <= 0) { +- log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); ++ if (entropy_count && (size_t) k == buf_size) { ++ struct rand_pool_info entropy = { ++ .entropy_count = entropy_count, ++ .buf_size = buf_size, ++ }; ++ entropy.buf[0] = ((__u32*)buf)[0]; ++ r = ioctl(random_fd, RNDADDENTROPY, &entropy); ++ if (r < 0) { ++ log_error("Failed to write seed to /dev/urandom: %m"); ++ r = -errno; ++ } ++ } else { ++ k = loop_write(random_fd, buf, (size_t) k, false); ++ if (k <= 0) { ++ log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); + +- r = k == 0 ? -EIO : (int) k; ++ r = k == 0 ? -EIO : (int) k; ++ } + } + } + + } else if (streq(argv[1], "save")) { + ++ /* Read available entropy count, if possible */ ++ f = fopen("/proc/sys/kernel/random/entropy_avail", "re"); ++ if (f) { ++ if (fscanf(f, "%zu", &entropy_count) < 0) ++ entropy_count = 0; ++ fclose(f); ++ } ++ + seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); + if (seed_fd < 0) { + log_error("Failed to open " RANDOM_SEED ": %m"); +@@ -137,6 +178,21 @@ int main(int argc, char *argv[]) { + goto finish; + } + ++ if (entropy_count) { ++ entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); ++ if (seed_fd < 0) { ++ log_error("Failed to open " RANDOM_SEED_DIR "entropy_count: %m"); ++ r = -errno; ++ goto finish; ++ } ++ r = write(entropy_fd, &entropy_count, sizeof(entropy_count)); ++ if (r < 0) { ++ log_error("Failed to write entropy count file: %m"); ++ r = -errno; ++ goto finish; ++ } ++ } ++ + } else { + log_error("Unknown verb %s.", argv[1]); + r = -EINVAL; From 018a176a1f77bbcbed242aff20ab3eb639ec4630ddb23765d489fa6cb3f7c22b Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 3 Sep 2014 16:21:43 +0000 Subject: [PATCH 197/221] Accepting request 247222 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/247222 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=203 --- ...ter-templates-from-restartable-units.patch | 30 ++++ 0001-login-simplify-controller-handling.patch | 118 +++++++++++++ 0001-nspawn-fix-network-interface.patch | 21 +++ 0002-systemd-fix-error-message.patch | 29 +++ ...-in-suggested-systemctl-commandlines.patch | 68 +++++++ 0004-config-parser-fix-mem-leak.patch | 24 +++ 0005-login-fix-mem-leak.patch | 23 +++ ...dev-bump-event-timeout-to-60-seconds.patch | 39 ++++ ...lity-links-for-truncated-by-id-links.patch | 167 ++++++++++++++++++ systemd-mini.changes | 29 +++ systemd-mini.spec | 27 +++ systemd.changes | 29 +++ systemd.spec | 27 +++ 13 files changed, 631 insertions(+) create mode 100644 0001-completion-filter-templates-from-restartable-units.patch create mode 100644 0001-login-simplify-controller-handling.patch create mode 100644 0001-nspawn-fix-network-interface.patch create mode 100644 0002-systemd-fix-error-message.patch create mode 100644 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch create mode 100644 0004-config-parser-fix-mem-leak.patch create mode 100644 0005-login-fix-mem-leak.patch create mode 100644 1065-udev-bump-event-timeout-to-60-seconds.patch create mode 100644 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch diff --git a/0001-completion-filter-templates-from-restartable-units.patch b/0001-completion-filter-templates-from-restartable-units.patch new file mode 100644 index 00000000..13e03e03 --- /dev/null +++ b/0001-completion-filter-templates-from-restartable-units.patch @@ -0,0 +1,30 @@ +Based on ec15977a3cd82eff6c94bb13db72195f7cd512e8 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Fri, 29 Aug 2014 20:35:15 -0400 +Subject: [PATCH] completion: filter templates from restartable units + +Since c6a373a2634854, we might encounter unit templates via the +'list-units' verb. These aren't restartable (and we throw errors), so +make sure they're filtered out of the completion options. + +fixes downstream bug: https://bugs.archlinux.org/task/41719 +--- + shell-completion/bash/systemctl.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in +index 64b15df..0150018 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -182,7 +182,7 @@ _systemctl () { + comps=$( __filter_units_by_property $mode CanStart yes \ + $( __get_all_units $mode \ + | while read -r line; do \ +- [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ ++ [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ + done )) + compopt -o filenames + +-- +1.7.9.2 + diff --git a/0001-login-simplify-controller-handling.patch b/0001-login-simplify-controller-handling.patch new file mode 100644 index 00000000..0ca9ec52 --- /dev/null +++ b/0001-login-simplify-controller-handling.patch @@ -0,0 +1,118 @@ +Based on b12e56156e5f363ebb8dc4ea5c10f5fd0665dc9d Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Mon, 1 Sep 2014 14:04:44 +0200 +Subject: [PATCH] login: simplify controller handling + +Simplify the way we handler session-controllers and fix several +shortcomings: + * send ReleaseDevice() signals on forced session takeover + * fix mem-leaks for busnames in case VT preparation fails (non-critical) + * avoid passing pre-allocated names to helpers +--- + src/login/logind-session.c | 55 ++++++++++++++++++++++---------------------- + 1 file changed, 28 insertions(+), 27 deletions(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 58453b5..10a43a4 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -1059,32 +1059,30 @@ bool session_is_controller(Session *s, const char *sender) { + return streq_ptr(s->controller, sender); + } + +-static void session_swap_controller(Session *s, char *name) { ++static void session_release_controller(Session *s, bool notify) { ++ _cleanup_free_ char *name = NULL; + SessionDevice *sd; +- char *c; + +- if (s->controller) { +- c = s->controller; +- s->controller = NULL; +- manager_drop_busname(s->manager, c); +- free(c); ++ if (!s->controller) ++ return; + +- /* Drop all devices as they're now unused. Do that after the +- * controller is released to avoid sending out useles +- * dbus signals. */ +- while ((sd = hashmap_first(s->devices))) +- session_device_free(sd); ++ name = s->controller; + +- if (!name) +- session_restore_vt(s); +- } ++ /* By resetting the controller before releasing the devices, we won't ++ * send notification signals. This avoids sending useless notifications ++ * if the controller is released on disconnects. */ ++ if (!notify) ++ s->controller = NULL; + +- s->controller = name; +- session_save(s); ++ while ((sd = hashmap_first(s->devices))) ++ session_device_free(sd); ++ ++ s->controller = NULL; ++ manager_drop_busname(s->manager, name); + } + + int session_set_controller(Session *s, const char *sender, bool force) { +- char *t; ++ _cleanup_free_ char *name = NULL; + int r; + + assert(s); +@@ -1095,15 +1093,13 @@ int session_set_controller(Session *s, const char *sender, bool force) { + if (s->controller && !force) + return -EBUSY; + +- t = strdup(sender); +- if (!t) ++ name = strdup(sender); ++ if (!name) + return -ENOMEM; + +- r = manager_watch_busname(s->manager, sender); +- if (r) { +- free(t); ++ r = manager_watch_busname(s->manager, name); ++ if (r) + return r; +- } + + /* When setting a session controller, we forcibly mute the VT and set + * it into graphics-mode. Applications can override that by changing +@@ -1115,11 +1111,14 @@ int session_set_controller(Session *s, const char *sender, bool force) { + * or reset the VT in case it crashed/exited, too. */ + r = session_mute_vt(s); + if (r < 0) { +- free(t); ++ manager_drop_busname(s->manager, name); + return r; + } + +- session_swap_controller(s, t); ++ session_release_controller(s, true); ++ s->controller = name; ++ name = NULL; ++ session_save(s); + + return 0; + } +@@ -1130,7 +1129,9 @@ void session_drop_controller(Session *s) { + if (!s->controller) + return; + +- session_swap_controller(s, NULL); ++ session_release_controller(s, false); ++ session_save(s); ++ session_restore_vt(s); + } + + static const char* const session_state_table[_SESSION_STATE_MAX] = { +-- +1.7.9.2 + diff --git a/0001-nspawn-fix-network-interface.patch b/0001-nspawn-fix-network-interface.patch new file mode 100644 index 00000000..6e9fce7c --- /dev/null +++ b/0001-nspawn-fix-network-interface.patch @@ -0,0 +1,21 @@ +Based on 3125b3ef5db70d45882c7d6f617705802c5f939e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 28 Aug 2014 12:15:51 +0200 +Subject: [PATCH] nspawn: fix --network-interface + +Use SETLINK when modifying an existing link. +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-08-29 14:11:25.866235309 +0000 +@@ -1568,7 +1568,7 @@ static int move_network_interfaces(pid_t + return -EBUSY; + } + +- r = sd_rtnl_message_new_link(rtnl, &m, RTM_NEWLINK, ifi); ++ r = sd_rtnl_message_new_link(rtnl, &m, RTM_SETLINK, ifi); + if (r < 0) { + log_error("Failed to allocate netlink message: %s", strerror(-r)); + return r; diff --git a/0002-systemd-fix-error-message.patch b/0002-systemd-fix-error-message.patch new file mode 100644 index 00000000..778444a8 --- /dev/null +++ b/0002-systemd-fix-error-message.patch @@ -0,0 +1,29 @@ +Based on 6ad3b2b62cbe34cc02ee98deb5f48047f5e42d26 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 30 Aug 2014 17:22:42 -0400 +Subject: [PATCH] systemd: fix error message + +--- + src/core/dbus-manager.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c 2014-09-01 12:51:33.266735961 +0000 +@@ -1114,7 +1114,7 @@ static int method_switch_root(sd_bus *bu + return r; + + if (m->running_as != SYSTEMD_SYSTEM) +- return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "KExec is only supported for system managers."); ++ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "Root switching is only supported by system manager."); + + r = sd_bus_message_read(message, "ss", &root, &init); + if (r < 0) +@@ -1125,7 +1125,7 @@ static int method_switch_root(sd_bus *bu + + /* Safety check */ + if (isempty(init)) { +- if (! path_is_os_tree(root)) ++ if (!path_is_os_tree(root)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified switch root path %s does not seem to be an OS tree. /etc/os-release is missing.", root); + } else { + _cleanup_free_ char *p = NULL; diff --git a/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch b/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch new file mode 100644 index 00000000..38b777fe --- /dev/null +++ b/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch @@ -0,0 +1,68 @@ +From 8e07fc41f86d41e68c5663b2a3c620a0adedcc11 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 31 Aug 2014 00:42:27 -0400 +Subject: [PATCH] Quote unit names in suggested systemctl commandlines + +The fact that unit names have to be quoted can be a bit surprising. +Show quotes in the hint commandline, but only after checking that this +is necessary, since quotes are visually heavy and usually not needed. + +https://bugs.freedesktop.org/show_bug.cgi?id=82832 +--- + src/core/job.c | 11 +++++++++-- + src/systemctl/systemctl.c | 14 ++++++++++++-- + 2 files changed, 21 insertions(+), 4 deletions(-) + +diff --git src/core/job.c src/core/job.c +index 5e4987f..ef5dbce 100644 +--- src/core/job.c ++++ src/core/job.c +@@ -632,11 +632,18 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { + unit_status_printf(u, ANSI_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, format); + break; + +- case JOB_FAILED: ++ case JOB_FAILED: { ++ bool quotes; ++ ++ quotes = chars_intersect(u->id, SHELL_NEED_QUOTES); ++ + manager_flip_auto_status(u->manager, true); + unit_status_printf(u, ANSI_HIGHLIGHT_RED_ON "FAILED" ANSI_HIGHLIGHT_OFF, format); +- manager_status_printf(u->manager, false, NULL, "See 'systemctl status %s' for details.", u->id); ++ manager_status_printf(u->manager, false, NULL, ++ "See \"systemctl status %s%s%s\" for details.", ++ quotes ? "'" : "", u->id, quotes ? "'" : ""); + break; ++ } + + case JOB_DEPENDENCY: + manager_flip_auto_status(u->manager, true); +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 6534819..de43c87 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -2351,8 +2351,18 @@ static int check_wait_response(WaitData *d) { + log_error("Job for %s canceled.", strna(d->name)); + else if (streq(d->result, "dependency")) + log_error("A dependency job for %s failed. See 'journalctl -xn' for details.", strna(d->name)); +- else if (!streq(d->result, "done") && !streq(d->result, "skipped")) +- log_error("Job for %s failed. See 'systemctl status %s' and 'journalctl -xn' for details.", strna(d->name), strna(d->name)); ++ else if (!streq(d->result, "done") && !streq(d->result, "skipped")) { ++ if (d->name) { ++ bool quotes; ++ ++ quotes = chars_intersect(d->name, SHELL_NEED_QUOTES); ++ ++ log_error("Job for %s failed. See \"systemctl status %s%s%s\" and \"journalctl -xn\" for details.", ++ d->name, ++ quotes ? "'" : "", d->name, quotes ? "'" : ""); ++ } else ++ log_error("Job failed. See \"journalctl -xn\" for details."); ++ } + } + + if (streq(d->result, "timeout")) +-- +1.7.9.2 + diff --git a/0004-config-parser-fix-mem-leak.patch b/0004-config-parser-fix-mem-leak.patch new file mode 100644 index 00000000..b45d89c0 --- /dev/null +++ b/0004-config-parser-fix-mem-leak.patch @@ -0,0 +1,24 @@ +From 9e60277835e61597011358afcdbfb3dd712ce128 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sun, 31 Aug 2014 23:13:12 +0200 +Subject: [PATCH] config-parser: fix mem leak + +--- + src/shared/conf-parser.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index 439cfc5..ee6de65 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c +@@ -710,6 +710,7 @@ int config_parse_strv(const char *unit, + + if (!utf8_is_valid(n)) { + log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); ++ free(n); + continue; + } + +-- +1.7.9.2 + diff --git a/0005-login-fix-mem-leak.patch b/0005-login-fix-mem-leak.patch new file mode 100644 index 00000000..69206fd5 --- /dev/null +++ b/0005-login-fix-mem-leak.patch @@ -0,0 +1,23 @@ +Based on 13f493dc9ace9861c1f27c4d37e8cd6d52fe6a32 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sun, 31 Aug 2014 23:34:01 +0200 +Subject: [PATCH] login: fix mem leak + +--- + src/login/logind-session.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-09-01 12:59:27.870235647 +0000 +@@ -1101,8 +1101,10 @@ int session_set_controller(Session *s, c + * If logind crashes/restarts, we restore the controller during restart + * or reset the VT in case it crashed/exited, too. */ + r = session_mute_vt(s); +- if (r < 0) ++ if (r < 0) { ++ free(t); + return r; ++ } + + session_swap_controller(s, t); + diff --git a/1065-udev-bump-event-timeout-to-60-seconds.patch b/1065-udev-bump-event-timeout-to-60-seconds.patch new file mode 100644 index 00000000..aae4da95 --- /dev/null +++ b/1065-udev-bump-event-timeout-to-60-seconds.patch @@ -0,0 +1,39 @@ +From 2e92633dbae52f5ac9b7b2e068935990d475d2cd Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 30 Aug 2014 11:36:32 +0200 +Subject: [PATCH] udev: bump event timeout to 60 seconds + +--- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c +index 8486049..809adb6 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, 30 * USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 60 * 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)); +diff --git src/udev/udevd.c src/udev/udevd.c +index 9c2b0d5..e72c5b2 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -73,7 +73,7 @@ static bool reload; + static int children; + static int children_max; + static int exec_delay; +-static usec_t event_timeout_usec = 30 * USEC_PER_SEC; ++static usec_t event_timeout_usec = 60 * 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/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch new file mode 100644 index 00000000..3bb4d407 --- /dev/null +++ b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch @@ -0,0 +1,167 @@ +From: Jeff Mahoney +Subject: udev: add option to generate old 'buggy' serials +References: bnc#886852 + +Prior to udev 184, scsi_id would truncate the last character of the model +string when generating the ID_SERIAL value. If a system was installed +prior to that fix being available in udev, there may be configuration +information that refers to the truncated link. + +This patch adds a --truncated-serial option and a udev rule will created +the old truncated links. + +Signed-off-by: Jeff Mahoney +--- + rules/60-persistent-storage.rules | 4 ++++ + src/udev/scsi_id/scsi_id.c | 15 ++++++++++++++- + src/udev/scsi_id/scsi_id.h | 1 + + src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------ + 4 files changed, 32 insertions(+), 7 deletions(-) + +--- a/rules/60-persistent-storage.rules ++++ b/rules/60-persistent-storage.rules +@@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par + KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" + KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" + ++# scsi compat links for ATA devices (for compatibility with udev < 184) ++KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --truncated-serial --whitelisted --replace-whitespace -p0x80 -d$tempnode", RESULT=="?*", ENV{ID_SCSI_COMPAT_TRUNCATED}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}" ++KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT_TRUNCATED}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}-part%n" ++ + # firewire + KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" + KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" +--- a/src/udev/scsi_id/scsi_id.c ++++ b/src/udev/scsi_id/scsi_id.c +@@ -44,6 +44,7 @@ static const struct option options[] = { + { "replace-whitespace", no_argument, NULL, 'u' }, + { "sg-version", required_argument, NULL, 's' }, + { "verbose", no_argument, NULL, 'v' }, ++ { "truncated-serial", no_argument, NULL, '9' }, + { "version", no_argument, NULL, 'V' }, /* don't advertise -V */ + { "export", no_argument, NULL, 'x' }, + { "help", no_argument, NULL, 'h' }, +@@ -56,6 +57,7 @@ static char config_file[MAX_PATH_LEN] = + static enum page_code default_page_code = PAGE_UNSPECIFIED; + static int sg_version = 4; + static int debug = 0; ++static bool compat_truncated = false; + static bool reformat_serial = false; + static bool export = false; + static char vendor_str[64]; +@@ -323,6 +325,7 @@ static void help(void) { + " -g,--whitelisted threat device as whitelisted\n" + " -u,--replace-whitespace replace all whitespace by underscores\n" + " -v,--verbose verbose logging\n" ++ " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n" + " --version print version\n" + " -x,--export print values as environment keys\n" + " -h,--help print this help text\n\n"); +@@ -393,6 +396,10 @@ static int set_options(struct udev *udev + debug++; + break; + ++ case '9': ++ compat_truncated = true; ++ break; ++ + case 'V': + printf("%s\n", VERSION); + exit(0); +@@ -535,6 +542,9 @@ static int scsi_id(struct udev *udev, ch + util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); + util_replace_chars(serial_str, NULL); + printf("ID_SERIAL=%s\n", serial_str); ++ util_replace_whitespace(dev_scsi.serial_compat, serial_str, sizeof(serial_str)); ++ util_replace_chars(serial_str, NULL); ++ printf("ID_SERIAL_COMPAT=%s\n", serial_str); + util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str)); + util_replace_chars(serial_str, NULL); + printf("ID_SERIAL_SHORT=%s\n", serial_str); +@@ -565,7 +575,10 @@ static int scsi_id(struct udev *udev, ch + if (reformat_serial) { + char serial_str[MAX_SERIAL_LEN]; + +- util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); ++ if (compat_truncated) ++ util_replace_whitespace(dev_scsi.serial_compat, serial_str, sizeof(serial_str)); ++ else ++ util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); + util_replace_chars(serial_str, NULL); + printf("%s\n", serial_str); + goto out; +--- a/src/udev/scsi_id/scsi_id.h ++++ b/src/udev/scsi_id/scsi_id.h +@@ -43,6 +43,7 @@ struct scsi_id_device { + char kernel[64]; + char serial[MAX_SERIAL_LEN]; + char serial_short[MAX_SERIAL_LEN]; ++ char serial_compat[MAX_SERIAL_LEN]; + int use_sg; + + /* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */ +--- a/src/udev/scsi_id/scsi_serial.c ++++ b/src/udev/scsi_id/scsi_serial.c +@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a + + static int do_scsi_page80_inquiry(struct udev *udev, + struct scsi_id_device *dev_scsi, int fd, +- char *serial, char *serial_short, int max_len); ++ char *serial, char *serial_short, ++ char *serial_compat, int max_len); + + static int sg_err_category_new(struct udev *udev, + int scsi_status, int msg_status, int +@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct + unsigned char page_83[SCSI_INQ_BUFF_LEN]; + + /* also pick up the page 80 serial number */ +- do_scsi_page80_inquiry(udev, dev_scsi, fd, NULL, unit_serial_number, MAX_SERIAL_LEN); ++ do_scsi_page80_inquiry(udev, dev_scsi, fd, NULL, unit_serial_number, NULL, MAX_SERIAL_LEN); + + memzero(page_83, SCSI_INQ_BUFF_LEN); + retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83, +@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir + /* Get unit serial number VPD page */ + static int do_scsi_page80_inquiry(struct udev *udev, + struct scsi_id_device *dev_scsi, int fd, +- char *serial, char *serial_short, int max_len) ++ char *serial, char *serial_short, ++ char *serial_compat, int max_len) + { + int retval; + int ser_ind; +@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct + ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]); + if (ser_ind < 0) + return 1; ++ if (serial_compat) ++ strcpy(serial_compat, serial); + ser_ind++; /* for the leading 'S' */ +- for (i = 4; i < len + 4; i++, ser_ind++) ++ for (i = 4; i < len + 4; i++, ser_ind++) { + serial[ser_ind] = buf[i]; ++ if (serial_compat) ++ serial_compat[ser_ind - 1] = buf[i]; ++ } + } + if (serial_short != NULL) { + memcpy(serial_short, &buf[4], len); +@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev, + return 1; + + if (page_code == PAGE_80) { +- if (do_scsi_page80_inquiry(udev, dev_scsi, fd, dev_scsi->serial, dev_scsi->serial_short, len)) { ++ if (do_scsi_page80_inquiry(udev, dev_scsi, fd, dev_scsi->serial, dev_scsi->serial_short, dev_scsi->serial_compat, len)) { + retval = 1; + goto completed; + } else { +@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev, + for (ind = 4; ind <= page0[3] + 3; ind++) + if (page0[ind] == PAGE_80) + if (!do_scsi_page80_inquiry(udev, dev_scsi, fd, +- dev_scsi->serial, dev_scsi->serial_short, len)) { ++ dev_scsi->serial, dev_scsi->serial_short, dev_scsi->serial_compat, len)) { + /* + * Success + */ diff --git a/systemd-mini.changes b/systemd-mini.changes index 28287a59..33ae215d 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Tue Sep 2 12:56:47 UTC 2014 - rmilasan@suse.com + +- udev: add option to generate old 'buggy' serials (bnc#886852) + Add 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch + +------------------------------------------------------------------- +Tue Sep 2 09:14:03 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-login-simplify-controller-handling.patch + +------------------------------------------------------------------- +Mon Sep 1 13:00:29 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-completion-filter-templates-from-restartable-units.patch + 0002-systemd-fix-error-message.patch + 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch + 0004-config-parser-fix-mem-leak.patch + 0005-login-fix-mem-leak.patch + 1065-udev-bump-event-timeout-to-60-seconds.patch + +------------------------------------------------------------------- +Fri Aug 29 14:14:06 UTC 2014 - werner@suse.de + +- Add upstream patch 0001-nspawn-fix-network-interface.patch to + make option network-interface of systemd-nspawn work + ------------------------------------------------------------------- Thu Aug 28 10:07:10 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 991e05e4..3f55c4dc 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -814,6 +814,20 @@ Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch # PATCH-FIX-UPSTREAM added at 2014/08/28 Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch +# PATCH-FIX-UPSTREAM added at 2014/08/29 +Patch394: 0001-nspawn-fix-network-interface.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch395: 0001-completion-filter-templates-from-restartable-units.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch396: 0002-systemd-fix-error-message.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch398: 0004-config-parser-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch399: 0005-login-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/02 +Patch400: 0001-login-simplify-controller-handling.patch # UDEV PATCHES # ============ @@ -949,6 +963,10 @@ Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch # PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1501,6 +1519,13 @@ cp %{SOURCE7} m4/ %patch391 -p0 %patch392 -p0 %patch393 -p0 +%patch394 -p0 +%patch395 -p0 +%patch396 -p0 +%patch397 -p0 +%patch398 -p0 +%patch399 -p0 +%patch400 -p0 # udev patches %patch1001 -p1 @@ -1588,6 +1613,8 @@ cp %{SOURCE7} m4/ %patch1062 -p1 %patch1063 -p0 %patch1064 -p0 +%patch1065 -p0 +%patch1066 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index 28287a59..33ae215d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Tue Sep 2 12:56:47 UTC 2014 - rmilasan@suse.com + +- udev: add option to generate old 'buggy' serials (bnc#886852) + Add 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch + +------------------------------------------------------------------- +Tue Sep 2 09:14:03 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-login-simplify-controller-handling.patch + +------------------------------------------------------------------- +Mon Sep 1 13:00:29 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-completion-filter-templates-from-restartable-units.patch + 0002-systemd-fix-error-message.patch + 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch + 0004-config-parser-fix-mem-leak.patch + 0005-login-fix-mem-leak.patch + 1065-udev-bump-event-timeout-to-60-seconds.patch + +------------------------------------------------------------------- +Fri Aug 29 14:14:06 UTC 2014 - werner@suse.de + +- Add upstream patch 0001-nspawn-fix-network-interface.patch to + make option network-interface of systemd-nspawn work + ------------------------------------------------------------------- Thu Aug 28 10:07:10 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 479cc115..2c4dca48 100644 --- a/systemd.spec +++ b/systemd.spec @@ -809,6 +809,20 @@ Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch # PATCH-FIX-UPSTREAM added at 2014/08/28 Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch +# PATCH-FIX-UPSTREAM added at 2014/08/29 +Patch394: 0001-nspawn-fix-network-interface.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch395: 0001-completion-filter-templates-from-restartable-units.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch396: 0002-systemd-fix-error-message.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch398: 0004-config-parser-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch399: 0005-login-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/02 +Patch400: 0001-login-simplify-controller-handling.patch # UDEV PATCHES # ============ @@ -944,6 +958,10 @@ Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch # PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1496,6 +1514,13 @@ cp %{SOURCE7} m4/ %patch391 -p0 %patch392 -p0 %patch393 -p0 +%patch394 -p0 +%patch395 -p0 +%patch396 -p0 +%patch397 -p0 +%patch398 -p0 +%patch399 -p0 +%patch400 -p0 # udev patches %patch1001 -p1 @@ -1583,6 +1608,8 @@ cp %{SOURCE7} m4/ %patch1062 -p1 %patch1063 -p0 %patch1064 -p0 +%patch1065 -p0 +%patch1066 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ From b7f7394c7c09a06ec9beedd4e942e3fe89f704a6f0ef4606efc01a117a3bcce4 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 6 Sep 2014 10:17:41 +0000 Subject: [PATCH 198/221] Accepting request 247547 from Base:System - Disable patch module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch for SLES-12 as well as for openSUSE-13.2 (bnc#895087) - Disable patch module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch for SLES-12 as well as for openSUSE-13.2 (bnc#895087) OBS-URL: https://build.opensuse.org/request/show/247547 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=204 --- systemd-mini.changes | 7 +++++++ systemd-mini.spec | 2 ++ systemd.changes | 7 +++++++ systemd.spec | 2 ++ 4 files changed, 18 insertions(+) diff --git a/systemd-mini.changes b/systemd-mini.changes index 33ae215d..91d2b719 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Sep 4 13:10:28 UTC 2014 - werner@suse.de + +- Disable patch + module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + for SLES-12 as well as for openSUSE-13.2 (bnc#895087) + ------------------------------------------------------------------- Tue Sep 2 12:56:47 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 3f55c4dc..edaeef3c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1206,7 +1206,9 @@ cp %{SOURCE7} m4/ %patch5 -p1 %patch6 -p1 %patch7 -p1 +%if 0%{?suse_version} <= 1310 %patch8 -p1 +%endif %patch9 -p1 %patch12 -p1 %patch13 -p0 diff --git a/systemd.changes b/systemd.changes index 33ae215d..91d2b719 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Sep 4 13:10:28 UTC 2014 - werner@suse.de + +- Disable patch + module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + for SLES-12 as well as for openSUSE-13.2 (bnc#895087) + ------------------------------------------------------------------- Tue Sep 2 12:56:47 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 2c4dca48..92f20301 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1201,7 +1201,9 @@ cp %{SOURCE7} m4/ %patch5 -p1 %patch6 -p1 %patch7 -p1 +%if 0%{?suse_version} <= 1310 %patch8 -p1 +%endif %patch9 -p1 %patch12 -p1 %patch13 -p0 From 3ec559f957c16ae2e92daddea0a15e1e7f5e8c5aaf0e97257a9355b942b05e53 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 10 Sep 2014 05:28:31 +0000 Subject: [PATCH 199/221] Accepting request 248040 from Base:System - Add upstream patches 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - Add upstream patches 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch OBS-URL: https://build.opensuse.org/request/show/248040 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=205 --- ....service-ignore-return-code-of-daemo.patch | 29 +++++ ...base-of-Bluetooth-company-identifier.patch | 104 ++++++++++++++++++ systemd-mini.changes | 7 ++ systemd-mini.spec | 6 + systemd.changes | 7 ++ systemd.spec | 6 + 6 files changed, 159 insertions(+) create mode 100644 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch create mode 100644 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch diff --git a/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch b/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch new file mode 100644 index 00000000..722f7382 --- /dev/null +++ b/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch @@ -0,0 +1,29 @@ +From f3b8fbb1da6519e14985ea444f8304673d20ad3f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 3 Sep 2014 13:28:31 +0200 +Subject: [PATCH] initrd-parse-etc.service: ignore return code of + daemon-reload + +It seems the return code of systemctl daemon-reload can be !=0 in some +circumstances, which causes a failure of the unit and breaks booting in +the initrd. +--- + units/initrd-parse-etc.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git units/initrd-parse-etc.service.in units/initrd-parse-etc.service.in +index c0b2543..42c059b 100644 +--- units/initrd-parse-etc.service.in ++++ units/initrd-parse-etc.service.in +@@ -16,7 +16,7 @@ ConditionPathExists=/etc/initrd-release + + [Service] + Type=oneshot +-ExecStartPre=@rootbindir@/systemctl daemon-reload ++ExecStartPre=-@rootbindir@/systemctl daemon-reload + # we have to retrigger initrd-fs.target after daemon-reload + ExecStart=-@rootbindir@/systemctl --no-block start initrd-fs.target + ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service +-- +1.7.9.2 + diff --git a/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..9c554056 --- /dev/null +++ b/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,104 @@ +From de68938a2cb3ab535ebd9198723a651753c1a1df Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Mon, 8 Sep 2014 05:06:18 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 77 ++++++++++++++++++++++++++++++++- + 1 file changed, 76 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 9f3136a..14aee74 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -184,7 +184,7 @@ bluetooth:v003B* + ID_VENDOR_FROM_DATABASE=Gennum Corporation + + bluetooth:v003C* +- ID_VENDOR_FROM_DATABASE=Research In Motion ++ ID_VENDOR_FROM_DATABASE=BlackBerry Limited (formerly Research In Motion) + + bluetooth:v003D* + ID_VENDOR_FROM_DATABASE=IPextreme, Inc. +@@ -1073,3 +1073,78 @@ bluetooth:v0162* + + bluetooth:v0163* + ID_VENDOR_FROM_DATABASE=PCH International ++ ++bluetooth:v0164* ++ ID_VENDOR_FROM_DATABASE=Qingdao Yeelink Information Technology Co., Ltd. ++ ++bluetooth:v0165* ++ ID_VENDOR_FROM_DATABASE=Milwaukee Tool (formerly Milwaukee Electric Tools) ++ ++bluetooth:v0166* ++ ID_VENDOR_FROM_DATABASE=MISHIK Pte Ltd ++ ++bluetooth:v0167* ++ ID_VENDOR_FROM_DATABASE=Bayer HealthCare ++ ++bluetooth:v0168* ++ ID_VENDOR_FROM_DATABASE=Spicebox LLC ++ ++bluetooth:v0169* ++ ID_VENDOR_FROM_DATABASE=emberlight ++ ++bluetooth:v016A* ++ ID_VENDOR_FROM_DATABASE=Cooper-Atkins Corporation ++ ++bluetooth:v016B* ++ ID_VENDOR_FROM_DATABASE=Qblinks ++ ++bluetooth:v016C* ++ ID_VENDOR_FROM_DATABASE=MYSPHERA ++ ++bluetooth:v016D* ++ ID_VENDOR_FROM_DATABASE=LifeScan Inc ++ ++bluetooth:v016E* ++ ID_VENDOR_FROM_DATABASE=Volantic AB ++ ++bluetooth:v016F* ++ ID_VENDOR_FROM_DATABASE=Podo Labs, Inc ++ ++bluetooth:v0170* ++ ID_VENDOR_FROM_DATABASE=Roche Diabetes Care AG ++ ++bluetooth:v0171* ++ ID_VENDOR_FROM_DATABASE=Amazon Fulfillment Service ++ ++bluetooth:v0172* ++ ID_VENDOR_FROM_DATABASE=Connovate Technology Private Limited ++ ++bluetooth:v0173* ++ ID_VENDOR_FROM_DATABASE=Kocomojo, LLC ++ ++bluetooth:v0174* ++ ID_VENDOR_FROM_DATABASE=Everykey LLC ++ ++bluetooth:v0175* ++ ID_VENDOR_FROM_DATABASE=Dynamic Controls ++ ++bluetooth:v0176* ++ ID_VENDOR_FROM_DATABASE=SentriLock ++ ++bluetooth:v0177* ++ ID_VENDOR_FROM_DATABASE=I-SYST inc. ++ ++bluetooth:v0178* ++ ID_VENDOR_FROM_DATABASE=CASIO COMPUTER CO., LTD. ++ ++bluetooth:v0179* ++ ID_VENDOR_FROM_DATABASE=LAPIS Semiconductor Co., Ltd. ++ ++bluetooth:v017A* ++ ID_VENDOR_FROM_DATABASE=Telemonitor, Inc. ++ ++bluetooth:v017B* ++ ID_VENDOR_FROM_DATABASE=taskit GmbH ++ ++bluetooth:v017C* ++ ID_VENDOR_FROM_DATABASE=Daimler AG +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 91d2b719..dca120be 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Sep 8 14:48:37 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch + 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch + ------------------------------------------------------------------- Thu Sep 4 13:10:28 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index edaeef3c..978f7b3d 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -828,6 +828,10 @@ Patch398: 0004-config-parser-fix-mem-leak.patch Patch399: 0005-login-fix-mem-leak.patch # PATCH-FIX-UPSTREAM added at 2014/09/02 Patch400: 0001-login-simplify-controller-handling.patch +# PATCH-FIX-UPSTREAM added at 2014/09/05 +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 # UDEV PATCHES # ============ @@ -1528,6 +1532,8 @@ cp %{SOURCE7} m4/ %patch398 -p0 %patch399 -p0 %patch400 -p0 +%patch401 -p0 +%patch402 -p0 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 91d2b719..dca120be 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Sep 8 14:48:37 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch + 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch + ------------------------------------------------------------------- Thu Sep 4 13:10:28 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 92f20301..02c895a9 100644 --- a/systemd.spec +++ b/systemd.spec @@ -823,6 +823,10 @@ Patch398: 0004-config-parser-fix-mem-leak.patch Patch399: 0005-login-fix-mem-leak.patch # PATCH-FIX-UPSTREAM added at 2014/09/02 Patch400: 0001-login-simplify-controller-handling.patch +# PATCH-FIX-UPSTREAM added at 2014/09/05 +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 # UDEV PATCHES # ============ @@ -1523,6 +1527,8 @@ cp %{SOURCE7} m4/ %patch398 -p0 %patch399 -p0 %patch400 -p0 +%patch401 -p0 +%patch402 -p0 # udev patches %patch1001 -p1 From 6a62c05e32edcd5403ff74fd12f244e549c36d517e97cc81c7127429dd74b5ff Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 17 Sep 2014 15:41:54 +0000 Subject: [PATCH 200/221] Accepting request 249581 from Base:System - 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 - Add upstream patch 0001-systemctl-allow-to-change-the-default-target-without.patch to allow to override default target without --force (bnc#896664) - 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 OBS-URL: https://build.opensuse.org/request/show/249581 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=206 --- 0001-activate-fix-fd-leak-in-do_accept.patch | 26 + ...to-change-the-default-target-without.patch | 51 + 0002-analyze-avoid-a-null-dereference.patch | 30 + 0003-analyze-fix-mem-leak.patch | 27 + ...error-when-state-restore-is-disabled.patch | 33 + ...avoid-using-m-kdbus-after-freeing-it.patch | 35 + 0006-bus-unref-buscreds-on-failure.patch | 32 + 0007-core-fix-a-potential-mem-leak.patch | 25 + ...-Actually-allow-for-succesfully-load.patch | 31 + 0009-hwdb-update.patch | 3363 +++++++++++++++++ 0009-journal-do-not-leak-mmaps-on-OOM.patch | 50 + ...manager-use-correct-cleanup-function.patch | 30 + ...lve-correctly-database-names-on-chan.patch | 53 + ...ink-export-the-.link-filename-applie.patch | 26 + ...link-preserve-ID_NET_LINK_FILE-and-I.patch | 27 + ...et-setup-link-remove-stray-linebreak.patch | 27 + ...full-db-on-MOVE-events-for-devices-w.patch | 54 + ...-udev-netif_rename-don-t-log-to-kmsg.patch | 39 + 1073-udev-drop-print_kmsg.patch | 75 + ...-fix-copy-paste-error-in-log-message.patch | 25 + 1075-udev-timeout-increase-timeout.patch | 28 + ...n-after-a-third-of-the-timeout-befor.patch | 350 ++ ...n-after-a-third-of-the-timeout-befor.patch | 350 ++ ...e-userspace-firmware-loading-support.patch | 349 ++ ...e-userspace-firmware-loading-support.patch | 349 ++ systemd-mini.changes | 60 + systemd-mini.spec | 83 + systemd.changes | 60 + systemd.spec | 83 + 29 files changed, 5771 insertions(+) create mode 100644 0001-activate-fix-fd-leak-in-do_accept.patch create mode 100644 0001-systemctl-allow-to-change-the-default-target-without.patch create mode 100644 0002-analyze-avoid-a-null-dereference.patch create mode 100644 0003-analyze-fix-mem-leak.patch create mode 100644 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch create mode 100644 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch create mode 100644 0006-bus-unref-buscreds-on-failure.patch create mode 100644 0007-core-fix-a-potential-mem-leak.patch create mode 100644 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch create mode 100644 0009-hwdb-update.patch create mode 100644 0009-journal-do-not-leak-mmaps-on-OOM.patch create mode 100644 0010-manager-use-correct-cleanup-function.patch create mode 100644 1067-udev-always-resolve-correctly-database-names-on-chan.patch create mode 100644 1068-udev-net_setup_link-export-the-.link-filename-applie.patch create mode 100644 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch create mode 100644 1070-rules-net-setup-link-remove-stray-linebreak.patch create mode 100644 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch create mode 100644 1072-udev-netif_rename-don-t-log-to-kmsg.patch create mode 100644 1073-udev-drop-print_kmsg.patch create mode 100644 1074-udev-fix-copy-paste-error-in-log-message.patch create mode 100644 1075-udev-timeout-increase-timeout.patch create mode 100644 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch create mode 100644 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch create mode 100644 1078-udev-remove-userspace-firmware-loading-support.patch create mode 100644 1079-udev-remove-userspace-firmware-loading-support.patch 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 00000000..14104a34 --- /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 00000000..8e78fe01 --- /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 00000000..b7662371 --- /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 00000000..10ecbcfc --- /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 00000000..281f7b5c --- /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 00000000..93f4711e --- /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 00000000..d6ec9ccd --- /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 00000000..03003901 --- /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 00000000..1cc429ce --- /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 00000000..099e33b6 --- /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 00000000..3d92f474 --- /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 00000000..0f46dec8 --- /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 00000000..9fdc9c68 --- /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 00000000..e0f7039c --- /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 00000000..7f7d24aa --- /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 00000000..f389aa8c --- /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 00000000..f821d890 --- /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 00000000..2a5cebd2 --- /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 00000000..27aaa6e3 --- /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 00000000..a617451f --- /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 00000000..08f6daeb --- /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 00000000..4345f929 --- /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 00000000..57b2d699 --- /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 00000000..42e0af98 --- /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 00000000..37a5e752 --- /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 dca120be..6299a5c6 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 978f7b3d..09ccb39c 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 dca120be..6299a5c6 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 02c895a9..17b43729 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 '{}' \+ From e7c96ab7f38529d0480b4db502e0682e8650259568ab8dd9e0fca084414c7ce2 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 20 Sep 2014 13:51:16 +0000 Subject: [PATCH 201/221] Accepting request 250254 from Base:System - Add patch 0001-bnc888612-logind-polkit-acpi.patch from Frederic to solve bnc#888612 - AUDIT-0: Power button press at gdm login should not prompt for credentials - Add upstream bugfix patches 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch 0003-mount-order-options-before-other-arguments-to-mount.patch 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch 0005-shared-label.h-add-missing-stdio.h-include.patch 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch 1081-udevd-check-return-of-various-functions.patch 1082-udevadm-hwdb-check-return-value-of-fseeko.patch 1083-udev-node-warn-if-chmod-chown-fails.patch 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch 1085-udev-fix-typos.patch 1086-udevd-don-t-fail-if-run-udev-exists.patch - Add upstream bugfix patches 0001-core-fix-resource-leak-in-manager_environment_add.patch 0002-util-remove-a-unnecessary-check.patch 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch 0004-shared-conf-parser.patch 0005-logind-fix-typo.patch 0006-systemctl-fix-resource-leak-CID-1237747.patch 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patc OBS-URL: https://build.opensuse.org/request/show/250254 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=207 --- 0001-bnc888612-logind-polkit-acpi.patch | 75 +++++++++++++ ...urce-leak-in-manager_environment_add.patch | 32 ++++++ ...ount-on-the-compiler-initializing-fo.patch | 30 +++++ ...lude-fcntl.h-rather-than-sys-fcntl.h.patch | 25 +++++ 0002-util-remove-a-unnecessary-check.patch | 25 +++++ ...ions-before-other-arguments-to-mount.patch | 39 +++++++ ...xplicitly-don-t-read-from-invalid-fd.patch | 27 +++++ 0004-shared-conf-parser.patch | 31 +++++ ...-don-t-clear-store_wtmp-in-utmp_put_.patch | 106 ++++++++++++++++++ 0005-logind-fix-typo.patch | 25 +++++ ...-label.h-add-missing-stdio.h-include.patch | 24 ++++ ...dian.h-add-missing-byteswap.h-includ.patch | 24 ++++ ...temctl-fix-resource-leak-CID-1237747.patch | 35 ++++++ ...warn-if-we-fail-to-request-SO_PASSCR.patch | 29 +++++ ...er-don-t-leak-memory-on-error-in-DEF.patch | 52 +++++++++ ...int_property-to-use-int-for-booleans.patch | 29 +++++ ...se_argv-warn-if-argumens-are-invalid.patch | 73 ++++++++++++ ...vd-check-return-of-various-functions.patch | 55 +++++++++ ...dm-hwdb-check-return-value-of-fseeko.patch | 45 ++++++++ ...-udev-node-warn-if-chmod-chown-fails.patch | 34 ++++++ ...trl-log-if-setting-SO_PASSCRED-fails.patch | 45 ++++++++ 1085-udev-fix-typos.patch | 33 ++++++ ...-udevd-don-t-fail-if-run-udev-exists.patch | 25 +++++ systemd-mini.changes | 51 +++++++++ systemd-mini.spec | 69 ++++++++++++ systemd.changes | 51 +++++++++ systemd.spec | 69 ++++++++++++ 27 files changed, 1158 insertions(+) create mode 100644 0001-bnc888612-logind-polkit-acpi.patch create mode 100644 0001-core-fix-resource-leak-in-manager_environment_add.patch create mode 100644 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch create mode 100644 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch create mode 100644 0002-util-remove-a-unnecessary-check.patch create mode 100644 0003-mount-order-options-before-other-arguments-to-mount.patch create mode 100644 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch create mode 100644 0004-shared-conf-parser.patch create mode 100644 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch create mode 100644 0005-logind-fix-typo.patch create mode 100644 0005-shared-label.h-add-missing-stdio.h-include.patch create mode 100644 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch create mode 100644 0006-systemctl-fix-resource-leak-CID-1237747.patch create mode 100644 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch create mode 100644 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch create mode 100644 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch create mode 100644 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch create mode 100644 1081-udevd-check-return-of-various-functions.patch create mode 100644 1082-udevadm-hwdb-check-return-value-of-fseeko.patch create mode 100644 1083-udev-node-warn-if-chmod-chown-fails.patch create mode 100644 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch create mode 100644 1085-udev-fix-typos.patch create mode 100644 1086-udevd-don-t-fail-if-run-udev-exists.patch diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch new file mode 100644 index 00000000..ba3a1b52 --- /dev/null +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -0,0 +1,75 @@ +--- + src/login/logind-action.c | 5 +++++ + src/login/logind-dbus.c | 20 ++++++++++++++++---- + 2 files changed, 21 insertions(+), 4 deletions(-) + +Index: systemd-210/src/login/logind-action.c +=================================================================== +--- systemd-210/src/login/logind-action.c ++++ systemd-210/src/login/logind-action.c +@@ -101,6 +101,11 @@ int manager_handle_action( + + /* If the key handling is inhibited, don't do anything */ + if (inhibit_key > 0) { ++ if (inhibit_key == INHIBIT_HANDLE_POWER_KEY) { ++ int fd; ++ fd = open("/run/systemd/acpi-shutdown", O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR); ++ close(fd); ++ } + if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { + log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); + return 0; +Index: systemd-210/src/login/logind-dbus.c +=================================================================== +--- systemd-210/src/login/logind-dbus.c ++++ systemd-210/src/login/logind-dbus.c +@@ -1469,9 +1469,11 @@ static int method_do_shutdown_or_sleep( + sd_bus_error *error) { + + _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; +- bool multiple_sessions, blocked; ++ bool multiple_sessions, blocked, shutdown_through_acpi; + int interactive, r; + uid_t uid; ++ int fd; ++ struct stat buf; + + assert(m); + assert(message); +@@ -1515,7 +1517,17 @@ static int method_do_shutdown_or_sleep( + multiple_sessions = r > 0; + blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); + +- if (multiple_sessions) { ++ fd = open ("/run/systemd/acpi-shutdown", O_NOFOLLOW|O_PATH|O_CLOEXEC); ++ if (fd >= 0) { ++ shutdown_through_acpi = ((fstat(fd,&buf) == 0) && (time(NULL) - buf.st_mtime <= 65)); ++ close(fd); ++ unlink ("/run/systemd/acpi-shutdown"); ++ } ++ else ++ shutdown_through_acpi = false; ++ ++ ++ if (multiple_sessions && !shutdown_through_acpi) { + r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, + action_multiple_sessions, interactive, error, method, m); + if (r < 0) +@@ -1524,7 +1536,7 @@ static int method_do_shutdown_or_sleep( + return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + +- if (blocked) { ++ if (blocked && !shutdown_through_acpi) { + r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, + action_ignore_inhibit, interactive, error, method, m); + if (r < 0) +@@ -1533,7 +1545,7 @@ static int method_do_shutdown_or_sleep( + return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + +- if (!multiple_sessions && !blocked) { ++ if (!multiple_sessions && !blocked && !shutdown_through_acpi) { + r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, + action, interactive, error, method, m); + if (r < 0) diff --git a/0001-core-fix-resource-leak-in-manager_environment_add.patch b/0001-core-fix-resource-leak-in-manager_environment_add.patch new file mode 100644 index 00000000..7991b3be --- /dev/null +++ b/0001-core-fix-resource-leak-in-manager_environment_add.patch @@ -0,0 +1,32 @@ +From aa9f8a30fd7dc7aa3aa2575b75b3f9a0ab3f02db Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Tue, 16 Sep 2014 21:11:02 +0200 +Subject: [PATCH] core: fix resource leak in manager_environment_add + +Second error path must free the (potentially) allocated memory in the +first code chunk before returning. + +Found by coverity. Fixes: CID#1237750 +--- + src/core/manager.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git src/core/manager.c src/core/manager.c +index 0770727..e0c1cd1 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -2751,8 +2751,10 @@ int manager_environment_add(Manager *m, char **minus, char **plus) { + + if (!strv_isempty(plus)) { + b = strv_env_merge(2, l, plus); +- if (!b) ++ if (!b) { ++ strv_free(a); + return -ENOMEM; ++ } + + l = b; + } +-- +1.7.9.2 + diff --git a/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch b/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch new file mode 100644 index 00000000..1cf00ff0 --- /dev/null +++ b/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch @@ -0,0 +1,30 @@ +From e8c108ca9f11a382742f212f5b42a02536b3d40f Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Wed, 17 Sep 2014 00:27:16 +0300 +Subject: [PATCH] journal: Do not count on the compiler initializing + found_last to false + +There is a very unlikely case where this can happen since gcc usually +does the sane thing. But let's make sure found_last is initialized anyway. + +Fixes: CID#996386 +--- + src/journal/journal-verify.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journal-verify.c src/journal/journal-verify.c +index 6c8ca8c..b4e8f73 100644 +--- src/journal/journal-verify.c ++++ src/journal/journal-verify.c +@@ -804,7 +804,7 @@ int journal_file_verify( + usec_t last_usec = 0; + int data_fd = -1, entry_fd = -1, entry_array_fd = -1; + unsigned i; +- bool found_last; ++ bool found_last = false; + #ifdef HAVE_GCRYPT + uint64_t last_tag = 0; + #endif +-- +1.7.9.2 + diff --git a/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch b/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch new file mode 100644 index 00000000..17cd4197 --- /dev/null +++ b/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch @@ -0,0 +1,25 @@ +From fdb8bd0fe7244b72ddc1c08e401ebddefdaf4f46 Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:38 +0200 +Subject: [PATCH] include fcntl.h rather than sys/fcntl.h + +--- + src/socket-proxy/socket-proxyd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/socket-proxy/socket-proxyd.c src/socket-proxy/socket-proxyd.c +index 81d8457..ff2b24f 100644 +--- src/socket-proxy/socket-proxyd.c ++++ src/socket-proxy/socket-proxyd.c +@@ -26,7 +26,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +1.7.9.2 + diff --git a/0002-util-remove-a-unnecessary-check.patch b/0002-util-remove-a-unnecessary-check.patch new file mode 100644 index 00000000..ac7cdfb8 --- /dev/null +++ b/0002-util-remove-a-unnecessary-check.patch @@ -0,0 +1,25 @@ +Based on 42646a8bf24be2c9280554c9d8540c67c835b3c4 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Tue, 16 Sep 2014 22:58:35 +0200 +Subject: [PATCH] util: remove a unnecessary check + +We only break out of the previous loop if fd >= 0 so there is no +use in checking it again. + +Found by coverity. Fixes: CID#1237577 +--- + src/shared/util.c | 3 --- + 1 file changed, 3 deletions(-) + +--- src/shared/util.c ++++ src/shared/util.c 2014-09-18 13:05:08.218236754 +0000 +@@ -1772,9 +1772,6 @@ int open_terminal(const char *name, int + c++; + } + +- if (fd < 0) +- return -errno; +- + r = isatty(fd); + if (r < 0) { + close_nointr_nofail(fd); diff --git a/0003-mount-order-options-before-other-arguments-to-mount.patch b/0003-mount-order-options-before-other-arguments-to-mount.patch new file mode 100644 index 00000000..79c0b3ce --- /dev/null +++ b/0003-mount-order-options-before-other-arguments-to-mount.patch @@ -0,0 +1,39 @@ +Based on 141a1ceaa62578f1ed14f04cae2113dd0f49fd7f Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:59 +0200 +Subject: [PATCH] mount: order options before other arguments to mount + +--- + src/core/mount.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +--- src/core/mount.c ++++ src/core/mount.c 2014-09-19 10:13:51.638238597 +0000 +@@ -947,10 +947,11 @@ static void mount_enter_mounting(Mount * + r = exec_command_set( + m->control_command, + "/bin/mount", +- m->parameters_fragment.what, +- m->where, ++ "-n", + "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", + m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options, ++ m->parameters_fragment.what, ++ m->where, + NULL); + else + r = -ENOENT; +@@ -994,10 +995,11 @@ static void mount_enter_remounting(Mount + r = exec_command_set( + m->control_command, + "/bin/mount", +- m->parameters_fragment.what, +- m->where, ++ "-n", + "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", + "-o", o, ++ m->parameters_fragment.what, ++ m->where, + NULL); + } else + r = -ENOENT; diff --git a/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch b/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch new file mode 100644 index 00000000..bad29c52 --- /dev/null +++ b/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch @@ -0,0 +1,27 @@ +From 3f796750b192e62701e91a95f85389f876d1059b Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 17 Sep 2014 21:44:56 +0200 +Subject: [PATCH] udev: event - explicitly don't read() from invalid fd + +This fixes CID #1237641. +--- + src/udev/udev-event.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/udev/udev-event.c src/udev/udev-event.c +index 6b8b5a8..c8b1420 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -494,6 +494,9 @@ static void spawn_read(struct udev_event *event, + for (i = 0; i < fdcount; i++) { + int *fd = (int *)ev[i].data.ptr; + ++ if (*fd < 0) ++ continue; ++ + if (ev[i].events & EPOLLIN) { + ssize_t count; + char buf[4096]; +-- +1.7.9.2 + diff --git a/0004-shared-conf-parser.patch b/0004-shared-conf-parser.patch new file mode 100644 index 00000000..8a03d9d5 --- /dev/null +++ b/0004-shared-conf-parser.patch @@ -0,0 +1,31 @@ +Based on 83e341a637b75f7f592a5dc717c34d8b67ed4ffa Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 17 Sep 2014 22:17:53 +0200 +Subject: [PATCH] shared: conf-parser + +Check memory allocation. Found by Coverity. + +Fixes CID #1237644. +--- + src/shared/conf-parser.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h 2014-09-18 13:07:07.314735514 +0000 +@@ -181,6 +181,8 @@ int log_syntax_internal(const char *unit + assert(data); \ + \ + xs = new0(type, 1); \ ++ if(!xs) \ ++ return -ENOMEM; \ + *xs = invalid; \ + \ + FOREACH_WORD(w, l, rvalue, state) { \ +@@ -213,6 +215,7 @@ int log_syntax_internal(const char *unit + xs = realloc(xs, (++i + 1) * sizeof(type)); \ + if (!xs) \ + return -ENOMEM; \ ++ \ + *(xs + i) = invalid; \ + } \ + \ diff --git a/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch b/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch new file mode 100644 index 00000000..596aa557 --- /dev/null +++ b/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch @@ -0,0 +1,106 @@ +From 863f3ce0d050f005839f6aa41fe7bac5478a7b5e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 19 Sep 2014 08:03:31 +0200 +Subject: [PATCH] shared: wtmp-utmp - don't clear store_wtmp in + utmp_put_dead_process() + +Also modernize a few other things and add comments to explain CID #1237503 +and CID #1237504. +--- + src/shared/utmp-wtmp.c | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git src/shared/utmp-wtmp.c src/shared/utmp-wtmp.c +index 30a0c03..31f13ec 100644 +--- src/shared/utmp-wtmp.c ++++ src/shared/utmp-wtmp.c +@@ -92,8 +92,6 @@ int utmp_get_runlevel(int *runlevel, int *previous) { + static void init_timestamp(struct utmpx *store, usec_t t) { + assert(store); + +- zero(*store); +- + if (t <= 0) + t = now(CLOCK_REALTIME); + +@@ -143,7 +141,7 @@ static int write_entry_wtmp(const struct utmpx *store) { + assert(store); + + /* wtmp is a simple append-only file where each entry is +- simply appended to * the end; i.e. basically a log. */ ++ simply appended to the end; i.e. basically a log. */ + + errno = 0; + updwtmpx(_PATH_WTMPX, store); +@@ -172,7 +170,7 @@ static int write_entry_both(const struct utmpx *store) { + } + + int utmp_put_shutdown(void) { +- struct utmpx store; ++ struct utmpx store = {}; + + init_entry(&store, 0); + +@@ -183,7 +181,7 @@ int utmp_put_shutdown(void) { + } + + int utmp_put_reboot(usec_t t) { +- struct utmpx store; ++ struct utmpx store = {}; + + init_entry(&store, t); + +@@ -206,16 +204,17 @@ _pure_ static const char *sanitize_id(const char *id) { + } + + int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line) { +- struct utmpx store; ++ struct utmpx store = { ++ .ut_type = INIT_PROCESS, ++ .ut_pid = pid, ++ .ut_session = sid, ++ }; + + assert(id); + + init_timestamp(&store, 0); + +- store.ut_type = INIT_PROCESS; +- store.ut_pid = pid; +- store.ut_session = sid; +- ++ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ + strncpy(store.ut_id, sanitize_id(id), sizeof(store.ut_id)); + + if (line) +@@ -225,14 +224,15 @@ int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line + } + + int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { +- struct utmpx lookup, store, store_wtmp, *found; ++ struct utmpx lookup = { ++ .ut_type = INIT_PROCESS /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ ++ }, store, store_wtmp, *found; + + assert(id); + + setutxent(); + +- zero(lookup); +- lookup.ut_type = INIT_PROCESS; /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ ++ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ + strncpy(lookup.ut_id, sanitize_id(id), sizeof(lookup.ut_id)); + + found = getutxid(&lookup); +@@ -260,7 +260,7 @@ int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { + + + int utmp_put_runlevel(int runlevel, int previous) { +- struct utmpx store; ++ struct utmpx store = {}; + int r; + + assert(runlevel > 0); +-- +1.7.9.2 + diff --git a/0005-logind-fix-typo.patch b/0005-logind-fix-typo.patch new file mode 100644 index 00000000..79916e75 --- /dev/null +++ b/0005-logind-fix-typo.patch @@ -0,0 +1,25 @@ +From 2b2332856bafe25c4aa17db2a90bdcddef1fec1a Mon Sep 17 00:00:00 2001 +From: Ronny Chevalier +Date: Wed, 17 Sep 2014 20:10:44 +0200 +Subject: [PATCH] logind: fix typo + +--- + src/login/logind-session-dbus.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-session-dbus.c src/login/logind-session-dbus.c +index 7d81500..58836fc 100644 +--- src/login/logind-session-dbus.c ++++ src/login/logind-session-dbus.c +@@ -249,7 +249,7 @@ static int method_set_idle_hint(sd_bus *bus, sd_bus_message *message, void *user + return r; + + if (uid != 0 && uid != s->user->uid) +- return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session my set idle hint"); ++ return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session may set idle hint"); + + session_set_idle_hint(s, b); + +-- +1.7.9.2 + diff --git a/0005-shared-label.h-add-missing-stdio.h-include.patch b/0005-shared-label.h-add-missing-stdio.h-include.patch new file mode 100644 index 00000000..1c75aacc --- /dev/null +++ b/0005-shared-label.h-add-missing-stdio.h-include.patch @@ -0,0 +1,24 @@ +From 45f15021e3524b04d574b9ff4e801cb3219daf3f Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:42 +0200 +Subject: [PATCH] shared/label.h: add missing stdio.h include + +--- + src/shared/label.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/label.h src/shared/label.h +index 7294820..cb2ec79 100644 +--- src/shared/label.h ++++ src/shared/label.h +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + int label_init(const char *prefix); + void label_finish(void); +-- +1.7.9.2 + diff --git a/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch b/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch new file mode 100644 index 00000000..0dec2f61 --- /dev/null +++ b/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch @@ -0,0 +1,24 @@ +From 8e8af4cfc7fa373504a22e58966909161acfb72f Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:43 +0200 +Subject: [PATCH] shared/sparse-endian.h: add missing byteswap.h include + +--- + src/shared/sparse-endian.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/sparse-endian.h src/shared/sparse-endian.h +index eb4dbf3..c913fda 100644 +--- src/shared/sparse-endian.h ++++ src/shared/sparse-endian.h +@@ -21,6 +21,7 @@ + #ifndef SPARSE_ENDIAN_H + #define SPARSE_ENDIAN_H + ++#include + #include + #include + +-- +1.7.9.2 + diff --git a/0006-systemctl-fix-resource-leak-CID-1237747.patch b/0006-systemctl-fix-resource-leak-CID-1237747.patch new file mode 100644 index 00000000..f8ec6af1 --- /dev/null +++ b/0006-systemctl-fix-resource-leak-CID-1237747.patch @@ -0,0 +1,35 @@ +From 48a2900c6612052149a1d0dd88aeacb99b49ce4d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Wed, 17 Sep 2014 21:56:25 -0300 +Subject: [PATCH] systemctl: fix resource leak CID #1237747 + +..by simply moving the declaration of "unit" into the STRV_FOREACH +loop as suggested by Andreas. +--- + src/systemctl/systemctl.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 88be871..9012128 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -4449,7 +4449,6 @@ static int show(sd_bus *bus, char **args) { + } + + static int cat(sd_bus *bus, char **args) { +- _cleanup_free_ char *unit = NULL; + _cleanup_strv_free_ char **names = NULL; + char **name; + bool first = true; +@@ -4468,6 +4467,8 @@ static int cat(sd_bus *bus, char **args) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_strv_free_ char **dropin_paths = NULL; + _cleanup_free_ char *fragment_path = NULL; ++ _cleanup_free_ char *unit = NULL; ++ + char **path; + + unit = unit_dbus_path_from_name(*name); +-- +1.7.9.2 + diff --git a/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch b/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch new file mode 100644 index 00000000..15857575 --- /dev/null +++ b/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch @@ -0,0 +1,29 @@ +From 9dedfe7f667a8cb22ba85d0223556c69c4fd0e9a Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 09:20:46 +0200 +Subject: [PATCH] libudev: monitor - warn if we fail to request SO_PASSCRED + +The function still succeeds, so there is no functional change. This fixes CID #996288. +--- + src/libudev/libudev-monitor.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c +index 186e5e1..59698b8 100644 +--- src/libudev/libudev-monitor.c ++++ src/libudev/libudev-monitor.c +@@ -412,7 +412,10 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor) + } + + /* enable receiving of sender credentials */ +- setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ if (err < 0) ++ udev_err(udev_monitor->udev, "setting SO_PASSCRED failed: %m\n"); ++ + return 0; + } + +-- +1.7.9.2 + diff --git a/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch b/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch new file mode 100644 index 00000000..3e5d0c03 --- /dev/null +++ b/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch @@ -0,0 +1,52 @@ +Based on 77c10205bb337585c320e91af4b416f2dcc6faba Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 13:47:00 +0200 +Subject: [PATCH] shared: conf-parser - don't leak memory on error in + DEFINE_CONFIG_PARSE_ENUMV + +Found by Coverity. Fixes CID #1237746. +--- + src/shared/conf-parser.h | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h 2014-09-18 13:14:43.730234764 +0000 +@@ -171,7 +171,8 @@ int log_syntax_internal(const char *unit + void *data, \ + void *userdata) { \ + \ +- type **enums = data, *xs, x, *ys; \ ++ type **enums = data, x, *ys; \ ++ _cleanup_free_ type *xs = NULL; \ + char *w, *state; \ + size_t l, i = 0; \ + \ +@@ -187,6 +188,7 @@ int log_syntax_internal(const char *unit + \ + FOREACH_WORD(w, l, rvalue, state) { \ + _cleanup_free_ char *en = NULL; \ ++ type *new_xs; \ + \ + en = strndup(w, l); \ + if (!en) \ +@@ -212,8 +214,10 @@ int log_syntax_internal(const char *unit + continue; \ + \ + *(xs + i) = x; \ +- xs = realloc(xs, (++i + 1) * sizeof(type)); \ +- if (!xs) \ ++ new_xs = realloc(xs, (++i + 1) * sizeof(type)); \ ++ if (new_xs) \ ++ xs = new_xs; \ ++ else \ + return -ENOMEM; \ + \ + *(xs + i) = invalid; \ +@@ -221,5 +225,7 @@ int log_syntax_internal(const char *unit + \ + free(*enums); \ + *enums = xs; \ ++ xs = NULL; \ ++ \ + return 0; \ + } diff --git a/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch b/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch new file mode 100644 index 00000000..381d0732 --- /dev/null +++ b/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch @@ -0,0 +1,29 @@ +From c2fa048c4a70c8386c6d8fe939e5ea9edecf1e98 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 18 Sep 2014 13:28:28 +0200 +Subject: [PATCH] bus: fix bus_print_property() to use "int" for booleans + +We always use "int" if we retrieve boolean values from sd-bus, as "bool" +is only a single byte, but full int on va-args. + +Thanks to Werner Fink for the report! +--- + src/libsystemd/sd-bus/bus-util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c +index 7c6da60..9018bce 100644 +--- src/libsystemd/sd-bus/bus-util.c ++++ src/libsystemd/sd-bus/bus-util.c +@@ -631,7 +631,7 @@ int bus_print_property(const char *name, sd_bus_message *property, bool all) { + } + + case SD_BUS_TYPE_BOOLEAN: { +- bool b; ++ int b; + + r = sd_bus_message_read_basic(property, type, &b); + if (r < 0) +-- +1.7.9.2 + diff --git a/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch b/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch new file mode 100644 index 00000000..a623b566 --- /dev/null +++ b/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch @@ -0,0 +1,73 @@ +Based on 6f5cf8a8b1de763383f7382821147e538b7dbd6d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:02:03 +0200 +Subject: [PATCH] udevd: parse_argv - warn if argumens are invalid + +Found by Coverity. Fixes CID #1238780. +--- + src/udev/udevd.c | 34 ++++++++++++++++++++++++++-------- + 1 file changed, 26 insertions(+), 8 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-19 10:36:25.602735652 +0000 +@@ -1002,11 +1002,20 @@ static void kernel_cmdline_options(struc + log_set_max_level(prio); + udev_set_log_priority(udev, prio); + } else if (startswith(opt, "udev.children-max=")) { +- children_max = strtoul(opt + 18, NULL, 0); ++ r = safe_atoi(opt + 18, &children_max); ++ if (r < 0) ++ log_warning("Invalid udev.children-max ignored: %s", opt + 18); + } else if (startswith(opt, "udev.exec-delay=")) { +- exec_delay = strtoul(opt + 16, NULL, 0); ++ r = safe_atoi(opt + 16, &exec_delay); ++ if (r < 0) ++ log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); + } else if (startswith(opt, "udev.event-timeout=")) { +- event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; ++ r = safe_atou64(opt + 16, &event_timeout_usec); ++ if (r < 0) { ++ log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); ++ break; ++ } ++ event_timeout_usec *= USEC_PER_SEC; + event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; + } + +@@ -1052,7 +1061,7 @@ int main(int argc, char *argv[]) { + label_init("/dev"); + + for (;;) { +- int option; ++ int option, r; + + option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); + if (option == -1) +@@ -1063,14 +1072,23 @@ int main(int argc, char *argv[]) { + daemonize = true; + break; + case 'c': +- children_max = strtoul(optarg, NULL, 0); ++ r = safe_atoi(optarg, &children_max); ++ if (r < 0) ++ log_warning("Invalid --children-max ignored: %s", optarg); + break; + case 'e': +- exec_delay = strtoul(optarg, NULL, 0); ++ r = safe_atoi(optarg, &exec_delay); ++ if (r < 0) ++ log_warning("Invalid --exec-delay ignored: %s", optarg); + break; + case 't': +- event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; +- event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; ++ r = safe_atou64(optarg, &event_timeout_usec); ++ if (r < 0) ++ log_warning("Invalig --event-timeout ignored: %s", optarg); ++ else { ++ event_timeout_usec *= USEC_PER_SEC; ++ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; ++ } + break; + case 'D': + debug = true; diff --git a/1081-udevd-check-return-of-various-functions.patch b/1081-udevd-check-return-of-various-functions.patch new file mode 100644 index 00000000..819e4499 --- /dev/null +++ b/1081-udevd-check-return-of-various-functions.patch @@ -0,0 +1,55 @@ +Based on d457ff8319b1e7c522c146f75e272f1226f4720c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:07:02 +0200 +Subject: [PATCH] udevd: check return of various functions + +One reported by Coverity. Fixes CID #996252. +--- + src/udev/udevd.c | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-19 11:33:21.566236309 +0000 +@@ -1044,7 +1044,7 @@ int main(int argc, char *argv[]) { + int fd_worker = -1; + struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker; + struct udev_ctrl_connection *ctrl_conn = NULL; +- int rc = 1; ++ int rc = 1, r; + + udev = udev_new(); + if (udev == NULL) +@@ -1058,7 +1058,11 @@ int main(int argc, char *argv[]) { + log_set_max_level(udev_get_log_priority(udev)); + + log_debug("version %s", VERSION); +- label_init("/dev"); ++ r = label_init("/dev"); ++ if (r < 0) { ++ log_error("could not initialize labelling: %s", strerror(-r)); ++ goto exit; ++ } + + for (;;) { + int option, r; +@@ -1137,10 +1141,18 @@ int main(int argc, char *argv[]) { + } + + /* set umask before creating any file/directory */ +- chdir("/"); ++ r = chdir("/"); ++ if (r < 0) { ++ log_error("could not change dir to /: %m"); ++ goto exit; ++ } + umask(022); + +- mkdir("/run/udev", 0755); ++ r = mkdir("/run/udev", 0755); ++ if (r < 0) { ++ log_error("could not create /run/udev: %m"); ++ goto exit; ++ } + + dev_setup(NULL); + diff --git a/1082-udevadm-hwdb-check-return-value-of-fseeko.patch b/1082-udevadm-hwdb-check-return-value-of-fseeko.patch new file mode 100644 index 00000000..27e6dc45 --- /dev/null +++ b/1082-udevadm-hwdb-check-return-value-of-fseeko.patch @@ -0,0 +1,45 @@ +From f901aaadd68050bc575c1c15b84f8f31fd4d494d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:16:54 +0200 +Subject: [PATCH] udevadm: hwdb - check return value of fseeko() + +Fonud by Coverity. Fixes CID #996255. +--- + src/udev/udevadm-hwdb.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git src/udev/udevadm-hwdb.c src/udev/udevadm-hwdb.c +index 65cbf61..64273fb 100644 +--- src/udev/udevadm-hwdb.c ++++ src/udev/udevadm-hwdb.c +@@ -365,7 +365,12 @@ static int trie_store(struct trie *trie, const char *filename) { + fchmod(fileno(t.f), 0444); + + /* write nodes */ +- fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); ++ err = fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); ++ if (err < 0) { ++ fclose(t.f); ++ unlink_noerrno(filename_tmp); ++ return -errno; ++ } + root_off = trie_store_nodes(&t, trie->root); + h.nodes_root_off = htole64(root_off); + pos = ftello(t.f); +@@ -378,7 +383,12 @@ static int trie_store(struct trie *trie, const char *filename) { + /* write header */ + size = ftello(t.f); + h.file_size = htole64(size); +- fseeko(t.f, 0, SEEK_SET); ++ err = fseeko(t.f, 0, SEEK_SET); ++ if (err < 0) { ++ fclose(t.f); ++ unlink_noerrno(filename_tmp); ++ return -errno; ++ } + fwrite(&h, sizeof(struct trie_header_f), 1, t.f); + err = ferror(t.f); + if (err) +-- +1.7.9.2 + diff --git a/1083-udev-node-warn-if-chmod-chown-fails.patch b/1083-udev-node-warn-if-chmod-chown-fails.patch new file mode 100644 index 00000000..0b78f626 --- /dev/null +++ b/1083-udev-node-warn-if-chmod-chown-fails.patch @@ -0,0 +1,34 @@ +From 543afdc63c02a5af3cf6bd2a264162f23474346a Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:22:09 +0200 +Subject: [PATCH] udev: node - warn if chmod/chown fails + +No functional change, just log the warning. + +Fonud by Coverity. Fixes CID #1237544. +--- + src/udev/udev-node.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git src/udev/udev-node.c src/udev/udev-node.c +index c164603..8ef7889 100644 +--- src/udev/udev-node.c ++++ src/udev/udev-node.c +@@ -281,8 +281,12 @@ static int node_permissions_apply(struct udev_device *dev, bool apply, + + if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) { + log_debug("set permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); +- chmod(devnode, mode); +- chown(devnode, uid, gid); ++ err = chmod(devnode, mode); ++ if (err < 0) ++ log_warning("setting mode of %s to %#o failed: %m", devnode, mode); ++ err = chown(devnode, uid, gid); ++ if (err < 0) ++ log_warning("setting owner of %s to uid=%u, gid=%u failed: %m", devnode, uid, gid); + } else { + log_debug("preserve permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); + } +-- +1.7.9.2 + diff --git a/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch b/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch new file mode 100644 index 00000000..1e8f4fcf --- /dev/null +++ b/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch @@ -0,0 +1,45 @@ +Based on 4bbdff757ed4e718a3348b93439a03055cc5e3bc Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:26:11 +0200 +Subject: [PATCH] udev: ctrl - log if setting SO_PASSCRED fails + +No functional change. + +Found by Coverity. Fixes CID #1237533. +--- + src/udev/udev-ctrl.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- src/udev/udev-ctrl.c ++++ src/udev/udev-ctrl.c 2014-09-19 10:45:55.494236229 +0000 +@@ -74,6 +74,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd( + { + struct udev_ctrl *uctrl; + const int on = 1; ++ int r; + + uctrl = new0(struct udev_ctrl, 1); + if (uctrl == NULL) +@@ -92,7 +93,9 @@ struct udev_ctrl *udev_ctrl_new_from_fd( + uctrl->bound = true; + uctrl->sock = fd; + } +- setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ r = setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ if (r < 0) ++ log_warning("could not set SO_PASSCRED: %m"); + + uctrl->saddr.sun_family = AF_LOCAL; + strscpy(uctrl->saddr.sun_path, sizeof(uctrl->saddr.sun_path), "/run/udev/control"); +@@ -209,7 +212,10 @@ struct udev_ctrl_connection *udev_ctrl_g + } + + /* enable receiving of the sender credentials in the messages */ +- setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ if (r < 0) ++ log_warning("colud not set SO_PASSCRED: %m"); ++ + udev_ctrl_ref(uctrl); + return conn; + err: diff --git a/1085-udev-fix-typos.patch b/1085-udev-fix-typos.patch new file mode 100644 index 00000000..f6476200 --- /dev/null +++ b/1085-udev-fix-typos.patch @@ -0,0 +1,33 @@ +Based on 65fea570f03df51dadc06a3e0d261a71fe62aa01 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 20:25:33 +0200 +Subject: [PATCH] udev: fix typos + +Spotted by Andreas Henriksson. +--- + src/udev/udev-ctrl.c | 2 +- + src/udev/udevd.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- src/udev/udev-ctrl.c ++++ src/udev/udev-ctrl.c 2014-09-19 00:00:00.000000000 +0000 +@@ -214,7 +214,7 @@ struct udev_ctrl_connection *udev_ctrl_g + /* enable receiving of the sender credentials in the messages */ + r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); + if (r < 0) +- log_warning("colud not set SO_PASSCRED: %m"); ++ log_warning("could not set SO_PASSCRED: %m"); + + udev_ctrl_ref(uctrl); + return conn; +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-19 10:47:36.306235720 +0000 +@@ -1088,7 +1088,7 @@ int main(int argc, char *argv[]) { + case 't': + r = safe_atou64(optarg, &event_timeout_usec); + if (r < 0) +- log_warning("Invalig --event-timeout ignored: %s", optarg); ++ log_warning("Invalid --event-timeout ignored: %s", optarg); + else { + event_timeout_usec *= USEC_PER_SEC; + event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; diff --git a/1086-udevd-don-t-fail-if-run-udev-exists.patch b/1086-udevd-don-t-fail-if-run-udev-exists.patch new file mode 100644 index 00000000..7f574d6a --- /dev/null +++ b/1086-udevd-don-t-fail-if-run-udev-exists.patch @@ -0,0 +1,25 @@ +From 25773e7fc59b4ce53d67da4e18bfe4d13ab0b14b Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 21:57:49 +0200 +Subject: [PATCH] udevd: don't fail if /run/udev exists + +--- + src/udev/udevd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index 37db81c..29ccb51 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -1155,7 +1155,7 @@ int main(int argc, char *argv[]) { + umask(022); + + r = mkdir("/run/udev", 0755); +- if (r < 0) { ++ if (r < 0 && errno != EEXIST) { + log_error("could not create /run/udev: %m"); + goto exit; + } +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 6299a5c6..d2bbba4a 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,54 @@ +------------------------------------------------------------------- +Fri Sep 19 13:08:14 UTC 2014 - werner@suse.de + +- Add patch 0001-bnc888612-logind-polkit-acpi.patch from Frederic + to solve bnc#888612 - AUDIT-0: Power button press at gdm login + should not prompt for credentials + +------------------------------------------------------------------- +Fri Sep 19 11:36:48 UTC 2014 - werner@suse.de + +- Add upstream bugfix patches + 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch + 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch + 0003-mount-order-options-before-other-arguments-to-mount.patch + 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch + 0005-shared-label.h-add-missing-stdio.h-include.patch + 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch + 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch + 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch + 1081-udevd-check-return-of-various-functions.patch + 1082-udevadm-hwdb-check-return-value-of-fseeko.patch + 1083-udev-node-warn-if-chmod-chown-fails.patch + 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch + 1085-udev-fix-typos.patch + 1086-udevd-don-t-fail-if-run-udev-exists.patch + +------------------------------------------------------------------- +Thu Sep 18 13:21:45 UTC 2014 - werner@suse.de + +- Add upstream bugfix patches + 0001-core-fix-resource-leak-in-manager_environment_add.patch + 0002-util-remove-a-unnecessary-check.patch + 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch + 0004-shared-conf-parser.patch + 0005-logind-fix-typo.patch + 0006-systemctl-fix-resource-leak-CID-1237747.patch + 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patc + 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +- Remove 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch as + 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch + is the upstream solution + +------------------------------------------------------------------- +Wed Sep 17 16:02:33 UTC 2014 - werner@suse.de + +- Add patch 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch to + fix for the size of the gcc builtin type bool also known as _Bool + from the include header stdbool.h. + ------------------------------------------------------------------- Tue Sep 16 10:45:33 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 09ccb39c..01e97923 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -856,6 +856,38 @@ Patch412: 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch 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 +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch416: 0002-util-remove-a-unnecessary-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch418: 0004-shared-conf-parser.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch419: 0005-logind-fix-typo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary +Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch +# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) +Patch430: 0001-bnc888612-logind-polkit-acpi.patch # UDEV PATCHES # ============ @@ -1021,6 +1053,20 @@ Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.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 +# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch +Patch1081: 1081-udevd-check-return-of-various-functions.patch +# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch +Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch +# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch +Patch1085: 1085-udev-fix-typos.patch +# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch +Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1596,6 +1642,22 @@ cp %{SOURCE7} m4/ %patch412 -p0 %patch413 -p0 %patch414 -p0 +%patch415 -p0 +%patch416 -p0 +%patch417 -p0 +%patch418 -p0 +%patch419 -p0 +%patch420 -p0 +%patch421 -p0 +%patch422 -p0 +%patch423 -p0 +%patch424 -p0 +%patch425 -p0 +%patch426 -p0 +%patch427 -p0 +%patch428 -p0 +%patch429 -p0 +%patch430 -p1 # udev patches %patch1001 -p1 @@ -1706,6 +1768,13 @@ cp %{SOURCE7} m4/ %patch1078 -p1 %endif %endif +%patch1080 -p0 +%patch1081 -p0 +%patch1082 -p0 +%patch1083 -p0 +%patch1084 -p0 +%patch1085 -p0 +%patch1086 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index 6299a5c6..d2bbba4a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,54 @@ +------------------------------------------------------------------- +Fri Sep 19 13:08:14 UTC 2014 - werner@suse.de + +- Add patch 0001-bnc888612-logind-polkit-acpi.patch from Frederic + to solve bnc#888612 - AUDIT-0: Power button press at gdm login + should not prompt for credentials + +------------------------------------------------------------------- +Fri Sep 19 11:36:48 UTC 2014 - werner@suse.de + +- Add upstream bugfix patches + 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch + 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch + 0003-mount-order-options-before-other-arguments-to-mount.patch + 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch + 0005-shared-label.h-add-missing-stdio.h-include.patch + 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch + 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch + 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch + 1081-udevd-check-return-of-various-functions.patch + 1082-udevadm-hwdb-check-return-value-of-fseeko.patch + 1083-udev-node-warn-if-chmod-chown-fails.patch + 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch + 1085-udev-fix-typos.patch + 1086-udevd-don-t-fail-if-run-udev-exists.patch + +------------------------------------------------------------------- +Thu Sep 18 13:21:45 UTC 2014 - werner@suse.de + +- Add upstream bugfix patches + 0001-core-fix-resource-leak-in-manager_environment_add.patch + 0002-util-remove-a-unnecessary-check.patch + 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch + 0004-shared-conf-parser.patch + 0005-logind-fix-typo.patch + 0006-systemctl-fix-resource-leak-CID-1237747.patch + 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patc + 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +- Remove 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch as + 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch + is the upstream solution + +------------------------------------------------------------------- +Wed Sep 17 16:02:33 UTC 2014 - werner@suse.de + +- Add patch 0001-sizeof-bool-used-by-gcc-depends-on-arch.patch to + fix for the size of the gcc builtin type bool also known as _Bool + from the include header stdbool.h. + ------------------------------------------------------------------- Tue Sep 16 10:45:33 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 17b43729..7f58d45c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -851,6 +851,38 @@ Patch412: 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch 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 +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch416: 0002-util-remove-a-unnecessary-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch418: 0004-shared-conf-parser.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch419: 0005-logind-fix-typo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary +Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch +# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) +Patch430: 0001-bnc888612-logind-polkit-acpi.patch # UDEV PATCHES # ============ @@ -1016,6 +1048,20 @@ Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.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 +# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch +Patch1081: 1081-udevd-check-return-of-various-functions.patch +# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch +Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch +# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch +Patch1085: 1085-udev-fix-typos.patch +# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch +Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1591,6 +1637,22 @@ cp %{SOURCE7} m4/ %patch412 -p0 %patch413 -p0 %patch414 -p0 +%patch415 -p0 +%patch416 -p0 +%patch417 -p0 +%patch418 -p0 +%patch419 -p0 +%patch420 -p0 +%patch421 -p0 +%patch422 -p0 +%patch423 -p0 +%patch424 -p0 +%patch425 -p0 +%patch426 -p0 +%patch427 -p0 +%patch428 -p0 +%patch429 -p0 +%patch430 -p1 # udev patches %patch1001 -p1 @@ -1701,6 +1763,13 @@ cp %{SOURCE7} m4/ %patch1078 -p1 %endif %endif +%patch1080 -p0 +%patch1081 -p0 +%patch1082 -p0 +%patch1083 -p0 +%patch1084 -p0 +%patch1085 -p0 +%patch1086 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ From 799437355d095ec1f1d800e913f252a1ddce4a041281681dc86833aef22bb32d Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 28 Sep 2014 17:56:47 +0000 Subject: [PATCH 202/221] Accepting request 252537 from Base:System - Add upstream patch 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch for bsc#893797 - Drop renaming virtual interfaces in a guest (bnc#898432). Add 1088-drop-renaming-of-virtual-interfaces-in-guest.patch - Rename patch 0001-infinit-timeout-for-kmod-loaded-modules.patch to patch 1087-infinit-timeout-for-kmod-loaded-modules.patch and apply this one - Change patch 0003-mount-order-options-before-other-arguments-to-mount.patch to fix bsc#898240 - Add upstream patches 0001-Fix-warning-about-unused-variable-with-SELINUX.patch 0002-bus-remove-unused-check.patch - Add patch 0001-infinit-timeout-for-kmod-loaded-modules.patch to be able to avoid killing a running kmod/modprobe (bnc#889297) - Update patch 0001-bnc888612-logind-polkit-acpi.patch - Add upstream patches 0001-login-pause-devices-before-acknowledging-VT-switches.patch May help that history of the shell is saved 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch 0001-socket-introduce-SELinuxContextFromNet-option.patch (bsc#897801) 0002-util-avoid-non-portable-__WORDSIZE.patch OBS-URL: https://build.opensuse.org/request/show/252537 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=208 --- ...g-about-unused-variable-with-SELINUX.patch | 31 ++ 0001-bnc888612-logind-polkit-acpi.patch | 6 +- ...ces-before-acknowledging-VT-switches.patch | 82 ++++ ...-to-create-veth-link-with-too-long-i.patch | 21 + ...troduce-SELinuxContextFromNet-option.patch | 414 ++++++++++++++++++ ...-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch | 39 ++ 0002-bus-remove-unused-check.patch | 29 ++ 0002-util-avoid-non-portable-__WORDSIZE.patch | 25 ++ ...ions-before-other-arguments-to-mount.patch | 14 +- ...init-timeout-for-kmod-loaded-modules.patch | 135 ++++++ ...aming-of-virtual-interfaces-in-guest.patch | 11 + systemd-mini.changes | 55 +++ systemd-mini.spec | 27 ++ systemd.changes | 55 +++ systemd.spec | 27 ++ 15 files changed, 961 insertions(+), 10 deletions(-) create mode 100644 0001-Fix-warning-about-unused-variable-with-SELINUX.patch create mode 100644 0001-login-pause-devices-before-acknowledging-VT-switches.patch create mode 100644 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch create mode 100644 0001-socket-introduce-SELinuxContextFromNet-option.patch create mode 100644 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch create mode 100644 0002-bus-remove-unused-check.patch create mode 100644 0002-util-avoid-non-portable-__WORDSIZE.patch create mode 100644 1087-infinit-timeout-for-kmod-loaded-modules.patch create mode 100644 1088-drop-renaming-of-virtual-interfaces-in-guest.patch diff --git a/0001-Fix-warning-about-unused-variable-with-SELINUX.patch b/0001-Fix-warning-about-unused-variable-with-SELINUX.patch new file mode 100644 index 00000000..f1fb4ea9 --- /dev/null +++ b/0001-Fix-warning-about-unused-variable-with-SELINUX.patch @@ -0,0 +1,31 @@ +From 493d521d9ffe706741665a88ea14929913ea2eaf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 23 Sep 2014 09:22:40 -0400 +Subject: [PATCH] Fix warning about unused variable with !SELINUX + +src/shared/label.c:255:15: warning: unused variable 'l' [-Wunused-variable] + char *l = NULL; + ^ +--- + src/shared/label.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/shared/label.c src/shared/label.c +index 02b41f0..b6af38d 100644 +--- src/shared/label.c ++++ src/shared/label.c +@@ -252,9 +252,10 @@ fail: + + int label_get_our_label(char **label) { + int r = -EOPNOTSUPP; +- char *l = NULL; + + #ifdef HAVE_SELINUX ++ char *l = NULL; ++ + r = getcon(&l); + if (r < 0) + return r; +-- +1.7.9.2 + diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index ba3a1b52..a7021400 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -5,7 +5,7 @@ Index: systemd-210/src/login/logind-action.c =================================================================== ---- systemd-210/src/login/logind-action.c +--- systemd-210.orig/src/login/logind-action.c +++ systemd-210/src/login/logind-action.c @@ -101,6 +101,11 @@ int manager_handle_action( @@ -21,7 +21,7 @@ Index: systemd-210/src/login/logind-action.c return 0; Index: systemd-210/src/login/logind-dbus.c =================================================================== ---- systemd-210/src/login/logind-dbus.c +--- systemd-210.orig/src/login/logind-dbus.c +++ systemd-210/src/login/logind-dbus.c @@ -1469,9 +1469,11 @@ static int method_do_shutdown_or_sleep( sd_bus_error *error) { @@ -43,7 +43,7 @@ Index: systemd-210/src/login/logind-dbus.c - if (multiple_sessions) { + fd = open ("/run/systemd/acpi-shutdown", O_NOFOLLOW|O_PATH|O_CLOEXEC); + if (fd >= 0) { -+ shutdown_through_acpi = ((fstat(fd,&buf) == 0) && (time(NULL) - buf.st_mtime <= 65)); ++ shutdown_through_acpi = ((fstat(fd,&buf) == 0) && (time(NULL) - buf.st_mtime <= 65) && !sleep_verb); + close(fd); + unlink ("/run/systemd/acpi-shutdown"); + } diff --git a/0001-login-pause-devices-before-acknowledging-VT-switches.patch b/0001-login-pause-devices-before-acknowledging-VT-switches.patch new file mode 100644 index 00000000..0a335de2 --- /dev/null +++ b/0001-login-pause-devices-before-acknowledging-VT-switches.patch @@ -0,0 +1,82 @@ +Based on 2ec3ff668ff03410e94cfef8e3ee9384a8222211 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Fri, 19 Sep 2014 13:26:39 +0200 +Subject: [PATCH] login: pause devices before acknowledging VT switches + +If a session controller does not need synchronous VT switches, we allow +them to pass VT control to logind, which acknowledges all VT switches +unconditionally. This works fine with all sessions using the dbus API, +but causes out-of-sync device use if we switch to legacy sessions that +are notified via VT signals. Those are processed before logind notices +the session-switch via sysfs. Therefore, leaving the old session still +active for a short amount of time. + +This, in fact, may cause the legacy session to prepare graphics devices +before the old session was deactivated, and thus, maybe causing the old +session to interfer with graphics device usage. + +Fix this by releasing devices immediately before acknowledging VT +switches. This way, sessions without VT handlers are required to support +async session switching (which they do in that case, anyway). +--- + src/login/logind-session.c | 21 +++++++++++++++++++++ + src/login/logind-session.h | 1 + + src/login/logind.c | 4 ++-- + 3 files changed, 24 insertions(+), 2 deletions(-) + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-09-24 07:40:45.786639180 +0000 +@@ -1040,6 +1040,27 @@ void session_restore_vt(Session *s) { + s->vtfd = -1; + } + ++void session_leave_vt(Session *s) { ++ assert(s); ++ ++ /* This is called whenever we get a VT-switch signal from the kernel. ++ * We acknowledge all of them unconditionally. Note that session are ++ * free to overwrite those handlers and we only register them for ++ * sessions with controllers. Legacy sessions are not affected. ++ * However, if we switch from a non-legacy to a legacy session, we must ++ * make sure to pause all device before acknowledging the switch. We ++ * process the real switch only after we are notified via sysfs, so the ++ * legacy session might have already started using the devices. If we ++ * don't pause the devices before the switch, we might confuse the ++ * session we switch to. */ ++ ++ if (s->vtfd < 0) ++ return; ++ ++ session_device_pause_all(s); ++ ioctl(s->vtfd, VT_RELDISP, 1); ++} ++ + bool session_is_controller(Session *s, const char *sender) { + assert(s); + +--- src/login/logind-session.h ++++ src/login/logind-session.h 2014-09-24 07:41:50.290236363 +0000 +@@ -173,6 +173,7 @@ KillWho kill_who_from_string(const char + + int session_mute_vt(Session *s); + void session_restore_vt(Session *s); ++void session_leave_vt(Session *s); + + bool session_is_controller(Session *s, const char *sender); + int session_set_controller(Session *s, const char *sender, bool force); +--- src/login/logind.c ++++ src/login/logind.c 2014-09-24 00:00:00.000000000 +0000 +@@ -743,11 +743,11 @@ static int manager_vt_switch(sd_event_so + } + + if (active->vtfd >= 0) { +- ioctl(active->vtfd, VT_RELDISP, 1); ++ session_leave_vt(active); + } else { + LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { + if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { +- ioctl(iter->vtfd, VT_RELDISP, 1); ++ session_leave_vt(iter); + break; + } + } diff --git a/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch b/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch new file mode 100644 index 00000000..ee7cea2a --- /dev/null +++ b/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch @@ -0,0 +1,21 @@ +Based on c00524c9cc7fb498c7244350e25823b8352f078c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 19 Sep 2014 23:02:00 +0200 +Subject: [PATCH] nspawn: don't try to create veth link with too long ifname + +Reported by: James Lott +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-09-23 15:33:06.766236272 +0000 +@@ -1383,7 +1383,7 @@ static int setup_veth(pid_t pid, char if + + /* Use two different interface name prefixes depending whether + * we are in bridge mode or not. */ +- snprintf(iface_name, IFNAMSIZ, "%s-%s", ++ snprintf(iface_name, IFNAMSIZ - 1, "%s-%s", + arg_network_bridge ? "vb" : "ve", arg_machine); + + r = sd_rtnl_open(&rtnl, 0); diff --git a/0001-socket-introduce-SELinuxContextFromNet-option.patch b/0001-socket-introduce-SELinuxContextFromNet-option.patch new file mode 100644 index 00000000..f437c7be --- /dev/null +++ b/0001-socket-introduce-SELinuxContextFromNet-option.patch @@ -0,0 +1,414 @@ +Based on 16115b0a7b7cdf08fb38084d857d572d8a9088dc Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Thu, 24 Jul 2014 10:40:28 +0200 +Subject: [PATCH] socket: introduce SELinuxContextFromNet option + +This makes possible to spawn service instances triggered by socket with +MLS/MCS SELinux labels which are created based on information provided by +connected peer. + +Implementation of label_get_child_mls_label derived from xinetd. + +Reviewed-by: Paul Moore +--- + man/systemd.socket.xml | 26 +++++++ + src/core/execute.c | 30 +++++++-- + src/core/execute.h | 1 + src/core/load-fragment-gperf.gperf.m4 | 3 + src/core/mount.c | 1 + src/core/service.c | 4 - + src/core/service.h | 3 + src/core/socket.c | 16 +++- + src/core/socket.h | 2 + src/core/swap.c | 1 + src/shared/label.c | 113 ++++++++++++++++++++++++++++++++++ + src/shared/label.h | 2 + 12 files changed, 191 insertions(+), 11 deletions(-) + +--- man/systemd.socket.xml ++++ man/systemd.socket.xml 2014-09-23 15:36:49.000000000 +0000 +@@ -570,6 +570,32 @@ + + + ++ SELinuxContextFromNet= ++ Takes a boolean ++ argument. When true systemd will attempt ++ to figure out the SELinux label used ++ for the instantiated service from the ++ information handed by the peer over the ++ network. Note that only the security ++ level is used from the information ++ provided by the peer. Other parts of ++ the resulting SELinux context originate ++ from either the target binary that is ++ effectively triggered by socket unit ++ are taken from the value of the ++ SELinuxContext= ++ option.This configuration option only ++ affects sockets with ++ Accept= mode set to ++ true. Also note that ++ this option is useful only when ++ MLS/MCS SELinux policy is ++ deployed. Defaults to ++ false. ++ ++ ++ ++ + PipeSize= + Takes an size in + bytes. Controls the pipe buffer size +--- src/core/execute.c ++++ src/core/execute.c 2014-09-24 09:22:08.882735864 +0000 +@@ -82,6 +82,7 @@ + #include "selinux-util.h" + #include "errno-list.h" + #include "apparmor-util.h" ++#include "label.h" + + #ifdef HAVE_SECCOMP + #include "seccomp-util.h" +@@ -1123,6 +1124,7 @@ int exec_spawn(ExecCommand *command, + bool apply_chroot, + bool apply_tty_stdin, + bool confirm_spawn, ++ bool selinux_context_net, + CGroupControllerMask cgroup_supported, + const char *cgroup_path, + const char *unit_id, +@@ -1594,11 +1596,29 @@ int exec_spawn(ExecCommand *command, + #endif + + #ifdef HAVE_SELINUX +- if (context->selinux_context && use_selinux()) { +- err = setexeccon(context->selinux_context); +- if (err < 0 && !context->selinux_context_ignore) { +- r = EXIT_SELINUX_CONTEXT; +- goto fail_child; ++ if (use_selinux()) { ++ if (context->selinux_context) { ++ err = setexeccon(context->selinux_context); ++ if (err < 0 && !context->selinux_context_ignore) { ++ r = EXIT_SELINUX_CONTEXT; ++ goto fail_child; ++ } ++ } ++ ++ if (selinux_context_net && socket_fd >= 0) { ++ _cleanup_free_ char *label = NULL; ++ ++ err = label_get_child_mls_label(socket_fd, command->path, &label); ++ if (err < 0) { ++ r = EXIT_SELINUX_CONTEXT; ++ goto fail_child; ++ } ++ ++ err = setexeccon(label); ++ if (err < 0) { ++ r = EXIT_SELINUX_CONTEXT; ++ goto fail_child; ++ } + } + } + #endif +--- src/core/execute.h ++++ src/core/execute.h 2014-09-23 15:46:26.000000000 +0000 +@@ -195,6 +195,7 @@ int exec_spawn(ExecCommand *command, + bool apply_chroot, + bool apply_tty_stdin, + bool confirm_spawn, ++ bool selinux_context_net, + CGroupControllerMask cgroup_mask, + const char *cgroup_path, + const char *unit_id, +--- src/core/load-fragment-gperf.gperf.m4 ++++ src/core/load-fragment-gperf.gperf.m4 2014-09-23 00:00:00.000000000 +0000 +@@ -242,6 +242,9 @@ Socket.SmackLabelIPOut, config_ + `Socket.SmackLabel, config_parse_warn_compat, 0, 0 + Socket.SmackLabelIPIn, config_parse_warn_compat, 0, 0 + Socket.SmackLabelIPOut, config_parse_warn_compat, 0, 0') ++m4_ifdef(`HAVE_SELINUX', ++`Socket.SELinuxContextFromNet, config_parse_bool, 0, offsetof(Socket, selinux_context_from_net)', ++`Socket.SELinuxContextFromNet, config_parse_warn_compat, 0, 0') + EXEC_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl + CGROUP_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl + KILL_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl +--- src/core/mount.c ++++ src/core/mount.c 2014-09-24 09:16:26.234235379 +0000 +@@ -785,6 +785,7 @@ static int mount_spawn(Mount *m, ExecCom + true, + true, + UNIT(m)->manager->confirm_spawn, ++ false, + UNIT(m)->manager->cgroup_supported, + UNIT(m)->cgroup_path, + UNIT(m)->id, +--- src/core/service.c ++++ src/core/service.c 2014-09-23 15:49:24.000000000 +0000 +@@ -1856,6 +1856,7 @@ static int service_spawn( + apply_chroot, + apply_tty_stdin, + UNIT(s)->manager->confirm_spawn, ++ s->socket_fd_selinux_context_net, + UNIT(s)->manager->cgroup_supported, + path, + UNIT(s)->id, +@@ -3787,7 +3788,7 @@ static void service_bus_name_owner_chang + } + } + +-int service_set_socket_fd(Service *s, int fd, Socket *sock) { ++int service_set_socket_fd(Service *s, int fd, Socket *sock, bool selinux_context_net) { + _cleanup_free_ char *peer = NULL; + int r; + +@@ -3825,6 +3826,7 @@ int service_set_socket_fd(Service *s, in + } + + s->socket_fd = fd; ++ s->socket_fd_selinux_context_net = selinux_context_net; + + unit_ref_set(&s->accept_socket, UNIT(sock)); + +--- src/core/service.h ++++ src/core/service.h 2014-09-23 15:51:13.000000000 +0000 +@@ -159,6 +159,7 @@ struct Service { + pid_t main_pid, control_pid; + int socket_fd; + ++ bool socket_fd_selinux_context_net; + bool permissions_start_only; + bool root_directory_start_only; + bool remain_after_exit; +@@ -204,7 +205,7 @@ extern const UnitVTable service_vtable; + + struct Socket; + +-int service_set_socket_fd(Service *s, int fd, struct Socket *socket); ++int service_set_socket_fd(Service *s, int fd, struct Socket *socket, bool selinux_context_net); + + const char* service_state_to_string(ServiceState i) _const_; + ServiceState service_state_from_string(const char *s) _pure_; +--- src/core/socket.c ++++ src/core/socket.c 2014-09-24 09:13:29.698735735 +0000 +@@ -453,7 +453,8 @@ static void socket_dump(Unit *u, FILE *f + "%sBroadcast: %s\n" + "%sPassCredentials: %s\n" + "%sPassSecurity: %s\n" +- "%sTCPCongestion: %s\n", ++ "%sTCPCongestion: %s\n" ++ "%sSELinuxContextFromNet: %s\n", + prefix, socket_state_to_string(s->state), + prefix, socket_result_to_string(s->result), + prefix, socket_address_bind_ipv6_only_to_string(s->bind_ipv6_only), +@@ -466,7 +467,8 @@ static void socket_dump(Unit *u, FILE *f + prefix, yes_no(s->broadcast), + prefix, yes_no(s->pass_cred), + prefix, yes_no(s->pass_sec), +- prefix, strna(s->tcp_congestion)); ++ prefix, strna(s->tcp_congestion), ++ prefix, yes_no(s->selinux_context_from_net)); + + if (s->control_pid > 0) + fprintf(f, +@@ -1000,7 +1002,12 @@ static int socket_open_fds(Socket *s) { + + if (p->type == SOCKET_SOCKET) { + +- if (!know_label) { ++ if (!know_label && s->selinux_context_from_net) { ++ r = label_get_our_label(&label); ++ if (r < 0) ++ return r; ++ know_label = true; ++ } else if (!know_label) { + + if ((r = socket_instantiate_service(s)) < 0) + return r; +@@ -1247,6 +1254,7 @@ static int socket_spawn(Socket *s, ExecC + true, + true, + UNIT(s)->manager->confirm_spawn, ++ s->selinux_context_from_net, + UNIT(s)->manager->cgroup_supported, + UNIT(s)->cgroup_path, + UNIT(s)->id, +@@ -1568,7 +1576,7 @@ static void socket_enter_running(Socket + + unit_choose_id(UNIT(service), name); + +- r = service_set_socket_fd(service, cfd, s); ++ r = service_set_socket_fd(service, cfd, s, s->selinux_context_from_net); + if (r < 0) + goto fail; + +--- src/core/socket.h ++++ src/core/socket.h 2014-09-23 15:55:17.000000000 +0000 +@@ -154,6 +154,8 @@ struct Socket { + char *smack; + char *smack_ip_in; + char *smack_ip_out; ++ ++ bool selinux_context_from_net; + }; + + /* Called from the service code when collecting fds */ +--- src/core/swap.c ++++ src/core/swap.c 2014-09-24 09:17:18.438735618 +0000 +@@ -642,6 +642,7 @@ static int swap_spawn(Swap *s, ExecComma + true, + true, + UNIT(s)->manager->confirm_spawn, ++ false, + UNIT(s)->manager->cgroup_supported, + UNIT(s)->cgroup_path, + UNIT(s)->id, +--- src/shared/label.c ++++ src/shared/label.c 2014-09-23 00:00:00.000000000 +0000 +@@ -31,6 +31,7 @@ + #ifdef HAVE_SELINUX + #include + #include ++#include + #endif + + #include "label.h" +@@ -41,6 +42,12 @@ + #include "smack-util.h" + + #ifdef HAVE_SELINUX ++DEFINE_TRIVIAL_CLEANUP_FUNC(security_context_t, freecon); ++DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free); ++ ++#define _cleanup_security_context_free_ _cleanup_(freeconp) ++#define _cleanup_context_free_ _cleanup_(context_freep) ++ + static struct selabel_handle *label_hnd = NULL; + #endif + +@@ -243,6 +250,112 @@ fail: + return r; + } + ++int label_get_our_label(char **label) { ++ int r = -EOPNOTSUPP; ++ char *l = NULL; ++ ++#ifdef HAVE_SELINUX ++ r = getcon(&l); ++ if (r < 0) ++ return r; ++ ++ *label = l; ++#endif ++ ++ return r; ++} ++ ++int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { ++ int r = -EOPNOTSUPP; ++ ++#ifdef HAVE_SELINUX ++ ++ _cleanup_security_context_free_ security_context_t mycon = NULL, peercon = NULL, fcon = NULL, ret = NULL; ++ _cleanup_context_free_ context_t pcon = NULL, bcon = NULL; ++ security_class_t sclass; ++ ++ const char *range = NULL; ++ ++ assert(socket_fd >= 0); ++ assert(exe); ++ assert(label); ++ ++ r = getcon(&mycon); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ r = getpeercon(socket_fd, &peercon); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ r = getexeccon(&fcon); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ if (!fcon) { ++ /* If there is no context set for next exec let's use context ++ of target executable */ ++ r = getfilecon(exe, &fcon); ++ if (r < 0) { ++ r = -errno; ++ goto out; ++ } ++ } ++ ++ bcon = context_new(mycon); ++ if (!bcon) { ++ r = -ENOMEM; ++ goto out; ++ } ++ ++ pcon = context_new(peercon); ++ if (!pcon) { ++ r = -ENOMEM; ++ goto out; ++ } ++ ++ range = context_range_get(pcon); ++ if (!range) { ++ r = -errno; ++ goto out; ++ } ++ ++ r = context_range_set(bcon, range); ++ if (r) { ++ r = -errno; ++ goto out; ++ } ++ ++ freecon(mycon); ++ mycon = context_str(bcon); ++ if (!mycon) { ++ r = -errno; ++ goto out; ++ } ++ ++ sclass = string_to_security_class("process"); ++ r = security_compute_create(mycon, fcon, sclass, &ret); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ *label = ret; ++ r = 0; ++ ++out: ++ if (r < 0 && security_getenforce() == 1) ++ return r; ++#endif ++ return r; ++} ++ + int label_context_set(const char *path, mode_t mode) { + int r = 0; + +--- src/shared/label.h ++++ src/shared/label.h 2014-09-23 00:00:00.000000000 +0000 +@@ -40,6 +40,8 @@ void label_context_clear(void); + void label_free(const char *label); + + int label_get_create_label_from_exe(const char *exe, char **label); ++int label_get_our_label(char **label); ++int label_get_child_mls_label(int socket_fd, const char *exec, char **label); + + int label_mkdir(const char *path, mode_t mode); + diff --git a/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch b/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch new file mode 100644 index 00000000..9f1a8dcb --- /dev/null +++ b/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch @@ -0,0 +1,39 @@ +From 9ed2a35e93f4a9e82585f860f54cdcbbdf3e1f86 Mon Sep 17 00:00:00 2001 +From: Richard Weinberger +Date: Tue, 9 Sep 2014 11:09:37 +0200 +Subject: [PATCH] systemd-tmpfiles: Fix IGNORE_DIRECTORY_PATH age handling + +If one has a config like: +d /tmp 1777 root root - +X /tmp/important_mount + +All files below /tmp/important_mount will be deleted as the +/tmp/important_mount item will spuriously inherit a max age of 0 +from /tmp. +/tmp has a max age of 0 but age_set is (of course) false. + +This affects also the PrivateTmp feature of systemd. +All tmp files of such services will be deleted unconditionally +and can cause service failures and data loss. + +Fix this by checking ->age_set in the IGNORE_DIRECTORY_PATH logic. +--- + src/tmpfiles/tmpfiles.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index f9830c4..7eafd6b 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -1576,7 +1576,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { + candidate_item = j; + } + +- if (candidate_item) { ++ if (candidate_item && candidate_item->age_set) { + i->age = candidate_item->age; + i->age_set = true; + } +-- +1.7.9.2 + diff --git a/0002-bus-remove-unused-check.patch b/0002-bus-remove-unused-check.patch new file mode 100644 index 00000000..32c35276 --- /dev/null +++ b/0002-bus-remove-unused-check.patch @@ -0,0 +1,29 @@ +From 04c553e322680b6fcdf5b271e84b0b4b0ad8d5f9 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Tue, 23 Sep 2014 21:34:21 +0200 +Subject: [PATCH] bus: remove unused check + +strerror_r does not return null here and even if it did we would have +problems already at the preceding strlen call. + +Found by coverity. Fixes: CID#1237770 +--- + src/libsystemd/sd-bus/bus-error.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c +index c2e41fb..abdfd73 100644 +--- src/libsystemd/sd-bus/bus-error.c ++++ src/libsystemd/sd-bus/bus-error.c +@@ -312,7 +312,7 @@ static void bus_error_strerror(sd_bus_error *e, int error) { + continue; + } + +- if (!x || errno) { ++ if (errno) { + free(m); + return; + } +-- +1.7.9.2 + diff --git a/0002-util-avoid-non-portable-__WORDSIZE.patch b/0002-util-avoid-non-portable-__WORDSIZE.patch new file mode 100644 index 00000000..7c82d91c --- /dev/null +++ b/0002-util-avoid-non-portable-__WORDSIZE.patch @@ -0,0 +1,25 @@ +Based on 8507eb20b64010b26f23822cbf442bb0bf96511c Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Fri, 19 Sep 2014 20:26:53 +0200 +Subject: [PATCH] util: avoid non-portable __WORDSIZE + +Lets not unnecessarily rely on __WORDSIZE, which is not clearly specified +by any spec. Use explicit size comparisons if we're not interested in the +WORDSIZE, anyway. + +(David: adjust commit message to explain why we do this) +--- + src/shared/util.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/shared/util.h ++++ src/shared/util.h 2014-09-24 06:58:11.378235669 +0000 +@@ -166,7 +166,7 @@ int safe_atolli(const char *s, long long + + int safe_atod(const char *s, double *ret_d); + +-#if __WORDSIZE == 32 ++#if LONG_MAX == INT_MAX + static inline int safe_atolu(const char *s, unsigned long *ret_u) { + assert_cc(sizeof(unsigned long) == sizeof(unsigned)); + return safe_atou(s, (unsigned*) ret_u); diff --git a/0003-mount-order-options-before-other-arguments-to-mount.patch b/0003-mount-order-options-before-other-arguments-to-mount.patch index 79c0b3ce..d777869d 100644 --- a/0003-mount-order-options-before-other-arguments-to-mount.patch +++ b/0003-mount-order-options-before-other-arguments-to-mount.patch @@ -8,18 +8,18 @@ Subject: [PATCH] mount: order options before other arguments to mount 1 file changed, 6 insertions(+), 4 deletions(-) --- src/core/mount.c -+++ src/core/mount.c 2014-09-19 10:13:51.638238597 +0000 ++++ src/core/mount.c 2014-09-25 13:43:44.926563278 +0000 @@ -947,10 +947,11 @@ static void mount_enter_mounting(Mount * r = exec_command_set( m->control_command, "/bin/mount", -- m->parameters_fragment.what, -- m->where, + "-n", - "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", - m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options, -+ m->parameters_fragment.what, -+ m->where, ++ "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", ++ "-o", m->parameters_fragment.options ? m->parameters_fragment.options : "defaults", + m->parameters_fragment.what, + m->where, +- "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", +- m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options, NULL); else r = -ENOENT; diff --git a/1087-infinit-timeout-for-kmod-loaded-modules.patch b/1087-infinit-timeout-for-kmod-loaded-modules.patch new file mode 100644 index 00000000..4208c21f --- /dev/null +++ b/1087-infinit-timeout-for-kmod-loaded-modules.patch @@ -0,0 +1,135 @@ +--- + src/udev/udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + src/udev/udev.h | 1 + + src/udev/udevd.c | 23 +++++++++++++++++++++-- + 3 files changed, 64 insertions(+), 2 deletions(-) + +--- src/udev/udev-event.c ++++ src/udev/udev-event.c 2014-09-24 14:32:53.115639820 +0000 +@@ -959,6 +959,46 @@ void udev_event_execute_rules(struct ude + } + } + ++#ifdef HAVE_KMOD ++static inline void udev_check_and_set_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { ++ char filename[UTIL_PATH_SIZE]; ++ switch (builtin_cmd) { ++ case UDEV_BUILTIN_KMOD: ++ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); ++ touch(filename); ++ default: ++ break; ++ } ++} ++ ++static inline void udev_check_and_unset_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { ++ char filename[UTIL_PATH_SIZE]; ++ switch (builtin_cmd) { ++ case UDEV_BUILTIN_KMOD: ++ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); ++ unlink(filename); ++ default: ++ break; ++ } ++} ++ ++bool udev_check_for_kmod(pid_t pid) { ++ char filename[UTIL_PATH_SIZE]; ++ struct stat st; ++ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)pid); ++ if (stat(filename, &st) == 0) { ++ return true; ++ } ++ return false; ++} ++#else ++# define udev_set_kmod (a,b) ++# define udev_unset_kmod(a,b) ++bool udev_check_for_kmod(pid_t pid) { ++ return false; ++} ++#endif ++ + 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; + +@@ -970,7 +1010,9 @@ void udev_event_execute_run(struct udev_ + char command[UTIL_PATH_SIZE]; + + udev_event_apply_format(event, cmd, command, sizeof(command)); ++ udev_check_and_set_kmod(builtin_cmd, event); + udev_builtin_run(event->dev, builtin_cmd, command, false); ++ udev_check_and_unset_kmod(builtin_cmd, event); + } else { + char program[UTIL_PATH_SIZE]; + char **envp; +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-24 15:02:30.895592379 +0000 +@@ -76,6 +76,7 @@ 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 bool event_killkmod = false; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -1017,6 +1018,12 @@ static void kernel_cmdline_options(struc + } + event_timeout_usec *= USEC_PER_SEC; + event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; ++ } else if (startswith(opt, "udev.killkmod=")) { ++ r = parse_boolean(opt + 14); ++ if (r < 0) ++ log_warning("Invalid udev.killkmod Ignoring: %s", opt + 14); ++ else ++ event_killkmod = r; + } + + free(s); +@@ -1065,7 +1072,7 @@ int main(int argc, char *argv[]) { + } + + for (;;) { +- int option, r; ++ int option; + + option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); + if (option == -1) +@@ -1356,6 +1363,12 @@ int main(int argc, char *argv[]) { + udev_list_node_init(&event_list); + udev_list_node_init(&worker_list); + ++ r = mkdir_p("/run/udev/kmod", 0755); ++ if (r < 0 && errno != EEXIST) { ++ log_error("could not create /run/udev/kmod: %m"); ++ goto exit; ++ } ++ + for (;;) { + static usec_t last_usec; + struct epoll_event ev[8]; +@@ -1440,7 +1453,13 @@ int main(int argc, char *argv[]) { + + if (worker->state != WORKER_RUNNING) + continue; +- ++#ifdef HAVE_KMOD ++ if (udev_check_for_kmod(worker->pid)) { ++ log_debug("worker [%u] %s is using kmod", worker->pid, worker->event->devpath); ++ if (!event_killkmod) ++ continue; ++ } ++#endif + ts = now(CLOCK_MONOTONIC); + + if ((ts - worker->event_start_usec) > event_timeout_warn_usec) { +--- src/udev/udev.h ++++ src/udev/udev.h 2014-09-24 14:33:33.824008084 +0000 +@@ -88,6 +88,7 @@ int udev_event_spawn(struct udev_event * + char *result, size_t ressize); + 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); ++bool udev_check_for_kmod(pid_t pid); + 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[]); + diff --git a/1088-drop-renaming-of-virtual-interfaces-in-guest.patch b/1088-drop-renaming-of-virtual-interfaces-in-guest.patch new file mode 100644 index 00000000..a25861cd --- /dev/null +++ b/1088-drop-renaming-of-virtual-interfaces-in-guest.patch @@ -0,0 +1,11 @@ +Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +=================================================================== +--- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules ++++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +@@ -15,6 +15,5 @@ SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACT + + # rename interface if needed + ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" +-ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" + + LABEL="net-sriov-names_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index d2bbba4a..dcfc946e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,58 @@ +------------------------------------------------------------------- +Fri Sep 26 16:11:10 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch + for bsc#893797 + +------------------------------------------------------------------- +Fri Sep 26 09:34:22 UTC 2014 - rmilasan@suse.com + +- Drop renaming virtual interfaces in a guest (bnc#898432). + Add 1088-drop-renaming-of-virtual-interfaces-in-guest.patch + +------------------------------------------------------------------- +Thu Sep 25 14:08:35 UTC 2014 - werner@suse.de + +- Rename patch 0001-infinit-timeout-for-kmod-loaded-modules.patch + to patch 1087-infinit-timeout-for-kmod-loaded-modules.patch + and apply this one + +------------------------------------------------------------------- +Thu Sep 25 13:45:46 UTC 2014 - werner@suse.de + +- Change patch + 0003-mount-order-options-before-other-arguments-to-mount.patch + to fix bsc#898240 + +------------------------------------------------------------------- +Thu Sep 25 09:06:14 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-Fix-warning-about-unused-variable-with-SELINUX.patch + 0002-bus-remove-unused-check.patch + +------------------------------------------------------------------- +Wed Sep 24 15:05:49 UTC 2014 - werner@suse.de + +- Add patch 0001-infinit-timeout-for-kmod-loaded-modules.patch to + be able to avoid killing a running kmod/modprobe (bnc#889297) + +------------------------------------------------------------------- +Wed Sep 24 08:36:42 UTC 2014 - werner@suse.de + +- Update patch 0001-bnc888612-logind-polkit-acpi.patch + +------------------------------------------------------------------- +Wed Sep 24 07:47:54 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-login-pause-devices-before-acknowledging-VT-switches.patch + May help that history of the shell is saved + 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch + 0001-socket-introduce-SELinuxContextFromNet-option.patch (bsc#897801) + 0002-util-avoid-non-portable-__WORDSIZE.patch + ------------------------------------------------------------------- Fri Sep 19 13:08:14 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 01e97923..3bc014d9 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -888,6 +888,20 @@ Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved +Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) +Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch436: 0002-bus-remove-unused-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/26 +Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch # UDEV PATCHES # ============ @@ -1067,6 +1081,10 @@ Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch Patch1085: 1085-udev-fix-typos.patch # PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch +# PATCH-FIX-SSUE 1087-infinit-timeout-for-kmod-loaded-modules.patch +Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch +# PATCH-FIX-SSUE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) +Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1658,6 +1676,13 @@ cp %{SOURCE7} m4/ %patch428 -p0 %patch429 -p0 %patch430 -p1 +%patch431 -p0 +%patch432 -p0 +%patch433 -p0 +%patch434 -p0 +%patch435 -p0 +%patch436 -p0 +%patch437 -p0 # udev patches %patch1001 -p1 @@ -1775,6 +1800,8 @@ cp %{SOURCE7} m4/ %patch1084 -p0 %patch1085 -p0 %patch1086 -p0 +%patch1087 -p0 +%patch1088 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index d2bbba4a..dcfc946e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,58 @@ +------------------------------------------------------------------- +Fri Sep 26 16:11:10 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch + for bsc#893797 + +------------------------------------------------------------------- +Fri Sep 26 09:34:22 UTC 2014 - rmilasan@suse.com + +- Drop renaming virtual interfaces in a guest (bnc#898432). + Add 1088-drop-renaming-of-virtual-interfaces-in-guest.patch + +------------------------------------------------------------------- +Thu Sep 25 14:08:35 UTC 2014 - werner@suse.de + +- Rename patch 0001-infinit-timeout-for-kmod-loaded-modules.patch + to patch 1087-infinit-timeout-for-kmod-loaded-modules.patch + and apply this one + +------------------------------------------------------------------- +Thu Sep 25 13:45:46 UTC 2014 - werner@suse.de + +- Change patch + 0003-mount-order-options-before-other-arguments-to-mount.patch + to fix bsc#898240 + +------------------------------------------------------------------- +Thu Sep 25 09:06:14 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-Fix-warning-about-unused-variable-with-SELINUX.patch + 0002-bus-remove-unused-check.patch + +------------------------------------------------------------------- +Wed Sep 24 15:05:49 UTC 2014 - werner@suse.de + +- Add patch 0001-infinit-timeout-for-kmod-loaded-modules.patch to + be able to avoid killing a running kmod/modprobe (bnc#889297) + +------------------------------------------------------------------- +Wed Sep 24 08:36:42 UTC 2014 - werner@suse.de + +- Update patch 0001-bnc888612-logind-polkit-acpi.patch + +------------------------------------------------------------------- +Wed Sep 24 07:47:54 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-login-pause-devices-before-acknowledging-VT-switches.patch + May help that history of the shell is saved + 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch + 0001-socket-introduce-SELinuxContextFromNet-option.patch (bsc#897801) + 0002-util-avoid-non-portable-__WORDSIZE.patch + ------------------------------------------------------------------- Fri Sep 19 13:08:14 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 7f58d45c..79e9153c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -883,6 +883,20 @@ Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved +Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) +Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch436: 0002-bus-remove-unused-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/26 +Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch # UDEV PATCHES # ============ @@ -1062,6 +1076,10 @@ Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch Patch1085: 1085-udev-fix-typos.patch # PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch +# PATCH-FIX-SSUE 1087-infinit-timeout-for-kmod-loaded-modules.patch +Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch +# PATCH-FIX-SSUE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) +Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1653,6 +1671,13 @@ cp %{SOURCE7} m4/ %patch428 -p0 %patch429 -p0 %patch430 -p1 +%patch431 -p0 +%patch432 -p0 +%patch433 -p0 +%patch434 -p0 +%patch435 -p0 +%patch436 -p0 +%patch437 -p0 # udev patches %patch1001 -p1 @@ -1770,6 +1795,8 @@ cp %{SOURCE7} m4/ %patch1084 -p0 %patch1085 -p0 %patch1086 -p0 +%patch1087 -p0 +%patch1088 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ From ba9b55aa79e4d3a7960226acc75b5f85ba3450c48e9fa65d957079ad236b880e Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 26 Nov 2014 09:36:00 +0000 Subject: [PATCH 203/221] Accepting request 262952 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/262952 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=209 --- ...sh-for-reboot-or-hddown-for-poweroff.patch | 527 +----------------- ...n-t-allow-enabling-if-unit-is-masked.patch | 36 ++ ...ake-configured-units-part-of-swap.ta.patch | 76 +++ ...t-output-reboot-markers-when-running.patch | 27 + ...-support-for-IBM-ThinkPad-X41-Tablet.patch | 38 ++ ...pad-toggle-on-Toshiba-Satellite-P75-.patch | 27 + ...sole-setup-when-switching-from-vgaco.patch | 60 ++ ...add-support-for-Triton2-Power-Button.patch | 24 + ...-hppa-has-fewer-rtsigs-hence-avoid-u.patch | 79 +++ ...handle-removals-of-non-existing-matc.patch | 25 + ...equire-a-signal-event-source-to-be-e.patch | 58 ++ ...ion-fix-completion-of-inactive-units.patch | 95 ++++ ...nd-clean-up-initialization-of-struct.patch | 30 + ...tional-overflow-check-when-enlarging.patch | 35 ++ ...et-list-units-unit-files-honour-type.patch | 94 ++++ ...angle-unit-names-for-the-isolate-suf.patch | 52 ++ ...nue-switch-root-even-if-umount-fails.patch | 50 ++ ...compare-return-against-correct-errno.patch | 26 + ...network-pre.target-as-place-to-hook-.patch | 126 +++++ ...-we-are-running-inside-the-docker-co.patch | 25 + ...-use-n-a-if-PRETTY_NAME-is-not-found.patch | 31 ++ ...s-properties-cannot-be-both-writable.patch | 23 + ...-for-special-keys-on-compaq-ku-0133-.patch | 42 ++ ...cial-keys-on-ThinkPad-X60-X61-Tablet.patch | 33 ++ ...-touchpad-toggle-key-on-Asus-laptops.patch | 25 + ...ightness-keys-on-Dell-Inspiron-1520-.patch | 41 ++ ...dd-support-for-TPS65217-Power-Button.patch | 71 +++ ...-propose-templates-for-disable-re-en.patch | 111 ++++ ...-arguments-to-run-initramfs-shutdown.patch | 70 +++ ...s-own-argv-to-run-initramfs-shutdown.patch | 36 ++ ...ot-return-error-when-snapshot-exists.patch | 25 + ...temctl-obey-state-in-list-unit-files.patch | 28 + ...-try-harder-to-bind-to-notify-socket.patch | 44 ++ ...upport-infinity-syntax-in-parse_nsec.patch | 40 ++ ...w-Entry-for-Dell-XPS12-9Q33-keyboard.patch | 29 + ...chart-parse-userinput-with-safe_atoi.patch | 34 ++ ...abel-return-error-when-writing-fails.patch | 30 + ..._MAC_OVERRIDE-in-journald-for-SMACK-.patch | 41 ++ ...-man-we-don-t-have-Wanted-dependency.patch | 29 + ...-bus-check-return-value-of-vasprintf.patch | 35 ++ ...operties-that-claim-to-be-both-writa.patch | 29 + ...void-prematurely-rejecting-missing-u.patch | 39 ++ ...t-from-format_timestamp_relative-on-.patch | 25 + ...g-at-the-next-unichar-honour-the-siz.patch | 29 + ...ise-level-of-Found-dependency.-lines.patch | 42 ++ 0004-bootchart-check-return-of-strftime.patch | 63 +++ ...the-rescue-argument-to-rescue.target.patch | 27 + ...journal-do-server_vacuum-for-sigusr1.patch | 30 + ...-t-manage-to-properly-allocate-the-e.patch | 43 ++ ...t-check-the-value-of-received-signal.patch | 46 ++ ...ntial-double-free-crash-in-child-pro.patch | 38 ++ ...-try-to-access-data-for-non-existing.patch | 29 + 0005-cryptsetup-fix-an-OOM-check.patch | 25 + ...urnalctl-correct-help-text-for-until.patch | 21 + ...-stricter-checking-of-random-boot-id.patch | 37 ++ ...sd-journal-flush-after-sd-remount-fs.patch | 38 ++ 0005-util-avoid-double-close-of-fd.patch | 28 + 0006-calendarspec-fix-typo-in-annually.patch | 27 + 0006-journald-fix-minor-memory-leak.patch | 24 + ...eck-journal-file-size-to-deduce-if-i.patch | 55 ++ ...not-ignore-errors-in-symlink-removal.patch | 26 + ...urnald-fix-memory-leak-on-error-path.patch | 29 + ...til-introduce-sethostname_idempotent.patch | 85 +++ ...base-of-Bluetooth-company-identifier.patch | 38 ++ ...systemd-journald.service-Type-notify.patch | 27 + ...ste-error-and-actually-set-the-new-h.patch | 26 + ...base-of-Bluetooth-company-identifier.patch | 77 +++ ...l-unmounting-only-if-not-running-ins.patch | 27 + ...e-we-do-not-try-to-print-missing-fie.patch | 57 ++ ...rint-anything-while-passwords-are-be.patch | 180 ++++++ 1053-better-checks-in-write_net_rules.patch | 4 +- 1089-fix-cgroup-device-controller.patch | 74 +++ ...-supported_parent-for-well-known-SCS.patch | 58 ++ 1091-udev-path_id-update-comments.patch | 42 ++ ...dev-do-not-accept-invalid-log-levels.patch | 67 +++ ...-of-udev.event-timeout-kernel-parame.patch | 23 + ...-constants-in-kernel-cmdline-parsers.patch | 58 ++ ...t-ssd-disk-to-use-deadline-scheduler.patch | 28 + 1096-new-udev-root-symlink-generator.patch | 130 +++++ avoid-leaking-socket-descriptors.patch | 339 +++++++++++ journald-advice-about-use-of-memory.patch | 146 +++++ keep-crypt-password-prompt.patch | 45 -- parse-crypttab-for-noauto-option.patch | 2 +- ...f-ARM-based-Chromebook-as-a-power-sw.patch | 8 +- systemd-mini.changes | 290 ++++++++++ systemd-mini.spec | 280 +++++++++- systemd-udev-root-symlink | 9 - systemd.changes | 290 ++++++++++ systemd.spec | 280 +++++++++- watch_resolv.conf_for_become_changed.patch | 159 ++++++ write_dev_root_rule | 13 - 91 files changed, 5311 insertions(+), 629 deletions(-) create mode 100644 0001-core-don-t-allow-enabling-if-unit-is-masked.patch create mode 100644 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch create mode 100644 0001-journalctl-do-not-output-reboot-markers-when-running.patch create mode 100644 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch create mode 100644 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch create mode 100644 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch create mode 100644 0001-logind-add-support-for-Triton2-Power-Button.patch create mode 100644 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch create mode 100644 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch create mode 100644 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch create mode 100644 0001-shell-completion-fix-completion-of-inactive-units.patch create mode 100644 0001-shutdownd-clean-up-initialization-of-struct.patch create mode 100644 0001-strv-add-an-additional-overflow-check-when-enlarging.patch create mode 100644 0001-systemctl-let-list-units-unit-files-honour-type.patch create mode 100644 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch create mode 100644 0001-systemd-continue-switch-root-even-if-umount-fails.patch create mode 100644 0001-tmpfiles-compare-return-against-correct-errno.patch create mode 100644 0001-units-introduce-network-pre.target-as-place-to-hook-.patch create mode 100644 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch create mode 100644 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch create mode 100644 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch create mode 100644 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch create mode 100644 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch create mode 100644 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch create mode 100644 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch create mode 100644 0002-logind-add-support-for-TPS65217-Power-Button.patch create mode 100644 0002-shell-completion-propose-templates-for-disable-re-en.patch create mode 100644 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch create mode 100644 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch create mode 100644 0002-snapshot-return-error-when-snapshot-exists.patch create mode 100644 0002-systemctl-obey-state-in-list-unit-files.patch create mode 100644 0002-systemd-try-harder-to-bind-to-notify-socket.patch create mode 100644 0002-time-also-support-infinity-syntax-in-parse_nsec.patch create mode 100644 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch create mode 100644 0003-bootchart-parse-userinput-with-safe_atoi.patch create mode 100644 0003-fileio-label-return-error-when-writing-fails.patch create mode 100644 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch create mode 100644 0003-man-we-don-t-have-Wanted-dependency.patch create mode 100644 0003-sd-bus-check-return-value-of-vasprintf.patch create mode 100644 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch create mode 100644 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch create mode 100644 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch create mode 100644 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch create mode 100644 0004-Raise-level-of-Found-dependency.-lines.patch create mode 100644 0004-bootchart-check-return-of-strftime.patch create mode 100644 0004-core-map-the-rescue-argument-to-rescue.target.patch create mode 100644 0004-journal-do-server_vacuum-for-sigusr1.patch create mode 100644 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch create mode 100644 0004-sd-event-check-the-value-of-received-signal.patch create mode 100644 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch create mode 100644 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch create mode 100644 0005-cryptsetup-fix-an-OOM-check.patch create mode 100644 0005-journalctl-correct-help-text-for-until.patch create mode 100644 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch create mode 100644 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch create mode 100644 0005-util-avoid-double-close-of-fd.patch create mode 100644 0006-calendarspec-fix-typo-in-annually.patch create mode 100644 0006-journald-fix-minor-memory-leak.patch create mode 100644 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch create mode 100644 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch create mode 100644 0008-journald-fix-memory-leak-on-error-path.patch create mode 100644 0008-util-introduce-sethostname_idempotent.patch create mode 100644 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0009-units-make-systemd-journald.service-Type-notify.patch create mode 100644 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch create mode 100644 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch create mode 100644 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch create mode 100644 0012-manager-do-not-print-anything-while-passwords-are-be.patch create mode 100644 1089-fix-cgroup-device-controller.patch create mode 100644 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch create mode 100644 1091-udev-path_id-update-comments.patch create mode 100644 1092-libudev-do-not-accept-invalid-log-levels.patch create mode 100644 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch create mode 100644 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch create mode 100644 1095-set-ssd-disk-to-use-deadline-scheduler.patch create mode 100644 1096-new-udev-root-symlink-generator.patch create mode 100644 avoid-leaking-socket-descriptors.patch create mode 100644 journald-advice-about-use-of-memory.patch delete mode 100644 keep-crypt-password-prompt.patch delete mode 100644 systemd-udev-root-symlink create mode 100644 watch_resolv.conf_for_become_changed.patch delete mode 100644 write_dev_root_rule diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index 57ca912b..b4aeb6f4 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -1,497 +1,16 @@ -This seems to be a SUSE specific patch. Here we add the check for unmaintained -disk like devices to be able to flush and maybe shut them down. Also we add the -missing sync() system call for the direct halt/reboot systemctl command. Then we -use the system halt as gfallback if poweroff fails for both the direct poweroff -systemctl command as well as for the systemd-shutdown utility. - --- - Makefile.am | 11 + - src/core/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ - src/core/hdflush.h | 25 +++ - src/core/shutdown.c | 12 + - src/systemctl/systemctl.c | 25 ++- - 5 files changed, 429 insertions(+), 9 deletions(-) + systemd-209/src/core/shutdown.c | 4 ++++ + systemd-209/src/systemctl/systemctl.c | 22 +++++++++++++++------- + 2 files changed, 19 insertions(+), 7 deletions(-) ---- systemd-209/Makefile.am -+++ systemd-209/Makefile.am 2014-01-28 11:06:56.000000000 +0000 -@@ -1004,7 +1004,9 @@ libsystemd_core_la_SOURCES = \ - src/core/audit-fd.c \ - src/core/audit-fd.h \ - src/core/async.c \ -- src/core/async.h -+ src/core/async.h \ -+ src/core/hdflush.c \ -+ src/core/hdflush.h - - if HAVE_KMOD - libsystemd_core_la_SOURCES += \ -@@ -1522,6 +1524,8 @@ systemd_shutdown_SOURCES = \ - src/core/shutdown.c \ - src/core/mount-setup.c \ - src/core/mount-setup.h \ -+ src/core/hdflush.c \ -+ src/core/hdflush.h \ - src/core/killall.h \ - src/core/killall.c - -@@ -1818,7 +1822,9 @@ systemd_cgroups_agent_LDADD = \ - - # ------------------------------------------------------------------------------ - systemctl_SOURCES = \ -- src/systemctl/systemctl.c -+ src/systemctl/systemctl.c \ -+ src/core/hdflush.c \ -+ src/core/hdflush.h - - systemctl_LDADD = \ - libsystemd-units.la \ -@@ -1826,6 +1832,7 @@ systemctl_LDADD = \ - libsystemd-internal.la \ - libsystemd-logs.la \ - libsystemd-journal-internal.la \ -+ libudev-internal.la \ - libsystemd-shared.la - - # ------------------------------------------------------------------------------ ---- systemd-209/src/core/hdflush.c -+++ systemd-209/src/core/hdflush.c 2014-01-28 10:58:56.000000000 +0000 -@@ -0,0 +1,367 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2014 Werner Fink -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+***/ -+ -+/* -+ * Find all disks on the system, list out IDE, unmanaged ATA disks, and -+ * USB sticks flush the cache of those and optional shut them down. -+ */ -+ -+#include -+#include -+#ifdef LIST_DEBUG -+# include -+#endif -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#ifdef WORDS_BIGENDIAN -+# include -+#endif -+ -+#include "hdflush.h" -+ -+/* Used in flush_cache_ext(), compare with */ -+#define IDBYTES 512 -+#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */ -+#define TEST_EXT 0x6000 -+ -+/* Maybe set in list_disks() and used in do_standby_disk() */ -+#define DISK_IS_IDE 0x00000001 -+#define DISK_IS_SATA 0x00000002 -+#define DISK_EXTFLUSH 0x00000004 -+#define DISK_REMOVABLE 0x00000008 -+#define DISK_MANAGED 0x00000010 -+#define DISK_FLUSHONLY 0x00000020 -+ -+struct sysfs { -+ struct udev *udev; -+ struct udev_enumerate *num; -+ struct udev_list_entry *item; -+ char *devnode; -+ size_t size; -+}; -+ -+static int flush_cache_ext(const struct sysfs *sysfs); -+ -+static struct sysfs * open_sysfs(void) -+{ -+ static struct sysfs sysfs; -+ sysfs.udev = udev_new(); -+ if (!sysfs.udev) -+ goto err; -+ sysfs.num = udev_enumerate_new(sysfs.udev); -+ if (!sysfs.num) -+ goto err; -+ if (udev_enumerate_add_match_subsystem(sysfs.num, "block") < 0) -+ goto err; -+ if (udev_enumerate_add_match_sysname(sysfs.num, "sd?") < 0) -+ goto err; -+ if (udev_enumerate_add_match_sysname(sysfs.num, "hd?") < 0) -+ goto err; -+ if (udev_enumerate_scan_devices(sysfs.num) < 0) -+ goto err; -+ sysfs.item = udev_enumerate_get_list_entry(sysfs.num); -+ sysfs.devnode = NULL; -+ sysfs.size = 0; -+ return &sysfs; -+err: -+ if (sysfs.num) -+ udev_unref(sysfs.udev); -+ if (sysfs.udev) -+ udev_unref(sysfs.udev); -+ return NULL; -+} -+ -+static void close_sysfs(struct sysfs *sysfs) -+{ -+ if (sysfs->num) -+ udev_enumerate_unref(sysfs->num); -+ if (sysfs->udev) -+ udev_unref(sysfs->udev); -+ if (sysfs->devnode) -+ free(sysfs->devnode); -+ sysfs->devnode = NULL; -+} -+ -+ -+static char *list_disks(struct sysfs *sysfs, unsigned int* flags) -+{ -+ struct udev_device *device, *parent; -+ struct udev_list_entry *item; -+ const char *devnode; -+ char path[PATH_MAX]; -+ -+ device = NULL; -+next: -+ if (device) -+ udev_device_unref(device); -+ if (sysfs->devnode) -+ free(sysfs->devnode); -+ sysfs->devnode = NULL; -+ sysfs->size = 0; -+ *flags = 0; -+ -+ if (!sysfs->item) -+ goto empty; -+ item = sysfs->item; -+ sysfs->item = udev_list_entry_get_next(sysfs->item); -+ -+ if (!(device = udev_device_new_from_syspath(sysfs->udev, udev_list_entry_get_name(item)))) -+ goto out; -+ if (!(devnode = udev_device_get_devnode(device))) -+ goto out; -+ if (!(sysfs->devnode = strdup(devnode))) -+ goto out; -+ -+ path[0] = '\0'; -+ parent = udev_device_get_parent(device); -+ if (parent) { -+ const char *sysname, *devpath; -+ struct udev_device *disk; -+ const char *value; -+ int ret; -+ -+ sysname = udev_device_get_sysname(parent); -+ devpath = udev_device_get_devpath(parent); -+ -+ strcpy(path, "/sys"); -+ strcat(path, devpath); -+ strcat(path, "/scsi_disk/"); -+ strcat(path, sysname); -+ -+ disk = udev_device_new_from_syspath(sysfs->udev, path); -+ if (disk) { -+ value = udev_device_get_sysattr_value(disk, "manage_start_stop"); -+ udev_device_unref(disk); -+ -+ if (value && *value != '0') { -+ *flags = DISK_MANAGED; -+#ifndef LIST_DEBUG -+ goto next; /* Device managed by the kernel */ -+#endif -+ } -+ } -+ -+ value = udev_device_get_sysattr_value(device, "size"); -+ if (value && *value) -+ sysfs->size = (size_t)atoll(value); -+ -+ value = udev_device_get_sysattr_value(device, "removable"); -+ if (value && *value != '0') { -+ *flags |= DISK_REMOVABLE; -+ -+ if ((ret = flush_cache_ext(sysfs))) { -+ if (ret < 0) -+ goto next; -+ *flags |= DISK_EXTFLUSH; -+ } -+ goto out; /* Removable disk like USB stick */ -+ } -+ -+ value = udev_device_get_sysname(device); -+ if (value && *value == 'h') { -+ *flags |= DISK_IS_IDE; -+ -+ if ((ret = flush_cache_ext(sysfs))) { -+ if (ret < 0) -+ goto next; -+ *flags |= DISK_EXTFLUSH; -+ } -+ goto out; /* IDE disk found */ -+ } -+ -+ value = udev_device_get_sysattr_value(parent, "vendor"); -+ if (value && strncmp(value, "ATA", 3) == 0) { -+ *flags |= (DISK_IS_IDE|DISK_IS_SATA); -+ -+ if ((ret = flush_cache_ext(sysfs))) { -+ if (ret < 0) -+ goto next; -+ *flags |= DISK_EXTFLUSH; -+ } -+ goto out; /* SATA disk to shutdown */ -+ } -+ goto next; -+ } -+out: -+ udev_device_unref(device); -+empty: -+ return sysfs->devnode; -+} -+#ifndef LIST_DEBUG -+/* -+ * Check IDE/(S)ATA hard disk identity for -+ * the FLUSH CACHE EXT bit set. -+ */ -+static int flush_cache_ext(const struct sysfs *sysfs) -+{ -+#ifndef WIN_IDENTIFY -+#define WIN_IDENTIFY 0xEC -+#endif -+ unsigned char args[4+IDBYTES]; -+ unsigned short *id = (unsigned short*)(&args[4]); -+ int fd = -1, ret = 0; -+ -+ if (sysfs->size < (1<<28)) -+ goto out; /* small disk */ -+ -+ if ((fd = open(sysfs->devnode, O_RDONLY|O_NONBLOCK|O_CLOEXEC)) < 0) -+ goto out; -+ -+ memset(&args[0], 0, sizeof(args)); -+ args[0] = WIN_IDENTIFY; -+ args[3] = 1; -+ if (ioctl(fd, HDIO_DRIVE_CMD, &args)) -+ goto out; -+#ifdef WORDS_BIGENDIAN -+# if 0 -+ { -+ const unsigned short *end = id + IDBYTES/2; -+ const unsigned short *from = id; -+ unsigned short *to = id; -+ -+ while (from < end) -+ *to++ = bswap_16(*from++); -+ } -+# else -+ id[83] = bswap_16(id[83]); -+# endif -+#endif -+ if ((id[83] & MASK_EXT) == TEST_EXT) -+ ret = 1; -+out: -+ if (fd >= 0) -+ close(fd); -+ return ret; -+} -+ -+/* -+ * Put an IDE/SCSI/SATA disk in standby mode. -+ * Code stolen from hdparm.c -+ */ -+static int do_standby_disk(struct sysfs *sysfs, unsigned int flags) -+{ -+#ifndef WIN_STANDBYNOW1 -+#define WIN_STANDBYNOW1 0xE0 -+#endif -+#ifndef WIN_STANDBYNOW2 -+#define WIN_STANDBYNOW2 0x94 -+#endif -+#ifndef WIN_FLUSH_CACHE_EXT -+#define WIN_FLUSH_CACHE_EXT 0xEA -+#endif -+#ifndef WIN_FLUSH_CACHE -+#define WIN_FLUSH_CACHE 0xE7 -+#endif -+ unsigned char flush1[4] = {WIN_FLUSH_CACHE_EXT,0,0,0}; -+ unsigned char flush2[4] = {WIN_FLUSH_CACHE,0,0,0}; -+ unsigned char stdby1[4] = {WIN_STANDBYNOW1,0,0,0}; -+ unsigned char stdby2[4] = {WIN_STANDBYNOW2,0,0,0}; -+ int fd, ret; -+ -+ if ((fd = open(sysfs->devnode, O_RDWR|O_NONBLOCK|O_CLOEXEC)) < 0) -+ return -1; -+ -+ switch (flags & DISK_EXTFLUSH) { -+ case DISK_EXTFLUSH: -+ if ((ret = ioctl(fd, HDIO_DRIVE_CMD, &flush1)) == 0) -+ break; -+ /* Extend flush rejected, try standard flush */ -+ default: -+ ret = ioctl(fd, HDIO_DRIVE_CMD, &flush2) && -+ ioctl(fd, BLKFLSBUF); -+ break; -+ } -+ -+ if ((flags & DISK_FLUSHONLY) == 0x0) { -+ ret = ioctl(fd, HDIO_DRIVE_CMD, &stdby1) && -+ ioctl(fd, HDIO_DRIVE_CMD, &stdby2); -+ } -+ -+ close(fd); -+ -+ if (ret) -+ return -1; -+ return 0; -+} -+#endif -+#ifdef LIST_DEBUG -+int main() -+{ -+ char *disk; -+ unsigned int flags; -+ struct sysfs *sysfs = open_sysfs(); -+ if (!sysfs) -+ goto err; -+ while ((disk = list_disks(sysfs, &flags))) -+ fprintf(stdout, "%s\n", sysfs->devnode); -+ close_sysfs(sysfs); -+err: -+ return 0; -+} -+#else -+/* -+ * List all disks and put them in standby mode. -+ * This has the side-effect of flushing the writecache, -+ * which is exactly what we want on poweroff. -+ */ -+void hddown(void) -+{ -+ struct sysfs *sysfs; -+ unsigned int flags; -+ char *disk; -+ -+ if (!(sysfs = open_sysfs())) -+ return; -+ -+ while ((disk = list_disks(sysfs, &flags))) -+ do_standby_disk(sysfs, flags); -+ -+ close_sysfs(sysfs); -+} -+ -+/* -+ * List all disks and cause them to flush their buffers. -+ */ -+void hdflush(void) -+{ -+ struct sysfs *sysfs; -+ unsigned int flags; -+ char *disk; -+ -+ if (!(sysfs = open_sysfs())) -+ return; -+ -+ while ((disk = list_disks(sysfs, &flags))) -+ do_standby_disk(sysfs, (flags|DISK_FLUSHONLY)); -+ -+ close_sysfs(sysfs); -+} -+#endif ---- systemd-209/src/core/hdflush.h -+++ systemd-209/src/core/hdflush.h 2014-01-28 11:00:08.000000000 +0000 -@@ -0,0 +1,25 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+#pragma once -+ -+/*** -+ This file is part of systemd. -+ -+ Copyright 2014 Werner Fink -+ -+ systemd is free software; you can redistribute it and/or modify it -+ under the terms of the GNU Lesser General Public License as published by -+ the Free Software Foundation; either version 2.1 of the License, or -+ (at your option) any later version. -+ -+ systemd 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with systemd; If not, see . -+***/ -+ -+void hdflush(void); -+void hddown(void); --- systemd-209/src/core/shutdown.c +++ systemd-209/src/core/shutdown.c 2014-02-28 11:17:22.000000000 +0000 -@@ -40,6 +40,7 @@ - #include "missing.h" - #include "log.h" - #include "fileio.h" -+#include "hdflush.h" - #include "umount.h" - #include "util.h" - #include "mkdir.h" -@@ -225,7 +226,8 @@ int main(int argc, char *argv[]) { - _cleanup_free_ char *cgroup = NULL; - char *arguments[3]; - unsigned retries; -- int cmd, r; -+ unsigned cmd; -+ int r; - - log_parse_environment(); - r = parse_argv(argc, argv); -@@ -388,8 +390,13 @@ int main(int argc, char *argv[]) { - * on reboot(), but the file systems need to be synce'd - * explicitly in advance. So let's do this here, but not - * needlessly slow down containers. */ -- if (!in_container) -+ if (!in_container) { - sync(); -+ if (cmd == RB_POWER_OFF || cmd == RB_HALT_SYSTEM) -+ hddown(); -+ else -+ hdflush(); -+ } - - switch (cmd) { - -@@ -449,6 +456,10 @@ int main(int argc, char *argv[]) { +@@ -449,6 +449,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); + -+ if (cmd == RB_POWER_OFF) ++ if (cmd == (int)RB_POWER_OFF) + reboot(RB_HALT_SYSTEM); + if (errno == EPERM && in_container) { @@ -499,15 +18,7 @@ systemctl command as well as for the systemd-shutdown utility. * CAP_SYS_BOOT just exit, this will kill our --- systemd-209/src/systemctl/systemctl.c +++ systemd-209/src/systemctl/systemctl.c 2014-02-28 11:19:35.000000000 +0000 -@@ -67,6 +67,7 @@ - #include "logs-show.h" - #include "socket-util.h" - #include "fileio.h" -+#include "hdflush.h" - #include "env-util.h" - #include "bus-util.h" - #include "bus-message.h" -@@ -93,6 +94,7 @@ static bool arg_no_pager = false; +@@ -93,6 +93,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -515,7 +26,7 @@ systemctl command as well as for the systemd-shutdown utility. static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -5566,6 +5568,7 @@ static int halt_parse_argv(int argc, cha +@@ -5578,6 +5579,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -523,7 +34,7 @@ systemctl command as well as for the systemd-shutdown utility. { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -5617,10 +5620,13 @@ static int halt_parse_argv(int argc, cha +@@ -5629,10 +5631,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -538,25 +49,25 @@ systemctl command as well as for the systemd-shutdown utility. case '?': return -EINVAL; -@@ -6266,16 +6272,24 @@ static int halt_now(enum action a) { +@@ -6274,20 +6279,23 @@ done: + + static int halt_now(enum action a) { + +-/* Make sure C-A-D is handled by the kernel from this ++ if (!arg_no_sync) ++ sync(); ++ ++ /* Make sure C-A-D is handled by the kernel from this * point on... */ reboot(RB_ENABLE_CAD); -- switch (a) { -+ if (!arg_no_sync) -+ sync(); + switch (a) { - case ACTION_HALT: - log_info("Halting."); - reboot(RB_HALT_SYSTEM); - return -errno; -+ if (a == ACTION_POWEROFF || a == ACTION_HALT) -+ hddown(); -+ else -+ hdflush(); -+ -+ switch (a) { - +- case ACTION_POWEROFF: log_info("Powering off."); reboot(RB_POWER_OFF); diff --git a/0001-core-don-t-allow-enabling-if-unit-is-masked.patch b/0001-core-don-t-allow-enabling-if-unit-is-masked.patch new file mode 100644 index 00000000..7e193738 --- /dev/null +++ b/0001-core-don-t-allow-enabling-if-unit-is-masked.patch @@ -0,0 +1,36 @@ +From f7101b7368dfe41dbc8b7203e06133cccb589c01 Mon Sep 17 00:00:00 2001 +From: Jan Synacek +Date: Tue, 7 Oct 2014 13:35:41 +0200 +Subject: [PATCH] core: don't allow enabling if unit is masked + +--- + src/shared/install.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git src/shared/install.c src/shared/install.c +index fa064c2..945bb27 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -1516,6 +1516,19 @@ int unit_file_enable( + return r; + + STRV_FOREACH(i, files) { ++ UnitFileState state; ++ ++ state = unit_file_get_state(scope, root_dir, *i); ++ if (state < 0) { ++ log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); ++ return state; ++ } ++ ++ if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { ++ log_error("Failed to enable unit: Unit %s is masked", *i); ++ return -ENOTSUP; ++ } ++ + r = install_info_add_auto(&c, *i); + if (r < 0) + return r; +-- +1.7.9.2 + diff --git a/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch b/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch new file mode 100644 index 00000000..18e76f4f --- /dev/null +++ b/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch @@ -0,0 +1,76 @@ +From 3018d31238caabc2e204aa161e647dc1c1b5d1c6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 2 Oct 2014 00:11:36 -0400 +Subject: [PATCH] core/swap: only make configured units part of swap.target + +We used to make all .swap units either RequiredBy=swap.target or +WantedBy=swap.target. But swap.target should be the "configured swap +units", either through /etc/fstab or non-generated .swap units. It +is surprising when systemd starts treating a swap device that was +possibly temporarily enabled as a hard dependency for other units. +So do not add dependencies with swap.target for units gleaned from +/proc/swaps. + +Similarly, we added dependencies for all aliases of the device name, +which clutters up the dependency graph but does not seem to bring any +value, since the status of those following units is consistent with +the main one anyway. + +This should be a fix for [1], and it seems the right thing to do +anyway. + +[1] https://bugzilla.redhat.com/show_bug.cgi?id=1114786 +--- + src/core/swap.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git src/core/swap.c src/core/swap.c +index ef90d0e..b2ca048 100644 +--- src/core/swap.c ++++ src/core/swap.c +@@ -213,7 +213,7 @@ static int swap_add_device_links(Swap *s) { + } + + static int swap_add_default_dependencies(Swap *s) { +- bool nofail = false, noauto = false; ++ bool nofail, noauto; + int r; + + assert(s); +@@ -228,23 +228,25 @@ static int swap_add_default_dependencies(Swap *s) { + if (r < 0) + return r; + +- if (s->from_fragment) { +- SwapParameters *p = &s->parameters_fragment; ++ if (!s->from_fragment) ++ /* The swap unit can either be for an alternative device name, in which ++ * case we don't need to add the dependency on swap.target because this unit ++ * is following a different unit which will have this dependency added, ++ * or it can be derived from /proc/swaps, in which case it was started ++ * manually, and should not become a dependency of swap.target. */ ++ return 0; + +- nofail = p->nofail; +- noauto = p->noauto; +- } ++ nofail = s->parameters_fragment.nofail; ++ noauto = s->parameters_fragment.noauto; + + if (!noauto) { + if (nofail) + r = unit_add_dependency_by_name_inverse(UNIT(s), UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); + else + r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); +- if (r < 0) +- return r; + } + +- return 0; ++ return r < 0 ? r : 0; + } + + static int swap_verify(Swap *s) { +-- +1.7.9.2 + diff --git a/0001-journalctl-do-not-output-reboot-markers-when-running.patch b/0001-journalctl-do-not-output-reboot-markers-when-running.patch new file mode 100644 index 00000000..b2aed874 --- /dev/null +++ b/0001-journalctl-do-not-output-reboot-markers-when-running.patch @@ -0,0 +1,27 @@ +From 4bed248505da4da94d82078fe60326a374970e97 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 26 Sep 2014 10:49:55 -0400 +Subject: [PATCH] journalctl: do not output --reboot-- markers when running + non-interactively + +They are not legal in the export format. +--- + src/journal/journalctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journalctl.c src/journal/journalctl.c +index 47206d3..89a922c 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -1939,7 +1939,7 @@ int main(int argc, char *argv[]) { + goto finish; + } + +- if (!arg_merge) { ++ if (!arg_merge && !arg_quiet) { + sd_id128_t boot_id; + + r = sd_journal_get_monotonic_usec(j, NULL, &boot_id); +-- +1.7.9.2 + diff --git a/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch b/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch new file mode 100644 index 00000000..67fb3061 --- /dev/null +++ b/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch @@ -0,0 +1,38 @@ +From 71ed2d38711e345f22e2200bc7bb156aed98972a Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 12 Nov 2014 23:30:46 +0100 +Subject: [PATCH] keymap: Add support for IBM ThinkPad X41 Tablet + +Scancode taken from: +http://www.thinkwiki.org/wiki/Tablet_Hardware_Buttons#Linux_Support + +William Jon McCann provided the DMI match. IBM seems to have +swapped the version and model of the system: + Manufacturer: IBM + Product Name: 18666TU + Version: ThinkPad X41 Tablet +--- + hwdb/60-keyboard.hwdb | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index d2ca965..56a4009 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -594,6 +594,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* + KEYBOARD_KEY_6f=down # down on d-pad + KEYBOARD_KEY_69=enter # enter on d-pad + ++# ThinkPad X41 Tablet ++keyboard:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:pvr* ++ KEYBOARD_KEY_6c=direction # rotate ++ KEYBOARD_KEY_68=f13 # toolbox ++ KEYBOARD_KEY_6b=esc # escape ++ KEYBOARD_KEY_69=enter # enter on d-pad ++ + # IdeaPad + keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* + KEYBOARD_KEY_42=f23 +-- +1.7.9.2 + diff --git a/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch b/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch new file mode 100644 index 00000000..29bbbcd1 --- /dev/null +++ b/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch @@ -0,0 +1,27 @@ +From a046659f8551e1c8f79ba4b66472444e285255df Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Tue, 7 Oct 2014 11:20:04 +0200 +Subject: [PATCH] keymap: Fix touchpad toggle on Toshiba Satellite P75-A7200 + +Just like everywhere else we use KEY_F21 instead of KEY_TOUCHPAD_TOGGLE for X +friendliness. +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 8a1baa7..1fea32a 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -1094,7 +1094,7 @@ keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75 + KEYBOARD_KEY_13c=brightnessdown + KEYBOARD_KEY_13d=brightnessup + KEYBOARD_KEY_13e=switchvideomode +- KEYBOARD_KEY_13f=touchpad_toggle ++ KEYBOARD_KEY_13f=f21 # Touchpad toggle + KEYBOARD_KEY_9e=wlan + + ########################################################### +-- +1.7.9.2 + diff --git a/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch b/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch new file mode 100644 index 00000000..ba00c036 --- /dev/null +++ b/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch @@ -0,0 +1,60 @@ +From f6ba8671d83f9fce9a00045d8fa399a1c07ba7fc Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 5 Nov 2014 08:30:52 -0500 +Subject: [PATCH] login: rerun vconsole-setup when switching from vgacon to + fbcon + +The initialization performed by systemd-vconsole-setup is reset +when changing console drivers (say from vgacon to fbcon), so we +need to run it in that case. + +See +http://lists.freedesktop.org/archives/systemd-devel/2014-October/023919.html +http://lists.freedesktop.org/archives/systemd-devel/2014-October/024423.html +http://lists.freedesktop.org/archives/systemd-devel/2014-November/024881.html + +This commit adds a udev rule to make systemd-vconsole-setup get run when +the fbcon device becomes available. + +(david: moved into new file 90-vconsole.rules instead of 71-seats.rules; + build-failures are on me, not on Ray) +--- + Makefile.am | 3 +++ + src/vconsole/90-vconsole.rules | 11 +++++++++++ + 2 files changed, 14 insertions(+) + create mode 100644 src/vconsole/90-vconsole.rules + +diff --git Makefile.am Makefile.am +index 3686103..f614b86 100644 +--- Makefile.am ++++ Makefile.am +@@ -4439,6 +4439,9 @@ rootlibexec_PROGRAMS += \ + nodist_systemunit_DATA += \ + units/systemd-vconsole-setup.service + ++dist_udevrules_DATA += \ ++ src/vconsole/90-vconsole.rules ++ + SYSINIT_TARGET_WANTS += \ + systemd-vconsole-setup.service + endif +diff --git src/vconsole/90-vconsole.rules src/vconsole/90-vconsole.rules +new file mode 100644 +index 0000000..bf6a9ef +--- /dev/null ++++ src/vconsole/90-vconsole.rules +@@ -0,0 +1,11 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++# Kernel resets vconsole state when changing console drivers so run ++# systemd-vconsole-setup when fbcon loads ++ ++ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="/usr/lib/systemd/systemd-vconsole-setup" +-- +1.7.9.2 + diff --git a/0001-logind-add-support-for-Triton2-Power-Button.patch b/0001-logind-add-support-for-Triton2-Power-Button.patch new file mode 100644 index 00000000..dbd0047c --- /dev/null +++ b/0001-logind-add-support-for-Triton2-Power-Button.patch @@ -0,0 +1,24 @@ +From 58d4aabedd415a735efeb8c2608ee73618c07f78 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 22 Sep 2014 22:14:39 -0400 +Subject: [PATCH] logind: add support for Triton2 Power Button + +https://bugs.freedesktop.org/show_bug.cgi?id=84201 +--- + src/login/70-power-switch.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules +index 36fb827..a6997f7 100644 +--- src/login/70-power-switch.rules ++++ src/login/70-power-switch.rules +@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end" + + SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" ++SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" + + LABEL="power_switch_end" +-- +1.7.9.2 + diff --git a/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch b/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch new file mode 100644 index 00000000..f71e16bd --- /dev/null +++ b/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch @@ -0,0 +1,79 @@ +Based on 4dffec1459f50ac9f8f67ccfcb79836b4ed5a50e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 13:44:45 +0200 +Subject: [PATCH] manager: Linux on hppa has fewer rtsigs, hence avoid using + the higher ones there + +https://bugs.freedesktop.org/show_bug.cgi?id=84931 +--- + src/core/manager.c | 29 +++++++++++++++++++++++++++-- + 1 file changed, 27 insertions(+), 2 deletions(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-10-29 14:02:28.635837997 +0000 +@@ -340,11 +340,14 @@ static int manager_setup_signals(Manager + + assert(m); + +- /* We are not interested in SIGSTOP and friends. */ + assert_se(sigaction(SIGCHLD, &sa, NULL) == 0); + +- assert_se(sigemptyset(&mask) == 0); ++ /* We make liberal use of realtime signals here. On ++ * Linux/glibc we have 30 of them (with the exception of Linux ++ * on hppa, see below), between SIGRTMIN+0 ... SIGRTMIN+30 ++ * (aka SIGRTMAX). */ + ++ assert_se(sigemptyset(&mask) == 0); + sigset_add_many(&mask, + SIGCHLD, /* Child died */ + SIGTERM, /* Reexecute daemon */ +@@ -354,6 +357,7 @@ static int manager_setup_signals(Manager + SIGINT, /* Kernel sends us this on control-alt-del */ + SIGWINCH, /* Kernel sends us this on kbrequest (alt-arrowup) */ + SIGPWR, /* Some kernel drivers and upsd send us this on power failure */ ++ + SIGRTMIN+0, /* systemd: start default.target */ + SIGRTMIN+1, /* systemd: isolate rescue.target */ + SIGRTMIN+2, /* systemd: isolate emergency.target */ +@@ -361,19 +365,40 @@ static int manager_setup_signals(Manager + SIGRTMIN+4, /* systemd: start poweroff.target */ + SIGRTMIN+5, /* systemd: start reboot.target */ + SIGRTMIN+6, /* systemd: start kexec.target */ ++ ++ /* ... space for more special targets ... */ ++ + SIGRTMIN+13, /* systemd: Immediate halt */ + SIGRTMIN+14, /* systemd: Immediate poweroff */ + SIGRTMIN+15, /* systemd: Immediate reboot */ + SIGRTMIN+16, /* systemd: Immediate kexec */ ++ ++ /* ... space for more immediate system state changes ... */ ++ + SIGRTMIN+20, /* systemd: enable status messages */ + SIGRTMIN+21, /* systemd: disable status messages */ + SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */ + SIGRTMIN+23, /* systemd: set log level to LOG_INFO */ + SIGRTMIN+24, /* systemd: Immediate exit (--user only) */ ++ ++ /* .. one free signal here ... */ ++ ++#if !defined(__hppa64__) && !defined(__hppa__) ++ /* Apparently Linux on hppa has fewer RT ++ * signals (SIGRTMAX is SIGRTMIN+25 there), ++ * hence let's not try to make use of them ++ * here. Since these commands are accessible ++ * by different means and only really a safety ++ * net, the missing functionality on hppa ++ * shouldn't matter. */ ++ + SIGRTMIN+26, /* systemd: set log target to journal-or-kmsg */ + SIGRTMIN+27, /* systemd: set log target to console */ + SIGRTMIN+28, /* systemd: set log target to kmsg */ + SIGRTMIN+29, /* systemd: set log target to syslog-or-kmsg */ ++ ++ /* ... one free signal here SIGRTMIN+30 ... */ ++#endif + -1); + assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0); + diff --git a/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch b/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch new file mode 100644 index 00000000..c1326c50 --- /dev/null +++ b/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch @@ -0,0 +1,25 @@ +From ef7b6c0190fefaacf6d8f8e1a6dda4ba8b98091b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 29 Oct 2014 17:58:43 +0100 +Subject: [PATCH] sd-bus: properly handle removals of non-existing matches + +--- + src/libsystemd/sd-bus/bus-match.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c +index 18afe0f..5658c61 100644 +--- src/libsystemd/sd-bus/bus-match.c ++++ src/libsystemd/sd-bus/bus-match.c +@@ -537,7 +537,7 @@ static int bus_match_find_compare_value( + else if (BUS_MATCH_CAN_HASH(t)) + n = hashmap_get(c->compare.children, value_str); + else { +- for (n = c->child; !value_node_same(n, t, value_u8, value_str); n = n->next) ++ for (n = c->child; n && !value_node_same(n, t, value_u8, value_str); n = n->next) + ; + } + +-- +1.7.9.2 + diff --git a/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch b/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch new file mode 100644 index 00000000..4b9e6e87 --- /dev/null +++ b/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch @@ -0,0 +1,58 @@ +From 92daebc0d0268c35f416c1665e0da3d4be5dd69f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 11 Jul 2014 16:48:35 +0200 +Subject: [PATCH] sd-event: don't require a signal event source to be enabled + for the child event source to work + +--- + src/libsystemd/sd-event/sd-event.c | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index a21f7db..9a9664c 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -1919,14 +1919,13 @@ static int process_signal(sd_event *e, uint32_t events) { + int r; + + assert(e); +- assert(e->signal_sources); + + assert_return(events == EPOLLIN, -EIO); + + for (;;) { + struct signalfd_siginfo si; + ssize_t ss; +- sd_event_source *s; ++ sd_event_source *s = NULL; + + ss = read(e->signal_fd, &si, sizeof(si)); + if (ss < 0) { +@@ -1941,16 +1940,19 @@ static int process_signal(sd_event *e, uint32_t events) { + + read_one = true; + +- s = e->signal_sources[si.ssi_signo]; + if (si.ssi_signo == SIGCHLD) { + r = process_child(e); + if (r < 0) + return r; +- if (r > 0 || !s) ++ if (r > 0) + continue; +- } else +- if (!s) +- return -EIO; ++ } ++ ++ if (e->signal_sources) ++ s = e->signal_sources[si.ssi_signo]; ++ ++ if (!s) ++ continue; + + s->signal.siginfo = si; + r = source_set_pending(s, true); +-- +1.7.9.2 + diff --git a/0001-shell-completion-fix-completion-of-inactive-units.patch b/0001-shell-completion-fix-completion-of-inactive-units.patch new file mode 100644 index 00000000..563d9828 --- /dev/null +++ b/0001-shell-completion-fix-completion-of-inactive-units.patch @@ -0,0 +1,95 @@ +Based on f29c77bc0179b0fa57407dbe30b495be9f5ad2e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 14 Oct 2014 20:20:07 -0400 +Subject: [PATCH] shell-completion: fix completion of inactive units + +Units which not loaded were not proposed properly. OTOH, we should +filter units from get-unit-files by their state if they are currently +loaded. Bring zsh completions in line with bash completion, the same +logic should be used in both implementations. + +https://bugzilla.redhat.com/show_bug.cgi?id=1024379 +https://bugzilla.redhat.com/show_bug.cgi?id=790768 +https://bugs.freedesktop.org/show_bug.cgi?id=84720 +--- + shell-completion/bash/systemctl | 17 +++++++++-------- + shell-completion/zsh/_systemctl | 16 +++++++++------- + 2 files changed, 18 insertions(+), 15 deletions(-) + +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -55,10 +55,14 @@ __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list- + | { while read -r a b; do echo " $a"; done; }; } + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } +-__get_startable_units () { { +- __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap +- __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ +- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } ++__get_startable_units () { ++ # find inactive or failed units, filter out masked and not-found ++ __systemctl $1 list-units --state inactive,failed -- $( __get_all_units ) | \ ++ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } ++__get_restartable_units () { ++ # find !masked, filter out masked and not-found ++ __systemctl $1 list-units --state active,inactive,failed -- $( __get_all_units ) | \ ++ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } + __get_failed_units () { __systemctl $1 list-units \ + | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } + __get_enabled_units () { __systemctl $1 list-unit-files \ +@@ -180,10 +184,7 @@ _systemctl () { + + elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +- $( __get_all_units $mode \ +- | while read -r line; do \ +- [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ +- done )) ++ $( __get_restartable_units $mode)) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then +--- shell-completion/zsh/_systemctl ++++ shell-completion/zsh/_systemctl +@@ -138,8 +138,11 @@ _filter_units_by_property() { + done + } + ++_systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } ++ + _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} +-_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} ++_systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} ++_systemctl_restartable_units(){_sys_restartable_units=($(__systemctl list-units --state inactive,failed,active -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} + _systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} + _systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} + _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} +@@ -181,8 +184,9 @@ done + # Completion functions for STARTABLE_UNITS + (( $+functions[_systemctl_start] )) || _systemctl_start() + { +- _systemctl_inactive_units +- compadd "$@" -a - _sys_inactive_units ++ _systemctl_startable_units ++ compadd "$@" - $( _filter_units_by_property CanStart yes \ ++ ${_sys_startable_units[*]} ) + } + + # Completion functions for STOPPABLE_UNITS +@@ -217,11 +221,9 @@ done + for fun in restart reload-or-restart ; do + (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() + { +- _systemctl_all_units ++ _systemctl_restartable_units + compadd "$@" - $( _filter_units_by_property CanStart yes \ +- ${_sys_all_units[*]} | while read -r line; do \ +- [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ +- done ) ++ ${_sys_restartable_units[*]} ) + } + done + +-- +1.7.9.2 + diff --git a/0001-shutdownd-clean-up-initialization-of-struct.patch b/0001-shutdownd-clean-up-initialization-of-struct.patch new file mode 100644 index 00000000..3f2fb4ea --- /dev/null +++ b/0001-shutdownd-clean-up-initialization-of-struct.patch @@ -0,0 +1,30 @@ +From b748c7596f79945be5263a0d1c88de64eb0c5146 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 27 Sep 2014 00:25:09 +0200 +Subject: [PATCH] shutdownd: clean up initialization of struct + +No functional change. We just don't assign the value twice. + +Found by coverity. Fixes: CID#1237616 and #1237617 +--- + src/shutdownd/shutdownd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/shutdownd/shutdownd.c src/shutdownd/shutdownd.c +index 99aa4b3..0f008a6 100644 +--- src/shutdownd/shutdownd.c ++++ src/shutdownd/shutdownd.c +@@ -52,8 +52,8 @@ static int read_packet(int fd, union shutdown_buffer *_b) { + union shutdown_buffer b; /* We maintain our own copy here, in + * order not to corrupt the last message */ + struct iovec iovec = { +- iovec.iov_base = &b, +- iovec.iov_len = sizeof(b) - 1, ++ .iov_base = &b, ++ .iov_len = sizeof(b) - 1, + }; + union { + struct cmsghdr cmsghdr; +-- +1.7.9.2 + diff --git a/0001-strv-add-an-additional-overflow-check-when-enlarging.patch b/0001-strv-add-an-additional-overflow-check-when-enlarging.patch new file mode 100644 index 00000000..3f953f4f --- /dev/null +++ b/0001-strv-add-an-additional-overflow-check-when-enlarging.patch @@ -0,0 +1,35 @@ +Based on 97569e154b80541cbad39d78231b7f360d4ff058 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 21 Oct 2014 14:01:28 +0200 +Subject: [PATCH] strv: add an additional overflow check when enlarging + strv()s + +https://bugs.freedesktop.org/show_bug.cgi?id=76745 +--- + src/shared/strv.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- src/shared/strv.c ++++ src/shared/strv.c 2014-10-23 00:00:00.000000000 +0000 +@@ -361,13 +361,19 @@ char *strv_join_quoted(char **l) { + + int strv_push(char ***l, char *value) { + char **c; +- unsigned n; ++ unsigned n, m; + + if (!value) + return 0; + + n = strv_length(*l); +- c = realloc(*l, sizeof(char*) * (n + 2)); ++ ++ /* increase and check for overflow */ ++ m = n + 2; ++ if (m < n) ++ return -ENOMEM; ++ ++ c = realloc(*l, sizeof(char*) * (size_t) m); + if (!c) + return -ENOMEM; + diff --git a/0001-systemctl-let-list-units-unit-files-honour-type.patch b/0001-systemctl-let-list-units-unit-files-honour-type.patch new file mode 100644 index 00000000..1548d84f --- /dev/null +++ b/0001-systemctl-let-list-units-unit-files-honour-type.patch @@ -0,0 +1,94 @@ +Based on 6c71341aeecc3d092ed90f66e1b2c481b8e260ff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 29 Oct 2014 22:46:30 -0400 +Subject: [PATCH] systemctl: let list-{units,unit-files } honour --type + +The docs don't clarify what is expected, but I don't see any reason +why --type should be ignored. + +Also restucture the compund conditions into separate clauses for +easier reading. +--- + src/systemctl/systemctl.c | 48 ++++++++++++++++++++++++++++++++++----------- + 1 file changed, 37 insertions(+), 11 deletions(-) + +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-11-18 00:00:00.000000000 +0000 +@@ -305,21 +305,37 @@ static int compare_unit_info(const void + } + + static bool output_show_unit(const UnitInfo *u, char **patterns) { +- const char *dot; +- + if (!strv_isempty(patterns)) { + char **pattern; + + STRV_FOREACH(pattern, patterns) + if (fnmatch(*pattern, u->id, FNM_NOESCAPE) == 0) +- return true; ++ goto next; + return false; + } + +- return (!arg_types || ((dot = strrchr(u->id, '.')) && +- strv_find(arg_types, dot+1))) && +- (arg_all || !(streq(u->active_state, "inactive") +- || u->following[0]) || u->job_id > 0); ++next: ++ if (arg_types) { ++ const char *dot; ++ ++ dot = strrchr(u->id, '.'); ++ if (!dot) ++ return false; ++ ++ if (!strv_find(arg_types, dot+1)) ++ return false; ++ } ++ ++ if (arg_all) ++ return true; ++ ++ if (u->job_id > 0) ++ return true; ++ ++ if (streq(u->active_state, "inactive") || u->following[0]) ++ return false; ++ ++ return true; + } + + static void output_units_list(const UnitInfo *unit_infos, unsigned c) { +@@ -1019,18 +1035,28 @@ static int compare_unit_file_list(const + } + + static bool output_show_unit_file(const UnitFileList *u, char **patterns) { +- const char *dot; +- + if (!strv_isempty(patterns)) { + char **pattern; + + STRV_FOREACH(pattern, patterns) + if (fnmatch(*pattern, basename(u->path), FNM_NOESCAPE) == 0) +- return true; ++ goto next; + return false; + } + +- return !arg_types || ((dot = strrchr(u->path, '.')) && strv_find(arg_types, dot+1)); ++next: ++ if (!strv_isempty(arg_types)) { ++ const char *dot; ++ ++ dot = strrchr(u->path, '.'); ++ if (!dot) ++ return false; ++ ++ if (!strv_find(arg_types, dot+1)) ++ return false; ++ } ++ ++ return true; + } + + static void output_unit_file_list(const UnitFileList *units, unsigned c) { diff --git a/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch b/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch new file mode 100644 index 00000000..544be067 --- /dev/null +++ b/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch @@ -0,0 +1,52 @@ +From 08073121d8171f8e6be27b0c80e2ec283064760e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 13 Oct 2014 15:43:09 +0200 +Subject: [PATCH] systemctl: when mangle unit names for the "isolate", suffix + with ".target" rather than ".service" by default + +After all, we set AllowIsolate exclusively for target units so far, and +this is more or less the only thing tht makes sense, hence also use +".target" as completion suffix by default. +--- + src/systemctl/systemctl.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 842ca6c..af3cc97 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -2704,7 +2704,7 @@ static enum action verb_to_action(const char *verb) { + static int start_unit(sd_bus *bus, char **args) { + _cleanup_set_free_free_ Set *s = NULL; + _cleanup_strv_free_ char **names = NULL; +- const char *method, *mode, *one_name; ++ const char *method, *mode, *one_name, *suffix = NULL; + char **name; + int r = 0; + +@@ -2717,8 +2717,11 @@ static int start_unit(sd_bus *bus, char **args) { + method = verb_to_method(args[0]); + action = verb_to_action(args[0]); + +- mode = streq(args[0], "isolate") ? "isolate" : +- action_table[action].mode ?: arg_job_mode; ++ if (streq(args[0], "isolate")) { ++ mode = "isolate"; ++ suffix = ".target"; ++ } else ++ mode = action_table[action].mode ?: arg_job_mode; + + one_name = action_table[action].target; + } else { +@@ -2734,7 +2737,7 @@ static int start_unit(sd_bus *bus, char **args) { + if (one_name) + names = strv_new(one_name, NULL); + else { +- r = expand_names(bus, args + 1, NULL, &names); ++ r = expand_names(bus, args + 1, suffix, &names); + if (r < 0) + log_error("Failed to expand names: %s", strerror(-r)); + } +-- +1.7.9.2 + diff --git a/0001-systemd-continue-switch-root-even-if-umount-fails.patch b/0001-systemd-continue-switch-root-even-if-umount-fails.patch new file mode 100644 index 00000000..e8b3ee9f --- /dev/null +++ b/0001-systemd-continue-switch-root-even-if-umount-fails.patch @@ -0,0 +1,50 @@ +Based on d677d4df80e0ea1c66c691f50867fedd63c6770a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 16 Oct 2014 19:12:55 -0500 +Subject: [PATCH] systemd: continue switch-root even if umount fails + +Leaving the old root around seems better than aborting the +switch. +--- + src/core/main.c | 2 +- + src/core/switch-root.c | 11 +++++------ + 2 files changed, 6 insertions(+), 7 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-10-20 13:35:35.915837828 +0000 +@@ -1848,7 +1848,7 @@ finish: + /* And switch root */ + r = switch_root(switch_root_dir); + if (r < 0) +- log_error("Failed to switch root, ignoring: %s", strerror(-r)); ++ log_error("Failed to switch root, trying to continue: %s", strerror(-r)); + } + + args_size = MAX(6, argc+1); +--- src/core/switch-root.c ++++ src/core/switch-root.c 2014-10-20 13:39:58.167121460 +0000 +@@ -68,10 +68,9 @@ int switch_root(const char *new_root) { + goto fail; + } + +- /* Work-around for a kernel bug: for some reason the kernel +- * refuses switching root if any file systems are mounted +- * MS_SHARED. Hence remount them MS_PRIVATE here as a +- * work-around. ++ /* Work-around for kernel design: the kernel refuses switching ++ * root if any file systems are mounted MS_SHARED. Hence ++ * remount them MS_PRIVATE here as a work-around. + * + * https://bugzilla.redhat.com/show_bug.cgi?id=847418 */ + if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) +@@ -124,8 +123,8 @@ int switch_root(const char *new_root) { + * running off it we need to do this lazily. */ + if (umount2("/mnt", MNT_DETACH) < 0) { + r = -errno; +- log_error("Failed to umount old root dir /mnt: %m"); +- goto fail; ++ log_error("Failed to lazily umount old root dir /mnt, %s: %m", ++ errno == ENOENT ? "ignoring" : "leaving it around"); + } + + } else if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { diff --git a/0001-tmpfiles-compare-return-against-correct-errno.patch b/0001-tmpfiles-compare-return-against-correct-errno.patch new file mode 100644 index 00000000..10c2e214 --- /dev/null +++ b/0001-tmpfiles-compare-return-against-correct-errno.patch @@ -0,0 +1,26 @@ +From e7aab5412829ed6b50d109f670bd0b1b365838a7 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sat, 11 Oct 2014 20:35:06 -0400 +Subject: [PATCH] tmpfiles: compare return against correct errno + +name_to_handle_at returns -EOPNOTSUPP, not -ENOTSUP. +--- + src/tmpfiles/tmpfiles.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index dafb9ae..8108b43 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -259,7 +259,7 @@ static int dir_is_mount_point(DIR *d, const char *subdir) { + + /* got only one handle; assume different mount points if one + * of both queries was not supported by the filesystem */ +- if (r_p == -ENOSYS || r_p == -ENOTSUP || r == -ENOSYS || r == -ENOTSUP) ++ if (r_p == -ENOSYS || r_p == -EOPNOTSUPP || r == -ENOSYS || r == -EOPNOTSUPP) + return true; + + /* return error */ +-- +1.7.9.2 + diff --git a/0001-units-introduce-network-pre.target-as-place-to-hook-.patch b/0001-units-introduce-network-pre.target-as-place-to-hook-.patch new file mode 100644 index 00000000..ffbc0569 --- /dev/null +++ b/0001-units-introduce-network-pre.target-as-place-to-hook-.patch @@ -0,0 +1,126 @@ +From a4a878d04045b46fa9783664e3643a890b356790 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Jun 2014 11:33:02 +0200 +Subject: [PATCH] units: introduce network-pre.target as place to hook in + firewalls + +network-pre.target is a passive target that should be pulled in by +services that want to be executed before any network is configured (for +example: firewall scrips). + +network-pre.target should be ordered before all network managemet +services (but not be pulled in by them). + +network-pre.target should be order after all services that want to be +executed before any network is configured (and be pulled in by them). +--- + Makefile.am | 1 + + man/systemd.special.xml | 15 +++++++++++++++ + units/local-fs.target | 2 -- + units/network-pre.target | 12 ++++++++++++ + units/network.target | 2 ++ + units/systemd-networkd.service.in | 2 +- + 6 files changed, 31 insertions(+), 3 deletions(-) + create mode 100644 units/network-pre.target + +diff --git Makefile.am Makefile.am +index 3ea95e9..8514ec9 100644 +--- Makefile.am ++++ Makefile.am +@@ -413,6 +413,7 @@ dist_systemunit_DATA = \ + units/remote-fs.target \ + units/remote-fs-pre.target \ + units/network.target \ ++ units/network-pre.target \ + units/network-online.target \ + units/nss-lookup.target \ + units/nss-user-lookup.target \ +diff --git man/systemd.special.xml man/systemd.special.xml +index 38b94a7..cda6edd 100644 +--- man/systemd.special.xml ++++ man/systemd.special.xml +@@ -72,6 +72,7 @@ + multi-user.target, + network.target, + network-online.target, ++ network-pre.target, + nss-lookup.target, + nss-user-lookup.target, + paths.target, +@@ -891,6 +892,20 @@ + + + ++ network-pre.target ++ ++ This passive target unit ++ may be pulled in by services ++ that want to run before any ++ network is set up, for example ++ for the purpose of setting up a ++ firewall. All network ++ management software orders ++ itself after this target, but ++ does not pull it in. ++ ++ ++ + nss-lookup.target + + A target that should be +diff --git units/local-fs.target units/local-fs.target +index ae3cedc..70cb13f 100644 +--- units/local-fs.target ++++ units/local-fs.target +@@ -9,7 +9,5 @@ + Description=Local File Systems + Documentation=man:systemd.special(7) + After=local-fs-pre.target +-DefaultDependencies=no +-Conflicts=shutdown.target + OnFailure=emergency.target + OnFailureJobMode=replace-irreversibly +diff --git units/network-pre.target units/network-pre.target +new file mode 100644 +index 0000000..0ea4bc7 +--- /dev/null ++++ units/network-pre.target +@@ -0,0 +1,12 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++[Unit] ++Description=Network (Pre) ++Documentation=man:systemd.special(7) ++Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget ++RefuseManualStart=yes +diff --git units/network.target units/network.target +index 65fc64b..61ebdca 100644 +--- units/network.target ++++ units/network.target +@@ -9,3 +9,5 @@ + Description=Network + Documentation=man:systemd.special(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget ++After=network-pre.target ++RefuseManualStart=yes +diff --git units/systemd-networkd.service.in units/systemd-networkd.service.in +index 373ac4e..48f4d63 100644 +--- units/systemd-networkd.service.in ++++ units/systemd-networkd.service.in +@@ -9,7 +9,7 @@ + Description=Network Service + Documentation=man:systemd-networkd.service(8) + DefaultDependencies=no +-After=dbus.service ++After=dbus.service network-pre.target + Before=network.target + Wants=network.target + ConditionCapability=CAP_NET_ADMIN +-- +1.7.9.2 + diff --git a/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch b/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch new file mode 100644 index 00000000..a5358cc9 --- /dev/null +++ b/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch @@ -0,0 +1,25 @@ +From 893e72da6b27c21b102e1589276e651e9e4f591c Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 9 Sep 2014 18:14:25 +0200 +Subject: [PATCH] virt: detect that we are running inside the docker container + +--- + src/shared/virt.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/shared/virt.c src/shared/virt.c +index b436895..f9c4e67 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -310,6 +310,8 @@ int detect_container(const char **id) { + _id = "lxc-libvirt"; + else if (streq(e, "systemd-nspawn")) + _id = "systemd-nspawn"; ++ else if (streq(e, "docker")) ++ _id = "docker"; + else + _id = "other"; + +-- +1.7.9.2 + diff --git a/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch b/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch new file mode 100644 index 00000000..8c1b12e2 --- /dev/null +++ b/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch @@ -0,0 +1,31 @@ +From 1c92ff85b786c423f4436ec26007e79369c9ac05 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 26 Sep 2014 22:01:32 +0200 +Subject: [PATCH] bootchart: use 'n/a' if PRETTY_NAME is not found + +Spotted with coverity. If parsing both /etc/os-release and +/usr/lib/os-release fails then null would be passed on. The calls +to parse the two files are allowed to fail. A empty /etc may not +have had the /etc/os-release symlink restored yet and we just +try again in the loop. If for whatever reason that does not happen +then we now pass on 'n/a' instead of null. +--- + src/bootchart/bootchart.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c +index 366a5ab..813e38d 100644 +--- src/bootchart/bootchart.c ++++ src/bootchart/bootchart.c +@@ -471,7 +471,7 @@ int main(int argc, char *argv[]) { + exit (EXIT_FAILURE); + } + +- svg_do(build); ++ svg_do(strna(build)); + + fprintf(stderr, "systemd-bootchart wrote %s\n", output_file); + +-- +1.7.9.2 + diff --git a/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch b/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch new file mode 100644 index 00000000..3a136da5 --- /dev/null +++ b/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch @@ -0,0 +1,23 @@ +Based on 4c3f1641f13b7687a0dc234d3ae387b7c40494ff Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 19 Nov 2014 20:52:23 +0100 +Subject: [PATCH] core: watchdog bus properties cannot be both writable and + constant + +--- + src/core/dbus-manager.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c 2014-11-20 13:43:06.781518488 +0000 +@@ -1599,8 +1599,8 @@ const sd_bus_vtable bus_manager_vtable[] + SD_BUS_PROPERTY("UnitPath", "as", NULL, offsetof(Manager, lookup_paths.unit_path), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("DefaultStandardOutput", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("DefaultStandardError", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), +- SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), +- SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), ++ SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), 0), ++ SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), 0), + SD_BUS_PROPERTY("ControlGroup", "s", NULL, offsetof(Manager, cgroup_root), 0), + + SD_BUS_METHOD("GetUnit", "s", "o", method_get_unit, SD_BUS_VTABLE_UNPRIVILEGED), diff --git a/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch b/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch new file mode 100644 index 00000000..8304b2d4 --- /dev/null +++ b/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch @@ -0,0 +1,42 @@ +From fc1ae82cae69d8dbbd9e7a31938810a486fac782 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Oct 2014 14:09:21 +0200 +Subject: [PATCH] hwdb: Add mapping for special keys on compaq ku 0133 + keyboards + +The compaq ku 0133 keyboard has 8 special keys at the top: +http://lackof.org/taggart/hacking/keyboard/cpqwireless.jpg + +3 of these use standard HID usage codes from the consumer page, the 5 +others use part of the reserved 0x07 - 0x1f range. + +This commit adds mapping for this keyboard for these reserved codes, making +the other 5 keys work. + +Cc: Hans de Goede +Signed-off-by: Hans de Goede +--- + hwdb/60-keyboard.hwdb | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 59f467b..06caba9 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -181,6 +181,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:pvr* + KEYBOARD_KEY_9e=email + KEYBOARD_KEY_9f=homepage + ++keyboard:usb:v049Fp0051d*dc*dsc*dp*ic*isc*ip*in01* ++ KEYBOARD_KEY_0c0011=presentation ++ KEYBOARD_KEY_0c0012=addressbook ++ KEYBOARD_KEY_0c0013=info ++ KEYBOARD_KEY_0c0014=prog1 ++ KEYBOARD_KEY_0c0015=messenger ++ + ########################################################### + # Dell + ########################################################### +-- +1.7.9.2 + diff --git a/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch b/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch new file mode 100644 index 00000000..28f7bb2a --- /dev/null +++ b/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch @@ -0,0 +1,33 @@ +From b4c72e52d2109fe7f0ac3440c81ae3e1ce64a143 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 12 Nov 2014 23:31:08 +0100 +Subject: [PATCH] keymap: Fix special keys on ThinkPad X60/X61 Tablet + +KEY_DIRECTION is mapped to XF86RotateWindows, to rotate the display: +http://cgit.freedesktop.org/xkeyboard-config/commit/symbols/inet?id=ec875f6f9b7c4028e11d32b071989c682e6502bd + +And F13 is mapped to XF86Tools, which is closest to the original toolbox +usage: +http://cgit.freedesktop.org/xkeyboard-config/tree/symbols/inet?id=7a2c4bed212ebbcc05f3c959aef659ce7dd31fd8#n221 +--- + hwdb/60-keyboard.hwdb | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 56a4009..533ad5b 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -585,8 +585,8 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* + + # ThinkPad X6 Tablet + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* +- KEYBOARD_KEY_6c=f21 # rotate +- KEYBOARD_KEY_68=screenlock # screenlock ++ KEYBOARD_KEY_6c=direction # rotate ++ KEYBOARD_KEY_68=f13 # toolbox + KEYBOARD_KEY_6b=esc # escape + KEYBOARD_KEY_6d=right # right on d-pad + KEYBOARD_KEY_6e=left # left on d-pad +-- +1.7.9.2 + diff --git a/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch b/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch new file mode 100644 index 00000000..45af9018 --- /dev/null +++ b/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch @@ -0,0 +1,25 @@ +From 4e3deeedc15b03197d591850061316289245c9a9 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Tue, 7 Oct 2014 11:22:31 +0200 +Subject: [PATCH] keymap: Fix touchpad toggle key on Asus laptops + +https://launchpad.net/bugs/1377352 +--- + hwdb/60-keyboard.hwdb | 1 + + 1 file changed, 1 insertion(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 1fea32a..59f467b 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -153,6 +153,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* + + keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* + keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* ++keyboard:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* + KEYBOARD_KEY_6b=f21 # Touchpad Toggle + + ########################################################### +-- +1.7.9.2 + diff --git a/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch b/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch new file mode 100644 index 00000000..e29c01d9 --- /dev/null +++ b/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch @@ -0,0 +1,41 @@ +From aba248ee6b1eb10baf3d89eca2ad7569459af6ab Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 30 Oct 2014 10:15:54 +0100 +Subject: [PATCH] keymap: Ignore brightness keys on Dell Inspiron 1520 to + avoid double events + +On the Dell Inspiron 1520 both the atkbd and acpi-video input devices report +an event for pressing the brightness up / down key-combos, resulting in user +space seeing double events and increasing / decreasing the brightness 2 steps +for each keypress. + +This hwdb snippet suppresses the atkbd events, making the Inspiron 1520 work +like most modern laptops which emit brightness up / down events through +acpi-video only. + +Reported by Pavel Malyshev + +https://bugzilla.redhat.com/show_bug.cgi?id=1141525 +--- + hwdb/60-keyboard.hwdb | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 06caba9..d2ca965 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -230,6 +230,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:pvr* + KEYBOARD_KEY_84=wlan + ++# Dell Inspiron 1520 ++keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:pvr* ++ KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore ++ KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore ++ + # Latitude XT2 + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*XT2:pvr* + KEYBOARD_KEY_9b=up # tablet rocker up +-- +1.7.9.2 + diff --git a/0002-logind-add-support-for-TPS65217-Power-Button.patch b/0002-logind-add-support-for-TPS65217-Power-Button.patch new file mode 100644 index 00000000..17a576de --- /dev/null +++ b/0002-logind-add-support-for-TPS65217-Power-Button.patch @@ -0,0 +1,71 @@ +From 492d7a3038b154e1813a1ece913a5a27148fec19 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Sat, 27 Sep 2014 09:55:44 +0200 +Subject: [PATCH] logind: add support for TPS65217 Power Button + +This PMIC is found on TI AM335x based boards like the beaglebone and +beaglebone black. + +root@beaglebone-white:~# udevadm info -a /dev/input/event0 + +Udevadm info starts with the device specified by the devpath and then +walks up the chain of parent devices. It prints for every device +found, all possible attributes in the udev rules key format. +A rule to match, can be composed by the attributes of the device +and the attributes from one single parent device. + + looking at device +'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0/event0': + KERNEL=="event0" + SUBSYSTEM=="input" + DRIVER=="" + + looking at parent device +'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0': + KERNELS=="input0" + SUBSYSTEMS=="input" + DRIVERS=="" + ATTRS{name}=="tps65217_pwr_but" + ATTRS{phys}=="" + ATTRS{uniq}=="" + ATTRS{properties}=="0" + + looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024': + KERNELS=="0-0024" + SUBSYSTEMS=="i2c" + DRIVERS=="tps65217" + ATTRS{name}=="tps65217" + + looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0': + KERNELS=="i2c-0" + SUBSYSTEMS=="i2c" + DRIVERS=="" + ATTRS{name}=="OMAP I2C adapter" + + looking at parent device '/devices/ocp.3/44e0b000.i2c': + KERNELS=="44e0b000.i2c" + SUBSYSTEMS=="platform" + DRIVERS=="omap_i2c" + + looking at parent device '/devices/ocp.3': + KERNELS=="ocp.3" + SUBSYSTEMS=="platform" + DRIVERS=="" +--- + src/login/70-power-switch.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules +index a6997f7..695d246 100644 +--- src/login/70-power-switch.rules ++++ src/login/70-power-switch.rules +@@ -10,5 +10,6 @@ ACTION=="remove", GOTO="power_switch_end" + SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" ++SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" + + LABEL="power_switch_end" +-- +1.7.9.2 + diff --git a/0002-shell-completion-propose-templates-for-disable-re-en.patch b/0002-shell-completion-propose-templates-for-disable-re-en.patch new file mode 100644 index 00000000..3a58e013 --- /dev/null +++ b/0002-shell-completion-propose-templates-for-disable-re-en.patch @@ -0,0 +1,111 @@ +Based on e9a19bd882ff8a2c8aef5c63b39525ea231e5fb9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 14 Oct 2014 21:10:02 -0400 +Subject: [PATCH] shell-completion: propose templates for + disable/[re]enable/[re]start + +Templates can be [re]enabled, on their own if the have DefaultInstance set, +and with an instance suffix in all cases. Propose just the template name +ending in @, to underline the instance suffix may have to be appended. + +Likewise for start/restart. + +This means that sometimes superflous units that one will not really +want to operate on will be proposed, but this seems better than +proposing a very incomplete set of names. + +https://bugs.freedesktop.org/show_bug.cgi?id=66912 +--- + shell-completion/bash/systemctl | 15 +++++++++++---- + shell-completion/zsh/_systemctl | 20 +++++++++++++------- + 2 files changed, 24 insertions(+), 11 deletions(-) + +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -53,6 +53,9 @@ __filter_units_by_property () { + + __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ + | { while read -r a b; do echo " $a"; done; }; } ++__get_template_names () { __systemctl $1 list-unit-files \ ++ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; } ++ + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } + __get_startable_units () { +@@ -169,22 +172,26 @@ _systemctl () { + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then +- comps=$( __get_disabled_units $mode ) ++ comps=$( __get_disabled_units $mode; ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then + comps=$( __get_disabled_units $mode; +- __get_enabled_units $mode ) ++ __get_enabled_units $mode; ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +- $( __get_startable_units $mode)) ++ $( __get_startable_units $mode); ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +- $( __get_restartable_units $mode)) ++ $( __get_restartable_units $mode); \ ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then +--- shell-completion/zsh/_systemctl ++++ shell-completion/zsh/_systemctl +@@ -139,6 +139,8 @@ _filter_units_by_property() { + } + + _systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } ++_systemctl_get_template_names() { __systemctl list-unit-files | { while read -r a b; do [[ $a =~ @\. ]] && echo -E - " ${a%%@.*}@"; done; } } ++ + + _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} + _systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} +@@ -158,20 +160,24 @@ for fun in is-active is-failed is-enabled status show cat mask preset help list- + done + + # Completion functions for ENABLED_UNITS +-for fun in disable reenable ; do +- (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() +- { ++(( $+functions[_systemctl_disable] )) || _systemctl_disable() ++{ ++ _systemctl_enabled_units ++ compadd "$@" -a - _sys_enabled_units ++} ++ ++(( $+functions[_systemctl_reenable] )) || _systemctl_reenable() ++{ + _systemctl_enabled_units + _systemctl_disabled_units +- compadd "$@" -a - _sys_enabled_units _sys_disabled_units +- } +-done ++ compadd "$@" -a - _sys_enabled_units _sys_disabled_units $(_systemctl_get_template_names) ++} + + # Completion functions for DISABLED_UNITS + (( $+functions[_systemctl_enable] )) || _systemctl_enable() + { + _systemctl_disabled_units +- compadd "$@" -a - _sys_disabled_units ++ compadd "$@" -a - _sys_disabled_units $(_systemctl_get_template_names) + } + + # Completion functions for FAILED_UNITS +-- +1.7.9.2 + diff --git a/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch b/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch new file mode 100644 index 00000000..12ad7d2d --- /dev/null +++ b/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch @@ -0,0 +1,70 @@ +Based on 4b5d8d0f22ae61ceb45a25391354ba53b43ee992 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 6 Nov 2014 22:24:13 +0100 +Subject: [PATCH] shutdown: fix arguments to /run/initramfs/shutdown + +Our initrd interface specifies that the verb is in argv[1]. +This is where systemd passes it to systemd-shutdown, but getopt +permutes argv[]. This confuses dracut's shutdown script: + Shutdown called with argument '--log-level'. Rebooting! + +getopt can be convinced to not permute argv[] by having '-' as the first +character of optstring. Let's use it. This requires changing the way +non-option arguments (in our case, the verb) are processed. + +This fixes a bug where the system would reboot instead of powering off. +--- + src/core/shutdown.c | 24 +++++++++++------------- + 1 file changed, 11 insertions(+), 13 deletions(-) + +--- src/core/shutdown.c ++++ src/core/shutdown.c 2014-11-10 14:14:20.869519112 +0000 +@@ -75,9 +75,9 @@ static int parse_argv(int argc, char *ar + assert(argc >= 1); + assert(argv); + +- opterr = 0; +- +- while ((c = getopt_long(argc, argv, ":", options, NULL)) >= 0) ++ /* "-" prevents getopt from permuting argv[] and moving the verb away ++ * from argv[1]. Our interface to initrd promises it'll be there. */ ++ while ((c = getopt_long(argc, argv, "-", options, NULL)) >= 0) + switch (c) { + + case ARG_LOG_LEVEL: +@@ -115,27 +115,25 @@ static int parse_argv(int argc, char *ar + + break; + +- case '?': +- log_error("Unknown option %s.", argv[optind-1]); +- return -EINVAL; ++ case '\001': ++ if (!arg_verb) ++ arg_verb = optarg; ++ else ++ log_error("Excess arguments, ignoring"); ++ break; + +- case ':': +- log_error("Missing argument to %s.", argv[optind-1]); ++ case '?': + return -EINVAL; + + default: + assert_not_reached("Unhandled option code."); + } + +- if (optind >= argc) { ++ if (!arg_verb) { + log_error("Verb argument missing."); + return -EINVAL; + } + +- arg_verb = argv[optind]; +- +- if (optind + 1 < argc) +- log_error("Excess arguments, ignoring"); + return 0; + } + diff --git a/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch b/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch new file mode 100644 index 00000000..73a98020 --- /dev/null +++ b/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch @@ -0,0 +1,36 @@ +Based on a2726e5cedfa5edeabd7e0784be11bc578555ac5 Mon Sep 17 00:00:00 2001 +From: Marius Tessmann +Date: Fri, 29 Aug 2014 17:51:45 +0200 +Subject: [PATCH] shutdown: pass own argv to /run/initramfs/shutdown + +Since commit b1e90ec515408aec2702522f6f68c4920b56375b systemd passes +its log settings to systemd-shutdown via command line parameters. +However, systemd-shutdown doesn't pass these parameters to +/run/initramfs/shutdown, causing it to fall back to the default log +settings. + +This fixes the following bugs about the shutdown not being quiet +despite "quiet" being in the kernel parameters: + +https://bugs.freedesktop.org/show_bug.cgi?id=79582 +https://bugs.freedesktop.org/show_bug.cgi?id=57216 +--- + src/core/shutdown.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/shutdown.c ++++ src/core/shutdown.c 2014-10-24 12:32:44.704337960 +0000 +@@ -377,11 +377,11 @@ int main(int argc, char *argv[]) { + + if (prepare_new_root() >= 0 && + pivot_to_new_root() >= 0) { +- arguments[0] = (char*) "/shutdown"; ++ argv[0] = (char*) "/shutdown"; + + log_info("Returning to initrd..."); + +- execv("/shutdown", arguments); ++ execv("/shutdown", argv); + log_error("Failed to execute shutdown binary: %m"); + } + } diff --git a/0002-snapshot-return-error-when-snapshot-exists.patch b/0002-snapshot-return-error-when-snapshot-exists.patch new file mode 100644 index 00000000..4a7fcfb3 --- /dev/null +++ b/0002-snapshot-return-error-when-snapshot-exists.patch @@ -0,0 +1,25 @@ +From 7cabba07745b388497e8c0fc19b61984167fd474 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 28 Oct 2014 12:36:17 -0400 +Subject: [PATCH] snapshot: return error when snapshot exists + +--- + src/core/snapshot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/snapshot.c src/core/snapshot.c +index 5eed615..c2678cb 100644 +--- src/core/snapshot.c ++++ src/core/snapshot.c +@@ -208,7 +208,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, sd_bus_error *e, + return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Unit name %s lacks snapshot suffix.", name); + + if (manager_get_unit(m, name)) +- sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); ++ return sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); + + } else { + +-- +1.7.9.2 + diff --git a/0002-systemctl-obey-state-in-list-unit-files.patch b/0002-systemctl-obey-state-in-list-unit-files.patch new file mode 100644 index 00000000..aaa1cbf3 --- /dev/null +++ b/0002-systemctl-obey-state-in-list-unit-files.patch @@ -0,0 +1,28 @@ +From fec1530e6b5b8d6dc352c7338010357126e84621 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 29 Oct 2014 22:51:00 -0400 +Subject: [PATCH] systemctl: obey --state in list-unit-files + +--- + src/systemctl/systemctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index b71040b..8481a9b 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -1268,6 +1268,11 @@ next: + return false; + } + ++ if (!strv_isempty(arg_states)) { ++ if (!strv_find(arg_states, unit_file_state_to_string(u->state))) ++ return false; ++ } ++ + return true; + } + +-- +1.7.9.2 + diff --git a/0002-systemd-try-harder-to-bind-to-notify-socket.patch b/0002-systemd-try-harder-to-bind-to-notify-socket.patch new file mode 100644 index 00000000..d0277386 --- /dev/null +++ b/0002-systemd-try-harder-to-bind-to-notify-socket.patch @@ -0,0 +1,44 @@ +Based on e7bc519620cb7bcdbe2166fc2a446453769d827e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 16 Oct 2014 19:15:38 -0500 +Subject: [PATCH] systemd: try harder to bind to notify socket + +Without the socket open we are going to crash and burn. If for +whatever reason we fail during deserialization we will fail when +trying to open the socket. In this case it is better to unlink the old +socket and maybe lose some messages, than to continue without the +notification socket. + +Of course this situation should not happen, but we should handle +it as gracefully as possible anyway. + +https://bugzilla.redhat.com/show_bug.cgi?id=1099299 +--- + src/core/manager.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-10-20 13:47:21.035837897 +0000 +@@ -572,7 +572,21 @@ static int manager_setup_notify(Manager + r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); + if (r < 0) { + log_error("bind(@%s) failed: %m", sa.un.sun_path+1); +- return -errno; ++ if (errno == EADDRINUSE) { ++ log_notice("Removing %s socket and trying again.", m->notify_socket); ++ r = unlink(m->notify_socket); ++ if (r < 0) { ++ log_error("Failed to remove %s: %m", m->notify_socket); ++ return -EADDRINUSE; ++ } ++ ++ r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)); ++ if (r < 0) { ++ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); ++ return -errno; ++ } ++ } else ++ return -errno; + } + + r = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); diff --git a/0002-time-also-support-infinity-syntax-in-parse_nsec.patch b/0002-time-also-support-infinity-syntax-in-parse_nsec.patch new file mode 100644 index 00000000..c1f4884c --- /dev/null +++ b/0002-time-also-support-infinity-syntax-in-parse_nsec.patch @@ -0,0 +1,40 @@ +Based on e73c78c27511b03c7abc55aed87896092c0de699 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 19:07:26 +0200 +Subject: [PATCH] time: also support 'infinity' syntax in parse_nsec() + +Let's make parse_usec() and parse_nsec() work similar +--- + src/shared/time-util.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +--- src/shared/time-util.c ++++ src/shared/time-util.c +@@ -773,7 +773,7 @@ int parse_nsec(const char *t, nsec_t *nsec) { + { "", 1ULL }, /* default is nsec */ + }; + +- const char *p; ++ const char *p, *s; + nsec_t r = 0; + bool something = false; + +@@ -781,6 +781,18 @@ int parse_nsec(const char *t, nsec_t *nsec) { + assert(nsec); + + p = t; ++ ++ p += strspn(p, WHITESPACE); ++ s = startswith(p, "infinity"); ++ if (s) { ++ s += strspn(s, WHITESPACE); ++ if (!*s != 0) ++ return -EINVAL; ++ ++ *nsec = ((nsec_t) -1); ++ return 0; ++ } ++ + for (;;) { + long long l, z = 0; + char *e; diff --git a/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch b/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch new file mode 100644 index 00000000..7fab49e6 --- /dev/null +++ b/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch @@ -0,0 +1,29 @@ +From 24119cf10c7ed58a8fc0851745149dcc6dd5757f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Mon, 29 Sep 2014 22:32:10 -0400 +Subject: [PATCH] udev/hwdb: New Entry for Dell XPS12 9Q33 keyboard + +https://bugs.freedesktop.org/show_bug.cgi?id=84437 +--- + hwdb/60-keyboard.hwdb | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 0ffcb83..8a1baa7 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -243,6 +243,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + KEYBOARD_KEY_8c=!unknown + ++# Dell XPS12 9Q33 ++keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* ++ KEYBOARD_KEY_88=wlan ++ KEYBOARD_KEY_65=switchvideomode # Screen Rotate ++ + # Dell Latitude microphone mute + keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* + KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute +-- +1.7.9.2 + diff --git a/0003-bootchart-parse-userinput-with-safe_atoi.patch b/0003-bootchart-parse-userinput-with-safe_atoi.patch new file mode 100644 index 00000000..16378405 --- /dev/null +++ b/0003-bootchart-parse-userinput-with-safe_atoi.patch @@ -0,0 +1,34 @@ +From 9bcf7507fab6e6b022ae3cc7178237e6e0a09e9a Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 26 Sep 2014 21:41:02 +0200 +Subject: [PATCH] bootchart: parse userinput with safe_atoi + +Found by coverity. Fixes: CID#996409 +--- + src/bootchart/store.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git src/bootchart/store.c src/bootchart/store.c +index ed683e8..3099ff1 100644 +--- src/bootchart/store.c ++++ src/bootchart/store.c +@@ -192,12 +192,14 @@ vmstat_next: + + m = buf; + while (m) { ++ int r; ++ + if (sscanf(m, "%s %*s %*s %*s %*s %*s %*s %s %s", key, rt, wt) < 3) + goto schedstat_next; + + if (strstr(key, "cpu")) { +- c = atoi((const char*)(key+3)); +- if (c > MAXCPUS) ++ r = safe_atoi((const char*)(key+3), &c); ++ if (r < 0 || c > MAXCPUS) + /* Oops, we only have room for MAXCPUS data */ + break; + sampledata->runtime[c] = atoll(rt); +-- +1.7.9.2 + diff --git a/0003-fileio-label-return-error-when-writing-fails.patch b/0003-fileio-label-return-error-when-writing-fails.patch new file mode 100644 index 00000000..91ea97d9 --- /dev/null +++ b/0003-fileio-label-return-error-when-writing-fails.patch @@ -0,0 +1,30 @@ +Based on 754fc0c720eb998b8e47e695c12807ced0ff3602 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Oct 2014 08:58:40 -0400 +Subject: [PATCH] fileio-label: return error when writing fails + +The status of actually writing the file was totally ignored. +--- + src/shared/fileio-label.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/shared/fileio-label.c ++++ src/shared/fileio-label.c 2014-10-14 14:52:50.883837740 +0000 +@@ -33,7 +33,7 @@ int write_string_file_atomic_label(const + if (r < 0) + return r; + +- write_string_file_atomic(fn, line); ++ r = write_string_file_atomic(fn, line); + + label_context_clear(); + +@@ -47,7 +47,7 @@ int write_env_file_label(const char *fna + if (r < 0) + return r; + +- write_env_file(fname, l); ++ r = write_env_file(fname, l); + + label_context_clear(); + diff --git a/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch b/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch new file mode 100644 index 00000000..c88ed60b --- /dev/null +++ b/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch @@ -0,0 +1,41 @@ +From f2a474aea8f82fa9b695515d4590f4f3398358a7 Mon Sep 17 00:00:00 2001 +From: Juho Son +Date: Thu, 11 Sep 2014 16:06:38 +0900 +Subject: [PATCH] journald: add CAP_MAC_OVERRIDE in journald for SMACK issue + +systemd-journald check the cgroup id to support rate limit option for +every messages. so journald should be available to access cgroup node in +each process send messages to journald. +In system using SMACK, cgroup node in proc is assigned execute label +as each process's execute label. +so if journald don't want to denied for every process, journald +should have all of access rule for all process's label. +It's too heavy. so we could give special smack label for journald te get +all accesses's permission. +'^' label. +When assign '^' execute smack label to systemd-journald, +systemd-journald need to add CAP_MAC_OVERRIDE capability to get that smack privilege. + +so I want to notice this information and set default capability to +journald whether system use SMACK or not. +because that capability affect to only smack enabled kernel +--- + units/systemd-journald.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git units/systemd-journald.service.in units/systemd-journald.service.in +index 7013979..4de38fa 100644 +--- units/systemd-journald.service.in ++++ units/systemd-journald.service.in +@@ -20,7 +20,7 @@ Restart=always + RestartSec=0 + NotifyAccess=all + StandardOutput=null +-CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID ++CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_MAC_OVERRIDE + WatchdogSec=1min + + # Increase the default a bit in order to allow many simultaneous +-- +1.7.9.2 + diff --git a/0003-man-we-don-t-have-Wanted-dependency.patch b/0003-man-we-don-t-have-Wanted-dependency.patch new file mode 100644 index 00000000..6ab1a897 --- /dev/null +++ b/0003-man-we-don-t-have-Wanted-dependency.patch @@ -0,0 +1,29 @@ +From 3e883473a0f36c220fc45ecf61d6878c9ac308b4 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 15 Oct 2014 09:28:31 +0200 +Subject: [PATCH] man: we don't have 'Wanted' dependency + +--- + man/systemd.unit.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index e9395ff..88c9d7f 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -181,10 +181,10 @@ + foo.service.wants/ may exist. All + unit files symlinked from such a directory are + implicitly added as dependencies of type +- Wanted= to the unit. This is useful ++ Wants= to the unit. This is useful + to hook units into the start-up of other units, + without having to modify their unit files. For details +- about the semantics of Wanted=, see ++ about the semantics of Wants=, see + below. The preferred way to create symlinks in the + .wants/ directory of a unit file + is with the enable command of the +-- +1.7.9.2 + diff --git a/0003-sd-bus-check-return-value-of-vasprintf.patch b/0003-sd-bus-check-return-value-of-vasprintf.patch new file mode 100644 index 00000000..c908f074 --- /dev/null +++ b/0003-sd-bus-check-return-value-of-vasprintf.patch @@ -0,0 +1,35 @@ +From 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Tue, 7 Oct 2014 12:10:06 +0200 +Subject: [PATCH] sd-bus: check return value of vasprintf + +Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv(). + +Spotted by coverity. +--- + src/libsystemd/sd-bus/bus-error.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c +index abdfd73..5ca974a 100644 +--- src/libsystemd/sd-bus/bus-error.c ++++ src/libsystemd/sd-bus/bus-error.c +@@ -194,8 +194,13 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li + return -ENOMEM; + } + +- if (format) +- vasprintf((char**) &e->message, format, ap); ++ if (format) { ++ int r; ++ ++ r = vasprintf((char**) &e->message, format, ap); ++ if (r < 0) ++ return -ENOMEM; ++ } + + e->_need_free = 1; + +-- +1.7.9.2 + diff --git a/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch b/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch new file mode 100644 index 00000000..13b0da4b --- /dev/null +++ b/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch @@ -0,0 +1,29 @@ +From 9b772efb41c2d9f743ba5e96804bdf89b12630d8 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 19 Nov 2014 20:52:47 +0100 +Subject: [PATCH] sd-bus: refuse properties that claim to be both writable and + constant at the same time + +--- + src/libsystemd/sd-bus/bus-objects.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/libsystemd/sd-bus/bus-objects.c src/libsystemd/sd-bus/bus-objects.c +index 0ab1119..7981d65 100644 +--- src/libsystemd/sd-bus/bus-objects.c ++++ src/libsystemd/sd-bus/bus-objects.c +@@ -1682,6 +1682,11 @@ static int add_object_vtable_internal( + goto fail; + } + ++ if (v->flags & SD_BUS_VTABLE_PROPERTY_CONST) { ++ r = -EINVAL; ++ goto fail; ++ } ++ + /* Fall through */ + + case _SD_BUS_VTABLE_PROPERTY: { +-- +1.7.9.2 + diff --git a/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch b/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch new file mode 100644 index 00000000..7aa3506a --- /dev/null +++ b/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch @@ -0,0 +1,39 @@ +From 0ffce503cd6e5a5ff5ba5cd1cc23684cfb8bb9e3 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Thu, 30 Oct 2014 20:12:05 -0400 +Subject: [PATCH] shared/install: avoid prematurely rejecting "missing" units + +f7101b7368df copied some logic to prevent enabling masked units, but +also added a check which causes attempts to enable templated units to +fail. Since we know the logic beyond this check will properly handle +units which truly do not exist, we can rely on the unit file state +comparison to suffice for expressing the intent of f7101b7368df. + +ref: https://bugs.archlinux.org/task/42616 +--- + src/shared/install.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git src/shared/install.c src/shared/install.c +index 035b44c..cab93e8 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -1620,12 +1620,10 @@ int unit_file_enable( + STRV_FOREACH(i, files) { + UnitFileState state; + ++ /* We only want to know if this unit is masked, so we ignore ++ * errors from unit_file_get_state, deferring other checks. ++ * This allows templated units to be enabled on the fly. */ + state = unit_file_get_state(scope, root_dir, *i); +- if (state < 0) { +- log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); +- return state; +- } +- + if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { + log_error("Failed to enable unit: Unit %s is masked", *i); + return -ENOTSUP; +-- +1.7.9.2 + diff --git a/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch b/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch new file mode 100644 index 00000000..17cd7d1a --- /dev/null +++ b/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch @@ -0,0 +1,25 @@ +Based on 65de0395ffe1cfb0f9af86504e8588fb31bb0fbc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 19:08:22 +0200 +Subject: [PATCH] time: earlier exit from format_timestamp_relative() on + special times + +--- + src/shared/time-util.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- src/shared/time-util.c ++++ src/shared/time-util.c 2014-10-29 14:07:28.479838096 +0000 +@@ -194,11 +194,10 @@ char *format_timestamp_relative(char *bu + const char *s; + usec_t n, d; + +- n = now(CLOCK_REALTIME); +- + if (t <= 0 || (t == (usec_t) -1)) + return NULL; + ++ n = now(CLOCK_REALTIME); + if (n > t) { + d = n - t; + s = "ago"; diff --git a/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch b/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch new file mode 100644 index 00000000..bc69be20 --- /dev/null +++ b/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch @@ -0,0 +1,29 @@ +Based on 144b3d9e093dd9310cd9590bec039dc43a7e2ad6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 7 Nov 2014 16:34:00 +0100 +Subject: [PATCH] utf8: when looking at the next unichar, honour the size + parameter, in utf8_is_printable_newline() + +--- + src/shared/utf8.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- src/shared/utf8.c ++++ src/shared/utf8.c 2014-11-10 14:20:28.094539264 +0000 +@@ -143,9 +143,14 @@ bool utf8_is_printable_newline(const cha + + for (p = (const uint8_t*) str; length;) { + int encoded_len = utf8_encoded_valid_unichar((const char *)p); +- int val = utf8_encoded_to_unichar((const char*)p); ++ int val; + +- if (encoded_len < 0 || val < 0 || is_unicode_control(val) || ++ if (encoded_len < 0 || ++ (size_t) encoded_len > length) ++ return false; ++ ++ val = utf8_encoded_to_unichar((const char*)p); ++ if (val < 0 || is_unicode_control(val) || + (!newline && val == '\n')) + return false; + diff --git a/0004-Raise-level-of-Found-dependency.-lines.patch b/0004-Raise-level-of-Found-dependency.-lines.patch new file mode 100644 index 00000000..3ae2e49e --- /dev/null +++ b/0004-Raise-level-of-Found-dependency.-lines.patch @@ -0,0 +1,42 @@ +From 14fe721b5f6d8457cc8737fa75f2ed79e7fa534b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 12:10:42 -0500 +Subject: [PATCH] Raise level of 'Found dependency...' lines + +This way they always show up together with 'Found ordering cycle...'. +Ordering cycles are a serious error and a major pain to debug. If +quiet is enabled, only the first and the last line of output are +shown: + +systemd[1]: Found ordering cycle on basic.target/start +systemd[1]: Breaking ordering cycle by deleting job timers.target/start +systemd[1]: Job timers.target/start deleted to break ordering cycle starting with basic.target/start + +which isn't particularly enlightening. So just show the whole message +at the same level. + +https://bugzilla.redhat.com/show_bug.cgi?id=1158206 +--- + src/core/transaction.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/core/transaction.c src/core/transaction.c +index 488cb86..bbaa6da 100644 +--- src/core/transaction.c ++++ src/core/transaction.c +@@ -376,9 +376,9 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi + for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { + + /* logging for j not k here here to provide consistent narrative */ +- log_info_unit(j->unit->id, +- "Found dependency on %s/%s", +- k->unit->id, job_type_to_string(k->type)); ++ log_warning_unit(j->unit->id, ++ "Found dependency on %s/%s", ++ k->unit->id, job_type_to_string(k->type)); + + if (!delete && hashmap_get(tr->jobs, k->unit) && + !unit_matters_to_anchor(k->unit, k)) { +-- +1.7.9.2 + diff --git a/0004-bootchart-check-return-of-strftime.patch b/0004-bootchart-check-return-of-strftime.patch new file mode 100644 index 00000000..a629c9e9 --- /dev/null +++ b/0004-bootchart-check-return-of-strftime.patch @@ -0,0 +1,63 @@ +From e931d3f4241231e4102eda06adaf7cbfd68c6a5d Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 27 Sep 2014 22:25:07 +0200 +Subject: [PATCH] bootchart: check return of strftime + +Found by coverity. Fixes: CID#996314 and #996312 +--- + src/bootchart/bootchart.c | 8 ++++++-- + src/bootchart/svg.c | 5 +++-- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c +index 8ef5ad1..366a5ab 100644 +--- src/bootchart/bootchart.c ++++ src/bootchart/bootchart.c +@@ -389,7 +389,9 @@ int main(int argc, char *argv[]) { + + if (!of && (access(arg_output_path, R_OK|W_OK|X_OK) == 0)) { + t = time(NULL); +- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ assert_se(r > 0); ++ + snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); + of = fopen(output_file, "we"); + } +@@ -457,7 +459,9 @@ int main(int argc, char *argv[]) { + + if (!of) { + t = time(NULL); +- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ assert_se(r > 0); ++ + snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); + of = fopen(output_file, "we"); + } +diff --git src/bootchart/svg.c src/bootchart/svg.c +index 135883f..faf377e 100644 +--- src/bootchart/svg.c ++++ src/bootchart/svg.c +@@ -162,7 +162,7 @@ static void svg_title(const char *build) { + char *c; + FILE *f; + time_t t; +- int fd; ++ int fd, r; + struct utsname uts; + + /* grab /proc/cmdline */ +@@ -196,7 +196,8 @@ static void svg_title(const char *build) { + + /* date */ + t = time(NULL); +- strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); ++ r = strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); ++ assert_se(r > 0); + + /* CPU type */ + fd = openat(procfd, "cpuinfo", O_RDONLY); +-- +1.7.9.2 + diff --git a/0004-core-map-the-rescue-argument-to-rescue.target.patch b/0004-core-map-the-rescue-argument-to-rescue.target.patch new file mode 100644 index 00000000..6b639305 --- /dev/null +++ b/0004-core-map-the-rescue-argument-to-rescue.target.patch @@ -0,0 +1,27 @@ +From 5329ab10ffaf5b4a3fd6ebd9380b1ec09d05cfc8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Tue, 7 Oct 2014 14:55:21 +0300 +Subject: [PATCH] core: map the 'rescue' argument to rescue.target + +Even though the 'emergency' and 'single' aliases come from sysvinit, the +lack of 'rescue' is still quite confusing (caught me by surprise for the +9th time yet) and inconsistent with `systemctl rescue` as well. +--- + src/core/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/core/main.c src/core/main.c +index 1a62e04..44373cc 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -272,6 +272,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { + static const char * const rlmap[] = { + "emergency", SPECIAL_EMERGENCY_TARGET, + "-b", SPECIAL_EMERGENCY_TARGET, ++ "rescue", SPECIAL_RESCUE_TARGET, + "single", SPECIAL_RESCUE_TARGET, + "-s", SPECIAL_RESCUE_TARGET, + "s", SPECIAL_RESCUE_TARGET, +-- +1.7.9.2 + diff --git a/0004-journal-do-server_vacuum-for-sigusr1.patch b/0004-journal-do-server_vacuum-for-sigusr1.patch new file mode 100644 index 00000000..530a5397 --- /dev/null +++ b/0004-journal-do-server_vacuum-for-sigusr1.patch @@ -0,0 +1,30 @@ +From 3bfd4e0c6341b0ef946d2198f089743fa99e0a97 Mon Sep 17 00:00:00 2001 +From: WaLyong Cho +Date: Thu, 28 Aug 2014 21:33:03 +0900 +Subject: [PATCH] journal: do server_vacuum for sigusr1 + +runtime journal is migrated to system journal when only +"/run/systemd/journal/flushed" exist. It's ok but according to this +the system journal directory size(max use) can be over the config. If +journal is not rotated during some time the journal directory can be +remained as over the config(or default) size. To avoid, do +server_vacuum just after the system journal migration from runtime. +--- + src/journal/journald-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/journal/journald-server.c src/journal/journald-server.c +index 52111f7..bf9cfcc 100644 +--- src/journal/journald-server.c ++++ src/journal/journald-server.c +@@ -1224,6 +1224,7 @@ static int dispatch_sigusr1(sd_event_source *es, const struct signalfd_siginfo * + touch("/run/systemd/journal/flushed"); + server_flush_to_var(s); + server_sync(s); ++ server_vacuum(s); + + return 0; + } +-- +1.7.9.2 + diff --git a/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch b/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch new file mode 100644 index 00000000..9ab7a2da --- /dev/null +++ b/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch @@ -0,0 +1,43 @@ +From 455cd8b137b8ef45d04889f2d967c562a097f1e6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 19:24:53 +0200 +Subject: [PATCH] sd-bus: if we don't manage to properly allocate the error + message for an sd_bus_error, just go on + +sd_bus_error_setfv() must initialize the sd_bus_error value to some +sensible value and then return a good errno code matching that. If it +cannot work at all it should set the error statically to the OOM error. +But if it can work half-way (i.e. initialize the name, but not the +message) it should do so and still return the correct errno number for +it. + +This effectively reverts 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 +--- + src/libsystemd/sd-bus/bus-error.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c +index 5ca974a..af83c12 100644 +--- src/libsystemd/sd-bus/bus-error.c ++++ src/libsystemd/sd-bus/bus-error.c +@@ -194,13 +194,10 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li + return -ENOMEM; + } + +- if (format) { +- int r; +- +- r = vasprintf((char**) &e->message, format, ap); +- if (r < 0) +- return -ENOMEM; +- } ++ /* Of we hit OOM on formatting the pretty message, we ignore ++ * this, since we at least managed to write the error name */ ++ if (format) ++ (void) vasprintf((char**) &e->message, format, ap); + + e->_need_free = 1; + +-- +1.7.9.2 + diff --git a/0004-sd-event-check-the-value-of-received-signal.patch b/0004-sd-event-check-the-value-of-received-signal.patch new file mode 100644 index 00000000..9c4662a9 --- /dev/null +++ b/0004-sd-event-check-the-value-of-received-signal.patch @@ -0,0 +1,46 @@ +From 7057bd993110c1eff0cd3a8776902ca66417634e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Oct 2014 18:49:45 -0400 +Subject: [PATCH] sd-event: check the value of received signal + +Appease coverity report #1237775. + +Also rename ss to n, to make it visually different from ss. +--- + src/libsystemd/sd-event/sd-event.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index b56182d..4c67ee8 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -1973,20 +1973,22 @@ static int process_signal(sd_event *e, uint32_t events) { + + for (;;) { + struct signalfd_siginfo si; +- ssize_t ss; ++ ssize_t n; + sd_event_source *s = NULL; + +- ss = read(e->signal_fd, &si, sizeof(si)); +- if (ss < 0) { ++ n = read(e->signal_fd, &si, sizeof(si)); ++ if (n < 0) { + if (errno == EAGAIN || errno == EINTR) + return read_one; + + return -errno; + } + +- if (_unlikely_(ss != sizeof(si))) ++ if (_unlikely_(n != sizeof(si))) + return -EIO; + ++ assert(si.ssi_signo < _NSIG); ++ + read_one = true; + + if (si.ssi_signo == SIGCHLD) { +-- +1.7.9.2 + diff --git a/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch b/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch new file mode 100644 index 00000000..ba22748a --- /dev/null +++ b/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch @@ -0,0 +1,38 @@ +From 5e78424f4a27c07be50e246308035c877f204038 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Mon, 13 Oct 2014 15:25:09 +0200 +Subject: [PATCH] selinux: fix potential double free crash in child process + +Before returning from function we should reset ret to NULL, thus cleanup +function is nop. + +Also context_str() returns pointer to a string containing context but not a +copy, hence we must make copy it explicitly. +--- + src/shared/label.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/shared/label.c src/shared/label.c +index b6af38d..69d4616 100644 +--- src/shared/label.c ++++ src/shared/label.c +@@ -334,7 +334,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { + } + + freecon(mycon); +- mycon = context_str(bcon); ++ mycon = strdup(context_str(bcon)); + if (!mycon) { + r = -errno; + goto out; +@@ -348,6 +348,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { + } + + *label = ret; ++ ret = NULL; + r = 0; + + out: +-- +1.7.9.2 + diff --git a/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch b/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch new file mode 100644 index 00000000..119d1108 --- /dev/null +++ b/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch @@ -0,0 +1,29 @@ +From c119700c06b248b1c2a082b40b1a346f58d89da0 Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Sun, 28 Sep 2014 18:12:51 +0300 +Subject: [PATCH] bootchart: Do not try to access data for non-existing CPU's + +Cpu's are assigned normally, so starting at 0, so the MAX_CPU index will +always be one smaller than the actual number. + +Found with Coverity. +--- + src/bootchart/store.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/bootchart/store.c src/bootchart/store.c +index 3099ff1..9ea1b27 100644 +--- src/bootchart/store.c ++++ src/bootchart/store.c +@@ -199,7 +199,7 @@ vmstat_next: + + if (strstr(key, "cpu")) { + r = safe_atoi((const char*)(key+3), &c); +- if (r < 0 || c > MAXCPUS) ++ if (r < 0 || c > MAXCPUS -1) + /* Oops, we only have room for MAXCPUS data */ + break; + sampledata->runtime[c] = atoll(rt); +-- +1.7.9.2 + diff --git a/0005-cryptsetup-fix-an-OOM-check.patch b/0005-cryptsetup-fix-an-OOM-check.patch new file mode 100644 index 00000000..23b39bb5 --- /dev/null +++ b/0005-cryptsetup-fix-an-OOM-check.patch @@ -0,0 +1,25 @@ +From 0e2f14014c65b4d8b30146e414579154cfa932da Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 23 Oct 2014 00:30:04 +0200 +Subject: [PATCH] cryptsetup: fix an OOM check + +--- + src/cryptsetup/cryptsetup-generator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/cryptsetup/cryptsetup-generator.c src/cryptsetup/cryptsetup-generator.c +index 137b787..c7f30f6 100644 +--- src/cryptsetup/cryptsetup-generator.c ++++ src/cryptsetup/cryptsetup-generator.c +@@ -387,7 +387,7 @@ int main(int argc, char *argv[]) { + if (k == 2 && streq(proc_uuid, device + 5)) { + free(options); + options = strdup(p); +- if (!proc_options) { ++ if (!options) { + log_oom(); + goto cleanup; + } +-- +1.7.9.2 + diff --git a/0005-journalctl-correct-help-text-for-until.patch b/0005-journalctl-correct-help-text-for-until.patch new file mode 100644 index 00000000..77563faf --- /dev/null +++ b/0005-journalctl-correct-help-text-for-until.patch @@ -0,0 +1,21 @@ +Based on 7558251eef610e71595a0aa48952479906cb899a Mon Sep 17 00:00:00 2001 +From: Santiago Vila +Date: Sat, 25 Oct 2014 10:40:30 -0400 +Subject: [PATCH] journalctl: correct help text for --until + +http://bugs.debian.org/766598 +--- + src/journal/journalctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/journal/journalctl.c ++++ src/journal/journalctl.c 2014-10-29 14:10:18.863838313 +0000 +@@ -171,7 +171,7 @@ static int help(void) { + " --user Show only the user journal for the current user\n" + " -M --machine=CONTAINER Operate on local container\n" + " --since=DATE Start showing entries on or newer than the specified date\n" +- " --until=DATE Stop showing entries on or older than the specified date\n" ++ " --until=DATE Stop showing entries on or newer than the specified date\n" + " -c --cursor=CURSOR Start showing entries from the specified cursor\n" + " --after-cursor=CURSOR Start showing entries from after the specified cursor\n" + " --show-cursor Print the cursor after all the entries\n" diff --git a/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch b/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch new file mode 100644 index 00000000..3c3d9e50 --- /dev/null +++ b/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch @@ -0,0 +1,37 @@ +From cef3566998fcae6936d781e678c309950a8a5787 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Oct 2014 20:57:30 -0400 +Subject: [PATCH] sd-id128: do stricter checking of random boot id + +If we are bothering to check whether the kernel is not feeding us +bad data, we might as well do it properly. + +CID #1237692. +--- + src/libsystemd/sd-id128/sd-id128.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git src/libsystemd/sd-id128/sd-id128.c src/libsystemd/sd-id128/sd-id128.c +index a1e44e6..233ffa0 100644 +--- src/libsystemd/sd-id128/sd-id128.c ++++ src/libsystemd/sd-id128/sd-id128.c +@@ -183,11 +183,14 @@ _public_ int sd_id128_get_boot(sd_id128_t *ret) { + for (j = 0, p = buf; j < 16; j++) { + int a, b; + +- if (p >= buf + k) ++ if (p >= buf + k - 1) + return -EIO; + +- if (*p == '-') ++ if (*p == '-') { + p++; ++ if (p >= buf + k - 1) ++ return -EIO; ++ } + + a = unhexchar(p[0]); + b = unhexchar(p[1]); +-- +1.7.9.2 + diff --git a/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch b/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch new file mode 100644 index 00000000..875c905e --- /dev/null +++ b/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch @@ -0,0 +1,38 @@ +Based on 1f1926aa5e836caa3bd6df43704aecd606135103 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 21:45:42 -0500 +Subject: [PATCH] units: order sd-journal-flush after sd-remount-fs + +Otherwise we could attempt to flush the journal while /var/log/ was +still ro, and silently skip journal flushing. + +The way that errors in flushing are handled should still be changed to +be more transparent and robust. + +Based on 919699ec301ea507edce4a619141ed22e789ac0d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 31 Oct 2014 16:22:36 +0100 +Subject: [PATCH] units: don't order journal flushing afte remote-fs.target + +Instead, only depend on the actual file systems we need. + +This should solve dep loops on setups where remote-fs.target is moved +into late boot. +--- + units/systemd-journal-flush.service.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- units/systemd-journal-flush.service.in ++++ units/systemd-journal-flush.service.in 2014-11-10 11:46:22.885518923 +0000 +@@ -10,8 +10,9 @@ Description=Trigger Flushing of Journal + Documentation=man:systemd-journald.service(8) man:journald.conf(5) + DefaultDependencies=no + Requires=systemd-journald.service +-After=systemd-journald.service local-fs.target remote-fs.target +-Before=systemd-user-sessions.service ++After=systemd-journald.service local-fs.target ++After=systemd-remount-fs.service ++Before=systemd-user-sessions.service systemd-tmpfiles-setup.service + + [Service] + ExecStart=@rootbindir@/systemctl kill --kill-who=main --signal=SIGUSR1 systemd-journald.service diff --git a/0005-util-avoid-double-close-of-fd.patch b/0005-util-avoid-double-close-of-fd.patch new file mode 100644 index 00000000..e1b5dacc --- /dev/null +++ b/0005-util-avoid-double-close-of-fd.patch @@ -0,0 +1,28 @@ +Based on 6f53e671aa7539cab02c9f739d84d28a343ca5bc Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Wed, 8 Oct 2014 23:57:32 +0200 +Subject: [PATCH] util: avoid double close of fd + +We could end with a double close if we close the fd loop and flush_fd +fails. That would make us goto fail and there we close the fd once +again. This patch sets the fd to the return value for safe_close: -1 +A fd with negative value will be ignored by the next call to +safe_close. + +CID#996223 +--- + src/shared/util.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- src/shared/util.c ++++ src/shared/util.c 2014-10-14 15:42:22.515839157 +0000 +@@ -1969,7 +1969,8 @@ int acquire_terminal( + * ended our handle will be dead. It's important that + * we do this after sleeping, so that we don't enter + * an endless loop. */ +- close_nointr_nofail(fd); ++ if (fd >= 0) close_nointr_nofail(fd); ++ fd = -1; + } + + if (notify >= 0) diff --git a/0006-calendarspec-fix-typo-in-annually.patch b/0006-calendarspec-fix-typo-in-annually.patch new file mode 100644 index 00000000..7e695966 --- /dev/null +++ b/0006-calendarspec-fix-typo-in-annually.patch @@ -0,0 +1,27 @@ +From e90efc70900f8e69cfbafd9e9508bdeb4d40dad7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Oct 2014 11:59:36 -0400 +Subject: [PATCH] calendarspec: fix typo in "annually" + +https://bugs.freedesktop.org/show_bug.cgi?id=85447 +--- + src/shared/calendarspec.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/shared/calendarspec.c src/shared/calendarspec.c +index 4ac74ab..64d0dec 100644 +--- src/shared/calendarspec.c ++++ src/shared/calendarspec.c +@@ -688,7 +688,8 @@ int calendar_spec_from_string(const char *p, CalendarSpec **spec) { + if (r < 0) + goto fail; + +- } else if (strcaseeq(p, "anually") || strcaseeq(p, "yearly")) { ++ } else if (strcaseeq(p, "annually") || strcaseeq(p, "yearly") ++ || strcaseeq(p, "anually") /* backwards compatibility */ ) { + r = const_chain(1, &c->month); + if (r < 0) + goto fail; +-- +1.7.9.2 + diff --git a/0006-journald-fix-minor-memory-leak.patch b/0006-journald-fix-minor-memory-leak.patch new file mode 100644 index 00000000..72d2ab39 --- /dev/null +++ b/0006-journald-fix-minor-memory-leak.patch @@ -0,0 +1,24 @@ +From 99d0966e75a984bed4f117c888ecc93e16e7b7b6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Nov 2014 21:11:16 +0100 +Subject: [PATCH] journald: fix minor memory leak + +--- + src/journal/journald-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/journal/journald-server.c src/journal/journald-server.c +index e062427..cf6bbcc 100644 +--- src/journal/journald-server.c ++++ src/journal/journald-server.c +@@ -1690,6 +1690,7 @@ void server_done(Server *s) { + free(s->buffer); + free(s->tty_path); + free(s->cgroup_root); ++ free(s->hostname_field); + + if (s->mmap) + mmap_cache_unref(s->mmap); +-- +1.7.9.2 + diff --git a/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch b/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch new file mode 100644 index 00000000..f2409242 --- /dev/null +++ b/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch @@ -0,0 +1,55 @@ +From 332076b45b8a78f018ade2dfdc7e4279a56d49cc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Nov 2014 23:10:21 +0100 +Subject: [PATCH] journald: also check journal file size to deduce if it is + empty + +--- + src/journal/journal-vacuum.c | 22 +++++++++++++++------- + 1 file changed, 15 insertions(+), 7 deletions(-) + +diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c +index dbf5d22..d141fe0 100644 +--- src/journal/journal-vacuum.c ++++ src/journal/journal-vacuum.c +@@ -121,22 +121,30 @@ static void patch_realtime( + } + + static int journal_file_empty(int dir_fd, const char *name) { +- int r; +- le64_t n_entries; + _cleanup_close_ int fd; ++ struct stat st; ++ le64_t n_entries; ++ ssize_t n; + + fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd < 0) + return -errno; + +- if (lseek(fd, offsetof(Header, n_entries), SEEK_SET) < 0) ++ if (fstat(fd, &st) < 0) + return -errno; + +- r = read(fd, &n_entries, sizeof(n_entries)); +- if (r != sizeof(n_entries)) +- return r == 0 ? -EINVAL : -errno; ++ /* If an offline file doesn't even have a header we consider it empty */ ++ if (st.st_size < (off_t) sizeof(Header)) ++ return 1; ++ ++ /* If the number of entries is empty, we consider it empty, too */ ++ n = pread(fd, &n_entries, sizeof(n_entries), offsetof(Header, n_entries)); ++ if (n < 0) ++ return -errno; ++ if (n != sizeof(n_entries)) ++ return -EIO; + +- return le64toh(n_entries) == 0; ++ return le64toh(n_entries) <= 0; + } + + int journal_directory_vacuum( +-- +1.7.9.2 + diff --git a/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch b/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch new file mode 100644 index 00000000..a161a1c4 --- /dev/null +++ b/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch @@ -0,0 +1,26 @@ +From e95c98378ac2d34df864de4a9b785fd17defb77b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Oct 2014 15:15:28 -0400 +Subject: [PATCH] systemctl: do not ignore errors in symlink removal + +On an ro fs, systemctl disable ... would fail silently. +--- + src/shared/install.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/install.c src/shared/install.c +index 0d7c30e..035b44c 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -1679,7 +1679,7 @@ int unit_file_disable( + r = install_context_mark_for_removal(&c, &paths, &remove_symlinks_to, config_path, root_dir); + + q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, files); +- if (r == 0) ++ if (r >= 0) + r = q; + + return r; +-- +1.7.9.2 + diff --git a/0008-journald-fix-memory-leak-on-error-path.patch b/0008-journald-fix-memory-leak-on-error-path.patch new file mode 100644 index 00000000..6f67860c --- /dev/null +++ b/0008-journald-fix-memory-leak-on-error-path.patch @@ -0,0 +1,29 @@ +From 26d8ff04914a5208d029e899682cd314b7714bf0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Nov 2014 23:10:34 +0100 +Subject: [PATCH] journald: fix memory leak on error path + +--- + src/journal/journal-vacuum.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c +index d141fe0..80723c4 100644 +--- src/journal/journal-vacuum.c ++++ src/journal/journal-vacuum.c +@@ -283,7 +283,11 @@ int journal_directory_vacuum( + + patch_realtime(directory, p, &st, &realtime); + +- GREEDY_REALLOC(list, n_allocated, n_list + 1); ++ if (!GREEDY_REALLOC(list, n_allocated, n_list + 1)) { ++ free(p); ++ r = -ENOMEM; ++ goto finish; ++ } + + list[n_list].filename = p; + list[n_list].usage = 512UL * (uint64_t) st.st_blocks; +-- +1.7.9.2 + diff --git a/0008-util-introduce-sethostname_idempotent.patch b/0008-util-introduce-sethostname_idempotent.patch new file mode 100644 index 00000000..5b42ce14 --- /dev/null +++ b/0008-util-introduce-sethostname_idempotent.patch @@ -0,0 +1,85 @@ +Based on 605f81a8968b2df8a28cca2cf11db99ab948a2af Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 21 Oct 2014 18:17:54 +0200 +Subject: [PATCH] util: introduce sethostname_idempotent + +Function queries system hostname and applies changes only when necessary. Also, +migrate all client of sethostname to sethostname_idempotent while at it. +--- + src/core/hostname-setup.c | 2 +- + src/hostname/hostnamed.c | 2 +- + src/nspawn/nspawn.c | 2 +- + src/shared/util.c | 20 ++++++++++++++++++++ + src/shared/util.h | 2 ++ + 5 files changed, 25 insertions(+), 3 deletions(-) + +--- src/core/hostname-setup.c ++++ src/core/hostname-setup.c 2014-10-29 00:00:00.000000000 +0000 +@@ -99,7 +99,7 @@ int hostname_setup(void) { + hn = "localhost"; + } + +- if (sethostname(hn, strlen(hn)) < 0) { ++ if (sethostname_idempotent(hn) < 0) { + log_warning("Failed to set hostname to <%s>: %m", hn); + return -errno; + } +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c 2014-10-29 14:13:26.124337751 +0000 +@@ -244,7 +244,7 @@ static int context_write_data_hostname(C + else + hn = c->data[PROP_HOSTNAME]; + +- if (sethostname(hn, strlen(hn)) < 0) ++ if (sethostname_idempotent(hn) < 0) + return -errno; + + return 0; +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-10-29 00:00:00.000000000 +0000 +@@ -981,7 +981,7 @@ static int setup_hostname(void) { + if (arg_share_system) + return 0; + +- if (sethostname(arg_machine, strlen(arg_machine)) < 0) ++ if (sethostname_idempotent(arg_machine) < 0) + return -errno; + + return 0; +--- src/shared/util.c ++++ src/shared/util.c 2014-10-29 00:00:00.000000000 +0000 +@@ -6451,6 +6451,26 @@ int fd_warn_permissions(const char *path + return 0; + } + ++int sethostname_idempotent(const char *s) { ++ int r; ++ char buf[HOST_NAME_MAX + 1] = {}; ++ ++ assert(s); ++ ++ r = gethostname(buf, sizeof(buf)); ++ if (r < 0) ++ return -errno; ++ ++ if (streq(buf, s)) ++ return 0; ++ ++ r = sethostname(buf, strlen(buf)); ++ if (r < 0) ++ return -errno; ++ ++ return 1; ++} ++ + unsigned long personality_from_string(const char *p) { + + /* Parse a personality specifier. We introduce our own +--- src/shared/util.h ++++ src/shared/util.h 2014-10-29 14:14:15.764337717 +0000 +@@ -899,3 +899,5 @@ union file_handle_union { + }; + + int umount_recursive(const char *target, int flags); ++ ++int sethostname_idempotent(const char *s); diff --git a/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..69372137 --- /dev/null +++ b/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,38 @@ +From 2e3390ea4684b954edce66b7758b5371d3338a9f Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Thu, 2 Oct 2014 07:53:15 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 14aee74..ee2efdf 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -1148,3 +1148,21 @@ bluetooth:v017B* + + bluetooth:v017C* + ID_VENDOR_FROM_DATABASE=Daimler AG ++ ++bluetooth:v017D* ++ ID_VENDOR_FROM_DATABASE=BatAndCat ++ ++bluetooth:v017E* ++ ID_VENDOR_FROM_DATABASE=BluDotz Ltd ++ ++bluetooth:v017F* ++ ID_VENDOR_FROM_DATABASE=XTel ApS ++ ++bluetooth:v0180* ++ ID_VENDOR_FROM_DATABASE=Gigaset Communications GmbH ++ ++bluetooth:v0181* ++ ID_VENDOR_FROM_DATABASE=Gecko Health Innovations, Inc. ++ ++bluetooth:v0182* ++ ID_VENDOR_FROM_DATABASE=HOP Ubiquitous +-- +1.7.9.2 + diff --git a/0009-units-make-systemd-journald.service-Type-notify.patch b/0009-units-make-systemd-journald.service-Type-notify.patch new file mode 100644 index 00000000..4890daf5 --- /dev/null +++ b/0009-units-make-systemd-journald.service-Type-notify.patch @@ -0,0 +1,27 @@ +Based on a87a38c20196a4aeb56b6ba71d688eefd0b21c30 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 4 Nov 2014 20:28:08 +0100 +Subject: [PATCH] units: make systemd-journald.service Type=notify + +It already calls sd_notify(), so it looks like an oversight. + +Without it, its ordering to systemd-journal-flush.service is +non-deterministic and the SIGUSR1 from flushing may kill journald before +it has its signal handlers set up. + +https://bugs.freedesktop.org/show_bug.cgi?id=85871 +https://bugzilla.redhat.com/show_bug.cgi?id=1159641 +--- + units/systemd-journald.service.in | 1 + + 1 file changed, 1 insertion(+) + +--- units/systemd-journald.service.in ++++ units/systemd-journald.service.in 2014-11-10 12:22:08.461949786 +0000 +@@ -14,6 +14,7 @@ After=systemd-journald.socket syslog.soc + Before=sysinit.target + + [Service] ++Type=notify + ExecStart=@rootlibexecdir@/systemd-journald + Restart=always + RestartSec=0 diff --git a/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch b/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch new file mode 100644 index 00000000..0e7fdba3 --- /dev/null +++ b/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch @@ -0,0 +1,26 @@ +From a9169c1c589bf7c7a29e7905d17e350ce7c7c48e Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Mon, 27 Oct 2014 11:08:26 +0100 +Subject: [PATCH] util: fix copy-paste error and actually set the new hostname + +Reported-by: sztanpet on irc +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 7d94a28..4143f6d 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -7189,7 +7189,7 @@ int sethostname_idempotent(const char *s) { + if (streq(buf, s)) + return 0; + +- r = sethostname(buf, strlen(buf)); ++ r = sethostname(s, strlen(s)); + if (r < 0) + return -errno; + +-- +1.7.9.2 + diff --git a/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..dbf00485 --- /dev/null +++ b/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,77 @@ +From 5d20fde4a5c4dff4d7c737b545fbd13582d544c1 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Fri, 31 Oct 2014 20:37:59 +0100 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 57 +++++++++++++++++++++++++++++++++ + 1 file changed, 57 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index ee2efdf..58ca87d 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -1166,3 +1166,60 @@ bluetooth:v0181* + + bluetooth:v0182* + ID_VENDOR_FROM_DATABASE=HOP Ubiquitous ++ ++bluetooth:v0183* ++ ID_VENDOR_FROM_DATABASE=To Be Assigned ++ ++bluetooth:v0184* ++ ID_VENDOR_FROM_DATABASE=Nectar ++ ++bluetooth:v0185* ++ ID_VENDOR_FROM_DATABASE=bel'apps LLC ++ ++bluetooth:v0186* ++ ID_VENDOR_FROM_DATABASE=CORE Lighting Ltd ++ ++bluetooth:v0187* ++ ID_VENDOR_FROM_DATABASE=Seraphim Sense Ltd ++ ++bluetooth:v0188* ++ ID_VENDOR_FROM_DATABASE=Unico RBC ++ ++bluetooth:v0189* ++ ID_VENDOR_FROM_DATABASE=Physical Enterprises Inc. ++ ++bluetooth:v018A* ++ ID_VENDOR_FROM_DATABASE=Able Trend Technology Limited ++ ++bluetooth:v018B* ++ ID_VENDOR_FROM_DATABASE=Konica Minolta, Inc. ++ ++bluetooth:v018C* ++ ID_VENDOR_FROM_DATABASE=Wilo SE ++ ++bluetooth:v018D* ++ ID_VENDOR_FROM_DATABASE=Extron Design Services ++ ++bluetooth:v018E* ++ ID_VENDOR_FROM_DATABASE=Fitbit, Inc. ++ ++bluetooth:v018F* ++ ID_VENDOR_FROM_DATABASE=Fireflies Systems ++ ++bluetooth:v0190* ++ ID_VENDOR_FROM_DATABASE=Intelletto Technologies Inc. ++ ++bluetooth:v0191* ++ ID_VENDOR_FROM_DATABASE=FDK CORPORATION ++ ++bluetooth:v0192* ++ ID_VENDOR_FROM_DATABASE=Cloudleaf, Inc ++ ++bluetooth:v0193* ++ ID_VENDOR_FROM_DATABASE=Maveric Automation LLC ++ ++bluetooth:v0194* ++ ID_VENDOR_FROM_DATABASE=Acoustic Stream Corporation ++ ++bluetooth:v0195* ++ ID_VENDOR_FROM_DATABASE=Zuli +-- +1.7.9.2 + diff --git a/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch b/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch new file mode 100644 index 00000000..cafa5324 --- /dev/null +++ b/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch @@ -0,0 +1,27 @@ +Based on d89b5fed9ea5d9ec293585cb85bb27b56ea6ac9c Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 21 Oct 2014 18:38:42 +0200 +Subject: [PATCH] shutdown: do final unmounting only if not running inside the + container + +If we run in the container then we run in a mount namespace. If namespace dies +then kernel should do unmounting for us, hence we skip unmounting in containers. + +Also, it may be the case that we no longer have capability to do umount, +because we are running in the unprivileged container. + +See: http://lists.freedesktop.org/archives/systemd-devel/2014-October/023536.html +--- + src/core/shutdown.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/shutdown.c ++++ src/core/shutdown.c 2014-10-29 14:18:38.767837898 +0000 +@@ -278,6 +278,7 @@ int main(int argc, char *argv[]) { + broadcast_signal(SIGKILL, true, false); + + if (in_container) { ++ need_umount = false; + need_swapoff = false; + need_dm_detach = false; + need_loop_detach = false; diff --git a/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch b/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch new file mode 100644 index 00000000..1592a5aa --- /dev/null +++ b/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch @@ -0,0 +1,57 @@ +Based on dec23413ecc90d4a547aa41f02af0482b4513495 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 27 Oct 2014 21:31:29 -0400 +Subject: [PATCH] selinux: make sure we do not try to print missing fields + +UID or GID of 0 is valid, so we cannot use that to distinguish whether +calls to sd_bus_creds_get_* succeeded, and the return value from the +function is the only way to know about missing fields. Print "n/a" if +the fields are missing. + +CID #1238779 +--- + src/core/selinux-access.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git src/core/selinux-access.c src/core/selinux-access.c +index 08ea6ef..351d48f 100644 +--- src/core/selinux-access.c ++++ src/core/selinux-access.c +@@ -53,7 +53,7 @@ struct audit_info { + + /* + Any time an access gets denied this callback will be called +- with the aduit data. We then need to just copy the audit data into the msgbuf. ++ with the audit data. We then need to just copy the audit data into the msgbuf. + */ + static int audit_callback( + void *auditdata, +@@ -64,14 +64,20 @@ static int audit_callback( + const struct audit_info *audit = auditdata; + uid_t uid = 0, login_uid = 0; + gid_t gid = 0; ++ char login_uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; ++ char uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; ++ char gid_buf[DECIMAL_STR_MAX(gid_t)] = "n/a"; + +- sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid); +- sd_bus_creds_get_uid(audit->creds, &uid); +- sd_bus_creds_get_gid(audit->creds, &gid); ++ if (sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid) >= 0) ++ snprintf(login_uid_buf, sizeof(login_uid_buf), UID_FMT, login_uid); ++ if (sd_bus_creds_get_uid(audit->creds, &uid) >= 0) ++ snprintf(uid_buf, sizeof(uid_buf), UID_FMT, uid); ++ if (sd_bus_creds_get_gid(audit->creds, &gid) >= 0) ++ snprintf(gid_buf, sizeof(gid_buf), "%lu", (unsigned long)gid); + + snprintf(msgbuf, msgbufsize, +- "auid=%d uid=%d gid=%d%s%s%s%s%s%s", +- login_uid, uid, gid, ++ "auid=%s uid=%s gid=%s%s%s%s%s%s%s", ++ login_uid_buf, uid_buf, gid_buf, + audit->path ? " path=\"" : "", strempty(audit->path), audit->path ? "\"" : "", + audit->cmdline ? " cmdline=\"" : "", strempty(audit->cmdline), audit->cmdline ? "\"" : ""); + +-- +1.7.9.2 + diff --git a/0012-manager-do-not-print-anything-while-passwords-are-be.patch b/0012-manager-do-not-print-anything-while-passwords-are-be.patch new file mode 100644 index 00000000..88c30eab --- /dev/null +++ b/0012-manager-do-not-print-anything-while-passwords-are-be.patch @@ -0,0 +1,180 @@ +Based on e46b13c8c7f48f81d4e09912f2265daaa7f6d27e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Oct 2014 20:30:51 -0400 +Subject: [PATCH] manager: do not print anything while passwords are being + queried + +https://bugs.freedesktop.org/show_bug.cgi?id=73942 +--- + src/core/manager.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++- + src/core/manager.h | 5 ++ + 2 files changed, 109 insertions(+), 1 deletion(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-10-29 14:31:18.984212089 +0000 +@@ -25,6 +25,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -212,6 +214,96 @@ static void manager_print_jobs_in_progre + + } + ++static int have_ask_password(void) { ++ _cleanup_closedir_ DIR *dir; ++ ++ dir = opendir("/run/systemd/ask-password"); ++ if (!dir) { ++ if (errno == ENOENT) ++ return false; ++ else ++ return -errno; ++ } ++ ++ for (;;) { ++ struct dirent *de; ++ ++ errno = 0; ++ de = readdir(dir); ++ if (!de && errno != 0) ++ return -errno; ++ if (!de) ++ return false; ++ ++ if (startswith(de->d_name, "ask.")) ++ return true; ++ } ++} ++ ++static int manager_dispatch_ask_password_fd(sd_event_source *source, ++ int fd, uint32_t revents, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(m); ++ ++ flush_fd(fd); ++ ++ m->have_ask_password = have_ask_password(); ++ if (m->have_ask_password < 0) ++ /* Log error but continue. Negative have_ask_password ++ * is treated as unknown status. */ ++ log_error("Failed to list /run/systemd/ask-password: %s", strerror(m->have_ask_password)); ++ ++ return 0; ++} ++ ++static void manager_close_ask_password(Manager *m) { ++ assert(m); ++ if (m->ask_password_inotify_fd >= 0) close_nointr_nofail(m->ask_password_inotify_fd); ++ m->ask_password_inotify_fd = -1; ++ m->ask_password_event_source = sd_event_source_unref(m->ask_password_event_source); ++ m->have_ask_password = -EINVAL; ++} ++ ++static int manager_check_ask_password(Manager *m) { ++ int r; ++ ++ assert(m); ++ ++ if (!m->ask_password_event_source) { ++ assert(m->ask_password_inotify_fd < 0); ++ ++ mkdir_p_label("/run/systemd/ask-password", 0755); ++ ++ m->ask_password_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); ++ if (m->ask_password_inotify_fd < 0) { ++ log_error("inotify_init1() failed: %m"); ++ return -errno; ++ } ++ ++ if (inotify_add_watch(m->ask_password_inotify_fd, "/run/systemd/ask-password", IN_CREATE|IN_DELETE|IN_MOVE) < 0) { ++ log_error("Failed to add watch on /run/systemd/ask-password: %m"); ++ manager_close_ask_password(m); ++ return -errno; ++ } ++ ++ r = sd_event_add_io(m->event, &m->ask_password_event_source, ++ m->ask_password_inotify_fd, EPOLLIN, ++ manager_dispatch_ask_password_fd, m); ++ if (r < 0) { ++ log_error("Failed to add event source for /run/systemd/ask-password: %m"); ++ manager_close_ask_password(m); ++ return -errno; ++ } ++ ++ /* Queries might have been added meanwhile... */ ++ manager_dispatch_ask_password_fd(m->ask_password_event_source, ++ m->ask_password_inotify_fd, EPOLLIN, m); ++ } ++ ++ return m->have_ask_password; ++} ++ + static int manager_watch_idle_pipe(Manager *m) { + int r; + +@@ -470,6 +562,9 @@ int manager_new(SystemdRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; + m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + ++ m->ask_password_inotify_fd = -1; ++ m->have_ask_password = -EINVAL; /* we don't know */ ++ + r = manager_default_environment(m); + if (r < 0) + goto fail; +@@ -847,6 +942,8 @@ void manager_free(Manager *m) { + if (m->kdbus_fd >= 0) + close_nointr_nofail(m->kdbus_fd); + ++ manager_close_ask_password(m); ++ + manager_close_idle_pipe(m); + + udev_unref(m->udev); +@@ -2526,6 +2623,9 @@ void manager_check_finished(Manager *m) + /* Turn off confirm spawn now */ + m->confirm_spawn = false; + ++ /* No need to update ask password status when we're going non-interactive */ ++ manager_close_ask_password(m); ++ + if (dual_timestamp_is_set(&m->finish_timestamp)) + return; + +@@ -2843,12 +2943,15 @@ static bool manager_get_show_status(Mana + if (m->no_console_output) + return false; + ++ /* If we cannot find out the status properly, just proceed. */ ++ if (manager_check_ask_password(m) > 0) ++ return false; ++ + if (m->show_status > 0) + return true; + + /* If Plymouth is running make sure we show the status, so + * that there's something nice to see when people press Esc */ +- + return plymouth_running(); + } + +--- src/core/manager.h ++++ src/core/manager.h 2014-10-29 00:00:00.000000000 +0000 +@@ -231,6 +231,11 @@ struct Manager { + unsigned n_on_console; + unsigned jobs_in_progress_iteration; + ++ /* Do we have any outstanding password prompts? */ ++ int have_ask_password; ++ int ask_password_inotify_fd; ++ sd_event_source *ask_password_event_source; ++ + /* Type=idle pipes */ + int idle_pipe[4]; + sd_event_source *idle_pipe_event_source; diff --git a/1053-better-checks-in-write_net_rules.patch b/1053-better-checks-in-write_net_rules.patch index 50e03693..5fa8076d 100644 --- a/1053-better-checks-in-write_net_rules.patch +++ b/1053-better-checks-in-write_net_rules.patch @@ -8,7 +8,7 @@ Index: systemd-210/src/udev/rule_generator/write_net_rules if [ "$MATCHADDR" ]; then + # Check if MACADDR doesn't exist already in the generated rules + MAC="$(/usr/bin/grep -w -o -C1 -m1 "$MATCHADDR" "$RULES_FILE" 2>/dev/null || true)" -+ if [ "$MAC" == "$MATCHADDR" ]; then ++ if [ "$MAC" = "$MATCHADDR" ]; then + unlock_rules_file + exit 0 + fi @@ -23,7 +23,7 @@ Index: systemd-210/src/udev/rule_generator/write_net_rules - if [ "$ID" == "$MATCHID" ]; then + # Check if KERNEL doesn't exist already in the generated rules + KERNEL="$(find_all_rules 'KERNELS==' "$MATCHID")" -+ if [ "$KERNEL" == "$MATCHID" ]; then ++ if [ "$KERNEL" = "$MATCHID" ]; then unlock_rules_file exit 0 fi diff --git a/1089-fix-cgroup-device-controller.patch b/1089-fix-cgroup-device-controller.patch new file mode 100644 index 00000000..cd68533f --- /dev/null +++ b/1089-fix-cgroup-device-controller.patch @@ -0,0 +1,74 @@ +From eb0f0863f5af48865fb4569e2076d5f9e2313995 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 10 Mar 2014 21:36:01 +0100 +Subject: nspawn: don't try mknod() of /dev/console with the correct + major/minor + +We overmount /dev/console with an external pty anyway, hence there's no +point in using the real major/minor when we create the node to +overmount. Instead, use the one of /dev/null now. + +This fixes a race against the cgroup device controller setup we are +using. In case /dev/console was create before the cgroup policy was +applied all was good, but if created in the opposite order the mknod() +would fail, since creating /dev/console is not allowed by it. Creating +/dev/null instances is however permitted, and hence use it. + +diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c +index d8d0dae..bef866a 100644 +--- a/src/nspawn/nspawn.c ++++ b/src/nspawn/nspawn.c +@@ -879,23 +879,19 @@ static int setup_ptmx(const char *dest) { + } + + static int setup_dev_console(const char *dest, const char *console) { ++ _cleanup_umask_ mode_t u; ++ const char *to; + struct stat st; +- _cleanup_free_ char *to = NULL; + int r; +- _cleanup_umask_ mode_t u; + + assert(dest); + assert(console); + + u = umask(0000); + +- if (stat(console, &st) < 0) { +- log_error("Failed to stat %s: %m", console); ++ if (stat("/dev/null", &st) < 0) { ++ log_error("Failed to stat /dev/null: %m"); + return -errno; +- +- } else if (!S_ISCHR(st.st_mode)) { +- log_error("/dev/console is not a char device"); +- return -EIO; + } + + r = chmod_and_chown(console, 0600, 0, 0); +@@ -904,16 +900,15 @@ static int setup_dev_console(const char *dest, const char *console) { + return r; + } + +- if (asprintf(&to, "%s/dev/console", dest) < 0) +- return log_oom(); +- + /* We need to bind mount the right tty to /dev/console since + * ptys can only exist on pts file systems. To have something +- * to bind mount things on we create a device node first, that +- * has the right major/minor (note that the major minor +- * doesn't actually matter here, since we mount it over +- * anyway). */ ++ * to bind mount things on we create a device node first, and ++ * use /dev/null for that since we the cgroups device policy ++ * allows us to create that freely, while we cannot create ++ * /dev/console. (Note that the major minor doesn't actually ++ * matter here, since we mount it over anyway). */ + ++ to = strappenda(dest, "/dev/console"); + if (mknod(to, (st.st_mode & ~07777) | 0600, st.st_rdev) < 0) { + log_error("mknod() for /dev/console failed: %m"); + return -errno; +-- +cgit v0.10.2 + diff --git a/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch b/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch new file mode 100644 index 00000000..3a3ad550 --- /dev/null +++ b/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch @@ -0,0 +1,58 @@ +Based on cc821d02a37c8c76aaf15bae2d33fee1bdc4b2e0 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 28 Oct 2014 16:50:24 +0100 +Subject: [PATCH] udev: path_id - set supported_parent for well-known SCSI + setups + +--- + src/udev/udev-builtin-path_id.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c 2014-11-03 14:12:48.129956655 +0000 +@@ -379,7 +379,7 @@ out: + return hostdev; + } + +-static struct udev_device *handle_scsi(struct udev_device *parent, char **path) ++static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) + { + const char *devtype; + const char *name; +@@ -394,6 +394,7 @@ static struct udev_device *handle_scsi(s + if (id != NULL) { + parent = skip_subsystem(parent, "scsi"); + path_prepend(path, "ieee1394-0x%s", id); ++ *supported_parent = true; + goto out; + } + +@@ -402,16 +403,19 @@ static struct udev_device *handle_scsi(s + + if (strstr(name, "/rport-") != NULL) { + parent = handle_scsi_fibre_channel(parent, path); ++ *supported_parent = true; + goto out; + } + + if (strstr(name, "/end_device-") != NULL) { + parent = handle_scsi_sas(parent, path); ++ *supported_parent = true; + goto out; + } + + if (strstr(name, "/session") != NULL) { + parent = handle_scsi_iscsi(parent, path); ++ *supported_parent = true; + goto out; + } + +@@ -545,7 +549,7 @@ static int builtin_path_id(struct udev_d + } else if (streq(subsys, "scsi_tape")) { + handle_scsi_tape(parent, &path); + } else if (streq(subsys, "scsi")) { +- parent = handle_scsi(parent, &path); ++ parent = handle_scsi(parent, &path, &supported_parent); + supported_transport = true; + } else if (streq(subsys, "cciss")) { + parent = handle_cciss(parent, &path); diff --git a/1091-udev-path_id-update-comments.patch b/1091-udev-path_id-update-comments.patch new file mode 100644 index 00000000..a695f0db --- /dev/null +++ b/1091-udev-path_id-update-comments.patch @@ -0,0 +1,42 @@ +From a42cdff19f2d34f12ceca0f40707421a8aaa2c2f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 30 Oct 2014 01:18:34 +0100 +Subject: [PATCH] udev: path_id - update comments + +--- + src/udev/udev-builtin-path_id.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git src/udev/udev-builtin-path_id.c src/udev/udev-builtin-path_id.c +index 0d247f6..df996cb 100644 +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c +@@ -548,9 +548,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool + } + + /* +- * Do return devices with have an unknown type of parent device, they +- * might produce conflicting IDs below multiple independent parent +- * devices. ++ * Do not return devices with an unknown parent device type. They ++ * might produce conflicting IDs if the parent does not provide a ++ * unique and predictable name. + */ + if (!supported_parent) { + free(path); +@@ -558,9 +558,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool + } + + /* +- * Do not return a have-only a single-parent block devices, some +- * have entire hidden buses behind it, and not create predictable +- * IDs that way. ++ * Do not return block devices without a well-known transport. Some ++ * devices do not expose their buses and do not provide a unique ++ * and predictable name that way. + */ + if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { + free(path); +-- +1.7.9.2 + diff --git a/1092-libudev-do-not-accept-invalid-log-levels.patch b/1092-libudev-do-not-accept-invalid-log-levels.patch new file mode 100644 index 00000000..10b78859 --- /dev/null +++ b/1092-libudev-do-not-accept-invalid-log-levels.patch @@ -0,0 +1,67 @@ +Based on ee7122c0ec6aa11f02e9e8d94254b353f12d2c14 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 1 Nov 2014 12:06:41 -0400 +Subject: [PATCH] libudev: do not accept invalid log levels + +Invalid log levels lead to a assert failure later on. + +https://bugs.freedesktop.org/show_bug.cgi?id=85657 +--- + src/libudev/libudev-util.c | 10 +++++++--- + src/libudev/libudev.c | 19 ++++++++++++++++--- + 2 files changed, 23 insertions(+), 6 deletions(-) + +--- src/libudev/libudev-util.c ++++ src/libudev/libudev-util.c 2014-11-10 11:33:26.269519209 +0000 +@@ -255,9 +255,13 @@ int util_log_priority(const char *priori + char *endptr; + int prio; + +- prio = strtol(priority, &endptr, 10); +- if (endptr[0] == '\0' || isspace(endptr[0])) +- return prio; ++ prio = strtoul(priority, &endptr, 10); ++ if (endptr[0] == '\0' || isspace(endptr[0])) { ++ if (prio >= 0 && prio <= 7) ++ return prio; ++ else ++ return -ERANGE; ++ } + if (startswith(priority, "err")) + return LOG_ERR; + if (startswith(priority, "info")) +--- src/libudev/libudev.c ++++ src/libudev/libudev.c +@@ -193,7 +193,13 @@ _public_ struct udev *udev_new(void) + } + + if (streq(key, "udev_log")) { +- udev_set_log_priority(udev, util_log_priority(val)); ++ int prio; ++ ++ prio = util_log_priority(val); ++ if (prio < 0) ++ udev_err(udev, "/etc/udev/udev.conf:%u: invalid logging level '%s', ignoring.\n", line_nr, val); ++ else ++ udev_set_log_priority(udev, prio); + continue; + } + } +@@ -201,8 +207,15 @@ _public_ struct udev *udev_new(void) + + /* environment overrides config */ + env = secure_getenv("UDEV_LOG"); +- if (env != NULL) +- udev_set_log_priority(udev, util_log_priority(env)); ++ if (env != NULL) { ++ int prio; ++ ++ prio = util_log_priority(env); ++ if (prio < 0) ++ udev_err(udev, "$UDEV_LOG specifies invalid logging level '%s', ignoring.\n", env); ++ else ++ udev_set_log_priority(udev, prio); ++ } + + return udev; + } diff --git a/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch b/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch new file mode 100644 index 00000000..5f3bb576 --- /dev/null +++ b/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch @@ -0,0 +1,23 @@ +Based on f671774f52838d35d78e62ddcb781b5b65b3373f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 4 Nov 2014 23:45:15 +0000 +Subject: [PATCH] udev: Fix parsing of udev.event-timeout kernel parameter. + +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-11-10 12:28:20.385559165 +0000 +@@ -1011,9 +1011,9 @@ static void kernel_cmdline_options(struc + if (r < 0) + log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); + } else if (startswith(opt, "udev.event-timeout=")) { +- r = safe_atou64(opt + 16, &event_timeout_usec); ++ r = safe_atou64(opt + 19, &event_timeout_usec); + if (r < 0) { +- log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); ++ log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); + break; + } + event_timeout_usec *= USEC_PER_SEC; diff --git a/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch b/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch new file mode 100644 index 00000000..3cd42e5c --- /dev/null +++ b/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch @@ -0,0 +1,58 @@ +Based on cfe2061add5479710f6597899d632e64c54e62ef Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Wed, 5 Nov 2014 12:56:49 +0100 +Subject: [PATCH] udev: avoid magic constants in kernel-cmdline parsers + +Lets recognize the fact that startswith() returns a pointer to the tail on +success. Use it instead of hard-coding string-lengths as magic constants. +--- + src/udev/udevd.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-11-10 12:31:15.745519116 +0000 +@@ -984,7 +984,7 @@ static void kernel_cmdline_options(struc + return; + + FOREACH_WORD_QUOTED(w, l, line, state) { +- char *s, *opt; ++ char *s, *opt, *value; + + s = strndup(w, l); + if (!s) +@@ -996,24 +996,24 @@ static void kernel_cmdline_options(struc + else + opt = s; + +- if (startswith(opt, "udev.log-priority=")) { ++ if ((value = startswith(opt, "udev.log-priority="))) { + int prio; + +- prio = util_log_priority(opt + 18); ++ prio = util_log_priority(value); + log_set_max_level(prio); + udev_set_log_priority(udev, prio); +- } else if (startswith(opt, "udev.children-max=")) { +- r = safe_atoi(opt + 18, &children_max); ++ } else if ((value = startswith(opt, "udev.children-max="))) { ++ r = safe_atoi(value, &children_max); + if (r < 0) +- log_warning("Invalid udev.children-max ignored: %s", opt + 18); +- } else if (startswith(opt, "udev.exec-delay=")) { +- r = safe_atoi(opt + 16, &exec_delay); ++ log_warning("Invalid udev.children-max ignored: %s", value); ++ } else if ((value = startswith(opt, "udev.exec-delay="))) { ++ r = safe_atoi(value, &exec_delay); + if (r < 0) +- log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); +- } else if (startswith(opt, "udev.event-timeout=")) { +- r = safe_atou64(opt + 19, &event_timeout_usec); ++ log_warning("Invalid udev.exec-delay ignored: %s", value); ++ } else if ((value = startswith(opt, "udev.event-timeout="))) { ++ r = safe_atou64(value, &event_timeout_usec); + if (r < 0) { +- log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); ++ log_warning("Invalid udev.event-timeout ignored: %s", value); + break; + } + event_timeout_usec *= USEC_PER_SEC; diff --git a/1095-set-ssd-disk-to-use-deadline-scheduler.patch b/1095-set-ssd-disk-to-use-deadline-scheduler.patch new file mode 100644 index 00000000..39c4a74a --- /dev/null +++ b/1095-set-ssd-disk-to-use-deadline-scheduler.patch @@ -0,0 +1,28 @@ +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2546,6 +2546,7 @@ dist_udevrules_DATA += \ + rules/60-persistent-input.rules \ + rules/60-persistent-alsa.rules \ + rules/60-persistent-storage.rules \ ++ rules/60-ssd-scheduler.rules \ + rules/64-btrfs.rules \ + rules/75-net-description.rules \ + rules/75-tty-description.rules \ +Index: systemd-210/rules/60-ssd-scheduler.rules +=================================================================== +--- /dev/null ++++ systemd-210/rules/60-ssd-scheduler.rules +@@ -0,0 +1,11 @@ ++# do not edit this file, it will be overwritten on update ++ ++ACTION!="add", GOTO="ssd_scheduler_end" ++SUBSYSTEM!="block", GOTO="ssd_scheduler_end" ++ ++IMPORT{cmdline}="elevator" ++ENV{elevator}=="*?", GOTO="ssd_scheduler_end" ++ ++KERNEL=="sd*[!0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" ++ ++LABEL="ssd_scheduler_end" diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch new file mode 100644 index 00000000..49c1b2c9 --- /dev/null +++ b/1096-new-udev-root-symlink-generator.patch @@ -0,0 +1,130 @@ +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2791,6 +2791,25 @@ EXTRA_DIST += \ + test/rule-syntax-check.py + + # ------------------------------------------------------------------------------ ++rootsymlink_generator_SOURCES = \ ++ src/udev/rootsymlink_generator/rootsymlink_generator.c ++ ++rootsymlink_generator_CFLAGS = \ ++ $(AM_CFLAGS) ++ ++udevlibexec_PROGRAMS += \ ++ rootsymlink-generator ++ ++nodist_systemunit_DATA += \ ++ units/systemd-udev-root-symlink.service ++ ++SYSINIT_TARGET_WANTS += \ ++ systemd-udev-root-symlink.service ++ ++EXTRA_DIST += \ ++ units/systemd-udev-root-symlink.service.in ++ ++# ------------------------------------------------------------------------------ + ata_id_SOURCES = \ + src/udev/ata_id/ata_id.c + +Index: systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +@@ -0,0 +1,65 @@ ++/* ++ * Copyright (C) 2014-2015 Robert Milasan ++ * ++ * 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. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define BUFFER_SIZE 128 ++ ++#define _ROOTDEV_ "/" ++#define _PATH_ "/run/udev/rules.d" ++#define _FILE_ "10-root-symlink.rules" ++ ++int main() ++{ ++ struct stat statbuf; ++ ++ if (stat(_ROOTDEV_, &statbuf) != 0) ++ return 1; ++ ++ if (major(statbuf.st_dev) > 0) { ++ int fd = -1; ++ char filename[BUFFER_SIZE]; ++ ++ if (mkdir(_PATH_, 0755) != 0 && errno != EEXIST) ++ return errno; ++ ++ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); ++ ++ if ((fd = open(filename, O_CREAT|O_WRONLY|O_TRUNC, 0644)) == -1) ++ return errno; ++ else { ++ char buf[BUFFER_SIZE]; ++ ++ snprintf(buf, BUFFER_SIZE, "ACTION==\"add|change\", SUBSYSTEM==\"block\", ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", ++ major(statbuf.st_dev), minor(statbuf.st_dev)); ++ ++ if (write(fd, buf, strlen(buf)) == -1) ++ return errno; ++ ++ if (close(fd) == -1) ++ return errno; ++ } ++ } ++ ++ return 0; ++} +Index: systemd-210/units/systemd-udev-root-symlink.service.in +=================================================================== +--- /dev/null ++++ systemd-210/units/systemd-udev-root-symlink.service.in +@@ -0,0 +1,10 @@ ++[Unit] ++Description=Rule generator for /dev/root symlink ++Before=systemd-udevd.service ++DefaultDependencies=no ++ConditionPathIsReadWrite=/run/udev ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=@udevlibexec@/rootsymlink-generator +Index: systemd-210/units/systemd-udev-root-symlink.service +=================================================================== +--- /dev/null ++++ systemd-210/units/systemd-udev-root-symlink.service +@@ -0,0 +1,10 @@ ++[Unit] ++Description=Rule generator for /dev/root symlink ++Before=systemd-udevd.service ++DefaultDependencies=no ++ConditionPathIsReadWrite=/run/udev ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=/usr/lib/udev/rootsymlink-generator diff --git a/avoid-leaking-socket-descriptors.patch b/avoid-leaking-socket-descriptors.patch new file mode 100644 index 00000000..d65d1196 --- /dev/null +++ b/avoid-leaking-socket-descriptors.patch @@ -0,0 +1,339 @@ +Based on 249968612f16a71df909d6e73785c18a9ff36a65 +with src/core/dbus.c as well and corrected systemctl +error messages for killing a unit. + +--- + src/analyze/analyze.c | 2 +- + src/bus-proxyd/bus-proxyd.c | 4 +--- + src/cgroups-agent/cgroups-agent.c | 4 +--- + src/core/dbus.c | 2 +- + src/fsck/fsck.c | 2 +- + src/hostname/hostnamectl.c | 2 +- + src/hostname/hostnamed.c | 4 ++-- + src/libsystemd/sd-bus/bus-util.h | 9 +++++++++ + src/libsystemd/sd-bus/busctl.c | 2 +- + src/locale/localectl.c | 2 +- + src/locale/localed.c | 4 ++-- + src/login/inhibit.c | 2 +- + src/login/loginctl.c | 2 +- + src/login/pam-module.c | 4 ++-- + src/machine/machinectl.c | 4 ++-- + src/nspawn/nspawn.c | 4 ++-- + src/run/run.c | 2 +- + src/systemctl/systemctl.c | 2 +- + src/timedate/timedatectl.c | 2 +- + src/timedate/timedated.c | 4 ++-- + 20 files changed, 34 insertions(+), 29 deletions(-) + +--- src/analyze/analyze.c ++++ src/analyze/analyze.c 2014-10-21 11:13:56.113045992 +0000 +@@ -1264,7 +1264,7 @@ static int parse_argv(int argc, char *ar + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/bus-proxyd/bus-proxyd.c ++++ src/bus-proxyd/bus-proxyd.c 2014-10-21 11:16:16.303837968 +0000 +@@ -427,7 +427,7 @@ static int patch_sender(sd_bus *a, sd_bu + + int main(int argc, char *argv[]) { + +- _cleanup_bus_unref_ sd_bus *a = NULL, *b = NULL; ++ _cleanup_bus_close_unref_ sd_bus *a = NULL, *b = NULL; + sd_id128_t server_id; + int r, in_fd, out_fd; + bool got_hello = false; +@@ -777,8 +777,6 @@ int main(int argc, char *argv[]) { + r = 0; + + finish: +- sd_bus_flush(a); +- sd_bus_flush(b); + + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + } +--- src/cgroups-agent/cgroups-agent.c ++++ src/cgroups-agent/cgroups-agent.c 2014-10-21 11:17:37.400197469 +0000 +@@ -26,7 +26,7 @@ + #include "bus-util.h" + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + if (argc != 2) { +@@ -62,7 +62,5 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- sd_bus_flush(bus); +- + return EXIT_SUCCESS; + } +--- src/core/dbus.c ++++ src/core/dbus.c 2014-10-17 09:52:47.000000000 +0000 +@@ -639,7 +639,7 @@ static int bus_setup_disconnected_match( + } + + static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void *userdata) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + _cleanup_close_ int nfd = -1; + Manager *m = userdata; + sd_id128_t id; +--- src/fsck/fsck.c ++++ src/fsck/fsck.c 2014-10-21 11:18:06.003838037 +0000 +@@ -45,7 +45,7 @@ static bool arg_show_progress = false; + + static void start_target(const char *target) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(target); +--- src/hostname/hostnamectl.c ++++ src/hostname/hostnamectl.c 2014-10-21 11:18:19.915858156 +0000 +@@ -468,7 +468,7 @@ static int hostnamectl_main(sd_bus *bus, + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c 2014-10-21 11:24:07.737447673 +0000 +@@ -566,7 +566,7 @@ static const sd_bus_vtable hostname_vtab + }; + + static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(c); +@@ -607,7 +607,7 @@ int main(int argc, char *argv[]) { + Context context = {}; + + _cleanup_event_unref_ sd_event *event = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_set_target(LOG_TARGET_AUTO); +--- src/libsystemd/sd-bus/bus-util.h ++++ src/libsystemd/sd-bus/bus-util.h 2014-10-17 09:51:34.000000000 +0000 +@@ -137,11 +137,20 @@ typedef struct UnitInfo { + + int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u); + ++static inline void sd_bus_close_unrefp(sd_bus **bus) { ++ if (*bus) { ++ sd_bus_flush(*bus); ++ sd_bus_close(*bus); ++ sd_bus_unref(*bus); ++ } ++} ++ + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus*, sd_bus_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_message*, sd_bus_message_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_creds*, sd_bus_creds_unref); + + #define _cleanup_bus_unref_ _cleanup_(sd_bus_unrefp) ++#define _cleanup_bus_close_unref_ _cleanup_(sd_bus_close_unrefp) + #define _cleanup_bus_message_unref_ _cleanup_(sd_bus_message_unrefp) + #define _cleanup_bus_creds_unref_ _cleanup_(sd_bus_creds_unrefp) + #define _cleanup_bus_error_free_ _cleanup_(sd_bus_error_free) +--- src/libsystemd/sd-bus/busctl.c ++++ src/libsystemd/sd-bus/busctl.c 2014-10-21 11:19:01.472337887 +0000 +@@ -484,7 +484,7 @@ static int busctl_main(sd_bus *bus, int + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_parse_environment(); +--- src/locale/localectl.c ++++ src/locale/localectl.c 2014-10-21 11:19:13.811947994 +0000 +@@ -796,7 +796,7 @@ static int localectl_main(sd_bus *bus, i + } + + int main(int argc, char*argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/locale/localed.c ++++ src/locale/localed.c 2014-10-21 11:19:28.415837424 +0000 +@@ -1076,7 +1076,7 @@ static const sd_bus_vtable locale_vtable + }; + + static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(c); +@@ -1116,7 +1116,7 @@ static int connect_bus(Context *c, sd_ev + int main(int argc, char *argv[]) { + Context context = {}; + _cleanup_event_unref_ sd_event *event = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_set_target(LOG_TARGET_AUTO); +--- src/login/inhibit.c ++++ src/login/inhibit.c 2014-10-21 11:19:44.470844885 +0000 +@@ -221,7 +221,7 @@ static int parse_argv(int argc, char *ar + + int main(int argc, char *argv[]) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_parse_environment(); +--- src/login/loginctl.c ++++ src/login/loginctl.c 2014-10-21 11:20:16.695837857 +0000 +@@ -1298,7 +1298,7 @@ static int loginctl_main(sd_bus *bus, in + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/login/pam-module.c ++++ src/login/pam-module.c 2014-10-21 10:48:20.000000000 +0000 +@@ -213,7 +213,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess + *seat = NULL, + *type = NULL, *class = NULL, + *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int session_fd = -1, existing, r; + bool debug = false, remote; + struct passwd *pw; +@@ -517,7 +517,7 @@ _public_ PAM_EXTERN int pam_sm_close_ses + int argc, const char **argv) { + + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + const void *existing = NULL; + const char *id; + int r; +--- src/machine/machinectl.c ++++ src/machine/machinectl.c 2014-10-21 11:20:45.747838104 +0000 +@@ -550,7 +550,7 @@ static int openpt_in_namespace(pid_t pid + static int login_machine(sd_bus *bus, char **args, unsigned n) { + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL, *reply2 = NULL, *reply3 = NULL; + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *container_bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *container_bus = NULL; + _cleanup_close_ int master = -1; + _cleanup_free_ char *getty = NULL; + const char *path, *pty, *p; +@@ -879,7 +879,7 @@ static int machinectl_main(sd_bus *bus, + } + + int main(int argc, char*argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-10-21 11:21:05.561523449 +0000 +@@ -1163,7 +1163,7 @@ static int drop_capabilities(void) { + + static int register_machine(pid_t pid) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + if (!arg_register) +@@ -1285,7 +1285,7 @@ static int register_machine(pid_t pid) { + static int terminate_machine(pid_t pid) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + const char *path; + int r; + +--- src/run/run.c ++++ src/run/run.c 2014-10-21 11:22:35.163838021 +0000 +@@ -462,7 +462,7 @@ static int start_transient_scope( + + int main(int argc, char* argv[]) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + _cleanup_free_ char *description = NULL, *command = NULL; + int r; + +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-10-22 09:36:33.399838318 +0000 +@@ -2601,7 +2601,7 @@ static int kill_unit(sd_bus *bus, char * + "ssi", *names, arg_kill_who, arg_signal); + if (q < 0) { + log_error("Failed to kill unit %s: %s", +- *names, bus_error_message(&error, r)); ++ *names, bus_error_message(&error, q)); + if (r == 0) + r = q; + } +@@ -6436,7 +6436,7 @@ static int runlevel_main(void) { + } + + int main(int argc, char*argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/timedate/timedatectl.c ++++ src/timedate/timedatectl.c 2014-10-21 11:23:06.107837988 +0000 +@@ -593,7 +593,7 @@ static int timedatectl_main(sd_bus *bus, + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/timedate/timedated.c ++++ src/timedate/timedated.c 2014-10-21 11:23:26.047838675 +0000 +@@ -779,7 +779,7 @@ static const sd_bus_vtable timedate_vtab + }; + + static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(c); +@@ -825,7 +825,7 @@ int main(int argc, char *argv[]) { + }; + + _cleanup_event_unref_ sd_event *event = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_set_target(LOG_TARGET_AUTO); diff --git a/journald-advice-about-use-of-memory.patch b/journald-advice-about-use-of-memory.patch new file mode 100644 index 00000000..008a72ef --- /dev/null +++ b/journald-advice-about-use-of-memory.patch @@ -0,0 +1,146 @@ +--- + src/journal/catalog.c | 21 +++++++++++++++++++-- + src/journal/journal-authenticate.c | 4 ++-- + src/journal/journal-file.c | 2 +- + src/journal/journald-kmsg.c | 2 +- + src/journal/mmap-cache.c | 24 ++++++++++++++++++++++-- + 5 files changed, 45 insertions(+), 8 deletions(-) + +--- src/journal/catalog.c ++++ src/journal/catalog.c 2014-10-24 11:44:59.079838065 +0000 +@@ -472,9 +472,19 @@ finish: + + static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) { + const CatalogHeader *h; +- int fd; ++ static const struct { ++ const int index; ++ int advise; ++ } advises[] = { ++ {0,MADV_WILLNEED}, ++ {1,MADV_SEQUENTIAL}, ++ {2,MADV_DONTDUMP}, ++ {3,MADV_DONTFORK} ++ }; ++ int n, fd; + void *p; + struct stat st; ++ size_t psize; + + assert(_fd); + assert(_st); +@@ -494,12 +504,19 @@ static int open_mmap(const char *databas + return -EINVAL; + } + +- p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0); ++ psize = PAGE_ALIGN(st.st_size); ++ p = mmap(NULL, psize, PROT_READ, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, 0); + if (p == MAP_FAILED) { + close_nointr_nofail(fd); + return -errno; + } + ++ for (n=0; n < sizeof(advises)/sizeof(advises[0]); n++) { ++ int r = madvise(p, psize, advises[n].advise); ++ if (r < 0) ++ log_warning("Failed to give advice about use of memory: %m"); ++ } ++ + h = p; + if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 || + le64toh(h->header_size) < sizeof(CatalogHeader) || +--- src/journal/journal-authenticate.c ++++ src/journal/journal-authenticate.c 2014-10-24 07:41:09.271837523 +0000 +@@ -355,7 +355,7 @@ int journal_file_fss_load(JournalFile *f + goto finish; + } + +- m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0); ++ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED|MAP_STACK, fd, 0); + if (m == MAP_FAILED) { + m = NULL; + r = -errno; +@@ -399,7 +399,7 @@ int journal_file_fss_load(JournalFile *f + goto finish; + } + +- f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); ++ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); + if (f->fss_file == MAP_FAILED) { + f->fss_file = NULL; + r = -errno; +--- src/journal/journal-file.c ++++ src/journal/journal-file.c 2014-10-24 07:39:25.603837720 +0000 +@@ -2554,7 +2554,7 @@ int journal_file_open( + goto fail; + } + +- f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED, f->fd, 0); ++ f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED|MAP_STACK, f->fd, 0); + if (f->header == MAP_FAILED) { + f->header = NULL; + r = -errno; +--- src/journal/journald-kmsg.c ++++ src/journal/journald-kmsg.c 2014-10-24 07:38:01.967837989 +0000 +@@ -473,7 +473,7 @@ int server_open_kernel_seqnum(Server *s) + return 0; + } + +- p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); ++ p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); + if (p == MAP_FAILED) { + log_error("Failed to map sequential number file, ignoring: %m"); + close_nointr_nofail(fd); +--- src/journal/mmap-cache.c ++++ src/journal/mmap-cache.c 2014-10-24 11:16:47.759837744 +0000 +@@ -439,12 +439,21 @@ static int add_mmap( + struct stat *st, + void **ret) { + ++ static const struct { ++ const int index; ++ int vise; ++ } ad[] = { ++ {0, MADV_WILLNEED}, ++ {1, MADV_SEQUENTIAL}, ++ {2, MADV_DONTDUMP}, ++ {3, MADV_DONTFORK} ++ }; + uint64_t woffset, wsize; + Context *c; + FileDescriptor *f; + Window *w; + void *d; +- int r; ++ int n, r; + + assert(m); + assert(m->n_ref > 0); +@@ -481,7 +490,7 @@ static int add_mmap( + } + + for (;;) { +- d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset); ++ d = mmap(NULL, wsize, prot, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, woffset); + if (d != MAP_FAILED) + break; + if (errno != ENOMEM) +@@ -494,6 +503,17 @@ static int add_mmap( + return -ENOMEM; + } + ++ for (n=0; n < sizeof(ad)/sizeof(ad[0]); n++) { ++ if (ad[n].vise == MADV_DONTFORK) { ++ int flags = fcntl(fd, F_GETFD); ++ if (flags < 0 || !(flags & FD_CLOEXEC)) ++ continue; ++ } ++ r = madvise(d, wsize, ad[n].vise); ++ if (r < 0) ++ log_warning("Failed to give advice about use of memory: %m"); ++ } ++ + c = context_add(m, context); + if (!c) + goto outofmem; diff --git a/keep-crypt-password-prompt.patch b/keep-crypt-password-prompt.patch deleted file mode 100644 index ba356b54..00000000 --- a/keep-crypt-password-prompt.patch +++ /dev/null @@ -1,45 +0,0 @@ -Index: systemd-210/src/core/manager.c -=================================================================== ---- systemd-210.orig/src/core/manager.c -+++ systemd-210/src/core/manager.c -@@ -152,6 +152,29 @@ void manager_flip_auto_status(Manager *m - } - } - -+static int check_for_password_prompt(void) { -+ DIR *d; -+ struct dirent *de; -+ -+ if (!(d = opendir("/run/systemd/ask-password"))) { -+ -+ if (errno == ENOENT) -+ return 1; -+ log_error("opendir(/run/systemd/ask-password): %m"); -+ -+ return -errno; -+ } -+ -+ while ((de = readdir(d))) { -+ if (startswith(de->d_name, "ask.")) { -+ closedir(d); -+ return 0; -+ } -+ } -+ closedir(d); -+ return 1; -+} -+ - static void manager_print_jobs_in_progress(Manager *m) { - static int is_ansi_console = -1; - _cleanup_free_ char *job_of_n = NULL; -@@ -195,6 +218,10 @@ static void manager_print_jobs_in_progre - - m->jobs_in_progress_iteration++; - -+ //don't overwrite the crypt password prompt with job status messages -+ if (check_for_password_prompt() == 0) -+ return; -+ - if (m->n_running_jobs > 1) - if (asprintf(&job_of_n, "(%u of %u) ", counter, m->n_running_jobs) < 0) - job_of_n = NULL; diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index 13f576db..8709dc70 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -44,7 +44,7 @@ Index: systemd-210/src/fstab-generator/fstab-generator.c + } + + if (strcmp((what + 12), name) == 0) { -+ if (strstr(options, "noauto")) ++ if (options && strstr(options, "noauto")) + return 0; + + return 1; diff --git a/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch index 52fe82ea..b6859af1 100644 --- a/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +++ b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -7,14 +7,12 @@ Subject: rules: add lid switch of ARM based Chromebook as a power switch to src/login/70-power-switch.rules | 1 + 1 file changed, 1 insertion(+) -diff --git a/src/login/70-power-switch.rules b/src/login/70-power-switch.rules -index 36fb827..d925ab7 100644 --- a/src/login/70-power-switch.rules +++ b/src/login/70-power-switch.rules -@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end" - - SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" +@@ -11,5 +11,6 @@ SUBSYSTEM=="input", KERNEL=="event*", SU SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" +SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="gpio-keys.8", TAG+="power-switch" LABEL="power_switch_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index dcfc946e..f50611e0 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,293 @@ +------------------------------------------------------------------- +Tue Nov 25 09:44:42 UTC 2014 - rmilasan@suse.com + +- Fix error return in rootsymlink_generator.c + Update 1096-new-udev-root-symlink-generator.patch + +------------------------------------------------------------------- +Fri Nov 21 13:35:40 UTC 2014 - werner@suse.de + +- Remove upstream patch + 0001-systemd-logind.service-set-Type-notify.patch + as systemd-logind.service is already from DBus type, compare with + upstream commit eab459bc0639b81b32735f36d3e929e4bfa2cb4b + +------------------------------------------------------------------- +Thu Nov 20 13:45:28 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemd-logind.service-set-Type-notify.patch + 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch + 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch + +------------------------------------------------------------------- +Thu Nov 20 12:18:57 UTC 2014 - werner@suse.de + +- Re-add directory /usr/lib/systemd/system/basic.target.wants + +------------------------------------------------------------------- +Wed Nov 19 15:07:43 UTC 2014 - gber@opensuse.org + +- remove pm-utils-hooks-compat.sh again, pm-utils built-in hooks + partially duplicate hooks run by systemd which may potentially + lead to problems, instead temporarily re-enable + Forward-suspend-hibernate-calls-to-pm-utils.patch until + boo#904828 can be addressed properly + +------------------------------------------------------------------- +Wed Nov 19 00:58:00 UTC 2014 - Led + +- fix bashisms in write_net_rules script +- update patches: + * 1053-better-checks-in-write_net_rules.patch + +------------------------------------------------------------------- +Tue Nov 18 10:26:08 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemctl-let-list-units-unit-files-honour-type.patch + 0002-systemctl-obey-state-in-list-unit-files.patch + which allows to use --type in the systemctl command list-units + and list-unit-files. + +------------------------------------------------------------------- +Tue Nov 18 10:10:28 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch + 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch + +------------------------------------------------------------------- +Thu Nov 13 14:47:17 UTC 2014 - rmilasan@suse.com + +- New root symlink rule generator + Add 1096-new-udev-root-symlink-generator.patch +- Remove write_dev_root_rule and systemd-udev-root-symlink + +------------------------------------------------------------------- +Thu Nov 13 12:59:05 UTC 2014 - werner@suse.de + +- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to skip hdflush as well as hddown but only use halt as fallback + for poweroff as well as synch in systemctl before any reboot command + (compare with commit 4a3ad39957399c4a30fc472a804e72907ecaa4f9) + +------------------------------------------------------------------- +Thu Nov 13 09:54:35 UTC 2014 - rmilasan@suse.com + +- Create rule to set I/O scheduler to deadline if device attribute + 'rotational' equals 0, usually SSDs (bnc#904517). + Add 1095-set-ssd-disk-to-use-deadline-scheduler.patch + +------------------------------------------------------------------- +Thu Nov 13 07:50:49 UTC 2014 - thomas.blume@suse.com + +- fix systemd-fstab-generator crypttab parsing (bnc#903963) + +------------------------------------------------------------------- +Tue Nov 11 19:10:35 UTC 2014 - gber@opensuse.org + +- Add pm-utils-hooks-compat.sh in order to run pm-utils sleep hooks + from systemd (boo#904828) + +------------------------------------------------------------------- +Mon Nov 10 14:23:00 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch + 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch + 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch + +------------------------------------------------------------------- +Mon Nov 10 12:39:35 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-core-don-t-allow-enabling-if-unit-is-masked.patch + 0002-snapshot-return-error-when-snapshot-exists.patch + 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch + 0004-Raise-level-of-Found-dependency.-lines.patch + 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch + 0006-journald-fix-minor-memory-leak.patch + 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch + 0008-journald-fix-memory-leak-on-error-path.patch + 0009-units-make-systemd-journald.service-Type-notify.patch + 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Mon Nov 10 12:36:34 UTC 2014 - werner@suse.de + +- Add upstream patches + 1092-libudev-do-not-accept-invalid-log-levels.patch + 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch + 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch + +------------------------------------------------------------------- +Fri Nov 7 09:45:20 UTC 2014 - werner@suse.de + +- Add patch watch_resolv.conf_for_become_changed.patch to add an + inotify watch on /etc/resolv.conf which enables the reload of + a changed resolver configuration on the fly (bsc#902901) +- Do not apply patch 0022-systemd-tmpfiles-ownerkeep.patch in case + if the script /usr/bin/systemd-tmpfiles-keep is missed + +------------------------------------------------------------------- +Mon Nov 3 14:23:02 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch + 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch + +------------------------------------------------------------------- +Mon Nov 3 14:17:48 UTC 2014 - werner@suse.de + +- Add upstream patches + 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + 1091-udev-path_id-update-comments.patch + which will be applied if patch + 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + is applied a this may fix the trouble with iSCSI (bnc#898233) + +------------------------------------------------------------------- +Thu Oct 30 10:45:01 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch + 0002-time-also-support-infinity-syntax-in-parse_nsec.patch + 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch + 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch + 0005-journalctl-correct-help-text-for-until.patch + 0006-calendarspec-fix-typo-in-annually.patch + 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch + 0008-util-introduce-sethostname_idempotent.patch + 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch + 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch + 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +- Replace patch + keep-crypt-password-prompt.patch as this with + upstream patch + 0012-manager-do-not-print-anything-while-passwords-are-be.patch + +------------------------------------------------------------------- +Fri Oct 24 13:02:45 UTC 2014 - werner@suse.de + +- Add upstream patch + 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +- Add patch journald-advice-about-use-of-memory.patch to use mmap() + flags as well as madvise(2) for journal files. + +------------------------------------------------------------------- +Thu Oct 23 14:05:08 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-strv-add-an-additional-overflow-check-when-enlarging.patch + 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch + 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch + 0004-journal-do-server_vacuum-for-sigusr1.patch + 0005-cryptsetup-fix-an-OOM-check.patch + +------------------------------------------------------------------- +Wed Oct 22 13:56:22 UTC 2014 - werner@suse.de + +- Add upstream patch 1089-fix-cgroup-device-controller.patch + to avoid trouble on existing /dev/console with nspawn (bsc#902240) + +------------------------------------------------------------------- +Tue Oct 21 11:03:31 UTC 2014 - werner@suse.de + +- Modify patch avoid-leaking-socket-descriptors.patch to close + file descriptors for incomming connections in pam module in case + of short memory. + +------------------------------------------------------------------- +Mon Oct 20 14:10:47 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemd-continue-switch-root-even-if-umount-fails.patch + 0002-systemd-try-harder-to-bind-to-notify-socket.patch +- Add patch avoid-leaking-socket-descriptors.patch to close + file descriptors if an incomming connection can not be handled + due e.g. short memory. Could be related to bsc #901481 + +------------------------------------------------------------------- +Wed Oct 15 12:03:36 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-shell-completion-fix-completion-of-inactive-units.patch + 0002-shell-completion-propose-templates-for-disable-re-en.patch + 0003-man-we-don-t-have-Wanted-dependency.patch + 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch + +------------------------------------------------------------------- +Wed Oct 15 08:48:36 UTC 2014 - werner@suse.de + +- Adapt patch + rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch + to make it work even with patch #438 and #439 + +------------------------------------------------------------------- +Tue Oct 14 16:23:51 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch + 0001-tmpfiles-compare-return-against-correct-errno.patch + +------------------------------------------------------------------- +Tue Oct 14 16:19:42 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch + 0001-units-introduce-network-pre.target-as-place-to-hook-.patch + 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch + 0003-sd-bus-check-return-value-of-vasprintf.patch + 0004-core-map-the-rescue-argument-to-rescue.target.patch + 0005-util-avoid-double-close-of-fd.patch + +------------------------------------------------------------------- +Tue Oct 14 16:18:36 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch + 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch + 0003-fileio-label-return-error-when-writing-fails.patch + 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch + 0004-sd-event-check-the-value-of-received-signal.patch + 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch + +------------------------------------------------------------------- +Tue Oct 14 14:46:58 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch + 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Tue Oct 14 14:16:52 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-journalctl-do-not-output-reboot-markers-when-running.patch + 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch + +------------------------------------------------------------------- +Tue Oct 14 13:58:45 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-logind-add-support-for-Triton2-Power-Button.patch + 0002-logind-add-support-for-TPS65217-Power-Button.patch +- Add upstream patches + 0001-shutdownd-clean-up-initialization-of-struct.patch + 0003-bootchart-parse-userinput-with-safe_atoi.patch + 0004-bootchart-check-return-of-strftime.patch + 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch + +------------------------------------------------------------------- +Thu Oct 2 07:21:42 PDT 2014 - lduncan@suse.com + +- Revert patch 1063, which incorrectly disallows + /dev/disk/by-path links for iSCSI (and other) + devices. Will be corrected and re-added once + upstream is consulted. (bnc#898233). Disable: + 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patc + ------------------------------------------------------------------- Fri Sep 26 16:11:10 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 3bc014d9..43deb2f4 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -26,6 +26,7 @@ %bcond_without compat_libs %bcond_with networkd %bcond_with python +%bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 %define has_efi 1 %else @@ -41,6 +42,7 @@ %bcond_with udevsettle %endif %bcond_with systemgrps +%{expand: %%global has_tmpkeep %(type -p systemd-tmpfiles-keep &>/dev/null && echo 1 || echo 0)} Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -188,8 +190,6 @@ Source10: macros.systemd.upstream Source11: after-local.service Source1060: boot.udev -Source1061: write_dev_root_rule -Source1062: systemd-udev-root-symlink Source1063: udev-generate-persistent-rule.sh Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs @@ -246,7 +246,7 @@ Patch42: systemd-pam_config.patch Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) Patch24: handle-etc-HOSTNAME.patch -# PATCH-FIX-OPENSUSE forward to pm-utils -- for code base <= 1310 +# PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -438,8 +438,6 @@ Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch Patch203: respect-nfs-bg-option.patch # PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch -# PATCH-FIX-SUSE Do not override the passphrase prompts due messages of busy jobs -Patch205: keep-crypt-password-prompt.patch # PATCH-FIX-UPSTREAM Fix uninitialized memory Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch # PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) @@ -902,6 +900,150 @@ Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch Patch436: 0002-bus-remove-unused-check.patch # PATCH-FIX-UPSTREAM added at 2014/09/26 Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch442: 0004-bootchart-check-return-of-strftime.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch450: 0003-fileio-label-return-error-when-writing-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch452: 0004-sd-event-check-the-value-of-received-signal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch459: 0005-util-avoid-double-close-of-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/10/13 +Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/14 +Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch +# PATCH-FIX-SUSE added at 2014/10/15 +Patch468: avoid-leaking-socket-descriptors.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch473: 0005-cryptsetup-fix-an-OOM-check.patch +# PATCH-FIX-UPSTREAM added at 2014/10/24 +Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +# PATCH-FIX-SUSE added at 2014/10/24 +Patch475: journald-advice-about-use-of-memory.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch480: 0005-journalctl-correct-help-text-for-until.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch481: 0006-calendarspec-fix-typo-in-annually.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch483: 0008-util-introduce-sethostname_idempotent.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch +# PATCH-FIX-SUSE added at 2014/11/05 +Patch490: watch_resolv.conf_for_become_changed.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch496: 0006-journald-fix-minor-memory-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch498: 0008-journald-fix-memory-leak-on-error-path.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch # UDEV PATCHES # ============ @@ -1081,10 +1223,26 @@ Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch Patch1085: 1085-udev-fix-typos.patch # PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch -# PATCH-FIX-SSUE 1087-infinit-timeout-for-kmod-loaded-modules.patch +# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch -# PATCH-FIX-SSUE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) +# PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch +# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch +Patch1089: 1089-fix-cgroup-device-controller.patch +# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch +Patch1091: 1091-udev-path_id-update-comments.patch +# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch +Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch +# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +# PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) +Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch +# PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch +Patch1096: 1096-new-udev-root-symlink-generator.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1340,17 +1498,12 @@ cp %{SOURCE7} m4/ %patch22 -p1 %patch23 -p1 %patch24 -p1 -%if 0%{?suse_version} <= 1310 %patch25 -p1 -%endif # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch28 -p1 %patch37 -p1 -%ifarch %arm -%patch38 -p1 -%endif %patch39 -p1 %patch40 -p1 %patch41 -p1 @@ -1430,7 +1583,9 @@ cp %{SOURCE7} m4/ %patch181 -p1 %patch182 -p1 %patch183 -p1 +%if 0%{?has_tmpkeep} %patch184 -p1 +%endif %patch185 -p1 %patch186 -p1 %patch187 -p1 @@ -1451,7 +1606,6 @@ cp %{SOURCE7} m4/ %patch202 -p0 %patch203 -p1 %patch204 -p1 -%patch205 -p1 %patch206 -p0 %patch207 -p0 %patch208 -p1 @@ -1683,6 +1837,81 @@ cp %{SOURCE7} m4/ %patch435 -p0 %patch436 -p0 %patch437 -p0 +%patch438 -p0 +%patch439 -p0 +%ifarch %arm +%patch38 -p1 +%endif +%patch440 -p0 +%patch441 -p0 +%patch442 -p0 +%patch443 -p0 +%patch444 -p0 +%patch445 -p0 +%patch446 -p0 +%patch447 -p0 +%patch448 -p0 +%patch449 -p0 +%patch450 -p0 +%patch451 -p0 +%patch452 -p0 +%patch453 -p0 +%patch454 -p0 +%patch455 -p0 +%patch456 -p0 +%patch457 -p0 +%patch458 -p0 +%patch459 -p0 +%patch460 -p0 +%patch461 -p0 +%patch462 -p0 +%patch463 -p0 +%patch464 -p0 +%patch465 -p0 +%patch466 -p0 +%patch467 -p0 +%patch468 -p0 +%patch469 -p0 +%patch470 -p0 +%patch471 -p0 +%patch472 -p0 +%patch473 -p0 +%patch474 -p0 +%patch475 -p0 +%patch476 -p0 +%patch477 -p0 +%patch478 -p0 +%patch479 -p0 +%patch480 -p0 +%patch481 -p0 +%patch482 -p0 +%patch483 -p0 +%patch484 -p0 +%patch485 -p0 +%patch486 -p0 +%patch487 -p0 +%patch488 -p0 +%patch489 -p0 +%patch490 -p0 +%patch491 -p0 +%patch492 -p0 +%patch493 -p0 +%patch494 -p0 +%patch495 -p0 +%patch496 -p0 +%patch497 -p0 +%patch498 -p0 +%patch499 -p0 +%patch500 -p0 +%patch501 -p0 +%patch502 -p0 +%patch503 -p0 +%patch504 -p0 +%patch505 -p0 +%patch506 -p0 +%patch507 -p0 +%patch509 -p0 +%patch510 -p0 # udev patches %patch1001 -p1 @@ -1768,7 +1997,9 @@ cp %{SOURCE7} m4/ %patch1060 -p1 %patch1061 -p0 %patch1062 -p1 +%if %{with parentpathid} %patch1063 -p0 +%endif %patch1064 -p0 %patch1065 -p0 %patch1066 -p1 @@ -1802,6 +2033,16 @@ cp %{SOURCE7} m4/ %patch1086 -p0 %patch1087 -p0 %patch1088 -p1 +%patch1089 -p1 +%if %{with parentpathid} +%patch1090 -p0 +%patch1091 -p0 +%endif +%patch1092 -p0 +%patch1093 -p0 +%patch1094 -p0 +%patch1095 -p1 +%patch1096 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -1919,7 +2160,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS %if 0%{?suse_version} <= 1310 --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ %endif -%if ! 0%{has_efi} +%if ! 0%{?has_efi} --disable-efi \ %endif --with-rc-local-script-path-start=/etc/init.d/boot.local \ @@ -1981,15 +2222,10 @@ sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service -sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} -install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule -sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} @@ -2457,7 +2693,7 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev-root-symlink.service %if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif @@ -2691,12 +2927,12 @@ exit 0 %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id -%{_prefix}/lib/udev/write_dev_root_rule %{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions %{_prefix}/lib/udev/write_net_rules +%{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules @@ -2716,8 +2952,6 @@ exit 0 %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd -%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -%{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/*udev*.service %{_prefix}/lib/systemd/system/systemd-udevd*.socket %dir %{_prefix}/lib/systemd/system/sysinit.target.wants diff --git a/systemd-udev-root-symlink b/systemd-udev-root-symlink deleted file mode 100644 index 8cbe87e9..00000000 --- a/systemd-udev-root-symlink +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Create dynamic rule for /dev/root link -Before=udev.service -DefaultDependencies=no - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=@@PREFIX@@/write_dev_root_rule diff --git a/systemd.changes b/systemd.changes index dcfc946e..f50611e0 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,293 @@ +------------------------------------------------------------------- +Tue Nov 25 09:44:42 UTC 2014 - rmilasan@suse.com + +- Fix error return in rootsymlink_generator.c + Update 1096-new-udev-root-symlink-generator.patch + +------------------------------------------------------------------- +Fri Nov 21 13:35:40 UTC 2014 - werner@suse.de + +- Remove upstream patch + 0001-systemd-logind.service-set-Type-notify.patch + as systemd-logind.service is already from DBus type, compare with + upstream commit eab459bc0639b81b32735f36d3e929e4bfa2cb4b + +------------------------------------------------------------------- +Thu Nov 20 13:45:28 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemd-logind.service-set-Type-notify.patch + 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch + 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch + +------------------------------------------------------------------- +Thu Nov 20 12:18:57 UTC 2014 - werner@suse.de + +- Re-add directory /usr/lib/systemd/system/basic.target.wants + +------------------------------------------------------------------- +Wed Nov 19 15:07:43 UTC 2014 - gber@opensuse.org + +- remove pm-utils-hooks-compat.sh again, pm-utils built-in hooks + partially duplicate hooks run by systemd which may potentially + lead to problems, instead temporarily re-enable + Forward-suspend-hibernate-calls-to-pm-utils.patch until + boo#904828 can be addressed properly + +------------------------------------------------------------------- +Wed Nov 19 00:58:00 UTC 2014 - Led + +- fix bashisms in write_net_rules script +- update patches: + * 1053-better-checks-in-write_net_rules.patch + +------------------------------------------------------------------- +Tue Nov 18 10:26:08 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemctl-let-list-units-unit-files-honour-type.patch + 0002-systemctl-obey-state-in-list-unit-files.patch + which allows to use --type in the systemctl command list-units + and list-unit-files. + +------------------------------------------------------------------- +Tue Nov 18 10:10:28 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch + 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch + +------------------------------------------------------------------- +Thu Nov 13 14:47:17 UTC 2014 - rmilasan@suse.com + +- New root symlink rule generator + Add 1096-new-udev-root-symlink-generator.patch +- Remove write_dev_root_rule and systemd-udev-root-symlink + +------------------------------------------------------------------- +Thu Nov 13 12:59:05 UTC 2014 - werner@suse.de + +- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to skip hdflush as well as hddown but only use halt as fallback + for poweroff as well as synch in systemctl before any reboot command + (compare with commit 4a3ad39957399c4a30fc472a804e72907ecaa4f9) + +------------------------------------------------------------------- +Thu Nov 13 09:54:35 UTC 2014 - rmilasan@suse.com + +- Create rule to set I/O scheduler to deadline if device attribute + 'rotational' equals 0, usually SSDs (bnc#904517). + Add 1095-set-ssd-disk-to-use-deadline-scheduler.patch + +------------------------------------------------------------------- +Thu Nov 13 07:50:49 UTC 2014 - thomas.blume@suse.com + +- fix systemd-fstab-generator crypttab parsing (bnc#903963) + +------------------------------------------------------------------- +Tue Nov 11 19:10:35 UTC 2014 - gber@opensuse.org + +- Add pm-utils-hooks-compat.sh in order to run pm-utils sleep hooks + from systemd (boo#904828) + +------------------------------------------------------------------- +Mon Nov 10 14:23:00 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch + 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch + 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch + +------------------------------------------------------------------- +Mon Nov 10 12:39:35 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-core-don-t-allow-enabling-if-unit-is-masked.patch + 0002-snapshot-return-error-when-snapshot-exists.patch + 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch + 0004-Raise-level-of-Found-dependency.-lines.patch + 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch + 0006-journald-fix-minor-memory-leak.patch + 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch + 0008-journald-fix-memory-leak-on-error-path.patch + 0009-units-make-systemd-journald.service-Type-notify.patch + 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Mon Nov 10 12:36:34 UTC 2014 - werner@suse.de + +- Add upstream patches + 1092-libudev-do-not-accept-invalid-log-levels.patch + 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch + 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch + +------------------------------------------------------------------- +Fri Nov 7 09:45:20 UTC 2014 - werner@suse.de + +- Add patch watch_resolv.conf_for_become_changed.patch to add an + inotify watch on /etc/resolv.conf which enables the reload of + a changed resolver configuration on the fly (bsc#902901) +- Do not apply patch 0022-systemd-tmpfiles-ownerkeep.patch in case + if the script /usr/bin/systemd-tmpfiles-keep is missed + +------------------------------------------------------------------- +Mon Nov 3 14:23:02 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch + 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch + +------------------------------------------------------------------- +Mon Nov 3 14:17:48 UTC 2014 - werner@suse.de + +- Add upstream patches + 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + 1091-udev-path_id-update-comments.patch + which will be applied if patch + 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + is applied a this may fix the trouble with iSCSI (bnc#898233) + +------------------------------------------------------------------- +Thu Oct 30 10:45:01 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch + 0002-time-also-support-infinity-syntax-in-parse_nsec.patch + 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch + 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch + 0005-journalctl-correct-help-text-for-until.patch + 0006-calendarspec-fix-typo-in-annually.patch + 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch + 0008-util-introduce-sethostname_idempotent.patch + 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch + 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch + 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +- Replace patch + keep-crypt-password-prompt.patch as this with + upstream patch + 0012-manager-do-not-print-anything-while-passwords-are-be.patch + +------------------------------------------------------------------- +Fri Oct 24 13:02:45 UTC 2014 - werner@suse.de + +- Add upstream patch + 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +- Add patch journald-advice-about-use-of-memory.patch to use mmap() + flags as well as madvise(2) for journal files. + +------------------------------------------------------------------- +Thu Oct 23 14:05:08 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-strv-add-an-additional-overflow-check-when-enlarging.patch + 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch + 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch + 0004-journal-do-server_vacuum-for-sigusr1.patch + 0005-cryptsetup-fix-an-OOM-check.patch + +------------------------------------------------------------------- +Wed Oct 22 13:56:22 UTC 2014 - werner@suse.de + +- Add upstream patch 1089-fix-cgroup-device-controller.patch + to avoid trouble on existing /dev/console with nspawn (bsc#902240) + +------------------------------------------------------------------- +Tue Oct 21 11:03:31 UTC 2014 - werner@suse.de + +- Modify patch avoid-leaking-socket-descriptors.patch to close + file descriptors for incomming connections in pam module in case + of short memory. + +------------------------------------------------------------------- +Mon Oct 20 14:10:47 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemd-continue-switch-root-even-if-umount-fails.patch + 0002-systemd-try-harder-to-bind-to-notify-socket.patch +- Add patch avoid-leaking-socket-descriptors.patch to close + file descriptors if an incomming connection can not be handled + due e.g. short memory. Could be related to bsc #901481 + +------------------------------------------------------------------- +Wed Oct 15 12:03:36 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-shell-completion-fix-completion-of-inactive-units.patch + 0002-shell-completion-propose-templates-for-disable-re-en.patch + 0003-man-we-don-t-have-Wanted-dependency.patch + 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch + +------------------------------------------------------------------- +Wed Oct 15 08:48:36 UTC 2014 - werner@suse.de + +- Adapt patch + rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch + to make it work even with patch #438 and #439 + +------------------------------------------------------------------- +Tue Oct 14 16:23:51 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch + 0001-tmpfiles-compare-return-against-correct-errno.patch + +------------------------------------------------------------------- +Tue Oct 14 16:19:42 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch + 0001-units-introduce-network-pre.target-as-place-to-hook-.patch + 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch + 0003-sd-bus-check-return-value-of-vasprintf.patch + 0004-core-map-the-rescue-argument-to-rescue.target.patch + 0005-util-avoid-double-close-of-fd.patch + +------------------------------------------------------------------- +Tue Oct 14 16:18:36 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch + 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch + 0003-fileio-label-return-error-when-writing-fails.patch + 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch + 0004-sd-event-check-the-value-of-received-signal.patch + 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch + +------------------------------------------------------------------- +Tue Oct 14 14:46:58 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch + 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch + +------------------------------------------------------------------- +Tue Oct 14 14:16:52 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-journalctl-do-not-output-reboot-markers-when-running.patch + 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch + +------------------------------------------------------------------- +Tue Oct 14 13:58:45 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-logind-add-support-for-Triton2-Power-Button.patch + 0002-logind-add-support-for-TPS65217-Power-Button.patch +- Add upstream patches + 0001-shutdownd-clean-up-initialization-of-struct.patch + 0003-bootchart-parse-userinput-with-safe_atoi.patch + 0004-bootchart-check-return-of-strftime.patch + 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch + +------------------------------------------------------------------- +Thu Oct 2 07:21:42 PDT 2014 - lduncan@suse.com + +- Revert patch 1063, which incorrectly disallows + /dev/disk/by-path links for iSCSI (and other) + devices. Will be corrected and re-added once + upstream is consulted. (bnc#898233). Disable: + 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patc + ------------------------------------------------------------------- Fri Sep 26 16:11:10 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 79e9153c..a8ae7b75 100644 --- a/systemd.spec +++ b/systemd.spec @@ -24,6 +24,7 @@ %bcond_without compat_libs %bcond_with networkd %bcond_with python +%bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 %define has_efi 1 %else @@ -39,6 +40,7 @@ %bcond_with udevsettle %endif %bcond_with systemgrps +%{expand: %%global has_tmpkeep %(type -p systemd-tmpfiles-keep &>/dev/null && echo 1 || echo 0)} Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -183,8 +185,6 @@ Source10: macros.systemd.upstream Source11: after-local.service Source1060: boot.udev -Source1061: write_dev_root_rule -Source1062: systemd-udev-root-symlink Source1063: udev-generate-persistent-rule.sh Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs @@ -241,7 +241,7 @@ Patch42: systemd-pam_config.patch Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) Patch24: handle-etc-HOSTNAME.patch -# PATCH-FIX-OPENSUSE forward to pm-utils -- for code base <= 1310 +# PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -433,8 +433,6 @@ Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch Patch203: respect-nfs-bg-option.patch # PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch -# PATCH-FIX-SUSE Do not override the passphrase prompts due messages of busy jobs -Patch205: keep-crypt-password-prompt.patch # PATCH-FIX-UPSTREAM Fix uninitialized memory Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch # PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) @@ -897,6 +895,150 @@ Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch Patch436: 0002-bus-remove-unused-check.patch # PATCH-FIX-UPSTREAM added at 2014/09/26 Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch442: 0004-bootchart-check-return-of-strftime.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch450: 0003-fileio-label-return-error-when-writing-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch452: 0004-sd-event-check-the-value-of-received-signal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch459: 0005-util-avoid-double-close-of-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/10/13 +Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/14 +Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch +# PATCH-FIX-SUSE added at 2014/10/15 +Patch468: avoid-leaking-socket-descriptors.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch473: 0005-cryptsetup-fix-an-OOM-check.patch +# PATCH-FIX-UPSTREAM added at 2014/10/24 +Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +# PATCH-FIX-SUSE added at 2014/10/24 +Patch475: journald-advice-about-use-of-memory.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch480: 0005-journalctl-correct-help-text-for-until.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch481: 0006-calendarspec-fix-typo-in-annually.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch483: 0008-util-introduce-sethostname_idempotent.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch +# PATCH-FIX-SUSE added at 2014/11/05 +Patch490: watch_resolv.conf_for_become_changed.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch496: 0006-journald-fix-minor-memory-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch498: 0008-journald-fix-memory-leak-on-error-path.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch # UDEV PATCHES # ============ @@ -1076,10 +1218,26 @@ Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch Patch1085: 1085-udev-fix-typos.patch # PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch -# PATCH-FIX-SSUE 1087-infinit-timeout-for-kmod-loaded-modules.patch +# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch -# PATCH-FIX-SSUE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) +# PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch +# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch +Patch1089: 1089-fix-cgroup-device-controller.patch +# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch +Patch1091: 1091-udev-path_id-update-comments.patch +# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch +Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch +# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +# PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) +Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch +# PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch +Patch1096: 1096-new-udev-root-symlink-generator.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1335,17 +1493,12 @@ cp %{SOURCE7} m4/ %patch22 -p1 %patch23 -p1 %patch24 -p1 -%if 0%{?suse_version} <= 1310 %patch25 -p1 -%endif # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch28 -p1 %patch37 -p1 -%ifarch %arm -%patch38 -p1 -%endif %patch39 -p1 %patch40 -p1 %patch41 -p1 @@ -1425,7 +1578,9 @@ cp %{SOURCE7} m4/ %patch181 -p1 %patch182 -p1 %patch183 -p1 +%if 0%{?has_tmpkeep} %patch184 -p1 +%endif %patch185 -p1 %patch186 -p1 %patch187 -p1 @@ -1446,7 +1601,6 @@ cp %{SOURCE7} m4/ %patch202 -p0 %patch203 -p1 %patch204 -p1 -%patch205 -p1 %patch206 -p0 %patch207 -p0 %patch208 -p1 @@ -1678,6 +1832,81 @@ cp %{SOURCE7} m4/ %patch435 -p0 %patch436 -p0 %patch437 -p0 +%patch438 -p0 +%patch439 -p0 +%ifarch %arm +%patch38 -p1 +%endif +%patch440 -p0 +%patch441 -p0 +%patch442 -p0 +%patch443 -p0 +%patch444 -p0 +%patch445 -p0 +%patch446 -p0 +%patch447 -p0 +%patch448 -p0 +%patch449 -p0 +%patch450 -p0 +%patch451 -p0 +%patch452 -p0 +%patch453 -p0 +%patch454 -p0 +%patch455 -p0 +%patch456 -p0 +%patch457 -p0 +%patch458 -p0 +%patch459 -p0 +%patch460 -p0 +%patch461 -p0 +%patch462 -p0 +%patch463 -p0 +%patch464 -p0 +%patch465 -p0 +%patch466 -p0 +%patch467 -p0 +%patch468 -p0 +%patch469 -p0 +%patch470 -p0 +%patch471 -p0 +%patch472 -p0 +%patch473 -p0 +%patch474 -p0 +%patch475 -p0 +%patch476 -p0 +%patch477 -p0 +%patch478 -p0 +%patch479 -p0 +%patch480 -p0 +%patch481 -p0 +%patch482 -p0 +%patch483 -p0 +%patch484 -p0 +%patch485 -p0 +%patch486 -p0 +%patch487 -p0 +%patch488 -p0 +%patch489 -p0 +%patch490 -p0 +%patch491 -p0 +%patch492 -p0 +%patch493 -p0 +%patch494 -p0 +%patch495 -p0 +%patch496 -p0 +%patch497 -p0 +%patch498 -p0 +%patch499 -p0 +%patch500 -p0 +%patch501 -p0 +%patch502 -p0 +%patch503 -p0 +%patch504 -p0 +%patch505 -p0 +%patch506 -p0 +%patch507 -p0 +%patch509 -p0 +%patch510 -p0 # udev patches %patch1001 -p1 @@ -1763,7 +1992,9 @@ cp %{SOURCE7} m4/ %patch1060 -p1 %patch1061 -p0 %patch1062 -p1 +%if %{with parentpathid} %patch1063 -p0 +%endif %patch1064 -p0 %patch1065 -p0 %patch1066 -p1 @@ -1797,6 +2028,16 @@ cp %{SOURCE7} m4/ %patch1086 -p0 %patch1087 -p0 %patch1088 -p1 +%patch1089 -p1 +%if %{with parentpathid} +%patch1090 -p0 +%patch1091 -p0 +%endif +%patch1092 -p0 +%patch1093 -p0 +%patch1094 -p0 +%patch1095 -p1 +%patch1096 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -1914,7 +2155,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS %if 0%{?suse_version} <= 1310 --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ %endif -%if ! 0%{has_efi} +%if ! 0%{?has_efi} --disable-efi \ %endif --with-rc-local-script-path-start=/etc/init.d/boot.local \ @@ -1976,15 +2217,10 @@ sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service -sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} -install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule -sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} @@ -2452,7 +2688,7 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* -%exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%exclude %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev-root-symlink.service %if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif @@ -2686,12 +2922,12 @@ exit 0 %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id -%{_prefix}/lib/udev/write_dev_root_rule %{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rule_generator.functions %{_prefix}/lib/udev/write_net_rules +%{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules @@ -2711,8 +2947,6 @@ exit 0 %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd -%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -%{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/*udev*.service %{_prefix}/lib/systemd/system/systemd-udevd*.socket %dir %{_prefix}/lib/systemd/system/sysinit.target.wants diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch new file mode 100644 index 00000000..41a2b6dc --- /dev/null +++ b/watch_resolv.conf_for_become_changed.patch @@ -0,0 +1,159 @@ +--- + src/core/manager.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/manager.h | 5 ++ + 2 files changed, 108 insertions(+) + +--- src/core/manager.c ++++ src/core/manager.c 2014-11-07 11:12:58.334193988 +0000 +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + #ifdef HAVE_AUDIT + #include +@@ -304,6 +305,101 @@ static int manager_check_ask_password(Ma + return m->have_ask_password; + } + ++static int manager_setup_resolv_conf_change(Manager *); ++ ++static int manager_dispatch_resolv_conf_fd(sd_event_source *source, ++ int fd, uint32_t revents, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(m); ++ assert(m->resolv_conf_inotify_fd == fd); ++ ++ if (revents != EPOLLIN) { ++ log_warning("Got unexpected poll event for notify fd."); ++ return 0; ++ } ++ ++ if (fd >= 0) ++ flush_fd(fd); ++ ++ m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); ++ ++ if (m->resolv_conf_inotify_fd >= 0) ++ close_nointr_nofail(m->resolv_conf_inotify_fd); ++ m->resolv_conf_inotify_fd = -1; ++ ++ manager_setup_resolv_conf_change(m); ++ ++ return m->resolv_conf_noent ? 0 : res_init(); ++} ++ ++static int manager_setup_resolv_conf_change(Manager *m) { ++ int r; ++ ++ assert(m); ++ assert(m->resolv_conf_inotify_fd < 0); ++ ++ m->resolv_conf_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); ++ if (m->resolv_conf_inotify_fd < 0) { ++ log_error("inotify_init1() failed: %m"); ++ r = -errno; ++ goto fail; ++ } ++ if (inotify_add_watch(m->resolv_conf_inotify_fd, "/etc/resolv.conf", ++ IN_CLOSE_WRITE|IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF) < 0) { ++ if (errno == ENOENT) { ++ m->resolv_conf_noent = true; ++ if (inotify_add_watch(m->resolv_conf_inotify_fd, "/etc", IN_CREATE|IN_MOVED_TO) < 0) { ++ log_error("Failed to add watch on /etc: %m"); ++ r = -errno; ++ goto fail; ++ } ++ } else { ++ log_error("Failed to add watch on /etc/resolv.conf: %m"); ++ r = -errno; ++ goto fail; ++ } ++ } ++ if (inotify_add_watch(m->resolv_conf_inotify_fd, "/etc/host.conf", ++ IN_CLOSE_WRITE|IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF) < 0 && errno != ENOENT) { ++ log_error("Failed to add watch on /etc/host.conf: %m"); ++ r = -errno; ++ goto fail; ++ } ++ ++ r = sd_event_add_io(m->event, &m->resolv_conf_event_source, ++ m->resolv_conf_inotify_fd, EPOLLIN, ++ manager_dispatch_resolv_conf_fd, m); ++ if (r < 0) { ++ log_error("Failed to add event source for resolver: %s", strerror(-r)); ++ goto fail; ++ } ++ ++ r = sd_event_source_set_priority(m->resolv_conf_event_source, -10); ++ if (r < 0) { ++ log_error("Failed to add event source for resolver: %s", strerror(-r)); ++ m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); ++ goto fail; ++ } ++ ++ return 0; ++fail: ++ if (m->resolv_conf_inotify_fd >= 0) ++ close_nointr_nofail(m->resolv_conf_inotify_fd); ++ m->resolv_conf_inotify_fd = -1; ++ ++ return 0; /* Ignore error here */ ++} ++ ++static void manager_shutdown_resolv_conf_change(Manager *m) { ++ assert(m); ++ ++ m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); ++ if (m->resolv_conf_inotify_fd >= 0) ++ close_nointr_nofail(m->resolv_conf_inotify_fd); ++ m->resolv_conf_inotify_fd = -1; ++} ++ + static int manager_watch_idle_pipe(Manager *m) { + int r; + +@@ -562,6 +658,7 @@ int manager_new(SystemdRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; + m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + ++ m->resolv_conf_inotify_fd = -1; + m->ask_password_inotify_fd = -1; + m->have_ask_password = -EINVAL; /* we don't know */ + +@@ -613,6 +710,10 @@ int manager_new(SystemdRunningAs running + if (r < 0) + goto fail; + ++ r = manager_setup_resolv_conf_change(m); ++ if (r < 0) ++ goto fail; ++ + m->udev = udev_new(); + if (!m->udev) { + r = -ENOMEM; +@@ -906,6 +1007,8 @@ void manager_free(Manager *m) { + + assert(m); + ++ manager_shutdown_resolv_conf_change(m); ++ + manager_clear_jobs_and_units(m); + + for (c = 0; c < _UNIT_TYPE_MAX; c++) +--- src/core/manager.h ++++ src/core/manager.h 2014-11-07 11:06:41.466019636 +0000 +@@ -157,6 +157,11 @@ struct Manager { + FILE *proc_self_mountinfo; + sd_event_source *mount_event_source; + ++ /* Watch out any change of /etc/resolv.conf */ ++ int resolv_conf_inotify_fd; ++ sd_event_source *resolv_conf_event_source; ++ bool resolv_conf_noent; ++ + /* Data specific to the swap filesystem */ + FILE *proc_swaps; + sd_event_source *swap_event_source; diff --git a/write_dev_root_rule b/write_dev_root_rule deleted file mode 100644 index dcb7d5b4..00000000 --- a/write_dev_root_rule +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -eval $(@@PREFIX@@/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/) - -[ "$ROOT_MAJOR" -gt 0 ] || exit 0 -mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1 -ln -sf /run/udev /dev/.udev 2>/dev/null || : - -echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", \ -ENV{MAJOR}==\"$ROOT_MAJOR\", ENV{MINOR}==\"$ROOT_MINOR\", \ -SYMLINK+=\"root\"" > /run/udev/rules.d/10-root-symlink.rules - -exit 0 From 3ea9d2ce46299aeb93e7a55a2ff8ea92e15134ea4148921afb76ba380cabb73d Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 3 Dec 2014 21:49:55 +0000 Subject: [PATCH 204/221] Accepting request 263344 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/263344 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=210 --- ...-increase-maximum-number-of-children.patch | 22 +++++++++++++++++++ systemd-mini.changes | 14 ++++++++++++ systemd-mini.spec | 3 +++ systemd.changes | 14 ++++++++++++ systemd.spec | 3 +++ 5 files changed, 56 insertions(+) create mode 100644 1097-udevd-increase-maximum-number-of-children.patch diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch new file mode 100644 index 00000000..50bbc56f --- /dev/null +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -0,0 +1,22 @@ +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -454,7 +454,7 @@ static void event_run(struct event *even + + if (children >= children_max) { + if (children_max > 1) +- log_debug("maximum number (%i) of children reached", children); ++ log_error("maximum number (%i) of children reached", children); + return; + } + +@@ -1277,7 +1277,7 @@ int main(int argc, char *argv[]) { + children_max = 8; + + if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { +- children_max += CPU_COUNT(&cpu_set) * 2; ++ children_max += CPU_COUNT(&cpu_set) * 64; + } + } + log_debug("set children_max to %u", children_max); diff --git a/systemd-mini.changes b/systemd-mini.changes index f50611e0..872f66b3 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com + +- Change the maximum number of children from CPU_COUNT * 256 to + CPU_COUNT * 64. + Update 1097-udevd-increase-maximum-number-of-children.patch + +------------------------------------------------------------------- +Thu Nov 27 20:30:35 UTC 2014 - rmilasan@suse.com + +- Increase number of children/workers to CPU_COUNT * 256 to avoid + 'maximum number of children reached' (bnc#907393). + Add 1097-udevd-increase-maximum-number-of-children.patch + ------------------------------------------------------------------- Tue Nov 25 09:44:42 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 43deb2f4..77920367 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1243,6 +1243,8 @@ Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch +# PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch +Patch1097: 1097-udevd-increase-maximum-number-of-children.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -2043,6 +2045,7 @@ cp %{SOURCE7} m4/ %patch1094 -p0 %patch1095 -p1 %patch1096 -p1 +%patch1097 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index f50611e0..872f66b3 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com + +- Change the maximum number of children from CPU_COUNT * 256 to + CPU_COUNT * 64. + Update 1097-udevd-increase-maximum-number-of-children.patch + +------------------------------------------------------------------- +Thu Nov 27 20:30:35 UTC 2014 - rmilasan@suse.com + +- Increase number of children/workers to CPU_COUNT * 256 to avoid + 'maximum number of children reached' (bnc#907393). + Add 1097-udevd-increase-maximum-number-of-children.patch + ------------------------------------------------------------------- Tue Nov 25 09:44:42 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index a8ae7b75..16bb7ba7 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1238,6 +1238,8 @@ Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch +# PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch +Patch1097: 1097-udevd-increase-maximum-number-of-children.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -2038,6 +2040,7 @@ cp %{SOURCE7} m4/ %patch1094 -p0 %patch1095 -p1 %patch1096 -p1 +%patch1097 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ From 5922abecd142da29f724cbd21d821f1a66a8528af4402553f1a00c964c45644d Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 16 Dec 2014 13:47:27 +0000 Subject: [PATCH 205/221] Accepting request 264783 from Base:System - fix systemd-nspawn network-veth support (bnc#906709) add 513-nspawn-veth.patch - Add upstream patch 1098-udev-link_setup-respect-kernel-name-assign-policy.patch which may solve bsc#907318 - Add upstream patches 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch 1097-udev-link_setup-respect-kernel-name-assign-policy.patch - fix systemd-nspawn network-veth support (bnc#906709) add 513-nspawn-veth.patch - Add upstream patch 1098-udev-link_setup-respect-kernel-name-assign-policy.patch which may solve bsc#907318 - Add upstream patches 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch 1097-udev-link_setup-respect-kernel-name-assign-policy.patch OBS-URL: https://build.opensuse.org/request/show/264783 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=211 --- ...rfkill-service-is-bount-to-the-actua.patch | 32 +++ ...w-we-generate-file-names-from-rfkill.patch | 116 +++++++++++ ...up-respect-kernel-name-assign-policy.patch | 189 ++++++++++++++++++ 513-nspawn-veth.patch | 39 ++++ systemd-mini.changes | 21 ++ systemd-mini.spec | 12 ++ systemd.changes | 21 ++ systemd.spec | 12 ++ 8 files changed, 442 insertions(+) create mode 100644 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch create mode 100644 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch create mode 100644 1098-udev-link_setup-respect-kernel-name-assign-policy.patch create mode 100644 513-nspawn-veth.patch diff --git a/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch b/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch new file mode 100644 index 00000000..052eeca6 --- /dev/null +++ b/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch @@ -0,0 +1,32 @@ +Based on 812bd1e6ab4c463507557f2bdbb8875fedd92ade Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 21 Nov 2014 01:20:57 +0100 +Subject: [PATCH] units: make sure rfkill service is bount to the actual + hardware + +--- + rules/99-systemd.rules.in | 2 +- + units/systemd-rfkill@.service.in | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in +@@ -62,7 +62,7 @@ SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="pa + + # Pull in rfkill save/restore for all rfkill devices + +-SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" ++SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/rfkill/devices/%k", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" + + # Asynchronously mount file systems implemented by these modules as + # soon as they are loaded. +--- units/systemd-rfkill@.service.in ++++ units/systemd-rfkill@.service.in 2014-12-05 11:52:59.433518948 +0000 +@@ -9,6 +9,7 @@ + Description=Load/Save RF Kill Switch Status of %I + Documentation=man:systemd-rfkill@.service(8) + DefaultDependencies=no ++BindsTo=sys-subsystem-rfkill-devices-%i.device + RequiresMountsFor=/var/lib/systemd/rfkill + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service diff --git a/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch b/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch new file mode 100644 index 00000000..67ad0284 --- /dev/null +++ b/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch @@ -0,0 +1,116 @@ +Based on 4844262f25a3ff6bd23de05a0a6f84a8e2983d74 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 3 Dec 2014 02:02:11 +0100 +Subject: [PATCH] rfkill: rework how we generate file names from rfkill + devices + +Generate the file name from ID_PATH plus the rfkill type (wlan, +bluetooth, ...) and ignore the rfkill device name, since it apparently +is not a stable identifier. + +Also, ensure that devices disappearing don't result in broken services, +simply exit cleanly. +--- + src/rfkill/rfkill.c | 47 ++++++++++++++++++++++++----------------------- + 1 file changed, 24 insertions(+), 23 deletions(-) + +--- src/rfkill/rfkill.c ++++ src/rfkill/rfkill.c 2014-12-05 12:05:59.053518122 +0000 +@@ -28,8 +28,8 @@ + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_device_unref_ struct udev_device *device = NULL; +- _cleanup_free_ char *saved = NULL, *escaped_name = NULL, *escaped_path_id = NULL; +- const char *name, *path_id; ++ _cleanup_free_ char *saved = NULL, *escaped_type = NULL, *escaped_path_id = NULL; ++ const char *name, *type, *path_id; + int r; + + if (argc != 3) { +@@ -55,25 +55,28 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- errno = 0; + device = udev_device_new_from_subsystem_sysname(udev, "rfkill", argv[2]); + if (!device) { +- if (errno != 0) +- log_error("Failed to get rfkill device '%s': %m", argv[2]); +- else +- log_oom(); +- +- return EXIT_FAILURE; ++ log_debug("Failed to get rfkill device '%s', ignoring: %m", argv[2]); ++ return EXIT_SUCCESS; + } + + name = udev_device_get_sysattr_value(device, "name"); + if (!name) { +- log_error("rfkill device has no name?"); +- return EXIT_FAILURE; ++ log_error("rfkill device has no name? Ignoring device."); ++ return EXIT_SUCCESS; ++ } ++ ++ log_debug("Operating on rfkill device '%s'.", name); ++ ++ type = udev_device_get_sysattr_value(device, "type"); ++ if (!type) { ++ log_error("rfkill device has no type? Ignoring device."); ++ return EXIT_SUCCESS; + } + +- escaped_name = cescape(name); +- if (!escaped_name) { ++ escaped_type = cescape(type); ++ if (!escaped_type) { + log_oom(); + return EXIT_FAILURE; + } +@@ -86,9 +89,9 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_name, NULL); ++ saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_type, NULL); + } else +- saved = strjoin("/var/lib/systemd/rfkill/", escaped_name, NULL); ++ saved = strjoin("/var/lib/systemd/rfkill/", escaped_type, NULL); + + if (!saved) { + log_oom(); +@@ -102,19 +105,17 @@ int main(int argc, char *argv[]) { + return EXIT_SUCCESS; + + r = read_one_line_file(saved, &value); ++ if (r == -ENOENT) ++ return EXIT_SUCCESS; + if (r < 0) { +- +- if (r == -ENOENT) +- return EXIT_SUCCESS; +- + log_error("Failed to read %s: %s", saved, strerror(-r)); + return EXIT_FAILURE; + } + + r = udev_device_set_sysattr_value(device, "soft", value); + if (r < 0) { +- log_error("Failed to write system attribute: %s", strerror(-r)); +- return EXIT_FAILURE; ++ log_debug("Failed to write 'soft' attribute on rfkill device, ignoring: %s", strerror(-r)); ++ return EXIT_SUCCESS; + } + + } else if (streq(argv[1], "save")) { +@@ -122,8 +123,8 @@ int main(int argc, char *argv[]) { + + value = udev_device_get_sysattr_value(device, "soft"); + if (!value) { +- log_error("Failed to read system attribute: %s", strerror(-r)); +- return EXIT_FAILURE; ++ log_debug("Failed to read system attribute, ignoring device: %s", strerror(-r)); ++ return EXIT_SUCCESS; + } + + r = write_string_file(saved, value); diff --git a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch new file mode 100644 index 00000000..622cf745 --- /dev/null +++ b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch @@ -0,0 +1,189 @@ +Based on 04b67d49254d956d31bcfe80340fb9df7ed332d3 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Tue, 15 Jul 2014 17:57:43 +0200 +Subject: [PATCH] udev: link_setup - respect kernel name assign policy + +Newer kernels export meta-information about the origin of an ifname. Respect this +from the ifname rename logic. We do not rename any interfaces that was originally +named by userspace, nor once which have already been renamed from userspace. + +Moreover, we optionally do not (the default) rename interfaces which the kernel +claims to have named in a predictable way. +--- + man/udev.xml | 13 ++++++++++- + network/99-default.link | 2 - + src/shared/missing.h | 21 +++++++++++++++++ + src/udev/net/link-config.c | 53 +++++++++++++++++++++++++++++++++++++-------- + src/udev/net/link-config.h | 1 + 5 files changed, 79 insertions(+), 11 deletions(-) + +--- man/udev.xml ++++ man/udev.xml 2014-12-05 11:43:18.670867575 +0000 +@@ -914,10 +914,21 @@ + successful one is used. The name is not set directly, but + is exported to udev as the property ID_NET_NAME, + which is, by default, used by a udev rule to set +- NAME. The available policies are: ++ NAME. If the name has already ++ been set by userspace, no renaming is performed. ++ The available policies are: + + + ++ kernel ++ ++ If the kernel claims that the name it ++ has set for a device is predictable, then ++ no renaming is performed. ++ ++ ++ ++ + database + + The name is set based on entries in the Hardware +--- network/99-default.link ++++ network/99-default.link 2014-12-05 00:00:00.000000000 +0000 +@@ -1,3 +1,3 @@ + [Link] +-NamePolicy=database onboard slot path ++NamePolicy=kernel database onboard slot path + MACAddressPolicy=persistent +--- src/shared/missing.h ++++ src/shared/missing.h 2014-12-05 11:33:06.120057836 +0000 +@@ -362,3 +362,24 @@ static inline int setns(int fd, int nsty + return syscall(__NR_setns, fd, nstype); + } + #endif ++ ++#ifndef NET_ADDR_RANDOM ++# define NET_ADDR_RANDOM 1 ++#endif ++ ++#ifndef NET_NAME_ENUM ++# define NET_NAME_ENUM 1 ++#endif ++ ++#ifndef NET_NAME_PREDICTABLE ++# define NET_NAME_PREDICTABLE 2 ++#endif ++ ++#ifndef NET_NAME_USER ++# define NET_NAME_USER 3 ++#endif ++ ++#ifndef NET_NAME_RENAMED ++# define NET_NAME_RENAMED 4 ++#endif ++ +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c 2014-12-05 11:36:51.658018542 +0000 +@@ -20,10 +20,11 @@ + ***/ + + #include +-#include ++#include + + #include "sd-id128.h" + ++#include "missing.h" + #include "link-config.h" + #include "ethtool-util.h" + +@@ -297,7 +298,33 @@ static bool mac_is_random(struct udev_de + return false; + + /* check for NET_ADDR_RANDOM */ +- return type == 1; ++ return type == NET_ADDR_RANDOM; ++} ++ ++static bool should_rename(struct udev_device *device, bool respect_predictable) { ++ const char *s; ++ unsigned type; ++ int r; ++ ++ s = udev_device_get_sysattr_value(device, "name_assign_type"); ++ if (!s) ++ return true; /* if we don't know, assume we should rename */ ++ r = safe_atou(s, &type); ++ if (r < 0) ++ return true; ++ ++ switch (type) { ++ case NET_NAME_USER: ++ case NET_NAME_RENAMED: ++ return false; /* these were already named by userspace, do not touch again */ ++ case NET_NAME_PREDICTABLE: ++ if (respect_predictable) ++ return false; /* the kernel claims to have given a predictable name */ ++ /* fall through */ ++ case NET_NAME_ENUM: ++ default: ++ return true; /* the name is known to be bad, or of an unknown type */ ++ } + } + + static bool mac_is_permanent(struct udev_device *device) { +@@ -371,6 +398,7 @@ int link_config_apply(link_config_ctx *c + const char *new_name = NULL; + struct ether_addr generated_mac; + struct ether_addr *mac = NULL; ++ bool respect_predictable = false; + int r, ifindex; + + assert(ctx); +@@ -406,8 +434,12 @@ int link_config_apply(link_config_ctx *c + if (ctx->enable_name_policy && config->name_policy) { + NamePolicy *policy; + +- for (policy = config->name_policy; !new_name && *policy != _NAMEPOLICY_INVALID; policy++) { ++ for (policy = config->name_policy; !respect_predictable && !new_name && ++ *policy != _NAMEPOLICY_INVALID; policy++) { + switch (*policy) { ++ case NAMEPOLICY_KERNEL: ++ respect_predictable = true; ++ break; + case NAMEPOLICY_DATABASE: + new_name = udev_device_get_property_value(device, "ID_NET_NAME_FROM_DATABASE"); + break; +@@ -429,12 +461,14 @@ int link_config_apply(link_config_ctx *c + } + } + +- if (new_name) +- *name = new_name; /* a name was set by a policy */ +- else if (config->name) +- *name = config->name; /* a name was set manually in the config */ +- else +- *name = NULL; ++ if (should_rename(device, respect_predictable)) { ++ if (!new_name) ++ /* if not set by policy, fall back manually set name */ ++ new_name = config->name; ++ } else ++ new_name = NULL; ++ ++ *name = new_name; + + switch (config->mac_policy) { + case MACPOLICY_PERSISTENT: +@@ -500,6 +534,7 @@ DEFINE_STRING_TABLE_LOOKUP(mac_policy, M + DEFINE_CONFIG_PARSE_ENUM(config_parse_mac_policy, mac_policy, MACPolicy, "Failed to parse MAC address policy"); + + static const char* const name_policy_table[] = { ++ [NAMEPOLICY_KERNEL] = "kernel", + [NAMEPOLICY_DATABASE] = "database", + [NAMEPOLICY_ONBOARD] = "onboard", + [NAMEPOLICY_SLOT] = "slot", +--- src/udev/net/link-config.h ++++ src/udev/net/link-config.h 2014-12-05 00:00:00.000000000 +0000 +@@ -39,6 +39,7 @@ typedef enum MACPolicy { + } MACPolicy; + + typedef enum NamePolicy { ++ NAMEPOLICY_KERNEL, + NAMEPOLICY_DATABASE, + NAMEPOLICY_ONBOARD, + NAMEPOLICY_SLOT, diff --git a/513-nspawn-veth.patch b/513-nspawn-veth.patch new file mode 100644 index 00000000..b24ecf6c --- /dev/null +++ b/513-nspawn-veth.patch @@ -0,0 +1,39 @@ +diff -Naur systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c +--- systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c 2014-11-19 13:10:23.998310815 +0100 ++++ systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c 2014-12-08 12:03:18.059734333 +0100 +@@ -722,6 +722,7 @@ + + int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type) { + uint16_t rtm_type; ++ int r; + + assert_return(m, -EINVAL); + assert_return(!m->sealed, -EPERM); +@@ -729,15 +730,21 @@ + sd_rtnl_message_get_type(m, &rtm_type); + + if (rtnl_message_type_is_link(rtm_type)) { +- + if ((type == IFLA_LINKINFO && m->n_containers == 0) || + (type == IFLA_INFO_DATA && m->n_containers == 1 && +- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) +- return add_rtattr(m, type, NULL, 0); +- else if (type == VETH_INFO_PEER && m->n_containers == 2 && ++ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) { ++ r = add_rtattr(m, type, NULL, 0); ++ if ( r > 0) ++ m->container_offsets[m->n_containers ++] = r; ++ return r; ++ } else if (type == VETH_INFO_PEER && m->n_containers == 2 && + GET_CONTAINER(m, 1)->rta_type == IFLA_INFO_DATA && +- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) +- return add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); ++ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) { ++ r = add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); ++ if ( r > 0) ++ m->container_offsets[m->n_containers ++] = r; ++ return r; ++ } + } + + return -ENOTSUP; diff --git a/systemd-mini.changes b/systemd-mini.changes index 872f66b3..500446d3 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com + +- fix systemd-nspawn network-veth support (bnc#906709) + add 513-nspawn-veth.patch + +------------------------------------------------------------------- +Fri Dec 5 12:51:15 UTC 2014 - werner@suse.de + +- Add upstream patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + which may solve bsc#907318 + +------------------------------------------------------------------- +Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch + 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch + 1097-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 77920367..865c9716 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1044,6 +1044,12 @@ Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch # PATCH-FIX-UPSTREAM added at 2014/11/20 Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch +# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) +Patch513: 513-nspawn-veth.patch # UDEV PATCHES # ============ @@ -1245,6 +1251,8 @@ Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch +# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch +Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1914,6 +1922,9 @@ cp %{SOURCE7} m4/ %patch507 -p0 %patch509 -p0 %patch510 -p0 +%patch511 -p0 +%patch512 -p0 +%patch513 -p1 # udev patches %patch1001 -p1 @@ -2046,6 +2057,7 @@ cp %{SOURCE7} m4/ %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 +%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index 872f66b3..500446d3 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com + +- fix systemd-nspawn network-veth support (bnc#906709) + add 513-nspawn-veth.patch + +------------------------------------------------------------------- +Fri Dec 5 12:51:15 UTC 2014 - werner@suse.de + +- Add upstream patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + which may solve bsc#907318 + +------------------------------------------------------------------- +Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch + 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch + 1097-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 16bb7ba7..09e739dc 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1039,6 +1039,12 @@ Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch # PATCH-FIX-UPSTREAM added at 2014/11/20 Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch +# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) +Patch513: 513-nspawn-veth.patch # UDEV PATCHES # ============ @@ -1240,6 +1246,8 @@ Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch +# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch +Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1909,6 +1917,9 @@ cp %{SOURCE7} m4/ %patch507 -p0 %patch509 -p0 %patch510 -p0 +%patch511 -p0 +%patch512 -p0 +%patch513 -p1 # udev patches %patch1001 -p1 @@ -2041,6 +2052,7 @@ cp %{SOURCE7} m4/ %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 +%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ From e1d2ae1aadc39e2daf9dfdc5fc20b6c6d0993ea8de3ffac8f97661d9a3c9815c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sun, 21 Dec 2014 11:03:25 +0000 Subject: [PATCH 206/221] Accepting request 265880 from Base:System use --boot option in systemd-tmpfiles-setup-dev.service (bnc#908476) OBS-URL: https://build.opensuse.org/request/show/265880 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=212 --- ...x-access-fix-broken-ternary-operator.patch | 23 +++ ...etup-dev-allow-unsafe-file-creation-.patch | 24 ++++ ...n-tmpfiles.d-recommend-using-b-and-c.patch | 24 ++++ ...BindsTo-BoundBy-in-list-dependencies.patch | 35 +++++ ...lt-to-no-hash-when-keyfile-is-specif.patch | 28 ++++ ...tion-destructiveness-check-once-more.patch | 32 +++++ 0022-systemd-tmpfiles-ownerkeep.patch | 10 -- ...up-respect-kernel-name-assign-policy.patch | 131 +++++++----------- systemd-add-user-keep.patch | 78 +++++++++++ systemd-mini.changes | 49 ++++++- systemd-mini.spec | 30 +++- systemd.changes | 49 ++++++- systemd.spec | 30 +++- 13 files changed, 430 insertions(+), 113 deletions(-) create mode 100644 0001-selinux-access-fix-broken-ternary-operator.patch create mode 100644 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch create mode 100644 0002-man-tmpfiles.d-recommend-using-b-and-c.patch create mode 100644 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch create mode 100644 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch create mode 100644 0004-core-fix-transaction-destructiveness-check-once-more.patch delete mode 100644 0022-systemd-tmpfiles-ownerkeep.patch create mode 100644 systemd-add-user-keep.patch diff --git a/0001-selinux-access-fix-broken-ternary-operator.patch b/0001-selinux-access-fix-broken-ternary-operator.patch new file mode 100644 index 00000000..b94de819 --- /dev/null +++ b/0001-selinux-access-fix-broken-ternary-operator.patch @@ -0,0 +1,23 @@ +Based on 1e648011b20c8126412d3cf2699d575d9ba9e0fe Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 21 Nov 2014 17:02:15 +0100 +Subject: [PATCH] selinux-access: fix broken ternary operator + +it seems to be a typo introduced by ebcf1f97de4f6b1580ae55eb56b1a3939fe6b602 +- _r = selinux_access_check(_b, _m, _u->source_path ?:_u->fragment_path, (permission), &_error); \ ++ ({ Unit *_unit = (unit); selinux_generic_access_check(bus,message, _unit->fragment_path ?: _unit->fragment_path, permission,error); }) +--- + src/core/selinux-access.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/selinux-access.h ++++ src/core/selinux-access.h 2014-12-15 11:49:54.521518349 +0000 +@@ -34,7 +34,7 @@ int selinux_generic_access_check(sd_bus + #define selinux_access_check(bus, message, permission, error) \ + selinux_generic_access_check(bus, message, NULL, permission, error) + #define selinux_unit_access_check(unit, bus, message, permission, error) \ +- ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->fragment_path ?: _unit->fragment_path, permission, error); }) ++ ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->source_path ?: _unit->fragment_path, permission, error); }) + + #else + diff --git a/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch b/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch new file mode 100644 index 00000000..8aa6da5f --- /dev/null +++ b/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch @@ -0,0 +1,24 @@ +From 8c94052ee543c3598a3c7b0c46688150aa2c6168 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 27 Oct 2014 17:15:42 +0100 +Subject: [PATCH 1/2] units: tmpfiles-setup-dev - allow unsafe file creation to + happen in /dev at boot + +This will allow us to mark static device nodes with '!' to indicate that they should only be created at early boot. +--- + units/systemd-tmpfiles-setup-dev.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in +index f3833fd..0123a03 100644 +--- a/units/systemd-tmpfiles-setup-dev.service.in ++++ b/units/systemd-tmpfiles-setup-dev.service.in +@@ -17,4 +17,4 @@ ConditionCapability=CAP_SYS_MODULE + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create ++ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create --boot +-- +2.1.2 + diff --git a/0002-man-tmpfiles.d-recommend-using-b-and-c.patch b/0002-man-tmpfiles.d-recommend-using-b-and-c.patch new file mode 100644 index 00000000..bb6c70d2 --- /dev/null +++ b/0002-man-tmpfiles.d-recommend-using-b-and-c.patch @@ -0,0 +1,24 @@ +diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210-mod/man/tmpfiles.d.xml +--- systemd-210/man/tmpfiles.d.xml 2014-12-16 10:16:51.269189374 +0100 ++++ systemd-210-mod/man/tmpfiles.d.xml 2014-12-16 10:39:49.937552189 +0100 +@@ -158,12 +158,18 @@ + + + c +- Create a character device node if it does not exist yet. ++ Create a character device node if it does not exist yet. ++ It is recommended to suffix this entry with an exclamation mark to only ++ create static device nodes at boot, as udev will not manage static device ++ nodes that are created at runtime. + + + + b +- Create a block device node if it does not exist yet. ++ Create a block device node if it does not exist yet. ++ It is recommended to suffix this entry with an exclamation mark to only ++ create static device nodes at boot, as udev will not manage static device ++ nodes that re created at runtime. + + + diff --git a/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch b/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch new file mode 100644 index 00000000..6a9cd2ac --- /dev/null +++ b/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch @@ -0,0 +1,35 @@ +From c469089cf647ac740c7dcf09c463d2907b6d00eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 22 Nov 2014 20:21:56 -0500 +Subject: [PATCH] systemctl: show BindsTo/BoundBy in list-dependencies + +Suggested-by: Peter Mattern + +http://lists.freedesktop.org/archives/systemd-devel/2014-November/025437.html +--- + src/systemctl/systemctl.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 78b7c96..fd69c69 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -1480,11 +1480,13 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha + "RequiresOverridable\0" + "Requisite\0" + "RequisiteOverridable\0" +- "Wants\0", ++ "Wants\0" ++ "BindsTo\0", + [DEPENDENCY_REVERSE] = "RequiredBy\0" + "RequiredByOverridable\0" + "WantedBy\0" +- "PartOf\0", ++ "PartOf\0" ++ "BoundBy\0", + [DEPENDENCY_AFTER] = "After\0", + [DEPENDENCY_BEFORE] = "Before\0", + }; +-- +1.7.9.2 + diff --git a/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch b/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch new file mode 100644 index 00000000..5424ff1c --- /dev/null +++ b/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch @@ -0,0 +1,28 @@ +Based on 8a52210c9392887a31fdb2845f65b4c5869e8e66 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 24 Nov 2014 09:11:12 -0500 +Subject: [PATCH] cryptsetup: default to no hash when keyfile is specified + +For plain dm-crypt devices, the behavior of cryptsetup package is to +ignore the hash algorithm when a key file is provided. It seems wrong +to ignore a hash when it is explicitly specified, but we should default +to no hash if the keyfile is specified. + +https://bugs.freedesktop.org/show_bug.cgi?id=52630 +--- + src/cryptsetup/cryptsetup.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- src/cryptsetup/cryptsetup.c ++++ src/cryptsetup/cryptsetup.c 2014-12-15 12:00:17.554019752 +0000 +@@ -386,7 +386,9 @@ static int attach_luks_or_plain(struct c + /* plain isn't a real hash type. it just means "use no hash" */ + if (!streq(opt_hash, "plain")) + params.hash = opt_hash; +- } else ++ } else if (!key_file) ++ /* for CRYPT_PLAIN, the behaviour of cryptsetup ++ * package is to not hash when a key file is provided */ + params.hash = "ripemd160"; + + if (opt_cipher) { diff --git a/0004-core-fix-transaction-destructiveness-check-once-more.patch b/0004-core-fix-transaction-destructiveness-check-once-more.patch new file mode 100644 index 00000000..843200c5 --- /dev/null +++ b/0004-core-fix-transaction-destructiveness-check-once-more.patch @@ -0,0 +1,32 @@ +Based on e0312f4db08c7100bd00299614e87bedc759b366 Mon Sep 17 00:00:00 2001 +Based on c21b92ffe7ef939dd32502ac912cf8ad1c5638fd Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 27 Nov 2014 15:23:58 +0100 +Subject: [PATCH] core: fix transaction destructiveness check once more + +The previous fix e0312f4db "core: fix check for transaction +destructiveness" broke test-engine (noticed by Zbyszek). +Apparently I had a wrong idea of the intended semantics of --fail. + +The manpage says the operation should fail if it "conflicts with a +pending job (more specifically: causes an already pending start job to +be reversed into a stop job or vice versa)". + +So let's check job_type_is_conflicting, instead of !is_superset. + +This makes both test-engine and TEST-03-JOBS pass again. +--- + src/core/transaction.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/transaction.c ++++ src/core/transaction.c 2014-12-15 12:06:11.721518136 +0000 +@@ -510,7 +510,7 @@ static int transaction_is_destructive(Tr + assert(!j->transaction_next); + + if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) && +- !job_type_is_superset(j->type, j->unit->job->type)) { ++ job_type_is_conflicting(j->unit->job->type, j->type)) { + + sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); + return -EEXIST; diff --git a/0022-systemd-tmpfiles-ownerkeep.patch b/0022-systemd-tmpfiles-ownerkeep.patch deleted file mode 100644 index c7f3589b..00000000 --- a/0022-systemd-tmpfiles-ownerkeep.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -Naur systemd-208/units/systemd-tmpfiles-clean.service.in systemd-208-mod/units/systemd-tmpfiles-clean.service.in ---- systemd-208/units/systemd-tmpfiles-clean.service.in 2013-08-13 20:02:52.826756410 +0000 -+++ systemd-208-mod/units/systemd-tmpfiles-clean.service.in 2014-02-21 13:34:56.456511025 +0000 -@@ -19,5 +19,6 @@ - - [Service] - Type=oneshot -+ExecStart=-@rootbindir@/systemd-tmpfiles-keep - ExecStart=@rootbindir@/systemd-tmpfiles --clean - IOSchedulingClass=idle diff --git a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch index 622cf745..6772f650 100644 --- a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch +++ b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch @@ -17,9 +17,11 @@ claims to have named in a predictable way. src/udev/net/link-config.h | 1 5 files changed, 79 insertions(+), 11 deletions(-) ---- man/udev.xml -+++ man/udev.xml 2014-12-05 11:43:18.670867575 +0000 -@@ -914,10 +914,21 @@ +Index: man/udev.xml +=================================================================== +--- man/udev.xml.orig ++++ man/udev.xml +@@ -914,10 +914,12 @@ successful one is used. The name is not set directly, but is exported to udev as the property ID_NET_NAME, which is, by default, used by a udev rule to set @@ -29,28 +31,15 @@ claims to have named in a predictable way. + The available policies are: - -+ kernel -+ -+ If the kernel claims that the name it -+ has set for a device is predictable, then -+ no renaming is performed. -+ -+ -+ -+ +- ++ database The name is set based on entries in the Hardware ---- network/99-default.link -+++ network/99-default.link 2014-12-05 00:00:00.000000000 +0000 -@@ -1,3 +1,3 @@ - [Link] --NamePolicy=database onboard slot path -+NamePolicy=kernel database onboard slot path - MACAddressPolicy=persistent ---- src/shared/missing.h -+++ src/shared/missing.h 2014-12-05 11:33:06.120057836 +0000 +Index: src/shared/missing.h +=================================================================== +--- src/shared/missing.h.orig ++++ src/shared/missing.h @@ -362,3 +362,24 @@ static inline int setns(int fd, int nsty return syscall(__NR_setns, fd, nstype); } @@ -76,8 +65,10 @@ claims to have named in a predictable way. +# define NET_NAME_RENAMED 4 +#endif + ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c 2014-12-05 11:36:51.658018542 +0000 +Index: src/udev/net/link-config.c +=================================================================== +--- src/udev/net/link-config.c.orig ++++ src/udev/net/link-config.c @@ -20,10 +20,11 @@ ***/ @@ -91,64 +82,44 @@ claims to have named in a predictable way. #include "link-config.h" #include "ethtool-util.h" -@@ -297,7 +298,33 @@ static bool mac_is_random(struct udev_de +@@ -297,23 +298,30 @@ static bool mac_is_random(struct udev_de return false; /* check for NET_ADDR_RANDOM */ - return type == 1; + return type == NET_ADDR_RANDOM; -+} -+ -+static bool should_rename(struct udev_device *device, bool respect_predictable) { -+ const char *s; -+ unsigned type; -+ int r; -+ + } + +-static bool mac_is_permanent(struct udev_device *device) { ++static bool should_rename(struct udev_device *device) { + const char *s; + unsigned type; + int r; + +- s = udev_device_get_sysattr_value(device, "addr_assign_type"); + s = udev_device_get_sysattr_value(device, "name_assign_type"); -+ if (!s) + if (!s) +- return true; /* if we don't know, assume it is permanent */ + return true; /* if we don't know, assume we should rename */ -+ r = safe_atou(s, &type); -+ if (r < 0) -+ return true; -+ + r = safe_atou(s, &type); + if (r < 0) + return true; + +- /* check for NET_ADDR_PERM */ +- return type == 0; + switch (type) { + case NET_NAME_USER: + case NET_NAME_RENAMED: + return false; /* these were already named by userspace, do not touch again */ + case NET_NAME_PREDICTABLE: -+ if (respect_predictable) -+ return false; /* the kernel claims to have given a predictable name */ -+ /* fall through */ + case NET_NAME_ENUM: + default: + return true; /* the name is known to be bad, or of an unknown type */ + } } - static bool mac_is_permanent(struct udev_device *device) { -@@ -371,6 +398,7 @@ int link_config_apply(link_config_ctx *c - const char *new_name = NULL; - struct ether_addr generated_mac; - struct ether_addr *mac = NULL; -+ bool respect_predictable = false; - int r, ifindex; - - assert(ctx); -@@ -406,8 +434,12 @@ int link_config_apply(link_config_ctx *c - if (ctx->enable_name_policy && config->name_policy) { - NamePolicy *policy; - -- for (policy = config->name_policy; !new_name && *policy != _NAMEPOLICY_INVALID; policy++) { -+ for (policy = config->name_policy; !respect_predictable && !new_name && -+ *policy != _NAMEPOLICY_INVALID; policy++) { - switch (*policy) { -+ case NAMEPOLICY_KERNEL: -+ respect_predictable = true; -+ break; - case NAMEPOLICY_DATABASE: - new_name = udev_device_get_property_value(device, "ID_NET_NAME_FROM_DATABASE"); - break; -@@ -429,12 +461,14 @@ int link_config_apply(link_config_ctx *c + #define HASH_KEY SD_ID128_MAKE(d3,1e,48,fa,90,fe,4b,4c,9d,af,d5,d7,a1,b1,2e,8a) +@@ -429,16 +437,16 @@ int link_config_apply(link_config_ctx *c } } @@ -158,32 +129,26 @@ claims to have named in a predictable way. - *name = config->name; /* a name was set manually in the config */ - else - *name = NULL; -+ if (should_rename(device, respect_predictable)) { ++ if (should_rename(device)) { + if (!new_name) + /* if not set by policy, fall back manually set name */ + new_name = config->name; + } else + new_name = NULL; -+ -+ *name = new_name; switch (config->mac_policy) { case MACPOLICY_PERSISTENT: -@@ -500,6 +534,7 @@ DEFINE_STRING_TABLE_LOOKUP(mac_policy, M - DEFINE_CONFIG_PARSE_ENUM(config_parse_mac_policy, mac_policy, MACPolicy, "Failed to parse MAC address policy"); +- if (!mac_is_permanent(device)) { ++ if (mac_is_random(device)) { + r = get_mac(device, false, &generated_mac); + if (r == -ENOENT) + break; +@@ -467,6 +475,8 @@ int link_config_apply(link_config_ctx *c + return r; + } - static const char* const name_policy_table[] = { -+ [NAMEPOLICY_KERNEL] = "kernel", - [NAMEPOLICY_DATABASE] = "database", - [NAMEPOLICY_ONBOARD] = "onboard", - [NAMEPOLICY_SLOT] = "slot", ---- src/udev/net/link-config.h -+++ src/udev/net/link-config.h 2014-12-05 00:00:00.000000000 +0000 -@@ -39,6 +39,7 @@ typedef enum MACPolicy { - } MACPolicy; ++ *name = new_name; ++ + return 0; + } - typedef enum NamePolicy { -+ NAMEPOLICY_KERNEL, - NAMEPOLICY_DATABASE, - NAMEPOLICY_ONBOARD, - NAMEPOLICY_SLOT, diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch new file mode 100644 index 00000000..c1c06ba5 --- /dev/null +++ b/systemd-add-user-keep.patch @@ -0,0 +1,78 @@ +diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210.mod/man/tmpfiles.d.xml +--- systemd-210/man/tmpfiles.d.xml 2014-12-18 09:40:29.403629407 +0100 ++++ systemd-210.mod/man/tmpfiles.d.xml 2014-12-18 10:34:06.274130934 +0100 +@@ -435,8 +435,12 @@ + f, F, + and w may be used to + specify a short string that is written to the +- file, suffixed by a newline. Ignored for all +- other lines. ++ file, suffixed by a newline. ++ For x, X ++ a comma separated list of usernames. If given, ++ only paths belonging to these users will be ++ excluded during directory cleanup. ++ Ignored for all other lines. + + + +diff -Naur systemd-210/src/tmpfiles/tmpfiles.c systemd-210.mod/src/tmpfiles/tmpfiles.c +--- systemd-210/src/tmpfiles/tmpfiles.c 2014-12-18 09:40:29.342629177 +0100 ++++ systemd-210.mod/src/tmpfiles/tmpfiles.c 2014-12-18 11:58:16.686576974 +0100 +@@ -263,6 +263,7 @@ + struct timespec times[2]; + bool deleted = false; + int r = 0; ++ Item *found = NULL; + + while ((dent = readdir(d))) { + struct stat s; +@@ -306,11 +307,43 @@ + } + + /* Is there an item configured for this path? */ +- if (hashmap_get(items, sub_path)) +- continue; +- +- if (find_glob(globs, sub_path)) +- continue; ++ found = hashmap_get(items, sub_path); ++ ++ if (!found) ++ found = find_glob(globs, sub_path); ++ ++ if (found) { ++ /* evaluate username arguments in ignore statements */ ++ if (found->type == IGNORE_PATH || found->type == IGNORE_DIRECTORY_PATH) { ++ if (!found->argument) ++ continue; ++ else { ++ struct passwd *pw; ++ char *userfound = NULL, *args = strdup(found->argument); ++ bool match = false; ++ int uid = -1; ++ ++ while ((userfound = strsep(&args, ","))) { ++ pw = getpwnam(userfound); ++ ++ if (!pw) ++ log_error("Unknown user '%s' in ignore statement.", userfound); ++ else { ++ uid = pw->pw_uid; ++ if (s.st_uid == uid) { ++ match = true; ++ break; ++ } ++ } ++ } ++ if (match) { ++ found = NULL; ++ continue; ++ } ++ } ++ } else ++ continue; ++ } + + if (S_ISDIR(s.st_mode)) { + diff --git a/systemd-mini.changes b/systemd-mini.changes index 500446d3..f3cc341f 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Thu Dec 18 13:47:36 UTC 2014 - werner@suse.de + +- Use Robert's latest patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + which drops NAMEPOLICY_KERNEL as this breaks all on current + systems out there + +------------------------------------------------------------------- +Wed Dec 17 14:57:42 UTC 2014 - thomas.blume@suse.com + +- remove 0022-systemd-tmpfiles-ownerkeep.patch since this is now + implemented into the systemd-tmpfiles binary +- add user based ignore statements in tmpfiles removal directives + (bnc#903009) + add systemd-add-user-keep.patch + +------------------------------------------------------------------- +Tue Dec 16 09:45:38 UTC 2014 - thomas.blume@suse.com + +- use --boot option in systemd-tmpfiles-setup-dev.service (bnc#908476) + add upstream patches: + 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch + 0002-man-tmpfiles.d-recommend-using-b-and-c.patch (adapted) + +------------------------------------------------------------------- +Tue Dec 16 08:59:08 UTC 2014 - werner@suse.de + +- Update patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + to Robert's version + +------------------------------------------------------------------- +Mon Dec 15 15:02:22 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-selinux-access-fix-broken-ternary-operator.patch + 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch + 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch + 0004-core-fix-transaction-destructiveness-check-once-more.patch +- Avoid old net devices naming scheme on openSUSE 13.2 and less + maybe caused by patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com @@ -8,8 +52,8 @@ Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com Fri Dec 5 12:51:15 UTC 2014 - werner@suse.de - Add upstream patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - which may solve bsc#907318 + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + which may solve bsc#907318 ------------------------------------------------------------------- Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de @@ -17,7 +61,6 @@ Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de - Add upstream patches 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - 1097-udev-link_setup-respect-kernel-name-assign-policy.patch ------------------------------------------------------------------- Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 865c9716..3bfaeabf 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -42,7 +42,6 @@ %bcond_with udevsettle %endif %bcond_with systemgrps -%{expand: %%global has_tmpkeep %(type -p systemd-tmpfiles-keep &>/dev/null && echo 1 || echo 0)} Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd @@ -169,7 +168,7 @@ Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd Requires(post): /usr/bin/awk Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl +Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 @@ -396,8 +395,6 @@ Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch183: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE 0022-systemd-tmpfiles-ownerkeep.patch -Patch184: 0022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-powerd-initctl-support.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch @@ -1050,6 +1047,21 @@ Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch # PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) Patch513: 513-nspawn-veth.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch +# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) +Patch520: systemd-add-user-keep.patch +# # UDEV PATCHES # ============ @@ -1593,9 +1605,6 @@ cp %{SOURCE7} m4/ %patch181 -p1 %patch182 -p1 %patch183 -p1 -%if 0%{?has_tmpkeep} -%patch184 -p1 -%endif %patch185 -p1 %patch186 -p1 %patch187 -p1 @@ -1925,6 +1934,13 @@ cp %{SOURCE7} m4/ %patch511 -p0 %patch512 -p0 %patch513 -p1 +%patch514 -p0 +%patch515 -p0 +%patch516 -p0 +%patch517 -p0 +%patch518 -p1 +%patch519 -p1 +%patch520 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 500446d3..f3cc341f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Thu Dec 18 13:47:36 UTC 2014 - werner@suse.de + +- Use Robert's latest patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + which drops NAMEPOLICY_KERNEL as this breaks all on current + systems out there + +------------------------------------------------------------------- +Wed Dec 17 14:57:42 UTC 2014 - thomas.blume@suse.com + +- remove 0022-systemd-tmpfiles-ownerkeep.patch since this is now + implemented into the systemd-tmpfiles binary +- add user based ignore statements in tmpfiles removal directives + (bnc#903009) + add systemd-add-user-keep.patch + +------------------------------------------------------------------- +Tue Dec 16 09:45:38 UTC 2014 - thomas.blume@suse.com + +- use --boot option in systemd-tmpfiles-setup-dev.service (bnc#908476) + add upstream patches: + 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch + 0002-man-tmpfiles.d-recommend-using-b-and-c.patch (adapted) + +------------------------------------------------------------------- +Tue Dec 16 08:59:08 UTC 2014 - werner@suse.de + +- Update patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + to Robert's version + +------------------------------------------------------------------- +Mon Dec 15 15:02:22 UTC 2014 - werner@suse.de + +- Add upstream patches + 0001-selinux-access-fix-broken-ternary-operator.patch + 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch + 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch + 0004-core-fix-transaction-destructiveness-check-once-more.patch +- Avoid old net devices naming scheme on openSUSE 13.2 and less + maybe caused by patch + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com @@ -8,8 +52,8 @@ Thu Dec 11 09:32:31 UTC 2014 - thomas.blume@suse.com Fri Dec 5 12:51:15 UTC 2014 - werner@suse.de - Add upstream patch - 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - which may solve bsc#907318 + 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + which may solve bsc#907318 ------------------------------------------------------------------- Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de @@ -17,7 +61,6 @@ Fri Dec 5 12:13:02 UTC 2014 - werner@suse.de - Add upstream patches 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - 1097-udev-link_setup-respect-kernel-name-assign-policy.patch ------------------------------------------------------------------- Fri Nov 28 13:26:21 UTC 2014 - rmilasan@suse.com diff --git a/systemd.spec b/systemd.spec index 09e739dc..2107f0e3 100644 --- a/systemd.spec +++ b/systemd.spec @@ -40,7 +40,6 @@ %bcond_with udevsettle %endif %bcond_with systemgrps -%{expand: %%global has_tmpkeep %(type -p systemd-tmpfiles-keep &>/dev/null && echo 1 || echo 0)} Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd @@ -164,7 +163,7 @@ Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd Requires(post): /usr/bin/awk Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl +Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 @@ -391,8 +390,6 @@ Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch183: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE 0022-systemd-tmpfiles-ownerkeep.patch -Patch184: 0022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-powerd-initctl-support.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch @@ -1045,6 +1042,21 @@ Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch # PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) Patch513: 513-nspawn-veth.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch +# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) +Patch520: systemd-add-user-keep.patch +# # UDEV PATCHES # ============ @@ -1588,9 +1600,6 @@ cp %{SOURCE7} m4/ %patch181 -p1 %patch182 -p1 %patch183 -p1 -%if 0%{?has_tmpkeep} -%patch184 -p1 -%endif %patch185 -p1 %patch186 -p1 %patch187 -p1 @@ -1920,6 +1929,13 @@ cp %{SOURCE7} m4/ %patch511 -p0 %patch512 -p0 %patch513 -p1 +%patch514 -p0 +%patch515 -p0 +%patch516 -p0 +%patch517 -p0 +%patch518 -p1 +%patch519 -p1 +%patch520 -p1 # udev patches %patch1001 -p1 From d0b490f764a9907eb80f08071e246a7d7dc3fb0136091a349880a97eff30546e Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Wed, 21 Jan 2015 20:53:05 +0000 Subject: [PATCH 207/221] Accepting request 280880 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/280880 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=213 --- set-and-use-default-logconsole.patch | 2 +- systemd-mini.spec | 2 +- systemd.changes | 7 +++++++ systemd.spec | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index 559892d5..e13cb6dd 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -105,7 +105,7 @@ Index: src/journal/journald-console.c return; + /* Do not write security/authorization (private) messages to console */ -+ if (priority & LOG_AUTHPRIV) ++ if ((priority & LOG_FACMASK) == LOG_AUTHPRIV) + return; + /* First: timestamp */ diff --git a/systemd-mini.spec b/systemd-mini.spec index 3bfaeabf..cfd53782 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/systemd.changes b/systemd.changes index f3cc341f..e1a7458c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com + +- update set-and-use-default-logconsole.patch - fix comparison of + console log facility that caused journald to skip output to console + (boo#912030) + ------------------------------------------------------------------- Thu Dec 18 13:47:36 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 2107f0e3..3c7e9fb9 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed From 245c6e2aa4920ddf12d8b2f1b0bc50945c27e60331f7cd12c507d91d90ad6251 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 30 Jan 2015 19:31:20 +0000 Subject: [PATCH 208/221] Accepting request 283257 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/283257 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=214 --- kbd-model-map.patch | 23 +++++++++++++++++++++++ systemd-mini.changes | 13 +++++++++++++ systemd-mini.spec | 3 +++ systemd.changes | 6 ++++++ systemd.spec | 3 +++ 5 files changed, 48 insertions(+) create mode 100644 kbd-model-map.patch diff --git a/kbd-model-map.patch b/kbd-model-map.patch new file mode 100644 index 00000000..743a67b2 --- /dev/null +++ b/kbd-model-map.patch @@ -0,0 +1,23 @@ +--- + src/locale/kbd-model-map | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- src/locale/kbd-model-map ++++ src/locale/kbd-model-map 2015-01-20 11:31:38.357518811 +0000 +@@ -63,3 +63,16 @@ by by,us pc105 - terminate:ctrl_alt_ + il il pc105 - terminate:ctrl_alt_bksp + kazakh kz,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll + lt lt pc105 - terminate:ctrl_alt_bksp ++# Additional layouts offered by YaST ++Pl02 pl pc105 - terminate:ctrl_alt_bksp ++arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle ++cn-latin1 ca pc105 multix terminate:ctrl_alt_bksp ++cz-lat2-us cz,us pc105 qwerty,basic terminate:ctrl_alt_bksp,grp:shift_toggle ++es-cp850 es pc105 - terminate:ctrl_alt_bksp ++khmer us,kh pc105 - terminate:ctrl_alt_bksp,grp:alt_shift_toggle ++korean kr pc105 - terminate:ctrl_alt_bksp ++lt.baltic lt pc105 - terminate:ctrl_alt_bksp ++lt.std lt pc105 std terminate:ctrl_alt_bksp ++no-latin1 no pc105 - terminate:ctrl_alt_bksp ++ruwin_alt-UTF-8 us,ru pc105 ,winkeys terminate:ctrl_alt_bksp,grp:ctrl_shift_toggle,grp_led:scroll ++sk-qwertz sk,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle diff --git a/systemd-mini.changes b/systemd-mini.changes index f3cc341f..78b33870 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de + +- Add patch kbd-model-map.patch to add missed keyboard layouts + which are offered by YaST2 (bsc#910643 and boo#897803) + +------------------------------------------------------------------- +Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com + +- update set-and-use-default-logconsole.patch - fix comparison of + console log facility that caused journald to skip output to console + (boo#912030) + ------------------------------------------------------------------- Thu Dec 18 13:47:36 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index cfd53782..015e1e0c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1061,6 +1061,8 @@ Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch +# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) +Patch521: kbd-model-map.patch # # UDEV PATCHES @@ -1941,6 +1943,7 @@ cp %{SOURCE7} m4/ %patch518 -p1 %patch519 -p1 %patch520 -p1 +%patch521 -p0 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index e1a7458c..78b33870 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de + +- Add patch kbd-model-map.patch to add missed keyboard layouts + which are offered by YaST2 (bsc#910643 and boo#897803) + ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd.spec b/systemd.spec index 3c7e9fb9..307e3cab 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1056,6 +1056,8 @@ Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch +# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) +Patch521: kbd-model-map.patch # # UDEV PATCHES @@ -1936,6 +1938,7 @@ cp %{SOURCE7} m4/ %patch518 -p1 %patch519 -p1 %patch520 -p1 +%patch521 -p0 # udev patches %patch1001 -p1 From 70c63e98f93e7d3abb507215913153b9e8a0d2d73b1362b0bc0361fe34d13fd4 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 1 Mar 2015 13:49:19 +0000 Subject: [PATCH 209/221] Accepting request 286653 from Base:System - mark more subpackages as !bootstrap for systemd-mini usage. - spec : remove --with-firmware-path, firmware loader was removed in v217 - spec: remove --disable-multi-seat-x, gone.(fixed in xorg) - spec: Do not enable systemd-readahead-collect.service and systemd-readahead-replay.service as these do not exist anymore. - spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Yast was fixed to write all timezone changes exactly how timedated expects things to be done. - spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg package handles the migration from /etc/HOSTNAME to /etc/hostname and owns both files. -spec: remove boot.udev and systemd-journald.init as they currently serve no purpose. - suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we are in sysvcompat-only codepath, also remove the code targetting other distributions, never compiled as the TARGET_$DISTRO macros are never defined. - systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT - set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards - insserv-generator.patch: Only build when sysvcompat is enabled - vhangup-on-all-consoles.patch add a comment indicating this is a workaround for a kernel bug. - spec: Add option to allow disabling sysvinit compat at build time. - spec: Add option to enable resolved at build time. - spec: Remove all %ifs for !factory products, current systemd releases can neither be built nor installed in older products without upgrading several components of the base system. (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) - spec: remove all dummy "aliases" to /etc/init.d, that made sense only when those init scripts still existed. (dummy localfs.service source: gone) OBS-URL: https://build.opensuse.org/request/show/286653 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=215 --- ...on-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch | 110 - ...escape-unit-names-in-Install-section.patch | 21 - ...-snprintf-a-potentially-NULL-pointer.patch | 25 - 0001-Fix-systemd-stdio-bridge-symlink.patch | 28 - ...g-about-unused-variable-with-SELINUX.patch | 31 - ...s390_con3270_disable_ANSI_colour_esc.patch | 67 +- 0001-activate-fix-fd-leak-in-do_accept.patch | 26 - ...sh-for-reboot-or-hddown-for-poweroff.patch | 49 +- ...network-device-after-NFS-mount-units.patch | 64 +- 0001-architecture-Add-tilegx.patch | 56 - ...restoring-brightness-to-an-unreadabl.patch | 79 - ...completion-fix-__get_startable_units.patch | 25 - ...h-completion-p-option-for-journalctl.patch | 46 - 0001-bnc888612-logind-polkit-acpi.patch | 34 +- ...ibc-s-xattr-support-instead-of-requi.patch | 215 - ...-bus-proxyd-fix-incorrect-comparison.patch | 21 - ...t-s-not-OK-to-invoke-alloca-in-loops.patch | 80 - ...ter-templates-from-restartable-units.patch | 30 - ...ntly-ignore-sections-starting-with-X.patch | 73 - ...-lookup-string-for-BUSNAME_FAILURE_S.patch | 29 - ...core-close-socket-fds-asynchronously.patch | 89 - ...n-t-allow-enabling-if-unit-is-masked.patch | 36 - 0001-core-fix-invalid-free-in-killall.patch | 32 - ...urce-leak-in-manager_environment_add.patch | 32 - ...ake-configured-units-part-of-swap.ta.patch | 76 - ...network-should-be-equivalent-to-netw.patch | 51 - ...e-use-correct-format-string-for-UIDs.patch | 20 - 0001-detect-virt-Fix-Xen-domU-discovery.patch | 33 - ...to-handle-the-3-errnos-that-are-alia.patch | 30 - ...pull-in-sd-event.h-from-event-util.h.patch | 24 - ...or-don-t-return-OOM-on-parentless-de.patch | 20 - ...base-of-Bluetooth-company-identifier.patch | 29 - 0001-hwdb-fix-case-sensitive-match.patch | 25 - ...db-keymaps-for-Samsung-900X3E-900X3F.patch | 40 - 0001-hwdb-update.patch | 6590 -- ....service-ignore-return-code-of-daemo.patch | 29 - ...ount-on-the-compiler-initializing-fo.patch | 30 - ...-up-error-handling-in-update_catalog.patch | 104 - ...-return-early-in-uncompress_startswi.patch | 186 - ...port-of-messages-containing-newlines.patch | 80 - ...t-output-reboot-markers-when-running.patch | 27 - ...map-Add-Lenovo-Enhanced-USB-Keyboard.patch | 36 - ...-support-for-IBM-ThinkPad-X41-Tablet.patch | 38 - ...pad-toggle-on-Toshiba-Satellite-P75-.patch | 27 - ...systemctl-completion-ignore-at-names.patch | 4 +- ...in-fix-memory-leak-on-DropController.patch | 36 - 0001-login-fix-pos-array-allocation.patch | 52 - ...ces-before-acknowledging-VT-switches.patch | 82 - ...sole-setup-when-switching-from-vgaco.patch | 60 - 0001-login-simplify-controller-handling.patch | 118 - ...add-support-for-Triton2-Power-Button.patch | 24 - ...switching-to-unused-VTs-via-SwitchTo.patch | 37 - ...d-switch-if-more-than-1-display-is-c.patch | 168 - ...-don-t-return-uninitialized-variable.patch | 26 - ...-might-fail-due-to-OOM-protect-again.patch | 26 - 0001-make-209-working-on-older-dist.patch | 79 - 0001-make-fortify-happy-with-ppoll.patch | 55 - ...-hppa-has-fewer-rtsigs-hence-avoid-u.patch | 79 - ...bind-mount-journal-on-top-of-a-non-e.patch | 45 - ...-to-create-veth-link-with-too-long-i.patch | 21 - 0001-nspawn-fix-network-interface.patch | 21 - ...ation-of-machine-names-in-interface-.patch | 31 - ...XDG_RUNTIME_DIR_of_the_original_user.patch | 6 +- 0001-parse_uid-return-ENXIO-for-1-uids.patch | 45 - 0001-po-add-Ukrainian-translation.patch | 406 - ...t-of-messages-logged-to-dev-kmsg-whe.patch | 27 - ...-replace-more-dup-by-F_DUPFD_CLOEXEC.patch | 39 - ...k-for-a-64bit-value-when-we-only-hav.patch | 181 - ...handle-removals-of-non-existing-matc.patch | 25 - ...equire-a-signal-event-source-to-be-e.patch | 58 - ...nt-restore-correct-timeout-behaviour.patch | 37 - ...sage-append-fix-uninitialized-memory.patch | 111 - ...x-access-fix-broken-ternary-operator.patch | 23 - ...ion-fix-completion-of-inactive-units.patch | 95 - ...nd-clean-up-initialization-of-struct.patch | 30 - ...troduce-SELinuxContextFromNet-option.patch | 414 - ...tional-overflow-check-when-enlarging.patch | 35 - ...t-error-message-printed-when-bus_pro.patch | 28 - ...to-change-the-default-target-without.patch | 51 - ...et-list-units-unit-files-honour-type.patch | 94 - ...angle-unit-names-for-the-isolate-suf.patch | 52 - ...nue-switch-root-even-if-umount-fails.patch | 50 - ...tect-virt-detect-s390-virtualization.patch | 72 - ...-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch | 39 - ...cripts-which-provide-network-before-.patch | 34 - ...compare-return-against-correct-errno.patch | 26 - ...fix-permissions-on-new-journal-files.patch | 27 - 0001-umount-modernizations.patch | 119 - ...network-pre.target-as-place-to-hook-.patch | 126 - ...xecStopPost-action-part-of-ExecStart.patch | 46 - ...rfkill-service-is-bount-to-the-actua.patch | 32 - ...ork-online.target-after-network.targ.patch | 20 - ...sctl.service.in-run-after-load-modul.patch | 29 - ...etup-dev-allow-unsafe-file-creation-.patch | 24 - ...7F-a-control-chracter-which-it-is-DE.patch | 54 - ...py-character-maps-not-just-fonts-fro.patch | 56 - ...-we-are-running-inside-the-docker-co.patch | 25 - ...irt-rework-container-detection-logic.patch | 159 - ...wdb-entry-for-Samsung-Series-7-Ultra.patch | 31 - ...re-verbose-when-bind-or-listen-fails.patch | 92 - 0002-analyze-avoid-a-null-dereference.patch | 30 - ...bus_open_transport_systemd-instead-o.patch | 46 - 0002-architecture-Add-cris.patch | 55 - ...ht-do-nothing-if-max_brightness-is-0.patch | 108 - ...-use-n-a-if-PRETTY_NAME-is-not-found.patch | 31 - ...emory-leak-when-kdbus-is-not-enabled.patch | 26 - ...sd_bus_try_close-in-exit-on-idle-ser.patch | 59 - 0002-bus-remove-unused-check.patch | 29 - ...nvironment-fields-passed-in-for-tran.patch | 27 - ...-fix-cycle-break-attempts-outside-tr.patch | 42 - ...s-properties-cannot-be-both-writable.patch | 23 - ...ectory-path-if-we-fail-to-remove-it-.patch | 54 - ...ice-name-in-the-message-about-missin.patch | 26 - ...d-add-a-new-chassis-type-for-watches.patch | 26 - ...-for-special-keys-on-compaq-ku-0133-.patch | 42 - ...base-of-Bluetooth-company-identifier.patch | 32 - 0002-hwdb-update.patch | 2058 - ...lude-fcntl.h-rather-than-sys-fcntl.h.patch | 25 - ...s-improve-xz-compression-performance.patch | 82 - ...ly-detect-language-specified-in-line.patch | 99 - ...rnalctl-man-allow-only-between-terms.patch | 109 - ...-MaxFileSec-really-default-to-1month.patch | 30 - ...ophone-mute-keymap-for-Dell-Latitude.patch | 38 - ...eymap-Asus-EeePC-touchpad-toggle-key.patch | 28 - ...cial-keys-on-ThinkPad-X60-X61-Tablet.patch | 33 - ...-touchpad-toggle-key-on-Asus-laptops.patch | 25 - ...ightness-keys-on-Dell-Inspiron-1520-.patch | 41 - ...pos-slot-to-fallback-on-pos-eviction.patch | 52 - ...dd-support-for-TPS65217-Power-Button.patch | 71 - ...kit-policy-for-hibernate-in-line-wit.patch | 28 - 0002-logind-fix-printf-format.patch | 25 - ...l-bus-call-on-machine-objects-when-w.patch | 70 - ...early-and-annually-in-systemd.time-7.patch | 49 - ...t-entire-sections-can-now-be-ignored.patch | 35 - ...n-tmpfiles.d-recommend-using-b-and-c.patch | 24 - ...emory-stream-before-using-the-buffer.patch | 45 - ...pace-fix-uninitialized-memory-access.patch | 28 - ...etting-up-an-inaccessible-mount-poin.patch | 122 - ...ore-journal-directory-is-empty-check.patch | 30 - ...F_DUPFD_CLOEXEC-when-dupping-session.patch | 26 - ...w-we-generate-file-names-from-rfkill.patch | 116 - ...mpletion-prevent-mangling-unit-names.patch | 67 - ...-propose-templates-for-disable-re-en.patch | 111 - ...-arguments-to-run-initramfs-shutdown.patch | 70 - ...s-own-argv-to-run-initramfs-shutdown.patch | 36 - ...ot-return-error-when-snapshot-exists.patch | 25 - ...h-root-umount-the-old-root-correctly.patch | 26 - ...sctl-replaces-some-slashes-with-dots.patch | 97 - ...temctl-obey-state-in-list-unit-files.patch | 28 - ...BindsTo-BoundBy-in-list-dependencies.patch | 35 - ...emctl-update-NAME-to-PATTERN-in-help.patch | 52 - 0002-systemd-fix-error-message.patch | 29 - ...-try-harder-to-bind-to-notify-socket.patch | 44 - ...upport-infinity-syntax-in-parse_nsec.patch | 40 - ...w-Entry-for-Dell-XPS12-9Q33-keyboard.patch | 29 - ...g-caps-so-that-GetAddresses-can-work.patch | 18 - ...emd-fsck-.service-after-local-fs-pre.patch | 29 - ...ty-.service-use-the-default-RestartS.patch | 29 - 0002-util-avoid-non-portable-__WORDSIZE.patch | 25 - ...der-tabs-special-in-string_has_cc-an.patch | 117 - 0002-util-fix-has-cc-check-and-add-test.patch | 25 - ...-race-where-we-might-miss-SIGTERMs-w.patch | 96 - 0002-util-remove-a-unnecessary-check.patch | 25 - ...ping-strings-don-t-allow-smuggling-i.patch | 74 - ...le-setup-run-setfont-before-loadkeys.patch | 167 - 0003-Add-quotes-to-warning-message.patch | 41 - 0003-Always-check-asprintf-return-code.patch | 223 - ...rint-invalid-UTF-8-in-error-messages.patch | 130 - ...-in-suggested-systemctl-commandlines.patch | 68 - 0003-analyze-fix-mem-leak.patch | 27 - 0003-analyze-fix-plot-with-bad-y-size.patch | 31 - 0003-arch-add-crisv32-to-uname-check.patch | 24 - ...-string-table-entries-for-mips-le-ar.patch | 52 - 0003-backlight-unify-error-messages.patch | 115 - ...ot-OK-to-return-1-from-a-main-progra.patch | 27 - ...chart-parse-userinput-with-safe_atoi.patch | 34 - ...-drop-service-from-the-result-string.patch | 25 - ...-put-the-cached-result-of-use_smack-.patch | 32 - 0003-core-allow-transient-mount-units.patch | 115 - ...sure-to-serialize-jobs-for-all-units.patch | 118 - ...der-failure-when-reading-drop-ins-fa.patch | 113 - ...ge-when-inotify-watches-are-exhauste.patch | 30 - ...lt-to-no-hash-when-keyfile-is-specif.patch | 28 - ...do-not-use-unicode-chars-in-C-locale.patch | 134 - ...abel-return-error-when-writing-fails.patch | 30 - ...fsck-implementation-linked-to-bin-tr.patch | 110 - ...-primary-model-string-in-subsystem-m.patch | 51583 ---------------- ...base-of-Bluetooth-company-identifier.patch | 38 - ...l-fix-invalid-free-in-unit_file_mask.patch | 30 - ..._MAC_OVERRIDE-in-journald-for-SMACK-.patch | 41 - ...Adjust-for-more-Samsung-900X4-series.patch | 29 - ...map-Annotate-all-micmute-workarounds.patch | 54 - 0003-keymap-Fix-HP-Pavillon-DV7.patch | 28 - ...onsider-an-unset-model-as-a-wildcard.patch | 39 - ...ing-org.freedesktop.login1.Seat.Swit.patch | 35 - ...d-switch-events-for-30s-after-each-s.patch | 174 - ...tion-XDG_CONFIG_HOME-in-systemd.unit.patch | 40 - ...-man-we-don-t-have-Wanted-dependency.patch | 29 - ...ions-before-other-arguments-to-mount.patch | 39 - ...ure-tmp-var-tmp-and-dev-are-writable.patch | 34 - ...-bus-check-return-value-of-vasprintf.patch | 35 - ...-assert_return-to-check-for-disconne.patch | 498 - ...operties-that-claim-to-be-both-writa.patch | 29 - ...call-epoll_ctl-on-mask-updates-if-ed.patch | 46 - ...rly-convert-object-size-on-big-endia.patch | 39 - ...void-prematurely-rejecting-missing-u.patch | 39 - ...-systemd-use-pager-for-test-and-help.patch | 111 - ...t-from-format_timestamp_relative-on-.patch | 25 - ...password-agent-return-negative-errno.patch | 29 - ...xplicitly-don-t-read-from-invalid-fd.patch | 27 - ...emd-tmpfiles-clean.service-after-tim.patch | 26 - ...useManualStart-from-units-which-are-.patch | 65 - ...de-mixed-for-systemd-nspawn-.service.patch | 26 - ...g-at-the-next-unichar-honour-the-siz.patch | 29 - ...ise-level-of-Found-dependency.-lines.patch | 42 - ...itecture-remove-cris-from-uname-list.patch | 27 - ...error-when-state-restore-is-disabled.patch | 33 - ...f-kernel-exposes-backlight-device-wi.patch | 40 - ...use-list-unit-files-to-get-all-units.patch | 39 - 0004-bootchart-check-return-of-strftime.patch | 63 - 0004-config-parser-fix-mem-leak.patch | 24 - ...rt-for-ERRNO-NOTIFY_SOCKET-message-p.patch | 67 - ...o-relabel-mounts-before-we-loaded-th.patch | 29 - ...tion-destructiveness-check-once-more.patch | 32 - ...the-rescue-argument-to-rescue.target.patch | 27 - ...-add-unit-dependency-on-dev-null-dev.patch | 53 - ...te-more-shell-characters-in-envfiles.patch | 54 - ...y-one-error-in-array-index-assertion.patch | 35 - ...C-network-interface-name-irdac-idrac.patch | 22 - ...rator-properly-escape-instance-names.patch | 39 - ...base-of-Bluetooth-company-identifier.patch | 50 - ...at-description-and-document-reloadin.patch | 60 - 0004-hwdb-update.patch | 3964 -- ...ement-a-union-to-pad-out-file_handle.patch | 117 - ...g-jobs-to-run-queue-in-unit_coldplug.patch | 30 - ...journal-do-server_vacuum-for-sigusr1.patch | 30 - ...ller-should-fail-if-prepare_vt-fails.patch | 134 - ...il-display-count-if-a-device-has-no-.patch | 45 - ...re-GetMachineAddresses-is-available-.patch | 38 - ...ument-missing-options-of-systemd-run.patch | 113 - ...-t-manage-to-properly-allocate-the-e.patch | 43 - ...vent-loop-terminates-explicitly-clos.patch | 27 - ...t-check-the-value-of-received-signal.patch | 46 - ...y-that-object-start-with-the-field-n.patch | 41 - ...ntial-double-free-crash-in-child-pro.patch | 38 - 0004-shared-conf-parser.patch | 31 - ...-don-t-clear-store_wtmp-in-utmp_put_.patch | 106 - ...handle-if-our-service-vanished-durin.patch | 30 - ...d-detect-virt-only-discover-Xen-domU.patch | 79 - ...-python-use-.hex-instead-of-.get_hex.patch | 46 - ...the-first-error-from-manager_startup.patch | 57 - ...e-should-not-allow-files-ending-with.patch | 28 - ...idering-UID-0xFFFF-and-0xFFFFFFFF-va.patch | 31 - ...var-run-with-run-in-remaining-places.patch | 89 - ...ght-Do-not-clamp-brightness-for-LEDs.patch | 60 - ...-saved-brightness-exceeding-max-brig.patch | 64 - ...-try-to-access-data-for-non-existing.patch | 29 - ...avoid-using-m-kdbus-after-freeing-it.patch | 35 - ...s-close-a-bus-that-failed-to-connect.patch | 28 - ...tate-behind-the-D-Bus-API-not-in-the.patch | 137 - ...e-kernel-s-timezone-when-the-RTC-run.patch | 121 - 0005-cryptsetup-fix-an-OOM-check.patch | 25 - ...base-of-Bluetooth-company-identifier.patch | 73 - 0005-hwdb-update.patch | 1560 - ...aiting-jobs-to-run-queue-during-cold.patch | 34 - ...urnalctl-correct-help-text-for-until.patch | 21 - 0005-login-fix-mem-leak.patch | 23 - 0005-logind-fix-policykit-checks.patch | 43 - 0005-logind-fix-typo.patch | 25 - ...switch-handling-from-logind-main-to-.patch | 119 - 0005-man-fix-path-in-crypttab-5.patch | 26 - ...n_by_handle_at-and-others-via-seccom.patch | 94 - 0005-po-add-Greek-translation.patch | 436 - ...daemon-fix-incorrect-variable-access.patch | 25 - ...-stricter-checking-of-random-boot-id.patch | 37 - ...llocation-if-query-ids-never-reuse-t.patch | 45 - ...cept-negative-ERRNO-notification-mes.patch | 25 - ...-label.h-add-missing-stdio.h-include.patch | 24 - 0005-systemd-python-fix-failing-assert.patch | 26 - ...emd-run-add-some-extra-safety-checks.patch | 34 - ...sd-journal-flush-after-sd-remount-fs.patch | 38 - 0005-util-avoid-double-close-of-fd.patch | 28 - ...-return-1-EINVAL-on-allocation-error.patch | 35 - ...k-to-var-run-at-a-couple-of-problems.patch | 60 - 0006-bus-unref-buscreds-on-failure.patch | 32 - 0006-calendarspec-fix-typo-in-annually.patch | 27 - ...base-of-Bluetooth-company-identifier.patch | 82 - 0006-hwdb-update.patch | 4392 -- ...hat-next-entry-is-after-previous-ent.patch | 70 - 0006-journald-fix-minor-memory-leak.patch | 24 - ...-the-kernel-s-quiet-cmdline-argument.patch | 29 - ...add-mir-to-the-list-of-session-types.patch | 90 - ...e-VT-signal-handler-between-sessions.patch | 246 - ...-the-ExecReload-command-should-be-sy.patch | 39 - ...-parse_boolean-require-exact-matches.patch | 48 - ...device-as-SYSTEMD_READY-0-if-no-file.patch | 30 - ...ization-perturbation-value-right-bef.patch | 75 - ...dian.h-add-missing-byteswap.h-includ.patch | 24 - ...temctl-fix-resource-leak-CID-1237747.patch | 35 - ...tatusErrno-value-in-systemctl-status.patch | 37 - ...o-automatic-cleanup-in-XDG_RUNTIME_D.patch | 26 - ...-agent-Do-tell-what-directory-we-fai.patch | 26 - ...t-that-var-run-must-be-a-symlink-run.patch | 30 - 0007-core-fix-a-potential-mem-leak.patch | 25 - ...ss-duplicate-and-misleading-messages.patch | 66 - ...uplicates-copy-full-BindMount-struct.patch | 31 - ...base-of-Bluetooth-company-identifier.patch | 49 - 0007-hwdb-update.patch | 1910 - ...get-file-after-encountering-an-error.patch | 74 - ...eck-journal-file-size-to-deduce-if-i.patch | 55 - ...crease-the-SendBuffer-of-dev-log-to-.patch | 23 - ...d-add-Plantronics-.Audio-mute-button.patch | 32 - ...warn-if-we-fail-to-request-SO_PASSCR.patch | 29 - ...fix-Display-property-of-user-objects.patch | 147 - ...x-cmdline-switch-inconsistency-betwe.patch | 41 - 0007-networkd-fix-typo.patch | 26 - 0007-po-add-German-translation.patch | 448 - ...ccidentally-turn-of-watchdog-timer-e.patch | 29 - ...atus-text-and-errno-values-each-time.patch | 29 - ...not-ignore-errors-in-symlink-removal.patch | 26 - ...skip-mounting-tmp-if-it-is-a-symlink.patch | 26 - ...Reset-signal-mask-on-re-exec-to-init.patch | 51 - ...-system_bus_socket-for-the-D-Bus-soc.patch | 51 - ...-unregister-PIDs-from-PID-hashtables.patch | 102 - ...-Actually-allow-for-succesfully-load.patch | 31 - ...base-of-Bluetooth-company-identifier.patch | 104 - 0008-hwdb-update.patch | 1425 - ...urnald-fix-memory-leak-on-error-path.patch | 29 - ...ep-modes-are-to-be-separated-by-whit.patch | 36 - ...-update-journald-rate-limit-defaults.patch | 28 - ...counting-of-early-mounts-without-SMA.patch | 32 - ...ess-invalid-memory-if-a-signal-match.patch | 27 - ...er-don-t-leak-memory-on-error-in-DEF.patch | 52 - ...ion-prevent-mangling-unit-names-bash.patch | 87 - ...ode-is-long-long-gone-don-t-mention-.patch | 53 - ...til-introduce-sethostname_idempotent.patch | 85 - ...n-the-user-types-a-overly-long-passw.patch | 33 - ...int_property-to-use-int-for-booleans.patch | 29 - ...an-up-signal-reset-logic-when-reexec.patch | 50 - ...base-of-Bluetooth-company-identifier.patch | 38 - 0009-hwdb-update.patch | 3363 - 0009-journal-do-not-leak-mmaps-on-OOM.patch | 50 - ...-by-one-error-in-Missed-X-kernel-mes.patch | 29 - ...add-syslog-facility-for-messages-com.patch | 40 - ...ence-to-systemd-user-sessions.servic.patch | 25 - ...-out-PropertiesChanged-message-if-ac.patch | 70 - ...format-container_uuid-in-UUID-format.patch | 56 - ...ke-if-somebody-sends-us-a-message-wi.patch | 47 - ...systemd-journald.service-Type-notify.patch | 27 - ...ste-error-and-actually-set-the-new-h.patch | 26 - ...base-of-Bluetooth-company-identifier.patch | 77 - ...-suspending-if-there-are-no-displays.patch | 42 - ...-t-kill-the-unit-when-killing-the-le.patch | 32 - 0010-man-update-link-to-LSB.patch | 35 - ...manager-use-correct-cleanup-function.patch | 30 - ...-PropertiesChanged-signals-for-mount.patch | 51 - ...l-unmounting-only-if-not-running-ins.patch | 27 - ...t-fuse.sshfs-as-a-network-filesystem.patch | 25 - ...d-pthread-flag-for-libsystemd-shared.patch | 28 - ...x-corrupt-output-with-empty-messages.patch | 41 - ...emd-bootchart-fix-spacing-in-command.patch | 28 - ...e-we-do-not-try-to-print-missing-fie.patch | 57 - ...o-logic-when-applied-relative-to-ser.patch | 93 - ...-avoid-misleading-error-message-when.patch | 42 - ...e-extra-arguments-with-verify-and-si.patch | 30 - ...ve-stray-reset-of-error-return-value.patch | 24 - 0012-man-add-missing-comma.patch | 26 - ...rint-anything-while-passwords-are-be.patch | 180 - ...-bit-more-NFS-compatible-when-checki.patch | 36 - ...systemd-timedate-udev-spelling-fixes.patch | 118 - ...scape-instance-name-in-systemd-backl.patch | 38 - 0014-journald-with-journaling-FS.patch | 100 +- ...ection-of-missing-proc-self-loginuid.patch | 31 - ...ripts-know-about-Required-and-Should.patch | 68 - ...pletion-smart-to-be-able-to-redirect.patch | 154 +- ...enable-by_path-links-for-ata-devices.patch | 21 +- 1003-udev-netlink-null-rules.patch | 12 +- ...fault-links-for-primary-cd_dvd-drive.patch | 14 +- 1006-udev-always-rename-network.patch | 48 +- 1008-add-msft-compability-rules.patch | 25 - 1009-cdrom_id-use-the-old-MMC-fallback.patch | 54 - ...ev-increase-result-size-for-programs.patch | 13 - 1014-udev-update-net_id-comments.patch | 102 - ...naming-we-cannot-use-virtio-numbers-.patch | 99 - ...name_to_handle_at-is-not-implemented.patch | 30 - ...ynchronize-block-device-event-handli.patch | 83 - ...-the-execution-of-RUN-when-renaming-.patch | 140 - ...-udev-avoid-use-of-uninitialized-err.patch | 37 - ...eyboard-also-hook-into-change-events.patch | 27 - 1021-udev-re-add-persistent-net-rules.patch | 343 +- ...um-API-and-all-assumptions-about-seq.patch | 1445 - ...board-do-tell-on-which-device-EVIOCS.patch | 31 - ...ev-always-close-lock-file-descriptor.patch | 41 - ...ice-mapper-from-block-device-ownersh.patch | 39 - 1026-udevd-inotify-modernizations.patch | 85 - ...change-events-for-partitions-when-to.patch | 84 - 1028-udev-link-config-fix-mem-leak.patch | 34 - ...first-re-reading-the-partition-table.patch | 94 - ...guard-REREADP-logic-with-open-O_ECXL.patch | 23 - ...re-we-always-get-change-for-the-disk.patch | 98 - ...DPT-by-exclusive-lock-instead-of-O_E.patch | 29 - ...lude-device-mapper-from-block-device.patch | 39 - ...eturn-value-from-udev_enumerate_scan.patch | 26 - ...x-invalid-free-in-enable_name_policy.patch | 30 - ...le-fixed-return-code-for-empty-queue.patch | 34 - ...-udev_queue_get_queue_is_empty-logic.patch | 25 - ...ovide-file-descriptor-to-watch-busy-.patch | 248 - ...tch-entire-directory-to-allow-the-re.patch | 40 - 1044-rules-update-qemu-hid-rules.patch | 45 - ...-t-enable-usb-pm-for-Avocent-devices.patch | 29 - ...ink-builtin-should-print-the-reason-.patch | 61 - ...et_setup_link-add-a-bit-more-logging.patch | 39 - ...-ignore-errors-due-to-missing-MAC-ad.patch | 36 - ...-rules-uaccess-add-ID_SOFTWARE_RADIO.patch | 45 - ...from-block-device-ownership-event-lo.patch | 53 - ...add-event-timeout-commandline-option.patch | 119 - 1057-udev-unify-event-timeout-handling.patch | 504 - 1058-udev-unify-event-timeout-handling.patch | 504 - ...t-dd5eddd28a74a49607a8fffcaf960040db.patch | 26 - ...emd-to-manage-loop-device-partitions.patch | 32 - ...press-ID_PATH-for-devices-with-an-un.patch | 96 - ...db-do-not-look-at-usb_device-parents.patch | 63 - ...dev-bump-event-timeout-to-60-seconds.patch | 39 - ...lity-links-for-truncated-by-id-links.patch | 64 +- ...lve-correctly-database-names-on-chan.patch | 53 - ...ink-export-the-.link-filename-applie.patch | 26 - ...link-preserve-ID_NET_LINK_FILE-and-I.patch | 27 - ...et-setup-link-remove-stray-linebreak.patch | 27 - ...full-db-on-MOVE-events-for-devices-w.patch | 54 - ...-udev-netif_rename-don-t-log-to-kmsg.patch | 39 - 1073-udev-drop-print_kmsg.patch | 75 - ...-fix-copy-paste-error-in-log-message.patch | 25 - 1075-udev-timeout-increase-timeout.patch | 28 - ...n-after-a-third-of-the-timeout-befor.patch | 350 - ...n-after-a-third-of-the-timeout-befor.patch | 350 - ...e-userspace-firmware-loading-support.patch | 349 - ...e-userspace-firmware-loading-support.patch | 349 - ...se_argv-warn-if-argumens-are-invalid.patch | 73 - ...vd-check-return-of-various-functions.patch | 55 - ...dm-hwdb-check-return-value-of-fseeko.patch | 45 - ...-udev-node-warn-if-chmod-chown-fails.patch | 34 - ...trl-log-if-setting-SO_PASSCRED-fails.patch | 45 - 1085-udev-fix-typos.patch | 33 - ...-udevd-don-t-fail-if-run-udev-exists.patch | 25 - ...init-timeout-for-kmod-loaded-modules.patch | 135 - 1089-fix-cgroup-device-controller.patch | 74 - ...-supported_parent-for-well-known-SCS.patch | 58 - 1091-udev-path_id-update-comments.patch | 42 - ...dev-do-not-accept-invalid-log-levels.patch | 67 - ...-of-udev.event-timeout-kernel-parame.patch | 23 - ...-constants-in-kernel-cmdline-parsers.patch | 58 - ...t-ssd-disk-to-use-deadline-scheduler.patch | 21 +- 1096-new-udev-root-symlink-generator.patch | 105 +- ...-increase-maximum-number-of-children.patch | 26 +- ...up-respect-kernel-name-assign-policy.patch | 154 - 513-nspawn-veth.patch | 39 - ...es-permissions-to-follow-openSUSE-po.patch | 15 +- ...-suspend-hibernate-calls-to-pm-utils.patch | 49 +- ...pport-for-SysV-scripts-for-the-early.patch | 140 - ...alid-address-familily-is-passed-to-g.patch | 24 - avoid-leaking-socket-descriptors.patch | 339 - boot.udev | 74 - ...le-nss-myhostname-warning-bnc-783841.patch | 18 - ...rtname-is-set-as-hostname-bnc-820213.patch | 17 +- fix-owner-of-var-log-btmp.patch | 20 - ...-boot-prefixed-initscript-bnc-746506.patch | 26 +- ...STEMCTL_OPTIONS-environment-variable.patch | 42 - ...plock-and-compose_table-and-kbd_rate.patch | 95 +- handle-etc-HOSTNAME.patch | 77 - ...lock-value-in-etc-sysconfig-keyboard.patch | 209 +- ...lang-value-in-etc-sysconfig-language.patch | 20 +- insserv-generator.patch | 52 +- journald-advice-about-use-of-memory.patch | 146 +- kbd-model-map.patch | 15 +- ...linker-find-libudev-for-libdevmapper.patch | 40 +- localfs.service | 8 - log-target-null-instead-kmsg.patch | 116 - macros.systemd.upstream | 51 +- ....service-conflict-with-syslog.socket.patch | 19 +- ...USE-etc-sysconfig-kernel-module-list.patch | 64 - ...lly-warn-if-nss-myhostname-is-called.patch | 102 - parse-crypttab-for-noauto-option.patch | 47 +- ...-quit-and-wait-for-emergency-service.patch | 52 +- prepare-suspend-to-disk.patch | 28 - ...script-heuristic-and-add-new-LSB-hea.patch | 91 - respect-nfs-bg-option.patch | 31 +- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 30 +- ...vice-with-detected-pid-as-RemainAfte.patch | 31 - set-and-use-default-logconsole.patch | 47 +- ...ng-assertion-monotonic-clock-message.patch | 38 - shut-up-rpmlint-on-var-log-journal.patch | 14 +- suse-sysv-bootd-support.diff | 86 + ...ndle-boot-sysctl.conf-kernel_release.patch | 28 +- systemctl-set-default-target.patch | 20 +- systemd-210.tar.xz | 3 - systemd-219.tar.xz | 3 + systemd-add-user-keep.patch | 129 +- systemd-dbus-system-bus-address.patch | 39 +- systemd-journald.init | 33 - systemd-mini-rpmlintrc | 2 + systemd-mini.changes | 560 + systemd-mini.spec | 1727 +- systemd-pam_config.patch | 28 +- systemd-powerd-initctl-support.patch | 16 +- systemd-rpmlintrc | 2 + systemd-sleep-grub | 204 - systemd-tmp-safe-defaults.patch | 16 +- systemd.changes | 560 + systemd.spec | 1727 +- ...or-openSUSE-version-of-etc-sysconfig.patch | 24 - ...s-do-not-clean-for-mandb-index-files.patch | 22 - tty-ask-password-agent-on-console.patch | 334 +- ...addentropy-ioctl-to-load-random-seed.patch | 30 +- ...r-sbin-sulogin-for-emergency-service.patch | 44 - vhangup-on-all-consoles.patch | 24 +- watch_resolv.conf_for_become_changed.patch | 52 +- 516 files changed, 2938 insertions(+), 110758 deletions(-) delete mode 100644 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch delete mode 100644 0001-Do-not-unescape-unit-names-in-Install-section.patch delete mode 100644 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch delete mode 100644 0001-Fix-systemd-stdio-bridge-symlink.patch delete mode 100644 0001-Fix-warning-about-unused-variable-with-SELINUX.patch delete mode 100644 0001-activate-fix-fd-leak-in-do_accept.patch delete mode 100644 0001-architecture-Add-tilegx.patch delete mode 100644 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch delete mode 100644 0001-bash-completion-fix-__get_startable_units.patch delete mode 100644 0001-bash-completion-p-option-for-journalctl.patch delete mode 100644 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch delete mode 100644 0001-bus-proxyd-fix-incorrect-comparison.patch delete mode 100644 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch delete mode 100644 0001-completion-filter-templates-from-restartable-units.patch delete mode 100644 0001-conf-parser-silently-ignore-sections-starting-with-X.patch delete mode 100644 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch delete mode 100644 0001-core-close-socket-fds-asynchronously.patch delete mode 100644 0001-core-don-t-allow-enabling-if-unit-is-masked.patch delete mode 100644 0001-core-fix-invalid-free-in-killall.patch delete mode 100644 0001-core-fix-resource-leak-in-manager_environment_add.patch delete mode 100644 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch delete mode 100644 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch delete mode 100644 0001-core-use-correct-format-string-for-UIDs.patch delete mode 100644 0001-detect-virt-Fix-Xen-domU-discovery.patch delete mode 100644 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch delete mode 100644 0001-event-pull-in-sd-event.h-from-event-util.h.patch delete mode 100644 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch delete mode 100644 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0001-hwdb-fix-case-sensitive-match.patch delete mode 100644 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch delete mode 100644 0001-hwdb-update.patch delete mode 100644 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch delete mode 100644 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch delete mode 100644 0001-journal-cleanup-up-error-handling-in-update_catalog.patch delete mode 100644 0001-journal-compress-return-early-in-uncompress_startswi.patch delete mode 100644 0001-journal-fix-export-of-messages-containing-newlines.patch delete mode 100644 0001-journalctl-do-not-output-reboot-markers-when-running.patch delete mode 100644 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch delete mode 100644 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch delete mode 100644 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch delete mode 100644 0001-login-fix-memory-leak-on-DropController.patch delete mode 100644 0001-login-fix-pos-array-allocation.patch delete mode 100644 0001-login-pause-devices-before-acknowledging-VT-switches.patch delete mode 100644 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch delete mode 100644 0001-login-simplify-controller-handling.patch delete mode 100644 0001-logind-add-support-for-Triton2-Power-Button.patch delete mode 100644 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch delete mode 100644 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch delete mode 100644 0001-machine-don-t-return-uninitialized-variable.patch delete mode 100644 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch delete mode 100644 0001-make-209-working-on-older-dist.patch delete mode 100644 0001-make-fortify-happy-with-ppoll.patch delete mode 100644 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch delete mode 100644 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch delete mode 100644 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch delete mode 100644 0001-nspawn-fix-network-interface.patch delete mode 100644 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch delete mode 100644 0001-parse_uid-return-ENXIO-for-1-uids.patch delete mode 100644 0001-po-add-Ukrainian-translation.patch delete mode 100644 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch delete mode 100644 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch delete mode 100644 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch delete mode 100644 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch delete mode 100644 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch delete mode 100644 0001-sd-event-restore-correct-timeout-behaviour.patch delete mode 100644 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch delete mode 100644 0001-selinux-access-fix-broken-ternary-operator.patch delete mode 100644 0001-shell-completion-fix-completion-of-inactive-units.patch delete mode 100644 0001-shutdownd-clean-up-initialization-of-struct.patch delete mode 100644 0001-socket-introduce-SELinuxContextFromNet-option.patch delete mode 100644 0001-strv-add-an-additional-overflow-check-when-enlarging.patch delete mode 100644 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch delete mode 100644 0001-systemctl-allow-to-change-the-default-target-without.patch delete mode 100644 0001-systemctl-let-list-units-unit-files-honour-type.patch delete mode 100644 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch delete mode 100644 0001-systemd-continue-switch-root-even-if-umount-fails.patch delete mode 100644 0001-systemd-detect-virt-detect-s390-virtualization.patch delete mode 100644 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch delete mode 100644 0001-sysv-order-initscripts-which-provide-network-before-.patch delete mode 100644 0001-tmpfiles-compare-return-against-correct-errno.patch delete mode 100644 0001-tmpfiles-fix-permissions-on-new-journal-files.patch delete mode 100644 0001-umount-modernizations.patch delete mode 100644 0001-units-introduce-network-pre.target-as-place-to-hook-.patch delete mode 100644 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch delete mode 100644 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch delete mode 100644 0001-units-order-network-online.target-after-network.targ.patch delete mode 100644 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch delete mode 100644 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch delete mode 100644 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch delete mode 100644 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch delete mode 100644 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch delete mode 100644 0001-virt-rework-container-detection-logic.patch delete mode 100644 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch delete mode 100644 0002-Be-more-verbose-when-bind-or-listen-fails.patch delete mode 100644 0002-analyze-avoid-a-null-dereference.patch delete mode 100644 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch delete mode 100644 0002-architecture-Add-cris.patch delete mode 100644 0002-backlight-do-nothing-if-max_brightness-is-0.patch delete mode 100644 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch delete mode 100644 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch delete mode 100644 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch delete mode 100644 0002-bus-remove-unused-check.patch delete mode 100644 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch delete mode 100644 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch delete mode 100644 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch delete mode 100644 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch delete mode 100644 0002-fsck-include-device-name-in-the-message-about-missin.patch delete mode 100644 0002-hostnamed-add-a-new-chassis-type-for-watches.patch delete mode 100644 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch delete mode 100644 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0002-hwdb-update.patch delete mode 100644 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch delete mode 100644 0002-journal-compress-improve-xz-compression-performance.patch delete mode 100644 0002-journal-properly-detect-language-specified-in-line.patch delete mode 100644 0002-journalctl-man-allow-only-between-terms.patch delete mode 100644 0002-journald-make-MaxFileSec-really-default-to-1month.patch delete mode 100644 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch delete mode 100644 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch delete mode 100644 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch delete mode 100644 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch delete mode 100644 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch delete mode 100644 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch delete mode 100644 0002-logind-add-support-for-TPS65217-Power-Button.patch delete mode 100644 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch delete mode 100644 0002-logind-fix-printf-format.patch delete mode 100644 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch delete mode 100644 0002-man-document-yearly-and-annually-in-systemd.time-7.patch delete mode 100644 0002-man-note-that-entire-sections-can-now-be-ignored.patch delete mode 100644 0002-man-tmpfiles.d-recommend-using-b-and-c.patch delete mode 100644 0002-manager-flush-memory-stream-before-using-the-buffer.patch delete mode 100644 0002-namespace-fix-uninitialized-memory-access.patch delete mode 100644 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch delete mode 100644 0002-nspawn-restore-journal-directory-is-empty-check.patch delete mode 100644 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch delete mode 100644 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch delete mode 100644 0002-shell-completion-prevent-mangling-unit-names.patch delete mode 100644 0002-shell-completion-propose-templates-for-disable-re-en.patch delete mode 100644 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch delete mode 100644 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch delete mode 100644 0002-snapshot-return-error-when-snapshot-exists.patch delete mode 100644 0002-switch-root-umount-the-old-root-correctly.patch delete mode 100644 0002-sysctl-replaces-some-slashes-with-dots.patch delete mode 100644 0002-systemctl-obey-state-in-list-unit-files.patch delete mode 100644 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch delete mode 100644 0002-systemctl-update-NAME-to-PATTERN-in-help.patch delete mode 100644 0002-systemd-fix-error-message.patch delete mode 100644 0002-systemd-try-harder-to-bind-to-notify-socket.patch delete mode 100644 0002-time-also-support-infinity-syntax-in-parse_nsec.patch delete mode 100644 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch delete mode 100644 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch delete mode 100644 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch delete mode 100644 0002-units-serial-getty-.service-use-the-default-RestartS.patch delete mode 100644 0002-util-avoid-non-portable-__WORDSIZE.patch delete mode 100644 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch delete mode 100644 0002-util-fix-has-cc-check-and-add-test.patch delete mode 100644 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch delete mode 100644 0002-util-remove-a-unnecessary-check.patch delete mode 100644 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch delete mode 100644 0002-vconsole-setup-run-setfont-before-loadkeys.patch delete mode 100644 0003-Add-quotes-to-warning-message.patch delete mode 100644 0003-Always-check-asprintf-return-code.patch delete mode 100644 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch delete mode 100644 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch delete mode 100644 0003-analyze-fix-mem-leak.patch delete mode 100644 0003-analyze-fix-plot-with-bad-y-size.patch delete mode 100644 0003-arch-add-crisv32-to-uname-check.patch delete mode 100644 0003-architecture-add-string-table-entries-for-mips-le-ar.patch delete mode 100644 0003-backlight-unify-error-messages.patch delete mode 100644 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch delete mode 100644 0003-bootchart-parse-userinput-with-safe_atoi.patch delete mode 100644 0003-busname-don-t-drop-service-from-the-result-string.patch delete mode 100644 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch delete mode 100644 0003-core-allow-transient-mount-units.patch delete mode 100644 0003-core-make-sure-to-serialize-jobs-for-all-units.patch delete mode 100644 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch delete mode 100644 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch delete mode 100644 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch delete mode 100644 0003-delta-do-not-use-unicode-chars-in-C-locale.patch delete mode 100644 0003-fileio-label-return-error-when-writing-fails.patch delete mode 100644 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch delete mode 100644 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch delete mode 100644 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0003-install-fix-invalid-free-in-unit_file_mask.patch delete mode 100644 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch delete mode 100644 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch delete mode 100644 0003-keymap-Annotate-all-micmute-workarounds.patch delete mode 100644 0003-keymap-Fix-HP-Pavillon-DV7.patch delete mode 100644 0003-localed-consider-an-unset-model-as-a-wildcard.patch delete mode 100644 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch delete mode 100644 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch delete mode 100644 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch delete mode 100644 0003-man-we-don-t-have-Wanted-dependency.patch delete mode 100644 0003-mount-order-options-before-other-arguments-to-mount.patch delete mode 100644 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch delete mode 100644 0003-sd-bus-check-return-value-of-vasprintf.patch delete mode 100644 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch delete mode 100644 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch delete mode 100644 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch delete mode 100644 0003-sd-journal-properly-convert-object-size-on-big-endia.patch delete mode 100644 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch delete mode 100644 0003-systemd-use-pager-for-test-and-help.patch delete mode 100644 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch delete mode 100644 0003-tty-ask-password-agent-return-negative-errno.patch delete mode 100644 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch delete mode 100644 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch delete mode 100644 0003-units-remove-RefuseManualStart-from-units-which-are-.patch delete mode 100644 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch delete mode 100644 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch delete mode 100644 0004-Raise-level-of-Found-dependency.-lines.patch delete mode 100644 0004-architecture-remove-cris-from-uname-list.patch delete mode 100644 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch delete mode 100644 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch delete mode 100644 0004-bash-completion-use-list-unit-files-to-get-all-units.patch delete mode 100644 0004-bootchart-check-return-of-strftime.patch delete mode 100644 0004-config-parser-fix-mem-leak.patch delete mode 100644 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch delete mode 100644 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch delete mode 100644 0004-core-fix-transaction-destructiveness-check-once-more.patch delete mode 100644 0004-core-map-the-rescue-argument-to-rescue.target.patch delete mode 100644 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch delete mode 100644 0004-fileio-quote-more-shell-characters-in-envfiles.patch delete mode 100644 0004-fix-off-by-one-error-in-array-index-assertion.patch delete mode 100644 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch delete mode 100644 0004-getty-generator-properly-escape-instance-names.patch delete mode 100644 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0004-hwdb-update-format-description-and-document-reloadin.patch delete mode 100644 0004-hwdb-update.patch delete mode 100644 0004-implement-a-union-to-pad-out-file_handle.patch delete mode 100644 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch delete mode 100644 0004-journal-do-server_vacuum-for-sigusr1.patch delete mode 100644 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch delete mode 100644 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch delete mode 100644 0004-machined-make-sure-GetMachineAddresses-is-available-.patch delete mode 100644 0004-man-document-missing-options-of-systemd-run.patch delete mode 100644 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch delete mode 100644 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch delete mode 100644 0004-sd-event-check-the-value-of-received-signal.patch delete mode 100644 0004-sd-journal-verify-that-object-start-with-the-field-n.patch delete mode 100644 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch delete mode 100644 0004-shared-conf-parser.patch delete mode 100644 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch delete mode 100644 0004-socket-properly-handle-if-our-service-vanished-durin.patch delete mode 100644 0004-systemd-detect-virt-only-discover-Xen-domU.patch delete mode 100644 0004-systemd-python-use-.hex-instead-of-.get_hex.patch delete mode 100644 0004-systemd-return-the-first-error-from-manager_startup.patch delete mode 100644 0004-util-ignore_file-should-not-allow-files-ending-with.patch delete mode 100644 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch delete mode 100644 0005-Replace-var-run-with-run-in-remaining-places.patch delete mode 100644 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch delete mode 100644 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch delete mode 100644 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch delete mode 100644 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch delete mode 100644 0005-bus-close-a-bus-that-failed-to-connect.patch delete mode 100644 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch delete mode 100644 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch delete mode 100644 0005-cryptsetup-fix-an-OOM-check.patch delete mode 100644 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0005-hwdb-update.patch delete mode 100644 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch delete mode 100644 0005-journalctl-correct-help-text-for-until.patch delete mode 100644 0005-login-fix-mem-leak.patch delete mode 100644 0005-logind-fix-policykit-checks.patch delete mode 100644 0005-logind-fix-typo.patch delete mode 100644 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch delete mode 100644 0005-man-fix-path-in-crypttab-5.patch delete mode 100644 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch delete mode 100644 0005-po-add-Greek-translation.patch delete mode 100644 0005-sd-daemon-fix-incorrect-variable-access.patch delete mode 100644 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch delete mode 100644 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch delete mode 100644 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch delete mode 100644 0005-shared-label.h-add-missing-stdio.h-include.patch delete mode 100644 0005-systemd-python-fix-failing-assert.patch delete mode 100644 0005-systemd-run-add-some-extra-safety-checks.patch delete mode 100644 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch delete mode 100644 0005-util-avoid-double-close-of-fd.patch delete mode 100644 0006-Do-not-return-1-EINVAL-on-allocation-error.patch delete mode 100644 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch delete mode 100644 0006-bus-unref-buscreds-on-failure.patch delete mode 100644 0006-calendarspec-fix-typo-in-annually.patch delete mode 100644 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0006-hwdb-update.patch delete mode 100644 0006-journal-assume-that-next-entry-is-after-previous-ent.patch delete mode 100644 0006-journald-fix-minor-memory-leak.patch delete mode 100644 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch delete mode 100644 0006-login-add-mir-to-the-list-of-session-types.patch delete mode 100644 0006-login-share-VT-signal-handler-between-sessions.patch delete mode 100644 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch delete mode 100644 0006-parse_boolean-require-exact-matches.patch delete mode 100644 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch delete mode 100644 0006-sd-event-initialization-perturbation-value-right-bef.patch delete mode 100644 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch delete mode 100644 0006-systemctl-fix-resource-leak-CID-1237747.patch delete mode 100644 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch delete mode 100644 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch delete mode 100644 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch delete mode 100644 0007-README-document-that-var-run-must-be-a-symlink-run.patch delete mode 100644 0007-core-fix-a-potential-mem-leak.patch delete mode 100644 0007-dbus-suppress-duplicate-and-misleading-messages.patch delete mode 100644 0007-drop_duplicates-copy-full-BindMount-struct.patch delete mode 100644 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0007-hwdb-update.patch delete mode 100644 0007-journal-forget-file-after-encountering-an-error.patch delete mode 100644 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch delete mode 100644 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch delete mode 100644 0007-keyboard-add-Plantronics-.Audio-mute-button.patch delete mode 100644 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch delete mode 100644 0007-logind-fix-Display-property-of-user-objects.patch delete mode 100644 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch delete mode 100644 0007-networkd-fix-typo.patch delete mode 100644 0007-po-add-German-translation.patch delete mode 100644 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch delete mode 100644 0007-service-flush-status-text-and-errno-values-each-time.patch delete mode 100644 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch delete mode 100644 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch delete mode 100644 0008-Reset-signal-mask-on-re-exec-to-init.patch delete mode 100644 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch delete mode 100644 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch delete mode 100644 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch delete mode 100644 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0008-hwdb-update.patch delete mode 100644 0008-journald-fix-memory-leak-on-error-path.patch delete mode 100644 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch delete mode 100644 0008-man-update-journald-rate-limit-defaults.patch delete mode 100644 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch delete mode 100644 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch delete mode 100644 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch delete mode 100644 0008-shell-completion-prevent-mangling-unit-names-bash.patch delete mode 100644 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch delete mode 100644 0008-util-introduce-sethostname_idempotent.patch delete mode 100644 0009-ask-password-when-the-user-types-a-overly-long-passw.patch delete mode 100644 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch delete mode 100644 0009-core-clean-up-signal-reset-logic-when-reexec.patch delete mode 100644 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0009-hwdb-update.patch delete mode 100644 0009-journal-do-not-leak-mmaps-on-OOM.patch delete mode 100644 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch delete mode 100644 0009-journald-always-add-syslog-facility-for-messages-com.patch delete mode 100644 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch delete mode 100644 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch delete mode 100644 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch delete mode 100644 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch delete mode 100644 0009-units-make-systemd-journald.service-Type-notify.patch delete mode 100644 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch delete mode 100644 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0010-logind-allow-suspending-if-there-are-no-displays.patch delete mode 100644 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch delete mode 100644 0010-man-update-link-to-LSB.patch delete mode 100644 0010-manager-use-correct-cleanup-function.patch delete mode 100644 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch delete mode 100644 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch delete mode 100644 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch delete mode 100644 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch delete mode 100644 0011-logs-show-fix-corrupt-output-with-empty-messages.patch delete mode 100644 0011-man-systemd-bootchart-fix-spacing-in-command.patch delete mode 100644 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch delete mode 100644 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch delete mode 100644 0012-core-transaction-avoid-misleading-error-message-when.patch delete mode 100644 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch delete mode 100644 0012-journald-remove-stray-reset-of-error-return-value.patch delete mode 100644 0012-man-add-missing-comma.patch delete mode 100644 0012-manager-do-not-print-anything-while-passwords-are-be.patch delete mode 100644 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch delete mode 100644 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch delete mode 100644 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch delete mode 100644 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch delete mode 100644 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch delete mode 100644 1008-add-msft-compability-rules.patch delete mode 100644 1009-cdrom_id-use-the-old-MMC-fallback.patch delete mode 100644 1010-udev-increase-result-size-for-programs.patch delete mode 100644 1014-udev-update-net_id-comments.patch delete mode 100644 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch delete mode 100644 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch delete mode 100644 1017-udev-serialize-synchronize-block-device-event-handli.patch delete mode 100644 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch delete mode 100644 1019-udev-avoid-use-of-uninitialized-err.patch delete mode 100644 1020-udev-keyboard-also-hook-into-change-events.patch delete mode 100644 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch delete mode 100644 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch delete mode 100644 1024-udev-always-close-lock-file-descriptor.patch delete mode 100644 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch delete mode 100644 1026-udevd-inotify-modernizations.patch delete mode 100644 1027-udev-synthesize-change-events-for-partitions-when-to.patch delete mode 100644 1028-udev-link-config-fix-mem-leak.patch delete mode 100644 1029-udev-try-first-re-reading-the-partition-table.patch delete mode 100644 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch delete mode 100644 1031-udev-make-sure-we-always-get-change-for-the-disk.patch delete mode 100644 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch delete mode 100644 1033-udev-really-exclude-device-mapper-from-block-device.patch delete mode 100644 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch delete mode 100644 1038-udev-fix-invalid-free-in-enable_name_policy.patch delete mode 100644 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch delete mode 100644 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch delete mode 100644 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch delete mode 100644 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch delete mode 100644 1044-rules-update-qemu-hid-rules.patch delete mode 100644 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch delete mode 100644 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch delete mode 100644 1048-udev-net_setup_link-add-a-bit-more-logging.patch delete mode 100644 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch delete mode 100644 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch delete mode 100644 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch delete mode 100644 1056-udevd-add-event-timeout-commandline-option.patch delete mode 100644 1057-udev-unify-event-timeout-handling.patch delete mode 100644 1058-udev-unify-event-timeout-handling.patch delete mode 100644 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch delete mode 100644 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch delete mode 100644 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch delete mode 100644 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch delete mode 100644 1065-udev-bump-event-timeout-to-60-seconds.patch delete mode 100644 1067-udev-always-resolve-correctly-database-names-on-chan.patch delete mode 100644 1068-udev-net_setup_link-export-the-.link-filename-applie.patch delete mode 100644 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch delete mode 100644 1070-rules-net-setup-link-remove-stray-linebreak.patch delete mode 100644 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch delete mode 100644 1072-udev-netif_rename-don-t-log-to-kmsg.patch delete mode 100644 1073-udev-drop-print_kmsg.patch delete mode 100644 1074-udev-fix-copy-paste-error-in-log-message.patch delete mode 100644 1075-udev-timeout-increase-timeout.patch delete mode 100644 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch delete mode 100644 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch delete mode 100644 1078-udev-remove-userspace-firmware-loading-support.patch delete mode 100644 1079-udev-remove-userspace-firmware-loading-support.patch delete mode 100644 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch delete mode 100644 1081-udevd-check-return-of-various-functions.patch delete mode 100644 1082-udevadm-hwdb-check-return-value-of-fseeko.patch delete mode 100644 1083-udev-node-warn-if-chmod-chown-fails.patch delete mode 100644 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch delete mode 100644 1085-udev-fix-typos.patch delete mode 100644 1086-udevd-don-t-fail-if-run-udev-exists.patch delete mode 100644 1087-infinit-timeout-for-kmod-loaded-modules.patch delete mode 100644 1089-fix-cgroup-device-controller.patch delete mode 100644 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch delete mode 100644 1091-udev-path_id-update-comments.patch delete mode 100644 1092-libudev-do-not-accept-invalid-log-levels.patch delete mode 100644 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch delete mode 100644 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch delete mode 100644 1098-udev-link_setup-respect-kernel-name-assign-policy.patch delete mode 100644 513-nspawn-veth.patch delete mode 100644 Revert-service-drop-support-for-SysV-scripts-for-the-early.patch delete mode 100644 avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch delete mode 100644 avoid-leaking-socket-descriptors.patch delete mode 100644 boot.udev delete mode 100644 disable-nss-myhostname-warning-bnc-783841.patch delete mode 100644 fix-owner-of-var-log-btmp.patch delete mode 100644 handle-SYSTEMCTL_OPTIONS-environment-variable.patch delete mode 100644 handle-etc-HOSTNAME.patch delete mode 100644 localfs.service delete mode 100644 log-target-null-instead-kmsg.patch delete mode 100644 module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch delete mode 100644 optionally-warn-if-nss-myhostname-is-called.patch delete mode 100644 prepare-suspend-to-disk.patch delete mode 100644 remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch delete mode 100644 service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch delete mode 100644 shut-up-annoying-assertion-monotonic-clock-message.patch create mode 100644 suse-sysv-bootd-support.diff delete mode 100644 systemd-210.tar.xz create mode 100644 systemd-219.tar.xz delete mode 100644 systemd-journald.init delete mode 100644 systemd-sleep-grub delete mode 100644 timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch delete mode 100644 tmpfiles-do-not-clean-for-mandb-index-files.patch delete mode 100644 use-usr-sbin-sulogin-for-emergency-service.patch diff --git a/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch b/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch deleted file mode 100644 index 53ccbcf5..00000000 --- a/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch +++ /dev/null @@ -1,110 +0,0 @@ -Based on 874bc134ac6504c45e94174e37af13ff21a6bfe2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 14 Jul 2014 16:53:23 -0400 -Subject: [PATCH] Clear up confusion wrt. ENTRY_SIZE_MAX and DATA_SIZE_MAX - -Define DATA_SIZE_MAX to mean the maximum size of a single -field, and ENTRY_SIZE_MAX to mean the size of the whole -entry, with some rough calculation of overhead over the payload. - -Check if entries are not too big when processing native journal -messages. ---- - src/journal/coredump.c | 6 +++--- - src/journal/journald-native.c | 25 +++++++++++++++++++++---- - 2 files changed, 24 insertions(+), 7 deletions(-) ---- src/journal/coredump.c -+++ src/journal/coredump.c 2014-07-16 13:02:54.438235659 +0000 -@@ -38,10 +38,10 @@ - #include "cgroup-util.h" - - /* Few programs have less than 3MiB resident */ --#define COREDUMP_MIN_START (3*1024*1024) -+#define COREDUMP_MIN_START (3*1024*1024u) - /* Make sure to not make this larger than the maximum journal entry -- * size. See ENTRY_SIZE_MAX in journald-native.c. */ --#define COREDUMP_MAX (767*1024*1024) -+ * size. See DATA_SIZE_MAX in journald-native.c. */ -+#define COREDUMP_MAX (1024*1024*767u) - - enum { - ARG_PID = 1, ---- src/journal/journald-native.c -+++ src/journal/journald-native.c 2014-07-16 12:50:45.000000000 +0000 -@@ -34,8 +34,8 @@ - - /* Make sure not to make this smaller than the maximum coredump - * size. See COREDUMP_MAX in coredump.c */ --#define ENTRY_SIZE_MAX (1024*1024*768) --#define DATA_SIZE_MAX (1024*1024*768) -+#define ENTRY_SIZE_MAX (1024*1024*770u) -+#define DATA_SIZE_MAX (1024*1024*768u) - - static bool valid_user_field(const char *p, size_t l) { - const char *a; -@@ -86,7 +86,7 @@ void server_process_native_message( - struct iovec *iovec = NULL; - unsigned n = 0, j, tn = (unsigned) -1; - const char *p; -- size_t remaining, m = 0; -+ size_t remaining, m = 0, entry_size = 0; - int priority = LOG_INFO; - char *identifier = NULL, *message = NULL; - pid_t object_pid = 0; -@@ -110,9 +110,17 @@ void server_process_native_message( - - if (e == p) { - /* Entry separator */ -+ -+ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ -+ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", -+ n, entry_size); -+ continue; -+ } -+ - server_dispatch_message(s, iovec, n, m, ucred, tv, label, label_len, NULL, priority, object_pid); - n = 0; - priority = LOG_INFO; -+ entry_size = 0; - - p++; - remaining--; -@@ -150,6 +158,7 @@ void server_process_native_message( - iovec[n].iov_base = (char*) p; - iovec[n].iov_len = l; - n++; -+ entry_size += iovec[n].iov_len; - - /* We need to determine the priority - * of this entry for the rate limiting -@@ -218,7 +227,7 @@ void server_process_native_message( - l = le64toh(l_le); - - if (l > DATA_SIZE_MAX) { -- log_debug("Received binary data block too large, ignoring."); -+ log_debug("Received binary data block of %zu bytes is too large, ignoring.", l); - break; - } - -@@ -242,6 +251,7 @@ void server_process_native_message( - iovec[n].iov_base = k; - iovec[n].iov_len = (e - p) + 1 + l; - n++; -+ entry_size += iovec[n].iov_len; - } else - free(k); - -@@ -255,6 +265,13 @@ void server_process_native_message( - - tn = n++; - IOVEC_SET_STRING(iovec[tn], "_TRANSPORT=journal"); -+ entry_size += strlen("_TRANSPORT=journal"); -+ -+ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ -+ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", -+ n, entry_size); -+ goto finish; -+ } - - if (message) { - if (s->forward_to_syslog) diff --git a/0001-Do-not-unescape-unit-names-in-Install-section.patch b/0001-Do-not-unescape-unit-names-in-Install-section.patch deleted file mode 100644 index 18e4aaa1..00000000 --- a/0001-Do-not-unescape-unit-names-in-Install-section.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on 000f6e5667eb4f73e137cbd0d7395a9f9db7728a Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Mon, 26 May 2014 20:09:45 +0200 -Subject: [PATCH] Do not unescape unit names in [Install] section - -https://bugs.freedesktop.org/show_bug.cgi?id=49316 ---- - src/shared/conf-parser.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c 2014-05-27 07:36:20.478236631 +0000 -@@ -723,7 +723,7 @@ int config_parse_strv(const char *unit, - FOREACH_WORD_QUOTED(w, l, rvalue, state) { - _cleanup_free_ char *n; - -- n = cunescape_length(w, l); -+ n = strndup(w, l); - if (!n) - return log_oom(); - diff --git a/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch b/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch deleted file mode 100644 index 7f0f7b9c..00000000 --- a/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5effdfa831d75306fc0ff9b47d39997e4ae87f16 Mon Sep 17 00:00:00 2001 -From: Michael Meeks -Date: Tue, 11 Feb 2014 14:42:26 +0000 -Subject: [PATCH] Don't snprintf a potentially NULL pointer. - ---- - src/shared/log.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/log.c b/src/shared/log.c -index 2a075ff..d6b138f 100644 ---- a/src/shared/log.c -+++ b/src/shared/log.c -@@ -479,7 +479,7 @@ static int log_do_header(char *header, size_t size, - func ? "CODE_FUNCTION=" : "", - func ? LINE_MAX : 0, func, - func ? "\n" : "", -- object ? object_name : "", -+ object_name ? object_name : "", - object ? LINE_MAX : 0, object, /* %.0s means no output */ - object ? "\n" : "", - program_invocation_short_name); --- -1.8.4.5 - diff --git a/0001-Fix-systemd-stdio-bridge-symlink.patch b/0001-Fix-systemd-stdio-bridge-symlink.patch deleted file mode 100644 index 02e7e1cc..00000000 --- a/0001-Fix-systemd-stdio-bridge-symlink.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Sun, 2 Mar 2014 23:37:39 -0500 -Subject: [PATCH] Fix systemd-stdio-bridge symlink - -The symlink is created in bindir (/usr/bin), and points to a binary -which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A -relative symlink does not work here. ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git Makefile.am Makefile.am -index 38445fb..e7134a2 100644 ---- Makefile.am -+++ Makefile.am -@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ - - bus-proxyd-install-hook: - $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) -- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge -+ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge - - bus-proxyd-uninstall-hook: - rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge --- -1.7.9.2 - diff --git a/0001-Fix-warning-about-unused-variable-with-SELINUX.patch b/0001-Fix-warning-about-unused-variable-with-SELINUX.patch deleted file mode 100644 index f1fb4ea9..00000000 --- a/0001-Fix-warning-about-unused-variable-with-SELINUX.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 493d521d9ffe706741665a88ea14929913ea2eaf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 23 Sep 2014 09:22:40 -0400 -Subject: [PATCH] Fix warning about unused variable with !SELINUX - -src/shared/label.c:255:15: warning: unused variable 'l' [-Wunused-variable] - char *l = NULL; - ^ ---- - src/shared/label.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/shared/label.c src/shared/label.c -index 02b41f0..b6af38d 100644 ---- src/shared/label.c -+++ src/shared/label.c -@@ -252,9 +252,10 @@ fail: - - int label_get_our_label(char **label) { - int r = -EOPNOTSUPP; -- char *l = NULL; - - #ifdef HAVE_SELINUX -+ char *l = NULL; -+ - r = getcon(&l); - if (r < 0) - return r; --- -1.7.9.2 - diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index f09e8270..ef656b99 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,25 +1,29 @@ --- rules/99-systemd.rules.in | 2 - src/core/manager.c | 24 ++++++++-- - src/shared/util.c | 101 ++++++++++++++++++++++++++++++++++++++++++++-- + src/core/manager.c | 24 ++++++++--- + src/shared/util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- src/shared/util.h | 1 - 4 files changed, 118 insertions(+), 10 deletions(-) + 4 files changed, 116 insertions(+), 10 deletions(-) ---- systemd-208/rules/99-systemd.rules.in -+++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 +Index: systemd/rules/99-systemd.rules.in +=================================================================== +--- systemd.orig/rules/99-systemd.rules.in ++++ systemd/rules/99-systemd.rules.in @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="systemd_end" --SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*", TAG+="systemd" +-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd" +SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" KERNEL=="vport*", TAG+="systemd" ---- systemd-210/src/core/manager.c -+++ systemd-210/src/core/manager.c 2014-04-30 10:51:43.398735332 +0000 -@@ -110,7 +110,7 @@ static int manager_watch_jobs_in_progres +Index: systemd/src/core/manager.c +=================================================================== +--- systemd.orig/src/core/manager.c ++++ systemd/src/core/manager.c +@@ -113,7 +113,7 @@ static int manager_watch_jobs_in_progres #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) @@ -28,7 +32,7 @@ char *p = buffer; assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); -@@ -119,12 +119,14 @@ static void draw_cylon(char buffer[], si +@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si if (pos > 1) { if (pos > 2) p = mempset(p, ' ', pos-2); @@ -45,7 +49,7 @@ *p++ = '*'; } -@@ -135,7 +137,8 @@ static void draw_cylon(char buffer[], si +@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si *p++ = '*'; if (pos < width-1) p = mempset(p, ' ', width-1-pos); @@ -55,7 +59,7 @@ } } -@@ -150,6 +153,7 @@ void manager_flip_auto_status(Manager *m +@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m } static void manager_print_jobs_in_progress(Manager *m) { @@ -63,7 +67,7 @@ _cleanup_free_ char *job_of_n = NULL; Iterator i; Job *j; -@@ -174,10 +178,20 @@ static void manager_print_jobs_in_progre +@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre assert(counter == print_nr + 1); assert(j); @@ -85,9 +89,11 @@ m->jobs_in_progress_iteration++; ---- systemd-210/src/shared/util.c -+++ systemd-210/src/shared/util.c 2014-04-30 10:39:17.154736438 +0000 -@@ -2886,6 +2886,7 @@ int status_vprintf(const char *status, b +Index: systemd/src/shared/util.c +=================================================================== +--- systemd.orig/src/shared/util.c ++++ systemd/src/shared/util.c +@@ -3212,6 +3212,7 @@ int status_vprintf(const char *status, b struct iovec iovec[6] = {}; int n = 0; static bool prev_ephemeral; @@ -95,12 +101,12 @@ assert(format); -@@ -2899,6 +2900,41 @@ int status_vprintf(const char *status, b +@@ -3225,6 +3226,41 @@ int status_vprintf(const char *status, b if (fd < 0) return fd; + if (_unlikely_(is_ansi_console < 0)) -+ is_ansi_console = (int)ansi_console(fd); ++ is_ansi_console = ansi_console(fd); + + if (status && !is_ansi_console) { + const char *esc, *ptr; @@ -137,7 +143,7 @@ if (ellipse) { char *e; size_t emax, sl; -@@ -2921,8 +2957,12 @@ int status_vprintf(const char *status, b +@@ -3247,8 +3283,12 @@ int status_vprintf(const char *status, b } } @@ -152,7 +158,7 @@ prev_ephemeral = ephemeral; if (status) { -@@ -3169,12 +3209,47 @@ void columns_lines_cache_reset(int signu +@@ -3504,8 +3544,22 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; @@ -176,6 +182,9 @@ return cached_on_tty; } +@@ -3523,6 +3577,27 @@ int files_same(const char *filea, const + a.st_ino == b.st_ino; + } +bool ansi_console(int fd) { + static int cached_ansi_console = -1; @@ -199,13 +208,13 @@ +} + int running_in_chroot(void) { - struct stat a = {}, b = {}; + int ret; -@@ -3630,7 +3705,25 @@ bool tty_is_vc_resolve(const char *tty) +@@ -4006,7 +4081,23 @@ bool tty_is_vc_resolve(const char *tty) const char *default_term_for_tty(const char *tty) { assert(tty); -- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102"; +- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220"; + if (tty_is_vc_resolve(tty)) + return "TERM=linux"; + @@ -221,16 +230,16 @@ + if (streq(mode, "3270")) + return "TERM=ibm327x"; + } -+ if (streq(tty, "ttyS1")) -+ return "TERM=vt220"; +#endif -+ return "TERM=vt102"; ++ return "TERM=vt220"; } bool dirent_is_file(const struct dirent *de) { ---- systemd-210/src/shared/util.h -+++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000 -@@ -418,6 +418,7 @@ unsigned lines(void); +Index: systemd/src/shared/util.h +=================================================================== +--- systemd.orig/src/shared/util.h ++++ systemd/src/shared/util.h +@@ -475,6 +475,7 @@ unsigned lines(void); void columns_lines_cache_reset(int _unused_ signum); bool on_tty(void); diff --git a/0001-activate-fix-fd-leak-in-do_accept.patch b/0001-activate-fix-fd-leak-in-do_accept.patch deleted file mode 100644 index 14104a34..00000000 --- a/0001-activate-fix-fd-leak-in-do_accept.patch +++ /dev/null @@ -1,26 +0,0 @@ -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-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index b4aeb6f4..d6b6fa3a 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -1,11 +1,13 @@ --- - systemd-209/src/core/shutdown.c | 4 ++++ - systemd-209/src/systemctl/systemctl.c | 22 +++++++++++++++------- - 2 files changed, 19 insertions(+), 7 deletions(-) + src/core/shutdown.c | 4 ++++ + src/systemctl/systemctl.c | 18 ++++++++++++------ + 2 files changed, 16 insertions(+), 6 deletions(-) ---- systemd-209/src/core/shutdown.c -+++ systemd-209/src/core/shutdown.c 2014-02-28 11:17:22.000000000 +0000 -@@ -449,6 +449,10 @@ int main(int argc, char *argv[]) { +Index: systemd-218/src/core/shutdown.c +=================================================================== +--- systemd-218.orig/src/core/shutdown.c ++++ systemd-218/src/core/shutdown.c +@@ -400,6 +400,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); @@ -16,9 +18,11 @@ if (errno == EPERM && in_container) { /* If we are in a container, and we lacked * CAP_SYS_BOOT just exit, this will kill our ---- systemd-209/src/systemctl/systemctl.c -+++ systemd-209/src/systemctl/systemctl.c 2014-02-28 11:19:35.000000000 +0000 -@@ -93,6 +93,7 @@ static bool arg_no_pager = false; +Index: systemd-218/src/systemctl/systemctl.c +=================================================================== +--- systemd-218.orig/src/systemctl/systemctl.c ++++ systemd-218/src/systemctl/systemctl.c +@@ -94,6 +94,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -26,7 +30,7 @@ static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -5578,6 +5579,7 @@ static int halt_parse_argv(int argc, cha +@@ -6813,6 +6814,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -34,7 +38,7 @@ { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -5629,10 +5631,13 @@ static int halt_parse_argv(int argc, cha +@@ -6865,10 +6867,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -49,17 +53,17 @@ case '?': return -EINVAL; -@@ -6274,20 +6279,23 @@ done: - - static int halt_now(enum action a) { - --/* Make sure C-A-D is handled by the kernel from this +@@ -7511,7 +7516,8 @@ static int halt_now(enum action a) { + /* The kernel will automaticall flush ATA disks and suchlike + * on reboot(), but the file systems need to be synce'd + * explicitly in advance. */ +- sync(); + if (!arg_no_sync) + sync(); -+ -+ /* Make sure C-A-D is handled by the kernel from this - * point on... */ - reboot(RB_ENABLE_CAD); + + /* Make sure C-A-D is handled by the kernel from this point + * on... */ +@@ -7519,14 +7525,14 @@ static int halt_now(enum action a) { switch (a) { @@ -67,12 +71,11 @@ - log_info("Halting."); - reboot(RB_HALT_SYSTEM); - return -errno; -- + case ACTION_POWEROFF: log_info("Powering off."); reboot(RB_POWER_OFF); -+ /* Fall through */ -+ ++ /* fall-through */ + case ACTION_HALT: + log_info("Halting."); + reboot(RB_HALT_SYSTEM); diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index 57a87c73..eb070d64 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -11,19 +11,23 @@ NFS share is added as "After=" dependency to the .mount. src/shared/util.c | 1 5 files changed, 234 insertions(+), 2 deletions(-) ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am 2014-02-26 12:44:20.000000000 +0000 -@@ -994,6 +994,8 @@ libsystemd_core_la_SOURCES = \ +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -1134,6 +1134,8 @@ libsystemd_core_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ + src/core/mount-iface.c \ + src/core/mount-iface.h \ + src/core/kmod-setup.c \ + src/core/kmod-setup.h \ src/core/loopback-setup.h \ - src/core/loopback-setup.c \ - src/core/condition.c \ ---- systemd-210/src/core/mount-iface.c -+++ systemd-210/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 +Index: systemd-218/src/core/mount-iface.c +=================================================================== +--- /dev/null ++++ systemd-218/src/core/mount-iface.c @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -166,7 +170,7 @@ NFS share is added as "After=" dependency to the .mount. + continue; + + ret = ifa->ifa_name; -+ break; ++ break; + } else if (ifa->ifa_addr->sa_family == AF_INET6) { + struct in6_addr *addr, *mask, dest, ip6; + unsigned int prefix; @@ -198,8 +202,10 @@ NFS share is added as "After=" dependency to the .mount. + freeifaddrs(ifa_list); + ifa_list = NULL; +} ---- systemd-210/src/core/mount-iface.h -+++ systemd-210/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 +Index: systemd-218/src/core/mount-iface.h +=================================================================== +--- /dev/null ++++ systemd-218/src/core/mount-iface.h @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -226,9 +232,11 @@ NFS share is added as "After=" dependency to the .mount. + +char *host2iface(const char *ip); +void freeroutes(void); ---- systemd-210/src/core/mount.c -+++ systemd-210/src/core/mount.c 2014-03-03 12:13:23.406246117 +0000 -@@ -36,6 +36,7 @@ +Index: systemd-218/src/core/mount.c +=================================================================== +--- systemd-218.orig/src/core/mount.c ++++ systemd-218/src/core/mount.c +@@ -38,6 +38,7 @@ #include "mkdir.h" #include "path-util.h" #include "mount-setup.h" @@ -236,7 +244,7 @@ NFS share is added as "After=" dependency to the .mount. #include "unit-name.h" #include "dbus-mount.h" #include "special.h" -@@ -1388,8 +1389,9 @@ static int mount_add_one( +@@ -1365,8 +1366,9 @@ static int mount_add_one( _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; @@ -247,7 +255,7 @@ NFS share is added as "After=" dependency to the .mount. int r; assert(m); -@@ -1414,6 +1416,8 @@ static int mount_add_one( +@@ -1391,6 +1393,8 @@ static int mount_add_one( if (!e) return -ENOMEM; @@ -256,16 +264,16 @@ NFS share is added as "After=" dependency to the .mount. u = manager_get_unit(m, e); if (!u) { delete = true; -@@ -1442,7 +1446,7 @@ static int mount_add_one( +@@ -1419,7 +1423,7 @@ static int mount_add_one( if (m->running_as == SYSTEMD_SYSTEM) { const char* target; -- target = fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; +- target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; - r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) -@@ -1519,6 +1523,32 @@ static int mount_add_one( + goto fail; +@@ -1505,6 +1509,32 @@ static int mount_add_one( goto fail; } @@ -288,7 +296,7 @@ NFS share is added as "After=" dependency to the .mount. + else { + r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); + if (r < 0) -+ log_error_unit(u->id, "Failed to add dependency on %s, ignoring: %s", ++ log_unit_error(u->id, "Failed to add dependency on %s, ignoring: %s", + target, strerror(-r)); + } + } @@ -298,21 +306,23 @@ NFS share is added as "After=" dependency to the .mount. if (changed) unit_add_to_dbus_queue(u); -@@ -1583,6 +1613,7 @@ static int mount_load_proc_self_mountinf - if (k < 0) +@@ -1560,6 +1590,7 @@ static int mount_load_proc_self_mountinf + if (r == 0 && k < 0) r = k; } + freeroutes(); /* Just in case of using the routing table with host2iface() */ return r; } ---- systemd-210/src/shared/util.c -+++ systemd-210/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 -@@ -1502,6 +1502,7 @@ bool fstype_is_network(const char *fstyp +Index: systemd-218/src/shared/util.c +=================================================================== +--- systemd-218.orig/src/shared/util.c ++++ systemd-218/src/shared/util.c +@@ -1667,6 +1667,7 @@ bool fstype_is_network(const char *fstyp "ncp\0" "nfs\0" "nfs4\0" + "afs\0" "gfs\0" - "gfs2\0"; - + "gfs2\0" + "glusterfs\0"; diff --git a/0001-architecture-Add-tilegx.patch b/0001-architecture-Add-tilegx.patch deleted file mode 100644 index 277587c3..00000000 --- a/0001-architecture-Add-tilegx.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 46eea341c36f0caf0bdd5b2274a1ef7cb4e83e97 Mon Sep 17 00:00:00 2001 -From: Henrik Grindal Bakken -Date: Thu, 27 Feb 2014 21:19:13 +0100 -Subject: [PATCH] architecture: Add tilegx - -Add Tilera's TILE-GX processor family support. ---- - src/shared/architecture.c | 3 +++ - src/shared/architecture.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index ceba492..fcdb3d5 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -112,6 +112,8 @@ Architecture uname_architecture(void) { - { "sh", ARCHITECTURE_SH }, - #elif defined(__m68k__) - { "m68k", ARCHITECTURE_M68K }, -+#elif defined(__tilegx__) -+ { "tilegx", ARCHITECTURE_TILEGX }, - #else - #error "Please register your architecture here!" - #endif -@@ -158,6 +160,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SH] = "sh", - [ARCHITECTURE_SH64] = "sh64", - [ARCHITECTURE_M68K] = "m68k", -+ [ARCHITECTURE_TILEGX] = "tilegx", - }; - - DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); -diff --git src/shared/architecture.h src/shared/architecture.h -index 3183645..e589a91 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -47,6 +47,7 @@ typedef enum Architecture { - ARCHITECTURE_SH, - ARCHITECTURE_SH64, - ARCHITECTURE_M68K, -+ ARCHITECTURE_TILEGX, - _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 - } Architecture; -@@ -107,6 +108,8 @@ Architecture uname_architecture(void); - # define native_architecture() ARCHITECTURE_SH - #elif defined(__m68k__) - # define native_architecture() ARCHITECTURE_M68K -+#elif defined(__tilegx__) -+# define native_architecture() ARCHITECTURE_TILEGX - #else - #error "Please register your architecture here!" - #endif --- -1.7.9.2 - diff --git a/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch b/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch deleted file mode 100644 index 3b20a7e0..00000000 --- a/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 7b909d7407965c03caaba30daae7aee113627a83 Mon Sep 17 00:00:00 2001 -From: Josh Triplett -Date: Tue, 11 Mar 2014 21:16:33 -0700 -Subject: [PATCH] backlight: Avoid restoring brightness to an unreadably dim - level - -Some systems turn the backlight all the way off at the lowest levels. -Clamp saved brightness to at least 1 or 5% of max_brightness. This -avoids preserving an unreadably dim screen, which would otherwise force -the user to disable state restoration. ---- - src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 44 insertions(+) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index 81470b3..abf8bcf 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -192,6 +192,48 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { - return true; - } - -+/* Some systems turn the backlight all the way off at the lowest levels. -+ * clamp_brightness clamps the saved brightness to at least 1 or 5% of -+ * max_brightness. This avoids preserving an unreadably dim screen, which -+ * would otherwise force the user to disable state restoration. */ -+static void clamp_brightness(struct udev_device *device, char **value) { -+ int r; -+ const char *max_brightness_str; -+ unsigned brightness, max_brightness, new_brightness; -+ -+ max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); -+ if (!max_brightness_str) { -+ log_warning("Failed to read max_brightness attribute; not checking saved brightness"); -+ return; -+ } -+ -+ r = safe_atou(*value, &brightness); -+ if (r < 0) { -+ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); -+ return; -+ } -+ -+ r = safe_atou(max_brightness_str, &max_brightness); -+ if (r < 0) { -+ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ return; -+ } -+ -+ new_brightness = MAX3(brightness, 1U, max_brightness/20); -+ if (new_brightness != brightness) { -+ char *old_value = *value; -+ -+ r = asprintf(value, "%u", new_brightness); -+ if (r < 0) { -+ log_oom(); -+ return; -+ } -+ -+ log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); -+ free(old_value); -+ } -+} -+ - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_device_unref_ struct udev_device *device = NULL; -@@ -306,6 +348,8 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -+ clamp_brightness(device, &value); -+ - r = udev_device_set_sysattr_value(device, "brightness", value); - if (r < 0) { - log_error("Failed to write system attribute: %s", strerror(-r)); --- -1.7.9.2 - diff --git a/0001-bash-completion-fix-__get_startable_units.patch b/0001-bash-completion-fix-__get_startable_units.patch deleted file mode 100644 index 815e6abd..00000000 --- a/0001-bash-completion-fix-__get_startable_units.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a163b64c4b08e8a4ad39a9a295acf3d1634024a3 Mon Sep 17 00:00:00 2001 -From: Dan Kilman -Date: Sun, 13 Apr 2014 18:06:13 +0300 -Subject: [PATCH] bash completion: fix __get_startable_units - ---- - shell-completion/bash/systemctl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl -index 992e52d..e1c8420 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -56,7 +56,7 @@ __get_all_units () { __systemctl $1 list-units --all \ - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } - __get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ -- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed " ]] && echo " $a"; done; }; } -+ | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } - __get_failed_units () { __systemctl $1 list-units \ - | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } - __get_enabled_units () { __systemctl $1 list-unit-files \ --- -1.7.9.2 - diff --git a/0001-bash-completion-p-option-for-journalctl.patch b/0001-bash-completion-p-option-for-journalctl.patch deleted file mode 100644 index f41318f5..00000000 --- a/0001-bash-completion-p-option-for-journalctl.patch +++ /dev/null @@ -1,46 +0,0 @@ -From be8f4a9fa732d61e845e1ab1a62ac3a6b368d3a7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 19 Jul 2014 19:46:04 -0400 -Subject: [PATCH] bash-completion: -p option for journalctl - ---- - shell-completion/bash/journalctl | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git shell-completion/bash/journalctl shell-completion/bash/journalctl -index e4b2f4a..14dcd22 100644 ---- shell-completion/bash/journalctl -+++ shell-completion/bash/journalctl -@@ -35,6 +35,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} - _UDEV_{SYSNAME,DEVNODE,DEVLINK} - __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) - -+__syslog_priorities=(emerg alert crit err warning notice info debug) -+ - _journalctl() { - local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} - local -A OPTS=( -@@ -44,8 +46,8 @@ _journalctl() { - --no-tail -q --quiet --setup-keys --this-boot --verify - --version --list-catalog --update-catalog --list-boots' - [ARG]='-b --boot --this-boot -D --directory --file -F --field -- -o --output -u --unit --user-unit' -- [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until -+ -o --output -u --unit --user-unit -p --priority' -+ [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until - --verify-key' - ) - -@@ -68,6 +70,9 @@ _journalctl() { - --field|-F) - comps=${__journal_fields[*]} - ;; -+ --priority|-p) -+ comps=${__syslog_priorities[*]} -+ ;; - --unit|-u) - comps=$(journalctl -F '_SYSTEMD_UNIT' 2>/dev/null) - ;; --- -1.7.9.2 - diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index a7021400..104339e0 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -3,11 +3,11 @@ src/login/logind-dbus.c | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) -Index: systemd-210/src/login/logind-action.c +Index: systemd-218/src/login/logind-action.c =================================================================== ---- systemd-210.orig/src/login/logind-action.c -+++ systemd-210/src/login/logind-action.c -@@ -101,6 +101,11 @@ int manager_handle_action( +--- systemd-218.orig/src/login/logind-action.c ++++ systemd-218/src/login/logind-action.c +@@ -83,6 +83,11 @@ int manager_handle_action( /* If the key handling is inhibited, don't do anything */ if (inhibit_key > 0) { @@ -19,11 +19,11 @@ Index: systemd-210/src/login/logind-action.c if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); return 0; -Index: systemd-210/src/login/logind-dbus.c +Index: systemd-218/src/login/logind-dbus.c =================================================================== ---- systemd-210.orig/src/login/logind-dbus.c -+++ systemd-210/src/login/logind-dbus.c -@@ -1469,9 +1469,11 @@ static int method_do_shutdown_or_sleep( +--- systemd-218.orig/src/login/logind-dbus.c ++++ systemd-218/src/login/logind-dbus.c +@@ -1487,9 +1487,11 @@ static int method_do_shutdown_or_sleep( sd_bus_error *error) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; @@ -36,7 +36,7 @@ Index: systemd-210/src/login/logind-dbus.c assert(m); assert(message); -@@ -1515,7 +1517,17 @@ static int method_do_shutdown_or_sleep( +@@ -1533,7 +1535,17 @@ static int method_do_shutdown_or_sleep( multiple_sessions = r > 0; blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); @@ -52,24 +52,24 @@ Index: systemd-210/src/login/logind-dbus.c + + + if (multiple_sessions && !shutdown_through_acpi) { - r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, - action_multiple_sessions, interactive, error, method, m); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, &m->polkit_registry, error); if (r < 0) -@@ -1524,7 +1536,7 @@ static int method_do_shutdown_or_sleep( + return r; +@@ -1541,7 +1553,7 @@ static int method_do_shutdown_or_sleep( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (blocked) { + if (blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, - action_ignore_inhibit, interactive, error, method, m); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, &m->polkit_registry, error); if (r < 0) -@@ -1533,7 +1545,7 @@ static int method_do_shutdown_or_sleep( + return r; +@@ -1549,7 +1561,7 @@ static int method_do_shutdown_or_sleep( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (!multiple_sessions && !blocked) { + if (!multiple_sessions && !blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, - action, interactive, error, method, m); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, &m->polkit_registry, error); if (r < 0) + return r; diff --git a/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch b/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch deleted file mode 100644 index f8632b99..00000000 --- a/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +++ /dev/null @@ -1,215 +0,0 @@ -Based on d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 28 May 2014 17:36:40 +0800 -Subject: [PATCH] build-sys: use glibc's xattr support instead of requiring - libattr - ---- - configure.ac | 53 ++----------------------------------------- - src/core/mount-setup.c | 2 - - src/core/socket.c | 4 --- - src/journal/journal-file.c | 7 ----- - src/journal/journal-vacuum.c | 10 -------- - src/shared/label.c | 2 - - src/shared/smack-util.c | 4 --- - 7 files changed, 7 insertions(+), 75 deletions(-) - ---- configure.ac -+++ configure.ac 2014-06-03 00:00:00.000000000 +0000 -@@ -526,44 +526,6 @@ AC_SUBST(ACL_LIBS) - AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno]) - - # ------------------------------------------------------------------------------ --AC_ARG_ENABLE([xattr], -- AS_HELP_STRING([--disable-xattr],[Disable optional XATTR support]), -- [case "${enableval}" in -- yes) have_xattr=yes ;; -- no) have_xattr=no ;; -- *) AC_MSG_ERROR(bad value ${enableval} for --disable-xattr) ;; -- esac], -- [have_xattr=auto]) -- --if test "x${have_xattr}" != xno ; then -- AC_CHECK_HEADERS( -- [attr/xattr.h], -- [have_xattr=yes], -- [if test "x$have_xattr" = xyes ; then -- AC_MSG_ERROR([*** XATTR headers not found.]) -- fi]) -- -- AC_CHECK_LIB( -- [attr], -- [fsetxattr], -- [have_xattr=yes], -- [if test "x$have_xattr" = xyes ; then -- AC_MSG_ERROR([*** libattr not found.]) -- fi]) -- -- if test "x$have_xattr" = xyes ; then -- XATTR_LIBS="-lattr" -- AC_DEFINE(HAVE_XATTR, 1, [XATTR available]) -- else -- have_xattr=no -- fi --else -- XATTR_LIBS= --fi --AC_SUBST(XATTR_LIBS) --AM_CONDITIONAL([HAVE_XATTR], [test "x$have_xattr" != xno]) -- --# ------------------------------------------------------------------------------ - AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK support]), - [case "${enableval}" in - yes) have_smack=yes ;; -@@ -572,17 +534,9 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([- - esac], - [have_smack=auto]) - --if test "x${have_xattr}" = xno; then -- if test "x${have_smack}" = xyes; then -- AC_MSG_ERROR(SMACK requires xattr support) -- else -- have_smack=no -- fi --else -- if test "x${have_smack}" = xauto; then -- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" -- have_smack=yes -- fi -+if test "x${have_smack}" = xauto; then -+ M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" -+ have_smack=yes - fi - - AC_ARG_WITH(smack-run-label, -@@ -1131,7 +1085,6 @@ AC_MSG_RESULT([ - SMACK: ${have_smack} - XZ: ${have_xz} - ACL: ${have_acl} -- XATTR: ${have_xattr} - GCRYPT: ${have_gcrypt} - QRENCODE: ${have_qrencode} - MICROHTTPD: ${have_microhttpd} ---- src/core/mount-setup.c -+++ src/core/mount-setup.c 2014-06-03 00:00:00.000000000 +0000 -@@ -93,10 +93,8 @@ static const MountPoint mount_table[] = - NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, - NULL, MNT_IN_CONTAINER }, --#ifdef HAVE_XATTR - { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV, - NULL, MNT_IN_CONTAINER }, --#endif - { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, - NULL, MNT_IN_CONTAINER }, - { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ---- src/core/socket.c -+++ src/core/socket.c 2014-06-03 00:00:00.000000000 +0000 -@@ -29,9 +29,7 @@ - #include - #include - #include --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "sd-event.h" - #include "log.h" ---- src/journal/journal-file.c -+++ src/journal/journal-file.c 2014-06-03 00:00:00.000000000 +0000 -@@ -26,10 +26,7 @@ - #include - #include - #include -- --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "journal-def.h" - #include "journal-file.h" -@@ -2515,7 +2512,6 @@ int journal_file_open( - } - - if (f->last_stat.st_size == 0 && f->writable) { --#ifdef HAVE_XATTR - uint64_t crtime; - - /* Let's attach the creation time to the journal file, -@@ -2530,7 +2526,6 @@ int journal_file_open( - - crtime = htole64((uint64_t) now(CLOCK_REALTIME)); - fsetxattr(f->fd, "user.crtime_usec", &crtime, sizeof(crtime), XATTR_CREATE); --#endif - - #ifdef HAVE_GCRYPT - /* Try to load the FSPRG state, and if we can't, then ---- src/journal/journal-vacuum.c -+++ src/journal/journal-vacuum.c 2014-06-03 00:00:00.000000000 +0000 -@@ -24,10 +24,7 @@ - #include - #include - #include -- --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "journal-def.h" - #include "journal-file.h" -@@ -79,11 +76,8 @@ static void patch_realtime( - unsigned long long *realtime) { - - usec_t x; -- --#ifdef HAVE_XATTR - uint64_t crtime; - _cleanup_free_ const char *path = NULL; --#endif - - /* The timestamp was determined by the file name, but let's - * see if the file might actually be older than the file name -@@ -106,7 +100,6 @@ static void patch_realtime( - if (x > 0 && x != (usec_t) -1 && x < *realtime) - *realtime = x; - --#ifdef HAVE_XATTR - /* Let's read the original creation time, if possible. Ideally - * we'd just query the creation time the FS might provide, but - * unfortunately there's currently no sane API to query -@@ -125,7 +118,6 @@ static void patch_realtime( - if (crtime > 0 && crtime != (uint64_t) -1 && crtime < *realtime) - *realtime = crtime; - } --#endif - } - - static int journal_file_empty(int dir_fd, const char *name) { ---- src/shared/label.c -+++ src/shared/label.c 2014-06-03 00:00:00.000000000 +0000 -@@ -27,9 +27,7 @@ - #include - #include - #include --#ifdef HAVE_XATTR - #include --#endif - #ifdef HAVE_SELINUX - #include - #include ---- src/shared/smack-util.c -+++ src/shared/smack-util.c 2014-06-03 00:00:00.000000000 +0000 -@@ -23,9 +23,7 @@ - - #include - #include --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "smack-util.h" - diff --git a/0001-bus-proxyd-fix-incorrect-comparison.patch b/0001-bus-proxyd-fix-incorrect-comparison.patch deleted file mode 100644 index 404e4c8d..00000000 --- a/0001-bus-proxyd-fix-incorrect-comparison.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on e05aa2e02ba35d8b3741dddb79af3c802308414b Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 25 Jul 2014 10:25:06 +0200 -Subject: [PATCH] bus-proxyd: fix incorrect comparison - -We should be interested in k variable. ---- - src/bus-proxyd/bus-proxyd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/bus-proxyd/bus-proxyd.c -+++ src/bus-proxyd/bus-proxyd.c 2014-07-28 09:37:29.274735818 +0000 -@@ -698,7 +698,7 @@ int main(int argc, char *argv[]) { - - k = sd_bus_send(a, m, NULL); - if (k < 0) { -- if (r == -ECONNRESET) -+ if (k == -ECONNRESET) - r = 0; - else { - r = k; diff --git a/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch b/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch deleted file mode 100644 index 06845364..00000000 --- a/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a641dcd9bf05418d6a6c165e1c0cff615b4a0f47 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 18 Mar 2014 04:06:36 +0100 -Subject: [PATCH] cgroup: it's not OK to invoke alloca() in loops - ---- - src/core/mount-setup.c | 20 ++++++++++++++------ - 1 file changed, 14 insertions(+), 6 deletions(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index 387030a..c6d3f4b 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -216,10 +216,10 @@ int mount_setup_early(void) { - } - - int mount_cgroup_controllers(char ***join_controllers) { -- int r; -- char buf[LINE_MAX]; - _cleanup_set_free_free_ Set *controllers = NULL; - _cleanup_fclose_ FILE *f; -+ char buf[LINE_MAX]; -+ int r; - - /* Mount all available cgroup controllers that are built into the kernel. */ - -@@ -262,6 +262,7 @@ int mount_cgroup_controllers(char ***join_controllers) { - } - - for (;;) { -+ _cleanup_free_ char *options = NULL, *controller = NULL, *where = NULL; - MountPoint p = { - .what = "cgroup", - .type = "cgroup", -@@ -269,7 +270,6 @@ int mount_cgroup_controllers(char ***join_controllers) { - .mode = MNT_IN_CONTAINER, - }; - char ***k = NULL; -- _cleanup_free_ char *options = NULL, *controller; - - controller = set_steal_first(controllers); - if (!controller) -@@ -286,7 +286,7 @@ int mount_cgroup_controllers(char ***join_controllers) { - for (i = *k, j = *k; *i; i++) { - - if (!streq(*i, controller)) { -- char _cleanup_free_ *t; -+ _cleanup_free_ char *t; - - t = set_remove(controllers, *i); - if (!t) { -@@ -308,7 +308,11 @@ int mount_cgroup_controllers(char ***join_controllers) { - controller = NULL; - } - -- p.where = strappenda("/sys/fs/cgroup/", options); -+ where = strappend("/sys/fs/cgroup/", options); -+ if (!where) -+ return log_oom(); -+ -+ p.where = where; - p.options = options; - - r = mount_one(&p, true); -@@ -319,7 +323,11 @@ int mount_cgroup_controllers(char ***join_controllers) { - char **i; - - for (i = *k; *i; i++) { -- char *t = strappenda("/sys/fs/cgroup/", *i); -+ _cleanup_free_ char *t = NULL; -+ -+ t = strappend("/sys/fs/cgroup/", *i); -+ if (!t) -+ return log_oom(); - - r = symlink(options, t); - if (r < 0 && errno != EEXIST) { --- -1.7.9.2 - diff --git a/0001-completion-filter-templates-from-restartable-units.patch b/0001-completion-filter-templates-from-restartable-units.patch deleted file mode 100644 index 13e03e03..00000000 --- a/0001-completion-filter-templates-from-restartable-units.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on ec15977a3cd82eff6c94bb13db72195f7cd512e8 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Fri, 29 Aug 2014 20:35:15 -0400 -Subject: [PATCH] completion: filter templates from restartable units - -Since c6a373a2634854, we might encounter unit templates via the -'list-units' verb. These aren't restartable (and we throw errors), so -make sure they're filtered out of the completion options. - -fixes downstream bug: https://bugs.archlinux.org/task/41719 ---- - shell-completion/bash/systemctl.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in -index 64b15df..0150018 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -182,7 +182,7 @@ _systemctl () { - comps=$( __filter_units_by_property $mode CanStart yes \ - $( __get_all_units $mode \ - | while read -r line; do \ -- [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ -+ [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ - done )) - compopt -o filenames - --- -1.7.9.2 - diff --git a/0001-conf-parser-silently-ignore-sections-starting-with-X.patch b/0001-conf-parser-silently-ignore-sections-starting-with-X.patch deleted file mode 100644 index 8ae66062..00000000 --- a/0001-conf-parser-silently-ignore-sections-starting-with-X.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 342aea195051633c69ba7b8c02c82a0e5f8cbde4 Mon Sep 17 00:00:00 2001 -From: Michael Marineau -Date: Fri, 16 May 2014 16:58:31 -0700 -Subject: [PATCH] conf-parser: silently ignore sections starting with "X-" - -This allows external tools to keep additional unit information in a -separate section without scaring users with a big warning. ---- - src/shared/conf-parser.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git src/shared/conf-parser.c src/shared/conf-parser.c -index d27b1b7..062b15b 100644 ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c -@@ -204,6 +204,7 @@ static int parse_line(const char* unit, - bool allow_include, - char **section, - unsigned *section_line, -+ bool *section_ignored, - char *l, - void *userdata) { - -@@ -266,7 +267,7 @@ static int parse_line(const char* unit, - - if (sections && !nulstr_contains(sections, n)) { - -- if (!relaxed) -+ if (!relaxed && !startswith(n, "X-")) - log_syntax(unit, LOG_WARNING, filename, line, EINVAL, - "Unknown section '%s'. Ignoring.", n); - -@@ -274,10 +275,12 @@ static int parse_line(const char* unit, - free(*section); - *section = NULL; - *section_line = 0; -+ *section_ignored = true; - } else { - free(*section); - *section = n; - *section_line = line; -+ *section_ignored = false; - } - - return 0; -@@ -285,7 +288,7 @@ static int parse_line(const char* unit, - - if (sections && !*section) { - -- if (!relaxed) -+ if (!relaxed && !*section_ignored) - log_syntax(unit, LOG_WARNING, filename, line, EINVAL, - "Assignment outside of section. Ignoring."); - -@@ -328,6 +331,7 @@ int config_parse(const char *unit, - _cleanup_free_ char *section = NULL, *continuation = NULL; - _cleanup_fclose_ FILE *ours = NULL; - unsigned line = 0, section_line = 0; -+ bool section_ignored = false; - int r; - - assert(filename); -@@ -399,6 +403,7 @@ int config_parse(const char *unit, - allow_include, - §ion, - §ion_line, -+ §ion_ignored, - p, - userdata); - free(c); --- -1.7.9.2 - diff --git a/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch b/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch deleted file mode 100644 index b8989aef..00000000 --- a/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 36d239dbdaf94ba2d96bb60ac45ecfc58624b1eb Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 7 Mar 2014 11:41:18 +0100 -Subject: [PATCH] core/busname: add lookup string for - BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT - -When a busname unit enters BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT, the -serialization will not be able to look up the result as string via -busname_result_to_string(). This leads to an assertion trap during -daemon-reexec. ---- - src/core/busname.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/core/busname.c src/core/busname.c -index 4c34538..237011a 100644 ---- src/core/busname.c -+++ src/core/busname.c -@@ -548,6 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); - static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { - [BUSNAME_SUCCESS] = "success", - [BUSNAME_FAILURE_RESOURCES] = "resources", -+ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", - }; - - DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); --- -1.7.9.2 - diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch deleted file mode 100644 index 90649f90..00000000 --- a/0001-core-close-socket-fds-asynchronously.patch +++ /dev/null @@ -1,89 +0,0 @@ -Based on 574634bcacb01efe15ca2742effd461a5b7afb5f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 13 May 2014 23:22:13 +0200 -Subject: [PATCH] core: close socket fds asynchronously - -http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html ---- - src/core/async.c | 24 ++++++++++++++++++++++++ - src/core/service.c | 5 +++-- - 2 files changed, 27 insertions(+), 2 deletions(-) - -Index: src/core/service.c -=================================================================== ---- src/core/service.c.orig -+++ src/core/service.c -@@ -25,6 +25,7 @@ - #include - #include - -+#include "async.h" - #include "manager.h" - #include "unit.h" - #include "service.h" -@@ -240,7 +241,7 @@ static void service_close_socket_fd(Serv - if (s->socket_fd < 0) - return; - -- close_nointr_nofail(s->socket_fd); -+ asynchronous_close(s->socket_fd); - s->socket_fd = -1; - } - -@@ -2767,7 +2768,7 @@ static int service_deserialize_item(Unit - else { - - if (s->socket_fd >= 0) -- close_nointr_nofail(s->socket_fd); -+ asynchronous_close(s->socket_fd); - s->socket_fd = fdset_remove(fds, fd); - } - } else if (streq(key, "main-exec-status-pid")) { -Index: src/core/async.c -=================================================================== ---- src/core/async.c.orig -+++ src/core/async.c -@@ -24,6 +24,7 @@ - - #include "async.h" - #include "log.h" -+#include "util.h" - - int asynchronous_job(void* (*func)(void *p), void *arg) { - pthread_attr_t a; -@@ -70,3 +71,26 @@ int asynchronous_sync(void) { - - return asynchronous_job(sync_thread, NULL); - } -+ -+static void *close_thread(void *p) { -+ int fd = PTR_TO_INT(p); -+ if (fd >= 0) -+ close_nointr_nofail(fd); -+ return NULL; -+} -+ -+int asynchronous_close(int fd) { -+ int r; -+ -+ /* This is supposed to behave similar to safe_close(), but -+ * actually invoke close() asynchronously, so that it will -+ * never block. Ideally the kernel would have an API for this, -+ * but it doesn't, so we work around it, and hide this as a -+ * far away as we can. */ -+ -+ r = asynchronous_job(close_thread, INT_TO_PTR(fd)); -+ if (r < 0 && fd >= 0) -+ close_nointr_nofail(fd); -+ -+ return -1; -+} -Index: src/core/async.h -=================================================================== ---- src/core/async.h.orig -+++ src/core/async.h -@@ -23,3 +23,4 @@ - - int asynchronous_job(void* (*func)(void *p), void *arg); - int asynchronous_sync(void); -+int asynchronous_close(int fd); diff --git a/0001-core-don-t-allow-enabling-if-unit-is-masked.patch b/0001-core-don-t-allow-enabling-if-unit-is-masked.patch deleted file mode 100644 index 7e193738..00000000 --- a/0001-core-don-t-allow-enabling-if-unit-is-masked.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f7101b7368dfe41dbc8b7203e06133cccb589c01 Mon Sep 17 00:00:00 2001 -From: Jan Synacek -Date: Tue, 7 Oct 2014 13:35:41 +0200 -Subject: [PATCH] core: don't allow enabling if unit is masked - ---- - src/shared/install.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git src/shared/install.c src/shared/install.c -index fa064c2..945bb27 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -1516,6 +1516,19 @@ int unit_file_enable( - return r; - - STRV_FOREACH(i, files) { -+ UnitFileState state; -+ -+ state = unit_file_get_state(scope, root_dir, *i); -+ if (state < 0) { -+ log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); -+ return state; -+ } -+ -+ if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { -+ log_error("Failed to enable unit: Unit %s is masked", *i); -+ return -ENOTSUP; -+ } -+ - r = install_info_add_auto(&c, *i); - if (r < 0) - return r; --- -1.7.9.2 - diff --git a/0001-core-fix-invalid-free-in-killall.patch b/0001-core-fix-invalid-free-in-killall.patch deleted file mode 100644 index 23d527e8..00000000 --- a/0001-core-fix-invalid-free-in-killall.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3e09eb5c83e56bc0184bd9d9c44f76047464f77c Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Fri, 13 Jun 2014 18:48:19 +0200 -Subject: [PATCH] core: fix invalid free() in killall() - -static int killall(....) in ./src/core/killall.c tries to get "s" -initialized by calling get_process_comm(...) which calls -read_one_line_file(...) which if it fails will mean it is left -uninitialized. -It is then used in argument to strna(s) call where it is -dereferenced(!), in addition to nothing else initializing it before -the scope it is in finishes. ---- - src/core/killall.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/killall.c src/core/killall.c -index 57ed41c..eab48f7 100644 ---- src/core/killall.c -+++ src/core/killall.c -@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) { - continue; - - if (sig == SIGKILL) { -- _cleanup_free_ char *s; -+ _cleanup_free_ char *s = NULL; - - get_process_comm(pid, &s); - log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s)); --- -1.7.9.2 - diff --git a/0001-core-fix-resource-leak-in-manager_environment_add.patch b/0001-core-fix-resource-leak-in-manager_environment_add.patch deleted file mode 100644 index 7991b3be..00000000 --- a/0001-core-fix-resource-leak-in-manager_environment_add.patch +++ /dev/null @@ -1,32 +0,0 @@ -From aa9f8a30fd7dc7aa3aa2575b75b3f9a0ab3f02db Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Tue, 16 Sep 2014 21:11:02 +0200 -Subject: [PATCH] core: fix resource leak in manager_environment_add - -Second error path must free the (potentially) allocated memory in the -first code chunk before returning. - -Found by coverity. Fixes: CID#1237750 ---- - src/core/manager.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git src/core/manager.c src/core/manager.c -index 0770727..e0c1cd1 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -2751,8 +2751,10 @@ int manager_environment_add(Manager *m, char **minus, char **plus) { - - if (!strv_isempty(plus)) { - b = strv_env_merge(2, l, plus); -- if (!b) -+ if (!b) { -+ strv_free(a); - return -ENOMEM; -+ } - - l = b; - } --- -1.7.9.2 - diff --git a/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch b/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch deleted file mode 100644 index 18e76f4f..00000000 --- a/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 3018d31238caabc2e204aa161e647dc1c1b5d1c6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 2 Oct 2014 00:11:36 -0400 -Subject: [PATCH] core/swap: only make configured units part of swap.target - -We used to make all .swap units either RequiredBy=swap.target or -WantedBy=swap.target. But swap.target should be the "configured swap -units", either through /etc/fstab or non-generated .swap units. It -is surprising when systemd starts treating a swap device that was -possibly temporarily enabled as a hard dependency for other units. -So do not add dependencies with swap.target for units gleaned from -/proc/swaps. - -Similarly, we added dependencies for all aliases of the device name, -which clutters up the dependency graph but does not seem to bring any -value, since the status of those following units is consistent with -the main one anyway. - -This should be a fix for [1], and it seems the right thing to do -anyway. - -[1] https://bugzilla.redhat.com/show_bug.cgi?id=1114786 ---- - src/core/swap.c | 20 +++++++++++--------- - 1 file changed, 11 insertions(+), 9 deletions(-) - -diff --git src/core/swap.c src/core/swap.c -index ef90d0e..b2ca048 100644 ---- src/core/swap.c -+++ src/core/swap.c -@@ -213,7 +213,7 @@ static int swap_add_device_links(Swap *s) { - } - - static int swap_add_default_dependencies(Swap *s) { -- bool nofail = false, noauto = false; -+ bool nofail, noauto; - int r; - - assert(s); -@@ -228,23 +228,25 @@ static int swap_add_default_dependencies(Swap *s) { - if (r < 0) - return r; - -- if (s->from_fragment) { -- SwapParameters *p = &s->parameters_fragment; -+ if (!s->from_fragment) -+ /* The swap unit can either be for an alternative device name, in which -+ * case we don't need to add the dependency on swap.target because this unit -+ * is following a different unit which will have this dependency added, -+ * or it can be derived from /proc/swaps, in which case it was started -+ * manually, and should not become a dependency of swap.target. */ -+ return 0; - -- nofail = p->nofail; -- noauto = p->noauto; -- } -+ nofail = s->parameters_fragment.nofail; -+ noauto = s->parameters_fragment.noauto; - - if (!noauto) { - if (nofail) - r = unit_add_dependency_by_name_inverse(UNIT(s), UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); - else - r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); -- if (r < 0) -- return r; - } - -- return 0; -+ return r < 0 ? r : 0; - } - - static int swap_verify(Swap *s) { --- -1.7.9.2 - diff --git a/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch b/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch deleted file mode 100644 index 06371697..00000000 --- a/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 0404c609f399b2092a3de52eef9d75b0dc12e94c Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 12 May 2014 21:26:54 +0200 -Subject: [PATCH] core: sysvcompat - $network should be equivalent to - network-online, rather than network target -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Most likely the facility needed is actual connectivity, rather than whether or not the -network managment daemon is running. - -We also need to explicitly pull in the network-online.target, as it is not active by -default. - -This means {systemd-networkd,NetworkManager}-wait-online.service, can be enabled by default -as part of network-online.target, and only delay boot when some service actively pulls it in. - -See: - -Cc: Pavel Šimerda -Cc: Michal Sekletar ---- - TODO | 4 ---- - src/core/service.c | 8 ++++++-- - 2 files changed, 6 insertions(+), 6 deletions(-) - -Modified by Andrey Borzenkov for openSUSE. -Index: systemd-210/src/core/service.c -=================================================================== ---- systemd-210.orig/src/core/service.c -+++ systemd-210/src/core/service.c -@@ -404,7 +404,7 @@ static int sysv_translate_facility(const - static const char * const table[] = { - /* LSB defined facilities */ - "local_fs", NULL, -- "network", SPECIAL_NETWORK_TARGET, -+ "network", SPECIAL_NETWORK_ONLINE_TARGET, - "named", SPECIAL_NSS_LOOKUP_TARGET, - "portmap", SPECIAL_RPCBIND_TARGET, - "remote_fs", SPECIAL_REMOTE_FS_TARGET, -@@ -881,6 +881,9 @@ static int service_load_sysv_path(Servic - if (r == 0) - continue; - -+ if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && d == UNIT_AFTER && e == _UNIT_DEPENDENCY_INVALID) -+ e = UNIT_WANTS; -+ - if (e != _UNIT_DEPENDENCY_INVALID) - r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); - else diff --git a/0001-core-use-correct-format-string-for-UIDs.patch b/0001-core-use-correct-format-string-for-UIDs.patch deleted file mode 100644 index f0906df0..00000000 --- a/0001-core-use-correct-format-string-for-UIDs.patch +++ /dev/null @@ -1,20 +0,0 @@ -Based on d6239dc4b0cf55a953d6c40890859b85d504ef19 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= -Date: Wed, 25 Jun 2014 14:54:48 +0200 -Subject: [PATCH] core: use correct format string for UIDs - ---- - src/core/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/main.c -+++ src/core/main.c 2014-06-26 09:29:28.182235325 +0000 -@@ -1526,7 +1526,7 @@ int main(int argc, char *argv[]) { - - } else { - _cleanup_free_ char *t = uid_to_name(getuid()); -- log_debug(PACKAGE_STRING " running in user mode for user "PID_FMT"/%s. (" SYSTEMD_FEATURES ")", -+ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", - getuid(), t); - } - diff --git a/0001-detect-virt-Fix-Xen-domU-discovery.patch b/0001-detect-virt-Fix-Xen-domU-discovery.patch deleted file mode 100644 index 8582f560..00000000 --- a/0001-detect-virt-Fix-Xen-domU-discovery.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a71516dfd1858f37712ef52a288bf5fb274383e0 Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Thu, 17 Jul 2014 11:25:37 +0200 -Subject: [PATCH] detect-virt: Fix Xen domU discovery - -The conditional for detection xen virtualization contained a little mistake. -It is checking for i to be empty: 'if (!i) {', but it must check for cap instead, -because: 'cap = strsep(&i, ",")' will set cap to the discovered value and i to -the next value after the separator. -Hence, i would be empty, if there is only control_d in domcap, leading to a wrong -domU detection. - -https://bugs.freedesktop.org/show_bug.cgi?id=77271 ---- - src/shared/virt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/virt.c src/shared/virt.c -index 774915f..20a8d7c 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -173,7 +173,7 @@ int detect_vm(const char **id) { - if (streq(cap, "control_d")) - break; - -- if (!i) { -+ if (!cap) { - _id = "xen"; - r = 1; - } --- -1.7.9.2 - diff --git a/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch b/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch deleted file mode 100644 index d087eeb6..00000000 --- a/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on 0d522a7a0547982eae9ab1b5971e4bed9c2fbc7c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 24 Apr 2014 08:11:39 +0200 -Subject: [PATCH] errno: make sure to handle the 3 errnos that are aliases for - others properly - ---- - Makefile.am | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- Makefile.am -+++ Makefile.am 2014-05-12 00:00:00.000000000 +0000 -@@ -1078,7 +1078,7 @@ BUILT_SOURCES += \ - - src/shared/errno-list.txt: - $(AM_V_at)$(MKDIR_P) $(dir $@) -- $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+[0-9]/ { print $$2; }' > $@ -+ $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' > $@ - - src/shared/errno-from-name.gperf: src/shared/errno-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) -@@ -1090,7 +1090,7 @@ src/shared/errno-from-name.h: src/shared - - src/shared/errno-to-name.h: src/shared/errno-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) -- $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ -+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ - - # ------------------------------------------------------------------------------ - systemd_SOURCES = \ diff --git a/0001-event-pull-in-sd-event.h-from-event-util.h.patch b/0001-event-pull-in-sd-event.h-from-event-util.h.patch deleted file mode 100644 index e9fc98ce..00000000 --- a/0001-event-pull-in-sd-event.h-from-event-util.h.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 138992534878483de28417dfc61c546bba5cb8ad Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 10 Jul 2014 18:25:08 +0200 -Subject: [PATCH] event: pull in sd-event.h from event-util.h - ---- - src/libsystemd/sd-event/event-util.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/libsystemd/sd-event/event-util.h src/libsystemd/sd-event/event-util.h -index e58020d..e7cad9b 100644 ---- src/libsystemd/sd-event/event-util.h -+++ src/libsystemd/sd-event/event-util.h -@@ -22,6 +22,7 @@ - ***/ - - #include "util.h" -+#include "sd-event.h" - - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event*, sd_event_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event_source*, sd_event_source_unref); --- -1.7.9.2 - diff --git a/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch b/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch deleted file mode 100644 index be9add48..00000000 --- a/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 9c4495ca561624c2f0085507dd1288ed5f1247c5 Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz -Date: Wed, 12 Mar 2014 19:25:11 +0100 -Subject: [PATCH] gpt-auto-generator: don't return OOM on parentless devices - ---- - src/gpt-auto-generator/gpt-auto-generator.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/gpt-auto-generator/gpt-auto-generator.c -+++ src/gpt-auto-generator/gpt-auto-generator.c 2014-03-18 13:35:11.438235125 +0000 -@@ -254,7 +254,7 @@ static int enumerate_partitions(struct u - - parent = udev_device_get_parent(d); - if (!parent) -- return log_oom(); -+ return 0; - - r = udev_enumerate_add_match_parent(e, parent); - if (r < 0) diff --git a/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 15de6363..00000000 --- a/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e525326bd07ebf3cabcfd730bc479166723f2d44 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Sun, 2 Mar 2014 10:02:10 -0800 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index db3bc24..0335a71 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -902,3 +902,12 @@ bluetooth:v0129* - - bluetooth:v012A* - ID_VENDOR_FROM_DATABASE=Changzhou Yongse Infotech Co., Ltd -+ -+bluetooth:v012B* -+ ID_VENDOR_FROM_DATABASE=SportIQ -+ -+bluetooth:v012C* -+ ID_VENDOR_FROM_DATABASE=TEMEC Instruments B.V. -+ -+bluetooth:v012D* -+ ID_VENDOR_FROM_DATABASE=Sony Corporation --- -1.7.9.2 - diff --git a/0001-hwdb-fix-case-sensitive-match.patch b/0001-hwdb-fix-case-sensitive-match.patch deleted file mode 100644 index 64642714..00000000 --- a/0001-hwdb-fix-case-sensitive-match.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4c02dd7153f970244950b5e00f7bdfea8d2ff0be Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 17:55:14 +0200 -Subject: [PATCH] hwdb: fix case-sensitive match - ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index d053766..c7ff4e4 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -870,7 +870,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* - ########################################################### - - # Plantronics .Audio 626 DSP --keyboard:usb:v047fpC006* -+keyboard:usb:v047FpC006* - KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute - - ########################################################### --- -1.7.9.2 - diff --git a/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch b/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch deleted file mode 100644 index d3acf899..00000000 --- a/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 77e8ff6974ffaa6c9954e3d2264d9aa75ef25233 Mon Sep 17 00:00:00 2001 -From: Kieran Clancy -Date: Thu, 27 Feb 2014 16:02:57 +1030 -Subject: [PATCH] hwdb: keymaps for Samsung 900X3E/900X3F - -Keymaps for Samsung 900X3E and 900X3F should be the same as for other -models in the series. - -I have also moved the comment for '# Series 9' to the right place ---- - hwdb/60-keyboard.hwdb | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index edfa842..bd8fd10 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -897,9 +897,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* - KEYBOARD_KEY_a8=! # Fn Lock - Function lock on - KEYBOARD_KEY_a9=! # Fn Lock - Function lock off - -+# Series 7 / 9 - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* --keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDG]*:pvr* -+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* - KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings - KEYBOARD_KEY_a0=!mute # Fn+F6 mute -@@ -909,7 +910,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* - KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up - KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer - --# Series 9 - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr* - KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up - KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down --- -1.7.9.2 - diff --git a/0001-hwdb-update.patch b/0001-hwdb-update.patch deleted file mode 100644 index f487f680..00000000 --- a/0001-hwdb-update.patch +++ /dev/null @@ -1,6590 +0,0 @@ -From 6080625dc833144aca0817d1b9fd23f2fbcdf5c2 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 18 Mar 2014 16:17:51 +0100 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 779 +++++++++++++++++-- - hwdb/20-pci-vendor-model.hwdb | 1671 ++++++++++++++++++++++++++++++++++++----- - hwdb/20-usb-vendor-model.hwdb | 119 ++- - 3 files changed, 2330 insertions(+), 239 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index a51a00a..209b89e 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -13558,6 +13558,9 @@ OUI:40D8551CA* - OUI:40D8551CB* - ID_OUI_FROM_DATABASE=MG S.r.l. - -+OUI:40D8551CC* -+ ID_OUI_FROM_DATABASE=NKT Photonics A/S -+ - OUI:40D8551CD* - ID_OUI_FROM_DATABASE=YXLON International A/S - -@@ -13630,6 +13633,9 @@ OUI:40D8551E3* - OUI:40D8551E4* - ID_OUI_FROM_DATABASE=STEK Ltd - -+OUI:40D85550D* -+ ID_OUI_FROM_DATABASE=Shenzhen MaiWei Cable TV Equipment CO.,LTD. -+ - OUI:40D855EE6* - ID_OUI_FROM_DATABASE=Narinet, Inc. - -@@ -13703,7 +13709,7 @@ OUI:000016* - ID_OUI_FROM_DATABASE=DU PONT PIXEL SYSTEMS . - - OUI:000017* -- ID_OUI_FROM_DATABASE=TEKELEC -+ ID_OUI_FROM_DATABASE=Oracle - - OUI:000018* - ID_OUI_FROM_DATABASE=WEBSTER COMPUTER CORPORATION -@@ -18029,7 +18035,7 @@ OUI:0005BB* - ID_OUI_FROM_DATABASE=Myspace AB - - OUI:0005BC* -- ID_OUI_FROM_DATABASE=Resorsys Ltd. -+ ID_OUI_FROM_DATABASE=Resource Data Management Ltd - - OUI:0005BD* - ID_OUI_FROM_DATABASE=ROAX BV -@@ -18977,7 +18983,7 @@ OUI:0006F7* - ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. - - OUI:0006F8* -- ID_OUI_FROM_DATABASE=CPU Technology, Inc. -+ ID_OUI_FROM_DATABASE=The Boeing Company - - OUI:0006F9* - ID_OUI_FROM_DATABASE=Mitsui Zosen Systems Research Inc. -@@ -19337,7 +19343,7 @@ OUI:00076F* - ID_OUI_FROM_DATABASE=Synoptics Limited - - OUI:000770* -- ID_OUI_FROM_DATABASE=Locusnetworks Corporation -+ ID_OUI_FROM_DATABASE=Ubiquoss Inc - - OUI:000771* - ID_OUI_FROM_DATABASE=Embedded System Corporation -@@ -19616,7 +19622,7 @@ OUI:0007CC* - ID_OUI_FROM_DATABASE=Kaba Benzing GmbH - - OUI:0007CD* -- ID_OUI_FROM_DATABASE=NMTEL Co., Ltd. -+ ID_OUI_FROM_DATABASE=Kumoh Electronic Co, Ltd - - OUI:0007CE* - ID_OUI_FROM_DATABASE=Cabletime Limited -@@ -21584,7 +21590,7 @@ OUI:000A78* - ID_OUI_FROM_DATABASE=OLITEC - - OUI:000A79* -- ID_OUI_FROM_DATABASE=Allied Telesis K.K. corega division -+ ID_OUI_FROM_DATABASE=corega K.K - - OUI:000A7A* - ID_OUI_FROM_DATABASE=Kyoritsu Electric Co., Ltd. -@@ -22643,7 +22649,7 @@ OUI:000BDA* - ID_OUI_FROM_DATABASE=EyeCross Co.,Inc. - - OUI:000BDB* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:000BDC* - ID_OUI_FROM_DATABASE=AKCP -@@ -23774,7 +23780,7 @@ OUI:000D55* - ID_OUI_FROM_DATABASE=SANYCOM Technology Co.,Ltd - - OUI:000D56* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:000D57* - ID_OUI_FROM_DATABASE=Fujitsu I-Network Systems Limited. -@@ -25118,7 +25124,7 @@ OUI:000F1E* - ID_OUI_FROM_DATABASE=Chengdu KT Electric Co.of High & New Technology - - OUI:000F1F* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:000F20* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company -@@ -26435,7 +26441,7 @@ OUI:0010D5* - ID_OUI_FROM_DATABASE=IMASDE CANARIAS, S.A. - - OUI:0010D6* -- ID_OUI_FROM_DATABASE=ITT - A/CD -+ ID_OUI_FROM_DATABASE=Exelis - - OUI:0010D7* - ID_OUI_FROM_DATABASE=ARGOSY RESEARCH INC. -@@ -26762,7 +26768,7 @@ OUI:001142* - ID_OUI_FROM_DATABASE=e-SMARTCOM INC. - - OUI:001143* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001144* - ID_OUI_FROM_DATABASE=Assurance Technology Corp -@@ -27518,7 +27524,7 @@ OUI:00123E* - ID_OUI_FROM_DATABASE=ERUNE technology Co., Ltd. - - OUI:00123F* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001240* - ID_OUI_FROM_DATABASE=AMOI ELECTRONICS CO.,LTD -@@ -28439,7 +28445,7 @@ OUI:001371* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - - OUI:001372* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001373* - ID_OUI_FROM_DATABASE=BLwave Electronics Co., Ltd -@@ -28967,7 +28973,7 @@ OUI:001421* - ID_OUI_FROM_DATABASE=Total Wireless Technologies Pte. Ltd. - - OUI:001422* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001423* - ID_OUI_FROM_DATABASE=J-S Co. NEUROCOM -@@ -30104,7 +30110,7 @@ OUI:00159C* - ID_OUI_FROM_DATABASE=B-KYUNG SYSTEM Co.,Ltd. - - OUI:00159D* -- ID_OUI_FROM_DATABASE=Minicom Advanced Systems ltd -+ ID_OUI_FROM_DATABASE=Tripp Lite - - OUI:00159E* - ID_OUI_FROM_DATABASE=Mad Catz Interactive Inc -@@ -30224,7 +30230,7 @@ OUI:0015C4* - ID_OUI_FROM_DATABASE=FLOVEL CO., LTD. - - OUI:0015C5* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:0015C6* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. -@@ -30914,7 +30920,7 @@ OUI:0016AA* - ID_OUI_FROM_DATABASE=Kei Communication Technology Inc. - - OUI:0016AB* -- ID_OUI_FROM_DATABASE=PBI-Dansensor A/S -+ ID_OUI_FROM_DATABASE=Dansensor A/S - - OUI:0016AC* - ID_OUI_FROM_DATABASE=Toho Technology Corp. -@@ -32342,7 +32348,7 @@ OUI:00188A* - ID_OUI_FROM_DATABASE=Infinova LLC - - OUI:00188B* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:00188C* - ID_OUI_FROM_DATABASE=Mobile Action Technology Inc. -@@ -35348,7 +35354,7 @@ OUI:001C74* - ID_OUI_FROM_DATABASE=Syswan Technologies Inc. - - OUI:001C75* -- ID_OUI_FROM_DATABASE=RF Systems GmbH -+ ID_OUI_FROM_DATABASE=Segnet Ltd. - - OUI:001C76* - ID_OUI_FROM_DATABASE=The Wandsworth Group Ltd -@@ -35831,7 +35837,7 @@ OUI:001D15* - ID_OUI_FROM_DATABASE=Shenzhen Dolphin Electronic Co., Ltd - - OUI:001D16* -- ID_OUI_FROM_DATABASE=Efixo -+ ID_OUI_FROM_DATABASE=SFR - - OUI:001D17* - ID_OUI_FROM_DATABASE=Digital Sky Corporation -@@ -35957,7 +35963,7 @@ OUI:001D3F* - ID_OUI_FROM_DATABASE=Mitron Pty Ltd - - OUI:001D40* -- ID_OUI_FROM_DATABASE=Living Independently Group, Inc. -+ ID_OUI_FROM_DATABASE=Intel – GE Care Innovations LLC - - OUI:001D41* - ID_OUI_FROM_DATABASE=Hardy Instruments -@@ -35969,7 +35975,7 @@ OUI:001D43* - ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. - - OUI:001D44* -- ID_OUI_FROM_DATABASE=Krohne -+ ID_OUI_FROM_DATABASE=KROHNE - - OUI:001D45* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. -@@ -40316,7 +40322,7 @@ OUI:0022EE* - ID_OUI_FROM_DATABASE=Algo Communication Products Ltd - - OUI:0022EF* -- ID_OUI_FROM_DATABASE=Ibis Tek, LLC -+ ID_OUI_FROM_DATABASE=iWDL Technologies - - OUI:0022F0* - ID_OUI_FROM_DATABASE=3 Greens Aviation Limited -@@ -40361,7 +40367,7 @@ OUI:0022FE* - ID_OUI_FROM_DATABASE=Microprocessor Designs Inc - - OUI:0022FF* -- ID_OUI_FROM_DATABASE=NIVIS LLC -+ ID_OUI_FROM_DATABASE=iWDL Technologies - - OUI:002300* - ID_OUI_FROM_DATABASE=Cayee Computer Ltd. -@@ -41258,7 +41264,7 @@ OUI:00242E* - ID_OUI_FROM_DATABASE=Datastrip Inc. - - OUI:00242F* -- ID_OUI_FROM_DATABASE=VirtenSys Inc -+ ID_OUI_FROM_DATABASE=Micron - - OUI:002430* - ID_OUI_FROM_DATABASE=Ruby Tech Corp. -@@ -43028,7 +43034,7 @@ OUI:002686* - ID_OUI_FROM_DATABASE=Quantenna Communcations, Inc. - - OUI:002687* -- ID_OUI_FROM_DATABASE=ALLIED TELESIS, K.K corega division. -+ ID_OUI_FROM_DATABASE=Corega K.K - - OUI:002688* - ID_OUI_FROM_DATABASE=Juniper Networks -@@ -46118,7 +46124,7 @@ OUI:00605F* - ID_OUI_FROM_DATABASE=NIPPON UNISOFT CORPORATION - - OUI:006060* -- ID_OUI_FROM_DATABASE=DAWNING TECHNOLOGIES, INC. -+ ID_OUI_FROM_DATABASE=Data Innovations North America - - OUI:006061* - ID_OUI_FROM_DATABASE=WHISTLE COMMUNICATIONS CORP. -@@ -46621,12 +46627,18 @@ OUI:0070B0* - OUI:0070B3* - ID_OUI_FROM_DATABASE=DATA RECALL LTD. - -+OUI:0071CC* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:00738D* - ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp - - OUI:0073E0* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:007532* -+ ID_OUI_FROM_DATABASE=INID BV -+ - OUI:0075E1* - ID_OUI_FROM_DATABASE=Ampt, LLC - -@@ -48623,7 +48635,7 @@ OUI:00A086* - ID_OUI_FROM_DATABASE=AMBER WAVE SYSTEMS, INC. - - OUI:00A087* -- ID_OUI_FROM_DATABASE=Zarlink Semiconductor Ltd. -+ ID_OUI_FROM_DATABASE=Microsemi Corporation - - OUI:00A088* - ID_OUI_FROM_DATABASE=ESSENTIAL COMMUNICATIONS -@@ -49009,6 +49021,9 @@ OUI:00AA3C* - OUI:00AA70* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:00ACE0* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:00B009* - ID_OUI_FROM_DATABASE=Grass Valley Group - -@@ -51550,6 +51565,9 @@ OUI:00E0FE* - OUI:00E0FF* - ID_OUI_FROM_DATABASE=SECURITY DYNAMICS TECHNOLOGIES, Inc. - -+OUI:00E16D* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:00E175* - ID_OUI_FROM_DATABASE=AK-Systems Ltd - -@@ -51703,6 +51721,9 @@ OUI:0444A1* - OUI:044665* - ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. - -+OUI:04489A* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:044A50* - ID_OUI_FROM_DATABASE=Ramaxel Technology (Shenzhen) limited company - -@@ -51727,6 +51748,9 @@ OUI:045453* - OUI:0455CA* - ID_OUI_FROM_DATABASE=BriView (Xiamen) Corp. - -+OUI:04572F* -+ ID_OUI_FROM_DATABASE=Sertel Electronics UK Ltd -+ - OUI:04586F* - ID_OUI_FROM_DATABASE=Sichuan Whayer information industry Co.,LTD - -@@ -51892,6 +51916,9 @@ OUI:04E548* - OUI:04E662* - ID_OUI_FROM_DATABASE=Acroname Inc. - -+OUI:04E676* -+ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. -+ - OUI:04E9E5* - ID_OUI_FROM_DATABASE=PJRC.COM, LLC - -@@ -52486,6 +52513,9 @@ OUI:085AE0* - OUI:085B0E* - ID_OUI_FROM_DATABASE=Fortinet, Inc. - -+OUI:085DDD* -+ ID_OUI_FROM_DATABASE=Mercury Corporation -+ - OUI:08606E* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -@@ -52504,6 +52534,9 @@ OUI:086DF2* - OUI:087045* - ID_OUI_FROM_DATABASE=Apple - -+OUI:0874F6* -+ ID_OUI_FROM_DATABASE=Winterhalter Gastronom GmbH -+ - OUI:087572* - ID_OUI_FROM_DATABASE=Obelux Oy - -@@ -52573,6 +52606,9 @@ OUI:08ACA5* - OUI:08AF78* - ID_OUI_FROM_DATABASE=Totus Solutions, Inc. - -+OUI:08B2A3* -+ ID_OUI_FROM_DATABASE=Cynny Italia S.r.L. -+ - OUI:08B4CF* - ID_OUI_FROM_DATABASE=Abicom International - -@@ -52615,6 +52651,9 @@ OUI:08D5C0* - OUI:08D833* - ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co,.Ltd - -+OUI:08DF1F* -+ ID_OUI_FROM_DATABASE=Bose Corporation -+ - OUI:08E5DA* - ID_OUI_FROM_DATABASE=NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD. - -@@ -52687,6 +52726,9 @@ OUI:0C191F* - OUI:0C1DC2* - ID_OUI_FROM_DATABASE=SeAH Networks - -+OUI:0C2026* -+ ID_OUI_FROM_DATABASE=noax Technologies AG -+ - OUI:0C2724* - ID_OUI_FROM_DATABASE=Cisco - -@@ -52756,6 +52798,9 @@ OUI:0C5CD8* - OUI:0C6076* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:0C63FC* -+ ID_OUI_FROM_DATABASE=Nanjing Signway Technology Co., Ltd -+ - OUI:0C6803* - ID_OUI_FROM_DATABASE=Cisco - -@@ -52984,6 +53029,9 @@ OUI:1000FD* - OUI:1001CA* - ID_OUI_FROM_DATABASE=Ashley Butterworth - -+OUI:1005CA* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:10090C* - ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. - -@@ -53008,6 +53056,9 @@ OUI:100E2B* - OUI:100E7E* - ID_OUI_FROM_DATABASE=Juniper networks - -+OUI:100F18* -+ ID_OUI_FROM_DATABASE=Fu Gang Electronic(KunShan)CO.,LTD -+ - OUI:1010B6* - ID_OUI_FROM_DATABASE=McCain Inc - -@@ -53158,6 +53209,9 @@ OUI:1083D2* - OUI:10880F* - ID_OUI_FROM_DATABASE=Daruma Telecomunicações e Informática S.A. - -+OUI:1088CE* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:108CCF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -53317,6 +53371,9 @@ OUI:1423D7* - OUI:142BD2* - ID_OUI_FROM_DATABASE=Armtel Ltd. - -+OUI:142BD6* -+ ID_OUI_FROM_DATABASE=Guangdong Appscomm Co.,Ltd -+ - OUI:142D27* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -53329,6 +53386,9 @@ OUI:142DF5* - OUI:14307A* - ID_OUI_FROM_DATABASE=Avermetrics - -+OUI:1430C6* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:14358B* - ID_OUI_FROM_DATABASE=Mediabridge Products, LLC. - -@@ -53344,6 +53404,9 @@ OUI:14373B* - OUI:143AEA* - ID_OUI_FROM_DATABASE=Dynapower Company LLC - -+OUI:143DF2* -+ ID_OUI_FROM_DATABASE=Beijing Shidai Hongyuan Network Communication Co.,Ltd -+ - OUI:143E60* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -53368,6 +53431,9 @@ OUI:144C1A* - OUI:145412* - ID_OUI_FROM_DATABASE=Entis Co., Ltd. - -+OUI:145645* -+ ID_OUI_FROM_DATABASE=Savitech Corp. -+ - OUI:145A05* - ID_OUI_FROM_DATABASE=Apple - -@@ -53440,6 +53506,9 @@ OUI:14B126* - OUI:14B1C8* - ID_OUI_FROM_DATABASE=InfiniWing, Inc. - -+OUI:14B484* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:14B73D* - ID_OUI_FROM_DATABASE=ARCHEAN Technologies - -@@ -53489,7 +53558,7 @@ OUI:14EB33* - ID_OUI_FROM_DATABASE=BSMediasoft Co., Ltd. - - OUI:14EDA5* -- ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme -+ ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme - - OUI:14EE9D* - ID_OUI_FROM_DATABASE=AirNav Systems LLC -@@ -53572,6 +53641,9 @@ OUI:182032* - OUI:1820A6* - ID_OUI_FROM_DATABASE=Sage Co., Ltd. - -+OUI:18227E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:182666* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -53726,7 +53798,7 @@ OUI:18A905* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - - OUI:18A99B* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:18AA45* - ID_OUI_FROM_DATABASE=Fon Technology -@@ -53779,6 +53851,9 @@ OUI:18CC23* - OUI:18D071* - ID_OUI_FROM_DATABASE=DASAN SMC, Inc. - -+OUI:18D5B6* -+ ID_OUI_FROM_DATABASE=SMG Holdings LLC -+ - OUI:18D66A* - ID_OUI_FROM_DATABASE=Inmarsat - -@@ -53824,6 +53899,9 @@ OUI:18F87A* - OUI:18FA6F* - ID_OUI_FROM_DATABASE=ISC applied systems corp - -+OUI:18FB7B* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:18FC9F* - ID_OUI_FROM_DATABASE=Changhe Electronics Co., Ltd. - -@@ -53863,9 +53941,15 @@ OUI:1C184A* - OUI:1C19DE* - ID_OUI_FROM_DATABASE=eyevis GmbH - -+OUI:1C1AC0* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:1C1B68* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:1C1CFD* -+ ID_OUI_FROM_DATABASE=Dalian Hi-Think Computer Technology, Corp -+ - OUI:1C1D67* - ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd - -@@ -54157,6 +54241,9 @@ OUI:201D03* - OUI:2021A5* - ID_OUI_FROM_DATABASE=LG Electronics Inc - -+OUI:202564* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:202598* - ID_OUI_FROM_DATABASE=Teleview - -@@ -54202,6 +54289,9 @@ OUI:204E6B* - OUI:204E7F* - ID_OUI_FROM_DATABASE=NETGEAR - -+OUI:2053CA* -+ ID_OUI_FROM_DATABASE=Risk Technology Ltd -+ - OUI:205476* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -@@ -54211,6 +54301,9 @@ OUI:205721* - OUI:2059A0* - ID_OUI_FROM_DATABASE=Paragon Technologies Inc. - -+OUI:205A00* -+ ID_OUI_FROM_DATABASE=Coval -+ - OUI:205B5E* - ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd - -@@ -54265,12 +54358,18 @@ OUI:20918A* - OUI:2091D9* - ID_OUI_FROM_DATABASE=I'M SPA - -+OUI:209AE9* -+ ID_OUI_FROM_DATABASE=Volacomm Co., Ltd -+ - OUI:209BA5* - ID_OUI_FROM_DATABASE=JIAXING GLEAD Electronics Co.,Ltd - - OUI:20A2E7* - ID_OUI_FROM_DATABASE=Lee-Dickens Ltd - -+OUI:20A787* -+ ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited -+ - OUI:20AA25* - ID_OUI_FROM_DATABASE=IP-NET LLC - -@@ -54394,6 +54493,9 @@ OUI:24050F* - OUI:240917* - ID_OUI_FROM_DATABASE=Devlin Electronics Limited - -+OUI:240A11* -+ ID_OUI_FROM_DATABASE=TCT Mobile Limited -+ - OUI:240A64* - ID_OUI_FROM_DATABASE=AzureWaveTechnologies,Inc - -@@ -54691,9 +54793,15 @@ OUI:282CB2* - OUI:283152* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:2832C5* -+ ID_OUI_FROM_DATABASE=Humax.co.,ltd -+ - OUI:283410* - ID_OUI_FROM_DATABASE=Enigma Diagnostics Limited - -+OUI:2834A2* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:283737* - ID_OUI_FROM_DATABASE=Apple - -@@ -54778,6 +54886,9 @@ OUI:2872F0* - OUI:287994* - ID_OUI_FROM_DATABASE=Realplay Digital Technology(Shenzhen) Co.,Ltd - -+OUI:288023* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:28852D* - ID_OUI_FROM_DATABASE=Touch Networks - -@@ -55024,6 +55135,9 @@ OUI:2C3731* - OUI:2C3996* - ID_OUI_FROM_DATABASE=SAGEMCOM - -+OUI:2C39C1* -+ ID_OUI_FROM_DATABASE=Ciena Corporation -+ - OUI:2C3A28* - ID_OUI_FROM_DATABASE=Fagor Electrónica - -@@ -55069,6 +55183,9 @@ OUI:2C5A05* - OUI:2C5AA3* - ID_OUI_FROM_DATABASE=PROMATE ELECTRONIC CO.LTD - -+OUI:2C5BE1* -+ ID_OUI_FROM_DATABASE=Centripetal Networks, Inc -+ - OUI:2C5D93* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -@@ -55117,6 +55234,9 @@ OUI:2C8065* - OUI:2C8158* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd - -+OUI:2C8A72* -+ ID_OUI_FROM_DATABASE=HTC Corporation -+ - OUI:2C8BF2* - ID_OUI_FROM_DATABASE=Hitachi Metals America Ltd - -@@ -55135,6 +55255,9 @@ OUI:2C957F* - OUI:2C9717* - ID_OUI_FROM_DATABASE=I.C.Y. B.V. - -+OUI:2C9AA4* -+ ID_OUI_FROM_DATABASE=NGI SpA -+ - OUI:2C9E5F* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -55327,6 +55450,9 @@ OUI:3055ED* - OUI:3057AC* - ID_OUI_FROM_DATABASE=IRLAB LTD. - -+OUI:3059B7* -+ ID_OUI_FROM_DATABASE=Microsoft -+ - OUI:305D38* - ID_OUI_FROM_DATABASE=Beissbarth - -@@ -55387,6 +55513,9 @@ OUI:308CFB* - OUI:3090AB* - ID_OUI_FROM_DATABASE=Apple - -+OUI:30918F* -+ ID_OUI_FROM_DATABASE=Technicolor -+ - OUI:3092F6* - ID_OUI_FROM_DATABASE=SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD - -@@ -55417,12 +55546,18 @@ OUI:30B5C2* - OUI:30C750* - ID_OUI_FROM_DATABASE=MIC Technology Group - -+OUI:30C7AE* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:30C82A* - ID_OUI_FROM_DATABASE=Wi-Next s.r.l. - - OUI:30CDA7* - ID_OUI_FROM_DATABASE=Samsung Electronics ITS, Printer division - -+OUI:30D17E* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:30D357* - ID_OUI_FROM_DATABASE=Logosol, Inc. - -@@ -55462,6 +55597,9 @@ OUI:30F70D* - OUI:30F7C5* - ID_OUI_FROM_DATABASE=Apple - -+OUI:30F7D7* -+ ID_OUI_FROM_DATABASE=Thread Technology Co., Ltd -+ - OUI:30F9ED* - ID_OUI_FROM_DATABASE=Sony Corporation - -@@ -55474,6 +55612,9 @@ OUI:3407FB* - OUI:340804* - ID_OUI_FROM_DATABASE=D-Link Corporation - -+OUI:340AFF* -+ ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd -+ - OUI:3413A8* - ID_OUI_FROM_DATABASE=Mediplan Limited - -@@ -55484,7 +55625,7 @@ OUI:34159E* - ID_OUI_FROM_DATABASE=Apple - - OUI:3417EB* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:341A4C* - ID_OUI_FROM_DATABASE=SHENZHEN WEIBU ELECTRONICS CO.,LTD. -@@ -55534,6 +55675,9 @@ OUI:344F5C* - OUI:344F69* - ID_OUI_FROM_DATABASE=EKINOPS SAS - -+OUI:3451AA* -+ ID_OUI_FROM_DATABASE=JID GLOBAL -+ - OUI:3451C9* - ID_OUI_FROM_DATABASE=Apple - -@@ -55543,6 +55687,9 @@ OUI:345B11* - OUI:345C40* - ID_OUI_FROM_DATABASE=Cargt Holdings LLC - -+OUI:345D10* -+ ID_OUI_FROM_DATABASE=Wytek -+ - OUI:346178* - ID_OUI_FROM_DATABASE=The Boeing Company - -@@ -55573,6 +55720,9 @@ OUI:347E39* - OUI:348137* - ID_OUI_FROM_DATABASE=UNICARD SA - -+OUI:3481C4* -+ ID_OUI_FROM_DATABASE=AVM GmbH -+ - OUI:3482DE* - ID_OUI_FROM_DATABASE=Kayo Technology, Inc. - -@@ -55741,6 +55891,9 @@ OUI:34E0D7* - OUI:34E2FD* - ID_OUI_FROM_DATABASE=Apple - -+OUI:34E42A* -+ ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. -+ - OUI:34EF44* - ID_OUI_FROM_DATABASE=2Wire - -@@ -55933,6 +56086,9 @@ OUI:38B74D* - OUI:38BB23* - ID_OUI_FROM_DATABASE=OzVision America LLC - -+OUI:38BB3C* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:38BC1A* - ID_OUI_FROM_DATABASE=Meizu technology co.,ltd - -@@ -56224,6 +56380,9 @@ OUI:3CA72B* - OUI:3CA9F4* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:3CAB8E* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:3CB15B* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -56311,6 +56470,9 @@ OUI:3CF72A* - OUI:3CF748* - ID_OUI_FROM_DATABASE=Shenzhen Linsn Technology Development Co.,Ltd - -+OUI:3CF808* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:3CFB96* - ID_OUI_FROM_DATABASE=Emcraft Systems LLC - -@@ -56341,6 +56503,9 @@ OUI:4013D9* - OUI:401597* - ID_OUI_FROM_DATABASE=Protect America, Inc. - -+OUI:40167E* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:40169F* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO., LTD. - -@@ -56392,6 +56557,9 @@ OUI:404022* - OUI:40406B* - ID_OUI_FROM_DATABASE=Icomera - -+OUI:4045DA* -+ ID_OUI_FROM_DATABASE=Spreadtrum Communications (Shanghai) Co., Ltd. -+ - OUI:404A03* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -@@ -56527,6 +56695,9 @@ OUI:40B2C8* - OUI:40B395* - ID_OUI_FROM_DATABASE=Apple - -+OUI:40B3CD* -+ ID_OUI_FROM_DATABASE=Chiyoda Electronics Co.,Ltd. -+ - OUI:40B3FC* - ID_OUI_FROM_DATABASE=Logital Co. Limited - -@@ -56596,6 +56767,9 @@ OUI:40F02F* - OUI:40F14C* - ID_OUI_FROM_DATABASE=ISE Europe SPRL - -+OUI:40F201* -+ ID_OUI_FROM_DATABASE=SAGEMCOM -+ - OUI:40F2E9* - ID_OUI_FROM_DATABASE=IBM - -@@ -56632,6 +56806,9 @@ OUI:44184F* - OUI:4419B6* - ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. - -+OUI:441E91* -+ ID_OUI_FROM_DATABASE=ARVIDA Intelligent Electronics Technology Co.,Ltd. -+ - OUI:441EA1* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -@@ -56776,6 +56953,9 @@ OUI:448312* - OUI:448500* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:4486C1* -+ ID_OUI_FROM_DATABASE=Siemens Low Voltage & Products -+ - OUI:4487FC* - ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. - -@@ -56860,6 +57040,9 @@ OUI:44D2CA* - OUI:44D3CA* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:44D4E0* -+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB -+ - OUI:44D63D* - ID_OUI_FROM_DATABASE=Talari Networks - -@@ -56920,6 +57103,9 @@ OUI:48174C* - OUI:481842* - ID_OUI_FROM_DATABASE=Shanghai Winaas Co. Equipment Co. Ltd. - -+OUI:481A84* -+ ID_OUI_FROM_DATABASE=Pointer Telocation Ltd -+ - OUI:481BD2* - ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. - -@@ -56950,9 +57136,15 @@ OUI:4846F1* - OUI:4846FB* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:4851B7* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:485261* - ID_OUI_FROM_DATABASE=SOREEL - -+OUI:485929* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:485A3F* - ID_OUI_FROM_DATABASE=WISOL - -@@ -56971,6 +57163,9 @@ OUI:4860BC* - OUI:4861A3* - ID_OUI_FROM_DATABASE=Concern "Axion" JSC - -+OUI:486276* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:486B91* - ID_OUI_FROM_DATABASE=Fleetwood Group Inc. - -@@ -56986,6 +57181,9 @@ OUI:487119* - OUI:48746E* - ID_OUI_FROM_DATABASE=Apple - -+OUI:488244* -+ ID_OUI_FROM_DATABASE=Life Fitness / Div. of Brunswick -+ - OUI:488E42* - ID_OUI_FROM_DATABASE=DIGALOG GmbH - -@@ -57046,15 +57244,24 @@ OUI:48CB6E* - OUI:48D0CF* - ID_OUI_FROM_DATABASE=Universal Electronics, Inc. - -+OUI:48D18E* -+ ID_OUI_FROM_DATABASE=Metis Communication Co.,Ltd -+ - OUI:48D224* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - - OUI:48D54C* - ID_OUI_FROM_DATABASE=Jeda Networks - -+OUI:48D705* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:48D7FF* - ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH - -+OUI:48D855* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY -+ - OUI:48D8FE* - ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. - -@@ -57136,6 +57343,9 @@ OUI:4C0F6E* - OUI:4C0FC7* - ID_OUI_FROM_DATABASE=Earda Electronics Co.,Ltd - -+OUI:4C11BF* -+ ID_OUI_FROM_DATABASE=ZHEJIANG DAHUA TECHNOLOGY CO.,LTD. -+ - OUI:4C1480* - ID_OUI_FROM_DATABASE=NOREGON SYSTEMS, INC - -@@ -57178,6 +57388,9 @@ OUI:4C322D* - OUI:4C32D9* - ID_OUI_FROM_DATABASE=M Rutty Holdings Pty. Ltd. - -+OUI:4C3909* -+ ID_OUI_FROM_DATABASE=HPL Electric & Power Private Limited -+ - OUI:4C3910* - ID_OUI_FROM_DATABASE=Newtek Electronics co., Ltd. - -@@ -57478,9 +57691,15 @@ OUI:505663* - OUI:5056A8* - ID_OUI_FROM_DATABASE=Jolla Ltd - -+OUI:5056BF* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD -+ - OUI:5057A8* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:505800* -+ ID_OUI_FROM_DATABASE=WyTec International, Inc. -+ - OUI:505AC6* - ID_OUI_FROM_DATABASE=GUANGDONG SUPER TELECOM CO.,LTD. - -@@ -57601,6 +57820,9 @@ OUI:50C271* - OUI:50C58D* - ID_OUI_FROM_DATABASE=Juniper Networks - -+OUI:50C7BF* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:50C971* - ID_OUI_FROM_DATABASE=GN Netcom A/S - -@@ -57706,6 +57928,9 @@ OUI:54271E* - OUI:542A9C* - ID_OUI_FROM_DATABASE=LSY Defense, LLC. - -+OUI:542AA2* -+ ID_OUI_FROM_DATABASE=Alpha Networks Inc. -+ - OUI:542CEA* - ID_OUI_FROM_DATABASE=PROTECTRON - -@@ -57739,9 +57964,15 @@ OUI:544408* - OUI:54466B* - ID_OUI_FROM_DATABASE=Shenzhen CZTIC Electronic Technology Co., Ltd - -+OUI:544A00* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:544A05* - ID_OUI_FROM_DATABASE=wenglor sensoric gmbh - -+OUI:544A16* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:5453ED* - ID_OUI_FROM_DATABASE=Sony Corporation - -@@ -57844,6 +58075,9 @@ OUI:54B620* - OUI:54BEF7* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -+OUI:54C80F* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:54CDA7* - ID_OUI_FROM_DATABASE=Fujian Shenzhou Electronic Co.,Ltd - -@@ -57886,6 +58120,12 @@ OUI:54E6FC* - OUI:54EAA8* - ID_OUI_FROM_DATABASE=Apple, Inc. - -+OUI:54EE75* -+ ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. -+ -+OUI:54EF92* -+ ID_OUI_FROM_DATABASE=Shenzhen Elink Technology Co., LTD -+ - OUI:54F5B6* - ID_OUI_FROM_DATABASE=ORIENTAL PACIFIC INTERNATIONAL LIMITED - -@@ -57928,12 +58168,18 @@ OUI:581CBD* - OUI:581D91* - ID_OUI_FROM_DATABASE=Advanced Mobile Telecom co.,ltd. - -+OUI:581F67* -+ ID_OUI_FROM_DATABASE=Open-m technology limited -+ - OUI:581FAA* - ID_OUI_FROM_DATABASE=Apple - - OUI:581FEF* - ID_OUI_FROM_DATABASE=Tuttnaer LTD - -+OUI:58238C* -+ ID_OUI_FROM_DATABASE=Technicolor CH USA -+ - OUI:582EFE* - ID_OUI_FROM_DATABASE=Lighting Science Group - -@@ -58123,6 +58369,9 @@ OUI:58DB8D* - OUI:58E02C* - ID_OUI_FROM_DATABASE=Micro Technic A/S - -+OUI:58E326* -+ ID_OUI_FROM_DATABASE=Compass Technologies Inc. -+ - OUI:58E476* - ID_OUI_FROM_DATABASE=CENTRON COMMUNICATIONS TECHNOLOGIES FUJIAN CO.,LTD - -@@ -58213,6 +58462,9 @@ OUI:5C260A* - OUI:5C2AEF* - ID_OUI_FROM_DATABASE=Open Access Pty Ltd - -+OUI:5C313E* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:5C3327* - ID_OUI_FROM_DATABASE=Spazio Italia srl - -@@ -58411,6 +58663,9 @@ OUI:5CF370* - OUI:5CF3FC* - ID_OUI_FROM_DATABASE=IBM Corp - -+OUI:5CF4AB* -+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp -+ - OUI:5CF50D* - ID_OUI_FROM_DATABASE=Institute of microelectronic applications - -@@ -58561,6 +58816,9 @@ OUI:60748D* - OUI:607688* - ID_OUI_FROM_DATABASE=Velodyne - -+OUI:60812B* -+ ID_OUI_FROM_DATABASE=Custom Control Concepts -+ - OUI:6083B2* - ID_OUI_FROM_DATABASE=GkWare e.K. - -@@ -58585,9 +58843,15 @@ OUI:608C2B* - OUI:608D17* - ID_OUI_FROM_DATABASE=Sentrus Government Systems Division, Inc - -+OUI:608F5C* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:609084* - ID_OUI_FROM_DATABASE=DSSD Inc - -+OUI:609217* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:609AA4* - ID_OUI_FROM_DATABASE=GVI SECURITY INC. - -@@ -58615,6 +58879,9 @@ OUI:60B3C4* - OUI:60B606* - ID_OUI_FROM_DATABASE=Phorus - -+OUI:60B617* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:60B933* - ID_OUI_FROM_DATABASE=Deutron Electronics Corp. - -@@ -58633,6 +58900,9 @@ OUI:60BD91* - OUI:60BEB5* - ID_OUI_FROM_DATABASE=Motorola Mobility LLC - -+OUI:60C1CB* -+ ID_OUI_FROM_DATABASE=Fujian Great Power PLC Equipment Co.,Ltd -+ - OUI:60C397* - ID_OUI_FROM_DATABASE=2Wire Inc - -@@ -58681,6 +58951,9 @@ OUI:60DE44* - OUI:60E00E* - ID_OUI_FROM_DATABASE=SHINSEI ELECTRONICS CO LTD - -+OUI:60E327* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:60E956* - ID_OUI_FROM_DATABASE=Ayla Networks, Inc - -@@ -58753,6 +59026,9 @@ OUI:640F28* - OUI:641084* - ID_OUI_FROM_DATABASE=HEXIUM Technical Development Co., Ltd. - -+OUI:641225* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:64168D* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -58966,6 +59242,9 @@ OUI:64A3CB* - OUI:64A769* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:64A7DD* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:64A837* - ID_OUI_FROM_DATABASE=Juni Korea Co., Ltd - -@@ -59062,6 +59341,9 @@ OUI:64E8E6* - OUI:64E950* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:64EAC5* -+ ID_OUI_FROM_DATABASE=SiboTech Automation Co., Ltd. -+ - OUI:64EB8C* - ID_OUI_FROM_DATABASE=Seiko Epson Corporation - -@@ -59131,6 +59413,9 @@ OUI:681FD8* - OUI:68234B* - ID_OUI_FROM_DATABASE=Nihon Dengyo Kousaku - -+OUI:6828BA* -+ ID_OUI_FROM_DATABASE=Dejai -+ - OUI:682DDC* - ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD - -@@ -59188,6 +59473,9 @@ OUI:6869F2* - OUI:686E23* - ID_OUI_FROM_DATABASE=Wi3 Inc. - -+OUI:686E48* -+ ID_OUI_FROM_DATABASE=Prophet Electronic Technology Corp.,Ltd -+ - OUI:687251* - ID_OUI_FROM_DATABASE=Ubiquiti Networks - -@@ -59332,6 +59620,9 @@ OUI:68DB96* - OUI:68DCE8* - ID_OUI_FROM_DATABASE=PacketStorm Communications - -+OUI:68DFDD* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:68E41F* - ID_OUI_FROM_DATABASE=Unglaube Identech GmbH - -@@ -59377,12 +59668,18 @@ OUI:6C0E0D* - OUI:6C0F6A* - ID_OUI_FROM_DATABASE=JDC Tech Co., Ltd. - -+OUI:6C14F7* -+ ID_OUI_FROM_DATABASE=Erhardt+Leimer GmbH -+ - OUI:6C15F9* - ID_OUI_FROM_DATABASE=Nautronix Limited - - OUI:6C1811* - ID_OUI_FROM_DATABASE=Decatur Electronics - -+OUI:6C198F* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:6C2056* - ID_OUI_FROM_DATABASE=Cisco - -@@ -59395,6 +59692,9 @@ OUI:6C23B9* - OUI:6C2995* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:6C2C06* -+ ID_OUI_FROM_DATABASE=OOO NPP Systemotechnika-NN -+ - OUI:6C2E33* - ID_OUI_FROM_DATABASE=Accelink Technologies Co.,Ltd. - -@@ -59539,6 +59839,9 @@ OUI:6CA906* - OUI:6CA96F* - ID_OUI_FROM_DATABASE=TransPacket AS - -+OUI:6CAAB3* -+ ID_OUI_FROM_DATABASE=Ruckus Wireless -+ - OUI:6CAB4D* - ID_OUI_FROM_DATABASE=Digital Payment Technologies - -@@ -59608,6 +59911,9 @@ OUI:6CE983* - OUI:6CECA1* - ID_OUI_FROM_DATABASE=SHENZHEN CLOU ELECTRONICS CO. LTD. - -+OUI:6CECEB* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:6CF049* - ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. - -@@ -59623,6 +59929,9 @@ OUI:6CF97C* - OUI:6CFA58* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:6CFAA7* -+ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. -+ - OUI:6CFDB9* - ID_OUI_FROM_DATABASE=Proware Technologies Co Ltd. - -@@ -59686,6 +59995,9 @@ OUI:702F97* - OUI:703018* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:70305D* -+ ID_OUI_FROM_DATABASE=Ubiquoss Inc -+ - OUI:70305E* - ID_OUI_FROM_DATABASE=Nanjing Zhongke Menglian Information Technology Co.,LTD - -@@ -59767,6 +60079,9 @@ OUI:7060DE* - OUI:706173* - ID_OUI_FROM_DATABASE=Calantec GmbH - -+OUI:7062B8* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:706417* - ID_OUI_FROM_DATABASE=ORBIS TECNOLOGIA ELECTRICA S.A. - -@@ -59881,6 +60196,9 @@ OUI:70B14E* - OUI:70B265* - ID_OUI_FROM_DATABASE=Hiltron s.r.l. - -+OUI:70B3D5* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see OUI36 public listing for more information. -+ - OUI:70B599* - ID_OUI_FROM_DATABASE=Embedded Technologies s.r.o. - -@@ -59950,6 +60268,9 @@ OUI:70F395* - OUI:70F927* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:70F96D* -+ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited -+ - OUI:70FF76* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -59965,12 +60286,18 @@ OUI:741489* - OUI:7415E2* - ID_OUI_FROM_DATABASE=Tri-Sen Systems Corporation - -+OUI:7419F8* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:741E93* - ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. - - OUI:74258A* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -+OUI:7426AC* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:74273C* - ID_OUI_FROM_DATABASE=ChangYang Technology (Nanjing) Co., LTD - -@@ -60077,7 +60404,7 @@ OUI:747E2D* - ID_OUI_FROM_DATABASE=Beijing Thomson CITIC Digital Technology Co. LTD. - - OUI:74867A* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:74882A* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -@@ -60172,6 +60499,9 @@ OUI:74D675* - OUI:74D850* - ID_OUI_FROM_DATABASE=Evrisko Systems - -+OUI:74DA38* -+ ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. -+ - OUI:74DE2B* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -60292,6 +60622,9 @@ OUI:7831C1* - OUI:78324F* - ID_OUI_FROM_DATABASE=Millennium Group, Inc. - -+OUI:783A84* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:783CE3* - ID_OUI_FROM_DATABASE=Kai-EE - -@@ -60319,6 +60652,9 @@ OUI:7846C4* - OUI:78471D* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:784859* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:78491D* - ID_OUI_FROM_DATABASE=The Will-Burt Company - -@@ -60391,6 +60727,9 @@ OUI:788C54* - OUI:788DF7* - ID_OUI_FROM_DATABASE=Hitron Technologies. Inc - -+OUI:78923E* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:78929C* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -60523,6 +60862,9 @@ OUI:78D38D* - OUI:78D5B5* - ID_OUI_FROM_DATABASE=NAVIELEKTRO KY - -+OUI:78D66F* -+ ID_OUI_FROM_DATABASE=Aristocrat Technologies Australia Pty. Ltd. -+ - OUI:78D6F0* - ID_OUI_FROM_DATABASE=Samsung Electro Mechanics - -@@ -60736,6 +61078,9 @@ OUI:7C6C8F* - OUI:7C6D62* - ID_OUI_FROM_DATABASE=Apple - -+OUI:7C6DF8* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:7C6F06* - ID_OUI_FROM_DATABASE=Caterpillar Trimble Control Technologies - -@@ -60856,6 +61201,9 @@ OUI:7CCFCF* - OUI:7CD1C3* - ID_OUI_FROM_DATABASE=Apple - -+OUI:7CD30A* -+ ID_OUI_FROM_DATABASE=INVENTEC Corporation -+ - OUI:7CD762* - ID_OUI_FROM_DATABASE=Freestyle Technology Pty Ltd - -@@ -60919,6 +61267,9 @@ OUI:7CFADF* - OUI:7CFE28* - ID_OUI_FROM_DATABASE=Salutron Inc. - -+OUI:7CFE4E* -+ ID_OUI_FROM_DATABASE=Shenzhen Safe vision Technology Co.,LTD -+ - OUI:7CFF62* - ID_OUI_FROM_DATABASE=Huizhou Super Electron Technology Co.,Ltd. - -@@ -60940,9 +61291,15 @@ OUI:8007A2* - OUI:800A06* - ID_OUI_FROM_DATABASE=COMTEC co.,ltd - -+OUI:800E24* -+ ID_OUI_FROM_DATABASE=ForgetBox -+ - OUI:801440* - ID_OUI_FROM_DATABASE=Sunlit System Technology Corp - -+OUI:8014A8* -+ ID_OUI_FROM_DATABASE=Guangzhou V-SOLUTION Electronic Technology Co., Ltd. -+ - OUI:8016B7* - ID_OUI_FROM_DATABASE=Brunel University - -@@ -60952,6 +61309,9 @@ OUI:80177D* - OUI:8018A7* - ID_OUI_FROM_DATABASE=Samsung Eletronics Co., Ltd - -+OUI:801934* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:801DAA* - ID_OUI_FROM_DATABASE=Avaya Inc - -@@ -60994,6 +61354,9 @@ OUI:803F5D* - OUI:803FD6* - ID_OUI_FROM_DATABASE=bytes at work AG - -+OUI:80414E* -+ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., -+ - OUI:80427C* - ID_OUI_FROM_DATABASE=Adolf Tedsen GmbH & Co. KG - -@@ -61279,6 +61642,9 @@ OUI:843611* - OUI:843835* - ID_OUI_FROM_DATABASE=Apple - -+OUI:843838* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ - OUI:843A4B* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -61360,6 +61726,9 @@ OUI:848506* - OUI:848D84* - ID_OUI_FROM_DATABASE=Rajant Corporation - -+OUI:848DC7* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:848E0C* - ID_OUI_FROM_DATABASE=Apple - -@@ -61372,6 +61741,12 @@ OUI:848F69* - OUI:849000* - ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik - -+OUI:84948C* -+ ID_OUI_FROM_DATABASE=Hitron Technologies. Inc -+ -+OUI:8496D8* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:8497B8* - ID_OUI_FROM_DATABASE=Memjet Inc. - -@@ -61399,6 +61774,9 @@ OUI:84ACA4* - OUI:84AF1F* - ID_OUI_FROM_DATABASE=Beat System Service Co,. Ltd. - -+OUI:84B153* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:84B59C* - ID_OUI_FROM_DATABASE=Juniper networks - -@@ -61468,6 +61846,9 @@ OUI:880355* - OUI:880905* - ID_OUI_FROM_DATABASE=MTMCommunications - -+OUI:880F10* -+ ID_OUI_FROM_DATABASE=Huami Information Technology Co.,Ltd. -+ - OUI:880FB6* - ID_OUI_FROM_DATABASE=Jabil Circuits India Pvt Ltd,-EHTP unit - -@@ -61558,7 +61939,10 @@ OUI:88576D* - OUI:885A92* - ID_OUI_FROM_DATABASE=Cisco - --OUI:885C4F* -+OUI:885BDD* -+ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. -+ -+OUI:885C47* - ID_OUI_FROM_DATABASE=Alcatel Lucent - - OUI:88615A* -@@ -61654,6 +62038,9 @@ OUI:88AE1D* - OUI:88B168* - ID_OUI_FROM_DATABASE=Delta Control GmbH - -+OUI:88B1E1* -+ ID_OUI_FROM_DATABASE=AirTight Networks, Inc. -+ - OUI:88B627* - ID_OUI_FROM_DATABASE=Gembird Europe BV - -@@ -62107,6 +62494,9 @@ OUI:9046B7* - OUI:904716* - ID_OUI_FROM_DATABASE=RORZE CORPORATION - -+OUI:90489A* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:9049FA* - ID_OUI_FROM_DATABASE=Intel Corporation - -@@ -62179,6 +62569,9 @@ OUI:907A28* - OUI:907AF1* - ID_OUI_FROM_DATABASE=SNUPI Technologies - -+OUI:907EBA* -+ ID_OUI_FROM_DATABASE=UTEK TECHNOLOGY (SHENZHEN) CO.,LTD -+ - OUI:907F61* - ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. - -@@ -62197,12 +62590,12 @@ OUI:9088A2* - OUI:908C44* - ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. - -+OUI:908C63* -+ ID_OUI_FROM_DATABASE=GZ Weedong Networks Technology Co. , Ltd -+ - OUI:908D1D* - ID_OUI_FROM_DATABASE=GH Technologies - --OUI:908F93* -- ID_OUI_FROM_DATABASE=MakerBot Industries -- - OUI:908FCF* - ID_OUI_FROM_DATABASE=UNO System Co., Ltd - -@@ -62245,6 +62638,9 @@ OUI:90A7C1* - OUI:90AC3F* - ID_OUI_FROM_DATABASE=BrightSign LLC - -+OUI:90AE1B* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:90B11C* - ID_OUI_FROM_DATABASE=Dell Inc. - -@@ -62303,7 +62699,7 @@ OUI:90DFB7* - ID_OUI_FROM_DATABASE=s.m.s smart microwave sensors GmbH - - OUI:90E0F0* -- ID_OUI_FROM_DATABASE=Harman International -+ ID_OUI_FROM_DATABASE=IEEE 1722a Working Group - - OUI:90E2BA* - ID_OUI_FROM_DATABASE=Intel Corporate -@@ -62683,6 +63079,9 @@ OUI:983571* - OUI:9835B8* - ID_OUI_FROM_DATABASE=Assembled Products Corporation - -+OUI:983713* -+ ID_OUI_FROM_DATABASE=PT.Navicom Indonesia -+ - OUI:983B16* - ID_OUI_FROM_DATABASE=AMPAK Technology Inc - -@@ -62746,6 +63145,9 @@ OUI:986022* - OUI:9866EA* - ID_OUI_FROM_DATABASE=Industrial Control Communications, Inc. - -+OUI:986B3D* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:986CF5* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -62812,6 +63214,9 @@ OUI:98BC57* - OUI:98BC99* - ID_OUI_FROM_DATABASE=Edeltech Co.,Ltd. - -+OUI:98BE94* -+ ID_OUI_FROM_DATABASE=IBM -+ - OUI:98C0EB* - ID_OUI_FROM_DATABASE=Global Regency Ltd - -@@ -62929,6 +63334,9 @@ OUI:9C2840* - OUI:9C28BF* - ID_OUI_FROM_DATABASE=Continental Automotive Czech Republic s.r.o. - -+OUI:9C28EF* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:9C2A70* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -63184,6 +63592,9 @@ OUI:9CFBF1* - OUI:9CFFBE* - ID_OUI_FROM_DATABASE=OTSL Inc. - -+OUI:A002DC* -+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. -+ - OUI:A00363* - ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH - -@@ -63205,6 +63616,9 @@ OUI:A00CA1* - OUI:A01290* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:A012DB* -+ ID_OUI_FROM_DATABASE=TABUCHI ELECTRIC CO.,LTD -+ - OUI:A0133B* - ID_OUI_FROM_DATABASE=Copyright © HiTi Digital, Inc. - -@@ -63235,6 +63649,9 @@ OUI:A021B7* - OUI:A0231B* - ID_OUI_FROM_DATABASE=TeleComp R&D Corp. - -+OUI:A02BB8* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:A02EF3* - ID_OUI_FROM_DATABASE=United Integrated Services Co., Led. - -@@ -63439,6 +63856,9 @@ OUI:A0D12A* - OUI:A0D3C1* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A0DA92* -+ ID_OUI_FROM_DATABASE=Nanjing Glarun Atten Technology Co. Ltd. -+ - OUI:A0DC04* - ID_OUI_FROM_DATABASE=Becker-Antriebe GmbH - -@@ -63502,6 +63922,9 @@ OUI:A0F450* - OUI:A0F459* - ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED - -+OUI:A0FC6E* -+ ID_OUI_FROM_DATABASE=Telegrafia a.s. -+ - OUI:A0FE91* - ID_OUI_FROM_DATABASE=AVAT Automation GmbH - -@@ -63565,6 +63988,12 @@ OUI:A438FC* - OUI:A43A69* - ID_OUI_FROM_DATABASE=Vers Inc - -+OUI:A43BFA* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ -+OUI:A43D78* -+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD -+ - OUI:A4466B* - ID_OUI_FROM_DATABASE=EOC Technology - -@@ -63604,6 +64033,9 @@ OUI:A45C27* - OUI:A45D36* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A46032* -+ ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD -+ - OUI:A46706* - ID_OUI_FROM_DATABASE=Apple - -@@ -63632,7 +64064,13 @@ OUI:A47C14* - ID_OUI_FROM_DATABASE=ChargeStorm AB - - OUI:A47C1F* -- ID_OUI_FROM_DATABASE=Global Microwave Systems Inc. -+ ID_OUI_FROM_DATABASE=Cobham plc -+ -+OUI:A47E39* -+ ID_OUI_FROM_DATABASE=zte corporation -+ -+OUI:A481EE* -+ ID_OUI_FROM_DATABASE=Nokia Corporation - - OUI:A4856B* - ID_OUI_FROM_DATABASE=Q Electronics Ltd -@@ -63664,6 +64102,9 @@ OUI:A49B13* - OUI:A49EDB* - ID_OUI_FROM_DATABASE=AutoCrib, Inc. - -+OUI:A49F85* -+ ID_OUI_FROM_DATABASE=Lyve Minds, Inc -+ - OUI:A49F89* - ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. - -@@ -63964,6 +64405,9 @@ OUI:A8995C* - OUI:A89B10* - ID_OUI_FROM_DATABASE=inMotion Ltd. - -+OUI:A8A668* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:A8AD3D* - ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd - -@@ -64021,6 +64465,9 @@ OUI:A8F274* - OUI:A8F470* - ID_OUI_FROM_DATABASE=Fujian Newland Communication Science Technologies Co.,Ltd. - -+OUI:A8F7E0* -+ ID_OUI_FROM_DATABASE=PLANET Technology Corporation -+ - OUI:A8F94B* - ID_OUI_FROM_DATABASE=Eltex Enterprise Ltd. - -@@ -64258,12 +64705,21 @@ OUI:ACA22C* - OUI:ACA430* - ID_OUI_FROM_DATABASE=Peerless AV - -+OUI:ACA919* -+ ID_OUI_FROM_DATABASE=TrekStor GmbH -+ -+OUI:ACA9A0* -+ ID_OUI_FROM_DATABASE=Audioengine, Ltd. -+ - OUI:ACAB8D* - ID_OUI_FROM_DATABASE=Lyngso Marine A/S - - OUI:ACB313* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:ACB859* -+ ID_OUI_FROM_DATABASE=Uniband Electronic Corp, -+ - OUI:ACBD0B* - ID_OUI_FROM_DATABASE=IMAC CO.,LTD - -@@ -64375,6 +64831,9 @@ OUI:ACF97E* - OUI:ACFDEC* - ID_OUI_FROM_DATABASE=Apple, Inc - -+OUI:B000B4* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:B00594* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -64465,6 +64924,9 @@ OUI:B06CBF* - OUI:B0750C* - ID_OUI_FROM_DATABASE=QA Cafe - -+OUI:B0754D* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:B075D5* - ID_OUI_FROM_DATABASE=ZTE Corporation - -@@ -64528,9 +64990,15 @@ OUI:B09FBA* - OUI:B0A10A* - ID_OUI_FROM_DATABASE=Pivotal Systems Corporation - -+OUI:B0A37E* -+ ID_OUI_FROM_DATABASE=Qingdao Haier Electronics Co.,Ltd -+ - OUI:B0A72A* - ID_OUI_FROM_DATABASE=Ensemble Designs, Inc. - -+OUI:B0A737* -+ ID_OUI_FROM_DATABASE=Roku, Inc. -+ - OUI:B0A86E* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -64597,6 +65065,9 @@ OUI:B0D09C* - OUI:B0D2F5* - ID_OUI_FROM_DATABASE=Vello Systems, Inc. - -+OUI:B0D59D* -+ ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd -+ - OUI:B0D7C5* - ID_OUI_FROM_DATABASE=STP KFT - -@@ -64813,6 +65284,9 @@ OUI:B499BA* - OUI:B49DB4* - ID_OUI_FROM_DATABASE=Axion Technologies Inc. - -+OUI:B49EAC* -+ ID_OUI_FROM_DATABASE=Imagik Int'l Corp -+ - OUI:B49EE6* - ID_OUI_FROM_DATABASE=SHENZHEN TECHNOLOGY CO LTD - -@@ -64900,6 +65374,9 @@ OUI:B4ED19* - OUI:B4ED54* - ID_OUI_FROM_DATABASE=Wohler Technologies - -+OUI:B4EEB4* -+ ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP -+ - OUI:B4EED4* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -64963,6 +65440,9 @@ OUI:B8288B* - OUI:B829F7* - ID_OUI_FROM_DATABASE=Blaster Tech - -+OUI:B82A72* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:B82ADC* - ID_OUI_FROM_DATABASE=EFR Europäische Funk-Rundsteuerung GmbH - -@@ -65047,6 +65527,9 @@ OUI:B87424* - OUI:B87447* - ID_OUI_FROM_DATABASE=Convergence Technologies - -+OUI:B875C0* -+ ID_OUI_FROM_DATABASE=PayPal, Inc. -+ - OUI:B8763F* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -65062,6 +65545,9 @@ OUI:B8797E* - OUI:B87AC9* - ID_OUI_FROM_DATABASE=Siemens Ltd. - -+OUI:B87CF2* -+ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. -+ - OUI:B8871E* - ID_OUI_FROM_DATABASE=Good Mind Industries Co., Ltd. - -@@ -65152,6 +65638,9 @@ OUI:B8BB6D* - OUI:B8BEBF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:B8BF83* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:B8C1A2* - ID_OUI_FROM_DATABASE=Dragon Path Technologies Co., Limited - -@@ -65171,7 +65660,7 @@ OUI:B8C855* - ID_OUI_FROM_DATABASE=Shanghai GBCOM Communication Technology Co.,Ltd. - - OUI:B8CA3A* -- ID_OUI_FROM_DATABASE=Dell PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:B8CD93* - ID_OUI_FROM_DATABASE=Penetek, Inc -@@ -65215,6 +65704,9 @@ OUI:B8E856* - OUI:B8E937* - ID_OUI_FROM_DATABASE=Sonos, Inc. - -+OUI:B8EE65* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:B8EE79* - ID_OUI_FROM_DATABASE=YWire Technologies, Inc. - -@@ -65284,6 +65776,9 @@ OUI:BC20A4* - OUI:BC20BA* - ID_OUI_FROM_DATABASE=Inspur (Shandong) Electronic Information Co., Ltd - -+OUI:BC25F0* -+ ID_OUI_FROM_DATABASE=3D Display Technologies Co., Ltd. -+ - OUI:BC261D* - ID_OUI_FROM_DATABASE=HONG KONG TECON TECHNOLOGY - -@@ -65311,6 +65806,9 @@ OUI:BC305B* - OUI:BC307D* - ID_OUI_FROM_DATABASE=Wistron Neweb Corp. - -+OUI:BC3400* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:BC35E5* - ID_OUI_FROM_DATABASE=Hydro Systems Company - -@@ -65419,6 +65917,9 @@ OUI:BC8B55* - OUI:BC8CCD* - ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. - -+OUI:BC8D0E* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:BC926B* - ID_OUI_FROM_DATABASE=Apple - -@@ -65572,6 +66073,9 @@ OUI:C038F9* - OUI:C03B8F* - ID_OUI_FROM_DATABASE=Minicom Digital Signage - -+OUI:C03D46* -+ ID_OUI_FROM_DATABASE=Shanghai Mochui Network Technology Co., Ltd -+ - OUI:C03E0F* - ID_OUI_FROM_DATABASE=BSkyB Ltd - -@@ -65602,6 +66106,9 @@ OUI:C04A00* - OUI:C04DF7* - ID_OUI_FROM_DATABASE=SERELEC - -+OUI:C056E3* -+ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. -+ - OUI:C057BC* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -65614,6 +66121,9 @@ OUI:C05E6F* - OUI:C05E79* - ID_OUI_FROM_DATABASE=SHENZHEN HUAXUN ARK TECHNOLOGIES CO.,LTD - -+OUI:C06118* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:C0626B* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -65794,6 +66304,9 @@ OUI:C40415* - OUI:C40528* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:C4084A* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:C40938* - ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd - -@@ -65848,6 +66361,9 @@ OUI:C4291D* - OUI:C42C03* - ID_OUI_FROM_DATABASE=Apple - -+OUI:C4346B* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:C436DA* - ID_OUI_FROM_DATABASE=Rusteletech Ltd. - -@@ -65938,6 +66454,9 @@ OUI:C467B5* - OUI:C46AB7* - ID_OUI_FROM_DATABASE=Xiaomi Technology,Inc. - -+OUI:C46BB4* -+ ID_OUI_FROM_DATABASE=myIDkey -+ - OUI:C46DF1* - ID_OUI_FROM_DATABASE=DataGravity - -@@ -65983,6 +66502,9 @@ OUI:C48508* - OUI:C488E5* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:C4913A* -+ ID_OUI_FROM_DATABASE=Shenzhen Sanland Electronic Co., ltd. -+ - OUI:C49300* - ID_OUI_FROM_DATABASE=8Devices - -@@ -66025,6 +66547,9 @@ OUI:C4C755* - OUI:C4C919* - ID_OUI_FROM_DATABASE=Energy Imports Ltd - -+OUI:C4C9EC* -+ ID_OUI_FROM_DATABASE=D&D GROUP sp. z o.o. -+ - OUI:C4CAD9* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -@@ -66113,7 +66638,7 @@ OUI:C81E8E* - ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd - - OUI:C81F66* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:C8208E* - ID_OUI_FROM_DATABASE=Storagedata -@@ -66127,6 +66652,9 @@ OUI:C82A14* - OUI:C82E94* - ID_OUI_FROM_DATABASE=Halfa Enterprise Co., Ltd. - -+OUI:C83168* -+ ID_OUI_FROM_DATABASE=eZEX corporation -+ - OUI:C83232* - ID_OUI_FROM_DATABASE=Hunting Innova - -@@ -66238,6 +66766,9 @@ OUI:C89C1D* - OUI:C89CDC* - ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. - -+OUI:C89F1D* -+ ID_OUI_FROM_DATABASE=SHENZHEN COMMUNICATION TECHNOLOGIES CO.,LTD -+ - OUI:C89F42* - ID_OUI_FROM_DATABASE=VDII Innovation AB - -@@ -66274,6 +66805,9 @@ OUI:C8B373* - OUI:C8B5B7* - ID_OUI_FROM_DATABASE=Apple - -+OUI:C8BA94* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ - OUI:C8BBD3* - ID_OUI_FROM_DATABASE=Embrane - -@@ -66316,6 +66850,9 @@ OUI:C8D3A3* - OUI:C8D429* - ID_OUI_FROM_DATABASE=Muehlbauer AG - -+OUI:C8D590* -+ ID_OUI_FROM_DATABASE=FLIGHT DATA SYSTEMS -+ - OUI:C8D5FE* - ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd - -@@ -66337,6 +66874,9 @@ OUI:C8E0EB* - OUI:C8E1A7* - ID_OUI_FROM_DATABASE=Vertu Corporation Limited - -+OUI:C8E42F* -+ ID_OUI_FROM_DATABASE=Technical Research Design and Development -+ - OUI:C8EE08* - ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD - -@@ -66358,6 +66898,9 @@ OUI:C8F386* - OUI:C8F406* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:C8F650* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:C8F68D* - ID_OUI_FROM_DATABASE=S.E.TECHNOLOGIES LIMITED - -@@ -66379,6 +66922,9 @@ OUI:C8FB26* - OUI:C8FE30* - ID_OUI_FROM_DATABASE=Bejing DAYO Mobile Communication Technology Ltd. - -+OUI:C8FF77* -+ ID_OUI_FROM_DATABASE=Dyson Limited -+ - OUI:CC0080* - ID_OUI_FROM_DATABASE=BETTINI SRL - -@@ -66394,6 +66940,9 @@ OUI:CC051B* - OUI:CC07AB* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:CC07E4* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:CC08E0* - ID_OUI_FROM_DATABASE=Apple - -@@ -66574,6 +67123,9 @@ OUI:CC9E00* - OUI:CC9F35* - ID_OUI_FROM_DATABASE=Transbit Sp. z o.o. - -+OUI:CCA0E5* -+ ID_OUI_FROM_DATABASE=DZG Metering GmbH -+ - OUI:CCA374* - ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd - -@@ -66595,6 +67147,9 @@ OUI:CCB3F8* - OUI:CCB55A* - ID_OUI_FROM_DATABASE=Fraunhofer ITWM - -+OUI:CCB691* -+ ID_OUI_FROM_DATABASE=NECMagnusCommunications -+ - OUI:CCB888* - ID_OUI_FROM_DATABASE=AnB Securite s.a. - -@@ -66610,6 +67165,9 @@ OUI:CCBE71* - OUI:CCC104* - ID_OUI_FROM_DATABASE=Applied Technical Systems - -+OUI:CCC3EA* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:CCC50A* - ID_OUI_FROM_DATABASE=SHENZHEN DAJIAHAO TECHNOLOGY CO.,LTD - -@@ -66643,6 +67201,9 @@ OUI:CCD811* - OUI:CCD9E9* - ID_OUI_FROM_DATABASE=SCR Engineers Ltd. - -+OUI:CCE1D5* -+ ID_OUI_FROM_DATABASE=Buffalo Inc. -+ - OUI:CCE798* - ID_OUI_FROM_DATABASE=My Social Stuff - -@@ -66778,6 +67339,12 @@ OUI:D059C3* - OUI:D05A0F* - ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD - -+OUI:D05AF1* -+ ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd -+ -+OUI:D05FB8* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:D05FCE* - ID_OUI_FROM_DATABASE=Hitachi Data Systems - -@@ -66799,6 +67366,9 @@ OUI:D0699E* - OUI:D069D0* - ID_OUI_FROM_DATABASE=Verto Medical Solutions, LLC - -+OUI:D072DC* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:D0737F* - ID_OUI_FROM_DATABASE=Mini-Circuits - -@@ -66811,6 +67381,9 @@ OUI:D073D5* - OUI:D075BE* - ID_OUI_FROM_DATABASE=Reno A&E - -+OUI:D07650* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:D07AB5* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -66895,6 +67468,9 @@ OUI:D0C42F* - OUI:D0C789* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:D0C7C0* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:D0CDE1* - ID_OUI_FROM_DATABASE=Scientech Electronics - -@@ -67018,6 +67594,9 @@ OUI:D41F0C* - OUI:D4206D* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:D42122* -+ ID_OUI_FROM_DATABASE=Sercomm Corporation -+ - OUI:D4223F* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -@@ -67099,6 +67678,9 @@ OUI:D464F7* - OUI:D466A8* - ID_OUI_FROM_DATABASE=Riedo Networks GmbH - -+OUI:D46761* -+ ID_OUI_FROM_DATABASE=SAHAB TECHNOLOGY -+ - OUI:D467E7* - ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. - -@@ -67168,6 +67750,9 @@ OUI:D49524* - OUI:D496DF* - ID_OUI_FROM_DATABASE=SUNGJIN C&T CO.,LTD - -+OUI:D4970B* -+ ID_OUI_FROM_DATABASE=XIAOMI CORPORATION -+ - OUI:D49A20* - ID_OUI_FROM_DATABASE=Apple - -@@ -67207,6 +67792,9 @@ OUI:D4AE52* - OUI:D4B110* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:D4B43E* -+ ID_OUI_FROM_DATABASE=Messcomp Datentechnik GmbH -+ - OUI:D4BED9* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -67237,6 +67825,9 @@ OUI:D4CBAF* - OUI:D4CEB8* - ID_OUI_FROM_DATABASE=Enatel LTD - -+OUI:D4CFF9* -+ ID_OUI_FROM_DATABASE=Shenzhen Sen5 Technology Co., Ltd. -+ - OUI:D4D184* - ID_OUI_FROM_DATABASE=ADB Broadband Italia - -@@ -67258,6 +67849,9 @@ OUI:D4D919* - OUI:D4DF57* - ID_OUI_FROM_DATABASE=Alpinion Medical Systems - -+OUI:D4E08E* -+ ID_OUI_FROM_DATABASE=ValueHD Corporation -+ - OUI:D4E32C* - ID_OUI_FROM_DATABASE=S. Siedle & Sohne - -@@ -67375,6 +67969,9 @@ OUI:D84606* - OUI:D8490B* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:D8492F* -+ ID_OUI_FROM_DATABASE=CANON INC. -+ - OUI:D84B2A* - ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. - -@@ -67397,7 +67994,7 @@ OUI:D85D84* - ID_OUI_FROM_DATABASE=CAx soft GmbH - - OUI:D86194* -- ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido -+ ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido - - OUI:D862DB* - ID_OUI_FROM_DATABASE=Eno Inc. -@@ -67438,6 +68035,9 @@ OUI:D87988* - OUI:D87CDD* - ID_OUI_FROM_DATABASE=SANIX INCORPORATED - -+OUI:D87EB1* -+ ID_OUI_FROM_DATABASE=x.o.ware, inc. -+ - OUI:D881CE* - ID_OUI_FROM_DATABASE=AHN INC. - -@@ -67462,6 +68062,9 @@ OUI:D8973B* - OUI:D89760* - ID_OUI_FROM_DATABASE=C2 Development, Inc. - -+OUI:D8977C* -+ ID_OUI_FROM_DATABASE=Grey Innovation -+ - OUI:D89D67* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -67525,6 +68128,9 @@ OUI:D8C7C8* - OUI:D8C99D* - ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED - -+OUI:D8CF9C* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:D8D1CB* - ID_OUI_FROM_DATABASE=Apple - -@@ -67555,6 +68161,9 @@ OUI:D8DD5F* - OUI:D8DDFD* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:D8DECE* -+ ID_OUI_FROM_DATABASE=ISUNG CO.,LTD -+ - OUI:D8DF0D* - ID_OUI_FROM_DATABASE=beroNet GmbH - -@@ -67660,6 +68269,9 @@ OUI:DC3350* - OUI:DC37D2* - ID_OUI_FROM_DATABASE=Hunan HKT Electronic Technology Co., Ltd - -+OUI:DC38E1* -+ ID_OUI_FROM_DATABASE=Juniper networks -+ - OUI:DC3A5E* - ID_OUI_FROM_DATABASE=Roku, Inc - -@@ -67693,6 +68305,9 @@ OUI:DC5E36* - OUI:DC647C* - ID_OUI_FROM_DATABASE=C.R.S. iiMotion GmbH - -+OUI:DC663A* -+ ID_OUI_FROM_DATABASE=Apacer Technology Inc. -+ - OUI:DC6F00* - ID_OUI_FROM_DATABASE=Livescribe, Inc. - -@@ -67816,6 +68431,9 @@ OUI:DCE71C* - OUI:DCF05D* - ID_OUI_FROM_DATABASE=Letta Teknoloji - -+OUI:DCF110* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:DCF755* - ID_OUI_FROM_DATABASE=SITRONIK - -@@ -67939,6 +68557,9 @@ OUI:E063E5* - OUI:E064BB* - ID_OUI_FROM_DATABASE=DigiView S.r.l. - -+OUI:E06678* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:E067B3* - ID_OUI_FROM_DATABASE=C-Data Technology Co., Ltd - -@@ -68071,6 +68692,9 @@ OUI:E0CA94* - OUI:E0CB4E* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -+OUI:E0CBEE* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:E0CEC3* - ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP - -@@ -68152,6 +68776,9 @@ OUI:E40439* - OUI:E4115B* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:E41218* -+ ID_OUI_FROM_DATABASE=ShenZhen Rapoo Technology Co., Ltd. -+ - OUI:E4121D* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -68341,6 +68968,9 @@ OUI:E4C806* - OUI:E4CE8F* - ID_OUI_FROM_DATABASE=Apple - -+OUI:E4D332* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:E4D3F1* - ID_OUI_FROM_DATABASE=Cisco - -@@ -68371,6 +69001,9 @@ OUI:E4F365* - OUI:E4F3E3* - ID_OUI_FROM_DATABASE=Shanghai iComhome Co.,Ltd. - -+OUI:E4F4C6* -+ ID_OUI_FROM_DATABASE=NETGEAR -+ - OUI:E4F7A1* - ID_OUI_FROM_DATABASE=Datafox GmbH - -@@ -68671,6 +69304,9 @@ OUI:E8EADA* - OUI:E8EDF3* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:E8EF89* -+ ID_OUI_FROM_DATABASE=OPMEX Tech. -+ - OUI:E8F1B0* - ID_OUI_FROM_DATABASE=SAGEMCOM SAS - -@@ -68719,6 +69355,9 @@ OUI:EC2AF0* - OUI:EC2C49* - ID_OUI_FROM_DATABASE=University of Tokyo - -+OUI:EC2E4E* -+ ID_OUI_FROM_DATABASE=HITACHI-LG DATA STORAGE INC -+ - OUI:EC3091* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -68881,6 +69520,9 @@ OUI:ECE09B* - OUI:ECE1A9* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:ECE512* -+ ID_OUI_FROM_DATABASE=tado GmbH -+ - OUI:ECE555* - ID_OUI_FROM_DATABASE=Hirschmann Automation - -@@ -68909,7 +69551,7 @@ OUI:ECF35B* - ID_OUI_FROM_DATABASE=Nokia Corporation - - OUI:ECF4BB* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:ECF72B* - ID_OUI_FROM_DATABASE=HD DIGITAL TECH CO., LTD. -@@ -68948,7 +69590,7 @@ OUI:F01C13* - ID_OUI_FROM_DATABASE=LG Electronics - - OUI:F01FAF* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F0219D* - ID_OUI_FROM_DATABASE=Cal-Comp Electronics & Communications Company Ltd. -@@ -69085,6 +69727,9 @@ OUI:F08A28* - OUI:F08BFE* - ID_OUI_FROM_DATABASE=COSTEL.,CO.LTD - -+OUI:F08CFB* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:F08EDB* - ID_OUI_FROM_DATABASE=VeloCloud Networks - -@@ -69241,6 +69886,9 @@ OUI:F4044C* - OUI:F4068D* - ID_OUI_FROM_DATABASE=devolo AG - -+OUI:F406A5* -+ ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. -+ - OUI:F40B93* - ID_OUI_FROM_DATABASE=Research In Motion - -@@ -69427,6 +70075,9 @@ OUI:F4B7E2* - OUI:F4BD7C* - ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD - -+OUI:F4C447* -+ ID_OUI_FROM_DATABASE=Coagent International Enterprise Limited -+ - OUI:F4C6D7* - ID_OUI_FROM_DATABASE=blackned GmbH - -@@ -69478,6 +70129,9 @@ OUI:F4F15A* - OUI:F4F5A5* - ID_OUI_FROM_DATABASE=Nokia corporation - -+OUI:F4F5E8* -+ ID_OUI_FROM_DATABASE=Google -+ - OUI:F4F951* - ID_OUI_FROM_DATABASE=Apple - -@@ -69502,6 +70156,9 @@ OUI:F80BD0* - OUI:F80CF3* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:F80D43* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. -+ - OUI:F80DEA* - ID_OUI_FROM_DATABASE=ZyCast Technology Inc. - -@@ -69586,6 +70243,9 @@ OUI:F8472D* - OUI:F84897* - ID_OUI_FROM_DATABASE=Hitachi, Ltd. - -+OUI:F84A73* -+ ID_OUI_FROM_DATABASE=EUMTECH CO., LTD -+ - OUI:F84A7F* - ID_OUI_FROM_DATABASE=Innometriks Inc - -@@ -69622,6 +70282,12 @@ OUI:F85F2A* - OUI:F862AA* - ID_OUI_FROM_DATABASE=xn systems - -+OUI:F86601* -+ ID_OUI_FROM_DATABASE=Suzhou Chi-tek information technology Co., Ltd -+ -+OUI:F866D1* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. -+ - OUI:F866F2* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -69710,13 +70376,13 @@ OUI:F8AC6D* - ID_OUI_FROM_DATABASE=Deltenna Ltd - - OUI:F8B156* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F8B599* - ID_OUI_FROM_DATABASE=Guangzhou CHNAVS Digital Technology Co.,Ltd - - OUI:F8BC12* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F8C001* - ID_OUI_FROM_DATABASE=Juniper Networks -@@ -69764,7 +70430,7 @@ OUI:F8DB7F* - ID_OUI_FROM_DATABASE=HTC Corporation - - OUI:F8DB88* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F8DC7A* - ID_OUI_FROM_DATABASE=Variscite LTD -@@ -69892,6 +70558,9 @@ OUI:FC1FC0* - OUI:FC229C* - ID_OUI_FROM_DATABASE=Han Kyung I Net Co.,Ltd. - -+OUI:FC2325* -+ ID_OUI_FROM_DATABASE=EosTek (Shenzhen) Co., Ltd. -+ - OUI:FC253F* - ID_OUI_FROM_DATABASE=Apple - -@@ -69928,6 +70597,9 @@ OUI:FC455F* - OUI:FC48EF* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:FC4AE9* -+ ID_OUI_FROM_DATABASE=Castlenet Technology Inc. -+ - OUI:FC4B1C* - ID_OUI_FROM_DATABASE=INTERSENSOR S.R.L. - -@@ -70030,6 +70702,9 @@ OUI:FCBBA1* - OUI:FCC23D* - ID_OUI_FROM_DATABASE=Atmel Corporation - -+OUI:FCC2DE* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:FCC734* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -70048,6 +70723,9 @@ OUI:FCD4F2* - OUI:FCD4F6* - ID_OUI_FROM_DATABASE=Messana Air.Ray Conditioning s.r.l. - -+OUI:FCD5D9* -+ ID_OUI_FROM_DATABASE=Shenzhen SDMC Technology Co., Ltd. -+ - OUI:FCD6BD* - ID_OUI_FROM_DATABASE=Robert Bosch GmbH - -@@ -70060,6 +70738,9 @@ OUI:FCDB96* - OUI:FCDD55* - ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd - -+OUI:FCE186* -+ ID_OUI_FROM_DATABASE=A3M Co., LTD -+ - OUI:FCE192* - ID_OUI_FROM_DATABASE=Sichuan Jinwangtong Electronic Science&Technology Co,.Ltd - -@@ -70078,12 +70759,18 @@ OUI:FCE892* - OUI:FCEDB9* - ID_OUI_FROM_DATABASE=Arrayent - -+OUI:FCF152* -+ ID_OUI_FROM_DATABASE=Sony Corporation -+ - OUI:FCF1CD* - ID_OUI_FROM_DATABASE=OPTEX-FA CO.,LTD. - - OUI:FCF528* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -+OUI:FCF647* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:FCF8AE* - ID_OUI_FROM_DATABASE=Intel Corporate - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 7f833e3..371a685 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -890,6 +890,9 @@ pci:v00001000d0000005Bsv00001000sd00009295* - pci:v00001000d0000005Bsv00001014sd0000040B* - ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller - -+pci:v00001000d0000005Bsv00001014sd0000040C* -+ ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller -+ - pci:v00001000d0000005Bsv00001014sd00000412* - ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller - -@@ -917,6 +920,9 @@ pci:v00001000d0000005Bsv00001028sd00001F37* - pci:v00001000d0000005Bsv00001028sd00001F38* - ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) - -+pci:v00001000d0000005Bsv000015D9sd00000690* -+ ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB -+ - pci:v00001000d0000005Bsv00008086sd00003510* - ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller - -@@ -950,6 +956,12 @@ pci:v00001000d0000005Dsv00001028sd00001F49* - pci:v00001000d0000005Dsv00001028sd00001F4A* - ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) - -+pci:v00001000d0000005Dsv000017AAsd00001052* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i -+ -+pci:v00001000d0000005Dsv000017AAsd00001053* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix -+ - pci:v00001000d0000005E* - ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS - -@@ -1163,6 +1175,9 @@ pci:v00001000d00000073sv000015D9sd00000400* - pci:v00001000d00000073sv00001734sd00001177* - ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) - -+pci:v00001000d00000073sv000017AAsd00001051* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i -+ - pci:v00001000d00000073sv00008086sd0000350D* - ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller - -@@ -1598,6 +1613,9 @@ pci:v00001000d00001960sv00008086sd00000520* - pci:v00001000d00001960sv00008086sd00000523* - ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 - -+pci:v00001000d00003050* -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 -+ - pci:v00001000d00006001* - ID_MODEL_FROM_DATABASE=DX1 Multiformat Broadcast HD/SD Encoder/Decoder - -@@ -1665,7 +1683,7 @@ pci:v00001002d0000130E* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d0000130F* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] - - pci:v00001002d00001310* - ID_MODEL_FROM_DATABASE=Kaveri -@@ -1673,9 +1691,12 @@ pci:v00001002d00001310* - pci:v00001002d00001311* - ID_MODEL_FROM_DATABASE=Kaveri - --pci:v00001002d00001313* -+pci:v00001002d00001312* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d00001313* -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] -+ - pci:v00001002d00001314* - ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio - -@@ -1686,6 +1707,9 @@ pci:v00001002d00001315* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d00001316* -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] -+ -+pci:v00001002d00001317* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d0000131B* -@@ -1694,6 +1718,9 @@ pci:v00001002d0000131B* - pci:v00001002d0000131C* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d0000131D* -+ ID_MODEL_FROM_DATABASE=Kaveri -+ - pci:v00001002d00001714* - ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] - -@@ -4176,20 +4203,41 @@ pci:v00001002d00006603* - ID_MODEL_FROM_DATABASE=Mars - - pci:v00001002d00006604* -- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M265] -+ ID_MODEL_FROM_DATABASE=Opal XT [Radeon R7 M265] - - pci:v00001002d00006605* -- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M260] -+ ID_MODEL_FROM_DATABASE=Opal PRO [Radeon R7 M260] - - pci:v00001002d00006606* - ID_MODEL_FROM_DATABASE=Mars XTX [Radeon HD 8790M] - - pci:v00001002d00006607* -- ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M] -+ ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M / R5 M240] - - pci:v00001002d00006610* - ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] - -+pci:v00001002d00006610sv00001019sd00000030* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001028sd00002120* -+ ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ -+pci:v00001002d00006610sv00001028sd00002322* -+ ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ -+pci:v00001002d00006610sv00001462sd00002910* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001462sd00002911* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001642sd00003C81* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001642sd00003C91* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ - pci:v00001002d00006611* - ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] - -@@ -4278,13 +4326,13 @@ pci:v00001002d00006663sv00001025sd00000846* - ID_MODEL_FROM_DATABASE=Radeon HD 8570A - - pci:v00001002d00006664* -- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M200 Series] -+ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] - - pci:v00001002d00006665* -- ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M200 Series] -+ ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] - - pci:v00001002d00006667* -- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M200 Series] -+ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] - - pci:v00001002d0000666F* - ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] -@@ -5003,6 +5051,9 @@ pci:v00001002d00006759sv00001B0Asd000090B5* - pci:v00001002d00006759sv00001B0Asd000090B6* - ID_MODEL_FROM_DATABASE=Radeon HD 7570 - -+pci:v00001002d0000675B* -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] -+ - pci:v00001002d0000675D* - ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 7570] - -@@ -5801,6 +5852,9 @@ pci:v00001002d00006798sv00001092sd00003000* - pci:v00001002d00006798sv00001458sd00002261* - ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] - -+pci:v00001002d00006798sv00001462sd00002774* -+ ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE -+ - pci:v00001002d00006798sv00001682sd00003211* - ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition - -@@ -5823,7 +5877,7 @@ pci:v00001002d00006799* - ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] - - pci:v00001002d0000679A* -- ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950] -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] - - pci:v00001002d0000679Asv00001002sd00000B01* - ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM -@@ -5903,6 +5957,9 @@ pci:v00001002d00006801* - pci:v00001002d00006801sv00001002sd00000124* - ID_MODEL_FROM_DATABASE=Radeon HD 8970M - -+pci:v00001002d00006801sv00001462sd00001117* -+ ID_MODEL_FROM_DATABASE=Radeon R9 M290X -+ - pci:v00001002d00006801sv00008086sd00002110* - ID_MODEL_FROM_DATABASE=Radeon HD 8970M - -@@ -5966,6 +6023,12 @@ pci:v00001002d00006821* - pci:v00001002d00006821sv00001002sd0000031E* - ID_MODEL_FROM_DATABASE=FirePro SX4000 - -+pci:v00001002d00006821sv00001028sd000005CC* -+ ID_MODEL_FROM_DATABASE=FirePro M5100 -+ -+pci:v00001002d00006821sv00001028sd000015CC* -+ ID_MODEL_FROM_DATABASE=FirePro M5100 -+ - pci:v00001002d00006822* - ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] - -@@ -6039,7 +6102,7 @@ pci:v00001002d0000683B* - ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7700 Series] - - pci:v00001002d0000683D* -- ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] - - pci:v00001002d0000683Dsv00001002sd00000030* - ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -@@ -6050,8 +6113,14 @@ pci:v00001002d0000683Dsv00001019sd00000030* - pci:v00001002d0000683Dsv0000103Csd00006890* - ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM - -+pci:v00001002d0000683Dsv00001043sd00008760* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ -+pci:v00001002d0000683Dsv0000174Bsd00008304* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ - pci:v00001002d0000683F* -- ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750] -+ ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] - - pci:v00001002d00006840* - ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] -@@ -8891,6 +8960,9 @@ pci:v00001002d0000985E* - pci:v00001002d0000985F* - ID_MODEL_FROM_DATABASE=Mullins - -+pci:v00001002d00009900* -+ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660G] -+ - pci:v00001002d00009901* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660D] - -@@ -9498,7 +9570,7 @@ pci:v00001011d0000000D* - ID_MODEL_FROM_DATABASE=PBXGB [TGA2] - - pci:v00001011d0000000F* -- ID_MODEL_FROM_DATABASE=PCI-to-PDQ Interface Chip [PFI] -+ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] - - pci:v00001011d0000000Fsv00001011sd0000DEF1* - ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) -@@ -9596,6 +9668,9 @@ pci:v00001011d00000019sv00001186sd00001102* - pci:v00001011d00000019sv00001186sd00001112* - ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet - -+pci:v00001011d00000019sv000011F0sd00004235* -+ ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] -+ - pci:v00001011d00000019sv00001259sd00002800* - ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet - -@@ -9761,6 +9836,9 @@ pci:v00001013d000000B0* - pci:v00001013d000000B8* - ID_MODEL_FROM_DATABASE=GD 5446 - -+pci:v00001013d000000B8sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001013d000000BC* - ID_MODEL_FROM_DATABASE=GD 5480 - -@@ -10487,6 +10565,9 @@ pci:v0000101Ed00001960sv00001028sd00000511* - pci:v0000101Ed00001960sv0000103Csd000060E7* - ID_MODEL_FROM_DATABASE=NetRAID-1M - -+pci:v0000101Ed00001960sv0000103Csd000060E8* -+ ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] -+ - pci:v0000101Ed00009010* - ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller - -@@ -10811,6 +10892,9 @@ pci:v00001022d00002003* - pci:v00001022d00002020* - ID_MODEL_FROM_DATABASE=53c974 [PCscsi] - -+pci:v00001022d00002020sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001022d00002040* - ID_MODEL_FROM_DATABASE=79c974 - -@@ -12263,6 +12347,9 @@ pci:v0000102Bd00002007* - pci:v0000102Bd00002527* - ID_MODEL_FROM_DATABASE=Millennium G550 - -+pci:v0000102Bd00002527sv0000102Bsd00000F42* -+ ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI -+ - pci:v0000102Bd00002527sv0000102Bsd00000F83* - ID_MODEL_FROM_DATABASE=Millennium G550 - -@@ -12515,6 +12602,9 @@ pci:v0000102Bd00004949* - pci:v0000102Bd00004949sv0000102Bsd00000010* - ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber - -+pci:v0000102Bd00004949sv0000102Bsd00000011* -+ ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber -+ - pci:v0000102Bd00004949sv0000102Bsd00000020* - ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber - -@@ -12527,6 +12617,18 @@ pci:v0000102Bd00004949sv0000102Bsd00000040* - pci:v0000102Bd00004949sv0000102Bsd00000050* - ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber - -+pci:v0000102Bd00004949sv0000102Bsd00001010* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber -+ -+pci:v0000102Bd00004949sv0000102Bsd00001015* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber -+ -+pci:v0000102Bd00004949sv0000102Bsd00001020* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber -+ -+pci:v0000102Bd00004949sv0000102Bsd00001050* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber -+ - pci:v0000102Bd00004CDC* - ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator - -@@ -12911,6 +13013,9 @@ pci:v00001033d00000194sv00001028sd000004DA* - pci:v00001033d00000194sv00001043sd00008413* - ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard - -+pci:v00001033d00000194sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001033d00000194sv00001B96sd00000001* - ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card - -@@ -13853,9 +13958,6 @@ pci:v0000103Cd00004037* - pci:v0000103Cd0000403B* - ID_MODEL_FROM_DATABASE=PCIe Root Port - --pci:v0000103Cd000060E8* -- ID_MODEL_FROM_DATABASE=NetRAID-2M : ZX1/M (OEM AMI MegaRAID 493) -- - pci:v0000103E* - ID_VENDOR_FROM_DATABASE=Solliday Engineering - -@@ -14159,6 +14261,9 @@ pci:v0000104Ad00000010* - pci:v0000104Ad00000010sv0000104Asd00004018* - ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) - -+pci:v0000104Ad00000010sv00001681sd00000010* -+ ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] -+ - pci:v0000104Ad00000010sv00001681sd00000028* - ID_MODEL_FROM_DATABASE=3D Prophet 4000XT - -@@ -14426,6 +14531,9 @@ pci:v0000104Cd00008022sv0000104Csd00008023* - pci:v0000104Cd00008023* - ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] - -+pci:v0000104Cd00008023sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v0000104Cd00008023sv0000103Csd0000088C* - ID_MODEL_FROM_DATABASE=NC8000 laptop - -@@ -15233,6 +15341,9 @@ pci:v00001054d0000302C* - pci:v00001054d0000302D* - ID_MODEL_FROM_DATABASE=M001 PCI Express Switch Downstream Port - -+pci:v00001054d00003070* -+ ID_MODEL_FROM_DATABASE=Hitachi FIVE-FX Fibre Channel to PCIe HBA -+ - pci:v00001054d00003505* - ID_MODEL_FROM_DATABASE=SH7751 PCI Controller (PCIC) - -@@ -16208,6 +16319,9 @@ pci:v0000106Bd0000003E* - pci:v0000106Bd0000003F* - ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB - -+pci:v0000106Bd0000003Fsv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v0000106Bd00000040* - ID_MODEL_FROM_DATABASE=K2 KeyLargo USB - -@@ -16517,6 +16631,9 @@ pci:v00001077d00002422sv0000103Csd000012DD* - pci:v00001077d00002432* - ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA - -+pci:v00001077d00002432sv0000103Csd00007040* -+ ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] -+ - pci:v00001077d00002532* - ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA - -@@ -16815,7 +16932,7 @@ pci:v0000108Dd00000002* - ID_MODEL_FROM_DATABASE=16/4 Token Ring - - pci:v0000108Dd00000004* -- ID_MODEL_FROM_DATABASE=RapidFire 3139 Token-Ring 16/4 PCI Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter - - pci:v0000108Dd00000004sv0000108Dsd00000004* - ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter -@@ -17294,6 +17411,30 @@ pci:v00001093d00002CC0* - pci:v00001093d00002DB0* - ID_MODEL_FROM_DATABASE=PCI-6608 - -+pci:v00001093d0000702C* -+ ID_MODEL_FROM_DATABASE=PXI-7831R -+ -+pci:v00001093d0000702D* -+ ID_MODEL_FROM_DATABASE=PCI-7831R -+ -+pci:v00001093d0000702E* -+ ID_MODEL_FROM_DATABASE=PXI-7811R -+ -+pci:v00001093d0000702F* -+ ID_MODEL_FROM_DATABASE=PCI-7811R -+ -+pci:v00001093d00007055* -+ ID_MODEL_FROM_DATABASE=PXI-7830R -+ -+pci:v00001093d00007056* -+ ID_MODEL_FROM_DATABASE=PCI-7830R -+ -+pci:v00001093d00007074* -+ ID_MODEL_FROM_DATABASE=PXI-7833R -+ -+pci:v00001093d00007083* -+ ID_MODEL_FROM_DATABASE=PCI-7833R -+ - pci:v00001093d00007085* - ID_MODEL_FROM_DATABASE=PCI-6509 - -@@ -17369,6 +17510,9 @@ pci:v00001093d0000714C* - pci:v00001093d0000714D* - ID_MODEL_FROM_DATABASE=PCI-5114 - -+pci:v00001093d00007152* -+ ID_MODEL_FROM_DATABASE=PCI-5640R -+ - pci:v00001093d0000716C* - ID_MODEL_FROM_DATABASE=PCI-6225 - -@@ -17378,6 +17522,12 @@ pci:v00001093d0000717D* - pci:v00001093d0000717F* - ID_MODEL_FROM_DATABASE=PCIe-6259 - -+pci:v00001093d00007193* -+ ID_MODEL_FROM_DATABASE=PXI-7813R -+ -+pci:v00001093d00007194* -+ ID_MODEL_FROM_DATABASE=PCI-7813R -+ - pci:v00001093d000071BC* - ID_MODEL_FROM_DATABASE=PCI-6221 (37pin) - -@@ -17420,6 +17570,51 @@ pci:v00001093d0000734A* - pci:v00001093d0000737D* - ID_MODEL_FROM_DATABASE=PXI-5124EX - -+pci:v00001093d00007384* -+ ID_MODEL_FROM_DATABASE=PXI-7851R -+ -+pci:v00001093d00007385* -+ ID_MODEL_FROM_DATABASE=PXI-7852R -+ -+pci:v00001093d00007386* -+ ID_MODEL_FROM_DATABASE=PCIe-7851R -+ -+pci:v00001093d00007387* -+ ID_MODEL_FROM_DATABASE=PCIe-7852R -+ -+pci:v00001093d00007390* -+ ID_MODEL_FROM_DATABASE=PXI-7841R -+ -+pci:v00001093d00007391* -+ ID_MODEL_FROM_DATABASE=PXI-7842R -+ -+pci:v00001093d00007392* -+ ID_MODEL_FROM_DATABASE=PXI-7853R -+ -+pci:v00001093d00007393* -+ ID_MODEL_FROM_DATABASE=PCIe-7841R -+ -+pci:v00001093d00007394* -+ ID_MODEL_FROM_DATABASE=PCIe-7842R -+ -+pci:v00001093d000073A5* -+ ID_MODEL_FROM_DATABASE=PXIe-5641R -+ -+pci:v00001093d000073D5* -+ ID_MODEL_FROM_DATABASE=PXI-7951R -+ -+pci:v00001093d000073D6* -+ ID_MODEL_FROM_DATABASE=PXI-7952R -+ -+pci:v00001093d000073D7* -+ ID_MODEL_FROM_DATABASE=PXI-7953R -+ -+pci:v00001093d000073E1* -+ ID_MODEL_FROM_DATABASE=PXI-7854R -+ -+pci:v00001093d000073EC* -+ ID_MODEL_FROM_DATABASE=PXI-7954R -+ - pci:v00001093d000073F0* - ID_MODEL_FROM_DATABASE=PXI-5153 - -@@ -17438,6 +17633,18 @@ pci:v00001093d00007460* - pci:v00001093d00007461* - ID_MODEL_FROM_DATABASE=PCI-5154EX - -+pci:v00001093d00007539* -+ ID_MODEL_FROM_DATABASE=NI 9157 -+ -+pci:v00001093d0000753A* -+ ID_MODEL_FROM_DATABASE=NI 9159 -+ -+pci:v00001093d00007626* -+ ID_MODEL_FROM_DATABASE=NI 9154 -+ -+pci:v00001093d00007627* -+ ID_MODEL_FROM_DATABASE=NI 9155 -+ - pci:v00001093d0000B001* - ID_MODEL_FROM_DATABASE=IMAQ-PCI-1408 - -@@ -17469,7 +17676,28 @@ pci:v00001093d0000B091* - ID_MODEL_FROM_DATABASE=IMAQ-PXI-1411 - - pci:v00001093d0000C4C4* -- ID_MODEL_FROM_DATABASE=PXIe-4353/5160 -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device -+ -+pci:v00001093d0000C4C4sv00001093sd000074B2* -+ ID_MODEL_FROM_DATABASE=PXIe-4353 -+ -+pci:v00001093d0000C4C4sv00001093sd000074D0* -+ ID_MODEL_FROM_DATABASE=PXIe-7961R -+ -+pci:v00001093d0000C4C4sv00001093sd000074E2* -+ ID_MODEL_FROM_DATABASE=PXIe-7962R -+ -+pci:v00001093d0000C4C4sv00001093sd000074E3* -+ ID_MODEL_FROM_DATABASE=PXIe-7965R -+ -+pci:v00001093d0000C4C4sv00001093sd00007553* -+ ID_MODEL_FROM_DATABASE=PCIe-1473R -+ -+pci:v00001093d0000C4C4sv00001093sd000075CE* -+ ID_MODEL_FROM_DATABASE=PXIe-7966R -+ -+pci:v00001093d0000C4C4sv00001093sd000076B7* -+ ID_MODEL_FROM_DATABASE=PXIe-7975R - - pci:v00001093d0000C4C4sv00001093sd000076D0* - ID_MODEL_FROM_DATABASE=PXIe-5160 -@@ -17696,9 +17924,6 @@ pci:v0000109Ed0000036Esv00001461sd00000761* - pci:v0000109Ed0000036Esv00001461sd00000771* - ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 - --pci:v0000109Ed0000036Esv00001464sd0000AA00* -- ID_MODEL_FROM_DATABASE=iTuner Spectra8 -- - pci:v0000109Ed0000036Esv000014F1sd00000001* - ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC - -@@ -18152,6 +18377,9 @@ pci:v000010A9d00008001* - pci:v000010A9d00008002* - ID_MODEL_FROM_DATABASE=G-net NT - -+pci:v000010A9d0000802B* -+ ID_MODEL_FROM_DATABASE=REACT external interrupt controller -+ - pci:v000010AA* - ID_VENDOR_FROM_DATABASE=ACC Microelectronics - -@@ -18485,6 +18713,9 @@ pci:v000010B5d00008732* - pci:v000010B5d00008734* - ID_MODEL_FROM_DATABASE=PEX 8734 32-lane, 8-Port PCI Express Gen 3 (8.0GT/s) Switch - -+pci:v000010B5d00008747* -+ ID_MODEL_FROM_DATABASE=PEX 8747 48-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch -+ - pci:v000010B5d000087B0* - ID_MODEL_FROM_DATABASE=PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch - -@@ -18969,10 +19200,10 @@ pci:v000010B6d00000009sv000010B6sd00000009* - ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode - - pci:v000010B6d0000000A* -- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode -+ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner - - pci:v000010B6d0000000Asv000010B6sd0000000A* -- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode -+ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner - - pci:v000010B6d0000000B* - ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 -@@ -19001,6 +19232,9 @@ pci:v000010B7* - pci:v000010B7d00000001* - ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) - -+pci:v000010B7d00000001sv00009850sd00000001* -+ ID_MODEL_FROM_DATABASE=3c985B-SX -+ - pci:v000010B7d00000013* - ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) - -@@ -21042,10 +21276,7 @@ pci:v000010DEd000000CC* - ID_MODEL_FROM_DATABASE=NV41GLM [Quadro FX Go1400] - - pci:v000010DEd000000CD* -- ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 3450/4000 SDI] -- --pci:v000010DEd000000CDsv000010DEsd0000029B* -- ID_MODEL_FROM_DATABASE=wx4300 Workstation -+ ID_MODEL_FROM_DATABASE=NV42GL [Quadro FX 3450/4000 SDI] - - pci:v000010DEd000000CE* - ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 1400] -@@ -24858,7 +25089,7 @@ pci:v000010DEd0000086E* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9100M G] - - pci:v000010DEd0000086F* -- ID_MODEL_FROM_DATABASE=C79 [GeForce 9200M G] -+ ID_MODEL_FROM_DATABASE=MCP79 [GeForce 8200M G] - - pci:v000010DEd00000870* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] -@@ -26006,6 +26237,9 @@ pci:v000010DEd00001005sv00003842sd00002795* - pci:v000010DEd0000100A* - ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] - -+pci:v000010DEd0000100C* -+ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX Titan Black] -+ - pci:v000010DEd0000101F* - ID_MODEL_FROM_DATABASE=GK110GL [Tesla K20] - -@@ -26582,6 +26816,9 @@ pci:v000010DEd00001140sv00001462sd000010B8* - pci:v000010DEd00001140sv00001462sd000010E9* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -+pci:v000010DEd00001140sv00001462sd00001116* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ - pci:v000010DEd00001140sv00001462sd0000AA33* - ID_MODEL_FROM_DATABASE=GeForce 720M - -@@ -26750,6 +26987,9 @@ pci:v000010DEd00001140sv00001B0Asd00002202* - pci:v000010DEd00001180* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] - -+pci:v000010DEd00001180sv00001043sd000083F1* -+ ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 -+ - pci:v000010DEd00001180sv00003842sd00003682* - ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition - -@@ -26804,6 +27044,15 @@ pci:v000010DEd0000118F* - pci:v000010DEd00001193* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] - -+pci:v000010DEd00001198* -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] -+ -+pci:v000010DEd00001199* -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 870M] -+ -+pci:v000010DEd0000119A* -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 860M] -+ - pci:v000010DEd0000119D* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 775M Mac Edition] - -@@ -27065,6 +27314,9 @@ pci:v000010DEd00001251* - pci:v000010DEd00001280* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 635] - -+pci:v000010DEd00001281* -+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 710] -+ - pci:v000010DEd00001282* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 640 Rev. 2] - -@@ -27107,6 +27359,9 @@ pci:v000010DEd00001294* - pci:v000010DEd00001295* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] - -+pci:v000010DEd00001296* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] -+ - pci:v000010DEd00001298* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 720M] - -@@ -27119,12 +27374,48 @@ pci:v000010DEd000012B9* - pci:v000010DEd000012BA* - ID_MODEL_FROM_DATABASE=GK208GLM [Quadro K510M] - -+pci:v000010DEd00001340* -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] -+ -+pci:v000010DEd00001341* -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] -+ -+pci:v000010DEd00001380* -+ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] -+ -+pci:v000010DEd00001381* -+ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750] -+ -+pci:v000010DEd00001382* -+ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 745] -+ -+pci:v000010DEd00001390* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce 845M] -+ -+pci:v000010DEd00001391* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] -+ -+pci:v000010DEd00001392* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] -+ -+pci:v000010DEd00001393* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] -+ - pci:v000010DF* - ID_VENDOR_FROM_DATABASE=Emulex Corporation - - pci:v000010DFd00000720* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) - -+pci:v000010DFd00000720sv000017AAsd00001056* -+ ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric -+ -+pci:v000010DFd00000720sv000017AAsd00001057* -+ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric -+ -+pci:v000010DFd00000720sv000017AAsd00001059* -+ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric -+ - pci:v000010DFd00000722* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) - -@@ -27167,6 +27458,12 @@ pci:v000010DFd0000E208* - pci:v000010DFd0000E220* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) - -+pci:v000010DFd0000E220sv000017AAsd00001054* -+ ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric -+ -+pci:v000010DFd0000E220sv000017AAsd00001055* -+ ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric -+ - pci:v000010DFd0000E240* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) - -@@ -27573,7 +27870,7 @@ pci:v000010ECd00008029sv00001259sd00002400* - ID_MODEL_FROM_DATABASE=AT-2400 - - pci:v000010ECd00008029sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine - - pci:v000010ECd00008129* - ID_MODEL_FROM_DATABASE=RTL-8129 -@@ -27603,7 +27900,7 @@ pci:v000010ECd00008138sv000010ECsd00008138* - ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter - - pci:v000010ECd00008139* -- ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - - pci:v000010ECd00008139sv00000357sd0000000A* - ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 -@@ -27638,11 +27935,14 @@ pci:v000010ECd00008139sv00001071sd00008160* - pci:v000010ECd00008139sv000010BDsd00000320* - ID_MODEL_FROM_DATABASE=EP-320X-R - -+pci:v000010ECd00008139sv000010ECsd00008139* -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter -+ - pci:v000010ECd00008139sv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop - - pci:v000010ECd00008139sv00001113sd0000EC01* -- ID_MODEL_FROM_DATABASE=FNC-0107TX -+ ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX - - pci:v000010ECd00008139sv00001186sd00001300* - ID_MODEL_FROM_DATABASE=DFE-538TX -@@ -27734,6 +28034,9 @@ pci:v000010ECd00008139sv0000187Esd00003303* - pci:v000010ECd00008139sv00001904sd00008139* - ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter - -+pci:v000010ECd00008139sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v000010ECd00008139sv00002646sd00000001* - ID_MODEL_FROM_DATABASE=KNE120TX - -@@ -27779,6 +28082,9 @@ pci:v000010ECd00008168sv0000103Csd00001611* - pci:v000010ECd00008168sv0000103Csd00001950* - ID_MODEL_FROM_DATABASE=ProBook 450/455 - -+pci:v000010ECd00008168sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v000010ECd00008168sv00001043sd000011F5* - ID_MODEL_FROM_DATABASE=A6J-Q008 - -@@ -27815,6 +28121,9 @@ pci:v000010ECd00008168sv00001462sd0000238C* - pci:v000010ECd00008168sv00001462sd0000368C* - ID_MODEL_FROM_DATABASE=K9AG Neo2 - -+pci:v000010ECd00008168sv00001462sd00004180* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v000010ECd00008168sv00001462sd00007522* - ID_MODEL_FROM_DATABASE=X58 Pro-E - -@@ -27894,10 +28203,10 @@ pci:v000010ECd00008176sv00001A3Bsd00001139* - ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card - - pci:v000010ECd00008177* -- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter -+ ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter - - pci:v000010ECd00008178* -- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter -+ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter - - pci:v000010ECd00008179* - ID_MODEL_FROM_DATABASE=RTL8188EE Wireless Network Adapter -@@ -27914,11 +28223,14 @@ pci:v000010ECd00008180sv00001737sd00000019* - pci:v000010ECd00008185* - ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller - -+pci:v000010ECd0000818B* -+ ID_MODEL_FROM_DATABASE=RTL8192EE PCIe Wireless Network Adapter -+ - pci:v000010ECd00008190* -- ID_MODEL_FROM_DATABASE=RTL8190 802.11n Wireless LAN -+ ID_MODEL_FROM_DATABASE=RTL8190 802.11n PCI Wireless Network Adapter - - pci:v000010ECd00008191* -- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter -+ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter - - pci:v000010ECd00008192* - ID_MODEL_FROM_DATABASE=RTL8192E/RTL8192SE Wireless LAN Controller -@@ -27938,6 +28250,15 @@ pci:v000010ECd00008199sv00001462sd00006894* - pci:v000010ECd00008723* - ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter - -+pci:v000010ECd00008812* -+ ID_MODEL_FROM_DATABASE=RTL8812AE 802.11ac PCIe Wireless Network Adapter -+ -+pci:v000010ECd00008813* -+ ID_MODEL_FROM_DATABASE=RTL8813AE 802.11ac PCIe Wireless Network Adapter -+ -+pci:v000010ECd00008821* -+ ID_MODEL_FROM_DATABASE=RTL8821AE 802.11ac PCIe Wireless Network Adapter -+ - pci:v000010ECd0000B723* - ID_MODEL_FROM_DATABASE=RTL8723BE PCIe Wireless Network Adapter - -@@ -28211,6 +28532,9 @@ pci:v00001102d00000004sv00001102sd00000058* - pci:v00001102d00000004sv00001102sd00001002* - ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum - -+pci:v00001102d00000004sv00001102sd00001003* -+ ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 -+ - pci:v00001102d00000004sv00001102sd00001007* - ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 - -@@ -28436,6 +28760,9 @@ pci:v00001103d00001742* - pci:v00001103d00002210* - ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller - -+pci:v00001103d00002210sv000011ABsd000011AB* -+ ID_MODEL_FROM_DATABASE=88SX6042 -+ - pci:v00001103d00002300* - ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller - -@@ -28635,7 +28962,7 @@ pci:v00001106d00000415* - ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller - - pci:v00001106d00000415sv00001043sd0000838F* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=Motherboard - - pci:v00001106d00000501* - ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] -@@ -29033,6 +29360,9 @@ pci:v00001106d00003038sv00001849sd00003038* - pci:v00001106d00003038sv000019DAsd0000A179* - ID_MODEL_FROM_DATABASE=ZBOX nano VD01 - -+pci:v00001106d00003038sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001106d00003040* - ID_MODEL_FROM_DATABASE=VT82C586B ACPI - -@@ -29591,6 +29921,9 @@ pci:v00001106d00003238* - pci:v00001106d00003249* - ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller - -+pci:v00001106d00003249sv00001106sd00003249* -+ ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller -+ - pci:v00001106d0000324A* - ID_MODEL_FROM_DATABASE=CX700/VX700 PCI to PCI Bridge - -@@ -30180,7 +30513,7 @@ pci:v00001109d00001400* - ID_MODEL_FROM_DATABASE=EM110TX [EX110TX] - - pci:v0000110A* -- ID_VENDOR_FROM_DATABASE=Siemens Nixdorf AG -+ ID_VENDOR_FROM_DATABASE=Siemens AG - - pci:v0000110Ad00000002* - ID_MODEL_FROM_DATABASE=Pirahna 2-port -@@ -30216,20 +30549,56 @@ pci:v0000110Ad00002104* - ID_MODEL_FROM_DATABASE=Eicon Diva 2.02 compatible passive ISDN card - - pci:v0000110Ad00003141* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 (Profibus Adapter) -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 / 5621 - - pci:v0000110Ad00003142* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A1 (Profibus Adapter) -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 / 5614 -+ -+pci:v0000110Ad00003143* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 - - pci:v0000110Ad00004021* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) - - pci:v0000110Ad00004029* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A2 (Profibus Adapter) -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 -+ -+pci:v0000110Ad00004029sv0000110Asd00004029* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 -+ -+pci:v0000110Ad00004029sv0000110Asd0000C029* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 - - pci:v0000110Ad00004035* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 - -+pci:v0000110Ad00004036* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1616 -+ -+pci:v0000110Ad00004038* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1604 -+ -+pci:v0000110Ad00004069* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 -+ -+pci:v0000110Ad00004069sv0000110Asd0000C069* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 -+ -+pci:v0000110Ad0000407C* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 -+ -+pci:v0000110Ad0000407D* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A3 -+ -+pci:v0000110Ad0000407E* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5622 -+ -+pci:v0000110Ad00004083* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A3 -+ -+pci:v0000110Ad00004084* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1626 -+ - pci:v0000110Ad00004942* - ID_MODEL_FROM_DATABASE=FPGA I-Bus Tracer for MBD - -@@ -31244,9 +31613,24 @@ pci:v00001131d00007133sv00005ACEsd00006290* - pci:v00001131d00007133sv00005ACEsd00007090* - ID_MODEL_FROM_DATABASE=Behold TV A7 - -+pci:v00001131d00007133sv00005ACEsd00007150* -+ ID_MODEL_FROM_DATABASE=Behold TV H75 -+ -+pci:v00001131d00007133sv00005ACEsd00007151* -+ ID_MODEL_FROM_DATABASE=Behold TV H75 -+ - pci:v00001131d00007133sv00005ACEsd00007190* - ID_MODEL_FROM_DATABASE=Behold TV H7 - -+pci:v00001131d00007133sv00005ACEsd00007191* -+ ID_MODEL_FROM_DATABASE=Behold TV H7 -+ -+pci:v00001131d00007133sv00005ACEsd00007290* -+ ID_MODEL_FROM_DATABASE=Behold TV T7 -+ -+pci:v00001131d00007133sv00005ACEsd00007591* -+ ID_MODEL_FROM_DATABASE=Behold TV X7 -+ - pci:v00001131d00007133sv00005ACEsd00007595* - ID_MODEL_FROM_DATABASE=Behold TV X7 - -@@ -31553,9 +31937,30 @@ pci:v00001131d00007231* - pci:v00001131d00007231sv00005ACEsd00008000* - ID_MODEL_FROM_DATABASE=Behold TV H8 - -+pci:v00001131d00007231sv00005ACEsd00008001* -+ ID_MODEL_FROM_DATABASE=Behold TV H8 -+ -+pci:v00001131d00007231sv00005ACEsd00008050* -+ ID_MODEL_FROM_DATABASE=Behold TV H85 -+ -+pci:v00001131d00007231sv00005ACEsd00008051* -+ ID_MODEL_FROM_DATABASE=Behold TV H85 -+ - pci:v00001131d00007231sv00005ACEsd00008100* - ID_MODEL_FROM_DATABASE=Behold TV A8 - -+pci:v00001131d00007231sv00005ACEsd00008101* -+ ID_MODEL_FROM_DATABASE=Behold TV A8 -+ -+pci:v00001131d00007231sv00005ACEsd00008150* -+ ID_MODEL_FROM_DATABASE=Behold TV A85 -+ -+pci:v00001131d00007231sv00005ACEsd00008151* -+ ID_MODEL_FROM_DATABASE=Behold TV A85 -+ -+pci:v00001131d00007231sv00005ACEsd00008201* -+ ID_MODEL_FROM_DATABASE=Behold TV T8 -+ - pci:v00001131d00009730* - ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller - -@@ -35042,6 +35447,9 @@ pci:v000011C1d00005811* - pci:v000011C1d00005811sv0000103Csd00002A34* - ID_MODEL_FROM_DATABASE=Pavilion a1677c - -+pci:v000011C1d00005811sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v000011C1d00005811sv0000103Csd00002A9E* - ID_MODEL_FROM_DATABASE=Pavilion p6310f - -@@ -35858,6 +36266,9 @@ pci:v00001217d00008330sv00001028sd000004A3* - pci:v00001217d00008331* - ID_MODEL_FROM_DATABASE=O2 Flash Memory Card - -+pci:v00001217d00008520* -+ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller -+ - pci:v00001218* - ID_VENDOR_FROM_DATABASE=Hybricon Corp. - -@@ -36852,7 +37263,7 @@ pci:v00001274d00001171* - ID_MODEL_FROM_DATABASE=ES1373 [AudioPCI] (also Creative Labs CT5803) - - pci:v00001274d00001371* -- ID_MODEL_FROM_DATABASE=ES1371 [AudioPCI-97] -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] - - pci:v00001274d00001371sv00000E11sd00000024* - ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro -@@ -36870,7 +37281,7 @@ pci:v00001274d00001371sv0000107Bsd00008054* - ID_MODEL_FROM_DATABASE=Tabor2 - - pci:v00001274d00001371sv00001274sd00001371* -- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI64V, AudioPCI128 -+ ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 - - pci:v00001274d00001371sv00001274sd00008001* - ID_MODEL_FROM_DATABASE=CT4751 board -@@ -41858,12 +42269,24 @@ pci:v00001425d00005013* - pci:v00001425d00005014* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005015* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005080* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005081* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005083* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005084* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005085* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d00005401* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -41924,12 +42347,24 @@ pci:v00001425d00005413* - pci:v00001425d00005414* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005415* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005480* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005481* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005483* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005484* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005485* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d00005501* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller - -@@ -41990,12 +42425,24 @@ pci:v00001425d00005513* - pci:v00001425d00005514* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller - -+pci:v00001425d00005515* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller -+ - pci:v00001425d00005580* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller - - pci:v00001425d00005581* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller - -+pci:v00001425d00005583* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller -+ -+pci:v00001425d00005584* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller -+ -+pci:v00001425d00005585* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller -+ - pci:v00001425d00005601* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller - -@@ -42056,12 +42503,24 @@ pci:v00001425d00005613* - pci:v00001425d00005614* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller - -+pci:v00001425d00005615* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller -+ - pci:v00001425d00005680* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller - - pci:v00001425d00005681* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller - -+pci:v00001425d00005683* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller -+ -+pci:v00001425d00005684* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller -+ -+pci:v00001425d00005685* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller -+ - pci:v00001425d00005701* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -42122,12 +42581,24 @@ pci:v00001425d00005713* - pci:v00001425d00005714* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005715* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005780* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005781* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005783* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005784* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005785* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d00005801* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -42188,12 +42659,24 @@ pci:v00001425d00005813* - pci:v00001425d00005814* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005815* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005880* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005881* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005883* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005884* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005885* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d0000A000* - ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller - -@@ -42483,7 +42966,7 @@ pci:v00001461d0000F436* - ID_MODEL_FROM_DATABASE=AVerTV Hybrid+FM - - pci:v00001462* -- ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. -+ ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. [MSI] - - pci:v00001463* - ID_VENDOR_FROM_DATABASE=Fast Corporation -@@ -43847,6 +44330,33 @@ pci:v000014E4d0000168E* - pci:v000014E4d0000168Esv0000103Csd00001798* - ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] - -+pci:v000014E4d0000168Esv0000103Csd000017A5* -+ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd000018D3* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001930* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001931* -+ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001932* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001933* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd0000193A* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00003382* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd0000339D* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ - pci:v000014E4d00001690* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe - -@@ -43922,9 +44432,21 @@ pci:v000014E4d000016A1* - pci:v000014E4d000016A2* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet - -+pci:v000014E4d000016A2sv0000103Csd00001916* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ -+pci:v000014E4d000016A2sv0000103Csd00001917* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ - pci:v000014E4d000016A4* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function - -+pci:v000014E4d000016A4sv0000103Csd00001916* -+ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter -+ -+pci:v000014E4d000016A4sv0000103Csd00001917* -+ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter -+ - pci:v000014E4d000016A5* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function - -@@ -44048,12 +44570,78 @@ pci:v000014E4d000016ACsv0000103Csd0000703D* - pci:v000014E4d000016AD* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function - -+pci:v000014E4d000016ADsv0000103Csd00001916* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ -+pci:v000014E4d000016ADsv0000103Csd00001917* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ - pci:v000014E4d000016AE* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function - -+pci:v000014E4d000016AEsv0000103Csd00001798* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd000017A5* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd000018D3* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001930* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001931* -+ ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001932* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001933* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd0000193A* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00003382* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd0000339D* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter -+ - pci:v000014E4d000016AF* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function - -+pci:v000014E4d000016AFsv0000103Csd00001798* -+ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd000017A5* -+ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd000018D3* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001930* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001931* -+ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001932* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001933* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd0000193A* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00003382* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd0000339D* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ - pci:v000014E4d000016B0* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe - -@@ -49484,6 +50072,9 @@ pci:v00001814d0000539F* - pci:v00001814d0000539Fsv0000103Csd00001637* - ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card - -+pci:v00001814d00005592* -+ ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter -+ - pci:v00001814d0000E932* - ID_MODEL_FROM_DATABASE=RT2560F 802.11 b/g PCI - -@@ -50480,6 +51071,12 @@ pci:v0000193Fd00000367* - pci:v0000193Fd00000370* - ID_MODEL_FROM_DATABASE=AHA370-PCIe - -+pci:v0000193Fd00003641* -+ ID_MODEL_FROM_DATABASE=AHA3641 -+ -+pci:v0000193Fd00003642* -+ ID_MODEL_FROM_DATABASE=AHA3642 -+ - pci:v00001942* - ID_VENDOR_FROM_DATABASE=ClearSpeed Technology plc - -@@ -50633,6 +51230,9 @@ pci:v00001957d00000084* - pci:v00001957d00000085* - ID_MODEL_FROM_DATABASE=MPC8347 PBGA - -+pci:v00001957d00000085sv0000110Asd00004046* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 -+ - pci:v00001957d00000086* - ID_MODEL_FROM_DATABASE=MPC8343E - -@@ -51095,6 +51695,9 @@ pci:v000019A2d00000710sv0000103Csd00003341* - pci:v000019A2d00000710sv0000103Csd00003345* - ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter - -+pci:v000019A2d00000710sv0000103Csd0000337B* -+ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ - pci:v000019A2d00000712* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) - -@@ -51104,6 +51707,9 @@ pci:v000019A2d00000714* - pci:v000019A2d00000714sv0000103Csd00003315* - ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter - -+pci:v000019A2d00000714sv0000103Csd0000337B* -+ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ - pci:v000019A8* - ID_VENDOR_FROM_DATABASE=DAQDATA GmbH - -@@ -51236,6 +51842,9 @@ pci:v00001A22* - pci:v00001A29* - ID_VENDOR_FROM_DATABASE=Fortinet, Inc. - -+pci:v00001A29d00004338* -+ ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC -+ - pci:v00001A2B* - ID_VENDOR_FROM_DATABASE=Ascom AG - -@@ -51605,6 +52214,12 @@ pci:v00001AF4d00001005* - pci:v00001AF4d00001009* - ID_MODEL_FROM_DATABASE=Virtio filesystem - -+pci:v00001AF4d00001110* -+ ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory -+ -+pci:v00001AF4d00001110sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001AF5* - ID_VENDOR_FROM_DATABASE=Netezza Corp. - -@@ -51647,6 +52262,9 @@ pci:v00001B21d00000612sv00001849sd00000612* - pci:v00001B21d00001042* - ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller - -+pci:v00001B21d00001042sv00001043sd00008488* -+ ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ - pci:v00001B21d00001042sv00001849sd00001042* - ID_MODEL_FROM_DATABASE=Motherboard - -@@ -51662,6 +52280,39 @@ pci:v00001B2C* - pci:v00001B36* - ID_VENDOR_FROM_DATABASE=Red Hat, Inc. - -+pci:v00001B36d00000001* -+ ID_MODEL_FROM_DATABASE=QEMU PCI-PCI bridge -+ -+pci:v00001B36d00000002* -+ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter -+ -+pci:v00001B36d00000002sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000003* -+ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter -+ -+pci:v00001B36d00000003sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000004* -+ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter -+ -+pci:v00001B36d00000004sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000005* -+ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device -+ -+pci:v00001B36d00000005sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000100* -+ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card -+ -+pci:v00001B36d00000100sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001B37* - ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB - -@@ -51725,6 +52376,9 @@ pci:v00001B4Bd00009130sv00001043sd00008438* - pci:v00001B4Bd00009172* - ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller - -+pci:v00001B4Bd00009178* -+ ID_MODEL_FROM_DATABASE=88SE9170 PCIe SATA 6Gb/s Controller -+ - pci:v00001B4Bd0000917A* - ID_MODEL_FROM_DATABASE=88SE9172 SATA III 6Gb/s RAID Controller - -@@ -51875,6 +52529,9 @@ pci:v00001BBFd00000004* - pci:v00001BF4* - ID_VENDOR_FROM_DATABASE=VTI Instruments Corporation - -+pci:v00001BF4d00000001* -+ ID_MODEL_FROM_DATABASE=SentinelEX -+ - pci:v00001BFD* - ID_VENDOR_FROM_DATABASE=EeeTOP - -@@ -51902,6 +52559,18 @@ pci:v00001C2Cd000000A1* - pci:v00001C2Cd000000A2* - ID_MODEL_FROM_DATABASE=FBC8XG Capture 8x10Gb - -+pci:v00001C2Cd000000A3* -+ ID_MODEL_FROM_DATABASE=FBC2XG Capture 2x10Gb -+ -+pci:v00001C2Cd000000A4* -+ ID_MODEL_FROM_DATABASE=FBC4XGG3 Capture 4x10Gb -+ -+pci:v00001C2Cd000000A5* -+ ID_MODEL_FROM_DATABASE=FBC2XLG Capture 2x40Gb -+ -+pci:v00001C2Cd000000A6* -+ ID_MODEL_FROM_DATABASE=FBC1CG Capture 1x100Gb -+ - pci:v00001C32* - ID_VENDOR_FROM_DATABASE=Highland Technology, Inc. - -@@ -53970,7 +54639,7 @@ pci:v00008086d00000100sv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - - pci:v00008086d00000100sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard - - pci:v00008086d00000101* - ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port -@@ -53987,6 +54656,9 @@ pci:v00008086d00000102* - pci:v00008086d00000102sv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - -+pci:v00008086d00000102sv00001043sd00000102* -+ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ - pci:v00008086d00000104* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller - -@@ -54065,9 +54737,15 @@ pci:v00008086d00000151* - pci:v00008086d00000151sv00001043sd00001477* - ID_MODEL_FROM_DATABASE=N56VZ - -+pci:v00008086d00000151sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00000151sv00001043sd000084CA* - ID_MODEL_FROM_DATABASE=P8H77-I Motherboard - -+pci:v00008086d00000151sv00008086sd00002010* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00000152* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -@@ -54098,12 +54776,21 @@ pci:v00008086d00000154sv00001043sd00001517* - pci:v00008086d00000155* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - -+pci:v00008086d00000155sv00008086sd00002010* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00000156* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller - - pci:v00008086d00000158* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller - -+pci:v00008086d00000158sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ -+pci:v00008086d00000158sv00008086sd00002010* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00000159* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - -@@ -54116,6 +54803,9 @@ pci:v00008086d0000015C* - pci:v00008086d0000015D* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - -+pci:v00008086d0000015Dsv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d0000015E* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -@@ -54137,6 +54827,9 @@ pci:v00008086d00000166sv00001043sd00002103* - pci:v00008086d0000016A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -+pci:v00008086d0000016Asv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ - pci:v00008086d00000172* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -@@ -54753,7 +55446,7 @@ pci:v00008086d0000095Asv00008086sd00005002* - ID_MODEL_FROM_DATABASE=Wireless-N 7265 - - pci:v00008086d0000095Asv00008086sd0000500A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 - - pci:v00008086d0000095Asv00008086sd00005010* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -@@ -54770,9 +55463,18 @@ pci:v00008086d0000095Asv00008086sd0000502A* - pci:v00008086d0000095Asv00008086sd00005090* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00005100* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ -+pci:v00008086d0000095Asv00008086sd0000510A* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00005110* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00005112* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00005190* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -@@ -54794,9 +55496,15 @@ pci:v00008086d0000095Asv00008086sd00005590* - pci:v00008086d0000095Asv00008086sd00009010* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00009012* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00009110* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00009112* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00009210* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -@@ -55089,397 +55797,409 @@ pci:v00008086d00000D36* - ID_MODEL_FROM_DATABASE=Crystal Well Integrated Graphics Controller - - pci:v00008086d00000E00* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DMI2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DMI2 - - pci:v00008086d00000E01* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode - - pci:v00008086d00000E02* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1a -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a - - pci:v00008086d00000E03* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1b -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1b - - pci:v00008086d00000E04* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2a -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a - - pci:v00008086d00000E05* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2b -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2b - - pci:v00008086d00000E06* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2c -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2c - - pci:v00008086d00000E07* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2d -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2d - - pci:v00008086d00000E08* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3a -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a - - pci:v00008086d00000E09* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3b -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3b - - pci:v00008086d00000E0A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3c -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3c - - pci:v00008086d00000E0B* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3d -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3d - - pci:v00008086d00000E10* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E13* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E17* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E18* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E1C* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E1D* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E1E* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers - - pci:v00008086d00000E1F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers - - pci:v00008086d00000E20* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 - - pci:v00008086d00000E21* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 - - pci:v00008086d00000E22* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 - - pci:v00008086d00000E23* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 - - pci:v00008086d00000E24* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 - - pci:v00008086d00000E25* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 - - pci:v00008086d00000E26* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 - - pci:v00008086d00000E27* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 - - pci:v00008086d00000E28* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 VTd/Memory Map/Misc -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 VTd/Memory Map/Misc - - pci:v00008086d00000E29* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Memory Hotplug -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Memory Hotplug - - pci:v00008086d00000E2A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO RAS -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO RAS - - pci:v00008086d00000E2C* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IOAPIC -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IOAPIC - - pci:v00008086d00000E2E* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA - - pci:v00008086d00000E2F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA - - pci:v00008086d00000E30* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 - - pci:v00008086d00000E32* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 - - pci:v00008086d00000E33* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 - - pci:v00008086d00000E34* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E36* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E37* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E38* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 - - pci:v00008086d00000E3A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 - - pci:v00008086d00000E3E* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E3F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E40* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 - - pci:v00008086d00000E41* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E43* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 - - pci:v00008086d00000E44* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 -+ -+pci:v00008086d00000E45* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register -+ -+pci:v00008086d00000E47* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register - - pci:v00008086d00000E60* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 - - pci:v00008086d00000E68* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers - - pci:v00008086d00000E6A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E6B* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E6C* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E6D* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E71* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers - - pci:v00008086d00000E74* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E75* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E77* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E79* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers - - pci:v00008086d00000E7D* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers - - pci:v00008086d00000E7F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E80* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 - - pci:v00008086d00000E81* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E83* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 - - pci:v00008086d00000E84* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 -+ -+pci:v00008086d00000E85* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register - - pci:v00008086d00000E87* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Registers - - pci:v00008086d00000E90* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 - - pci:v00008086d00000E93* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 - - pci:v00008086d00000E94* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 1 -+ -+pci:v00008086d00000E95* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register - - pci:v00008086d00000EA0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 - - pci:v00008086d00000EA8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers - - pci:v00008086d00000EAA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAB* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAD* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EAF* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EB0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 - - pci:v00008086d00000EB1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 - - pci:v00008086d00000EB2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 - - pci:v00008086d00000EB3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 - - pci:v00008086d00000EB4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 - - pci:v00008086d00000EB5* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 - - pci:v00008086d00000EB6* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 - - pci:v00008086d00000EB7* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 - - pci:v00008086d00000EBC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EBE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EBF* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EC0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 0 - - pci:v00008086d00000EC1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 1 - - pci:v00008086d00000EC2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 2 - - pci:v00008086d00000EC3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 3 - - pci:v00008086d00000EC4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 4 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 4 - - pci:v00008086d00000EC8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 System Address Decoder -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 System Address Decoder - - pci:v00008086d00000EC9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers - - pci:v00008086d00000ECA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers - - pci:v00008086d00000ED8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000ED9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDD* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDF* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EE0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE5* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE6* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE7* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEB* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EED* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EF0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 - - pci:v00008086d00000EF1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 - - pci:v00008086d00000EF2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 - - pci:v00008086d00000EF3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 - - pci:v00008086d00000EF4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 - - pci:v00008086d00000EF5* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 - - pci:v00008086d00000EF6* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 - - pci:v00008086d00000EF7* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 - - pci:v00008086d00000EF8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EF9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFB* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFD* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000F00* - ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -@@ -55868,6 +56588,9 @@ pci:v00008086d0000100Esv00001028sd00000151* - pci:v00008086d0000100Esv0000107Bsd00008920* - ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter - -+pci:v00008086d0000100Esv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000100Esv00008086sd0000001E* - ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter - -@@ -56057,6 +56780,9 @@ pci:v00008086d0000101Esv00008086sd0000101E* - pci:v00008086d00001026* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - -+pci:v00008086d00001026sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d00001026sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -56867,15 +57593,24 @@ pci:v00008086d000010D3* - pci:v00008086d000010D3sv0000103Csd00003250* - ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter - -+pci:v00008086d000010D3sv00001043sd00008369* -+ ID_MODEL_FROM_DATABASE=Motherboard -+ - pci:v00008086d000010D3sv000010A9sd00008029* - ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet - - pci:v00008086d000010D3sv000015D9sd0000060A* - ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard - -+pci:v00008086d000010D3sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d000010D3sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter - -+pci:v00008086d000010D3sv00008086sd0000357A* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d000010D3sv00008086sd0000A01F* - ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter - -@@ -57002,6 +57737,9 @@ pci:v00008086d000010EF* - pci:v00008086d000010EFsv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d000010EFsv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d000010F0* - ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection - -@@ -57086,6 +57824,9 @@ pci:v00008086d000010FBsv0000108Esd00007B11* - pci:v00008086d000010FBsv00001734sd000011A9* - ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection - -+pci:v00008086d000010FBsv000017AAsd00001071* -+ ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric -+ - pci:v00008086d000010FBsv00008086sd00000002* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 - -@@ -57182,6 +57923,9 @@ pci:v00008086d00001209* - pci:v00008086d00001209sv0000140Bsd00000610* - ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board - -+pci:v00008086d00001209sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00001209sv00004C53sd00001050* - ID_MODEL_FROM_DATABASE=CT7 mainboard - -@@ -57428,6 +58172,9 @@ pci:v00008086d00001229sv00001775sd00001100* - pci:v00008086d00001229sv00001775sd0000CE90* - ID_MODEL_FROM_DATABASE=CE9 - -+pci:v00008086d00001229sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00001229sv00004C53sd00001080* - ID_MODEL_FROM_DATABASE=CT8 mainboard - -@@ -57782,6 +58529,9 @@ pci:v00008086d00001502* - pci:v00008086d00001502sv00001028sd000004A3* - ID_MODEL_FROM_DATABASE=Precision M4600 - -+pci:v00008086d00001502sv00008086sd0000357A* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00001503* - ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection - -@@ -57878,12 +58628,18 @@ pci:v00008086d00001520* - pci:v00008086d00001521* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection - -+pci:v00008086d00001521sv00001028sd00000602* -+ ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM -+ - pci:v00008086d00001521sv00001028sd00001F60* - ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC - - pci:v00008086d00001521sv00001028sd00001F62* - ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC - -+pci:v00008086d00001521sv00001028sd0000FF9A* -+ ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC -+ - pci:v00008086d00001521sv0000103Csd000017D1* - ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter - -@@ -57911,6 +58667,9 @@ pci:v00008086d00001521sv0000108Esd00007B18* - pci:v00008086d00001521sv000010A9sd0000802A* - ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE - -+pci:v00008086d00001521sv000017AAsd00001074* -+ ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric -+ - pci:v00008086d00001521sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 - -@@ -57962,6 +58721,9 @@ pci:v00008086d00001522sv00008086sd000000A4* - pci:v00008086d00001523* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection - -+pci:v00008086d00001523sv00001028sd00001F9B* -+ ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC -+ - pci:v00008086d00001523sv0000103Csd00001784* - ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter - -@@ -58025,6 +58787,9 @@ pci:v00008086d00001528sv0000108Esd00007B15* - pci:v00008086d00001528sv00001137sd000000BF* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 - -+pci:v00008086d00001528sv000017AAsd00001073* -+ ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric -+ - pci:v00008086d00001528sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 - -@@ -58055,6 +58820,9 @@ pci:v00008086d00001533* - pci:v00008086d00001533sv0000103Csd00000003* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 - -+pci:v00008086d00001533sv000017AAsd00001100* -+ ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter -+ - pci:v00008086d00001533sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 - -@@ -58103,6 +58871,9 @@ pci:v00008086d0000154Asv00008086sd0000011B* - pci:v00008086d0000154Asv00008086sd0000011C* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 - -+pci:v00008086d0000154C* -+ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ - pci:v00008086d0000154D* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter - -@@ -58148,12 +58919,78 @@ pci:v00008086d0000155Dsv00008086sd00000002* - pci:v00008086d00001560* - ID_MODEL_FROM_DATABASE=Ethernet Controller X540 - -+pci:v00008086d00001571* -+ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ -+pci:v00008086d00001572* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter -+ -+pci:v00008086d00001572sv00001028sd00001F99* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC -+ -+pci:v00008086d00001572sv00008086sd00000001* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ -+pci:v00008086d00001572sv00008086sd00000002* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ -+pci:v00008086d00001572sv00008086sd00000004* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ -+pci:v00008086d00001572sv00008086sd00000005* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter -+ -+pci:v00008086d00001572sv00008086sd00000006* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter -+ -+pci:v00008086d00001572sv00008086sd00000007* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ -+pci:v00008086d00001572sv00008086sd00000008* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ - pci:v00008086d0000157B* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection - - pci:v00008086d0000157C* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - -+pci:v00008086d00001580* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane -+ -+pci:v00008086d00001581* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane -+ -+pci:v00008086d00001581sv00001028sd00001F98* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC -+ -+pci:v00008086d00001583* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ -+ -+pci:v00008086d00001583sv00008086sd00000001* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ -+pci:v00008086d00001583sv00008086sd00000002* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ -+pci:v00008086d00001583sv00008086sd00000003* -+ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 -+ -+pci:v00008086d00001584* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ -+ -+pci:v00008086d00001584sv00008086sd00000001* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ -+pci:v00008086d00001584sv00008086sd00000002* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ -+pci:v00008086d00001584sv00008086sd00000003* -+ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 -+ -+pci:v00008086d00001585* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ -+ - pci:v00008086d000015A0* - ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I218-LM - -@@ -58166,6 +59003,117 @@ pci:v00008086d000015A2* - pci:v00008086d000015A3* - ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V - -+pci:v00008086d00001600* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI -+ -+pci:v00008086d00001601* -+ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x16 Controller -+ -+pci:v00008086d00001602* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001603* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Camarillo Device -+ -+pci:v00008086d00001604* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI -+ -+pci:v00008086d00001605* -+ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x8 Controller -+ -+pci:v00008086d00001606* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001607* -+ ID_MODEL_FROM_DATABASE=Broadwell-U CHAPS Device -+ -+pci:v00008086d00001608* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI -+ -+pci:v00008086d00001609* -+ ID_MODEL_FROM_DATABASE=Broadwell-U x4 PCIe -+ -+pci:v00008086d0000160A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160C* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Audio Controller -+ -+pci:v00008086d0000160D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160F* -+ ID_MODEL_FROM_DATABASE=Broadwell-U SoftSKU -+ -+pci:v00008086d00001610* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI -+ -+pci:v00008086d00001612* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001614* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI -+ -+pci:v00008086d00001616* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001618* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI -+ -+pci:v00008086d0000161A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000161B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000161D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000161E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001622* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001626* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001632* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001636* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ - pci:v00008086d00001960* - ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor - -@@ -58308,7 +59256,10 @@ pci:v00008086d00001C02sv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - - pci:v00008086d00001C02sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ -+pci:v00008086d00001C02sv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS - - pci:v00008086d00001C03* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller -@@ -58346,8 +59297,11 @@ pci:v00008086d00001C10sv00001028sd000004AA* - pci:v00008086d00001C10sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - -+pci:v00008086d00001C10sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00001C10sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C12* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 -@@ -58379,18 +59333,27 @@ pci:v00008086d00001C18* - pci:v00008086d00001C18sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - -+pci:v00008086d00001C18sv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00001C1A* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 - - pci:v00008086d00001C1Asv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - -+pci:v00008086d00001C1Asv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00001C1C* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 - - pci:v00008086d00001C1E* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 - -+pci:v00008086d00001C1Esv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00001C20* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller - -@@ -58412,6 +59375,9 @@ pci:v00008086d00001C20sv00001028sd000004DA* - pci:v00008086d00001C20sv00001043sd00008418* - ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard - -+pci:v00008086d00001C20sv00001043sd0000841B* -+ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ - pci:v00008086d00001C20sv00008086sd00002008* - ID_MODEL_FROM_DATABASE=DQ67SW board - -@@ -58434,10 +59400,10 @@ pci:v00008086d00001C22sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C22sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C22sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C24* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller -@@ -58461,10 +59427,10 @@ pci:v00008086d00001C26sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C26sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C26sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C27* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 -@@ -58494,10 +59460,10 @@ pci:v00008086d00001C2Dsv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C2Dsv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C2Dsv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C33* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller -@@ -58521,7 +59487,7 @@ pci:v00008086d00001C3Asv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C3Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C3Asv00008086sd00007270* - ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -@@ -58577,6 +59543,9 @@ pci:v00008086d00001C4A* - pci:v00008086d00001C4Asv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - -+pci:v00008086d00001C4Asv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ - pci:v00008086d00001C4B* - ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller - -@@ -58610,6 +59579,9 @@ pci:v00008086d00001C51* - pci:v00008086d00001C52* - ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller - -+pci:v00008086d00001C52sv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00001C53* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller - -@@ -58622,6 +59594,9 @@ pci:v00008086d00001C55* - pci:v00008086d00001C56* - ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller - -+pci:v00008086d00001C56sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ - pci:v00008086d00001C57* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller - -@@ -59345,6 +60320,9 @@ pci:v00008086d0000225C* - pci:v00008086d0000225D* - ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 3120 series - -+pci:v00008086d0000225E* -+ ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 31S1 -+ - pci:v00008086d00002310* - ID_MODEL_FROM_DATABASE=DH89xxCC LPC Controller - -@@ -59495,6 +60473,9 @@ pci:v00008086d00002415sv000011D4sd00005340* - pci:v00008086d00002415sv00001734sd00001025* - ID_MODEL_FROM_DATABASE=Activy 3xx - -+pci:v00008086d00002415sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002416* - ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller - -@@ -59804,6 +60785,9 @@ pci:v00008086d00002449sv00001186sd00007801* - pci:v00008086d00002449sv0000144Dsd00002602* - ID_MODEL_FROM_DATABASE=HomePNA 1M CNR - -+pci:v00008086d00002449sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002449sv00008086sd00003010* - ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE - -@@ -59897,6 +60881,9 @@ pci:v00008086d0000244Esv00001028sd000002DA* - pci:v00008086d0000244Esv0000103Csd00002A3B* - ID_MODEL_FROM_DATABASE=Pavilion A1512X - -+pci:v00008086d0000244Esv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000244Esv0000103Csd000031FE* - ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 - -@@ -59906,15 +60893,27 @@ pci:v00008086d0000244Esv0000103Csd0000330B* - pci:v00008086d0000244Esv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -+pci:v00008086d0000244Esv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d0000244Esv00001458sd00005000* - ID_MODEL_FROM_DATABASE=Motherboard - -+pci:v00008086d0000244Esv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ -+pci:v00008086d0000244Esv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d0000244Esv000015D9sd00009680* - ID_MODEL_FROM_DATABASE=X7DBN Motherboard - - pci:v00008086d0000244Esv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -+pci:v00008086d0000244Esv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00002450* - ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) - -@@ -60671,6 +61670,9 @@ pci:v00008086d000024CDsv00001734sd00001004* - pci:v00008086d000024CDsv00001734sd00001055* - ID_MODEL_FROM_DATABASE=Amilo M1420 - -+pci:v00008086d000024CDsv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000024CDsv00004C53sd00001090* - ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard - -@@ -60689,6 +61691,9 @@ pci:v00008086d000024D0* - pci:v00008086d000024D1* - ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller - -+pci:v00008086d000024D1sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D1sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60740,6 +61745,9 @@ pci:v00008086d000024D2sv00001014sd000002DD* - pci:v00008086d000024D2sv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024D2sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D2sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60809,6 +61817,9 @@ pci:v00008086d000024D3sv00001014sd000002ED* - pci:v00008086d000024D3sv00001028sd00000156* - ID_MODEL_FROM_DATABASE=Precision 360 - -+pci:v00008086d000024D3sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D3sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60860,6 +61871,9 @@ pci:v00008086d000024D4sv00001014sd000002DD* - pci:v00008086d000024D4sv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024D4sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D4sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60926,6 +61940,9 @@ pci:v00008086d000024D5* - pci:v00008086d000024D5sv0000100Asd0000147B* - ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard - -+pci:v00008086d000024D5sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D5sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60977,6 +61994,9 @@ pci:v00008086d000024D7* - pci:v00008086d000024D7sv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=xSeries server mainboard - -+pci:v00008086d000024D7sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D7sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61040,6 +62060,9 @@ pci:v00008086d000024DBsv00001014sd000002DD* - pci:v00008086d000024DBsv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024DBsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024DBsv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61112,6 +62135,9 @@ pci:v00008086d000024DDsv00001014sd000002DD* - pci:v00008086d000024DDsv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024DDsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024DDsv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61169,6 +62195,9 @@ pci:v00008086d000024DE* - pci:v00008086d000024DEsv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=xSeries server mainboard - -+pci:v00008086d000024DEsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024DEsv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61208,6 +62237,21 @@ pci:v00008086d000024DEsv00008086sd0000524C* - pci:v00008086d000024DF* - ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller - -+pci:v00008086d000024DFsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ -+pci:v00008086d000024F3* -+ ID_MODEL_FROM_DATABASE=Wireless 8260 -+ -+pci:v00008086d000024F3sv00008086sd00000010* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ -+pci:v00008086d000024F4* -+ ID_MODEL_FROM_DATABASE=Wireless 8260 -+ -+pci:v00008086d000024F4sv00008086sd00000030* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ - pci:v00008086d00002500* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) - -@@ -61679,6 +62723,9 @@ pci:v00008086d000025ABsv00001775sd00001100* - pci:v00008086d000025ABsv00001775sd0000CE90* - ID_MODEL_FROM_DATABASE=CE9 - -+pci:v00008086d000025ABsv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000025ABsv00004C53sd000010B0* - ID_MODEL_FROM_DATABASE=CL9 mainboard - -@@ -62330,6 +63377,9 @@ pci:v00008086d00002668sv00001043sd0000814E* - pci:v00008086d00002668sv00001462sd00007028* - ID_MODEL_FROM_DATABASE=915P/G Neo2 - -+pci:v00008086d00002668sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000266A* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller - -@@ -62657,6 +63707,9 @@ pci:v00008086d00002770sv00001043sd0000817A* - pci:v00008086d00002770sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=E4500 - -+pci:v00008086d00002770sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d00002770sv00008086sd0000544E* - ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP - -@@ -62669,6 +63722,9 @@ pci:v00008086d00002772* - pci:v00008086d00002772sv0000103Csd00002A3B* - ID_MODEL_FROM_DATABASE=Pavilion A1512X - -+pci:v00008086d00002772sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d00002772sv00008086sd0000544E* - ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP - -@@ -62831,6 +63887,9 @@ pci:v00008086d000027B8sv00001043sd00008179* - pci:v00008086d000027B8sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=E4500 - -+pci:v00008086d000027B8sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027B8sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -62906,6 +63965,9 @@ pci:v00008086d000027C0sv00001462sd00002310* - pci:v00008086d000027C0sv00001462sd00007236* - ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard - -+pci:v00008086d000027C0sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027C0sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -62961,7 +64023,7 @@ pci:v00008086d000027C4sv00001028sd000001D7* - ID_MODEL_FROM_DATABASE=XPS M1210 - - pci:v00008086d000027C4sv000017AAsd0000200E* -- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 -+ ID_MODEL_FROM_DATABASE=ThinkPad T60 - - pci:v00008086d000027C5* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] -@@ -63026,6 +64088,9 @@ pci:v00008086d000027C8sv0000144Dsd0000C072* - pci:v00008086d000027C8sv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027C8sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027C8sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63089,6 +64154,9 @@ pci:v00008086d000027C9sv0000144Dsd0000C072* - pci:v00008086d000027C9sv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027C9sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027C9sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63152,6 +64220,9 @@ pci:v00008086d000027CAsv0000144Dsd0000C072* - pci:v00008086d000027CAsv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027CAsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027CAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63209,6 +64280,9 @@ pci:v00008086d000027CBsv0000144Dsd0000C072* - pci:v00008086d000027CBsv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027CBsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027CBsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63266,6 +64340,9 @@ pci:v00008086d000027CCsv0000144Dsd0000C072* - pci:v00008086d000027CCsv00001458sd00005006* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027CCsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027CCsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63296,6 +64373,9 @@ pci:v00008086d000027D0sv0000144Dsd0000C072* - pci:v00008086d000027D0sv00001458sd00005001* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027D0sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D0sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63314,6 +64394,9 @@ pci:v00008086d000027D2sv0000103Csd000030A3* - pci:v00008086d000027D2sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=Notebook N150P - -+pci:v00008086d000027D2sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D2sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63326,6 +64409,9 @@ pci:v00008086d000027D4* - pci:v00008086d000027D4sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=Notebook N150P - -+pci:v00008086d000027D4sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D4sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63341,6 +64427,9 @@ pci:v00008086d000027D6sv0000103Csd000030A3* - pci:v00008086d000027D6sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=Notebook N150P - -+pci:v00008086d000027D6sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D6sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63410,6 +64499,9 @@ pci:v00008086d000027D8sv00001458sd0000A002* - pci:v00008086d000027D8sv00001458sd0000A102* - ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard - -+pci:v00008086d000027D8sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D8sv0000152Dsd00000753* - ID_MODEL_FROM_DATABASE=Softmodem - -@@ -63470,6 +64562,9 @@ pci:v00008086d000027DAsv0000144Dsd0000C072* - pci:v00008086d000027DAsv00001458sd00005001* - ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard - -+pci:v00008086d000027DAsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027DAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63545,6 +64640,9 @@ pci:v00008086d000027DFsv0000107Bsd00005048* - pci:v00008086d000027DFsv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop - -+pci:v00008086d000027DFsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027DFsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63632,6 +64730,9 @@ pci:v00008086d00002822* - pci:v00008086d00002822sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d00002822sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002823* - ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller - -@@ -64202,6 +65303,9 @@ pci:v00008086d00002916* - pci:v00008086d00002916sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d00002916sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002916sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -@@ -64223,6 +65327,9 @@ pci:v00008086d00002918sv00001028sd00000236* - pci:v00008086d00002918sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002918sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002919* - ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller - -@@ -64265,6 +65372,9 @@ pci:v00008086d00002921sv00001462sd00007360* - pci:v00008086d00002922* - ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] - -+pci:v00008086d00002922sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002922sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64331,6 +65441,9 @@ pci:v00008086d00002930sv00001028sd0000020D* - pci:v00008086d00002930sv00001028sd00000211* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002930sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002930sv0000103Csd00003628* - ID_MODEL_FROM_DATABASE=dv6-1190en - -@@ -64340,6 +65453,9 @@ pci:v00008086d00002930sv00001043sd00008277* - pci:v00008086d00002930sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002930sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002930sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64388,12 +65504,18 @@ pci:v00008086d00002934sv00001028sd0000029C* - pci:v00008086d00002934sv00001028sd00002011* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002934sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002934sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002934sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002934sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002934sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64433,12 +65555,18 @@ pci:v00008086d00002935sv00001028sd00000287* - pci:v00008086d00002935sv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller - -+pci:v00008086d00002935sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002935sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002935sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002935sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002935sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64472,12 +65600,18 @@ pci:v00008086d00002936sv00001028sd00000287* - pci:v00008086d00002936sv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller - -+pci:v00008086d00002936sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002936sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002936sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002936sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002936sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64511,12 +65645,18 @@ pci:v00008086d00002937sv00001028sd0000029C* - pci:v00008086d00002937sv00001028sd00002011* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002937sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002937sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002937sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002937sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002937sv00008086sd00002937* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64553,12 +65693,18 @@ pci:v00008086d00002938sv00001028sd00000287* - pci:v00008086d00002938sv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller - -+pci:v00008086d00002938sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002938sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002938sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002938sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002938sv00008086sd00002938* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64580,12 +65726,18 @@ pci:v00008086d00002939sv00001028sd00000210* - pci:v00008086d00002939sv00001028sd00000237* - ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller - -+pci:v00008086d00002939sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002939sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002939sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002939sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002939sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64625,12 +65777,18 @@ pci:v00008086d0000293Asv00001028sd00000287* - pci:v00008086d0000293Asv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller - -+pci:v00008086d0000293Asv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000293Asv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d0000293Asv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d0000293Asv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000293Asv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64661,12 +65819,18 @@ pci:v00008086d0000293Csv00001028sd00000287* - pci:v00008086d0000293Csv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller - -+pci:v00008086d0000293Csv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000293Csv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d0000293Csv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d0000293Csv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000293Csv00008086sd0000293C* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64685,6 +65849,9 @@ pci:v00008086d0000293Esv00001028sd0000020D* - pci:v00008086d0000293Esv00001028sd00000211* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d0000293Esv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000293Esv0000103Csd00003628* - ID_MODEL_FROM_DATABASE=dv6-1190en - -@@ -64694,6 +65861,9 @@ pci:v00008086d0000293Esv00001043sd0000829F* - pci:v00008086d0000293Esv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d0000293Esv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000293Esv00008086sd0000293E* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64712,6 +65882,9 @@ pci:v00008086d00002940sv00001028sd0000020D* - pci:v00008086d00002940sv00001028sd00000211* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002940sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002940sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -@@ -64730,6 +65903,9 @@ pci:v00008086d00002944* - pci:v00008086d00002944sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d00002944sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002946* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 - -@@ -64910,6 +66086,9 @@ pci:v00008086d000029C0* - pci:v00008086d000029C0sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d000029C0sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d000029C0sv00001043sd00008276* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -@@ -64919,6 +66098,9 @@ pci:v00008086d000029C0sv00001043sd000082B0* - pci:v00008086d000029C0sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d000029C0sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000029C0sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -66050,6 +67232,9 @@ pci:v00008086d00002F37* - pci:v00008086d00002F38* - ID_MODEL_FROM_DATABASE=Haswell-E Home Agent 1 - -+pci:v00008086d00002F39* -+ ID_MODEL_FROM_DATABASE=Haswell-E I/O Performance Monitoring -+ - pci:v00008086d00002F3A* - ID_MODEL_FROM_DATABASE=Haswell-E QPI Link 2 - -@@ -66899,6 +68084,9 @@ pci:v00008086d00003591* - pci:v00008086d00003591sv00001014sd000002DD* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d00003591sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d00003591sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -66968,6 +68156,9 @@ pci:v00008086d0000359Bsv00001014sd000002DD* - pci:v00008086d0000359E* - ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub - -+pci:v00008086d0000359Esv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d0000359Esv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -67586,6 +68777,9 @@ pci:v00008086d00003B0A* - pci:v00008086d00003B0Asv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d00003B0Asv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B0B* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller - -@@ -67661,6 +68855,9 @@ pci:v00008086d00003B22* - pci:v00008086d00003B22sv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d00003B22sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B23* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller - -@@ -67715,6 +68912,9 @@ pci:v00008086d00003B30sv00001028sd000002DA* - pci:v00008086d00003B30sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B30sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B30sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67736,6 +68936,9 @@ pci:v00008086d00003B34sv00001028sd000002DA* - pci:v00008086d00003B34sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B34sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B34sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67769,6 +68972,9 @@ pci:v00008086d00003B3Csv00001028sd000002DA* - pci:v00008086d00003B3Csv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B3Csv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B3Csv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67793,12 +68999,18 @@ pci:v00008086d00003B42sv00001028sd000002DA* - pci:v00008086d00003B42sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B42sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B44* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 - - pci:v00008086d00003B44sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B44sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B46* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 - -@@ -67841,6 +69053,9 @@ pci:v00008086d00003B56sv00001028sd000002DA* - pci:v00008086d00003B56sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B56sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B56sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67853,6 +69068,9 @@ pci:v00008086d00003B64* - pci:v00008086d00003B64sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=Aspire 7740G - -+pci:v00008086d00003B64sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B64sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -68601,10 +69819,10 @@ pci:v00008086d0000504C* - ID_MODEL_FROM_DATABASE=EP80579 Integrated Processor with QuickAssist TDM - - pci:v00008086d00005200* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server -+ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server PCI Bridge - - pci:v00008086d00005201* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server -+ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller - - pci:v00008086d00005201sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter -@@ -68612,6 +69830,12 @@ pci:v00008086d00005201sv00008086sd00000001* - pci:v00008086d0000530D* - ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor - -+pci:v00008086d00005845* -+ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller -+ -+pci:v00008086d00005845sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000065C0* - ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub - -@@ -68688,7 +69912,7 @@ pci:v00008086d00007020* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] - - pci:v00008086d00007020sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine - - pci:v00008086d00007030* - ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] -@@ -68720,6 +69944,9 @@ pci:v00008086d00007112* - pci:v00008086d00007112sv000015ADsd00001976* - ID_MODEL_FROM_DATABASE=Virtual Machine Chipset - -+pci:v00008086d00007112sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00007113* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI - -@@ -69383,6 +70610,9 @@ pci:v00008086d00008D04* - pci:v00008086d00008D06* - ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] - -+pci:v00008086d00008D06sv000017AAsd00001031* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i -+ - pci:v00008086d00008D08* - ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] - -@@ -69959,6 +71189,9 @@ pci:v00008086d0000D131* - pci:v00008086d0000D131sv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d0000D131sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d0000D132* - ID_MODEL_FROM_DATABASE=Core Processor DMI - -@@ -69989,6 +71222,9 @@ pci:v00008086d0000D138sv00001028sd000002DA* - pci:v00008086d0000D138sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d0000D138sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d0000D139* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 - -@@ -71144,6 +72380,9 @@ pci:v00009005d00008089* - pci:v00009005d0000808F* - ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID - -+pci:v00009005d0000808Fsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00009005d00008090* - ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID - -@@ -71271,11 +72510,14 @@ pci:v00009710d00009912* - ID_MODEL_FROM_DATABASE=PCIe 9912 Multi-I/O Controller - - pci:v00009710d00009922* -- ID_MODEL_FROM_DATABASE=PCIe 9922 Multi-I/O Controller -+ ID_MODEL_FROM_DATABASE=MCS9922 PCIe Multi-I/O Controller - - pci:v00009710d00009990* - ID_MODEL_FROM_DATABASE=MCS9990 PCIe to 4‐Port USB 2.0 Host Controller - -+pci:v00009850* -+ ID_VENDOR_FROM_DATABASE=3Com (wrong ID) -+ - pci:v00009902* - ID_VENDOR_FROM_DATABASE=Stargen Inc. - -@@ -71381,6 +72623,9 @@ pci:v0000BD11* - pci:v0000BDBD* - ID_VENDOR_FROM_DATABASE=Blackmagic Design - -+pci:v0000BDBDd0000A106* -+ ID_MODEL_FROM_DATABASE=Multibridge Extreme -+ - pci:v0000BDBDd0000A117* - ID_MODEL_FROM_DATABASE=Intensity Pro - -@@ -71585,6 +72830,51 @@ pci:v0000D84D* - pci:v0000DADA* - ID_VENDOR_FROM_DATABASE=Datapath Limited - -+pci:v0000DADAd00000133* -+ ID_MODEL_FROM_DATABASE=VisionRGB-X2 -+ -+pci:v0000DADAd00000139* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E1 -+ -+pci:v0000DADAd00000144* -+ ID_MODEL_FROM_DATABASE=VisionSD8 -+ -+pci:v0000DADAd00000150* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E2 -+ -+pci:v0000DADAd00000151* -+ ID_MODEL_FROM_DATABASE=VisionSD4+1 -+ -+pci:v0000DADAd00000159* -+ ID_MODEL_FROM_DATABASE=VisionAV -+ -+pci:v0000DADAd00000161* -+ ID_MODEL_FROM_DATABASE=DGC161 -+ -+pci:v0000DADAd00000165* -+ ID_MODEL_FROM_DATABASE=DGC165 -+ -+pci:v0000DADAd00000167* -+ ID_MODEL_FROM_DATABASE=DGC167 -+ -+pci:v0000DADAd00000168* -+ ID_MODEL_FROM_DATABASE=DGC168 -+ -+pci:v0000DADAd00001139* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E1S -+ -+pci:v0000DADAd00001150* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E2S -+ -+pci:v0000DADAd00001151* -+ ID_MODEL_FROM_DATABASE=VisionSD4+1S -+ -+pci:v0000DADAd00001153* -+ ID_MODEL_FROM_DATABASE=VisionDVI-DL -+ -+pci:v0000DADAd00001154* -+ ID_MODEL_FROM_DATABASE=VisionSDI2 -+ - pci:v0000DB10* - ID_VENDOR_FROM_DATABASE=Diablo Technologies - -@@ -71735,6 +73025,9 @@ pci:v0000E4BFd0000CC47* - pci:v0000E4BFd0000CC4D* - ID_MODEL_FROM_DATABASE=CCM-BOOGIE - -+pci:v0000E4E4* -+ ID_VENDOR_FROM_DATABASE=Xorcom -+ - pci:v0000E55E* - ID_VENDOR_FROM_DATABASE=Essence Technology, Inc. - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 60dbcd2..014c628 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -20,6 +20,12 @@ usb:v0003* - usb:v0004* - ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart - -+usb:v0011* -+ ID_VENDOR_FROM_DATABASE=Unknown manufacturer -+ -+usb:v0011p7788* -+ ID_MODEL_FROM_DATABASE=Flash mass storage drive -+ - usb:v0053* - ID_VENDOR_FROM_DATABASE=Planex - -@@ -30,7 +36,7 @@ usb:v0079* - ID_VENDOR_FROM_DATABASE=DragonRise Inc. - - usb:v0079p0006* -- ID_MODEL_FROM_DATABASE=Generic USB Joystick -+ ID_MODEL_FROM_DATABASE=PC TWIN SHOCK Gamepad - - usb:v0079p0011* - ID_MODEL_FROM_DATABASE=Gamepad -@@ -63,7 +69,7 @@ usb:v0204* - ID_VENDOR_FROM_DATABASE=Chipsbank Microelectronics Co., Ltd - - usb:v0204p6025* -- ID_MODEL_FROM_DATABASE=CBM2080 Flash drive controller -+ ID_MODEL_FROM_DATABASE=CBM2080 / CBM2090 Flash drive controller - - usb:v0204p6026* - ID_MODEL_FROM_DATABASE=CBM1180 Flash drive controller -@@ -263,6 +269,9 @@ usb:v03EBp2109* - usb:v03EBp210D* - ID_MODEL_FROM_DATABASE=XPLAIN evaluation kit (CDC ACM) - -+usb:v03EBp2110* -+ ID_MODEL_FROM_DATABASE=AVR JTAGICE3 Debugger and Programmer -+ - usb:v03EBp2122* - ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit - -@@ -1001,6 +1010,9 @@ usb:v03F0p2505* - usb:v03F0p2512* - ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 - -+usb:v03F0p2514* -+ ID_MODEL_FROM_DATABASE=4-port hub -+ - usb:v03F0p2517* - ID_MODEL_FROM_DATABASE=LaserJet 2410 - -@@ -1376,6 +1388,9 @@ usb:v03F0p5111* - usb:v03F0p5211* - ID_MODEL_FROM_DATABASE=PhotoSmart 3300 series - -+usb:v03F0p5307* -+ ID_MODEL_FROM_DATABASE=v165w Stick -+ - usb:v03F0p5311* - ID_MODEL_FROM_DATABASE=OfficeJet 6300 - -@@ -2054,6 +2069,21 @@ usb:v0403p8A28* - usb:v0403p8A98* - ID_MODEL_FROM_DATABASE=TIAO Multi-Protocol Adapter - -+usb:v0403p8B28* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCI70 -+ -+usb:v0403p8B29* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 CLS -+ -+usb:v0403p8B2A* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium Q1 -+ -+usb:v0403p8B2B* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCD -+ -+usb:v0403p8B2C* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 -+ - usb:v0403p9133* - ID_MODEL_FROM_DATABASE=CallerID - -@@ -2156,6 +2186,9 @@ usb:v0403pC8BD* - usb:v0403pC8BE* - ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium D1 - -+usb:v0403pC8BF* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 RLV -+ - usb:v0403pCC48* - ID_MODEL_FROM_DATABASE=Tactrix OpenPort 1.3 Mitsubishi - -@@ -2966,6 +2999,9 @@ usb:v040Ap4021* - usb:v040Ap4022* - ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer - -+usb:v040Ap402E* -+ ID_MODEL_FROM_DATABASE=605 Photo Printer -+ - usb:v040Ap4034* - ID_MODEL_FROM_DATABASE=805 Photo Printer - -@@ -4949,6 +4985,9 @@ usb:v043Ep7001* - usb:v043Ep7013* - ID_MODEL_FROM_DATABASE=MP3 Player - -+usb:v043Ep70D7* -+ ID_MODEL_FROM_DATABASE=Mouse Scanner LSM-150 [LG Smart Scan Mouse] -+ - usb:v043Ep70F5* - ID_MODEL_FROM_DATABASE=External HDD - -@@ -5114,6 +5153,9 @@ usb:v044FpB203* - usb:v044FpB300* - ID_MODEL_FROM_DATABASE=Firestorm Dual Power - -+usb:v044FpB303* -+ ID_MODEL_FROM_DATABASE=FireStorm Dual Analog 2 -+ - usb:v044FpB304* - ID_MODEL_FROM_DATABASE=Firestorm Dual Power - -@@ -6437,6 +6479,9 @@ usb:v045Ep0772* - usb:v045Ep0779* - ID_MODEL_FROM_DATABASE=LifeCam HD-3000 - -+usb:v045Ep0780* -+ ID_MODEL_FROM_DATABASE=Comfort Curve Keyboard 3000 -+ - usb:v045Ep0797* - ID_MODEL_FROM_DATABASE=Optical Mouse 200 - -@@ -7313,6 +7358,9 @@ usb:v046DpC062* - usb:v046DpC063* - ID_MODEL_FROM_DATABASE=DELL Laser Mouse - -+usb:v046DpC064* -+ ID_MODEL_FROM_DATABASE=M110 corded optical mouse (M-B0001) -+ - usb:v046DpC066* - ID_MODEL_FROM_DATABASE=G9x Laser Mouse - -@@ -7331,6 +7379,9 @@ usb:v046DpC06B* - usb:v046DpC06C* - ID_MODEL_FROM_DATABASE=Optical Mouse - -+usb:v046DpC077* -+ ID_MODEL_FROM_DATABASE=M105 Optical Mouse -+ - usb:v046DpC101* - ID_MODEL_FROM_DATABASE=UltraX Media Remote - -@@ -7361,6 +7412,9 @@ usb:v046DpC125* - usb:v046DpC126* - ID_MODEL_FROM_DATABASE=Harmony Link - -+usb:v046DpC12B* -+ ID_MODEL_FROM_DATABASE=Harmony Touch Remote -+ - usb:v046DpC201* - ID_MODEL_FROM_DATABASE=WingMan Extreme Joystick with Throttle - -@@ -7448,6 +7502,12 @@ usb:v046DpC226* - usb:v046DpC227* - ID_MODEL_FROM_DATABASE=G15 Refresh Keyboard - -+usb:v046DpC228* -+ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard -+ -+usb:v046DpC229* -+ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard Macro Interface -+ - usb:v046DpC22A* - ID_MODEL_FROM_DATABASE=Gaming Keyboard G110 - -@@ -7466,6 +7526,18 @@ usb:v046DpC245* - usb:v046DpC246* - ID_MODEL_FROM_DATABASE=Gaming Mouse G300 - -+usb:v046DpC248* -+ ID_MODEL_FROM_DATABASE=G105 Gaming Keyboard -+ -+usb:v046DpC24A* -+ ID_MODEL_FROM_DATABASE=G600 Gaming Mouse -+ -+usb:v046DpC24D* -+ ID_MODEL_FROM_DATABASE=G710 Gaming Keyboard -+ -+usb:v046DpC24E* -+ ID_MODEL_FROM_DATABASE=G500s Laser Gaming Mouse -+ - usb:v046DpC281* - ID_MODEL_FROM_DATABASE=WingMan Force - -@@ -8543,6 +8615,9 @@ usb:v0480pA006* - usb:v0480pA007* - ID_MODEL_FROM_DATABASE=External Disk USB 3.0 - -+usb:v0480pA009* -+ ID_MODEL_FROM_DATABASE=Stor.E Basics -+ - usb:v0480pD010* - ID_MODEL_FROM_DATABASE=External Disk 3TB - -@@ -10814,6 +10889,9 @@ usb:v04A9p31E5* - usb:v04A9p31E6* - ID_MODEL_FROM_DATABASE=PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS - -+usb:v04A9p31E7* -+ ID_MODEL_FROM_DATABASE=SELPHY CP790 -+ - usb:v04A9p31EA* - ID_MODEL_FROM_DATABASE=EOS Rebel T2i / EOS 550D / EOS Kiss X4 - -@@ -10985,6 +11063,9 @@ usb:v04A9p325F* - usb:v04A9p3260* - ID_MODEL_FROM_DATABASE=PowerShot SX270 HS - -+usb:v04A9p3262* -+ ID_MODEL_FROM_DATABASE=PowerShot A2600 -+ - usb:v04A9p3264* - ID_MODEL_FROM_DATABASE=PowerShot A1400 - -@@ -11000,6 +11081,9 @@ usb:v04A9p3271* - usb:v04A9p3276* - ID_MODEL_FROM_DATABASE=PowerShot SX170 IS - -+usb:v04A9p3277* -+ ID_MODEL_FROM_DATABASE=PowerShot SX510 HS -+ - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -@@ -11312,6 +11396,9 @@ usb:v04B3p4482* - usb:v04B3p4485* - ID_MODEL_FROM_DATABASE=Serial Converter - -+usb:v04B3p4524* -+ ID_MODEL_FROM_DATABASE=40 Character Vacuum Fluorescent Display -+ - usb:v04B3p4525* - ID_MODEL_FROM_DATABASE=Double sided CRT - -@@ -12335,6 +12422,9 @@ usb:v04C5p10FE* - usb:v04C5p1150* - ID_MODEL_FROM_DATABASE=fi-6230 - -+usb:v04C5p201D* -+ ID_MODEL_FROM_DATABASE=SATA 3.0 6Gbit/s Adaptor [GROOVY] -+ - usb:v04C6* - ID_VENDOR_FROM_DATABASE=Toshiba America Electronic Components - -@@ -12374,6 +12464,9 @@ usb:v04C8p072D* - usb:v04CA* - ID_VENDOR_FROM_DATABASE=Lite-On Technology Corp. - -+usb:v04CAp004F* -+ ID_MODEL_FROM_DATABASE=SK-9020 keyboard -+ - usb:v04CAp1766* - ID_MODEL_FROM_DATABASE=HID Monitor Controls - -@@ -13346,6 +13439,9 @@ usb:v04E6p5292* - usb:v04E6p5410* - ID_MODEL_FROM_DATABASE=SCR35xx Smart Card Reader - -+usb:v04E6p5591* -+ ID_MODEL_FROM_DATABASE=SCL3711-NFC&RW -+ - usb:v04E6pE000* - ID_MODEL_FROM_DATABASE=SCRx31 Reader - -@@ -14138,6 +14234,9 @@ usb:v04F2p0841* - usb:v04F2p0860* - ID_MODEL_FROM_DATABASE=2.4G Multimedia Wireless Kit - -+usb:v04F2p1121* -+ ID_MODEL_FROM_DATABASE=Periboard 717 Mini Wireless Keyboard -+ - usb:v04F2pA001* - ID_MODEL_FROM_DATABASE=E-Video DC-100 Camera - -@@ -28935,10 +29034,10 @@ usb:v0906* - ID_VENDOR_FROM_DATABASE=Faraday Technology Corp. - - usb:v0908* -- ID_VENDOR_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd -+ ID_VENDOR_FROM_DATABASE=Siemens AG - - usb:v0908p2701* -- ID_MODEL_FROM_DATABASE=Spy Pen VGA -+ ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA - - usb:v0909* - ID_VENDOR_FROM_DATABASE=Audio-Technica Corp. -@@ -38360,6 +38459,12 @@ usb:v0FFC* - usb:v0FFCp0021* - ID_MODEL_FROM_DATABASE=Nord Stage 2 - -+usb:v0FFD* -+ ID_VENDOR_FROM_DATABASE=EarlySense -+ -+usb:v0FFDpFF00* -+ ID_MODEL_FROM_DATABASE=OEM -+ - usb:v0FFF* - ID_VENDOR_FROM_DATABASE=Aopen, Inc. - -@@ -47762,6 +47867,12 @@ usb:v2237* - usb:v2237p4161* - ID_MODEL_FROM_DATABASE=eReader White - -+usb:v228D* -+ ID_VENDOR_FROM_DATABASE=8D Technologies inc. -+ -+usb:v228Dp0001* -+ ID_MODEL_FROM_DATABASE=Terminal Bike Key Reader -+ - usb:v22A6* - ID_VENDOR_FROM_DATABASE=Pie Digital, Inc. - --- -1.7.9.2 - diff --git a/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch b/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch deleted file mode 100644 index 722f7382..00000000 --- a/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f3b8fbb1da6519e14985ea444f8304673d20ad3f Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Wed, 3 Sep 2014 13:28:31 +0200 -Subject: [PATCH] initrd-parse-etc.service: ignore return code of - daemon-reload - -It seems the return code of systemctl daemon-reload can be !=0 in some -circumstances, which causes a failure of the unit and breaks booting in -the initrd. ---- - units/initrd-parse-etc.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git units/initrd-parse-etc.service.in units/initrd-parse-etc.service.in -index c0b2543..42c059b 100644 ---- units/initrd-parse-etc.service.in -+++ units/initrd-parse-etc.service.in -@@ -16,7 +16,7 @@ ConditionPathExists=/etc/initrd-release - - [Service] - Type=oneshot --ExecStartPre=@rootbindir@/systemctl daemon-reload -+ExecStartPre=-@rootbindir@/systemctl daemon-reload - # we have to retrigger initrd-fs.target after daemon-reload - ExecStart=-@rootbindir@/systemctl --no-block start initrd-fs.target - ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service --- -1.7.9.2 - diff --git a/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch b/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch deleted file mode 100644 index 1cf00ff0..00000000 --- a/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e8c108ca9f11a382742f212f5b42a02536b3d40f Mon Sep 17 00:00:00 2001 -From: Philippe De Swert -Date: Wed, 17 Sep 2014 00:27:16 +0300 -Subject: [PATCH] journal: Do not count on the compiler initializing - found_last to false - -There is a very unlikely case where this can happen since gcc usually -does the sane thing. But let's make sure found_last is initialized anyway. - -Fixes: CID#996386 ---- - src/journal/journal-verify.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journal-verify.c src/journal/journal-verify.c -index 6c8ca8c..b4e8f73 100644 ---- src/journal/journal-verify.c -+++ src/journal/journal-verify.c -@@ -804,7 +804,7 @@ int journal_file_verify( - usec_t last_usec = 0; - int data_fd = -1, entry_fd = -1, entry_array_fd = -1; - unsigned i; -- bool found_last; -+ bool found_last = false; - #ifdef HAVE_GCRYPT - uint64_t last_tag = 0; - #endif --- -1.7.9.2 - diff --git a/0001-journal-cleanup-up-error-handling-in-update_catalog.patch b/0001-journal-cleanup-up-error-handling-in-update_catalog.patch deleted file mode 100644 index 2062149b..00000000 --- a/0001-journal-cleanup-up-error-handling-in-update_catalog.patch +++ /dev/null @@ -1,104 +0,0 @@ -From e3b9d9c8027a7c4c55cf1614e0fe9423fad69e8f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Apr 2014 08:44:55 -0400 -Subject: [PATCH] journal: cleanup up error handling in update_catalog() - -- Negative/positive errno mixup caused duplicates not to be detected properly. - Now we get a warning about some duplicate entries in our own catalogs... -- Errors in update_catalog would be ignored, but they should not be. ---- - src/journal/catalog.c | 25 +++++++++++++------------ - src/journal/test-catalog.c | 3 ++- - 2 files changed, 15 insertions(+), 13 deletions(-) - -diff --git src/journal/catalog.c src/journal/catalog.c -index 3ed0b7e..02dedc4 100644 ---- src/journal/catalog.c -+++ src/journal/catalog.c -@@ -103,7 +103,7 @@ static int finish_item( - const char *payload) { - - ssize_t offset; -- CatalogItem *i; -+ _cleanup_free_ CatalogItem *i = NULL; - int r; - - assert(h); -@@ -126,13 +126,14 @@ static int finish_item( - i->offset = htole64((uint64_t) offset); - - r = hashmap_put(h, i, i); -- if (r == EEXIST) { -+ if (r == -EEXIST) { - log_warning("Duplicate entry for " SD_ID128_FORMAT_STR ".%s, ignoring.", - SD_ID128_FORMAT_VAL(id), language ? language : "C"); -- free(i); - return 0; -- } -+ } else if (r < 0) -+ return r; - -+ i = NULL; - return 0; - } - -@@ -383,8 +384,8 @@ error: - int catalog_update(const char* database, const char* root, const char* const* dirs) { - _cleanup_strv_free_ char **files = NULL; - char **f; -- Hashmap *h; - struct strbuf *sb = NULL; -+ _cleanup_hashmap_free_free_ Hashmap *h = NULL; - _cleanup_free_ CatalogItem *items = NULL; - CatalogItem *i; - Iterator j; -@@ -406,13 +407,17 @@ int catalog_update(const char* database, const char* root, const char* const* di - } - - STRV_FOREACH(f, files) { -- log_debug("reading file '%s'", *f); -- catalog_import_file(h, sb, *f); -+ log_debug("Reading file '%s'", *f); -+ r = catalog_import_file(h, sb, *f); -+ if (r < 0) { -+ log_error("Failed to import file '%s': %s.", -+ *f, strerror(-r)); -+ goto finish; -+ } - } - - if (hashmap_size(h) <= 0) { - log_info("No items in catalog."); -- r = 0; - goto finish; - } else - log_debug("Found %u items in catalog.", hashmap_size(h)); -@@ -443,11 +448,7 @@ int catalog_update(const char* database, const char* root, const char* const* di - log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.", - database, n, sb->len, r); - -- r = 0; -- - finish: -- if (h) -- hashmap_free_free(h); - if (sb) - strbuf_cleanup(sb); - -diff --git src/journal/test-catalog.c src/journal/test-catalog.c -index b087a8b..967ab67 100644 ---- src/journal/test-catalog.c -+++ src/journal/test-catalog.c -@@ -157,7 +157,8 @@ int main(int argc, char *argv[]) { - - setlocale(LC_ALL, "de_DE.UTF-8"); - -- log_set_max_level(LOG_DEBUG); -+ log_parse_environment(); -+ log_open(); - - test_catalog_file_lang(); - --- -1.7.9.2 - diff --git a/0001-journal-compress-return-early-in-uncompress_startswi.patch b/0001-journal-compress-return-early-in-uncompress_startswi.patch deleted file mode 100644 index 74777205..00000000 --- a/0001-journal-compress-return-early-in-uncompress_startswi.patch +++ /dev/null @@ -1,186 +0,0 @@ -Based on 5e592c66bdf76dfc8445b332f7a5088ca504ee90 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 4 Jul 2014 19:53:58 -0400 -Subject: [PATCH] journal/compress: return early in uncompress_startswith - -uncompress_startswith would always decode the whole stream, even -if it did not start with the given prefix. - -Reallocation policy was also strange. ---- - src/journal/compress.c | 91 ++++++++++++++----------------------------------- - 1 file changed, 27 insertions(+), 64 deletions(-) - -Index: src/journal/compress.c -=================================================================== ---- src/journal/compress.c.orig -+++ src/journal/compress.c -@@ -25,6 +25,7 @@ - #include - - #include "macro.h" -+#include "util.h" - #include "compress.h" - - bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { -@@ -69,10 +70,9 @@ fail: - bool uncompress_blob(const void *src, uint64_t src_size, - void **dst, uint64_t *dst_alloc_size, uint64_t* dst_size, uint64_t dst_max) { - -- lzma_stream s = LZMA_STREAM_INIT; -+ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; - lzma_ret ret; - uint64_t space; -- bool b = false; - - assert(src); - assert(src_size > 0); -@@ -85,26 +85,18 @@ bool uncompress_blob(const void *src, ui - if (ret != LZMA_OK) - return false; - -- if (*dst_alloc_size <= src_size) { -- void *p; -- -- p = realloc(*dst, src_size*2); -- if (!p) -- return false; -- -- *dst = p; -- *dst_alloc_size = src_size*2; -- } -+ space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space)) -+ return false; - - s.next_in = src; - s.avail_in = src_size; - - s.next_out = *dst; -- space = dst_max > 0 ? MIN(*dst_alloc_size, dst_max) : *dst_alloc_size; - s.avail_out = space; - - for (;;) { -- void *p; -+ uint64_t used; - - ret = lzma_code(&s, LZMA_FINISH); - -@@ -112,31 +104,25 @@ bool uncompress_blob(const void *src, ui - break; - - if (ret != LZMA_OK) -- goto fail; -+ return false; - - if (dst_max > 0 && (space - s.avail_out) >= dst_max) - break; - -- p = realloc(*dst, space*2); -- if (!p) -- goto fail; -- -- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *dst); -- s.avail_out += space; -+ if (dst_max > 0 && space == dst_max) -+ return false; - -- space *= 2; -+ used = space - s.avail_out; -+ space = MIN(2 * space, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space)) -+ return false; - -- *dst = p; -- *dst_alloc_size = space; -+ s.avail_out = space - used; -+ s.next_out = *dst + used; - } - - *dst_size = space - s.avail_out; -- b = true; -- --fail: -- lzma_end(&s); -- -- return b; -+ return true; - } - - bool uncompress_startswith(const void *src, uint64_t src_size, -@@ -144,9 +130,8 @@ bool uncompress_startswith(const void *s - const void *prefix, uint64_t prefix_len, - uint8_t extra) { - -- lzma_stream s = LZMA_STREAM_INIT; -+ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; - lzma_ret ret; -- bool b = false; - - /* Checks whether the uncompressed blob starts with the - * mentioned prefix. The byte extra needs to follow the -@@ -163,16 +148,8 @@ bool uncompress_startswith(const void *s - if (ret != LZMA_OK) - return false; - -- if (*buffer_size <= prefix_len) { -- void *p; -- -- p = realloc(*buffer, prefix_len*2); -- if (!p) -- return false; -- -- *buffer = p; -- *buffer_size = prefix_len*2; -- } -+ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1))) -+ return false; - - s.next_in = src; - s.avail_in = src_size; -@@ -181,36 +158,23 @@ bool uncompress_startswith(const void *s - s.avail_out = *buffer_size; - - for (;;) { -- void *p; -- - ret = lzma_code(&s, LZMA_FINISH); - - if (ret != LZMA_STREAM_END && ret != LZMA_OK) -- goto fail; -+ return false; - -- if ((*buffer_size - s.avail_out > prefix_len) && -- memcmp(*buffer, prefix, prefix_len) == 0 && -- ((const uint8_t*) *buffer)[prefix_len] == extra) -- break; -+ if (*buffer_size - s.avail_out >= prefix_len + 1) -+ return memcmp(*buffer, prefix, prefix_len) == 0 && -+ ((const uint8_t*) *buffer)[prefix_len] == extra; - - if (ret == LZMA_STREAM_END) -- goto fail; -- -- p = realloc(*buffer, *buffer_size*2); -- if (!p) -- goto fail; -+ return false; - -- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *buffer); - s.avail_out += *buffer_size; - -- *buffer = p; -- *buffer_size *= 2; -- } -- -- b = true; -- --fail: -- lzma_end(&s); -+ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2))) -+ return false; - -- return b; -+ s.next_out = *buffer + *buffer_size - s.avail_out; -+ } - } diff --git a/0001-journal-fix-export-of-messages-containing-newlines.patch b/0001-journal-fix-export-of-messages-containing-newlines.patch deleted file mode 100644 index 75cdd023..00000000 --- a/0001-journal-fix-export-of-messages-containing-newlines.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 0ade5ffe2778e7b238bba8d979ca4d53dee1e702 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 31 Mar 2014 08:57:28 -0400 -Subject: [PATCH] journal: fix export of messages containing newlines - -In "export" format, newlines are significant, and messages containing -newlines must be exported as "binary". ---- - src/shared/logs-show.c | 7 ++++--- - src/shared/utf8.c | 5 +++-- - src/shared/utf8.h | 5 ++++- - 3 files changed, 11 insertions(+), 6 deletions(-) - -diff --git src/shared/logs-show.c src/shared/logs-show.c -index 9d14933..b0b66f6 100644 ---- src/shared/logs-show.c -+++ src/shared/logs-show.c -@@ -547,7 +547,9 @@ static int output_export( - startswith(data, "_BOOT_ID=")) - continue; - -- if (!utf8_is_printable(data, length)) { -+ if (utf8_is_printable_newline(data, length, false)) -+ fwrite(data, length, 1, f); -+ else { - const char *c; - uint64_t le64; - -@@ -562,8 +564,7 @@ static int output_export( - le64 = htole64(length - (c - (const char*) data) - 1); - fwrite(&le64, sizeof(le64), 1, f); - fwrite(c + 1, length - (c - (const char*) data) - 1, 1, f); -- } else -- fwrite(data, length, 1, f); -+ } - - fputc('\n', f); - } -diff --git src/shared/utf8.c src/shared/utf8.c -index 0b524d8..c559c13 100644 ---- src/shared/utf8.c -+++ src/shared/utf8.c -@@ -136,7 +136,7 @@ int utf8_encoded_to_unichar(const char *str) { - return unichar; - } - --bool utf8_is_printable(const char* str, size_t length) { -+bool utf8_is_printable_newline(const char* str, size_t length, bool newline) { - const uint8_t *p; - - assert(str); -@@ -145,7 +145,8 @@ bool utf8_is_printable(const char* str, size_t length) { - int encoded_len = utf8_encoded_valid_unichar((const char *)p); - int val = utf8_encoded_to_unichar((const char*)p); - -- if (encoded_len < 0 || val < 0 || is_unicode_control(val)) -+ if (encoded_len < 0 || val < 0 || is_unicode_control(val) || -+ (!newline && val == '\n')) - return false; - - length -= encoded_len; -diff --git src/shared/utf8.h src/shared/utf8.h -index c0eb73a..c087995 100644 ---- src/shared/utf8.h -+++ src/shared/utf8.h -@@ -31,7 +31,10 @@ const char *utf8_is_valid(const char *s) _pure_; - char *ascii_is_valid(const char *s) _pure_; - char *utf8_escape_invalid(const char *s); - --bool utf8_is_printable(const char* str, size_t length) _pure_; -+bool utf8_is_printable_newline(const char* str, size_t length, bool newline) _pure_; -+_pure_ static inline bool utf8_is_printable(const char* str, size_t length) { -+ return utf8_is_printable_newline(str, length, true); -+} - - char *utf16_to_utf8(const void *s, size_t length); - --- -1.7.9.2 - diff --git a/0001-journalctl-do-not-output-reboot-markers-when-running.patch b/0001-journalctl-do-not-output-reboot-markers-when-running.patch deleted file mode 100644 index b2aed874..00000000 --- a/0001-journalctl-do-not-output-reboot-markers-when-running.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4bed248505da4da94d82078fe60326a374970e97 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 26 Sep 2014 10:49:55 -0400 -Subject: [PATCH] journalctl: do not output --reboot-- markers when running - non-interactively - -They are not legal in the export format. ---- - src/journal/journalctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journalctl.c src/journal/journalctl.c -index 47206d3..89a922c 100644 ---- src/journal/journalctl.c -+++ src/journal/journalctl.c -@@ -1939,7 +1939,7 @@ int main(int argc, char *argv[]) { - goto finish; - } - -- if (!arg_merge) { -+ if (!arg_merge && !arg_quiet) { - sd_id128_t boot_id; - - r = sd_journal_get_monotonic_usec(j, NULL, &boot_id); --- -1.7.9.2 - diff --git a/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch b/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch deleted file mode 100644 index 09bd55ef..00000000 --- a/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch +++ /dev/null @@ -1,36 +0,0 @@ -From d258d4967eb24122c2b1014d4e873f61b633f1d2 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Sun, 25 May 2014 11:57:22 +0200 -Subject: [PATCH] keymap: Add Lenovo Enhanced USB Keyboard - -https://bugs.freedesktop.org/show_bug.cgi?id=77234 ---- - hwdb/60-keyboard.hwdb | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 832c686..fe5b3ee 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -579,6 +579,18 @@ keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr* - KEYBOARD_KEY_f1=f21 - -+# enhanced USB keyboard -+keyboard:usb:v04B3p301B* -+ KEYBOARD_KEY_90001=prog1 # ThinkVantage -+ KEYBOARD_KEY_90002=screenlock -+ KEYBOARD_KEY_90003=file -+ KEYBOARD_KEY_90004=wordprocessor -+ KEYBOARD_KEY_90005=spreadsheet -+ KEYBOARD_KEY_90006=calc -+ KEYBOARD_KEY_90007=mail -+ KEYBOARD_KEY_90008=www -+ -+ - ########################################################### - # Logitech - ########################################################### --- -1.7.9.2 - diff --git a/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch b/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch deleted file mode 100644 index 67fb3061..00000000 --- a/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 71ed2d38711e345f22e2200bc7bb156aed98972a Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Wed, 12 Nov 2014 23:30:46 +0100 -Subject: [PATCH] keymap: Add support for IBM ThinkPad X41 Tablet - -Scancode taken from: -http://www.thinkwiki.org/wiki/Tablet_Hardware_Buttons#Linux_Support - -William Jon McCann provided the DMI match. IBM seems to have -swapped the version and model of the system: - Manufacturer: IBM - Product Name: 18666TU - Version: ThinkPad X41 Tablet ---- - hwdb/60-keyboard.hwdb | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index d2ca965..56a4009 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -594,6 +594,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* - KEYBOARD_KEY_6f=down # down on d-pad - KEYBOARD_KEY_69=enter # enter on d-pad - -+# ThinkPad X41 Tablet -+keyboard:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:pvr* -+ KEYBOARD_KEY_6c=direction # rotate -+ KEYBOARD_KEY_68=f13 # toolbox -+ KEYBOARD_KEY_6b=esc # escape -+ KEYBOARD_KEY_69=enter # enter on d-pad -+ - # IdeaPad - keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* - KEYBOARD_KEY_42=f23 --- -1.7.9.2 - diff --git a/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch b/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch deleted file mode 100644 index 29bbbcd1..00000000 --- a/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a046659f8551e1c8f79ba4b66472444e285255df Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 7 Oct 2014 11:20:04 +0200 -Subject: [PATCH] keymap: Fix touchpad toggle on Toshiba Satellite P75-A7200 - -Just like everywhere else we use KEY_F21 instead of KEY_TOUCHPAD_TOGGLE for X -friendliness. ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 8a1baa7..1fea32a 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -1094,7 +1094,7 @@ keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75 - KEYBOARD_KEY_13c=brightnessdown - KEYBOARD_KEY_13d=brightnessup - KEYBOARD_KEY_13e=switchvideomode -- KEYBOARD_KEY_13f=touchpad_toggle -+ KEYBOARD_KEY_13f=f21 # Touchpad toggle - KEYBOARD_KEY_9e=wlan - - ########################################################### --- -1.7.9.2 - diff --git a/0001-let-systemctl-completion-ignore-at-names.patch b/0001-let-systemctl-completion-ignore-at-names.patch index ea89c56a..4763dcaf 100644 --- a/0001-let-systemctl-completion-ignore-at-names.patch +++ b/0001-let-systemctl-completion-ignore-at-names.patch @@ -1,5 +1,5 @@ ---- systemd-210/shell-completion/bash/systemctl -+++ systemd-210/shell-completion/bash/systemctl 2014-08-20 15:01:04.502736981 +0000 +--- systemd-210/shell-completion/bash/systemctl.in ++++ systemd-210/shell-completion/bash/systemctl.in 2014-08-20 15:01:04.502736981 +0000 @@ -43,7 +43,7 @@ __filter_units_by_property () { local units=("$@") local props diff --git a/0001-login-fix-memory-leak-on-DropController.patch b/0001-login-fix-memory-leak-on-DropController.patch deleted file mode 100644 index ba5ed744..00000000 --- a/0001-login-fix-memory-leak-on-DropController.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 60240797a4ce464ec7a0537ccbec4c83f599251c Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Fri, 22 Aug 2014 14:57:11 +0200 -Subject: [PATCH] login: fix memory-leak on DropController() - -Our bus-name watch helpers only remove a bus-name if it's not a -controller, anymore. If we call manager_drop_busname() before -unregistering the controller, the busname will not be dropped. Therefore, -first drop the controller, then drop the bus-name. ---- - src/login/logind-session.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 136bbce..0c6e425 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -1061,11 +1061,13 @@ bool session_is_controller(Session *s, const char *sender) { - - static void session_swap_controller(Session *s, char *name) { - SessionDevice *sd; -+ char *c; - - if (s->controller) { -- manager_drop_busname(s->manager, s->controller); -- free(s->controller); -+ c = s->controller; - s->controller = NULL; -+ manager_drop_busname(s->manager, c); -+ free(c); - - /* Drop all devices as they're now unused. Do that after the - * controller is released to avoid sending out useles --- -1.7.9.2 - diff --git a/0001-login-fix-pos-array-allocation.patch b/0001-login-fix-pos-array-allocation.patch deleted file mode 100644 index 2549d220..00000000 --- a/0001-login-fix-pos-array-allocation.patch +++ /dev/null @@ -1,52 +0,0 @@ -From a1937e679f76758635d295287398abe526de2522 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 25 Feb 2014 12:20:25 +0100 -Subject: [PATCH] login: fix pos-array allocation - -GREEDY_REALLOC takes a pointer to the real size, not the array-width as -argument. Therefore, our array is currently way to small to keep the seat -positions. - -Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store -the array-width instead of array-size. ---- - src/login/logind-seat.c | 2 +- - src/shared/util.h | 9 +++++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git src/login/logind-seat.c src/login/logind-seat.c -index 631be5f..36ec7ed 100644 ---- src/login/logind-seat.c -+++ src/login/logind-seat.c -@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { - if (seat_has_vts(s)) - pos = session->vtnr; - -- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) -+ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) - return; - - seat_evict_position(s, session); -diff --git src/shared/util.h src/shared/util.h -index 9913fce..78b1444 100644 ---- src/shared/util.h -+++ src/shared/util.h -@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); - #define GREEDY_REALLOC0(array, allocated, need) \ - greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) - -+#define GREEDY_REALLOC0_T(array, count, need) \ -+ ({ \ -+ size_t _size = (count) * sizeof((array)[0]); \ -+ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ -+ if (_ptr) \ -+ (count) = _size / sizeof((array)[0]); \ -+ _ptr; \ -+ }) -+ - static inline void _reset_errno_(int *saved_errno) { - errno = *saved_errno; - } --- -1.7.9.2 - diff --git a/0001-login-pause-devices-before-acknowledging-VT-switches.patch b/0001-login-pause-devices-before-acknowledging-VT-switches.patch deleted file mode 100644 index 0a335de2..00000000 --- a/0001-login-pause-devices-before-acknowledging-VT-switches.patch +++ /dev/null @@ -1,82 +0,0 @@ -Based on 2ec3ff668ff03410e94cfef8e3ee9384a8222211 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Fri, 19 Sep 2014 13:26:39 +0200 -Subject: [PATCH] login: pause devices before acknowledging VT switches - -If a session controller does not need synchronous VT switches, we allow -them to pass VT control to logind, which acknowledges all VT switches -unconditionally. This works fine with all sessions using the dbus API, -but causes out-of-sync device use if we switch to legacy sessions that -are notified via VT signals. Those are processed before logind notices -the session-switch via sysfs. Therefore, leaving the old session still -active for a short amount of time. - -This, in fact, may cause the legacy session to prepare graphics devices -before the old session was deactivated, and thus, maybe causing the old -session to interfer with graphics device usage. - -Fix this by releasing devices immediately before acknowledging VT -switches. This way, sessions without VT handlers are required to support -async session switching (which they do in that case, anyway). ---- - src/login/logind-session.c | 21 +++++++++++++++++++++ - src/login/logind-session.h | 1 + - src/login/logind.c | 4 ++-- - 3 files changed, 24 insertions(+), 2 deletions(-) - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-09-24 07:40:45.786639180 +0000 -@@ -1040,6 +1040,27 @@ void session_restore_vt(Session *s) { - s->vtfd = -1; - } - -+void session_leave_vt(Session *s) { -+ assert(s); -+ -+ /* This is called whenever we get a VT-switch signal from the kernel. -+ * We acknowledge all of them unconditionally. Note that session are -+ * free to overwrite those handlers and we only register them for -+ * sessions with controllers. Legacy sessions are not affected. -+ * However, if we switch from a non-legacy to a legacy session, we must -+ * make sure to pause all device before acknowledging the switch. We -+ * process the real switch only after we are notified via sysfs, so the -+ * legacy session might have already started using the devices. If we -+ * don't pause the devices before the switch, we might confuse the -+ * session we switch to. */ -+ -+ if (s->vtfd < 0) -+ return; -+ -+ session_device_pause_all(s); -+ ioctl(s->vtfd, VT_RELDISP, 1); -+} -+ - bool session_is_controller(Session *s, const char *sender) { - assert(s); - ---- src/login/logind-session.h -+++ src/login/logind-session.h 2014-09-24 07:41:50.290236363 +0000 -@@ -173,6 +173,7 @@ KillWho kill_who_from_string(const char - - int session_mute_vt(Session *s); - void session_restore_vt(Session *s); -+void session_leave_vt(Session *s); - - bool session_is_controller(Session *s, const char *sender); - int session_set_controller(Session *s, const char *sender, bool force); ---- src/login/logind.c -+++ src/login/logind.c 2014-09-24 00:00:00.000000000 +0000 -@@ -743,11 +743,11 @@ static int manager_vt_switch(sd_event_so - } - - if (active->vtfd >= 0) { -- ioctl(active->vtfd, VT_RELDISP, 1); -+ session_leave_vt(active); - } else { - LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { - if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { -- ioctl(iter->vtfd, VT_RELDISP, 1); -+ session_leave_vt(iter); - break; - } - } diff --git a/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch b/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch deleted file mode 100644 index ba00c036..00000000 --- a/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch +++ /dev/null @@ -1,60 +0,0 @@ -From f6ba8671d83f9fce9a00045d8fa399a1c07ba7fc Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Wed, 5 Nov 2014 08:30:52 -0500 -Subject: [PATCH] login: rerun vconsole-setup when switching from vgacon to - fbcon - -The initialization performed by systemd-vconsole-setup is reset -when changing console drivers (say from vgacon to fbcon), so we -need to run it in that case. - -See -http://lists.freedesktop.org/archives/systemd-devel/2014-October/023919.html -http://lists.freedesktop.org/archives/systemd-devel/2014-October/024423.html -http://lists.freedesktop.org/archives/systemd-devel/2014-November/024881.html - -This commit adds a udev rule to make systemd-vconsole-setup get run when -the fbcon device becomes available. - -(david: moved into new file 90-vconsole.rules instead of 71-seats.rules; - build-failures are on me, not on Ray) ---- - Makefile.am | 3 +++ - src/vconsole/90-vconsole.rules | 11 +++++++++++ - 2 files changed, 14 insertions(+) - create mode 100644 src/vconsole/90-vconsole.rules - -diff --git Makefile.am Makefile.am -index 3686103..f614b86 100644 ---- Makefile.am -+++ Makefile.am -@@ -4439,6 +4439,9 @@ rootlibexec_PROGRAMS += \ - nodist_systemunit_DATA += \ - units/systemd-vconsole-setup.service - -+dist_udevrules_DATA += \ -+ src/vconsole/90-vconsole.rules -+ - SYSINIT_TARGET_WANTS += \ - systemd-vconsole-setup.service - endif -diff --git src/vconsole/90-vconsole.rules src/vconsole/90-vconsole.rules -new file mode 100644 -index 0000000..bf6a9ef ---- /dev/null -+++ src/vconsole/90-vconsole.rules -@@ -0,0 +1,11 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+ -+# Kernel resets vconsole state when changing console drivers so run -+# systemd-vconsole-setup when fbcon loads -+ -+ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="/usr/lib/systemd/systemd-vconsole-setup" --- -1.7.9.2 - diff --git a/0001-login-simplify-controller-handling.patch b/0001-login-simplify-controller-handling.patch deleted file mode 100644 index 0ca9ec52..00000000 --- a/0001-login-simplify-controller-handling.patch +++ /dev/null @@ -1,118 +0,0 @@ -Based on b12e56156e5f363ebb8dc4ea5c10f5fd0665dc9d Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Mon, 1 Sep 2014 14:04:44 +0200 -Subject: [PATCH] login: simplify controller handling - -Simplify the way we handler session-controllers and fix several -shortcomings: - * send ReleaseDevice() signals on forced session takeover - * fix mem-leaks for busnames in case VT preparation fails (non-critical) - * avoid passing pre-allocated names to helpers ---- - src/login/logind-session.c | 55 ++++++++++++++++++++++---------------------- - 1 file changed, 28 insertions(+), 27 deletions(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 58453b5..10a43a4 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -1059,32 +1059,30 @@ bool session_is_controller(Session *s, const char *sender) { - return streq_ptr(s->controller, sender); - } - --static void session_swap_controller(Session *s, char *name) { -+static void session_release_controller(Session *s, bool notify) { -+ _cleanup_free_ char *name = NULL; - SessionDevice *sd; -- char *c; - -- if (s->controller) { -- c = s->controller; -- s->controller = NULL; -- manager_drop_busname(s->manager, c); -- free(c); -+ if (!s->controller) -+ return; - -- /* Drop all devices as they're now unused. Do that after the -- * controller is released to avoid sending out useles -- * dbus signals. */ -- while ((sd = hashmap_first(s->devices))) -- session_device_free(sd); -+ name = s->controller; - -- if (!name) -- session_restore_vt(s); -- } -+ /* By resetting the controller before releasing the devices, we won't -+ * send notification signals. This avoids sending useless notifications -+ * if the controller is released on disconnects. */ -+ if (!notify) -+ s->controller = NULL; - -- s->controller = name; -- session_save(s); -+ while ((sd = hashmap_first(s->devices))) -+ session_device_free(sd); -+ -+ s->controller = NULL; -+ manager_drop_busname(s->manager, name); - } - - int session_set_controller(Session *s, const char *sender, bool force) { -- char *t; -+ _cleanup_free_ char *name = NULL; - int r; - - assert(s); -@@ -1095,15 +1093,13 @@ int session_set_controller(Session *s, const char *sender, bool force) { - if (s->controller && !force) - return -EBUSY; - -- t = strdup(sender); -- if (!t) -+ name = strdup(sender); -+ if (!name) - return -ENOMEM; - -- r = manager_watch_busname(s->manager, sender); -- if (r) { -- free(t); -+ r = manager_watch_busname(s->manager, name); -+ if (r) - return r; -- } - - /* When setting a session controller, we forcibly mute the VT and set - * it into graphics-mode. Applications can override that by changing -@@ -1115,11 +1111,14 @@ int session_set_controller(Session *s, const char *sender, bool force) { - * or reset the VT in case it crashed/exited, too. */ - r = session_mute_vt(s); - if (r < 0) { -- free(t); -+ manager_drop_busname(s->manager, name); - return r; - } - -- session_swap_controller(s, t); -+ session_release_controller(s, true); -+ s->controller = name; -+ name = NULL; -+ session_save(s); - - return 0; - } -@@ -1130,7 +1129,9 @@ void session_drop_controller(Session *s) { - if (!s->controller) - return; - -- session_swap_controller(s, NULL); -+ session_release_controller(s, false); -+ session_save(s); -+ session_restore_vt(s); - } - - static const char* const session_state_table[_SESSION_STATE_MAX] = { --- -1.7.9.2 - diff --git a/0001-logind-add-support-for-Triton2-Power-Button.patch b/0001-logind-add-support-for-Triton2-Power-Button.patch deleted file mode 100644 index dbd0047c..00000000 --- a/0001-logind-add-support-for-Triton2-Power-Button.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 58d4aabedd415a735efeb8c2608ee73618c07f78 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 22 Sep 2014 22:14:39 -0400 -Subject: [PATCH] logind: add support for Triton2 Power Button - -https://bugs.freedesktop.org/show_bug.cgi?id=84201 ---- - src/login/70-power-switch.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules -index 36fb827..a6997f7 100644 ---- src/login/70-power-switch.rules -+++ src/login/70-power-switch.rules -@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end" - - SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" -+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" - - LABEL="power_switch_end" --- -1.7.9.2 - diff --git a/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch b/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch deleted file mode 100644 index 269adaba..00000000 --- a/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 154034270c4643b7cfe61c0be1676d78bb1b7b07 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 8 Jul 2014 12:56:55 +0200 -Subject: [PATCH] logind: allow switching to unused VTs via SwitchTo() - -If compositors use the new SwitchTo() logic to map F1-F12, we should allow -them to switch to unregistered VTs, too. Otherwise, the auto-spawn logic -of gettys won't trigger. - -Reported-by: Jasper St. Pierre -Signed-off-by: David Herrmann ---- - src/login/logind-seat.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git src/login/logind-seat.c src/login/logind-seat.c -index 3114de8..9992195 100644 ---- src/login/logind-seat.c -+++ src/login/logind-seat.c -@@ -275,8 +275,13 @@ int seat_switch_to(Seat *s, unsigned int num) { - if (!num) - return -EINVAL; - -- if (num >= s->position_count || !s->positions[num]) -+ if (num >= s->position_count || !s->positions[num]) { -+ /* allow switching to unused VTs to trigger auto-activate */ -+ if (seat_has_vts(s) && num < 64) -+ return chvt(num); -+ - return -EINVAL; -+ } - - return session_activate(s->positions[num]); - } --- -1.7.9.2 - diff --git a/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch b/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch deleted file mode 100644 index 382d4bf1..00000000 --- a/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 6a79c58603ea816a1b4fa1520397b4e138bc1ca0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 19:30:16 +0100 -Subject: [PATCH] logind: ignore lid switch if more than 1 display is - connected - -Previously we expected the desktop environment to take an inhibitor -lock, but this opened a race on boot-up where logind might already be -running but no DE is active. - -Hence, let's move checking for additional displays into logind. This -also opens up this logic for other DEs, given that only GNOME -implemented the inhibitor logic so far. ---- - man/logind.conf.xml | 14 +++++++----- - src/login/logind-action.c | 8 +++++++ - src/login/logind-core.c | 55 +++++++++++++++++++++++++++++++++++++++++++-- - src/login/logind.h | 1 + - 4 files changed, 71 insertions(+), 7 deletions(-) - -diff --git man/logind.conf.xml man/logind.conf.xml -index 54cc379..7673201 100644 ---- man/logind.conf.xml -+++ man/logind.conf.xml -@@ -242,10 +242,10 @@ - ignore, logind will - never handle these keys. If - lock, all running -- sessions will be screen-locked; otherwise, -- the specified action -- will be taken in the respective -- event. Only input devices with the -+ sessions will be screen-locked; -+ otherwise, the specified action will -+ be taken in the respective event. Only -+ input devices with the - power-switch udev - tag will be watched for key/lid switch - events. HandlePowerKey= -@@ -257,7 +257,11 @@ - default to suspend. - HandleHibernateKey= - defaults to -- hibernate. -+ hibernate. Note -+ that the lid switch is ignored if the -+ system is inserted in a docking -+ station, or if more than one display -+ is connected. - - - -diff --git src/login/logind-action.c src/login/logind-action.c -index c04f210..da5a830 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -72,10 +72,18 @@ int manager_handle_action( - - /* If we are docked don't react to lid closing */ - if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { -+ int n; -+ - if (manager_is_docked(m)) { - log_debug("Ignoring lid switch request, system is docked."); - return 0; - } -+ -+ n = manager_count_displays(m); -+ if (n != 1) { -+ log_debug("Ignoring lid switch request, %s displays connected."); -+ return 0; -+ } - } - - /* If the key handling is inhibited, don't do anything */ -diff --git src/login/logind-core.c src/login/logind-core.c -index e4e593f..b8d03c3 100644 ---- src/login/logind-core.c -+++ src/login/logind-core.c -@@ -32,6 +32,7 @@ - #include "audit.h" - #include "bus-util.h" - #include "bus-error.h" -+#include "udev-util.h" - #include "logind.h" - - int manager_add_device(Manager *m, const char *sysfs, bool master, Device **_device) { -@@ -276,9 +277,11 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) { - return 0; - } - -- /* ignore non-master devices for unknown seats */ -+ seat = hashmap_get(m->seats, sn); - master = udev_device_has_tag(d, "master-of-seat"); -- if (!master && !(seat = hashmap_get(m->seats, sn))) -+ -+ /* Ignore non-master devices for unknown seats */ -+ if (!master && !seat) - return 0; - - r = manager_add_device(m, udev_device_get_syspath(d), master, &device); -@@ -514,3 +517,51 @@ bool manager_is_docked(Manager *m) { - - return false; - } -+ -+int manager_count_displays(Manager *m) { -+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; -+ struct udev_list_entry *item = NULL, *first = NULL; -+ int r; -+ int n = 0; -+ -+ e = udev_enumerate_new(m->udev); -+ if (!e) -+ return -ENOMEM; -+ -+ r = udev_enumerate_add_match_subsystem(e, "drm"); -+ if (r < 0) -+ return r; -+ -+ r = udev_enumerate_scan_devices(e); -+ if (r < 0) -+ return r; -+ -+ first = udev_enumerate_get_list_entry(e); -+ udev_list_entry_foreach(item, first) { -+ _cleanup_udev_device_unref_ struct udev_device *d = NULL; -+ struct udev_device *p; -+ const char *status; -+ -+ d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item)); -+ if (!d) -+ return -ENOMEM; -+ -+ p = udev_device_get_parent(d); -+ if (!p) -+ return -ENOMEM; -+ -+ /* If the parent shares the same subsystem as the -+ * device we are looking at then it is a connector, -+ * which is what we are interested in. */ -+ if (!streq_ptr(udev_device_get_subsystem(p), "drm")) -+ continue; -+ -+ /* We count any connector which is not explicitly -+ * "disconnected" as connected. */ -+ status = udev_device_get_sysattr_value(d, "status"); -+ if (!streq_ptr(status, "disconnected")) -+ n++; -+ } -+ -+ return n; -+} -diff --git src/login/logind.h src/login/logind.h -index 0344acc..74d6641 100644 ---- src/login/logind.h -+++ src/login/logind.h -@@ -149,6 +149,7 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); - int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); - - bool manager_is_docked(Manager *m); -+int manager_count_displays(Manager *m); - - extern const sd_bus_vtable manager_vtable[]; - --- -1.7.9.2 - diff --git a/0001-machine-don-t-return-uninitialized-variable.patch b/0001-machine-don-t-return-uninitialized-variable.patch deleted file mode 100644 index 5c1bfd05..00000000 --- a/0001-machine-don-t-return-uninitialized-variable.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f14aa1f1b2e4e99ee20393871b5f64f1378ed6c3 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Sun, 6 Jul 2014 14:12:28 +0200 -Subject: [PATCH] machine: don't return uninitialized variable - -Repotred by Ronny Chevalier ---- - src/machine/machine.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/machine/machine.c src/machine/machine.c -index c0fa1b2..cf38e3f 100644 ---- src/machine/machine.c -+++ src/machine/machine.c -@@ -371,7 +371,7 @@ static int machine_stop_scope(Machine *m) { - free(m->scope_job); - m->scope_job = job; - -- return r; -+ return 0; - } - - int machine_stop(Machine *m) { --- -1.7.9.2 - diff --git a/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch b/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch deleted file mode 100644 index df04192f..00000000 --- a/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 1f97091d3cb0887c264176b47b0a86c269acf0b5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 27 Jun 2014 18:34:37 +0200 -Subject: [PATCH] main: uid_to_name() might fail due to OOM, protect against - that - ---- - src/core/main.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-07-01 12:25:17.906235000 +0000 -@@ -1525,9 +1525,10 @@ int main(int argc, char *argv[]) { - log_info("Running in initial RAM disk."); - - } else { -- _cleanup_free_ char *t = uid_to_name(getuid()); -- log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", -- getuid(), t); -+ _cleanup_free_ char *t; -+ -+ t = uid_to_name(getuid()); -+ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", getuid(), strna(t)); - } - - if (arg_running_as == SYSTEMD_SYSTEM && !skip_setup) { diff --git a/0001-make-209-working-on-older-dist.patch b/0001-make-209-working-on-older-dist.patch deleted file mode 100644 index 63fbd03b..00000000 --- a/0001-make-209-working-on-older-dist.patch +++ /dev/null @@ -1,79 +0,0 @@ ---- systemd-209/units/kmod-static-nodes.service.in -+++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 -@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu - [Service] - Type=oneshot - RemainAfterExit=yes -+ExecStartPre=@MKDIR_P@ /run/tmpfiles.d - ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf ---- systemd-209/configure.ac -+++ systemd-209/configure.ac 2014-02-28 17:14:14.866235643 +0000 -@@ -300,9 +300,9 @@ AC_ARG_ENABLE(kmod, AS_HELP_STRING([--di - if test "x$enable_kmod" != "xno"; then - PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no) - if test "x$have_kmod" = "xyes"; then -- PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ], -+ PKG_CHECK_MODULES(KMOD, [ libkmod >= 14 ], - [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])], -- AC_MSG_ERROR([*** kmod version >= 15 not found])) -+ AC_MSG_ERROR([*** kmod version >= 14 not found])) - fi - if test "x$have_kmod" = xno -a "x$enable_kmod" = xyes; then - AC_MSG_ERROR([*** kmod support requested, but libraries not found]) ---- systemd-209/configure -+++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 -@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then - pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 -- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 -+ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` -+ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then - pkg_cv_KMOD_LIBS="$KMOD_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 -- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 -+ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` -+ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -16042,18 +16042,18 @@ else - _pkg_short_errors_supported=no - fi - if test $_pkg_short_errors_supported = yes; then -- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` -+ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` - else -- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` -+ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$KMOD_PKG_ERRORS" >&5 - -- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 -+ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 - elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } -- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 -+ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 - else - KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS - KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/0001-make-fortify-happy-with-ppoll.patch b/0001-make-fortify-happy-with-ppoll.patch deleted file mode 100644 index ed27a725..00000000 --- a/0001-make-fortify-happy-with-ppoll.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- systemd-209/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-209/src/libsystemd/sd-bus/sd-bus.c 2014-02-28 11:08:21.354235373 +0000 -@@ -2548,7 +2548,7 @@ static int bus_poll(sd_bus *bus, bool ne - n = 2; - } - -- r = ppoll(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); -+ r = __ppoll_alias(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); - if (r < 0) - return -errno; - ---- systemd-209/src/core/hostname-setup.c -+++ systemd-209/src/core/hostname-setup.c 2014-02-28 11:14:51.594832792 +0000 -@@ -50,8 +50,8 @@ static int read_and_strip_hostname(const - } - - /* strip any leftover of a domain name */ -- if (domain = strchr(s, '.')) { -- *domain = NULL; -+ if ((domain = strchr(s, '.'))) { -+ *domain = '\0'; - } - - *hn = s; ---- systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-02-28 11:41:42.254735820 +0000 -@@ -142,7 +142,7 @@ static int ask_password_plymouth( - goto finish; - } - -- if ((j = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { -+ if ((j = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { - - if (errno == EINTR) - continue; -@@ -595,7 +595,7 @@ static int watch_passwords(void) { - if ((r = show_passwords()) < 0) - log_error("Failed to show password: %s", strerror(-r)); - -- if (poll(pollfd, _FD_MAX, -1) < 0) { -+ if (__poll_alias(pollfd, _FD_MAX, -1) < 0) { - - if (errno == EINTR) - continue; ---- systemd-209/src/shared/ask-password-api.c -+++ systemd-209/src/shared/ask-password-api.c 2014-02-28 11:47:21.754234675 +0000 -@@ -138,7 +138,7 @@ int ask_password_tty( - goto finish; - } - -- if ((k = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { -+ if ((k = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { - - if (errno == EINTR) - continue; diff --git a/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch b/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch deleted file mode 100644 index f71e16bd..00000000 --- a/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch +++ /dev/null @@ -1,79 +0,0 @@ -Based on 4dffec1459f50ac9f8f67ccfcb79836b4ed5a50e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 13:44:45 +0200 -Subject: [PATCH] manager: Linux on hppa has fewer rtsigs, hence avoid using - the higher ones there - -https://bugs.freedesktop.org/show_bug.cgi?id=84931 ---- - src/core/manager.c | 29 +++++++++++++++++++++++++++-- - 1 file changed, 27 insertions(+), 2 deletions(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-10-29 14:02:28.635837997 +0000 -@@ -340,11 +340,14 @@ static int manager_setup_signals(Manager - - assert(m); - -- /* We are not interested in SIGSTOP and friends. */ - assert_se(sigaction(SIGCHLD, &sa, NULL) == 0); - -- assert_se(sigemptyset(&mask) == 0); -+ /* We make liberal use of realtime signals here. On -+ * Linux/glibc we have 30 of them (with the exception of Linux -+ * on hppa, see below), between SIGRTMIN+0 ... SIGRTMIN+30 -+ * (aka SIGRTMAX). */ - -+ assert_se(sigemptyset(&mask) == 0); - sigset_add_many(&mask, - SIGCHLD, /* Child died */ - SIGTERM, /* Reexecute daemon */ -@@ -354,6 +357,7 @@ static int manager_setup_signals(Manager - SIGINT, /* Kernel sends us this on control-alt-del */ - SIGWINCH, /* Kernel sends us this on kbrequest (alt-arrowup) */ - SIGPWR, /* Some kernel drivers and upsd send us this on power failure */ -+ - SIGRTMIN+0, /* systemd: start default.target */ - SIGRTMIN+1, /* systemd: isolate rescue.target */ - SIGRTMIN+2, /* systemd: isolate emergency.target */ -@@ -361,19 +365,40 @@ static int manager_setup_signals(Manager - SIGRTMIN+4, /* systemd: start poweroff.target */ - SIGRTMIN+5, /* systemd: start reboot.target */ - SIGRTMIN+6, /* systemd: start kexec.target */ -+ -+ /* ... space for more special targets ... */ -+ - SIGRTMIN+13, /* systemd: Immediate halt */ - SIGRTMIN+14, /* systemd: Immediate poweroff */ - SIGRTMIN+15, /* systemd: Immediate reboot */ - SIGRTMIN+16, /* systemd: Immediate kexec */ -+ -+ /* ... space for more immediate system state changes ... */ -+ - SIGRTMIN+20, /* systemd: enable status messages */ - SIGRTMIN+21, /* systemd: disable status messages */ - SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */ - SIGRTMIN+23, /* systemd: set log level to LOG_INFO */ - SIGRTMIN+24, /* systemd: Immediate exit (--user only) */ -+ -+ /* .. one free signal here ... */ -+ -+#if !defined(__hppa64__) && !defined(__hppa__) -+ /* Apparently Linux on hppa has fewer RT -+ * signals (SIGRTMAX is SIGRTMIN+25 there), -+ * hence let's not try to make use of them -+ * here. Since these commands are accessible -+ * by different means and only really a safety -+ * net, the missing functionality on hppa -+ * shouldn't matter. */ -+ - SIGRTMIN+26, /* systemd: set log target to journal-or-kmsg */ - SIGRTMIN+27, /* systemd: set log target to console */ - SIGRTMIN+28, /* systemd: set log target to kmsg */ - SIGRTMIN+29, /* systemd: set log target to syslog-or-kmsg */ -+ -+ /* ... one free signal here SIGRTMIN+30 ... */ -+#endif - -1); - assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0); - diff --git a/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch b/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch deleted file mode 100644 index 7d5b066f..00000000 --- a/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch +++ /dev/null @@ -1,45 +0,0 @@ -From e6a4a517befe559adf6d1dbbadf425c3538849c9 Mon Sep 17 00:00:00 2001 -From: Djalal Harouni -Date: Fri, 11 Apr 2014 01:45:52 +0100 -Subject: [PATCH] nspawn: allow to bind mount journal on top of a non empty - container journal dentry - -Currently if nspawn was called with --link-journal=host or ---link-journal=auto and the right /var/log/journal/machine-id/ exists -then the bind mount the subdirectory into the container might fail due -to the ~/mycontainer/var/log/journal/machine-id/ of the container not -being empty. - -There is no reason to check if the container journal subdir is empty -since there will be a bind mount on top of it. The user asked for a bind -mount so give it. - -Note: a next call with --link-journal=guest may fail due to the -/var/log/journal/machine-id/ on the host not being empty. - -https://bugs.freedesktop.org/show_bug.cgi?id=76193 - -Reported-by: Tobias Hunger ---- - src/nspawn/nspawn.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 9d9238f..ef84664 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1143,11 +1143,6 @@ static int setup_journal(const char *directory) { - } else if (access(p, F_OK) < 0) - return 0; - -- if (dir_is_empty(q) == 0) { -- log_error("%s not empty.", q); -- return -ENOTEMPTY; -- } -- - r = mkdir_p(q, 0755); - if (r < 0) { - log_error("Failed to create %s: %m", q); --- -1.7.9.2 - diff --git a/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch b/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch deleted file mode 100644 index ee7cea2a..00000000 --- a/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on c00524c9cc7fb498c7244350e25823b8352f078c Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 19 Sep 2014 23:02:00 +0200 -Subject: [PATCH] nspawn: don't try to create veth link with too long ifname - -Reported by: James Lott ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-09-23 15:33:06.766236272 +0000 -@@ -1383,7 +1383,7 @@ static int setup_veth(pid_t pid, char if - - /* Use two different interface name prefixes depending whether - * we are in bridge mode or not. */ -- snprintf(iface_name, IFNAMSIZ, "%s-%s", -+ snprintf(iface_name, IFNAMSIZ - 1, "%s-%s", - arg_network_bridge ? "vb" : "ve", arg_machine); - - r = sd_rtnl_open(&rtnl, 0); diff --git a/0001-nspawn-fix-network-interface.patch b/0001-nspawn-fix-network-interface.patch deleted file mode 100644 index 6e9fce7c..00000000 --- a/0001-nspawn-fix-network-interface.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on 3125b3ef5db70d45882c7d6f617705802c5f939e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 28 Aug 2014 12:15:51 +0200 -Subject: [PATCH] nspawn: fix --network-interface - -Use SETLINK when modifying an existing link. ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-08-29 14:11:25.866235309 +0000 -@@ -1568,7 +1568,7 @@ static int move_network_interfaces(pid_t - return -EBUSY; - } - -- r = sd_rtnl_message_new_link(rtnl, &m, RTM_NEWLINK, ifi); -+ r = sd_rtnl_message_new_link(rtnl, &m, RTM_SETLINK, ifi); - if (r < 0) { - log_error("Failed to allocate netlink message: %s", strerror(-r)); - return r; diff --git a/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch b/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch deleted file mode 100644 index 4378b91f..00000000 --- a/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch +++ /dev/null @@ -1,31 +0,0 @@ -Based on 4212a3375e03fd12cb407b34cab59dbe4ed9f4eb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 3 Aug 2014 01:28:21 -0400 -Subject: [PATCH] nspawn: fix truncation of machine names in interface names - -Based on patch by Michael Marineau : - -When deriving the network interface name from machine name strncpy was -not properly null terminating the string and the maximum string size as -returned by strlen() is actually IFNAMSIZ-1, not IFNAMSIZ. ---- - src/nspawn/nspawn.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-08-22 10:18:20.390235611 +0000 -@@ -1383,12 +1383,8 @@ static int setup_veth(pid_t pid, char if - - /* Use two different interface name prefixes depending whether - * we are in bridge mode or not. */ -- if (arg_network_bridge) -- memcpy(iface_name, "vb-", 3); -- else -- memcpy(iface_name, "ve-", 3); -- -- strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3); -+ snprintf(iface_name, IFNAMSIZ, "%s-%s", -+ arg_network_bridge ? "vb" : "ve", arg_machine); - - r = sd_rtnl_open(&rtnl, 0); - if (r < 0) { diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch index 4dcfb70f..291de476 100644 --- a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -8,11 +8,11 @@ is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. This belongs to BNC#852015 and also to BNC#855160 --- - pam-module.c | 19 +++++++++++++++++++ + pam_systemd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---- systemd-209/src/login/pam-module.c -+++ systemd-209/src/login/pam-module.c 2014-02-26 14:31:30.158235525 +0000 +--- systemd-209/src/login/pam_systemd.c ++++ systemd-209/src/login/pam_systemd.c 2014-02-26 14:31:30.158235525 +0000 @@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); if (r != PAM_SUCCESS) diff --git a/0001-parse_uid-return-ENXIO-for-1-uids.patch b/0001-parse_uid-return-ENXIO-for-1-uids.patch deleted file mode 100644 index bc23d1a9..00000000 --- a/0001-parse_uid-return-ENXIO-for-1-uids.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f841a154efbb3162d2a732936f031ac7a6b0d4cf Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 1 Jul 2014 16:00:05 +0200 -Subject: [PATCH] parse_uid: return -ENXIO for -1 uids - ---- - src/shared/audit.c | 3 --- - src/shared/util.c | 4 ++-- - 2 files changed, 2 insertions(+), 5 deletions(-) - -diff --git src/shared/audit.c src/shared/audit.c -index 5466447..f101050 100644 ---- src/shared/audit.c -+++ src/shared/audit.c -@@ -77,9 +77,6 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) { - if (r < 0) - return r; - -- if (u == (uid_t) -1) -- return -ENXIO; -- - *uid = (uid_t) u; - return 0; - } -diff --git src/shared/util.c src/shared/util.c -index e75f6c9..9b5a47a 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -282,11 +282,11 @@ int parse_uid(const char *s, uid_t* ret_uid) { - - /* Some libc APIs use (uid_t) -1 as special placeholder */ - if (uid == (uid_t) 0xFFFFFFFF) -- return -EINVAL; -+ return -ENXIO; - - /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ - if (uid == (uid_t) 0xFFFF) -- return -EINVAL; -+ return -ENXIO; - - *ret_uid = uid; - return 0; --- -1.7.9.2 - diff --git a/0001-po-add-Ukrainian-translation.patch b/0001-po-add-Ukrainian-translation.patch deleted file mode 100644 index b7dba0ee..00000000 --- a/0001-po-add-Ukrainian-translation.patch +++ /dev/null @@ -1,406 +0,0 @@ -From 260b6323cc2aebe722d5b8e43fa63a502f906774 Mon Sep 17 00:00:00 2001 -From: Daniel Korostil -Date: Thu, 17 Jul 2014 02:07:29 +0300 -Subject: [PATCH] po: add Ukrainian translation - ---- - po/LINGUAS | 1 + - po/uk.po | 377 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 378 insertions(+) - create mode 100644 po/uk.po - -diff --git po/LINGUAS po/LINGUAS -index 2cb0f30..f214ece 100644 ---- po/LINGUAS -+++ po/LINGUAS -@@ -4,3 +4,4 @@ fr - it - pl - ru -+uk -diff --git po/uk.po po/uk.po -new file mode 100644 -index 0000000..7a5212a ---- /dev/null -+++ po/uk.po -@@ -0,0 +1,377 @@ -+# Ukrainian translation for systemd. -+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER -+# This file is distributed under the same license as the systemd package. -+# Eugene Melnik , 2014. -+# Daniel Korostil , 2014. -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd master\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" -+"temd&keywords=I18N+L10N&component=general\n" -+"POT-Creation-Date: 2014-06-06 22:16+0000\n" -+"PO-Revision-Date: 2014-07-16 19:13+0300\n" -+"Last-Translator: Daniel Korostil \n" -+"Language-Team: linux.org.ua\n" -+"Language: uk\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"X-Generator: Virtaal 0.7.1\n" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Set host name" -+msgstr "Встановити назву вузла" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Засвідчення потрібне, щоб встановити назву локального вузла." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 -+msgid "Set static host name" -+msgstr "Встановити статичну назву вузла" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Засвідчення потрібне, щоб вказати статично налаштовану назву локального " -+"вузла, так само й форматовану." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Встановити інформацію про машину" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Authentication is required to set local machine information." -+msgstr "Засвідчення потрібно, щоб вказати локальну інформацію про машини." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 -+msgid "Set system locale" -+msgstr "Вказати системну локаль" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "Засвідчення потрібно, щоб встановити системну локаль." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Вказати налаштування системної клавіатури" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "Засвідчення потрібно, щоб вказати налаштування системної клавіатури." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow applications to inhibit system shutdown" -+msgstr "Дозволити програмам перешкоджати вимкненню системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:2 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"shutdown." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати вимкненню системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:3 -+msgid "Allow applications to delay system shutdown" -+msgstr "Дозволити програмам затримувати вимкнення системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:4 -+msgid "" -+"Authentication is required to allow an application to delay system shutdown." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам затримувати вимкнення системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:5 -+msgid "Allow applications to inhibit system sleep" -+msgstr "Дозволити програмам перешкоджати засинанню системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow an application to inhibit system sleep." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати засинанню системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:7 -+msgid "Allow applications to delay system sleep" -+msgstr "Дозволити програмами затримувати засинання системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow an application to delay system sleep." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам затримувати засинання системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:9 -+msgid "Allow applications to inhibit automatic system suspend" -+msgstr "Дозволити програмам перешкоджати автоматичному призупиненню системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:10 -+msgid "" -+"Authentication is required to allow an application to inhibit automatic " -+"system suspend." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати автоматичному " -+"призупиненню системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:11 -+msgid "Allow applications to inhibit system handling of the power key" -+msgstr "Дозволити програмам перешкоджати обробленню системою клавіші живлення" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:12 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the power key." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші живлення." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:13 -+msgid "Allow applications to inhibit system handling of the suspend key" -+msgstr "" -+"Дозволити програмам перешкоджати обробленню системою клавіші призупинення" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:14 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the suspend key." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші призупинення." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:15 -+msgid "Allow applications to inhibit system handling of the hibernate key" -+msgstr "Дозволити програмам перешкоджати обробленню системою клавіші присипання" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:16 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the hibernate key." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші присипання." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:17 -+msgid "Allow applications to inhibit system handling of the lid switch" -+msgstr "" -+"Дозволити програмам перешкоджати обробленню системою клавіші перемикання " -+"кришки" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:18 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the lid switch." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші перемикання кришки." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:19 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Дозволити незареєстрованим користувачам запускати програми" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:20 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити незареєстрованим користувачам запускати " -+"програми." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:21 -+msgid "Allow attaching devices to seats" -+msgstr "Дозволити під'єднання пристроїв до місць" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:22 -+msgid "Authentication is required for attaching a device to a seat." -+msgstr "Засвідчення потрібно, щоб під'єднувати пристрої до місць." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:23 -+msgid "Flush device to seat attachments" -+msgstr "Очисний пристрій для під'єднань до місця" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:24 -+msgid "" -+"Authentication is required for resetting how devices are attached to seats." -+msgstr "Засвідчення потрібно, щоб перезапустити спосіб під'єднання до місць." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:25 -+msgid "Power off the system" -+msgstr "Вимкнути систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:26 -+msgid "Authentication is required for powering off the system." -+msgstr "Засвідчення потрібно, щоб вимкнути систему." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:27 -+msgid "Power off the system while other users are logged in" -+msgstr "Вимикнути систему, коли інші користувачі ще в ній" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:28 -+msgid "" -+"Authentication is required for powering off the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб вимкнути систему, коли інші користувачі в ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:29 -+msgid "Power off the system while an application asked to inhibit it" -+msgstr "Вимкнути систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:30 -+msgid "" -+"Authentication is required for powering off the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб вимкнути систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:31 -+msgid "Reboot the system" -+msgstr "Перезавантажити систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:32 -+msgid "Authentication is required for rebooting the system." -+msgstr "Для перезавантаження системи необхідна ідентифікація." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:33 -+msgid "Reboot the system while other users are logged in" -+msgstr "Перезавантажити, якщо інщі користувачі в системі" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:34 -+msgid "" -+"Authentication is required for rebooting the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб перезапустити систему, коли інші користувачі в " -+"ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:35 -+msgid "Reboot the system while an application asked to inhibit it" -+msgstr "Перезапустити систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:36 -+msgid "" -+"Authentication is required for rebooting the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб перезапустити систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:37 -+msgid "Suspend the system" -+msgstr "Призупинити систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:38 -+msgid "Authentication is required for suspending the system." -+msgstr "Засвідчення потрібно, щоб призупинити систему." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:39 -+msgid "Suspend the system while other users are logged in" -+msgstr "Призупинити систему, коли інші користувачі в ній" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:40 -+msgid "" -+"Authentication is required for suspending the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб призупинити систему, коли інші користувачі в ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:41 -+msgid "Suspend the system while an application asked to inhibit it" -+msgstr "Призупинити систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:42 -+msgid "" -+"Authentication is required for suspending the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб призупнити систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:43 -+msgid "Hibernate the system" -+msgstr "Приспати систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:44 -+msgid "Authentication is required for hibernating the system." -+msgstr "Засвідчення потрібно, щоб приспати систему." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:45 -+msgid "Hibernate the system while other users are logged in" -+msgstr "Приспати систему, коли інші користувачі в ній" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:46 -+msgid "" -+"Authentication is required for hibernating the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб присипання систему, коли інші користувачі в ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:47 -+msgid "Hibernate the system while an application asked to inhibit it" -+msgstr "Приспати систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:48 -+msgid "" -+"Authentication is required for hibernating the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб приспати систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 -+msgid "Set system time" -+msgstr "Вказати системний час" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 -+msgid "Authentication is required to set the system time." -+msgstr "Засвідчення потрібно, щоб вказати системний час." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Set system timezone" -+msgstr "Вказати системний часовий пояс" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Засвідчення потрібно, щоб вказати системний часовий пояс." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Вкажіть RTC для локального часового поясу або UTC" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "Засвідчення потрібно, щоб контролювати, чи RTC зберігає час, чи UTC." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Turn network time synchronization on or off" -+msgstr "Увімкнути або вимкнути синхронізування через мережу" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Засвідчення потрібно, щоб контролювати, чи синхронізування часу через мережу " -+"запущено." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 -+msgid "Send passphrase back to system" -+msgstr "Надіслати пароль назад у систему" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 -+msgid "" -+"Authentication is required to send the entered passphrase back to the system." -+msgstr "Засвідчення потрібно, щоб надіслати введений пароль назад у систему." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -+msgid "Privileged system and service manager access" -+msgstr "Привілейований доступ до менеджера системи і служб" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -+msgid "Authentication is required to access the system and service manager." -+msgstr "Засвідчення потрібно, щоб доступитись до менеджера системи і служб." --- -1.7.9.2 - diff --git a/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch b/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch deleted file mode 100644 index 9d10cced..00000000 --- a/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on b2103dccb354de3f38c49c14ccb637bdf665e40f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 5 Apr 2014 13:59:01 -0400 -Subject: [PATCH] reduce the amount of messages logged to /dev/kmsg when - "debug" is specified - ---- - src/core/main.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-04-14 13:50:48.490814738 +0000 -@@ -412,12 +412,8 @@ static int parse_proc_cmdline_word(const - if (arg_show_status == _SHOW_STATUS_UNSET) - arg_show_status = SHOW_STATUS_AUTO; - } else if (streq(word, "debug")) { -- /* Log to kmsg, the journal socket will fill up before the -- * journal is started and tools running during that time -- * will block with every log message for for 60 seconds, -- * before they give up. */ -- log_set_max_level(LOG_DEBUG); -- log_set_target(detect_container(NULL) > 0 ? LOG_TARGET_CONSOLE : LOG_TARGET_KMSG); -+ if (detect_container(NULL) > 0) -+ log_set_target(LOG_TARGET_CONSOLE); - } else if (!in_initrd()) { - unsigned i; - diff --git a/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch b/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch deleted file mode 100644 index 0438c3ee..00000000 --- a/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ead349509e325aad720bb0349521a9e56e2ac7c0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 13 May 2014 16:40:53 +0200 -Subject: [PATCH] replace more dup() by F_DUPFD_CLOEXEC - ---- - src/login/inhibit.c | 2 +- - src/shared/install.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/login/inhibit.c src/login/inhibit.c -index 48c2ec4..ae3afdf 100644 ---- src/login/inhibit.c -+++ src/login/inhibit.c -@@ -64,7 +64,7 @@ static int inhibit(sd_bus *bus, sd_bus_error *error) { - if (r < 0) - return r; - -- r = dup(fd); -+ r = fcntl(fd, F_DUPFD_CLOEXEC, 3); - if (r < 0) - return -errno; - -diff --git src/shared/install.c src/shared/install.c -index acfba25..9ce9403 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -332,7 +332,7 @@ static int remove_marked_symlinks( - int q, cfd; - deleted = false; - -- cfd = dup(fd); -+ cfd = fcntl(fd, F_DUPFD_CLOEXEC, 3); - if (cfd < 0) { - r = -errno; - break; --- -1.7.9.2 - diff --git a/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch b/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch deleted file mode 100644 index 47dbcce3..00000000 --- a/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch +++ /dev/null @@ -1,181 +0,0 @@ -From 42c4ebcbd4cbd7b27667eb8081ee4dc46f9ece17 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 13 Mar 2014 20:33:22 +0100 -Subject: [PATCH] sd-bus: don't look for a 64bit value when we only have 32bit - value on reply cookie hash table access - -This broke hashtable lookups for the message cookies on s390x, which is -a 64bit BE machine where accessing 32bit values as 64bit and vice versa -will explode. - -Also, while we are at it, be a bit more careful when dealing with the -64bit cookies we expose and the 32bit serial numbers dbus uses in its -payload. - -Problem identified by Fridrich Strba. ---- - src/libsystemd/sd-bus/bus-dump.c | 4 ++-- - src/libsystemd/sd-bus/bus-kernel.c | 2 +- - src/libsystemd/sd-bus/bus-message.c | 15 ++++++++++----- - src/libsystemd/sd-bus/bus-message.h | 5 +++-- - src/libsystemd/sd-bus/sd-bus.c | 12 ++++++------ - 5 files changed, 22 insertions(+), 16 deletions(-) - -diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c -index 0e41549..ea81644 100644 ---- a/src/libsystemd/sd-bus/bus-dump.c -+++ b/src/libsystemd/sd-bus/bus-dump.c -@@ -69,10 +69,10 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { - if (BUS_MESSAGE_COOKIE(m) == 0xFFFFFFFFULL) - fprintf(f, " Cookie=-1"); - else -- fprintf(f, " Cookie=%lu", (unsigned long) BUS_MESSAGE_COOKIE(m)); -+ fprintf(f, " Cookie=%" PRIu64, BUS_MESSAGE_COOKIE(m)); - - if (m->reply_cookie != 0) -- fprintf(f, " ReplyCookie=%lu", (unsigned long) m->reply_cookie); -+ fprintf(f, " ReplyCookie=%" PRIu64, m->reply_cookie); - - fputs("\n", f); - -diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c -index 8a2ca02..80ef15b 100644 ---- a/src/libsystemd/sd-bus/bus-kernel.c -+++ b/src/libsystemd/sd-bus/bus-kernel.c -@@ -266,7 +266,7 @@ static int bus_message_setup_kmsg(sd_bus *b, sd_bus_message *m) { - well_known ? 0 : - m->destination ? unique : KDBUS_DST_ID_BROADCAST; - m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS; -- m->kdbus->cookie = m->header->serial; -+ m->kdbus->cookie = (uint64_t) m->header->serial; - m->kdbus->priority = m->priority; - - if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) -diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c -index fb894ef..97ab0e3 100644 ---- a/src/libsystemd/sd-bus/bus-message.c -+++ b/src/libsystemd/sd-bus/bus-message.c -@@ -617,7 +617,7 @@ static int message_new_reply( - t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; - t->reply_cookie = BUS_MESSAGE_COOKIE(call); - -- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); -+ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); - if (r < 0) - goto fail; - -@@ -752,7 +752,7 @@ int bus_message_new_synthetic_error( - t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; - t->reply_cookie = cookie; - -- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); -+ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); - if (r < 0) - goto fail; - -@@ -5075,21 +5075,26 @@ int bus_message_parse_fields(sd_bus_message *m) { - break; - } - -- case BUS_MESSAGE_HEADER_REPLY_SERIAL: -+ case BUS_MESSAGE_HEADER_REPLY_SERIAL: { -+ uint32_t serial; -+ - if (m->reply_cookie != 0) - return -EBADMSG; - - if (!streq(signature, "u")) - return -EBADMSG; - -- r = message_peek_field_uint32(m, &ri, item_size, &m->reply_cookie); -+ r = message_peek_field_uint32(m, &ri, item_size, &serial); - if (r < 0) - return r; - -+ m->reply_cookie = serial; -+ - if (m->reply_cookie == 0) - return -EBADMSG; - - break; -+ } - - case BUS_MESSAGE_HEADER_UNIX_FDS: - if (unix_fds != 0) -@@ -5489,7 +5494,7 @@ int bus_message_remarshal(sd_bus *bus, sd_bus_message **m) { - return -ENOMEM; - - n->reply_cookie = (*m)->reply_cookie; -- r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, n->reply_cookie); -+ r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) n->reply_cookie); - if (r < 0) - return r; - -diff --git a/src/libsystemd/sd-bus/bus-message.h b/src/libsystemd/sd-bus/bus-message.h -index 5fbe3e6..df79294 100644 ---- a/src/libsystemd/sd-bus/bus-message.h -+++ b/src/libsystemd/sd-bus/bus-message.h -@@ -84,7 +84,7 @@ struct sd_bus_message { - - sd_bus *bus; - -- uint32_t reply_cookie; -+ uint64_t reply_cookie; - - const char *path; - const char *interface; -@@ -162,7 +162,8 @@ static inline uint64_t BUS_MESSAGE_BSWAP64(sd_bus_message *m, uint64_t u) { - return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_64(u) : u; - } - --static inline uint32_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { -+static inline uint64_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { -+ /* Note that we return the serial converted to a 64bit value here */ - return BUS_MESSAGE_BSWAP32(m, m->header->serial); - } - -diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c -index ca7c428..8e44e50 100644 ---- a/src/libsystemd/sd-bus/sd-bus.c -+++ b/src/libsystemd/sd-bus/sd-bus.c -@@ -1486,15 +1486,15 @@ static int bus_write_message(sd_bus *bus, sd_bus_message *m, bool hint_sync_call - return r; - - if (bus->is_kernel || *idx >= BUS_MESSAGE_SIZE(m)) -- log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", -+ log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", - bus_message_type_to_string(m->header->type), - strna(sd_bus_message_get_sender(m)), - strna(sd_bus_message_get_destination(m)), - strna(sd_bus_message_get_path(m)), - strna(sd_bus_message_get_interface(m)), - strna(sd_bus_message_get_member(m)), -- (unsigned long) BUS_MESSAGE_COOKIE(m), -- (unsigned long) m->reply_cookie, -+ BUS_MESSAGE_COOKIE(m), -+ m->reply_cookie, - strna(m->error.message)); - - return r; -@@ -2253,15 +2253,15 @@ static int process_message(sd_bus *bus, sd_bus_message *m) { - bus->current = m; - bus->iteration_counter++; - -- log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", -+ log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", - bus_message_type_to_string(m->header->type), - strna(sd_bus_message_get_sender(m)), - strna(sd_bus_message_get_destination(m)), - strna(sd_bus_message_get_path(m)), - strna(sd_bus_message_get_interface(m)), - strna(sd_bus_message_get_member(m)), -- (unsigned long) BUS_MESSAGE_COOKIE(m), -- (unsigned long) m->reply_cookie, -+ BUS_MESSAGE_COOKIE(m), -+ m->reply_cookie, - strna(m->error.message)); - - r = process_hello(bus, m); --- -1.9.0 - diff --git a/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch b/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch deleted file mode 100644 index c1326c50..00000000 --- a/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ef7b6c0190fefaacf6d8f8e1a6dda4ba8b98091b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Oct 2014 17:58:43 +0100 -Subject: [PATCH] sd-bus: properly handle removals of non-existing matches - ---- - src/libsystemd/sd-bus/bus-match.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c -index 18afe0f..5658c61 100644 ---- src/libsystemd/sd-bus/bus-match.c -+++ src/libsystemd/sd-bus/bus-match.c -@@ -537,7 +537,7 @@ static int bus_match_find_compare_value( - else if (BUS_MATCH_CAN_HASH(t)) - n = hashmap_get(c->compare.children, value_str); - else { -- for (n = c->child; !value_node_same(n, t, value_u8, value_str); n = n->next) -+ for (n = c->child; n && !value_node_same(n, t, value_u8, value_str); n = n->next) - ; - } - --- -1.7.9.2 - diff --git a/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch b/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch deleted file mode 100644 index 4b9e6e87..00000000 --- a/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 92daebc0d0268c35f416c1665e0da3d4be5dd69f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 11 Jul 2014 16:48:35 +0200 -Subject: [PATCH] sd-event: don't require a signal event source to be enabled - for the child event source to work - ---- - src/libsystemd/sd-event/sd-event.c | 16 +++++++++------- - 1 file changed, 9 insertions(+), 7 deletions(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index a21f7db..9a9664c 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -1919,14 +1919,13 @@ static int process_signal(sd_event *e, uint32_t events) { - int r; - - assert(e); -- assert(e->signal_sources); - - assert_return(events == EPOLLIN, -EIO); - - for (;;) { - struct signalfd_siginfo si; - ssize_t ss; -- sd_event_source *s; -+ sd_event_source *s = NULL; - - ss = read(e->signal_fd, &si, sizeof(si)); - if (ss < 0) { -@@ -1941,16 +1940,19 @@ static int process_signal(sd_event *e, uint32_t events) { - - read_one = true; - -- s = e->signal_sources[si.ssi_signo]; - if (si.ssi_signo == SIGCHLD) { - r = process_child(e); - if (r < 0) - return r; -- if (r > 0 || !s) -+ if (r > 0) - continue; -- } else -- if (!s) -- return -EIO; -+ } -+ -+ if (e->signal_sources) -+ s = e->signal_sources[si.ssi_signo]; -+ -+ if (!s) -+ continue; - - s->signal.siginfo = si; - r = source_set_pending(s, true); --- -1.7.9.2 - diff --git a/0001-sd-event-restore-correct-timeout-behaviour.patch b/0001-sd-event-restore-correct-timeout-behaviour.patch deleted file mode 100644 index 8787f3f3..00000000 --- a/0001-sd-event-restore-correct-timeout-behaviour.patch +++ /dev/null @@ -1,37 +0,0 @@ -Based on eec6022cf039e62233139000b9e95db943959e48 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 13:43:30 +0200 -Subject: [PATCH] sd-event: restore correct timeout behaviour - ---- - src/libsystemd/sd-event/sd-event.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c 2014-06-06 10:26:51.422235695 +0000 -@@ -2047,6 +2047,7 @@ _public_ int sd_event_run(sd_event *e, u - unsigned ev_queue_max; - sd_event_source *p; - int r, i, m; -+ bool timedout; - - assert_return(e, -EINVAL); - assert_return(!event_pid_changed(e), -ECHILD); -@@ -2084,6 +2085,8 @@ _public_ int sd_event_run(sd_event *e, u - goto finish; - } - -+ timedout = m == 0; -+ - dual_timestamp_get(&e->timestamp); - - for (i = 0; i < m; i++) { -@@ -2123,7 +2126,7 @@ _public_ int sd_event_run(sd_event *e, u - - p = event_next_pending(e); - if (!p) { -- r = 1; -+ r = !timedout; - goto finish; - } - diff --git a/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch b/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch deleted file mode 100644 index cde6a3da..00000000 --- a/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +++ /dev/null @@ -1,111 +0,0 @@ -Backport of 7ca1d31964a2553f7bd011bc10ac42e0ebc1f975 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 2 May 2014 22:29:18 +0200 -Subject: [PATCH] sd-rtnl-message: append - fix uninitialized memory - -We were not properly clearing the padding at the front of some containers. ---- - src/libsystemd/sd-rtnl/rtnl-message.c | 42 +++++++++++++++++++++------------- - 1 file changed, 27 insertions(+), 15 deletions(-) - ---- src/libsystemd/sd-rtnl/rtnl-message.c -+++ src/libsystemd/sd-rtnl/rtnl-message.c 2014-05-05 13:33:01.998235340 +0000 -@@ -314,24 +314,28 @@ int sd_rtnl_message_link_get_flags(sd_rt - /* If successful the updated message will be correctly aligned, if - unsuccessful the old message is untouched. */ - static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void *data, size_t data_length) { -- uint32_t rta_length, message_length; -+ uint32_t rta_length; -+ size_t message_length, padding_length; - struct nlmsghdr *new_hdr; - struct rtattr *rta; - char *padding; - unsigned i; -+ int offset; - - assert(m); - assert(m->hdr); - assert(!m->sealed); - assert(NLMSG_ALIGN(m->hdr->nlmsg_len) == m->hdr->nlmsg_len); -- assert(!data || data_length > 0); -- assert(data || m->n_containers < RTNL_CONTAINER_DEPTH); -+ assert(!data || data_length); -+ -+ /* get offset of the new attribute */ -+ offset = m->hdr->nlmsg_len; - - /* get the size of the new rta attribute (with padding at the end) */ - rta_length = RTA_LENGTH(data_length); - - /* get the new message size (with padding at the end) */ -- message_length = m->hdr->nlmsg_len + RTA_ALIGN(rta_length); -+ message_length = offset + RTA_ALIGN(rta_length); - - /* realloc to fit the new attribute */ - new_hdr = realloc(m->hdr, message_length); -@@ -340,32 +344,35 @@ static int add_rtattr(sd_rtnl_message *m - m->hdr = new_hdr; - - /* get pointer to the attribute we are about to add */ -- rta = (struct rtattr *) ((uint8_t *) m->hdr + m->hdr->nlmsg_len); -+ rta = (struct rtattr *) ((uint8_t *) m->hdr + offset); - - /* if we are inside containers, extend them */ - for (i = 0; i < m->n_containers; i++) -- GET_CONTAINER(m, i)->rta_len += message_length - m->hdr->nlmsg_len; -+ GET_CONTAINER(m, i)->rta_len += message_length - offset; - - /* fill in the attribute */ - rta->rta_type = type; - rta->rta_len = rta_length; -- if (!data) { -- /* this is the start of a new container */ -- m->container_offsets[m->n_containers ++] = m->hdr->nlmsg_len; -- } else { -+ if (data) - /* we don't deal with the case where the user lies about the type - * and gives us too little data (so don't do that) -- */ -+ */ - padding = mempcpy(RTA_DATA(rta), data, data_length); -- /* make sure also the padding at the end of the message is initialized */ -- memzero(padding, -- (uint8_t *) m->hdr + message_length - (uint8_t *) padding); -+ else { -+ /* if no data was passed, make sure we still initialize the padding -+ note that we can have data_length > 0 (used by some containers) */ -+ padding = RTA_DATA(rta); -+ data_length = 0; - } - -+ /* make sure also the padding at the end of the message is initialized */ -+ padding_length = (uint8_t*)m->hdr + message_length - (uint8_t*)padding; -+ memzero(padding, padding_length); -+ - /* update message size */ - m->hdr->nlmsg_len = message_length; - -- return 0; -+ return offset; - } - - int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const char *data) { -@@ -498,6 +505,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_m - - assert_return(m, -EINVAL); - assert_return(!m->sealed, -EPERM); -+ assert_return(m->n_containers < RTNL_CONTAINER_DEPTH, -ERANGE); - - r = sd_rtnl_message_get_type(m, &rtm_type); - if (r < 0) -@@ -548,6 +556,10 @@ int sd_rtnl_message_append_u32(sd_rtnl_m - if (r < 0) - return r; - -+ m->container_offsets[m->n_containers ++] = r; -+ -+ m->container_offsets[m->n_containers ++] = r; -+ - return 0; - } - diff --git a/0001-selinux-access-fix-broken-ternary-operator.patch b/0001-selinux-access-fix-broken-ternary-operator.patch deleted file mode 100644 index b94de819..00000000 --- a/0001-selinux-access-fix-broken-ternary-operator.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 1e648011b20c8126412d3cf2699d575d9ba9e0fe Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 21 Nov 2014 17:02:15 +0100 -Subject: [PATCH] selinux-access: fix broken ternary operator - -it seems to be a typo introduced by ebcf1f97de4f6b1580ae55eb56b1a3939fe6b602 -- _r = selinux_access_check(_b, _m, _u->source_path ?:_u->fragment_path, (permission), &_error); \ -+ ({ Unit *_unit = (unit); selinux_generic_access_check(bus,message, _unit->fragment_path ?: _unit->fragment_path, permission,error); }) ---- - src/core/selinux-access.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/selinux-access.h -+++ src/core/selinux-access.h 2014-12-15 11:49:54.521518349 +0000 -@@ -34,7 +34,7 @@ int selinux_generic_access_check(sd_bus - #define selinux_access_check(bus, message, permission, error) \ - selinux_generic_access_check(bus, message, NULL, permission, error) - #define selinux_unit_access_check(unit, bus, message, permission, error) \ -- ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->fragment_path ?: _unit->fragment_path, permission, error); }) -+ ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->source_path ?: _unit->fragment_path, permission, error); }) - - #else - diff --git a/0001-shell-completion-fix-completion-of-inactive-units.patch b/0001-shell-completion-fix-completion-of-inactive-units.patch deleted file mode 100644 index 563d9828..00000000 --- a/0001-shell-completion-fix-completion-of-inactive-units.patch +++ /dev/null @@ -1,95 +0,0 @@ -Based on f29c77bc0179b0fa57407dbe30b495be9f5ad2e8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 14 Oct 2014 20:20:07 -0400 -Subject: [PATCH] shell-completion: fix completion of inactive units - -Units which not loaded were not proposed properly. OTOH, we should -filter units from get-unit-files by their state if they are currently -loaded. Bring zsh completions in line with bash completion, the same -logic should be used in both implementations. - -https://bugzilla.redhat.com/show_bug.cgi?id=1024379 -https://bugzilla.redhat.com/show_bug.cgi?id=790768 -https://bugs.freedesktop.org/show_bug.cgi?id=84720 ---- - shell-completion/bash/systemctl | 17 +++++++++-------- - shell-completion/zsh/_systemctl | 16 +++++++++------- - 2 files changed, 18 insertions(+), 15 deletions(-) - ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -55,10 +55,14 @@ __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list- - | { while read -r a b; do echo " $a"; done; }; } - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } --__get_startable_units () { { -- __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap -- __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ -- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } -+__get_startable_units () { -+ # find inactive or failed units, filter out masked and not-found -+ __systemctl $1 list-units --state inactive,failed -- $( __get_all_units ) | \ -+ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } -+__get_restartable_units () { -+ # find !masked, filter out masked and not-found -+ __systemctl $1 list-units --state active,inactive,failed -- $( __get_all_units ) | \ -+ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } - __get_failed_units () { __systemctl $1 list-units \ - | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } - __get_enabled_units () { __systemctl $1 list-unit-files \ -@@ -180,10 +184,7 @@ _systemctl () { - - elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -- $( __get_all_units $mode \ -- | while read -r line; do \ -- [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ -- done )) -+ $( __get_restartable_units $mode)) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then ---- shell-completion/zsh/_systemctl -+++ shell-completion/zsh/_systemctl -@@ -138,8 +138,11 @@ _filter_units_by_property() { - done - } - -+_systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } -+ - _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} --_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} -+_systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} -+_systemctl_restartable_units(){_sys_restartable_units=($(__systemctl list-units --state inactive,failed,active -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} - _systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} - _systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} - _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} -@@ -181,8 +184,9 @@ done - # Completion functions for STARTABLE_UNITS - (( $+functions[_systemctl_start] )) || _systemctl_start() - { -- _systemctl_inactive_units -- compadd "$@" -a - _sys_inactive_units -+ _systemctl_startable_units -+ compadd "$@" - $( _filter_units_by_property CanStart yes \ -+ ${_sys_startable_units[*]} ) - } - - # Completion functions for STOPPABLE_UNITS -@@ -217,11 +221,9 @@ done - for fun in restart reload-or-restart ; do - (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() - { -- _systemctl_all_units -+ _systemctl_restartable_units - compadd "$@" - $( _filter_units_by_property CanStart yes \ -- ${_sys_all_units[*]} | while read -r line; do \ -- [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ -- done ) -+ ${_sys_restartable_units[*]} ) - } - done - --- -1.7.9.2 - diff --git a/0001-shutdownd-clean-up-initialization-of-struct.patch b/0001-shutdownd-clean-up-initialization-of-struct.patch deleted file mode 100644 index 3f2fb4ea..00000000 --- a/0001-shutdownd-clean-up-initialization-of-struct.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b748c7596f79945be5263a0d1c88de64eb0c5146 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 27 Sep 2014 00:25:09 +0200 -Subject: [PATCH] shutdownd: clean up initialization of struct - -No functional change. We just don't assign the value twice. - -Found by coverity. Fixes: CID#1237616 and #1237617 ---- - src/shutdownd/shutdownd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/shutdownd/shutdownd.c src/shutdownd/shutdownd.c -index 99aa4b3..0f008a6 100644 ---- src/shutdownd/shutdownd.c -+++ src/shutdownd/shutdownd.c -@@ -52,8 +52,8 @@ static int read_packet(int fd, union shutdown_buffer *_b) { - union shutdown_buffer b; /* We maintain our own copy here, in - * order not to corrupt the last message */ - struct iovec iovec = { -- iovec.iov_base = &b, -- iovec.iov_len = sizeof(b) - 1, -+ .iov_base = &b, -+ .iov_len = sizeof(b) - 1, - }; - union { - struct cmsghdr cmsghdr; --- -1.7.9.2 - diff --git a/0001-socket-introduce-SELinuxContextFromNet-option.patch b/0001-socket-introduce-SELinuxContextFromNet-option.patch deleted file mode 100644 index f437c7be..00000000 --- a/0001-socket-introduce-SELinuxContextFromNet-option.patch +++ /dev/null @@ -1,414 +0,0 @@ -Based on 16115b0a7b7cdf08fb38084d857d572d8a9088dc Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Thu, 24 Jul 2014 10:40:28 +0200 -Subject: [PATCH] socket: introduce SELinuxContextFromNet option - -This makes possible to spawn service instances triggered by socket with -MLS/MCS SELinux labels which are created based on information provided by -connected peer. - -Implementation of label_get_child_mls_label derived from xinetd. - -Reviewed-by: Paul Moore ---- - man/systemd.socket.xml | 26 +++++++ - src/core/execute.c | 30 +++++++-- - src/core/execute.h | 1 - src/core/load-fragment-gperf.gperf.m4 | 3 - src/core/mount.c | 1 - src/core/service.c | 4 - - src/core/service.h | 3 - src/core/socket.c | 16 +++- - src/core/socket.h | 2 - src/core/swap.c | 1 - src/shared/label.c | 113 ++++++++++++++++++++++++++++++++++ - src/shared/label.h | 2 - 12 files changed, 191 insertions(+), 11 deletions(-) - ---- man/systemd.socket.xml -+++ man/systemd.socket.xml 2014-09-23 15:36:49.000000000 +0000 -@@ -570,6 +570,32 @@ - - - -+ SELinuxContextFromNet= -+ Takes a boolean -+ argument. When true systemd will attempt -+ to figure out the SELinux label used -+ for the instantiated service from the -+ information handed by the peer over the -+ network. Note that only the security -+ level is used from the information -+ provided by the peer. Other parts of -+ the resulting SELinux context originate -+ from either the target binary that is -+ effectively triggered by socket unit -+ are taken from the value of the -+ SELinuxContext= -+ option.This configuration option only -+ affects sockets with -+ Accept= mode set to -+ true. Also note that -+ this option is useful only when -+ MLS/MCS SELinux policy is -+ deployed. Defaults to -+ false. -+ -+ -+ -+ - PipeSize= - Takes an size in - bytes. Controls the pipe buffer size ---- src/core/execute.c -+++ src/core/execute.c 2014-09-24 09:22:08.882735864 +0000 -@@ -82,6 +82,7 @@ - #include "selinux-util.h" - #include "errno-list.h" - #include "apparmor-util.h" -+#include "label.h" - - #ifdef HAVE_SECCOMP - #include "seccomp-util.h" -@@ -1123,6 +1124,7 @@ int exec_spawn(ExecCommand *command, - bool apply_chroot, - bool apply_tty_stdin, - bool confirm_spawn, -+ bool selinux_context_net, - CGroupControllerMask cgroup_supported, - const char *cgroup_path, - const char *unit_id, -@@ -1594,11 +1596,29 @@ int exec_spawn(ExecCommand *command, - #endif - - #ifdef HAVE_SELINUX -- if (context->selinux_context && use_selinux()) { -- err = setexeccon(context->selinux_context); -- if (err < 0 && !context->selinux_context_ignore) { -- r = EXIT_SELINUX_CONTEXT; -- goto fail_child; -+ if (use_selinux()) { -+ if (context->selinux_context) { -+ err = setexeccon(context->selinux_context); -+ if (err < 0 && !context->selinux_context_ignore) { -+ r = EXIT_SELINUX_CONTEXT; -+ goto fail_child; -+ } -+ } -+ -+ if (selinux_context_net && socket_fd >= 0) { -+ _cleanup_free_ char *label = NULL; -+ -+ err = label_get_child_mls_label(socket_fd, command->path, &label); -+ if (err < 0) { -+ r = EXIT_SELINUX_CONTEXT; -+ goto fail_child; -+ } -+ -+ err = setexeccon(label); -+ if (err < 0) { -+ r = EXIT_SELINUX_CONTEXT; -+ goto fail_child; -+ } - } - } - #endif ---- src/core/execute.h -+++ src/core/execute.h 2014-09-23 15:46:26.000000000 +0000 -@@ -195,6 +195,7 @@ int exec_spawn(ExecCommand *command, - bool apply_chroot, - bool apply_tty_stdin, - bool confirm_spawn, -+ bool selinux_context_net, - CGroupControllerMask cgroup_mask, - const char *cgroup_path, - const char *unit_id, ---- src/core/load-fragment-gperf.gperf.m4 -+++ src/core/load-fragment-gperf.gperf.m4 2014-09-23 00:00:00.000000000 +0000 -@@ -242,6 +242,9 @@ Socket.SmackLabelIPOut, config_ - `Socket.SmackLabel, config_parse_warn_compat, 0, 0 - Socket.SmackLabelIPIn, config_parse_warn_compat, 0, 0 - Socket.SmackLabelIPOut, config_parse_warn_compat, 0, 0') -+m4_ifdef(`HAVE_SELINUX', -+`Socket.SELinuxContextFromNet, config_parse_bool, 0, offsetof(Socket, selinux_context_from_net)', -+`Socket.SELinuxContextFromNet, config_parse_warn_compat, 0, 0') - EXEC_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl - CGROUP_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl - KILL_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl ---- src/core/mount.c -+++ src/core/mount.c 2014-09-24 09:16:26.234235379 +0000 -@@ -785,6 +785,7 @@ static int mount_spawn(Mount *m, ExecCom - true, - true, - UNIT(m)->manager->confirm_spawn, -+ false, - UNIT(m)->manager->cgroup_supported, - UNIT(m)->cgroup_path, - UNIT(m)->id, ---- src/core/service.c -+++ src/core/service.c 2014-09-23 15:49:24.000000000 +0000 -@@ -1856,6 +1856,7 @@ static int service_spawn( - apply_chroot, - apply_tty_stdin, - UNIT(s)->manager->confirm_spawn, -+ s->socket_fd_selinux_context_net, - UNIT(s)->manager->cgroup_supported, - path, - UNIT(s)->id, -@@ -3787,7 +3788,7 @@ static void service_bus_name_owner_chang - } - } - --int service_set_socket_fd(Service *s, int fd, Socket *sock) { -+int service_set_socket_fd(Service *s, int fd, Socket *sock, bool selinux_context_net) { - _cleanup_free_ char *peer = NULL; - int r; - -@@ -3825,6 +3826,7 @@ int service_set_socket_fd(Service *s, in - } - - s->socket_fd = fd; -+ s->socket_fd_selinux_context_net = selinux_context_net; - - unit_ref_set(&s->accept_socket, UNIT(sock)); - ---- src/core/service.h -+++ src/core/service.h 2014-09-23 15:51:13.000000000 +0000 -@@ -159,6 +159,7 @@ struct Service { - pid_t main_pid, control_pid; - int socket_fd; - -+ bool socket_fd_selinux_context_net; - bool permissions_start_only; - bool root_directory_start_only; - bool remain_after_exit; -@@ -204,7 +205,7 @@ extern const UnitVTable service_vtable; - - struct Socket; - --int service_set_socket_fd(Service *s, int fd, struct Socket *socket); -+int service_set_socket_fd(Service *s, int fd, struct Socket *socket, bool selinux_context_net); - - const char* service_state_to_string(ServiceState i) _const_; - ServiceState service_state_from_string(const char *s) _pure_; ---- src/core/socket.c -+++ src/core/socket.c 2014-09-24 09:13:29.698735735 +0000 -@@ -453,7 +453,8 @@ static void socket_dump(Unit *u, FILE *f - "%sBroadcast: %s\n" - "%sPassCredentials: %s\n" - "%sPassSecurity: %s\n" -- "%sTCPCongestion: %s\n", -+ "%sTCPCongestion: %s\n" -+ "%sSELinuxContextFromNet: %s\n", - prefix, socket_state_to_string(s->state), - prefix, socket_result_to_string(s->result), - prefix, socket_address_bind_ipv6_only_to_string(s->bind_ipv6_only), -@@ -466,7 +467,8 @@ static void socket_dump(Unit *u, FILE *f - prefix, yes_no(s->broadcast), - prefix, yes_no(s->pass_cred), - prefix, yes_no(s->pass_sec), -- prefix, strna(s->tcp_congestion)); -+ prefix, strna(s->tcp_congestion), -+ prefix, yes_no(s->selinux_context_from_net)); - - if (s->control_pid > 0) - fprintf(f, -@@ -1000,7 +1002,12 @@ static int socket_open_fds(Socket *s) { - - if (p->type == SOCKET_SOCKET) { - -- if (!know_label) { -+ if (!know_label && s->selinux_context_from_net) { -+ r = label_get_our_label(&label); -+ if (r < 0) -+ return r; -+ know_label = true; -+ } else if (!know_label) { - - if ((r = socket_instantiate_service(s)) < 0) - return r; -@@ -1247,6 +1254,7 @@ static int socket_spawn(Socket *s, ExecC - true, - true, - UNIT(s)->manager->confirm_spawn, -+ s->selinux_context_from_net, - UNIT(s)->manager->cgroup_supported, - UNIT(s)->cgroup_path, - UNIT(s)->id, -@@ -1568,7 +1576,7 @@ static void socket_enter_running(Socket - - unit_choose_id(UNIT(service), name); - -- r = service_set_socket_fd(service, cfd, s); -+ r = service_set_socket_fd(service, cfd, s, s->selinux_context_from_net); - if (r < 0) - goto fail; - ---- src/core/socket.h -+++ src/core/socket.h 2014-09-23 15:55:17.000000000 +0000 -@@ -154,6 +154,8 @@ struct Socket { - char *smack; - char *smack_ip_in; - char *smack_ip_out; -+ -+ bool selinux_context_from_net; - }; - - /* Called from the service code when collecting fds */ ---- src/core/swap.c -+++ src/core/swap.c 2014-09-24 09:17:18.438735618 +0000 -@@ -642,6 +642,7 @@ static int swap_spawn(Swap *s, ExecComma - true, - true, - UNIT(s)->manager->confirm_spawn, -+ false, - UNIT(s)->manager->cgroup_supported, - UNIT(s)->cgroup_path, - UNIT(s)->id, ---- src/shared/label.c -+++ src/shared/label.c 2014-09-23 00:00:00.000000000 +0000 -@@ -31,6 +31,7 @@ - #ifdef HAVE_SELINUX - #include - #include -+#include - #endif - - #include "label.h" -@@ -41,6 +42,12 @@ - #include "smack-util.h" - - #ifdef HAVE_SELINUX -+DEFINE_TRIVIAL_CLEANUP_FUNC(security_context_t, freecon); -+DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free); -+ -+#define _cleanup_security_context_free_ _cleanup_(freeconp) -+#define _cleanup_context_free_ _cleanup_(context_freep) -+ - static struct selabel_handle *label_hnd = NULL; - #endif - -@@ -243,6 +250,112 @@ fail: - return r; - } - -+int label_get_our_label(char **label) { -+ int r = -EOPNOTSUPP; -+ char *l = NULL; -+ -+#ifdef HAVE_SELINUX -+ r = getcon(&l); -+ if (r < 0) -+ return r; -+ -+ *label = l; -+#endif -+ -+ return r; -+} -+ -+int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { -+ int r = -EOPNOTSUPP; -+ -+#ifdef HAVE_SELINUX -+ -+ _cleanup_security_context_free_ security_context_t mycon = NULL, peercon = NULL, fcon = NULL, ret = NULL; -+ _cleanup_context_free_ context_t pcon = NULL, bcon = NULL; -+ security_class_t sclass; -+ -+ const char *range = NULL; -+ -+ assert(socket_fd >= 0); -+ assert(exe); -+ assert(label); -+ -+ r = getcon(&mycon); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ r = getpeercon(socket_fd, &peercon); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ r = getexeccon(&fcon); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ if (!fcon) { -+ /* If there is no context set for next exec let's use context -+ of target executable */ -+ r = getfilecon(exe, &fcon); -+ if (r < 0) { -+ r = -errno; -+ goto out; -+ } -+ } -+ -+ bcon = context_new(mycon); -+ if (!bcon) { -+ r = -ENOMEM; -+ goto out; -+ } -+ -+ pcon = context_new(peercon); -+ if (!pcon) { -+ r = -ENOMEM; -+ goto out; -+ } -+ -+ range = context_range_get(pcon); -+ if (!range) { -+ r = -errno; -+ goto out; -+ } -+ -+ r = context_range_set(bcon, range); -+ if (r) { -+ r = -errno; -+ goto out; -+ } -+ -+ freecon(mycon); -+ mycon = context_str(bcon); -+ if (!mycon) { -+ r = -errno; -+ goto out; -+ } -+ -+ sclass = string_to_security_class("process"); -+ r = security_compute_create(mycon, fcon, sclass, &ret); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ *label = ret; -+ r = 0; -+ -+out: -+ if (r < 0 && security_getenforce() == 1) -+ return r; -+#endif -+ return r; -+} -+ - int label_context_set(const char *path, mode_t mode) { - int r = 0; - ---- src/shared/label.h -+++ src/shared/label.h 2014-09-23 00:00:00.000000000 +0000 -@@ -40,6 +40,8 @@ void label_context_clear(void); - void label_free(const char *label); - - int label_get_create_label_from_exe(const char *exe, char **label); -+int label_get_our_label(char **label); -+int label_get_child_mls_label(int socket_fd, const char *exec, char **label); - - int label_mkdir(const char *path, mode_t mode); - diff --git a/0001-strv-add-an-additional-overflow-check-when-enlarging.patch b/0001-strv-add-an-additional-overflow-check-when-enlarging.patch deleted file mode 100644 index 3f953f4f..00000000 --- a/0001-strv-add-an-additional-overflow-check-when-enlarging.patch +++ /dev/null @@ -1,35 +0,0 @@ -Based on 97569e154b80541cbad39d78231b7f360d4ff058 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 21 Oct 2014 14:01:28 +0200 -Subject: [PATCH] strv: add an additional overflow check when enlarging - strv()s - -https://bugs.freedesktop.org/show_bug.cgi?id=76745 ---- - src/shared/strv.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- src/shared/strv.c -+++ src/shared/strv.c 2014-10-23 00:00:00.000000000 +0000 -@@ -361,13 +361,19 @@ char *strv_join_quoted(char **l) { - - int strv_push(char ***l, char *value) { - char **c; -- unsigned n; -+ unsigned n, m; - - if (!value) - return 0; - - n = strv_length(*l); -- c = realloc(*l, sizeof(char*) * (n + 2)); -+ -+ /* increase and check for overflow */ -+ m = n + 2; -+ if (m < n) -+ return -ENOMEM; -+ -+ c = realloc(*l, sizeof(char*) * (size_t) m); - if (!c) - return -ENOMEM; - diff --git a/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch b/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch deleted file mode 100644 index 917c8ec2..00000000 --- a/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 498cfc230af8f83675be2e92057956f1792969e4 Mon Sep 17 00:00:00 2001 -From: Sjoerd Simons -Date: Sat, 23 Aug 2014 21:11:44 +0200 -Subject: [PATCH] systemctl: Correct error message printed when - bus_process_wait fails - -Actually use the variable containing the return code of bus_process_wait when -printing the error message as a result of it failing. ---- - src/systemctl/systemctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index d9b8bee..6534819 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -2382,7 +2382,7 @@ static int wait_for_jobs(sd_bus *bus, Set *s) { - while (!set_isempty(s)) { - q = bus_process_wait(bus); - if (q < 0) { -- log_error("Failed to wait for response: %s", strerror(-r)); -+ log_error("Failed to wait for response: %s", strerror(-q)); - return q; - } - --- -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 deleted file mode 100644 index 8e78fe01..00000000 --- a/0001-systemctl-allow-to-change-the-default-target-without.patch +++ /dev/null @@ -1,51 +0,0 @@ -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/0001-systemctl-let-list-units-unit-files-honour-type.patch b/0001-systemctl-let-list-units-unit-files-honour-type.patch deleted file mode 100644 index 1548d84f..00000000 --- a/0001-systemctl-let-list-units-unit-files-honour-type.patch +++ /dev/null @@ -1,94 +0,0 @@ -Based on 6c71341aeecc3d092ed90f66e1b2c481b8e260ff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 29 Oct 2014 22:46:30 -0400 -Subject: [PATCH] systemctl: let list-{units,unit-files } honour --type - -The docs don't clarify what is expected, but I don't see any reason -why --type should be ignored. - -Also restucture the compund conditions into separate clauses for -easier reading. ---- - src/systemctl/systemctl.c | 48 ++++++++++++++++++++++++++++++++++----------- - 1 file changed, 37 insertions(+), 11 deletions(-) - ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-11-18 00:00:00.000000000 +0000 -@@ -305,21 +305,37 @@ static int compare_unit_info(const void - } - - static bool output_show_unit(const UnitInfo *u, char **patterns) { -- const char *dot; -- - if (!strv_isempty(patterns)) { - char **pattern; - - STRV_FOREACH(pattern, patterns) - if (fnmatch(*pattern, u->id, FNM_NOESCAPE) == 0) -- return true; -+ goto next; - return false; - } - -- return (!arg_types || ((dot = strrchr(u->id, '.')) && -- strv_find(arg_types, dot+1))) && -- (arg_all || !(streq(u->active_state, "inactive") -- || u->following[0]) || u->job_id > 0); -+next: -+ if (arg_types) { -+ const char *dot; -+ -+ dot = strrchr(u->id, '.'); -+ if (!dot) -+ return false; -+ -+ if (!strv_find(arg_types, dot+1)) -+ return false; -+ } -+ -+ if (arg_all) -+ return true; -+ -+ if (u->job_id > 0) -+ return true; -+ -+ if (streq(u->active_state, "inactive") || u->following[0]) -+ return false; -+ -+ return true; - } - - static void output_units_list(const UnitInfo *unit_infos, unsigned c) { -@@ -1019,18 +1035,28 @@ static int compare_unit_file_list(const - } - - static bool output_show_unit_file(const UnitFileList *u, char **patterns) { -- const char *dot; -- - if (!strv_isempty(patterns)) { - char **pattern; - - STRV_FOREACH(pattern, patterns) - if (fnmatch(*pattern, basename(u->path), FNM_NOESCAPE) == 0) -- return true; -+ goto next; - return false; - } - -- return !arg_types || ((dot = strrchr(u->path, '.')) && strv_find(arg_types, dot+1)); -+next: -+ if (!strv_isempty(arg_types)) { -+ const char *dot; -+ -+ dot = strrchr(u->path, '.'); -+ if (!dot) -+ return false; -+ -+ if (!strv_find(arg_types, dot+1)) -+ return false; -+ } -+ -+ return true; - } - - static void output_unit_file_list(const UnitFileList *units, unsigned c) { diff --git a/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch b/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch deleted file mode 100644 index 544be067..00000000 --- a/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 08073121d8171f8e6be27b0c80e2ec283064760e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 13 Oct 2014 15:43:09 +0200 -Subject: [PATCH] systemctl: when mangle unit names for the "isolate", suffix - with ".target" rather than ".service" by default - -After all, we set AllowIsolate exclusively for target units so far, and -this is more or less the only thing tht makes sense, hence also use -".target" as completion suffix by default. ---- - src/systemctl/systemctl.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 842ca6c..af3cc97 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -2704,7 +2704,7 @@ static enum action verb_to_action(const char *verb) { - static int start_unit(sd_bus *bus, char **args) { - _cleanup_set_free_free_ Set *s = NULL; - _cleanup_strv_free_ char **names = NULL; -- const char *method, *mode, *one_name; -+ const char *method, *mode, *one_name, *suffix = NULL; - char **name; - int r = 0; - -@@ -2717,8 +2717,11 @@ static int start_unit(sd_bus *bus, char **args) { - method = verb_to_method(args[0]); - action = verb_to_action(args[0]); - -- mode = streq(args[0], "isolate") ? "isolate" : -- action_table[action].mode ?: arg_job_mode; -+ if (streq(args[0], "isolate")) { -+ mode = "isolate"; -+ suffix = ".target"; -+ } else -+ mode = action_table[action].mode ?: arg_job_mode; - - one_name = action_table[action].target; - } else { -@@ -2734,7 +2737,7 @@ static int start_unit(sd_bus *bus, char **args) { - if (one_name) - names = strv_new(one_name, NULL); - else { -- r = expand_names(bus, args + 1, NULL, &names); -+ r = expand_names(bus, args + 1, suffix, &names); - if (r < 0) - log_error("Failed to expand names: %s", strerror(-r)); - } --- -1.7.9.2 - diff --git a/0001-systemd-continue-switch-root-even-if-umount-fails.patch b/0001-systemd-continue-switch-root-even-if-umount-fails.patch deleted file mode 100644 index e8b3ee9f..00000000 --- a/0001-systemd-continue-switch-root-even-if-umount-fails.patch +++ /dev/null @@ -1,50 +0,0 @@ -Based on d677d4df80e0ea1c66c691f50867fedd63c6770a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 16 Oct 2014 19:12:55 -0500 -Subject: [PATCH] systemd: continue switch-root even if umount fails - -Leaving the old root around seems better than aborting the -switch. ---- - src/core/main.c | 2 +- - src/core/switch-root.c | 11 +++++------ - 2 files changed, 6 insertions(+), 7 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-10-20 13:35:35.915837828 +0000 -@@ -1848,7 +1848,7 @@ finish: - /* And switch root */ - r = switch_root(switch_root_dir); - if (r < 0) -- log_error("Failed to switch root, ignoring: %s", strerror(-r)); -+ log_error("Failed to switch root, trying to continue: %s", strerror(-r)); - } - - args_size = MAX(6, argc+1); ---- src/core/switch-root.c -+++ src/core/switch-root.c 2014-10-20 13:39:58.167121460 +0000 -@@ -68,10 +68,9 @@ int switch_root(const char *new_root) { - goto fail; - } - -- /* Work-around for a kernel bug: for some reason the kernel -- * refuses switching root if any file systems are mounted -- * MS_SHARED. Hence remount them MS_PRIVATE here as a -- * work-around. -+ /* Work-around for kernel design: the kernel refuses switching -+ * root if any file systems are mounted MS_SHARED. Hence -+ * remount them MS_PRIVATE here as a work-around. - * - * https://bugzilla.redhat.com/show_bug.cgi?id=847418 */ - if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) -@@ -124,8 +123,8 @@ int switch_root(const char *new_root) { - * running off it we need to do this lazily. */ - if (umount2("/mnt", MNT_DETACH) < 0) { - r = -errno; -- log_error("Failed to umount old root dir /mnt: %m"); -- goto fail; -+ log_error("Failed to lazily umount old root dir /mnt, %s: %m", -+ errno == ENOENT ? "ignoring" : "leaving it around"); - } - - } else if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { diff --git a/0001-systemd-detect-virt-detect-s390-virtualization.patch b/0001-systemd-detect-virt-detect-s390-virtualization.patch deleted file mode 100644 index 300258fb..00000000 --- a/0001-systemd-detect-virt-detect-s390-virtualization.patch +++ /dev/null @@ -1,72 +0,0 @@ -From f41925b4e442a34c93ad120ef1426c974a047ed1 Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Fri, 18 Jul 2014 09:13:36 -0400 -Subject: [PATCH] systemd-detect-virt: detect s390 virtualization - -A system that is running on a logical partition (LPAR) provided by -PR/SM has access to physical hardware (except CPU). It is true that -PR/SM abstracts the hardware, but only for sharing purposes. - -Details are statet at: - -http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm - --->-- -In other words, PR/SM transforms physical resources into virtual resources so -that many logical partitions can share the same physical resources. ---<-- - -Still, from the OS point of view, the shared virtual resource is real -hardware. ConditionVirtualization must be set to false if the OS runs -directly on PR/SM (e.g. in an LPAR). - -[zj: reorder code so that variables are not allocated when #if-def is -false. Add commit message.] ---- - man/systemd.unit.xml | 1 + - src/shared/virt.c | 17 +++++++++++++++++ - 2 files changed, 18 insertions(+) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 6447584..86a8cbb 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -996,6 +996,7 @@ - virtualization solution, or one of - qemu, - kvm, -+ zvm, - vmware, - microsoft, - oracle, -diff --git src/shared/virt.c src/shared/virt.c -index 20a8d7c..b436895 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -220,6 +220,23 @@ int detect_vm(const char **id) { - goto finish; - } - -+#if defined(__s390__) -+ { -+ _cleanup_free_ char *t = NULL; -+ -+ r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t); -+ if (r >= 0) { -+ if (streq(t, "z/VM")) -+ _id = "zvm"; -+ else -+ _id = "kvm"; -+ r = 1; -+ -+ goto finish; -+ } -+ } -+#endif -+ - r = 0; - - finish: --- -1.7.9.2 - diff --git a/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch b/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch deleted file mode 100644 index 9f1a8dcb..00000000 --- a/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 9ed2a35e93f4a9e82585f860f54cdcbbdf3e1f86 Mon Sep 17 00:00:00 2001 -From: Richard Weinberger -Date: Tue, 9 Sep 2014 11:09:37 +0200 -Subject: [PATCH] systemd-tmpfiles: Fix IGNORE_DIRECTORY_PATH age handling - -If one has a config like: -d /tmp 1777 root root - -X /tmp/important_mount - -All files below /tmp/important_mount will be deleted as the -/tmp/important_mount item will spuriously inherit a max age of 0 -from /tmp. -/tmp has a max age of 0 but age_set is (of course) false. - -This affects also the PrivateTmp feature of systemd. -All tmp files of such services will be deleted unconditionally -and can cause service failures and data loss. - -Fix this by checking ->age_set in the IGNORE_DIRECTORY_PATH logic. ---- - src/tmpfiles/tmpfiles.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index f9830c4..7eafd6b 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -1576,7 +1576,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { - candidate_item = j; - } - -- if (candidate_item) { -+ if (candidate_item && candidate_item->age_set) { - i->age = candidate_item->age; - i->age_set = true; - } --- -1.7.9.2 - diff --git a/0001-sysv-order-initscripts-which-provide-network-before-.patch b/0001-sysv-order-initscripts-which-provide-network-before-.patch deleted file mode 100644 index 944b9158..00000000 --- a/0001-sysv-order-initscripts-which-provide-network-before-.patch +++ /dev/null @@ -1,34 +0,0 @@ -Based on 805b573fad06b845502e76f3db3a0efa7583149d Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 23 Jul 2014 12:49:14 +0200 -Subject: [PATCH] sysv: order initscripts which provide $network before - network.target - -Due to recent changes where $network "maps" to network-online.target -it is not guaranteed that initscript which provides networking will -be terminated after network.target during shutdown which is against LSB. ---- - src/core/service.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- src/core/service.c -+++ src/core/service.c 2014-07-30 11:27:16.074235995 +0000 -@@ -820,7 +820,7 @@ static int service_load_sysv_path(Servic - - if (unit_name_to_type(m) == UNIT_SERVICE) - r = unit_merge_by_name(u, m); -- else -+ else { - /* NB: SysV targets - * which are provided - * by a service are -@@ -835,6 +835,9 @@ static int service_load_sysv_path(Servic - * in the SysV - * services! */ - r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, UNIT_WANTS, m, NULL, true); -+ if (r >= 0 && streq(m, SPECIAL_NETWORK_ONLINE_TARGET)) -+ r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_NETWORK_TARGET, NULL, true); -+ } - - if (r < 0) - log_error_unit(u->id, diff --git a/0001-tmpfiles-compare-return-against-correct-errno.patch b/0001-tmpfiles-compare-return-against-correct-errno.patch deleted file mode 100644 index 10c2e214..00000000 --- a/0001-tmpfiles-compare-return-against-correct-errno.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e7aab5412829ed6b50d109f670bd0b1b365838a7 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 11 Oct 2014 20:35:06 -0400 -Subject: [PATCH] tmpfiles: compare return against correct errno - -name_to_handle_at returns -EOPNOTSUPP, not -ENOTSUP. ---- - src/tmpfiles/tmpfiles.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index dafb9ae..8108b43 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -259,7 +259,7 @@ static int dir_is_mount_point(DIR *d, const char *subdir) { - - /* got only one handle; assume different mount points if one - * of both queries was not supported by the filesystem */ -- if (r_p == -ENOSYS || r_p == -ENOTSUP || r == -ENOSYS || r == -ENOTSUP) -+ if (r_p == -ENOSYS || r_p == -EOPNOTSUPP || r == -ENOSYS || r == -EOPNOTSUPP) - return true; - - /* return error */ --- -1.7.9.2 - diff --git a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch deleted file mode 100644 index de54a2e5..00000000 --- a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a606871da508995f5ede113a8fc6538afd98966c Mon Sep 17 00:00:00 2001 -From: Greg KH -Date: Tue, 15 Apr 2014 14:12:01 -0700 -Subject: [PATCH] tmpfiles: fix permissions on new journal files - -When starting up journald on a new system, set the proper permissions on -the system.journal files, not only on the journal directory. ---- - tmpfiles.d/systemd.conf | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git tmpfiles.d/systemd.conf tmpfiles.d/systemd.conf -index 7c6d6b9..c470045 100644 ---- tmpfiles.d/systemd.conf -+++ tmpfiles.d/systemd.conf -@@ -23,6 +23,6 @@ d /run/systemd/machines 0755 root root - - d /run/systemd/shutdown 0755 root root - - - m /var/log/journal 2755 root systemd-journal - - --m /var/log/journal/%m 2755 root systemd-journal - - -+Z /var/log/journal/%m 2755 root systemd-journal - - - m /run/log/journal 2755 root systemd-journal - - --m /run/log/journal/%m 2755 root systemd-journal - - -+Z /run/log/journal/%m 2755 root systemd-journal - - --- -1.7.9.2 - diff --git a/0001-umount-modernizations.patch b/0001-umount-modernizations.patch deleted file mode 100644 index 1397d155..00000000 --- a/0001-umount-modernizations.patch +++ /dev/null @@ -1,119 +0,0 @@ -From c3544e8d2c2d870a2aff0944aff4ab7824b9ae6b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 21:35:15 +0200 -Subject: [PATCH] umount: modernizations - ---- - src/core/umount.c | 65 ++++++++++++++++++++++------------------------------- - 1 file changed, 27 insertions(+), 38 deletions(-) - -diff --git src/core/umount.c src/core/umount.c -index d1258f0..a30f674 100644 ---- src/core/umount.c -+++ src/core/umount.c -@@ -61,52 +61,46 @@ static void mount_points_list_free(MountPoint **head) { - } - - static int mount_points_list_get(MountPoint **head) { -- FILE *proc_self_mountinfo; -- char *path, *p; -+ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; - unsigned int i; -- int r; - - assert(head); - -- if (!(proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"))) -+ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); -+ if (!proc_self_mountinfo) - return -errno; - - for (i = 1;; i++) { -- int k; -+ _cleanup_free_ char *path = NULL; -+ char *p = NULL; - MountPoint *m; -+ int k; - -- path = p = NULL; -- -- if ((k = fscanf(proc_self_mountinfo, -- "%*s " /* (1) mount id */ -- "%*s " /* (2) parent id */ -- "%*s " /* (3) major:minor */ -- "%*s " /* (4) root */ -- "%ms " /* (5) mount point */ -- "%*s" /* (6) mount options */ -- "%*[^-]" /* (7) optional fields */ -- "- " /* (8) separator */ -- "%*s " /* (9) file system type */ -- "%*s" /* (10) mount source */ -- "%*s" /* (11) mount options 2 */ -- "%*[^\n]", /* some rubbish at the end */ -- &path)) != 1) { -+ k = fscanf(proc_self_mountinfo, -+ "%*s " /* (1) mount id */ -+ "%*s " /* (2) parent id */ -+ "%*s " /* (3) major:minor */ -+ "%*s " /* (4) root */ -+ "%ms " /* (5) mount point */ -+ "%*s" /* (6) mount options */ -+ "%*[^-]" /* (7) optional fields */ -+ "- " /* (8) separator */ -+ "%*s " /* (9) file system type */ -+ "%*s" /* (10) mount source */ -+ "%*s" /* (11) mount options 2 */ -+ "%*[^\n]", /* some rubbish at the end */ -+ &path); -+ if (k != 1) { - if (k == EOF) - break; - - log_warning("Failed to parse /proc/self/mountinfo:%u.", i); -- -- free(path); - continue; - } - - p = cunescape(path); -- free(path); -- -- if (!p) { -- r = -ENOMEM; -- goto finish; -- } -+ if (!p) -+ return -ENOMEM; - - /* Ignore mount points we can't unmount because they - * are API or because we are keeping them open (like -@@ -118,22 +112,17 @@ static int mount_points_list_get(MountPoint **head) { - continue; - } - -- if (!(m = new0(MountPoint, 1))) { -+ m = new0(MountPoint, 1); -+ if (!m) { - free(p); -- r = -ENOMEM; -- goto finish; -+ return -ENOMEM; - } - - m->path = p; - LIST_PREPEND(mount_point, *head, m); - } - -- r = 0; -- --finish: -- fclose(proc_self_mountinfo); -- -- return r; -+ return 0; - } - - static int swap_list_get(MountPoint **head) { --- -1.7.9.2 - diff --git a/0001-units-introduce-network-pre.target-as-place-to-hook-.patch b/0001-units-introduce-network-pre.target-as-place-to-hook-.patch deleted file mode 100644 index ffbc0569..00000000 --- a/0001-units-introduce-network-pre.target-as-place-to-hook-.patch +++ /dev/null @@ -1,126 +0,0 @@ -From a4a878d04045b46fa9783664e3643a890b356790 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 11 Jun 2014 11:33:02 +0200 -Subject: [PATCH] units: introduce network-pre.target as place to hook in - firewalls - -network-pre.target is a passive target that should be pulled in by -services that want to be executed before any network is configured (for -example: firewall scrips). - -network-pre.target should be ordered before all network managemet -services (but not be pulled in by them). - -network-pre.target should be order after all services that want to be -executed before any network is configured (and be pulled in by them). ---- - Makefile.am | 1 + - man/systemd.special.xml | 15 +++++++++++++++ - units/local-fs.target | 2 -- - units/network-pre.target | 12 ++++++++++++ - units/network.target | 2 ++ - units/systemd-networkd.service.in | 2 +- - 6 files changed, 31 insertions(+), 3 deletions(-) - create mode 100644 units/network-pre.target - -diff --git Makefile.am Makefile.am -index 3ea95e9..8514ec9 100644 ---- Makefile.am -+++ Makefile.am -@@ -413,6 +413,7 @@ dist_systemunit_DATA = \ - units/remote-fs.target \ - units/remote-fs-pre.target \ - units/network.target \ -+ units/network-pre.target \ - units/network-online.target \ - units/nss-lookup.target \ - units/nss-user-lookup.target \ -diff --git man/systemd.special.xml man/systemd.special.xml -index 38b94a7..cda6edd 100644 ---- man/systemd.special.xml -+++ man/systemd.special.xml -@@ -72,6 +72,7 @@ - multi-user.target, - network.target, - network-online.target, -+ network-pre.target, - nss-lookup.target, - nss-user-lookup.target, - paths.target, -@@ -891,6 +892,20 @@ - - - -+ network-pre.target -+ -+ This passive target unit -+ may be pulled in by services -+ that want to run before any -+ network is set up, for example -+ for the purpose of setting up a -+ firewall. All network -+ management software orders -+ itself after this target, but -+ does not pull it in. -+ -+ -+ - nss-lookup.target - - A target that should be -diff --git units/local-fs.target units/local-fs.target -index ae3cedc..70cb13f 100644 ---- units/local-fs.target -+++ units/local-fs.target -@@ -9,7 +9,5 @@ - Description=Local File Systems - Documentation=man:systemd.special(7) - After=local-fs-pre.target --DefaultDependencies=no --Conflicts=shutdown.target - OnFailure=emergency.target - OnFailureJobMode=replace-irreversibly -diff --git units/network-pre.target units/network-pre.target -new file mode 100644 -index 0000000..0ea4bc7 ---- /dev/null -+++ units/network-pre.target -@@ -0,0 +1,12 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+ -+[Unit] -+Description=Network (Pre) -+Documentation=man:systemd.special(7) -+Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -+RefuseManualStart=yes -diff --git units/network.target units/network.target -index 65fc64b..61ebdca 100644 ---- units/network.target -+++ units/network.target -@@ -9,3 +9,5 @@ - Description=Network - Documentation=man:systemd.special(7) - Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -+After=network-pre.target -+RefuseManualStart=yes -diff --git units/systemd-networkd.service.in units/systemd-networkd.service.in -index 373ac4e..48f4d63 100644 ---- units/systemd-networkd.service.in -+++ units/systemd-networkd.service.in -@@ -9,7 +9,7 @@ - Description=Network Service - Documentation=man:systemd-networkd.service(8) - DefaultDependencies=no --After=dbus.service -+After=dbus.service network-pre.target - Before=network.target - Wants=network.target - ConditionCapability=CAP_NET_ADMIN --- -1.7.9.2 - diff --git a/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch b/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch deleted file mode 100644 index bb9010bd..00000000 --- a/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch +++ /dev/null @@ -1,46 +0,0 @@ -Based on d3381512282f2ca1c7669f77fb736a90fdce6982 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 8 Jul 2014 17:42:23 +0200 -Subject: [PATCH] units: make ExecStopPost action part of ExecStart - -Currently after exiting rescue shell we isolate default target. User -might want to isolate to some other target than default one. However -issuing systemctl isolate command to desired target would bring system -to default target as a consequence of running ExecStopPost action. - -Having common ancestor for rescue shell and possible followup systemctl -default command should fix this. If user exits rescue shell we will -proceed with isolating default target, otherwise, on manual isolate, -parent shell process is terminated and we don't isolate default target, -but target chosen by user. - -Suggested-by: Michal Schmidt ---- - units/emergency.service.in | 3 +-- - units/rescue.service.m4.in | 3 +-- - 2 files changed, 2 insertions(+), 4 deletions(-) - ---- units/emergency.service.in -+++ units/emergency.service.in 2014-07-10 13:31:50.662235825 +0000 -@@ -18,8 +18,7 @@ WorkingDirectory=/root - ExecStartPre=-/usr/bin/plymouth quit - ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' --ExecStart=-/usr/sbin/sulogin --ExecStopPost=@SYSTEMCTL@ --fail --no-block default -+ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" - Type=idle - StandardInput=tty-force - StandardOutput=inherit ---- units/rescue.service.m4.in -+++ units/rescue.service.m4.in 2014-07-10 13:32:15.678235509 +0000 -@@ -19,8 +19,7 @@ WorkingDirectory=/root - ExecStartPre=-/usr/bin/plymouth quit - ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' --ExecStart=-/usr/sbin/sulogin --ExecStopPost=-@SYSTEMCTL@ --fail --no-block default -+ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" - Type=idle - StandardInput=tty-force - StandardOutput=inherit diff --git a/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch b/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch deleted file mode 100644 index 052eeca6..00000000 --- a/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch +++ /dev/null @@ -1,32 +0,0 @@ -Based on 812bd1e6ab4c463507557f2bdbb8875fedd92ade Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 21 Nov 2014 01:20:57 +0100 -Subject: [PATCH] units: make sure rfkill service is bount to the actual - hardware - ---- - rules/99-systemd.rules.in | 2 +- - units/systemd-rfkill@.service.in | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in -@@ -62,7 +62,7 @@ SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="pa - - # Pull in rfkill save/restore for all rfkill devices - --SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" -+SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/rfkill/devices/%k", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" - - # Asynchronously mount file systems implemented by these modules as - # soon as they are loaded. ---- units/systemd-rfkill@.service.in -+++ units/systemd-rfkill@.service.in 2014-12-05 11:52:59.433518948 +0000 -@@ -9,6 +9,7 @@ - Description=Load/Save RF Kill Switch Status of %I - Documentation=man:systemd-rfkill@.service(8) - DefaultDependencies=no -+BindsTo=sys-subsystem-rfkill-devices-%i.device - RequiresMountsFor=/var/lib/systemd/rfkill - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service diff --git a/0001-units-order-network-online.target-after-network.targ.patch b/0001-units-order-network-online.target-after-network.targ.patch deleted file mode 100644 index d09fa29e..00000000 --- a/0001-units-order-network-online.target-after-network.targ.patch +++ /dev/null @@ -1,20 +0,0 @@ -Based on 58e027023b47b32e42cf93dd4a629b869ee1ef25 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 11 Jun 2014 14:58:32 +0200 -Subject: [PATCH] units: order network-online.target after network.target - -There might be implementations around where the network-online logic -might not talk to any network configuration service (and thus not have -to wait for it), hence let's explicitly order network-online.target -after network.target to avoid any ambiguities. ---- - units/network-online.target | 1 + - 1 file changed, 1 insertion(+) - ---- units/network-online.target -+++ units/network-online.target 2014-06-26 00:00:00.000000000 +0000 -@@ -9,3 +9,4 @@ - Description=Network is Online - Documentation=man:systemd.special(7) - Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -+After=network.target diff --git a/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch b/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch deleted file mode 100644 index 6c60f8b7..00000000 --- a/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 0b73eab7a2185ae0377650e3fdb8208347a8a575 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Sat, 23 Mar 2013 03:54:16 +0100 -Subject: [PATCH] units/systemd-sysctl.service.in: run after load-modules - -Modules might or will register new sysctl options. - -[zj: This mechanism of adding modules just to reliably set sysctl -attributes is not ideal. Nevertheless, sysctl for dynamically created -attributes is simply broken, and this is the easiest workaround.] - -https://bugzilla.redhat.com/show_bug.cgi?id=1022977 -https://bugzilla.novell.com/show_bug.cgi?id=725412 ---- - units/systemd-sysctl.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git units/systemd-sysctl.service.in units/systemd-sysctl.service.in -index 5c7c5d7..ade9dc3 100644 ---- units/systemd-sysctl.service.in -+++ units/systemd-sysctl.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service - DefaultDependencies=no - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service -+After=systemd-modules-load.service - Before=sysinit.target shutdown.target - ConditionPathIsReadWrite=/proc/sys/ - ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch b/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch deleted file mode 100644 index 8aa6da5f..00000000 --- a/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8c94052ee543c3598a3c7b0c46688150aa2c6168 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 27 Oct 2014 17:15:42 +0100 -Subject: [PATCH 1/2] units: tmpfiles-setup-dev - allow unsafe file creation to - happen in /dev at boot - -This will allow us to mark static device nodes with '!' to indicate that they should only be created at early boot. ---- - units/systemd-tmpfiles-setup-dev.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in -index f3833fd..0123a03 100644 ---- a/units/systemd-tmpfiles-setup-dev.service.in -+++ b/units/systemd-tmpfiles-setup-dev.service.in -@@ -17,4 +17,4 @@ ConditionCapability=CAP_SYS_MODULE - [Service] - Type=oneshot - RemainAfterExit=yes --ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create -+ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create --boot --- -2.1.2 - diff --git a/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch b/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch deleted file mode 100644 index 9a6c97a5..00000000 --- a/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3a8a916338d8446b938f3cf40f6aae0c611892e3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 11:47:10 +0200 -Subject: [PATCH] util: consider 0x7F a control chracter (which it is: DEL) - -Let's better be safe than sorry. ---- - src/shared/util.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git src/shared/util.c src/shared/util.c -index 3d875c7..d25ee66 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1608,8 +1608,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - return -ETIMEDOUT; - } - -+ errno = 0; - if (!fgets(line, sizeof(line), f)) -- return -EIO; -+ return errno ? -errno : -EIO; - - truncate_nl(line); - -@@ -5355,6 +5356,9 @@ bool string_is_safe(const char *p) { - if (*t > 0 && *t < ' ') - return false; - -+ if (*t == 127) -+ return false; -+ - if (strchr("\\\"\'", *t)) - return false; - } -@@ -5371,10 +5375,14 @@ bool string_has_cc(const char *p) { - - assert(p); - -- for (t = p; *t; t++) -+ for (t = p; *t; t++) { - if (*t > 0 && *t < ' ' && *t != '\t') - return true; - -+ if (*t == 127) -+ return true; -+ } -+ - return false; - } - --- -1.7.9.2 - diff --git a/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch b/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch deleted file mode 100644 index bf379908..00000000 --- a/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch +++ /dev/null @@ -1,56 +0,0 @@ -From ff452e76e2c0f89a32542b7179bb2fd538335933 Mon Sep 17 00:00:00 2001 -From: Carl Schaefer -Date: Mon, 23 Jun 2014 18:23:48 +0200 -Subject: [PATCH] vconsole: also copy character maps (not just fonts) from vt1 - to vt2, vt3, ... - -https://bugs.freedesktop.org/show_bug.cgi?id=78796 ---- - src/vconsole/vconsole-setup.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git src/vconsole/vconsole-setup.c src/vconsole/vconsole-setup.c -index 0f2b706..e0c4050 100644 ---- src/vconsole/vconsole-setup.c -+++ src/vconsole/vconsole-setup.c -@@ -180,6 +180,10 @@ static int font_load(const char *vc, const char *font, const char *map, const ch - */ - static void font_copy_to_all_vcs(int fd) { - struct vt_stat vcs = {}; -+ unsigned char map8[E_TABSZ]; -+ unsigned short map16[E_TABSZ]; -+ struct unimapdesc unimapd; -+ struct unipair unipairs[USHRT_MAX]; - int i, r; - - /* get active, and 16 bit mask of used VT numbers */ -@@ -209,6 +213,26 @@ static void font_copy_to_all_vcs(int fd) { - cfo.op = KD_FONT_OP_COPY; - cfo.height = vcs.v_active-1; /* tty1 == index 0 */ - ioctl(vcfd, KDFONTOP, &cfo); -+ -+ /* copy map of 8bit chars */ -+ if (ioctl(fd, GIO_SCRNMAP, map8) >= 0) -+ ioctl(vcfd, PIO_SCRNMAP, map8); -+ -+ /* copy map of 8bit chars -> 16bit Unicode values */ -+ if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0) -+ ioctl(vcfd, PIO_UNISCRNMAP, map16); -+ -+ /* copy unicode translation table */ -+ /* unimapd is a ushort count and a pointer to an -+ array of struct unipair { ushort, ushort } */ -+ unimapd.entries = unipairs; -+ unimapd.entry_ct = USHRT_MAX; -+ if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) { -+ struct unimapinit adv = { 0, 0, 0 }; -+ -+ ioctl(vcfd, PIO_UNIMAPCLR, &adv); -+ ioctl(vcfd, PIO_UNIMAP, &unimapd); -+ } - } - } - --- -1.7.9.2 - diff --git a/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch b/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch deleted file mode 100644 index a5358cc9..00000000 --- a/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 893e72da6b27c21b102e1589276e651e9e4f591c Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 9 Sep 2014 18:14:25 +0200 -Subject: [PATCH] virt: detect that we are running inside the docker container - ---- - src/shared/virt.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git src/shared/virt.c src/shared/virt.c -index b436895..f9c4e67 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -310,6 +310,8 @@ int detect_container(const char **id) { - _id = "lxc-libvirt"; - else if (streq(e, "systemd-nspawn")) - _id = "systemd-nspawn"; -+ else if (streq(e, "docker")) -+ _id = "docker"; - else - _id = "other"; - --- -1.7.9.2 - diff --git a/0001-virt-rework-container-detection-logic.patch b/0001-virt-rework-container-detection-logic.patch deleted file mode 100644 index 4adc20a2..00000000 --- a/0001-virt-rework-container-detection-logic.patch +++ /dev/null @@ -1,159 +0,0 @@ -Based on fdd25311706bd32580ec4d43211cdf4665d2f9de Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 28 May 2014 18:37:11 +0800 -Subject: [PATCH] virt: rework container detection logic - -Instead of accessing /proc/1/environ directly, trying to read the -$container variable from it, let's make PID 1 save the contents of that -variable to /run/systemd/container. This allows us to detect containers -without the need for CAP_SYS_PTRACE, which allows us to drop it from a -number of daemons and from the file capabilities of systemd-detect-virt. - -Also, don't consider chroot a container technology anymore. After all, -we don't consider file system namespaces container technology anymore, -and hence chroot() should be considered a container even less. ---- - Makefile.am | 3 --- - configure.ac | 2 -- - src/core/main.c | 12 ++++++++++++ - src/shared/virt.c | 48 ++++++++++++++++++++++++++++++------------------ - 4 files changed, 42 insertions(+), 23 deletions(-) - -diff --git Makefile.am Makefile.am -index 5b26bc3..f66ef42 100644 ---- Makefile.am -+++ Makefile.am -@@ -1798,9 +1798,6 @@ systemd_detect_virt_SOURCES = \ - systemd_detect_virt_LDADD = \ - libsystemd-shared.la - --systemd-detect-virt-install-hook: -- -$(SETCAP) cap_dac_override,cap_sys_ptrace=ep $(DESTDIR)$(bindir)/systemd-detect-virt -- - INSTALL_EXEC_HOOKS += \ - systemd-detect-virt-install-hook - ---- configure.ac -+++ configure.ac 2014-06-03 14:16:45.046237826 +0000 -@@ -68,8 +68,6 @@ AC_PATH_PROG([XSLTPROC], [xsltproc]) - AC_PATH_PROG([QUOTAON], [quotaon], [/usr/sbin/quotaon]) - AC_PATH_PROG([QUOTACHECK], [quotacheck], [/usr/sbin/quotacheck]) - --AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap]) -- - AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) - - AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod]) -diff --git src/core/main.c src/core/main.c -index 77cc2fb..d5d1ee2 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1261,6 +1261,16 @@ static int status_welcome(void) { - isempty(pretty_name) ? "Linux" : pretty_name); - } - -+static int write_container_id(void) { -+ const char *c; -+ -+ c = getenv("container"); -+ if (isempty(c)) -+ return 0; -+ -+ return write_string_file("/run/systemd/container", c); -+} -+ - int main(int argc, char *argv[]) { - Manager *m = NULL; - int r, retval = EXIT_FAILURE; -@@ -1544,6 +1554,8 @@ int main(int argc, char *argv[]) { - if (virtualization) - log_info("Detected virtualization '%s'.", virtualization); - -+ write_container_id(); -+ - log_info("Detected architecture '%s'.", architecture_to_string(uname_architecture())); - - if (in_initrd()) -diff --git src/shared/virt.c src/shared/virt.c -index 0db0514..1e227c5 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -217,8 +217,8 @@ int detect_container(const char **id) { - static thread_local int cached_found = -1; - static thread_local const char *cached_id = NULL; - -- _cleanup_free_ char *e = NULL; -- const char *_id = NULL; -+ _cleanup_free_ char *m = NULL; -+ const char *_id = NULL, *e = NULL; - int r; - - if (_likely_(cached_found >= 0)) { -@@ -229,17 +229,6 @@ int detect_container(const char **id) { - return cached_found; - } - -- /* Unfortunately many of these operations require root access -- * in one way or another */ -- -- r = running_in_chroot(); -- if (r < 0) -- return r; -- if (r > 0) { -- _id = "chroot"; -- goto finish; -- } -- - /* /proc/vz exists in container and outside of the container, - * /proc/bc only outside of the container. */ - if (access("/proc/vz", F_OK) >= 0 && -@@ -249,11 +238,32 @@ int detect_container(const char **id) { - goto finish; - } - -- r = getenv_for_pid(1, "container", &e); -- if (r < 0) -- return r; -- if (r == 0) -- goto finish; -+ if (getpid() == 1) { -+ /* If we are PID 1 we can just check our own -+ * environment variable */ -+ -+ e = getenv("container"); -+ if (isempty(e)) { -+ r = 0; -+ goto finish; -+ } -+ } else { -+ -+ /* Otherwise, PID 1 dropped this information into a -+ * file in /run. This is better than accessing -+ * /proc/1/environ, since we don't need CAP_SYS_PTRACE -+ * for that. */ -+ -+ r = read_one_line_file("/run/systemd/container", &m); -+ if (r == -ENOENT) { -+ r = 0; -+ goto finish; -+ } -+ if (r < 0) -+ return r; -+ -+ e = m; -+ } - - /* We only recognize a selected few here, since we want to - * enforce a redacted namespace */ -@@ -266,6 +276,8 @@ int detect_container(const char **id) { - else - _id = "other"; - -+ r = 1; -+ - finish: - cached_found = r; - --- -1.7.9.2 - diff --git a/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch b/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch deleted file mode 100644 index 30dc17d0..00000000 --- a/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 15f392394e75ffb7f318920008fd1bbe4e82b488 Mon Sep 17 00:00:00 2001 -From: Scott Thrasher -Date: Wed, 26 Mar 2014 18:48:13 -0700 -Subject: [PATCH] Add hwdb entry for Samsung Series 7 Ultra - ---- - hwdb/60-keyboard.hwdb | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index bd8fd10..832c686 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -924,6 +924,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr* - KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up - KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle - -+# Series 7 Ultra -+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* -+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings -+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down -+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up -+ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer -+ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch -+ - # SQ1US - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* - KEYBOARD_KEY_d4=menu --- -1.7.9.2 - diff --git a/0002-Be-more-verbose-when-bind-or-listen-fails.patch b/0002-Be-more-verbose-when-bind-or-listen-fails.patch deleted file mode 100644 index 0a8e80e6..00000000 --- a/0002-Be-more-verbose-when-bind-or-listen-fails.patch +++ /dev/null @@ -1,92 +0,0 @@ -Based on 6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 3 Mar 2014 19:49:40 -0500 -Subject: [PATCH] Be more verbose when bind or listen fails - -Also be more verbose in devnode_acl_all(). ---- - src/core/manager.c | 2 +- - src/journal/journald-native.c | 2 +- - src/journal/journald-stream.c | 4 ++-- - src/journal/journald-syslog.c | 2 +- - src/login/logind-acl.c | 5 ++++- - src/shared/ask-password-api.c | 2 +- - 6 files changed, 10 insertions(+), 7 deletions(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-07-21 10:57:20.286367050 +0000 -@@ -571,7 +571,7 @@ static int manager_setup_notify(Manager - - r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); - return -errno; - } - ---- src/journal/journald-native.c -+++ src/journal/journald-native.c 2014-07-21 00:00:00.000000000 +0000 -@@ -405,7 +405,7 @@ int server_open_native_socket(Server*s) - - r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } - ---- src/journal/journald-stream.c -+++ src/journal/journald-stream.c 2014-07-21 00:00:00.000000000 +0000 -@@ -447,14 +447,14 @@ int server_open_stdout_socket(Server *s) - - r = bind(s->stdout_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } - - chmod(sa.un.sun_path, 0666); - - if (listen(s->stdout_fd, SOMAXCONN) < 0) { -- log_error("listen() failed: %m"); -+ log_error("listen(%s) failed: %m", sa.un.sun_path); - return -errno; - } - } else ---- src/journal/journald-syslog.c -+++ src/journal/journald-syslog.c 2014-07-21 00:00:00.000000000 +0000 -@@ -437,7 +437,7 @@ int server_open_syslog_socket(Server *s) - - r = bind(s->syslog_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } - ---- src/login/logind-acl.c -+++ src/login/logind-acl.c 2014-07-21 10:59:04.986235573 +0000 -@@ -277,7 +277,10 @@ int devnode_acl_all(struct udev *udev, - SET_FOREACH(n, nodes, i) { - int k; - -- log_debug("Fixing up ACLs at %s for seat %s", n, seat); -+ log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"→"UID_FMT"%s%s)", -+ n, seat, old_uid, new_uid, -+ del ? " del" : "", add ? " add" : ""); -+ - k = devnode_acl(n, flush, del, old_uid, add, new_uid); - if (k < 0) - r = k; ---- src/shared/ask-password-api.c -+++ src/shared/ask-password-api.c 2014-07-21 00:00:00.000000000 +0000 -@@ -275,7 +275,7 @@ static int create_socket(char **name) { - - if (r < 0) { - r = -errno; -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - goto fail; - } - diff --git a/0002-analyze-avoid-a-null-dereference.patch b/0002-analyze-avoid-a-null-dereference.patch deleted file mode 100644 index b7662371..00000000 --- a/0002-analyze-avoid-a-null-dereference.patch +++ /dev/null @@ -1,30 +0,0 @@ -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/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch b/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch deleted file mode 100644 index c18fcb9e..00000000 --- a/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 1f89214e6e990a0b552f6854f87f8514ca384956 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Fri, 21 Feb 2014 11:55:24 +0100 -Subject: [PATCH] analyze/run: use bus_open_transport_systemd instead of - bus_open_transport - -Both systemd-analyze and systemd-run only access org.freedesktop.systemd1 -on the bus. This patch allows using systemd-run --user and systemd-analyze ---user even if the user session's bus is not properly integrated with the -systemd user unit. - -https://bugs.freedesktop.org/show_bug.cgi?id=79252 and other reports... ---- - src/analyze/analyze.c | 2 +- - src/run/run.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/analyze/analyze.c src/analyze/analyze.c -index 4c5fcfe..0a4190c 100644 ---- src/analyze/analyze.c -+++ src/analyze/analyze.c -@@ -1335,7 +1335,7 @@ int main(int argc, char *argv[]) { - if (r <= 0) - goto finish; - -- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); -+ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); - if (r < 0) { - log_error("Failed to create bus connection: %s", strerror(-r)); - goto finish; -diff --git src/run/run.c src/run/run.c -index e4c695c..9d5527b 100644 ---- src/run/run.c -+++ src/run/run.c -@@ -593,7 +593,7 @@ int main(int argc, char* argv[]) { - arg_description = description; - } - -- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); -+ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); - if (r < 0) { - log_error("Failed to create bus connection: %s", strerror(-r)); - goto finish; --- -1.7.9.2 - diff --git a/0002-architecture-Add-cris.patch b/0002-architecture-Add-cris.patch deleted file mode 100644 index a93d29d9..00000000 --- a/0002-architecture-Add-cris.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 86bafac9540ba9e111ccba2fdf4161fe3a67cd3b Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Tue, 4 Mar 2014 13:58:35 +0100 -Subject: [PATCH] architecture: Add cris - ---- - src/shared/architecture.c | 3 +++ - src/shared/architecture.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index fcdb3d5..9e0c3ef 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -114,6 +114,8 @@ Architecture uname_architecture(void) { - { "m68k", ARCHITECTURE_M68K }, - #elif defined(__tilegx__) - { "tilegx", ARCHITECTURE_TILEGX }, -+#elif defined(__cris__) -+ { "cris", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" - #endif -@@ -161,6 +163,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SH64] = "sh64", - [ARCHITECTURE_M68K] = "m68k", - [ARCHITECTURE_TILEGX] = "tilegx", -+ [ARCHITECTURE_CRIS] = "cris", - }; - - DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); -diff --git src/shared/architecture.h src/shared/architecture.h -index e589a91..20e848b 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -48,6 +48,7 @@ typedef enum Architecture { - ARCHITECTURE_SH64, - ARCHITECTURE_M68K, - ARCHITECTURE_TILEGX, -+ ARCHITECTURE_CRIS, - _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 - } Architecture; -@@ -110,6 +111,8 @@ Architecture uname_architecture(void); - # define native_architecture() ARCHITECTURE_M68K - #elif defined(__tilegx__) - # define native_architecture() ARCHITECTURE_TILEGX -+#elif defined(__cris__) -+# define native_architecture() ARCHITECTURE_CRIS - #else - #error "Please register your architecture here!" - #endif --- -1.7.9.2 - diff --git a/0002-backlight-do-nothing-if-max_brightness-is-0.patch b/0002-backlight-do-nothing-if-max_brightness-is-0.patch deleted file mode 100644 index 8ca31e28..00000000 --- a/0002-backlight-do-nothing-if-max_brightness-is-0.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 3cadce7d33e263ec7a6a83c00c11144930258b22 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Thu, 27 Mar 2014 23:41:59 +0100 -Subject: [PATCH] backlight: do nothing if max_brightness is 0 - -On virtually any newer Asus mainboard, the eeepc-wmi driver is loaded. -It exposes a backlight device despite the lack of any physical backlight -devices. This fake backlight device has max_brightness set to 0. Since -the introduction of the clamp_brightness function, systemd-backlight -tries to write '1' to brightness and fails. - -This patch changes systemd-backlight to exit gracefully when -max_brightness is 0 before performing any action. This affects -both the load and save actions. ---- - src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++-------------- - 1 file changed, 30 insertions(+), 14 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index abf8bcf..ce0385b 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -192,30 +192,37 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { - return true; - } - --/* Some systems turn the backlight all the way off at the lowest levels. -- * clamp_brightness clamps the saved brightness to at least 1 or 5% of -- * max_brightness. This avoids preserving an unreadably dim screen, which -- * would otherwise force the user to disable state restoration. */ --static void clamp_brightness(struct udev_device *device, char **value) { -+static unsigned get_max_brightness(struct udev_device *device) { - int r; - const char *max_brightness_str; -- unsigned brightness, max_brightness, new_brightness; -+ unsigned max_brightness; - - max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); - if (!max_brightness_str) { -- log_warning("Failed to read max_brightness attribute; not checking saved brightness"); -- return; -+ log_warning("Failed to read max_brightness attribute"); -+ return 0; - } - -- r = safe_atou(*value, &brightness); -+ r = safe_atou(max_brightness_str, &max_brightness); - if (r < 0) { -- log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); -- return; -+ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ return 0; - } - -- r = safe_atou(max_brightness_str, &max_brightness); -+ return max_brightness; -+} -+ -+/* Some systems turn the backlight all the way off at the lowest levels. -+ * clamp_brightness clamps the saved brightness to at least 1 or 5% of -+ * max_brightness. This avoids preserving an unreadably dim screen, which -+ * would otherwise force the user to disable state restoration. */ -+static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { -+ int r; -+ unsigned brightness, new_brightness; -+ -+ r = safe_atou(*value, &brightness); - if (r < 0) { -- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); - return; - } - -@@ -239,6 +246,7 @@ int main(int argc, char *argv[]) { - _cleanup_udev_device_unref_ struct udev_device *device = NULL; - _cleanup_free_ char *saved = NULL, *ss = NULL, *escaped_ss = NULL, *escaped_sysname = NULL, *escaped_path_id = NULL; - const char *sysname, *path_id; -+ unsigned max_brightness; - int r; - - if (argc != 3) { -@@ -294,6 +302,14 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -+ /* If max_brightness is 0, then there is no actual backlight -+ * device. This happens on desktops with Asus mainboards -+ * that load the eeepc-wmi module. -+ */ -+ max_brightness = get_max_brightness(device); -+ if (max_brightness == 0) -+ return EXIT_SUCCESS; -+ - escaped_ss = cescape(ss); - if (!escaped_ss) { - log_oom(); -@@ -348,7 +364,7 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- clamp_brightness(device, &value); -+ clamp_brightness(device, &value, max_brightness); - - r = udev_device_set_sysattr_value(device, "brightness", value); - if (r < 0) { --- -1.7.9.2 - diff --git a/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch b/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch deleted file mode 100644 index 8c1b12e2..00000000 --- a/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1c92ff85b786c423f4436ec26007e79369c9ac05 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 26 Sep 2014 22:01:32 +0200 -Subject: [PATCH] bootchart: use 'n/a' if PRETTY_NAME is not found - -Spotted with coverity. If parsing both /etc/os-release and -/usr/lib/os-release fails then null would be passed on. The calls -to parse the two files are allowed to fail. A empty /etc may not -have had the /etc/os-release symlink restored yet and we just -try again in the loop. If for whatever reason that does not happen -then we now pass on 'n/a' instead of null. ---- - src/bootchart/bootchart.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c -index 366a5ab..813e38d 100644 ---- src/bootchart/bootchart.c -+++ src/bootchart/bootchart.c -@@ -471,7 +471,7 @@ int main(int argc, char *argv[]) { - exit (EXIT_FAILURE); - } - -- svg_do(build); -+ svg_do(strna(build)); - - fprintf(stderr, "systemd-bootchart wrote %s\n", output_file); - --- -1.7.9.2 - diff --git a/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch b/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch deleted file mode 100644 index 718f6862..00000000 --- a/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 82923adfe5c4fa09cc91fd2a2e374c936cd4a186 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 13 Mar 2014 20:00:50 +0100 -Subject: [PATCH] bus: fix memory leak when kdbus is not enabled - ---- - src/libsystemd/sd-bus/sd-bus.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index ffa3369..ca7c428 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -1189,7 +1189,8 @@ _public_ int sd_bus_open_user(sd_bus **ret) { - #ifdef ENABLE_KDBUS - asprintf(&b->address, KERNEL_USER_BUS_FMT, (unsigned long) getuid()); - #else -- return -ECONNREFUSED; -+ r = -ECONNREFUSED; -+ goto fail; - #endif - } - --- -1.7.9.2 - diff --git a/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch b/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch deleted file mode 100644 index 3961c020..00000000 --- a/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch +++ /dev/null @@ -1,59 +0,0 @@ -From b27adf354a83ad25f4a209c0a6f7989ecab7b4e2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 13:31:25 +0200 -Subject: [PATCH] bus: make use of sd_bus_try_close() in exit-on-idle services - ---- - src/libsystemd/sd-bus/bus-util.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c -index 6bd21cc..6441c5b 100644 ---- src/libsystemd/sd-bus/bus-util.c -+++ src/libsystemd/sd-bus/bus-util.c -@@ -43,7 +43,9 @@ static int name_owner_change_callback(sd_bus *bus, sd_bus_message *m, void *user - assert(m); - assert(e); - -+ sd_bus_close(bus); - sd_event_exit(e, 0); -+ - return 1; - } - -@@ -121,11 +123,30 @@ int bus_event_loop_with_idle( - return r; - - if (r == 0 && !exiting) { -- r = bus_async_unregister_and_exit(e, bus, name); -+ -+ r = sd_bus_try_close(bus); -+ if (r == -EBUSY) -+ continue; -+ -+ if (r == -ENOTSUP) { -+ /* Fallback for dbus1 connections: we -+ * unregister the name and wait for -+ * the response to come through for -+ * it */ -+ -+ r = bus_async_unregister_and_exit(e, bus, name); -+ if (r < 0) -+ return r; -+ -+ exiting = true; -+ continue; -+ } -+ - if (r < 0) - return r; - -- exiting = true; -+ sd_event_exit(e, 0); -+ break; - } - } - --- -1.7.9.2 - diff --git a/0002-bus-remove-unused-check.patch b/0002-bus-remove-unused-check.patch deleted file mode 100644 index 32c35276..00000000 --- a/0002-bus-remove-unused-check.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 04c553e322680b6fcdf5b271e84b0b4b0ad8d5f9 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 23 Sep 2014 21:34:21 +0200 -Subject: [PATCH] bus: remove unused check - -strerror_r does not return null here and even if it did we would have -problems already at the preceding strlen call. - -Found by coverity. Fixes: CID#1237770 ---- - src/libsystemd/sd-bus/bus-error.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c -index c2e41fb..abdfd73 100644 ---- src/libsystemd/sd-bus/bus-error.c -+++ src/libsystemd/sd-bus/bus-error.c -@@ -312,7 +312,7 @@ static void bus_error_strerror(sd_bus_error *e, int error) { - continue; - } - -- if (!x || errno) { -+ if (errno) { - free(m); - return; - } --- -1.7.9.2 - diff --git a/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch b/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch deleted file mode 100644 index ec455770..00000000 --- a/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch +++ /dev/null @@ -1,27 +0,0 @@ -From cdd7b7dfd44649b204c43e907f03d4294de4f28a Mon Sep 17 00:00:00 2001 -From: Hristo Venev -Date: Mon, 23 Jun 2014 18:53:04 +0200 -Subject: [PATCH] core: make sure Environment fields passed in for transient - units are properly written to unit files - -https://bugs.freedesktop.org/show_bug.cgi?id=76744 ---- - src/core/dbus-execute.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/dbus-execute.c src/core/dbus-execute.c -index cb9a077..ecbadd7 100644 ---- src/core/dbus-execute.c -+++ src/core/dbus-execute.c -@@ -848,7 +848,7 @@ int bus_exec_context_set_transient_property( - strv_free(c->environment); - c->environment = e; - -- joined = strv_join(c->environment, " "); -+ joined = strv_join_quoted(c->environment); - if (!joined) - return -ENOMEM; - --- -1.7.9.2 - diff --git a/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch b/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch deleted file mode 100644 index 61888e5f..00000000 --- a/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 375ae4aa4d2f89ae8afdd27e9f2b8336fcc2a046 Mon Sep 17 00:00:00 2001 -From: Uoti Urpala -Date: Mon, 23 Jun 2014 16:50:03 +0300 -Subject: [PATCH] core/transaction: fix cycle break attempts outside - transaction - -Patch fixes some incorrect-looking code in transaction.c. -It could fix cases where Debian users with bad package configurations -had systemd go into an infinite loop printing messages about breaking an -ordering cycle, though I have not reproduced that problem myself. - -transaction_verify_order_one() considers jobs/units outside current -transaction when checking whether ordering dependencies cause cycles. -It would also incorrectly try to break cycles at these jobs; this -cannot work, as the break action is to remove the job from the -transaction, which is a no-op if the job isn't part of the transaction -to begin with. The unit_matters_to_anchor() test also looks like it -would not work correctly for non-transaction jobs. Add a check to -verify that the unit is part of the transaction before considering a -job a candidate for deletion. - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752259 ---- - src/core/transaction.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/transaction.c src/core/transaction.c -index d23a45c..805d40a 100644 ---- src/core/transaction.c -+++ src/core/transaction.c -@@ -381,7 +381,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi - "Found dependency on %s/%s", - k->unit->id, job_type_to_string(k->type)); - -- if (!delete && -+ if (!delete && hashmap_get(tr->jobs, k->unit) && - !unit_matters_to_anchor(k->unit, k)) { - /* Ok, we can drop this one, so let's - * do so. */ --- -1.7.9.2 - diff --git a/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch b/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch deleted file mode 100644 index 3a136da5..00000000 --- a/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 4c3f1641f13b7687a0dc234d3ae387b7c40494ff Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 19 Nov 2014 20:52:23 +0100 -Subject: [PATCH] core: watchdog bus properties cannot be both writable and - constant - ---- - src/core/dbus-manager.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c 2014-11-20 13:43:06.781518488 +0000 -@@ -1599,8 +1599,8 @@ const sd_bus_vtable bus_manager_vtable[] - SD_BUS_PROPERTY("UnitPath", "as", NULL, offsetof(Manager, lookup_paths.unit_path), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("DefaultStandardOutput", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("DefaultStandardError", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), -- SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), -- SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), -+ SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), 0), -+ SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), 0), - SD_BUS_PROPERTY("ControlGroup", "s", NULL, offsetof(Manager, cgroup_root), 0), - - SD_BUS_METHOD("GetUnit", "s", "o", method_get_unit, SD_BUS_VTABLE_UNPRIVILEGED), diff --git a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch deleted file mode 100644 index 67454ead..00000000 --- a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 17:11:39 +0100 -Subject: [PATCH] execute: free directory path if we fail to remove it because - we cannot allocate a thread - ---- - src/core/execute.c | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git src/core/execute.c src/core/execute.c -index 9de6e87..3312885 100644 ---- src/core/execute.c -+++ src/core/execute.c -@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { - } - - void exec_runtime_destroy(ExecRuntime *rt) { -+ int r; -+ - if (!rt) - return; - -@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { - - if (rt->tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); -+ free(rt->tmp_dir); -+ } -+ - rt->tmp_dir = NULL; - } - - if (rt->var_tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); -+ free(rt->var_tmp_dir); -+ } -+ - rt->var_tmp_dir = NULL; - } - --- -1.7.9.2 - diff --git a/0002-fsck-include-device-name-in-the-message-about-missin.patch b/0002-fsck-include-device-name-in-the-message-about-missin.patch deleted file mode 100644 index 7ec3506f..00000000 --- a/0002-fsck-include-device-name-in-the-message-about-missin.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 8d2a6145334257c8a9ceabc9dd52dff06cca818e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 26 May 2014 23:03:11 -0400 -Subject: [PATCH] fsck: include device name in the message about missing fsck - ---- - src/fsck/fsck.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- src/fsck/fsck.c -+++ src/fsck/fsck.c 2014-06-03 14:15:15.746235301 +0000 -@@ -284,10 +284,12 @@ int main(int argc, char *argv[]) { - r = access(checker, X_OK); - if (r < 0) { - if (errno == ENOENT) { -- log_info("%s doesn't exist, not checking file system.", checker); -+ log_info("%s doesn't exist, not checking file system on %s", -+ checker, device); - return EXIT_SUCCESS; - } else -- log_warning("%s cannot be used: %m", checker); -+ log_warning("%s cannot be used for %s: %m", -+ checker, device); - } - } - diff --git a/0002-hostnamed-add-a-new-chassis-type-for-watches.patch b/0002-hostnamed-add-a-new-chassis-type-for-watches.patch deleted file mode 100644 index a20c11c6..00000000 --- a/0002-hostnamed-add-a-new-chassis-type-for-watches.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c49e59c1831f20fe02276d7bc6ba7d23d24c4ab3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 9 Jul 2014 13:20:05 +0200 -Subject: [PATCH] hostnamed: add a new chassis type for watches - ---- - src/hostname/hostnamed.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c -index 514554d..eaae113 100644 ---- src/hostname/hostnamed.c -+++ src/hostname/hostnamed.c -@@ -144,7 +144,8 @@ static bool valid_chassis(const char *chassis) { - "laptop\0" - "server\0" - "tablet\0" -- "handset\0", -+ "handset\0" -+ "watch\0", - chassis); - } - --- -1.7.9.2 - diff --git a/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch b/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch deleted file mode 100644 index 8304b2d4..00000000 --- a/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From fc1ae82cae69d8dbbd9e7a31938810a486fac782 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 22 Oct 2014 14:09:21 +0200 -Subject: [PATCH] hwdb: Add mapping for special keys on compaq ku 0133 - keyboards - -The compaq ku 0133 keyboard has 8 special keys at the top: -http://lackof.org/taggart/hacking/keyboard/cpqwireless.jpg - -3 of these use standard HID usage codes from the consumer page, the 5 -others use part of the reserved 0x07 - 0x1f range. - -This commit adds mapping for this keyboard for these reserved codes, making -the other 5 keys work. - -Cc: Hans de Goede -Signed-off-by: Hans de Goede ---- - hwdb/60-keyboard.hwdb | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 59f467b..06caba9 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -181,6 +181,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:pvr* - KEYBOARD_KEY_9e=email - KEYBOARD_KEY_9f=homepage - -+keyboard:usb:v049Fp0051d*dc*dsc*dp*ic*isc*ip*in01* -+ KEYBOARD_KEY_0c0011=presentation -+ KEYBOARD_KEY_0c0012=addressbook -+ KEYBOARD_KEY_0c0013=info -+ KEYBOARD_KEY_0c0014=prog1 -+ KEYBOARD_KEY_0c0015=messenger -+ - ########################################################### - # Dell - ########################################################### --- -1.7.9.2 - diff --git a/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index a386c649..00000000 --- a/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f401e2b24ba17452f9655993a6dedefdffe06d23 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Tue, 11 Mar 2014 09:33:31 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 0335a71..7d86f10 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -911,3 +911,15 @@ bluetooth:v012C* - - bluetooth:v012D* - ID_VENDOR_FROM_DATABASE=Sony Corporation -+ -+bluetooth:v012E* -+ ID_VENDOR_FROM_DATABASE=ASSA ABLOY -+ -+bluetooth:v012F* -+ ID_VENDOR_FROM_DATABASE=Clarion Co., Ltd. -+ -+bluetooth:v0130* -+ ID_VENDOR_FROM_DATABASE=Warehouse Innovations -+ -+bluetooth:v0131* -+ ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation --- -1.7.9.2 - diff --git a/0002-hwdb-update.patch b/0002-hwdb-update.patch deleted file mode 100644 index 1d3abc28..00000000 --- a/0002-hwdb-update.patch +++ /dev/null @@ -1,2058 +0,0 @@ -From dbe633cc027e31a0d4fb488a3c68b7762ef0e7b3 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 13 Apr 2014 23:46:27 -0700 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 275 +++++++++++++++++++++- - hwdb/20-pci-vendor-model.hwdb | 522 ++++++++++++++++++++++++++++++++++++++--- - 2 files changed, 751 insertions(+), 46 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 209b89e..17794ed 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -6929,7 +6929,7 @@ OUI:0050C2912* - ID_OUI_FROM_DATABASE=ASSET InterTech, Inc. - - OUI:0050C2913* -- ID_OUI_FROM_DATABASE=Selex Sensors & Airborne Systems -+ ID_OUI_FROM_DATABASE=Selex Ex Ltd - - OUI:0050C2914* - ID_OUI_FROM_DATABASE=IO-Connect -@@ -15944,7 +15944,7 @@ OUI:000300* - ID_OUI_FROM_DATABASE=Barracuda Networks, Inc. - - OUI:000301* -- ID_OUI_FROM_DATABASE=Avantas Networks Corporation -+ ID_OUI_FROM_DATABASE=EXFO - - OUI:000302* - ID_OUI_FROM_DATABASE=Charles Industries, Ltd. -@@ -24575,7 +24575,7 @@ OUI:000E65* - ID_OUI_FROM_DATABASE=TransCore - - OUI:000E66* -- ID_OUI_FROM_DATABASE=Hitachi Advanced Digital, Inc. -+ ID_OUI_FROM_DATABASE=Hitachi Industry & Control Solutions, Ltd. - - OUI:000E67* - ID_OUI_FROM_DATABASE=Eltis Microelectronics Ltd. -@@ -24947,7 +24947,7 @@ OUI:000EE1* - ID_OUI_FROM_DATABASE=ExtremeSpeed Inc. - - OUI:000EE2* -- ID_OUI_FROM_DATABASE=Custom Engineering S.p.A. -+ ID_OUI_FROM_DATABASE=Custom Engineering - - OUI:000EE3* - ID_OUI_FROM_DATABASE=Chiyu Technology Co.,Ltd -@@ -51760,6 +51760,9 @@ OUI:045A95* - OUI:045C06* - ID_OUI_FROM_DATABASE=Zmodo Technology Corporation - -+OUI:045C8E* -+ ID_OUI_FROM_DATABASE=gosund GROUP CO.,LTD -+ - OUI:045D56* - ID_OUI_FROM_DATABASE=camtron industrial inc. - -@@ -51865,6 +51868,9 @@ OUI:04C5A4* - OUI:04C880* - ID_OUI_FROM_DATABASE=Samtec Inc - -+OUI:04C991* -+ ID_OUI_FROM_DATABASE=Phistek INC. -+ - OUI:04CB1D* - ID_OUI_FROM_DATABASE=Traka plc - -@@ -52633,6 +52639,9 @@ OUI:08CA45* - OUI:08CC68* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:08CD9B* -+ ID_OUI_FROM_DATABASE=samtec automotive electronics & software GmbH -+ - OUI:08D09F* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -52684,6 +52693,9 @@ OUI:08F2F4* - OUI:08F6F8* - ID_OUI_FROM_DATABASE=GET Engineering - -+OUI:08F728* -+ ID_OUI_FROM_DATABASE=GLOBO Multimedia Sp. z o.o. Sp.k. -+ - OUI:08FAE0* - ID_OUI_FROM_DATABASE=Fohhn Audio AG - -@@ -52750,6 +52762,9 @@ OUI:0C3021* - OUI:0C37DC* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:0C383E* -+ ID_OUI_FROM_DATABASE=Fanvil Technology Co., Ltd. -+ - OUI:0C3956* - ID_OUI_FROM_DATABASE=Observator instruments - -@@ -53104,6 +53119,9 @@ OUI:102D96* - OUI:102EAF* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:103047* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:103378* - ID_OUI_FROM_DATABASE=FLECTRON Co., LTD - -@@ -53215,6 +53233,9 @@ OUI:1088CE* - OUI:108CCF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:109266* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:1093E9* - ID_OUI_FROM_DATABASE=Apple - -@@ -53260,6 +53281,9 @@ OUI:10BF48* - OUI:10C2BA* - ID_OUI_FROM_DATABASE=UTT Co., Ltd. - -+OUI:10C37B* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:10C586* - ID_OUI_FROM_DATABASE=BIO SOUND LAB CO., LTD. - -@@ -53365,6 +53389,9 @@ OUI:141BBD* - OUI:141BF0* - ID_OUI_FROM_DATABASE=Intellimedia Systems Ltd - -+OUI:141FBA* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:1423D7* - ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD. - -@@ -53518,6 +53545,9 @@ OUI:14B968* - OUI:14C089* - ID_OUI_FROM_DATABASE=DUNE HD LTD - -+OUI:14C126* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:14C21D* - ID_OUI_FROM_DATABASE=Sabtech Industries - -@@ -53572,6 +53602,9 @@ OUI:14F28E* - OUI:14F42A* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:14F65A* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:14FEAF* - ID_OUI_FROM_DATABASE=SAGITTAR LIMITED - -@@ -53659,6 +53692,9 @@ OUI:182B05* - OUI:182C91* - ID_OUI_FROM_DATABASE=Concept Development, Inc. - -+OUI:183009* -+ ID_OUI_FROM_DATABASE=Woojin Industrial Systems Co., Ltd. -+ - OUI:1832A2* - ID_OUI_FROM_DATABASE=LAON TECHNOLOGY CO., LTD. - -@@ -53698,6 +53734,9 @@ OUI:184617* - OUI:1848D8* - ID_OUI_FROM_DATABASE=Fastback Networks - -+OUI:184A6F* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd -+ - OUI:184E94* - ID_OUI_FROM_DATABASE=MESSOA TECHNOLOGIES INC. - -@@ -53758,6 +53797,9 @@ OUI:1880F5* - OUI:188331* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:1883BF* -+ ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation -+ - OUI:188410* - ID_OUI_FROM_DATABASE=CoreTrust Inc. - -@@ -54322,6 +54364,9 @@ OUI:206A8A* - OUI:206AFF* - ID_OUI_FROM_DATABASE=Atlas Elektronik UK Limited - -+OUI:206E9C* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:206FEC* - ID_OUI_FROM_DATABASE=Braemac CA LLC - -@@ -54838,6 +54883,9 @@ OUI:284C53* - OUI:284D92* - ID_OUI_FROM_DATABASE=Luminator - -+OUI:284ED7* -+ ID_OUI_FROM_DATABASE=OutSmart Power Systems, Inc. -+ - OUI:284FCE* - ID_OUI_FROM_DATABASE=Liaoning Wontel Science and Technology Development Co.,Ltd. - -@@ -54976,6 +55024,9 @@ OUI:28C68E* - OUI:28C718* - ID_OUI_FROM_DATABASE=Altierre - -+OUI:28C7CE* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:28C825* - ID_OUI_FROM_DATABASE=DellKing Industrial Co., Ltd - -@@ -55069,6 +55120,9 @@ OUI:28FBD3* - OUI:28FC51* - ID_OUI_FROM_DATABASE=The Electric Controller and Manufacturing Co., LLC - -+OUI:28FCF6* -+ ID_OUI_FROM_DATABASE=Shenzhen Xin KingBrand enterprises Co.,Ltd -+ - OUI:2C002C* - ID_OUI_FROM_DATABASE=UNOWHY - -@@ -55291,6 +55345,9 @@ OUI:2CB693* - OUI:2CB69D* - ID_OUI_FROM_DATABASE=RED Digital Cinema - -+OUI:2CBE08* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:2CBE97* - ID_OUI_FROM_DATABASE=Ingenieurbuero Bickele und Buehler GmbH - -@@ -55354,6 +55411,9 @@ OUI:30055C* - OUI:300B9C* - ID_OUI_FROM_DATABASE=Delta Mobile Systems, Inc. - -+OUI:300D2A* -+ ID_OUI_FROM_DATABASE=Zhejiang Wellcom Technology Co.,Ltd. -+ - OUI:300ED5* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -@@ -55450,6 +55510,9 @@ OUI:3055ED* - OUI:3057AC* - ID_OUI_FROM_DATABASE=IRLAB LTD. - -+OUI:30595B* -+ ID_OUI_FROM_DATABASE=streamnow AG -+ - OUI:3059B7* - ID_OUI_FROM_DATABASE=Microsoft - -@@ -55543,6 +55606,9 @@ OUI:30B3A2* - OUI:30B5C2* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:30B5F1* -+ ID_OUI_FROM_DATABASE=Aitexin Technology Co., Ltd -+ - OUI:30C750* - ID_OUI_FROM_DATABASE=MIC Technology Group - -@@ -55606,6 +55672,9 @@ OUI:30F9ED* - OUI:30FD11* - ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. - -+OUI:340286* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:3407FB* - ID_OUI_FROM_DATABASE=Ericsson AB - -@@ -55654,6 +55723,9 @@ OUI:342F6E* - OUI:343111* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:3431C4* -+ ID_OUI_FROM_DATABASE=AVM GmbH -+ - OUI:3440B5* - ID_OUI_FROM_DATABASE=IBM - -@@ -55840,6 +55912,9 @@ OUI:34C059* - OUI:34C3AC* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:34C5D0* -+ ID_OUI_FROM_DATABASE=Hagleitner Hygiene International GmbH -+ - OUI:34C69A* - ID_OUI_FROM_DATABASE=Enecsys Ltd - -@@ -55963,6 +56038,9 @@ OUI:3826CD* - OUI:3828EA* - ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD - -+OUI:382DD1* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:3831AC* - ID_OUI_FROM_DATABASE=WEG - -@@ -56371,6 +56449,9 @@ OUI:3C99F7* - OUI:3C9F81* - ID_OUI_FROM_DATABASE=Shenzhen CATIC Bit Communications Technology Co.,Ltd - -+OUI:3CA10D* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:3CA315* - ID_OUI_FROM_DATABASE=Bless Information & Communications Co., Ltd - -@@ -56380,6 +56461,9 @@ OUI:3CA72B* - OUI:3CA9F4* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:3CAA3F* -+ ID_OUI_FROM_DATABASE=iKey, Ltd. -+ - OUI:3CAB8E* - ID_OUI_FROM_DATABASE=Apple - -@@ -56413,6 +56497,9 @@ OUI:3CC99E* - OUI:3CCA87* - ID_OUI_FROM_DATABASE=Iders Incorporated - -+OUI:3CCD5A* -+ ID_OUI_FROM_DATABASE=Technische Alternative GmbH -+ - OUI:3CCD93* - ID_OUI_FROM_DATABASE=LG ELECTRONICS INC - -@@ -57109,6 +57196,9 @@ OUI:481A84* - OUI:481BD2* - ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. - -+OUI:4826E8* -+ ID_OUI_FROM_DATABASE=Tek-Air Systems, Inc. -+ - OUI:48282F* - ID_OUI_FROM_DATABASE=ZTE Corporation - -@@ -57260,7 +57350,7 @@ OUI:48D7FF* - ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH - - OUI:48D855* -- ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY -+ ID_OUI_FROM_DATABASE=Telvent - - OUI:48D8FE* - ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. -@@ -57748,6 +57838,9 @@ OUI:507E5D* - OUI:508569* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD - -+OUI:508789* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:5087B8* - ID_OUI_FROM_DATABASE=Nuvyyo Inc - -@@ -57880,6 +57973,9 @@ OUI:50FC30* - OUI:50FC9F* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:50FEF2* -+ ID_OUI_FROM_DATABASE=Sify Technologies Ltd -+ - OUI:5403F5* - ID_OUI_FROM_DATABASE=EBN Technology Corp. - -@@ -58072,6 +58168,9 @@ OUI:54AE27* - OUI:54B620* - ID_OUI_FROM_DATABASE=SUHDOL E&C Co.Ltd. - -+OUI:54B753* -+ ID_OUI_FROM_DATABASE=Hunan Fenghui Yinjia Science And Technology Co.,Ltd -+ - OUI:54BEF7* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -@@ -58132,6 +58231,9 @@ OUI:54F5B6* - OUI:54F666* - ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG - -+OUI:54FA3E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD -+ - OUI:54FB58* - ID_OUI_FROM_DATABASE=WISEWARE, Lda - -@@ -58462,6 +58564,9 @@ OUI:5C260A* - OUI:5C2AEF* - ID_OUI_FROM_DATABASE=Open Access Pty Ltd - -+OUI:5C2E59* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:5C313E* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -58519,6 +58624,9 @@ OUI:5C57C8* - OUI:5C5948* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C5BC2* -+ ID_OUI_FROM_DATABASE=YIK Corporation -+ - OUI:5C5EAB* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -58558,6 +58666,9 @@ OUI:5C8778* - OUI:5C89D4* - ID_OUI_FROM_DATABASE=Beijing Banner Electric Co.,Ltd - -+OUI:5C8D4E* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:5C95AE* - ID_OUI_FROM_DATABASE=Apple - -@@ -58819,6 +58930,9 @@ OUI:607688* - OUI:60812B* - ID_OUI_FROM_DATABASE=Custom Control Concepts - -+OUI:6081F9* -+ ID_OUI_FROM_DATABASE=Helium Systems, Inc -+ - OUI:6083B2* - ID_OUI_FROM_DATABASE=GkWare e.K. - -@@ -58867,6 +58981,9 @@ OUI:60A10A* - OUI:60A44C* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -+OUI:60A8FE* -+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks -+ - OUI:60A9B0* - ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc - -@@ -58918,6 +59035,9 @@ OUI:60C980* - OUI:60CBFB* - ID_OUI_FROM_DATABASE=AirScape Inc. - -+OUI:60CDA9* -+ ID_OUI_FROM_DATABASE=Abloomy -+ - OUI:60CDC5* - ID_OUI_FROM_DATABASE=Taiwan Carol Electronics., Ltd - -@@ -59092,6 +59212,9 @@ OUI:644D70* - OUI:644F74* - ID_OUI_FROM_DATABASE=LENUS Co., Ltd. - -+OUI:644FB0* -+ ID_OUI_FROM_DATABASE=Hyunjin.com -+ - OUI:64517E* - ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. - -@@ -59146,6 +59269,9 @@ OUI:64680C* - OUI:6469BC* - ID_OUI_FROM_DATABASE=Hytera Communications Co .,ltd - -+OUI:646CB2* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:646E6C* - ID_OUI_FROM_DATABASE=Radio Datacom LLC - -@@ -59305,6 +59431,9 @@ OUI:64D814* - OUI:64D912* - ID_OUI_FROM_DATABASE=Solidica, Inc. - -+OUI:64D954* -+ ID_OUI_FROM_DATABASE=TAICANG AND W ELECTRONICS CO LTD -+ - OUI:64D989* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -59368,6 +59497,9 @@ OUI:64F987* - OUI:64FC8C* - ID_OUI_FROM_DATABASE=Zonar Systems - -+OUI:680571* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:6805CA* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -59701,6 +59833,9 @@ OUI:6C2E33* - OUI:6C2E85* - ID_OUI_FROM_DATABASE=SAGEMCOM - -+OUI:6C2F2C* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:6C32DE* - ID_OUI_FROM_DATABASE=Indieon Technologies Pvt. Ltd. - -@@ -59860,6 +59995,9 @@ OUI:6CADF8* - OUI:6CAE8B* - ID_OUI_FROM_DATABASE=IBM Corporation - -+OUI:6CB0CE* -+ ID_OUI_FROM_DATABASE=NETGEAR -+ - OUI:6CB311* - ID_OUI_FROM_DATABASE=Shenzhen Lianrui Electronics Co.,Ltd - -@@ -59875,6 +60013,9 @@ OUI:6CBEE9* - OUI:6CC1D2* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:6CC217* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:6CC26B* - ID_OUI_FROM_DATABASE=Apple - -@@ -59929,6 +60070,9 @@ OUI:6CF97C* - OUI:6CFA58* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:6CFA89* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:6CFAA7* - ID_OUI_FROM_DATABASE=AMPAK Technology Inc. - -@@ -60097,6 +60241,9 @@ OUI:7071B3* - OUI:7071BC* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -+OUI:70720D* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:70723C* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -60502,6 +60649,9 @@ OUI:74D850* - OUI:74DA38* - ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. - -+OUI:74DBD1* -+ ID_OUI_FROM_DATABASE=Ebay Inc -+ - OUI:74DE2B* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -60733,6 +60883,9 @@ OUI:78923E* - OUI:78929C* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:789684* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:7898FD* - ID_OUI_FROM_DATABASE=Q9 Networks Inc. - -@@ -60922,6 +61075,9 @@ OUI:78F7BE* - OUI:78F7D0* - ID_OUI_FROM_DATABASE=Silverbrook Research - -+OUI:78FD94* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:78FE3D* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -61060,6 +61216,9 @@ OUI:7C69F6* - OUI:7C6AB3* - ID_OUI_FROM_DATABASE=IBC TECHNOLOGIES INC. - -+OUI:7C6AC3* -+ ID_OUI_FROM_DATABASE=GatesAir, Inc -+ - OUI:7C6ADB* - ID_OUI_FROM_DATABASE=SafeTone Technology Co.,Ltd - -@@ -61087,6 +61246,9 @@ OUI:7C6F06* - OUI:7C6FF8* - ID_OUI_FROM_DATABASE=ShenZhen ACTO Digital Video Technology Co.,Ltd. - -+OUI:7C70BC* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:7C72E4* - ID_OUI_FROM_DATABASE=Unikey Technologies - -@@ -61174,6 +61336,9 @@ OUI:7CBFB1* - OUI:7CC3A1* - ID_OUI_FROM_DATABASE=Apple - -+OUI:7CC4EF* -+ ID_OUI_FROM_DATABASE=Devialet -+ - OUI:7CC537* - ID_OUI_FROM_DATABASE=Apple - -@@ -61231,6 +61396,9 @@ OUI:7CE044* - OUI:7CE1FF* - ID_OUI_FROM_DATABASE=Computer Performance, Inc. DBA Digital Loggers, Inc. - -+OUI:7CE524* -+ ID_OUI_FROM_DATABASE=Quirky, Inc. -+ - OUI:7CE56B* - ID_OUI_FROM_DATABASE=ESEN Optoelectronics Technology Co.,Ltd. - -@@ -61477,6 +61645,9 @@ OUI:80A1D7* - OUI:80AAA4* - ID_OUI_FROM_DATABASE=USAG - -+OUI:80AD67* -+ ID_OUI_FROM_DATABASE=Kasda Digital Technology Co.,Ltd -+ - OUI:80B219* - ID_OUI_FROM_DATABASE=ELEKTRON TECHNOLOGY UK LIMITED - -@@ -61564,6 +61735,9 @@ OUI:80FFA8* - OUI:8400D2* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -+OUI:8401A7* -+ ID_OUI_FROM_DATABASE=Greyware Automation Products, Inc -+ - OUI:840B2D* - ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS CO., LTD - -@@ -61576,6 +61750,9 @@ OUI:841715* - OUI:841766* - ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd - -+OUI:84183A* -+ ID_OUI_FROM_DATABASE=Ruckus Wireless -+ - OUI:841888* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -61723,6 +61900,9 @@ OUI:848433* - OUI:848506* - ID_OUI_FROM_DATABASE=Apple - -+OUI:84850A* -+ ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH -+ - OUI:848D84* - ID_OUI_FROM_DATABASE=Rajant Corporation - -@@ -61885,6 +62065,9 @@ OUI:8823FE* - OUI:88252C* - ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation - -+OUI:882950* -+ ID_OUI_FROM_DATABASE=Dalian Netmoon Tech Develop Co.,Ltd -+ - OUI:882E5A* - ID_OUI_FROM_DATABASE=storONE - -@@ -61948,6 +62131,9 @@ OUI:885C47* - OUI:88615A* - ID_OUI_FROM_DATABASE=Siano Mobile Silicon Ltd. - -+OUI:8863DF* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:88685C* - ID_OUI_FROM_DATABASE=Shenzhen ChuangDao & Perpetual Eternal Technology Co.,Ltd - -@@ -62098,6 +62284,9 @@ OUI:88E917* - OUI:88ED1C* - ID_OUI_FROM_DATABASE=Cudo Communication Co., Ltd. - -+OUI:88F031* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:88F077* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -62326,6 +62515,9 @@ OUI:8CB864* - OUI:8CBEBE* - ID_OUI_FROM_DATABASE=Xiaomi Technology Co.,Ltd - -+OUI:8CBF9D* -+ ID_OUI_FROM_DATABASE=Shanghai Xinyou Information Technology Ltd. Co. -+ - OUI:8CC121* - ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company - -@@ -62662,6 +62854,9 @@ OUI:90B97D* - OUI:90C115* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -+OUI:90C792* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:90CC24* - ID_OUI_FROM_DATABASE=Synaptics, Inc - -@@ -63259,6 +63454,9 @@ OUI:98EC65* - OUI:98F0AB* - ID_OUI_FROM_DATABASE=Apple - -+OUI:98F170* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:98F537* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -63496,6 +63694,9 @@ OUI:9CA577* - OUI:9CA9E4* - ID_OUI_FROM_DATABASE=zte corporation - -+OUI:9CAD97* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:9CADEF* - ID_OUI_FROM_DATABASE=Obihai Technology, Inc. - -@@ -64456,6 +64657,9 @@ OUI:A8E018* - OUI:A8E3EE* - ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. - -+OUI:A8E539* -+ ID_OUI_FROM_DATABASE=Moimstone Co.,Ltd -+ - OUI:A8EF26* - ID_OUI_FROM_DATABASE=Tritonwave - -@@ -64702,6 +64906,9 @@ OUI:ACA016* - OUI:ACA22C* - ID_OUI_FROM_DATABASE=Baycity Technologies Ltd - -+OUI:ACA31E* -+ ID_OUI_FROM_DATABASE=Aruba Networks -+ - OUI:ACA430* - ID_OUI_FROM_DATABASE=Peerless AV - -@@ -64837,6 +65044,12 @@ OUI:B000B4* - OUI:B00594* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -+OUI:B009D3* -+ ID_OUI_FROM_DATABASE=Avizia -+ -+OUI:B01041* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:B01203* - ID_OUI_FROM_DATABASE=Dynamics Hong Kong Limited - -@@ -64951,6 +65164,9 @@ OUI:B0808C* - OUI:B081D8* - ID_OUI_FROM_DATABASE=I-sys Corp - -+OUI:B083FE* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:B0869E* - ID_OUI_FROM_DATABASE=Chloride S.r.L - -@@ -65122,6 +65338,9 @@ OUI:B407F9* - OUI:B40832* - ID_OUI_FROM_DATABASE=TC Communications - -+OUI:B40B44* -+ ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. -+ - OUI:B40B7A* - ID_OUI_FROM_DATABASE=Brusa Elektronik AG - -@@ -65200,6 +65419,9 @@ OUI:B4417A* - OUI:B4430D* - ID_OUI_FROM_DATABASE=Broadlink Pty Ltd - -+OUI:B4475E* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:B44CC2* - ID_OUI_FROM_DATABASE=NR ELECTRIC CO., LTD - -@@ -65608,6 +65830,9 @@ OUI:B8A8AF* - OUI:B8AC6F* - ID_OUI_FROM_DATABASE=Dell Inc - -+OUI:B8AD3E* -+ ID_OUI_FROM_DATABASE=BLUECOM -+ - OUI:B8AE6E* - ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. - -@@ -65842,6 +66067,9 @@ OUI:BC4B79* - OUI:BC4E3C* - ID_OUI_FROM_DATABASE=CORE STAFF CO., LTD. - -+OUI:BC4E5D* -+ ID_OUI_FROM_DATABASE=ZhongMiao Technology Co., Ltd. -+ - OUI:BC51FE* - ID_OUI_FROM_DATABASE=Swann Communications Pty Ltd - -@@ -65974,6 +66202,9 @@ OUI:BCC6DB* - OUI:BCC810* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:BCCAB5* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:BCCD45* - ID_OUI_FROM_DATABASE=VOISMART - -@@ -66748,6 +66979,9 @@ OUI:C88B47* - OUI:C8903E* - ID_OUI_FROM_DATABASE=Pakton Technologies - -+OUI:C891F9* -+ ID_OUI_FROM_DATABASE=SAGEMCOM -+ - OUI:C89346* - ID_OUI_FROM_DATABASE=MXCHIP Company Limited - -@@ -67000,6 +67234,9 @@ OUI:CC3A61* - OUI:CC3C3F* - ID_OUI_FROM_DATABASE=SA.S.S. Datentechnik AG - -+OUI:CC3D82* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:CC3E5F* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -67303,6 +67540,9 @@ OUI:D03761* - OUI:D03972* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:D039B3* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:D046DC* - ID_OUI_FROM_DATABASE=Southwest Research Institute - -@@ -67735,6 +67975,9 @@ OUI:D48FAA* - OUI:D491AF* - ID_OUI_FROM_DATABASE=Electroacustica General Iberica, S.A. - -+OUI:D49398* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:D493A0* - ID_OUI_FROM_DATABASE=Fidelix Oy - -@@ -68057,7 +68300,7 @@ OUI:D89695* - ID_OUI_FROM_DATABASE=Apple - - OUI:D8973B* -- ID_OUI_FROM_DATABASE=Emerson Network Power Embedded Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:D89760* - ID_OUI_FROM_DATABASE=C2 Development, Inc. -@@ -68170,6 +68413,9 @@ OUI:D8DF0D* - OUI:D8E3AE* - ID_OUI_FROM_DATABASE=CIRTEC MEDICAL SYSTEMS - -+OUI:D8E56D* -+ ID_OUI_FROM_DATABASE=TCT Mobile Limited -+ - OUI:D8E72B* - ID_OUI_FROM_DATABASE=OnPATH Technologies - -@@ -69319,6 +69565,9 @@ OUI:E8F928* - OUI:E8FC60* - ID_OUI_FROM_DATABASE=ELCOM Innovations Private Limited - -+OUI:E8FCAF* -+ ID_OUI_FROM_DATABASE=NETGEAR INC., -+ - OUI:EC0ED6* - ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS - -@@ -69442,6 +69691,9 @@ OUI:EC888F* - OUI:EC89F5* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:EC8A4C* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:EC8EAD* - ID_OUI_FROM_DATABASE=DLX - -@@ -70099,6 +70351,9 @@ OUI:F4CE46* - OUI:F4CFE2* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:F4D261* -+ ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd -+ - OUI:F4D9FB* - ID_OUI_FROM_DATABASE=Samsung Electronics CO., LTD - -@@ -70111,6 +70366,9 @@ OUI:F4DCDA* - OUI:F4DCF9* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:F4DD9E* -+ ID_OUI_FROM_DATABASE=GoPro -+ - OUI:F4E142* - ID_OUI_FROM_DATABASE=Delta Elektronika BV - -@@ -70318,6 +70576,9 @@ OUI:F87B8C* - OUI:F8811A* - ID_OUI_FROM_DATABASE=OVERKIZ - -+OUI:F884F2* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:F88C1C* - ID_OUI_FROM_DATABASE=KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING - -@@ -70586,7 +70847,7 @@ OUI:FC3FAB* - ID_OUI_FROM_DATABASE=Henan Lanxin Technology Co., Ltd - - OUI:FC4463* -- ID_OUI_FROM_DATABASE=Universal Audio -+ ID_OUI_FROM_DATABASE=Universal Audio, Inc - - OUI:FC4499* - ID_OUI_FROM_DATABASE=Swarco LEA d.o.o. -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 371a685..d54cb2a 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -497,6 +497,9 @@ pci:v00000E11d0000F130* - pci:v00000E11d0000F150* - ID_MODEL_FROM_DATABASE=NetFlex-3/P ThunderLAN 2.3 - -+pci:v00000E55* -+ ID_VENDOR_FROM_DATABASE=HaSoTec GmbH -+ - pci:v00000EAC* - ID_VENDOR_FROM_DATABASE=SHF Communication Technologies AG - -@@ -1169,6 +1172,12 @@ pci:v00001000d00000073sv00001137sd000000B0* - pci:v00001000d00000073sv00001137sd000000B1* - ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i - -+pci:v00001000d00000073sv00001137sd000000C2* -+ ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide -+ -+pci:v00001000d00000073sv00001137sd000000C3* -+ ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide -+ - pci:v00001000d00000073sv000015D9sd00000400* - ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR - -@@ -1665,25 +1674,25 @@ pci:v00001002d00001307* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d00001309* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d0000130A* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] - - pci:v00001002d0000130B* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] - - pci:v00001002d0000130C* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d0000130D* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] - - pci:v00001002d0000130E* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] - - pci:v00001002d0000130F* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d00001310* - ID_MODEL_FROM_DATABASE=Kaveri -@@ -1695,7 +1704,7 @@ pci:v00001002d00001312* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d00001313* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d00001314* - ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio -@@ -1704,22 +1713,25 @@ pci:v00001002d00001314sv0000174Bsd00001001* - ID_MODEL_FROM_DATABASE=PURE Fusion Mini - - pci:v00001002d00001315* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] - - pci:v00001002d00001316* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] - - pci:v00001002d00001317* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d00001318* -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] -+ - pci:v00001002d0000131B* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] - - pci:v00001002d0000131C* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d0000131D* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] - - pci:v00001002d00001714* - ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] -@@ -4275,7 +4287,7 @@ pci:v00001002d00006641* - ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] - - pci:v00001002d00006649* -- ID_MODEL_FROM_DATABASE=Bonaire -+ ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] - - pci:v00001002d00006650* - ID_MODEL_FROM_DATABASE=Bonaire -@@ -4326,13 +4338,13 @@ pci:v00001002d00006663sv00001025sd00000846* - ID_MODEL_FROM_DATABASE=Radeon HD 8570A - - pci:v00001002d00006664* -- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] -+ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] - - pci:v00001002d00006665* - ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] - - pci:v00001002d00006667* -- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] -+ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] - - pci:v00001002d0000666F* - ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] -@@ -5808,7 +5820,7 @@ pci:v00001002d00006792* - ID_MODEL_FROM_DATABASE=Tahiti - - pci:v00001002d00006798* -- ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/R9 280X] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] - - pci:v00001002d00006798sv00001002sd00003000* - ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -@@ -5934,7 +5946,7 @@ pci:v00001002d000067B1* - ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] - - pci:v00001002d000067B9* -- ID_MODEL_FROM_DATABASE=Vesuvius -+ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] - - pci:v00001002d000067BE* - ID_MODEL_FROM_DATABASE=Hawaii LE -@@ -5952,7 +5964,7 @@ pci:v00001002d00006800sv00008086sd00002111* - ID_MODEL_FROM_DATABASE=Radeon HD 7970M - - pci:v00001002d00006801* -- ID_MODEL_FROM_DATABASE=Neptune [Radeon HD 8970M] -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] - - pci:v00001002d00006801sv00001002sd00000124* - ID_MODEL_FROM_DATABASE=Radeon HD 8970M -@@ -6017,6 +6029,9 @@ pci:v00001002d00006820* - pci:v00001002d00006820sv0000103Csd00001851* - ID_MODEL_FROM_DATABASE=Radeon HD 7750M - -+pci:v00001002d00006820sv000017AAsd00003801* -+ ID_MODEL_FROM_DATABASE=Radeon R9 M275 -+ - pci:v00001002d00006821* - ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] - -@@ -7817,6 +7832,12 @@ pci:v00001002d000068FAsv000017AFsd00003015* - pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE - -+pci:v00001002d00006900* -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] -+ -+pci:v00001002d00006901* -+ ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] -+ - pci:v00001002d00006920* - ID_MODEL_FROM_DATABASE=Tonga - -@@ -10391,6 +10412,15 @@ pci:v00001014d0000034Asv00001014sd00000499* - pci:v00001014d0000034Asv00001014sd0000049A* - ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) - -+pci:v00001014d0000034Asv00001014sd000004C7* -+ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) -+ -+pci:v00001014d0000034Asv00001014sd000004C8* -+ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) -+ -+pci:v00001014d0000034Asv00001014sd00000C49* -+ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) -+ - pci:v00001014d000004AA* - ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) - -@@ -13793,6 +13823,63 @@ pci:v0000103Cd00003238sv0000103Csd00003211* - pci:v0000103Cd00003238sv0000103Csd00003212* - ID_MODEL_FROM_DATABASE=Smart Array E200 - -+pci:v0000103Cd00003239* -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers -+ -+pci:v0000103Cd00003239sv0000103Csd000021BD* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021BE* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021BF* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C0* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C1* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C2* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C3* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C4* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C5* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C6* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C7* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C8* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C9* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CA* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CB* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CC* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CD* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CE* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ - pci:v0000103Cd0000323A* - ID_MODEL_FROM_DATABASE=Smart Array G6 controllers - -@@ -17954,6 +18041,54 @@ pci:v0000109Ed0000036Esv000018ACsd0000D500* - pci:v0000109Ed0000036Esv0000270Fsd0000FC00* - ID_MODEL_FROM_DATABASE=Digitop DTT-1000 - -+pci:v0000109Ed0000036Esv0000AA00sd00001460* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 -+ -+pci:v0000109Ed0000036Esv0000AA01sd00001461* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 -+ -+pci:v0000109Ed0000036Esv0000AA02sd00001462* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 -+ -+pci:v0000109Ed0000036Esv0000AA03sd00001463* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 -+ -+pci:v0000109Ed0000036Esv0000AA04sd00001464* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 -+ -+pci:v0000109Ed0000036Esv0000AA05sd00001465* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 -+ -+pci:v0000109Ed0000036Esv0000AA06sd00001466* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 -+ -+pci:v0000109Ed0000036Esv0000AA07sd00001467* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 -+ -+pci:v0000109Ed0000036Esv0000AA08sd00001468* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 -+ -+pci:v0000109Ed0000036Esv0000AA09sd00001469* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 -+ -+pci:v0000109Ed0000036Esv0000AA0Asd0000146A* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 -+ -+pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 -+ -+pci:v0000109Ed0000036Esv0000AA0Csd0000146C* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 -+ -+pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 -+ -+pci:v0000109Ed0000036Esv0000AA0Esd0000146E* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 -+ -+pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 -+ - pci:v0000109Ed0000036Esv0000BD11sd00001200* - ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) - -@@ -26009,6 +26144,9 @@ pci:v000010DEd00000E1A* - pci:v000010DEd00000E1B* - ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller - -+pci:v000010DEd00000E1Bsv0000103Csd0000197B* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v000010DEd00000E1Bsv00001043sd00008428* - ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 - -@@ -26165,6 +26303,9 @@ pci:v000010DEd00000FF5* - pci:v000010DEd00000FF6* - ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] - -+pci:v000010DEd00000FF6sv0000103Csd0000197B* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v000010DEd00000FF7* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] - -@@ -26234,6 +26375,12 @@ pci:v000010DEd00001005sv00003842sd00002794* - pci:v000010DEd00001005sv00003842sd00002795* - ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature - -+pci:v000010DEd00001007* -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] -+ -+pci:v000010DEd00001008* -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Ti Rev. 2] -+ - pci:v000010DEd0000100A* - ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] - -@@ -26294,6 +26441,9 @@ pci:v000010DEd0000104Asv000010B0sd0000104A* - pci:v000010DEd0000104B* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] - -+pci:v000010DEd0000104C* -+ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 705] -+ - pci:v000010DEd00001050* - ID_MODEL_FROM_DATABASE=GF119M [GeForce GT 520M] - -@@ -26333,6 +26483,24 @@ pci:v000010DEd00001058sv00001043sd000010BC* - pci:v000010DEd00001058sv00001043sd00001652* - ID_MODEL_FROM_DATABASE=GeForce GT 610M - -+pci:v000010DEd00001058sv000017AAsd0000367A* -+ ID_MODEL_FROM_DATABASE=GeForce 610M -+ -+pci:v000010DEd00001058sv000017AAsd00003682* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd00001058sv000017AAsd00003687* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd00001058sv000017AAsd00003692* -+ ID_MODEL_FROM_DATABASE=GeForce 705A -+ -+pci:v000010DEd00001058sv000017AAsd00003695* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd00001058sv000017AAsd0000A117* -+ ID_MODEL_FROM_DATABASE=GeForce 610M -+ - pci:v000010DEd00001059* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] - -@@ -26351,6 +26519,15 @@ pci:v000010DEd0000105B* - pci:v000010DEd0000105Bsv0000103Csd00002AFB* - ID_MODEL_FROM_DATABASE=GeForce 705A - -+pci:v000010DEd0000105Bsv000017AAsd0000309D* -+ ID_MODEL_FROM_DATABASE=GeForce 705A -+ -+pci:v000010DEd0000105Bsv000017AAsd000030B1* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd0000105Bsv000017AAsd000036A1* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ - pci:v000010DEd0000107C* - ID_MODEL_FROM_DATABASE=GF119 [NVS 315] - -@@ -26675,6 +26852,30 @@ pci:v000010DEd00001140sv00001043sd000014C7* - pci:v000010DEd00001140sv00001043sd00001507* - ID_MODEL_FROM_DATABASE=GeForce GT 620M - -+pci:v000010DEd00001140sv00001043sd000015AD* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd000015ED* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000160D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000163D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000166D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd000016CD* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd000016DD* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000170D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ - pci:v000010DEd00001140sv00001043sd00002132* - ID_MODEL_FROM_DATABASE=GeForce GT 620M - -@@ -26699,6 +26900,12 @@ pci:v000010DEd00001140sv00001043sd0000223A* - pci:v000010DEd00001140sv00001043sd0000224A* - ID_MODEL_FROM_DATABASE=GeForce GT 710M - -+pci:v000010DEd00001140sv00001043sd0000227A* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000228A* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ - pci:v000010DEd00001140sv00001043sd00008595* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -@@ -26864,9 +27071,48 @@ pci:v000010DEd00001140sv000017AAsd00002213* - pci:v000010DEd00001140sv000017AAsd00002220* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -+pci:v000010DEd00001140sv000017AAsd0000309C* -+ ID_MODEL_FROM_DATABASE=GeForce GT 720A -+ -+pci:v000010DEd00001140sv000017AAsd000030B4* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ - pci:v000010DEd00001140sv000017AAsd00003656* - ID_MODEL_FROM_DATABASE=GeForce GT 620M - -+pci:v000010DEd00001140sv000017AAsd0000365A* -+ ID_MODEL_FROM_DATABASE=GeForce 705M -+ -+pci:v000010DEd00001140sv000017AAsd0000365E* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd0000366C* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd00003685* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd00003686* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd00003687* -+ ID_MODEL_FROM_DATABASE=GeForce 705A -+ -+pci:v000010DEd00001140sv000017AAsd00003696* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369B* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369C* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369D* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369E* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ - pci:v000010DEd00001140sv000017AAsd00003800* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -@@ -27044,6 +27290,9 @@ pci:v000010DEd0000118F* - pci:v000010DEd00001193* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] - -+pci:v000010DEd00001195* -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 Rev. 2] -+ - pci:v000010DEd00001198* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] - -@@ -27173,6 +27422,9 @@ pci:v000010DEd000011E2* - pci:v000010DEd000011E3* - ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] - -+pci:v000010DEd000011E3sv000017AAsd00003683* -+ ID_MODEL_FROM_DATABASE=GeForce GTX 760A -+ - pci:v000010DEd000011FA* - ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] - -@@ -27323,6 +27575,9 @@ pci:v000010DEd00001282* - pci:v000010DEd00001284* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 630 Rev. 2] - -+pci:v000010DEd00001286* -+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] -+ - pci:v000010DEd00001290* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] - -@@ -27380,6 +27635,15 @@ pci:v000010DEd00001340* - pci:v000010DEd00001341* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] - -+pci:v000010DEd00001341sv000017AAsd00003697* -+ ID_MODEL_FROM_DATABASE=GeForce 840A -+ -+pci:v000010DEd00001341sv000017AAsd00003699* -+ ID_MODEL_FROM_DATABASE=GeForce 840A -+ -+pci:v000010DEd00001341sv000017AAsd0000369C* -+ ID_MODEL_FROM_DATABASE=GeForce 840A -+ - pci:v000010DEd00001380* - ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] - -@@ -27395,6 +27659,12 @@ pci:v000010DEd00001390* - pci:v000010DEd00001391* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] - -+pci:v000010DEd00001391sv000017AAsd00003697* -+ ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ -+pci:v000010DEd00001391sv000017AAsd0000A125* -+ ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ - pci:v000010DEd00001392* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] - -@@ -27839,6 +28109,9 @@ pci:v000010ECd00005227* - pci:v000010ECd00005227sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -+pci:v000010ECd00005227sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v000010ECd00005229* - ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader - -@@ -27848,6 +28121,12 @@ pci:v000010ECd00005229sv00001025sd00000813* - pci:v000010ECd00005229sv0000103Csd0000194E* - ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook - -+pci:v000010ECd00005249* -+ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader -+ -+pci:v000010ECd00005249sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v000010ECd00005288* - ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader - -@@ -30561,7 +30840,7 @@ pci:v0000110Ad00004021* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) - - pci:v0000110Ad00004029* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 - - pci:v0000110Ad00004029sv0000110Asd00004029* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 -@@ -30581,6 +30860,9 @@ pci:v0000110Ad00004038* - pci:v0000110Ad00004069* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 - -+pci:v0000110Ad00004069sv0000110Asd00004069* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 -+ - pci:v0000110Ad00004069sv0000110Asd0000C069* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 - -@@ -31541,6 +31823,9 @@ pci:v00001131d00007133sv0000153Bsd00001160* - pci:v00001131d00007133sv0000153Bsd00001162* - ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile - -+pci:v00001131d00007133sv000017DEsd00007256* -+ ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card -+ - pci:v00001131d00007133sv000017DEsd00007350* - ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner - -@@ -33651,7 +33936,7 @@ pci:v00001180d00000476sv000014EFsd00000220* - ID_MODEL_FROM_DATABASE=PCD-RP-220S - - pci:v00001180d00000476sv000017AAsd0000201C* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00001180d00000476sv000017AAsd000020C4* - ID_MODEL_FROM_DATABASE=ThinkPad T61 -@@ -33711,7 +33996,7 @@ pci:v00001180d00000552sv0000144Dsd0000C00C* - ID_MODEL_FROM_DATABASE=P30/P35 notebook - - pci:v00001180d00000552sv000017AAsd0000201E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00001180d00000554* - ID_MODEL_FROM_DATABASE=R5C554 -@@ -33813,7 +34098,7 @@ pci:v00001180d00000822sv0000144Dsd0000C018* - ID_MODEL_FROM_DATABASE=X20 IV - - pci:v00001180d00000822sv000017AAsd0000201D* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00001180d00000822sv000017AAsd000020C7* - ID_MODEL_FROM_DATABASE=ThinkPad T61 -@@ -33833,6 +34118,9 @@ pci:v00001180d00000832sv00001028sd000001D7* - pci:v00001180d00000832sv00001028sd000001F3* - ID_MODEL_FROM_DATABASE=Inspiron 1420 - -+pci:v00001180d00000832sv00001028sd0000024D* -+ ID_MODEL_FROM_DATABASE=Latitude E4300 -+ - pci:v00001180d00000832sv0000103Csd000030B5* - ID_MODEL_FROM_DATABASE=Presario V3242AU - -@@ -49442,6 +49730,18 @@ pci:v00001797d00006812* - pci:v00001797d00006813* - ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller - -+pci:v00001797d00006814* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ -+pci:v00001797d00006815* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ -+pci:v00001797d00006816* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ -+pci:v00001797d00006817* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ - pci:v00001799* - ID_VENDOR_FROM_DATABASE=Belkin - -@@ -50978,12 +51278,33 @@ pci:v00001924d00000813sv00001924sd00007904* - pci:v00001924d00000903* - ID_MODEL_FROM_DATABASE=SFC9120 - -+pci:v00001924d00000903sv00001014sd000004CC* -+ ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra -+ - pci:v00001924d00000903sv00001924sd00008002* - ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter - -+pci:v00001924d00000903sv00001924sd00008003* -+ ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ - pci:v00001924d00000903sv00001924sd00008006* - ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter - -+pci:v00001924d00000903sv00001924sd00008007* -+ ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter -+ -+pci:v00001924d00000903sv00001924sd00008009* -+ ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter -+ -+pci:v00001924d00000903sv00001924sd0000800A* -+ ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter -+ -+pci:v00001924d00000923* -+ ID_MODEL_FROM_DATABASE=SFC9140 -+ -+pci:v00001924d00000923sv00001924sd0000800B* -+ ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ - pci:v00001924d00001803* - ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] - -@@ -51227,6 +51548,9 @@ pci:v00001957d00000083* - pci:v00001957d00000084* - ID_MODEL_FROM_DATABASE=MPC8347E PBGA - -+pci:v00001957d00000084sv0000110Asd00004074* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 -+ - pci:v00001957d00000085* - ID_MODEL_FROM_DATABASE=MPC8347 PBGA - -@@ -51456,7 +51780,7 @@ pci:v00001969d00002062* - ID_MODEL_FROM_DATABASE=AR8152 v2.0 Fast Ethernet - - pci:v00001969d0000E091* -- ID_MODEL_FROM_DATABASE=Killer E2200 Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=Killer E220x Gigabit Ethernet Controller - - pci:v0000196A* - ID_VENDOR_FROM_DATABASE=Sensory Networks Inc. -@@ -52214,8 +52538,14 @@ pci:v00001AF4d00001005* - pci:v00001AF4d00001009* - ID_MODEL_FROM_DATABASE=Virtio filesystem - -+pci:v00001AF4d00001010* -+ ID_MODEL_FROM_DATABASE=Virtio GPU -+ -+pci:v00001AF4d00001012* -+ ID_MODEL_FROM_DATABASE=Virtio input device -+ - pci:v00001AF4d00001110* -- ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory -+ ID_MODEL_FROM_DATABASE=Inter-VM shared memory - - pci:v00001AF4d00001110sv00001AF4sd00001100* - ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -@@ -52397,6 +52727,9 @@ pci:v00001B4Bd000091A4* - pci:v00001B4Bd00009230* - ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller - -+pci:v00001B4Bd00009445* -+ ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller -+ - pci:v00001B4Bd00009480* - ID_MODEL_FROM_DATABASE=88SE9480 SAS/SATA 6Gb/s RAID controller - -@@ -55550,15 +55883,24 @@ pci:v00008086d00000964* - pci:v00008086d00000A04* - ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller - -+pci:v00008086d00000A04sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00000A06* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - - pci:v00008086d00000A0C* - ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller - -+pci:v00008086d00000A0Csv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00000A16* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - -+pci:v00008086d00000A16sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00000A22* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - -@@ -55655,6 +55997,9 @@ pci:v00008086d00000C01* - pci:v00008086d00000C04* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller - -+pci:v00008086d00000C04sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00000C04sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -57360,7 +57705,7 @@ pci:v00008086d0000109Asv000017AAsd00002001* - ID_MODEL_FROM_DATABASE=ThinkPad T60 - - pci:v00008086d0000109Asv000017AAsd0000207E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00008086d0000109Asv00008086sd0000109A* - ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection -@@ -58847,6 +59192,9 @@ pci:v00008086d00001539* - pci:v00008086d0000153A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM - -+pci:v00008086d0000153Asv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d0000153Asv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -58901,6 +59249,9 @@ pci:v00008086d00001559* - pci:v00008086d0000155A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM - -+pci:v00008086d0000155Asv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d0000155C* - ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter - -@@ -63816,7 +64167,7 @@ pci:v00008086d000027A0sv000017AAsd00002015* - ID_MODEL_FROM_DATABASE=ThinkPad T60 - - pci:v00008086d000027A0sv000017AAsd00002017* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027A1* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port -@@ -63834,7 +64185,7 @@ pci:v00008086d000027A2sv0000103Csd000030A1* - ID_MODEL_FROM_DATABASE=NC2400 - - pci:v00008086d000027A2sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027A2sv00009902sd00001584* - ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F -@@ -63849,7 +64200,7 @@ pci:v00008086d000027A6sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) - - pci:v00008086d000027A6sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027AC* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub -@@ -63915,7 +64266,7 @@ pci:v00008086d000027B9sv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop - - pci:v00008086d000027B9sv000017AAsd00002009* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027BC* - ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller -@@ -64035,7 +64386,7 @@ pci:v00008086d000027C5sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=Compaq nw8440 - - pci:v00008086d000027C5sv000017AAsd0000200D* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027C6* - ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] -@@ -64095,7 +64446,7 @@ pci:v00008086d000027C8sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027C8sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027C8sv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64161,7 +64512,7 @@ pci:v00008086d000027C9sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027C9sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027C9sv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64227,7 +64578,7 @@ pci:v00008086d000027CAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027CAsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027CAsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64287,7 +64638,7 @@ pci:v00008086d000027CBsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027CBsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027CBsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64347,7 +64698,7 @@ pci:v00008086d000027CCsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027CCsv000017AAsd0000200B* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027CCsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64509,7 +64860,7 @@ pci:v00008086d000027D8sv00001734sd000010AD* - ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP - - pci:v00008086d000027D8sv000017AAsd00002010* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027D8sv000017AAsd00003802* - ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] -@@ -64569,7 +64920,7 @@ pci:v00008086d000027DAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027DAsv000017AAsd0000200F* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027DAsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64647,7 +64998,7 @@ pci:v00008086d000027DFsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027DFsv000017AAsd0000200C* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027DFsv00008086sd0000544E* - ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -@@ -70358,6 +70709,9 @@ pci:v00008086d00008C02* - pci:v00008086d00008C03* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] - -+pci:v00008086d00008C03sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C03sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70442,6 +70796,9 @@ pci:v00008086d00008C1F* - pci:v00008086d00008C20* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller - -+pci:v00008086d00008C20sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C20sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70451,6 +70808,9 @@ pci:v00008086d00008C21* - pci:v00008086d00008C22* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller - -+pci:v00008086d00008C22sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C22sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70463,18 +70823,27 @@ pci:v00008086d00008C24* - pci:v00008086d00008C26* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 - -+pci:v00008086d00008C26sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C26sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - - pci:v00008086d00008C2D* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 - -+pci:v00008086d00008C2Dsv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C2Dsv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - - pci:v00008086d00008C31* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI - -+pci:v00008086d00008C31sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C31sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70487,6 +70856,9 @@ pci:v00008086d00008C34* - pci:v00008086d00008C3A* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 - -+pci:v00008086d00008C3Asv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C3Asv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70547,6 +70919,9 @@ pci:v00008086d00008C4E* - pci:v00008086d00008C4F* - ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller - -+pci:v00008086d00008C4Fsv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C4Fsv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70820,6 +71195,9 @@ pci:v00008086d00009C02* - pci:v00008086d00009C03* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] - -+pci:v00008086d00009C03sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C04* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] - -@@ -70907,12 +71285,18 @@ pci:v00008086d00009C1F* - pci:v00008086d00009C20* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller - -+pci:v00008086d00009C20sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C21* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller - - pci:v00008086d00009C22* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller - -+pci:v00008086d00009C22sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C23* - ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters - -@@ -70922,12 +71306,18 @@ pci:v00008086d00009C24* - pci:v00008086d00009C26* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 - -+pci:v00008086d00009C26sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C2D* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 - - pci:v00008086d00009C31* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC - -+pci:v00008086d00009C31sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C35* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller - -@@ -70937,6 +71327,9 @@ pci:v00008086d00009C36* - pci:v00008086d00009C3A* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 - -+pci:v00008086d00009C3Asv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C3B* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 - -@@ -70958,6 +71351,9 @@ pci:v00008086d00009C42* - pci:v00008086d00009C43* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller - -+pci:v00008086d00009C43sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C44* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller - -@@ -72557,6 +72953,54 @@ pci:v0000A727d00000013* - pci:v0000A727d00006803* - ID_MODEL_FROM_DATABASE=3CRDAG675B Wireless 11a/b/g Adapter - -+pci:v0000AA00* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA01* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA02* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA03* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA04* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA05* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA06* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA07* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA08* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA09* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0A* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0B* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0C* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0D* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0E* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0F* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ - pci:v0000AA42* - ID_VENDOR_FROM_DATABASE=Scitex Digital Video - --- -1.7.9.2 - diff --git a/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch b/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch deleted file mode 100644 index 17cd4197..00000000 --- a/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch +++ /dev/null @@ -1,25 +0,0 @@ -From fdb8bd0fe7244b72ddc1c08e401ebddefdaf4f46 Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:38 +0200 -Subject: [PATCH] include fcntl.h rather than sys/fcntl.h - ---- - src/socket-proxy/socket-proxyd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/socket-proxy/socket-proxyd.c src/socket-proxy/socket-proxyd.c -index 81d8457..ff2b24f 100644 ---- src/socket-proxy/socket-proxyd.c -+++ src/socket-proxy/socket-proxyd.c -@@ -26,7 +26,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include --- -1.7.9.2 - diff --git a/0002-journal-compress-improve-xz-compression-performance.patch b/0002-journal-compress-improve-xz-compression-performance.patch deleted file mode 100644 index adccdaad..00000000 --- a/0002-journal-compress-improve-xz-compression-performance.patch +++ /dev/null @@ -1,82 +0,0 @@ -Based on 1930eed2a7855d2df06ccf51f9e394428bf547e2 Mon Sep 17 00:00:00 2001 -From: Jon Severinsson -Date: Tue, 8 Jul 2014 18:29:46 +0200 -Subject: [PATCH] journal/compress: improve xz compression performance - -The new lzma2 compression options at the top of compress_blob_xz are -equivalent to using preset "0", exept for using a 1 MiB dictionary -(the same as preset "1"). This makes the memory usage at most 7.5 MiB -in the compressor, and 1 MiB in the decompressor, instead of the -previous 92 MiB in the compressor and 8 MiB in the decompressor. - -According to test-compress-benchmark this commit makes XZ compression -20 times faster, with no increase in compressed data size. -Using more realistic test data (an ELF binary rather than repeating -ASCII letters 'a' through 'z' in order) it only provides a factor 10 -speedup, and at a cost if a 10% increase in compressed data size. -But that is still a worthwhile trade-off. - -According to test-compress-benchmark XZ compression is still 25 times -slower than LZ4, but the compressed data is one eighth the size. -Using more realistic test data XZ compression is only 18 times slower -than LZ4, and the compressed data is only one quarter the size. - ---- - src/journal/compress.c | 33 ++++++++++++++------------------- - 1 file changed, 14 insertions(+), 19 deletions(-) - ---- src/journal/compress.c -+++ src/journal/compress.c 2014-07-09 12:09:45.814235274 +0000 -@@ -28,8 +28,15 @@ - #include "compress.h" - - bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { -- lzma_stream s = LZMA_STREAM_INIT; -+ static const lzma_options_lzma opt = { -+ 1u << 20u, NULL, 0, LZMA_LC_DEFAULT, LZMA_LP_DEFAULT, -+ LZMA_PB_DEFAULT, LZMA_MODE_FAST, 128, LZMA_MF_HC3, 4}; -+ static const lzma_filter filters[2] = { -+ {LZMA_FILTER_LZMA2, (lzma_options_lzma*) &opt}, -+ {LZMA_VLI_UNKNOWN, NULL} -+ }; - lzma_ret ret; -+ size_t out_pos = 0; - bool b = false; - - assert(src); -@@ -40,29 +47,17 @@ bool compress_blob(const void *src, uint - /* Returns false if we couldn't compress the data or the - * compressed result is longer than the original */ - -- ret = lzma_easy_encoder(&s, LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE); -- if (ret != LZMA_OK) -+ if (src_size < 80) - return false; - -- s.next_in = src; -- s.avail_in = src_size; -- s.next_out = dst; -- s.avail_out = src_size; -- -- /* Does it fit? */ -- if (lzma_code(&s, LZMA_FINISH) != LZMA_STREAM_END) -- goto fail; -- -- /* Is it actually shorter? */ -- if (s.avail_out == 0) -- goto fail; -+ ret = lzma_stream_buffer_encode((lzma_filter*) filters, LZMA_CHECK_NONE, NULL, -+ src, src_size, dst, &out_pos, src_size - 1); -+ if (ret != LZMA_OK) -+ return false; - -- *dst_size = src_size - s.avail_out; -+ *dst_size = out_pos; - b = true; - --fail: -- lzma_end(&s); -- - return b; - } - diff --git a/0002-journal-properly-detect-language-specified-in-line.patch b/0002-journal-properly-detect-language-specified-in-line.patch deleted file mode 100644 index 361518a2..00000000 --- a/0002-journal-properly-detect-language-specified-in-line.patch +++ /dev/null @@ -1,99 +0,0 @@ -From baf167ee0a2953f98e4e7d4c35752ef737832674 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Apr 2014 20:57:27 -0400 -Subject: [PATCH] journal: properly detect language specified in line - -... it turns out that the duplicates in our own catalog were not real -duplicates, but translations. ---- - TODO | 2 ++ - src/journal/catalog.c | 53 +++++++++++++++++++++++++++++++------------------ - 2 files changed, 36 insertions(+), 19 deletions(-) - -diff --git TODO TODO -index 0343b94..a7307f7 100644 ---- TODO -+++ TODO -@@ -709,6 +709,8 @@ External: - - * fedora: update policy to declare access mode and ownership of unit files to root:root 0644, and add an rpmlint check for it - -+* register catalog database signature as file magic -+ - Regularly: - - * look for close() vs. close_nointr() vs. close_nointr_nofail() -diff --git src/journal/catalog.c src/journal/catalog.c -index 02dedc4..f03357d 100644 ---- src/journal/catalog.c -+++ src/journal/catalog.c -@@ -159,6 +159,37 @@ int catalog_file_lang(const char* filename, char **lang) { - return 1; - } - -+static int catalog_entry_lang(const char* filename, int line, -+ const char* t, const char* deflang, char **lang) { -+ size_t c; -+ -+ c = strlen(t); -+ if (c == 0) { -+ log_error("[%s:%u] Language too short.", filename, line); -+ return -EINVAL; -+ } -+ if (c > 31) { -+ log_error("[%s:%u] language too long.", filename, line); -+ return -EINVAL; -+ } -+ -+ if (deflang) { -+ if (streq(t, deflang)) { -+ log_warning("[%s:%u] language specified unnecessarily", -+ filename, line); -+ return 0; -+ } else -+ log_warning("[%s:%u] language differs from default for file", -+ filename, line); -+ } -+ -+ *lang = strdup(t); -+ if (!*lang) -+ return -ENOMEM; -+ -+ return 0; -+} -+ - int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { - _cleanup_fclose_ FILE *f = NULL; - _cleanup_free_ char *payload = NULL; -@@ -238,25 +269,9 @@ int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { - if (with_language) { - t = strstrip(line + 2 + 1 + 32 + 1); - -- c = strlen(t); -- if (c <= 0) { -- log_error("[%s:%u] Language too short.", path, n); -- return -EINVAL; -- } -- if (c > 31) { -- log_error("[%s:%u] language too long.", path, n); -- return -EINVAL; -- } -- -- if (deflang) { -- log_warning("[%s:%u] language %s", path, n, -- streq(t, deflang) ? -- "specified unnecessarily" : -- "differs from default for file"); -- lang = strdup(t); -- if (!lang) -- return -ENOMEM; -- } -+ r = catalog_entry_lang(path, n, t, deflang, &lang); -+ if (r < 0) -+ return r; - } - - got_id = true; --- -1.7.9.2 - diff --git a/0002-journalctl-man-allow-only-between-terms.patch b/0002-journalctl-man-allow-only-between-terms.patch deleted file mode 100644 index c29bdf6f..00000000 --- a/0002-journalctl-man-allow-only-between-terms.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 4e6029435111adcad71489aca2dd68bc65aeffd4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 19 Jul 2014 21:05:07 -0400 -Subject: [PATCH] journalctl,man: allow + only between terms - -https://bugzilla.redhat.com/show_bug.cgi?id=1110712 ---- - man/journalctl.xml | 19 +++++++++++++++---- - src/journal/journalctl.c | 20 +++++++++++++++++--- - 2 files changed, 32 insertions(+), 7 deletions(-) - -diff --git man/journalctl.xml man/journalctl.xml -index 47b5a05..df9c794 100644 ---- man/journalctl.xml -+++ man/journalctl.xml -@@ -84,10 +84,11 @@ - field, then they are automatically matched as - alternatives, i.e. the resulting output will show - entries matching any of the specified matches for the -- same field. Finally, if the character -- + appears as a separate word on the -- command line, all matches before and after are combined -- in a disjunction (i.e. logical OR). -+ same field. Finally, the character -+ + may appears as a separate word -+ between other terms on the command line. This causes -+ all matches before and after to be combined in a -+ disjunction (i.e. logical OR). - - As shortcuts for a few types of field/value - matches, file paths may be specified. If a file path -@@ -98,11 +99,21 @@ - _KERNEL_DEVICE= match for the - device. - -+ Additional contraints may be added using options -+ , , -+ etc, to futher limit what entries will be shown -+ (logical AND). -+ - Output is interleaved from all accessible - journal files, whether they are rotated or currently - being written, and regardless of whether they belong to the - system itself or are accessible user journals. - -+ The set of journal files which will be used -+ can be modified using the , -+ , , -+ and options, see below. -+ - All users are granted access to their private - per-user journals. However, by default, only root and - users who are members of the systemd-journal -diff --git src/journal/journalctl.c src/journal/journalctl.c -index 92e8286..7aedbf0 100644 ---- src/journal/journalctl.c -+++ src/journal/journalctl.c -@@ -699,15 +699,20 @@ static int generate_new_id128(void) { - - static int add_matches(sd_journal *j, char **args) { - char **i; -+ bool have_term = false; - - assert(j); - - STRV_FOREACH(i, args) { - int r; - -- if (streq(*i, "+")) -+ if (streq(*i, "+")) { -+ if (!have_term) -+ break; - r = sd_journal_add_disjunction(j); -- else if (path_is_absolute(*i)) { -+ have_term = false; -+ -+ } else if (path_is_absolute(*i)) { - _cleanup_free_ char *p, *t = NULL, *t2 = NULL; - const char *path; - _cleanup_free_ char *interpreter = NULL; -@@ -756,8 +761,12 @@ static int add_matches(sd_journal *j, char **args) { - r = sd_journal_add_match(j, t, 0); - if (t2) - r = sd_journal_add_match(j, t2, 0); -- } else -+ have_term = true; -+ -+ } else { - r = sd_journal_add_match(j, *i, 0); -+ have_term = true; -+ } - - if (r < 0) { - log_error("Failed to add match '%s': %s", *i, strerror(-r)); -@@ -765,6 +774,11 @@ static int add_matches(sd_journal *j, char **args) { - } - } - -+ if (!strv_isempty(args) && !have_term) { -+ log_error("\"+\" can only be used between terms"); -+ return -EINVAL; -+ } -+ - return 0; - } - --- -1.7.9.2 - diff --git a/0002-journald-make-MaxFileSec-really-default-to-1month.patch b/0002-journald-make-MaxFileSec-really-default-to-1month.patch deleted file mode 100644 index 9b48fcae..00000000 --- a/0002-journald-make-MaxFileSec-really-default-to-1month.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on e150e82097211f09b911c7784a89ef9efed713ca Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= -Date: Thu, 26 Jun 2014 22:11:35 +0200 -Subject: [PATCH] journald: make MaxFileSec really default to 1month - -journald.conf(5) states that the default for MaxFileSec is one month, -but the code didn't respect that. ---- - src/journal/journald-server.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- src/journal/journald-server.c -+++ src/journal/journald-server.c 2014-07-01 12:28:25.506735287 +0000 -@@ -68,6 +68,7 @@ - #define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE) - #define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC) - #define DEFAULT_RATE_LIMIT_BURST 1000 -+#define DEFAULT_MAX_FILE_USEC USEC_PER_MONTH - - #define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC) - -@@ -1496,6 +1497,8 @@ int server_init(Server *s) { - - s->forward_to_syslog = true; - -+ s->max_file_usec = DEFAULT_MAX_FILE_USEC; -+ - s->max_level_store = LOG_DEBUG; - s->max_level_syslog = LOG_DEBUG; - s->max_level_kmsg = LOG_NOTICE; diff --git a/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch b/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch deleted file mode 100644 index 7ba1dc4d..00000000 --- a/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1f6d36f267186c0e3184bab4c7eca48481c6faab Mon Sep 17 00:00:00 2001 -From: Hui Wang -Date: Wed, 30 Jul 2014 16:09:08 +0800 -Subject: [PATCH] keymap: Add microphone mute keymap for Dell Latitude - -On the Dell Latitude, the mic mute key event is generated by wmi -driver, the keycode assigned to this hotkey from kernel is -KEY_MICMUTE (248), this keycode is too big for xorg to handle, -in the xorg, the XF86AudioMicMute is assigned to F20. - -Please refer to 4e648ea0 of xkeyboard-config. - -BugLink: https://bugs.launchpad.net/bugs/1326684 -BugLink: https://bugs.launchpad.net/bugs/1339998 -Signed-off-by: Hui Wang -Signed-off-by: Martin Pitt ---- - hwdb/60-keyboard.hwdb | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index c7ff4e4..70e372b 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -229,6 +229,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - KEYBOARD_KEY_8c=!unknown - -+# Dell Latitude microphone mute -+keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* -+ KEYBOARD_KEY_150=f20 # Mic mute toggle -+ - ########################################################### - # Everex - ########################################################### --- -1.7.9.2 - diff --git a/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch b/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch deleted file mode 100644 index e921c60b..00000000 --- a/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e55edb22a71e67f01534d28f91c6aa27bba48fc1 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Sun, 25 May 2014 12:16:35 +0200 -Subject: [PATCH] keymap: Asus EeePC touchpad toggle key - -Originally is KEY_TOUCHPAD_TOGGLE, but X.org can't handle the big key events, -so use the F21 convention. - -https://bugs.freedesktop.org/show_bug.cgi?id=72807 ---- - hwdb/60-keyboard.hwdb | 1 + - 1 file changed, 1 insertion(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index fe5b3ee..05e6a04 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -138,6 +138,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* - KEYBOARD_KEY_ef=mute - - keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* -+keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* - KEYBOARD_KEY_6b=f21 # Touchpad Toggle - - ########################################################### --- -1.7.9.2 - diff --git a/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch b/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch deleted file mode 100644 index 28f7bb2a..00000000 --- a/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b4c72e52d2109fe7f0ac3440c81ae3e1ce64a143 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Wed, 12 Nov 2014 23:31:08 +0100 -Subject: [PATCH] keymap: Fix special keys on ThinkPad X60/X61 Tablet - -KEY_DIRECTION is mapped to XF86RotateWindows, to rotate the display: -http://cgit.freedesktop.org/xkeyboard-config/commit/symbols/inet?id=ec875f6f9b7c4028e11d32b071989c682e6502bd - -And F13 is mapped to XF86Tools, which is closest to the original toolbox -usage: -http://cgit.freedesktop.org/xkeyboard-config/tree/symbols/inet?id=7a2c4bed212ebbcc05f3c959aef659ce7dd31fd8#n221 ---- - hwdb/60-keyboard.hwdb | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 56a4009..533ad5b 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -585,8 +585,8 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* - - # ThinkPad X6 Tablet - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* -- KEYBOARD_KEY_6c=f21 # rotate -- KEYBOARD_KEY_68=screenlock # screenlock -+ KEYBOARD_KEY_6c=direction # rotate -+ KEYBOARD_KEY_68=f13 # toolbox - KEYBOARD_KEY_6b=esc # escape - KEYBOARD_KEY_6d=right # right on d-pad - KEYBOARD_KEY_6e=left # left on d-pad --- -1.7.9.2 - diff --git a/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch b/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch deleted file mode 100644 index 45af9018..00000000 --- a/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4e3deeedc15b03197d591850061316289245c9a9 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 7 Oct 2014 11:22:31 +0200 -Subject: [PATCH] keymap: Fix touchpad toggle key on Asus laptops - -https://launchpad.net/bugs/1377352 ---- - hwdb/60-keyboard.hwdb | 1 + - 1 file changed, 1 insertion(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 1fea32a..59f467b 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -153,6 +153,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* - - keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* - keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* -+keyboard:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* - KEYBOARD_KEY_6b=f21 # Touchpad Toggle - - ########################################################### --- -1.7.9.2 - diff --git a/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch b/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch deleted file mode 100644 index e29c01d9..00000000 --- a/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From aba248ee6b1eb10baf3d89eca2ad7569459af6ab Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 30 Oct 2014 10:15:54 +0100 -Subject: [PATCH] keymap: Ignore brightness keys on Dell Inspiron 1520 to - avoid double events - -On the Dell Inspiron 1520 both the atkbd and acpi-video input devices report -an event for pressing the brightness up / down key-combos, resulting in user -space seeing double events and increasing / decreasing the brightness 2 steps -for each keypress. - -This hwdb snippet suppresses the atkbd events, making the Inspiron 1520 work -like most modern laptops which emit brightness up / down events through -acpi-video only. - -Reported by Pavel Malyshev - -https://bugzilla.redhat.com/show_bug.cgi?id=1141525 ---- - hwdb/60-keyboard.hwdb | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 06caba9..d2ca965 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -230,6 +230,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:pvr* - KEYBOARD_KEY_84=wlan - -+# Dell Inspiron 1520 -+keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:pvr* -+ KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore -+ KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore -+ - # Latitude XT2 - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*XT2:pvr* - KEYBOARD_KEY_9b=up # tablet rocker up --- -1.7.9.2 - diff --git a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch deleted file mode 100644 index a1934486..00000000 --- a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 25 Feb 2014 13:08:24 +0100 -Subject: [PATCH] login: set pos-slot to fallback on pos-eviction - -If we evict a session position, we open the position slot for future -sessions. However, there might already be another session on the same -position if both were started on the same VT. This is currently done if -gdm spawns the session on its own Xserver. - -Hence, look for such a session on pos-eviction and claim the new slot -immediately. ---- - src/login/logind-seat.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git src/login/logind-seat.c src/login/logind-seat.c -index 36ec7ed..96cf08e 100644 ---- src/login/logind-seat.c -+++ src/login/logind-seat.c -@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { - } - - void seat_evict_position(Seat *s, Session *session) { -+ Session *iter; - unsigned int pos = session->pos; - - session->pos = 0; -@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { - if (!pos) - return; - -- if (pos < s->position_count && s->positions[pos] == session) -+ if (pos < s->position_count && s->positions[pos] == session) { - s->positions[pos] = NULL; -+ -+ /* There might be another session claiming the same -+ * position (eg., during gdm->session transition), so lets look -+ * for it and set it on the free slot. */ -+ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { -+ if (iter->pos == pos) { -+ s->positions[pos] = iter; -+ break; -+ } -+ } -+ } - } - - void seat_claim_position(Seat *s, Session *session, unsigned int pos) { --- -1.7.9.2 - diff --git a/0002-logind-add-support-for-TPS65217-Power-Button.patch b/0002-logind-add-support-for-TPS65217-Power-Button.patch deleted file mode 100644 index 17a576de..00000000 --- a/0002-logind-add-support-for-TPS65217-Power-Button.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 492d7a3038b154e1813a1ece913a5a27148fec19 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Sat, 27 Sep 2014 09:55:44 +0200 -Subject: [PATCH] logind: add support for TPS65217 Power Button - -This PMIC is found on TI AM335x based boards like the beaglebone and -beaglebone black. - -root@beaglebone-white:~# udevadm info -a /dev/input/event0 - -Udevadm info starts with the device specified by the devpath and then -walks up the chain of parent devices. It prints for every device -found, all possible attributes in the udev rules key format. -A rule to match, can be composed by the attributes of the device -and the attributes from one single parent device. - - looking at device -'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0/event0': - KERNEL=="event0" - SUBSYSTEM=="input" - DRIVER=="" - - looking at parent device -'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0': - KERNELS=="input0" - SUBSYSTEMS=="input" - DRIVERS=="" - ATTRS{name}=="tps65217_pwr_but" - ATTRS{phys}=="" - ATTRS{uniq}=="" - ATTRS{properties}=="0" - - looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024': - KERNELS=="0-0024" - SUBSYSTEMS=="i2c" - DRIVERS=="tps65217" - ATTRS{name}=="tps65217" - - looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0': - KERNELS=="i2c-0" - SUBSYSTEMS=="i2c" - DRIVERS=="" - ATTRS{name}=="OMAP I2C adapter" - - looking at parent device '/devices/ocp.3/44e0b000.i2c': - KERNELS=="44e0b000.i2c" - SUBSYSTEMS=="platform" - DRIVERS=="omap_i2c" - - looking at parent device '/devices/ocp.3': - KERNELS=="ocp.3" - SUBSYSTEMS=="platform" - DRIVERS=="" ---- - src/login/70-power-switch.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules -index a6997f7..695d246 100644 ---- src/login/70-power-switch.rules -+++ src/login/70-power-switch.rules -@@ -10,5 +10,6 @@ ACTION=="remove", GOTO="power_switch_end" - SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" -+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" - - LABEL="power_switch_end" --- -1.7.9.2 - diff --git a/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch b/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch deleted file mode 100644 index 73ffb867..00000000 --- a/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 301f9684e6465df5d0590f6c571fe3229ded966d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 15 May 2014 18:30:07 +0200 -Subject: [PATCH] logind: bring polkit policy for hibernate in line with - suspend/poweroff/reboot - -THere's no reason why hibernate should be better protected then -suspendor poweroff, so sync the policies. ---- - src/login/org.freedesktop.login1.policy.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/org.freedesktop.login1.policy.in src/login/org.freedesktop.login1.policy.in -index b96d32d..b8e90f1 100644 ---- src/login/org.freedesktop.login1.policy.in -+++ src/login/org.freedesktop.login1.policy.in -@@ -254,7 +254,7 @@ - - auth_admin_keep - auth_admin_keep -- auth_admin_keep -+ yes - - org.freedesktop.login1.hibernate - --- -1.7.9.2 - diff --git a/0002-logind-fix-printf-format.patch b/0002-logind-fix-printf-format.patch deleted file mode 100644 index 61bbc9aa..00000000 --- a/0002-logind-fix-printf-format.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7e9110a29d90041b0364cb93a84aec9dd72363b6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 19:39:51 +0100 -Subject: [PATCH] logind: fix printf format - ---- - src/login/logind-action.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index da5a830..c9d8bc5 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -81,7 +81,7 @@ int manager_handle_action( - - n = manager_count_displays(m); - if (n != 1) { -- log_debug("Ignoring lid switch request, %s displays connected."); -+ log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } - } --- -1.7.9.2 - diff --git a/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch b/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch deleted file mode 100644 index c3381ef7..00000000 --- a/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch +++ /dev/null @@ -1,70 +0,0 @@ -From de58a50e24a0d55e3bbcc77f8f6170a7322acf52 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 18 Mar 2014 04:43:08 +0100 -Subject: [PATCH] machined: fix Kill() bus call on machine objects when "what" - is specified as "leader" - ---- - src/machine/machine.c | 10 +++++++++- - src/machine/machined-dbus.c | 4 ++-- - src/machine/machined.h | 2 +- - 3 files changed, 12 insertions(+), 4 deletions(-) - -diff --git src/machine/machine.c src/machine/machine.c -index 4596a80..9a5cc9a 100644 ---- src/machine/machine.c -+++ src/machine/machine.c -@@ -410,7 +410,15 @@ int machine_kill(Machine *m, KillWho who, int signo) { - if (!m->unit) - return -ESRCH; - -- return manager_kill_unit(m->manager, m->unit, who, signo, NULL); -+ if (who == KILL_LEADER) { -+ /* If we shall simply kill the leader, do so directly */ -+ -+ if (kill(m->leader, signo) < 0) -+ return -errno; -+ } -+ -+ /* Otherwise make PID 1 do it for us, for the entire cgroup */ -+ return manager_kill_unit(m->manager, m->unit, signo, NULL); - } - - static const char* const machine_class_table[_MACHINE_CLASS_MAX] = { -diff --git src/machine/machined-dbus.c src/machine/machined-dbus.c -index 09d28bb..9473105 100644 ---- src/machine/machined-dbus.c -+++ src/machine/machined-dbus.c -@@ -655,7 +655,7 @@ int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, c - return 1; - } - --int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error) { -+int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error) { - assert(manager); - assert(unit); - -@@ -667,7 +667,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo - "KillUnit", - error, - NULL, -- "ssi", unit, who == KILL_LEADER ? "main" : "all", signo); -+ "ssi", unit, "all", signo); - } - - int manager_unit_is_active(Manager *manager, const char *unit) { -diff --git src/machine/machined.h src/machine/machined.h -index d4b581b..2dba303 100644 ---- src/machine/machined.h -+++ src/machine/machined.h -@@ -67,6 +67,6 @@ int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_b - - int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, sd_bus_message *more_properties, sd_bus_error *error, char **job); - int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); --int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); -+int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error); - int manager_unit_is_active(Manager *manager, const char *unit); - int manager_job_is_active(Manager *manager, const char *path); --- -1.7.9.2 - diff --git a/0002-man-document-yearly-and-annually-in-systemd.time-7.patch b/0002-man-document-yearly-and-annually-in-systemd.time-7.patch deleted file mode 100644 index 521b22cc..00000000 --- a/0002-man-document-yearly-and-annually-in-systemd.time-7.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 8c275eef38bf7e3e592e4cb35a497522d1f15bb6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Jul 2014 22:17:29 -0400 -Subject: [PATCH] man: document yearly and annually in systemd.time(7) - -https://bugs.freedesktop.org/show_bug.cgi?id=81158 ---- - man/systemd.time.xml | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git man/systemd.time.xml man/systemd.time.xml -index 0706cdf..02431a5 100644 ---- man/systemd.time.xml -+++ man/systemd.time.xml -@@ -243,12 +243,16 @@ - - The special expressions - hourly, daily, -- monthly and weekly -- may be used as calendar events which refer to -- *-*-* *:00:00, *-*-* -- 00:00:00, *-*-01 00:00:00 and -- Mon *-*-* 00:00:00, -- respectively. -+ monthly, weekly, -+ and yearly or -+ annually may be used as calendar -+ events which refer to -+ *-*-* *:00:00, -+ *-*-* 00:00:00, -+ *-*-01 00:00:00, -+ Mon *-*-* 00:00:00, and -+ *-01-01 00:00:00 respectively. -+ - - Examples for valid timestamps and their - normalized form: -@@ -277,6 +281,8 @@ Wed-Sat,Tue 12-10-15 1:2:3 → Tue-Sat 2012-10-15 01:02:03 - daily → *-*-* 00:00:00 - monthly → *-*-01 00:00:00 - weekly → Mon *-*-* 00:00:00 -+ yearly → *-01-01 00:00:00 -+ annually → *-01-01 00:00:00 - *:2/3 → *-*-* *:02/3:00 - - Calendar events are used by timer units, see --- -1.7.9.2 - diff --git a/0002-man-note-that-entire-sections-can-now-be-ignored.patch b/0002-man-note-that-entire-sections-can-now-be-ignored.patch deleted file mode 100644 index 2db35728..00000000 --- a/0002-man-note-that-entire-sections-can-now-be-ignored.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 2bcc2523711e69e6daa744641e56ed8b78646676 Mon Sep 17 00:00:00 2001 -From: Michael Marineau -Date: Sat, 17 May 2014 16:09:08 -0700 -Subject: [PATCH] man: note that entire sections can now be ignored - -Prefixing a section name with "X-" will cause it and all of its contents -to be silently ignored as of commit 342aea19. ---- - man/systemd.unit.xml | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 157530b..e903156 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -139,10 +139,12 @@ - Unit files may contain additional options on top - of those listed here. If systemd encounters an unknown - option, it will write a warning log message but -- continue loading the unit. If an option is prefixed -- with , it is ignored completely by -- systemd. Applications may use this to include -- additional information in the unit files. -+ continue loading the unit. If an option or section name -+ is prefixed with , it is ignored -+ completely by systemd. Options within an ignored -+ section do not need the prefix. Applications may use -+ this to include additional information in the unit -+ files. - - Boolean arguments used in unit files can be - written in various formats. For positive settings the --- -1.7.9.2 - diff --git a/0002-man-tmpfiles.d-recommend-using-b-and-c.patch b/0002-man-tmpfiles.d-recommend-using-b-and-c.patch deleted file mode 100644 index bb6c70d2..00000000 --- a/0002-man-tmpfiles.d-recommend-using-b-and-c.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210-mod/man/tmpfiles.d.xml ---- systemd-210/man/tmpfiles.d.xml 2014-12-16 10:16:51.269189374 +0100 -+++ systemd-210-mod/man/tmpfiles.d.xml 2014-12-16 10:39:49.937552189 +0100 -@@ -158,12 +158,18 @@ - - - c -- Create a character device node if it does not exist yet. -+ Create a character device node if it does not exist yet. -+ It is recommended to suffix this entry with an exclamation mark to only -+ create static device nodes at boot, as udev will not manage static device -+ nodes that are created at runtime. - - - - b -- Create a block device node if it does not exist yet. -+ Create a block device node if it does not exist yet. -+ It is recommended to suffix this entry with an exclamation mark to only -+ create static device nodes at boot, as udev will not manage static device -+ nodes that re created at runtime. - - - diff --git a/0002-manager-flush-memory-stream-before-using-the-buffer.patch b/0002-manager-flush-memory-stream-before-using-the-buffer.patch deleted file mode 100644 index 39ca371c..00000000 --- a/0002-manager-flush-memory-stream-before-using-the-buffer.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b2cdc6664ef6b56e47d38649d69b9943d9f9f5d0 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 7 Mar 2014 14:43:59 +0100 -Subject: [PATCH] manager: flush memory stream before using the buffer - -When the manager receives a SIGUSR2 signal, it opens a memory stream -with open_memstream(), uses the returned file handle for logging, and -dumps the logged content with log_dump(). - -However, the char* buffer is only safe to use after the file handle has -been flushed with fflush, as the man pages states: - - When the stream is closed (fclose(3)) or flushed (fflush(3)), the - locations pointed to by ptr and sizeloc are updated to contain, - respectively, a pointer to the buffer and the current size of the - buffer. - These values remain valid only as long as the caller performs no - further output on the stream. If further output is performed, then the - stream must again be flushed before trying to access these variables. - -Without that call, dump remains NULL and the daemon crashes in -log_dump(). ---- - src/core/manager.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/core/manager.c src/core/manager.c -index 27a1cc6..78f4f3d 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -1621,6 +1621,11 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t - break; - } - -+ if (fflush(f)) { -+ log_warning("Failed to flush status stream"); -+ break; -+ } -+ - log_dump(LOG_INFO, dump); - break; - } --- -1.7.9.2 - diff --git a/0002-namespace-fix-uninitialized-memory-access.patch b/0002-namespace-fix-uninitialized-memory-access.patch deleted file mode 100644 index bb6ea8ea..00000000 --- a/0002-namespace-fix-uninitialized-memory-access.patch +++ /dev/null @@ -1,28 +0,0 @@ -Based on 002b226843e77630128da580225f9c3ef8474db2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 16:27:53 +0200 -Subject: [PATCH] namespace: fix uninitialized memory access - ---- - src/core/namespace.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- src/core/namespace.c -+++ src/core/namespace.c 2014-07-04 00:00:00.000000000 +0000 -@@ -68,6 +68,7 @@ static int append_mounts(BindMount **p, - STRV_FOREACH(i, strv) { - - (*p)->ignore = false; -+ (*p)->done = false; - - if ((mode == INACCESSIBLE || mode == READONLY) && (*i)[0] == '-') { - (*p)->ignore = true; -@@ -298,7 +299,7 @@ int setup_namespace( - private_dev; - - if (n > 0) { -- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); -+ m = mounts = (BindMount *) alloca0(n * sizeof(BindMount)); - r = append_mounts(&m, read_write_dirs, READWRITE); - if (r < 0) - return r; diff --git a/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch b/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch deleted file mode 100644 index dfbf403c..00000000 --- a/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch +++ /dev/null @@ -1,122 +0,0 @@ -Based on 6d313367d9ef780560e117e886502a99fa220eac Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 21:35:35 +0200 -Subject: [PATCH] namespace: when setting up an inaccessible mount point, - unmounting everything below - -This has the benefit of not triggering any autofs mount points -unnecessarily. - ---- - src/core/namespace.c | 6 ++++ - src/shared/util.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ - src/shared/util.h | 2 + - 3 files changed, 76 insertions(+) - ---- src/core/namespace.c -+++ src/core/namespace.c 2014-06-11 00:00:00.000000000 +0000 -@@ -220,6 +220,12 @@ static int apply_mount( - return mount_dev(m); - - case INACCESSIBLE: -+ -+ /* First, get rid of everything that is below if there -+ * is anything... Then, overmount it with an -+ * inaccessible directory. */ -+ umount_recursive(m->path, 0); -+ - what = "/run/systemd/inaccessible"; - break; - ---- src/shared/util.c -+++ src/shared/util.c 2014-06-11 00:00:00.000000000 +0000 -@@ -54,6 +54,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -4635,6 +4636,73 @@ char *strjoin(const char *x, ...) { - return r; - } - -+int umount_recursive(const char *prefix, int flags) { -+ bool again; -+ int n = 0, r; -+ -+ /* Try to umount everything recursively below a -+ * directory. Also, take care of stacked mounts, and keep -+ * unmounting them until they are gone. */ -+ -+ do { -+ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; -+ -+ again = false; -+ r = 0; -+ -+ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); -+ if (!proc_self_mountinfo) -+ return -errno; -+ -+ for (;;) { -+ _cleanup_free_ char *path = NULL, *p = NULL; -+ int k; -+ -+ k = fscanf(proc_self_mountinfo, -+ "%*s " /* (1) mount id */ -+ "%*s " /* (2) parent id */ -+ "%*s " /* (3) major:minor */ -+ "%*s " /* (4) root */ -+ "%ms " /* (5) mount point */ -+ "%*s" /* (6) mount options */ -+ "%*[^-]" /* (7) optional fields */ -+ "- " /* (8) separator */ -+ "%*s " /* (9) file system type */ -+ "%*s" /* (10) mount source */ -+ "%*s" /* (11) mount options 2 */ -+ "%*[^\n]", /* some rubbish at the end */ -+ &path); -+ -+ if (k != 1) { -+ if (k == EOF) -+ break; -+ -+ continue; -+ } -+ -+ p = cunescape(path); -+ if (!p) -+ return -ENOMEM; -+ -+ if (!path_startswith(p, prefix)) -+ continue; -+ -+ if (umount2(p, flags) < 0) { -+ r = -errno; -+ continue; -+ } -+ -+ again = true; -+ n++; -+ -+ break; -+ } -+ -+ } while (again); -+ -+ return r ? r : n; -+} -+ - bool is_main_thread(void) { - static thread_local int cached = 0; - ---- src/shared/util.h -+++ src/shared/util.h 2014-06-11 10:10:08.000000000 +0000 -@@ -890,3 +890,5 @@ union file_handle_union { - struct file_handle handle; - char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; - }; -+ -+int umount_recursive(const char *target, int flags); diff --git a/0002-nspawn-restore-journal-directory-is-empty-check.patch b/0002-nspawn-restore-journal-directory-is-empty-check.patch deleted file mode 100644 index c3d60bd4..00000000 --- a/0002-nspawn-restore-journal-directory-is-empty-check.patch +++ /dev/null @@ -1,30 +0,0 @@ -From cdb2b9d05a2f3d649f47bd2ba24eb3fe30b52e92 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 May 2014 15:19:46 +0900 -Subject: [PATCH] nspawn: restore journal directory is empty check - -This undoes part of commit e6a4a517befe559adf6d1dbbadf425c3538849c9. - -Instead of removing the error message about non-empty journal bind mount -directories, simply downgrade the message to a warning and proceed. ---- - src/nspawn/nspawn.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index ef84664..eb9c5e0 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1143,6 +1143,9 @@ static int setup_journal(const char *directory) { - } else if (access(p, F_OK) < 0) - return 0; - -+ if (dir_is_empty(q) == 0) -+ log_warning("%s is not empty, proceeding anyway.", q); -+ - r = mkdir_p(q, 0755); - if (r < 0) { - log_error("Failed to create %s: %m", q); --- -1.7.9.2 - diff --git a/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch b/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch deleted file mode 100644 index 06a4521c..00000000 --- a/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 85c08dc013f9f99b58bc9b79284af0b35304237b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 13 May 2014 16:35:34 +0200 -Subject: [PATCH] pam_systemd: use F_DUPFD_CLOEXEC when dupping session fds - -http://lists.freedesktop.org/archives/systemd-devel/2014-May/019034.html ---- - src/login/pam-module.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/pam-module.c src/login/pam-module.c -index 9873dd5..1259457 100644 ---- src/login/pam-module.c -+++ src/login/pam-module.c -@@ -475,7 +475,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( - } - - if (session_fd >= 0) { -- session_fd = dup(session_fd); -+ session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3); - if (session_fd < 0) { - pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m"); - return PAM_SESSION_ERR; --- -1.7.9.2 - diff --git a/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch b/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch deleted file mode 100644 index 67ad0284..00000000 --- a/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch +++ /dev/null @@ -1,116 +0,0 @@ -Based on 4844262f25a3ff6bd23de05a0a6f84a8e2983d74 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 3 Dec 2014 02:02:11 +0100 -Subject: [PATCH] rfkill: rework how we generate file names from rfkill - devices - -Generate the file name from ID_PATH plus the rfkill type (wlan, -bluetooth, ...) and ignore the rfkill device name, since it apparently -is not a stable identifier. - -Also, ensure that devices disappearing don't result in broken services, -simply exit cleanly. ---- - src/rfkill/rfkill.c | 47 ++++++++++++++++++++++++----------------------- - 1 file changed, 24 insertions(+), 23 deletions(-) - ---- src/rfkill/rfkill.c -+++ src/rfkill/rfkill.c 2014-12-05 12:05:59.053518122 +0000 -@@ -28,8 +28,8 @@ - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_device_unref_ struct udev_device *device = NULL; -- _cleanup_free_ char *saved = NULL, *escaped_name = NULL, *escaped_path_id = NULL; -- const char *name, *path_id; -+ _cleanup_free_ char *saved = NULL, *escaped_type = NULL, *escaped_path_id = NULL; -+ const char *name, *type, *path_id; - int r; - - if (argc != 3) { -@@ -55,25 +55,28 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- errno = 0; - device = udev_device_new_from_subsystem_sysname(udev, "rfkill", argv[2]); - if (!device) { -- if (errno != 0) -- log_error("Failed to get rfkill device '%s': %m", argv[2]); -- else -- log_oom(); -- -- return EXIT_FAILURE; -+ log_debug("Failed to get rfkill device '%s', ignoring: %m", argv[2]); -+ return EXIT_SUCCESS; - } - - name = udev_device_get_sysattr_value(device, "name"); - if (!name) { -- log_error("rfkill device has no name?"); -- return EXIT_FAILURE; -+ log_error("rfkill device has no name? Ignoring device."); -+ return EXIT_SUCCESS; -+ } -+ -+ log_debug("Operating on rfkill device '%s'.", name); -+ -+ type = udev_device_get_sysattr_value(device, "type"); -+ if (!type) { -+ log_error("rfkill device has no type? Ignoring device."); -+ return EXIT_SUCCESS; - } - -- escaped_name = cescape(name); -- if (!escaped_name) { -+ escaped_type = cescape(type); -+ if (!escaped_type) { - log_oom(); - return EXIT_FAILURE; - } -@@ -86,9 +89,9 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_name, NULL); -+ saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_type, NULL); - } else -- saved = strjoin("/var/lib/systemd/rfkill/", escaped_name, NULL); -+ saved = strjoin("/var/lib/systemd/rfkill/", escaped_type, NULL); - - if (!saved) { - log_oom(); -@@ -102,19 +105,17 @@ int main(int argc, char *argv[]) { - return EXIT_SUCCESS; - - r = read_one_line_file(saved, &value); -+ if (r == -ENOENT) -+ return EXIT_SUCCESS; - if (r < 0) { -- -- if (r == -ENOENT) -- return EXIT_SUCCESS; -- - log_error("Failed to read %s: %s", saved, strerror(-r)); - return EXIT_FAILURE; - } - - r = udev_device_set_sysattr_value(device, "soft", value); - if (r < 0) { -- log_error("Failed to write system attribute: %s", strerror(-r)); -- return EXIT_FAILURE; -+ log_debug("Failed to write 'soft' attribute on rfkill device, ignoring: %s", strerror(-r)); -+ return EXIT_SUCCESS; - } - - } else if (streq(argv[1], "save")) { -@@ -122,8 +123,8 @@ int main(int argc, char *argv[]) { - - value = udev_device_get_sysattr_value(device, "soft"); - if (!value) { -- log_error("Failed to read system attribute: %s", strerror(-r)); -- return EXIT_FAILURE; -+ log_debug("Failed to read system attribute, ignoring device: %s", strerror(-r)); -+ return EXIT_SUCCESS; - } - - r = write_string_file(saved, value); diff --git a/0002-shell-completion-prevent-mangling-unit-names.patch b/0002-shell-completion-prevent-mangling-unit-names.patch deleted file mode 100644 index 9d8b1324..00000000 --- a/0002-shell-completion-prevent-mangling-unit-names.patch +++ /dev/null @@ -1,67 +0,0 @@ -Based on 6d314eca15f6cbda38d82774b210f784d3d4f52a Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Sat, 26 Jul 2014 11:15:52 -0400 -Subject: [PATCH] shell-completion: prevent mangling unit names - -Units with literal hex '\xFF' in their names has to be read -and printed properly. -dev-disk-byx2dlabel-root.device != dev-disk-by\x2dlabel-root.device ---- - shell-completion/zsh/_systemctl.in | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git shell-completion/zsh/_systemctl.in shell-completion/zsh/_systemctl.in -index d364d17..e681ec6 100644 ---- shell-completion/zsh/_systemctl -+++ shell-completion/zsh/_systemctl -@@ -100,7 +100,7 @@ _systemctl_all_units() - if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) && - ! _retrieve_cache SYS_ALL_UNITS; - then -- _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo " $a"; done; }) ) -+ _sys_all_units=( $(__systemctl list-units --all | { while read -r a b; do echo -E - " $a"; done; }) ) - _store_cache SYS_ALL_UNITS _sys_all_units - fi - } -@@ -113,7 +113,7 @@ _systemctl_really_all_units() - if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) && - ! _retrieve_cache SYS_REALLY_ALL_UNITS; - then -- all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo " $a"; done; }) ) -+ all_unit_files=( $(__systemctl list-unit-files | { while read -r a b; do echo -E - " $a"; done; }) ) - _systemctl_all_units - really_all_units=($_sys_all_units $all_unit_files) - _sys_really_all_units=(${(u)really_all_units}) -@@ -138,12 +138,12 @@ _filter_units_by_property() { - done - } - --_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo " $a"; done; }) )} --_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )} --_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )} --_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )} --_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )} --_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )} -+_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} -+_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} -+_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} -+_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} -+_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} -+_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )} - - # Completion functions for ALL_UNITS - for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies ; do -@@ -219,8 +219,8 @@ for fun in restart reload-or-restart ; do - { - _systemctl_all_units - compadd "$@" - $( _filter_units_by_property CanStart yes \ -- ${_sys_all_units[*]} | while read line; do \ -- [[ "$line" =~ \.device$ ]] || echo " $line"; \ -+ ${_sys_all_units[*]} | while read -r line; do \ -+ [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ - done ) - } - done --- -1.7.9.2 - diff --git a/0002-shell-completion-propose-templates-for-disable-re-en.patch b/0002-shell-completion-propose-templates-for-disable-re-en.patch deleted file mode 100644 index 3a58e013..00000000 --- a/0002-shell-completion-propose-templates-for-disable-re-en.patch +++ /dev/null @@ -1,111 +0,0 @@ -Based on e9a19bd882ff8a2c8aef5c63b39525ea231e5fb9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 14 Oct 2014 21:10:02 -0400 -Subject: [PATCH] shell-completion: propose templates for - disable/[re]enable/[re]start - -Templates can be [re]enabled, on their own if the have DefaultInstance set, -and with an instance suffix in all cases. Propose just the template name -ending in @, to underline the instance suffix may have to be appended. - -Likewise for start/restart. - -This means that sometimes superflous units that one will not really -want to operate on will be proposed, but this seems better than -proposing a very incomplete set of names. - -https://bugs.freedesktop.org/show_bug.cgi?id=66912 ---- - shell-completion/bash/systemctl | 15 +++++++++++---- - shell-completion/zsh/_systemctl | 20 +++++++++++++------- - 2 files changed, 24 insertions(+), 11 deletions(-) - ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -53,6 +53,9 @@ __filter_units_by_property () { - - __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ - | { while read -r a b; do echo " $a"; done; }; } -+__get_template_names () { __systemctl $1 list-unit-files \ -+ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; } -+ - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } - __get_startable_units () { -@@ -169,22 +172,26 @@ _systemctl () { - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then -- comps=$( __get_disabled_units $mode ) -+ comps=$( __get_disabled_units $mode; -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then - comps=$( __get_disabled_units $mode; -- __get_enabled_units $mode ) -+ __get_enabled_units $mode; -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -- $( __get_startable_units $mode)) -+ $( __get_startable_units $mode); -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -- $( __get_restartable_units $mode)) -+ $( __get_restartable_units $mode); \ -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then ---- shell-completion/zsh/_systemctl -+++ shell-completion/zsh/_systemctl -@@ -139,6 +139,8 @@ _filter_units_by_property() { - } - - _systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } -+_systemctl_get_template_names() { __systemctl list-unit-files | { while read -r a b; do [[ $a =~ @\. ]] && echo -E - " ${a%%@.*}@"; done; } } -+ - - _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} - _systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} -@@ -158,20 +160,24 @@ for fun in is-active is-failed is-enabled status show cat mask preset help list- - done - - # Completion functions for ENABLED_UNITS --for fun in disable reenable ; do -- (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() -- { -+(( $+functions[_systemctl_disable] )) || _systemctl_disable() -+{ -+ _systemctl_enabled_units -+ compadd "$@" -a - _sys_enabled_units -+} -+ -+(( $+functions[_systemctl_reenable] )) || _systemctl_reenable() -+{ - _systemctl_enabled_units - _systemctl_disabled_units -- compadd "$@" -a - _sys_enabled_units _sys_disabled_units -- } --done -+ compadd "$@" -a - _sys_enabled_units _sys_disabled_units $(_systemctl_get_template_names) -+} - - # Completion functions for DISABLED_UNITS - (( $+functions[_systemctl_enable] )) || _systemctl_enable() - { - _systemctl_disabled_units -- compadd "$@" -a - _sys_disabled_units -+ compadd "$@" -a - _sys_disabled_units $(_systemctl_get_template_names) - } - - # Completion functions for FAILED_UNITS --- -1.7.9.2 - diff --git a/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch b/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch deleted file mode 100644 index 12ad7d2d..00000000 --- a/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch +++ /dev/null @@ -1,70 +0,0 @@ -Based on 4b5d8d0f22ae61ceb45a25391354ba53b43ee992 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 6 Nov 2014 22:24:13 +0100 -Subject: [PATCH] shutdown: fix arguments to /run/initramfs/shutdown - -Our initrd interface specifies that the verb is in argv[1]. -This is where systemd passes it to systemd-shutdown, but getopt -permutes argv[]. This confuses dracut's shutdown script: - Shutdown called with argument '--log-level'. Rebooting! - -getopt can be convinced to not permute argv[] by having '-' as the first -character of optstring. Let's use it. This requires changing the way -non-option arguments (in our case, the verb) are processed. - -This fixes a bug where the system would reboot instead of powering off. ---- - src/core/shutdown.c | 24 +++++++++++------------- - 1 file changed, 11 insertions(+), 13 deletions(-) - ---- src/core/shutdown.c -+++ src/core/shutdown.c 2014-11-10 14:14:20.869519112 +0000 -@@ -75,9 +75,9 @@ static int parse_argv(int argc, char *ar - assert(argc >= 1); - assert(argv); - -- opterr = 0; -- -- while ((c = getopt_long(argc, argv, ":", options, NULL)) >= 0) -+ /* "-" prevents getopt from permuting argv[] and moving the verb away -+ * from argv[1]. Our interface to initrd promises it'll be there. */ -+ while ((c = getopt_long(argc, argv, "-", options, NULL)) >= 0) - switch (c) { - - case ARG_LOG_LEVEL: -@@ -115,27 +115,25 @@ static int parse_argv(int argc, char *ar - - break; - -- case '?': -- log_error("Unknown option %s.", argv[optind-1]); -- return -EINVAL; -+ case '\001': -+ if (!arg_verb) -+ arg_verb = optarg; -+ else -+ log_error("Excess arguments, ignoring"); -+ break; - -- case ':': -- log_error("Missing argument to %s.", argv[optind-1]); -+ case '?': - return -EINVAL; - - default: - assert_not_reached("Unhandled option code."); - } - -- if (optind >= argc) { -+ if (!arg_verb) { - log_error("Verb argument missing."); - return -EINVAL; - } - -- arg_verb = argv[optind]; -- -- if (optind + 1 < argc) -- log_error("Excess arguments, ignoring"); - return 0; - } - diff --git a/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch b/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch deleted file mode 100644 index 73a98020..00000000 --- a/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +++ /dev/null @@ -1,36 +0,0 @@ -Based on a2726e5cedfa5edeabd7e0784be11bc578555ac5 Mon Sep 17 00:00:00 2001 -From: Marius Tessmann -Date: Fri, 29 Aug 2014 17:51:45 +0200 -Subject: [PATCH] shutdown: pass own argv to /run/initramfs/shutdown - -Since commit b1e90ec515408aec2702522f6f68c4920b56375b systemd passes -its log settings to systemd-shutdown via command line parameters. -However, systemd-shutdown doesn't pass these parameters to -/run/initramfs/shutdown, causing it to fall back to the default log -settings. - -This fixes the following bugs about the shutdown not being quiet -despite "quiet" being in the kernel parameters: - -https://bugs.freedesktop.org/show_bug.cgi?id=79582 -https://bugs.freedesktop.org/show_bug.cgi?id=57216 ---- - src/core/shutdown.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/shutdown.c -+++ src/core/shutdown.c 2014-10-24 12:32:44.704337960 +0000 -@@ -377,11 +377,11 @@ int main(int argc, char *argv[]) { - - if (prepare_new_root() >= 0 && - pivot_to_new_root() >= 0) { -- arguments[0] = (char*) "/shutdown"; -+ argv[0] = (char*) "/shutdown"; - - log_info("Returning to initrd..."); - -- execv("/shutdown", arguments); -+ execv("/shutdown", argv); - log_error("Failed to execute shutdown binary: %m"); - } - } diff --git a/0002-snapshot-return-error-when-snapshot-exists.patch b/0002-snapshot-return-error-when-snapshot-exists.patch deleted file mode 100644 index 4a7fcfb3..00000000 --- a/0002-snapshot-return-error-when-snapshot-exists.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7cabba07745b388497e8c0fc19b61984167fd474 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 28 Oct 2014 12:36:17 -0400 -Subject: [PATCH] snapshot: return error when snapshot exists - ---- - src/core/snapshot.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/snapshot.c src/core/snapshot.c -index 5eed615..c2678cb 100644 ---- src/core/snapshot.c -+++ src/core/snapshot.c -@@ -208,7 +208,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, sd_bus_error *e, - return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Unit name %s lacks snapshot suffix.", name); - - if (manager_get_unit(m, name)) -- sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); -+ return sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); - - } else { - --- -1.7.9.2 - diff --git a/0002-switch-root-umount-the-old-root-correctly.patch b/0002-switch-root-umount-the-old-root-correctly.patch deleted file mode 100644 index df79c8f0..00000000 --- a/0002-switch-root-umount-the-old-root-correctly.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 23f25b1496c31ef4c20b8f3ee8328f7b1d5f3a54 Mon Sep 17 00:00:00 2001 -From: Dan Dedrick -Date: Tue, 29 Jul 2014 15:31:23 -0400 -Subject: [PATCH] switch-root: umount the old root correctly - -The unmount occurs after the pivot_root, so the path used to unmount -should take into account the new root directory. This will allow the -umount to actually succeed. ---- - src/core/switch-root.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/switch-root.c -+++ src/core/switch-root.c 2014-08-22 11:22:50.230735231 +0000 -@@ -122,9 +122,9 @@ int switch_root(const char *new_root) { - - /* Immediately get rid of the old root. Since we are - * running off it we need to do this lazily. */ -- if (umount2(temporary_old_root, MNT_DETACH) < 0) { -+ if (umount2("/mnt", MNT_DETACH) < 0) { - r = -errno; -- log_error("Failed to umount old root dir %s: %m", temporary_old_root); -+ log_error("Failed to umount old root dir /mnt: %m"); - goto fail; - } - diff --git a/0002-sysctl-replaces-some-slashes-with-dots.patch b/0002-sysctl-replaces-some-slashes-with-dots.patch deleted file mode 100644 index d46fd449..00000000 --- a/0002-sysctl-replaces-some-slashes-with-dots.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 2e573fcf8754fdfe0db0a783b1631ec1679b063a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Apr 2014 21:33:46 -0400 -Subject: [PATCH] sysctl: replaces some slashes with dots - -It turns out that plain sysctl understands a.b/c syntax to write to -/proc/sys/a/b.c. Support this for compatibility. - -https://bugs.freedesktop.org/show_bug.cgi?id=77466 ---- - man/sysctl.d.xml | 29 +++++++++++++++++++++-------- - src/sysctl/sysctl.c | 18 ++++++++++++++++-- - 2 files changed, 37 insertions(+), 10 deletions(-) - -diff --git man/sysctl.d.xml man/sysctl.d.xml -index 00a857b..db53b49 100644 ---- man/sysctl.d.xml -+++ man/sysctl.d.xml -@@ -68,13 +68,26 @@ - The configuration files contain a list of - variable assignments, separated by newlines. Empty - lines and lines whose first non-whitespace character -- is # or ; are ignored. -- -- Note that both / and . are accepted as label -- separators within sysctl variable -- names. kernel.domainname=foo and -- kernel/domainname=foo hence are -- entirely equivalent. -+ is # or ; are -+ ignored. -+ -+ Note that either / or -+ . may be used as separators within -+ sysctl variable names. If the first separator is a -+ slash, remaining slashes and dots are left intact. If -+ the first separator is a dot, dots and slashes are -+ interchanged. kernel.domainname=foo -+ and kernel/domainname=foo are -+ equivalent and will cause foo to -+ be written to -+ /proc/sys/kernel/domainname. -+ Either -+ net.ipv4.conf.enp3s0/200.forwarding -+ or -+ net/ipv4/conf/enp3s0.200/forwarding -+ may be used to refer to -+ /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. -+ - - Each configuration file shall be named in the - style of program.conf. -@@ -109,7 +122,7 @@ - early on boot. The network interface-specific options - will also be applied individually for each network - interface as it shows up in the system. (More -- specifically, that is -+ specifically, - net.ipv4.conf.*, - net.ipv6.conf.*, - net.ipv4.neigh.* and net.ipv6.neigh.*) -diff --git src/sysctl/sysctl.c src/sysctl/sysctl.c -index 283eefe..06defa5 100644 ---- src/sysctl/sysctl.c -+++ src/sysctl/sysctl.c -@@ -48,12 +48,26 @@ static const char conf_file_dirs[] = - #endif - ; - --static char *normalize_sysctl(char *s) { -+static char* normalize_sysctl(char *s) { - char *n; - -- for (n = s; *n; n++) -+ n = strpbrk(s, "/."); -+ /* If the first separator is a slash, the path is -+ * assumed to be normalized and slashes remain slashes -+ * and dots remains dots. */ -+ if (!n || *n == '/') -+ return s; -+ -+ /* Otherwise, dots become slashes and slashes become -+ * dots. Fun. */ -+ while (n) { - if (*n == '.') - *n = '/'; -+ else -+ *n = '.'; -+ -+ n = strpbrk(n + 1, "/."); -+ } - - return s; - } --- -1.7.9.2 - diff --git a/0002-systemctl-obey-state-in-list-unit-files.patch b/0002-systemctl-obey-state-in-list-unit-files.patch deleted file mode 100644 index aaa1cbf3..00000000 --- a/0002-systemctl-obey-state-in-list-unit-files.patch +++ /dev/null @@ -1,28 +0,0 @@ -From fec1530e6b5b8d6dc352c7338010357126e84621 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 29 Oct 2014 22:51:00 -0400 -Subject: [PATCH] systemctl: obey --state in list-unit-files - ---- - src/systemctl/systemctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index b71040b..8481a9b 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -1268,6 +1268,11 @@ next: - return false; - } - -+ if (!strv_isempty(arg_states)) { -+ if (!strv_find(arg_states, unit_file_state_to_string(u->state))) -+ return false; -+ } -+ - return true; - } - --- -1.7.9.2 - diff --git a/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch b/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch deleted file mode 100644 index 6a9cd2ac..00000000 --- a/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c469089cf647ac740c7dcf09c463d2907b6d00eb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 22 Nov 2014 20:21:56 -0500 -Subject: [PATCH] systemctl: show BindsTo/BoundBy in list-dependencies - -Suggested-by: Peter Mattern - -http://lists.freedesktop.org/archives/systemd-devel/2014-November/025437.html ---- - src/systemctl/systemctl.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 78b7c96..fd69c69 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -1480,11 +1480,13 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha - "RequiresOverridable\0" - "Requisite\0" - "RequisiteOverridable\0" -- "Wants\0", -+ "Wants\0" -+ "BindsTo\0", - [DEPENDENCY_REVERSE] = "RequiredBy\0" - "RequiredByOverridable\0" - "WantedBy\0" -- "PartOf\0", -+ "PartOf\0" -+ "BoundBy\0", - [DEPENDENCY_AFTER] = "After\0", - [DEPENDENCY_BEFORE] = "Before\0", - }; --- -1.7.9.2 - diff --git a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch deleted file mode 100644 index fd9096b9..00000000 --- a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b3ae710c251d0ce5cf2cef63208e325497b5e323 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Apr 2014 20:43:15 -0400 -Subject: [PATCH] systemctl: update NAME to PATTERN in help() - -Previously the man page was modified, but not help(). ---- - TODO | 2 ++ - src/systemctl/systemctl.c | 14 +++++++------- - 2 files changed, 9 insertions(+), 7 deletions(-) - -diff --git TODO TODO -index 4ff69ff..0343b94 100644 ---- TODO -+++ TODO -@@ -1,4 +1,6 @@ - Bugfixes: -+* Should systemctl status \* work on all unit types, not just .service? -+ - * enabling an instance unit creates a pointless link, and - the unit will be started with getty@getty.service: - $ systemctl enable getty@.service -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 6b88f85..653a324 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -5403,15 +5403,15 @@ static int systemctl_help(void) { - " otherwise restart if active\n" - " isolate NAME Start one unit and stop all others\n" - " kill NAME... Send signal to processes of a unit\n" -- " is-active NAME... Check whether units are active\n" -- " is-failed NAME... Check whether units are failed\n" -- " status [NAME...|PID...] Show runtime status of one or more units\n" -- " show [NAME...|JOB...] Show properties of one or more\n" -+ " is-active PATTERN... Check whether units are active\n" -+ " is-failed PATTERN... Check whether units are failed\n" -+ " status [PATTERN...|PID...] Show runtime status of one or more units\n" -+ " show [PATTERN...|JOB...] Show properties of one or more\n" - " units/jobs or the manager\n" -- " cat NAME... Show files and drop-ins of one or more units\n" -+ " cat PATTERN... Show files and drop-ins of one or more units\n" - " set-property NAME ASSIGNMENT... Sets one or more properties of a unit\n" -- " help NAME...|PID... Show manual for one or more units\n" -- " reset-failed [NAME...] Reset failed state for all, one, or more\n" -+ " help PATTERN...|PID... Show manual for one or more units\n" -+ " reset-failed [PATTERN...] Reset failed state for all, one, or more\n" - " units\n" - " list-dependencies [NAME] Recursively show units which are required\n" - " or wanted by this unit or by which this\n" --- -1.7.9.2 - diff --git a/0002-systemd-fix-error-message.patch b/0002-systemd-fix-error-message.patch deleted file mode 100644 index 778444a8..00000000 --- a/0002-systemd-fix-error-message.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 6ad3b2b62cbe34cc02ee98deb5f48047f5e42d26 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 30 Aug 2014 17:22:42 -0400 -Subject: [PATCH] systemd: fix error message - ---- - src/core/dbus-manager.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c 2014-09-01 12:51:33.266735961 +0000 -@@ -1114,7 +1114,7 @@ static int method_switch_root(sd_bus *bu - return r; - - if (m->running_as != SYSTEMD_SYSTEM) -- return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "KExec is only supported for system managers."); -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "Root switching is only supported by system manager."); - - r = sd_bus_message_read(message, "ss", &root, &init); - if (r < 0) -@@ -1125,7 +1125,7 @@ static int method_switch_root(sd_bus *bu - - /* Safety check */ - if (isempty(init)) { -- if (! path_is_os_tree(root)) -+ if (!path_is_os_tree(root)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified switch root path %s does not seem to be an OS tree. /etc/os-release is missing.", root); - } else { - _cleanup_free_ char *p = NULL; diff --git a/0002-systemd-try-harder-to-bind-to-notify-socket.patch b/0002-systemd-try-harder-to-bind-to-notify-socket.patch deleted file mode 100644 index d0277386..00000000 --- a/0002-systemd-try-harder-to-bind-to-notify-socket.patch +++ /dev/null @@ -1,44 +0,0 @@ -Based on e7bc519620cb7bcdbe2166fc2a446453769d827e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 16 Oct 2014 19:15:38 -0500 -Subject: [PATCH] systemd: try harder to bind to notify socket - -Without the socket open we are going to crash and burn. If for -whatever reason we fail during deserialization we will fail when -trying to open the socket. In this case it is better to unlink the old -socket and maybe lose some messages, than to continue without the -notification socket. - -Of course this situation should not happen, but we should handle -it as gracefully as possible anyway. - -https://bugzilla.redhat.com/show_bug.cgi?id=1099299 ---- - src/core/manager.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-10-20 13:47:21.035837897 +0000 -@@ -572,7 +572,21 @@ static int manager_setup_notify(Manager - r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); - if (r < 0) { - log_error("bind(@%s) failed: %m", sa.un.sun_path+1); -- return -errno; -+ if (errno == EADDRINUSE) { -+ log_notice("Removing %s socket and trying again.", m->notify_socket); -+ r = unlink(m->notify_socket); -+ if (r < 0) { -+ log_error("Failed to remove %s: %m", m->notify_socket); -+ return -EADDRINUSE; -+ } -+ -+ r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)); -+ if (r < 0) { -+ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); -+ return -errno; -+ } -+ } else -+ return -errno; - } - - r = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); diff --git a/0002-time-also-support-infinity-syntax-in-parse_nsec.patch b/0002-time-also-support-infinity-syntax-in-parse_nsec.patch deleted file mode 100644 index c1f4884c..00000000 --- a/0002-time-also-support-infinity-syntax-in-parse_nsec.patch +++ /dev/null @@ -1,40 +0,0 @@ -Based on e73c78c27511b03c7abc55aed87896092c0de699 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 19:07:26 +0200 -Subject: [PATCH] time: also support 'infinity' syntax in parse_nsec() - -Let's make parse_usec() and parse_nsec() work similar ---- - src/shared/time-util.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - ---- src/shared/time-util.c -+++ src/shared/time-util.c -@@ -773,7 +773,7 @@ int parse_nsec(const char *t, nsec_t *nsec) { - { "", 1ULL }, /* default is nsec */ - }; - -- const char *p; -+ const char *p, *s; - nsec_t r = 0; - bool something = false; - -@@ -781,6 +781,18 @@ int parse_nsec(const char *t, nsec_t *nsec) { - assert(nsec); - - p = t; -+ -+ p += strspn(p, WHITESPACE); -+ s = startswith(p, "infinity"); -+ if (s) { -+ s += strspn(s, WHITESPACE); -+ if (!*s != 0) -+ return -EINVAL; -+ -+ *nsec = ((nsec_t) -1); -+ return 0; -+ } -+ - for (;;) { - long long l, z = 0; - char *e; diff --git a/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch b/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch deleted file mode 100644 index 7fab49e6..00000000 --- a/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 24119cf10c7ed58a8fc0851745149dcc6dd5757f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Mon, 29 Sep 2014 22:32:10 -0400 -Subject: [PATCH] udev/hwdb: New Entry for Dell XPS12 9Q33 keyboard - -https://bugs.freedesktop.org/show_bug.cgi?id=84437 ---- - hwdb/60-keyboard.hwdb | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 0ffcb83..8a1baa7 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -243,6 +243,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - KEYBOARD_KEY_8c=!unknown - -+# Dell XPS12 9Q33 -+keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* -+ KEYBOARD_KEY_88=wlan -+ KEYBOARD_KEY_65=switchvideomode # Screen Rotate -+ - # Dell Latitude microphone mute - keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* - KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute --- -1.7.9.2 - diff --git a/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch b/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch deleted file mode 100644 index 58189d0f..00000000 --- a/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch +++ /dev/null @@ -1,18 +0,0 @@ -Basedo n a55954297dade7b432fd3a4f328f23261621ff79 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 19 Jun 2014 19:53:16 +0200 -Subject: [PATCH] units: add missing caps so that GetAddresses() can work - ---- - units/systemd-machined.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- units/systemd-machined.service.in -+++ units/systemd-machined.service.in 2014-06-24 11:26:19.554235869 +0000 -@@ -15,5 +15,5 @@ After=machine.slice - [Service] - ExecStart=@rootlibexecdir@/systemd-machined - BusName=org.freedesktop.machine1 --CapabilityBoundingSet=CAP_KILL -+CapabilityBoundingSet=CAP_KILL CAP_SYS_PTRACE CAP_SYS_ADMIN CAP_SETGID - WatchdogSec=1min diff --git a/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch b/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch deleted file mode 100644 index 6bc06d23..00000000 --- a/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 66f311206e908a5b6f21e66fad73e1e5ea3e31d6 Mon Sep 17 00:00:00 2001 -From: Ivan Shapovalov -Date: Wed, 27 Aug 2014 00:17:43 +0400 -Subject: [PATCH] units: order systemd-fsck@.service after - local-fs-pre.target. - -With this change, it becomes possible to order a unit to activate before any -modifications to the file systems. This is especially useful for supporting -resume from hibernation. ---- - units/systemd-fsck@.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git units/systemd-fsck@.service.in units/systemd-fsck@.service.in -index c12efa8..d2cda6a 100644 ---- units/systemd-fsck@.service.in -+++ units/systemd-fsck@.service.in -@@ -10,7 +10,7 @@ Description=File System Check on %f - Documentation=man:systemd-fsck@.service(8) - DefaultDependencies=no - BindsTo=%i.device --After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service local-fs-pre.target - Before=shutdown.target - - [Service] --- -1.7.9.2 - diff --git a/0002-units-serial-getty-.service-use-the-default-RestartS.patch b/0002-units-serial-getty-.service-use-the-default-RestartS.patch deleted file mode 100644 index 3945e4cd..00000000 --- a/0002-units-serial-getty-.service-use-the-default-RestartS.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 4bf04322b8b7ecca4f3d65cfc642d0ac16356129 Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Tue, 15 Jul 2014 18:28:10 +0200 -Subject: [PATCH] units/serial-getty@.service: use the default RestartSec - -For pluggable ttys such as USB serial devices, the getty is restarted -and exits in a loop until the remove event reaches systemd. Under -certain circumstances the restart loop can overload the system in a -way that prevents the remove event from reaching systemd for a long -time (e.g. at least several minutes on a small embedded system). - -Use the default RestartSec to prevent the restart loop from -overloading the system. Serial gettys are interactive units, so -waiting an extra 100ms really doesn't make a difference anyways -compared to the time it takes the user to log in. ---- - units/serial-getty@.service.m4 | 1 - - 1 file changed, 1 deletion(-) - ---- units/serial-getty@.service.m4 -+++ units/serial-getty@.service.m4 2014-07-16 00:00:00.000000000 +0000 -@@ -27,7 +27,6 @@ ExecStart=-/sbin/agetty --keep-baud %I 1 - ExecStopPost=-/sbin/vhangup /dev/%I - Type=idle - Restart=always --RestartSec=0 - UtmpIdentifier=%I - TTYPath=/dev/%I - TTYReset=yes diff --git a/0002-util-avoid-non-portable-__WORDSIZE.patch b/0002-util-avoid-non-portable-__WORDSIZE.patch deleted file mode 100644 index 7c82d91c..00000000 --- a/0002-util-avoid-non-portable-__WORDSIZE.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 8507eb20b64010b26f23822cbf442bb0bf96511c Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Fri, 19 Sep 2014 20:26:53 +0200 -Subject: [PATCH] util: avoid non-portable __WORDSIZE - -Lets not unnecessarily rely on __WORDSIZE, which is not clearly specified -by any spec. Use explicit size comparisons if we're not interested in the -WORDSIZE, anyway. - -(David: adjust commit message to explain why we do this) ---- - src/shared/util.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/shared/util.h -+++ src/shared/util.h 2014-09-24 06:58:11.378235669 +0000 -@@ -166,7 +166,7 @@ int safe_atolli(const char *s, long long - - int safe_atod(const char *s, double *ret_d); - --#if __WORDSIZE == 32 -+#if LONG_MAX == INT_MAX - static inline int safe_atolu(const char *s, unsigned long *ret_u) { - assert_cc(sizeof(unsigned long) == sizeof(unsigned)); - return safe_atou(s, (unsigned*) ret_u); diff --git a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch deleted file mode 100644 index 7dd59ed5..00000000 --- a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 6294aa76d818e831de4592b41a37e225fd0871f9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 12:04:55 +0200 -Subject: [PATCH] util: don't consider tabs special in string_has_cc() anymore - -Instead, take a list of exceptions to our usual CC check ---- - src/hostname/hostnamed.c | 3 +-- - src/shared/env-util.c | 4 +++- - src/shared/fileio.c | 2 +- - src/shared/util.c | 19 ++++++++++--------- - src/shared/util.h | 5 +++-- - 5 files changed, 18 insertions(+), 15 deletions(-) - -Index: src/hostname/hostnamed.c -=================================================================== ---- src/hostname/hostnamed.c.orig -+++ src/hostname/hostnamed.c -@@ -507,8 +507,7 @@ static int set_machine_info(Context *c, - - if (prop == PROP_ICON_NAME && !filename_is_safe(name)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); -- if (prop == PROP_PRETTY_HOSTNAME && -- (string_has_cc(name) || chars_intersect(name, "\t"))) -+ if (prop == PROP_PRETTY_HOSTNAME && string_has_cc(name, NULL)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); - if (prop == PROP_CHASSIS && !valid_chassis(name)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name); -Index: src/shared/env-util.c -=================================================================== ---- src/shared/env-util.c.orig -+++ src/shared/env-util.c -@@ -78,7 +78,9 @@ bool env_value_is_valid(const char *e) { - if (!utf8_is_valid(e)) - return false; - -- if (string_has_cc(e)) -+ /* bash allows tabs in environment variables, and so should -+ * we */ -+ if (string_has_cc(e, "\t")) - return false; - - /* POSIX says the overall size of the environment block cannot -Index: src/shared/fileio.c -=================================================================== ---- src/shared/fileio.c.orig -+++ src/shared/fileio.c -@@ -658,7 +658,7 @@ static void write_env_var(FILE *f, const - p++; - fwrite(v, 1, p-v, f); - -- if (string_has_cc(p) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { -+ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { - fputc('\"', f); - - for (; *p; p++) { -Index: src/shared/util.c -=================================================================== ---- src/shared/util.c.orig -+++ src/shared/util.c -@@ -5466,16 +5466,14 @@ bool filename_is_safe(const char *p) { - bool string_is_safe(const char *p) { - const char *t; - -- assert(p); -+ if (!p) -+ return false; - - for (t = p; *t; t++) { - if (*t > 0 && *t < ' ') - return false; - -- if (*t == 127) -- return false; -- -- if (strchr("\\\"\'", *t)) -+ if (strchr("\\\"\'\0x7f", *t)) - return false; - } - -@@ -5483,16 +5481,19 @@ bool string_is_safe(const char *p) { - } - - /** -- * Check if a string contains control characters. -- * Spaces and tabs are not considered control characters. -+ * Check if a string contains control characters. If 'ok' is non-NULL -+ * it may be a string containing additional CCs to be considered OK. - */ --bool string_has_cc(const char *p) { -+bool string_has_cc(const char *p, const char *ok) { - const char *t; - - assert(p); - - for (t = p; *t; t++) { -- if (*t > 0 && *t < ' ' && *t != '\t') -+ if (ok && strchr(ok, *t)) -+ return false; -+ -+ if (*t > 0 && *t < ' ') - return true; - - if (*t == 127) -Index: src/shared/util.h -=================================================================== ---- src/shared/util.h.orig -+++ src/shared/util.h -@@ -652,7 +652,7 @@ _alloc_(2, 3) static inline void *memdup - bool filename_is_safe(const char *p) _pure_; - bool path_is_safe(const char *p) _pure_; - bool string_is_safe(const char *p) _pure_; --bool string_has_cc(const char *p) _pure_; -+bool string_has_cc(const char *p, const char *ok) _pure_; - - /** - * Check if a string contains any glob patterns. diff --git a/0002-util-fix-has-cc-check-and-add-test.patch b/0002-util-fix-has-cc-check-and-add-test.patch deleted file mode 100644 index f39ad16c..00000000 --- a/0002-util-fix-has-cc-check-and-add-test.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 1cb1767a29458b3d16d6b161b4ee34dd496ff60d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Jul 2014 09:21:15 -0400 -Subject: [PATCH] util: fix has cc check and add test - ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 3342798..75dc58b 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -5419,7 +5419,7 @@ bool string_has_cc(const char *p, const char *ok) { - - for (t = p; *t; t++) { - if (ok && strchr(ok, *t)) -- return false; -+ continue; - - if (*t > 0 && *t < ' ') - return true; --- -1.7.9.2 - diff --git a/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch b/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch deleted file mode 100644 index 9cd13c2d..00000000 --- a/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch +++ /dev/null @@ -1,96 +0,0 @@ -Based on 8a7c93d858c342744adf481565d8bb03b9713dcf Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Aug 2014 21:42:20 +0200 -Subject: [PATCH] util: fix minimal race where we might miss SIGTERMs when - forking off an agent - -Before forking, block all signals, and unblock them afterwards. This way -the child will have them blocked, and we won't lose them. ---- - src/shared/util.c | 39 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 34 insertions(+), 5 deletions(-) - ---- src/shared/util.c -+++ src/shared/util.c 2014-08-28 10:32:06.442693437 +0000 -@@ -894,6 +894,18 @@ int reset_all_signal_handlers(void) { - return 0; - } - -+static int reset_signal_mask(void) { -+ sigset_t ss; -+ -+ if (sigemptyset(&ss) < 0) -+ return -errno; -+ -+ if (sigprocmask(SIG_SETMASK, &ss, NULL) < 0) -+ return -errno; -+ -+ return 0; -+} -+ - char *strstrip(char *s) { - char *e; - -@@ -5119,9 +5131,9 @@ int fd_inc_rcvbuf(int fd, size_t n) { - } - - int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *path, ...) { -- pid_t parent_pid, agent_pid; -- int fd; - bool stdout_is_tty, stderr_is_tty; -+ pid_t parent_pid, agent_pid; -+ sigset_t ss, saved_ss; - unsigned n, i; - va_list ap; - char **l; -@@ -5129,16 +5141,25 @@ int fork_agent(pid_t *pid, const int exc - assert(pid); - assert(path); - -- parent_pid = getpid(); -- - /* Spawns a temporary TTY agent, making sure it goes away when - * we go away */ - -+ parent_pid = getpid(); -+ -+ /* First we temporarily block all signals, so that the new -+ * child has them blocked initially. This way, we can be sure -+ * that SIGTERMs are not lost we might send to the agent. */ -+ assert_se(sigfillset(&ss) >= 0); -+ assert_se(sigprocmask(SIG_SETMASK, &ss, &saved_ss) >= 0); -+ - agent_pid = fork(); -- if (agent_pid < 0) -+ if (agent_pid < 0) { -+ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); - return -errno; -+ } - - if (agent_pid != 0) { -+ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); - *pid = agent_pid; - return 0; - } -@@ -5149,6 +5170,12 @@ int fork_agent(pid_t *pid, const int exc - if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) - _exit(EXIT_FAILURE); - -+ /* Make sure we actually can kill the agent, if we need to, in -+ * case somebody invoked us from a shell script that trapped -+ * SIGTERM or so... */ -+ reset_all_signal_handlers(); -+ reset_signal_mask(); -+ - /* Check whether our parent died before we were able - * to set the death signal */ - if (getppid() != parent_pid) -@@ -5161,6 +5188,8 @@ int fork_agent(pid_t *pid, const int exc - stderr_is_tty = isatty(STDERR_FILENO); - - if (!stdout_is_tty || !stderr_is_tty) { -+ int fd; -+ - /* Detach from stdout/stderr. and reopen - * /dev/tty for them. This is important to - * ensure that when systemctl is started via diff --git a/0002-util-remove-a-unnecessary-check.patch b/0002-util-remove-a-unnecessary-check.patch deleted file mode 100644 index ac7cdfb8..00000000 --- a/0002-util-remove-a-unnecessary-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 42646a8bf24be2c9280554c9d8540c67c835b3c4 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 16 Sep 2014 22:58:35 +0200 -Subject: [PATCH] util: remove a unnecessary check - -We only break out of the previous loop if fd >= 0 so there is no -use in checking it again. - -Found by coverity. Fixes: CID#1237577 ---- - src/shared/util.c | 3 --- - 1 file changed, 3 deletions(-) - ---- src/shared/util.c -+++ src/shared/util.c 2014-09-18 13:05:08.218236754 +0000 -@@ -1772,9 +1772,6 @@ int open_terminal(const char *name, int - c++; - } - -- if (fd < 0) -- return -errno; -- - r = isatty(fd); - if (r < 0) { - close_nointr_nofail(fd); diff --git a/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch b/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch deleted file mode 100644 index b202ce37..00000000 --- a/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch +++ /dev/null @@ -1,74 +0,0 @@ -Based on e0a33e7ba619eb44f732aaf23cb249fa43d0ce8d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Jul 2014 13:42:25 +0200 -Subject: [PATCH] util: when unescaping strings, don't allow smuggling in of - additional NUL bytes - -Better safe than sorry. ---- - src/shared/util.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git src/shared/util.c src/shared/util.c -index ceafa01..4ad3f20 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1256,7 +1256,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre - a = unhexchar(f[1]); - b = unhexchar(f[2]); - -- if (a < 0 || b < 0) { -+ if (a < 0 || b < 0 || (a == 0 && b == 0)) { - /* Invalid escape code, let's take it literal then */ - *(t++) = '\\'; - *(t++) = 'x'; -@@ -1283,7 +1283,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre - b = unoctchar(f[1]); - c = unoctchar(f[2]); - -- if (a < 0 || b < 0 || c < 0) { -+ if (a < 0 || b < 0 || c < 0 || (a == 0 && b == 0 && c == 0)) { - /* Invalid escape code, let's take it literal then */ - *(t++) = '\\'; - *(t++) = f[0]; -@@ -1566,8 +1566,7 @@ int chvt(int vt) { - - int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - struct termios old_termios, new_termios; -- char c; -- char line[LINE_MAX]; -+ char c, line[LINE_MAX]; - - assert(f); - assert(ret); -@@ -1604,9 +1603,10 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - } - } - -- if (t != (usec_t) -1) -+ if (t != (usec_t) -1) { - if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0) - return -ETIMEDOUT; -+ } - - if (!fgets(line, sizeof(line), f)) - return -EIO; -@@ -1624,6 +1624,7 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - } - - int ask(char *ret, const char *replies, const char *text, ...) { -+ int r; - - assert(ret); - assert(replies); -@@ -1632,7 +1633,6 @@ int ask(char *ret, const char *replies, const char *text, ...) { - for (;;) { - va_list ap; - char c; -- int r; - bool need_nl = true; - - if (on_tty()) --- -1.7.9.2 - diff --git a/0002-vconsole-setup-run-setfont-before-loadkeys.patch b/0002-vconsole-setup-run-setfont-before-loadkeys.patch deleted file mode 100644 index 7ef05c2d..00000000 --- a/0002-vconsole-setup-run-setfont-before-loadkeys.patch +++ /dev/null @@ -1,167 +0,0 @@ -Based on abee28c56d523e55751b0c007d0bf812cc285c00 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Jul 2014 22:20:11 -0400 -Subject: [PATCH] vconsole-setup: run setfont before loadkeys - -https://bugs.freedesktop.org/show_bug.cgi?id=80685 - -For SUSE please note that this had been ported on top of the patches - * handle-disable_caplock-and-compose_table-and-kbd_rate.patch - * handle-numlock-value-in-etc-sysconfig-keyboard.patch -that is that now set_kbd_rate() will be called first before font_load(). -Then font_load() is followed by load_compose_table() and afterwards as -in the original commit the keymap_load() follows. - ---- - src/vconsole/vconsole-setup.c | 93 +++++++++++++++++++++--------------------- - 1 file changed, 47 insertions(+), 46 deletions(-) - -Index: src/vconsole/vconsole-setup.c -=================================================================== ---- src/vconsole/vconsole-setup.c.orig -+++ src/vconsole/vconsole-setup.c -@@ -340,23 +340,20 @@ static int set_kbd_rate(const char *vc, - - int main(int argc, char **argv) { - const char *vc; -- char *vc_keymap = NULL; -- char *vc_keymap_toggle = NULL; -- char *vc_font = NULL; -- char *vc_font_map = NULL; -- char *vc_font_unimap = NULL; -+ _cleanup_free_ char -+ *vc_keymap = NULL, *vc_keymap_toggle = NULL, -+ *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; -+ _cleanup_close_ int fd = -1; - #ifdef HAVE_SYSV_COMPAT -- char *vc_kbd_delay = NULL; -- char *vc_kbd_rate = NULL; -- char *vc_kbd_disable_caps_lock = NULL; -- char *vc_kbd_numlock = NULL; -- char *vc_compose_table = NULL; -+ _cleanup_free_ char -+ *vc_kbd_numlock = NULL, *vc_kbd_delay = NULL, -+ *vc_kbd_rate = NULL, * vc_kbd_disable_caps_lock = NULL, -+ *vc_compose_table = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; -+ bool numlock = false; - #endif -- int fd = -1; - bool utf8; - bool disable_capslock = false; -- bool numlock = false; - pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -377,12 +374,12 @@ int main(int argc, char **argv) { - fd = open_terminal(vc, O_RDWR|O_CLOEXEC); - if (fd < 0) { - log_error("Failed to open %s: %m", vc); -- goto finish; -+ return EXIT_FAILURE; - } - - if (!is_vconsole(fd)) { - log_error("Device %s is not a virtual console.", vc); -- goto finish; -+ return EXIT_FAILURE; - } - - utf8 = is_locale_utf8(); -@@ -464,58 +461,62 @@ int main(int argc, char **argv) { - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); - } -+#ifdef HAVE_SYSV_COMPAT -+finish: -+ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); -+ if (r < 0) { -+ log_error("Failed to start /bin/kbdrate: %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } -+ -+ if (kbd_rate_pid > 0) -+ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); -+#endif - - if (utf8) - enable_utf8(fd); - else - disable_utf8(fd); - -- r = EXIT_FAILURE; -- -- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && --#ifdef HAVE_SYSV_COMPAT -- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && -- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && --#endif -- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) -- r = EXIT_SUCCESS; -+ r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); -+ if (r < 0) { -+ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } - --finish: -- if (keymap_pid > 0) -- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -- if (numlock) -- touch("/run/numlock-on"); -- else -- unlink("/run/numlock-on"); -+ if (font_pid > 0) -+ wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - - #ifdef HAVE_SYSV_COMPAT -+ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); -+ if (r < 0) { -+ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } -+ - if (compose_table_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); -- -- if (kbd_rate_pid > 0) -- wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); - #endif - -- if (font_pid > 0) { -- wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -- if (font_copy) -- font_copy_to_all_vcs(fd); -+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); -+ if (r < 0) { -+ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); -+ return EXIT_FAILURE; - } - -- free(vc_keymap); -- free(vc_font); -- free(vc_font_map); -- free(vc_font_unimap); -- free(vc_kbd_numlock); -+ if (keymap_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ - #ifdef HAVE_SYSV_COMPAT -- free(vc_kbd_delay); -- free(vc_kbd_rate); -- free(vc_kbd_disable_caps_lock); -- free(vc_compose_table); -+ if (numlock) -+ touch("/run/numlock-on"); -+ else -+ unlink("/run/numlock-on"); - #endif - -- if (fd >= 0) -- close_nointr_nofail(fd); -+ /* Only copy the font when we started setfont successfully */ -+ if (font_copy && font_pid > 0) -+ font_copy_to_all_vcs(fd); - - return r; - } diff --git a/0003-Add-quotes-to-warning-message.patch b/0003-Add-quotes-to-warning-message.patch deleted file mode 100644 index 3a742bac..00000000 --- a/0003-Add-quotes-to-warning-message.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f0ea29eaeb3449822bfbdfa839b00e323dfc523e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 20 Jul 2014 19:47:42 -0400 -Subject: [PATCH] Add quotes to warning message - -The message for SYSTEMD_LOG_LEVEL= looked a bit strange. ---- - src/shared/log.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git src/shared/log.c src/shared/log.c -index 9039db3..3941e3e 100644 ---- src/shared/log.c -+++ src/shared/log.c -@@ -884,19 +884,19 @@ void log_parse_environment(void) { - - e = secure_getenv("SYSTEMD_LOG_TARGET"); - if (e && log_set_target_from_string(e) < 0) -- log_warning("Failed to parse log target %s. Ignoring.", e); -+ log_warning("Failed to parse log target '%s'. Ignoring.", e); - - e = secure_getenv("SYSTEMD_LOG_LEVEL"); - if (e && log_set_max_level_from_string(e) < 0) -- log_warning("Failed to parse log level %s. Ignoring.", e); -+ log_warning("Failed to parse log level '%s'. Ignoring.", e); - - e = secure_getenv("SYSTEMD_LOG_COLOR"); - if (e && log_show_color_from_string(e) < 0) -- log_warning("Failed to parse bool %s. Ignoring.", e); -+ log_warning("Failed to parse bool '%s'. Ignoring.", e); - - e = secure_getenv("SYSTEMD_LOG_LOCATION"); - if (e && log_show_location_from_string(e) < 0) -- log_warning("Failed to parse bool %s. Ignoring.", e); -+ log_warning("Failed to parse bool '%s'. Ignoring.", e); - } - - LogTarget log_get_target(void) { --- -1.7.9.2 - diff --git a/0003-Always-check-asprintf-return-code.patch b/0003-Always-check-asprintf-return-code.patch deleted file mode 100644 index 00d873f7..00000000 --- a/0003-Always-check-asprintf-return-code.patch +++ /dev/null @@ -1,223 +0,0 @@ -Based on 7de80bfe2e61d5818601ccfddbadad3b7703ed70 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Fri, 25 Jul 2014 15:38:31 +0200 -Subject: [PATCH] Always check asprintf return code - -There is a small number of the places in sources where we don't check -asprintf() return code and assume that after error the function -returns NULL pointer via the first argument. That's wrong, after -error the content of pointer is undefined. ---- - src/core/unit-printf.c | 8 ++++---- - src/cryptsetup/cryptsetup.c | 11 ++++++++--- - src/journal/journalctl.c | 16 +++++++++++----- - src/run/run.c | 20 ++++++++++---------- - src/shared/install.c | 15 +++++++++------ - src/systemctl/systemctl.c | 18 +++++++++--------- - src/tty-ask-password-agent/tty-ask-password-agent.c | 5 +++-- - 7 files changed, 54 insertions(+), 39 deletions(-) - ---- src/core/unit-printf.c -+++ src/core/unit-printf.c 2014-07-28 09:42:20.726235696 +0000 -@@ -182,7 +182,7 @@ static int specifier_user_name(char spec - char *printed = NULL; - Unit *u = userdata; - ExecContext *c; -- int r; -+ int r = 0; - - assert(u); - -@@ -208,7 +208,7 @@ static int specifier_user_name(char spec - if (r < 0) - return -ENODATA; - -- asprintf(&printed, "%lu", (unsigned long) uid); -+ r = asprintf(&printed, "%lu", (unsigned long) uid); - } - } - -@@ -231,10 +231,10 @@ static int specifier_user_name(char spec - if (specifier == 'u') - printed = strdup(username); - else -- asprintf(&printed, "%lu", (unsigned long) uid); -+ r = asprintf(&printed, "%lu", (unsigned long) uid); - } - -- if (!printed) -+ if (r < 0 || !printed) - return -ENOMEM; - - *ret = printed; ---- src/cryptsetup/cryptsetup.c -+++ src/cryptsetup/cryptsetup.c 2014-07-28 00:00:00.000000000 +0000 -@@ -535,13 +535,18 @@ int main(int argc, char *argv[]) { - description = NULL; - } - -+ k = 0; - if (mount_point && description) -- asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); -+ k = asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); - else if (mount_point) -- asprintf(&name_buffer, "%s on %s", argv[2], mount_point); -+ k = asprintf(&name_buffer, "%s on %s", argv[2], mount_point); - else if (description) -- asprintf(&name_buffer, "%s (%s)", description, argv[2]); -+ k = asprintf(&name_buffer, "%s (%s)", description, argv[2]); - -+ if (k < 0) { -+ log_oom(); -+ goto finish; -+ } - name = name_buffer ? name_buffer : argv[2]; - - k = crypt_init(&cd, argv[3]); ---- src/journal/journalctl.c -+++ src/journal/journalctl.c 2014-07-28 00:00:00.000000000 +0000 -@@ -746,11 +746,17 @@ static int add_matches(sd_journal *j, ch - } - } else - t = strappend("_EXE=", path); -- } else if (S_ISCHR(st.st_mode)) -- asprintf(&t, "_KERNEL_DEVICE=c%u:%u", major(st.st_rdev), minor(st.st_rdev)); -- else if (S_ISBLK(st.st_mode)) -- asprintf(&t, "_KERNEL_DEVICE=b%u:%u", major(st.st_rdev), minor(st.st_rdev)); -- else { -+ } else if (S_ISCHR(st.st_mode)) { -+ if (asprintf(&t, "_KERNEL_DEVICE=c%u:%u", -+ major(st.st_rdev), -+ minor(st.st_rdev)) < 0) -+ return -ENOMEM; -+ } else if (S_ISBLK(st.st_mode)) { -+ if (asprintf(&t, "_KERNEL_DEVICE=b%u:%u", -+ major(st.st_rdev), -+ minor(st.st_rdev)) < 0) -+ return -ENOMEM; -+ } else { - log_error("File is neither a device node, nor regular file, nor executable: %s", *i); - return -EINVAL; - } ---- src/run/run.c -+++ src/run/run.c 2014-07-28 09:46:36.846235596 +0000 -@@ -309,12 +309,12 @@ static int start_transient_service( - _cleanup_free_ char *name = NULL; - int r; - -- if (arg_unit) -+ if (arg_unit) { - name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".service"); -- else -- asprintf(&name, "run-%lu.service", (unsigned long) getpid()); -- if (!name) -- return -ENOMEM; -+ if (!name) -+ return log_oom(); -+ } else if (asprintf(&name, "run-%lu.service", (unsigned long) getpid()) < 0) -+ return log_oom(); - - r = message_start_transient_unit_new(bus, name, &m); - if (r < 0) -@@ -436,12 +436,12 @@ static int start_transient_scope( - - assert(bus); - -- if (arg_unit) -+ if (arg_unit) { - name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope"); -- else -- asprintf(&name, "run-%lu.scope", (unsigned long) getpid()); -- if (!name) -- return -ENOMEM; -+ if (!name) -+ return log_oom(); -+ } else if (asprintf(&name, "run-%lu.scope", (unsigned long) getpid()) < 0) -+ return log_oom(); - - r = message_start_transient_unit_new(bus, name, &m); - if (r < 0) ---- src/shared/install.c -+++ src/shared/install.c 2014-07-28 00:00:00.000000000 +0000 -@@ -72,13 +72,16 @@ static int get_config_path(UnitFileScope - - case UNIT_FILE_SYSTEM: - -- if (root_dir && runtime) -- asprintf(&p, "%s/run/systemd/system", root_dir); -- else if (runtime) -+ if (root_dir && runtime) { -+ if (asprintf(&p, "%s/run/systemd/system", root_dir) < 0) -+ return -ENOMEM; -+ } else if (runtime) - p = strdup("/run/systemd/system"); -- else if (root_dir) -- asprintf(&p, "%s/%s", root_dir, SYSTEM_CONFIG_UNIT_PATH); -- else -+ else if (root_dir) { -+ if (asprintf(&p, "%s/%s", root_dir, -+ SYSTEM_CONFIG_UNIT_PATH) < 0) -+ return -ENOMEM; -+ } else - p = strdup(SYSTEM_CONFIG_UNIT_PATH); - - break; ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-07-28 09:51:40.894735541 +0000 -@@ -4639,11 +4639,11 @@ static int enable_sysv_units(const char - - STRV_FOREACH(k, paths.unit_path) { - if (!isempty(arg_root)) -- asprintf(&p, "%s/%s/%s", arg_root, *k, name); -+ j = asprintf(&p, "%s/%s/%s", arg_root, *k, name); - else -- asprintf(&p, "%s/%s", *k, name); -+ j = asprintf(&p, "%s/%s", *k, name); - -- if (!p) { -+ if (j < 0) { - r = log_oom(); - goto finish; - } -@@ -4660,10 +4660,10 @@ static int enable_sysv_units(const char - continue; - - if (!isempty(arg_root)) -- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); -+ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); - else -- asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); -- if (!p) { -+ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); -+ if (j < 0) { - r = log_oom(); - goto finish; - } -@@ -4676,10 +4676,10 @@ static int enable_sysv_units(const char - free(p); - p = NULL; - if (!isempty(arg_root)) -- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); -+ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); - else -- asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -- if (!p) { -+ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -+ if (j < 0) { - r = log_oom(); - goto finish; - } ---- src/tty-ask-password-agent/tty-ask-password-agent.c -+++ src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-28 00:00:00.000000000 +0000 -@@ -102,8 +102,9 @@ static int ask_password_plymouth( - if (accept_cached) { - packet = strdup("c"); - n = 1; -- } else -- asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), message, &n); -+ } else if (asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), -+ message, &n) < 0) -+ packet = NULL; - - if (!packet) { - r = -ENOMEM; diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch deleted file mode 100644 index 7f485448..00000000 --- a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +++ /dev/null @@ -1,130 +0,0 @@ -From b5d742138f71e87312541a89aac5657015f50f48 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 4 Mar 2014 09:50:26 -0500 -Subject: [PATCH] Do not print invalid UTF-8 in error messages - -Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error -messages') only fixed two paths. Convert all of them now. ---- - src/core/load-fragment.c | 13 ++++--------- - src/shared/conf-parser.c | 7 +++---- - src/shared/conf-parser.h | 6 ++++++ - src/shared/fileio.c | 9 ++++++--- - 4 files changed, 19 insertions(+), 16 deletions(-) - -diff --git src/core/load-fragment.c src/core/load-fragment.c -index d77bf5c..5628d8c 100644 ---- src/core/load-fragment.c -+++ src/core/load-fragment.c -@@ -536,9 +536,7 @@ int config_parse_exec(const char *unit, - } - - if (!utf8_is_valid(path)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", -- rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - r = 0; - goto fail; - } -@@ -553,9 +551,7 @@ int config_parse_exec(const char *unit, - } - - if (!utf8_is_valid(c)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", -- rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - r = 0; - goto fail; - } -@@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for( - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - continue; - } - -diff --git src/shared/conf-parser.c src/shared/conf-parser.c -index 0a87a71..d27b1b7 100644 ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c -@@ -618,8 +618,7 @@ int config_parse_string(const char *unit - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "String is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - free(n); - return 0; - } -@@ -656,8 +655,7 @@ int config_parse_path(const char *unit, - assert(data); - - if (!utf8_is_valid(rvalue)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - return 0; - } - -@@ -725,8 +723,7 @@ int config_parse_strv(const char *unit, - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "String is not UTF-8 clean, ignoring: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - continue; - } - -diff --git src/shared/conf-parser.h src/shared/conf-parser.h -index e1c7ab4..ba0e58d 100644 ---- src/shared/conf-parser.h -+++ src/shared/conf-parser.h -@@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level, - config_file, config_line, \ - error, __VA_ARGS__) - -+#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ -+ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ -+ log_syntax(unit, level, config_file, config_line, error, \ -+ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ -+ } -+ - #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ - int function(const char *unit, \ - const char *filename, \ -diff --git src/shared/fileio.c src/shared/fileio.c -index d591567..f101269 100644 ---- src/shared/fileio.c -+++ src/shared/fileio.c -@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, - int r; - - if (!utf8_is_valid(key)) { -+ _cleanup_free_ char *t = utf8_escape_invalid(key); -+ - log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", -- filename, line, key); -+ filename, line, t); - return -EINVAL; - } - - if (value && !utf8_is_valid(value)) { -- /* FIXME: filter UTF-8 */ -+ _cleanup_free_ char *t = utf8_escape_invalid(value); -+ - log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", -- filename, line, key, value); -+ filename, line, key, t); - return -EINVAL; - } - --- -1.7.9.2 - diff --git a/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch b/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch deleted file mode 100644 index 38b777fe..00000000 --- a/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 8e07fc41f86d41e68c5663b2a3c620a0adedcc11 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 31 Aug 2014 00:42:27 -0400 -Subject: [PATCH] Quote unit names in suggested systemctl commandlines - -The fact that unit names have to be quoted can be a bit surprising. -Show quotes in the hint commandline, but only after checking that this -is necessary, since quotes are visually heavy and usually not needed. - -https://bugs.freedesktop.org/show_bug.cgi?id=82832 ---- - src/core/job.c | 11 +++++++++-- - src/systemctl/systemctl.c | 14 ++++++++++++-- - 2 files changed, 21 insertions(+), 4 deletions(-) - -diff --git src/core/job.c src/core/job.c -index 5e4987f..ef5dbce 100644 ---- src/core/job.c -+++ src/core/job.c -@@ -632,11 +632,18 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { - unit_status_printf(u, ANSI_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, format); - break; - -- case JOB_FAILED: -+ case JOB_FAILED: { -+ bool quotes; -+ -+ quotes = chars_intersect(u->id, SHELL_NEED_QUOTES); -+ - manager_flip_auto_status(u->manager, true); - unit_status_printf(u, ANSI_HIGHLIGHT_RED_ON "FAILED" ANSI_HIGHLIGHT_OFF, format); -- manager_status_printf(u->manager, false, NULL, "See 'systemctl status %s' for details.", u->id); -+ manager_status_printf(u->manager, false, NULL, -+ "See \"systemctl status %s%s%s\" for details.", -+ quotes ? "'" : "", u->id, quotes ? "'" : ""); - break; -+ } - - case JOB_DEPENDENCY: - manager_flip_auto_status(u->manager, true); -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 6534819..de43c87 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -2351,8 +2351,18 @@ static int check_wait_response(WaitData *d) { - log_error("Job for %s canceled.", strna(d->name)); - else if (streq(d->result, "dependency")) - log_error("A dependency job for %s failed. See 'journalctl -xn' for details.", strna(d->name)); -- else if (!streq(d->result, "done") && !streq(d->result, "skipped")) -- log_error("Job for %s failed. See 'systemctl status %s' and 'journalctl -xn' for details.", strna(d->name), strna(d->name)); -+ else if (!streq(d->result, "done") && !streq(d->result, "skipped")) { -+ if (d->name) { -+ bool quotes; -+ -+ quotes = chars_intersect(d->name, SHELL_NEED_QUOTES); -+ -+ log_error("Job for %s failed. See \"systemctl status %s%s%s\" and \"journalctl -xn\" for details.", -+ d->name, -+ quotes ? "'" : "", d->name, quotes ? "'" : ""); -+ } else -+ log_error("Job failed. See \"journalctl -xn\" for details."); -+ } - } - - if (streq(d->result, "timeout")) --- -1.7.9.2 - diff --git a/0003-analyze-fix-mem-leak.patch b/0003-analyze-fix-mem-leak.patch deleted file mode 100644 index 10ecbcfc..00000000 --- a/0003-analyze-fix-mem-leak.patch +++ /dev/null @@ -1,27 +0,0 @@ -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/0003-analyze-fix-plot-with-bad-y-size.patch b/0003-analyze-fix-plot-with-bad-y-size.patch deleted file mode 100644 index 07761449..00000000 --- a/0003-analyze-fix-plot-with-bad-y-size.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a213b7e977221ca96bbc1b19a5a879c912ba2488 Mon Sep 17 00:00:00 2001 -From: Jeffrey Clark -Date: Wed, 23 Apr 2014 22:37:43 +0200 -Subject: [PATCH] analyze: fix plot with bad y size - -systemd-analyze plot > test.svg produces output with all y and height -element attributes equal to zero. This of course causes the resulting -svg to appear blank (zero height). Bug does not affect x86. Looks like -a compiler optimization may be the culprit. - -https://github.com/archlinuxarm/PKGBUILDs/issues/815 ---- - src/analyze/analyze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/analyze/analyze.c src/analyze/analyze.c -index ba236d9..ebaa9d0 100644 ---- src/analyze/analyze.c -+++ src/analyze/analyze.c -@@ -43,7 +43,7 @@ - #include "pager.h" - - #define SCALE_X (0.1 / 1000.0) /* pixels per us */ --#define SCALE_Y 20.0 -+#define SCALE_Y (20.0) - - #define compare(a, b) (((a) > (b))? 1 : (((b) > (a))? -1 : 0)) - --- -1.7.9.2 - diff --git a/0003-arch-add-crisv32-to-uname-check.patch b/0003-arch-add-crisv32-to-uname-check.patch deleted file mode 100644 index c8a9e7f3..00000000 --- a/0003-arch-add-crisv32-to-uname-check.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9b3a0ba3e9e28382a1072bf0e2c07a3661432743 Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Thu, 3 Jul 2014 09:54:45 +0200 -Subject: [PATCH] arch: add crisv32 to uname check - ---- - src/shared/architecture.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index 9e0c3ef..7dd049a 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -116,6 +116,7 @@ Architecture uname_architecture(void) { - { "tilegx", ARCHITECTURE_TILEGX }, - #elif defined(__cris__) - { "cris", ARCHITECTURE_CRIS }, -+ { "crisv32", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" - #endif --- -1.7.9.2 - diff --git a/0003-architecture-add-string-table-entries-for-mips-le-ar.patch b/0003-architecture-add-string-table-entries-for-mips-le-ar.patch deleted file mode 100644 index c3944702..00000000 --- a/0003-architecture-add-string-table-entries-for-mips-le-ar.patch +++ /dev/null @@ -1,52 +0,0 @@ -Based on 037c26d0aeb750ca9c8d605884ea1db7baecfea8 Mon Sep 17 00:00:00 2001 -Based on 9a00f57a5ba7ed431e6bac8d8b36518708503b4e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 14:59:06 +0200 -Subject: [PATCH] architecture: add string table entries for mips-le archs - which were missing - ---- - src/shared/architecture.c | 2 ++ - src/shared/architecture.h | 4 ++++ - 2 files changed, 6 insertions(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index 6cdca4e..dc45f35 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -153,7 +153,9 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SPARC] = "sparc", - [ARCHITECTURE_SPARC64] = "sparc64", - [ARCHITECTURE_MIPS] = "mips", -+ [ARCHITECTURE_MIPS_LE] = "mips-le", - [ARCHITECTURE_MIPS64] = "mips64", -+ [ARCHITECTURE_MIPS64_LE] = "mips64-le", - [ARCHITECTURE_ALPHA] = "alpha", - [ARCHITECTURE_ARM] = "arm", - [ARCHITECTURE_ARM_BE] = "arm-be", -diff --git src/shared/architecture.h src/shared/architecture.h -index 20e848b..0807924 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -23,6 +23,8 @@ - - #include "util.h" - -+/* A cleaned up architecture definition */ -+ - typedef enum Architecture { - ARCHITECTURE_X86 = 0, - ARCHITECTURE_X86_64, -@@ -38,7 +40,9 @@ typedef enum Architecture { - ARCHITECTURE_SPARC, - ARCHITECTURE_SPARC64, - ARCHITECTURE_MIPS, -+ ARCHITECTURE_MIPS_LE, - ARCHITECTURE_MIPS64, -+ ARCHITECTURE_MIPS64_LE, - ARCHITECTURE_ALPHA, - ARCHITECTURE_ARM, - ARCHITECTURE_ARM_BE, --- -1.7.9.2 - diff --git a/0003-backlight-unify-error-messages.patch b/0003-backlight-unify-error-messages.patch deleted file mode 100644 index 452de616..00000000 --- a/0003-backlight-unify-error-messages.patch +++ /dev/null @@ -1,115 +0,0 @@ -Based on 938d2699d2e818bd996614e89ea3d668200ad2a8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 7 Apr 2014 20:57:22 -0400 -Subject: [PATCH] backlight: unify error messages - ---- - src/backlight/backlight.c | 29 +++++++++++++++++++---------- - 1 file changed, 19 insertions(+), 10 deletions(-) - ---- src/backlight/backlight.c -+++ src/backlight/backlight.c 2014-05-12 13:31:50.502235843 +0000 -@@ -24,6 +24,7 @@ - #include "fileio.h" - #include "libudev.h" - #include "udev-util.h" -+#include "def.h" - - static struct udev_device *find_pci_or_platform_parent(struct udev_device *device) { - struct udev_device *parent; -@@ -50,7 +51,7 @@ static struct udev_device *find_pci_or_p - if (!c) - return NULL; - -- c += strspn(c, "0123456789"); -+ c += strspn(c, DIGITS); - if (*c == '-') { - /* A connector DRM device, let's ignore all but LVDS and eDP! */ - -@@ -67,7 +68,8 @@ static struct udev_device *find_pci_or_p - unsigned long class = 0; - - if (safe_atolu(value, &class) < 0) { -- log_warning("Cannot parse PCI class %s of device %s:%s.", value, subsystem, sysname); -+ log_warning("Cannot parse PCI class %s of device %s:%s.", -+ value, subsystem, sysname); - return NULL; - } - -@@ -175,7 +177,9 @@ static bool validate_device(struct udev - if (same_device(parent, other_parent)) { - /* Both have the same PCI parent, that means - * we are out. */ -- log_debug("Skipping backlight device %s, since backlight device %s is on same PCI device and, takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); -+ log_debug("Skipping backlight device %s, since device %s is on same PCI device and takes precedence.", -+ udev_device_get_sysname(device), -+ udev_device_get_sysname(other)); - return false; - } - -@@ -184,7 +188,9 @@ static bool validate_device(struct udev - /* The other is connected to the platform bus - * and we are a PCI device, that also means we - * are out. */ -- log_debug("Skipping backlight device %s, since backlight device %s is a platform device and takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); -+ log_debug("Skipping backlight device %s, since device %s is a platform device and takes precedence.", -+ udev_device_get_sysname(device), -+ udev_device_get_sysname(other)); - return false; - } - } -@@ -199,13 +205,14 @@ static unsigned get_max_brightness(struc - - max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); - if (!max_brightness_str) { -- log_warning("Failed to read max_brightness attribute"); -+ log_warning("Failed to read 'max_brightness' attribute"); - return 0; - } - - r = safe_atou(max_brightness_str, &max_brightness); - if (r < 0) { -- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ log_warning("Failed to parse 'max_brightness' \"%s\": %s", -+ max_brightness_str, strerror(-r)); - return 0; - } - -@@ -262,7 +269,8 @@ int main(int argc, char *argv[]) { - - r = mkdir_p("/var/lib/systemd/backlight", 0755); - if (r < 0) { -- log_error("Failed to create backlight directory: %s", strerror(-r)); -+ log_error("Failed to create backlight directory /var/lib/systemd/backlight: %s", -+ strerror(-r)); - return EXIT_FAILURE; - } - -@@ -274,7 +282,7 @@ int main(int argc, char *argv[]) { - - sysname = strchr(argv[2], ':'); - if (!sysname) { -- log_error("Requires pair of subsystem and sysname for specifying backlight device."); -+ log_error("Requires a subsystem and sysname pair specifying a backlight device."); - return EXIT_FAILURE; - } - -@@ -368,7 +376,8 @@ int main(int argc, char *argv[]) { - - r = udev_device_set_sysattr_value(device, "brightness", value); - if (r < 0) { -- log_error("Failed to write system attribute: %s", strerror(-r)); -+ log_error("Failed to write system 'brightness' attribute: %s", -+ strerror(-r)); - return EXIT_FAILURE; - } - -@@ -382,7 +391,7 @@ int main(int argc, char *argv[]) { - - value = udev_device_get_sysattr_value(device, "brightness"); - if (!value) { -- log_error("Failed to read system attribute: %s", strerror(-r)); -+ log_error("Failed to read system 'brightness' attribute: %s", strerror(-r)); - return EXIT_FAILURE; - } - diff --git a/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch b/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch deleted file mode 100644 index 9796af4f..00000000 --- a/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4155f7d4be5053d5f34a26e5437fd85e1fe00fa3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 11 Aug 2014 18:23:47 +0200 -Subject: [PATCH] bootchart: it's not OK to return -1 from a main program - ---- - src/bootchart/bootchart.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c -index c0e176d..8ef5ad1 100644 ---- src/bootchart/bootchart.c -+++ src/bootchart/bootchart.c -@@ -380,8 +380,8 @@ int main(int argc, char *argv[]) { - - sampledata = new0(struct list_sample_data, 1); - if (sampledata == NULL) { -- log_error("Failed to allocate memory for a node: %m"); -- return -1; -+ log_oom(); -+ return EXIT_FAILURE; - } - - sampledata->sampletime = gettime_ns(); --- -1.7.9.2 - diff --git a/0003-bootchart-parse-userinput-with-safe_atoi.patch b/0003-bootchart-parse-userinput-with-safe_atoi.patch deleted file mode 100644 index 16378405..00000000 --- a/0003-bootchart-parse-userinput-with-safe_atoi.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 9bcf7507fab6e6b022ae3cc7178237e6e0a09e9a Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 26 Sep 2014 21:41:02 +0200 -Subject: [PATCH] bootchart: parse userinput with safe_atoi - -Found by coverity. Fixes: CID#996409 ---- - src/bootchart/store.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git src/bootchart/store.c src/bootchart/store.c -index ed683e8..3099ff1 100644 ---- src/bootchart/store.c -+++ src/bootchart/store.c -@@ -192,12 +192,14 @@ vmstat_next: - - m = buf; - while (m) { -+ int r; -+ - if (sscanf(m, "%s %*s %*s %*s %*s %*s %*s %s %s", key, rt, wt) < 3) - goto schedstat_next; - - if (strstr(key, "cpu")) { -- c = atoi((const char*)(key+3)); -- if (c > MAXCPUS) -+ r = safe_atoi((const char*)(key+3), &c); -+ if (r < 0 || c > MAXCPUS) - /* Oops, we only have room for MAXCPUS data */ - break; - sampledata->runtime[c] = atoll(rt); --- -1.7.9.2 - diff --git a/0003-busname-don-t-drop-service-from-the-result-string.patch b/0003-busname-don-t-drop-service-from-the-result-string.patch deleted file mode 100644 index 37b7bd5c..00000000 --- a/0003-busname-don-t-drop-service-from-the-result-string.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 700ff4d97311902a440109a2c081731ab6ae8a20 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 7 Mar 2014 17:29:16 +0100 -Subject: [PATCH] busname: don't drop 'service' from the result string - ---- - src/core/busname.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/busname.c src/core/busname.c -index 237011a..bca2145 100644 ---- src/core/busname.c -+++ src/core/busname.c -@@ -548,7 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); - static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { - [BUSNAME_SUCCESS] = "success", - [BUSNAME_FAILURE_RESOURCES] = "resources", -- [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", -+ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "service-failed-permanent", - }; - - DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); --- -1.7.9.2 - diff --git a/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch b/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch deleted file mode 100644 index 8305035f..00000000 --- a/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f Mon Sep 17 00:00:00 2001 -From: Ronan Le Martret -Date: Tue, 22 Apr 2014 10:33:25 +0200 -Subject: [PATCH] core: You can not put the cached result of use_smack fct, as - we are not sure the "/sys" is mounted. So we should mount - "sys" before "/proc" - -https://bugs.freedesktop.org/show_bug.cgi?id=77646 ---- - src/core/mount-setup.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index ae8447c..991bfdf 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -67,10 +67,10 @@ typedef struct MountPoint { - #define N_EARLY_MOUNT 5 - - static const MountPoint mount_table[] = { -- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -- NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, - NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, - NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, --- -1.7.9.2 - diff --git a/0003-core-allow-transient-mount-units.patch b/0003-core-allow-transient-mount-units.patch deleted file mode 100644 index 607bdaea..00000000 --- a/0003-core-allow-transient-mount-units.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 0e252f6b375af59eac9bd6d2fe8dd6ee2f51998d Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 6 Jun 2014 15:10:20 +0200 -Subject: [PATCH] core: allow transient mount units - -For now only What=, Options=, Type= are supported, and Where= is deduced -from the unit name. ---- - src/core/dbus-mount.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++- - src/core/mount.c | 2 ++ - 2 files changed, 65 insertions(+), 1 deletion(-) - -diff --git src/core/dbus-mount.c src/core/dbus-mount.c -index e64d3ea..e27019d 100644 ---- src/core/dbus-mount.c -+++ src/core/dbus-mount.c -@@ -124,6 +124,47 @@ const sd_bus_vtable bus_mount_vtable[] = { - SD_BUS_VTABLE_END - }; - -+static int bus_mount_set_transient_property( -+ Mount *m, -+ const char *name, -+ sd_bus_message *message, -+ UnitSetPropertiesMode mode, -+ sd_bus_error *error) { -+ -+ const char *new_property; -+ char **property; -+ char *p; -+ int r; -+ -+ assert(m); -+ assert(name); -+ assert(message); -+ -+ if (streq(name, "What")) -+ property = &m->parameters_fragment.what; -+ else if (streq(name, "Options")) -+ property = &m->parameters_fragment.options; -+ else if (streq(name, "Type")) -+ property = &m->parameters_fragment.fstype; -+ else -+ return 0; -+ -+ r = sd_bus_message_read(message, "s", &new_property); -+ if (r < 0) -+ return r; -+ -+ if (mode != UNIT_CHECK) { -+ p = strdup(new_property); -+ if (!p) -+ return -ENOMEM; -+ -+ free(*property); -+ *property = p; -+ } -+ -+ return 1; -+} -+ - int bus_mount_set_property( - Unit *u, - const char *name, -@@ -132,12 +173,33 @@ int bus_mount_set_property( - sd_bus_error *error) { - - Mount *m = MOUNT(u); -+ int r; - - assert(m); - assert(name); - assert(message); - -- return bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); -+ r = bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); -+ if (r != 0) -+ return r; -+ -+ if (u->transient && u->load_state == UNIT_STUB) { -+ /* This is a transient unit, let's load a little more */ -+ -+ r = bus_mount_set_transient_property(m, name, message, mode, error); -+ if (r != 0) -+ return r; -+ -+ r = bus_exec_context_set_transient_property(u, &m->exec_context, name, message, mode, error); -+ if (r != 0) -+ return r; -+ -+ r = bus_kill_context_set_transient_property(u, &m->kill_context, name, message, mode, error); -+ if (r != 0) -+ return r; -+ } -+ -+ return 0; - } - - int bus_mount_commit_properties(Unit *u) { -diff --git src/core/mount.c src/core/mount.c -index a979837..14ac0a0 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -1819,6 +1819,8 @@ const UnitVTable mount_vtable = { - - .get_timeout = mount_get_timeout, - -+ .can_transient = true, -+ - .enumerate = mount_enumerate, - .shutdown = mount_shutdown, - --- -1.7.9.2 - diff --git a/0003-core-make-sure-to-serialize-jobs-for-all-units.patch b/0003-core-make-sure-to-serialize-jobs-for-all-units.patch deleted file mode 100644 index 30c4615f..00000000 --- a/0003-core-make-sure-to-serialize-jobs-for-all-units.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 9bdb98c59451ed090f8d35d470a54710f389ce71 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 May 2014 01:15:03 +0200 -Subject: [PATCH] core: make sure to serialize jobs for all units - -Previously we wouldn't serialize jobs for units that themselves have -nothing to serialize. - -http://lists.freedesktop.org/archives/systemd-devel/2014-May/019051.html ---- - src/core/manager.c | 3 --- - src/core/unit.c | 43 +++++++++++++++++++++---------------------- - 2 files changed, 21 insertions(+), 25 deletions(-) - -diff --git src/core/manager.c src/core/manager.c -index 1e3e127..d0af674 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -2131,9 +2131,6 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) { - if (u->id != t) - continue; - -- if (!unit_can_serialize(u)) -- continue; -- - /* Start marker */ - fputs(u->id, f); - fputc('\n', f); -diff --git src/core/unit.c src/core/unit.c -index c4ed923..41651ba 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -2288,25 +2288,25 @@ bool unit_can_serialize(Unit *u) { - } - - int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs) { -- ExecRuntime *rt; - int r; - - assert(u); - assert(f); - assert(fds); - -- if (!unit_can_serialize(u)) -- return 0; -- -- r = UNIT_VTABLE(u)->serialize(u, f, fds); -- if (r < 0) -- return r; -+ if (unit_can_serialize(u)) { -+ ExecRuntime *rt; - -- rt = unit_get_exec_runtime(u); -- if (rt) { -- r = exec_runtime_serialize(rt, u, f, fds); -+ r = UNIT_VTABLE(u)->serialize(u, f, fds); - if (r < 0) - return r; -+ -+ rt = unit_get_exec_runtime(u); -+ if (rt) { -+ r = exec_runtime_serialize(rt, u, f, fds); -+ if (r < 0) -+ return r; -+ } - } - - dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); -@@ -2368,17 +2368,14 @@ void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value) { - } - - int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { -- size_t offset; - ExecRuntime **rt = NULL; -+ size_t offset; - int r; - - assert(u); - assert(f); - assert(fds); - -- if (!unit_can_serialize(u)) -- return 0; -- - offset = UNIT_VTABLE(u)->exec_runtime_offset; - if (offset > 0) - rt = (ExecRuntime**) ((uint8_t*) u + offset); -@@ -2503,17 +2500,19 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - continue; - } - -- if (rt) { -- r = exec_runtime_deserialize_item(rt, u, l, v, fds); -+ if (unit_can_serialize(u)) { -+ if (rt) { -+ r = exec_runtime_deserialize_item(rt, u, l, v, fds); -+ if (r < 0) -+ return r; -+ if (r > 0) -+ continue; -+ } -+ -+ r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); - if (r < 0) - return r; -- if (r > 0) -- continue; - } -- -- r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); -- if (r < 0) -- return r; - } - } - --- -1.7.9.2 - diff --git a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch deleted file mode 100644 index 74a3f0e8..00000000 --- a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +++ /dev/null @@ -1,113 +0,0 @@ -From bcd816bd349241bcd9c0bfbfd9cfe7b034ba351b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 May 2014 16:49:12 +0900 -Subject: [PATCH] core: never consider failure when reading drop-ins fatal - -drop-ins don't carry the main configuration of a unit, hence read them -if we can't, complain if we cannot, but don't fail. ---- - src/core/load-dropin.c | 42 +++++++++++++----------------------------- - 1 file changed, 13 insertions(+), 29 deletions(-) - -Index: src/core/load-dropin.c -=================================================================== ---- src/core/load-dropin.c.orig -+++ src/core/load-dropin.c -@@ -58,6 +58,7 @@ static int iterate_dir( - if (errno == ENOENT) - return 0; - -+ log_error("Failed to open directory %s: %m", path); - return -errno; - } - -@@ -101,7 +102,6 @@ static int process_dir( - char ***strv) { - - _cleanup_free_ char *path = NULL; -- int r; - - assert(u); - assert(unit_path); -@@ -112,11 +112,8 @@ static int process_dir( - if (!path) - return log_oom(); - -- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) { -- r = iterate_dir(u, path, dependency, strv); -- if (r < 0) -- return r; -- } -+ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) -+ iterate_dir(u, path, dependency, strv); - - if (u->instance) { - _cleanup_free_ char *template = NULL, *p = NULL; -@@ -130,11 +127,8 @@ static int process_dir( - if (!p) - return log_oom(); - -- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) { -- r = iterate_dir(u, p, dependency, strv); -- if (r < 0) -- return r; -- } -+ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) -+ iterate_dir(u, p, dependency, strv); - } - - return 0; -@@ -152,12 +146,8 @@ char **unit_find_dropin_paths(Unit *u) { - SET_FOREACH(t, u->names, i) { - char **p; - -- STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { -- /* This loads the drop-in config snippets */ -- r = process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); -- if (r < 0) -- return NULL; -- } -+ STRV_FOREACH(p, u->manager->lookup_paths.unit_path) -+ process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); - } - - if (strv_isempty(strv)) -@@ -176,7 +166,6 @@ char **unit_find_dropin_paths(Unit *u) { - int unit_load_dropin(Unit *u) { - Iterator i; - char *t, **f; -- int r; - - assert(u); - -@@ -186,13 +175,8 @@ int unit_load_dropin(Unit *u) { - char **p; - - STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { -- r = process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); -- if (r < 0) -- return r; -- -- r = process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); -- if (r < 0) -- return r; -+ process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); -+ process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); - } - } - -@@ -201,11 +185,9 @@ int unit_load_dropin(Unit *u) { - return 0; - - STRV_FOREACH(f, u->dropin_paths) { -- r = config_parse(u->id, *f, NULL, -- UNIT_VTABLE(u)->sections, config_item_perf_lookup, -- (void*) load_fragment_gperf_lookup, false, false, u); -- if (r < 0) -- return r; -+ config_parse(u->id, *f, NULL, -+ UNIT_VTABLE(u)->sections, config_item_perf_lookup, -+ (void*) load_fragment_gperf_lookup, false, false, u); - } - - u->dropin_mtime = now(CLOCK_REALTIME); diff --git a/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch b/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch deleted file mode 100644 index 5a60b86b..00000000 --- a/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 18abe7bd3e13525b257da69ac49ff7841c289567 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Jul 2014 22:52:53 -0400 -Subject: [PATCH] core: nicer message when inotify watches are exhausted - -inotify_add_watch returns ENOSPC, which translates to -"No space left on device", which is misleading. - -https://bugs.freedesktop.org/show_bug.cgi?id=73628 ---- - src/core/path.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/core/path.c src/core/path.c -index 20e454d..f54c77f 100644 ---- src/core/path.c -+++ src/core/path.c -@@ -99,7 +99,8 @@ int path_spec_watch(PathSpec *s, sd_event_io_handler_t handler) { - break; - } - -- log_warning("Failed to add watch on %s: %m", s->path); -+ log_warning("Failed to add watch on %s: %s", s->path, -+ errno == ENOSPC ? "too many watches" : strerror(-r)); - r = -errno; - if (cut) - *cut = tmp; --- -1.7.9.2 - diff --git a/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch b/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch deleted file mode 100644 index 5424ff1c..00000000 --- a/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch +++ /dev/null @@ -1,28 +0,0 @@ -Based on 8a52210c9392887a31fdb2845f65b4c5869e8e66 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 24 Nov 2014 09:11:12 -0500 -Subject: [PATCH] cryptsetup: default to no hash when keyfile is specified - -For plain dm-crypt devices, the behavior of cryptsetup package is to -ignore the hash algorithm when a key file is provided. It seems wrong -to ignore a hash when it is explicitly specified, but we should default -to no hash if the keyfile is specified. - -https://bugs.freedesktop.org/show_bug.cgi?id=52630 ---- - src/cryptsetup/cryptsetup.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- src/cryptsetup/cryptsetup.c -+++ src/cryptsetup/cryptsetup.c 2014-12-15 12:00:17.554019752 +0000 -@@ -386,7 +386,9 @@ static int attach_luks_or_plain(struct c - /* plain isn't a real hash type. it just means "use no hash" */ - if (!streq(opt_hash, "plain")) - params.hash = opt_hash; -- } else -+ } else if (!key_file) -+ /* for CRYPT_PLAIN, the behaviour of cryptsetup -+ * package is to not hash when a key file is provided */ - params.hash = "ripemd160"; - - if (opt_cipher) { diff --git a/0003-delta-do-not-use-unicode-chars-in-C-locale.patch b/0003-delta-do-not-use-unicode-chars-in-C-locale.patch deleted file mode 100644 index f7360178..00000000 --- a/0003-delta-do-not-use-unicode-chars-in-C-locale.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 00a5cc3a63c125633e822f39efd9c32223169f62 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Apr 2014 23:33:41 -0400 -Subject: [PATCH] delta: do not use unicode chars in C locale - -https://bugzilla.redhat.com/show_bug.cgi?id=1088418 ---- - src/delta/delta.c | 40 +++++++++++++++++++++++++--------------- - 1 file changed, 25 insertions(+), 15 deletions(-) - -diff --git src/delta/delta.c src/delta/delta.c -index 369f8f8..8fc37c5 100644 ---- src/delta/delta.c -+++ src/delta/delta.c -@@ -85,6 +85,10 @@ static void pager_open_if_enabled(void) { - pager_open(false); - } - -+static inline const char* arrow(void) { -+ return is_locale_utf8() ? "→" : "->"; -+} -+ - static int equivalent(const char *a, const char *b) { - _cleanup_free_ char *x = NULL, *y = NULL; - -@@ -103,8 +107,9 @@ static int notify_override_masked(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_MASKED)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -112,8 +117,9 @@ static int notify_override_equivalent(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_EQUIVALENT)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -121,8 +127,9 @@ static int notify_override_redirected(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_REDIRECTED)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -130,8 +137,9 @@ static int notify_override_overridden(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_OVERRIDDEN)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -139,8 +147,9 @@ static int notify_override_extended(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_EXTENDED)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -241,7 +250,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const - return -ENOMEM; - d = p + strlen(toppath) + 1; - -- log_debug("Adding at top: %s → %s", d, p); -+ log_debug("Adding at top: %s %s %s", d, arrow(), p); - k = hashmap_put(top, d, p); - if (k >= 0) { - p = strdup(p); -@@ -253,7 +262,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const - return k; - } - -- log_debug("Adding at bottom: %s → %s", d, p); -+ log_debug("Adding at bottom: %s %s %s", d, arrow(), p); - free(hashmap_remove(bottom, d)); - k = hashmap_put(bottom, d, p); - if (k < 0) { -@@ -276,7 +285,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const - if (!p) - return -ENOMEM; - -- log_debug("Adding to drops: %s → %s → %s", unit, basename(p), p); -+ log_debug("Adding to drops: %s %s %s %s %s", -+ unit, arrow(), basename(p), arrow(), p); - k = hashmap_put(h, basename(p), p); - if (k < 0) { - free(p); -@@ -328,7 +338,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch - if (!p) - return -ENOMEM; - -- log_debug("Adding at top: %s → %s", basename(p), p); -+ log_debug("Adding at top: %s %s %s", basename(p), arrow(), p); - k = hashmap_put(top, basename(p), p); - if (k >= 0) { - p = strdup(p); -@@ -339,7 +349,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch - return k; - } - -- log_debug("Adding at bottom: %s → %s", basename(p), p); -+ log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p); - free(hashmap_remove(bottom, basename(p))); - k = hashmap_put(bottom, basename(p), p); - if (k < 0) { --- -1.7.9.2 - diff --git a/0003-fileio-label-return-error-when-writing-fails.patch b/0003-fileio-label-return-error-when-writing-fails.patch deleted file mode 100644 index 91ea97d9..00000000 --- a/0003-fileio-label-return-error-when-writing-fails.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on 754fc0c720eb998b8e47e695c12807ced0ff3602 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Oct 2014 08:58:40 -0400 -Subject: [PATCH] fileio-label: return error when writing fails - -The status of actually writing the file was totally ignored. ---- - src/shared/fileio-label.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/shared/fileio-label.c -+++ src/shared/fileio-label.c 2014-10-14 14:52:50.883837740 +0000 -@@ -33,7 +33,7 @@ int write_string_file_atomic_label(const - if (r < 0) - return r; - -- write_string_file_atomic(fn, line); -+ r = write_string_file_atomic(fn, line); - - label_context_clear(); - -@@ -47,7 +47,7 @@ int write_env_file_label(const char *fna - if (r < 0) - return r; - -- write_env_file(fname, l); -+ r = write_env_file(fname, l); - - label_context_clear(); - diff --git a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch deleted file mode 100644 index 27bfc4e6..00000000 --- a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +++ /dev/null @@ -1,110 +0,0 @@ -Based on 571d0134bd464444567cf4eb0d2ed8df40045f36 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 24 Jun 2014 19:37:22 +0200 -Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true - non-existant - ---- - src/fsck/fsck.c | 32 ++++++++++++++++++++++---------- - src/shared/path-util.c | 26 +++++++++++++++----------- - 2 files changed, 37 insertions(+), 21 deletions(-) - -Index: src/fsck/fsck.c -=================================================================== ---- src/fsck/fsck.c.orig -+++ src/fsck/fsck.c -@@ -37,6 +37,7 @@ - #include "bus-errors.h" - #include "fileio.h" - #include "udev-util.h" -+#include "path-util.h" - - static bool arg_skip = false; - static bool arg_force = false; -@@ -280,16 +281,28 @@ int main(int argc, char *argv[]) { - - type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); - if (type) { -- const char *checker = strappenda("/sbin/fsck.", type); -- r = access(checker, X_OK); -- if (r < 0) { -- if (errno == ENOENT) { -- log_info("%s doesn't exist, not checking file system on %s", -- checker, device); -- return EXIT_SUCCESS; -- } else -- log_warning("%s cannot be used for %s: %m", -- checker, device); -+ _cleanup_free_ char *p = NULL, *d = NULL; -+ const char *checker = strappenda("fsck.", type); -+ r = find_binary(checker, &p); -+ if (r == -ENOENT) { -+ log_info("fsck.%s doesn't exist, not checking file system on %s", -+ type, device); -+ return EXIT_SUCCESS; -+ } else if (r < 0) { -+ log_warning("fsck.%s cannot be used for %s: %m", -+ type, device); -+ return r; -+ } -+ -+ /* An fsck that is linked to /bin/true is a non-existant fsck */ -+ r = readlink_malloc(p, &d); -+ if (r >= 0 && -+ (path_equal(d, "/bin/true") || -+ path_equal(d, "/usr/bin/true") || -+ path_equal(d, "/dev/null"))) { -+ log_info("fsck.%s doesn't exist, not checking file system on %s", -+ type, device); -+ return EXIT_SUCCESS; - } - } - -Index: src/shared/path-util.c -=================================================================== ---- src/shared/path-util.c.orig -+++ src/shared/path-util.c -@@ -425,19 +425,21 @@ int path_is_os_tree(const char *path) { - - int find_binary(const char *name, char **filename) { - assert(name); -- assert(filename); - -- if (strchr(name, '/')) { -- char *p; -+ if (is_path(name)) { -+ if (access(name, X_OK) < 0) -+ return -errno; -+ -+ if (filename) { -+ char *p; - -- if (path_is_absolute(name)) -- p = strdup(name); -- else - p = path_make_absolute_cwd(name); -- if (!p) -- return -ENOMEM; -+ if (!p) -+ return -ENOMEM; -+ -+ *filename = p; -+ } - -- *filename = p; - return 0; - } else { - const char *path; -@@ -463,8 +465,10 @@ int find_binary(const char *name, char * - continue; - } - -- path_kill_slashes(p); -- *filename = p; -+ if (filename) { -+ path_kill_slashes(p); -+ *filename = p; -+ } - - return 0; - } diff --git a/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch b/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch deleted file mode 100644 index 6515929b..00000000 --- a/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch +++ /dev/null @@ -1,51583 +0,0 @@ -Based on d060b62fcb4746d3758c567e9379c6728a035b66 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 14 Apr 2014 07:54:35 -0700 -Subject: [PATCH] hwdb: PCI - include "primary" model string in subsystem - model string - -The data in the PCI ids file is randomly inconsistent. Many -subvendor model strings just describe the "product" where the -hardware is built into, not the hardware itself. This causes -some "Network Card Model Foo" to show up as "Laptop Model Bar". - -Try to make the best out of this mess and concatenate both -strings to describe the hardware. ---- - hwdb/20-pci-vendor-model.hwdb |21356 +++++++++++++++++++++--------------------- - 1 file changed, 10678 insertions(+), 10678 deletions(-) - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index d54cb2a..14637d3 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -15,10 +15,10 @@ pci:v0000001Cd00000001* - ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller - - pci:v0000001Cd00000001sv0000001Csd00000004* -- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 -+ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000) - - pci:v0000001Cd00000001sv0000001Csd00000005* -- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 (Optically Isolated) -+ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000 (Optically Isolated)) - - pci:v0000003D* - ID_VENDOR_FROM_DATABASE=Lockheed Martin-Marietta Corp -@@ -189,19 +189,19 @@ pci:v00000E11d00000046* - ID_MODEL_FROM_DATABASE=Smart Array 64xx - - pci:v00000E11d00000046sv00000E11sd00004091* -- ID_MODEL_FROM_DATABASE=Smart Array 6i -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6i) - - pci:v00000E11d00000046sv00000E11sd0000409A* -- ID_MODEL_FROM_DATABASE=Smart Array 641 -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 641) - - pci:v00000E11d00000046sv00000E11sd0000409B* -- ID_MODEL_FROM_DATABASE=Smart Array 642 -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 642) - - pci:v00000E11d00000046sv00000E11sd0000409C* -- ID_MODEL_FROM_DATABASE=Smart Array 6400 -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400) - - pci:v00000E11d00000046sv00000E11sd0000409D* -- ID_MODEL_FROM_DATABASE=Smart Array 6400 EM -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400 EM) - - pci:v00000E11d00000049* - ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module -@@ -321,7 +321,7 @@ pci:v00000E11d0000A0F0* - ID_MODEL_FROM_DATABASE=Advanced System Management Controller - - pci:v00000E11d0000A0F0sv00000E11sd0000B0F3* -- ID_MODEL_FROM_DATABASE=ProLiant DL360 -+ ID_MODEL_FROM_DATABASE=Advanced System Management Controller (ProLiant DL360) - - pci:v00000E11d0000A0F3* - ID_MODEL_FROM_DATABASE=Triflex PCI to ISA Bridge -@@ -330,10 +330,10 @@ pci:v00000E11d0000A0F7* - ID_MODEL_FROM_DATABASE=PCI Hotplug Controller - - pci:v00000E11d0000A0F7sv00008086sd0000002A* -- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller A -+ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (A) - - pci:v00000E11d0000A0F7sv00008086sd0000002B* -- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller B -+ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (B) - - pci:v00000E11d0000A0F8* - ID_MODEL_FROM_DATABASE=ZFMicro Chipset USB -@@ -345,19 +345,19 @@ pci:v00000E11d0000AE10* - ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller - - pci:v00000E11d0000AE10sv00000E11sd00004030* -- ID_MODEL_FROM_DATABASE=Smart-2/P Array Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2/P Array Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004031* -- ID_MODEL_FROM_DATABASE=Smart-2SL Array Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2SL Array Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004032* -- ID_MODEL_FROM_DATABASE=Smart Array 3200 Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3200 Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004033* -- ID_MODEL_FROM_DATABASE=Smart Array 3100ES Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3100ES Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004034* -- ID_MODEL_FROM_DATABASE=Smart Array 221 Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 221 Controller) - - pci:v00000E11d0000AE29* - ID_MODEL_FROM_DATABASE=MIS-L -@@ -468,13 +468,13 @@ pci:v00000E11d0000B178* - ID_MODEL_FROM_DATABASE=Smart Array 5i/532 - - pci:v00000E11d0000B178sv00000E11sd00004080* -- ID_MODEL_FROM_DATABASE=Smart Array 5i -+ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5i) - - pci:v00000E11d0000B178sv00000E11sd00004082* -- ID_MODEL_FROM_DATABASE=Smart Array 532 -+ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 532) - - pci:v00000E11d0000B178sv00000E11sd00004083* -- ID_MODEL_FROM_DATABASE=Smart Array 5312 -+ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5312) - - pci:v00000E11d0000B1A4* - ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter -@@ -516,7 +516,7 @@ pci:v00001000d00000001* - ID_MODEL_FROM_DATABASE=53c810 - - pci:v00001000d00000001sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C810AE PCI to SCSI I/O Processor -+ ID_MODEL_FROM_DATABASE=53c810 (LSI53C810AE PCI to SCSI I/O Processor) - - pci:v00001000d00000002* - ID_MODEL_FROM_DATABASE=53c820 -@@ -525,7 +525,7 @@ pci:v00001000d00000003* - ID_MODEL_FROM_DATABASE=53c825 - - pci:v00001000d00000003sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide) -+ ID_MODEL_FROM_DATABASE=53c825 (LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide)) - - pci:v00001000d00000004* - ID_MODEL_FROM_DATABASE=53c815 -@@ -537,49 +537,49 @@ pci:v00001000d00000006* - ID_MODEL_FROM_DATABASE=53c860 - - pci:v00001000d00000006sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C860E PCI to Ultra SCSI I/O Processor -+ ID_MODEL_FROM_DATABASE=53c860 (LSI53C860E PCI to Ultra SCSI I/O Processor) - - pci:v00001000d0000000A* - ID_MODEL_FROM_DATABASE=53c1510 - - pci:v00001000d0000000Asv00000E11sd0000B143* -- ID_MODEL_FROM_DATABASE=Integrated Dual Channel Wide Ultra2 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1510 (Integrated Dual Channel Wide Ultra2 SCSI Controller) - - pci:v00001000d0000000Asv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode) -+ ID_MODEL_FROM_DATABASE=53c1510 (LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode)) - - pci:v00001000d0000000B* - ID_MODEL_FROM_DATABASE=53C896/897 - - pci:v00001000d0000000Bsv00000E11sd00006004* -- ID_MODEL_FROM_DATABASE=EOB003 Series SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53C896/897 (EOB003 Series SCSI host adapter) - - pci:v00001000d0000000Bsv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller -+ ID_MODEL_FROM_DATABASE=53C896/897 (LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller) - - pci:v00001000d0000000Bsv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53C896/897 (LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter) - - pci:v00001000d0000000Bsv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53C896/897 (LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter) - - pci:v00001000d0000000Bsv000013E9sd00001000* -- ID_MODEL_FROM_DATABASE=6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics) -+ ID_MODEL_FROM_DATABASE=53C896/897 (6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics)) - - pci:v00001000d0000000C* - ID_MODEL_FROM_DATABASE=53c895 - - pci:v00001000d0000000Csv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=LSI8951U PCI to Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c895 (LSI8951U PCI to Ultra2 SCSI host adapter) - - pci:v00001000d0000000Csv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=LSI8952U PCI to Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c895 (LSI8952U PCI to Ultra2 SCSI host adapter) - - pci:v00001000d0000000Csv00001DE1sd00003906* -- ID_MODEL_FROM_DATABASE=DC-390U2B SCSI adapter -+ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2B SCSI adapter) - - pci:v00001000d0000000Csv00001DE1sd00003907* -- ID_MODEL_FROM_DATABASE=DC-390U2W -+ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2W) - - pci:v00001000d0000000D* - ID_MODEL_FROM_DATABASE=53c885 -@@ -588,151 +588,151 @@ pci:v00001000d0000000F* - ID_MODEL_FROM_DATABASE=53c875 - - pci:v00001000d0000000Fsv00000E11sd00007004* -- ID_MODEL_FROM_DATABASE=Embedded Ultra Wide SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875 (Embedded Ultra Wide SCSI Controller) - - pci:v00001000d0000000Fsv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C876/E PCI to Dual Channel SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875 (LSI53C876/E PCI to Dual Channel SCSI Controller) - - pci:v00001000d0000000Fsv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=LSI22801 PCI to Dual Channel Ultra SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c875 (LSI22801 PCI to Dual Channel Ultra SCSI host adapter) - - pci:v00001000d0000000Fsv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=LSI22802 PCI to Dual Channel Ultra SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c875 (LSI22802 PCI to Dual Channel Ultra SCSI host adapter) - - pci:v00001000d0000000Fsv00001092sd00008760* -- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875 (FirePort 40 Dual SCSI Controller) - - pci:v00001000d0000000Fsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Wide Ultra SCSI -+ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Wide Ultra SCSI) - - pci:v00001000d0000000Fsv00001775sd000010D1* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Ultra SCSI -+ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Ultra SCSI) - - pci:v00001000d0000000Fsv00001DE1sd00003904* -- ID_MODEL_FROM_DATABASE=DC390F/U Ultra Wide SCSI Adapter -+ ID_MODEL_FROM_DATABASE=53c875 (DC390F/U Ultra Wide SCSI Adapter) - - pci:v00001000d0000000Fsv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=53c875 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00001000d0000000Fsv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=53c875 (CT7 mainboard) - - pci:v00001000d00000010* - ID_MODEL_FROM_DATABASE=53C1510 - - pci:v00001000d00000010sv00000E11sd00004040* -- ID_MODEL_FROM_DATABASE=Integrated Smart Array Controller -+ ID_MODEL_FROM_DATABASE=53C1510 (Integrated Smart Array Controller) - - pci:v00001000d00000010sv00000E11sd00004048* -- ID_MODEL_FROM_DATABASE=RAID LC2 Controller -+ ID_MODEL_FROM_DATABASE=53C1510 (RAID LC2 Controller) - - pci:v00001000d00000010sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode) -+ ID_MODEL_FROM_DATABASE=53C1510 (PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)) - - pci:v00001000d00000012* - ID_MODEL_FROM_DATABASE=53c895a - - pci:v00001000d00000012sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C895A PCI to Ultra2 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c895a (LSI53C895A PCI to Ultra2 SCSI Controller) - - pci:v00001000d00000013* - ID_MODEL_FROM_DATABASE=53c875a - - pci:v00001000d00000013sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C875A PCI to Ultra SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875a (LSI53C875A PCI to Ultra SCSI Controller) - - pci:v00001000d00000020* - ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter - - pci:v00001000d00000020sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller) - - pci:v00001000d00000020sv0000107Bsd00001040* -- ID_MODEL_FROM_DATABASE=Server Onboard 53C1010-33 -+ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (Server Onboard 53C1010-33) - - pci:v00001000d00000020sv00001DE1sd00001020* -- ID_MODEL_FROM_DATABASE=DC-390U3W -+ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (DC-390U3W) - - pci:v00001000d00000021* - ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter - - pci:v00001000d00000021sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller) - - pci:v00001000d00000021sv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=Asus TR-DLS onboard 53C1010-66 -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Asus TR-DLS onboard 53C1010-66) - - pci:v00001000d00000021sv0000103Csd00001300* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [AB306A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [AB306A]) - - pci:v00001000d00000021sv0000103Csd00001310* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A9918A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A9918A]) - - pci:v00001000d00000021sv0000103Csd00001330* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7059A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7059A]) - - pci:v00001000d00000021sv0000103Csd00001340* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7060A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7060A]) - - pci:v00001000d00000021sv0000124Bsd00001070* -- ID_MODEL_FROM_DATABASE=PMC-USCSI3 -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (PMC-USCSI3) - - pci:v00001000d00000021sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (CT8 mainboard) - - pci:v00001000d00000021sv00004C53sd00001300* -- ID_MODEL_FROM_DATABASE=P017 mezzanine (32-bit PMC) -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (32-bit PMC)) - - pci:v00001000d00000021sv00004C53sd00001310* -- ID_MODEL_FROM_DATABASE=P017 mezzanine (64-bit PMC) -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (64-bit PMC)) - - pci:v00001000d0000002F* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] - - pci:v00001000d0000002Fsv00001028sd00001F3E* -- ID_MODEL_FROM_DATABASE=SPERC 8 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] (SPERC 8) - - pci:v00001000d00000030* - ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI - - pci:v00001000d00000030sv00000E11sd000000DA* -- ID_MODEL_FROM_DATABASE=ProLiant ML 350 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (ProLiant ML 350) - - pci:v00001000d00000030sv00001028sd00000123* -- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) - - pci:v00001000d00000030sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) - - pci:v00001000d00000030sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4) -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4)) - - pci:v00001000d00000030sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) - - pci:v00001000d00000030sv00001028sd0000018A* -- ID_MODEL_FROM_DATABASE=PERC 4/IM -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PERC 4/IM) - - pci:v00001000d00000030sv00001028sd00001010* -- ID_MODEL_FROM_DATABASE=LSI U320 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI U320 SCSI Controller) - - pci:v00001000d00000030sv0000103Csd000012C5* -- ID_MODEL_FROM_DATABASE=Ultra320 SCSI [A7173A] -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Ultra320 SCSI [A7173A]) - - pci:v00001000d00000030sv0000103Csd00001323* -- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Core I/O LAN/SCSI Combo [AB314A]) - - pci:v00001000d00000030sv0000103Csd00003108* -- ID_MODEL_FROM_DATABASE=Single Channel Ultra320 SCSI HBA G2 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Single Channel Ultra320 SCSI HBA G2) - - pci:v00001000d00000030sv0000124Bsd00001170* -- ID_MODEL_FROM_DATABASE=PMC-USCSI320 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PMC-USCSI320) - - pci:v00001000d00000030sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=LSI Logic Parallel SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic Parallel SCSI Controller) - - pci:v00001000d00000030sv00001734sd00001052* -- ID_MODEL_FROM_DATABASE=PRIMERGY BX/RX/TX S2 series onboard SCSI(IME) -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PRIMERGY BX/RX/TX S2 series onboard SCSI(IME)) - - pci:v00001000d00000031* - ID_MODEL_FROM_DATABASE=53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI -@@ -741,7 +741,7 @@ pci:v00001000d00000032* - ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI - - pci:v00001000d00000032sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller) - - pci:v00001000d00000033* - ID_MODEL_FROM_DATABASE=1030ZC_53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI -@@ -750,10 +750,10 @@ pci:v00001000d00000040* - ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI - - pci:v00001000d00000040sv00001000sd00000033* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XR -+ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XR) - - pci:v00001000d00000040sv00001000sd00000066* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XRWS -+ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XRWS) - - pci:v00001000d00000041* - ID_MODEL_FROM_DATABASE=53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI -@@ -762,73 +762,73 @@ pci:v00001000d00000050* - ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS - - pci:v00001000d00000050sv00001028sd00001F04* -- ID_MODEL_FROM_DATABASE=SAS 5/E -+ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5/E) - - pci:v00001000d00000050sv00001028sd00001F09* -- ID_MODEL_FROM_DATABASE=SAS 5i/R -+ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5i/R) - - pci:v00001000d00000054* - ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS - - pci:v00001000d00000054sv00001028sd00001F04* -- ID_MODEL_FROM_DATABASE=SAS 5/E Adapter Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/E Adapter Controller) - - pci:v00001000d00000054sv00001028sd00001F05* -- ID_MODEL_FROM_DATABASE=SAS 5/i Adapter Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Adapter Controller) - - pci:v00001000d00000054sv00001028sd00001F06* -- ID_MODEL_FROM_DATABASE=SAS 5/i Integrated Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Integrated Controller) - - pci:v00001000d00000054sv00001028sd00001F07* -- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) - - pci:v00001000d00000054sv00001028sd00001F08* -- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) - - pci:v00001000d00000054sv00001028sd00001F09* -- ID_MODEL_FROM_DATABASE=SAS 5/iR Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Adapter RAID Controller) - - pci:v00001000d00000054sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=SAS Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS Controller) - - pci:v00001000d00000055* - ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS - - pci:v00001000d00000055sv00001033sd00008336* -- ID_MODEL_FROM_DATABASE=SAS1068 -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS1068) - - pci:v00001000d00000056* - ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS - - pci:v00001000d00000056sv00001014sd000003BB* -- ID_MODEL_FROM_DATABASE=ServeRAID BR10il SAS/SATA Controller v2 -+ ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS (ServeRAID BR10il SAS/SATA Controller v2) - - pci:v00001000d00000057* - ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS - - pci:v00001000d00000057sv00008086sd0000346C* -- ID_MODEL_FROM_DATABASE=Embedded Software RAID Technology II (ESTRII) -+ ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS (Embedded Software RAID Technology II (ESTRII)) - - pci:v00001000d00000058* - ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS - - pci:v00001000d00000058sv00001000sd00003140* -- ID_MODEL_FROM_DATABASE=SAS3081E-R 8-Port SAS/SATA Host Bus Adapter -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS3081E-R 8-Port SAS/SATA Host Bus Adapter) - - pci:v00001000d00000058sv00001028sd0000021D* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Workstations RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Workstations RAID Controller) - - pci:v00001000d00000058sv00001028sd00001F0E* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Adapter RAID Controller) - - pci:v00001000d00000058sv00001028sd00001F0F* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Blades RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Blades RAID Controller) - - pci:v00001000d00000058sv00001028sd00001F10* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated RAID Controller) - - pci:v00001000d00000058sv0000103Csd00003229* -- ID_MODEL_FROM_DATABASE=SC44Ge Host Bus Adapter -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SC44Ge Host Bus Adapter) - - pci:v00001000d00000059* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 8208ELP/8208ELP -@@ -840,97 +840,97 @@ pci:v00001000d0000005B* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] - - pci:v00001000d0000005Bsv00001000sd00009265* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265-8i) - - pci:v00001000d0000005Bsv00001000sd00009266* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-8i) - - pci:v00001000d0000005Bsv00001000sd00009267* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9267-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9267-8i) - - pci:v00001000d0000005Bsv00001000sd00009268* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265CV-8i / 9270CV-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265CV-8i / 9270CV-8i) - - pci:v00001000d0000005Bsv00001000sd00009269* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-4i) - - pci:v00001000d0000005Bsv00001000sd00009270* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-8i) - - pci:v00001000d0000005Bsv00001000sd00009271* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8i) - - pci:v00001000d0000005Bsv00001000sd00009272* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9272-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9272-8i) - - pci:v00001000d0000005Bsv00001000sd00009273* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270CV-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270CV-8i) - - pci:v00001000d0000005Bsv00001000sd00009274* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-4i) - - pci:v00001000d0000005Bsv00001000sd00009275* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8iCC -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8iCC) - - pci:v00001000d0000005Bsv00001000sd00009276* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-4i) - - pci:v00001000d0000005Bsv00001000sd00009285* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285-8e) - - pci:v00001000d0000005Bsv00001000sd00009288* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285CV-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285CV-8e) - - pci:v00001000d0000005Bsv00001000sd00009290* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286-8e) - - pci:v00001000d0000005Bsv00001000sd00009291* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8e) - - pci:v00001000d0000005Bsv00001000sd00009295* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8eCC -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8eCC) - - pci:v00001000d0000005Bsv00001014sd0000040B* -- ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110 SAS/SATA Controller) - - pci:v00001000d0000005Bsv00001014sd0000040C* -- ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5120 SAS/SATA Controller) - - pci:v00001000d0000005Bsv00001014sd00000412* -- ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110e SAS/SATA Controller) - - pci:v00001000d0000005Bsv00001028sd00001F2D* -- ID_MODEL_FROM_DATABASE=PERC H810 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H810 Adapter) - - pci:v00001000d0000005Bsv00001028sd00001F30* -- ID_MODEL_FROM_DATABASE=PERC H710 Embedded -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Embedded) - - pci:v00001000d0000005Bsv00001028sd00001F31* -- ID_MODEL_FROM_DATABASE=PERC H710P Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Adapter) - - pci:v00001000d0000005Bsv00001028sd00001F33* -- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for blades)) - - pci:v00001000d0000005Bsv00001028sd00001F34* -- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for monolithics) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for monolithics)) - - pci:v00001000d0000005Bsv00001028sd00001F35* -- ID_MODEL_FROM_DATABASE=PERC H710 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Adapter) - - pci:v00001000d0000005Bsv00001028sd00001F37* -- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for blades)) - - pci:v00001000d0000005Bsv00001028sd00001F38* -- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for monolithics)) - - pci:v00001000d0000005Bsv000015D9sd00000690* -- ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (LSI MegaRAID ROMB) - - pci:v00001000d0000005Bsv00008086sd00003510* -- ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25PB080 RAID Controller) - - pci:v00001000d0000005Bsv00008086sd00003513* -- ID_MODEL_FROM_DATABASE=RMS25CB080 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25CB080 RAID Controller) - - pci:v00001000d0000005C* - ID_MODEL_FROM_DATABASE=SAS1064A PCI-X Fusion-MPT SAS -@@ -939,31 +939,31 @@ pci:v00001000d0000005D* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] - - pci:v00001000d0000005Dsv00001028sd00001F41* -- ID_MODEL_FROM_DATABASE=PERC H830 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H830 Adapter) - - pci:v00001000d0000005Dsv00001028sd00001F42* -- ID_MODEL_FROM_DATABASE=PERC H730P Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Adapter) - - pci:v00001000d0000005Dsv00001028sd00001F43* -- ID_MODEL_FROM_DATABASE=PERC H730 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Adapter) - - pci:v00001000d0000005Dsv00001028sd00001F47* -- ID_MODEL_FROM_DATABASE=PERC H730P Mini -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini) - - pci:v00001000d0000005Dsv00001028sd00001F48* -- ID_MODEL_FROM_DATABASE=PERC H730P Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini (for blades)) - - pci:v00001000d0000005Dsv00001028sd00001F49* -- ID_MODEL_FROM_DATABASE=PERC H730 Mini -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini) - - pci:v00001000d0000005Dsv00001028sd00001F4A* -- ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) - - pci:v00001000d0000005Dsv000017AAsd00001052* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) - - pci:v00001000d0000005Dsv000017AAsd00001053* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720ix) - - pci:v00001000d0000005E* - ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS -@@ -972,109 +972,109 @@ pci:v00001000d0000005F* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] - - pci:v00001000d0000005Fsv00001028sd00001F44* -- ID_MODEL_FROM_DATABASE=PERC H330 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Adapter) - - pci:v00001000d0000005Fsv00001028sd00001F4B* -- ID_MODEL_FROM_DATABASE=PERC H330 Mini -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini) - - pci:v00001000d0000005Fsv00001028sd00001F4C* -- ID_MODEL_FROM_DATABASE=PERC H330 Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini (for blades)) - - pci:v00001000d0000005Fsv00001028sd00001F4D* -- ID_MODEL_FROM_DATABASE=PERC H330 Embedded (for monolithic) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Embedded (for monolithic)) - - pci:v00001000d00000060* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 - - pci:v00001000d00000060sv00001000sd00001006* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8888ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8888ELP) - - pci:v00001000d00000060sv00001000sd0000100A* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708ELP) - - pci:v00001000d00000060sv00001000sd0000100E* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8884E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8884E) - - pci:v00001000d00000060sv00001000sd0000100F* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708E) - - pci:v00001000d00000060sv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-8ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-8ELP) - - pci:v00001000d00000060sv00001000sd00001011* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-4ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-4ELP) - - pci:v00001000d00000060sv00001000sd00001012* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8704ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8704ELP) - - pci:v00001000d00000060sv00001000sd00001016* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8880EM2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8880EM2) - - pci:v00001000d00000060sv00001014sd00000363* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001014sd00000364* -- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8808E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8808E) - - pci:v00001000d00000060sv00001014sd00000365* -- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8884E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8884E) - - pci:v00001000d00000060sv00001014sd00000379* -- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8880EM2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8880EM2) - - pci:v00001000d00000060sv00001028sd00001F0A* -- ID_MODEL_FROM_DATABASE=PERC 6/E Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/E Adapter RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F0B* -- ID_MODEL_FROM_DATABASE=PERC 6/i Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Adapter RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F0C* -- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F0D* -- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F11* -- ID_MODEL_FROM_DATABASE=CERC 6/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (CERC 6/i Integrated RAID Controller) - - pci:v00001000d00000060sv00001033sd0000835A* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001043sd0000824D* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001170sd0000002F* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001170sd00000036* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv000015D9sd0000C080* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv000017AAsd00006B7C* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv000018A1sd00000003* -- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (LSI MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00008086sd00001006* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EP) - - pci:v00001000d00000060sv00008086sd0000100A* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EV -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EV) - - pci:v00001000d00000060sv00008086sd00001010* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSATA28E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSATA28E) - - pci:v00001000d00000060sv00008086sd000034CC* -- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) - - pci:v00001000d00000060sv00008086sd000034CD* -- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) - - pci:v00001000d00000060sv00008086sd00003505* -- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSASMP2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSASMP2) - - pci:v00001000d00000062* - ID_MODEL_FROM_DATABASE=SAS1078 PCI-Express Fusion-MPT SAS -@@ -1101,100 +1101,100 @@ pci:v00001000d00000072* - ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] - - pci:v00001000d00000072sv00001028sd00001F1C* -- ID_MODEL_FROM_DATABASE=6Gbps SAS HBA Adapter -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (6Gbps SAS HBA Adapter) - - pci:v00001000d00000072sv00001028sd00001F1D* -- ID_MODEL_FROM_DATABASE=PERC H200 Adapter -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Adapter) - - pci:v00001000d00000072sv00001028sd00001F1E* -- ID_MODEL_FROM_DATABASE=PERC H200 Integrated -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Integrated) - - pci:v00001000d00000072sv00001028sd00001F1F* -- ID_MODEL_FROM_DATABASE=PERC H200 Modular -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Modular) - - pci:v00001000d00000072sv00001028sd00001F20* -- ID_MODEL_FROM_DATABASE=PERC H200 Embedded -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Embedded) - - pci:v00001000d00000072sv00001028sd00001F22* -- ID_MODEL_FROM_DATABASE=Internal Tape Adapter -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (Internal Tape Adapter) - - pci:v00001000d00000072sv00008086sd0000350F* -- ID_MODEL_FROM_DATABASE=RMS2LL040 RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (RMS2LL040 RAID Controller) - - pci:v00001000d00000073* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] - - pci:v00001000d00000073sv00001000sd00009240* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-8i) - - pci:v00001000d00000073sv00001000sd00009241* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-4i) - - pci:v00001000d00000073sv00001000sd000092A0* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9220-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9220-8i) - - pci:v00001000d00000073sv00001014sd000003B1* -- ID_MODEL_FROM_DATABASE=ServeRAID M1015 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ServeRAID M1015 SAS/SATA Controller) - - pci:v00001000d00000073sv00001028sd00001F4E* -- ID_MODEL_FROM_DATABASE=PERC H310 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Adapter) - - pci:v00001000d00000073sv00001028sd00001F4F* -- ID_MODEL_FROM_DATABASE=PERC H310 Integrated -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Integrated) - - pci:v00001000d00000073sv00001028sd00001F50* -- ID_MODEL_FROM_DATABASE=PERC H310 Mini Blades -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Blades) - - pci:v00001000d00000073sv00001028sd00001F51* -- ID_MODEL_FROM_DATABASE=PERC H310 Mini Monolithics -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Monolithics) - - pci:v00001000d00000073sv00001028sd00001F52* -- ID_MODEL_FROM_DATABASE=PERC H310 Embedded1 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded1) - - pci:v00001000d00000073sv00001028sd00001F53* -- ID_MODEL_FROM_DATABASE=PERC H310 Embedded2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded2) - - pci:v00001000d00000073sv00001028sd00001F54* -- ID_MODEL_FROM_DATABASE=PERC H310 Reserved -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Reserved) - - pci:v00001000d00000073sv00001054sd00003035* -- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS 9240-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (LSI MegaRAID SAS 9240-8i) - - pci:v00001000d00000073sv00001137sd00000072* -- ID_MODEL_FROM_DATABASE=2004 iMR ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2004 iMR ROMB) - - pci:v00001000d00000073sv00001137sd00000073* -- ID_MODEL_FROM_DATABASE=2008 ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2008 ROMB) - - pci:v00001000d00000073sv00001137sd000000B0* -- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) - - pci:v00001000d00000073sv00001137sd000000B1* -- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) - - pci:v00001000d00000073sv00001137sd000000C2* -- ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Double Wide) - - pci:v00001000d00000073sv00001137sd000000C3* -- ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Single Wide) - - pci:v00001000d00000073sv000015D9sd00000400* -- ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (Supermicro SMC2008-iMR) - - pci:v00001000d00000073sv00001734sd00001177* -- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Ctrl SAS 6G 0/1 (D2607)) - - pci:v00001000d00000073sv000017AAsd00001051* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ThinkServer RAID 510i) - - pci:v00001000d00000073sv00008086sd0000350D* -- ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RMS2AF040 RAID Controller) - - pci:v00001000d00000073sv00008086sd00009240* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC080 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC080) - - pci:v00001000d00000073sv00008086sd00009241* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC040 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC040) - - pci:v00001000d00000074* - ID_MODEL_FROM_DATABASE=SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] -@@ -1209,106 +1209,106 @@ pci:v00001000d00000079* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] - - pci:v00001000d00000079sv00001000sd00009251* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4ix -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4ix) - - pci:v00001000d00000079sv00001000sd00009256* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8ix -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8ix) - - pci:v00001000d00000079sv00001000sd00009260* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4i) - - pci:v00001000d00000079sv00001000sd00009261* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8i) - - pci:v00001000d00000079sv00001000sd00009262* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9262-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9262-8i) - - pci:v00001000d00000079sv00001000sd00009263* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9261-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9261-8i) - - pci:v00001000d00000079sv00001000sd00009264* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9264-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9264-8i) - - pci:v00001000d00000079sv00001000sd00009267* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-4i) - - pci:v00001000d00000079sv00001000sd00009268* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-8i) - - pci:v00001000d00000079sv00001000sd00009275* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8ex -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8ex) - - pci:v00001000d00000079sv00001000sd00009276* -- ID_MODEL_FROM_DATABASE=MR9260-16i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MR9260-16i) - - pci:v00001000d00000079sv00001000sd00009280* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8e) - - pci:v00001000d00000079sv00001000sd00009281* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9281-8E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9281-8E) - - pci:v00001000d00000079sv00001000sd00009282* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-4i4e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-4i4e) - - pci:v00001000d00000079sv00001000sd00009290* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280DE-24i4e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280DE-24i4e) - - pci:v00001000d00000079sv00001014sd000003B2* -- ID_MODEL_FROM_DATABASE=ServeRAID M5015 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5015 SAS/SATA Controller) - - pci:v00001000d00000079sv00001014sd000003B3* -- ID_MODEL_FROM_DATABASE=ServeRAID M5025 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5025 SAS/SATA Controller) - - pci:v00001000d00000079sv00001028sd00001F15* -- ID_MODEL_FROM_DATABASE=PERC H800 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Adapter) - - pci:v00001000d00000079sv00001028sd00001F16* -- ID_MODEL_FROM_DATABASE=PERC H700 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Adapter) - - pci:v00001000d00000079sv00001028sd00001F17* -- ID_MODEL_FROM_DATABASE=PERC H700 Integrated -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) - - pci:v00001000d00000079sv00001028sd00001F18* -- ID_MODEL_FROM_DATABASE=PERC H700 Modular -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Modular) - - pci:v00001000d00000079sv00001028sd00001F1A* -- ID_MODEL_FROM_DATABASE=PERC H800 Proto Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Proto Adapter) - - pci:v00001000d00000079sv00001028sd00001F1B* -- ID_MODEL_FROM_DATABASE=PERC H700 Integrated -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) - - pci:v00001000d00000079sv00001043sd00008480* -- ID_MODEL_FROM_DATABASE=PIKE-2108 16PD -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PIKE-2108 16PD) - - pci:v00001000d00000079sv00001734sd00001176* -- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 5/6 512MB (D2616) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 5/6 512MB (D2616)) - - pci:v00001000d00000079sv00001734sd00001177* -- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 0/1 (D2607)) - - pci:v00001000d00000079sv00008086sd00009256* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260DE-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260DE-8i) - - pci:v00001000d00000079sv00008086sd00009260* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL040 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL040) - - pci:v00001000d00000079sv00008086sd00009261* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL080 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL080) - - pci:v00001000d00000079sv00008086sd00009264* -- ID_MODEL_FROM_DATABASE=Warm Beach (Caster Lite) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (Warm Beach (Caster Lite)) - - pci:v00001000d00000079sv00008086sd00009267* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB040 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB040) - - pci:v00001000d00000079sv00008086sd00009268* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB080 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB080) - - pci:v00001000d0000007C* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE - - pci:v00001000d0000007Csv00001014sd00000395* -- ID_MODEL_FROM_DATABASE=ServeRAID-AR10is SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE (ServeRAID-AR10is SAS/SATA Controller) - - pci:v00001000d0000007E* - ID_MODEL_FROM_DATABASE=SSS6200 PCI-Express Flash SSD -@@ -1338,16 +1338,16 @@ pci:v00001000d00000087* - ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 - - pci:v00001000d00000087sv00001590sd00000044* -- ID_MODEL_FROM_DATABASE=H220i -+ ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 (H220i) - - pci:v00001000d0000008F* - ID_MODEL_FROM_DATABASE=53c875J - - pci:v00001000d0000008Fsv00001092sd00008000* -- ID_MODEL_FROM_DATABASE=FirePort 40 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 SCSI Controller) - - pci:v00001000d0000008Fsv00001092sd00008760* -- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 Dual SCSI Host Adapter) - - pci:v00001000d00000090* - ID_MODEL_FROM_DATABASE=SAS3108 PCI-Express Fusion-MPT SAS-3 -@@ -1368,151 +1368,151 @@ pci:v00001000d00000097* - ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 - - pci:v00001000d00000097sv00001028sd00001F45* -- ID_MODEL_FROM_DATABASE=12GB/s HBA internal -+ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA internal) - - pci:v00001000d00000097sv00001028sd00001F46* -- ID_MODEL_FROM_DATABASE=12GB/s HBA external -+ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA external) - - pci:v00001000d00000407* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00000407sv00001000sd00000530* -- ID_MODEL_FROM_DATABASE=MegaRAID 530 SCSI 320-0X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (530 SCSI 320-0X RAID Controller) - - pci:v00001000d00000407sv00001000sd00000531* -- ID_MODEL_FROM_DATABASE=MegaRAID 531 SCSI 320-4X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (531 SCSI 320-4X RAID Controller) - - pci:v00001000d00000407sv00001000sd00000532* -- ID_MODEL_FROM_DATABASE=MegaRAID 532 SCSI 320-2X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (532 SCSI 320-2X RAID Controller) - - pci:v00001000d00000407sv00001028sd00000531* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00000407sv00001028sd00000533* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00000407sv00008086sd00000530* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCZCRX -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCZCRX) - - pci:v00001000d00000407sv00008086sd00000532* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42X -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42X) - - pci:v00001000d00000408* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00000408sv00001000sd00000001* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-1E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-1E RAID Controller) - - pci:v00001000d00000408sv00001000sd00000002* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-2E RAID Controller) - - pci:v00001000d00000408sv00001025sd0000004D* -- ID_MODEL_FROM_DATABASE=MegaRAID ACER ROMB-2E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (ACER ROMB-2E RAID Controller) - - pci:v00001000d00000408sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/SC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/SC) - - pci:v00001000d00000408sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/DC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/DC) - - pci:v00001000d00000408sv00001028sd00000012* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller RAC4 -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller RAC4) - - pci:v00001000d00000408sv00001028sd00000015* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) - - pci:v00001000d00000408sv00001028sd00001F03* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) - - pci:v00001000d00000408sv00001734sd00001065* -- ID_MODEL_FROM_DATABASE=FSC MegaRAID PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID (FSC MegaRAID PCI Express ROMB) - - pci:v00001000d00000408sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42E -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42E) - - pci:v00001000d00000408sv00008086sd00003449* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SROMBU -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SROMBU) - - pci:v00001000d00000409* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00000409sv00001000sd00003004* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-4X RAID Controller) - - pci:v00001000d00000409sv00001000sd00003008* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-8X RAID Controller) - - pci:v00001000d00000409sv00008086sd00003008* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS28X -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS28X) - - pci:v00001000d00000409sv00008086sd00003431* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Alief SROMBU42E -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Alief SROMBU42E) - - pci:v00001000d00000409sv00008086sd00003499* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Harwich SROMBU42E -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Harwich SROMBU42E) - - pci:v00001000d00000411* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 - - pci:v00001000d00000411sv00001000sd00001001* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8408E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8408E) - - pci:v00001000d00000411sv00001000sd00001002* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8480E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8480E) - - pci:v00001000d00000411sv00001000sd00001003* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8344ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8344ELP) - - pci:v00001000d00000411sv00001000sd00001004* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8308ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8308ELP) - - pci:v00001000d00000411sv00001000sd00001008* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 84016E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 84016E) - - pci:v00001000d00000411sv00001000sd0000100C* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-12E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-12E) - - pci:v00001000d00000411sv00001000sd0000100D* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-16E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-16E) - - pci:v00001000d00000411sv00001000sd00002004* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-8ELP) - - pci:v00001000d00000411sv00001000sd00002005* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-4ELP) - - pci:v00001000d00000411sv00001033sd00008287* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000411sv00001054sd00003016* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS RoMB Server -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS RoMB Server) - - pci:v00001000d00000411sv00001734sd00001081* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000411sv00001734sd000010A3* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000411sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS18E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS18E) - - pci:v00001000d00000411sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS144E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS144E) - - pci:v00001000d00000411sv00008086sd00003500* -- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) - - pci:v00001000d00000411sv00008086sd00003501* -- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) - - pci:v00001000d00000411sv00008086sd00003504* -- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) - - pci:v00001000d00000413* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] - - pci:v00001000d00000413sv00001000sd00001005* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8300XLP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] (MegaRAID SAS 8300XLP) - - pci:v00001000d00000621* - ID_MODEL_FROM_DATABASE=FC909 Fibre Channel Adapter -@@ -1521,7 +1521,7 @@ pci:v00001000d00000622* - ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter - - pci:v00001000d00000622sv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=44929 O Dual Fibre Channel card -+ ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter (44929 O Dual Fibre Channel card) - - pci:v00001000d00000623* - ID_MODEL_FROM_DATABASE=FC929 LAN -@@ -1536,7 +1536,7 @@ pci:v00001000d00000626* - ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter - - pci:v00001000d00000626sv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=7202-XP-LC Dual Fibre Channel card -+ ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter (7202-XP-LC Dual Fibre Channel card) - - pci:v00001000d00000627* - ID_MODEL_FROM_DATABASE=FC929X LAN -@@ -1563,7 +1563,7 @@ pci:v00001000d00000702* - ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet - - pci:v00001000d00000702sv00001318sd00000000* -- ID_MODEL_FROM_DATABASE=PEI100X -+ ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet (PEI100X) - - pci:v00001000d00000804* - ID_MODEL_FROM_DATABASE=SA2010 -@@ -1587,40 +1587,40 @@ pci:v00001000d00001960* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00001960sv00001000sd00000518* -- ID_MODEL_FROM_DATABASE=MegaRAID 518 SCSI 320-2 Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (518 SCSI 320-2 Controller) - - pci:v00001000d00001960sv00001000sd00000520* -- ID_MODEL_FROM_DATABASE=MegaRAID 520 SCSI 320-1 Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (520 SCSI 320-1 Controller) - - pci:v00001000d00001960sv00001000sd00000522* -- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4 133 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4 133 RAID Controller) - - pci:v00001000d00001960sv00001000sd00000523* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-6 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-6 RAID Controller) - - pci:v00001000d00001960sv00001000sd00004523* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-4 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-4 RAID Controller) - - pci:v00001000d00001960sv00001000sd0000A520* -- ID_MODEL_FROM_DATABASE=MegaRAID ZCR SCSI 320-0 Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (ZCR SCSI 320-0 Controller) - - pci:v00001000d00001960sv00001028sd00000518* -- ID_MODEL_FROM_DATABASE=MegaRAID 518 DELL PERC 4/DC RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (518 DELL PERC 4/DC RAID Controller) - - pci:v00001000d00001960sv00001028sd00000520* -- ID_MODEL_FROM_DATABASE=MegaRAID 520 DELL PERC 4/SC RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (520 DELL PERC 4/SC RAID Controller) - - pci:v00001000d00001960sv00001028sd00000531* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00001960sv00001028sd00000533* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00001960sv00008086sd00000520* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCU41L -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCU41L) - - pci:v00001000d00001960sv00008086sd00000523* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS16) - - pci:v00001000d00003050* - ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 -@@ -1710,7 +1710,7 @@ pci:v00001002d00001314* - ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio - - pci:v00001002d00001314sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio (PURE Fusion Mini) - - pci:v00001002d00001315* - ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] -@@ -1737,13 +1737,13 @@ pci:v00001002d00001714* - ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] - - pci:v00001002d00001714sv0000103Csd0000168B* -- ID_MODEL_FROM_DATABASE=ProBook 4535s -+ ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] (ProBook 4535s) - - pci:v00001002d00003150* - ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] - - pci:v00001002d00003150sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=nx8220 -+ ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] (nx8220) - - pci:v00001002d00003151* - ID_MODEL_FROM_DATABASE=RV380 GL [FireMV 2400] -@@ -1791,73 +1791,73 @@ pci:v00001002d00004150* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] - - pci:v00001002d00004150sv00001002sd00000002* -- ID_MODEL_FROM_DATABASE=R9600 Pro primary (Asus OEM for HP) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro primary (Asus OEM for HP)) - - pci:v00001002d00004150sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro secondary (Asus OEM for HP)) - - pci:v00001002d00004150sv00001002sd00004722* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (All-in-Wonder 2006 AGP Edition) - - pci:v00001002d00004150sv00001458sd00004024* -- ID_MODEL_FROM_DATABASE=GV-R96128D -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GV-R96128D) - - pci:v00001002d00004150sv0000148Csd00002064* -- ID_MODEL_FROM_DATABASE=R96A-C3N -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) - - pci:v00001002d00004150sv0000148Csd00002066* -- ID_MODEL_FROM_DATABASE=R96A-C3N -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) - - pci:v00001002d00004150sv0000174Bsd00007C19* -- ID_MODEL_FROM_DATABASE=Atlantis Radeon 9600 Pro -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Atlantis Radeon 9600 Pro) - - pci:v00001002d00004150sv0000174Bsd00007C29* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO) - - pci:v00001002d00004150sv000017EEsd00002002* -- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb Primary -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Radeon 9600 256Mb Primary) - - pci:v00001002d00004150sv000018BCsd00000101* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Primary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO (Primary)) - - pci:v00001002d00004151* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] - - pci:v00001002d00004151sv00001043sd0000C004* -- ID_MODEL_FROM_DATABASE=A9600SE -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] (A9600SE) - - pci:v00001002d00004152* - ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] - - pci:v00001002d00004152sv00001002sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) - - pci:v00001002d00004152sv00001002sd00004772* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (All-in-Wonder 9600 XT) - - pci:v00001002d00004152sv00001043sd0000C002* -- ID_MODEL_FROM_DATABASE=Radeon 9600 XT TVD -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT TVD) - - pci:v00001002d00004152sv00001043sd0000C01A* -- ID_MODEL_FROM_DATABASE=A9600XT/TD -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (A9600XT/TD) - - pci:v00001002d00004152sv00001462sd00009510* -- ID_MODEL_FROM_DATABASE=RX9600XT (MS-8951) -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (RX9600XT (MS-8951)) - - pci:v00001002d00004152sv0000174Bsd00007C29* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) - - pci:v00001002d00004152sv00001787sd00004002* -- ID_MODEL_FROM_DATABASE=Radeon 9600 XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT) - - pci:v00001002d00004153* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] - - pci:v00001002d00004153sv00001043sd0000010C* -- ID_MODEL_FROM_DATABASE=A9550GE/TD -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (A9550GE/TD) - - pci:v00001002d00004153sv00001462sd0000932C* -- ID_MODEL_FROM_DATABASE=RX9550SE-TD128 (MS-8932) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (RX9550SE-TD128 (MS-8932)) - - pci:v00001002d00004154* - ID_MODEL_FROM_DATABASE=RV350 GL [FireGL T2] -@@ -1887,64 +1887,64 @@ pci:v00001002d00004170* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) - - pci:v00001002d00004170sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R9600 Pro secondary (Asus OEM for HP)) - - pci:v00001002d00004170sv00001002sd00004723* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (All-in-Wonder 2006 AGP Edition (Secondary)) - - pci:v00001002d00004170sv00001458sd00004025* -- ID_MODEL_FROM_DATABASE=GV-R96128D (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GV-R96128D (Secondary)) - - pci:v00001002d00004170sv0000148Csd00002067* -- ID_MODEL_FROM_DATABASE=R96A-C3N (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R96A-C3N (Secondary)) - - pci:v00001002d00004170sv0000174Bsd00007C28* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) - - pci:v00001002d00004170sv000017EEsd00002003* -- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (Radeon 9600 256Mb (Secondary)) - - pci:v00001002d00004170sv000018BCsd00000100* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) - - pci:v00001002d00004171* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) - - pci:v00001002d00004171sv00001043sd0000C005* -- ID_MODEL_FROM_DATABASE=A9600SE (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) (A9600SE (Secondary)) - - pci:v00001002d00004172* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) - - pci:v00001002d00004172sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) - - pci:v00001002d00004172sv00001002sd00004773* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (All-in-Wonder 9600 XT (Secondary)) - - pci:v00001002d00004172sv00001043sd0000C003* -- ID_MODEL_FROM_DATABASE=A9600XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT (Secondary)) - - pci:v00001002d00004172sv00001043sd0000C01B* -- ID_MODEL_FROM_DATABASE=A9600XT/TD (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT/TD (Secondary)) - - pci:v00001002d00004172sv0000174Bsd00007C28* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) - - pci:v00001002d00004172sv00001787sd00004003* -- ID_MODEL_FROM_DATABASE=Radeon 9600 XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600 XT (Secondary)) - - pci:v00001002d00004173* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) - - pci:v00001002d00004173sv00001043sd0000010D* -- ID_MODEL_FROM_DATABASE=A9550GE/TD (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) (A9550GE/TD (Secondary)) - - pci:v00001002d00004242* - ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] - - pci:v00001002d00004242sv00001002sd000002AA* -- ID_MODEL_FROM_DATABASE=Radeon 8500 AIW DV Edition -+ ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] (Radeon 8500 AIW DV Edition) - - pci:v00001002d00004243* - ID_MODEL_FROM_DATABASE=R200 PCI Bridge [All-in-Wonder Radeon 8500DV] -@@ -1953,22 +1953,22 @@ pci:v00001002d00004336* - ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] - - pci:v00001002d00004336sv00001002sd00004336* -- ID_MODEL_FROM_DATABASE=Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M) -+ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M)) - - pci:v00001002d00004336sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Video -+ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4400 builtin Video) - - pci:v00001002d00004336sv0000161Fsd00002029* -- ID_MODEL_FROM_DATABASE=eMachines M5312 builtin Video -+ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (eMachines M5312 builtin Video) - - pci:v00001002d00004337* - ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] - - pci:v00001002d00004337sv00001014sd0000053A* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (ThinkPad R40e) - - pci:v00001002d00004337sv0000103Csd00000850* -- ID_MODEL_FROM_DATABASE=Radeon IGP 345M -+ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (Radeon IGP 345M) - - pci:v00001002d00004341* - ID_MODEL_FROM_DATABASE=IXP150 AC'97 Audio Controller -@@ -2013,160 +2013,160 @@ pci:v00001002d00004370* - ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller - - pci:v00001002d00004370sv00001025sd00000079* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5024WLMMi) - - pci:v00001002d00004370sv00001025sd00000091* -- ID_MODEL_FROM_DATABASE=Aspire 5032WXMi -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5032WXMi) - - pci:v00001002d00004370sv0000103Csd00002A05* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004370sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6125) - - pci:v00001002d00004370sv0000105Bsd00000C81* -- ID_MODEL_FROM_DATABASE=Realtek ALC 653 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Realtek ALC 653) - - pci:v00001002d00004370sv0000107Bsd00000300* -- ID_MODEL_FROM_DATABASE=MX6421 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6421) - - pci:v00001002d00004370sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MS-1013 Notebook) - - pci:v00001002d00004371* - ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge - - pci:v00001002d00004371sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (MX6125) - - pci:v00001002d00004371sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (Aspire L250) - - pci:v00001002d00004372* - ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller - - pci:v00001002d00004372sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire 5024WLMMi) - - pci:v00001002d00004372sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004372sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MX6125) - - pci:v00001002d00004372sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MS-1013 Notebook) - - pci:v00001002d00004372sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire L250) - - pci:v00001002d00004373* - ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller - - pci:v00001002d00004373sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire 5024WLMMi) - - pci:v00001002d00004373sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004373sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (MX6125) - - pci:v00001002d00004373sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire L250) - - pci:v00001002d00004374* - ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller - - pci:v00001002d00004374sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004374sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) - - pci:v00001002d00004374sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) - - pci:v00001002d00004375* - ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller - - pci:v00001002d00004375sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire 5024WLMMi) - - pci:v00001002d00004375sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004375sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) - - pci:v00001002d00004375sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) - - pci:v00001002d00004376* - ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller - - pci:v00001002d00004376sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire 5024WLMMi) - - pci:v00001002d00004376sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004376sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MX6125) - - pci:v00001002d00004376sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MS-1013 Notebook) - - pci:v00001002d00004376sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire L250) - - pci:v00001002d00004377* - ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge - - pci:v00001002d00004377sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire 5024WLMi) - - pci:v00001002d00004377sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004377sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (MX6125) - - pci:v00001002d00004377sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire L250) - - pci:v00001002d00004378* - ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller - - pci:v00001002d00004378sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (Aspire 5024WLMMi) - - pci:v00001002d00004378sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MX6125) - - pci:v00001002d00004378sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MS-1013 Notebook) - - pci:v00001002d00004379* - ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller - - pci:v00001002d00004379sv00001462sd00007141* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller (Aspire L250) - - pci:v00001002d0000437A* - ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller - - pci:v00001002d0000437Asv00001002sd00004379* -- ID_MODEL_FROM_DATABASE=4379 Serial ATA Controller -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (4379 Serial ATA Controller) - - pci:v00001002d0000437Asv00001002sd0000437A* -- ID_MODEL_FROM_DATABASE=437A Serial ATA Controller -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (437A Serial ATA Controller) - - pci:v00001002d0000437Asv00001462sd00007141* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Aspire L250) - - pci:v00001002d0000437Asv000014F1sd00008800* -- ID_MODEL_FROM_DATABASE=Leadtek WinFast TV2000XP Expert -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Leadtek WinFast TV2000XP Expert) - - pci:v00001002d0000437B* - ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller -@@ -2175,31 +2175,31 @@ pci:v00001002d0000437Bsv00001002sd0000437B* - ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller - - pci:v00001002d0000437Bsv000010CFsd00001326* -- ID_MODEL_FROM_DATABASE=Fujitsu Lifebook A3040 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Fujitsu Lifebook A3040) - - pci:v00001002d0000437Bsv00001734sd000010B8* -- ID_MODEL_FROM_DATABASE=Realtek High Definition Audio -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Realtek High Definition Audio) - - pci:v00001002d00004380* - ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA - - pci:v00001002d00004380sv0000103Csd00002813* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (DC5750 Microtower) - - pci:v00001002d00004380sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Satellite P305D-S8995E) - - pci:v00001002d00004380sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-MA790FX-DS5 (rev. 1.0) -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (GA-MA790FX-DS5 (rev. 1.0)) - - pci:v00001002d00004380sv00001458sd0000B005* -- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Gigabyte GA-MA69G-S3H Motherboard) - - pci:v00001002d00004380sv00001462sd00007327* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (K9AG Neo2) - - pci:v00001002d00004380sv000017F2sd00005999* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (KI690-AM2 Motherboard) - - pci:v00001002d00004381* - ID_MODEL_FROM_DATABASE=SB600 SATA Controller (RAID 5 mode) -@@ -2211,34 +2211,34 @@ pci:v00001002d00004383* - ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) - - pci:v00001002d00004383sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (A785GM-M) - - pci:v00001002d00004383sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Pavilion DM1Z-3000) - - pci:v00001002d00004383sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (DC5750 Microtower) - - pci:v00001002d00004383sv00001043sd00008230* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M3A78-EH Motherboard) - - pci:v00001002d00004383sv00001043sd0000836C* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A785TD Motherboard) - - pci:v00001002d00004383sv00001043sd00008410* -- ID_MODEL_FROM_DATABASE=M4A89GTD PRO/USB3 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A89GTD PRO/USB3 Motherboard) - - pci:v00001002d00004383sv00001043sd0000841B* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M5A88-V EVO) - - pci:v00001002d00004383sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Satellite P305D-S8995E) - - pci:v00001002d00004383sv00001458sd0000A022* -- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (GA-MA770-DS3rev2.0 Motherboard) - - pci:v00001002d00004383sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (KI690-AM2 Motherboard) - - pci:v00001002d00004384* - ID_MODEL_FROM_DATABASE=SBx00 PCI to PCI Bridge -@@ -2247,160 +2247,160 @@ pci:v00001002d00004385* - ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller - - pci:v00001002d00004385sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (A785GM-M) - - pci:v00001002d00004385sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Pavilion DM1Z-3000) - - pci:v00001002d00004385sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (DC5750 Microtower) - - pci:v00001002d00004385sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M3A78-EH Motherboard) - - pci:v00001002d00004385sv00001043sd00008389* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M4A785TD Motherboard) - - pci:v00001002d00004385sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Satellite P305D-S8995E) - - pci:v00001002d00004385sv00001458sd00004385* -- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (GA-MA770-DS3rev2.0 Motherboard) - - pci:v00001002d00004385sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (K9AG Neo2) - - pci:v00001002d00004385sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (H8DGU) - - pci:v00001002d00004385sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (PURE Fusion Mini) - - pci:v00001002d00004385sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (KI690-AM2 Motherboard) - - pci:v00001002d00004386* - ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) - - pci:v00001002d00004386sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (DC5750 Microtower) - - pci:v00001002d00004386sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (Satellite P305D-S8995E) - - pci:v00001002d00004386sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (K9AG Neo2) - - pci:v00001002d00004386sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (KI690-AM2 Motherboard) - - pci:v00001002d00004387* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) - - pci:v00001002d00004387sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (DC5750 Microtower) - - pci:v00001002d00004387sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (Satellite P305D-S8995E) - - pci:v00001002d00004387sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (K9AG Neo2) - - pci:v00001002d00004387sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (KI690-AM2 Motherboard) - - pci:v00001002d00004388* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) - - pci:v00001002d00004388sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (DC5750 Microtower) - - pci:v00001002d00004388sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (Satellite P305D-S8995E) - - pci:v00001002d00004388sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (K9AG Neo2) - - pci:v00001002d00004388sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (KI690-AM2 Motherboard) - - pci:v00001002d00004389* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) - - pci:v00001002d00004389sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (DC5750 Microtower) - - pci:v00001002d00004389sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (Satellite P305D-S8995E) - - pci:v00001002d00004389sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (K9AG Neo2) - - pci:v00001002d00004389sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (KI690-AM2 Motherboard) - - pci:v00001002d0000438A* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) - - pci:v00001002d0000438Asv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (DC5750 Microtower) - - pci:v00001002d0000438Asv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (Satellite P305D-S8995E) - - pci:v00001002d0000438Asv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (K9AG Neo2) - - pci:v00001002d0000438Asv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (KI690-AM2 Motherboard) - - pci:v00001002d0000438B* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) - - pci:v00001002d0000438Bsv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (DC5750 Microtower) - - pci:v00001002d0000438Bsv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (Satellite P305D-S8995E) - - pci:v00001002d0000438Bsv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (K9AG Neo2) - - pci:v00001002d0000438Bsv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (KI690-AM2 Motherboard) - - pci:v00001002d0000438C* - ID_MODEL_FROM_DATABASE=SB600 IDE - - pci:v00001002d0000438Csv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 IDE (DC5750 Microtower) - - pci:v00001002d0000438Csv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 IDE (Satellite P305D-S8995E) - - pci:v00001002d0000438Csv00001458sd00005002* -- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 IDE (Gigabyte GA-MA69G-S3H Motherboard) - - pci:v00001002d0000438Csv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 IDE (K9AG Neo2) - - pci:v00001002d0000438Csv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 IDE (KI690-AM2 Motherboard) - - pci:v00001002d0000438D* - ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge - - pci:v00001002d0000438Dsv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (DC5750 Microtower) - - pci:v00001002d0000438Dsv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (Satellite P305D-S8995E) - - pci:v00001002d0000438Dsv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (K9AG Neo2) - - pci:v00001002d0000438Dsv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (KI690-AM2 Motherboard) - - pci:v00001002d0000438E* - ID_MODEL_FROM_DATABASE=SB600 AC97 Modem -@@ -2409,31 +2409,31 @@ pci:v00001002d00004390* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] - - pci:v00001002d00004390sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M3A78-EH Motherboard) - - pci:v00001002d00004390sv00001043sd00008389* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M4A785TD Motherboard) - - pci:v00001002d00004390sv00001458sd0000B002* -- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (GA-MA770-DS3rev2.0 Motherboard) - - pci:v00001002d00004390sv00001849sd00004390* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (Motherboard (one of many)) - - pci:v00001002d00004391* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] - - pci:v00001002d00004391sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (Pavilion DM1Z-3000) - - pci:v00001002d00004391sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M3A78-EH Motherboard) - - pci:v00001002d00004391sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M5A88-V EVO) - - pci:v00001002d00004391sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (PURE Fusion Mini) - - pci:v00001002d00004392* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] -@@ -2451,97 +2451,97 @@ pci:v00001002d00004396* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller - - pci:v00001002d00004396sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (A785GM-M) - - pci:v00001002d00004396sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (Pavilion DM1Z-3000) - - pci:v00001002d00004396sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M3A78-EH Motherboard) - - pci:v00001002d00004396sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M5A88-V EVO) - - pci:v00001002d00004396sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (H8DGU) - - pci:v00001002d00004396sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (PURE Fusion Mini) - - pci:v00001002d00004397* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller - - pci:v00001002d00004397sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (A785GM-M) - - pci:v00001002d00004397sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (Pavilion DM1Z-3000) - - pci:v00001002d00004397sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M3A78-EH Motherboard) - - pci:v00001002d00004397sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M5A88-V EVO) - - pci:v00001002d00004397sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (H8DGU) - - pci:v00001002d00004397sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (PURE Fusion Mini) - - pci:v00001002d00004398* - ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller - - pci:v00001002d00004398sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (A785GM-M) - - pci:v00001002d00004398sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (M3A78-EH Motherboard) - - pci:v00001002d00004398sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (H8DGU) - - pci:v00001002d00004399* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller - - pci:v00001002d00004399sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (A785GM-M) - - pci:v00001002d00004399sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M3A78-EH Motherboard) - - pci:v00001002d00004399sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M5A88-V EVO) - - pci:v00001002d00004399sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (PURE Fusion Mini) - - pci:v00001002d0000439C* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller - - pci:v00001002d0000439Csv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (A785GM-M) - - pci:v00001002d0000439Csv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (M3A78-EH Motherboard) - - pci:v00001002d0000439D* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller - - pci:v00001002d0000439Dsv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (A785GM-M) - - pci:v00001002d0000439Dsv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (Pavilion DM1Z-3000) - - pci:v00001002d0000439Dsv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M3A78-EH Motherboard) - - pci:v00001002d0000439Dsv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M5A88-V EVO) - - pci:v00001002d0000439Dsv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (PURE Fusion Mini) - - pci:v00001002d000043A0* - ID_MODEL_FROM_DATABASE=SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) -@@ -2568,88 +2568,88 @@ pci:v00001002d00004742* - ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X - - pci:v00001002d00004742sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00000061* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) - - pci:v00001002d00004742sv00001002sd00000062* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) - - pci:v00001002d00004742sv00001002sd00000063* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) - - pci:v00001002d00004742sv00001002sd00000080* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00004742* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00008001* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001028sd00000082* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001028sd00004082* -- ID_MODEL_FROM_DATABASE=Optiplex GX1 Onboard Display Adapter -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Optiplex GX1 Onboard Display Adapter) - - pci:v00001002d00004742sv00001028sd00008082* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001028sd0000C082* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00008086sd00004152* -- ID_MODEL_FROM_DATABASE=Xpert 98D AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Xpert 98D AGP 2X) - - pci:v00001002d00004742sv00008086sd0000464A* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004744* - ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X - - pci:v00001002d00004744sv00001002sd00004744* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage Pro Turbo AGP) - - pci:v00001002d00004744sv00008086sd00004D55* -- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 1X [Intel MU440EX] -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage 3D Pro AGP 1X [Intel MU440EX]) - - pci:v00001002d00004749* - ID_MODEL_FROM_DATABASE=3D Rage PRO PCI - - pci:v00001002d00004749sv00001002sd00000061* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW -+ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) - - pci:v00001002d00004749sv00001002sd00000062* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW -+ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) - - pci:v00001002d0000474D* - ID_MODEL_FROM_DATABASE=Rage XL AGP 2X - - pci:v00001002d0000474Dsv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) - - pci:v00001002d0000474Dsv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) - - pci:v00001002d0000474Dsv00001002sd00000080* - ID_MODEL_FROM_DATABASE=Rage XL AGP 2X - - pci:v00001002d0000474Dsv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 AGP 2X) - - pci:v00001002d0000474Dsv00001002sd0000474D* -- ID_MODEL_FROM_DATABASE=Rage XL AGP -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) - - pci:v00001002d0000474Dsv00001033sd0000806A* -- ID_MODEL_FROM_DATABASE=Rage XL AGP -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) - - pci:v00001002d0000474E* - ID_MODEL_FROM_DATABASE=Rage XC AGP -@@ -2670,79 +2670,79 @@ pci:v00001002d00004750* - ID_MODEL_FROM_DATABASE=3D Rage Pro PCI - - pci:v00001002d00004750sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00000080* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00004750* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004752* - ID_MODEL_FROM_DATABASE=Rage XL PCI - - pci:v00001002d00004752sv00000E11sd0000001E* -- ID_MODEL_FROM_DATABASE=Proliant Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) - - pci:v00001002d00004752sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) - - pci:v00001002d00004752sv00001002sd00004752* -- ID_MODEL_FROM_DATABASE=Proliant Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) - - pci:v00001002d00004752sv00001002sd00008008* -- ID_MODEL_FROM_DATABASE=Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) - - pci:v00001002d00004752sv00001014sd00000240* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (eServer xSeries server mainboard) - - pci:v00001002d00004752sv00001028sd000000CE* -- ID_MODEL_FROM_DATABASE=PowerEdge 1400 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1400) - - pci:v00001002d00004752sv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=PowerEdge 2550 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2550) - - pci:v00001002d00004752sv00001028sd000000D9* -- ID_MODEL_FROM_DATABASE=PowerEdge 2500 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2500) - - pci:v00001002d00004752sv00001028sd00000134* -- ID_MODEL_FROM_DATABASE=PowerEdge 600SC -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 600SC) - - pci:v00001002d00004752sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1750) - - pci:v00001002d00004752sv00001028sd00000165* -- ID_MODEL_FROM_DATABASE=PowerEdge 750 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 750) - - pci:v00001002d00004752sv0000103Csd000010E1* -- ID_MODEL_FROM_DATABASE=NetServer Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (NetServer Rage XL) - - pci:v00001002d00004752sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (ProLiant DL140 G2) - - pci:v00001002d00004752sv0000107Bsd00006400* -- ID_MODEL_FROM_DATABASE=6400 Server -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (6400 Server) - - pci:v00001002d00004752sv00001734sd0000007A* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard VGA -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PRIMERGY RX/TX series onboard VGA) - - pci:v00001002d00004752sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Primergy Econel 200 D2020 mainboard) - - pci:v00001002d00004752sv00008086sd00003411* -- ID_MODEL_FROM_DATABASE=SDS2 Mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (SDS2 Mainboard) - - pci:v00001002d00004752sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (S875WP1-E mainboard) - - pci:v00001002d00004752sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (S845WD1-E mainboard) - - pci:v00001002d00004753* - ID_MODEL_FROM_DATABASE=Rage XC -@@ -2760,28 +2760,28 @@ pci:v00001002d00004756* - ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] - - pci:v00001002d00004756sv00001002sd00004756* -- ID_MODEL_FROM_DATABASE=Rage IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] (Rage IIC) - - pci:v00001002d00004757* - ID_MODEL_FROM_DATABASE=3D Rage IIC AGP - - pci:v00001002d00004757sv00001002sd00004757* -- ID_MODEL_FROM_DATABASE=Rage IIC AGP -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) - - pci:v00001002d00004757sv00001028sd00000089* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004757sv00001028sd0000008E* -- ID_MODEL_FROM_DATABASE=PowerEdge 1300 onboard video -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (PowerEdge 1300 onboard video) - - pci:v00001002d00004757sv00001028sd00004082* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004757sv00001028sd00008082* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004757sv00001028sd0000C082* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004758* - ID_MODEL_FROM_DATABASE=210888GX [Mach64 GX PCI] -@@ -2793,40 +2793,40 @@ pci:v00001002d0000475A* - ID_MODEL_FROM_DATABASE=3D Rage IIC AGP - - pci:v00001002d0000475Asv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 2x XPERT 98 -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D Pro AGP 2x XPERT 98) - - pci:v00001002d0000475Asv00001002sd00000087* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d0000475Asv00001002sd0000475A* -- ID_MODEL_FROM_DATABASE=Rage IIC AGP -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) - - pci:v00001002d00004966* - ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] - - pci:v00001002d00004966sv000010F1sd00000002* -- ID_MODEL_FROM_DATABASE=RV250 If [Tachyon G9000 PRO] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Tachyon G9000 PRO]) - - pci:v00001002d00004966sv0000148Csd00002039* -- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 Pro "Evil Commando"] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 Pro "Evil Commando"]) - - pci:v00001002d00004966sv00001509sd00009A00* -- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "AT009"] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "AT009"]) - - pci:v00001002d00004966sv00001681sd00000040* -- ID_MODEL_FROM_DATABASE=RV250 If [3D prophet 9000] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [3D prophet 9000]) - - pci:v00001002d00004966sv0000174Bsd00007176* -- ID_MODEL_FROM_DATABASE=Radeon 9000 Pro -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (Radeon 9000 Pro) - - pci:v00001002d00004966sv0000174Bsd00007192* -- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "Atlantis"] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "Atlantis"]) - - pci:v00001002d00004966sv000017AFsd00002005* -- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000 Pro] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000 Pro]) - - pci:v00001002d00004966sv000017AFsd00002006* -- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000]) - - pci:v00001002d0000496E* - ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000] (Secondary) -@@ -2835,7 +2835,7 @@ pci:v00001002d00004A49* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] - - pci:v00001002d00004A49sv0000174Bsd00002620* -- ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GTO AGP] -+ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] (R420 [Radeon X800 GTO AGP]) - - pci:v00001002d00004A4A* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GT AGP] -@@ -2859,7 +2859,7 @@ pci:v00001002d00004A54* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] - - pci:v00001002d00004A54sv00001002sd00004422* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 VE AGP -+ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] (All-In-Wonder X800 VE AGP) - - pci:v00001002d00004A69* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO] (Secondary) -@@ -2898,40 +2898,40 @@ pci:v00001002d00004C42* - ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X - - pci:v00001002d00004C42sv00000E11sd0000B0E7* -- ID_MODEL_FROM_DATABASE=Rage LT Pro (Compaq Presario 5240) -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro (Compaq Presario 5240)) - - pci:v00001002d00004C42sv00000E11sd0000B0E8* -- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) - - pci:v00001002d00004C42sv00000E11sd0000B10E* -- ID_MODEL_FROM_DATABASE=3D Rage LT Pro (Compaq Armada 1750) -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (3D Rage LT Pro (Compaq Armada 1750)) - - pci:v00001002d00004C42sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001002sd00004C42* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001002sd00008001* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001028sd00000085* -- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) - - pci:v00001002d00004C46* - ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 - - pci:v00001002d00004C46sv00001002sd00000155* -- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p -+ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) - - pci:v00001002d00004C46sv00001014sd00000155* -- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p -+ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) - - pci:v00001002d00004C46sv00001028sd000000B1* -- ID_MODEL_FROM_DATABASE=Latitude C600 -+ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (Latitude C600) - - pci:v00001002d00004C47* - ID_MODEL_FROM_DATABASE=3D Rage IIC PCI / Mobility Radeon 7500/7500C -@@ -2940,55 +2940,55 @@ pci:v00001002d00004C49* - ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI - - pci:v00001002d00004C49sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C49sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C49sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C49sv00001002sd00004C49* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C4D* - ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series - - pci:v00001002d00004C4Dsv00000E11sd0000B111* -- ID_MODEL_FROM_DATABASE=Armada M700 -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada M700) - - pci:v00001002d00004C4Dsv00000E11sd0000B160* -- ID_MODEL_FROM_DATABASE=Armada E500 -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada E500) - - pci:v00001002d00004C4Dsv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X (Mobility) -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Xpert 98 AGP 2X (Mobility)) - - pci:v00001002d00004C4Dsv00001014sd00000154* -- ID_MODEL_FROM_DATABASE=ThinkPad A20m/A21m -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (ThinkPad A20m/A21m) - - pci:v00001002d00004C4Dsv00001028sd000000AA* -- ID_MODEL_FROM_DATABASE=Latitude CPt -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPt) - - pci:v00001002d00004C4Dsv00001028sd000000BB* -- ID_MODEL_FROM_DATABASE=Latitude CPx -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPx) - - pci:v00001002d00004C4Dsv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Satellite 1715XCDS laptop -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Satellite 1715XCDS laptop) - - pci:v00001002d00004C4Dsv000013BDsd00001019* -- ID_MODEL_FROM_DATABASE=PC-AR10 -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (PC-AR10) - - pci:v00001002d00004C50* - ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI - - pci:v00001002d00004C50sv00001002sd00004C50* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C52* - ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI - - pci:v00001002d00004C52sv00001033sd00008112* -- ID_MODEL_FROM_DATABASE=Versa Note VXi -+ ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI (Versa Note VXi) - - pci:v00001002d00004C54* - ID_MODEL_FROM_DATABASE=264LT [Mach64 LT] -@@ -2997,22 +2997,22 @@ pci:v00001002d00004C57* - ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] - - pci:v00001002d00004C57sv00001014sd00000517* -- ID_MODEL_FROM_DATABASE=ThinkPad T30 -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) - - pci:v00001002d00004C57sv00001014sd00000530* -- ID_MODEL_FROM_DATABASE=ThinkPad T42 2373-4WU -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) - - pci:v00001002d00004C57sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW (Dell Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) - - pci:v00001002d00004C57sv00001028sd0000012A* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Latitude C640) - - pci:v00001002d00004C57sv00001043sd00001622* -- ID_MODEL_FROM_DATABASE=Mobility Radeon M7 (L3C/S) -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Mobility Radeon M7 (L3C/S)) - - pci:v00001002d00004C57sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW in vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW in vpr Matrix 170B4) - - pci:v00001002d00004C58* - ID_MODEL_FROM_DATABASE=RV200/M7 GL [Mobility FireGL 7800] -@@ -3021,31 +3021,31 @@ pci:v00001002d00004C59* - ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] - - pci:v00001002d00004C59sv00000E11sd0000B111* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Evo N600c) - - pci:v00001002d00004C59sv00001014sd00000235* -- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p (2652/2653) -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad A30/A30p (2652/2653)) - - pci:v00001002d00004C59sv00001014sd00000239* -- ID_MODEL_FROM_DATABASE=ThinkPad X22/X23/X24 -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad X22/X23/X24) - - pci:v00001002d00004C59sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (XE4500 Notebook) - - pci:v00001002d00004C59sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00001002d00004C59sv0000104Dsd00008140* -- ID_MODEL_FROM_DATABASE=PCG-Z1SP laptop -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (PCG-Z1SP laptop) - - pci:v00001002d00004C59sv00001509sd00001930* -- ID_MODEL_FROM_DATABASE=Medion MD9703 -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Medion MD9703) - - pci:v00001002d00004C66* - ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] - - pci:v00001002d00004C66sv00001014sd0000054D* -- ID_MODEL_FROM_DATABASE=ThinkPad T41 -+ ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] (ThinkPad T41) - - pci:v00001002d00004C6E* - ID_MODEL_FROM_DATABASE=RV250/M9 [Mobility Radeon 9000] (Secondary) -@@ -3063,19 +3063,19 @@ pci:v00001002d00004E44* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] - - pci:v00001002d00004E44sv00001002sd0000515E* -- ID_MODEL_FROM_DATABASE=Radeon ES1000 -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) - - pci:v00001002d00004E44sv00001002sd00005965* -- ID_MODEL_FROM_DATABASE=Radeon ES1000 -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) - - pci:v00001002d00004E45* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] - - pci:v00001002d00004E45sv00001002sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Radeon R300 NE [Radeon 9500 Pro]) - - pci:v00001002d00004E45sv00001681sd00000002* -- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro]) - - pci:v00001002d00004E46* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9600 TX] -@@ -3093,7 +3093,7 @@ pci:v00001002d00004E4A* - ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] - - pci:v00001002d00004E4Asv00001002sd00004E4A* -- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] -+ ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] (R360 [Radeon 9800 XT]) - - pci:v00001002d00004E4B* - ID_MODEL_FROM_DATABASE=R350 GL [FireGL X2 AGP Pro] -@@ -3102,22 +3102,22 @@ pci:v00001002d00004E50* - ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] - - pci:v00001002d00004E50sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (TravelMate 290) - - pci:v00001002d00004E50sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC8000 laptop) - - pci:v00001002d00004E50sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC6000 laptop) - - pci:v00001002d00004E50sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P35 notebook -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (P35 notebook) - - pci:v00001002d00004E50sv00001462sd00000311* -- ID_MODEL_FROM_DATABASE=MSI M510A -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (MSI M510A) - - pci:v00001002d00004E50sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420W -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (Amilo M1420W) - - pci:v00001002d00004E51* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] -@@ -3126,7 +3126,7 @@ pci:v00001002d00004E52* - ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] - - pci:v00001002d00004E52sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P35 notebook -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] (P35 notebook) - - pci:v00001002d00004E54* - ID_MODEL_FROM_DATABASE=RV350/M10 GL [Mobility FireGL T2] -@@ -3141,10 +3141,10 @@ pci:v00001002d00004E65* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) - - pci:v00001002d00004E65sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Radeon R300 NE [Radeon 9500 Pro]) - - pci:v00001002d00004E65sv00001681sd00000003* -- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary) -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary)) - - pci:v00001002d00004E66* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) -@@ -3162,10 +3162,10 @@ pci:v00001002d00004E6A* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) - - pci:v00001002d00004E6Asv00001002sd00004E6A* -- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (R360 [Radeon 9800 XT] (Secondary)) - - pci:v00001002d00004E6Asv00001002sd00004E71* -- ID_MODEL_FROM_DATABASE=M10 NQ [Radeon Mobility 9600] -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (M10 NQ [Radeon Mobility 9600]) - - pci:v00001002d00004E71* - ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600] (Secondary) -@@ -3180,46 +3180,46 @@ pci:v00001002d00005044* - ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI - - pci:v00001002d00005044sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) - - pci:v00001002d00005044sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) - - pci:v00001002d00005046* - ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS - - pci:v00001002d00005046sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) - - pci:v00001002d00005046sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005046sv00001002sd00000014* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) - - pci:v00001002d00005046sv00001002sd00000018* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005046sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) - - pci:v00001002d00005046sv00001002sd0000002A* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) - - pci:v00001002d00005046sv00001002sd00000048* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) - - pci:v00001002d00005046sv00001002sd00002000* -- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (VGA device) -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (VGA device)) - - pci:v00001002d00005046sv00001002sd00002001* -- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (Extra device?!) -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (Extra device?!)) - - pci:v00001002d00005050* - ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] - - pci:v00001002d00005050sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 128 -+ ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] (Xpert 128) - - pci:v00001002d00005052* - ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4X TMDS -@@ -3228,79 +3228,79 @@ pci:v00001002d00005144* - ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] - - pci:v00001002d00005144sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon VE) - - pci:v00001002d00005144sv00001002sd00000009* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000000A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000001A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Radeon AIW -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) - - pci:v00001002d00005144sv00001002sd00000038* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd00000039* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000008A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd000000BA* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd00000139* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000028A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd000002AA* -- ID_MODEL_FROM_DATABASE=Radeon AIW -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) - - pci:v00001002d00005144sv00001002sd0000053A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005148* - ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] - - pci:v00001002d00005148sv00001002sd0000010A* -- ID_MODEL_FROM_DATABASE=FireGL 8800 64Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 64Mb) - - pci:v00001002d00005148sv00001002sd00000152* -- ID_MODEL_FROM_DATABASE=FireGL 8800 128Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 128Mb) - - pci:v00001002d00005148sv00001002sd00000162* -- ID_MODEL_FROM_DATABASE=FireGL 8700 32Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 32Mb) - - pci:v00001002d00005148sv00001002sd00000172* -- ID_MODEL_FROM_DATABASE=FireGL 8700 64Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 64Mb) - - pci:v00001002d0000514C* - ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] - - pci:v00001002d0000514Csv00001002sd0000003A* -- ID_MODEL_FROM_DATABASE=Radeon R200 QL [Radeon 8500 LE] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [Radeon 8500 LE]) - - pci:v00001002d0000514Csv00001002sd0000013A* -- ID_MODEL_FROM_DATABASE=Radeon 8500 -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500) - - pci:v00001002d0000514Csv0000148Csd00002026* -- ID_MODEL_FROM_DATABASE=R200 QL [Radeon 8500 Evil Master II Multi Display Edition] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (R200 QL [Radeon 8500 Evil Master II Multi Display Edition]) - - pci:v00001002d0000514Csv00001681sd00000010* -- ID_MODEL_FROM_DATABASE=Radeon 8500 [3D Prophet 8500 128Mb] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 [3D Prophet 8500 128Mb]) - - pci:v00001002d0000514Csv0000174Bsd00007149* -- ID_MODEL_FROM_DATABASE=Radeon 8500 LE -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 LE) - - pci:v00001002d0000514Csv00001787sd00000F08* -- ID_MODEL_FROM_DATABASE=Radeon R200 QL [PowerMagic Radeon 8500] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [PowerMagic Radeon 8500]) - - pci:v00001002d0000514D* - ID_MODEL_FROM_DATABASE=R200 [Radeon 9100] -@@ -3309,196 +3309,196 @@ pci:v00001002d00005157* - ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] - - pci:v00001002d00005157sv00001002sd0000013A* -- ID_MODEL_FROM_DATABASE=Radeon 7500 -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500) - - pci:v00001002d00005157sv00001002sd00000F2B* -- ID_MODEL_FROM_DATABASE=ALL-IN-WONDER VE PCI -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (ALL-IN-WONDER VE PCI) - - pci:v00001002d00005157sv00001002sd0000103A* -- ID_MODEL_FROM_DATABASE=Dell Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Dell Optiplex GX260) - - pci:v00001002d00005157sv00001458sd00004000* -- ID_MODEL_FROM_DATABASE=RV200 QW [RADEON 7500 PRO MAYA AR] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [RADEON 7500 PRO MAYA AR]) - - pci:v00001002d00005157sv0000148Csd00002024* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500LE Dual Display] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500LE Dual Display]) - - pci:v00001002d00005157sv0000148Csd00002025* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 Evil Master Multi Display Edition] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 Evil Master Multi Display Edition]) - - pci:v00001002d00005157sv0000148Csd00002036* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 PCI Dual Display] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 PCI Dual Display]) - - pci:v00001002d00005157sv0000174Bsd00007146* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 LE] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 LE]) - - pci:v00001002d00005157sv0000174Bsd00007147* -- ID_MODEL_FROM_DATABASE=Radeon 7500 LE -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500 LE) - - pci:v00001002d00005157sv0000174Bsd00007161* -- ID_MODEL_FROM_DATABASE=Radeon RV200 QW [Radeon 7500 LE] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon RV200 QW [Radeon 7500 LE]) - - pci:v00001002d00005157sv000017AFsd00000202* -- ID_MODEL_FROM_DATABASE=RV200 QW [Excalibur Radeon 7500LE] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Excalibur Radeon 7500LE]) - - pci:v00001002d00005159* - ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] - - pci:v00001002d00005159sv00001002sd0000000A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd0000000B* -- ID_MODEL_FROM_DATABASE=Radeon 7000 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) - - pci:v00001002d00005159sv00001002sd00000038* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd0000003A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd000000BA* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd0000013A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd00000908* -- ID_MODEL_FROM_DATABASE=XVR-100 (supplied by Sun) -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (XVR-100 (supplied by Sun)) - - pci:v00001002d00005159sv00001014sd0000029A* -- ID_MODEL_FROM_DATABASE=Remote Supervisor Adapter II (RSA2) -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Remote Supervisor Adapter II (RSA2)) - - pci:v00001002d00005159sv00001014sd000002C8* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (eServer xSeries server mainboard) - - pci:v00001002d00005159sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Embedded Radeon 7000/VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 1850 Embedded Radeon 7000/VE) - - pci:v00001002d00005159sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Embedded Radeon 7000-M -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 2850 Embedded Radeon 7000-M) - - pci:v00001002d00005159sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Embedded Radeon 7000/VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 6850 Embedded Radeon 7000/VE) - - pci:v00001002d00005159sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge SC1425) - - pci:v00001002d00005159sv0000103Csd00001292* -- ID_MODEL_FROM_DATABASE=Radeon 7000 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) - - pci:v00001002d00005159sv00001043sd0000C00A* -- ID_MODEL_FROM_DATABASE=A7000/T/64M -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (A7000/T/64M) - - pci:v00001002d00005159sv00001458sd00004002* -- ID_MODEL_FROM_DATABASE=RV100 QY [RADEON 7000 PRO MAYA AV Series] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [RADEON 7000 PRO MAYA AV Series]) - - pci:v00001002d00005159sv0000148Csd00002003* -- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Multi-Display Edition] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Multi-Display Edition]) - - pci:v00001002d00005159sv0000148Csd00002023* -- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Evil Master Multi-Display] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Evil Master Multi-Display]) - - pci:v00001002d00005159sv0000174Bsd00000280* -- ID_MODEL_FROM_DATABASE=Radeon RV100 QY [Radeon 7000/VE] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon RV100 QY [Radeon 7000/VE]) - - pci:v00001002d00005159sv0000174Bsd00007112* -- ID_MODEL_FROM_DATABASE=Radeon VE 7000 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000) - - pci:v00001002d00005159sv0000174Bsd00007C28* -- ID_MODEL_FROM_DATABASE=Radeon VE 7000 DDR -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000 DDR) - - pci:v00001002d00005159sv00001787sd00000202* -- ID_MODEL_FROM_DATABASE=RV100 QY [Excalibur Radeon 7000] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Excalibur Radeon 7000]) - - pci:v00001002d00005159sv000017EEsd00001001* -- ID_MODEL_FROM_DATABASE=Radeon 7000 64MB DDR + DVI -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000 64MB DDR + DVI) - - pci:v00001002d0000515E* - ID_MODEL_FROM_DATABASE=ES1000 - - pci:v00001002d0000515Esv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 1955 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge SC440) - - pci:v00001002d0000515Esv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 860) - - pci:v00001002d0000515Esv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R900 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 2970 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T605 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R300 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T300 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R805 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000223* -- ID_MODEL_FROM_DATABASE=PowerEdge R905 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R905 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T105 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R200 Embedded ATI ES1000) - - pci:v00001002d0000515Esv0000103Csd00001304* -- ID_MODEL_FROM_DATABASE=Integrity iLO2 Advanced KVM VGA [AD307A] -+ ID_MODEL_FROM_DATABASE=ES1000 (Integrity iLO2 Advanced KVM VGA [AD307A]) - - pci:v00001002d0000515Esv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=ES1000 (X7DVL-E-O motherboard) - - pci:v00001002d0000515Esv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=ES1000 (X7DBN Motherboard) - - pci:v00001002d0000515Esv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=ES1000 (S5000PSLSATA Server Board) - - pci:v00001002d00005245* - ID_MODEL_FROM_DATABASE=Rage 128 GL PCI - - pci:v00001002d00005245sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 128 -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Xpert 128) - - pci:v00001002d00005245sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) - - pci:v00001002d00005245sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) - - pci:v00001002d00005245sv00001002sd00000068* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) - - pci:v00001002d00005246* - ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x - - pci:v00001002d00005246sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Magnum/Xpert 128/Xpert 99 -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert 128/Xpert 99) - - pci:v00001002d00005246sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Magnum/Xpert128/X99/Xpert2000 -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert128/X99/Xpert2000) - - pci:v00001002d00005246sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) - - pci:v00001002d00005246sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury/Xpert 128/Xpert 2000) - - pci:v00001002d00005246sv00001002sd00000068* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) - - pci:v00001002d00005246sv00001002sd00000448* -- ID_MODEL_FROM_DATABASE=Rage Fury -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury) - - pci:v00001002d0000524B* - ID_MODEL_FROM_DATABASE=Rage 128 VR PCI -@@ -3507,73 +3507,73 @@ pci:v00001002d0000524C* - ID_MODEL_FROM_DATABASE=Rage 128 VR AGP - - pci:v00001002d0000524Csv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99/Xpert 2000) - - pci:v00001002d0000524Csv00001002sd00000088* -- ID_MODEL_FROM_DATABASE=Xpert 99 -+ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99) - - pci:v00001002d00005346* - ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x - - pci:v00001002d00005346sv00001002sd00000048* -- ID_MODEL_FROM_DATABASE=RAGE 128 16MB VGA TVOUT AMC PAL -+ ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x (RAGE 128 16MB VGA TVOUT AMC PAL) - - pci:v00001002d0000534D* - ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x - - pci:v00001002d0000534Dsv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 99/Xpert 2000) - - pci:v00001002d0000534Dsv00001002sd00000018* -- ID_MODEL_FROM_DATABASE=Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 2000) - - pci:v00001002d00005354* - ID_MODEL_FROM_DATABASE=Mach 64 VT - - pci:v00001002d00005354sv00001002sd00005654* -- ID_MODEL_FROM_DATABASE=Mach 64 reference -+ ID_MODEL_FROM_DATABASE=Mach 64 VT (Mach 64 reference) - - pci:v00001002d00005446* - ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x - - pci:v00001002d00005446sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro) - - pci:v00001002d00005446sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005446sv00001002sd00000018* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005446sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) - - pci:v00001002d00005446sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) - - pci:v00001002d00005446sv00001002sd0000002A* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) - - pci:v00001002d00005446sv00001002sd0000002B* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) - - pci:v00001002d00005446sv00001002sd00000048* -- ID_MODEL_FROM_DATABASE=Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Xpert 2000 Pro) - - pci:v00001002d00005452* - ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP - - pci:v00001002d00005452sv00001002sd0000001C* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) - - pci:v00001002d00005452sv0000103Csd00001279* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) - - pci:v00001002d00005460* - ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] - - pci:v00001002d00005460sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] (CR11/VR11 Single Board Computer) - - pci:v00001002d00005461* - ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] -@@ -3594,16 +3594,16 @@ pci:v00001002d0000554B* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] - - pci:v00001002d0000554Bsv00001002sd00000302* -- ID_MODEL_FROM_DATABASE=Radeon X800 SE -+ ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] (Radeon X800 SE) - - pci:v00001002d0000554D* - ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] - - pci:v00001002d0000554Dsv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 XL -+ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (All-In-Wonder X800 XL) - - pci:v00001002d0000554Dsv00001458sd00002124* -- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) -+ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (GV-R80L256V-B (AGP)) - - pci:v00001002d0000554E* - ID_MODEL_FROM_DATABASE=R430 [All-In-Wonder X800 GT] -@@ -3627,7 +3627,7 @@ pci:v00001002d0000556D* - ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) - - pci:v00001002d0000556Dsv00001458sd00002125* -- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) -+ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) (GV-R80L256V-B (AGP)) - - pci:v00001002d0000556F* - ID_MODEL_FROM_DATABASE=R430 [Radeon X800] (Secondary) -@@ -3648,16 +3648,16 @@ pci:v00001002d00005653* - ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] - - pci:v00001002d00005653sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (Aspire 5024WLMi) - - pci:v00001002d00005653sv0000103Csd00000940* -- ID_MODEL_FROM_DATABASE=HP Compaq NW8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (HP Compaq NW8240 Mobile Workstation) - - pci:v00001002d00005654* - ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] - - pci:v00001002d00005654sv00001002sd00005654* -- ID_MODEL_FROM_DATABASE=Mach64VT Reference -+ ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] (Mach64VT Reference) - - pci:v00001002d00005655* - ID_MODEL_FROM_DATABASE=264VT3 [Mach64 VT3] -@@ -3699,22 +3699,22 @@ pci:v00001002d00005940* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) - - pci:v00001002d00005940sv000017AFsd00002021* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) (Excalibur Radeon 9250 (Secondary)) - - pci:v00001002d00005941* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) - - pci:v00001002d00005941sv00001458sd00004019* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) - - pci:v00001002d00005941sv0000174Bsd00007C12* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) - - pci:v00001002d00005941sv000017AFsd0000200D* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Excalibur Radeon 9200) - - pci:v00001002d00005941sv000018BCsd00000050* -- ID_MODEL_FROM_DATABASE=GC-R9200-C3 (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (GC-R9200-C3 (Secondary)) - - pci:v00001002d00005944* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE PCI] -@@ -3723,22 +3723,22 @@ pci:v00001002d00005950* - ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge - - pci:v00001002d00005950sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire 5024WLMMi) - - pci:v00001002d00005950sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (DC5750 Microtower) - - pci:v00001002d00005950sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Pavilion t3030.de Desktop PC) - - pci:v00001002d00005950sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MX6125) - - pci:v00001002d00005950sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MS-1013 Notebook) - - pci:v00001002d00005950sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire L250) - - pci:v00001002d00005951* - ID_MODEL_FROM_DATABASE=RX480/RX482 Host Bridge -@@ -3750,19 +3750,19 @@ pci:v00001002d00005954* - ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] - - pci:v00001002d00005954sv00001002sd00005954* -- ID_MODEL_FROM_DATABASE=RV370 [Radeon Xpress 200G Series] -+ ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] (RV370 [Radeon Xpress 200G Series]) - - pci:v00001002d00005955* - ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] - - pci:v00001002d00005955sv00001002sd00005955* -- ID_MODEL_FROM_DATABASE=RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)] -+ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]) - - pci:v00001002d00005955sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MX6125) - - pci:v00001002d00005955sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MS-1013 Notebook) - - pci:v00001002d00005956* - ID_MODEL_FROM_DATABASE=RD790 Host Bridge -@@ -3771,7 +3771,7 @@ pci:v00001002d00005957* - ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge - - pci:v00001002d00005957sv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge (A770CrossFire Motherboard) - - pci:v00001002d00005958* - ID_MODEL_FROM_DATABASE=RD780 Host Bridge -@@ -3780,37 +3780,37 @@ pci:v00001002d00005960* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] - - pci:v00001002d00005960sv000017AFsd00002020* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Excalibur Radeon 9250) - - pci:v00001002d00005961* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] - - pci:v00001002d00005961sv00001002sd00002F72* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 9200 Series -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (All-in-Wonder 9200 Series) - - pci:v00001002d00005961sv00001019sd00004C30* -- ID_MODEL_FROM_DATABASE=Radeon 9200 VIVO -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 VIVO) - - pci:v00001002d00005961sv000012ABsd00005961* -- ID_MODEL_FROM_DATABASE=YUAN SMARTVGA Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (YUAN SMARTVGA Radeon 9200) - - pci:v00001002d00005961sv00001458sd00004018* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) - - pci:v00001002d00005961sv0000174Bsd00007C13* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) - - pci:v00001002d00005961sv000017AFsd0000200C* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Excalibur Radeon 9200) - - pci:v00001002d00005961sv000018BCsd00000050* -- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster) - - pci:v00001002d00005961sv000018BCsd00000051* -- ID_MODEL_FROM_DATABASE=GC-R9200-C3 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (GC-R9200-C3) - - pci:v00001002d00005961sv000018BCsd00000053* -- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster VIVO -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster VIVO) - - pci:v00001002d00005962* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] -@@ -3819,37 +3819,37 @@ pci:v00001002d00005964* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] - - pci:v00001002d00005964sv00001002sd00005964* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz) - - pci:v00001002d00005964sv00001043sd0000C006* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE / TD / 128M -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE / TD / 128M) - - pci:v00001002d00005964sv00001458sd00004018* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) - - pci:v00001002d00005964sv00001458sd00004032* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE 128MB) - - pci:v00001002d00005964sv0000147Bsd00006191* -- ID_MODEL_FROM_DATABASE=R9200SE-DT -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (R9200SE-DT) - - pci:v00001002d00005964sv0000148Csd00002073* -- ID_MODEL_FROM_DATABASE=CN-AG92E -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (CN-AG92E) - - pci:v00001002d00005964sv0000174Bsd00007C13* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) - - pci:v00001002d00005964sv00001787sd00005964* -- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Excalibur 9200SE VIVO 128M) - - pci:v00001002d00005964sv000017AFsd00002012* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE Excalibur) - - pci:v00001002d00005964sv000018BCsd00000170* -- ID_MODEL_FROM_DATABASE=Sapphire Radeon 9200 SE 128MB Game Buster -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Sapphire Radeon 9200 SE 128MB Game Buster) - - pci:v00001002d00005964sv000018BCsd00000173* -- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) - - pci:v00001002d00005965* - ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] -@@ -3858,10 +3858,10 @@ pci:v00001002d00005974* - ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] - - pci:v00001002d00005974sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (DC5750 Microtower) - - pci:v00001002d00005974sv00001462sd00007141* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (Aspire L250) - - pci:v00001002d00005975* - ID_MODEL_FROM_DATABASE=RS482M [Mobility Radeon Xpress 200] -@@ -3870,7 +3870,7 @@ pci:v00001002d00005978* - ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) - - pci:v00001002d00005978sv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) (A770CrossFire Motherboard) - - pci:v00001002d00005979* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx0 port B) -@@ -3891,13 +3891,13 @@ pci:v00001002d0000597E* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) - - pci:v00001002d0000597Esv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) (A770CrossFire Motherboard) - - pci:v00001002d0000597F* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) - - pci:v00001002d0000597Fsv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) (A770CrossFire Motherboard) - - pci:v00001002d00005980* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx1 port A) -@@ -3918,7 +3918,7 @@ pci:v00001002d00005A12* - ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part - - pci:v00001002d00005A12sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part (H8DGU) - - pci:v00001002d00005A13* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (external gfx0 port A) -@@ -3939,7 +3939,7 @@ pci:v00001002d00005A18* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) - - pci:v00001002d00005A18sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) (H8DGU) - - pci:v00001002d00005A19* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port E) -@@ -3963,7 +3963,7 @@ pci:v00001002d00005A1F* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) - - pci:v00001002d00005A1Fsv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) (H8DGU) - - pci:v00001002d00005A20* - ID_MODEL_FROM_DATABASE=RD890S PCI Express bridge for GPP2 port 1 -@@ -3996,7 +3996,7 @@ pci:v00001002d00005A3F* - ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] - - pci:v00001002d00005A3Fsv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] (Aspire L250) - - pci:v00001002d00005A41* - ID_MODEL_FROM_DATABASE=RS400 [Radeon Xpress 200] -@@ -4014,25 +4014,25 @@ pci:v00001002d00005B60* - ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] - - pci:v00001002d00005B60sv00001043sd0000002A* -- ID_MODEL_FROM_DATABASE=Extreme AX300SE-X -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300SE-X) - - pci:v00001002d00005B60sv00001043sd0000032E* -- ID_MODEL_FROM_DATABASE=Extreme AX300/TD -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300/TD) - - pci:v00001002d00005B60sv00001458sd00002102* -- ID_MODEL_FROM_DATABASE=GV-RX30S128D (X300SE) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (GV-RX30S128D (X300SE)) - - pci:v00001002d00005B60sv00001462sd00000400* -- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940 REV:200) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940 REV:200)) - - pci:v00001002d00005B60sv00001462sd00000402* -- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940)) - - pci:v00001002d00005B60sv0000174Bsd00000500* -- ID_MODEL_FROM_DATABASE=Radeon X300 (PCIE) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Radeon X300 (PCIE)) - - pci:v00001002d00005B60sv0000196Dsd00001086* -- ID_MODEL_FROM_DATABASE=X300SE HM -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (X300SE HM) - - pci:v00001002d00005B62* - ID_MODEL_FROM_DATABASE=RV370 [Radeon X600/X600 SE] -@@ -4053,13 +4053,13 @@ pci:v00001002d00005B70* - ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] - - pci:v00001002d00005B70sv00001462sd00000403* -- ID_MODEL_FROM_DATABASE=Radeon X300 SE 128MB DDR -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE 128MB DDR) - - pci:v00001002d00005B70sv0000174Bsd00000501* -- ID_MODEL_FROM_DATABASE=Radeon X300 SE -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE) - - pci:v00001002d00005B70sv0000196Dsd00001087* -- ID_MODEL_FROM_DATABASE=Radeon X300 SE HyperMemory -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE HyperMemory) - - pci:v00001002d00005B72* - ID_MODEL_FROM_DATABASE=RV380 [Radeon X300/X550/X1050 Series] (Secondary) -@@ -4080,37 +4080,37 @@ pci:v00001002d00005C63* - ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] - - pci:v00001002d00005C63sv00001002sd00005C63* -- ID_MODEL_FROM_DATABASE=Apple iBook G4 2004 -+ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (Apple iBook G4 2004) - - pci:v00001002d00005C63sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (P30 notebook) - - pci:v00001002d00005D44* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) - - pci:v00001002d00005D44sv00001458sd00004019* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) - - pci:v00001002d00005D44sv00001458sd00004032* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB) - - pci:v00001002d00005D44sv0000147Bsd00006190* -- ID_MODEL_FROM_DATABASE=R9200SE-DT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (R9200SE-DT (Secondary)) - - pci:v00001002d00005D44sv0000174Bsd00007C12* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) - - pci:v00001002d00005D44sv00001787sd00005965* -- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Excalibur 9200SE VIVO 128M (Secondary)) - - pci:v00001002d00005D44sv000017AFsd00002013* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE Excalibur (Secondary)) - - pci:v00001002d00005D44sv000018BCsd00000171* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB Game Buster (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB Game Buster (Secondary)) - - pci:v00001002d00005D44sv000018BCsd00000172* -- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) - - pci:v00001002d00005D45* - ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] (Secondary) -@@ -4140,7 +4140,7 @@ pci:v00001002d00005D52* - ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] - - pci:v00001002d00005D52sv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Primary) -+ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (PowerColor X850XT PCIe (Primary)) - - pci:v00001002d00005D57* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] -@@ -4155,7 +4155,7 @@ pci:v00001002d00005D72* - ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) - - pci:v00001002d00005D72sv00001002sd00000B13* -- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Secondary) -+ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) (PowerColor X850XT PCIe (Secondary)) - - pci:v00001002d00005D77* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] (Secondary) -@@ -4179,13 +4179,13 @@ pci:v00001002d00005E4D* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] - - pci:v00001002d00005E4Dsv0000148Csd00002116* -- ID_MODEL_FROM_DATABASE=Bravo X700 -+ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Bravo X700) - - pci:v00001002d00005E4F* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] - - pci:v00001002d00005E4Fsv00001569sd00001E4F* -- ID_MODEL_FROM_DATABASE=Radeon X550 XT -+ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Radeon X550 XT) - - pci:v00001002d00005E6B* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700 PRO] (Secondary) -@@ -4194,7 +4194,7 @@ pci:v00001002d00005E6D* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) - - pci:v00001002d00005E6Dsv0000148Csd00002117* -- ID_MODEL_FROM_DATABASE=Bravo X700 (Secondary) -+ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) (Bravo X700 (Secondary)) - - pci:v00001002d00005F57* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] -@@ -4206,7 +4206,7 @@ pci:v00001002d00006601* - ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] - - pci:v00001002d00006601sv0000103Csd00002100* -- ID_MODEL_FROM_DATABASE=FirePro M4100 -+ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] (FirePro M4100) - - pci:v00001002d00006602* - ID_MODEL_FROM_DATABASE=Mars -@@ -4230,40 +4230,40 @@ pci:v00001002d00006610* - ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] - - pci:v00001002d00006610sv00001019sd00000030* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001028sd00002120* -- ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) - - pci:v00001002d00006610sv00001028sd00002322* -- ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) - - pci:v00001002d00006610sv00001462sd00002910* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001462sd00002911* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001642sd00003C81* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001642sd00003C91* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006611* - ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] - - pci:v00001002d00006611sv00001028sd0000210B* -- ID_MODEL_FROM_DATABASE=Radeon R5 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R5 240 OEM) - - pci:v00001002d00006611sv0000174Bsd00004248* -- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) - - pci:v00001002d00006611sv0000174Bsd0000A240* -- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) - - pci:v00001002d00006611sv00001B0Asd000090D3* -- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) - - pci:v00001002d00006613* - ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] -@@ -4302,28 +4302,28 @@ pci:v00001002d0000665C* - ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] - - pci:v00001002d0000665Csv00001043sd00000452* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 DirectCU II OC -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 DirectCU II OC) - - pci:v00001002d0000665Csv00001462sd00002930* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 OC -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 OC) - - pci:v00001002d0000665Csv00001462sd00002932* -- ID_MODEL_FROM_DATABASE=Radeon HD 8770 -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 8770) - - pci:v00001002d0000665Csv00001462sd00002934* -- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) - - pci:v00001002d0000665Csv0000148Csd00009260* -- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) - - pci:v00001002d0000665Csv00001682sd00003310* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Black Edition 2 GB -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Black Edition 2 GB) - - pci:v00001002d0000665Csv0000174Bsd0000E253* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Dual-X OC -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Dual-X OC) - - pci:v00001002d0000665Csv00001787sd00002329* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 TurboDuo -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 TurboDuo) - - pci:v00001002d0000665D* - ID_MODEL_FROM_DATABASE=Bonaire [Radeon R7 200 Series] -@@ -4335,7 +4335,7 @@ pci:v00001002d00006663* - ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] - - pci:v00001002d00006663sv00001025sd00000846* -- ID_MODEL_FROM_DATABASE=Radeon HD 8570A -+ ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] (Radeon HD 8570A) - - pci:v00001002d00006664* - ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] -@@ -4377,34 +4377,34 @@ pci:v00001002d00006720* - ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] - - pci:v00001002d00006720sv00001028sd0000048F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv00001028sd00000490* -- ID_MODEL_FROM_DATABASE=Alienware M17x R3 Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Alienware M17x R3 Radeon HD 6970M) - - pci:v00001002d00006720sv00001028sd000004A4* -- ID_MODEL_FROM_DATABASE=FirePro M8900 -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) - - pci:v00001002d00006720sv00001028sd000004BA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv00001028sd0000053F* -- ID_MODEL_FROM_DATABASE=FirePro M8900 -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) - - pci:v00001002d00006720sv0000106Bsd00000B00* -- ID_MODEL_FROM_DATABASE=Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) - - pci:v00001002d00006720sv00001558sd00005102* -- ID_MODEL_FROM_DATABASE=Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) - - pci:v00001002d00006720sv00001558sd00005104* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv00001558sd00007201* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv0000174Bsd0000E188* -- ID_MODEL_FROM_DATABASE=Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) - - pci:v00001002d00006724* - ID_MODEL_FROM_DATABASE=Blackcomb [Mobility Radeon HD 6000 series] -@@ -4416,511 +4416,511 @@ pci:v00001002d00006738* - ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] - - pci:v00001002d00006738sv00001682sd00003103* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Radeon HD 8670) - - pci:v00001002d00006738sv00001787sd0000201A* -- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] -+ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) - - pci:v00001002d00006738sv00001787sd0000201B* -- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] -+ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) - - pci:v00001002d00006739* - ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] - - pci:v00001002d00006739sv00001043sd000003B4* -- ID_MODEL_FROM_DATABASE=EAH6850 [Radeon HD 6850] -+ ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] (EAH6850 [Radeon HD 6850]) - - pci:v00001002d0000673E* - ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] - - pci:v00001002d0000673Esv0000148Csd00007720* -- ID_MODEL_FROM_DATABASE=Radeon HD 7720 OEM -+ ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] (Radeon HD 7720 OEM) - - pci:v00001002d00006740* - ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] - - pci:v00001002d00006740sv00001019sd0000238C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001019sd00002391* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001019sd00002392* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Precision M4600) - - pci:v00001002d00006740sv00001028sd0000053E* -- ID_MODEL_FROM_DATABASE=FirePro M5950 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) - - pci:v00001002d00006740sv0000103Csd00001630* -- ID_MODEL_FROM_DATABASE=FirePro M5950 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) - - pci:v00001002d00006740sv0000103Csd00001631* -- ID_MODEL_FROM_DATABASE=FirePro M5950 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) - - pci:v00001002d00006740sv0000103Csd0000164B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000103Csd0000164E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000103Csd00001657* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00001658* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000165A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000165B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00001688* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00001689* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000168A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000185E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7690M XT -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 7690M XT) - - pci:v00001002d00006740sv0000103Csd00003388* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00003389* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00003582* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000366C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001043sd00001D02* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001043sd00001D12* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000104Dsd00009084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000104Dsd00009085* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B074* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B077* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B088* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv000017AAsd00003982* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006741* - ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] - - pci:v00001002d00006741sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001019sd0000238F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000379* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000037B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000037E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000382* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000384* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000385* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000386* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000387* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000388* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000442* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000451* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000489* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000048B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000048C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000513* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000515* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000516* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000051E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000051F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000520* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000521* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000052A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000555* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000556* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000055D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000055E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000056D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000605* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000619* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001028sd000004C1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004C5* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004CD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004D7* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004D9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd0000052D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000103Csd00001617* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd00001646* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00001647* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd0000164B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd0000164E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd00001688* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00001689* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd0000168A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00001860* -- ID_MODEL_FROM_DATABASE=Radeon HD 7690M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7690M) - - pci:v00001002d00006741sv0000103Csd00003385* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000103Csd00003560* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd0000358D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00003590* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00003593* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd0000366C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00001CD2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002121* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002122* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002123* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002125* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) - - pci:v00001002d00006741sv00001043sd00002127* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) - - pci:v00001002d00006741sv0000104Dsd0000907B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000104Dsd00009080* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000106Bsd000000E2* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", Late 2011] -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (MacBookPro8,2 [Core i7, 15", Late 2011]) - - pci:v00001002d00006741sv00001179sd0000FD63* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001179sd0000FD65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000144Dsd0000C093* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000144Dsd0000C0AC* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000144Dsd0000C0B3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000144Dsd0000C539* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000144Dsd0000C609* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000152Dsd00000914* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv000017AAsd000021E1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv000017AAsd00003970* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv000017AAsd00003976* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001854sd00000907* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006742* - ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] - - pci:v00001002d00006742sv00001002sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00001019sd00002393* -- ID_MODEL_FROM_DATABASE=Radeon HD 6610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6610M) - - pci:v00001002d00006742sv00001043sd00001D82* -- ID_MODEL_FROM_DATABASE=K53SK Laptop Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (K53SK Laptop Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB22* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB23* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB27* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB2A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB2C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB30* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB31* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB32* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB38* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB39* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB3A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB3B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB40* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB41* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB47* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB48* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB49* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB51* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB53* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB81* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB82* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB83* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FC56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FCD4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FCEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001458sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00001462sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv0000148Csd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00001682sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv0000174Bsd00005570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 5570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 5570]) - - pci:v00001002d00006742sv0000174Bsd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv0000174Bsd00007570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 7570]) - - pci:v00001002d00006742sv0000174Bsd00008510* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8510] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8510]) - - pci:v00001002d00006742sv0000174Bsd00008570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8570]) - - pci:v00001002d00006742sv00001787sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv000017AFsd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Radeon HD 6625M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6625M) - - pci:v00001002d00006743* - ID_MODEL_FROM_DATABASE=Whistler [Radeon E6760] -@@ -4935,133 +4935,133 @@ pci:v00001002d00006750* - ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] - - pci:v00001002d00006750sv00001462sd00002670* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6670A) - - pci:v00001002d00006750sv000017AAsd00003079* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) - - pci:v00001002d00006750sv000017AAsd0000307A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006750sv000017AAsd00003087* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) - - pci:v00001002d00006750sv000017AAsd00003618* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006750sv000017AAsd00003623* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006750sv000017AAsd00003627* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006751* - ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] - - pci:v00001002d00006751sv00001028sd00000548* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006751sv00001462sd00002671* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) - - pci:v00001002d00006751sv00001462sd00002672* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) - - pci:v00001002d00006751sv00001462sd00002680* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006751sv00001462sd00002681* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006751sv000017AAsd00003087* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006758* - ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] - - pci:v00001002d00006758sv00001028sd00000B0E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006758sv0000103Csd00006882* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006758sv00001462sd0000250A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv0000148Csd00007670* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv00001545sd00007670* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv00001682sd00003300* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv0000174Bsd00007670* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv0000174Bsd0000E181* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006758sv00001787sd00002309* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006759* - ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] - - pci:v00001002d00006759sv0000103Csd00003130* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001043sd00000403* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001462sd00002500* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001462sd00002509* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv0000148Csd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv00001642sd00003A67* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001682sd00003280* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv00001682sd00003530* -- ID_MODEL_FROM_DATABASE=Radeon HD 8550 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 8550) - - pci:v00001002d00006759sv0000174Bsd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv0000174Bsd0000E142* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv0000174Bsd0000E181* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd0000908F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd00009090* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd00009091* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd00009092* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd0000909E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd000090B5* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv00001B0Asd000090B6* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d0000675B* - ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] -@@ -5073,526 +5073,526 @@ pci:v00001002d0000675F* - ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] - - pci:v00001002d0000675Fsv0000148Csd00006510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) - - pci:v00001002d0000675Fsv0000148Csd00006530* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6530) - - pci:v00001002d0000675Fsv0000148Csd00007510* -- ID_MODEL_FROM_DATABASE=Radeon HD 7510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) - - pci:v00001002d0000675Fsv00001545sd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7570) - - pci:v00001002d0000675Fsv0000174Bsd00006510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) - - pci:v00001002d0000675Fsv0000174Bsd00007510* -- ID_MODEL_FROM_DATABASE=Radeon HD 7510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) - - pci:v00001002d0000675Fsv0000174Bsd00008510* -- ID_MODEL_FROM_DATABASE=Radeon HD 8510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 8510) - - pci:v00001002d0000675Fsv00001787sd00002012* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 2GB GDDR3 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 2GB GDDR3) - - pci:v00001002d0000675Fsv00001787sd00002314* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 1GB DDR2/GDDR3 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 1GB DDR2/GDDR3) - - pci:v00001002d00006760* - ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] - - pci:v00001002d00006760sv00001002sd00000124* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001002sd00000134* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd0000238B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd00002390* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd00009985* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004C1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004C3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004CA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004CB* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004CC* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Vostro 3350) - - pci:v00001002d00006760sv00001028sd000004D1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004D3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004D7* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000502* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000503* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000506* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000507* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd0000051C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001028sd0000051D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv0000103Csd0000161A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000161B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000161E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000161F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001622* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv0000103Csd00001623* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv0000103Csd0000164A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000164D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001651* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001656* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00001658* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00001659* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000165B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000165D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000165F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001661* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001663* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001665* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001667* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001669* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000166B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000166C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000166E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001670* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001672* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000167A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000167B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000167D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000167F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000168C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000168F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001694* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001696* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001698* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000169A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000169C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00001855* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd00001859* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd0000185C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd0000185D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000103Csd0000185F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000103Csd00001863* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd0000355C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000355F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003563* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003565* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003567* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003569* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003581* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003584* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000358C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000358F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003592* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003596* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000366B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003671* -- ID_MODEL_FROM_DATABASE=FirePro M3900 -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (FirePro M3900) - - pci:v00001002d00006760sv0000103Csd00003673* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000100A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000100C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000101B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000101C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000102A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv00001043sd0000102C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000104B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000105D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000106B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000106D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000107D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00001CB2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00001D22* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00001D32* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00002001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00002002* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00002107* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00002108* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00002109* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd000084A0* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd000084E9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00008515* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00008517* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000855A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000104Dsd0000907B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000104Dsd00009084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000104Dsd00009085* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001179sd00000003* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001179sd00000004* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001179sd0000FB22* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB23* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB2C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB31* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB32* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB33* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB38* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB39* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB3A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB40* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB41* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB42* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB47* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB48* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB51* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB53* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB81* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB82* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB83* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FC51* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001179sd0000FC52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FC56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FCD3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FCD4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FCEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FDEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000144Dsd0000B074* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000B084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C095* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C0B3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000144Dsd0000C538* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C581* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C589* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C609* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000144Dsd0000C625* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000144Dsd0000C636* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv00001462sd000010AC* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000152Dsd00000916* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd000021E5* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd00003900* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00003902* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00003969* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd00003970* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00003976* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd0000397B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd0000397D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd00005101* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv000017AAsd00005102* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00005103* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00005106* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv00001854sd00000897* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001854sd00000900* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001854sd00000908* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001854sd00002015* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006761* - ID_MODEL_FROM_DATABASE=Seymour LP [Radeon HD 6430M] -@@ -5619,22 +5619,22 @@ pci:v00001002d00006770* - ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] - - pci:v00001002d00006770sv000017AAsd0000308D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7450A) - - pci:v00001002d00006770sv000017AAsd00003623* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd00003627* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd00003629* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd0000363C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd00003658* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7470A) - - pci:v00001002d00006771* - ID_MODEL_FROM_DATABASE=Caicos XTX [Radeon HD 8490 / R5 235X OEM] -@@ -5646,133 +5646,133 @@ pci:v00001002d00006778* - ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] - - pci:v00001002d00006778sv00001019sd00000024* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) - - pci:v00001002d00006778sv00001019sd00000027* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001028sd00002120* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) - - pci:v00001002d00006778sv00001462sd0000B491* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001462sd0000B492* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001462sd0000B493* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 OEM -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470 OEM) - - pci:v00001002d00006778sv00001642sd00003C65* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001642sd00003C75* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv0000174Bsd00008145* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv0000174Bsd0000E145* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) - - pci:v00001002d00006779* - ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] - - pci:v00001002d00006779sv00001019sd00000016* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001019sd00000017* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001019sd00000018* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001028sd00002120* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000103Csd00002128* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000103Csd00002AEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) - - pci:v00001002d00006779sv00001462sd00002125* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001462sd00002346* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv00001462sd00002490* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001462sd00002494* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001462sd00002496* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000148Csd00007450* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000148Csd00008450* -- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) - - pci:v00001002d00006779sv00001545sd00007470* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7470) - - pci:v00001002d00006779sv00001642sd00003A65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001642sd00003A66* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv00001642sd00003A75* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001642sd00003A76* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv00001682sd00003200* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000174Bsd00007450* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000174Bsd0000E164* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1 GB DDR3 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450 1 GB DDR3) - - pci:v00001002d00006779sv0000174Bsd0000E180* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000174Bsd0000E201* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv000017AFsd00008450* -- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) - - pci:v00001002d00006779sv00001B0Asd00009096* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001B0Asd00009097* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001B0Asd000090A8* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450A) - - pci:v00001002d00006779sv00001B0Asd000090B1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001B0Asd000090B3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) - - pci:v00001002d00006779sv00001B0Asd000090BB* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) - - pci:v00001002d0000677B* - ID_MODEL_FROM_DATABASE=Caicos PRO [Radeon HD 7450] -@@ -5790,25 +5790,25 @@ pci:v00001002d0000678A* - ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] - - pci:v00001002d0000678Asv00001002sd0000030C* -- ID_MODEL_FROM_DATABASE=FirePro W8000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) - - pci:v00001002d0000678Asv00001002sd00000310* -- ID_MODEL_FROM_DATABASE=FirePro S9000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S9000) - - pci:v00001002d0000678Asv00001002sd00000420* -- ID_MODEL_FROM_DATABASE=Radeon Sky 700 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 700) - - pci:v00001002d0000678Asv00001002sd00000422* -- ID_MODEL_FROM_DATABASE=Radeon Sky 900 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 900) - - pci:v00001002d0000678Asv00001002sd00000B0E* -- ID_MODEL_FROM_DATABASE=FirePro S10000 Passive -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000 Passive) - - pci:v00001002d0000678Asv00001002sd00000B2A* -- ID_MODEL_FROM_DATABASE=FirePro S10000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000) - - pci:v00001002d0000678Asv00001028sd0000030C* -- ID_MODEL_FROM_DATABASE=FirePro W8000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) - - pci:v00001002d00006790* - ID_MODEL_FROM_DATABASE=Tahiti -@@ -5823,67 +5823,67 @@ pci:v00001002d00006798* - ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] - - pci:v00001002d00006798sv00001002sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) - - pci:v00001002d00006798sv00001002sd00003001* -- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X]) - - pci:v00001002d00006798sv00001002sd00004000* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970 OEM -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 8970 OEM) - - pci:v00001002d00006798sv00001043sd0000041C* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II) - - pci:v00001002d00006798sv00001043sd00000420* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) - - pci:v00001002d00006798sv00001043sd00000444* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) - - pci:v00001002d00006798sv00001043sd00000448* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) - - pci:v00001002d00006798sv00001043sd0000044A* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970]) - - pci:v00001002d00006798sv00001043sd0000044C* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970 Platinum] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970 Platinum]) - - pci:v00001002d00006798sv00001043sd00003001* -- ID_MODEL_FROM_DATABASE=Tahiti XTL [ROG Matrix R9 280X] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [ROG Matrix R9 280X]) - - pci:v00001002d00006798sv00001043sd00003006* -- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X DirectCU II TOP] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X DirectCU II TOP]) - - pci:v00001002d00006798sv00001043sd00009999* -- ID_MODEL_FROM_DATABASE=ARES II -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (ARES II) - - pci:v00001002d00006798sv00001092sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) - - pci:v00001002d00006798sv00001458sd00002261* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition OC]) - - pci:v00001002d00006798sv00001462sd00002774* -- ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (MSI R7970 TF 3GD5/OC BE) - - pci:v00001002d00006798sv00001682sd00003211* -- ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970 Black Edition) - - pci:v00001002d00006798sv00001682sd00003213* -- ID_MODEL_FROM_DATABASE=HD 7970 Black Edition -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 Black Edition) - - pci:v00001002d00006798sv00001682sd00003214* -- ID_MODEL_FROM_DATABASE=Double D HD 7970 -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970) - - pci:v00001002d00006798sv00001787sd0000201C* -- ID_MODEL_FROM_DATABASE=HD 7970 IceQ X² -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 IceQ X²) - - pci:v00001002d00006798sv00001787sd00002317* -- ID_MODEL_FROM_DATABASE=Radeon HD 7990 -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 7990) - - pci:v00001002d00006798sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) - - pci:v00001002d00006799* - ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] -@@ -5892,28 +5892,28 @@ pci:v00001002d0000679A* - ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] - - pci:v00001002d0000679Asv00001002sd00000B01* -- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) - - pci:v00001002d0000679Asv00001002sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti PRO2 [Radeon HD 7950 Boost] -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Tahiti PRO2 [Radeon HD 7950 Boost]) - - pci:v00001002d0000679Asv00001462sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) - - pci:v00001002d0000679B* - ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] - - pci:v00001002d0000679Bsv00001002sd00000B28* -- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) - - pci:v00001002d0000679Bsv00001002sd00000B2A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7990 -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 7990) - - pci:v00001002d0000679Bsv00001462sd00008036* -- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) - - pci:v00001002d0000679Bsv0000148Csd00008990* -- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) - - pci:v00001002d0000679E* - ID_MODEL_FROM_DATABASE=Tahiti LE [Radeon HD 7870 XT] -@@ -5955,28 +5955,28 @@ pci:v00001002d00006800* - ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] - - pci:v00001002d00006800sv00001002sd00000124* -- ID_MODEL_FROM_DATABASE=Radeon HD 7970M -+ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) - - pci:v00001002d00006800sv00008086sd00002110* -- ID_MODEL_FROM_DATABASE=Radeon HD 7970M -+ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) - - pci:v00001002d00006800sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Radeon HD 7970M -+ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) - - pci:v00001002d00006801* - ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] - - pci:v00001002d00006801sv00001002sd00000124* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970M -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) - - pci:v00001002d00006801sv00001462sd00001117* -- ID_MODEL_FROM_DATABASE=Radeon R9 M290X -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon R9 M290X) - - pci:v00001002d00006801sv00008086sd00002110* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970M -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) - - pci:v00001002d00006801sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970M -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) - - pci:v00001002d00006802* - ID_MODEL_FROM_DATABASE=Wimbledon -@@ -5988,10 +5988,10 @@ pci:v00001002d00006808* - ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] - - pci:v00001002d00006808sv00001002sd00000310* -- ID_MODEL_FROM_DATABASE=FirePro S7000 -+ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (FirePro S7000) - - pci:v00001002d00006808sv00001002sd00000420* -- ID_MODEL_FROM_DATABASE=Radeon Sky 500 -+ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (Radeon Sky 500) - - pci:v00001002d00006809* - ID_MODEL_FROM_DATABASE=Pitcairn LE GL [FirePro W5000] -@@ -6012,37 +6012,37 @@ pci:v00001002d00006818* - ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] - - pci:v00001002d00006818sv00001002sd00000B05* -- ID_MODEL_FROM_DATABASE=Radeon HD 8870 OEM -+ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8870 OEM) - - pci:v00001002d00006818sv0000174Bsd00008B04* -- ID_MODEL_FROM_DATABASE=Radeon HD 8860 -+ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8860) - - pci:v00001002d00006819* - ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] - - pci:v00001002d00006819sv0000174Bsd0000E221* -- ID_MODEL_FROM_DATABASE=Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP -+ ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) - - pci:v00001002d00006820* - ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] - - pci:v00001002d00006820sv0000103Csd00001851* -- ID_MODEL_FROM_DATABASE=Radeon HD 7750M -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) - - pci:v00001002d00006820sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=Radeon R9 M275 -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) - - pci:v00001002d00006821* - ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] - - pci:v00001002d00006821sv00001002sd0000031E* -- ID_MODEL_FROM_DATABASE=FirePro SX4000 -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) - - pci:v00001002d00006821sv00001028sd000005CC* -- ID_MODEL_FROM_DATABASE=FirePro M5100 -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) - - pci:v00001002d00006821sv00001028sd000015CC* -- ID_MODEL_FROM_DATABASE=FirePro M5100 -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) - - pci:v00001002d00006822* - ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] -@@ -6054,7 +6054,7 @@ pci:v00001002d00006825* - ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] - - pci:v00001002d00006825sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Chelsea PRO -+ ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] (Chelsea PRO) - - pci:v00001002d00006826* - ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7700M Series] -@@ -6081,7 +6081,7 @@ pci:v00001002d0000682F* - ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] - - pci:v00001002d0000682Fsv0000103Csd00001851* -- ID_MODEL_FROM_DATABASE=Radeon HD 7750M -+ ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] (Radeon HD 7750M) - - pci:v00001002d00006830* - ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7800M Series] -@@ -6096,16 +6096,16 @@ pci:v00001002d00006837* - ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] - - pci:v00001002d00006837sv00001462sd00002796* -- ID_MODEL_FROM_DATABASE=Radeon HD 8730 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) - - pci:v00001002d00006837sv00001462sd00008092* -- ID_MODEL_FROM_DATABASE=Radeon HD 8730 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) - - pci:v00001002d00006837sv0000148Csd00008730* -- ID_MODEL_FROM_DATABASE=Radeon HD 8730 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) - - pci:v00001002d00006837sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 6570) - - pci:v00001002d00006838* - ID_MODEL_FROM_DATABASE=Cape Verde -@@ -6120,19 +6120,19 @@ pci:v00001002d0000683D* - ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] - - pci:v00001002d0000683Dsv00001002sd00000030* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv00001019sd00000030* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv0000103Csd00006890* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv00001043sd00008760* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv0000174Bsd00008304* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683F* - ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] -@@ -6141,322 +6141,322 @@ pci:v00001002d00006840* - ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] - - pci:v00001002d00006840sv00001025sd0000050E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000050F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000513* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000056D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000059A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000059B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000059E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000696* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000697* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000698* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000699* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000757* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd0000056A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd0000056E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd00000598* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd0000059D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd000005A3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd000005B9* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd000005BB* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000017F1* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7570M) - - pci:v00001002d00006840sv0000103Csd000017F4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv0000103Csd00001813* -- ID_MODEL_FROM_DATABASE=Radeon HD 7590M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7590M) - - pci:v00001002d00006840sv0000103Csd0000182F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001830* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001835* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000183A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000183C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000183E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001840* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001842* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001844* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001848* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000184A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000184C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001895* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001897* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000018A5* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000018A7* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000018F4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd0000100A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd0000104B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd000010DC* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002121* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002122* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002123* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002125* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002127* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB11* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB22* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB23* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB2C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB31* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB32* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB38* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB39* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB3A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB40* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB41* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB47* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB48* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB51* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB53* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB81* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB82* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB83* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FC56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FCD4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FCEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000144Dsd0000C0C5* -- ID_MODEL_FROM_DATABASE=Radeon HD 7690M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7690M) - - pci:v00001002d00006840sv0000144Dsd0000C0CE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000144Dsd0000C0DA* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00003970* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd0000397B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00005101* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00005102* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00005103* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006841* - ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] - - pci:v00001002d00006841sv00001028sd00000561* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001028sd0000056C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001028sd0000057F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv0000103Csd000017F1* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv0000103Csd000017F4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001813* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv0000103Csd0000183A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd0000183C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd0000183E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001840* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001842* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001844* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd0000100A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd0000104B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd000010DC* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd00002134* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv00001179sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv00001179sd0000FB43* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FB91* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FB92* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FB93* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FBA2* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FBA3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv0000144Dsd0000C0C7* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006842* - ID_MODEL_FROM_DATABASE=Thames LE [Radeon HD 7000M Series] -@@ -6471,13 +6471,13 @@ pci:v00001002d00006889* - ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] - - pci:v00001002d00006889sv00001002sd00000301* -- ID_MODEL_FROM_DATABASE=FirePro V7800P -+ ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] (FirePro V7800P) - - pci:v00001002d0000688A* - ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] - - pci:v00001002d0000688Asv00001002sd0000030C* -- ID_MODEL_FROM_DATABASE=FirePro V9800P -+ ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] (FirePro V9800P) - - pci:v00001002d0000688C* - ID_MODEL_FROM_DATABASE=Cypress XT GL [FireStream 9370] -@@ -6489,28 +6489,28 @@ pci:v00001002d00006898* - ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] - - pci:v00001002d00006898sv00001002sd00000B00* -- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Eyefinity⁶ Edition -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Eyefinity⁶ Edition) - - pci:v00001002d00006898sv0000106Bsd000000D0* -- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Mac Edition -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Mac Edition) - - pci:v00001002d00006898sv00001462sd00008032* -- ID_MODEL_FROM_DATABASE=Radeon HD 5870 1 GB GDDR5 -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 1 GB GDDR5) - - pci:v00001002d00006898sv0000174Bsd00006870* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870 1600SP Edition -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 6870 1600SP Edition) - - pci:v00001002d00006899* - ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] - - pci:v00001002d00006899sv00001043sd00000330* -- ID_MODEL_FROM_DATABASE=Radeon HD 5850 -+ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850) - - pci:v00001002d00006899sv0000174Bsd0000237B* -- ID_MODEL_FROM_DATABASE=Radeon HD 5850 X2 -+ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850 X2) - - pci:v00001002d00006899sv0000174Bsd00006850* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850 1440SP Edition -+ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 6850 1440SP Edition) - - pci:v00001002d0000689B* - ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 6800 Series] -@@ -6519,7 +6519,7 @@ pci:v00001002d0000689C* - ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] - - pci:v00001002d0000689Csv00001043sd00000352* -- ID_MODEL_FROM_DATABASE=ARES -+ ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] (ARES) - - pci:v00001002d0000689D* - ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] -@@ -6531,79 +6531,79 @@ pci:v00001002d000068A0* - ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] - - pci:v00001002d000068A0sv00001028sd000012EF* -- ID_MODEL_FROM_DATABASE=FirePro M7820 -+ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) - - pci:v00001002d000068A0sv0000103Csd00001520* -- ID_MODEL_FROM_DATABASE=FirePro M7820 -+ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) - - pci:v00001002d000068A1* - ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] - - pci:v00001002d000068A1sv0000106Bsd000000CC* -- ID_MODEL_FROM_DATABASE=iMac MC511 Mobility Radeon HD 5850 MXM Module -+ ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] (iMac MC511 Mobility Radeon HD 5850 MXM Module) - - pci:v00001002d000068A8* - ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] - - pci:v00001002d000068A8sv00001025sd00000442* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000451* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000513* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000515* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000516* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000525* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000526* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000056D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001028sd0000048F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv00001028sd00000490* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv00001028sd000004B9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv00001028sd000004BA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv0000103Csd0000159B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv0000144Dsd0000C0AD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A9* - ID_MODEL_FROM_DATABASE=Juniper XT [FirePro V5800] -@@ -6612,7 +6612,7 @@ pci:v00001002d000068B8* - ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] - - pci:v00001002d000068B8sv0000106Bsd000000CF* -- ID_MODEL_FROM_DATABASE=MacPro5,1 [Mac Pro 2.8GHz DDR3] -+ ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] (MacPro5,1 [Mac Pro 2.8GHz DDR3]) - - pci:v00001002d000068B9* - ID_MODEL_FROM_DATABASE=Juniper LE [Radeon HD 5670 640SP Edition] -@@ -6624,466 +6624,466 @@ pci:v00001002d000068BE* - ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] - - pci:v00001002d000068BEsv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750 -+ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] (Radeon HD 6750) - - pci:v00001002d000068BF* - ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] - - pci:v00001002d000068BFsv0000174Bsd00006750* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750 -+ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] (Radeon HD 6750) - - pci:v00001002d000068C0* - ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] - - pci:v00001002d000068C0sv00001019sd00002383* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv00001028sd000002A2* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv00001028sd000002FE* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv00001028sd00000419* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv0000103Csd0000147D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv0000103Csd00001521* -- ID_MODEL_FROM_DATABASE=Madison XT [FirePro M5800] -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Madison XT [FirePro M5800]) - - pci:v00001002d000068C0sv0000103Csd00001593* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) - - pci:v00001002d000068C0sv0000103Csd00001596* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) - - pci:v00001002d000068C0sv0000103Csd00001599* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) - - pci:v00001002d000068C0sv00001043sd00001C22* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv000017AAsd00003927* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv000017AAsd00003952* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv000017AAsd00003978* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Radeon HD 6570M) - - pci:v00001002d000068C1* - ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] - - pci:v00001002d000068C1sv00001025sd00000205* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000293* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000294* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000296* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000308* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000030A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000311* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000312* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000031C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000031D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000033D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000033E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000033F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000346* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Aspire 7740G) - - pci:v00001002d000068C1sv00001025sd00000348* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000356* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000357* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000358* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000359* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000360* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000362* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000364* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000365* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000366* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000367* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000368* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000372* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000373* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000377* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000378* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000379* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000382* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000383* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000384* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000385* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000386* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000387* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000388* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000038B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000038C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000039A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000411* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000412* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000418* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000419* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000420* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000421* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000425* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000042A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000042E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000042F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000432* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000433* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000442* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000044C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000044E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000451* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000454* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000455* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000475* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000476* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000487* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000489* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000498* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000517* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd00000525* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd00000526* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000052B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000052C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd00000607* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001028sd0000041B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000447* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000448* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000456* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000457* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001436* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001437* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001440* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001448* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001449* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000144A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000144B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000147B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000149C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000149E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001521* -- ID_MODEL_FROM_DATABASE=Madison Pro [FirePro M5800] -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Madison Pro [FirePro M5800]) - - pci:v00001002d000068C1sv00001043sd00001BC2* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000104Dsd00009071* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000104Dsd00009077* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD00* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD12* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD1A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD30* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD31* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD50* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD52* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv00001179sd0000FD63* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv00001179sd0000FD65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv00001179sd0000FDD0* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FDD2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv0000144Dsd0000C07E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000144Dsd0000C085* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000014C0sd00000043* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000014C0sd0000004D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000017AAsd00003928* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000017AAsd00003951* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C7* - ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] - - pci:v00001002d000068C7sv00001462sd00002241* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) - - pci:v00001002d000068C7sv00001462sd00002243* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) - - pci:v00001002d000068C7sv00001462sd00002244* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) - - pci:v00001002d000068C7sv00001462sd00002245* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550A -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) - - pci:v00001002d000068C7sv00001462sd00002246* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550A -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) - - pci:v00001002d000068C8* - ID_MODEL_FROM_DATABASE=Redwood XT GL [FirePro V4800] -@@ -7095,115 +7095,115 @@ pci:v00001002d000068D8* - ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] - - pci:v00001002d000068D8sv00001028sd000068E0* -- ID_MODEL_FROM_DATABASE=Radeon HD 5670 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) - - pci:v00001002d000068D8sv0000174Bsd00005690* -- ID_MODEL_FROM_DATABASE=Radeon HD 5690 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) - - pci:v00001002d000068D8sv0000174Bsd00005730* -- ID_MODEL_FROM_DATABASE=Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) - - pci:v00001002d000068D8sv0000174Bsd0000E151* -- ID_MODEL_FROM_DATABASE=Radeon HD 5670 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) - - pci:v00001002d000068D8sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) - - pci:v00001002d000068D8sv000017AFsd00003010* -- ID_MODEL_FROM_DATABASE=Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) - - pci:v00001002d000068D8sv000017AFsd00003011* -- ID_MODEL_FROM_DATABASE=Radeon HD 5690 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) - - pci:v00001002d000068D9* - ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] - - pci:v00001002d000068D9sv0000103Csd00006870* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv0000103Csd00006872* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001043sd000003CE* -- ID_MODEL_FROM_DATABASE=Radeon HD 5550 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) - - pci:v00001002d000068D9sv00001462sd00002151* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001462sd00002240* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6610 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) - - pci:v00001002d000068D9sv00001545sd00005550* -- ID_MODEL_FROM_DATABASE=Radeon HD 5550 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) - - pci:v00001002d000068D9sv00001545sd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 7570) - - pci:v00001002d000068D9sv00001642sd00003985* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001642sd00003996* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv0000174Bsd00006510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv0000174Bsd00006610* -- ID_MODEL_FROM_DATABASE=Radeon HD 6610 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) - - pci:v00001002d000068D9sv0000174Bsd0000E142* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv000017AFsd00003010* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5630) - - pci:v00001002d000068DA* - ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] - - pci:v00001002d000068DAsv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6390 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) - - pci:v00001002d000068DAsv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) - - pci:v00001002d000068DAsv00001545sd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 7570) - - pci:v00001002d000068DAsv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6390 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) - - pci:v00001002d000068DAsv0000174Bsd00005570* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5570) - - pci:v00001002d000068DAsv0000174Bsd00005630* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) - - pci:v00001002d000068DAsv0000174Bsd00006490* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) - - pci:v00001002d000068DAsv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) - - pci:v00001002d000068DAsv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6390 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) - - pci:v00001002d000068DAsv000017AFsd00003010* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) - - pci:v00001002d000068DE* - ID_MODEL_FROM_DATABASE=Redwood -@@ -7212,349 +7212,349 @@ pci:v00001002d000068E0* - ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] - - pci:v00001002d000068E0sv00001028sd00000404* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv00001028sd00000414* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv00001028sd00000434* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001433* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001434* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001469* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd0000146B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001486* -- ID_MODEL_FROM_DATABASE=TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450) -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450)) - - pci:v00001002d000068E0sv0000103Csd00001622* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001623* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd0000EEEE* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000104Dsd00009076* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv00001682sd0000304E* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E0sv00001682sd00006000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E0sv000017AAsd00009E52* -- ID_MODEL_FROM_DATABASE=FirePro M3800 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) - - pci:v00001002d000068E0sv000017AAsd00009E53* -- ID_MODEL_FROM_DATABASE=FirePro M3800 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) - - pci:v00001002d000068E1* - ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] - - pci:v00001002d000068E1sv00001043sd0000041F* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv00001043sd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) - - pci:v00001002d000068E1sv0000148Csd00003002* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6250] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6250]) - - pci:v00001002d000068E1sv0000148Csd00003003* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) - - pci:v00001002d000068E1sv0000148Csd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv0000148Csd00008350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350]) - - pci:v00001002d000068E1sv00001545sd00005450* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv00001682sd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv00001682sd00006000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv00001682sd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000174Bsd00005470* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5470] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5470]) - - pci:v00001002d000068E1sv0000174Bsd00006000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000174Bsd00006230* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) - - pci:v00001002d000068E1sv0000174Bsd00006350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) - - pci:v00001002d000068E1sv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv000017AFsd00003001* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) - - pci:v00001002d000068E1sv000017AFsd00003014* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) - - pci:v00001002d000068E1sv000017AFsd00003015* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv000017AFsd00008350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350 OEM] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350 OEM]) - - pci:v00001002d000068E4* - ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] - - pci:v00001002d000068E4sv00001019sd00002386* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) - - pci:v00001002d000068E4sv00001019sd00002387* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) - - pci:v00001002d000068E4sv00001019sd0000238D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd00000382* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd00000489* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd0000048A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd0000048B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd0000048C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004C1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004CA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004CC* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004CD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004D7* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001411* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001421* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001426* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001428* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000142A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000142B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000143A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000143C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001445* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001639* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001641* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001643* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00003578* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000357A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00003673* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00003675* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001043sd00001C92* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001043sd000084A1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001043sd000084AD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 7350]) - - pci:v00001002d000068E4sv00001558sd00004510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001558sd00005505* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000174Bsd00005450* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 5450]) - - pci:v00001002d000068E4sv000017AAsd000021DD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv000017AAsd000021E9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv000017AAsd00003971* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv000017AAsd00003972* -- ID_MODEL_FROM_DATABASE=Radeon HD 7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) - - pci:v00001002d000068E4sv000017AAsd0000397A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) - - pci:v00001002d000068E4sv000017AAsd0000397B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) - - pci:v00001002d000068E4sv000017AAsd0000397F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) - - pci:v00001002d000068E5* - ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] - - pci:v00001002d000068E5sv00001179sd0000FD3C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD50* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD52* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD63* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD73* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD75* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDD0* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDD2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDEA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDF8* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv0000148Csd00005450* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 5450]) - - pci:v00001002d000068E5sv0000148Csd00006350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 6350]) - - pci:v00001002d000068E5sv0000148Csd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) - - pci:v00001002d000068E5sv0000148Csd00008350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 8350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 8350]) - - pci:v00001002d000068E5sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) - - pci:v00001002d000068E8* - ID_MODEL_FROM_DATABASE=Cedar -@@ -7575,259 +7575,259 @@ pci:v00001002d000068F9* - ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] - - pci:v00001002d000068F9sv00001019sd00000001* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001019sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001019sd00000019* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001025sd00000518* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001025sd00000519* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (XPS 8300) - - pci:v00001002d000068F9sv00001028sd00002126* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000103Csd00002126* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000103Csd00002AAC* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000103Csd00002AAE* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000103Csd00003580* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001043sd00000386* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001043sd000003C2* -- ID_MODEL_FROM_DATABASE=EAH5450 SILENT/DI/512MD2 (LP) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (EAH5450 SILENT/DI/512MD2 (LP)) - - pci:v00001002d000068F9sv00001462sd00002130* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002131* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002133* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001462sd00002180* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002181* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002182* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001462sd00002183* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001462sd00002230* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002231* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002495* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 5530/6250 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530/6250) - - pci:v00001002d000068F9sv0000148Csd00003002* -- ID_MODEL_FROM_DATABASE=Radeon HD 6290 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) - - pci:v00001002d000068F9sv0000148Csd00003003* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv0000148Csd00003004* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000148Csd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv0000148Csd00008350* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) - - pci:v00001002d000068F9sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv00001642sd00003983* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001642sd00003984* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001642sd00003987* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001642sd00003997* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001642sd00003A05* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001642sd00003B31* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350A -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350A) - - pci:v00001002d000068F9sv00001682sd00003270* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv0000174Bsd00003987* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000174Bsd00005470* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv0000174Bsd00005490* -- ID_MODEL_FROM_DATABASE=Radeon HD 5490 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) - - pci:v00001002d000068F9sv0000174Bsd00005530* -- ID_MODEL_FROM_DATABASE=Radeon HD 5530 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) - - pci:v00001002d000068F9sv0000174Bsd00006230* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv0000174Bsd00006250* -- ID_MODEL_FROM_DATABASE=Radeon HD 6250 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) - - pci:v00001002d000068F9sv0000174Bsd00006290* -- ID_MODEL_FROM_DATABASE=Radeon HD 6290 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) - - pci:v00001002d000068F9sv0000174Bsd00006350* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv0000174Bsd00008350* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) - - pci:v00001002d000068F9sv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000174Bsd0000E145* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv00001787sd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 5530 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) - - pci:v00001002d000068F9sv00001787sd00003002* -- ID_MODEL_FROM_DATABASE=Radeon HD 5490 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) - - pci:v00001002d000068F9sv000017AAsd00003602* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AAsd00003603* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AAsd0000360F* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AAsd00003619* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6250 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) - - pci:v00001002d000068F9sv000017AFsd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv000017AFsd00003002* -- ID_MODEL_FROM_DATABASE=Radeon HD 6290 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) - - pci:v00001002d000068F9sv000017AFsd00003011* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv000017AFsd00003012* -- ID_MODEL_FROM_DATABASE=Radeon HD 5490 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) - - pci:v00001002d000068F9sv000017AFsd00003013* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv000017AFsd00003014* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068FA* - ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] - - pci:v00001002d000068FAsv00001019sd00000019* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000021* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000022* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000026* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000103Csd00002ADF* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350A -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) - - pci:v00001002d000068FAsv0000103Csd00002AE8* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350A -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) - - pci:v00001002d000068FAsv00001043sd00008350* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) - - pci:v00001002d000068FAsv00001462sd00002128* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002184* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002186* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002495* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd0000B490* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001642sd00003985* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd00008153* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E180* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv000017AFsd00003015* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE -@@ -7863,16 +7863,16 @@ pci:v00001002d00007109* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] - - pci:v00001002d00007109sv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-in-Wonder X1800XL -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (All-in-Wonder X1800XL) - - pci:v00001002d00007109sv00001002sd00000D02* -- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (Radeon X1800 CrossFire Edition) - - pci:v00001002d0000710A* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] - - pci:v00001002d0000710Asv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=Radeon X1800 GTO² -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] (Radeon X1800 GTO²) - - pci:v00001002d0000710B* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] -@@ -7887,10 +7887,10 @@ pci:v00001002d00007129* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) - - pci:v00001002d00007129sv00001002sd00000323* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X1800 XL (Secondary) -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (All-In-Wonder X1800 XL (Secondary)) - - pci:v00001002d00007129sv00001002sd00000D03* -- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (Radeon X1800 CrossFire Edition (Secondary)) - - pci:v00001002d00007140* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550/X1600 Series] -@@ -7899,10 +7899,10 @@ pci:v00001002d00007142* - ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] - - pci:v00001002d00007142sv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition -+ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (All-in-Wonder 2006 PCI-E Edition) - - pci:v00001002d00007142sv00001043sd00000142* -- ID_MODEL_FROM_DATABASE=EAX1300PRO/TD/256M -+ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (EAX1300PRO/TD/256M) - - pci:v00001002d00007143* - ID_MODEL_FROM_DATABASE=RV505 [Radeon X1300/X1550 Series] -@@ -7911,16 +7911,16 @@ pci:v00001002d00007145* - ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] - - pci:v00001002d00007145sv000017AAsd00002006* -- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 -+ ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] (Thinkpad T60 model 2007) - - pci:v00001002d00007146* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] - - pci:v00001002d00007146sv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (All-in-Wonder 2006 PCI-E Edition) - - pci:v00001002d00007146sv00001545sd00001996* -- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (Radeon X1300 512MB PCI-e) - - pci:v00001002d00007147* - ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 64-bit] -@@ -7944,7 +7944,7 @@ pci:v00001002d00007162* - ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) - - pci:v00001002d00007162sv00001002sd00000323* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) - - pci:v00001002d00007163* - ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 Series] (Secondary) -@@ -7953,10 +7953,10 @@ pci:v00001002d00007166* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) - - pci:v00001002d00007166sv00001002sd00000323* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) - - pci:v00001002d00007166sv00001545sd00001997* -- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e (Secondary) -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (Radeon X1300 512MB PCI-e (Secondary)) - - pci:v00001002d00007167* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1550 64-bit] (Secondary) -@@ -7983,7 +7983,7 @@ pci:v00001002d00007188* - ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] - - pci:v00001002d00007188sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=6910p -+ ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] (6910p) - - pci:v00001002d0000718A* - ID_MODEL_FROM_DATABASE=RV516/M64 [Mobility Radeon X2300] -@@ -8028,16 +8028,16 @@ pci:v00001002d000071C0* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] - - pci:v00001002d000071C0sv00001002sd0000E160* -- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO -+ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) - - pci:v00001002d000071C0sv0000174Bsd0000E160* -- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO -+ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) - - pci:v00001002d000071C1* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] - - pci:v00001002d000071C1sv0000174Bsd00000880* -- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Radeon X1700 FSC) - - pci:v00001002d000071C2* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 PRO] -@@ -8046,22 +8046,22 @@ pci:v00001002d000071C4* - ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] - - pci:v00001002d000071C4sv000017AAsd00002007* -- ID_MODEL_FROM_DATABASE=ThinkPad T60p -+ ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] (ThinkPad T60p) - - pci:v00001002d000071C5* - ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] - - pci:v00001002d000071C5sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq nx9420 Notebook) - - pci:v00001002d000071C5sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq NW8440 -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq NW8440) - - pci:v00001002d000071C5sv00001043sd000010B2* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (A6J-Q008) - - pci:v00001002d000071C5sv0000106Bsd00000080* -- ID_MODEL_FROM_DATABASE=MacBook Pro -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (MacBook Pro) - - pci:v00001002d000071C6* - ID_MODEL_FROM_DATABASE=RV530LE [Radeon X1600/X1650 PRO] -@@ -8070,7 +8070,7 @@ pci:v00001002d000071C7* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] - - pci:v00001002d000071C7sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=PowerColor X1650 PRO AGP -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (PowerColor X1650 PRO AGP) - - pci:v00001002d000071CE* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1300 XT/X1600 PRO] -@@ -8094,13 +8094,13 @@ pci:v00001002d000071E0* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) - - pci:v00001002d000071E0sv0000174Bsd0000E161* -- ID_MODEL_FROM_DATABASE=Radeon X1600 GTO (Secondary) -+ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) (Radeon X1600 GTO (Secondary)) - - pci:v00001002d000071E1* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) - - pci:v00001002d000071E1sv0000174Bsd00000881* -- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC (Secondary) -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1700 FSC (Secondary)) - - pci:v00001002d000071E2* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) -@@ -8112,7 +8112,7 @@ pci:v00001002d000071E7* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) - - pci:v00001002d000071E7sv00001787sd00003001* -- ID_MODEL_FROM_DATABASE=Radeon X1650 PRO AGP -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1650 PRO AGP) - - pci:v00001002d000071F2* - ID_MODEL_FROM_DATABASE=RV530 GL [FireGL V3400] (Secondary) -@@ -8127,7 +8127,7 @@ pci:v00001002d00007240* - ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] - - pci:v00001002d00007240sv00001002sd00000D02* -- ID_MODEL_FROM_DATABASE=Radeon X1950 CrossFire Edition -+ ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] (Radeon X1950 CrossFire Edition) - - pci:v00001002d00007244* - ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XT] -@@ -8139,25 +8139,25 @@ pci:v00001002d00007249* - ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] - - pci:v00001002d00007249sv00001002sd00000412* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X1900 -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (All-In-Wonder X1900) - - pci:v00001002d00007249sv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=Radeon X1900 XT/XTX -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XT/XTX) - - pci:v00001002d00007249sv00001002sd00000D02* -- ID_MODEL_FROM_DATABASE=Radeon X1900 CrossFire Edition -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 CrossFire Edition) - - pci:v00001002d00007249sv00001043sd00000160* -- ID_MODEL_FROM_DATABASE=Radeon X1900 XTX 512 MB GDDR3 -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XTX 512 MB GDDR3) - - pci:v00001002d0000724B* - ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] - - pci:v00001002d0000724Bsv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=Radeon X1900 (Primary) -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Primary)) - - pci:v00001002d0000724Bsv00001002sd00000B13* -- ID_MODEL_FROM_DATABASE=Radeon X1900 (Secondary) -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Secondary)) - - pci:v00001002d0000724E* - ID_MODEL_FROM_DATABASE=R580 GL [FireGL V7350] -@@ -8181,7 +8181,7 @@ pci:v00001002d00007291* - ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] - - pci:v00001002d00007291sv00001462sd00000810* -- ID_MODEL_FROM_DATABASE=Radeon X1700 SE -+ ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] (Radeon X1700 SE) - - pci:v00001002d00007293* - ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 GT] -@@ -8214,10 +8214,10 @@ pci:v00001002d00007910* - ID_MODEL_FROM_DATABASE=RS690 Host Bridge - - pci:v00001002d00007910sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (Satellite P305D-S8995E) - - pci:v00001002d00007910sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (KI690-AM2 Motherboard) - - pci:v00001002d00007911* - ID_MODEL_FROM_DATABASE=RS690 Host Bridge -@@ -8238,31 +8238,31 @@ pci:v00001002d00007917* - ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) - - pci:v00001002d00007917sv00001002sd00007910* -- ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge -+ ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) (RS690 PCI to PCI Bridge) - - pci:v00001002d00007919* - ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] - - pci:v00001002d00007919sv00001179sd00007919* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (Satellite P305D-S8995E) - - pci:v00001002d00007919sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (KI690-AM2 Motherboard) - - pci:v00001002d0000791E* - ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] - - pci:v00001002d0000791Esv00001462sd00007327* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (K9AG Neo2) - - pci:v00001002d0000791Esv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (KI690-AM2 Motherboard) - - pci:v00001002d0000791F* - ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] - - pci:v00001002d0000791Fsv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] (Satellite P305D-S8995E) - - pci:v00001002d00007930* - ID_MODEL_FROM_DATABASE=RS600 Host Bridge -@@ -8301,13 +8301,13 @@ pci:v00001002d00009400* - ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] - - pci:v00001002d00009400sv00001002sd00002552* -- ID_MODEL_FROM_DATABASE=Radeon HD 2900 XT -+ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 XT) - - pci:v00001002d00009400sv00001002sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 2900 PRO -+ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 PRO) - - pci:v00001002d00009400sv00001002sd00003142* -- ID_MODEL_FROM_DATABASE=HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe -+ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe) - - pci:v00001002d00009401* - ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 XT] -@@ -8337,10 +8337,10 @@ pci:v00001002d00009442* - ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] - - pci:v00001002d00009442sv00001002sd00000502* -- ID_MODEL_FROM_DATABASE=MSI Radeon HD 4850 512MB GDDR3 -+ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (MSI Radeon HD 4850 512MB GDDR3) - - pci:v00001002d00009442sv0000174Bsd0000E810* -- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 -+ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (Radeon HD 4850 512MB GDDR3) - - pci:v00001002d00009443* - ID_MODEL_FROM_DATABASE=R700 [Radeon HD 4850 X2] -@@ -8364,7 +8364,7 @@ pci:v00001002d0000944E* - ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] - - pci:v00001002d0000944Esv0000174Bsd00003261* -- ID_MODEL_FROM_DATABASE=Radeon HD 4810 -+ ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] (Radeon HD 4810) - - pci:v00001002d00009450* - ID_MODEL_FROM_DATABASE=RV770 GL [FireStream 9270] -@@ -8391,7 +8391,7 @@ pci:v00001002d00009480* - ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] - - pci:v00001002d00009480sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4650 [dv6-1190en] -+ ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] (Mobility Radeon HD 4650 [dv6-1190en]) - - pci:v00001002d00009488* - ID_MODEL_FROM_DATABASE=RV730/M96-XT [Mobility Radeon HD 4670] -@@ -8403,7 +8403,7 @@ pci:v00001002d00009490* - ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] - - pci:v00001002d00009490sv0000174Bsd0000E880* -- ID_MODEL_FROM_DATABASE=Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO -+ ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] (Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO) - - pci:v00001002d00009491* - ID_MODEL_FROM_DATABASE=RV730/M96-CSP [Radeon E4690] -@@ -8412,19 +8412,19 @@ pci:v00001002d00009495* - ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] - - pci:v00001002d00009495sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650/4670 AGP -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650/4670 AGP) - - pci:v00001002d00009495sv00001092sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4670 AGP 512MB DDR2 -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4670 AGP 512MB DDR2) - - pci:v00001002d00009495sv00001458sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) - - pci:v00001002d00009495sv00001682sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) - - pci:v00001002d00009495sv0000174Bsd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP DDR2 -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP DDR2) - - pci:v00001002d00009498* - ID_MODEL_FROM_DATABASE=RV730 PRO [Radeon HD 4650] -@@ -8457,22 +8457,22 @@ pci:v00001002d000094C1* - ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] - - pci:v00001002d000094C1sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) - - pci:v00001002d000094C1sv00001028sd00000D02* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) - - pci:v00001002d000094C3* - ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] - - pci:v00001002d000094C3sv00001028sd00000302* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 Pro -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 Pro) - - pci:v00001002d000094C3sv0000174Bsd0000E400* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) - - pci:v00001002d000094C3sv000018BCsd00003550* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) - - pci:v00001002d000094C4* - ID_MODEL_FROM_DATABASE=RV610 LE [Radeon HD 2400 PRO AGP] -@@ -8490,7 +8490,7 @@ pci:v00001002d000094C9* - ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] - - pci:v00001002d000094C9sv00001002sd000094C9* -- ID_MODEL_FROM_DATABASE=Radeon HD2400 -+ ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] (Radeon HD2400) - - pci:v00001002d000094CB* - ID_MODEL_FROM_DATABASE=RV610 [Radeon E2400] -@@ -8505,7 +8505,7 @@ pci:v00001002d00009501* - ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] - - pci:v00001002d00009501sv0000174Bsd0000E620* -- ID_MODEL_FROM_DATABASE=Radeon HD 3870 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] (Radeon HD 3870) - - pci:v00001002d00009504* - ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850] -@@ -8514,13 +8514,13 @@ pci:v00001002d00009505* - ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] - - pci:v00001002d00009505sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3850 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3850) - - pci:v00001002d00009505sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3690/3850 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690/3850) - - pci:v00001002d00009505sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3690 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690) - - pci:v00001002d00009506* - ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850 X2] -@@ -8556,76 +8556,76 @@ pci:v00001002d0000954F* - ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] - - pci:v00001002d0000954Fsv00001462sd00001618* -- ID_MODEL_FROM_DATABASE=R4350 MD512H (MS-V161) -+ ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] (R4350 MD512H (MS-V161)) - - pci:v00001002d00009552* - ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] - - pci:v00001002d00009552sv00001028sd00001103* -- ID_MODEL_FROM_DATABASE=M92 [Mobility Radeon HD 4330] -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (M92 [Mobility Radeon HD 4330]) - - pci:v00001002d00009552sv00001458sd000021AC* -- ID_MODEL_FROM_DATABASE=Radeon HD 4350 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350) - - pci:v00001002d00009552sv00001458sd000021ED* -- ID_MODEL_FROM_DATABASE=Radeon HD 4550 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4550) - - pci:v00001002d00009552sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 4350 Go! Green 512MB GDDR3 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350 Go! Green 512MB GDDR3) - - pci:v00001002d00009552sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 4350/4550 HyperMemory DDR2 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350/4550 HyperMemory DDR2) - - pci:v00001002d00009553* - ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] - - pci:v00001002d00009553sv00001025sd0000015E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd0000017D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd00000205* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd00000206* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd00000237* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001028sd000002BE* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001028sd000002E8* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv0000103Csd00003624* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv0000103Csd00003636* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv00001043sd00001B32* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001043sd00001B42* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv0000104Dsd00009056* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001179sd0000FF82* -- ID_MODEL_FROM_DATABASE=Satellite L505-13T GPU (Mobility Radeon HD 5145) -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Satellite L505-13T GPU (Mobility Radeon HD 5145)) - - pci:v00001002d00009555* - ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] - - pci:v00001002d00009555sv0000103Csd00001411* -- ID_MODEL_FROM_DATABASE=ProBook 4720s GPU (Mobility Radeon HD 4350) -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] (ProBook 4720s GPU (Mobility Radeon HD 4350)) - - pci:v00001002d00009557* - ID_MODEL_FROM_DATABASE=RV711 GL [FirePro RG220] -@@ -8643,10 +8643,10 @@ pci:v00001002d00009583* - ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] - - pci:v00001002d00009583sv0000106Bsd00000083* -- ID_MODEL_FROM_DATABASE=iMac 7,1 -+ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (iMac 7,1) - - pci:v00001002d00009583sv00001734sd00001107* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 2700 -+ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (Mobility Radeon HD 2700) - - pci:v00001002d00009586* - ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT AGP] -@@ -8658,13 +8658,13 @@ pci:v00001002d00009588* - ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] - - pci:v00001002d00009588sv00001458sd0000216C* -- ID_MODEL_FROM_DATABASE=Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H) -+ ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] (Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H)) - - pci:v00001002d00009589* - ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] - - pci:v00001002d00009589sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3610 -+ ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] (Radeon HD 3610) - - pci:v00001002d0000958A* - ID_MODEL_FROM_DATABASE=RV630 [Radeon HD 2600 X2] -@@ -8682,7 +8682,7 @@ pci:v00001002d00009591* - ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] - - pci:v00001002d00009591sv00001002sd00009591* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3650 -+ ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] (Mobility Radeon HD 3650) - - pci:v00001002d00009593* - ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3670] -@@ -8694,7 +8694,7 @@ pci:v00001002d00009596* - ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] - - pci:v00001002d00009596sv00001043sd00000028* -- ID_MODEL_FROM_DATABASE=EAH3650 SILENT/HTDI/512M/A -+ ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] (EAH3650 SILENT/HTDI/512M/A) - - pci:v00001002d00009597* - ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] -@@ -8703,19 +8703,19 @@ pci:v00001002d00009598* - ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] - - pci:v00001002d00009598sv00001002sd00009598* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3600 -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Mobility Radeon HD 3600) - - pci:v00001002d00009598sv00001043sd000001D6* -- ID_MODEL_FROM_DATABASE=EAH3650 Silent -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (EAH3650 Silent) - - pci:v00001002d00009598sv00001043sd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 4570) - - pci:v00001002d00009598sv0000174Bsd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 3750 -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 3750) - - pci:v00001002d00009598sv0000174Bsd00004580* -- ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 4580] -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (RV635 PRO [Radeon HD 4580]) - - pci:v00001002d00009599* - ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] -@@ -8724,7 +8724,7 @@ pci:v00001002d000095C0* - ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] - - pci:v00001002d000095C0sv00001002sd000095C0* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3470 -+ ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] (Mobility Radeon HD 3470) - - pci:v00001002d000095C2* - ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3410/3430] -@@ -8733,13 +8733,13 @@ pci:v00001002d000095C4* - ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] - - pci:v00001002d000095C4sv00001002sd000095C4* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3400 -+ ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] (Mobility Radeon HD 3400) - - pci:v00001002d000095C5* - ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] - - pci:v00001002d000095C5sv00001028sd00000342* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] (OptiPlex 980) - - pci:v00001002d000095C6* - ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450 AGP] -@@ -8760,7 +8760,7 @@ pci:v00001002d00009610* - ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] - - pci:v00001002d00009610sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-MA78GM-S2H Motherboard -+ ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] (GA-MA78GM-S2H Motherboard) - - pci:v00001002d00009611* - ID_MODEL_FROM_DATABASE=RS780C [Radeon 3100] -@@ -8823,22 +8823,22 @@ pci:v00001002d0000970F* - ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] - - pci:v00001002d0000970Fsv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (A785GM-M) - - pci:v00001002d0000970Fsv00001043sd000083A2* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M4A785TD Motherboard) - - pci:v00001002d0000970Fsv00001043sd0000843E* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M5A88-V EVO) - - pci:v00001002d00009710* - ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] - - pci:v00001002d00009710sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (A785GM-M) - - pci:v00001002d00009710sv00001043sd000083A2* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (M4A785TD Motherboard) - - pci:v00001002d00009712* - ID_MODEL_FROM_DATABASE=RS880M [Mobility Radeon HD 4225/4250] -@@ -8853,13 +8853,13 @@ pci:v00001002d00009715* - ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] - - pci:v00001002d00009715sv00001043sd0000843E* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] (M5A88-V EVO) - - pci:v00001002d00009802* - ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] - - pci:v00001002d00009802sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] (PURE Fusion Mini) - - pci:v00001002d00009803* - ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] -@@ -8991,16 +8991,16 @@ pci:v00001002d00009902* - ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller - - pci:v00001002d00009902sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller (ProBook 455 G1 Notebook) - - pci:v00001002d00009903* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] - - pci:v00001002d00009903sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) - - pci:v00001002d00009903sv0000103Csd00001952* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) - - pci:v00001002d00009904* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7560D] -@@ -9114,10 +9114,10 @@ pci:v00001002d0000AA10* - ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] - - pci:v00001002d0000AA10sv0000174Bsd0000AA10* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) - - pci:v00001002d0000AA10sv000018BCsd0000AA10* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) - - pci:v00001002d0000AA18* - ID_MODEL_FROM_DATABASE=RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] -@@ -9132,13 +9132,13 @@ pci:v00001002d0000AA30* - ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] - - pci:v00001002d0000AA30sv0000174Bsd0000AA30* -- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink -+ ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] (Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink) - - pci:v00001002d0000AA38* - ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] - - pci:v00001002d0000AA38sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] (dv6-1190en) - - pci:v00001002d0000AA50* - ID_MODEL_FROM_DATABASE=Cypress HDMI Audio [Radeon HD 5800 Series] -@@ -9150,16 +9150,16 @@ pci:v00001002d0000AA60* - ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] - - pci:v00001002d0000AA60sv00001025sd0000033D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Mobility Radeon HD 5650) - - pci:v00001002d0000AA60sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Aspire 7740G) - - pci:v00001002d0000AA68* - ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] - - pci:v00001002d0000AA68sv00001028sd0000AA68* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] (XPS 8300) - - pci:v00001002d0000AA80* - ID_MODEL_FROM_DATABASE=Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] -@@ -9171,13 +9171,13 @@ pci:v00001002d0000AA90* - ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] - - pci:v00001002d0000AA90sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] (Precision M4600) - - pci:v00001002d0000AA98* - ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] - - pci:v00001002d0000AA98sv0000174Bsd0000AA98* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1GB DDR3 -+ ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] (Radeon HD 6450 1GB DDR3) - - pci:v00001002d0000AAA0* - ID_MODEL_FROM_DATABASE=Tahiti XT HDMI Audio [Radeon HD 7970 Series] -@@ -9264,10 +9264,10 @@ pci:v00001004d00000304sv00001004sd00000304* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio - - pci:v00001004d00000304sv0000122Dsd00001206* -- ID_MODEL_FROM_DATABASE=DSP368 Audio -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (DSP368 Audio) - - pci:v00001004d00000304sv00001483sd00005020* -- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (XWave Thunder 3D Audio) - - pci:v00001004d00000305* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport -@@ -9276,10 +9276,10 @@ pci:v00001004d00000305sv00001004sd00000305* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport - - pci:v00001004d00000305sv0000122Dsd00001207* -- ID_MODEL_FROM_DATABASE=DSP368 Audio Gameport -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (DSP368 Audio Gameport) - - pci:v00001004d00000305sv00001483sd00005021* -- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Gameport -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (XWave Thunder 3D Audio Gameport) - - pci:v00001004d00000306* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers -@@ -9288,22 +9288,22 @@ pci:v00001004d00000306sv00001004sd00000306* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers - - pci:v00001004d00000306sv0000122Dsd00001208* -- ID_MODEL_FROM_DATABASE=DSP368 Audio Support Registers -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (DSP368 Audio Support Registers) - - pci:v00001004d00000306sv00001483sd00005022* -- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Support Registers -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (XWave Thunder 3D Audio Support Registers) - - pci:v00001004d00000307* - ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio - - pci:v00001004d00000307sv00001004sd00000703* -- ID_MODEL_FROM_DATABASE=Philips Rhythmic Edge PSC703 -+ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Rhythmic Edge PSC703) - - pci:v00001004d00000307sv00001004sd00000705* -- ID_MODEL_FROM_DATABASE=Philips Seismic Edge PSC705 -+ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Seismic Edge PSC705) - - pci:v00001004d00000307sv00001004sd00000706* -- ID_MODEL_FROM_DATABASE=Philips Acoustic Edge PSC706 -+ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Acoustic Edge PSC706) - - pci:v00001004d00000308* - ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio Gameport -@@ -9375,16 +9375,16 @@ pci:v0000100Bd00000020* - ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller - - pci:v0000100Bd00000020sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Network -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Pavilion ze4400 builtin Network) - - pci:v0000100Bd00000020sv000012D9sd0000000C* -- ID_MODEL_FROM_DATABASE=Aculab E1/T1 PMXc cPCI carrier card -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Aculab E1/T1 PMXc cPCI carrier card) - - pci:v0000100Bd00000020sv00001385sd0000F311* -- ID_MODEL_FROM_DATABASE=FA311 / FA312 (FA311 with WoL HW) -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA311 / FA312 (FA311 with WoL HW)) - - pci:v0000100Bd00000020sv00001385sd0000F312* -- ID_MODEL_FROM_DATABASE=FA312 (rev. A1) Fast Ethernet PCI Adapter -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA312 (rev. A1) Fast Ethernet PCI Adapter) - - pci:v0000100Bd00000021* - ID_MODEL_FROM_DATABASE=PC87200 PCI to ISA Bridge -@@ -9393,13 +9393,13 @@ pci:v0000100Bd00000022* - ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller - - pci:v0000100Bd00000022sv00001186sd00004900* -- ID_MODEL_FROM_DATABASE=DGE-500T -+ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (DGE-500T) - - pci:v0000100Bd00000022sv00001385sd0000621A* -- ID_MODEL_FROM_DATABASE=GA621 -+ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA621) - - pci:v0000100Bd00000022sv00001385sd0000622A* -- ID_MODEL_FROM_DATABASE=GA622T -+ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA622T) - - pci:v0000100Bd00000028* - ID_MODEL_FROM_DATABASE=Geode GX2 Host Bridge -@@ -9435,13 +9435,13 @@ pci:v0000100Bd00000502* - ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller - - pci:v0000100Bd00000502sv0000100Bsd00000502* -- ID_MODEL_FROM_DATABASE=IDE Controller -+ ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller (IDE Controller) - - pci:v0000100Bd00000503* - ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller - - pci:v0000100Bd00000503sv0000100Bsd00000503* -- ID_MODEL_FROM_DATABASE=XpressAudio controller -+ ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller (XpressAudio controller) - - pci:v0000100Bd00000504* - ID_MODEL_FROM_DATABASE=SCx200 Video -@@ -9453,19 +9453,19 @@ pci:v0000100Bd00000510* - ID_MODEL_FROM_DATABASE=SC1100 Bridge - - pci:v0000100Bd00000510sv0000100Bsd00000500* -- ID_MODEL_FROM_DATABASE=GPIO and LPC support bridge -+ ID_MODEL_FROM_DATABASE=SC1100 Bridge (GPIO and LPC support bridge) - - pci:v0000100Bd00000511* - ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI - - pci:v0000100Bd00000511sv0000100Bsd00000501* -- ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI bridge -+ ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI (bridge) - - pci:v0000100Bd00000515* - ID_MODEL_FROM_DATABASE=SC1100 XBus - - pci:v0000100Bd00000515sv0000100Bsd00000505* -- ID_MODEL_FROM_DATABASE=SC1100 PCI to XBus bridge -+ ID_MODEL_FROM_DATABASE=SC1100 XBus (SC1100 PCI to XBus bridge) - - pci:v0000100Bd0000D001* - ID_MODEL_FROM_DATABASE=87410 IDE -@@ -9534,55 +9534,55 @@ pci:v00001011d00000009* - ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] - - pci:v00001011d00000009sv00001025sd00000310* -- ID_MODEL_FROM_DATABASE=21140 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (21140 Fast Ethernet) - - pci:v00001011d00000009sv000010B8sd00002001* -- ID_MODEL_FROM_DATABASE=SMC9332BDT EtherPower 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BDT EtherPower 10/100) - - pci:v00001011d00000009sv000010B8sd00002002* -- ID_MODEL_FROM_DATABASE=SMC9332BVT EtherPower T4 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BVT EtherPower T4 10/100) - - pci:v00001011d00000009sv000010B8sd00002003* -- ID_MODEL_FROM_DATABASE=SMC9334BDT EtherPower 10/100 (1-port) -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9334BDT EtherPower 10/100 (1-port)) - - pci:v00001011d00000009sv00001109sd00002400* -- ID_MODEL_FROM_DATABASE=ANA-6944A/TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (ANA-6944A/TX Fast Ethernet) - - pci:v00001011d00000009sv00001112sd00002300* -- ID_MODEL_FROM_DATABASE=RNS2300 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2300 Fast Ethernet) - - pci:v00001011d00000009sv00001112sd00002320* -- ID_MODEL_FROM_DATABASE=RNS2320 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2320 Fast Ethernet) - - pci:v00001011d00000009sv00001112sd00002340* -- ID_MODEL_FROM_DATABASE=RNS2340 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2340 Fast Ethernet) - - pci:v00001011d00000009sv00001113sd00001207* -- ID_MODEL_FROM_DATABASE=EN-1207-TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (EN-1207-TX Fast Ethernet) - - pci:v00001011d00000009sv00001186sd00001100* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-500TX Fast Ethernet) - - pci:v00001011d00000009sv00001186sd00001112* -- ID_MODEL_FROM_DATABASE=DFE-570TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-570TX Fast Ethernet) - - pci:v00001011d00000009sv00001186sd00001140* -- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) - - pci:v00001011d00000009sv00001186sd00001142* -- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) - - pci:v00001011d00000009sv000011F6sd00000503* -- ID_MODEL_FROM_DATABASE=Freedomline Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (Freedomline Fast Ethernet) - - pci:v00001011d00000009sv00001282sd00009100* -- ID_MODEL_FROM_DATABASE=AEF-380TXD Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (AEF-380TXD Fast Ethernet) - - pci:v00001011d00000009sv00001385sd00001100* -- ID_MODEL_FROM_DATABASE=FA310TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (FA310TX Fast Ethernet) - - pci:v00001011d00000009sv00002646sd00000001* -- ID_MODEL_FROM_DATABASE=KNE100TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (KNE100TX Fast Ethernet) - - pci:v00001011d0000000A* - ID_MODEL_FROM_DATABASE=21230 Video Codec -@@ -9594,16 +9594,16 @@ pci:v00001011d0000000F* - ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] - - pci:v00001011d0000000Fsv00001011sd0000DEF1* -- ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) -+ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (DEFPA)) - - pci:v00001011d0000000Fsv0000103Csd0000DEF1* -- ID_MODEL_FROM_DATABASE=FDDI controller (3X-DEFPA) -+ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (3X-DEFPA)) - - pci:v00001011d00000014* - ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] - - pci:v00001011d00000014sv00001186sd00000100* -- ID_MODEL_FROM_DATABASE=DE-530+ -+ ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] (DE-530+) - - pci:v00001011d00000016* - ID_MODEL_FROM_DATABASE=DGLPB [OPPO] -@@ -9618,133 +9618,133 @@ pci:v00001011d00000019* - ID_MODEL_FROM_DATABASE=DECchip 21142/43 - - pci:v00001011d00000019sv00001011sd0000500A* -- ID_MODEL_FROM_DATABASE=DE500A Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500A Fast Ethernet) - - pci:v00001011d00000019sv00001011sd0000500B* -- ID_MODEL_FROM_DATABASE=DE500B Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500B Fast Ethernet) - - pci:v00001011d00000019sv00001014sd00000001* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 EtherJet Cardbus) - - pci:v00001011d00000019sv00001025sd00000315* -- ID_MODEL_FROM_DATABASE=ALN315 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ALN315 Fast Ethernet) - - pci:v00001011d00000019sv00001033sd0000800C* -- ID_MODEL_FROM_DATABASE=PC-9821-CS01 100BASE-TX Interface Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821-CS01 100BASE-TX Interface Card) - - pci:v00001011d00000019sv00001033sd0000800D* -- ID_MODEL_FROM_DATABASE=PC-9821NR-B06 100BASE-TX Interface Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821NR-B06 100BASE-TX Interface Card) - - pci:v00001011d00000019sv0000103Csd0000125A* -- ID_MODEL_FROM_DATABASE=10/100Base-TX (PCI) [A5506B] -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100Base-TX (PCI) [A5506B]) - - pci:v00001011d00000019sv0000108Dsd00000016* -- ID_MODEL_FROM_DATABASE=Rapidfire 2327 10/100 Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Rapidfire 2327 10/100 Ethernet) - - pci:v00001011d00000019sv0000108Dsd00000017* -- ID_MODEL_FROM_DATABASE=GoCard 2250 Ethernet 10/100 Cardbus -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (GoCard 2250 Ethernet 10/100 Cardbus) - - pci:v00001011d00000019sv000010B8sd00002005* -- ID_MODEL_FROM_DATABASE=SMC8032DT Extreme Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8032DT Extreme Ethernet 10/100) - - pci:v00001011d00000019sv000010B8sd00008034* -- ID_MODEL_FROM_DATABASE=SMC8034 Extreme Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8034 Extreme Ethernet 10/100) - - pci:v00001011d00000019sv000010EFsd00008169* -- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) - - pci:v00001011d00000019sv00001109sd00002A00* -- ID_MODEL_FROM_DATABASE=ANA-6911A/TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TX Fast Ethernet) - - pci:v00001011d00000019sv00001109sd00002B00* -- ID_MODEL_FROM_DATABASE=ANA-6911A/TXC Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TXC Fast Ethernet) - - pci:v00001011d00000019sv00001109sd00003000* -- ID_MODEL_FROM_DATABASE=ANA-6922/TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6922/TX Fast Ethernet) - - pci:v00001011d00000019sv00001113sd00001207* -- ID_MODEL_FROM_DATABASE=Cheetah Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cheetah Fast Ethernet) - - pci:v00001011d00000019sv00001113sd00002220* -- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) - - pci:v00001011d00000019sv0000115Dsd00000002* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet 10/100) - - pci:v00001011d00000019sv00001179sd00000203* -- ID_MODEL_FROM_DATABASE=Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Fast Ethernet) - - pci:v00001011d00000019sv00001179sd00000204* -- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001100* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001101* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001102* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001112* -- ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-570TX Quad Fast Ethernet) - - pci:v00001011d00000019sv000011F0sd00004235* -- ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (21143 [FASTLine-II UTP 10/100]) - - pci:v00001011d00000019sv00001259sd00002800* -- ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (AT-2800Tx Fast Ethernet) - - pci:v00001011d00000019sv00001266sd00000004* -- ID_MODEL_FROM_DATABASE=Eagle Fast EtherMAX -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Eagle Fast EtherMAX) - - pci:v00001011d00000019sv000012AFsd00000019* -- ID_MODEL_FROM_DATABASE=NetFlyer Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (NetFlyer Cardbus Fast Ethernet) - - pci:v00001011d00000019sv00001374sd00000001* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001374sd00000002* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001374sd00000007* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001374sd00000008* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001385sd00002100* -- ID_MODEL_FROM_DATABASE=FA510 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FA510) - - pci:v00001011d00000019sv00001395sd00000001* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet CardBus PC Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 Ethernet CardBus PC Card) - - pci:v00001011d00000019sv000013D1sd0000AB01* -- ID_MODEL_FROM_DATABASE=EtherFast 10/100 Cardbus (PCMPC200) -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherFast 10/100 Cardbus (PCMPC200)) - - pci:v00001011d00000019sv00001498sd0000000A* -- ID_MODEL_FROM_DATABASE=TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter) - - pci:v00001011d00000019sv00001498sd0000000B* -- ID_MODEL_FROM_DATABASE=TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter) - - pci:v00001011d00000019sv00001498sd0000000C* -- ID_MODEL_FROM_DATABASE=TPMC880-12 Single 10Base2 PMC Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-12 Single 10Base2 PMC Ethernet Adapter) - - pci:v00001011d00000019sv000014CBsd00000100* -- ID_MODEL_FROM_DATABASE=LNDL-100N 100Base-TX Ethernet PC Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (LNDL-100N 100Base-TX Ethernet PC Card) - - pci:v00001011d00000019sv00001668sd00002000* -- ID_MODEL_FROM_DATABASE=FastNet Pro (PE2000) -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FastNet Pro (PE2000)) - - pci:v00001011d00000019sv00002646sd00000001* -- ID_MODEL_FROM_DATABASE=KNE100TX -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE100TX) - - pci:v00001011d00000019sv00002646sd00000002* -- ID_MODEL_FROM_DATABASE=KNE-CB4TX -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE-CB4TX) - - pci:v00001011d00000019sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherExpress PRO/100 Mobile CardBus 32) - - pci:v00001011d0000001A* - ID_MODEL_FROM_DATABASE=Farallon PN9000SX Gigabit Ethernet -@@ -9780,46 +9780,46 @@ pci:v00001011d00000046* - ID_MODEL_FROM_DATABASE=DECchip 21554 - - pci:v00001011d00000046sv00000E11sd00004050* -- ID_MODEL_FROM_DATABASE=Smart Array 4200 Controller -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4200 Controller) - - pci:v00001011d00000046sv00000E11sd00004051* -- ID_MODEL_FROM_DATABASE=Smart Array 4250ES Controller -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4250ES Controller) - - pci:v00001011d00000046sv00000E11sd00004058* -- ID_MODEL_FROM_DATABASE=Smart Array 431 Controller -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 431 Controller) - - pci:v00001011d00000046sv0000103Csd000010C2* -- ID_MODEL_FROM_DATABASE=NetRAID-4M -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (NetRAID-4M) - - pci:v00001011d00000046sv000012D9sd0000000A* -- ID_MODEL_FROM_DATABASE=IP Telephony card -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (IP Telephony card) - - pci:v00001011d00000046sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (CT7 mainboard) - - pci:v00001011d00000046sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (CE7 mainboard) - - pci:v00001011d00000046sv00009005sd00000364* -- ID_MODEL_FROM_DATABASE=5400S (Mustang) -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) - - pci:v00001011d00000046sv00009005sd00000365* -- ID_MODEL_FROM_DATABASE=5400S (Mustang) -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) - - pci:v00001011d00000046sv00009005sd00001364* -- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) - - pci:v00001011d00000046sv00009005sd00001365* -- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) - - pci:v00001011d00000046sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CC8-1-BLUES -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (CC8-1-BLUES) - - pci:v00001011d00001065* - ID_MODEL_FROM_DATABASE=StrongARM DC21285 - - pci:v00001011d00001065sv00001069sd00000020* -- ID_MODEL_FROM_DATABASE=DAC960P / DAC1164P -+ ID_MODEL_FROM_DATABASE=StrongARM DC21285 (DAC960P / DAC1164P) - - pci:v00001012* - ID_VENDOR_FROM_DATABASE=Micronics Computers Inc -@@ -9858,13 +9858,13 @@ pci:v00001013d000000B8* - ID_MODEL_FROM_DATABASE=GD 5446 - - pci:v00001013d000000B8sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=GD 5446 (QEMU Virtual Machine) - - pci:v00001013d000000BC* - ID_MODEL_FROM_DATABASE=GD 5480 - - pci:v00001013d000000BCsv00001013sd000000BC* -- ID_MODEL_FROM_DATABASE=CL-GD5480 -+ ID_MODEL_FROM_DATABASE=GD 5480 (CL-GD5480) - - pci:v00001013d000000D0* - ID_MODEL_FROM_DATABASE=GD 5462 -@@ -9882,10 +9882,10 @@ pci:v00001013d000000D6* - ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] - - pci:v00001013d000000D6sv000013CEsd00008031* -- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) - - pci:v00001013d000000D6sv000013CFsd00008031* -- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) - - pci:v00001013d000000E8* - ID_MODEL_FROM_DATABASE=GD 5436U -@@ -9921,34 +9921,34 @@ pci:v00001013d00006001* - ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] - - pci:v00001013d00006001sv00001014sd00001010* -- ID_MODEL_FROM_DATABASE=CS4610 SoundFusion Audio Accelerator -+ ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] (CS4610 SoundFusion Audio Accelerator) - - pci:v00001013d00006003* - ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] - - pci:v00001013d00006003sv00001013sd00004280* -- ID_MODEL_FROM_DATABASE=Crystal SoundFusion PCI Audio Accelerator -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Crystal SoundFusion PCI Audio Accelerator) - - pci:v00001013d00006003sv00001014sd00000153* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A20m -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (ThinkPad 600X/A20m) - - pci:v00001013d00006003sv0000153Bsd0000112E* -- ID_MODEL_FROM_DATABASE=DMX XFire 1024 -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (DMX XFire 1024) - - pci:v00001013d00006003sv0000153Bsd00001136* -- ID_MODEL_FROM_DATABASE=SiXPack 5.1+ -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (SiXPack 5.1+) - - pci:v00001013d00006003sv00001681sd00000050* -- ID_MODEL_FROM_DATABASE=Game Theater XP -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Game Theater XP) - - pci:v00001013d00006003sv00001681sd0000A010* -- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo II -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo II) - - pci:v00001013d00006003sv00001681sd0000A011* -- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo III 7.1 -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo III 7.1) - - pci:v00001013d00006003sv00005053sd00003357* -- ID_MODEL_FROM_DATABASE=Santa Cruz -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Santa Cruz) - - pci:v00001013d00006004* - ID_MODEL_FROM_DATABASE=CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] -@@ -10029,16 +10029,16 @@ pci:v00001014d0000002E* - ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] - - pci:v00001014d0000002Esv00001014sd0000002E* -- ID_MODEL_FROM_DATABASE=ServeRAID-3x -+ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-3x) - - pci:v00001014d0000002Esv00001014sd0000022E* -- ID_MODEL_FROM_DATABASE=ServeRAID-4H -+ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-4H) - - pci:v00001014d00000031* - ID_MODEL_FROM_DATABASE=2 Port Serial Adapter - - pci:v00001014d00000031sv00001014sd00000031* -- ID_MODEL_FROM_DATABASE=2721 WAN IOA - 2 Port Sync Serial Adapter -+ ID_MODEL_FROM_DATABASE=2 Port Serial Adapter (2721 WAN IOA - 2 Port Sync Serial Adapter) - - pci:v00001014d00000036* - ID_MODEL_FROM_DATABASE=PCI to 32-bit LocalBus Bridge [Miami] -@@ -10056,25 +10056,25 @@ pci:v00001014d0000003E* - ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller - - pci:v00001014d0000003Esv00001014sd0000003E* -- ID_MODEL_FROM_DATABASE=Token-Ring Adapter -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter) - - pci:v00001014d0000003Esv00001014sd000000CD* -- ID_MODEL_FROM_DATABASE=Token-Ring Adapter + Wake-On-LAN -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter + Wake-On-LAN) - - pci:v00001014d0000003Esv00001014sd000000CE* -- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2) - - pci:v00001014d0000003Esv00001014sd000000CF* -- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter Special -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter Special) - - pci:v00001014d0000003Esv00001014sd000000E4* -- ID_MODEL_FROM_DATABASE=High-Speed 100/16/4 Token-Ring Adapter -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (High-Speed 100/16/4 Token-Ring Adapter) - - pci:v00001014d0000003Esv00001014sd000000E5* -- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 + Wake-On-LAN -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2 + Wake-On-LAN) - - pci:v00001014d0000003Esv00001014sd0000016D* -- ID_MODEL_FROM_DATABASE=iSeries 2744 Card -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (iSeries 2744 Card) - - pci:v00001014d00000045* - ID_MODEL_FROM_DATABASE=SSA Adapter -@@ -10131,7 +10131,7 @@ pci:v00001014d00000090* - ID_MODEL_FROM_DATABASE=GXT 3000P - - pci:v00001014d00000090sv00001014sd0000008E* -- ID_MODEL_FROM_DATABASE=GXT-3000P -+ ID_MODEL_FROM_DATABASE=GXT 3000P (GXT-3000P) - - pci:v00001014d00000091* - ID_MODEL_FROM_DATABASE=SSA Adapter -@@ -10143,13 +10143,13 @@ pci:v00001014d00000096* - ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller - - pci:v00001014d00000096sv00001014sd00000097* -- ID_MODEL_FROM_DATABASE=iSeries 2778 DASD IOA -+ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2778 DASD IOA) - - pci:v00001014d00000096sv00001014sd00000098* -- ID_MODEL_FROM_DATABASE=iSeries 2763 DASD IOA -+ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2763 DASD IOA) - - pci:v00001014d00000096sv00001014sd00000099* -- ID_MODEL_FROM_DATABASE=iSeries 2748 DASD IOA -+ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2748 DASD IOA) - - pci:v00001014d0000009F* - ID_MODEL_FROM_DATABASE=PCI 4758 Cryptographic Accelerator -@@ -10164,7 +10164,7 @@ pci:v00001014d000000B7* - ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] - - pci:v00001014d000000B7sv00001092sd000000B8* -- ID_MODEL_FROM_DATABASE=FireGL1 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] (FireGL1 AGP 32Mb) - - pci:v00001014d000000B8* - ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter -@@ -10188,13 +10188,13 @@ pci:v00001014d00000142* - ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input - - pci:v00001014d00000142sv00001014sd00000143* -- ID_MODEL_FROM_DATABASE=Yotta Input Controller (ytin) -+ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input (Yotta Input Controller (ytin)) - - pci:v00001014d00000144* - ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output - - pci:v00001014d00000144sv00001014sd00000145* -- ID_MODEL_FROM_DATABASE=Yotta Output Controller (ytout) -+ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output (Yotta Output Controller (ytout)) - - pci:v00001014d00000156* - ID_MODEL_FROM_DATABASE=405GP PLB to PCI Bridge -@@ -10218,10 +10218,10 @@ pci:v00001014d00000180* - ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller - - pci:v00001014d00000180sv00001014sd00000241* -- ID_MODEL_FROM_DATABASE=iSeries 2757 DASD IOA -+ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (iSeries 2757 DASD IOA) - - pci:v00001014d00000180sv00001014sd00000264* -- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X U320 SCSI RAID Adapter (2780) -+ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (Quad Channel PCI-X U320 SCSI RAID Adapter (2780)) - - pci:v00001014d00000188* - ID_MODEL_FROM_DATABASE=EADS-X PCI-X to PCI-X Bridge -@@ -10233,28 +10233,28 @@ pci:v00001014d000001BD* - ID_MODEL_FROM_DATABASE=ServeRAID Controller - - pci:v00001014d000001BDsv00001014sd000001BD* -- ID_MODEL_FROM_DATABASE=ServeRAID 4Lx -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 4Lx) - - pci:v00001014d000001BDsv00001014sd000001BE* -- ID_MODEL_FROM_DATABASE=ServeRAID-4M -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4M) - - pci:v00001014d000001BDsv00001014sd000001BF* -- ID_MODEL_FROM_DATABASE=ServeRAID-4L -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4L) - - pci:v00001014d000001BDsv00001014sd00000208* -- ID_MODEL_FROM_DATABASE=ServeRAID-4Mx -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Mx) - - pci:v00001014d000001BDsv00001014sd0000020E* -- ID_MODEL_FROM_DATABASE=ServeRAID-4Lx -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Lx) - - pci:v00001014d000001BDsv00001014sd0000022E* -- ID_MODEL_FROM_DATABASE=ServeRAID-4H -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4H) - - pci:v00001014d000001BDsv00001014sd00000258* -- ID_MODEL_FROM_DATABASE=ServeRAID-5i -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) - - pci:v00001014d000001BDsv00001014sd00000259* -- ID_MODEL_FROM_DATABASE=ServeRAID-5i -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) - - pci:v00001014d000001C1* - ID_MODEL_FROM_DATABASE=64bit/66MHz PCI ATM 155 UTP -@@ -10266,10 +10266,10 @@ pci:v00001014d000001EF* - ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge - - pci:v00001014d000001EFsv00001734sd0000102B* -- ID_MODEL_FROM_DATABASE=PCEAS PCI-X Dual Port ESCON Adapter -+ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAS PCI-X Dual Port ESCON Adapter) - - pci:v00001014d000001EFsv00001734sd000010F8* -- ID_MODEL_FROM_DATABASE=PCEAT PCI-Express Dual Port ESCON Adapter -+ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAT PCI-Express Dual Port ESCON Adapter) - - pci:v00001014d000001FF* - ID_MODEL_FROM_DATABASE=10/100 Mbps Ethernet -@@ -10278,13 +10278,13 @@ pci:v00001014d00000219* - ID_MODEL_FROM_DATABASE=Multiport Serial Adapter - - pci:v00001014d00000219sv00001014sd0000021A* -- ID_MODEL_FROM_DATABASE=Dual RVX -+ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Dual RVX) - - pci:v00001014d00000219sv00001014sd00000251* -- ID_MODEL_FROM_DATABASE=Internal Modem/RVX -+ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Internal Modem/RVX) - - pci:v00001014d00000219sv00001014sd00000252* -- ID_MODEL_FROM_DATABASE=Quad Internal Modem -+ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Quad Internal Modem) - - pci:v00001014d0000021B* - ID_MODEL_FROM_DATABASE=GXT6500P Graphics Adapter -@@ -10299,16 +10299,16 @@ pci:v00001014d0000028C* - ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller - - pci:v00001014d0000028Csv00001014sd0000028D* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR SAS RAID Adapter (572E) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR SAS RAID Adapter (572E)) - - pci:v00001014d0000028Csv00001014sd000002BE* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B)) - - pci:v00001014d0000028Csv00001014sd000002C0* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI Adapter (571A) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI Adapter (571A)) - - pci:v00001014d0000028Csv00001014sd0000030D* -- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575B) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575B)) - - pci:v00001014d000002A1* - ID_MODEL_FROM_DATABASE=Calgary PCI-X Host Bridge -@@ -10317,13 +10317,13 @@ pci:v00001014d000002BD* - ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller - - pci:v00001014d000002BDsv00001014sd000002C1* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) - - pci:v00001014d000002BDsv00001014sd000002C2* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/571D) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)) - - pci:v00001014d000002BDsv00001014sd00000338* -- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575C) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575C)) - - pci:v00001014d00000302* - ID_MODEL_FROM_DATABASE=Winnipeg PCI-X Host Bridge -@@ -10338,88 +10338,88 @@ pci:v00001014d0000032D* - ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip - - pci:v00001014d0000032Dsv00001014sd000003A1* -- ID_MODEL_FROM_DATABASE=PCIe PowerXCell 8i Cell Accelerator Board -+ ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip (PCIe PowerXCell 8i Cell Accelerator Board) - - pci:v00001014d00000339* - ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller - - pci:v00001014d00000339sv00001014sd0000030A* -- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS RAID Adapter (574E) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS RAID Adapter (574E)) - - pci:v00001014d00000339sv00001014sd0000033A* -- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS Adapter (57B3) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS Adapter (57B3)) - - pci:v00001014d00000339sv00001014sd0000035C* -- ID_MODEL_FROM_DATABASE=PCIe x8 Internal 3Gb SAS adapter (57CC) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe x8 Internal 3Gb SAS adapter (57CC)) - - pci:v00001014d00000339sv00001014sd00000360* -- ID_MODEL_FROM_DATABASE=PCI-E Auxiliary Cache Adapter (57B7) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCI-E Auxiliary Cache Adapter (57B7)) - - pci:v00001014d0000033D* - ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) - - pci:v00001014d0000033Dsv00001014sd0000033C* -- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5)) - - pci:v00001014d0000033Dsv00001014sd00000353* -- ID_MODEL_FROM_DATABASE=PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3)) - - pci:v00001014d0000033Dsv00001014sd00000354* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Dual-port (57C4) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Dual-port (57C4)) - - pci:v00001014d0000033Dsv00001014sd00000356* -- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D)) - - pci:v00001014d0000033Dsv00001014sd0000035F* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57B2) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Quad-port (57B2)) - - pci:v00001014d0000034A* - ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) - - pci:v00001014d0000034Asv00001014sd0000033B* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS RAID Adapter Quad-port (57B4) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS RAID Adapter Quad-port (57B4)) - - pci:v00001014d0000034Asv00001014sd00000355* -- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1)) - - pci:v00001014d0000034Asv00001014sd00000357* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57C6) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS Adapter Quad-port (57C6)) - - pci:v00001014d0000034Asv00001014sd0000035D* -- ID_MODEL_FROM_DATABASE=PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8)) - - pci:v00001014d0000034Asv00001014sd0000035E* -- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE)) - - pci:v00001014d0000034Asv00001014sd000003FB* -- ID_MODEL_FROM_DATABASE=PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5)) - - pci:v00001014d0000034Asv00001014sd000003FE* -- ID_MODEL_FROM_DATABASE=PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8)) - - pci:v00001014d0000034Asv00001014sd000003FF* -- ID_MODEL_FROM_DATABASE=PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7)) - - pci:v00001014d0000034Asv00001014sd00000474* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB)) - - pci:v00001014d0000034Asv00001014sd00000475* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC)) - - pci:v00001014d0000034Asv00001014sd00000499* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED)) - - pci:v00001014d0000034Asv00001014sd0000049A* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE)) - - pci:v00001014d0000034Asv00001014sd000004C7* -- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA)) - - pci:v00001014d0000034Asv00001014sd000004C8* -- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2)) - - pci:v00001014d0000034Asv00001014sd00000C49* -- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) - - pci:v00001014d000004AA* - ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) -@@ -10461,13 +10461,13 @@ pci:v0000101Ad00000007* - ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G - - pci:v0000101Ad00000007sv0000101Asd00000019* -- ID_MODEL_FROM_DATABASE=BYNET BIC2C -+ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2C) - - pci:v0000101Ad00000007sv0000101Asd0000001C* -- ID_MODEL_FROM_DATABASE=BYNET BIC2G -+ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2G) - - pci:v0000101Ad00000007sv0000101Asd0000001F* -- ID_MODEL_FROM_DATABASE=BYNET BIC4G -+ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC4G) - - pci:v0000101Ad00000009* - ID_MODEL_FROM_DATABASE=PQS Memory Controller -@@ -10488,19 +10488,19 @@ pci:v0000101Ad00001DC1* - ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M - - pci:v0000101Ad00001DC1sv0000101Asd00000019* -- ID_MODEL_FROM_DATABASE=BIC2M -+ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC2M) - - pci:v0000101Ad00001DC1sv0000101Asd0000001F* -- ID_MODEL_FROM_DATABASE=BIC4M -+ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC4M) - - pci:v0000101Ad00001DC1sv0000101Asd00000ECE* -- ID_MODEL_FROM_DATABASE=BYA4M -+ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BYA4M) - - pci:v0000101Ad00001FA8* - ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) - - pci:v0000101Ad00001FA8sv0000101Asd000000C3* -- ID_MODEL_FROM_DATABASE=BYNET BIC2SE -+ ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) (BYNET BIC2SE) - - pci:v0000101B* - ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor -@@ -10557,46 +10557,46 @@ pci:v0000101Ed00001960* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v0000101Ed00001960sv0000101Esd00000471* -- ID_MODEL_FROM_DATABASE=MegaRAID 471 Enterprise 1600 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (471 Enterprise 1600 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000475* -- ID_MODEL_FROM_DATABASE=MegaRAID 475 Express 500/500LC RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (475 Express 500/500LC RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000477* -- ID_MODEL_FROM_DATABASE=MegaRAID 477 Elite 3100 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (477 Elite 3100 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000493* -- ID_MODEL_FROM_DATABASE=MegaRAID 493 Elite 1600 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (493 Elite 1600 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000494* -- ID_MODEL_FROM_DATABASE=MegaRAID 494 Elite 1650 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (494 Elite 1650 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000503* -- ID_MODEL_FROM_DATABASE=MegaRAID 503 Enterprise 1650 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (503 Enterprise 1650 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000511* -- ID_MODEL_FROM_DATABASE=MegaRAID 511 i4 IDE RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (511 i4 IDE RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000522* -- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4133 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4133 RAID Controller) - - pci:v0000101Ed00001960sv00001028sd00000471* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/QC) - - pci:v0000101Ed00001960sv00001028sd00000475* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/SC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/SC) - - pci:v0000101Ed00001960sv00001028sd00000493* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/DC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/DC) - - pci:v0000101Ed00001960sv00001028sd00000511* -- ID_MODEL_FROM_DATABASE=PowerEdge Cost Effective RAID Controller ATA100/4Ch -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Cost Effective RAID Controller ATA100/4Ch) - - pci:v0000101Ed00001960sv0000103Csd000060E7* -- ID_MODEL_FROM_DATABASE=NetRAID-1M -+ ID_MODEL_FROM_DATABASE=MegaRAID (NetRAID-1M) - - pci:v0000101Ed00001960sv0000103Csd000060E8* -- ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] -+ ID_MODEL_FROM_DATABASE=MegaRAID (NetRaid 2M [AMI MegaRaid 493]) - - pci:v0000101Ed00009010* - ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller -@@ -10623,7 +10623,7 @@ pci:v0000101Ed00009063* - ID_MODEL_FROM_DATABASE=MegaRAC - - pci:v0000101Ed00009063sv0000101Esd00000767* -- ID_MODEL_FROM_DATABASE=Dell Remote Assistant Card 2 -+ ID_MODEL_FROM_DATABASE=MegaRAC (Dell Remote Assistant Card 2) - - pci:v0000101F* - ID_VENDOR_FROM_DATABASE=PictureTel -@@ -10731,7 +10731,7 @@ pci:v00001022d00001510* - ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex - - pci:v00001022d00001510sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex (PURE Fusion Mini) - - pci:v00001022d00001512* - ID_MODEL_FROM_DATABASE=Family 14h Processor Root Port -@@ -10842,79 +10842,79 @@ pci:v00001022d00002000* - ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] - - pci:v00001022d00002000sv00001014sd00002000* -- ID_MODEL_FROM_DATABASE=NetFinity 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (NetFinity 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001022sd00002000* -- ID_MODEL_FROM_DATABASE=PCnet - Fast 79C971 -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PCnet - Fast 79C971) - - pci:v00001022d00002000sv0000103Csd0000104C* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd00001064* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd00001065* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd0000106C* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd0000106E* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd000010EA* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv00001113sd00001220* -- ID_MODEL_FROM_DATABASE=EN1220 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (EN1220 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002450* -- ID_MODEL_FROM_DATABASE=AT-2450 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002454* -- ID_MODEL_FROM_DATABASE=AT-2450v4 10Mb Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450v4 10Mb Ethernet Adapter) - - pci:v00001022d00002000sv00001259sd00002700* -- ID_MODEL_FROM_DATABASE=AT-2700TX 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700TX 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002701* -- ID_MODEL_FROM_DATABASE=AT-2700FX 100Mb Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FX 100Mb Ethernet) - - pci:v00001022d00002000sv00001259sd00002702* -- ID_MODEL_FROM_DATABASE=AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002703* -- ID_MODEL_FROM_DATABASE=AT-2701FX -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FX) - - pci:v00001022d00002000sv00001259sd00002704* -- ID_MODEL_FROM_DATABASE=AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet) - - pci:v00001022d00002000sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00001022d00002000sv00004C53sd00001010* -- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CP5/CR6 mainboard) - - pci:v00001022d00002000sv00004C53sd00001020* -- ID_MODEL_FROM_DATABASE=VR6 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (VR6 mainboard) - - pci:v00001022d00002000sv00004C53sd00001030* -- ID_MODEL_FROM_DATABASE=PC5 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC5 mainboard) - - pci:v00001022d00002000sv00004C53sd00001040* -- ID_MODEL_FROM_DATABASE=CL7 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CL7 mainboard) - - pci:v00001022d00002000sv00004C53sd00001060* -- ID_MODEL_FROM_DATABASE=PC7 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC7 mainboard) - - pci:v00001022d00002001* - ID_MODEL_FROM_DATABASE=79c978 [HomePNA] - - pci:v00001022d00002001sv00001092sd00000A78* -- ID_MODEL_FROM_DATABASE=Multimedia Home Network Adapter -+ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (Multimedia Home Network Adapter) - - pci:v00001022d00002001sv00001668sd00000299* -- ID_MODEL_FROM_DATABASE=ActionLink Home Network Adapter -+ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (ActionLink Home Network Adapter) - - pci:v00001022d00002003* - ID_MODEL_FROM_DATABASE=Am 1771 MBW [Alchemy] -@@ -10923,7 +10923,7 @@ pci:v00001022d00002020* - ID_MODEL_FROM_DATABASE=53c974 [PCscsi] - - pci:v00001022d00002020sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=53c974 [PCscsi] (QEMU Virtual Machine) - - pci:v00001022d00002040* - ID_MODEL_FROM_DATABASE=79c974 -@@ -11043,7 +11043,7 @@ pci:v00001022d00007440* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA - - pci:v00001022d00007440sv00001043sd00008044* -- ID_MODEL_FROM_DATABASE=A7M-D Mainboard -+ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA (A7M-D Mainboard) - - pci:v00001022d00007441* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] IDE -@@ -11052,7 +11052,7 @@ pci:v00001022d00007443* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI - - pci:v00001022d00007443sv00001043sd00008044* -- ID_MODEL_FROM_DATABASE=A7M-D Mainboard -+ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI (A7M-D Mainboard) - - pci:v00001022d00007445* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] Audio -@@ -11088,7 +11088,7 @@ pci:v00001022d00007460* - ID_MODEL_FROM_DATABASE=AMD-8111 PCI - - pci:v00001022d00007460sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 PCI (HDAMB) - - pci:v00001022d00007461* - ID_MODEL_FROM_DATABASE=AMD-8111 USB -@@ -11103,22 +11103,22 @@ pci:v00001022d00007464* - ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI - - pci:v00001022d00007464sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI (HDAMB) - - pci:v00001022d00007468* - ID_MODEL_FROM_DATABASE=AMD-8111 LPC - - pci:v00001022d00007468sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 LPC (HDAMB) - - pci:v00001022d00007469* - ID_MODEL_FROM_DATABASE=AMD-8111 IDE - - pci:v00001022d00007469sv00001022sd00002B80* -- ID_MODEL_FROM_DATABASE=AMD-8111 IDE [Quartet] -+ ID_MODEL_FROM_DATABASE=AMD-8111 IDE ([Quartet]) - - pci:v00001022d00007469sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 IDE (HDAMB) - - pci:v00001022d0000746A* - ID_MODEL_FROM_DATABASE=AMD-8111 SMBus 2.0 -@@ -11127,13 +11127,13 @@ pci:v00001022d0000746B* - ID_MODEL_FROM_DATABASE=AMD-8111 ACPI - - pci:v00001022d0000746Bsv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 ACPI (HDAMB) - - pci:v00001022d0000746D* - ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio - - pci:v00001022d0000746Dsv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio (HDAMB) - - pci:v00001022d0000746E* - ID_MODEL_FROM_DATABASE=AMD-8111 MC97 Modem -@@ -11148,10 +11148,10 @@ pci:v00001022d00007801* - ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] - - pci:v00001022d00007801sv0000103Csd0000168B* -- ID_MODEL_FROM_DATABASE=ProBook 4535s Notebook -+ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 4535s Notebook) - - pci:v00001022d00007801sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 455 G1 Notebook) - - pci:v00001022d00007802* - ID_MODEL_FROM_DATABASE=FCH SATA Controller [RAID mode] -@@ -11172,25 +11172,25 @@ pci:v00001022d00007807* - ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller - - pci:v00001022d00007807sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d00007808* - ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller - - pci:v00001022d00007808sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d00007809* - ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller - - pci:v00001022d00007809sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d0000780B* - ID_MODEL_FROM_DATABASE=FCH SMBus Controller - - pci:v00001022d0000780Bsv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH SMBus Controller (ProBook 455 G1 Notebook) - - pci:v00001022d0000780C* - ID_MODEL_FROM_DATABASE=FCH IDE Controller -@@ -11199,16 +11199,16 @@ pci:v00001022d0000780D* - ID_MODEL_FROM_DATABASE=FCH Azalia Controller - - pci:v00001022d0000780Dsv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (ProBook 455 G1 Notebook) - - pci:v00001022d0000780Dsv00001043sd00008444* -- ID_MODEL_FROM_DATABASE=F2A85-M Series -+ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (F2A85-M Series) - - pci:v00001022d0000780E* - ID_MODEL_FROM_DATABASE=FCH LPC Bridge - - pci:v00001022d0000780Esv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH LPC Bridge (ProBook 455 G1 Notebook) - - pci:v00001022d0000780F* - ID_MODEL_FROM_DATABASE=FCH PCI Bridge -@@ -11223,7 +11223,7 @@ pci:v00001022d00007814* - ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller - - pci:v00001022d00007814sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d00007900* - ID_MODEL_FROM_DATABASE=FCH SATA Controller [IDE mode] -@@ -11262,16 +11262,16 @@ pci:v00001022d00009600* - ID_MODEL_FROM_DATABASE=RS780 Host Bridge - - pci:v00001022d00009600sv00001043sd000082F1* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=RS780 Host Bridge (M3A78-EH Motherboard) - - pci:v00001022d00009601* - ID_MODEL_FROM_DATABASE=RS880 Host Bridge - - pci:v00001022d00009601sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (A785GM-M) - - pci:v00001022d00009601sv00001043sd0000843E* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (M5A88-V EVO) - - pci:v00001022d00009602* - ID_MODEL_FROM_DATABASE=RS780/RS880 PCI to PCI bridge (int gfx) -@@ -11316,7 +11316,7 @@ pci:v00001023d00002001* - ID_MODEL_FROM_DATABASE=4DWave NX - - pci:v00001023d00002001sv0000122Dsd00001400* -- ID_MODEL_FROM_DATABASE=Trident PCI288-Q3DII (NX) -+ ID_MODEL_FROM_DATABASE=4DWave NX (Trident PCI288-Q3DII (NX)) - - pci:v00001023d00002100* - ID_MODEL_FROM_DATABASE=CyberBlade XP4m32 -@@ -11328,13 +11328,13 @@ pci:v00001023d00008400* - ID_MODEL_FROM_DATABASE=CyberBlade/i7 - - pci:v00001023d00008400sv00001023sd00008400* -- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade/i7 (CyberBlade i7 AGP) - - pci:v00001023d00008420* - ID_MODEL_FROM_DATABASE=CyberBlade/i7d - - pci:v00001023d00008420sv00000E11sd0000B15A* -- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade/i7d (CyberBlade i7 AGP) - - pci:v00001023d00008500* - ID_MODEL_FROM_DATABASE=CyberBlade/i1 -@@ -11343,19 +11343,19 @@ pci:v00001023d00008520* - ID_MODEL_FROM_DATABASE=CyberBlade i1 - - pci:v00001023d00008520sv00000E11sd0000B16E* -- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) - - pci:v00001023d00008520sv00001023sd00008520* -- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) - - pci:v00001023d00008620* - ID_MODEL_FROM_DATABASE=CyberBlade/i1 - - pci:v00001023d00008620sv00001014sd00000502* -- ID_MODEL_FROM_DATABASE=ThinkPad R30/T30 -+ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (ThinkPad R30/T30) - - pci:v00001023d00008620sv00001014sd00001025* -- ID_MODEL_FROM_DATABASE=Travelmate 352TE -+ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (Travelmate 352TE) - - pci:v00001023d00008820* - ID_MODEL_FROM_DATABASE=CyberBlade XPAi1 -@@ -11460,7 +11460,7 @@ pci:v00001023d00009880* - ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP - - pci:v00001023d00009880sv00001023sd00009880* -- ID_MODEL_FROM_DATABASE=Blade 3D -+ ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP (Blade 3D) - - pci:v00001023d00009910* - ID_MODEL_FROM_DATABASE=CyberBlade/XP -@@ -11523,7 +11523,7 @@ pci:v00001025d00001533* - ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge - - pci:v00001025d00001533sv000010B9sd00001533* -- ID_MODEL_FROM_DATABASE=ALI M1533 Aladdin IV/V ISA South Bridge -+ ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge (ALI M1533 Aladdin IV/V ISA South Bridge) - - pci:v00001025d00001535* - ID_MODEL_FROM_DATABASE=M1535 PCI Bridge + Super I/O + FIR -@@ -11532,7 +11532,7 @@ pci:v00001025d00001541* - ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] - - pci:v00001025d00001541sv000010B9sd00001541* -- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP+PCI North Bridge -+ ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] (ALI M1541 Aladdin V/V+ AGP+PCI North Bridge) - - pci:v00001025d00001542* - ID_MODEL_FROM_DATABASE=M1542 Northbridge [Aladdin V] -@@ -11658,31 +11658,31 @@ pci:v00001028d00000001* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si - - pci:v00001028d00000001sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=PowerEdge 2400 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si (PowerEdge 2400) - - pci:v00001028d00000002* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di - - pci:v00001028d00000002sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=PowerEdge 4400 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PowerEdge 4400) - - pci:v00001028d00000002sv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=PERC 3/DiV [Viper] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiV [Viper]) - - pci:v00001028d00000002sv00001028sd000000D9* -- ID_MODEL_FROM_DATABASE=PERC 3/DiL [Lexus] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiL [Lexus]) - - pci:v00001028d00000003* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si - - pci:v00001028d00000003sv00001028sd00000003* -- ID_MODEL_FROM_DATABASE=PowerEdge 2450 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si (PowerEdge 2450) - - pci:v00001028d00000004* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] - - pci:v00001028d00000004sv00001028sd00000004* -- ID_MODEL_FROM_DATABASE=PERC 3/DiF [Iguana] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] (PERC 3/DiF [Iguana]) - - pci:v00001028d00000006* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di -@@ -11700,13 +11700,13 @@ pci:v00001028d0000000A* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di - - pci:v00001028d0000000Asv00001028sd00000106* -- ID_MODEL_FROM_DATABASE=PERC 3/DiJ [Jaguar] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiJ [Jaguar]) - - pci:v00001028d0000000Asv00001028sd0000011B* -- ID_MODEL_FROM_DATABASE=PERC 3/DiD [Dagger] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiD [Dagger]) - - pci:v00001028d0000000Asv00001028sd00000121* -- ID_MODEL_FROM_DATABASE=PERC 3/DiB [Boxster] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiB [Boxster]) - - pci:v00001028d0000000C* - ID_MODEL_FROM_DATABASE=Embedded Remote Access or ERA/O -@@ -11721,7 +11721,7 @@ pci:v00001028d0000000F* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di - - pci:v00001028d0000000Fsv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di (PowerEdge 1750) - - pci:v00001028d00000010* - ID_MODEL_FROM_DATABASE=Remote Access Card 4 -@@ -11736,19 +11736,19 @@ pci:v00001028d00000013* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 - - pci:v00001028d00000013sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Si -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Si) - - pci:v00001028d00000013sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000013sv00001028sd0000016E* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000013sv00001028sd0000016F* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000013sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000014* - ID_MODEL_FROM_DATABASE=Remote Access Card 4 Daughter Card SMIC interface -@@ -11757,19 +11757,19 @@ pci:v00001028d00000015* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 - - pci:v00001028d00000015sv00001028sd00001F01* -- ID_MODEL_FROM_DATABASE=PERC 5/E Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/E Adapter RAID Controller) - - pci:v00001028d00000015sv00001028sd00001F02* -- ID_MODEL_FROM_DATABASE=PERC 5/i Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Adapter RAID Controller) - - pci:v00001028d00000015sv00001028sd00001F03* -- ID_MODEL_FROM_DATABASE=PERC 5/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Integrated RAID Controller) - - pci:v00001028d00000016* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 - - pci:v00001028d00000016sv00001028sd00001F24* -- ID_MODEL_FROM_DATABASE=PERC S300 Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 (PERC S300 Controller) - - pci:v00001029* - ID_VENDOR_FROM_DATABASE=Siemens Nixdorf IS -@@ -11787,28 +11787,28 @@ pci:v0000102Ad0000001F* - ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers - - pci:v0000102Ad0000001Fsv00009005sd0000000F* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) - - pci:v0000102Ad0000001Fsv00009005sd00000106* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) - - pci:v0000102Ad0000001Fsv00009005sd0000A180* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) - - pci:v0000102Ad000000C5* - ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller - - pci:v0000102Ad000000C5sv00001028sd000000C5* -- ID_MODEL_FROM_DATABASE=PowerEdge 2550/2650/4600 -+ ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller (PowerEdge 2550/2650/4600) - - pci:v0000102Ad000000CF* - ID_MODEL_FROM_DATABASE=AIC-7899P U160/m - - pci:v0000102Ad000000CFsv00001028sd00000106* -- ID_MODEL_FROM_DATABASE=PowerEdge 4600 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 4600) - - pci:v0000102Ad000000CFsv00001028sd00000121* -- ID_MODEL_FROM_DATABASE=PowerEdge 2650 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2650) - - pci:v0000102B* - ID_VENDOR_FROM_DATABASE=Matrox Electronics Systems Ltd. -@@ -11829,34 +11829,34 @@ pci:v0000102Bd0000051A* - ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] - - pci:v0000102Bd0000051Asv0000102Bsd00000100* -- ID_MODEL_FROM_DATABASE=MGA-1064SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1064SG Mystique) - - pci:v0000102Bd0000051Asv0000102Bsd00001100* -- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) - - pci:v0000102Bd0000051Asv0000102Bsd00001200* -- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) - - pci:v0000102Bd0000051Asv00001100sd0000102B* -- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) - - pci:v0000102Bd0000051Asv0000110Asd00000018* -- ID_MODEL_FROM_DATABASE=Scenic Pro C5 (D1025) -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (Scenic Pro C5 (D1025)) - - pci:v0000102Bd0000051B* - ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] - - pci:v0000102Bd0000051Bsv0000102Bsd0000051B* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051Bsv0000102Bsd00001100* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051Bsv0000102Bsd00001200* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051Bsv0000102Bsd00002100* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051E* - ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] AGP -@@ -11868,391 +11868,391 @@ pci:v0000102Bd00000520* - ID_MODEL_FROM_DATABASE=MGA G200 - - pci:v0000102Bd00000520sv0000102Bsd0000DBC2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000DBC8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000DBE2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000DBE8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G200 SD -+ ID_MODEL_FROM_DATABASE=MGA G200 (Millennium G200 SD) - - pci:v0000102Bd00000520sv0000102Bsd0000FF04* -- ID_MODEL_FROM_DATABASE=Marvel G200 -+ ID_MODEL_FROM_DATABASE=MGA G200 (Marvel G200) - - pci:v0000102Bd00000521* - ID_MODEL_FROM_DATABASE=MGA G200 AGP - - pci:v0000102Bd00000521sv00001014sd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd000048E9* -- ID_MODEL_FROM_DATABASE=Mystique G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd000048F8* -- ID_MODEL_FROM_DATABASE=Millennium G200 SD AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 SD AGP) - - pci:v0000102Bd00000521sv0000102Bsd00004A60* -- ID_MODEL_FROM_DATABASE=Millennium G200 LE AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 LE AGP) - - pci:v0000102Bd00000521sv0000102Bsd00004A64* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000C93C* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000C9B0* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000C9BC* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000CA60* -- ID_MODEL_FROM_DATABASE=Millennium G250 LE AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 LE AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000CA6C* -- ID_MODEL_FROM_DATABASE=Millennium G250 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000DBBC* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000DBC2* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBC3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBC8* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD4* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD5* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD9* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBE2* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBE3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBE8* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF4* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF5* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF9* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000F806* -- ID_MODEL_FROM_DATABASE=Mystique G200 Video AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 Video AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF00* -- ID_MODEL_FROM_DATABASE=MGA-G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF02* -- ID_MODEL_FROM_DATABASE=Mystique G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF04* -- ID_MODEL_FROM_DATABASE=Marvel G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Marvel G200 AGP) - - pci:v0000102Bd00000521sv0000110Asd00000032* -- ID_MODEL_FROM_DATABASE=MGA-G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) - - pci:v0000102Bd00000522* - ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) - - pci:v0000102Bd00000522sv0000103Csd000031FA* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) (ProLiant DL140 G3) - - pci:v0000102Bd00000525* - ID_MODEL_FROM_DATABASE=MGA G400/G450 - - pci:v0000102Bd00000525sv00000E11sd0000B16F* -- ID_MODEL_FROM_DATABASE=MGA-G400 AGP -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (MGA-G400 AGP) - - pci:v0000102Bd00000525sv0000102Bsd00000328* -- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) - - pci:v0000102Bd00000525sv0000102Bsd00000338* -- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) - - pci:v0000102Bd00000525sv0000102Bsd00000378* -- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SDRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SDRAM) - - pci:v0000102Bd00000525sv0000102Bsd00000541* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head) - - pci:v0000102Bd00000525sv0000102Bsd00000542* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX) - - pci:v0000102Bd00000525sv0000102Bsd00000543* -- ID_MODEL_FROM_DATABASE=Millennium G450 Single Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Single Head LX) - - pci:v0000102Bd00000525sv0000102Bsd00000641* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head) - - pci:v0000102Bd00000525sv0000102Bsd00000642* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head LX) - - pci:v0000102Bd00000525sv0000102Bsd00000643* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Single Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Single Head LX) - - pci:v0000102Bd00000525sv0000102Bsd000007C0* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LE -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LE) - - pci:v0000102Bd00000525sv0000102Bsd000007C1* -- ID_MODEL_FROM_DATABASE=Millennium G450 SDR Dual Head LE -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 SDR Dual Head LE) - - pci:v0000102Bd00000525sv0000102Bsd00000D41* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head PCI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head PCI) - - pci:v0000102Bd00000525sv0000102Bsd00000D42* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX PCI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX PCI) - - pci:v0000102Bd00000525sv0000102Bsd00000D43* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb Dual Head PCI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb Dual Head PCI) - - pci:v0000102Bd00000525sv0000102Bsd00000E00* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000E01* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000E02* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000E03* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000F80* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) - - pci:v0000102Bd00000525sv0000102Bsd00000F81* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) - - pci:v0000102Bd00000525sv0000102Bsd00000F82* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) - - pci:v0000102Bd00000525sv0000102Bsd00000F83* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) - - pci:v0000102Bd00000525sv0000102Bsd000019D8* -- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SGRAM) - - pci:v0000102Bd00000525sv0000102Bsd000019F8* -- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SGRAM) - - pci:v0000102Bd00000525sv0000102Bsd00002159* -- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head 16Mb -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head 16Mb) - - pci:v0000102Bd00000525sv0000102Bsd00002179* -- ID_MODEL_FROM_DATABASE=Millennium G400 MAX/Dual Head 32Mb -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 MAX/Dual Head 32Mb) - - pci:v0000102Bd00000525sv0000102Bsd0000217D* -- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head Max -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head Max) - - pci:v0000102Bd00000525sv0000102Bsd000023C0* -- ID_MODEL_FROM_DATABASE=Millennium G450 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) - - pci:v0000102Bd00000525sv0000102Bsd000023C1* -- ID_MODEL_FROM_DATABASE=Millennium G450 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) - - pci:v0000102Bd00000525sv0000102Bsd000023C2* -- ID_MODEL_FROM_DATABASE=Millennium G450 DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) - - pci:v0000102Bd00000525sv0000102Bsd000023C3* -- ID_MODEL_FROM_DATABASE=Millennium G450 DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) - - pci:v0000102Bd00000525sv0000102Bsd00002F58* -- ID_MODEL_FROM_DATABASE=Millennium G400 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) - - pci:v0000102Bd00000525sv0000102Bsd00002F78* -- ID_MODEL_FROM_DATABASE=Millennium G400 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) - - pci:v0000102Bd00000525sv0000102Bsd00003693* -- ID_MODEL_FROM_DATABASE=Marvel G400 AGP -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G400 AGP) - - pci:v0000102Bd00000525sv0000102Bsd00005DD0* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00005F50* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00005F51* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00005F52* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00009010* -- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head) - - pci:v0000102Bd00000525sv00001458sd00000400* -- ID_MODEL_FROM_DATABASE=GA-G400 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (GA-G400) - - pci:v0000102Bd00000525sv00001705sd00000001* -- ID_MODEL_FROM_DATABASE=Millennium G450 32MB SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB SGRAM) - - pci:v0000102Bd00000525sv00001705sd00000002* -- ID_MODEL_FROM_DATABASE=Millennium G450 16MB SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB SGRAM) - - pci:v0000102Bd00000525sv00001705sd00000003* -- ID_MODEL_FROM_DATABASE=Millennium G450 32MB -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB) - - pci:v0000102Bd00000525sv00001705sd00000004* -- ID_MODEL_FROM_DATABASE=Millennium G450 16MB -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB) - - pci:v0000102Bd00000527* - ID_MODEL_FROM_DATABASE=Parhelia - - pci:v0000102Bd00000527sv0000102Bsd00000840* -- ID_MODEL_FROM_DATABASE=Parhelia 128Mb -+ ID_MODEL_FROM_DATABASE=Parhelia (128Mb) - - pci:v0000102Bd00000527sv0000102Bsd00000850* -- ID_MODEL_FROM_DATABASE=Parhelia 256MB -+ ID_MODEL_FROM_DATABASE=Parhelia (256MB) - - pci:v0000102Bd00000527sv0000102Bsd00000870* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000527sv0000102Bsd00000880* -- ID_MODEL_FROM_DATABASE=P-256 Edge Overlap Controller -+ ID_MODEL_FROM_DATABASE=Parhelia (P-256 Edge Overlap Controller) - - pci:v0000102Bd00000528* - ID_MODEL_FROM_DATABASE=Parhelia - - pci:v0000102Bd00000528sv0000102Bsd00001020* -- ID_MODEL_FROM_DATABASE=Parhelia 128MB -+ ID_MODEL_FROM_DATABASE=Parhelia (128MB) - - pci:v0000102Bd00000528sv0000102Bsd00001030* -- ID_MODEL_FROM_DATABASE=Parhelia 256 MB Dual DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (256 MB Dual DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001040* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001050* -- ID_MODEL_FROM_DATABASE=Sono S20 -+ ID_MODEL_FROM_DATABASE=Parhelia (Sono S20) - - pci:v0000102Bd00000528sv0000102Bsd00001060* -- ID_MODEL_FROM_DATABASE=PJ-30L -+ ID_MODEL_FROM_DATABASE=Parhelia (PJ-30L) - - pci:v0000102Bd00000528sv0000102Bsd00001070* -- ID_MODEL_FROM_DATABASE=PJ-40L -+ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40L) - - pci:v0000102Bd00000528sv0000102Bsd00001421* -- ID_MODEL_FROM_DATABASE=MED5mp -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp) - - pci:v0000102Bd00000528sv0000102Bsd00001431* -- ID_MODEL_FROM_DATABASE=MED3mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001451* -- ID_MODEL_FROM_DATABASE=MED5mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001491* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd000014B1* -- ID_MODEL_FROM_DATABASE=MED3mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd000014C1* -- ID_MODEL_FROM_DATABASE=MED5mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd000014E1* -- ID_MODEL_FROM_DATABASE=Parhelia PCI 256MB -+ ID_MODEL_FROM_DATABASE=Parhelia (PCI 256MB) - - pci:v0000102Bd00000528sv0000102Bsd000014F1* -- ID_MODEL_FROM_DATABASE=Parhelia Precision SGT -+ ID_MODEL_FROM_DATABASE=Parhelia (Precision SGT) - - pci:v0000102Bd00000528sv0000102Bsd00001501* -- ID_MODEL_FROM_DATABASE=ATC-4MP -+ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) - - pci:v0000102Bd00000528sv0000102Bsd00001511* -- ID_MODEL_FROM_DATABASE=ATC-4MP -+ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) - - pci:v0000102Bd00000528sv0000102Bsd00001521* -- ID_MODEL_FROM_DATABASE=TheatreVUE T30 -+ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T30) - - pci:v0000102Bd00000528sv0000102Bsd00001531* -- ID_MODEL_FROM_DATABASE=TheatreVUE T20 -+ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T20) - - pci:v0000102Bd00000528sv0000102Bsd00001541* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001551* -- ID_MODEL_FROM_DATABASE=MED3mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001561* -- ID_MODEL_FROM_DATABASE=MED5mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001571* -- ID_MODEL_FROM_DATABASE=Parhelia DL256 PCI -+ ID_MODEL_FROM_DATABASE=Parhelia (DL256 PCI) - - pci:v0000102Bd00000528sv0000102Bsd00001591* -- ID_MODEL_FROM_DATABASE=Parhelia Precision SDT -+ ID_MODEL_FROM_DATABASE=Parhelia (Precision SDT) - - pci:v0000102Bd00000528sv0000102Bsd000015A1* -- ID_MODEL_FROM_DATABASE=MED4mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED4mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00002011* -- ID_MODEL_FROM_DATABASE=Parhelia HR256 -+ ID_MODEL_FROM_DATABASE=Parhelia (HR256) - - pci:v0000102Bd00000528sv0000102Bsd00002021* -- ID_MODEL_FROM_DATABASE=QID Pro -+ ID_MODEL_FROM_DATABASE=Parhelia (QID Pro) - - pci:v0000102Bd00000528sv0000102Bsd00002061* -- ID_MODEL_FROM_DATABASE=PJ-40LP -+ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40LP) - - pci:v0000102Bd00000528sv0000102Bsd00002081* -- ID_MODEL_FROM_DATABASE=EWS Quad -+ ID_MODEL_FROM_DATABASE=Parhelia (EWS Quad) - - pci:v0000102Bd00000528sv0000102Bsd00002411* -- ID_MODEL_FROM_DATABASE=PPX-OUT8 -+ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT8) - - pci:v0000102Bd00000528sv0000102Bsd00002421* -- ID_MODEL_FROM_DATABASE=VPX-OUT8 -+ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT8) - - pci:v0000102Bd00000528sv0000102Bsd00002441* -- ID_MODEL_FROM_DATABASE=PPX-OUT4 -+ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT4) - - pci:v0000102Bd00000528sv0000102Bsd00002451* -- ID_MODEL_FROM_DATABASE=VPX-OUT4 -+ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT4) - - pci:v0000102Bd00000528sv0000102Bsd00002491* -- ID_MODEL_FROM_DATABASE=LPX-OUT4 -+ ID_MODEL_FROM_DATABASE=Parhelia (LPX-OUT4) - - pci:v0000102Bd00000530* - ID_MODEL_FROM_DATABASE=MGA G200EV -@@ -12261,37 +12261,37 @@ pci:v0000102Bd00000532* - ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 - - pci:v0000102Bd00000532sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R710 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R610 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T610 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M610 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R410 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T410 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M710 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd000002A4* -- ID_MODEL_FROM_DATABASE=PowerEdge T310 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) - - pci:v0000102Bd00000533* - ID_MODEL_FROM_DATABASE=MGA G200EH - - pci:v0000102Bd00000533sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=MGA G200EH (iLO4) - - pci:v0000102Bd00000534* - ID_MODEL_FROM_DATABASE=G200eR2 -@@ -12300,40 +12300,40 @@ pci:v0000102Bd00000540* - ID_MODEL_FROM_DATABASE=M91XX - - pci:v0000102Bd00000540sv0000102Bsd00002080* -- ID_MODEL_FROM_DATABASE=M9140 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9140 LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd000020C0* -- ID_MODEL_FROM_DATABASE=Xenia -+ ID_MODEL_FROM_DATABASE=M91XX (Xenia) - - pci:v0000102Bd00000540sv0000102Bsd000020C1* -- ID_MODEL_FROM_DATABASE=Xenia Pro -+ ID_MODEL_FROM_DATABASE=M91XX (Xenia Pro) - - pci:v0000102Bd00000540sv0000102Bsd00002100* -- ID_MODEL_FROM_DATABASE=M9120 PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9120 PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002140* -- ID_MODEL_FROM_DATABASE=M9125 PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9125 PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002180* -- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd000021C0* -- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x1 -+ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x1) - - pci:v0000102Bd00000540sv0000102Bsd00002200* -- ID_MODEL_FROM_DATABASE=VDA1164 Output Board -+ ID_MODEL_FROM_DATABASE=M91XX (VDA1164 Output Board) - - pci:v0000102Bd00000540sv0000102Bsd00002240* -- ID_MODEL_FROM_DATABASE=M9148 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9148 LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002241* -- ID_MODEL_FROM_DATABASE=M9138 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9138 LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002280* -- ID_MODEL_FROM_DATABASE=M9188 ATX PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9188 ATX PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd000022C0* -- ID_MODEL_FROM_DATABASE=M9128 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9128 LP PCIe x16) - - pci:v0000102Bd00000D10* - ID_MODEL_FROM_DATABASE=MGA Ultima/Impression -@@ -12342,34 +12342,34 @@ pci:v0000102Bd00001000* - ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] - - pci:v0000102Bd00001000sv0000102Bsd0000FF01* -- ID_MODEL_FROM_DATABASE=Productiva G100 -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100) - - pci:v0000102Bd00001000sv0000102Bsd0000FF05* -- ID_MODEL_FROM_DATABASE=Productiva G100 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100 Multi-Monitor) - - pci:v0000102Bd00001001* - ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP - - pci:v0000102Bd00001001sv0000102Bsd00001001* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF00* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF01* -- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (Millennium G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF04* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF05* -- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP Multi-Monitor) - - pci:v0000102Bd00001001sv0000110Asd0000001E* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00002007* - ID_MODEL_FROM_DATABASE=MGA Mistral -@@ -12378,163 +12378,163 @@ pci:v0000102Bd00002527* - ID_MODEL_FROM_DATABASE=Millennium G550 - - pci:v0000102Bd00002527sv0000102Bsd00000F42* -- ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI -+ ID_MODEL_FROM_DATABASE=Millennium G550 (Matrox G550 Low Profile PCI) - - pci:v0000102Bd00002527sv0000102Bsd00000F83* - ID_MODEL_FROM_DATABASE=Millennium G550 - - pci:v0000102Bd00002527sv0000102Bsd00000F84* -- ID_MODEL_FROM_DATABASE=Millennium G550 Dual Head DDR 32Mb -+ ID_MODEL_FROM_DATABASE=Millennium G550 (Dual Head DDR 32Mb) - - pci:v0000102Bd00002527sv0000102Bsd00001E41* - ID_MODEL_FROM_DATABASE=Millennium G550 - - pci:v0000102Bd00002527sv0000102Bsd00002300* -- ID_MODEL_FROM_DATABASE=Millennium G550 LP PCIE -+ ID_MODEL_FROM_DATABASE=Millennium G550 (LP PCIE) - - pci:v0000102Bd00002537* - ID_MODEL_FROM_DATABASE=Millenium P650/P750 - - pci:v0000102Bd00002537sv0000102Bsd00001820* -- ID_MODEL_FROM_DATABASE=Millennium P750 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P750 64MB) - - pci:v0000102Bd00002537sv0000102Bsd00001830* -- ID_MODEL_FROM_DATABASE=Millennium P650 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 64MB) - - pci:v0000102Bd00002537sv0000102Bsd00001850* -- ID_MODEL_FROM_DATABASE=RAD2mp -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD2mp) - - pci:v0000102Bd00002537sv0000102Bsd00001860* -- ID_MODEL_FROM_DATABASE=RAD3mp -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD3mp) - - pci:v0000102Bd00002537sv0000102Bsd00001880* -- ID_MODEL_FROM_DATABASE=Sono S10 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Sono S10) - - pci:v0000102Bd00002537sv0000102Bsd00001C10* -- ID_MODEL_FROM_DATABASE=QID 128MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID 128MB) - - pci:v0000102Bd00002537sv0000102Bsd00002811* -- ID_MODEL_FROM_DATABASE=Millennium P650 Low-profile PCI 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 Low-profile PCI 64MB) - - pci:v0000102Bd00002537sv0000102Bsd00002821* -- ID_MODEL_FROM_DATABASE=Millenium P650 Low-profile PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millenium P650 Low-profile PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002841* -- ID_MODEL_FROM_DATABASE=RAD PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002851* -- ID_MODEL_FROM_DATABASE=Spectrum PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Spectrum PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002871* -- ID_MODEL_FROM_DATABASE=EpicA TC2 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC2) - - pci:v0000102Bd00002537sv0000102Bsd00002C11* -- ID_MODEL_FROM_DATABASE=QID Low-profile PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID Low-profile PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002C21* -- ID_MODEL_FROM_DATABASE=QID LP PCI LW -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI LW) - - pci:v0000102Bd00002537sv0000102Bsd00002C31* -- ID_MODEL_FROM_DATABASE=QID LP PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002C41* -- ID_MODEL_FROM_DATABASE=EpicA TC4 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC4) - - pci:v0000102Bd00002537sv0000102Bsd00003001* -- ID_MODEL_FROM_DATABASE=Extio F1400 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1400) - - pci:v0000102Bd00002537sv0000102Bsd00003011* -- ID_MODEL_FROM_DATABASE=Extio F1220 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1220) - - pci:v0000102Bd00002537sv0000102Bsd00003041* -- ID_MODEL_FROM_DATABASE=RG-200DL -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-200DL) - - pci:v0000102Bd00002537sv0000102Bsd00003051* -- ID_MODEL_FROM_DATABASE=RG-400SL -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-400SL) - - pci:v0000102Bd00002537sv0000102Bsd00003061* -- ID_MODEL_FROM_DATABASE=Extio F1420 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1420) - - pci:v0000102Bd00002537sv0000102Bsd00003081* -- ID_MODEL_FROM_DATABASE=Extio F1240 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1240) - - pci:v0000102Bd00002538* - ID_MODEL_FROM_DATABASE=Millenium P650 PCIe - - pci:v0000102Bd00002538sv0000102Bsd00000847* -- ID_MODEL_FROM_DATABASE=RAD PCIe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (RAD PCIe) - - pci:v0000102Bd00002538sv0000102Bsd000008C7* -- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 128MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 128MB) - - pci:v0000102Bd00002538sv0000102Bsd00000907* -- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 64MB) - - pci:v0000102Bd00002538sv0000102Bsd00000947* -- ID_MODEL_FROM_DATABASE=Parhelia APVe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) - - pci:v0000102Bd00002538sv0000102Bsd00000987* -- ID_MODEL_FROM_DATABASE=ATC PCIe 4MP -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (ATC PCIe 4MP) - - pci:v0000102Bd00002538sv0000102Bsd00001047* -- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 128MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 128MB) - - pci:v0000102Bd00002538sv0000102Bsd00001087* -- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 64MB) - - pci:v0000102Bd00002538sv0000102Bsd00001801* -- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe x1 -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (x1) - - pci:v0000102Bd00002538sv0000102Bsd00002538* -- ID_MODEL_FROM_DATABASE=Parhelia APVe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) - - pci:v0000102Bd00002538sv0000102Bsd00003007* -- ID_MODEL_FROM_DATABASE=QID Low-profile PCIe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID Low-profile PCIe) - - pci:v0000102Bd00002538sv0000102Bsd00003087* -- ID_MODEL_FROM_DATABASE=Aurora VX3mp -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Aurora VX3mp) - - pci:v0000102Bd00002538sv0000102Bsd000030C7* -- ID_MODEL_FROM_DATABASE=QID LP PCIe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID LP PCIe) - - pci:v0000102Bd00002539* - ID_MODEL_FROM_DATABASE=Millennium P690 - - pci:v0000102Bd00002539sv0000102Bsd00000040* -- ID_MODEL_FROM_DATABASE=Millenium P690 PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd00000042* -- ID_MODEL_FROM_DATABASE=ONYX -+ ID_MODEL_FROM_DATABASE=Millennium P690 (ONYX) - - pci:v0000102Bd00002539sv0000102Bsd00000043* -- ID_MODEL_FROM_DATABASE=SPECTRA -+ ID_MODEL_FROM_DATABASE=Millennium P690 (SPECTRA) - - pci:v0000102Bd00002539sv0000102Bsd00000080* -- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd00000081* -- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd00000082* -- ID_MODEL_FROM_DATABASE=RAD LPX PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd000000C0* -- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCI) - - pci:v0000102Bd00002539sv0000102Bsd000000C2* -- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCI) - - pci:v0000102Bd00002539sv0000102Bsd000000C3* -- ID_MODEL_FROM_DATABASE=RAD LPX PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCI) - - pci:v0000102Bd00002539sv0000102Bsd00000101* -- ID_MODEL_FROM_DATABASE=Millenium P690 PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCI) - - pci:v0000102Bd00002539sv0000102Bsd00000140* -- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x1 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x1) - - pci:v0000102Bd00002539sv0000102Bsd00000180* -- ID_MODEL_FROM_DATABASE=Display Wall IP Decode 128 MB -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Display Wall IP Decode 128 MB) - - pci:v0000102Bd00004164* - ID_MODEL_FROM_DATABASE=Morphis QxT frame grabber -@@ -12558,43 +12558,43 @@ pci:v0000102Bd0000475D* - ID_MODEL_FROM_DATABASE=Vio frame grabber family - - pci:v0000102Bd0000475Dsv0000102Bsd00004B90* -- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber (single channel) -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber (single channel)) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B91* -- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B92* -- ID_MODEL_FROM_DATABASE=Vio Analog frame grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Analog frame grabber) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B93* -- ID_MODEL_FROM_DATABASE=Vio SDI Frame Grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio SDI Frame Grabber) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B94* -- ID_MODEL_FROM_DATABASE=Vio DVI-A frame grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio DVI-A frame grabber) - - pci:v0000102Bd0000475F* - ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber - - pci:v0000102Bd0000475Fsv0000102Bsd0000475F* -- ID_MODEL_FROM_DATABASE=Solios eCL/XCL-F frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eCL/XCL-F frame grabber) - - pci:v0000102Bd0000475Fsv0000102Bsd00004D5F* -- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Full) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eV-CL (single-Full) frame grabber) - - pci:v0000102Bd0000475Fsv0000102Bsd00004E5F* -- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Full) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eM-CL (single-Full) frame grabber) - - pci:v0000102Bd000047A1* - ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber - - pci:v0000102Bd000047A1sv0000102Bsd00004BE0* -- ID_MODEL_FROM_DATABASE=Solios eA/XA (single) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (single) frame grabber) - - pci:v0000102Bd000047A1sv0000102Bsd00004BE1* -- ID_MODEL_FROM_DATABASE=Solios eA/XA (dual) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (dual) frame grabber) - - pci:v0000102Bd000047A1sv0000102Bsd00004BE2* -- ID_MODEL_FROM_DATABASE=Solios eA/XA (quad) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (quad) frame grabber) - - pci:v0000102Bd000047A2* - ID_MODEL_FROM_DATABASE=Solios COM port -@@ -12603,25 +12603,25 @@ pci:v0000102Bd000047C1* - ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber - - pci:v0000102Bd000047C1sv0000102Bsd00000000* -- ID_MODEL_FROM_DATABASE=Solios frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004B80* -- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (single-Medium) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (single-Medium) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004B81* -- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (dual-Base) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (dual-Base) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004D80* -- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Medium) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (single-Medium) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004D81* -- ID_MODEL_FROM_DATABASE=Solios eV-CL (dual-Base) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (dual-Base) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004E80* -- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Medium) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (single-Medium) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004E81* -- ID_MODEL_FROM_DATABASE=Solios eM-CL (dual-Base) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (dual-Base) frame grabber) - - pci:v0000102Bd000047C2* - ID_MODEL_FROM_DATABASE=Solios COM port -@@ -12630,34 +12630,34 @@ pci:v0000102Bd00004949* - ID_MODEL_FROM_DATABASE=Radient frame grabber family - - pci:v0000102Bd00004949sv0000102Bsd00000010* -- ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Single-full) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000011* -- ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCLV (Single-full) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000020* -- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-base) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000030* -- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-full) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-full) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000040* -- ID_MODEL_FROM_DATABASE=Radient eCL (Quad-base) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Quad-base) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000050* -- ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Golden) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001010* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-6) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001015* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (dual CXP-6) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001020* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-3) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001050* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (Golden) frame grabber) - - pci:v0000102Bd00004CDC* - ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator -@@ -12687,22 +12687,22 @@ pci:v0000102Cd000000C0sv0000102Csd000000C0* - ID_MODEL_FROM_DATABASE=F69000 HiQVideo - - pci:v0000102Cd000000C0sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001010* -- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CP5/CR6 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001020* -- ID_MODEL_FROM_DATABASE=VR6 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (VR6 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001030* -- ID_MODEL_FROM_DATABASE=PC5 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (PC5 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CT7 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CE7 mainboard) - - pci:v0000102Cd000000D0* - ID_MODEL_FROM_DATABASE=F65545 -@@ -12723,10 +12723,10 @@ pci:v0000102Cd000000E5* - ID_MODEL_FROM_DATABASE=F65555 HiQVPro - - pci:v0000102Cd000000E5sv00000E11sd0000B049* -- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop Display Controller -+ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Armada 1700 Laptop Display Controller) - - pci:v0000102Cd000000E5sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite Pro/Satellite -+ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Satellite Pro/Satellite) - - pci:v0000102Cd000000F0* - ID_MODEL_FROM_DATABASE=F68554 -@@ -12741,16 +12741,16 @@ pci:v0000102Cd00000C30* - ID_MODEL_FROM_DATABASE=F69030 - - pci:v0000102Cd00000C30sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v0000102Cd00000C30sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CT7 mainboard) - - pci:v0000102Cd00000C30sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CE7 mainboard) - - pci:v0000102Cd00000C30sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CT8 mainboard) - - pci:v0000102D* - ID_VENDOR_FROM_DATABASE=Wyse Technology Inc. -@@ -12894,34 +12894,34 @@ pci:v00001033d00000035* - ID_MODEL_FROM_DATABASE=OHCI USB Controller - - pci:v00001033d00000035sv00001033sd00000035* -- ID_MODEL_FROM_DATABASE=USB Controller -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB Controller) - - pci:v00001033d00000035sv0000103Csd00001293* -- ID_MODEL_FROM_DATABASE=USB add-in card -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB add-in card) - - pci:v00001033d00000035sv0000103Csd00001294* -- ID_MODEL_FROM_DATABASE=USB 2.0 add-in card -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB 2.0 add-in card) - - pci:v00001033d00000035sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=USB -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB) - - pci:v00001033d00000035sv000012EEsd00007000* -- ID_MODEL_FROM_DATABASE=Root Hub -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) - - pci:v00001033d00000035sv000014C2sd00000105* -- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PTI-205N USB 2.0 Host Controller) - - pci:v00001033d00000035sv00001799sd00000001* -- ID_MODEL_FROM_DATABASE=Root Hub -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) - - pci:v00001033d00000035sv00001931sd0000000A* -- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (PPP data) -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (PPP data)) - - pci:v00001033d00000035sv00001931sd0000000B* -- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (GSM data) -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (GSM data)) - - pci:v00001033d00000035sv0000807Dsd00000035* -- ID_MODEL_FROM_DATABASE=PCI-USB2 (OHCI subsystem) -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PCI-USB2 (OHCI subsystem)) - - pci:v00001033d0000003B* - ID_MODEL_FROM_DATABASE=PCI to C-bus Bridge -@@ -12942,28 +12942,28 @@ pci:v00001033d00000067* - ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset - - pci:v00001033d00000067sv00001010sd00000020* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) - - pci:v00001033d00000067sv00001010sd00000080* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) - - pci:v00001033d00000067sv00001010sd00000088* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) - - pci:v00001033d00000067sv00001010sd00000090* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) - - pci:v00001033d00000067sv00001010sd00000098* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) - - pci:v00001033d00000067sv00001010sd000000A0* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) - - pci:v00001033d00000067sv00001010sd000000A8* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 32Mb) - - pci:v00001033d00000067sv00001010sd00000120* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) - - pci:v00001033d00000072* - ID_MODEL_FROM_DATABASE=uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr -@@ -12972,7 +12972,7 @@ pci:v00001033d00000074* - ID_MODEL_FROM_DATABASE=56k Voice Modem - - pci:v00001033d00000074sv00001033sd00008014* -- ID_MODEL_FROM_DATABASE=RCV56ACF 56k Voice Modem -+ ID_MODEL_FROM_DATABASE=56k Voice Modem (RCV56ACF 56k Voice Modem) - - pci:v00001033d0000009B* - ID_MODEL_FROM_DATABASE=Vrc5476 -@@ -12987,7 +12987,7 @@ pci:v00001033d000000CD* - ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller - - pci:v00001033d000000CDsv000012EEsd00008011* -- ID_MODEL_FROM_DATABASE=Root hub -+ ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller (Root hub) - - pci:v00001033d000000CE* - ID_MODEL_FROM_DATABASE=uPD72871 [Firewarden] IEEE1394a OHCI 1.0 Link/1-port PHY Controller -@@ -12999,16 +12999,16 @@ pci:v00001033d000000E0* - ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller - - pci:v00001033d000000E0sv000012EEsd00007001* -- ID_MODEL_FROM_DATABASE=Root hub -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root hub) - - pci:v00001033d000000E0sv000014C2sd00000205* -- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PTI-205N USB 2.0 Host Controller) - - pci:v00001033d000000E0sv00001799sd00000002* -- ID_MODEL_FROM_DATABASE=Root Hub -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root Hub) - - pci:v00001033d000000E0sv0000807Dsd00001043* -- ID_MODEL_FROM_DATABASE=PCI-USB2 (EHCI subsystem) -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PCI-USB2 (EHCI subsystem)) - - pci:v00001033d000000E7* - ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller -@@ -13032,22 +13032,22 @@ pci:v00001033d00000194* - ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller - - pci:v00001033d00000194sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Precision M4600) - - pci:v00001033d00000194sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3350) - - pci:v00001033d00000194sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3750) - - pci:v00001033d00000194sv00001043sd00008413* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (P8P67 Deluxe Motherboard) - - pci:v00001033d00000194sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (QEMU Virtual Machine) - - pci:v00001033d00000194sv00001B96sd00000001* -- ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (USB 3.0 PCIe Card) - - pci:v00001033d000001E7* - ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller -@@ -13116,7 +13116,7 @@ pci:v00001039d00000182* - ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller - - pci:v00001039d00000182sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller (D2030-A1) - - pci:v00001039d00000186* - ID_MODEL_FROM_DATABASE=AHCI Controller (0106) -@@ -13131,7 +13131,7 @@ pci:v00001039d00000200* - ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA - - pci:v00001039d00000200sv00001039sd00000000* -- ID_MODEL_FROM_DATABASE=SiS5597 SVGA (Shared RAM) -+ ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA (SiS5597 SVGA (Shared RAM)) - - pci:v00001039d00000204* - ID_MODEL_FROM_DATABASE=82C204 -@@ -13143,7 +13143,7 @@ pci:v00001039d00000300* - ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter - - pci:v00001039d00000300sv0000107Dsd00002720* -- ID_MODEL_FROM_DATABASE=Leadtek WinFast VR300 -+ ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter (Leadtek WinFast VR300) - - pci:v00001039d00000310* - ID_MODEL_FROM_DATABASE=315H PCI/AGP VGA Display Adapter -@@ -13239,7 +13239,7 @@ pci:v00001039d00000741* - ID_MODEL_FROM_DATABASE=741/741GX/M741 Host - - pci:v00001039d00000741sv00001849sd00000741* -- ID_MODEL_FROM_DATABASE=K7S41/K7S41GX motherboard -+ ID_MODEL_FROM_DATABASE=741/741GX/M741 Host (K7S41/K7S41GX motherboard) - - pci:v00001039d00000745* - ID_MODEL_FROM_DATABASE=745 Host -@@ -13257,25 +13257,25 @@ pci:v00001039d00000761* - ID_MODEL_FROM_DATABASE=761/M761 Host - - pci:v00001039d00000761sv00001734sd00001099* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=761/M761 Host (D2030-A1 Motherboard) - - pci:v00001039d00000900* - ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet - - pci:v00001039d00000900sv00001019sd00000A14* -- ID_MODEL_FROM_DATABASE=K7S5A motherboard -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (K7S5A motherboard) - - pci:v00001039d00000900sv00001039sd00000900* -- ID_MODEL_FROM_DATABASE=SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA] -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA]) - - pci:v00001039d00000900sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (CUSI-FX motherboard) - - pci:v00001039d00000900sv00001043sd000080A7* -- ID_MODEL_FROM_DATABASE=Motherboard P4S800D-X -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (Motherboard P4S800D-X) - - pci:v00001039d00000900sv00001462sd00000900* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (MS-6701 motherboard) - - pci:v00001039d00000961* - ID_MODEL_FROM_DATABASE=SiS961 [MuTIOL Media IO] -@@ -13335,22 +13335,22 @@ pci:v00001039d00005513* - ID_MODEL_FROM_DATABASE=5513 IDE Controller - - pci:v00001039d00005513sv00001019sd00000970* -- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (P6STP-FL motherboard) - - pci:v00001039d00005513sv00001039sd00005513* -- ID_MODEL_FROM_DATABASE=SiS5513 EIDE Controller (A,B step) -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (SiS5513 EIDE Controller (A,B step)) - - pci:v00001039d00005513sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (CUSI-FX motherboard) - - pci:v00001039d00005513sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (MS-6701 motherboard) - - pci:v00001039d00005513sv00001631sd00005513* -- ID_MODEL_FROM_DATABASE=GA-8SIML Rev1.0 Motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (GA-8SIML Rev1.0 Motherboard) - - pci:v00001039d00005513sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (D2030-A1 Motherboard) - - pci:v00001039d00005517* - ID_MODEL_FROM_DATABASE=5517 -@@ -13389,13 +13389,13 @@ pci:v00001039d00006300* - ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter - - pci:v00001039d00006300sv00001019sd00000970* -- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard -+ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (P6STP-FL motherboard) - - pci:v00001039d00006300sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (CUSI-FX motherboard) - - pci:v00001039d00006300sv0000104Dsd000080E2* -- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 -+ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (VAIO PCV-J200) - - pci:v00001039d00006306* - ID_MODEL_FROM_DATABASE=530/620 PCI/AGP VGA Display Adapter -@@ -13404,49 +13404,49 @@ pci:v00001039d00006325* - ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter - - pci:v00001039d00006325sv00001039sd00006325* -- ID_MODEL_FROM_DATABASE=SiS 651 onboard [Asus P4SC-EA] -+ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651 onboard [Asus P4SC-EA]) - - pci:v00001039d00006325sv00001631sd00001004* -- ID_MODEL_FROM_DATABASE=SiS 651C onboard [Gigabyte GA-8SIML Rev1.0] -+ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651C onboard [Gigabyte GA-8SIML Rev1.0]) - - pci:v00001039d00006326* - ID_MODEL_FROM_DATABASE=86C326 5598/6326 - - pci:v00001039d00006326sv00001039sd00006326* -- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) - - pci:v00001039d00006326sv00001092sd00000A50* -- ID_MODEL_FROM_DATABASE=SpeedStar A50 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A50) - - pci:v00001039d00006326sv00001092sd00000A70* -- ID_MODEL_FROM_DATABASE=SpeedStar A70 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) - - pci:v00001039d00006326sv00001092sd00004910* -- ID_MODEL_FROM_DATABASE=SpeedStar A70 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) - - pci:v00001039d00006326sv00001092sd00004920* -- ID_MODEL_FROM_DATABASE=SpeedStar A70 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) - - pci:v00001039d00006326sv000010B0sd00006326* -- ID_MODEL_FROM_DATABASE=S6110-B (AGP) -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (S6110-B (AGP)) - - pci:v00001039d00006326sv00001569sd00006326* -- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) - - pci:v00001039d00006330* - ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter - - pci:v00001039d00006330sv00001039sd00006330* -- ID_MODEL_FROM_DATABASE=[M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter ([M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter) - - pci:v00001039d00006330sv00001043sd00008113* -- ID_MODEL_FROM_DATABASE=SiS Real 256E (ASUS P5S800-VM motherboard) -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS Real 256E (ASUS P5S800-VM motherboard)) - - pci:v00001039d00006330sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=SiS661FX GUI 2D/3D Accelerator -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS661FX GUI 2D/3D Accelerator) - - pci:v00001039d00006330sv00001734sd00001099* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (D2030-A1) - - pci:v00001039d00006350* - ID_MODEL_FROM_DATABASE=770/670 PCIE VGA Display Adapter -@@ -13458,70 +13458,70 @@ pci:v00001039d00007001* - ID_MODEL_FROM_DATABASE=USB 1.1 Controller - - pci:v00001039d00007001sv00001019sd00000A14* -- ID_MODEL_FROM_DATABASE=K7S5A motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (K7S5A motherboard) - - pci:v00001039d00007001sv00001039sd00007000* -- ID_MODEL_FROM_DATABASE=Onboard USB Controller -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Onboard USB Controller) - - pci:v00001039d00007001sv00001462sd00005470* -- ID_MODEL_FROM_DATABASE=ECS K7SOM+ motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ECS K7SOM+ motherboard) - - pci:v00001039d00007001sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (MS-6701 motherboard) - - pci:v00001039d00007001sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (D2030-A1 Motherboard) - - pci:v00001039d00007002* - ID_MODEL_FROM_DATABASE=USB 2.0 Controller - - pci:v00001039d00007002sv00001462sd00005470* -- ID_MODEL_FROM_DATABASE=K7SOM+ 5.2C Motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (K7SOM+ 5.2C Motherboard) - - pci:v00001039d00007002sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (MS-6701 motherboard) - - pci:v00001039d00007002sv00001509sd00007002* -- ID_MODEL_FROM_DATABASE=Onboard USB Controller -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (Onboard USB Controller) - - pci:v00001039d00007002sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (D2030-A1) - - pci:v00001039d00007007* - ID_MODEL_FROM_DATABASE=FireWire Controller - - pci:v00001039d00007007sv00001462sd0000701D* -- ID_MODEL_FROM_DATABASE=MS-6701 -+ ID_MODEL_FROM_DATABASE=FireWire Controller (MS-6701) - - pci:v00001039d00007012* - ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller - - pci:v00001039d00007012sv00001019sd00000F05* -- ID_MODEL_FROM_DATABASE=A928 (i-Buddie) -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A928 (i-Buddie)) - - pci:v00001039d00007012sv00001039sd00007012* -- ID_MODEL_FROM_DATABASE=SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller) - - pci:v00001039d00007012sv00001043sd0000818F* -- ID_MODEL_FROM_DATABASE=A8S-X Motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A8S-X Motherboard) - - pci:v00001039d00007012sv000013F6sd00000300* -- ID_MODEL_FROM_DATABASE=CMI9739(A) on ECS K7SOM+ motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (CMI9739(A) on ECS K7SOM+ motherboard) - - pci:v00001039d00007012sv00001462sd00005850* -- ID_MODEL_FROM_DATABASE=MSI 648 Max (MS-6585) -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MSI 648 Max (MS-6585)) - - pci:v00001039d00007012sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MS-6701 motherboard) - - pci:v00001039d00007012sv000015BDsd00001001* -- ID_MODEL_FROM_DATABASE=DFI 661FX motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (DFI 661FX motherboard) - - pci:v00001039d00007012sv00001734sd0000109F* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (D2030-A1 Motherboard) - - pci:v00001039d00007012sv00001849sd00007012* -- ID_MODEL_FROM_DATABASE=K7S41GX motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (K7S41GX motherboard) - - pci:v00001039d00007013* - ID_MODEL_FROM_DATABASE=AC'97 Modem Controller -@@ -13530,7 +13530,7 @@ pci:v00001039d00007016* - ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter - - pci:v00001039d00007016sv00001039sd00007016* -- ID_MODEL_FROM_DATABASE=SiS7016 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter (SiS7016 10/100 Ethernet Adapter) - - pci:v00001039d00007018* - ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator -@@ -13560,7 +13560,7 @@ pci:v00001039d00007018sv00001043sd0000800B* - ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator - - pci:v00001039d00007018sv0000104Dsd000080E2* -- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 -+ ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator (VAIO PCV-J200) - - pci:v00001039d00007018sv00001054sd00007018* - ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator -@@ -13635,25 +13635,25 @@ pci:v0000103Cd00001029* - ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter - - pci:v0000103Cd00001029sv0000107Esd0000000F* -- ID_MODEL_FROM_DATABASE=Interphase 5560 Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (Interphase 5560 Fibre Channel Adapter) - - pci:v0000103Cd00001029sv00009004sd00009210* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd00001029sv00009004sd00009211* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd0000102A* - ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter - - pci:v0000103Cd0000102Asv0000107Esd0000000E* -- ID_MODEL_FROM_DATABASE=Interphase 5540/5541 Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (Interphase 5540/5541 Fibre Channel Adapter) - - pci:v0000103Cd0000102Asv00009004sd00009110* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd0000102Asv00009004sd00009111* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd00001030* - ID_MODEL_FROM_DATABASE=J2585A DeskDirect 10/100VG NIC -@@ -13662,13 +13662,13 @@ pci:v0000103Cd00001031* - ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter - - pci:v0000103Cd00001031sv0000103Csd00001040* -- ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC -+ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2973A DeskDirect 10BaseT NIC) - - pci:v0000103Cd00001031sv0000103Csd00001041* -- ID_MODEL_FROM_DATABASE=J2585B DeskDirect 10/100VG NIC -+ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2585B DeskDirect 10/100VG NIC) - - pci:v0000103Cd00001031sv0000103Csd00001042* -- ID_MODEL_FROM_DATABASE=J2970A DeskDirect 10BaseT/2 NIC -+ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2970A DeskDirect 10BaseT/2 NIC) - - pci:v0000103Cd00001040* - ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC -@@ -13683,28 +13683,28 @@ pci:v0000103Cd00001048* - ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART - - pci:v0000103Cd00001048sv0000103Csd00001049* -- ID_MODEL_FROM_DATABASE=Tosca Console -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Console) - - pci:v0000103Cd00001048sv0000103Csd0000104A* -- ID_MODEL_FROM_DATABASE=Tosca Secondary -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Secondary) - - pci:v0000103Cd00001048sv0000103Csd0000104B* -- ID_MODEL_FROM_DATABASE=Maestro SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Maestro SP2) - - pci:v0000103Cd00001048sv0000103Csd00001223* -- ID_MODEL_FROM_DATABASE=Superdome Console -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Superdome Console) - - pci:v0000103Cd00001048sv0000103Csd00001226* -- ID_MODEL_FROM_DATABASE=Keystone SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Keystone SP2) - - pci:v0000103Cd00001048sv0000103Csd00001227* -- ID_MODEL_FROM_DATABASE=Powerbar SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Powerbar SP2) - - pci:v0000103Cd00001048sv0000103Csd00001282* -- ID_MODEL_FROM_DATABASE=Everest SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Everest SP2) - - pci:v0000103Cd00001048sv0000103Csd00001301* -- ID_MODEL_FROM_DATABASE=Diva RMP3 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Diva RMP3) - - pci:v0000103Cd00001054* - ID_MODEL_FROM_DATABASE=PCI Local Bus Adapter -@@ -13758,7 +13758,7 @@ pci:v0000103Cd00001290* - ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port - - pci:v0000103Cd00001290sv0000103Csd00001291* -- ID_MODEL_FROM_DATABASE=Diva SP2 -+ ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port (Diva SP2) - - pci:v0000103Cd00001291* - ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port -@@ -13794,208 +13794,208 @@ pci:v0000103Cd00003220* - ID_MODEL_FROM_DATABASE=Smart Array P600 - - pci:v0000103Cd00003220sv0000103Csd00003225* -- ID_MODEL_FROM_DATABASE=3 Gb/s SAS RAID -+ ID_MODEL_FROM_DATABASE=Smart Array P600 (3 Gb/s SAS RAID) - - pci:v0000103Cd00003230* - ID_MODEL_FROM_DATABASE=Smart Array Controller - - pci:v0000103Cd00003230sv0000103Csd00003223* -- ID_MODEL_FROM_DATABASE=Smart Array P800 -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (Smart Array P800) - - pci:v0000103Cd00003230sv0000103Csd00003234* -- ID_MODEL_FROM_DATABASE=P400 SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400 SAS Controller) - - pci:v0000103Cd00003230sv0000103Csd00003235* -- ID_MODEL_FROM_DATABASE=P400i SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400i SAS Controller) - - pci:v0000103Cd00003230sv0000103Csd00003237* -- ID_MODEL_FROM_DATABASE=E500 SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (E500 SAS Controller) - - pci:v0000103Cd00003230sv0000103Csd0000323D* -- ID_MODEL_FROM_DATABASE=P700m SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (P700m SAS Controller) - - pci:v0000103Cd00003238* - ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) - - pci:v0000103Cd00003238sv0000103Csd00003211* -- ID_MODEL_FROM_DATABASE=Smart Array E200i -+ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200i) - - pci:v0000103Cd00003238sv0000103Csd00003212* -- ID_MODEL_FROM_DATABASE=Smart Array E200 -+ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200) - - pci:v0000103Cd00003239* - ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers - - pci:v0000103Cd00003239sv0000103Csd000021BD* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021BE* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021BF* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C0* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C1* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C2* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C3* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C4* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C5* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C6* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C7* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C8* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C9* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CA* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CB* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CC* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CD* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CE* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd0000323A* - ID_MODEL_FROM_DATABASE=Smart Array G6 controllers - - pci:v0000103Cd0000323Asv0000103Csd00003241* -- ID_MODEL_FROM_DATABASE=Smart Array P212 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P212) - - pci:v0000103Cd0000323Asv0000103Csd00003243* -- ID_MODEL_FROM_DATABASE=Smart Array P410 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410) - - pci:v0000103Cd0000323Asv0000103Csd00003245* -- ID_MODEL_FROM_DATABASE=Smart Array P410i -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410i) - - pci:v0000103Cd0000323Asv0000103Csd00003247* -- ID_MODEL_FROM_DATABASE=Smart Array P411 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P411) - - pci:v0000103Cd0000323Asv0000103Csd00003249* -- ID_MODEL_FROM_DATABASE=Smart Array P812 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P812) - - pci:v0000103Cd0000323Asv0000103Csd0000324A* -- ID_MODEL_FROM_DATABASE=HP Smart Array 712m (Mezzanine RAID controller) -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (HP Smart Array 712m (Mezzanine RAID controller)) - - pci:v0000103Cd0000323Asv0000103Csd0000324B* -- ID_MODEL_FROM_DATABASE=Smart Array P711m (Mezzanine RAID controller) -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P711m (Mezzanine RAID controller)) - - pci:v0000103Cd0000323B* - ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers - - pci:v0000103Cd0000323Bsv0000103Csd00003350* -- ID_MODEL_FROM_DATABASE=P222 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P222) - - pci:v0000103Cd0000323Bsv0000103Csd00003351* -- ID_MODEL_FROM_DATABASE=P420 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420) - - pci:v0000103Cd0000323Bsv0000103Csd00003352* -- ID_MODEL_FROM_DATABASE=P421 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P421) - - pci:v0000103Cd0000323Bsv0000103Csd00003354* -- ID_MODEL_FROM_DATABASE=P420i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420i) - - pci:v0000103Cd0000323Bsv0000103Csd00003355* -- ID_MODEL_FROM_DATABASE=P220i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P220i) - - pci:v0000103Cd0000323C* - ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers - - pci:v0000103Cd0000323Csv0000103Csd00001920* -- ID_MODEL_FROM_DATABASE=P430i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430i) - - pci:v0000103Cd0000323Csv0000103Csd00001921* -- ID_MODEL_FROM_DATABASE=P830i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830i) - - pci:v0000103Cd0000323Csv0000103Csd00001922* -- ID_MODEL_FROM_DATABASE=P430 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430) - - pci:v0000103Cd0000323Csv0000103Csd00001923* -- ID_MODEL_FROM_DATABASE=P431 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P431) - - pci:v0000103Cd0000323Csv0000103Csd00001924* -- ID_MODEL_FROM_DATABASE=P830 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830) - - pci:v0000103Cd0000323Csv0000103Csd00001925* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (Smart Array) - - pci:v0000103Cd0000323Csv0000103Csd00001926* -- ID_MODEL_FROM_DATABASE=P731m -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P731m) - - pci:v0000103Cd0000323Csv0000103Csd00001928* -- ID_MODEL_FROM_DATABASE=P230i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P230i) - - pci:v0000103Cd00003300* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller - - pci:v0000103Cd00003300sv0000103Csd00003304* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) - - pci:v0000103Cd00003300sv0000103Csd00003305* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) - - pci:v0000103Cd00003300sv0000103Csd00003309* -- ID_MODEL_FROM_DATABASE=iLO2 GXL/iLO3 GXE -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2 GXL/iLO3 GXE) - - pci:v0000103Cd00003300sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO3) - - pci:v0000103Cd00003300sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO4) - - pci:v0000103Cd00003301* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port - - pci:v0000103Cd00003301sv0000103Csd00003304* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) - - pci:v0000103Cd00003301sv0000103Csd00003305* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) - - pci:v0000103Cd00003301sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO3) - - pci:v0000103Cd00003301sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO4) - - pci:v0000103Cd00003302* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface - - pci:v0000103Cd00003302sv0000103Csd00003304* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) - - pci:v0000103Cd00003302sv0000103Csd00003305* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) - - pci:v0000103Cd00003302sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO3) - - pci:v0000103Cd00003302sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO4) - - pci:v0000103Cd00003305* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out (iLO2) Controller -@@ -14004,31 +14004,31 @@ pci:v0000103Cd00003306* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support - - pci:v0000103Cd00003306sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO3) - - pci:v0000103Cd00003306sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO4) - - pci:v0000103Cd00003307* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging - - pci:v0000103Cd00003307sv0000103Csd00003309* -- ID_MODEL_FROM_DATABASE=iLO 2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO 2) - - pci:v0000103Cd00003307sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO3) - - pci:v0000103Cd00003307sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO4) - - pci:v0000103Cd00003308* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer - - pci:v0000103Cd00003308sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO3) - - pci:v0000103Cd00003308sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO4) - - pci:v0000103Cd0000402F* - ID_MODEL_FROM_DATABASE=PCIe Root Port -@@ -14082,19 +14082,19 @@ pci:v00001043d00000675* - ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D - - pci:v00001043d00000675sv00000675sd00001704* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) -+ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, D, C)) - - pci:v00001043d00000675sv00000675sd00001707* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001043d00000675sv000010CFsd0000105E* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001043d00009602* - ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) - - pci:v00001043d00009602sv00001043sd000083A2* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) (M4A785TD Motherboard) - - pci:v00001044* - ID_VENDOR_FROM_DATABASE=Adaptec (formerly DPT) -@@ -14112,118 +14112,118 @@ pci:v00001044d0000A501* - ID_MODEL_FROM_DATABASE=SmartRAID V Controller - - pci:v00001044d0000A501sv00001044sd0000C001* -- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C002* -- ID_MODEL_FROM_DATABASE=PM1654U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1654U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C003* -- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C004* -- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C005* -- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C00A* -- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C00B* -- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C00C* -- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C00D* -- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C00E* -- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C00F* -- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C014* -- ID_MODEL_FROM_DATABASE=PM3754U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3754U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C015* -- ID_MODEL_FROM_DATABASE=PM3755U2B Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755U2B Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C016* -- ID_MODEL_FROM_DATABASE=PM3755F Fibre Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755F Fibre Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C01E* -- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C01F* -- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C020* -- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C021* -- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Quad Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Quad Channel) - - pci:v00001044d0000A501sv00001044sd0000C028* -- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C029* -- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C02A* -- ID_MODEL_FROM_DATABASE=PM2865F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C03C* -- ID_MODEL_FROM_DATABASE=2000S Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C03D* -- ID_MODEL_FROM_DATABASE=2000S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C03E* -- ID_MODEL_FROM_DATABASE=2000F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C046* -- ID_MODEL_FROM_DATABASE=3000S Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C047* -- ID_MODEL_FROM_DATABASE=3000S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C048* -- ID_MODEL_FROM_DATABASE=3000F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C050* -- ID_MODEL_FROM_DATABASE=5000S Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C051* -- ID_MODEL_FROM_DATABASE=5000S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C052* -- ID_MODEL_FROM_DATABASE=5000F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C05A* -- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel) - - pci:v00001044d0000A501sv00001044sd0000C05B* -- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel DAC -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel DAC) - - pci:v00001044d0000A501sv00001044sd0000C064* -- ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C065* -- ID_MODEL_FROM_DATABASE=3410S Ultra160 Four Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3410S Ultra160 Four Channel) - - pci:v00001044d0000A501sv00001044sd0000C066* -- ID_MODEL_FROM_DATABASE=3010S Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Fibre Channel) - - pci:v00001044d0000A511* - ID_MODEL_FROM_DATABASE=SmartRAID V Controller - - pci:v00001044d0000A511sv00001044sd0000C032* -- ID_MODEL_FROM_DATABASE=ASR-2005S I2O Zero Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2005S I2O Zero Channel) - - pci:v00001044d0000A511sv00001044sd0000C035* -- ID_MODEL_FROM_DATABASE=ASR-2010S I2O Zero Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2010S I2O Zero Channel) - - pci:v00001044d0000C066* - ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel -@@ -14325,7 +14325,7 @@ pci:v00001048d00008901* - ID_MODEL_FROM_DATABASE=Gloria XL - - pci:v00001048d00008901sv00001048sd00000935* -- ID_MODEL_FROM_DATABASE=GLoria XL (Virge) -+ ID_MODEL_FROM_DATABASE=Gloria XL (GLoria XL (Virge)) - - pci:v00001049* - ID_VENDOR_FROM_DATABASE=Fountain Technologies, Inc. -@@ -14346,19 +14346,19 @@ pci:v0000104Ad00000010* - ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] - - pci:v0000104Ad00000010sv0000104Asd00004018* -- ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (ST PowerVR Kyro (64MB AGP TVO)) - - pci:v0000104Ad00000010sv00001681sd00000010* -- ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (PowerVR Kyro II [3D Prophet 4500]) - - pci:v0000104Ad00000010sv00001681sd00000028* -- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) - - pci:v0000104Ad00000010sv00001681sd0000C010* -- ID_MODEL_FROM_DATABASE=3D Prophet 4500 TV-Out -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4500 TV-Out) - - pci:v0000104Ad00000010sv00001681sd0000C069* -- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) - - pci:v0000104Ad00000201* - ID_MODEL_FROM_DATABASE=STPC Vega Northbridge -@@ -14400,7 +14400,7 @@ pci:v0000104Ad00000500* - ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver - - pci:v0000104Ad00000500sv0000104Asd00000500* -- ID_MODEL_FROM_DATABASE=BeWAN ADSL PCI st -+ ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver (BeWAN ADSL PCI st) - - pci:v0000104Ad00000564* - ID_MODEL_FROM_DATABASE=STPC Client Northbridge -@@ -14454,115 +14454,115 @@ pci:v0000104Cd00003D07* - ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] - - pci:v0000104Cd00003D07sv00001011sd00004D10* -- ID_MODEL_FROM_DATABASE=Comet -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Comet) - - pci:v0000104Cd00003D07sv00001040sd0000000F* -- ID_MODEL_FROM_DATABASE=AccelStar II -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) - - pci:v0000104Cd00003D07sv00001040sd00000011* -- ID_MODEL_FROM_DATABASE=AccelStar II -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) - - pci:v0000104Cd00003D07sv00001048sd00000A31* -- ID_MODEL_FROM_DATABASE=WINNER 2000 -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WINNER 2000) - - pci:v0000104Cd00003D07sv00001048sd00000A32* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A34* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A35* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A36* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A43* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A44* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv0000107Dsd00002633* -- ID_MODEL_FROM_DATABASE=WinFast 3D L2300 -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WinFast 3D L2300) - - pci:v0000104Cd00003D07sv00001092sd00000126* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000127* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000136* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000141* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000146* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000148* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000149* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000152* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000154* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000155* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000156* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000157* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001097sd00003D01* -- ID_MODEL_FROM_DATABASE=Jeronimo Pro -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Jeronimo Pro) - - pci:v0000104Cd00003D07sv00001102sd0000100F* -- ID_MODEL_FROM_DATABASE=Graphics Blaster Extreme -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Graphics Blaster Extreme) - - pci:v0000104Cd00003D07sv00003D3Dsd00000100* -- ID_MODEL_FROM_DATABASE=Reference Permedia 2 3D -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Reference Permedia 2 3D) - - pci:v0000104Cd00008000* - ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller - - pci:v0000104Cd00008000sv0000105Esd00008003* -- ID_MODEL_FROM_DATABASE=FireBoard200 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) - - pci:v0000104Cd00008000sv00001443sd00008003* -- ID_MODEL_FROM_DATABASE=FireBoard200 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) - - pci:v0000104Cd00008000sv00001443sd00008005* -- ID_MODEL_FROM_DATABASE=FireBoard400 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) - - pci:v0000104Cd00008000sv00001443sd00008006* -- ID_MODEL_FROM_DATABASE=FireBoard400 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) - - pci:v0000104Cd00008000sv0000E4BFsd00001010* -- ID_MODEL_FROM_DATABASE=CF1-1-SNARE -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-1-SNARE) - - pci:v0000104Cd00008000sv0000E4BFsd00001020* -- ID_MODEL_FROM_DATABASE=CF1-2-SNARE -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-2-SNARE) - - pci:v0000104Cd00008000sv0000E4BFsd00001040* -- ID_MODEL_FROM_DATABASE=FireCompact400 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireCompact400) - - pci:v0000104Cd00008009* - ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller - - pci:v0000104Cd00008009sv0000104Dsd00008032* -- ID_MODEL_FROM_DATABASE=8032 OHCI i.LINK (IEEE 1394) Controller -+ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (8032 OHCI i.LINK (IEEE 1394) Controller) - - pci:v0000104Cd00008009sv00001443sd00008010* -- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI -+ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (FireBoard400-OHCI) - - pci:v0000104Cd00008017* - ID_MODEL_FROM_DATABASE=PCI4410 FireWire Controller -@@ -14571,223 +14571,223 @@ pci:v0000104Cd00008019* - ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller - - pci:v0000104Cd00008019sv000011BDsd0000000A* -- ID_MODEL_FROM_DATABASE=Studio DV500-1394 -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV500-1394) - - pci:v0000104Cd00008019sv000011BDsd0000000E* -- ID_MODEL_FROM_DATABASE=Studio DV -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV) - - pci:v0000104Cd00008019sv00001443sd00008010* -- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (FireBoard400-OHCI) - - pci:v0000104Cd00008019sv0000E4BFsd00001010* -- ID_MODEL_FROM_DATABASE=CF2-1-CYMBAL -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (CF2-1-CYMBAL) - - pci:v0000104Cd00008020* - ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) - - pci:v0000104Cd00008020sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Precision 530) - - pci:v0000104Cd00008020sv0000104Dsd000080E2* -- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (VAIO PCV-J200) - - pci:v0000104Cd00008020sv000011BDsd0000000F* -- ID_MODEL_FROM_DATABASE=Studio DV500-1394 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Studio DV500-1394) - - pci:v0000104Cd00008020sv000011BDsd0000001C* -- ID_MODEL_FROM_DATABASE=Excalibur 4.1 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Excalibur 4.1) - - pci:v0000104Cd00008020sv00001443sd00008010* -- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (FireBoard400-OHCI) - - pci:v0000104Cd00008021* - ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) - - pci:v0000104Cd00008021sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (Vaio PCG-FX403) - - pci:v0000104Cd00008021sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v0000104Cd00008022* - ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] - - pci:v0000104Cd00008022sv0000104Csd00008023* -- ID_MODEL_FROM_DATABASE=TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) -+ ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)) - - pci:v0000104Cd00008023* - ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] - - pci:v0000104Cd00008023sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Precision Workstation 670 Mainboard) - - pci:v0000104Cd00008023sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (NC8000 laptop) - - pci:v0000104Cd00008023sv00001043sd0000808B* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (K8N4/A8N Series Mainboard) - - pci:v0000104Cd00008023sv00001043sd0000815B* -- ID_MODEL_FROM_DATABASE=P5W DH Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (P5W DH Deluxe Motherboard) - - pci:v0000104Cd00008023sv00001443sd00008023* -- ID_MODEL_FROM_DATABASE=FireCard400 -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (FireCard400) - - pci:v0000104Cd00008023sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Desktop Board DP35DP) - - pci:v0000104Cd00008024* - ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) - - pci:v0000104Cd00008024sv0000107Dsd00006620* -- ID_MODEL_FROM_DATABASE=Winfast DV2000 FireWire Controller -+ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Winfast DV2000 FireWire Controller) - - pci:v0000104Cd00008024sv00001443sd00008024* -- ID_MODEL_FROM_DATABASE=FireBoard Blue -+ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (FireBoard Blue) - - pci:v0000104Cd00008024sv00001458sd00001000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Motherboard) - - pci:v0000104Cd00008025* - ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller - - pci:v0000104Cd00008025sv00001043sd0000813C* -- ID_MODEL_FROM_DATABASE=P5P series mainboard -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (P5P series mainboard) - - pci:v0000104Cd00008025sv00001443sd00008025* -- ID_MODEL_FROM_DATABASE=FireBoard800 -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FireBoard800) - - pci:v0000104Cd00008025sv00001458sd00001000* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GA-K8N Ultra-9 Mainboard) - - pci:v0000104Cd00008025sv00001546sd00008025* -- ID_MODEL_FROM_DATABASE=FWB-PCI01 -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FWB-PCI01) - - pci:v0000104Cd00008025sv000017FCsd00008025* -- ID_MODEL_FROM_DATABASE=GIC3800 -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GIC3800) - - pci:v0000104Cd00008026* - ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) - - pci:v0000104Cd00008026sv00001025sd00000035* -- ID_MODEL_FROM_DATABASE=TravelMate 660 -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (TravelMate 660) - - pci:v0000104Cd00008026sv00001025sd0000003C* -- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compaq CL50 motherboard) -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (Aspire 2001WLCi (Compaq CL50 motherboard)) - - pci:v0000104Cd00008026sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (XE4500 Notebook) - - pci:v0000104Cd00008026sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (NX9500) - - pci:v0000104Cd00008026sv00001043sd0000808D* -- ID_MODEL_FROM_DATABASE=A7V333 mainboard. -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (A7V333 mainboard.) - - pci:v0000104Cd00008027* - ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller - - pci:v0000104Cd00008027sv00001028sd000000E5* -- ID_MODEL_FROM_DATABASE=Latitude C810 -+ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Latitude C810) - - pci:v0000104Cd00008027sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Dell Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller ((Dell Inspiron 8100)) - - pci:v0000104Cd00008029* - ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller - - pci:v0000104Cd00008029sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Latitude D505) - - pci:v0000104Cd00008029sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Inspiron 5160) - - pci:v0000104Cd00008029sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2900 -+ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (MIM2900) - - pci:v0000104Cd0000802B* - ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller - - pci:v0000104Cd0000802Bsv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D400) - - pci:v0000104Cd0000802Bsv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D800) -+ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller ((Latitude D800)) - - pci:v0000104Cd0000802E* - ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller - - pci:v0000104Cd0000802Esv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller (Inspiron 700m/710m) - - pci:v0000104Cd00008031* - ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller - - pci:v0000104Cd00008031sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008031sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008031sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (NX6110/NC6120) - - pci:v0000104Cd00008031sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (MX6125) - - pci:v0000104Cd00008032* - ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller - - pci:v0000104Cd00008032sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008032sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008032sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (NX6110/NC6120) - - pci:v0000104Cd00008032sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (MX6125) - - pci:v0000104Cd00008033* - ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller - - pci:v0000104Cd00008033sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008033sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008033sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (NX6110/NC6120) - - pci:v0000104Cd00008033sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (MX6125) - - pci:v0000104Cd00008034* - ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller - - pci:v0000104Cd00008034sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008034sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008034sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (NX6110/NC6120) - - pci:v0000104Cd00008034sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (MX6125) - - pci:v0000104Cd00008035* - ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller - - pci:v0000104Cd00008035sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008035sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (NX6110/NC6120) - - pci:v0000104Cd00008036* - ID_MODEL_FROM_DATABASE=PCI6515 Cardbus Controller -@@ -14799,67 +14799,67 @@ pci:v0000104Cd00008039* - ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller - - pci:v0000104Cd00008039sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nx9420 Notebook) - - pci:v0000104Cd00008039sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (NC2400) - - pci:v0000104Cd00008039sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nw8440) - - pci:v0000104Cd00008039sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (VAIO VGN-NR120E) - - pci:v0000104Cd0000803A* - ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller - - pci:v0000104Cd0000803Asv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=nx9420 -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (nx9420) - - pci:v0000104Cd0000803Asv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (NC2400) - - pci:v0000104Cd0000803Asv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (Compaq nw8440) - - pci:v0000104Cd0000803Asv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (VAIO VGN-NR120E) - - pci:v0000104Cd0000803B* - ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) - - pci:v0000104Cd0000803Bsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=nx9420 -+ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (nx9420) - - pci:v0000104Cd0000803Bsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (Compaq nw8440) - - pci:v0000104Cd0000803Bsv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (VAIO VGN-NR120E) - - pci:v0000104Cd0000803C* - ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller - - pci:v0000104Cd0000803Csv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=nx9420 -+ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (nx9420) - - pci:v0000104Cd0000803Csv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (Compaq nw8440) - - pci:v0000104Cd0000803D* - ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller - - pci:v0000104Cd0000803Dsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (Compaq nx9420 Notebook) - - pci:v0000104Cd0000803Dsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (NC2400) - - pci:v0000104Cd0000803Dsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=nc8430 -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc8430) - - pci:v0000104Cd0000803Dsv0000103Csd000030AA* -- ID_MODEL_FROM_DATABASE=nc6310 -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc6310) - - pci:v0000104Cd00008101* - ID_MODEL_FROM_DATABASE=TSB43DB42 IEEE-1394a-2000 Controller (PHY/Link) -@@ -14871,16 +14871,16 @@ pci:v0000104Cd00008204* - ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function - - pci:v0000104Cd00008204sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D400) - - pci:v0000104Cd00008204sv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=Latitude D800 -+ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D800) - - pci:v0000104Cd00008231* - ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge - - pci:v0000104Cd00008231sv00005678sd00001234* -- ID_MODEL_FROM_DATABASE=DC-1394 PCIe -+ ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge (DC-1394 PCIe) - - pci:v0000104Cd00008232* - ID_MODEL_FROM_DATABASE=XIO3130 PCI Express Switch (Upstream) -@@ -14892,7 +14892,7 @@ pci:v0000104Cd00008235* - ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) - - pci:v0000104Cd00008235sv00005678sd00001234* -- ID_MODEL_FROM_DATABASE=DC-1394 PCIe -+ ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) (DC-1394 PCIe) - - pci:v0000104Cd0000823E* - ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] -@@ -14901,7 +14901,7 @@ pci:v0000104Cd0000823F* - ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] - - pci:v0000104Cd0000823Fsv00001546sd0000803C* -- ID_MODEL_FROM_DATABASE=FWB-PCIE1X11B -+ ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (FWB-PCIE1X11B) - - pci:v0000104Cd00008240* - ID_MODEL_FROM_DATABASE=XIO2001 PCI Express-to-PCI Bridge -@@ -14913,16 +14913,16 @@ pci:v0000104Cd00008400* - ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface - - pci:v0000104Cd00008400sv00001186sd00003B00* -- ID_MODEL_FROM_DATABASE=DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus] -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus]) - - pci:v0000104Cd00008400sv00001186sd00003B01* -- ID_MODEL_FROM_DATABASE=DWL-520+ 22Mbps PCI Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-520+ 22Mbps PCI Wireless Adapter) - - pci:v0000104Cd00008400sv00001395sd00002201* -- ID_MODEL_FROM_DATABASE=WL22-PC -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL22-PC) - - pci:v0000104Cd00008400sv000016ABsd00008501* -- ID_MODEL_FROM_DATABASE=WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter) - - pci:v0000104Cd00008401* - ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface -@@ -14937,58 +14937,58 @@ pci:v0000104Cd00009066* - ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface - - pci:v0000104Cd00009066sv00000308sd00003404* -- ID_MODEL_FROM_DATABASE=G-102 v1 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-102 v1 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv00000308sd00003406* -- ID_MODEL_FROM_DATABASE=G-162 v2 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v2 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv0000104Csd00009066* -- ID_MODEL_FROM_DATABASE=WL212 Sitecom Wireless Network PCI-Card 100M (Version 1) -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WL212 Sitecom Wireless Network PCI-Card 100M (Version 1)) - - pci:v0000104Cd00009066sv0000104Csd00009067* -- ID_MODEL_FROM_DATABASE=TNETW1130GVF -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (TNETW1130GVF) - - pci:v0000104Cd00009066sv0000104Csd00009096* -- ID_MODEL_FROM_DATABASE=Trendnet TEW-412PC Wireless PCI Adapter (Version A) -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Trendnet TEW-412PC Wireless PCI Adapter (Version A)) - - pci:v0000104Cd00009066sv00001186sd00003B04* -- ID_MODEL_FROM_DATABASE=DWL-G520+ Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G520+ Wireless PCI Adapter) - - pci:v0000104Cd00009066sv00001186sd00003B05* -- ID_MODEL_FROM_DATABASE=DWL-G650+ AirPlusG+ CardBus Wireless LAN -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G650+ AirPlusG+ CardBus Wireless LAN) - - pci:v0000104Cd00009066sv00001186sd00003B08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1) -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1)) - - pci:v0000104Cd00009066sv00001385sd00004C00* -- ID_MODEL_FROM_DATABASE=WG311v2 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WG311v2 802.11g Wireless PCI Adapter) - - pci:v0000104Cd00009066sv000013D1sd0000ABA0* -- ID_MODEL_FROM_DATABASE=SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+ -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+) - - pci:v0000104Cd00009066sv000014EAsd0000AB07* -- ID_MODEL_FROM_DATABASE=GW-NS54GM Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (GW-NS54GM Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv000016ECsd0000010D* -- ID_MODEL_FROM_DATABASE=USR5416 802.11g Wireless Turbo PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5416 802.11g Wireless Turbo PCI Adapter) - - pci:v0000104Cd00009066sv000016ECsd0000010E* -- ID_MODEL_FROM_DATABASE=USR5410 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5410 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv00001737sd00000033* -- ID_MODEL_FROM_DATABASE=WPC54G v2 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WPC54G v2 802.11g Wireless-G Notebook Adapter) - - pci:v0000104Cd00009066sv000017CFsd00000032* -- ID_MODEL_FROM_DATABASE=G-162 v1 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v1 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv000017CFsd00000033* -- ID_MODEL_FROM_DATABASE=Z-Com XG650 Wireless miniPCI 802.11b/g -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Z-Com XG650 Wireless miniPCI 802.11b/g) - - pci:v0000104Cd00009066sv0000187Esd0000340B* -- ID_MODEL_FROM_DATABASE=G-302 v2 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-302 v2 802.11g Wireless PCI Adapter) - - pci:v0000104Cd00009066sv0000187Esd0000340C* -- ID_MODEL_FROM_DATABASE=G-360 v2 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-360 v2 802.11g Wireless PCI Adapter) - - pci:v0000104Cd0000A001* - ID_MODEL_FROM_DATABASE=TDC1570 -@@ -15003,13 +15003,13 @@ pci:v0000104Cd0000A106* - ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 - - pci:v0000104Cd0000A106sv0000175Csd00005000* -- ID_MODEL_FROM_DATABASE=ASI50xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI50xx Audio Adapter) - - pci:v0000104Cd0000A106sv0000175Csd00006400* -- ID_MODEL_FROM_DATABASE=ASI6400 Cobranet series -+ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI6400 Cobranet series) - - pci:v0000104Cd0000A106sv0000175Csd00008700* -- ID_MODEL_FROM_DATABASE=ASI87xx Radio Tuner card -+ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI87xx Radio Tuner card) - - pci:v0000104Cd0000AC10* - ID_MODEL_FROM_DATABASE=PCI1050 -@@ -15030,7 +15030,7 @@ pci:v0000104Cd0000AC16* - ID_MODEL_FROM_DATABASE=PCI1250 - - pci:v0000104Cd0000AC16sv00001014sd00000092* -- ID_MODEL_FROM_DATABASE=ThinkPad 600 -+ ID_MODEL_FROM_DATABASE=PCI1250 (ThinkPad 600) - - pci:v0000104Cd0000AC17* - ID_MODEL_FROM_DATABASE=PCI1220 -@@ -15048,19 +15048,19 @@ pci:v0000104Cd0000AC1B* - ID_MODEL_FROM_DATABASE=PCI1450 - - pci:v0000104Cd0000AC1Bsv00000E11sd0000B113* -- ID_MODEL_FROM_DATABASE=Armada M700 -+ ID_MODEL_FROM_DATABASE=PCI1450 (Armada M700) - - pci:v0000104Cd0000AC1Bsv00001014sd00000130* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A21m/T20/T22 -+ ID_MODEL_FROM_DATABASE=PCI1450 (ThinkPad 600X/A21m/T20/T22) - - pci:v0000104Cd0000AC1C* - ID_MODEL_FROM_DATABASE=PCI1225 - - pci:v0000104Cd0000AC1Csv00000E11sd0000B121* -- ID_MODEL_FROM_DATABASE=Armada E500 -+ ID_MODEL_FROM_DATABASE=PCI1225 (Armada E500) - - pci:v0000104Cd0000AC1Csv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=Latitude CPi A400XT -+ ID_MODEL_FROM_DATABASE=PCI1225 (Latitude CPi A400XT) - - pci:v0000104Cd0000AC1D* - ID_MODEL_FROM_DATABASE=PCI1251A -@@ -15102,40 +15102,40 @@ pci:v0000104Cd0000AC42* - ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller - - pci:v0000104Cd0000AC42sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=PCI4451 PC card CardBus Controller (Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller (PCI4451 PC card CardBus Controller (Inspiron 8100)) - - pci:v0000104Cd0000AC44* - ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller - - pci:v0000104Cd0000AC44sv00001028sd00000149* -- ID_MODEL_FROM_DATABASE=Inspiron 5100 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5100) - - pci:v0000104Cd0000AC44sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Latitude D505) - - pci:v0000104Cd0000AC44sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5160) - - pci:v0000104Cd0000AC44sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (MIM2000) - - pci:v0000104Cd0000AC46* - ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller - - pci:v0000104Cd0000AC46sv00001014sd00000552* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller (ThinkPad) - - pci:v0000104Cd0000AC47* - ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller - - pci:v0000104Cd0000AC47sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D400) - - pci:v0000104Cd0000AC47sv00001028sd0000013F* -- ID_MODEL_FROM_DATABASE=Precision M60 -+ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Precision M60) - - pci:v0000104Cd0000AC47sv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=Latitude D800 -+ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D800) - - pci:v0000104Cd0000AC48* - ID_MODEL_FROM_DATABASE=PCI7610 PC Card Cardbus Controller -@@ -15147,10 +15147,10 @@ pci:v0000104Cd0000AC4A* - ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge - - pci:v0000104Cd0000AC4Asv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D400) - - pci:v0000104Cd0000AC4Asv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=Latitude D800 -+ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D800) - - pci:v0000104Cd0000AC4B* - ID_MODEL_FROM_DATABASE=PCI7610 SD/MMC controller -@@ -15165,28 +15165,28 @@ pci:v0000104Cd0000AC51* - ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller - - pci:v0000104Cd0000AC51sv00000E11sd0000004E* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Evo N600c) - - pci:v0000104Cd0000AC51sv00001014sd00000148* -- ID_MODEL_FROM_DATABASE=ThinkPad A20m -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad A20m) - - pci:v0000104Cd0000AC51sv00001014sd0000023B* -- ID_MODEL_FROM_DATABASE=ThinkPad T23 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad T23) - - pci:v0000104Cd0000AC51sv00001028sd000000B1* -- ID_MODEL_FROM_DATABASE=Latitude C600 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C600) - - pci:v0000104Cd0000AC51sv00001028sd0000012A* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C640) - - pci:v0000104Cd0000AC51sv00001033sd000080CD* -- ID_MODEL_FROM_DATABASE=Versa Note VXi -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Versa Note VXi) - - pci:v0000104Cd0000AC51sv000010CFsd00001095* -- ID_MODEL_FROM_DATABASE=Lifebook S-4510/C6155 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Lifebook S-4510/C6155) - - pci:v0000104Cd0000AC51sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CP2-2-HIPHOP -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (CP2-2-HIPHOP) - - pci:v0000104Cd0000AC52* - ID_MODEL_FROM_DATABASE=PCI1451 PC card Cardbus Controller -@@ -15198,55 +15198,55 @@ pci:v0000104Cd0000AC54* - ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller - - pci:v0000104Cd0000AC54sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller (tc1100 tablet) - - pci:v0000104Cd0000AC55* - ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller - - pci:v0000104Cd0000AC55sv00001014sd00000512* -- ID_MODEL_FROM_DATABASE=ThinkPad T30/T40 -+ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (ThinkPad T30/T40) - - pci:v0000104Cd0000AC55sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (XE4500 Notebook) - - pci:v0000104Cd0000AC56* - ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller - - pci:v0000104Cd0000AC56sv00001014sd00000512* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R50e) - - pci:v0000104Cd0000AC56sv00001014sd00000528* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R40e) - - pci:v0000104Cd0000AC56sv000017AAsd00002012* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad T60/R60 series) - - pci:v0000104Cd0000AC60* - ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller - - pci:v0000104Cd0000AC60sv0000175Csd00005100* -- ID_MODEL_FROM_DATABASE=ASI51xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI51xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000175Csd00006100* -- ID_MODEL_FROM_DATABASE=ASI61xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI61xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000175Csd00006200* -- ID_MODEL_FROM_DATABASE=ASI62xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI62xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000175Csd00008800* -- ID_MODEL_FROM_DATABASE=ASI88xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI88xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000186Fsd00003001* -- ID_MODEL_FROM_DATABASE=WR-G303 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G303 PCI radio receiver) - - pci:v0000104Cd0000AC60sv0000186Fsd00003005* -- ID_MODEL_FROM_DATABASE=WR-G305 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G305 PCI radio receiver) - - pci:v0000104Cd0000AC60sv0000186Fsd00003101* -- ID_MODEL_FROM_DATABASE=WR-G313 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G313 PCI radio receiver) - - pci:v0000104Cd0000AC60sv0000186Fsd00003105* -- ID_MODEL_FROM_DATABASE=WR-G315 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G315 PCI radio receiver) - - pci:v0000104Cd0000AC8D* - ID_MODEL_FROM_DATABASE=PCI 7620 -@@ -15255,13 +15255,13 @@ pci:v0000104Cd0000AC8E* - ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller - - pci:v0000104Cd0000AC8Esv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller (Inspiron 700m/710m) - - pci:v0000104Cd0000AC8F* - ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller - - pci:v0000104Cd0000AC8Fsv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller (Inspiron 700m/710m) - - pci:v0000104Cd0000B001* - ID_MODEL_FROM_DATABASE=TMS320C6424 -@@ -15336,10 +15336,10 @@ pci:v00001050d00000840* - ID_MODEL_FROM_DATABASE=W89C840 - - pci:v00001050d00000840sv00001050sd00000001* -- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) - - pci:v00001050d00000840sv00001050sd00000840* -- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) - - pci:v00001050d00000940* - ID_MODEL_FROM_DATABASE=W89C940 -@@ -15351,22 +15351,22 @@ pci:v00001050d00006692* - ID_MODEL_FROM_DATABASE=W6692 - - pci:v00001050d00006692sv00001043sd00001702* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) - - pci:v00001050d00006692sv00001043sd00001703* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00006692sv00001043sd00001707* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00006692sv0000144Fsd00001702* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) - - pci:v00001050d00006692sv0000144Fsd00001703* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00006692sv0000144Fsd00001707* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00009921* - ID_MODEL_FROM_DATABASE=W99200F MPEG-1 Video Encoder -@@ -15501,76 +15501,76 @@ pci:v00001057d00001801* - ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor - - pci:v00001057d00001801sv000014FBsd00000101* -- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM]) - - pci:v00001057d00001801sv000014FBsd00000102* -- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM-2]) - - pci:v00001057d00001801sv000014FBsd00000202* -- ID_MODEL_FROM_DATABASE=Transas Radar Integrator Board [RIB-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Integrator Board [RIB-2]) - - pci:v00001057d00001801sv000014FBsd00000611* -- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci-1] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci-1]) - - pci:v00001057d00001801sv000014FBsd00000612* -- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci-2]) - - pci:v00001057d00001801sv000014FBsd00000613* -- ID_MODEL_FROM_DATABASE=3 channels CAN bus Controller [CanPci-3] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (3 channels CAN bus Controller [CanPci-3]) - - pci:v00001057d00001801sv000014FBsd00000614* -- ID_MODEL_FROM_DATABASE=4 channels CAN bus Controller [CanPci-4] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (4 channels CAN bus Controller [CanPci-4]) - - pci:v00001057d00001801sv000014FBsd00000621* -- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci2-1] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci2-1]) - - pci:v00001057d00001801sv000014FBsd00000622* -- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci2-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci2-2]) - - pci:v00001057d00001801sv000014FBsd00000810* -- ID_MODEL_FROM_DATABASE=Transas VTS Radar Integrator Board [RIB-4] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas VTS Radar Integrator Board [RIB-4]) - - pci:v00001057d00001801sv0000175Csd00004200* -- ID_MODEL_FROM_DATABASE=ASI4215 Audio Adapter -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4215 Audio Adapter) - - pci:v00001057d00001801sv0000175Csd00004300* -- ID_MODEL_FROM_DATABASE=ASI43xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI43xx Audio Adapter) - - pci:v00001057d00001801sv0000175Csd00004400* -- ID_MODEL_FROM_DATABASE=ASI4401 Audio Adapter -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4401 Audio Adapter) - - pci:v00001057d00001801sv0000ECC0sd00000010* -- ID_MODEL_FROM_DATABASE=Darla -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla) - - pci:v00001057d00001801sv0000ECC0sd00000020* -- ID_MODEL_FROM_DATABASE=Gina -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina) - - pci:v00001057d00001801sv0000ECC0sd00000030* -- ID_MODEL_FROM_DATABASE=Layla rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000031* -- ID_MODEL_FROM_DATABASE=Layla rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000040* -- ID_MODEL_FROM_DATABASE=Darla24 rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000041* -- ID_MODEL_FROM_DATABASE=Darla24 rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000050* -- ID_MODEL_FROM_DATABASE=Gina24 rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000051* -- ID_MODEL_FROM_DATABASE=Gina24 rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000070* -- ID_MODEL_FROM_DATABASE=Mona rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000071* -- ID_MODEL_FROM_DATABASE=Mona rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000072* -- ID_MODEL_FROM_DATABASE=Mona rev.2 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.2) - - pci:v00001057d000018C0* - ID_MODEL_FROM_DATABASE=MPC8265A/8266/8272 -@@ -15585,40 +15585,40 @@ pci:v00001057d00003410* - ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor - - pci:v00001057d00003410sv0000ECC0sd00000050* -- ID_MODEL_FROM_DATABASE=Gina24 rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.0) - - pci:v00001057d00003410sv0000ECC0sd00000051* -- ID_MODEL_FROM_DATABASE=Gina24 rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.1) - - pci:v00001057d00003410sv0000ECC0sd00000060* -- ID_MODEL_FROM_DATABASE=Layla24 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Layla24) - - pci:v00001057d00003410sv0000ECC0sd00000070* -- ID_MODEL_FROM_DATABASE=Mona rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.0) - - pci:v00001057d00003410sv0000ECC0sd00000071* -- ID_MODEL_FROM_DATABASE=Mona rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.1) - - pci:v00001057d00003410sv0000ECC0sd00000072* -- ID_MODEL_FROM_DATABASE=Mona rev.2 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.2) - - pci:v00001057d00003410sv0000ECC0sd00000080* -- ID_MODEL_FROM_DATABASE=Mia rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.0) - - pci:v00001057d00003410sv0000ECC0sd00000081* -- ID_MODEL_FROM_DATABASE=Mia rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.1) - - pci:v00001057d00003410sv0000ECC0sd00000090* -- ID_MODEL_FROM_DATABASE=Indigo -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo) - - pci:v00001057d00003410sv0000ECC0sd000000A0* -- ID_MODEL_FROM_DATABASE=Indigo IO -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo IO) - - pci:v00001057d00003410sv0000ECC0sd000000B0* -- ID_MODEL_FROM_DATABASE=Indigo DJ -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo DJ) - - pci:v00001057d00003410sv0000ECC0sd00000100* -- ID_MODEL_FROM_DATABASE=3G -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (3G) - - pci:v00001057d00004801* - ID_MODEL_FROM_DATABASE=Raven -@@ -15639,55 +15639,55 @@ pci:v00001057d00005600* - ID_MODEL_FROM_DATABASE=SM56 PCI Modem - - pci:v00001057d00005600sv00001057sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001057sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice Modem) - - pci:v00001057d00005600sv00001057sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001057sd00005600* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv000013D2sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv000013D2sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv000013D2sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001436sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001436sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv00001436sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv0000144Fsd0000100C* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001494sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001494sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv000014C8sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv000014C8sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001668sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001668sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005608* - ID_MODEL_FROM_DATABASE=Wildcard X100P -@@ -15723,16 +15723,16 @@ pci:v0000105Ad00000D30* - ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) - - pci:v0000105Ad00000D30sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=AV7266-E South Bridge Promise RAID -+ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (AV7266-E South Bridge Promise RAID) - - pci:v0000105Ad00000D30sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=Ultra100 -+ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (Ultra100) - - pci:v0000105Ad00000D38* - ID_MODEL_FROM_DATABASE=20263 - - pci:v0000105Ad00000D38sv0000105Asd00004D39* -- ID_MODEL_FROM_DATABASE=Fasttrak66 -+ ID_MODEL_FROM_DATABASE=20263 (Fasttrak66) - - pci:v0000105Ad00001275* - ID_MODEL_FROM_DATABASE=20275 -@@ -15744,10 +15744,10 @@ pci:v0000105Ad00003319* - ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) - - pci:v0000105Ad00003319sv0000105Asd00003319* -- ID_MODEL_FROM_DATABASE=FastTrak S150 TX4 4 port SATA PCI board -+ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (FastTrak S150 TX4 4 port SATA PCI board) - - pci:v0000105Ad00003319sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (S875WP1-E mainboard) - - pci:v0000105Ad00003371* - ID_MODEL_FROM_DATABASE=PDC20371 (FastTrak S150 TX2plus) -@@ -15756,13 +15756,13 @@ pci:v0000105Ad00003373* - ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) - - pci:v0000105Ad00003373sv00001043sd000080F5* -- ID_MODEL_FROM_DATABASE=K8V Deluxe/PC-DL Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8V Deluxe/PC-DL Deluxe motherboard) - - pci:v0000105Ad00003373sv00001462sd0000590D* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (KT6 Delta-FIS2R (MS-6590)) - - pci:v0000105Ad00003373sv00001462sd0000702E* -- ID_MODEL_FROM_DATABASE=K8T NEO FIS2R motherboard -+ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8T NEO FIS2R motherboard) - - pci:v0000105Ad00003375* - ID_MODEL_FROM_DATABASE=PDC20375 (SATA150 TX2plus) -@@ -15771,7 +15771,7 @@ pci:v0000105Ad00003376* - ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) - - pci:v0000105Ad00003376sv00001043sd0000809E* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) (A7V8X motherboard) - - pci:v0000105Ad00003515* - ID_MODEL_FROM_DATABASE=PDC40719 [FastTrak TX4300/TX4310] -@@ -15813,58 +15813,58 @@ pci:v0000105Ad00004D30* - ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) - - pci:v0000105Ad00004D30sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=Ultra100 -+ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (Ultra100) - - pci:v0000105Ad00004D30sv0000105Asd00004D39* -- ID_MODEL_FROM_DATABASE=FastTrak100 -+ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (FastTrak100) - - pci:v0000105Ad00004D30sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (S845WD1-E mainboard) - - pci:v0000105Ad00004D33* - ID_MODEL_FROM_DATABASE=20246 - - pci:v0000105Ad00004D33sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=20246 IDE Controller -+ ID_MODEL_FROM_DATABASE=20246 (IDE Controller) - - pci:v0000105Ad00004D38* - ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) - - pci:v0000105Ad00004D38sv0000105Asd00004D30* -- ID_MODEL_FROM_DATABASE=Ultra Device on SuperTrak -+ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra Device on SuperTrak) - - pci:v0000105Ad00004D38sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=Ultra66 -+ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra66) - - pci:v0000105Ad00004D38sv0000105Asd00004D39* -- ID_MODEL_FROM_DATABASE=FastTrak66 -+ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (FastTrak66) - - pci:v0000105Ad00004D68* - ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] - - pci:v0000105Ad00004D68sv0000105Asd00004D68* -- ID_MODEL_FROM_DATABASE=Ultra100 TX2 -+ ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] (Ultra100 TX2) - - pci:v0000105Ad00004D69* - ID_MODEL_FROM_DATABASE=20269 - - pci:v0000105Ad00004D69sv0000105Asd00004D68* -- ID_MODEL_FROM_DATABASE=Ultra133TX2 -+ ID_MODEL_FROM_DATABASE=20269 (Ultra133TX2) - - pci:v0000105Ad00005275* - ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) - - pci:v0000105Ad00005275sv00001043sd0000807E* -- ID_MODEL_FROM_DATABASE=A7V333 motherboard. -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (A7V333 motherboard.) - - pci:v0000105Ad00005275sv0000105Asd00000275* -- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 IDE -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (SuperTrak SX6000 IDE) - - pci:v0000105Ad00005275sv0000105Asd00001275* -- ID_MODEL_FROM_DATABASE=MBFastTrak133 Lite (tm) Controller (RAID mode) -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBFastTrak133 Lite (tm) Controller (RAID mode)) - - pci:v0000105Ad00005275sv00001458sd0000B001* -- ID_MODEL_FROM_DATABASE=MBUltra 133 -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBUltra 133) - - pci:v0000105Ad00005300* - ID_MODEL_FROM_DATABASE=DC5300 -@@ -15873,13 +15873,13 @@ pci:v0000105Ad00006268* - ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) - - pci:v0000105Ad00006268sv0000105Asd00004D68* -- ID_MODEL_FROM_DATABASE=FastTrak100 TX2 -+ ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) (FastTrak100 TX2) - - pci:v0000105Ad00006269* - ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) - - pci:v0000105Ad00006269sv0000105Asd00006269* -- ID_MODEL_FROM_DATABASE=FastTrak TX2/TX2000 -+ ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) (FastTrak TX2/TX2000) - - pci:v0000105Ad00006300* - ID_MODEL_FROM_DATABASE=PDC81731 [FastTrak SX8300] -@@ -15912,43 +15912,43 @@ pci:v0000105Ad00008650* - ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] - - pci:v0000105Ad00008650sv0000105Asd00004600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX4650A -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650A) - - pci:v0000105Ad00008650sv0000105Asd00004601* -- ID_MODEL_FROM_DATABASE=SuperTrak EX4650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650) - - pci:v0000105Ad00008650sv0000105Asd00004610* -- ID_MODEL_FROM_DATABASE=SuperTrak EX4650EL -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650EL) - - pci:v0000105Ad00008650sv0000105Asd00008600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650EL -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650EL) - - pci:v0000105Ad00008650sv0000105Asd00008601* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650A -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650A) - - pci:v0000105Ad00008650sv0000105Asd00008602* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8654 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8654) - - pci:v0000105Ad00008650sv0000105Asd00008603* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8658 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8658) - - pci:v0000105Ad00008650sv0000105Asd00008604* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650) - - pci:v0000105Ad00008650sv0000105Asd00008610* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650M -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650M) - - pci:v0000105Ad00008650sv0000105Asd0000A600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX12650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX12650) - - pci:v0000105Ad00008650sv0000105Asd0000B600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX16650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16650) - - pci:v0000105Ad00008650sv0000105Asd0000B601* -- ID_MODEL_FROM_DATABASE=SuperTrak EX16654 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16654) - - pci:v0000105Ad00008650sv0000105Asd0000B602* -- ID_MODEL_FROM_DATABASE=SuperTrak EX16658 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16658) - - pci:v0000105Ad00008760* - ID_MODEL_FROM_DATABASE=PM8010 [SuperTrak EX SAS and SATA 6G RAID Controller] -@@ -15975,106 +15975,106 @@ pci:v0000105Dd00002339* - ID_MODEL_FROM_DATABASE=Imagine 128-II - - pci:v0000105Dd00002339sv0000105Dsd00000000* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000001* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000002* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000003* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000004* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000005* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000006* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000007* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000008* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000009* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) - - pci:v0000105Dd00002339sv0000105Dsd0000000A* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd0000000B* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb H-VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb H-VRAM) - - pci:v0000105Dd00002339sv000011A4sd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000000* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000004* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000005* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000006* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000008* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000009* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd0000000C* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd0000493D* - ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] - - pci:v0000105Dd0000493Dsv000011A4sd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000011A4sd0000000B* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000002* -- ID_MODEL_FROM_DATABASE=Barco Metheus 4 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 4 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000003* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000007* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000008* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000009* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd00005348* - ID_MODEL_FROM_DATABASE=Revolution 4 - - pci:v0000105Dd00005348sv0000105Dsd00000037* -- ID_MODEL_FROM_DATABASE=Revolution IV-FP AGP (For SGI 1600SW) -+ ID_MODEL_FROM_DATABASE=Revolution 4 (Revolution IV-FP AGP (For SGI 1600SW)) - - pci:v0000105Dd00005348sv000011A4sd00000028* -- ID_MODEL_FROM_DATABASE=PVS5600M -+ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600M) - - pci:v0000105Dd00005348sv000011A4sd00000038* -- ID_MODEL_FROM_DATABASE=PVS5600D -+ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600D) - - pci:v0000105E* - ID_VENDOR_FROM_DATABASE=Vtech Computers Ltd -@@ -16236,43 +16236,43 @@ pci:v00001069d00000050* - ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device - - pci:v00001069d00000050sv00001069sd00000050* -- ID_MODEL_FROM_DATABASE=AcceleRAID 352 support Device -+ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 352 support Device) - - pci:v00001069d00000050sv00001069sd00000052* -- ID_MODEL_FROM_DATABASE=AcceleRAID 170 support Device -+ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 170 support Device) - - pci:v00001069d00000050sv00001069sd00000054* -- ID_MODEL_FROM_DATABASE=AcceleRAID 160 support Device -+ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 160 support Device) - - pci:v00001069d0000B166* - ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device - - pci:v00001069d0000B166sv00001014sd00000242* -- ID_MODEL_FROM_DATABASE=iSeries 2872 DASD IOA -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (iSeries 2872 DASD IOA) - - pci:v00001069d0000B166sv00001014sd00000266* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) - - pci:v00001069d0000B166sv00001014sd00000278* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) - - pci:v00001069d0000B166sv00001014sd000002D3* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) - - pci:v00001069d0000B166sv00001014sd000002D4* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) - - pci:v00001069d0000B166sv00001069sd00000200* -- ID_MODEL_FROM_DATABASE=AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000B166sv00001069sd00000202* -- ID_MODEL_FROM_DATABASE=AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000B166sv00001069sd00000204* -- ID_MODEL_FROM_DATABASE=AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000B166sv00001069sd00000206* -- ID_MODEL_FROM_DATABASE=AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000BA55* - ID_MODEL_FROM_DATABASE=eXtremeRAID 1100 support Device -@@ -16281,16 +16281,16 @@ pci:v00001069d0000BA56* - ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device - - pci:v00001069d0000BA56sv00001069sd00000030* -- ID_MODEL_FROM_DATABASE=eXtremeRAID 3000 support Device -+ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 3000 support Device) - - pci:v00001069d0000BA56sv00001069sd00000040* -- ID_MODEL_FROM_DATABASE=eXtremeRAID 2000 support Device -+ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 2000 support Device) - - pci:v00001069d0000BA57* - ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device - - pci:v00001069d0000BA57sv00001069sd00000072* -- ID_MODEL_FROM_DATABASE=eXtremeRAID 5000 support Device -+ ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device (eXtremeRAID 5000 support Device) - - pci:v0000106A* - ID_VENDOR_FROM_DATABASE=Aten Research Inc -@@ -16380,7 +16380,7 @@ pci:v0000106Bd00000031* - ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire - - pci:v0000106Bd00000031sv0000106Bsd00005811* -- ID_MODEL_FROM_DATABASE=iBook G4 2004 -+ ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire (iBook G4 2004) - - pci:v0000106Bd00000032* - ID_MODEL_FROM_DATABASE=UniNorth 2 GMAC (Sun GEM) -@@ -16407,7 +16407,7 @@ pci:v0000106Bd0000003F* - ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB - - pci:v0000106Bd0000003Fsv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB (QEMU Virtual Machine) - - pci:v0000106Bd00000040* - ID_MODEL_FROM_DATABASE=K2 KeyLargo USB -@@ -16563,13 +16563,13 @@ pci:v00001073d00000004* - ID_MODEL_FROM_DATABASE=YMF-724 - - pci:v00001073d00000004sv00001073sd00000004* -- ID_MODEL_FROM_DATABASE=YMF724-Based PCI Audio Adapter -+ ID_MODEL_FROM_DATABASE=YMF-724 (YMF724-Based PCI Audio Adapter) - - pci:v00001073d00000005* - ID_MODEL_FROM_DATABASE=DS1 Audio - - pci:v00001073d00000005sv00001073sd00000005* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d00000006* - ID_MODEL_FROM_DATABASE=DS1 Audio -@@ -16578,46 +16578,46 @@ pci:v00001073d00000008* - ID_MODEL_FROM_DATABASE=DS1 Audio - - pci:v00001073d00000008sv00001073sd00000008* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000A* - ID_MODEL_FROM_DATABASE=DS1L Audio - - pci:v00001073d0000000Asv00001073sd00000004* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000Asv00001073sd0000000A* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000Asv00008086sd00004D55* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC [Intel MU440EX] -+ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC [Intel MU440EX]) - - pci:v00001073d0000000C* - ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] - - pci:v00001073d0000000Csv0000107Asd0000000C* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000D* - ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] - - pci:v00001073d0000000Dsv00001073sd0000000D* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d00000010* - ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] - - pci:v00001073d00000010sv00001073sd00000006* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d00000010sv00001073sd00000010* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d00000012* - ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] - - pci:v00001073d00000012sv00001073sd00000012* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio Codec -+ ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] (DS-XG PCI Audio Codec) - - pci:v00001073d00000020* - ID_MODEL_FROM_DATABASE=DS-1 Audio -@@ -16662,10 +16662,10 @@ pci:v00001077d00001216* - ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor - - pci:v00001077d00001216sv0000101Esd00008471* -- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID -+ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) - - pci:v00001077d00001216sv0000101Esd00008493* -- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID -+ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) - - pci:v00001077d00001240* - ID_MODEL_FROM_DATABASE=ISP1240 SCSI Host Adapter -@@ -16689,7 +16689,7 @@ pci:v00001077d00002200* - ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter - - pci:v00001077d00002200sv00001077sd00000002* -- ID_MODEL_FROM_DATABASE=QLA2200 -+ ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter (QLA2200) - - pci:v00001077d00002300* - ID_MODEL_FROM_DATABASE=QLA2300 64-bit Fibre Channel Adapter -@@ -16698,10 +16698,10 @@ pci:v00001077d00002312* - ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA - - pci:v00001077d00002312sv0000103Csd00000131* -- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Single port [A7538A] -+ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Single port [A7538A]) - - pci:v00001077d00002312sv0000103Csd000012BA* -- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Dual port [A6826A] -+ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Dual port [A6826A]) - - pci:v00001077d00002322* - ID_MODEL_FROM_DATABASE=ISP2322-based 2Gb Fibre Channel to PCI-X HBA -@@ -16710,25 +16710,25 @@ pci:v00001077d00002422* - ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA - - pci:v00001077d00002422sv0000103Csd000012D7* -- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB379A] -+ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB379A]) - - pci:v00001077d00002422sv0000103Csd000012DD* -- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB429A] -+ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB429A]) - - pci:v00001077d00002432* - ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA - - pci:v00001077d00002432sv0000103Csd00007040* -- ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] -+ ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA (FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]) - - pci:v00001077d00002532* - ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA - - pci:v00001077d00002532sv0000103Csd00003262* -- ID_MODEL_FROM_DATABASE=StorageWorks 81Q -+ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (StorageWorks 81Q) - - pci:v00001077d00002532sv00001077sd00000167* -- ID_MODEL_FROM_DATABASE=QME2572 Dual Port FC8 HBA Mezzanine -+ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (QME2572 Dual Port FC8 HBA Mezzanine) - - pci:v00001077d00003022* - ID_MODEL_FROM_DATABASE=ISP4022-based Ethernet NIC -@@ -16770,55 +16770,55 @@ pci:v00001077d00008020* - ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller - - pci:v00001077d00008020sv0000103Csd00003346* -- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (CN1000Q Dual Port Converged Network Adapter) - - pci:v00001077d00008020sv0000103Csd00003733* -- ID_MODEL_FROM_DATABASE=NC523SFP 10Gb 2-port Server Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (NC523SFP 10Gb 2-port Server Adapter) - - pci:v00001077d00008020sv00001077sd00000203* -- ID_MODEL_FROM_DATABASE=8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008020sv00001077sd00000207* -- ID_MODEL_FROM_DATABASE=8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008020sv00001077sd0000020B* -- ID_MODEL_FROM_DATABASE=3200 Series Dual Port 10Gb Intelligent Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Dual Port 10Gb Intelligent Ethernet Adapter) - - pci:v00001077d00008020sv00001077sd0000020C* -- ID_MODEL_FROM_DATABASE=3200 Series Quad Port 1Gb Intelligent Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Quad Port 1Gb Intelligent Ethernet Adapter) - - pci:v00001077d00008020sv00001077sd0000020F* -- ID_MODEL_FROM_DATABASE=3200 Series Single Port 10Gb Intelligent Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Single Port 10Gb Intelligent Ethernet Adapter) - - pci:v00001077d00008020sv00001077sd00000210* -- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (QME8242-k 10GbE Dual Port Mezzanine Card) - - pci:v00001077d00008021* - ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) - - pci:v00001077d00008021sv0000103Csd00003348* -- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (CN1000Q Dual Port Converged Network Adapter) - - pci:v00001077d00008021sv00001077sd00000211* -- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, FCoE -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (QME8242-k 10GbE Dual Port Mezzanine Card, FCoE) - - pci:v00001077d00008022* - ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) - - pci:v00001077d00008022sv0000103Csd00003347* -- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (CN1000Q Dual Port Converged Network Adapter) - - pci:v00001077d00008022sv00001077sd00000212* -- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI) - - pci:v00001077d00008030* - ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller - - pci:v00001077d00008030sv00001077sd00000243* -- ID_MODEL_FROM_DATABASE=8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008030sv00001077sd00000246* -- ID_MODEL_FROM_DATABASE=8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008031* - ID_MODEL_FROM_DATABASE=8300 Series 10GbE Converged Network Adapter (FCoE) -@@ -17022,7 +17022,7 @@ pci:v0000108Dd00000004* - ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter - - pci:v0000108Dd00000004sv0000108Dsd00000004* -- ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter (OC-3139/3140 RapidFire Token-Ring 16/4 Adapter) - - pci:v0000108Dd00000005* - ID_MODEL_FROM_DATABASE=GoCard 3250 Token-Ring 16/4 CardBus PC Card -@@ -17034,13 +17034,13 @@ pci:v0000108Dd00000007* - ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter - - pci:v0000108Dd00000007sv0000108Dsd00000007* -- ID_MODEL_FROM_DATABASE=OC-3141 RapidFire Token-Ring 16/4 Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter (OC-3141 RapidFire Token-Ring 16/4 Adapter) - - pci:v0000108Dd00000008* - ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter - - pci:v0000108Dd00000008sv0000108Dsd00000008* -- ID_MODEL_FROM_DATABASE=OC-3540 RapidFire HSTR 100/16/4 Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter (OC-3540 RapidFire HSTR 100/16/4 Adapter) - - pci:v0000108Dd00000011* - ID_MODEL_FROM_DATABASE=OC-2315 -@@ -17058,10 +17058,10 @@ pci:v0000108Dd00000019* - ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter - - pci:v0000108Dd00000019sv0000108Dsd00000016* -- ID_MODEL_FROM_DATABASE=OC-2327 Rapidfire 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2327 Rapidfire 10/100 Ethernet Adapter) - - pci:v0000108Dd00000019sv0000108Dsd00000017* -- ID_MODEL_FROM_DATABASE=OC-2250 GoCard 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2250 GoCard 10/100 Ethernet Adapter) - - pci:v0000108Dd00000021* - ID_MODEL_FROM_DATABASE=OC-6151/6152 [RapidFire ATM 155] -@@ -17085,25 +17085,25 @@ pci:v0000108Ed00001100* - ID_MODEL_FROM_DATABASE=RIO EBUS - - pci:v0000108Ed00001100sv0000108Esd00001100* -- ID_MODEL_FROM_DATABASE=RIO EBUS on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO EBUS (on Blade 100 motherboard) - - pci:v0000108Ed00001101* - ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] - - pci:v0000108Ed00001101sv0000108Esd00001101* -- ID_MODEL_FROM_DATABASE=RIO GEM on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] (RIO GEM on Blade 100 motherboard) - - pci:v0000108Ed00001102* - ID_MODEL_FROM_DATABASE=RIO 1394 - - pci:v0000108Ed00001102sv0000108Esd00001102* -- ID_MODEL_FROM_DATABASE=RIO 1394 on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO 1394 (on Blade 100 motherboard) - - pci:v0000108Ed00001103* - ID_MODEL_FROM_DATABASE=RIO USB - - pci:v0000108Ed00001103sv0000108Esd00001103* -- ID_MODEL_FROM_DATABASE=RIO USB on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO USB (on Blade 100 motherboard) - - pci:v0000108Ed00001647* - ID_MODEL_FROM_DATABASE=Broadcom 570x 10/100/1000 Ethernet [bge] -@@ -17124,7 +17124,7 @@ pci:v0000108Ed00005000* - ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge - - pci:v0000108Ed00005000sv0000108Esd00005000* -- ID_MODEL_FROM_DATABASE=Netra AX1105-500 -+ ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge (Netra AX1105-500) - - pci:v0000108Ed00005043* - ID_MODEL_FROM_DATABASE=SunPCI Co-processor -@@ -17226,7 +17226,7 @@ pci:v0000108Ed0000A001* - ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] - - pci:v0000108Ed0000A001sv0000108Esd0000A001* -- ID_MODEL_FROM_DATABASE=Ultra IIe on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] (Ultra IIe on Blade 100 motherboard) - - pci:v0000108Ed0000A801* - ID_MODEL_FROM_DATABASE=Schizo Fireplane-PCI bus bridge module [pcisch] -@@ -17295,7 +17295,7 @@ pci:v00001092d00000028* - ID_MODEL_FROM_DATABASE=Viper V770 - - pci:v00001092d00000028sv00001092sd00004A00* -- ID_MODEL_FROM_DATABASE=Viper V770 32MB -+ ID_MODEL_FROM_DATABASE=Viper V770 (32MB) - - pci:v00001092d000000A0* - ID_MODEL_FROM_DATABASE=Speedstar Pro SE -@@ -17766,28 +17766,28 @@ pci:v00001093d0000C4C4* - ID_MODEL_FROM_DATABASE=PXIe/PCIe Device - - pci:v00001093d0000C4C4sv00001093sd000074B2* -- ID_MODEL_FROM_DATABASE=PXIe-4353 -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4353) - - pci:v00001093d0000C4C4sv00001093sd000074D0* -- ID_MODEL_FROM_DATABASE=PXIe-7961R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7961R) - - pci:v00001093d0000C4C4sv00001093sd000074E2* -- ID_MODEL_FROM_DATABASE=PXIe-7962R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7962R) - - pci:v00001093d0000C4C4sv00001093sd000074E3* -- ID_MODEL_FROM_DATABASE=PXIe-7965R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7965R) - - pci:v00001093d0000C4C4sv00001093sd00007553* -- ID_MODEL_FROM_DATABASE=PCIe-1473R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1473R) - - pci:v00001093d0000C4C4sv00001093sd000075CE* -- ID_MODEL_FROM_DATABASE=PXIe-7966R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7966R) - - pci:v00001093d0000C4C4sv00001093sd000076B7* -- ID_MODEL_FROM_DATABASE=PXIe-7975R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7975R) - - pci:v00001093d0000C4C4sv00001093sd000076D0* -- ID_MODEL_FROM_DATABASE=PXIe-5160 -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160) - - pci:v00001093d0000C801* - ID_MODEL_FROM_DATABASE=PCI-GPIB -@@ -17820,19 +17820,19 @@ pci:v00001095d00000648* - ID_MODEL_FROM_DATABASE=PCI0648 - - pci:v00001095d00000648sv00001043sd00008025* -- ID_MODEL_FROM_DATABASE=CUBX motherboard -+ ID_MODEL_FROM_DATABASE=PCI0648 (CUBX motherboard) - - pci:v00001095d00000649* - ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller - - pci:v00001095d00000649sv00000E11sd0000005D* -- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 Dual Channel Controller -+ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 Dual Channel Controller) - - pci:v00001095d00000649sv00000E11sd0000007E* -- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 IDE RAID Controller -+ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 IDE RAID Controller) - - pci:v00001095d00000649sv0000101Esd00000649* -- ID_MODEL_FROM_DATABASE=AMI MegaRAID IDE 100 Controller -+ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (AMI MegaRAID IDE 100 Controller) - - pci:v00001095d00000650* - ID_MODEL_FROM_DATABASE=PBC0650A -@@ -17850,34 +17850,34 @@ pci:v00001095d00000680* - ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller - - pci:v00001095d00000680sv00001095sd00000680* -- ID_MODEL_FROM_DATABASE=SiI 0680 ATA/133 Controller -+ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (SiI 0680 ATA/133 Controller) - - pci:v00001095d00000680sv00001095sd00003680* -- ID_MODEL_FROM_DATABASE=Winic W-680 (Silicon Image 680 based) -+ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (Winic W-680 (Silicon Image 680 based)) - - pci:v00001095d00003112* - ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller - - pci:v00001095d00003112sv00001095sd00003112* -- ID_MODEL_FROM_DATABASE=SiI 3112 SATALink Controller -+ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATALink Controller) - - pci:v00001095d00003112sv00001095sd00006112* -- ID_MODEL_FROM_DATABASE=SiI 3112 SATARaid Controller -+ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATARaid Controller) - - pci:v00001095d00003112sv00009005sd00000250* -- ID_MODEL_FROM_DATABASE=SATAConnect 1205SA Host Controller -+ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SATAConnect 1205SA Host Controller) - - pci:v00001095d00003114* - ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller - - pci:v00001095d00003114sv00001043sd00008167* -- ID_MODEL_FROM_DATABASE=A8N-SLI Deluxe/Premium Mainboard -+ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (A8N-SLI Deluxe/Premium Mainboard) - - pci:v00001095d00003114sv00001095sd00003114* -- ID_MODEL_FROM_DATABASE=SiI 3114 SATALink Controller -+ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATALink Controller) - - pci:v00001095d00003114sv00001095sd00006114* -- ID_MODEL_FROM_DATABASE=SiI 3114 SATARaid Controller -+ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATARaid Controller) - - pci:v00001095d00003124* - ID_MODEL_FROM_DATABASE=SiI 3124 PCI-X Serial ATA Controller -@@ -17892,10 +17892,10 @@ pci:v00001095d00003512* - ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller - - pci:v00001095d00003512sv00001095sd00003512* -- ID_MODEL_FROM_DATABASE=SiI 3512 SATALink Controller -+ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATALink Controller) - - pci:v00001095d00003512sv00001095sd00006512* -- ID_MODEL_FROM_DATABASE=SiI 3512 SATARaid Controller -+ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATARaid Controller) - - pci:v00001095d00003531* - ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller -@@ -17949,412 +17949,412 @@ pci:v0000109Ed00000369* - ID_MODEL_FROM_DATABASE=Bt878 Video Capture - - pci:v0000109Ed00000369sv00001002sd00000001* -- ID_MODEL_FROM_DATABASE=TV-Wonder -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder) - - pci:v0000109Ed00000369sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=TV-Wonder/VE -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder/VE) - - pci:v0000109Ed0000036C* - ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture - - pci:v0000109Ed0000036Csv000013E9sd00000070* -- ID_MODEL_FROM_DATABASE=Win/TV (Video Section) -+ ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture (Win/TV (Video Section)) - - pci:v0000109Ed0000036E* - ID_MODEL_FROM_DATABASE=Bt878 Video Capture - - pci:v0000109Ed0000036Esv00000070sd000013EB* -- ID_MODEL_FROM_DATABASE=WinTV Series -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinTV Series) - - pci:v0000109Ed0000036Esv00000070sd0000FF01* -- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Viewcast Osprey 200) - - pci:v0000109Ed0000036Esv00000071sd00000101* -- ID_MODEL_FROM_DATABASE=DigiTV PCI -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DigiTV PCI) - - pci:v0000109Ed0000036Esv0000107Dsd00006606* -- ID_MODEL_FROM_DATABASE=WinFast TV 2000 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinFast TV 2000) - - pci:v0000109Ed0000036Esv000011BDsd00000012* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) - - pci:v0000109Ed0000036Esv000011BDsd0000001C* -- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV Sat (DBC receiver)) - - pci:v0000109Ed0000036Esv0000127Asd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) - - pci:v0000109Ed0000036Esv0000127Asd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv0000127Asd00000003* -- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv0000127Asd00000048* -- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) - - pci:v0000109Ed0000036Esv0000144Fsd00003000* -- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Video -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (MagicTView CPH060 - Video) - - pci:v0000109Ed0000036Esv00001461sd00000002* -- ID_MODEL_FROM_DATABASE=TV98 Series (TV/No FM/Remote) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV98 Series (TV/No FM/Remote)) - - pci:v0000109Ed0000036Esv00001461sd00000003* -- ID_MODEL_FROM_DATABASE=AverMedia UltraTV PCI 350 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia UltraTV PCI 350) - - pci:v0000109Ed0000036Esv00001461sd00000004* -- ID_MODEL_FROM_DATABASE=AVerTV WDM Video Capture -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AVerTV WDM Video Capture) - - pci:v0000109Ed0000036Esv00001461sd00000761* -- ID_MODEL_FROM_DATABASE=AverTV DVB-T -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverTV DVB-T) - - pci:v0000109Ed0000036Esv00001461sd00000771* -- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia AVerTV DVB-T 771) - - pci:v0000109Ed0000036Esv000014F1sd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) - - pci:v0000109Ed0000036Esv000014F1sd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv000014F1sd00000003* -- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv000014F1sd00000048* -- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) - - pci:v0000109Ed0000036Esv00001822sd00000001* -- ID_MODEL_FROM_DATABASE=VisionPlus DVB card -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (VisionPlus DVB card) - - pci:v0000109Ed0000036Esv00001851sd00001850* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video) - - pci:v0000109Ed0000036Esv00001851sd00001851* -- ID_MODEL_FROM_DATABASE=FlyVideo II -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo II) - - pci:v0000109Ed0000036Esv00001852sd00001852* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video (with FM Tuner)) - - pci:v0000109Ed0000036Esv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DViCO FusionHDTV5 Lite) - - pci:v0000109Ed0000036Esv0000270Fsd0000FC00* -- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Digitop DTT-1000) - - pci:v0000109Ed0000036Esv0000AA00sd00001460* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input0) - - pci:v0000109Ed0000036Esv0000AA01sd00001461* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input1) - - pci:v0000109Ed0000036Esv0000AA02sd00001462* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input2) - - pci:v0000109Ed0000036Esv0000AA03sd00001463* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input3) - - pci:v0000109Ed0000036Esv0000AA04sd00001464* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input0) - - pci:v0000109Ed0000036Esv0000AA05sd00001465* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input1) - - pci:v0000109Ed0000036Esv0000AA06sd00001466* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input2) - - pci:v0000109Ed0000036Esv0000AA07sd00001467* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input3) - - pci:v0000109Ed0000036Esv0000AA08sd00001468* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input0) - - pci:v0000109Ed0000036Esv0000AA09sd00001469* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input1) - - pci:v0000109Ed0000036Esv0000AA0Asd0000146A* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input2) - - pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input3) - - pci:v0000109Ed0000036Esv0000AA0Csd0000146C* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input0) - - pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input1) - - pci:v0000109Ed0000036Esv0000AA0Esd0000146E* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input2) - - pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input3) - - pci:v0000109Ed0000036Esv0000BD11sd00001200* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) - - pci:v0000109Ed0000036F* - ID_MODEL_FROM_DATABASE=Bt879 Video Capture - - pci:v0000109Ed0000036Fsv0000127Asd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv0000127Asd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv0000127Asd00000244* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv0000127Asd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv0000127Asd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00001522* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) - - pci:v0000109Ed0000036Fsv0000127Asd00001622* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) - - pci:v0000109Ed0000036Fsv0000127Asd00001722* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv000014F1sd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv000014F1sd00000244* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv000014F1sd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv000014F1sd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00001522* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) - - pci:v0000109Ed0000036Fsv000014F1sd00001622* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) - - pci:v0000109Ed0000036Fsv000014F1sd00001722* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv00001851sd00001850* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video) - - pci:v0000109Ed0000036Fsv00001851sd00001851* -- ID_MODEL_FROM_DATABASE=FlyVideo II -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo II) - - pci:v0000109Ed0000036Fsv00001852sd00001852* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video (with FM Tuner)) - - pci:v0000109Ed00000370* - ID_MODEL_FROM_DATABASE=Bt880 Video Capture - - pci:v0000109Ed00000370sv00001851sd00001850* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 -+ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98) - - pci:v0000109Ed00000370sv00001851sd00001851* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 EZ - video -+ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 EZ - video) - - pci:v0000109Ed00000370sv00001852sd00001852* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 (with FM Tuner) -+ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 (with FM Tuner)) - - pci:v0000109Ed00000878* - ID_MODEL_FROM_DATABASE=Bt878 Audio Capture - - pci:v0000109Ed00000878sv00000070sd000013EB* -- ID_MODEL_FROM_DATABASE=WinTV Series -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (WinTV Series) - - pci:v0000109Ed00000878sv00000070sd0000FF01* -- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Viewcast Osprey 200) - - pci:v0000109Ed00000878sv00000071sd00000101* -- ID_MODEL_FROM_DATABASE=DigiTV PCI -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DigiTV PCI) - - pci:v0000109Ed00000878sv00001002sd00000001* -- ID_MODEL_FROM_DATABASE=TV-Wonder -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder) - - pci:v0000109Ed00000878sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=TV-Wonder/VE -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder/VE) - - pci:v0000109Ed00000878sv000011BDsd00000012* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) - - pci:v0000109Ed00000878sv000011BDsd0000001C* -- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV Sat (DBC receiver)) - - pci:v0000109Ed00000878sv0000127Asd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv0000127Asd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv0000127Asd00000003* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv0000127Asd00000048* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000013E9sd00000070* -- ID_MODEL_FROM_DATABASE=Win/TV (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Win/TV (Audio Section)) - - pci:v0000109Ed00000878sv0000144Fsd00003000* -- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Audio -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (MagicTView CPH060 - Audio) - - pci:v0000109Ed00000878sv00001461sd00000002* -- ID_MODEL_FROM_DATABASE=Avermedia PCTV98 Audio Capture -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Avermedia PCTV98 Audio Capture) - - pci:v0000109Ed00000878sv00001461sd00000003* -- ID_MODEL_FROM_DATABASE=UltraTV PCI 350 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (UltraTV PCI 350) - - pci:v0000109Ed00000878sv00001461sd00000004* -- ID_MODEL_FROM_DATABASE=AVerTV WDM Audio Capture -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV WDM Audio Capture) - - pci:v0000109Ed00000878sv00001461sd00000761* -- ID_MODEL_FROM_DATABASE=AVerTV DVB-T -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV DVB-T) - - pci:v0000109Ed00000878sv00001461sd00000771* -- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AverMedia AVerTV DVB-T 771) - - pci:v0000109Ed00000878sv000014F1sd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000014F1sd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000014F1sd00000003* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000014F1sd00000048* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv00001822sd00000001* -- ID_MODEL_FROM_DATABASE=VisionPlus DVB Card -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (VisionPlus DVB Card) - - pci:v0000109Ed00000878sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DViCO FusionHDTV5 Lite) - - pci:v0000109Ed00000878sv0000270Fsd0000FC00* -- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Digitop DTT-1000) - - pci:v0000109Ed00000878sv0000BD11sd00001200* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) - - pci:v0000109Ed00000879* - ID_MODEL_FROM_DATABASE=Bt879 Audio Capture - - pci:v0000109Ed00000879sv0000127Asd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000244* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001522* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001622* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001722* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000244* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001522* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001622* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001722* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000880* - ID_MODEL_FROM_DATABASE=Bt880 Audio Capture -@@ -18585,7 +18585,7 @@ pci:v000010B4d00001B1D* - ID_MODEL_FROM_DATABASE=Velocity 128 3D - - pci:v000010B4d00001B1Dsv000010B4sd0000237E* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=Velocity 128 3D (Velocity 4400) - - pci:v000010B5* - ID_VENDOR_FROM_DATABASE=PLX Technology, Inc. -@@ -18597,13 +18597,13 @@ pci:v000010B5d00000557* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00000557sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card) - - pci:v000010B5d00001000* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00001000sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM AT400P Quad T1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AT400P Quad T1 PCI card) - - pci:v000010B5d00001024* - ID_MODEL_FROM_DATABASE=Acromag, Inc. IndustryPack Carrier Card -@@ -18636,7 +18636,7 @@ pci:v000010B5d00002000* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00002000sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM AE400P Quad E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AE400P Quad E1 PCI card) - - pci:v000010B5d00002540* - ID_MODEL_FROM_DATABASE=IXXAT CAN-Interface PC-I 04/PCI -@@ -18651,19 +18651,19 @@ pci:v000010B5d00004000* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00004000sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card) - - pci:v000010B5d00004001* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00004001sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM A400PE Quad E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PE Quad E1 PCI card) - - pci:v000010B5d00004002* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00004002sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM A400PT Quad T1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PT Quad T1 PCI card) - - pci:v000010B5d00006140* - ID_MODEL_FROM_DATABASE=PCI6140 32-bit 33MHz PCI-to-PCI Bridge -@@ -18690,28 +18690,28 @@ pci:v000010B5d00006540* - ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge - - pci:v000010B5d00006540sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (CR11 Single Board Computer) - - pci:v000010B5d00006540sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (PSL09 PrPMC) - - pci:v000010B5d00006541* - ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) - - pci:v000010B5d00006541sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (CR11 Single Board Computer) - - pci:v000010B5d00006541sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (PSL09 PrPMC) - - pci:v000010B5d00006542* - ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) - - pci:v000010B5d00006542sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (CR11 Single Board Computer) - - pci:v000010B5d00006542sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (PSL09 PrPMC) - - pci:v000010B5d00008111* - ID_MODEL_FROM_DATABASE=PEX 8111 PCI Express-to-PCI Bridge -@@ -18807,7 +18807,7 @@ pci:v000010B5d00008624* - ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] - - pci:v000010B5d00008624sv000013A3sd00001845* -- ID_MODEL_FROM_DATABASE=DX1845 Acceleration Card -+ ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] (DX1845 Acceleration Card) - - pci:v000010B5d00008625* - ID_MODEL_FROM_DATABASE=PEX 8625 24-lane, 24-Port PCI Express Gen 2 (5.0 GT/s) Switch -@@ -18861,85 +18861,85 @@ pci:v000010B5d00009030* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009030sv000010B5sd00002695* -- ID_MODEL_FROM_DATABASE=Hilscher CIF50-PB/DPS Profibus -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Hilscher CIF50-PB/DPS Profibus) - - pci:v000010B5d00009030sv000010B5sd00002862* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00002906* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board) - - pci:v000010B5d00009030sv000010B5sd00002940* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00002977* -- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCI CAN Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCI CAN Board) - - pci:v000010B5d00009030sv000010B5sd00002978* -- ID_MODEL_FROM_DATABASE=SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card) - - pci:v000010B5d00009030sv000010B5sd00003025* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00003068* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00003463* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000012FEsd00000111* -- ID_MODEL_FROM_DATABASE=CPCI-ASIO4 (ESD 4-port Serial Interface Board) -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (CPCI-ASIO4 (ESD 4-port Serial Interface Board)) - - pci:v000010B5d00009030sv00001369sd00009C01* -- ID_MODEL_FROM_DATABASE=VX222v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222v2) - - pci:v000010B5d00009030sv00001369sd00009D01* -- ID_MODEL_FROM_DATABASE=VX222-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) - - pci:v000010B5d00009030sv00001369sd00009D02* -- ID_MODEL_FROM_DATABASE=VX222-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) - - pci:v000010B5d00009030sv00001369sd00009E01* -- ID_MODEL_FROM_DATABASE=PCX924v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924v2) - - pci:v000010B5d00009030sv00001369sd00009F01* -- ID_MODEL_FROM_DATABASE=PCX924-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) - - pci:v000010B5d00009030sv00001369sd00009F02* -- ID_MODEL_FROM_DATABASE=PCX924-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) - - pci:v000010B5d00009030sv00001369sd0000A001* -- ID_MODEL_FROM_DATABASE=PCX22v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX22v2) - - pci:v000010B5d00009030sv00001369sd0000A701* -- ID_MODEL_FROM_DATABASE=LCM220v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM220v2) - - pci:v000010B5d00009030sv00001369sd0000A801* -- ID_MODEL_FROM_DATABASE=LCM200 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM200) - - pci:v000010B5d00009030sv00001397sd00003136* -- ID_MODEL_FROM_DATABASE=4xS0-ISDN PCI Adapter -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (4xS0-ISDN PCI Adapter) - - pci:v000010B5d00009030sv00001397sd00003137* -- ID_MODEL_FROM_DATABASE=S2M-E1-ISDN PCI Adapter -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (S2M-E1-ISDN PCI Adapter) - - pci:v000010B5d00009030sv00001518sd00000200* -- ID_MODEL_FROM_DATABASE=Kontron ThinkIO-C -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Kontron ThinkIO-C) - - pci:v000010B5d00009030sv000015EDsd00001002* -- ID_MODEL_FROM_DATABASE=MCCS 8-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 8-port Serial Hot Swap) - - pci:v000010B5d00009030sv000015EDsd00001003* -- ID_MODEL_FROM_DATABASE=MCCS 16-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 16-port Serial Hot Swap) - - pci:v000010B5d00009030sv0000E1C5sd00000001* -- ID_MODEL_FROM_DATABASE=TE1-PCI -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TE1-PCI) - - pci:v000010B5d00009030sv0000E1C5sd00000005* -- ID_MODEL_FROM_DATABASE=TA1-PCI -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI) - - pci:v000010B5d00009030sv0000E1C5sd00000006* -- ID_MODEL_FROM_DATABASE=TA1-PCI4 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI4) - - pci:v000010B5d00009036* - ID_MODEL_FROM_DATABASE=9036 -@@ -18948,145 +18948,145 @@ pci:v000010B5d00009050* - ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge - - pci:v000010B5d00009050sv000010B5sd00001067* -- ID_MODEL_FROM_DATABASE=IXXAT CAN i165 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IXXAT CAN i165) - - pci:v000010B5d00009050sv000010B5sd0000114E* -- ID_MODEL_FROM_DATABASE=Wasco WITIO PCI168extended -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco WITIO PCI168extended) - - pci:v000010B5d00009050sv000010B5sd00001169* -- ID_MODEL_FROM_DATABASE=Wasco OPTOIO32standard 32 digital in, 32 digital out -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco OPTOIO32standard 32 digital in, 32 digital out) - - pci:v000010B5d00009050sv000010B5sd00001172* -- ID_MODEL_FROM_DATABASE=IK220 (Heidenhain) -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IK220 (Heidenhain)) - - pci:v000010B5d00009050sv000010B5sd00002036* -- ID_MODEL_FROM_DATABASE=SatPak GPS -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SatPak GPS) - - pci:v000010B5d00009050sv000010B5sd00002221* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV: Timecode Reader Board) - - pci:v000010B5d00009050sv000010B5sd00002273* -- ID_MODEL_FROM_DATABASE=SH ARC-PCI SOHARD ARCNET card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SH ARC-PCI SOHARD ARCNET card) - - pci:v000010B5d00009050sv000010B5sd00002431* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D: Timecode Reader Board) - - pci:v000010B5d00009050sv000010B5sd00002905* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS: Time Synchronisation Board -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCI TS: Time Synchronisation Board) - - pci:v000010B5d00009050sv000010B5sd00003196* -- ID_MODEL_FROM_DATABASE=Goramo PLX200SYN sync serial card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Goramo PLX200SYN sync serial card) - - pci:v000010B5d00009050sv000010B5sd00009050* -- ID_MODEL_FROM_DATABASE=PCI-I04 PCI Passive PC/CAN Interface -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCI-I04 PCI Passive PC/CAN Interface) - - pci:v000010B5d00009050sv00001369sd00008901* -- ID_MODEL_FROM_DATABASE=PCX11+ PCI -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX11+ PCI) - - pci:v000010B5d00009050sv00001369sd00008F01* -- ID_MODEL_FROM_DATABASE=VX222 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (VX222) - - pci:v000010B5d00009050sv00001369sd00009401* -- ID_MODEL_FROM_DATABASE=PCX924 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX924) - - pci:v000010B5d00009050sv00001369sd00009501* -- ID_MODEL_FROM_DATABASE=PCX22 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX22) - - pci:v000010B5d00009050sv00001498sd00000362* -- ID_MODEL_FROM_DATABASE=TPMC866 8 Channel Serial Card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (TPMC866 8 Channel Serial Card) - - pci:v000010B5d00009050sv00001522sd00000001* -- ID_MODEL_FROM_DATABASE=RockForce 4 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 4 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000002* -- ID_MODEL_FROM_DATABASE=RockForce 2 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 2 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000003* -- ID_MODEL_FROM_DATABASE=RockForce 6 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 6 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000004* -- ID_MODEL_FROM_DATABASE=RockForce 8 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 8 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000010* -- ID_MODEL_FROM_DATABASE=RockForce2000 4 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 4 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000020* -- ID_MODEL_FROM_DATABASE=RockForce2000 2 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 2 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv000015EDsd00001000* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial) - - pci:v000010B5d00009050sv000015EDsd00001001* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial) - - pci:v000010B5d00009050sv000015EDsd00001002* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial Hot Swap) - - pci:v000010B5d00009050sv000015EDsd00001003* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial Hot Swap) - - pci:v000010B5d00009050sv00005654sd00002036* -- ID_MODEL_FROM_DATABASE=OpenSwitch 6 Telephony card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 6 Telephony card) - - pci:v000010B5d00009050sv00005654sd00003132* -- ID_MODEL_FROM_DATABASE=OpenSwitch 12 Telephony card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 12 Telephony card) - - pci:v000010B5d00009050sv00005654sd00005634* -- ID_MODEL_FROM_DATABASE=OpenLine4 Telephony Card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenLine4 Telephony Card) - - pci:v000010B5d00009050sv0000D531sd0000C002* -- ID_MODEL_FROM_DATABASE=PCIntelliCAN 2xSJA1000 CAN bus -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCIntelliCAN 2xSJA1000 CAN bus) - - pci:v000010B5d00009050sv0000D84Dsd00004006* -- ID_MODEL_FROM_DATABASE=EX-4006 1P -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4006 1P) - - pci:v000010B5d00009050sv0000D84Dsd00004008* -- ID_MODEL_FROM_DATABASE=EX-4008 1P EPP/ECP -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4008 1P EPP/ECP) - - pci:v000010B5d00009050sv0000D84Dsd00004014* -- ID_MODEL_FROM_DATABASE=EX-4014 2P -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4014 2P) - - pci:v000010B5d00009050sv0000D84Dsd00004018* -- ID_MODEL_FROM_DATABASE=EX-4018 3P EPP/ECP -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4018 3P EPP/ECP) - - pci:v000010B5d00009050sv0000D84Dsd00004025* -- ID_MODEL_FROM_DATABASE=EX-4025 1S(16C550) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4025 1S(16C550) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004027* -- ID_MODEL_FROM_DATABASE=EX-4027 1S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4027 1S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004028* -- ID_MODEL_FROM_DATABASE=EX-4028 1S(16C850) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4028 1S(16C850) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004036* -- ID_MODEL_FROM_DATABASE=EX-4036 2S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4036 2S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004037* -- ID_MODEL_FROM_DATABASE=EX-4037 2S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4037 2S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004038* -- ID_MODEL_FROM_DATABASE=EX-4038 2S(16C850) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4038 2S(16C850) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004052* -- ID_MODEL_FROM_DATABASE=EX-4052 1S(16C550) RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4052 1S(16C550) RS-422/485) - - pci:v000010B5d00009050sv0000D84Dsd00004053* -- ID_MODEL_FROM_DATABASE=EX-4053 2S(16C550) RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4053 2S(16C550) RS-422/485) - - pci:v000010B5d00009050sv0000D84Dsd00004055* -- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C550) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C550) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004058* -- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004065* -- ID_MODEL_FROM_DATABASE=EX-4065 8S(16C550) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4065 8S(16C550) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004068* -- ID_MODEL_FROM_DATABASE=EX-4068 8S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4068 8S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004078* -- ID_MODEL_FROM_DATABASE=EX-4078 2S(16C552) RS-232+1P -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4078 2S(16C552) RS-232+1P) - - pci:v000010B5d00009052* - ID_MODEL_FROM_DATABASE=PCI9052 PCI <-> IOBus Bridge -@@ -19095,88 +19095,88 @@ pci:v000010B5d00009054* - ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009054sv000010B5sd00002455* -- ID_MODEL_FROM_DATABASE=Wessex Techology PHIL-PCI -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Wessex Techology PHIL-PCI) - - pci:v000010B5d00009054sv000010B5sd00002696* -- ID_MODEL_FROM_DATABASE=Innes Corp AM Radcap card -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp AM Radcap card) - - pci:v000010B5d00009054sv000010B5sd00002717* -- ID_MODEL_FROM_DATABASE=Innes Corp Auricon card -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp Auricon card) - - pci:v000010B5d00009054sv000010B5sd00002844* -- ID_MODEL_FROM_DATABASE=Innes Corp TVS Encoder card -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp TVS Encoder card) - - pci:v000010B5d00009054sv000012C7sd00004001* -- ID_MODEL_FROM_DATABASE=Intel Dialogic DM/V960-4T1 PCI -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Intel Dialogic DM/V960-4T1 PCI) - - pci:v000010B5d00009054sv000012D9sd00000002* -- ID_MODEL_FROM_DATABASE=PCI Prosody Card rev 1.5 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PCI Prosody Card rev 1.5) - - pci:v000010B5d00009054sv000014B4sd0000D100* -- ID_MODEL_FROM_DATABASE=Dektec DTA-100 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-100) - - pci:v000010B5d00009054sv000014B4sd0000D114* -- ID_MODEL_FROM_DATABASE=Dektec DTA-120 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-120) - - pci:v000010B5d00009054sv000016DFsd00000011* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM PCI -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM PCI) - - pci:v000010B5d00009054sv000016DFsd00000012* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8) - - pci:v000010B5d00009054sv000016DFsd00000013* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 (without CAS Signaling) -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8 (without CAS Signaling)) - - pci:v000010B5d00009054sv000016DFsd00000014* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 4 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 4) - - pci:v000010B5d00009054sv000016DFsd00000015* -- ID_MODEL_FROM_DATABASE=PIKA Daytona MM -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA Daytona MM) - - pci:v000010B5d00009054sv000016DFsd00000016* -- ID_MODEL_FROM_DATABASE=PIKA InLine MM -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA InLine MM) - - pci:v000010B5d00009056* - ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009056sv000010B5sd00002979* -- ID_MODEL_FROM_DATABASE=CellinkBlade 11 - CPCI board VoATM AAL1 -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (CellinkBlade 11 - CPCI board VoATM AAL1) - - pci:v000010B5d00009056sv000010B5sd00003268* -- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCIe CAN Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCIe CAN Board) - - pci:v000010B5d00009056sv000010B5sd00003352* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe HD: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe HD: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003353* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe D: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe D: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003354* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe LV: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe LV: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003355* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe L: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe L: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003415* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCIe TS: Time Synchronisation Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCIe TS: Time Synchronisation Board) - - pci:v000010B5d00009056sv000010B5sd00003493* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe 3G: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe 3G: Timecode Reader Board) - - pci:v000010B5d00009056sv00001369sd0000C001* -- ID_MODEL_FROM_DATABASE=LX6464ES -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX6464ES) - - pci:v000010B5d00009056sv00001369sd0000C201* -- ID_MODEL_FROM_DATABASE=LX1616ES -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX1616ES) - - pci:v000010B5d00009056sv000014B4sd0000D10A* -- ID_MODEL_FROM_DATABASE=DekTec DTA-110T -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (DekTec DTA-110T) - - pci:v000010B5d00009056sv000014B4sd0000D140* -- ID_MODEL_FROM_DATABASE=Dektec DTA-140 -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-140) - - pci:v000010B5d00009056sv00001A0Esd0000006F* -- ID_MODEL_FROM_DATABASE=Dektec DTA-111 -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-111) - - pci:v000010B5d00009060* - ID_MODEL_FROM_DATABASE=PCI9060 32-bit 33MHz PCI <-> IOBus Bridge -@@ -19185,7 +19185,7 @@ pci:v000010B5d0000906D* - ID_MODEL_FROM_DATABASE=9060SD - - pci:v000010B5d0000906Dsv0000125Csd00000640* -- ID_MODEL_FROM_DATABASE=Aries 16000P -+ ID_MODEL_FROM_DATABASE=9060SD (Aries 16000P) - - pci:v000010B5d0000906E* - ID_MODEL_FROM_DATABASE=9060ES -@@ -19194,61 +19194,61 @@ pci:v000010B5d00009080* - ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009080sv0000103Csd000010EB* -- ID_MODEL_FROM_DATABASE=(Agilent) E2777B 83K Series Optical Communication Interface -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E2777B 83K Series Optical Communication Interface) - - pci:v000010B5d00009080sv0000103Csd000010EC* -- ID_MODEL_FROM_DATABASE=(Agilent) E6978-66442 PCI CIC -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E6978-66442 PCI CIC) - - pci:v000010B5d00009080sv000010B5sd00001123* -- ID_MODEL_FROM_DATABASE=Sectra KK631 encryption board -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (Sectra KK631 encryption board) - - pci:v000010B5d00009080sv000010B5sd00009080* -- ID_MODEL_FROM_DATABASE=9080 [real subsystem ID not set] -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (9080 [real subsystem ID not set]) - - pci:v000010B5d00009080sv000012D9sd00000002* -- ID_MODEL_FROM_DATABASE=PCI Prosody Card -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCI Prosody Card) - - pci:v000010B5d00009080sv000012DFsd00004422* -- ID_MODEL_FROM_DATABASE=4422PCI ["Do-All" Telemetry Data Aquisition System] -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (4422PCI ["Do-All" Telemetry Data Aquisition System]) - - pci:v000010B5d00009080sv00001369sd00009601* -- ID_MODEL_FROM_DATABASE=PCX822np -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822np) - - pci:v000010B5d00009080sv00001369sd0000A102* -- ID_MODEL_FROM_DATABASE=PCX822v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822v2) - - pci:v000010B5d00009080sv00001369sd0000A201* -- ID_MODEL_FROM_DATABASE=PCX442 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX442) - - pci:v000010B5d00009080sv00001369sd0000A301* -- ID_MODEL_FROM_DATABASE=LCM440v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM440v2) - - pci:v000010B5d00009080sv00001369sd0000A401* -- ID_MODEL_FROM_DATABASE=VX822 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822) - - pci:v000010B5d00009080sv00001369sd0000A402* -- ID_MODEL_FROM_DATABASE=VX822v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822v2) - - pci:v000010B5d00009080sv00001369sd0000A901* -- ID_MODEL_FROM_DATABASE=LCM420 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM420) - - pci:v000010B5d00009080sv00001369sd0000AA01* -- ID_MODEL_FROM_DATABASE=VX820v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX820v2) - - pci:v000010B5d00009080sv00001517sd0000000B* -- ID_MODEL_FROM_DATABASE=ECSG-1R3ADC-PMC Clock synthesizer -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (ECSG-1R3ADC-PMC Clock synthesizer) - - pci:v000010B5d00009656* - ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge - - pci:v000010B5d00009656sv00001517sd0000000F* -- ID_MODEL_FROM_DATABASE=ECDR-GC314-PMC Receiver -+ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (ECDR-GC314-PMC Receiver) - - pci:v000010B5d00009656sv00001885sd00000700* -- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S40 -+ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S40) - - pci:v000010B5d00009656sv00001885sd00000701* -- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S30 -+ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S30) - - pci:v000010B5d0000A100* - ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink -@@ -19263,28 +19263,28 @@ pci:v000010B5d0000D00D* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d0000D00Dsv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card) - - pci:v000010B5d0000D33D* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d0000D33Dsv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PT Quad T1/J1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PT Quad T1/J1 PCI card) - - pci:v000010B5d0000D44D* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d0000D44Dsv000010B5sd000017F6* -- ID_MODEL_FROM_DATABASE=Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card) - - pci:v000010B5d0000D44Dsv000010B5sd000017F7* -- ID_MODEL_FROM_DATABASE=Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card) - - pci:v000010B5d0000D44Dsv000010B5sd000017F8* -- ID_MODEL_FROM_DATABASE=Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card) - - pci:v000010B5d0000D44Dsv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PE Quad E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PE Quad E1 PCI card) - - pci:v000010B6* - ID_VENDOR_FROM_DATABASE=Madge Networks -@@ -19299,19 +19299,19 @@ pci:v000010B6d00000002sv000010B6sd00000002* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 - - pci:v000010B6d00000002sv000010B6sd00000006* -- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter -+ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 (16/4 CardBus Adapter) - - pci:v000010B6d00000003* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 - - pci:v000010B6d00000003sv00000E11sd0000B0FD* -- ID_MODEL_FROM_DATABASE=Compaq NC4621 PCI, 4/16, WOL -+ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Compaq NC4621 PCI, 4/16, WOL) - - pci:v000010B6d00000003sv000010B6sd00000003* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 - - pci:v000010B6d00000003sv000010B6sd00000007* -- ID_MODEL_FROM_DATABASE=Presto PCI Plus Adapter -+ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Presto PCI Plus Adapter) - - pci:v000010B6d00000004* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk1 -@@ -19320,13 +19320,13 @@ pci:v000010B6d00000006* - ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter - - pci:v000010B6d00000006sv000010B6sd00000006* -- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter -+ ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter (16/4 CardBus Adapter) - - pci:v000010B6d00000007* - ID_MODEL_FROM_DATABASE=Presto PCI Adapter - - pci:v000010B6d00000007sv000010B6sd00000007* -- ID_MODEL_FROM_DATABASE=Presto PCI -+ ID_MODEL_FROM_DATABASE=Presto PCI Adapter (Presto PCI) - - pci:v000010B6d00000009* - ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode -@@ -19347,7 +19347,7 @@ pci:v000010B6d0000000Bsv000010B6sd00000008* - ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 - - pci:v000010B6d0000000Bsv000010B6sd0000000B* -- ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter Mk2 -+ ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 (16/4 Cardbus Adapter Mk2) - - pci:v000010B6d0000000C* - ID_MODEL_FROM_DATABASE=RapidFire 3140V2 16/4 TR Adapter -@@ -19368,13 +19368,13 @@ pci:v000010B7d00000001* - ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) - - pci:v000010B7d00000001sv00009850sd00000001* -- ID_MODEL_FROM_DATABASE=3c985B-SX -+ ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) (3c985B-SX) - - pci:v000010B7d00000013* - ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) - - pci:v000010B7d00000013sv000010B7sd00002031* -- ID_MODEL_FROM_DATABASE=3CRDAG675 11a/b/g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) (3CRDAG675 11a/b/g Wireless PCI Adapter) - - pci:v000010B7d00000910* - ID_MODEL_FROM_DATABASE=3C910-A01 -@@ -19386,10 +19386,10 @@ pci:v000010B7d00001007* - ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem - - pci:v000010B7d00001007sv000010B7sd0000615B* -- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem -+ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) - - pci:v000010B7d00001007sv000010B7sd0000615C* -- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem -+ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) - - pci:v000010B7d00001201* - ID_MODEL_FROM_DATABASE=3c982-TXM 10/100baseTX Dual Port A [Hydra] -@@ -19401,16 +19401,16 @@ pci:v000010B7d00001700* - ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] - - pci:v000010B7d00001700sv00001043sd000080EB* -- ID_MODEL_FROM_DATABASE=A7V600/P4P800/K8V motherboard -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (A7V600/P4P800/K8V motherboard) - - pci:v000010B7d00001700sv000010B7sd00000010* -- ID_MODEL_FROM_DATABASE=3C940 Gigabit LOM Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C940 Gigabit LOM Ethernet Adapter) - - pci:v000010B7d00001700sv000010B7sd00000020* -- ID_MODEL_FROM_DATABASE=3C941 Gigabit LOM Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C941 Gigabit LOM Ethernet Adapter) - - pci:v000010B7d00001700sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (KV8-MAX3 motherboard) - - pci:v000010B7d00003390* - ID_MODEL_FROM_DATABASE=3c339 TokenLink Velocity -@@ -19419,7 +19419,7 @@ pci:v000010B7d00003590* - ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL - - pci:v000010B7d00003590sv000010B7sd00003590* -- ID_MODEL_FROM_DATABASE=TokenLink Velocity XL Adapter (3C359/359B) -+ ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL (TokenLink Velocity XL Adapter (3C359/359B)) - - pci:v000010B7d00004500* - ID_MODEL_FROM_DATABASE=3c450 HomePNA [Tornado] -@@ -19431,19 +19431,19 @@ pci:v000010B7d00005057* - ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] - - pci:v000010B7d00005057sv000010B7sd00005A57* -- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card -+ ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) - - pci:v000010B7d00005157* - ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] - - pci:v000010B7d00005157sv000010B7sd00005B57* -- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card -+ ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] (3C575 Megahertz 10/100 LAN Cardbus PC Card) - - pci:v000010B7d00005257* - ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] - - pci:v000010B7d00005257sv000010B7sd00005C57* -- ID_MODEL_FROM_DATABASE=FE575C-3Com 10/100 LAN CardBus-Fast Ethernet -+ ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] (FE575C-3Com 10/100 LAN CardBus-Fast Ethernet) - - pci:v000010B7d00005900* - ID_MODEL_FROM_DATABASE=3c590 10BaseT [Vortex] -@@ -19467,7 +19467,7 @@ pci:v000010B7d00005B57* - ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] - - pci:v000010B7d00005B57sv000010B7sd00005B57* -- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card -+ ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) - - pci:v000010B7d00006000* - ID_MODEL_FROM_DATABASE=3CRSHPW796 [OfficeConnect Wireless CardBus] -@@ -19482,31 +19482,31 @@ pci:v000010B7d00006056* - ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] - - pci:v000010B7d00006056sv000010B7sd00006556* -- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] (10/100 Mini PCI Ethernet Adapter) - - pci:v000010B7d00006560* - ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] - - pci:v000010B7d00006560sv000010B7sd0000656A* -- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] (3CCFEM656 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006561* - ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus - - pci:v000010B7d00006561sv000010B7sd0000656B* -- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006562* - ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] - - pci:v000010B7d00006562sv000010B7sd0000656B* -- ID_MODEL_FROM_DATABASE=3CCFEM656B 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] (3CCFEM656B 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006563* - ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus - - pci:v000010B7d00006563sv000010B7sd0000656B* -- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006564* - ID_MODEL_FROM_DATABASE=3cXFEM656C 10/100 LAN+Winmodem CardBus [Tornado] -@@ -19542,13 +19542,13 @@ pci:v000010B7d00009004* - ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] - - pci:v000010B7d00009004sv000010B7sd00009004* -- ID_MODEL_FROM_DATABASE=3C900B-TPO Etherlink XL TPO 10Mb -+ ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] (3C900B-TPO Etherlink XL TPO 10Mb) - - pci:v000010B7d00009005* - ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] - - pci:v000010B7d00009005sv000010B7sd00009005* -- ID_MODEL_FROM_DATABASE=3C900B-Combo Etherlink XL Combo -+ ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] (3C900B-Combo Etherlink XL Combo) - - pci:v000010B7d00009006* - ID_MODEL_FROM_DATABASE=3c900B-TPC Etherlink XL [Cyclone] -@@ -19572,67 +19572,67 @@ pci:v000010B7d00009055* - ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] - - pci:v000010B7d00009055sv00001028sd00000080* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000081* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000082* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000083* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000084* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000085* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000086* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000087* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000089* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000090* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000091* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000092* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000093* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000094* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000096* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000097* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000098* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000099* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv000010B7sd00009055* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009056* - ID_MODEL_FROM_DATABASE=3c905B-T4 Fast EtherLink XL [Cyclone] -@@ -19647,40 +19647,40 @@ pci:v000010B7d00009200* - ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] - - pci:v000010B7d00009200sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) - - pci:v000010B7d00009200sv00001028sd00000097* -- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) - - pci:v000010B7d00009200sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (OptiPlex GX110) - - pci:v000010B7d00009200sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Precision 530) - - pci:v000010B7d00009200sv00001028sd000000FE* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Optiplex GX240) - - pci:v000010B7d00009200sv00001028sd0000012A* -- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller [Latitude C640] -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller [Latitude C640]) - - pci:v000010B7d00009200sv000010B7sd00001000* -- ID_MODEL_FROM_DATABASE=3C905CX-TX/TX-M Fast Etherlink for PC Management NIC -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C905CX-TX/TX-M Fast Etherlink for PC Management NIC) - - pci:v000010B7d00009200sv000010B7sd00007000* -- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (10/100 Mini PCI Ethernet Adapter) - - pci:v000010B7d00009200sv000010F1sd00002466* -- ID_MODEL_FROM_DATABASE=Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller) -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)) - - pci:v000010B7d00009200sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (X10 Laptop) - - pci:v000010B7d00009201* - ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] - - pci:v000010B7d00009201sv00001043sd000080AB* -- ID_MODEL_FROM_DATABASE=A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller -+ ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] (A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller) - - pci:v000010B7d00009202* - ID_MODEL_FROM_DATABASE=3Com 3C920B-EMB-WNM Integrated Fast Ethernet Controller -@@ -19695,22 +19695,22 @@ pci:v000010B7d00009800* - ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] - - pci:v000010B7d00009800sv000010B7sd00009800* -- ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter -+ ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] (3c980-TX Fast Etherlink XL Server Adapter) - - pci:v000010B7d00009805* - ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] - - pci:v000010B7d00009805sv000010B7sd00001201* -- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port A -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port A) - - pci:v000010B7d00009805sv000010B7sd00001202* -- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port B -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port B) - - pci:v000010B7d00009805sv000010B7sd00009805* -- ID_MODEL_FROM_DATABASE=3c980 10/100baseTX NIC [Python-T] -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (3c980 10/100baseTX NIC [Python-T]) - - pci:v000010B7d00009805sv000010F1sd00002462* -- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (Thunder K7 S2462) - - pci:v000010B7d00009900* - ID_MODEL_FROM_DATABASE=3C990-TX [Typhoon] -@@ -19725,25 +19725,25 @@ pci:v000010B7d00009904* - ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] - - pci:v000010B7d00009904sv000010B7sd00001000* -- ID_MODEL_FROM_DATABASE=3CR990B-TX-M [Typhoon2] -+ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990B-TX-M [Typhoon2]) - - pci:v000010B7d00009904sv000010B7sd00002000* -- ID_MODEL_FROM_DATABASE=3CR990BSVR [Typhoon2 Server] -+ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990BSVR [Typhoon2 Server]) - - pci:v000010B7d00009905* - ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] - - pci:v000010B7d00009905sv000010B7sd00001101* -- ID_MODEL_FROM_DATABASE=3CR990-FX-95 [Typhoon Fiber 56-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 [Typhoon Fiber 56-bit]) - - pci:v000010B7d00009905sv000010B7sd00001102* -- ID_MODEL_FROM_DATABASE=3CR990-FX-97 [Typhoon Fiber 168-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 [Typhoon Fiber 168-bit]) - - pci:v000010B7d00009905sv000010B7sd00002101* -- ID_MODEL_FROM_DATABASE=3CR990-FX-95 Server [Typhoon Fiber 56-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 Server [Typhoon Fiber 56-bit]) - - pci:v000010B7d00009905sv000010B7sd00002102* -- ID_MODEL_FROM_DATABASE=3CR990-FX-97 Server [Typhoon Fiber 168-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 Server [Typhoon Fiber 168-bit]) - - pci:v000010B7d00009908* - ID_MODEL_FROM_DATABASE=3CR990SVR95 [Typhoon Server 56-bit] -@@ -19764,49 +19764,49 @@ pci:v000010B8d00000005* - ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter - - pci:v000010B8d00000005sv00001055sd0000E000* -- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171Q-PCI] -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171Q-PCI]) - - pci:v000010B8d00000005sv00001055sd0000E002* -- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171G-PCI] -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171G-PCI]) - - pci:v000010B8d00000005sv000010B8sd0000A011* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A014* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A015* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A016* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A017* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000006* - ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter - - pci:v000010B8d00000006sv00001055sd0000E100* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv00001055sd0000E102* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv00001055sd0000E300* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv00001055sd0000E302* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv000010B8sd0000A012* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv000013A2sd00008002* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv000013A2sd00008006* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00001000* - ID_MODEL_FROM_DATABASE=FDC 37c665 -@@ -19869,13 +19869,13 @@ pci:v000010B9d00001521* - ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] - - pci:v000010B9d00001521sv000010B9sd00001521* -- ID_MODEL_FROM_DATABASE=ALI M1521 Aladdin III CPU Bridge -+ ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] (ALI M1521 Aladdin III CPU Bridge) - - pci:v000010B9d00001523* - ID_MODEL_FROM_DATABASE=M1523 - - pci:v000010B9d00001523sv000010B9sd00001523* -- ID_MODEL_FROM_DATABASE=ALI M1523 ISA Bridge -+ ID_MODEL_FROM_DATABASE=M1523 (ALI M1523 ISA Bridge) - - pci:v000010B9d00001531* - ID_MODEL_FROM_DATABASE=M1531 [Aladdin IV] -@@ -19884,16 +19884,16 @@ pci:v000010B9d00001533* - ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] - - pci:v000010B9d00001533sv00001014sd0000053B* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ThinkPad R40e) - - pci:v000010B9d00001533sv000010B9sd00001533* -- ID_MODEL_FROM_DATABASE=ALi M1533 Aladdin IV/V ISA Bridge -+ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ALi M1533 Aladdin IV/V ISA Bridge) - - pci:v000010B9d00001541* - ID_MODEL_FROM_DATABASE=M1541 - - pci:v000010B9d00001541sv000010B9sd00001541* -- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP System Controller -+ ID_MODEL_FROM_DATABASE=M1541 (ALI M1541 Aladdin V/V+ AGP System Controller) - - pci:v000010B9d00001543* - ID_MODEL_FROM_DATABASE=M1543 -@@ -19902,10 +19902,10 @@ pci:v000010B9d00001563* - ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge - - pci:v000010B9d00001563sv000010B9sd00001563* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00001563sv00001849sd00001563* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00001573* - ID_MODEL_FROM_DATABASE=PCI to LPC Controller -@@ -20007,22 +20007,22 @@ pci:v000010B9d00005229* - ID_MODEL_FROM_DATABASE=M5229 IDE - - pci:v000010B9d00005229sv00001014sd0000050F* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R30) - - pci:v000010B9d00005229sv00001014sd0000053D* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R40e) - - pci:v000010B9d00005229sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin IDE -+ ID_MODEL_FROM_DATABASE=M5229 IDE (Pavilion ze4400 builtin IDE) - - pci:v000010B9d00005229sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M5229 IDE (XE4500 Notebook) - - pci:v000010B9d00005229sv00001043sd00008053* -- ID_MODEL_FROM_DATABASE=A7A266 Motherboard IDE -+ ID_MODEL_FROM_DATABASE=M5229 IDE (A7A266 Motherboard IDE) - - pci:v000010B9d00005229sv00001849sd00005229* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard IDE (PATA) -+ ID_MODEL_FROM_DATABASE=M5229 IDE (ASRock 939Dual-SATA2 Motherboard IDE (PATA)) - - pci:v000010B9d00005235* - ID_MODEL_FROM_DATABASE=M5225 -@@ -20031,31 +20031,31 @@ pci:v000010B9d00005237* - ID_MODEL_FROM_DATABASE=USB 1.1 Controller - - pci:v000010B9d00005237sv00001014sd00000540* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ThinkPad R40e) - - pci:v000010B9d00005237sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin USB -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Pavilion ze4400 builtin USB) - - pci:v000010B9d00005237sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (XE4500 Notebook) - - pci:v000010B9d00005237sv0000104Dsd0000810F* -- ID_MODEL_FROM_DATABASE=VAIO PCG-U1 USB/OHCI Revision 1.0 -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (VAIO PCG-U1 USB/OHCI Revision 1.0) - - pci:v000010B9d00005237sv000010B9sd00005237* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005237sv00001849sd00005237* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005239* - ID_MODEL_FROM_DATABASE=USB 2.0 Controller - - pci:v000010B9d00005239sv000010B9sd00005239* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005239sv00001849sd00005239* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005243* - ID_MODEL_FROM_DATABASE=M1541 PCI to AGP Controller -@@ -20103,7 +20103,7 @@ pci:v000010B9d00005288* - ID_MODEL_FROM_DATABASE=ULi M5288 SATA - - pci:v000010B9d00005288sv00001043sd00008056* -- ID_MODEL_FROM_DATABASE=A8R-MVP Mainboard -+ ID_MODEL_FROM_DATABASE=ULi M5288 SATA (A8R-MVP Mainboard) - - pci:v000010B9d00005289* - ID_MODEL_FROM_DATABASE=ULi 5289 SATA -@@ -20115,16 +20115,16 @@ pci:v000010B9d00005451* - ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device - - pci:v000010B9d00005451sv00001014sd00000506* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R30) - - pci:v000010B9d00005451sv00001014sd0000053E* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R40e) - - pci:v000010B9d00005451sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Audio -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (Pavilion ze4400 builtin Audio) - - pci:v000010B9d00005451sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (XE4500 Notebook) - - pci:v000010B9d00005453* - ID_MODEL_FROM_DATABASE=M5453 PCI AC-Link Controller Modem Device -@@ -20133,22 +20133,22 @@ pci:v000010B9d00005455* - ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device - - pci:v000010B9d00005455sv000010B9sd00005455* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005455sv00001849sd00000850* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005457* - ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller - - pci:v000010B9d00005457sv00001014sd00000535* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (ThinkPad R40e) - - pci:v000010B9d00005457sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Modem Device -+ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (Pavilion ze4400 builtin Modem Device) - - pci:v000010B9d00005457sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (XE4500 Notebook) - - pci:v000010B9d00005459* - ID_MODEL_FROM_DATABASE=SmartLink SmartPCI561 56K Modem -@@ -20169,19 +20169,19 @@ pci:v000010B9d00007101* - ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] - - pci:v000010B9d00007101sv00001014sd00000510* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R30) - - pci:v000010B9d00007101sv00001014sd0000053C* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R40e) - - pci:v000010B9d00007101sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (Pavilion ze4400) - - pci:v000010B9d00007101sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (XE4500 Notebook) - - pci:v000010B9d00007101sv00001849sd00007101* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010BA* - ID_VENDOR_FROM_DATABASE=Mitsubishi Electric Corp. -@@ -20196,7 +20196,7 @@ pci:v000010BAd00000308* - ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] - - pci:v000010BAd00000308sv000010DDsd00000024* -- ID_MODEL_FROM_DATABASE=Tornado 3000 -+ ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] (Tornado 3000) - - pci:v000010BAd00001002* - ID_MODEL_FROM_DATABASE=VG500 [VolumePro Volume Rendering Accelerator] -@@ -20259,79 +20259,79 @@ pci:v000010C8d00000004* - ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] - - pci:v000010C8d00000004sv00001014sd000000BA* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001025sd00001007* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd00000074* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd00000075* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd0000007D* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd0000007E* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001033sd0000802F* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv0000104Dsd0000801B* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv0000104Dsd0000802F* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv0000104Dsd0000830B* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010BAsd00000E00* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010C8sd00000004* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010CFsd00001029* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd00008308* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd00008309* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd0000830B* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd0000830D* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd00008312* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000005* - ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] - - pci:v000010C8d00000005sv00001014sd000000DD* -- ID_MODEL_FROM_DATABASE=ThinkPad 570 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (ThinkPad 570) - - pci:v000010C8d00000005sv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=Latitude CPi A -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (Latitude CPi A) - - pci:v000010C8d00000006* - ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] - - pci:v000010C8d00000006sv00001014sd00000152* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X -+ ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] (ThinkPad 600X) - - pci:v000010C8d00000016* - ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] - - pci:v000010C8d00000016sv000010C8sd00000016* -- ID_MODEL_FROM_DATABASE=MagicMedia 256XL+ -+ ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] (MagicMedia 256XL+) - - pci:v000010C8d00000025* - ID_MODEL_FROM_DATABASE=NM2230 [MagicGraph 256AV+] -@@ -20343,40 +20343,40 @@ pci:v000010C8d00008005* - ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] - - pci:v000010C8d00008005sv00000E11sd0000B0D1* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Discovery -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Discovery) - - pci:v000010C8d00008005sv00000E11sd0000B126* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Durango -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Durango) - - pci:v000010C8d00008005sv00001014sd000000DD* -- ID_MODEL_FROM_DATABASE=ThinkPad 390/i1720/i1721 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (ThinkPad 390/i1720/i1721) - - pci:v000010C8d00008005sv00001025sd00001003* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on TravelMate 720 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on TravelMate 720) - - pci:v000010C8d00008005sv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=Latitude CPi A -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (Latitude CPi A) - - pci:v000010C8d00008005sv00001028sd0000008F* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Colorado Inspiron -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Colorado Inspiron) - - pci:v000010C8d00008005sv0000103Csd00000007* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager II -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager II) - - pci:v000010C8d00008005sv0000103Csd00000008* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager III -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager III) - - pci:v000010C8d00008005sv0000103Csd0000000D* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Omnibook 900 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Omnibook 900) - - pci:v000010C8d00008005sv000010C8sd00008005* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on FireAnt -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on FireAnt) - - pci:v000010C8d00008005sv0000110Asd00008005* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) - - pci:v000010C8d00008005sv000014C0sd00000004* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) - - pci:v000010C8d00008006* - ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX Audio] -@@ -20415,10 +20415,10 @@ pci:v000010CDd00001300* - ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U - - pci:v000010CDd00001300sv000010CDsd00001310* -- ID_MODEL_FROM_DATABASE=ASC1300 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (ASC1300 SCSI Adapter) - - pci:v000010CDd00001300sv00001195sd00001320* -- ID_MODEL_FROM_DATABASE=Ultra-SCSI CardBus PC Card REX CB31 -+ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (Ultra-SCSI CardBus PC Card REX CB31) - - pci:v000010CDd00002300* - ID_MODEL_FROM_DATABASE=ABP940-UW -@@ -20511,7 +20511,7 @@ pci:v000010D9d00000531* - ID_MODEL_FROM_DATABASE=MX987x5 - - pci:v000010D9d00000531sv00001186sd00001200* -- ID_MODEL_FROM_DATABASE=DFE-540TX ProFAST 10/100 Adapter -+ ID_MODEL_FROM_DATABASE=MX987x5 (DFE-540TX ProFAST 10/100 Adapter) - - pci:v000010D9d00008625* - ID_MODEL_FROM_DATABASE=MX86250 -@@ -20559,7 +20559,7 @@ pci:v000010DDd00000100* - ID_MODEL_FROM_DATABASE=Lightning 1200 - - pci:v000010DDd00000100sv000010DDsd00000023* -- ID_MODEL_FROM_DATABASE=Lightning 1200 15+16M -+ ID_MODEL_FROM_DATABASE=Lightning 1200 (15+16M) - - pci:v000010DE* - ID_VENDOR_FROM_DATABASE=NVIDIA Corporation -@@ -20574,193 +20574,193 @@ pci:v000010DEd00000020* - ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] - - pci:v000010DEd00000020sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=V3400 TNT -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (V3400 TNT) - - pci:v000010DEd00000020sv00001048sd00000C18* -- ID_MODEL_FROM_DATABASE=Erazor II SGRAM -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II SGRAM) - - pci:v000010DEd00000020sv00001048sd00000C19* -- ID_MODEL_FROM_DATABASE=Erazor II -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) - - pci:v000010DEd00000020sv00001048sd00000C1B* -- ID_MODEL_FROM_DATABASE=Erazor II -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) - - pci:v000010DEd00000020sv00001048sd00000C1C* -- ID_MODEL_FROM_DATABASE=Erazor II -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) - - pci:v000010DEd00000020sv00001092sd00000550* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00000552* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004804* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004808* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004810* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004812* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004815* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004820* -- ID_MODEL_FROM_DATABASE=Viper V550 with TV out -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550 with TV out) - - pci:v000010DEd00000020sv00001092sd00004822* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004904* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004914* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00008225* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv000010B4sd0000273D* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) - - pci:v000010DEd00000020sv000010B4sd0000273E* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) - - pci:v000010DEd00000020sv000010B4sd00002740* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) - - pci:v000010DEd00000020sv000010DEsd00000020* -- ID_MODEL_FROM_DATABASE=Riva TNT -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Riva TNT) - - pci:v000010DEd00000020sv00001102sd00001015* -- ID_MODEL_FROM_DATABASE=Graphics Blaster CT6710 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster CT6710) - - pci:v000010DEd00000020sv00001102sd00001016* -- ID_MODEL_FROM_DATABASE=Graphics Blaster RIVA TNT -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster RIVA TNT) - - pci:v000010DEd00000028* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] - - pci:v000010DEd00000028sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800 SGRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SGRAM) - - pci:v000010DEd00000028sv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800 SDRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SDRAM) - - pci:v000010DEd00000028sv00001043sd00000205* -- ID_MODEL_FROM_DATABASE=PCI-V3800 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (PCI-V3800) - - pci:v000010DEd00000028sv00001043sd00004000* -- ID_MODEL_FROM_DATABASE=AGP-V3800PRO -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800PRO) - - pci:v000010DEd00000028sv00001048sd00000C21* -- ID_MODEL_FROM_DATABASE=Synergy II -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Synergy II) - - pci:v000010DEd00000028sv00001048sd00000C28* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C29* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C2A* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C2B* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C31* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv00001048sd00000C32* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv00001048sd00000C33* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv00001048sd00000C34* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv0000107Dsd00002134* -- ID_MODEL_FROM_DATABASE=WinFast 3D S320 II + TV-Out -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (WinFast 3D S320 II + TV-Out) - - pci:v000010DEd00000028sv00001092sd00004804* -- ID_MODEL_FROM_DATABASE=Viper V770 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) - - pci:v000010DEd00000028sv00001092sd00004A00* -- ID_MODEL_FROM_DATABASE=Viper V770 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) - - pci:v000010DEd00000028sv00001092sd00004A02* -- ID_MODEL_FROM_DATABASE=Viper V770 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) - - pci:v000010DEd00000028sv00001092sd00005A00* -- ID_MODEL_FROM_DATABASE=RIVA TNT2/TNT2 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2/TNT2 Pro) - - pci:v000010DEd00000028sv00001092sd00005A40* -- ID_MODEL_FROM_DATABASE=Viper V770D AGP -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770D AGP) - - pci:v000010DEd00000028sv00001092sd00006A02* -- ID_MODEL_FROM_DATABASE=Viper V770 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) - - pci:v000010DEd00000028sv00001092sd00007A02* -- ID_MODEL_FROM_DATABASE=Viper V770 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) - - pci:v000010DEd00000028sv000010DEsd00000005* -- ID_MODEL_FROM_DATABASE=RIVA TNT2 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2 Pro) - - pci:v000010DEd00000028sv000010DEsd0000000F* -- ID_MODEL_FROM_DATABASE=Compaq NVIDIA TNT2 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Compaq NVIDIA TNT2 Pro) - - pci:v000010DEd00000028sv00001102sd00001020* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2) - - pci:v000010DEd00000028sv00001102sd00001026* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Digital -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2 Digital) - - pci:v000010DEd00000028sv00001462sd00008806* -- ID_MODEL_FROM_DATABASE=MS-8806 AGPhantom Graphics Card -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (MS-8806 AGPhantom Graphics Card) - - pci:v000010DEd00000028sv000014AFsd00005810* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Maxi Gamer Xentor) - - pci:v000010DEd00000029* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] - - pci:v000010DEd00000029sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Deluxe -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Deluxe) - - pci:v000010DEd00000029sv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Ultra SDRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Ultra SDRAM) - - pci:v000010DEd00000029sv00001043sd00000205* -- ID_MODEL_FROM_DATABASE=PCI-V3800 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (PCI-V3800 Ultra) - - pci:v000010DEd00000029sv00001048sd00000C2E* -- ID_MODEL_FROM_DATABASE=Erazor III Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) - - pci:v000010DEd00000029sv00001048sd00000C2F* -- ID_MODEL_FROM_DATABASE=Erazor III Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) - - pci:v000010DEd00000029sv00001048sd00000C30* -- ID_MODEL_FROM_DATABASE=Erazor III Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) - - pci:v000010DEd00000029sv00001102sd00001021* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) - - pci:v000010DEd00000029sv00001102sd00001029* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) - - pci:v000010DEd00000029sv00001102sd0000102F* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) - - pci:v000010DEd00000029sv000014AFsd00005820* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor 32 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Maxi Gamer Xentor 32) - - pci:v000010DEd00000029sv00004843sd00004F34* -- ID_MODEL_FROM_DATABASE=Dynamite -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Dynamite) - - pci:v000010DEd0000002A* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2] -@@ -20772,85 +20772,85 @@ pci:v000010DEd0000002C* - ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] - - pci:v000010DEd0000002Csv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat SDRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat SDRAM) - - pci:v000010DEd0000002Csv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat) - - pci:v000010DEd0000002Csv00001048sd00000C20* -- ID_MODEL_FROM_DATABASE=TNT2 Vanta -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) - - pci:v000010DEd0000002Csv00001048sd00000C21* -- ID_MODEL_FROM_DATABASE=TNT2 Vanta -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) - - pci:v000010DEd0000002Csv00001048sd00000C25* -- ID_MODEL_FROM_DATABASE=TNT2 Vanta 16MB -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta 16MB) - - pci:v000010DEd0000002Csv00001092sd00006820* -- ID_MODEL_FROM_DATABASE=Viper V730 -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Viper V730) - - pci:v000010DEd0000002Csv00001102sd00001031* -- ID_MODEL_FROM_DATABASE=CT6938 VANTA 8MB -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6938 VANTA 8MB) - - pci:v000010DEd0000002Csv00001102sd00001034* -- ID_MODEL_FROM_DATABASE=CT6894 VANTA 16MB -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6894 VANTA 16MB) - - pci:v000010DEd0000002Csv000014AFsd00005008* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix 2 -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Maxi Gamer Phoenix 2) - - pci:v000010DEd0000002D* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] - - pci:v000010DEd0000002Dsv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800M -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) - - pci:v000010DEd0000002Dsv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800M -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) - - pci:v000010DEd0000002Dsv00001048sd00000C3A* -- ID_MODEL_FROM_DATABASE=Erazor III LT -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) - - pci:v000010DEd0000002Dsv00001048sd00000C3B* -- ID_MODEL_FROM_DATABASE=Erazor III LT -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) - - pci:v000010DEd0000002Dsv0000107Dsd00002137* -- ID_MODEL_FROM_DATABASE=WinFast 3D S325 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (WinFast 3D S325) - - pci:v000010DEd0000002Dsv000010DEsd00000006* -- ID_MODEL_FROM_DATABASE=RIVA TNT2 Model 64/Model 64 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (RIVA TNT2 Model 64/Model 64 Pro) - - pci:v000010DEd0000002Dsv000010DEsd0000001E* -- ID_MODEL_FROM_DATABASE=M64 AGP4x -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (M64 AGP4x) - - pci:v000010DEd0000002Dsv00001102sd00001023* -- ID_MODEL_FROM_DATABASE=CT6892 RIVA TNT2 Value -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6892 RIVA TNT2 Value) - - pci:v000010DEd0000002Dsv00001102sd00001024* -- ID_MODEL_FROM_DATABASE=CT6932 RIVA TNT2 Value 32Mb -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6932 RIVA TNT2 Value 32Mb) - - pci:v000010DEd0000002Dsv00001102sd0000102C* -- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value [Jumper] -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value [Jumper]) - - pci:v000010DEd0000002Dsv00001102sd00001030* -- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value) - - pci:v000010DEd0000002Dsv0000110Asd0000006F* -- ID_MODEL_FROM_DATABASE=GM1000-16 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) - - pci:v000010DEd0000002Dsv0000110Asd00000081* -- ID_MODEL_FROM_DATABASE=GM1000-16 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) - - pci:v000010DEd0000002Dsv00001462sd00008808* -- ID_MODEL_FROM_DATABASE=MSI-8808 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (MSI-8808) - - pci:v000010DEd0000002Dsv000014AFsd00005620* -- ID_MODEL_FROM_DATABASE=Gamer Cougar Video Edition -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Gamer Cougar Video Edition) - - pci:v000010DEd0000002Dsv00001554sd00001041* -- ID_MODEL_FROM_DATABASE=Pixelview RIVA TNT2 M64 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Pixelview RIVA TNT2 M64) - - pci:v000010DEd0000002Dsv00001569sd0000002D* -- ID_MODEL_FROM_DATABASE=Palit Microsystems Daytona TNT2 M64 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Palit Microsystems Daytona TNT2 M64) - - pci:v000010DEd00000034* - ID_MODEL_FROM_DATABASE=MCP04 SMBus -@@ -20889,19 +20889,19 @@ pci:v000010DEd00000041* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] - - pci:v000010DEd00000041sv00001043sd0000817B* -- ID_MODEL_FROM_DATABASE=V9999 Gamer Edition -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (V9999 Gamer Edition) - - pci:v000010DEd00000041sv0000107Dsd00002992* -- ID_MODEL_FROM_DATABASE=WinFast A400 -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (WinFast A400) - - pci:v000010DEd00000041sv00001458sd0000310F* -- ID_MODEL_FROM_DATABASE=Geforce 6800 GV-N6812 -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (Geforce 6800 GV-N6812) - - pci:v000010DEd00000042* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] - - pci:v000010DEd00000042sv0000107Dsd0000299B* -- ID_MODEL_FROM_DATABASE=WinFast A400 LE -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] (WinFast A400 LE) - - pci:v000010DEd00000043* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XE] -@@ -20913,16 +20913,16 @@ pci:v000010DEd00000045* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] - - pci:v000010DEd00000045sv00001043sd0000817D* -- ID_MODEL_FROM_DATABASE=V9999GT -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (V9999GT) - - pci:v000010DEd00000045sv00001458sd00003140* -- ID_MODEL_FROM_DATABASE=GV-N68T256D -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (GV-N68T256D) - - pci:v000010DEd00000047* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] - - pci:v000010DEd00000047sv00001682sd00002109* -- ID_MODEL_FROM_DATABASE=GeForce 6800 GS -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] (GeForce 6800 GS) - - pci:v000010DEd00000048* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XT] -@@ -20934,133 +20934,133 @@ pci:v000010DEd00000050* - ID_MODEL_FROM_DATABASE=CK804 ISA Bridge - - pci:v000010DEd00000050sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000050sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (Tomcat K8E (S2865)) - - pci:v000010DEd00000050sv00001458sd00000C11* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000050sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (MSI K8N Diamond) - - pci:v000010DEd00000050sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N Neo4-F mainboard) - - pci:v000010DEd00000050sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (KN8-Ultra Mainboard) - - pci:v000010DEd00000050sv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (NF4 AM2L Mainboard) - - pci:v000010DEd00000051* - ID_MODEL_FROM_DATABASE=CK804 ISA Bridge - - pci:v000010DEd00000051sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 ISA Bridge -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (PowerEdge T105 ISA Bridge) - - pci:v000010DEd00000052* - ID_MODEL_FROM_DATABASE=CK804 SMBus - - pci:v000010DEd00000052sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 SMBus -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (PowerEdge T105 SMBus) - - pci:v000010DEd00000052sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000052sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (Tomcat K8E (S2865)) - - pci:v000010DEd00000052sv00001458sd00000C11* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000052sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (MSI K8N Diamond) - - pci:v000010DEd00000052sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N Neo4-F mainboard) - - pci:v000010DEd00000052sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (KN8-Ultra Mainboard) - - pci:v000010DEd00000052sv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (NF4 AM2L Mainboard) - - pci:v000010DEd00000053* - ID_MODEL_FROM_DATABASE=CK804 IDE - - pci:v000010DEd00000053sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000053sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 IDE (Tomcat K8E (S2865)) - - pci:v000010DEd00000053sv00001458sd00005002* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000053sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 IDE (MSI K8N Diamond) - - pci:v000010DEd00000053sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N Neo4-F mainboard) - - pci:v000010DEd00000053sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (KN8-Ultra Mainboard) - - pci:v000010DEd00000053sv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (NF4 AM2L Mainboard) - - pci:v000010DEd00000054* - ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller - - pci:v000010DEd00000054sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) - - pci:v000010DEd00000054sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (A8N Series Mainboard) - - pci:v000010DEd00000054sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000054sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000054sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (MSI K8N Diamond) - - pci:v000010DEd00000054sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000054sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000054sv00001565sd00005401* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) - - pci:v000010DEd00000055* - ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller - - pci:v000010DEd00000055sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) - - pci:v000010DEd00000055sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000055sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000055sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000055sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000055sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000055sv00001565sd00005401* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) - - pci:v000010DEd00000056* - ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller -@@ -21069,28 +21069,28 @@ pci:v000010DEd00000057* - ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller - - pci:v000010DEd00000057sv00001043sd00008141* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000057sv000010DEsd0000CB84* -- ID_MODEL_FROM_DATABASE=NF4 Lanparty -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 Lanparty) - - pci:v000010DEd00000057sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000057sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000057sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (MSI K8N Diamond) - - pci:v000010DEd00000057sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000057sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000057sv00001565sd00002501* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 AM2L Mainboard) - - pci:v000010DEd00000058* - ID_MODEL_FROM_DATABASE=CK804 AC'97 Modem -@@ -21099,73 +21099,73 @@ pci:v000010DEd00000059* - ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller - - pci:v000010DEd00000059sv00001043sd0000812A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000059sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000059sv00001462sd00007585* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000059sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000059sv00001565sd00008211* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005A* - ID_MODEL_FROM_DATABASE=CK804 USB Controller - - pci:v000010DEd0000005Asv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) - - pci:v000010DEd0000005Asv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd0000005Asv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) - - pci:v000010DEd0000005Asv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd0000005Asv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) - - pci:v000010DEd0000005Asv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) - - pci:v000010DEd0000005Asv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) - - pci:v000010DEd0000005Asv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005B* - ID_MODEL_FROM_DATABASE=CK804 USB Controller - - pci:v000010DEd0000005Bsv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) - - pci:v000010DEd0000005Bsv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd0000005Bsv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) - - pci:v000010DEd0000005Bsv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd0000005Bsv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) - - pci:v000010DEd0000005Bsv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) - - pci:v000010DEd0000005Bsv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) - - pci:v000010DEd0000005Bsv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005C* - ID_MODEL_FROM_DATABASE=CK804 PCI Bridge -@@ -21177,34 +21177,34 @@ pci:v000010DEd0000005E* - ID_MODEL_FROM_DATABASE=CK804 Memory Controller - - pci:v000010DEd0000005Esv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Memory Controller -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (PowerEdge T105 Memory Controller) - - pci:v000010DEd0000005Esv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (A8N Series Mainboard) - - pci:v000010DEd0000005Esv000010DEsd0000005E* -- ID_MODEL_FROM_DATABASE=ECS Elitegroup NFORCE3-A939 motherboard. -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (ECS Elitegroup NFORCE3-A939 motherboard.) - - pci:v000010DEd0000005Esv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Tomcat K8E (S2865)) - - pci:v000010DEd0000005Esv000010F1sd00002891* -- ID_MODEL_FROM_DATABASE=Thunder K8SRE Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Thunder K8SRE Mainboard) - - pci:v000010DEd0000005Esv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd0000005Esv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=K8N Diamond Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Diamond Mainboard) - - pci:v000010DEd0000005Esv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Neo4-F Mainboard) - - pci:v000010DEd0000005Esv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (KN8-Ultra Mainboard) - - pci:v000010DEd0000005Esv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005F* - ID_MODEL_FROM_DATABASE=CK804 Memory Controller -@@ -21213,61 +21213,61 @@ pci:v000010DEd00000060* - ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge - - pci:v000010DEd00000060sv00001043sd000080AD* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard -+ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (A7N8X Mainboard) - - pci:v000010DEd00000060sv0000147Bsd00001C02* -- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X -+ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (NF7-S/NF7 (nVidia-nForce2) 2.X) - - pci:v000010DEd00000060sv0000A0A0sd000003BA* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (UK79G-1394 motherboard) - - pci:v000010DEd00000064* - ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) - - pci:v000010DEd00000064sv0000147Bsd00001C02* -- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X -+ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (NF7-S/NF7 (nVidia-nForce2) 2.X) - - pci:v000010DEd00000064sv0000A0A0sd000003BB* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (UK79G-1394 motherboard) - - pci:v000010DEd00000065* - ID_MODEL_FROM_DATABASE=nForce2 IDE - - pci:v000010DEd00000065sv000010DEsd00000C11* -- ID_MODEL_FROM_DATABASE=nForce 2 EIDE Controller -+ ID_MODEL_FROM_DATABASE=nForce2 IDE (nForce 2 EIDE Controller) - - pci:v000010DEd00000065sv0000A0A0sd000003B2* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 IDE (UK79G-1394 motherboard) - - pci:v000010DEd00000066* - ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller - - pci:v000010DEd00000066sv00001043sd000080A7* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard onboard nForce2 Ethernet -+ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (A7N8X Mainboard onboard nForce2 Ethernet) - - pci:v000010DEd00000066sv000010DEsd00000C11* -- ID_MODEL_FROM_DATABASE=nForce MCP-T Networking Adapter -+ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (nForce MCP-T Networking Adapter) - - pci:v000010DEd00000066sv0000A0A0sd000003B3* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (UK79G-1394 motherboard) - - pci:v000010DEd00000067* - ID_MODEL_FROM_DATABASE=nForce2 USB Controller - - pci:v000010DEd00000067sv00001043sd00000C11* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) - - pci:v000010DEd00000067sv0000A0A0sd000003B4* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) - - pci:v000010DEd00000068* - ID_MODEL_FROM_DATABASE=nForce2 USB Controller - - pci:v000010DEd00000068sv00001043sd00000C11* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) - - pci:v000010DEd00000068sv0000A0A0sd000003B4* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) - - pci:v000010DEd0000006A* - ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) -@@ -21276,16 +21276,16 @@ pci:v000010DEd0000006Asv00001043sd00008095* - ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) - - pci:v000010DEd0000006Asv0000A0A0sd00000304* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) (UK79G-1394 motherboard) - - pci:v000010DEd0000006B* - ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit - - pci:v000010DEd0000006Bsv000010DEsd0000006B* -- ID_MODEL_FROM_DATABASE=nForce2 MCP Audio Processing Unit -+ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (nForce2 MCP Audio Processing Unit) - - pci:v000010DEd0000006Bsv0000A0A0sd00000304* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (UK79G-1394 motherboard) - - pci:v000010DEd0000006C* - ID_MODEL_FROM_DATABASE=nForce2 External PCI Bridge -@@ -21297,25 +21297,25 @@ pci:v000010DEd0000006E* - ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller - - pci:v000010DEd0000006Esv0000A0A0sd00000306* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller (UK79G-1394 motherboard) - - pci:v000010DEd00000080* - ID_MODEL_FROM_DATABASE=MCP2A ISA bridge - - pci:v000010DEd00000080sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A ISA bridge (NV7 Motherboard) - - pci:v000010DEd00000084* - ID_MODEL_FROM_DATABASE=MCP2A SMBus - - pci:v000010DEd00000084sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A SMBus (NV7 Motherboard) - - pci:v000010DEd00000085* - ID_MODEL_FROM_DATABASE=MCP2A IDE - - pci:v000010DEd00000085sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A IDE (NV7 Motherboard) - - pci:v000010DEd00000086* - ID_MODEL_FROM_DATABASE=MCP2A Ethernet Controller -@@ -21324,19 +21324,19 @@ pci:v000010DEd00000087* - ID_MODEL_FROM_DATABASE=MCP2A USB Controller - - pci:v000010DEd00000087sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) - - pci:v000010DEd00000088* - ID_MODEL_FROM_DATABASE=MCP2A USB Controller - - pci:v000010DEd00000088sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) - - pci:v000010DEd0000008A* - ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller - - pci:v000010DEd0000008Asv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller (NV7 Motherboard) - - pci:v000010DEd0000008B* - ID_MODEL_FROM_DATABASE=MCP2A PCI Bridge -@@ -21378,7 +21378,7 @@ pci:v000010DEd000000A0* - ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] - - pci:v000010DEd000000A0sv000014AFsd00005810* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor -+ ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] (Maxi Gamer Xentor) - - pci:v000010DEd000000C0* - ID_MODEL_FROM_DATABASE=NV41 [GeForce 6800 GS] -@@ -21459,46 +21459,46 @@ pci:v000010DEd000000DF* - ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller - - pci:v000010DEd000000DFsv00001043sd000080A7* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (K8N-E) - - pci:v000010DEd000000DFsv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000DFsv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (NF8 Mainboard) - - pci:v000010DEd000000E0* - ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge - - pci:v000010DEd000000E0sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N-E) - - pci:v000010DEd000000E0sv000010DEsd00000C11* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Winfast NF3250K8AA) - - pci:v000010DEd000000E0sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E0sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (NF8 Mainboard) - - pci:v000010DEd000000E0sv00001849sd000000E0* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Motherboard (one of many)) - - pci:v000010DEd000000E1* - ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge - - pci:v000010DEd000000E1sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N-E) - - pci:v000010DEd000000E1sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E1sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (NF8 Mainboard) - - pci:v000010DEd000000E1sv00001849sd000000E1* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (Motherboard (one of many)) - - pci:v000010DEd000000E2* - ID_MODEL_FROM_DATABASE=nForce3 250Gb AGP Host to PCI Bridge -@@ -21507,55 +21507,55 @@ pci:v000010DEd000000E3* - ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller - - pci:v000010DEd000000E3sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (K8N-E) - - pci:v000010DEd000000E3sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000E3sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (NF8 Mainboard) - - pci:v000010DEd000000E3sv00001849sd000000E3* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Motherboard (one of many)) - - pci:v000010DEd000000E4* - ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management - - pci:v000010DEd000000E4sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N-E) - - pci:v000010DEd000000E4sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Winfast NF3250K8AA) - - pci:v000010DEd000000E4sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E4sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (NF8 Mainboard) - - pci:v000010DEd000000E4sv00001849sd000000E4* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Motherboard (one of many)) - - pci:v000010DEd000000E5* - ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) - - pci:v000010DEd000000E5sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N-E) - - pci:v000010DEd000000E5sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Winfast NF3250K8AA) - - pci:v000010DEd000000E5sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E5sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (NF8 Mainboard) - - pci:v000010DEd000000E5sv00001849sd000000E5* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) - - pci:v000010DEd000000E5sv0000F849sd000000E5* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) - - pci:v000010DEd000000E6* - ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller -@@ -21564,52 +21564,52 @@ pci:v000010DEd000000E7* - ID_MODEL_FROM_DATABASE=CK8S USB Controller - - pci:v000010DEd000000E7sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N-E) - - pci:v000010DEd000000E7sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000E7sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E7sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (NF8 Mainboard) - - pci:v000010DEd000000E7sv00001849sd000000E7* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Motherboard (one of many)) - - pci:v000010DEd000000E8* - ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller - - pci:v000010DEd000000E8sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N-E) - - pci:v000010DEd000000E8sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000E8sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E8sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (NF8 Mainboard) - - pci:v000010DEd000000E8sv00001849sd000000E8* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Motherboard (one of many)) - - pci:v000010DEd000000EA* - ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller - - pci:v000010DEd000000EAsv00001043sd0000819D* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N-E) - - pci:v000010DEd000000EAsv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000EAsv00001462sd0000B010* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N Neo-FSR v2.0) - - pci:v000010DEd000000EAsv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (NF8 Mainboard) - - pci:v000010DEd000000ED* - ID_MODEL_FROM_DATABASE=nForce3 250Gb PCI-to-PCI Bridge -@@ -21621,28 +21621,28 @@ pci:v000010DEd000000F1* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] - - pci:v000010DEd000000F1sv00001043sd000081A6* -- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) - - pci:v000010DEd000000F1sv00001043sd000081C6* -- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) - - pci:v000010DEd000000F1sv00001458sd00003150* -- ID_MODEL_FROM_DATABASE=GV-N66T128VP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-N66T128VP) - - pci:v000010DEd000000F1sv00001554sd00001191* -- ID_MODEL_FROM_DATABASE=PixelView PV-N43UA (128KD) -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (PixelView PV-N43UA (128KD)) - - pci:v000010DEd000000F1sv00001682sd00002119* -- ID_MODEL_FROM_DATABASE=GeForce 6600 GT AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GeForce 6600 GT AGP) - - pci:v000010DEd000000F2* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] - - pci:v000010DEd000000F2sv00001554sd00001194* -- ID_MODEL_FROM_DATABASE=PixelView PV-N43AT (256KD) -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (PixelView PV-N43AT (256KD)) - - pci:v000010DEd000000F2sv00001682sd0000211C* -- ID_MODEL_FROM_DATABASE=GeForce 6600 256MB DDR DUAL DVI TV -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GeForce 6600 256MB DDR DUAL DVI TV) - - pci:v000010DEd000000F3* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6200] -@@ -21657,7 +21657,7 @@ pci:v000010DEd000000F6* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] - - pci:v000010DEd000000F6sv00001682sd0000217E* -- ID_MODEL_FROM_DATABASE=XFX GeForce 6800 XTreme 256MB DDR3 AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] (XFX GeForce 6800 XTreme 256MB DDR3 AGP) - - pci:v000010DEd000000F8* - ID_MODEL_FROM_DATABASE=NV40GL [Quadro FX 3400/4400] -@@ -21666,10 +21666,10 @@ pci:v000010DEd000000F9* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] - - pci:v000010DEd000000F9sv000010DEsd000000F9* -- ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (NV40 [GeForce 6800 GT]) - - pci:v000010DEd000000F9sv00001682sd00002120* -- ID_MODEL_FROM_DATABASE=GEFORCE 6800 GT PCI-E -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (GEFORCE 6800 GT PCI-E) - - pci:v000010DEd000000FA* - ID_MODEL_FROM_DATABASE=NV36 [GeForce PCX 5750] -@@ -21693,130 +21693,130 @@ pci:v000010DEd00000100* - ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] - - pci:v000010DEd00000100sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) - - pci:v000010DEd00000100sv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) - - pci:v000010DEd00000100sv00001043sd00004008* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) - - pci:v000010DEd00000100sv00001043sd00004009* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) - - pci:v000010DEd00000100sv00001048sd00000C41* -- ID_MODEL_FROM_DATABASE=Erazor X -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Erazor X) - - pci:v000010DEd00000100sv00001048sd00000C43* -- ID_MODEL_FROM_DATABASE=ERAZOR X PCI -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (ERAZOR X PCI) - - pci:v000010DEd00000100sv00001048sd00000C48* -- ID_MODEL_FROM_DATABASE=Synergy Force -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Synergy Force) - - pci:v000010DEd00000100sv00001102sd0000102D* -- ID_MODEL_FROM_DATABASE=CT6941 GeForce 256 -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (CT6941 GeForce 256) - - pci:v000010DEd00000100sv000014AFsd00005022* -- ID_MODEL_FROM_DATABASE=3D Prophet SE -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (3D Prophet SE) - - pci:v000010DEd00000101* - ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] - - pci:v000010DEd00000101sv00001043sd00000202* -- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR) - - pci:v000010DEd00000101sv00001043sd0000400A* -- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SGRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SGRAM) - - pci:v000010DEd00000101sv00001043sd0000400B* -- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SDRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SDRAM) - - pci:v000010DEd00000101sv00001048sd00000C42* -- ID_MODEL_FROM_DATABASE=Erazor X -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (Erazor X) - - pci:v000010DEd00000101sv0000107Dsd00002822* -- ID_MODEL_FROM_DATABASE=WinFast GeForce 256 -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (WinFast GeForce 256) - - pci:v000010DEd00000101sv00001102sd0000102E* -- ID_MODEL_FROM_DATABASE=CT6970/CT6971 -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (CT6970/CT6971) - - pci:v000010DEd00000101sv000014AFsd00005021* -- ID_MODEL_FROM_DATABASE=3D Prophet DDR-DVI -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (3D Prophet DDR-DVI) - - pci:v000010DEd00000103* - ID_MODEL_FROM_DATABASE=NV10GL [Quadro] - - pci:v000010DEd00000103sv00001048sd00000C40* -- ID_MODEL_FROM_DATABASE=GLoria II-64 -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64) - - pci:v000010DEd00000103sv00001048sd00000C44* -- ID_MODEL_FROM_DATABASE=GLoria II -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) - - pci:v000010DEd00000103sv00001048sd00000C45* -- ID_MODEL_FROM_DATABASE=GLoria II -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) - - pci:v000010DEd00000103sv00001048sd00000C4A* -- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro) - - pci:v000010DEd00000103sv00001048sd00000C4B* -- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro DVII -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro DVII) - - pci:v000010DEd00000110* - ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] - - pci:v000010DEd00000110sv00001043sd00004015* -- ID_MODEL_FROM_DATABASE=AGP-V7100 Pro -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (AGP-V7100 Pro) - - pci:v000010DEd00000110sv00001043sd00004021* -- ID_MODEL_FROM_DATABASE=V7100 Deluxe Combo -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Deluxe Combo) - - pci:v000010DEd00000110sv00001043sd00004031* -- ID_MODEL_FROM_DATABASE=V7100 Pro with TV output -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Pro with TV output) - - pci:v000010DEd00000110sv00001048sd00000C60* -- ID_MODEL_FROM_DATABASE=Gladiac MX -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac MX) - - pci:v000010DEd00000110sv00001048sd00000C61* -- ID_MODEL_FROM_DATABASE=Gladiac 511PCI -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511PCI) - - pci:v000010DEd00000110sv00001048sd00000C63* -- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 32MB -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 32MB) - - pci:v000010DEd00000110sv00001048sd00000C64* -- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 64MB -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 64MB) - - pci:v000010DEd00000110sv00001048sd00000C65* -- ID_MODEL_FROM_DATABASE=Gladiac 511TWIN -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TWIN) - - pci:v000010DEd00000110sv00001048sd00000C66* -- ID_MODEL_FROM_DATABASE=Gladiac 311 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 311) - - pci:v000010DEd00000110sv000010B0sd00000001* -- ID_MODEL_FROM_DATABASE=GeForce2 MX Jumbo TV -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (GeForce2 MX Jumbo TV) - - pci:v000010DEd00000110sv000010DEsd00000091* -- ID_MODEL_FROM_DATABASE=Dell OEM GeForce 2 MX 400 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Dell OEM GeForce 2 MX 400) - - pci:v000010DEd00000110sv000010DEsd000000A1* -- ID_MODEL_FROM_DATABASE=Apple OEM GeForce2 MX -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Apple OEM GeForce2 MX) - - pci:v000010DEd00000110sv00001462sd00008523* -- ID_MODEL_FROM_DATABASE=MS-8852 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MS-8852) - - pci:v000010DEd00000110sv00001462sd00008817* -- ID_MODEL_FROM_DATABASE=MSI GeForce2 MX400 Pro32S [MS-8817] -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MSI GeForce2 MX400 Pro32S [MS-8817]) - - pci:v000010DEd00000110sv000014AFsd00007102* -- ID_MODEL_FROM_DATABASE=3D Prophet II MX -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX) - - pci:v000010DEd00000110sv000014AFsd00007103* -- ID_MODEL_FROM_DATABASE=3D Prophet II MX Dual-Display -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX Dual-Display) - - pci:v000010DEd00000110sv00001545sd00000023* -- ID_MODEL_FROM_DATABASE=Xtasy Rev. B2 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Xtasy Rev. B2) - - pci:v000010DEd00000110sv00001554sd00001081* -- ID_MODEL_FROM_DATABASE=MVGA-NVG11AM(400) -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MVGA-NVG11AM(400)) - - pci:v000010DEd00000111* - ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX200] -@@ -21831,28 +21831,28 @@ pci:v000010DEd00000140* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] - - pci:v000010DEd00000140sv00001458sd00003125* -- ID_MODEL_FROM_DATABASE=GV-NX66T128D -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T128D) - - pci:v000010DEd00000140sv00001458sd00003126* -- ID_MODEL_FROM_DATABASE=GV-NX66T256DE -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T256DE) - - pci:v000010DEd00000140sv00001462sd00008939* -- ID_MODEL_FROM_DATABASE=MS-8983 -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (MS-8983) - - pci:v000010DEd00000141* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] - - pci:v000010DEd00000141sv00001043sd000081B0* -- ID_MODEL_FROM_DATABASE=EN6600 Silencer -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (EN6600 Silencer) - - pci:v000010DEd00000141sv0000107Dsd0000593A* -- ID_MODEL_FROM_DATABASE=LR2A22 128MB TV OUT -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (LR2A22 128MB TV OUT) - - pci:v000010DEd00000141sv0000107Dsd0000597B* -- ID_MODEL_FROM_DATABASE=WINFAST PX6600 -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (WINFAST PX6600) - - pci:v000010DEd00000141sv00001458sd00003124* -- ID_MODEL_FROM_DATABASE=GV-NX66128DP Turbo Force Edition -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GV-NX66128DP Turbo Force Edition) - - pci:v000010DEd00000142* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 LE] -@@ -21897,49 +21897,49 @@ pci:v000010DEd00000150* - ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] - - pci:v000010DEd00000150sv00001043sd00004016* -- ID_MODEL_FROM_DATABASE=V7700 AGP Video Card -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (V7700 AGP Video Card) - - pci:v000010DEd00000150sv00001043sd0000402A* -- ID_MODEL_FROM_DATABASE=AGP-V7700 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (AGP-V7700) - - pci:v000010DEd00000150sv00001048sd00000C50* -- ID_MODEL_FROM_DATABASE=Gladiac -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac) - - pci:v000010DEd00000150sv00001048sd00000C52* -- ID_MODEL_FROM_DATABASE=Gladiac-64 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac-64) - - pci:v000010DEd00000150sv0000107Dsd00002840* -- ID_MODEL_FROM_DATABASE=WinFast GeForce2 GTS with TV output -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce2 GTS with TV output) - - pci:v000010DEd00000150sv0000107Dsd00002842* -- ID_MODEL_FROM_DATABASE=WinFast GeForce 2 Pro -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce 2 Pro) - - pci:v000010DEd00000150sv000010DEsd0000002E* -- ID_MODEL_FROM_DATABASE=GeForce2 GTS -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (GeForce2 GTS) - - pci:v000010DEd00000150sv00001462sd0000815A* -- ID_MODEL_FROM_DATABASE=MS-8815 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (MS-8815) - - pci:v000010DEd00000150sv00001462sd00008831* -- ID_MODEL_FROM_DATABASE=Creative GeForce2 Pro -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Creative GeForce2 Pro) - - pci:v000010DEd00000151* - ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] - - pci:v000010DEd00000151sv00001043sd0000405F* -- ID_MODEL_FROM_DATABASE=V7700Ti -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (V7700Ti) - - pci:v000010DEd00000151sv00001462sd00005506* -- ID_MODEL_FROM_DATABASE=Creative 3D Blaster GeForce2 Titanium -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (Creative 3D Blaster GeForce2 Titanium) - - pci:v000010DEd00000151sv00001462sd00008364* -- ID_MODEL_FROM_DATABASE=MS-8836 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (MS-8836) - - pci:v000010DEd00000152* - ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] - - pci:v000010DEd00000152sv00001048sd00000C56* -- ID_MODEL_FROM_DATABASE=GLADIAC Ultra -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] (GLADIAC Ultra) - - pci:v000010DEd00000153* - ID_MODEL_FROM_DATABASE=NV15GL [Quadro2 Pro] -@@ -21990,40 +21990,40 @@ pci:v000010DEd00000170* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] - - pci:v000010DEd00000170sv00001462sd00008630* -- ID_MODEL_FROM_DATABASE=MS-8863 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] (MS-8863) - - pci:v000010DEd00000171* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] - - pci:v000010DEd00000171sv000010B0sd00000002* -- ID_MODEL_FROM_DATABASE=Gainward Pro/600 TV -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Gainward Pro/600 TV) - - pci:v000010DEd00000171sv000010DEsd00000008* -- ID_MODEL_FROM_DATABASE=Apple OEM GeForce4 MX 440 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Apple OEM GeForce4 MX 440) - - pci:v000010DEd00000171sv00001462sd00008661* -- ID_MODEL_FROM_DATABASE=G4MX440-VTP -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (G4MX440-VTP) - - pci:v000010DEd00000171sv00001462sd00008730* -- ID_MODEL_FROM_DATABASE=MX440SES-T (MS-8873) -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MX440SES-T (MS-8873)) - - pci:v000010DEd00000171sv00001462sd00008743* -- ID_MODEL_FROM_DATABASE=MS-8874 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MS-8874) - - pci:v000010DEd00000171sv00001462sd00008852* -- ID_MODEL_FROM_DATABASE=GeForce4 MX440 PCI -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (GeForce4 MX440 PCI) - - pci:v000010DEd00000171sv0000147Bsd00008F00* -- ID_MODEL_FROM_DATABASE=Abit Siluro GeForce4MX440 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Abit Siluro GeForce4MX440) - - pci:v000010DEd00000172* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] - - pci:v000010DEd00000172sv00001462sd00008730* -- ID_MODEL_FROM_DATABASE=MS-8873 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8873) - - pci:v000010DEd00000172sv00001462sd00008784* -- ID_MODEL_FROM_DATABASE=MS-8878 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8878) - - pci:v000010DEd00000173* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440-SE] -@@ -22038,13 +22038,13 @@ pci:v000010DEd00000176* - ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] - - pci:v000010DEd00000176sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (tc1100 tablet) - - pci:v000010DEd00000176sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (X10 Laptop) - - pci:v000010DEd00000176sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (Cx9 / Vx9 mainboard) - - pci:v000010DEd00000177* - ID_MODEL_FROM_DATABASE=NV17M [GeForce4 460 Go] -@@ -22056,7 +22056,7 @@ pci:v000010DEd00000179* - ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] - - pci:v000010DEd00000179sv000010DEsd00000179* -- ID_MODEL_FROM_DATABASE=GeForce4 MX (Mac) -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] (GeForce4 MX (Mac)) - - pci:v000010DEd0000017A* - ID_MODEL_FROM_DATABASE=NV17GL [Quadro NVS] -@@ -22074,25 +22074,25 @@ pci:v000010DEd00000181* - ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] - - pci:v000010DEd00000181sv00001043sd00008063* -- ID_MODEL_FROM_DATABASE=GeForce4 MX 440 AGP 8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (GeForce4 MX 440 AGP 8X) - - pci:v000010DEd00000181sv00001043sd0000806F* -- ID_MODEL_FROM_DATABASE=V9180 Magic -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (V9180 Magic) - - pci:v000010DEd00000181sv00001462sd00008880* -- ID_MODEL_FROM_DATABASE=MS-StarForce GeForce4 MX 440 with AGP8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-StarForce GeForce4 MX 440 with AGP8X) - - pci:v000010DEd00000181sv00001462sd00008900* -- ID_MODEL_FROM_DATABASE=MS-8890 GeForce 4 MX440 AGP8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-8890 GeForce 4 MX440 AGP8X) - - pci:v000010DEd00000181sv00001462sd00009350* -- ID_MODEL_FROM_DATABASE=MSI GeForce4 MX T8X with AGP8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MSI GeForce4 MX T8X with AGP8X) - - pci:v000010DEd00000181sv0000147Bsd00008F0D* -- ID_MODEL_FROM_DATABASE=Siluro GF4 MX-8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (Siluro GF4 MX-8X) - - pci:v000010DEd00000181sv00001554sd00001111* -- ID_MODEL_FROM_DATABASE=PixelView MVGA-NVG18A -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (PixelView MVGA-NVG18A) - - pci:v000010DEd00000182* - ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440SE AGP 8x] -@@ -22146,7 +22146,7 @@ pci:v000010DEd00000193* - ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] - - pci:v000010DEd00000193sv0000107Dsd000020BD* -- ID_MODEL_FROM_DATABASE=WinFast PX 8800 GTS TDH -+ ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] (WinFast PX 8800 GTS TDH) - - pci:v000010DEd00000194* - ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 Ultra] -@@ -22212,13 +22212,13 @@ pci:v000010DEd000001D1* - ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] - - pci:v000010DEd000001D1sv0000107Dsd00005EFA* -- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD128 -+ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD128) - - pci:v000010DEd000001D1sv0000107Dsd00005EFB* -- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD256 -+ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD256) - - pci:v000010DEd000001D1sv00001462sd00000345* -- ID_MODEL_FROM_DATABASE=7300LE PCI Express Graphics Adapter -+ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (7300LE PCI Express Graphics Adapter) - - pci:v000010DEd000001D2* - ID_MODEL_FROM_DATABASE=G72 [GeForce 7550 LE] -@@ -22239,7 +22239,7 @@ pci:v000010DEd000001D8* - ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] - - pci:v000010DEd000001D8sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] (XPS M1210) - - pci:v000010DEd000001D9* - ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7450] -@@ -22260,7 +22260,7 @@ pci:v000010DEd000001DE* - ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] - - pci:v000010DEd000001DEsv000010DEsd000001DC* -- ID_MODEL_FROM_DATABASE=Quadro FX Go350M -+ ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] (Quadro FX Go350M) - - pci:v000010DEd000001DF* - ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 GS] -@@ -22269,7 +22269,7 @@ pci:v000010DEd000001E0* - ID_MODEL_FROM_DATABASE=nForce2 IGP2 - - pci:v000010DEd000001E0sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 IGP2 (NV7 Motherboard) - - pci:v000010DEd000001E8* - ID_MODEL_FROM_DATABASE=nForce2 AGP -@@ -22278,55 +22278,55 @@ pci:v000010DEd000001EA* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 - - pci:v000010DEd000001EAsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 (UK79G-1394 motherboard) - - pci:v000010DEd000001EB* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 - - pci:v000010DEd000001EBsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 (UK79G-1394 motherboard) - - pci:v000010DEd000001EC* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 - - pci:v000010DEd000001ECsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 (UK79G-1394 motherboard) - - pci:v000010DEd000001ED* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 - - pci:v000010DEd000001EDsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 (UK79G-1394 motherboard) - - pci:v000010DEd000001EE* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 - - pci:v000010DEd000001EEsv000010DEsd000001EE* -- ID_MODEL_FROM_DATABASE=MSI Delta-L nForce2 memory controller -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (MSI Delta-L nForce2 memory controller) - - pci:v000010DEd000001EEsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (UK79G-1394 motherboard) - - pci:v000010DEd000001EF* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 - - pci:v000010DEd000001EFsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 (UK79G-1394 motherboard) - - pci:v000010DEd000001F0* - ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] - - pci:v000010DEd000001F0sv0000A0A0sd000003B5* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] (UK79G-1394 motherboard) - - pci:v000010DEd00000200* - ID_MODEL_FROM_DATABASE=NV20 [GeForce3] - - pci:v000010DEd00000200sv00001043sd0000402F* -- ID_MODEL_FROM_DATABASE=AGP-V8200 DDR -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (AGP-V8200 DDR) - - pci:v000010DEd00000200sv00001048sd00000C70* -- ID_MODEL_FROM_DATABASE=GLADIAC 920 -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (GLADIAC 920) - - pci:v000010DEd00000201* - ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 200] -@@ -22335,10 +22335,10 @@ pci:v000010DEd00000202* - ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] - - pci:v000010DEd00000202sv00001043sd0000405B* -- ID_MODEL_FROM_DATABASE=V8200 T5 -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (V8200 T5) - - pci:v000010DEd00000202sv00001545sd0000002F* -- ID_MODEL_FROM_DATABASE=Xtasy 6964 -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (Xtasy 6964) - - pci:v000010DEd00000203* - ID_MODEL_FROM_DATABASE=NV20GL [Quadro DCC] -@@ -22359,10 +22359,10 @@ pci:v000010DEd00000221* - ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] - - pci:v000010DEd00000221sv00001043sd000081E1* -- ID_MODEL_FROM_DATABASE=N6200/TD/256M/A -+ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (N6200/TD/256M/A) - - pci:v000010DEd00000221sv00003842sd0000A341* -- ID_MODEL_FROM_DATABASE=256A8N341DX -+ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (256A8N341DX) - - pci:v000010DEd00000222* - ID_MODEL_FROM_DATABASE=NV44 [GeForce 6200 A-LE] -@@ -22374,10 +22374,10 @@ pci:v000010DEd00000240* - ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] - - pci:v000010DEd00000240sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM -+ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (A8N-VM CSM) - - pci:v000010DEd00000240sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (K8NGM2 series) - - pci:v000010DEd00000241* - ID_MODEL_FROM_DATABASE=C51 [GeForce 6150 LE] -@@ -22386,7 +22386,7 @@ pci:v000010DEd00000242* - ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] - - pci:v000010DEd00000242sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] (Winfast 6100K8MB) - - pci:v000010DEd00000243* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge -@@ -22395,13 +22395,13 @@ pci:v000010DEd00000244* - ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] - - pci:v000010DEd00000244sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V3242AU) - - pci:v000010DEd00000244sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V6133CL) - - pci:v000010DEd00000244sv000010DEsd00000244* -- ID_MODEL_FROM_DATABASE=GeForce Go 6150 -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (GeForce Go 6150) - - pci:v000010DEd00000245* - ID_MODEL_FROM_DATABASE=C51 [Quadro NVS 210S/GeForce 6150LE] -@@ -22413,7 +22413,7 @@ pci:v000010DEd00000247* - ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] - - pci:v000010DEd00000247sv00001043sd00001382* -- ID_MODEL_FROM_DATABASE=MCP51 PCI-X GeForce Go 6100 -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] (MCP51 PCI-X GeForce Go 6100) - - pci:v000010DEd00000248* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge -@@ -22446,13 +22446,13 @@ pci:v000010DEd00000251* - ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] - - pci:v000010DEd00000251sv00001043sd00008023* -- ID_MODEL_FROM_DATABASE=v8440 GeForce 4 Ti4400 -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (v8440 GeForce 4 Ti4400) - - pci:v000010DEd00000251sv000010DEsd00000251* -- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) - - pci:v000010DEd00000251sv00001462sd00008710* -- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) - - pci:v000010DEd00000252* - ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti] -@@ -22461,10 +22461,10 @@ pci:v000010DEd00000253* - ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] - - pci:v000010DEd00000253sv0000107Dsd00002896* -- ID_MODEL_FROM_DATABASE=WinFast A250 LE TD (Dual VGA/TV-out/DVI) -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (WinFast A250 LE TD (Dual VGA/TV-out/DVI)) - - pci:v000010DEd00000253sv0000147Bsd00008F09* -- ID_MODEL_FROM_DATABASE=Siluro (Dual VGA/TV-out/DVI) -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (Siluro (Dual VGA/TV-out/DVI)) - - pci:v000010DEd00000258* - ID_MODEL_FROM_DATABASE=NV25GL [Quadro4 900 XGL] -@@ -22479,25 +22479,25 @@ pci:v000010DEd00000260* - ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge - - pci:v000010DEd00000260sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Pavilion a1677c) - - pci:v000010DEd00000260sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Presario V6133CL) - - pci:v000010DEd00000260sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd00000260sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (GA-M55plus-S3G) - - pci:v000010DEd00000260sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (K8NGM2 series) - - pci:v000010DEd00000261* - ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge - - pci:v000010DEd00000261sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Winfast 6100K8MB) - - pci:v000010DEd00000262* - ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge -@@ -22509,64 +22509,64 @@ pci:v000010DEd00000264* - ID_MODEL_FROM_DATABASE=MCP51 SMBus - - pci:v000010DEd00000264sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Pavilion a1677c) - - pci:v000010DEd00000264sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Presario V6133CL) - - pci:v000010DEd00000264sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (A8N-VM CSM Mainboard) - - pci:v000010DEd00000264sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Winfast 6100K8MB) - - pci:v000010DEd00000264sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (K8NGM2 series) - - pci:v000010DEd00000265* - ID_MODEL_FROM_DATABASE=MCP51 IDE - - pci:v000010DEd00000265sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (Pavilion a1677c) - - pci:v000010DEd00000265sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (Presario V6133CL) - - pci:v000010DEd00000265sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (A8N-VM CSM Mainboard) - - pci:v000010DEd00000265sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (K8NGM2 series) - - pci:v000010DEd00000265sv0000F05Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (Winfast 6100K8MB) - - pci:v000010DEd00000266* - ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller - - pci:v000010DEd00000266sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) - - pci:v000010DEd00000266sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Presario V6133CL) - - pci:v000010DEd00000266sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd00000266sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) - - pci:v000010DEd00000267* - ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller - - pci:v000010DEd00000267sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) - - pci:v000010DEd00000267sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd00000267sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) - - pci:v000010DEd00000268* - ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller -@@ -22575,16 +22575,16 @@ pci:v000010DEd00000269* - ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller - - pci:v000010DEd00000269sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Pavilion a1677c) - - pci:v000010DEd00000269sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Presario V6133CL) - - pci:v000010DEd00000269sv00001043sd00008141* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd00000269sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (K8NGM2 series) - - pci:v000010DEd0000026A* - ID_MODEL_FROM_DATABASE=MCP51 MCI -@@ -22593,142 +22593,142 @@ pci:v000010DEd0000026B* - ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller - - pci:v000010DEd0000026Bsv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller (Winfast 6100K8MB) - - pci:v000010DEd0000026C* - ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio - - pci:v000010DEd0000026Csv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Pavilion a1677c) - - pci:v000010DEd0000026Csv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V3242AU) - - pci:v000010DEd0000026Csv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V6133CL) - - pci:v000010DEd0000026Csv000010DEsd0000CB84* -- ID_MODEL_FROM_DATABASE=ASUSTeK Computer Inc. A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (ASUSTeK Computer Inc. A8N-VM CSM Mainboard) - - pci:v000010DEd0000026Csv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (K8NGM2 series) - - pci:v000010DEd0000026D* - ID_MODEL_FROM_DATABASE=MCP51 USB Controller - - pci:v000010DEd0000026Dsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) - - pci:v000010DEd0000026Dsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) - - pci:v000010DEd0000026Dsv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd0000026Dsv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) - - pci:v000010DEd0000026Dsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) - - pci:v000010DEd0000026E* - ID_MODEL_FROM_DATABASE=MCP51 USB Controller - - pci:v000010DEd0000026Esv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) - - pci:v000010DEd0000026Esv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) - - pci:v000010DEd0000026Esv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd0000026Esv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) - - pci:v000010DEd0000026Esv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) - - pci:v000010DEd0000026F* - ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge - - pci:v000010DEd0000026Fsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge (Presario V6133CL) - - pci:v000010DEd00000270* - ID_MODEL_FROM_DATABASE=MCP51 Host Bridge - - pci:v000010DEd00000270sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Pavilion a1677c) - - pci:v000010DEd00000270sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Presario V6133CL) - - pci:v000010DEd00000270sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd00000270sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Winfast 6100K8MB) - - pci:v000010DEd00000270sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (GA-M55plus-S3G) - - pci:v000010DEd00000270sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (K8NGM2 series) - - pci:v000010DEd00000271* - ID_MODEL_FROM_DATABASE=MCP51 PMU - - pci:v000010DEd00000271sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V3242AU) - - pci:v000010DEd00000271sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V6133CL) - - pci:v000010DEd00000272* - ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 - - pci:v000010DEd00000272sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Pavilion a1677c) - - pci:v000010DEd00000272sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Winfast 6100K8MB) - - pci:v000010DEd0000027E* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 - - pci:v000010DEd0000027Esv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Pavilion a1677c) - - pci:v000010DEd0000027Esv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Presario V6133CL) - - pci:v000010DEd0000027Esv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (A8N-VM CSM Mainboard) - - pci:v000010DEd0000027Esv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (GA-M55plus-S3G) - - pci:v000010DEd0000027Esv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (K8NGM2 series) - - pci:v000010DEd0000027F* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 - - pci:v000010DEd0000027Fsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Pavilion a1677c) - - pci:v000010DEd0000027Fsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Presario V6133CL) - - pci:v000010DEd0000027Fsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (A8N-VM CSM Mainboard) - - pci:v000010DEd0000027Fsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (GA-M55plus-S3G) - - pci:v000010DEd0000027Fsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (K8NGM2 series) - - pci:v000010DEd00000280* - ID_MODEL_FROM_DATABASE=NV28 [GeForce4 Ti 4800] -@@ -22758,7 +22758,7 @@ pci:v000010DEd00000291* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] - - pci:v000010DEd00000291sv000010DEsd0000042B* -- ID_MODEL_FROM_DATABASE=NX7900GTO-T2D512E [7900 GTO] -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] (NX7900GTO-T2D512E [7900 GTO]) - - pci:v000010DEd00000292* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GS] -@@ -22773,13 +22773,13 @@ pci:v000010DEd00000295* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] - - pci:v000010DEd00000295sv00001043sd00008225* -- ID_MODEL_FROM_DATABASE=GeForce 7950 GT -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (GeForce 7950 GT) - - pci:v000010DEd00000295sv0000107Dsd00002A68* -- ID_MODEL_FROM_DATABASE=WinFast PX7950GT TDH -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (WinFast PX7950GT TDH) - - pci:v000010DEd00000295sv00001462sd00000663* -- ID_MODEL_FROM_DATABASE=NX7950GT-VT2D512EZ-HD -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (NX7950GT-VT2D512EZ-HD) - - pci:v000010DEd00000297* - ID_MODEL_FROM_DATABASE=G71M [GeForce Go 7950 GTX] -@@ -22803,7 +22803,7 @@ pci:v000010DEd0000029D* - ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] - - pci:v000010DEd0000029Dsv00001028sd0000019B* -- ID_MODEL_FROM_DATABASE=G71GLM [Quadro FX 3500M] -+ ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] (G71GLM [Quadro FX 3500M]) - - pci:v000010DEd0000029E* - ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 1500] -@@ -22824,16 +22824,16 @@ pci:v000010DEd000002E0* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] - - pci:v000010DEd000002E0sv000002E0sd00002249* -- ID_MODEL_FROM_DATABASE=GF 7600GT 560M 256MB DDR3 DUAL DVI TV -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GF 7600GT 560M 256MB DDR3 DUAL DVI TV) - - pci:v000010DEd000002E1* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] - - pci:v000010DEd000002E1sv00001682sd0000222B* -- ID_MODEL_FROM_DATABASE=PV-T73K-UAL3 (256MB) -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (PV-T73K-UAL3 (256MB)) - - pci:v000010DEd000002E1sv00001682sd00002247* -- ID_MODEL_FROM_DATABASE=GF 7600GS 512MB DDR2 -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (GF 7600GS 512MB DDR2) - - pci:v000010DEd000002E2* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] -@@ -22845,28 +22845,28 @@ pci:v000010DEd000002E4* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] - - pci:v000010DEd000002E4sv00001682sd00002271* -- ID_MODEL_FROM_DATABASE=PV-T71A-YDF7 (512MB) -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (PV-T71A-YDF7 (512MB)) - - pci:v000010DEd000002F0* - ID_MODEL_FROM_DATABASE=C51 Host Bridge - - pci:v000010DEd000002F0sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) - - pci:v000010DEd000002F0sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) - - pci:v000010DEd000002F0sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd000002F0sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) - - pci:v000010DEd000002F1* - ID_MODEL_FROM_DATABASE=C51 Host Bridge - - pci:v000010DEd000002F1sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) - - pci:v000010DEd000002F2* - ID_MODEL_FROM_DATABASE=C51 Host Bridge -@@ -22890,55 +22890,55 @@ pci:v000010DEd000002F8* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 - - pci:v000010DEd000002F8sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Pavilion a1677c) - - pci:v000010DEd000002F8sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Presario V6133CL) - - pci:v000010DEd000002F8sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002F8sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (GA-M55plus-S3G) - - pci:v000010DEd000002F8sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (K8NGM2 series) - - pci:v000010DEd000002F9* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 - - pci:v000010DEd000002F9sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Pavilion a1677c) - - pci:v000010DEd000002F9sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Presario V6133CL) - - pci:v000010DEd000002F9sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002F9sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (GA-M55plus-S3G) - - pci:v000010DEd000002F9sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (K8NGM2 series) - - pci:v000010DEd000002FA* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 - - pci:v000010DEd000002FAsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Pavilion a1677c) - - pci:v000010DEd000002FAsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Presario V6133CL) - - pci:v000010DEd000002FAsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002FAsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (GA-M55plus-S3G) - - pci:v000010DEd000002FAsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (K8NGM2 series) - - pci:v000010DEd000002FB* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge -@@ -22947,49 +22947,49 @@ pci:v000010DEd000002FC* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge - - pci:v000010DEd000002FCsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) - - pci:v000010DEd000002FD* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge - - pci:v000010DEd000002FDsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) - - pci:v000010DEd000002FE* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 - - pci:v000010DEd000002FEsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Pavilion a1677c) - - pci:v000010DEd000002FEsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Presario V6133CL) - - pci:v000010DEd000002FEsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002FEsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (GA-M55plus-S3G) - - pci:v000010DEd000002FEsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (K8NGM2 series) - - pci:v000010DEd000002FF* - ID_MODEL_FROM_DATABASE=C51 Host Bridge - - pci:v000010DEd000002FFsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) - - pci:v000010DEd000002FFsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) - - pci:v000010DEd000002FFsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd000002FFsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) - - pci:v000010DEd000002FFsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) - - pci:v000010DEd00000300* - ID_MODEL_FROM_DATABASE=NV30 [GeForce FX] -@@ -23016,7 +23016,7 @@ pci:v000010DEd00000314* - ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] - - pci:v000010DEd00000314sv00001043sd0000814A* -- ID_MODEL_FROM_DATABASE=V9560XT/TD -+ ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] (V9560XT/TD) - - pci:v000010DEd00000316* - ID_MODEL_FROM_DATABASE=NV31M -@@ -23043,25 +23043,25 @@ pci:v000010DEd00000322* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] - - pci:v000010DEd00000322sv00001043sd000002FB* -- ID_MODEL_FROM_DATABASE=V9250 Magic -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9250 Magic) - - pci:v000010DEd00000322sv00001043sd00008180* -- ID_MODEL_FROM_DATABASE=V9520-X/TD/128M -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9520-X/TD/128M) - - pci:v000010DEd00000322sv0000107Dsd00002967* -- ID_MODEL_FROM_DATABASE=WinFast A340T 128MB -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (WinFast A340T 128MB) - - pci:v000010DEd00000322sv00001462sd00009110* -- ID_MODEL_FROM_DATABASE=MS-8911 (FX5200-TD128) -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8911 (FX5200-TD128)) - - pci:v000010DEd00000322sv00001462sd00009171* -- ID_MODEL_FROM_DATABASE=MS-8917 (FX5200-T128) -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8917 (FX5200-T128)) - - pci:v000010DEd00000322sv00001462sd00009360* -- ID_MODEL_FROM_DATABASE=MS-8936 (FX5200-T128) -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8936 (FX5200-T128)) - - pci:v000010DEd00000322sv00001682sd00001351* -- ID_MODEL_FROM_DATABASE=GeForce FX 5200 -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (GeForce FX 5200) - - pci:v000010DEd00000323* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200LE] -@@ -23070,13 +23070,13 @@ pci:v000010DEd00000324* - ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] - - pci:v000010DEd00000324sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Inspiron 5160) - - pci:v000010DEd00000324sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=Pavilion ZD7000 laptop -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Pavilion ZD7000 laptop) - - pci:v000010DEd00000324sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (MIM2000) - - pci:v000010DEd00000325* - ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5250] -@@ -23085,10 +23085,10 @@ pci:v000010DEd00000326* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] - - pci:v000010DEd00000326sv00001458sd0000310D* -- ID_MODEL_FROM_DATABASE=GeForce FX 5500 128 MB -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce FX 5500 128 MB) - - pci:v000010DEd00000326sv00001682sd00002034* -- ID_MODEL_FROM_DATABASE=GeForce 5500 256 MB -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce 5500 256 MB) - - pci:v000010DEd00000327* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5100] -@@ -23100,7 +23100,7 @@ pci:v000010DEd00000329* - ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] - - pci:v000010DEd00000329sv000010DEsd00000010* -- ID_MODEL_FROM_DATABASE=Powerbook G4 -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] (Powerbook G4) - - pci:v000010DEd0000032A* - ID_MODEL_FROM_DATABASE=NV34GL [Quadro NVS 280 PCI] -@@ -23124,13 +23124,13 @@ pci:v000010DEd00000330* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] - - pci:v000010DEd00000330sv00001043sd00008137* -- ID_MODEL_FROM_DATABASE=V9950 Ultra / 256 MB -+ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] (V9950 Ultra / 256 MB) - - pci:v000010DEd00000331* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] - - pci:v000010DEd00000331sv00001043sd00008145* -- ID_MODEL_FROM_DATABASE=V9950GE -+ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] (V9950GE) - - pci:v000010DEd00000332* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900XT] -@@ -23142,7 +23142,7 @@ pci:v000010DEd00000334* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] - - pci:v000010DEd00000334sv00001462sd00009373* -- ID_MODEL_FROM_DATABASE=FX5900ZT-VTD128 (MS-8937) -+ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] (FX5900ZT-VTD128 (MS-8937)) - - pci:v000010DEd00000338* - ID_MODEL_FROM_DATABASE=NV35GL [Quadro FX 3000] -@@ -23154,7 +23154,7 @@ pci:v000010DEd00000341* - ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] - - pci:v000010DEd00000341sv00001462sd00009380* -- ID_MODEL_FROM_DATABASE=MS-8938 (FX5700U-TD128) -+ ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] (MS-8938 (FX5700U-TD128)) - - pci:v000010DEd00000342* - ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700] -@@ -23169,7 +23169,7 @@ pci:v000010DEd00000347* - ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] - - pci:v000010DEd00000347sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] (NX9500) - - pci:v000010DEd00000348* - ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] -@@ -23190,13 +23190,13 @@ pci:v000010DEd00000361* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge - - pci:v000010DEd00000361sv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge -+ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) - - pci:v000010DEd00000362* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge - - pci:v000010DEd00000362sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (KN9 series mainboard) - - pci:v000010DEd00000363* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge -@@ -23205,7 +23205,7 @@ pci:v000010DEd00000364* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge - - pci:v000010DEd00000364sv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge -+ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) - - pci:v000010DEd00000365* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge -@@ -23220,19 +23220,19 @@ pci:v000010DEd00000368* - ID_MODEL_FROM_DATABASE=MCP55 SMBus - - pci:v000010DEd00000368sv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 SMBus -+ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge M605 MCP55 SMBus) - - pci:v000010DEd00000368sv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SMBus -+ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge R805 MCP55 SMBus) - - pci:v000010DEd00000368sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 SMBus (KN9 series mainboard) - - pci:v000010DEd00000369* - ID_MODEL_FROM_DATABASE=MCP55 Memory Controller - - pci:v000010DEd00000369sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 Memory Controller (KN9 series mainboard) - - pci:v000010DEd0000036A* - ID_MODEL_FROM_DATABASE=MCP55 Memory Controller -@@ -23244,31 +23244,31 @@ pci:v000010DEd0000036C* - ID_MODEL_FROM_DATABASE=MCP55 USB Controller - - pci:v000010DEd0000036Csv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) - - pci:v000010DEd0000036Csv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) - - pci:v000010DEd0000036Csv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) - - pci:v000010DEd0000036D* - ID_MODEL_FROM_DATABASE=MCP55 USB Controller - - pci:v000010DEd0000036Dsv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) - - pci:v000010DEd0000036Dsv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) - - pci:v000010DEd0000036Dsv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) - - pci:v000010DEd0000036E* - ID_MODEL_FROM_DATABASE=MCP55 IDE - - pci:v000010DEd0000036Esv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 IDE (KN9 series mainboard) - - pci:v000010DEd00000370* - ID_MODEL_FROM_DATABASE=MCP55 PCI bridge -@@ -23277,7 +23277,7 @@ pci:v000010DEd00000371* - ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio - - pci:v000010DEd00000371sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio (KN9 series mainboard) - - pci:v000010DEd00000372* - ID_MODEL_FROM_DATABASE=MCP55 Ethernet -@@ -23286,7 +23286,7 @@ pci:v000010DEd00000373* - ID_MODEL_FROM_DATABASE=MCP55 Ethernet - - pci:v000010DEd00000373sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 Ethernet (KN9 series mainboard) - - pci:v000010DEd00000374* - ID_MODEL_FROM_DATABASE=MCP55 PCI Express bridge -@@ -23313,10 +23313,10 @@ pci:v000010DEd0000037F* - ID_MODEL_FROM_DATABASE=MCP55 SATA Controller - - pci:v000010DEd0000037Fsv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SATA Controller -+ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (PowerEdge R805 MCP55 SATA Controller) - - pci:v000010DEd0000037Fsv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (KN9 series mainboard) - - pci:v000010DEd0000038B* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7650 GS] -@@ -23328,25 +23328,25 @@ pci:v000010DEd00000391* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] - - pci:v000010DEd00000391sv00001458sd00003427* -- ID_MODEL_FROM_DATABASE=GV-NX76T128D-RH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GV-NX76T128D-RH) - - pci:v000010DEd00000391sv00001462sd00000452* -- ID_MODEL_FROM_DATABASE=NX7600GT-VT2D256E -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (NX7600GT-VT2D256E) - - pci:v000010DEd00000392* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] - - pci:v000010DEd00000392sv00001462sd00000622* -- ID_MODEL_FROM_DATABASE=NX7600GS-T2D256EH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (NX7600GS-T2D256EH) - - pci:v000010DEd00000393* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] - - pci:v000010DEd00000393sv000010DEsd00000412* -- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) - - pci:v000010DEd00000393sv00001462sd00000412* -- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) - - pci:v000010DEd00000394* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 LE] -@@ -23364,7 +23364,7 @@ pci:v000010DEd00000398* - ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] - - pci:v000010DEd00000398sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=Acer 9814 WKMI -+ ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] (Acer 9814 WKMI) - - pci:v000010DEd00000399* - ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600 GT] -@@ -23379,7 +23379,7 @@ pci:v000010DEd0000039C* - ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] - - pci:v000010DEd0000039Csv000010DEsd0000039C* -- ID_MODEL_FROM_DATABASE=Quadro FX 560M -+ ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] (Quadro FX 560M) - - pci:v000010DEd0000039D* - ID_MODEL_FROM_DATABASE=G73 -@@ -23481,7 +23481,7 @@ pci:v000010DEd000003D0* - ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] - - pci:v000010DEd000003D0sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] (Inspiron 531) - - pci:v000010DEd000003D1* - ID_MODEL_FROM_DATABASE=C61 [GeForce 6100 nForce 405] -@@ -23499,22 +23499,22 @@ pci:v000010DEd000003E0* - ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge - - pci:v000010DEd000003E0sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (Inspiron 531) - - pci:v000010DEd000003E0sv00001849sd000003E0* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003E1* - ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge - - pci:v000010DEd000003E1sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (M4N68T series motherboard) - - pci:v000010DEd000003E2* - ID_MODEL_FROM_DATABASE=MCP61 Host Bridge - - pci:v000010DEd000003E2sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 Host Bridge (M4N68T series motherboard) - - pci:v000010DEd000003E3* - ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge -@@ -23535,55 +23535,55 @@ pci:v000010DEd000003E8* - ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge - - pci:v000010DEd000003E8sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) - - pci:v000010DEd000003E8sv00001849sd000003E8* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003E9* - ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge - - pci:v000010DEd000003E9sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) - - pci:v000010DEd000003E9sv00001849sd000003E9* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003EA* - ID_MODEL_FROM_DATABASE=MCP61 Memory Controller - - pci:v000010DEd000003EAsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) - - pci:v000010DEd000003EAsv00001849sd000003EA* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003EB* - ID_MODEL_FROM_DATABASE=MCP61 SMBus - - pci:v000010DEd000003EBsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 SMBus (Inspiron 531) - - pci:v000010DEd000003EBsv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 SMBus (M4N68T series motherboard) - - pci:v000010DEd000003EBsv00001849sd000003EB* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 SMBus (939NF6G-VSTA Board) - - pci:v000010DEd000003EC* - ID_MODEL_FROM_DATABASE=MCP61 IDE - - pci:v000010DEd000003ECsv00001025sd00000392* -- ID_MODEL_FROM_DATABASE=ET1350 -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (ET1350) - - pci:v000010DEd000003ECsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (Inspiron 531) - - pci:v000010DEd000003ECsv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (M4N68T series motherboard) - - pci:v000010DEd000003ECsv00001849sd000003EC* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (939NF6G-VSTA Board) - - pci:v000010DEd000003EE* - ID_MODEL_FROM_DATABASE=MCP61 Ethernet -@@ -23592,61 +23592,61 @@ pci:v000010DEd000003EF* - ID_MODEL_FROM_DATABASE=MCP61 Ethernet - - pci:v000010DEd000003EFsv00001025sd00008000* -- ID_MODEL_FROM_DATABASE=ET1350 -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (ET1350) - - pci:v000010DEd000003EFsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (Inspiron 531) - - pci:v000010DEd000003EFsv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (M4N68T series motherboard) - - pci:v000010DEd000003EFsv00001849sd000003EF* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (939NF6G-VSTA Board) - - pci:v000010DEd000003F0* - ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio - - pci:v000010DEd000003F0sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (Inspiron 531) - - pci:v000010DEd000003F0sv00001043sd00008415* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (M4N68T series motherboard) - - pci:v000010DEd000003F0sv00001849sd00000888* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (939NF6G-VSTA Board) - - pci:v000010DEd000003F1* - ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller - - pci:v000010DEd000003F1sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (Inspiron 531) - - pci:v000010DEd000003F1sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (M4N68T series motherboard) - - pci:v000010DEd000003F1sv00001849sd000003F1* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F2* - ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller - - pci:v000010DEd000003F2sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (Inspiron 531) - - pci:v000010DEd000003F2sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (M4N68T series motherboard) - - pci:v000010DEd000003F2sv00001849sd000003F2* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F3* - ID_MODEL_FROM_DATABASE=MCP61 PCI bridge - - pci:v000010DEd000003F3sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (Inspiron 531) - - pci:v000010DEd000003F3sv00001849sd000003F3* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003F4* - ID_MODEL_FROM_DATABASE=MCP61 SMU -@@ -23655,25 +23655,25 @@ pci:v000010DEd000003F5* - ID_MODEL_FROM_DATABASE=MCP61 Memory Controller - - pci:v000010DEd000003F5sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) - - pci:v000010DEd000003F5sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (M4N68T series motherboard) - - pci:v000010DEd000003F5sv00001849sd000003EB* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F6* - ID_MODEL_FROM_DATABASE=MCP61 SATA Controller - - pci:v000010DEd000003F6sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (Inspiron 531) - - pci:v000010DEd000003F6sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (M4N68T series motherboard) - - pci:v000010DEd000003F6sv00001849sd000003F6* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F7* - ID_MODEL_FROM_DATABASE=MCP61 SATA Controller -@@ -23682,7 +23682,7 @@ pci:v000010DEd00000400* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] - - pci:v000010DEd00000400sv00001043sd00008241* -- ID_MODEL_FROM_DATABASE=EN8600GTS -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] (EN8600GTS) - - pci:v000010DEd00000401* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] -@@ -23691,10 +23691,10 @@ pci:v000010DEd00000402* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] - - pci:v000010DEd00000402sv00001458sd00003455* -- ID_MODEL_FROM_DATABASE=GV-NX86T512H -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (GV-NX86T512H) - - pci:v000010DEd00000402sv00001462sd00000910* -- ID_MODEL_FROM_DATABASE=NX8600GT-T2D256EZ -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (NX8600GT-T2D256EZ) - - pci:v000010DEd00000403* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GS] -@@ -23703,7 +23703,7 @@ pci:v000010DEd00000404* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] - - pci:v000010DEd00000404sv00001462sd00001230* -- ID_MODEL_FROM_DATABASE=NX8400GS-TD256E -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] (NX8400GS-TD256E) - - pci:v000010DEd00000405* - ID_MODEL_FROM_DATABASE=G84M [GeForce 9500M GS] -@@ -23730,7 +23730,7 @@ pci:v000010DEd0000040C* - ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] - - pci:v000010DEd0000040Csv000017AAsd000020D9* -- ID_MODEL_FROM_DATABASE=ThinkPad T61p -+ ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] (ThinkPad T61p) - - pci:v000010DEd0000040D* - ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 1600M] -@@ -23754,7 +23754,7 @@ pci:v000010DEd00000421* - ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] - - pci:v000010DEd00000421sv00001462sd00000960* -- ID_MODEL_FROM_DATABASE=NX8500GT-TD512EH/M2 -+ ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] (NX8500GT-TD512EH/M2) - - pci:v000010DEd00000422* - ID_MODEL_FROM_DATABASE=G86 [GeForce 8400 GS] -@@ -23769,7 +23769,7 @@ pci:v000010DEd00000425* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] - - pci:v000010DEd00000425sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] (Aspire 5920G) - - pci:v000010DEd00000426* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GT] -@@ -23778,10 +23778,10 @@ pci:v000010DEd00000427* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] - - pci:v000010DEd00000427sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv6700) - - pci:v000010DEd00000427sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000428* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M G] -@@ -23790,7 +23790,7 @@ pci:v000010DEd00000429* - ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] - - pci:v000010DEd00000429sv000017AAsd000020D8* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] (ThinkPad T61) - - pci:v000010DEd0000042A* - ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 130M] -@@ -23820,7 +23820,7 @@ pci:v000010DEd00000442* - ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge - - pci:v000010DEd00000442sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000443* - ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge -@@ -23829,7 +23829,7 @@ pci:v000010DEd00000444* - ID_MODEL_FROM_DATABASE=MCP65 Memory Controller - - pci:v000010DEd00000444sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 Memory Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000445* - ID_MODEL_FROM_DATABASE=MCP65 Memory Controller -@@ -23838,31 +23838,31 @@ pci:v000010DEd00000446* - ID_MODEL_FROM_DATABASE=MCP65 SMBus - - pci:v000010DEd00000446sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 SMBus (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000447* - ID_MODEL_FROM_DATABASE=MCP65 SMU - - pci:v000010DEd00000447sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 SMU (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000448* - ID_MODEL_FROM_DATABASE=MCP65 IDE - - pci:v000010DEd00000448sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 IDE (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000449* - ID_MODEL_FROM_DATABASE=MCP65 PCI bridge - - pci:v000010DEd00000449sv000010DEsd0000CB84* -- ID_MODEL_FROM_DATABASE=HP Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 PCI bridge (HP Pavilion dv9668eg Laptop) - - pci:v000010DEd0000044A* - ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio - - pci:v000010DEd0000044Asv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio (Pavilion dv9668eg Laptop) - - pci:v000010DEd0000044B* - ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio -@@ -23883,7 +23883,7 @@ pci:v000010DEd00000450* - ID_MODEL_FROM_DATABASE=MCP65 Ethernet - - pci:v000010DEd00000450sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 Ethernet (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000451* - ID_MODEL_FROM_DATABASE=MCP65 Ethernet -@@ -23898,13 +23898,13 @@ pci:v000010DEd00000454* - ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller - - pci:v000010DEd00000454sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000455* - ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller - - pci:v000010DEd00000455sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000456* - ID_MODEL_FROM_DATABASE=MCP65 USB Controller -@@ -23943,7 +23943,7 @@ pci:v000010DEd0000045D* - ID_MODEL_FROM_DATABASE=MCP65 SATA Controller - - pci:v000010DEd0000045Dsv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 SATA Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd0000045E* - ID_MODEL_FROM_DATABASE=MCP65 SATA Controller -@@ -23964,7 +23964,7 @@ pci:v000010DEd0000053B* - ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] - - pci:v000010DEd0000053Bsv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] (M2N68-AM Motherbord) - - pci:v000010DEd0000053E* - ID_MODEL_FROM_DATABASE=C68 [GeForce 7025 / nForce 630a] -@@ -23976,7 +23976,7 @@ pci:v000010DEd00000542* - ID_MODEL_FROM_DATABASE=MCP67 SMBus - - pci:v000010DEd00000542sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=MCP67 SMBus (M2N68-AM Motherbord) - - pci:v000010DEd00000543* - ID_MODEL_FROM_DATABASE=MCP67 Co-processor -@@ -23985,25 +23985,25 @@ pci:v000010DEd00000547* - ID_MODEL_FROM_DATABASE=MCP67 Memory Controller - - pci:v000010DEd00000547sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (M2N68-AM Motherbord) - - pci:v000010DEd00000547sv00001849sd00000547* -- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready -+ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (ALiveNF7G-HDready) - - pci:v000010DEd00000548* - ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge - - pci:v000010DEd00000548sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge (M2N68-AM Motherboard) - - pci:v000010DEd0000054C* - ID_MODEL_FROM_DATABASE=MCP67 Ethernet - - pci:v000010DEd0000054Csv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (M2N68-AM Motherbord) - - pci:v000010DEd0000054Csv00001849sd0000054C* -- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready, MCP67 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (ALiveNF7G-HDready, MCP67 Gigabit Ethernet) - - pci:v000010DEd0000054D* - ID_MODEL_FROM_DATABASE=MCP67 Ethernet -@@ -24018,25 +24018,25 @@ pci:v000010DEd00000550* - ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller - - pci:v000010DEd00000550sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000554* - ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller - - pci:v000010DEd00000554sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000555* - ID_MODEL_FROM_DATABASE=MCP67 SATA Controller - - pci:v000010DEd00000555sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 SATA Controller (M2N68-AM Motherboard) - - pci:v000010DEd0000055C* - ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio - - pci:v000010DEd0000055Csv00001043sd00008290* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio (M2N68-AM Motherboard) - - pci:v000010DEd0000055D* - ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio -@@ -24045,19 +24045,19 @@ pci:v000010DEd0000055E* - ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller - - pci:v000010DEd0000055Esv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller (M2N68-AM Motherboard) - - pci:v000010DEd0000055F* - ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller - - pci:v000010DEd0000055Fsv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000560* - ID_MODEL_FROM_DATABASE=MCP67 IDE Controller - - pci:v000010DEd00000560sv0000F043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 IDE Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000561* - ID_MODEL_FROM_DATABASE=MCP67 PCI Bridge -@@ -24066,7 +24066,7 @@ pci:v000010DEd00000562* - ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge - - pci:v000010DEd00000562sv00001849sd00000562* -- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready -+ ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge (ALiveNF7G-HDready) - - pci:v000010DEd00000563* - ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge -@@ -24075,64 +24075,64 @@ pci:v000010DEd00000568* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller - - pci:v000010DEd00000568sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) - - pci:v000010DEd00000568sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) - - pci:v000010DEd00000568sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) - - pci:v000010DEd00000568sv00001849sd00000568* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) - - pci:v000010DEd00000569* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge - - pci:v000010DEd00000569sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) - - pci:v000010DEd00000569sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) - - pci:v000010DEd00000569sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) - - pci:v000010DEd00000569sv00001849sd00000569* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) - - pci:v000010DEd0000056A* - ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) - - pci:v000010DEd0000056Asv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) (MCP73PVT-SM) - - pci:v000010DEd0000056C* - ID_MODEL_FROM_DATABASE=MCP73 IDE - - pci:v000010DEd0000056Csv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 IDE (MCP73PVT-SM) - - pci:v000010DEd0000056Csv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 IDE (JW-IN7150-HD) - - pci:v000010DEd0000056D* - ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge - - pci:v000010DEd0000056Dsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) - - pci:v000010DEd0000056E* - ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge - - pci:v000010DEd0000056Esv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) - - pci:v000010DEd0000056F* - ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge - - pci:v000010DEd0000056Fsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) - - pci:v000010DEd000005B1* - ID_MODEL_FROM_DATABASE=NF200 PCIe 2.0 switch -@@ -24156,7 +24156,7 @@ pci:v000010DEd000005E3* - ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] - - pci:v000010DEd000005E3sv00001682sd00002490* -- ID_MODEL_FROM_DATABASE=GX-285N-ZDF -+ ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] (GX-285N-ZDF) - - pci:v000010DEd000005E6* - ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 275] -@@ -24165,19 +24165,19 @@ pci:v000010DEd000005E7* - ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] - - pci:v000010DEd000005E7sv000010DEsd00000595* -- ID_MODEL_FROM_DATABASE=Tesla T10 Processor -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) - - pci:v000010DEd000005E7sv000010DEsd0000068F* -- ID_MODEL_FROM_DATABASE=Tesla T10 Processor -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) - - pci:v000010DEd000005E7sv000010DEsd00000697* -- ID_MODEL_FROM_DATABASE=Tesla M1060 -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) - - pci:v000010DEd000005E7sv000010DEsd00000714* -- ID_MODEL_FROM_DATABASE=Tesla M1060 -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) - - pci:v000010DEd000005E7sv000010DEsd00000743* -- ID_MODEL_FROM_DATABASE=Tesla M1060 -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) - - pci:v000010DEd000005EA* - ID_MODEL_FROM_DATABASE=GT200 [GeForce GTX 260] -@@ -24240,7 +24240,7 @@ pci:v000010DEd00000609* - ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] - - pci:v000010DEd00000609sv0000106Bsd000000A7* -- ID_MODEL_FROM_DATABASE=GeForce 8800 GS -+ ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] (GeForce 8800 GS) - - pci:v000010DEd0000060A* - ID_MODEL_FROM_DATABASE=G92M [GeForce GTX 280M] -@@ -24261,16 +24261,16 @@ pci:v000010DEd00000610* - ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] - - pci:v000010DEd00000610sv00001682sd00002385* -- ID_MODEL_FROM_DATABASE=GeForce 9600 GSO 768mb -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] (GeForce 9600 GSO 768mb) - - pci:v000010DEd00000611* - ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] - - pci:v000010DEd00000611sv0000107Dsd00002AB0* -- ID_MODEL_FROM_DATABASE=Winfast PX8800 GT PCI-E -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (Winfast PX8800 GT PCI-E) - - pci:v000010DEd00000611sv000019DAsd00001040* -- ID_MODEL_FROM_DATABASE=ZT-88TES2P-FSP -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (ZT-88TES2P-FSP) - - pci:v000010DEd00000612* - ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GTX / 9800 GTX+] -@@ -24282,22 +24282,22 @@ pci:v000010DEd00000614* - ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] - - pci:v000010DEd00000614sv0000107Dsd00002AB3* -- ID_MODEL_FROM_DATABASE=WinFast PX9800 GT (S-Fanpipe) -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] (WinFast PX9800 GT (S-Fanpipe)) - - pci:v000010DEd00000615* - ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] - - pci:v000010DEd00000615sv00003842sd00001150* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1150-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1150-TR) - - pci:v000010DEd00000615sv00003842sd00001151* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1151-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1151-TR) - - pci:v000010DEd00000615sv00003842sd00001155* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1155-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1155-TR) - - pci:v000010DEd00000615sv00003842sd00001156* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1156-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1156-TR) - - pci:v000010DEd00000617* - ID_MODEL_FROM_DATABASE=G92M [GeForce 9800M GTX] -@@ -24336,10 +24336,10 @@ pci:v000010DEd00000622* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] - - pci:v000010DEd00000622sv0000107Dsd00002AC1* -- ID_MODEL_FROM_DATABASE=WinFast PX9600GT 1024MB -+ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (WinFast PX9600GT 1024MB) - - pci:v000010DEd00000622sv00001458sd00003481* -- ID_MODEL_FROM_DATABASE=GV-NX96T512HP -+ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GV-NX96T512HP) - - pci:v000010DEd00000623* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GS] -@@ -24375,7 +24375,7 @@ pci:v000010DEd0000062E* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] - - pci:v000010DEd0000062Esv0000106Bsd00000605* -- ID_MODEL_FROM_DATABASE=GeForce GT 130 -+ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GeForce GT 130) - - pci:v000010DEd0000062F* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9800 S] -@@ -24435,7 +24435,7 @@ pci:v000010DEd00000649* - ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] - - pci:v000010DEd00000649sv00001043sd0000202D* -- ID_MODEL_FROM_DATABASE=GeForce GT 220M -+ ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] (GeForce GT 220M) - - pci:v000010DEd0000064A* - ID_MODEL_FROM_DATABASE=G96M [GeForce 9700M GT] -@@ -24459,7 +24459,7 @@ pci:v000010DEd00000652* - ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] - - pci:v000010DEd00000652sv0000152Dsd00000850* -- ID_MODEL_FROM_DATABASE=GeForce GT 240M LE -+ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] (GeForce GT 240M LE) - - pci:v000010DEd00000653* - ID_MODEL_FROM_DATABASE=G96M [GeForce GT 120M] -@@ -24468,10 +24468,10 @@ pci:v000010DEd00000654* - ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] - - pci:v000010DEd00000654sv00001043sd000014A2* -- ID_MODEL_FROM_DATABASE=GeForce GT 320M -+ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) - - pci:v000010DEd00000654sv00001043sd000014D2* -- ID_MODEL_FROM_DATABASE=GeForce GT 320M -+ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) - - pci:v000010DEd00000655* - ID_MODEL_FROM_DATABASE=G96 [GeForce GT 120] -@@ -24519,28 +24519,28 @@ pci:v000010DEd000006D1* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] - - pci:v000010DEd000006D1sv000010DEsd00000771* -- ID_MODEL_FROM_DATABASE=Tesla C2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2050) - - pci:v000010DEd000006D1sv000010DEsd00000772* -- ID_MODEL_FROM_DATABASE=Tesla C2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2070) - - pci:v000010DEd000006D2* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] - - pci:v000010DEd000006D2sv000010DEsd00000774* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D2sv000010DEsd00000830* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D2sv000010DEsd00000842* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D2sv000010DEsd0000088F* -- ID_MODEL_FROM_DATABASE=Tesla X2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla X2070) - - pci:v000010DEd000006D2sv000010DEsd00000908* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D8* - ID_MODEL_FROM_DATABASE=GF100GL [Quadro 6000] -@@ -24561,37 +24561,37 @@ pci:v000010DEd000006DE* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] - - pci:v000010DEd000006DEsv000010DEsd00000773* -- ID_MODEL_FROM_DATABASE=Tesla S2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla S2050) - - pci:v000010DEd000006DEsv000010DEsd0000082F* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000840* -- ID_MODEL_FROM_DATABASE=Tesla X2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla X2070) - - pci:v000010DEd000006DEsv000010DEsd00000842* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000846* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000866* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000907* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd0000091E* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DF* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] - - pci:v000010DEd000006DFsv000010DEsd0000084D* -- ID_MODEL_FROM_DATABASE=Tesla M2070-Q -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) - - pci:v000010DEd000006DFsv000010DEsd0000087F* -- ID_MODEL_FROM_DATABASE=Tesla M2070-Q -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) - - pci:v000010DEd000006E0* - ID_MODEL_FROM_DATABASE=G98 [GeForce 9300 GE] -@@ -24609,7 +24609,7 @@ pci:v000010DEd000006E4* - ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] - - pci:v000010DEd000006E4sv00001458sd00003475* -- ID_MODEL_FROM_DATABASE=GV-NX84S256HE [GeForce 8400 GS] -+ ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] (GV-NX84S256HE [GeForce 8400 GS]) - - pci:v000010DEd000006E5* - ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] -@@ -24624,13 +24624,13 @@ pci:v000010DEd000006E8* - ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] - - pci:v000010DEd000006E8sv0000103Csd0000360B* -- ID_MODEL_FROM_DATABASE=GeForce 9200M GE -+ ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] (GeForce 9200M GE) - - pci:v000010DEd000006E9* - ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] - - pci:v000010DEd000006E9sv00001043sd000019B2* -- ID_MODEL_FROM_DATABASE=U6V laptop -+ ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] (U6V laptop) - - pci:v000010DEd000006EA* - ID_MODEL_FROM_DATABASE=G98M [Quadro NVS 150M] -@@ -24672,139 +24672,139 @@ pci:v000010DEd000006FF* - ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] - - pci:v000010DEd000006FFsv000010DEsd00000711* -- ID_MODEL_FROM_DATABASE=HICx8 + Graphics -+ ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] (HICx8 + Graphics) - - pci:v000010DEd00000751* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller - - pci:v000010DEd00000751sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) - - pci:v000010DEd00000751sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) - - pci:v000010DEd00000751sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) - - pci:v000010DEd00000751sv00001849sd00000751* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) - - pci:v000010DEd00000752* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus - - pci:v000010DEd00000752sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (Pavilion p6310f) - - pci:v000010DEd00000752sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (M3N72-D) - - pci:v000010DEd00000752sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K9N2GM-FIH) - - pci:v000010DEd00000752sv00001849sd00000752* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 SMBus -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K10N78FullHD-hSLI R3.0 SMBus) - - pci:v000010DEd00000753* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor - - pci:v000010DEd00000753sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (Pavilion p6310f) - - pci:v000010DEd00000753sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (M3N72-D) - - pci:v000010DEd00000753sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K9N2GM-FIH) - - pci:v000010DEd00000753sv00001849sd00000753* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Co-Processor -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K10N78FullHD-hSLI R3.0 Co-Processor) - - pci:v000010DEd00000754* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller - - pci:v000010DEd00000754sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) - - pci:v000010DEd00000754sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) - - pci:v000010DEd00000754sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) - - pci:v000010DEd00000754sv00001849sd00000754* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) - - pci:v000010DEd00000759* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE - - pci:v000010DEd00000759sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (M3N72-D) - - pci:v000010DEd00000759sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K9N2GM-FIH) - - pci:v000010DEd00000759sv00001849sd00000759* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K10N78FullHD-hSLI R3.0 IDE) - - pci:v000010DEd0000075A* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge - - pci:v000010DEd0000075Asv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) - - pci:v000010DEd0000075Asv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) - - pci:v000010DEd0000075Asv00001849sd0000075A* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) - - pci:v000010DEd0000075B* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge - - pci:v000010DEd0000075Bsv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) - - pci:v000010DEd0000075Bsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) - - pci:v000010DEd0000075Bsv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) - - pci:v000010DEd0000075Bsv00001849sd0000075B* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) - - pci:v000010DEd0000075C* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge - - pci:v000010DEd0000075Csv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (Pavilion p6310f) - - pci:v000010DEd0000075Csv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K9N2GM-FIH) - - pci:v000010DEd0000075Csv00001849sd0000075C* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 LPC Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K10N78FullHD-hSLI R3.0 LPC Bridge) - - pci:v000010DEd0000075D* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge - - pci:v000010DEd0000075Dsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (M3N72-D) - - pci:v000010DEd00000760* - ID_MODEL_FROM_DATABASE=MCP77 Ethernet - - pci:v000010DEd00000760sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (Pavilion p6310f) - - pci:v000010DEd00000760sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (M3N72-D) - - pci:v000010DEd00000760sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K9N2GM-FIH) - - pci:v000010DEd00000760sv00001849sd00000760* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Ethernet -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K10N78FullHD-hSLI R3.0 Ethernet) - - pci:v000010DEd00000761* - ID_MODEL_FROM_DATABASE=MCP77 Ethernet -@@ -24819,118 +24819,118 @@ pci:v000010DEd00000774* - ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio - - pci:v000010DEd00000774sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (Pavilion p6310f) - - pci:v000010DEd00000774sv00001043sd000082FE* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (M3N72-D) - - pci:v000010DEd00000774sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K9N2GM-FIH) - - pci:v000010DEd00000774sv00001849sd00003662* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 High Definition Audio -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K10N78FullHD-hSLI R3.0 High Definition Audio) - - pci:v000010DEd00000778* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge - - pci:v000010DEd00000778sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) - - pci:v000010DEd00000778sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) - - pci:v000010DEd00000778sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) - - pci:v000010DEd00000778sv00001849sd00000778* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) - - pci:v000010DEd0000077A* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge - - pci:v000010DEd0000077Asv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) - - pci:v000010DEd0000077Asv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) - - pci:v000010DEd0000077Asv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K9N2GM-FIH) - - pci:v000010DEd0000077Asv00001849sd0000077A* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) - - pci:v000010DEd0000077B* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller - - pci:v000010DEd0000077Bsv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Bsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) - - pci:v000010DEd0000077Bsv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Bsv00001849sd0000077B* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) - - pci:v000010DEd0000077C* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller - - pci:v000010DEd0000077Csv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Csv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) - - pci:v000010DEd0000077Csv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Csv00001849sd0000077C* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) - - pci:v000010DEd0000077D* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller - - pci:v000010DEd0000077Dsv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Dsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) - - pci:v000010DEd0000077Dsv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Dsv00001849sd0000077D* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) - - pci:v000010DEd0000077E* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller - - pci:v000010DEd0000077Esv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Esv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) - - pci:v000010DEd0000077Esv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Esv00001849sd0000077E* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) - - pci:v000010DEd000007C0* - ID_MODEL_FROM_DATABASE=MCP73 Host Bridge - - pci:v000010DEd000007C0sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (JW-IN7150-HD) - - pci:v000010DEd000007C1* - ID_MODEL_FROM_DATABASE=MCP73 Host Bridge - - pci:v000010DEd000007C1sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (MCP73PVT-SM) - - pci:v000010DEd000007C2* - ID_MODEL_FROM_DATABASE=MCP73 Host Bridge -@@ -24942,124 +24942,124 @@ pci:v000010DEd000007C8* - ID_MODEL_FROM_DATABASE=MCP73 Memory Controller - - pci:v000010DEd000007C8sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) - - pci:v000010DEd000007C8sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) - - pci:v000010DEd000007CB* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CBsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CBsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007CD* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CDsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CDsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007CE* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CEsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CEsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007CF* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CFsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CFsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D0* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D0sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D0sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D1* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D1sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D1sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D2* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D2sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D2sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D3* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D3sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D3sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D6* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D6sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D6sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D7* - ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge - - pci:v000010DEd000007D7sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (MCP73PVT-SM) - - pci:v000010DEd000007D7sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (JW-IN7150-HD) - - pci:v000010DEd000007D8* - ID_MODEL_FROM_DATABASE=MCP73 SMBus - - pci:v000010DEd000007D8sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 SMBus (MCP73PVT-SM) - - pci:v000010DEd000007D8sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 SMBus (JW-IN7150-HD) - - pci:v000010DEd000007D9* - ID_MODEL_FROM_DATABASE=MCP73 Memory Controller - - pci:v000010DEd000007D9sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) - - pci:v000010DEd000007D9sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) - - pci:v000010DEd000007DA* - ID_MODEL_FROM_DATABASE=MCP73 Co-processor - - pci:v000010DEd000007DAsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Co-processor (JW-IN7150-HD) - - pci:v000010DEd000007DC* - ID_MODEL_FROM_DATABASE=MCP73 Ethernet -@@ -25077,13 +25077,13 @@ pci:v000010DEd000007E0* - ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] - - pci:v000010DEd000007E0sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] (JW-IN7150-HD) - - pci:v000010DEd000007E1* - ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] - - pci:v000010DEd000007E1sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] (MCP73PVT-SM) - - pci:v000010DEd000007E2* - ID_MODEL_FROM_DATABASE=C73 [GeForce 7050 / nForce 630i] -@@ -25101,7 +25101,7 @@ pci:v000010DEd000007F4* - ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA - - pci:v000010DEd000007F4sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA (MCP73PVT-SM) - - pci:v000010DEd000007F8* - ID_MODEL_FROM_DATABASE=MCP73 SATA RAID Controller -@@ -25110,7 +25110,7 @@ pci:v000010DEd000007FC* - ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio - - pci:v000010DEd000007FCsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio (MCP73PVT-SM) - - pci:v000010DEd000007FCsv000010DEsd000007FC* - ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio -@@ -25119,10 +25119,10 @@ pci:v000010DEd000007FE* - ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB - - pci:v000010DEd000007FEsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (MCP73PVT-SM) - - pci:v000010DEd000007FEsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (JW-IN7150-HD) - - pci:v000010DEd00000840* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8200M] -@@ -25140,7 +25140,7 @@ pci:v000010DEd00000847* - ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] - - pci:v000010DEd00000847sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] (Pavilion p6310f) - - pci:v000010DEd00000848* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8300] -@@ -25149,10 +25149,10 @@ pci:v000010DEd00000849* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] - - pci:v000010DEd00000849sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K9N2GM-FIH) - - pci:v000010DEd00000849sv00001849sd00000849* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 GeForce 8200 -+ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K10N78FullHD-hSLI R3.0 GeForce 8200) - - pci:v000010DEd0000084A* - ID_MODEL_FROM_DATABASE=C77 [nForce 730a] -@@ -25167,7 +25167,7 @@ pci:v000010DEd0000084D* - ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] - - pci:v000010DEd0000084Dsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D mGPU -+ ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] (M3N72-D mGPU) - - pci:v000010DEd0000084F* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8100 / nForce 720a] -@@ -25185,7 +25185,7 @@ pci:v000010DEd00000863* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] - - pci:v000010DEd00000863sv0000106Bsd000000AA* -- ID_MODEL_FROM_DATABASE=MacBook5,1 -+ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] (MacBook5,1) - - pci:v000010DEd00000864* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9300] -@@ -25197,13 +25197,13 @@ pci:v000010DEd00000866* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] - - pci:v000010DEd00000866sv0000106Bsd000000B1* -- ID_MODEL_FROM_DATABASE=GeForce 9400M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] (GeForce 9400M) - - pci:v000010DEd00000867* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] - - pci:v000010DEd00000867sv0000106Bsd000000AD* -- ID_MODEL_FROM_DATABASE=iMac 9,1 -+ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] (iMac 9,1) - - pci:v000010DEd00000868* - ID_MODEL_FROM_DATABASE=C79 [nForce 760i SLI] -@@ -25236,28 +25236,28 @@ pci:v000010DEd00000872* - ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] - - pci:v000010DEd00000872sv00001043sd000019B4* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000872sv00001043sd00001AA2* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000872sv00001043sd00001C02* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000872sv00001043sd00001C42* -- ID_MODEL_FROM_DATABASE=GeForce G205M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) - - pci:v000010DEd00000873* - ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] - - pci:v000010DEd00000873sv00001043sd000019B4* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000873sv00001043sd00001C12* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000873sv00001043sd00001C52* -- ID_MODEL_FROM_DATABASE=GeForce G205M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) - - pci:v000010DEd00000874* - ID_MODEL_FROM_DATABASE=C79 [ION] -@@ -25272,7 +25272,7 @@ pci:v000010DEd0000087D* - ID_MODEL_FROM_DATABASE=ION VGA - - pci:v000010DEd0000087Dsv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=ION VGA (IONITX-F-E) - - pci:v000010DEd0000087E* - ID_MODEL_FROM_DATABASE=ION LE VGA -@@ -25299,7 +25299,7 @@ pci:v000010DEd00000A20* - ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] - - pci:v000010DEd00000A20sv00001043sd00008311* -- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 -+ ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] (ENGT220/DI/1GD3(LP)/V2) - - pci:v000010DEd00000A21* - ID_MODEL_FROM_DATABASE=GT216M [GeForce GT 330M] -@@ -25368,7 +25368,7 @@ pci:v000010DEd00000A65* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] - - pci:v000010DEd00000A65sv00001043sd00008334* -- ID_MODEL_FROM_DATABASE=EN210 SILENT -+ ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] (EN210 SILENT) - - pci:v000010DEd00000A66* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 310] -@@ -25389,10 +25389,10 @@ pci:v000010DEd00000A6C* - ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] - - pci:v000010DEd00000A6Csv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (Latitude E6510) - - pci:v000010DEd00000A6Csv000017AAsd00002142* -- ID_MODEL_FROM_DATABASE=ThinkPad T410 -+ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (ThinkPad T410) - - pci:v000010DEd00000A6E* - ID_MODEL_FROM_DATABASE=GT218M [GeForce 305M] -@@ -25416,7 +25416,7 @@ pci:v000010DEd00000A74* - ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] - - pci:v000010DEd00000A74sv00001B0Asd0000903A* -- ID_MODEL_FROM_DATABASE=GeForce G210 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] (GeForce G210) - - pci:v000010DEd00000A75* - ID_MODEL_FROM_DATABASE=GT218M [GeForce 310M] -@@ -25431,127 +25431,127 @@ pci:v000010DEd00000A7A* - ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] - - pci:v000010DEd00000A7Asv0000104Dsd0000907E* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC50* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC61* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC71* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC90* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCC0* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCD0* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCE2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCF2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD16* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD40* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD50* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD52* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD61* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD71* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD92* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD96* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FDD0* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FDD2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FDFE* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C0A2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C0B2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C581* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C587* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C588* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C597* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C606* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001462sd0000AA51* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AA58* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AC71* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AC81* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001462sd0000AC82* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AE33* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001642sd00003980* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv000017AAsd00003950* -- ID_MODEL_FROM_DATABASE=GeForce 405M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) - - pci:v000010DEd00000A7Asv000017AAsd0000397D* -- ID_MODEL_FROM_DATABASE=GeForce 405M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) - - pci:v000010DEd00000A7Asv00001B0Asd00002091* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001B0Asd000090B4* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001BFDsd00000003* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001BFDsd00008006* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001BFDsd00008007* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7B* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 505] -@@ -25593,64 +25593,64 @@ pci:v000010DEd00000A98* - ID_MODEL_FROM_DATABASE=MCP79 Memory Controller - - pci:v000010DEd00000A98sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (iMac 9,1) - - pci:v000010DEd00000AA0* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AA0sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AA2* - ID_MODEL_FROM_DATABASE=MCP79 SMBus - - pci:v000010DEd00000AA2sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 SMBus (Apple iMac 9,1) - - pci:v000010DEd00000AA2sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 SMBus (IONITX-F-E) - - pci:v000010DEd00000AA3* - ID_MODEL_FROM_DATABASE=MCP79 Co-processor - - pci:v000010DEd00000AA3sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (Apple iMac 9,1) - - pci:v000010DEd00000AA3sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (IONITX-F-E) - - pci:v000010DEd00000AA4* - ID_MODEL_FROM_DATABASE=MCP79 Memory Controller - - pci:v000010DEd00000AA4sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (IONITX-F-E) - - pci:v000010DEd00000AA5* - ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller - - pci:v000010DEd00000AA5sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA5sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) - - pci:v000010DEd00000AA6* - ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller - - pci:v000010DEd00000AA6sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA6sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) - - pci:v000010DEd00000AA7* - ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller - - pci:v000010DEd00000AA7sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA7sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) - - pci:v000010DEd00000AA8* - ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller -@@ -25659,10 +25659,10 @@ pci:v000010DEd00000AA9* - ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller - - pci:v000010DEd00000AA9sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA9sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) - - pci:v000010DEd00000AAA* - ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller -@@ -25671,7 +25671,7 @@ pci:v000010DEd00000AAB* - ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge - - pci:v000010DEd00000AABsv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AAC* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge -@@ -25680,13 +25680,13 @@ pci:v000010DEd00000AAD* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge - - pci:v000010DEd00000AADsv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (IONITX-F-E) - - pci:v000010DEd00000AAE* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge - - pci:v000010DEd00000AAEsv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AAF* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge -@@ -25695,10 +25695,10 @@ pci:v000010DEd00000AB0* - ID_MODEL_FROM_DATABASE=MCP79 Ethernet - - pci:v000010DEd00000AB0sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (Apple iMac 9,1) - - pci:v000010DEd00000AB0sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (IONITX-F-E) - - pci:v000010DEd00000AB1* - ID_MODEL_FROM_DATABASE=MCP79 Ethernet -@@ -25713,7 +25713,7 @@ pci:v000010DEd00000AB4* - ID_MODEL_FROM_DATABASE=MCP79 SATA Controller - - pci:v000010DEd00000AB4sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 SATA Controller (IONITX-F-E) - - pci:v000010DEd00000AB5* - ID_MODEL_FROM_DATABASE=MCP79 SATA Controller -@@ -25731,7 +25731,7 @@ pci:v000010DEd00000AB9* - ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller - - pci:v000010DEd00000AB9sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller (Apple iMac 9,1) - - pci:v000010DEd00000ABA* - ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller -@@ -25755,7 +25755,7 @@ pci:v000010DEd00000AC0* - ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio - - pci:v000010DEd00000AC0sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio (Apple iMac 9,1) - - pci:v000010DEd00000AC1* - ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio -@@ -25770,7 +25770,7 @@ pci:v000010DEd00000AC4* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AC4sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AC5* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge -@@ -25779,13 +25779,13 @@ pci:v000010DEd00000AC6* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AC6sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AC7* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AC7sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AC8* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge -@@ -25794,22 +25794,22 @@ pci:v000010DEd00000AD0* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) - - pci:v000010DEd00000AD0sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K9N2GM-FIH) - - pci:v000010DEd00000AD0sv00001849sd00000AD0* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K10N78FullHD-hSLI R3.0 IDE) - - pci:v000010DEd00000AD4* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller - - pci:v000010DEd00000AD4sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (Pavilion p6310f) - - pci:v000010DEd00000AD4sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (M3N72-D) - - pci:v000010DEd00000AD4sv00001849sd00000AD4* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 AHCI Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (K10N78FullHD-hSLI R3.0 AHCI Controller) - - pci:v000010DEd00000AD8* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (RAID mode) -@@ -25818,16 +25818,16 @@ pci:v000010DEd00000BE2* - ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller - - pci:v000010DEd00000BE2sv00001043sd00008311* -- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 -+ ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller (ENGT220/DI/1GD3(LP)/V2) - - pci:v000010DEd00000BE3* - ID_MODEL_FROM_DATABASE=High Definition Audio Controller - - pci:v000010DEd00000BE3sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (Latitude E6510) - - pci:v000010DEd00000BE3sv000010DEsd0000066D* -- ID_MODEL_FROM_DATABASE=G98 [GeForce 8400GS] -+ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (G98 [GeForce 8400GS]) - - pci:v000010DEd00000BE4* - ID_MODEL_FROM_DATABASE=High Definition Audio Controller -@@ -25839,22 +25839,22 @@ pci:v000010DEd00000BE9* - ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller - - pci:v000010DEd00000BE9sv00001558sd00008687* -- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU -+ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (CLEVO/KAPOK W860CU) - - pci:v000010DEd00000BE9sv00003842sd00001452* -- ID_MODEL_FROM_DATABASE=GeForce GTS 450 -+ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (GeForce GTS 450) - - pci:v000010DEd00000BEA* - ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller - - pci:v000010DEd00000BEAsv00003842sd00001430* -- ID_MODEL_FROM_DATABASE=GeForce GT 430 -+ ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller (GeForce GT 430) - - pci:v000010DEd00000BEB* - ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller - - pci:v000010DEd00000BEBsv00001462sd00002322* -- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC -+ ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller (N460GTX Cyclone 1GD5/OC) - - pci:v000010DEd00000BEE* - ID_MODEL_FROM_DATABASE=GF116 High Definition Audio Controller -@@ -25968,7 +25968,7 @@ pci:v000010DEd00000DD1* - ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] - - pci:v000010DEd00000DD1sv00001558sd00008687* -- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU -+ ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] (CLEVO/KAPOK W860CU) - - pci:v000010DEd00000DD2* - ID_MODEL_FROM_DATABASE=GF106M [GeForce GT 445M] -@@ -25983,7 +25983,7 @@ pci:v000010DEd00000DD8* - ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] - - pci:v000010DEd00000DD8sv000010DEsd00000914* -- ID_MODEL_FROM_DATABASE=Quadro 2000D -+ ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] (Quadro 2000D) - - pci:v000010DEd00000DDA* - ID_MODEL_FROM_DATABASE=GF106GLM [Quadro 2000M] -@@ -25995,7 +25995,7 @@ pci:v000010DEd00000DE1* - ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] - - pci:v000010DEd00000DE1sv00003842sd00001430* -- ID_MODEL_FROM_DATABASE=GeForce GT 430 -+ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] (GeForce GT 430) - - pci:v000010DEd00000DE2* - ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 420] -@@ -26019,49 +26019,49 @@ pci:v000010DEd00000DE9* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] - - pci:v000010DEd00000DE9sv00001025sd00000692* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000725* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000728* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd0000072B* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd0000072E* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000753* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000754* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 640M LE) - - pci:v000010DEd00000DE9sv00001B0Asd00002210* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 635M) - - pci:v000010DEd00000DEA* - ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] - - pci:v000010DEd00000DEAsv000017AAsd0000365A* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd0000365B* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd0000365E* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd00003660* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd0000366C* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEB* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 555M] -@@ -26094,10 +26094,10 @@ pci:v000010DEd00000DF4* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] - - pci:v000010DEd00000DF4sv0000152Dsd00000952* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) - - pci:v000010DEd00000DF4sv0000152Dsd00000953* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) - - pci:v000010DEd00000DF5* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 525M] -@@ -26124,7 +26124,7 @@ pci:v000010DEd00000E08* - ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller - - pci:v000010DEd00000E08sv000010B0sd0000104A* -- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 -+ ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller (Gainward GeForce GT 610) - - pci:v000010DEd00000E09* - ID_MODEL_FROM_DATABASE=GF110 High Definition Audio Controller -@@ -26145,16 +26145,16 @@ pci:v000010DEd00000E1B* - ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller - - pci:v000010DEd00000E1Bsv0000103Csd0000197B* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (ZBook 15) - - pci:v000010DEd00000E1Bsv00001043sd00008428* -- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 -+ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (GTX650-DC-1GD5) - - pci:v000010DEd00000E22* - ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] - - pci:v000010DEd00000E22sv00001462sd00002322* -- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC -+ ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] (N460GTX Cyclone 1GD5/OC) - - pci:v000010DEd00000E23* - ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460 SE] -@@ -26193,7 +26193,7 @@ pci:v000010DEd00000FC6* - ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] - - pci:v000010DEd00000FC6sv00001043sd00008428* -- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 -+ ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) - - pci:v000010DEd00000FCD* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] -@@ -26205,34 +26205,34 @@ pci:v000010DEd00000FD1* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] - - pci:v000010DEd00000FD1sv00001043sd00001597* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD1sv00001043sd000015A7* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD1sv00001043sd00002103* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (N56VZ) - - pci:v000010DEd00000FD1sv00001043sd00002105* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD1sv00001043sd00002141* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD2* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] - - pci:v000010DEd00000FD2sv00001028sd0000054F* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) - - pci:v000010DEd00000FD2sv00001028sd0000055F* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) - - pci:v000010DEd00000FD2sv00001028sd00000595* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) - - pci:v000010DEd00000FD2sv00001028sd000005B2* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) - - pci:v000010DEd00000FD3* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M LE] -@@ -26265,7 +26265,7 @@ pci:v000010DEd00000FE3* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] - - pci:v000010DEd00000FE3sv000017AAsd00003675* -- ID_MODEL_FROM_DATABASE=GeForce GT 745A -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) - - pci:v000010DEd00000FE4* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M] -@@ -26280,7 +26280,7 @@ pci:v000010DEd00000FE7* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] - - pci:v000010DEd00000FE7sv000010DEsd0000101E* -- ID_MODEL_FROM_DATABASE=GRID K100 -+ ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] (GRID K100) - - pci:v000010DEd00000FE9* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M Mac Edition] -@@ -26304,13 +26304,13 @@ pci:v000010DEd00000FF6* - ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] - - pci:v000010DEd00000FF6sv0000103Csd0000197B* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] (ZBook 15) - - pci:v000010DEd00000FF7* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] - - pci:v000010DEd00000FF7sv000010DEsd00001037* -- ID_MODEL_FROM_DATABASE=GRID K140Q -+ ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] (GRID K140Q) - - pci:v000010DEd00000FF8* - ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K500M] -@@ -26343,37 +26343,37 @@ pci:v000010DEd00001004* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] - - pci:v000010DEd00001004sv00003842sd00000784* -- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 SC w/ ACX Cooler] -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 SC w/ ACX Cooler]) - - pci:v000010DEd00001004sv00003842sd00001784* -- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler] -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler]) - - pci:v000010DEd00001004sv00003842sd00001788* -- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler] -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler]) - - pci:v000010DEd00001005* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] - - pci:v000010DEd00001005sv00001043sd00008451* -- ID_MODEL_FROM_DATABASE=GTXTITAN-6GD5 -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GTXTITAN-6GD5) - - pci:v000010DEd00001005sv000010DEsd00001035* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) - - pci:v000010DEd00001005sv00003842sd00002790* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) - - pci:v000010DEd00001005sv00003842sd00002791* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC) - - pci:v000010DEd00001005sv00003842sd00002793* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Signature -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Signature) - - pci:v000010DEd00001005sv00003842sd00002794* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper) - - pci:v000010DEd00001005sv00003842sd00002795* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper Signature) - - pci:v000010DEd00001007* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] -@@ -26436,7 +26436,7 @@ pci:v000010DEd0000104A* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] - - pci:v000010DEd0000104Asv000010B0sd0000104A* -- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 -+ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] (Gainward GeForce GT 610) - - pci:v000010DEd0000104B* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] -@@ -26469,37 +26469,37 @@ pci:v000010DEd00001058* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] - - pci:v000010DEd00001058sv0000103Csd00002AED* -- ID_MODEL_FROM_DATABASE=GeForce 610 -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) - - pci:v000010DEd00001058sv0000103Csd00002AF1* -- ID_MODEL_FROM_DATABASE=GeForce 610 -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) - - pci:v000010DEd00001058sv00001043sd000010AC* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd00001058sv00001043sd000010BC* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd00001058sv00001043sd00001652* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd00001058sv000017AAsd0000367A* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) - - pci:v000010DEd00001058sv000017AAsd00003682* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) - - pci:v000010DEd00001058sv000017AAsd00003687* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) - - pci:v000010DEd00001058sv000017AAsd00003692* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 705A) - - pci:v000010DEd00001058sv000017AAsd00003695* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) - - pci:v000010DEd00001058sv000017AAsd0000A117* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) - - pci:v000010DEd00001059* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] -@@ -26508,25 +26508,25 @@ pci:v000010DEd0000105A* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] - - pci:v000010DEd0000105Asv00001043sd00002111* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd0000105Asv00001043sd00002112* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd0000105B* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] - - pci:v000010DEd0000105Bsv0000103Csd00002AFB* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) - - pci:v000010DEd0000105Bsv000017AAsd0000309D* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) - - pci:v000010DEd0000105Bsv000017AAsd000030B1* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) - - pci:v000010DEd0000105Bsv000017AAsd000036A1* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) - - pci:v000010DEd0000107C* - ID_MODEL_FROM_DATABASE=GF119 [NVS 315] -@@ -26541,7 +26541,7 @@ pci:v000010DEd00001081* - ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] - - pci:v000010DEd00001081sv000010DEsd0000087E* -- ID_MODEL_FROM_DATABASE=Leadtek WinFast GTX 570 -+ ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] (Leadtek WinFast GTX 570) - - pci:v000010DEd00001082* - ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 560 Ti OEM] -@@ -26571,31 +26571,31 @@ pci:v000010DEd00001091* - ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] - - pci:v000010DEd00001091sv000010DEsd0000088E* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001091sv000010DEsd00000891* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001091sv000010DEsd00000974* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001091sv000010DEsd0000098D* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001094* - ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] - - pci:v000010DEd00001094sv000010DEsd00000888* -- ID_MODEL_FROM_DATABASE=Tesla M2075 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] (Tesla M2075) - - pci:v000010DEd00001096* - ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] - - pci:v000010DEd00001096sv000010DEsd00000910* -- ID_MODEL_FROM_DATABASE=Tesla C2075 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2075) - - pci:v000010DEd00001096sv000010DEsd00000911* -- ID_MODEL_FROM_DATABASE=Tesla C2050 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2050) - - pci:v000010DEd0000109A* - ID_MODEL_FROM_DATABASE=GF100GLM [Quadro 5010M] -@@ -26604,7 +26604,7 @@ pci:v000010DEd0000109B* - ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] - - pci:v000010DEd0000109Bsv000010DEsd00000918* -- ID_MODEL_FROM_DATABASE=Quadro 7000 -+ ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] (Quadro 7000) - - pci:v000010DEd000010C0* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 9300 GS Rev. 2] -@@ -26622,622 +26622,622 @@ pci:v000010DEd00001140* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] - - pci:v000010DEd00001140sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000064A* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000064C* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000067A* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000680* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000686* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000689* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068B* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068D* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068E* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000691* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000692* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000694* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000702* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000719* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000725* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000728* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000072B* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000072E* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000732* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000763* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000773* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000774* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000776* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000077A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077B* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077C* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077D* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077E* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077F* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000781* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000798* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000799* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000079B* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000079C* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000807* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000821* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000823* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000830* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000837* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000841* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001028sd0000054D* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd0000054E* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000554* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001028sd00000557* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001028sd00000562* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000565* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000568* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000590* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000592* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000594* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000595* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005A2* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005B1* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005B3* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005DA* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd000005DE* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd000005E0* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd000005E8* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd000005F4* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000103Csd000018EF* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018F9* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FB* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FD* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FF* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd00002AEF* -- ID_MODEL_FROM_DATABASE=GeForce GT 720A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) - - pci:v000010DEd00001140sv0000103Csd00002AF9* -- ID_MODEL_FROM_DATABASE=GeForce 710A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710A) - - pci:v000010DEd00001140sv00001043sd000010DD* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000010ED* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000011FD* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000124D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000126D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000131D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000013FD* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000014C7* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd00001507* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001043sd000015AD* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000015ED* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000160D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000163D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000166D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000016CD* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000016DD* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000170D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00002132* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001043sd00002136* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000021BA* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000021FA* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000220A* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000221A* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000223A* -- ID_MODEL_FROM_DATABASE=GeForce GT 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001043sd0000224A* -- ID_MODEL_FROM_DATABASE=GeForce GT 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001043sd0000227A* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000228A* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00008595* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001072sd0000152D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000010CFsd000017F5* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001179sd0000FA01* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA02* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA03* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA05* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA11* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA13* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA18* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA19* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA21* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA23* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA2A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA32* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA33* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA36* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA38* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA42* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA43* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA45* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA47* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA49* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA58* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA59* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA88* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA89* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000B092* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C0D5* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000144Dsd0000C0D7* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E2* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E3* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E4* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C652* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C709* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C711* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C736* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001462sd000010B8* -- ID_MODEL_FROM_DATABASE=GeForce GT 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001462sd000010E9* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd00001116* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000AA33* -- ID_MODEL_FROM_DATABASE=GeForce 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv00001462sd0000AAA2* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd0000AAA3* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000AE71* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000152Dsd00000926* -- ID_MODEL_FROM_DATABASE=GeForce 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 620M) - - pci:v000010DEd00001140sv0000152Dsd00000982* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00000983* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00001012* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000152Dsd00001030* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00001055* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000152Dsd00001067* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000152Dsd00001072* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00002200* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv000017AAsd00002213* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00002220* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000309C* -- ID_MODEL_FROM_DATABASE=GeForce GT 720A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) - - pci:v000010DEd00001140sv000017AAsd000030B4* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd00003656* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv000017AAsd0000365A* -- ID_MODEL_FROM_DATABASE=GeForce 705M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd0000365E* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd0000366C* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003685* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003686* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003687* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705A) - - pci:v000010DEd00001140sv000017AAsd00003696* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369B* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369C* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369D* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369E* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd00003800* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003802* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003803* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003804* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003901* -- ID_MODEL_FROM_DATABASE=GeForce 610M / GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) - - pci:v000010DEd00001140sv000017AAsd00003902* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00003903* -- ID_MODEL_FROM_DATABASE=GeForce 610M/710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M/710M) - - pci:v000010DEd00001140sv000017AAsd00003904* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M/625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M/625M) - - pci:v000010DEd00001140sv000017AAsd00003905* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003910* -- ID_MODEL_FROM_DATABASE=GeForce 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv000017AAsd00003912* -- ID_MODEL_FROM_DATABASE=GeForce 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003983* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) - - pci:v000010DEd00001140sv000017AAsd00005001* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) - - pci:v000010DEd00001140sv000017AAsd00005003* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005005* -- ID_MODEL_FROM_DATABASE=GeForce 705M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd0000500D* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv000017AAsd00005014* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005017* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005019* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000501A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000501F* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005025* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005027* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502B* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000502D* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502E* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000502F* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000503E* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000503F* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001854sd00000177* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001854sd00000180* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001854sd00000190* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001854sd00000192* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001B0Asd000020DD* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001B0Asd000020DF* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001B0Asd00002202* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001180* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] - - pci:v000010DEd00001180sv00001043sd000083F1* -- ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GTX680-DC2-2GD5) - - pci:v000010DEd00001180sv00003842sd00003682* -- ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GeForce GTX 680 Mac Edition) - - pci:v000010DEd00001182* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti] -@@ -27252,7 +27252,7 @@ pci:v000010DEd00001185* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] - - pci:v000010DEd00001185sv000010DEsd0000106F* -- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] (GK104 [GeForce GTX 760 OEM]) - - pci:v000010DEd00001187* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760] -@@ -27264,7 +27264,7 @@ pci:v000010DEd00001189* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] - - pci:v000010DEd00001189sv000010DEsd00001074* -- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] (GK104 [GeForce GTX 760 Ti OEM]) - - pci:v000010DEd0000118A* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K520] -@@ -27279,7 +27279,7 @@ pci:v000010DEd0000118D* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] - - pci:v000010DEd0000118Dsv000010DEsd0000101D* -- ID_MODEL_FROM_DATABASE=GRID K200 -+ ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] (GRID K200) - - pci:v000010DEd0000118E* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] -@@ -27324,7 +27324,7 @@ pci:v000010DEd000011A3* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] - - pci:v000010DEd000011A3sv0000106Bsd0000010D* -- ID_MODEL_FROM_DATABASE=iMac 13,2 -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] (iMac 13,2) - - pci:v000010DEd000011A7* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 675MX] -@@ -27333,10 +27333,10 @@ pci:v000010DEd000011B0* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] - - pci:v000010DEd000011B0sv000010DEsd0000101A* -- ID_MODEL_FROM_DATABASE=GRID K240Q -+ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K240Q) - - pci:v000010DEd000011B0sv000010DEsd0000101B* -- ID_MODEL_FROM_DATABASE=GRID K260Q -+ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K260Q) - - pci:v000010DEd000011B1* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] -@@ -27375,28 +27375,28 @@ pci:v000010DEd000011C2* - ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] - - pci:v000010DEd000011C2sv00001043sd0000845B* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost DirectCU II OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost DirectCU II OC) - - pci:v000010DEd000011C2sv00001462sd00002874* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost TwinFrozr II OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost TwinFrozr II OC) - - pci:v000010DEd000011C2sv00001569sd000011C2* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) - - pci:v000010DEd000011C2sv000019DAsd00001281* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) - - pci:v000010DEd000011C2sv00003842sd00003657* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost) - - pci:v000010DEd000011C2sv00003842sd00003658* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost Superclocked -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost Superclocked) - - pci:v000010DEd000011C3* - ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] - - pci:v000010DEd000011C3sv000010DEsd00001030* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti OEM -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] (GeForce GTX 650 Ti OEM) - - pci:v000010DEd000011C4* - ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 645 OEM] -@@ -27423,7 +27423,7 @@ pci:v000010DEd000011E3* - ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] - - pci:v000010DEd000011E3sv000017AAsd00003683* -- ID_MODEL_FROM_DATABASE=GeForce GTX 760A -+ ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] (GeForce GTX 760A) - - pci:v000010DEd000011FA* - ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] -@@ -27486,55 +27486,55 @@ pci:v000010DEd00001247* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] - - pci:v000010DEd00001247sv00001043sd00001752* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001247sv00001043sd00002050* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001247sv00001043sd00002051* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001247sv00001043sd0000212A* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001247sv00001043sd0000212B* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001247sv00001043sd0000212C* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001247sv0000152Dsd00000930* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001248* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] - - pci:v000010DEd00001248sv0000152Dsd00000930* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001248sv000017C0sd000010E7* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv000017C0sd000010E8* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv000017C0sd000010EA* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00000890* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00000891* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00001795* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00001796* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00003005* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001249* - ID_MODEL_FROM_DATABASE=GF116 [GeForce GTS 450 Rev. 3] -@@ -27546,19 +27546,19 @@ pci:v000010DEd0000124D* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] - - pci:v000010DEd0000124Dsv00001028sd00000491* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001028sd00000570* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001028sd00000571* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001462sd0000108D* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001462sd000010CC* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001251* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 560M] -@@ -27582,16 +27582,16 @@ pci:v000010DEd00001290* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] - - pci:v000010DEd00001290sv0000103Csd00002AFA* -- ID_MODEL_FROM_DATABASE=GeForce GT 730A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) - - pci:v000010DEd00001290sv0000103Csd00002B04* -- ID_MODEL_FROM_DATABASE=GeForce GT 730A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) - - pci:v000010DEd00001290sv00001043sd000013AD* -- ID_MODEL_FROM_DATABASE=GeForce GT 730M -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) - - pci:v000010DEd00001290sv00001043sd000013CD* -- ID_MODEL_FROM_DATABASE=GeForce GT 730M -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) - - pci:v000010DEd00001291* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 735M] -@@ -27600,10 +27600,10 @@ pci:v000010DEd00001292* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] - - pci:v000010DEd00001292sv000017AAsd00003675* -- ID_MODEL_FROM_DATABASE=GeForce GT 740A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) - - pci:v000010DEd00001292sv000017AAsd00003684* -- ID_MODEL_FROM_DATABASE=GeForce GT 740A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) - - pci:v000010DEd00001293* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] -@@ -27636,13 +27636,13 @@ pci:v000010DEd00001341* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] - - pci:v000010DEd00001341sv000017AAsd00003697* -- ID_MODEL_FROM_DATABASE=GeForce 840A -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) - - pci:v000010DEd00001341sv000017AAsd00003699* -- ID_MODEL_FROM_DATABASE=GeForce 840A -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) - - pci:v000010DEd00001341sv000017AAsd0000369C* -- ID_MODEL_FROM_DATABASE=GeForce 840A -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) - - pci:v000010DEd00001380* - ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] -@@ -27660,10 +27660,10 @@ pci:v000010DEd00001391* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] - - pci:v000010DEd00001391sv000017AAsd00003697* -- ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) - - pci:v000010DEd00001391sv000017AAsd0000A125* -- ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) - - pci:v000010DEd00001392* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] -@@ -27678,13 +27678,13 @@ pci:v000010DFd00000720* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) - - pci:v000010DFd00000720sv000017AAsd00001056* -- ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14102-UX-L AnyFabric) - - pci:v000010DFd00000720sv000017AAsd00001057* -- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UX-L AnyFabric) - - pci:v000010DFd00000720sv000017AAsd00001059* -- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UT-L AnyFabric) - - pci:v000010DFd00000722* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) -@@ -27729,10 +27729,10 @@ pci:v000010DFd0000E220* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) - - pci:v000010DFd0000E220sv000017AAsd00001054* -- ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16002B-M6-L AnyFabric) - - pci:v000010DFd0000E220sv000017AAsd00001055* -- ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16004B-M8-L AnyFabric) - - pci:v000010DFd0000E240* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) -@@ -27831,7 +27831,7 @@ pci:v000010DFd0000FC00* - ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter - - pci:v000010DFd0000FC00sv000010DFsd0000FC00* -- ID_MODEL_FROM_DATABASE=LP10000 LightPulse Fibre Channel Host Adapter -+ ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter (LP10000 LightPulse Fibre Channel Host Adapter) - - pci:v000010DFd0000FC10* - ID_MODEL_FROM_DATABASE=Helios-X LightPulse Fibre Channel Host Adapter -@@ -27897,7 +27897,7 @@ pci:v000010E1d00000391* - ID_MODEL_FROM_DATABASE=TRM-S1040 - - pci:v000010E1d00000391sv000010E1sd00000391* -- ID_MODEL_FROM_DATABASE=DC-315U SCSI-3 Host Adapter -+ ID_MODEL_FROM_DATABASE=TRM-S1040 (DC-315U SCSI-3 Host Adapter) - - pci:v000010E1d0000690C* - ID_MODEL_FROM_DATABASE=DC-690c -@@ -27921,7 +27921,7 @@ pci:v000010E3d00000148* - ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] - - pci:v000010E3d00000148sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] (VR11 Single Board Computer) - - pci:v000010E3d00000860* - ID_MODEL_FROM_DATABASE=CA91C860 [QSpan] -@@ -28107,25 +28107,25 @@ pci:v000010ECd00005227* - ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader - - pci:v000010ECd00005227sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad T440p) - - pci:v000010ECd00005227sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad X240) - - pci:v000010ECd00005229* - ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader - - pci:v000010ECd00005229sv00001025sd00000813* -- ID_MODEL_FROM_DATABASE=Aspire R7-571 -+ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (Aspire R7-571) - - pci:v000010ECd00005229sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (ProBook 455 G1 Notebook) - - pci:v000010ECd00005249* - ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader - - pci:v000010ECd00005249sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) - - pci:v000010ECd00005288* - ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader -@@ -28134,334 +28134,334 @@ pci:v000010ECd00008029* - ID_MODEL_FROM_DATABASE=RTL-8029(AS) - - pci:v000010ECd00008029sv000010B8sd00002011* -- ID_MODEL_FROM_DATABASE=EZ-Card (SMC1208) -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EZ-Card (SMC1208)) - - pci:v000010ECd00008029sv000010ECsd00008029* - ID_MODEL_FROM_DATABASE=RTL-8029(AS) - - pci:v000010ECd00008029sv00001113sd00001208* -- ID_MODEL_FROM_DATABASE=EN1208 -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EN1208) - - pci:v000010ECd00008029sv00001186sd00000300* -- ID_MODEL_FROM_DATABASE=DE-528 -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (DE-528) - - pci:v000010ECd00008029sv00001259sd00002400* -- ID_MODEL_FROM_DATABASE=AT-2400 -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (AT-2400) - - pci:v000010ECd00008029sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (QEMU Virtual Machine) - - pci:v000010ECd00008129* - ID_MODEL_FROM_DATABASE=RTL-8129 - - pci:v000010ECd00008129sv000010ECsd00008129* -- ID_MODEL_FROM_DATABASE=RT8129 Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL-8129 (RT8129 Fast Ethernet Adapter) - - pci:v000010ECd00008129sv000011ECsd00008129* -- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCIe Gigabit Ethernet (misconfigured) -+ ID_MODEL_FROM_DATABASE=RTL-8129 (RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)) - - pci:v000010ECd00008136* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller - - pci:v000010ECd00008136sv0000103Csd00002AB1* -- ID_MODEL_FROM_DATABASE=Pavillion p6774 -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) - - pci:v000010ECd00008136sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) - - pci:v000010ECd00008136sv00001179sd0000FF64* -- ID_MODEL_FROM_DATABASE=RTL8102E PCI-E Fast Ethernet NIC -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) - - pci:v000010ECd00008138* - ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter - - pci:v000010ECd00008138sv000010ECsd00008138* -- ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter (RT8139 (B/C) Fast Ethernet Adapter) - - pci:v000010ECd00008139* - ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - - pci:v000010ECd00008139sv00000357sd0000000A* -- ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TTP-Monitoring Card V2.0) - - pci:v000010ECd00008139sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TravelMate 290) - - pci:v000010ECd00008139sv00001025sd00008920* -- ID_MODEL_FROM_DATABASE=ALN-325 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) - - pci:v000010ECd00008139sv00001025sd00008921* -- ID_MODEL_FROM_DATABASE=ALN-325 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) - - pci:v000010ECd00008139sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (NX9500) - - pci:v000010ECd00008139sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Pavilion t3030.de Desktop PC) - - pci:v000010ECd00008139sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Presario C700) - - pci:v000010ECd00008139sv00001043sd00001045* -- ID_MODEL_FROM_DATABASE=L8400B or L3C/S notebook -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (L8400B or L3C/S notebook) - - pci:v000010ECd00008139sv00001043sd00008109* -- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P5P800-MX Mainboard) - - pci:v000010ECd00008139sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MIM2000) - - pci:v000010ECd00008139sv000010BDsd00000320* -- ID_MODEL_FROM_DATABASE=EP-320X-R -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EP-320X-R) - - pci:v000010ECd00008139sv000010ECsd00008139* - ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - - pci:v000010ECd00008139sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Panasonic CF-Y5 laptop) - - pci:v000010ECd00008139sv00001113sd0000EC01* -- ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LevelOne FNC-0107TX/FNC-0109TX) - - pci:v000010ECd00008139sv00001186sd00001300* -- ID_MODEL_FROM_DATABASE=DFE-538TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DFE-538TX) - - pci:v000010ECd00008139sv00001186sd00001320* -- ID_MODEL_FROM_DATABASE=SN5200 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (SN5200) - - pci:v000010ECd00008139sv00001186sd00008139* -- ID_MODEL_FROM_DATABASE=DRN-32TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DRN-32TX) - - pci:v000010ECd00008139sv000011F6sd00008139* -- ID_MODEL_FROM_DATABASE=FN22-3(A) LinxPRO Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN22-3(A) LinxPRO Ethernet Adapter) - - pci:v000010ECd00008139sv00001259sd00002500* -- ID_MODEL_FROM_DATABASE=AT-2500TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX) - - pci:v000010ECd00008139sv00001259sd00002503* -- ID_MODEL_FROM_DATABASE=AT-2500TX/ACPI -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX/ACPI) - - pci:v000010ECd00008139sv00001385sd0000F31D* -- ID_MODEL_FROM_DATABASE=FA311 v2 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FA311 v2) - - pci:v000010ECd00008139sv00001395sd00002100* -- ID_MODEL_FROM_DATABASE=AMB2100 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AMB2100) - - pci:v000010ECd00008139sv00001429sd0000D010* -- ID_MODEL_FROM_DATABASE=ND010/ND012 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ND010/ND012) - - pci:v000010ECd00008139sv00001432sd00009130* -- ID_MODEL_FROM_DATABASE=EN-9130TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EN-9130TX) - - pci:v000010ECd00008139sv00001436sd00008139* -- ID_MODEL_FROM_DATABASE=RT8139 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RT8139) - - pci:v000010ECd00008139sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P30/P35 notebook) - - pci:v000010ECd00008139sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-7VM400M/7VT600 Motherboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GA-7VM400M/7VT600 Motherboard) - - pci:v000010ECd00008139sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MS-1013 Notebook) - - pci:v000010ECd00008139sv00001462sd0000217C* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Aspire L250) - - pci:v000010ECd00008139sv00001462sd0000788C* -- ID_MODEL_FROM_DATABASE=865PE Neo2-V Mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (865PE Neo2-V Mainboard) - - pci:v000010ECd00008139sv0000146Csd00001439* -- ID_MODEL_FROM_DATABASE=FE-1439TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FE-1439TX) - - pci:v000010ECd00008139sv00001489sd00006001* -- ID_MODEL_FROM_DATABASE=GF100TXRII -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRII) - - pci:v000010ECd00008139sv00001489sd00006002* -- ID_MODEL_FROM_DATABASE=GF100TXRA -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRA) - - pci:v000010ECd00008139sv0000149Csd0000139A* -- ID_MODEL_FROM_DATABASE=LFE-8139ATX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139ATX) - - pci:v000010ECd00008139sv0000149Csd00008139* -- ID_MODEL_FROM_DATABASE=LFE-8139TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139TX) - - pci:v000010ECd00008139sv000014CBsd00000200* -- ID_MODEL_FROM_DATABASE=LNR-100 Family 10/100 Base-TX Ethernet -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LNR-100 Family 10/100 Base-TX Ethernet) - - pci:v000010ECd00008139sv00001565sd00002300* -- ID_MODEL_FROM_DATABASE=P4TSV Onboard LAN (RTL8100B) -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P4TSV Onboard LAN (RTL8100B)) - - pci:v000010ECd00008139sv00001631sd00007003* -- ID_MODEL_FROM_DATABASE=Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard) - - pci:v000010ECd00008139sv00001695sd00009001* -- ID_MODEL_FROM_DATABASE=Onboard RTL8101L 10/100 MBit -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8101L 10/100 MBit) - - pci:v000010ECd00008139sv000016ECsd000000FF* -- ID_MODEL_FROM_DATABASE=USR997900A -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (USR997900A) - - pci:v000010ECd00008139sv00001799sd00005000* -- ID_MODEL_FROM_DATABASE=F5D5000 PCI Card/Desktop Network PCI Card -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5000 PCI Card/Desktop Network PCI Card) - - pci:v000010ECd00008139sv00001799sd00005010* -- ID_MODEL_FROM_DATABASE=F5D5010 CardBus Notebook Network Card -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5010 CardBus Notebook Network Card) - - pci:v000010ECd00008139sv0000187Esd00003303* -- ID_MODEL_FROM_DATABASE=FN312 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN312) - - pci:v000010ECd00008139sv00001904sd00008139* -- ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RTL8139D Fast Ethernet Adapter) - - pci:v000010ECd00008139sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (QEMU Virtual Machine) - - pci:v000010ECd00008139sv00002646sd00000001* -- ID_MODEL_FROM_DATABASE=KNE120TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KNE120TX) - - pci:v000010ECd00008139sv00008E2Esd00007000* -- ID_MODEL_FROM_DATABASE=KF-230TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX) - - pci:v000010ECd00008139sv00008E2Esd00007100* -- ID_MODEL_FROM_DATABASE=KF-230TX/2 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX/2) - - pci:v000010ECd00008139sv0000A0A0sd00000007* -- ID_MODEL_FROM_DATABASE=ALN-325C -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325C) - - pci:v000010ECd00008167* - ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet - - pci:v000010ECd00008167sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-MA69G-S3H Motherboard -+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (GA-MA69G-S3H Motherboard) - - pci:v000010ECd00008167sv00001462sd0000235C* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (P965 Neo MS-7235 mainboard) - - pci:v000010ECd00008167sv00001462sd0000236C* -- ID_MODEL_FROM_DATABASE=945P Neo3-F motherboard -+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (945P Neo3-F motherboard) - - pci:v000010ECd00008168* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller - - pci:v000010ECd00008168sv00001019sd00008168* -- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) - - pci:v000010ECd00008168sv00001028sd00000283* -- ID_MODEL_FROM_DATABASE=Vostro 220 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 220) - - pci:v000010ECd00008168sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3350) - - pci:v000010ECd00008168sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3750) - - pci:v000010ECd00008168sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Pavilion DM1Z-3000) - - pci:v000010ECd00008168sv0000103Csd00001950* -- ID_MODEL_FROM_DATABASE=ProBook 450/455 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (ProBook 450/455) - - pci:v000010ECd00008168sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Asus IPIBL-LB Motherboard) - - pci:v000010ECd00008168sv00001043sd000011F5* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (A6J-Q008) - - pci:v000010ECd00008168sv00001043sd000016D5* -- ID_MODEL_FROM_DATABASE=U6V/U31J laptop -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (U6V/U31J laptop) - - pci:v000010ECd00008168sv00001043sd000081AA* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P5B) - - pci:v000010ECd00008168sv00001043sd000082C6* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M3A78-EH Motherboard) - - pci:v000010ECd00008168sv00001043sd000083A3* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M4A785TD Motherboard) - - pci:v000010ECd00008168sv00001043sd00008432* -- ID_MODEL_FROM_DATABASE=P8P67 and other motherboards -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) - - pci:v000010ECd00008168sv00001043sd00008505* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) - - pci:v000010ECd00008168sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) - - pci:v000010ECd00008168sv000010ECsd00008168* -- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) - - pci:v000010ECd00008168sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard) - - pci:v000010ECd00008168sv00001462sd0000238C* -- ID_MODEL_FROM_DATABASE=Onboard RTL8111b on MSI P965 Platinum Mainboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Onboard RTL8111b on MSI P965 Platinum Mainboard) - - pci:v000010ECd00008168sv00001462sd0000368C* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (K9AG Neo2) - - pci:v000010ECd00008168sv00001462sd00004180* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Wind PC MS-7418) - - pci:v000010ECd00008168sv00001462sd00007522* -- ID_MODEL_FROM_DATABASE=X58 Pro-E -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (X58 Pro-E) - - pci:v000010ECd00008168sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (CC11/CL11) - - pci:v000010ECd00008168sv00001849sd00008168* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard (one of many)) - - pci:v000010ECd00008168sv00008086sd0000D615* -- ID_MODEL_FROM_DATABASE=Desktop Board D510MO/D525MW -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Desktop Board D510MO/D525MW) - - pci:v000010ECd00008169* - ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller - - pci:v000010ECd00008169sv00001025sd00000079* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Aspire 5024WLMi) - - pci:v000010ECd00008169sv000010BDsd00003202* -- ID_MODEL_FROM_DATABASE=EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter) - - pci:v000010ECd00008169sv000010ECsd00008169* -- ID_MODEL_FROM_DATABASE=RTL8169/8110 Family PCI Gigabit Ethernet NIC -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (RTL8169/8110 Family PCI Gigabit Ethernet NIC) - - pci:v000010ECd00008169sv00001259sd0000C107* -- ID_MODEL_FROM_DATABASE=CG-LAPCIGT -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (CG-LAPCIGT) - - pci:v000010ECd00008169sv00001371sd0000434E* -- ID_MODEL_FROM_DATABASE=ProG-2000L -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (ProG-2000L) - - pci:v000010ECd00008169sv00001385sd0000311A* -- ID_MODEL_FROM_DATABASE=GA311 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA311) - - pci:v000010ECd00008169sv00001385sd00005200* -- ID_MODEL_FROM_DATABASE=GA511 Gigabit PC Card -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA511 Gigabit PC Card) - - pci:v000010ECd00008169sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA-8I915ME-G Mainboard) - - pci:v000010ECd00008169sv00001462sd0000030C* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 mainboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8N Neo-FSR v2.0 mainboard) - - pci:v000010ECd00008169sv00001462sd0000065C* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Hetis 865GV-E (MS-7065)) - - pci:v000010ECd00008169sv00001462sd0000702C* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T NEO 2 motherboard) - - pci:v000010ECd00008169sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T Neo2-F V2.0) - - pci:v000010ECd00008169sv000016ECsd0000011F* -- ID_MODEL_FROM_DATABASE=USR997903 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (USR997903) - - pci:v000010ECd00008169sv00001734sd00001091* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (D2030-A1) - - pci:v000010ECd00008169sv0000A0A0sd00000449* -- ID_MODEL_FROM_DATABASE=AK86-L motherboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (AK86-L motherboard) - - pci:v000010ECd00008171* - ID_MODEL_FROM_DATABASE=RTL8191SEvA Wireless LAN Controller -@@ -28479,7 +28479,7 @@ pci:v000010ECd00008176* - ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter - - pci:v000010ECd00008176sv00001A3Bsd00001139* -- ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter (AW-NE139H Half-size Mini PCIe Card) - - pci:v000010ECd00008177* - ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter -@@ -28494,10 +28494,10 @@ pci:v000010ECd00008180* - ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC - - pci:v000010ECd00008180sv00001385sd00004700* -- ID_MODEL_FROM_DATABASE=MA521 802.11b Wireless PC Card -+ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (MA521 802.11b Wireless PC Card) - - pci:v000010ECd00008180sv00001737sd00000019* -- ID_MODEL_FROM_DATABASE=WPC11v4 802.11b Wireless-B Notebook Adapter -+ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (WPC11v4 802.11b Wireless-B Notebook Adapter) - - pci:v000010ECd00008185* - ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller -@@ -28524,7 +28524,7 @@ pci:v000010ECd00008199* - ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller - - pci:v000010ECd00008199sv00001462sd00006894* -- ID_MODEL_FROM_DATABASE=MN54G2 / MS-6894 Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller (MN54G2 / MS-6894 Wireless Mini PCIe Card) - - pci:v000010ECd00008723* - ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter -@@ -28734,115 +28734,115 @@ pci:v00001102d00000002* - ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 - - pci:v00001102d00000002sv0000100Asd00001102* -- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF) - - pci:v00001102d00000002sv00001102sd00000020* -- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00000021* -- ID_MODEL_FROM_DATABASE=CT4620 SBLive! -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4620 SBLive!) - - pci:v00001102d00000002sv00001102sd0000002F* -- ID_MODEL_FROM_DATABASE=SBLive! mainboard implementation -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! mainboard implementation) - - pci:v00001102d00000002sv00001102sd0000100A* -- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM [SB0220] -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM [SB0220]) - - pci:v00001102d00000002sv00001102sd00004001* -- ID_MODEL_FROM_DATABASE=E-mu APS -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (E-mu APS) - - pci:v00001102d00000002sv00001102sd00008022* -- ID_MODEL_FROM_DATABASE=CT4780 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4780 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008023* -- ID_MODEL_FROM_DATABASE=CT4790 SoundBlaster PCI512 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4790 SoundBlaster PCI512) - - pci:v00001102d00000002sv00001102sd00008024* -- ID_MODEL_FROM_DATABASE=CT4760 SBLive! -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) - - pci:v00001102d00000002sv00001102sd00008025* -- ID_MODEL_FROM_DATABASE=SBLive! Mainboard Implementation -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Mainboard Implementation) - - pci:v00001102d00000002sv00001102sd00008026* -- ID_MODEL_FROM_DATABASE=CT4830 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4830 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008027* -- ID_MODEL_FROM_DATABASE=CT4832 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4832 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008028* -- ID_MODEL_FROM_DATABASE=CT4760 SBLive! OEM version -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive! OEM version) - - pci:v00001102d00000002sv00001102sd00008031* -- ID_MODEL_FROM_DATABASE=CT4831 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4831 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008040* -- ID_MODEL_FROM_DATABASE=CT4760 SBLive! -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) - - pci:v00001102d00000002sv00001102sd00008051* -- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008061* -- ID_MODEL_FROM_DATABASE=SBLive! Player 5.1 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Player 5.1) - - pci:v00001102d00000002sv00001102sd00008064* -- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Model SB0100 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Model SB0100) - - pci:v00001102d00000002sv00001102sd00008065* -- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Digital Model SB0220 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Digital Model SB0220) - - pci:v00001102d00000002sv00001102sd00008066* -- ID_MODEL_FROM_DATABASE=Live! 5.1 Digital [SB0228] -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (Live! 5.1 Digital [SB0228]) - - pci:v00001102d00000002sv00001102sd00008067* -- ID_MODEL_FROM_DATABASE=SBLive! 5.1 eMicro 28028 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 eMicro 28028) - - pci:v00001102d00000004* - ID_MODEL_FROM_DATABASE=SB Audigy - - pci:v00001102d00000004sv00001102sd00000051* -- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player) - - pci:v00001102d00000004sv00001102sd00000053* -- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) - - pci:v00001102d00000004sv00001102sd00000058* -- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) - - pci:v00001102d00000004sv00001102sd00001002* -- ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 Platinum) - - pci:v00001102d00000004sv00001102sd00001003* -- ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0350 Audigy 2) - - pci:v00001102d00000004sv00001102sd00001007* -- ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0240 Audigy 2 Platinum 6.1) - - pci:v00001102d00000004sv00001102sd00001009* -- ID_MODEL_FROM_DATABASE=SB Audigy2 OEM HP -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 OEM HP) - - pci:v00001102d00000004sv00001102sd00002001* -- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS Platinum Pro -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS Platinum Pro) - - pci:v00001102d00000004sv00001102sd00002002* -- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS (SB0350) -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS (SB0350)) - - pci:v00001102d00000004sv00001102sd00004001* -- ID_MODEL_FROM_DATABASE=E-MU 1010 -+ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 1010) - - pci:v00001102d00000004sv00001102sd00004002* -- ID_MODEL_FROM_DATABASE=E-MU 0404 -+ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 0404) - - pci:v00001102d00000005* - ID_MODEL_FROM_DATABASE=SB X-Fi - - pci:v00001102d00000005sv00001102sd00000021* -- ID_MODEL_FROM_DATABASE=X-Fi Platinum -+ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi Platinum) - - pci:v00001102d00000005sv00001102sd0000002C* -- ID_MODEL_FROM_DATABASE=X-Fi XtremeGamer FATAL1TY PRO -+ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeGamer FATAL1TY PRO) - - pci:v00001102d00000005sv00001102sd00001003* -- ID_MODEL_FROM_DATABASE=X-Fi XtremeMusic -+ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeMusic) - - pci:v00001102d00000006* - ID_MODEL_FROM_DATABASE=[SB Live! Value] EMU10k1X -@@ -28851,37 +28851,37 @@ pci:v00001102d00000007* - ID_MODEL_FROM_DATABASE=CA0106 Soundblaster - - pci:v00001102d00000007sv00001102sd00000007* -- ID_MODEL_FROM_DATABASE=SBLive! 24bit -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SBLive! 24bit) - - pci:v00001102d00000007sv00001102sd00001001* -- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0310 Audigy LS) - - pci:v00001102d00000007sv00001102sd00001002* -- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0312 Audigy LS) - - pci:v00001102d00000007sv00001102sd00001006* -- ID_MODEL_FROM_DATABASE=SB0410 SBLive! 24-bit -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0410 SBLive! 24-bit) - - pci:v00001102d00000007sv00001102sd0000100A* -- ID_MODEL_FROM_DATABASE=SB0570 [SB Audigy SE] -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0570 [SB Audigy SE]) - - pci:v00001102d00000007sv00001102sd00001012* -- ID_MODEL_FROM_DATABASE=SB0790 X-Fi XA -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0790 X-Fi XA) - - pci:v00001102d00000007sv00001102sd00001013* -- ID_MODEL_FROM_DATABASE=Soundblaster X-Fi Xtreme Audio -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (Soundblaster X-Fi Xtreme Audio) - - pci:v00001102d00000007sv00001462sd00001009* -- ID_MODEL_FROM_DATABASE=K8N Diamond -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (K8N Diamond) - - pci:v00001102d00000008* - ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value - - pci:v00001102d00000008sv00001102sd00000008* -- ID_MODEL_FROM_DATABASE=EMU0404 Digital Audio System -+ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU0404 Digital Audio System) - - pci:v00001102d00000008sv00001102sd00004004* -- ID_MODEL_FROM_DATABASE=EMU1010 Digital Audio System [MAEM8960] -+ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU1010 Digital Audio System [MAEM8960]) - - pci:v00001102d00000009* - ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG -@@ -28890,13 +28890,13 @@ pci:v00001102d00000009sv00001102sd00000010* - ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG - - pci:v00001102d00000009sv00001102sd00000018* -- ID_MODEL_FROM_DATABASE=SB1040 -+ ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG (SB1040) - - pci:v00001102d0000000B* - ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] - - pci:v00001102d0000000Bsv00001102sd00000041* -- ID_MODEL_FROM_DATABASE=SB0880 [SoundBlaster X-Fi Titanium PCI-e] -+ ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) - - pci:v00001102d00004001* - ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port -@@ -28908,7 +28908,7 @@ pci:v00001102d00007002* - ID_MODEL_FROM_DATABASE=SB Live! Game Port - - pci:v00001102d00007002sv00001102sd00000020* -- ID_MODEL_FROM_DATABASE=Gameport Joystick -+ ID_MODEL_FROM_DATABASE=SB Live! Game Port (Gameport Joystick) - - pci:v00001102d00007003* - ID_MODEL_FROM_DATABASE=SB Audigy Game Port -@@ -28917,7 +28917,7 @@ pci:v00001102d00007003sv00001102sd00000040* - ID_MODEL_FROM_DATABASE=SB Audigy Game Port - - pci:v00001102d00007003sv00001102sd00000060* -- ID_MODEL_FROM_DATABASE=SB Audigy2 MIDI/Game Port -+ ID_MODEL_FROM_DATABASE=SB Audigy Game Port (SB Audigy2 MIDI/Game Port) - - pci:v00001102d00007004* - ID_MODEL_FROM_DATABASE=[SB Live! Value] Input device controller -@@ -28926,10 +28926,10 @@ pci:v00001102d00007005* - ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port - - pci:v00001102d00007005sv00001102sd00001001* -- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS MIDI/Game port -+ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0310 Audigy LS MIDI/Game port) - - pci:v00001102d00007005sv00001102sd00001002* -- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS MIDI/Game port -+ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0312 Audigy LS MIDI/Game port) - - pci:v00001102d00007006* - ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG PCI to PCIe Bridge -@@ -28938,49 +28938,49 @@ pci:v00001102d00008938* - ID_MODEL_FROM_DATABASE=Ectiva EV1938 - - pci:v00001102d00008938sv00001033sd000080E5* -- ID_MODEL_FROM_DATABASE=SlimTower-Jim (NEC) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (SlimTower-Jim (NEC)) - - pci:v00001102d00008938sv00001071sd00007150* -- ID_MODEL_FROM_DATABASE=Mitac 7150 -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Mitac 7150) - - pci:v00001102d00008938sv0000110Asd00005938* -- ID_MODEL_FROM_DATABASE=Siemens Scenic Mobile 510PIII -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Siemens Scenic Mobile 510PIII) - - pci:v00001102d00008938sv000013BDsd0000100C* -- ID_MODEL_FROM_DATABASE=Ceres-C (Sharp, Intel BX) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Ceres-C (Sharp, Intel BX)) - - pci:v00001102d00008938sv000013BDsd0000100D* -- ID_MODEL_FROM_DATABASE=Sharp, Intel Banister -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Sharp, Intel Banister) - - pci:v00001102d00008938sv000013BDsd0000100E* -- ID_MODEL_FROM_DATABASE=TwinHead P09S/P09S3 (Sharp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (TwinHead P09S/P09S3 (Sharp)) - - pci:v00001102d00008938sv000013BDsd0000F6F1* -- ID_MODEL_FROM_DATABASE=Marlin (Sharp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Marlin (Sharp)) - - pci:v00001102d00008938sv000014FFsd00000E70* -- ID_MODEL_FROM_DATABASE=P88TE (TWINHEAD INTERNATIONAL Corp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (P88TE (TWINHEAD INTERNATIONAL Corp)) - - pci:v00001102d00008938sv000014FFsd0000C401* -- ID_MODEL_FROM_DATABASE=Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp)) - - pci:v00001102d00008938sv0000156Dsd0000B400* -- ID_MODEL_FROM_DATABASE=G400 - Geo (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G400 - Geo (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B550* -- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B560* -- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B700* -- ID_MODEL_FROM_DATABASE=G700/U700 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G700/U700 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B795* -- ID_MODEL_FROM_DATABASE=G795 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G795 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B797* -- ID_MODEL_FROM_DATABASE=G797 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G797 (AlphaTop (Taiwan))) - - pci:v00001103* - ID_VENDOR_FROM_DATABASE=HighPoint Technologies, Inc. -@@ -28992,16 +28992,16 @@ pci:v00001103d00000004* - ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N - - pci:v00001103d00000004sv00001103sd00000001* -- ID_MODEL_FROM_DATABASE=HPT370A -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370A) - - pci:v00001103d00000004sv00001103sd00000004* -- ID_MODEL_FROM_DATABASE=HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4) -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)) - - pci:v00001103d00000004sv00001103sd00000005* -- ID_MODEL_FROM_DATABASE=HPT370 UDMA100 -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370 UDMA100) - - pci:v00001103d00000004sv00001103sd00000006* -- ID_MODEL_FROM_DATABASE=HPT302/302N -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT302/302N) - - pci:v00001103d00000005* - ID_MODEL_FROM_DATABASE=HPT372A/372N -@@ -29040,7 +29040,7 @@ pci:v00001103d00002210* - ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller - - pci:v00001103d00002210sv000011ABsd000011AB* -- ID_MODEL_FROM_DATABASE=88SX6042 -+ ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller (88SX6042) - - pci:v00001103d00002300* - ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller -@@ -29112,13 +29112,13 @@ pci:v00001105d00008475* - ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder - - pci:v00001105d00008475sv00001105sd00000001* -- ID_MODEL_FROM_DATABASE=REALmagic X-Card -+ ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder (REALmagic X-Card) - - pci:v00001105d00008476* - ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder - - pci:v00001105d00008476sv0000127Dsd00000000* -- ID_MODEL_FROM_DATABASE=CineView II -+ ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder (CineView II) - - pci:v00001105d00008485* - ID_MODEL_FROM_DATABASE=EM8485 REALmagic DVD/MPEG-4 A/V Decoder -@@ -29163,7 +29163,7 @@ pci:v00001106d00000282* - ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge - - pci:v00001106d00000282sv00001043sd000080A3* -- ID_MODEL_FROM_DATABASE=A8V Deluxe -+ ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge (A8V Deluxe) - - pci:v00001106d00000290* - ID_MODEL_FROM_DATABASE=K8M890 Host Bridge -@@ -29178,28 +29178,28 @@ pci:v00001106d00000305* - ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] - - pci:v00001106d00000305sv00001019sd00000987* -- ID_MODEL_FROM_DATABASE=K7VZA Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (K7VZA Mainboard) - - pci:v00001106d00000305sv00001043sd00008033* -- ID_MODEL_FROM_DATABASE=A7V Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V Mainboard) - - pci:v00001106d00000305sv00001043sd0000803E* -- ID_MODEL_FROM_DATABASE=A7V-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V-E Mainboard) - - pci:v00001106d00000305sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V133/A7V133-C Mainboard) - - pci:v00001106d00000305sv0000147Bsd0000A401* -- ID_MODEL_FROM_DATABASE=KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard) - - pci:v00001106d00000308* - ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge - - pci:v00001106d00000308sv00001043sd00008199* -- ID_MODEL_FROM_DATABASE=P4V800D-X Mainboard -+ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (P4V800D-X Mainboard) - - pci:v00001106d00000308sv00001849sd00000308* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (Motherboard) - - pci:v00001106d00000314* - ID_MODEL_FROM_DATABASE=CN700/VN800/P4M800CE/Pro Host Bridge -@@ -29226,7 +29226,7 @@ pci:v00001106d00000364* - ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge - - pci:v00001106d00000364sv00001043sd000081CE* -- ID_MODEL_FROM_DATABASE=P5VD2-VM mothervoard -+ ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge (P5VD2-VM mothervoard) - - pci:v00001106d00000391* - ID_MODEL_FROM_DATABASE=VT8371 [KX133] -@@ -29241,7 +29241,7 @@ pci:v00001106d00000415* - ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller - - pci:v00001106d00000415sv00001043sd0000838F* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller (Motherboard) - - pci:v00001106d00000501* - ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] -@@ -29256,55 +29256,55 @@ pci:v00001106d00000571* - ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE - - pci:v00001106d00000571sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (P6VXA Motherboard) - - pci:v00001106d00000571sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00000571sv00001043sd00008052* -- ID_MODEL_FROM_DATABASE=VT8233A Bus Master ATA100/66/33 IDE -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT8233A Bus Master ATA100/66/33 IDE) - - pci:v00001106d00000571sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V8X / A7V333 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X / A7V333 motherboard) - - pci:v00001106d00000571sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev. 1.01 -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X-X motherboard rev. 1.01) - - pci:v00001106d00000571sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00000571sv00001106sd00000571* -- ID_MODEL_FROM_DATABASE=VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE) - - pci:v00001106d00000571sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (Magnia Z310) - - pci:v00001106d00000571sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (FX41 motherboard) - - pci:v00001106d00000571sv00001458sd00005002* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (GA-7VAX Mainboard) - - pci:v00001106d00000571sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00000571sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T NEO 2 motherboard) - - pci:v00001106d00000571sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T Neo2-F V2.0) - - pci:v00001106d00000571sv00001462sd00007120* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT4AV motherboard) - - pci:v00001106d00000571sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8MM3-V mainboard) - - pci:v00001106d00000571sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KV8-MAX3 motherboard) - - pci:v00001106d00000571sv00001849sd00000571* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K7VT series Motherboards) - - pci:v00001106d00000576* - ID_MODEL_FROM_DATABASE=VT82C576 3V [Apollo Master] -@@ -29313,7 +29313,7 @@ pci:v00001106d00000581* - ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller - - pci:v00001106d00000581sv00001106sd00000581* -- ID_MODEL_FROM_DATABASE=Wrong IDE ID -+ ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller (Wrong IDE ID) - - pci:v00001106d00000585* - ID_MODEL_FROM_DATABASE=VT82C585VP [Apollo VP1/VPX] -@@ -29322,7 +29322,7 @@ pci:v00001106d00000586* - ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] - - pci:v00001106d00000586sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=MVP3 ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] (MVP3 ISA Bridge) - - pci:v00001106d00000591* - ID_MODEL_FROM_DATABASE=VT8237A SATA 2-Port Controller -@@ -29334,10 +29334,10 @@ pci:v00001106d00000596* - ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] - - pci:v00001106d00000596sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) - - pci:v00001106d00000596sv00001458sd00000596* -- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) - - pci:v00001106d00000597* - ID_MODEL_FROM_DATABASE=VT82C597 [Apollo VP3] -@@ -29352,10 +29352,10 @@ pci:v00001106d00000605* - ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] - - pci:v00001106d00000605sv0000103Csd00001254* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00001106d00000605sv00001043sd0000802C* -- ID_MODEL_FROM_DATABASE=CUV4X mainboard -+ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (CUV4X mainboard) - - pci:v00001106d00000680* - ID_MODEL_FROM_DATABASE=VT82C680 [Apollo P6] -@@ -29364,49 +29364,49 @@ pci:v00001106d00000686* - ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] - - pci:v00001106d00000686sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (P6VXA Motherboard) - - pci:v00001106d00000686sv0000103Csd00001256* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00001106d00000686sv00001043sd0000802C* -- ID_MODEL_FROM_DATABASE=CUV4X mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (CUV4X mainboard) - - pci:v00001106d00000686sv00001043sd00008033* -- ID_MODEL_FROM_DATABASE=A7V Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V Mainboard) - - pci:v00001106d00000686sv00001043sd0000803E* -- ID_MODEL_FROM_DATABASE=A7V-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V-E Mainboard) - - pci:v00001106d00000686sv00001043sd00008040* -- ID_MODEL_FROM_DATABASE=A7M266 Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7M266 Mainboard) - - pci:v00001106d00000686sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V133/A7V133-C Mainboard) - - pci:v00001106d00000686sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) - - pci:v00001106d00000686sv00001106sd00000686* -- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) - - pci:v00001106d00000686sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (Magnia Z310) - - pci:v00001106d00000686sv0000147Bsd0000A702* -- ID_MODEL_FROM_DATABASE=KG7-Lite Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (KG7-Lite Mainboard) - - pci:v00001106d00000691* - ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] - - pci:v00001106d00000691sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (P6VXA Motherboard) - - pci:v00001106d00000691sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (Magnia Z310) - - pci:v00001106d00000691sv00001458sd00000691* -- ID_MODEL_FROM_DATABASE=VT82C691 Apollo Pro System Controller -+ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (VT82C691 Apollo Pro System Controller) - - pci:v00001106d00000693* - ID_MODEL_FROM_DATABASE=VT82C693 [Apollo Pro Plus] -@@ -29586,61 +29586,61 @@ pci:v00001106d00003038* - ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller - - pci:v00001106d00003038sv00000925sd00001234* -- ID_MODEL_FROM_DATABASE=VA-502 Mainboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VA-502 Mainboard) - - pci:v00001106d00003038sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (P6VXA Motherboard) - - pci:v00001106d00003038sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003038sv00001043sd00008080* -- ID_MODEL_FROM_DATABASE=A7V333 motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V333 motherboard) - - pci:v00001106d00003038sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=VT6202 USB2.0 4 port controller -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VT6202 USB2.0 4 port controller) - - pci:v00001106d00003038sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V8X-X motherboard) - - pci:v00001106d00003038sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003038sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (Magnia Z310) - - pci:v00001106d00003038sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (GA-7VAX Mainboard) - - pci:v00001106d00003038sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003038sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T NEO 2 motherboard) - - pci:v00001106d00003038sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T Neo2-F V2.0) - - pci:v00001106d00003038sv00001462sd00007120* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT4AV motherboard) - - pci:v00001106d00003038sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8MM3-V mainboard) - - pci:v00001106d00003038sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KV8-MAX3 motherboard) - - pci:v00001106d00003038sv0000182Dsd0000201D* -- ID_MODEL_FROM_DATABASE=CN-029 USB2.0 4 port PCI Card -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (CN-029 USB2.0 4 port PCI Card) - - pci:v00001106d00003038sv00001849sd00003038* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K7VT series Motherboards) - - pci:v00001106d00003038sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (ZBOX nano VD01) - - pci:v00001106d00003038sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (QEMU Virtual Machine) - - pci:v00001106d00003040* - ID_MODEL_FROM_DATABASE=VT82C586B ACPI -@@ -29649,52 +29649,52 @@ pci:v00001106d00003043* - ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] - - pci:v00001106d00003043sv000010BDsd00000000* -- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) - - pci:v00001106d00003043sv00001106sd00000100* -- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) - - pci:v00001106d00003043sv00001186sd00001400* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev A -+ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (DFE-530TX rev A) - - pci:v00001106d00003044* - ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller - - pci:v00001106d00003044sv00000010sd00000001* -- ID_MODEL_FROM_DATABASE=IEEE 1394 4port DCST 1394-3+1B -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (IEEE 1394 4port DCST 1394-3+1B) - - pci:v00001106d00003044sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (TravelMate 290) - - pci:v00001106d00003044sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Pavilion t3030.de Desktop PC) - - pci:v00001106d00003044sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Media Center PC m7590n -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Media Center PC m7590n) - - pci:v00001106d00003044sv00001043sd0000808A* -- ID_MODEL_FROM_DATABASE=A8V/A8N/P4P800 series motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (A8V/A8N/P4P800 series motherboard) - - pci:v00001106d00003044sv00001043sd000081FE* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Motherboard) - - pci:v00001106d00003044sv00001458sd00001000* -- ID_MODEL_FROM_DATABASE=GA-7VT600-1394 Motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (GA-7VT600-1394 Motherboard) - - pci:v00001106d00003044sv00001462sd0000207D* -- ID_MODEL_FROM_DATABASE=K8NGM2 series motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8NGM2 series motherboard) - - pci:v00001106d00003044sv00001462sd0000217D* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Aspire L250) - - pci:v00001106d00003044sv00001462sd0000590D* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003044sv00001462sd0000702D* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8T NEO 2 motherboard) - - pci:v00001106d00003044sv00001462sd0000971D* -- ID_MODEL_FROM_DATABASE=MS-6917 -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (MS-6917) - - pci:v00001106d00003050* - ID_MODEL_FROM_DATABASE=VT82C596 Power Management -@@ -29709,205 +29709,205 @@ pci:v00001106d00003057* - ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] - - pci:v00001106d00003057sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (P6VXA Motherboard) - - pci:v00001106d00003057sv00001019sd00000987* -- ID_MODEL_FROM_DATABASE=K7VZA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (K7VZA Motherboard) - - pci:v00001106d00003057sv00001043sd00008033* -- ID_MODEL_FROM_DATABASE=A7V Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V Mainboard) - - pci:v00001106d00003057sv00001043sd0000803E* -- ID_MODEL_FROM_DATABASE=A7V-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V-E Mainboard) - - pci:v00001106d00003057sv00001043sd00008040* -- ID_MODEL_FROM_DATABASE=A7M266 Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7M266 Mainboard) - - pci:v00001106d00003057sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V133/A7V133-C Mainboard) - - pci:v00001106d00003057sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (Magnia Z310) - - pci:v00001106d00003058* - ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller - - pci:v00001106d00003058sv00000E11sd00000097* -- ID_MODEL_FROM_DATABASE=SoundMax Digital Integrated Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (SoundMax Digital Integrated Audio) - - pci:v00001106d00003058sv00000E11sd0000B194* -- ID_MODEL_FROM_DATABASE=Soundmax integrated digital audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Soundmax integrated digital audio) - - pci:v00001106d00003058sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (P6VXA Motherboard) - - pci:v00001106d00003058sv00001019sd00000987* -- ID_MODEL_FROM_DATABASE=K7VZA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (K7VZA Motherboard) - - pci:v00001106d00003058sv0000103Csd00001251* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00001106d00003058sv00001043sd00001106* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (A7V133/A7V133-C Mainboard) - - pci:v00001106d00003058sv00001106sd00004511* -- ID_MODEL_FROM_DATABASE=Onboard Audio on EP7KXA -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio on EP7KXA) - - pci:v00001106d00003058sv00001106sd0000AA03* -- ID_MODEL_FROM_DATABASE=VT1612A AC'97 Audio Controller -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (VT1612A AC'97 Audio Controller) - - pci:v00001106d00003058sv000011D4sd00005348* -- ID_MODEL_FROM_DATABASE=AD1881A audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (AD1881A audio) - - pci:v00001106d00003058sv00001458sd00007600* -- ID_MODEL_FROM_DATABASE=Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) - - pci:v00001106d00003058sv00001462sd00003091* -- ID_MODEL_FROM_DATABASE=MS-6309 Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 Onboard Audio) - - pci:v00001106d00003058sv00001462sd00003092* -- ID_MODEL_FROM_DATABASE=MS-6309 v2.x Mainboard (VIA VT1611A codec) -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 v2.x Mainboard (VIA VT1611A codec)) - - pci:v00001106d00003058sv00001462sd00003300* -- ID_MODEL_FROM_DATABASE=MS-6330 Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6330 Onboard Audio) - - pci:v00001106d00003058sv000015DDsd00007609* -- ID_MODEL_FROM_DATABASE=Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) - - pci:v00001106d00003059* - ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller - - pci:v00001106d00003059sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003059sv00001019sd00001877* -- ID_MODEL_FROM_DATABASE=K8M800-M2 (V2.0) onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8M800-M2 (V2.0) onboard audio) - - pci:v00001106d00003059sv00001043sd00008095* -- ID_MODEL_FROM_DATABASE=A7V8X Motherboard (Realtek ALC650 codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X Motherboard (Realtek ALC650 codec)) - - pci:v00001106d00003059sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X-X Motherboard) - - pci:v00001106d00003059sv00001043sd000080B0* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX]) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX])) - - pci:v00001106d00003059sv00001043sd0000810D* -- ID_MODEL_FROM_DATABASE=Asus P5VD1-X (AD1888 codec [SoundMax]) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Asus P5VD1-X (AD1888 codec [SoundMax])) - - pci:v00001106d00003059sv00001043sd0000812A* -- ID_MODEL_FROM_DATABASE=A8V Deluxe motherboard (Realtek ALC850 codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A8V Deluxe motherboard (Realtek ALC850 codec)) - - pci:v00001106d00003059sv000010ECsd00008168* -- ID_MODEL_FROM_DATABASE=High Definition Audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (High Definition Audio) - - pci:v00001106d00003059sv00001106sd00003059* -- ID_MODEL_FROM_DATABASE=L7VMM2 Motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VMM2 Motherboard) - - pci:v00001106d00003059sv00001106sd00004161* -- ID_MODEL_FROM_DATABASE=K7VT2 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT2 motherboard) - - pci:v00001106d00003059sv00001106sd00004170* -- ID_MODEL_FROM_DATABASE=PCPartner P4M800-8237R Motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (PCPartner P4M800-8237R Motherboard) - - pci:v00001106d00003059sv00001106sd00004552* -- ID_MODEL_FROM_DATABASE=Soyo KT-600 Dragon Plus (Realtek ALC 650) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Soyo KT-600 Dragon Plus (Realtek ALC 650)) - - pci:v00001106d00003059sv00001297sd0000C160* -- ID_MODEL_FROM_DATABASE=FX41 motherboard (Realtek ALC650 codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (FX41 motherboard (Realtek ALC650 codec)) - - pci:v00001106d00003059sv00001413sd0000147B* -- ID_MODEL_FROM_DATABASE=KV8 Pro motherboard onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8 Pro motherboard onboard audio) - - pci:v00001106d00003059sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-7VAX Onboard Audio (Realtek ALC650) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (GA-7VAX Onboard Audio (Realtek ALC650)) - - pci:v00001106d00003059sv00001462sd00000080* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8T NEO 2 motherboard) - - pci:v00001106d00003059sv00001462sd00003800* -- ID_MODEL_FROM_DATABASE=KT266 onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT266 onboard audio) - - pci:v00001106d00003059sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003059sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8MM3-V mainboard) - - pci:v00001106d00003059sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8-MAX3 motherboard) - - pci:v00001106d00003059sv00001695sd0000300C* -- ID_MODEL_FROM_DATABASE=EP-8KRA2+ Mainboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (EP-8KRA2+ Mainboard) - - pci:v00001106d00003059sv00001849sd00000850* -- ID_MODEL_FROM_DATABASE=ASRock 775Dual-880 Pro onboard audio (Realtek ALC850) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (ASRock 775Dual-880 Pro onboard audio (Realtek ALC850)) - - pci:v00001106d00003059sv00001849sd00009739* -- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard (C-Media CMI9739A codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (P4VT8 Mainboard (C-Media CMI9739A codec)) - - pci:v00001106d00003059sv00001849sd00009761* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT series Motherboards) - - pci:v00001106d00003059sv00004005sd00004710* -- ID_MODEL_FROM_DATABASE=MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P)) - - pci:v00001106d00003059sv0000A0A0sd000001B6* -- ID_MODEL_FROM_DATABASE=AK77-8XN onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK77-8XN onboard audio) - - pci:v00001106d00003059sv0000A0A0sd00000342* -- ID_MODEL_FROM_DATABASE=AK86-L motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK86-L motherboard) - - pci:v00001106d00003065* - ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] - - pci:v00001106d00003065sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V8X-X Motherboard) - - pci:v00001106d00003065sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600-X Motherboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V600-X Motherboard) - - pci:v00001106d00003065sv00001106sd00000102* -- ID_MODEL_FROM_DATABASE=VT6102 [Rhine II] Embeded Ethernet Controller on VT8235 -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6102 [Rhine II] Embeded Ethernet Controller on VT8235) - - pci:v00001106d00003065sv00001186sd00001400* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev A -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev A) - - pci:v00001106d00003065sv00001186sd00001401* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev B -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev B) - - pci:v00001106d00003065sv000013B9sd00001421* -- ID_MODEL_FROM_DATABASE=LD-10/100AL PCI Fast Ethernet Adapter (rev.B) -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (LD-10/100AL PCI Fast Ethernet Adapter (rev.B)) - - pci:v00001106d00003065sv00001462sd00007061* -- ID_MODEL_FROM_DATABASE=MS-7061 -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (MS-7061) - - pci:v00001106d00003065sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K8MM3-V mainboard) - - pci:v00001106d00003065sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (NV7 Motherboard) - - pci:v00001106d00003065sv00001695sd00003005* -- ID_MODEL_FROM_DATABASE=VT6103 -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6103) - - pci:v00001106d00003065sv00001695sd0000300C* -- ID_MODEL_FROM_DATABASE=Realtek ALC655 sound chip -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (Realtek ALC655 sound chip) - - pci:v00001106d00003065sv00001849sd00003065* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K7VT series Motherboards) - - pci:v00001106d00003068* - ID_MODEL_FROM_DATABASE=AC'97 Modem Controller - - pci:v00001106d00003068sv00001462sd0000309E* -- ID_MODEL_FROM_DATABASE=MS-6309 Saturn Motherboard -+ ID_MODEL_FROM_DATABASE=AC'97 Modem Controller (MS-6309 Saturn Motherboard) - - pci:v00001106d00003074* - ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge - - pci:v00001106d00003074sv00001043sd00008052* -- ID_MODEL_FROM_DATABASE=VT8233A -+ ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge (VT8233A) - - pci:v00001106d00003091* - ID_MODEL_FROM_DATABASE=VT8633 [Apollo Pro266] -@@ -29916,13 +29916,13 @@ pci:v00001106d00003099* - ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] - - pci:v00001106d00003099sv00001043sd00008064* -- ID_MODEL_FROM_DATABASE=A7V266-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V266-E Mainboard) - - pci:v00001106d00003099sv00001043sd0000807F* -- ID_MODEL_FROM_DATABASE=A7V333 Mainboard -+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V333 Mainboard) - - pci:v00001106d00003099sv00001849sd00003099* -- ID_MODEL_FROM_DATABASE=K7VT2 motherboard -+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (K7VT2 motherboard) - - pci:v00001106d00003101* - ID_MODEL_FROM_DATABASE=VT8653 Host Bridge -@@ -29937,70 +29937,70 @@ pci:v00001106d00003104* - ID_MODEL_FROM_DATABASE=USB 2.0 - - pci:v00001106d00003104sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=USB 2.0 (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003104sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X motherboard) - - pci:v00001106d00003104sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev 1.01 -+ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X-X motherboard rev 1.01) - - pci:v00001106d00003104sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003104sv00001106sd00003104* -- ID_MODEL_FROM_DATABASE=USB 2.0 Controller -+ ID_MODEL_FROM_DATABASE=USB 2.0 (Controller) - - pci:v00001106d00003104sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (FX41 motherboard) - - pci:v00001106d00003104sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (GA-7VAX Mainboard) - - pci:v00001106d00003104sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=USB 2.0 (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003104sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T NEO 2 motherboard) - - pci:v00001106d00003104sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T Neo2-F V2.0) - - pci:v00001106d00003104sv00001462sd00007120* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (KT4AV motherboard) - - pci:v00001106d00003104sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K8MM3-V mainboard) - - pci:v00001106d00003104sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (KV8-MAX3 motherboard) - - pci:v00001106d00003104sv0000182Dsd0000201D* -- ID_MODEL_FROM_DATABASE=CN-029 USB 2.0 4 port PCI Card -+ ID_MODEL_FROM_DATABASE=USB 2.0 (CN-029 USB 2.0 4 port PCI Card) - - pci:v00001106d00003104sv00001849sd00003104* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K7VT series Motherboards) - - pci:v00001106d00003104sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=USB 2.0 (ZBOX nano VD01) - - pci:v00001106d00003106* - ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] - - pci:v00001106d00003106sv00001106sd00000105* -- ID_MODEL_FROM_DATABASE=VT6106S [Rhine-III] -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (VT6106S [Rhine-III]) - - pci:v00001106d00003106sv00001186sd00001403* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev C -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX rev C) - - pci:v00001106d00003106sv00001186sd00001405* -- ID_MODEL_FROM_DATABASE=DFE-520TX Fast Ethernet PCI Adapter -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-520TX Fast Ethernet PCI Adapter) - - pci:v00001106d00003106sv00001186sd00001406* -- ID_MODEL_FROM_DATABASE=DFE-530TX+ rev F2 -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX+ rev F2) - - pci:v00001106d00003106sv00001186sd00001407* -- ID_MODEL_FROM_DATABASE=DFE-538TX -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-538TX) - - pci:v00001106d00003108* - ID_MODEL_FROM_DATABASE=K8M800/K8N800/K8N800A [S3 UniChrome Pro] -@@ -30018,7 +30018,7 @@ pci:v00001106d00003116* - ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge - - pci:v00001106d00003116sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge (FX41 motherboard) - - pci:v00001106d00003118* - ID_MODEL_FROM_DATABASE=CN400/PM800/PM880/PN800/PN880 [S3 UniChrome Pro] -@@ -30045,7 +30045,7 @@ pci:v00001106d00003147* - ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge - - pci:v00001106d00003147sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V333 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge (A7V333 motherboard) - - pci:v00001106d00003148* - ID_MODEL_FROM_DATABASE=P4M266 Host Bridge -@@ -30054,34 +30054,34 @@ pci:v00001106d00003149* - ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller - - pci:v00001106d00003149sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003149sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-7VM400AM(F) Motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (GA-7VM400AM(F) Motherboard) - - pci:v00001106d00003149sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003149sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T Neo 2 Motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo 2 Motherboard) - - pci:v00001106d00003149sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo2-F V2.0) - - pci:v00001106d00003149sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8MM3-V mainboard) - - pci:v00001106d00003149sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV8-MAX3 motherboard) - - pci:v00001106d00003149sv0000147Bsd00001408* -- ID_MODEL_FROM_DATABASE=KV7 -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV7) - - pci:v00001106d00003149sv00001849sd00003149* -- ID_MODEL_FROM_DATABASE=K7VT6 motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K7VT6 motherboard) - - pci:v00001106d00003149sv0000A0A0sd000004AD* -- ID_MODEL_FROM_DATABASE=AK86-L motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (AK86-L motherboard) - - pci:v00001106d00003156* - ID_MODEL_FROM_DATABASE=P/KN266 Host Bridge -@@ -30093,40 +30093,40 @@ pci:v00001106d00003164* - ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller - - pci:v00001106d00003164sv00001043sd000080F4* -- ID_MODEL_FROM_DATABASE=P4P800 Mainboard Deluxe ATX -+ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (P4P800 Mainboard Deluxe ATX) - - pci:v00001106d00003164sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (915P/G Neo2) - - pci:v00001106d00003168* - ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge - - pci:v00001106d00003168sv00001849sd00003168* -- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard -+ ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge (P4VT8 Mainboard) - - pci:v00001106d00003177* - ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge - - pci:v00001106d00003177sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003177sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X motherboard) - - pci:v00001106d00003177sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X-X motherboard) - - pci:v00001106d00003177sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (KT4AV motherboard) - - pci:v00001106d00003177sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (FX41 motherboard) - - pci:v00001106d00003177sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (GA-7VAX Mainboard) - - pci:v00001106d00003177sv00001849sd00003177* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (K7VT series Motherboards) - - pci:v00001106d00003178* - ID_MODEL_FROM_DATABASE=ProSavageDDR P4N333 Host Bridge -@@ -30135,25 +30135,25 @@ pci:v00001106d00003188* - ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge - - pci:v00001106d00003188sv00001043sd000080A3* -- ID_MODEL_FROM_DATABASE=K8V Deluxe/K8V-X motherboard -+ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (K8V Deluxe/K8V-X motherboard) - - pci:v00001106d00003188sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (KV8-MAX3 motherboard) - - pci:v00001106d00003189* - ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge - - pci:v00001106d00003189sv00001043sd0000807F* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (A7V8X motherboard) - - pci:v00001106d00003189sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard (KT400A) -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (KT4AV motherboard (KT400A)) - - pci:v00001106d00003189sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (GA-7VAX Mainboard) - - pci:v00001106d00003189sv00001849sd00003189* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (K7VT series Motherboards) - - pci:v00001106d00003204* - ID_MODEL_FROM_DATABASE=K8M800 Host Bridge -@@ -30162,7 +30162,7 @@ pci:v00001106d00003205* - ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge - - pci:v00001106d00003205sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-7VM400M Motherboard -+ ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge (GA-7VM400M Motherboard) - - pci:v00001106d00003208* - ID_MODEL_FROM_DATABASE=PT890 Host Bridge -@@ -30177,19 +30177,19 @@ pci:v00001106d00003227* - ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] - - pci:v00001106d00003227sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003227sv00001106sd00003227* -- ID_MODEL_FROM_DATABASE=DFI KT600-AL / Soltek SL-B9D-FGR Motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (DFI KT600-AL / Soltek SL-B9D-FGR Motherboard) - - pci:v00001106d00003227sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-7VT600 Motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (GA-7VT600 Motherboard) - - pci:v00001106d00003227sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (KV8-MAX3 motherboard) - - pci:v00001106d00003227sv00001849sd00003227* -- ID_MODEL_FROM_DATABASE=K7VT4 motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (K7VT4 motherboard) - - pci:v00001106d00003230* - ID_MODEL_FROM_DATABASE=K8M890CE/K8N890CE [Chrome 9] -@@ -30237,7 +30237,7 @@ pci:v00001106d00003288* - ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller - - pci:v00001106d00003288sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX VD01 -+ ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller (ZBOX VD01) - - pci:v00001106d00003290* - ID_MODEL_FROM_DATABASE=K8M890 Host Bridge -@@ -30294,10 +30294,10 @@ pci:v00001106d00003403* - ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller - - pci:v00001106d00003403sv00001043sd00008374* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (M5A88-V EVO) - - pci:v00001106d00003403sv00001043sd00008384* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (P8P67 Deluxe Motherboard) - - pci:v00001106d00003409* - ID_MODEL_FROM_DATABASE=VX855/VX875 DRAM Bus Control -@@ -30306,7 +30306,7 @@ pci:v00001106d00003410* - ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control - - pci:v00001106d00003410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control (ZBOX nano VD01) - - pci:v00001106d00003432* - ID_MODEL_FROM_DATABASE=VL80x xHCI USB 3.0 Controller -@@ -30378,7 +30378,7 @@ pci:v00001106d00004410* - ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control - - pci:v00001106d00004410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control (ZBOX nano VD01) - - pci:v00001106d00005030* - ID_MODEL_FROM_DATABASE=VT82C596 ACPI [Apollo PRO] -@@ -30456,7 +30456,7 @@ pci:v00001106d00006410* - ID_MODEL_FROM_DATABASE=VX900 Scratch Registers - - pci:v00001106d00006410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 Scratch Registers (ZBOX nano VD01) - - pci:v00001106d00007122* - ID_MODEL_FROM_DATABASE=VX900 Graphics [Chrome9 HD] -@@ -30468,10 +30468,10 @@ pci:v00001106d00007205* - ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] - - pci:v00001106d00007205sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=Gigabyte GA-7VM400(A)M(F) Motherboard -+ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (Gigabyte GA-7VM400(A)M(F) Motherboard) - - pci:v00001106d00007205sv00001462sd00007061* -- ID_MODEL_FROM_DATABASE=MS-7061 -+ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (MS-7061) - - pci:v00001106d00007208* - ID_MODEL_FROM_DATABASE=PT890 Host Bridge -@@ -30534,7 +30534,7 @@ pci:v00001106d00007410* - ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control - - pci:v00001106d00007410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control (ZBOX nano VD01) - - pci:v00001106d00008231* - ID_MODEL_FROM_DATABASE=VT8231 [PCI-to-ISA Bridge] -@@ -30564,7 +30564,7 @@ pci:v00001106d00008410* - ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management - - pci:v00001106d00008410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX VD01 -+ ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management (ZBOX VD01) - - pci:v00001106d00008500* - ID_MODEL_FROM_DATABASE=KLE133/PLE133/PLE133T -@@ -30582,7 +30582,7 @@ pci:v00001106d00008598* - ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] - - pci:v00001106d00008598sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] (P6VXA Motherboard) - - pci:v00001106d00008601* - ID_MODEL_FROM_DATABASE=VT8601 [Apollo ProMedia AGP] -@@ -30669,7 +30669,7 @@ pci:v00001106d0000B188* - ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] - - pci:v00001106d0000B188sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] (KV8-MAX3 motherboard) - - pci:v00001106d0000B198* - ID_MODEL_FROM_DATABASE=VT8237/VX700 PCI Bridge -@@ -30846,7 +30846,7 @@ pci:v0000110Ad00004029sv0000110Asd00004029* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 - - pci:v0000110Ad00004029sv0000110Asd0000C029* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 (SIMATIC NET CP 5614 A2) - - pci:v0000110Ad00004035* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 -@@ -30864,7 +30864,7 @@ pci:v0000110Ad00004069sv0000110Asd00004069* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 - - pci:v0000110Ad00004069sv0000110Asd0000C069* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 (SIMATIC NET CP 5624) - - pci:v0000110Ad0000407C* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 -@@ -30942,25 +30942,25 @@ pci:v00001113d00001211* - ID_MODEL_FROM_DATABASE=SMC2-1211TX - - pci:v00001113d00001211sv0000103Csd00001207* -- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) - - pci:v00001113d00001211sv00001113sd00001211* -- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) - - pci:v00001113d00001216* - ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter - - pci:v00001113d00001216sv00001113sd00001216* -- ID_MODEL_FROM_DATABASE=EN1207F series PCI Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN1207F series PCI Fast Ethernet Adapter) - - pci:v00001113d00001216sv00001113sd00002220* -- ID_MODEL_FROM_DATABASE=EN2220A Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2220A Cardbus Fast Ethernet Adapter) - - pci:v00001113d00001216sv00001113sd00002242* -- ID_MODEL_FROM_DATABASE=EN2242 10/100 Ethernet Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2242 10/100 Ethernet Mini-PCI Card) - - pci:v00001113d00001216sv0000111Asd00001020* -- ID_MODEL_FROM_DATABASE=SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?] -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?]) - - pci:v00001113d00001217* - ID_MODEL_FROM_DATABASE=EN-1217 Ethernet Adapter -@@ -31272,37 +31272,37 @@ pci:v0000111Ad00000003* - ID_MODEL_FROM_DATABASE=ENI-25P ATM - - pci:v0000111Ad00000003sv0000111Asd00000000* -- ID_MODEL_FROM_DATABASE=ENI-25p Miniport ATM Adapter -+ ID_MODEL_FROM_DATABASE=ENI-25P ATM (ENI-25p Miniport ATM Adapter) - - pci:v0000111Ad00000005* - ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) - - pci:v0000111Ad00000005sv0000111Asd00000001* -- ID_MODEL_FROM_DATABASE=ENI-3010 ATM -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) - - pci:v0000111Ad00000005sv0000111Asd00000009* -- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0)) - - pci:v0000111Ad00000005sv0000111Asd00000101* -- ID_MODEL_FROM_DATABASE=ENI-3010 ATM -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) - - pci:v0000111Ad00000005sv0000111Asd00000109* -- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0)) - - pci:v0000111Ad00000005sv0000111Asd00000809* -- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0 or 8) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0 or 8)) - - pci:v0000111Ad00000005sv0000111Asd00000909* -- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0 or 8) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0 or 8)) - - pci:v0000111Ad00000005sv0000111Asd00000A09* -- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=<0..15>) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=<0..15>)) - - pci:v0000111Ad00000007* - ID_MODEL_FROM_DATABASE=SpeedStream ADSL - - pci:v0000111Ad00000007sv0000111Asd00001001* -- ID_MODEL_FROM_DATABASE=ENI-3061 ADSL [ASIC] -+ ID_MODEL_FROM_DATABASE=SpeedStream ADSL (ENI-3061 ADSL [ASIC]) - - pci:v0000111Ad00001020* - ID_MODEL_FROM_DATABASE=SpeedStream PCI 10/100 Network Card -@@ -31446,7 +31446,7 @@ pci:v0000111Dd0000806A* - ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch - - pci:v0000111Dd0000806Asv000014C1sd0000000C* -- ID_MODEL_FROM_DATABASE=10G-PCIE2-8B2 -+ ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch (10G-PCIE2-8B2) - - pci:v0000111Dd0000806C* - ID_MODEL_FROM_DATABASE=PES16T4A/4T4G2 PCI Express Gen2 Switch -@@ -31515,7 +31515,7 @@ pci:v00001127d00000400* - ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter - - pci:v00001127d00000400sv00001127sd00000400* -- ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM -+ ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter (ForeRunnerHE ATM) - - pci:v00001129* - ID_VENDOR_FROM_DATABASE=Firmworks -@@ -31557,13 +31557,13 @@ pci:v00001131d00001561* - ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller - - pci:v00001131d00001561sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K onboard USB 1.1 host controller -+ ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller (C2K onboard USB 1.1 host controller) - - pci:v00001131d00001562* - ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller - - pci:v00001131d00001562sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K onboard USB 2.0 host controller -+ ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller (C2K onboard USB 2.0 host controller) - - pci:v00001131d00003400* - ID_MODEL_FROM_DATABASE=SmartPCI56(UCB1500) 56K Modem -@@ -31572,49 +31572,49 @@ pci:v00001131d00005400* - ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 - - pci:v00001131d00005400sv000012CAsd00000000* -- ID_MODEL_FROM_DATABASE=BlueICE -+ ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 (BlueICE) - - pci:v00001131d00005402* - ID_MODEL_FROM_DATABASE=TriMedia TM1300 - - pci:v00001131d00005402sv00001244sd00000F00* -- ID_MODEL_FROM_DATABASE=Fritz!Card DSL -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (Fritz!Card DSL) - - pci:v00001131d00005402sv000015EBsd00001300* -- ID_MODEL_FROM_DATABASE=DT1300 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1300) - - pci:v00001131d00005402sv000015EBsd00001302* -- ID_MODEL_FROM_DATABASE=DT1302 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1302) - - pci:v00001131d00005402sv000015EBsd00001304* -- ID_MODEL_FROM_DATABASE=DT1304 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1304) - - pci:v00001131d00005402sv000015EBsd00001305* -- ID_MODEL_FROM_DATABASE=DT1305 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1305) - - pci:v00001131d00005402sv000015EBsd00001306* -- ID_MODEL_FROM_DATABASE=PMCDT1306 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PMCDT1306) - - pci:v00001131d00005402sv000015EBsd00001308* -- ID_MODEL_FROM_DATABASE=DT1308 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1308) - - pci:v00001131d00005402sv000015EBsd00001331* -- ID_MODEL_FROM_DATABASE=DT1301 with SAA7121 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7121) - - pci:v00001131d00005402sv000015EBsd00001337* -- ID_MODEL_FROM_DATABASE=DT1301 with SAA7127 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7127) - - pci:v00001131d00005402sv000015EBsd00002D3D* -- ID_MODEL_FROM_DATABASE=X3D -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (X3D) - - pci:v00001131d00005402sv000015EBsd00007022* -- ID_MODEL_FROM_DATABASE=PTM1300 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PTM1300) - - pci:v00001131d00005405* - ID_MODEL_FROM_DATABASE=TriMedia TM1500 - - pci:v00001131d00005405sv00001136sd00000005* -- ID_MODEL_FROM_DATABASE=LCP-1500 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1500 (LCP-1500) - - pci:v00001131d00005406* - ID_MODEL_FROM_DATABASE=TriMedia TM1700 -@@ -31623,409 +31623,409 @@ pci:v00001131d0000540B* - ID_MODEL_FROM_DATABASE=PNX1005 Media Processor - - pci:v00001131d0000540Bsv00001131sd00000020* -- ID_MODEL_FROM_DATABASE=PNXLite PCI Demo Board -+ ID_MODEL_FROM_DATABASE=PNX1005 Media Processor (PNXLite PCI Demo Board) - - pci:v00001131d00007130* - ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder - - pci:v00001131d00007130sv00000000sd00004016* -- ID_MODEL_FROM_DATABASE=Behold TV 401 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 401) - - pci:v00001131d00007130sv00000000sd00004051* -- ID_MODEL_FROM_DATABASE=Behold TV 405 FM -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 405 FM) - - pci:v00001131d00007130sv00000000sd00005051* -- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) - - pci:v00001131d00007130sv00000000sd0000505B* -- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) - - pci:v00001131d00007130sv0000102Bsd000048D0* -- ID_MODEL_FROM_DATABASE=Matrox CronosPlus -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Matrox CronosPlus) - - pci:v00001131d00007130sv00001048sd0000226B* -- ID_MODEL_FROM_DATABASE=ELSA EX-VISION 300TV -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (ELSA EX-VISION 300TV) - - pci:v00001131d00007130sv0000107Dsd00006655* -- ID_MODEL_FROM_DATABASE=WinFast DTV1000S -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (WinFast DTV1000S) - - pci:v00001131d00007130sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=SAA7130-based TV tuner card -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (SAA7130-based TV tuner card) - - pci:v00001131d00007130sv00001131sd00002001* -- ID_MODEL_FROM_DATABASE=10MOONS PCI TV CAPTURE CARD -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (10MOONS PCI TV CAPTURE CARD) - - pci:v00001131d00007130sv00001131sd00002005* -- ID_MODEL_FROM_DATABASE=Techcom (India) TV Tuner Card (SSD-TV-670) -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Techcom (India) TV Tuner Card (SSD-TV-670)) - - pci:v00001131d00007130sv00001458sd00009006* -- ID_MODEL_FROM_DATABASE=GT-PS700 DVB-S tuner -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (GT-PS700 DVB-S tuner) - - pci:v00001131d00007130sv00001461sd0000050C* -- ID_MODEL_FROM_DATABASE=Nagase Sangyo TransGear 3000TV -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Nagase Sangyo TransGear 3000TV) - - pci:v00001131d00007130sv00001461sd000010FF* -- ID_MODEL_FROM_DATABASE=AVerMedia DVD EZMaker -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AVerMedia DVD EZMaker) - - pci:v00001131d00007130sv00001461sd00002108* -- ID_MODEL_FROM_DATABASE=AverMedia AverTV/305 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV/305) - - pci:v00001131d00007130sv00001461sd00002115* -- ID_MODEL_FROM_DATABASE=AverMedia AverTV Studio 305 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV Studio 305) - - pci:v00001131d00007130sv0000153Bsd00001152* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 200 TV -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Terratec Cinergy 200 TV) - - pci:v00001131d00007130sv0000185Bsd0000C100* -- ID_MODEL_FROM_DATABASE=Compro VideoMate TV PVR/FM -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Compro VideoMate TV PVR/FM) - - pci:v00001131d00007130sv0000185Bsd0000C901* -- ID_MODEL_FROM_DATABASE=Videomate DVB-T200 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Videomate DVB-T200) - - pci:v00001131d00007130sv00005168sd00000138* -- ID_MODEL_FROM_DATABASE=LifeView FlyVIDEO2000 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (LifeView FlyVIDEO2000) - - pci:v00001131d00007130sv00005ACEsd00005010* -- ID_MODEL_FROM_DATABASE=Behold TV 501 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 501) - - pci:v00001131d00007130sv00005ACEsd00005050* -- ID_MODEL_FROM_DATABASE=Behold TV 505 FM -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 FM) - - pci:v00001131d00007133* - ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder - - pci:v00001131d00007133sv00000000sd00004091* -- ID_MODEL_FROM_DATABASE=Beholder BeholdTV 409 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Beholder BeholdTV 409 FM) - - pci:v00001131d00007133sv00000000sd00005071* -- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) - - pci:v00001131d00007133sv00000000sd0000507B* -- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) - - pci:v00001131d00007133sv00000000sd00005201* -- ID_MODEL_FROM_DATABASE=Behold TV Columbus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV Columbus) - - pci:v00001131d00007133sv00000070sd00006701* -- ID_MODEL_FROM_DATABASE=WinTV HVR-1110 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (WinTV HVR-1110) - - pci:v00001131d00007133sv00001019sd00004CB5* -- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)) - - pci:v00001131d00007133sv00001043sd00000210* -- ID_MODEL_FROM_DATABASE=FlyTV mini Asus Digimatrix -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (FlyTV mini Asus Digimatrix) - - pci:v00001131d00007133sv00001043sd00004843* -- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7133 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ASUS TV-FM 7133) - - pci:v00001131d00007133sv00001043sd00004845* -- ID_MODEL_FROM_DATABASE=TV-FM 7135 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV-FM 7135) - - pci:v00001131d00007133sv00001043sd00004862* -- ID_MODEL_FROM_DATABASE=P7131 Dual -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (P7131 Dual) - - pci:v00001131d00007133sv00001043sd00004876* -- ID_MODEL_FROM_DATABASE=My Cinema-P7131 Hybrid -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (My Cinema-P7131 Hybrid) - - pci:v00001131d00007133sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (SAA713x-based TV tuner card) - - pci:v00001131d00007133sv00001131sd00002001* -- ID_MODEL_FROM_DATABASE=Proteus Pro [philips reference design] -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Proteus Pro [philips reference design]) - - pci:v00001131d00007133sv00001131sd00002018* -- ID_MODEL_FROM_DATABASE=Tiger reference design -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Tiger reference design) - - pci:v00001131d00007133sv00001131sd00004EE9* -- ID_MODEL_FROM_DATABASE=MonsterTV Mobile -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (MonsterTV Mobile) - - pci:v00001131d00007133sv00001131sd00007133* -- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 301i -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Pinnacle PCTV 301i) - - pci:v00001131d00007133sv000011BDsd0000002B* -- ID_MODEL_FROM_DATABASE=PCTV Stereo -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV Stereo) - - pci:v00001131d00007133sv000011BDsd0000002E* -- ID_MODEL_FROM_DATABASE=PCTV 110i (saa7133) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV 110i (saa7133)) - - pci:v00001131d00007133sv000012ABsd00000800* -- ID_MODEL_FROM_DATABASE=PURPLE TV -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PURPLE TV) - - pci:v00001131d00007133sv000013C2sd00002804* -- ID_MODEL_FROM_DATABASE=Technotrend Budget T-3000 Hybrid -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Technotrend Budget T-3000 Hybrid) - - pci:v00001131d00007133sv00001421sd00000335* -- ID_MODEL_FROM_DATABASE=Instant TV DVB-T Cardbus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV DVB-T Cardbus) - - pci:v00001131d00007133sv00001421sd00001370* -- ID_MODEL_FROM_DATABASE=Instant TV (saa7135) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV (saa7135)) - - pci:v00001131d00007133sv00001435sd00007330* -- ID_MODEL_FROM_DATABASE=VFG7330 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7330) - - pci:v00001131d00007133sv00001435sd00007350* -- ID_MODEL_FROM_DATABASE=VFG7350 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7350) - - pci:v00001131d00007133sv00001458sd00009001* -- ID_MODEL_FROM_DATABASE=GC-PTV-TAF Hybrid TV card -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GC-PTV-TAF Hybrid TV card) - - pci:v00001131d00007133sv00001458sd00009002* -- ID_MODEL_FROM_DATABASE=GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009003* -- ID_MODEL_FROM_DATABASE=GT-PTV-AF-RH Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-AF-RH Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009004* -- ID_MODEL_FROM_DATABASE=GT-P8000 DVB-T/Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P8000 DVB-T/Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009005* -- ID_MODEL_FROM_DATABASE=GT-P6000 Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P6000 Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009008* -- ID_MODEL_FROM_DATABASE=GT-P5100 Analog TV tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P5100 Analog TV tuner) - - pci:v00001131d00007133sv00001461sd00001044* -- ID_MODEL_FROM_DATABASE=AVerTVHD MCE A180 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTVHD MCE A180) - - pci:v00001131d00007133sv00001461sd00004836* -- ID_MODEL_FROM_DATABASE=M10D Hybrid DVBT -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M10D Hybrid DVBT) - - pci:v00001131d00007133sv00001461sd0000861E* -- ID_MODEL_FROM_DATABASE=M105 PAL/SECAM/NTSC/FM Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M105 PAL/SECAM/NTSC/FM Tuner) - - pci:v00001131d00007133sv00001461sd0000A14B* -- ID_MODEL_FROM_DATABASE=AVerTV Studio 509 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTV Studio 509) - - pci:v00001131d00007133sv00001461sd0000A836* -- ID_MODEL_FROM_DATABASE=M115 DVB-T, PAL/SECAM/NTSC Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M115 DVB-T, PAL/SECAM/NTSC Tuner) - - pci:v00001131d00007133sv00001461sd0000F01D* -- ID_MODEL_FROM_DATABASE=DVB-T Super 007 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (DVB-T Super 007) - - pci:v00001131d00007133sv00001461sd0000F31F* -- ID_MODEL_FROM_DATABASE=Avermedia AVerTV GO 007 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Avermedia AVerTV GO 007 FM) - - pci:v00001131d00007133sv00001461sd0000F936* -- ID_MODEL_FROM_DATABASE=Hybrid+FM PCI (rev A16D) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Hybrid+FM PCI (rev A16D)) - - pci:v00001131d00007133sv00001462sd00006231* -- ID_MODEL_FROM_DATABASE=TV@nywhere Plus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV@nywhere Plus) - - pci:v00001131d00007133sv00001489sd00000214* -- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum FM) - - pci:v00001131d00007133sv000014C0sd00001212* -- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum Mini2 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum Mini2) - - pci:v00001131d00007133sv0000153Bsd00001160* -- ID_MODEL_FROM_DATABASE=Cinergy 250 PCI TV -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Cinergy 250 PCI TV) - - pci:v00001131d00007133sv0000153Bsd00001162* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Terratec Cinergy 400 mobile) - - pci:v00001131d00007133sv000017DEsd00007256* -- ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PlusTV All In One PI610 card) - - pci:v00001131d00007133sv000017DEsd00007350* -- ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 110 Digital / Analog HDTV Tuner) - - pci:v00001131d00007133sv000017DEsd00007352* -- ID_MODEL_FROM_DATABASE=ATSC 115 Digital / Analog HDTV Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 115 Digital / Analog HDTV Tuner) - - pci:v00001131d00007133sv0000185Bsd0000C100* -- ID_MODEL_FROM_DATABASE=VideoMate TV -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate TV) - - pci:v00001131d00007133sv0000185Bsd0000C900* -- ID_MODEL_FROM_DATABASE=VideoMate T750 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate T750) - - pci:v00001131d00007133sv00005168sd00000306* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T DUO -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T DUO) - - pci:v00001131d00007133sv00005168sd00000319* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio) - - pci:v00001131d00007133sv00005168sd00000502* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Duo CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Duo CardBus) - - pci:v00001131d00007133sv00005168sd00000520* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio CardBus) - - pci:v00001131d00007133sv00005168sd00001502* -- ID_MODEL_FROM_DATABASE=LifeView FlyTV CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV CardBus) - - pci:v00001131d00007133sv00005168sd00002502* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T CardBus) - - pci:v00001131d00007133sv00005168sd00002520* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-S Duo CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-S Duo CardBus) - - pci:v00001131d00007133sv00005168sd00003502* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Hybrid CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Hybrid CardBus) - - pci:v00001131d00007133sv00005168sd00003520* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio N CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio N CardBus) - - pci:v00001131d00007133sv00005ACEsd00005030* -- ID_MODEL_FROM_DATABASE=Behold TV 503 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 503 FM) - - pci:v00001131d00007133sv00005ACEsd00005090* -- ID_MODEL_FROM_DATABASE=Behold TV 509 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 509 FM) - - pci:v00001131d00007133sv00005ACEsd00006090* -- ID_MODEL_FROM_DATABASE=Behold TV 609 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) - - pci:v00001131d00007133sv00005ACEsd00006091* -- ID_MODEL_FROM_DATABASE=Behold TV 609 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) - - pci:v00001131d00007133sv00005ACEsd00006092* -- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) - - pci:v00001131d00007133sv00005ACEsd00006093* -- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) - - pci:v00001131d00007133sv00005ACEsd00006190* -- ID_MODEL_FROM_DATABASE=Behold TV M6 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6) - - pci:v00001131d00007133sv00005ACEsd00006191* -- ID_MODEL_FROM_DATABASE=Behold TV M63 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M63) - - pci:v00001131d00007133sv00005ACEsd00006193* -- ID_MODEL_FROM_DATABASE=Behold TV M6 Extra -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6 Extra) - - pci:v00001131d00007133sv00005ACEsd00006290* -- ID_MODEL_FROM_DATABASE=Behold TV H6 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H6) - - pci:v00001131d00007133sv00005ACEsd00007090* -- ID_MODEL_FROM_DATABASE=Behold TV A7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV A7) - - pci:v00001131d00007133sv00005ACEsd00007150* -- ID_MODEL_FROM_DATABASE=Behold TV H75 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) - - pci:v00001131d00007133sv00005ACEsd00007151* -- ID_MODEL_FROM_DATABASE=Behold TV H75 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) - - pci:v00001131d00007133sv00005ACEsd00007190* -- ID_MODEL_FROM_DATABASE=Behold TV H7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) - - pci:v00001131d00007133sv00005ACEsd00007191* -- ID_MODEL_FROM_DATABASE=Behold TV H7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) - - pci:v00001131d00007133sv00005ACEsd00007290* -- ID_MODEL_FROM_DATABASE=Behold TV T7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV T7) - - pci:v00001131d00007133sv00005ACEsd00007591* -- ID_MODEL_FROM_DATABASE=Behold TV X7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) - - pci:v00001131d00007133sv00005ACEsd00007595* -- ID_MODEL_FROM_DATABASE=Behold TV X7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) - - pci:v00001131d00007134* - ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder - - pci:v00001131d00007134sv00000000sd00004036* -- ID_MODEL_FROM_DATABASE=Behold TV 403 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403) - - pci:v00001131d00007134sv00000000sd00004037* -- ID_MODEL_FROM_DATABASE=Behold TV 403 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403 FM) - - pci:v00001131d00007134sv00000000sd00004071* -- ID_MODEL_FROM_DATABASE=Behold TV 407 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 407 FM) - - pci:v00001131d00007134sv00001019sd00004CB4* -- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM)) - - pci:v00001131d00007134sv00001043sd00000210* -- ID_MODEL_FROM_DATABASE=Digimatrix TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Digimatrix TV) - - pci:v00001131d00007134sv00001043sd00004840* -- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7134 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ASUS TV-FM 7134) - - pci:v00001131d00007134sv00001043sd00004842* -- ID_MODEL_FROM_DATABASE=TV-FM 7134 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (TV-FM 7134) - - pci:v00001131d00007134sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SAA713x-based TV tuner card) - - pci:v00001131d00007134sv00001131sd00002004* -- ID_MODEL_FROM_DATABASE=EUROPA V3 reference design -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EUROPA V3 reference design) - - pci:v00001131d00007134sv00001131sd00004E85* -- ID_MODEL_FROM_DATABASE=SKNet Monster TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SKNet Monster TV) - - pci:v00001131d00007134sv00001131sd00006752* -- ID_MODEL_FROM_DATABASE=EMPRESS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EMPRESS) - - pci:v00001131d00007134sv000011BDsd0000002B* -- ID_MODEL_FROM_DATABASE=PCTV Stereo -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV Stereo) - - pci:v00001131d00007134sv000011BDsd0000002D* -- ID_MODEL_FROM_DATABASE=PCTV 300i DVB-T + PAL -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV 300i DVB-T + PAL) - - pci:v00001131d00007134sv00001461sd00002C00* -- ID_MODEL_FROM_DATABASE=AverTV Hybrid+FM PCI -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverTV Hybrid+FM PCI) - - pci:v00001131d00007134sv00001461sd00009715* -- ID_MODEL_FROM_DATABASE=AVerTV Studio 307 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Studio 307) - - pci:v00001131d00007134sv00001461sd0000A70A* -- ID_MODEL_FROM_DATABASE=Avermedia AVerTV 307 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Avermedia AVerTV 307) - - pci:v00001131d00007134sv00001461sd0000A70B* -- ID_MODEL_FROM_DATABASE=AverMedia M156 / Medion 2819 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverMedia M156 / Medion 2819) - - pci:v00001131d00007134sv00001461sd0000D6EE* -- ID_MODEL_FROM_DATABASE=Cardbus TV/Radio (E500) -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Cardbus TV/Radio (E500)) - - pci:v00001131d00007134sv00001471sd0000B7E9* -- ID_MODEL_FROM_DATABASE=AVerTV Cardbus plus -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Cardbus plus) - - pci:v00001131d00007134sv0000153Bsd00001142* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 400 TV) - - pci:v00001131d00007134sv0000153Bsd00001143* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV) - - pci:v00001131d00007134sv0000153Bsd00001158* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV MK3 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV MK3) - - pci:v00001131d00007134sv00001540sd00009524* -- ID_MODEL_FROM_DATABASE=ProVideo PV952 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ProVideo PV952) - - pci:v00001131d00007134sv000016BEsd00000003* -- ID_MODEL_FROM_DATABASE=Medion 7134 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Medion 7134) - - pci:v00001131d00007134sv0000185Bsd0000C200* -- ID_MODEL_FROM_DATABASE=Compro VideoMate Gold+ Pal -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Compro VideoMate Gold+ Pal) - - pci:v00001131d00007134sv0000185Bsd0000C900* -- ID_MODEL_FROM_DATABASE=Videomate DVB-T300 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Videomate DVB-T300) - - pci:v00001131d00007134sv00001894sd0000A006* -- ID_MODEL_FROM_DATABASE=KNC One TV-Station DVR -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station DVR) - - pci:v00001131d00007134sv00001894sd0000FE01* -- ID_MODEL_FROM_DATABASE=KNC One TV-Station RDS / Typhoon TV Tuner RDS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station RDS / Typhoon TV Tuner RDS) - - pci:v00001131d00007134sv00005168sd00000138* -- ID_MODEL_FROM_DATABASE=FLY TV PRIME 34FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FLY TV PRIME 34FM) - - pci:v00001131d00007134sv00005168sd00000300* -- ID_MODEL_FROM_DATABASE=FlyDVB-S -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FlyDVB-S) - - pci:v00001131d00007134sv00005ACEsd00005070* -- ID_MODEL_FROM_DATABASE=Behold TV 507 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 507 FM) - - pci:v00001131d00007134sv00005ACEsd00006070* -- ID_MODEL_FROM_DATABASE=Behold TV 607 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) - - pci:v00001131d00007134sv00005ACEsd00006071* -- ID_MODEL_FROM_DATABASE=Behold TV 607 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) - - pci:v00001131d00007134sv00005ACEsd00006072* -- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) - - pci:v00001131d00007134sv00005ACEsd00006073* -- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) - - pci:v00001131d00007145* - ID_MODEL_FROM_DATABASE=SAA7145 -@@ -32034,223 +32034,223 @@ pci:v00001131d00007146* - ID_MODEL_FROM_DATABASE=SAA7146 - - pci:v00001131d00007146sv0000110Asd00000000* -- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) - - pci:v00001131d00007146sv0000110Asd0000FFFF* -- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) - - pci:v00001131d00007146sv00001124sd00002581* -- ID_MODEL_FROM_DATABASE=Leutron Vision PicPort -+ ID_MODEL_FROM_DATABASE=SAA7146 (Leutron Vision PicPort) - - pci:v00001131d00007146sv00001131sd00004F56* -- ID_MODEL_FROM_DATABASE=KNC1 DVB-S Budget -+ ID_MODEL_FROM_DATABASE=SAA7146 (KNC1 DVB-S Budget) - - pci:v00001131d00007146sv00001131sd00004F60* -- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Activy DVB-S Budget Rev AL -+ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu-Siemens Activy DVB-S Budget Rev AL) - - pci:v00001131d00007146sv00001131sd00004F61* -- ID_MODEL_FROM_DATABASE=Activy DVB-S Budget Rev GR -+ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-S Budget Rev GR) - - pci:v00001131d00007146sv00001131sd00005F61* -- ID_MODEL_FROM_DATABASE=Activy DVB-T Budget -+ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-T Budget) - - pci:v00001131d00007146sv0000114Bsd00002003* -- ID_MODEL_FROM_DATABASE=DVRaptor Video Edit/Capture Card -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVRaptor Video Edit/Capture Card) - - pci:v00001131d00007146sv000011BDsd00000006* -- ID_MODEL_FROM_DATABASE=DV500 Overlay -+ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) - - pci:v00001131d00007146sv000011BDsd0000000A* -- ID_MODEL_FROM_DATABASE=DV500 Overlay -+ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) - - pci:v00001131d00007146sv000011BDsd0000000F* -- ID_MODEL_FROM_DATABASE=DV500 Overlay -+ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) - - pci:v00001131d00007146sv000013C2sd00000000* -- ID_MODEL_FROM_DATABASE=Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5) - - pci:v00001131d00007146sv000013C2sd00000001* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) - - pci:v00001131d00007146sv000013C2sd00000002* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv000013C2sd00000003* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv000013C2sd00000004* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv000013C2sd00000006* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) - - pci:v00001131d00007146sv000013C2sd00000008* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB-T -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB-T) - - pci:v00001131d00007146sv000013C2sd0000000A* -- ID_MODEL_FROM_DATABASE=Octal/Technotrend DVB-C for iTV -+ ID_MODEL_FROM_DATABASE=SAA7146 (Octal/Technotrend DVB-C for iTV) - - pci:v00001131d00007146sv000013C2sd0000000E* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.3 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.3) - - pci:v00001131d00007146sv000013C2sd00001003* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card) - - pci:v00001131d00007146sv000013C2sd00001004* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card) - - pci:v00001131d00007146sv000013C2sd00001005* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) - - pci:v00001131d00007146sv000013C2sd0000100C* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) - - pci:v00001131d00007146sv000013C2sd0000100F* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) - - pci:v00001131d00007146sv000013C2sd00001010* -- ID_MODEL_FROM_DATABASE=DVB C-1500 -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVB C-1500) - - pci:v00001131d00007146sv000013C2sd00001011* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) - - pci:v00001131d00007146sv000013C2sd00001012* -- ID_MODEL_FROM_DATABASE=DVB T-1500 -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVB T-1500) - - pci:v00001131d00007146sv000013C2sd00001013* -- ID_MODEL_FROM_DATABASE=SATELCO Multimedia DVB -+ ID_MODEL_FROM_DATABASE=SAA7146 (SATELCO Multimedia DVB) - - pci:v00001131d00007146sv000013C2sd00001016* -- ID_MODEL_FROM_DATABASE=WinTV-NOVA-SE DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (WinTV-NOVA-SE DVB card) - - pci:v00001131d00007146sv000013C2sd00001018* -- ID_MODEL_FROM_DATABASE=DVB S-1401 -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVB S-1401) - - pci:v00001131d00007146sv000013C2sd00001019* -- ID_MODEL_FROM_DATABASE=S2-3200 -+ ID_MODEL_FROM_DATABASE=SAA7146 (S2-3200) - - pci:v00001131d00007146sv000013C2sd00001102* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv0000153Bsd00001155* -- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-S -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) - - pci:v00001131d00007146sv0000153Bsd00001156* -- ID_MODEL_FROM_DATABASE=Terratec Cynergy 1200C -+ ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) - - pci:v00001131d00007146sv0000153Bsd00001157* -- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-T -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) - - pci:v00001131d00007146sv00001894sd00000020* -- ID_MODEL_FROM_DATABASE=KNC One DVB-C V1.0 -+ ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) - - pci:v00001131d00007146sv00001894sd00000023* -- ID_MODEL_FROM_DATABASE=TVStation DVB-C plus -+ ID_MODEL_FROM_DATABASE=SAA7146 (TVStation DVB-C plus) - - pci:v00001131d00007160* - ID_MODEL_FROM_DATABASE=SAA7160 - - pci:v00001131d00007160sv00001458sd00009009* -- ID_MODEL_FROM_DATABASE=E8000 DVB-T/Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) - - pci:v00001131d00007162* - ID_MODEL_FROM_DATABASE=SAA7162 - - pci:v00001131d00007162sv000011BDsd00000101* -- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 7010iX TV Card -+ ID_MODEL_FROM_DATABASE=SAA7162 (Pinnacle PCTV 7010iX TV Card) - - pci:v00001131d00007164* - ID_MODEL_FROM_DATABASE=SAA7164 - - pci:v00001131d00007164sv00000070sd00008800* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008810* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008851* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008853* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008880* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008891* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd000088A0* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd000088A1* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008900* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008901* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008940* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 (submodel 89619) -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200 (submodel 89619)) - - pci:v00001131d00007164sv00000070sd00008951* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008953* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008980* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008991* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008993* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd000089A0* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd000089A1* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007231* - ID_MODEL_FROM_DATABASE=SAA7231 - - pci:v00001131d00007231sv00005ACEsd00008000* -- ID_MODEL_FROM_DATABASE=Behold TV H8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) - - pci:v00001131d00007231sv00005ACEsd00008001* -- ID_MODEL_FROM_DATABASE=Behold TV H8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) - - pci:v00001131d00007231sv00005ACEsd00008050* -- ID_MODEL_FROM_DATABASE=Behold TV H85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) - - pci:v00001131d00007231sv00005ACEsd00008051* -- ID_MODEL_FROM_DATABASE=Behold TV H85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) - - pci:v00001131d00007231sv00005ACEsd00008100* -- ID_MODEL_FROM_DATABASE=Behold TV A8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) - - pci:v00001131d00007231sv00005ACEsd00008101* -- ID_MODEL_FROM_DATABASE=Behold TV A8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) - - pci:v00001131d00007231sv00005ACEsd00008150* -- ID_MODEL_FROM_DATABASE=Behold TV A85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) - - pci:v00001131d00007231sv00005ACEsd00008151* -- ID_MODEL_FROM_DATABASE=Behold TV A85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) - - pci:v00001131d00007231sv00005ACEsd00008201* -- ID_MODEL_FROM_DATABASE=Behold TV T8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV T8) - - pci:v00001131d00009730* - ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller - - pci:v00001131d00009730sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=Integrated Multimedia and Peripheral Controller -+ ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller (Integrated Multimedia and Peripheral Controller) - - pci:v00001132* - ID_VENDOR_FROM_DATABASE=Mitel Corp. -@@ -32364,7 +32364,7 @@ pci:v00001133d0000E010* - ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI - - pci:v00001133d0000E010sv0000110Asd00000021* -- ID_MODEL_FROM_DATABASE=Fujitsu Siemens ISDN S0 -+ ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI (Fujitsu Siemens ISDN S0) - - pci:v00001133d0000E011* - ID_MODEL_FROM_DATABASE=Diva Server BRI S/T Rev 2 -@@ -32376,10 +32376,10 @@ pci:v00001133d0000E013* - ID_MODEL_FROM_DATABASE=4BRI - - pci:v00001133d0000E013sv00001133sd00001300* -- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCI v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCI v2) - - pci:v00001133d0000E013sv00001133sd0000E013* -- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCI v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCI v2) - - pci:v00001133d0000E014* - ID_MODEL_FROM_DATABASE=Diva Server PRI-30M PCI -@@ -32394,22 +32394,22 @@ pci:v00001133d0000E017* - ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 - - pci:v00001133d0000E017sv00001133sd0000E017* -- ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI-8M 2.0 PCI -+ ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 (Diva Server Voice 4BRI-8M 2.0 PCI) - - pci:v00001133d0000E018* - ID_MODEL_FROM_DATABASE=BRI - - pci:v00001133d0000E018sv00001133sd00001800* -- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCI v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCI v2) - - pci:v00001133d0000E018sv00001133sd0000E018* -- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCI v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCI v2) - - pci:v00001133d0000E019* - ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 - - pci:v00001133d0000E019sv00001133sd0000E019* -- ID_MODEL_FROM_DATABASE=Diva Server Voice PRI 2.0 PCI -+ ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 (Diva Server Voice PRI 2.0 PCI) - - pci:v00001133d0000E01A* - ID_MODEL_FROM_DATABASE=Diva BRI-2FX PCI v2 -@@ -32424,85 +32424,85 @@ pci:v00001133d0000E01C* - ID_MODEL_FROM_DATABASE=PRI - - pci:v00001133d0000E01Csv00001133sd00001C01* -- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-8 PCI v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-8 PCI v3) - - pci:v00001133d0000E01Csv00001133sd00001C02* -- ID_MODEL_FROM_DATABASE=Diva PRI/T1-24 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/T1-24 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C03* -- ID_MODEL_FROM_DATABASE=Diva PRI/E1-30 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1-30 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C04* -- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-CTI PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-CTI PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C05* -- ID_MODEL_FROM_DATABASE=Diva V-PRI/T1-24 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/T1-24 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C06* -- ID_MODEL_FROM_DATABASE=Diva V-PRI/E1-30 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/E1-30 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C07* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1-8 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1-8 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C08* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/T1-24 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/T1-24 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C09* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1-30 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1-30 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C0A* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C0B* -- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/T1-24 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/T1-24 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C0C* -- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/E1-30 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/E1-30 Cornet NQ) - - pci:v00001133d0000E01E* - ID_MODEL_FROM_DATABASE=2PRI - - pci:v00001133d0000E01Esv00001133sd00001E01* -- ID_MODEL_FROM_DATABASE=Diva 2PRI/E1/T1-60 PCI v1 -+ ID_MODEL_FROM_DATABASE=2PRI (Diva 2PRI/E1/T1-60 PCI v1) - - pci:v00001133d0000E01Esv00001133sd0000E01E* -- ID_MODEL_FROM_DATABASE=Diva V-2PRI/E1/T1-60 PCI v1 -+ ID_MODEL_FROM_DATABASE=2PRI (Diva V-2PRI/E1/T1-60 PCI v1) - - pci:v00001133d0000E020* - ID_MODEL_FROM_DATABASE=4PRI - - pci:v00001133d0000E020sv00001133sd00002001* -- ID_MODEL_FROM_DATABASE=Diva 4PRI/E1/T1-120 PCI v1 -+ ID_MODEL_FROM_DATABASE=4PRI (Diva 4PRI/E1/T1-120 PCI v1) - - pci:v00001133d0000E020sv00001133sd0000E020* -- ID_MODEL_FROM_DATABASE=Diva V-4PRI/E1/T1-120 PCI v1 -+ ID_MODEL_FROM_DATABASE=4PRI (Diva V-4PRI/E1/T1-120 PCI v1) - - pci:v00001133d0000E022* - ID_MODEL_FROM_DATABASE=Analog-2 - - pci:v00001133d0000E022sv00001133sd00002200* -- ID_MODEL_FROM_DATABASE=Diva V-Analog-2 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-2 (Diva V-Analog-2 PCI v1) - - pci:v00001133d0000E022sv00001133sd0000E022* -- ID_MODEL_FROM_DATABASE=Diva Analog-2 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-2 (Diva Analog-2 PCI v1) - - pci:v00001133d0000E024* - ID_MODEL_FROM_DATABASE=Analog-4 - - pci:v00001133d0000E024sv00001133sd00002400* -- ID_MODEL_FROM_DATABASE=Diva V-Analog-4 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-4 (Diva V-Analog-4 PCI v1) - - pci:v00001133d0000E024sv00001133sd0000E024* -- ID_MODEL_FROM_DATABASE=Diva Analog-4 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-4 (Diva Analog-4 PCI v1) - - pci:v00001133d0000E028* - ID_MODEL_FROM_DATABASE=Analog-8 - - pci:v00001133d0000E028sv00001133sd00002800* -- ID_MODEL_FROM_DATABASE=Diva V-Analog-8 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-8 (Diva V-Analog-8 PCI v1) - - pci:v00001133d0000E028sv00001133sd0000E028* -- ID_MODEL_FROM_DATABASE=Diva Analog-8 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-8 (Diva Analog-8 PCI v1) - - pci:v00001133d0000E02A* - ID_MODEL_FROM_DATABASE=Diva IPM-300 PCI v1 -@@ -32514,19 +32514,19 @@ pci:v00001133d0000E02E* - ID_MODEL_FROM_DATABASE=4BRI - - pci:v00001133d0000E02Esv00001133sd00002E01* -- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCIe v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCIe v2) - - pci:v00001133d0000E02Esv00001133sd0000E02E* -- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCIe v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCIe v2) - - pci:v00001133d0000E032* - ID_MODEL_FROM_DATABASE=BRI - - pci:v00001133d0000E032sv00001133sd00003201* -- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCIe v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCIe v2) - - pci:v00001133d0000E032sv00001133sd0000E032* -- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCIe v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCIe v2) - - pci:v00001133d0000E034* - ID_MODEL_FROM_DATABASE=Diva BRI-CTI PCI v2 -@@ -32574,88 +32574,88 @@ pci:v00001137d00000042* - ID_MODEL_FROM_DATABASE=VIC Management Controller - - pci:v00001137d00000042sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC P81E PCIe Management Controller) - - pci:v00001137d00000042sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225 PCIe Management Controller) - - pci:v00001137d00000042sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1285 PCIe Management Controller) - - pci:v00001137d00000042sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225T PCIe Management Controller) - - pci:v00001137d00000043* - ID_MODEL_FROM_DATABASE=VIC Ethernet NIC - - pci:v00001137d00000043sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC P81E PCIe Ethernet NIC) - - pci:v00001137d00000043sv00001137sd00000048* -- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC M81KR Mezzanine Ethernet NIC) - - pci:v00001137d00000043sv00001137sd0000004F* -- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1280 Mezzanine Ethernet NIC) - - pci:v00001137d00000043sv00001137sd00000084* -- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1240 MLOM Ethernet NIC) - - pci:v00001137d00000043sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225 PCIe Ethernet NIC) - - pci:v00001137d00000043sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1285 PCIe Ethernet NIC) - - pci:v00001137d00000043sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225T PCIe Ethernet NIC) - - pci:v00001137d00000044* - ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic - - pci:v00001137d00000044sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC P81E PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd00000048* -- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC M81KR Mezzanine Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd0000004F* -- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1280 Mezzanine Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd00000084* -- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1240 MLOM Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225 PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1285 PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225T PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000045* - ID_MODEL_FROM_DATABASE=VIC FCoE HBA - - pci:v00001137d00000045sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC P81E PCIe FCoE HBA) - - pci:v00001137d00000045sv00001137sd00000048* -- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC M81KR Mezzanine FCoE HBA) - - pci:v00001137d00000045sv00001137sd0000004F* -- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1280 Mezzanine FCoE HBA) - - pci:v00001137d00000045sv00001137sd00000084* -- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1240 MLOM FCoE HBA) - - pci:v00001137d00000045sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225 PCIe FCoE HBA) - - pci:v00001137d00000045sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1285 PCIe FCoE HBA) - - pci:v00001137d00000045sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225T PCIe FCoE HBA) - - pci:v00001137d0000004E* - ID_MODEL_FROM_DATABASE=VIC 82 PCIe Upstream Port -@@ -32814,49 +32814,49 @@ pci:v00001148d00004000* - ID_MODEL_FROM_DATABASE=FDDI Adapter - - pci:v00001148d00004000sv00000E11sd0000B03B* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS Fibre SC -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS Fibre SC) - - pci:v00001148d00004000sv00000E11sd0000B03C* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre SC -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre SC) - - pci:v00001148d00004000sv00000E11sd0000B03D* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS UTP -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS UTP) - - pci:v00001148d00004000sv00000E11sd0000B03E* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS UTP -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS UTP) - - pci:v00001148d00004000sv00000E11sd0000B03F* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre MIC -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre MIC) - - pci:v00001148d00004000sv00001148sd00005521* -- ID_MODEL_FROM_DATABASE=FDDI SK-5521 (SK-NET FDDI-UP) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5521 (SK-NET FDDI-UP)) - - pci:v00001148d00004000sv00001148sd00005522* -- ID_MODEL_FROM_DATABASE=FDDI SK-5522 (SK-NET FDDI-UP DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5522 (SK-NET FDDI-UP DAS)) - - pci:v00001148d00004000sv00001148sd00005541* -- ID_MODEL_FROM_DATABASE=FDDI SK-5541 (SK-NET FDDI-FP) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5541 (SK-NET FDDI-FP)) - - pci:v00001148d00004000sv00001148sd00005543* -- ID_MODEL_FROM_DATABASE=FDDI SK-5543 (SK-NET FDDI-LP) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5543 (SK-NET FDDI-LP)) - - pci:v00001148d00004000sv00001148sd00005544* -- ID_MODEL_FROM_DATABASE=FDDI SK-5544 (SK-NET FDDI-LP DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5544 (SK-NET FDDI-LP DAS)) - - pci:v00001148d00004000sv00001148sd00005821* -- ID_MODEL_FROM_DATABASE=FDDI SK-5821 (SK-NET FDDI-UP64) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5821 (SK-NET FDDI-UP64)) - - pci:v00001148d00004000sv00001148sd00005822* -- ID_MODEL_FROM_DATABASE=FDDI SK-5822 (SK-NET FDDI-UP64 DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5822 (SK-NET FDDI-UP64 DAS)) - - pci:v00001148d00004000sv00001148sd00005841* -- ID_MODEL_FROM_DATABASE=FDDI SK-5841 (SK-NET FDDI-FP64) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5841 (SK-NET FDDI-FP64)) - - pci:v00001148d00004000sv00001148sd00005843* -- ID_MODEL_FROM_DATABASE=FDDI SK-5843 (SK-NET FDDI-LP64) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5843 (SK-NET FDDI-LP64)) - - pci:v00001148d00004000sv00001148sd00005844* -- ID_MODEL_FROM_DATABASE=FDDI SK-5844 (SK-NET FDDI-LP64 DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5844 (SK-NET FDDI-LP64 DAS)) - - pci:v00001148d00004200* - ID_MODEL_FROM_DATABASE=Token Ring adapter -@@ -32865,115 +32865,115 @@ pci:v00001148d00004300* - ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) - - pci:v00001148d00004300sv00001148sd00009821* -- ID_MODEL_FROM_DATABASE=SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T)) - - pci:v00001148d00004300sv00001148sd00009822* -- ID_MODEL_FROM_DATABASE=SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link)) - - pci:v00001148d00004300sv00001148sd00009841* -- ID_MODEL_FROM_DATABASE=SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX)) - - pci:v00001148d00004300sv00001148sd00009842* -- ID_MODEL_FROM_DATABASE=SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link)) - - pci:v00001148d00004300sv00001148sd00009843* -- ID_MODEL_FROM_DATABASE=SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX)) - - pci:v00001148d00004300sv00001148sd00009844* -- ID_MODEL_FROM_DATABASE=SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link)) - - pci:v00001148d00004300sv00001148sd00009861* -- ID_MODEL_FROM_DATABASE=SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition)) - - pci:v00001148d00004300sv00001148sd00009862* -- ID_MODEL_FROM_DATABASE=SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link)) - - pci:v00001148d00004300sv00001148sd00009871* -- ID_MODEL_FROM_DATABASE=SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX)) - - pci:v00001148d00004300sv00001148sd00009872* - ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) - - pci:v00001148d00004300sv00001259sd00002970* -- ID_MODEL_FROM_DATABASE=AT-2970SX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002971* -- ID_MODEL_FROM_DATABASE=AT-2970LX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002972* -- ID_MODEL_FROM_DATABASE=AT-2970TX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002973* -- ID_MODEL_FROM_DATABASE=AT-2971SX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971SX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002974* -- ID_MODEL_FROM_DATABASE=AT-2971T Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971T Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002975* -- ID_MODEL_FROM_DATABASE=AT-2970SX/2SC Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX/2SC Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002976* -- ID_MODEL_FROM_DATABASE=AT-2970LX/2SC Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX/2SC Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002977* -- ID_MODEL_FROM_DATABASE=AT-2970TX/2TX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX/2TX Gigabit Ethernet Adapter) - - pci:v00001148d00004320* - ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC - - pci:v00001148d00004320sv00001148sd00000121* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8001 Adapter) - - pci:v00001148d00004320sv00001148sd00000221* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8002 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8002 Adapter) - - pci:v00001148d00004320sv00001148sd00000321* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8003 Adapter) - - pci:v00001148d00004320sv00001148sd00000421* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8004 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8004 Adapter) - - pci:v00001148d00004320sv00001148sd00000621* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8006 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8006 Adapter) - - pci:v00001148d00004320sv00001148sd00000721* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8007 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8007 Adapter) - - pci:v00001148d00004320sv00001148sd00000821* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8008 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8008 Adapter) - - pci:v00001148d00004320sv00001148sd00000921* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8009 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8009 Adapter) - - pci:v00001148d00004320sv00001148sd00001121* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8011 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8011 Adapter) - - pci:v00001148d00004320sv00001148sd00001221* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8012 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8012 Adapter) - - pci:v00001148d00004320sv00001148sd00003221* -- ID_MODEL_FROM_DATABASE=SK-9521 V2.0 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 V2.0 10/100/1000Base-T Adapter) - - pci:v00001148d00004320sv00001148sd00005021* -- ID_MODEL_FROM_DATABASE=SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter) - - pci:v00001148d00004320sv00001148sd00005041* -- ID_MODEL_FROM_DATABASE=SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter) - - pci:v00001148d00004320sv00001148sd00005043* -- ID_MODEL_FROM_DATABASE=SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter) - - pci:v00001148d00004320sv00001148sd00005051* -- ID_MODEL_FROM_DATABASE=SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter) - - pci:v00001148d00004320sv00001148sd00005061* -- ID_MODEL_FROM_DATABASE=SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter) - - pci:v00001148d00004320sv00001148sd00005071* -- ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter) - - pci:v00001148d00004320sv00001148sd00009521* -- ID_MODEL_FROM_DATABASE=SK-9521 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 10/100/1000Base-T Adapter) - - pci:v00001148d00004400* - ID_MODEL_FROM_DATABASE=SK-9Dxx Gigabit Ethernet Adapter -@@ -32991,25 +32991,25 @@ pci:v00001148d00009E00* - ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 - - pci:v00001148d00009E00sv00001148sd00002100* -- ID_MODEL_FROM_DATABASE=SK-9E21 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21 Server Adapter) - - pci:v00001148d00009E00sv00001148sd000021D0* -- ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21D 10/100/1000Base-T Adapter) - - pci:v00001148d00009E00sv00001148sd00002200* -- ID_MODEL_FROM_DATABASE=SK-9E22 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E22 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00008100* -- ID_MODEL_FROM_DATABASE=SK-9E81 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E81 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00008200* -- ID_MODEL_FROM_DATABASE=SK-9E82 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E82 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00009100* -- ID_MODEL_FROM_DATABASE=SK-9E91 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E91 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00009200* -- ID_MODEL_FROM_DATABASE=SK-9E92 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E92 Server Adapter) - - pci:v00001148d00009E01* - ID_MODEL_FROM_DATABASE=SK-9E21M 10/100/1000Base-T Adapter -@@ -33111,16 +33111,16 @@ pci:v0000114Fd0000001D* - ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI - - pci:v0000114Fd0000001Dsv0000114Fsd00000050* -- ID_MODEL_FROM_DATABASE=DataFire RAS E1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS E1 Adapter) - - pci:v0000114Fd0000001Dsv0000114Fsd00000051* -- ID_MODEL_FROM_DATABASE=DataFire RAS Dual E1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual E1 Adapter) - - pci:v0000114Fd0000001Dsv0000114Fsd00000052* -- ID_MODEL_FROM_DATABASE=DataFire RAS T1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS T1 Adapter) - - pci:v0000114Fd0000001Dsv0000114Fsd00000053* -- ID_MODEL_FROM_DATABASE=DataFire RAS Dual T1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual T1 Adapter) - - pci:v0000114Fd00000023* - ID_MODEL_FROM_DATABASE=AccelePort RAS -@@ -33129,10 +33129,10 @@ pci:v0000114Fd00000024* - ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U - - pci:v0000114Fd00000024sv0000114Fsd00000030* -- ID_MODEL_FROM_DATABASE=DataFire RAS BRI U Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI U Adapter) - - pci:v0000114Fd00000024sv0000114Fsd00000031* -- ID_MODEL_FROM_DATABASE=DataFire RAS BRI S/T Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI S/T Adapter) - - pci:v0000114Fd00000026* - ID_MODEL_FROM_DATABASE=AccelePort 4r 920 -@@ -33156,19 +33156,19 @@ pci:v0000114Fd00000040* - ID_MODEL_FROM_DATABASE=AccelePort Xp - - pci:v0000114Fd00000040sv0000114Fsd00000042* -- ID_MODEL_FROM_DATABASE=AccelePort 2p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 2p PCI) - - pci:v0000114Fd00000040sv0000114Fsd00000043* -- ID_MODEL_FROM_DATABASE=AccelePort 4p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 4p PCI) - - pci:v0000114Fd00000040sv0000114Fsd00000044* -- ID_MODEL_FROM_DATABASE=AccelePort 8p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 8p PCI) - - pci:v0000114Fd00000040sv0000114Fsd00000045* -- ID_MODEL_FROM_DATABASE=AccelePort 16p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 16p PCI) - - pci:v0000114Fd00000040sv0000114Fsd0000004E* -- ID_MODEL_FROM_DATABASE=AccelePort 32p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 32p PCI) - - pci:v0000114Fd00000042* - ID_MODEL_FROM_DATABASE=AccelePort 2p -@@ -33300,22 +33300,22 @@ pci:v0000115Dd00000003* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000003sv00001014sd00000181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv00001014sd00001181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv00001014sd00008181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv00001014sd00009181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv0000115Dsd00000181* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000003sv0000115Dsd00000182* -- ID_MODEL_FROM_DATABASE=RealPort2 CardBus Ethernet 10/100 (R2BE-100) -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (RealPort2 CardBus Ethernet 10/100 (R2BE-100)) - - pci:v0000115Dd00000003sv0000115Dsd00001181* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33324,19 +33324,19 @@ pci:v0000115Dd00000003sv00001179sd00000181* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000003sv00008086sd00008181* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) - - pci:v0000115Dd00000003sv00008086sd00009181* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) - - pci:v0000115Dd00000005* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000005sv00001014sd00000182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000005sv00001014sd00001182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000005sv0000115Dsd00000182* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33348,10 +33348,10 @@ pci:v0000115Dd00000007* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000007sv00001014sd00000182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000007sv00001014sd00001182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000007sv0000115Dsd00000182* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33363,7 +33363,7 @@ pci:v0000115Dd0000000B* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd0000000Bsv00001014sd00000183* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd0000000Bsv0000115Dsd00000183* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33375,7 +33375,7 @@ pci:v0000115Dd0000000F* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd0000000Fsv00001014sd00000183* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd0000000Fsv0000115Dsd00000183* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33387,22 +33387,22 @@ pci:v0000115Dd00000101* - ID_MODEL_FROM_DATABASE=Cardbus 56k modem - - pci:v0000115Dd00000101sv0000115Dsd00001081* -- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus 56k modem (Cardbus 56k Modem) - - pci:v0000115Dd00000103* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem - - pci:v0000115Dd00000103sv00001014sd00009181* -- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus 56k Modem) - - pci:v0000115Dd00000103sv00001115sd00001181* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 100 + 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus Ethernet 100 + 56k Modem) - - pci:v0000115Dd00000103sv0000115Dsd00001181* -- ID_MODEL_FROM_DATABASE=CBEM56G-100 Ethernet + 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (CBEM56G-100 Ethernet + 56k Modem) - - pci:v0000115Dd00000103sv00008086sd00009181* -- ID_MODEL_FROM_DATABASE=PRO/100 LAN + Modem56 CardBus -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (PRO/100 LAN + Modem56 CardBus) - - pci:v0000115E* - ID_VENDOR_FROM_DATABASE=Peer Protocols Inc -@@ -33429,7 +33429,7 @@ pci:v00001163d00002000* - ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 - - pci:v00001163d00002000sv00001092sd00002000* -- ID_MODEL_FROM_DATABASE=Stealth II S220 -+ ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 (Stealth II S220) - - pci:v00001164* - ID_VENDOR_FROM_DATABASE=Advanced Peripherals Technologies -@@ -33510,7 +33510,7 @@ pci:v00001166d00000132* - ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge - - pci:v00001166d00000132sv00001166sd00000132* -- ID_MODEL_FROM_DATABASE=HT2000 PCI-Express bridge -+ ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge (HT2000 PCI-Express bridge) - - pci:v00001166d00000140* - ID_MODEL_FROM_DATABASE=HT2100 PCI-Express Bridge -@@ -33531,13 +33531,13 @@ pci:v00001166d00000201* - ID_MODEL_FROM_DATABASE=CSB5 South Bridge - - pci:v00001166d00000201sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=CSB5 South Bridge (CT8 mainboard) - - pci:v00001166d00000203* - ID_MODEL_FROM_DATABASE=CSB6 South Bridge - - pci:v00001166d00000203sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series -+ ID_MODEL_FROM_DATABASE=CSB6 South Bridge (PRIMERGY RX/TX series) - - pci:v00001166d00000205* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] Legacy South Bridge -@@ -33549,37 +33549,37 @@ pci:v00001166d00000212* - ID_MODEL_FROM_DATABASE=CSB5 IDE Controller - - pci:v00001166d00000212sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1750) - - pci:v00001166d00000212sv00001028sd0000810B* -- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 -+ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1650/2550) - - pci:v00001166d00000212sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (CT8 mainboard) - - pci:v00001166d00000213* - ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller - - pci:v00001166d00000213sv00001028sd00004134* -- ID_MODEL_FROM_DATABASE=PowerEdge 600SC -+ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PowerEdge 600SC) - - pci:v00001166d00000213sv00001028sd0000C134* -- ID_MODEL_FROM_DATABASE=Poweredge SC600 -+ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (Poweredge SC600) - - pci:v00001166d00000213sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard IDE -+ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PRIMERGY RX/TX series onboard IDE) - - pci:v00001166d00000214* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE - - pci:v00001166d00000214sv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 IDE -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE (PowerEdge 2970 HT1000 IDE) - - pci:v00001166d00000217* - ID_MODEL_FROM_DATABASE=CSB6 IDE Controller - - pci:v00001166d00000217sv00001028sd00004134* -- ID_MODEL_FROM_DATABASE=Poweredge SC600 -+ ID_MODEL_FROM_DATABASE=CSB6 IDE Controller (Poweredge SC600) - - pci:v00001166d0000021B* - ID_MODEL_FROM_DATABASE=HT1100 HD Audio -@@ -33588,22 +33588,22 @@ pci:v00001166d00000220* - ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller - - pci:v00001166d00000220sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller (CT8 mainboard) - - pci:v00001166d00000221* - ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller - - pci:v00001166d00000221sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard OHCI -+ ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller (PRIMERGY RX/TX series onboard OHCI) - - pci:v00001166d00000223* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB - - pci:v00001166d00000223sv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 USB Controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge 2970 HT1000 USB Controller) - - pci:v00001166d00000223sv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 USB Controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge T605 HT1000 USB Controller) - - pci:v00001166d00000225* - ID_MODEL_FROM_DATABASE=CSB5 LPC bridge -@@ -33612,22 +33612,22 @@ pci:v00001166d00000227* - ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge - - pci:v00001166d00000227sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series -+ ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge (PRIMERGY RX/TX series) - - pci:v00001166d00000230* - ID_MODEL_FROM_DATABASE=CSB5 LPC bridge - - pci:v00001166d00000230sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=CSB5 LPC bridge (CT8 mainboard) - - pci:v00001166d00000234* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC - - pci:v00001166d00000234sv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 LPC -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge 2970 HT1000 LPC) - - pci:v00001166d00000234sv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 LPC -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge T605 HT1000 LPC) - - pci:v00001166d00000235* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] XIOAPIC0-2 -@@ -33648,13 +33648,13 @@ pci:v00001166d0000024A* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) - - pci:v00001166d0000024Asv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) (PowerEdge T605 onboard SATA Controller) - - pci:v00001166d0000024B* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) - - pci:v00001166d0000024Bsv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 SATA controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) (PowerEdge 2970 HT1000 SATA controller) - - pci:v00001166d00000406* - ID_MODEL_FROM_DATABASE=HT1100 PCI-X Bridge -@@ -33666,7 +33666,7 @@ pci:v00001166d0000040A* - ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge - - pci:v00001166d0000040Asv00001028sd00000223* -- ID_MODEL_FROM_DATABASE=PowerEdge R905 HT1100 ISA-LPC Bridge -+ ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge (PowerEdge R905 HT1100 ISA-LPC Bridge) - - pci:v00001166d00000410* - ID_MODEL_FROM_DATABASE=HT1100 SATA Controller (Native SATA Mode) -@@ -33783,7 +33783,7 @@ pci:v00001179d00000601* - ID_MODEL_FROM_DATABASE=CPU to PCI bridge - - pci:v00001179d00000601sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite Pro -+ ID_MODEL_FROM_DATABASE=CPU to PCI bridge (Satellite Pro) - - pci:v00001179d00000602* - ID_MODEL_FROM_DATABASE=PCI to ISA bridge -@@ -33798,13 +33798,13 @@ pci:v00001179d0000060A* - ID_MODEL_FROM_DATABASE=ToPIC95 - - pci:v00001179d0000060Asv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite Pro -+ ID_MODEL_FROM_DATABASE=ToPIC95 (Satellite Pro) - - pci:v00001179d0000060F* - ID_MODEL_FROM_DATABASE=ToPIC97 - - pci:v00001179d0000060Fsv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite 4010 -+ ID_MODEL_FROM_DATABASE=ToPIC97 (Satellite 4010) - - pci:v00001179d00000617* - ID_MODEL_FROM_DATABASE=ToPIC100 PCI to Cardbus Bridge with ZV Support -@@ -33846,16 +33846,16 @@ pci:v0000117Cd00000030* - ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter - - pci:v0000117Cd00000030sv0000117Csd00008013* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL4D -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4D) - - pci:v0000117Cd00000030sv0000117Csd00008014* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL4S -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4S) - - pci:v0000117Cd00000030sv0000117Csd00008027* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D) - - pci:v0000117Cd00000030sv0000117Csd0000802F* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D Low Profile -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D Low Profile) - - pci:v0000117Cd00000033* - ID_MODEL_FROM_DATABASE=SAS Adapter -@@ -33882,67 +33882,67 @@ pci:v00001180d00000475* - ID_MODEL_FROM_DATABASE=RL5c475 - - pci:v00001180d00000475sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 CardBus bridge -+ ID_MODEL_FROM_DATABASE=RL5c475 (vpr Matrix 170B4 CardBus bridge) - - pci:v00001180d00000476* - ID_MODEL_FROM_DATABASE=RL5c476 II - - pci:v00001180d00000476sv00001014sd00000185* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad A/T/X Series) - - pci:v00001180d00000476sv00001014sd0000056C* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad Z60t) - - pci:v00001180d00000476sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Latitude X300 laptop) - - pci:v00001180d00000476sv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Inspiron 6000 laptop) - - pci:v00001180d00000476sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6710b) - - pci:v00001180d00000476sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6910p) - - pci:v00001180d00000476sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (A6J-Q008) - - pci:v00001180d00000476sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=RL5c476 II (V6800V) - - pci:v00001180d00000476sv00001043sd00001987* -- ID_MODEL_FROM_DATABASE=Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines ) -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines )) - - pci:v00001180d00000476sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Vaio PCG-FX403) - - pci:v00001180d00000476sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00001180d00000476sv0000104Dsd0000814E* -- ID_MODEL_FROM_DATABASE=VAIO GRZ390Z -+ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO GRZ390Z) - - pci:v00001180d00000476sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Panasonic CF-Y5 laptop) - - pci:v00001180d00000476sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (X10 Laptop) - - pci:v00001180d00000476sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=RL5c476 II (P30/P35 notebook) - - pci:v00001180d00000476sv000014EFsd00000220* -- ID_MODEL_FROM_DATABASE=PCD-RP-220S -+ ID_MODEL_FROM_DATABASE=RL5c476 II (PCD-RP-220S) - - pci:v00001180d00000476sv000017AAsd0000201C* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad X60/X60s) - - pci:v00001180d00000476sv000017AAsd000020C4* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad T61) - - pci:v00001180d00000476sv000017AAsd000020C6* -- ID_MODEL_FROM_DATABASE=ThinkPad R61 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad R61) - - pci:v00001180d00000477* - ID_MODEL_FROM_DATABASE=RL5c477 -@@ -33951,7 +33951,7 @@ pci:v00001180d00000478* - ID_MODEL_FROM_DATABASE=RL5c478 - - pci:v00001180d00000478sv00001014sd00000184* -- ID_MODEL_FROM_DATABASE=ThinkPad A30p -+ ID_MODEL_FROM_DATABASE=RL5c478 (ThinkPad A30p) - - pci:v00001180d00000511* - ID_MODEL_FROM_DATABASE=R5C511 -@@ -33960,43 +33960,43 @@ pci:v00001180d00000522* - ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller - - pci:v00001180d00000522sv00001014sd000001CF* -- ID_MODEL_FROM_DATABASE=ThinkPad A30p -+ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (ThinkPad A30p) - - pci:v00001180d00000522sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (V6800V) - - pci:v00001180d00000551* - ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller - - pci:v00001180d00000551sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller (vpr Matrix 170B4) - - pci:v00001180d00000552* - ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller - - pci:v00001180d00000552sv00001014sd00000511* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad A/T/X Series) - - pci:v00001180d00000552sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Latitude X300 laptop) - - pci:v00001180d00000552sv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Inspiron 6000 laptop) - - pci:v00001180d00000552sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (A6J-Q008) - - pci:v00001180d00000552sv00001043sd00001757* -- ID_MODEL_FROM_DATABASE=M2400N laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (M2400N laptop) - - pci:v00001180d00000552sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (X10 Laptop) - - pci:v00001180d00000552sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (P30/P35 notebook) - - pci:v00001180d00000552sv000017AAsd0000201E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad X60/X60s) - - pci:v00001180d00000554* - ID_MODEL_FROM_DATABASE=R5C554 -@@ -34011,37 +34011,37 @@ pci:v00001180d00000592* - ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter - - pci:v00001180d00000592sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Aspire 5920G) - - pci:v00001180d00000592sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (XPS M1210) - - pci:v00001180d00000592sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Inspiron 1420) - - pci:v00001180d00000592sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V3242AU) - - pci:v00001180d00000592sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V6133CL) - - pci:v00001180d00000592sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv6700) - - pci:v00001180d00000592sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv9668eg Laptop) - - pci:v00001180d00000592sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (A6J-Q008) - - pci:v00001180d00000592sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (V6800V) - - pci:v00001180d00000592sv0000144Dsd0000C018* -- ID_MODEL_FROM_DATABASE=X20 IV -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (X20 IV) - - pci:v00001180d00000592sv000017AAsd000020CA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (ThinkPad T61) - - pci:v00001180d00000811* - ID_MODEL_FROM_DATABASE=R5C811 -@@ -34050,94 +34050,94 @@ pci:v00001180d00000822* - ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter - - pci:v00001180d00000822sv00001014sd00000556* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s / Z60t -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60s / Z60t) - - pci:v00001180d00000822sv00001014sd00000598* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60m -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad Z60m) - - pci:v00001180d00000822sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Aspire 5920G) - - pci:v00001180d00000822sv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 6000 laptop) - - pci:v00001180d00000822sv00001028sd000001A2* -- ID_MODEL_FROM_DATABASE=Inspiron 9200 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 9200) - - pci:v00001180d00000822sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (XPS M1210) - - pci:v00001180d00000822sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 1420) - - pci:v00001180d00000822sv0000103Csd000003B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V3242AU) - - pci:v00001180d00000822sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V6133CL) - - pci:v00001180d00000822sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Compaq 6910p) - - pci:v00001180d00000822sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv6700) - - pci:v00001180d00000822sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv9668eg Laptop) - - pci:v00001180d00000822sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (A6J-Q008) - - pci:v00001180d00000822sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=ASUS V6800V -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ASUS V6800V) - - pci:v00001180d00000822sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Panasonic CF-Y5 laptop) - - pci:v00001180d00000822sv0000144Dsd0000C018* -- ID_MODEL_FROM_DATABASE=X20 IV -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (X20 IV) - - pci:v00001180d00000822sv000017AAsd0000201D* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60/X60s) - - pci:v00001180d00000822sv000017AAsd000020C7* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad T61) - - pci:v00001180d00000822sv000017AAsd000020C8* -- ID_MODEL_FROM_DATABASE=ThinkPad W500 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad W500) - - pci:v00001180d00000832* - ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller - - pci:v00001180d00000832sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Aspire 5920G) - - pci:v00001180d00000832sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (XPS M1210) - - pci:v00001180d00000832sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Inspiron 1420) - - pci:v00001180d00000832sv00001028sd0000024D* -- ID_MODEL_FROM_DATABASE=Latitude E4300 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Latitude E4300) - - pci:v00001180d00000832sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V3242AU) - - pci:v00001180d00000832sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V6133CL) - - pci:v00001180d00000832sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Compaq 6910p) - - pci:v00001180d00000832sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv6700) - - pci:v00001180d00000832sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv9668eg Laptop) - - pci:v00001180d00000832sv000017AAsd000020C7* -- ID_MODEL_FROM_DATABASE=ThinkPad R61 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (ThinkPad R61) - - pci:v00001180d00000841* - ID_MODEL_FROM_DATABASE=R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394 -@@ -34146,58 +34146,58 @@ pci:v00001180d00000843* - ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller - - pci:v00001180d00000843sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Aspire 5920G) - - pci:v00001180d00000843sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (XPS M1210) - - pci:v00001180d00000843sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Inspiron 1420) - - pci:v00001180d00000843sv00001028sd000001F5* -- ID_MODEL_FROM_DATABASE=Dell Inspiron 1501 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Inspiron 1501) - - pci:v00001180d00000843sv00001028sd0000024F* -- ID_MODEL_FROM_DATABASE=Dell Latitude e6500 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Latitude e6500) - - pci:v00001180d00000843sv0000103Csd000003B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V3242AU) - - pci:v00001180d00000843sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V6133CL) - - pci:v00001180d00000843sv00001183sd00000843* -- ID_MODEL_FROM_DATABASE=Alienware Aurora m9700 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Alienware Aurora m9700) - - pci:v00001180d00000852* - ID_MODEL_FROM_DATABASE=xD-Picture Card Controller - - pci:v00001180d00000852sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Aspire 5920G) - - pci:v00001180d00000852sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Inspiron 1420) - - pci:v00001180d00000852sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V3242AU) - - pci:v00001180d00000852sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V6133CL) - - pci:v00001180d00000852sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv6700) - - pci:v00001180d00000852sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv9668eg Laptop) - - pci:v00001180d00000852sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (V6800V) - - pci:v00001180d00000852sv00001180sd00000852* -- ID_MODEL_FROM_DATABASE=Pavilion 2410us -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion 2410us) - - pci:v00001180d00000852sv00001324sd000010CF* -- ID_MODEL_FROM_DATABASE=P7120 -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (P7120) - - pci:v00001180d0000E230* - ID_MODEL_FROM_DATABASE=R5U2xx (R5U230 / R5U231 / R5U241) [Memory Stick Host Controller] -@@ -34206,19 +34206,19 @@ pci:v00001180d0000E476* - ID_MODEL_FROM_DATABASE=CardBus bridge - - pci:v00001180d0000E476sv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6410) - - pci:v00001180d0000E476sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6510) - - pci:v00001180d0000E822* - ID_MODEL_FROM_DATABASE=MMC/SD Host Controller - - pci:v00001180d0000E822sv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6410) - - pci:v00001180d0000E822sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6510) - - pci:v00001180d0000E823* - ID_MODEL_FROM_DATABASE=PCIe SDXC/MMC Host Controller -@@ -34227,10 +34227,10 @@ pci:v00001180d0000E832* - ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller - - pci:v00001180d0000E832sv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6410) - - pci:v00001180d0000E832sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6510) - - pci:v00001180d0000E852* - ID_MODEL_FROM_DATABASE=PCIe xD-Picture Card Controller -@@ -34254,10 +34254,10 @@ pci:v00001186d00001002* - ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet - - pci:v00001186d00001002sv00001186sd00001002* -- ID_MODEL_FROM_DATABASE=DFE-550TX/FX -+ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-550TX/FX) - - pci:v00001186d00001002sv00001186sd00001012* -- ID_MODEL_FROM_DATABASE=DFE-580TX -+ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-580TX) - - pci:v00001186d00001025* - ID_MODEL_FROM_DATABASE=AirPlus Xtreme G DWL-G650 Adapter -@@ -34272,13 +34272,13 @@ pci:v00001186d00001300* - ID_MODEL_FROM_DATABASE=RTL8139 Ethernet - - pci:v00001186d00001300sv00001186sd00001300* -- ID_MODEL_FROM_DATABASE=DFE-538TX 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-538TX 10/100 Ethernet Adapter) - - pci:v00001186d00001300sv00001186sd00001301* -- ID_MODEL_FROM_DATABASE=DFE-530TX+ 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-530TX+ 10/100 Ethernet Adapter) - - pci:v00001186d00001300sv00001186sd00001303* -- ID_MODEL_FROM_DATABASE=DFE-528TX 10/100 Fast Ethernet PCI Adapter -+ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-528TX 10/100 Fast Ethernet PCI Adapter) - - pci:v00001186d00001340* - ID_MODEL_FROM_DATABASE=DFE-690TXD CardBus PC Card -@@ -34296,10 +34296,10 @@ pci:v00001186d00003300* - ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] - - pci:v00001186d00003300sv00001186sd00003300* -- ID_MODEL_FROM_DATABASE=DWL-610 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-610 Wireless Cardbus Adapter) - - pci:v00001186d00003300sv00001186sd00003301* -- ID_MODEL_FROM_DATABASE=DWL-510 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-510 Wireless PCI Adapter) - - pci:v00001186d00003A10* - ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter(rev.B) -@@ -34317,7 +34317,7 @@ pci:v00001186d00004300* - ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter - - pci:v00001186d00004300sv00001186sd00004B10* -- ID_MODEL_FROM_DATABASE=DGE-560T PCI Express (x1) Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter (DGE-560T PCI Express (x1) Gigabit Ethernet Adapter) - - pci:v00001186d00004302* - ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter (rev.C1) [Realtek RTL8169] -@@ -34338,7 +34338,7 @@ pci:v00001186d00004C00* - ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter - - pci:v00001186d00004C00sv00001186sd00004C00* -- ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (DGE-530T Gigabit Ethernet Adapter) - - pci:v00001186d00008400* - ID_MODEL_FROM_DATABASE=D-Link DWL-650+ CardBus PC Card -@@ -34620,7 +34620,7 @@ pci:v000011ABd00001FA6* - ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter - - pci:v000011ABd00001FA6sv00001186sd00003B08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1) -+ ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1)) - - pci:v000011ABd00001FA7* - ID_MODEL_FROM_DATABASE=88W8310 and 88W8000G [Libertas] 802.11g client chipset -@@ -34629,13 +34629,13 @@ pci:v000011ABd00001FAA* - ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless - - pci:v000011ABd00001FAAsv00001385sd00004E00* -- ID_MODEL_FROM_DATABASE=WG511v2 54 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG511v2 54 Mbps Wireless PC Card) - - pci:v000011ABd00001FAAsv00001385sd00006B00* -- ID_MODEL_FROM_DATABASE=WG311v3 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG311v3 802.11g Wireless PCI Adapter) - - pci:v000011ABd00001FAAsv00001737sd00000040* -- ID_MODEL_FROM_DATABASE=WPC54G v5 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WPC54G v5 802.11g Wireless-G Notebook Adapter) - - pci:v000011ABd00002211* - ID_MODEL_FROM_DATABASE=88SB2211 PCI Express to PCI Bridge -@@ -34647,19 +34647,19 @@ pci:v000011ABd00002A02* - ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless - - pci:v000011ABd00002A02sv000007D1sd00003B02* -- ID_MODEL_FROM_DATABASE=DIR-615 rev. A1 Mini PCI Wireless Module -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (DIR-615 rev. A1 Mini PCI Wireless Module) - - pci:v000011ABd00002A02sv00001385sd00007C00* -- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless PC Card) - - pci:v000011ABd00002A02sv00001385sd00007C01* -- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter) - - pci:v000011ABd00002A02sv00001385sd00007E00* -- ID_MODEL_FROM_DATABASE=WN311T RangeMax Next 300 Mbps Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN311T RangeMax Next 300 Mbps Wireless PCI Adapter) - - pci:v000011ABd00002A02sv00001799sd0000801B* -- ID_MODEL_FROM_DATABASE=F5D8011 v2 802.11n N1 Wireless Notebook Card -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (F5D8011 v2 802.11n N1 Wireless Notebook Card) - - pci:v000011ABd00002A08* - ID_MODEL_FROM_DATABASE=88W8362e [TopDog] 802.11a/b/g/n Wireless -@@ -34701,58 +34701,58 @@ pci:v000011ABd00004320* - ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller - - pci:v000011ABd00004320sv00001019sd00000F38* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) - - pci:v000011ABd00004320sv00001019sd00008001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) - - pci:v000011ABd00004320sv00001043sd0000173C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004320sv00001043sd0000811A* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004320sv0000105Bsd00000C19* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Foxconn) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Foxconn)) - - pci:v000011ABd00004320sv000010B8sd0000B452* -- ID_MODEL_FROM_DATABASE=EZ Card 1000 (SMC9452TXV.2) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (EZ Card 1000 (SMC9452TXV.2)) - - pci:v000011ABd00004320sv000011ABsd00000121* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8001) - - pci:v000011ABd00004320sv000011ABsd00000321* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8003) - - pci:v000011ABd00004320sv000011ABsd00001021* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8010 -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8010) - - pci:v000011ABd00004320sv000011ABsd00004320* -- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus)) - - pci:v000011ABd00004320sv000011ABsd00005021* -- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit)) - - pci:v000011ABd00004320sv000011ABsd00009521* -- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit)) - - pci:v000011ABd00004320sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte)) - - pci:v000011ABd00004320sv0000147Bsd00001406* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Abit) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Abit)) - - pci:v000011ABd00004320sv000015D4sd00000047* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Iwill) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Iwill)) - - pci:v000011ABd00004320sv00001695sd00009025* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Epox) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Epox)) - - pci:v000011ABd00004320sv000017F2sd00001C03* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Albatron) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Albatron)) - - pci:v000011ABd00004320sv0000270Fsd00002803* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Chaintech) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Chaintech)) - - pci:v000011ABd00004340* - ID_MODEL_FROM_DATABASE=88E8021 PCI-X IPMI Gigabit Ethernet Controller -@@ -34779,115 +34779,115 @@ pci:v000011ABd00004347* - ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller - - pci:v000011ABd00004347sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 PrAMC Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller (Telum ASLP10 PrAMC Gigabit Ethernet) - - pci:v000011ABd00004350* - ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004350sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (Toshiba) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (Toshiba)) - - pci:v000011ABd00004350sv000011ABsd00003521* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8035 -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell RDK-8035) - - pci:v000011ABd00004350sv00001854sd0000000D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000000E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000000F* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000011* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000012* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000016* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000017* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000018* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000019* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000001C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000001E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000020* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351* - ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004351sv0000107Bsd00004009* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Wistron) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Wistron)) - - pci:v000011ABd00004351sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Panasonic) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Panasonic)) - - pci:v000011ABd00004351sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Toshiba) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Toshiba)) - - pci:v000011ABd00004351sv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Compal) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Compal)) - - pci:v000011ABd00004351sv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Inventec) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Inventec)) - - pci:v000011ABd00004351sv000011ABsd00003621* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8036 -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell RDK-8036) - - pci:v000011ABd00004351sv000013D1sd0000AC12* -- ID_MODEL_FROM_DATABASE=Abocom EFE3K - 10/100 Ethernet Expresscard -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Abocom EFE3K - 10/100 Ethernet Expresscard) - - pci:v000011ABd00004351sv0000161Fsd0000203D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Arima) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Arima)) - - pci:v000011ABd00004351sv00001854sd0000000D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000000E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000000F* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000011* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000012* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000016* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000017* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000018* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000019* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000001C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000001E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000020* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004352* - ID_MODEL_FROM_DATABASE=88E8038 PCI-E Fast Ethernet Controller -@@ -34896,19 +34896,19 @@ pci:v000011ABd00004353* - ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004353sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller (VAIO VGN-NR120E) - - pci:v000011ABd00004354* - ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004354sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) - - pci:v000011ABd00004355* - ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller - - pci:v000011ABd00004355sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller (Satellite P305D-S8995E) - - pci:v000011ABd00004356* - ID_MODEL_FROM_DATABASE=88EC033 PCI-E Fast Ethernet Controller -@@ -34923,163 +34923,163 @@ pci:v000011ABd00004360* - ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller - - pci:v000011ABd00004360sv00001043sd00008134* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004360sv0000107Bsd00004009* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Wistron) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Wistron)) - - pci:v000011ABd00004360sv000011ABsd00005221* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8052 -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell RDK-8052) - - pci:v000011ABd00004360sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte)) - - pci:v000011ABd00004360sv00001462sd0000052C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (MSI) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (MSI)) - - pci:v000011ABd00004360sv00001849sd00008052* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (ASRock) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (ASRock)) - - pci:v000011ABd00004360sv0000A0A0sd00000509* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Aopen) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Aopen)) - - pci:v000011ABd00004361* - ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller - - pci:v000011ABd00004361sv0000107Bsd00003015* -- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Gateway) -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Gateway)) - - pci:v000011ABd00004361sv000011ABsd00005021* -- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) - - pci:v000011ABd00004361sv00008086sd00003063* -- ID_MODEL_FROM_DATABASE=D925XCVLK mainboard -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (D925XCVLK mainboard) - - pci:v000011ABd00004361sv00008086sd00003439* -- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) - - pci:v000011ABd00004362* - ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller - - pci:v000011ABd00004362sv0000103Csd00002A0D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004362sv00001043sd00008142* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus)) - - pci:v000011ABd00004362sv0000109Fsd00003197* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Trigem) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Trigem)) - - pci:v000011ABd00004362sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Panasonic) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Panasonic)) - - pci:v000011ABd00004362sv000010FDsd0000A430* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (SOYO) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (SOYO)) - - pci:v000011ABd00004362sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Toshiba) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Toshiba)) - - pci:v000011ABd00004362sv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) - - pci:v000011ABd00004362sv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Inventec) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Inventec)) - - pci:v000011ABd00004362sv000011ABsd00005321* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8053 -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell RDK-8053) - - pci:v000011ABd00004362sv00001297sd0000C240* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C241* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C242* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C243* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C244* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv000013D1sd0000AC11* -- ID_MODEL_FROM_DATABASE=EGE5K - Giga Ethernet Expresscard -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (EGE5K - Giga Ethernet Expresscard) - - pci:v000011ABd00004362sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte)) - - pci:v000011ABd00004362sv00001462sd0000058C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (MSI) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (MSI)) - - pci:v000011ABd00004362sv000014C0sd00000012* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) - - pci:v000011ABd00004362sv00001558sd000004A0* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Clevo) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Clevo)) - - pci:v000011ABd00004362sv000015BDsd00001003* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (DFI) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (DFI)) - - pci:v000011ABd00004362sv0000161Fsd0000203C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) - - pci:v000011ABd00004362sv0000161Fsd0000203D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) - - pci:v000011ABd00004362sv00001695sd00009029* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Epox) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Epox)) - - pci:v000011ABd00004362sv000017F2sd00002C08* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Albatron) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Albatron)) - - pci:v000011ABd00004362sv000017FFsd00000585* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Quanta) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Quanta)) - - pci:v000011ABd00004362sv00001849sd00008053* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (ASRock) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (ASRock)) - - pci:v000011ABd00004362sv00001854sd0000000B* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000000C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000010* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000013* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000014* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000015* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001A* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001B* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001F* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000021* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000022* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv0000270Fsd00002801* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Chaintech) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Chaintech)) - - pci:v000011ABd00004362sv0000A0A0sd00000506* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Aopen) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Aopen)) - - pci:v000011ABd00004363* - ID_MODEL_FROM_DATABASE=88E8055 PCI-E Gigabit Ethernet Controller -@@ -35088,10 +35088,10 @@ pci:v000011ABd00004364* - ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller - - pci:v000011ABd00004364sv00001043sd000081F8* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (Motherboard) - - pci:v000011ABd00004364sv000011BAsd000000BA* -- ID_MODEL_FROM_DATABASE=8056 Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (8056 Gigabit Ethernet Controller) - - pci:v000011ABd00004365* - ID_MODEL_FROM_DATABASE=88E8070 based Ethernet Controller -@@ -35112,7 +35112,7 @@ pci:v000011ABd0000436A* - ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller - - pci:v000011ABd0000436Asv000011ABsd000000BA* -- ID_MODEL_FROM_DATABASE=Imac 8,1 Wired Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller (Imac 8,1 Wired Ethernet Adapter) - - pci:v000011ABd0000436B* - ID_MODEL_FROM_DATABASE=88E8071 PCI-E Gigabit Ethernet Controller -@@ -35178,7 +35178,7 @@ pci:v000011ABd00006101* - ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface - - pci:v000011ABd00006101sv00001043sd000082E0* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface (P5K PRO Motherboard) - - pci:v000011ABd00006111* - ID_MODEL_FROM_DATABASE=88SE6111 1-port PATA133(IDE) and 1-port SATA II Controllers -@@ -35217,7 +35217,7 @@ pci:v000011ABd00006480* - ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller - - pci:v000011ABd00006480sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K CompactPCI single board computer -+ ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller (C2K CompactPCI single board computer) - - pci:v000011ABd00006485* - ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller, Revision B -@@ -35226,7 +35226,7 @@ pci:v000011ABd00007042* - ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II - - pci:v000011ABd00007042sv000016B8sd0000434B* -- ID_MODEL_FROM_DATABASE=Tempo SATA E4P -+ ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II (Tempo SATA E4P) - - pci:v000011ABd00007810* - ID_MODEL_FROM_DATABASE=MV78100 [Discovery Innovation] ARM SoC -@@ -35259,19 +35259,19 @@ pci:v000011ADd00000002sv000011ADsd0000FFFF* - ID_MODEL_FROM_DATABASE=LNE100TX - - pci:v000011ADd00000002sv00001385sd0000F004* -- ID_MODEL_FROM_DATABASE=FA310TX -+ ID_MODEL_FROM_DATABASE=LNE100TX (FA310TX) - - pci:v000011ADd00000002sv00002646sd0000F002* -- ID_MODEL_FROM_DATABASE=KNE110TX EtheRx Fast Ethernet -+ ID_MODEL_FROM_DATABASE=LNE100TX (KNE110TX EtheRx Fast Ethernet) - - pci:v000011ADd0000C115* - ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] - - pci:v000011ADd0000C115sv000011ADsd0000C001* -- ID_MODEL_FROM_DATABASE=LNE100TX [ver 2.0] -+ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (LNE100TX [ver 2.0]) - - pci:v000011ADd0000C115sv00002646sd0000000B* -- ID_MODEL_FROM_DATABASE=KNE111TX -+ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (KNE111TX) - - pci:v000011AE* - ID_VENDOR_FROM_DATABASE=Aztech System Ltd -@@ -35355,28 +35355,28 @@ pci:v000011BDd00000040* - ID_MODEL_FROM_DATABASE=Royal TS Function 1 - - pci:v000011BDd00000040sv000011BDsd00000044* -- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 1 -+ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV 2000i Dual DVB-T Pro PCI Tuner 1) - - pci:v000011BDd00000040sv000011BDsd00000045* -- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 1 -+ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV Dual Sat Pro PCI 4000i Tuner 1) - - pci:v000011BDd00000041* - ID_MODEL_FROM_DATABASE=RoyalTS Function 2 - - pci:v000011BDd00000041sv000011BDsd00000044* -- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 2 -+ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV 2000i Dual DVB-T Pro PCI Tuner 2) - - pci:v000011BDd00000041sv000011BDsd00000045* -- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 2 -+ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV Dual Sat Pro PCI 4000i Tuner 2) - - pci:v000011BDd00000042* - ID_MODEL_FROM_DATABASE=Royal TS Function 3 - - pci:v000011BDd00000042sv000011BDsd00000044* -- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Common -+ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV 2000i Dual DVB-T Pro PCI Common) - - pci:v000011BDd00000042sv000011BDsd00000045* -- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Common -+ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV Dual Sat Pro PCI 4000i Common) - - pci:v000011BDd00000051* - ID_MODEL_FROM_DATABASE=PCTV HD 800i -@@ -35400,154 +35400,154 @@ pci:v000011C1d00000440* - ID_MODEL_FROM_DATABASE=56k WinModem - - pci:v000011C1d00000440sv00001033sd00008015* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv00001033sd00008047* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv00001033sd0000804F* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000010CFsd0000102C* -- ID_MODEL_FROM_DATABASE=LB LT Modem V.90 56k -+ ID_MODEL_FROM_DATABASE=56k WinModem (LB LT Modem V.90 56k) - - pci:v000011C1d00000440sv000010CFsd0000104A* -- ID_MODEL_FROM_DATABASE=BIBLO LT Modem 56k -+ ID_MODEL_FROM_DATABASE=56k WinModem (BIBLO LT Modem 56k) - - pci:v000011C1d00000440sv000010CFsd0000105F* -- ID_MODEL_FROM_DATABASE=LB2 LT Modem V.90 56k -+ ID_MODEL_FROM_DATABASE=56k WinModem (LB2 LT Modem V.90 56k) - - pci:v000011C1d00000440sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Internal V.90 Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) - - pci:v000011C1d00000440sv000011C1sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv0000122Dsd00004101* -- ID_MODEL_FROM_DATABASE=MDP7800-U Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) - - pci:v000011C1d00000440sv0000122Dsd00004102* -- ID_MODEL_FROM_DATABASE=MDP7800SP-U Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800SP-U Modem) - - pci:v000011C1d00000440sv000013E0sd00000040* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd00000441* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd00000450* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd0000F100* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd0000F101* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv0000144Dsd00002101* -- ID_MODEL_FROM_DATABASE=LT56PV Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PV Modem) - - pci:v000011C1d00000440sv0000149Fsd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000441* - ID_MODEL_FROM_DATABASE=56k WinModem - - pci:v000011C1d00000441sv00001033sd0000804D* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv00001033sd00008065* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv00001092sd00000440* -- ID_MODEL_FROM_DATABASE=Supra 56i -+ ID_MODEL_FROM_DATABASE=56k WinModem (Supra 56i) - - pci:v000011C1d00000441sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Internal V.90 Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) - - pci:v000011C1d00000441sv000011C1sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000011C1sd00000441* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv0000122Dsd00004100* -- ID_MODEL_FROM_DATABASE=MDP7800-U Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) - - pci:v000011C1d00000441sv000013E0sd00000040* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000100* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000410* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000420* -- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem -+ ID_MODEL_FROM_DATABASE=56k WinModem (TelePath Internet 56k WinModem) - - pci:v000011C1d00000441sv000013E0sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000443* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd0000F102* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv00001416sd00009804* -- ID_MODEL_FROM_DATABASE=CommWave 56k Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (CommWave 56k Modem) - - pci:v000011C1d00000441sv0000141Dsd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv0000144Fsd00000441* -- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) - - pci:v000011C1d00000441sv0000144Fsd00000449* -- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) - - pci:v000011C1d00000441sv0000144Fsd0000110D* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) - - pci:v000011C1d00000441sv00001468sd00000441* -- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DF Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Presario 56k V.90 DF Modem) - - pci:v000011C1d00000441sv00001668sd00000440* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) - - pci:v000011C1d00000442* - ID_MODEL_FROM_DATABASE=56k WinModem - - pci:v000011C1d00000442sv000011C1sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000011C1sd00000442* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000013E0sd00000412* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000013E0sd00000442* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000013FCsd00002471* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv0000144Dsd00002104* -- ID_MODEL_FROM_DATABASE=LT56PT Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PT Modem) - - pci:v000011C1d00000442sv0000144Fsd00001104* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv0000149Fsd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv00001668sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000443* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35559,10 +35559,10 @@ pci:v000011C1d00000445* - ID_MODEL_FROM_DATABASE=LT WinModem - - pci:v000011C1d00000445sv00008086sd00002203* -- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card) -+ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card)) - - pci:v000011C1d00000445sv00008086sd00002204* -- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI on Armada E500 -+ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI on Armada E500) - - pci:v000011C1d00000446* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35574,64 +35574,64 @@ pci:v000011C1d00000448* - ID_MODEL_FROM_DATABASE=WinModem 56k - - pci:v000011C1d00000448sv00001014sd00000131* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=WinModem 56k (Lucent Win Modem) - - pci:v000011C1d00000448sv00001033sd00008066* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000448sv000013E0sd00000030* -- ID_MODEL_FROM_DATABASE=56k Voice Modem -+ ID_MODEL_FROM_DATABASE=WinModem 56k (56k Voice Modem) - - pci:v000011C1d00000448sv000013E0sd00000040* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000448sv00001668sd00002400* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k (MiniPCI Ethernet+Modem) -+ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k (MiniPCI Ethernet+Modem)) - - pci:v000011C1d00000449* - ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k - - pci:v000011C1d00000449sv00000E11sd0000B14D* -- ID_MODEL_FROM_DATABASE=56k V.90 Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (56k V.90 Modem) - - pci:v000011C1d00000449sv00001014sd0000018C* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (ThinkPad 600X) - - pci:v000011C1d00000449sv000013E0sd00000020* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000449sv000013E0sd00000041* -- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (TelePath Internet 56k WinModem) - - pci:v000011C1d00000449sv00001436sd00000440* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) - - pci:v000011C1d00000449sv0000144Fsd00000449* -- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DFi Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent 56k V.90 DFi Modem) - - pci:v000011C1d00000449sv00001468sd00000410* -- ID_MODEL_FROM_DATABASE=IBM ThinkPad T23 -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (IBM ThinkPad T23) - - pci:v000011C1d00000449sv00001468sd00000440* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) - - pci:v000011C1d00000449sv00001468sd00000449* -- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DFi Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Presario 56k V.90 DFi Modem) - - pci:v000011C1d0000044A* - ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) - - pci:v000011C1d0000044Asv000010CFsd00001072* -- ID_MODEL_FROM_DATABASE=LB Global LT Modem -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LB Global LT Modem) - - pci:v000011C1d0000044Asv000013E0sd00000012* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d0000044Asv000013E0sd00000042* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d0000044Asv0000144Fsd00001005* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d0000044B* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35652,13 +35652,13 @@ pci:v000011C1d00000450* - ID_MODEL_FROM_DATABASE=LT WinModem - - pci:v000011C1d00000450sv00001033sd000080A8* -- ID_MODEL_FROM_DATABASE=Versa Note Vxi -+ ID_MODEL_FROM_DATABASE=LT WinModem (Versa Note Vxi) - - pci:v000011C1d00000450sv0000144Fsd00004005* -- ID_MODEL_FROM_DATABASE=Magnia SG20 -+ ID_MODEL_FROM_DATABASE=LT WinModem (Magnia SG20) - - pci:v000011C1d00000450sv00001468sd00000450* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=LT WinModem (Evo N600c) - - pci:v000011C1d00000451* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35733,22 +35733,22 @@ pci:v000011C1d00005811* - ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller - - pci:v000011C1d00005811sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion a1677c) - - pci:v000011C1d00005811sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Asus IPIBL-LB Motherboard) - - pci:v000011C1d00005811sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion p6310f) - - pci:v000011C1d00005811sv00001043sd00008294* -- ID_MODEL_FROM_DATABASE=LSI FW322/323 IEEE 1394a FireWire Controller -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (LSI FW322/323 IEEE 1394a FireWire Controller) - - pci:v000011C1d00005811sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (D865PERL mainboard) - - pci:v000011C1d00005811sv0000DEADsd00000800* -- ID_MODEL_FROM_DATABASE=FireWire Host Bus Adapter -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (FireWire Host Bus Adapter) - - pci:v000011C1d00005901* - ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller -@@ -35757,10 +35757,10 @@ pci:v000011C1d00005901sv000011C1sd00005900* - ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller - - pci:v000011C1d00005901sv00001443sd00000643* -- ID_MODEL_FROM_DATABASE=FireBoard800-e V.2 -+ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FireBoard800-e V.2) - - pci:v000011C1d00005901sv00001546sd00000643* -- ID_MODEL_FROM_DATABASE=FWB-PCIE1X2x -+ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FWB-PCIE1X2x) - - pci:v000011C1d00005903* - ID_MODEL_FROM_DATABASE=FW533 [TrueFire] PCIe 1394a Controller -@@ -35769,7 +35769,7 @@ pci:v000011C1d00008110* - ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch - - pci:v000011C1d00008110sv000012D9sd0000000C* -- ID_MODEL_FROM_DATABASE=E1/T1 PMXc cPCI carrier card -+ ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch (E1/T1 PMXc cPCI carrier card) - - pci:v000011C1d0000AB10* - ID_MODEL_FROM_DATABASE=WL60010 Wireless LAN MAC -@@ -35778,16 +35778,16 @@ pci:v000011C1d0000AB11* - ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC - - pci:v000011C1d0000AB11sv000011C1sd0000AB12* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1102) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1102)) - - pci:v000011C1d0000AB11sv000011C1sd0000AB13* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0512) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0512)) - - pci:v000011C1d0000AB11sv000011C1sd0000AB15* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1106) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1106)) - - pci:v000011C1d0000AB11sv000011C1sd0000AB16* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0516) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0516)) - - pci:v000011C1d0000AB20* - ID_MODEL_FROM_DATABASE=ORiNOCO PCI Adapter -@@ -35856,10 +35856,10 @@ pci:v000011CBd00002000* - ID_MODEL_FROM_DATABASE=PCI_9050 - - pci:v000011CBd00002000sv000011CBsd00000200* -- ID_MODEL_FROM_DATABASE=SX -+ ID_MODEL_FROM_DATABASE=PCI_9050 (SX) - - pci:v000011CBd00002000sv000011CBsd0000B008* -- ID_MODEL_FROM_DATABASE=I/O8+ -+ ID_MODEL_FROM_DATABASE=PCI_9050 (I/O8+) - - pci:v000011CBd00004000* - ID_MODEL_FROM_DATABASE=SUPI_1 -@@ -35949,28 +35949,28 @@ pci:v000011DEd00006057* - ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset - - pci:v000011DEd00006057sv00001031sd00007EFE* -- ID_MODEL_FROM_DATABASE=DC10 Plus -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (DC10 Plus) - - pci:v000011DEd00006057sv00001031sd0000FC00* -- ID_MODEL_FROM_DATABASE=MiroVIDEO DC50, Motion JPEG Capture/CODEC Board -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (MiroVIDEO DC50, Motion JPEG Capture/CODEC Board) - - pci:v000011DEd00006057sv000012F8sd00008A02* -- ID_MODEL_FROM_DATABASE=Tekram Video Kit -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (Tekram Video Kit) - - pci:v000011DEd00006057sv000013CAsd00004231* -- ID_MODEL_FROM_DATABASE=JPEG/TV Card -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (JPEG/TV Card) - - pci:v000011DEd00006120* - ID_MODEL_FROM_DATABASE=ZR36120 - - pci:v000011DEd00006120sv00001328sd0000F001* -- ID_MODEL_FROM_DATABASE=Cinemaster C DVD Decoder -+ ID_MODEL_FROM_DATABASE=ZR36120 (Cinemaster C DVD Decoder) - - pci:v000011DEd00006120sv000013C2sd00000000* -- ID_MODEL_FROM_DATABASE=MediaFocus Satellite TV Card -+ ID_MODEL_FROM_DATABASE=ZR36120 (MediaFocus Satellite TV Card) - - pci:v000011DEd00006120sv00001DE1sd00009FFF* -- ID_MODEL_FROM_DATABASE=Video Kit C210 -+ ID_MODEL_FROM_DATABASE=ZR36120 (Video Kit C210) - - pci:v000011DF* - ID_VENDOR_FROM_DATABASE=New Wave PDG -@@ -36102,13 +36102,13 @@ pci:v000011F6d00002011* - ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 - - pci:v000011F6d00002011sv000011F6sd00002011* -- ID_MODEL_FROM_DATABASE=RL100-ATX -+ ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 (RL100-ATX) - - pci:v000011F6d00002201* - ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) - - pci:v000011F6d00002201sv000011F6sd00002011* -- ID_MODEL_FROM_DATABASE=ReadyLink 100TX -+ ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) (ReadyLink 100TX) - - pci:v000011F6d00009881* - ID_MODEL_FROM_DATABASE=RL100TX Fast Ethernet -@@ -36138,10 +36138,10 @@ pci:v000011F8d00008032* - ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN - - pci:v000011F8d00008032sv0000117Csd0000003B* -- ID_MODEL_FROM_DATABASE=Celerity FC-82EN Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-82EN Fibre Channel Adapter) - - pci:v000011F8d00008032sv0000117Csd0000003C* -- ID_MODEL_FROM_DATABASE=Celerity FC-84EN Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-84EN Fibre Channel Adapter) - - pci:v000011F9* - ID_VENDOR_FROM_DATABASE=I-Cube Inc -@@ -36285,16 +36285,16 @@ pci:v00001202d00004300* - ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter - - pci:v00001202d00004300sv00001202sd00009841* -- ID_MODEL_FROM_DATABASE=SK-9841 LX -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX) - - pci:v00001202d00004300sv00001202sd00009842* -- ID_MODEL_FROM_DATABASE=SK-9841 LX dual link -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX dual link) - - pci:v00001202d00004300sv00001202sd00009843* -- ID_MODEL_FROM_DATABASE=SK-9843 SX -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX) - - pci:v00001202d00004300sv00001202sd00009844* -- ID_MODEL_FROM_DATABASE=SK-9843 SX dual link -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX dual link) - - pci:v00001203* - ID_VENDOR_FROM_DATABASE=Bayer Corporation, Agfa Division -@@ -36411,7 +36411,7 @@ pci:v00001217d000000F7* - ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) - - pci:v00001217d000000F7sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) - - pci:v00001217d000010F7* - ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller -@@ -36420,7 +36420,7 @@ pci:v00001217d000011F7* - ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller - - pci:v00001217d000011F7sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller (Precision M4600) - - pci:v00001217d000013F7* - ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller -@@ -36447,31 +36447,31 @@ pci:v00001217d00006933* - ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller - - pci:v00001217d00006933sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller (Travelmate 612 TX) - - pci:v00001217d00006972* - ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller - - pci:v00001217d00006972sv00001014sd0000020C* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (ThinkPad R30) - - pci:v00001217d00006972sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Latitude D500) - - pci:v00001217d00006972sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Magnia Z310) - - pci:v00001217d00007110* - ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator - - pci:v00001217d00007110sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC8000 laptop) - - pci:v00001217d00007110sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC6000 laptop) - - pci:v00001217d00007110sv00001734sd0000106C* -- ID_MODEL_FROM_DATABASE=Amilo A1645 -+ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (Amilo A1645) - - pci:v00001217d00007112* - ID_MODEL_FROM_DATABASE=OZ711EC1/M1 SmartCardBus/MemoryCardBus Controller -@@ -36480,7 +36480,7 @@ pci:v00001217d00007113* - ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller - - pci:v00001217d00007113sv00001025sd00000035* -- ID_MODEL_FROM_DATABASE=TravelMate 660 -+ ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller (TravelMate 660) - - pci:v00001217d00007114* - ID_MODEL_FROM_DATABASE=OZ711M1/MC1 4-in-1 MemoryCardBus Controller -@@ -36489,13 +36489,13 @@ pci:v00001217d00007120* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller - - pci:v00001217d00007120sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) - - pci:v00001217d00007130* - ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller - - pci:v00001217d00007130sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) - - pci:v00001217d00007134* - ID_MODEL_FROM_DATABASE=OZ711MP1/MS1 MemoryCardBus Controller -@@ -36519,13 +36519,13 @@ pci:v00001217d00007223* - ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller - - pci:v00001217d00007223sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC8000 laptop) - - pci:v00001217d00007223sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC6000 laptop) - - pci:v00001217d00007223sv000010CFsd000011C4* -- ID_MODEL_FROM_DATABASE=Lifebook P5020D Laptop -+ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (Lifebook P5020D Laptop) - - pci:v00001217d00007233* - ID_MODEL_FROM_DATABASE=OZ711MP3/MS3 4-in-1 MemoryCardBus Controller -@@ -36540,7 +36540,7 @@ pci:v00001217d00008320* - ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller - - pci:v00001217d00008320sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) - - pci:v00001217d00008321* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller -@@ -36549,7 +36549,7 @@ pci:v00001217d00008330* - ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller - - pci:v00001217d00008330sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller (Precision M4600) - - pci:v00001217d00008331* - ID_MODEL_FROM_DATABASE=O2 Flash Memory Card -@@ -36576,52 +36576,52 @@ pci:v0000121Ad00000003* - ID_MODEL_FROM_DATABASE=Voodoo Banshee - - pci:v0000121Ad00000003sv00001092sd00000003* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00004000* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00004002* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00004801* -- ID_MODEL_FROM_DATABASE=Monster Fusion AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) - - pci:v0000121Ad00000003sv00001092sd00004803* -- ID_MODEL_FROM_DATABASE=Monster Fusion AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) - - pci:v0000121Ad00000003sv00001092sd00008030* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00008035* -- ID_MODEL_FROM_DATABASE=Monster Fusion AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) - - pci:v0000121Ad00000003sv000010B0sd00000001* -- ID_MODEL_FROM_DATABASE=Dragon 4000 -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Dragon 4000) - - pci:v0000121Ad00000003sv00001102sd00001017* -- ID_MODEL_FROM_DATABASE=3D Blaster Banshee PCI (CT6760) -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee PCI (CT6760)) - - pci:v0000121Ad00000003sv00001102sd00001018* -- ID_MODEL_FROM_DATABASE=3D Blaster Banshee VE -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee VE) - - pci:v0000121Ad00000003sv0000121Asd00000001* -- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP) - - pci:v0000121Ad00000003sv0000121Asd00000003* -- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP SGRAM -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP SGRAM) - - pci:v0000121Ad00000003sv0000121Asd00000004* - ID_MODEL_FROM_DATABASE=Voodoo Banshee - - pci:v0000121Ad00000003sv0000139Csd00000016* -- ID_MODEL_FROM_DATABASE=Raven -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) - - pci:v0000121Ad00000003sv0000139Csd00000017* -- ID_MODEL_FROM_DATABASE=Raven -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) - - pci:v0000121Ad00000003sv000014AFsd00000002* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Maxi Gamer Phoenix) - - pci:v0000121Ad00000004* - ID_MODEL_FROM_DATABASE=Voodoo Banshee [Velocity 100] -@@ -36630,70 +36630,70 @@ pci:v0000121Ad00000005* - ID_MODEL_FROM_DATABASE=Voodoo 3 - - pci:v0000121Ad00000005sv0000121Asd00000004* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000030* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000031* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000034* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000036* -- ID_MODEL_FROM_DATABASE=Voodoo3 2000 PCI -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 2000 PCI) - - pci:v0000121Ad00000005sv0000121Asd00000037* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000038* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd0000003A* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000044* -- ID_MODEL_FROM_DATABASE=Voodoo3 -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3) - - pci:v0000121Ad00000005sv0000121Asd0000004B* -- ID_MODEL_FROM_DATABASE=Velocity 100 -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 100) - - pci:v0000121Ad00000005sv0000121Asd0000004C* -- ID_MODEL_FROM_DATABASE=Velocity 200 -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 200) - - pci:v0000121Ad00000005sv0000121Asd0000004D* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd0000004E* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000051* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000052* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000057* -- ID_MODEL_FROM_DATABASE=Voodoo3 3000 PCI -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3000 PCI) - - pci:v0000121Ad00000005sv0000121Asd00000060* -- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (NTSC) -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (NTSC)) - - pci:v0000121Ad00000005sv0000121Asd00000061* -- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (PAL) -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (PAL)) - - pci:v0000121Ad00000005sv0000121Asd00000062* -- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (SECAM) -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (SECAM)) - - pci:v0000121Ad00000009* - ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 - - pci:v0000121Ad00000009sv0000121Asd00000003* -- ID_MODEL_FROM_DATABASE=Voodoo5 PCI 5500 -+ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 PCI 5500) - - pci:v0000121Ad00000009sv0000121Asd00000009* -- ID_MODEL_FROM_DATABASE=Voodoo5 AGP 5500/6000 -+ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 AGP 5500/6000) - - pci:v0000121Ad00000057* - ID_MODEL_FROM_DATABASE=Voodoo 3/3000 [Avenger] -@@ -36930,31 +36930,31 @@ pci:v0000123Fd00008120* - ID_MODEL_FROM_DATABASE=DVxplore Codec - - pci:v0000123Fd00008120sv000010DEsd000001E1* -- ID_MODEL_FROM_DATABASE=NVTV PAL -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) - - pci:v0000123Fd00008120sv000010DEsd000001E2* -- ID_MODEL_FROM_DATABASE=NVTV NTSC -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) - - pci:v0000123Fd00008120sv000010DEsd000001E3* -- ID_MODEL_FROM_DATABASE=NVTV PAL -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) - - pci:v0000123Fd00008120sv000010DEsd00000248* -- ID_MODEL_FROM_DATABASE=NVTV NTSC -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) - - pci:v0000123Fd00008120sv000010DEsd00000249* -- ID_MODEL_FROM_DATABASE=NVTV PAL -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) - - pci:v0000123Fd00008120sv000011BDsd00000006* -- ID_MODEL_FROM_DATABASE=DV500 E4 -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) - - pci:v0000123Fd00008120sv000011BDsd0000000A* -- ID_MODEL_FROM_DATABASE=DV500 E4 -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) - - pci:v0000123Fd00008120sv000011BDsd0000000F* -- ID_MODEL_FROM_DATABASE=DV500 E4 -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) - - pci:v0000123Fd00008120sv00001809sd00000016* -- ID_MODEL_FROM_DATABASE=Emuzed MAUI-III PCI PVR FM TV -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (Emuzed MAUI-III PCI PVR FM TV) - - pci:v0000123Fd00008888* - ID_MODEL_FROM_DATABASE=Cinemaster C 3.0 DVD Decoder -@@ -36981,10 +36981,10 @@ pci:v00001242d00001560* - ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller - - pci:v00001242d00001560sv00001242sd00006562* -- ID_MODEL_FROM_DATABASE=FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter) - - pci:v00001242d00001560sv00001242sd0000656A* -- ID_MODEL_FROM_DATABASE=FCX-6562 PCI-X Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX-6562 PCI-X Fibre Channel Adapter) - - pci:v00001242d00004643* - ID_MODEL_FROM_DATABASE=FCI-1063 Fibre Channel Adapter -@@ -37011,7 +37011,7 @@ pci:v00001244d00000A00* - ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] - - pci:v00001244d00000A00sv00001244sd00000A00* -- ID_MODEL_FROM_DATABASE=FRITZ!Card ISDN Controller -+ ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] (FRITZ!Card ISDN Controller) - - pci:v00001244d00000E00* - ID_MODEL_FROM_DATABASE=Fritz!PCI v2.0 ISDN -@@ -37053,7 +37053,7 @@ pci:v0000124Bd00000040* - ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier - - pci:v0000124Bd00000040sv0000124Bsd00009080* -- ID_MODEL_FROM_DATABASE=PCI9080 Bridge -+ ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier (PCI9080 Bridge) - - pci:v0000124C* - ID_VENDOR_FROM_DATABASE=Solitron Technologies, Inc. -@@ -37164,7 +37164,7 @@ pci:v0000125Bd00001400* - ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller - - pci:v0000125Bd00001400sv00001186sd00001100* -- ID_MODEL_FROM_DATABASE=AX8814X Based PCI Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller (AX8814X Based PCI Fast Ethernet Adapter) - - pci:v0000125C* - ID_VENDOR_FROM_DATABASE=Aurora Technologies, Inc. -@@ -37188,61 +37188,61 @@ pci:v0000125Dd00001968* - ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 - - pci:v0000125Dd00001968sv00001028sd00000085* -- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 PCI -+ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 PCI) - - pci:v0000125Dd00001968sv00001033sd00008051* -- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 Audiodrive) - - pci:v0000125Dd00001969* - ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive - - pci:v0000125Dd00001969sv00001014sd00000166* -- ID_MODEL_FROM_DATABASE=ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard -+ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard) - - pci:v0000125Dd00001969sv0000125Dsd00008888* -- ID_MODEL_FROM_DATABASE=Solo-1 Audio Adapter -+ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Solo-1 Audio Adapter) - - pci:v0000125Dd00001969sv0000153Bsd0000111B* -- ID_MODEL_FROM_DATABASE=Terratec 128i PCI -+ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Terratec 128i PCI) - - pci:v0000125Dd00001978* - ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E - - pci:v0000125Dd00001978sv00000E11sd0000B112* -- ID_MODEL_FROM_DATABASE=Armada M700/E500 -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Armada M700/E500) - - pci:v0000125Dd00001978sv00001033sd0000803C* -- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) - - pci:v0000125Dd00001978sv00001033sd00008058* -- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) - - pci:v0000125Dd00001978sv00001092sd00004000* -- ID_MODEL_FROM_DATABASE=Monster Sound MX400 -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Monster Sound MX400) - - pci:v0000125Dd00001978sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) - - pci:v0000125Dd00001988* - ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 - - pci:v0000125Dd00001988sv00000E11sd00000098* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Evo N600c) - - pci:v0000125Dd00001988sv00001092sd00004100* -- ID_MODEL_FROM_DATABASE=Sonic Impact S100 -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Sonic Impact S100) - - pci:v0000125Dd00001988sv0000125Dsd00000431* -- ID_MODEL_FROM_DATABASE=Allegro AudioDrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) - - pci:v0000125Dd00001988sv0000125Dsd00001988* -- ID_MODEL_FROM_DATABASE=ESS Allegro-1 Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (ESS Allegro-1 Audiodrive) - - pci:v0000125Dd00001988sv0000125Dsd00001998* -- ID_MODEL_FROM_DATABASE=Allegro AudioDrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) - - pci:v0000125Dd00001988sv0000125Dsd00001999* -- ID_MODEL_FROM_DATABASE=Allegro-1 AudioDrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro-1 AudioDrive) - - pci:v0000125Dd00001989* - ID_MODEL_FROM_DATABASE=ESS Modem -@@ -37254,13 +37254,13 @@ pci:v0000125Dd00001998* - ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator - - pci:v0000125Dd00001998sv00001028sd000000B1* -- ID_MODEL_FROM_DATABASE=Latitude C600 -+ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C600) - - pci:v0000125Dd00001998sv00001028sd000000E5* -- ID_MODEL_FROM_DATABASE=Latitude C810 -+ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C810) - - pci:v0000125Dd00001998sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i (Dell Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (ES1983S Maestro-3i (Dell Inspiron 8100)) - - pci:v0000125Dd00001999* - ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Modem Accelerator -@@ -37281,34 +37281,34 @@ pci:v0000125Dd00002898* - ID_MODEL_FROM_DATABASE=ES2898 Modem - - pci:v0000125Dd00002898sv0000125Dsd00000424* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000425* -- ID_MODEL_FROM_DATABASE=ES56T-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56T-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000426* -- ID_MODEL_FROM_DATABASE=ES56V-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56V-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000427* -- ID_MODEL_FROM_DATABASE=VW-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (VW-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000428* -- ID_MODEL_FROM_DATABASE=ES56ST-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56ST-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000429* -- ID_MODEL_FROM_DATABASE=ES56SV-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56SV-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000147Asd0000C001* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000148Dsd00001030* -- ID_MODEL_FROM_DATABASE=HCF WV-PI56 [ESS ES56-PI Data Fax Modem] -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (HCF WV-PI56 [ESS ES56-PI Data Fax Modem]) - - pci:v0000125Dd00002898sv000014FEsd00000428* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125Dd00002898sv000014FEsd00000429* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125E* - ID_VENDOR_FROM_DATABASE=Specialvideo Engineering SRL -@@ -37323,40 +37323,40 @@ pci:v00001260d00003872* - ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] - - pci:v00001260d00003872sv00001468sd00000202* -- ID_MODEL_FROM_DATABASE=LAN-Express IEEE 802.11b Wireless LAN -+ ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] (LAN-Express IEEE 802.11b Wireless LAN) - - pci:v00001260d00003873* - ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] - - pci:v00001260d00003873sv000010CFsd00001169* -- ID_MODEL_FROM_DATABASE=MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874]) - - pci:v00001260d00003873sv00001186sd00003501* -- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874]) - - pci:v00001260d00003873sv00001186sd00003700* -- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev E1) [ISL3872] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev E1) [ISL3872]) - - pci:v00001260d00003873sv00001385sd00004105* -- ID_MODEL_FROM_DATABASE=MA311 802.11b wireless adapter [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MA311 802.11b wireless adapter [ISL3874]) - - pci:v00001260d00003873sv00001668sd00000414* -- ID_MODEL_FROM_DATABASE=HWP01170-01 802.11b PCI Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (HWP01170-01 802.11b PCI Wireless Adapter) - - pci:v00001260d00003873sv000016A5sd00001601* -- ID_MODEL_FROM_DATABASE=AIR.mate PC-400 PCI Wireless LAN Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (AIR.mate PC-400 PCI Wireless LAN Adapter) - - pci:v00001260d00003873sv00001737sd00003874* -- ID_MODEL_FROM_DATABASE=WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874]) - - pci:v00001260d00003873sv00004033sd00007033* -- ID_MODEL_FROM_DATABASE=PCW200 802.11b Wireless PCI Adapter [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (PCW200 802.11b Wireless PCI Adapter [ISL3874]) - - pci:v00001260d00003873sv00008086sd00002510* -- ID_MODEL_FROM_DATABASE=M3AWEB Wireless 802.11b MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (M3AWEB Wireless 802.11b MiniPCI Adapter) - - pci:v00001260d00003873sv00008086sd00002513* -- ID_MODEL_FROM_DATABASE=Wireless 802.11b MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (Wireless 802.11b MiniPCI Adapter) - - pci:v00001260d00003877* - ID_MODEL_FROM_DATABASE=ISL3877 [Prism Indigo] -@@ -37365,58 +37365,58 @@ pci:v00001260d00003886* - ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] - - pci:v00001260d00003886sv000017CFsd00000037* -- ID_MODEL_FROM_DATABASE=XG-901 and clones Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] (XG-901 and clones Wireless Adapter) - - pci:v00001260d00003890* - ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] - - pci:v00001260d00003890sv000010B8sd00002802* -- ID_MODEL_FROM_DATABASE=SMC2802W V1 Wireless PCI Adapter [ISL3890] -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V1 Wireless PCI Adapter [ISL3890]) - - pci:v00001260d00003890sv000010B8sd00002835* -- ID_MODEL_FROM_DATABASE=SMC2835W Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W Wireless Cardbus Adapter) - - pci:v00001260d00003890sv000010B8sd0000A835* -- ID_MODEL_FROM_DATABASE=SMC2835W V2 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V2 Wireless Cardbus Adapter) - - pci:v00001260d00003890sv00001113sd00004203* -- ID_MODEL_FROM_DATABASE=WN4201B -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WN4201B) - - pci:v00001260d00003890sv00001113sd00008201* -- ID_MODEL_FROM_DATABASE=T-Com T-Sinus 154pcicard Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Com T-Sinus 154pcicard Wireless PCI Adapter) - - pci:v00001260d00003890sv00001113sd0000B301* -- ID_MODEL_FROM_DATABASE=T-Sinus 154card Cardbus -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Sinus 154card Cardbus) - - pci:v00001260d00003890sv00001113sd0000EE03* -- ID_MODEL_FROM_DATABASE=SMC2802W V2 Wireless PCI Adapter [ISL3886] -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V2 Wireless PCI Adapter [ISL3886]) - - pci:v00001260d00003890sv00001113sd0000EE08* -- ID_MODEL_FROM_DATABASE=SMC2835W V3 EU Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V3 EU Wireless Cardbus Adapter) - - pci:v00001260d00003890sv00001186sd00003202* -- ID_MODEL_FROM_DATABASE=DWL-G650 A1 Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (DWL-G650 A1 Wireless Adapter) - - pci:v00001260d00003890sv00001259sd0000C104* -- ID_MODEL_FROM_DATABASE=CG-WLCB54GT Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (CG-WLCB54GT Wireless Adapter) - - pci:v00001260d00003890sv00001260sd00000000* -- ID_MODEL_FROM_DATABASE=WG511 v1 54 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v1 54 Mbps Wireless PC Card) - - pci:v00001260d00003890sv00001385sd00004800* -- ID_MODEL_FROM_DATABASE=WG511 v2/v3 54 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v2/v3 54 Mbps Wireless PC Card) - - pci:v00001260d00003890sv000016A5sd00001605* -- ID_MODEL_FROM_DATABASE=ALLNET ALL0271 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (ALLNET ALL0271 Wireless PCI Adapter) - - pci:v00001260d00003890sv000017CFsd00000014* -- ID_MODEL_FROM_DATABASE=XG-600 and clones Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-600 and clones Wireless Adapter) - - pci:v00001260d00003890sv000017CFsd00000020* -- ID_MODEL_FROM_DATABASE=XG-900 and clones Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-900 and clones Wireless Adapter) - - pci:v00001260d00003890sv0000187Esd00003403* -- ID_MODEL_FROM_DATABASE=G-110 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (G-110 802.11g Wireless Cardbus Adapter) - - pci:v00001260d00008130* - ID_MODEL_FROM_DATABASE=HMP8130 NTSC/PAL Video Decoder -@@ -37428,7 +37428,7 @@ pci:v00001260d0000FFFF* - ID_MODEL_FROM_DATABASE=ISL3886IK - - pci:v00001260d0000FFFFsv00001260sd00000000* -- ID_MODEL_FROM_DATABASE=Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter -+ ID_MODEL_FROM_DATABASE=ISL3886IK (Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter) - - pci:v00001261* - ID_VENDOR_FROM_DATABASE=Matsushita-Kotobuki Electronics Industries, Ltd. -@@ -37455,7 +37455,7 @@ pci:v00001266d00001910* - ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter - - pci:v00001266d00001910sv00001266sd00001910* -- ID_MODEL_FROM_DATABASE=NE2000Plus Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter (NE2000Plus Ethernet Adapter) - - pci:v00001267* - ID_VENDOR_FROM_DATABASE=S. A. Telecommunications -@@ -37554,169 +37554,169 @@ pci:v00001274d00001371* - ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] - - pci:v00001274d00001371sv00000E11sd00000024* -- ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI on Motherboard Compaq Deskpro) - - pci:v00001274d00001371sv00000E11sd0000B1A7* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) - - pci:v00001274d00001371sv00001033sd000080AC* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) - - pci:v00001274d00001371sv00001042sd00001854* -- ID_MODEL_FROM_DATABASE=Tazer -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tazer) - - pci:v00001274d00001371sv0000107Bsd00008054* -- ID_MODEL_FROM_DATABASE=Tabor2 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tabor2) - - pci:v00001274d00001371sv00001274sd00001371* -- ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI 64V/128 / Creative Sound Blaster CT4810) - - pci:v00001274d00001371sv00001274sd00008001* -- ID_MODEL_FROM_DATABASE=CT4751 board -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (CT4751 board) - - pci:v00001274d00001371sv00001462sd00006470* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A) - - pci:v00001274d00001371sv00001462sd00006560* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10) - - pci:v00001274d00001371sv00001462sd00006630* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A) - - pci:v00001274d00001371sv00001462sd00006631* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A) - - pci:v00001274d00001371sv00001462sd00006632* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A) - - pci:v00001274d00001371sv00001462sd00006633* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A) - - pci:v00001274d00001371sv00001462sd00006820* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00) - - pci:v00001274d00001371sv00001462sd00006822* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A) - - pci:v00001274d00001371sv00001462sd00006830* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00) - - pci:v00001274d00001371sv00001462sd00006880* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00) - - pci:v00001274d00001371sv00001462sd00006900* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00) - - pci:v00001274d00001371sv00001462sd00006910* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6191 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6191) - - pci:v00001274d00001371sv00001462sd00006930* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6193 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6193) - - pci:v00001274d00001371sv00001462sd00006990* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A) - - pci:v00001274d00001371sv00001462sd00006991* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A) - - pci:v00001274d00001371sv000014A4sd00002077* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KR639 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KR639) - - pci:v00001274d00001371sv000014A4sd00002105* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR800 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR800) - - pci:v00001274d00001371sv000014A4sd00002107* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR801 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR801) - - pci:v00001274d00001371sv000014A4sd00002172* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard DR739 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard DR739) - - pci:v00001274d00001371sv00001509sd00009902* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW11 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW11) - - pci:v00001274d00001371sv00001509sd00009903* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW31 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW31) - - pci:v00001274d00001371sv00001509sd00009904* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KA11 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KA11) - - pci:v00001274d00001371sv00001509sd00009905* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KC13 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KC13) - - pci:v00001274d00001371sv0000152Dsd00008801* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810E -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810E) - - pci:v00001274d00001371sv0000152Dsd00008802* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810) - - pci:v00001274d00001371sv0000152Dsd00008803* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810E -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810E) - - pci:v00001274d00001371sv0000152Dsd00008804* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810-S -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810-S) - - pci:v00001274d00001371sv0000152Dsd00008805* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3820-S -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3820-S) - - pci:v00001274d00001371sv0000270Fsd00002001* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6CTR -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6CTR) - - pci:v00001274d00001371sv0000270Fsd00002200* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WTX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WTX) - - pci:v00001274d00001371sv0000270Fsd00003000* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WSV -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WSV) - - pci:v00001274d00001371sv0000270Fsd00003100* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV2 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV2) - - pci:v00001274d00001371sv0000270Fsd00003102* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV) - - pci:v00001274d00001371sv0000270Fsd00007060* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6ASA2 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6ASA2) - - pci:v00001274d00001371sv00008086sd00004249* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BI440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BI440ZX) - - pci:v00001274d00001371sv00008086sd0000424C* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BL440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BL440ZX) - - pci:v00001274d00001371sv00008086sd0000425A* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BZ440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BZ440ZX) - - pci:v00001274d00001371sv00008086sd00004341* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cayman -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cayman) - - pci:v00001274d00001371sv00008086sd00004343* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cape Cod -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cape Cod) - - pci:v00001274d00001371sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=D815EEA Motherboard -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (D815EEA Motherboard) - - pci:v00001274d00001371sv00008086sd00004649* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Fire Island -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Fire Island) - - pci:v00001274d00001371sv00008086sd0000464A* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard FJ440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard FJ440ZX) - - pci:v00001274d00001371sv00008086sd00004D4F* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Montreal -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Montreal) - - pci:v00001274d00001371sv00008086sd00004F43* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard OC440LX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard OC440LX) - - pci:v00001274d00001371sv00008086sd00005243* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard RC440BX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard RC440BX) - - pci:v00001274d00001371sv00008086sd00005352* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard SunRiver -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard SunRiver) - - pci:v00001274d00001371sv00008086sd00005643* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Vancouver -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Vancouver) - - pci:v00001274d00001371sv00008086sd00005753* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard WS440BX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard WS440BX) - - pci:v00001274d00005000* - ID_MODEL_FROM_DATABASE=ES1370 [AudioPCI] -@@ -37725,31 +37725,31 @@ pci:v00001274d00005880* - ID_MODEL_FROM_DATABASE=5880B [AudioPCI] - - pci:v00001274d00005880sv00001274sd00002000* -- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) - - pci:v00001274d00005880sv00001274sd00002003* -- ID_MODEL_FROM_DATABASE=Creative SoundBlaster AudioPCI 128 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative SoundBlaster AudioPCI 128) - - pci:v00001274d00005880sv00001274sd00005880* -- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) - - pci:v00001274d00005880sv00001274sd00008001* -- ID_MODEL_FROM_DATABASE=Sound Blaster 16PCI 4.1ch -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Sound Blaster 16PCI 4.1ch) - - pci:v00001274d00005880sv00001458sd0000A000* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6OXET -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6OXET) - - pci:v00001274d00005880sv00001462sd00006880* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard MS-6188 1.00 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard MS-6188 1.00) - - pci:v00001274d00005880sv0000270Fsd00002001* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6CTR -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6CTR) - - pci:v00001274d00005880sv0000270Fsd00002200* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6WTX -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6WTX) - - pci:v00001274d00005880sv0000270Fsd00007040* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6ATA4 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6ATA4) - - pci:v00001274d00008001* - ID_MODEL_FROM_DATABASE=CT5880 [AudioPCI] -@@ -37809,181 +37809,181 @@ pci:v0000127Ad00001002* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00001002sv00001092sd0000094C* -- ID_MODEL_FROM_DATABASE=SupraExpress 56i PRO [Diamond SUP2380] -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (SupraExpress 56i PRO [Diamond SUP2380]) - - pci:v0000127Ad00001002sv0000122Dsd00004002* -- ID_MODEL_FROM_DATABASE=HPG / MDP3858-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (HPG / MDP3858-U) - - pci:v0000127Ad00001002sv0000122Dsd00004005* -- ID_MODEL_FROM_DATABASE=MDP3858-E -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-E) - - pci:v0000127Ad00001002sv0000122Dsd00004007* -- ID_MODEL_FROM_DATABASE=MDP3858-A/-NZ -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-A/-NZ) - - pci:v0000127Ad00001002sv0000122Dsd00004012* -- ID_MODEL_FROM_DATABASE=MDP3858-SA -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-SA) - - pci:v0000127Ad00001002sv0000122Dsd00004017* -- ID_MODEL_FROM_DATABASE=MDP3858-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) - - pci:v0000127Ad00001002sv0000122Dsd00004018* -- ID_MODEL_FROM_DATABASE=MDP3858-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) - - pci:v0000127Ad00001002sv0000127Asd00001002* -- ID_MODEL_FROM_DATABASE=Rockwell 56K D/F HCF Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Rockwell 56K D/F HCF Modem) - - pci:v0000127Ad00001003* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00001003sv00000E11sd0000B0BC* -- ID_MODEL_FROM_DATABASE=229-DF Zephyr -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Zephyr) - - pci:v0000127Ad00001003sv00000E11sd0000B114* -- ID_MODEL_FROM_DATABASE=229-DF Cheetah -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Cheetah) - - pci:v0000127Ad00001003sv00001033sd0000802B* -- ID_MODEL_FROM_DATABASE=229-DF -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF) - - pci:v0000127Ad00001003sv000013DFsd00001003* -- ID_MODEL_FROM_DATABASE=PCI56RX Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PCI56RX Modem) - - pci:v0000127Ad00001003sv000013E0sd00000117* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv000013E0sd00000147* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 Spain V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 Spain V.90 Modem) - - pci:v0000127Ad00001003sv000013E0sd00000197* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv000013E0sd000001C7* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 WW V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 WW V.90 Modem) - - pci:v0000127Ad00001003sv000013E0sd000001F7* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv00001436sd00001003* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv00001436sd00001103* -- ID_MODEL_FROM_DATABASE=IBM 5614PM3G V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM 5614PM3G V.90 Modem) - - pci:v0000127Ad00001003sv00001436sd00001602* -- ID_MODEL_FROM_DATABASE=Compaq 229-DF Ducati -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq 229-DF Ducati) - - pci:v0000127Ad00001004* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem - - pci:v0000127Ad00001004sv00001048sd00001500* -- ID_MODEL_FROM_DATABASE=MicroLink 56k Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (MicroLink 56k Modem) - - pci:v0000127Ad00001004sv000010CFsd00001059* -- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFRT -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (Fujitsu 229-DFRT) - - pci:v0000127Ad00001005* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v0000127Ad00001005sv00001005sd0000127A* -- ID_MODEL_FROM_DATABASE=AOpen FM56-P -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (AOpen FM56-P) - - pci:v0000127Ad00001005sv00001033sd00008029* -- ID_MODEL_FROM_DATABASE=229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (229-DFSV) - - pci:v0000127Ad00001005sv00001033sd00008054* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Modem) - - pci:v0000127Ad00001005sv000010CFsd0000103C* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00001005sv000010CFsd00001055* -- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) - - pci:v0000127Ad00001005sv000010CFsd00001056* -- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) - - pci:v0000127Ad00001005sv0000122Dsd00004003* -- ID_MODEL_FROM_DATABASE=MDP3858SP-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-U) - - pci:v0000127Ad00001005sv0000122Dsd00004006* -- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-E -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-E) - - pci:v0000127Ad00001005sv0000122Dsd00004008* -- ID_MODEL_FROM_DATABASE=MDP3858SP-A/SP-NZ -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-A/SP-NZ) - - pci:v0000127Ad00001005sv0000122Dsd00004009* -- ID_MODEL_FROM_DATABASE=MDP3858SP-E -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-E) - - pci:v0000127Ad00001005sv0000122Dsd00004010* -- ID_MODEL_FROM_DATABASE=MDP3858V-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-U) - - pci:v0000127Ad00001005sv0000122Dsd00004011* -- ID_MODEL_FROM_DATABASE=MDP3858SP-SA -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-SA) - - pci:v0000127Ad00001005sv0000122Dsd00004013* -- ID_MODEL_FROM_DATABASE=MDP3858V-A/V-NZ -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-A/V-NZ) - - pci:v0000127Ad00001005sv0000122Dsd00004015* -- ID_MODEL_FROM_DATABASE=MDP3858SP-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-W) - - pci:v0000127Ad00001005sv0000122Dsd00004016* -- ID_MODEL_FROM_DATABASE=MDP3858V-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-W) - - pci:v0000127Ad00001005sv0000122Dsd00004019* -- ID_MODEL_FROM_DATABASE=MDP3858V-SA -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-SA) - - pci:v0000127Ad00001005sv000013DFsd00001005* -- ID_MODEL_FROM_DATABASE=PCI56RVP Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (PCI56RVP Modem) - - pci:v0000127Ad00001005sv000013E0sd00000187* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv000013E0sd000001A7* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv000013E0sd000001B7* -- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 Spain V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 Spain V.90 Modem) - - pci:v0000127Ad00001005sv000013E0sd000001D7* -- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 WW V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 WW V.90 Modem) - - pci:v0000127Ad00001005sv00001436sd00001005* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv00001436sd00001105* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv00001437sd00001105* -- ID_MODEL_FROM_DATABASE=IBM 5614PS3G V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM 5614PS3G V.90 Modem) - - pci:v0000127Ad00001022* - ID_MODEL_FROM_DATABASE=HCF 56k Modem - - pci:v0000127Ad00001022sv00001436sd00001303* -- ID_MODEL_FROM_DATABASE=M3-5614PM3G V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (M3-5614PM3G V.90 Modem) - - pci:v0000127Ad00001023* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00001023sv0000122Dsd00004020* -- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858-WE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Packard Bell MDP3858-WE) - - pci:v0000127Ad00001023sv0000122Dsd00004023* -- ID_MODEL_FROM_DATABASE=MDP3858-UE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-UE) - - pci:v0000127Ad00001023sv000013E0sd00000247* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 Spain V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 Spain V.90 Modem) - - pci:v0000127Ad00001023sv000013E0sd00000297* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001023sv000013E0sd000002C7* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 WW V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 WW V.90 Modem) - - pci:v0000127Ad00001023sv00001436sd00001203* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001023sv00001436sd00001303* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001024* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem -@@ -37992,19 +37992,19 @@ pci:v0000127Ad00001025* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v0000127Ad00001025sv000010CFsd0000106A* -- ID_MODEL_FROM_DATABASE=Fujitsu 235-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 235-DFSV) - - pci:v0000127Ad00001025sv0000122Dsd00004021* -- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-WE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-WE) - - pci:v0000127Ad00001025sv0000122Dsd00004022* -- ID_MODEL_FROM_DATABASE=MDP3858SP-WE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-WE) - - pci:v0000127Ad00001025sv0000122Dsd00004024* -- ID_MODEL_FROM_DATABASE=MDP3858V-UE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-UE) - - pci:v0000127Ad00001025sv0000122Dsd00004025* -- ID_MODEL_FROM_DATABASE=MDP3858SP-UE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-UE) - - pci:v0000127Ad00001026* - ID_MODEL_FROM_DATABASE=HCF 56k PCI Speakerphone Modem -@@ -38034,85 +38034,85 @@ pci:v0000127Ad00002005* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00002005sv0000104Dsd00008044* -- ID_MODEL_FROM_DATABASE=229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd00008045* -- ID_MODEL_FROM_DATABASE=229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd00008055* -- ID_MODEL_FROM_DATABASE=PBE/Aztech 235W-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PBE/Aztech 235W-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd00008056* -- ID_MODEL_FROM_DATABASE=235-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (235-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd0000805A* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002005sv0000104Dsd0000805F* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002005sv0000104Dsd00008074* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002013* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem - - pci:v0000127Ad00002013sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002013sv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002014* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem - - pci:v0000127Ad00002014sv000010CFsd00001057* -- ID_MODEL_FROM_DATABASE=Fujitsu Citicorp III -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Fujitsu Citicorp III) - - pci:v0000127Ad00002014sv0000122Dsd00004050* -- ID_MODEL_FROM_DATABASE=MSP3880-U -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-U) - - pci:v0000127Ad00002014sv0000122Dsd00004055* -- ID_MODEL_FROM_DATABASE=MSP3880-W -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-W) - - pci:v0000127Ad00002015* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v0000127Ad00002015sv000010CFsd00001063* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00002015sv000010CFsd00001064* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00002015sv00001468sd00002015* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00002016* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem - - pci:v0000127Ad00002016sv0000122Dsd00004051* -- ID_MODEL_FROM_DATABASE=MSP3880V-W -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-W) - - pci:v0000127Ad00002016sv0000122Dsd00004052* -- ID_MODEL_FROM_DATABASE=MSP3880SP-W -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-W) - - pci:v0000127Ad00002016sv0000122Dsd00004054* -- ID_MODEL_FROM_DATABASE=MSP3880V-U -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-U) - - pci:v0000127Ad00002016sv0000122Dsd00004056* -- ID_MODEL_FROM_DATABASE=MSP3880SP-U -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-U) - - pci:v0000127Ad00002016sv0000122Dsd00004057* -- ID_MODEL_FROM_DATABASE=MSP3880SP-A -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-A) - - pci:v0000127Ad00004311* - ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem - - pci:v0000127Ad00004311sv0000127Asd00004311* -- ID_MODEL_FROM_DATABASE=Ring Modular? Riptide HSF RT HP Dom -+ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (Ring Modular? Riptide HSF RT HP Dom) - - pci:v0000127Ad00004311sv000013E0sd00000210* -- ID_MODEL_FROM_DATABASE=HP-GVC -+ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (HP-GVC) - - pci:v0000127Ad00004320* - ID_MODEL_FROM_DATABASE=Riptide PCI Audio Controller -@@ -38124,16 +38124,16 @@ pci:v0000127Ad00004321* - ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem - - pci:v0000127Ad00004321sv00001235sd00004321* -- ID_MODEL_FROM_DATABASE=Hewlett Packard DF -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) - - pci:v0000127Ad00004321sv00001235sd00004324* -- ID_MODEL_FROM_DATABASE=Hewlett Packard DF -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) - - pci:v0000127Ad00004321sv000013E0sd00000210* -- ID_MODEL_FROM_DATABASE=Hewlett Packard DF -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) - - pci:v0000127Ad00004321sv0000144Dsd00002321* -- ID_MODEL_FROM_DATABASE=Riptide -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Riptide) - - pci:v0000127Ad00004322* - ID_MODEL_FROM_DATABASE=Riptide PCI Game Controller -@@ -38190,7 +38190,7 @@ pci:v00001282d00009102* - ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet - - pci:v00001282d00009102sv00000291sd00008212* -- ID_MODEL_FROM_DATABASE=DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit -+ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit) - - pci:v00001282d00009132* - ID_MODEL_FROM_DATABASE=Ethernet 100/10 MBit -@@ -38208,19 +38208,19 @@ pci:v00001283d00008211* - ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 - - pci:v00001283d00008211sv00001043sd00008138* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 (P5GD1-VW Mainboard) - - pci:v00001283d00008212* - ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller - - pci:v00001283d00008212sv00001283sd00000001* -- ID_MODEL_FROM_DATABASE=IT/ITE8212 Dual channel ATA RAID controller -+ ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller (IT/ITE8212 Dual channel ATA RAID controller) - - pci:v00001283d00008213* - ID_MODEL_FROM_DATABASE=IT8213 IDE Controller - - pci:v00001283d00008213sv00001458sd0000B000* -- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard -+ ID_MODEL_FROM_DATABASE=IT8213 IDE Controller (GA-EG45M-DS2H Mainboard) - - pci:v00001283d00008330* - ID_MODEL_FROM_DATABASE=IT8330G -@@ -38451,19 +38451,19 @@ pci:v000012AEd00000001* - ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet - - pci:v000012AEd00000001sv00001014sd00000104* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX PCI Adapter -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX PCI Adapter) - - pci:v000012AEd00000001sv000012AEsd00000001* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX (Universal) -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX (Universal)) - - pci:v000012AEd00000002* - ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) - - pci:v000012AEd00000002sv000010A9sd00008002* -- ID_MODEL_FROM_DATABASE=Acenic Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Acenic Gigabit Ethernet) - - pci:v000012AEd00000002sv000012AEsd00000002* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-T (3C986-T) -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Gigabit Ethernet-T (3C986-T)) - - pci:v000012AEd000000FA* - ID_MODEL_FROM_DATABASE=Farallon PN9100-T Gigabit Ethernet -@@ -38505,64 +38505,64 @@ pci:v000012B9d00001006* - ID_MODEL_FROM_DATABASE=WinModem - - pci:v000012B9d00001006sv000012B9sd0000005C* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 3472) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 3472)) - - pci:v000012B9d00001006sv000012B9sd0000005E* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 662975) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 662975)) - - pci:v000012B9d00001006sv000012B9sd00000062* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662978) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662978)) - - pci:v000012B9d00001006sv000012B9sd00000068* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 5690) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 5690)) - - pci:v000012B9d00001006sv000012B9sd0000007A* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662974) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662974)) - - pci:v000012B9d00001006sv000012B9sd0000007F* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 5698, 5699) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 5698, 5699)) - - pci:v000012B9d00001006sv000012B9sd00000080* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 2975, 3528) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 2975, 3528)) - - pci:v000012B9d00001006sv000012B9sd00000081* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Models 2974, 3529) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Models 2974, 3529)) - - pci:v000012B9d00001006sv000012B9sd00000091* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 2978) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 2978)) - - pci:v000012B9d00001007* - ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem - - pci:v000012B9d00001007sv000012B9sd000000A3* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Model 3595) -+ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem ((Model 3595)) - - pci:v000012B9d00001007sv000012B9sd000000C4* -- ID_MODEL_FROM_DATABASE=U.S. Robotics V.92 Voice Faxmodem (2884A/B/C) -+ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (U.S. Robotics V.92 Voice Faxmodem (2884A/B/C)) - - pci:v000012B9d00001008* - ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 - - pci:v000012B9d00001008sv000012B9sd000000A2* -- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 2977) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 2977)) - - pci:v000012B9d00001008sv000012B9sd000000AA* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 2976) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 2976)) - - pci:v000012B9d00001008sv000012B9sd000000AB* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 5609) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 5609)) - - pci:v000012B9d00001008sv000012B9sd000000AC* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 3298) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 3298)) - - pci:v000012B9d00001008sv000012B9sd000000AD* -- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 5610) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 5610)) - - pci:v000012B9d00001008sv000012B9sd000000D3* -- ID_MODEL_FROM_DATABASE=USR 56K Internal V92 FAX Modem (Model 5610) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal V92 FAX Modem (Model 5610)) - - pci:v000012B9d00001008sv000012B9sd0000BABA* -- ID_MODEL_FROM_DATABASE=USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk] -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk]) - - pci:v000012BA* - ID_VENDOR_FROM_DATABASE=BittWare, Inc. -@@ -38586,7 +38586,7 @@ pci:v000012BEd00003042* - ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite - - pci:v000012BEd00003042sv000012BEsd00003042* -- ID_MODEL_FROM_DATABASE=Anchor Chips Lite Evaluation Board -+ ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite (Anchor Chips Lite Evaluation Board) - - pci:v000012BF* - ID_VENDOR_FROM_DATABASE=Fujifilm Microdevices -@@ -38781,58 +38781,58 @@ pci:v000012D2d00000018* - ID_MODEL_FROM_DATABASE=Riva128 - - pci:v000012D2d00000018sv00001048sd00000C10* -- ID_MODEL_FROM_DATABASE=VICTORY Erazor -+ ID_MODEL_FROM_DATABASE=Riva128 (VICTORY Erazor) - - pci:v000012D2d00000018sv0000107Bsd00008030* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv00001092sd00000350* -- ID_MODEL_FROM_DATABASE=Viper V330 -+ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) - - pci:v000012D2d00000018sv00001092sd00001092* -- ID_MODEL_FROM_DATABASE=Viper V330 -+ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) - - pci:v000012D2d00000018sv000010B4sd00001B1B* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00001B1D* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00001B1E* -- ID_MODEL_FROM_DATABASE=STB Velocity 128, PAL TV-Out -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128, PAL TV-Out) - - pci:v000012D2d00000018sv000010B4sd00001B20* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 Sapphire -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 Sapphire) - - pci:v000012D2d00000018sv000010B4sd00001B21* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00001B22* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, NTSC TV-Out -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, NTSC TV-Out) - - pci:v000012D2d00000018sv000010B4sd00001B23* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, PAL TV-Out -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, PAL TV-Out) - - pci:v000012D2d00000018sv000010B4sd00001B27* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 DVD -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 DVD) - - pci:v000012D2d00000018sv000010B4sd00001B88* -- ID_MODEL_FROM_DATABASE=MVP Pro 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (MVP Pro 128) - - pci:v000012D2d00000018sv000010B4sd0000222A* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) - - pci:v000012D2d00000018sv000010B4sd00002230* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00002232* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00002235* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) - - pci:v000012D2d00000018sv00002A15sd000054A3* -- ID_MODEL_FROM_DATABASE=3DVision-SAGP / 3DexPlorer 3000 -+ ID_MODEL_FROM_DATABASE=Riva128 (3DVision-SAGP / 3DexPlorer 3000) - - pci:v000012D2d00000019* - ID_MODEL_FROM_DATABASE=Riva128ZX -@@ -38916,7 +38916,7 @@ pci:v000012D8d0000E110* - ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge - - pci:v000012D8d0000E110sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 CompactPCI Bridge -+ ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge (CC11/CL11 CompactPCI Bridge) - - pci:v000012D8d0000E111* - ID_MODEL_FROM_DATABASE=PI7C9X111SL PCIe-to-PCI Reversible Bridge -@@ -38940,10 +38940,10 @@ pci:v000012D9d00001078* - ID_MODEL_FROM_DATABASE=Prosody X class e1000 device - - pci:v000012D9d00001078sv000012D9sd0000000D* -- ID_MODEL_FROM_DATABASE=Prosody X PCI -+ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X PCI) - - pci:v000012D9d00001078sv000012D9sd0000000E* -- ID_MODEL_FROM_DATABASE=Prosody X cPCI -+ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X cPCI) - - pci:v000012DA* - ID_VENDOR_FROM_DATABASE=True Time Inc. -@@ -39015,67 +39015,67 @@ pci:v000012EBd00000001* - ID_MODEL_FROM_DATABASE=Vortex 1 - - pci:v000012EBd00000001sv0000104Dsd00008036* -- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) - - pci:v000012EBd00000001sv00001092sd00002000* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv00001092sd00002100* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv00001092sd00002110* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv00001092sd00002200* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv0000122Dsd00001002* -- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) - - pci:v000012EBd00000001sv000012EBsd00000001* -- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) - - pci:v000012EBd00000001sv00005053sd00003355* -- ID_MODEL_FROM_DATABASE=Montego -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Montego) - - pci:v000012EBd00000001sv000050B2sd00001111* -- ID_MODEL_FROM_DATABASE=XLerate -+ ID_MODEL_FROM_DATABASE=Vortex 1 (XLerate) - - pci:v000012EBd00000002* - ID_MODEL_FROM_DATABASE=Vortex 2 - - pci:v000012EBd00000002sv0000104Dsd00008049* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv0000104Dsd0000807B* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv00001092sd00003000* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003001* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003002* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003003* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003004* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv000012EBsd00000002* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv000012EBsd00000088* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv0000144Dsd00003510* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv00005053sd00003356* -- ID_MODEL_FROM_DATABASE=Montego II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Montego II) - - pci:v000012EBd00000003* - ID_MODEL_FROM_DATABASE=AU8810 Vortex Digital Audio Processor -@@ -39465,16 +39465,16 @@ pci:v00001317d00000985* - ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 - - pci:v00001317d00000985sv00001734sd0000100C* -- ID_MODEL_FROM_DATABASE=Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter -+ ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 (Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter) - - pci:v00001317d00001985* - ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet - - pci:v00001317d00001985sv00001385sd0000511A* -- ID_MODEL_FROM_DATABASE=FA511 -+ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (FA511) - - pci:v00001317d00001985sv00001395sd00002103* -- ID_MODEL_FROM_DATABASE=CB100-EZ (4-LED version) -+ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (CB100-EZ (4-LED version)) - - pci:v00001317d00002850* - ID_MODEL_FROM_DATABASE=HSP MicroModem 56 -@@ -39486,10 +39486,10 @@ pci:v00001317d00008201* - ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface - - pci:v00001317d00008201sv000010B8sd00002635* -- ID_MODEL_FROM_DATABASE=SMC2635W v1 802.11b Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v1 802.11b Wireless Cardbus Adapter) - - pci:v00001317d00008201sv00001317sd00008201* -- ID_MODEL_FROM_DATABASE=SMC2635W v2 802.11b Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v2 802.11b Wireless Cardbus Adapter) - - pci:v00001317d00008211* - ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface -@@ -39510,13 +39510,13 @@ pci:v00001319d00000801* - ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] - - pci:v00001319d00000801sv00001319sd00001319* -- ID_MODEL_FROM_DATABASE=FM801 PCI Audio -+ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] (FM801 PCI Audio) - - pci:v00001319d00000802* - ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] - - pci:v00001319d00000802sv00001319sd00001319* -- ID_MODEL_FROM_DATABASE=FM801 PCI Joystick -+ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] (FM801 PCI Joystick) - - pci:v00001319d00001000* - ID_MODEL_FROM_DATABASE=FM801 PCI Audio -@@ -39618,7 +39618,7 @@ pci:v0000131Fd00002030* - ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 - - pci:v0000131Fd00002030sv0000131Fsd00002030* -- ID_MODEL_FROM_DATABASE=PCI Serial Card -+ ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 (PCI Serial Card) - - pci:v0000131Fd00002031* - ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16650 -@@ -39834,7 +39834,7 @@ pci:v0000134Dd00007890* - ID_MODEL_FROM_DATABASE=HSP MicroModem 56 - - pci:v0000134Dd00007890sv0000134Dsd00000001* -- ID_MODEL_FROM_DATABASE=PCT789 adapter -+ ID_MODEL_FROM_DATABASE=HSP MicroModem 56 (PCT789 adapter) - - pci:v0000134Dd00007891* - ID_MODEL_FROM_DATABASE=HSP MicroModem 56 -@@ -40119,7 +40119,7 @@ pci:v00001371d0000434E* - ID_MODEL_FROM_DATABASE=GigaCard Network Adapter - - pci:v00001371d0000434Esv00001371sd0000434E* -- ID_MODEL_FROM_DATABASE=N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L) -+ ID_MODEL_FROM_DATABASE=GigaCard Network Adapter (N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)) - - pci:v00001373* - ID_VENDOR_FROM_DATABASE=Silicon Vision Inc -@@ -40515,10 +40515,10 @@ pci:v00001394d00000001* - ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet - - pci:v00001394d00000001sv00001186sd00004800* -- ID_MODEL_FROM_DATABASE=DGE-500SX -+ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (DGE-500SX) - - pci:v00001394d00000001sv00001394sd00000001* -- ID_MODEL_FROM_DATABASE=NetCelerator Adapter -+ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (NetCelerator Adapter) - - pci:v00001395* - ID_VENDOR_FROM_DATABASE=Ambicom Inc -@@ -40533,40 +40533,40 @@ pci:v00001397d000008B4* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] - - pci:v00001397d000008B4sv00001397sd0000B520* -- ID_MODEL_FROM_DATABASE=HFC-4S [IOB4ST] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [IOB4ST]) - - pci:v00001397d000008B4sv00001397sd0000B540* -- ID_MODEL_FROM_DATABASE=HFC-4S [Swyx 4xS0 SX2 QuadBri] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Swyx 4xS0 SX2 QuadBri]) - - pci:v00001397d000008B4sv00001397sd0000B550* -- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns quadBRI] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns quadBRI]) - - pci:v00001397d000008B4sv00001397sd0000B556* -- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns DuoDBRI] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns DuoDBRI]) - - pci:v00001397d000008B4sv00001397sd0000E888* -- ID_MODEL_FROM_DATABASE=HFC-4S [OpenVox B200P / B400P] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [OpenVox B200P / B400P]) - - pci:v00001397d000016B8* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] - - pci:v00001397d000016B8sv00001397sd0000B562* -- ID_MODEL_FROM_DATABASE=HFC-8S [IOB8ST] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [IOB8ST]) - - pci:v00001397d00002BD0* - ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] - - pci:v00001397d00002BD0sv00000675sd00001704* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C)) - - pci:v00001397d00002BD0sv00000675sd00001708* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C, ACPI) -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C, ACPI)) - - pci:v00001397d00002BD0sv00001397sd00002BD0* -- ID_MODEL_FROM_DATABASE=ISDN Board -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Board) - - pci:v00001397d00002BD0sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CI1-1-Harp -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (CI1-1-Harp) - - pci:v00001397d000030B1* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] -@@ -40665,46 +40665,46 @@ pci:v000013A3d0000002F* - ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor - - pci:v000013A3d0000002Fsv000013A3sd00001600* -- ID_MODEL_FROM_DATABASE=DR1600 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1600 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001605* -- ID_MODEL_FROM_DATABASE=DR1605 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1605 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001610* -- ID_MODEL_FROM_DATABASE=DR1610 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1610 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001615* -- ID_MODEL_FROM_DATABASE=DR1615 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1615 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001620* -- ID_MODEL_FROM_DATABASE=DR1620 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1620 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001625* -- ID_MODEL_FROM_DATABASE=DR1625 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1625 Acceleration Card) - - pci:v000013A3d00000033* - ID_MODEL_FROM_DATABASE=8201 Acceleration Processor - - pci:v000013A3d00000033sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1710 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8201 Acceleration Processor (DX1710 Acceleration Card) - - pci:v000013A3d00000034* - ID_MODEL_FROM_DATABASE=8202 Acceleration Processor - - pci:v000013A3d00000034sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1720 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8202 Acceleration Processor (DX1720 Acceleration Card) - - pci:v000013A3d00000035* - ID_MODEL_FROM_DATABASE=8203 Acceleration Processor - - pci:v000013A3d00000035sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1730 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8203 Acceleration Processor (DX1730 Acceleration Card) - - pci:v000013A3d00000037* - ID_MODEL_FROM_DATABASE=8204 Acceleration Processor - - pci:v000013A3d00000037sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1740 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8204 Acceleration Processor (DX1740 Acceleration Card) - - pci:v000013A4* - ID_VENDOR_FROM_DATABASE=Rascom Inc -@@ -41067,7 +41067,7 @@ pci:v000013F0d00000200* - ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY - - pci:v000013F0d00000200sv00001043sd00008213* -- ID_MODEL_FROM_DATABASE=NX1001 -+ ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (NX1001) - - pci:v000013F0d00000201* - ID_MODEL_FROM_DATABASE=ST201 Sundance Ethernet -@@ -41079,7 +41079,7 @@ pci:v000013F0d00001023* - ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet - - pci:v000013F0d00001023sv00001043sd00008180* -- ID_MODEL_FROM_DATABASE=NX1101 -+ ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet (NX1101) - - pci:v000013F1* - ID_VENDOR_FROM_DATABASE=Oce' - Technologies B.V. -@@ -41109,76 +41109,76 @@ pci:v000013F6d00000100* - ID_MODEL_FROM_DATABASE=CM8338A - - pci:v000013F6d00000100sv000013F6sd0000FFFF* -- ID_MODEL_FROM_DATABASE=CMI8338/C3DX PCI Audio Device -+ ID_MODEL_FROM_DATABASE=CM8338A (CMI8338/C3DX PCI Audio Device) - - pci:v000013F6d00000101* - ID_MODEL_FROM_DATABASE=CM8338B - - pci:v000013F6d00000101sv000013F6sd00000101* -- ID_MODEL_FROM_DATABASE=CMI8338-031 PCI Audio Device -+ ID_MODEL_FROM_DATABASE=CM8338B (CMI8338-031 PCI Audio Device) - - pci:v000013F6d00000111* - ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio - - pci:v000013F6d00000111sv00001019sd00000970* -- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (P6STP-FL motherboard) - - pci:v000013F6d00000111sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CUSI-FX motherboard) - - pci:v000013F6d00000111sv00001043sd00008077* -- ID_MODEL_FROM_DATABASE=CMI8738 6-channel audio controller -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6-channel audio controller) - - pci:v000013F6d00000111sv00001043sd000080E2* -- ID_MODEL_FROM_DATABASE=CMI8738 6ch-MX -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6ch-MX) - - pci:v000013F6d00000111sv000013F6sd00000111* -- ID_MODEL_FROM_DATABASE=CMI8738/C3DX PCI Audio Device -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738/C3DX PCI Audio Device) - - pci:v000013F6d00000111sv000013F6sd00009761* -- ID_MODEL_FROM_DATABASE=Theatron Agrippa -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Theatron Agrippa) - - pci:v000013F6d00000111sv0000153Bsd00001144* -- ID_MODEL_FROM_DATABASE=Aureon 5.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 5.1) - - pci:v000013F6d00000111sv0000153Bsd00001170* -- ID_MODEL_FROM_DATABASE=Aureon 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 7.1) - - pci:v000013F6d00000111sv00001681sd0000A000* -- ID_MODEL_FROM_DATABASE=Gamesurround MUSE XL -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Gamesurround MUSE XL) - - pci:v000013F6d00000111sv000017ABsd00000604* -- ID_MODEL_FROM_DATABASE=PSC604 Dynamic Edge -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC604 Dynamic Edge) - - pci:v000013F6d00000111sv000017ABsd00000605* -- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) - - pci:v000013F6d00000111sv000017ABsd00007777* -- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) - - pci:v000013F6d00000111sv0000270Fsd00001103* -- ID_MODEL_FROM_DATABASE=CT-7NJS Ultra motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CT-7NJS Ultra motherboard) - - pci:v000013F6d00000111sv0000270Fsd0000F462* -- ID_MODEL_FROM_DATABASE=7NJL1 motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (7NJL1 motherboard) - - pci:v000013F6d00000111sv0000584Dsd00003731* -- ID_MODEL_FROM_DATABASE=Digital X-Mystique -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Digital X-Mystique) - - pci:v000013F6d00000111sv0000584Dsd00003741* -- ID_MODEL_FROM_DATABASE=X-Plosion 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Plosion 7.1) - - pci:v000013F6d00000111sv0000584Dsd00003751* -- ID_MODEL_FROM_DATABASE=X-Raider 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Raider 7.1) - - pci:v000013F6d00000111sv0000584Dsd00003761* -- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP) - - pci:v000013F6d00000111sv0000584Dsd00003771* -- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP Value -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP Value) - - pci:v000013F6d00000111sv00007284sd00008384* -- ID_MODEL_FROM_DATABASE=Striker 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Striker 7.1) - - pci:v000013F6d00000211* - ID_MODEL_FROM_DATABASE=CM8738 -@@ -41187,85 +41187,85 @@ pci:v000013F6d00005011* - ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] - - pci:v000013F6d00005011sv000013F6sd00005011* -- ID_MODEL_FROM_DATABASE=HDA Controller -+ ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] (HDA Controller) - - pci:v000013F6d00008788* - ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] - - pci:v000013F6d00008788sv00001043sd00008269* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2)) - - pci:v000013F6d00008788sv00001043sd00008275* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) - - pci:v000013F6d00008788sv00001043sd000082B7* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2X) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2X)) - - pci:v000013F6d00008788sv00001043sd00008314* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3)) - - pci:v000013F6d00008788sv00001043sd00008327* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) - - pci:v000013F6d00008788sv00001043sd0000834F* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar D1) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar D1)) - - pci:v000013F6d00008788sv00001043sd0000835C* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Essence STX) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX)) - - pci:v000013F6d00008788sv00001043sd0000835D* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar ST) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar ST)) - - pci:v000013F6d00008788sv00001043sd0000835E* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3 Slim) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3 Slim)) - - pci:v000013F6d00008788sv00001043sd0000838E* -- ID_MODEL_FROM_DATABASE=Virtuoso 66 (Xonar DS) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 66 (Xonar DS)) - - pci:v000013F6d00008788sv00001043sd00008428* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Xense) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Xense)) - - pci:v000013F6d00008788sv00001043sd00008467* -- ID_MODEL_FROM_DATABASE=CMI8786 (Xonar DG) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) - - pci:v000013F6d00008788sv000013F6sd00008782* -- ID_MODEL_FROM_DATABASE=PCI 2.0 HD Audio -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) - - pci:v000013F6d00008788sv000013F6sd0000FFFF* -- ID_MODEL_FROM_DATABASE=CMI8787-HG2PCI -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8787-HG2PCI) - - pci:v000013F6d00008788sv000014C3sd00001710* -- ID_MODEL_FROM_DATABASE=HiFier Fantasia -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Fantasia) - - pci:v000013F6d00008788sv000014C3sd00001711* -- ID_MODEL_FROM_DATABASE=HiFier Serenade -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade) - - pci:v000013F6d00008788sv000014C3sd00001713* -- ID_MODEL_FROM_DATABASE=HiFier Serenade III -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade III) - - pci:v000013F6d00008788sv00001A58sd00000910* -- ID_MODEL_FROM_DATABASE=Barracuda AC-1 -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Barracuda AC-1) - - pci:v000013F6d00008788sv0000415Asd00005431* -- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1) - - pci:v000013F6d00008788sv00005431sd0000017A* -- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 2G -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1 2G) - - pci:v000013F6d00008788sv0000584Dsd00003781* -- ID_MODEL_FROM_DATABASE=HDA X-Purity 7.1 Platinum -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HDA X-Purity 7.1 Platinum) - - pci:v000013F6d00008788sv00007284sd00009761* -- ID_MODEL_FROM_DATABASE=CLARO -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO) - - pci:v000013F6d00008788sv00007284sd00009781* -- ID_MODEL_FROM_DATABASE=CLARO halo -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO halo) - - pci:v000013F6d00008788sv00007284sd00009783* -- ID_MODEL_FROM_DATABASE=eCLARO -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (eCLARO) - - pci:v000013F6d00008788sv00007284sd00009787* -- ID_MODEL_FROM_DATABASE=CLARO II -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO II) - - pci:v000013F7* - ID_VENDOR_FROM_DATABASE=Wildfire Communications -@@ -41298,13 +41298,13 @@ pci:v000013FEd00001600* - ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) - - pci:v000013FEd00001600sv00001601sd00000002* -- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1601 2-port unisolated RS-422/485) - - pci:v000013FEd00001600sv00001602sd00000002* -- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1602 2-port isolated RS-422/485) - - pci:v000013FEd00001600sv00001612sd00000004* -- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1612 4-port RS-232/422/485) - - pci:v000013FEd00001603* - ID_MODEL_FROM_DATABASE=PCI-1603 2-port isolated RS-232/current loop -@@ -41316,13 +41316,13 @@ pci:v000013FEd000016FF* - ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) - - pci:v000013FEd000016FFsv00001601sd00000000* -- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 PCI communications card -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1601 2-port unisolated RS-422/485 PCI communications card) - - pci:v000013FEd000016FFsv00001602sd00000000* -- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1602 2-port isolated RS-422/485) - - pci:v000013FEd000016FFsv00001612sd00000000* -- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1612 4-port RS-232/422/485) - - pci:v000013FEd00001711* - ID_MODEL_FROM_DATABASE=PCI-1711 16-channel data acquisition card 12-bit, 100kS/s -@@ -41676,37 +41676,37 @@ pci:v00001409d00007168* - ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) - - pci:v00001409d00007168sv00001409sd00000002* -- ID_MODEL_FROM_DATABASE=SER4036A3V (2x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4036A3V (2x RS232 port)) - - pci:v00001409d00007168sv00001409sd00004027* -- ID_MODEL_FROM_DATABASE=SER4027A (1x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027A (1x RS232 port)) - - pci:v00001409d00007168sv00001409sd00004037* -- ID_MODEL_FROM_DATABASE=SER4037A (2x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037A (2x RS232 port)) - - pci:v00001409d00007168sv00001409sd00004056* -- ID_MODEL_FROM_DATABASE=SER4056A (4x RS232) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056A (4x RS232)) - - pci:v00001409d00007168sv00001409sd00005027* -- ID_MODEL_FROM_DATABASE=SER4027D -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027D) - - pci:v00001409d00007168sv00001409sd00005037* -- ID_MODEL_FROM_DATABASE=SER4037D (2x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037D (2x RS232 port)) - - pci:v00001409d00007168sv00001409sd00005066* -- ID_MODEL_FROM_DATABASE=SER4066R (8x RS232) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4066R (8x RS232)) - - pci:v00001409d00007168sv00001409sd00006056* -- ID_MODEL_FROM_DATABASE=SER4056D (4x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056D (4x RS232 port)) - - pci:v00001409d00007268* - ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) - - pci:v00001409d00007268sv00001409sd00000103* -- ID_MODEL_FROM_DATABASE=PAR4008A -+ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4008A) - - pci:v00001409d00007268sv00001409sd00000104* -- ID_MODEL_FROM_DATABASE=PAR4018A -+ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4018A) - - pci:v0000140A* - ID_VENDOR_FROM_DATABASE=DSP Research Inc -@@ -41739,106 +41739,106 @@ pci:v00001412d00001712* - ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller - - pci:v00001412d00001712sv00001412sd00001712* -- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24) - - pci:v00001412d00001712sv00001412sd00003632* -- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 192 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 192) - - pci:v00001412d00001712sv00001412sd0000D630* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010) - - pci:v00001412d00001712sv00001412sd0000D631* -- ID_MODEL_FROM_DATABASE=M-Audio Delta DiO -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta DiO) - - pci:v00001412d00001712sv00001412sd0000D632* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 66 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 66) - - pci:v00001412d00001712sv00001412sd0000D633* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 44 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 44) - - pci:v00001412d00001712sv00001412sd0000D634* -- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 2496 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 2496) - - pci:v00001412d00001712sv00001412sd0000D635* -- ID_MODEL_FROM_DATABASE=M-Audio Delta TDIF -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta TDIF) - - pci:v00001412d00001712sv00001412sd0000D637* -- ID_MODEL_FROM_DATABASE=M-Audio Delta RBUS -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta RBUS) - - pci:v00001412d00001712sv00001412sd0000D638* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 410 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 410) - - pci:v00001412d00001712sv00001412sd0000D63B* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010LT -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010LT) - - pci:v00001412d00001712sv00001412sd0000D63C* -- ID_MODEL_FROM_DATABASE=Digigram VX442 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Digigram VX442) - - pci:v00001412d00001712sv00001416sd00001712* -- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 Media 7.1 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24 Media 7.1) - - pci:v00001412d00001712sv0000153Bsd00001115* -- ID_MODEL_FROM_DATABASE=EWS88 MT -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT) - - pci:v00001412d00001712sv0000153Bsd00001125* -- ID_MODEL_FROM_DATABASE=EWS88 MT (Master) -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT (Master)) - - pci:v00001412d00001712sv0000153Bsd0000112B* -- ID_MODEL_FROM_DATABASE=EWS88 D -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D) - - pci:v00001412d00001712sv0000153Bsd0000112C* -- ID_MODEL_FROM_DATABASE=EWS88 D (Master) -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D (Master)) - - pci:v00001412d00001712sv0000153Bsd00001130* -- ID_MODEL_FROM_DATABASE=EWX 24/96 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWX 24/96) - - pci:v00001412d00001712sv0000153Bsd00001138* -- ID_MODEL_FROM_DATABASE=DMX 6fire 24/96 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (DMX 6fire 24/96) - - pci:v00001412d00001712sv0000153Bsd00001151* -- ID_MODEL_FROM_DATABASE=PHASE88 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (PHASE88) - - pci:v00001412d00001712sv000016CEsd00001040* -- ID_MODEL_FROM_DATABASE=Edirol DA-2496 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Edirol DA-2496) - - pci:v00001412d00001724* - ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller - - pci:v00001412d00001724sv000010B0sd00000200* -- ID_MODEL_FROM_DATABASE=Hollywood@Home 7.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Hollywood@Home 7.1) - - pci:v00001412d00001724sv00001412sd00001724* -- ID_MODEL_FROM_DATABASE=Albatron PX865PE 7.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Albatron PX865PE 7.1) - - pci:v00001412d00001724sv00001412sd00003630* -- ID_MODEL_FROM_DATABASE=M-Audio Revolution 7.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 7.1) - - pci:v00001412d00001724sv00001412sd00003631* -- ID_MODEL_FROM_DATABASE=M-Audio Revolution 5.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 5.1) - - pci:v00001412d00001724sv0000153Bsd00001145* -- ID_MODEL_FROM_DATABASE=Aureon 7.1 Space -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Space) - - pci:v00001412d00001724sv0000153Bsd00001147* -- ID_MODEL_FROM_DATABASE=Aureon 5.1 Sky -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 5.1 Sky) - - pci:v00001412d00001724sv0000153Bsd00001150* -- ID_MODEL_FROM_DATABASE=PHASE 22 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PHASE 22) - - pci:v00001412d00001724sv0000153Bsd00001153* -- ID_MODEL_FROM_DATABASE=Aureon 7.1 Universe -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Universe) - - pci:v00001412d00001724sv000017ABsd00001906* -- ID_MODEL_FROM_DATABASE=PSC 724 [Ultimate Edge] -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PSC 724 [Ultimate Edge]) - - pci:v00001412d00001724sv0000270Fsd0000F641* -- ID_MODEL_FROM_DATABASE=ZNF3-150 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-150) - - pci:v00001412d00001724sv0000270Fsd0000F645* -- ID_MODEL_FROM_DATABASE=ZNF3-250 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-250) - - pci:v00001412d00001724sv00003130sd00004154* -- ID_MODEL_FROM_DATABASE=MAYA 44 MKII -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (MAYA 44 MKII) - - pci:v00001413* - ID_VENDOR_FROM_DATABASE=Addonics -@@ -41904,28 +41904,28 @@ pci:v00001415d00009501* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) - - pci:v00001415d00009501sv000012C4sd00000201* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (2 port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (2 port)) - - pci:v00001415d00009501sv000012C4sd00000202* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (4 port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (4 port)) - - pci:v00001415d00009501sv000012C4sd00000203* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (8 port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (8 port)) - - pci:v00001415d00009501sv000012C4sd00000210* -- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p1-4) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/104-Plus (8 port, p1-4)) - - pci:v00001415d00009501sv0000131Fsd00002050* -- ID_MODEL_FROM_DATABASE=CyberPro (4-port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberPro (4-port)) - - pci:v00001415d00009501sv0000131Fsd00002051* -- ID_MODEL_FROM_DATABASE=CyberSerial 4S Plus -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberSerial 4S Plus) - - pci:v00001415d00009501sv000015EDsd00002000* -- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 8 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 8) - - pci:v00001415d00009501sv000015EDsd00002001* -- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 16 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 16) - - pci:v00001415d00009505* - ID_MODEL_FROM_DATABASE=OXuPCI952 (Dual 16C950 UART) -@@ -41940,19 +41940,19 @@ pci:v00001415d00009510* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) - - pci:v00001415d00009510sv000012C4sd00000200* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (Unused) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) (Titan/cPCI (Unused)) - - pci:v00001415d00009511* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) - - pci:v00001415d00009511sv000012C4sd00000211* -- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p5-8) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (Titan/104-Plus (8 port, p5-8)) - - pci:v00001415d00009511sv000015EDsd00002000* -- ID_MODEL_FROM_DATABASE=MCCR Serial p4-7 of 8 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-7 of 8) - - pci:v00001415d00009511sv000015EDsd00002001* -- ID_MODEL_FROM_DATABASE=MCCR Serial p4-15 of 16 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-15 of 16) - - pci:v00001415d00009512* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (32bit bus) -@@ -41970,10 +41970,10 @@ pci:v00001415d0000C158* - ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART - - pci:v00001415d0000C158sv0000E4BFsd0000C504* -- ID_MODEL_FROM_DATABASE=CP4-SCAT Wireless Technologies Carrier Board -+ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (CP4-SCAT Wireless Technologies Carrier Board) - - pci:v00001415d0000C158sv0000E4BFsd0000D551* -- ID_MODEL_FROM_DATABASE=DU1-MUSTANG Dual-Port RS-485 Interface -+ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (DU1-MUSTANG Dual-Port RS-485 Interface) - - pci:v00001415d0000C308* - ID_MODEL_FROM_DATABASE=EX-44016 16-port serial -@@ -42042,7 +42042,7 @@ pci:v00001425d00000030* - ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter - - pci:v00001425d00000030sv0000103Csd0000705E* -- ID_MODEL_FROM_DATABASE=PCIe 10GBase-SR [AD386A] -+ ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter (PCIe 10GBase-SR [AD386A]) - - pci:v00001425d00000031* - ID_MODEL_FROM_DATABASE=T320 10GbE Dual Port Adapter -@@ -43170,13 +43170,13 @@ pci:v0000144Dd0000A820* - ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X - - pci:v0000144Dd0000A820sv00001028sd00001F95* -- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 400GB -+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 400GB) - - pci:v0000144Dd0000A820sv00001028sd00001F96* -- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 800GB -+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 800GB) - - pci:v0000144Dd0000A820sv00001028sd00001F97* -- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 1600GB -+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 1600GB) - - pci:v0000144E* - ID_VENDOR_FROM_DATABASE=OLITEC -@@ -43656,19 +43656,19 @@ pci:v000014C1d00000008* - ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC - - pci:v000014C1d00000008sv000014C1sd00000008* -- ID_MODEL_FROM_DATABASE=10G-PCIE-8A -+ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A) - - pci:v000014C1d00000008sv000014C1sd00000009* -- ID_MODEL_FROM_DATABASE=10G-PCIE-8A (MSI-X firmware) -+ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A (MSI-X firmware)) - - pci:v000014C1d00000008sv000014C1sd0000000A* -- ID_MODEL_FROM_DATABASE=10G-PCIE-8B -+ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8B) - - pci:v000014C1d00008043* - ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect - - pci:v000014C1d00008043sv0000103Csd00001240* -- ID_MODEL_FROM_DATABASE=Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) -+ ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect (Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)) - - pci:v000014C2* - ID_VENDOR_FROM_DATABASE=DTK Computer -@@ -43929,19 +43929,19 @@ pci:v000014E4d00001600* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express - - pci:v000014E4d00001600sv00001028sd000001C1* -- ID_MODEL_FROM_DATABASE=Precision 490 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Precision 490) - - pci:v000014E4d00001600sv00001028sd000001C2* -- ID_MODEL_FROM_DATABASE=Latitude D620 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Latitude D620) - - pci:v000014E4d00001600sv0000103Csd00003015* -- ID_MODEL_FROM_DATABASE=PCIe LAN on Motherboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (PCIe LAN on Motherboard) - - pci:v000014E4d00001600sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 Onboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (E4500 Onboard) - - pci:v000014E4d00001600sv00001259sd00002705* -- ID_MODEL_FROM_DATABASE=AT-2711FX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (AT-2711FX) - - pci:v000014E4d00001601* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5752M Gigabit Ethernet PCI Express -@@ -43956,52 +43956,52 @@ pci:v000014E4d00001639* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet - - pci:v000014E4d00001639sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 BCM5709 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R710 BCM5709 Gigabit Ethernet) - - pci:v000014E4d00001639sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 BCM5709 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R610 BCM5709 Gigabit Ethernet) - - pci:v000014E4d00001639sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 BCM5709 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge T610 BCM5709 Gigabit Ethernet) - - pci:v000014E4d00001639sv0000103Csd00007055* -- ID_MODEL_FROM_DATABASE=NC382i Integrated Multi-port PCI Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382i Integrated Multi-port PCI Express Gigabit Server Adapter) - - pci:v000014E4d00001639sv0000103Csd00007059* -- ID_MODEL_FROM_DATABASE=NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter) - - pci:v000014E4d00001639sv000010A9sd00008027* -- ID_MODEL_FROM_DATABASE=Quad port Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (Quad port Gigabit Ethernet Controller) - - pci:v000014E4d0000163A* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet - - pci:v000014E4d0000163Asv00001028sd0000027B* -- ID_MODEL_FROM_DATABASE=PowerEdge M805 Broadcom NetXtreme II BCM5709S -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M805 Broadcom NetXtreme II BCM5709S) - - pci:v000014E4d0000163Asv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 BCM5709S Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M710 BCM5709S Gigabit Ethernet) - - pci:v000014E4d0000163Asv0000103Csd0000171D* -- ID_MODEL_FROM_DATABASE=NC382m Dual Port 1GbE Multifunction BL-c Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382m Dual Port 1GbE Multifunction BL-c Adapter) - - pci:v000014E4d0000163Asv0000103Csd00007056* -- ID_MODEL_FROM_DATABASE=NC382i Integrated Quad Port PCI Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382i Integrated Quad Port PCI Express Gigabit Server Adapter) - - pci:v000014E4d0000163Asv00001259sd00002984* -- ID_MODEL_FROM_DATABASE=AT-2973SX -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (AT-2973SX) - - pci:v000014E4d0000163B* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet - - pci:v000014E4d0000163Bsv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 BCM5716 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R410 BCM5716 Gigabit Ethernet) - - pci:v000014E4d0000163Bsv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 BCM5716 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge T410 BCM5716 Gigabit Ethernet) - - pci:v000014E4d0000163Bsv00001028sd000002F1* -- ID_MODEL_FROM_DATABASE=PowerEdge R510 BCM5716 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R510 BCM5716 Gigabit Ethernet) - - pci:v000014E4d0000163C* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716S Gigabit Ethernet -@@ -44028,220 +44028,220 @@ pci:v000014E4d00001644* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet - - pci:v000014E4d00001644sv00001014sd00000277* -- ID_MODEL_FROM_DATABASE=Broadcom Vigil B5700 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom Vigil B5700 1000Base-T) - - pci:v000014E4d00001644sv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) - - pci:v000014E4d00001644sv00001028sd00000106* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) - - pci:v000014E4d00001644sv00001028sd00000109* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000Base-T) - - pci:v000014E4d00001644sv00001028sd0000010A* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000BaseTX) - - pci:v000014E4d00001644sv000010B7sd00001000* -- ID_MODEL_FROM_DATABASE=3C996-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-T 1000Base-T) - - pci:v000014E4d00001644sv000010B7sd00001001* -- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996B-T 1000Base-T) - - pci:v000014E4d00001644sv000010B7sd00001002* -- ID_MODEL_FROM_DATABASE=3C996C-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996C-T 1000Base-T) - - pci:v000014E4d00001644sv000010B7sd00001003* -- ID_MODEL_FROM_DATABASE=3C997-T 1000Base-T Dual Port -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-T 1000Base-T Dual Port) - - pci:v000014E4d00001644sv000010B7sd00001004* -- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-SX 1000Base-SX) - - pci:v000014E4d00001644sv000010B7sd00001005* -- ID_MODEL_FROM_DATABASE=3C997-SX 1000Base-SX Dual Port -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-SX 1000Base-SX Dual Port) - - pci:v000014E4d00001644sv000010B7sd00001008* -- ID_MODEL_FROM_DATABASE=3C942 Gigabit LOM (31X31) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C942 Gigabit LOM (31X31)) - - pci:v000014E4d00001644sv000014E4sd00000002* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) - - pci:v000014E4d00001644sv000014E4sd00000003* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) - - pci:v000014E4d00001644sv000014E4sd00000004* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-T) - - pci:v000014E4d00001644sv000014E4sd00001028* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000BaseTX) - - pci:v000014E4d00001644sv000014E4sd00001644* -- ID_MODEL_FROM_DATABASE=BCM5700 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (BCM5700 1000Base-T) - - pci:v000014E4d00001645* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet - - pci:v000014E4d00001645sv00000E11sd0000007C* -- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) - - pci:v000014E4d00001645sv00000E11sd0000007D* -- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) - - pci:v000014E4d00001645sv00000E11sd00000085* -- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) - - pci:v000014E4d00001645sv00000E11sd00000099* -- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) - - pci:v000014E4d00001645sv00000E11sd0000009A* -- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) - - pci:v000014E4d00001645sv00000E11sd000000C1* -- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) - - pci:v000014E4d00001645sv00001028sd00000121* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Broadcom BCM5701 1000Base-T) - - pci:v000014E4d00001645sv0000103Csd0000128A* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T (HP, OEM 3COM) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T (HP, OEM 3COM)) - - pci:v000014E4d00001645sv0000103Csd0000128B* -- ID_MODEL_FROM_DATABASE=1000Base-SX (PCI) [A7073A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (1000Base-SX (PCI) [A7073A]) - - pci:v000014E4d00001645sv0000103Csd000012A4* -- ID_MODEL_FROM_DATABASE=Core Lan 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core Lan 1000Base-T) - - pci:v000014E4d00001645sv0000103Csd000012C1* -- ID_MODEL_FROM_DATABASE=IOX Core Lan 1000Base-T [A7109AX] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IOX Core Lan 1000Base-T [A7109AX]) - - pci:v000014E4d00001645sv0000103Csd00001300* -- ID_MODEL_FROM_DATABASE=Core LAN/SCSI Combo [A6794A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core LAN/SCSI Combo [A6794A]) - - pci:v000014E4d00001645sv000010A9sd00008010* -- ID_MODEL_FROM_DATABASE=IO9/IO10 Gigabit Ethernet (Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IO9/IO10 Gigabit Ethernet (Copper)) - - pci:v000014E4d00001645sv000010A9sd00008011* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Copper)) - - pci:v000014E4d00001645sv000010A9sd00008012* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Fiber) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Fiber)) - - pci:v000014E4d00001645sv000010B7sd00001004* -- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996-SX 1000Base-SX) - - pci:v000014E4d00001645sv000010B7sd00001006* -- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996B-T 1000Base-T) - - pci:v000014E4d00001645sv000010B7sd00001007* -- ID_MODEL_FROM_DATABASE=3C1000-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C1000-T 1000Base-T) - - pci:v000014E4d00001645sv000010B7sd00001008* -- ID_MODEL_FROM_DATABASE=3C940-BR01 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C940-BR01 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000001* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000005* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000006* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000007* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-SX) - - pci:v000014E4d00001645sv000014E4sd00000008* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00001645* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet - - pci:v000014E4d00001645sv000014E4sd00008008* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001646* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet - - pci:v000014E4d00001646sv00000E11sd000000BB* -- ID_MODEL_FROM_DATABASE=NC7760 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (NC7760 1000BaseTX) - - pci:v000014E4d00001646sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5702 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (Broadcom BCM5702 1000BaseTX) - - pci:v000014E4d00001646sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5702 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (BCM5702 1000BaseTX) - - pci:v000014E4d00001647* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet - - pci:v000014E4d00001647sv00000E11sd00000099* -- ID_MODEL_FROM_DATABASE=NC7780 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7780 1000BaseTX) - - pci:v000014E4d00001647sv00000E11sd0000009A* -- ID_MODEL_FROM_DATABASE=NC7770 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7770 1000BaseTX) - - pci:v000014E4d00001647sv000010A9sd00008010* -- ID_MODEL_FROM_DATABASE=SGI IO9 Gigabit Ethernet (Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (SGI IO9 Gigabit Ethernet (Copper)) - - pci:v000014E4d00001647sv000014E4sd00000009* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001647sv000014E4sd0000000A* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseSX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseSX) - - pci:v000014E4d00001647sv000014E4sd0000000B* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001647sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001647sv000014E4sd0000800A* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001648* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet - - pci:v000014E4d00001648sv00000E11sd000000CF* -- ID_MODEL_FROM_DATABASE=NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv00000E11sd000000D0* -- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv00000E11sd000000D1* -- ID_MODEL_FROM_DATABASE=NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 1750) - - pci:v000014E4d00001648sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Broadcom NetXtreme BCM5704 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 6850 Broadcom NetXtreme BCM5704) - - pci:v000014E4d00001648sv0000103Csd0000310F* -- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv000010A9sd00008013* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Copper)) - - pci:v000014E4d00001648sv000010A9sd00008018* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (A330) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (A330)) - - pci:v000014E4d00001648sv000010A9sd0000801A* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (IA-blade) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (IA-blade)) - - pci:v000014E4d00001648sv000010A9sd0000801B* -- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Copper)) - - pci:v000014E4d00001648sv000010B7sd00002000* -- ID_MODEL_FROM_DATABASE=3C998-T Dual Port 10/100/1000 PCI-X -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C998-T Dual Port 10/100/1000 PCI-X) - - pci:v000014E4d00001648sv000010B7sd00003000* -- ID_MODEL_FROM_DATABASE=3C999-T Quad Port 10/100/1000 PCI-X -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C999-T Quad Port 10/100/1000 PCI-X) - - pci:v000014E4d00001648sv00001166sd00001648* -- ID_MODEL_FROM_DATABASE=NetXtreme CIOB-E 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NetXtreme CIOB-E 1000Base-T) - - pci:v000014E4d00001648sv00001734sd0000100B* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard LAN -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PRIMERGY RX/TX series onboard LAN) - - pci:v000014E4d00001649* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S_2 Gigabit Ethernet -@@ -44250,46 +44250,46 @@ pci:v000014E4d0000164A* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet - - pci:v000014E4d0000164Asv0000103Csd00001709* -- ID_MODEL_FROM_DATABASE=NC371i Integrated PCI-X Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC371i Integrated PCI-X Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Asv0000103Csd00003070* -- ID_MODEL_FROM_DATABASE=NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Asv0000103Csd00003101* -- ID_MODEL_FROM_DATABASE=NC370T MultifuNCtion Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370T MultifuNCtion Gigabit Server Adapter) - - pci:v000014E4d0000164Asv0000103Csd00003106* -- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164C* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet - - pci:v000014E4d0000164Csv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R900 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge 2970 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge T605 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00000223* -- ID_MODEL_FROM_DATABASE=PowerEdge R905 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R905 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00001F12* -- ID_MODEL_FROM_DATABASE=PowerEdge R805/R905 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805/R905 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv0000103Csd00007037* -- ID_MODEL_FROM_DATABASE=NC373T PCI Express Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373T PCI Express Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Csv0000103Csd00007038* -- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Csv0000103Csd00007045* -- ID_MODEL_FROM_DATABASE=NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702FE Gigabit Ethernet -@@ -44298,10 +44298,10 @@ pci:v000014E4d0000164E* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] - - pci:v000014E4d0000164Esv0000103Csd0000171C* -- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532m Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d0000164Esv0000103Csd00007058* -- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532i Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d0000164F* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711 10-Gigabit PCIe -@@ -44310,31 +44310,31 @@ pci:v000014E4d00001650* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe - - pci:v000014E4d00001650sv0000103Csd0000171C* -- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532m Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d00001650sv0000103Csd00007058* -- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532i Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d00001653* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet - - pci:v000014E4d00001653sv00000E11sd000000E3* -- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (NC7761 Gigabit Server Adapter) - - pci:v000014E4d00001653sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (Primergy Econel 200 D2020 mainboard) - - pci:v000014E4d00001654* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet - - pci:v000014E4d00001654sv00000E11sd000000E3* -- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC7761 Gigabit Server Adapter) - - pci:v000014E4d00001654sv0000103Csd00003100* -- ID_MODEL_FROM_DATABASE=NC1020 ProLiant Gigabit Server Adapter 32 PCI -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC1020 ProLiant Gigabit Server Adapter 32 PCI) - - pci:v000014E4d00001654sv0000103Csd00003226* -- ID_MODEL_FROM_DATABASE=NC150T 4-port Gigabit Combo Switch & Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC150T 4-port Gigabit Combo Switch & Adapter) - - pci:v000014E4d00001655* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5717 Gigabit Ethernet PCIe -@@ -44349,52 +44349,52 @@ pci:v000014E4d00001659* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express - - pci:v000014E4d00001659sv00001014sd000002C6* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (eServer xSeries server mainboard) - - pci:v000014E4d00001659sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge 860) - - pci:v000014E4d00001659sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 Broadcom NetXtreme BCM5721 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge R200 Broadcom NetXtreme BCM5721) - - pci:v000014E4d00001659sv0000103Csd0000170B* -- ID_MODEL_FROM_DATABASE=NC320m PCI Express Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320m PCI Express Dual Port Gigabit Server Adapter) - - pci:v000014E4d00001659sv0000103Csd00007031* -- ID_MODEL_FROM_DATABASE=NC320T PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320T PCIe Gigabit Server Adapter) - - pci:v000014E4d00001659sv0000103Csd00007032* -- ID_MODEL_FROM_DATABASE=NC320i PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320i PCIe Gigabit Server Adapter) - - pci:v000014E4d00001659sv00001734sd00001061* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard LAN -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PRIMERGY RX/TX S2 series onboard LAN) - - pci:v000014E4d0000165A* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express - - pci:v000014E4d0000165Asv00001014sd00000378* -- ID_MODEL_FROM_DATABASE=IBM System x3350 (Machine type 4192) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (IBM System x3350 (Machine type 4192)) - - pci:v000014E4d0000165Asv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 Broadcom NetXtreme 5722 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge R300 Broadcom NetXtreme 5722) - - pci:v000014E4d0000165Asv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 Broadcom NetXtreme 5722 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T300 Broadcom NetXtreme 5722) - - pci:v000014E4d0000165Asv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Broadcom NetXtreme 5722 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T105 Broadcom NetXtreme 5722) - - pci:v000014E4d0000165Asv0000103Csd00007051* -- ID_MODEL_FROM_DATABASE=NC105i PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105i PCIe Gigabit Server Adapter) - - pci:v000014E4d0000165Asv0000103Csd00007052* -- ID_MODEL_FROM_DATABASE=NC105T PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105T PCIe Gigabit Server Adapter) - - pci:v000014E4d0000165B* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe - - pci:v000014E4d0000165Bsv0000103Csd0000705D* -- ID_MODEL_FROM_DATABASE=NC107i Integrated PCI Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe (NC107i Integrated PCI Express Gigabit Server Adapter) - - pci:v000014E4d0000165C* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5724 Gigabit Ethernet PCIe -@@ -44403,25 +44403,25 @@ pci:v000014E4d0000165D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet - - pci:v000014E4d0000165Dsv00001028sd0000865D* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Latitude D400) - - pci:v000014E4d0000165Dsv000014E4sd0000165D* -- ID_MODEL_FROM_DATABASE=Dell Latitude D600 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Dell Latitude D600) - - pci:v000014E4d0000165E* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet - - pci:v000014E4d0000165Esv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC8000 laptop) - - pci:v000014E4d0000165Esv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC6000 laptop) - - pci:v000014E4d0000165Esv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NX6110/NC6120) - - pci:v000014E4d0000165Esv000010CFsd00001279* -- ID_MODEL_FROM_DATABASE=LifeBook E8010D -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (LifeBook E8010D) - - pci:v000014E4d0000165F* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5720 Gigabit Ethernet PCIe -@@ -44439,7 +44439,7 @@ pci:v000014E4d00001668* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet - - pci:v000014E4d00001668sv0000103Csd00007039* -- ID_MODEL_FROM_DATABASE=NC324i PCIe Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet (NC324i PCIe Dual Port Gigabit Server Adapter) - - pci:v000014E4d00001669* - ID_MODEL_FROM_DATABASE=NetXtreme 5714S Gigabit Ethernet -@@ -44448,7 +44448,7 @@ pci:v000014E4d0000166A* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet - - pci:v000014E4d0000166Asv0000103Csd00007035* -- ID_MODEL_FROM_DATABASE=NC325i Integrated Dual port PCIe Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet (NC325i Integrated Dual port PCIe Express Gigabit Server Adapter) - - pci:v000014E4d0000166B* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5780S Gigabit Ethernet -@@ -44472,91 +44472,91 @@ pci:v000014E4d00001677* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express - - pci:v000014E4d00001677sv00001028sd00000176* -- ID_MODEL_FROM_DATABASE=Dimension XPS Gen 4 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension XPS Gen 4) - - pci:v000014E4d00001677sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension 8400) - - pci:v000014E4d00001677sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Optiplex GX280) - - pci:v000014E4d00001677sv00001028sd00000182* -- ID_MODEL_FROM_DATABASE=Latitude D610 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Latitude D610) - - pci:v000014E4d00001677sv00001028sd00000187* -- ID_MODEL_FROM_DATABASE=Precision M70 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision M70) - - pci:v000014E4d00001677sv00001028sd000001A8* -- ID_MODEL_FROM_DATABASE=Precision 380 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision 380) - - pci:v000014E4d00001677sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (OptiPlex GX620) - - pci:v000014E4d00001677sv0000103Csd00003006* -- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (DC7100 SFF(DX878AV)) - - pci:v000014E4d00001677sv00001462sd0000028C* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (915P/G Neo2) - - pci:v000014E4d00001677sv00001734sd0000105D* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Scenic W620) - - pci:v000014E4d00001678* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet - - pci:v000014E4d00001678sv0000103Csd0000703E* -- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) - - pci:v000014E4d00001679* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet - - pci:v000014E4d00001679sv0000103Csd00001707* -- ID_MODEL_FROM_DATABASE=NC326m PCIe Dual Port Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326m PCIe Dual Port Adapter) - - pci:v000014E4d00001679sv0000103Csd0000170C* -- ID_MODEL_FROM_DATABASE=NC325m PCIe Quad Port Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC325m PCIe Quad Port Adapter) - - pci:v000014E4d00001679sv0000103Csd0000703C* -- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) - - pci:v000014E4d0000167A* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express - - pci:v000014E4d0000167Asv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (OptiPlex 745) - - pci:v000014E4d0000167Asv00001028sd000001DE* -- ID_MODEL_FROM_DATABASE=Precision 390 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision 390) - - pci:v000014E4d0000167Asv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (PowerEdge SC440) - - pci:v000014E4d0000167Asv00001028sd00000214* -- ID_MODEL_FROM_DATABASE=Precision T3400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T3400) - - pci:v000014E4d0000167Asv00001028sd0000021E* -- ID_MODEL_FROM_DATABASE=Precision T5400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T5400) - - pci:v000014E4d0000167B* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express - - pci:v000014E4d0000167Bsv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express (DC5750 Microtower) - - pci:v000014E4d0000167D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express - - pci:v000014E4d0000167Dsv00001014sd00000577* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad Z60t) - - pci:v000014E4d0000167Dsv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP nx8220 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP nx8220) - - pci:v000014E4d0000167Dsv0000103Csd00000940* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP Compaq nw8240 Mobile Workstation) - - pci:v000014E4d0000167Dsv000017AAsd00002081* -- ID_MODEL_FROM_DATABASE=ThinkPad R60e -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad R60e) - - pci:v000014E4d0000167E* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5751F Fast Ethernet PCI Express -@@ -44592,22 +44592,22 @@ pci:v000014E4d00001688* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet - - pci:v000014E4d00001688sv00001259sd00002708* -- ID_MODEL_FROM_DATABASE=AT-2712 FX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet (AT-2712 FX) - - pci:v000014E4d0000168A* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet - - pci:v000014E4d0000168Asv00001028sd00001F5C* -- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) - - pci:v000014E4d0000168Asv00001028sd00001F5D* -- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) - - pci:v000014E4d0000168Asv00001028sd00001F67* -- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) - - pci:v000014E4d0000168Asv00001028sd00001F68* -- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) - - pci:v000014E4d0000168D* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet -@@ -44616,34 +44616,34 @@ pci:v000014E4d0000168E* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet - - pci:v000014E4d0000168Esv0000103Csd00001798* -- ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (Flex-10 10Gb 2-port 530FLB Adapter [Meru]) - - pci:v000014E4d0000168Esv0000103Csd000017A5* -- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Flex-10 10Gb 2-port 530M Adapter) - - pci:v000014E4d0000168Esv0000103Csd000018D3* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530T Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001930* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001931* -- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP StoreFabric CN1100R Dual Port Converged Network Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001932* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLB Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001933* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534M Adapter) - - pci:v000014E4d0000168Esv0000103Csd0000193A* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) - - pci:v000014E4d0000168Esv0000103Csd00003382* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) - - pci:v000014E4d0000168Esv0000103Csd0000339D* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530SFP+ Adapter) - - pci:v000014E4d00001690* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe -@@ -44652,22 +44652,22 @@ pci:v000014E4d00001691* - ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe - - pci:v000014E4d00001691sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe (XPS 8300) - - pci:v000014E4d00001692* - ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe - - pci:v000014E4d00001692sv00001025sd0000033D* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe (Aspire 7740G) - - pci:v000014E4d00001693* - ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express - - pci:v000014E4d00001693sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (Aspire 5920G) - - pci:v000014E4d00001693sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=6710b -+ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (6710b) - - pci:v000014E4d00001694* - ID_MODEL_FROM_DATABASE=NetLink BCM57790 Gigabit Ethernet PCIe -@@ -44676,10 +44676,10 @@ pci:v000014E4d00001696* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet - - pci:v000014E4d00001696sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (d530 CMT (DG746A)) - - pci:v000014E4d00001696sv000014E4sd0000000D* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (NetXtreme BCM5782 1000Base-T) - - pci:v000014E4d00001698* - ID_MODEL_FROM_DATABASE=NetLink BCM5784M Gigabit Ethernet PCIe -@@ -44697,16 +44697,16 @@ pci:v000014E4d0000169C* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet - - pci:v000014E4d0000169Csv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (MX6125) - - pci:v000014E4d0000169Csv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (NC2400) - - pci:v000014E4d0000169Csv0000144Dsd0000C018* -- ID_MODEL_FROM_DATABASE=X20 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (X20) - - pci:v000014E4d0000169Csv00001462sd0000590C* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (KT6 Delta-FIS2R (MS-6590)) - - pci:v000014E4d0000169D* - ID_MODEL_FROM_DATABASE=NetLink BCM5789 Gigabit Ethernet PCI Express -@@ -44721,112 +44721,112 @@ pci:v000014E4d000016A2* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet - - pci:v000014E4d000016A2sv0000103Csd00001916* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630FLB Adapter) - - pci:v000014E4d000016A2sv0000103Csd00001917* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) - - pci:v000014E4d000016A4* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function - - pci:v000014E4d000016A4sv0000103Csd00001916* -- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630FLB Adapter) - - pci:v000014E4d000016A4sv0000103Csd00001917* -- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630M Adapter) - - pci:v000014E4d000016A5* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function - - pci:v000014E4d000016A5sv00001028sd00001F5C* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A5sv00001028sd00001F5D* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A5sv00001028sd00001F67* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A5sv00001028sd00001F68* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A6* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet - - pci:v000014E4d000016A6sv00000E11sd000000BB* -- ID_MODEL_FROM_DATABASE=NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) - - pci:v000014E4d000016A6sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016A6sv000014E4sd0000000C* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016A6sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016A7* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet - - pci:v000014E4d000016A7sv00000E11sd000000CA* -- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016A7sv00000E11sd000000CB* -- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016A7sv00001014sd0000026F* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (eServer xSeries server mainboard) - - pci:v000014E4d000016A7sv000014E4sd00000009* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016A7sv000014E4sd0000000A* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) - - pci:v000014E4d000016A7sv000014E4sd0000000B* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016A7sv000014E4sd0000800A* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016A8* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet - - pci:v000014E4d000016A8sv0000103Csd0000132B* -- ID_MODEL_FROM_DATABASE=PCI-X 1000Mbps Dual-port Built-in -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (PCI-X 1000Mbps Dual-port Built-in) - - pci:v000014E4d000016A8sv000010A9sd00008014* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Fiber) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Fiber)) - - pci:v000014E4d000016A8sv000010A9sd0000801C* -- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Fiber) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Fiber)) - - pci:v000014E4d000016A8sv000010B7sd00002001* -- ID_MODEL_FROM_DATABASE=3C998-SX Dual Port 1000-SX PCI-X -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (3C998-SX Dual Port 1000-SX PCI-X) - - pci:v000014E4d000016A9* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function - - pci:v000014E4d000016A9sv00001028sd00001F5C* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016A9sv00001028sd00001F5D* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016A9sv00001028sd00001F67* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016A9sv00001028sd00001F68* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016AA* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet - - pci:v000014E4d000016AAsv0000103Csd00003102* -- ID_MODEL_FROM_DATABASE=NC370F MultifuNCtion Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370F MultifuNCtion Gigabit Server Adapter) - - pci:v000014E4d000016AAsv0000103Csd0000310C* -- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016AB* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Multi Function -@@ -44838,97 +44838,97 @@ pci:v000014E4d000016ACsv00001014sd00000304* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet - - pci:v000014E4d000016ACsv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Broadcom NetXtreme II BCM5708S -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge 1955 Broadcom NetXtreme II BCM5708S) - - pci:v000014E4d000016ACsv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 Broadcom NetXtreme II BCM5708S -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge M605 Broadcom NetXtreme II BCM5708S) - - pci:v000014E4d000016ACsv0000103Csd00001706* -- ID_MODEL_FROM_DATABASE=NC373m Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373m Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016ACsv0000103Csd00007038* -- ID_MODEL_FROM_DATABASE=NC373i PCI Express Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i PCI Express Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016ACsv0000103Csd0000703B* -- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016ACsv0000103Csd0000703D* -- ID_MODEL_FROM_DATABASE=NC373F PCI Express Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373F PCI Express Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016AD* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function - - pci:v000014E4d000016ADsv0000103Csd00001916* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630FLB Adapter) - - pci:v000014E4d000016ADsv0000103Csd00001917* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630M Adapter) - - pci:v000014E4d000016AE* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function - - pci:v000014E4d000016AEsv0000103Csd00001798* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLB Adapter) - - pci:v000014E4d000016AEsv0000103Csd000017A5* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530M Adapter) - - pci:v000014E4d000016AEsv0000103Csd000018D3* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530T Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001930* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001931* -- ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR CN1100R Dual Port Converged Network Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001932* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLB Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001933* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534M Adapter) - - pci:v000014E4d000016AEsv0000103Csd0000193A* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 533FLR-T Adapter) - - pci:v000014E4d000016AEsv0000103Csd00003382* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter) - - pci:v000014E4d000016AEsv0000103Csd0000339D* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530SFP+ Adapter) - - pci:v000014E4d000016AF* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function - - pci:v000014E4d000016AFsv0000103Csd00001798* -- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530FLB Adapter) - - pci:v000014E4d000016AFsv0000103Csd000017A5* -- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530M Adapter) - - pci:v000014E4d000016AFsv0000103Csd000018D3* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530T Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001930* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001931* -- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP StoreFabric CN1100R Dual Port Converged Network Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001932* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLB Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001933* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534M Adapter) - - pci:v000014E4d000016AFsv0000103Csd0000193A* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) - - pci:v000014E4d000016AFsv0000103Csd00003382* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) - - pci:v000014E4d000016AFsv0000103Csd0000339D* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530SFP+ Adapter) - - pci:v000014E4d000016B0* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe -@@ -44937,7 +44937,7 @@ pci:v000014E4d000016B1* - ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe - - pci:v000014E4d000016B1sv00001849sd000096B1* -- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard -+ ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe (Z77 Extreme4 motherboard) - - pci:v000014E4d000016B2* - ID_MODEL_FROM_DATABASE=NetLink BCM57791 Gigabit Ethernet PCIe -@@ -44970,37 +44970,37 @@ pci:v000014E4d000016C6* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet - - pci:v000014E4d000016C6sv000010B7sd00001100* -- ID_MODEL_FROM_DATABASE=3C1000B-T 10/100/1000 PCI -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (3C1000B-T 10/100/1000 PCI) - - pci:v000014E4d000016C6sv000014E4sd0000000C* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016C6sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016C7* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet - - pci:v000014E4d000016C7sv00000E11sd000000CA* -- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016C7sv00000E11sd000000CB* -- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016C7sv0000103Csd000012C3* -- ID_MODEL_FROM_DATABASE=Combo FC/GigE-SX [A9782A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-SX [A9782A]) - - pci:v000014E4d000016C7sv0000103Csd000012CA* -- ID_MODEL_FROM_DATABASE=Combo FC/GigE-T [A9784A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-T [A9784A]) - - pci:v000014E4d000016C7sv0000103Csd00001321* -- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Core I/O LAN/SCSI Combo [AB314A]) - - pci:v000014E4d000016C7sv000014E4sd00000009* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016C7sv000014E4sd0000000A* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) - - pci:v000014E4d000016DD* - ID_MODEL_FROM_DATABASE=NetLink BCM5781 Gigabit Ethernet PCI Express -@@ -45015,10 +45015,10 @@ pci:v000014E4d000016FD* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express - - pci:v000014E4d000016FDsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nx9420 Notebook) - - pci:v000014E4d000016FDsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nw8440) - - pci:v000014E4d000016FE* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5753F Fast Ethernet PCI Express -@@ -45027,40 +45027,40 @@ pci:v000014E4d0000170C* - ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX - - pci:v000014E4d0000170Csv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6000 laptop) - - pci:v000014E4d0000170Csv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 700m/710m) - - pci:v000014E4d0000170Csv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 5160) - - pci:v000014E4d0000170Csv00001028sd000001AF* -- ID_MODEL_FROM_DATABASE=Inspiron 6400 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6400) - - pci:v000014E4d0000170Csv00001028sd000001CD* -- ID_MODEL_FROM_DATABASE=Inspiron 9400 Laptop -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 9400 Laptop) - - pci:v000014E4d0000170Csv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (XPS M1210) - - pci:v000014E4d0000170Csv00001028sd000001D8* -- ID_MODEL_FROM_DATABASE=Inspiron E1405 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron E1405) - - pci:v000014E4d0000170Csv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX6110/NC6120) - - pci:v000014E4d0000170Csv0000103Csd000030A2* -- ID_MODEL_FROM_DATABASE=NX7300 laptop -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX7300 laptop) - - pci:v000014E4d0000170Csv000014E4sd0000170C* -- ID_MODEL_FROM_DATABASE=HP Compaq 6720t Mobile Thin Client -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (HP Compaq 6720t Mobile Thin Client) - - pci:v000014E4d0000170D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX - - pci:v000014E4d0000170Dsv00001014sd00000545* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX (ThinkPad R40e) - - pci:v000014E4d0000170E* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX -@@ -45072,16 +45072,16 @@ pci:v000014E4d00001713* - ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express - - pci:v000014E4d00001713sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Inspiron 1420) - - pci:v000014E4d00001713sv00001028sd00000209* -- ID_MODEL_FROM_DATABASE=XPS M1330 -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (XPS M1330) - - pci:v000014E4d00001713sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Compaq 6710b) - - pci:v000014E4d00001713sv000017AAsd00003A23* -- ID_MODEL_FROM_DATABASE=IdeaPad S10e -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (IdeaPad S10e) - - pci:v000014E4d00003352* - ID_MODEL_FROM_DATABASE=BCM3352 -@@ -45108,16 +45108,16 @@ pci:v000014E4d00004301* - ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller - - pci:v000014E4d00004301sv00001028sd00000407* -- ID_MODEL_FROM_DATABASE=TrueMobile 1180 Onboard WLAN -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (TrueMobile 1180 Onboard WLAN) - - pci:v000014E4d00004301sv00001043sd00000120* -- ID_MODEL_FROM_DATABASE=WL-103b Wireless LAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WL-103b Wireless LAN PC Card) - - pci:v000014E4d00004301sv000016A5sd00001602* -- ID_MODEL_FROM_DATABASE=B-300 802.11b Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (B-300 802.11b Wireless CardBus Adapter) - - pci:v000014E4d00004301sv00001737sd00004301* -- ID_MODEL_FROM_DATABASE=WMP11 v2.7 802.11b Wireless-B PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WMP11 v2.7 802.11b Wireless-B PCI Adapter) - - pci:v000014E4d00004305* - ID_MODEL_FROM_DATABASE=BCM4307 V.90 56k Modem -@@ -45135,85 +45135,85 @@ pci:v000014E4d00004311* - ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN - - pci:v000014E4d00004311sv00001028sd00000007* -- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN Mini-Card) - - pci:v000014E4d00004311sv00001028sd00000008* -- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN ExpressCard -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN ExpressCard) - - pci:v000014E4d00004311sv0000103Csd00001363* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001364* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001365* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001374* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001375* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001376* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001377* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd0000137F* -- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001380* -- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) - - pci:v000014E4d00004311sv000014E4sd00004311* -- ID_MODEL_FROM_DATABASE=BCM94311MCG -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM94311MCG) - - pci:v000014E4d00004312* - ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g - - pci:v000014E4d00004312sv00001028sd00000007* -- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN Mini-Card) - - pci:v000014E4d00004312sv00001028sd00000008* -- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN ExpressCard -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN ExpressCard) - - pci:v000014E4d00004312sv0000103Csd0000135A* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd0000135F* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001360* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001361* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001362* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001370* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001371* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001372* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001373* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Presario V3242AU) - - pci:v000014E4d00004312sv0000106Bsd00000089* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (AirPort Extreme) - - pci:v000014E4d00004312sv00001371sd0000103C* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11 Multiband-netwerkadapter(6715s) -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11 Multiband-netwerkadapter(6715s)) - - pci:v000014E4d00004313* - ID_MODEL_FROM_DATABASE=BCM4311 802.11a -@@ -45222,175 +45222,175 @@ pci:v000014E4d00004315* - ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY - - pci:v000014E4d00004315sv00001028sd0000000B* -- ID_MODEL_FROM_DATABASE=Wireless 1395 WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1395 WLAN Mini-Card) - - pci:v000014E4d00004315sv00001028sd0000000C* -- ID_MODEL_FROM_DATABASE=Wireless 1397 WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1397 WLAN Mini-Card) - - pci:v000014E4d00004315sv0000103Csd0000137C* -- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004315sv0000103Csd0000137D* -- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004315sv0000103Csd00001507* -- ID_MODEL_FROM_DATABASE=U98Z049.00 Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (U98Z049.00 Wireless Mini PCIe Card) - - pci:v000014E4d00004315sv0000105Bsd0000E003* -- ID_MODEL_FROM_DATABASE=T77H030.00 Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H030.00 Wireless Mini PCIe Card) - - pci:v000014E4d00004315sv0000105Bsd0000E01B* -- ID_MODEL_FROM_DATABASE=T77H106.00 Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H106.00 Wireless Half-size Mini PCIe Card) - - pci:v000014E4d00004318* - ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller - - pci:v000014E4d00004318sv00001028sd00000005* -- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN Mini-PCI Card) - - pci:v000014E4d00004318sv00001028sd00000006* -- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN PC Card) - - pci:v000014E4d00004318sv0000103Csd00001355* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004318sv0000103Csd00001356* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004318sv0000103Csd00001357* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004318sv00001043sd0000100F* -- ID_MODEL_FROM_DATABASE=WL-138G v2 / WL-138gE / WL-100gE -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WL-138G v2 / WL-138gE / WL-100gE) - - pci:v000014E4d00004318sv00001043sd0000120F* -- ID_MODEL_FROM_DATABASE=A6U notebook embedded card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (A6U notebook embedded card) - - pci:v000014E4d00004318sv00001154sd00000355* -- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter) - - pci:v000014E4d00004318sv00001468sd00000311* -- ID_MODEL_FROM_DATABASE=Aspire 3022WLMi, 5024WLMi, 5020 -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Aspire 3022WLMi, 5024WLMi, 5020) - - pci:v000014E4d00004318sv00001468sd00000312* -- ID_MODEL_FROM_DATABASE=TravelMate 2410 -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (TravelMate 2410) - - pci:v000014E4d00004318sv000014E4sd00000449* -- ID_MODEL_FROM_DATABASE=Gateway 7510GX -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Gateway 7510GX) - - pci:v000014E4d00004318sv000016ECsd00000119* -- ID_MODEL_FROM_DATABASE=U.S.Robotics Wireless MAXg PC Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (U.S.Robotics Wireless MAXg PC Card) - - pci:v000014E4d00004318sv00001737sd00000042* -- ID_MODEL_FROM_DATABASE=WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster) - - pci:v000014E4d00004318sv00001737sd00000048* -- ID_MODEL_FROM_DATABASE=WPC54G v3 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54G v3 802.11g Wireless-G Notebook Adapter) - - pci:v000014E4d00004318sv00001737sd00000049* -- ID_MODEL_FROM_DATABASE=WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster) - - pci:v000014E4d00004318sv00001799sd00007000* -- ID_MODEL_FROM_DATABASE=F5D7000 v4000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7000 v4000 Wireless G Desktop Card) - - pci:v000014E4d00004318sv00001799sd00007001* -- ID_MODEL_FROM_DATABASE=F5D7001 v2000 Wireless G Plus Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7001 v2000 Wireless G Plus Desktop Card) - - pci:v000014E4d00004318sv00001799sd00007010* -- ID_MODEL_FROM_DATABASE=F5D7010 v4000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7010 v4000 Wireless G Notebook Card) - - pci:v000014E4d00004318sv00001799sd00007011* -- ID_MODEL_FROM_DATABASE=F5D7011 v2000 High-Speed Mode Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7011 v2000 High-Speed Mode Wireless G Notebook Card) - - pci:v000014E4d00004319* - ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver - - pci:v000014E4d00004319sv00001028sd00000005* -- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN Mini-PCI Card) - - pci:v000014E4d00004319sv00001028sd00000006* -- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN PC Card) - - pci:v000014E4d00004319sv0000103Csd00001358* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004319sv0000103Csd00001359* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004319sv0000103Csd0000135A* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004320* - ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller - - pci:v000014E4d00004320sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN Mini-PCI Card) - - pci:v000014E4d00004320sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN PC Card) - - pci:v000014E4d00004320sv00001028sd00000003* -- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN Mini-PCI Card) - - pci:v000014E4d00004320sv00001028sd00000004* -- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN PC Card) - - pci:v000014E4d00004320sv0000103Csd000012F4* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv0000103Csd000012F8* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv0000103Csd000012FA* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv0000103Csd000012FB* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv00001043sd0000100F* -- ID_MODEL_FROM_DATABASE=WL-100G -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WL-100G) - - pci:v000014E4d00004320sv00001057sd00007025* -- ID_MODEL_FROM_DATABASE=WN825G -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WN825G) - - pci:v000014E4d00004320sv0000106Bsd0000004E* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (AirPort Extreme) - - pci:v000014E4d00004320sv00001154sd00000330* -- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter) - - pci:v000014E4d00004320sv0000144Fsd00007050* -- ID_MODEL_FROM_DATABASE=eMachines M6805 802.11g Built-in Wireless -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (eMachines M6805 802.11g Built-in Wireless) - - pci:v000014E4d00004320sv0000144Fsd00007051* -- ID_MODEL_FROM_DATABASE=Sonnet Aria Extreme PCI -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Sonnet Aria Extreme PCI) - - pci:v000014E4d00004320sv00001737sd00000013* -- ID_MODEL_FROM_DATABASE=WMP54G v1 802.11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v1 802.11g PCI Adapter) - - pci:v000014E4d00004320sv00001737sd00000014* -- ID_MODEL_FROM_DATABASE=WMP54G v2 802.11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v2 802.11g PCI Adapter) - - pci:v000014E4d00004320sv00001737sd00000015* -- ID_MODEL_FROM_DATABASE=WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster) - - pci:v000014E4d00004320sv00001737sd00004320* -- ID_MODEL_FROM_DATABASE=WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter) - - pci:v000014E4d00004320sv00001799sd00007000* -- ID_MODEL_FROM_DATABASE=F5D7000 v1000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7000 v1000 Wireless G Desktop Card) - - pci:v000014E4d00004320sv00001799sd00007001* -- ID_MODEL_FROM_DATABASE=F5D7001 v1000 Wireless G Plus Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7001 v1000 Wireless G Plus Desktop Card) - - pci:v000014E4d00004320sv00001799sd00007010* -- ID_MODEL_FROM_DATABASE=F5D7010 v1000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7010 v1000 Wireless G Notebook Card) - - pci:v000014E4d00004320sv00001799sd00007011* -- ID_MODEL_FROM_DATABASE=F5D7011 v1000 High-Speed Mode Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7011 v1000 High-Speed Mode Wireless G Notebook Card) - - pci:v000014E4d00004320sv0000185Fsd00001220* -- ID_MODEL_FROM_DATABASE=TravelMate 290E WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TravelMate 290E WLAN Mini-PCI Card) - - pci:v000014E4d00004321* - ID_MODEL_FROM_DATABASE=BCM4321 802.11a Wireless Network Controller -@@ -45402,31 +45402,31 @@ pci:v000014E4d00004324* - ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller - - pci:v000014E4d00004324sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=Truemobile 1400 -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1400) - - pci:v000014E4d00004324sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=TrueMobile 1400 Dual Band WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (TrueMobile 1400 Dual Band WLAN PC Card) - - pci:v000014E4d00004324sv00001028sd00000003* -- ID_MODEL_FROM_DATABASE=Truemobile 1450 MiniPCI -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1450 MiniPCI) - - pci:v000014E4d00004324sv00001028sd00000004* -- ID_MODEL_FROM_DATABASE=Wireless 1450 Dual Band WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Wireless 1450 Dual Band WLAN PC Card) - - pci:v000014E4d00004324sv0000103Csd000012F9* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004324sv0000103Csd000012FC* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004325* - ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller - - pci:v000014E4d00004325sv00001414sd00000003* -- ID_MODEL_FROM_DATABASE=Wireless Notebook Adapter MN-720 -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless Notebook Adapter MN-720) - - pci:v000014E4d00004325sv00001414sd00000004* -- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter MN-730 -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless PCI Adapter MN-730) - - pci:v000014E4d00004326* - ID_MODEL_FROM_DATABASE=BCM4307 Chipcommon I/O Controller? -@@ -45435,58 +45435,58 @@ pci:v000014E4d00004328* - ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n - - pci:v000014E4d00004328sv00001028sd00000009* -- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-Card) - - pci:v000014E4d00004328sv00001028sd0000000A* -- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-card -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-card) - - pci:v000014E4d00004328sv0000103Csd00001366* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000103Csd00001367* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000103Csd00001368* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000103Csd00001369* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000106Bsd00000087* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd00000088* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd0000008B* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd0000008C* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd00000090* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv000014E4sd00004328* -- ID_MODEL_FROM_DATABASE=BCM4328 802.11a/b/g/n -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (BCM4328 802.11a/b/g/n) - - pci:v000014E4d00004328sv00001737sd00000066* -- ID_MODEL_FROM_DATABASE=WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter) - - pci:v000014E4d00004328sv00001737sd00000068* -- ID_MODEL_FROM_DATABASE=WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard) - - pci:v000014E4d00004329* - ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n - - pci:v000014E4d00004329sv00001385sd00007B00* -- ID_MODEL_FROM_DATABASE=WN511B RangeMax NEXT Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN511B RangeMax NEXT Wireless Notebook Adapter) - - pci:v000014E4d00004329sv00001385sd00007D00* -- ID_MODEL_FROM_DATABASE=WN311B RangeMax Next 270 Mbps Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN311B RangeMax Next 270 Mbps Wireless PCI Adapter) - - pci:v000014E4d00004329sv00001737sd00000058* -- ID_MODEL_FROM_DATABASE=WPC300N v1 Wireless-N Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WPC300N v1 Wireless-N Notebook Adapter) - - pci:v000014E4d0000432A* - ID_MODEL_FROM_DATABASE=BCM4321 802.11an Wireless Network Controller -@@ -45495,19 +45495,19 @@ pci:v000014E4d0000432B* - ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller - - pci:v000014E4d0000432Bsv00001028sd0000000D* -- ID_MODEL_FROM_DATABASE=Wireless 1510 Wireless-N WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (Wireless 1510 Wireless-N WLAN Mini-Card) - - pci:v000014E4d0000432Bsv0000106Bsd0000008D* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) - - pci:v000014E4d0000432Bsv0000106Bsd0000008E* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) - - pci:v000014E4d0000432C* - ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n - - pci:v000014E4d0000432Csv00001799sd0000D311* -- ID_MODEL_FROM_DATABASE=Dynex DX-NNBX 802.11n WLAN Cardbus Card -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n (Dynex DX-NNBX 802.11n WLAN Cardbus Card) - - pci:v000014E4d0000432D* - ID_MODEL_FROM_DATABASE=BCM4322 802.11an Wireless Network Controller -@@ -45516,25 +45516,25 @@ pci:v000014E4d00004331* - ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n - - pci:v000014E4d00004331sv0000106Bsd000000D6* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000E4* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000EF* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000F4* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000F5* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd0000010E* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd0000010F* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004333* - ID_MODEL_FROM_DATABASE=Serial (EDGE/GPRS modem part of Option GT Combo Edge) -@@ -45549,25 +45549,25 @@ pci:v000014E4d00004353* - ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n - - pci:v000014E4d00004353sv00001028sd0000000E* -- ID_MODEL_FROM_DATABASE=Wireless 1520 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (Wireless 1520 Half-size Mini PCIe Card) - - pci:v000014E4d00004353sv0000103Csd00001509* -- ID_MODEL_FROM_DATABASE=WMIB-275N Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (WMIB-275N Half-size Mini PCIe Card) - - pci:v000014E4d00004353sv0000106Bsd00000093* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004353sv0000106Bsd000000D1* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004353sv0000106Bsd000000E9* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004357* - ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n - - pci:v000014E4d00004357sv0000105Bsd0000E021* -- ID_MODEL_FROM_DATABASE=T77H103.00 Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n (T77H103.00 Wireless Half-size Mini PCIe Card) - - pci:v000014E4d00004358* - ID_MODEL_FROM_DATABASE=BCM43227 802.11b/g/n -@@ -45576,16 +45576,16 @@ pci:v000014E4d00004359* - ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n - - pci:v000014E4d00004359sv00001028sd00000011* -- ID_MODEL_FROM_DATABASE=Wireless 1530 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (Wireless 1530 Half-size Mini PCIe Card) - - pci:v000014E4d00004359sv0000103Csd0000182C* -- ID_MODEL_FROM_DATABASE=BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter -+ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) - - pci:v000014E4d00004365* - ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n - - pci:v000014E4d00004365sv00001028sd00000016* -- ID_MODEL_FROM_DATABASE=Wireless 1704 802.11n + BT 4.0 -+ ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n (Wireless 1704 802.11n + BT 4.0) - - pci:v000014E4d000043A0* - ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter -@@ -45597,13 +45597,13 @@ pci:v000014E4d00004401* - ID_MODEL_FROM_DATABASE=BCM4401 100Base-T - - pci:v000014E4d00004401sv00001025sd00000035* -- ID_MODEL_FROM_DATABASE=TravelMate 660 -+ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (TravelMate 660) - - pci:v000014E4d00004401sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (tc1100 tablet) - - pci:v000014E4d00004401sv00001043sd000080A8* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (A7V8X motherboard) - - pci:v000014E4d00004402* - ID_MODEL_FROM_DATABASE=BCM4402 Integrated 10/100BaseT -@@ -45696,7 +45696,7 @@ pci:v000014E4d00004727* - ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter - - pci:v000014E4d00004727sv00001028sd00000010* -- ID_MODEL_FROM_DATABASE=Inspiron M5010 / XPS 8300 -+ ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter (Inspiron M5010 / XPS 8300) - - pci:v000014E4d00005365* - ID_MODEL_FROM_DATABASE=BCM5365P Sentry5 Host Bridge -@@ -45867,55 +45867,55 @@ pci:v000014F1d00001033* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v000014F1d00001033sv00001033sd00008077* -- ID_MODEL_FROM_DATABASE=NEC -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (NEC) - - pci:v000014F1d00001033sv0000122Dsd00004027* -- ID_MODEL_FROM_DATABASE=Dell Zeus - MDP3880-W(B) Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Zeus - MDP3880-W(B) Data Fax Modem) - - pci:v000014F1d00001033sv0000122Dsd00004030* -- ID_MODEL_FROM_DATABASE=Dell Mercury - MDP3880-U(B) Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Mercury - MDP3880-U(B) Data Fax Modem) - - pci:v000014F1d00001033sv0000122Dsd00004034* -- ID_MODEL_FROM_DATABASE=Dell Thor - MDP3880-W(U) Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Thor - MDP3880-W(U) Data Fax Modem) - - pci:v000014F1d00001033sv000013E0sd0000020D* -- ID_MODEL_FROM_DATABASE=Dell Copper -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Copper) - - pci:v000014F1d00001033sv000013E0sd0000020E* -- ID_MODEL_FROM_DATABASE=Dell Silver -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Silver) - - pci:v000014F1d00001033sv000013E0sd00000261* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv000013E0sd00000290* -- ID_MODEL_FROM_DATABASE=Compaq Goldwing -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Goldwing) - - pci:v000014F1d00001033sv000013E0sd000002A0* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv000013E0sd000002B0* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv000013E0sd000002C0* -- ID_MODEL_FROM_DATABASE=Compaq Scooter -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Scooter) - - pci:v000014F1d00001033sv000013E0sd000002D0* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv0000144Fsd00001500* -- ID_MODEL_FROM_DATABASE=IBM P85-DF (1) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (1)) - - pci:v000014F1d00001033sv0000144Fsd00001501* -- ID_MODEL_FROM_DATABASE=IBM P85-DF (2) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (2)) - - pci:v000014F1d00001033sv0000144Fsd0000150A* -- ID_MODEL_FROM_DATABASE=IBM P85-DF (3) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (3)) - - pci:v000014F1d00001033sv0000144Fsd0000150B* -- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (1) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (1)) - - pci:v000014F1d00001033sv0000144Fsd00001510* -- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (2) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (2)) - - pci:v000014F1d00001034* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem -@@ -45924,31 +45924,31 @@ pci:v000014F1d00001035* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v000014F1d00001035sv000010CFsd00001098* -- ID_MODEL_FROM_DATABASE=Fujitsu P85-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu P85-DFSV) - - pci:v000014F1d00001036* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem - - pci:v000014F1d00001036sv0000104Dsd00008067* -- ID_MODEL_FROM_DATABASE=HCF 56k Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (HCF 56k Modem) - - pci:v000014F1d00001036sv0000122Dsd00004029* -- ID_MODEL_FROM_DATABASE=MDP3880SP-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-W) - - pci:v000014F1d00001036sv0000122Dsd00004031* -- ID_MODEL_FROM_DATABASE=MDP3880SP-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-U) - - pci:v000014F1d00001036sv000013E0sd00000209* -- ID_MODEL_FROM_DATABASE=Dell Titanium -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Titanium) - - pci:v000014F1d00001036sv000013E0sd0000020A* -- ID_MODEL_FROM_DATABASE=Dell Graphite -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Graphite) - - pci:v000014F1d00001036sv000013E0sd00000260* -- ID_MODEL_FROM_DATABASE=Gateway Red Owl -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway Red Owl) - - pci:v000014F1d00001036sv000013E0sd00000270* -- ID_MODEL_FROM_DATABASE=Gateway White Horse -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway White Horse) - - pci:v000014F1d00001052* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Worldwide) -@@ -45966,7 +45966,7 @@ pci:v000014F1d00001056* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) - - pci:v000014F1d00001056sv0000122Dsd00004035* -- ID_MODEL_FROM_DATABASE=MDP3900V-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) (MDP3900V-W) - - pci:v000014F1d00001057* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) -@@ -45987,7 +45987,7 @@ pci:v000014F1d00001066* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem - - pci:v000014F1d00001066sv0000122Dsd00004033* -- ID_MODEL_FROM_DATABASE=Dell Athena - MDP3900V-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Athena - MDP3900V-U) - - pci:v000014F1d00001085* - ID_MODEL_FROM_DATABASE=HCF V90 56k Data/Fax/Voice/Spkp PCI Modem -@@ -46011,16 +46011,16 @@ pci:v000014F1d00001453* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v000014F1d00001453sv000013E0sd00000240* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001453sv000013E0sd00000250* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001453sv0000144Fsd00001502* -- ID_MODEL_FROM_DATABASE=IBM P95-DF (1) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (1)) - - pci:v000014F1d00001453sv0000144Fsd00001503* -- ID_MODEL_FROM_DATABASE=IBM P95-DF (2) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (2)) - - pci:v000014F1d00001454* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem -@@ -46032,10 +46032,10 @@ pci:v000014F1d00001456* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem - - pci:v000014F1d00001456sv0000122Dsd00004035* -- ID_MODEL_FROM_DATABASE=Dell Europa - MDP3900V-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Europa - MDP3900V-W) - - pci:v000014F1d00001456sv0000122Dsd00004302* -- ID_MODEL_FROM_DATABASE=Dell MP3930V-W(C) MiniPCI -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell MP3930V-W(C) MiniPCI) - - pci:v000014F1d00001610* - ID_MODEL_FROM_DATABASE=ADSL AccessRunner PCI Arbitration Device -@@ -46056,10 +46056,10 @@ pci:v000014F1d00001803* - ID_MODEL_FROM_DATABASE=HCF 56k Modem - - pci:v000014F1d00001803sv00000E11sd00000023* -- ID_MODEL_FROM_DATABASE=623-LAN Grizzly -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Grizzly) - - pci:v000014F1d00001803sv00000E11sd00000043* -- ID_MODEL_FROM_DATABASE=623-LAN Yogi -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Yogi) - - pci:v000014F1d00001811* - ID_MODEL_FROM_DATABASE=MiniPCI Network Adapter -@@ -46068,10 +46068,10 @@ pci:v000014F1d00001815* - ID_MODEL_FROM_DATABASE=HCF 56k Modem - - pci:v000014F1d00001815sv00000E11sd00000022* -- ID_MODEL_FROM_DATABASE=Grizzly -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Grizzly) - - pci:v000014F1d00001815sv00000E11sd00000042* -- ID_MODEL_FROM_DATABASE=Yogi -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Yogi) - - pci:v000014F1d00002003* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem -@@ -46089,28 +46089,28 @@ pci:v000014F1d00002013* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem - - pci:v000014F1d00002013sv00000E11sd0000B195* -- ID_MODEL_FROM_DATABASE=Bear -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Bear) - - pci:v000014F1d00002013sv00000E11sd0000B196* -- ID_MODEL_FROM_DATABASE=Seminole 1 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 1) - - pci:v000014F1d00002013sv00000E11sd0000B1BE* -- ID_MODEL_FROM_DATABASE=Seminole 2 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 2) - - pci:v000014F1d00002013sv00001025sd00008013* -- ID_MODEL_FROM_DATABASE=Acer -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Acer) - - pci:v000014F1d00002013sv00001033sd0000809D* -- ID_MODEL_FROM_DATABASE=NEC -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) - - pci:v000014F1d00002013sv00001033sd000080BC* -- ID_MODEL_FROM_DATABASE=NEC -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) - - pci:v000014F1d00002013sv0000155Dsd00006793* -- ID_MODEL_FROM_DATABASE=HP -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (HP) - - pci:v000014F1d00002013sv0000155Dsd00008850* -- ID_MODEL_FROM_DATABASE=E Machines -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (E Machines) - - pci:v000014F1d00002014* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem -@@ -46131,7 +46131,7 @@ pci:v000014F1d00002045* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) - - pci:v000014F1d00002045sv000014F1sd00002045* -- ID_MODEL_FROM_DATABASE=Generic SoftK56 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) (Generic SoftK56) - - pci:v000014F1d00002046* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (WorldW SmartDAA) -@@ -46152,7 +46152,7 @@ pci:v000014F1d00002093* - ID_MODEL_FROM_DATABASE=HSF 56k Modem - - pci:v000014F1d00002093sv0000155Dsd00002F07* -- ID_MODEL_FROM_DATABASE=Legend -+ ID_MODEL_FROM_DATABASE=HSF 56k Modem (Legend) - - pci:v000014F1d00002143* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Cell Modem (Mob WorldW SmartDAA) -@@ -46206,13 +46206,13 @@ pci:v000014F1d00002443* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) - - pci:v000014F1d00002443sv0000104Dsd00008075* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) - - pci:v000014F1d00002443sv0000104Dsd00008083* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) - - pci:v000014F1d00002443sv0000104Dsd00008097* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) - - pci:v000014F1d00002444* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Mob WorldW SmartDAA) -@@ -46239,13 +46239,13 @@ pci:v000014F1d00002F00* - ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem - - pci:v000014F1d00002F00sv000013E0sd00008D84* -- ID_MODEL_FROM_DATABASE=IBM HSFi V.90 -+ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (IBM HSFi V.90) - - pci:v000014F1d00002F00sv000013E0sd00008D85* -- ID_MODEL_FROM_DATABASE=Compaq Stinger -+ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Compaq Stinger) - - pci:v000014F1d00002F00sv000014F1sd00002004* -- ID_MODEL_FROM_DATABASE=Dynalink 56PMi -+ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Dynalink 56PMi) - - pci:v000014F1d00002F02* - ID_MODEL_FROM_DATABASE=HSF 56k HSFi Data/Fax -@@ -46257,16 +46257,16 @@ pci:v000014F1d00002F20* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem - - pci:v000014F1d00002F20sv000014F1sd0000200C* -- ID_MODEL_FROM_DATABASE=Soft Data Fax Modem with SmartCP -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Soft Data Fax Modem with SmartCP) - - pci:v000014F1d00002F20sv000014F1sd0000200F* -- ID_MODEL_FROM_DATABASE=Dimension 3000 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Dimension 3000) - - pci:v000014F1d00002F30* - ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP - - pci:v000014F1d00002F30sv000014F1sd00002014* -- ID_MODEL_FROM_DATABASE=Devolo MikroLink 56K Modem PCI -+ ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP (Devolo MikroLink 56K Modem PCI) - - pci:v000014F1d00002F50* - ID_MODEL_FROM_DATABASE=Conexant SoftK56 Data/Fax Modem -@@ -46275,13 +46275,13 @@ pci:v000014F1d00005B7A* - ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder - - pci:v000014F1d00005B7Asv00000070sd00007444* -- ID_MODEL_FROM_DATABASE=WinTV HVR-1600 -+ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinTV HVR-1600) - - pci:v000014F1d00005B7Asv0000107Dsd00006F34* -- ID_MODEL_FROM_DATABASE=WinFast DVR3100 H -+ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinFast DVR3100 H) - - pci:v000014F1d00005B7Asv00005854sd00003343* -- ID_MODEL_FROM_DATABASE=GoTView PCI DVD3 Hybrid -+ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (GoTView PCI DVD3 Hybrid) - - pci:v000014F1d00008200* - ID_MODEL_FROM_DATABASE=CX25850 -@@ -46293,304 +46293,304 @@ pci:v000014F1d00008800* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder - - pci:v000014F1d00008800sv00000070sd00002801* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 28xxx (Roslyn) models) - - pci:v000014F1d00008800sv00000070sd00003400* -- ID_MODEL_FROM_DATABASE=WinTV 34604 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 34604) - - pci:v000014F1d00008800sv00000070sd00003401* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 34xxx models) - - pci:v000014F1d00008800sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-4000-HD) - - pci:v000014F1d00008800sv00000070sd00007801* -- ID_MODEL_FROM_DATABASE=WinTV HVR-1800 MCE -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-1800 MCE) - - pci:v000014F1d00008800sv00000070sd00009001* -- ID_MODEL_FROM_DATABASE=Nova-T DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-T DVB-T) - - pci:v000014F1d00008800sv00000070sd00009200* -- ID_MODEL_FROM_DATABASE=Nova-SE2 DVB-S -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-SE2 DVB-S) - - pci:v000014F1d00008800sv00000070sd00009202* -- ID_MODEL_FROM_DATABASE=Nova-S-Plus DVB-S -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-S-Plus DVB-S) - - pci:v000014F1d00008800sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008800sv00000070sd00009600* -- ID_MODEL_FROM_DATABASE=WinTV 88x Video -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 88x Video) - - pci:v000014F1d00008800sv00000070sd00009802* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid (Low Profile) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid (Low Profile)) - - pci:v000014F1d00008800sv00001002sd000000F8* -- ID_MODEL_FROM_DATABASE=ATI TV Wonder Pro -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) - - pci:v000014F1d00008800sv00001002sd0000A101* -- ID_MODEL_FROM_DATABASE=HDTV Wonder -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) - - pci:v000014F1d00008800sv00001043sd00004823* -- ID_MODEL_FROM_DATABASE=ASUS PVR-416 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ASUS PVR-416) - - pci:v000014F1d00008800sv0000107Dsd00006611* -- ID_MODEL_FROM_DATABASE=Winfast TV 2000XP Expert -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Winfast TV 2000XP Expert) - - pci:v000014F1d00008800sv0000107Dsd00006613* -- ID_MODEL_FROM_DATABASE=Leadtek Winfast 2000XP Expert -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast 2000XP Expert) - - pci:v000014F1d00008800sv0000107Dsd00006620* -- ID_MODEL_FROM_DATABASE=Leadtek Winfast DV2000 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast DV2000) - - pci:v000014F1d00008800sv0000107Dsd0000663C* -- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek PVR 2000) - - pci:v000014F1d00008800sv0000107Dsd0000665F* -- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinFast DTV1000-T) - - pci:v000014F1d00008800sv000010FCsd0000D003* -- ID_MODEL_FROM_DATABASE=IODATA GV-VCP3/PCI -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV-VCP3/PCI) - - pci:v000014F1d00008800sv000010FCsd0000D035* -- ID_MODEL_FROM_DATABASE=IODATA GV/BCTV7E -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV/BCTV7E) - - pci:v000014F1d00008800sv00001421sd00000334* -- ID_MODEL_FROM_DATABASE=Instant TV DVB-T PCI -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Instant TV DVB-T PCI) - - pci:v000014F1d00008800sv00001461sd0000000A* -- ID_MODEL_FROM_DATABASE=AVerTV 303 (M126) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AVerTV 303 (M126)) - - pci:v000014F1d00008800sv00001461sd0000000B* -- ID_MODEL_FROM_DATABASE=AverTV Studio 303 (M126) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AverTV Studio 303 (M126)) - - pci:v000014F1d00008800sv00001461sd00008011* -- ID_MODEL_FROM_DATABASE=UltraTV Media Center PCI 550 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (UltraTV Media Center PCI 550) - - pci:v000014F1d00008800sv00001462sd00008606* -- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (MSI TV-@nywhere Master) - - pci:v000014F1d00008800sv000014C7sd00000107* -- ID_MODEL_FROM_DATABASE=GDI Black Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GDI Black Gold) - - pci:v000014F1d00008800sv000014F1sd00000187* -- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Conexant DVB-T reference design) - - pci:v000014F1d00008800sv000014F1sd00000342* -- ID_MODEL_FROM_DATABASE=Digital-Logic MICROSPACE Entertainment Center (MEC) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Digital-Logic MICROSPACE Entertainment Center (MEC)) - - pci:v000014F1d00008800sv0000153Bsd00001166* -- ID_MODEL_FROM_DATABASE=Cinergy 1400 DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Cinergy 1400 DVB-T) - - pci:v000014F1d00008800sv00001540sd00002580* -- ID_MODEL_FROM_DATABASE=Provideo PV259 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Provideo PV259) - - pci:v000014F1d00008800sv00001554sd00004811* -- ID_MODEL_FROM_DATABASE=PixelView -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (PixelView) - - pci:v000014F1d00008800sv00001554sd00004813* -- ID_MODEL_FROM_DATABASE=Club 3D ZAP1000 MCE Edition -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Club 3D ZAP1000 MCE Edition) - - pci:v000014F1d00008800sv000017DEsd000008A1* -- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T with cx22702 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T with cx22702) - - pci:v000014F1d00008800sv000017DEsd000008A6* -- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T) - - pci:v000014F1d00008800sv000017DEsd000008B2* -- ID_MODEL_FROM_DATABASE=KWorld DVB-S 100 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld DVB-S 100) - - pci:v000014F1d00008800sv000017DEsd0000A8A6* -- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T) - - pci:v000014F1d00008800sv00001822sd00000025* -- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T Pro -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T Pro) - - pci:v000014F1d00008800sv0000185Bsd0000E000* -- ID_MODEL_FROM_DATABASE=VideoMate X500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (VideoMate X500) - - pci:v000014F1d00008800sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=FusionHDTV 5 Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 5 Gold) - - pci:v000014F1d00008800sv000018ACsd0000D810* -- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-Q -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-Q) - - pci:v000014F1d00008800sv000018ACsd0000D820* -- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-T) - - pci:v000014F1d00008800sv000018ACsd0000DB00* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T1 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T1) - - pci:v000014F1d00008800sv000018ACsd0000DB11* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Plus -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Plus) - - pci:v000014F1d00008800sv000018ACsd0000DB50* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Digital -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Digital) - - pci:v000014F1d00008800sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TV Tuner Card -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GoTView PCI Hybrid TV Tuner Card) - - pci:v000014F1d00008800sv00007063sd00003000* -- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD3000 HDTV) - - pci:v000014F1d00008800sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD-5500) - - pci:v000014F1d00008801* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] - - pci:v000014F1d00008801sv00000070sd00002801* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 28xxx (Roslyn) models) - - pci:v000014F1d00008801sv0000185Bsd0000E000* -- ID_MODEL_FROM_DATABASE=VideoMate X500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (VideoMate X500) - - pci:v000014F1d00008801sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio AVStream Device -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio AVStream Device) - - pci:v000014F1d00008801sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (pcHDTV HD-5500) - - pci:v000014F1d00008802* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] - - pci:v000014F1d00008802sv00000070sd00002801* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Hauppauge WinTV 28xxx (Roslyn) models) - - pci:v000014F1d00008802sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV HVR-4000-HD) - - pci:v000014F1d00008802sv00000070sd00009002* -- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Nova-T DVB-T Model 909) - - pci:v000014F1d00008802sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008802sv00000070sd00009600* -- ID_MODEL_FROM_DATABASE=WinTV 88x MPEG Encoder -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV 88x MPEG Encoder) - - pci:v000014F1d00008802sv00001043sd00004823* -- ID_MODEL_FROM_DATABASE=ASUS PVR-416 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (ASUS PVR-416) - - pci:v000014F1d00008802sv0000107Dsd0000663C* -- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Leadtek PVR 2000) - - pci:v000014F1d00008802sv0000107Dsd0000665F* -- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinFast DTV1000-T) - - pci:v000014F1d00008802sv000014F1sd00000187* -- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Conexant DVB-T reference design) - - pci:v000014F1d00008802sv000017DEsd000008A1* -- ID_MODEL_FROM_DATABASE=XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture) - - pci:v000014F1d00008802sv000017DEsd000008A6* -- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (KWorld/VStream XPert DVB-T) - - pci:v000014F1d00008802sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV5 Gold) - - pci:v000014F1d00008802sv000018ACsd0000D810* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-Q) - - pci:v000014F1d00008802sv000018ACsd0000D820* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-T) - - pci:v000014F1d00008802sv000018ACsd0000DB00* -- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T1) - - pci:v000014F1d00008802sv000018ACsd0000DB10* -- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T Plus -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T Plus) - - pci:v000014F1d00008802sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TS Capture Device -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (GoTView PCI Hybrid TS Capture Device) - - pci:v000014F1d00008802sv00007063sd00003000* -- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD3000 HDTV) - - pci:v000014F1d00008802sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD-5500) - - pci:v000014F1d00008804* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] - - pci:v000014F1d00008804sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV HVR-4000-HD) - - pci:v000014F1d00008804sv00000070sd00009002* -- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (Nova-T DVB-T Model 909) - - pci:v000014F1d00008804sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008804sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (pcHDTV HD-5500) - - pci:v000014F1d00008811* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] - - pci:v000014F1d00008811sv00000070sd00003400* -- ID_MODEL_FROM_DATABASE=WinTV 34604 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 34604) - - pci:v000014F1d00008811sv00000070sd00003401* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 34xxx models) - - pci:v000014F1d00008811sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV HVR-4000-HD) - - pci:v000014F1d00008811sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008811sv00000070sd00009600* -- ID_MODEL_FROM_DATABASE=WinTV 88x Audio -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 88x Audio) - - pci:v000014F1d00008811sv00001462sd00008606* -- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (MSI TV-@nywhere Master) - - pci:v000014F1d00008811sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV5 Gold) - - pci:v000014F1d00008811sv000018ACsd0000D810* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-Q) - - pci:v000014F1d00008811sv000018ACsd0000D820* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-T) - - pci:v000014F1d00008811sv000018ACsd0000DB00* -- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DVICO FusionHDTV DVB-T1) - - pci:v000014F1d00008811sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio Capture Device -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio Capture Device) - - pci:v000014F1d00008852* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder - - pci:v000014F1d00008852sv00000070sd00008010* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV HVR-1400 ExpressCard -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) - - pci:v000014F1d00008852sv0000107Dsd00006F22* -- ID_MODEL_FROM_DATABASE=WinFast PxTV1200 -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) - - pci:v000014F1d00008852sv00001461sd0000C039* -- ID_MODEL_FROM_DATABASE=AVerTV Hybrid Express (A577) -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (AVerTV Hybrid Express (A577)) - - pci:v000014F1d00008852sv0000153Bsd0000117E* -- ID_MODEL_FROM_DATABASE=Cinergy T PCIe Dual -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Cinergy T PCIe Dual) - - pci:v000014F1d00008852sv000018ACsd0000DB78* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Express -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) - - pci:v000014F1d00008880* - ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb - - pci:v000014F1d00008880sv00000070sd0000C108* -- ID_MODEL_FROM_DATABASE=WinTV-HVR-4400-HD model 1278 -+ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (WinTV-HVR-4400-HD model 1278) - - pci:v000014F1d00008880sv00005654sd00002389* -- ID_MODEL_FROM_DATABASE=GoTView X5 DVD Hybrid PCI-E -+ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 DVD Hybrid PCI-E) - - pci:v000014F1d00008880sv00005654sd00002390* -- ID_MODEL_FROM_DATABASE=GoTView X5 3D HYBRID PCI-E -+ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 3D HYBRID PCI-E) - - pci:v000014F2* - ID_VENDOR_FROM_DATABASE=MOBILITY Electronics -@@ -46842,100 +46842,100 @@ pci:v00001522d00000100* - ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge - - pci:v00001522d00000100sv00001522sd00000200* -- ID_MODEL_FROM_DATABASE=RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000300* -- ID_MODEL_FROM_DATABASE=RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000400* -- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000500* -- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000600* -- ID_MODEL_FROM_DATABASE=RockForce+ 2 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 2 Port V.90 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000700* -- ID_MODEL_FROM_DATABASE=RockForce+ 4 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 4 Port V.90 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000800* -- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000C00* -- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) - - pci:v00001522d00000100sv00001522sd00000D00* -- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) - - pci:v00001522d00000100sv00001522sd00001D00* -- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) - - pci:v00001522d00000100sv00001522sd00002000* -- ID_MODEL_FROM_DATABASE=RockForceD1 1 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD1 1 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002100* -- ID_MODEL_FROM_DATABASE=RockForceF1 1 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF1 1 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00002200* -- ID_MODEL_FROM_DATABASE=RockForceD2 2 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD2 2 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002300* -- ID_MODEL_FROM_DATABASE=RockForceF2 2 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF2 2 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00002400* -- ID_MODEL_FROM_DATABASE=RockForceD4 4 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD4 4 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002500* -- ID_MODEL_FROM_DATABASE=RockForceF4 4 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF4 4 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00002600* -- ID_MODEL_FROM_DATABASE=RockForceD8 8 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD8 8 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002700* -- ID_MODEL_FROM_DATABASE=RockForceF8 8 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF8 8 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003000* -- ID_MODEL_FROM_DATABASE=IQ Express D1 - 1 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D1 - 1 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003100* -- ID_MODEL_FROM_DATABASE=IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003200* -- ID_MODEL_FROM_DATABASE=IQ Express D2 - 2 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D2 - 2 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003300* -- ID_MODEL_FROM_DATABASE=IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003400* -- ID_MODEL_FROM_DATABASE=IQ Express D4 - 4 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D4 - 4 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003500* -- ID_MODEL_FROM_DATABASE=IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003C00* -- ID_MODEL_FROM_DATABASE=IQ Express D8 - 8 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D8 - 8 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003D00* -- ID_MODEL_FROM_DATABASE=IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00004000* - ID_MODEL_FROM_DATABASE=PCI Express UART - - pci:v00001522d00004000sv00001522sd00004001* -- ID_MODEL_FROM_DATABASE=IQ Express 1-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 1-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004002* -- ID_MODEL_FROM_DATABASE=IQ Express 2-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 2-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004004* -- ID_MODEL_FROM_DATABASE=IQ Express 4-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 4-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004008* -- ID_MODEL_FROM_DATABASE=IQ Express 8-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 8-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004100* -- ID_MODEL_FROM_DATABASE=IQ Express SideBand -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express SideBand) - - pci:v00001523* - ID_VENDOR_FROM_DATABASE=MUSIC Semiconductors -@@ -46947,7 +46947,7 @@ pci:v00001524d00000510* - ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller - - pci:v00001524d00000510sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller (NX9500) - - pci:v00001524d00000520* - ID_MODEL_FROM_DATABASE=FLASH memory: ENE Technology Inc: -@@ -46986,16 +46986,16 @@ pci:v00001524d00001410* - ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller - - pci:v00001524d00001410sv00001025sd0000003C* -- ID_MODEL_FROM_DATABASE=CL50 motherboard -+ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (CL50 motherboard) - - pci:v00001524d00001410sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (TravelMate 290) - - pci:v00001524d00001411* - ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller - - pci:v00001524d00001411sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller (NX9500) - - pci:v00001524d00001412* - ID_MODEL_FROM_DATABASE=CB-712/4 Cardbus Controller -@@ -47598,7 +47598,7 @@ pci:v000015ADd00000801* - ID_MODEL_FROM_DATABASE=Virtual Machine Interface - - pci:v000015ADd00000801sv000015ADsd00000800* -- ID_MODEL_FROM_DATABASE=Hypervisor ROM Interface -+ ID_MODEL_FROM_DATABASE=Virtual Machine Interface (Hypervisor ROM Interface) - - pci:v000015ADd00001977* - ID_MODEL_FROM_DATABASE=HD Audio Controller -@@ -47748,10 +47748,10 @@ pci:v000015B3d00006746* - ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] - - pci:v000015B3d00006746sv0000103Csd00001781* -- ID_MODEL_FROM_DATABASE=NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter -+ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter) - - pci:v000015B3d00006746sv0000103Csd00003349* -- ID_MODEL_FROM_DATABASE=NC543i 2-port 4xQDR IB/10Gb Adapter -+ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 2-port 4xQDR IB/10Gb Adapter) - - pci:v000015B3d00006750* - ID_MODEL_FROM_DATABASE=MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] -@@ -47763,7 +47763,7 @@ pci:v000015B3d00006764* - ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] - - pci:v000015B3d00006764sv0000103Csd00003313* -- ID_MODEL_FROM_DATABASE=HP NC542m Dual Port Flex-10 10GbE BLc Adapter -+ ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] (HP NC542m Dual Port Flex-10 10GbE BLc Adapter) - - pci:v000015B3d0000676E* - ID_MODEL_FROM_DATABASE=MT26478 [ConnectX EN 40GigE, PCIe 2.0 5GT/s] -@@ -47886,13 +47886,13 @@ pci:v000015BCd00000105* - ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES - - pci:v000015BCd00000105sv0000117Csd00000022* -- ID_MODEL_FROM_DATABASE=Celerity FC-42XS Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42XS Fibre Channel Adapter) - - pci:v000015BCd00000105sv0000117Csd00000025* -- ID_MODEL_FROM_DATABASE=Celerity FC-44ES Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-44ES Fibre Channel Adapter) - - pci:v000015BCd00000105sv0000117Csd00000026* -- ID_MODEL_FROM_DATABASE=Celerity FC-42ES Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42ES Fibre Channel Adapter) - - pci:v000015BCd00001100* - ID_MODEL_FROM_DATABASE=E8001-66442 PCI Express CIC -@@ -48306,34 +48306,34 @@ pci:v00001657d00000013* - ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA - - pci:v00001657d00000013sv0000103Csd00001742* -- ID_MODEL_FROM_DATABASE=HP 82B 8Gbps dual port FC HBA -+ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 82B 8Gbps dual port FC HBA) - - pci:v00001657d00000013sv0000103Csd00001744* -- ID_MODEL_FROM_DATABASE=HP 42B 4Gbps dual port FC HBA -+ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 42B 4Gbps dual port FC HBA) - - pci:v00001657d00000013sv00001657sd00000014* -- ID_MODEL_FROM_DATABASE=425/825 4Gbps/8Gbps PCIe dual port FC HBA -+ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (425/825 4Gbps/8Gbps PCIe dual port FC HBA) - - pci:v00001657d00000014* - ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - - pci:v00001657d00000014sv00001657sd00000014* -- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - FCOE -+ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- FCOE) - - pci:v00001657d00000014sv00001657sd00000015* -- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - LL -+ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- LL) - - pci:v00001657d00000017* - ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA - - pci:v00001657d00000017sv0000103Csd00001741* -- ID_MODEL_FROM_DATABASE=HP 41B 4Gbps single port FC HBA -+ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 41B 4Gbps single port FC HBA) - - pci:v00001657d00000017sv0000103Csd00001743* -- ID_MODEL_FROM_DATABASE=HP 81B 8Gbps single port FC HBA -+ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 81B 8Gbps single port FC HBA) - - pci:v00001657d00000017sv00001657sd00000014* -- ID_MODEL_FROM_DATABASE=415/815 4Gbps/8Gbps single port PCIe FC HBA -+ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (415/815 4Gbps/8Gbps single port PCIe FC HBA) - - pci:v00001657d00000021* - ID_MODEL_FROM_DATABASE=804 8Gbps FC HBA for HP Bladesystem c-class -@@ -48342,13 +48342,13 @@ pci:v00001657d00000022* - ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter - - pci:v00001657d00000022sv00001657sd00000022* -- ID_MODEL_FROM_DATABASE=10Gbps CNA - FCOE -+ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - FCOE) - - pci:v00001657d00000022sv00001657sd00000023* -- ID_MODEL_FROM_DATABASE=10Gbps CNA - LL -+ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - LL) - - pci:v00001657d00000022sv00001657sd00000024* -- ID_MODEL_FROM_DATABASE=16Gbps FC HBA -+ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (16Gbps FC HBA) - - pci:v00001657d00000023* - ID_MODEL_FROM_DATABASE=1867/1869 16Gbps FC HBA -@@ -48435,10 +48435,10 @@ pci:v0000167Bd00002102* - ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 - - pci:v0000167Bd00002102sv0000187Esd00003406* -- ID_MODEL_FROM_DATABASE=ZyAIR B-122 CardBus 11Mbs Wireless LAN Card -+ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-122 CardBus 11Mbs Wireless LAN Card) - - pci:v0000167Bd00002102sv0000187Esd00003407* -- ID_MODEL_FROM_DATABASE=ZyAIR B-320 802.11b Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-320 802.11b Wireless PCI Adapter) - - pci:v0000167Bd00002116* - ID_MODEL_FROM_DATABASE=ZD1212B Wireless Adapter -@@ -48471,16 +48471,16 @@ pci:v0000168Cd00000007* - ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] - - pci:v0000168Cd00000007sv00001737sd00000007* -- ID_MODEL_FROM_DATABASE=WPC54A Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (WPC54A Wireless PC Card) - - pci:v0000168Cd00000007sv00001B47sd00000100* -- ID_MODEL_FROM_DATABASE=Harmony 8450CN Wireless CardBus Module -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Harmony 8450CN Wireless CardBus Module) - - pci:v0000168Cd00000007sv00001B47sd00000110* -- ID_MODEL_FROM_DATABASE=Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter) - - pci:v0000168Cd00000007sv00008086sd00002501* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 5000 LAN PCI Adapter Module -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (PRO/Wireless 5000 LAN PCI Adapter Module) - - pci:v0000168Cd00000011* - ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001A 802.11a] -@@ -48489,562 +48489,562 @@ pci:v0000168Cd00000012* - ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] - - pci:v0000168Cd00000012sv00001186sd00003A03* -- ID_MODEL_FROM_DATABASE=AirPro DWL-A650 Wireless Cardbus Adapter (rev.B) -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-A650 Wireless Cardbus Adapter (rev.B)) - - pci:v0000168Cd00000012sv00001186sd00003A04* -- ID_MODEL_FROM_DATABASE=AirPro DWL-AB650 Multimode Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB650 Multimode Wireless Cardbus Adapter) - - pci:v0000168Cd00000012sv00001186sd00003A05* -- ID_MODEL_FROM_DATABASE=AirPro DWL-AB520 Multimode Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB520 Multimode Wireless PCI Adapter) - - pci:v0000168Cd00000012sv0000126Csd00008031* -- ID_MODEL_FROM_DATABASE=2201 Mobile Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (2201 Mobile Adapter) - - pci:v0000168Cd00000012sv00001385sd00004400* -- ID_MODEL_FROM_DATABASE=WAB501 802.11ab Wireless CardBus Card -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (WAB501 802.11ab Wireless CardBus Card) - - pci:v0000168Cd00000012sv00001B47sd0000AA00* -- ID_MODEL_FROM_DATABASE=8460 802.11ab Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (8460 802.11ab Wireless CardBus Adapter) - - pci:v0000168Cd00000013* - ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter - - pci:v0000168Cd00000013sv00000308sd00003402* -- ID_MODEL_FROM_DATABASE=AG-100 802.11ag Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AG-100 802.11ag Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00000308sd00003405* -- ID_MODEL_FROM_DATABASE=G-102 v2 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-102 v2 802.11g Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00000308sd00003408* -- ID_MODEL_FROM_DATABASE=G-170S 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-170S 802.11g Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv00000E11sd000000E5* -- ID_MODEL_FROM_DATABASE=NC6000/NC8000 laptop -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (NC6000/NC8000 laptop) - - pci:v0000168Cd00000013sv000010B7sd00006002* -- ID_MODEL_FROM_DATABASE=3CRWE154A72 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRWE154A72 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv00001113sd0000D301* -- ID_MODEL_FROM_DATABASE=Philips CPWNA100 Wireless CardBus adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Philips CPWNA100 Wireless CardBus adapter) - - pci:v0000168Cd00000013sv00001113sd0000EE23* -- ID_MODEL_FROM_DATABASE=SMCWPCIT-G 108Mbps Wireless PCI adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (SMCWPCIT-G 108Mbps Wireless PCI adapter) - - pci:v0000168Cd00000013sv00001154sd0000033B* -- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AMG54 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AMG54) - - pci:v0000168Cd00000013sv00001154sd0000034E* -- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003202* -- ID_MODEL_FROM_DATABASE=DWL-G650 (Rev B3,B5) Wireless cardbus adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650 (Rev B3,B5) Wireless cardbus adapter) - - pci:v0000168Cd00000013sv00001186sd00003203* -- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. A) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) - - pci:v0000168Cd00000013sv00001186sd00003A07* -- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG650 Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A08* -- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG520 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG520 Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A12* -- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C)) - - pci:v0000168Cd00000013sv00001186sd00003A13* -- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. B) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. B)) - - pci:v0000168Cd00000013sv00001186sd00003A14* -- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A)) - - pci:v0000168Cd00000013sv00001186sd00003A17* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G680 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G680 Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A18* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G550 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G550 Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A1A* -- ID_MODEL_FROM_DATABASE=WNA-2330 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WNA-2330 802.11bg Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A63* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A93* -- ID_MODEL_FROM_DATABASE=Conceptronic C54I Wireless 801.11g PCI card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54I Wireless 801.11g PCI card) - - pci:v0000168Cd00000013sv00001186sd00003A94* -- ID_MODEL_FROM_DATABASE=Conceptronic C54C 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54C 802.11g Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003AB0* -- ID_MODEL_FROM_DATABASE=Allnet ALL0281 Wireless PCI Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Allnet ALL0281 Wireless PCI Card) - - pci:v0000168Cd00000013sv00001385sd00004600* -- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) - - pci:v0000168Cd00000013sv00001385sd00004610* -- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) - - pci:v0000168Cd00000013sv00001385sd00004900* -- ID_MODEL_FROM_DATABASE=WG311v1 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311v1 802.11g Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001385sd00004A00* -- ID_MODEL_FROM_DATABASE=WAG311 802.11a/g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG311 802.11a/g Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001385sd00004B00* -- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.A/B) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.A/B)) - - pci:v0000168Cd00000013sv00001385sd00004D00* -- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A2) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A2)) - - pci:v0000168Cd00000013sv00001385sd00004F00* -- ID_MODEL_FROM_DATABASE=WG511U Double 108 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511U Double 108 Mbps Wireless PC Card) - - pci:v0000168Cd00000013sv00001385sd00005A00* -- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A3) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A3)) - - pci:v0000168Cd00000013sv00001385sd00005B00* -- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.C) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.C)) - - pci:v0000168Cd00000013sv00001385sd00005D00* -- ID_MODEL_FROM_DATABASE=WPN511 RangeMax Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPN511 RangeMax Wireless PC Card) - - pci:v0000168Cd00000013sv00001458sd0000E911* -- ID_MODEL_FROM_DATABASE=GN-WIAG02 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (GN-WIAG02) - - pci:v0000168Cd00000013sv00001468sd00000403* -- ID_MODEL_FROM_DATABASE=U10H014 802.11g Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (U10H014 802.11g Cardbus Adapter) - - pci:v0000168Cd00000013sv00001468sd00000408* -- ID_MODEL_FROM_DATABASE=ThinkPad 11b/g Wireless LAN Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (ThinkPad 11b/g Wireless LAN Mini PCI Adapter) - - pci:v0000168Cd00000013sv000014B7sd00000A10* -- ID_MODEL_FROM_DATABASE=8480-WD 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8480-WD 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv000014B7sd00000A60* -- ID_MODEL_FROM_DATABASE=8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter) - - pci:v0000168Cd00000013sv000014B7sd0000AA30* -- ID_MODEL_FROM_DATABASE=8800-FC 802.11bg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8800-FC 802.11bg Cardbus Adapter) - - pci:v0000168Cd00000013sv000014B7sd0000AA40* -- ID_MODEL_FROM_DATABASE=8470-WD 802.11bg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8470-WD 802.11bg Cardbus Adapter) - - pci:v0000168Cd00000013sv000014B9sd0000CB21* -- ID_MODEL_FROM_DATABASE=CB21 802.11a/b/g Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CB21 802.11a/b/g Cardbus Adapter) - - pci:v0000168Cd00000013sv00001668sd00001026* -- ID_MODEL_FROM_DATABASE=IBM HighRate 11 a/b/g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (IBM HighRate 11 a/b/g Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00000013* -- ID_MODEL_FROM_DATABASE=AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001025* -- ID_MODEL_FROM_DATABASE=DWL-G650B2 Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650B2 Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001027* -- ID_MODEL_FROM_DATABASE=Engenius NL-3054CB ARIES b/g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius NL-3054CB ARIES b/g CardBus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001042* -- ID_MODEL_FROM_DATABASE=Ubiquiti Networks SuperRange a/b/g Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Ubiquiti Networks SuperRange a/b/g Cardbus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001051* -- ID_MODEL_FROM_DATABASE=EZ Connect g 802.11g 108Mbps Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (EZ Connect g 802.11g 108Mbps Wireless PCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002026* -- ID_MODEL_FROM_DATABASE=Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002027* -- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) - - pci:v0000168Cd00000013sv0000168Csd00002041* -- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002042* -- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002051* -- ID_MODEL_FROM_DATABASE=TRENDnet TEW-443PI Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (TRENDnet TEW-443PI Wireless PCI Adapter) - - pci:v0000168Cd00000013sv000016A5sd0000160A* -- ID_MODEL_FROM_DATABASE=BWP712 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (BWP712 802.11bg Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv000016ABsd00007302* -- ID_MODEL_FROM_DATABASE=Trust Speedshare Turbo Pro Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Trust Speedshare Turbo Pro Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001737sd00000017* -- ID_MODEL_FROM_DATABASE=WPC55AG -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG) - - pci:v0000168Cd00000013sv00001737sd00000026* -- ID_MODEL_FROM_DATABASE=WMP55AG v1.1 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.1) - - pci:v0000168Cd00000013sv00001737sd00000035* -- ID_MODEL_FROM_DATABASE=WPC55AG v1.2 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG v1.2 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv00001737sd00000036* -- ID_MODEL_FROM_DATABASE=WMP55AG v1.2 802.11abg PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.2 802.11abg PCI Adapter) - - pci:v0000168Cd00000013sv00001799sd00003000* -- ID_MODEL_FROM_DATABASE=F6D3000 Dual-Band Wireless A+G Desktop Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3000 Dual-Band Wireless A+G Desktop Card) - - pci:v0000168Cd00000013sv00001799sd00003010* -- ID_MODEL_FROM_DATABASE=F6D3010 Dual-Band Wireless A+G Notebook Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3010 Dual-Band Wireless A+G Notebook Card) - - pci:v0000168Cd00000013sv000017CFsd00000042* -- ID_MODEL_FROM_DATABASE=Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter) - - pci:v0000168Cd00000013sv0000185Fsd00001012* -- ID_MODEL_FROM_DATABASE=CM9 Wireless a/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CM9 Wireless a/b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000185Fsd00002012* -- ID_MODEL_FROM_DATABASE=Wistron NeWeb WLAN a+b+g model CB9 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Wistron NeWeb WLAN a+b+g model CB9) - - pci:v0000168Cd00000013sv0000A727sd00006801* -- ID_MODEL_FROM_DATABASE=3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card) - - pci:v0000168Cd0000001A* - ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] - - pci:v0000168Cd0000001Asv00001052sd0000168C* -- ID_MODEL_FROM_DATABASE=Sweex Wireless Lan PC Card 54Mbps -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Sweex Wireless Lan PC Card 54Mbps) - - pci:v0000168Cd0000001Asv00001113sd0000EE20* -- ID_MODEL_FROM_DATABASE=SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU)) - - pci:v0000168Cd0000001Asv00001113sd0000EE24* -- ID_MODEL_FROM_DATABASE=SMC Wireless PCI Card WPCI-G -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless PCI Card WPCI-G) - - pci:v0000168Cd0000001Asv00001186sd00003A15* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1)) - - pci:v0000168Cd0000001Asv00001186sd00003A16* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless PCI Adapter(rev.B) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G510 Wireless PCI Adapter(rev.B)) - - pci:v0000168Cd0000001Asv00001186sd00003A1C* -- ID_MODEL_FROM_DATABASE=WNA-1330 Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WNA-1330 Notebook Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003A1D* -- ID_MODEL_FROM_DATABASE=WDA-1320 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WDA-1320 Desktop Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003A23* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G520+A Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G520+A Wireless PCI Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003A24* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G650+A Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G650+A Wireless Cardbus Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003B08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1)) - - pci:v0000168Cd0000001Asv0000168Csd0000001A* -- ID_MODEL_FROM_DATABASE=Belkin FD7000 -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Belkin FD7000) - - pci:v0000168Cd0000001Asv0000168Csd00001052* -- ID_MODEL_FROM_DATABASE=TP-Link TL-WN510G Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (TP-Link TL-WN510G Wireless CardBus Adapter) - - pci:v0000168Cd0000001Asv0000168Csd00002052* -- ID_MODEL_FROM_DATABASE=Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G] -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G]) - - pci:v0000168Cd0000001Asv000016ECsd00000122* -- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter Model 5418 -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Wireless PCI Adapter Model 5418) - - pci:v0000168Cd0000001Asv00001737sd00000053* -- ID_MODEL_FROM_DATABASE=WPC54G v7 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WPC54G v7 802.11g Wireless-G Notebook Adapter) - - pci:v0000168Cd0000001Asv00001799sd0000700C* -- ID_MODEL_FROM_DATABASE=F5D7000 v5000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7000 v5000 Wireless G Desktop Card) - - pci:v0000168Cd0000001Asv00001799sd0000701D* -- ID_MODEL_FROM_DATABASE=F5D7010 v5000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7010 v5000 Wireless G Notebook Card) - - pci:v0000168Cd0000001Asv000017F9sd00000008* -- ID_MODEL_FROM_DATABASE=DX-WGNBC 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGNBC 802.11bg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Asv000017F9sd00000018* -- ID_MODEL_FROM_DATABASE=DX-WGDTC 802.11bg Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGDTC 802.11bg Wireless PCI Adapter) - - pci:v0000168Cd0000001B* - ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] - - pci:v0000168Cd0000001Bsv00000777sd00001107* -- ID_MODEL_FROM_DATABASE=UB5 802.11a Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (UB5 802.11a Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00000777sd00003002* -- ID_MODEL_FROM_DATABASE=XR2 802.11g Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR2 802.11g Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00000777sd00003005* -- ID_MODEL_FROM_DATABASE=XR5 802.11a Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR5 802.11a Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00000777sd00003009* -- ID_MODEL_FROM_DATABASE=XR9 900MHz Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR9 900MHz Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00001154sd0000034E* -- ID_MODEL_FROM_DATABASE=WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Bsv00001186sd00003A19* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter) - - pci:v0000168Cd0000001Bsv00001186sd00003A22* -- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B) -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B)) - - pci:v0000168Cd0000001Bsv000011ADsd00005001* -- ID_MODEL_FROM_DATABASE=WN5301A 802.11bg Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WN5301A 802.11bg Wireless PCI Adapter) - - pci:v0000168Cd0000001Bsv00001458sd0000E901* -- ID_MODEL_FROM_DATABASE=GN-WI01HT Wireless a/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (GN-WI01HT Wireless a/b/g MiniPCI Adapter) - - pci:v0000168Cd0000001Bsv0000168Csd0000001B* -- ID_MODEL_FROM_DATABASE=Wireless LAN PCI LiteOn -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless LAN PCI LiteOn) - - pci:v0000168Cd0000001Bsv0000168Csd00001062* -- ID_MODEL_FROM_DATABASE=IPN-W100CB 802.11abg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (IPN-W100CB 802.11abg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Bsv0000168Csd00002062* -- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG) -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG)) - - pci:v0000168Cd0000001Bsv0000168Csd00002063* -- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG) - - pci:v0000168Cd0000001Bsv000017F9sd0000000B* -- ID_MODEL_FROM_DATABASE=WL-711A 802.11abg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WL-711A 802.11abg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Bsv000017F9sd0000000C* -- ID_MODEL_FROM_DATABASE=WPIA-112AG 802.11abg Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WPIA-112AG 802.11abg Wireless PCI Adapter) - - pci:v0000168Cd0000001Bsv000017F9sd0000000D* -- ID_MODEL_FROM_DATABASE=PC-686X 802.11abg Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (PC-686X 802.11abg Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv0000185Fsd00001600* -- ID_MODEL_FROM_DATABASE=DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW) -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)) - - pci:v0000168Cd0000001Bsv00001948sd00003ABA* -- ID_MODEL_FROM_DATABASE=RBTBJ-AW 802.11abg Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (RBTBJ-AW 802.11abg Wireless Cardbus Adapter) - - pci:v0000168Cd0000001Bsv0000A727sd00006804* -- ID_MODEL_FROM_DATABASE=Wireless 11a/b/g PC Card with XJACK(r) Antenna -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless 11a/b/g PC Card with XJACK(r) Antenna) - - pci:v0000168Cd0000001C* - ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) - - pci:v0000168Cd0000001Csv00000777sd00003006* -- ID_MODEL_FROM_DATABASE=SRX 802.11abg Wireless ExpressCard Adapter -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (SRX 802.11abg Wireless ExpressCard Adapter) - - pci:v0000168Cd0000001Csv0000103Csd0000137A* -- ID_MODEL_FROM_DATABASE=AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC) - - pci:v0000168Cd0000001Csv0000106Bsd00000086* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPort Extreme) - - pci:v0000168Cd0000001Csv0000144Fsd00007106* -- ID_MODEL_FROM_DATABASE=WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card) - - pci:v0000168Cd0000001Csv0000144Fsd00007128* -- ID_MODEL_FROM_DATABASE=WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card) - - pci:v0000168Cd0000001Csv00001468sd00000428* -- ID_MODEL_FROM_DATABASE=AR5BXB63 802.11bg NIC -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 802.11bg NIC) - - pci:v0000168Cd0000001Csv00001468sd0000042A* -- ID_MODEL_FROM_DATABASE=AR5007EG 802.11bg NIC -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5007EG 802.11bg NIC) - - pci:v0000168Cd0000001Csv0000147Bsd00001033* -- ID_MODEL_FROM_DATABASE=AirPace Wi-Fi -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPace Wi-Fi) - - pci:v0000168Cd0000001Csv0000168Csd0000001C* -- ID_MODEL_FROM_DATABASE=AR242x 802.11abg NIC (PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg NIC (PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003061* -- ID_MODEL_FROM_DATABASE=AR5006EGS 802.11bg NIC (2.4GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EGS 802.11bg NIC (2.4GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003062* -- ID_MODEL_FROM_DATABASE=AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003063* -- ID_MODEL_FROM_DATABASE=AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003065* -- ID_MODEL_FROM_DATABASE=AR5006EG 802.11bg NIC (2.4GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EG 802.11bg NIC (2.4GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003067* -- ID_MODEL_FROM_DATABASE=AR242x 802.11abg Wireless PCI Express Adapter (rev 01) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg Wireless PCI Express Adapter (rev 01)) - - pci:v0000168Cd0000001Csv00001A3Bsd00001026* -- ID_MODEL_FROM_DATABASE=AW-GE780 802.11bg Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AW-GE780 802.11bg Wireless Mini PCIe Card) - - pci:v0000168Cd0000001D* - ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] - - pci:v0000168Cd0000001Dsv00001799sd0000720B* -- ID_MODEL_FROM_DATABASE=F5D7000 v8000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7000 v8000 Wireless G Desktop Card) - - pci:v0000168Cd0000001Dsv00001799sd0000721B* -- ID_MODEL_FROM_DATABASE=F5D7010 v8000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7010 v8000 Wireless G Notebook Card) - - pci:v0000168Cd00000020* - ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC - - pci:v0000168Cd00000020sv00000308sd00003407* -- ID_MODEL_FROM_DATABASE=M-102 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-102 802.11g Wireless Cardbus Adapter) - - pci:v0000168Cd00000020sv00001186sd00003A67* -- ID_MODEL_FROM_DATABASE=DWL-G650M Super G MIMO Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G650M Super G MIMO Wireless Notebook Adapter) - - pci:v0000168Cd00000020sv00001186sd00003A68* -- ID_MODEL_FROM_DATABASE=DWL-G520M Wireless 108G MIMO Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G520M Wireless 108G MIMO Desktop Adapter) - - pci:v0000168Cd00000020sv0000187Esd0000340E* -- ID_MODEL_FROM_DATABASE=M-302 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-302 802.11g Wireless PCI Adapter) - - pci:v0000168Cd00000020sv00001976sd00002003* -- ID_MODEL_FROM_DATABASE=TEW-601PC 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (TEW-601PC 802.11g Wireless CardBus Adapter) - - pci:v0000168Cd00000023* - ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] - - pci:v0000168Cd00000023sv00000308sd0000340B* -- ID_MODEL_FROM_DATABASE=NWD-170N 802.11bgn Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-170N 802.11bgn Wireless CardBus Adapter) - - pci:v0000168Cd00000023sv00001154sd00000365* -- ID_MODEL_FROM_DATABASE=Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter) - - pci:v0000168Cd00000023sv00001154sd00000367* -- ID_MODEL_FROM_DATABASE=WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter) - - pci:v0000168Cd00000023sv00001186sd00003A6A* -- ID_MODEL_FROM_DATABASE=DWA-642 802.11n RangeBooster N CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-642 802.11n RangeBooster N CardBus Adapter) - - pci:v0000168Cd00000023sv00001186sd00003A6B* -- ID_MODEL_FROM_DATABASE=DWA-547 802.11n RangeBooster N 650 DeskTop Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-547 802.11n RangeBooster N 650 DeskTop Adapter) - - pci:v0000168Cd00000023sv00001186sd00003A6D* -- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A1) -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-552 802.11n Xtreme N Desktop Adapter (rev A1)) - - pci:v0000168Cd00000023sv00001186sd00003A76* -- ID_MODEL_FROM_DATABASE=DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1) -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1)) - - pci:v0000168Cd00000023sv00001737sd00000059* -- ID_MODEL_FROM_DATABASE=WPC300N v2 Wireless-N Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC300N v2 Wireless-N Notebook Adapter) - - pci:v0000168Cd00000023sv00001737sd00000069* -- ID_MODEL_FROM_DATABASE=WPC100 v1 802.11n RangePlus Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC100 v1 802.11n RangePlus Wireless Notebook Adapter) - - pci:v0000168Cd00000023sv00001737sd00000072* -- ID_MODEL_FROM_DATABASE=WMP110 v1 802.11n RangePlus Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WMP110 v1 802.11n RangePlus Wireless PCI Adapter) - - pci:v0000168Cd00000023sv00001799sd00008011* -- ID_MODEL_FROM_DATABASE=F5D8011 v1 802.11n N1 Wireless Notebook Card -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (F5D8011 v1 802.11n N1 Wireless Notebook Card) - - pci:v0000168Cd00000023sv0000187Esd00003411* -- ID_MODEL_FROM_DATABASE=NWD-370N 802.11n Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-370N 802.11n Wireless PCI Adapter) - - pci:v0000168Cd00000023sv00001976sd00002008* -- ID_MODEL_FROM_DATABASE=TEW-621PC 802.11bgn Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (TEW-621PC 802.11bgn Wireless CardBus Adapter) - - pci:v0000168Cd00000024* - ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) - - pci:v0000168Cd00000024sv0000106Bsd00000087* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (AirPort Extreme) - - pci:v0000168Cd00000024sv00001186sd00003A70* -- ID_MODEL_FROM_DATABASE=DWA-556 Xtreme N PCI Express Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (DWA-556 Xtreme N PCI Express Desktop Adapter) - - pci:v0000168Cd00000027* - ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] - - pci:v0000168Cd00000027sv00000777sd00004082* -- ID_MODEL_FROM_DATABASE=SR71-A 802.11abgn Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] (SR71-A 802.11abgn Wireless Mini PCI Adapter) - - pci:v0000168Cd00000029* - ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter - - pci:v0000168Cd00000029sv00000777sd00004005* -- ID_MODEL_FROM_DATABASE=SR71-15 802.11an Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (SR71-15 802.11an Mini PCI Adapter) - - pci:v0000168Cd00000029sv00001186sd00003A7A* -- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A2) -+ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A2)) - - pci:v0000168Cd00000029sv00001186sd00003A7D* -- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A3) -+ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A3)) - - pci:v0000168Cd0000002A* - ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) - - pci:v0000168Cd0000002Asv00000777sd00004F05* -- ID_MODEL_FROM_DATABASE=SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280]) - - pci:v0000168Cd0000002Asv0000103Csd00003041* -- ID_MODEL_FROM_DATABASE=AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) - - pci:v0000168Cd0000002Asv0000105Bsd0000E006* -- ID_MODEL_FROM_DATABASE=T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv0000105Bsd0000E01F* -- ID_MODEL_FROM_DATABASE=T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) - - pci:v0000168Cd0000002Asv0000106Bsd0000008F* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AirPort Extreme) - - pci:v0000168Cd0000002Asv000011ADsd00006600* -- ID_MODEL_FROM_DATABASE=WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv0000144Fsd00007141* -- ID_MODEL_FROM_DATABASE=WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv0000168Csd00000203* -- ID_MODEL_FROM_DATABASE=DW1525 802.11abgn WLAN PCIe Card [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (DW1525 802.11abgn WLAN PCIe Card [AR9280]) - - pci:v0000168Cd0000002Asv00001A32sd00000303* -- ID_MODEL_FROM_DATABASE=EM303 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM303 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv00001A32sd00000306* -- ID_MODEL_FROM_DATABASE=EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) - - pci:v0000168Cd0000002Asv00001A3Bsd00001067* -- ID_MODEL_FROM_DATABASE=AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv00001A3Bsd00001081* -- ID_MODEL_FROM_DATABASE=AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) - - pci:v0000168Cd0000002B* - ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) - - pci:v0000168Cd0000002Bsv00001028sd00000204* -- ID_MODEL_FROM_DATABASE=Wireless 1502 802.11bgn Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1502 802.11bgn Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD] -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD]) - - pci:v0000168Cd0000002Bsv0000103Csd0000303F* -- ID_MODEL_FROM_DATABASE=U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000103Csd00003040* -- ID_MODEL_FROM_DATABASE=U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000105Bsd0000E017* -- ID_MODEL_FROM_DATABASE=T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000105Bsd0000E023* -- ID_MODEL_FROM_DATABASE=T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001113sd0000E811* -- ID_MODEL_FROM_DATABASE=WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000185Fsd000030AF* -- ID_MODEL_FROM_DATABASE=DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001931sd00000023* -- ID_MODEL_FROM_DATABASE=Option GTM67x PCIe WiFi Adapter -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Option GTM67x PCIe WiFi Adapter) - - pci:v0000168Cd0000002Bsv00001A3Bsd00001089* -- ID_MODEL_FROM_DATABASE=AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001A3Bsd00002C37* -- ID_MODEL_FROM_DATABASE=AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) - - pci:v0000168Cd0000002Bsv00001B9Asd00000401* -- ID_MODEL_FROM_DATABASE=XW204E 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (XW204E 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001B9Asd00000C03* -- ID_MODEL_FROM_DATABASE=WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) - - pci:v0000168Cd0000002C* - ID_MODEL_FROM_DATABASE=AR2427 802.11bg Wireless Network Adapter (PCI-Express) -@@ -49059,25 +49059,25 @@ pci:v0000168Cd00000030* - ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter - - pci:v0000168Cd00000030sv0000103Csd00001627* -- ID_MODEL_FROM_DATABASE=AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter) - - pci:v0000168Cd00000030sv0000106Bsd0000009A* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AirPort Extreme) - - pci:v0000168Cd00000030sv00001186sd00003A7E* -- ID_MODEL_FROM_DATABASE=DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter) - - pci:v0000168Cd00000030sv00001A56sd00002000* -- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382] -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382]) - - pci:v0000168Cd00000030sv00001A56sd00002001* -- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380] -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380]) - - pci:v0000168Cd00000032* - ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter - - pci:v0000168Cd00000032sv0000103Csd00001838* -- ID_MODEL_FROM_DATABASE=AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter -+ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter) - - pci:v0000168Cd00000033* - ID_MODEL_FROM_DATABASE=AR9580 Wireless Network Adapter -@@ -49086,7 +49086,7 @@ pci:v0000168Cd00000034* - ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter - - pci:v0000168Cd00000034sv00001A56sd00002003* -- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1202 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter (Killer Wireless-N 1202 Half-size Mini PCIe Card) - - pci:v0000168Cd00000036* - ID_MODEL_FROM_DATABASE=QCA9565 / AR9565 Wireless Network Adapter -@@ -49095,7 +49095,7 @@ pci:v0000168Cd00000037* - ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter - - pci:v0000168Cd00000037sv00001A3Bsd00002100* -- ID_MODEL_FROM_DATABASE=AW-NB100H 802.11n Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AW-NB100H 802.11n Wireless Mini PCIe Card) - - pci:v0000168Cd0000003C* - ID_MODEL_FROM_DATABASE=QCA988x 802.11ac Wireless Network Adapter -@@ -49107,7 +49107,7 @@ pci:v0000168Cd00001014* - ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC - - pci:v0000168Cd00001014sv00001014sd0000058A* -- ID_MODEL_FROM_DATABASE=ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6) -+ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)) - - pci:v0000168Cd00009013* - ID_MODEL_FROM_DATABASE=AR5002X Wireless Network Adapter -@@ -49125,7 +49125,7 @@ pci:v0000168Cd0000FF1D* - ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter - - pci:v0000168Cd0000FF1Dsv0000168Csd0000EE1C* -- ID_MODEL_FROM_DATABASE=AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3] -+ ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter (AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3]) - - pci:v00001695* - ID_VENDOR_FROM_DATABASE=EPoX Computer Co., Ltd. -@@ -49524,16 +49524,16 @@ pci:v00001737d00001032* - ID_MODEL_FROM_DATABASE=Gigabit Network Adapter - - pci:v00001737d00001032sv00001737sd00000015* -- ID_MODEL_FROM_DATABASE=EG1032 v2 Instant Gigabit Network Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v2 Instant Gigabit Network Adapter) - - pci:v00001737d00001032sv00001737sd00000024* -- ID_MODEL_FROM_DATABASE=EG1032 v3 Instant Gigabit Network Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v3 Instant Gigabit Network Adapter) - - pci:v00001737d00001064* - ID_MODEL_FROM_DATABASE=Gigabit Network Adapter - - pci:v00001737d00001064sv00001737sd00000016* -- ID_MODEL_FROM_DATABASE=EG1064 v2 Instant Gigabit Network Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1064 v2 Instant Gigabit Network Adapter) - - pci:v00001737d0000AB08* - ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet -@@ -49554,7 +49554,7 @@ pci:v0000173Bd000003EA* - ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet - - pci:v0000173Bd000003EAsv0000173Bsd00000001* -- ID_MODEL_FROM_DATABASE=AC1002 -+ ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet (AC1002) - - pci:v0000173Bd000003EB* - ID_MODEL_FROM_DATABASE=AC1003 Gigabit Ethernet -@@ -49851,19 +49851,19 @@ pci:v000017CBd00000001* - ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card - - pci:v000017CBd00000001sv00001385sd00005C00* -- ID_MODEL_FROM_DATABASE=WGM511 Pre-N 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WGM511 Pre-N 802.11g Wireless CardBus Adapter) - - pci:v000017CBd00000001sv00001737sd00000045* -- ID_MODEL_FROM_DATABASE=WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX -+ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX) - - pci:v000017CBd00000002* - ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card - - pci:v000017CBd00000002sv00001385sd00006D00* -- ID_MODEL_FROM_DATABASE=WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter) - - pci:v000017CBd00000002sv00001737sd00000054* -- ID_MODEL_FROM_DATABASE=WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400 -+ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400) - - pci:v000017CC* - ID_VENDOR_FROM_DATABASE=NetChip Technology, Inc -@@ -49914,7 +49914,7 @@ pci:v000017D3d00001280* - ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller - - pci:v000017D3d00001280sv000017D3sd00001221* -- ID_MODEL_FROM_DATABASE=ARC-1221 8-Port PCI-Express to SATA RAID Controller -+ ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller (ARC-1221 8-Port PCI-Express to SATA RAID Controller) - - pci:v000017D3d00001300* - ID_MODEL_FROM_DATABASE=ARC-1300ix-16 16-Port PCI-Express to SAS Non-RAID Host Adapter -@@ -49923,7 +49923,7 @@ pci:v000017D3d00001680* - ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller - - pci:v000017D3d00001680sv000017D3sd00001212* -- ID_MODEL_FROM_DATABASE=ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller -+ ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller (ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller) - - pci:v000017D3d00001880* - ID_MODEL_FROM_DATABASE=ARC-1880 8/12 port PCIe/PCI-X to SAS/SATA II RAID Controller -@@ -49941,82 +49941,82 @@ pci:v000017D5d00005831* - ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X - - pci:v000017D5d00005831sv0000103Csd000012D5* -- ID_MODEL_FROM_DATABASE=PCI-X 133MHz 10GbE SR Fiber -+ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (PCI-X 133MHz 10GbE SR Fiber) - - pci:v000017D5d00005831sv000010A9sd00008020* -- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) -+ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) - - pci:v000017D5d00005831sv000010A9sd00008024* -- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) -+ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) - - pci:v000017D5d00005832* - ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 - - pci:v000017D5d00005832sv0000103Csd00001337* -- ID_MODEL_FROM_DATABASE=PCI-X 266MHz 10GigE SR [AD385A] -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (PCI-X 266MHz 10GigE SR [AD385A]) - - pci:v000017D5d00005832sv000010A9sd00008021* -- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet II (PCI-X, Fiber) -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Single Port 10-Gigabit Ethernet II (PCI-X, Fiber)) - - pci:v000017D5d00005832sv000017D5sd00006020* -- ID_MODEL_FROM_DATABASE=Xframe II SR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR) - - pci:v000017D5d00005832sv000017D5sd00006021* -- ID_MODEL_FROM_DATABASE=Xframe II SR, Low Profile -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR, Low Profile) - - pci:v000017D5d00005832sv000017D5sd00006022* -- ID_MODEL_FROM_DATABASE=Xframe E SR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E SR) - - pci:v000017D5d00005832sv000017D5sd00006420* -- ID_MODEL_FROM_DATABASE=Xframe II LR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR) - - pci:v000017D5d00005832sv000017D5sd00006421* -- ID_MODEL_FROM_DATABASE=Xframe II LR, Low Profile -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR, Low Profile) - - pci:v000017D5d00005832sv000017D5sd00006422* -- ID_MODEL_FROM_DATABASE=Xframe E LR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E LR) - - pci:v000017D5d00005832sv000017D5sd00006C20* -- ID_MODEL_FROM_DATABASE=Xframe II CX4 -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4) - - pci:v000017D5d00005832sv000017D5sd00006C21* -- ID_MODEL_FROM_DATABASE=Xframe II CX4, Low Profile -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4, Low Profile) - - pci:v000017D5d00005832sv000017D5sd00006C22* -- ID_MODEL_FROM_DATABASE=Xframe E CX4 -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E CX4) - - pci:v000017D5d00005833* - ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe - - pci:v000017D5d00005833sv000017D5sd00006030* -- ID_MODEL_FROM_DATABASE=X3110 Single Port SR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port SR) - - pci:v000017D5d00005833sv000017D5sd00006031* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port SR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port SR) - - pci:v000017D5d00005833sv000017D5sd00006430* -- ID_MODEL_FROM_DATABASE=X3110 Single Port LR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LR) - - pci:v000017D5d00005833sv000017D5sd00006431* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port LR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LR) - - pci:v000017D5d00005833sv000017D5sd00007030* -- ID_MODEL_FROM_DATABASE=X3110 Single Port LRM -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LRM) - - pci:v000017D5d00005833sv000017D5sd00007031* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port LRM -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LRM) - - pci:v000017D5d00005833sv000017D5sd00007430* -- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-T -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-T) - - pci:v000017D5d00005833sv000017D5sd00007431* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-T -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-T) - - pci:v000017D5d00005833sv000017D5sd00007830* -- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-CR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-CR) - - pci:v000017D5d00005833sv000017D5sd00007831* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-CR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-CR) - - pci:v000017DB* - ID_VENDOR_FROM_DATABASE=Cray Inc -@@ -50103,16 +50103,16 @@ pci:v000017FEd00002120* - ID_MODEL_FROM_DATABASE=IPN 2120 802.11b - - pci:v000017FEd00002120sv00001737sd00000020* -- ID_MODEL_FROM_DATABASE=WMP11 v4 802.11b Wireless-B PCI Adapter -+ ID_MODEL_FROM_DATABASE=IPN 2120 802.11b (WMP11 v4 802.11b Wireless-B PCI Adapter) - - pci:v000017FEd00002220* - ID_MODEL_FROM_DATABASE=IPN 2220 802.11g - - pci:v000017FEd00002220sv00001468sd00000305* -- ID_MODEL_FROM_DATABASE=T60N871 802.11g Mini PCI Wireless Adapter -+ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (T60N871 802.11g Mini PCI Wireless Adapter) - - pci:v000017FEd00002220sv00001737sd00000029* -- ID_MODEL_FROM_DATABASE=WPC54G v4 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (WPC54G v4 802.11g Wireless-G Notebook Adapter) - - pci:v000017FF* - ID_VENDOR_FROM_DATABASE=Benq Corporation -@@ -50133,13 +50133,13 @@ pci:v00001813d00004000* - ID_MODEL_FROM_DATABASE=HaM controllerless modem - - pci:v00001813d00004000sv000016BEsd00000001* -- ID_MODEL_FROM_DATABASE=V9x HAM Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HaM controllerless modem (V9x HAM Data Fax Modem) - - pci:v00001813d00004100* - ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem - - pci:v00001813d00004100sv000016BEsd00000002* -- ID_MODEL_FROM_DATABASE=V9x HAM 1394 -+ ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem (V9x HAM 1394) - - pci:v00001814* - ID_VENDOR_FROM_DATABASE=Ralink corp. -@@ -50148,13 +50148,13 @@ pci:v00001814d00000101* - ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 - - pci:v00001814d00000101sv00001043sd00000127* -- ID_MODEL_FROM_DATABASE=WiFi-b add-on Card -+ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (WiFi-b add-on Card) - - pci:v00001814d00000101sv00001371sd00000010* -- ID_MODEL_FROM_DATABASE=Minitar MNW2BPCI Wireless PCI Card -+ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (Minitar MNW2BPCI Wireless PCI Card) - - pci:v00001814d00000101sv00001462sd00006828* -- ID_MODEL_FROM_DATABASE=PC11B2 (MS-6828) Wireless 11b PCI Card -+ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (PC11B2 (MS-6828) Wireless 11b PCI Card) - - pci:v00001814d00000200* - ID_MODEL_FROM_DATABASE=RT2500 802.11g PCI [PC54G2] -@@ -50163,58 +50163,58 @@ pci:v00001814d00000201* - ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg - - pci:v00001814d00000201sv00001043sd0000130F* -- ID_MODEL_FROM_DATABASE=WL-130g -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-130g) - - pci:v00001814d00000201sv00001186sd00003C00* -- ID_MODEL_FROM_DATABASE=DWL-G650X Wireless 11g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (DWL-G650X Wireless 11g CardBus Adapter) - - pci:v00001814d00000201sv00001371sd0000001E* -- ID_MODEL_FROM_DATABASE=CWC-854 Wireless-G CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWC-854 Wireless-G CardBus Adapter) - - pci:v00001814d00000201sv00001371sd0000001F* -- ID_MODEL_FROM_DATABASE=CWM-854 Wireless-G Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWM-854 Wireless-G Mini PCI Adapter) - - pci:v00001814d00000201sv00001371sd00000020* -- ID_MODEL_FROM_DATABASE=CWP-854 Wireless-G PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWP-854 Wireless-G PCI Adapter) - - pci:v00001814d00000201sv00001458sd0000E381* -- ID_MODEL_FROM_DATABASE=GN-WMKG 802.11b/g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WMKG 802.11b/g Wireless CardBus Adapter) - - pci:v00001814d00000201sv00001458sd0000E931* -- ID_MODEL_FROM_DATABASE=GN-WIKG 802.11b/g mini-PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WIKG 802.11b/g mini-PCI Adapter) - - pci:v00001814d00000201sv00001462sd00006833* -- ID_MODEL_FROM_DATABASE=Unknown 802.11g mini-PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Unknown 802.11g mini-PCI Adapter) - - pci:v00001814d00000201sv00001462sd00006835* -- ID_MODEL_FROM_DATABASE=Wireless 11G CardBus CB54G2 -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Wireless 11G CardBus CB54G2) - - pci:v00001814d00000201sv00001737sd00000032* -- ID_MODEL_FROM_DATABASE=WMP54G v4.0 PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WMP54G v4.0 PCI Adapter) - - pci:v00001814d00000201sv00001799sd0000700A* -- ID_MODEL_FROM_DATABASE=F5D7000 v2000/v3000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7000 v2000/v3000 Wireless G Desktop Card) - - pci:v00001814d00000201sv00001799sd0000701A* -- ID_MODEL_FROM_DATABASE=F5D7010 v2000/v3000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7010 v2000/v3000 Wireless G Notebook Card) - - pci:v00001814d00000201sv00001814sd00002560* - ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg - - pci:v00001814d00000201sv0000182Dsd00009073* -- ID_MODEL_FROM_DATABASE=WL-115 Wireless Network PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-115 Wireless Network PCI Adapter) - - pci:v00001814d00000201sv0000185Fsd000022A0* -- ID_MODEL_FROM_DATABASE=CN-WF513 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CN-WF513 Wireless Cardbus Adapter) - - pci:v00001814d00000201sv000018EBsd00005312* -- ID_MODEL_FROM_DATABASE=WL531P IEEE 802.11g PCI Card-EU -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL531P IEEE 802.11g PCI Card-EU) - - pci:v00001814d00000201sv00001948sd00003C00* -- ID_MODEL_FROM_DATABASE=C54RC v1 Wireless 11g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54RC v1 Wireless 11g CardBus Adapter) - - pci:v00001814d00000201sv00001948sd00003C01* -- ID_MODEL_FROM_DATABASE=C54Ri v1 Wireless 11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54Ri v1 Wireless 11g PCI Adapter) - - pci:v00001814d00000300* - ID_MODEL_FROM_DATABASE=Wireless Adapter Canyon CN-WF511 -@@ -50223,88 +50223,88 @@ pci:v00001814d00000301* - ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI - - pci:v00001814d00000301sv00001186sd00003C08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1) -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1)) - - pci:v00001814d00000301sv00001186sd00003C09* -- ID_MODEL_FROM_DATABASE=DWL-G510 Rev C -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (DWL-G510 Rev C) - - pci:v00001814d00000301sv000013D1sd0000ABE3* -- ID_MODEL_FROM_DATABASE=miniPCI Pluscom 802.11 a/b/g -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (miniPCI Pluscom 802.11 a/b/g) - - pci:v00001814d00000301sv00001458sd0000E933* -- ID_MODEL_FROM_DATABASE=GN-WI01GS -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WI01GS) - - pci:v00001814d00000301sv00001458sd0000E934* -- ID_MODEL_FROM_DATABASE=GN-WP01GS -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WP01GS) - - pci:v00001814d00000301sv00001737sd00000055* -- ID_MODEL_FROM_DATABASE=WMP54G v4.1 -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (WMP54G v4.1) - - pci:v00001814d00000301sv00001799sd0000700E* -- ID_MODEL_FROM_DATABASE=F5D7000 v6000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7000 v6000 Wireless G Desktop Card) - - pci:v00001814d00000301sv00001799sd0000701E* -- ID_MODEL_FROM_DATABASE=F5D7010 v6000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7010 v6000 Wireless G Notebook Card) - - pci:v00001814d00000301sv000017F9sd00000012* -- ID_MODEL_FROM_DATABASE=AWLC3026T 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AWLC3026T 802.11g Wireless CardBus Adapter) - - pci:v00001814d00000301sv00001814sd00002561* -- ID_MODEL_FROM_DATABASE=EW-7108PCg/EW-7128g -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (EW-7108PCg/EW-7128g) - - pci:v00001814d00000302* - ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g - - pci:v00001814d00000302sv00001186sd00003A71* -- ID_MODEL_FROM_DATABASE=DWA-510 Wireless G Desktop Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (DWA-510 Wireless G Desktop Adapter) - - pci:v00001814d00000302sv00001186sd00003C08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2) -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2)) - - pci:v00001814d00000302sv00001186sd00003C09* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless Network Adapter (Rev.C) -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G510 Wireless Network Adapter (Rev.C)) - - pci:v00001814d00000302sv00001462sd0000B834* -- ID_MODEL_FROM_DATABASE=PC54G3 Wireless 11g PCI Card -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (PC54G3 Wireless 11g PCI Card) - - pci:v00001814d00000302sv00001948sd00003C23* -- ID_MODEL_FROM_DATABASE=C54RC v2 Wireless 11g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54RC v2 Wireless 11g CardBus Adapter) - - pci:v00001814d00000302sv00001948sd00003C24* -- ID_MODEL_FROM_DATABASE=C54Ri v2 Wireless 11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54Ri v2 Wireless 11g PCI Adapter) - - pci:v00001814d00000401* - ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO - - pci:v00001814d00000401sv00001737sd00000052* -- ID_MODEL_FROM_DATABASE=WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster -+ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster) - - pci:v00001814d00000401sv000017F9sd00000011* -- ID_MODEL_FROM_DATABASE=WPCR-137G 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPCR-137G 802.11bg Wireless CardBus Adapter) - - pci:v00001814d00000401sv000017F9sd00000016* -- ID_MODEL_FROM_DATABASE=WPIR-119GH 802.11bg Wireless Desktop Adapter -+ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPIR-119GH 802.11bg Wireless Desktop Adapter) - - pci:v00001814d00000601* - ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI - - pci:v00001814d00000601sv00001799sd0000801C* -- ID_MODEL_FROM_DATABASE=F5D8011 v3 802.11n N1 Wireless Notebook Card -+ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (F5D8011 v3 802.11n N1 Wireless Notebook Card) - - pci:v00001814d00000601sv0000187Esd00003412* -- ID_MODEL_FROM_DATABASE=NWD-310N 802.11n Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (NWD-310N 802.11n Wireless PCI Adapter) - - pci:v00001814d00000681* - ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe - - pci:v00001814d00000681sv00001458sd0000E939* -- ID_MODEL_FROM_DATABASE=GN-WS30N-RH 802.11bgn Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe (GN-WS30N-RH 802.11bgn Mini PCIe Card) - - pci:v00001814d00000701* - ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R - - pci:v00001814d00000701sv00001737sd00000074* -- ID_MODEL_FROM_DATABASE=WMP110 v2 802.11n RangePlus Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R (WMP110 v2 802.11n RangePlus Wireless PCI Adapter) - - pci:v00001814d00000781* - ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe -@@ -50313,7 +50313,7 @@ pci:v00001814d00003060* - ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R - - pci:v00001814d00003060sv00001186sd00003C04* -- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A1) -+ ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A1)) - - pci:v00001814d00003062* - ID_MODEL_FROM_DATABASE=RT3062 Wireless 802.11n 2T/2R -@@ -50322,7 +50322,7 @@ pci:v00001814d00003090* - ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe - - pci:v00001814d00003090sv000013BDsd00001057* -- ID_MODEL_FROM_DATABASE=GN-WS32L-RH Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe (GN-WS32L-RH Half-size Mini PCIe Card) - - pci:v00001814d00003091* - ID_MODEL_FROM_DATABASE=RT3091 Wireless 802.11n 1T/2R PCIe -@@ -50334,13 +50334,13 @@ pci:v00001814d00003290* - ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe - - pci:v00001814d00003290sv0000103Csd000018EC* -- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter -+ ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) - - pci:v00001814d00003298* - ID_MODEL_FROM_DATABASE=RT3290 Bluetooth - - pci:v00001814d00003298sv0000103Csd000018EC* -- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter -+ ID_MODEL_FROM_DATABASE=RT3290 Bluetooth (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) - - pci:v00001814d00003592* - ID_MODEL_FROM_DATABASE=RT3592 Wireless 802.11abgn 2T/2R PCIe -@@ -50352,16 +50352,16 @@ pci:v00001814d00005360* - ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R - - pci:v00001814d00005360sv00001186sd00003C05* -- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A2) -+ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A2)) - - pci:v00001814d00005360sv000020F4sd0000703A* -- ID_MODEL_FROM_DATABASE=TEW-703PI N150 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (TEW-703PI N150 Wireless PCI Adapter) - - pci:v00001814d00005390* - ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe - - pci:v00001814d00005390sv0000103Csd00001636* -- ID_MODEL_FROM_DATABASE=U98Z077.00 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe (U98Z077.00 Half-size Mini PCIe Card) - - pci:v00001814d00005392* - ID_MODEL_FROM_DATABASE=RT5392 PCIe Wireless Network Adapter -@@ -50370,7 +50370,7 @@ pci:v00001814d0000539F* - ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] - - pci:v00001814d0000539Fsv0000103Csd00001637* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card -+ ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] (Pavilion DM1Z-3000 PCIe wireless card) - - pci:v00001814d00005592* - ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter -@@ -50637,7 +50637,7 @@ pci:v000018C3d00000720* - ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller - - pci:v000018C3d00000720sv000007CAsd0000032E* -- ID_MODEL_FROM_DATABASE=Hybrid M779 PCI-E -+ ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller (Hybrid M779 PCI-E) - - pci:v000018C8* - ID_VENDOR_FROM_DATABASE=Cray Inc -@@ -50697,70 +50697,70 @@ pci:v000018ECd00006D05* - ID_MODEL_FROM_DATABASE=ML555 - - pci:v000018ECd00006D05sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=ML555 (NIC (ethernet interfaces)) - - pci:v000018ECd00006D05sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 4x1G) - - pci:v000018ECd00006D05sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 2x10G) - - pci:v000018ECd00006D05sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd00006D05sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd00006D05sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=ML555 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd00006D05sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=ML555 (Testing design) - - pci:v000018ECd00006D05sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=ML555 (Boot design) - - pci:v000018ECd0000C006* - ID_MODEL_FROM_DATABASE=COMBO6 - - pci:v000018ECd0000C006sv000018ECsd0000D001* -- ID_MODEL_FROM_DATABASE=COMBO-4MTX -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4MTX) - - pci:v000018ECd0000C006sv000018ECsd0000D002* -- ID_MODEL_FROM_DATABASE=COMBO-4SFP -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFP) - - pci:v000018ECd0000C006sv000018ECsd0000D003* -- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFPRO) - - pci:v000018ECd0000C006sv000018ECsd0000D004* -- ID_MODEL_FROM_DATABASE=COMBO-2XFP -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-2XFP) - - pci:v000018ECd0000C032* - ID_MODEL_FROM_DATABASE=COMBO-LXT110 - - pci:v000018ECd0000C032sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (ethernet interfaces)) - - pci:v000018ECd0000C032sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 4x1G) - - pci:v000018ECd0000C032sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 2x10G) - - pci:v000018ECd0000C032sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd0000C032sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd0000C032sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd0000C032sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Testing design) - - pci:v000018ECd0000C032sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Boot design) - - pci:v000018ECd0000C045* - ID_MODEL_FROM_DATABASE=COMBO6E -@@ -50772,70 +50772,70 @@ pci:v000018ECd0000C058* - ID_MODEL_FROM_DATABASE=COMBO6X - - pci:v000018ECd0000C058sv000018ECsd0000D001* -- ID_MODEL_FROM_DATABASE=COMBO-4MTX -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4MTX) - - pci:v000018ECd0000C058sv000018ECsd0000D002* -- ID_MODEL_FROM_DATABASE=COMBO-4SFP -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFP) - - pci:v000018ECd0000C058sv000018ECsd0000D003* -- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFPRO) - - pci:v000018ECd0000C058sv000018ECsd0000D004* -- ID_MODEL_FROM_DATABASE=COMBO-2XFP -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-2XFP) - - pci:v000018ECd0000C132* - ID_MODEL_FROM_DATABASE=COMBO-LXT155 - - pci:v000018ECd0000C132sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (ethernet interfaces)) - - pci:v000018ECd0000C132sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 4x1G) - - pci:v000018ECd0000C132sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 2x10G) - - pci:v000018ECd0000C132sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd0000C132sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd0000C132sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd0000C132sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Testing design) - - pci:v000018ECd0000C132sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Boot design) - - pci:v000018ECd0000C232* - ID_MODEL_FROM_DATABASE=COMBO-FXT100 - - pci:v000018ECd0000C232sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (ethernet interfaces)) - - pci:v000018ECd0000C232sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 4x1G) - - pci:v000018ECd0000C232sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 2x10G) - - pci:v000018ECd0000C232sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd0000C232sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd0000C232sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd0000C232sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Testing design) - - pci:v000018ECd0000C232sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Boot design) - - pci:v000018EE* - ID_VENDOR_FROM_DATABASE=Chenming Mold Ind. Corp. -@@ -51075,235 +51075,235 @@ pci:v00001924d00000703* - ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] - - pci:v00001924d00000703sv000010B8sd00000102* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) - - pci:v00001924d00000703sv000010B8sd00000103* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) - - pci:v00001924d00000703sv000010B8sd00000201* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) - - pci:v00001924d00000703sv00001924sd00000101* -- ID_MODEL_FROM_DATABASE=SFE4001-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A1) - - pci:v00001924d00000703sv00001924sd00000102* -- ID_MODEL_FROM_DATABASE=SFE4001-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A2) - - pci:v00001924d00000703sv00001924sd00000103* -- ID_MODEL_FROM_DATABASE=SFE4001-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A3) - - pci:v00001924d00000703sv00001924sd00000201* -- ID_MODEL_FROM_DATABASE=SFE4002-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4002-A1) - - pci:v00001924d00000703sv00001924sd00000301* -- ID_MODEL_FROM_DATABASE=SFE4003-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A1) - - pci:v00001924d00000703sv00001924sd00000302* -- ID_MODEL_FROM_DATABASE=SFE4003-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A2) - - pci:v00001924d00000703sv00001924sd00000303* -- ID_MODEL_FROM_DATABASE=SFE4003-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A3) - - pci:v00001924d00000703sv00001924sd00000304* -- ID_MODEL_FROM_DATABASE=SFE4003-A4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A4) - - pci:v00001924d00000703sv00001924sd00000500* -- ID_MODEL_FROM_DATABASE=SFE4005-A0 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4005-A0) - - pci:v00001924d00000710* - ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] - - pci:v00001924d00000710sv000010B8sd00000103* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) - - pci:v00001924d00000710sv000010B8sd00000201* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) - - pci:v00001924d00000710sv00001924sd00000102* -- ID_MODEL_FROM_DATABASE=SFE4001-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A2) - - pci:v00001924d00000710sv00001924sd00000103* -- ID_MODEL_FROM_DATABASE=SFE4001-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A3) - - pci:v00001924d00000710sv00001924sd00000201* -- ID_MODEL_FROM_DATABASE=SFE4002-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4002-A1) - - pci:v00001924d00000710sv00001924sd00000302* -- ID_MODEL_FROM_DATABASE=SFE4003-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A2) - - pci:v00001924d00000710sv00001924sd00000303* -- ID_MODEL_FROM_DATABASE=SFE4003-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A3) - - pci:v00001924d00000710sv00001924sd00000304* -- ID_MODEL_FROM_DATABASE=SFE4003-A4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A4) - - pci:v00001924d00000710sv00001924sd00000500* -- ID_MODEL_FROM_DATABASE=SFE4005-A0 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4005-A0) - - pci:v00001924d00000710sv00001924sd00005102* -- ID_MODEL_FROM_DATABASE=SFN4111T-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-A2) - - pci:v00001924d00000710sv00001924sd00005103* -- ID_MODEL_FROM_DATABASE=SFN4111T-R3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R3) - - pci:v00001924d00000710sv00001924sd00005104* -- ID_MODEL_FROM_DATABASE=SFN4111T-R4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R4) - - pci:v00001924d00000710sv00001924sd00005105* -- ID_MODEL_FROM_DATABASE=SFN4111T-R5 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R5) - - pci:v00001924d00000710sv00001924sd00005201* -- ID_MODEL_FROM_DATABASE=SFN4112F-R1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R1) - - pci:v00001924d00000710sv00001924sd00005202* -- ID_MODEL_FROM_DATABASE=SFN4112F-R2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R2) - - pci:v00001924d00000803* - ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] - - pci:v00001924d00000803sv00001014sd00000478* -- ID_MODEL_FROM_DATABASE=2-port 10GbE Low-Latency (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE Low-Latency (R7)) - - pci:v00001924d00000803sv00001014sd00000479* -- ID_MODEL_FROM_DATABASE=2-port 10GbE OpenOnload (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE OpenOnload (R7)) - - pci:v00001924d00000803sv00001014sd000004A7* -- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Low-latency Dual-port HBA (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Low-latency Dual-port HBA (R7)) - - pci:v00001924d00000803sv00001014sd000004A8* -- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Dual-port HBA (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Dual-port HBA (R7)) - - pci:v00001924d00000803sv0000103Csd00002132* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1)) - - pci:v00001924d00000803sv0000103Csd00002136* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570SFP+ Adapter (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570SFP+ Adapter (R7)) - - pci:v00001924d00000803sv00001924sd00001201* -- ID_MODEL_FROM_DATABASE=SFA6902F-R1 SFP+ AOE Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFA6902F-R1 SFP+ AOE Adapter) - - pci:v00001924d00000803sv00001924sd00006200* -- ID_MODEL_FROM_DATABASE=SFN5122F-R0 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R0 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006201* -- ID_MODEL_FROM_DATABASE=SFN5122F-R1 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R1 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006202* -- ID_MODEL_FROM_DATABASE=SFN5122F-R2 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R2 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006204* -- ID_MODEL_FROM_DATABASE=SFN5122F-R4 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R4 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006205* -- ID_MODEL_FROM_DATABASE=SFN5122F-R5 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R5 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006206* -- ID_MODEL_FROM_DATABASE=SFN5122F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006207* -- ID_MODEL_FROM_DATABASE=SFN5122F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R7 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006210* -- ID_MODEL_FROM_DATABASE=SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006211* -- ID_MODEL_FROM_DATABASE=SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006217* -- ID_MODEL_FROM_DATABASE=SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006227* -- ID_MODEL_FROM_DATABASE=SFN6122F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6122F-R7 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006237* -- ID_MODEL_FROM_DATABASE=SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006501* -- ID_MODEL_FROM_DATABASE=SFN5802K-R1 Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5802K-R1 Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006511* -- ID_MODEL_FROM_DATABASE=SFN5814H-R1 Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5814H-R1 Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006521* -- ID_MODEL_FROM_DATABASE=SFN5812H-R1 Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5812H-R1 Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006562* -- ID_MODEL_FROM_DATABASE=SFN6832F-R2 SFP+ Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6832F-R2 SFP+ Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006A05* -- ID_MODEL_FROM_DATABASE=SFN5112F-R5 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R5 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006A06* -- ID_MODEL_FROM_DATABASE=SFN5112F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007206* -- ID_MODEL_FROM_DATABASE=SFN5162F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007207* -- ID_MODEL_FROM_DATABASE=SFN5162F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R7 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007A06* -- ID_MODEL_FROM_DATABASE=SFN5152F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007A07* -- ID_MODEL_FROM_DATABASE=SFN5152F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R7 SFP+ Server Adapter) - - pci:v00001924d00000813* - ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] - - pci:v00001924d00000813sv00001924sd00006100* -- ID_MODEL_FROM_DATABASE=SFN5121T-R0 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R0 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006102* -- ID_MODEL_FROM_DATABASE=SFN5121T-R2 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R2 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006103* -- ID_MODEL_FROM_DATABASE=SFN5121T-R3 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R3 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006104* -- ID_MODEL_FROM_DATABASE=SFN5121T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006902* -- ID_MODEL_FROM_DATABASE=SFN5111T-R2 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R2 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006904* -- ID_MODEL_FROM_DATABASE=SFN5111T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00007104* -- ID_MODEL_FROM_DATABASE=SFN5161T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5161T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00007904* -- ID_MODEL_FROM_DATABASE=SFN5151T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5151T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000903* - ID_MODEL_FROM_DATABASE=SFC9120 - - pci:v00001924d00000903sv00001014sd000004CC* -- ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R2 2x10GbE SFP+ Flareon Ultra) - - pci:v00001924d00000903sv00001924sd00008002* -- ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R1 SFP+ Server Adapter) - - pci:v00001924d00000903sv00001924sd00008003* -- ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) - - pci:v00001924d00000903sv00001924sd00008006* -- ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7022F-R1 SFP+ Server Adapter) - - pci:v00001924d00000903sv00001924sd00008007* -- ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7322F-R2 Precision Time SFP+ Server Adapter) - - pci:v00001924d00000903sv00001924sd00008009* -- ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter) - - pci:v00001924d00000903sv00001924sd0000800A* -- ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x02F-R2 Flareon 7000 Series 10G Adapter) - - pci:v00001924d00000923* - ID_MODEL_FROM_DATABASE=SFC9140 - - pci:v00001924d00000923sv00001924sd0000800B* -- ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9140 (SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) - - pci:v00001924d00001803* - ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] -@@ -51315,40 +51315,40 @@ pci:v00001924d00006703* - ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] - - pci:v00001924d00006703sv000010B8sd00000102* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) - - pci:v00001924d00006703sv000010B8sd00000103* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) - - pci:v00001924d00006703sv000010B8sd00000201* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) - - pci:v00001924d00006703sv00001924sd00000101* -- ID_MODEL_FROM_DATABASE=SFE4001-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A1) - - pci:v00001924d00006703sv00001924sd00000102* -- ID_MODEL_FROM_DATABASE=SFE4001-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A2) - - pci:v00001924d00006703sv00001924sd00000103* -- ID_MODEL_FROM_DATABASE=SFE4001-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A3) - - pci:v00001924d00006703sv00001924sd00000201* -- ID_MODEL_FROM_DATABASE=SFE4002-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4002-A1) - - pci:v00001924d00006703sv00001924sd00000301* -- ID_MODEL_FROM_DATABASE=SFE4003-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A1) - - pci:v00001924d00006703sv00001924sd00000302* -- ID_MODEL_FROM_DATABASE=SFE4003-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A2) - - pci:v00001924d00006703sv00001924sd00000303* -- ID_MODEL_FROM_DATABASE=SFE4003-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A3) - - pci:v00001924d00006703sv00001924sd00000304* -- ID_MODEL_FROM_DATABASE=SFE4003-A4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A4) - - pci:v00001924d00006703sv00001924sd00000500* -- ID_MODEL_FROM_DATABASE=SFE4005-A0 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4005-A0) - - pci:v00001924d0000C101* - ID_MODEL_FROM_DATABASE=EF1-21022T [EtherFabric] -@@ -51549,13 +51549,13 @@ pci:v00001957d00000084* - ID_MODEL_FROM_DATABASE=MPC8347E PBGA - - pci:v00001957d00000084sv0000110Asd00004074* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 -+ ID_MODEL_FROM_DATABASE=MPC8347E PBGA (SIMATIC NET CP 1628) - - pci:v00001957d00000085* - ID_MODEL_FROM_DATABASE=MPC8347 PBGA - - pci:v00001957d00000085sv0000110Asd00004046* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 -+ ID_MODEL_FROM_DATABASE=MPC8347 PBGA (SIMATIC NET CP 1623) - - pci:v00001957d00000086* - ID_MODEL_FROM_DATABASE=MPC8343E -@@ -51570,7 +51570,7 @@ pci:v00001957d000000B6* - ID_MODEL_FROM_DATABASE=MPC8314E - - pci:v00001957d000000B6sv00001A56sd00001101* -- ID_MODEL_FROM_DATABASE=Killer Xeno Pro Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=MPC8314E (Killer Xeno Pro Gigabit Ethernet Controller) - - pci:v00001957d000000C2* - ID_MODEL_FROM_DATABASE=MPC8379E -@@ -51621,7 +51621,7 @@ pci:v00001957d00000111* - ID_MODEL_FROM_DATABASE=P1022 - - pci:v00001957d00000111sv00001C7Fsd00005200* -- ID_MODEL_FROM_DATABASE=EB5200 -+ ID_MODEL_FROM_DATABASE=P1022 (EB5200) - - pci:v00001957d00000118* - ID_MODEL_FROM_DATABASE=P1013E -@@ -51660,7 +51660,7 @@ pci:v00001957d0000C006* - ID_MODEL_FROM_DATABASE=MPC8308 - - pci:v00001957d0000C006sv00001A56sd00001201* -- ID_MODEL_FROM_DATABASE=Killer E2100 Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=MPC8308 (Killer E2100 Gigabit Ethernet Controller) - - pci:v00001958* - ID_VENDOR_FROM_DATABASE=Faster Technology, LLC. -@@ -51726,13 +51726,13 @@ pci:v00001969d00001026* - ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet - - pci:v00001969d00001026sv00001043sd00008304* -- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard -+ ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (P5KPL-CM Motherboard) - - pci:v00001969d00001048* - ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet - - pci:v00001969d00001048sv00001043sd00008226* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet (P5KPL-VM Motherboard) - - pci:v00001969d00001062* - ID_MODEL_FROM_DATABASE=AR8132 Fast Ethernet -@@ -51741,7 +51741,7 @@ pci:v00001969d00001063* - ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet - - pci:v00001969d00001063sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-G31M-ES2L Motherboard -+ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) - - pci:v00001969d00001066* - ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet -@@ -51762,7 +51762,7 @@ pci:v00001969d00001091* - ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet - - pci:v00001969d00001091sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet (N56VZ) - - pci:v00001969d000010A0* - ID_MODEL_FROM_DATABASE=QCA8172 Fast Ethernet -@@ -51804,7 +51804,7 @@ pci:v00001971d00001011* - ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] - - pci:v00001971d00001011sv00001043sd00000001* -- ID_MODEL_FROM_DATABASE=PhysX P1 -+ ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] (PhysX P1) - - pci:v00001974* - ID_VENDOR_FROM_DATABASE=Eberspaecher Electronics -@@ -51834,25 +51834,25 @@ pci:v0000197Bd00002361* - ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE - - pci:v0000197Bd00002361sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE (P965 Neo MS-7235 mainboard) - - pci:v0000197Bd00002362* - ID_MODEL_FROM_DATABASE=JMB362 SATA Controller - - pci:v0000197Bd00002362sv00001043sd00008460* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=JMB362 SATA Controller (P8P67 Deluxe Motherboard) - - pci:v0000197Bd00002363* - ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller - - pci:v0000197Bd00002363sv00001043sd000081E4* -- ID_MODEL_FROM_DATABASE=P5B [JMB363] -+ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (P5B [JMB363]) - - pci:v0000197Bd00002363sv00001458sd0000B000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard) - - pci:v0000197Bd00002363sv00001849sd00002363* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard (one of many)) - - pci:v0000197Bd00002364* - ID_MODEL_FROM_DATABASE=JMB364 AHCI Controller -@@ -51984,19 +51984,19 @@ pci:v000019A2d00000700* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC - - pci:v000019A2d00000700sv0000103Csd00001747* -- ID_MODEL_FROM_DATABASE=NC550SFP DualPort 10GbE Server Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP DualPort 10GbE Server Adapter) - - pci:v000019A2d00000700sv0000103Csd00001749* -- ID_MODEL_FROM_DATABASE=NC550SFP Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP Dual Port Server Adapter) - - pci:v000019A2d00000700sv0000103Csd0000174A* -- ID_MODEL_FROM_DATABASE=NC551m Dual Port FlexFabric 10Gb Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551m Dual Port FlexFabric 10Gb Adapter) - - pci:v000019A2d00000700sv0000103Csd0000174B* -- ID_MODEL_FROM_DATABASE=StorageWorks NC550 DualPort Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (StorageWorks NC550 DualPort Converged Network Adapter) - - pci:v000019A2d00000700sv0000103Csd00003314* -- ID_MODEL_FROM_DATABASE=NC551i Dual Port FlexFabric 10Gb Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551i Dual Port FlexFabric 10Gb Adapter) - - pci:v000019A2d00000702* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator -@@ -52008,19 +52008,19 @@ pci:v000019A2d00000710* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) - - pci:v000019A2d00000710sv0000103Csd00003315* -- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000710sv0000103Csd00003340* -- ID_MODEL_FROM_DATABASE=NC552SFP 2-port 10Gb Server Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552SFP 2-port 10Gb Server Adapter) - - pci:v000019A2d00000710sv0000103Csd00003341* -- ID_MODEL_FROM_DATABASE=NC552m 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552m 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000710sv0000103Csd00003345* -- ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553m 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000710sv0000103Csd0000337B* -- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000712* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) -@@ -52029,10 +52029,10 @@ pci:v000019A2d00000714* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) - - pci:v000019A2d00000714sv0000103Csd00003315* -- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000714sv0000103Csd0000337B* -- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A8* - ID_VENDOR_FROM_DATABASE=DAQDATA GmbH -@@ -52332,16 +52332,16 @@ pci:v00001A78d00000031* - ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive - - pci:v00001A78d00000031sv00001A78sd00000034* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) - - pci:v00001A78d00000031sv00001A78sd00000037* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3D] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) - - pci:v00001A78d00000031sv00001A78sd00000038* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) - - pci:v00001A78d00000031sv00001A78sd00000039* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4D] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) - - pci:v00001A78d00000040* - ID_MODEL_FROM_DATABASE=FlashMAX II -@@ -52479,25 +52479,25 @@ pci:v00001AEDd00001005* - ID_MODEL_FROM_DATABASE=ioDimm3 - - pci:v00001AEDd00001005sv00001014sd000003C3* -- ID_MODEL_FROM_DATABASE=High IOPS SSD PCIe Adapter -+ ID_MODEL_FROM_DATABASE=ioDimm3 (High IOPS SSD PCIe Adapter) - - pci:v00001AEDd00001005sv0000103Csd0000176F* -- ID_MODEL_FROM_DATABASE=1.28TB MLC PCIe ioDrive Duo -+ ID_MODEL_FROM_DATABASE=ioDimm3 (1.28TB MLC PCIe ioDrive Duo) - - pci:v00001AEDd00001005sv0000103Csd00001770* -- ID_MODEL_FROM_DATABASE=5.2TB MLC PCIe ioDrive Octal -+ ID_MODEL_FROM_DATABASE=ioDimm3 (5.2TB MLC PCIe ioDrive Octal) - - pci:v00001AEDd00001005sv0000103Csd0000178B* -- ID_MODEL_FROM_DATABASE=160GB SLC PCIe ioDrive -+ ID_MODEL_FROM_DATABASE=ioDimm3 (160GB SLC PCIe ioDrive) - - pci:v00001AEDd00001005sv0000103Csd0000178C* -- ID_MODEL_FROM_DATABASE=320GB MLC PCIe ioDrive -+ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB MLC PCIe ioDrive) - - pci:v00001AEDd00001005sv0000103Csd0000178D* -- ID_MODEL_FROM_DATABASE=320GB SLC PCIe ioDrive Duo -+ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB SLC PCIe ioDrive Duo) - - pci:v00001AEDd00001005sv0000103Csd0000178E* -- ID_MODEL_FROM_DATABASE=640GB MLC PCIe ioDrive Duo -+ ID_MODEL_FROM_DATABASE=ioDimm3 (640GB MLC PCIe ioDrive Duo) - - pci:v00001AEDd00001006* - ID_MODEL_FROM_DATABASE=ioXtreme -@@ -52548,7 +52548,7 @@ pci:v00001AF4d00001110* - ID_MODEL_FROM_DATABASE=Inter-VM shared memory - - pci:v00001AF4d00001110sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=Inter-VM shared memory (QEMU Virtual Machine) - - pci:v00001AF5* - ID_VENDOR_FROM_DATABASE=Netezza Corp. -@@ -52587,22 +52587,22 @@ pci:v00001B21d00000612* - ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller - - pci:v00001B21d00000612sv00001849sd00000612* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller (Motherboard) - - pci:v00001B21d00001042* - ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller - - pci:v00001B21d00001042sv00001043sd00008488* -- ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (P8B WS Motherboard) - - pci:v00001B21d00001042sv00001849sd00001042* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (Motherboard) - - pci:v00001B21d00001080* - ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge - - pci:v00001B21d00001080sv00001849sd00001080* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) - - pci:v00001B2C* - ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. -@@ -52617,31 +52617,31 @@ pci:v00001B36d00000002* - ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter - - pci:v00001B36d00000002sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter (QEMU Virtual Machine) - - pci:v00001B36d00000003* - ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter - - pci:v00001B36d00000003sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter (QEMU Virtual Machine) - - pci:v00001B36d00000004* - ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter - - pci:v00001B36d00000004sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter (QEMU Virtual Machine) - - pci:v00001B36d00000005* - ID_MODEL_FROM_DATABASE=QEMU PCI Test Device - - pci:v00001B36d00000005sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device (QEMU Virtual Machine) - - pci:v00001B36d00000100* - ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card - - pci:v00001B36d00000100sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card (QEMU Virtual Machine) - - pci:v00001B37* - ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB -@@ -52662,10 +52662,10 @@ pci:v00001B3Ed00001FA8* - ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X - - pci:v00001B3Ed00001FA8sv00001B3Esd000000A3* -- ID_MODEL_FROM_DATABASE=BYNET BIC2SX -+ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SX) - - pci:v00001B3Ed00001FA8sv00001B3Esd000000C3* -- ID_MODEL_FROM_DATABASE=BYNET BIC2SE -+ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SE) - - pci:v00001B40* - ID_VENDOR_FROM_DATABASE=Schooner Information Technology, Inc. -@@ -52701,7 +52701,7 @@ pci:v00001B4Bd00009130* - ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo - - pci:v00001B4Bd00009130sv00001043sd00008438* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo (P8P67 Deluxe Motherboard) - - pci:v00001B4Bd00009172* - ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller -@@ -52767,7 +52767,7 @@ pci:v00001B73d00001000* - ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller - - pci:v00001B73d00001000sv00001D5Csd00001000* -- ID_MODEL_FROM_DATABASE=Anker USB 3.0 Express Card -+ ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller (Anker USB 3.0 Express Card) - - pci:v00001B73d00001009* - ID_MODEL_FROM_DATABASE=FL1009 USB 3.0 Host Controller -@@ -53010,67 +53010,67 @@ pci:v00001FC9d00003010* - ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC - - pci:v00001FC9d00003010sv00000000sd00003002* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port XFP SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port XFP SmartNIC) - - pci:v00001FC9d00003010sv00000000sd00003004* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) - - pci:v00001FC9d00003010sv00000000sd00003008* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port CX4 SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port CX4 SmartNIC) - - pci:v00001FC9d00003014* - ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port - - pci:v00001FC9d00003014sv00000000sd00003003* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port XFP Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port XFP Low Profile SmartNIC) - - pci:v00001FC9d00003014sv00000000sd00003005* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003014sv00000000sd00003014* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003110* - ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC - - pci:v00001FC9d00003110sv00000000sd00003004* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) - - pci:v00001FC9d00003114* - ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC - - pci:v00001FC9d00003114sv00000000sd00003005* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003114sv00000000sd00003011* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003114sv00000000sd00003012* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003114sv00000000sd00003014* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003310* - ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC - - pci:v00001FC9d00003310sv00000000sd00003004* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) - - pci:v00001FC9d00003314* - ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC - - pci:v00001FC9d00003314sv00000000sd00003005* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003314sv00000000sd00003011* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003314sv00000000sd00003012* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003314sv00000000sd00003014* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) - - pci:v00001FCE* - ID_VENDOR_FROM_DATABASE=Cognio Inc. -@@ -53172,31 +53172,31 @@ pci:v00003388d00000021* - ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) - - pci:v00003388d00000021sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K CompactPCI interface bridge -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (C2K CompactPCI interface bridge) - - pci:v00003388d00000021sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CE9) - - pci:v00003388d00000021sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT7 mainboard) - - pci:v00003388d00000021sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT8 mainboard) - - pci:v00003388d00000021sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (Cx9 mainboard) - - pci:v00003388d00000021sv00004C53sd000010A0* -- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CA3/CR3 mainboard) - - pci:v00003388d00000021sv00004C53sd00003010* -- ID_MODEL_FROM_DATABASE=PPCI mezzanine (32-bit PMC) -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (32-bit PMC)) - - pci:v00003388d00000021sv00004C53sd00003011* -- ID_MODEL_FROM_DATABASE=PPCI mezzanine (64-bit PMC) -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (64-bit PMC)) - - pci:v00003388d00000021sv00004C53sd00004000* -- ID_MODEL_FROM_DATABASE=PMCCARR1 carrier board -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PMCCARR1 carrier board) - - pci:v00003388d00000022* - ID_MODEL_FROM_DATABASE=HiNT HB4 PCI-PCI Bridge (PCI6150) -@@ -53220,19 +53220,19 @@ pci:v00003388d00008011* - ID_MODEL_FROM_DATABASE=VXPro II Chipset - - pci:v00003388d00008011sv00003388sd00008011* -- ID_MODEL_FROM_DATABASE=VXPro II Chipset CPU to PCI Bridge -+ ID_MODEL_FROM_DATABASE=VXPro II Chipset (CPU to PCI Bridge) - - pci:v00003388d00008012* - ID_MODEL_FROM_DATABASE=VXPro II Chipset - - pci:v00003388d00008012sv00003388sd00008012* -- ID_MODEL_FROM_DATABASE=VXPro II Chipset PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VXPro II Chipset (PCI to ISA Bridge) - - pci:v00003388d00008013* - ID_MODEL_FROM_DATABASE=VXPro II IDE - - pci:v00003388d00008013sv00003388sd00008013* -- ID_MODEL_FROM_DATABASE=VXPro II Chipset EIDE Controller -+ ID_MODEL_FROM_DATABASE=VXPro II IDE (VXPro II Chipset EIDE Controller) - - pci:v00003388d0000A103* - ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink HD Pro -@@ -53277,13 +53277,13 @@ pci:v00003D3Dd00000002* - ID_MODEL_FROM_DATABASE=GLINT 500TX - - pci:v00003D3Dd00000002sv00000000sd00000000* -- ID_MODEL_FROM_DATABASE=GLoria L -+ ID_MODEL_FROM_DATABASE=GLINT 500TX (GLoria L) - - pci:v00003D3Dd00000003* - ID_MODEL_FROM_DATABASE=GLINT Delta - - pci:v00003D3Dd00000003sv00000000sd00000000* -- ID_MODEL_FROM_DATABASE=GLoria XL -+ ID_MODEL_FROM_DATABASE=GLINT Delta (GLoria XL) - - pci:v00003D3Dd00000004* - ID_MODEL_FROM_DATABASE=Permedia -@@ -53295,10 +53295,10 @@ pci:v00003D3Dd00000006* - ID_MODEL_FROM_DATABASE=GLINT MX - - pci:v00003D3Dd00000006sv00000000sd00000000* -- ID_MODEL_FROM_DATABASE=GLoria XL -+ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XL) - - pci:v00003D3Dd00000006sv00001048sd00000A42* -- ID_MODEL_FROM_DATABASE=GLoria XXL -+ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XXL) - - pci:v00003D3Dd00000007* - ID_MODEL_FROM_DATABASE=3D Extreme -@@ -53307,55 +53307,55 @@ pci:v00003D3Dd00000008* - ID_MODEL_FROM_DATABASE=GLINT Gamma G1 - - pci:v00003D3Dd00000008sv00001048sd00000A42* -- ID_MODEL_FROM_DATABASE=GLoria XXL -+ ID_MODEL_FROM_DATABASE=GLINT Gamma G1 (GLoria XXL) - - pci:v00003D3Dd00000009* - ID_MODEL_FROM_DATABASE=Permedia II 2D+3D - - pci:v00003D3Dd00000009sv00001040sd00000011* -- ID_MODEL_FROM_DATABASE=AccelStar II -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II) - - pci:v00003D3Dd00000009sv00001048sd00000A42* -- ID_MODEL_FROM_DATABASE=GLoria XXL -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (GLoria XXL) - - pci:v00003D3Dd00000009sv000013E9sd00001000* -- ID_MODEL_FROM_DATABASE=6221L-4U -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (6221L-4U) - - pci:v00003D3Dd00000009sv00003D3Dsd00000100* -- ID_MODEL_FROM_DATABASE=AccelStar II 3D Accelerator -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II 3D Accelerator) - - pci:v00003D3Dd00000009sv00003D3Dsd00000111* -- ID_MODEL_FROM_DATABASE=Permedia 3:16 -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia 3:16) - - pci:v00003D3Dd00000009sv00003D3Dsd00000114* -- ID_MODEL_FROM_DATABASE=Santa Ana -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana) - - pci:v00003D3Dd00000009sv00003D3Dsd00000116* -- ID_MODEL_FROM_DATABASE=Oxygen GVX1 -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen GVX1) - - pci:v00003D3Dd00000009sv00003D3Dsd00000119* -- ID_MODEL_FROM_DATABASE=Scirocco -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Scirocco) - - pci:v00003D3Dd00000009sv00003D3Dsd00000120* -- ID_MODEL_FROM_DATABASE=Santa Ana PCL -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana PCL) - - pci:v00003D3Dd00000009sv00003D3Dsd00000125* -- ID_MODEL_FROM_DATABASE=Oxygen VX1 -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen VX1) - - pci:v00003D3Dd00000009sv00003D3Dsd00000127* -- ID_MODEL_FROM_DATABASE=Permedia3 Create! -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia3 Create!) - - pci:v00003D3Dd0000000A* - ID_MODEL_FROM_DATABASE=GLINT R3 - - pci:v00003D3Dd0000000Asv00003D3Dsd00000121* -- ID_MODEL_FROM_DATABASE=Oxygen VX1 -+ ID_MODEL_FROM_DATABASE=GLINT R3 (Oxygen VX1) - - pci:v00003D3Dd0000000C* - ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] - - pci:v00003D3Dd0000000Csv00003D3Dsd00000144* -- ID_MODEL_FROM_DATABASE=Oxygen VX1-4X AGP [Permedia 4] -+ ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] (Oxygen VX1-4X AGP [Permedia 4]) - - pci:v00003D3Dd0000000D* - ID_MODEL_FROM_DATABASE=GLint R4 rev A -@@ -53472,13 +53472,13 @@ pci:v00004040d00000001* - ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface - - pci:v00004040d00000001sv0000103Csd00007047* -- ID_MODEL_FROM_DATABASE=NC510F PCIe 10-Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface (NC510F PCIe 10-Gigabit Server Adapter) - - pci:v00004040d00000002* - ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface - - pci:v00004040d00000002sv0000103Csd00007048* -- ID_MODEL_FROM_DATABASE=NC510c PCIe 10-Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface (NC510c PCIe 10-Gigabit Server Adapter) - - pci:v00004040d00000003* - ID_MODEL_FROM_DATABASE=NXB-4GCU Quad Gigabit Ethernet PCIe Adapter with 1000-BASE-T interface -@@ -53490,7 +53490,7 @@ pci:v00004040d00000005* - ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class - - pci:v00004040d00000005sv0000103Csd0000170E* -- ID_MODEL_FROM_DATABASE=NC512m Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class (NC512m Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v00004040d00000024* - ID_MODEL_FROM_DATABASE=XG Mgmt -@@ -53502,28 +53502,28 @@ pci:v00004040d00000100* - ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter - - pci:v00004040d00000100sv0000103Csd0000171B* -- ID_MODEL_FROM_DATABASE=NC522m Dual Port 10GbE Multifunction BL-c Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522m Dual Port 10GbE Multifunction BL-c Adapter) - - pci:v00004040d00000100sv0000103Csd00001740* -- ID_MODEL_FROM_DATABASE=NC375T PCI Express Quad Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375T PCI Express Quad Port Gigabit Server Adapter) - - pci:v00004040d00000100sv0000103Csd00003251* -- ID_MODEL_FROM_DATABASE=NC375i 1G w/NC524SFP 10G Module -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i 1G w/NC524SFP 10G Module) - - pci:v00004040d00000100sv0000103Csd0000705A* -- ID_MODEL_FROM_DATABASE=NC375i Integrated Quad Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i Integrated Quad Port Multifunction Gigabit Server Adapter) - - pci:v00004040d00000100sv0000103Csd0000705B* -- ID_MODEL_FROM_DATABASE=NC522SFP Dual Port 10GbE Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522SFP Dual Port 10GbE Server Adapter) - - pci:v00004040d00000100sv0000152Dsd0000896B* -- ID_MODEL_FROM_DATABASE=TG20 Dual Port 10GbE Server/Storage Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (TG20 Dual Port 10GbE Server/Storage Adapter) - - pci:v00004040d00000100sv00004040sd00000124* -- ID_MODEL_FROM_DATABASE=NX3031 Quad Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NX3031 Quad Port Gigabit Server Adapter) - - pci:v00004040d00000100sv00004040sd00000126* -- ID_MODEL_FROM_DATABASE=Dual Port SFP+ 10GbE Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (Dual Port SFP+ 10GbE Server Adapter) - - pci:v00004143* - ID_VENDOR_FROM_DATABASE=Digital Equipment Corp -@@ -53571,190 +53571,190 @@ pci:v00004444d00000016* - ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder - - pci:v00004444d00000016sv00000070sd00000003* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00000009* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00000801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00000807* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00004001* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00004009* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00004801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00004803* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00008003* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00008801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd0000C801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd0000E807* -- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (1st unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (1st unit)) - - pci:v00004444d00000016sv00000070sd0000E817* -- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (2nd unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (2nd unit)) - - pci:v00004444d00000016sv00000070sd0000FF92* -- ID_MODEL_FROM_DATABASE=WiNTV PVR-550 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WiNTV PVR-550) - - pci:v00004444d00000016sv00000270sd00000801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv0000104Dsd0000013D* -- ID_MODEL_FROM_DATABASE=ENX-26 TV Encoder -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (ENX-26 TV Encoder) - - pci:v00004444d00000016sv000010FCsd0000D038* -- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (1st unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (1st unit)) - - pci:v00004444d00000016sv000010FCsd0000D039* -- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (2nd unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (2nd unit)) - - pci:v00004444d00000016sv000012ABsd0000FFF3* -- ID_MODEL_FROM_DATABASE=MPG600 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) - - pci:v00004444d00000016sv000012ABsd0000FFFF* -- ID_MODEL_FROM_DATABASE=MPG600 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) - - pci:v00004444d00000016sv00001461sd0000C00A* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C00B* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C00C* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner)) - - pci:v00004444d00000016sv00001461sd0000C010* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C011* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C018* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C019* -- ID_MODEL_FROM_DATABASE=UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C01A* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C01B* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C030* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C031* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C032* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C033* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C034* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C035* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C03F* -- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) - - pci:v00004444d00000016sv00001461sd0000C136* -- ID_MODEL_FROM_DATABASE=M104 mini-PCI Analog TV -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M104 mini-PCI Analog TV) - - pci:v00004444d00000016sv00001461sd0000C20A* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C218* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C219* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C21A* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C21B* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C230* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C231* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C232* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C233* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C234* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C235* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C337* -- ID_MODEL_FROM_DATABASE=E106 AVerMedia AVerTV Video Capture -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (E106 AVerMedia AVerTV Video Capture) - - pci:v00004444d00000016sv00001461sd0000C439* -- ID_MODEL_FROM_DATABASE=M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner)) - - pci:v00004444d00000016sv00001461sd0000C5FF* -- ID_MODEL_FROM_DATABASE=C755 AVerTV Video Capture card (no tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C755 AVerTV Video Capture card (no tuner)) - - pci:v00004444d00000016sv00001461sd0000C6FF* -- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) - - pci:v00004444d00000016sv00001461sd0000C739* -- ID_MODEL_FROM_DATABASE=M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner)) - - pci:v00004444d00000016sv00009005sd00000092* -- ID_MODEL_FROM_DATABASE=VideOh! AVC-2010 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2010) - - pci:v00004444d00000016sv00009005sd00000093* -- ID_MODEL_FROM_DATABASE=VideOh! AVC-2410 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2410) - - pci:v00004444d00000803* - ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder - - pci:v00004444d00000803sv00000070sd00004000* -- ID_MODEL_FROM_DATABASE=WinTV PVR-350 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350) - - pci:v00004444d00000803sv00000070sd00004001* -- ID_MODEL_FROM_DATABASE=WinTV PVR-250 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-250) - - pci:v00004444d00000803sv00000070sd00004800* -- ID_MODEL_FROM_DATABASE=WinTV PVR-350 (V1) -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350 (V1)) - - pci:v00004444d00000803sv000012ABsd00000000* -- ID_MODEL_FROM_DATABASE=MPG160 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (MPG160) - - pci:v00004444d00000803sv00001461sd0000A3CE* -- ID_MODEL_FROM_DATABASE=M179 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) - - pci:v00004444d00000803sv00001461sd0000A3CF* -- ID_MODEL_FROM_DATABASE=M179 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) - - pci:v00004468* - ID_VENDOR_FROM_DATABASE=Bridgeport machines -@@ -53961,7 +53961,7 @@ pci:v00004A14d00005000* - ID_MODEL_FROM_DATABASE=NV5000SC - - pci:v00004A14d00005000sv00004A14sd00005000* -- ID_MODEL_FROM_DATABASE=RT8029-Based Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=NV5000SC (RT8029-Based Ethernet Adapter) - - pci:v00004B10* - ID_VENDOR_FROM_DATABASE=Buslogic Inc. -@@ -53976,16 +53976,16 @@ pci:v00004C53d00000000* - ID_MODEL_FROM_DATABASE=PLUSTEST device - - pci:v00004C53d00000000sv00004C53sd00003000* -- ID_MODEL_FROM_DATABASE=PLUSTEST card (PC104+) -+ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PC104+)) - - pci:v00004C53d00000000sv00004C53sd00003001* -- ID_MODEL_FROM_DATABASE=PLUSTEST card (PMC) -+ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PMC)) - - pci:v00004C53d00000001* - ID_MODEL_FROM_DATABASE=PLUSTEST-MM device - - pci:v00004C53d00000001sv00004C53sd00003002* -- ID_MODEL_FROM_DATABASE=PLUSTEST-MM card (PMC) -+ ID_MODEL_FROM_DATABASE=PLUSTEST-MM device (PLUSTEST-MM card (PMC)) - - pci:v00004CA1* - ID_VENDOR_FROM_DATABASE=Seanix Technology Inc -@@ -54222,13 +54222,13 @@ pci:v00005333d00008900* - ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] - - pci:v00005333d00008900sv00005333sd00008900* -- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX -+ ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] (86C775 Trio64V2/DX) - - pci:v00005333d00008901* - ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] - - pci:v00005333d00008901sv00005333sd00008901* -- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX, 86C785 Trio64V2/GX -+ ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] (86C775 Trio64V2/DX, 86C785 Trio64V2/GX) - - pci:v00005333d00008902* - ID_MODEL_FROM_DATABASE=Plato/PX -@@ -54240,13 +54240,13 @@ pci:v00005333d00008904* - ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] - - pci:v00005333d00008904sv00001014sd000000DB* -- ID_MODEL_FROM_DATABASE=Integrated Trio3D -+ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Integrated Trio3D) - - pci:v00005333d00008904sv00004843sd0000314A* -- ID_MODEL_FROM_DATABASE=Terminator 128/3D GLH -+ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Terminator 128/3D GLH) - - pci:v00005333d00008904sv00005333sd00008904* -- ID_MODEL_FROM_DATABASE=86C365 Trio3D AGP -+ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (86C365 Trio3D AGP) - - pci:v00005333d00008905* - ID_MODEL_FROM_DATABASE=Trio 64V+ family -@@ -54285,40 +54285,40 @@ pci:v00005333d00008A01* - ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] - - pci:v00005333d00008A01sv00000E11sd0000B032* -- ID_MODEL_FROM_DATABASE=ViRGE/GX -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/GX) - - pci:v00005333d00008A01sv000010B4sd00001617* -- ID_MODEL_FROM_DATABASE=Nitro 3D -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) - - pci:v00005333d00008A01sv000010B4sd00001717* -- ID_MODEL_FROM_DATABASE=Nitro 3D -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) - - pci:v00005333d00008A01sv00005333sd00008A01* -- ID_MODEL_FROM_DATABASE=ViRGE/DX -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/DX) - - pci:v00005333d00008A10* - ID_MODEL_FROM_DATABASE=ViRGE/GX2 - - pci:v00005333d00008A10sv00001092sd00008A10* -- ID_MODEL_FROM_DATABASE=Stealth 3D 4000 -+ ID_MODEL_FROM_DATABASE=ViRGE/GX2 (Stealth 3D 4000) - - pci:v00005333d00008A13* - ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] - - pci:v00005333d00008A13sv00005333sd00008A13* -- ID_MODEL_FROM_DATABASE=Trio3D/2X -+ ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] (Trio3D/2X) - - pci:v00005333d00008A20* - ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] - - pci:v00005333d00008A20sv00005333sd00008A20* -- ID_MODEL_FROM_DATABASE=86C391 Savage3D -+ ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] (86C391 Savage3D) - - pci:v00005333d00008A21* - ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] - - pci:v00005333d00008A21sv00005333sd00008A21* -- ID_MODEL_FROM_DATABASE=86C390 Savage3D/MV -+ ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] (86C390 Savage3D/MV) - - pci:v00005333d00008A22* - ID_MODEL_FROM_DATABASE=Savage 4 -@@ -54330,85 +54330,85 @@ pci:v00005333d00008A22sv00001033sd00008069* - ID_MODEL_FROM_DATABASE=Savage 4 - - pci:v00005333d00008A22sv00001033sd00008110* -- ID_MODEL_FROM_DATABASE=Savage 4 LT -+ ID_MODEL_FROM_DATABASE=Savage 4 (LT) - - pci:v00005333d00008A22sv0000105Dsd00000018* -- ID_MODEL_FROM_DATABASE=SR9 8Mb SDRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 8Mb SDRAM) - - pci:v00005333d00008A22sv0000105Dsd0000002A* -- ID_MODEL_FROM_DATABASE=SR9 Pro 16Mb SDRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 16Mb SDRAM) - - pci:v00005333d00008A22sv0000105Dsd0000003A* -- ID_MODEL_FROM_DATABASE=SR9 Pro 32Mb SDRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 32Mb SDRAM) - - pci:v00005333d00008A22sv0000105Dsd0000092F* -- ID_MODEL_FROM_DATABASE=SR9 Pro+ 16Mb SGRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro+ 16Mb SGRAM) - - pci:v00005333d00008A22sv00001092sd00004207* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004800* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004807* -- ID_MODEL_FROM_DATABASE=SpeedStar A90 -+ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A90) - - pci:v00005333d00008A22sv00001092sd00004808* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004809* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd0000480E* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004904* -- ID_MODEL_FROM_DATABASE=Stealth III S520 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S520) - - pci:v00005333d00008A22sv00001092sd00004905* -- ID_MODEL_FROM_DATABASE=SpeedStar A200 -+ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A200) - - pci:v00005333d00008A22sv00001092sd00004A09* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004A0B* -- ID_MODEL_FROM_DATABASE=Stealth III S540 Xtreme -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540 Xtreme) - - pci:v00005333d00008A22sv00001092sd00004A0F* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004E01* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001102sd0000101D* -- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 -+ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) - - pci:v00005333d00008A22sv00001102sd0000101E* -- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 -+ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) - - pci:v00005333d00008A22sv00005333sd00008100* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 100 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 100) - - pci:v00005333d00008A22sv00005333sd00008110* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 110 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 110) - - pci:v00005333d00008A22sv00005333sd00008125* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 125 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 125) - - pci:v00005333d00008A22sv00005333sd00008143* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 143 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 143) - - pci:v00005333d00008A22sv00005333sd00008A22* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4) - - pci:v00005333d00008A22sv00005333sd00008A2E* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 32bit -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 32bit) - - pci:v00005333d00008A22sv00005333sd00009125* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 125 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 125) - - pci:v00005333d00008A22sv00005333sd00009143* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 143 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 143) - - pci:v00005333d00008A23* - ID_MODEL_FROM_DATABASE=Savage 4 -@@ -54417,7 +54417,7 @@ pci:v00005333d00008A25* - ID_MODEL_FROM_DATABASE=ProSavage PM133 - - pci:v00005333d00008A25sv00000303sd00000303* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=ProSavage PM133 (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00005333d00008A26* - ID_MODEL_FROM_DATABASE=ProSavage KM133 -@@ -54447,16 +54447,16 @@ pci:v00005333d00008C12* - ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] - - pci:v00005333d00008C12sv00001014sd0000017F* -- ID_MODEL_FROM_DATABASE=ThinkPad T20/T22 -+ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (ThinkPad T20/T22) - - pci:v00005333d00008C12sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=86C584 SuperSavage/IXC Toshiba -+ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (86C584 SuperSavage/IXC Toshiba) - - pci:v00005333d00008C13* - ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] - - pci:v00005333d00008C13sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] (Magnia Z310) - - pci:v00005333d00008C22* - ID_MODEL_FROM_DATABASE=SuperSavage MX/128 -@@ -54483,7 +54483,7 @@ pci:v00005333d00008C2E* - ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR - - pci:v00005333d00008C2Esv00001014sd000001FC* -- ID_MODEL_FROM_DATABASE=ThinkPad T23 -+ ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR (ThinkPad T23) - - pci:v00005333d00008C2F* - ID_MODEL_FROM_DATABASE=SuperSavage IX/C DDR -@@ -54513,7 +54513,7 @@ pci:v00005333d00008E48* - ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] - - pci:v00005333d00008E48sv00005333sd00000130* -- ID_MODEL_FROM_DATABASE=Chrome S27 256M DDR2 -+ ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] (Chrome S27 256M DDR2) - - pci:v00005333d00009043* - ID_MODEL_FROM_DATABASE=Chrome 430 GT -@@ -54528,28 +54528,28 @@ pci:v00005333d00009102* - ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] - - pci:v00005333d00009102sv00001092sd00005932* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005934* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005952* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005954* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A35* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A37* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A55* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A57* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d0000CA00* - ID_MODEL_FROM_DATABASE=SonicVibes -@@ -54774,13 +54774,13 @@ pci:v00008086d00000044* - ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller - - pci:v00008086d00000044sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Aspire 7740G) - - pci:v00008086d00000044sv00001025sd00000487* -- ID_MODEL_FROM_DATABASE=TravelMate 5742 -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) - - pci:v00008086d00000044sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) - - pci:v00008086d00000045* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port -@@ -54789,7 +54789,7 @@ pci:v00008086d00000046* - ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller - - pci:v00008086d00000046sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) - - pci:v00008086d00000047* - ID_MODEL_FROM_DATABASE=Core Processor Secondary PCI Express Root Port -@@ -54816,202 +54816,202 @@ pci:v00008086d00000082* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] - - pci:v00008086d00000082sv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) - - pci:v00008086d00000082sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) - - pci:v00008086d00000082sv00008086sd00001307* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 BG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 BG) - - pci:v00008086d00000082sv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) - - pci:v00008086d00000082sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) - - pci:v00008086d00000083* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] - - pci:v00008086d00000083sv00008086sd00001205* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001206* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000083sv00008086sd00001225* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001226* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000083sv00008086sd00001305* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000083sv00008086sd00001325* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000084* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] - - pci:v00008086d00000084sv00008086sd00001215* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000084sv00008086sd00001216* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000084sv00008086sd00001315* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000084sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000085* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] - - pci:v00008086d00000085sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) - - pci:v00008086d00000085sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) - - pci:v00008086d00000087* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] - - pci:v00008086d00000087sv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) - - pci:v00008086d00000087sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) - - pci:v00008086d00000087sv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) - - pci:v00008086d00000087sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) - - pci:v00008086d00000089* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] - - pci:v00008086d00000089sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) - - pci:v00008086d00000089sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) - - pci:v00008086d0000008A* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] - - pci:v00008086d0000008Asv00008086sd00005305* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) - - pci:v00008086d0000008Asv00008086sd00005307* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) - - pci:v00008086d0000008Asv00008086sd00005325* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) - - pci:v00008086d0000008Asv00008086sd00005327* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) - - pci:v00008086d0000008B* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] - - pci:v00008086d0000008Bsv00008086sd00005315* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) - - pci:v00008086d0000008Bsv00008086sd00005317* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) - - pci:v00008086d00000090* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] - - pci:v00008086d00000090sv00008086sd00005211* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) - - pci:v00008086d00000090sv00008086sd00005215* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) - - pci:v00008086d00000090sv00008086sd00005216* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) - - pci:v00008086d00000091* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] - - pci:v00008086d00000091sv00008086sd00005201* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) - - pci:v00008086d00000091sv00008086sd00005205* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) - - pci:v00008086d00000091sv00008086sd00005206* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) - - pci:v00008086d00000091sv00008086sd00005207* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BG) - - pci:v00008086d00000091sv00008086sd00005221* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) - - pci:v00008086d00000091sv00008086sd00005225* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) - - pci:v00008086d00000091sv00008086sd00005226* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) - - pci:v00008086d00000100* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller - - pci:v00008086d00000100sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (XPS 8300) - - pci:v00008086d00000100sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (P8P67/P8H67 Series Motherboard) - - pci:v00008086d00000101* - ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port - - pci:v00008086d00000101sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (Vostro 3350) - - pci:v00008086d00000101sv0000106Bsd000000DC* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00000102* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller - - pci:v00008086d00000102sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (XPS 8300) - - pci:v00008086d00000102sv00001043sd00000102* -- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (P8H67 Series Motherboard) - - pci:v00008086d00000104* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller - - pci:v00008086d00000104sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Precision M4600) - - pci:v00008086d00000104sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3350) - - pci:v00008086d00000104sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3750) - - pci:v00008086d00000104sv0000106Bsd000000DC* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00000105* - ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port - - pci:v00008086d00000105sv0000106Bsd000000DC* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00000106* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller -@@ -55044,7 +55044,7 @@ pci:v00008086d00000116* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller - - pci:v00008086d00000116sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3750) - - pci:v00008086d00000122* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller -@@ -55053,64 +55053,64 @@ pci:v00008086d00000126* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller - - pci:v00008086d00000126sv00001028sd000004CC* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3350) - - pci:v00008086d00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller - - pci:v00008086d00000150sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) - - pci:v00008086d00000150sv00001849sd00000150* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) - - pci:v00008086d00000151* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - - pci:v00008086d00000151sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (N56VZ) - - pci:v00008086d00000151sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) - - pci:v00008086d00000151sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8H77-I Motherboard) - - pci:v00008086d00000151sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) - - pci:v00008086d00000152* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - - pci:v00008086d00000152sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8H77-I Motherboard) - - pci:v00008086d00000153* - ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem - - pci:v00008086d00000153sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem (Zenbook Prime UX31A) - - pci:v00008086d00000154* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller - - pci:v00008086d00000154sv00001025sd00000813* -- ID_MODEL_FROM_DATABASE=Aspire R7-571 -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Aspire R7-571) - - pci:v00008086d00000154sv0000103Csd000017F6* -- ID_MODEL_FROM_DATABASE=ProBook 4540s -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (ProBook 4540s) - - pci:v00008086d00000154sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (N56VZ) - - pci:v00008086d00000154sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Zenbook Prime UX31A) - - pci:v00008086d00000155* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - - pci:v00008086d00000155sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) - - pci:v00008086d00000156* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller -@@ -55119,10 +55119,10 @@ pci:v00008086d00000158* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller - - pci:v00008086d00000158sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (P8 series motherboard) - - pci:v00008086d00000158sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (Server Board S1200BTS) - - pci:v00008086d00000159* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port -@@ -55137,7 +55137,7 @@ pci:v00008086d0000015D* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - - pci:v00008086d0000015Dsv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) - - pci:v00008086d0000015E* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller -@@ -55146,22 +55146,22 @@ pci:v00008086d00000162* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - - pci:v00008086d00000162sv00001849sd00000162* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) - - pci:v00008086d00000166* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller - - pci:v00008086d00000166sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (Zenbook Prime UX31A) - - pci:v00008086d00000166sv00001043sd00002103* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (N56VZ) - - pci:v00008086d0000016A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - - pci:v00008086d0000016Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8B WS Motherboard) - - pci:v00008086d00000172* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller -@@ -55179,19 +55179,19 @@ pci:v00008086d00000326* - ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A - - pci:v00008086d00000326sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (ProLiant DL140 G2) - - pci:v00008086d00000326sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (CR11/VR11 Single Board Computer) - - pci:v00008086d00000327* - ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B - - pci:v00008086d00000327sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (ProLiant DL140 G2) - - pci:v00008086d00000327sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (CR11/VR11 Single Board Computer) - - pci:v00008086d00000329* - ID_MODEL_FROM_DATABASE=6700PXH PCI Express-to-PCI Bridge A -@@ -55260,7 +55260,7 @@ pci:v00008086d00000416* - ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller - - pci:v00008086d00000416sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller (ThinkPad T440p) - - pci:v00008086d0000041A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller -@@ -55365,16 +55365,16 @@ pci:v00008086d00000600* - ID_MODEL_FROM_DATABASE=RAID Controller - - pci:v00008086d00000600sv00008086sd00000136* -- ID_MODEL_FROM_DATABASE=SRCU31L -+ ID_MODEL_FROM_DATABASE=RAID Controller (SRCU31L) - - pci:v00008086d00000600sv00008086sd000001AF* -- ID_MODEL_FROM_DATABASE=SRCZCR -+ ID_MODEL_FROM_DATABASE=RAID Controller (SRCZCR) - - pci:v00008086d00000600sv00008086sd000001C1* -- ID_MODEL_FROM_DATABASE=ICP Vortex GDT8546RZ -+ ID_MODEL_FROM_DATABASE=RAID Controller (ICP Vortex GDT8546RZ) - - pci:v00008086d00000600sv00008086sd000001F7* -- ID_MODEL_FROM_DATABASE=SCRU32 -+ ID_MODEL_FROM_DATABASE=RAID Controller (SCRU32) - - pci:v00008086d0000061F* - ID_MODEL_FROM_DATABASE=80303 I/O Processor -@@ -55467,301 +55467,301 @@ pci:v00008086d00000885* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 - - pci:v00008086d00000885sv00008086sd00001305* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) - - pci:v00008086d00000885sv00008086sd00001307* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) - - pci:v00008086d00000885sv00008086sd00001325* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) - - pci:v00008086d00000885sv00008086sd00001327* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) - - pci:v00008086d00000886* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 - - pci:v00008086d00000886sv00008086sd00001315* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) - - pci:v00008086d00000886sv00008086sd00001317* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) - - pci:v00008086d00000887* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 - - pci:v00008086d00000887sv00008086sd00004062* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) - - pci:v00008086d00000887sv00008086sd00004462* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) - - pci:v00008086d00000888* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 - - pci:v00008086d00000888sv00008086sd00004262* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) - - pci:v00008086d0000088E* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 - - pci:v00008086d0000088Esv00008086sd00004060* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) - - pci:v00008086d0000088Esv00008086sd00004460* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) - - pci:v00008086d0000088F* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 - - pci:v00008086d0000088Fsv00008086sd00004260* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) - - pci:v00008086d00000890* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 - - pci:v00008086d00000890sv00008086sd00004022* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000890sv00008086sd00004422* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000890sv00008086sd00004822* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000891* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 - - pci:v00008086d00000891sv00008086sd00004222* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000892* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 - - pci:v00008086d00000892sv00008086sd00000062* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) - - pci:v00008086d00000892sv00008086sd00000462* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) - - pci:v00008086d00000893* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 - - pci:v00008086d00000893sv00008086sd00000262* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) - - pci:v00008086d00000894* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 - - pci:v00008086d00000894sv00008086sd00000022* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000894sv00008086sd00000422* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000894sv00008086sd00000822* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000895* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 - - pci:v00008086d00000895sv00008086sd00000222* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000896* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 - - pci:v00008086d00000896sv00008086sd00005005* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) - - pci:v00008086d00000896sv00008086sd00005007* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) - - pci:v00008086d00000896sv00008086sd00005025* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) - - pci:v00008086d00000896sv00008086sd00005027* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) - - pci:v00008086d00000897* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 - - pci:v00008086d00000897sv00008086sd00005015* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) - - pci:v00008086d00000897sv00008086sd00005017* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) - - pci:v00008086d000008AE* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 - - pci:v00008086d000008AEsv00008086sd00001005* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) - - pci:v00008086d000008AEsv00008086sd00001007* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) - - pci:v00008086d000008AEsv00008086sd00001025* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) - - pci:v00008086d000008AEsv00008086sd00001027* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) - - pci:v00008086d000008AF* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 - - pci:v00008086d000008AFsv00008086sd00001015* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) - - pci:v00008086d000008AFsv00008086sd00001017* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) - - pci:v00008086d000008B1* - ID_MODEL_FROM_DATABASE=Wireless 7260 - - pci:v00008086d000008B1sv00008086sd00004060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004062* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004160* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004162* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004460* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004462* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000486E* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004870* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004A6C* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004A6E* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004A70* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000C020* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C062* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000C160* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C162* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000C420* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C460* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C462* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B2* - ID_MODEL_FROM_DATABASE=Wireless 7260 - - pci:v00008086d000008B2sv00008086sd00004220* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd00004260* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd00004262* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd00004270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B2sv00008086sd0000C220* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd0000C260* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd0000C262* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd0000C270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B3* - ID_MODEL_FROM_DATABASE=Wireless 3160 - - pci:v00008086d000008B3sv00008086sd00000060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-N 3160) - - pci:v00008086d000008B3sv00008086sd00000062* -- ID_MODEL_FROM_DATABASE=Wireless-N 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless-N 3160) - - pci:v00008086d000008B3sv00008086sd00000070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B3sv00008086sd00000170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B3sv00008086sd00000470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B3sv00008086sd00008060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless N-3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless N-3160) - - pci:v00008086d000008B3sv00008086sd00008062* -- ID_MODEL_FROM_DATABASE=Wireless N-3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless N-3160) - - pci:v00008086d000008B3sv00008086sd00008070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008B3sv00008086sd00008170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008B3sv00008086sd00008470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008B4* - ID_MODEL_FROM_DATABASE=Wireless 3160 - - pci:v00008086d000008B4sv00008086sd00000270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B4sv00008086sd00008270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008CF* - ID_MODEL_FROM_DATABASE=Atom Processor Z2760 Integrated Graphics Controller -@@ -55770,106 +55770,106 @@ pci:v00008086d0000095A* - ID_MODEL_FROM_DATABASE=Wireless 7265 - - pci:v00008086d0000095Asv00008086sd00001010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005000* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005002* -- ID_MODEL_FROM_DATABASE=Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd0000500A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005012* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005020* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd0000502A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005090* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005100* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd0000510A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005110* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005112* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005190* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005400* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005410* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005420* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005490* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005590* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009012* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009110* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009112* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009210* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009310* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009410* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009510* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095B* - ID_MODEL_FROM_DATABASE=Wireless 7265 - - pci:v00008086d0000095Bsv00008086sd00005200* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Bsv00008086sd00005202* -- ID_MODEL_FROM_DATABASE=Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) - - pci:v00008086d0000095Bsv00008086sd00005210* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Bsv00008086sd00005290* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Bsv00008086sd00005302* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Bsv00008086sd00005310* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d00000960* - ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor/Bridge -@@ -55884,7 +55884,7 @@ pci:v00008086d00000A04* - ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller - - pci:v00008086d00000A04sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller (ThinkPad X240) - - pci:v00008086d00000A06* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller -@@ -55893,13 +55893,13 @@ pci:v00008086d00000A0C* - ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller - - pci:v00008086d00000A0Csv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller (ThinkPad X240) - - pci:v00008086d00000A16* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - - pci:v00008086d00000A16sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller (ThinkPad X240) - - pci:v00008086d00000A22* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller -@@ -55917,7 +55917,7 @@ pci:v00008086d00000BE1* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller - - pci:v00008086d00000BE1sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller (D270S/D250S Motherboard) - - pci:v00008086d00000BE2* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller -@@ -55980,7 +55980,7 @@ pci:v00008086d00000BF5* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller - - pci:v00008086d00000BF5sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller (D270S/D250S Motherboard) - - pci:v00008086d00000BF6* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller -@@ -55998,10 +55998,10 @@ pci:v00008086d00000C04* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller - - pci:v00008086d00000C04sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ZBook 15) - - pci:v00008086d00000C04sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ThinkPad T440p) - - pci:v00008086d00000C05* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller -@@ -56016,7 +56016,7 @@ pci:v00008086d00000C0C* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller - - pci:v00008086d00000C0Csv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (ThinkPad T440p) - - pci:v00008086d00000C46* - ID_MODEL_FROM_DATABASE=Atom Processor S1200 PCI Express Root Port 1 -@@ -56787,34 +56787,34 @@ pci:v00008086d00001000* - ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001000sv00000E11sd0000B0DF* -- ID_MODEL_FROM_DATABASE=NC6132 Gigabit Ethernet Adapter (1000-SX) -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6132 Gigabit Ethernet Adapter (1000-SX)) - - pci:v00008086d00001000sv00000E11sd0000B0E0* -- ID_MODEL_FROM_DATABASE=NC6133 Gigabit Ethernet Adapter (1000-LX) -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6133 Gigabit Ethernet Adapter (1000-LX)) - - pci:v00008086d00001000sv00000E11sd0000B123* -- ID_MODEL_FROM_DATABASE=NC6134 Gigabit Ethernet Adapter (1000-LX) -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6134 Gigabit Ethernet Adapter (1000-LX)) - - pci:v00008086d00001000sv00001014sd00000119* -- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) - - pci:v00008086d00001000sv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (PRO/1000 Gigabit Server Adapter) - - pci:v00008086d00001001* - ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001001sv00000E11sd0000004A* -- ID_MODEL_FROM_DATABASE=NC6136 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (NC6136 Gigabit Server Adapter) - - pci:v00008086d00001001sv00001014sd000001EA* -- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) - - pci:v00008086d00001001sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) - - pci:v00008086d00001001sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) - - pci:v00008086d00001002* - ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II -@@ -56823,64 +56823,64 @@ pci:v00008086d00001002sv00008086sd0000200E* - ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II - - pci:v00008086d00001002sv00008086sd00002013* -- ID_MODEL_FROM_DATABASE=Pro 100 SR Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 SR Mobile Combo Adapter) - - pci:v00008086d00001002sv00008086sd00002017* -- ID_MODEL_FROM_DATABASE=Pro 100 S Combo Mobile Adapter -+ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 S Combo Mobile Adapter) - - pci:v00008086d00001004* - ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001004sv00000E11sd00000049* -- ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7132 Gigabit Upgrade Module) - - pci:v00008086d00001004sv00000E11sd0000B1A4* -- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7131 Gigabit Server Adapter) - - pci:v00008086d00001004sv00001014sd000010F2* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (Gigabit Ethernet Server Adapter) - - pci:v00008086d00001004sv00008086sd00001004* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) - - pci:v00008086d00001004sv00008086sd00002004* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) - - pci:v00008086d00001008* - ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001008sv00001014sd00000269* -- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) - - pci:v00008086d00001008sv00001028sd0000011B* -- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PowerEdge 1650/2550) - - pci:v00008086d00001008sv00001028sd0000011C* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) - - pci:v00008086d00001008sv00008086sd00001107* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) - - pci:v00008086d00001008sv00008086sd00002107* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) - - pci:v00008086d00001008sv00008086sd00002110* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Desktop Adapter) - - pci:v00008086d00001008sv00008086sd00003108* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) - - pci:v00008086d00001009* - ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001009sv00001014sd00000268* -- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) - - pci:v00008086d00001009sv00008086sd00001109* -- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) - - pci:v00008086d00001009sv00008086sd00002109* -- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) - - pci:v00008086d0000100A* - ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller -@@ -56889,286 +56889,286 @@ pci:v00008086d0000100C* - ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000100Csv00008086sd00001112* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) - - pci:v00008086d0000100Csv00008086sd00002112* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) - - pci:v00008086d0000100D* - ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) - - pci:v00008086d0000100Dsv00001028sd00000123* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (PRO/1000 XT Network Connection) - - pci:v00008086d0000100Dsv00001079sd0000891F* -- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) - - pci:v00008086d0000100Dsv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (CT8 mainboard) - - pci:v00008086d0000100Dsv00008086sd0000110D* -- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) - - pci:v00008086d0000100E* - ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller - - pci:v00008086d0000100Esv00001014sd00000265* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Esv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Esv00001014sd0000026A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Esv00001028sd0000002E* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX260) - - pci:v00008086d0000100Esv00001028sd00000134* -- ID_MODEL_FROM_DATABASE=PowerEdge 600SC -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PowerEdge 600SC) - - pci:v00008086d0000100Esv00001028sd00000151* -- ID_MODEL_FROM_DATABASE=Optiplex GX270 -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX270) - - pci:v00008086d0000100Esv0000107Bsd00008920* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d0000100Esv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (QEMU Virtual Machine) - - pci:v00008086d0000100Esv00008086sd0000001E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d0000100Esv00008086sd0000002E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d0000100Esv00008086sd00001376* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000100Esv00008086sd00001476* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000100F* - ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000100Fsv00001014sd00000269* -- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) - - pci:v00008086d0000100Fsv00001014sd0000028E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Fsv000015ADsd00000750* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Single Port Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter) - - pci:v00008086d0000100Fsv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Fsv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Server Adapter) - - pci:v00008086d00001010* - ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001010sv00000E11sd000000DB* -- ID_MODEL_FROM_DATABASE=NC7170 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (NC7170 Gigabit Server Adapter) - - pci:v00008086d00001010sv00001014sd0000027C* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Adapter) - - pci:v00008086d00001010sv000015ADsd00000760* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Adapter) - - pci:v00008086d00001010sv000018FBsd00007872* -- ID_MODEL_FROM_DATABASE=RESlink-X -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (RESlink-X) - - pci:v00008086d00001010sv00001FC1sd00000026* -- ID_MODEL_FROM_DATABASE=Niagara 2260 Bypass Card -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (Niagara 2260 Bypass Card) - - pci:v00008086d00001010sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CT8 mainboard) - - pci:v00008086d00001010sv00004C53sd000010A0* -- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CA3/CR3 mainboard) - - pci:v00008086d00001010sv00008086sd00001011* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d00001010sv00008086sd00001012* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d00001010sv00008086sd0000101A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Connection) - - pci:v00008086d00001010sv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (SE7501HG2 Mainboard) - - pci:v00008086d00001011* - ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001011sv00001014sd00000268* -- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) - - pci:v00008086d00001011sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter) - - pci:v00008086d00001011sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter (LX) -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter (LX)) - - pci:v00008086d00001012* - ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001012sv00000E11sd000000DC* -- ID_MODEL_FROM_DATABASE=NC6170 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (NC6170 Gigabit Server Adapter) - - pci:v00008086d00001012sv00008086sd00001012* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Dual Port Server Adapter) - - pci:v00008086d00001013* - ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller - - pci:v00008086d00001013sv00008086sd00000013* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001013sv00008086sd00001013* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001013sv00008086sd00001113* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d00001014* - ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller - - pci:v00008086d00001014sv00008086sd00000014* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Connection -+ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Desktop Connection) - - pci:v00008086d00001014sv00008086sd00001014* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001015* - ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) - - pci:v00008086d00001015sv00008086sd00001015* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001016* - ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) - - pci:v00008086d00001016sv00001014sd0000052C* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001016sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001016sv00008086sd00001016* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001017* - ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller - - pci:v00008086d00001017sv00008086sd00001017* -- ID_MODEL_FROM_DATABASE=PR0/1000 MT Desktop Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (PR0/1000 MT Desktop Connection) - - pci:v00008086d00001018* - ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller - - pci:v00008086d00001018sv00008086sd00001018* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001019* - ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller - - pci:v00008086d00001019sv00001458sd00001019* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d00001019sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Intel Gigabit Ethernet (Kenai II) -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel Gigabit Ethernet (Kenai II)) - - pci:v00008086d00001019sv00008086sd00001019* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Desktop Connection -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (PRO/1000 CT Desktop Connection) - - pci:v00008086d00001019sv00008086sd0000301F* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D865PERL mainboard) - - pci:v00008086d00001019sv00008086sd00003025* -- ID_MODEL_FROM_DATABASE=D875PBZ motherboard -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D875PBZ motherboard) - - pci:v00008086d00001019sv00008086sd0000302C* -- ID_MODEL_FROM_DATABASE=Intel 82865G Mainboard (D865GBF) -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel 82865G Mainboard (D865GBF)) - - pci:v00008086d00001019sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (S875WP1-E mainboard) - - pci:v00008086d0000101A* - ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) - - pci:v00008086d0000101Asv00008086sd0000101A* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) (PRO/1000 CT Mobile Connection) - - pci:v00008086d0000101D* - ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller - - pci:v00008086d0000101Dsv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (PRO/1000 MT Quad Port Server Adapter) - - pci:v00008086d0000101E* - ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) - - pci:v00008086d0000101Esv00001014sd00000549* -- ID_MODEL_FROM_DATABASE=Thinkpad -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (Thinkpad) - - pci:v00008086d0000101Esv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d0000101Esv00008086sd0000101E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001026* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - - pci:v00008086d00001026sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d00001026sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision 470) - - pci:v00008086d00001026sv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) - - pci:v00008086d00001026sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) - - pci:v00008086d00001026sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) - - pci:v00008086d00001026sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 GT Server Adapter) - - pci:v00008086d00001026sv00008086sd00001026* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) - - pci:v00008086d00001027* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - - pci:v00008086d00001027sv0000103Csd00003103* -- ID_MODEL_FROM_DATABASE=NC310F PCI-X Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (NC310F PCI-X Gigabit Server Adapter) - - pci:v00008086d00001027sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) - - pci:v00008086d00001027sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) - - pci:v00008086d00001027sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) - - pci:v00008086d00001027sv00008086sd00001027* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter) - - pci:v00008086d00001028* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - - pci:v00008086d00001028sv00008086sd00001028* -- ID_MODEL_FROM_DATABASE=PRO/1000 MB Server Connection -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MB Server Connection) - - pci:v00008086d00001029* - ID_MODEL_FROM_DATABASE=82559 Ethernet Controller -@@ -57180,31 +57180,31 @@ pci:v00008086d00001031* - ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller - - pci:v00008086d00001031sv00001014sd00000209* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (ThinkPad A/T/X Series) - - pci:v00008086d00001031sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00001031sv0000104Dsd0000813C* -- ID_MODEL_FROM_DATABASE=Vaio PCG-GRV616G -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GRV616G) - - pci:v00008086d00001031sv0000107Bsd00005350* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C000* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C003* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (vpr Matrix 170B4) - - pci:v00008086d00001032* - ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE Ethernet Controller -@@ -57228,16 +57228,16 @@ pci:v00008086d00001038* - ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller - - pci:v00008086d00001038sv00000E11sd00000098* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller (Evo N600c) - - pci:v00008086d00001039* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller - - pci:v00008086d00001039sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (NetVista A30p) - - pci:v00008086d00001039sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH1 -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (PC8 onboard ethernet ETH1) - - pci:v00008086d0000103A* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (CNR) Ethernet Controller -@@ -57252,13 +57252,13 @@ pci:v00008086d0000103D* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller - - pci:v00008086d0000103Dsv00001014sd00000522* -- ID_MODEL_FROM_DATABASE=ThinkPad R40 -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (ThinkPad R40) - - pci:v00008086d0000103Dsv00001028sd00002002* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (Latitude D500) - - pci:v00008086d0000103Dsv00008086sd0000103D* -- ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (82562EZ 10/100 Ethernet Controller) - - pci:v00008086d0000103E* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VM (MOB) Ethernet Controller -@@ -57267,43 +57267,43 @@ pci:v00008086d00001040* - ID_MODEL_FROM_DATABASE=536EP Data Fax Modem - - pci:v00008086d00001040sv000016BEsd00001040* -- ID_MODEL_FROM_DATABASE=V.9X DSP Data Fax Modem -+ ID_MODEL_FROM_DATABASE=536EP Data Fax Modem (V.9X DSP Data Fax Modem) - - pci:v00008086d00001043* - ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter - - pci:v00008086d00001043sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (tc1100 tablet) - - pci:v00008086d00001043sv00008086sd00002522* -- ID_MODEL_FROM_DATABASE=Samsung X10/P30 integrated WLAN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Samsung X10/P30 integrated WLAN) - - pci:v00008086d00001043sv00008086sd00002527* -- ID_MODEL_FROM_DATABASE=MIM2000/Centrino -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (MIM2000/Centrino) - - pci:v00008086d00001043sv00008086sd00002561* -- ID_MODEL_FROM_DATABASE=Dell Latitude D800 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Dell Latitude D800) - - pci:v00008086d00001043sv00008086sd00002581* -- ID_MODEL_FROM_DATABASE=Toshiba Satellite M10 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Toshiba Satellite M10) - - pci:v00008086d00001048* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d00001048sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001048sv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001049* - ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection - - pci:v00008086d00001049sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (Compaq 6910p) - - pci:v00008086d00001049sv000017AAsd000020B9* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (ThinkPad T61/R61) - - pci:v00008086d0000104A* - ID_MODEL_FROM_DATABASE=82566DM Gigabit Network Connection -@@ -57321,22 +57321,22 @@ pci:v00008086d00001050* - ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller - - pci:v00008086d00001050sv00001028sd0000019D* -- ID_MODEL_FROM_DATABASE=Dimension 3000 -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Dimension 3000) - - pci:v00008086d00001050sv00001462sd0000728C* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d00001050sv00001462sd0000758C* -- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (MS-6758 (875P Neo)) - - pci:v00008086d00001050sv00008086sd00003020* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (D865PERL mainboard) - - pci:v00008086d00001050sv00008086sd0000302F* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Desktop Board D865GBF) - - pci:v00008086d00001050sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (S875WP1-E mainboard) - - pci:v00008086d00001051* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) integrated LAN Controller -@@ -57369,70 +57369,70 @@ pci:v00008086d0000105E* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d0000105Esv0000103Csd00007044* -- ID_MODEL_FROM_DATABASE=NC360T PCI Express Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (NC360T PCI Express Dual Port Gigabit Server Adapter) - - pci:v00008086d0000105Esv0000103Csd0000704E* -- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T (PCIe) [AD337A] -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-T (PCIe) [AD337A]) - - pci:v00008086d0000105Esv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d0000105Esv00001775sd00006003* -- ID_MODEL_FROM_DATABASE=Telum GE-QT -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Telum GE-QT) - - pci:v00008086d0000105Esv000018DFsd00001214* -- ID_MODEL_FROM_DATABASE=2x 1GbE, PCIe x1, dual Intel 82571EB chips -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (2x 1GbE, PCIe x1, dual Intel 82571EB chips) - - pci:v00008086d0000105Esv00008086sd0000005E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Connection) - - pci:v00008086d0000105Esv00008086sd0000105E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Network Connection) - - pci:v00008086d0000105Esv00008086sd000010D5* -- ID_MODEL_FROM_DATABASE=82571PT Gigabit PT Quad Port Server ExpressModule -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (82571PT Gigabit PT Quad Port Server ExpressModule) - - pci:v00008086d0000105Esv00008086sd0000115E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) - - pci:v00008086d0000105Esv00008086sd0000125E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) - - pci:v00008086d0000105Esv00008086sd0000135E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) - - pci:v00008086d0000105F* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d0000105Fsv0000103Csd0000704F* -- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-SX (PCIe) [AD338A] -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-SX (PCIe) [AD338A]) - - pci:v00008086d0000105Fsv00008086sd0000005A* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d0000105Fsv00008086sd0000115F* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d0000105Fsv00008086sd0000125F* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d0000105Fsv00008086sd0000135F* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d00001060* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d00001060sv00008086sd00000060* -- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) - - pci:v00008086d00001060sv00008086sd00001060* -- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) - - pci:v00008086d00001064* - ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller - - pci:v00008086d00001064sv00001043sd000080F8* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller (P5GD1-VW Mainboard) - - pci:v00008086d00001065* - ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller -@@ -57459,148 +57459,148 @@ pci:v00008086d00001075* - ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller - - pci:v00008086d00001075sv00001028sd00000165* -- ID_MODEL_FROM_DATABASE=PowerEdge 750 -+ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PowerEdge 750) - - pci:v00008086d00001075sv00008086sd00000075* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection -+ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) - - pci:v00008086d00001075sv00008086sd00001075* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection -+ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) - - pci:v00008086d00001076* - ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller - - pci:v00008086d00001076sv00001028sd00000165* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00001028sd0000106D* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00008086sd00000076* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00008086sd00001076* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00008086sd00001176* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d00001076sv00008086sd00001276* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Adapter -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Adapter) - - pci:v00008086d00001077* - ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller - - pci:v00008086d00001077sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001077sv00008086sd00000077* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001077sv00008086sd00001077* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001078* - ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller - - pci:v00008086d00001078sv00008086sd00001078* -- ID_MODEL_FROM_DATABASE=82541ER-based Network Connection -+ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (82541ER-based Network Connection) - - pci:v00008086d00001079* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d00001079sv0000103Csd000012A6* -- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T [A9900A] -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000Base-T [A9900A]) - - pci:v00008086d00001079sv0000103Csd000012CF* -- ID_MODEL_FROM_DATABASE=Core Dual Port 1000Base-T [AB352A] -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Core Dual Port 1000Base-T [AB352A]) - - pci:v00008086d00001079sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (V5D Single Board Computer Gigabit Ethernet) - - pci:v00008086d00001079sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CE9) - - pci:v00008086d00001079sv00001FC1sd00000027* -- ID_MODEL_FROM_DATABASE=Niagara 2261 Failover NIC -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Niagara 2261 Failover NIC) - - pci:v00008086d00001079sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d00001079sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CL9 mainboard) - - pci:v00008086d00001079sv00008086sd00000079* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) - - pci:v00008086d00001079sv00008086sd00001079* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) - - pci:v00008086d00001079sv00008086sd00001179* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d00001079sv00008086sd0000117A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d0000107A* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d0000107Asv0000103Csd000012A8* -- ID_MODEL_FROM_DATABASE=Dual Port 1000base-SX [A9899A] -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000base-SX [A9899A]) - - pci:v00008086d0000107Asv00008086sd0000107A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) - - pci:v00008086d0000107Asv00008086sd0000127A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) - - pci:v00008086d0000107B* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d0000107Bsv00008086sd0000007B* -- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) - - pci:v00008086d0000107Bsv00008086sd0000107B* -- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) - - pci:v00008086d0000107C* - ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller - - pci:v00008086d0000107Csv00008086sd00001376* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000107Csv00008086sd00001476* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000107D* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000107Dsv00008086sd00001082* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) - - pci:v00008086d0000107Dsv00008086sd00001084* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) - - pci:v00008086d0000107Dsv00008086sd00001092* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) - - pci:v00008086d0000107E* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) - - pci:v00008086d0000107Esv00008086sd00001084* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) - - pci:v00008086d0000107Esv00008086sd00001085* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) - - pci:v00008086d0000107Esv00008086sd00001094* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) - - pci:v00008086d0000107F* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller -@@ -57636,16 +57636,16 @@ pci:v00008086d0000108A* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d0000108Asv00008086sd0000108A* -- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) - - pci:v00008086d0000108Asv00008086sd0000118A* -- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) - - pci:v00008086d0000108B* - ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000108Bsv00001462sd0000176C* -- ID_MODEL_FROM_DATABASE=on board on MSI 945P - NEO (MS-7176) -+ ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) (on board on MSI 945P - NEO (MS-7176)) - - pci:v00008086d0000108C* - ID_MODEL_FROM_DATABASE=82573E Gigabit Ethernet Controller (Copper) -@@ -57675,13 +57675,13 @@ pci:v00008086d00001096* - ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001096sv000015D9sd00001096* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Motherboard) - - pci:v00008086d00001096sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (X7DVL-E-O motherboard) - - pci:v00008086d00001096sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Intel S5000PSLSATA Server Board) - - pci:v00008086d00001097* - ID_MODEL_FROM_DATABASE=631xESB/632xESB DPT LAN Controller (Fiber) -@@ -57693,28 +57693,28 @@ pci:v00008086d00001099* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001099sv00008086sd00001099* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) - - pci:v00008086d0000109A* - ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller - - pci:v00008086d0000109Asv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=PRO/1000 PL -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL) - - pci:v00008086d0000109Asv000017AAsd00002001* -- ID_MODEL_FROM_DATABASE=ThinkPad T60 -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad T60) - - pci:v00008086d0000109Asv000017AAsd0000207E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad X60/X60s) - - pci:v00008086d0000109Asv00008086sd0000109A* -- ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL Network Connection) - - pci:v00008086d0000109Asv00008086sd0000309C* -- ID_MODEL_FROM_DATABASE=Desktop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D945GTP) - - pci:v00008086d0000109Asv00008086sd000030A5* -- ID_MODEL_FROM_DATABASE=Desktop Board D975XBX -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D975XBX) - - pci:v00008086d0000109B* - ID_MODEL_FROM_DATABASE=82546GB PRO/1000 GF Quad Port Server Adapter -@@ -57723,10 +57723,10 @@ pci:v00008086d0000109E* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d0000109Esv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) - - pci:v00008086d0000109Esv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) - - pci:v00008086d000010A0* - ID_MODEL_FROM_DATABASE=82571EB PRO/1000 AT Quad Port Bypass Adapter -@@ -57738,19 +57738,19 @@ pci:v00008086d000010A4* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d000010A4sv00008086sd000010A4* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) - - pci:v00008086d000010A4sv00008086sd000011A4* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) - - pci:v00008086d000010A5* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) - - pci:v00008086d000010A5sv00008086sd000010A5* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) - - pci:v00008086d000010A5sv00008086sd000010A6* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) - - pci:v00008086d000010A6* - ID_MODEL_FROM_DATABASE=82599EB 10-Gigabit Dummy Function -@@ -57759,7 +57759,7 @@ pci:v00008086d000010A7* - ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection - - pci:v00008086d000010A7sv00008086sd000010A8* -- ID_MODEL_FROM_DATABASE=82575EB Gigabit Riser Card -+ ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection (82575EB Gigabit Riser Card) - - pci:v00008086d000010A9* - ID_MODEL_FROM_DATABASE=82575EB Gigabit Backplane Connection -@@ -57780,13 +57780,13 @@ pci:v00008086d000010B5* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) - - pci:v00008086d000010B5sv0000103Csd00003109* -- ID_MODEL_FROM_DATABASE=NC340T PCI-X Quad-port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (NC340T PCI-X Quad-port Gigabit Server Adapter) - - pci:v00008086d000010B5sv00008086sd00001099* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) - - pci:v00008086d000010B5sv00008086sd00001199* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) - - pci:v00008086d000010B6* - ID_MODEL_FROM_DATABASE=82598 10GbE PCI-Express Ethernet Controller -@@ -57795,13 +57795,13 @@ pci:v00008086d000010B9* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) - - pci:v00008086d000010B9sv0000103Csd0000704A* -- ID_MODEL_FROM_DATABASE=HP 110T PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (HP 110T PCIe Gigabit Server Adapter) - - pci:v00008086d000010B9sv00008086sd00001083* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) - - pci:v00008086d000010B9sv00008086sd00001093* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) - - pci:v00008086d000010BA* - ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) -@@ -57813,22 +57813,22 @@ pci:v00008086d000010BC* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) - - pci:v00008086d000010BCsv0000103Csd0000704B* -- ID_MODEL_FROM_DATABASE=NC364T PCI Express Quad Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (NC364T PCI Express Quad Port Gigabit Server Adapter) - - pci:v00008086d000010BCsv0000108Esd000011BC* -- ID_MODEL_FROM_DATABASE=x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter) - - pci:v00008086d000010BCsv00008086sd000010BC* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) - - pci:v00008086d000010BCsv00008086sd000011BC* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) - - pci:v00008086d000010BD* - ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection - - pci:v00008086d000010BDsv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection (OptiPlex 755) - - pci:v00008086d000010BF* - ID_MODEL_FROM_DATABASE=82567LF Gigabit Network Connection -@@ -57837,7 +57837,7 @@ pci:v00008086d000010C0* - ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection - - pci:v00008086d000010C0sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection (Inspiron 530) - - pci:v00008086d000010C2* - ID_MODEL_FROM_DATABASE=82562G-2 10/100 Network Connection -@@ -57855,67 +57855,67 @@ pci:v00008086d000010C6* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection - - pci:v00008086d000010C6sv00008086sd0000A05F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) - - pci:v00008086d000010C6sv00008086sd0000A15F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) - - pci:v00008086d000010C7* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection - - pci:v00008086d000010C7sv00001014sd0000037F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C7sv00001014sd00000380* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) - - pci:v00008086d000010C7sv00008086sd0000A05F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C7sv00008086sd0000A15F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C7sv00008086sd0000A16F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C8* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection - - pci:v00008086d000010C8sv00008086sd0000A10C* -- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) - - pci:v00008086d000010C8sv00008086sd0000A11C* -- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) - - pci:v00008086d000010C8sv00008086sd0000A12C* -- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) - - pci:v00008086d000010C9* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010C9sv0000103Csd000031EF* -- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) - - pci:v00008086d000010C9sv0000103Csd0000323F* -- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) - - pci:v00008086d000010C9sv000010A9sd00008028* -- ID_MODEL_FROM_DATABASE=UV-BaseIO dual-port GbE -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (UV-BaseIO dual-port GbE) - - pci:v00008086d000010C9sv000013A3sd00000037* -- ID_MODEL_FROM_DATABASE=DS4100 Secure Multi-Gigabit Server Adapter with Compression -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (DS4100 Secure Multi-Gigabit Server Adapter with Compression) - - pci:v00008086d000010C9sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (H8DGU) - - pci:v00008086d000010C9sv00008086sd0000A01C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) - - pci:v00008086d000010C9sv00008086sd0000A03C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) - - pci:v00008086d000010C9sv00008086sd0000A04C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) - - pci:v00008086d000010CA* - ID_MODEL_FROM_DATABASE=82576 Virtual Function -@@ -57936,34 +57936,34 @@ pci:v00008086d000010D3* - ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection - - pci:v00008086d000010D3sv0000103Csd00003250* -- ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (NC112T PCI Express single Port Gigabit Server Adapter) - - pci:v00008086d000010D3sv00001043sd00008369* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Motherboard) - - pci:v00008086d000010D3sv000010A9sd00008029* -- ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Prism XL Single Port Gigabit Ethernet) - - pci:v00008086d000010D3sv000015D9sd0000060A* -- ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (X7SPA-H/X7SPA-HF Motherboard) - - pci:v00008086d000010D3sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (C7SIM-Q Motherboard) - - pci:v00008086d000010D3sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT2 Desktop Adapter) - - pci:v00008086d000010D3sv00008086sd0000357A* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Server Board S1200BTS) - - pci:v00008086d000010D3sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT Desktop Adapter) - - pci:v00008086d000010D3sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC1-GROOVE) - - pci:v00008086d000010D3sv0000E4BFsd000050C2* -- ID_MODEL_FROM_DATABASE=PC2-LIMBO -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC2-LIMBO) - - pci:v00008086d000010D4* - ID_MODEL_FROM_DATABASE=Matrox Concord GE (customized Intel 82574) -@@ -57975,13 +57975,13 @@ pci:v00008086d000010D6* - ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection - - pci:v00008086d000010D6sv00008086sd000010D6* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010D6sv00008086sd0000145A* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010D6sv00008086sd0000147A* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010D8* - ID_MODEL_FROM_DATABASE=82599EB 10 Gigabit Unprogrammed -@@ -57990,13 +57990,13 @@ pci:v00008086d000010D9* - ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter - - pci:v00008086d000010D9sv0000103Csd00001716* -- ID_MODEL_FROM_DATABASE=NC360m Dual Port 1GbE BL-c Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter (NC360m Dual Port 1GbE BL-c Adapter) - - pci:v00008086d000010DA* - ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter - - pci:v00008086d000010DAsv0000103Csd00001717* -- ID_MODEL_FROM_DATABASE=NC364m Quad Port 1GbE BL-c Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter (NC364m Quad Port 1GbE BL-c Adapter) - - pci:v00008086d000010DB* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit Dual Port Network Connection -@@ -58014,13 +58014,13 @@ pci:v00008086d000010E1* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection - - pci:v00008086d000010E1sv00008086sd0000A15F* -- ID_MODEL_FROM_DATABASE=10-Gigabit SR Dual Port Express Module -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit SR Dual Port Express Module) - - pci:v00008086d000010E2* - ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection - - pci:v00008086d000010E2sv00008086sd000010E2* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010E5* - ID_MODEL_FROM_DATABASE=82567LM-4 Gigabit Network Connection -@@ -58029,37 +58029,37 @@ pci:v00008086d000010E6* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010E6sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) - - pci:v00008086d000010E6sv00008086sd0000A02F* -- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) - - pci:v00008086d000010E7* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010E7sv0000103Csd000031FF* -- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual Port BL-c Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual Port BL-c Gigabit Server Adapter) - - pci:v00008086d000010E8* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010E8sv00008086sd0000A02B* -- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) - - pci:v00008086d000010E8sv00008086sd0000A02C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) - - pci:v00008086d000010EA* - ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection - - pci:v00008086d000010EAsv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6410) - - pci:v00008086d000010EAsv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6510) - - pci:v00008086d000010EAsv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (PC1-GROOVE) - - pci:v00008086d000010EB* - ID_MODEL_FROM_DATABASE=82577LC Gigabit Network Connection -@@ -58068,10 +58068,10 @@ pci:v00008086d000010EC* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection - - pci:v00008086d000010ECsv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) - - pci:v00008086d000010ECsv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) - - pci:v00008086d000010ED* - ID_MODEL_FROM_DATABASE=82599 Ethernet Controller Virtual Function -@@ -58080,10 +58080,10 @@ pci:v00008086d000010EF* - ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection - - pci:v00008086d000010EFsv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (OptiPlex 980) - - pci:v00008086d000010EFsv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (C7SIM-Q Motherboard) - - pci:v00008086d000010F0* - ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection -@@ -58092,19 +58092,19 @@ pci:v00008086d000010F1* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection - - pci:v00008086d000010F1sv00008086sd0000A20F* -- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) - - pci:v00008086d000010F1sv00008086sd0000A21F* -- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) - - pci:v00008086d000010F4* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection - - pci:v00008086d000010F4sv00008086sd0000106F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) - - pci:v00008086d000010F4sv00008086sd0000A06F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) - - pci:v00008086d000010F5* - ID_MODEL_FROM_DATABASE=82567LM Gigabit Network Connection -@@ -58116,25 +58116,25 @@ pci:v00008086d000010F7* - ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection - - pci:v00008086d000010F7sv0000108Esd00007B12* -- ID_MODEL_FROM_DATABASE=Sun Dual 10GbE PCIe 2.0 FEM -+ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Sun Dual 10GbE PCIe 2.0 FEM) - - pci:v00008086d000010F7sv00008086sd0000000D* -- ID_MODEL_FROM_DATABASE=Ethernet Mezzanine Adapter X520-KX4-2 -+ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Ethernet Mezzanine Adapter X520-KX4-2) - - pci:v00008086d000010F8* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection - - pci:v00008086d000010F8sv00001028sd00001F63* -- ID_MODEL_FROM_DATABASE=10GbE 2P X520k bNDC -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (10GbE 2P X520k bNDC) - - pci:v00008086d000010F8sv0000103Csd000017D2* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560M Adapter) - - pci:v00008086d000010F8sv0000103Csd000018D0* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLB Adapter -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560FLB Adapter) - - pci:v00008086d000010F8sv00008086sd0000000C* -- ID_MODEL_FROM_DATABASE=Ethernet X520 10GbE Dual Port KX4-KR Mezz -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet X520 10GbE Dual Port KX4-KR Mezz) - - pci:v00008086d000010F9* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection -@@ -58143,58 +58143,58 @@ pci:v00008086d000010FB* - ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection - - pci:v00008086d000010FBsv00001028sd00001F72* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X520/I350 rNDC -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10G 4P X520/I350 rNDC) - - pci:v00008086d000010FBsv0000103Csd000017D0* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560FLR-SFP+ Adapter) - - pci:v00008086d000010FBsv0000103Csd000017D2* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560M Adapter) - - pci:v00008086d000010FBsv0000103Csd000017D3* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560SFP+ Adapter) - - pci:v00008086d000010FBsv0000103Csd0000211B* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port P560FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port P560FLR-SFP+ Adapter) - - pci:v00008086d000010FBsv0000103Csd00002147* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port 561i Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port 561i Adapter) - - pci:v00008086d000010FBsv0000103Csd00002159* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 562i Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 562i Adapter) - - pci:v00008086d000010FBsv0000108Esd00007B11* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00001734sd000011A9* -- ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (10 Gigabit Dual Port Network Connection) - - pci:v00008086d000010FBsv000017AAsd00001071* -- ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (ThinkServer X520-2 AnyFabric) - - pci:v00008086d000010FBsv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-DA2) - - pci:v00008086d000010FBsv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) - - pci:v00008086d000010FBsv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet OCP Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd0000000A* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) - - pci:v00008086d000010FBsv00008086sd0000000C* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd00007A11* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd00007A12* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FC* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection -@@ -58209,19 +58209,19 @@ pci:v00008086d00001130* - ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub - - pci:v00008086d00001130sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Travelmate 612 TX) - - pci:v00008086d00001130sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (TUSL2-C Mainboard) - - pci:v00008086d00001130sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Vaio PCG-FX403) - - pci:v00008086d00001130sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EEA2 mainboard) - - pci:v00008086d00001130sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EGEW Mainboard) - - pci:v00008086d00001131* - ID_MODEL_FROM_DATABASE=82815 815 Chipset AGP Bridge -@@ -58230,28 +58230,28 @@ pci:v00008086d00001132* - ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) - - pci:v00008086d00001132sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Travelmate 612 TX) - - pci:v00008086d00001132sv0000103Csd00002001* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (e-pc 40) - - pci:v00008086d00001132sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Vaio PCG-FX403) - - pci:v00008086d00001132sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 Mainboard -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA2 Mainboard) - - pci:v00008086d00001132sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=D815EEA Motherboard -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA Motherboard) - - pci:v00008086d00001132sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EGEW Mainboard) - - pci:v00008086d00001161* - ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller - - pci:v00008086d00001161sv00008086sd00001161* -- ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub APIC -+ ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller (82806AA PCI64 Hub APIC) - - pci:v00008086d00001162* - ID_MODEL_FROM_DATABASE=Xscale 80200 Big Endian Companion Chip -@@ -58260,25 +58260,25 @@ pci:v00008086d00001200* - ID_MODEL_FROM_DATABASE=IXP1200 Network Processor - - pci:v00008086d00001200sv0000172Asd00000000* -- ID_MODEL_FROM_DATABASE=AEP SSL Accelerator -+ ID_MODEL_FROM_DATABASE=IXP1200 Network Processor (AEP SSL Accelerator) - - pci:v00008086d00001209* - ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller - - pci:v00008086d00001209sv0000140Bsd00000610* -- ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PMC610 quad Ethernet board) - - pci:v00008086d00001209sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (QEMU Virtual Machine) - - pci:v00008086d00001209sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CT7 mainboard) - - pci:v00008086d00001209sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CE7 mainboard) - - pci:v00008086d00001209sv00004C53sd00001070* -- ID_MODEL_FROM_DATABASE=PC6 mainboard -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PC6 mainboard) - - pci:v00008086d00001221* - ID_MODEL_FROM_DATABASE=82092AA PCI to PCMCIA Bridge -@@ -58305,487 +58305,487 @@ pci:v00008086d00001229* - ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 - - pci:v00008086d00001229sv00000E11sd00003001* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003002* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003003* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003004* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003005* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003006* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003007* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd0000B01E* -- ID_MODEL_FROM_DATABASE=NC3120 Fast Ethernet NIC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3120 Fast Ethernet NIC) - - pci:v00008086d00001229sv00000E11sd0000B01F* -- ID_MODEL_FROM_DATABASE=NC3122 Fast Ethernet NIC (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3122 Fast Ethernet NIC (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B02F* -- ID_MODEL_FROM_DATABASE=NC1120 Ethernet NIC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC1120 Ethernet NIC) - - pci:v00008086d00001229sv00000E11sd0000B04A* -- ID_MODEL_FROM_DATABASE=Netelligent 10/100TX NIC with Wake on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netelligent 10/100TX NIC with Wake on LAN) - - pci:v00008086d00001229sv00000E11sd0000B0C6* -- ID_MODEL_FROM_DATABASE=NC3161 Fast Ethernet NIC (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3161 Fast Ethernet NIC (embedded, WOL)) - - pci:v00008086d00001229sv00000E11sd0000B0C7* -- ID_MODEL_FROM_DATABASE=NC3160 Fast Ethernet NIC (embedded) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3160 Fast Ethernet NIC (embedded)) - - pci:v00008086d00001229sv00000E11sd0000B0D7* -- ID_MODEL_FROM_DATABASE=NC3121 Fast Ethernet NIC (WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3121 Fast Ethernet NIC (WOL)) - - pci:v00008086d00001229sv00000E11sd0000B0DD* -- ID_MODEL_FROM_DATABASE=NC3131 Fast Ethernet NIC (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3131 Fast Ethernet NIC (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B0DE* -- ID_MODEL_FROM_DATABASE=NC3132 Fast Ethernet Module (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3132 Fast Ethernet Module (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B0E1* -- ID_MODEL_FROM_DATABASE=NC3133 Fast Ethernet Module (100-FX) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3133 Fast Ethernet Module (100-FX)) - - pci:v00008086d00001229sv00000E11sd0000B134* -- ID_MODEL_FROM_DATABASE=NC3163 Fast Ethernet NIC (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3163 Fast Ethernet NIC (embedded, WOL)) - - pci:v00008086d00001229sv00000E11sd0000B13C* -- ID_MODEL_FROM_DATABASE=NC3162 Fast Ethernet NIC (embedded) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3162 Fast Ethernet NIC (embedded)) - - pci:v00008086d00001229sv00000E11sd0000B144* -- ID_MODEL_FROM_DATABASE=NC3123 Fast Ethernet NIC (WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3123 Fast Ethernet NIC (WOL)) - - pci:v00008086d00001229sv00000E11sd0000B163* -- ID_MODEL_FROM_DATABASE=NC3134 Fast Ethernet NIC (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3134 Fast Ethernet NIC (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B164* -- ID_MODEL_FROM_DATABASE=NC3135 Fast Ethernet Upgrade Module (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3135 Fast Ethernet Upgrade Module (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B1A4* -- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC7131 Gigabit Server Adapter) - - pci:v00008086d00001229sv00001014sd0000005C* -- ID_MODEL_FROM_DATABASE=82558B Ethernet Pro 10/100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B Ethernet Pro 10/100) - - pci:v00008086d00001229sv00001014sd000001BC* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN On Motherboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN On Motherboard) - - pci:v00008086d00001229sv00001014sd000001F1* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001014sd000001F2* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001014sd00000207* -- ID_MODEL_FROM_DATABASE=Ethernet Pro/100 S -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Ethernet Pro/100 S) - - pci:v00008086d00001229sv00001014sd00000232* -- ID_MODEL_FROM_DATABASE=10/100 Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Dual Port Server Adapter) - - pci:v00008086d00001229sv00001014sd0000023A* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad R30) - - pci:v00008086d00001229sv00001014sd0000105C* -- ID_MODEL_FROM_DATABASE=Netfinity 10/100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netfinity 10/100) - - pci:v00008086d00001229sv00001014sd00002205* -- ID_MODEL_FROM_DATABASE=ThinkPad A22p -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad A22p) - - pci:v00008086d00001229sv00001014sd0000305C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Management Adapter) - - pci:v00008086d00001229sv00001014sd0000405C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Adapter with Alert on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Adapter with Alert on LAN) - - pci:v00008086d00001229sv00001014sd0000505C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) - - pci:v00008086d00001229sv00001014sd0000605C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) - - pci:v00008086d00001229sv00001014sd0000705C* -- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) - - pci:v00008086d00001229sv00001014sd0000805C* -- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) - - pci:v00008086d00001229sv00001028sd0000009B* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001028sd000000CE* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001033sd00008000* -- ID_MODEL_FROM_DATABASE=PC-9821X-B06 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC-9821X-B06) - - pci:v00008086d00001229sv00001033sd00008016* -- ID_MODEL_FROM_DATABASE=PK-UG-X006 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) - - pci:v00008086d00001229sv00001033sd0000801F* -- ID_MODEL_FROM_DATABASE=PK-UG-X006 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) - - pci:v00008086d00001229sv00001033sd00008026* -- ID_MODEL_FROM_DATABASE=PK-UG-X006 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) - - pci:v00008086d00001229sv00001033sd00008063* -- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) - - pci:v00008086d00001229sv00001033sd00008064* -- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) - - pci:v00008086d00001229sv0000103Csd000010C0* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010C3* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010CA* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010CB* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010E3* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010E4* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd00001200* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000108Esd000010CF* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100(B) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100(B)) - - pci:v00008086d00001229sv000010C3sd00001100* -- ID_MODEL_FROM_DATABASE=SmartEther100 SC1100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SmartEther100 SC1100) - - pci:v00008086d00001229sv000010CFsd00001115* -- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) - - pci:v00008086d00001229sv000010CFsd00001143* -- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) - - pci:v00008086d00001229sv0000110Asd0000008B* -- ID_MODEL_FROM_DATABASE=82551QM Fast Ethernet Multifuction PCI/CardBus Controller -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82551QM Fast Ethernet Multifuction PCI/CardBus Controller) - - pci:v00008086d00001229sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH2 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC8 onboard ethernet ETH2) - - pci:v00008086d00001229sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) - - pci:v00008086d00001229sv00001179sd00000002* -- ID_MODEL_FROM_DATABASE=PCI FastEther LAN on Docker -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PCI FastEther LAN on Docker) - - pci:v00008086d00001229sv00001179sd00000003* -- ID_MODEL_FROM_DATABASE=8255x-based Fast Ethernet -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Fast Ethernet) - - pci:v00008086d00001229sv00001259sd00002560* -- ID_MODEL_FROM_DATABASE=AT-2560 100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100) - - pci:v00008086d00001229sv00001259sd00002561* -- ID_MODEL_FROM_DATABASE=AT-2560 100 FX Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100 FX Ethernet Adapter) - - pci:v00008086d00001229sv00001266sd00000001* -- ID_MODEL_FROM_DATABASE=NE10/100 Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NE10/100 Adapter) - - pci:v00008086d00001229sv000013E9sd00001000* -- ID_MODEL_FROM_DATABASE=6221L-4U -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (6221L-4U) - - pci:v00008086d00001229sv0000144Dsd00002501* -- ID_MODEL_FROM_DATABASE=SEM-2000 MiniPCI LAN Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2000 MiniPCI LAN Adapter) - - pci:v00008086d00001229sv0000144Dsd00002502* -- ID_MODEL_FROM_DATABASE=SEM-2100IL MiniPCI LAN Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2100IL MiniPCI LAN Adapter) - - pci:v00008086d00001229sv00001668sd00001100* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)) - - pci:v00008086d00001229sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CR11/VR11 Single Board Computer) - - pci:v00008086d00001229sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CE9) - - pci:v00008086d00001229sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (QEMU Virtual Machine) - - pci:v00008086d00001229sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CT8 mainboard) - - pci:v00008086d00001229sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PSL09 PrPMC) - - pci:v00008086d00001229sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX)) - - pci:v00008086d00001229sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (T4) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (T4)) - - pci:v00008086d00001229sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/10+ -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/10+) - - pci:v00008086d00001229sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 WfM -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 WfM) - - pci:v00008086d00001229sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=82557 10/100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100) - - pci:v00008086d00001229sv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=82557 10/100 with Wake on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100 with Wake on LAN) - - pci:v00008086d00001229sv00008086sd00000007* -- ID_MODEL_FROM_DATABASE=82558 10/100 Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 Adapter) - - pci:v00008086d00001229sv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=82558 10/100 with Wake on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 with Wake on LAN) - - pci:v00008086d00001229sv00008086sd00000009* -- ID_MODEL_FROM_DATABASE=82558B PRO/100+ PCI (TP) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B PRO/100+ PCI (TP)) - - pci:v00008086d00001229sv00008086sd0000000A* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) - - pci:v00008086d00001229sv00008086sd0000000B* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+) - - pci:v00008086d00001229sv00008086sd0000000C* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) - - pci:v00008086d00001229sv00008086sd0000000D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Alert On LAN II* Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Alert On LAN II* Adapter) - - pci:v00008086d00001229sv00008086sd0000000E* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN*) - - pci:v00008086d00001229sv00008086sd0000000F* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) - - pci:v00008086d00001229sv00008086sd00000011* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) - - pci:v00008086d00001229sv00008086sd00000012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (D) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (D)) - - pci:v00008086d00001229sv00008086sd00000013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (E) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (E)) - - pci:v00008086d00001229sv00008086sd00000030* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Management Adapter with Alert On LAN* GC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Management Adapter with Alert On LAN* GC) - - pci:v00008086d00001229sv00008086sd00000031* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000040* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000041* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000042* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000050* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00001009* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter) - - pci:v00008086d00001229sv00008086sd0000100C* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter (PILA8470B) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter (PILA8470B)) - - pci:v00008086d00001229sv00008086sd00001012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (D) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (D)) - - pci:v00008086d00001229sv00008086sd00001013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (E) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (E)) - - pci:v00008086d00001229sv00008086sd00001015* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Dual Port Server Adapter) - - pci:v00008086d00001229sv00008086sd00001017* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Server Adapter) - - pci:v00008086d00001229sv00008086sd00001030* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server) - - pci:v00008086d00001229sv00008086sd00001040* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) - - pci:v00008086d00001229sv00008086sd00001041* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) - - pci:v00008086d00001229sv00008086sd00001042* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) - - pci:v00008086d00001229sv00008086sd00001050* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) - - pci:v00008086d00001229sv00008086sd00001051* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) - - pci:v00008086d00001229sv00008086sd00001052* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) - - pci:v00008086d00001229sv00008086sd000010F0* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Adapter) - - pci:v00008086d00001229sv00008086sd00001229* -- ID_MODEL_FROM_DATABASE=82557/8/9 [Ethernet Pro 100] -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557/8/9 [Ethernet Pro 100]) - - pci:v00008086d00001229sv00008086sd00002009* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) - - pci:v00008086d00001229sv00008086sd0000200D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Cardbus -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Cardbus) - - pci:v00008086d00001229sv00008086sd0000200E* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 LAN+V90 Cardbus Modem -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 LAN+V90 Cardbus Modem) - - pci:v00008086d00001229sv00008086sd0000200F* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002016* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002017* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Combo Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Combo Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002018* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002019* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Combo Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Combo Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002101* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002102* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002103* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002104* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002105* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002106* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002107* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd00002108* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd00002200* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002201* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002202* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002203* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002204* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002205* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002206* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002207* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002208* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002402* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002407* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002408* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002409* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd0000240F* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002410* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002411* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002412* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002413* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00003000* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN on Motherboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN on Motherboard) - - pci:v00008086d00001229sv00008086sd00003001* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Basic Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Basic Alert on LAN*) - - pci:v00008086d00001229sv00008086sd00003002* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN II* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN II*) - - pci:v00008086d00001229sv00008086sd00003006* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003007* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003008* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd00003010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003011* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd0000301A* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (S845WD1-E mainboard) - - pci:v00008086d00001229sv00008086sd00003411* -- ID_MODEL_FROM_DATABASE=SDS2 Mainboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SDS2 Mainboard) - - pci:v00008086d0000122D* - ID_MODEL_FROM_DATABASE=430FX - 82437FX TSC [Triton I] -@@ -58809,7 +58809,7 @@ pci:v00008086d00001237* - ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] - - pci:v00008086d00001237sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] (Qemu virtual machine) - - pci:v00008086d00001239* - ID_MODEL_FROM_DATABASE=82371FB PIIX IDE Interface -@@ -58857,10 +58857,10 @@ pci:v00008086d00001461* - ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC - - pci:v00008086d00001461sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (P4DP6) - - pci:v00008086d00001461sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9/Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (Cx9/Vx9 mainboard) - - pci:v00008086d00001462* - ID_MODEL_FROM_DATABASE=82870P2 P64H2 Hot Plug Controller -@@ -58872,16 +58872,16 @@ pci:v00008086d00001502* - ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection - - pci:v00008086d00001502sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Precision M4600) - - pci:v00008086d00001502sv00008086sd0000357A* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Server Board S1200BTS) - - pci:v00008086d00001503* - ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection - - pci:v00008086d00001503sv00001043sd0000849C* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection (P8P67 Deluxe Motherboard) - - pci:v00008086d00001507* - ID_MODEL_FROM_DATABASE=Ethernet Express Module X520-P2 -@@ -58911,19 +58911,19 @@ pci:v00008086d0000150D* - ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection - - pci:v00008086d0000150Dsv00008086sd0000A10C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Mezzanine Card -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection (Gigabit ET Quad Port Mezzanine Card) - - pci:v00008086d0000150E* - ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection - - pci:v00008086d0000150Esv0000103Csd00001780* -- ID_MODEL_FROM_DATABASE=NC365T 4-port Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (NC365T 4-port Ethernet Server Adapter) - - pci:v00008086d0000150Esv00008086sd000012A1* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) - - pci:v00008086d0000150Esv00008086sd000012A2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) - - pci:v00008086d0000150F* - ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection -@@ -58947,16 +58947,16 @@ pci:v00008086d00001516* - ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection - - pci:v00008086d00001516sv00008086sd000012B1* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) - - pci:v00008086d00001516sv00008086sd000012B2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) - - pci:v00008086d00001517* - ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection - - pci:v00008086d00001517sv00001137sd0000006A* -- ID_MODEL_FROM_DATABASE=UCS CNA M61KR-I Intel Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection (UCS CNA M61KR-I Intel Converged Network Adapter) - - pci:v00008086d00001518* - ID_MODEL_FROM_DATABASE=82576NS SerDes Gigabit Network Connection -@@ -58965,7 +58965,7 @@ pci:v00008086d0000151C* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection - - pci:v00008086d0000151Csv0000108Esd00007B13* -- ID_MODEL_FROM_DATABASE=Dual 10GBASE-T LP -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection (Dual 10GBASE-T LP) - - pci:v00008086d00001520* - ID_MODEL_FROM_DATABASE=I350 Ethernet Controller Virtual Function -@@ -58974,115 +58974,115 @@ pci:v00008086d00001521* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection - - pci:v00008086d00001521sv00001028sd00000602* -- ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) - - pci:v00008086d00001521sv00001028sd00001F60* -- ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) - - pci:v00008086d00001521sv00001028sd00001F62* -- ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) - - pci:v00008086d00001521sv00001028sd0000FF9A* -- ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) - - pci:v00008086d00001521sv0000103Csd000017D1* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366FLR Adapter) - - pci:v00008086d00001521sv0000103Csd00002003* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 367i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 367i Adapter) - - pci:v00008086d00001521sv0000103Csd00002226* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 1-port 364i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 1-port 364i Adapter) - - pci:v00008086d00001521sv0000103Csd0000337F* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361i Adapter) - - pci:v00008086d00001521sv0000103Csd00003380* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366i Adapter) - - pci:v00008086d00001521sv0000103Csd0000339E* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361T Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361T Adapter) - - pci:v00008086d00001521sv0000108Esd00007B16* -- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, UTP -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, UTP) - - pci:v00008086d00001521sv0000108Esd00007B18* -- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP) - - pci:v00008086d00001521sv000010A9sd0000802A* -- ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (UV2-BaseIO dual-port GbE) - - pci:v00008086d00001521sv000017AAsd00001074* -- ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (ThinkServer I350-T4 AnyFabric) - - pci:v00008086d00001521sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) - - pci:v00008086d00001521sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001521sv00008086sd000000A1* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) - - pci:v00008086d00001521sv00008086sd000000A2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001521sv00008086sd00005001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) - - pci:v00008086d00001521sv00008086sd00005002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001522* - ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection - - pci:v00008086d00001522sv0000108Esd00007B17* -- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, MMF -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, MMF) - - pci:v00008086d00001522sv0000108Esd00007B19* -- ID_MODEL_FROM_DATABASE=Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF) - - pci:v00008086d00001522sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001522sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) - - pci:v00008086d00001522sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) - - pci:v00008086d00001522sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F1 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F1) - - pci:v00008086d00001522sv00008086sd000000A2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001522sv00008086sd000000A3* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) - - pci:v00008086d00001522sv00008086sd000000A4* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) - - pci:v00008086d00001523* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection - - pci:v00008086d00001523sv00001028sd00001F9B* -- ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) - - pci:v00008086d00001523sv0000103Csd00001784* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) - - pci:v00008086d00001523sv0000103Csd000018D1* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) - - pci:v00008086d00001523sv0000103Csd00001989* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 363i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 363i Adapter) - - pci:v00008086d00001523sv0000103Csd0000339F* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366M Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 4-port 366M Adapter) - - pci:v00008086d00001523sv00008086sd00001F52* -- ID_MODEL_FROM_DATABASE=1GbE 4P I350 Mezz -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (1GbE 4P I350 Mezz) - - pci:v00008086d00001524* - ID_MODEL_FROM_DATABASE=I350 Gigabit Connection -@@ -59094,64 +59094,64 @@ pci:v00008086d00001526* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d00001526sv00008086sd0000A05C* -- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) - - pci:v00008086d00001526sv00008086sd0000A06C* -- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) - - pci:v00008086d00001527* - ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection - - pci:v00008086d00001527sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) - - pci:v00008086d00001527sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) - - pci:v00008086d00001528* - ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 - - pci:v00008086d00001528sv00001028sd00001F61* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) - - pci:v00008086d00001528sv0000103Csd0000192D* -- ID_MODEL_FROM_DATABASE=561FLR-T 2-port 10Gb Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (561FLR-T 2-port 10Gb Ethernet Adapter) - - pci:v00008086d00001528sv0000103Csd00002004* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561i Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561i Adapter) - - pci:v00008086d00001528sv0000103Csd0000211A* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561T Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561T Adapter) - - pci:v00008086d00001528sv0000108Esd00007B14* -- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T) - - pci:v00008086d00001528sv0000108Esd00007B15* -- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T) - - pci:v00008086d00001528sv00001137sd000000BF* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) - - pci:v00008086d00001528sv000017AAsd00001073* -- ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (ThinkServer X540-T2 AnyFabric) - - pci:v00008086d00001528sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) - - pci:v00008086d00001528sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) - - pci:v00008086d00001528sv00008086sd0000001A* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) - - pci:v00008086d00001528sv00008086sd000000A2* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) - - pci:v00008086d00001528sv00008086sd00001F61* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) - - pci:v00008086d00001528sv00008086sd00005003* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X540-t Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 2P X540-t Adapter) - - pci:v00008086d00001529* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection with FCoE -@@ -59163,16 +59163,16 @@ pci:v00008086d00001533* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection - - pci:v00008086d00001533sv0000103Csd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - - pci:v00008086d00001533sv000017AAsd00001100* -- ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) - - pci:v00008086d00001533sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - - pci:v00008086d00001533sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - - pci:v00008086d00001534* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -@@ -59193,10 +59193,10 @@ pci:v00008086d0000153A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM - - pci:v00008086d0000153Asv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ZBook 15) - - pci:v00008086d0000153Asv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ThinkPad T440p) - - pci:v00008086d0000153B* - ID_MODEL_FROM_DATABASE=Ethernet Connection I217-V -@@ -59211,13 +59211,13 @@ pci:v00008086d0000154A* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 - - pci:v00008086d0000154Asv00008086sd0000011A* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154Asv00008086sd0000011B* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154Asv00008086sd0000011C* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154C* - ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -@@ -59226,13 +59226,13 @@ pci:v00008086d0000154D* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter - - pci:v00008086d0000154Dsv00008086sd00007B11* -- ID_MODEL_FROM_DATABASE=10GbE 2P X520 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter (10GbE 2P X520 Adapter) - - pci:v00008086d00001557* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection - - pci:v00008086d00001557sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-1 -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection (Ethernet OCP Server Adapter X520-1) - - pci:v00008086d00001558* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-Q1 -@@ -59250,22 +59250,22 @@ pci:v00008086d0000155A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM - - pci:v00008086d0000155Asv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM (ThinkPad X240) - - pci:v00008086d0000155C* - ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter - - pci:v00008086d0000155Csv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X540-T2) - - pci:v00008086d0000155D* - ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter - - pci:v00008086d0000155Dsv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-SR2 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-SR2) - - pci:v00008086d0000155Dsv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-LR2 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-LR2) - - pci:v00008086d00001560* - ID_MODEL_FROM_DATABASE=Ethernet Controller X540 -@@ -59277,28 +59277,28 @@ pci:v00008086d00001572* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter - - pci:v00008086d00001572sv00001028sd00001F99* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) - - pci:v00008086d00001572sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000007* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d00001572sv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d0000157B* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -@@ -59313,31 +59313,31 @@ pci:v00008086d00001581* - ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane - - pci:v00008086d00001581sv00001028sd00001F98* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) - - pci:v00008086d00001583* - ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ - - pci:v00008086d00001583sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) - - pci:v00008086d00001584* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - - pci:v00008086d00001584sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) - - pci:v00008086d00001584sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) - - pci:v00008086d00001584sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q1) - - pci:v00008086d00001585* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ -@@ -59469,82 +59469,82 @@ pci:v00008086d00001960* - ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor - - pci:v00008086d00001960sv0000101Esd00000431* -- ID_MODEL_FROM_DATABASE=MegaRAID 431 RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 431 RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000438* -- ID_MODEL_FROM_DATABASE=MegaRAID 438 Ultra2 LVD RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438 Ultra2 LVD RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000466* -- ID_MODEL_FROM_DATABASE=MegaRAID 466 Express Plus RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466 Express Plus RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000467* -- ID_MODEL_FROM_DATABASE=MegaRAID 467 Enterprise 1500 RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 467 Enterprise 1500 RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000490* -- ID_MODEL_FROM_DATABASE=MegaRAID 490 Express 300 RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 490 Express 300 RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000762* -- ID_MODEL_FROM_DATABASE=MegaRAID 762 Express RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 762 Express RAID Controller) - - pci:v00008086d00001960sv0000101Esd000009A0* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv00001028sd00000467* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/DC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/DC) - - pci:v00008086d00001960sv00001028sd00001111* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv0000103Csd000003A2* -- ID_MODEL_FROM_DATABASE=MegaRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) - - pci:v00008086d00001960sv0000103Csd000010C6* -- ID_MODEL_FROM_DATABASE=MegaRAID 438, NetRAID-3Si -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438, NetRAID-3Si) - - pci:v00008086d00001960sv0000103Csd000010C7* -- ID_MODEL_FROM_DATABASE=MegaRAID T5, Integrated NetRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID T5, Integrated NetRAID) - - pci:v00008086d00001960sv0000103Csd000010CC* -- ID_MODEL_FROM_DATABASE=MegaRAID, Integrated NetRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID, Integrated NetRAID) - - pci:v00008086d00001960sv0000103Csd000010CD* -- ID_MODEL_FROM_DATABASE=NetRAID-1Si -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (NetRAID-1Si) - - pci:v00008086d00001960sv0000105Asd00000000* -- ID_MODEL_FROM_DATABASE=SuperTrak -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak) - - pci:v00008086d00001960sv0000105Asd00002168* -- ID_MODEL_FROM_DATABASE=SuperTrak Pro -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak Pro) - - pci:v00008086d00001960sv0000105Asd00005168* -- ID_MODEL_FROM_DATABASE=SuperTrak66/100 -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak66/100) - - pci:v00008086d00001960sv00001111sd00001111* -- ID_MODEL_FROM_DATABASE=MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv00001111sd00001112* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv0000113Csd000003A2* -- ID_MODEL_FROM_DATABASE=MegaRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) - - pci:v00008086d00001960sv0000E4BFsd00001010* -- ID_MODEL_FROM_DATABASE=CG1-RADIO -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CG1-RADIO) - - pci:v00008086d00001960sv0000E4BFsd00001020* -- ID_MODEL_FROM_DATABASE=CU2-QUARTET -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU2-QUARTET) - - pci:v00008086d00001960sv0000E4BFsd00001040* -- ID_MODEL_FROM_DATABASE=CU1-CHORUS -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU1-CHORUS) - - pci:v00008086d00001960sv0000E4BFsd00003100* -- ID_MODEL_FROM_DATABASE=CX1-BAND -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CX1-BAND) - - pci:v00008086d00001962* - ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor - - pci:v00008086d00001962sv0000105Asd00000000* -- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 I2O CPU -+ ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor (SuperTrak SX6000 I2O CPU) - - pci:v00008086d00001A21* - ID_MODEL_FROM_DATABASE=82840 840 [Carmel] Chipset Host Bridge (Hub A) -@@ -59559,10 +59559,10 @@ pci:v00008086d00001A30* - ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge - - pci:v00008086d00001A30sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Optiplex GX240) - - pci:v00008086d00001A30sv000015D9sd00003280* -- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard -+ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Supermicro P4SBE Mainboard) - - pci:v00008086d00001A31* - ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset AGP Bridge -@@ -59571,28 +59571,28 @@ pci:v00008086d00001A38* - ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine - - pci:v00008086d00001A38sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (X7DVL-E-O motherboard) - - pci:v00008086d00001A38sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (Intel S5000PSLSATA Server Board) - - pci:v00008086d00001A48* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d00001A48sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) - - pci:v00008086d00001A48sv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) - - pci:v00008086d00001B48* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d00001B48sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001B48sv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001C00* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 4 port SATA IDE Controller -@@ -59604,28 +59604,28 @@ pci:v00008086d00001C02* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller - - pci:v00008086d00001C02sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (XPS 8300) - - pci:v00008086d00001C02sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (P8 series motherboard) - - pci:v00008086d00001C02sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (Server Board S1200BTS) - - pci:v00008086d00001C03* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller - - pci:v00008086d00001C03sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Precision M4600) - - pci:v00008086d00001C03sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3350) - - pci:v00008086d00001C03sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3750) - - pci:v00008086d00001C03sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C04* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA RAID Controller -@@ -59643,58 +59643,58 @@ pci:v00008086d00001C10* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 - - pci:v00008086d00001C10sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (XPS 8300) - - pci:v00008086d00001C10sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Vostro 3750) - - pci:v00008086d00001C10sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (P8 series motherboard) - - pci:v00008086d00001C10sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C12* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 - - pci:v00008086d00001C12sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (XPS 8300) - - pci:v00008086d00001C12sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C14* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 - - pci:v00008086d00001C14sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Vostro 3750) - - pci:v00008086d00001C14sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C16* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 - - pci:v00008086d00001C16sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 (XPS 8300) - - pci:v00008086d00001C18* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 - - pci:v00008086d00001C18sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Vostro 3750) - - pci:v00008086d00001C18sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Server Board S1200BTS) - - pci:v00008086d00001C1A* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 - - pci:v00008086d00001C1Asv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (Vostro 3750) - - pci:v00008086d00001C1Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (P8 series motherboard) - - pci:v00008086d00001C1C* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 -@@ -59703,58 +59703,58 @@ pci:v00008086d00001C1E* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 - - pci:v00008086d00001C1Esv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 (P8 series motherboard) - - pci:v00008086d00001C20* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller - - pci:v00008086d00001C20sv00001028sd00000490* -- ID_MODEL_FROM_DATABASE=Alienware M17x R3 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Alienware M17x R3) - - pci:v00008086d00001C20sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Precision M4600) - - pci:v00008086d00001C20sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (XPS 8300) - - pci:v00008086d00001C20sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3350) - - pci:v00008086d00001C20sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3750) - - pci:v00008086d00001C20sv00001043sd00008418* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8P67 Deluxe Motherboard) - - pci:v00008086d00001C20sv00001043sd0000841B* -- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8H67 Series Motherboard) - - pci:v00008086d00001C20sv00008086sd00002008* -- ID_MODEL_FROM_DATABASE=DQ67SW board -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (DQ67SW board) - - pci:v00008086d00001C20sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C22* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller - - pci:v00008086d00001C22sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Precision M4600) - - pci:v00008086d00001C22sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (XPS 8300) - - pci:v00008086d00001C22sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3350) - - pci:v00008086d00001C22sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3750) - - pci:v00008086d00001C22sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (P8 series motherboard) - - pci:v00008086d00001C22sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C24* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller -@@ -59766,55 +59766,55 @@ pci:v00008086d00001C26* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 - - pci:v00008086d00001C26sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Precision M4600) - - pci:v00008086d00001C26sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (XPS 8300) - - pci:v00008086d00001C26sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3350) - - pci:v00008086d00001C26sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3750) - - pci:v00008086d00001C26sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) - - pci:v00008086d00001C26sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C27* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 - - pci:v00008086d00001C27sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C2C* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 - - pci:v00008086d00001C2Csv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C2D* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 - - pci:v00008086d00001C2Dsv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Precision M4600) - - pci:v00008086d00001C2Dsv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (XPS 8300) - - pci:v00008086d00001C2Dsv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3350) - - pci:v00008086d00001C2Dsv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3750) - - pci:v00008086d00001C2Dsv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) - - pci:v00008086d00001C2Dsv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C33* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller -@@ -59826,22 +59826,22 @@ pci:v00008086d00001C3A* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 - - pci:v00008086d00001C3Asv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Precision M4600) - - pci:v00008086d00001C3Asv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (XPS 8300) - - pci:v00008086d00001C3Asv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3350) - - pci:v00008086d00001C3Asv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3750) - - pci:v00008086d00001C3Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (P8 series motherboard) - - pci:v00008086d00001C3Asv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C3B* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #2 -@@ -59874,7 +59874,7 @@ pci:v00008086d00001C46* - ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller - - pci:v00008086d00001C46sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller (P8P67 Deluxe Motherboard) - - pci:v00008086d00001C47* - ID_MODEL_FROM_DATABASE=UM67 Express Chipset Family LPC Controller -@@ -59886,25 +59886,25 @@ pci:v00008086d00001C49* - ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller - - pci:v00008086d00001C49sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C4A* - ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller - - pci:v00008086d00001C4Asv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (XPS 8300) - - pci:v00008086d00001C4Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (P8H67 Series Motherboard) - - pci:v00008086d00001C4B* - ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller - - pci:v00008086d00001C4Bsv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3350) - - pci:v00008086d00001C4Bsv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3750) - - pci:v00008086d00001C4C* - ID_MODEL_FROM_DATABASE=Q65 Express Chipset Family LPC Controller -@@ -59919,7 +59919,7 @@ pci:v00008086d00001C4F* - ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller - - pci:v00008086d00001C4Fsv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller (Precision M4600) - - pci:v00008086d00001C50* - ID_MODEL_FROM_DATABASE=B65 Express Chipset Family LPC Controller -@@ -59931,7 +59931,7 @@ pci:v00008086d00001C52* - ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller - - pci:v00008086d00001C52sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller (Server Board S1200BTS) - - pci:v00008086d00001C53* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller -@@ -59946,7 +59946,7 @@ pci:v00008086d00001C56* - ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller - - pci:v00008086d00001C56sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller (P8B WS Motherboard) - - pci:v00008086d00001C57* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller -@@ -60177,19 +60177,19 @@ pci:v00008086d00001E02* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] - - pci:v00008086d00001E02sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) - - pci:v00008086d00001E02sv00001849sd00001E02* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) - - pci:v00008086d00001E03* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] - - pci:v00008086d00001E03sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (N56VZ) - - pci:v00008086d00001E03sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (Zenbook Prime UX31A) - - pci:v00008086d00001E04* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SATA Controller [RAID mode] -@@ -60216,25 +60216,25 @@ pci:v00008086d00001E10* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 - - pci:v00008086d00001E10sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (N56VZ) - - pci:v00008086d00001E10sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Zenbook Prime UX31A) - - pci:v00008086d00001E10sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (P8H77-I Motherboard) - - pci:v00008086d00001E10sv00001849sd00001E10* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Motherboard) - - pci:v00008086d00001E12* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 - - pci:v00008086d00001E12sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (N56VZ) - - pci:v00008086d00001E12sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (Zenbook Prime UX31A) - - pci:v00008086d00001E14* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 3 -@@ -60243,25 +60243,25 @@ pci:v00008086d00001E16* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 - - pci:v00008086d00001E16sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (N56VZ) - - pci:v00008086d00001E16sv00001849sd00001618* -- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (Z77 Extreme4 motherboard) - - pci:v00008086d00001E18* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 - - pci:v00008086d00001E18sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (P8H77-I Motherboard) - - pci:v00008086d00001E18sv00001849sd00001E18* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (Motherboard) - - pci:v00008086d00001E1A* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 - - pci:v00008086d00001E1Asv00001849sd00001E1A* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 (Motherboard) - - pci:v00008086d00001E1C* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 7 -@@ -60270,43 +60270,43 @@ pci:v00008086d00001E1E* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 - - pci:v00008086d00001E1Esv00001849sd00001E1E* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 (Motherboard) - - pci:v00008086d00001E20* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller - - pci:v00008086d00001E20sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (N56VZ) - - pci:v00008086d00001E20sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E20sv00001043sd00008415* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) - - pci:v00008086d00001E20sv00001849sd00001898* -- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) - - pci:v00008086d00001E22* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller - - pci:v00008086d00001E22sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (N56VZ) - - pci:v00008086d00001E22sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E22sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) - - pci:v00008086d00001E22sv00001849sd00001E22* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) - - pci:v00008086d00001E24* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller - - pci:v00008086d00001E24sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E25* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family DMI to PCI Bridge -@@ -60315,49 +60315,49 @@ pci:v00008086d00001E26* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 - - pci:v00008086d00001E26sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (N56VZ) - - pci:v00008086d00001E26sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E26sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) - - pci:v00008086d00001E26sv00001849sd00001E26* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) - - pci:v00008086d00001E2D* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 - - pci:v00008086d00001E2Dsv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (N56VZ) - - pci:v00008086d00001E2Dsv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) - - pci:v00008086d00001E2Dsv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) - - pci:v00008086d00001E2Dsv00001849sd00001E2D* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) - - pci:v00008086d00001E31* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller - - pci:v00008086d00001E31sv0000103Csd000017AB* -- ID_MODEL_FROM_DATABASE=ProBook 6570b -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (ProBook 6570b) - - pci:v00008086d00001E31sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (N56VZ) - - pci:v00008086d00001E31sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E31sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) - - pci:v00008086d00001E31sv00001849sd00001E31* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) - - pci:v00008086d00001E33* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family LAN Controller -@@ -60366,16 +60366,16 @@ pci:v00008086d00001E3A* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 - - pci:v00008086d00001E3Asv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (N56VZ) - - pci:v00008086d00001E3Asv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E3Asv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) - - pci:v00008086d00001E3Asv00001849sd00001E3A* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) - - pci:v00008086d00001E3B* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #2 -@@ -60399,7 +60399,7 @@ pci:v00008086d00001E44* - ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller - - pci:v00008086d00001E44sv00001849sd00001E44* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) - - pci:v00008086d00001E45* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller -@@ -60420,7 +60420,7 @@ pci:v00008086d00001E4A* - ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller - - pci:v00008086d00001E4Asv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller (P8H77-I Motherboard) - - pci:v00008086d00001E4B* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller -@@ -60468,10 +60468,10 @@ pci:v00008086d00001E59* - ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller - - pci:v00008086d00001E59sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (N56VZ) - - pci:v00008086d00001E59sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E5A* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller -@@ -60804,28 +60804,28 @@ pci:v00008086d00002415* - ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller - - pci:v00008086d00002415sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Precision Workstation 220 Integrated Digital Audio) - - pci:v00008086d00002415sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (OptiPlex GX110) - - pci:v00008086d00002415sv0000110Asd00000051* -- ID_MODEL_FROM_DATABASE=Activy 2xx -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 2xx) - - pci:v00008086d00002415sv000011D4sd00000040* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002415sv000011D4sd00000048* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002415sv000011D4sd00005340* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002415sv00001734sd00001025* -- ID_MODEL_FROM_DATABASE=Activy 3xx -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 3xx) - - pci:v00008086d00002415sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (QEMU Virtual Machine) - - pci:v00008086d00002416* - ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller -@@ -60849,10 +60849,10 @@ pci:v00008086d00002425* - ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller - - pci:v00008086d00002425sv000011D4sd00000040* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002425sv000011D4sd00000048* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002426* - ID_MODEL_FROM_DATABASE=82801AB AC'97 Modem Controller -@@ -60864,352 +60864,352 @@ pci:v00008086d00002440* - ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) - - pci:v00008086d00002440sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E -+ ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) (S845WD1-E) - - pci:v00008086d00002442* - ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 - - pci:v00008086d00002442sv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Netvista A40/A40p) - - pci:v00008086d00002442sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) - - pci:v00008086d00002442sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) - - pci:v00008086d00002442sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) - - pci:v00008086d00002442sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) - - pci:v00008086d00002442sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) - - pci:v00008086d00002442sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) - - pci:v00008086d00002442sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) - - pci:v00008086d00002442sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) - - pci:v00008086d00002442sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) - - pci:v00008086d00002442sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EGEW Mainboard) - - pci:v00008086d00002442sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) - - pci:v00008086d00002443* - ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller - - pci:v00008086d00002443sv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Netvista A40/A40p) - - pci:v00008086d00002443sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Travelmate 612 TX) - - pci:v00008086d00002443sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Dimension 8100) - - pci:v00008086d00002443sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Precision 530) - - pci:v00008086d00002443sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Optiplex GX240) - - pci:v00008086d00002443sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (e-pc 40) - - pci:v00008086d00002443sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TUSL2-C Mainboard) - - pci:v00008086d00002443sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Vaio PCG-FX403) - - pci:v00008086d00002443sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TH7II-RAID) - - pci:v00008086d00002443sv000015D9sd00003280* -- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Supermicro P4SBE Mainboard) - - pci:v00008086d00002443sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EEA2 mainboard) - - pci:v00008086d00002443sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EGEW Mainboard) - - pci:v00008086d00002443sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (S845WD1-E mainboard) - - pci:v00008086d00002444* - ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 - - pci:v00008086d00002444sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) - - pci:v00008086d00002444sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) - - pci:v00008086d00002444sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) - - pci:v00008086d00002444sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) - - pci:v00008086d00002444sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) - - pci:v00008086d00002444sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) - - pci:v00008086d00002444sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) - - pci:v00008086d00002444sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) - - pci:v00008086d00002444sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) - - pci:v00008086d00002444sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) - - pci:v00008086d00002445* - ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller - - pci:v00008086d00002445sv00000E11sd0000000B* -- ID_MODEL_FROM_DATABASE=Compaq Deskpro EN Audio -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Compaq Deskpro EN Audio) - - pci:v00008086d00002445sv00000E11sd00000088* -- ID_MODEL_FROM_DATABASE=Evo D500 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Evo D500) - - pci:v00008086d00002445sv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Netvista A40/A40p) - - pci:v00008086d00002445sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Travelmate 612 TX) - - pci:v00008086d00002445sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Precision 530) - - pci:v00008086d00002445sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (e-pc 40) - - pci:v00008086d00002445sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Vaio PCG-FX403) - - pci:v00008086d00002445sv00001462sd00003370* -- ID_MODEL_FROM_DATABASE=STAC9721 AC -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (STAC9721 AC) - - pci:v00008086d00002445sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (TH7II-RAID) - - pci:v00008086d00002445sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (D815EGEW Mainboard) - - pci:v00008086d00002446* - ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller - - pci:v00008086d00002446sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Travelmate 612 TX) - - pci:v00008086d00002446sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Vaio PCG-FX403) - - pci:v00008086d00002448* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge - - pci:v00008086d00002448sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Latitude E6510) - - pci:v00008086d00002448sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002448sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (NX6110/NC6120) - - pci:v00008086d00002448sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nx9420 Notebook) - - pci:v00008086d00002448sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nw8440) - - pci:v00008086d00002448sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq 6910p) - - pci:v00008086d00002448sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (VAIO VGN-NR120E) - - pci:v00008086d00002448sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) - - pci:v00008086d00002448sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) - - pci:v00008086d00002448sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) - - pci:v00008086d00002448sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (GA-D525TUD) - - pci:v00008086d00002448sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Amilo M1420) - - pci:v00008086d00002448sv000017AAsd000020AE* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) - - pci:v00008086d00002448sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) - - pci:v00008086d00002448sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (CCG-RUMBA) - - pci:v00008086d00002449* - ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller - - pci:v00008086d00002449sv00000E11sd00000012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) - - pci:v00008086d00002449sv00000E11sd00000091* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001CE* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001DC* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001EB* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001EC* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000202* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000205* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000217* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000234* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd0000023D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000244* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000245* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000265* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) - - pci:v00008086d00002449sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) - - pci:v00008086d00002449sv00001014sd0000026A* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) - - pci:v00008086d00002449sv0000109Fsd0000315D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv0000109Fsd00003181* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001179sd0000FF01* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Network Connection) - - pci:v00008086d00002449sv00001186sd00007801* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv0000144Dsd00002602* -- ID_MODEL_FROM_DATABASE=HomePNA 1M CNR -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (HomePNA 1M CNR) - - pci:v00008086d00002449sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (QEMU Virtual Machine) - - pci:v00008086d00002449sv00008086sd00003010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00008086sd00003011* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) - - pci:v00008086d00002449sv00008086sd00003012* -- ID_MODEL_FROM_DATABASE=82562EH based Phoneline -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) - - pci:v00008086d00002449sv00008086sd00003013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00008086sd00003014* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) - - pci:v00008086d00002449sv00008086sd00003015* -- ID_MODEL_FROM_DATABASE=82562EH based Phoneline -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) - - pci:v00008086d00002449sv00008086sd00003016* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile Combo) - - pci:v00008086d00002449sv00008086sd00003017* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile) - - pci:v00008086d00002449sv00008086sd00003018* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100) - - pci:v00008086d0000244A* - ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller - - pci:v00008086d0000244Asv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612TX -+ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Travelmate 612TX) - - pci:v00008086d0000244Asv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Vaio PCG-FX403) - - pci:v00008086d0000244B* - ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller - - pci:v00008086d0000244Bsv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Netvista A40/A40p) - - pci:v00008086d0000244Bsv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Dimension 8100) - - pci:v00008086d0000244Bsv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Precision 530) - - pci:v00008086d0000244Bsv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Optiplex GX240) - - pci:v00008086d0000244Bsv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (e-pc 40) - - pci:v00008086d0000244Bsv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TUSL2-C Mainboard) - - pci:v00008086d0000244Bsv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TH7II-RAID) - - pci:v00008086d0000244Bsv000015D9sd00003280* -- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Supermicro P4SBE Mainboard) - - pci:v00008086d0000244Bsv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EEA2 mainboard) - - pci:v00008086d0000244Bsv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EGEW Mainboard) - - pci:v00008086d0000244Bsv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (S845WD1-E mainboard) - - pci:v00008086d0000244C* - ID_MODEL_FROM_DATABASE=82801BAM ISA Bridge (LPC) -@@ -61218,52 +61218,52 @@ pci:v00008086d0000244E* - ID_MODEL_FROM_DATABASE=82801 PCI Bridge - - pci:v00008086d0000244Esv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (NetVista A30p) - - pci:v00008086d0000244Esv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Inspiron 530) - - pci:v00008086d0000244Esv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Optiplex 755) - - pci:v00008086d0000244Esv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (OptiPlex 980) - - pci:v00008086d0000244Esv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Pavilion A1512X) - - pci:v00008086d0000244Esv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000244Esv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant DL140 G3) - - pci:v00008086d0000244Esv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant ML150 G6 Server) - - pci:v00008086d0000244Esv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P5K PRO Motherboard) - - pci:v00008086d0000244Esv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P8 series motherboard) - - pci:v00008086d0000244Esv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Motherboard) - - pci:v00008086d0000244Esv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Wind PC MS-7418) - - pci:v00008086d0000244Esv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (C7SIM-Q Motherboard) - - pci:v00008086d0000244Esv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (X7DBN Motherboard) - - pci:v00008086d0000244Esv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (CC11/CL11) - - pci:v00008086d0000244Esv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Server Board S1200BTS) - - pci:v00008086d00002450* - ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) -@@ -61293,160 +61293,160 @@ pci:v00008086d00002482* - ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 - - pci:v00008086d00002482sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Evo N600c) - - pci:v00008086d00002482sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (ThinkPad A/T/X Series) - - pci:v00008086d00002482sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002482sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (P4DP6) - - pci:v00008086d00002482sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (vpr Matrix 170B4) - - pci:v00008086d00002482sv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (SE7501HG2 Mainboard) - - pci:v00008086d00002482sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Latitude C640) - - pci:v00008086d00002483* - ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller - - pci:v00008086d00002483sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002483sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002483sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (P4DP6) - - pci:v00008086d00002483sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (vpr Matrix 170B4) - - pci:v00008086d00002484* - ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 - - pci:v00008086d00002484sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (Evo N600c) - - pci:v00008086d00002484sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (ThinkPad A/T/X Series) - - pci:v00008086d00002484sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002484sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (P4DP6) - - pci:v00008086d00002484sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (vpr Matrix 170B4) - - pci:v00008086d00002485* - ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller - - pci:v00008086d00002485sv00001013sd00005959* -- ID_MODEL_FROM_DATABASE=Crystal WMD Audio Codec -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (Crystal WMD Audio Codec) - - pci:v00008086d00002485sv00001014sd00000222* -- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p/T23 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A30/A30p/T23) - - pci:v00008086d00002485sv00001014sd00000508* -- ID_MODEL_FROM_DATABASE=ThinkPad T30 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad T30) - - pci:v00008086d00002485sv00001014sd0000051C* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002485sv00001043sd00001583* -- ID_MODEL_FROM_DATABASE=L3C (SPDIF) -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3C (SPDIF)) - - pci:v00008086d00002485sv00001043sd00001623* -- ID_MODEL_FROM_DATABASE=L2B (no SPDIF) -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L2B (no SPDIF)) - - pci:v00008086d00002485sv00001043sd00001643* -- ID_MODEL_FROM_DATABASE=L3F -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3F) - - pci:v00008086d00002485sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002485sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (vpr Matrix 170B4) - - pci:v00008086d00002486* - ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller - - pci:v00008086d00002486sv00001014sd00000223* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002486sv00001014sd00000503* -- ID_MODEL_FROM_DATABASE=ThinkPad R31 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad R31) - - pci:v00008086d00002486sv00001014sd0000051A* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002486sv0000101Fsd00001025* -- ID_MODEL_FROM_DATABASE=620 Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (620 Series) - - pci:v00008086d00002486sv00001043sd00001496* -- ID_MODEL_FROM_DATABASE=PCtel HSP56 MR -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (PCtel HSP56 MR) - - pci:v00008086d00002486sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002486sv0000134Dsd00004C21* -- ID_MODEL_FROM_DATABASE=Dell Inspiron 2100 internal modem -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (Dell Inspiron 2100 internal modem) - - pci:v00008086d00002486sv0000144Dsd00002115* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 internal modem -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (vpr Matrix 170B4 internal modem) - - pci:v00008086d00002486sv000014F1sd00005421* -- ID_MODEL_FROM_DATABASE=MD56ORD V.92 MDC Modem -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (MD56ORD V.92 MDC Modem) - - pci:v00008086d00002487* - ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 - - pci:v00008086d00002487sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (Evo N600c) - - pci:v00008086d00002487sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (ThinkPad A/T/X Series) - - pci:v00008086d00002487sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002487sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (P4DP6) - - pci:v00008086d00002487sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (vpr Matrix 170B4) - - pci:v00008086d0000248A* - ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller - - pci:v00008086d0000248Asv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Evo N600c) - - pci:v00008086d0000248Asv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (ThinkPad A/T/X Series) - - pci:v00008086d0000248Asv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d0000248Asv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (vpr Matrix 170B4) - - pci:v00008086d0000248Asv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Latitude C640) - - pci:v00008086d0000248B* - ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller - - pci:v00008086d0000248Bsv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller (P4DP6) - - pci:v00008086d0000248C* - ID_MODEL_FROM_DATABASE=82801CAM ISA Bridge (LPC) -@@ -61455,10 +61455,10 @@ pci:v00008086d000024C0* - ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge - - pci:v00008086d000024C0sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (NetVista A30p) - - pci:v00008086d000024C0sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (845PE Max (MS-6580)) - - pci:v00008086d000024C1* - ID_MODEL_FROM_DATABASE=82801DBL (ICH4-L) IDE Controller -@@ -61467,574 +61467,574 @@ pci:v00008086d000024C2* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 - - pci:v00008086d000024C2sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NetVista A30p) - - pci:v00008086d000024C2sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (ThinkPad) - - pci:v00008086d000024C2sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (TravelMate 290) - - pci:v00008086d000024C2sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Optiplex GX260) - - pci:v00008086d000024C2sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D505) - - pci:v00008086d000024C2sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 700m/710m) - - pci:v00008086d000024C2sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 5160) - - pci:v00008086d000024C2sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC8000 laptop) - - pci:v00008086d000024C2sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC6000 laptop) - - pci:v00008086d000024C2sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (tc1100 tablet) - - pci:v00008086d000024C2sv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P4B533) - - pci:v00008086d000024C2sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (MIM2000) - - pci:v00008086d000024C2sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard USB 1.x -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (PC8 onboard USB 1.x) - - pci:v00008086d000024C2sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (X10 Laptop) - - pci:v00008086d000024C2sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P30/P35 notebook) - - pci:v00008086d000024C2sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (845PE Max (MS-6580)) - - pci:v00008086d000024C2sv00001509sd00002990* -- ID_MODEL_FROM_DATABASE=Averatec 5110H laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Averatec 5110H laptop) - - pci:v00008086d000024C2sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C2sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Amilo M1420) - - pci:v00008086d000024C2sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C2sv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude X300) - - pci:v00008086d000024C2sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D400/D500) - - pci:v00008086d000024C2sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CC9-SAMBA) - - pci:v00008086d000024C2sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CD2-BEBOP) - - pci:v00008086d000024C3* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller - - pci:v00008086d000024C3sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NetVista A30p) - - pci:v00008086d000024C3sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (ThinkPad) - - pci:v00008086d000024C3sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (TravelMate 290) - - pci:v00008086d000024C3sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Optiplex GX260) - - pci:v00008086d000024C3sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Latitude X300) - - pci:v00008086d000024C3sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Inspiron 700m/710m) - - pci:v00008086d000024C3sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC8000 laptop) - - pci:v00008086d000024C3sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC6000 laptop) - - pci:v00008086d000024C3sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (tc1100 tablet) - - pci:v00008086d000024C3sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (MIM2000) - - pci:v00008086d000024C3sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard SMbus -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (PC8 onboard SMbus) - - pci:v00008086d000024C3sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (X10 Laptop) - - pci:v00008086d000024C3sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (P30/P35 notebook) - - pci:v00008086d000024C3sv00001458sd000024C2* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (GA-8PE667 Ultra) - - pci:v00008086d000024C3sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (845PE Max (MS-6580)) - - pci:v00008086d000024C3sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C3sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Amilo M1420) - - pci:v00008086d000024C3sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C3sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CC9-SAMBA) - - pci:v00008086d000024C3sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CD2-BEBOP) - - pci:v00008086d000024C4* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 - - pci:v00008086d000024C4sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NetVista A30p) - - pci:v00008086d000024C4sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (ThinkPad) - - pci:v00008086d000024C4sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (TravelMate 290) - - pci:v00008086d000024C4sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Optiplex GX260) - - pci:v00008086d000024C4sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D505) - - pci:v00008086d000024C4sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 700m/710m) - - pci:v00008086d000024C4sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 5160) - - pci:v00008086d000024C4sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC8000 laptop) - - pci:v00008086d000024C4sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC6000 laptop) - - pci:v00008086d000024C4sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (tc1100 tablet) - - pci:v00008086d000024C4sv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P4B533) - - pci:v00008086d000024C4sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (MIM2000) - - pci:v00008086d000024C4sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P30/P35 notebook) - - pci:v00008086d000024C4sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (845PE Max (MS-6580)) - - pci:v00008086d000024C4sv00001509sd00002990* -- ID_MODEL_FROM_DATABASE=Averatec 5110H -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Averatec 5110H) - - pci:v00008086d000024C4sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C4sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C4sv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude X300) - - pci:v00008086d000024C4sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D400/D500) - - pci:v00008086d000024C4sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CC9-SAMBA) - - pci:v00008086d000024C4sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CD2-BEBOP) - - pci:v00008086d000024C5* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller - - pci:v00008086d000024C5sv00000E11sd000000B8* -- ID_MODEL_FROM_DATABASE=Analog Devices Inc. codec [SoundMAX] -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Analog Devices Inc. codec [SoundMAX]) - - pci:v00008086d000024C5sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) - - pci:v00008086d000024C5sv00001014sd00000537* -- ID_MODEL_FROM_DATABASE=ThinkPad T41 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) - - pci:v00008086d000024C5sv00001014sd0000055F* -- ID_MODEL_FROM_DATABASE=Thinkpad R50e model 1634 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) - - pci:v00008086d000024C5sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (TravelMate 290) - - pci:v00008086d000024C5sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D400) - - pci:v00008086d000024C5sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude X300) - - pci:v00008086d000024C5sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D500) - - pci:v00008086d000024C5sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D505) - - pci:v00008086d000024C5sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m [SigmaTel STAC9750,51] -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 700m/710m [SigmaTel STAC9750,51]) - - pci:v00008086d000024C5sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 5160) - - pci:v00008086d000024C5sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC8000 laptop) - - pci:v00008086d000024C5sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC6000 laptop) - - pci:v00008086d000024C5sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (tc1100 tablet) - - pci:v00008086d000024C5sv00001043sd00001713* -- ID_MODEL_FROM_DATABASE=M2400N/M6800N laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (M2400N/M6800N laptop) - - pci:v00008086d000024C5sv00001043sd000080B0* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P4B533) - - pci:v00008086d000024C5sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (MIM2000) - - pci:v00008086d000024C5sv00001179sd00000201* -- ID_MODEL_FROM_DATABASE=Toshiba Tecra M1 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Toshiba Tecra M1) - - pci:v00008086d000024C5sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (X10 Laptop) - - pci:v00008086d000024C5sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P30/P35 notebook) - - pci:v00008086d000024C5sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (GA-8PE667 Ultra) - - pci:v00008086d000024C5sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (845PE Max (MS-6580)) - - pci:v00008086d000024C5sv00001734sd00001005* -- ID_MODEL_FROM_DATABASE=D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T) - - pci:v00008086d000024C5sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Amilo M1420) - - pci:v00008086d000024C5sv00008086sd000024C5* -- ID_MODEL_FROM_DATABASE=Dell Dimension 2400 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Dell Dimension 2400) - - pci:v00008086d000024C6* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller - - pci:v00008086d000024C6sv00001014sd00000524* -- ID_MODEL_FROM_DATABASE=ThinkPad T41 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) - - pci:v00008086d000024C6sv00001014sd00000525* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) - - pci:v00008086d000024C6sv00001014sd00000559* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad R50e) - - pci:v00008086d000024C6sv00001025sd0000003C* -- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compal CL50 motherboard) implementation -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Aspire 2001WLCi (Compal CL50 motherboard) implementation) - - pci:v00008086d000024C6sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (TravelMate 290) - - pci:v00008086d000024C6sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Inspiron 5160) - - pci:v00008086d000024C6sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC8000 laptop) - - pci:v00008086d000024C6sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC6000 laptop) - - pci:v00008086d000024C6sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (tc1100 tablet) - - pci:v00008086d000024C6sv00001043sd00001716* -- ID_MODEL_FROM_DATABASE=M2400N laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M2400N laptop) - - pci:v00008086d000024C6sv00001043sd00001826* -- ID_MODEL_FROM_DATABASE=M6800N -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M6800N) - - pci:v00008086d000024C6sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (MIM2000) - - pci:v00008086d000024C6sv0000134Dsd00004C21* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Latitude D500) - - pci:v00008086d000024C6sv0000144Dsd00002115* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (X10 Laptop) - - pci:v00008086d000024C6sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (P30/P35 notebook) - - pci:v00008086d000024C6sv000014F1sd00005422* -- ID_MODEL_FROM_DATABASE=D480 MDC V.9x Modem -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (D480 MDC V.9x Modem) - - pci:v00008086d000024C7* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 - - pci:v00008086d000024C7sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NetVista A30p) - - pci:v00008086d000024C7sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (ThinkPad) - - pci:v00008086d000024C7sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (TravelMate 290) - - pci:v00008086d000024C7sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Optiplex GX260) - - pci:v00008086d000024C7sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D505) - - pci:v00008086d000024C7sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 700m/710m) - - pci:v00008086d000024C7sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 5160) - - pci:v00008086d000024C7sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC8000 laptop) - - pci:v00008086d000024C7sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC6000 laptop) - - pci:v00008086d000024C7sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (tc1100 tablet) - - pci:v00008086d000024C7sv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P4B533) - - pci:v00008086d000024C7sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (MIM2000) - - pci:v00008086d000024C7sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P30/P35 notebook) - - pci:v00008086d000024C7sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (845PE Max (MS-6580)) - - pci:v00008086d000024C7sv00001509sd00002990* -- ID_MODEL_FROM_DATABASE=Averatec 5110H -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Averatec 5110H) - - pci:v00008086d000024C7sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C7sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C7sv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude X300) - - pci:v00008086d000024C7sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D400/D500) - - pci:v00008086d000024C7sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CC9-SAMBA) - - pci:v00008086d000024C7sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CD2-BEBOP) - - pci:v00008086d000024CA* - ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller - - pci:v00008086d000024CAsv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (ThinkPad) - - pci:v00008086d000024CAsv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (TravelMate 290) - - pci:v00008086d000024CAsv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude X300) - - pci:v00008086d000024CAsv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D505) - - pci:v00008086d000024CAsv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 700m/710m) - - pci:v00008086d000024CAsv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 5160) - - pci:v00008086d000024CAsv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC8000 laptop) - - pci:v00008086d000024CAsv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC6000 laptop) - - pci:v00008086d000024CAsv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (tc1100 tablet) - - pci:v00008086d000024CAsv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (MIM2000) - - pci:v00008086d000024CAsv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (X10 Laptop) - - pci:v00008086d000024CAsv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (P30/P35 notebook) - - pci:v00008086d000024CAsv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Amilo M1420) - - pci:v00008086d000024CAsv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D400/D500) - - pci:v00008086d000024CB* - ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller - - pci:v00008086d000024CBsv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (NetVista A30p) - - pci:v00008086d000024CBsv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Optiplex GX260) - - pci:v00008086d000024CBsv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (P4B533) - - pci:v00008086d000024CBsv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard IDE -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (PC8 onboard IDE) - - pci:v00008086d000024CBsv00001458sd000024C2* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (GA-8PE667 Ultra) - - pci:v00008086d000024CBsv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (845PE Max (MS-6580)) - - pci:v00008086d000024CBsv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024CBsv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d000024CBsv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CC9-SAMBA) - - pci:v00008086d000024CBsv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CD2-BEBOP) - - pci:v00008086d000024CC* - ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge - - pci:v00008086d000024CCsv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (P30 notebook) - - pci:v00008086d000024CCsv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (Amilo M1420) - - pci:v00008086d000024CD* - ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller - - pci:v00008086d000024CDsv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NetVista A30p) - - pci:v00008086d000024CDsv00001014sd0000052E* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (ThinkPad) - - pci:v00008086d000024CDsv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (TravelMate 290) - - pci:v00008086d000024CDsv00001028sd0000011D* -- ID_MODEL_FROM_DATABASE=Latitude D600 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D600) - - pci:v00008086d000024CDsv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Optiplex GX260) - - pci:v00008086d000024CDsv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D400) - - pci:v00008086d000024CDsv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D500) - - pci:v00008086d000024CDsv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D505) - - pci:v00008086d000024CDsv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 700m/710m) - - pci:v00008086d000024CDsv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 5160) - - pci:v00008086d000024CDsv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC8000 laptop) - - pci:v00008086d000024CDsv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC6000 laptop) - - pci:v00008086d000024CDsv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (tc1100 tablet) - - pci:v00008086d000024CDsv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P4B533) - - pci:v00008086d000024CDsv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (MIM2000) - - pci:v00008086d000024CDsv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard USB 2.0 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (PC8 onboard USB 2.0) - - pci:v00008086d000024CDsv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Satellite 2430 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Satellite 2430) - - pci:v00008086d000024CDsv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (X10 Laptop) - - pci:v00008086d000024CDsv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P30/P35 notebook) - - pci:v00008086d000024CDsv00001462sd00003981* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (845PE Max (MS-6580)) - - pci:v00008086d000024CDsv00001509sd00001968* -- ID_MODEL_FROM_DATABASE=Averatec 5110H -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Averatec 5110H) - - pci:v00008086d000024CDsv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024CDsv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Amilo M1420) - - pci:v00008086d000024CDsv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (QEMU Virtual Machine) - - pci:v00008086d000024CDsv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d000024CDsv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude X300) - - pci:v00008086d000024CDsv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CC9-SAMBA) - - pci:v00008086d000024CDsv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CD2-BEBOP) - - pci:v00008086d000024D0* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) LPC Interface Bridge -@@ -62043,436 +62043,436 @@ pci:v00008086d000024D1* - ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller - - pci:v00008086d000024D1sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D1sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision 470) - - pci:v00008086d000024D1sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (PowerEdge SC1425) - - pci:v00008086d000024D1sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (d530 CMT (DG746A)) - - pci:v00008086d000024D1sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (ProLiant DL140 G2) - - pci:v00008086d000024D1sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4P800 series motherboard) - - pci:v00008086d000024D1sv00001458sd000024D1* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D1sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D1sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D1sv00001565sd00005200* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4TSV Motherboard (865G)) - - pci:v00008086d000024D1sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4SCE Mainboard) - - pci:v00008086d000024D1sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (S875WP1-E mainboard) - - pci:v00008086d000024D1sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GBF) - - pci:v00008086d000024D1sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GLC) - - pci:v00008086d000024D1sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (D865PERL mainboard) - - pci:v00008086d000024D2* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 - - pci:v00008086d000024D2sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) - - pci:v00008086d000024D2sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) - - pci:v00008086d000024D2sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D2sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision 470) - - pci:v00008086d000024D2sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1850 onboard UHCI) - - pci:v00008086d000024D2sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 2850 onboard UHCI) - - pci:v00008086d000024D2sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 6850 onboard UHCI) - - pci:v00008086d000024D2sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1800) - - pci:v00008086d000024D2sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge SC1425) - - pci:v00008086d000024D2sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (NX9500) - - pci:v00008086d000024D2sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (d530 CMT (DG746A)) - - pci:v00008086d000024D2sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (ProLiant DL140 G2) - - pci:v00008086d000024D2sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D2sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (GA-8IPE1000/8KNXP motherboard) - - pci:v00008086d000024D2sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D2sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4TSV Motherboard (865G)) - - pci:v00008086d000024D2sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4SCE Mainboard) - - pci:v00008086d000024D2sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PRIMERGY RX/TX series onboard UHCI) - - pci:v00008086d000024D2sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (S875WP1-E mainboard) - - pci:v00008086d000024D2sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GBF) - - pci:v00008086d000024D2sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GLC) - - pci:v00008086d000024D2sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (D865PERL mainboard) - - pci:v00008086d000024D3* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller - - pci:v00008086d000024D3sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) - - pci:v00008086d000024D3sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) - - pci:v00008086d000024D3sv00001028sd00000156* -- ID_MODEL_FROM_DATABASE=Precision 360 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 360) - - pci:v00008086d000024D3sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D3sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 470) - - pci:v00008086d000024D3sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d330 uT -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (d330 uT) - - pci:v00008086d000024D3sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (ProLiant DL140 G2) - - pci:v00008086d000024D3sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D3sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D3sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D3sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D3sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4TSV Motherboard (865G)) - - pci:v00008086d000024D3sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4SCE Mainboard) - - pci:v00008086d000024D3sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series SMBus -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (PRIMERGY RX/TX S2 series SMBus) - - pci:v00008086d000024D3sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (S875WP1-E mainboard) - - pci:v00008086d000024D3sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GBF) - - pci:v00008086d000024D3sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GLC) - - pci:v00008086d000024D3sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (D865PERL mainboard) - - pci:v00008086d000024D4* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 - - pci:v00008086d000024D4sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) - - pci:v00008086d000024D4sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) - - pci:v00008086d000024D4sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D4sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision 470) - - pci:v00008086d000024D4sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1850 onboard UHCI) - - pci:v00008086d000024D4sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 2850 onboard UHCI) - - pci:v00008086d000024D4sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 6850 onboard UHCI) - - pci:v00008086d000024D4sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1800) - - pci:v00008086d000024D4sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge SC1425) - - pci:v00008086d000024D4sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (NX9500) - - pci:v00008086d000024D4sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (d530 CMT (DG746A)) - - pci:v00008086d000024D4sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (ProLiant DL140 G2) - - pci:v00008086d000024D4sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D4sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D4sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D4sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D4sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4TSV Motherboard (865G)) - - pci:v00008086d000024D4sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4SCE Mainboard) - - pci:v00008086d000024D4sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PRIMERGY RX/TX S2 series onboard UHCI) - - pci:v00008086d000024D4sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (S875WP1-E mainboard) - - pci:v00008086d000024D4sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GBF) - - pci:v00008086d000024D4sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GLC) - - pci:v00008086d000024D4sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (D865PERL mainboard) - - pci:v00008086d000024D5* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller - - pci:v00008086d000024D5sv0000100Asd0000147B* -- ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Abit IS7-E motherboard) - - pci:v00008086d000024D5sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D5sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision 470) - - pci:v00008086d000024D5sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (NX9500) - - pci:v00008086d000024D5sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d330 uT -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (d330 uT) - - pci:v00008086d000024D5sv00001043sd000080F3* -- ID_MODEL_FROM_DATABASE=P4P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P4P800 series motherboard) - - pci:v00008086d000024D5sv00001043sd0000810F* -- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P5P800-MX Mainboard) - - pci:v00008086d000024D5sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (GA-8IPE1000/8KNXP motherboard) - - pci:v00008086d000024D5sv00001462sd00000080* -- ID_MODEL_FROM_DATABASE=865PE Neo2-V (MS-6788) Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2-V (MS-6788) Mainboard) - - pci:v00008086d000024D5sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D5sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D5sv00008086sd0000A000* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) - - pci:v00008086d000024D5sv00008086sd0000E000* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) - - pci:v00008086d000024D5sv00008086sd0000E001* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Desktop Board D865GBF) - - pci:v00008086d000024D5sv00008086sd0000E002* -- ID_MODEL_FROM_DATABASE=SoundMax Intergrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (SoundMax Intergrated Digital Audio) - - pci:v00008086d000024D6* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller - - pci:v00008086d000024D6sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller (NX9500) - - pci:v00008086d000024D7* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 - - pci:v00008086d000024D7sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (xSeries server mainboard) - - pci:v00008086d000024D7sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D7sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision 470) - - pci:v00008086d000024D7sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1850 onboard UHCI) - - pci:v00008086d000024D7sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 2850 onboard UHCI) - - pci:v00008086d000024D7sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 6850 onboard UHCI) - - pci:v00008086d000024D7sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1800) - - pci:v00008086d000024D7sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (NX9500) - - pci:v00008086d000024D7sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (d530 CMT (DG746A)) - - pci:v00008086d000024D7sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D7sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D7sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D7sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D7sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4TSV Motherboard (865G)) - - pci:v00008086d000024D7sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4SCE Mainboard) - - pci:v00008086d000024D7sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PRIMERGY RX/TX S2 series onboard UHCI) - - pci:v00008086d000024D7sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (S875WP1-E mainboard) - - pci:v00008086d000024D7sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GBF) - - pci:v00008086d000024D7sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GLC) - - pci:v00008086d000024D7sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (D865PERL mainboard) - - pci:v00008086d000024DB* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller - - pci:v00008086d000024DBsv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DBsv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DBsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024DBsv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision 470) - - pci:v00008086d000024DBsv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 IDE Controller -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 1850 IDE Controller) - - pci:v00008086d000024DBsv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 IDE Controller -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 2850 IDE Controller) - - pci:v00008086d000024DBsv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 IDE Controller -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 6850 IDE Controller) - - pci:v00008086d000024DBsv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge SC1425) - - pci:v00008086d000024DBsv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (NX9500) - - pci:v00008086d000024DBsv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (d530 CMT (DG746A)) - - pci:v00008086d000024DBsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4P800/P5P800 series motherboard) - - pci:v00008086d000024DBsv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024DBsv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024DBsv00001462sd00007580* -- ID_MODEL_FROM_DATABASE=MSI 875P -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (MSI 875P) - - pci:v00008086d000024DBsv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024DBsv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4TSV Motherboard (865G)) - - pci:v00008086d000024DBsv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4SCE Mainboard) - - pci:v00008086d000024DBsv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard IDE -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PRIMERGY RX/TX S2 series onboard IDE) - - pci:v00008086d000024DBsv00008086sd000024DB* -- ID_MODEL_FROM_DATABASE=P4C800 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4C800 Mainboard) - - pci:v00008086d000024DBsv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (S875WP1-E mainboard) - - pci:v00008086d000024DBsv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GBF) - - pci:v00008086d000024DBsv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GLC) - - pci:v00008086d000024DBsv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (D865PERL mainboard) - - pci:v00008086d000024DC* - ID_MODEL_FROM_DATABASE=82801EB (ICH5) LPC Interface Bridge -@@ -62481,142 +62481,142 @@ pci:v00008086d000024DD* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller - - pci:v00008086d000024DDsv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DDsv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DDsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024DDsv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision 470) - - pci:v00008086d000024DDsv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1850 onboard EHCI) - - pci:v00008086d000024DDsv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 2850 onboard EHCI) - - pci:v00008086d000024DDsv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 6850 onboard EHCI) - - pci:v00008086d000024DDsv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1800) - - pci:v00008086d000024DDsv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge SC1425) - - pci:v00008086d000024DDsv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (NX9500) - - pci:v00008086d000024DDsv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (d530 CMT (DG746A)) - - pci:v00008086d000024DDsv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (ProLiant DL140 G2) - - pci:v00008086d000024DDsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (P4P800/P5P800 series motherboard) - - pci:v00008086d000024DDsv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024DDsv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024DDsv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024DDsv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (S875WP1-E mainboard) - - pci:v00008086d000024DDsv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GBF) - - pci:v00008086d000024DDsv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GLC) - - pci:v00008086d000024DDsv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (D865PERL mainboard) - - pci:v00008086d000024DE* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 - - pci:v00008086d000024DEsv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (xSeries server mainboard) - - pci:v00008086d000024DEsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024DEsv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision 470) - - pci:v00008086d000024DEsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024DEsv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024DEsv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024DEsv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024DEsv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4TSV Motherboard (865G)) - - pci:v00008086d000024DEsv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4SCE Mainboard) - - pci:v00008086d000024DEsv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (PRIMERGY RX/TX S2 series onboard UHCI) - - pci:v00008086d000024DEsv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (S875WP1-E mainboard) - - pci:v00008086d000024DEsv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GBF) - - pci:v00008086d000024DEsv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GLC) - - pci:v00008086d000024DEsv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (D865PERL mainboard) - - pci:v00008086d000024DF* - ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller - - pci:v00008086d000024DFsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024F3* - ID_MODEL_FROM_DATABASE=Wireless 8260 - - pci:v00008086d000024F3sv00008086sd00000010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) - - pci:v00008086d000024F4* - ID_MODEL_FROM_DATABASE=Wireless 8260 - - pci:v00008086d000024F4sv00008086sd00000030* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) - - pci:v00008086d00002500* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) - - pci:v00008086d00002500sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Chipset -+ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (Precision Workstation 220 Chipset) - - pci:v00008086d00002500sv00001043sd0000801C* -- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset -+ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) - - pci:v00008086d00002501* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) - - pci:v00008086d00002501sv00001043sd0000801C* -- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset -+ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) - - pci:v00008086d0000250B* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge -@@ -62634,16 +62634,16 @@ pci:v00008086d00002530* - ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) - - pci:v00008086d00002530sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (Dimension 8100) - - pci:v00008086d00002530sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (TH7II-RAID) - - pci:v00008086d00002531* - ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) - - pci:v00008086d00002531sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) (Precision 530) - - pci:v00008086d00002532* - ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset AGP Bridge -@@ -62658,19 +62658,19 @@ pci:v00008086d00002540* - ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub - - pci:v00008086d00002540sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub (P4DP6) - - pci:v00008086d00002541* - ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller - - pci:v00008086d00002541sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (P4DP6) - - pci:v00008086d00002541sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d00002541sv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (SE7501HG2 Mainboard) - - pci:v00008086d00002543* - ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B PCI-to-PCI Bridge -@@ -62679,7 +62679,7 @@ pci:v00008086d00002544* - ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller - - pci:v00008086d00002544sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d00002545* - ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface C PCI-to-PCI Bridge -@@ -62697,10 +62697,10 @@ pci:v00008086d0000254C* - ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub - - pci:v00008086d0000254Csv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (Cx9 / Vx9 mainboard) - - pci:v00008086d0000254Csv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (SE7501HG2 Mainboard) - - pci:v00008086d00002550* - ID_MODEL_FROM_DATABASE=E7505 Memory Controller Hub -@@ -62724,13 +62724,13 @@ pci:v00008086d00002560* - ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface - - pci:v00008086d00002560sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (Optiplex GX260) - - pci:v00008086d00002560sv00001458sd00002560* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (GA-8PE667 Ultra) - - pci:v00008086d00002560sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (845PE Max (MS-6580)) - - pci:v00008086d00002561* - ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge -@@ -62739,31 +62739,31 @@ pci:v00008086d00002562* - ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device - - pci:v00008086d00002562sv00000E11sd000000B9* -- ID_MODEL_FROM_DATABASE=Evo D510 SFF -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (Evo D510 SFF) - - pci:v00008086d00002562sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (NetVista A30p) - - pci:v00008086d00002562sv00001734sd00001003* -- ID_MODEL_FROM_DATABASE=D1521 Mainboard (Fujitsu-Siemens) -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1521 Mainboard (Fujitsu-Siemens)) - - pci:v00008086d00002562sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d00002570* - ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface - - pci:v00008086d00002570sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (NX9500) - - pci:v00008086d00002570sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d330 uT -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (d330 uT) - - pci:v00008086d00002570sv00001043sd000080F2* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (P4P800/P5P800 series motherboard) - - pci:v00008086d00002570sv00001458sd00002570* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d00002571* - ID_MODEL_FROM_DATABASE=82865G/PE/P AGP Bridge -@@ -62772,25 +62772,25 @@ pci:v00008086d00002572* - ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller - - pci:v00008086d00002572sv00001028sd0000019D* -- ID_MODEL_FROM_DATABASE=Dimension 3000 -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Dimension 3000) - - pci:v00008086d00002572sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=D530 sff(dc578av) -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (D530 sff(dc578av)) - - pci:v00008086d00002572sv00001043sd000080A5* -- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (P5P800-MX Mainboard) - - pci:v00008086d00002572sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d00002572sv00001734sd0000101B* -- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Scenic E300 i865GV -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Fujitsu-Siemens Scenic E300 i865GV) - - pci:v00008086d00002572sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GBF) - - pci:v00008086d00002572sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GLC) - - pci:v00008086d00002573* - ID_MODEL_FROM_DATABASE=82865G/PE/P PCI to CSA Bridge -@@ -62802,13 +62802,13 @@ pci:v00008086d00002578* - ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub - - pci:v00008086d00002578sv00001458sd00002578* -- ID_MODEL_FROM_DATABASE=GA-8KNXP motherboard (875P) -+ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (GA-8KNXP motherboard (875P)) - - pci:v00008086d00002578sv00001462sd00007580* -- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) -+ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (MS-6758 (875P Neo)) - - pci:v00008086d00002578sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Motherboard -+ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (P4SCE Motherboard) - - pci:v00008086d00002579* - ID_MODEL_FROM_DATABASE=82875P Processor to AGP Controller -@@ -62823,13 +62823,13 @@ pci:v00008086d00002580* - ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub - - pci:v00008086d00002580sv00001458sd00002580* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (GA-8I915ME-G Mainboard) - - pci:v00008086d00002580sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (915P/G Neo2) - - pci:v00008086d00002580sv00001734sd0000105B* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (Scenic W620) - - pci:v00008086d00002581* - ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL PCI Express Root Port -@@ -62838,28 +62838,28 @@ pci:v00008086d00002582* - ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller - - pci:v00008086d00002582sv00001028sd00001079* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Optiplex GX280) - - pci:v00008086d00002582sv0000103Csd00003006* -- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (DC7100 SFF(DX878AV)) - - pci:v00008086d00002582sv00001043sd00002582* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002582sv00001458sd00002582* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d00002582sv00001734sd0000105B* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Scenic W620) - - pci:v00008086d00002582sv00001849sd00002582* -- ID_MODEL_FROM_DATABASE=ASRock P4Dual-915GL -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (ASRock P4Dual-915GL) - - pci:v00008086d00002584* - ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub - - pci:v00008086d00002584sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub (Dimension 8400) - - pci:v00008086d00002585* - ID_MODEL_FROM_DATABASE=82925X/XE PCI Express Root Port -@@ -62877,58 +62877,58 @@ pci:v00008086d00002590* - ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller - - pci:v00008086d00002590sv00001014sd00000575* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (ThinkPad Z60t) - - pci:v00008086d00002590sv00001028sd00000182* -- ID_MODEL_FROM_DATABASE=Dell Latitude C610 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Dell Latitude C610) - - pci:v00008086d00002590sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Compaq nw8240/nx8220) - - pci:v00008086d00002590sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (NX6110/NC6120) - - pci:v00008086d00002590sv0000104Dsd000081B7* -- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) - - pci:v00008086d00002590sv0000A304sd000081B7* -- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) - - pci:v00008086d00002590sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CCD-CALYPSO) - - pci:v00008086d00002590sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CD3-JIVE) - - pci:v00008086d00002590sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (XB1) - - pci:v00008086d00002591* - ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port - - pci:v00008086d00002591sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002592* - ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller - - pci:v00008086d00002592sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) - - pci:v00008086d00002592sv0000103Csd0000308A* -- ID_MODEL_FROM_DATABASE=NC6220 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NC6220) - - pci:v00008086d00002592sv00001043sd00001881* -- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) - - pci:v00008086d00002592sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) - - pci:v00008086d00002592sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) - - pci:v00008086d00002592sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) - - pci:v00008086d000025A1* - ID_MODEL_FROM_DATABASE=6300ESB LPC Interface Controller -@@ -62937,79 +62937,79 @@ pci:v00008086d000025A2* - ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller - - pci:v00008086d000025A2sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A2sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer IDE -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (V5D Single Board Computer IDE) - - pci:v00008086d000025A2sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A2sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CE9) - - pci:v00008086d000025A2sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CL9 mainboard) - - pci:v00008086d000025A2sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (PSL09 PrPMC) - - pci:v00008086d000025A3* - ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller - - pci:v00008086d000025A3sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A3sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A3sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CE9) - - pci:v00008086d000025A3sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CL9 mainboard) - - pci:v00008086d000025A3sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025A3sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (PSL09 PrPMC) - - pci:v00008086d000025A4* - ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller - - pci:v00008086d000025A4sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A4sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (V5D Single Board Computer) - - pci:v00008086d000025A4sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A4sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CE9) - - pci:v00008086d000025A4sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CL9 mainboard) - - pci:v00008086d000025A4sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025A4sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (PSL09 PrPMC) - - pci:v00008086d000025A6* - ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller - - pci:v00008086d000025A6sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A6sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CE9) - - pci:v00008086d000025A6sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CL9 mainboard) - - pci:v00008086d000025A7* - ID_MODEL_FROM_DATABASE=6300ESB AC'97 Modem Controller -@@ -63018,121 +63018,121 @@ pci:v00008086d000025A9* - ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller - - pci:v00008086d000025A9sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A9sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (V5D Single Board Computer USB) - - pci:v00008086d000025A9sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A9sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) - - pci:v00008086d000025A9sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) - - pci:v00008086d000025A9sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025A9sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) - - pci:v00008086d000025AA* - ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller - - pci:v00008086d000025AAsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025AAsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025AAsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) - - pci:v00008086d000025AAsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) - - pci:v00008086d000025AAsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025AAsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) - - pci:v00008086d000025AB* - ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer - - pci:v00008086d000025ABsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025ABsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (V5D Single Board Computer) - - pci:v00008086d000025ABsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CR11/VR11 Single Board Computer) - - pci:v00008086d000025ABsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CE9) - - pci:v00008086d000025ABsv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (QEMU Virtual Machine) - - pci:v00008086d000025ABsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CL9 mainboard) - - pci:v00008086d000025ABsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Telum ASLP10 Processor AMC) - - pci:v00008086d000025ABsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (PSL09 PrPMC) - - pci:v00008086d000025AC* - ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller - - pci:v00008086d000025ACsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025ACsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (V5D Single Board Computer) - - pci:v00008086d000025ACsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025ACsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CE9) - - pci:v00008086d000025ACsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CL9 mainboard) - - pci:v00008086d000025ACsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025ACsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (PSL09 PrPMC) - - pci:v00008086d000025AD* - ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller - - pci:v00008086d000025ADsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025ADsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB 2.0 -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (V5D Single Board Computer USB 2.0) - - pci:v00008086d000025ADsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025ADsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CE9) - - pci:v00008086d000025ADsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CL9 mainboard) - - pci:v00008086d000025ADsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025ADsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (PSL09 PrPMC) - - pci:v00008086d000025AE* - ID_MODEL_FROM_DATABASE=6300ESB 64-bit PCI-X Bridge -@@ -63141,13 +63141,13 @@ pci:v00008086d000025B0* - ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller - - pci:v00008086d000025B0sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025B0sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025B0sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (PSL09 PrPMC) - - pci:v00008086d000025C0* - ID_MODEL_FROM_DATABASE=5000X Chipset Memory Controller Hub -@@ -63159,16 +63159,16 @@ pci:v00008086d000025D4* - ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub - - pci:v00008086d000025D4sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub (X7DVL-E-O motherboard) - - pci:v00008086d000025D8* - ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub - - pci:v00008086d000025D8sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (X7DBN Motherboard) - - pci:v00008086d000025D8sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (S5000PSLSATA Server Board) - - pci:v00008086d000025E2* - ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x4 Port 2 -@@ -63192,79 +63192,79 @@ pci:v00008086d000025F0* - ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers - - pci:v00008086d000025F0sv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 FSB Registers -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (PowerEdge 1955 FSB Registers) - - pci:v00008086d000025F0sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (ProLiant DL140 G3) - - pci:v00008086d000025F0sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F0sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DBN Motherboard) - - pci:v00008086d000025F0sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F1* - ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers - - pci:v00008086d000025F1sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) - - pci:v00008086d000025F1sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F1sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) - - pci:v00008086d000025F1sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F3* - ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers - - pci:v00008086d000025F3sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) - - pci:v00008086d000025F3sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F3sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) - - pci:v00008086d000025F3sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F5* - ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers - - pci:v00008086d000025F5sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) - - pci:v00008086d000025F5sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F5sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) - - pci:v00008086d000025F5sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F6* - ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers - - pci:v00008086d000025F6sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) - - pci:v00008086d000025F6sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F6sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) - - pci:v00008086d000025F6sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F7* - ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x8 Port 2-3 -@@ -63282,7 +63282,7 @@ pci:v00008086d00002600* - ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 - - pci:v00008086d00002600sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Hub Interface -+ ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 (PowerEdge 6850 Hub Interface) - - pci:v00008086d00002601* - ID_MODEL_FROM_DATABASE=E8500/E8501 PCI Express x4 Port D -@@ -63363,76 +63363,76 @@ pci:v00008086d00002620* - ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge - - pci:v00008086d00002620sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Bridge -+ ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge (PowerEdge 6850 Memory Bridge) - - pci:v00008086d00002621* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers - - pci:v00008086d00002621sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 XMB Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers (PowerEdge 6850 XMB Registers) - - pci:v00008086d00002622* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers - - pci:v00008086d00002622sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Interleaving Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers (PowerEdge 6850 Memory Interleaving Registers) - - pci:v00008086d00002623* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration - - pci:v00008086d00002623sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 DDR Initialization and Calibration -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration (PowerEdge 6850 DDR Initialization and Calibration) - - pci:v00008086d00002624* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002624sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002625* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002625sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002626* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002626sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002627* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002627sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002640* - ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge - - pci:v00008086d00002640sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (915P/G Neo2) - - pci:v00008086d00002640sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (Scenic W620) - - pci:v00008086d00002640sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CCD-CALYPSO) - - pci:v00008086d00002640sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CD3-JIVE) - - pci:v00008086d00002640sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (XB1) - - pci:v00008086d00002641* - ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge - - pci:v00008086d00002641sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (Compaq nw8240/nx8220) - - pci:v00008086d00002641sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (NX6110/NC6120) - - pci:v00008086d00002642* - ID_MODEL_FROM_DATABASE=82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge -@@ -63441,34 +63441,34 @@ pci:v00008086d00002651* - ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller - - pci:v00008086d00002651sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Optiplex GX280) - - pci:v00008086d00002651sv00001043sd00002601* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002651sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Scenic W620) - - pci:v00008086d00002651sv00008086sd00004147* -- ID_MODEL_FROM_DATABASE=D915GAG Motherboard -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (D915GAG Motherboard) - - pci:v00008086d00002651sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CCD-CALYPSO) - - pci:v00008086d00002651sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CD3-JIVE) - - pci:v00008086d00002651sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (XB1) - - pci:v00008086d00002652* - ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller - - pci:v00008086d00002652sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (Dimension 8400) - - pci:v00008086d00002652sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (915P/G Neo2) - - pci:v00008086d00002653* - ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) SATA Controller -@@ -63477,289 +63477,289 @@ pci:v00008086d00002658* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 - - pci:v00008086d00002658sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Dimension 8400) - - pci:v00008086d00002658sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Optiplex GX280) - - pci:v00008086d00002658sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Compaq nw8240/nx8220) - - pci:v00008086d00002658sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (NX6110/NC6120) - - pci:v00008086d00002658sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (P5GD1-VW Mainboard) - - pci:v00008086d00002658sv00001458sd00002558* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (GA-8I915ME-G Mainboard) - - pci:v00008086d00002658sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (915P/G Neo2) - - pci:v00008086d00002658sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Scenic W620) - - pci:v00008086d00002658sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CCD-CALYPSO) - - pci:v00008086d00002658sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CD3-JIVE) - - pci:v00008086d00002658sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (XB1) - - pci:v00008086d00002659* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 - - pci:v00008086d00002659sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Dimension 8400) - - pci:v00008086d00002659sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Optiplex GX280) - - pci:v00008086d00002659sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Compaq nw8240/nx8220) - - pci:v00008086d00002659sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (NX6110/NC6120) - - pci:v00008086d00002659sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (P5GD1-VW Mainboard) - - pci:v00008086d00002659sv00001458sd00002659* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (GA-8I915ME-G Mainboard) - - pci:v00008086d00002659sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (915P/G Neo2) - - pci:v00008086d00002659sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Scenic W620) - - pci:v00008086d00002659sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CCD-CALYPSO) - - pci:v00008086d00002659sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CD3-JIVE) - - pci:v00008086d00002659sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (XB1) - - pci:v00008086d0000265A* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 - - pci:v00008086d0000265Asv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Dimension 8400) - - pci:v00008086d0000265Asv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Optiplex GX280) - - pci:v00008086d0000265Asv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Compaq nw8240/nx8220) - - pci:v00008086d0000265Asv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (NX6110/NC6120) - - pci:v00008086d0000265Asv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (P5GD1-VW Mainboard) - - pci:v00008086d0000265Asv00001458sd0000265A* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (GA-8I915ME-G Mainboard) - - pci:v00008086d0000265Asv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (915P/G Neo2) - - pci:v00008086d0000265Asv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Scenic W620) - - pci:v00008086d0000265Asv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CCD-CALYPSO) - - pci:v00008086d0000265Asv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CD3-JIVE) - - pci:v00008086d0000265Asv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (XB1) - - pci:v00008086d0000265B* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 - - pci:v00008086d0000265Bsv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Dimension 8400) - - pci:v00008086d0000265Bsv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Optiplex GX280) - - pci:v00008086d0000265Bsv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (NX6110/NC6120) - - pci:v00008086d0000265Bsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (P5GD1-VW Mainboard) - - pci:v00008086d0000265Bsv00001458sd0000265A* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (GA-8I915ME-G Mainboard) - - pci:v00008086d0000265Bsv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (915P/G Neo2) - - pci:v00008086d0000265Bsv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Scenic W620) - - pci:v00008086d0000265Bsv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CCD-CALYPSO) - - pci:v00008086d0000265Bsv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CD3-JIVE) - - pci:v00008086d0000265Bsv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (XB1) - - pci:v00008086d0000265C* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller - - pci:v00008086d0000265Csv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 8400) - - pci:v00008086d0000265Csv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Optiplex GX280) - - pci:v00008086d0000265Csv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000265Csv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (NX6110/NC6120) - - pci:v00008086d0000265Csv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (P5GD1-VW Mainboard) - - pci:v00008086d0000265Csv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000265Csv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (915P/G Neo2) - - pci:v00008086d0000265Csv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Scenic W620) - - pci:v00008086d0000265Csv00008086sd0000265C* -- ID_MODEL_FROM_DATABASE=Dimension 3100 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 3100) - - pci:v00008086d0000265Csv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CCD-CALYPSO) - - pci:v00008086d0000265Csv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CD3-JIVE) - - pci:v00008086d0000265Csv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (XB1) - - pci:v00008086d00002660* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 - - pci:v00008086d00002660sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002660sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (NX6110/NC6120) - - pci:v00008086d00002660sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CCD-CALYPSO) - - pci:v00008086d00002660sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CD3-JIVE) - - pci:v00008086d00002660sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (XB1) - - pci:v00008086d00002662* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 - - pci:v00008086d00002662sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002662sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CCD-CALYPSO) - - pci:v00008086d00002662sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CD3-JIVE) - - pci:v00008086d00002662sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (XB1) - - pci:v00008086d00002664* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 - - pci:v00008086d00002664sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CCD-CALYPSO) - - pci:v00008086d00002664sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CD3-JIVE) - - pci:v00008086d00002664sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (XB1) - - pci:v00008086d00002666* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 - - pci:v00008086d00002666sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CCD-CALYPSO) - - pci:v00008086d00002666sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CD3-JIVE) - - pci:v00008086d00002666sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (XB1) - - pci:v00008086d00002668* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - - pci:v00008086d00002668sv00001014sd000005B7* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (ThinkPad Z60t) - - pci:v00008086d00002668sv0000103Csd00002A09* -- ID_MODEL_FROM_DATABASE=PufferM-UL8E -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (PufferM-UL8E) - - pci:v00008086d00002668sv00001043sd00001173* -- ID_MODEL_FROM_DATABASE=Asus A6VC -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (Asus A6VC) - - pci:v00008086d00002668sv00001043sd0000814E* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002668sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (915P/G Neo2) - - pci:v00008086d00002668sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (QEMU Virtual Machine) - - pci:v00008086d0000266A* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller - - pci:v00008086d0000266Asv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Dimension 8400) - - pci:v00008086d0000266Asv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Optiplex GX280) - - pci:v00008086d0000266Asv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (P5GD1-VW Mainboard) - - pci:v00008086d0000266Asv00001458sd0000266A* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000266Asv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (915P/G Neo2) - - pci:v00008086d0000266Asv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Scenic W620) - - pci:v00008086d0000266Asv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CCD-CALYPSO) - - pci:v00008086d0000266Asv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CD3-JIVE) - - pci:v00008086d0000266Asv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (XB1) - - pci:v00008086d0000266C* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller -@@ -63768,103 +63768,103 @@ pci:v00008086d0000266D* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller - - pci:v00008086d0000266Dsv00001025sd0000006A* -- ID_MODEL_FROM_DATABASE=Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop) -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)) - - pci:v00008086d0000266Dsv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000266Dsv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (NX6110/NC6120) - - pci:v00008086d0000266E* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller - - pci:v00008086d0000266Esv00001025sd0000006A* -- ID_MODEL_FROM_DATABASE=Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop) -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)) - - pci:v00008086d0000266Esv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dimension 8400) - - pci:v00008086d0000266Esv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Optiplex GX280) - - pci:v00008086d0000266Esv00001028sd00000182* -- ID_MODEL_FROM_DATABASE=Latitude D610 Laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Latitude D610 Laptop) - - pci:v00008086d0000266Esv00001028sd00000187* -- ID_MODEL_FROM_DATABASE=Dell Precision M70 Laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dell Precision M70 Laptop) - - pci:v00008086d0000266Esv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Inspiron 6000 laptop) - - pci:v00008086d0000266Esv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000266Esv0000103Csd00000944* -- ID_MODEL_FROM_DATABASE=Compaq NC6220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq NC6220) - - pci:v00008086d0000266Esv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (NX6110/NC6120) - - pci:v00008086d0000266Esv0000103Csd00003006* -- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (DC7100 SFF(DX878AV)) - - pci:v00008086d0000266Esv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000266Esv0000152Dsd00000745* -- ID_MODEL_FROM_DATABASE=Packard Bell A8550 Laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Packard Bell A8550 Laptop) - - pci:v00008086d0000266Esv00001734sd0000105A* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Scenic W620) - - pci:v00008086d0000266F* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller - - pci:v00008086d0000266Fsv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Dimension 8400) - - pci:v00008086d0000266Fsv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000266Fsv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (NX6110/NC6120) - - pci:v00008086d0000266Fsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (P5GD1-VW Mainboard) - - pci:v00008086d0000266Fsv00001458sd0000266F* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000266Fsv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (915P/G Neo2) - - pci:v00008086d0000266Fsv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Scenic W620) - - pci:v00008086d0000266Fsv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CCD-CALYPSO) - - pci:v00008086d0000266Fsv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CD3-JIVE) - - pci:v00008086d0000266Fsv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (XB1) - - pci:v00008086d00002670* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller - - pci:v00008086d00002670sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (ProLiant DL140 G3) - - pci:v00008086d00002670sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DVL-E-O motherboard) - - pci:v00008086d00002670sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DBN Motherboard) - - pci:v00008086d00002670sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002680* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SATA IDE Controller -@@ -63873,22 +63873,22 @@ pci:v00008086d00002681* - ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller - - pci:v00008086d00002681sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (ProLiant DL140 G3) - - pci:v00008086d00002681sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DVL-E-O motherboard) - - pci:v00008086d00002681sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DBN Motherboard) - - pci:v00008086d00002681sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002682* - ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller - - pci:v00008086d00002682sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=Adaptec Serial ATA HostRAID -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller (Adaptec Serial ATA HostRAID) - - pci:v00008086d00002683* - ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller -@@ -63897,109 +63897,109 @@ pci:v00008086d00002688* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 - - pci:v00008086d00002688sv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge 1955 onboard USB) - - pci:v00008086d00002688sv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge R900 onboard USB) - - pci:v00008086d00002688sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (ProLiant DL140 G3) - - pci:v00008086d00002688sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DVL-E-O motherboard) - - pci:v00008086d00002688sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DBN Motherboard) - - pci:v00008086d00002688sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002689* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 - - pci:v00008086d00002689sv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge 1955 onboard USB) - - pci:v00008086d00002689sv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge R900 onboard USB) - - pci:v00008086d00002689sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (ProLiant DL140 G3) - - pci:v00008086d00002689sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DVL-E-O motherboard) - - pci:v00008086d00002689sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DBN Motherboard) - - pci:v00008086d00002689sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000268A* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 - - pci:v00008086d0000268Asv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (PowerEdge R900 onboard USB) - - pci:v00008086d0000268Asv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (ProLiant DL140 G3) - - pci:v00008086d0000268Asv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DVL-E-O motherboard) - - pci:v00008086d0000268Asv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DBN Motherboard) - - pci:v00008086d0000268Asv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000268B* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 - - pci:v00008086d0000268Bsv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (PowerEdge R900 onboard USB) - - pci:v00008086d0000268Bsv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (X7DVL-E-O motherboard) - - pci:v00008086d0000268Bsv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000268C* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller - - pci:v00008086d0000268Csv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge 1955 onboard USB) - - pci:v00008086d0000268Csv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge R900 onboard USB) - - pci:v00008086d0000268Csv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (ProLiant DL140 G3) - - pci:v00008086d0000268Csv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DVL-E-O motherboard) - - pci:v00008086d0000268Csv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DBN Motherboard) - - pci:v00008086d0000268Csv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002690* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 - - pci:v00008086d00002690sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (ProLiant DL140 G3) - - pci:v00008086d00002690sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (X7DBN Motherboard) - - pci:v00008086d00002692* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 - - pci:v00008086d00002692sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 (ProLiant DL140 G3) - - pci:v00008086d00002694* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 3 -@@ -64020,49 +64020,49 @@ pci:v00008086d0000269B* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller - - pci:v00008086d0000269Bsv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (ProLiant DL140 G3) - - pci:v00008086d0000269Bsv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DVL-E-O motherboard) - - pci:v00008086d0000269Bsv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DBN Motherboard) - - pci:v00008086d0000269Bsv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000269E* - ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller - - pci:v00008086d0000269Esv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (ProLiant DL140 G3) - - pci:v00008086d0000269Esv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DVL-E-O motherboard) - - pci:v00008086d0000269Esv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DBN Motherboard) - - pci:v00008086d00002770* - ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub - - pci:v00008086d00002770sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (OptiPlex GX620) - - pci:v00008086d00002770sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Pavilion A1512X) - - pci:v00008086d00002770sv00001043sd0000817A* -- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (P5LD2-VM Mainboard) - - pci:v00008086d00002770sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (E4500) - - pci:v00008086d00002770sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Wind PC MS-7418) - - pci:v00008086d00002770sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (DeskTop Board D945GTP) - - pci:v00008086d00002771* - ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL PCI Express Root Port -@@ -64071,16 +64071,16 @@ pci:v00008086d00002772* - ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller - - pci:v00008086d00002772sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Pavilion A1512X) - - pci:v00008086d00002772sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Wind PC MS-7418) - - pci:v00008086d00002772sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (DeskTop Board D945GTP) - - pci:v00008086d00002772sv00008086sd0000D605* -- ID_MODEL_FROM_DATABASE=Intel Desktop Board D945GCCR -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Intel Desktop Board D945GCCR) - - pci:v00008086d00002774* - ID_MODEL_FROM_DATABASE=82955X Memory Controller Hub -@@ -64095,10 +64095,10 @@ pci:v00008086d00002778* - ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub - - pci:v00008086d00002778sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge SC440) - - pci:v00008086d00002778sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge 860) - - pci:v00008086d00002779* - ID_MODEL_FROM_DATABASE=E7230/3000/3010 PCI Express Root Port -@@ -64110,7 +64110,7 @@ pci:v00008086d0000277C* - ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub - - pci:v00008086d0000277Csv00001043sd00008178* -- ID_MODEL_FROM_DATABASE=P5WDG2 WS Professional motherboard -+ ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub (P5WDG2 WS Professional motherboard) - - pci:v00008086d0000277D* - ID_MODEL_FROM_DATABASE=82975X PCI Express Root Port -@@ -64119,94 +64119,94 @@ pci:v00008086d00002782* - ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller - - pci:v00008086d00002782sv00001043sd00002582* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002782sv00001734sd0000105B* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (Scenic W620) - - pci:v00008086d00002792* - ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller - - pci:v00008086d00002792sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) - - pci:v00008086d00002792sv00001043sd00001881* -- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) - - pci:v00008086d00002792sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) - - pci:v00008086d00002792sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) - - pci:v00008086d00002792sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) - - pci:v00008086d000027A0* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub - - pci:v00008086d000027A0sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (9814 WKMI) - - pci:v00008086d000027A0sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (XPS M1210) - - pci:v00008086d000027A0sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nx9420 Notebook) - - pci:v00008086d000027A0sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (NC2400) - - pci:v00008086d000027A0sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nw8440) - - pci:v00008086d000027A0sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) - - pci:v00008086d000027A0sv000017AAsd00002015* -- ID_MODEL_FROM_DATABASE=ThinkPad T60 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) - - pci:v00008086d000027A0sv000017AAsd00002017* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027A1* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port - - pci:v00008086d000027A1sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nx9420 Notebook) - - pci:v00008086d000027A1sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) - - pci:v00008086d000027A2* - ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller - - pci:v00008086d000027A2sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (NC2400) - - pci:v00008086d000027A2sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027A2sv00009902sd00001584* -- ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (CCE MPL-D10H120F) - - pci:v00008086d000027A6* - ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller - - pci:v00008086d000027A6sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (NC2400) - - pci:v00008086d000027A6sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (CC11/CL11 integrated graphics (secondary)) - - pci:v00008086d000027A6sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027AC* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub - - pci:v00008086d000027ACsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub (CC11/CL11) - - pci:v00008086d000027AD* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express PCI Express Root Port -@@ -64215,178 +64215,178 @@ pci:v00008086d000027AE* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller - - pci:v00008086d000027AEsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (primary) -+ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller (CC11/CL11 integrated graphics (primary)) - - pci:v00008086d000027B0* - ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge - - pci:v00008086d000027B0sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (Pavilion A1512X) - - pci:v00008086d000027B0sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (DeskTop Board D945GTP) - - pci:v00008086d000027B8* - ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge - - pci:v00008086d000027B8sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (PowerEdge 860) - - pci:v00008086d000027B8sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (P5KPL-VM Motherboard) - - pci:v00008086d000027B8sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (E4500) - - pci:v00008086d000027B8sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (Wind PC MS-7418) - - pci:v00008086d000027B8sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (CC11/CL11) - - pci:v00008086d000027B8sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (DeskTop Board D945GTP) - - pci:v00008086d000027B9* - ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge - - pci:v00008086d000027B9sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (XPS M1210) - - pci:v00008086d000027B9sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nx9420 Notebook) - - pci:v00008086d000027B9sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (NC2400) - - pci:v00008086d000027B9sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) - - pci:v00008086d000027B9sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) - - pci:v00008086d000027B9sv000017AAsd00002009* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027BC* - ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller - - pci:v00008086d000027BCsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (D270S/D250S Motherboard) - - pci:v00008086d000027BCsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Notebook N150P) - - pci:v00008086d000027BCsv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (GA-D525TUD) - - pci:v00008086d000027BCsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (DeskTop Board D510MO) - - pci:v00008086d000027BCsv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Desktop Board D425KT) - - pci:v00008086d000027BD* - ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge - - pci:v00008086d000027BDsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge (9814 WKMI) - - pci:v00008086d000027C0* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] - - pci:v00008086d000027C0sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (OptiPlex GX620) - - pci:v00008086d000027C0sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge SC440) - - pci:v00008086d000027C0sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge 860) - - pci:v00008086d000027C0sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (P5KPL-VM Motherboard) - - pci:v00008086d000027C0sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (E4500) - - pci:v00008086d000027C0sv00001462sd00002310* -- ID_MODEL_FROM_DATABASE=MSI Hetis 945 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (MSI Hetis 945) - - pci:v00008086d000027C0sv00001462sd00007236* -- ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (945P Neo3-F Rev. 2.2 motherboard) - - pci:v00008086d000027C0sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Wind PC MS-7418) - - pci:v00008086d000027C0sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (CC11/CL11) - - pci:v00008086d000027C0sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Desktop Board D425KT) - - pci:v00008086d000027C0sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (DeskTop Board D945GTP) - - pci:v00008086d000027C1* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] - - pci:v00008086d000027C1sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (PowerEdge SC440) - - pci:v00008086d000027C1sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Pavilion A1512X) - - pci:v00008086d000027C1sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (D270S/D250S Motherboard) - - pci:v00008086d000027C1sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Notebook N150P) - - pci:v00008086d000027C1sv00001458sd0000B005* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (GA-D525TUD) - - pci:v00008086d000027C1sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (CC11/CL11) - - pci:v00008086d000027C1sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D510MO) - - pci:v00008086d000027C1sv00008086sd00005842* -- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D975XBX) - - pci:v00008086d000027C3* - ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] - - pci:v00008086d000027C3sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (CC11/CL11) - - pci:v00008086d000027C3sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (DeskTop Board D945GTP) - - pci:v00008086d000027C4* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] - - pci:v00008086d000027C4sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (9814 WKMI) - - pci:v00008086d000027C4sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) - - pci:v00008086d000027C4sv000017AAsd0000200E* -- ID_MODEL_FROM_DATABASE=ThinkPad T60 -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) - - pci:v00008086d000027C5* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] - - pci:v00008086d000027C5sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nx9420 Notebook) - - pci:v00008086d000027C5sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nw8440) - - pci:v00008086d000027C5sv000017AAsd0000200D* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027C6* - ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] -@@ -64395,553 +64395,553 @@ pci:v00008086d000027C8* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 - - pci:v00008086d000027C8sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (9814 WKMI) - - pci:v00008086d000027C8sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (OptiPlex GX620) - - pci:v00008086d000027C8sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (XPS M1210) - - pci:v00008086d000027C8sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge SC440) - - pci:v00008086d000027C8sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge 860) - - pci:v00008086d000027C8sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Pavilion A1512X) - - pci:v00008086d000027C8sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nx9420 Notebook) - - pci:v00008086d000027C8sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (NC2400) - - pci:v00008086d000027C8sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nw8440) - - pci:v00008086d000027C8sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (A6J-Q008) - - pci:v00008086d000027C8sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027C8sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) - - pci:v00008086d000027C8sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) - - pci:v00008086d000027C8sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Notebook N150P) - - pci:v00008086d000027C8sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (GA-D525TUD) - - pci:v00008086d000027C8sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Wind PC MS-7418) - - pci:v00008086d000027C8sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (CC11/CL11) - - pci:v00008086d000027C8sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027C8sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D510MO) - - pci:v00008086d000027C8sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Desktop Board D425KT) - - pci:v00008086d000027C8sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D945GTP) - - pci:v00008086d000027C9* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 - - pci:v00008086d000027C9sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (9814 WKMI) - - pci:v00008086d000027C9sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (OptiPlex GX620) - - pci:v00008086d000027C9sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (XPS M1210) - - pci:v00008086d000027C9sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge SC440) - - pci:v00008086d000027C9sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge 860) - - pci:v00008086d000027C9sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Pavilion A1512X) - - pci:v00008086d000027C9sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nx9420 Notebook) - - pci:v00008086d000027C9sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (NC2400) - - pci:v00008086d000027C9sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nw8440) - - pci:v00008086d000027C9sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (A6J-Q008) - - pci:v00008086d000027C9sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027C9sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) - - pci:v00008086d000027C9sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) - - pci:v00008086d000027C9sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Notebook N150P) - - pci:v00008086d000027C9sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (GA-D525TUD) - - pci:v00008086d000027C9sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Wind PC MS-7418) - - pci:v00008086d000027C9sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (CC11/CL11) - - pci:v00008086d000027C9sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027C9sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D510MO) - - pci:v00008086d000027C9sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Desktop Board D425KT) - - pci:v00008086d000027C9sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D945GTP) - - pci:v00008086d000027CA* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 - - pci:v00008086d000027CAsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (9814 WKMI) - - pci:v00008086d000027CAsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (OptiPlex GX620) - - pci:v00008086d000027CAsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (XPS M1210) - - pci:v00008086d000027CAsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge SC440) - - pci:v00008086d000027CAsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge 860) - - pci:v00008086d000027CAsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Pavilion A1512X) - - pci:v00008086d000027CAsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nx9420 Notebook) - - pci:v00008086d000027CAsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (NC2400) - - pci:v00008086d000027CAsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nw8440) - - pci:v00008086d000027CAsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (A6J-Q008) - - pci:v00008086d000027CAsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027CAsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) - - pci:v00008086d000027CAsv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) - - pci:v00008086d000027CAsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Notebook N150P) - - pci:v00008086d000027CAsv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (GA-D525TUD) - - pci:v00008086d000027CAsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Wind PC MS-7418) - - pci:v00008086d000027CAsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (CC11/CL11) - - pci:v00008086d000027CAsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027CAsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D510MO) - - pci:v00008086d000027CAsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D945GTP) - - pci:v00008086d000027CB* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 - - pci:v00008086d000027CBsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (9814 WKMI) - - pci:v00008086d000027CBsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (OptiPlex GX620) - - pci:v00008086d000027CBsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (XPS M1210) - - pci:v00008086d000027CBsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (PowerEdge SC440) - - pci:v00008086d000027CBsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Pavilion A1512X) - - pci:v00008086d000027CBsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nx9420 Notebook) - - pci:v00008086d000027CBsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (NC2400) - - pci:v00008086d000027CBsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nw8440) - - pci:v00008086d000027CBsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (A6J-Q008) - - pci:v00008086d000027CBsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027CBsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) - - pci:v00008086d000027CBsv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) - - pci:v00008086d000027CBsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Notebook N150P) - - pci:v00008086d000027CBsv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (GA-D525TUD) - - pci:v00008086d000027CBsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Wind PC MS-7418) - - pci:v00008086d000027CBsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (CC11/CL11) - - pci:v00008086d000027CBsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027CBsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D510MO) - - pci:v00008086d000027CBsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D945GTP) - - pci:v00008086d000027CC* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller - - pci:v00008086d000027CCsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (9814 WKMI) - - pci:v00008086d000027CCsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (OptiPlex GX620) - - pci:v00008086d000027CCsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (XPS M1210) - - pci:v00008086d000027CCsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge SC440) - - pci:v00008086d000027CCsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge 860) - - pci:v00008086d000027CCsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Pavilion A1512X) - - pci:v00008086d000027CCsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nx9420 Notebook) - - pci:v00008086d000027CCsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (NC2400) - - pci:v00008086d000027CCsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nw8440) - - pci:v00008086d000027CCsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (A6J-Q008) - - pci:v00008086d000027CCsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027CCsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) - - pci:v00008086d000027CCsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) - - pci:v00008086d000027CCsv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (GA-D525TUD) - - pci:v00008086d000027CCsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Wind PC MS-7418) - - pci:v00008086d000027CCsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (CC11/CL11) - - pci:v00008086d000027CCsv000017AAsd0000200B* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027CCsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D510MO) - - pci:v00008086d000027CCsv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Desktop Board D425KT) - - pci:v00008086d000027CCsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D945GTP) - - pci:v00008086d000027D0* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 - - pci:v00008086d000027D0sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nx9420 Notebook) - - pci:v00008086d000027D0sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) - - pci:v00008086d000027D0sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) - - pci:v00008086d000027D0sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (GA-D525TUD) - - pci:v00008086d000027D0sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Wind PC MS-7418) - - pci:v00008086d000027D0sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (CC11/CL11) - - pci:v00008086d000027D0sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Desktop Board D425KT) - - pci:v00008086d000027D2* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 - - pci:v00008086d000027D2sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nx9420 Notebook) - - pci:v00008086d000027D2sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) - - pci:v00008086d000027D2sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) - - pci:v00008086d000027D2sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Wind PC MS-7418) - - pci:v00008086d000027D2sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (CC11/CL11) - - pci:v00008086d000027D2sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Desktop Board D425KT) - - pci:v00008086d000027D4* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 - - pci:v00008086d000027D4sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) - - pci:v00008086d000027D4sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Wind PC MS-7418) - - pci:v00008086d000027D4sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (CC11/CL11) - - pci:v00008086d000027D4sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Desktop Board D425KT) - - pci:v00008086d000027D6* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 - - pci:v00008086d000027D6sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) - - pci:v00008086d000027D6sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) - - pci:v00008086d000027D6sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Wind PC MS-7418) - - pci:v00008086d000027D6sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (CC11/CL11) - - pci:v00008086d000027D6sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Desktop Board D425KT) - - pci:v00008086d000027D8* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller - - pci:v00008086d000027D8sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (9814 WKMI) - - pci:v00008086d000027D8sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (XPS M1210) - - pci:v00008086d000027D8sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Pavilion A1512X) - - pci:v00008086d000027D8sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nx9420 Notebook) - - pci:v00008086d000027D8sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (NC2400) - - pci:v00008086d000027D8sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nw8440) - - pci:v00008086d000027D8sv00001043sd00001123* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (A6J-Q008) - - pci:v00008086d000027D8sv00001043sd000013C4* -- ID_MODEL_FROM_DATABASE=Asus G2P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus G2P) - - pci:v00008086d000027D8sv00001043sd0000817F* -- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard (Realtek ALC 882 codec) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5LD2-VM Mainboard (Realtek ALC 882 codec)) - - pci:v00008086d000027D8sv00001043sd00008290* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-VM Motherboard) - - pci:v00008086d000027D8sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-CM Motherboard) - - pci:v00008086d000027D8sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) - - pci:v00008086d000027D8sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) - - pci:v00008086d000027D8sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Panasonic CF-Y5 laptop) - - pci:v00008086d000027D8sv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=Toshiba Satellite A100-796 audio (Realtek ALC861) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Toshiba Satellite A100-796 audio (Realtek ALC861)) - - pci:v00008086d000027D8sv00001179sd0000FF31* -- ID_MODEL_FROM_DATABASE=AC97 Data Fax SoftModem with SmartCP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (AC97 Data Fax SoftModem with SmartCP) - - pci:v00008086d000027D8sv00001447sd00001043* -- ID_MODEL_FROM_DATABASE=Asus A8JP (Analog Devices AD1986A) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus A8JP (Analog Devices AD1986A)) - - pci:v00008086d000027D8sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Notebook N150P) - - pci:v00008086d000027D8sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-D525TUD (Realtek ALC887) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-D525TUD (Realtek ALC887)) - - pci:v00008086d000027D8sv00001458sd0000A102* -- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-8I945PG-RH Mainboard) - - pci:v00008086d000027D8sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Wind PC MS-7418) - - pci:v00008086d000027D8sv0000152Dsd00000753* -- ID_MODEL_FROM_DATABASE=Softmodem -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Softmodem) - - pci:v00008086d000027D8sv00001734sd000010AD* -- ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Conexant softmodem SmartCP) - - pci:v00008086d000027D8sv000017AAsd00002010* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027D8sv000017AAsd00003802* -- ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Lenovo 3000 C200 audio [Realtek ALC861VD]) - - pci:v00008086d000027D8sv00008086sd00001112* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) - - pci:v00008086d000027D8sv00008086sd000027D8* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) - - pci:v00008086d000027D8sv00008086sd0000D618* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D510MO) - - pci:v00008086d000027D8sv00008384sd00007680* -- ID_MODEL_FROM_DATABASE=STAC9221 HD Audio Codec -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (STAC9221 HD Audio Codec) - - pci:v00008086d000027DA* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller - - pci:v00008086d000027DAsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (9814 WKMI) - - pci:v00008086d000027DAsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (OptiPlex GX620) - - pci:v00008086d000027DAsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (XPS M1210) - - pci:v00008086d000027DAsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge SC440) - - pci:v00008086d000027DAsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge 860) - - pci:v00008086d000027DAsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Pavilion A1512X) - - pci:v00008086d000027DAsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (P5KPL-VM Motherboard) - - pci:v00008086d000027DAsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) - - pci:v00008086d000027DAsv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) - - pci:v00008086d000027DAsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Notebook N150P) - - pci:v00008086d000027DAsv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (GA-8I945PG-RH/GA-D525TUD Mainboard) - - pci:v00008086d000027DAsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Wind PC MS-7418) - - pci:v00008086d000027DAsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (CC11/CL11) - - pci:v00008086d000027DAsv000017AAsd0000200F* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027DAsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D510MO) - - pci:v00008086d000027DAsv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Desktop Board D425KT) - - pci:v00008086d000027DAsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D945GTP) - - pci:v00008086d000027DAsv00008086sd00005842* -- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D975XBX) - - pci:v00008086d000027DC* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller - - pci:v00008086d000027DCsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (Pavilion A1512X) - - pci:v00008086d000027DCsv00008086sd0000308D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (DeskTop Board D945GTP) - - pci:v00008086d000027DD* - ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Modem Controller -@@ -64950,88 +64950,88 @@ pci:v00008086d000027DE* - ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller - - pci:v00008086d000027DEsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (OptiPlex GX620) - - pci:v00008086d000027DEsv00001462sd00007267* -- ID_MODEL_FROM_DATABASE=Realtek ALC883 Audio Controller -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (Realtek ALC883 Audio Controller) - - pci:v00008086d000027DEsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11 integrated audio (AD1981BL codec) -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (CC11 integrated audio (AD1981BL codec)) - - pci:v00008086d000027DF* - ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller - - pci:v00008086d000027DFsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge SC440) - - pci:v00008086d000027DFsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge 860) - - pci:v00008086d000027DFsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Pavilion A1512X) - - pci:v00008086d000027DFsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nx9420 Notebook) - - pci:v00008086d000027DFsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (NC2400) - - pci:v00008086d000027DFsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nw8440) - - pci:v00008086d000027DFsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (A6J-Q008) - - pci:v00008086d000027DFsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (P5KPL-VM Motherboard) - - pci:v00008086d000027DFsv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (E4500) - - pci:v00008086d000027DFsv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Panasonic CF-Y5 laptop) - - pci:v00008086d000027DFsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Wind PC MS-7418) - - pci:v00008086d000027DFsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (CC11/CL11) - - pci:v00008086d000027DFsv000017AAsd0000200C* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027DFsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (DeskTop Board D945GTP) - - pci:v00008086d000027E0* - ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 - - pci:v00008086d000027E0sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 (CC11/CL11) - - pci:v00008086d000027E2* - ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 - - pci:v00008086d000027E2sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (CC11/CL11) - - pci:v00008086d00002810* - ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller - - pci:v00008086d00002810sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller (P5B) - - pci:v00008086d00002811* - ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller - - pci:v00008086d00002811sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (Compaq 6910p) - - pci:v00008086d00002811sv000017AAsd000020B6* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (ThinkPad T61/R61) - - pci:v00008086d00002811sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (CCG-RUMBA) - - pci:v00008086d00002812* - ID_MODEL_FROM_DATABASE=82801HH (ICH8DH) LPC Interface Controller -@@ -65043,34 +65043,34 @@ pci:v00008086d00002815* - ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller - - pci:v00008086d00002815sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Aspire 5920G) - - pci:v00008086d00002815sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Inspiron 1420) - - pci:v00008086d00002815sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Compaq 6710b) - - pci:v00008086d00002815sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Pavilion dv6700) - - pci:v00008086d00002815sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Presario C700) - - pci:v00008086d00002815sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Vaio VGN-FZ260E) - - pci:v00008086d00002815sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) - - pci:v00008086d00002820* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] - - pci:v00008086d00002820sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (OptiPlex 745) - - pci:v00008086d00002820sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002821* - ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA Controller [AHCI mode] -@@ -65079,10 +65079,10 @@ pci:v00008086d00002822* - ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] - - pci:v00008086d00002822sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Inspiron 530) - - pci:v00008086d00002822sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002823* - ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller -@@ -65091,16 +65091,16 @@ pci:v00008086d00002824* - ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] - - pci:v00008086d00002824sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] (P5B) - - pci:v00008086d00002825* - ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] - - pci:v00008086d00002825sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (OptiPlex 745) - - pci:v00008086d00002825sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002826* - ID_MODEL_FROM_DATABASE=C600/X79 series chipset SATA RAID Controller -@@ -65112,424 +65112,424 @@ pci:v00008086d00002828* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] - - pci:v00008086d00002828sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Inspiron 1420) - - pci:v00008086d00002828sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Compaq 6710b) - - pci:v00008086d00002828sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (CCG-RUMBA) - - pci:v00008086d00002829* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] - - pci:v00008086d00002829sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Aspire 5920G) - - pci:v00008086d00002829sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6710b) - - pci:v00008086d00002829sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6910p) - - pci:v00008086d00002829sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Pavilion dv6700) - - pci:v00008086d00002829sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Presario C700) - - pci:v00008086d00002829sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Vaio VGN-FZ260E) - - pci:v00008086d00002829sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (VAIO VGN-NR120E) - - pci:v00008086d00002829sv000017AAsd000020A7* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) - - pci:v00008086d00002829sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) - - pci:v00008086d0000282A* - ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] - - pci:v00008086d0000282Asv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (Latitude E6510) - - pci:v00008086d0000282Asv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (PC1-GROOVE) - - pci:v00008086d00002830* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 - - pci:v00008086d00002830sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Acer Aspire 5920G) - - pci:v00008086d00002830sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (OptiPlex 745) - - pci:v00008086d00002830sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Inspiron 1420) - - pci:v00008086d00002830sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6710b) - - pci:v00008086d00002830sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6910p) - - pci:v00008086d00002830sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Pavilion dv6700) - - pci:v00008086d00002830sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Presario C700) - - pci:v00008086d00002830sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P5B) - - pci:v00008086d00002830sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Vaio VGN-FZ260E) - - pci:v00008086d00002830sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (VAIO VGN-NR120E) - - pci:v00008086d00002830sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002830sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) - - pci:v00008086d00002830sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) - - pci:v00008086d00002831* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 - - pci:v00008086d00002831sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Aspire 5920G) - - pci:v00008086d00002831sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (OptiPlex 745) - - pci:v00008086d00002831sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Inspiron 1420) - - pci:v00008086d00002831sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6710b) - - pci:v00008086d00002831sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6910p) - - pci:v00008086d00002831sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Pavilion dv6700) - - pci:v00008086d00002831sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Presario C700) - - pci:v00008086d00002831sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P5B) - - pci:v00008086d00002831sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Vaio VGN-FZ260E) - - pci:v00008086d00002831sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (VAIO VGN-NR120E) - - pci:v00008086d00002831sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002831sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) - - pci:v00008086d00002831sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) - - pci:v00008086d00002832* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 - - pci:v00008086d00002832sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Aspire 5920G) - - pci:v00008086d00002832sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (OptiPlex 745) - - pci:v00008086d00002832sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Inspiron 1420) - - pci:v00008086d00002832sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6710b) - - pci:v00008086d00002832sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6910p) - - pci:v00008086d00002832sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Pavilion dv6700) - - pci:v00008086d00002832sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Presario C700) - - pci:v00008086d00002832sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (P5B) - - pci:v00008086d00002832sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Vaio VGN-FZ260E) - - pci:v00008086d00002832sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (VAIO VGN-NR120E) - - pci:v00008086d00002832sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) - - pci:v00008086d00002832sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) - - pci:v00008086d00002833* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 - - pci:v00008086d00002833sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) - - pci:v00008086d00002834* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 - - pci:v00008086d00002834sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Aspire 5920G) - - pci:v00008086d00002834sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (OptiPlex 745) - - pci:v00008086d00002834sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Inspiron 1420) - - pci:v00008086d00002834sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6710b) - - pci:v00008086d00002834sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6910p) - - pci:v00008086d00002834sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Pavilion dv6700) - - pci:v00008086d00002834sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) - - pci:v00008086d00002834sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Vaio VGN-FZ260E) - - pci:v00008086d00002834sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (VAIO VGN-NR120E) - - pci:v00008086d00002834sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002834sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) - - pci:v00008086d00002834sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) - - pci:v00008086d00002835* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 - - pci:v00008086d00002835sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Acer Aspire 5920G) - - pci:v00008086d00002835sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (OptiPlex 745) - - pci:v00008086d00002835sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Inspiron 1420) - - pci:v00008086d00002835sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6710b) - - pci:v00008086d00002835sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6910p) - - pci:v00008086d00002835sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Pavilion dv6700) - - pci:v00008086d00002835sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (P5B) - - pci:v00008086d00002835sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Vaio VGN-FZ260E) - - pci:v00008086d00002835sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (VAIO VGN-NR120E) - - pci:v00008086d00002835sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=Thinkpad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) - - pci:v00008086d00002835sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) - - pci:v00008086d00002836* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 - - pci:v00008086d00002836sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Aspire 5920G) - - pci:v00008086d00002836sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (OptiPlex 745) - - pci:v00008086d00002836sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Inspiron 1420) - - pci:v00008086d00002836sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6710b) - - pci:v00008086d00002836sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6910p) - - pci:v00008086d00002836sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Pavilion dv6700) - - pci:v00008086d00002836sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Presario C700) - - pci:v00008086d00002836sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P5B) - - pci:v00008086d00002836sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Vaio VGN-FZ260E) - - pci:v00008086d00002836sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (VAIO VGN-NR120E) - - pci:v00008086d00002836sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002836sv000017AAsd000020AB* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) - - pci:v00008086d00002836sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) - - pci:v00008086d0000283A* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 - - pci:v00008086d0000283Asv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Acer Aspire 5920G) - - pci:v00008086d0000283Asv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (OptiPlex 745) - - pci:v00008086d0000283Asv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Inspiron 1420) - - pci:v00008086d0000283Asv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6710b) - - pci:v00008086d0000283Asv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6910p) - - pci:v00008086d0000283Asv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Pavilion dv6700) - - pci:v00008086d0000283Asv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (P5B) - - pci:v00008086d0000283Asv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Vaio VGN-FZ260E) - - pci:v00008086d0000283Asv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (VAIO VGN-NR120E) - - pci:v00008086d0000283Asv000017AAsd000020AB* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) - - pci:v00008086d0000283Asv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) - - pci:v00008086d0000283E* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller - - pci:v00008086d0000283Esv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Aspire 5920G) - - pci:v00008086d0000283Esv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (OptiPlex 745) - - pci:v00008086d0000283Esv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Inspiron 1420) - - pci:v00008086d0000283Esv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Presario C700) - - pci:v00008086d0000283Esv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P5B) - - pci:v00008086d0000283Esv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-FZ260E) - - pci:v00008086d0000283Esv0000104Dsd00009008* -- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-SZ79SN_C) - - pci:v00008086d0000283Esv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (VAIO VGN-NR120E) - - pci:v00008086d0000283Esv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P965 Neo MS-7235 mainboard) - - pci:v00008086d0000283Esv000017AAsd000020A9* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) - - pci:v00008086d0000283Esv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) - - pci:v00008086d0000283F* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 - - pci:v00008086d0000283Fsv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (OptiPlex 745) - - pci:v00008086d0000283Fsv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Compaq 6910p) - - pci:v00008086d0000283Fsv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (VAIO VGN-NR120E) - - pci:v00008086d0000283Fsv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) - - pci:v00008086d00002841* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 - - pci:v00008086d00002841sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Compaq 6910p) - - pci:v00008086d00002841sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (VAIO VGN-NR120E) - - pci:v00008086d00002841sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) - - pci:v00008086d00002843* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 - - pci:v00008086d00002843sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (VAIO VGN-NR120E) - - pci:v00008086d00002843sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) - - pci:v00008086d00002845* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 - - pci:v00008086d00002845sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) - - pci:v00008086d00002847* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 - - pci:v00008086d00002847sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (OptiPlex 745) - - pci:v00008086d00002847sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Compaq 6910p) - - pci:v00008086d00002847sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) - - pci:v00008086d00002849* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 -@@ -65538,70 +65538,70 @@ pci:v00008086d0000284B* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller - - pci:v00008086d0000284Bsv00001025sd0000011F* -- ID_MODEL_FROM_DATABASE=Realtek ALC268 audio codec -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC268 audio codec) - - pci:v00008086d0000284Bsv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Aspire 5920G) - - pci:v00008086d0000284Bsv00001025sd00000145* -- ID_MODEL_FROM_DATABASE=Realtek ALC889 (Aspire 8920G w. Dolby Theather) -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC889 (Aspire 8920G w. Dolby Theather)) - - pci:v00008086d0000284Bsv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (OptiPlex 745) - - pci:v00008086d0000284Bsv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Inspiron 1420) - - pci:v00008086d0000284Bsv00001028sd000001F9* -- ID_MODEL_FROM_DATABASE=Dell Latitude D630 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Latitude D630) - - pci:v00008086d0000284Bsv00001028sd000001FF* -- ID_MODEL_FROM_DATABASE=Dell Precision M4300 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Precision M4300) - - pci:v00008086d0000284Bsv00001028sd00000256* -- ID_MODEL_FROM_DATABASE=Studio 1735 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Studio 1735) - - pci:v00008086d0000284Bsv0000103Csd00002802* -- ID_MODEL_FROM_DATABASE=HP Compaq dc7700p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (HP Compaq dc7700p) - - pci:v00008086d0000284Bsv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6710b) - - pci:v00008086d0000284Bsv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6910p) - - pci:v00008086d0000284Bsv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Pavilion dv6700) - - pci:v00008086d0000284Bsv00001043sd00001339* -- ID_MODEL_FROM_DATABASE=Asus M51S series -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Asus M51S series) - - pci:v00008086d0000284Bsv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (P5B) - - pci:v00008086d0000284Bsv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-FZ260E) - - pci:v00008086d0000284Bsv0000104Dsd00009008* -- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-SZ79SN_C) - - pci:v00008086d0000284Bsv0000104Dsd00009016* -- ID_MODEL_FROM_DATABASE=Sony VAIO VGN-AR51M -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Sony VAIO VGN-AR51M) - - pci:v00008086d0000284Bsv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (VAIO VGN-NR120E) - - pci:v00008086d0000284Bsv000014F1sd00005051* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Presario C700) - - pci:v00008086d0000284Bsv000017AAsd000020AC* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) - - pci:v00008086d0000284Bsv00008384sd00007616* -- ID_MODEL_FROM_DATABASE=Dell Vostro 1400 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) - - pci:v00008086d0000284Bsv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (CCG-RUMBA) - - pci:v00008086d0000284F* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) Thermal Reporting Device -@@ -65610,34 +65610,34 @@ pci:v00008086d00002850* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller - - pci:v00008086d00002850sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Aspire 5920G) - - pci:v00008086d00002850sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Inspiron 1420) - - pci:v00008086d00002850sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6710b) - - pci:v00008086d00002850sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6910p) - - pci:v00008086d00002850sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Pavilion dv6700) - - pci:v00008086d00002850sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Presario C700) - - pci:v00008086d00002850sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Vaio VGN-FZ260E) - - pci:v00008086d00002850sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (VAIO VGN-NR120E) - - pci:v00008086d00002850sv000017AAsd000020A6* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) - - pci:v00008086d00002850sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) - - pci:v00008086d00002912* - ID_MODEL_FROM_DATABASE=82801IH (ICH9DH) LPC Interface Controller -@@ -65646,40 +65646,40 @@ pci:v00008086d00002914* - ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller - - pci:v00008086d00002914sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller (Optiplex 755) - - pci:v00008086d00002916* - ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller - - pci:v00008086d00002916sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Inspiron 530) - - pci:v00008086d00002916sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002916sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (P5K PRO Motherboard) - - pci:v00008086d00002916sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Desktop Board DP35DP) - - pci:v00008086d00002917* - ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller - - pci:v00008086d00002917sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller (CCM-BOOGIE) - - pci:v00008086d00002918* - ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller - - pci:v00008086d00002918sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 82801IB (ICH9) LPC Interface Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (PowerEdge R610 82801IB (ICH9) LPC Interface Controller) - - pci:v00008086d00002918sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (G33/P35 Neo) - - pci:v00008086d00002918sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (QEMU Virtual Machine) - - pci:v00008086d00002919* - ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller -@@ -65688,46 +65688,46 @@ pci:v00008086d00002920* - ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] - - pci:v00008086d00002920sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Inspiron 530) - - pci:v00008086d00002920sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) - - pci:v00008086d00002920sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) - - pci:v00008086d00002920sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Optiplex 755) - - pci:v00008086d00002920sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R200 onboard SATA Controller) - - pci:v00008086d00002920sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (P5K PRO Motherboard) - - pci:v00008086d00002921* - ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] - - pci:v00008086d00002921sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R710 SATA IDE Controller) - - pci:v00008086d00002921sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R610 SATA IDE Controller) - - pci:v00008086d00002921sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge T610 SATA IDE Controller) - - pci:v00008086d00002921sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (G33/P35 Neo) - - pci:v00008086d00002922* - ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] - - pci:v00008086d00002922sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (QEMU Virtual Machine) - - pci:v00008086d00002922sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (Desktop Board DP35DP) - - pci:v00008086d00002923* - ID_MODEL_FROM_DATABASE=82801IB (ICH9) 4 port SATA Controller [AHCI mode] -@@ -65736,31 +65736,31 @@ pci:v00008086d00002925* - ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] - - pci:v00008086d00002925sv00001734sd000010E0* -- ID_MODEL_FROM_DATABASE=System Board D2542 -+ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) - - pci:v00008086d00002925sv00008086sd00002925* -- ID_MODEL_FROM_DATABASE=System Board D2542 -+ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) - - pci:v00008086d00002926* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] - - pci:v00008086d00002926sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Inspiron 530) - - pci:v00008086d00002926sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) - - pci:v00008086d00002926sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) - - pci:v00008086d00002926sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Optiplex 755) - - pci:v00008086d00002926sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (P5K PRO Motherboard) - - pci:v00008086d00002926sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (G33/P35 Neo) - - pci:v00008086d00002928* - ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] -@@ -65769,10 +65769,10 @@ pci:v00008086d00002929* - ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] - - pci:v00008086d00002929sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (dv6-1190en) - - pci:v00008086d00002929sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (CCM-BOOGIE) - - pci:v00008086d0000292C* - ID_MODEL_FROM_DATABASE=82801IEM (ICH9M-E) SATA Controller [RAID mode] -@@ -65781,511 +65781,511 @@ pci:v00008086d0000292D* - ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] - - pci:v00008086d0000292Dsv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] (CCM-BOOGIE) - - pci:v00008086d00002930* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller - - pci:v00008086d00002930sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Inspiron 530) - - pci:v00008086d00002930sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Optiplex 755) - - pci:v00008086d00002930sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002930sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (dv6-1190en) - - pci:v00008086d00002930sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (P5K PRO Motherboard) - - pci:v00008086d00002930sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (G33/P35 Neo) - - pci:v00008086d00002930sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (QEMU Virtual Machine) - - pci:v00008086d00002930sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Desktop Board DP35DP) - - pci:v00008086d00002930sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (CCM-BOOGIE) - - pci:v00008086d00002932* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem - - pci:v00008086d00002932sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem (dv6-1190en) - - pci:v00008086d00002934* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 - - pci:v00008086d00002934sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Inspiron 530) - - pci:v00008086d00002934sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R300 onboard UHCI) - - pci:v00008086d00002934sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002934sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) - - pci:v00008086d00002934sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R200 onboard UHCI) - - pci:v00008086d00002934sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002934sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd00002011* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) - - pci:v00008086d00002934sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002934sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (P5K PRO Motherboard) - - pci:v00008086d00002934sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (G33/P35 Neo) - - pci:v00008086d00002934sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (QEMU Virtual Machine) - - pci:v00008086d00002934sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Desktop Board DP35DP) - - pci:v00008086d00002934sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (CCM-BOOGIE) - - pci:v00008086d00002935* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 - - pci:v00008086d00002935sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Inspiron 530) - - pci:v00008086d00002935sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R300 onboard UHCI) - - pci:v00008086d00002935sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002935sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Optiplex 755) - - pci:v00008086d00002935sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002935sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002935sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002935sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R200 onboard UHCI) - - pci:v00008086d00002935sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002935sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002935sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002935sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (P5K PRO Motherboard) - - pci:v00008086d00002935sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (G33/P35 Neo) - - pci:v00008086d00002935sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (QEMU Virtual Machine) - - pci:v00008086d00002935sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Desktop Board DP35DP) - - pci:v00008086d00002935sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (CCM-BOOGIE) - - pci:v00008086d00002936* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 - - pci:v00008086d00002936sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Inspiron 530) - - pci:v00008086d00002936sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R300 onboard UHCI) - - pci:v00008086d00002936sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002936sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Optiplex 755) - - pci:v00008086d00002936sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002936sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R200 onboard UHCI) - - pci:v00008086d00002936sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002936sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002936sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002936sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (P5K PRO Motherboard) - - pci:v00008086d00002936sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (G33/P35 Neo) - - pci:v00008086d00002936sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (QEMU Virtual Machine) - - pci:v00008086d00002936sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Desktop Board DP35DP) - - pci:v00008086d00002936sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (CCM-BOOGIE) - - pci:v00008086d00002937* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 - - pci:v00008086d00002937sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Inspiron 530) - - pci:v00008086d00002937sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) - - pci:v00008086d00002937sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002937sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00002011* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) - - pci:v00008086d00002937sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002937sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (P5K PRO Motherboard) - - pci:v00008086d00002937sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (G33/P35 Neo) - - pci:v00008086d00002937sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (QEMU Virtual Machine) - - pci:v00008086d00002937sv00008086sd00002937* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) - - pci:v00008086d00002937sv00008086sd00002942* -- ID_MODEL_FROM_DATABASE=828011 (ICH9 Family ) USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (828011 (ICH9 Family ) USB UHCI Controller) - - pci:v00008086d00002937sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Desktop Board DP35DP) - - pci:v00008086d00002937sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (CCM-BOOGIE) - - pci:v00008086d00002938* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 - - pci:v00008086d00002938sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Inspiron 530) - - pci:v00008086d00002938sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) - - pci:v00008086d00002938sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002938sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002938sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002938sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002938sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002938sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002938sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (P5K PRO Motherboard) - - pci:v00008086d00002938sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (G33/P35 Neo) - - pci:v00008086d00002938sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (QEMU Virtual Machine) - - pci:v00008086d00002938sv00008086sd00002938* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) - - pci:v00008086d00002938sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Desktop Board DP35DP) - - pci:v00008086d00002938sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (CCM-BOOGIE) - - pci:v00008086d00002939* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 - - pci:v00008086d00002939sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Inspiron 530) - - pci:v00008086d00002939sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002939sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002939sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002939sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (P5K PRO Motherboard) - - pci:v00008086d00002939sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (G33/P35 Neo) - - pci:v00008086d00002939sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (QEMU Virtual Machine) - - pci:v00008086d00002939sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Desktop Board DP35DP) - - pci:v00008086d00002939sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (CCM-BOOGIE) - - pci:v00008086d0000293A* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 - - pci:v00008086d0000293Asv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Inspiron 530) - - pci:v00008086d0000293Asv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R300 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T300 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Optiplex 755) - - pci:v00008086d0000293Asv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R710 USB EHCI Controller) - - pci:v00008086d0000293Asv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R610 USB EHCI Controller) - - pci:v00008086d0000293Asv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T610 USB EHCI Controller) - - pci:v00008086d0000293Asv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R200 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M610 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M710 USB EHCI Controller) - - pci:v00008086d0000293Asv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000293Asv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (P5K PRO Motherboard) - - pci:v00008086d0000293Asv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (G33/P35 Neo) - - pci:v00008086d0000293Asv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (QEMU Virtual Machine) - - pci:v00008086d0000293Asv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Desktop Board DP35DP) - - pci:v00008086d0000293Asv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (CCM-BOOGIE) - - pci:v00008086d0000293C* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 - - pci:v00008086d0000293Csv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Inspiron 530) - - pci:v00008086d0000293Csv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) - - pci:v00008086d0000293Csv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R710 USB EHCI Controller) - - pci:v00008086d0000293Csv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R610 USB EHCI Controller) - - pci:v00008086d0000293Csv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge T610 USB EHCI Controller) - - pci:v00008086d0000293Csv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M610 onboard EHCI) - - pci:v00008086d0000293Csv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M710 USB EHCI Controller) - - pci:v00008086d0000293Csv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000293Csv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (P5K PRO Motherboard) - - pci:v00008086d0000293Csv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (G33/P35 Neo) - - pci:v00008086d0000293Csv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (QEMU Virtual Machine) - - pci:v00008086d0000293Csv00008086sd0000293C* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) - - pci:v00008086d0000293Csv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Desktop Board DP35DP) - - pci:v00008086d0000293Csv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (CCM-BOOGIE) - - pci:v00008086d0000293E* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller - - pci:v00008086d0000293Esv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Inspiron 530) - - pci:v00008086d0000293Esv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) - - pci:v00008086d0000293Esv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000293Esv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (dv6-1190en) - - pci:v00008086d0000293Esv00001043sd0000829F* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (P5K PRO Motherboard) - - pci:v00008086d0000293Esv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (G33/P35 Neo) - - pci:v00008086d0000293Esv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (QEMU Virtual Machine) - - pci:v00008086d0000293Esv00008086sd0000293E* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) - - pci:v00008086d0000293Esv00008086sd00002940* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) - - pci:v00008086d0000293Esv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (CCM-BOOGIE) - - pci:v00008086d00002940* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 - - pci:v00008086d00002940sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Inspiron 530) - - pci:v00008086d00002940sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) - - pci:v00008086d00002940sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002940sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (P5K PRO Motherboard) - - pci:v00008086d00002940sv00008086sd00002940* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) - - pci:v00008086d00002942* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 - - pci:v00008086d00002942sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 (Inspiron 530) - - pci:v00008086d00002944* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 - - pci:v00008086d00002944sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Inspiron 530) - - pci:v00008086d00002944sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002946* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 - - pci:v00008086d00002946sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 (Inspiron 530) - - pci:v00008086d00002948* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 - - pci:v00008086d00002948sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (Inspiron 530) - - pci:v00008086d00002948sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (P5K PRO Motherboard) - - pci:v00008086d0000294A* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 - - pci:v00008086d0000294Asv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (Inspiron 530) - - pci:v00008086d0000294Asv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (P5K PRO Motherboard) - - pci:v00008086d0000294C* - ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection - - pci:v00008086d0000294Csv000017AAsd0000302E* -- ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection -+ ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection (82566DM-2 Gigabit Network Connection) - - pci:v00008086d00002970* - ID_MODEL_FROM_DATABASE=82946GZ/PL/GL Memory Controller Hub -@@ -66330,7 +66330,7 @@ pci:v00008086d00002990* - ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub - - pci:v00008086d00002990sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub (OptiPlex 745) - - pci:v00008086d00002991* - ID_MODEL_FROM_DATABASE=82Q963/Q965 PCI Express Root Port -@@ -66357,10 +66357,10 @@ pci:v00008086d000029A0* - ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub - - pci:v00008086d000029A0sv00001043sd000081EA* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (P5B) - - pci:v00008086d000029A0sv00001462sd00007276* -- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] -+ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (MS-7276 [G965MDH]) - - pci:v00008086d000029A1* - ID_MODEL_FROM_DATABASE=82P965/G965 PCI Express Root Port -@@ -66369,7 +66369,7 @@ pci:v00008086d000029A2* - ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller - - pci:v00008086d000029A2sv00001462sd00007276* -- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] -+ ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller (MS-7276 [G965MDH]) - - pci:v00008086d000029A3* - ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller -@@ -66390,31 +66390,31 @@ pci:v00008086d000029B0* - ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller - - pci:v00008086d000029B0sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller (OptiPlex 755) - - pci:v00008086d000029B1* - ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port - - pci:v00008086d000029B1sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port (OptiPlex 755) - - pci:v00008086d000029B2* - ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller - - pci:v00008086d000029B2sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) - - pci:v00008086d000029B3* - ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller - - pci:v00008086d000029B3sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) - - pci:v00008086d000029B4* - ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller - - pci:v00008086d000029B4sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller (OptiPlex 755) - - pci:v00008086d000029B5* - ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller -@@ -66423,70 +66423,70 @@ pci:v00008086d000029B6* - ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller - - pci:v00008086d000029B6sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller (OptiPlex 755) - - pci:v00008086d000029B7* - ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller - - pci:v00008086d000029B7sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller (OptiPlex 755) - - pci:v00008086d000029C0* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller - - pci:v00008086d000029C0sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Inspiron 530) - - pci:v00008086d000029C0sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d000029C0sv00001043sd00008276* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5K PRO Motherboard) - - pci:v00008086d000029C0sv00001043sd000082B0* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5KPL-VM Motherboard) - - pci:v00008086d000029C0sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (G33/P35 Neo) - - pci:v00008086d000029C0sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (QEMU Virtual Machine) - - pci:v00008086d000029C0sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Desktop Board DP35DP) - - pci:v00008086d000029C1* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port - - pci:v00008086d000029C1sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (Inspiron 530) - - pci:v00008086d000029C1sv00001043sd00008276* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (P5K PRO Motherboard) - - pci:v00008086d000029C2* - ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller - - pci:v00008086d000029C2sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) - - pci:v00008086d000029C2sv00001043sd000082B0* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) - - pci:v00008086d000029C3* - ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller - - pci:v00008086d000029C3sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) - - pci:v00008086d000029C3sv00001043sd000082B0* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) - - pci:v00008086d000029C4* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller - - pci:v00008086d000029C4sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller (Desktop Board DP35DP) - - pci:v00008086d000029C5* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller -@@ -66570,37 +66570,37 @@ pci:v00008086d00002A00* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub - - pci:v00008086d00002A00sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Acer Aspire 5920G) - - pci:v00008086d00002A00sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Inspiron 1420) - - pci:v00008086d00002A00sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6710b) - - pci:v00008086d00002A00sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6910p) - - pci:v00008086d00002A00sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Pavilion dv6700) - - pci:v00008086d00002A00sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Presario C700) - - pci:v00008086d00002A00sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Vaio VGN-FZ260E) - - pci:v00008086d00002A00sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (VAIO VGN-NR120E) - - pci:v00008086d00002A00sv000017AAsd000020B1* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61) - - pci:v00008086d00002A00sv000017AAsd000020B3* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) - - pci:v00008086d00002A00sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) - - pci:v00008086d00002A01* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 PCI Express Root Port -@@ -66609,52 +66609,52 @@ pci:v00008086d00002A02* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) - - pci:v00008086d00002A02sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Inspiron 1420) - - pci:v00008086d00002A02sv00001028sd000001F9* -- ID_MODEL_FROM_DATABASE=Latitude D630 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Latitude D630) - - pci:v00008086d00002A02sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Compaq 6710b) - - pci:v00008086d00002A02sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Presario C700) - - pci:v00008086d00002A02sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (VAIO VGN-NR120E) - - pci:v00008086d00002A02sv000017AAsd000020B5* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) - - pci:v00008086d00002A02sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) - - pci:v00008086d00002A03* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) - - pci:v00008086d00002A03sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Dell Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) - - pci:v00008086d00002A03sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) - - pci:v00008086d00002A03sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Presario C700) - - pci:v00008086d00002A03sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (VAIO VGN-NR120E) - - pci:v00008086d00002A03sv000017AAsd000020B5* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) - - pci:v00008086d00002A03sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) - - pci:v00008086d00002A04* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller - - pci:v00008086d00002A04sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller (Compaq 6910p) - - pci:v00008086d00002A05* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller -@@ -66663,19 +66663,19 @@ pci:v00008086d00002A06* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller - - pci:v00008086d00002A06sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller (Compaq 6910p) - - pci:v00008086d00002A07* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller - - pci:v00008086d00002A07sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller (Compaq 6910p) - - pci:v00008086d00002A10* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub - - pci:v00008086d00002A10sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub (CCG-RUMBA) - - pci:v00008086d00002A11* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 PCI Express Root Port -@@ -66684,13 +66684,13 @@ pci:v00008086d00002A12* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller - - pci:v00008086d00002A12sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) - - pci:v00008086d00002A13* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller - - pci:v00008086d00002A13sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) - - pci:v00008086d00002A14* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 MEI Controller -@@ -66708,25 +66708,25 @@ pci:v00008086d00002A40* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub - - pci:v00008086d00002A40sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub (CCM-BOOGIE) - - pci:v00008086d00002A41* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port - - pci:v00008086d00002A41sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port (CCM-BOOGIE) - - pci:v00008086d00002A42* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002A42sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) - - pci:v00008086d00002A43* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002A43sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) - - pci:v00008086d00002A44* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset MEI Controller -@@ -67251,34 +67251,34 @@ pci:v00008086d00002E20* - ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller - - pci:v00008086d00002E20sv00001028sd00000283* -- ID_MODEL_FROM_DATABASE=Dell Vostro 220 -+ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (Dell Vostro 220) - - pci:v00008086d00002E20sv00001043sd000082D3* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00002E20sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00002E21* - ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port - - pci:v00008086d00002E21sv00001043sd000082D3* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (P5Q Deluxe Motherboard) - - pci:v00008086d00002E21sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (GA-EP45-DS5 Motherboard) - - pci:v00008086d00002E22* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002E22sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) - - pci:v00008086d00002E23* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002E23sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) - - pci:v00008086d00002E24* - ID_MODEL_FROM_DATABASE=4 Series Chipset HECI Controller -@@ -67917,16 +67917,16 @@ pci:v00008086d00003200* - ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA - - pci:v00008086d00003200sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K onboard SATA host bus adapter -+ ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA (C2K onboard SATA host bus adapter) - - pci:v00008086d00003310* - ID_MODEL_FROM_DATABASE=IOP348 I/O Processor - - pci:v00008086d00003310sv00001054sd00003030* -- ID_MODEL_FROM_DATABASE=HRA380 Hitachi RAID Adapter to PCIe -+ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA380 Hitachi RAID Adapter to PCIe) - - pci:v00008086d00003310sv00001054sd00003034* -- ID_MODEL_FROM_DATABASE=HRA381 Hitachi RAID Adapter to PCIe -+ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA381 Hitachi RAID Adapter to PCIe) - - pci:v00008086d00003313* - ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA -@@ -67944,31 +67944,31 @@ pci:v00008086d00003340* - ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller - - pci:v00008086d00003340sv00001014sd00000529* -- ID_MODEL_FROM_DATABASE=Thinkpad T40 series -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (Thinkpad T40 series) - - pci:v00008086d00003340sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (TravelMate 290) - - pci:v00008086d00003340sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC8000 laptop) - - pci:v00008086d00003340sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC6000 laptop) - - pci:v00008086d00003340sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (tc1100 tablet) - - pci:v00008086d00003340sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (X10 Laptop) - - pci:v00008086d00003340sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (P30/P35 notebook) - - pci:v00008086d00003341* - ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller - - pci:v00008086d00003341sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller (P30 notebook) - - pci:v00008086d00003363* - ID_MODEL_FROM_DATABASE=IOC340 I/O Controller in IOC Mode SAS/SATA -@@ -67995,19 +67995,19 @@ pci:v00008086d00003403* - ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port - - pci:v00008086d00003403sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R610 I/O Hub to ESI Port) - - pci:v00008086d00003403sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge M610 I/O Hub to ESI Port) - - pci:v00008086d00003403sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R410 I/O Hub to ESI Port) - - pci:v00008086d00003403sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge T410 I/O Hub to ESI Port) - - pci:v00008086d00003403sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (ProLiant ML150 G6 Server) - - pci:v00008086d00003404* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port -@@ -68019,7 +68019,7 @@ pci:v00008086d00003406* - ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port - - pci:v00008086d00003406sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port (ProLiant G6 series) - - pci:v00008086d00003407* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port -@@ -68028,7 +68028,7 @@ pci:v00008086d00003408* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 - - pci:v00008086d00003408sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 (ProLiant G6 series) - - pci:v00008086d00003409* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 2 -@@ -68037,7 +68037,7 @@ pci:v00008086d0000340A* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 - - pci:v00008086d0000340Asv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 (ProLiant ML150 G6 Server) - - pci:v00008086d0000340B* - ID_MODEL_FROM_DATABASE=5520/X58 I/O Hub PCI Express Root Port 4 -@@ -68052,7 +68052,7 @@ pci:v00008086d0000340E* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 - - pci:v00008086d0000340Esv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 (ProLiant ML150 G6 Server) - - pci:v00008086d0000340F* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 8 -@@ -68079,13 +68079,13 @@ pci:v00008086d00003422* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers - - pci:v00008086d00003422sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (ProLiant G6 series) - - pci:v00008086d00003423* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers - - pci:v00008086d00003423sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (ProLiant G6 series) - - pci:v00008086d00003425* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Physical and Link Layer Registers Port 0 -@@ -68118,7 +68118,7 @@ pci:v00008086d0000342E* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers - - pci:v00008086d0000342Esv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers (ProLiant G6 series) - - pci:v00008086d0000342F* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Trusted Execution Technology Registers -@@ -68142,10 +68142,10 @@ pci:v00008086d00003500* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port - - pci:v00008086d00003500sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (ProLiant DL140 G3) - - pci:v00008086d00003500sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (X7DBN Motherboard) - - pci:v00008086d00003501* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express Upstream Port -@@ -68160,10 +68160,10 @@ pci:v00008086d0000350C* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge - - pci:v00008086d0000350Csv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (ProLiant DL140 G3) - - pci:v00008086d0000350Csv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (X7DBN Motherboard) - - pci:v00008086d0000350D* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express to PCI-X Bridge -@@ -68172,10 +68172,10 @@ pci:v00008086d00003510* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 - - pci:v00008086d00003510sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (ProLiant DL140 G3) - - pci:v00008086d00003510sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (X7DBN Motherboard) - - pci:v00008086d00003511* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E1 -@@ -68190,7 +68190,7 @@ pci:v00008086d00003518* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 - - pci:v00008086d00003518sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 (X7DBN Motherboard) - - pci:v00008086d00003519* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E3 -@@ -68199,13 +68199,13 @@ pci:v00008086d00003575* - ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge - - pci:v00008086d00003575sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (Evo N600c) - - pci:v00008086d00003575sv00001014sd0000021D* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (ThinkPad A/T/X Series) - - pci:v00008086d00003575sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00003576* - ID_MODEL_FROM_DATABASE=82830M/MP AGP Bridge -@@ -68214,7 +68214,7 @@ pci:v00008086d00003577* - ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller - - pci:v00008086d00003577sv00001014sd00000513* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller (ThinkPad A/T/X Series) - - pci:v00008086d00003578* - ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge -@@ -68223,181 +68223,181 @@ pci:v00008086d00003580* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller - - pci:v00008086d00003580sv00001014sd0000055C* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) - - pci:v00008086d00003580sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) - - pci:v00008086d00003580sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) - - pci:v00008086d00003580sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) - - pci:v00008086d00003580sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) - - pci:v00008086d00003580sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) - - pci:v00008086d00003580sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) - - pci:v00008086d00003580sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) - - pci:v00008086d00003580sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) - - pci:v00008086d00003580sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) - - pci:v00008086d00003580sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) - - pci:v00008086d00003580sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) - - pci:v00008086d00003580sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) - - pci:v00008086d00003580sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CC9-SAMBA) - - pci:v00008086d00003580sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CD2-BEBOP) - - pci:v00008086d00003581* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller - - pci:v00008086d00003581sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller (Amilo M1420) - - pci:v00008086d00003582* - ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device - - pci:v00008086d00003582sv00001014sd00000562* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (ThinkPad R50e) - - pci:v00008086d00003582sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D400) - - pci:v00008086d00003582sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude X300) - - pci:v00008086d00003582sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D500) - - pci:v00008086d00003582sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D505) - - pci:v00008086d00003582sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Inspiron 700m/710m) - - pci:v00008086d00003582sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 integrated graphics -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PC8 integrated graphics) - - pci:v00008086d00003582sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer VGA -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (V5D Single Board Computer VGA) - - pci:v00008086d00003582sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CE9) - - pci:v00008086d00003582sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CL9 mainboard) - - pci:v00008086d00003582sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PSL09 PrPMC) - - pci:v00008086d00003582sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CC9-SAMBA) - - pci:v00008086d00003582sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CD2-BEBOP) - - pci:v00008086d00003584* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller - - pci:v00008086d00003584sv00001014sd0000055D* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) - - pci:v00008086d00003584sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) - - pci:v00008086d00003584sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) - - pci:v00008086d00003584sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) - - pci:v00008086d00003584sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) - - pci:v00008086d00003584sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) - - pci:v00008086d00003584sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) - - pci:v00008086d00003584sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) - - pci:v00008086d00003584sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) - - pci:v00008086d00003584sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) - - pci:v00008086d00003584sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) - - pci:v00008086d00003584sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) - - pci:v00008086d00003584sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) - - pci:v00008086d00003585* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller - - pci:v00008086d00003585sv00001014sd0000055E* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) - - pci:v00008086d00003585sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) - - pci:v00008086d00003585sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) - - pci:v00008086d00003585sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) - - pci:v00008086d00003585sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) - - pci:v00008086d00003585sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) - - pci:v00008086d00003585sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) - - pci:v00008086d00003585sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) - - pci:v00008086d00003585sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) - - pci:v00008086d00003585sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) - - pci:v00008086d00003585sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) - - pci:v00008086d00003585sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) - - pci:v00008086d00003585sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) - - pci:v00008086d0000358C* - ID_MODEL_FROM_DATABASE=82854 GMCH -@@ -68409,70 +68409,70 @@ pci:v00008086d00003590* - ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub - - pci:v00008086d00003590sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (eServer xSeries server mainboard) - - pci:v00008086d00003590sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Memory Controller Hub -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 1850 Memory Controller Hub) - - pci:v00008086d00003590sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Memory Controller Hub -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 2850 Memory Controller Hub) - - pci:v00008086d00003590sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge SC1425) - - pci:v00008086d00003590sv00001734sd0000103E* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PRIMERGY RX/TX S2 series) - - pci:v00008086d00003590sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (CR11/VR11 Single Board Computer) - - pci:v00008086d00003590sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (Telum ASLP10 Processor AMC) - - pci:v00008086d00003591* - ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers - - pci:v00008086d00003591sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (eServer xSeries server mainboard) - - pci:v00008086d00003591sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision Workstation 670 Mainboard) - - pci:v00008086d00003591sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision 470) - - pci:v00008086d00003591sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (ProLiant DL140 G2) - - pci:v00008086d00003591sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Telum ASLP10 Processor AMC) - - pci:v00008086d00003592* - ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub - - pci:v00008086d00003592sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d00003593* - ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers - - pci:v00008086d00003593sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d00003594* - ID_MODEL_FROM_DATABASE=E7520 DMA Controller - - pci:v00008086d00003594sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d00003594sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d00003595* - ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A - - pci:v00008086d00003595sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A (CR11/VR11 Single Board Computer) - - pci:v00008086d00003596* - ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A1 -@@ -68481,19 +68481,19 @@ pci:v00008086d00003597* - ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B - - pci:v00008086d00003597sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B (CR11/VR11 Single Board Computer) - - pci:v00008086d00003598* - ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 - - pci:v00008086d00003598sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 (CR11/VR11 Single Board Computer) - - pci:v00008086d00003599* - ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C - - pci:v00008086d00003599sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C (CR11/VR11 Single Board Computer) - - pci:v00008086d0000359A* - ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C1 -@@ -68502,16 +68502,16 @@ pci:v00008086d0000359B* - ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers - - pci:v00008086d0000359Bsv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers (eServer xSeries server mainboard) - - pci:v00008086d0000359E* - ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub - - pci:v00008086d0000359Esv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision Workstation 670 Mainboard) - - pci:v00008086d0000359Esv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision 470) - - pci:v00008086d000035B0* - ID_MODEL_FROM_DATABASE=3100 Chipset Memory I/O Controller Hub -@@ -68562,7 +68562,7 @@ pci:v00008086d0000360C* - ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers - - pci:v00008086d0000360Csv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 7300 Chipset FSB Registers -+ ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers (PowerEdge R900 7300 Chipset FSB Registers) - - pci:v00008086d0000360D* - ID_MODEL_FROM_DATABASE=7300 Chipset Snoop Filter Registers -@@ -68724,19 +68724,19 @@ pci:v00008086d00003A16* - ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller - - pci:v00008086d00003A16sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 LPC Interface Controller -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge R410 LPC Interface Controller) - - pci:v00008086d00003A16sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 LPC Interface Controller -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge T410 LPC Interface Controller) - - pci:v00008086d00003A16sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (ProLiant G6 series) - - pci:v00008086d00003A16sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A16sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A18* - ID_MODEL_FROM_DATABASE=82801JIB (ICH10) LPC Interface Controller -@@ -68748,52 +68748,52 @@ pci:v00008086d00003A20* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 - - pci:v00008086d00003A20sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge R410 SATA IDE Controller) - - pci:v00008086d00003A20sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge T410 SATA IDE Controller) - - pci:v00008086d00003A22* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller - - pci:v00008086d00003A22sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (ProLiant G6 series) - - pci:v00008086d00003A22sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A22sv00001458sd0000B005* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A25* - ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller - - pci:v00008086d00003A25sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R410) -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R410)) - - pci:v00008086d00003A25sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE T410) -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE T410)) - - pci:v00008086d00003A25sv00001028sd000002F1* -- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R510) -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R510)) - - pci:v00008086d00003A26* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 - - pci:v00008086d00003A26sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge R410 SATA IDE Controller) - - pci:v00008086d00003A26sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge T410 SATA IDE Controller) - - pci:v00008086d00003A30* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller - - pci:v00008086d00003A30sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A30sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A32* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Thermal Subsystem -@@ -68802,178 +68802,178 @@ pci:v00008086d00003A34* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 - - pci:v00008086d00003A34sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A34sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A34sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (ProLiant G6 series) - - pci:v00008086d00003A34sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A34sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A35* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 - - pci:v00008086d00003A35sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A35sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A35sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (ProLiant G6 series) - - pci:v00008086d00003A35sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A35sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A36* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 - - pci:v00008086d00003A36sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A36sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A36sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (ProLiant G6 series) - - pci:v00008086d00003A36sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A36sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A37* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 - - pci:v00008086d00003A37sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A37sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A37sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (ProLiant G6 series) - - pci:v00008086d00003A37sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A37sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (Motherboard) - - pci:v00008086d00003A38* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 - - pci:v00008086d00003A38sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A38sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A38sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A38sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A38sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (Motherboard) - - pci:v00008086d00003A39* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 - - pci:v00008086d00003A39sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A39sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A39sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A39sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A39sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (Motherboard) - - pci:v00008086d00003A3A* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 - - pci:v00008086d00003A3Asv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge R410 USB EHCI Controller) - - pci:v00008086d00003A3Asv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge T410 USB EHCI Controller) - - pci:v00008086d00003A3Asv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (ProLiant G6 series) - - pci:v00008086d00003A3Asv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A3Asv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A3C* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 - - pci:v00008086d00003A3Csv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge R410 USB EHCI Controller) - - pci:v00008086d00003A3Csv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge T410 USB EHCI Controller) - - pci:v00008086d00003A3Csv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (ProLiant G6 series) - - pci:v00008086d00003A3Csv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A3Csv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (Motherboard) - - pci:v00008086d00003A3E* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller - - pci:v00008086d00003A3Esv00001043sd00008311* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A3Esv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-EP45-UD3R Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-UD3R Motherboard) - - pci:v00008086d00003A3Esv00001458sd0000A102* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A40* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 - - pci:v00008086d00003A40sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 PCI Express Port 1 -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge R410 PCI Express Port 1) - - pci:v00008086d00003A40sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 PCI Express Port 1 -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge T410 PCI Express Port 1) - - pci:v00008086d00003A40sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A40sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A40sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A40sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A42* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Port 2 -@@ -68982,43 +68982,43 @@ pci:v00008086d00003A44* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 - - pci:v00008086d00003A44sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A46* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 - - pci:v00008086d00003A46sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A46sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A48* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 - - pci:v00008086d00003A48sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A48sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (P6T Deluxe Motherboard) - - pci:v00008086d00003A48sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A4A* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 - - pci:v00008086d00003A4Asv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A4Asv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A4Asv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A4Asv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A4C* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Gigabit Ethernet Controller -@@ -69108,10 +69108,10 @@ pci:v00008086d00003B07* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller - - pci:v00008086d00003B07sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Latitude E6510) - - pci:v00008086d00003B07sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (PC1-GROOVE) - - pci:v00008086d00003B08* - ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller -@@ -69120,16 +69120,16 @@ pci:v00008086d00003B09* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller - - pci:v00008086d00003B09sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) - - pci:v00008086d00003B0A* - ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller - - pci:v00008086d00003B0Asv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (OptiPlex 980) - - pci:v00008086d00003B0Asv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B0B* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller -@@ -69204,10 +69204,10 @@ pci:v00008086d00003B22* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller - - pci:v00008086d00003B22sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (OptiPlex 980) - - pci:v00008086d00003B22sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B23* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller -@@ -69225,7 +69225,7 @@ pci:v00008086d00003B29* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller - - pci:v00008086d00003B29sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) - - pci:v00008086d00003B2C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller -@@ -69234,64 +69234,64 @@ pci:v00008086d00003B2D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller - - pci:v00008086d00003B2Dsv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) - - pci:v00008086d00003B2E* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller - - pci:v00008086d00003B2Esv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (PC1-GROOVE) - - pci:v00008086d00003B2F* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller - - pci:v00008086d00003B2Fsv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (Latitude E6510) - - pci:v00008086d00003B2Fsv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (PC1-GROOVE) - - pci:v00008086d00003B30* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller - - pci:v00008086d00003B30sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Aspire 7740G) - - pci:v00008086d00003B30sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (OptiPlex 980) - - pci:v00008086d00003B30sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) - - pci:v00008086d00003B30sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B30sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) - - pci:v00008086d00003B32* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem - - pci:v00008086d00003B32sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) - - pci:v00008086d00003B34* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller - - pci:v00008086d00003B34sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) - - pci:v00008086d00003B34sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) - - pci:v00008086d00003B34sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - - pci:v00008086d00003B34sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B34sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - - pci:v00008086d00003B36* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller -@@ -69315,19 +69315,19 @@ pci:v00008086d00003B3C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller - - pci:v00008086d00003B3Csv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) - - pci:v00008086d00003B3Csv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) - - pci:v00008086d00003B3Csv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - - pci:v00008086d00003B3Csv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B3Csv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - - pci:v00008086d00003B3E* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller -@@ -69345,40 +69345,40 @@ pci:v00008086d00003B42* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 - - pci:v00008086d00003B42sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (OptiPlex 980) - - pci:v00008086d00003B42sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) - - pci:v00008086d00003B42sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) - - pci:v00008086d00003B44* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 - - pci:v00008086d00003B44sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Latitude E6510) - - pci:v00008086d00003B44sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) - - pci:v00008086d00003B46* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 - - pci:v00008086d00003B46sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) - - pci:v00008086d00003B48* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 - - pci:v00008086d00003B48sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) - - pci:v00008086d00003B4A* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 - - pci:v00008086d00003B4Asv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) - - pci:v00008086d00003B4C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 -@@ -69396,19 +69396,19 @@ pci:v00008086d00003B56* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio - - pci:v00008086d00003B56sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Aspire 7740G) - - pci:v00008086d00003B56sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (OptiPlex 980) - - pci:v00008086d00003B56sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) - - pci:v00008086d00003B56sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) - - pci:v00008086d00003B56sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) - - pci:v00008086d00003B57* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio -@@ -69417,13 +69417,13 @@ pci:v00008086d00003B64* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller - - pci:v00008086d00003B64sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Aspire 7740G) - - pci:v00008086d00003B64sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B64sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) - - pci:v00008086d00003B65* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller -@@ -69435,7 +69435,7 @@ pci:v00008086d00003B67* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller - - pci:v00008086d00003B67sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller (PC1-GROOVE) - - pci:v00008086d00003C00* - ID_MODEL_FROM_DATABASE=Xeon E5/Core i7 DMI2 -@@ -69765,25 +69765,25 @@ pci:v00008086d00004220* - ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection - - pci:v00008086d00004220sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Compaq nw8240/nx8220) - - pci:v00008086d00004220sv0000103Csd000012F6* -- ID_MODEL_FROM_DATABASE=nc6120/nx8220/nw8240 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (nc6120/nx8220/nw8240) - - pci:v00008086d00004220sv00008086sd00002701* -- ID_MODEL_FROM_DATABASE=WM3B2300BG Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (WM3B2300BG Mini-PCI Card) - - pci:v00008086d00004220sv00008086sd00002712* -- ID_MODEL_FROM_DATABASE=IBM ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (IBM ThinkPad R50e) - - pci:v00008086d00004220sv00008086sd00002721* -- ID_MODEL_FROM_DATABASE=Dell B130 laptop integrated WLAN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell B130 laptop integrated WLAN) - - pci:v00008086d00004220sv00008086sd00002722* -- ID_MODEL_FROM_DATABASE=Dell Latitude D600 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell Latitude D600) - - pci:v00008086d00004220sv00008086sd00002731* -- ID_MODEL_FROM_DATABASE=Samsung P35 integrated WLAN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Samsung P35 integrated WLAN) - - pci:v00008086d00004222* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection -@@ -69792,40 +69792,40 @@ pci:v00008086d00004222sv0000103Csd0000135C* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection - - pci:v00008086d00004222sv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004222sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004222sv00008086sd00001005* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004222sv00008086sd00001034* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004222sv00008086sd00001044* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004222sv00008086sd00001C00* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004223* - ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection - - pci:v00008086d00004223sv00001000sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B Americas/Europe ZZA -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Americas/Europe ZZA) - - pci:v00008086d00004223sv00001001sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B Europe ZZE -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Europe ZZE) - - pci:v00008086d00004223sv00001002sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B Japan ZZJ -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Japan ZZJ) - - pci:v00008086d00004223sv00001003sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B High-Band ZZH -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B High-Band ZZH) - - pci:v00008086d00004223sv00001351sd0000103C* -- ID_MODEL_FROM_DATABASE=Compaq NC6220 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (Compaq NC6220) - - pci:v00008086d00004224* - ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection -@@ -69834,106 +69834,106 @@ pci:v00008086d00004227* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection - - pci:v00008086d00004227sv00008086sd00001011* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60e/X60s -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (ThinkPad T60/R60e/X60s) - - pci:v00008086d00004227sv00008086sd00001014* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004229* - ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection - - pci:v00008086d00004229sv00008086sd00001100* -- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Vaio VGN-SZ79SN_C) - - pci:v00008086d00004229sv00008086sd00001101* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (PRO/Wireless 4965 AG or AGN) - - pci:v00008086d0000422B* - ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 - - pci:v00008086d0000422Bsv00008086sd00001101* -- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) - - pci:v00008086d0000422Bsv00008086sd00001121* -- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) - - pci:v00008086d0000422C* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 - - pci:v00008086d0000422Csv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) - - pci:v00008086d0000422Csv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) - - pci:v00008086d0000422Csv00008086sd00001307* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 BG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 BG) - - pci:v00008086d0000422Csv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) - - pci:v00008086d0000422Csv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) - - pci:v00008086d00004230* - ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection - - pci:v00008086d00004230sv00008086sd00001110* -- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T51 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T51) - - pci:v00008086d00004230sv00008086sd00001111* -- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T61) - - pci:v00008086d00004232* - ID_MODEL_FROM_DATABASE=WiFi Link 5100 - - pci:v00008086d00004232sv00008086sd00001201* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001204* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001205* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001206* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004232sv00008086sd00001221* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001224* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001225* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001226* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004232sv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001304* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001305* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004232sv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001324* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001325* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004235* - ID_MODEL_FROM_DATABASE=Ultimate N WiFi Link 5300 -@@ -69945,43 +69945,43 @@ pci:v00008086d00004237* - ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection - - pci:v00008086d00004237sv00008086sd00001211* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001214* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001215* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) - - pci:v00008086d00004237sv00008086sd00001216* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) - - pci:v00008086d00004237sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001314* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001315* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) - - pci:v00008086d00004237sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) - - pci:v00008086d00004238* - ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 - - pci:v00008086d00004238sv00008086sd00001111* -- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) - - pci:v00008086d00004239* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 - - pci:v00008086d00004239sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) - - pci:v00008086d00004239sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) - - pci:v00008086d0000423A* - ID_MODEL_FROM_DATABASE=PRO/Wireless 5350 AGN [Echo Peak] Network Connection -@@ -69993,37 +69993,37 @@ pci:v00008086d0000423C* - ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 - - pci:v00008086d0000423Csv00008086sd00001201* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Csv00008086sd00001206* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000423Csv00008086sd00001221* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Csv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Csv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000423Csv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423D* - ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 - - pci:v00008086d0000423Dsv00008086sd00001211* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Dsv00008086sd00001216* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000423Dsv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Dsv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000444E* - ID_MODEL_FROM_DATABASE=Turbo Memory Controller -@@ -70176,7 +70176,7 @@ pci:v00008086d00005201* - ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller - - pci:v00008086d00005201sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller (EtherExpress PRO/100 Server Ethernet Adapter) - - pci:v00008086d0000530D* - ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor -@@ -70185,7 +70185,7 @@ pci:v00008086d00005845* - ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller - - pci:v00008086d00005845sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller (QEMU Virtual Machine) - - pci:v00008086d000065C0* - ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub -@@ -70212,16 +70212,16 @@ pci:v00008086d000065F0* - ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers - - pci:v00008086d000065F0sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 -+ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge R300) - - pci:v00008086d000065F0sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 -+ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge T300) - - pci:v00008086d000065F1* - ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers - - pci:v00008086d000065F1sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 -+ ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers (PowerEdge T300) - - pci:v00008086d000065F3* - ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers -@@ -70251,19 +70251,19 @@ pci:v00008086d00007000* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] - - pci:v00008086d00007000sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] (Qemu virtual machine) - - pci:v00008086d00007010* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] - - pci:v00008086d00007010sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] (Qemu virtual machine) - - pci:v00008086d00007020* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] - - pci:v00008086d00007020sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] (QEMU Virtual Machine) - - pci:v00008086d00007030* - ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] -@@ -70281,52 +70281,52 @@ pci:v00008086d00007110* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA - - pci:v00008086d00007110sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA (Virtual Machine Chipset) - - pci:v00008086d00007111* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE - - pci:v00008086d00007111sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE (Virtual Machine Chipset) - - pci:v00008086d00007112* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB - - pci:v00008086d00007112sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (Virtual Machine Chipset) - - pci:v00008086d00007112sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (QEMU Virtual Machine) - - pci:v00008086d00007113* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI - - pci:v00008086d00007113sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Virtual Machine Chipset) - - pci:v00008086d00007113sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Qemu virtual machine) - - pci:v00008086d00007120* - ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) - - pci:v00008086d00007120sv00004C53sd00001040* -- ID_MODEL_FROM_DATABASE=CL7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (CL7 mainboard) - - pci:v00008086d00007120sv00004C53sd00001060* -- ID_MODEL_FROM_DATABASE=PC7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (PC7 mainboard) - - pci:v00008086d00007121* - ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller - - pci:v00008086d00007121sv00004C53sd00001040* -- ID_MODEL_FROM_DATABASE=CL7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (CL7 mainboard) - - pci:v00008086d00007121sv00004C53sd00001060* -- ID_MODEL_FROM_DATABASE=PC7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (PC7 mainboard) - - pci:v00008086d00007121sv00008086sd00004341* -- ID_MODEL_FROM_DATABASE=Cayman (CA810) Mainboard -+ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (Cayman (CA810) Mainboard) - - pci:v00008086d00007122* - ID_MODEL_FROM_DATABASE=82810 DC-100 (GMCH) Graphics Memory Controller Hub -@@ -70338,13 +70338,13 @@ pci:v00008086d00007124* - ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub - - pci:v00008086d00007124sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub (OptiPlex GX110) - - pci:v00008086d00007125* - ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller - - pci:v00008086d00007125sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller (OptiPlex GX110) - - pci:v00008086d00007126* - ID_MODEL_FROM_DATABASE=82810 DC-133 System and Graphics Controller -@@ -70365,73 +70365,73 @@ pci:v00008086d00007190* - ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge - - pci:v00008086d00007190sv00000E11sd00000500* -- ID_MODEL_FROM_DATABASE=Armada 1750 Laptop System Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada 1750 Laptop System Chipset) - - pci:v00008086d00007190sv00000E11sd0000B110* -- ID_MODEL_FROM_DATABASE=Armada M700/E500 -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada M700/E500) - - pci:v00008086d00007190sv00001028sd0000008E* -- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (PowerEdge 1300 mainboard) - - pci:v00008086d00007190sv00001043sd0000803B* -- ID_MODEL_FROM_DATABASE=CUBX-L/E Mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CUBX-L/E Mainboard) - - pci:v00008086d00007190sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Toshiba Tecra 8100 Laptop System Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Toshiba Tecra 8100 Laptop System Chipset) - - pci:v00008086d00007190sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Virtual Machine Chipset) - - pci:v00008086d00007190sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CT7 mainboard) - - pci:v00008086d00007190sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CE7 mainboard) - - pci:v00008086d00007191* - ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge - - pci:v00008086d00007191sv00001028sd0000008E* -- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (PowerEdge 1300 mainboard) - - pci:v00008086d00007192* - ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) - - pci:v00008086d00007192sv00000E11sd00000460* -- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop System Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Armada 1700 Laptop System Chipset) - - pci:v00008086d00007192sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite 4010 -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Satellite 4010) - - pci:v00008086d00007192sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00008086d00007192sv00008086sd00007190* -- ID_MODEL_FROM_DATABASE=Dell PowerEdge 350 -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Dell PowerEdge 350) - - pci:v00008086d00007194* - ID_MODEL_FROM_DATABASE=82440MX Host Bridge - - pci:v00008086d00007194sv00001033sd00000000* -- ID_MODEL_FROM_DATABASE=Versa Note Vxi -+ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (Versa Note Vxi) - - pci:v00008086d00007194sv00004C53sd000010A0* -- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard -+ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (CA3/CR3 mainboard) - - pci:v00008086d00007195* - ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller - - pci:v00008086d00007195sv00001033sd000080CC* -- ID_MODEL_FROM_DATABASE=Versa Note VXi -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (Versa Note VXi) - - pci:v00008086d00007195sv000010CFsd00001099* -- ID_MODEL_FROM_DATABASE=QSound_SigmaTel Stac97 PCI Audio -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (QSound_SigmaTel Stac97 PCI Audio) - - pci:v00008086d00007195sv000011D4sd00000040* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00007195sv000011D4sd00000048* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00007196* - ID_MODEL_FROM_DATABASE=82440MX AC'97 Modem Controller -@@ -70452,10 +70452,10 @@ pci:v00008086d000071A0* - ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge - - pci:v00008086d000071A0sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CT7 mainboard) - - pci:v00008086d000071A0sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CE7 mainboard) - - pci:v00008086d000071A1* - ID_MODEL_FROM_DATABASE=440GX - 82443GX AGP bridge -@@ -70464,7 +70464,7 @@ pci:v00008086d000071A2* - ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) - - pci:v00008086d000071A2sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00008086d00007600* - ID_MODEL_FROM_DATABASE=82372FB PIIX5 ISA -@@ -70482,25 +70482,25 @@ pci:v00008086d00007800* - ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator - - pci:v00008086d00007800sv0000003Dsd00000008* -- ID_MODEL_FROM_DATABASE=Starfighter AGP -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) - - pci:v00008086d00007800sv0000003Dsd0000000B* -- ID_MODEL_FROM_DATABASE=Starfighter AGP -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) - - pci:v00008086d00007800sv00001092sd00000100* -- ID_MODEL_FROM_DATABASE=Stealth II G460 -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Stealth II G460) - - pci:v00008086d00007800sv000010B4sd0000201A* -- ID_MODEL_FROM_DATABASE=Lightspeed 740 -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) - - pci:v00008086d00007800sv000010B4sd0000202F* -- ID_MODEL_FROM_DATABASE=Lightspeed 740 -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) - - pci:v00008086d00007800sv00008086sd00000000* -- ID_MODEL_FROM_DATABASE=Terminator 2x/i -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Terminator 2x/i) - - pci:v00008086d00007800sv00008086sd00000100* -- ID_MODEL_FROM_DATABASE=Intel740 Graphics Accelerator -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Intel740 Graphics Accelerator) - - pci:v00008086d00008002* - ID_MODEL_FROM_DATABASE=Trusted Execution Technology Registers -@@ -70611,13 +70611,13 @@ pci:v00008086d00008500* - ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) - - pci:v00008086d00008500sv00001993sd00000DED* -- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#2 -+ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#2) - - pci:v00008086d00008500sv00001993sd00000DEE* -- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#1 -+ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#1) - - pci:v00008086d00008500sv00001993sd00000DEF* -- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#0 -+ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#0) - - pci:v00008086d00008800* - ID_MODEL_FROM_DATABASE=Platform Controller Hub EG20T PCI Express Port -@@ -70710,10 +70710,10 @@ pci:v00008086d00008C03* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] - - pci:v00008086d00008C03sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ZBook 15) - - pci:v00008086d00008C03sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ThinkPad T440p) - - pci:v00008086d00008C04* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode] -@@ -70743,7 +70743,7 @@ pci:v00008086d00008C10* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 - - pci:v00008086d00008C10sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 (ThinkPad T440p) - - pci:v00008086d00008C11* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 -@@ -70752,7 +70752,7 @@ pci:v00008086d00008C12* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 - - pci:v00008086d00008C12sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 (ThinkPad T440p) - - pci:v00008086d00008C13* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 -@@ -70797,10 +70797,10 @@ pci:v00008086d00008C20* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller - - pci:v00008086d00008C20sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ZBook 15) - - pci:v00008086d00008C20sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ThinkPad T440p) - - pci:v00008086d00008C21* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller -@@ -70809,10 +70809,10 @@ pci:v00008086d00008C22* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller - - pci:v00008086d00008C22sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ZBook 15) - - pci:v00008086d00008C22sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ThinkPad T440p) - - pci:v00008086d00008C23* - ID_MODEL_FROM_DATABASE=8 Series Chipset Family CHAP Counters -@@ -70824,28 +70824,28 @@ pci:v00008086d00008C26* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 - - pci:v00008086d00008C26sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ZBook 15) - - pci:v00008086d00008C26sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ThinkPad T440p) - - pci:v00008086d00008C2D* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 - - pci:v00008086d00008C2Dsv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ZBook 15) - - pci:v00008086d00008C2Dsv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ThinkPad T440p) - - pci:v00008086d00008C31* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI - - pci:v00008086d00008C31sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ZBook 15) - - pci:v00008086d00008C31sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ThinkPad T440p) - - pci:v00008086d00008C33* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LAN Controller -@@ -70857,10 +70857,10 @@ pci:v00008086d00008C3A* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 - - pci:v00008086d00008C3Asv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ZBook 15) - - pci:v00008086d00008C3Asv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ThinkPad T440p) - - pci:v00008086d00008C3B* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #2 -@@ -70920,10 +70920,10 @@ pci:v00008086d00008C4F* - ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller - - pci:v00008086d00008C4Fsv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ZBook 15) - - pci:v00008086d00008C4Fsv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ThinkPad T440p) - - pci:v00008086d00008C50* - ID_MODEL_FROM_DATABASE=B85 Express LPC Controller -@@ -70986,7 +70986,7 @@ pci:v00008086d00008D06* - ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] - - pci:v00008086d00008D06sv000017AAsd00001031* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i -+ ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] (ThinkServer RAID 110i) - - pci:v00008086d00008D08* - ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] -@@ -71196,7 +71196,7 @@ pci:v00008086d00009C03* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] - - pci:v00008086d00009C03sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) - - pci:v00008086d00009C04* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -@@ -71286,7 +71286,7 @@ pci:v00008086d00009C20* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller - - pci:v00008086d00009C20sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) - - pci:v00008086d00009C21* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller -@@ -71295,7 +71295,7 @@ pci:v00008086d00009C22* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller - - pci:v00008086d00009C22sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) - - pci:v00008086d00009C23* - ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters -@@ -71307,7 +71307,7 @@ pci:v00008086d00009C26* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 - - pci:v00008086d00009C26sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) - - pci:v00008086d00009C2D* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 -@@ -71316,7 +71316,7 @@ pci:v00008086d00009C31* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC - - pci:v00008086d00009C31sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) - - pci:v00008086d00009C35* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller -@@ -71328,7 +71328,7 @@ pci:v00008086d00009C3A* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 - - pci:v00008086d00009C3Asv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) - - pci:v00008086d00009C3B* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 -@@ -71352,7 +71352,7 @@ pci:v00008086d00009C43* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller - - pci:v00008086d00009C43sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) - - pci:v00008086d00009C44* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -@@ -71496,25 +71496,25 @@ pci:v00008086d0000A000* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge - - pci:v00008086d0000A000sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (GA-D525TUD) - - pci:v00008086d0000A000sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (DeskTop Board D510MO) - - pci:v00008086d0000A000sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Desktop Board D425KT) - - pci:v00008086d0000A001* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller - - pci:v00008086d0000A001sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (GA-D525TUD) - - pci:v00008086d0000A001sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (DeskTop Board D510MO) - - pci:v00008086d0000A001sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Desktop Board D425KT) - - pci:v00008086d0000A002* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller -@@ -71526,19 +71526,19 @@ pci:v00008086d0000A010* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge - - pci:v00008086d0000A010sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Notebook N150P) - - pci:v00008086d0000A011* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller - - pci:v00008086d0000A011sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) - - pci:v00008086d0000A012* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller - - pci:v00008086d0000A012sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) - - pci:v00008086d0000A013* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx CHAPS counter -@@ -71559,22 +71559,22 @@ pci:v00008086d0000B555* - ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge - - pci:v00008086d0000B555sv000012C7sd00005005* -- ID_MODEL_FROM_DATABASE=SS7HD PCI Adaptor Card -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HD PCI Adaptor Card) - - pci:v00008086d0000B555sv000012C7sd00005006* -- ID_MODEL_FROM_DATABASE=SS7HDC cPCI Adaptor Card -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HDC cPCI Adaptor Card) - - pci:v00008086d0000B555sv000012D9sd0000000A* -- ID_MODEL_FROM_DATABASE=PCI VoIP Gateway -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (PCI VoIP Gateway) - - pci:v00008086d0000B555sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CT7 mainboard) - - pci:v00008086d0000B555sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CE7 mainboard) - - pci:v00008086d0000B555sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CC8-1-BLUES -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CC8-1-BLUES) - - pci:v00008086d0000D130* - ID_MODEL_FROM_DATABASE=Core Processor DMI -@@ -71583,16 +71583,16 @@ pci:v00008086d0000D131* - ID_MODEL_FROM_DATABASE=Core Processor DMI - - pci:v00008086d0000D131sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=Core Processor DMI (OptiPlex 980) - - pci:v00008086d0000D131sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=Core Processor DMI (C7SIM-Q Motherboard) - - pci:v00008086d0000D132* - ID_MODEL_FROM_DATABASE=Core Processor DMI - - pci:v00008086d0000D132sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=Core Processor DMI (Latitude E6510) - - pci:v00008086d0000D133* - ID_MODEL_FROM_DATABASE=Core Processor DMI -@@ -71613,13 +71613,13 @@ pci:v00008086d0000D138* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 - - pci:v00008086d0000D138sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (OptiPlex 980) - - pci:v00008086d0000D138sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (Latitude E6510) - - pci:v00008086d0000D138sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (C7SIM-Q Motherboard) - - pci:v00008086d0000D139* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 -@@ -71730,7 +71730,7 @@ pci:v00009004d00005078* - ID_MODEL_FROM_DATABASE=AIC-7850 - - pci:v00009004d00005078sv00009004sd00007850* -- ID_MODEL_FROM_DATABASE=AHA-2904/Integrated AIC-7850 -+ ID_MODEL_FROM_DATABASE=AIC-7850 (AHA-2904/Integrated AIC-7850) - - pci:v00009004d00005175* - ID_MODEL_FROM_DATABASE=AIC-755x -@@ -71766,10 +71766,10 @@ pci:v00009004d00005647* - ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine - - pci:v00009004d00005647sv00009004sd00007710* -- ID_MODEL_FROM_DATABASE=ANA-7711F TCP Offload Engine - Optical -+ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711F TCP Offload Engine - Optical) - - pci:v00009004d00005647sv00009004sd00007711* -- ID_MODEL_FROM_DATABASE=ANA-7711LP TCP Offload Engine - Copper -+ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711LP TCP Offload Engine - Copper) - - pci:v00009004d00005675* - ID_MODEL_FROM_DATABASE=AIC-755x -@@ -71799,7 +71799,7 @@ pci:v00009004d00006075* - ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 - - pci:v00009004d00006075sv00009004sd00007560* -- ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 Cardbus -+ ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 (Cardbus) - - pci:v00009004d00006078* - ID_MODEL_FROM_DATABASE=AIC-7860 -@@ -71808,7 +71808,7 @@ pci:v00009004d00006178* - ID_MODEL_FROM_DATABASE=AIC-7861 - - pci:v00009004d00006178sv00009004sd00007861* -- ID_MODEL_FROM_DATABASE=AHA-2940AU Single -+ ID_MODEL_FROM_DATABASE=AIC-7861 (AHA-2940AU Single) - - pci:v00009004d00006278* - ID_MODEL_FROM_DATABASE=AIC-7860 -@@ -71832,46 +71832,46 @@ pci:v00009004d00006915* - ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A - - pci:v00009004d00006915sv00009004sd00000008* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) - - pci:v00009004d00006915sv00009004sd00000009* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) - - pci:v00009004d00006915sv00009004sd00000010* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) - - pci:v00009004d00006915sv00009004sd00000018* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) - - pci:v00009004d00006915sv00009004sd00000019* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) - - pci:v00009004d00006915sv00009004sd00000020* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) - - pci:v00009004d00006915sv00009004sd00000028* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) - - pci:v00009004d00006915sv00009004sd00008008* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008009* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008010* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008018* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008019* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008020* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008028* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) - - pci:v00009004d00007078* - ID_MODEL_FROM_DATABASE=AHA-294x / AIC-7870 -@@ -71910,7 +71910,7 @@ pci:v00009004d00007815* - ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC - - pci:v00009004d00007815sv00009004sd00007815* -- ID_MODEL_FROM_DATABASE=ARO-1130U2 RAID Controller -+ ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC (ARO-1130U2 RAID Controller) - - pci:v00009004d00007815sv00009004sd00007840* - ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC -@@ -71961,25 +71961,25 @@ pci:v00009004d00007895* - ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 - - pci:v00009004d00007895sv00009004sd00007890* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007895sv00009004sd00007891* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual) - - pci:v00009004d00007895sv00009004sd00007892* -- ID_MODEL_FROM_DATABASE=AHA-3940AU/AUW/AUWD/UWD -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3940AU/AUW/AUWD/UWD) - - pci:v00009004d00007895sv00009004sd00007894* -- ID_MODEL_FROM_DATABASE=AHA-3944AUWD -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3944AUWD) - - pci:v00009004d00007895sv00009004sd00007895* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007895sv00009004sd00007896* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007895sv00009004sd00007897* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007896* - ID_MODEL_FROM_DATABASE=AIC-789x -@@ -71991,13 +71991,13 @@ pci:v00009004d00008078* - ID_MODEL_FROM_DATABASE=AIC-7880U - - pci:v00009004d00008078sv00009004sd00007880* -- ID_MODEL_FROM_DATABASE=AIC-7880P Ultra/Ultra Wide SCSI Chipset -+ ID_MODEL_FROM_DATABASE=AIC-7880U (AIC-7880P Ultra/Ultra Wide SCSI Chipset) - - pci:v00009004d00008178* - ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U - - pci:v00009004d00008178sv00009004sd00007881* -- ID_MODEL_FROM_DATABASE=AHA-2940UW SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U (AHA-2940UW SCSI Host Adapter) - - pci:v00009004d00008278* - ID_MODEL_FROM_DATABASE=AHA-3940U/UW/UWD / AIC-7882U -@@ -72018,13 +72018,13 @@ pci:v00009004d00008778* - ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x - - pci:v00009004d00008778sv00009004sd00007887* -- ID_MODEL_FROM_DATABASE=2940UW Pro Ultra-Wide SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x (2940UW Pro Ultra-Wide SCSI Controller) - - pci:v00009004d00008878* - ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 - - pci:v00009004d00008878sv00009004sd00007888* -- ID_MODEL_FROM_DATABASE=AHA-2930UW SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 (AHA-2930UW SCSI Controller) - - pci:v00009004d00008B78* - ID_MODEL_FROM_DATABASE=ABA-1030 -@@ -72039,19 +72039,19 @@ pci:v00009005d00000010* - ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W - - pci:v00009005d00000010sv00009005sd00002180* -- ID_MODEL_FROM_DATABASE=AHA-2940U2 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2 SCSI Controller) - - pci:v00009005d00000010sv00009005sd00008100* -- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) - - pci:v00009005d00000010sv00009005sd0000A100* -- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) - - pci:v00009005d00000010sv00009005sd0000A180* -- ID_MODEL_FROM_DATABASE=AHA-2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2W SCSI Controller) - - pci:v00009005d00000010sv00009005sd0000E100* -- ID_MODEL_FROM_DATABASE=AHA-2950U2B SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2950U2B SCSI Controller) - - pci:v00009005d00000011* - ID_MODEL_FROM_DATABASE=AHA-2930U2 -@@ -72060,19 +72060,19 @@ pci:v00009005d00000013* - ID_MODEL_FROM_DATABASE=78902 - - pci:v00009005d00000013sv00009005sd00000003* -- ID_MODEL_FROM_DATABASE=AAA-131U2 Array1000 1 Channel RAID Controller -+ ID_MODEL_FROM_DATABASE=78902 (AAA-131U2 Array1000 1 Channel RAID Controller) - - pci:v00009005d00000013sv00009005sd0000000F* -- ID_MODEL_FROM_DATABASE=AIC7890_ARO -+ ID_MODEL_FROM_DATABASE=78902 (AIC7890_ARO) - - pci:v00009005d0000001F* - ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 - - pci:v00009005d0000001Fsv00009005sd0000000F* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) - - pci:v00009005d0000001Fsv00009005sd0000A180* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) - - pci:v00009005d00000020* - ID_MODEL_FROM_DATABASE=AIC-7890 -@@ -72090,10 +72090,10 @@ pci:v00009005d00000050* - ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x - - pci:v00009005d00000050sv00009005sd0000F500* -- ID_MODEL_FROM_DATABASE=AHA-3950U2B -+ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) - - pci:v00009005d00000050sv00009005sd0000FFFF* -- ID_MODEL_FROM_DATABASE=AHA-3950U2B -+ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) - - pci:v00009005d00000051* - ID_MODEL_FROM_DATABASE=AHA-3950U2D -@@ -72105,7 +72105,7 @@ pci:v00009005d00000053* - ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller - - pci:v00009005d00000053sv00009005sd0000FFFF* -- ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller mainboard implementation -+ ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller (mainboard implementation) - - pci:v00009005d0000005F* - ID_MODEL_FROM_DATABASE=AIC-7896U2/7897U2 -@@ -72114,25 +72114,25 @@ pci:v00009005d00000080* - ID_MODEL_FROM_DATABASE=AIC-7892A U160/m - - pci:v00009005d00000080sv00000E11sd0000E2A0* -- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter) - - pci:v00009005d00000080sv00009005sd00006220* -- ID_MODEL_FROM_DATABASE=AHA-29160C -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (AHA-29160C) - - pci:v00009005d00000080sv00009005sd000062A0* -- ID_MODEL_FROM_DATABASE=29160N Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160N Ultra160 SCSI Controller) - - pci:v00009005d00000080sv00009005sd0000E220* -- ID_MODEL_FROM_DATABASE=29160LP Low Profile Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160LP Low Profile Ultra160 SCSI Controller) - - pci:v00009005d00000080sv00009005sd0000E2A0* -- ID_MODEL_FROM_DATABASE=29160 Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160 Ultra160 SCSI Controller) - - pci:v00009005d00000081* - ID_MODEL_FROM_DATABASE=AIC-7892B U160/m - - pci:v00009005d00000081sv00009005sd000062A1* -- ID_MODEL_FROM_DATABASE=19160 Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892B U160/m (19160 Ultra160 SCSI Controller) - - pci:v00009005d00000083* - ID_MODEL_FROM_DATABASE=AIC-7892D U160/m -@@ -72141,10 +72141,10 @@ pci:v00009005d0000008F* - ID_MODEL_FROM_DATABASE=AIC-7892P U160/m - - pci:v00009005d0000008Fsv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Magnia Z310) - - pci:v00009005d0000008Fsv000015D9sd00009005* -- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Onboard SCSI Host Adapter) - - pci:v00009005d00000092* - ID_MODEL_FROM_DATABASE=AVC-2010 [VideoH!] -@@ -72156,10 +72156,10 @@ pci:v00009005d000000C0* - ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m - - pci:v00009005d000000C0sv00000E11sd0000F620* -- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter) - - pci:v00009005d000000C0sv00009005sd0000F620* -- ID_MODEL_FROM_DATABASE=AHA-3960D U160/m -+ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (AHA-3960D U160/m) - - pci:v00009005d000000C1* - ID_MODEL_FROM_DATABASE=AIC-7899B U160/m -@@ -72171,28 +72171,28 @@ pci:v00009005d000000C5* - ID_MODEL_FROM_DATABASE=RAID subsystem HBA - - pci:v00009005d000000C5sv00001028sd000000C5* -- ID_MODEL_FROM_DATABASE=PowerEdge 2400,2500,2550,4400 -+ ID_MODEL_FROM_DATABASE=RAID subsystem HBA (PowerEdge 2400,2500,2550,4400) - - pci:v00009005d000000CF* - ID_MODEL_FROM_DATABASE=AIC-7899P U160/m - - pci:v00009005d000000CFsv00001028sd000000CE* -- ID_MODEL_FROM_DATABASE=PowerEdge 1400 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 1400) - - pci:v00009005d000000CFsv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=PowerEdge 2550 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2550) - - pci:v00009005d000000CFsv00001028sd000000D9* -- ID_MODEL_FROM_DATABASE=PowerEdge 2500 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2500) - - pci:v00009005d000000CFsv000010F1sd00002462* -- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Thunder K7 S2462) - - pci:v00009005d000000CFsv000015D9sd00009005* -- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Onboard SCSI Host Adapter) - - pci:v00009005d000000CFsv00008086sd00003411* -- ID_MODEL_FROM_DATABASE=SDS2 Mainboard -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (SDS2 Mainboard) - - pci:v00009005d00000241* - ID_MODEL_FROM_DATABASE=Serial ATA II RAID 1420SA -@@ -72210,13 +72210,13 @@ pci:v00009005d00000250* - ID_MODEL_FROM_DATABASE=ServeRAID Controller - - pci:v00009005d00000250sv00001014sd00000279* -- ID_MODEL_FROM_DATABASE=ServeRAID 6M -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6M) - - pci:v00009005d00000250sv00001014sd0000028C* -- ID_MODEL_FROM_DATABASE=ServeRAID 6i/6i+ -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6i/6i+) - - pci:v00009005d00000250sv00001014sd0000028E* -- ID_MODEL_FROM_DATABASE=ServeRAID 7k -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 7k) - - pci:v00009005d00000279* - ID_MODEL_FROM_DATABASE=ServeRAID 6M -@@ -72225,415 +72225,415 @@ pci:v00009005d00000283* - ID_MODEL_FROM_DATABASE=AAC-RAID - - pci:v00009005d00000283sv00009005sd00000283* -- ID_MODEL_FROM_DATABASE=Catapult -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Catapult) - - pci:v00009005d00000284* - ID_MODEL_FROM_DATABASE=AAC-RAID - - pci:v00009005d00000284sv00009005sd00000284* -- ID_MODEL_FROM_DATABASE=Tomcat -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Tomcat) - - pci:v00009005d00000285* - ID_MODEL_FROM_DATABASE=AAC-RAID - - pci:v00009005d00000285sv00000E11sd00000295* -- ID_MODEL_FROM_DATABASE=SATA 6Ch (Bearcat) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SATA 6Ch (Bearcat)) - - pci:v00009005d00000285sv00001014sd000002F2* -- ID_MODEL_FROM_DATABASE=ServeRAID 8i -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ServeRAID 8i) - - pci:v00009005d00000285sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 320/DC -+ ID_MODEL_FROM_DATABASE=AAC-RAID (PowerEdge Expandable RAID Controller 320/DC) - - pci:v00009005d00000285sv00001028sd00000291* -- ID_MODEL_FROM_DATABASE=CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)) - - pci:v00009005d00000285sv0000103Csd00003227* -- ID_MODEL_FROM_DATABASE=AAR-2610SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2610SA) - - pci:v00009005d00000285sv0000108Esd00000286* -- ID_MODEL_FROM_DATABASE=Sun StorageTek SAS RAID HBA, Internal -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Sun StorageTek SAS RAID HBA, Internal) - - pci:v00009005d00000285sv0000108Esd00000287* -- ID_MODEL_FROM_DATABASE=STK RAID EXT -+ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EXT) - - pci:v00009005d00000285sv0000108Esd00007AAC* -- ID_MODEL_FROM_DATABASE=STK RAID REM -+ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID REM) - - pci:v00009005d00000285sv0000108Esd00007AAE* -- ID_MODEL_FROM_DATABASE=STK RAID EX -+ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EX) - - pci:v00009005d00000285sv000015D9sd000002B5* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4i -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4i) - - pci:v00009005d00000285sv000015D9sd000002B6* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i) - - pci:v00009005d00000285sv000015D9sd000002C9* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4iR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4iR) - - pci:v00009005d00000285sv000015D9sd000002CA* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR) - - pci:v00009005d00000285sv000015D9sd000002D2* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i-LP -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i-LP) - - pci:v00009005d00000285sv000015D9sd000002D3* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR-LP -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR-LP) - - pci:v00009005d00000285sv000017AAsd00000286* -- ID_MODEL_FROM_DATABASE=Legend S220 (Legend Crusader) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S220 (Legend Crusader)) - - pci:v00009005d00000285sv000017AAsd00000287* -- ID_MODEL_FROM_DATABASE=Legend S230 (Legend Vulcan) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S230 (Legend Vulcan)) - - pci:v00009005d00000285sv00009005sd00000285* -- ID_MODEL_FROM_DATABASE=2200S (Vulcan) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan)) - - pci:v00009005d00000285sv00009005sd00000286* -- ID_MODEL_FROM_DATABASE=2120S (Crusader) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (2120S (Crusader)) - - pci:v00009005d00000285sv00009005sd00000287* -- ID_MODEL_FROM_DATABASE=2200S (Vulcan-2m) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan-2m)) - - pci:v00009005d00000285sv00009005sd00000288* -- ID_MODEL_FROM_DATABASE=3230S (Harrier) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3230S (Harrier)) - - pci:v00009005d00000285sv00009005sd00000289* -- ID_MODEL_FROM_DATABASE=3240S (Tornado) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3240S (Tornado)) - - pci:v00009005d00000285sv00009005sd0000028A* -- ID_MODEL_FROM_DATABASE=ASR-2020ZCR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020ZCR) - - pci:v00009005d00000285sv00009005sd0000028B* -- ID_MODEL_FROM_DATABASE=ASR-2025ZCR (Terminator) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025ZCR (Terminator)) - - pci:v00009005d00000285sv00009005sd0000028E* -- ID_MODEL_FROM_DATABASE=ASR-2020SA (Skyhawk) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020SA (Skyhawk)) - - pci:v00009005d00000285sv00009005sd0000028F* -- ID_MODEL_FROM_DATABASE=ASR-2025SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025SA) - - pci:v00009005d00000285sv00009005sd00000290* -- ID_MODEL_FROM_DATABASE=AAR-2410SA PCI SATA 4ch (Jaguar II) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2410SA PCI SATA 4ch (Jaguar II)) - - pci:v00009005d00000285sv00009005sd00000292* -- ID_MODEL_FROM_DATABASE=AAR-2810SA PCI SATA 8ch (Corsair-8) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2810SA PCI SATA 8ch (Corsair-8)) - - pci:v00009005d00000285sv00009005sd00000293* -- ID_MODEL_FROM_DATABASE=AAR-21610SA PCI SATA 16ch (Corsair-16) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-21610SA PCI SATA 16ch (Corsair-16)) - - pci:v00009005d00000285sv00009005sd00000294* -- ID_MODEL_FROM_DATABASE=ESD SO-DIMM PCI-X SATA ZCR (Prowler) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ESD SO-DIMM PCI-X SATA ZCR (Prowler)) - - pci:v00009005d00000285sv00009005sd00000296* -- ID_MODEL_FROM_DATABASE=ASR-2240S -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2240S) - - pci:v00009005d00000285sv00009005sd00000297* -- ID_MODEL_FROM_DATABASE=ASR-4005SAS -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4005SAS) - - pci:v00009005d00000285sv00009005sd00000298* -- ID_MODEL_FROM_DATABASE=ASR-4000 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4000) - - pci:v00009005d00000285sv00009005sd00000299* -- ID_MODEL_FROM_DATABASE=ASR-4800SAS -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4800SAS) - - pci:v00009005d00000285sv00009005sd0000029A* -- ID_MODEL_FROM_DATABASE=4805SAS -+ ID_MODEL_FROM_DATABASE=AAC-RAID (4805SAS) - - pci:v00009005d00000285sv00009005sd000002A4* -- ID_MODEL_FROM_DATABASE=ICP ICP9085LI -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP9085LI) - - pci:v00009005d00000285sv00009005sd000002A5* -- ID_MODEL_FROM_DATABASE=ICP ICP5085BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BR) - - pci:v00009005d00000285sv00009005sd000002B5* -- ID_MODEL_FROM_DATABASE=ASR5800 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5800) - - pci:v00009005d00000285sv00009005sd000002B6* -- ID_MODEL_FROM_DATABASE=ASR5805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5805) - - pci:v00009005d00000285sv00009005sd000002B7* -- ID_MODEL_FROM_DATABASE=ASR5808 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5808) - - pci:v00009005d00000285sv00009005sd000002B8* -- ID_MODEL_FROM_DATABASE=ICP5445SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5445SL) - - pci:v00009005d00000285sv00009005sd000002B9* -- ID_MODEL_FROM_DATABASE=ICP5085SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5085SL) - - pci:v00009005d00000285sv00009005sd000002BA* -- ID_MODEL_FROM_DATABASE=ICP5805SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805SL) - - pci:v00009005d00000285sv00009005sd000002BB* -- ID_MODEL_FROM_DATABASE=3405 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3405) - - pci:v00009005d00000285sv00009005sd000002BC* -- ID_MODEL_FROM_DATABASE=3805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3805) - - pci:v00009005d00000285sv00009005sd000002BD* -- ID_MODEL_FROM_DATABASE=31205 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (31205) - - pci:v00009005d00000285sv00009005sd000002BE* -- ID_MODEL_FROM_DATABASE=31605 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (31605) - - pci:v00009005d00000285sv00009005sd000002BF* -- ID_MODEL_FROM_DATABASE=ICP ICP5045BL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5045BL) - - pci:v00009005d00000285sv00009005sd000002C0* -- ID_MODEL_FROM_DATABASE=ICP ICP5085BL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BL) - - pci:v00009005d00000285sv00009005sd000002C1* -- ID_MODEL_FROM_DATABASE=ICP ICP5125BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125BR) - - pci:v00009005d00000285sv00009005sd000002C2* -- ID_MODEL_FROM_DATABASE=ICP ICP5165BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165BR) - - pci:v00009005d00000285sv00009005sd000002C3* -- ID_MODEL_FROM_DATABASE=51205 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51205) - - pci:v00009005d00000285sv00009005sd000002C4* -- ID_MODEL_FROM_DATABASE=51605 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51605) - - pci:v00009005d00000285sv00009005sd000002C5* -- ID_MODEL_FROM_DATABASE=ICP ICP5125SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125SL) - - pci:v00009005d00000285sv00009005sd000002C6* -- ID_MODEL_FROM_DATABASE=ICP ICP5165SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165SL) - - pci:v00009005d00000285sv00009005sd000002C7* -- ID_MODEL_FROM_DATABASE=3085 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3085) - - pci:v00009005d00000285sv00009005sd000002C8* -- ID_MODEL_FROM_DATABASE=ICP5805BL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805BL) - - pci:v00009005d00000285sv00009005sd000002CE* -- ID_MODEL_FROM_DATABASE=51245 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51245) - - pci:v00009005d00000285sv00009005sd000002CF* -- ID_MODEL_FROM_DATABASE=51645 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51645) - - pci:v00009005d00000285sv00009005sd000002D0* -- ID_MODEL_FROM_DATABASE=52445 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (52445) - - pci:v00009005d00000285sv00009005sd000002D1* -- ID_MODEL_FROM_DATABASE=5405 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5405) - - pci:v00009005d00000285sv00009005sd000002D4* -- ID_MODEL_FROM_DATABASE=ASR-2045 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045) - - pci:v00009005d00000285sv00009005sd000002D5* -- ID_MODEL_FROM_DATABASE=ASR-2405 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405) - - pci:v00009005d00000285sv00009005sd000002D6* -- ID_MODEL_FROM_DATABASE=ASR-2445 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445) - - pci:v00009005d00000285sv00009005sd000002D7* -- ID_MODEL_FROM_DATABASE=ASR-2805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805) - - pci:v00009005d00000285sv00009005sd000002D8* -- ID_MODEL_FROM_DATABASE=5405G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5405G) - - pci:v00009005d00000285sv00009005sd000002D9* -- ID_MODEL_FROM_DATABASE=5445G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5445G) - - pci:v00009005d00000285sv00009005sd000002DA* -- ID_MODEL_FROM_DATABASE=5805G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5805G) - - pci:v00009005d00000285sv00009005sd000002DB* -- ID_MODEL_FROM_DATABASE=5085G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5085G) - - pci:v00009005d00000285sv00009005sd000002DC* -- ID_MODEL_FROM_DATABASE=51245G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51245G) - - pci:v00009005d00000285sv00009005sd000002DD* -- ID_MODEL_FROM_DATABASE=51645G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51645G) - - pci:v00009005d00000285sv00009005sd000002DE* -- ID_MODEL_FROM_DATABASE=52445G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (52445G) - - pci:v00009005d00000285sv00009005sd000002DF* -- ID_MODEL_FROM_DATABASE=ASR-2045G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045G) - - pci:v00009005d00000285sv00009005sd000002E0* -- ID_MODEL_FROM_DATABASE=ASR-2405G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405G) - - pci:v00009005d00000285sv00009005sd000002E1* -- ID_MODEL_FROM_DATABASE=ASR-2445G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445G) - - pci:v00009005d00000285sv00009005sd000002E2* -- ID_MODEL_FROM_DATABASE=ASR-2805G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805G) - - pci:v00009005d00000286* - ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) - - pci:v00009005d00000286sv00001014sd0000034D* -- ID_MODEL_FROM_DATABASE=8s -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (8s) - - pci:v00009005d00000286sv00001014sd00009540* -- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l4 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l4) - - pci:v00009005d00000286sv00001014sd00009580* -- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l8 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l8) - - pci:v00009005d00000286sv00009005sd0000028C* -- ID_MODEL_FROM_DATABASE=ASR-2230S + ASR-2230SLP PCI-X (Lancer) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2230S + ASR-2230SLP PCI-X (Lancer)) - - pci:v00009005d00000286sv00009005sd0000028D* -- ID_MODEL_FROM_DATABASE=ASR-2130S -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2130S) - - pci:v00009005d00000286sv00009005sd0000029B* -- ID_MODEL_FROM_DATABASE=ASR-2820SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2820SA) - - pci:v00009005d00000286sv00009005sd0000029C* -- ID_MODEL_FROM_DATABASE=ASR-2620SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2620SA) - - pci:v00009005d00000286sv00009005sd0000029D* -- ID_MODEL_FROM_DATABASE=ASR-2420SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2420SA) - - pci:v00009005d00000286sv00009005sd0000029E* -- ID_MODEL_FROM_DATABASE=ICP ICP9024R0 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9024R0) - - pci:v00009005d00000286sv00009005sd0000029F* -- ID_MODEL_FROM_DATABASE=ICP ICP9014R0 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9014R0) - - pci:v00009005d00000286sv00009005sd000002A0* -- ID_MODEL_FROM_DATABASE=ICP ICP9047MA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9047MA) - - pci:v00009005d00000286sv00009005sd000002A1* -- ID_MODEL_FROM_DATABASE=ICP ICP9087MA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9087MA) - - pci:v00009005d00000286sv00009005sd000002A2* -- ID_MODEL_FROM_DATABASE=3800 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3800) - - pci:v00009005d00000286sv00009005sd000002A3* -- ID_MODEL_FROM_DATABASE=ICP ICP5445AU -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5445AU) - - pci:v00009005d00000286sv00009005sd000002A4* -- ID_MODEL_FROM_DATABASE=ICP ICP9085LI -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9085LI) - - pci:v00009005d00000286sv00009005sd000002A5* -- ID_MODEL_FROM_DATABASE=ICP ICP5085BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085BR) - - pci:v00009005d00000286sv00009005sd000002A6* -- ID_MODEL_FROM_DATABASE=ICP9067MA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP9067MA) - - pci:v00009005d00000286sv00009005sd000002A7* -- ID_MODEL_FROM_DATABASE=3805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3805) - - pci:v00009005d00000286sv00009005sd000002A8* -- ID_MODEL_FROM_DATABASE=3400 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3400) - - pci:v00009005d00000286sv00009005sd000002A9* -- ID_MODEL_FROM_DATABASE=ICP ICP5085AU -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085AU) - - pci:v00009005d00000286sv00009005sd000002AA* -- ID_MODEL_FROM_DATABASE=ICP ICP5045AU -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AU) - - pci:v00009005d00000286sv00009005sd000002AC* -- ID_MODEL_FROM_DATABASE=1800 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (1800) - - pci:v00009005d00000286sv00009005sd000002B3* -- ID_MODEL_FROM_DATABASE=2400 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (2400) - - pci:v00009005d00000286sv00009005sd000002B4* -- ID_MODEL_FROM_DATABASE=ICP ICP5045AL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AL) - - pci:v00009005d00000286sv00009005sd00000800* -- ID_MODEL_FROM_DATABASE=Callisto -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (Callisto) - - pci:v00009005d0000028B* - ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 - - pci:v00009005d0000028Bsv00009005sd00000200* -- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000201* -- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000300* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6405 - 4 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6405 - 4 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000301* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6805 - 8 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6805 - 8 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000302* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000310* -- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000311* -- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS) - - pci:v00009005d0000028Bsv00009005sd00000400* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61205 - 12 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61205 - 12 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000401* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61605 - 16 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61605 - 16 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000403* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-62405 - 24 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-62405 - 24 internal 6G SAS ports) - - pci:v00009005d0000028C* - ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 - - pci:v00009005d0000028Csv00009005sd00000500* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000501* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000502* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000503* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000504* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000505* -- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000506* -- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028D* - ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 - - pci:v00009005d0000028Dsv00009005sd00000550* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000551* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000552* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000553* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000554* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d00000410* - ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) - - pci:v00009005d00000410sv00009005sd00000410* -- ID_MODEL_FROM_DATABASE=ASC-48300(Spirit RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-48300(Spirit RAID)) - - pci:v00009005d00000410sv00009005sd00000411* -- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-58300 (Oakmont RAID)) - - pci:v00009005d00000412* - ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) - - pci:v00009005d00000412sv00009005sd00000412* -- ID_MODEL_FROM_DATABASE=ASC-48300 (Spirit non-RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-48300 (Spirit non-RAID)) - - pci:v00009005d00000412sv00009005sd00000413* -- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont non-RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-58300 (Oakmont non-RAID)) - - pci:v00009005d00000415* - ID_MODEL_FROM_DATABASE=ASC-58300 SAS (Razor-External HBA RAID) -@@ -72657,13 +72657,13 @@ pci:v00009005d00000430* - ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) - - pci:v00009005d00000430sv00009005sd00000430* -- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) (ASC-44300 (Spirit-Lite RAID)) - - pci:v00009005d00000432* - ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) - - pci:v00009005d00000432sv00009005sd00000432* -- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite non-RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) (ASC-44300 (Spirit-Lite non-RAID)) - - pci:v00009005d0000043E* - ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite ASIC non-RAID) -@@ -72678,22 +72678,22 @@ pci:v00009005d00000500* - ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller - - pci:v00009005d00000500sv00001014sd000002C1* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) - - pci:v00009005d00000500sv00001014sd000002C2* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/572D) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/572D)) - - pci:v00009005d00000503* - ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller - - pci:v00009005d00000503sv00001014sd000002BF* -- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E) -+ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E)) - - pci:v00009005d00000503sv00001014sd000002C3* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572F) -+ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572F)) - - pci:v00009005d00000503sv00001014sd000002D5* -- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F) -+ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F)) - - pci:v00009005d00000910* - ID_MODEL_FROM_DATABASE=AUA-3100B -@@ -72714,10 +72714,10 @@ pci:v00009005d00008011* - ID_MODEL_FROM_DATABASE=ASC-39320D - - pci:v00009005d00008011sv00000E11sd000000AC* -- ID_MODEL_FROM_DATABASE=ASC-39320D U320 -+ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) - - pci:v00009005d00008011sv00009005sd00000041* -- ID_MODEL_FROM_DATABASE=ASC-39320D U320 -+ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) - - pci:v00009005d00008012* - ID_MODEL_FROM_DATABASE=ASC-29320 U320 -@@ -72738,10 +72738,10 @@ pci:v00009005d00008017* - ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 - - pci:v00009005d00008017sv00009005sd00000044* -- ID_MODEL_FROM_DATABASE=ASC-29320ALP PCIx U320 -+ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320ALP PCIx U320) - - pci:v00009005d00008017sv00009005sd00000045* -- ID_MODEL_FROM_DATABASE=ASC-29320LPE PCIe U320 -+ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320LPE PCIe U320) - - pci:v00009005d0000801C* - ID_MODEL_FROM_DATABASE=ASC-39320D U320 -@@ -72750,7 +72750,7 @@ pci:v00009005d0000801D* - ID_MODEL_FROM_DATABASE=AIC-7902B U320 - - pci:v00009005d0000801Dsv00001014sd000002CC* -- ID_MODEL_FROM_DATABASE=ServeRAID 7e -+ ID_MODEL_FROM_DATABASE=AIC-7902B U320 (ServeRAID 7e) - - pci:v00009005d0000801E* - ID_MODEL_FROM_DATABASE=AIC-7901A U320 -@@ -72759,7 +72759,7 @@ pci:v00009005d0000801F* - ID_MODEL_FROM_DATABASE=AIC-7902 U320 - - pci:v00009005d0000801Fsv00001734sd00001011* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX300 onboard SCSI -+ ID_MODEL_FROM_DATABASE=AIC-7902 U320 (PRIMERGY RX300 onboard SCSI) - - pci:v00009005d00008080* - ID_MODEL_FROM_DATABASE=ASC-29320A U320 w/HostRAID -@@ -72777,7 +72777,7 @@ pci:v00009005d0000808F* - ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID - - pci:v00009005d0000808Fsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID (Precision Workstation 670 Mainboard) - - pci:v00009005d00008090* - ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID -@@ -72810,7 +72810,7 @@ pci:v00009005d0000809D* - ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID - - pci:v00009005d0000809Dsv00001014sd000002CC* -- ID_MODEL_FROM_DATABASE=ServeRAID 7e -+ ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID (ServeRAID 7e) - - pci:v00009005d0000809E* - ID_MODEL_FROM_DATABASE=AIC-7901A U320 w/HostRAID -@@ -72858,7 +72858,7 @@ pci:v00009710d00009815* - ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller - - pci:v00009710d00009815sv00001000sd00000020* -- ID_MODEL_FROM_DATABASE=2P0S (2 port parallel adaptor) -+ ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller (2P0S (2 port parallel adaptor)) - - pci:v00009710d00009820* - ID_MODEL_FROM_DATABASE=PCI 9820 Multi-I/O Controller -@@ -72867,31 +72867,31 @@ pci:v00009710d00009835* - ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller - - pci:v00009710d00009835sv00001000sd00000002* -- ID_MODEL_FROM_DATABASE=2S (16C550 UART) -+ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (2S (16C550 UART)) - - pci:v00009710d00009835sv00001000sd00000012* -- ID_MODEL_FROM_DATABASE=1P2S -+ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (1P2S) - - pci:v00009710d00009845* - ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller - - pci:v00009710d00009845sv00001000sd00000004* -- ID_MODEL_FROM_DATABASE=0P4S (4 port 16550A serial card) -+ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P4S (4 port 16550A serial card)) - - pci:v00009710d00009845sv00001000sd00000006* -- ID_MODEL_FROM_DATABASE=0P6S (6 port 16550a serial card) -+ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P6S (6 port 16550a serial card)) - - pci:v00009710d00009845sv00001000sd00000014* -- ID_MODEL_FROM_DATABASE=1P4S (1 Parallel / 4 16550A Serial Port Adapter) -+ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (1P4S (1 Parallel / 4 16550A Serial Port Adapter)) - - pci:v00009710d00009855* - ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller - - pci:v00009710d00009855sv00001000sd00000014* -- ID_MODEL_FROM_DATABASE=1P4S -+ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (1P4S) - - pci:v00009710d00009855sv00001000sd00000022* -- ID_MODEL_FROM_DATABASE=2P2S (2 Parallel / 2 16550A Serial Port Adapter) -+ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (2P2S (2 Parallel / 2 16550A Serial Port Adapter)) - - pci:v00009710d00009865* - ID_MODEL_FROM_DATABASE=PCI 9865 Multi-I/O Controller -@@ -73350,40 +73350,40 @@ pci:v0000DD01d00000003* - ID_MODEL_FROM_DATABASE=Octopus DVB Adapter - - pci:v0000DD01d00000003sv0000DD01sd00000001* -- ID_MODEL_FROM_DATABASE=Octopus DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000002* -- ID_MODEL_FROM_DATABASE=Octopus LE DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus LE DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000003* -- ID_MODEL_FROM_DATABASE=Octopus OEM -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus OEM) - - pci:v0000DD01d00000003sv0000DD01sd00000004* -- ID_MODEL_FROM_DATABASE=Octopus V3 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus V3 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000010* -- ID_MODEL_FROM_DATABASE=Octopus Mini -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus Mini) - - pci:v0000DD01d00000003sv0000DD01sd00000020* -- ID_MODEL_FROM_DATABASE=Cine S2 V6 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000021* -- ID_MODEL_FROM_DATABASE=Cine S2 V6.5 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6.5 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000030* -- ID_MODEL_FROM_DATABASE=Cine CT V6.1 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine CT V6.1 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd0000DB03* -- ID_MODEL_FROM_DATABASE=Mystique SaTiX-S2 V3 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Mystique SaTiX-S2 V3 DVB adapter) - - pci:v0000DD01d00000011* - ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter - - pci:v0000DD01d00000011sv0000DD01sd00000040* -- ID_MODEL_FROM_DATABASE=Octopus CI -+ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI) - - pci:v0000DD01d00000011sv0000DD01sd00000041* -- ID_MODEL_FROM_DATABASE=Octopus CI Single -+ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI Single) - - pci:v0000DEAD* - ID_VENDOR_FROM_DATABASE=Indigita Corporation -@@ -73416,22 +73416,22 @@ pci:v0000E159d00000001* - ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface - - pci:v0000E159d00000001sv00000059sd00000001* -- ID_MODEL_FROM_DATABASE=128k ISDN-S/T Adapter -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-S/T Adapter) - - pci:v0000E159d00000001sv00000059sd00000003* -- ID_MODEL_FROM_DATABASE=128k ISDN-U Adapter -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-U Adapter) - - pci:v0000E159d00000001sv000000A7sd00000001* -- ID_MODEL_FROM_DATABASE=TELES.S0/PCI 2.x ISDN Adapter -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (TELES.S0/PCI 2.x ISDN Adapter) - - pci:v0000E159d00000001sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Digium X100P/X101P analogue PSTN FXO interface -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (Digium X100P/X101P analogue PSTN FXO interface) - - pci:v0000E159d00000001sv0000B100sd00000003* -- ID_MODEL_FROM_DATABASE=OpenVox A400P 4-port analog card -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (OpenVox A400P 4-port analog card) - - pci:v0000E159d00000001sv0000B1D9sd00000003* -- ID_MODEL_FROM_DATABASE=AX400P 4-port analog card -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (AX400P 4-port analog card) - - pci:v0000E159d00000002* - ID_MODEL_FROM_DATABASE=Tiger100APC ISDN chipset --- -1.7.9.2 - diff --git a/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 5f097f39..00000000 --- a/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f89b42ec0fd51feab5566d6bdbacee101023c037 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Tue, 25 Mar 2014 20:21:23 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 7d86f10..b928f5a 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -923,3 +923,21 @@ bluetooth:v0130* - - bluetooth:v0131* - ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation -+ -+bluetooth:v0132* -+ ID_VENDOR_FROM_DATABASE=MADS Inc -+ -+bluetooth:v0133* -+ ID_VENDOR_FROM_DATABASE=Blue Maestro Limited -+ -+bluetooth:v0134* -+ ID_VENDOR_FROM_DATABASE=Resolution Products, Inc. -+ -+bluetooth:v0135* -+ ID_VENDOR_FROM_DATABASE=Airewear LLC -+ -+bluetooth:v0136* -+ ID_VENDOR_FROM_DATABASE=ETC sp. z.o.o. -+ -+bluetooth:v0137* -+ ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. --- -1.7.9.2 - diff --git a/0003-install-fix-invalid-free-in-unit_file_mask.patch b/0003-install-fix-invalid-free-in-unit_file_mask.patch deleted file mode 100644 index 0fe0581b..00000000 --- a/0003-install-fix-invalid-free-in-unit_file_mask.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 223217749e57996336d5730b0a28716cca56d45d Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Fri, 13 Jun 2014 18:48:18 +0200 -Subject: [PATCH] install: fix invalid free() in unit_file_mask() - -int unit_file_mask(...) in ./src/shared/install.c calls -get_config_path(...) which can in 4 error cases return without setting -"ret", and thus "prefix" can be uninitialized when unit_file_mask(...) -finishes (which it does directly after the error is returned from -get_config_path(...)). ---- - src/shared/install.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/install.c src/shared/install.c -index 487d0f6..f562063 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -563,7 +563,7 @@ int unit_file_mask( - unsigned *n_changes) { - - char **i; -- _cleanup_free_ char *prefix; -+ _cleanup_free_ char *prefix = NULL; - int r; - - assert(scope >= 0); --- -1.7.9.2 - diff --git a/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch b/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch deleted file mode 100644 index c88ed60b..00000000 --- a/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f2a474aea8f82fa9b695515d4590f4f3398358a7 Mon Sep 17 00:00:00 2001 -From: Juho Son -Date: Thu, 11 Sep 2014 16:06:38 +0900 -Subject: [PATCH] journald: add CAP_MAC_OVERRIDE in journald for SMACK issue - -systemd-journald check the cgroup id to support rate limit option for -every messages. so journald should be available to access cgroup node in -each process send messages to journald. -In system using SMACK, cgroup node in proc is assigned execute label -as each process's execute label. -so if journald don't want to denied for every process, journald -should have all of access rule for all process's label. -It's too heavy. so we could give special smack label for journald te get -all accesses's permission. -'^' label. -When assign '^' execute smack label to systemd-journald, -systemd-journald need to add CAP_MAC_OVERRIDE capability to get that smack privilege. - -so I want to notice this information and set default capability to -journald whether system use SMACK or not. -because that capability affect to only smack enabled kernel ---- - units/systemd-journald.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git units/systemd-journald.service.in units/systemd-journald.service.in -index 7013979..4de38fa 100644 ---- units/systemd-journald.service.in -+++ units/systemd-journald.service.in -@@ -20,7 +20,7 @@ Restart=always - RestartSec=0 - NotifyAccess=all - StandardOutput=null --CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID -+CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_MAC_OVERRIDE - WatchdogSec=1min - - # Increase the default a bit in order to allow many simultaneous --- -1.7.9.2 - diff --git a/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch b/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch deleted file mode 100644 index c9ab5e0e..00000000 --- a/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e512e8a255ef29d5a8eb605f8849202ea3d3e4cb Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 27 Aug 2014 08:41:10 +0200 -Subject: [PATCH] keymap: Adjust for more Samsung 900X4 series - -Reportedly also applies to NP900X4B, so relax the match to apply to all models -of this series. - -https://launchpad.net/bugs/902332 ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index ef0ebc5..0ffcb83 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -939,7 +939,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* - # Series 7 / 9 - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* --keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* -+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34]*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* - KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings - KEYBOARD_KEY_a0=!mute # Fn+F6 mute --- -1.7.9.2 - diff --git a/0003-keymap-Annotate-all-micmute-workarounds.patch b/0003-keymap-Annotate-all-micmute-workarounds.patch deleted file mode 100644 index 00f1e431..00000000 --- a/0003-keymap-Annotate-all-micmute-workarounds.patch +++ /dev/null @@ -1,54 +0,0 @@ -From d946bb53f94713241004810de92cc37f1e19c2d2 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 30 Jul 2014 10:54:23 +0200 -Subject: [PATCH] keymap: Annotate all micmute workarounds - -Add a comment to all assignments to f20 that this actually should be "micmute" -in a future when we aren't limited by X.org's key code limiations any more. ---- - hwdb/60-keyboard.hwdb | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 70e372b..cbbbf2c 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -231,7 +231,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - - # Dell Latitude microphone mute - keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* -- KEYBOARD_KEY_150=f20 # Mic mute toggle -+ KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute - - ########################################################### - # Everex -@@ -505,7 +505,7 @@ keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* - KEYBOARD_KEY_15=volumedown - KEYBOARD_KEY_16=mute - KEYBOARD_KEY_17=prog1 -- KEYBOARD_KEY_1a=f20 -+ KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute - - # ThinkPad Keyboard with TrackPoint - keyboard:usb:v17EFp6009* -@@ -573,7 +573,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr* - - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr* - KEYBOARD_KEY_f1=f21 -- KEYBOARD_KEY_ce=f20 -+ KEYBOARD_KEY_ce=f20 # micmute - - keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* - KEYBOARD_KEY_a0=!mute -@@ -809,7 +809,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:* - KEYBOARD_KEY_f3=f17 - KEYBOARD_KEY_f2=f18 - KEYBOARD_KEY_f1=f19 -- KEYBOARD_KEY_f0=f20 -+ KEYBOARD_KEY_f0=f20 # micmute - KEYBOARD_KEY_ef=f21 - KEYBOARD_KEY_ee=chat - KEYBOARD_KEY_e4=chat --- -1.7.9.2 - diff --git a/0003-keymap-Fix-HP-Pavillon-DV7.patch b/0003-keymap-Fix-HP-Pavillon-DV7.patch deleted file mode 100644 index 33908a82..00000000 --- a/0003-keymap-Fix-HP-Pavillon-DV7.patch +++ /dev/null @@ -1,28 +0,0 @@ -From efb4bf4e419e14a13eead6289ea40165579a816f Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 5 Aug 2014 12:29:27 +0200 -Subject: [PATCH] keymap: Fix HP Pavillon DV7 - -Properly disable scan code 94 instead of producing KEY_0. - -https://launchpad.net/bugs/1322770 ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index cbbbf2c..5c3d4ca 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -368,7 +368,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:pvr - KEYBOARD_KEY_b7=print - KEYBOARD_KEY_c2=media # FIXME: quick play - KEYBOARD_KEY_c6=break -- KEYBOARD_KEY_94=0 -+ KEYBOARD_KEY_94=reserved - - # Elitebook - keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr* --- -1.7.9.2 - diff --git a/0003-localed-consider-an-unset-model-as-a-wildcard.patch b/0003-localed-consider-an-unset-model-as-a-wildcard.patch deleted file mode 100644 index 3fbdb74e..00000000 --- a/0003-localed-consider-an-unset-model-as-a-wildcard.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 387066c2e5bda159201896b194711965b52f34a9 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Fri, 30 May 2014 18:20:16 +0200 -Subject: [PATCH] localed: consider an unset model as a wildcard - ---- - src/locale/localed.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git src/locale/localed.c src/locale/localed.c -index e3061c8..358f6c2 100644 ---- src/locale/localed.c -+++ src/locale/localed.c -@@ -712,15 +712,16 @@ static int find_legacy_keymap(Context *c, char **new_keymap) { - } - } - -- if (matching > 0 && -- streq_ptr(c->x11_model, a[2])) { -- matching++; -- -- if (streq_ptr(c->x11_variant, a[3])) { -+ if (matching > 0) { -+ if (isempty(c->x11_model) || streq_ptr(c->x11_model, a[2])) { - matching++; - -- if (streq_ptr(c->x11_options, a[4])) -+ if (streq_ptr(c->x11_variant, a[3])) { - matching++; -+ -+ if (streq_ptr(c->x11_options, a[4])) -+ matching++; -+ } - } - } - --- -1.7.9.2 - diff --git a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch deleted file mode 100644 index e4752edc..00000000 --- a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9c413373d2112055a0142ef522bf95af9b491b4a Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" -Date: Fri, 21 Feb 2014 18:23:17 -0500 -Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo - ---- - src/login/org.freedesktop.login1.conf | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git src/login/org.freedesktop.login1.conf src/login/org.freedesktop.login1.conf -index d677f61..1318328 100644 ---- src/login/org.freedesktop.login1.conf -+++ src/login/org.freedesktop.login1.conf -@@ -141,6 +141,18 @@ - send_member="ActivateSession"/> - - -+ -+ -+ -+ -+ -+ - --- -1.7.9.2 - diff --git a/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch b/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch deleted file mode 100644 index 596702d6..00000000 --- a/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch +++ /dev/null @@ -1,174 +0,0 @@ -From f9cd6be10ece07e10488c05e270a0b5860779864 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 20:49:33 +0100 -Subject: [PATCH] logind: ignore lid switch events for 30s after each suspend - and 3min after startup - -This is needed to give USB docking stations and suchlike time to settle, -so that a display connected to an USB docking station can actually act -as a lid swith inhibitor correctly. - -With this change we should have somewhat reliable docking station -support in place. ---- - src/login/logind-action.c | 15 ++++++++++++++- - src/login/logind-dbus.c | 3 +++ - src/login/logind.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ - src/login/logind.h | 7 +++++++ - 4 files changed, 69 insertions(+), 1 deletion(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index c9d8bc5..ae7b350 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -70,20 +70,33 @@ int manager_handle_action( - return 0; - } - -- /* If we are docked don't react to lid closing */ - if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { - int n; - -+ /* If we are docked don't react to lid closing */ - if (manager_is_docked(m)) { - log_debug("Ignoring lid switch request, system is docked."); - return 0; - } - -+ /* If we have more than one or no displays connected, -+ * don't react to lid closing. The no display case we -+ * treat like this under the assumption that there is -+ * no modern drm driver available. */ - n = manager_count_displays(m); - if (n != 1) { - log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } -+ -+ /* If the last system suspend or startup is too close, -+ * let's not suspend for now, to give USB docking -+ * stations some time to settle so that we can -+ * properly watch its displays. */ -+ if (m->lid_switch_ignore_event_source) { -+ log_debug("Ignoring lid switch request, system startup or resume too close."); -+ return 0; -+ } - } - - /* If the key handling is inhibited, don't do anything */ -diff --git src/login/logind-dbus.c src/login/logind-dbus.c -index fc89531..c9c58f3 100644 ---- src/login/logind-dbus.c -+++ src/login/logind-dbus.c -@@ -1337,6 +1337,9 @@ static int execute_shutdown_or_sleep( - m->action_job = c; - m->action_what = w; - -+ /* Make sure the lid switch is ignored for a while */ -+ manager_set_lid_switch_ignore(m, now(CLOCK_MONOTONIC) + IGNORE_LID_SWITCH_SUSPEND_USEC); -+ - return 0; - } - -diff --git src/login/logind.c src/login/logind.c -index 10f61ab..fd113b3 100644 ---- src/login/logind.c -+++ src/login/logind.c -@@ -144,6 +144,7 @@ void manager_free(Manager *m) { - sd_event_source_unref(m->udev_device_event_source); - sd_event_source_unref(m->udev_vcsa_event_source); - sd_event_source_unref(m->udev_button_event_source); -+ sd_event_source_unref(m->lid_switch_ignore_event_source); - - if (m->console_active_fd >= 0) - close_nointr_nofail(m->console_active_fd); -@@ -959,6 +960,46 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us - return 0; - } - -+static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(e); -+ assert(m); -+ -+ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); -+ return 0; -+} -+ -+int manager_set_lid_switch_ignore(Manager *m, usec_t until) { -+ int r; -+ -+ assert(m); -+ -+ if (until <= now(CLOCK_MONOTONIC)) -+ return 0; -+ -+ /* We want to ignore the lid switch for a while after each -+ * suspend, and after boot-up. Hence let's install a timer for -+ * this. As long as the event source exists we ignore the lid -+ * switch. */ -+ -+ if (m->lid_switch_ignore_event_source) { -+ usec_t u; -+ -+ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); -+ if (r < 0) -+ return r; -+ -+ if (until <= u) -+ return 0; -+ -+ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); -+ } else -+ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); -+ -+ return r; -+} -+ - int manager_startup(Manager *m) { - int r; - Seat *seat; -@@ -994,6 +1035,10 @@ int manager_startup(Manager *m) { - return r; - } - -+ r = manager_set_lid_switch_ignore(m, 0 + IGNORE_LID_SWITCH_STARTUP_USEC); -+ if (r < 0) -+ log_warning("Failed to set up lid switch ignore event source: %s", strerror(-r)); -+ - /* Deserialize state */ - r = manager_enumerate_devices(m); - if (r < 0) -diff --git src/login/logind.h src/login/logind.h -index 74d6641..4bb8e7b 100644 ---- src/login/logind.h -+++ src/login/logind.h -@@ -42,6 +42,9 @@ typedef struct Manager Manager; - #include "logind-button.h" - #include "logind-action.h" - -+#define IGNORE_LID_SWITCH_STARTUP_USEC (3 * USEC_PER_MINUTE) -+#define IGNORE_LID_SWITCH_SUSPEND_USEC (30 * USEC_PER_SEC) -+ - struct Manager { - sd_event *event; - sd_bus *bus; -@@ -118,6 +121,8 @@ struct Manager { - bool lid_switch_ignore_inhibited; - - Hashmap *polkit_registry; -+ -+ sd_event_source *lid_switch_ignore_event_source; - }; - - Manager *manager_new(void); -@@ -178,3 +183,5 @@ const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned lengt - - int manager_watch_busname(Manager *manager, const char *name); - void manager_drop_busname(Manager *manager, const char *name); -+ -+int manager_set_lid_switch_ignore(Manager *m, usec_t until); --- -1.7.9.2 - diff --git a/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch b/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch deleted file mode 100644 index 070a9100..00000000 --- a/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 05a2f6fefedd7254fd799502191d025d2908cf74 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen -Date: Sat, 12 Apr 2014 08:37:38 +0300 -Subject: [PATCH] man: mention XDG_CONFIG_HOME in systemd.unit - ---- - man/systemd.unit.xml | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 07a73fd..bcd4ba8 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -70,7 +70,8 @@ - ... - - -- $HOME/.config/systemd/user/* -+ $XDG_CONFIG_HOME/systemd/user/* -+$HOME/.config/systemd/user/* - /etc/systemd/user/* - /run/systemd/user/* - /usr/lib/systemd/user/* -@@ -320,8 +321,12 @@ - - - -+ $XDG_CONFIG_HOME/systemd/user -+ User configuration (only used when $XDG_CONFIG_HOME is set) -+ -+ - $HOME/.config/systemd/user -- User configuration -+ User configuration (only used when $XDG_CONFIG_HOME is not set) - - - /etc/systemd/user --- -1.7.9.2 - diff --git a/0003-man-we-don-t-have-Wanted-dependency.patch b/0003-man-we-don-t-have-Wanted-dependency.patch deleted file mode 100644 index 6ab1a897..00000000 --- a/0003-man-we-don-t-have-Wanted-dependency.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3e883473a0f36c220fc45ecf61d6878c9ac308b4 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 15 Oct 2014 09:28:31 +0200 -Subject: [PATCH] man: we don't have 'Wanted' dependency - ---- - man/systemd.unit.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index e9395ff..88c9d7f 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -181,10 +181,10 @@ - foo.service.wants/ may exist. All - unit files symlinked from such a directory are - implicitly added as dependencies of type -- Wanted= to the unit. This is useful -+ Wants= to the unit. This is useful - to hook units into the start-up of other units, - without having to modify their unit files. For details -- about the semantics of Wanted=, see -+ about the semantics of Wants=, see - below. The preferred way to create symlinks in the - .wants/ directory of a unit file - is with the enable command of the --- -1.7.9.2 - diff --git a/0003-mount-order-options-before-other-arguments-to-mount.patch b/0003-mount-order-options-before-other-arguments-to-mount.patch deleted file mode 100644 index d777869d..00000000 --- a/0003-mount-order-options-before-other-arguments-to-mount.patch +++ /dev/null @@ -1,39 +0,0 @@ -Based on 141a1ceaa62578f1ed14f04cae2113dd0f49fd7f Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:59 +0200 -Subject: [PATCH] mount: order options before other arguments to mount - ---- - src/core/mount.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- src/core/mount.c -+++ src/core/mount.c 2014-09-25 13:43:44.926563278 +0000 -@@ -947,10 +947,11 @@ static void mount_enter_mounting(Mount * - r = exec_command_set( - m->control_command, - "/bin/mount", -+ "-n", -+ "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", -+ "-o", m->parameters_fragment.options ? m->parameters_fragment.options : "defaults", - m->parameters_fragment.what, - m->where, -- "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", -- m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options, - NULL); - else - r = -ENOENT; -@@ -994,10 +995,11 @@ static void mount_enter_remounting(Mount - r = exec_command_set( - m->control_command, - "/bin/mount", -- m->parameters_fragment.what, -- m->where, -+ "-n", - "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", - "-o", o, -+ m->parameters_fragment.what, -+ m->where, - NULL); - } else - r = -ENOENT; diff --git a/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch b/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch deleted file mode 100644 index a8e538e2..00000000 --- a/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch +++ /dev/null @@ -1,34 +0,0 @@ -Based on 664064d60c36e1f62c7e9177e4c7498035467e07 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 16:27:57 +0200 -Subject: [PATCH] namespace: make sure /tmp, /var/tmp and /dev are writable in - namespaces we set up - ---- - src/core/namespace.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - ---- src/core/namespace.c -+++ src/core/namespace.c 2014-07-04 09:55:21.582234949 +0000 -@@ -263,14 +263,17 @@ static int make_read_only(BindMount *m) - - assert(m); - -- if (m->mode != INACCESSIBLE && m->mode != READONLY) -- return 0; -+ if (IN_SET(m->mode, INACCESSIBLE, READONLY)) -+ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); -+ else if (IN_SET(m->mode, READWRITE, PRIVATE_TMP, PRIVATE_VAR_TMP, PRIVATE_DEV)) -+ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_REC, NULL); -+ else -+ r = 0; - -- r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); - if (r < 0 && !(m->ignore && errno == ENOENT)) - return -errno; - -- return 0; -+ return r; - } - - int setup_namespace( diff --git a/0003-sd-bus-check-return-value-of-vasprintf.patch b/0003-sd-bus-check-return-value-of-vasprintf.patch deleted file mode 100644 index c908f074..00000000 --- a/0003-sd-bus-check-return-value-of-vasprintf.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Tue, 7 Oct 2014 12:10:06 +0200 -Subject: [PATCH] sd-bus: check return value of vasprintf - -Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv(). - -Spotted by coverity. ---- - src/libsystemd/sd-bus/bus-error.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c -index abdfd73..5ca974a 100644 ---- src/libsystemd/sd-bus/bus-error.c -+++ src/libsystemd/sd-bus/bus-error.c -@@ -194,8 +194,13 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li - return -ENOMEM; - } - -- if (format) -- vasprintf((char**) &e->message, format, ap); -+ if (format) { -+ int r; -+ -+ r = vasprintf((char**) &e->message, format, ap); -+ if (r < 0) -+ return -ENOMEM; -+ } - - e->_need_free = 1; - --- -1.7.9.2 - diff --git a/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch b/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch deleted file mode 100644 index 72455f2c..00000000 --- a/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch +++ /dev/null @@ -1,498 +0,0 @@ -From a3d59cd1b0a2738d06893948492113f2c35be0af Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 19 Mar 2014 21:41:21 +0100 -Subject: [PATCH] sd-bus: don't use assert_return() to check for disconnected - bus connections - -A terminated connection is a runtime error and not a developer mistake, -hence don't use assert_return() to check for it. ---- - src/libsystemd/sd-bus/bus-control.c | 20 +++++++++++++----- - src/libsystemd/sd-bus/bus-convenience.c | 58 +++++++++++++++++++++++++++++++++++++++++------------- - src/libsystemd/sd-bus/bus-objects.c | 23 +++++++++++++++------ - src/libsystemd/sd-bus/sd-bus.c | 49 +++++++++++++++++++++++++++++++++------------ - 4 files changed, 113 insertions(+), 37 deletions(-) - ---- src/libsystemd/sd-bus/bus-control.c -+++ src/libsystemd/sd-bus/bus-control.c 2014-03-28 00:00:00.000000000 +0000 -@@ -128,12 +128,14 @@ _public_ int sd_bus_request_name(sd_bus - assert_return(bus, -EINVAL); - assert_return(name, -EINVAL); - assert_return(bus->bus_client, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(!(flags & ~(SD_BUS_NAME_ALLOW_REPLACEMENT|SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_QUEUE)), -EINVAL); - assert_return(service_name_is_valid(name), -EINVAL); - assert_return(name[0] != ':', -EINVAL); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_request_name_kernel(bus, name, flags); - else -@@ -201,11 +203,13 @@ _public_ int sd_bus_release_name(sd_bus - assert_return(bus, -EINVAL); - assert_return(name, -EINVAL); - assert_return(bus->bus_client, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(service_name_is_valid(name), -EINVAL); - assert_return(name[0] != ':', -EINVAL); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_release_name_kernel(bus, name); - else -@@ -344,9 +348,11 @@ static int bus_list_names_dbus1(sd_bus * - _public_ int sd_bus_list_names(sd_bus *bus, char ***acquired, char ***activatable) { - assert_return(bus, -EINVAL); - assert_return(acquired || activatable, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_list_names_kernel(bus, acquired, activatable); - else -@@ -737,11 +743,13 @@ _public_ int sd_bus_get_owner( - assert_return(name, -EINVAL); - assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); - assert_return(mask == 0 || creds, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(service_name_is_valid(name), -EINVAL); - assert_return(bus->bus_client, -ENODATA); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_get_owner_kdbus(bus, name, mask, creds); - else -@@ -1198,10 +1206,12 @@ _public_ int sd_bus_get_owner_machine_id - assert_return(bus, -EINVAL); - assert_return(name, -EINVAL); - assert_return(machine, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(service_name_is_valid(name), -EINVAL); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (streq_ptr(name, bus->unique_name)) - return sd_id128_get_machine(machine); - ---- src/libsystemd/sd-bus/bus-convenience.c -+++ src/libsystemd/sd-bus/bus-convenience.c 2014-03-28 00:00:00.000000000 +0000 -@@ -36,9 +36,11 @@ _public_ int sd_bus_emit_signal( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_message_new_signal(bus, &m, path, interface, member); - if (r < 0) - return r; -@@ -70,9 +72,11 @@ _public_ int sd_bus_call_method( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_message_new_method_call(bus, &m, destination, path, interface, member); - if (r < 0) - return r; -@@ -100,9 +104,12 @@ _public_ int sd_bus_reply_method_return( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -134,9 +141,12 @@ _public_ int sd_bus_reply_method_error( - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); - assert_return(sd_bus_error_is_set(e), -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -159,9 +169,12 @@ _public_ int sd_bus_reply_method_errorf( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -182,9 +195,12 @@ _public_ int sd_bus_reply_method_errno( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -208,9 +224,12 @@ _public_ int sd_bus_reply_method_errnof( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -239,9 +258,11 @@ _public_ int sd_bus_get_property( - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(reply, -EINVAL); - assert_return(signature_is_single(type, false), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &rep, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -273,9 +294,11 @@ _public_ int sd_bus_get_property_trivial - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(bus_type_is_trivial(type), -EINVAL); - assert_return(ptr, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -309,9 +332,11 @@ _public_ int sd_bus_get_property_string( - assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(ret, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -348,9 +373,11 @@ _public_ int sd_bus_get_property_strv( - assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(ret, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -383,9 +410,11 @@ _public_ int sd_bus_set_property( - assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(signature_is_single(type, false), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_message_new_method_call(bus, &m, destination, path, "org.freedesktop.DBus.Properties", "Set"); - if (r < 0) - return r; -@@ -416,9 +445,12 @@ _public_ int sd_bus_query_sender_creds(s - - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - c = sd_bus_message_get_creds(call); - - /* All data we need? */ ---- src/libsystemd/sd-bus/bus-objects.c -+++ src/libsystemd/sd-bus/bus-objects.c 2014-03-28 00:00:00.000000000 +0000 -@@ -2196,9 +2196,10 @@ _public_ int sd_bus_emit_properties_chan - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); - assert_return(interface_name_is_valid(interface), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - /* A non-NULL but empty names list means nothing needs to be - generated. A NULL list OTOH indicates that all properties -@@ -2241,9 +2242,11 @@ _public_ int sd_bus_emit_properties_chan - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); - assert_return(interface_name_is_valid(interface), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (!name) - return 0; - -@@ -2361,9 +2364,11 @@ _public_ int sd_bus_emit_interfaces_adde - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (strv_isempty(interfaces)) - return 0; - -@@ -2421,9 +2426,11 @@ _public_ int sd_bus_emit_interfaces_adde - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - interfaces = strv_from_stdarg_alloca(interface); - - return sd_bus_emit_interfaces_added_strv(bus, path, interfaces); -@@ -2435,9 +2442,11 @@ _public_ int sd_bus_emit_interfaces_remo - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (strv_isempty(interfaces)) - return 0; - -@@ -2461,9 +2470,11 @@ _public_ int sd_bus_emit_interfaces_remo - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - interfaces = strv_from_stdarg_alloca(interface); - - return sd_bus_emit_interfaces_removed_strv(bus, path, interfaces); ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c 2014-03-28 12:19:27.146736146 +0000 -@@ -1592,10 +1592,12 @@ static int bus_send_internal(sd_bus *bus - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (m->n_fds > 0) { - r = sd_bus_can_send(bus, SD_BUS_TYPE_UNIX_FD); - if (r < 0) -@@ -1671,10 +1673,12 @@ _public_ int sd_bus_send_to(sd_bus *bus, - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (!streq_ptr(m->destination, destination)) { - - if (!destination) -@@ -1726,13 +1730,15 @@ _public_ int sd_bus_call_async( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); - assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); - assert_return(callback, -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = hashmap_ensure_allocated(&bus->reply_callbacks, uint64_hash_func, uint64_compare_func); - if (r < 0) - return r; -@@ -1839,13 +1845,15 @@ _public_ int sd_bus_call( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); - assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); - assert_return(!bus_error_is_dirty(error), -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = bus_ensure_running(bus); - if (r < 0) - return r; -@@ -1971,9 +1979,11 @@ _public_ int sd_bus_get_events(sd_bus *b - int flags = 0; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) -+ return -ENOTCONN; -+ - if (bus->state == BUS_OPENING) - flags |= POLLOUT; - else if (bus->state == BUS_AUTHENTICATING) { -@@ -1998,9 +2008,11 @@ _public_ int sd_bus_get_timeout(sd_bus * - - assert_return(bus, -EINVAL); - assert_return(timeout_usec, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) -+ return -ENOTCONN; -+ - if (bus->state == BUS_CLOSING) { - *timeout_usec = 0; - return 1; -@@ -2510,7 +2522,8 @@ static int bus_poll(sd_bus *bus, bool ne - if (bus->state == BUS_CLOSING) - return 1; - -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - e = sd_bus_get_events(bus); - if (e < 0) -@@ -2565,7 +2578,8 @@ _public_ int sd_bus_wait(sd_bus *bus, ui - if (bus->state == BUS_CLOSING) - return 0; - -- assert_return(BUS_IS_OPEN(bus->state) , -ENOTCONN); -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - if (bus->rqueue_size > 0) - return 0; -@@ -2582,7 +2596,8 @@ _public_ int sd_bus_flush(sd_bus *bus) { - if (bus->state == BUS_CLOSING) - return 0; - -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - r = bus_ensure_running(bus); - if (r < 0) -@@ -3058,9 +3073,13 @@ _public_ int sd_bus_get_peer_creds(sd_bu - assert_return(bus, -EINVAL); - assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); - assert_return(ret, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); -- assert_return(!bus->is_kernel, -ENOTSUP); -+ -+ if (!bus->is_kernel) -+ return -ENOTSUP; -+ -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - if (!bus->ucred_valid && !isempty(bus->label)) - return -ENODATA; -@@ -3099,9 +3118,13 @@ _public_ int sd_bus_try_close(sd_bus *bu - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); -- assert_return(bus->is_kernel, -ENOTSUP); -+ -+ if (!bus->is_kernel) -+ return -ENOTSUP; -+ -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - if (bus->rqueue_size > 0) - return -EBUSY; diff --git a/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch b/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch deleted file mode 100644 index 13b0da4b..00000000 --- a/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9b772efb41c2d9f743ba5e96804bdf89b12630d8 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 19 Nov 2014 20:52:47 +0100 -Subject: [PATCH] sd-bus: refuse properties that claim to be both writable and - constant at the same time - ---- - src/libsystemd/sd-bus/bus-objects.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/libsystemd/sd-bus/bus-objects.c src/libsystemd/sd-bus/bus-objects.c -index 0ab1119..7981d65 100644 ---- src/libsystemd/sd-bus/bus-objects.c -+++ src/libsystemd/sd-bus/bus-objects.c -@@ -1682,6 +1682,11 @@ static int add_object_vtable_internal( - goto fail; - } - -+ if (v->flags & SD_BUS_VTABLE_PROPERTY_CONST) { -+ r = -EINVAL; -+ goto fail; -+ } -+ - /* Fall through */ - - case _SD_BUS_VTABLE_PROPERTY: { --- -1.7.9.2 - diff --git a/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch b/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch deleted file mode 100644 index f401411e..00000000 --- a/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b63c8d4f0364457b0ead8793504012bb7113974f Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 10 Jul 2014 00:47:23 +0200 -Subject: [PATCH] sd-event: always call epoll_ctl() on mask-updates if - edge-triggered - -A call to sd_event_source_set_io_events() skipps calling into the kernel -if the new event-mask matches the old one. This is safe for -level-triggered sources as the kernel moves them onto the ready-list -automatically if events change. However, edge-triggered sources might not -be on the ready-list even though events are present. - -A call to sd_event_source_set_io_events() with EPOLLET set might thus be -used to just move the io-source onto the ready-list so the next poll -will return it again. This is very useful to avoid starvation in -priority-based event queues. - -Imagine a read() loop on an edge-triggered fd. If we cannot read data fast -enough to drain the receive queue, we might decide to skip reading for now -and schedule it for later. On edge-triggered io-sources we have to make -sure it's put on the ready-list so the next dispatch-round will return it -again if it's still the highest priority task. We could make sd-event -handle edge-triggered sources directly and allow marking them ready again. -However, it's much simpler to let the kernel do that for now via -EPOLL_CTL_MOD. ---- - src/libsystemd/sd-event/sd-event.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index 53f1904..a21f7db 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -1282,7 +1282,8 @@ _public_ int sd_event_source_set_io_events(sd_event_source *s, uint32_t events) - assert_return(s->event->state != SD_EVENT_FINISHED, -ESTALE); - assert_return(!event_pid_changed(s->event), -ECHILD); - -- if (s->io.events == events) -+ /* edge-triggered updates are never skipped, so we can reset edges */ -+ if (s->io.events == events && !(events & EPOLLET)) - return 0; - - if (s->enabled != SD_EVENT_OFF) { --- -1.7.9.2 - diff --git a/0003-sd-journal-properly-convert-object-size-on-big-endia.patch b/0003-sd-journal-properly-convert-object-size-on-big-endia.patch deleted file mode 100644 index 40e8d57c..00000000 --- a/0003-sd-journal-properly-convert-object-size-on-big-endia.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 57cd09acf2c63a414aa2131c00a2b3f600eb0133 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 23 Aug 2014 22:35:03 -0400 -Subject: [PATCH] sd-journal: properly convert object->size on big endian - -mmap code crashes when attempting to map an object of zero size. - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758392 -https://bugs.freedesktop.org/show_bug.cgi?id=82894 ---- - src/journal/journal-file.h | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git src/journal/journal-file.h src/journal/journal-file.h -index 3d41682..da2ef3b 100644 ---- src/journal/journal-file.h -+++ src/journal/journal-file.h -@@ -214,14 +214,15 @@ static unsigned type_to_context(int type) { - - static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset) { - unsigned context = type_to_context(o->object.type); -+ uint64_t s = le64toh(o->object.size); - - return mmap_cache_get(f->mmap, f->fd, f->prot, context, true, -- offset, o->object.size, &f->last_stat, NULL); -+ offset, s, &f->last_stat, NULL); - } - - static inline int journal_file_object_release(JournalFile *f, Object *o, uint64_t offset) { - unsigned context = type_to_context(o->object.type); -+ uint64_t s = le64toh(o->object.size); - -- return mmap_cache_release(f->mmap, f->fd, f->prot, context, -- offset, o->object.size); -+ return mmap_cache_release(f->mmap, f->fd, f->prot, context, offset, s); - } --- -1.7.9.2 - diff --git a/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch b/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch deleted file mode 100644 index 7aa3506a..00000000 --- a/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0ffce503cd6e5a5ff5ba5cd1cc23684cfb8bb9e3 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Thu, 30 Oct 2014 20:12:05 -0400 -Subject: [PATCH] shared/install: avoid prematurely rejecting "missing" units - -f7101b7368df copied some logic to prevent enabling masked units, but -also added a check which causes attempts to enable templated units to -fail. Since we know the logic beyond this check will properly handle -units which truly do not exist, we can rely on the unit file state -comparison to suffice for expressing the intent of f7101b7368df. - -ref: https://bugs.archlinux.org/task/42616 ---- - src/shared/install.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git src/shared/install.c src/shared/install.c -index 035b44c..cab93e8 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -1620,12 +1620,10 @@ int unit_file_enable( - STRV_FOREACH(i, files) { - UnitFileState state; - -+ /* We only want to know if this unit is masked, so we ignore -+ * errors from unit_file_get_state, deferring other checks. -+ * This allows templated units to be enabled on the fly. */ - state = unit_file_get_state(scope, root_dir, *i); -- if (state < 0) { -- log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); -- return state; -- } -- - if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { - log_error("Failed to enable unit: Unit %s is masked", *i); - return -ENOTSUP; --- -1.7.9.2 - diff --git a/0003-systemd-use-pager-for-test-and-help.patch b/0003-systemd-use-pager-for-test-and-help.patch deleted file mode 100644 index a22e0b9d..00000000 --- a/0003-systemd-use-pager-for-test-and-help.patch +++ /dev/null @@ -1,111 +0,0 @@ -From b87c2aa6bf1247c298c9bd9f56b9b56a87836b2d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 7 Jan 2014 00:00:05 -0500 -Subject: [PATCH] systemd: use pager for --test and --help - ---- - src/core/main.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git src/core/main.c src/core/main.c -index f9ee297..ae38b43 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -50,6 +50,7 @@ - #include "conf-parser.h" - #include "missing.h" - #include "label.h" -+#include "pager.h" - #include "build.h" - #include "strv.h" - #include "def.h" -@@ -94,6 +95,7 @@ static int arg_crash_chvt = -1; - static bool arg_confirm_spawn = false; - static ShowStatus arg_show_status = _SHOW_STATUS_UNSET; - static bool arg_switched_root = false; -+static int arg_no_pager = -1; - static char ***arg_join_controllers = NULL; - static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL; - static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT; -@@ -117,6 +119,14 @@ static bool arg_default_memory_accounting = false; - - static void nop_handler(int sig) {} - -+static void pager_open_if_enabled(void) { -+ -+ if (arg_no_pager <= 0) -+ return; -+ -+ pager_open(false); -+} -+ - noreturn static void crash(int sig) { - - if (getpid() != 1) -@@ -704,6 +714,7 @@ static int parse_argv(int argc, char *argv[]) { - ARG_SYSTEM, - ARG_USER, - ARG_TEST, -+ ARG_NO_PAGER, - ARG_VERSION, - ARG_DUMP_CONFIGURATION_ITEMS, - ARG_DUMP_CORE, -@@ -725,6 +736,7 @@ static int parse_argv(int argc, char *argv[]) { - { "system", no_argument, NULL, ARG_SYSTEM }, - { "user", no_argument, NULL, ARG_USER }, - { "test", no_argument, NULL, ARG_TEST }, -+ { "no-pager", no_argument, NULL, ARG_NO_PAGER }, - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, ARG_VERSION }, - { "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS }, -@@ -832,6 +844,12 @@ static int parse_argv(int argc, char *argv[]) { - - case ARG_TEST: - arg_action = ACTION_TEST; -+ if (arg_no_pager < 0) -+ arg_no_pager = true; -+ break; -+ -+ case ARG_NO_PAGER: -+ arg_no_pager = true; - break; - - case ARG_VERSION: -@@ -912,6 +930,8 @@ static int parse_argv(int argc, char *argv[]) { - - case 'h': - arg_action = ACTION_HELP; -+ if (arg_no_pager < 0) -+ arg_no_pager = true; - break; - - case 'D': -@@ -984,6 +1004,7 @@ static int help(void) { - "Starts up and maintains the system or user services.\n\n" - " -h --help Show this help\n" - " --test Determine startup sequence, dump it and exit\n" -+ " --no-pager Do not pipe output into a pager\n" - " --dump-configuration-items Dump understood unit configuration items\n" - " --unit=UNIT Set default unit\n" - " --system Run a system instance, even if PID != 1\n" -@@ -1452,6 +1473,8 @@ int main(int argc, char *argv[]) { - goto finish; - } - -+ pager_open_if_enabled(); -+ - if (arg_action == ACTION_HELP) { - retval = help(); - goto finish; -@@ -1798,6 +1821,8 @@ int main(int argc, char *argv[]) { - } - - finish: -+ pager_close(); -+ - if (m) { - manager_free(m); - m = NULL; --- -1.7.9.2 - diff --git a/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch b/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch deleted file mode 100644 index 17cd7d1a..00000000 --- a/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 65de0395ffe1cfb0f9af86504e8588fb31bb0fbc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 19:08:22 +0200 -Subject: [PATCH] time: earlier exit from format_timestamp_relative() on - special times - ---- - src/shared/time-util.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- src/shared/time-util.c -+++ src/shared/time-util.c 2014-10-29 14:07:28.479838096 +0000 -@@ -194,11 +194,10 @@ char *format_timestamp_relative(char *bu - const char *s; - usec_t n, d; - -- n = now(CLOCK_REALTIME); -- - if (t <= 0 || (t == (usec_t) -1)) - return NULL; - -+ n = now(CLOCK_REALTIME); - if (n > t) { - d = n - t; - s = "ago"; diff --git a/0003-tty-ask-password-agent-return-negative-errno.patch b/0003-tty-ask-password-agent-return-negative-errno.patch deleted file mode 100644 index 9f839a7f..00000000 --- a/0003-tty-ask-password-agent-return-negative-errno.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ee0e4cca5ac37a094dfe1074907dae70c7b7701c Mon Sep 17 00:00:00 2001 -From: Florian Albrechtskirchinger -Date: Thu, 3 Apr 2014 21:17:20 +0200 -Subject: [PATCH] tty-ask-password-agent: return negative errno - -Return negative errno in wall_tty_block(). get_ctty_devnr() already -returns a negative errno in case of failure, no need to negate it again. - -Reported-by: Simon ---- - .../tty-ask-password-agent.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c -index 1d067af..3203474 100644 ---- src/tty-ask-password-agent/tty-ask-password-agent.c -+++ src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -432,7 +432,7 @@ static int wall_tty_block(void) { - - r = get_ctty_devnr(0, &devnr); - if (r < 0) -- return -r; -+ return r; - - if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0) - return -ENOMEM; --- -1.7.9.2 - diff --git a/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch b/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch deleted file mode 100644 index bad29c52..00000000 --- a/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3f796750b192e62701e91a95f85389f876d1059b Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 17 Sep 2014 21:44:56 +0200 -Subject: [PATCH] udev: event - explicitly don't read() from invalid fd - -This fixes CID #1237641. ---- - src/udev/udev-event.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/udev/udev-event.c src/udev/udev-event.c -index 6b8b5a8..c8b1420 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -494,6 +494,9 @@ static void spawn_read(struct udev_event *event, - for (i = 0; i < fdcount; i++) { - int *fd = (int *)ev[i].data.ptr; - -+ if (*fd < 0) -+ continue; -+ - if (ev[i].events & EPOLLIN) { - ssize_t count; - char buf[4096]; --- -1.7.9.2 - diff --git a/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch b/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch deleted file mode 100644 index 5f466ea6..00000000 --- a/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 497d1986c13032f1ef8f4592bb7ed8d3aa321a47 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 20 Jun 2014 00:15:39 +0200 -Subject: [PATCH] units: order systemd-tmpfiles-clean.service after - time-sync.target - -That way, on systems lacking an RTC we don't false start removing aged -files too early. ---- - units/systemd-tmpfiles-clean.service.in | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- units/systemd-tmpfiles-clean.service.in -+++ units/systemd-tmpfiles-clean.service.in 2014-06-24 10:47:57.398235644 +0000 -@@ -10,8 +10,9 @@ Description=Cleanup of Temporary Directo - Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) - DefaultDependencies=no - Wants=local-fs.target --After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target --Before=sysinit.target shutdown.target -+Conflicts=shutdown.target -+After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target -+Before=shutdown.target - ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d - ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d - ConditionDirectoryNotEmpty=|/etc/tmpfiles.d diff --git a/0003-units-remove-RefuseManualStart-from-units-which-are-.patch b/0003-units-remove-RefuseManualStart-from-units-which-are-.patch deleted file mode 100644 index d9ffedbf..00000000 --- a/0003-units-remove-RefuseManualStart-from-units-which-are-.patch +++ /dev/null @@ -1,65 +0,0 @@ -Based on 0fdeb6e011dfdb17636c81e2d7e0d632186359ce Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 28 Jun 2014 00:06:30 -0400 -Subject: [PATCH] units: remove RefuseManualStart from units which are always - around - -In a normal running system, non-passive targets and units used during -early bootup are always started. So refusing "manual start" for them -doesn't make any difference, because a "start" command doesn't cause -any action. - -In early boot however, the administrator might want to start on -of those targets or services by hand. We shouldn't interfere with that. - -Note: in case of systemd-tmpfiles-setup.service, really running the -unit after system is up would break the system. So e.g. restarting -should not be allowed. The unit has "RefuseManualStop=yes", which -prevents restart too. ---- - units/basic.target | 1 - - units/sysinit.target | 1 - - units/systemd-tmpfiles-setup.service.in | 1 - - units/user/basic.target | 1 - - 4 files changed, 4 deletions(-) - -diff --git units/basic.target units/basic.target -index d7c68f4..b890d48 100644 ---- units/basic.target -+++ units/basic.target -@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) - Requires=sysinit.target - Wants=sockets.target timers.target paths.target slices.target - After=sysinit.target sockets.target timers.target paths.target slices.target --RefuseManualStart=yes -diff --git units/sysinit.target units/sysinit.target -index 8f4fb8f..ec33503 100644 ---- units/sysinit.target -+++ units/sysinit.target -@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) - Conflicts=emergency.service emergency.target - Wants=local-fs.target swap.target - After=local-fs.target swap.target emergency.service emergency.target --RefuseManualStart=yes ---- units/systemd-tmpfiles-setup.service.in -+++ units/systemd-tmpfiles-setup.service.in 2014-07-01 12:17:48.154235348 +0000 -@@ -18,7 +18,6 @@ ConditionDirectoryNotEmpty=|/lib/tmpfile - ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d - ConditionDirectoryNotEmpty=|/etc/tmpfiles.d - ConditionDirectoryNotEmpty=|/run/tmpfiles.d --RefuseManualStart=yes - RefuseManualStop=yes - - [Service] -diff --git units/user/basic.target units/user/basic.target -index b74d13c..afc6e93 100644 ---- units/user/basic.target -+++ units/user/basic.target -@@ -10,4 +10,3 @@ Description=Basic System - Documentation=man:systemd.special(7) - Wants=sockets.target timers.target paths.target - After=sockets.target timers.target paths.target --RefuseManualStart=yes --- -1.7.9.2 - diff --git a/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch b/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch deleted file mode 100644 index 15c8d7f5..00000000 --- a/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d8e40d62ab871a87fde421c4b246bb45bc3cbe2d Mon Sep 17 00:00:00 2001 -From: Jonathan Liu -Date: Thu, 29 May 2014 01:17:25 +1000 -Subject: [PATCH] units: use KillMode=mixed for systemd-nspawn@.service - -This causes the container to shut down cleanly when the service is -stopped. ---- - units/systemd-nspawn@.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git units/systemd-nspawn@.service.in units/systemd-nspawn@.service.in -index ff36e90..e373628 100644 ---- units/systemd-nspawn@.service.in -+++ units/systemd-nspawn@.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-nspawn(1) - - [Service] - ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i -+KillMode=mixed - Type=notify - - [Install] --- -1.7.9.2 - diff --git a/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch b/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch deleted file mode 100644 index bc69be20..00000000 --- a/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 144b3d9e093dd9310cd9590bec039dc43a7e2ad6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 7 Nov 2014 16:34:00 +0100 -Subject: [PATCH] utf8: when looking at the next unichar, honour the size - parameter, in utf8_is_printable_newline() - ---- - src/shared/utf8.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- src/shared/utf8.c -+++ src/shared/utf8.c 2014-11-10 14:20:28.094539264 +0000 -@@ -143,9 +143,14 @@ bool utf8_is_printable_newline(const cha - - for (p = (const uint8_t*) str; length;) { - int encoded_len = utf8_encoded_valid_unichar((const char *)p); -- int val = utf8_encoded_to_unichar((const char*)p); -+ int val; - -- if (encoded_len < 0 || val < 0 || is_unicode_control(val) || -+ if (encoded_len < 0 || -+ (size_t) encoded_len > length) -+ return false; -+ -+ val = utf8_encoded_to_unichar((const char*)p); -+ if (val < 0 || is_unicode_control(val) || - (!newline && val == '\n')) - return false; - diff --git a/0004-Raise-level-of-Found-dependency.-lines.patch b/0004-Raise-level-of-Found-dependency.-lines.patch deleted file mode 100644 index 3ae2e49e..00000000 --- a/0004-Raise-level-of-Found-dependency.-lines.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 14fe721b5f6d8457cc8737fa75f2ed79e7fa534b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 2 Nov 2014 12:10:42 -0500 -Subject: [PATCH] Raise level of 'Found dependency...' lines - -This way they always show up together with 'Found ordering cycle...'. -Ordering cycles are a serious error and a major pain to debug. If -quiet is enabled, only the first and the last line of output are -shown: - -systemd[1]: Found ordering cycle on basic.target/start -systemd[1]: Breaking ordering cycle by deleting job timers.target/start -systemd[1]: Job timers.target/start deleted to break ordering cycle starting with basic.target/start - -which isn't particularly enlightening. So just show the whole message -at the same level. - -https://bugzilla.redhat.com/show_bug.cgi?id=1158206 ---- - src/core/transaction.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git src/core/transaction.c src/core/transaction.c -index 488cb86..bbaa6da 100644 ---- src/core/transaction.c -+++ src/core/transaction.c -@@ -376,9 +376,9 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi - for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { - - /* logging for j not k here here to provide consistent narrative */ -- log_info_unit(j->unit->id, -- "Found dependency on %s/%s", -- k->unit->id, job_type_to_string(k->type)); -+ log_warning_unit(j->unit->id, -+ "Found dependency on %s/%s", -+ k->unit->id, job_type_to_string(k->type)); - - if (!delete && hashmap_get(tr->jobs, k->unit) && - !unit_matters_to_anchor(k->unit, k)) { --- -1.7.9.2 - diff --git a/0004-architecture-remove-cris-from-uname-list.patch b/0004-architecture-remove-cris-from-uname-list.patch deleted file mode 100644 index dc1aa466..00000000 --- a/0004-architecture-remove-cris-from-uname-list.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bc4bc52bc3de56405045b0437e145a7067fb085d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 22:52:44 +0200 -Subject: [PATCH] architecture: remove "cris" from uname list - -the only correct name appears to be "crisv32"... - -http://lists.freedesktop.org/archives/systemd-devel/2014-July/020899.html ---- - src/shared/architecture.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git src/shared/architecture.c src/shared/architecture.c -index 7dd049a..6cdca4e 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -115,7 +115,6 @@ Architecture uname_architecture(void) { - #elif defined(__tilegx__) - { "tilegx", ARCHITECTURE_TILEGX }, - #elif defined(__cris__) -- { "cris", ARCHITECTURE_CRIS }, - { "crisv32", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" --- -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 deleted file mode 100644 index 281f7b5c..00000000 --- a/0004-backlight-Avoid-error-when-state-restore-is-disabled.patch +++ /dev/null @@ -1,33 +0,0 @@ -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/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch b/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch deleted file mode 100644 index d0ec9ec8..00000000 --- a/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch +++ /dev/null @@ -1,40 +0,0 @@ -From c7fdf44d08e1217d40dc092fb90a65978a0f541f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 23 Apr 2014 06:55:54 +0200 -Subject: [PATCH] backlight: warn if kernel exposes backlight device with - bogus max_brightness - -We shouldn't silently tape over broken kernel drivers. ---- - src/backlight/backlight.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index 754a646..c708391 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device *device) { - - max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); - if (!max_brightness_str) { -- log_warning("Failed to read 'max_brightness' attribute"); -+ log_warning("Failed to read 'max_brightness' attribute."); - return 0; - } - - r = safe_atou(max_brightness_str, &max_brightness); - if (r < 0) { -- log_warning("Failed to parse 'max_brightness' \"%s\": %s", -- max_brightness_str, strerror(-r)); -+ log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r)); -+ return 0; -+ } -+ -+ if (max_brightness <= 0) { -+ log_warning("Maximum brightness is 0, ignoring device."); - return 0; - } - --- -1.7.9.2 - diff --git a/0004-bash-completion-use-list-unit-files-to-get-all-units.patch b/0004-bash-completion-use-list-unit-files-to-get-all-units.patch deleted file mode 100644 index b5ab5359..00000000 --- a/0004-bash-completion-use-list-unit-files-to-get-all-units.patch +++ /dev/null @@ -1,39 +0,0 @@ -Based on c6a373a26348544d944b08bf0c5dea4f72f6980b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 26 Jul 2014 20:11:58 -0400 -Subject: [PATCH] bash-completion: use list-unit-files to get "all" units - -I think that it is better to return good results slightly more slowly, -than partial quickly. Also reading from disk seems fast enough. Even -the delay on first try with completely cold cache is acceptable. - -This is just for bash, 'cause zsh was already doing this. - -https://bugzilla.redhat.com/show_bug.cgi?id=790768 ---- - shell-completion/bash/systemctl.in | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in -index c5950cc..69ef04b 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -51,11 +51,13 @@ __filter_units_by_property () { - done - } - --__get_all_units () { __systemctl $1 list-units --all \ -+__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ - | { while read -r a b; do echo " $a"; done; }; } - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } --__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ -+__get_startable_units () { { -+ __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap -+ __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ - | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } - __get_failed_units () { __systemctl $1 list-units \ - | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } --- -1.7.9.2 - diff --git a/0004-bootchart-check-return-of-strftime.patch b/0004-bootchart-check-return-of-strftime.patch deleted file mode 100644 index a629c9e9..00000000 --- a/0004-bootchart-check-return-of-strftime.patch +++ /dev/null @@ -1,63 +0,0 @@ -From e931d3f4241231e4102eda06adaf7cbfd68c6a5d Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 27 Sep 2014 22:25:07 +0200 -Subject: [PATCH] bootchart: check return of strftime - -Found by coverity. Fixes: CID#996314 and #996312 ---- - src/bootchart/bootchart.c | 8 ++++++-- - src/bootchart/svg.c | 5 +++-- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c -index 8ef5ad1..366a5ab 100644 ---- src/bootchart/bootchart.c -+++ src/bootchart/bootchart.c -@@ -389,7 +389,9 @@ int main(int argc, char *argv[]) { - - if (!of && (access(arg_output_path, R_OK|W_OK|X_OK) == 0)) { - t = time(NULL); -- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ assert_se(r > 0); -+ - snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); - of = fopen(output_file, "we"); - } -@@ -457,7 +459,9 @@ int main(int argc, char *argv[]) { - - if (!of) { - t = time(NULL); -- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ assert_se(r > 0); -+ - snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); - of = fopen(output_file, "we"); - } -diff --git src/bootchart/svg.c src/bootchart/svg.c -index 135883f..faf377e 100644 ---- src/bootchart/svg.c -+++ src/bootchart/svg.c -@@ -162,7 +162,7 @@ static void svg_title(const char *build) { - char *c; - FILE *f; - time_t t; -- int fd; -+ int fd, r; - struct utsname uts; - - /* grab /proc/cmdline */ -@@ -196,7 +196,8 @@ static void svg_title(const char *build) { - - /* date */ - t = time(NULL); -- strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); -+ r = strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); -+ assert_se(r > 0); - - /* CPU type */ - fd = openat(procfd, "cpuinfo", O_RDONLY); --- -1.7.9.2 - diff --git a/0004-config-parser-fix-mem-leak.patch b/0004-config-parser-fix-mem-leak.patch deleted file mode 100644 index b45d89c0..00000000 --- a/0004-config-parser-fix-mem-leak.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9e60277835e61597011358afcdbfb3dd712ce128 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sun, 31 Aug 2014 23:13:12 +0200 -Subject: [PATCH] config-parser: fix mem leak - ---- - src/shared/conf-parser.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/conf-parser.c src/shared/conf-parser.c -index 439cfc5..ee6de65 100644 ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c -@@ -710,6 +710,7 @@ int config_parse_strv(const char *unit, - - if (!utf8_is_valid(n)) { - log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); -+ free(n); - continue; - } - --- -1.7.9.2 - diff --git a/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch b/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch deleted file mode 100644 index 3ae99a64..00000000 --- a/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch +++ /dev/null @@ -1,67 +0,0 @@ -Based on 4774e357268e4a1e9fa82adb0563a538932a4c8e Mon Sep 17 00:00:00 2001 -From: Miguel Angel Ajo -Date: Mon, 7 Jul 2014 14:20:36 +0200 -Subject: [PATCH] core: Added support for ERRNO NOTIFY_SOCKET message parsing, - and added StatusErrno dbus property along StatusText to - allow notification of numeric status condition while - degraded service operation or any other special situation. - ---- - src/core/dbus-service.c | 1 + - src/core/service.c | 17 +++++++++++++++++ - src/core/service.h | 1 + - 3 files changed, 19 insertions(+) - -diff --git src/core/dbus-service.c src/core/dbus-service.c -index 093289f..5a881e8 100644 ---- src/core/dbus-service.c -+++ src/core/dbus-service.c -@@ -60,6 +60,7 @@ const sd_bus_vtable bus_service_vtable[] = { - SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Service, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("BusName", "s", NULL, offsetof(Service, bus_name), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("StatusText", "s", NULL, offsetof(Service, status_text), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), -+ SD_BUS_PROPERTY("StatusErrno", "i", NULL, offsetof(Service, status_errno), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Service, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - BUS_EXEC_STATUS_VTABLE("ExecMain", offsetof(Service, main_exec_status), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - BUS_EXEC_COMMAND_LIST_VTABLE("ExecStartPre", offsetof(Service, exec_command[SERVICE_EXEC_START_PRE]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION), -diff --git src/core/service.c src/core/service.c -index 0b19767..ace45e2 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -2637,6 +2637,23 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - free(t); - } - -+ /* Interpret ERRNO= */ -+ e = strv_find_prefix(tags, "ERRNO="); -+ if (e) { -+ int status_errno; -+ -+ if (safe_atoi(e + 6, &status_errno) < 0) -+ log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); -+ else { -+ log_debug_unit(u->id, "%s: got %s", u->id, e); -+ -+ if (s->status_errno != status_errno) { -+ s->status_errno = status_errno; -+ notify_dbus = true; -+ } -+ } -+ } -+ - /* Interpret WATCHDOG= */ - if (strv_find(tags, "WATCHDOG=1")) { - log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); ---- src/core/service.h -+++ src/core/service.h 2014-07-08 12:54:39.238736046 +0200 -@@ -187,6 +187,7 @@ struct Service { - char *bus_name; - - char *status_text; -+ int status_errno; - - RateLimit start_limit; - StartLimitAction start_limit_action; --- -1.7.9.2 - diff --git a/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch b/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch deleted file mode 100644 index 17d7f268..00000000 --- a/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c4bfd1691f4d3e26d6d7f34dbca941e119956e8a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Mar 2014 21:04:02 +0100 -Subject: [PATCH] core: don't try to relabel mounts before we loaded the - policy - ---- - src/core/mount-setup.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index 147333a..0a45b24 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -172,7 +172,10 @@ static int mount_one(const MountPoint *p, bool relabel) { - - /* The access mode here doesn't really matter too much, since - * the mounted file system will take precedence anyway. */ -- mkdir_p_label(p->where, 0755); -+ if (relabel) -+ mkdir_p_label(p->where, 0755); -+ else -+ mkdir_p(p->where, 0755); - - log_debug("Mounting %s to %s of type %s with options %s.", - p->what, --- -1.7.9.2 - diff --git a/0004-core-fix-transaction-destructiveness-check-once-more.patch b/0004-core-fix-transaction-destructiveness-check-once-more.patch deleted file mode 100644 index 843200c5..00000000 --- a/0004-core-fix-transaction-destructiveness-check-once-more.patch +++ /dev/null @@ -1,32 +0,0 @@ -Based on e0312f4db08c7100bd00299614e87bedc759b366 Mon Sep 17 00:00:00 2001 -Based on c21b92ffe7ef939dd32502ac912cf8ad1c5638fd Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 27 Nov 2014 15:23:58 +0100 -Subject: [PATCH] core: fix transaction destructiveness check once more - -The previous fix e0312f4db "core: fix check for transaction -destructiveness" broke test-engine (noticed by Zbyszek). -Apparently I had a wrong idea of the intended semantics of --fail. - -The manpage says the operation should fail if it "conflicts with a -pending job (more specifically: causes an already pending start job to -be reversed into a stop job or vice versa)". - -So let's check job_type_is_conflicting, instead of !is_superset. - -This makes both test-engine and TEST-03-JOBS pass again. ---- - src/core/transaction.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/transaction.c -+++ src/core/transaction.c 2014-12-15 12:06:11.721518136 +0000 -@@ -510,7 +510,7 @@ static int transaction_is_destructive(Tr - assert(!j->transaction_next); - - if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) && -- !job_type_is_superset(j->type, j->unit->job->type)) { -+ job_type_is_conflicting(j->unit->job->type, j->type)) { - - sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); - return -EEXIST; diff --git a/0004-core-map-the-rescue-argument-to-rescue.target.patch b/0004-core-map-the-rescue-argument-to-rescue.target.patch deleted file mode 100644 index 6b639305..00000000 --- a/0004-core-map-the-rescue-argument-to-rescue.target.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5329ab10ffaf5b4a3fd6ebd9380b1ec09d05cfc8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Tue, 7 Oct 2014 14:55:21 +0300 -Subject: [PATCH] core: map the 'rescue' argument to rescue.target - -Even though the 'emergency' and 'single' aliases come from sysvinit, the -lack of 'rescue' is still quite confusing (caught me by surprise for the -9th time yet) and inconsistent with `systemctl rescue` as well. ---- - src/core/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/core/main.c src/core/main.c -index 1a62e04..44373cc 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -272,6 +272,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { - static const char * const rlmap[] = { - "emergency", SPECIAL_EMERGENCY_TARGET, - "-b", SPECIAL_EMERGENCY_TARGET, -+ "rescue", SPECIAL_RESCUE_TARGET, - "single", SPECIAL_RESCUE_TARGET, - "-s", SPECIAL_RESCUE_TARGET, - "s", SPECIAL_RESCUE_TARGET, --- -1.7.9.2 - diff --git a/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch b/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch deleted file mode 100644 index 4bed22a5..00000000 --- a/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +++ /dev/null @@ -1,53 +0,0 @@ -Based on bde29068aa3815c88190a91e9867605a0aeaf9c4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 23 Jun 2014 19:18:44 +0200 -Subject: [PATCH] cryptsetup: don't add unit dependency on /dev/null devices - when it is listed as password file - -As special magic, don't create device dependencies for /dev/null. Of -course, there might be similar devices we might want to include, but -given that none of them really make sense to specify as password source -there's really no point in checking for anything else here. - -https://bugs.freedesktop.org/show_bug.cgi?id=75816 ---- - src/cryptsetup/cryptsetup-generator.c | 21 +++++++++++++-------- - 1 file changed, 13 insertions(+), 8 deletions(-) - ---- src/cryptsetup/cryptsetup-generator.c -+++ src/cryptsetup/cryptsetup-generator.c 2014-06-25 17:24:14.338237375 +0000 -@@ -29,6 +29,7 @@ - #include "mkdir.h" - #include "strv.h" - #include "fileio.h" -+#include "path-util.h" - - static const char *arg_dest = "/tmp"; - static bool arg_enabled = true; -@@ -141,14 +142,18 @@ static int create_disk( - if (uu == NULL) - return log_oom(); - -- if (is_device_path(uu)) { -- _cleanup_free_ char *dd = unit_name_from_path(uu, ".device"); -- if (dd == NULL) -- return log_oom(); -- -- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); -- } else -- fprintf(f, "RequiresMountsFor=%s\n", password); -+ if (!path_equal(uu, "/dev/null")) { -+ if (is_device_path(uu)) { -+ _cleanup_free_ char *dd; -+ -+ dd = unit_name_from_path(uu, ".device"); -+ if (!dd) -+ return log_oom(); -+ -+ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); -+ } else -+ fprintf(f, "RequiresMountsFor=%s\n", password); -+ } - } - } - diff --git a/0004-fileio-quote-more-shell-characters-in-envfiles.patch b/0004-fileio-quote-more-shell-characters-in-envfiles.patch deleted file mode 100644 index b4cd3e96..00000000 --- a/0004-fileio-quote-more-shell-characters-in-envfiles.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 0ce5a80601597fe4d1a715a8f70ce8d5ccaa2d86 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Sun, 13 Jul 2014 18:49:00 +0300 -Subject: [PATCH] fileio: quote more shell characters in envfiles - -Turns out, making strings shell-proof is harder than expected: - - # machinectl set-hostname "foo|poweroff" && . /etc/machine-info - -(This could be simplified by quoting *and* escaping all characters, -which is harmless in shell but unnecessary.) ---- - src/shared/fileio.c | 4 ++-- - src/shared/util.h | 6 ++++++ - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git src/shared/fileio.c src/shared/fileio.c -index b0ab780..cbb40c2 100644 ---- src/shared/fileio.c -+++ src/shared/fileio.c -@@ -738,11 +738,11 @@ static void write_env_var(FILE *f, const char *v) { - p++; - fwrite(v, 1, p-v, f); - -- if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { -+ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE SHELL_NEED_QUOTES)) { - fputc('\"', f); - - for (; *p; p++) { -- if (strchr("\'\"\\`$", *p)) -+ if (strchr(SHELL_NEED_ESCAPE, *p)) - fputc('\\', f); - - fputc(*p, f); -diff --git src/shared/util.h src/shared/util.h -index c5eadc9..b3187a9 100644 ---- src/shared/util.h -+++ src/shared/util.h -@@ -93,6 +93,12 @@ - #define COMMENTS "#;" - #define GLOB_CHARS "*?[" - -+/* What characters are special in the shell? */ -+/* must be escaped outside and inside double-quotes */ -+#define SHELL_NEED_ESCAPE "\"\\`$" -+/* can be escaped or double-quoted */ -+#define SHELL_NEED_QUOTES SHELL_NEED_ESCAPE GLOB_CHARS "'()<>|&;" -+ - #define FORMAT_BYTES_MAX 8 - - #define ANSI_HIGHLIGHT_ON "\x1B[1;39m" --- -1.7.9.2 - diff --git a/0004-fix-off-by-one-error-in-array-index-assertion.patch b/0004-fix-off-by-one-error-in-array-index-assertion.patch deleted file mode 100644 index 9b718e05..00000000 --- a/0004-fix-off-by-one-error-in-array-index-assertion.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 26abdc73a212b90f7c4b71808a1028d2e87ab09f Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 8 Mar 2014 17:32:53 -0500 -Subject: [PATCH] fix off by one error in array index assertion - -Since the index is already post-incremented when the array is appended -to, this assertion can be wrongly reached when the array is at capacity -(with the NULL terminator). The bug is reproducible on shutdown with -the following settings in /etc/systemd/system.conf: - - LogTarget=journal-or-kmsg - LogColor=yes - LogLocation=yes - -Reported by Thermi on IRC. ---- - src/core/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/main.c src/core/main.c -index 6ebfe64..f1b06d8 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1994,7 +1994,7 @@ finish: - if (log_get_show_location()) - command_line[pos++] = "--log-location"; - -- assert(pos + 1 < ELEMENTSOF(command_line)); -+ assert(pos < ELEMENTSOF(command_line)); - - if (arm_reboot_watchdog && arg_shutdown_watchdog > 0) { - char *e; --- -1.7.9.2 - diff --git a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch deleted file mode 100644 index 065c0ea9..00000000 --- a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +++ /dev/null @@ -1,22 +0,0 @@ -From b3e4387351c835766f96796a20d94971afea7d3b Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz -Date: Tue, 25 Feb 2014 12:43:55 +0100 -Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac - ---- - hwdb/20-net-ifname.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/20-net-ifname.hwdb hwdb/20-net-ifname.hwdb -index 29d2633..2408dc1 100644 ---- hwdb/20-net-ifname.hwdb -+++ hwdb/20-net-ifname.hwdb -@@ -2,4 +2,4 @@ - - # Dell iDRAC Virtual USB NIC - usb:v413CpA102* -- ID_NET_NAME_FROM_DATABASE=irdac -+ ID_NET_NAME_FROM_DATABASE=idrac --- -1.7.9.2 - diff --git a/0004-getty-generator-properly-escape-instance-names.patch b/0004-getty-generator-properly-escape-instance-names.patch deleted file mode 100644 index 26feb694..00000000 --- a/0004-getty-generator-properly-escape-instance-names.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a2ae516a25dafe41e0cd296ab7b5d022fa62b95f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 19 Jun 2014 22:02:55 -0400 -Subject: [PATCH] getty-generator: properly escape instance names - -Otherwise the add_symlink() function tries to make directories for -each slash even for the slash after the @ symbol in the final link -name, failing for /dev/3270/tty1. - -Based on a patch by Werner Fink . ---- - src/getty-generator/getty-generator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/getty-generator/getty-generator.c src/getty-generator/getty-generator.c -index 35cd858..7d4b546 100644 ---- src/getty-generator/getty-generator.c -+++ src/getty-generator/getty-generator.c -@@ -67,7 +67,7 @@ static int add_serial_getty(const char *tty) { - - log_debug("Automatically adding serial getty for /dev/%s.", tty); - -- n = unit_name_replace_instance("serial-getty@.service", tty); -+ n = unit_name_from_path_instance("serial-getty", tty, ".service"); - if (!n) - return log_oom(); - -@@ -81,7 +81,7 @@ static int add_container_getty(const char *tty) { - - log_debug("Automatically adding container getty for /dev/pts/%s.", tty); - -- n = unit_name_replace_instance("container-getty@.service", tty); -+ n = unit_name_from_path_instance("container-getty", tty, ".service"); - if (!n) - return log_oom(); - --- -1.7.9.2 - diff --git a/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 7ae03b91..00000000 --- a/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,50 +0,0 @@ -From b189101727e80a09864c5e5880663ef565467f19 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Sat, 12 Apr 2014 10:38:16 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 23 ++++++++++++++++++++++- - 1 file changed, 22 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index b928f5a..28aa2a7 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -733,7 +733,7 @@ bluetooth:v00F1* - ID_VENDOR_FROM_DATABASE=Witron Technology Limited - - bluetooth:v00F2* -- ID_VENDOR_FROM_DATABASE=Morse Project Inc. -+ ID_VENDOR_FROM_DATABASE=Aether Things Inc. (formerly Morse Project Inc.) - - bluetooth:v00F3* - ID_VENDOR_FROM_DATABASE=Kent Displays Inc. -@@ -941,3 +941,24 @@ bluetooth:v0136* - - bluetooth:v0137* - ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. -+ -+bluetooth:v0138* -+ ID_VENDOR_FROM_DATABASE=NTEO Inc. -+ -+bluetooth:v0139* -+ ID_VENDOR_FROM_DATABASE=Focus Systems Corporation -+ -+bluetooth:v013A* -+ ID_VENDOR_FROM_DATABASE=Tencent Holdings Limited -+ -+bluetooth:v013B* -+ ID_VENDOR_FROM_DATABASE=Allegion -+ -+bluetooth:v013C* -+ ID_VENDOR_FROM_DATABASE=Murata Manufacuring Co., Ltd. -+ -+bluetooth:v013D* -+ ID_VENDOR_FROM_DATABASE=WirelessWERX -+ -+bluetooth:v013E* -+ ID_VENDOR_FROM_DATABASE=nimai --- -1.7.9.2 - diff --git a/0004-hwdb-update-format-description-and-document-reloadin.patch b/0004-hwdb-update-format-description-and-document-reloadin.patch deleted file mode 100644 index a65a46f0..00000000 --- a/0004-hwdb-update-format-description-and-document-reloadin.patch +++ /dev/null @@ -1,60 +0,0 @@ -From fa9d4be3f1f4a792b2f3624c2a08fe9cc6ce6e54 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 7 Aug 2014 21:48:57 -0400 -Subject: [PATCH] hwdb: update format description and document reloading - -https://bugs.freedesktop.org/show_bug.cgi?id=82311 ---- - hwdb/60-keyboard.hwdb | 32 +++++++++++++++++++++++--------- - 1 file changed, 23 insertions(+), 9 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 5c3d4ca..ef0ebc5 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -28,19 +28,33 @@ - # driver, is the firmware-provided string exported - # by the kernel DMI modalias. - # --# Scan codes are specified as: --# KEYBOARD_KEY_= --# The scan code should be expressed in hex lowercase and in --# full bytes, a multiple of 2 digits. The key codes are retrieved --# and normalized from the kernel input API header. -+# Scan codes are specified as: -+# KEYBOARD_KEY_= -+# The scan code should be expressed in hex lowercase. The key codes -+# are retrieved and normalized from the kernel input API header. - # --# A '!' as the first charcter of the key identifier string --# will add the scan code to the AT keyboard's list of scan codes --# where the driver will synthesize a release event and not expect --# it to be generated by the hardware. -+# An '!' as the first character of the key identifier string -+# will add the scan code to the AT keyboard's list of scan codes -+# where the driver will synthesize a release event and not expect -+# it to be generated by the hardware. - # - # To debug key presses and access scan code mapping data of - # an input device use the commonly available tool: evtest(1). -+# -+# To update this file, create a new file -+# /etc/udev/hwdb.d/70-keyboad.hwdb -+# and add your rules there. To load the new rules execute (as root): -+# udevadm hwdb --update -+# udevadm trigger /dev/input/eventXX -+# where /dev/input/eventXX is the keyboard in question. If in -+# doubt, simply use /dev/input/event* to reload all input rules. -+# -+# If your changes are generally applicable, open a bug report on -+# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd -+# and include your new rules, a description of the device, and the -+# output of -+# udevadm info /dev/input/eventXX -+# (or /dev/input/event*). - - ########################################## - # Acer --- -1.7.9.2 - diff --git a/0004-hwdb-update.patch b/0004-hwdb-update.patch deleted file mode 100644 index 572bcd32..00000000 --- a/0004-hwdb-update.patch +++ /dev/null @@ -1,3964 +0,0 @@ -From 61fb23db45c626d92b4e33f09b9287f58a3625a5 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 5 May 2014 14:23:10 +0200 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 295 +++++++++++- - hwdb/20-pci-vendor-model.hwdb | 174 ++++++-- - hwdb/20-usb-vendor-model.hwdb | 992 +++++++++++++++++++++++++++++++++++++++-- - 3 files changed, 1368 insertions(+), 93 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 17794ed..afc0d90 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -13940,7 +13940,7 @@ OUI:000063* - ID_OUI_FROM_DATABASE=BARCO CONTROL ROOMS GMBH - - OUI:000064* -- ID_OUI_FROM_DATABASE=YOKOGAWA DIGITAL COMPUTER CORP -+ ID_OUI_FROM_DATABASE=Yokogawa Electric Corporation - - OUI:000065* - ID_OUI_FROM_DATABASE=Network General Corporation -@@ -14927,7 +14927,7 @@ OUI:0001AE* - ID_OUI_FROM_DATABASE=Trex Enterprises - - OUI:0001AF* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:0001B0* - ID_OUI_FROM_DATABASE=Fulltek Technology Co., Ltd. -@@ -18272,7 +18272,7 @@ OUI:00060A* - ID_OUI_FROM_DATABASE=Blue2space - - OUI:00060B* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:00060C* - ID_OUI_FROM_DATABASE=Melco Industries, Inc. -@@ -20441,7 +20441,7 @@ OUI:0008F8* - ID_OUI_FROM_DATABASE=UTC CCS - - OUI:0008F9* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:0008FA* - ID_OUI_FROM_DATABASE=Karl E.Brinkmann GmbH -@@ -46612,6 +46612,9 @@ OUI:0064A6* - OUI:00664B* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:006B8E* -+ ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. -+ - OUI:006B9E* - ID_OUI_FROM_DATABASE=VIZIO Inc - -@@ -46850,7 +46853,7 @@ OUI:008041* - ID_OUI_FROM_DATABASE=VEB KOMBINAT ROBOTRON - - OUI:008042* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:008043* - ID_OUI_FROM_DATABASE=NETWORLD, INC. -@@ -49919,7 +49922,7 @@ OUI:00C0F8* - ID_OUI_FROM_DATABASE=ABOUT COMPUTING INC. - - OUI:00C0F9* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:00C0FA* - ID_OUI_FROM_DATABASE=CANARY COMMUNICATIONS, INC. -@@ -50957,7 +50960,7 @@ OUI:00E034* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:00E035* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:00E036* - ID_OUI_FROM_DATABASE=PIONEER CORPORATION -@@ -52477,6 +52480,9 @@ OUI:0838A5* - OUI:083AB8* - ID_OUI_FROM_DATABASE=Shinoda Plasma Co., Ltd. - -+OUI:083D88* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:083E0C* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -52495,9 +52501,6 @@ OUI:084027* - OUI:08482C* - ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. - --OUI:084929* -- ID_OUI_FROM_DATABASE=CYBATI -- - OUI:084E1C* - ID_OUI_FROM_DATABASE=H2A Systems, LLC - -@@ -52867,6 +52870,9 @@ OUI:0C8910* - OUI:0C8BFD* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:0C8C8F* -+ ID_OUI_FROM_DATABASE=Kamo Technology Limited -+ - OUI:0C8CDC* - ID_OUI_FROM_DATABASE=Suunto Oy - -@@ -53515,6 +53521,9 @@ OUI:1499E2* - OUI:149FE8* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:14A364* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:14A62C* - ID_OUI_FROM_DATABASE=S.M. Dezac S.A. - -@@ -54403,6 +54412,9 @@ OUI:20918A* - OUI:2091D9* - ID_OUI_FROM_DATABASE=I'M SPA - -+OUI:20934D* -+ ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd -+ - OUI:209AE9* - ID_OUI_FROM_DATABASE=Volacomm Co., Ltd - -@@ -54598,6 +54610,9 @@ OUI:24470E* - OUI:24497B* - ID_OUI_FROM_DATABASE=Innovative Converged Devices Inc - -+OUI:244F1D* -+ ID_OUI_FROM_DATABASE=iRule LLC -+ - OUI:245FDF* - ID_OUI_FROM_DATABASE=KYOCERA Corporation - -@@ -54751,6 +54766,9 @@ OUI:24DEC6* - OUI:24E271* - ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd - -+OUI:24E314* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:24E6BA* - ID_OUI_FROM_DATABASE=JSC Zavod im. Kozitsky - -@@ -54829,6 +54847,9 @@ OUI:2826A6* - OUI:28285D* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -+OUI:2829CC* -+ ID_OUI_FROM_DATABASE=Corsa Technology Incorporated -+ - OUI:2829D9* - ID_OUI_FROM_DATABASE=GlobalBeiMing technology (Beijing)Co. Ltd - -@@ -55087,12 +55108,18 @@ OUI:28E14C* - OUI:28E297* - ID_OUI_FROM_DATABASE=Shanghai InfoTM Microelectronics Co.,Ltd. - -+OUI:28E31F* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:28E347* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - - OUI:28E608* - ID_OUI_FROM_DATABASE=Tokheim - -+OUI:28E6E9* -+ ID_OUI_FROM_DATABASE=SIS Sat Internet Services GmbH -+ - OUI:28E794* - ID_OUI_FROM_DATABASE=Microtime Computer Inc. - -@@ -55225,6 +55252,9 @@ OUI:2C534A* - OUI:2C542D* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:2C54CF* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:2C553C* - ID_OUI_FROM_DATABASE=Gainspeed, Inc. - -@@ -55330,6 +55360,9 @@ OUI:2CA835* - OUI:2CAB25* - ID_OUI_FROM_DATABASE=Shenzhen Gongjin Electronics Co.,Ltd - -+OUI:2CABA4* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:2CB05D* - ID_OUI_FROM_DATABASE=NETGEAR - -@@ -55456,6 +55489,9 @@ OUI:303294* - OUI:3032D4* - ID_OUI_FROM_DATABASE=Hanilstm Co., Ltd. - -+OUI:303335* -+ ID_OUI_FROM_DATABASE=Boosty -+ - OUI:3037A6* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -55888,6 +55924,9 @@ OUI:34BA9A* - OUI:34BB1F* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:34BB26* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:34BCA6* - ID_OUI_FROM_DATABASE=Beijing Ding Qing Technology, Ltd. - -@@ -55975,6 +56014,9 @@ OUI:34EF44* - OUI:34EF8B* - ID_OUI_FROM_DATABASE=NTT Communications Corporation - -+OUI:34F0CA* -+ ID_OUI_FROM_DATABASE=Shenzhen Linghangyuan Digital Technology Co.,Ltd. -+ - OUI:34F39B* - ID_OUI_FROM_DATABASE=WizLAN Ltd. - -@@ -56023,6 +56065,9 @@ OUI:381766* - OUI:38192F* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:381C1A* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:381C4A* - ID_OUI_FROM_DATABASE=SIMCom Wireless Solutions Co.,Ltd. - -@@ -56236,6 +56281,9 @@ OUI:38F597* - OUI:38F708* - ID_OUI_FROM_DATABASE=National Resource Management, Inc. - -+OUI:38F889* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:38F8B7* - ID_OUI_FROM_DATABASE=V2COM PARTICIPACOES S.A. - -@@ -56287,6 +56335,9 @@ OUI:3C15C2* - OUI:3C15EA* - ID_OUI_FROM_DATABASE=TESCOM CO., LTD. - -+OUI:3C189F* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:3C18A0* - ID_OUI_FROM_DATABASE=Luxshare Precision Industry Co.,Ltd. - -@@ -56521,6 +56572,9 @@ OUI:3CD7DA* - OUI:3CD92B* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -+OUI:3CD9CE* -+ ID_OUI_FROM_DATABASE=Eclipse WiFi -+ - OUI:3CDF1E* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -56725,6 +56779,9 @@ OUI:407A80* - OUI:407B1B* - ID_OUI_FROM_DATABASE=Mettle Networks Inc. - -+OUI:408256* -+ ID_OUI_FROM_DATABASE=Continental Automotive GmbH -+ - OUI:4083DE* - ID_OUI_FROM_DATABASE=Motorola - -@@ -56818,6 +56875,9 @@ OUI:40C245* - OUI:40C4D6* - ID_OUI_FROM_DATABASE=ChongQing Camyu Technology Development Co.,Ltd. - -+OUI:40C62A* -+ ID_OUI_FROM_DATABASE=Shanghai Jing Ren Electronic Technology Co., Ltd. -+ - OUI:40C7C9* - ID_OUI_FROM_DATABASE=Naviit Inc. - -@@ -57001,6 +57061,9 @@ OUI:446132* - OUI:44619C* - ID_OUI_FROM_DATABASE=FONsystem co. ltd. - -+OUI:44666E* -+ ID_OUI_FROM_DATABASE=IP-LINE -+ - OUI:446755* - ID_OUI_FROM_DATABASE=Orbit Irrigation - -@@ -57019,6 +57082,9 @@ OUI:44700B* - OUI:447098* - ID_OUI_FROM_DATABASE=MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED - -+OUI:44746C* -+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB -+ - OUI:447BC4* - ID_OUI_FROM_DATABASE=DualShine Technology(SZ)Co.,Ltd - -@@ -57079,6 +57145,9 @@ OUI:44A42D* - OUI:44A689* - ID_OUI_FROM_DATABASE=PROMAX ELECTRONICA SA - -+OUI:44A6E5* -+ ID_OUI_FROM_DATABASE=THINKING TECHNOLOGY CO.,LTD -+ - OUI:44A7CF* - ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. - -@@ -57178,6 +57247,9 @@ OUI:48022A* - OUI:480362* - ID_OUI_FROM_DATABASE=DESAY ELECTRONICS(HUIZHOU)CO.,LTD - -+OUI:480C49* -+ ID_OUI_FROM_DATABASE=NAKAYO TELECOMMUNICATIONS,INC -+ - OUI:481249* - ID_OUI_FROM_DATABASE=Luxcom Technologies Inc. - -@@ -57463,6 +57535,9 @@ OUI:4C2258* - OUI:4C2578* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:4C26E7* -+ ID_OUI_FROM_DATABASE=Welgate Co., Ltd. -+ - OUI:4C2C80* - ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd - -@@ -57535,6 +57610,9 @@ OUI:4C63EB* - OUI:4C64D9* - ID_OUI_FROM_DATABASE=Guangdong Leawin Group Co., Ltd - -+OUI:4C6E6E* -+ ID_OUI_FROM_DATABASE=Comnect Technology CO.,LTD -+ - OUI:4C72B9* - ID_OUI_FROM_DATABASE=Pegatron Corporation - -@@ -57565,6 +57643,9 @@ OUI:4C8093* - OUI:4C82CF* - ID_OUI_FROM_DATABASE=Echostar Technologies - -+OUI:4C83DE* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:4C8B30* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -@@ -57592,6 +57673,9 @@ OUI:4C9E80* - OUI:4C9EE4* - ID_OUI_FROM_DATABASE=Hanyang Navicom Co.,Ltd. - -+OUI:4C9EFF* -+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp -+ - OUI:4CA56D* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -57775,6 +57859,9 @@ OUI:504A6E* - OUI:504F94* - ID_OUI_FROM_DATABASE=Loxone Electronics GmbH - -+OUI:505065* -+ ID_OUI_FROM_DATABASE=TAKT Corporation -+ - OUI:505663* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -57808,6 +57895,9 @@ OUI:506313* - OUI:506441* - ID_OUI_FROM_DATABASE=Greenlee - -+OUI:506787* -+ ID_OUI_FROM_DATABASE=iTellus -+ - OUI:5067F0* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -@@ -58693,6 +58783,12 @@ OUI:5CAC4C* - OUI:5CB524* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -+OUI:5CB6CC* -+ ID_OUI_FROM_DATABASE=NovaComm Technologies Inc. -+ -+OUI:5CB8CB* -+ ID_OUI_FROM_DATABASE=Allis Communications -+ - OUI:5CBD9E* - ID_OUI_FROM_DATABASE=HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED - -@@ -58789,6 +58885,9 @@ OUI:5CF8A1* - OUI:5CF938* - ID_OUI_FROM_DATABASE=Apple, Inc - -+OUI:5CF96A* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:5CF9DD* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -58927,6 +59026,9 @@ OUI:60748D* - OUI:607688* - ID_OUI_FROM_DATABASE=Velodyne - -+OUI:6077E2* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:60812B* - ID_OUI_FROM_DATABASE=Custom Control Concepts - -@@ -59074,6 +59176,9 @@ OUI:60E00E* - OUI:60E327* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:60E701* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:60E956* - ID_OUI_FROM_DATABASE=Ayla Networks, Inc - -@@ -59131,6 +59236,9 @@ OUI:6405BE* - OUI:64094C* - ID_OUI_FROM_DATABASE=Beijing Superbee Wireless Technology Co.,Ltd - -+OUI:640980* -+ ID_OUI_FROM_DATABASE=XIAOMI Electronics,CO.,LTD -+ - OUI:640B4A* - ID_OUI_FROM_DATABASE=Digital Telecom Technology Limited - -@@ -59254,6 +59362,9 @@ OUI:645FFF* - OUI:646223* - ID_OUI_FROM_DATABASE=Cellient Co., Ltd. - -+OUI:64649B* -+ ID_OUI_FROM_DATABASE=juniper networks -+ - OUI:6465C0* - ID_OUI_FROM_DATABASE=Nuvon, Inc - -@@ -59680,6 +59791,9 @@ OUI:689C5E* - OUI:689C70* - ID_OUI_FROM_DATABASE=Apple - -+OUI:68A0F6* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:68A1B7* - ID_OUI_FROM_DATABASE=Honghao Mingchuan Technology (Beijing) CO.,Ltd. - -@@ -60130,6 +60244,9 @@ OUI:702B1D* - OUI:702C1F* - ID_OUI_FROM_DATABASE=Wisol - -+OUI:702DD1* -+ ID_OUI_FROM_DATABASE=Newings Communication CO., LTD. -+ - OUI:702F4B* - ID_OUI_FROM_DATABASE=PolyVision Inc. - -@@ -60211,6 +60328,9 @@ OUI:705986* - OUI:705AB6* - ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. - -+OUI:705B2E* -+ ID_OUI_FROM_DATABASE=M2Communication Inc. -+ - OUI:705CAD* - ID_OUI_FROM_DATABASE=Konami Gaming Inc - -@@ -60568,6 +60688,9 @@ OUI:748EF8* - OUI:748F1B* - ID_OUI_FROM_DATABASE=MasterImage 3D - -+OUI:748F4D* -+ ID_OUI_FROM_DATABASE=MEN Mikro Elektronik GmbH -+ - OUI:749050* - ID_OUI_FROM_DATABASE=Renesas Electronics Corporation - -@@ -60694,6 +60817,9 @@ OUI:74F07D* - OUI:74F102* - ID_OUI_FROM_DATABASE=Beijing HCHCOM Technology Co., Ltd - -+OUI:74F413* -+ ID_OUI_FROM_DATABASE=Maxwell Forest -+ - OUI:74F612* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -61582,6 +61708,9 @@ OUI:806CBC* - OUI:80711F* - ID_OUI_FROM_DATABASE=Juniper Networks - -+OUI:80717A* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:807693* - ID_OUI_FROM_DATABASE=Newag SA - -@@ -61633,6 +61762,9 @@ OUI:80946C* - OUI:8096B1* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:8096CA* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind Co.,Ltd -+ - OUI:80971B* - ID_OUI_FROM_DATABASE=Altenergy Power System,Inc. - -@@ -61699,6 +61831,9 @@ OUI:80D019* - OUI:80D18B* - ID_OUI_FROM_DATABASE=Hangzhou I'converge Technology Co.,Ltd - -+OUI:80D21D* -+ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc -+ - OUI:80D433* - ID_OUI_FROM_DATABASE=LzLabs GmbH - -@@ -62356,6 +62491,9 @@ OUI:8C2F39* - OUI:8C3330* - ID_OUI_FROM_DATABASE=EmFirst Co., Ltd. - -+OUI:8C3357* -+ ID_OUI_FROM_DATABASE=HiteVision Digital Media Technology Co.,Ltd. -+ - OUI:8C3AE3* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -62842,6 +62980,9 @@ OUI:90B134* - OUI:90B21F* - ID_OUI_FROM_DATABASE=Apple - -+OUI:90B686* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:90B8D0* - ID_OUI_FROM_DATABASE=Joyent, Inc. - -@@ -62887,6 +63028,9 @@ OUI:90D92C* - OUI:90DA4E* - ID_OUI_FROM_DATABASE=AVANU - -+OUI:90DA6A* -+ ID_OUI_FROM_DATABASE=MCC System Co., Ltd. -+ - OUI:90DB46* - ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD - -@@ -63100,6 +63244,9 @@ OUI:94ACCA* - OUI:94AE61* - ID_OUI_FROM_DATABASE=Alcatel Lucent - -+OUI:94AEE3* -+ ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. -+ - OUI:94B8C5* - ID_OUI_FROM_DATABASE=RuggedCom Inc. - -@@ -63151,6 +63298,9 @@ OUI:94CE2C* - OUI:94D019* - ID_OUI_FROM_DATABASE=Cydle Corp. - -+OUI:94D60E* -+ ID_OUI_FROM_DATABASE=shenzhen yunmao information technologies co., ltd -+ - OUI:94D723* - ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd - -@@ -63730,6 +63880,9 @@ OUI:9CC077* - OUI:9CC0D2* - ID_OUI_FROM_DATABASE=Conductix-Wampfler AG - -+OUI:9CC172* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:9CC7A6* - ID_OUI_FROM_DATABASE=AVM GmbH - -@@ -63799,6 +63952,9 @@ OUI:A002DC* - OUI:A00363* - ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH - -+OUI:A00627* -+ ID_OUI_FROM_DATABASE=NEXPA System -+ - OUI:A00798* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -63898,6 +64054,9 @@ OUI:A051C6* - OUI:A055DE* - ID_OUI_FROM_DATABASE=Pace plc - -+OUI:A056B2* -+ ID_OUI_FROM_DATABASE=Harman/Becker Automotive Systems GmbH -+ - OUI:A0593A* - ID_OUI_FROM_DATABASE=V.D.S. Video Display Systems srl - -@@ -64234,6 +64393,9 @@ OUI:A45C27* - OUI:A45D36* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A45DA1* -+ ID_OUI_FROM_DATABASE=ADB Broadband Italia -+ - OUI:A46032* - ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD - -@@ -64312,6 +64474,9 @@ OUI:A49F89* - OUI:A4A24A* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:A4A4D3* -+ ID_OUI_FROM_DATABASE=Bluebank Communication Technology Co.Ltd -+ - OUI:A4A80F* - ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd. - -@@ -64462,6 +64627,9 @@ OUI:A80600* - OUI:A80C0D* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:A81374* -+ ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company -+ - OUI:A8154D* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -@@ -64495,6 +64663,9 @@ OUI:A82BD6* - OUI:A830AD* - ID_OUI_FROM_DATABASE=Wei Fang Goertek Electronics Co.,Ltd - -+OUI:A8329A* -+ ID_OUI_FROM_DATABASE=Digicom Futuristic Technologies Ltd. -+ - OUI:A83944* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -@@ -64582,6 +64753,9 @@ OUI:A88CEE* - OUI:A88D7B* - ID_OUI_FROM_DATABASE=SunDroid Global limited. - -+OUI:A88E24* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:A8922C* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -64903,6 +65077,9 @@ OUI:AC9CE4* - OUI:ACA016* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:ACA213* -+ ID_OUI_FROM_DATABASE=Shenzhen Bilian electronic CO.,LTD -+ - OUI:ACA22C* - ID_OUI_FROM_DATABASE=Baycity Technologies Ltd - -@@ -65068,6 +65245,9 @@ OUI:B01B7C* - OUI:B01C91* - ID_OUI_FROM_DATABASE=Elim Co - -+OUI:B01F81* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:B024F3* - ID_OUI_FROM_DATABASE=Progeny Systems - -@@ -65113,6 +65293,9 @@ OUI:B058C4* - OUI:B05B1F* - ID_OUI_FROM_DATABASE=THERMO FISHER SCIENTIFIC S.P.A. - -+OUI:B05B67* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:B05CE5* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -65338,6 +65521,9 @@ OUI:B407F9* - OUI:B40832* - ID_OUI_FROM_DATABASE=TC Communications - -+OUI:B40AC6* -+ ID_OUI_FROM_DATABASE=DEXON Systems Ltd. -+ - OUI:B40B44* - ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. - -@@ -65533,6 +65719,9 @@ OUI:B4AA4D* - OUI:B4AB2C* - ID_OUI_FROM_DATABASE=MtM Technology Corporation - -+OUI:B4AE6F* -+ ID_OUI_FROM_DATABASE=Circle Reliance, Inc. -+ - OUI:B4B017* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -65566,6 +65755,9 @@ OUI:B4C810* - OUI:B4CCE9* - ID_OUI_FROM_DATABASE=PROSYST - -+OUI:B4CEF6* -+ ID_OUI_FROM_DATABASE=HTC Corporation -+ - OUI:B4CFDB* - ID_OUI_FROM_DATABASE=Shenzhen Jiuzhou Electric Co.,LTD - -@@ -65812,6 +66004,9 @@ OUI:B898B0* - OUI:B898F7* - ID_OUI_FROM_DATABASE=Gionee Communication Equipment Co,Ltd.ShenZhen - -+OUI:B89919* -+ ID_OUI_FROM_DATABASE=7signal Solutions, Inc -+ - OUI:B89AED* - ID_OUI_FROM_DATABASE=OceanServer Technology, Inc - -@@ -66160,6 +66355,9 @@ OUI:BC9889* - OUI:BC99BC* - ID_OUI_FROM_DATABASE=FonSee Technology Inc. - -+OUI:BC9CC5* -+ ID_OUI_FROM_DATABASE=Beijing Huafei Technology Co., Ltd. -+ - OUI:BC9DA5* - ID_OUI_FROM_DATABASE=DASCOM Europe GmbH - -@@ -66511,6 +66709,9 @@ OUI:C0EAE4* - OUI:C0F1C4* - ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. - -+OUI:C0F2FB* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:C0F79D* - ID_OUI_FROM_DATABASE=Powercode - -@@ -66613,6 +66814,9 @@ OUI:C43C3C* - OUI:C43DC7* - ID_OUI_FROM_DATABASE=NETGEAR - -+OUI:C44202* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:C4438F* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -66634,6 +66838,9 @@ OUI:C44AD0* - OUI:C44B44* - ID_OUI_FROM_DATABASE=Omniprint Inc. - -+OUI:C44BD1* -+ ID_OUI_FROM_DATABASE=Wallys Communications Teachnologies Co.,Ltd. -+ - OUI:C44E1F* - ID_OUI_FROM_DATABASE=BlueN - -@@ -66835,6 +67042,9 @@ OUI:C4F57C* - OUI:C4FCE4* - ID_OUI_FROM_DATABASE=DishTV NZ Ltd - -+OUI:C80210* -+ ID_OUI_FROM_DATABASE=LG Innotek -+ - OUI:C80258* - ID_OUI_FROM_DATABASE=ITW GSE ApS - -@@ -67363,6 +67573,9 @@ OUI:CC9F35* - OUI:CCA0E5* - ID_OUI_FROM_DATABASE=DZG Metering GmbH - -+OUI:CCA223* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:CCA374* - ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd - -@@ -67498,6 +67711,9 @@ OUI:CCFE3C* - OUI:D00790* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:D00AAB* -+ ID_OUI_FROM_DATABASE=Yokogawa Digital Computer Corporation -+ - OUI:D00EA4* - ID_OUI_FROM_DATABASE=Porsche Cars North America - -@@ -67576,6 +67792,9 @@ OUI:D05875* - OUI:D059C3* - ID_OUI_FROM_DATABASE=CeraMicro Technology Corporation - -+OUI:D059E4* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:D05A0F* - ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD - -@@ -68248,6 +68467,9 @@ OUI:D86595* - OUI:D866C6* - ID_OUI_FROM_DATABASE=Shenzhen Daystar Technology Co.,ltd - -+OUI:D866EE* -+ ID_OUI_FROM_DATABASE=BOXIN COMMUNICATION CO.,LTD. -+ - OUI:D867D9* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -68542,6 +68764,9 @@ OUI:DC49C9* - OUI:DC4EDE* - ID_OUI_FROM_DATABASE=SHINYEI TECHNOLOGY CO., LTD. - -+OUI:DC537C* -+ ID_OUI_FROM_DATABASE=Compal Broadband Networks, Inc. -+ - OUI:DC5726* - ID_OUI_FROM_DATABASE=Power-One - -@@ -69112,6 +69337,9 @@ OUI:E45614* - OUI:E457A8* - ID_OUI_FROM_DATABASE=Stuart Manufacturing, Inc. - -+OUI:E45D52* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:E46449* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -69298,6 +69526,9 @@ OUI:E81132* - OUI:E81324* - ID_OUI_FROM_DATABASE=GuangZhou Bonsoninfo System CO.,LTD - -+OUI:E8150E* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:E817FC* - ID_OUI_FROM_DATABASE=NIFTY Corporation - -@@ -69373,6 +69604,9 @@ OUI:E85B5B* - OUI:E85BF0* - ID_OUI_FROM_DATABASE=Imaging Diagnostics - -+OUI:E85D6B* -+ ID_OUI_FROM_DATABASE=Luminate Wireless -+ - OUI:E85E53* - ID_OUI_FROM_DATABASE=Infratec Datentechnik GmbH - -@@ -69409,6 +69643,9 @@ OUI:E878A1* - OUI:E87AF3* - ID_OUI_FROM_DATABASE=S5 Tech S.r.l. - -+OUI:E8802E* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:E880D8* - ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. - -@@ -69719,7 +69956,7 @@ OUI:EC9B5B* - ID_OUI_FROM_DATABASE=Nokia Corporation - - OUI:EC9ECD* -- ID_OUI_FROM_DATABASE=Emerson Network Power and Embedded Computing -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:ECA29B* - ID_OUI_FROM_DATABASE=Kemppi Oy -@@ -69745,6 +69982,9 @@ OUI:ECC38A* - OUI:ECC882* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:ECCB30* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:ECCD6D* - ID_OUI_FROM_DATABASE=Allied Telesis, Inc. - -@@ -69763,6 +70003,9 @@ OUI:ECD925* - OUI:ECD950* - ID_OUI_FROM_DATABASE=IRT SA - -+OUI:ECD9D1* -+ ID_OUI_FROM_DATABASE=Shenzhen TG-NET Botone Technology Co.,Ltd. -+ - OUI:ECDE3D* - ID_OUI_FROM_DATABASE=Lamprey Networks, Inc. - -@@ -70144,6 +70387,12 @@ OUI:F406A5* - OUI:F40B93* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:F40E11* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ -+OUI:F40F1B* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F40F9B* - ID_OUI_FROM_DATABASE=WAVELINK - -@@ -70165,6 +70414,9 @@ OUI:F41FC2* - OUI:F42012* - ID_OUI_FROM_DATABASE=Cuciniale GmbH - -+OUI:F42833* -+ ID_OUI_FROM_DATABASE=MMPC Inc. -+ - OUI:F42896* - ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA - -@@ -70294,6 +70546,9 @@ OUI:F499AC* - OUI:F49F54* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:F49FF3* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:F4A294* - ID_OUI_FROM_DATABASE=EAGLE WORLD DEVELOPMENT CO., LIMITED - -@@ -70351,6 +70606,9 @@ OUI:F4CE46* - OUI:F4CFE2* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:F4D032* -+ ID_OUI_FROM_DATABASE=Yunnan Ideal Information&Technology.,Ltd -+ - OUI:F4D261* - ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd - -@@ -70390,12 +70648,18 @@ OUI:F4F5A5* - OUI:F4F5E8* - ID_OUI_FROM_DATABASE=Google - -+OUI:F4F646* -+ ID_OUI_FROM_DATABASE=Dediprog Technology Co. Ltd. -+ - OUI:F4F951* - ID_OUI_FROM_DATABASE=Apple - - OUI:F4FC32* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:F4FD2B* -+ ID_OUI_FROM_DATABASE=ZOYI Company -+ - OUI:F80113* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -70798,6 +71062,9 @@ OUI:FC1607* - OUI:FC1794* - ID_OUI_FROM_DATABASE=InterCreative Co., Ltd - -+OUI:FC1910* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:FC19D0* - ID_OUI_FROM_DATABASE=Cloud Vision Networks Technology Co.,Ltd. - -@@ -70906,6 +71173,9 @@ OUI:FC7516* - OUI:FC75E6* - ID_OUI_FROM_DATABASE=Handreamnet - -+OUI:FC790B* -+ ID_OUI_FROM_DATABASE=Hitachi High Technologies America, Inc. -+ - OUI:FC7CE7* - ID_OUI_FROM_DATABASE=FCI USA LLC - -@@ -70948,6 +71218,9 @@ OUI:FCA841* - OUI:FCA9B0* - ID_OUI_FROM_DATABASE=MIARTECH (SHANGHAI),INC. - -+OUI:FCAA14* -+ ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. -+ - OUI:FCAD0F* - ID_OUI_FROM_DATABASE=QTS NETWORKS - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 14637d3..2957774 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -1673,6 +1673,9 @@ pci:v00001002d00001306* - pci:v00001002d00001307* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d00001308* -+ ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller -+ - pci:v00001002d00001309* - ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - -@@ -4268,6 +4271,9 @@ pci:v00001002d00006611sv00001B0Asd000090D3* - pci:v00001002d00006613* - ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] - -+pci:v00001002d00006613sv00001682sd00007240* -+ ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] (R7 240 2048 MB) -+ - pci:v00001002d00006620* - ID_MODEL_FROM_DATABASE=Mars - -@@ -6024,31 +6030,31 @@ pci:v00001002d00006819sv0000174Bsd0000E221* - ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) - - pci:v00001002d00006820* -- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] - - pci:v00001002d00006820sv0000103Csd00001851* -- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon HD 7750M) - - pci:v00001002d00006820sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon R9 M275) - - pci:v00001002d00006821* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] - - pci:v00001002d00006821sv00001002sd0000031E* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro SX4000) - - pci:v00001002d00006821sv00001028sd000005CC* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) - - pci:v00001002d00006821sv00001028sd000015CC* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) - - pci:v00001002d00006822* - ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] - - pci:v00001002d00006823* -- ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M] -+ ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M / R9 M265X] - - pci:v00001002d00006825* - ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] -@@ -7770,64 +7776,73 @@ pci:v00001002d000068F9sv000017AFsd00003014* - ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068FA* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] - - pci:v00001002d000068FAsv00001019sd00000019* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000021* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000022* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000026* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000103Csd00002ADF* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) - - pci:v00001002d000068FAsv0000103Csd00002AE8* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) - - pci:v00001002d000068FAsv00001043sd00008350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) - - pci:v00001002d000068FAsv00001462sd00002128* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002184* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002186* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002495* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd0000B490* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001642sd00003985* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) -+ -+pci:v00001002d000068FAsv0000174Bsd00003510* -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) -+ -+pci:v00001002d000068FAsv0000174Bsd00003521* -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) -+ -+pci:v00001002d000068FAsv0000174Bsd00003522* -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) - - pci:v00001002d000068FAsv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd00008153* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E180* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv000017AFsd00003015* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE -@@ -8886,7 +8901,7 @@ pci:v00001002d0000980A* - ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 7290] - - pci:v00001002d00009830* -- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400] -+ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400 / R3 Series] - - pci:v00001002d00009831* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400E] -@@ -8904,13 +8919,13 @@ pci:v00001002d00009835* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8310E] - - pci:v00001002d00009836* -- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280] -+ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280 / R3 Series] - - pci:v00001002d00009837* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280E] - - pci:v00001002d00009838* -- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240] -+ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240 / R3 Series] - - pci:v00001002d00009839* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8180] -@@ -10724,6 +10739,33 @@ pci:v00001022d00001418* - pci:v00001022d00001419* - ID_MODEL_FROM_DATABASE=Family 15h (Models 10h-1fh) I/O Memory Management Unit - -+pci:v00001022d0000141A* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 0 -+ -+pci:v00001022d0000141B* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 1 -+ -+pci:v00001022d0000141C* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 2 -+ -+pci:v00001022d0000141D* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 3 -+ -+pci:v00001022d0000141E* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 4 -+ -+pci:v00001022d0000141F* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 5 -+ -+pci:v00001022d00001422* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Complex -+ -+pci:v00001022d00001423* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) I/O Memory Management Unit -+ -+pci:v00001022d00001426* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Port -+ - pci:v00001022d00001439* - ID_MODEL_FROM_DATABASE=Family 16h Processor Functions 5:1 - -@@ -17621,6 +17663,9 @@ pci:v00001093d000071BC* - pci:v00001093d000071D0* - ID_MODEL_FROM_DATABASE=PXI-6143 - -+pci:v00001093d000071DC* -+ ID_MODEL_FROM_DATABASE=PCI-1588 -+ - pci:v00001093d00007260* - ID_MODEL_FROM_DATABASE=PXI-5142 - -@@ -17639,6 +17684,9 @@ pci:v00001093d000072AA* - pci:v00001093d000072AB* - ID_MODEL_FROM_DATABASE=PCI-5105 - -+pci:v00001093d000072B8* -+ ID_MODEL_FROM_DATABASE=PXI-6682 -+ - pci:v00001093d0000730F* - ID_MODEL_FROM_DATABASE=PXI-5922EX - -@@ -17708,6 +17756,9 @@ pci:v00001093d000073F0* - pci:v00001093d000073F1* - ID_MODEL_FROM_DATABASE=PCI-5153 - -+pci:v00001093d00007405* -+ ID_MODEL_FROM_DATABASE=PXIe-6674T -+ - pci:v00001093d0000745E* - ID_MODEL_FROM_DATABASE=PXI-5153EX - -@@ -17726,6 +17777,12 @@ pci:v00001093d00007539* - pci:v00001093d0000753A* - ID_MODEL_FROM_DATABASE=NI 9159 - -+pci:v00001093d000075E5* -+ ID_MODEL_FROM_DATABASE=PXI-6683 -+ -+pci:v00001093d000075E6* -+ ID_MODEL_FROM_DATABASE=PXI-6683H -+ - pci:v00001093d00007626* - ID_MODEL_FROM_DATABASE=NI 9154 - -@@ -28100,6 +28157,9 @@ pci:v000010EC* - pci:v000010ECd00000139* - ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ Ethernet Controller - -+pci:v000010ECd00005208* -+ ID_MODEL_FROM_DATABASE=RTS5208 PCI Express Card Reader -+ - pci:v000010ECd00005209* - ID_MODEL_FROM_DATABASE=RTS5209 PCI Express Card Reader - -@@ -28128,7 +28188,7 @@ pci:v000010ECd00005249sv0000103Csd00001909* - ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) - - pci:v000010ECd00005288* -- ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader -+ ID_MODEL_FROM_DATABASE=RTS5288 PCI Express Card Reader - - pci:v000010ECd00008029* - ID_MODEL_FROM_DATABASE=RTL-8029(AS) -@@ -32153,6 +32213,9 @@ pci:v00001131d00007160* - pci:v00001131d00007160sv00001458sd00009009* - ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) - -+pci:v00001131d00007160sv00001461sd00001455* -+ ID_MODEL_FROM_DATABASE=SAA7160 (AVerTV Hybrid Speedy PCI-E (H788)) -+ - pci:v00001131d00007162* - ID_MODEL_FROM_DATABASE=SAA7162 - -@@ -34691,6 +34754,9 @@ pci:v000011ABd00002A42* - pci:v000011ABd00002A43* - ID_MODEL_FROM_DATABASE=88W8366 [TopDog] 802.11n Wireless - -+pci:v000011ABd00002A55* -+ ID_MODEL_FROM_DATABASE=88W8864 [Avastar] 802.11ac Wireless -+ - pci:v000011ABd00002B36* - ID_MODEL_FROM_DATABASE=88W8764 [Avastar] 802.11n Wireless - -@@ -36536,6 +36602,9 @@ pci:v00001217d00008120* - pci:v00001217d00008130* - ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller - -+pci:v00001217d00008221* -+ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller -+ - pci:v00001217d00008320* - ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller - -@@ -43278,7 +43347,13 @@ pci:v00001469* - ID_VENDOR_FROM_DATABASE=Cleveland Motion Controls - - pci:v0000146A* -- ID_VENDOR_FROM_DATABASE=IFR -+ ID_VENDOR_FROM_DATABASE=Aeroflex -+ -+pci:v0000146Ad00003010* -+ ID_MODEL_FROM_DATABASE=3010 RF Synthesizer -+ -+pci:v0000146Ad00003A11* -+ ID_MODEL_FROM_DATABASE=3011A PXI RF Synthesizer - - pci:v0000146B* - ID_VENDOR_FROM_DATABASE=Parascan Technologies Ltd -@@ -52409,6 +52484,9 @@ pci:v00001AB8d00004006* - pci:v00001AB9* - ID_VENDOR_FROM_DATABASE=Espia Srl - -+pci:v00001AC8* -+ ID_VENDOR_FROM_DATABASE=Aeroflex Gaisler -+ - pci:v00001ACC* - ID_VENDOR_FROM_DATABASE=Point of View BV - -@@ -52724,9 +52802,15 @@ pci:v00001B4Bd000091A0* - pci:v00001B4Bd000091A4* - ID_MODEL_FROM_DATABASE=88SE912x IDE Controller - -+pci:v00001B4Bd00009220* -+ ID_MODEL_FROM_DATABASE=88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller -+ - pci:v00001B4Bd00009230* - ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller - -+pci:v00001B4Bd00009235* -+ ID_MODEL_FROM_DATABASE=88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller -+ - pci:v00001B4Bd00009445* - ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller - -@@ -54693,7 +54777,7 @@ pci:v00006688* - ID_VENDOR_FROM_DATABASE=Zycoo Co., Ltd - - pci:v00006688d00001200* -- ID_MODEL_FROM_DATABASE=CooVOX TDM Analog Module -+ ID_MODEL_FROM_DATABASE=CooVox TDM Analog Module - - pci:v00006688d00001400* - ID_MODEL_FROM_DATABASE=CooVOX TDM GSM Module -@@ -59066,8 +59150,11 @@ pci:v00008086d00001522sv00008086sd000000A4* - pci:v00008086d00001523* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection - -+pci:v00008086d00001523sv00001028sd00000060* -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 2P I350 LOM) -+ - pci:v00008086d00001523sv00001028sd00001F9B* -- ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350-t bNDC) - - pci:v00008086d00001523sv0000103Csd00001784* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) -@@ -59183,9 +59270,6 @@ pci:v00008086d00001536* - pci:v00008086d00001537* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - --pci:v00008086d00001538* -- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -- - pci:v00008086d00001539* - ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection - -@@ -59270,6 +59354,12 @@ pci:v00008086d0000155Dsv00008086sd00000002* - pci:v00008086d00001560* - ID_MODEL_FROM_DATABASE=Ethernet Controller X540 - -+pci:v00008086d0000156F* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-LM -+ -+pci:v00008086d00001570* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V -+ - pci:v00008086d00001571* - ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function - -@@ -59316,16 +59406,16 @@ pci:v00008086d00001581sv00001028sd00001F98* - ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) - - pci:v00008086d00001583* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - - pci:v00008086d00001583sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) - - pci:v00008086d00001584* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 014c628..52586bc 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -21,7 +21,7 @@ usb:v0004* - ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart - - usb:v0011* -- ID_VENDOR_FROM_DATABASE=Unknown manufacturer -+ ID_VENDOR_FROM_DATABASE=Unknown - - usb:v0011p7788* - ID_MODEL_FROM_DATABASE=Flash mass storage drive -@@ -275,6 +275,9 @@ usb:v03EBp2110* - usb:v03EBp2122* - ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit - -+usb:v03EBp2141* -+ ID_MODEL_FROM_DATABASE=ICE debugger -+ - usb:v03EBp2310* - ID_MODEL_FROM_DATABASE=EVK11xx evaluation board - -@@ -455,6 +458,9 @@ usb:v03F0p0121* - usb:v03F0p0122* - ID_MODEL_FROM_DATABASE=HID Internet Keyboard - -+usb:v03F0p0139* -+ ID_MODEL_FROM_DATABASE=Barcode Scanner 4430 -+ - usb:v03F0p0201* - ID_MODEL_FROM_DATABASE=ScanJet 6200c - -@@ -782,6 +788,9 @@ usb:v03F0p1517* - usb:v03F0p1524* - ID_MODEL_FROM_DATABASE=Smart Card Keyboard - KR - -+usb:v03F0p1539* -+ ID_MODEL_FROM_DATABASE=Mini Magnetic Stripe Reader -+ - usb:v03F0p1602* - ID_MODEL_FROM_DATABASE=PhotoSmart 330 series - -@@ -893,6 +902,9 @@ usb:v03F0p1D02* - usb:v03F0p1D17* - ID_MODEL_FROM_DATABASE=LaserJet 1320 - -+usb:v03F0p1D24* -+ ID_MODEL_FROM_DATABASE=Barcode scanner -+ - usb:v03F0p1E02* - ID_MODEL_FROM_DATABASE=PhotoSmart A320 Printer series - -@@ -935,6 +947,9 @@ usb:v03F0p2012* - usb:v03F0p201D* - ID_MODEL_FROM_DATABASE=un2400 Gobi Wireless Modem (QDL mode) - -+usb:v03F0p2039* -+ ID_MODEL_FROM_DATABASE=Cashdrawer -+ - usb:v03F0p2102* - ID_MODEL_FROM_DATABASE=PhotoSmart 7345 - -@@ -1008,7 +1023,7 @@ usb:v03F0p2505* - ID_MODEL_FROM_DATABASE=ScanJet 3770 - - usb:v03F0p2512* -- ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 -+ ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 / Compaq LA2405 series monitor - - usb:v03F0p2514* - ID_MODEL_FROM_DATABASE=4-port hub -@@ -1046,6 +1061,9 @@ usb:v03F0p2704* - usb:v03F0p2717* - ID_MODEL_FROM_DATABASE=Color LaserJet 2830 - -+usb:v03F0p2724* -+ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader IDRA-334133-HP -+ - usb:v03F0p2811* - ID_MODEL_FROM_DATABASE=PSC-2100 - -@@ -1424,6 +1442,9 @@ usb:v03F0p5817* - usb:v03F0p5911* - ID_MODEL_FROM_DATABASE=PhotoSmart C6180 - -+usb:v03F0p5912* -+ ID_MODEL_FROM_DATABASE=Officejet Pro 8600 -+ - usb:v03F0p5A11* - ID_MODEL_FROM_DATABASE=PhotoSmart C7100 series - -@@ -1532,6 +1553,9 @@ usb:v03F0p6B02* - usb:v03F0p6B11* - ID_MODEL_FROM_DATABASE=Photosmart C4500 series - -+usb:v03F0p6C11* -+ ID_MODEL_FROM_DATABASE=Photosmart C4480 -+ - usb:v03F0p6C17* - ID_MODEL_FROM_DATABASE=Color LaserJet 4610 - -@@ -1913,6 +1937,9 @@ usb:v03FC* - usb:v03FD* - ID_VENDOR_FROM_DATABASE=Xilinx, Inc. - -+usb:v03FDp0008* -+ ID_MODEL_FROM_DATABASE=Platform Cable USB II -+ - usb:v03FE* - ID_VENDOR_FROM_DATABASE=Farallon Comunications - -@@ -2012,6 +2039,9 @@ usb:v0403p0232* - usb:v0403p1060* - ID_MODEL_FROM_DATABASE=JTAG adapter - -+usb:v0403p1234* -+ ID_MODEL_FROM_DATABASE=IronLogic RFID Adapter [Z-2 USB] -+ - usb:v0403p6001* - ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC - -@@ -2084,12 +2114,18 @@ usb:v0403p8B2B* - usb:v0403p8B2C* - ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 - -+usb:v0403p9132* -+ ID_MODEL_FROM_DATABASE=LCD and Temperature Interface -+ - usb:v0403p9133* - ID_MODEL_FROM_DATABASE=CallerID - - usb:v0403p9135* - ID_MODEL_FROM_DATABASE=Rotary Pub alarm - -+usb:v0403p9136* -+ ID_MODEL_FROM_DATABASE=Pulsecounter -+ - usb:v0403p9E90* - ID_MODEL_FROM_DATABASE=Marvell OpenRD Base/Client - -@@ -2291,6 +2327,9 @@ usb:v0403pEF10* - usb:v0403pF070* - ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] - -+usb:v0403pF0E9* -+ ID_MODEL_FROM_DATABASE=Tagsys L-P101 -+ - usb:v0403pF1A0* - ID_MODEL_FROM_DATABASE=Asix PRESTO Programmer - -@@ -2999,6 +3038,9 @@ usb:v040Ap4021* - usb:v040Ap4022* - ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer - -+usb:v040Ap402B* -+ ID_MODEL_FROM_DATABASE=Photo Printer 6850 -+ - usb:v040Ap402E* - ID_MODEL_FROM_DATABASE=605 Photo Printer - -@@ -4379,6 +4421,9 @@ usb:v0424p7500* - usb:v0424p9512* - ID_MODEL_FROM_DATABASE=SMC9512/9514 USB Hub - -+usb:v0424p9514* -+ ID_MODEL_FROM_DATABASE=SMC9514 Hub -+ - usb:v0424pA700* - ID_MODEL_FROM_DATABASE=2 Port Hub - -@@ -5219,6 +5264,9 @@ usb:v0451p2046* - usb:v0451p2077* - ID_MODEL_FROM_DATABASE=TUSB2077 Hub - -+usb:v0451p2F90* -+ ID_MODEL_FROM_DATABASE=SM-USB-DIG -+ - usb:v0451p3410* - ID_MODEL_FROM_DATABASE=TUSB3410 Microcontroller - -@@ -5534,6 +5582,9 @@ usb:v0458p5003* - usb:v0458p5004* - ID_MODEL_FROM_DATABASE=G-pen Tablet - -+usb:v0458p505E* -+ ID_MODEL_FROM_DATABASE=Genius iSlim 330 -+ - usb:v0458p6001* - ID_MODEL_FROM_DATABASE=GF3000F Ethernet Adapter - -@@ -5600,6 +5651,24 @@ usb:v0458p705A* - usb:v0458p705C* - ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF - -+usb:v0458p7061* -+ ID_MODEL_FROM_DATABASE=Genius iLook 1321 V2 -+ -+usb:v0458p7066* -+ ID_MODEL_FROM_DATABASE=Acer Crystal Eye Webcam -+ -+usb:v0458p7067* -+ ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF V2 -+ -+usb:v0458p7068* -+ ID_MODEL_FROM_DATABASE=Genius eFace 1325R -+ -+usb:v0458p706D* -+ ID_MODEL_FROM_DATABASE=Genius iSlim 2000AF V2 -+ -+usb:v0458p7076* -+ ID_MODEL_FROM_DATABASE=Genius FaceCam 312 -+ - usb:v0458p7079* - ID_MODEL_FROM_DATABASE=FaceCam 2025R - -@@ -5609,6 +5678,12 @@ usb:v0458p707F* - usb:v0458p7088* - ID_MODEL_FROM_DATABASE=WideCam 1050 - -+usb:v0458p7089* -+ ID_MODEL_FROM_DATABASE=Genius FaceCam 320 -+ -+usb:v0458p708C* -+ ID_MODEL_FROM_DATABASE=Genius WideCam F100 -+ - usb:v0459* - ID_VENDOR_FROM_DATABASE=Adobe Systems, Inc. - -@@ -6017,6 +6092,15 @@ usb:v045Ep02B0* - usb:v045Ep02B6* - ID_MODEL_FROM_DATABASE=Xbox 360 / Bluetooth Wireless Headset - -+usb:v045Ep02BE* -+ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Audio -+ -+usb:v045Ep02BF* -+ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Camera -+ -+usb:v045Ep02C2* -+ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Motor -+ - usb:v045Ep0400* - ID_MODEL_FROM_DATABASE=Windows Powered Pocket PC 2002 - -@@ -6866,6 +6950,9 @@ usb:v046Dp0830* - usb:v046Dp0840* - ID_MODEL_FROM_DATABASE=QuickCam Express - -+usb:v046Dp0843* -+ ID_MODEL_FROM_DATABASE=Webcam C930e -+ - usb:v046Dp0850* - ID_MODEL_FROM_DATABASE=QuickCam Web - -@@ -7169,6 +7256,12 @@ usb:v046Dp0A1F* - usb:v046Dp0A29* - ID_MODEL_FROM_DATABASE=H600 [Wireless Headset] - -+usb:v046Dp0A38* -+ ID_MODEL_FROM_DATABASE=Headset H340 -+ -+usb:v046Dp0A4D* -+ ID_MODEL_FROM_DATABASE=G430 Surround Sound Gaming Headset -+ - usb:v046Dp0B02* - ID_MODEL_FROM_DATABASE=C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode) - -@@ -7650,7 +7743,7 @@ usb:v046DpC31B* - ID_MODEL_FROM_DATABASE=Compact Keyboard K300 - - usb:v046DpC31C* -- ID_MODEL_FROM_DATABASE=Keyboard K120 for Business -+ ID_MODEL_FROM_DATABASE=Keyboard K120 - - usb:v046DpC31D* - ID_MODEL_FROM_DATABASE=Media Keyboard K200 -@@ -7751,6 +7844,9 @@ usb:v046DpC529* - usb:v046DpC52B* - ID_MODEL_FROM_DATABASE=Unifying Receiver - -+usb:v046DpC52D* -+ ID_MODEL_FROM_DATABASE=R700 Remote Presenter receiver -+ - usb:v046DpC52E* - ID_MODEL_FROM_DATABASE=MK260 Wireless Combo Receiver - -@@ -7760,6 +7856,18 @@ usb:v046DpC52F* - usb:v046DpC532* - ID_MODEL_FROM_DATABASE=Unifying Receiver - -+usb:v046DpC603* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT -+ -+usb:v046DpC605* -+ ID_MODEL_FROM_DATABASE=3Dconnexion CADman -+ -+usb:v046DpC606* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Classic -+ -+usb:v046DpC621* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Spaceball 5000 -+ - usb:v046DpC623* - ID_MODEL_FROM_DATABASE=3Dconnexion Space Traveller 3D Mouse - -@@ -7772,9 +7880,18 @@ usb:v046DpC626* - usb:v046DpC627* - ID_MODEL_FROM_DATABASE=3Dconnexion Space Explorer 3D Mouse - -+usb:v046DpC628* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Space Navigator for Notebooks -+ - usb:v046DpC629* - ID_MODEL_FROM_DATABASE=3Dconnexion SpacePilot Pro 3D Mouse - -+usb:v046DpC62B* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Space Mouse Pro -+ -+usb:v046DpC640* -+ ID_MODEL_FROM_DATABASE=NuLOOQ navigator -+ - usb:v046DpC702* - ID_MODEL_FROM_DATABASE=Cordless Presenter - -@@ -8609,6 +8726,9 @@ usb:v0480p0011* - usb:v0480p0014* - ID_MODEL_FROM_DATABASE=InTouch Module - -+usb:v0480p0100* -+ ID_MODEL_FROM_DATABASE=Stor.E Slim USB 3.0 -+ - usb:v0480pA006* - ID_MODEL_FROM_DATABASE=External Disk 1.5TB - -@@ -10043,6 +10163,9 @@ usb:v04A9p2225* - usb:v04A9p2228* - ID_MODEL_FROM_DATABASE=CanoScan 4400F - -+usb:v04A9p2229* -+ ID_MODEL_FROM_DATABASE=CanoScan 8600F -+ - usb:v04A9p2602* - ID_MODEL_FROM_DATABASE=MultiPASS C555 - -@@ -10988,6 +11111,9 @@ usb:v04A9p3233* - usb:v04A9p3234* - ID_MODEL_FROM_DATABASE=PowerShot SX150 IS - -+usb:v04A9p3235* -+ ID_MODEL_FROM_DATABASE=PowerShot ELPH 510 HS / IXUS 1100 HS -+ - usb:v04A9p3236* - ID_MODEL_FROM_DATABASE=PowerShot S100 - -@@ -11057,12 +11183,18 @@ usb:v04A9p325B* - usb:v04A9p325C* - ID_MODEL_FROM_DATABASE=PowerShot SX500 IS - -+usb:v04A9p325E* -+ ID_MODEL_FROM_DATABASE=PowerShot N -+ - usb:v04A9p325F* - ID_MODEL_FROM_DATABASE=PowerShot SX280 HS - - usb:v04A9p3260* - ID_MODEL_FROM_DATABASE=PowerShot SX270 HS - -+usb:v04A9p3261* -+ ID_MODEL_FROM_DATABASE=PowerShot A3500 IS -+ - usb:v04A9p3262* - ID_MODEL_FROM_DATABASE=PowerShot A2600 - -@@ -11087,6 +11219,15 @@ usb:v04A9p3277* - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -+usb:v04A9p3288* -+ ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 -+ -+usb:v04A9p3289* -+ ID_MODEL_FROM_DATABASE=PowerShot ELPH 340 HS / IXUS 265 HS -+ -+usb:v04A9p328A* -+ ID_MODEL_FROM_DATABASE=PowerShot ELPH 150 IS / IXUS 155 -+ - usb:v04AA* - ID_VENDOR_FROM_DATABASE=DaeWoo Telecom, Ltd - -@@ -11471,6 +11612,9 @@ usb:v04B4p2050* - usb:v04B4p2830* - ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) - -+usb:v04B4p4235* -+ ID_MODEL_FROM_DATABASE=Monitor 02 Driver -+ - usb:v04B4p4381* - ID_MODEL_FROM_DATABASE=SCAPS USC-1 Scanner Controller - -@@ -12407,6 +12551,9 @@ usb:v04C5p10AE* - usb:v04C5p10AF* - ID_MODEL_FROM_DATABASE=fi-4220C2 - -+usb:v04C5p10C7* -+ ID_MODEL_FROM_DATABASE=fi-60f scanner -+ - usb:v04C5p10E0* - ID_MODEL_FROM_DATABASE=fi-5120c Scanner - -@@ -12981,7 +13128,7 @@ usb:v04D9p2519* - ID_MODEL_FROM_DATABASE=Shenzhen LogoTech 2.4GHz receiver - - usb:v04D9p2832* -- ID_MODEL_FROM_DATABASE=1channel Telephone line recorder -+ ID_MODEL_FROM_DATABASE=HT82A832R Audio MCU - - usb:v04D9p2834* - ID_MODEL_FROM_DATABASE=HT82A834R Audio MCU -@@ -13070,6 +13217,9 @@ usb:v04DAp2374* - usb:v04DAp2451* - ID_MODEL_FROM_DATABASE=HDC-SD9 - -+usb:v04DAp245B* -+ ID_MODEL_FROM_DATABASE=HC-X920K (3MOS Full HD video camcorder) -+ - usb:v04DAp2497* - ID_MODEL_FROM_DATABASE=HDC-TM700 - -@@ -13535,6 +13685,9 @@ usb:v04E8p1006* - usb:v04E8p130C* - ID_MODEL_FROM_DATABASE=NX100 - -+usb:v04E8p1F05* -+ ID_MODEL_FROM_DATABASE=S2 Portable [JMicron] (500GB) -+ - usb:v04E8p1F06* - ID_MODEL_FROM_DATABASE=HX-MU064DA portable harddisk - -@@ -13670,6 +13823,9 @@ usb:v04E8p3310* - usb:v04E8p3315* - ID_MODEL_FROM_DATABASE=ML-2540 Series Laser Printer - -+usb:v04E8p331E* -+ ID_MODEL_FROM_DATABASE=M262x/M282x Xpress Series Laser Printer -+ - usb:v04E8p3409* - ID_MODEL_FROM_DATABASE=SCX-4216F Scanner - -@@ -13718,6 +13874,9 @@ usb:v04E8p3420* - usb:v04E8p3426* - ID_MODEL_FROM_DATABASE=SCX-4500 Laser Printer - -+usb:v04E8p342D* -+ ID_MODEL_FROM_DATABASE=SCX-4x28 Series -+ - usb:v04E8p344F* - ID_MODEL_FROM_DATABASE=SCX-3400 Series - -@@ -14058,7 +14217,7 @@ usb:v04E8p685B* - ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (mass storage mode) - - usb:v04E8p685C* -- ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] -+ ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] (Mass storage mode) - - usb:v04E8p685D* - ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (Download mode) -@@ -14067,7 +14226,10 @@ usb:v04E8p685E* - ID_MODEL_FROM_DATABASE=GT-I9100 / GT-C3350 Phones (USB Debugging mode) - - usb:v04E8p6860* -- ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] -+ ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] , GT-I9500 [Galaxy S 4] -+ -+usb:v04E8p6863* -+ ID_MODEL_FROM_DATABASE=GT-I9500 [Galaxy S4] / GT-I9250 [Galaxy Nexus] (network tethering) - - usb:v04E8p6865* - ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (PTP mode) -@@ -14075,6 +14237,9 @@ usb:v04E8p6865* - usb:v04E8p6866* - ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (debugging mode) - -+usb:v04E8p6868* -+ ID_MODEL_FROM_DATABASE=Escape Composite driver for Android Phones: Modem+Diagnostic+ADB -+ - usb:v04E8p6875* - ID_MODEL_FROM_DATABASE=GT-B3710 Standalone LTE device (Commercial) - -@@ -14342,6 +14507,12 @@ usb:v04F2pB057* - usb:v04F2pB059* - ID_MODEL_FROM_DATABASE=CKF7037 HP webcam - -+usb:v04F2pB064* -+ ID_MODEL_FROM_DATABASE=CNA7137 Integrated Webcam -+ -+usb:v04F2pB070* -+ ID_MODEL_FROM_DATABASE=Camera -+ - usb:v04F2pB071* - ID_MODEL_FROM_DATABASE=2.0M UVC Webcam / CNF7129 - -@@ -14411,6 +14582,9 @@ usb:v04F2pB2B0* - usb:v04F2pB2B9* - ID_MODEL_FROM_DATABASE=Lenovo Integrated Camera UVC - -+usb:v04F2pB2DA* -+ ID_MODEL_FROM_DATABASE=thinkpad t430s camera -+ - usb:v04F2pB2EA* - ID_MODEL_FROM_DATABASE=Integrated Camera [ThinkPad] - -@@ -14420,6 +14594,9 @@ usb:v04F2pB330* - usb:v04F2pB354* - ID_MODEL_FROM_DATABASE=UVC 1.00 device HD UVC WebCam - -+usb:v04F2pB394* -+ ID_MODEL_FROM_DATABASE=Integrated Camera -+ - usb:v04F3* - ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. - -@@ -15038,6 +15215,9 @@ usb:v04F9p01EB* - usb:v04F9p01F4* - ID_MODEL_FROM_DATABASE=MFC-5890CN - -+usb:v04F9p0217* -+ ID_MODEL_FROM_DATABASE=MFC-8480DN -+ - usb:v04F9p0223* - ID_MODEL_FROM_DATABASE=DCP-365CN - -@@ -15158,9 +15338,15 @@ usb:v04FCp5331* - usb:v04FCp5360* - ID_MODEL_FROM_DATABASE=Sunplus Generic Digital Camera - -+usb:v04FCp5563* -+ ID_MODEL_FROM_DATABASE=Digital Media Player MP3/WMA [The Sharper Image] -+ - usb:v04FCp5720* - ID_MODEL_FROM_DATABASE=Card Reader Driver - -+usb:v04FCp6333* -+ ID_MODEL_FROM_DATABASE=Siri A9 UVC chipset -+ - usb:v04FCp7333* - ID_MODEL_FROM_DATABASE=Finet Technology Palmpix DC-85 - -@@ -15239,6 +15425,18 @@ usb:v0502p3325* - usb:v0502p3341* - ID_MODEL_FROM_DATABASE=Iconia tablet A500 - -+usb:v0502p33C3* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 -+ -+usb:v0502p33C4* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode) -+ -+usb:v0502p33C7* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (USB tethering) -+ -+usb:v0502p33C8* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode, USB tethering) -+ - usb:v0502pD001* - ID_MODEL_FROM_DATABASE=Divio NW801/DVC-V6+ Digital Camera - -@@ -15446,6 +15644,9 @@ usb:v050Dp0416* - usb:v050Dp0551* - ID_MODEL_FROM_DATABASE=F6C550-AVR UPS - -+usb:v050Dp065A* -+ ID_MODEL_FROM_DATABASE=F8T065BF Mini Bluetooth 4.0 Adapter -+ - usb:v050Dp0706* - ID_MODEL_FROM_DATABASE=2-N-1 7-Port Hub (Lower half) - -@@ -15497,6 +15698,9 @@ usb:v050Dp2103* - usb:v050Dp21F1* - ID_MODEL_FROM_DATABASE=N300 WLAN N Adapter [ISY] - -+usb:v050Dp21F2* -+ ID_MODEL_FROM_DATABASE=RTL8192CU 802.11n WLAN Adapter [ISY IWL 4000] -+ - usb:v050Dp258A* - ID_MODEL_FROM_DATABASE=F5U258 Host to Host cable - -@@ -15728,6 +15932,9 @@ usb:v0525p1200* - usb:v0525p1265* - ID_MODEL_FROM_DATABASE=File-backed Storage Gadget - -+usb:v0525p3424* -+ ID_MODEL_FROM_DATABASE=Lumidigm Venus fingerprint sensor -+ - usb:v0525pA0F0* - ID_MODEL_FROM_DATABASE=Cambridge Electronic Devices Power1401 mk 2 - -@@ -16655,6 +16862,9 @@ usb:v054Cp035B* - usb:v054Cp035C* - ID_MODEL_FROM_DATABASE=NWZ-A726/A728/A729 - -+usb:v054Cp035F* -+ ID_MODEL_FROM_DATABASE=UP-DR200 Photo Printer -+ - usb:v054Cp0382* - ID_MODEL_FROM_DATABASE=Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1) - -@@ -16694,9 +16904,18 @@ usb:v054Cp0485* - usb:v054Cp04CB* - ID_MODEL_FROM_DATABASE=WALKMAN NWZ-E354 - -+usb:v054Cp0541* -+ ID_MODEL_FROM_DATABASE=DSC-HX100V [Cybershot Digital Still Camera] -+ -+usb:v054Cp0689* -+ ID_MODEL_FROM_DATABASE=Walkman NWZ-B173F -+ - usb:v054Cp06BB* - ID_MODEL_FROM_DATABASE=WALKMAN NWZ-F805 - -+usb:v054Cp088C* -+ ID_MODEL_FROM_DATABASE=Portable Headphone Amplifier -+ - usb:v054Cp1000* - ID_MODEL_FROM_DATABASE=Wireless Buzz! Receiver - -@@ -16721,6 +16940,12 @@ usb:v0550p0004* - usb:v0550p0005* - ID_MODEL_FROM_DATABASE=InkJet Color Printer - -+usb:v0550p000B* -+ ID_MODEL_FROM_DATABASE=Workcentre 24 -+ -+usb:v0550p014E* -+ ID_MODEL_FROM_DATABASE=CM215b Printer -+ - usb:v0551* - ID_VENDOR_FROM_DATABASE=CompuTrend Systems, Inc. - -@@ -17306,6 +17531,9 @@ usb:v056Ap0069* - usb:v056Ap0081* - ID_MODEL_FROM_DATABASE=Graphire Wireless 6x8 - -+usb:v056Ap0084* -+ ID_MODEL_FROM_DATABASE=Wireless adapter for Bamboo tablets -+ - usb:v056Ap0090* - ID_MODEL_FROM_DATABASE=TPC90 - -@@ -17372,6 +17600,9 @@ usb:v056Ap00D1* - usb:v056Ap00D3* - ID_MODEL_FROM_DATABASE=Bamboo Fun (CTH-661) - -+usb:v056Ap00D4* -+ ID_MODEL_FROM_DATABASE=Bamboo Pen (CTL-460) -+ - usb:v056Ap00D6* - ID_MODEL_FROM_DATABASE=Bamboo Pen & Touch (CTH-460) - -@@ -17390,6 +17621,12 @@ usb:v056Ap00F6* - usb:v056Ap00F8* - ID_MODEL_FROM_DATABASE=Cintiq 24HD touch (DTH-2400) tablet - -+usb:v056Ap0307* -+ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) tablet -+ -+usb:v056Ap0309* -+ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) touchscreen -+ - usb:v056Ap0400* - ID_MODEL_FROM_DATABASE=PenPartner 4x5 - -@@ -18719,6 +18956,9 @@ usb:v0586p341E* - usb:v0586p341F* - ID_MODEL_FROM_DATABASE=NWD2205 802.11n Wireless N Adapter [Realtek RTL8192CU] - -+usb:v0586p3425* -+ ID_MODEL_FROM_DATABASE=NWD6505 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] -+ - usb:v0586p343E* - ID_MODEL_FROM_DATABASE=N220 802.11bgn Wireless Adapter - -@@ -18737,9 +18977,15 @@ usb:v058A* - usb:v058B* - ID_VENDOR_FROM_DATABASE=Infineon Technologies - -+usb:v058Bp0015* -+ ID_MODEL_FROM_DATABASE=Flash Loader utility -+ - usb:v058Bp001C* - ID_MODEL_FROM_DATABASE=Flash Drive - -+usb:v058Bp0041* -+ ID_MODEL_FROM_DATABASE=Flash Loader utility -+ - usb:v058C* - ID_VENDOR_FROM_DATABASE=In Focus Systems - -@@ -18855,7 +19101,7 @@ usb:v058Fp6366* - ID_MODEL_FROM_DATABASE=Multi Flash Reader - - usb:v058Fp6377* -- ID_MODEL_FROM_DATABASE=Multimedia Card Reader -+ ID_MODEL_FROM_DATABASE=AU6375 4-LUN card reader - - usb:v058Fp6386* - ID_MODEL_FROM_DATABASE=Memory Card -@@ -18926,12 +19172,18 @@ usb:v058Fp9510* - usb:v058Fp9520* - ID_MODEL_FROM_DATABASE=EMV Certified Smart Card Reader - -+usb:v058Fp9540* -+ ID_MODEL_FROM_DATABASE=AU9540 Smartcard Reader -+ - usb:v058Fp9720* - ID_MODEL_FROM_DATABASE=USB-Serial Adapter - - usb:v058FpA014* - ID_MODEL_FROM_DATABASE=Asus Integrated Webcam - -+usb:v058FpB002* -+ ID_MODEL_FROM_DATABASE=Acer Integrated Webcam -+ - usb:v0590* - ID_VENDOR_FROM_DATABASE=Omron Corp. - -@@ -18983,6 +19235,9 @@ usb:v0596p0002* - usb:v0596p0500* - ID_MODEL_FROM_DATABASE=PCT Multitouch HID Controller - -+usb:v0596p0543* -+ ID_MODEL_FROM_DATABASE=DELL XPS touchscreen -+ - usb:v0597* - ID_VENDOR_FROM_DATABASE=Trisignal Communications - -@@ -19055,6 +19310,9 @@ usb:v059Bp0061* - usb:v059Bp006D* - ID_MODEL_FROM_DATABASE=HipZip MP3 Player - -+usb:v059Bp0070* -+ ID_MODEL_FROM_DATABASE=eGo Portable Hard Drive -+ - usb:v059Bp007C* - ID_MODEL_FROM_DATABASE=Ultra Max USB/1394 - -@@ -19163,9 +19421,15 @@ usb:v059Fp0323* - usb:v059Fp0421* - ID_MODEL_FROM_DATABASE=Big Disk G465 - -+usb:v059Fp0525* -+ ID_MODEL_FROM_DATABASE=BigDisk Extreme 500 -+ - usb:v059Fp0641* - ID_MODEL_FROM_DATABASE=Mobile Hard Drive - -+usb:v059Fp0829* -+ ID_MODEL_FROM_DATABASE=BigDisk Extreme+ -+ - usb:v059Fp100C* - ID_MODEL_FROM_DATABASE=Rugged Triple Interface Mobile Hard Drive - -@@ -19190,6 +19454,9 @@ usb:v059Fp1049* - usb:v059Fp1052* - ID_MODEL_FROM_DATABASE=P'9220 Mobile Drive - -+usb:v059Fp1064* -+ ID_MODEL_FROM_DATABASE=Rugged 16 and 32 GB -+ - usb:v059FpA601* - ID_MODEL_FROM_DATABASE=HardDrive - -@@ -19464,7 +19731,7 @@ usb:v05ACp0225* - ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (JIS) - - usb:v05ACp0229* -- ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ANSI) -+ ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (ANSI) - - usb:v05ACp022A* - ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ISO) -@@ -19545,7 +19812,7 @@ usb:v05ACp0302* - ID_MODEL_FROM_DATABASE=Optical Mouse [Fujitsu] - - usb:v05ACp0304* -- ID_MODEL_FROM_DATABASE=Optical USB Mouse [Mitsumi] -+ ID_MODEL_FROM_DATABASE=Mighty Mouse [Mitsumi, M1152] - - usb:v05ACp0306* - ID_MODEL_FROM_DATABASE=Optical USB Mouse [Fujitsu] -@@ -19577,6 +19844,9 @@ usb:v05ACp1003* - usb:v05ACp1006* - ID_MODEL_FROM_DATABASE=Hub in Aluminum Keyboard - -+usb:v05ACp1008* -+ ID_MODEL_FROM_DATABASE=Mini DisplayPort to Dual-Link DVI Adapter -+ - usb:v05ACp1101* - ID_MODEL_FROM_DATABASE=Speakers - -@@ -19670,6 +19940,9 @@ usb:v05ACp1265* - usb:v05ACp1266* - ID_MODEL_FROM_DATABASE=iPod Nano 6.Gen - -+usb:v05ACp1267* -+ ID_MODEL_FROM_DATABASE=iPod Nano 7.Gen -+ - usb:v05ACp1281* - ID_MODEL_FROM_DATABASE=Apple Mobile Device [Recovery Mode] - -@@ -19700,6 +19973,9 @@ usb:v05ACp1299* - usb:v05ACp129A* - ID_MODEL_FROM_DATABASE=iPad - -+usb:v05ACp129C* -+ ID_MODEL_FROM_DATABASE=iPhone 4(CDMA) -+ - usb:v05ACp129E* - ID_MODEL_FROM_DATABASE=iPod Touch 4.Gen - -@@ -19712,15 +19988,30 @@ usb:v05ACp12A0* - usb:v05ACp12A2* - ID_MODEL_FROM_DATABASE=iPad 2 (3G; 64GB) - -+usb:v05ACp12A3* -+ ID_MODEL_FROM_DATABASE=iPad 2 (CDMA) -+ -+usb:v05ACp12A4* -+ ID_MODEL_FROM_DATABASE=iPad 3 (wifi) -+ -+usb:v05ACp12A5* -+ ID_MODEL_FROM_DATABASE=iPad 3 (CDMA) -+ - usb:v05ACp12A6* - ID_MODEL_FROM_DATABASE=iPad 3 (3G, 16 GB) - -+usb:v05ACp12A8* -+ ID_MODEL_FROM_DATABASE=iPhone5/5C/5S -+ - usb:v05ACp12A9* - ID_MODEL_FROM_DATABASE=iPad 2 - - usb:v05ACp12AA* - ID_MODEL_FROM_DATABASE=iPod Touch 5.Gen [A1421] - -+usb:v05ACp12AB* -+ ID_MODEL_FROM_DATABASE=iPad 4 (WiFi, 32GB) -+ - usb:v05ACp1300* - ID_MODEL_FROM_DATABASE=iPod Shuffle - -@@ -19742,6 +20033,15 @@ usb:v05ACp1402* - usb:v05ACp1500* - ID_MODEL_FROM_DATABASE=SuperDrive [A1379] - -+usb:v05ACp8005* -+ ID_MODEL_FROM_DATABASE=OHCI Root Hub Simulation -+ -+usb:v05ACp8006* -+ ID_MODEL_FROM_DATABASE=EHCI Root Hub Simulation -+ -+usb:v05ACp8007* -+ ID_MODEL_FROM_DATABASE=XHCI Root Hub USB 2.0 Simulation -+ - usb:v05ACp8202* - ID_MODEL_FROM_DATABASE=HCF V.90 Data/Fax Modem - -@@ -19838,6 +20138,9 @@ usb:v05ACp8510* - usb:v05ACp911C* - ID_MODEL_FROM_DATABASE=Hub in A1082 [Cinema HD Display 23"] - -+usb:v05ACp9127* -+ ID_MODEL_FROM_DATABASE=Hub in Thunderbolt Display -+ - usb:v05ACp912F* - ID_MODEL_FROM_DATABASE=Hub in 30" Cinema Display - -@@ -20042,6 +20345,9 @@ usb:v05C6p9202* - usb:v05C6p9203* - ID_MODEL_FROM_DATABASE=Gobi Wireless Modem - -+usb:v05C6p9205* -+ ID_MODEL_FROM_DATABASE=Gobi 2000 -+ - usb:v05C6p9211* - ID_MODEL_FROM_DATABASE=Acer Gobi Wireless Modem (QDL mode) - -@@ -20123,9 +20429,18 @@ usb:v05C8p021A* - usb:v05C8p0318* - ID_MODEL_FROM_DATABASE=Webcam - -+usb:v05C8p0361* -+ ID_MODEL_FROM_DATABASE=SunplusIT INC. HP Truevision HD Webcam -+ -+usb:v05C8p036E* -+ ID_MODEL_FROM_DATABASE=Webcam -+ - usb:v05C8p0403* - ID_MODEL_FROM_DATABASE=Webcam - -+usb:v05C8p041B* -+ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam -+ - usb:v05C9* - ID_VENDOR_FROM_DATABASE=Semtech Corp. - -@@ -20861,6 +21176,9 @@ usb:v05DCp4D12* - usb:v05DCp4D30* - ID_MODEL_FROM_DATABASE=MP3 Player - -+usb:v05DCpA209* -+ ID_MODEL_FROM_DATABASE=JumpDrive S70 -+ - usb:v05DCpA300* - ID_MODEL_FROM_DATABASE=JumpDrive2 - -@@ -20921,6 +21239,9 @@ usb:v05DCpA701* - usb:v05DCpA731* - ID_MODEL_FROM_DATABASE=JumpDrive FireFly - -+usb:v05DCpA768* -+ ID_MODEL_FROM_DATABASE=JumpDrive Retrax -+ - usb:v05DCpA790* - ID_MODEL_FROM_DATABASE=JumpDrive 2GB - -@@ -20930,6 +21251,9 @@ usb:v05DCpA811* - usb:v05DCpA813* - ID_MODEL_FROM_DATABASE=16gB flash thumb drive - -+usb:v05DCpA815* -+ ID_MODEL_FROM_DATABASE=JumpDrive V10 -+ - usb:v05DCpB002* - ID_MODEL_FROM_DATABASE=USB CF Reader - -@@ -20939,6 +21263,9 @@ usb:v05DCpB018* - usb:v05DCpB047* - ID_MODEL_FROM_DATABASE=SDHC Reader [RW047-7000] - -+usb:v05DCpBA02* -+ ID_MODEL_FROM_DATABASE=Workflow CFR1 -+ - usb:v05DCpC753* - ID_MODEL_FROM_DATABASE=JumpDrive TwistTurn - -@@ -21084,7 +21411,7 @@ usb:v05E3p0607* - ID_MODEL_FROM_DATABASE=Logitech G110 Hub - - usb:v05E3p0608* -- ID_MODEL_FROM_DATABASE=USB-2.0 4-Port HUB -+ ID_MODEL_FROM_DATABASE=Hub - - usb:v05E3p0610* - ID_MODEL_FROM_DATABASE=4-port hub -@@ -21158,6 +21485,9 @@ usb:v05E3p0718* - usb:v05E3p0719* - ID_MODEL_FROM_DATABASE=SATA adapter - -+usb:v05E3p0722* -+ ID_MODEL_FROM_DATABASE=SD/MMC card reader -+ - usb:v05E3p0723* - ID_MODEL_FROM_DATABASE=GL827L SD/MMC/MS Flash Card Reader - -@@ -21170,9 +21500,18 @@ usb:v05E3p0727* - usb:v05E3p0731* - ID_MODEL_FROM_DATABASE=GL3310 SATA 3Gb/s Bridge Controller - -+usb:v05E3p0732* -+ ID_MODEL_FROM_DATABASE=All-in-One Cardreader -+ - usb:v05E3p0736* - ID_MODEL_FROM_DATABASE=microSD Reader/Writer - -+usb:v05E3p0741* -+ ID_MODEL_FROM_DATABASE=microSD Card Reader -+ -+usb:v05E3p0743* -+ ID_MODEL_FROM_DATABASE=SDXC and microSDXC CardReader -+ - usb:v05E3p0760* - ID_MODEL_FROM_DATABASE=USB 2.0 Card Reader/Writer - -@@ -21296,6 +21635,9 @@ usb:v05F3p0081* - usb:v05F3p00FF* - ID_MODEL_FROM_DATABASE=VEC Footpedal - -+usb:v05F3p0203* -+ ID_MODEL_FROM_DATABASE=Y-mouse Keyboard & Mouse Adapter -+ - usb:v05F3p020B* - ID_MODEL_FROM_DATABASE=PS2 Adapter - -@@ -21410,6 +21752,9 @@ usb:v05FEp0014* - usb:v05FEp1010* - ID_MODEL_FROM_DATABASE=Optical Wireless - -+usb:v05FEp2001* -+ ID_MODEL_FROM_DATABASE=Microsoft Wireless Receiver 700 -+ - usb:v05FF* - ID_VENDOR_FROM_DATABASE=LeCroy Corp. - -@@ -21434,6 +21779,9 @@ usb:v0603* - usb:v0603p00F1* - ID_MODEL_FROM_DATABASE=Keyboard - -+usb:v0603p00F2* -+ ID_MODEL_FROM_DATABASE=Keyboard (Labtec Ultra Flat Keyboard) -+ - usb:v0603p6871* - ID_MODEL_FROM_DATABASE=Mouse - -@@ -21491,6 +21839,9 @@ usb:v060Bp2231* - usb:v060Bp2270* - ID_MODEL_FROM_DATABASE=Gigabyte K8100 Aivia Gaming Keyboard - -+usb:v060Bp5253* -+ ID_MODEL_FROM_DATABASE=Thermaltake MEKA G-Unit Gaming Keyboard -+ - usb:v060Bp5811* - ID_MODEL_FROM_DATABASE=ACK-571U Wireless Keyboard - -@@ -21911,6 +22262,9 @@ usb:v064EpA110* - usb:v064EpA114* - ID_MODEL_FROM_DATABASE=Lemote Webcam - -+usb:v064EpA116* -+ ID_MODEL_FROM_DATABASE=UVC 1.3MPixel WebCam -+ - usb:v064EpA136* - ID_MODEL_FROM_DATABASE=Asus Integrated Webcam [CN031B] - -@@ -22893,7 +23247,7 @@ usb:v068Ep00F4* - ID_MODEL_FROM_DATABASE=Combatstick - - usb:v068Ep00FA* -- ID_MODEL_FROM_DATABASE=Flight Sim Pedals -+ ID_MODEL_FROM_DATABASE=Ch Throttle Quadrant - - usb:v068Ep00FF* - ID_MODEL_FROM_DATABASE=Flight Sim Yoke -@@ -22955,6 +23309,9 @@ usb:v0698p9999* - usb:v0699* - ID_VENDOR_FROM_DATABASE=Tektronix, Inc. - -+usb:v0699p0347* -+ ID_MODEL_FROM_DATABASE=AFG 3022B -+ - usb:v069A* - ID_VENDOR_FROM_DATABASE=Askey Computer Corp. - -@@ -23486,6 +23843,9 @@ usb:v06C2* - usb:v06C2p0030* - ID_MODEL_FROM_DATABASE=PhidgetRFID - -+usb:v06C2p0031* -+ ID_MODEL_FROM_DATABASE=RFID reader -+ - usb:v06C2p0038* - ID_MODEL_FROM_DATABASE=4-Motor PhidgetServo v3.0 - -@@ -23789,6 +24149,12 @@ usb:v06D3p0394* - usb:v06D3p03A1* - ID_MODEL_FROM_DATABASE=CP9550D/DW Port - -+usb:v06D3p3B30* -+ ID_MODEL_FROM_DATABASE=CP-D70DW / CP-D707DW -+ -+usb:v06D3p3B31* -+ ID_MODEL_FROM_DATABASE=CP-K60DW-S -+ - usb:v06D4* - ID_VENDOR_FROM_DATABASE=Cisco Systems - -@@ -24575,6 +24941,9 @@ usb:v072Fp1000* - usb:v072Fp1001* - ID_MODEL_FROM_DATABASE=PLDT Drive - -+usb:v072Fp2200* -+ ID_MODEL_FROM_DATABASE=ACR122U -+ - usb:v072Fp8002* - ID_MODEL_FROM_DATABASE=AET63 BioTRUSTKey - -@@ -25046,6 +25415,12 @@ usb:v0765* - usb:v0765p5001* - ID_MODEL_FROM_DATABASE=Huey PRO Colorimeter - -+usb:v0765p5020* -+ ID_MODEL_FROM_DATABASE=i1 Display Pro -+ -+usb:v0765p6003* -+ ID_MODEL_FROM_DATABASE=ColorMunki Smile -+ - usb:v0765pD094* - ID_MODEL_FROM_DATABASE=X-Rite DTP94 [Quato Silver Haze Pro] - -@@ -25325,12 +25700,24 @@ usb:v0781p5530* - usb:v0781p5567* - ID_MODEL_FROM_DATABASE=Cruzer Blade - -+usb:v0781p556C* -+ ID_MODEL_FROM_DATABASE=Ultra -+ -+usb:v0781p556D* -+ ID_MODEL_FROM_DATABASE=Memory Vault -+ - usb:v0781p5571* - ID_MODEL_FROM_DATABASE=Cruzer Fit - -+usb:v0781p5576* -+ ID_MODEL_FROM_DATABASE=Cruzer Facet -+ - usb:v0781p5580* - ID_MODEL_FROM_DATABASE=SDCZ80 Flash Drive - -+usb:v0781p5581* -+ ID_MODEL_FROM_DATABASE=Ultra -+ - usb:v0781p5E10* - ID_MODEL_FROM_DATABASE=Encrypted - -@@ -25830,7 +26217,7 @@ usb:v07AAp001A* - ID_MODEL_FROM_DATABASE=ULUSB-11 Key - - usb:v07AAp001C* -- ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] -+ ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] - - usb:v07AAp002E* - ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] -@@ -26114,6 +26501,9 @@ usb:v07B4p0114* - usb:v07B4p0118* - ID_MODEL_FROM_DATABASE=Mju Mini Digital/Mju Digital 500 Camera / Stylus 850 SW - -+usb:v07B4p0125* -+ ID_MODEL_FROM_DATABASE=Tough TG-1 Camera -+ - usb:v07B4p0184* - ID_MODEL_FROM_DATABASE=P-S100 port - -@@ -26441,6 +26831,9 @@ usb:v07C4pA400* - usb:v07C4pA600* - ID_MODEL_FROM_DATABASE=Card Reader - -+usb:v07C4pA604* -+ ID_MODEL_FROM_DATABASE=12-in-1 Card Reader -+ - usb:v07C4pAD01* - ID_MODEL_FROM_DATABASE=Mass Storage Device - -@@ -26474,6 +26867,9 @@ usb:v07C4pC010* - usb:v07C5* - ID_VENDOR_FROM_DATABASE=APG Cash Drawer - -+usb:v07C5p0500* -+ ID_MODEL_FROM_DATABASE=Cash Drawer -+ - usb:v07C6* - ID_VENDOR_FROM_DATABASE=ShareWave, Inc. - -@@ -27140,6 +27536,9 @@ usb:v0803* - usb:v0803p1300* - ID_MODEL_FROM_DATABASE=V92 Faxmodem - -+usb:v0803p3095* -+ ID_MODEL_FROM_DATABASE=V.92 56K Mini External Modem Model 3095 -+ - usb:v0803p4310* - ID_MODEL_FROM_DATABASE=4410a Wireless-G Adapter [Intersil ISL3887] - -@@ -27713,6 +28112,9 @@ usb:v0846p9018* - usb:v0846p9020* - ID_MODEL_FROM_DATABASE=WNA3100(v1) Wireless-N 300 [Broadcom BCM43231] - -+usb:v0846p9021* -+ ID_MODEL_FROM_DATABASE=WNA3100M(v1) Wireless-N 300 [Realtek RTL8192CU] -+ - usb:v0846p9030* - ID_MODEL_FROM_DATABASE=WNA1100 Wireless-N 150 [Atheros AR9271] - -@@ -27722,9 +28124,21 @@ usb:v0846p9040* - usb:v0846p9041* - ID_MODEL_FROM_DATABASE=WNA1000M 802.11bgn [Realtek RTL8188CUS] - -+usb:v0846p9042* -+ ID_MODEL_FROM_DATABASE=On Networks N150MA 802.11bgn [Realtek RTL8188CUS] -+ -+usb:v0846p9050* -+ ID_MODEL_FROM_DATABASE=A6200 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] -+ -+usb:v0846p9052* -+ ID_MODEL_FROM_DATABASE=A6100 AC600 DB Wireless Adapter [Realtek RTL8811AU] -+ - usb:v0846pA001* - ID_MODEL_FROM_DATABASE=PA101 10 Mbps HPNA Home Phoneline RJ-1 - -+usb:v0846pF001* -+ ID_MODEL_FROM_DATABASE=On Networks N300MA 802.11bgn [Realtek RTL8192CU] -+ - usb:v084D* - ID_VENDOR_FROM_DATABASE=Minton Optic Industry Co., Inc. - -@@ -27875,8 +28289,17 @@ usb:v085Ap8027* - usb:v085C* - ID_VENDOR_FROM_DATABASE=ColorVision, Inc. - -+usb:v085Cp0100* -+ ID_MODEL_FROM_DATABASE=Spyder 1 -+ - usb:v085Cp0200* -- ID_MODEL_FROM_DATABASE=Monitor Spyder -+ ID_MODEL_FROM_DATABASE=Spyder 2 -+ -+usb:v085Cp0300* -+ ID_MODEL_FROM_DATABASE=Spyder 3 -+ -+usb:v085Cp0400* -+ ID_MODEL_FROM_DATABASE=Spyder 4 - - usb:v0862* - ID_VENDOR_FROM_DATABASE=Teletrol Systems, Inc. -@@ -28127,6 +28550,12 @@ usb:v0892* - usb:v0892p0101* - ID_MODEL_FROM_DATABASE=Smartdio Reader/Writer - -+usb:v0894* -+ ID_VENDOR_FROM_DATABASE=TSI Incorporated -+ -+usb:v0894p0010* -+ ID_MODEL_FROM_DATABASE=Remote NDIS Network Device -+ - usb:v0897* - ID_VENDOR_FROM_DATABASE=Lauterbach - -@@ -28181,6 +28610,18 @@ usb:v08A9p0015* - usb:v08AE* - ID_VENDOR_FROM_DATABASE=Macally (Mace Group, Inc.) - -+usb:v08B0* -+ ID_VENDOR_FROM_DATABASE=Metrohm -+ -+usb:v08B0p0006* -+ ID_MODEL_FROM_DATABASE=814 Sample Processor -+ -+usb:v08B0p0015* -+ ID_MODEL_FROM_DATABASE=857 Titrando -+ -+usb:v08B0p001A* -+ ID_MODEL_FROM_DATABASE=852 Titrando -+ - usb:v08B4* - ID_VENDOR_FROM_DATABASE=Sorenson Vision, Inc. - -@@ -29036,6 +29477,12 @@ usb:v0906* - usb:v0908* - ID_VENDOR_FROM_DATABASE=Siemens AG - -+usb:v0908p01F4* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5711 -+ -+usb:v0908p01FE* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET PC Adapter A2 -+ - usb:v0908p2701* - ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA - -@@ -29285,12 +29732,18 @@ usb:v091Ep23CC* - usb:v091Ep2459* - ID_MODEL_FROM_DATABASE=GPSmap 62/78 series - -+usb:v091Ep2491* -+ ID_MODEL_FROM_DATABASE=Edge 800 -+ - usb:v091Ep2519* - ID_MODEL_FROM_DATABASE=eTrex 30 - - usb:v091Ep2535* - ID_MODEL_FROM_DATABASE=Edge 800 - -+usb:v091Ep253C* -+ ID_MODEL_FROM_DATABASE=GPSmap 62sc -+ - usb:v091Ep255B* - ID_MODEL_FROM_DATABASE=Nuvi 2505LM - -@@ -29315,12 +29768,18 @@ usb:v0922p0007* - usb:v0922p0009* - ID_MODEL_FROM_DATABASE=LabelWriter 310 - -+usb:v0922p0019* -+ ID_MODEL_FROM_DATABASE=LabelWriter 400 -+ - usb:v0922p001A* - ID_MODEL_FROM_DATABASE=LabelWriter 400 Turbo - - usb:v0922p0020* - ID_MODEL_FROM_DATABASE=LabelWriter 450 - -+usb:v0922p1001* -+ ID_MODEL_FROM_DATABASE=LabelManager PnP -+ - usb:v0923* - ID_VENDOR_FROM_DATABASE=IC Media Corp. - -@@ -29363,6 +29822,9 @@ usb:v0925* - usb:v0925p0005* - ID_MODEL_FROM_DATABASE=Gamtec.,Ltd SmartJoy PLUS Adapter - -+usb:v0925p03E8* -+ ID_MODEL_FROM_DATABASE=Wii Classic Controller Adapter -+ - usb:v0925p3881* - ID_MODEL_FROM_DATABASE=Saleae Logic - -@@ -29417,6 +29879,9 @@ usb:v0930p000C* - usb:v0930p0010* - ID_MODEL_FROM_DATABASE=Gigabeat S (mtp) - -+usb:v0930p0200* -+ ID_MODEL_FROM_DATABASE=Integrated Bluetooth (Taiyo Yuden) -+ - usb:v0930p0301* - ID_MODEL_FROM_DATABASE=PCX1100U Cable Modem (WDM) - -@@ -29483,6 +29948,9 @@ usb:v0930p070B* - usb:v0930p0A07* - ID_MODEL_FROM_DATABASE=WLM-10U1 802.11abgn Wireless Adapter [Ralink RT3572] - -+usb:v0930p0A13* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Toshiba] -+ - usb:v0930p0B05* - ID_MODEL_FROM_DATABASE=PX1220E-1G25 External hard drive - -@@ -29691,7 +30159,7 @@ usb:v0939* - ID_VENDOR_FROM_DATABASE=Lumberg, Inc. - - usb:v0939p0B15* -- ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 1TB (PX1710E-1HJ0) -+ ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 - - usb:v093A* - ID_VENDOR_FROM_DATABASE=Pixart Imaging, Inc. -@@ -29753,6 +30221,9 @@ usb:v093Ap260F* - usb:v093Ap2621* - ID_MODEL_FROM_DATABASE=PAC731x Trust Webcam - -+usb:v093Ap2622* -+ ID_MODEL_FROM_DATABASE=Webcam Genius -+ - usb:v093Ap2624* - ID_MODEL_FROM_DATABASE=Webcam - -@@ -29951,6 +30422,9 @@ usb:v0951p1653* - usb:v0951p1656* - ID_MODEL_FROM_DATABASE=DataTraveler Ultimate G2 - -+usb:v0951p1665* -+ ID_MODEL_FROM_DATABASE=Digital DataTraveler SE9 64GB -+ - usb:v0951p1689* - ID_MODEL_FROM_DATABASE=DataTraveler SE9 - -@@ -29993,6 +30467,9 @@ usb:v0957p0200* - usb:v0957p0202* - ID_MODEL_FROM_DATABASE=E-Video DC-350 Camera - -+usb:v0957p0407* -+ ID_MODEL_FROM_DATABASE=33220A Waveform Generator -+ - usb:v0957p0518* - ID_MODEL_FROM_DATABASE=82357B GPIB Interface - -@@ -30033,7 +30510,7 @@ usb:v095Dp0001* - ID_MODEL_FROM_DATABASE=Polycom ViaVideo - - usb:v0967* -- ID_VENDOR_FROM_DATABASE=Acer (??) -+ ID_VENDOR_FROM_DATABASE=Acer NeWeb Corp. - - usb:v0967p0204* - ID_MODEL_FROM_DATABASE=WarpLink 802.11b Adapter -@@ -30056,6 +30533,12 @@ usb:v096Ep0807* - usb:v0971* - ID_VENDOR_FROM_DATABASE=Gretag-Macbeth AG - -+usb:v0971p2000* -+ ID_MODEL_FROM_DATABASE=i1 Pro -+ -+usb:v0971p2001* -+ ID_MODEL_FROM_DATABASE=i1 Monitor -+ - usb:v0971p2003* - ID_MODEL_FROM_DATABASE=Eye-One display - -@@ -30063,7 +30546,7 @@ usb:v0971p2005* - ID_MODEL_FROM_DATABASE=Huey - - usb:v0971p2007* -- ID_MODEL_FROM_DATABASE=ColorMunki -+ ID_MODEL_FROM_DATABASE=ColorMunki Photo - - usb:v0973* - ID_VENDOR_FROM_DATABASE=Schlumberger -@@ -30182,6 +30665,9 @@ usb:v099Ap0638* - usb:v099Ap610C* - ID_MODEL_FROM_DATABASE=EL-610 Super Mini Electron luminescent Keyboard - -+usb:v099Ap713A* -+ ID_MODEL_FROM_DATABASE=WK-713 Multimedia Keyboard -+ - usb:v099Ap7160* - ID_MODEL_FROM_DATABASE=Hyper Slim Keyboard - -@@ -30375,7 +30861,10 @@ usb:v09D3* - ID_VENDOR_FROM_DATABASE=Com One - - usb:v09D3p0001* -- ID_MODEL_FROM_DATABASE=ISDN TA -+ ID_MODEL_FROM_DATABASE=ISDN TA / Light Rider 128K -+ -+usb:v09D3p000B* -+ ID_MODEL_FROM_DATABASE=Bluetooth Adapter class 1 [BlueLight] - - usb:v09D7* - ID_VENDOR_FROM_DATABASE=Novatel Wireless -@@ -30596,6 +31085,12 @@ usb:v0A07p00DA* - usb:v0A0B* - ID_VENDOR_FROM_DATABASE=Cybex Computer Products Co. - -+usb:v0A0D* -+ ID_VENDOR_FROM_DATABASE=Servergy, Inc -+ -+usb:v0A0Dp2514* -+ ID_MODEL_FROM_DATABASE=CTS-1000 Internal Hub -+ - usb:v0A11* - ID_VENDOR_FROM_DATABASE=Xentec, Inc. - -@@ -30887,6 +31382,9 @@ usb:v0A48p5024* - usb:v0A48p5025* - ID_MODEL_FROM_DATABASE=Mass Storage Device - -+usb:v0A4A* -+ ID_VENDOR_FROM_DATABASE=Ploytec GmbH -+ - usb:v0A4B* - ID_VENDOR_FROM_DATABASE=Fujitsu Media Devices, Ltd - -@@ -31217,6 +31715,9 @@ usb:v0A5CpBD11* - usb:v0A5CpBD13* - ID_MODEL_FROM_DATABASE=BCM4323 802.11abgn Wireless Adapter - -+usb:v0A5CpBD16* -+ ID_MODEL_FROM_DATABASE=BCM4319 802.11bgn Wireless Adapter -+ - usb:v0A5CpBD17* - ID_MODEL_FROM_DATABASE=BCM43236 802.11abgn Wireless Adapter - -@@ -31775,6 +32276,9 @@ usb:v0AC8pC33F* - usb:v0AC8pC429* - ID_MODEL_FROM_DATABASE=Lenovo ThinkCentre Web Camera - -+usb:v0AC8pC42D* -+ ID_MODEL_FROM_DATABASE=Lenovo IdeaCentre Web Camera -+ - usb:v0AC9* - ID_VENDOR_FROM_DATABASE=Micro Solutions, Inc. - -@@ -31823,6 +32327,9 @@ usb:v0ACDp0630* - usb:v0ACDp0810* - ID_MODEL_FROM_DATABASE=SecurePIN (IDPA-506100Y) PIN Pad - -+usb:v0ACDp2030* -+ ID_MODEL_FROM_DATABASE=ValueMag Magnetic Stripe Reader -+ - usb:v0ACE* - ID_VENDOR_FROM_DATABASE=ZyDAS - -@@ -32024,6 +32531,12 @@ usb:v0AF9p0010* - usb:v0AF9p0011* - ID_MODEL_FROM_DATABASE=Micro Innovations IC50C Webcam - -+usb:v0AFA* -+ ID_VENDOR_FROM_DATABASE=DMC Co., Ltd. -+ -+usb:v0AFAp07D2* -+ ID_MODEL_FROM_DATABASE=Controller Board for Projected Capacitive Touch Screen DUS3000 -+ - usb:v0AFC* - ID_VENDOR_FROM_DATABASE=Zaptronix Ltd - -@@ -32042,6 +32555,9 @@ usb:v0B00* - usb:v0B05* - ID_VENDOR_FROM_DATABASE=ASUSTek Computer, Inc. - -+usb:v0B05p0001* -+ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (CD-ROM mode) -+ - usb:v0B05p1101* - ID_MODEL_FROM_DATABASE=Mass Storage (UISDMC4S) - -@@ -32147,6 +32663,9 @@ usb:v0B05p1784* - usb:v0B05p1786* - ID_MODEL_FROM_DATABASE=USB-N10 802.11n Network Adapter [Realtek RTL8188SU] - -+usb:v0B05p1788* -+ ID_MODEL_FROM_DATABASE=BT-270 Bluetooth Adapter -+ - usb:v0B05p1791* - ID_MODEL_FROM_DATABASE=WL-167G v3 802.11n Adapter [Realtek RTL8188SU] - -@@ -32159,12 +32678,18 @@ usb:v0B05p179E* - usb:v0B05p179F* - ID_MODEL_FROM_DATABASE=Eee Note EA800 (tablet mode) - -+usb:v0B05p17A0* -+ ID_MODEL_FROM_DATABASE=Xonar U3 sound card -+ - usb:v0B05p17A1* - ID_MODEL_FROM_DATABASE=Eee Note EA800 (mass storage mode) - - usb:v0B05p17AB* - ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] - -+usb:v0B05p17C9* -+ ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] -+ - usb:v0B05p4C80* - ID_MODEL_FROM_DATABASE=Transformer Pad TF300TG - -@@ -32183,6 +32708,12 @@ usb:v0B05p4D01* - usb:v0B05p4DAF* - ID_MODEL_FROM_DATABASE=Transformer Pad Infinity TF700 (Fastboot) - -+usb:v0B05p5410* -+ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (MTP mode) -+ -+usb:v0B05p5412* -+ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) -+ - usb:v0B05p6101* - ID_MODEL_FROM_DATABASE=Cable Modem - -@@ -32228,9 +32759,15 @@ usb:v0B0E* - usb:v0B0Ep0420* - ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 - -+usb:v0B0Ep094D* -+ ID_MODEL_FROM_DATABASE=GN Netcom / Jabra REVO Wireless -+ - usb:v0B0Ep1022* - ID_MODEL_FROM_DATABASE=Jabra PRO 9450, Type 9400BS (DECT Headset) - -+usb:v0B0Ep2007* -+ ID_MODEL_FROM_DATABASE=GN 2000 Stereo Corded Headset -+ - usb:v0B0Ep620C* - ID_MODEL_FROM_DATABASE=Jabra BT620s - -@@ -32291,6 +32828,9 @@ usb:v0B33* - usb:v0B33p0020* - ID_MODEL_FROM_DATABASE=ShuttleXpress - -+usb:v0B33p0700* -+ ID_MODEL_FROM_DATABASE=RollerMouse Pro -+ - usb:v0B37* - ID_VENDOR_FROM_DATABASE=Hitachi ULSI Systems Co., Ltd - -@@ -32687,6 +33227,9 @@ usb:v0B95p1720* - usb:v0B95p1780* - ID_MODEL_FROM_DATABASE=AX88178 - -+usb:v0B95p1790* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet -+ - usb:v0B95p7720* - ID_MODEL_FROM_DATABASE=AX88772 - -@@ -32786,6 +33329,9 @@ usb:v0BAFp011B* - usb:v0BAFp0121* - ID_MODEL_FROM_DATABASE=USR5423 802.11bg Wireless Adapter [ZyDAS ZD1211B] - -+usb:v0BAFp0303* -+ ID_MODEL_FROM_DATABASE=USR5637 56K Faxmodem -+ - usb:v0BAFp6112* - ID_MODEL_FROM_DATABASE=FaxModem Model 5633 - -@@ -33332,6 +33878,9 @@ usb:v0BB4p0C01* - usb:v0BB4p0C02* - ID_MODEL_FROM_DATABASE=Dream / ADP1 / G1 / Magic / Tattoo (Debug) - -+usb:v0BB4p0C03* -+ ID_MODEL_FROM_DATABASE=Android Phone [Fairphone First Edition (FP1)] -+ - usb:v0BB4p0C13* - ID_MODEL_FROM_DATABASE=Diamond - -@@ -33371,6 +33920,12 @@ usb:v0BB4p0CA2* - usb:v0BB4p0CA5* - ID_MODEL_FROM_DATABASE=Android Phone [Evo Shift 4G] - -+usb:v0BB4p0CAE* -+ ID_MODEL_FROM_DATABASE=T-Mobile MyTouch 4G Slide [Doubleshot] -+ -+usb:v0BB4p0DEA* -+ ID_MODEL_FROM_DATABASE=M7_UL [HTC One] -+ - usb:v0BB4p0FF8* - ID_MODEL_FROM_DATABASE=Desire HD (Tethering Mode) - -@@ -33443,18 +33998,33 @@ usb:v0BC2p2320* - usb:v0BC2p3008* - ID_MODEL_FROM_DATABASE=FreeAgent Desk 1TB - -+usb:v0BC2p3101* -+ ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB -+ -+usb:v0BC2p3312* -+ ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] -+ - usb:v0BC2p3320* - ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] - - usb:v0BC2p3332* - ID_MODEL_FROM_DATABASE=Expansion - -+usb:v0BC2p5020* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex -+ - usb:v0BC2p5021* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 2.0 - -+usb:v0BC2p5030* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Upgrade Cable STAE104 -+ - usb:v0BC2p5031* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 3.0 - -+usb:v0BC2p5070* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk -+ - usb:v0BC2p50A1* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk - -@@ -33476,6 +34046,9 @@ usb:v0BC2pA0A1* - usb:v0BC2pA0A4* - ID_MODEL_FROM_DATABASE=Backup Plus Desktop Drive - -+usb:v0BC2pAB00* -+ ID_MODEL_FROM_DATABASE=Slim Portable Drive -+ - usb:v0BC3* - ID_VENDOR_FROM_DATABASE=IPWireless, Inc. - -@@ -33650,6 +34223,12 @@ usb:v0BDAp0184* - usb:v0BDAp0186* - ID_MODEL_FROM_DATABASE=Card Reader - -+usb:v0BDAp0301* -+ ID_MODEL_FROM_DATABASE=multicard reader -+ -+usb:v0BDAp1724* -+ ID_MODEL_FROM_DATABASE=RTL8723AU 802.11n WLAN Adapter -+ - usb:v0BDAp2831* - ID_MODEL_FROM_DATABASE=RTL2831U DVB-T - -@@ -33707,6 +34286,9 @@ usb:v0BDAp8198* - usb:v0BDAp8199* - ID_MODEL_FROM_DATABASE=RTL8187SU 802.11g WLAN Adapter - -+usb:v0BDAp8812* -+ ID_MODEL_FROM_DATABASE=RTL8812AU 802.11a/b/g/n/ac WLAN Adapter -+ - usb:v0BDB* - ID_VENDOR_FROM_DATABASE=Ericsson Business Mobile Networks BV - -@@ -34038,7 +34620,7 @@ usb:v0C24p0019* - ID_MODEL_FROM_DATABASE=Bluetooth Device - - usb:v0C24p0021* -- ID_MODEL_FROM_DATABASE=Bluetooth Device -+ ID_MODEL_FROM_DATABASE=Bluetooth Device (V2.1+EDR) - - usb:v0C24p0C24* - ID_MODEL_FROM_DATABASE=Bluetooth Device(SAMPLE) -@@ -34142,6 +34724,9 @@ usb:v0C45* - usb:v0C45p0011* - ID_MODEL_FROM_DATABASE=EBUDDY - -+usb:v0C45p0520* -+ ID_MODEL_FROM_DATABASE=MaxTrack Wireless Mouse -+ - usb:v0C45p1018* - ID_MODEL_FROM_DATABASE=Compact Flash storage memory card reader - -@@ -34496,9 +35081,15 @@ usb:v0C45p62C0* - usb:v0C45p62E0* - ID_MODEL_FROM_DATABASE=MSI Starcam Racer - -+usb:v0C45p6300* -+ ID_MODEL_FROM_DATABASE=PC Microscope camera -+ - usb:v0C45p6310* - ID_MODEL_FROM_DATABASE=Sonix USB 2.0 Camera - -+usb:v0C45p6340* -+ ID_MODEL_FROM_DATABASE=Camera -+ - usb:v0C45p6341* - ID_MODEL_FROM_DATABASE=Defender G-Lens 2577 HD720p Camera - -@@ -34526,6 +35117,12 @@ usb:v0C45p6419* - usb:v0C45p641D* - ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam - -+usb:v0C45p643F* -+ ID_MODEL_FROM_DATABASE=Dell Integrated HD Webcam -+ -+usb:v0C45p644D* -+ ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam -+ - usb:v0C45p6480* - ID_MODEL_FROM_DATABASE=Sonix 1.3 MP Laptop Integrated Webcam - -@@ -34535,6 +35132,9 @@ usb:v0C45p648B* - usb:v0C45p64BD* - ID_MODEL_FROM_DATABASE=Sony Visual Communication Camera - -+usb:v0C45p7401* -+ ID_MODEL_FROM_DATABASE=TEMPer Temperature Sensor -+ - usb:v0C45p7402* - ID_MODEL_FROM_DATABASE=TEMPerHUM Temperature & Humidity Sensor - -@@ -35390,6 +35990,9 @@ usb:v0CF3p3000* - usb:v0CF3p3002* - ID_MODEL_FROM_DATABASE=AR3011 Bluetooth - -+usb:v0CF3p3004* -+ ID_MODEL_FROM_DATABASE=AR3012 Bluetooth 4.0 -+ - usb:v0CF3p3005* - ID_MODEL_FROM_DATABASE=AR3011 Bluetooth - -@@ -35564,6 +36167,15 @@ usb:v0D35* - usb:v0D3A* - ID_VENDOR_FROM_DATABASE=Posiflex Technologies, Inc. - -+usb:v0D3Ap0206* -+ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer -+ -+usb:v0D3Ap0207* -+ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer -+ -+usb:v0D3Ap0500* -+ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader -+ - usb:v0D3C* - ID_VENDOR_FROM_DATABASE=Sri Cable Technology, Ltd - -@@ -35573,6 +36185,9 @@ usb:v0D3D* - usb:v0D3Dp0001* - ID_MODEL_FROM_DATABASE=HID Keyboard - -+usb:v0D3Dp0040* -+ ID_MODEL_FROM_DATABASE=PS/2 Adapter -+ - usb:v0D3E* - ID_VENDOR_FROM_DATABASE=Fitcom, inc. - -@@ -35651,6 +36266,9 @@ usb:v0D49p7010* - usb:v0D49p7100* - ID_MODEL_FROM_DATABASE=OneTouch II 300GB External Hard Disk - -+usb:v0D49p7310* -+ ID_MODEL_FROM_DATABASE=OneTouch 4 -+ - usb:v0D49p7410* - ID_MODEL_FROM_DATABASE=Mobile Hard Disk Drive (1TB) - -@@ -35858,6 +36476,9 @@ usb:v0D78* - usb:v0D7A* - ID_VENDOR_FROM_DATABASE=MARX Datentechnik GmbH - -+usb:v0D7Ap0001* -+ ID_MODEL_FROM_DATABASE=CrypToken -+ - usb:v0D7B* - ID_VENDOR_FROM_DATABASE=Wellco Technology Co., Ltd - -@@ -36404,6 +37025,12 @@ usb:v0DB7* - usb:v0DB7p0002* - ID_MODEL_FROM_DATABASE=Goldpfeil P-LAN - -+usb:v0DBA* -+ ID_VENDOR_FROM_DATABASE=Digidesign -+ -+usb:v0DBAp3000* -+ ID_MODEL_FROM_DATABASE=Mbox 2 -+ - usb:v0DBC* - ID_VENDOR_FROM_DATABASE=A&D Medical - -@@ -36776,6 +37403,9 @@ usb:v0DF6p0060* - usb:v0DF6p0062* - ID_MODEL_FROM_DATABASE=WLA-5000 802.11abgn [Ralink RT3572] - -+usb:v0DF6p0072* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Sitecom] -+ - usb:v0DF6p061C* - ID_MODEL_FROM_DATABASE=LN-028 Network USB 2.0 Adapter - -@@ -37253,6 +37883,9 @@ usb:v0E79p14AD* - usb:v0E79p150E* - ID_MODEL_FROM_DATABASE=80 G9 - -+usb:v0E79p3001* -+ ID_MODEL_FROM_DATABASE=40 Titanium -+ - usb:v0E7B* - ID_VENDOR_FROM_DATABASE=On-Tech Industry Co., Ltd - -@@ -37292,9 +37925,15 @@ usb:v0E8Dp1806* - usb:v0E8Dp1836* - ID_MODEL_FROM_DATABASE=Samsung SE-S084 Super WriteMaster Slim External DVD writer - -+usb:v0E8Dp2000* -+ ID_MODEL_FROM_DATABASE=MT65xx Preloader -+ - usb:v0E8Dp3329* - ID_MODEL_FROM_DATABASE=Qstarz BT-Q1000XT - -+usb:v0E8Dp763E* -+ ID_MODEL_FROM_DATABASE=MT7630e Bluetooth Adapter -+ - usb:v0E8F* - ID_VENDOR_FROM_DATABASE=GreenAsia Inc. - -@@ -37302,7 +37941,7 @@ usb:v0E8Fp0003* - ID_MODEL_FROM_DATABASE=MaxFire Blaze2 - - usb:v0E8Fp0012* -- ID_MODEL_FROM_DATABASE=USB Wireless 2.4GHz Gamepad -+ ID_MODEL_FROM_DATABASE=Joystick/Gamepad - - usb:v0E8Fp0016* - ID_MODEL_FROM_DATABASE=4 port USB 1.1 hub UH-174 -@@ -37436,9 +38075,18 @@ usb:v0EB7* - usb:v0EB8* - ID_VENDOR_FROM_DATABASE=Mettler Toledo - -+usb:v0EB8p2200* -+ ID_MODEL_FROM_DATABASE=Ariva Scale -+ - usb:v0EB8pF000* - ID_MODEL_FROM_DATABASE=PS60 Scale - -+usb:v0EBB* -+ ID_VENDOR_FROM_DATABASE=Thermo Fisher Scientific -+ -+usb:v0EBBp0002* -+ ID_MODEL_FROM_DATABASE=FT-IR Spectrometer -+ - usb:v0EBE* - ID_VENDOR_FROM_DATABASE=VWeb Corp. - -@@ -37559,6 +38207,12 @@ usb:v0EEFp0001* - usb:v0EEFp0002* - ID_MODEL_FROM_DATABASE=Touchscreen Controller(Professional) - -+usb:v0EEFp7200* -+ ID_MODEL_FROM_DATABASE=Touchscreen Controller -+ -+usb:v0EEFpA802* -+ ID_MODEL_FROM_DATABASE=eGalaxTouch EXC7920 -+ - usb:v0EF0* - ID_VENDOR_FROM_DATABASE=Hitachi Cable, Ltd - -@@ -37670,6 +38324,12 @@ usb:v0F12* - usb:v0F13* - ID_VENDOR_FROM_DATABASE=Acetek Technology Co., Ltd - -+usb:v0F14* -+ ID_VENDOR_FROM_DATABASE=Ingenico -+ -+usb:v0F14p0012* -+ ID_MODEL_FROM_DATABASE=Vital'Act 3S -+ - usb:v0F18* - ID_VENDOR_FROM_DATABASE=Finger Lakes Instrumentation - -@@ -37754,6 +38414,12 @@ usb:v0F37* - usb:v0F38* - ID_VENDOR_FROM_DATABASE=Nien-Yi Industrial Corp. - -+usb:v0F39* -+ ID_VENDOR_FROM_DATABASE=TG3 Electronics -+ -+usb:v0F39p0876* -+ ID_MODEL_FROM_DATABASE=Keyboard [87 Francium Pro] -+ - usb:v0F3D* - ID_VENDOR_FROM_DATABASE=Airprime, Incorporated - -@@ -37841,6 +38507,9 @@ usb:v0F63* - usb:v0F63p0010* - ID_MODEL_FROM_DATABASE=Leapster Explorer - -+usb:v0F63p0022* -+ ID_MODEL_FROM_DATABASE=Leap Reader -+ - usb:v0F63p0500* - ID_MODEL_FROM_DATABASE=Fly Fusion - -@@ -37928,6 +38597,9 @@ usb:v0F6Ep0404* - usb:v0F73* - ID_VENDOR_FROM_DATABASE=DFI - -+usb:v0F78* -+ ID_VENDOR_FROM_DATABASE=Guntermann & Drunck GmbH -+ - usb:v0F7C* - ID_VENDOR_FROM_DATABASE=DQ Technology, Inc. - -@@ -38064,7 +38736,7 @@ usb:v0FCAp8001* - ID_MODEL_FROM_DATABASE=Blackberry Handheld - - usb:v0FCAp8004* -- ID_MODEL_FROM_DATABASE=Blackberry Handheld -+ ID_MODEL_FROM_DATABASE=Blackberry - - usb:v0FCAp8007* - ID_MODEL_FROM_DATABASE=Blackberry Handheld -@@ -38147,6 +38819,12 @@ usb:v0FCEp3138* - usb:v0FCEp3149* - ID_MODEL_FROM_DATABASE=Xperia X8 - -+usb:v0FCEp514F* -+ ID_MODEL_FROM_DATABASE=Xperia arc S [Adb-Enable Mode] -+ -+usb:v0FCEp5169* -+ ID_MODEL_FROM_DATABASE=Xperia S [Adb-Enable Mode] -+ - usb:v0FCEp5177* - ID_MODEL_FROM_DATABASE=Xperia Ion [Debug Mode] - -@@ -38309,6 +38987,9 @@ usb:v0FCEpE166* - usb:v0FCEpE167* - ID_MODEL_FROM_DATABASE=XPERIA mini - -+usb:v0FCEpF0FA* -+ ID_MODEL_FROM_DATABASE=Liveview micro display MN800 in DFU mode -+ - usb:v0FCF* - ID_VENDOR_FROM_DATABASE=Dynastream Innovations, Inc. - -@@ -38316,13 +38997,16 @@ usb:v0FCFp1003* - ID_MODEL_FROM_DATABASE=ANT Development Board - - usb:v0FCFp1004* -- ID_MODEL_FROM_DATABASE=ANT2USB -+ ID_MODEL_FROM_DATABASE=ANTUSB Stick - - usb:v0FCFp1006* - ID_MODEL_FROM_DATABASE=ANT Development Board - - usb:v0FCFp1008* -- ID_MODEL_FROM_DATABASE=Mini stick Suunto -+ ID_MODEL_FROM_DATABASE=ANTUSB2 Stick -+ -+usb:v0FCFp1009* -+ ID_MODEL_FROM_DATABASE=ANTUSB-m Stick - - usb:v0FD0* - ID_VENDOR_FROM_DATABASE=Tulip Computers B.V. -@@ -38378,6 +39062,12 @@ usb:v0FDAp0100* - usb:v0FDC* - ID_VENDOR_FROM_DATABASE=Micro Plus - -+usb:v0FDE* -+ ID_VENDOR_FROM_DATABASE=Oregon Scientific -+ -+usb:v0FDEpCA01* -+ ID_MODEL_FROM_DATABASE=WMRS200 weather station -+ - usb:v0FE0* - ID_VENDOR_FROM_DATABASE=Osterhout Design Group - -@@ -38471,6 +39161,9 @@ usb:v0FFF* - usb:v1000* - ID_VENDOR_FROM_DATABASE=Speed Tech Corp. - -+usb:v1000p153B* -+ ID_MODEL_FROM_DATABASE=TerraTec Electronic GmbH -+ - usb:v1001* - ID_VENDOR_FROM_DATABASE=Ritronics Components (S) Pte., Ltd - -@@ -38504,6 +39197,9 @@ usb:v1004p618E* - usb:v1004p618F* - ID_MODEL_FROM_DATABASE=Ally/Optimus One - -+usb:v1004p61C5* -+ ID_MODEL_FROM_DATABASE=P880 / Charge only -+ - usb:v1004p61C6* - ID_MODEL_FROM_DATABASE=Vortex (msc) - -@@ -38514,7 +39210,7 @@ usb:v1004p61F1* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [LG Software mode] - - usb:v1004p61F9* -- ID_MODEL_FROM_DATABASE=V909 G-Slate -+ ID_MODEL_FROM_DATABASE=Optimus (Various Models) MTP Mode - - usb:v1004p61FC* - ID_MODEL_FROM_DATABASE=Optimus 3 -@@ -38528,9 +39224,15 @@ usb:v1004p6300* - usb:v1004p631C* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [MTP mode] - -+usb:v1004p631D* -+ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Camera/PTP Mode) -+ - usb:v1004p631E* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [Camera/PTP mode] - -+usb:v1004p631F* -+ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Charge Mode) -+ - usb:v1004p6356* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [Virtual CD mode] - -@@ -38540,6 +39242,9 @@ usb:v1004p6800* - usb:v1004p7000* - ID_MODEL_FROM_DATABASE=LG LDP-7024D(LD)USB - -+usb:v1004p91C8* -+ ID_MODEL_FROM_DATABASE=P880 / USB tethering -+ - usb:v1004pA400* - ID_MODEL_FROM_DATABASE=Renoir (KC910) - -@@ -38742,13 +39447,13 @@ usb:v1033p0068* - ID_MODEL_FROM_DATABASE=3,5'' HDD case MD-231 - - usb:v1038* -- ID_VENDOR_FROM_DATABASE=Ideazon, Inc. -+ ID_VENDOR_FROM_DATABASE=SteelSeries ApS - - usb:v1038p0100* -- ID_MODEL_FROM_DATABASE=Zboard -+ ID_MODEL_FROM_DATABASE=Ideazon Zboard - - usb:v1038p1361* -- ID_MODEL_FROM_DATABASE=Sensei -+ ID_MODEL_FROM_DATABASE=Ideazon Sensei - - usb:v1039* - ID_VENDOR_FROM_DATABASE=devolo AG -@@ -38946,28 +39651,37 @@ usb:v1058p0704* - ID_MODEL_FROM_DATABASE=Passport External HDD - - usb:v1058p070A* -- ID_MODEL_FROM_DATABASE=My Passport Essential SE -+ ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) - - usb:v1058p071A* - ID_MODEL_FROM_DATABASE=My Passport - - usb:v1058p0730* -- ID_MODEL_FROM_DATABASE=My Passport -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) - - usb:v1058p0740* - ID_MODEL_FROM_DATABASE=My Passport - -+usb:v1058p0741* -+ ID_MODEL_FROM_DATABASE=My Passport Ultra -+ - usb:v1058p0742* - ID_MODEL_FROM_DATABASE=My Passport Essential SE - - usb:v1058p0748* -- ID_MODEL_FROM_DATABASE=My Passport 1TB USB 3.0 -+ ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) -+ -+usb:v1058p0810* -+ ID_MODEL_FROM_DATABASE=My Passport Ultra - - usb:v1058p0900* - ID_MODEL_FROM_DATABASE=MyBook Essential External HDD - - usb:v1058p0901* -- ID_MODEL_FROM_DATABASE=MyBook External HDD -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) -+ -+usb:v1058p0902* -+ ID_MODEL_FROM_DATABASE=My Book Pro Edition - - usb:v1058p0903* - ID_MODEL_FROM_DATABASE=My Book Premium Edition -@@ -38976,20 +39690,32 @@ usb:v1058p0910* - ID_MODEL_FROM_DATABASE=MyBook Essential External HDD - - usb:v1058p1001* -- ID_MODEL_FROM_DATABASE=External Hard Disk [Elements] -+ ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) - - usb:v1058p1003* - ID_MODEL_FROM_DATABASE=Elements 1000 GB - - usb:v1058p1010* -- ID_MODEL_FROM_DATABASE=Elements External HDD -+ ID_MODEL_FROM_DATABASE=Elements Portable (WDBAAR) - - usb:v1058p1021* -- ID_MODEL_FROM_DATABASE=Elements 2TB -+ ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) - - usb:v1058p1023* - ID_MODEL_FROM_DATABASE=Elements SE - -+usb:v1058p1048* -+ ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) -+ -+usb:v1058p10A2* -+ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBPCK) -+ -+usb:v1058p10A8* -+ ID_MODEL_FROM_DATABASE=Elements Portable (WDBUZG) -+ -+usb:v1058p1100* -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition 2.0 (WDH1U) -+ - usb:v1058p1103* - ID_MODEL_FROM_DATABASE=My Book Studio - -@@ -39272,6 +39998,9 @@ usb:v106Fp0009* - usb:v106Fp000A* - ID_MODEL_FROM_DATABASE=CR10x Coin Recycler - -+usb:v106Fp000C* -+ ID_MODEL_FROM_DATABASE=Xchange -+ - usb:v1076* - ID_VENDOR_FROM_DATABASE=GCT Semiconductor, Inc. - -@@ -39335,6 +40064,12 @@ usb:v1099* - usb:v109A* - ID_VENDOR_FROM_DATABASE=DATASOFT Systems GmbH - -+usb:v109B* -+ ID_VENDOR_FROM_DATABASE=Hisense -+ -+usb:v109Bp9118* -+ ID_MODEL_FROM_DATABASE=Medion P4013 Mobile -+ - usb:v109F* - ID_VENDOR_FROM_DATABASE=eSOL Co., Ltd - -@@ -39458,6 +40193,15 @@ usb:v10BF* - usb:v10BFp0001* - ID_MODEL_FROM_DATABASE=SmartHome PowerLinc - -+usb:v10C3* -+ ID_VENDOR_FROM_DATABASE=Universal Laser Systems, Inc. -+ -+usb:v10C3p00A4* -+ ID_MODEL_FROM_DATABASE=ULS PLS Series Laser Engraver Firmware Loader -+ -+usb:v10C3p00A5* -+ ID_MODEL_FROM_DATABASE=ULS Print Support -+ - usb:v10C4* - ID_VENDOR_FROM_DATABASE=Cygnal Integrated Products, Inc. - -@@ -39509,6 +40253,12 @@ usb:v10C4p8461* - usb:v10C4p8477* - ID_MODEL_FROM_DATABASE=Balluff RFID Reader - -+usb:v10C4p8496* -+ ID_MODEL_FROM_DATABASE=SiLabs Cypress FW downloader -+ -+usb:v10C4p8497* -+ ID_MODEL_FROM_DATABASE=SiLabs Cypress EVB -+ - usb:v10C4p8605* - ID_MODEL_FROM_DATABASE=dilitronics ESoLUX solar lighting controller - -@@ -39527,6 +40277,9 @@ usb:v10C4p8863* - usb:v10C4p8897* - ID_MODEL_FROM_DATABASE=C8051F38x HDMI Splitter [UHBX] - -+usb:v10C4p8918* -+ ID_MODEL_FROM_DATABASE=C8051F38x HDMI Audio Extractor [VSA-HA-DP] -+ - usb:v10C4pEA60* - ID_MODEL_FROM_DATABASE=CP210x UART Bridge / myAVR mySmartUSB light - -@@ -39908,6 +40661,9 @@ usb:v1141* - usb:v1142* - ID_VENDOR_FROM_DATABASE=CyberScan Technologies, Inc. - -+usb:v1142p0709* -+ ID_MODEL_FROM_DATABASE=Cyberview High Speed Scanner -+ - usb:v1145* - ID_VENDOR_FROM_DATABASE=Japan Radio Company - -@@ -39938,6 +40694,9 @@ usb:v114D* - usb:v114F* - ID_VENDOR_FROM_DATABASE=Wavecom - -+usb:v114Fp1234* -+ ID_MODEL_FROM_DATABASE=Fastrack Xtend FXT001 Modem -+ - usb:v115B* - ID_VENDOR_FROM_DATABASE=Salix Technology Co., Ltd. - -@@ -40128,7 +40887,7 @@ usb:v1199p683A* - ID_MODEL_FROM_DATABASE=MC8785 Device - - usb:v1199p683C* -- ID_MODEL_FROM_DATABASE=MC8790 Device -+ ID_MODEL_FROM_DATABASE=Mobile Broadband 3G/UMTS (MC8790 Device) - - usb:v1199p6850* - ID_MODEL_FROM_DATABASE=AirCard 880 Device -@@ -40196,6 +40955,12 @@ usb:v1199p9009* - usb:v1199p900A* - ID_MODEL_FROM_DATABASE=Gobi 2000 Wireless Modem - -+usb:v1199p9055* -+ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (NAT mode) -+ -+usb:v1199p9057* -+ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (IP passthrough mode) -+ - usb:v119A* - ID_VENDOR_FROM_DATABASE=ZHAN QI Technology Co., Ltd - -@@ -40238,12 +41003,30 @@ usb:v11ACp6565* - usb:v11B0* - ID_VENDOR_FROM_DATABASE=ATECH FLASH TECHNOLOGY - -+usb:v11B0p6208* -+ ID_MODEL_FROM_DATABASE=PRO-28U -+ -+usb:v11BE* -+ ID_VENDOR_FROM_DATABASE=R&D International NV -+ -+usb:v11BEpF0A0* -+ ID_MODEL_FROM_DATABASE=Martin Maxxyz DMX -+ - usb:v11C5* - ID_VENDOR_FROM_DATABASE=Inmax - - usb:v11C5p0521* - ID_MODEL_FROM_DATABASE=IMT-0521 Smartcard Reader - -+usb:v11CA* -+ ID_VENDOR_FROM_DATABASE=VeriFone Inc -+ -+usb:v11CAp0207* -+ ID_MODEL_FROM_DATABASE=PIN Pad VX 810 -+ -+usb:v11CAp0220* -+ ID_MODEL_FROM_DATABASE=PIN Pad VX 805 -+ - usb:v11DB* - ID_VENDOR_FROM_DATABASE=Topfield Co., Ltd. - -@@ -40274,6 +41057,9 @@ usb:v11F5p0005* - usb:v11F5p0008* - ID_MODEL_FROM_DATABASE=UMTS/HSDPA Data Card - -+usb:v11F5p0101* -+ ID_MODEL_FROM_DATABASE=RCU Connect -+ - usb:v11F6* - ID_VENDOR_FROM_DATABASE=Prolific - -@@ -40284,7 +41070,7 @@ usb:v11F7* - ID_VENDOR_FROM_DATABASE=Alcatel (?) - - usb:v11F7p02DF* -- ID_MODEL_FROM_DATABASE=TD10 Mobile phone USB cable -+ ID_MODEL_FROM_DATABASE=Serial cable (v2) for TD-10 Mobile Phone - - usb:v1203* - ID_VENDOR_FROM_DATABASE=TSC Auto ID Technology Co., Ltd -@@ -40352,6 +41138,9 @@ usb:v1228p0012* - usb:v1228p0015* - ID_MODEL_FROM_DATABASE=TPaq21/MPaq21 Datalogger - -+usb:v1228p584C* -+ ID_MODEL_FROM_DATABASE=XL2 Logger -+ - usb:v1230* - ID_VENDOR_FROM_DATABASE=Chipidea-Microelectronica, S.A. - -@@ -40377,20 +41166,110 @@ usb:v1235* - ID_VENDOR_FROM_DATABASE=Novation EMS - - usb:v1235p0001* -- ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation -+ ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition - - usb:v1235p0002* - ID_MODEL_FROM_DATABASE=Speedio - - usb:v1235p0003* -- ID_MODEL_FROM_DATABASE=ReMOTE ZeRO SL -+ ID_MODEL_FROM_DATABASE=RemoteSL + ZeroSL -+ -+usb:v1235p0004* -+ ID_MODEL_FROM_DATABASE=ReMOTE LE -+ -+usb:v1235p0005* -+ ID_MODEL_FROM_DATABASE=XIOSynth [First Edition] -+ -+usb:v1235p0006* -+ ID_MODEL_FROM_DATABASE=XStation -+ -+usb:v1235p0007* -+ ID_MODEL_FROM_DATABASE=XIOSynth -+ -+usb:v1235p0008* -+ ID_MODEL_FROM_DATABASE=ReMOTE SL Compact -+ -+usb:v1235p0009* -+ ID_MODEL_FROM_DATABASE=nIO -+ -+usb:v1235p000A* -+ ID_MODEL_FROM_DATABASE=Nocturn -+ -+usb:v1235p000B* -+ ID_MODEL_FROM_DATABASE=ReMOTE SL MkII -+ -+usb:v1235p000C* -+ ID_MODEL_FROM_DATABASE=ZeRO MkII -+ -+usb:v1235p000E* -+ ID_MODEL_FROM_DATABASE=Launchpad -+ -+usb:v1235p0010* -+ ID_MODEL_FROM_DATABASE=Saffire 6 -+ -+usb:v1235p0011* -+ ID_MODEL_FROM_DATABASE=Ultranova -+ -+usb:v1235p0012* -+ ID_MODEL_FROM_DATABASE=Nocturn Keyboard -+ -+usb:v1235p0013* -+ ID_MODEL_FROM_DATABASE=VRM Box -+ -+usb:v1235p0014* -+ ID_MODEL_FROM_DATABASE=VRM Box Audio Class (2-out) -+ -+usb:v1235p0015* -+ ID_MODEL_FROM_DATABASE=Dicer -+ -+usb:v1235p0016* -+ ID_MODEL_FROM_DATABASE=Ultranova -+ -+usb:v1235p0018* -+ ID_MODEL_FROM_DATABASE=Twitch -+ -+usb:v1235p0019* -+ ID_MODEL_FROM_DATABASE=Impulse 25 -+ -+usb:v1235p001A* -+ ID_MODEL_FROM_DATABASE=Impulse 49 -+ -+usb:v1235p001B* -+ ID_MODEL_FROM_DATABASE=Impulse 61 - - usb:v1235p4661* - ID_MODEL_FROM_DATABASE=ReMOTE25 - -+usb:v1235p8000* -+ ID_MODEL_FROM_DATABASE=Scarlett 18i6 -+ -+usb:v1235p8002* -+ ID_MODEL_FROM_DATABASE=Scarlett 8i6 -+ - usb:v1235p8006* - ID_MODEL_FROM_DATABASE=Focusrite Scarlett 2i2 - -+usb:v1235p8008* -+ ID_MODEL_FROM_DATABASE=Saffire 6 -+ -+usb:v1235p800A* -+ ID_MODEL_FROM_DATABASE=Scarlett 2i4 -+ -+usb:v1235p800C* -+ ID_MODEL_FROM_DATABASE=Scarlett 18i20 -+ -+usb:v1235p800E* -+ ID_MODEL_FROM_DATABASE=iTrack Solo -+ -+usb:v1235p8010* -+ ID_MODEL_FROM_DATABASE=Forte -+ -+usb:v1235p8012* -+ ID_MODEL_FROM_DATABASE=Scarlett 6i6 -+ -+usb:v1235p8014* -+ ID_MODEL_FROM_DATABASE=Scarlett 18i8 -+ - usb:v1241* - ID_VENDOR_FROM_DATABASE=Belkin - -@@ -40410,7 +41289,7 @@ usb:v1241p1166* - ID_MODEL_FROM_DATABASE=MI-2150 Trust Mouse - - usb:v1241p1177* -- ID_MODEL_FROM_DATABASE=F8E842-DL Mouse -+ ID_MODEL_FROM_DATABASE=Mouse [HT82M21A] - - usb:v1241p1503* - ID_MODEL_FROM_DATABASE=Keyboard -@@ -40463,6 +41342,9 @@ usb:v125Fp312A* - usb:v125Fp312B* - ID_MODEL_FROM_DATABASE=Superior S102 Pro - -+usb:v125FpA22A* -+ ID_MODEL_FROM_DATABASE=DashDrive Elite HE720 500GB -+ - usb:v125FpA91A* - ID_MODEL_FROM_DATABASE=Portable HDD CH91 - -@@ -40478,6 +41360,9 @@ usb:v125FpC93A* - usb:v125FpC96A* - ID_MODEL_FROM_DATABASE=C906 Flash Drive - -+usb:v125FpCB10* -+ ID_MODEL_FROM_DATABASE=Dash Drive UV100 -+ - usb:v1260* - ID_VENDOR_FROM_DATABASE=Standard Microsystems Corp. - -@@ -40637,6 +41522,9 @@ usb:v1283p0150* - usb:v1286* - ID_VENDOR_FROM_DATABASE=Marvell Semiconductor, Inc. - -+usb:v1286p00BC* -+ ID_MODEL_FROM_DATABASE=Marvell JTAG Probe -+ - usb:v1286p1FAB* - ID_MODEL_FROM_DATABASE=88W8338 [Libertas] 802.11g - -@@ -40733,6 +41621,12 @@ usb:v12C4p0006* - usb:v12C4p0008* - ID_MODEL_FROM_DATABASE=Teleprompter Foot Control (v1) - -+usb:v12CF* -+ ID_VENDOR_FROM_DATABASE=DEXIN -+ -+usb:v12CFp0170* -+ ID_MODEL_FROM_DATABASE=Tt eSPORTS BLACK Gaming mouse -+ - usb:v12D1* - ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd. - -@@ -40802,9 +41696,15 @@ usb:v12D1p14CF* - usb:v12D1p14D1* - ID_MODEL_FROM_DATABASE=K3770 3G Modem (Mass Storage Mode) - -+usb:v12D1p14DB* -+ ID_MODEL_FROM_DATABASE=E353/E3131 -+ - usb:v12D1p14F1* - ID_MODEL_FROM_DATABASE=Gobi 3000 HSPA+ Modem - -+usb:v12D1p14FE* -+ ID_MODEL_FROM_DATABASE=Modem (Mass Storage Mode) -+ - usb:v12D1p1501* - ID_MODEL_FROM_DATABASE=Pulse - -@@ -40826,6 +41726,9 @@ usb:v12D1p1521* - usb:v12D1p155A* - ID_MODEL_FROM_DATABASE=R205 Mobile WiFi (CD-ROM mode) - -+usb:v12D1p1575* -+ ID_MODEL_FROM_DATABASE=K5150 LTE modem -+ - usb:v12D1p1805* - ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone - -@@ -41376,7 +42279,7 @@ usb:v13BA* - ID_VENDOR_FROM_DATABASE=PCPlay - - usb:v13BAp0001* -- ID_MODEL_FROM_DATABASE=König Electronic CMP-KEYPAD12 Numeric Keypad -+ ID_MODEL_FROM_DATABASE=Konig Electronic CMP-KEYPAD12 Numeric Keypad - - usb:v13BAp0017* - ID_MODEL_FROM_DATABASE=PS/2 Keyboard+Mouse Adapter -@@ -44096,6 +44999,9 @@ usb:v1740p9801* - usb:v1743* - ID_VENDOR_FROM_DATABASE=General Atomics - -+usb:v1748* -+ ID_VENDOR_FROM_DATABASE=MQP Electronics -+ - usb:v174C* - ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. - -@@ -46569,7 +47475,7 @@ usb:v1C7B* - ID_VENDOR_FROM_DATABASE=LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD. - - usb:v1C83* -- ID_VENDOR_FROM_DATABASE=Schomäcker GmbH -+ ID_VENDOR_FROM_DATABASE=Schomaecker GmbH - - usb:v1C83p0001* - ID_MODEL_FROM_DATABASE=RS150 V2 -@@ -47678,6 +48584,12 @@ usb:v2047* - usb:v2047p0200* - ID_MODEL_FROM_DATABASE=MSP430 USB HID Bootstrap Loader - -+usb:v2047p0855* -+ ID_MODEL_FROM_DATABASE=Invensense Embedded MotionApp HID Sensor -+ -+usb:v2047p0964* -+ ID_MODEL_FROM_DATABASE=Inventio Software MSP430 -+ - usb:v2080* - ID_VENDOR_FROM_DATABASE=Barnes & Noble - --- -1.7.9.2 - diff --git a/0004-implement-a-union-to-pad-out-file_handle.patch b/0004-implement-a-union-to-pad-out-file_handle.patch deleted file mode 100644 index cbb924cc..00000000 --- a/0004-implement-a-union-to-pad-out-file_handle.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 370c860f748d149097710dc7952a64f627db9de7 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 19 Apr 2014 13:22:35 -0400 -Subject: [PATCH] implement a union to pad out file_handle - -Cases where name_to_handle_at is used allocated the full struct to be -MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong -since handle_bytes should describe the length of the flexible array -member and not the whole struct. - -Define a union type which includes sufficient padding to allow -assignment of MAX_HANDLE_SZ to be correct. ---- - src/libudev/libudev-monitor.c | 6 ++---- - src/readahead/readahead-common.c | 6 ++---- - src/shared/util.h | 6 ++++++ - src/tmpfiles/tmpfiles.c | 11 ++++------- - 4 files changed, 14 insertions(+), 15 deletions(-) - -diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c -index 3f7436b..0a2ab82 100644 ---- src/libudev/libudev-monitor.c -+++ src/libudev/libudev-monitor.c -@@ -108,15 +108,13 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev) - - /* we consider udev running when /dev is on devtmpfs */ - static bool udev_has_devtmpfs(struct udev *udev) { -- struct file_handle *h; -+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; - int mount_id; - _cleanup_fclose_ FILE *f = NULL; - char line[LINE_MAX], *e; - int r; - -- h = alloca(MAX_HANDLE_SZ); -- h->handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(AT_FDCWD, "/dev", h, &mount_id, 0); -+ r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); - if (r < 0) - return false; - -diff --git src/readahead/readahead-common.c src/readahead/readahead-common.c -index 5ffa88b..49679fc 100644 ---- src/readahead/readahead-common.c -+++ src/readahead/readahead-common.c -@@ -75,7 +75,7 @@ int fs_on_ssd(const char *p) { - if (major(st.st_dev) == 0) { - _cleanup_fclose_ FILE *f = NULL; - int mount_id; -- struct file_handle *h; -+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; - - /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd. - * -@@ -83,9 +83,7 @@ int fs_on_ssd(const char *p) { - * and then lookup the mount ID in mountinfo to find - * the mount options. */ - -- h = alloca(MAX_HANDLE_SZ); -- h->handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW); -+ r = name_to_handle_at(AT_FDCWD, p, &h.handle, &mount_id, AT_SYMLINK_FOLLOW); - if (r < 0) - return false; - -diff --git src/shared/util.h src/shared/util.h -index 900f1cf..891848a 100644 ---- src/shared/util.h -+++ src/shared/util.h -@@ -22,6 +22,7 @@ - ***/ - - #include -+#include - #include - #include - #include -@@ -883,3 +884,8 @@ int fd_warn_permissions(const char *path - - unsigned long personality_from_string(const char *p); - const char *personality_to_string(unsigned long); -+ -+union file_handle_union { -+ struct file_handle handle; -+ char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; -+}; -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index 33e7cbc..04b472d 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -217,19 +217,16 @@ static bool unix_socket_alive(const char *fn) { - } - - static int dir_is_mount_point(DIR *d, const char *subdir) { -- struct file_handle *h; -+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ }; - int mount_id_parent, mount_id; - int r_p, r; - -- h = alloca(MAX_HANDLE_SZ); -- -- h->handle_bytes = MAX_HANDLE_SZ; -- r_p = name_to_handle_at(dirfd(d), ".", h, &mount_id_parent, 0); -+ r_p = name_to_handle_at(dirfd(d), ".", &h.handle, &mount_id_parent, 0); - if (r_p < 0) - r_p = -errno; - -- h->handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(dirfd(d), subdir, h, &mount_id, 0); -+ h.handle.handle_bytes = MAX_HANDLE_SZ; -+ r = name_to_handle_at(dirfd(d), subdir, &h.handle, &mount_id, 0); - if (r < 0) - r = -errno; - --- -1.7.9.2 - diff --git a/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch b/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch deleted file mode 100644 index 0358d8cc..00000000 --- a/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on 20a83d7bf4542875f8033b68682a4da4993010e8 Mon Sep 17 00:00:00 2001 -From: Brandon Philips -Date: Fri, 25 Apr 2014 09:31:59 -0600 -Subject: [PATCH] job: add waiting jobs to run queue in unit_coldplug - -When we have job installed and added to run queue for service which is -still in dead state and systemd initiates reload then after reload we -never add deserialized job to the run queue again. This is caused by -check in service_coldplug() where we check if deserialized state is -something else than dead state, which is not the case thus we never call -service_set_state() and finally unit_notify() where we would have added -job to the run queue. - -Thanks to Michal Sekletar for the original patch. ---- - src/core/job.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- src/core/job.c -+++ src/core/job.c 2014-05-12 12:58:30.354235531 +0000 -@@ -1057,6 +1057,9 @@ int job_coldplug(Job *j) { - if (j->timer_event_source) - j->timer_event_source = sd_event_source_unref(j->timer_event_source); - -+ if (j->state == JOB_WAITING) -+ job_add_to_run_queue(j); -+ - r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); - if (r < 0) - log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0004-journal-do-server_vacuum-for-sigusr1.patch b/0004-journal-do-server_vacuum-for-sigusr1.patch deleted file mode 100644 index 530a5397..00000000 --- a/0004-journal-do-server_vacuum-for-sigusr1.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3bfd4e0c6341b0ef946d2198f089743fa99e0a97 Mon Sep 17 00:00:00 2001 -From: WaLyong Cho -Date: Thu, 28 Aug 2014 21:33:03 +0900 -Subject: [PATCH] journal: do server_vacuum for sigusr1 - -runtime journal is migrated to system journal when only -"/run/systemd/journal/flushed" exist. It's ok but according to this -the system journal directory size(max use) can be over the config. If -journal is not rotated during some time the journal directory can be -remained as over the config(or default) size. To avoid, do -server_vacuum just after the system journal migration from runtime. ---- - src/journal/journald-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/journal/journald-server.c src/journal/journald-server.c -index 52111f7..bf9cfcc 100644 ---- src/journal/journald-server.c -+++ src/journal/journald-server.c -@@ -1224,6 +1224,7 @@ static int dispatch_sigusr1(sd_event_source *es, const struct signalfd_siginfo * - touch("/run/systemd/journal/flushed"); - server_flush_to_var(s); - server_sync(s); -+ server_vacuum(s); - - return 0; - } --- -1.7.9.2 - diff --git a/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch b/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch deleted file mode 100644 index 848a73d3..00000000 --- a/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch +++ /dev/null @@ -1,134 +0,0 @@ -Based on baccf3e40bab6c0b69992ae29c396930de4660c9 Mon Sep 17 00:00:00 2001 -From: Olivier Brunel -Date: Fri, 8 Aug 2014 20:45:43 +0200 -Subject: [PATCH] login: set_controller should fail if prepare_vt fails - -If controllers can expect logind to have "prepared" the VT (e.g. set it to -graphics mode, etc) then TakeControl() should fail if said preparation -failed (and session_restore_vt() was called). - -(David: fixed up !CONFIG_VT case and errno-numbers) ---- - src/login/logind-session.c | 47 +++++++++++++++++++++++++++++++++------------ - src/login/logind-session.h | 2 - - 2 files changed, 36 insertions(+), 13 deletions(-) - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-08-26 10:14:21.014235811 +0000 -@@ -950,8 +950,8 @@ int session_kill(Session *s, KillWho who - static int session_open_vt(Session *s) { - char path[sizeof("/dev/tty") + DECIMAL_STR_MAX(s->vtnr)]; - -- if (!s->vtnr) -- return -1; -+ if (s->vtnr < 1) -+ return -ENODEV; - - if (s->vtfd >= 0) - return s->vtfd; -@@ -975,22 +975,38 @@ static int session_vt_fn(sd_event_source - return 0; - } - --void session_mute_vt(Session *s) { -+int session_mute_vt(Session *s) { - int vt, r; - struct vt_mode mode = { 0 }; - sigset_t mask; - -+ if (s->vtnr < 1) -+ return 0; -+ - vt = session_open_vt(s); - if (vt < 0) -- return; -+ return vt; -+ -+ r = fchown(vt, s->user->uid, -1); -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot change owner of /dev/tty%u: %m", s->vtnr); -+ goto error; -+ } - - r = ioctl(vt, KDSKBMODE, K_OFF); -- if (r < 0) -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot set K_OFF on /dev/tty%u: %m", s->vtnr); - goto error; -+ } - - r = ioctl(vt, KDSETMODE, KD_GRAPHICS); -- if (r < 0) -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot set KD_GRAPHICS on /dev/tty%u: %m", s->vtnr); - goto error; -+ } - - sigemptyset(&mask); - sigaddset(&mask, SIGUSR1); -@@ -1007,14 +1023,17 @@ void session_mute_vt(Session *s) { - mode.relsig = SIGUSR1; - mode.acqsig = SIGUSR1; - r = ioctl(vt, VT_SETMODE, &mode); -- if (r < 0) -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot set VT_PROCESS on /dev/tty%u: %m", s->vtnr); - goto error; -+ } - -- return; -+ return 0; - - error: -- log_error("cannot mute VT %u for session %s (%d/%d)", s->vtnr, s->id, r, errno); - session_restore_vt(s); -+ return r; - } - - void session_restore_vt(Session *s) { -@@ -1037,6 +1056,8 @@ void session_restore_vt(Session *s) { - mode.mode = VT_AUTO; - ioctl(vt, VT_SETMODE, &mode); - -+ fchown(vt, 0, -1); -+ - close_nointr_nofail(vt); - s->vtfd = -1; - } -@@ -1091,8 +1112,6 @@ int session_set_controller(Session *s, c - return r; - } - -- session_swap_controller(s, t); -- - /* When setting a session controller, we forcibly mute the VT and set - * it into graphics-mode. Applications can override that by changing - * VT state after calling TakeControl(). However, this serves as a good -@@ -1101,7 +1120,11 @@ int session_set_controller(Session *s, c - * exits. - * If logind crashes/restarts, we restore the controller during restart - * or reset the VT in case it crashed/exited, too. */ -- session_mute_vt(s); -+ r = session_mute_vt(s); -+ if (r < 0) -+ return r; -+ -+ session_swap_controller(s, t); - - return 0; - } ---- src/login/logind-session.h -+++ src/login/logind-session.h 2014-08-25 17:19:29.042236429 +0000 -@@ -172,7 +172,7 @@ SessionClass session_class_from_string(c - const char *kill_who_to_string(KillWho k) _const_; - KillWho kill_who_from_string(const char *s) _pure_; - --void session_mute_vt(Session *s); -+int session_mute_vt(Session *s); - void session_restore_vt(Session *s); - - bool session_is_controller(Session *s, const char *sender); diff --git a/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch b/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch deleted file mode 100644 index c19bfcee..00000000 --- a/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 94036de887ad5b0dc805abe38b5c1c58b57d9465 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Tue, 11 Mar 2014 17:49:00 +0200 -Subject: [PATCH] logind: Do not fail display count if a device has no parent - -udev_device_get_parent() may return NULL when the device doesn't have a -parent, as is the case with (for example) /sys/devices/virtual/drm/ttm. - -Also, log an actual error message instead of "-12 displays connected". ---- - src/login/logind-action.c | 4 +++- - src/login/logind-core.c | 2 +- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index ae7b350..1928f43 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -84,7 +84,9 @@ int manager_handle_action( - * treat like this under the assumption that there is - * no modern drm driver available. */ - n = manager_count_displays(m); -- if (n != 1) { -+ if (n < 0) -+ log_warning("Display counting failed: %s", strerror(-n)); -+ else if (n != 1) { - log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } -diff --git src/login/logind-core.c src/login/logind-core.c -index ca34d37..053d2ed 100644 ---- src/login/logind-core.c -+++ src/login/logind-core.c -@@ -520,7 +520,7 @@ int manager_count_displays(Manager *m) { - - p = udev_device_get_parent(d); - if (!p) -- return -ENOMEM; -+ continue; - - /* If the parent shares the same subsystem as the - * device we are looking at then it is a connector, --- -1.7.9.2 - diff --git a/0004-machined-make-sure-GetMachineAddresses-is-available-.patch b/0004-machined-make-sure-GetMachineAddresses-is-available-.patch deleted file mode 100644 index 20b625ba..00000000 --- a/0004-machined-make-sure-GetMachineAddresses-is-available-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From d3152a09ac5804ec8603daee12f98cf03523cce0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 19 May 2014 00:47:26 +0900 -Subject: [PATCH] machined: make sure GetMachineAddresses() is available for - unprivileged processes - ---- - src/machine/org.freedesktop.machine1.conf | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git src/machine/org.freedesktop.machine1.conf src/machine/org.freedesktop.machine1.conf -index 970ccd8..ab349a5 100644 ---- src/machine/org.freedesktop.machine1.conf -+++ src/machine/org.freedesktop.machine1.conf -@@ -42,12 +42,20 @@ - - -+ -+ - - - -+ -+ - - - --- -1.7.9.2 - diff --git a/0004-man-document-missing-options-of-systemd-run.patch b/0004-man-document-missing-options-of-systemd-run.patch deleted file mode 100644 index a6e6551d..00000000 --- a/0004-man-document-missing-options-of-systemd-run.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 981ee551945f4e00de52fcbb7780fd7476bcd47e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 5 Mar 2014 03:37:48 +0100 -Subject: [PATCH] man: document missing options of systemd-run - ---- - man/systemd-run.xml | 71 +++++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 60 insertions(+), 11 deletions(-) - -diff --git man/systemd-run.xml man/systemd-run.xml -index 95c1cb7..81d41dc 100644 ---- man/systemd-run.xml -+++ man/systemd-run.xml -@@ -121,9 +121,9 @@ along with systemd; If not, see . - - - -- Provide description for the unit. If not -- specified, the command itself will be used as a description. -- See Description= in -+ Provide description for the service or scope -+ unit. If not specified, the command itself will be used as a -+ description. See Description= in - systemd.unit5. - - -@@ -140,10 +140,10 @@ along with systemd; If not, see . - - - -- After the service's process has terminated, keep -- the service around until it is explicitly stopped. This is -- useful to collect runtime information about the service after -- it finished running. Also see -+ After the service or scope process has -+ terminated, keep the service around until it is explicitly -+ stopped. This is useful to collect runtime information about -+ the service after it finished running. Also see - RemainAfterExit= in - systemd.service5. - -@@ -153,15 +153,64 @@ along with systemd; If not, see . - - - -- When terminating the scope unit, send a SIGHUP -- immediately after SIGTERM. This is useful to indicate to -- shells and shell-like processes that the connection has been -- severed. Also see SendSIGHUP= in -+ When terminating the scope or service unit, -+ send a SIGHUP immediately after SIGTERM. This is useful to -+ indicate to shells and shell-like processes that the -+ connection has been severed. Also see -+ SendSIGHUP= in - systemd.kill5. - - - - -+ -+ -+ -+ Sets the service type. Also see -+ Type= in -+ systemd.service5. This -+ option has no effect in conjunction with -+ . Defaults to -+ simple. -+ -+ -+ -+ -+ -+ -+ -+ Runs the service process under the UNIX user -+ and group. Also see User= and -+ Group= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ -+ -+ -+ -+ Runs the service process with the specified -+ nice level. Also see Nice= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ -+ -+ -+ -+ Runs the service process with the specified -+ environment variables set. Also see -+ Environment= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ - - - --- -1.7.9.2 - diff --git a/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch b/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch deleted file mode 100644 index 9ab7a2da..00000000 --- a/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 455cd8b137b8ef45d04889f2d967c562a097f1e6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 19:24:53 +0200 -Subject: [PATCH] sd-bus: if we don't manage to properly allocate the error - message for an sd_bus_error, just go on - -sd_bus_error_setfv() must initialize the sd_bus_error value to some -sensible value and then return a good errno code matching that. If it -cannot work at all it should set the error statically to the OOM error. -But if it can work half-way (i.e. initialize the name, but not the -message) it should do so and still return the correct errno number for -it. - -This effectively reverts 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 ---- - src/libsystemd/sd-bus/bus-error.c | 11 ++++------- - 1 file changed, 4 insertions(+), 7 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c -index 5ca974a..af83c12 100644 ---- src/libsystemd/sd-bus/bus-error.c -+++ src/libsystemd/sd-bus/bus-error.c -@@ -194,13 +194,10 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li - return -ENOMEM; - } - -- if (format) { -- int r; -- -- r = vasprintf((char**) &e->message, format, ap); -- if (r < 0) -- return -ENOMEM; -- } -+ /* Of we hit OOM on formatting the pretty message, we ignore -+ * this, since we at least managed to write the error name */ -+ if (format) -+ (void) vasprintf((char**) &e->message, format, ap); - - e->_need_free = 1; - --- -1.7.9.2 - diff --git a/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch b/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch deleted file mode 100644 index 51b46fb4..00000000 --- a/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 7bb4d371af5ec6b8c50b71d2a80c2866d8134d9a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Jul 2014 17:36:47 +0200 -Subject: [PATCH] sd-bus: when an event loop terminates, explicitly close the - bus - -This makes sure we actually release the bus and all the messages it -references. ---- - src/libsystemd/sd-bus/sd-bus.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index d52afe8..eb267d4 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -2940,6 +2940,7 @@ static int quit_callback(sd_event_source *event, void *userdata) { - assert(event); - - sd_bus_flush(bus); -+ sd_bus_close(bus); - - return 1; - } --- -1.7.9.2 - diff --git a/0004-sd-event-check-the-value-of-received-signal.patch b/0004-sd-event-check-the-value-of-received-signal.patch deleted file mode 100644 index 9c4662a9..00000000 --- a/0004-sd-event-check-the-value-of-received-signal.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7057bd993110c1eff0cd3a8776902ca66417634e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Oct 2014 18:49:45 -0400 -Subject: [PATCH] sd-event: check the value of received signal - -Appease coverity report #1237775. - -Also rename ss to n, to make it visually different from ss. ---- - src/libsystemd/sd-event/sd-event.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index b56182d..4c67ee8 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -1973,20 +1973,22 @@ static int process_signal(sd_event *e, uint32_t events) { - - for (;;) { - struct signalfd_siginfo si; -- ssize_t ss; -+ ssize_t n; - sd_event_source *s = NULL; - -- ss = read(e->signal_fd, &si, sizeof(si)); -- if (ss < 0) { -+ n = read(e->signal_fd, &si, sizeof(si)); -+ if (n < 0) { - if (errno == EAGAIN || errno == EINTR) - return read_one; - - return -errno; - } - -- if (_unlikely_(ss != sizeof(si))) -+ if (_unlikely_(n != sizeof(si))) - return -EIO; - -+ assert(si.ssi_signo < _NSIG); -+ - read_one = true; - - if (si.ssi_signo == SIGCHLD) { --- -1.7.9.2 - diff --git a/0004-sd-journal-verify-that-object-start-with-the-field-n.patch b/0004-sd-journal-verify-that-object-start-with-the-field-n.patch deleted file mode 100644 index e3ee663d..00000000 --- a/0004-sd-journal-verify-that-object-start-with-the-field-n.patch +++ /dev/null @@ -1,41 +0,0 @@ -Based on 0f99f74a14ef193c1ebde687c5cc76e1d67b85ef Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 26 Aug 2014 23:54:31 -0400 -Subject: [PATCH] sd-journal: verify that object start with the field name - -If the journal is corrupted, we might return an object that does -not start with the expected field name and/or is shorter than it -should. ---- - src/journal/sd-journal.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git src/journal/sd-journal.c src/journal/sd-journal.c -index 80ff8fe..693707c 100644 ---- src/journal/sd-journal.c -+++ src/journal/sd-journal.c -@@ -2571,6 +2571,21 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_ - if (r < 0) - return r; - -+ /* Check if we have at least the field name and "=". */ -+ if (ol <= k) { -+ log_debug("%s:offset " OFSfmt ": object has size %zu, expected at least %zu", -+ j->unique_file->path, j->unique_offset, -+ ol, k + 1); -+ return -EBADMSG; -+ } -+ -+ if (memcmp(odata, j->unique_field, k) || ((const char*) odata)[k] != '=') { -+ log_debug("%s:offset " OFSfmt ": object does not start with \"%s=\"", -+ j->unique_file->path, j->unique_offset, -+ j->unique_field); -+ return -EBADMSG; -+ } -+ - /* OK, now let's see if we already returned this data - * object by checking if it exists in the earlier - * traversed files. */ --- -1.7.9.2 - diff --git a/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch b/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch deleted file mode 100644 index ba22748a..00000000 --- a/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 5e78424f4a27c07be50e246308035c877f204038 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Mon, 13 Oct 2014 15:25:09 +0200 -Subject: [PATCH] selinux: fix potential double free crash in child process - -Before returning from function we should reset ret to NULL, thus cleanup -function is nop. - -Also context_str() returns pointer to a string containing context but not a -copy, hence we must make copy it explicitly. ---- - src/shared/label.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/shared/label.c src/shared/label.c -index b6af38d..69d4616 100644 ---- src/shared/label.c -+++ src/shared/label.c -@@ -334,7 +334,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { - } - - freecon(mycon); -- mycon = context_str(bcon); -+ mycon = strdup(context_str(bcon)); - if (!mycon) { - r = -errno; - goto out; -@@ -348,6 +348,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { - } - - *label = ret; -+ ret = NULL; - r = 0; - - out: --- -1.7.9.2 - diff --git a/0004-shared-conf-parser.patch b/0004-shared-conf-parser.patch deleted file mode 100644 index 8a03d9d5..00000000 --- a/0004-shared-conf-parser.patch +++ /dev/null @@ -1,31 +0,0 @@ -Based on 83e341a637b75f7f592a5dc717c34d8b67ed4ffa Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 17 Sep 2014 22:17:53 +0200 -Subject: [PATCH] shared: conf-parser - -Check memory allocation. Found by Coverity. - -Fixes CID #1237644. ---- - src/shared/conf-parser.h | 4 ++++ - 1 file changed, 4 insertions(+) - ---- src/shared/conf-parser.h -+++ src/shared/conf-parser.h 2014-09-18 13:07:07.314735514 +0000 -@@ -181,6 +181,8 @@ int log_syntax_internal(const char *unit - assert(data); \ - \ - xs = new0(type, 1); \ -+ if(!xs) \ -+ return -ENOMEM; \ - *xs = invalid; \ - \ - FOREACH_WORD(w, l, rvalue, state) { \ -@@ -213,6 +215,7 @@ int log_syntax_internal(const char *unit - xs = realloc(xs, (++i + 1) * sizeof(type)); \ - if (!xs) \ - return -ENOMEM; \ -+ \ - *(xs + i) = invalid; \ - } \ - \ diff --git a/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch b/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch deleted file mode 100644 index 596aa557..00000000 --- a/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 863f3ce0d050f005839f6aa41fe7bac5478a7b5e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 19 Sep 2014 08:03:31 +0200 -Subject: [PATCH] shared: wtmp-utmp - don't clear store_wtmp in - utmp_put_dead_process() - -Also modernize a few other things and add comments to explain CID #1237503 -and CID #1237504. ---- - src/shared/utmp-wtmp.c | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -diff --git src/shared/utmp-wtmp.c src/shared/utmp-wtmp.c -index 30a0c03..31f13ec 100644 ---- src/shared/utmp-wtmp.c -+++ src/shared/utmp-wtmp.c -@@ -92,8 +92,6 @@ int utmp_get_runlevel(int *runlevel, int *previous) { - static void init_timestamp(struct utmpx *store, usec_t t) { - assert(store); - -- zero(*store); -- - if (t <= 0) - t = now(CLOCK_REALTIME); - -@@ -143,7 +141,7 @@ static int write_entry_wtmp(const struct utmpx *store) { - assert(store); - - /* wtmp is a simple append-only file where each entry is -- simply appended to * the end; i.e. basically a log. */ -+ simply appended to the end; i.e. basically a log. */ - - errno = 0; - updwtmpx(_PATH_WTMPX, store); -@@ -172,7 +170,7 @@ static int write_entry_both(const struct utmpx *store) { - } - - int utmp_put_shutdown(void) { -- struct utmpx store; -+ struct utmpx store = {}; - - init_entry(&store, 0); - -@@ -183,7 +181,7 @@ int utmp_put_shutdown(void) { - } - - int utmp_put_reboot(usec_t t) { -- struct utmpx store; -+ struct utmpx store = {}; - - init_entry(&store, t); - -@@ -206,16 +204,17 @@ _pure_ static const char *sanitize_id(const char *id) { - } - - int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line) { -- struct utmpx store; -+ struct utmpx store = { -+ .ut_type = INIT_PROCESS, -+ .ut_pid = pid, -+ .ut_session = sid, -+ }; - - assert(id); - - init_timestamp(&store, 0); - -- store.ut_type = INIT_PROCESS; -- store.ut_pid = pid; -- store.ut_session = sid; -- -+ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ - strncpy(store.ut_id, sanitize_id(id), sizeof(store.ut_id)); - - if (line) -@@ -225,14 +224,15 @@ int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line - } - - int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { -- struct utmpx lookup, store, store_wtmp, *found; -+ struct utmpx lookup = { -+ .ut_type = INIT_PROCESS /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ -+ }, store, store_wtmp, *found; - - assert(id); - - setutxent(); - -- zero(lookup); -- lookup.ut_type = INIT_PROCESS; /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ -+ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ - strncpy(lookup.ut_id, sanitize_id(id), sizeof(lookup.ut_id)); - - found = getutxid(&lookup); -@@ -260,7 +260,7 @@ int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { - - - int utmp_put_runlevel(int runlevel, int previous) { -- struct utmpx store; -+ struct utmpx store = {}; - int r; - - assert(runlevel > 0); --- -1.7.9.2 - diff --git a/0004-socket-properly-handle-if-our-service-vanished-durin.patch b/0004-socket-properly-handle-if-our-service-vanished-durin.patch deleted file mode 100644 index b119ad24..00000000 --- a/0004-socket-properly-handle-if-our-service-vanished-durin.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 640ace4a8de907994a1b95f6d368c3e6a8fcf60f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 May 2014 16:56:21 +0900 -Subject: [PATCH] socket: properly handle if our service vanished during - runtime - ---- - src/core/socket.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git src/core/socket.c src/core/socket.c -index 05af8fe..aca20fd 100644 ---- src/core/socket.c -+++ src/core/socket.c -@@ -1503,6 +1503,12 @@ static void socket_enter_running(Socket *s, int cfd) { - } - - if (!pending) { -+ if (!UNIT_ISSET(s->service)) { -+ log_error_unit(UNIT(s)->id, "%s: service to activate vanished, refusing activation.", UNIT(s)->id); -+ r = -ENOENT; -+ goto fail; -+ } -+ - r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service), JOB_REPLACE, true, &error, NULL); - if (r < 0) - goto fail; --- -1.7.9.2 - diff --git a/0004-systemd-detect-virt-only-discover-Xen-domU.patch b/0004-systemd-detect-virt-only-discover-Xen-domU.patch deleted file mode 100644 index 246e09b3..00000000 --- a/0004-systemd-detect-virt-only-discover-Xen-domU.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 37287585b6ba9a55065c8f94458f6db3c0abe0af Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Fri, 6 Jun 2014 16:36:45 +0200 -Subject: [PATCH] systemd-detect-virt: only discover Xen domU - -The current vm detection lacks the distinction between Xen dom0 and Xen domU. -Both, dom0 and domU are running inside the hypervisor. -Therefore systemd-detect-virt and the ConditionVirtualization directive detect -dom0 as a virtual machine. - -dom0 is not using virtual devices but is accessing the real hardware. -Therefore dom0 should be considered the virtualisation host and not a virtual -machine. - -https://bugs.freedesktop.org/show_bug.cgi?id=77271 ---- - src/shared/virt.c | 34 +++++++++++++++++++++++++++------- - 1 file changed, 27 insertions(+), 7 deletions(-) - -diff --git src/shared/virt.c src/shared/virt.c -index 1e227c5..774915f 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -148,7 +148,7 @@ static int detect_vm_dmi(const char **_id) { - - /* Returns a short identifier for the various VM implementations */ - int detect_vm(const char **id) { -- _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL; -+ _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL; - static thread_local int cached_found = -1; - static thread_local const char *cached_id = NULL; - const char *_id = NULL; -@@ -162,17 +162,37 @@ int detect_vm(const char **id) { - return cached_found; - } - -- /* Try high-level hypervisor sysfs file first: -+ /* Try xen capabilities file first, if not found try high-level hypervisor sysfs file: - * -- * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */ -- r = read_one_line_file("/sys/hypervisor/type", &hvtype); -+ * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */ -+ r = read_one_line_file("/proc/xen/capabilities", &domcap); - if (r >= 0) { -- if (streq(hvtype, "xen")) { -+ char *cap, *i = domcap; -+ -+ while ((cap = strsep(&i, ","))) -+ if (streq(cap, "control_d")) -+ break; -+ -+ if (!i) { - _id = "xen"; - r = 1; -- goto finish; - } -- } else if (r != -ENOENT) -+ -+ goto finish; -+ -+ } else if (r == -ENOENT) { -+ _cleanup_free_ char *hvtype = NULL; -+ -+ r = read_one_line_file("/sys/hypervisor/type", &hvtype); -+ if (r >= 0) { -+ if (streq(hvtype, "xen")) { -+ _id = "xen"; -+ r = 1; -+ goto finish; -+ } -+ } else if (r != -ENOENT) -+ return r; -+ } else - return r; - - /* this will set _id to "other" and return 0 for unknown hypervisors */ --- -1.7.9.2 - diff --git a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch deleted file mode 100644 index 4ddad20e..00000000 --- a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b532cf3722e04adb0bd075666eb9989a9390d0a2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 5 Apr 2014 13:23:25 -0400 -Subject: [PATCH] systemd-python: use .hex instead of .get_hex() - -It turns out the latter got removed in Python 3. - -https://bugs.freedesktop.org/show_bug.cgi?id=77086 ---- - src/python-systemd/journal.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git src/python-systemd/journal.py src/python-systemd/journal.py -index 9c7e004..dd1f229 100644 ---- src/python-systemd/journal.py -+++ src/python-systemd/journal.py -@@ -293,7 +293,7 @@ class Reader(_Reader): - monotonic = monotonic.totalseconds() - monotonic = int(monotonic * 1000000) - if isinstance(bootid, _uuid.UUID): -- bootid = bootid.get_hex() -+ bootid = bootid.hex - return super(Reader, self).seek_monotonic(monotonic, bootid) - - def log_level(self, level): -@@ -314,7 +314,7 @@ class Reader(_Reader): - Equivalent to add_match(MESSAGE_ID=`messageid`). - """ - if isinstance(messageid, _uuid.UUID): -- messageid = messageid.get_hex() -+ messageid = messageid.hex - self.add_match(MESSAGE_ID=messageid) - - def this_boot(self, bootid=None): -@@ -346,7 +346,7 @@ class Reader(_Reader): - - def get_catalog(mid): - if isinstance(mid, _uuid.UUID): -- mid = mid.get_hex() -+ mid = mid.hex - return _get_catalog(mid) - - def _make_line(field, value): --- -1.7.9.2 - diff --git a/0004-systemd-return-the-first-error-from-manager_startup.patch b/0004-systemd-return-the-first-error-from-manager_startup.patch deleted file mode 100644 index 0db56a17..00000000 --- a/0004-systemd-return-the-first-error-from-manager_startup.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 18 Jul 2014 17:05:18 -0400 -Subject: [PATCH] systemd: return the first error from manager_startup() - ---- - src/core/manager.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git src/core/manager.c src/core/manager.c -index 2e63c5e..0653d7e 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - dual_timestamp_get(&m->units_load_finish_timestamp); - - /* Second, deserialize if there is something to deserialize */ -- if (serialization) { -- q = manager_deserialize(m, serialization, fds); -- if (q < 0) -- r = q; -- } -+ if (serialization) -+ r = manager_deserialize(m, serialization, fds); - - /* Any fds left? Find some unit which wants them. This is - * useful to allow container managers to pass some file -@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - * socket-based activation of entire containers. */ - if (fdset_size(fds) > 0) { - q = manager_distribute_fds(m, fds); -- if (q < 0) -+ if (q < 0 && r == 0) - r = q; - } - - /* We might have deserialized the notify fd, but if we didn't - * then let's create the bus now */ -- manager_setup_notify(m); -+ q = manager_setup_notify(m); -+ if (q < 0 && r == 0) -+ r = q; - - /* We might have deserialized the kdbus control fd, but if we - * didn't, then let's create the bus now. */ -@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - - /* Third, fire things up! */ - q = manager_coldplug(m); -- if (q < 0) -+ if (q < 0 && r == 0) - r = q; - - if (serialization) { --- -1.7.9.2 - diff --git a/0004-util-ignore_file-should-not-allow-files-ending-with.patch b/0004-util-ignore_file-should-not-allow-files-ending-with.patch deleted file mode 100644 index a30b4c4f..00000000 --- a/0004-util-ignore_file-should-not-allow-files-ending-with.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 93f1a06374e335e8508d89e1bdaadf45be6ab777 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 31 May 2014 21:36:23 +0200 -Subject: [PATCH] util: ignore_file should not allow files ending with '~' - -ignore_file currently allows any file ending with '~' while it -seems that the opposite was intended: -a228a22fda4faa9ecb7c5a5e499980c8ae5d2a08 ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 0c27394..17b0ae1 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1371,7 +1371,7 @@ bool ignore_file(const char *filename) { - assert(filename); - - if (endswith(filename, "~")) -- return false; -+ return true; - - return ignore_file_allow_backup(filename); - } --- -1.7.9.2 - diff --git a/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch b/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch deleted file mode 100644 index 23ccc1d5..00000000 --- a/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 306a55c86360a7ae7b2509771d5ea6ab0d166d85 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 29 Jun 2014 22:15:33 +0200 -Subject: [PATCH] util: refuse considering UID 0xFFFF and 0xFFFFFFFF valid - ---- - src/shared/util.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git src/shared/util.c src/shared/util.c -index e7ff0f8..1709bb7 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -280,6 +280,14 @@ int parse_uid(const char *s, uid_t* ret_uid) { - if ((unsigned long) uid != ul) - return -ERANGE; - -+ /* Some libc APIs use (uid_t) -1 as special placeholder */ -+ if (uid == (uid_t) 0xFFFFFFFF) -+ return -EINVAL; -+ -+ /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ -+ if (uid == (uid_t) 0xFFFF) -+ return -EINVAL; -+ - *ret_uid = uid; - return 0; - } --- -1.7.9.2 - diff --git a/0005-Replace-var-run-with-run-in-remaining-places.patch b/0005-Replace-var-run-with-run-in-remaining-places.patch deleted file mode 100644 index 67c35e18..00000000 --- a/0005-Replace-var-run-with-run-in-remaining-places.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 41a55c46ab8fb4ef6727434227071321fc762cce Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 25 Feb 2014 20:11:04 -0500 -Subject: [PATCH] Replace /var/run with /run in remaining places - -/run was already used almost everywhere, fix the remaining places -for consistency. ---- - man/daemon.xml | 2 +- - man/runlevel.xml | 2 +- - man/tmpfiles.d.xml | 4 ++-- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/systemctl/systemctl.c | 4 ++-- - 5 files changed, 8 insertions(+), 8 deletions(-) - -diff --git man/daemon.xml man/daemon.xml -index 88dd082..fd29ba7 100644 ---- man/daemon.xml -+++ man/daemon.xml -@@ -149,7 +149,7 @@ - write the daemon PID (as returned by - getpid()) to a - PID file, for example -- /var/run/foobar.pid -+ /run/foobar.pid - (for a hypothetical daemon "foobar") - to ensure that the daemon cannot be - started more than once. This must be -diff --git man/runlevel.xml man/runlevel.xml -index 976753a..4db06dc 100644 ---- man/runlevel.xml -+++ man/runlevel.xml -@@ -124,7 +124,7 @@ - - - -- /var/run/utmp -+ /run/utmp - - The utmp database - runlevel reads the -diff --git man/tmpfiles.d.xml man/tmpfiles.d.xml -index 812129f..0a006d1 100644 ---- man/tmpfiles.d.xml -+++ man/tmpfiles.d.xml -@@ -441,8 +441,8 @@ r! /tmp/.X[0-9]*-lock - /etc/tmpfiles.d/screen.conf example - screen needs two directories created at boot with specific modes and ownership. - -- d /var/run/screens 1777 root root 10d --d /var/run/uscreens 0755 root root 10d12h -+ d /run/screens 1777 root root 10d -+d /run/uscreens 0755 root root 10d12h - - - /etc/tmpfiles.d/abrt.conf example -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index 20f540d..1318272 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; -+ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); - - return 0; - } -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 34d7079..8692716 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -3758,8 +3758,8 @@ static int show_one( - streq(verb, "status")) { - /* According to LSB: "program not running" */ - /* 0: program is running or service is OK -- * 1: program is dead and /var/run pid file exists -- * 2: program is dead and /var/lock lock file exists -+ * 1: program is dead and /run PID file exists -+ * 2: program is dead and /run/lock lock file exists - * 3: program is not running - * 4: program or service status is unknown - */ --- -1.7.9.2 - diff --git a/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch b/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch deleted file mode 100644 index 37c42d2e..00000000 --- a/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 4cd2b2cf8ca585d15ebc859701b346658262b5bb Mon Sep 17 00:00:00 2001 -From: Denis Tikhomirov -Date: Thu, 5 Jun 2014 23:59:40 +0400 -Subject: [PATCH] backlight: Do not clamp brightness for LEDs - -https://bugs.freedesktop.org/show_bug.cgi?id=77092 - -On Thu, Jun 05, 2014 at 08:37:20AM +0200, Lennart Poettering wrote: -> The patch is line-broken, please send an uncorrupted patch! -I am very sorry, I forgot that my client limits line width. I will use -mutt now on. -> clamp_brightness() clamps the brightness value to the range of the -> actual device. This is a recent addition that was added to deal with -> driver updates where the resolution is changed. I don't think this part -> should be dropped for LED devices. The clamp_brightness() call hence -> should be called unconditionally, however, internally it should use a -> different min_brightness value if something is an !backlight devices... -Thank you for explanation, this sounds very reasonable to me. Please, -see updated patch: ---- - src/backlight/backlight.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index 691472c..4d94ebf 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -225,11 +225,13 @@ static unsigned get_max_brightness(struct udev_device *device) { - - /* Some systems turn the backlight all the way off at the lowest levels. - * clamp_brightness clamps the saved brightness to at least 1 or 5% of -- * max_brightness. This avoids preserving an unreadably dim screen, which -- * would otherwise force the user to disable state restoration. */ -+ * max_brightness in case of 'backlight' subsystem. This avoids preserving -+ * an unreadably dim screen, which would otherwise force the user to -+ * disable state restoration. */ - static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { - int r; - unsigned brightness, new_brightness, min_brightness; -+ const char *subsystem; - - r = safe_atou(*value, &brightness); - if (r < 0) { -@@ -237,7 +239,12 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned - return; - } - -- min_brightness = MAX(1U, max_brightness/20); -+ subsystem = udev_device_get_subsystem(device); -+ if (streq_ptr(subsystem, "backlight")) -+ min_brightness = MAX(1U, max_brightness/20); -+ else -+ min_brightness = 0; -+ - new_brightness = CLAMP(brightness, min_brightness, max_brightness); - if (new_brightness != brightness) { - char *old_value = *value; --- -1.7.9.2 - diff --git a/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch b/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch deleted file mode 100644 index bee5ed1a..00000000 --- a/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 0c9d8f1d4b5018199cb5a9b57580dc1480a7f915 Mon Sep 17 00:00:00 2001 -From: Jani Nikula -Date: Wed, 7 May 2014 12:01:01 +0300 -Subject: [PATCH] backlight: handle saved brightness exceeding max brightness - -If too high a brightness value has been saved (e.g. due to kernel -mechanism changing from one kernel version to another, or booting the -userspace on another system), the brightness update fails and the -process exits. - -Clamp saved brightness between the policy minimum introduced in - -commit 7b909d7407965c03caaba30daae7aee113627a83 -Author: Josh Triplett -Date: Tue Mar 11 21:16:33 2014 -0700 - - backlight: Avoid restoring brightness to an unreadably dim level - -and the absolute maximum. - -https://bugs.freedesktop.org/show_bug.cgi?id=78200 ---- - src/backlight/backlight.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index c708391..691472c 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -229,7 +229,7 @@ static unsigned get_max_brightness(struct udev_device *device) { - * would otherwise force the user to disable state restoration. */ - static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { - int r; -- unsigned brightness, new_brightness; -+ unsigned brightness, new_brightness, min_brightness; - - r = safe_atou(*value, &brightness); - if (r < 0) { -@@ -237,7 +237,8 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned - return; - } - -- new_brightness = MAX3(brightness, 1U, max_brightness/20); -+ min_brightness = MAX(1U, max_brightness/20); -+ new_brightness = CLAMP(brightness, min_brightness, max_brightness); - if (new_brightness != brightness) { - char *old_value = *value; - -@@ -247,7 +248,11 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned - return; - } - -- log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); -+ log_info("Saved brightness %s %s to %s.", old_value, -+ new_brightness > brightness ? -+ "too low; increasing" : "too high; decreasing", -+ *value); -+ - free(old_value); - } - } --- -1.7.9.2 - diff --git a/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch b/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch deleted file mode 100644 index 119d1108..00000000 --- a/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c119700c06b248b1c2a082b40b1a346f58d89da0 Mon Sep 17 00:00:00 2001 -From: Philippe De Swert -Date: Sun, 28 Sep 2014 18:12:51 +0300 -Subject: [PATCH] bootchart: Do not try to access data for non-existing CPU's - -Cpu's are assigned normally, so starting at 0, so the MAX_CPU index will -always be one smaller than the actual number. - -Found with Coverity. ---- - src/bootchart/store.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/bootchart/store.c src/bootchart/store.c -index 3099ff1..9ea1b27 100644 ---- src/bootchart/store.c -+++ src/bootchart/store.c -@@ -199,7 +199,7 @@ vmstat_next: - - if (strstr(key, "cpu")) { - r = safe_atoi((const char*)(key+3), &c); -- if (r < 0 || c > MAXCPUS) -+ if (r < 0 || c > MAXCPUS -1) - /* Oops, we only have room for MAXCPUS data */ - break; - sampledata->runtime[c] = atoll(rt); --- -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 deleted file mode 100644 index 93f4711e..00000000 --- a/0005-bus-avoid-using-m-kdbus-after-freeing-it.patch +++ /dev/null @@ -1,35 +0,0 @@ -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/0005-bus-close-a-bus-that-failed-to-connect.patch b/0005-bus-close-a-bus-that-failed-to-connect.patch deleted file mode 100644 index 9633317f..00000000 --- a/0005-bus-close-a-bus-that-failed-to-connect.patch +++ /dev/null @@ -1,28 +0,0 @@ -From db9bb83fa5ec72da38eb5bd0c259ef8c76a71858 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 01:19:21 +0200 -Subject: [PATCH] bus: close a bus that failed to connect - ---- - 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 c25375c..28fc19e 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -1033,8 +1033,10 @@ _public_ int sd_bus_start(sd_bus *bus) { - else - return -EINVAL; - -- if (r < 0) -+ if (r < 0) { -+ sd_bus_close(bus); - return r; -+ } - - return bus_send_hello(bus); - } --- -1.7.9.2 - diff --git a/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch b/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch deleted file mode 100644 index 361a1713..00000000 --- a/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch +++ /dev/null @@ -1,137 +0,0 @@ -From cdc06ed7b6120c1049305fa7033f228ee9d86043 Mon Sep 17 00:00:00 2001 -From: David Strauss -Date: Mon, 28 Apr 2014 12:08:32 -0700 -Subject: [PATCH] core: Filter by state behind the D-Bus API, not in the - systemctl client. - ---- - src/core/dbus-manager.c | 24 +++++++++++++++++++++++- - src/core/org.freedesktop.systemd1.conf | 4 ++++ - src/systemctl/systemctl.c | 24 +++++++++++++----------- - 3 files changed, 40 insertions(+), 12 deletions(-) - -diff --git src/core/dbus-manager.c src/core/dbus-manager.c -index 58e484d..d5fab0a 100644 ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c -@@ -728,7 +728,7 @@ static int method_reset_failed(sd_bus *bus, sd_bus_message *message, void *userd - return sd_bus_reply_method_return(message, NULL); - } - --static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { -+static int list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error, char **states) { - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - Manager *m = userdata; - const char *k; -@@ -761,6 +761,12 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat - - following = unit_following(u); - -+ if (!strv_isempty(states) && -+ !strv_contains(states, unit_load_state_to_string(u->load_state)) && -+ !strv_contains(states, unit_active_state_to_string(unit_active_state(u))) && -+ !strv_contains(states, unit_sub_state_to_string(u))) -+ continue; -+ - unit_path = unit_dbus_path(u); - if (!unit_path) - return -ENOMEM; -@@ -794,6 +800,21 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat - return sd_bus_send(bus, reply, NULL); - } - -+static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { -+ return list_units_filtered(bus, message, userdata, error, NULL); -+} -+ -+static int method_list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { -+ _cleanup_strv_free_ char **states = NULL; -+ int r; -+ -+ r = sd_bus_message_read_strv(message, &states); -+ if (r < 0) -+ return r; -+ -+ return list_units_filtered(bus, message, userdata, error, states); -+} -+ - static int method_list_jobs(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - Manager *m = userdata; -@@ -1670,6 +1691,7 @@ const sd_bus_vtable bus_manager_vtable[] = { - SD_BUS_METHOD("ClearJobs", NULL, NULL, method_clear_jobs, 0), - SD_BUS_METHOD("ResetFailed", NULL, NULL, method_reset_failed, 0), - SD_BUS_METHOD("ListUnits", NULL, "a(ssssssouso)", method_list_units, SD_BUS_VTABLE_UNPRIVILEGED), -+ SD_BUS_METHOD("ListUnitsFiltered", "as", "a(ssssssouso)", method_list_units_filtered, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("ListJobs", NULL, "a(usssoo)", method_list_jobs, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Subscribe", NULL, NULL, method_subscribe, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Unsubscribe", NULL, NULL, method_unsubscribe, SD_BUS_VTABLE_UNPRIVILEGED), -diff --git src/core/org.freedesktop.systemd1.conf src/core/org.freedesktop.systemd1.conf -index a375dce..9dfca81 100644 ---- src/core/org.freedesktop.systemd1.conf -+++ src/core/org.freedesktop.systemd1.conf -@@ -64,6 +64,10 @@ - - -+ -+ - - load_state) || -- strv_contains(arg_states, u->sub_state) || -- strv_contains(arg_states, u->active_state); -- - if (!strv_isempty(patterns)) { - char **pattern; - -@@ -467,6 +461,7 @@ static int get_unit_list( - UnitInfo **_unit_infos, - char **patterns) { - -+ _cleanup_bus_message_unref_ sd_bus_message *m = NULL; - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - _cleanup_free_ UnitInfo *unit_infos = NULL; -@@ -478,15 +473,22 @@ static int get_unit_list( - assert(_reply); - assert(_unit_infos); - -- r = sd_bus_call_method( -+ r = sd_bus_message_new_method_call( - bus, -+ &m, - "org.freedesktop.systemd1", - "/org/freedesktop/systemd1", - "org.freedesktop.systemd1.Manager", -- "ListUnits", -- &error, -- &reply, -- NULL); -+ "ListUnitsFiltered"); -+ -+ if (r < 0) -+ return bus_log_create_error(r); -+ -+ r = sd_bus_message_append_strv(m, arg_states); -+ if (r < 0) -+ return bus_log_create_error(r); -+ -+ r = sd_bus_call(bus, m, 0, &error, &reply); - if (r < 0) { - log_error("Failed to list units: %s", bus_error_message(&error, r)); - return r; --- -1.7.9.2 - diff --git a/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch b/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch deleted file mode 100644 index 05d6edc1..00000000 --- a/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch +++ /dev/null @@ -1,121 +0,0 @@ -Based on c264aeab4b0e7b69f469e12e78d4a48b3ed7a66e Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 27 Jul 2014 00:11:08 +0200 -Subject: [PATCH] core: only set the kernel's timezone when the RTC runs in - local time - -We can not reliably manage any notion of local time. Every daylight -saving time change or time zone change by traveling will make the -time jump, and the local time might jump backwards which creates -unsolvable problems with file timestamps. - -We will no longer tell the kernel our local time zone and leave -everything set to UTC. This will effectively turn FAT timestamps -into UTC timestamps. - -If and only if the machine is configured to read the RTC in local -time mode, the kernel's time zone will be configured, but -systemd-timesysnc will disable the kernel's system time to RTC -syncing. In this mode, the RTC will not be managed, and external -tools like Windows bootups are expected to manage the RTC's time. - -https://bugs.freedesktop.org/show_bug.cgi?id=81538 ---- - src/core/main.c | 23 +++++++++++++++-------- - src/shared/hwclock.c | 15 ++++++++------- - src/shared/hwclock.h | 2 +- - 3 files changed, 24 insertions(+), 16 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-07-28 09:59:35.778235585 +0000 -@@ -1349,7 +1349,14 @@ int main(int argc, char *argv[]) { - if (hwclock_is_localtime() > 0) { - int min; - -- /* The first-time call to settimeofday() does a time warp in the kernel */ -+ /* -+ * The very first call of settimeofday() also does a time warp in the kernel. -+ * -+ * In the rtc-in-local time mode, we set the kernel's timezone, and rely on -+ * external tools to take care of maintaining the RTC and do all adjustments. -+ * This matches the behavior of Windows, which leaves the RTC alone if the -+ * registry tells that the RTC runs in UTC. -+ */ - r = hwclock_set_timezone(&min); - if (r < 0) - log_error("Failed to apply local time delta, ignoring: %s", strerror(-r)); -@@ -1357,19 +1364,19 @@ int main(int argc, char *argv[]) { - log_info("RTC configured in localtime, applying delta of %i minutes to system time.", min); - } else if (!in_initrd()) { - /* -- * Do dummy first-time call to seal the kernel's time warp magic -+ * Do a dummy very first call to seal the kernel's time warp magic. - * - * Do not call this this from inside the initrd. The initrd might not - * carry /etc/adjtime with LOCAL, but the real system could be set up - * that way. In such case, we need to delay the time-warp or the sealing - * until we reach the real system. -+ * -+ * Do no set the kernel's timezone. The concept of local time cannot -+ * be supported reliably, the time will jump or be incorrect at every daylight -+ * saving time change. All kernel local time concepts will be treated -+ * as UTC that way. - */ -- hwclock_reset_timezone(); -- -- /* Tell the kernel our timezone */ -- r = hwclock_set_timezone(NULL); -- if (r < 0) -- log_error("Failed to set the kernel's timezone, ignoring: %s", strerror(-r)); -+ hwclock_reset_timewarp(); - } - } - ---- src/shared/hwclock.c -+++ src/shared/hwclock.c 2014-07-28 09:59:12.914235566 +0000 -@@ -124,9 +124,10 @@ int hwclock_set_timezone(int *min) { - tz.tz_dsttime = 0; /* DST_NONE*/ - - /* -- * If the hardware clock does not run in UTC, but in local time: -- * The very first time we set the kernel's timezone, it will warp -- * the clock so that it runs in UTC instead of local time. -+ * If the RTC does not run in UTC but in local time, the very first -+ * call to settimeofday() will set the kernel's timezone and will warp the -+ * system clock, so that it runs in UTC instead of the local time we -+ * have read from the RTC. - */ - if (settimeofday(tv_null, &tz) < 0) - return -errno; -@@ -135,7 +136,7 @@ int hwclock_set_timezone(int *min) { - return 0; - } - --int hwclock_reset_timezone(void) { -+int hwclock_reset_timewarp(void) { - const struct timeval *tv_null = NULL; - struct timezone tz; - -@@ -143,9 +144,9 @@ int hwclock_reset_timezone(void) { - tz.tz_dsttime = 0; /* DST_NONE*/ - - /* -- * The very first time we set the kernel's timezone, it will warp -- * the clock. Do a dummy call here, so the time warping is sealed -- * and we set only the timezone with next call. -+ * The very first call to settimeofday() does time warp magic. Do a -+ * dummy call here, so the time warping is sealed and all later calls -+ * behave as expected. - */ - if (settimeofday(tv_null, &tz) < 0) - return -errno; ---- src/shared/hwclock.h -+++ src/shared/hwclock.h 2014-07-28 09:59:25.034736002 +0000 -@@ -23,6 +23,6 @@ - - int hwclock_is_localtime(void); - int hwclock_set_timezone(int *min); --int hwclock_reset_timezone(void); -+int hwclock_reset_timewarp(void); - int hwclock_get_time(struct tm *tm); - int hwclock_set_time(const struct tm *tm); diff --git a/0005-cryptsetup-fix-an-OOM-check.patch b/0005-cryptsetup-fix-an-OOM-check.patch deleted file mode 100644 index 23b39bb5..00000000 --- a/0005-cryptsetup-fix-an-OOM-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0e2f14014c65b4d8b30146e414579154cfa932da Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 23 Oct 2014 00:30:04 +0200 -Subject: [PATCH] cryptsetup: fix an OOM check - ---- - src/cryptsetup/cryptsetup-generator.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/cryptsetup/cryptsetup-generator.c src/cryptsetup/cryptsetup-generator.c -index 137b787..c7f30f6 100644 ---- src/cryptsetup/cryptsetup-generator.c -+++ src/cryptsetup/cryptsetup-generator.c -@@ -387,7 +387,7 @@ int main(int argc, char *argv[]) { - if (k == 2 && streq(proc_uuid, device + 5)) { - free(options); - options = strdup(p); -- if (!proc_options) { -+ if (!options) { - log_oom(); - goto cleanup; - } --- -1.7.9.2 - diff --git a/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index a309f6b9..00000000 --- a/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 24e29480bd800d3acdb3087e5863440bd0dd1d80 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Fri, 16 May 2014 15:57:35 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 53 ++++++++++++++++++++++++++++++++- - 1 file changed, 52 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 28aa2a7..a65c7db 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -961,4 +961,55 @@ bluetooth:v013D* - ID_VENDOR_FROM_DATABASE=WirelessWERX - - bluetooth:v013E* -- ID_VENDOR_FROM_DATABASE=nimai -+ ID_VENDOR_FROM_DATABASE=Nod, Inc. -+ -+bluetooth:v013F* -+ ID_VENDOR_FROM_DATABASE=B&B Manufacturing Company -+ -+bluetooth:v0140* -+ ID_VENDOR_FROM_DATABASE=Alpine Electronics (China) Co., Ltd -+ -+bluetooth:v0141* -+ ID_VENDOR_FROM_DATABASE=FedEx Services -+ -+bluetooth:v0142* -+ ID_VENDOR_FROM_DATABASE=Grape Systems Inc. -+ -+bluetooth:v0143* -+ ID_VENDOR_FROM_DATABASE=Bkon Connect -+ -+bluetooth:v0144* -+ ID_VENDOR_FROM_DATABASE=Lintech GmbH -+ -+bluetooth:v0145* -+ ID_VENDOR_FROM_DATABASE=Novatel Wireless -+ -+bluetooth:v0146* -+ ID_VENDOR_FROM_DATABASE=Ciright -+ -+bluetooth:v0147* -+ ID_VENDOR_FROM_DATABASE=Mighty Cast, Inc. -+ -+bluetooth:v0148* -+ ID_VENDOR_FROM_DATABASE=Ambimat Electronics -+ -+bluetooth:v0149* -+ ID_VENDOR_FROM_DATABASE=Perytons Ltd. -+ -+bluetooth:v014A* -+ ID_VENDOR_FROM_DATABASE=Tivoli Audio, LLC -+ -+bluetooth:v014B* -+ ID_VENDOR_FROM_DATABASE=Master Lock -+ -+bluetooth:v014C* -+ ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd -+ -+bluetooth:v014D* -+ ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. -+ -+bluetooth:v014E* -+ ID_VENDOR_FROM_DATABASE=Tangerine, Inc. -+ -+bluetooth:v014F* -+ ID_VENDOR_FROM_DATABASE=B&W Group Ltd. --- -1.7.9.2 - diff --git a/0005-hwdb-update.patch b/0005-hwdb-update.patch deleted file mode 100644 index e97da5f5..00000000 --- a/0005-hwdb-update.patch +++ /dev/null @@ -1,1560 +0,0 @@ -From 7ba52a1283a0864b56947fa091048e8fe31a5899 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 21 May 2014 18:19:24 +0900 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 155 ++++++++++++++++++++- - hwdb/20-pci-vendor-model.hwdb | 141 ++++++++++++++++--- - hwdb/20-usb-vendor-model.hwdb | 302 ++++++++++++++++++++++++++++++++++++++++- - 3 files changed, 572 insertions(+), 26 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index afc0d90..6188bfc 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -52915,6 +52915,9 @@ OUI:0CA42A* - OUI:0CA694* - ID_OUI_FROM_DATABASE=Sunitec Enterprise Co.,Ltd - -+OUI:0CAC05* -+ ID_OUI_FROM_DATABASE=Unitend Technologies Inc. -+ - OUI:0CAF5A* - ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED - -@@ -53164,6 +53167,9 @@ OUI:1048B1* - OUI:104D77* - ID_OUI_FROM_DATABASE=Innovative Computer Engineering - -+OUI:105172* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:1056CA* - ID_OUI_FROM_DATABASE=Peplink International Ltd. - -@@ -53488,6 +53494,9 @@ OUI:147373* - OUI:147411* - ID_OUI_FROM_DATABASE=RIM - -+OUI:147590* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:147DB3* - ID_OUI_FROM_DATABASE=JOA TELECOM.CO.,LTD - -@@ -53899,6 +53908,9 @@ OUI:18C8E7* - OUI:18CC23* - ID_OUI_FROM_DATABASE=Philio Technology Corporation - -+OUI:18CF5E* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:18D071* - ID_OUI_FROM_DATABASE=DASAN SMC, Inc. - -@@ -54517,6 +54529,9 @@ OUI:20E791* - OUI:20EAC7* - ID_OUI_FROM_DATABASE=SHENZHEN RIOPINE ELECTRONICS CO., LTD - -+OUI:20ED74* -+ ID_OUI_FROM_DATABASE=Ability enterprise co.,Ltd. -+ - OUI:20EEC6* - ID_OUI_FROM_DATABASE=Elefirst Science & Tech Co ., ltd - -@@ -54742,6 +54757,9 @@ OUI:24CBE7* - OUI:24CF21* - ID_OUI_FROM_DATABASE=Shenzhen State Micro Technology Co., Ltd - -+OUI:24D13F* -+ ID_OUI_FROM_DATABASE=MEXUS CO.,LTD -+ - OUI:24D2CC* - ID_OUI_FROM_DATABASE=SmartDrive Systems Inc. - -@@ -55438,6 +55456,9 @@ OUI:2CF203* - OUI:2CF4C5* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:2CFAA2* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:30055C* - ID_OUI_FROM_DATABASE=Brother industries, LTD. - -@@ -55708,6 +55729,9 @@ OUI:30F9ED* - OUI:30FD11* - ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. - -+OUI:3400A3* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:340286* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -56077,6 +56101,9 @@ OUI:38229D* - OUI:3822D6* - ID_OUI_FROM_DATABASE=H3C Technologies Co., Limited - -+OUI:38262B* -+ ID_OUI_FROM_DATABASE=UTran Technology -+ - OUI:3826CD* - ID_OUI_FROM_DATABASE=ANDTEK - -@@ -56395,6 +56422,9 @@ OUI:3C404F* - OUI:3C438E* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:3C46D8* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:3C4A92* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -@@ -56710,6 +56740,9 @@ OUI:404A18* - OUI:404D8E* - ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd - -+OUI:404EEB* -+ ID_OUI_FROM_DATABASE=Higher Way Electronic Co., Ltd. -+ - OUI:4050E0* - ID_OUI_FROM_DATABASE=Milton Security Group LLC - -@@ -57709,6 +57742,9 @@ OUI:4CB9C8* - OUI:4CBAA3* - ID_OUI_FROM_DATABASE=Bison Electronics Inc. - -+OUI:4CBB58* -+ ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. -+ - OUI:4CBCA5* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -57757,6 +57793,9 @@ OUI:4CEDDE* - OUI:4CF02E* - ID_OUI_FROM_DATABASE=Vifa Denmark A/S - -+OUI:4CF2BF* -+ ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd. -+ - OUI:4CF45B* - ID_OUI_FROM_DATABASE=Blue Clover Devices - -@@ -57994,6 +58033,9 @@ OUI:50B888* - OUI:50B8A2* - ID_OUI_FROM_DATABASE=ImTech Technologies LLC, - -+OUI:50BD5F* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:50C006* - ID_OUI_FROM_DATABASE=Carmanah Signs - -@@ -58285,6 +58327,9 @@ OUI:54D1B0* - OUI:54D46F* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:54DF00* -+ ID_OUI_FROM_DATABASE=Ulterius Technologies, LLC -+ - OUI:54DF63* - ID_OUI_FROM_DATABASE=Intrakey technologies GmbH - -@@ -58597,6 +58642,9 @@ OUI:58F6BF* - OUI:58F98E* - ID_OUI_FROM_DATABASE=SECUDOS GmbH - -+OUI:58FCDB* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:58FD20* - ID_OUI_FROM_DATABASE=Bravida Sakerhet AB - -@@ -58621,6 +58669,9 @@ OUI:5C1193* - OUI:5C1437* - ID_OUI_FROM_DATABASE=Thyssenkrupp Aufzugswerke GmbH - -+OUI:5C1515* -+ ID_OUI_FROM_DATABASE=ADVAN -+ - OUI:5C15E1* - ID_OUI_FROM_DATABASE=AIDC TECHNOLOGY (S) PTE LTD - -@@ -58891,12 +58942,18 @@ OUI:5CF96A* - OUI:5CF9DD* - ID_OUI_FROM_DATABASE=Dell Inc - -+OUI:5CF9F0* -+ ID_OUI_FROM_DATABASE=Atomos Engineering P/L -+ - OUI:5CFF35* - ID_OUI_FROM_DATABASE=Wistron Corporation - - OUI:5CFFFF* - ID_OUI_FROM_DATABASE=Shenzhen Kezhonglong Optoelectronic Technology Co., Ltd - -+OUI:600292* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:6002B4* - ID_OUI_FROM_DATABASE=Wistron NeWeb Corp. - -@@ -59323,6 +59380,9 @@ OUI:644F74* - OUI:644FB0* - ID_OUI_FROM_DATABASE=Hyunjin.com - -+OUI:645106* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:64517E* - ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. - -@@ -59902,6 +59962,9 @@ OUI:68FB95* - OUI:68FCB3* - ID_OUI_FROM_DATABASE=Next Level Security Systems, Inc. - -+OUI:6C0273* -+ ID_OUI_FROM_DATABASE=Shenzhen Jin Yun Video Equipment Co., Ltd. -+ - OUI:6C0460* - ID_OUI_FROM_DATABASE=RBH Access Technologies Inc. - -@@ -60874,6 +60937,9 @@ OUI:781FDB* - OUI:78223D* - ID_OUI_FROM_DATABASE=Affirmed Networks - -+OUI:7824AF* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:782544* - ID_OUI_FROM_DATABASE=Omnima Limited - -@@ -60919,6 +60985,9 @@ OUI:784405* - OUI:784476* - ID_OUI_FROM_DATABASE=Zioncom technology co.,ltd - -+OUI:784561* -+ ID_OUI_FROM_DATABASE=CyberTAN Technology Inc. -+ - OUI:7845C4* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -61024,6 +61093,9 @@ OUI:789966* - OUI:78998F* - ID_OUI_FROM_DATABASE=MEDILINE ITALIA SRL - -+OUI:789CE7* -+ ID_OUI_FROM_DATABASE=Shenzhen Aikede Technology Co., Ltd -+ - OUI:789ED0* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -61480,6 +61552,9 @@ OUI:7CC8D7* - OUI:7CCB0D* - ID_OUI_FROM_DATABASE=Antaira Technologies, LLC - -+OUI:7CCCB8* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:7CCD11* - ID_OUI_FROM_DATABASE=MS-Magnet - -@@ -61945,6 +62020,9 @@ OUI:842F75* - OUI:8430E5* - ID_OUI_FROM_DATABASE=SkyHawke Technologies, LLC - -+OUI:8432EA* -+ ID_OUI_FROM_DATABASE=ANHUI WANZTEN P&T CO., LTD -+ - OUI:843497* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -63295,6 +63373,9 @@ OUI:94CDAC* - OUI:94CE2C* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -+OUI:94CE31* -+ ID_OUI_FROM_DATABASE=CTS Limited -+ - OUI:94D019* - ID_OUI_FROM_DATABASE=Cydle Corp. - -@@ -63409,6 +63490,9 @@ OUI:982CBE* - OUI:982D56* - ID_OUI_FROM_DATABASE=Resolution Audio - -+OUI:982F3C* -+ ID_OUI_FROM_DATABASE=Sichuan Changhong Electric Ltd. -+ - OUI:983000* - ID_OUI_FROM_DATABASE=Beijing KEMACOM Technologies Co., Ltd. - -@@ -63508,6 +63592,9 @@ OUI:9876B6* - OUI:987770* - ID_OUI_FROM_DATABASE=Pep Digital Technology (Guangzhou) Co., Ltd - -+OUI:987E46* -+ ID_OUI_FROM_DATABASE=Emizon Networks Limited -+ - OUI:988217* - ID_OUI_FROM_DATABASE=Disruptive Ltd - -@@ -64303,6 +64390,9 @@ OUI:A40BED* - OUI:A40CC3* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:A41242* -+ ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ - OUI:A4134E* - ID_OUI_FROM_DATABASE=Luxul - -@@ -65740,6 +65830,9 @@ OUI:B4B5AF* - OUI:B4B676* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:B4B859* -+ ID_OUI_FROM_DATABASE=Texa Spa -+ - OUI:B4B88D* - ID_OUI_FROM_DATABASE=Thuh Company - -@@ -65815,6 +65908,9 @@ OUI:B80305* - OUI:B80415* - ID_OUI_FROM_DATABASE=Bayan Audio - -+OUI:B808CF* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:B80B9D* - ID_OUI_FROM_DATABASE=ROPEX Industrie-Elektronik GmbH - -@@ -66277,6 +66373,9 @@ OUI:BC5FF4* - OUI:BC629F* - ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. - -+OUI:BC671C* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:BC6778* - ID_OUI_FROM_DATABASE=Apple - -@@ -66412,6 +66511,9 @@ OUI:BCCFCC* - OUI:BCD177* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:BCD1D3* -+ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp -+ - OUI:BCD5B6* - ID_OUI_FROM_DATABASE=d2d technologies - -@@ -66706,6 +66808,9 @@ OUI:C0E54E* - OUI:C0EAE4* - ID_OUI_FROM_DATABASE=Sonicwall - -+OUI:C0EEFB* -+ ID_OUI_FROM_DATABASE=OnePlus Tech (Shenzhen) Ltd -+ - OUI:C0F1C4* - ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. - -@@ -66721,6 +66826,9 @@ OUI:C0F8DA* - OUI:C0F991* - ID_OUI_FROM_DATABASE=GME Standard Communications P/L - -+OUI:C40006* -+ ID_OUI_FROM_DATABASE=Lipi Data Systems Ltd. -+ - OUI:C40142* - ID_OUI_FROM_DATABASE=MaxMedia Technology Limited - -@@ -67885,6 +67993,9 @@ OUI:D09C30* - OUI:D09D0A* - ID_OUI_FROM_DATABASE=LINKCOM - -+OUI:D0A0D6* -+ ID_OUI_FROM_DATABASE=Chengdu TD Tech Ltd. -+ - OUI:D0A311* - ID_OUI_FROM_DATABASE=Neuberger Gebäudeautomation GmbH - -@@ -68126,7 +68237,7 @@ OUI:D45AB2* - ID_OUI_FROM_DATABASE=Galleon Systems - - OUI:D45C70* -- ID_OUI_FROM_DATABASE=Wireless Gigabit Alliance -+ ID_OUI_FROM_DATABASE=Wi-Fi Alliance - - OUI:D45D42* - ID_OUI_FROM_DATABASE=Nokia Corporation -@@ -68359,6 +68470,9 @@ OUI:D808F5* - OUI:D809C3* - ID_OUI_FROM_DATABASE=Cercacor Labs - -+OUI:D80CCF* -+ ID_OUI_FROM_DATABASE=C.G.V. S.A.S. -+ - OUI:D80DE3* - ID_OUI_FROM_DATABASE=FXI TECHNOLOGIES AS - -@@ -68386,6 +68500,9 @@ OUI:D81EDE* - OUI:D824BD* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:D82522* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:D826B9* - ID_OUI_FROM_DATABASE=Guangdong Coagent Electronics S &T Co., Ltd. - -@@ -68521,6 +68638,9 @@ OUI:D89685* - OUI:D89695* - ID_OUI_FROM_DATABASE=Apple - -+OUI:D896E0* -+ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. -+ - OUI:D8973B* - ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - -@@ -68941,6 +69061,9 @@ OUI:E01C41* - OUI:E01CEE* - ID_OUI_FROM_DATABASE=Bravo Tech, Inc. - -+OUI:E01D38* -+ ID_OUI_FROM_DATABASE=Beijing HuaqinWorld Technology Co.,Ltd -+ - OUI:E01D3B* - ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd - -@@ -69373,6 +69496,9 @@ OUI:E47CF9* - OUI:E47D5A* - ID_OUI_FROM_DATABASE=Beijing Hanbang Technology Corp. - -+OUI:E47FB2* -+ ID_OUI_FROM_DATABASE=Fujitsu Limited -+ - OUI:E48184* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -69829,6 +69955,9 @@ OUI:EC219F* - OUI:EC2257* - ID_OUI_FROM_DATABASE=JiangSu NanJing University Electronic Information Technology Co.,Ltd - -+OUI:EC2280* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:EC233D* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -69970,6 +70099,9 @@ OUI:ECB106* - OUI:ECB541* - ID_OUI_FROM_DATABASE=SHINANO E and E Co.Ltd. - -+OUI:ECB907* -+ ID_OUI_FROM_DATABASE=CloudGenix Inc -+ - OUI:ECBBAE* - ID_OUI_FROM_DATABASE=Digivoice Tecnologia em Eletronica Ltda - -@@ -70189,6 +70321,9 @@ OUI:F0728C* - OUI:F073AE* - ID_OUI_FROM_DATABASE=PEAK-System Technik - -+OUI:F0761C* -+ ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. -+ - OUI:F07765* - ID_OUI_FROM_DATABASE=Sourcefire, Inc - -@@ -70378,6 +70513,9 @@ OUI:F40321* - OUI:F4044C* - ID_OUI_FROM_DATABASE=ValenceTech Limited - -+OUI:F40669* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:F4068D* - ID_OUI_FROM_DATABASE=devolo AG - -@@ -70642,6 +70780,9 @@ OUI:F4EC38* - OUI:F4F15A* - ID_OUI_FROM_DATABASE=Apple - -+OUI:F4F26D* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:F4F5A5* - ID_OUI_FROM_DATABASE=Nokia corporation - -@@ -70825,6 +70966,9 @@ OUI:F871FE* - OUI:F872EA* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:F87394* -+ ID_OUI_FROM_DATABASE=NETGEAR INC., -+ - OUI:F8769B* - ID_OUI_FROM_DATABASE=Neopis Co., Ltd. - -@@ -70915,6 +71059,9 @@ OUI:F8C001* - OUI:F8C091* - ID_OUI_FROM_DATABASE=Highgates Technology - -+OUI:F8C288* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F8C678* - ID_OUI_FROM_DATABASE=Carefusion - -@@ -71167,6 +71314,9 @@ OUI:FC683E* - OUI:FC6C31* - ID_OUI_FROM_DATABASE=LXinstruments GmbH - -+OUI:FC6DC0* -+ ID_OUI_FROM_DATABASE=BME CORPORATION -+ - OUI:FC7516* - ID_OUI_FROM_DATABASE=D-Link International - -@@ -71319,3 +71469,6 @@ OUI:FCFBFB* - - OUI:FCFE77* - ID_OUI_FROM_DATABASE=Hitachi Reftechno, Inc. -+ -+OUI:FCFFAA* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAL public listing for more information. -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 2957774..62941b9 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -4205,6 +4205,9 @@ pci:v00001002d00005F57* - pci:v00001002d00006600* - ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] - -+pci:v00001002d00006600sv0000103Csd00001952* -+ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] (ProBook 455 G1) -+ - pci:v00001002d00006601* - ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] - -@@ -4292,6 +4295,12 @@ pci:v00001002d00006640* - pci:v00001002d00006641* - ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] - -+pci:v00001002d00006646* -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon R9 M280X] -+ -+pci:v00001002d00006647* -+ ID_MODEL_FROM_DATABASE=Bonaire PRO [Radeon R9 M270X] -+ - pci:v00001002d00006649* - ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] - -@@ -6137,6 +6146,9 @@ pci:v00001002d0000683Dsv0000103Csd00006890* - pci:v00001002d0000683Dsv00001043sd00008760* - ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - -+pci:v00001002d0000683Dsv00001462sd00002710* -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (R7770-PMD1GD5) -+ - pci:v00001002d0000683Dsv0000174Bsd00008304* - ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - -@@ -7856,6 +7868,15 @@ pci:v00001002d00006901* - pci:v00001002d00006920* - ID_MODEL_FROM_DATABASE=Tonga - -+pci:v00001002d00006921* -+ ID_MODEL_FROM_DATABASE=Amethyst XT [Radeon R9 M295X] -+ -+pci:v00001002d0000692B* -+ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] -+ -+pci:v00001002d0000692F* -+ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] -+ - pci:v00001002d0000700F* - ID_MODEL_FROM_DATABASE=RS100 AGP Bridge - -@@ -24470,6 +24491,9 @@ pci:v000010DEd00000640* - pci:v000010DEd00000641* - ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] - -+pci:v000010DEd00000641sv00001682sd00004009* -+ ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] (PV-T94G-ZAFG) -+ - pci:v000010DEd00000643* - ID_MODEL_FROM_DATABASE=G96 [GeForce 9500 GT] - -@@ -26306,6 +26330,9 @@ pci:v000010DEd00000FD8* - pci:v000010DEd00000FD9* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 645M] - -+pci:v000010DEd00000FDB* -+ ID_MODEL_FROM_DATABASE=GK107M -+ - pci:v000010DEd00000FDF* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 740M] - -@@ -26861,6 +26888,12 @@ pci:v000010DEd00001140sv00001028sd000005E8* - pci:v000010DEd00001140sv00001028sd000005F4* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv00001028sd0000064E* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001028sd0000068D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv0000103Csd000018EF* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -@@ -27185,6 +27218,36 @@ pci:v000010DEd00001140sv000017AAsd00003803* - pci:v000010DEd00001140sv000017AAsd00003804* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv000017AAsd00003806* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ -+pci:v000010DEd00001140sv000017AAsd00003808* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ -+pci:v000010DEd00001140sv000017AAsd0000380D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd0000380E* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd0000380F* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003811* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003812* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003813* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003816* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003818* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv000017AAsd00003901* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) - -@@ -27260,12 +27323,27 @@ pci:v000010DEd00001140sv000017AAsd0000502E* - pci:v000010DEd00001140sv000017AAsd0000502F* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv000017AAsd00005030* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ -+pci:v000010DEd00001140sv000017AAsd00005031* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ -+pci:v000010DEd00001140sv000017AAsd00005032* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00005033* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv000017AAsd0000503E* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000503F* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -+pci:v000010DEd00001140sv000017AAsd00005040* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001854sd00000177* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - -@@ -28443,7 +28521,7 @@ pci:v000010ECd00008168sv00001043sd00008432* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) - - pci:v000010ECd00008168sv00001043sd00008505* -- ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8 series motherboard) - - pci:v000010ECd00008168sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) -@@ -35300,6 +35378,9 @@ pci:v000011ABd00007810* - pci:v000011ABd00007820* - ID_MODEL_FROM_DATABASE=MV78200 [Discovery Innovation] ARM SoC - -+pci:v000011ABd00007823* -+ ID_MODEL_FROM_DATABASE=MV78230 [Armada XP] ARM SoC -+ - pci:v000011ABd0000F003* - ID_MODEL_FROM_DATABASE=GT-64010 Primary Image Piranha Image Generator - -@@ -36602,17 +36683,20 @@ pci:v00001217d00008120* - pci:v00001217d00008130* - ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller - -+pci:v00001217d00008220* -+ ID_MODEL_FROM_DATABASE=OZ600FJ1/OZ900FJ1 SD/MMC Card Reader Controller -+ - pci:v00001217d00008221* -- ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller -+ ID_MODEL_FROM_DATABASE=OZ600FJ0/OZ900FJ0/OZ600FJS SD/MMC Card Reader Controller - - pci:v00001217d00008320* -- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller -+ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller - - pci:v00001217d00008320sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) -+ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller (Precision M4600) - - pci:v00001217d00008321* -- ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller -+ ID_MODEL_FROM_DATABASE=OZ600RJ0/OZ900RJ0/OZ600RJS SD/MMC Card Reader Controller - - pci:v00001217d00008330* - ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller -@@ -46403,6 +46487,9 @@ pci:v000014F1d00008800sv00000070sd00009802* - pci:v000014F1d00008800sv00001002sd000000F8* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) - -+pci:v000014F1d00008800sv00001002sd000000F9* -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder) -+ - pci:v000014F1d00008800sv00001002sd0000A101* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) - -@@ -50978,6 +51065,12 @@ pci:v000018F4d00000125* - pci:v000018F4d00000135* - ID_MODEL_FROM_DATABASE=NT20E2-PTP Network Adapter 2x10Gb - -+pci:v000018F4d00000145* -+ ID_MODEL_FROM_DATABASE=NT40E3-4-PTP Network Adapter 4x10Gb -+ -+pci:v000018F4d00000155* -+ ID_MODEL_FROM_DATABASE=NT100E3-1-PTP Network Adapter 1x100Gb -+ - pci:v000018F6* - ID_VENDOR_FROM_DATABASE=NextIO - -@@ -55143,7 +55236,7 @@ pci:v00008086d00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller - - pci:v00008086d00000150sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) - - pci:v00008086d00000150sv00001849sd00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) -@@ -55229,6 +55322,9 @@ pci:v00008086d0000015E* - pci:v00008086d00000162* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -+pci:v00008086d00000162sv00001043sd000084CA* -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8 series motherboard) -+ - pci:v00008086d00000162sv00001849sd00000162* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) - -@@ -59061,10 +59157,10 @@ pci:v00008086d00001521sv00001028sd00000602* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) - - pci:v00008086d00001521sv00001028sd00001F60* -- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P I350-t rNDC) - - pci:v00008086d00001521sv00001028sd00001F62* -- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC) - - pci:v00008086d00001521sv00001028sd0000FF9A* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) -@@ -59250,7 +59346,10 @@ pci:v00008086d00001533* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection - - pci:v00008086d00001533sv0000103Csd00000003* -- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet I210-T1 GbE NIC) -+ -+pci:v00008086d00001533sv000010A9sd0000802C* -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (UV300 BaseIO single-port GbE) - - pci:v00008086d00001533sv000017AAsd00001100* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) -@@ -59261,15 +59360,15 @@ pci:v00008086d00001533sv00008086sd00000001* - pci:v00008086d00001533sv00008086sd00000002* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - --pci:v00008086d00001534* -- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -- - pci:v00008086d00001536* - ID_MODEL_FROM_DATABASE=I210 Gigabit Fiber Network Connection - - pci:v00008086d00001537* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - -+pci:v00008086d00001538* -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -+ - pci:v00008086d00001539* - ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection - -@@ -60267,7 +60366,7 @@ pci:v00008086d00001E02* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] - - pci:v00008086d00001E02sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8 series motherboard) - - pci:v00008086d00001E02sv00001849sd00001E02* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) -@@ -60374,6 +60473,9 @@ pci:v00008086d00001E20sv00001043sd00001517* - pci:v00008086d00001E20sv00001043sd00008415* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) - -+pci:v00008086d00001E20sv00001043sd00008445* -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (ASUS P8Z77-V LX Motherboard) -+ - pci:v00008086d00001E20sv00001849sd00001898* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) - -@@ -60387,7 +60489,7 @@ pci:v00008086d00001E22sv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E22sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8 series motherboard) - - pci:v00008086d00001E22sv00001849sd00001E22* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) -@@ -60411,7 +60513,7 @@ pci:v00008086d00001E26sv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E26sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) - - pci:v00008086d00001E26sv00001849sd00001E26* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) -@@ -60426,7 +60528,7 @@ pci:v00008086d00001E2Dsv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) - - pci:v00008086d00001E2Dsv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) - - pci:v00008086d00001E2Dsv00001849sd00001E2D* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) -@@ -60444,7 +60546,7 @@ pci:v00008086d00001E31sv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E31sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8 series motherboard) - - pci:v00008086d00001E31sv00001849sd00001E31* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) -@@ -60462,7 +60564,7 @@ pci:v00008086d00001E3Asv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E3Asv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8 series motherboard) - - pci:v00008086d00001E3Asv00001849sd00001E3A* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) -@@ -60488,6 +60590,9 @@ pci:v00008086d00001E43* - pci:v00008086d00001E44* - ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller - -+pci:v00008086d00001E44sv00001043sd000084CA* -+ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (P8 series motherboard) -+ - pci:v00008086d00001E44sv00001849sd00001E44* - ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 52586bc..05f267d 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -41163,7 +41163,7 @@ usb:v1234pED02* - ID_MODEL_FROM_DATABASE=Emotiv EPOC Developer Headset Wireless Dongle - - usb:v1235* -- ID_VENDOR_FROM_DATABASE=Novation EMS -+ ID_VENDOR_FROM_DATABASE=Focusrite-Novation - - usb:v1235p0001* - ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition -@@ -41729,6 +41729,9 @@ usb:v12D1p155A* - usb:v12D1p1575* - ID_MODEL_FROM_DATABASE=K5150 LTE modem - -+usb:v12D1p15CA* -+ ID_MODEL_FROM_DATABASE=E3131 3G/UMTS/HSPA+ Modem (Mass Storage Mode) -+ - usb:v12D1p1805* - ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone - -@@ -41744,6 +41747,12 @@ usb:v12D1p1C20* - usb:v12D1p1D50* - ID_MODEL_FROM_DATABASE=ET302s TD-SCDMA/TD-HSDPA Mobile Broadband - -+usb:v12D1p1F01* -+ ID_MODEL_FROM_DATABASE=E353/E3131 (Mass storage mode) -+ -+usb:v12D1p1F16* -+ ID_MODEL_FROM_DATABASE=K5150 LTE modem (Mass Storage Mode) -+ - usb:v12D1p380B* - ID_MODEL_FROM_DATABASE=WiMAX USB modem(s) - -@@ -41762,6 +41771,12 @@ usb:v12D6p0888* - usb:v12D7* - ID_VENDOR_FROM_DATABASE=BETTER WIRE FACTORY CO., LTD. - -+usb:v12D8* -+ ID_VENDOR_FROM_DATABASE=Araneus Information Systems Oy -+ -+usb:v12D8p0001* -+ ID_MODEL_FROM_DATABASE=Alea I True Random Number Generator -+ - usb:v12E6* - ID_VENDOR_FROM_DATABASE=Waldorf Music GmbH - -@@ -41805,7 +41820,7 @@ usb:v1307p0163* - ID_MODEL_FROM_DATABASE=256MB/512MB/1GB Flash Drive - - usb:v1307p0165* -- ID_MODEL_FROM_DATABASE=2GB/4GB Flash Drive -+ ID_MODEL_FROM_DATABASE=2GB/4GB/8GB Flash Drive - - usb:v1307p0190* - ID_MODEL_FROM_DATABASE=Ut190 8 GB Flash Drive with MicroSD reader -@@ -41846,6 +41861,51 @@ usb:v1312* - usb:v1313* - ID_VENDOR_FROM_DATABASE=ThorLabs - -+usb:v1313p0010* -+ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (Jungo) -+ -+usb:v1313p0011* -+ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (Jungo) -+ -+usb:v1313p0012* -+ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (Jungo) -+ -+usb:v1313p0110* -+ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (VISA) -+ -+usb:v1313p0111* -+ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (VISA) -+ -+usb:v1313p0112* -+ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (VISA) -+ -+usb:v1313p8001* -+ ID_MODEL_FROM_DATABASE=TXP-Series Slot (TXP5001, TXP5004) -+ -+usb:v1313p8012* -+ ID_MODEL_FROM_DATABASE=BC106 Camera Beam Profiler -+ -+usb:v1313p8013* -+ ID_MODEL_FROM_DATABASE=WFS10 Wavefront Sensor -+ -+usb:v1313p8017* -+ ID_MODEL_FROM_DATABASE=BC206 Camera Beam Profiler -+ -+usb:v1313p8019* -+ ID_MODEL_FROM_DATABASE=BP2 Multi Slit Beam Profiler -+ -+usb:v1313p8020* -+ ID_MODEL_FROM_DATABASE=PM300 Optical Power Meter -+ -+usb:v1313p8021* -+ ID_MODEL_FROM_DATABASE=PM300E Optical Power and Energy Meter -+ -+usb:v1313p8022* -+ ID_MODEL_FROM_DATABASE=PM320E Optical Power and Energy Meter -+ -+usb:v1313p8030* -+ ID_MODEL_FROM_DATABASE=ER100 Extinction Ratio Meter -+ - usb:v1313p8070* - ID_MODEL_FROM_DATABASE=PM100D - -@@ -41975,6 +42035,18 @@ usb:v1342p0204* - usb:v1342p0304* - ID_MODEL_FROM_DATABASE=EasiDock Ethernet - -+usb:v1343* -+ ID_VENDOR_FROM_DATABASE=Citizen Systems -+ -+usb:v1343p0003* -+ ID_MODEL_FROM_DATABASE=CX / DNP DS40 -+ -+usb:v1343p0004* -+ ID_MODEL_FROM_DATABASE=CX-W / DNP DS80 -+ -+usb:v1343p0005* -+ ID_MODEL_FROM_DATABASE=CY / DNP DSRX -+ - usb:v1345* - ID_VENDOR_FROM_DATABASE=Sino Lite Technology Corp. - -@@ -42002,6 +42074,12 @@ usb:v1347p0403* - usb:v1347p0404* - ID_MODEL_FROM_DATABASE=G2/G3/G4 CCD-F KAF CCD - -+usb:v1347p0405* -+ ID_MODEL_FROM_DATABASE=Gx CCD-I CCD -+ -+usb:v1347p0406* -+ ID_MODEL_FROM_DATABASE=Gx CCD-F CCD -+ - usb:v1347p0410* - ID_MODEL_FROM_DATABASE=G1-0400 CCD - -@@ -42149,6 +42227,9 @@ usb:v138Ap003C* - usb:v138Ap003D* - ID_MODEL_FROM_DATABASE=VFS491 - -+usb:v138Ap0050* -+ ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor -+ - usb:v138E* - ID_VENDOR_FROM_DATABASE=Jungo LTD - -@@ -42161,6 +42242,9 @@ usb:v1390* - usb:v1390p0001* - ID_MODEL_FROM_DATABASE=GO 520 T/GO 630/ONE XL (v9) - -+usb:v1390p5454* -+ ID_MODEL_FROM_DATABASE=Blue & Me 2 -+ - usb:v1391* - ID_VENDOR_FROM_DATABASE=IdealTEK, Inc. - -@@ -42263,6 +42347,15 @@ usb:v13B1p0039* - usb:v13B1p003A* - ID_MODEL_FROM_DATABASE=AE2500 802.11abgn Wireless Adapter [Broadcom BCM43236] - -+usb:v13B1p003B* -+ ID_MODEL_FROM_DATABASE=AE3000 802.11abgn (3x3) Wireless Adapter [Ralink RT3573] -+ -+usb:v13B1p003E* -+ ID_MODEL_FROM_DATABASE=AE6000 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] -+ -+usb:v13B1p003F* -+ ID_MODEL_FROM_DATABASE=WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] -+ - usb:v13B1p13B1* - ID_MODEL_FROM_DATABASE=WUSB200: Wireless-G Business Network Adapter with Rangebooster - -@@ -42446,6 +42539,12 @@ usb:v13D3p3315* - usb:v13D3p3375* - ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth 4.0 Adapter - -+usb:v13D3p3392* -+ ID_MODEL_FROM_DATABASE=Azurewave 43228+20702 -+ -+usb:v13D3p3394* -+ ID_MODEL_FROM_DATABASE=Bluetooth -+ - usb:v13D3p5070* - ID_MODEL_FROM_DATABASE=Webcam - -@@ -42458,6 +42557,9 @@ usb:v13D3p5115* - usb:v13D3p5116* - ID_MODEL_FROM_DATABASE=Integrated Webcam - -+usb:v13D3p5122* -+ ID_MODEL_FROM_DATABASE=2M Integrated Webcam -+ - usb:v13D3p5126* - ID_MODEL_FROM_DATABASE=PC Cam - -@@ -42524,6 +42626,9 @@ usb:v13FDp0840* - usb:v13FDp0841* - ID_MODEL_FROM_DATABASE=Samsung SE-T084M DVD-RW - -+usb:v13FDp1040* -+ ID_MODEL_FROM_DATABASE=INIC-1511L PATA Bridge -+ - usb:v13FDp1340* - ID_MODEL_FROM_DATABASE=Hi-Speed USB to SATA Bridge - -@@ -42533,9 +42638,15 @@ usb:v13FDp160F* - usb:v13FDp1640* - ID_MODEL_FROM_DATABASE=INIC-1610L SATA Bridge - -+usb:v13FDp1669* -+ ID_MODEL_FROM_DATABASE=INIC-1609PN -+ - usb:v13FDp1840* - ID_MODEL_FROM_DATABASE=INIC-1608 SATA bridge - -+usb:v13FDp1E40* -+ ID_MODEL_FROM_DATABASE=INIC-1610P SATA bridge -+ - usb:v13FE* - ID_VENDOR_FROM_DATABASE=Kingston Technology Company Inc. - -@@ -42555,10 +42666,10 @@ usb:v13FEp1E50* - ID_MODEL_FROM_DATABASE=U3 Smart Drive - - usb:v13FEp1F00* -- ID_MODEL_FROM_DATABASE=DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive -+ ID_MODEL_FROM_DATABASE=Kingston DataTraveler / Patriot Xporter - - usb:v13FEp1F23* -- ID_MODEL_FROM_DATABASE=2Gb -+ ID_MODEL_FROM_DATABASE=PS2232 flash drive controller - - usb:v13FEp2240* - ID_MODEL_FROM_DATABASE=microSD card reader -@@ -42569,12 +42680,18 @@ usb:v13FEp3100* - usb:v13FEp3123* - ID_MODEL_FROM_DATABASE=Verbatim STORE N GO 4GB - -+usb:v13FEp3600* -+ ID_MODEL_FROM_DATABASE=flash drive (4GB, EMTEC) -+ - usb:v13FEp3800* - ID_MODEL_FROM_DATABASE=Rage XT Flash Drive - - usb:v13FEp3E00* - ID_MODEL_FROM_DATABASE=Flash Drive - -+usb:v13FEp5000* -+ ID_MODEL_FROM_DATABASE=USB flash drive (32 GB SHARKOON Accelerate) -+ - usb:v13FEp5100* - ID_MODEL_FROM_DATABASE=Flash Drive - -@@ -42674,6 +42791,12 @@ usb:v1415p2000* - usb:v1419* - ID_VENDOR_FROM_DATABASE=ABILITY ENTERPRISE CO., LTD. - -+usb:v1421* -+ ID_VENDOR_FROM_DATABASE=Sensor Technology -+ -+usb:v1421p0605* -+ ID_MODEL_FROM_DATABASE=Sentech Camera -+ - usb:v1429* - ID_VENDOR_FROM_DATABASE=Vega Technologies Industrial (Austria) Co. - -@@ -42776,6 +42899,18 @@ usb:v1457p5118* - usb:v1457p5119* - ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot cdc_acm serial port - -+usb:v1457p511A* -+ ID_MODEL_FROM_DATABASE=HXD8 u-boot usbtty CDC ACM Mode -+ -+usb:v1457p511B* -+ ID_MODEL_FROM_DATABASE=SMDK2440 u-boot usbtty CDC ACM mode -+ -+usb:v1457p511C* -+ ID_MODEL_FROM_DATABASE=SMDK2443 u-boot usbtty CDC ACM mode -+ -+usb:v1457p511D* -+ ID_MODEL_FROM_DATABASE=QT2410 u-boot usbtty CDC ACM mode -+ - usb:v1457p5120* - ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot usbtty generic serial - -@@ -42935,6 +43070,9 @@ usb:v148E* - usb:v148F* - ID_VENDOR_FROM_DATABASE=Ralink Technology, Corp. - -+usb:v148Fp1000* -+ ID_MODEL_FROM_DATABASE=Motorola BC4 Bluetooth 3.0+HS Adapter -+ - usb:v148Fp1706* - ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter - -@@ -42983,6 +43121,9 @@ usb:v148Fp5372* - usb:v148Fp5572* - ID_MODEL_FROM_DATABASE=RT5572 Wireless Adapter - -+usb:v148Fp7601* -+ ID_MODEL_FROM_DATABASE=MT7601U Wireless Adapter -+ - usb:v148Fp9020* - ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter - -@@ -42998,6 +43139,15 @@ usb:v1491p0020* - usb:v1493* - ID_VENDOR_FROM_DATABASE=Suunto - -+usb:v1493p0010* -+ ID_MODEL_FROM_DATABASE=Bluebird [Ambit] -+ -+usb:v1493p0019* -+ ID_MODEL_FROM_DATABASE=Duck [Ambit2] -+ -+usb:v1493p001A* -+ ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] -+ - usb:v1497* - ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. - -@@ -43118,6 +43268,9 @@ usb:v14CD* - usb:v14CDp121C* - ID_MODEL_FROM_DATABASE=microSD card reader - -+usb:v14CDp121F* -+ ID_MODEL_FROM_DATABASE=microSD CardReader SY-T18 -+ - usb:v14CDp123A* - ID_MODEL_FROM_DATABASE=SD/MMC/RS-MMC Card Reader - -@@ -43131,7 +43284,7 @@ usb:v14CDp6116* - ID_MODEL_FROM_DATABASE=M6116 SATA Bridge - - usb:v14CDp6600* -- ID_MODEL_FROM_DATABASE=USB 2.0 IDE DEVICE -+ ID_MODEL_FROM_DATABASE=M110E PATA bridge - - usb:v14CDp6700* - ID_MODEL_FROM_DATABASE=Card Reader -@@ -43166,6 +43319,9 @@ usb:v14E1* - usb:v14E1p5000* - ID_MODEL_FROM_DATABASE=PenMount 5000 Touch Controller - -+usb:v14E4* -+ ID_VENDOR_FROM_DATABASE=Broadcom Corp. -+ - usb:v14E5* - ID_VENDOR_FROM_DATABASE=SAIN Information & Communications Co., Ltd. - -@@ -43214,6 +43370,15 @@ usb:v1501* - usb:v1509* - ID_VENDOR_FROM_DATABASE=First International Computer, Inc. - -+usb:v1509p0A01* -+ ID_MODEL_FROM_DATABASE=LI-3100 Area Meter -+ -+usb:v1509p0A02* -+ ID_MODEL_FROM_DATABASE=LI-7000 CO2/H2O Gas Analyzer -+ -+usb:v1509p0A03* -+ ID_MODEL_FROM_DATABASE=C-DiGit Blot Scanner -+ - usb:v1509p9242* - ID_MODEL_FROM_DATABASE=eHome Infrared Transceiver - -@@ -43253,6 +43418,12 @@ usb:v1518p0001* - usb:v1518p0002* - ID_MODEL_FROM_DATABASE=HDReye (before firmware loads) - -+usb:v1519* -+ ID_VENDOR_FROM_DATABASE=Comneon -+ -+usb:v1519p0020* -+ ID_MODEL_FROM_DATABASE=HSIC Device -+ - usb:v1520* - ID_VENDOR_FROM_DATABASE=Bitwire Corp. - -@@ -43280,6 +43451,15 @@ usb:v1529p3100* - usb:v152A* - ID_VENDOR_FROM_DATABASE=Thesycon Systemsoftware & Consulting GmbH - -+usb:v152Ap8400* -+ ID_MODEL_FROM_DATABASE=INI DVS128 -+ -+usb:v152Ap840D* -+ ID_MODEL_FROM_DATABASE=INI DAViS -+ -+usb:v152Ap841A* -+ ID_MODEL_FROM_DATABASE=INI DAViS FX3 -+ - usb:v152D* - ID_VENDOR_FROM_DATABASE=JMicron Technology Corp. / JMicron USA Technology Corp. - -@@ -43337,6 +43517,9 @@ usb:v1532p0007* - usb:v1532p0013* - ID_MODEL_FROM_DATABASE=Orochi mouse - -+usb:v1532p0015* -+ ID_MODEL_FROM_DATABASE=Naga Mouse -+ - usb:v1532p0016* - ID_MODEL_FROM_DATABASE=DeathAdder Mouse - -@@ -43364,9 +43547,21 @@ usb:v1532p0102* - usb:v1532p0109* - ID_MODEL_FROM_DATABASE=Lycosa Keyboard - -+usb:v1532p0113* -+ ID_MODEL_FROM_DATABASE=RZ07-0074 Gaming Keypad [Orbweaver] -+ - usb:v1532p0300* - ID_MODEL_FROM_DATABASE=RZ06-0063 Motion Sensing Controllers [Hydra] - -+usb:v153B* -+ ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH -+ -+usb:v153Bp1181* -+ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 1 -+ -+usb:v153Bp1182* -+ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 2 -+ - usb:v1546* - ID_VENDOR_FROM_DATABASE=U-Blox AG - -@@ -43388,12 +43583,18 @@ usb:v154B* - usb:v154Bp0010* - ID_MODEL_FROM_DATABASE=USB 2.0 Flash Drive - -+usb:v154Bp0048* -+ ID_MODEL_FROM_DATABASE=Flash Drive -+ - usb:v154Bp004D* - ID_MODEL_FROM_DATABASE=8 GB Flash Drive - - usb:v154Bp0057* - ID_MODEL_FROM_DATABASE=32GB Micro Slide Attache Flash Drive - -+usb:v154Bp007A* -+ ID_MODEL_FROM_DATABASE=8GB Classic Attache Flash Drive -+ - usb:v154Bp6545* - ID_MODEL_FROM_DATABASE=FD Device - -@@ -43530,7 +43731,10 @@ usb:v15A2p0052* - ID_MODEL_FROM_DATABASE=i.MX50 SystemOnChip in RecoveryMode - - usb:v15A2p0054* -- ID_MODEL_FROM_DATABASE=i.MX6Q SystemOnChip in RecoveryMode -+ ID_MODEL_FROM_DATABASE=i.MX 6Dual/6Quad SystemOnChip in RecoveryMode -+ -+usb:v15A2p0061* -+ ID_MODEL_FROM_DATABASE=i.MX 6Solo/6DualLite SystemOnChip in RecoveryMode - - usb:v15A4* - ID_VENDOR_FROM_DATABASE=Afatech Technologies, Inc. -@@ -43640,6 +43844,9 @@ usb:v15C2p0036* - usb:v15C2p0038* - ID_MODEL_FROM_DATABASE=GD01 MX LCD Display/IR Receiver - -+usb:v15C2p0042* -+ ID_MODEL_FROM_DATABASE=Antec Veris Multimedia Station E-Z IR Receiver -+ - usb:v15C2pFFDA* - ID_MODEL_FROM_DATABASE=iMON PAD Remote Controller - -@@ -43724,6 +43931,9 @@ usb:v15D9p0A4C* - usb:v15D9p0A4D* - ID_MODEL_FROM_DATABASE=Optical Mouse - -+usb:v15D9p0A4F* -+ ID_MODEL_FROM_DATABASE=Optical Mouse -+ - usb:v15DC* - ID_VENDOR_FROM_DATABASE=Hynix Semiconductor Inc. - -@@ -44507,6 +44717,15 @@ usb:v1690p0740* - usb:v1690p0901* - ID_MODEL_FROM_DATABASE=Voyager 205 ADSL Router - -+usb:v1690p2000* -+ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard -+ -+usb:v1690p2001* -+ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard -+ -+usb:v1690pFE12* -+ ID_MODEL_FROM_DATABASE=Bootloader -+ - usb:v1696* - ID_VENDOR_FROM_DATABASE=Hitachi Video and Information System, Inc. - -@@ -44669,6 +44888,9 @@ usb:v16C0p06B4* - usb:v16C0p06B5* - ID_MODEL_FROM_DATABASE=USB2LPT with 3 interfaces (native, HID, printer) - -+usb:v16C0p0762* -+ ID_MODEL_FROM_DATABASE=Osmocom SIMtrace -+ - usb:v16C0p076B* - ID_MODEL_FROM_DATABASE=OpenPCD 13.56MHz RFID Reader - -@@ -44759,6 +44981,15 @@ usb:v16D0p075D* - usb:v16D0p080A* - ID_MODEL_FROM_DATABASE=S2E1 Interface - -+usb:v16D0p0870* -+ ID_MODEL_FROM_DATABASE=Kaufmann Automotive GmbH, RKS+CAN Interface -+ -+usb:v16D1* -+ ID_VENDOR_FROM_DATABASE=Suprema Inc. -+ -+usb:v16D1p0401* -+ ID_MODEL_FROM_DATABASE=SUP-SFR400(A) BioMini Fingerprint Reader -+ - usb:v16D3* - ID_VENDOR_FROM_DATABASE=Frontline Test Equipment, Inc. - -@@ -44774,6 +45005,9 @@ usb:v16D5p6501* - usb:v16D5p6502* - ID_MODEL_FROM_DATABASE=CDMA/UMTS/GPRS modem - -+usb:v16D5p6603* -+ ID_MODEL_FROM_DATABASE=ADU-890WH modem -+ - usb:v16D6* - ID_VENDOR_FROM_DATABASE=JABLOCOM s.r.o. - -@@ -44870,6 +45104,18 @@ usb:v170Bp0011* - usb:v170D* - ID_VENDOR_FROM_DATABASE=Avnera - -+usb:v1711* -+ ID_VENDOR_FROM_DATABASE=Leica Microsystems -+ -+usb:v1711p3020* -+ ID_MODEL_FROM_DATABASE=IC80 HD Camera -+ -+usb:v1724* -+ ID_VENDOR_FROM_DATABASE=Meyer Instruments (MIS) -+ -+usb:v1724p0115* -+ ID_MODEL_FROM_DATABASE=PAXcam5 -+ - usb:v1725* - ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor - -@@ -44957,9 +45203,21 @@ usb:v1737p0078* - usb:v1737p0079* - ID_MODEL_FROM_DATABASE=WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572] - -+usb:v173D* -+ ID_VENDOR_FROM_DATABASE=QSENN -+ -+usb:v173Dp0002* -+ ID_MODEL_FROM_DATABASE=GP-K7000 keyboard -+ - usb:v1740* - ID_VENDOR_FROM_DATABASE=Senao - -+usb:v1740p0100* -+ ID_MODEL_FROM_DATABASE=EUB1200AC AC1200 DB Wireless Adapter [Realtek RTL8812AU] -+ -+usb:v1740p0600* -+ ID_MODEL_FROM_DATABASE=EUB600v1 802.11abgn Wireless Adapter [Ralink RT3572] -+ - usb:v1740p0605* - ID_MODEL_FROM_DATABASE=LevelOne WUA-0605 N_Max Wireless USB Adapter - -@@ -45002,14 +45260,20 @@ usb:v1743* - usb:v1748* - ID_VENDOR_FROM_DATABASE=MQP Electronics - -+usb:v1748p0101* -+ ID_MODEL_FROM_DATABASE=Packet-Master USB12 -+ - usb:v174C* - ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. - - usb:v174Cp5106* - ID_MODEL_FROM_DATABASE=Transcend StoreJet 25M3 - -+usb:v174Cp5136* -+ ID_MODEL_FROM_DATABASE=ASM1053 SATA 6Gb/s bridge -+ - usb:v174Cp55AA* -- ID_MODEL_FROM_DATABASE=ASMedia 2105 SATA bridge -+ ID_MODEL_FROM_DATABASE=ASM1051 SATA 3Gb/s bridge - - usb:v174F* - ID_VENDOR_FROM_DATABASE=Syntek -@@ -45137,6 +45401,9 @@ usb:v1781p0C31* - usb:v1781p0C9F* - ID_MODEL_FROM_DATABASE=USBtiny - -+usb:v1781p1EEF* -+ ID_MODEL_FROM_DATABASE=OpenAPC SecuKey -+ - usb:v1782* - ID_VENDOR_FROM_DATABASE=Spreadtrum Communications Inc. - -@@ -45206,6 +45473,9 @@ usb:v17A0p0100* - usb:v17A0p0101* - ID_MODEL_FROM_DATABASE=UB1 boundary microphone - -+usb:v17A0p0120* -+ ID_MODEL_FROM_DATABASE=Meteorite condenser microphone -+ - usb:v17A0p0200* - ID_MODEL_FROM_DATABASE=StudioDock monitors (internal hub) - -@@ -45221,6 +45491,9 @@ usb:v17A0p0301* - usb:v17A0p0302* - ID_MODEL_FROM_DATABASE=GoMic compact condenser microphone - -+usb:v17A0p0303* -+ ID_MODEL_FROM_DATABASE=C01U Pro condenser microphone -+ - usb:v17A0p0304* - ID_MODEL_FROM_DATABASE=Q2U handheld mic with XLR - -@@ -45371,6 +45644,9 @@ usb:v17E9p037C* - usb:v17E9p037D* - ID_MODEL_FROM_DATABASE=Plugable USB2-HDMI-165 - -+usb:v17E9p410A* -+ ID_MODEL_FROM_DATABASE=HDMI Adapter -+ - usb:v17E9p430A* - ID_MODEL_FROM_DATABASE=HP Port Replicator (Composite Device) - -@@ -45383,6 +45659,9 @@ usb:v17EB* - usb:v17EF* - ID_VENDOR_FROM_DATABASE=Lenovo - -+usb:v17EFp1000* -+ ID_MODEL_FROM_DATABASE=Hub -+ - usb:v17EFp1003* - ID_MODEL_FROM_DATABASE=Integrated Smart Card Reader - -@@ -45395,6 +45674,9 @@ usb:v17EFp1008* - usb:v17EFp100A* - ID_MODEL_FROM_DATABASE=ThinkPad Mini Dock Plus Series 3 - -+usb:v17EFp304B* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [ThinkPad OneLink GigaLAN] -+ - usb:v17EFp3815* - ID_MODEL_FROM_DATABASE=ChipsBnk 2GB USB Stick - -@@ -45455,6 +45737,12 @@ usb:v17EFp6009* - usb:v17EFp6014* - ID_MODEL_FROM_DATABASE=Mini Wireless Keyboard N5901 - -+usb:v17EFp6025* -+ ID_MODEL_FROM_DATABASE=ThinkPad Travel Mouse -+ -+usb:v17EFp7203* -+ ID_MODEL_FROM_DATABASE=Ethernet adapter [U2L 100P-Y1] -+ - usb:v17EFp7423* - ID_MODEL_FROM_DATABASE=IdeaPad A1 Tablet - --- -1.7.9.2 - diff --git a/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch b/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch deleted file mode 100644 index ea295af2..00000000 --- a/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch +++ /dev/null @@ -1,34 +0,0 @@ -Based on 1727a595225132eb73ec134b6979d9c713b42e8c Mon Sep 17 00:00:00 2001 -From: Michael Marineau -Date: Mon, 12 May 2014 09:26:16 +0200 -Subject: [PATCH] job: always add waiting jobs to run queue during coldplug - -commit 20a83d7bf was not equivalent to the original bug fix proposed by -Michal Sekletar . The committed version only added -the job to the run queue if the job had a timeout, which most jobs do -not have. Just re-ordering the code gets us the intended functionality ---- - src/core/job.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- src/core/job.c -+++ src/core/job.c 2014-05-12 13:11:24.918735646 +0000 -@@ -1051,15 +1051,15 @@ int job_coldplug(Job *j) { - - assert(j); - -+ if (j->state == JOB_WAITING) -+ job_add_to_run_queue(j); -+ - if (j->begin_usec == 0 || j->unit->job_timeout == 0) - return 0; - - if (j->timer_event_source) - j->timer_event_source = sd_event_source_unref(j->timer_event_source); - -- if (j->state == JOB_WAITING) -- job_add_to_run_queue(j); -- - r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); - if (r < 0) - log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0005-journalctl-correct-help-text-for-until.patch b/0005-journalctl-correct-help-text-for-until.patch deleted file mode 100644 index 77563faf..00000000 --- a/0005-journalctl-correct-help-text-for-until.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on 7558251eef610e71595a0aa48952479906cb899a Mon Sep 17 00:00:00 2001 -From: Santiago Vila -Date: Sat, 25 Oct 2014 10:40:30 -0400 -Subject: [PATCH] journalctl: correct help text for --until - -http://bugs.debian.org/766598 ---- - src/journal/journalctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/journal/journalctl.c -+++ src/journal/journalctl.c 2014-10-29 14:10:18.863838313 +0000 -@@ -171,7 +171,7 @@ static int help(void) { - " --user Show only the user journal for the current user\n" - " -M --machine=CONTAINER Operate on local container\n" - " --since=DATE Start showing entries on or newer than the specified date\n" -- " --until=DATE Stop showing entries on or older than the specified date\n" -+ " --until=DATE Stop showing entries on or newer than the specified date\n" - " -c --cursor=CURSOR Start showing entries from the specified cursor\n" - " --after-cursor=CURSOR Start showing entries from after the specified cursor\n" - " --show-cursor Print the cursor after all the entries\n" diff --git a/0005-login-fix-mem-leak.patch b/0005-login-fix-mem-leak.patch deleted file mode 100644 index 69206fd5..00000000 --- a/0005-login-fix-mem-leak.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 13f493dc9ace9861c1f27c4d37e8cd6d52fe6a32 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sun, 31 Aug 2014 23:34:01 +0200 -Subject: [PATCH] login: fix mem leak - ---- - src/login/logind-session.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-09-01 12:59:27.870235647 +0000 -@@ -1101,8 +1101,10 @@ int session_set_controller(Session *s, c - * If logind crashes/restarts, we restore the controller during restart - * or reset the VT in case it crashed/exited, too. */ - r = session_mute_vt(s); -- if (r < 0) -+ if (r < 0) { -+ free(t); - return r; -+ } - - session_swap_controller(s, t); - diff --git a/0005-logind-fix-policykit-checks.patch b/0005-logind-fix-policykit-checks.patch deleted file mode 100644 index 69cf61a6..00000000 --- a/0005-logind-fix-policykit-checks.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 055d406624cb9e01963558767420b71e5f75d2d3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 10 Mar 2014 08:25:15 -0400 -Subject: [PATCH] logind: fix policykit checks - ---- - src/login/logind-dbus.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git src/login/logind-dbus.c src/login/logind-dbus.c -index c9c58f3..235b131 100644 ---- src/login/logind-dbus.c -+++ src/login/logind-dbus.c -@@ -1480,6 +1480,8 @@ static int method_do_shutdown_or_sleep( - action_multiple_sessions, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - if (blocked) { -@@ -1487,6 +1489,8 @@ static int method_do_shutdown_or_sleep( - action_ignore_inhibit, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - if (!multiple_sessions && !blocked) { -@@ -1494,6 +1498,8 @@ static int method_do_shutdown_or_sleep( - action, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error); --- -1.7.9.2 - diff --git a/0005-logind-fix-typo.patch b/0005-logind-fix-typo.patch deleted file mode 100644 index 79916e75..00000000 --- a/0005-logind-fix-typo.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2b2332856bafe25c4aa17db2a90bdcddef1fec1a Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Wed, 17 Sep 2014 20:10:44 +0200 -Subject: [PATCH] logind: fix typo - ---- - src/login/logind-session-dbus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/logind-session-dbus.c src/login/logind-session-dbus.c -index 7d81500..58836fc 100644 ---- src/login/logind-session-dbus.c -+++ src/login/logind-session-dbus.c -@@ -249,7 +249,7 @@ static int method_set_idle_hint(sd_bus *bus, sd_bus_message *message, void *user - return r; - - if (uid != 0 && uid != s->user->uid) -- return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session my set idle hint"); -+ return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session may set idle hint"); - - session_set_idle_hint(s, b); - --- -1.7.9.2 - diff --git a/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch b/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch deleted file mode 100644 index aaae9d12..00000000 --- a/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch +++ /dev/null @@ -1,119 +0,0 @@ -From b5d3e1688133077ca20542a20dcd8919147e72e1 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 11 Mar 2014 22:38:54 +0100 -Subject: [PATCH] logind: move lid switch handling from logind-main to - logind-core - -../src/login/logind-dbus.c:1352: error: undefined reference to 'manager_set_lid_switch_ignore' -collect2: error: ld returned 1 exit status -make[2]: *** [test-login-tables] ---- - src/login/logind-dbus.c | 40 ++++++++++++++++++++++++++++++++++++++++ - src/login/logind.c | 40 ---------------------------------------- - 2 files changed, 40 insertions(+), 40 deletions(-) - -diff --git src/login/logind-dbus.c src/login/logind-dbus.c -index c5f9cb3..2ef87f7 100644 ---- src/login/logind-dbus.c -+++ src/login/logind-dbus.c -@@ -1305,6 +1305,46 @@ static int bus_manager_log_shutdown( - q, NULL); - } - -+static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(e); -+ assert(m); -+ -+ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); -+ return 0; -+} -+ -+int manager_set_lid_switch_ignore(Manager *m, usec_t until) { -+ int r; -+ -+ assert(m); -+ -+ if (until <= now(CLOCK_MONOTONIC)) -+ return 0; -+ -+ /* We want to ignore the lid switch for a while after each -+ * suspend, and after boot-up. Hence let's install a timer for -+ * this. As long as the event source exists we ignore the lid -+ * switch. */ -+ -+ if (m->lid_switch_ignore_event_source) { -+ usec_t u; -+ -+ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); -+ if (r < 0) -+ return r; -+ -+ if (until <= u) -+ return 0; -+ -+ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); -+ } else -+ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); -+ -+ return r; -+} -+ - static int execute_shutdown_or_sleep( - Manager *m, - InhibitWhat w, -diff --git src/login/logind.c src/login/logind.c -index 03b7753..2d734ff 100644 ---- src/login/logind.c -+++ src/login/logind.c -@@ -962,46 +962,6 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us - return 0; - } - --static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { -- Manager *m = userdata; -- -- assert(e); -- assert(m); -- -- m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); -- return 0; --} -- --int manager_set_lid_switch_ignore(Manager *m, usec_t until) { -- int r; -- -- assert(m); -- -- if (until <= now(CLOCK_MONOTONIC)) -- return 0; -- -- /* We want to ignore the lid switch for a while after each -- * suspend, and after boot-up. Hence let's install a timer for -- * this. As long as the event source exists we ignore the lid -- * switch. */ -- -- if (m->lid_switch_ignore_event_source) { -- usec_t u; -- -- r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); -- if (r < 0) -- return r; -- -- if (until <= u) -- return 0; -- -- r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); -- } else -- r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); -- -- return r; --} -- - int manager_startup(Manager *m) { - int r; - Seat *seat; --- -1.7.9.2 - diff --git a/0005-man-fix-path-in-crypttab-5.patch b/0005-man-fix-path-in-crypttab-5.patch deleted file mode 100644 index d0aef604..00000000 --- a/0005-man-fix-path-in-crypttab-5.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9fcdf32294e66f91d2a177f73a77049832768311 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 23 Jun 2014 23:07:53 -0400 -Subject: [PATCH] man: fix path in crypttab(5) - -https://bugs.freedesktop.org/show_bug.cgi?id=75816 ---- - man/crypttab.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git man/crypttab.xml man/crypttab.xml -index 668e51d..9030015 100644 ---- man/crypttab.xml -+++ man/crypttab.xml -@@ -369,7 +369,7 @@ - luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b - swap /dev/sda7 /dev/urandom swap - truecrypt /dev/sda2 /etc/container_password tcrypt --hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile -+hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile - - - --- -1.7.9.2 - diff --git a/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch b/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch deleted file mode 100644 index e5b6706d..00000000 --- a/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 28650077f36466d9c5ee27ef2006fae3171a2430 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 30 Jun 2014 16:22:12 +0200 -Subject: [PATCH] nspawn: block open_by_handle_at() and others via seccomp - -Let's protect ourselves against the recently reported docker security -issue. Our man page makes clear that we do not make any security -promises anyway, but well, this one is easy to mitigate, so let's do it. -While we are at it block a couple of more syscalls that are no good in -containers, too. ---- - src/nspawn/nspawn.c | 47 +++++++++++++++++++++++++++++++++++------------ - 1 file changed, 35 insertions(+), 12 deletions(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index fd61d07..656c1bf 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1864,22 +1864,25 @@ static int setup_macvlan(pid_t pid) { - return 0; - } - --static int audit_still_doesnt_work_in_containers(void) { -+static int setup_seccomp(void) { - - #ifdef HAVE_SECCOMP -+ static const int blacklist[] = { -+ SCMP_SYS(kexec_load), -+ SCMP_SYS(open_by_handle_at), -+ SCMP_SYS(init_module), -+ SCMP_SYS(finit_module), -+ SCMP_SYS(delete_module), -+ SCMP_SYS(iopl), -+ SCMP_SYS(ioperm), -+ SCMP_SYS(swapon), -+ SCMP_SYS(swapoff), -+ }; -+ - scmp_filter_ctx seccomp; -+ unsigned i; - int r; - -- /* -- Audit is broken in containers, much of the userspace audit -- hookup will fail if running inside a container. We don't -- care and just turn off creation of audit sockets. -- -- This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail -- with EAFNOSUPPORT which audit userspace uses as indication -- that audit is disabled in the kernel. -- */ -- - seccomp = seccomp_init(SCMP_ACT_ALLOW); - if (!seccomp) - return log_oom(); -@@ -1890,6 +1893,26 @@ static int audit_still_doesnt_work_in_containers(void) { - goto finish; - } - -+ for (i = 0; i < ELEMENTSOF(blacklist); i++) { -+ r = seccomp_rule_add(seccomp, SCMP_ACT_ERRNO(EPERM), blacklist[i], 0); -+ if (r == -EFAULT) -+ continue; /* unknown syscall */ -+ if (r < 0) { -+ log_error("Failed to block syscall: %s", strerror(-r)); -+ goto finish; -+ } -+ } -+ -+ /* -+ Audit is broken in containers, much of the userspace audit -+ hookup will fail if running inside a container. We don't -+ care and just turn off creation of audit sockets. -+ -+ This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail -+ with EAFNOSUPPORT which audit userspace uses as indication -+ that audit is disabled in the kernel. -+ */ -+ - r = seccomp_rule_add( - seccomp, - SCMP_ACT_ERRNO(EAFNOSUPPORT), -@@ -3050,7 +3073,7 @@ int main(int argc, char *argv[]) { - - dev_setup(arg_directory); - -- if (audit_still_doesnt_work_in_containers() < 0) -+ if (setup_seccomp() < 0) - goto child_fail; - - if (setup_dev_console(arg_directory, console) < 0) --- -1.7.9.2 - diff --git a/0005-po-add-Greek-translation.patch b/0005-po-add-Greek-translation.patch deleted file mode 100644 index 029ce4fa..00000000 --- a/0005-po-add-Greek-translation.patch +++ /dev/null @@ -1,436 +0,0 @@ -From 3d89c35c2ae08c3fbf1a037c4df54c8e5ae56faf Mon Sep 17 00:00:00 2001 -From: Dimitris Spingos -Date: Wed, 7 May 2014 18:27:02 +0200 -Subject: [PATCH] po: add Greek translation - -https://bugs.freedesktop.org/show_bug.cgi?id=78064 ---- - po/LINGUAS | 3 +- - po/el.po | 404 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 406 insertions(+), 1 deletion(-) - create mode 100644 po/el.po - -diff --git po/LINGUAS po/LINGUAS -index 0301751..820ca82 100644 ---- po/LINGUAS -+++ po/LINGUAS -@@ -1,4 +1,5 @@ -+el - fr -+it - pl - ru --it -diff --git po/el.po po/el.po -new file mode 100644 -index 0000000..1570565 ---- /dev/null -+++ po/el.po -@@ -0,0 +1,404 @@ -+# Greek translation for systemd. -+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER -+# This file is distributed under the same license as the systemd package. -+# Dimitris Spingos , 2014. -+# Dimitris Spingos (Δημήτρης Σπίγγος) , 2014. -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd master\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" -+"temd&keywords=I18N+L10N&component=general\n" -+"POT-Creation-Date: 2014-04-25 15:51+0000\n" -+"PO-Revision-Date: 2014-04-29 09:17+0300\n" -+"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" -+"Language-Team: team@lists.gnome.gr\n" -+"Language: el\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Virtaal 0.7.0\n" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Set host name" -+msgstr "Ορισμός ονόματος οικοδεσπότη" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 -+msgid "Set static host name" -+msgstr "Ορισμός στατικού ονόματος οικοδεσπότη" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ορίσετε το στατικά ρυθμισμένο όνομα τοπικού " -+"οικοδεσπότη, καθώς και το pretty όνομα οικοδεσπότη." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Ορισμός πληροφοριών μηχανής" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Authentication is required to set local machine information." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε πληροφορίες τοπικής μηχανής." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 -+msgid "Set system locale" -+msgstr "Ορισμός τοπικών ρυθμίσεων συστήματος" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ορίσετε τις τοπικές ρυθμίσεις του συστήματος." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Ορισμός ρυθμίσεων πληκτρολογίου συστήματος" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ορίσετε τις ρυθμίσεις πληκτρολογίου του " -+"συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow applications to inhibit system shutdown" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τον τερματισμό του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:2 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"shutdown." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει τον " -+"τερματισμό του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:3 -+msgid "Allow applications to delay system shutdown" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να καθυστερούν τον τερματισμό του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:4 -+msgid "" -+"Authentication is required to allow an application to delay system shutdown." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " -+"τον τερματισμό του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:5 -+msgid "Allow applications to inhibit system sleep" -+msgstr "Να επιτρέπεται στις εφαρμογές να αποτρέπουν την ύπνωση του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow an application to inhibit system sleep." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"ύπνωση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:7 -+msgid "Allow applications to delay system sleep" -+msgstr "Να επιτρέπεται στις εφαρμογές να καθυστερούν την ύπνωση του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow an application to delay system sleep." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " -+"την ύπνωση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:9 -+msgid "Allow applications to inhibit automatic system suspend" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν την αυτόματη αναστολή του " -+"συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:10 -+msgid "" -+"Authentication is required to allow an application to inhibit automatic " -+"system suspend." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"αυτόματη αναστολή του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:11 -+msgid "Allow applications to inhibit system handling of the power key" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " -+"ενεργοποίησης του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:12 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the power key." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του πλήκτρου ενεργοποίησης του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:13 -+msgid "Allow applications to inhibit system handling of the suspend key" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " -+"αναστολής του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:14 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the suspend key." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του πλήκτρου αναστολής του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:15 -+msgid "Allow applications to inhibit system handling of the hibernate key" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " -+"αδρανοποίησης του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:16 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the hibernate key." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του πλήκτρου αδρανοποίησης του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:17 -+msgid "Allow applications to inhibit system handling of the lid switch" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του διακόπτη " -+"καλύμματος του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:18 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the lid switch." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του διακόπτη καλύμματος του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:19 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Να επιτρέπεται σε μη συνδεμένους χρήστες να εκτελούν προγράμματα" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:20 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μη συνδεμένους χρήστες να " -+"εκτελούν προγράμματα." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:21 -+msgid "Allow attaching devices to seats" -+msgstr "Να επιτρέπεται η προσάρτηση συσκευών στους σταθμούς εργασίας" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:22 -+msgid "Authentication is required for attaching a device to a seat." -+msgstr "" -+"Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:23 -+msgid "Flush device to seat attachments" -+msgstr "Αφαίρεση συσκευής από προσαρτήσεις σταθμού εργασίας" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:24 -+msgid "" -+"Authentication is required for resetting how devices are attached to seats." -+msgstr "" -+"Απαιτείται πιστοποίηση για επαναφορά του τρόπου που οι συσκευές προσαρτώνται " -+"στους σταθμούς εργασίας." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:25 -+msgid "Power off the system" -+msgstr "Σβήσιμο του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:26 -+msgid "Authentication is required for powering off the system." -+msgstr "Απαιτείται πιστοποίηση για την σβήσιμο του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:27 -+msgid "Power off the system while other users are logged in" -+msgstr "Σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:28 -+msgid "" -+"Authentication is required for powering off the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι " -+"συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:29 -+msgid "Power off the system while an application asked to inhibit it" -+msgstr "Απενεργοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:30 -+msgid "" -+"Authentication is required for powering off the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για απενεργοποίηση του συστήματος ενώ μια εφαρμογή " -+"ζήτησε να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:31 -+msgid "Reboot the system" -+msgstr "Επανεκκίνηση του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:32 -+msgid "Authentication is required for rebooting the system." -+msgstr "Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:33 -+msgid "Reboot the system while other users are logged in" -+msgstr "Επανεκκίνηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:34 -+msgid "" -+"Authentication is required for rebooting the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ άλλοι χρήστες " -+"είναι συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:35 -+msgid "Reboot the system while an application asked to inhibit it" -+msgstr "Επανεκκίνηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:36 -+msgid "" -+"Authentication is required for rebooting the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ μια εφαρμογή " -+"ζήτησε να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:37 -+msgid "Suspend the system" -+msgstr "Αναστολή του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:38 -+msgid "Authentication is required for suspending the system." -+msgstr "Απαιτείται πιστοποίηση για την αναστολή του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:39 -+msgid "Suspend the system while other users are logged in" -+msgstr "Αναστολή του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:40 -+msgid "" -+"Authentication is required for suspending the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ άλλοι χρήστες είναι " -+"συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:41 -+msgid "Suspend the system while an application asked to inhibit it" -+msgstr "Αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:42 -+msgid "" -+"Authentication is required for suspending the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε " -+"να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:43 -+msgid "Hibernate the system" -+msgstr "Αδρανοποίηση του συτήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:44 -+msgid "Authentication is required for hibernating the system." -+msgstr "Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:45 -+msgid "Hibernate the system while other users are logged in" -+msgstr "Αδρανοποίηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:46 -+msgid "" -+"Authentication is required for hibernating the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ άλλοι χρήστες " -+"είναι συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:47 -+msgid "Hibernate the system while an application asked to inhibit it" -+msgstr "Αδρανοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:48 -+msgid "" -+"Authentication is required for hibernating the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ μια εφαρμογή " -+"ζήτησε να αποτραπεί." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 -+msgid "Set system time" -+msgstr "Ορισμός ώρας συστήματος" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 -+msgid "Authentication is required to set the system time." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Set system timezone" -+msgstr "Ορισμός ζώνης ώρας συστήματος" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα ζώνης του συστήματος." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Ορισμός RTC στην τοπική ζώνη ώρας ή UTC" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ελέγξετε αν το RTC αποθηκεύει την τοπική ή την " -+"ώρα UTC." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Turn network time synchronization on or off" -+msgstr "Ενεργοποίηση/Απενεργοποίηση συγχρονισμού ώρας δικτύου" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ελέγξετε αν ο συγχρονισμός ώρας δικτύου θα " -+"ενεργοποιηθεί." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 -+msgid "Send passphrase back to system" -+msgstr "Αποστολή του συνθηματικού πίσω στο σύστημα" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 -+msgid "" -+"Authentication is required to send the entered passphrase back to the system." -+msgstr "" -+"Απαιτείται πιστοποίηση για αποστολή του εισερχόμενου συνθηματικού πίσω στο " -+"σύστημα." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -+msgid "Privileged system and service manager access" -+msgstr "Προνομιούχος πρόσβαση διαχειριστή συστήματος και υπηρεσίας" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -+msgid "Authentication is required to access the system and service manager." -+msgstr "" -+"Απαιτείται πιστοποίηση για να προσπελάσετε τον διαχειριστή συστήματος και " -+"υπηρεσιών." --- -1.7.9.2 - diff --git a/0005-sd-daemon-fix-incorrect-variable-access.patch b/0005-sd-daemon-fix-incorrect-variable-access.patch deleted file mode 100644 index 99a923b2..00000000 --- a/0005-sd-daemon-fix-incorrect-variable-access.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 56dc9aec21ab23f76fadf45585adf88e71aa8078 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Mar 2014 23:54:14 +0100 -Subject: [PATCH] sd-daemon: fix incorrect variable access - ---- - src/libsystemd/sd-daemon/sd-daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-daemon/sd-daemon.c src/libsystemd/sd-daemon/sd-daemon.c -index 21fb346..b013438 100644 ---- src/libsystemd/sd-daemon/sd-daemon.c -+++ src/libsystemd/sd-daemon/sd-daemon.c -@@ -517,7 +517,7 @@ _public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) { - r = -errno; - goto finish; - } -- if (!p || p == e || *p || l <= 0) { -+ if (!p || p == e || *p || ll <= 0) { - r = -EINVAL; - goto finish; - } --- -1.7.9.2 - diff --git a/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch b/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch deleted file mode 100644 index 3c3d9e50..00000000 --- a/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch +++ /dev/null @@ -1,37 +0,0 @@ -From cef3566998fcae6936d781e678c309950a8a5787 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Oct 2014 20:57:30 -0400 -Subject: [PATCH] sd-id128: do stricter checking of random boot id - -If we are bothering to check whether the kernel is not feeding us -bad data, we might as well do it properly. - -CID #1237692. ---- - src/libsystemd/sd-id128/sd-id128.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git src/libsystemd/sd-id128/sd-id128.c src/libsystemd/sd-id128/sd-id128.c -index a1e44e6..233ffa0 100644 ---- src/libsystemd/sd-id128/sd-id128.c -+++ src/libsystemd/sd-id128/sd-id128.c -@@ -183,11 +183,14 @@ _public_ int sd_id128_get_boot(sd_id128_t *ret) { - for (j = 0, p = buf; j < 16; j++) { - int a, b; - -- if (p >= buf + k) -+ if (p >= buf + k - 1) - return -EIO; - -- if (*p == '-') -+ if (*p == '-') { - p++; -+ if (p >= buf + k - 1) -+ return -EIO; -+ } - - a = unhexchar(p[0]); - b = unhexchar(p[1]); --- -1.7.9.2 - diff --git a/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch b/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch deleted file mode 100644 index 5dfa4ed5..00000000 --- a/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch +++ /dev/null @@ -1,45 +0,0 @@ -Based on 85529c815b47c22839e0f148af67fd37e977cbfa Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 12 Aug 2014 19:29:27 +0200 -Subject: [PATCH] sd-resolve: fix allocation if query ids, never reuse them - ---- - src/libsystemd/sd-resolve/sd-resolve.c | 12 ++++-------- - 1 file changed, 4 insertions(+), 8 deletions(-) - ---- src/libsystemd/sd-resolve/sd-resolve.c -+++ src/libsystemd/sd-resolve/sd-resolve.c 2014-08-22 14:18:24.838235343 +0000 -@@ -81,7 +81,7 @@ struct sd_resolve { - pthread_t workers[WORKERS_MAX]; - unsigned n_valid_workers; - -- unsigned current_id, current_index; -+ unsigned current_id; - sd_resolve_query* queries[QUERIES_MAX]; - unsigned n_queries; - -@@ -892,21 +892,17 @@ static int alloc_query(sd_resolve *resol - if (r < 0) - return r; - -- while (resolve->queries[resolve->current_index]) { -- resolve->current_index++; -+ while (resolve->queries[resolve->current_id % QUERIES_MAX]) - resolve->current_id++; - -- resolve->current_index %= QUERIES_MAX; -- } -- -- q = resolve->queries[resolve->current_index] = new0(sd_resolve_query, 1); -+ q = resolve->queries[resolve->current_id % QUERIES_MAX] = new0(sd_resolve_query, 1); - if (!q) - return -ENOMEM; - - resolve->n_queries++; - - q->resolve = resolve; -- q->id = resolve->current_id; -+ q->id = resolve->current_id++; - - *_q = q; - return 0; diff --git a/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch b/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch deleted file mode 100644 index ed5997e0..00000000 --- a/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2040ccf171404b709acb0ecf1d1f17b87c5d05f0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 17:32:44 +0200 -Subject: [PATCH] service: don't accept negative ERRNO= notification messages - ---- - src/core/service.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/service.c src/core/service.c -index 5c54a34..d5aff99 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -2637,7 +2637,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - if (e) { - int status_errno; - -- if (safe_atoi(e + 6, &status_errno) < 0) -+ if (safe_atoi(e + 6, &status_errno) < 0 || status_errno < 0) - log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); - else { - log_debug_unit(u->id, "%s: got %s", u->id, e); --- -1.7.9.2 - diff --git a/0005-shared-label.h-add-missing-stdio.h-include.patch b/0005-shared-label.h-add-missing-stdio.h-include.patch deleted file mode 100644 index 1c75aacc..00000000 --- a/0005-shared-label.h-add-missing-stdio.h-include.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 45f15021e3524b04d574b9ff4e801cb3219daf3f Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:42 +0200 -Subject: [PATCH] shared/label.h: add missing stdio.h include - ---- - src/shared/label.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/label.h src/shared/label.h -index 7294820..cb2ec79 100644 ---- src/shared/label.h -+++ src/shared/label.h -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - int label_init(const char *prefix); - void label_finish(void); --- -1.7.9.2 - diff --git a/0005-systemd-python-fix-failing-assert.patch b/0005-systemd-python-fix-failing-assert.patch deleted file mode 100644 index 9b0290d3..00000000 --- a/0005-systemd-python-fix-failing-assert.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b65f24238b0627143916a9c7f8315483a9666676 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 5 Apr 2014 13:29:50 -0400 -Subject: [PATCH] systemd-python: fix failing assert - -A parameter which was always null before, now get's set to -the module. ---- - src/python-systemd/_reader.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git src/python-systemd/_reader.c src/python-systemd/_reader.c -index 059b904..9a19a10 100644 ---- src/python-systemd/_reader.c -+++ src/python-systemd/_reader.c -@@ -902,7 +902,6 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) { - sd_id128_t id; - _cleanup_free_ char *msg = NULL; - -- assert(!self); - assert(args); - - if (!PyArg_ParseTuple(args, "z:get_catalog", &id_)) --- -1.7.9.2 - diff --git a/0005-systemd-run-add-some-extra-safety-checks.patch b/0005-systemd-run-add-some-extra-safety-checks.patch deleted file mode 100644 index 22d41889..00000000 --- a/0005-systemd-run-add-some-extra-safety-checks.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 5 Mar 2014 03:38:36 +0100 -Subject: [PATCH] systemd-run: add some extra safety checks - ---- - src/run/run.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/run/run.c src/run/run.c -index 81763c9..e71ca7d 100644 ---- src/run/run.c -+++ src/run/run.c -@@ -37,7 +37,7 @@ static const char *arg_description = NULL; - static const char *arg_slice = NULL; - static bool arg_send_sighup = false; - static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; --static char *arg_host = NULL; -+static const char *arg_host = NULL; - static bool arg_user = false; - static const char *arg_service_type = NULL; - static const char *arg_exec_user = NULL; -@@ -186,7 +186,7 @@ static int parse_argv(int argc, char *argv[]) { - - case ARG_NICE: - r = safe_atoi(optarg, &arg_nice); -- if (r < 0) { -+ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { - log_error("Failed to parse nice value"); - return -EINVAL; - } --- -1.7.9.2 - diff --git a/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch b/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch deleted file mode 100644 index 875c905e..00000000 --- a/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch +++ /dev/null @@ -1,38 +0,0 @@ -Based on 1f1926aa5e836caa3bd6df43704aecd606135103 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 2 Nov 2014 21:45:42 -0500 -Subject: [PATCH] units: order sd-journal-flush after sd-remount-fs - -Otherwise we could attempt to flush the journal while /var/log/ was -still ro, and silently skip journal flushing. - -The way that errors in flushing are handled should still be changed to -be more transparent and robust. - -Based on 919699ec301ea507edce4a619141ed22e789ac0d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 31 Oct 2014 16:22:36 +0100 -Subject: [PATCH] units: don't order journal flushing afte remote-fs.target - -Instead, only depend on the actual file systems we need. - -This should solve dep loops on setups where remote-fs.target is moved -into late boot. ---- - units/systemd-journal-flush.service.in | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- units/systemd-journal-flush.service.in -+++ units/systemd-journal-flush.service.in 2014-11-10 11:46:22.885518923 +0000 -@@ -10,8 +10,9 @@ Description=Trigger Flushing of Journal - Documentation=man:systemd-journald.service(8) man:journald.conf(5) - DefaultDependencies=no - Requires=systemd-journald.service --After=systemd-journald.service local-fs.target remote-fs.target --Before=systemd-user-sessions.service -+After=systemd-journald.service local-fs.target -+After=systemd-remount-fs.service -+Before=systemd-user-sessions.service systemd-tmpfiles-setup.service - - [Service] - ExecStart=@rootbindir@/systemctl kill --kill-who=main --signal=SIGUSR1 systemd-journald.service diff --git a/0005-util-avoid-double-close-of-fd.patch b/0005-util-avoid-double-close-of-fd.patch deleted file mode 100644 index e1b5dacc..00000000 --- a/0005-util-avoid-double-close-of-fd.patch +++ /dev/null @@ -1,28 +0,0 @@ -Based on 6f53e671aa7539cab02c9f739d84d28a343ca5bc Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Wed, 8 Oct 2014 23:57:32 +0200 -Subject: [PATCH] util: avoid double close of fd - -We could end with a double close if we close the fd loop and flush_fd -fails. That would make us goto fail and there we close the fd once -again. This patch sets the fd to the return value for safe_close: -1 -A fd with negative value will be ignored by the next call to -safe_close. - -CID#996223 ---- - src/shared/util.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- src/shared/util.c -+++ src/shared/util.c 2014-10-14 15:42:22.515839157 +0000 -@@ -1969,7 +1969,8 @@ int acquire_terminal( - * ended our handle will be dead. It's important that - * we do this after sleeping, so that we don't enter - * an endless loop. */ -- close_nointr_nofail(fd); -+ if (fd >= 0) close_nointr_nofail(fd); -+ fd = -1; - } - - if (notify >= 0) diff --git a/0006-Do-not-return-1-EINVAL-on-allocation-error.patch b/0006-Do-not-return-1-EINVAL-on-allocation-error.patch deleted file mode 100644 index bf1db2c6..00000000 --- a/0006-Do-not-return-1-EINVAL-on-allocation-error.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 315db1a8aed226a51a4cf700172249cfd10ae115 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 14 Mar 2014 09:05:56 -0400 -Subject: [PATCH] Do not return -1 (EINVAL) on allocation error - ---- - src/core/socket.c | 8 +++----- - -diff --git src/core/socket.c src/core/socket.c -index 8ecc9f9..b39bec2 100644 ---- src/core/socket.c -+++ src/core/socket.c -@@ -198,16 +198,14 @@ static int socket_instantiate_service(Socket *s) { - - assert(s->accept); - -- if (!(prefix = unit_name_to_prefix(UNIT(s)->id))) -+ prefix = unit_name_to_prefix(UNIT(s)->id); -+ if (!prefix) - return -ENOMEM; - -- r = asprintf(&name, "%s@%u.service", prefix, s->n_accepted); -- -- if (r < 0) -+ if (asprintf(&name, "%s@%u.service", prefix, s->n_accepted) < 0) - return -ENOMEM; - - r = manager_load_unit(UNIT(s)->manager, name, NULL, NULL, &u); -- - if (r < 0) - return r; - --- -1.7.9.2 - diff --git a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch deleted file mode 100644 index ed9a7a79..00000000 --- a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +++ /dev/null @@ -1,60 +0,0 @@ -From df1e02046144f41176c32ed011369fd8dba36b76 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 02:47:43 +0100 -Subject: [PATCH] Revert back to /var/run at a couple of problems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This partially reverts 41a55c46ab8fb4ef6727434227071321fc762cce - -Some specifications we want to stay compatibility actually document -/var/run, not /run, and we should stay compatible with that. In order to -make sure our D-Bus implementation works on any system, regardless if -running systemd or not, we should always use /var/run which is the -only path mandated by the D-Bus spec. - -Similar, glibc hardcodes the utmp location to /var/run, and this is -exposed in _UTMP_PATH in limits.h, hence let's stay in sync with this -public API, too. - -We simply do not support systems where /var/run is not a symlink → /run. -Hence both are equivalent. Staying compatible with upstream -specifications hence weighs more than cleaning up superficial -appearance. ---- - man/runlevel.xml | 2 +- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git man/runlevel.xml man/runlevel.xml -index 4db06dc..976753a 100644 ---- man/runlevel.xml -+++ man/runlevel.xml -@@ -124,7 +124,7 @@ - - - -- /run/utmp -+ /var/run/utmp - - The utmp database - runlevel reads the -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index 1318272..636715f 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); -+ strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); - - return 0; - } --- -1.7.9.2 - diff --git a/0006-bus-unref-buscreds-on-failure.patch b/0006-bus-unref-buscreds-on-failure.patch deleted file mode 100644 index d6ec9ccd..00000000 --- a/0006-bus-unref-buscreds-on-failure.patch +++ /dev/null @@ -1,32 +0,0 @@ -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/0006-calendarspec-fix-typo-in-annually.patch b/0006-calendarspec-fix-typo-in-annually.patch deleted file mode 100644 index 7e695966..00000000 --- a/0006-calendarspec-fix-typo-in-annually.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e90efc70900f8e69cfbafd9e9508bdeb4d40dad7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 25 Oct 2014 11:59:36 -0400 -Subject: [PATCH] calendarspec: fix typo in "annually" - -https://bugs.freedesktop.org/show_bug.cgi?id=85447 ---- - src/shared/calendarspec.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/shared/calendarspec.c src/shared/calendarspec.c -index 4ac74ab..64d0dec 100644 ---- src/shared/calendarspec.c -+++ src/shared/calendarspec.c -@@ -688,7 +688,8 @@ int calendar_spec_from_string(const char *p, CalendarSpec **spec) { - if (r < 0) - goto fail; - -- } else if (strcaseeq(p, "anually") || strcaseeq(p, "yearly")) { -+ } else if (strcaseeq(p, "annually") || strcaseeq(p, "yearly") -+ || strcaseeq(p, "anually") /* backwards compatibility */ ) { - r = const_chain(1, &c->month); - if (r < 0) - goto fail; --- -1.7.9.2 - diff --git a/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index c4e89bb1..00000000 --- a/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 7cfa80f07e94c3e48703d145ef03a73dd6e7b983 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Wed, 18 Jun 2014 13:55:32 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 42 ++++++++++++++++++++++++++++++--- - 1 file changed, 39 insertions(+), 3 deletions(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index a65c7db..377748a 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -115,7 +115,7 @@ bluetooth:v0024* - ID_VENDOR_FROM_DATABASE=Alcatel - - bluetooth:v0025* -- ID_VENDOR_FROM_DATABASE=Philips Semiconductors -+ ID_VENDOR_FROM_DATABASE=NXP Semiconductors (formerly Philips Semiconductors) - - bluetooth:v0026* - ID_VENDOR_FROM_DATABASE=C Technologies -@@ -427,7 +427,7 @@ bluetooth:v008B* - ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC - - bluetooth:v008C* -- ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.) -+ ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.) - - bluetooth:v008D* - ID_VENDOR_FROM_DATABASE=Zscan Software -@@ -1006,10 +1006,46 @@ bluetooth:v014C* - ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd - - bluetooth:v014D* -- ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. -+ ID_VENDOR_FROM_DATABASE=Huizhou Desay SV Automotive CO., LTD. - - bluetooth:v014E* - ID_VENDOR_FROM_DATABASE=Tangerine, Inc. - - bluetooth:v014F* - ID_VENDOR_FROM_DATABASE=B&W Group Ltd. -+ -+bluetooth:v0150* -+ ID_VENDOR_FROM_DATABASE=Pioneer Corporation -+ -+bluetooth:v0151* -+ ID_VENDOR_FROM_DATABASE=OnBeep -+ -+bluetooth:v0152* -+ ID_VENDOR_FROM_DATABASE=Vernier Software & Technology -+ -+bluetooth:v0153* -+ ID_VENDOR_FROM_DATABASE=ROL Ergo -+ -+bluetooth:v0154* -+ ID_VENDOR_FROM_DATABASE=Pebble Technology -+ -+bluetooth:v0155* -+ ID_VENDOR_FROM_DATABASE=NETATMO -+ -+bluetooth:v0156* -+ ID_VENDOR_FROM_DATABASE=Accumulate AB -+ -+bluetooth:v0157* -+ ID_VENDOR_FROM_DATABASE=Anhui Huami Information Technology Co., Ltd. -+ -+bluetooth:v0158* -+ ID_VENDOR_FROM_DATABASE=Inmite s.r.o. -+ -+bluetooth:v0159* -+ ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. -+ -+bluetooth:v015A* -+ ID_VENDOR_FROM_DATABASE=micus AG -+ -+bluetooth:v015B* -+ ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. --- -1.7.9.2 - diff --git a/0006-hwdb-update.patch b/0006-hwdb-update.patch deleted file mode 100644 index 080bd96c..00000000 --- a/0006-hwdb-update.patch +++ /dev/null @@ -1,4392 +0,0 @@ -From 98be1a746ac0d7a17e69ccb05936a4d6b3223e97 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 3 Jul 2014 16:28:40 +0200 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 543 +++++++++++++++++++-- - hwdb/20-pci-classes.hwdb | 27 ++ - hwdb/20-pci-vendor-model.hwdb | 1071 +++++++++++++++++++++++++++-------------- - hwdb/20-usb-classes.hwdb | 3 + - hwdb/20-usb-vendor-model.hwdb | 102 +++- - 5 files changed, 1362 insertions(+), 384 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 6188bfc..97f1e6b 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -6446,7 +6446,7 @@ OUI:0050C2871* - ID_OUI_FROM_DATABASE=R-S-I Elektrotechnik GmbH & Co. KG - - OUI:0050C2872* -- ID_OUI_FROM_DATABASE=Oliotalo - Objecthouse Oy -+ ID_OUI_FROM_DATABASE=Oliotalo Oy - - OUI:0050C2873* - ID_OUI_FROM_DATABASE=XRONET Corporation -@@ -37139,76 +37139,76 @@ OUI:001EC7* - ID_OUI_FROM_DATABASE=2Wire, Inc. - - OUI:001EC8* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Rapid Mobile (Pty) Ltd - - OUI:001EC9* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001ECA* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Nortel - - OUI:001ECB* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE="RPC "Energoautomatika" Ltd - - OUI:001ECC* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=CDVI - - OUI:001ECD* - ID_OUI_FROM_DATABASE=KYLAND Technology Co. LTD - - OUI:001ECE* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=BISA Technologies (Hong Kong) Limited - - OUI:001ECF* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=PHILIPS ELECTRONICS UK LTD - - OUI:001ED0* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Ingespace - - OUI:001ED1* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Keyprocessor B.V. - - OUI:001ED2* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Ray Shine Video Technology Inc - - OUI:001ED3* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Dot Technology Int'l Co., Ltd. - - OUI:001ED4* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Doble Engineering - - OUI:001ED5* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Tekon-Automatics - - OUI:001ED6* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Alentec & Orion AB - - OUI:001ED7* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=H-Stream Wireless, Inc. - - OUI:001ED8* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Digital United Inc. - - OUI:001ED9* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Mitsubishi Precision Co.,LTd. - - OUI:001EDA* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Wesemann Elektrotechniek B.V. - - OUI:001EDB* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Giken Trastem Co., Ltd. - - OUI:001EDC* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - - OUI:001EDD* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=WASKO S.A. - - OUI:001EDE* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=BYD COMPANY LIMITED - - OUI:001EDF* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Master Industrialization Center Kista - - OUI:001EE0* - ID_OUI_FROM_DATABASE=Urmet Domus SpA -@@ -45800,7 +45800,7 @@ OUI:0050F8* - ID_OUI_FROM_DATABASE=ENTREGA TECHNOLOGIES, INC. - - OUI:0050F9* -- ID_OUI_FROM_DATABASE=SENSORMATIC ACD -+ ID_OUI_FROM_DATABASE=Sensormatic Electronics LLC - - OUI:0050FA* - ID_OUI_FROM_DATABASE=OXTEL, LTD. -@@ -45829,6 +45829,9 @@ OUI:0054AF* - OUI:005907* - ID_OUI_FROM_DATABASE=LenovoEMC Products USA, LLC - -+OUI:005A39* -+ ID_OUI_FROM_DATABASE=SHENZHEN FAST TECHNOLOGIES CO., LTD. -+ - OUI:005CB1* - ID_OUI_FROM_DATABASE=Gospell DIGITAL TECHNOLOGY CO., LTD - -@@ -46603,6 +46606,9 @@ OUI:0060FE* - OUI:0060FF* - ID_OUI_FROM_DATABASE=QuVis, Inc. - -+OUI:006171* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:006440* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -48238,6 +48244,9 @@ OUI:009C02* - OUI:009D8E* - ID_OUI_FROM_DATABASE=CARDIAC RECORDERS, INC. - -+OUI:009EC8* -+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronic Products Co., Ltd. -+ - OUI:00A000* - ID_OUI_FROM_DATABASE=CENTILLION NETWORKS, INC. - -@@ -50740,6 +50749,9 @@ OUI:00D38D* - OUI:00D632* - ID_OUI_FROM_DATABASE=GE Energy - -+OUI:00D9D1* -+ ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. -+ - OUI:00DB1E* - ID_OUI_FROM_DATABASE=Albedo Telecom SL - -@@ -51778,6 +51790,9 @@ OUI:0462D7* - OUI:0463E0* - ID_OUI_FROM_DATABASE=Nome Oy - -+OUI:046785* -+ ID_OUI_FROM_DATABASE=scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH -+ - OUI:046D42* - ID_OUI_FROM_DATABASE=Bryston Ltd. - -@@ -51901,6 +51916,9 @@ OUI:04DB8A* - OUI:04DD4C* - ID_OUI_FROM_DATABASE=Velocytech - -+OUI:04DEDB* -+ ID_OUI_FROM_DATABASE=Rockport Networks Inc -+ - OUI:04DF69* - ID_OUI_FROM_DATABASE=Car Connectivity Consortium - -@@ -52498,6 +52516,9 @@ OUI:083F76* - OUI:084027* - ID_OUI_FROM_DATABASE=Gridstore Inc. - -+OUI:084656* -+ ID_OUI_FROM_DATABASE=VODALYS Ingénierie -+ - OUI:08482C* - ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. - -@@ -52966,6 +52987,9 @@ OUI:0CCDD3* - OUI:0CCDFB* - ID_OUI_FROM_DATABASE=EDIC Systems Inc. - -+OUI:0CCFD1* -+ ID_OUI_FROM_DATABASE=SPRINGWAVE Co., Ltd -+ - OUI:0CD292* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -53089,6 +53113,9 @@ OUI:1010B6* - OUI:101212* - ID_OUI_FROM_DATABASE=Vivo International Corporation Pty Ltd - -+OUI:101218* -+ ID_OUI_FROM_DATABASE=Korins Inc. -+ - OUI:101248* - ID_OUI_FROM_DATABASE=ITG, Inc. - -@@ -53128,6 +53155,9 @@ OUI:102D96* - OUI:102EAF* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:102F6B* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:103047* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -53164,6 +53194,9 @@ OUI:104780* - OUI:1048B1* - ID_OUI_FROM_DATABASE=Beijing Duokan Technology Limited - -+OUI:104B46* -+ ID_OUI_FROM_DATABASE=Mitsubishi Electric Corporation -+ - OUI:104D77* - ID_OUI_FROM_DATABASE=Innovative Computer Engineering - -@@ -53242,6 +53275,9 @@ OUI:10880F* - OUI:1088CE* - ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. - -+OUI:108A1B* -+ ID_OUI_FROM_DATABASE=RAONIX Inc. -+ - OUI:108CCF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -53458,6 +53494,9 @@ OUI:144319* - OUI:1446E4* - ID_OUI_FROM_DATABASE=AVISTEL - -+OUI:14488B* -+ ID_OUI_FROM_DATABASE=Shenzhen Doov Technology Co.,Ltd -+ - OUI:144978* - ID_OUI_FROM_DATABASE=Digital Control Incorporated - -@@ -53473,6 +53512,9 @@ OUI:145412* - OUI:145645* - ID_OUI_FROM_DATABASE=Savitech Corp. - -+OUI:1458D0* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:145A05* - ID_OUI_FROM_DATABASE=Apple - -@@ -53608,6 +53650,9 @@ OUI:14EB33* - OUI:14EDA5* - ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme - -+OUI:14EDE4* -+ ID_OUI_FROM_DATABASE=Kaiam Corporation -+ - OUI:14EE9D* - ID_OUI_FROM_DATABASE=AirNav Systems LLC - -@@ -53794,6 +53839,9 @@ OUI:1867B0* - OUI:186D99* - ID_OUI_FROM_DATABASE=Adanis Inc. - -+OUI:187117* -+ ID_OUI_FROM_DATABASE=eta plus electronic gmbh -+ - OUI:1879A2* - ID_OUI_FROM_DATABASE=GMJ ELECTRIC LIMITED - -@@ -53812,6 +53860,9 @@ OUI:1880CE* - OUI:1880F5* - ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd - -+OUI:188219* -+ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. -+ - OUI:188331* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -53857,6 +53908,9 @@ OUI:189EFC* - OUI:18A905* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -+OUI:18A958* -+ ID_OUI_FROM_DATABASE=PROVISION THAI CO., LTD. -+ - OUI:18A99B* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -54049,6 +54103,9 @@ OUI:1C43EC* - OUI:1C4593* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:1C4840* -+ ID_OUI_FROM_DATABASE=IMS Messsysteme GmbH -+ - OUI:1C48F9* - ID_OUI_FROM_DATABASE=GN Netcom A/S - -@@ -54064,6 +54121,9 @@ OUI:1C4BD6* - OUI:1C51B5* - ID_OUI_FROM_DATABASE=Techaya LTD - -+OUI:1C5216* -+ ID_OUI_FROM_DATABASE=DONGGUAN HELE ELECTRONICS CO., LTD -+ - OUI:1C52D6* - ID_OUI_FROM_DATABASE=FLAT DISPLAY TECHNOLOGY CORPORATION - -@@ -54100,6 +54160,9 @@ OUI:1C66AA* - OUI:1C69A5* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:1C6A7A* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:1C6BCA* - ID_OUI_FROM_DATABASE=Mitsunami Co., Ltd. - -@@ -54163,6 +54226,12 @@ OUI:1C973D* - OUI:1C994C* - ID_OUI_FROM_DATABASE=Murata Manufactuaring Co.,Ltd. - -+OUI:1C9C26* -+ ID_OUI_FROM_DATABASE=Zoovel Technologies -+ -+OUI:1CA2B1* -+ ID_OUI_FROM_DATABASE=ruwido austria gmbh -+ - OUI:1CA770* - ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT - -@@ -54217,6 +54286,9 @@ OUI:1CC63C* - OUI:1CD40C* - ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH - -+OUI:1CDEA7* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:1CDF0F* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -54286,6 +54358,9 @@ OUI:20107A* - OUI:201257* - ID_OUI_FROM_DATABASE=Most Lucky Trading Ltd - -+OUI:2012D5* -+ ID_OUI_FROM_DATABASE=Scientech Materials Corporation -+ - OUI:2013E0* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -54370,6 +54445,9 @@ OUI:205A00* - OUI:205B5E* - ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd - -+OUI:205CFA* -+ ID_OUI_FROM_DATABASE=Yangzhou ChangLian Network Technology Co,ltd. -+ - OUI:206432* - ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO.,LTD. - -@@ -54439,6 +54517,9 @@ OUI:20A2E7* - OUI:20A787* - ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited - -+OUI:20A99B* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:20AA25* - ID_OUI_FROM_DATABASE=IP-NET LLC - -@@ -54469,6 +54550,9 @@ OUI:20BFDB* - OUI:20C1AF* - ID_OUI_FROM_DATABASE=i Wit Digital Co., Limited - -+OUI:20C38F* -+ ID_OUI_FROM_DATABASE=Texas Instruments Inc -+ - OUI:20C60D* - ID_OUI_FROM_DATABASE=Shanghai annijie Information technology Co.,LTD - -@@ -54616,6 +54700,9 @@ OUI:2437EF* - OUI:243C20* - ID_OUI_FROM_DATABASE=Dynamode Group - -+OUI:2442BC* -+ ID_OUI_FROM_DATABASE=Alinco,incorporated -+ - OUI:244597* - ID_OUI_FROM_DATABASE=GEMUE Gebr. Mueller Apparatebau - -@@ -55027,6 +55114,9 @@ OUI:28A241* - OUI:28A574* - ID_OUI_FROM_DATABASE=Miller Electric Mfg. Co. - -+OUI:28A5EE* -+ ID_OUI_FROM_DATABASE=Shenzhen SDGI CATV Co., Ltd -+ - OUI:28AF0A* - ID_OUI_FROM_DATABASE=Sirius XM Radio Inc - -@@ -55177,6 +55267,9 @@ OUI:2C0033* - OUI:2C00F7* - ID_OUI_FROM_DATABASE=XOS - -+OUI:2C010B* -+ ID_OUI_FROM_DATABASE=NASCENT Technology, LLC - RemKon -+ - OUI:2C0623* - ID_OUI_FROM_DATABASE=Win Leader Inc. - -@@ -55192,6 +55285,9 @@ OUI:2C18AE* - OUI:2C1984* - ID_OUI_FROM_DATABASE=IDN Telecom, Inc. - -+OUI:2C1A31* -+ ID_OUI_FROM_DATABASE=Electronics Company Limited -+ - OUI:2C1EEA* - ID_OUI_FROM_DATABASE=AERODEV - -@@ -55369,6 +55465,9 @@ OUI:2C9EFC* - OUI:2CA157* - ID_OUI_FROM_DATABASE=acromate, Inc. - -+OUI:2CA30E* -+ ID_OUI_FROM_DATABASE=POWER DRAGON DEVELOPMENT LIMITED -+ - OUI:2CA780* - ID_OUI_FROM_DATABASE=True Technologies Inc. - -@@ -55540,6 +55639,9 @@ OUI:303EAD* - OUI:304174* - ID_OUI_FROM_DATABASE=ALTEC LANSING LLC - -+OUI:304225* -+ ID_OUI_FROM_DATABASE=BURG-WÄCHTER KG -+ - OUI:304449* - ID_OUI_FROM_DATABASE=PLATH GmbH - -@@ -55603,6 +55705,9 @@ OUI:306E5C* - OUI:3071B2* - ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. - -+OUI:307512* -+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB -+ - OUI:30766F* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -55735,6 +55840,9 @@ OUI:3400A3* - OUI:340286* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:34029B* -+ ID_OUI_FROM_DATABASE=CloudBerry Technologies Private Limited -+ - OUI:3407FB* - ID_OUI_FROM_DATABASE=Ericsson AB - -@@ -55774,6 +55882,9 @@ OUI:3423BA* - OUI:34255D* - ID_OUI_FROM_DATABASE=Shenzhen Loadcom Technology Co.,Ltd - -+OUI:3428F0* -+ ID_OUI_FROM_DATABASE=ATN International Limited -+ - OUI:3429EA* - ID_OUI_FROM_DATABASE=MCD ELECTRONICS SP. Z O.O. - -@@ -55798,6 +55909,9 @@ OUI:344B3D* - OUI:344B50* - ID_OUI_FROM_DATABASE=ZTE Corporation - -+OUI:344DF7* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:344F3F* - ID_OUI_FROM_DATABASE=IO-Power Technology Co., Ltd. - -@@ -55825,6 +55939,9 @@ OUI:345D10* - OUI:346178* - ID_OUI_FROM_DATABASE=The Boeing Company - -+OUI:346288* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:34684A* - ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. - -@@ -55939,6 +56056,9 @@ OUI:34B1F7* - OUI:34B571* - ID_OUI_FROM_DATABASE=PLDS - -+OUI:34B7FD* -+ ID_OUI_FROM_DATABASE=Guangzhou Younghead Electronic Technology Co.,Ltd -+ - OUI:34BA51* - ID_OUI_FROM_DATABASE=Se-Kure Controls, Inc. - -@@ -56047,6 +56167,9 @@ OUI:34F39B* - OUI:34F62D* - ID_OUI_FROM_DATABASE=SHARP Corporation - -+OUI:34F6D2* -+ ID_OUI_FROM_DATABASE=Panasonic Taiwan Co.,Ltd. -+ - OUI:34F968* - ID_OUI_FROM_DATABASE=ATEK Products, LLC - -@@ -56062,6 +56185,9 @@ OUI:380197* - OUI:3806B4* - ID_OUI_FROM_DATABASE=A.D.C. GmbH - -+OUI:3808FD* -+ ID_OUI_FROM_DATABASE=Silca Spa -+ - OUI:380A0A* - ID_OUI_FROM_DATABASE=Sky-City Communication and Electronics Limited Company - -@@ -56137,6 +56263,9 @@ OUI:384608* - OUI:38484C* - ID_OUI_FROM_DATABASE=Apple - -+OUI:384B76* -+ ID_OUI_FROM_DATABASE=AIRTAME ApS -+ - OUI:384FF0* - ID_OUI_FROM_DATABASE=Azurewave Technologies, Inc. - -@@ -56227,6 +56356,9 @@ OUI:38AA3C* - OUI:38B12D* - ID_OUI_FROM_DATABASE=Sonotronic Nagel GmbH - -+OUI:38B1DB* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:38B5BD* - ID_OUI_FROM_DATABASE=E.G.O. Elektro-Ger - -@@ -56302,6 +56434,9 @@ OUI:38EE9D* - OUI:38F098* - ID_OUI_FROM_DATABASE=Vapor Stone Rail Systems - -+OUI:38F33F* -+ ID_OUI_FROM_DATABASE=TATSUNO CORPORATION -+ - OUI:38F597* - ID_OUI_FROM_DATABASE=home2net GmbH - -@@ -56443,6 +56578,9 @@ OUI:3C57D5* - OUI:3C5A37* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:3C5AB4* -+ ID_OUI_FROM_DATABASE=Google -+ - OUI:3C5F01* - ID_OUI_FROM_DATABASE=Synerchip Co., Ltd. - -@@ -56803,6 +56941,9 @@ OUI:407074* - OUI:407496* - ID_OUI_FROM_DATABASE=aFUN TECHNOLOGY INC. - -+OUI:40786A* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:407875* - ID_OUI_FROM_DATABASE=IMBEL - Industria de Material Belico do Brasil - -@@ -56929,6 +57070,9 @@ OUI:40D40E* - OUI:40D559* - ID_OUI_FROM_DATABASE=MICRO S.E.R.I. - -+OUI:40E230* -+ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc. -+ - OUI:40E730* - ID_OUI_FROM_DATABASE=DEY Storage Systems, Inc. - -@@ -57145,6 +57289,9 @@ OUI:4486C1* - OUI:4487FC* - ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. - -+OUI:4488CB* -+ ID_OUI_FROM_DATABASE=Camco Technologies NV -+ - OUI:448A5B* - ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD. - -@@ -57337,6 +57484,9 @@ OUI:4851B7* - OUI:485261* - ID_OUI_FROM_DATABASE=SOREEL - -+OUI:4857DD* -+ ID_OUI_FROM_DATABASE=Facebook -+ - OUI:485929* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -57361,6 +57511,9 @@ OUI:4861A3* - OUI:486276* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:486B2C* -+ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., -+ - OUI:486B91* - ID_OUI_FROM_DATABASE=Fleetwood Group Inc. - -@@ -57391,6 +57544,9 @@ OUI:4891F6* - OUI:489BE2* - ID_OUI_FROM_DATABASE=SCI Innovations Ltd - -+OUI:489D18* -+ ID_OUI_FROM_DATABASE=Flashbay Limited -+ - OUI:489D24* - ID_OUI_FROM_DATABASE=Research In Motion - -@@ -57655,6 +57811,9 @@ OUI:4C7367* - OUI:4C73A5* - ID_OUI_FROM_DATABASE=KOVE - -+OUI:4C7403* -+ ID_OUI_FROM_DATABASE=Mundo Reader (bq) -+ - OUI:4C774F* - ID_OUI_FROM_DATABASE=Embedded Wireless Labs - -@@ -57745,6 +57904,9 @@ OUI:4CBAA3* - OUI:4CBB58* - ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. - -+OUI:4CBC42* -+ ID_OUI_FROM_DATABASE=Shenzhen Hangsheng Electronics Co.,Ltd. -+ - OUI:4CBCA5* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -57784,6 +57946,9 @@ OUI:4CE1BB* - OUI:4CE676* - ID_OUI_FROM_DATABASE=Buffalo Inc. - -+OUI:4CE933* -+ ID_OUI_FROM_DATABASE=RailComm, LLC -+ - OUI:4CEB42* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -57799,6 +57964,9 @@ OUI:4CF2BF* - OUI:4CF45B* - ID_OUI_FROM_DATABASE=Blue Clover Devices - -+OUI:4CF5A0* -+ ID_OUI_FROM_DATABASE=Scalable Network Technologies Inc -+ - OUI:4CF737* - ID_OUI_FROM_DATABASE=SamJi Electronics Co., Ltd - -@@ -57823,6 +57991,9 @@ OUI:500E6D* - OUI:5011EB* - ID_OUI_FROM_DATABASE=SilverNet Ltd - -+OUI:5014B5* -+ ID_OUI_FROM_DATABASE=Richfit Information Technology Co., Ltd -+ - OUI:5017FF* - ID_OUI_FROM_DATABASE=Cisco - -@@ -57847,6 +58018,9 @@ OUI:502690* - OUI:5027C7* - ID_OUI_FROM_DATABASE=TECHNART Co.,Ltd - -+OUI:50294D* -+ ID_OUI_FROM_DATABASE=NANJING IOT SENSOR TECHNOLOGY CO,LTD -+ - OUI:502A7E* - ID_OUI_FROM_DATABASE=Smart electronic GmbH - -@@ -57937,6 +58111,9 @@ OUI:506441* - OUI:506787* - ID_OUI_FROM_DATABASE=iTellus - -+OUI:5067AE* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:5067F0* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -@@ -58276,6 +58453,9 @@ OUI:549B12* - OUI:549D85* - ID_OUI_FROM_DATABASE=EnerAccess inc - -+OUI:549F35* -+ ID_OUI_FROM_DATABASE=Dell Inc. -+ - OUI:54A04F* - ID_OUI_FROM_DATABASE=t-mac Technologies Ltd - -@@ -58366,6 +58546,9 @@ OUI:54F5B6* - OUI:54F666* - ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG - -+OUI:54F876* -+ ID_OUI_FROM_DATABASE=ABB AG -+ - OUI:54FA3E* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD - -@@ -58375,6 +58558,9 @@ OUI:54FB58* - OUI:54FDBF* - ID_OUI_FROM_DATABASE=Scheidt & Bachmann GmbH - -+OUI:54FFCF* -+ ID_OUI_FROM_DATABASE=Mopria Alliance -+ - OUI:580528* - ID_OUI_FROM_DATABASE=LABRIS NETWORKS - -@@ -58390,6 +58576,9 @@ OUI:5809E5* - OUI:580A20* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:58108C* -+ ID_OUI_FROM_DATABASE=Intelbras -+ - OUI:581243* - ID_OUI_FROM_DATABASE=AcSiP Technology Corp. - -@@ -58504,9 +58693,15 @@ OUI:587521* - OUI:587675* - ID_OUI_FROM_DATABASE=Beijing ECHO Technologies Co.,Ltd - -+OUI:5876C5* -+ ID_OUI_FROM_DATABASE=DIGI I'S LTD -+ - OUI:587A4D* - ID_OUI_FROM_DATABASE=Stonesoft Corporation - -+OUI:587BE9* -+ ID_OUI_FROM_DATABASE=AirPro Technology India Pvt. Ltd -+ - OUI:587E61* - ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd - -@@ -58633,6 +58828,9 @@ OUI:58EECE* - OUI:58F387* - ID_OUI_FROM_DATABASE=HCCP - -+OUI:58F39C* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:58F67B* - ID_OUI_FROM_DATABASE=Xia Men UnionCore Technology LTD. - -@@ -58810,6 +59008,12 @@ OUI:5C89D4* - OUI:5C8D4E* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C8FE0* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ -+OUI:5C93A2* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:5C95AE* - ID_OUI_FROM_DATABASE=Apple - -@@ -59011,6 +59215,9 @@ OUI:60334B* - OUI:603553* - ID_OUI_FROM_DATABASE=Buwon Technology - -+OUI:603696* -+ ID_OUI_FROM_DATABASE=The Sapling Company -+ - OUI:6036DD* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -59038,9 +59245,18 @@ OUI:604616* - OUI:6047D4* - ID_OUI_FROM_DATABASE=FORICS Electronic Technology Co., Ltd. - -+OUI:604826* -+ ID_OUI_FROM_DATABASE=Newbridge Technologies Int. Ltd. -+ - OUI:604A1C* - ID_OUI_FROM_DATABASE=SUYIN Corporation - -+OUI:6050C1* -+ ID_OUI_FROM_DATABASE=Kinetek Sports -+ -+OUI:60512C* -+ ID_OUI_FROM_DATABASE=TCT mobile limited -+ - OUI:6052D0* - ID_OUI_FROM_DATABASE=FACTS Engineering - -@@ -59125,6 +59341,9 @@ OUI:609084* - OUI:609217* - ID_OUI_FROM_DATABASE=Apple - -+OUI:6099D1* -+ ID_OUI_FROM_DATABASE=Vuzix / Lenovo -+ - OUI:609AA4* - ID_OUI_FROM_DATABASE=GVI SECURITY INC. - -@@ -59284,6 +59503,9 @@ OUI:60FEF9* - OUI:60FFDD* - ID_OUI_FROM_DATABASE=C.E. ELECTRONICS, INC - -+OUI:64002D* -+ ID_OUI_FROM_DATABASE=Powerlinq Co., LTD -+ - OUI:6400F1* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -59557,6 +59779,9 @@ OUI:64B310* - OUI:64B370* - ID_OUI_FROM_DATABASE=PowerComm Solutons LLC - -+OUI:64B473* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:64B64A* - ID_OUI_FROM_DATABASE=ViVOtech, Inc. - -@@ -59917,6 +60142,9 @@ OUI:68D247* - OUI:68D925* - ID_OUI_FROM_DATABASE=ProSys Development Services - -+OUI:68D93C* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:68DB67* - ID_OUI_FROM_DATABASE=Nantong Coship Electronics Co., Ltd - -@@ -59950,6 +60178,9 @@ OUI:68EE96* - OUI:68EFBD* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:68F06D* -+ ID_OUI_FROM_DATABASE=ALONG INDUSTRIAL CO., LIMITED -+ - OUI:68F125* - ID_OUI_FROM_DATABASE=Data Controls Inc. - -@@ -60079,6 +60310,9 @@ OUI:6C626D* - OUI:6C641A* - ID_OUI_FROM_DATABASE=Penguin Computing - -+OUI:6C6EFE* -+ ID_OUI_FROM_DATABASE=Core Logic Inc. -+ - OUI:6C6F18* - ID_OUI_FROM_DATABASE=Stereotaxis, Inc. - -@@ -60091,6 +60325,9 @@ OUI:6C709F* - OUI:6C71D9* - ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc - -+OUI:6C7660* -+ ID_OUI_FROM_DATABASE=KYOCERA Corporation -+ - OUI:6C81FE* - ID_OUI_FROM_DATABASE=Mitsuba Corporation - -@@ -60122,7 +60359,7 @@ OUI:6C92BF* - ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd. - - OUI:6C98EB* -- ID_OUI_FROM_DATABASE=Xyne GmbH -+ ID_OUI_FROM_DATABASE=Ocedo GmbH - - OUI:6C9989* - ID_OUI_FROM_DATABASE=Cisco -@@ -60187,6 +60424,9 @@ OUI:6CB7F4* - OUI:6CBEE9* - ID_OUI_FROM_DATABASE=Alcatel-Lucent-IPD - -+OUI:6CBFB5* -+ ID_OUI_FROM_DATABASE=Noon Technology Co., Ltd -+ - OUI:6CC1D2* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -60514,6 +60754,9 @@ OUI:70A8E3* - OUI:70AAB2* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:70AF25* -+ ID_OUI_FROM_DATABASE=Nishiyama Industry Co.,LTD. -+ - OUI:70B035* - ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd - -@@ -60535,6 +60778,9 @@ OUI:70B599* - OUI:70B921* - ID_OUI_FROM_DATABASE=FiberHome Telecommunication Technologies CO.,LTD - -+OUI:70BAEF* -+ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited -+ - OUI:70C6AC* - ID_OUI_FROM_DATABASE=Bosch Automotive Aftermarket - -@@ -60586,6 +60832,9 @@ OUI:70EE50* - OUI:70F176* - ID_OUI_FROM_DATABASE=Data Modul AG - -+OUI:70F196* -+ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc -+ - OUI:70F1A1* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -60796,6 +61045,9 @@ OUI:74B00C* - OUI:74B9EB* - ID_OUI_FROM_DATABASE=Fujian JinQianMao Electronic Technology Co.,Ltd - -+OUI:74BADB* -+ ID_OUI_FROM_DATABASE=Longconn Electornics(shenzhen)Co.,Ltd -+ - OUI:74BE08* - ID_OUI_FROM_DATABASE=ATEK Products, LLC - -@@ -60844,6 +61096,9 @@ OUI:74DE2B* - OUI:74E06E* - ID_OUI_FROM_DATABASE=Ergophone GmbH - -+OUI:74E14A* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:74E1B6* - ID_OUI_FROM_DATABASE=Apple - -@@ -61318,6 +61573,9 @@ OUI:7C092B* - OUI:7C0A50* - ID_OUI_FROM_DATABASE=J-MEX Inc. - -+OUI:7C0ECE* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:7C11BE* - ID_OUI_FROM_DATABASE=Apple - -@@ -61345,6 +61603,9 @@ OUI:7C2048* - OUI:7C2064* - ID_OUI_FROM_DATABASE=Alcatel Lucent IPD - -+OUI:7C2587* -+ ID_OUI_FROM_DATABASE=chaowifi.com -+ - OUI:7C2CF3* - ID_OUI_FROM_DATABASE=Secure Electrans Ltd - -@@ -61504,6 +61765,9 @@ OUI:7CAD74* - OUI:7CB03E* - ID_OUI_FROM_DATABASE=OSRAM GmbH - -+OUI:7CB177* -+ ID_OUI_FROM_DATABASE=Satelco AG -+ - OUI:7CB21B* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -@@ -61774,6 +62038,9 @@ OUI:8065E9* - OUI:806629* - ID_OUI_FROM_DATABASE=Prescope Technologies CO.,LTD. - -+OUI:806C1B* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:806C8B* - ID_OUI_FROM_DATABASE=KAESER KOMPRESSOREN AG - -@@ -61918,9 +62185,15 @@ OUI:80D733* - OUI:80DB31* - ID_OUI_FROM_DATABASE=Power Quotient International Co., Ltd. - -+OUI:80E650* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:80EA96* - ID_OUI_FROM_DATABASE=Apple - -+OUI:80EACA* -+ ID_OUI_FROM_DATABASE=Dialog Semiconductor Hellas SA -+ - OUI:80EE73* - ID_OUI_FROM_DATABASE=Shuttle Inc. - -@@ -61933,6 +62206,9 @@ OUI:80F593* - OUI:80F62E* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -+OUI:80F8EB* -+ ID_OUI_FROM_DATABASE=RayTight -+ - OUI:80FA5B* - ID_OUI_FROM_DATABASE=CLEVO CO. - -@@ -62116,6 +62392,9 @@ OUI:848506* - OUI:84850A* - ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH - -+OUI:8486F3* -+ ID_OUI_FROM_DATABASE=Greenvity Communications -+ - OUI:848D84* - ID_OUI_FROM_DATABASE=Rajant Corporation - -@@ -62134,9 +62413,15 @@ OUI:848F69* - OUI:849000* - ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik - -+OUI:84930C* -+ ID_OUI_FROM_DATABASE=InCoax Networks Europe AB -+ - OUI:84948C* - ID_OUI_FROM_DATABASE=Hitron Technologies. Inc - -+OUI:849681* -+ ID_OUI_FROM_DATABASE=Cathay Communication Co.,Ltd -+ - OUI:8496D8* - ID_OUI_FROM_DATABASE=Pace plc - -@@ -62206,6 +62491,9 @@ OUI:84DE3D* - OUI:84DF0C* - ID_OUI_FROM_DATABASE=NET2GRID BV - -+OUI:84E058* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:84E4D9* - ID_OUI_FROM_DATABASE=Shenzhen NEED technology Ltd. - -@@ -62545,6 +62833,9 @@ OUI:8C0EE3* - OUI:8C11CB* - ID_OUI_FROM_DATABASE=ABUS Security-Center GmbH & Co. KG - -+OUI:8C18D9* -+ ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co., Ltd -+ - OUI:8C1F94* - ID_OUI_FROM_DATABASE=RF Surgical System Inc. - -@@ -62632,6 +62923,9 @@ OUI:8C5AF0* - OUI:8C5CA1* - ID_OUI_FROM_DATABASE=d-broad,INC - -+OUI:8C5D60* -+ ID_OUI_FROM_DATABASE=UCI Corporation Co.,Ltd. -+ - OUI:8C5FDF* - ID_OUI_FROM_DATABASE=Beijing Railway Signal Factory - -@@ -62683,6 +62977,9 @@ OUI:8C7CFF* - OUI:8C7EB3* - ID_OUI_FROM_DATABASE=Lytro, Inc. - -+OUI:8C7F3B* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:8C82A8* - ID_OUI_FROM_DATABASE=Insigma Technology Co.,Ltd - -@@ -62716,6 +63013,9 @@ OUI:8CAE4C* - OUI:8CAE89* - ID_OUI_FROM_DATABASE=Y-cam Solutions Ltd - -+OUI:8CB094* -+ ID_OUI_FROM_DATABASE=Airtech I&C Co., Ltd -+ - OUI:8CB64F* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -62770,6 +63070,9 @@ OUI:8CD628* - OUI:8CDB25* - ID_OUI_FROM_DATABASE=ESG Solutions - -+OUI:8CDCD4* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:8CDD8D* - ID_OUI_FROM_DATABASE=Wifly-City System Inc. - -@@ -62788,6 +63091,9 @@ OUI:8CE7B3* - OUI:8CEEC6* - ID_OUI_FROM_DATABASE=Precepscion Pty. Ltd. - -+OUI:8CF813* -+ ID_OUI_FROM_DATABASE=ORANGE POLSKA -+ - OUI:8CF945* - ID_OUI_FROM_DATABASE=Power Automation pte Ltd - -@@ -62851,6 +63157,9 @@ OUI:901D27* - OUI:901EDD* - ID_OUI_FROM_DATABASE=GREAT COMPUTER CORPORATION - -+OUI:90203A* -+ ID_OUI_FROM_DATABASE=BYD Precision Manufacture Co.,Ltd -+ - OUI:902083* - ID_OUI_FROM_DATABASE=General Engine Management Systems Ltd. - -@@ -63127,6 +63436,9 @@ OUI:90E6BA* - OUI:90EA60* - ID_OUI_FROM_DATABASE=SPI Lasers Ltd - -+OUI:90EF68* -+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation -+ - OUI:90F1AA* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD - -@@ -63154,6 +63466,9 @@ OUI:90FB5B* - OUI:90FBA6* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -+OUI:90FD61* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:90FF79* - ID_OUI_FROM_DATABASE=Metro Ethernet Forum - -@@ -63247,6 +63562,9 @@ OUI:945103* - OUI:9451BF* - ID_OUI_FROM_DATABASE=Hyundai ESG - -+OUI:945493* -+ ID_OUI_FROM_DATABASE=Rigado, LLC -+ - OUI:94592D* - ID_OUI_FROM_DATABASE=EKE Building Technology Systems Ltd - -@@ -63256,6 +63574,9 @@ OUI:945B7E* - OUI:946124* - ID_OUI_FROM_DATABASE=Pason Systems - -+OUI:946269* -+ ID_OUI_FROM_DATABASE=Arris Group, Inc. -+ - OUI:9463D1* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -63622,6 +63943,9 @@ OUI:988EDD* - OUI:989080* - ID_OUI_FROM_DATABASE=Linkpower Network System Inc Ltd. - -+OUI:989096* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:9893CC* - ID_OUI_FROM_DATABASE=LG Electronics Inc. - -@@ -63781,6 +64105,9 @@ OUI:9C3178* - OUI:9C31B6* - ID_OUI_FROM_DATABASE=Kulite Semiconductor Products Inc - -+OUI:9C3583* -+ ID_OUI_FROM_DATABASE=Nipro Diagnostics, Inc -+ - OUI:9C3AAF* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -64234,6 +64561,9 @@ OUI:A08C9B* - OUI:A090DE* - ID_OUI_FROM_DATABASE=VEEDIMS,LLC - -+OUI:A09347* -+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD. -+ - OUI:A09805* - ID_OUI_FROM_DATABASE=OpenVox Communication Co Ltd - -@@ -64336,6 +64666,9 @@ OUI:A0E534* - OUI:A0E5E9* - ID_OUI_FROM_DATABASE=enimai Inc - -+OUI:A0E6F8* -+ ID_OUI_FROM_DATABASE=Texas Instruments Inc -+ - OUI:A0E9DB* - ID_OUI_FROM_DATABASE=Ningbo FreeWings Technologies Co.,Ltd - -@@ -64498,6 +64831,9 @@ OUI:A46CC1* - OUI:A46E79* - ID_OUI_FROM_DATABASE=DFT System Co.Ltd - -+OUI:A470D6* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:A47733* - ID_OUI_FROM_DATABASE=Google - -@@ -64643,7 +64979,7 @@ OUI:A4D3B5* - ID_OUI_FROM_DATABASE=GLITEL Stropkov, s.r.o. - - OUI:A4D856* -- ID_OUI_FROM_DATABASE=Qualcomm Labs Inc. -+ ID_OUI_FROM_DATABASE=Gimbal, Inc - - OUI:A4DA3F* - ID_OUI_FROM_DATABASE=Bionics Corp. -@@ -64732,6 +65068,9 @@ OUI:A81758* - OUI:A81B18* - ID_OUI_FROM_DATABASE=XTS CORP - -+OUI:A81B5D* -+ ID_OUI_FROM_DATABASE=Foxtel Management Pty Ltd -+ - OUI:A81FAF* - ID_OUI_FROM_DATABASE=KRYPTON POLSKA - -@@ -64984,6 +65323,9 @@ OUI:AC0A61* - OUI:AC0DFE* - ID_OUI_FROM_DATABASE=Ekon GmbH - myGEKKO - -+OUI:AC11D3* -+ ID_OUI_FROM_DATABASE=Suzhou HOTEK Video Technology Co. Ltd -+ - OUI:AC1461* - ID_OUI_FROM_DATABASE=ATAW Co., Ltd. - -@@ -65023,6 +65365,9 @@ OUI:AC34CB* - OUI:AC3613* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:AC3870* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:AC3C0B* - ID_OUI_FROM_DATABASE=Apple - -@@ -65191,6 +65536,9 @@ OUI:ACAB8D* - OUI:ACB313* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:ACB74F* -+ ID_OUI_FROM_DATABASE=METEL s.r.o. -+ - OUI:ACB859* - ID_OUI_FROM_DATABASE=Uniband Electronic Corp, - -@@ -65356,6 +65704,9 @@ OUI:B03850* - OUI:B0435D* - ID_OUI_FROM_DATABASE=NuLEDs, Inc. - -+OUI:B04515* -+ ID_OUI_FROM_DATABASE=mira fitness,LLC. -+ - OUI:B04545* - ID_OUI_FROM_DATABASE=YACOUB Automation GmbH - -@@ -65635,6 +65986,9 @@ OUI:B41489* - OUI:B41513* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:B41780* -+ ID_OUI_FROM_DATABASE=DTI Group Ltd -+ - OUI:B418D1* - ID_OUI_FROM_DATABASE=Apple - -@@ -65746,6 +66100,12 @@ OUI:B4749F* - OUI:B4750E* - ID_OUI_FROM_DATABASE=Belkin International Inc. - -+OUI:B479A7* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ -+OUI:B47C29* -+ ID_OUI_FROM_DATABASE=Shenzhen Guzidi Technology Co.,Ltd -+ - OUI:B47F5E* - ID_OUI_FROM_DATABASE=Foresight Manufacture (S) Pte Ltd - -@@ -65923,6 +66283,9 @@ OUI:B81619* - OUI:B817C2* - ID_OUI_FROM_DATABASE=Apple - -+OUI:B8186F* -+ ID_OUI_FROM_DATABASE=ORIENTAL MOTOR CO., LTD. -+ - OUI:B81999* - ID_OUI_FROM_DATABASE=Nesys - -@@ -65989,6 +66352,9 @@ OUI:B843E4* - OUI:B847C6* - ID_OUI_FROM_DATABASE=SanJet Technology Corp. - -+OUI:B84FD5* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:B85510* - ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. - -@@ -66109,6 +66475,9 @@ OUI:B89AED* - OUI:B89BC9* - ID_OUI_FROM_DATABASE=SMC Networks Inc - -+OUI:B89BE4* -+ ID_OUI_FROM_DATABASE=ABB Power Systems Power Generation -+ - OUI:B8A386* - ID_OUI_FROM_DATABASE=D-Link International - -@@ -66151,6 +66520,9 @@ OUI:B8BA72* - OUI:B8BB6D* - ID_OUI_FROM_DATABASE=ENERES Co.,Ltd. - -+OUI:B8BD79* -+ ID_OUI_FROM_DATABASE=TrendPoint Systems -+ - OUI:B8BEBF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -66226,6 +66598,9 @@ OUI:B8EE65* - OUI:B8EE79* - ID_OUI_FROM_DATABASE=YWire Technologies, Inc. - -+OUI:B8F317* -+ ID_OUI_FROM_DATABASE=iSun Smasher Communications Private Limited -+ - OUI:B8F4D0* - ID_OUI_FROM_DATABASE=Herrmann Ultraschalltechnik GmbH & Co. Kg - -@@ -66373,6 +66748,9 @@ OUI:BC5FF4* - OUI:BC629F* - ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. - -+OUI:BC6641* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:BC671C* - ID_OUI_FROM_DATABASE=Cisco - -@@ -66838,6 +67216,9 @@ OUI:C4017C* - OUI:C401B1* - ID_OUI_FROM_DATABASE=SeekTech INC - -+OUI:C401CE* -+ ID_OUI_FROM_DATABASE=PRESITION (2000) CO., LTD. -+ - OUI:C40415* - ID_OUI_FROM_DATABASE=NETGEAR INC., - -@@ -66970,6 +67351,12 @@ OUI:C455C2* - OUI:C45600* - ID_OUI_FROM_DATABASE=Galleon Embedded Computing - -+OUI:C456FE* -+ ID_OUI_FROM_DATABASE=Lava International Ltd. -+ -+OUI:C4576E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD -+ - OUI:C458C2* - ID_OUI_FROM_DATABASE=Shenzhen TATFOOK Technology Co., Ltd. - -@@ -67081,6 +67468,9 @@ OUI:C4B512* - OUI:C4BA99* - ID_OUI_FROM_DATABASE=I+ME Actia Informatik und Mikro-Elektronik GmbH - -+OUI:C4BD6A* -+ ID_OUI_FROM_DATABASE=SKF GmbH -+ - OUI:C4C0AE* - ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD. - -@@ -67429,6 +67819,9 @@ OUI:C8E1A7* - OUI:C8E42F* - ID_OUI_FROM_DATABASE=Technical Research Design and Development - -+OUI:C8E7D8* -+ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. -+ - OUI:C8EE08* - ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD - -@@ -67480,6 +67873,9 @@ OUI:C8FF77* - OUI:CC0080* - ID_OUI_FROM_DATABASE=BETTINI SRL - -+OUI:CC03FA* -+ ID_OUI_FROM_DATABASE=Technicolor CH USA -+ - OUI:CC047C* - ID_OUI_FROM_DATABASE=G-WAY Microwave - -@@ -67507,6 +67903,9 @@ OUI:CC0CDA* - OUI:CC0DEC* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:CC10A3* -+ ID_OUI_FROM_DATABASE=Beijing Nan Bao Technology Co., Ltd. -+ - OUI:CC14A6* - ID_OUI_FROM_DATABASE=Yichun MyEnergy Domain, Inc - -@@ -67531,6 +67930,9 @@ OUI:CC2A80* - OUI:CC2D8C* - ID_OUI_FROM_DATABASE=LG ELECTRONICS INC - -+OUI:CC3080* -+ ID_OUI_FROM_DATABASE=VAIO Corporation -+ - OUI:CC33BB* - ID_OUI_FROM_DATABASE=SAGEMCOM SAS - -@@ -67756,9 +68158,15 @@ OUI:CCD539* - OUI:CCD811* - ID_OUI_FROM_DATABASE=Aiconn Technology Corporation - -+OUI:CCD8C1* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:CCD9E9* - ID_OUI_FROM_DATABASE=SCR Engineers Ltd. - -+OUI:CCE17F* -+ ID_OUI_FROM_DATABASE=juniper networks -+ - OUI:CCE1D5* - ID_OUI_FROM_DATABASE=Buffalo Inc. - -@@ -67786,6 +68194,9 @@ OUI:CCF3A5* - OUI:CCF407* - ID_OUI_FROM_DATABASE=EUKREA ELECTROMATIQUE SARL - -+OUI:CCF538* -+ ID_OUI_FROM_DATABASE=3isysnetworks -+ - OUI:CCF67A* - ID_OUI_FROM_DATABASE=Ayecka Communication Systems LTD - -@@ -67825,6 +68236,9 @@ OUI:D00AAB* - OUI:D00EA4* - ID_OUI_FROM_DATABASE=Porsche Cars North America - -+OUI:D01242* -+ ID_OUI_FROM_DATABASE=BIOS Corporation -+ - OUI:D0131E* - ID_OUI_FROM_DATABASE=Sunrex Technology Corp - -@@ -67915,6 +68329,9 @@ OUI:D05FB8* - OUI:D05FCE* - ID_OUI_FROM_DATABASE=Hitachi Data Systems - -+OUI:D062A0* -+ ID_OUI_FROM_DATABASE=China Essence Technology (Zhumadian) Co., Ltd. -+ - OUI:D0634D* - ID_OUI_FROM_DATABASE=Meiko Maschinenbau GmbH & Co. KG - -@@ -67963,6 +68380,9 @@ OUI:D07E28* - OUI:D07E35* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:D084B0* -+ ID_OUI_FROM_DATABASE=Sagemcom -+ - OUI:D08999* - ID_OUI_FROM_DATABASE=APCON, Inc. - -@@ -68110,6 +68530,9 @@ OUI:D0F27F* - OUI:D0F73B* - ID_OUI_FROM_DATABASE=Helmut Mauell GmbH - -+OUI:D0FA1D* -+ ID_OUI_FROM_DATABASE=Qihoo 360 Technology Co.,Ltd -+ - OUI:D0FF50* - ID_OUI_FROM_DATABASE=Texas Instruments, Inc - -@@ -68191,6 +68614,9 @@ OUI:D42F23* - OUI:D4319D* - ID_OUI_FROM_DATABASE=Sinwatec - -+OUI:D437D7* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:D43A65* - ID_OUI_FROM_DATABASE=IGRS Engineering Lab Ltd. - -@@ -68278,6 +68704,9 @@ OUI:D46F42* - OUI:D479C3* - ID_OUI_FROM_DATABASE=Cameronet GmbH & Co. KG - -+OUI:D47B35* -+ ID_OUI_FROM_DATABASE=NEO Monitors AS -+ - OUI:D47B75* - ID_OUI_FROM_DATABASE=HARTING Electronics GmbH - -@@ -68299,6 +68728,9 @@ OUI:D48890* - OUI:D48CB5* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:D48F33* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:D48FAA* - ID_OUI_FROM_DATABASE=Sogecam Industrial, S.A. - -@@ -68440,6 +68872,9 @@ OUI:D4EA0E* - OUI:D4EC0C* - ID_OUI_FROM_DATABASE=Harley-Davidson Motor Company - -+OUI:D4EC86* -+ ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd -+ - OUI:D4EE07* - ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd. - -@@ -68551,6 +68986,9 @@ OUI:D8490B* - OUI:D8492F* - ID_OUI_FROM_DATABASE=CANON INC. - -+OUI:D84A87* -+ ID_OUI_FROM_DATABASE=OI ELECTRIC CO.,LTD -+ - OUI:D84B2A* - ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. - -@@ -68860,6 +69298,9 @@ OUI:DC37D2* - OUI:DC38E1* - ID_OUI_FROM_DATABASE=Juniper networks - -+OUI:DC3979* -+ ID_OUI_FROM_DATABASE=Skyport Systems -+ - OUI:DC3A5E* - ID_OUI_FROM_DATABASE=Roku, Inc - -@@ -69199,6 +69640,9 @@ OUI:E09467* - OUI:E09579* - ID_OUI_FROM_DATABASE=ORTHOsoft inc, d/b/a Zimmer CAS - -+OUI:E09796* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:E097F2* - ID_OUI_FROM_DATABASE=Atomax Inc. - -@@ -69226,6 +69670,9 @@ OUI:E0AAB0* - OUI:E0ABFE* - ID_OUI_FROM_DATABASE=Orb Networks, Inc. - -+OUI:E0ACF1* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:E0AE5E* - ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. - -@@ -69523,6 +69970,9 @@ OUI:E492E7* - OUI:E492FB* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:E4956E* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:E496AE* - ID_OUI_FROM_DATABASE=ALTOGRAPHICS Inc. - -@@ -69553,6 +70003,9 @@ OUI:E4B021* - OUI:E4C146* - ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A - -+OUI:E4C62B* -+ ID_OUI_FROM_DATABASE=Airware -+ - OUI:E4C63D* - ID_OUI_FROM_DATABASE=Apple, Inc. - -@@ -69910,6 +70363,9 @@ OUI:E8EA6A* - OUI:E8EADA* - ID_OUI_FROM_DATABASE=Denkovi Assembly Electroncs LTD - -+OUI:E8ED05* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:E8EDF3* - ID_OUI_FROM_DATABASE=Cisco - -@@ -69931,6 +70387,9 @@ OUI:E8FC60* - OUI:E8FCAF* - ID_OUI_FROM_DATABASE=NETGEAR INC., - -+OUI:EC0EC4* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:EC0ED6* - ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS - -@@ -69949,6 +70408,9 @@ OUI:EC1766* - OUI:EC1A59* - ID_OUI_FROM_DATABASE=Belkin International Inc. - -+OUI:EC1D7F* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:EC219F* - ID_OUI_FROM_DATABASE=VidaBox LLC - -@@ -69982,6 +70444,9 @@ OUI:EC3586* - OUI:EC3BF0* - ID_OUI_FROM_DATABASE=NovelSat - -+OUI:EC3C5A* -+ ID_OUI_FROM_DATABASE=SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD -+ - OUI:EC3E09* - ID_OUI_FROM_DATABASE=PERFORMANCE DESIGNED PRODUCTS, LLC - -@@ -70522,6 +70987,9 @@ OUI:F4068D* - OUI:F406A5* - ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. - -+OUI:F409D8* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ - OUI:F40B93* - ID_OUI_FROM_DATABASE=Research In Motion - -@@ -70555,6 +71023,9 @@ OUI:F42012* - OUI:F42833* - ID_OUI_FROM_DATABASE=MMPC Inc. - -+OUI:F42853* -+ ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. -+ - OUI:F42896* - ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA - -@@ -70780,6 +71251,9 @@ OUI:F4EC38* - OUI:F4F15A* - ID_OUI_FROM_DATABASE=Apple - -+OUI:F4F1E1* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:F4F26D* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -@@ -70855,6 +71329,9 @@ OUI:F81EDF* - OUI:F82285* - ID_OUI_FROM_DATABASE=Cypress Technology CO., LTD. - -+OUI:F82441* -+ ID_OUI_FROM_DATABASE=Yeelink -+ - OUI:F82793* - ID_OUI_FROM_DATABASE=Apple, Inc - -@@ -71119,6 +71596,9 @@ OUI:F8E4FB* - OUI:F8E7B5* - ID_OUI_FROM_DATABASE=µTech Tecnologia LTDA - -+OUI:F8E811* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:F8E968* - ID_OUI_FROM_DATABASE=Egker Kft. - -@@ -71221,6 +71701,9 @@ OUI:FC1BFF* - OUI:FC1D59* - ID_OUI_FROM_DATABASE=I Smart Cities HK Ltd - -+OUI:FC1D84* -+ ID_OUI_FROM_DATABASE=Autobase -+ - OUI:FC1E16* - ID_OUI_FROM_DATABASE=IPEVO corp - -@@ -71359,6 +71842,9 @@ OUI:FC9947* - OUI:FC9FAE* - ID_OUI_FROM_DATABASE=Fidus Systems Inc - -+OUI:FC9FE1* -+ ID_OUI_FROM_DATABASE=CONWIN.Tech. Ltd -+ - OUI:FCA13E* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -71419,6 +71905,9 @@ OUI:FCD817* - OUI:FCDB96* - ID_OUI_FROM_DATABASE=ENERVALLEY CO., LTD - -+OUI:FCDBB3* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:FCDD55* - ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd - -diff --git hwdb/20-pci-classes.hwdb hwdb/20-pci-classes.hwdb -index fd1d5d0..5702c40 100644 ---- hwdb/20-pci-classes.hwdb -+++ hwdb/20-pci-classes.hwdb -@@ -47,12 +47,24 @@ pci:v*d*sv*sd*bc01sc06i00* - pci:v*d*sv*sd*bc01sc06i01* - ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0 - -+pci:v*d*sv*sd*bc01sc06i02* -+ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus -+ - pci:v*d*sv*sd*bc01sc07* - ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller - -+pci:v*d*sv*sd*bc01sc07i01* -+ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus -+ - pci:v*d*sv*sd*bc01sc08* - ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller - -+pci:v*d*sv*sd*bc01sc08i01* -+ ID_PCI_INTERFACE_FROM_DATABASE=NVMHCI -+ -+pci:v*d*sv*sd*bc01sc08i02* -+ ID_PCI_INTERFACE_FROM_DATABASE=NVM Express -+ - pci:v*d*sv*sd*bc01sc80* - ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller - -@@ -80,6 +92,9 @@ pci:v*d*sv*sd*bc02sc05* - pci:v*d*sv*sd*bc02sc06* - ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller - -+pci:v*d*sv*sd*bc02sc07* -+ ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller -+ - pci:v*d*sv*sd*bc02sc80* - ID_PCI_SUBCLASS_FROM_DATABASE=Network controller - -@@ -311,6 +326,9 @@ pci:v*d*sv*sd*bc08sc02i01* - pci:v*d*sv*sd*bc08sc02i02* - ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers - -+pci:v*d*sv*sd*bc08sc02i03* -+ ID_PCI_INTERFACE_FROM_DATABASE=HPET -+ - pci:v*d*sv*sd*bc08sc03* - ID_PCI_SUBCLASS_FROM_DATABASE=RTC - -@@ -527,5 +545,14 @@ pci:v*d*sv*sd*bc11sc20* - pci:v*d*sv*sd*bc11sc80* - ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller - -+pci:v*d*sv*sd*bc12* -+ ID_PCI_CLASS_FROM_DATABASE=Processing accelerators -+ -+pci:v*d*sv*sd*bc12sc00* -+ ID_PCI_SUBCLASS_FROM_DATABASE=Processing accelerators -+ -+pci:v*d*sv*sd*bc13* -+ ID_PCI_CLASS_FROM_DATABASE=Non-Essential Instrumentation -+ - pci:v*d*sv*sd*bcFF* - ID_PCI_CLASS_FROM_DATABASE=Unassigned class -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 62941b9..77c727d 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -959,6 +959,15 @@ pci:v00001000d0000005Dsv00001028sd00001F49* - pci:v00001000d0000005Dsv00001028sd00001F4A* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) - -+pci:v00001000d0000005Dsv00001028sd00001F4D* -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xS) -+ -+pci:v00001000d0000005Dsv00001028sd00001F4F* -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Slim) -+ -+pci:v00001000d0000005Dsv00001028sd00001F54* -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xD) -+ - pci:v00001000d0000005Dsv000017AAsd00001052* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) - -@@ -1677,7 +1686,7 @@ pci:v00001002d00001308* - ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller - - pci:v00001002d00001309* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6/R7 Graphics] - - pci:v00001002d0000130A* - ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] -@@ -3003,7 +3012,7 @@ pci:v00001002d00004C57sv00001014sd00000517* - ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) - - pci:v00001002d00004C57sv00001014sd00000530* -- ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T4x Series) - - pci:v00001002d00004C57sv00001028sd000000E6* - ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) -@@ -4362,7 +4371,7 @@ pci:v00001002d00006667* - ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] - - pci:v00001002d0000666F* -- ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] -+ ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M / R5 M230] - - pci:v00001002d00006670* - ID_MODEL_FROM_DATABASE=Hainan -@@ -5937,10 +5946,10 @@ pci:v00001002d0000679F* - ID_MODEL_FROM_DATABASE=Tahiti - - pci:v00001002d000067A0* -- ID_MODEL_FROM_DATABASE=Hawaii XT GL -+ ID_MODEL_FROM_DATABASE=Hawaii XT GL [FirePro W9100] - - pci:v00001002d000067A1* -- ID_MODEL_FROM_DATABASE=Hawaii GL -+ ID_MODEL_FROM_DATABASE=Hawaii PRO GL [FirePro W8100] - - pci:v00001002d000067A2* - ID_MODEL_FROM_DATABASE=Hawaii GL -@@ -5961,7 +5970,7 @@ pci:v00001002d000067B1* - ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] - - pci:v00001002d000067B9* -- ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] -+ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295X2] - - pci:v00001002d000067BE* - ID_MODEL_FROM_DATABASE=Hawaii LE -@@ -7860,7 +7869,13 @@ pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE - - pci:v00001002d00006900* -- ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] -+ -+pci:v00001002d00006900sv00001028sd00000640* -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M265) -+ -+pci:v00001002d00006900sv00001179sd0000F934* -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M260) - - pci:v00001002d00006901* - ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] -@@ -8027,6 +8042,9 @@ pci:v00001002d0000718A* - pci:v00001002d0000718B* - ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] - -+pci:v00001002d0000718Bsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001002d0000718C* - ID_MODEL_FROM_DATABASE=RV516/M62-CSP64 [Mobility Radeon X1350] - -@@ -8969,26 +8987,29 @@ pci:v00001002d0000983E* - pci:v00001002d0000983F* - ID_MODEL_FROM_DATABASE=Kabini - -+pci:v00001002d00009840* -+ ID_MODEL_FROM_DATABASE=Kabini HDMI/DP Audio -+ - pci:v00001002d00009850* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A6-6200 with R3 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] - - pci:v00001002d00009851* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics] - - pci:v00001002d00009852* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] - - pci:v00001002d00009853* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-4000 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] - - pci:v00001002d00009854* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-3700 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] - - pci:v00001002d00009855* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2450M with R3 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R6 Graphics] - - pci:v00001002d00009856* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] - - pci:v00001002d00009857* - ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] -@@ -12347,6 +12368,9 @@ pci:v0000102Bd00000532sv00001028sd0000029C* - pci:v0000102Bd00000532sv00001028sd000002A4* - ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) - -+pci:v0000102Bd00000532sv000015D9sd00000624* -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (X9SCM-F Motherboard) -+ - pci:v0000102Bd00000532sv000015D9sd0000A811* - ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) - -@@ -13169,6 +13193,9 @@ pci:v00001039d00000016* - pci:v00001039d00000018* - ID_MODEL_FROM_DATABASE=SiS85C503/5513 (LPC Bridge) - -+pci:v00001039d00000163* -+ ID_MODEL_FROM_DATABASE=163 802.11b/g Wireless LAN Adapter -+ - pci:v00001039d00000180* - ID_MODEL_FROM_DATABASE=RAID bus controller 180 SATA/PATA [SiS] - -@@ -14141,6 +14168,9 @@ pci:v00001042d00003020* - pci:v00001043* - ID_VENDOR_FROM_DATABASE=ASUSTeK Computer Inc. - -+pci:v00001043d00000464* -+ ID_MODEL_FROM_DATABASE=Radeon R9 270x GPU -+ - pci:v00001043d00000675* - ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D - -@@ -17978,6 +18008,9 @@ pci:v00001095d00003512sv00001095sd00006512* - pci:v00001095d00003531* - ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller - -+pci:v00001095d00003531sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00001096* - ID_VENDOR_FROM_DATABASE=Alacron - -@@ -26261,6 +26294,9 @@ pci:v000010DEd00000F00* - pci:v000010DEd00000F01* - ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 620] - -+pci:v000010DEd00000F02* -+ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 730] -+ - pci:v000010DEd00000FC0* - ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 640 OEM] - -@@ -26276,6 +26312,9 @@ pci:v000010DEd00000FC6* - pci:v000010DEd00000FC6sv00001043sd00008428* - ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) - -+pci:v000010DEd00000FC8* -+ ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 740] -+ - pci:v000010DEd00000FCD* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] - -@@ -26420,6 +26459,9 @@ pci:v000010DEd00000FFE* - pci:v000010DEd00000FFF* - ID_MODEL_FROM_DATABASE=GK107GL [Quadro 410] - -+pci:v000010DEd00001001* -+ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX TITAN Z] -+ - pci:v000010DEd00001003* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan LE] - -@@ -26828,9 +26870,57 @@ pci:v000010DEd00001140sv00001025sd00000830* - pci:v000010DEd00001140sv00001025sd00000837* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv00001025sd0000083E* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001025sd00000841* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - -+pci:v000010DEd00001140sv00001025sd00000854* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000855* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000856* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000857* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000858* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000868* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000869* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ -+pci:v000010DEd00001140sv00001025sd00000873* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000878* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000087B* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000087C* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ -+pci:v000010DEd00001140sv00001025sd00000881* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000088A* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000090F* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000921* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001028sd0000054D* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -@@ -26966,6 +27056,18 @@ pci:v000010DEd00001140sv00001043sd000016DD* - pci:v000010DEd00001140sv00001043sd0000170D* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -+pci:v000010DEd00001140sv00001043sd0000176D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001043sd0000178D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001043sd0000179D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001043sd000017DD* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001043sd00002132* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - -@@ -27713,6 +27815,9 @@ pci:v000010DEd00001284* - pci:v000010DEd00001286* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] - -+pci:v000010DEd00001287* -+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 730] -+ - pci:v000010DEd00001290* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] - -@@ -27749,6 +27854,21 @@ pci:v000010DEd00001294* - pci:v000010DEd00001295* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] - -+pci:v000010DEd00001295sv0000103Csd00002B0D* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B0F* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B11* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B21* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B22* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) -+ - pci:v000010DEd00001296* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] - -@@ -28302,7 +28422,7 @@ pci:v000010ECd00008136* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller - - pci:v000010ECd00008136sv0000103Csd00002AB1* -- ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion p6774) - - pci:v000010ECd00008136sv0000103Csd000030CC* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) -@@ -28310,6 +28430,9 @@ pci:v000010ECd00008136sv0000103Csd000030CC* - pci:v000010ECd00008136sv00001179sd0000FF64* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) - -+pci:v000010ECd00008136sv000017C0sd00001053* -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (AzureWave AW-NE766 802.11B/G/N Mini PCIe Card Model RT2700E) -+ - pci:v000010ECd00008138* - ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter - -@@ -29036,6 +29159,9 @@ pci:v00001102d0000000B* - pci:v00001102d0000000Bsv00001102sd00000041* - ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) - -+pci:v00001102d00000012* -+ ID_MODEL_FROM_DATABASE=SB Recon3D -+ - pci:v00001102d00004001* - ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port - -@@ -30878,6 +31004,9 @@ pci:v00001106d0000E340* - pci:v00001106d0000E353* - ID_MODEL_FROM_DATABASE=VX800/VX820 PCI Express Root Port - -+pci:v00001106d0000E410* -+ ID_MODEL_FROM_DATABASE=VX900 PCI Express Physical Layer Electrical Sub-block -+ - pci:v00001106d0000F208* - ID_MODEL_FROM_DATABASE=PT890 PCI to PCI Bridge Controller - -@@ -35045,6 +35174,9 @@ pci:v000011ABd00004353sv0000104Dsd0000902D* - pci:v000011ABd00004354* - ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller - -+pci:v000011ABd00004354sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (R730 Laptop) -+ - pci:v000011ABd00004354sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) - -@@ -36557,6 +36689,9 @@ pci:v00001217* - pci:v00001217d000000F7* - ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) - -+pci:v00001217d000000F7sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001217d000000F7sv00001179sd0000FF50* - ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) - -@@ -36635,12 +36770,18 @@ pci:v00001217d00007114* - pci:v00001217d00007120* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller - -+pci:v00001217d00007120sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001217d00007120sv00001179sd0000FF50* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) - - pci:v00001217d00007130* - ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller - -+pci:v00001217d00007130sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001217d00007130sv00001179sd0000FF50* - ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) - -@@ -42276,7 +42417,7 @@ pci:v00001425d00004083* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller - - pci:v00001425d00004084* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller - - pci:v00001425d00004085* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -@@ -42348,7 +42489,7 @@ pci:v00001425d00004483* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller - - pci:v00001425d00004484* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller - - pci:v00001425d00004485* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -@@ -42420,7 +42561,7 @@ pci:v00001425d00004583* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller - - pci:v00001425d00004584* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller - - pci:v00001425d00004585* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller -@@ -42492,7 +42633,7 @@ pci:v00001425d00004683* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller - - pci:v00001425d00004684* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller - - pci:v00001425d00004685* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller -@@ -42564,7 +42705,7 @@ pci:v00001425d00004783* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller - - pci:v00001425d00004784* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller - - pci:v00001425d00004785* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -@@ -42579,76 +42720,76 @@ pci:v00001425d00004788* - ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller - - pci:v00001425d00004801* -- ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004802* -- ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004803* -- ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004804* -- ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004805* -- ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004806* -- ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004807* -- ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004808* -- ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004809* -- ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480A* -- ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480B* -- ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480C* -- ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480D* -- ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480E* -- ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480F* -- ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004880* -- ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004881* -- ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004882* -- ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004883* -- ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004884* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004885* -- ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004886* -- ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004887* -- ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004888* -- ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005001* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller -@@ -43041,82 +43182,82 @@ pci:v00001425d00005785* - ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller - - pci:v00001425d00005801* -- ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005802* -- ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005803* -- ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005804* -- ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005805* -- ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005806* -- ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005807* -- ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005808* -- ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005809* -- ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580A* -- ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580B* -- ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580C* -- ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580D* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580E* -- ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580F* -- ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005810* -- ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005811* -- ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005812* -- ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005813* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005814* -- ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005815* -- ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005880* -- ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005881* -- ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005883* -- ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005884* -- ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005885* -- ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000A000* - ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller -@@ -43562,6 +43703,9 @@ pci:v0000148E* - pci:v0000148F* - ID_VENDOR_FROM_DATABASE=Plant Equipment, Inc. - -+pci:v0000148Fd00005370* -+ ID_MODEL_FROM_DATABASE=Dexlink AUWL15I1 -+ - pci:v00001490* - ID_VENDOR_FROM_DATABASE=Stone Microsystems PTY Ltd. - -@@ -44885,6 +45029,9 @@ pci:v000014E4d000016A2sv0000103Csd00001916* - pci:v000014E4d000016A2sv0000103Csd00001917* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) - -+pci:v000014E4d000016A3* -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM57786 Gigabit Ethernet PCIe -+ - pci:v000014E4d000016A4* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function - -@@ -47796,7 +47943,7 @@ pci:v000015B3d00001003* - ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3] - - pci:v000015B3d00001004* -- ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3 Virtual Function] -+ ID_MODEL_FROM_DATABASE=MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function] - - pci:v000015B3d00001005* - ID_MODEL_FROM_DATABASE=MT27510 Family -@@ -47807,9 +47954,6 @@ pci:v000015B3d00001006* - pci:v000015B3d00001007* - ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro] - --pci:v000015B3d00001008* -- ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro Virtual Function] -- - pci:v000015B3d00001009* - ID_MODEL_FROM_DATABASE=MT27530 Family - -@@ -49187,6 +49331,9 @@ pci:v0000168Cd0000002Bsv0000105Bsd0000E017* - pci:v0000168Cd0000002Bsv0000105Bsd0000E023* - ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) - -+pci:v0000168Cd0000002Bsv0000105Bsd0000E025* -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.05 802.11bgn Wireless Half-size Mini PCIe Card) -+ - pci:v0000168Cd0000002Bsv00001113sd0000E811* - ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) - -@@ -50471,6 +50618,9 @@ pci:v00001814d00000701sv00001737sd00000074* - pci:v00001814d00000781* - ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe - -+pci:v00001814d00000781sv00001814sd00002790* -+ ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe -+ - pci:v00001814d00003060* - ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R - -@@ -51911,6 +52061,9 @@ pci:v00001969d00001063* - pci:v00001969d00001063sv00001458sd0000E000* - ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) - -+pci:v00001969d00001063sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00001969d00001066* - ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet - -@@ -52358,6 +52511,18 @@ pci:v00001A2Bd0000000A* - pci:v00001A2Bd0000000E* - ID_MODEL_FROM_DATABASE=DSLP-104 v1.1 - -+pci:v00001A30* -+ ID_VENDOR_FROM_DATABASE=Lantiq -+ -+pci:v00001A30d00000680* -+ ID_MODEL_FROM_DATABASE=MtW8171 [Hyperion II] -+ -+pci:v00001A30d00000700* -+ ID_MODEL_FROM_DATABASE=Wave300 PSB8224 [Hyperion III] -+ -+pci:v00001A30d00000710* -+ ID_MODEL_FROM_DATABASE=Wave300 PSB8231 [Hyperion III] -+ - pci:v00001A32* - ID_VENDOR_FROM_DATABASE=Quanta Microsystems, Inc - -@@ -52497,19 +52662,19 @@ pci:v00001A78* - ID_VENDOR_FROM_DATABASE=Virident Systems Inc. - - pci:v00001A78d00000031* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive - - pci:v00001A78d00000031sv00001A78sd00000034* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) - - pci:v00001A78d00000031sv00001A78sd00000037* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) - - pci:v00001A78d00000031sv00001A78sd00000038* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) - - pci:v00001A78d00000031sv00001A78sd00000039* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) - - pci:v00001A78d00000040* - ID_MODEL_FROM_DATABASE=FlashMAX II -@@ -52520,6 +52685,9 @@ pci:v00001A78d00000041* - pci:v00001A78d00000042* - ID_MODEL_FROM_DATABASE=FlashMAX II - -+pci:v00001A78d00000050* -+ ID_MODEL_FROM_DATABASE=FlashMAX III -+ - pci:v00001A84* - ID_VENDOR_FROM_DATABASE=Commex Technologies - -@@ -52682,6 +52850,15 @@ pci:v00001AEDd00001008* - pci:v00001AEDd00002001* - ID_MODEL_FROM_DATABASE=ioDrive2 - -+pci:v00001AEDd00003001* -+ ID_MODEL_FROM_DATABASE=ioMemory FHHL -+ -+pci:v00001AEDd00003002* -+ ID_MODEL_FROM_DATABASE=ioMemory HHHL -+ -+pci:v00001AEDd00003003* -+ ID_MODEL_FROM_DATABASE=ioMemory Mezzanine -+ - pci:v00001AEE* - ID_VENDOR_FROM_DATABASE=Caustic Graphics Inc. - -@@ -52775,6 +52952,9 @@ pci:v00001B21d00001080* - pci:v00001B21d00001080sv00001849sd00001080* - ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) - -+pci:v00001B21d00001142* -+ ID_MODEL_FROM_DATABASE=ASM1042A USB 3.0 Host Controller -+ - pci:v00001B2C* - ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. - -@@ -52916,6 +53096,9 @@ pci:v00001B4Bd00009485* - pci:v00001B55* - ID_VENDOR_FROM_DATABASE=NetUP Inc. - -+pci:v00001B55d000018F6* -+ ID_MODEL_FROM_DATABASE=Dual DVB Universal CI card -+ - pci:v00001B55d00002A2C* - ID_MODEL_FROM_DATABASE=Dual DVB-S2-CI card - -@@ -53135,6 +53318,9 @@ pci:v00001CE4d00000002* - pci:v00001CF7* - ID_VENDOR_FROM_DATABASE=Subspace Dynamics - -+pci:v00001D21* -+ ID_VENDOR_FROM_DATABASE=Allo -+ - pci:v00001D44* - ID_VENDOR_FROM_DATABASE=DPT - -@@ -54956,15 +55142,30 @@ pci:v00008086d00000044sv00001025sd00000347* - pci:v00008086d00000044sv00001025sd00000487* - ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) - -+pci:v00008086d00000044sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (R730 Laptop) -+ -+pci:v00008086d00000044sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00000044sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) - - pci:v00008086d00000045* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port - -+pci:v00008086d00000045sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00000046* - ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller - -+pci:v00008086d00000046sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (R730 Laptop) -+ -+pci:v00008086d00000046sv000017C0sd000010D9* -+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00000046sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) - -@@ -55238,6 +55439,9 @@ pci:v00008086d00000150* - pci:v00008086d00000150sv00001043sd000084CA* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) - -+pci:v00008086d00000150sv000015D9sd00000624* -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (X9SCM-F Motherboard) -+ - pci:v00008086d00000150sv00001849sd00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) - -@@ -55445,6 +55649,9 @@ pci:v00008086d00000416sv000017AAsd0000220E* - pci:v00008086d0000041A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller - -+pci:v00008086d0000041E* -+ ID_MODEL_FROM_DATABASE=4th Generation Core Processor Family Integrated Graphics Controller -+ - pci:v00008086d00000433* - ID_MODEL_FROM_DATABASE=Coleto Creek ACC - ME/CPM interface - -@@ -56727,241 +56934,85 @@ pci:v00008086d00000EFD* - ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000F00* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -- --pci:v00008086d00000F01* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -- --pci:v00008086d00000F02* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -- --pci:v00008086d00000F03* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register - - pci:v00008086d00000F04* -- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller -- --pci:v00008086d00000F05* -- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller - - pci:v00008086d00000F06* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller -- --pci:v00008086d00000F07* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 DMA Controller - - pci:v00008086d00000F08* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller - - pci:v00008086d00000F09* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller - - pci:v00008086d00000F0A* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 -- --pci:v00008086d00000F0B* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #1 - - pci:v00008086d00000F0C* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 -- --pci:v00008086d00000F0D* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #2 - - pci:v00008086d00000F0E* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller -- --pci:v00008086d00000F0F* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller -- --pci:v00008086d00000F10* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller -- --pci:v00008086d00000F11* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller -- --pci:v00008086d00000F12* -- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller -- --pci:v00008086d00000F13* -- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 SPI Controller - - pci:v00008086d00000F14* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller - - pci:v00008086d00000F15* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller - - pci:v00008086d00000F16* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -- --pci:v00008086d00000F17* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller - - pci:v00008086d00000F18* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -- --pci:v00008086d00000F19* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -- --pci:v00008086d00000F1A* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -- --pci:v00008086d00000F1B* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine - - pci:v00008086d00000F1C* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F1D* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F1E* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F1F* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F20* -- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller -- --pci:v00008086d00000F21* -- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller -- --pci:v00008086d00000F22* -- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller -- --pci:v00008086d00000F23* -- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller -- --pci:v00008086d00000F24* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F25* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F26* -- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller -- --pci:v00008086d00000F27* -- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Power Control Unit - - pci:v00008086d00000F28* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F29* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F2A* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F2B* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F2E* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F2F* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F30* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPE Audio Controller - - pci:v00008086d00000F31* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -- --pci:v00008086d00000F32* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -- --pci:v00008086d00000F33* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Graphics & Display - - pci:v00008086d00000F34* -- ID_MODEL_FROM_DATABASE=ValleyView USB Enhanced Host Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB EHCI - - pci:v00008086d00000F35* -- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller -- --pci:v00008086d00000F36* -- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB xHCI - - pci:v00008086d00000F37* -- ID_MODEL_FROM_DATABASE=ValleyView OTG -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series OTG USB Device - - pci:v00008086d00000F38* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F39* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3A* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3B* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3C* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3D* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3E* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3F* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Camera ISP - - pci:v00008086d00000F40* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 DMA Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 DMA Controller - - pci:v00008086d00000F41* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #1 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #1 - - pci:v00008086d00000F42* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #2 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #2 - - pci:v00008086d00000F43* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #3 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #3 - - pci:v00008086d00000F44* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #4 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #4 - - pci:v00008086d00000F45* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #5 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #5 - - pci:v00008086d00000F46* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #6 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #6 - - pci:v00008086d00000F47* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #7 -- --pci:v00008086d00000F48* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F49* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4A* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4B* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4C* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4D* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4E* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4F* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F50* -- ID_MODEL_FROM_DATABASE=ValleyView MIPI-HSI Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #7 - - pci:v00008086d00001000* - ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) -@@ -57842,6 +57893,9 @@ pci:v00008086d00001091* - pci:v00008086d00001092* - ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection - -+pci:v00008086d00001092sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d00001093* - ID_MODEL_FROM_DATABASE=PRO/100 VM Network Connection - -@@ -59403,7 +59457,7 @@ pci:v00008086d0000154Asv00008086sd0000011C* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154C* -- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function - - pci:v00008086d0000154D* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter -@@ -59460,34 +59514,37 @@ pci:v00008086d00001570* - ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V - - pci:v00008086d00001571* -- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function - - pci:v00008086d00001572* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ - - pci:v00008086d00001572sv00001028sd00001F99* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710/I350 rNDC) -+ -+pci:v00008086d00001572sv00008086sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710) - - pci:v00008086d00001572sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 2P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000007* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d00001572sv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d0000157B* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -@@ -59496,17 +59553,20 @@ pci:v00008086d0000157C* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - - pci:v00008086d00001580* -- ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE backplane - - pci:v00008086d00001581* -- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane - - pci:v00008086d00001581sv00001028sd00001F98* -- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane (Ethernet 10G 4P X710-k bNDC) - - pci:v00008086d00001583* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - -+pci:v00008086d00001583sv00008086sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) -+ - pci:v00008086d00001583sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - -@@ -59519,6 +59579,9 @@ pci:v00008086d00001583sv00008086sd00000003* - pci:v00008086d00001584* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - -+pci:v00008086d00001584sv00008086sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) -+ - pci:v00008086d00001584sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) - -@@ -61244,9 +61307,15 @@ pci:v00008086d00002448sv0000104Dsd0000902D* - pci:v00008086d00002448sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) - -+pci:v00008086d00002448sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d00002448sv0000144Dsd0000C00C* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) - -+pci:v00008086d00002448sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (R730 Laptop) -+ - pci:v00008086d00002448sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) - -@@ -61259,6 +61328,12 @@ pci:v00008086d00002448sv00001734sd00001055* - pci:v00008086d00002448sv000017AAsd000020AE* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) - -+pci:v00008086d00002448sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion Akoya E7214 Notebook PC [MD98410]) -+ -+pci:v00008086d00002448sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002448sv00008086sd0000544B* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) - -@@ -61872,7 +61947,7 @@ pci:v00008086d000024C5sv00001014sd00000267* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) - - pci:v00008086d000024C5sv00001014sd00000537* -- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T4x Series) - - pci:v00008086d000024C5sv00001014sd0000055F* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) -@@ -61944,7 +62019,7 @@ pci:v00008086d000024C6* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller - - pci:v00008086d000024C6sv00001014sd00000524* -- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T4x Series) - - pci:v00008086d000024C6sv00001014sd00000525* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) -@@ -64358,6 +64433,9 @@ pci:v00008086d000027A0sv0000103Csd000030A3* - pci:v00008086d000027A0sv00001043sd00001237* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) - -+pci:v00008086d000027A0sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027A0sv000017AAsd00002015* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) - -@@ -64373,6 +64451,9 @@ pci:v00008086d000027A1sv0000103Csd0000309F* - pci:v00008086d000027A1sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) - -+pci:v00008086d000027A1sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027A2* - ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller - -@@ -64457,6 +64538,9 @@ pci:v00008086d000027B9sv0000103Csd000030A1* - pci:v00008086d000027B9sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) - -+pci:v00008086d000027B9sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027B9sv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) - -@@ -64568,6 +64652,9 @@ pci:v00008086d000027C4sv00001025sd0000006C* - pci:v00008086d000027C4sv00001028sd000001D7* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) - -+pci:v00008086d000027C4sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027C4sv000017AAsd0000200E* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) - -@@ -64625,6 +64712,9 @@ pci:v00008086d000027C8sv00001043sd00008179* - pci:v00008086d000027C8sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) - -+pci:v00008086d000027C8sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027C8sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) - -@@ -64691,6 +64781,9 @@ pci:v00008086d000027C9sv00001043sd00008179* - pci:v00008086d000027C9sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) - -+pci:v00008086d000027C9sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027C9sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) - -@@ -64757,6 +64850,9 @@ pci:v00008086d000027CAsv00001043sd00008179* - pci:v00008086d000027CAsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) - -+pci:v00008086d000027CAsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027CAsv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) - -@@ -64817,6 +64913,9 @@ pci:v00008086d000027CBsv00001043sd00008179* - pci:v00008086d000027CBsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) - -+pci:v00008086d000027CBsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027CBsv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) - -@@ -64880,6 +64979,9 @@ pci:v00008086d000027CCsv00001043sd00008179* - pci:v00008086d000027CCsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) - -+pci:v00008086d000027CCsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027CCsv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) - -@@ -64913,6 +65015,9 @@ pci:v00008086d000027D0sv0000103Csd0000309F* - pci:v00008086d000027D0sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) - -+pci:v00008086d000027D0sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D0sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) - -@@ -64937,6 +65042,9 @@ pci:v00008086d000027D2sv0000103Csd0000309F* - pci:v00008086d000027D2sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) - -+pci:v00008086d000027D2sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D2sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) - -@@ -64952,6 +65060,9 @@ pci:v00008086d000027D2sv00008086sd0000544B* - pci:v00008086d000027D4* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 - -+pci:v00008086d000027D4sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D4sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) - -@@ -64970,6 +65081,9 @@ pci:v00008086d000027D6* - pci:v00008086d000027D6sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) - -+pci:v00008086d000027D6sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D6sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) - -@@ -65021,6 +65135,9 @@ pci:v00008086d000027D8sv00001043sd000082EA* - pci:v00008086d000027D8sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) - -+pci:v00008086d000027D8sv00001071sd00008207* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D8sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) - -@@ -65099,6 +65216,9 @@ pci:v00008086d000027DAsv00001043sd00008179* - pci:v00008086d000027DAsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) - -+pci:v00008086d000027DAsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027DAsv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) - -@@ -65258,6 +65378,9 @@ pci:v00008086d00002815sv0000104Dsd00009005* - pci:v00008086d00002815sv0000104Dsd0000902D* - ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) - -+pci:v00008086d00002815sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002820* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] - -@@ -65342,6 +65465,9 @@ pci:v00008086d00002829sv0000104Dsd0000902D* - pci:v00008086d00002829sv000017AAsd000020A7* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) - -+pci:v00008086d00002829sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002829sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) - -@@ -65393,6 +65519,9 @@ pci:v00008086d00002830sv00001462sd00007235* - pci:v00008086d00002830sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) - -+pci:v00008086d00002830sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002830sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) - -@@ -65435,6 +65564,9 @@ pci:v00008086d00002831sv00001462sd00007235* - pci:v00008086d00002831sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) - -+pci:v00008086d00002831sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002831sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) - -@@ -65474,6 +65606,9 @@ pci:v00008086d00002832sv0000104Dsd0000902D* - pci:v00008086d00002832sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) - -+pci:v00008086d00002832sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002832sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) - -@@ -65519,6 +65654,9 @@ pci:v00008086d00002834sv00001462sd00007235* - pci:v00008086d00002834sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) - -+pci:v00008086d00002834sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002834sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) - -@@ -65555,6 +65693,9 @@ pci:v00008086d00002835sv0000104Dsd0000902D* - pci:v00008086d00002835sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) - -+pci:v00008086d00002835sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002835sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) - -@@ -65597,6 +65738,9 @@ pci:v00008086d00002836sv00001462sd00007235* - pci:v00008086d00002836sv000017AAsd000020AB* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) - -+pci:v00008086d00002836sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002836sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) - -@@ -65633,6 +65777,9 @@ pci:v00008086d0000283Asv0000104Dsd0000902D* - pci:v00008086d0000283Asv000017AAsd000020AB* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) - -+pci:v00008086d0000283Asv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d0000283Asv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) - -@@ -65669,6 +65816,9 @@ pci:v00008086d0000283Esv00001462sd00007235* - pci:v00008086d0000283Esv000017AAsd000020A9* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) - -+pci:v00008086d0000283Esv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d0000283Esv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) - -@@ -65687,6 +65837,9 @@ pci:v00008086d0000283Fsv0000104Dsd0000902D* - pci:v00008086d0000283Fsv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) - -+pci:v00008086d0000283Fsv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002841* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 - -@@ -65699,6 +65852,9 @@ pci:v00008086d00002841sv0000104Dsd0000902D* - pci:v00008086d00002841sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) - -+pci:v00008086d00002841sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002843* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 - -@@ -65708,12 +65864,18 @@ pci:v00008086d00002843sv0000104Dsd0000902D* - pci:v00008086d00002843sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) - -+pci:v00008086d00002843sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002845* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 - - pci:v00008086d00002845sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) - -+pci:v00008086d00002845sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002847* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 - -@@ -65726,6 +65888,9 @@ pci:v00008086d00002847sv0000103Csd000030C1* - pci:v00008086d00002847sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) - -+pci:v00008086d00002847sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002849* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 - -@@ -65792,6 +65957,9 @@ pci:v00008086d0000284Bsv000014F1sd00005051* - pci:v00008086d0000284Bsv000017AAsd000020AC* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) - -+pci:v00008086d0000284Bsv000017C0sd00004088* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d0000284Bsv00008384sd00007616* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) - -@@ -65831,6 +65999,9 @@ pci:v00008086d00002850sv0000104Dsd0000902D* - pci:v00008086d00002850sv000017AAsd000020A6* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) - -+pci:v00008086d00002850sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002850sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) - -@@ -66794,6 +66965,9 @@ pci:v00008086d00002A00sv000017AAsd000020B1* - pci:v00008086d00002A00sv000017AAsd000020B3* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) - -+pci:v00008086d00002A00sv000017C0sd00004082* -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002A00sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) - -@@ -66821,6 +66995,9 @@ pci:v00008086d00002A02sv0000104Dsd0000902D* - pci:v00008086d00002A02sv000017AAsd000020B5* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) - -+pci:v00008086d00002A02sv000017C0sd00004082* -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002A02sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) - -@@ -66828,7 +67005,7 @@ pci:v00008086d00002A03* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) - - pci:v00008086d00002A03sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Inspiron 1420) - - pci:v00008086d00002A03sv0000103Csd000030C0* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) -@@ -66842,6 +67019,9 @@ pci:v00008086d00002A03sv0000104Dsd0000902D* - pci:v00008086d00002A03sv000017AAsd000020B5* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) - -+pci:v00008086d00002A03sv000017C0sd00004082* -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002A03sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) - -@@ -67317,13 +67497,13 @@ pci:v00008086d00002D10* - ID_MODEL_FROM_DATABASE=Core Processor QPI Link 0 - - pci:v00008086d00002D11* -- ID_MODEL_FROM_DATABASE=Core Processor QPI Physical 0 -+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor QPI Physical 0 - - pci:v00008086d00002D12* -- ID_MODEL_FROM_DATABASE=Core Processor Reserved -+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved - - pci:v00008086d00002D13* -- ID_MODEL_FROM_DATABASE=Core Processor Reserved -+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved - - pci:v00008086d00002D81* - ID_MODEL_FROM_DATABASE=Xeon 5600 Series QuickPath Architecture System Address Decoder -@@ -67427,6 +67607,9 @@ pci:v00008086d00002E11* - pci:v00008086d00002E12* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - -+pci:v00008086d00002E12sv000017AAsd00003048* -+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (ThinkCentre M6258) -+ - pci:v00008086d00002E13* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - -@@ -69317,6 +69500,12 @@ pci:v00008086d00003B09* - pci:v00008086d00003B09sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) - -+pci:v00008086d00003B09sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (R730 Laptop) -+ -+pci:v00008086d00003B09sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B0A* - ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller - -@@ -69416,18 +69605,36 @@ pci:v00008086d00003B26* - pci:v00008086d00003B28* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller - -+pci:v00008086d00003B28sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (R730 Laptop) -+ -+pci:v00008086d00003B28sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B29* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller - - pci:v00008086d00003B29sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) - -+pci:v00008086d00003B29sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (R730 Laptop) -+ -+pci:v00008086d00003B29sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B2C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller - - pci:v00008086d00003B2D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller - -+pci:v00008086d00003B2Dsv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (R730 Laptop) -+ -+pci:v00008086d00003B2Dsv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B2Dsv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) - -@@ -69458,9 +69665,15 @@ pci:v00008086d00003B30sv00001028sd000002DA* - pci:v00008086d00003B30sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) - -+pci:v00008086d00003B30sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (R730 Laptop) -+ - pci:v00008086d00003B30sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B30sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B30sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) - -@@ -69470,6 +69683,12 @@ pci:v00008086d00003B32* - pci:v00008086d00003B32sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) - -+pci:v00008086d00003B32sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (R730 Laptop) -+ -+pci:v00008086d00003B32sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B34* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller - -@@ -69482,9 +69701,15 @@ pci:v00008086d00003B34sv00001028sd000002DA* - pci:v00008086d00003B34sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - -+pci:v00008086d00003B34sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) -+ - pci:v00008086d00003B34sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B34sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B34sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - -@@ -69518,9 +69743,15 @@ pci:v00008086d00003B3Csv00001028sd000002DA* - pci:v00008086d00003B3Csv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - -+pci:v00008086d00003B3Csv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) -+ - pci:v00008086d00003B3Csv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B3Csv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B3Csv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - -@@ -69545,9 +69776,15 @@ pci:v00008086d00003B42sv00001028sd000002DA* - pci:v00008086d00003B42sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) - -+pci:v00008086d00003B42sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (R730 Laptop) -+ - pci:v00008086d00003B42sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) - -+pci:v00008086d00003B42sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B44* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 - -@@ -69557,24 +69794,39 @@ pci:v00008086d00003B44sv00001028sd0000040B* - pci:v00008086d00003B44sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) - -+pci:v00008086d00003B44sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B46* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 - - pci:v00008086d00003B46sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) - -+pci:v00008086d00003B46sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (R730 Laptop) -+ -+pci:v00008086d00003B46sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B48* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 - - pci:v00008086d00003B48sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) - -+pci:v00008086d00003B48sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (R730 Laptop) -+ - pci:v00008086d00003B4A* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 - - pci:v00008086d00003B4Asv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) - -+pci:v00008086d00003B4Asv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B4C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 - -@@ -69599,9 +69851,15 @@ pci:v00008086d00003B56sv00001028sd000002DA* - pci:v00008086d00003B56sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) - -+pci:v00008086d00003B56sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (R730 Laptop) -+ - pci:v00008086d00003B56sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) - -+pci:v00008086d00003B56sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B56sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) - -@@ -69617,6 +69875,9 @@ pci:v00008086d00003B64sv00001025sd00000347* - pci:v00008086d00003B64sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B64sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B64sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) - -@@ -69990,7 +70251,7 @@ pci:v00008086d00004222sv00008086sd00001000* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004222sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (WM3945ABG MOW2) - - pci:v00008086d00004222sv00008086sd00001005* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) -@@ -71168,6 +71429,114 @@ pci:v00008086d00008C5E* - pci:v00008086d00008C5F* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LPC Controller - -+pci:v00008086d00008C80* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C81* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C82* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] -+ -+pci:v00008086d00008C83* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] -+ -+pci:v00008086d00008C84* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C85* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C86* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C87* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C88* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C89* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C8E* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C8F* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C90* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 1 -+ -+pci:v00008086d00008C92* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 2 -+ -+pci:v00008086d00008C94* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 3 -+ -+pci:v00008086d00008C96* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 4 -+ -+pci:v00008086d00008C98* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 5 -+ -+pci:v00008086d00008C9A* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 6 -+ -+pci:v00008086d00008C9C* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 7 -+ -+pci:v00008086d00008C9E* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 8 -+ -+pci:v00008086d00008CA0* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HD Audio Controller -+ -+pci:v00008086d00008CA2* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SMBus Controller -+ -+pci:v00008086d00008CA4* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Thermal Controller -+ -+pci:v00008086d00008CA6* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #1 -+ -+pci:v00008086d00008CAD* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #2 -+ -+pci:v00008086d00008CB1* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB xHCI Controller -+ -+pci:v00008086d00008CB3* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LAN Controller -+ -+pci:v00008086d00008CBA* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #1 -+ -+pci:v00008086d00008CBB* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #2 -+ -+pci:v00008086d00008CBC* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family IDE-R Controller -+ -+pci:v00008086d00008CBD* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family KT Controller -+ -+pci:v00008086d00008CC1* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller -+ -+pci:v00008086d00008CC2* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller -+ -+pci:v00008086d00008CC3* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HM97 LPC Controller -+ -+pci:v00008086d00008CC4* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Z97 LPC Controller -+ -+pci:v00008086d00008CC6* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family H97 Controller -+ - pci:v00008086d00008D00* - ID_MODEL_FROM_DATABASE=Wellsburg 4-port SATA Controller [IDE mode] - -@@ -71379,208 +71748,208 @@ pci:v00008086d000096A1* - ID_MODEL_FROM_DATABASE=Integrated RAID - - pci:v00008086d00009C00* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] - - pci:v00008086d00009C01* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] - - pci:v00008086d00009C02* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] - - pci:v00008086d00009C03* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] - - pci:v00008086d00009C03sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] (ThinkPad X240) - - pci:v00008086d00009C04* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C05* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C06* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C07* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C08* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] - - pci:v00008086d00009C09* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] - - pci:v00008086d00009C0A* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0B* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0C* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0D* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0E* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C0F* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C10* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 - - pci:v00008086d00009C11* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 - - pci:v00008086d00009C12* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 - - pci:v00008086d00009C13* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 - - pci:v00008086d00009C14* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 - - pci:v00008086d00009C15* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 - - pci:v00008086d00009C16* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 - - pci:v00008086d00009C17* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 - - pci:v00008086d00009C18* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 - - pci:v00008086d00009C19* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 - - pci:v00008086d00009C1A* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 - - pci:v00008086d00009C1B* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 - - pci:v00008086d00009C1C* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 - - pci:v00008086d00009C1D* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 - - pci:v00008086d00009C1E* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 - - pci:v00008086d00009C1F* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 - - pci:v00008086d00009C20* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller -+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller - - pci:v00008086d00009C20sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller (ThinkPad X240) - - pci:v00008086d00009C21* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller -+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller - - pci:v00008086d00009C22* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller -+ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller - - pci:v00008086d00009C22sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller (ThinkPad X240) - - pci:v00008086d00009C23* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters -+ ID_MODEL_FROM_DATABASE=8 Series CHAP Counters - - pci:v00008086d00009C24* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP Thermal -+ ID_MODEL_FROM_DATABASE=8 Series Thermal - - pci:v00008086d00009C26* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 -+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 - - pci:v00008086d00009C26sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 (ThinkPad X240) - - pci:v00008086d00009C2D* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 -+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #2 - - pci:v00008086d00009C31* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC -+ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC - - pci:v00008086d00009C31sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC (ThinkPad X240) - - pci:v00008086d00009C35* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller -+ ID_MODEL_FROM_DATABASE=8 Series SDIO Controller - - pci:v00008086d00009C36* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP Audio DSP Controller -+ ID_MODEL_FROM_DATABASE=8 Series Audio DSP Controller - - pci:v00008086d00009C3A* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 -+ ID_MODEL_FROM_DATABASE=8 Series HECI #0 - - pci:v00008086d00009C3Asv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series HECI #0 (ThinkPad X240) - - pci:v00008086d00009C3B* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 -+ ID_MODEL_FROM_DATABASE=8 Series HECI #1 - - pci:v00008086d00009C3C* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI IDER -+ ID_MODEL_FROM_DATABASE=8 Series HECI IDER - - pci:v00008086d00009C3D* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI KT -+ ID_MODEL_FROM_DATABASE=8 Series HECI KT - - pci:v00008086d00009C40* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C41* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C42* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C43* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C43sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller (ThinkPad X240) - - pci:v00008086d00009C44* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C45* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C46* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C47* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C60* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP Low Power Sub-System DMA -+ ID_MODEL_FROM_DATABASE=8 Series Low Power Sub-System DMA - - pci:v00008086d00009C61* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #0 -+ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #0 - - pci:v00008086d00009C62* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #1 -+ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #1 - - pci:v00008086d00009C63* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #0 -+ ID_MODEL_FROM_DATABASE=8 Series UART Controller #0 - - pci:v00008086d00009C64* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #1 -+ ID_MODEL_FROM_DATABASE=8 Series UART Controller #1 - - pci:v00008086d00009C65* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #0 -+ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #0 - - pci:v00008086d00009C66* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #1 -+ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #1 - - pci:v00008086d00009C83* - ID_MODEL_FROM_DATABASE=Wildcat Point-LP SATA Controller [AHCI Mode] -diff --git hwdb/20-usb-classes.hwdb hwdb/20-usb-classes.hwdb -index 3294d8a..418d39b 100644 ---- hwdb/20-usb-classes.hwdb -+++ hwdb/20-usb-classes.hwdb -@@ -311,6 +311,9 @@ usb:v*p*d*dcEFdsc02dp02* - usb:v*p*d*dcEFdsc03dp01* - ID_USB_PROTOCOL_FROM_DATABASE=Cable Based Association - -+usb:v*p*d*dcEFdsc05* -+ ID_USB_SUBCLASS_FROM_DATABASE=USB3 Vision -+ - usb:v*p*d*dcFE* - ID_USB_CLASS_FROM_DATABASE=Application Specific Interface - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 05f267d..89cd5b1 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -284,9 +284,18 @@ usb:v03EBp2310* - usb:v03EBp2FE4* - ID_MODEL_FROM_DATABASE=ATxmega32A4U DFU bootloader - -+usb:v03EBp2FE6* -+ ID_MODEL_FROM_DATABASE=Cactus V6 (DFU) -+ -+usb:v03EBp2FEA* -+ ID_MODEL_FROM_DATABASE=Cactus RF60 (DFU) -+ - usb:v03EBp2FF0* - ID_MODEL_FROM_DATABASE=atmega32u2 DFU bootloader - -+usb:v03EBp2FF4* -+ ID_MODEL_FROM_DATABASE=atmega32u4 DFU bootloader -+ - usb:v03EBp2FFA* - ID_MODEL_FROM_DATABASE=at90usb162 DFU bootloader - -@@ -4409,6 +4418,9 @@ usb:v0424p2602* - usb:v0424p2640* - ID_MODEL_FROM_DATABASE=USB 2.0 Hub - -+usb:v0424p2660* -+ ID_MODEL_FROM_DATABASE=Hub -+ - usb:v0424p4060* - ID_MODEL_FROM_DATABASE=Ultra Fast Media Reader - -@@ -5373,7 +5385,7 @@ usb:v0457p0162* - ID_MODEL_FROM_DATABASE=SiS162 usb Wireless LAN Adapter - - usb:v0457p0163* -- ID_MODEL_FROM_DATABASE=802.11 Wireless LAN Adapter -+ ID_MODEL_FROM_DATABASE=SiS163U 802.11 Wireless LAN Adapter - - usb:v0457p0817* - ID_MODEL_FROM_DATABASE=SiS-184-ASUS-4352.17 touch panel -@@ -6947,6 +6959,9 @@ usb:v046Dp082D* - usb:v046Dp0830* - ID_MODEL_FROM_DATABASE=QuickClip - -+usb:v046Dp0837* -+ ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam -+ - usb:v046Dp0840* - ID_MODEL_FROM_DATABASE=QuickCam Express - -@@ -7856,6 +7871,9 @@ usb:v046DpC52F* - usb:v046DpC532* - ID_MODEL_FROM_DATABASE=Unifying Receiver - -+usb:v046DpC534* -+ ID_MODEL_FROM_DATABASE=Unifying Receiver -+ - usb:v046DpC603* - ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT - -@@ -8738,6 +8756,9 @@ usb:v0480pA007* - usb:v0480pA009* - ID_MODEL_FROM_DATABASE=Stor.E Basics - -+usb:v0480pA00D* -+ ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB -+ - usb:v0480pD010* - ID_MODEL_FROM_DATABASE=External Disk 3TB - -@@ -10943,6 +10964,9 @@ usb:v04A9p3196* - usb:v04A9p319A* - ID_MODEL_FROM_DATABASE=EOS 7D - -+usb:v04A9p319B* -+ ID_MODEL_FROM_DATABASE=EOS 50D -+ - usb:v04A9p31AA* - ID_MODEL_FROM_DATABASE=SELPHY CP770 - -@@ -11219,6 +11243,15 @@ usb:v04A9p3277* - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -+usb:v04A9p327F* -+ ID_MODEL_FROM_DATABASE=EOS Rebel T5 / EOS 1200D / EOS Kiss X70 -+ -+usb:v04A9p3284* -+ ID_MODEL_FROM_DATABASE=PowerShot D30 -+ -+usb:v04A9p3286* -+ ID_MODEL_FROM_DATABASE=PowerShot SX600 HS -+ - usb:v04A9p3288* - ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 - -@@ -13040,6 +13073,9 @@ usb:v04D8p0036* - usb:v04D8p00E0* - ID_MODEL_FROM_DATABASE=PIC32 Starter Board - -+usb:v04D8p04CD* -+ ID_MODEL_FROM_DATABASE=28Cxxx EEPROM Programmer -+ - usb:v04D8p0A04* - ID_MODEL_FROM_DATABASE=AGP LIN Serial Analyzer - -@@ -14093,6 +14129,9 @@ usb:v04E8p5F05* - usb:v04E8p6032* - ID_MODEL_FROM_DATABASE=G2 Portable hard drive - -+usb:v04E8p6033* -+ ID_MODEL_FROM_DATABASE=G2 Portable device -+ - usb:v04E8p6034* - ID_MODEL_FROM_DATABASE=G2 Portable hard drive - -@@ -14102,6 +14141,9 @@ usb:v04E8p60B3* - usb:v04E8p60C4* - ID_MODEL_FROM_DATABASE=M2 Portable Hard Drive USB 3.0 - -+usb:v04E8p6124* -+ ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive -+ - usb:v04E8p61B6* - ID_MODEL_FROM_DATABASE=M3 Portable Hard Drive 1TB - -@@ -15224,6 +15266,9 @@ usb:v04F9p0223* - usb:v04F9p0248* - ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer - -+usb:v04F9p02B3* -+ ID_MODEL_FROM_DATABASE=MFC J4510DW -+ - usb:v04F9p1000* - ID_MODEL_FROM_DATABASE=Printer - -@@ -15546,7 +15591,7 @@ usb:v050Dp0013* - ID_MODEL_FROM_DATABASE=F8T013 Bluetooth Adapter - - usb:v050Dp0017* -- ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 -+ ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 / F4U017 USB 2.0 7-port Hub - - usb:v050Dp003A* - ID_MODEL_FROM_DATABASE=Universal Media Reader -@@ -15683,6 +15728,9 @@ usb:v050Dp1106* - usb:v050Dp1109* - ID_MODEL_FROM_DATABASE=F9L1109v1 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] - -+usb:v050Dp110A* -+ ID_MODEL_FROM_DATABASE=F9L1101v2 802.11abgn Wireless Adapter [Realtek RTL8192DU] -+ - usb:v050Dp11F2* - ID_MODEL_FROM_DATABASE=ISY Wireless Micro Adapter IWL 2000 [RTL8188CUS] - -@@ -15723,7 +15771,7 @@ usb:v050Dp6051* - ID_MODEL_FROM_DATABASE=F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201] - - usb:v050Dp615A* -- ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101 802.11abgn Wireless Adapter [Broadcom BCM4323] -+ ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101v1 802.11abgn Wireless Adapter [Broadcom BCM4323] - - usb:v050Dp7050* - ID_MODEL_FROM_DATABASE=F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887] -@@ -16358,6 +16406,9 @@ usb:v0547p2810* - usb:v0547p4D90* - ID_MODEL_FROM_DATABASE=AmScope MD1900 camera - -+usb:v0547p7000* -+ ID_MODEL_FROM_DATABASE=PowerSpec MCE460 Front Panel LED Display -+ - usb:v0547p7777* - ID_MODEL_FROM_DATABASE=Bluetooth Device - -@@ -21677,6 +21728,9 @@ usb:v05F9p2601* - usb:v05F9p2602* - ID_MODEL_FROM_DATABASE=Datalogic Magellan 1100i Barcode Scanner - -+usb:v05F9p4204* -+ ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4470 Fixed Scanner -+ - usb:v05F9p5204* - ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4170 (config mode) - -@@ -23234,6 +23288,9 @@ usb:v068Ep00D3* - usb:v068Ep00E2* - ID_MODEL_FROM_DATABASE=HFX OEM Joystick - -+usb:v068Ep00F0* -+ ID_MODEL_FROM_DATABASE=Multi-Function Panel -+ - usb:v068Ep00F1* - ID_MODEL_FROM_DATABASE=Pro Throttle - -@@ -25838,6 +25895,9 @@ usb:v0781p74D0* - usb:v0781p74D1* - ID_MODEL_FROM_DATABASE=Sansa Clip+ (msc) - -+usb:v0781p74E5* -+ ID_MODEL_FROM_DATABASE=Sansa Clip Zip -+ - usb:v0781p8181* - ID_MODEL_FROM_DATABASE=Pen Flash - -@@ -26219,6 +26279,9 @@ usb:v07AAp001A* - usb:v07AAp001C* - ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] - -+usb:v07AAp0020* -+ ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] -+ - usb:v07AAp002E* - ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] - -@@ -26939,6 +27002,9 @@ usb:v07CApA827* - usb:v07CApA867* - ID_MODEL_FROM_DATABASE=AVerTV DVB-T (A867) - -+usb:v07CApB300* -+ ID_MODEL_FROM_DATABASE=A300 DVB-T TV receiver -+ - usb:v07CApB800* - ID_MODEL_FROM_DATABASE=MR800 FM Radio - -@@ -27941,6 +28007,9 @@ usb:v083Ap4507* - usb:v083Ap4521* - ID_MODEL_FROM_DATABASE=Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887] - -+usb:v083Ap4531* -+ ID_MODEL_FROM_DATABASE=T-Com Sinus 154 data II [Intersil ISL3887] -+ - usb:v083Ap5046* - ID_MODEL_FROM_DATABASE=SpeedStream 10/100 Ethernet [pegasus] - -@@ -30476,6 +30545,9 @@ usb:v0957p0518* - usb:v0957p0A07* - ID_MODEL_FROM_DATABASE=34411A Multimeter - -+usb:v0957p1507* -+ ID_MODEL_FROM_DATABASE=33210A Waveform Generator -+ - usb:v0957p1745* - ID_MODEL_FROM_DATABASE=Test and Measurement Device (IVI) - -@@ -30876,13 +30948,13 @@ usb:v09D9* - ID_VENDOR_FROM_DATABASE=KRF Tech, Ltd - - usb:v09DA* -- ID_VENDOR_FROM_DATABASE=A4 Tech Co., Ltd -+ ID_VENDOR_FROM_DATABASE=A4Tech Co., Ltd. - - usb:v09DAp0006* - ID_MODEL_FROM_DATABASE=Optical Mouse WOP-35 / Trust 450L Optical Mouse - - usb:v09DAp000A* -- ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D -+ ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D / OP-620D - - usb:v09DAp000E* - ID_MODEL_FROM_DATABASE=X-F710F Optical Mouse 3xFire Gaming Mouse -@@ -32174,6 +32246,9 @@ usb:v0AB1* - usb:v0AB1p0002* - ID_MODEL_FROM_DATABASE=OBID RFID-Reader - -+usb:v0AB1p0004* -+ ID_MODEL_FROM_DATABASE=OBID classic-pro -+ - usb:v0ABA* - ID_VENDOR_FROM_DATABASE=Ellisys - -@@ -32571,7 +32646,7 @@ usb:v0B05p1708* - ID_MODEL_FROM_DATABASE=Mass Storage Device - - usb:v0B05p170B* -- ID_MODEL_FROM_DATABASE=Mass Storage Device -+ ID_MODEL_FROM_DATABASE=Multi card reader - - usb:v0B05p170C* - ID_MODEL_FROM_DATABASE=WL-159g 802.11bg -@@ -32687,6 +32762,9 @@ usb:v0B05p17A1* - usb:v0B05p17AB* - ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] - -+usb:v0B05p17C7* -+ ID_MODEL_FROM_DATABASE=WL-330NUL -+ - usb:v0B05p17C9* - ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] - -@@ -32714,6 +32792,9 @@ usb:v0B05p5410* - usb:v0B05p5412* - ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) - -+usb:v0B05p550F* -+ ID_MODEL_FROM_DATABASE=ASUS fonepad 7 -+ - usb:v0B05p6101* - ID_MODEL_FROM_DATABASE=Cable Modem - -@@ -32756,6 +32837,9 @@ usb:v0B0Dp0000* - usb:v0B0E* - ID_VENDOR_FROM_DATABASE=GN Netcom - -+usb:v0B0Ep034C* -+ ID_MODEL_FROM_DATABASE=Jabra UC Voice 750 MS -+ - usb:v0B0Ep0420* - ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 - -@@ -49610,6 +49694,12 @@ usb:v2659p1212* - usb:v2659p1213* - ID_MODEL_FROM_DATABASE=MediaTV Pro III MiniPCIe (US) - -+usb:v2676* -+ ID_VENDOR_FROM_DATABASE=Basler AG -+ -+usb:v2676pBA02* -+ ID_MODEL_FROM_DATABASE=ace -+ - usb:v2730* - ID_VENDOR_FROM_DATABASE=Citizen - --- -1.7.9.2 - diff --git a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch deleted file mode 100644 index aa974fa7..00000000 --- a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch +++ /dev/null @@ -1,70 +0,0 @@ -From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 27 Feb 2014 00:07:29 -0500 -Subject: [PATCH] journal: assume that next entry is after previous entry - -With a corrupted file, we can get in a situation where two entries -in the entry array point to the same object. Then journal_file_next_entry -will find the first one using generic_arrray_bisect, and try to move to -the second one, but since the address is the same, generic_array_get will -return the first one. journal_file_next_entry ends up in an infinite loop. - -https://bugzilla.redhat.com/show_bug.cgi?id=1047039 ---- - src/journal/journal-file.c | 26 ++++++++++++++++++++------ - 1 file changed, 20 insertions(+), 6 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 5876733..0e1fc7f 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - } - - typedef struct ChainCacheItem { -- uint64_t first; /* the array at the begin of the chain */ -+ uint64_t first; /* the array at the beginning of the chain */ - uint64_t array; /* the cached array */ - uint64_t begin; /* the first item in the cached array */ - uint64_t total; /* the total number of items in all arrays before this one in the chain */ -@@ -1945,7 +1945,7 @@ int journal_file_next_entry( - direction_t direction, - Object **ret, uint64_t *offset) { - -- uint64_t i, n; -+ uint64_t i, n, ofs; - int r; - - assert(f); -@@ -1986,10 +1986,24 @@ int journal_file_next_entry( - } - - /* And jump to it */ -- return generic_array_get(f, -- le64toh(f->header->entry_array_offset), -- i, -- ret, offset); -+ r = generic_array_get(f, -+ le64toh(f->header->entry_array_offset), -+ i, -+ ret, &ofs); -+ if (r <= 0) -+ return r; -+ -+ if (p > 0 && -+ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { -+ log_debug("%s: entry array corrupted at entry %"PRIu64, -+ f->path, i); -+ return -EBADMSG; -+ } -+ -+ if (offset) -+ *offset = ofs; -+ -+ return 1; - } - - int journal_file_skip_entry( --- -1.7.9.2 - diff --git a/0006-journald-fix-minor-memory-leak.patch b/0006-journald-fix-minor-memory-leak.patch deleted file mode 100644 index 72d2ab39..00000000 --- a/0006-journald-fix-minor-memory-leak.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 99d0966e75a984bed4f117c888ecc93e16e7b7b6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Nov 2014 21:11:16 +0100 -Subject: [PATCH] journald: fix minor memory leak - ---- - src/journal/journald-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/journal/journald-server.c src/journal/journald-server.c -index e062427..cf6bbcc 100644 ---- src/journal/journald-server.c -+++ src/journal/journald-server.c -@@ -1690,6 +1690,7 @@ void server_done(Server *s) { - free(s->buffer); - free(s->tty_path); - free(s->cgroup_root); -+ free(s->hostname_field); - - if (s->mmap) - mmap_cache_unref(s->mmap); --- -1.7.9.2 - diff --git a/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch b/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch deleted file mode 100644 index e76abb48..00000000 --- a/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e683212f049ac5d3f95fb17300cfa2fd971f78f3 Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Tue, 3 Jun 2014 19:44:03 +0200 -Subject: [PATCH] log: honour the kernel's quiet cmdline argument - -It was forgotten in b1e90ec515408aec2702522f6f68c4920b56375b - -See https://bugs.freedesktop.org/show_bug.cgi?id=79582 ---- - src/shared/log.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/shared/log.c src/shared/log.c -index 9039db3..6f17705 100644 ---- src/shared/log.c -+++ src/shared/log.c -@@ -878,6 +878,9 @@ void log_parse_environment(void) { - if (l == 5 && startswith(w, "debug")) { - log_set_max_level(LOG_DEBUG); - break; -+ } else if (l == 5 && startswith(w, "quiet")) { -+ log_set_max_level(LOG_WARNING); -+ break; - } - } - } --- -1.7.9.2 - diff --git a/0006-login-add-mir-to-the-list-of-session-types.patch b/0006-login-add-mir-to-the-list-of-session-types.patch deleted file mode 100644 index 9e966958..00000000 --- a/0006-login-add-mir-to-the-list-of-session-types.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 9541666b8d97f107335dd7e3cb93b4d2cfbf19c9 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Wed, 9 Apr 2014 21:22:48 +0200 -Subject: [PATCH] login: add 'mir' to the list of session types - -Add Mir to the list of session types. This is implemented for LightDM -in lp:~robert-ancell/lightdm/xdg-session-desktop [1]. - -[1] https://code.launchpad.net/~robert-ancell/lightdm/xdg-session-desktop/+merge/214108 - -(david: adjusted commit-header and fixed whitespace issues) ---- - man/pam_systemd.xml | 5 +++-- - man/sd_session_is_active.xml | 6 +++--- - src/login/logind-session.c | 1 + - src/login/logind-session.h | 1 + - src/systemd/sd-login.h | 2 +- - 5 files changed, 9 insertions(+), 6 deletions(-) - -diff --git man/pam_systemd.xml man/pam_systemd.xml -index 3022cdb..f973899 100644 ---- man/pam_systemd.xml -+++ man/pam_systemd.xml -@@ -145,8 +145,9 @@ - variable takes precedence. One of - unspecified, - tty, -- x11 or -- wayland. See -+ x11, -+ wayland or -+ mir. See - sd_session_get_type3 - for details about the session type. - -diff --git man/sd_session_is_active.xml man/sd_session_is_active.xml -index ddb2bee..31a6119 100644 ---- man/sd_session_is_active.xml -+++ man/sd_session_is_active.xml -@@ -201,9 +201,9 @@ - be used to determine the type of the session - identified by the specified session identifier. The - returned string is one of x11, -- wayland, tty or -- unspecified and needs to be freed -- with the libc -+ wayland, tty, -+ mir or unspecified and -+ needs to be freed with the libc - free3 - call after use. - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-05-20 12:49:07.150236121 +0000 -@@ -1124,6 +1124,7 @@ static const char* const session_type_ta - [SESSION_TTY] = "tty", - [SESSION_X11] = "x11", - [SESSION_WAYLAND] = "wayland", -+ [SESSION_MIR] = "mir", - [SESSION_UNSPECIFIED] = "unspecified", - }; - -diff --git src/login/logind-session.h src/login/logind-session.h -index c9af5eb..7ecc9f0 100644 ---- src/login/logind-session.h -+++ src/login/logind-session.h -@@ -55,6 +55,7 @@ typedef enum SessionType { - SESSION_TTY, - SESSION_X11, - SESSION_WAYLAND, -+ SESSION_MIR, - _SESSION_TYPE_MAX, - _SESSION_TYPE_INVALID = -1 - } SessionType; -diff --git src/systemd/sd-login.h src/systemd/sd-login.h -index a4ca231..776733a 100644 ---- src/systemd/sd-login.h -+++ src/systemd/sd-login.h -@@ -138,7 +138,7 @@ int sd_session_get_seat(const char *session, char **seat); - /* Determine the (PAM) service name this session was registered by. */ - int sd_session_get_service(const char *session, char **service); - --/* Determine the type of this session, i.e. one of "tty", "x11" or "unspecified". */ -+/* Determine the type of this session, i.e. one of "tty", "x11", "wayland", "mir" or "unspecified". */ - int sd_session_get_type(const char *session, char **type); - - /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ --- -1.7.9.2 - diff --git a/0006-login-share-VT-signal-handler-between-sessions.patch b/0006-login-share-VT-signal-handler-between-sessions.patch deleted file mode 100644 index 599aa261..00000000 --- a/0006-login-share-VT-signal-handler-between-sessions.patch +++ /dev/null @@ -1,246 +0,0 @@ -Based on 92683ad2e28c79891e4123d9a421b018dc58870c Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Mon, 11 Aug 2014 18:17:54 +0200 -Subject: [PATCH] login: share VT-signal handler between sessions - -sd-event does not allow multiple handlers for a single signal. However, -logind sets up signal handlers for each session with VT_PROCESS set (that -is, it has an active controller). Therefore, registering multiple such -controllers will fail. - -Lets make the VT-handler global, as it's mostly trivial, anyway. This way, -the sessions don't have to take care of that and we can simply acknowledge -all VT-switch requests as we always did. ---- - src/libsystemd/sd-event/sd-event.c | 5 +- - src/login/logind-session.c | 26 +------------ - src/login/logind-session.h | 1 - src/login/logind.c | 70 +++++++++++++++++++++++++++++++++++++ - src/shared/util.c | 18 +++++++++ - src/shared/util.h | 1 - 6 files changed, 94 insertions(+), 27 deletions(-) - ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c 2014-08-26 11:02:54.500683967 +0000 -@@ -839,7 +839,6 @@ _public_ int sd_event_add_signal( - assert_return(sig > 0, -EINVAL); - assert_return(sig < _NSIG, -EINVAL); - assert_return(callback, -EINVAL); -- assert_return(ret, -EINVAL); - assert_return(e->state != SD_EVENT_FINISHED, -ESTALE); - assert_return(!event_pid_changed(e), -ECHILD); - -@@ -877,7 +876,9 @@ _public_ int sd_event_add_signal( - } - } - -- *ret = s; -+ if (ret) -+ *ret = s; -+ - return 0; - } - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-08-25 17:22:46.000000000 +0000 -@@ -153,8 +153,6 @@ void session_free(Session *s) { - - hashmap_remove(s->manager->sessions, s->id); - -- s->vt_source = sd_event_source_unref(s->vt_source); -- - free(s->state_file); - free(s); - } -@@ -966,19 +964,9 @@ static int session_open_vt(Session *s) { - return s->vtfd; - } - --static int session_vt_fn(sd_event_source *source, const struct signalfd_siginfo *si, void *data) { -- Session *s = data; -- -- if (s->vtfd >= 0) -- ioctl(s->vtfd, VT_RELDISP, 1); -- -- return 0; --} -- - int session_mute_vt(Session *s) { - int vt, r; - struct vt_mode mode = { 0 }; -- sigset_t mask; - - if (s->vtnr < 1) - return 0; -@@ -1008,20 +996,12 @@ int session_mute_vt(Session *s) { - goto error; - } - -- sigemptyset(&mask); -- sigaddset(&mask, SIGUSR1); -- sigprocmask(SIG_BLOCK, &mask, NULL); -- -- r = sd_event_add_signal(s->manager->event, &s->vt_source, SIGUSR1, session_vt_fn, s); -- if (r < 0) -- goto error; -- - /* Oh, thanks to the VT layer, VT_AUTO does not work with KD_GRAPHICS. - * So we need a dummy handler here which just acknowledges *all* VT - * switch requests. */ - mode.mode = VT_PROCESS; -- mode.relsig = SIGUSR1; -- mode.acqsig = SIGUSR1; -+ mode.relsig = SIGRTMIN; -+ mode.acqsig = SIGRTMIN + 1; - r = ioctl(vt, VT_SETMODE, &mode); - if (r < 0) { - r = -errno; -@@ -1045,8 +1025,6 @@ void session_restore_vt(Session *s) { - if (vt < 0) - return; - -- s->vt_source = sd_event_source_unref(s->vt_source); -- - ioctl(vt, KDSETMODE, KD_TEXT); - - if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1') ---- src/login/logind-session.h -+++ src/login/logind-session.h 2014-08-25 00:00:00.000000000 +0000 -@@ -98,7 +98,6 @@ struct Session { - Seat *seat; - unsigned int vtnr; - int vtfd; -- sd_event_source *vt_source; - - pid_t leader; - uint32_t audit_id; ---- src/login/logind.c -+++ src/login/logind.c 2014-08-26 11:18:41.422235366 +0000 -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - - #include "sd-daemon.h" -@@ -714,6 +715,47 @@ static int manager_connect_bus(Manager * - return 0; - } - -+static int manager_vt_switch(sd_event_source *src, const struct signalfd_siginfo *si, void *data) { -+ Manager *m = data; -+ Session *active, *iter; -+ -+ /* -+ * We got a VT-switch signal and we have to acknowledge it immediately. -+ * Preferably, we'd just use m->seat0->active->vtfd, but unfortunately, -+ * old user-space might run multiple sessions on a single VT, *sigh*. -+ * Therefore, we have to iterate all sessions and find one with a vtfd -+ * on the requested VT. -+ * As only VTs with active controllers have VT_PROCESS set, our current -+ * notion of the active VT might be wrong (for instance if the switch -+ * happens while we setup VT_PROCESS). Therefore, read the current VT -+ * first and then use s->active->vtnr as reference. Note that this is -+ * not racy, as no further VT-switch can happen as long as we're in -+ * synchronous VT_PROCESS mode. -+ */ -+ -+ assert(m->seat0); -+ seat_read_active_vt(m->seat0); -+ -+ active = m->seat0->active; -+ if (!active || active->vtnr < 1) { -+ log_warning("Received VT_PROCESS signal without a registered session on that VT."); -+ return 0; -+ } -+ -+ if (active->vtfd >= 0) { -+ ioctl(active->vtfd, VT_RELDISP, 1); -+ } else { -+ LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { -+ if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { -+ ioctl(iter->vtfd, VT_RELDISP, 1); -+ break; -+ } -+ } -+ } -+ -+ return 0; -+} -+ - static int manager_connect_console(Manager *m) { - int r; - -@@ -744,6 +786,34 @@ static int manager_connect_console(Manag - return r; - } - -+ /* -+ * SIGRTMIN is used as global VT-release signal, SIGRTMIN + 1 is used -+ * as VT-acquire signal. We ignore any acquire-events (yes, we still -+ * have to provide a valid signal-number for it!) and acknowledge all -+ * release events immediately. -+ */ -+ -+ if (SIGRTMIN + 1 > SIGRTMAX) { -+ log_error("Not enough real-time signals available: %u-%u", SIGRTMIN, SIGRTMAX); -+ return -EINVAL; -+ } -+ -+ r = ignore_signals(SIGRTMIN + 1, -1); -+ if (r < 0) { -+ log_error("Cannot ignore SIGRTMIN + 1: %s", strerror(-r)); -+ return r; -+ } -+ -+ r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1); -+ if (r < 0) { -+ log_error("Cannot block SIGRTMIN: %s", strerror(-r)); -+ return r; -+ } -+ -+ r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m); -+ if (r < 0) -+ return r; -+ - return 0; - } - ---- src/shared/util.c -+++ src/shared/util.c 2014-08-26 10:20:14.000000000 +0000 -@@ -2434,6 +2434,24 @@ void sigset_add_many(sigset_t *ss, ...) - va_end(ap); - } - -+int sigprocmask_many(int how, ...) { -+ va_list ap; -+ sigset_t ss; -+ int sig; -+ -+ assert_se(sigemptyset(&ss) == 0); -+ -+ va_start(ap, how); -+ while ((sig = va_arg(ap, int)) > 0) -+ assert_se(sigaddset(&ss, sig) == 0); -+ va_end(ap); -+ -+ if (sigprocmask(how, &ss, NULL) < 0) -+ return -errno; -+ -+ return 0; -+} -+ - char* gethostname_malloc(void) { - struct utsname u; - ---- src/shared/util.h -+++ src/shared/util.h 2014-08-26 10:21:08.000000000 +0000 -@@ -390,6 +390,7 @@ char* dirname_malloc(const char *path); - void rename_process(const char name[8]); - - void sigset_add_many(sigset_t *ss, ...); -+int sigprocmask_many(int how, ...); - - bool hostname_is_set(void); - diff --git a/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch b/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch deleted file mode 100644 index 4313946b..00000000 --- a/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 33169701b0640d3629d4c36cf8c71dc26d2cb7e1 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 May 2014 01:33:22 +0200 -Subject: [PATCH] man: clarify that the ExecReload= command should be - synchronous - -http://lists.freedesktop.org/archives/systemd-devel/2014-May/019054.html ---- - man/systemd.service.xml | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git man/systemd.service.xml man/systemd.service.xml -index af32ccb..364ad7d 100644 ---- man/systemd.service.xml -+++ man/systemd.service.xml -@@ -519,6 +519,20 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} - following: - - /bin/kill -HUP $MAINPID -+ -+ Note however that reloading a -+ daemon by sending a signal (as with -+ the example line above) is usually not -+ a good choice, because this is an -+ asynchronous operation and hence not -+ suitable to order reloads of multiple -+ services against each other. It is -+ strongly recommended to set -+ ExecReload= to a -+ command that no only triggers a -+ configuration reload of the daemon, -+ but also synchronously waits for it -+ complete. - - - --- -1.7.9.2 - diff --git a/0006-parse_boolean-require-exact-matches.patch b/0006-parse_boolean-require-exact-matches.patch deleted file mode 100644 index 2c279f99..00000000 --- a/0006-parse_boolean-require-exact-matches.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0f625d0b87139fc18cd565c9b6da05c53a0eb7ab Mon Sep 17 00:00:00 2001 -From: Ansgar Burchardt -Date: Sun, 27 Jul 2014 15:19:00 +0200 -Subject: [PATCH] parse_boolean: require exact matches - -Require exact matches in all cases instead of treating strings -starting with 't' ('f') as true (false). - -This is required for config_parse_protect_system to parse ProtectSystem=full -correctly: it uses parse_boolean and only tries a more specific parsing -function if that did not return a valid result. Thus "full" was treated as -"false" before. ---- - src/shared/util.c | 4 ++-- - src/test/test-util.c | 1 + - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git src/shared/util.c src/shared/util.c -index 4fda31c..49c17ef 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -231,9 +231,9 @@ int unlink_noerrno(const char *path) { - int parse_boolean(const char *v) { - assert(v); - -- if (streq(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || strcaseeq(v, "on")) -+ if (streq(v, "1") || strcaseeq(v, "yes") || strcaseeq(v, "y") || strcaseeq(v, "true") || strcaseeq(v, "t") || strcaseeq(v, "on")) - return 1; -- else if (streq(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || strcaseeq(v, "off")) -+ else if (streq(v, "0") || strcaseeq(v, "no") || strcaseeq(v, "n") || strcaseeq(v, "false") || strcaseeq(v, "f") || strcaseeq(v, "off")) - return 0; - - return -EINVAL; -diff --git src/test/test-util.c src/test/test-util.c -index ed91a67..9a28ef9 100644 ---- src/test/test-util.c -+++ src/test/test-util.c -@@ -129,6 +129,7 @@ static void test_parse_boolean(void) { - - assert_se(parse_boolean("garbage") < 0); - assert_se(parse_boolean("") < 0); -+ assert_se(parse_boolean("full") < 0); - } - - static void test_parse_pid(void) { --- -1.7.9.2 - diff --git a/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch b/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch deleted file mode 100644 index ce18d6c5..00000000 --- a/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ebc54302d7fc70927d5dc119e178ff03f6a911ed Mon Sep 17 00:00:00 2001 -From: Peter Rajnoha -Date: Mon, 10 Mar 2014 22:58:14 +0100 -Subject: [PATCH] rules: mark loop device as SYSTEMD_READY=0 if no file is - attached - -Check existence of loop/backing_file in sysfs and mark loop devices with -SYSTEMD_READY if missing. Such loop files is uninitialized and it's not -ready for use yet (there's no file attached). ---- - rules/99-systemd.rules.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in -index 021359a..04a59c4 100644 ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in -@@ -22,6 +22,9 @@ SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_T - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" - -+# Ignore loop devices that don't have any file attached -+SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" -+ - # Ignore nbd devices in the "add" event, with "change" the nbd is ready - ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" - --- -1.7.9.2 - diff --git a/0006-sd-event-initialization-perturbation-value-right-bef.patch b/0006-sd-event-initialization-perturbation-value-right-bef.patch deleted file mode 100644 index a561cabb..00000000 --- a/0006-sd-event-initialization-perturbation-value-right-bef.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 52444dc478fe38b5b69a771923ab429a41927aa5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Mar 2014 23:54:21 +0100 -Subject: [PATCH] sd-event: initialization perturbation value right before we - use it - -That way, we don't forget to initialize it when the watchdog is -initialized before all event sources. ---- - src/libsystemd/sd-event/sd-event.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) - ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c 2014-03-28 12:44:05.652327044 +0000 -@@ -648,13 +648,31 @@ _public_ int sd_event_add_io( - return 0; - } - -+static void initialize_perturb(sd_event *e) { -+ sd_id128_t bootid = {}; -+ -+ /* When we sleep for longer, we try to realign the wakeup to -+ the same time wihtin each minute/second/250ms, so that -+ events all across the system can be coalesced into a single -+ CPU wakeup. However, let's take some system-specific -+ randomness for this value, so that in a network of systems -+ with synced clocks timer events are distributed a -+ bit. Here, we calculate a perturbation usec offset from the -+ boot ID. */ -+ -+ if (_likely_(e->perturb != (usec_t) -1)) -+ return; -+ -+ if (sd_id128_get_boot(&bootid) >= 0) -+ e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; -+} -+ - static int event_setup_timer_fd( - sd_event *e, - EventSourceType type, - int *timer_fd, - clockid_t id) { - -- sd_id128_t bootid = {}; - struct epoll_event ev = {}; - int r, fd; - -@@ -677,18 +695,6 @@ static int event_setup_timer_fd( - return -errno; - } - -- /* When we sleep for longer, we try to realign the wakeup to -- the same time wihtin each minute/second/250ms, so that -- events all across the system can be coalesced into a single -- CPU wakeup. However, let's take some system-specific -- randomness for this value, so that in a network of systems -- with synced clocks timer events are distributed a -- bit. Here, we calculate a perturbation usec offset from the -- boot ID. */ -- -- if (sd_id128_get_boot(&bootid) >= 0) -- e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; -- - *timer_fd = fd; - return 0; - } -@@ -1506,6 +1512,8 @@ static usec_t sleep_between(sd_event *e, - if (b <= a + 1) - return a; - -+ initialize_perturb(e); -+ - /* - Find a good time to wake up again between times a and b. We - have two goals here: diff --git a/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch b/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch deleted file mode 100644 index 0dec2f61..00000000 --- a/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8e8af4cfc7fa373504a22e58966909161acfb72f Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:43 +0200 -Subject: [PATCH] shared/sparse-endian.h: add missing byteswap.h include - ---- - src/shared/sparse-endian.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/sparse-endian.h src/shared/sparse-endian.h -index eb4dbf3..c913fda 100644 ---- src/shared/sparse-endian.h -+++ src/shared/sparse-endian.h -@@ -21,6 +21,7 @@ - #ifndef SPARSE_ENDIAN_H - #define SPARSE_ENDIAN_H - -+#include - #include - #include - --- -1.7.9.2 - diff --git a/0006-systemctl-fix-resource-leak-CID-1237747.patch b/0006-systemctl-fix-resource-leak-CID-1237747.patch deleted file mode 100644 index f8ec6af1..00000000 --- a/0006-systemctl-fix-resource-leak-CID-1237747.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 48a2900c6612052149a1d0dd88aeacb99b49ce4d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Wed, 17 Sep 2014 21:56:25 -0300 -Subject: [PATCH] systemctl: fix resource leak CID #1237747 - -..by simply moving the declaration of "unit" into the STRV_FOREACH -loop as suggested by Andreas. ---- - src/systemctl/systemctl.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 88be871..9012128 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -4449,7 +4449,6 @@ static int show(sd_bus *bus, char **args) { - } - - static int cat(sd_bus *bus, char **args) { -- _cleanup_free_ char *unit = NULL; - _cleanup_strv_free_ char **names = NULL; - char **name; - bool first = true; -@@ -4468,6 +4467,8 @@ static int cat(sd_bus *bus, char **args) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_strv_free_ char **dropin_paths = NULL; - _cleanup_free_ char *fragment_path = NULL; -+ _cleanup_free_ char *unit = NULL; -+ - char **path; - - unit = unit_dbus_path_from_name(*name); --- -1.7.9.2 - diff --git a/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch b/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch deleted file mode 100644 index b1fc0988..00000000 --- a/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch +++ /dev/null @@ -1,37 +0,0 @@ -Based on b4af5a803aa71a57733ca46fef29b7afb20a626c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 17:33:26 +0200 -Subject: [PATCH] systemctl: show StatusErrno value in "systemctl status" - ---- - src/systemctl/systemctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-07-08 10:57:30.170735691 +0000 -@@ -2710,6 +2710,7 @@ typedef struct UnitStatusInfo { - const char *status_text; - const char *pid_file; - bool running:1; -+ int status_errno; - - usec_t start_timestamp; - usec_t exit_timestamp; -@@ -2982,6 +2983,8 @@ static void print_status_info( - - if (i->status_text) - printf(" Status: \"%s\"\n", i->status_text); -+ if (i->status_errno > 0) -+ printf(" Error: %i (%s)\n", i->status_errno, strerror(i->status_errno)); - - if (i->control_group && - (i->main_pid > 0 || i->control_pid > 0 || cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, i->control_group, false) == 0)) { -@@ -3203,6 +3206,8 @@ static int status_property(const char *n - i->exit_code = (int) j; - else if (streq(name, "ExecMainStatus")) - i->exit_status = (int) j; -+ else if (streq(name, "StatusErrno")) -+ i->status_errno = (int) j; - - break; - } diff --git a/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch b/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch deleted file mode 100644 index 8647f1e1..00000000 --- a/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 6fc27667950fe153033f0f49cb5b57e8954c3e54 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 30 Jun 2014 19:06:18 +0200 -Subject: [PATCH] tmpfiles: don't do automatic cleanup in $XDG_RUNTIME_DIR - -Now that logind will clean up all IPC resources of a user we should -really consider $XDG_RUNTIME_DIR as just another kind of IPC with the -same life-cycle logic as the other IPC resources. This should be safe -now to do since every user gets his own $XDG_RUNTIME_DIR tmpfs instance -with a fixed size limit, so that flooding of it will more effectively be -averted. ---- - tmpfiles.d/systemd.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- tmpfiles.d/systemd.conf -+++ tmpfiles.d/systemd.conf 2014-07-01 12:31:01.858735866 +0000 -@@ -7,7 +7,7 @@ - - # See tmpfiles.d(5) for details - --d /run/user 0755 root root ~10d -+d /run/user 0755 root root - - F! /run/utmp 0664 root utmp - - - f /var/log/wtmp 0664 root utmp - diff --git a/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch b/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch deleted file mode 100644 index aa77e4cc..00000000 --- a/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 267b3e41df5a2181f2911433539f81de2fa1511a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Thu, 29 May 2014 14:17:37 -0400 -Subject: [PATCH] tty-ask-password-agent: Do tell what directory we failed to - open - ---- - .../tty-ask-password-agent.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c -index 3203474..55a2215 100644 ---- src/tty-ask-password-agent/tty-ask-password-agent.c -+++ src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -501,7 +501,7 @@ static int show_passwords(void) { - if (errno == ENOENT) - return 0; - -- log_error("opendir(): %m"); -+ log_error("opendir(/run/systemd/ask-password): %m"); - return -errno; - } - --- -1.7.9.2 - diff --git a/0007-README-document-that-var-run-must-be-a-symlink-run.patch b/0007-README-document-that-var-run-must-be-a-symlink-run.patch deleted file mode 100644 index 4b8b4384..00000000 --- a/0007-README-document-that-var-run-must-be-a-symlink-run.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 47bc23c18cbc87471dc832534c8565625e4a9d16 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 02:54:37 +0100 -Subject: [PATCH] =?UTF-8?q?README:=20document=20that=20/var/run=20must=20be=20?= - =?UTF-8?q?a=20symlink=20=E2=86=92=20/run?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - README | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git README README -index b918132..7a227e7 100644 ---- README -+++ README -@@ -190,6 +190,9 @@ WARNINGS: - about this, since this kind of file system setup is not really - supported anymore by the basic set of Linux OS components. - -+ systemd requires that the /run mount point exists. systemd also -+ requires that /var/run is a a symlink → /run. -+ - For more information on this issue consult - http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken - --- -1.7.9.2 - diff --git a/0007-core-fix-a-potential-mem-leak.patch b/0007-core-fix-a-potential-mem-leak.patch deleted file mode 100644 index 03003901..00000000 --- a/0007-core-fix-a-potential-mem-leak.patch +++ /dev/null @@ -1,25 +0,0 @@ -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/0007-dbus-suppress-duplicate-and-misleading-messages.patch b/0007-dbus-suppress-duplicate-and-misleading-messages.patch deleted file mode 100644 index c4051609..00000000 --- a/0007-dbus-suppress-duplicate-and-misleading-messages.patch +++ /dev/null @@ -1,66 +0,0 @@ -From fe7f06f142cf42928e419d8578afd75bf1439672 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 11 Mar 2014 04:10:19 +0100 -Subject: [PATCH] dbus: suppress duplicate and misleading messages - -When we try to send a signal on a connection we didn't hae the time to -process the Disconnected message yet, don't generate multiple warning -messages, but only a single debug message. - -https://bugs.freedesktop.org/show_bug.cgi?id=75874 ---- - src/core/dbus-manager.c | 7 +++++-- - src/core/dbus-unit.c | 12 ++---------- - 2 files changed, 7 insertions(+), 12 deletions(-) - -diff --git src/core/dbus-manager.c src/core/dbus-manager.c -index 34ef1f5..30f28b6 100644 ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c -@@ -1357,8 +1357,11 @@ static int reply_unit_file_changes_and_f - unsigned i; - int r; - -- if (n_changes > 0) -- bus_manager_foreach_client(m, send_unit_files_changed, NULL); -+ if (n_changes > 0) { -+ r = bus_manager_foreach_client(m, send_unit_files_changed, NULL); -+ if (r < 0) -+ log_debug("Failed to send UnitFilesChanged signal: %s", strerror(-r)); -+ } - - r = sd_bus_message_new_method_return(message, &reply); - if (r < 0) -diff --git src/core/dbus-unit.c src/core/dbus-unit.c -index 515ac8b..07e7f20 100644 ---- src/core/dbus-unit.c -+++ src/core/dbus-unit.c -@@ -638,21 +638,13 @@ static int send_changed_signal(sd_bus *bus, void *userdata) { - bus, p, - UNIT_VTABLE(u)->bus_interface, - NULL); -- if (r < 0) { -- log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r)); -+ if (r < 0) - return r; -- } - -- r = sd_bus_emit_properties_changed_strv( -+ return sd_bus_emit_properties_changed_strv( - bus, p, - "org.freedesktop.systemd1.Unit", - NULL); -- if (r < 0) { -- log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r)); -- return r; -- } -- -- return 0; - } - - void bus_unit_send_change_signal(Unit *u) { --- -1.7.9.2 - ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c 2014-03-11 11:05:44.350235568 +0000 diff --git a/0007-drop_duplicates-copy-full-BindMount-struct.patch b/0007-drop_duplicates-copy-full-BindMount-struct.patch deleted file mode 100644 index 434f119d..00000000 --- a/0007-drop_duplicates-copy-full-BindMount-struct.patch +++ /dev/null @@ -1,31 +0,0 @@ -From e2d7c1a0758ce80d7cb439745deefefdffd67655 Mon Sep 17 00:00:00 2001 -From: Ansgar Burchardt -Date: Sun, 27 Jul 2014 16:32:13 +0200 -Subject: [PATCH] drop_duplicates: copy full BindMount struct - -At least - - t->ignore = f->ignore; - -is missing here. Just copy the full struct to be sure. ---- - src/core/namespace.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git src/core/namespace.c src/core/namespace.c -index 5466b7b..fe95377 100644 ---- src/core/namespace.c -+++ src/core/namespace.c -@@ -124,8 +124,7 @@ static void drop_duplicates(BindMount *m, unsigned *n) { - if (previous && path_equal(f->path, previous->path)) - continue; - -- t->path = f->path; -- t->mode = f->mode; -+ *t = *f; - - previous = t; - --- -1.7.9.2 - diff --git a/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 7b77e2ab..00000000 --- a/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 063e36db8aed7b54100b33089deb6d2e86d516b9 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Thu, 3 Jul 2014 16:13:48 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 26 +++++++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 377748a..9f3136a 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -1045,7 +1045,31 @@ bluetooth:v0159* - ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. - - bluetooth:v015A* -- ID_VENDOR_FROM_DATABASE=micus AG -+ ID_VENDOR_FROM_DATABASE=micas AG - - bluetooth:v015B* - ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. -+ -+bluetooth:v015C* -+ ID_VENDOR_FROM_DATABASE=Pitius Tec S.L. -+ -+bluetooth:v015D* -+ ID_VENDOR_FROM_DATABASE=Estimote, Inc. -+ -+bluetooth:v015E* -+ ID_VENDOR_FROM_DATABASE=Unikey Technologies, Inc. -+ -+bluetooth:v015F* -+ ID_VENDOR_FROM_DATABASE=Timer Cap Co. -+ -+bluetooth:v0160* -+ ID_VENDOR_FROM_DATABASE=AwoX -+ -+bluetooth:v0161* -+ ID_VENDOR_FROM_DATABASE=yikes -+ -+bluetooth:v0162* -+ ID_VENDOR_FROM_DATABASE=MADSGlobal NZ Ltd. -+ -+bluetooth:v0163* -+ ID_VENDOR_FROM_DATABASE=PCH International --- -1.7.9.2 - diff --git a/0007-hwdb-update.patch b/0007-hwdb-update.patch deleted file mode 100644 index 462cdb4a..00000000 --- a/0007-hwdb-update.patch +++ /dev/null @@ -1,1910 +0,0 @@ -Based on bd64a88fb0478da2e93c363849b73aed8be36ae7 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 31 Jul 2014 23:06:04 +0200 -Subject: [PATCH] hwdb: update - ---- - 20-OUI.hwdb | 380 +++++++++++++++++++++++++++++++++++++++++++++-- - 20-pci-vendor-model.hwdb | 35 +++- - 20-usb-vendor-model.hwdb | 208 +++++++++++++++++++++++-- - 3 files changed, 586 insertions(+), 37 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 97f1e6b..f9501be 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -23288,7 +23288,7 @@ OUI:000CB1* - ID_OUI_FROM_DATABASE=Salland Engineering (Europe) BV - - OUI:000CB2* -- ID_OUI_FROM_DATABASE=Comstar Co., Ltd. -+ ID_OUI_FROM_DATABASE=UNION co., ltd. - - OUI:000CB3* - ID_OUI_FROM_DATABASE=ROUND Co.,Ltd. -@@ -23528,7 +23528,7 @@ OUI:000D01* - ID_OUI_FROM_DATABASE=P&E Microcomputer Systems, Inc. - - OUI:000D02* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:000D03* - ID_OUI_FROM_DATABASE=Matrics, Inc. -@@ -30311,7 +30311,7 @@ OUI:0015DF* - ID_OUI_FROM_DATABASE=Clivet S.p.A. - - OUI:0015E0* -- ID_OUI_FROM_DATABASE=ST-Ericsson -+ ID_OUI_FROM_DATABASE=Ericsson - - OUI:0015E1* - ID_OUI_FROM_DATABASE=Picochip Ltd -@@ -32375,7 +32375,7 @@ OUI:001893* - ID_OUI_FROM_DATABASE=SHENZHEN PHOTON BROADBAND TECHNOLOGY CO.,LTD - - OUI:001894* -- ID_OUI_FROM_DATABASE=zimocom -+ ID_OUI_FROM_DATABASE=NPCore, Inc. - - OUI:001895* - ID_OUI_FROM_DATABASE=Hansun Technologies Inc. -@@ -33887,7 +33887,7 @@ OUI:001A8B* - ID_OUI_FROM_DATABASE=CHUNIL ELECTRIC IND., CO. - - OUI:001A8C* -- ID_OUI_FROM_DATABASE=Astaro AG -+ ID_OUI_FROM_DATABASE=Sophos Ltd - - OUI:001A8D* - ID_OUI_FROM_DATABASE=AVECS Bergen GmbH -@@ -34652,7 +34652,7 @@ OUI:001B8A* - ID_OUI_FROM_DATABASE=2M Electronic A/S - - OUI:001B8B* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:001B8C* - ID_OUI_FROM_DATABASE=JMicron Technology Corp. -@@ -35066,7 +35066,7 @@ OUI:001C14* - ID_OUI_FROM_DATABASE=VMware, Inc - - OUI:001C15* -- ID_OUI_FROM_DATABASE=TXP Corporation -+ ID_OUI_FROM_DATABASE=iPhotonix LLC - - OUI:001C16* - ID_OUI_FROM_DATABASE=ThyssenKrupp Elevator -@@ -35975,7 +35975,7 @@ OUI:001D43* - ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. - - OUI:001D44* -- ID_OUI_FROM_DATABASE=KROHNE -+ ID_OUI_FROM_DATABASE=KROHNE Messtechnik GmbH - - OUI:001D45* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. -@@ -36863,7 +36863,7 @@ OUI:001E6B* - ID_OUI_FROM_DATABASE=Cisco SPVTG - - OUI:001E6C* -- ID_OUI_FROM_DATABASE=Carbon Mountain LLC -+ ID_OUI_FROM_DATABASE=Opaque Systems - - OUI:001E6D* - ID_OUI_FROM_DATABASE=IT R&D Center -@@ -38471,7 +38471,7 @@ OUI:002084* - ID_OUI_FROM_DATABASE=OCE PRINTING SYSTEMS, GMBH - - OUI:002085* -- ID_OUI_FROM_DATABASE=EXIDE ELECTRONICS -+ ID_OUI_FROM_DATABASE=Eaton Corporation - - OUI:002086* - ID_OUI_FROM_DATABASE=MICROTECH ELECTRONICS LIMITED -@@ -44312,7 +44312,7 @@ OUI:003A9C* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:003A9D* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:003AAF* - ID_OUI_FROM_DATABASE=BlueBit Ltd. -@@ -46394,7 +46394,7 @@ OUI:0060B8* - ID_OUI_FROM_DATABASE=CORELIS Inc. - - OUI:0060B9* -- ID_OUI_FROM_DATABASE=NEC Infrontia Corporation -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd - - OUI:0060BA* - ID_OUI_FROM_DATABASE=SAHARA NETWORKS, INC. -@@ -49015,6 +49015,9 @@ OUI:00A1DE* - OUI:00A2DA* - ID_OUI_FROM_DATABASE=INAT GmbH - -+OUI:00A2F5* -+ ID_OUI_FROM_DATABASE=Guangzhou Yuanyun Network Technology Co.,Ltd -+ - OUI:00A2FF* - ID_OUI_FROM_DATABASE=abatec group AG - -@@ -49036,6 +49039,9 @@ OUI:00AA70* - OUI:00ACE0* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:00AEFA* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:00B009* - ID_OUI_FROM_DATABASE=Grass Valley Group - -@@ -51613,6 +51619,9 @@ OUI:00F403* - OUI:00F4B9* - ID_OUI_FROM_DATABASE=Apple - -+OUI:00F76F* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:00F860* - ID_OUI_FROM_DATABASE=PT. Panggung Electric Citrabuana - -@@ -51844,6 +51853,9 @@ OUI:0494A1* - OUI:0498F3* - ID_OUI_FROM_DATABASE=ALPS Electric Co,. Ltd. - -+OUI:0499E6* -+ ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd -+ - OUI:049C62* - ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. - -@@ -52423,6 +52435,9 @@ OUI:0808C2* - OUI:0808EA* - ID_OUI_FROM_DATABASE=AMSC - -+OUI:0809B6* -+ ID_OUI_FROM_DATABASE=Masimo Corp -+ - OUI:080C0B* - ID_OUI_FROM_DATABASE=SysMik GmbH Dresden - -@@ -52438,6 +52453,9 @@ OUI:080EA8* - OUI:080FFA* - ID_OUI_FROM_DATABASE=KSP INC. - -+OUI:08115E* -+ ID_OUI_FROM_DATABASE=Bitel Co., Ltd. -+ - OUI:081196* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -52597,6 +52615,9 @@ OUI:087D21* - OUI:088039* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:0881BC* -+ ID_OUI_FROM_DATABASE=HongKong Ipro Technology Co., Limited -+ - OUI:0881F4* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -52693,6 +52714,9 @@ OUI:08E5DA* - OUI:08E672* - ID_OUI_FROM_DATABASE=JEBSEE ELECTRONICS CO.,LTD. - -+OUI:08E84F* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:08EA44* - ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. - -@@ -52759,6 +52783,9 @@ OUI:0C17F1* - OUI:0C191F* - ID_OUI_FROM_DATABASE=Inform Electronik - -+OUI:0C1DAF* -+ ID_OUI_FROM_DATABASE=Beijing Xiaomi communications co.,ltd -+ - OUI:0C1DC2* - ID_OUI_FROM_DATABASE=SeAH Networks - -@@ -53080,6 +53107,9 @@ OUI:1001CA* - OUI:1005CA* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:1008B1* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:10090C* - ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. - -@@ -53200,6 +53230,9 @@ OUI:104B46* - OUI:104D77* - ID_OUI_FROM_DATABASE=Innovative Computer Engineering - -+OUI:104E07* -+ ID_OUI_FROM_DATABASE=Shanghai Genvision Industries Co.,Ltd -+ - OUI:105172* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -@@ -53234,7 +53267,7 @@ OUI:1065CF* - ID_OUI_FROM_DATABASE=IQSIM - - OUI:106682* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:10683F* - ID_OUI_FROM_DATABASE=LG Electronics -@@ -53668,6 +53701,9 @@ OUI:14F42A* - OUI:14F65A* - ID_OUI_FROM_DATABASE=Xiaomi inc. - -+OUI:14F893* -+ ID_OUI_FROM_DATABASE=Wuhan FiberHome Digital Technology Co.,Ltd. -+ - OUI:14FEAF* - ID_OUI_FROM_DATABASE=SAGITTAR LIMITED - -@@ -54190,6 +54226,9 @@ OUI:1C7C45* - OUI:1C7CC7* - ID_OUI_FROM_DATABASE=Coriant GmbH - -+OUI:1C7E51* -+ ID_OUI_FROM_DATABASE=3bumen.com -+ - OUI:1C7EE5* - ID_OUI_FROM_DATABASE=D-Link International - -@@ -54220,6 +54259,9 @@ OUI:1C955D* - OUI:1C959F* - ID_OUI_FROM_DATABASE=Veethree Electronics And Marine LLC - -+OUI:1C965A* -+ ID_OUI_FROM_DATABASE=Weifang goertek Electronics CO.,LTD -+ - OUI:1C973D* - ID_OUI_FROM_DATABASE=PRICOM Design - -@@ -54229,6 +54271,9 @@ OUI:1C994C* - OUI:1C9C26* - ID_OUI_FROM_DATABASE=Zoovel Technologies - -+OUI:1C9ECB* -+ ID_OUI_FROM_DATABASE=Beijing Nari Smartchip Microelectronics Company Limited -+ - OUI:1CA2B1* - ID_OUI_FROM_DATABASE=ruwido austria gmbh - -@@ -54254,7 +54299,7 @@ OUI:1CB094* - ID_OUI_FROM_DATABASE=HTC Corporation - - OUI:1CB17F* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:1CB243* - ID_OUI_FROM_DATABASE=TDC A/S -@@ -54478,6 +54523,9 @@ OUI:2074CF* - OUI:207600* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -+OUI:207693* -+ ID_OUI_FROM_DATABASE=Lenovo (Beijing) Limited. -+ - OUI:207C8F* - ID_OUI_FROM_DATABASE=Quanta Microsystems,Inc. - -@@ -54766,6 +54814,9 @@ OUI:249442* - OUI:249504* - ID_OUI_FROM_DATABASE=SFR - -+OUI:2497ED* -+ ID_OUI_FROM_DATABASE=Techvision Intelligent Technology Limited -+ - OUI:24A2E1* - ID_OUI_FROM_DATABASE=Apple, Inc - -@@ -55306,6 +55357,9 @@ OUI:2C27D7* - OUI:2C282D* - ID_OUI_FROM_DATABASE=BBK COMMUNICATIAO TECHNOLOGY CO.,LTD. - -+OUI:2C2997* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:2C2D48* - ID_OUI_FROM_DATABASE=bct electronic GesmbH - -@@ -55327,6 +55381,9 @@ OUI:2C36F8* - OUI:2C3731* - ID_OUI_FROM_DATABASE=ShenZhen Yifang Digital Technology Co.,LTD - -+OUI:2C3796* -+ ID_OUI_FROM_DATABASE=CYBO CO.,LTD. -+ - OUI:2C3996* - ID_OUI_FROM_DATABASE=SAGEMCOM - -@@ -55390,6 +55447,9 @@ OUI:2C5D93* - OUI:2C5FF3* - ID_OUI_FROM_DATABASE=Pertronic Industries - -+OUI:2C600C* -+ ID_OUI_FROM_DATABASE=QUANTA COMPUTER INC. -+ - OUI:2C625A* - ID_OUI_FROM_DATABASE=Finest Security Systems Co., Ltd - -@@ -55549,12 +55609,18 @@ OUI:2CEDEB* - OUI:2CEE26* - ID_OUI_FROM_DATABASE=Petroleum Geo-Services - -+OUI:2CF0EE* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:2CF203* - ID_OUI_FROM_DATABASE=EMKO ELEKTRONIK SAN VE TIC AS - - OUI:2CF4C5* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:2CF7F1* -+ ID_OUI_FROM_DATABASE=Seeed Technology Inc. -+ - OUI:2CFAA2* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -55570,6 +55636,9 @@ OUI:300D2A* - OUI:300ED5* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -+OUI:3010B3* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:3010E4* - ID_OUI_FROM_DATABASE=Apple, Inc. - -@@ -55711,6 +55780,9 @@ OUI:307512* - OUI:30766F* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:3077CB* -+ ID_OUI_FROM_DATABASE=Maike Industry(Shenzhen)CO.,LTD -+ - OUI:30786B* - ID_OUI_FROM_DATABASE=TIANJIN Golden Pentagon Electronics Co., Ltd. - -@@ -55831,6 +55903,9 @@ OUI:30F7D7* - OUI:30F9ED* - ID_OUI_FROM_DATABASE=Sony Corporation - -+OUI:30FAB7* -+ ID_OUI_FROM_DATABASE=Tunai Creative -+ - OUI:30FD11* - ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. - -@@ -55909,6 +55984,9 @@ OUI:344B3D* - OUI:344B50* - ID_OUI_FROM_DATABASE=ZTE Corporation - -+OUI:344DEA* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:344DF7* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -55942,6 +56020,9 @@ OUI:346178* - OUI:346288* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:3464A9* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:34684A* - ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. - -@@ -56152,6 +56233,9 @@ OUI:34E2FD* - OUI:34E42A* - ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. - -+OUI:34E6AD* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:34EF44* - ID_OUI_FROM_DATABASE=2Wire - -@@ -56200,6 +56284,9 @@ OUI:380B40* - OUI:380DD4* - ID_OUI_FROM_DATABASE=Primax Electronics LTD. - -+OUI:380E7B* -+ ID_OUI_FROM_DATABASE=V.P.S. Thai Co., Ltd -+ - OUI:380F4A* - ID_OUI_FROM_DATABASE=Apple - -@@ -56989,6 +57076,9 @@ OUI:40984E* - OUI:40987B* - ID_OUI_FROM_DATABASE=Aisino Corporation - -+OUI:409B0D* -+ ID_OUI_FROM_DATABASE=Shenzhen Yourf Kwan Industrial Co., Ltd -+ - OUI:409FC7* - ID_OUI_FROM_DATABASE=BAEKCHUN I&C Co., Ltd. - -@@ -57367,6 +57457,9 @@ OUI:44C56F* - OUI:44C9A2* - ID_OUI_FROM_DATABASE=Greenwald Industries - -+OUI:44CE7D* -+ ID_OUI_FROM_DATABASE=SFR -+ - OUI:44D15E* - ID_OUI_FROM_DATABASE=Shanghai Kingto Information Technology Ltd - -@@ -57703,6 +57796,9 @@ OUI:4C1480* - OUI:4C14A3* - ID_OUI_FROM_DATABASE=TCL Technoly Electronics (Huizhou) Co., Ltd. - -+OUI:4C16F1* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:4C17EB* - ID_OUI_FROM_DATABASE=SAGEMCOM - -@@ -57730,6 +57826,9 @@ OUI:4C26E7* - OUI:4C2C80* - ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd - -+OUI:4C2C83* -+ ID_OUI_FROM_DATABASE=Zhejiang KaNong Network Technology Co.,Ltd. -+ - OUI:4C2F9D* - ID_OUI_FROM_DATABASE=ICM Controls - -@@ -57754,6 +57853,9 @@ OUI:4C3B74* - OUI:4C3C16* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:4C48DA* -+ ID_OUI_FROM_DATABASE=Beijing Autelan Technology Co.,Ltd -+ - OUI:4C4B68* - ID_OUI_FROM_DATABASE=Mobile Device, Inc. - -@@ -57943,6 +58045,9 @@ OUI:4CDF3D* - OUI:4CE1BB* - ID_OUI_FROM_DATABASE=Zhuhai HiFocus Technology Co., Ltd. - -+OUI:4CE2F1* -+ ID_OUI_FROM_DATABASE=sclak srl -+ - OUI:4CE676* - ID_OUI_FROM_DATABASE=Buffalo Inc. - -@@ -58459,6 +58564,9 @@ OUI:549F35* - OUI:54A04F* - ID_OUI_FROM_DATABASE=t-mac Technologies Ltd - -+OUI:54A050* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:54A31B* - ID_OUI_FROM_DATABASE=Shenzhen Linkworld Technology Co,.LTD - -@@ -58525,6 +58633,9 @@ OUI:54E3B0* - OUI:54E43A* - ID_OUI_FROM_DATABASE=Apple, Inc. - -+OUI:54E4BD* -+ ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED -+ - OUI:54E63F* - ID_OUI_FROM_DATABASE=ShenZhen LingKeWeiEr Technology Co., Ltd. - -@@ -58603,6 +58714,9 @@ OUI:581FAA* - OUI:581FEF* - ID_OUI_FROM_DATABASE=Tuttnaer LTD - -+OUI:582136* -+ ID_OUI_FROM_DATABASE=KMB systems, s.r.o. -+ - OUI:58238C* - ID_OUI_FROM_DATABASE=Technicolor CH USA - -@@ -58705,6 +58819,9 @@ OUI:587BE9* - OUI:587E61* - ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd - -+OUI:587FB7* -+ ID_OUI_FROM_DATABASE=SONAR INDUSTRIAL CO., LTD. -+ - OUI:587FC8* - ID_OUI_FROM_DATABASE=S2M - -@@ -58903,6 +59020,9 @@ OUI:5C260A* - OUI:5C2AEF* - ID_OUI_FROM_DATABASE=Open Access Pty Ltd - -+OUI:5C2BF5* -+ ID_OUI_FROM_DATABASE=Vivint -+ - OUI:5C2E59* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -59020,6 +59140,9 @@ OUI:5C95AE* - OUI:5C969D* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C97F3* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:5C9AD8* - ID_OUI_FROM_DATABASE=Fujitsu Limited - -@@ -59032,6 +59155,9 @@ OUI:5CA3EB* - OUI:5CA48A* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:5CAAFD* -+ ID_OUI_FROM_DATABASE=Sonos, Inc. -+ - OUI:5CAC4C* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -59167,6 +59293,9 @@ OUI:600308* - OUI:600347* - ID_OUI_FROM_DATABASE=Billion Electric Co. Ltd. - -+OUI:600417* -+ ID_OUI_FROM_DATABASE=POSBANK CO.,LTD -+ - OUI:600F77* - ID_OUI_FROM_DATABASE=SilverPlus, Inc - -@@ -59407,6 +59536,9 @@ OUI:60C547* - OUI:60C5A8* - ID_OUI_FROM_DATABASE=Beijing LT Honway Technology Co.,Ltd - -+OUI:60C798* -+ ID_OUI_FROM_DATABASE=Verifone, Inc. -+ - OUI:60C980* - ID_OUI_FROM_DATABASE=Trymus - -@@ -59947,6 +60079,9 @@ OUI:6828BA* - OUI:682DDC* - ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD - -+OUI:6836B5* -+ ID_OUI_FROM_DATABASE=DriveScale, Inc. -+ - OUI:683B1E* - ID_OUI_FROM_DATABASE=Countwise LTD - -@@ -60007,6 +60142,9 @@ OUI:686E48* - OUI:687251* - ID_OUI_FROM_DATABASE=Ubiquiti Networks - -+OUI:6872DC* -+ ID_OUI_FROM_DATABASE=CETORY.TV Company Limited -+ - OUI:68764F* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -@@ -60097,6 +60235,9 @@ OUI:68AAD2* - OUI:68AB8A* - ID_OUI_FROM_DATABASE=RF IDeas - -+OUI:68AE20* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:68AF13* - ID_OUI_FROM_DATABASE=Futura Mobility - -@@ -60202,6 +60343,9 @@ OUI:6C0460* - OUI:6C09D6* - ID_OUI_FROM_DATABASE=Digiquest Electronics LTD - -+OUI:6C0B84* -+ ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co.,Ltd. -+ - OUI:6C0E0D* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -@@ -60268,6 +60412,9 @@ OUI:6C3E6D* - OUI:6C3E9C* - ID_OUI_FROM_DATABASE=KE Knestel Elektronik GmbH - -+OUI:6C4008* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:6C40C6* - ID_OUI_FROM_DATABASE=Nimbus Data Systems, Inc. - -@@ -60850,6 +60997,12 @@ OUI:70F927* - OUI:70F96D* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -+OUI:70FC8C* -+ ID_OUI_FROM_DATABASE=OneAccess SA -+ -+OUI:70FF5C* -+ ID_OUI_FROM_DATABASE=Cheerzing Communication(Xiamen)Technology Co.,Ltd -+ - OUI:70FF76* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -60967,6 +61120,9 @@ OUI:746F3D* - OUI:7472F2* - ID_OUI_FROM_DATABASE=Chipsip Technology Co., Ltd. - -+OUI:747548* -+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. -+ - OUI:747818* - ID_OUI_FROM_DATABASE=ServiceAssure - -@@ -61117,6 +61273,9 @@ OUI:74E537* - OUI:74E543* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -+OUI:74E6E2* -+ ID_OUI_FROM_DATABASE=Dell Inc. -+ - OUI:74E7C6* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -61921,6 +62080,9 @@ OUI:8005DF* - OUI:8007A2* - ID_OUI_FROM_DATABASE=Esson Technology Inc. - -+OUI:800902* -+ ID_OUI_FROM_DATABASE=Keysight Technologies, Inc. -+ - OUI:800A06* - ID_OUI_FROM_DATABASE=COMTEC co.,ltd - -@@ -61945,6 +62107,9 @@ OUI:8018A7* - OUI:801934* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:801967* -+ ID_OUI_FROM_DATABASE=Shanghai Reallytek Information Technology Co.,Ltd -+ - OUI:801DAA* - ID_OUI_FROM_DATABASE=Avaya Inc - -@@ -61972,6 +62137,9 @@ OUI:802FDE* - OUI:803457* - ID_OUI_FROM_DATABASE=OT Systems Limited - -+OUI:803773* -+ ID_OUI_FROM_DATABASE=Netgear Inc -+ - OUI:8038FD* - ID_OUI_FROM_DATABASE=LeapFrog Enterprises, Inc. - -@@ -62146,6 +62314,9 @@ OUI:80BAE6* - OUI:80BBEB* - ID_OUI_FROM_DATABASE=Satmap Systems Ltd - -+OUI:80BE05* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:80C16E* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -62236,6 +62407,9 @@ OUI:841715* - OUI:841766* - ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd - -+OUI:841826* -+ ID_OUI_FROM_DATABASE=Osram GmbH -+ - OUI:84183A* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -@@ -62365,6 +62539,9 @@ OUI:84742A* - OUI:847616* - ID_OUI_FROM_DATABASE=Addat S.r.o. - -+OUI:84788B* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:8478AC* - ID_OUI_FROM_DATABASE=Cisco - -@@ -62506,6 +62683,9 @@ OUI:84E714* - OUI:84EA99* - ID_OUI_FROM_DATABASE=Vieworks - -+OUI:84EB18* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:84ED33* - ID_OUI_FROM_DATABASE=BBMC Co.,Ltd - -@@ -62641,6 +62821,9 @@ OUI:88685C* - OUI:886B76* - ID_OUI_FROM_DATABASE=CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD - -+OUI:88708C* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:887398* - ID_OUI_FROM_DATABASE=K2E Tekpoint - -@@ -62746,6 +62929,9 @@ OUI:88C626* - OUI:88C663* - ID_OUI_FROM_DATABASE=Apple - -+OUI:88C9D0* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:88CB87* - ID_OUI_FROM_DATABASE=Apple - -@@ -63082,6 +63268,9 @@ OUI:8CDE52* - OUI:8CDE99* - ID_OUI_FROM_DATABASE=Comlab Inc. - -+OUI:8CDF9D* -+ ID_OUI_FROM_DATABASE=NEC Corporation -+ - OUI:8CE081* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -63133,6 +63322,12 @@ OUI:900D66* - OUI:900DCB* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:90179B* -+ ID_OUI_FROM_DATABASE=Nanomegas -+ -+OUI:9017AC* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:90185E* - ID_OUI_FROM_DATABASE=Apex Tool Group GmbH & Co OHG - -@@ -63166,12 +63361,18 @@ OUI:902083* - OUI:902155* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:902181* -+ ID_OUI_FROM_DATABASE=Shanghai Huaqin Telecom Technology Co.,Ltd -+ - OUI:9027E4* - ID_OUI_FROM_DATABASE=Apple - - OUI:902B34* - ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. - -+OUI:902CC7* -+ ID_OUI_FROM_DATABASE=C-MAX Asia Limited -+ - OUI:902E87* - ID_OUI_FROM_DATABASE=LabJack - -@@ -63304,6 +63505,9 @@ OUI:90840D* - OUI:9088A2* - ID_OUI_FROM_DATABASE=IONICS TECHNOLOGY ME LTDA - -+OUI:908C09* -+ ID_OUI_FROM_DATABASE=Total Phase -+ - OUI:908C44* - ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. - -@@ -63337,6 +63541,9 @@ OUI:909916* - OUI:909DE0* - ID_OUI_FROM_DATABASE=Newland Design + Assoc. Inc. - -+OUI:909F33* -+ ID_OUI_FROM_DATABASE=EFM Networks -+ - OUI:909F43* - ID_OUI_FROM_DATABASE=Accutron Instruments Inc. - -@@ -63416,7 +63623,7 @@ OUI:90DA4E* - ID_OUI_FROM_DATABASE=AVANU - - OUI:90DA6A* -- ID_OUI_FROM_DATABASE=MCC System Co., Ltd. -+ ID_OUI_FROM_DATABASE=FOCUS H&S Co., Ltd. - - OUI:90DB46* - ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD -@@ -63580,6 +63787,9 @@ OUI:946269* - OUI:9463D1* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:9470D2* -+ ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY -+ - OUI:9471AC* - ID_OUI_FROM_DATABASE=TCT Mobile Limited - -@@ -63646,6 +63856,9 @@ OUI:94AE61* - OUI:94AEE3* - ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. - -+OUI:94B40F* -+ ID_OUI_FROM_DATABASE=Aruba Networks -+ - OUI:94B8C5* - ID_OUI_FROM_DATABASE=RuggedCom Inc. - -@@ -63661,9 +63874,15 @@ OUI:94BA56* - OUI:94BF1E* - ID_OUI_FROM_DATABASE=eflow Inc. / Smart Device Planning and Development Division - -+OUI:94BF95* -+ ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd -+ - OUI:94C014* - ID_OUI_FROM_DATABASE=Sorter Sp. j. Konrad Grzeszczyk MichaA, Ziomek - -+OUI:94C038* -+ ID_OUI_FROM_DATABASE=Tallac Networks -+ - OUI:94C150* - ID_OUI_FROM_DATABASE=2Wire Inc - -@@ -63793,6 +64012,9 @@ OUI:980D2E* - OUI:981094* - ID_OUI_FROM_DATABASE=Shenzhen Vsun communication technology Co.,ltd - -+OUI:9816EC* -+ ID_OUI_FROM_DATABASE=IC Intracom -+ - OUI:98208E* - ID_OUI_FROM_DATABASE=Definium Technologies - -@@ -64724,7 +64946,7 @@ OUI:A40CC3* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:A41242* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:A4134E* - ID_OUI_FROM_DATABASE=Luxul -@@ -64753,6 +64975,9 @@ OUI:A42305* - OUI:A424B3* - ID_OUI_FROM_DATABASE=FlatFrog Laboratories AB - -+OUI:A4251B* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:A42940* - ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd - -@@ -64783,6 +65008,9 @@ OUI:A4466B* - OUI:A446FA* - ID_OUI_FROM_DATABASE=AmTRAN Video Corporation - -+OUI:A44AD3* -+ ID_OUI_FROM_DATABASE=ST Electronics(Shanghai) Co.,Ltd -+ - OUI:A44B15* - ID_OUI_FROM_DATABASE=Sun Cupid Technology (HK) LTD - -@@ -64897,6 +65125,9 @@ OUI:A49F85* - OUI:A49F89* - ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. - -+OUI:A4A1C2* -+ ID_OUI_FROM_DATABASE=Ericsson AB (EAB) -+ - OUI:A4A24A* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -@@ -65209,6 +65440,9 @@ OUI:A8995C* - OUI:A89B10* - ID_OUI_FROM_DATABASE=inMotion Ltd. - -+OUI:A89DD2* -+ ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd -+ - OUI:A8A668* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -65488,6 +65722,9 @@ OUI:AC8674* - OUI:AC867E* - ID_OUI_FROM_DATABASE=Create New Technology (HK) Limited Company - -+OUI:AC87A3* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:AC8ACD* - ID_OUI_FROM_DATABASE=ROGER D.Wensker, G.Wensker sp.j. - -@@ -65650,6 +65887,9 @@ OUI:ACF7F3* - OUI:ACF97E* - ID_OUI_FROM_DATABASE=ELESYS INC. - -+OUI:ACFDCE* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:ACFDEC* - ID_OUI_FROM_DATABASE=Apple, Inc - -@@ -66496,6 +66736,9 @@ OUI:B8AD3E* - OUI:B8AE6E* - ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. - -+OUI:B8AEED* -+ ID_OUI_FROM_DATABASE=Elitegroup Computer Systems Co., Ltd. -+ - OUI:B8AF67* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -@@ -66562,6 +66805,9 @@ OUI:B8D06F* - OUI:B8D49D* - ID_OUI_FROM_DATABASE=M Seven System Ltd. - -+OUI:B8D812* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:B8D9CE* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -66658,6 +66904,9 @@ OUI:BC15A6* - OUI:BC1665* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:BC16F5* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:BC1A67* - ID_OUI_FROM_DATABASE=YF Technology Co., Ltd - -@@ -66766,6 +67015,9 @@ OUI:BC6A16* - OUI:BC6A29* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:BC6B4D* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:BC6E76* - ID_OUI_FROM_DATABASE=Green Energy Options Ltd - -@@ -66868,6 +67120,9 @@ OUI:BCC168* - OUI:BCC23A* - ID_OUI_FROM_DATABASE=Thomson Video Networks - -+OUI:BCC342* -+ ID_OUI_FROM_DATABASE=Panasonic System Networks Co., Ltd. -+ - OUI:BCC61A* - ID_OUI_FROM_DATABASE=SPECTRA EMBEDDED SYSTEMS - -@@ -66907,6 +67162,9 @@ OUI:BCE59F* - OUI:BCEA2B* - ID_OUI_FROM_DATABASE=CityCom GmbH - -+OUI:BCEAFA* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:BCEE7B* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -@@ -66976,6 +67234,9 @@ OUI:C03580* - OUI:C035BD* - ID_OUI_FROM_DATABASE=Velocytech Aps - -+OUI:C03896* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:C038F9* - ID_OUI_FROM_DATABASE=Nokia Danmark A/S - -@@ -67087,6 +67348,9 @@ OUI:C09132* - OUI:C09134* - ID_OUI_FROM_DATABASE=ProCurve Networking by HP - -+OUI:C09879* -+ ID_OUI_FROM_DATABASE=Acer Inc. -+ - OUI:C098E5* - ID_OUI_FROM_DATABASE=University of Michigan - -@@ -67228,6 +67492,9 @@ OUI:C40528* - OUI:C4084A* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -+OUI:C40880* -+ ID_OUI_FROM_DATABASE=Shenzhen UTEPO Tech Co., Ltd. -+ - OUI:C40938* - ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd - -@@ -67675,6 +67942,9 @@ OUI:C88439* - OUI:C88447* - ID_OUI_FROM_DATABASE=Beautiful Enterprise Co., Ltd - -+OUI:C88550* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:C8873B* - ID_OUI_FROM_DATABASE=Net Optics - -@@ -67774,6 +68044,9 @@ OUI:C8CBB8* - OUI:C8CD72* - ID_OUI_FROM_DATABASE=SAGEMCOM - -+OUI:C8D019* -+ ID_OUI_FROM_DATABASE=Shanghai Tigercel Communication Technology Co.,Ltd -+ - OUI:C8D10B* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -67960,6 +68233,9 @@ OUI:CC3D82* - OUI:CC3E5F* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:CC3F1D* -+ ID_OUI_FROM_DATABASE=Intesis Software SL -+ - OUI:CC43E3* - ID_OUI_FROM_DATABASE=Trump s.a. - -@@ -68668,6 +68944,9 @@ OUI:D45C70* - OUI:D45D42* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:D46132* -+ ID_OUI_FROM_DATABASE=Pro Concept Manufacturer Co.,Ltd. -+ - OUI:D464F7* - ID_OUI_FROM_DATABASE=CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD - -@@ -68728,6 +69007,9 @@ OUI:D48890* - OUI:D48CB5* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:D48DD9* -+ ID_OUI_FROM_DATABASE=Meld Technology, Inc -+ - OUI:D48F33* - ID_OUI_FROM_DATABASE=Microsoft Corporation - -@@ -68887,6 +69169,9 @@ OUI:D4F0B4* - OUI:D4F143* - ID_OUI_FROM_DATABASE=IPROAD.,Inc - -+OUI:D4F46F* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:D4F63F* - ID_OUI_FROM_DATABASE=IEA S.R.L. - -@@ -69058,6 +69343,9 @@ OUI:D87CDD* - OUI:D87EB1* - ID_OUI_FROM_DATABASE=x.o.ware, inc. - -+OUI:D88039* -+ ID_OUI_FROM_DATABASE=Microchip Technology Inc. -+ - OUI:D881CE* - ID_OUI_FROM_DATABASE=AHN INC. - -@@ -69121,6 +69409,9 @@ OUI:D8B12A* - OUI:D8B377* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:D8B6B7* -+ ID_OUI_FROM_DATABASE=Comtrend Corporation -+ - OUI:D8B6C1* - ID_OUI_FROM_DATABASE=NetworkAccountant, Inc. - -@@ -69214,6 +69505,9 @@ OUI:D8EE78* - OUI:D8F0F2* - ID_OUI_FROM_DATABASE=Zeebo Inc - -+OUI:D8FB11* -+ ID_OUI_FROM_DATABASE=AXACORE -+ - OUI:D8FC93* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -69286,6 +69580,9 @@ OUI:DC2C26* - OUI:DC2E6A* - ID_OUI_FROM_DATABASE=HCT. Co., Ltd. - -+OUI:DC2F03* -+ ID_OUI_FROM_DATABASE=Step forward Group Co., Ltd. -+ - OUI:DC309C* - ID_OUI_FROM_DATABASE=Heyrex Limited - -@@ -69418,6 +69715,9 @@ OUI:DCC101* - OUI:DCC422* - ID_OUI_FROM_DATABASE=Systembase Limited - -+OUI:DCC622* -+ ID_OUI_FROM_DATABASE=BUHEUNG SYSTEM -+ - OUI:DCC793* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -69448,6 +69748,9 @@ OUI:DCD52A* - OUI:DCD87F* - ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd - -+OUI:DCDA4F* -+ ID_OUI_FROM_DATABASE=GET Technology,INC -+ - OUI:DCDECA* - ID_OUI_FROM_DATABASE=Akyllor - -@@ -69490,6 +69793,9 @@ OUI:E00B28* - OUI:E00C7F* - ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. - -+OUI:E0107F* -+ ID_OUI_FROM_DATABASE=Ruckus Wireless -+ - OUI:E0143E* - ID_OUI_FROM_DATABASE=Modoosis Inc. - -@@ -69688,6 +69994,9 @@ OUI:E0AF4B* - OUI:E0B2F1* - ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED - -+OUI:E0B52D* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:E0B7B1* - ID_OUI_FROM_DATABASE=Pace plc - -@@ -69829,9 +70138,15 @@ OUI:E41289* - OUI:E41C4B* - ID_OUI_FROM_DATABASE=V2 TECHNOLOGY, INC. - -+OUI:E41D2D* -+ ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc. -+ - OUI:E41F13* - ID_OUI_FROM_DATABASE=IBM Corp - -+OUI:E42354* -+ ID_OUI_FROM_DATABASE=SHENZHEN FUZHI SOFTWARE TECHNOLOGY CO.,LTD -+ - OUI:E425E7* - ID_OUI_FROM_DATABASE=Apple - -@@ -69961,6 +70276,9 @@ OUI:E48AD5* - OUI:E48B7F* - ID_OUI_FROM_DATABASE=Apple - -+OUI:E48C0F* -+ ID_OUI_FROM_DATABASE=Discovery Insure -+ - OUI:E49069* - ID_OUI_FROM_DATABASE=Rockwell Automation - -@@ -70111,6 +70429,9 @@ OUI:E8150E* - OUI:E817FC* - ID_OUI_FROM_DATABASE=NIFTY Corporation - -+OUI:E81863* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:E82877* - ID_OUI_FROM_DATABASE=TMY Co., Ltd. - -@@ -70249,6 +70570,9 @@ OUI:E8944C* - OUI:E894F6* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:E89606* -+ ID_OUI_FROM_DATABASE=testo Instruments (Shenzhen) Co., Ltd. -+ - OUI:E8995A* - ID_OUI_FROM_DATABASE=PiiGAB, Processinformation i Goteborg AB - -@@ -70396,6 +70720,9 @@ OUI:EC0ED6* - OUI:EC1120* - ID_OUI_FROM_DATABASE=FloDesign Wind Turbine Corporation - -+OUI:EC13B2* -+ ID_OUI_FROM_DATABASE=Netonix -+ - OUI:EC14F6* - ID_OUI_FROM_DATABASE=BioControl AS - -@@ -70729,6 +71056,9 @@ OUI:F03A4B* - OUI:F03A55* - ID_OUI_FROM_DATABASE=Omega Elektronik AS - -+OUI:F03D29* -+ ID_OUI_FROM_DATABASE=Actility -+ - OUI:F03FF8* - ID_OUI_FROM_DATABASE=R L Drake - -@@ -70801,6 +71131,9 @@ OUI:F07BCB* - OUI:F07D68* - ID_OUI_FROM_DATABASE=D-Link Corporation - -+OUI:F07F06* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F07F0C* - ID_OUI_FROM_DATABASE=Leopold Kostal GmbH &Co. KG - -@@ -70843,6 +71176,9 @@ OUI:F09CBB* - OUI:F09CE9* - ID_OUI_FROM_DATABASE=Aerohive Networks Inc - -+OUI:F09E63* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F0A764* - ID_OUI_FROM_DATABASE=GST Co., Ltd. - -@@ -71188,6 +71524,9 @@ OUI:F4B72A* - OUI:F4B7E2* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:F4B85E* -+ ID_OUI_FROM_DATABASE=Texas INstruments -+ - OUI:F4BD7C* - ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD - -@@ -71461,6 +71800,9 @@ OUI:F87B8C* - OUI:F8811A* - ID_OUI_FROM_DATABASE=OVERKIZ - -+OUI:F88479* -+ ID_OUI_FROM_DATABASE=Yaojin Technology(Shenzhen)Co.,Ltd -+ - OUI:F884F2* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -71599,6 +71941,9 @@ OUI:F8E7B5* - OUI:F8E811* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:F8E903* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:F8E968* - ID_OUI_FROM_DATABASE=Egker Kft. - -@@ -71782,6 +72127,9 @@ OUI:FC5B24* - OUI:FC5B26* - ID_OUI_FROM_DATABASE=MikroBits - -+OUI:FC5B39* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:FC6018* - ID_OUI_FROM_DATABASE=Zhejiang Kangtai Electric Co., Ltd. - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 77c727d..a6a2754 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -32403,11 +32403,14 @@ pci:v00001131d00007146sv0000153Bsd00001155* - ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) - - pci:v00001131d00007146sv0000153Bsd00001156* -- ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C) - - pci:v00001131d00007146sv0000153Bsd00001157* - ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) - -+pci:v00001131d00007146sv0000153Bsd00001176* -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C (MK3)) -+ - pci:v00001131d00007146sv00001894sd00000020* - ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) - -@@ -42846,7 +42849,7 @@ pci:v00001425d00005012* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller - - pci:v00001425d00005013* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller - - pci:v00001425d00005014* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller -@@ -42924,7 +42927,7 @@ pci:v00001425d00005412* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller - - pci:v00001425d00005413* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller - - pci:v00001425d00005414* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller -@@ -43002,7 +43005,7 @@ pci:v00001425d00005512* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller - - pci:v00001425d00005513* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller - - pci:v00001425d00005514* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller -@@ -43080,7 +43083,7 @@ pci:v00001425d00005612* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller - - pci:v00001425d00005613* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller - - pci:v00001425d00005614* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller -@@ -43236,7 +43239,7 @@ pci:v00001425d00005812* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005813* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005814* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] -@@ -45887,6 +45890,9 @@ pci:v000014E4d00004359sv00001028sd00000011* - pci:v000014E4d00004359sv0000103Csd0000182C* - ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) - -+pci:v000014E4d00004360* -+ ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter -+ - pci:v000014E4d00004365* - ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n - -@@ -45896,6 +45902,9 @@ pci:v000014E4d00004365sv00001028sd00000016* - pci:v000014E4d000043A0* - ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter - -+pci:v000014E4d000043A9* -+ ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n -+ - pci:v000014E4d000043B1* - ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter - -@@ -47886,7 +47895,10 @@ pci:v000015ADd00000774* - ID_MODEL_FROM_DATABASE=USB1.1 UHCI Controller - - pci:v000015ADd00000778* -- ID_MODEL_FROM_DATABASE=USB3 xHCI Controller -+ ID_MODEL_FROM_DATABASE=USB3 xHCI 0.96 Controller -+ -+pci:v000015ADd00000779* -+ ID_MODEL_FROM_DATABASE=USB3 xHCI 1.0 Controller - - pci:v000015ADd00000790* - ID_MODEL_FROM_DATABASE=PCI bridge -@@ -52490,6 +52502,9 @@ pci:v00001A29* - pci:v00001A29d00004338* - ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC - -+pci:v00001A29d00004E36* -+ ID_MODEL_FROM_DATABASE=NP6 Network Processor -+ - pci:v00001A2B* - ID_VENDOR_FROM_DATABASE=Ascom AG - -@@ -73781,6 +73796,9 @@ pci:v0000D161d00001405* - pci:v0000D161d00001420* - ID_MODEL_FROM_DATABASE=Wildcard TE420 quad-span T1/E1/J1 card 3.3V (PCI-Express) (5th gen) - -+pci:v0000D161d00001820* -+ ID_MODEL_FROM_DATABASE=Wildcard TE820 octal-span T1/E1/J1 card 3.3V (PCI-Express) -+ - pci:v0000D161d00002400* - ID_MODEL_FROM_DATABASE=Wildcard TDM2400P 24-port analog card - -@@ -73820,6 +73838,9 @@ pci:v0000D161d0000800A* - pci:v0000D161d0000800B* - ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card - -+pci:v0000D161d0000800E* -+ ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) -+ - pci:v0000D161d0000B410* - ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 89cd5b1..ed6b2b1 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -524,6 +524,9 @@ usb:v03F0p0317* - usb:v03F0p0324* - ID_MODEL_FROM_DATABASE=SK-2885 keyboard - -+usb:v03F0p034A* -+ ID_MODEL_FROM_DATABASE=Elite Keyboard -+ - usb:v03F0p0401* - ID_MODEL_FROM_DATABASE=ScanJet 5200c - -@@ -767,6 +770,9 @@ usb:v03F0p1317* - usb:v03F0p1327* - ID_MODEL_FROM_DATABASE=iLO Virtual Hub - -+usb:v03F0p134A* -+ ID_MODEL_FROM_DATABASE=Optical Mouse -+ - usb:v03F0p1405* - ID_MODEL_FROM_DATABASE=ScanJet 3670 - -@@ -2336,6 +2342,12 @@ usb:v0403pEF10* - usb:v0403pF070* - ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] - -+usb:v0403pF0C8* -+ ID_MODEL_FROM_DATABASE=SPROG Decoder Programmer -+ -+usb:v0403pF0C9* -+ ID_MODEL_FROM_DATABASE=SPROG-DCC CAN-USB -+ - usb:v0403pF0E9* - ID_MODEL_FROM_DATABASE=Tagsys L-P101 - -@@ -2642,6 +2654,9 @@ usb:v0409p02B4* - usb:v0409p02B6* - ID_MODEL_FROM_DATABASE=Aterm WL300NU-GS 802.11n Wireless Adapter - -+usb:v0409p02BC* -+ ID_MODEL_FROM_DATABASE=Computer Monitor -+ - usb:v0409p0300* - ID_MODEL_FROM_DATABASE=LifeTouch Note - -@@ -5348,6 +5363,9 @@ usb:v0452p0050* - usb:v0452p0051* - ID_MODEL_FROM_DATABASE=Integrated Hub - -+usb:v0452p0100* -+ ID_MODEL_FROM_DATABASE=Control Panel for Leica TCS SP5 -+ - usb:v0453* - ID_VENDOR_FROM_DATABASE=CMD Technology - -@@ -8759,6 +8777,9 @@ usb:v0480pA009* - usb:v0480pA00D* - ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB - -+usb:v0480pB001* -+ ID_MODEL_FROM_DATABASE=Stor.E Partner -+ - usb:v0480pD010* - ID_MODEL_FROM_DATABASE=External Disk 3TB - -@@ -13100,9 +13121,15 @@ usb:v04D8p900A* - usb:v04D8pC001* - ID_MODEL_FROM_DATABASE=PicoLCD 20x4 - -+usb:v04D8pF4B5* -+ ID_MODEL_FROM_DATABASE=SmartScope -+ - usb:v04D8pF8DA* - ID_MODEL_FROM_DATABASE=Hughski Ltd. ColorHug - -+usb:v04D8pF91C* -+ ID_MODEL_FROM_DATABASE=SPROG IIv3 -+ - usb:v04D8pFAFF* - ID_MODEL_FROM_DATABASE=Dangerous Prototypes BusPirate v4 Bootloader mode - -@@ -13118,6 +13145,9 @@ usb:v04D8pFBBA* - usb:v04D8pFBBB* - ID_MODEL_FROM_DATABASE=DiscFerret Magnetic Disc Analyser (active mode) - -+usb:v04D8pFC1E* -+ ID_MODEL_FROM_DATABASE=Bachrus Speedometer Interface -+ - usb:v04D8pFC92* - ID_MODEL_FROM_DATABASE=Open Bench Logic Sniffer - -@@ -14432,6 +14462,9 @@ usb:v04F2p0403* - usb:v04F2p0418* - ID_MODEL_FROM_DATABASE=KU-0418 Tactical Pad - -+usb:v04F2p0618* -+ ID_MODEL_FROM_DATABASE=RG-0618U Wireless HID Receiver & KG-0609 Wireless Keyboard with Touchpad -+ - usb:v04F2p0760* - ID_MODEL_FROM_DATABASE=Acer KU-0760 Keyboard - -@@ -15336,7 +15369,7 @@ usb:v04FCp0171* - ID_MODEL_FROM_DATABASE=SPCA1527A/SPCA1528 SD card camera (Mass Storage mode) - - usb:v04FCp0201* -- ID_MODEL_FROM_DATABASE=RS232C Adapter -+ ID_MODEL_FROM_DATABASE=SPCP825 RS232C Adapter - - usb:v04FCp0232* - ID_MODEL_FROM_DATABASE=Fingerprint -@@ -29036,6 +29069,9 @@ usb:v08E3p0301* - usb:v08E4* - ID_VENDOR_FROM_DATABASE=Pioneer Corp. - -+usb:v08E4p0185* -+ ID_MODEL_FROM_DATABASE=DDJ-WeGO2 -+ - usb:v08E5* - ID_VENDOR_FROM_DATABASE=Litronic - -@@ -33080,6 +33116,9 @@ usb:v0B48p300D* - usb:v0B48p300E* - ID_MODEL_FROM_DATABASE=TT-connect C-2400 - -+usb:v0B48p3014* -+ ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 -+ - usb:v0B49* - ID_VENDOR_FROM_DATABASE=ASCII Corp. - -@@ -34086,7 +34125,7 @@ usb:v0BC2p3101* - ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB - - usb:v0BC2p3312* -- ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] -+ ID_MODEL_FROM_DATABASE=SRD00F2 Expansion Desktop Drive (STBV) - - usb:v0BC2p3320* - ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] -@@ -34109,6 +34148,9 @@ usb:v0BC2p5031* - usb:v0BC2p5070* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk - -+usb:v0BC2p5071* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk -+ - usb:v0BC2p50A1* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk - -@@ -34133,6 +34175,9 @@ usb:v0BC2pA0A4* - usb:v0BC2pAB00* - ID_MODEL_FROM_DATABASE=Slim Portable Drive - -+usb:v0BC2pAB20* -+ ID_MODEL_FROM_DATABASE=Backup Plus Portable Drive -+ - usb:v0BC3* - ID_VENDOR_FROM_DATABASE=IPWireless, Inc. - -@@ -34301,6 +34346,9 @@ usb:v0BDAp0176* - usb:v0BDAp0178* - ID_MODEL_FROM_DATABASE=Mass Storage Device - -+usb:v0BDAp0179* -+ ID_MODEL_FROM_DATABASE=RTL8188ETV Wireless LAN 802.11n Network Adapter -+ - usb:v0BDAp0184* - ID_MODEL_FROM_DATABASE=RTS5182 Card Reader - -@@ -34322,6 +34370,9 @@ usb:v0BDAp2832* - usb:v0BDAp2838* - ID_MODEL_FROM_DATABASE=RTL2838 DVB-T - -+usb:v0BDAp5730* -+ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam -+ - usb:v0BDAp8150* - ID_MODEL_FROM_DATABASE=RTL8150 Fast Ethernet Adapter - -@@ -36012,11 +36063,53 @@ usb:v0CE5p0003* - ID_MODEL_FROM_DATABASE=Matrix - - usb:v0CE9* -- ID_VENDOR_FROM_DATABASE=pico Technology -+ ID_VENDOR_FROM_DATABASE=Pico Technology - - usb:v0CE9p1001* - ID_MODEL_FROM_DATABASE=PicoScope3000 series PC Oscilloscope - -+usb:v0CE9p1007* -+ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope -+ -+usb:v0CE9p1008* -+ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope -+ -+usb:v0CE9p1009* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope -+ -+usb:v0CE9p100E* -+ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope -+ -+usb:v0CE9p1012* -+ ID_MODEL_FROM_DATABASE=PicoScope 3000A series PC Oscilloscope -+ -+usb:v0CE9p1016* -+ ID_MODEL_FROM_DATABASE=PicoScope 2000A series PC Oscilloscope -+ -+usb:v0CE9p1018* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000A series PC Oscilloscope -+ -+usb:v0CE9p1200* -+ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope -+ -+usb:v0CE9p1201* -+ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope -+ -+usb:v0CE9p1202* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope -+ -+usb:v0CE9p1203* -+ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope -+ -+usb:v0CE9p1204* -+ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope -+ -+usb:v0CE9p1211* -+ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope -+ -+usb:v0CE9p1212* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope -+ - usb:v0CF1* - ID_VENDOR_FROM_DATABASE=e-Conn Electronic Co., Ltd - -@@ -36998,6 +37091,9 @@ usb:v0DB0p1020* - usb:v0DB0p1967* - ID_MODEL_FROM_DATABASE=Bluetooth Dongle - -+usb:v0DB0p3713* -+ ID_MODEL_FROM_DATABASE=Primo 73 -+ - usb:v0DB0p3801* - ID_MODEL_FROM_DATABASE=Motorola Bluetooth 2.1+EDR Device - -@@ -37112,6 +37208,9 @@ usb:v0DB7p0002* - usb:v0DBA* - ID_VENDOR_FROM_DATABASE=Digidesign - -+usb:v0DBAp1000* -+ ID_MODEL_FROM_DATABASE=Mbox 1 [Mbox] -+ - usb:v0DBAp3000* - ID_MODEL_FROM_DATABASE=Mbox 2 - -@@ -37913,6 +38012,12 @@ usb:v0E6A* - usb:v0E6Ap0101* - ID_MODEL_FROM_DATABASE=MA100 [USB-UART Bridge IC] - -+usb:v0E6Ap030B* -+ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard (Device Firmware Update mode) -+ -+usb:v0E6Ap030C* -+ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard -+ - usb:v0E6Ap6001* - ID_MODEL_FROM_DATABASE=GEMBIRD Flexible keyboard KB-109F-B-DE - -@@ -39548,6 +39653,12 @@ usb:v1039p0824* - usb:v1039p2140* - ID_MODEL_FROM_DATABASE=dsl+ 1100 duo - -+usb:v103A* -+ ID_VENDOR_FROM_DATABASE=PSA -+ -+usb:v103ApF000* -+ ID_MODEL_FROM_DATABASE=Actia Evo XS -+ - usb:v103D* - ID_VENDOR_FROM_DATABASE=Stanton - -@@ -39692,6 +39803,9 @@ usb:v1050p0110* - usb:v1050p0111* - ID_MODEL_FROM_DATABASE=Yubikey NEO OTP+CCID - -+usb:v1050p0200* -+ ID_MODEL_FROM_DATABASE=U2F Gnubby -+ - usb:v1050p0211* - ID_MODEL_FROM_DATABASE=Gnubby - -@@ -39735,16 +39849,25 @@ usb:v1058p0704* - ID_MODEL_FROM_DATABASE=Passport External HDD - - usb:v1058p070A* -- ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA), My Passport for Mac (WDBAAB), My Passport Essential SE (WDBABM), My Passport SE for Mac (WDBABW) -+ -+usb:v1058p070B* -+ ID_MODEL_FROM_DATABASE=My Passport Elite (WDBAAC) -+ -+usb:v1058p070C* -+ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBAAE) - - usb:v1058p071A* -- ID_MODEL_FROM_DATABASE=My Passport -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA) -+ -+usb:v1058p071D* -+ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBALG) - - usb:v1058p0730* - ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) - - usb:v1058p0740* -- ID_MODEL_FROM_DATABASE=My Passport -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) - - usb:v1058p0741* - ID_MODEL_FROM_DATABASE=My Passport Ultra -@@ -39756,22 +39879,22 @@ usb:v1058p0748* - ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) - - usb:v1058p0810* -- ID_MODEL_FROM_DATABASE=My Passport Ultra -+ ID_MODEL_FROM_DATABASE=My Passport Ultra (WDBZFP) - - usb:v1058p0900* - ID_MODEL_FROM_DATABASE=MyBook Essential External HDD - - usb:v1058p0901* -- ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) - - usb:v1058p0902* -- ID_MODEL_FROM_DATABASE=My Book Pro Edition -+ ID_MODEL_FROM_DATABASE=My Book Pro Edition (WDG1T) - - usb:v1058p0903* - ID_MODEL_FROM_DATABASE=My Book Premium Edition - - usb:v1058p0910* -- ID_MODEL_FROM_DATABASE=MyBook Essential External HDD -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) - - usb:v1058p1001* - ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) -@@ -39786,7 +39909,7 @@ usb:v1058p1021* - ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) - - usb:v1058p1023* -- ID_MODEL_FROM_DATABASE=Elements SE -+ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBABV) - - usb:v1058p1048* - ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) -@@ -39809,11 +39932,23 @@ usb:v1058p1104* - usb:v1058p1105* - ID_MODEL_FROM_DATABASE=My Book Studio II - -+usb:v1058p1110* -+ ID_MODEL_FROM_DATABASE=My Book Essential (WDBAAF), My Book for Mac (WDBAAG) -+ -+usb:v1058p1111* -+ ID_MODEL_FROM_DATABASE=My Book Elite (WDBAAH) -+ -+usb:v1058p1112* -+ ID_MODEL_FROM_DATABASE=My Book Studio (WDBAAJ), My Book Studio LX (WDBACH) -+ - usb:v1058p1123* -- ID_MODEL_FROM_DATABASE=My Book 3.0 -+ ID_MODEL_FROM_DATABASE=My Book 3.0 (WDBABP) -+ -+usb:v1058p1130* -+ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) - - usb:v1058p1140* -- ID_MODEL_FROM_DATABASE=My Book Essential USB3.0 -+ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) - - usb:v1059* - ID_VENDOR_FROM_DATABASE=Giesecke & Devrient GmbH -@@ -42098,6 +42233,12 @@ usb:v132Bp2045* - usb:v132Bp2049* - ID_MODEL_FROM_DATABASE=Magicolor 2490MF - -+usb:v133E* -+ ID_VENDOR_FROM_DATABASE=Kemper Digital GmbH -+ -+usb:v133Ep0815* -+ ID_MODEL_FROM_DATABASE=Virus TI Desktop -+ - usb:v1342* - ID_VENDOR_FROM_DATABASE=Mobility - -@@ -42203,6 +42344,9 @@ usb:v134E* - usb:v1357* - ID_VENDOR_FROM_DATABASE=P&E Microcomputer Systems - -+usb:v1357p0089* -+ ID_MODEL_FROM_DATABASE=OpenSDA - CDC Serial Port -+ - usb:v1357p0503* - ID_MODEL_FROM_DATABASE=USB-ML-12 HCS08/HCS12 Multilink - -@@ -42213,7 +42357,7 @@ usb:v1366* - ID_VENDOR_FROM_DATABASE=SEGGER - - usb:v1366p0101* -- ID_MODEL_FROM_DATABASE=J-Link ARM -+ ID_MODEL_FROM_DATABASE=J-Link PLUS - - usb:v136B* - ID_VENDOR_FROM_DATABASE=STEC -@@ -42311,6 +42455,9 @@ usb:v138Ap003C* - usb:v138Ap003D* - ID_MODEL_FROM_DATABASE=VFS491 - -+usb:v138Ap003F* -+ ID_MODEL_FROM_DATABASE=VFS495 Fingerprint Reader -+ - usb:v138Ap0050* - ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor - -@@ -42647,6 +42794,9 @@ usb:v13D3p5122* - usb:v13D3p5126* - ID_MODEL_FROM_DATABASE=PC Cam - -+usb:v13D3p5130* -+ ID_MODEL_FROM_DATABASE=Integrated Webcam -+ - usb:v13D3p5702* - ID_MODEL_FROM_DATABASE=UVC VGA Webcam - -@@ -43232,6 +43382,9 @@ usb:v1493p0019* - usb:v1493p001A* - ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] - -+usb:v1493p001D* -+ ID_MODEL_FROM_DATABASE=Greentit [Ambit2 R] -+ - usb:v1497* - ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. - -@@ -49640,12 +49793,39 @@ usb:v2478* - usb:v2478p2008* - ID_MODEL_FROM_DATABASE=U209-000-R Serial Port - -+usb:v249C* -+ ID_VENDOR_FROM_DATABASE=M2Tech s.r.l. -+ - usb:v2632* - ID_VENDOR_FROM_DATABASE=TwinMOS - - usb:v2632p3209* - ID_MODEL_FROM_DATABASE=7-in-1 Card Reader - -+usb:v2639* -+ ID_VENDOR_FROM_DATABASE=Xsens -+ -+usb:v2639p0001* -+ ID_MODEL_FROM_DATABASE=MTi-10 IMU -+ -+usb:v2639p0002* -+ ID_MODEL_FROM_DATABASE=MTi-20 VRU -+ -+usb:v2639p0003* -+ ID_MODEL_FROM_DATABASE=MTi-30 AHRS -+ -+usb:v2639p0011* -+ ID_MODEL_FROM_DATABASE=MTi-100 IMU -+ -+usb:v2639p0012* -+ ID_MODEL_FROM_DATABASE=MTi-200 VRU -+ -+usb:v2639p0013* -+ ID_MODEL_FROM_DATABASE=MTi-300 AHRS -+ -+usb:v2639p0017* -+ ID_MODEL_FROM_DATABASE=MTi-G-700 GPS INS -+ - usb:v2650* - ID_VENDOR_FROM_DATABASE=Electronics For Imaging, Inc. [hex] - --- -1.7.9.2 - diff --git a/0007-journal-forget-file-after-encountering-an-error.patch b/0007-journal-forget-file-after-encountering-an-error.patch deleted file mode 100644 index e195e6bf..00000000 --- a/0007-journal-forget-file-after-encountering-an-error.patch +++ /dev/null @@ -1,74 +0,0 @@ -From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 27 Feb 2014 00:11:54 -0500 -Subject: [PATCH] journal: forget file after encountering an error - -If we encounter an inconsistency in a file, let's just -ignore it. Otherwise, after previous patch, we would try, -and fail, to use this file in every invocation of sd_journal_next -or sd_journal_previous that happens afterwards. ---- - src/journal/sd-journal.c | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) - -diff --git src/journal/sd-journal.c src/journal/sd-journal.c -index ef455e9..b54bc21 100644 ---- src/journal/sd-journal.c -+++ src/journal/sd-journal.c -@@ -51,6 +51,8 @@ - - #define DEFAULT_DATA_THRESHOLD (64*1024) - -+static void remove_file_real(sd_journal *j, JournalFile *f); -+ - static bool journal_pid_changed(sd_journal *j) { - assert(j); - -@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { - r = next_beyond_location(j, f, direction, &o, &p); - if (r < 0) { - log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); -+ remove_file_real(j, f); - continue; - } else if (r == 0) - continue; -@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { - } - - static int remove_file(sd_journal *j, const char *prefix, const char *filename) { -- char *path; -+ _cleanup_free_ char *path; - JournalFile *f; - - assert(j); -@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - return -ENOMEM; - - f = hashmap_get(j->files, path); -- free(path); - if (!f) - return 0; - -+ remove_file_real(j, f); -+ return 0; -+} -+ -+static void remove_file_real(sd_journal *j, JournalFile *f) { -+ assert(j); -+ assert(f); -+ - hashmap_remove(j->files, f->path); - - log_debug("File %s removed.", f->path); -@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - journal_file_close(f); - - j->current_invalidate_counter ++; -- -- return 0; - } - - static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { --- -1.7.9.2 - diff --git a/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch b/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch deleted file mode 100644 index f2409242..00000000 --- a/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 332076b45b8a78f018ade2dfdc7e4279a56d49cc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Nov 2014 23:10:21 +0100 -Subject: [PATCH] journald: also check journal file size to deduce if it is - empty - ---- - src/journal/journal-vacuum.c | 22 +++++++++++++++------- - 1 file changed, 15 insertions(+), 7 deletions(-) - -diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c -index dbf5d22..d141fe0 100644 ---- src/journal/journal-vacuum.c -+++ src/journal/journal-vacuum.c -@@ -121,22 +121,30 @@ static void patch_realtime( - } - - static int journal_file_empty(int dir_fd, const char *name) { -- int r; -- le64_t n_entries; - _cleanup_close_ int fd; -+ struct stat st; -+ le64_t n_entries; -+ ssize_t n; - - fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd < 0) - return -errno; - -- if (lseek(fd, offsetof(Header, n_entries), SEEK_SET) < 0) -+ if (fstat(fd, &st) < 0) - return -errno; - -- r = read(fd, &n_entries, sizeof(n_entries)); -- if (r != sizeof(n_entries)) -- return r == 0 ? -EINVAL : -errno; -+ /* If an offline file doesn't even have a header we consider it empty */ -+ if (st.st_size < (off_t) sizeof(Header)) -+ return 1; -+ -+ /* If the number of entries is empty, we consider it empty, too */ -+ n = pread(fd, &n_entries, sizeof(n_entries), offsetof(Header, n_entries)); -+ if (n < 0) -+ return -errno; -+ if (n != sizeof(n_entries)) -+ return -EIO; - -- return le64toh(n_entries) == 0; -+ return le64toh(n_entries) <= 0; - } - - int journal_directory_vacuum( --- -1.7.9.2 - diff --git a/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch b/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch deleted file mode 100644 index 54b97960..00000000 --- a/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 5e8b767df6e18444d5aff2987b5e5603361ed528 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Aug 2014 18:53:05 +0200 -Subject: [PATCH] journald: also increase the SendBuffer of /dev/log to 8M - -http://lists.freedesktop.org/archives/systemd-devel/2014-August/021825.html ---- - units/systemd-journald.socket | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- units/systemd-journald.socket -+++ units/systemd-journald.socket 2014-08-22 14:31:11.022236471 +0000 -@@ -23,4 +23,10 @@ ListenDatagram=/dev/log - SocketMode=0666 - PassCredentials=yes - PassSecurity=yes -+ -+# Increase both the send and receive buffer, so that things don't -+# block early. Note that journald internally uses the this socket both -+# for receiving syslog messages, and for forwarding them to any other -+# syslog, hence we bump both values. - ReceiveBuffer=8M -+SendBuffer=8M diff --git a/0007-keyboard-add-Plantronics-.Audio-mute-button.patch b/0007-keyboard-add-Plantronics-.Audio-mute-button.patch deleted file mode 100644 index 53c701bd..00000000 --- a/0007-keyboard-add-Plantronics-.Audio-mute-button.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9e3dbf6b2b99d0e16989d9cedb458729db5a60c3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 1 Jun 2014 14:01:23 -0400 -Subject: [PATCH] keyboard: add Plantronics .Audio mute button - -https://bugs.freedesktop.org/show_bug.cgi?id=79495 ---- - hwdb/60-keyboard.hwdb | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 05e6a04..d053766 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -866,6 +866,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* - KEYBOARD_KEY_f3=volumeup - - ########################################################### -+# Plantronics -+########################################################### -+ -+# Plantronics .Audio 626 DSP -+keyboard:usb:v047fpC006* -+ KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute -+ -+########################################################### - # Quanta - ########################################################### - --- -1.7.9.2 - diff --git a/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch b/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch deleted file mode 100644 index 15857575..00000000 --- a/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9dedfe7f667a8cb22ba85d0223556c69c4fd0e9a Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 09:20:46 +0200 -Subject: [PATCH] libudev: monitor - warn if we fail to request SO_PASSCRED - -The function still succeeds, so there is no functional change. This fixes CID #996288. ---- - src/libudev/libudev-monitor.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c -index 186e5e1..59698b8 100644 ---- src/libudev/libudev-monitor.c -+++ src/libudev/libudev-monitor.c -@@ -412,7 +412,10 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor) - } - - /* enable receiving of sender credentials */ -- setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ if (err < 0) -+ udev_err(udev_monitor->udev, "setting SO_PASSCRED failed: %m\n"); -+ - return 0; - } - --- -1.7.9.2 - diff --git a/0007-logind-fix-Display-property-of-user-objects.patch b/0007-logind-fix-Display-property-of-user-objects.patch deleted file mode 100644 index 8fbbbeac..00000000 --- a/0007-logind-fix-Display-property-of-user-objects.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 952d32609f9bceee444fa2690afb4d28539b4b92 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 19 May 2014 09:03:20 +0900 -Subject: [PATCH] logind: fix Display property of user objects - -When we dropped support for creating a per-user to the "main" X11 -display we stopped returning useful data in the "Display" user property. -With this change this is fixed and we again expose an appropriate -(graphical session) in the property that is useful as the "main" one, if -one is needed. ---- - src/login/logind-session.c | 8 ++++++-- - src/login/logind-session.h | 2 ++ - src/login/logind-user-dbus.c | 2 +- - src/login/logind-user.c | 37 +++++++++++++++++++++++++++++++++++++ - src/login/logind-user.h | 1 + - 5 files changed, 47 insertions(+), 3 deletions(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 4fb229e..9a54101 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -545,6 +545,8 @@ int session_start(Session *s) { - - s->started = true; - -+ user_elect_display(s->user); -+ - /* Save data */ - session_save(s); - user_save(s->user); -@@ -553,7 +555,7 @@ int session_start(Session *s) { - - /* Send signals */ - session_send_signal(s, true); -- user_send_changed(s->user, "Sessions", NULL); -+ user_send_changed(s->user, "Sessions", "Display", NULL); - if (s->seat) { - if (s->seat->active == s) - seat_send_changed(s->seat, "Sessions", "ActiveSession", NULL); -@@ -612,6 +614,8 @@ int session_stop(Session *s, bool force) { - - s->stopping = true; - -+ user_elect_display(s->user); -+ - session_save(s); - user_save(s->user); - -@@ -660,7 +664,7 @@ int session_finalize(Session *s) { - } - - user_save(s->user); -- user_send_changed(s->user, "Sessions", NULL); -+ user_send_changed(s->user, "Sessions", "Display", NULL); - - return r; - } -diff --git src/login/logind-session.h src/login/logind-session.h -index f78f309..81957df 100644 ---- src/login/logind-session.h -+++ src/login/logind-session.h -@@ -60,6 +60,8 @@ typedef enum SessionType { - _SESSION_TYPE_INVALID = -1 - } SessionType; - -+#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR) -+ - enum KillWho { - KILL_LEADER, - KILL_ALL, -diff --git src/login/logind-user-dbus.c src/login/logind-user-dbus.c -index 6266ccb..51793f6 100644 ---- src/login/logind-user-dbus.c -+++ src/login/logind-user-dbus.c -@@ -220,7 +220,7 @@ const sd_bus_vtable user_vtable[] = { - SD_BUS_PROPERTY("RuntimePath", "s", NULL, offsetof(User, runtime_path), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("Service", "s", NULL, offsetof(User, service), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("Slice", "s", NULL, offsetof(User, slice), SD_BUS_VTABLE_PROPERTY_CONST), -- SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_CONST), -+ SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("State", "s", property_get_state, 0, 0), - SD_BUS_PROPERTY("Sessions", "a(so)", property_get_sessions, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("IdleHint", "b", property_get_idle_hint, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), -diff --git src/login/logind-user.c src/login/logind-user.c -index 5fffa65..fdbccb3 100644 ---- src/login/logind-user.c -+++ src/login/logind-user.c -@@ -713,6 +713,43 @@ int user_kill(User *u, int signo) { - return manager_kill_unit(u->manager, u->slice, KILL_ALL, signo, NULL); - } - -+void user_elect_display(User *u) { -+ Session *graphical = NULL, *text = NULL, *s; -+ -+ assert(u); -+ -+ /* This elects a primary session for each user, which we call -+ * the "display". We try to keep the assignment stable, but we -+ * "upgrade" to better choices. */ -+ -+ LIST_FOREACH(sessions_by_user, s, u->sessions) { -+ -+ if (s->class != SESSION_USER) -+ continue; -+ -+ if (s->stopping) -+ continue; -+ -+ if (SESSION_TYPE_IS_GRAPHICAL(s->type)) -+ graphical = s; -+ else -+ text = s; -+ } -+ -+ if (graphical && -+ (!u->display || -+ u->display->class != SESSION_USER || -+ u->display->stopping || -+ !SESSION_TYPE_IS_GRAPHICAL(u->display->type))) -+ u->display = graphical; -+ -+ if (text && -+ (!u->display || -+ u->display->class != SESSION_USER || -+ u->display->stopping)) -+ u->display = text; -+} -+ - static const char* const user_state_table[_USER_STATE_MAX] = { - [USER_OFFLINE] = "offline", - [USER_OPENING] = "opening", -diff --git src/login/logind-user.h src/login/logind-user.h -index f237d2a..4e0568f 100644 ---- src/login/logind-user.h -+++ src/login/logind-user.h -@@ -80,6 +80,7 @@ int user_save(User *u); - int user_load(User *u); - int user_kill(User *u, int signo); - int user_check_linger_file(User *u); -+void user_elect_display(User *u); - - extern const sd_bus_vtable user_vtable[]; - int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); --- -1.7.9.2 - diff --git a/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch b/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch deleted file mode 100644 index ee54ea31..00000000 --- a/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 332bc31992acffc6f32e194c0122e01607bd0e27 Mon Sep 17 00:00:00 2001 -From: Alison Chaiken -Date: Fri, 16 May 2014 09:25:53 +0200 -Subject: [PATCH] man: readahead: fix cmdline switch inconsistency between - readahead.c and docs - -Source code has "files-max" and XML has --max-files. ---- - man/systemd-readahead-replay.service.xml | 2 +- - src/readahead/readahead.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd-readahead-replay.service.xml man/systemd-readahead-replay.service.xml -index 67b41f5..669fe78 100644 ---- man/systemd-readahead-replay.service.xml -+++ man/systemd-readahead-replay.service.xml -@@ -117,7 +117,7 @@ - - - -- -+ - - Maximum number of - files to read ahead. Only valid -diff --git src/readahead/readahead.c src/readahead/readahead.c -index d6729ec..73cf538 100644 ---- src/readahead/readahead.c -+++ src/readahead/readahead.c -@@ -42,7 +42,7 @@ static int help(void) { - "Collect read-ahead data on early boot.\n\n" - " -h --help Show this help\n" - " --version Show package version\n" -- " --max-files=INT Maximum number of files to read ahead\n" -+ " --files-max=INT Maximum number of files to read ahead\n" - " --file-size-max=BYTES Maximum size of files to read ahead\n" - " --timeout=USEC Maximum time to spend collecting data\n\n\n", - program_invocation_short_name); --- -1.7.9.2 - diff --git a/0007-networkd-fix-typo.patch b/0007-networkd-fix-typo.patch deleted file mode 100644 index 8bd67322..00000000 --- a/0007-networkd-fix-typo.patch +++ /dev/null @@ -1,26 +0,0 @@ -From eed0eee85ac34abd81cd9e81fdb6a19f47b6c8a3 Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Fri, 14 Mar 2014 18:19:29 +0100 -Subject: [PATCH] networkd: fix typo - -It's HAVE_SPLIT_USR not HAVE_SPLIT_USER ---- - src/network/networkd-manager.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/network/networkd-manager.c src/network/networkd-manager.c -index c730e71..ea414b1 100644 ---- src/network/networkd-manager.c -+++ src/network/networkd-manager.c -@@ -33,7 +33,7 @@ const char* const network_dirs[] = { - "/etc/systemd/network", - "/run/systemd/network", - "/usr/lib/systemd/network", --#ifdef HAVE_SPLIT_USER -+#ifdef HAVE_SPLIT_USR - "/lib/systemd/network", - #endif - NULL}; --- -1.7.9.2 - diff --git a/0007-po-add-German-translation.patch b/0007-po-add-German-translation.patch deleted file mode 100644 index d653c8ff..00000000 --- a/0007-po-add-German-translation.patch +++ /dev/null @@ -1,448 +0,0 @@ -From 351e57652a7d9a51f9064c089794d13801eaee73 Mon Sep 17 00:00:00 2001 -From: Benjamin Steinwender -Date: Sun, 8 Jun 2014 18:39:50 +0200 -Subject: [PATCH] po: add German translation - -https://bugs.freedesktop.org/show_bug.cgi?id=79430 ---- - po/LINGUAS | 1 + - po/de.po | 418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 419 insertions(+) - create mode 100644 po/de.po - -diff --git po/LINGUAS po/LINGUAS -index 820ca82..2cb0f30 100644 ---- po/LINGUAS -+++ po/LINGUAS -@@ -1,3 +1,4 @@ -+de - el - fr - it -diff --git po/de.po po/de.po -new file mode 100644 -index 0000000..a41e33d ---- /dev/null -+++ po/de.po -@@ -0,0 +1,418 @@ -+# German translation for systemd. -+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER -+# This file is distributed under the same license as the systemd package. -+# Christian Kirbach , 2014. -+# Benjamin Steinwender , 2014. -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd master\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?" -+"product=systemd&keywords=I18N+L10N&component=general\n" -+"POT-Creation-Date: 2014-06-02 10:25+0000\n" -+"PO-Revision-Date: 2014-06-02 22:43+0100\n" -+"Last-Translator: Benjamin Steinwender \n" -+"Language-Team: German \n" -+"Language: de\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Poedit 1.6.5\n" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Set host name" -+msgstr "Rechnername festlegen" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Legitimierung ist zum Festlegen des lokalen Rechnernamens notwendig" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 -+msgid "Set static host name" -+msgstr "Statischen Rechnernamen festlegen" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Authentifizierung ist erforderlich, um den statisch geänderten, lokalen " -+"Rechnernamen, sowie den beschönigten Rechnernamen festzulegen." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Maschinen-Information festlegen" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Authentication is required to set local machine information." -+msgstr "" -+"Legitimierung ist zum Festlegen der lokalen Maschinen-Information " -+"erforderlich." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 -+msgid "Set system locale" -+msgstr "Die lokale Sprachumgebung festlegen" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "" -+"Legitimierung ist zum Festlegen der systemweiten Spracheinstellungen " -+"erforderlich." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Tastatureinstellungen des Systems festlegen" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "" -+"Legitimierung ist zum Festlegen der Tastatureinstellungen des Systems " -+"erforderlich." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow applications to inhibit system shutdown" -+msgstr "Anwendungen dürfen das Herunterfahren des Systems unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:2 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"shutdown." -+msgstr "" -+"Legitimierung ist notwendig, um Anwendungen das Herunterfahren des Systems " -+"zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:3 -+msgid "Allow applications to delay system shutdown" -+msgstr "Anwendungen dürfen das Herunterfahren des Systems verzögern" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:4 -+msgid "" -+"Authentication is required to allow an application to delay system shutdown." -+msgstr "" -+"Legitimierung ist notwendig, um Anwendungen das Verzögern des Herunterfahren " -+"des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:5 -+msgid "Allow applications to inhibit system sleep" -+msgstr "Anwendungen dürfen den Bereitschaftsmodus unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow an application to inhibit system sleep." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden des " -+"Bereitschaftsmodus zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:7 -+msgid "Allow applications to delay system sleep" -+msgstr "Anwendungen dürfen den Bereitschaftsmodus verzögern" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow an application to delay system sleep." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Verzögern des " -+"Bereitschaftsmodus zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:9 -+msgid "Allow applications to inhibit automatic system suspend" -+msgstr "Anwendungen dürfen den automatischen Bereitschaftsmodus unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:10 -+msgid "" -+"Authentication is required to allow an application to inhibit automatic " -+"system suspend." -+msgstr "" -+"Legitimierung ist notwendig, um Anwendungen das Unterbinden des " -+"automatischen Bereitschaftsmodus zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:11 -+msgid "Allow applications to inhibit system handling of the power key" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Ein-/Ausschaltknopfs des Systems " -+"unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:12 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the power key." -+msgstr "" -+"Legitmierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung " -+"der Ein-/Ausschaltknopfs des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:13 -+msgid "Allow applications to inhibit system handling of the suspend key" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Bereitschaftsknopfs des Systems " -+"unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:14 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the suspend key." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " -+"Auswertung des Bereitschaftsknopfes des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:15 -+msgid "Allow applications to inhibit system handling of the hibernate key" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Knopfs für den Ruhezustand unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:16 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the hibernate key." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " -+"Auswertung des Knopfs für den Ruhezustand zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:17 -+msgid "Allow applications to inhibit system handling of the lid switch" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Notebookdeckelschalters unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:18 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the lid switch." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " -+"Auswertung des Notebookdeckelschalters des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:19 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Nicht angemeldete Benutzer dürfen Programme ausführen" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:20 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs." -+msgstr "" -+"Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme " -+"ausführen dürfen." -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:21 -+msgid "Allow attaching devices to seats" -+msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben" -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:22 -+msgid "Authentication is required for attaching a device to a seat." -+msgstr "" -+"Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation " -+"notwendig." -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:23 -+msgid "Flush device to seat attachments" -+msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte" -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:24 -+msgid "" -+"Authentication is required for resetting how devices are attached to seats." -+msgstr "" -+"Legitimierung ist zum Zurücksetzen notwendig, wie Geräte an eine " -+"Arbeitsstation angeschlossen werden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:25 -+msgid "Power off the system" -+msgstr "Das System ausschalten" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:26 -+msgid "Authentication is required for powering off the system." -+msgstr "Legitimierung ist zum Ausschalten des Systems notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:27 -+msgid "Power off the system while other users are logged in" -+msgstr "Das System herunter fahren, während andere Benutzer angemeldet sind" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:28 -+msgid "" -+"Authentication is required for powering off the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Herunterfahren des Systems notwendig, während andere " -+"Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:29 -+msgid "Power off the system while an application asked to inhibit it" -+msgstr "" -+"Das System ausschalten, während eine Anwendung anfordert es zu unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:30 -+msgid "" -+"Authentication is required for powering off the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Ausschalten des Systems notwendig, während eine " -+"Anwendung anfordert es zu unterbinden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:31 -+msgid "Reboot the system" -+msgstr "Das System neu starten" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:32 -+msgid "Authentication is required for rebooting the system." -+msgstr "Legitimierung ist zum Neustart des Systems notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:33 -+msgid "Reboot the system while other users are logged in" -+msgstr "Das Systems neu starten, während andere Benutzer angemeldet sind" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:34 -+msgid "" -+"Authentication is required for rebooting the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Neustart des Systems notwendig, während andere " -+"Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:35 -+msgid "Reboot the system while an application asked to inhibit it" -+msgstr "" -+"Das System neu starten, während eine Anwendung anfordert es zu unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:36 -+msgid "" -+"Authentication is required for rebooting the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Neustart des Systems notwendig, während eine Anwendung " -+"anforderte es zu unterbinden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:37 -+msgid "Suspend the system" -+msgstr "Das System in Bereitschaft versetzen" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:38 -+msgid "Authentication is required for suspending the system." -+msgstr "Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:39 -+msgid "Suspend the system while other users are logged in" -+msgstr "" -+"Das System in Bereitschaft versetzen, während andere Benutzer angemeldet " -+"sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:40 -+msgid "" -+"Authentication is required for suspending the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " -+"während andere Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:41 -+msgid "Suspend the system while an application asked to inhibit it" -+msgstr "" -+"Das System in Bereitschaft versetzen, während eine Anwendung anfordert dies " -+"zu unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:42 -+msgid "" -+"Authentication is required for suspending the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " -+"während eine Anwendung anfordert dies zu unterbinden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:43 -+msgid "Hibernate the system" -+msgstr "Den Ruhezustand des Systems aktivieren" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:44 -+msgid "Authentication is required for hibernating the system." -+msgstr "" -+"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:45 -+msgid "Hibernate the system while other users are logged in" -+msgstr "" -+"Den Ruhezustand des Systems aktivieren, während andere Benutzer angemeldet " -+"sind" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:46 -+msgid "" -+"Authentication is required for hibernating the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, " -+"während andere Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:47 -+msgid "Hibernate the system while an application asked to inhibit it" -+msgstr "" -+"Das System in den Ruhezustand versetzen, während eine Anwendung wünscht dies " -+"zu verhindern" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:48 -+msgid "" -+"Authentication is required for hibernating the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Versetzen des System in den Ruhezustand notwendig, " -+"während eine Anwendung wünscht dies zu verhindern." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 -+msgid "Set system time" -+msgstr "Die Systemzeit festlegen" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 -+msgid "Authentication is required to set the system time." -+msgstr "Legitimierung ist zum Festlegen der Systemzeit notwendig." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Set system timezone" -+msgstr "Die Systemzeitzone festlegen" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Legitimierung ist zum Festlegen der Systemzeitzone notwendig." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Echtzeituhr auf lokale Zeitzone oder UTC setzen" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "" -+"Legitimierung ist notwendig zum Festlegen, ob die Echtzeituhr auf lokale " -+"Zeitzone oder UTC eingestellt ist." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Turn network time synchronization on or off" -+msgstr "Netzwerkzeitabgeich ein- oder ausschalten" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein " -+"soll, erforderlich." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 -+msgid "Send passphrase back to system" -+msgstr "Passphrase zurück an das System senden" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 -+msgid "" -+"Authentication is required to send the entered passphrase back to the system." -+msgstr "" -+"Legitimierung ist zum Senden des eingegebenen Kennworts zurück an das System " -+"notwendig." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -+msgid "Privileged system and service manager access" -+msgstr "Privilegierter Zugriff auf die System- und Dienstverwaltung" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -+msgid "Authentication is required to access the system and service manager." -+msgstr "" -+"Legitimierung ist notwendig für den Zugriff auf die System- und " -+"Dienstverwaltung." --- -1.7.9.2 - diff --git a/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch b/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch deleted file mode 100644 index ee4c169a..00000000 --- a/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 75145780813957ecbe6835f2c8bc20113a3605d2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 25 Mar 2014 00:01:51 +0100 -Subject: [PATCH] sd-event: don't accidentally turn of watchdog timer event if - we determine 0 - ---- - src/libsystemd/sd-event/sd-event.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index d6a3d1c..4aabec1 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -2087,6 +2087,11 @@ static int arm_watchdog(sd_event *e) { - - timespec_store(&its.it_value, t); - -+ /* Make sure we never set the watchdog to 0, which tells the -+ * kernel to disable it. */ -+ if (its.it_value.tv_sec == 0 && its.it_value.tv_nsec == 0) -+ its.it_value.tv_nsec = 1; -+ - r = timerfd_settime(e->watchdog_fd, TFD_TIMER_ABSTIME, &its, NULL); - if (r < 0) - return -errno; --- -1.7.9.2 - diff --git a/0007-service-flush-status-text-and-errno-values-each-time.patch b/0007-service-flush-status-text-and-errno-values-each-time.patch deleted file mode 100644 index 7dbe5a89..00000000 --- a/0007-service-flush-status-text-and-errno-values-each-time.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8cfdb077b8e3da1c47fc1d735d051f21f33144c1 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 17:33:46 +0200 -Subject: [PATCH] service: flush status text and errno values each time a - service is started - -We shouldn't show status texts from previous service starts ---- - src/core/service.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git src/core/service.c src/core/service.c -index d5aff99..0f542ed 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -1699,6 +1699,10 @@ static int service_start(Unit *u) { - s->main_pid_alien = false; - s->forbid_restart = false; - -+ free(s->status_text); -+ s->status_text = NULL; -+ s->status_errno = 0; -+ - service_enter_start_pre(s); - return 0; - } --- -1.7.9.2 - diff --git a/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch b/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch deleted file mode 100644 index a161a1c4..00000000 --- a/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e95c98378ac2d34df864de4a9b785fd17defb77b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 25 Oct 2014 15:15:28 -0400 -Subject: [PATCH] systemctl: do not ignore errors in symlink removal - -On an ro fs, systemctl disable ... would fail silently. ---- - src/shared/install.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/install.c src/shared/install.c -index 0d7c30e..035b44c 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -1679,7 +1679,7 @@ int unit_file_disable( - r = install_context_mark_for_removal(&c, &paths, &remove_symlinks_to, config_path, root_dir); - - q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, files); -- if (r == 0) -+ if (r >= 0) - r = q; - - return r; --- -1.7.9.2 - diff --git a/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch b/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch deleted file mode 100644 index a1046c39..00000000 --- a/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8ebf02d6f382ce1ac7e0d44a713b8795a07b08cd Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 30 Jun 2014 21:44:05 +0200 -Subject: [PATCH] units: skip mounting /tmp if it is a symlink - -We shouldn't get confused if people have symlinked /tmp somewhere, so -let's simply skip the mount then. ---- - units/tmp.mount | 1 + - 1 file changed, 1 insertion(+) - -diff --git units/tmp.mount units/tmp.mount -index 99a3ba3..00a0d28 100644 ---- units/tmp.mount -+++ units/tmp.mount -@@ -9,6 +9,7 @@ - Description=Temporary Directory - Documentation=man:hier(7) - Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems -+ConditionPathIsSymbolicLink=!/tmp - DefaultDependencies=no - Conflicts=umount.target - Before=local-fs.target umount.target --- -1.7.9.2 - diff --git a/0008-Reset-signal-mask-on-re-exec-to-init.patch b/0008-Reset-signal-mask-on-re-exec-to-init.patch deleted file mode 100644 index 9fe7d1ea..00000000 --- a/0008-Reset-signal-mask-on-re-exec-to-init.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 5a85ca1cb622fda4a39c8a6f00dccea7f8a1e82a Mon Sep 17 00:00:00 2001 -From: Ruediger Oertel -Date: Fri, 13 Jun 2014 16:41:06 +0200 -Subject: [PATCH] Reset signal-mask on re-exec to init=.. - -Process 1 (aka init) needs to be started with an empty signal mask. -That includes the process 1 that's started after the initrd is finished. -When the initrd is using systemd (as it does with dracut based initrds) -then it is systemd that calls the real init. Normally this is systemd -again, except when the user uses for instance "init=/bin/bash" on the -kernel command line. ---- - src/core/main.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git src/core/main.c src/core/main.c -index 3aac5d1..3e57f07 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1843,6 +1843,7 @@ finish: - if (reexecute) { - const char **args; - unsigned i, args_size; -+ sigset_t ss, o_ss; - - /* Close and disarm the watchdog, so that the new - * instance can reinitialize it, but doesn't get -@@ -1926,6 +1927,11 @@ finish: - args[i++] = NULL; - assert(i <= args_size); - -+ /* reenable any blocked signals, especially important -+ * if we switch from initial ramdisk to init=... */ -+ sigemptyset(&ss); -+ sigprocmask(SIG_SETMASK, &ss, &o_ss); -+ - if (switch_root_init) { - args[0] = switch_root_init; - execv(args[0], (char* const*) args); -@@ -1944,6 +1950,8 @@ finish: - log_error("Failed to execute /bin/sh, giving up: %m"); - } else - log_warning("Failed to execute /sbin/init, giving up: %m"); -+ -+ sigprocmask(SIG_SETMASK, &o_ss, NULL); - } - - if (arg_serialization) { --- -1.7.9.2 - diff --git a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch deleted file mode 100644 index 25994e95..00000000 --- a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 1ae383a8a3ae4824453e297352fda603d2d3fd5e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 25 Feb 2014 21:26:31 -0500 -Subject: [PATCH] Use /var/run/dbus/system_bus_socket for the D-Bus socket - ---- - man/systemd-bus-proxyd@.service.xml | 2 +- - src/shared/def.h | 2 +- - units/systemd-bus-proxyd.socket | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git man/systemd-bus-proxyd@.service.xml man/systemd-bus-proxyd@.service.xml -index 75a3c8b..3a5930d 100644 ---- man/systemd-bus-proxyd@.service.xml -+++ man/systemd-bus-proxyd@.service.xml -@@ -59,7 +59,7 @@ along with systemd; If not, see . - systemd-bus-proxyd.socket will launch - systemd-bus-proxyd@.service for connections - to the classic D-Bus socket in -- /run/dbus/system_bus_socket. -+ /var/run/dbus/system_bus_socket. - - systemd-bus-proxyd@.service is launched - for an existing D-Bus connection and will use -diff --git src/shared/def.h src/shared/def.h -index 7777756..aa489d8 100644 ---- src/shared/def.h -+++ src/shared/def.h -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS -diff --git units/systemd-bus-proxyd.socket units/systemd-bus-proxyd.socket -index 406e15b..6c42d38 100644 ---- units/systemd-bus-proxyd.socket -+++ units/systemd-bus-proxyd.socket -@@ -9,5 +9,5 @@ - Description=Legacy D-Bus Protocol Compatibility Socket - - [Socket] --ListenStream=/run/dbus/system_bus_socket -+ListenStream=/var/run/dbus/system_bus_socket - Accept=yes --- -1.7.9.2 - diff --git a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch deleted file mode 100644 index 8dfd01bc..00000000 --- a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +++ /dev/null @@ -1,102 +0,0 @@ -From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 02:19:42 +0100 -Subject: [PATCH] core: correctly unregister PIDs from PID hashtables - ---- - src/core/unit.c | 42 ++++++++++++++++++------------------------ - 1 file changed, 18 insertions(+), 24 deletions(-) - -diff --git src/core/unit.c src/core/unit.c -index 2437ee3..85250ca 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { - /* Watch a specific PID. We only support one or two units - * watching each PID for now, not more. */ - -- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); -+ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); -+ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { - set_remove(u->pids, LONG_TO_PTR(pid)); - } - --static int watch_pids_in_path(Unit *u, const char *path) { -+void unit_unwatch_all_pids(Unit *u) { -+ assert(u); -+ -+ while (!set_isempty(u->pids)) -+ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); -+ -+ set_free(u->pids); -+ u->pids = NULL; -+} -+ -+static int unit_watch_pids_in_path(Unit *u, const char *path) { - _cleanup_closedir_ DIR *d = NULL; - _cleanup_fclose_ FILE *f = NULL; - int ret = 0, r; -@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { - if (!p) - return -ENOMEM; - -- r = watch_pids_in_path(u, p); -+ r = unit_watch_pids_in_path(u, p); - if (r < 0 && ret >= 0) - ret = r; - } -@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { - return ret; - } - -- - int unit_watch_all_pids(Unit *u) { - assert(u); - -- if (!u->cgroup_path) -- return -ENOENT; -- - /* Adds all PIDs from our cgroup to the set of PIDs we watch */ - -- return watch_pids_in_path(u, u->cgroup_path); --} -- --void unit_unwatch_all_pids(Unit *u) { -- Iterator i; -- void *e; -- -- assert(u); -- -- SET_FOREACH(e, u->pids, i) { -- hashmap_remove_value(u->manager->watch_pids1, e, u); -- hashmap_remove_value(u->manager->watch_pids2, e, u); -- } -+ if (!u->cgroup_path) -+ return -ENOENT; - -- set_free(u->pids); -- u->pids = NULL; -+ return unit_watch_pids_in_path(u, u->cgroup_path); - } - - void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { -@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { - continue; - - if (!pid_is_unwaited(pid)) -- set_remove(u->pids, e); -+ unit_unwatch_pid(u, pid); - } - } - --- -1.7.9.2 - diff --git a/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch b/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch deleted file mode 100644 index 1cc429ce..00000000 --- a/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch +++ /dev/null @@ -1,31 +0,0 @@ -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/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 9c554056..00000000 --- a/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,104 +0,0 @@ -From de68938a2cb3ab535ebd9198723a651753c1a1df Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Mon, 8 Sep 2014 05:06:18 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 77 ++++++++++++++++++++++++++++++++- - 1 file changed, 76 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 9f3136a..14aee74 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -184,7 +184,7 @@ bluetooth:v003B* - ID_VENDOR_FROM_DATABASE=Gennum Corporation - - bluetooth:v003C* -- ID_VENDOR_FROM_DATABASE=Research In Motion -+ ID_VENDOR_FROM_DATABASE=BlackBerry Limited (formerly Research In Motion) - - bluetooth:v003D* - ID_VENDOR_FROM_DATABASE=IPextreme, Inc. -@@ -1073,3 +1073,78 @@ bluetooth:v0162* - - bluetooth:v0163* - ID_VENDOR_FROM_DATABASE=PCH International -+ -+bluetooth:v0164* -+ ID_VENDOR_FROM_DATABASE=Qingdao Yeelink Information Technology Co., Ltd. -+ -+bluetooth:v0165* -+ ID_VENDOR_FROM_DATABASE=Milwaukee Tool (formerly Milwaukee Electric Tools) -+ -+bluetooth:v0166* -+ ID_VENDOR_FROM_DATABASE=MISHIK Pte Ltd -+ -+bluetooth:v0167* -+ ID_VENDOR_FROM_DATABASE=Bayer HealthCare -+ -+bluetooth:v0168* -+ ID_VENDOR_FROM_DATABASE=Spicebox LLC -+ -+bluetooth:v0169* -+ ID_VENDOR_FROM_DATABASE=emberlight -+ -+bluetooth:v016A* -+ ID_VENDOR_FROM_DATABASE=Cooper-Atkins Corporation -+ -+bluetooth:v016B* -+ ID_VENDOR_FROM_DATABASE=Qblinks -+ -+bluetooth:v016C* -+ ID_VENDOR_FROM_DATABASE=MYSPHERA -+ -+bluetooth:v016D* -+ ID_VENDOR_FROM_DATABASE=LifeScan Inc -+ -+bluetooth:v016E* -+ ID_VENDOR_FROM_DATABASE=Volantic AB -+ -+bluetooth:v016F* -+ ID_VENDOR_FROM_DATABASE=Podo Labs, Inc -+ -+bluetooth:v0170* -+ ID_VENDOR_FROM_DATABASE=Roche Diabetes Care AG -+ -+bluetooth:v0171* -+ ID_VENDOR_FROM_DATABASE=Amazon Fulfillment Service -+ -+bluetooth:v0172* -+ ID_VENDOR_FROM_DATABASE=Connovate Technology Private Limited -+ -+bluetooth:v0173* -+ ID_VENDOR_FROM_DATABASE=Kocomojo, LLC -+ -+bluetooth:v0174* -+ ID_VENDOR_FROM_DATABASE=Everykey LLC -+ -+bluetooth:v0175* -+ ID_VENDOR_FROM_DATABASE=Dynamic Controls -+ -+bluetooth:v0176* -+ ID_VENDOR_FROM_DATABASE=SentriLock -+ -+bluetooth:v0177* -+ ID_VENDOR_FROM_DATABASE=I-SYST inc. -+ -+bluetooth:v0178* -+ ID_VENDOR_FROM_DATABASE=CASIO COMPUTER CO., LTD. -+ -+bluetooth:v0179* -+ ID_VENDOR_FROM_DATABASE=LAPIS Semiconductor Co., Ltd. -+ -+bluetooth:v017A* -+ ID_VENDOR_FROM_DATABASE=Telemonitor, Inc. -+ -+bluetooth:v017B* -+ ID_VENDOR_FROM_DATABASE=taskit GmbH -+ -+bluetooth:v017C* -+ ID_VENDOR_FROM_DATABASE=Daimler AG --- -1.7.9.2 - diff --git a/0008-hwdb-update.patch b/0008-hwdb-update.patch deleted file mode 100644 index 062b229b..00000000 --- a/0008-hwdb-update.patch +++ /dev/null @@ -1,1425 +0,0 @@ -From cccc74971fe3c853832d742a15eac94f365603b6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 20 Aug 2014 00:38:39 +0200 -Subject: [PATCH] update hwdb - ---- - hwdb/20-OUI.hwdb | 177 +++++++++++- - hwdb/20-pci-vendor-model.hwdb | 592 ++++++++++++++++++++++++++++++++++++++++- - hwdb/20-usb-vendor-model.hwdb | 12 + - 3 files changed, 776 insertions(+), 5 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index f9501be..e0c5fed 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -21371,7 +21371,7 @@ OUI:000A2F* - ID_OUI_FROM_DATABASE=Artnix Inc. - - OUI:000A30* -- ID_OUI_FROM_DATABASE=Johnson Controls-ASG -+ ID_OUI_FROM_DATABASE=Visteon Corporation - - OUI:000A31* - ID_OUI_FROM_DATABASE=HCV Consulting -@@ -51601,6 +51601,9 @@ OUI:00E666* - OUI:00E6D3* - ID_OUI_FROM_DATABASE=NIXDORF COMPUTER CORP. - -+OUI:00E6E8* -+ ID_OUI_FROM_DATABASE=Netzin Technology Corporation,.Ltd. -+ - OUI:00E8AB* - ID_OUI_FROM_DATABASE=Meggitt Training Systems, Inc. - -@@ -51616,6 +51619,9 @@ OUI:00F051* - OUI:00F403* - ID_OUI_FROM_DATABASE=Orbis Systems Oy - -+OUI:00F46F* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:00F4B9* - ID_OUI_FROM_DATABASE=Apple - -@@ -51856,6 +51862,9 @@ OUI:0498F3* - OUI:0499E6* - ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd - -+OUI:049B9C* -+ ID_OUI_FROM_DATABASE=Eadingcore Intelligent Technology Co., Ltd. -+ - OUI:049C62* - ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. - -@@ -52720,6 +52729,9 @@ OUI:08E84F* - OUI:08EA44* - ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. - -+OUI:08EB29* -+ ID_OUI_FROM_DATABASE=Jiangsu Huitong Group Co.,Ltd. -+ - OUI:08EB74* - ID_OUI_FROM_DATABASE=Humax - -@@ -52729,6 +52741,9 @@ OUI:08EBED* - OUI:08EDB9* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:08EE8B* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:08EF3B* - ID_OUI_FROM_DATABASE=MCS Logic Inc. - -@@ -52969,6 +52984,9 @@ OUI:0CAC05* - OUI:0CAF5A* - ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED - -+OUI:0CB319* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:0CB4EF* - ID_OUI_FROM_DATABASE=Digience Co.,Ltd. - -@@ -53036,7 +53054,7 @@ OUI:0CD996* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:0CD9C1* -- ID_OUI_FROM_DATABASE=Johnson Controls-ASG -+ ID_OUI_FROM_DATABASE=Visteon Corporation - - OUI:0CDA41* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited -@@ -53434,6 +53452,9 @@ OUI:10F96F* - OUI:10F9EE* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:10FACE* -+ ID_OUI_FROM_DATABASE=Reacheng Communication Technology Co.,Ltd -+ - OUI:10FBF0* - ID_OUI_FROM_DATABASE=KangSheng LTD. - -@@ -55417,6 +55438,9 @@ OUI:2C441B* - OUI:2C44FD* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:2C5089* -+ ID_OUI_FROM_DATABASE=Shenzhen Kaixuan Visual Technology Co.,Limited -+ - OUI:2C534A* - ID_OUI_FROM_DATABASE=Shenzhen Winyao Electronic Limited - -@@ -55774,6 +55798,9 @@ OUI:306E5C* - OUI:3071B2* - ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. - -+OUI:307350* -+ ID_OUI_FROM_DATABASE=Inpeco SA -+ - OUI:307512* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -@@ -55972,6 +55999,9 @@ OUI:343111* - OUI:3431C4* - ID_OUI_FROM_DATABASE=AVM GmbH - -+OUI:3438AF* -+ ID_OUI_FROM_DATABASE=Inlab Software GmbH -+ - OUI:3440B5* - ID_OUI_FROM_DATABASE=IBM - -@@ -56323,12 +56353,18 @@ OUI:3826CD* - OUI:3828EA* - ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD - -+OUI:382C4A* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:382DD1* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - - OUI:3831AC* - ID_OUI_FROM_DATABASE=WEG - -+OUI:383BC8* -+ ID_OUI_FROM_DATABASE=2wire -+ - OUI:383F10* - ID_OUI_FROM_DATABASE=DBL Technology Ltd. - -@@ -56416,6 +56452,9 @@ OUI:388EE7* - OUI:3891FB* - ID_OUI_FROM_DATABASE=Xenox Holding BV - -+OUI:389496* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:389592* - ID_OUI_FROM_DATABASE=Beijing Tendyron Corporation - -@@ -56605,6 +56644,9 @@ OUI:3C1A79* - OUI:3C1CBE* - ID_OUI_FROM_DATABASE=JADAK LLC - -+OUI:3C1E13* -+ ID_OUI_FROM_DATABASE=HANGZHOU SUNRISE TECHNOLOGY CO., LTD -+ - OUI:3C25D7* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -57343,6 +57385,9 @@ OUI:446C24* - OUI:446D57* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -+OUI:446D6C* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:44700B* - ID_OUI_FROM_DATABASE=IFFU - -@@ -57778,6 +57823,9 @@ OUI:4C09B4* - OUI:4C0B3A* - ID_OUI_FROM_DATABASE=TCT Mobile Limited - -+OUI:4C0BBE* -+ ID_OUI_FROM_DATABASE=Microsoft -+ - OUI:4C0DEE* - ID_OUI_FROM_DATABASE=JABIL CIRCUIT (SHANGHAI) LTD. - -@@ -58372,6 +58420,9 @@ OUI:50ED94* - OUI:50F003* - ID_OUI_FROM_DATABASE=Open Stack, Inc. - -+OUI:50F43C* -+ ID_OUI_FROM_DATABASE=Leeo Inc -+ - OUI:50F520* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -58405,6 +58456,9 @@ OUI:540536* - OUI:54055F* - ID_OUI_FROM_DATABASE=Alcatel Lucent - -+OUI:54098D* -+ ID_OUI_FROM_DATABASE=deister electronic GmbH -+ - OUI:54112F* - ID_OUI_FROM_DATABASE=Sulzer Pump Solutions Finland Oy - -@@ -59137,6 +59191,9 @@ OUI:5C93A2* - OUI:5C95AE* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C966A* -+ ID_OUI_FROM_DATABASE=RTNET -+ - OUI:5C969D* - ID_OUI_FROM_DATABASE=Apple - -@@ -59905,6 +59962,9 @@ OUI:64AE0C* - OUI:64AE88* - ID_OUI_FROM_DATABASE=Polytec GmbH - -+OUI:64B21D* -+ ID_OUI_FROM_DATABASE=Chengdu Phycom Tech Co., Ltd. -+ - OUI:64B310* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -59917,6 +59977,9 @@ OUI:64B473* - OUI:64B64A* - ID_OUI_FROM_DATABASE=ViVOtech, Inc. - -+OUI:64B853* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:64B9E8* - ID_OUI_FROM_DATABASE=Apple - -@@ -60208,6 +60271,9 @@ OUI:68974B* - OUI:6897E8* - ID_OUI_FROM_DATABASE=Society of Motion Picture & Television Engineers - -+OUI:6899CD* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:689C5E* - ID_OUI_FROM_DATABASE=AcSiP Technology Corp. - -@@ -60325,6 +60391,9 @@ OUI:68F06D* - OUI:68F125* - ID_OUI_FROM_DATABASE=Data Controls Inc. - -+OUI:68F728* -+ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd -+ - OUI:68F895* - ID_OUI_FROM_DATABASE=Redflow Limited - -@@ -61081,12 +61150,18 @@ OUI:744D79* - OUI:745327* - ID_OUI_FROM_DATABASE=COMMSEN CO., LIMITED - -+OUI:74547D* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:745612* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - - OUI:745798* - ID_OUI_FROM_DATABASE=TRUMPF Laser GmbH + Co. KG - -+OUI:745C9F* -+ ID_OUI_FROM_DATABASE=TCT mobile ltd. -+ - OUI:745E1C* - ID_OUI_FROM_DATABASE=PIONEER CORPORATION - -@@ -62446,6 +62521,9 @@ OUI:842615* - OUI:84262B* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -+OUI:842690* -+ ID_OUI_FROM_DATABASE=BEIJING THOUGHT SCIENCE CO.,LTD. -+ - OUI:8427CE* - ID_OUI_FROM_DATABASE=Corporation of the Presiding Bishop of The Church of Jesus Christ of Latter-day Saints - -@@ -62506,6 +62584,9 @@ OUI:844F03* - OUI:845181* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:8455A5* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:84569C* - ID_OUI_FROM_DATABASE=Coho Data, Inc., - -@@ -62611,6 +62692,9 @@ OUI:849CA6* - OUI:849DC5* - ID_OUI_FROM_DATABASE=Centera Photonics Inc. - -+OUI:84A466* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:84A6C8* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -62824,6 +62908,9 @@ OUI:886B76* - OUI:88708C* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:8870EF* -+ ID_OUI_FROM_DATABASE=SC Professional Trading Co., Ltd. -+ - OUI:887398* - ID_OUI_FROM_DATABASE=K2E Tekpoint - -@@ -62998,6 +63085,9 @@ OUI:8C006D* - OUI:8C04FF* - ID_OUI_FROM_DATABASE=Technicolor USA Inc. - -+OUI:8C0551* -+ ID_OUI_FROM_DATABASE=Koubachi AG -+ - OUI:8C078C* - ID_OUI_FROM_DATABASE=FLOW DATA INC - -@@ -63181,6 +63271,9 @@ OUI:8C8E76* - OUI:8C90D3* - ID_OUI_FROM_DATABASE=Alcatel Lucent - -+OUI:8C9109* -+ ID_OUI_FROM_DATABASE=Toyoshima Electric Technoeogy(Suzhou) Co.,Ltd. -+ - OUI:8C9236* - ID_OUI_FROM_DATABASE=Aus.Linx Technology Co., Ltd. - -@@ -64249,6 +64342,9 @@ OUI:98F8C1* - OUI:98F8DB* - ID_OUI_FROM_DATABASE=Marini Impianti Industriali s.r.l. - -+OUI:98FAE3* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:98FB12* - ID_OUI_FROM_DATABASE=Grand Electronics (HK) Ltd - -@@ -64804,6 +64900,9 @@ OUI:A0A130* - OUI:A0A23C* - ID_OUI_FROM_DATABASE=GPMS - -+OUI:A0A3E2* -+ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc -+ - OUI:A0A763* - ID_OUI_FROM_DATABASE=Polytron Vertrieb GmbH - -@@ -64819,6 +64918,9 @@ OUI:A0B100* - OUI:A0B3CC* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A0B4A5* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:A0B5DA* - ID_OUI_FROM_DATABASE=HongKong THTF Co., Ltd - -@@ -65116,6 +65218,9 @@ OUI:A49A58* - OUI:A49B13* - ID_OUI_FROM_DATABASE=Burroughs Payment Systems, Inc. - -+OUI:A49D49* -+ ID_OUI_FROM_DATABASE=Ketra, Inc. -+ - OUI:A49EDB* - ID_OUI_FROM_DATABASE=AutoCrib, Inc. - -@@ -65389,6 +65494,9 @@ OUI:A8776F* - OUI:A87B39* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:A87C01* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:A87E33* - ID_OUI_FROM_DATABASE=Nokia Danmark A/S - -@@ -65479,6 +65587,9 @@ OUI:A8CCC5* - OUI:A8CE90* - ID_OUI_FROM_DATABASE=CVC - -+OUI:A8D0E3* -+ ID_OUI_FROM_DATABASE=Systech Electronics Ltd. -+ - OUI:A8D0E5* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -65488,6 +65599,9 @@ OUI:A8D236* - OUI:A8D3C8* - ID_OUI_FROM_DATABASE=Wachendorff Elektronik GmbH & Co. KG - -+OUI:A8D88A* -+ ID_OUI_FROM_DATABASE=Wyconn -+ - OUI:A8E018* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -65602,6 +65716,9 @@ OUI:AC3613* - OUI:AC3870* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:AC3A7A* -+ ID_OUI_FROM_DATABASE=Roku -+ - OUI:AC3C0B* - ID_OUI_FROM_DATABASE=Apple - -@@ -66049,6 +66166,9 @@ OUI:B09074* - OUI:B09134* - ID_OUI_FROM_DATABASE=Taleo - -+OUI:B09137* -+ ID_OUI_FROM_DATABASE=ISis ImageStream Internet Solutions, Inc -+ - OUI:B0973A* - ID_OUI_FROM_DATABASE=E-Fuel Corporation - -@@ -66271,6 +66391,9 @@ OUI:B435F7* - OUI:B43741* - ID_OUI_FROM_DATABASE=Consert, Inc. - -+OUI:B43934* -+ ID_OUI_FROM_DATABASE=Pen Generations, Inc. -+ - OUI:B439D6* - ID_OUI_FROM_DATABASE=ProCurve Networking by HP - -@@ -66397,6 +66520,9 @@ OUI:B4A4E3* - OUI:B4A5A9* - ID_OUI_FROM_DATABASE=MODI GmbH - -+OUI:B4A828* -+ ID_OUI_FROM_DATABASE=Shenzhen Concox Information Technology Co., Ltd -+ - OUI:B4A82B* - ID_OUI_FROM_DATABASE=Histar Digital Electronics Co., Ltd. - -@@ -67114,6 +67240,9 @@ OUI:BCBAE1* - OUI:BCBBC9* - ID_OUI_FROM_DATABASE=Kellendonk Elektronik GmbH - -+OUI:BCBC46* -+ ID_OUI_FROM_DATABASE=SKS Welding Systems GmbH -+ - OUI:BCC168* - ID_OUI_FROM_DATABASE=DinBox Sverige AB - -@@ -67840,6 +67969,9 @@ OUI:C819F7* - OUI:C81AFE* - ID_OUI_FROM_DATABASE=DLOGIC GmbH - -+OUI:C81B6B* -+ ID_OUI_FROM_DATABASE=Innova Security -+ - OUI:C81E8E* - ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd - -@@ -68530,6 +68662,9 @@ OUI:D01AA7* - OUI:D01CBB* - ID_OUI_FROM_DATABASE=Beijing Ctimes Digital Technology Co., Ltd. - -+OUI:D02212* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:D022BE* - ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. - -@@ -69259,6 +69394,9 @@ OUI:D831CF* - OUI:D8337F* - ID_OUI_FROM_DATABASE=Office FA.com Co.,Ltd. - -+OUI:D83C69* -+ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp -+ - OUI:D842AC* - ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. - -@@ -69349,6 +69487,9 @@ OUI:D88039* - OUI:D881CE* - ID_OUI_FROM_DATABASE=AHN INC. - -+OUI:D88466* -+ ID_OUI_FROM_DATABASE=Extreme Networks -+ - OUI:D88A3B* - ID_OUI_FROM_DATABASE=UNIT-EM - -@@ -69376,6 +69517,9 @@ OUI:D89760* - OUI:D8977C* - ID_OUI_FROM_DATABASE=Grey Innovation - -+OUI:D897BA* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:D89D67* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -69442,6 +69586,9 @@ OUI:D8C7C8* - OUI:D8C99D* - ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED - -+OUI:D8CB8A* -+ ID_OUI_FROM_DATABASE=Micro-Star INTL CO., LTD. -+ - OUI:D8CF9C* - ID_OUI_FROM_DATABASE=Apple - -@@ -69505,6 +69652,9 @@ OUI:D8EE78* - OUI:D8F0F2* - ID_OUI_FROM_DATABASE=Zeebo Inc - -+OUI:D8F710* -+ ID_OUI_FROM_DATABASE=Libre Wireless Technologies Inc. -+ - OUI:D8FB11* - ID_OUI_FROM_DATABASE=AXACORE - -@@ -69749,7 +69899,7 @@ OUI:DCD87F* - ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd - - OUI:DCDA4F* -- ID_OUI_FROM_DATABASE=GET Technology,INC -+ ID_OUI_FROM_DATABASE=GETCK TECHNOLOGY, INC - - OUI:DCDECA* - ID_OUI_FROM_DATABASE=Akyllor -@@ -69763,6 +69913,9 @@ OUI:DCE578* - OUI:DCE71C* - ID_OUI_FROM_DATABASE=AUG Elektronik GmbH - -+OUI:DCEC06* -+ ID_OUI_FROM_DATABASE=Heimi Network Technology Co., Ltd. -+ - OUI:DCF05D* - ID_OUI_FROM_DATABASE=Letta Teknoloji - -@@ -69856,6 +70009,9 @@ OUI:E039D7* - OUI:E03C5B* - ID_OUI_FROM_DATABASE=SHENZHEN JIAXINJIE ELECTRON CO.,LTD - -+OUI:E03E44* -+ ID_OUI_FROM_DATABASE=Broadcom Corporation -+ - OUI:E03E4A* - ID_OUI_FROM_DATABASE=Cavanagh Group International - -@@ -70378,6 +70534,9 @@ OUI:E4F4C6* - OUI:E4F7A1* - ID_OUI_FROM_DATABASE=Datafox GmbH - -+OUI:E4F8EF* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:E4FA1D* - ID_OUI_FROM_DATABASE=PAD Peripheral Advanced Design Inc. - -@@ -70549,6 +70708,9 @@ OUI:E8802E* - OUI:E880D8* - ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. - -+OUI:E887A3* -+ ID_OUI_FROM_DATABASE=Loxley Public Company Limited -+ - OUI:E8892C* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -70627,6 +70789,9 @@ OUI:E8C320* - OUI:E8CBA1* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:E8CC18* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:E8CC32* - ID_OUI_FROM_DATABASE=Micronet LTD - -@@ -71008,6 +71173,9 @@ OUI:F015A0* - OUI:F01C13* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:F01C2D* -+ ID_OUI_FROM_DATABASE=Juniper Networks -+ - OUI:F01FAF* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -71398,6 +71566,9 @@ OUI:F4472A* - OUI:F44848* - ID_OUI_FROM_DATABASE=Amscreen Group Ltd - -+OUI:F44E05* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F44EFD* - ID_OUI_FROM_DATABASE=Actions Semiconductor Co.,Ltd.(Cayman Islands) - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index a6a2754..3bcdbc0 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -10478,6 +10478,9 @@ pci:v00001014d0000034Asv00001014sd000004C8* - pci:v00001014d0000034Asv00001014sd00000C49* - ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) - -+pci:v00001014d0000044B* -+ ID_MODEL_FROM_DATABASE=GenWQE Accelerator Adapter -+ - pci:v00001014d000004AA* - ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) - -@@ -26387,6 +26390,9 @@ pci:v000010DEd00000FE2* - pci:v000010DEd00000FE3* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] - -+pci:v000010DEd00000FE3sv0000103Csd00002B16* -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) -+ - pci:v000010DEd00000FE3sv000017AAsd00003675* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) - -@@ -26420,6 +26426,9 @@ pci:v000010DEd00000FF1* - pci:v000010DEd00000FF2* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K1] - -+pci:v000010DEd00000FF3* -+ ID_MODEL_FROM_DATABASE=GK107GL [Quadro K420] -+ - pci:v000010DEd00000FF5* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K1 Tesla USM] - -@@ -26546,6 +26555,9 @@ pci:v000010DEd00001029* - pci:v000010DEd0000103A* - ID_MODEL_FROM_DATABASE=GK110GL [Quadro K6000] - -+pci:v000010DEd0000103C* -+ ID_MODEL_FROM_DATABASE=GK110GL [Quadro K5200] -+ - pci:v000010DEd00001040* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 520] - -@@ -26981,6 +26993,12 @@ pci:v000010DEd00001140sv00001028sd000005F4* - pci:v000010DEd00001140sv00001028sd0000064E* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -+pci:v000010DEd00001140sv00001028sd00000652* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001028sd00000662* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001028sd0000068D* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -@@ -27239,9 +27257,15 @@ pci:v000010DEd00001140sv0000152Dsd00000982* - pci:v000010DEd00001140sv0000152Dsd00000983* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -+pci:v000010DEd00001140sv0000152Dsd00001005* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 820M) -+ - pci:v000010DEd00001140sv0000152Dsd00001012* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - -+pci:v000010DEd00001140sv0000152Dsd00001019* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv0000152Dsd00001030* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -@@ -27254,6 +27278,9 @@ pci:v000010DEd00001140sv0000152Dsd00001067* - pci:v000010DEd00001140sv0000152Dsd00001072* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv0000152Dsd00001086* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv000017AAsd00002200* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - -@@ -27578,6 +27605,9 @@ pci:v000010DEd000011B0sv000010DEsd0000101B* - pci:v000010DEd000011B1* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] - -+pci:v000010DEd000011B4* -+ ID_MODEL_FROM_DATABASE=GK104GL [Quadro K4200] -+ - pci:v000010DEd000011B6* - ID_MODEL_FROM_DATABASE=GK104GLM [Quadro K3100M] - -@@ -27863,6 +27893,9 @@ pci:v000010DEd00001295sv0000103Csd00002B0F* - pci:v000010DEd00001295sv0000103Csd00002B11* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) - -+pci:v000010DEd00001295sv0000103Csd00002B20* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce 810A) -+ - pci:v000010DEd00001295sv0000103Csd00002B21* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) - -@@ -27887,6 +27920,9 @@ pci:v000010DEd000012BA* - pci:v000010DEd00001340* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] - -+pci:v000010DEd00001340sv0000103Csd00002B2B* -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] (GeForce 830A) -+ - pci:v000010DEd00001341* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] - -@@ -27926,6 +27962,15 @@ pci:v000010DEd00001392* - pci:v000010DEd00001393* - ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] - -+pci:v000010DEd000013B3* -+ ID_MODEL_FROM_DATABASE=GM107GLM [Quadro K2200M] -+ -+pci:v000010DEd000013BA* -+ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K2200] -+ -+pci:v000010DEd000013BB* -+ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K620] -+ - pci:v000010DF* - ID_VENDOR_FROM_DATABASE=Emulex Corporation - -@@ -29291,6 +29336,9 @@ pci:v00001103d00000622* - pci:v00001103d00000640* - ID_MODEL_FROM_DATABASE=RocketRAID 640 4 Port SATA-III Controller - -+pci:v00001103d00000644* -+ ID_MODEL_FROM_DATABASE=RocketRAID 644 4 Port SATA-III Controller (eSATA) -+ - pci:v00001103d00001720* - ID_MODEL_FROM_DATABASE=RocketRAID 1720 (2x SATA II RAID Controller) - -@@ -40325,6 +40373,12 @@ pci:v00001360d00000205* - pci:v00001360d00000206* - ID_MODEL_FROM_DATABASE=GPS180PEX GPS Receiver (PCI Express) - -+pci:v00001360d00000207* -+ ID_MODEL_FROM_DATABASE=GLN180PEX GPS/GLONASS receiver (PCI Express) -+ -+pci:v00001360d00000208* -+ ID_MODEL_FROM_DATABASE=GPS180AMC GPS Receiver (PCI Express / MicroTCA / AdvancedMC) -+ - pci:v00001360d00000301* - ID_MODEL_FROM_DATABASE=TCR510PCI IRIG Timecode Reader - -@@ -41525,6 +41579,9 @@ pci:v000013F6d00008788sv00001043sd00008428* - pci:v000013F6d00008788sv00001043sd00008467* - ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) - -+pci:v000013F6d00008788sv00001043sd000085F4* -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX II)) -+ - pci:v000013F6d00008788sv000013F6sd00008782* - ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) - -@@ -45905,6 +45962,9 @@ pci:v000014E4d000043A0* - pci:v000014E4d000043A9* - ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n - -+pci:v000014E4d000043AA* -+ ID_MODEL_FROM_DATABASE=BCM43131 802.11b/g/n -+ - pci:v000014E4d000043B1* - ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter - -@@ -46884,7 +46944,7 @@ pci:v000014F1d00008852* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder - - pci:v000014F1d00008852sv00000070sd00008010* -- ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinTV HVR-1400 ExpressCard) - - pci:v000014F1d00008852sv0000107Dsd00006F22* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) -@@ -46898,6 +46958,9 @@ pci:v000014F1d00008852sv0000153Bsd0000117E* - pci:v000014F1d00008852sv000018ACsd0000DB78* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) - -+pci:v000014F1d00008852sv00004254sd00009580* -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (T9580) -+ - pci:v000014F1d00008880* - ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb - -@@ -47438,6 +47501,18 @@ pci:v00001542* - pci:v00001542d00009260* - ID_MODEL_FROM_DATABASE=RCIM-II Real-Time Clock & Interrupt Module - -+pci:v00001542d00009272* -+ ID_MODEL_FROM_DATABASE=Pulse Width Modulator Card -+ -+pci:v00001542d00009277* -+ ID_MODEL_FROM_DATABASE=5 Volt Delta Sigma Converter Card -+ -+pci:v00001542d00009278* -+ ID_MODEL_FROM_DATABASE=10 Volt Delta Sigma Converter Card -+ -+pci:v00001542d00009287* -+ ID_MODEL_FROM_DATABASE=Analog Output Card -+ - pci:v00001543* - ID_VENDOR_FROM_DATABASE=SILICON Laboratories - -@@ -49505,6 +49580,9 @@ pci:v000016B8* - pci:v000016BE* - ID_VENDOR_FROM_DATABASE=Creatix Polymedia GmbH - -+pci:v000016C3* -+ ID_VENDOR_FROM_DATABASE=Synopsys, Inc. -+ - pci:v000016C6* - ID_VENDOR_FROM_DATABASE=Micrel-Kendin - -@@ -53936,6 +54014,9 @@ pci:v0000416Cd00000100* - pci:v0000416Cd00000200* - ID_MODEL_FROM_DATABASE=CPC - -+pci:v00004254* -+ ID_VENDOR_FROM_DATABASE=DVBSky -+ - pci:v00004321* - ID_VENDOR_FROM_DATABASE=Tata Power Strategic Electronics Division - -@@ -59621,6 +59702,12 @@ pci:v00008086d000015A2* - pci:v00008086d000015A3* - ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V - -+pci:v00008086d000015B7* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-V -+ -+pci:v00008086d000015B8* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-LM -+ - pci:v00008086d00001600* - ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI - -@@ -69614,6 +69701,9 @@ pci:v00008086d00003B23* - pci:v00008086d00003B25* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller - -+pci:v00008086d00003B25sv0000103Csd00003118* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller (HP Smart Array B110i SATA RAID Controller) -+ - pci:v00008086d00003B26* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller - -@@ -70718,6 +70808,489 @@ pci:v00008086d000065FA* - pci:v00008086d000065FF* - ID_MODEL_FROM_DATABASE=5100 Chipset DMA Engine - -+pci:v00008086d00006F00* -+ ID_MODEL_FROM_DATABASE=Broadwell DMI2 -+ -+pci:v00008086d00006F01* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 0 -+ -+pci:v00008086d00006F02* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 -+ -+pci:v00008086d00006F03* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 -+ -+pci:v00008086d00006F04* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F05* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F06* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F07* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F08* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F09* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F0A* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F0B* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F10* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F11* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F12* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F13* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F14* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F15* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F16* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F17* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F18* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F19* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1A* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1B* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1C* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1D* -+ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent -+ -+pci:v00008086d00006F1E* -+ ID_MODEL_FROM_DATABASE=Broadwell Ubox -+ -+pci:v00008086d00006F1F* -+ ID_MODEL_FROM_DATABASE=Broadwell Ubox -+ -+pci:v00008086d00006F20* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 0 -+ -+pci:v00008086d00006F21* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 1 -+ -+pci:v00008086d00006F22* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 2 -+ -+pci:v00008086d00006F23* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 3 -+ -+pci:v00008086d00006F24* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 4 -+ -+pci:v00008086d00006F25* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 5 -+ -+pci:v00008086d00006F26* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 6 -+ -+pci:v00008086d00006F27* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 7 -+ -+pci:v00008086d00006F28* -+ ID_MODEL_FROM_DATABASE=Broadwell Adress Map/VTd_Misc/System Management -+ -+pci:v00008086d00006F29* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Hot Plug -+ -+pci:v00008086d00006F2A* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO RAS/Control Status/Global Errors -+ -+pci:v00008086d00006F2C* -+ ID_MODEL_FROM_DATABASE=Broadwell I/O APIC -+ -+pci:v00008086d00006F30* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 -+ -+pci:v00008086d00006F32* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 -+ -+pci:v00008086d00006F33* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 -+ -+pci:v00008086d00006F34* -+ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent -+ -+pci:v00008086d00006F36* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 -+ -+pci:v00008086d00006F37* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 -+ -+pci:v00008086d00006F38* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 -+ -+pci:v00008086d00006F39* -+ ID_MODEL_FROM_DATABASE=Broadwell IO Performance Monitoring -+ -+pci:v00008086d00006F3A* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 -+ -+pci:v00008086d00006F3E* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 -+ -+pci:v00008086d00006F3F* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 -+ -+pci:v00008086d00006F40* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 -+ -+pci:v00008086d00006F41* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 -+ -+pci:v00008086d00006F43* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 -+ -+pci:v00008086d00006F45* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug -+ -+pci:v00008086d00006F46* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug -+ -+pci:v00008086d00006F47* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug -+ -+pci:v00008086d00006F60* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 -+ -+pci:v00008086d00006F68* -+ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS -+ -+pci:v00008086d00006F6A* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6B* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6C* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6D* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6E* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Broadcast -+ -+pci:v00008086d00006F6F* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast -+ -+pci:v00008086d00006F70* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 Debug -+ -+pci:v00008086d00006F71* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS -+ -+pci:v00008086d00006F76* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug -+ -+pci:v00008086d00006F78* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 Debug -+ -+pci:v00008086d00006F79* -+ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS -+ -+pci:v00008086d00006F7D* -+ ID_MODEL_FROM_DATABASE=Broadwell Ubox -+ -+pci:v00008086d00006F7E* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug -+ -+pci:v00008086d00006F80* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 -+ -+pci:v00008086d00006F81* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 -+ -+pci:v00008086d00006F83* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 -+ -+pci:v00008086d00006F85* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug -+ -+pci:v00008086d00006F86* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug -+ -+pci:v00008086d00006F87* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug -+ -+pci:v00008086d00006F88* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F8A* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F90* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 -+ -+pci:v00008086d00006F93* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 -+ -+pci:v00008086d00006F95* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug -+ -+pci:v00008086d00006F96* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug -+ -+pci:v00008086d00006F98* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F99* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F9A* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F9C* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FA0* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 -+ -+pci:v00008086d00006FA8* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS -+ -+pci:v00008086d00006FAA* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAB* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAC* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAD* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAE* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Broadcast -+ -+pci:v00008086d00006FAF* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast -+ -+pci:v00008086d00006FB0* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Thermal Control -+ -+pci:v00008086d00006FB1* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Thermal Control -+ -+pci:v00008086d00006FB2* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Error -+ -+pci:v00008086d00006FB3* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Error -+ -+pci:v00008086d00006FB4* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Thermal Control -+ -+pci:v00008086d00006FB5* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Thermal Control -+ -+pci:v00008086d00006FB6* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Error -+ -+pci:v00008086d00006FB7* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Error -+ -+pci:v00008086d00006FB8* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FB9* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FBA* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FBB* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FBC* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FBD* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FBE* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FBF* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FC0* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC1* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC2* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC3* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC4* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC5* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC6* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC7* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC8* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC9* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCA* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCB* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCC* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCD* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCE* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCF* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FD0* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Thermal Control -+ -+pci:v00008086d00006FD1* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Thermal Control -+ -+pci:v00008086d00006FD2* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Error -+ -+pci:v00008086d00006FD3* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Error -+ -+pci:v00008086d00006FD4* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Thermal Control -+ -+pci:v00008086d00006FD5* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Thermal Control -+ -+pci:v00008086d00006FD6* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Error -+ -+pci:v00008086d00006FD7* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Error -+ -+pci:v00008086d00006FE0* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE1* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE2* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE3* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE4* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE5* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE6* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE7* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE8* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE9* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEA* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEB* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEC* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FED* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEE* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEF* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF0* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF1* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF8* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF9* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFA* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFB* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFC* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFD* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFE* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ - pci:v00008086d00007000* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] - -@@ -73838,8 +74411,23 @@ pci:v0000D161d0000800A* - pci:v0000D161d0000800B* - ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card - -+pci:v0000D161d0000800C* -+ ID_MODEL_FROM_DATABASE=Wildcard A8A 8-port analog card -+ -+pci:v0000D161d0000800D* -+ ID_MODEL_FROM_DATABASE=Wildcard A8B 8-port analog card (PCI-Express) -+ - pci:v0000D161d0000800E* -- ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) -+ ID_MODEL_FROM_DATABASE=Wildcard TE235/TE435 quad-span T1/E1/J1 card (PCI-Express) -+ -+pci:v0000D161d0000800F* -+ ID_MODEL_FROM_DATABASE=Wildcard A4A 4-port analog card -+ -+pci:v0000D161d00008010* -+ ID_MODEL_FROM_DATABASE=Wildcard A4B 4-port analog card (PCI-Express) -+ -+pci:v0000D161d00008013* -+ ID_MODEL_FROM_DATABASE=Wildcard TE236/TE436 quad-span T1/E1/J1 card - - pci:v0000D161d0000B410* - ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index ed6b2b1..d87313c 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -11243,6 +11243,9 @@ usb:v04A9p3261* - usb:v04A9p3262* - ID_MODEL_FROM_DATABASE=PowerShot A2600 - -+usb:v04A9p3263* -+ ID_MODEL_FROM_DATABASE=PowerShot SX275 HS -+ - usb:v04A9p3264* - ID_MODEL_FROM_DATABASE=PowerShot A1400 - -@@ -11261,6 +11264,9 @@ usb:v04A9p3276* - usb:v04A9p3277* - ID_MODEL_FROM_DATABASE=PowerShot SX510 HS - -+usb:v04A9p3278* -+ ID_MODEL_FROM_DATABASE=PowerShot S200 -+ - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -@@ -11666,6 +11672,9 @@ usb:v04B4p2050* - usb:v04B4p2830* - ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) - -+usb:v04B4p3813* -+ ID_MODEL_FROM_DATABASE=NANO BIOS Programmer -+ - usb:v04B4p4235* - ID_MODEL_FROM_DATABASE=Monitor 02 Driver - -@@ -33116,6 +33125,9 @@ usb:v0B48p300D* - usb:v0B48p300E* - ID_MODEL_FROM_DATABASE=TT-connect C-2400 - -+usb:v0B48p3012* -+ ID_MODEL_FROM_DATABASE=TT-connect CT2-4650 CI -+ - usb:v0B48p3014* - ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 - --- -1.7.9.2 - diff --git a/0008-journald-fix-memory-leak-on-error-path.patch b/0008-journald-fix-memory-leak-on-error-path.patch deleted file mode 100644 index 6f67860c..00000000 --- a/0008-journald-fix-memory-leak-on-error-path.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 26d8ff04914a5208d029e899682cd314b7714bf0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Nov 2014 23:10:34 +0100 -Subject: [PATCH] journald: fix memory leak on error path - ---- - src/journal/journal-vacuum.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c -index d141fe0..80723c4 100644 ---- src/journal/journal-vacuum.c -+++ src/journal/journal-vacuum.c -@@ -283,7 +283,11 @@ int journal_directory_vacuum( - - patch_realtime(directory, p, &st, &realtime); - -- GREEDY_REALLOC(list, n_allocated, n_list + 1); -+ if (!GREEDY_REALLOC(list, n_allocated, n_list + 1)) { -+ free(p); -+ r = -ENOMEM; -+ goto finish; -+ } - - list[n_list].filename = p; - list[n_list].usage = 512UL * (uint64_t) st.st_blocks; --- -1.7.9.2 - diff --git a/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch b/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch deleted file mode 100644 index b43a43c1..00000000 --- a/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 252094eb05c58270a0bc35b14ad30a126ddbb3bb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 11 Mar 2014 05:23:39 +0100 -Subject: [PATCH] man: multiple sleep modes are to be separated by whitespace, - not commas - -As pointed out by Jason A. Donenfeld. ---- - man/systemd-sleep.conf.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd-sleep.conf.xml man/systemd-sleep.conf.xml -index a917f4d..d0ea6d8 100644 ---- man/systemd-sleep.conf.xml -+++ man/systemd-sleep.conf.xml -@@ -128,7 +128,7 @@ along with systemd; If not, see . - systemd-hibernate.service8, or - systemd-hybrid-sleep.service8. - More than one value can be specified by separating -- multiple values with commas. They will be tried -+ multiple values with whitespace. They will be tried - in turn, until one is written without error. If - neither succeeds, the operation will be aborted. - -@@ -146,7 +146,7 @@ along with systemd; If not, see . - systemd-hibernate.service8, or - systemd-hybrid-sleep.service8. - More than one value can be specified by separating -- multiple values with commas. They will be tried -+ multiple values with whitespace. They will be tried - in turn, until one is written without error. If - neither succeeds, the operation will be aborted. - --- -1.7.9.2 - diff --git a/0008-man-update-journald-rate-limit-defaults.patch b/0008-man-update-journald-rate-limit-defaults.patch deleted file mode 100644 index 54aad943..00000000 --- a/0008-man-update-journald-rate-limit-defaults.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8f18f550e7023948f199616fdfbb0f09711fd615 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Wed, 30 Apr 2014 19:53:13 +0300 -Subject: [PATCH] man: update journald rate limit defaults - -This brings the man page back into sync with the actual code. ---- - man/journald.conf.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/journald.conf.xml man/journald.conf.xml -index 239a2ec..5cd09a2 100644 ---- man/journald.conf.xml -+++ man/journald.conf.xml -@@ -190,8 +190,8 @@ - limiting is applied per-service, so - that two services which log do not - interfere with each other's -- limits. Defaults to 200 messages in -- 10s. The time specification for -+ limits. Defaults to 1000 messages in -+ 30s. The time specification for - RateLimitInterval= - may be specified in the following - units: s, --- -1.7.9.2 - diff --git a/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch b/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch deleted file mode 100644 index b189c671..00000000 --- a/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7c96ab1d2484ab2df3c6a84f1a1d2e076f469085 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Aug 2014 20:01:19 +0200 -Subject: [PATCH] mount-setup: fix counting of early mounts without SMACK - -http://lists.freedesktop.org/archives/systemd-devel/2014-August/021772.html ---- - src/core/mount-setup.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index 206f89a..cc2633e 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -63,8 +63,13 @@ typedef struct MountPoint { - - /* The first three entries we might need before SELinux is up. The - * fourth (securityfs) is needed by IMA to load a custom policy. The -- * other ones we can delay until SELinux and IMA are loaded. */ -+ * other ones we can delay until SELinux and IMA are loaded. When -+ * SMACK is enabled we need smackfs, too, so it's a fifth one. */ -+#ifdef HAVE_SMACK - #define N_EARLY_MOUNT 5 -+#else -+#define N_EARLY_MOUNT 4 -+#endif - - static const MountPoint mount_table[] = { - { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, --- -1.7.9.2 - diff --git a/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch b/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch deleted file mode 100644 index d2eac44b..00000000 --- a/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bbb6ff0216a7c081a2e63e01b1f121592b0165bb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 14 Mar 2014 21:12:36 +0100 -Subject: [PATCH] sd-bus: don't access invalid memory if a signal matcher was - freed from its own callback - ---- - src/libsystemd/sd-bus/bus-match.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c -index 8280488..c54ca8d 100644 ---- src/libsystemd/sd-bus/bus-match.c -+++ src/libsystemd/sd-bus/bus-match.c -@@ -293,6 +293,9 @@ int bus_match_run( - r = bus_maybe_reply_error(m, r, &error_buffer); - if (r != 0) - return r; -+ -+ if (bus && bus->match_callbacks_modified) -+ return 0; - } - - return bus_match_run(bus, node->next, m); --- -1.7.9.2 - diff --git a/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch b/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch deleted file mode 100644 index 3e5d0c03..00000000 --- a/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch +++ /dev/null @@ -1,52 +0,0 @@ -Based on 77c10205bb337585c320e91af4b416f2dcc6faba Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 13:47:00 +0200 -Subject: [PATCH] shared: conf-parser - don't leak memory on error in - DEFINE_CONFIG_PARSE_ENUMV - -Found by Coverity. Fixes CID #1237746. ---- - src/shared/conf-parser.h | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - ---- src/shared/conf-parser.h -+++ src/shared/conf-parser.h 2014-09-18 13:14:43.730234764 +0000 -@@ -171,7 +171,8 @@ int log_syntax_internal(const char *unit - void *data, \ - void *userdata) { \ - \ -- type **enums = data, *xs, x, *ys; \ -+ type **enums = data, x, *ys; \ -+ _cleanup_free_ type *xs = NULL; \ - char *w, *state; \ - size_t l, i = 0; \ - \ -@@ -187,6 +188,7 @@ int log_syntax_internal(const char *unit - \ - FOREACH_WORD(w, l, rvalue, state) { \ - _cleanup_free_ char *en = NULL; \ -+ type *new_xs; \ - \ - en = strndup(w, l); \ - if (!en) \ -@@ -212,8 +214,10 @@ int log_syntax_internal(const char *unit - continue; \ - \ - *(xs + i) = x; \ -- xs = realloc(xs, (++i + 1) * sizeof(type)); \ -- if (!xs) \ -+ new_xs = realloc(xs, (++i + 1) * sizeof(type)); \ -+ if (new_xs) \ -+ xs = new_xs; \ -+ else \ - return -ENOMEM; \ - \ - *(xs + i) = invalid; \ -@@ -221,5 +225,7 @@ int log_syntax_internal(const char *unit - \ - free(*enums); \ - *enums = xs; \ -+ xs = NULL; \ -+ \ - return 0; \ - } diff --git a/0008-shell-completion-prevent-mangling-unit-names-bash.patch b/0008-shell-completion-prevent-mangling-unit-names-bash.patch deleted file mode 100644 index 7a52c0d7..00000000 --- a/0008-shell-completion-prevent-mangling-unit-names-bash.patch +++ /dev/null @@ -1,87 +0,0 @@ -Based on c317a1a19cd9584e07ee43f1b6fafc26c2c75cca Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Sun, 27 Jul 2014 15:07:03 -0400 -Subject: [PATCH] shell-completion: prevent mangling unit names (bash) - -This fixes the issue noted by Zbigniew in most cases. -if a unit's name is enclosed in single quotes completion still -will not happen after the first `\'. - -https://bugs.freedesktop.org/show_bug.cgi?id=78388 ---- - shell-completion/bash/systemctl.in | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in -index 69ef04b..64b15df 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -158,20 +158,25 @@ _systemctl () { - - elif __contains_word "$verb" ${VERBS[ALL_UNITS]}; then - comps=$( __get_all_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[ENABLED_UNITS]}; then - comps=$( __get_enabled_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then - comps=$( __get_disabled_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then - comps=$( __get_disabled_units $mode; - __get_enabled_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ - $( __get_startable_units $mode)) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -@@ -179,24 +184,30 @@ _systemctl () { - | while read -r line; do \ - [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ - done )) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStop yes \ - $( __get_active_units $mode ) ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[RELOADABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanReload yes \ - $( __get_active_units $mode ) ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[ISOLATABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode AllowIsolate yes \ - $( __get_all_units $mode ) ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[FAILED_UNITS]}; then - comps=$( __get_failed_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[MASKED_UNITS]}; then - comps=$( __get_masked_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[NAME]}; then - comps='' -@@ -221,7 +232,7 @@ _systemctl () { - | { while read -r a b; do echo " $a"; done; } ) - fi - -- COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ COMPREPLY=( $(compgen -o filenames -W '$comps' -- "$cur") ) - return 0 - } - --- -1.7.9.2 - diff --git a/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch b/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch deleted file mode 100644 index b4564a5a..00000000 --- a/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0088d63151e088d62104d88f866e9eb049091c22 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 25 Mar 2014 00:31:48 +0100 -Subject: [PATCH] systemctl: --kill-mode is long long gone, don't mention it - in the man page - ---- - man/systemctl.xml | 5 ++--- - shell-completion/bash/systemctl | 5 +---- - 2 files changed, 3 insertions(+), 7 deletions(-) - -diff --git man/systemctl.xml man/systemctl.xml -index 77447dd..b4727d9 100644 ---- man/systemctl.xml -+++ man/systemctl.xml -@@ -664,9 +664,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service - - Send a signal to one or more processes of the - unit. Use to select which -- process to kill. Use to select -- the kill mode and to select the -- signal to send. -+ process to kill. Use to select -+ the signal to send. - - - -diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl -index dc7ef66..0dfc868 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -74,7 +74,7 @@ _systemctl () { - [STANDALONE]='--all -a --reverse --after --before --defaults --fail --ignore-dependencies --failed --force -f --full -l --global - --help -h --no-ask-password --no-block --no-legend --no-pager --no-reload --no-wall - --quiet -q --privileged -P --system --user --version --runtime' -- [ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root' -+ [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' - ) - - if __contains_word "--user" ${COMP_WORDS[*]}; then -@@ -99,9 +99,6 @@ _systemctl () { - --kill-who) - comps='all control main' - ;; -- --kill-mode) -- comps='control-group process' -- ;; - --root) - comps=$(compgen -A directory -- "$cur" ) - compopt -o filenames --- -1.7.9.2 - diff --git a/0008-util-introduce-sethostname_idempotent.patch b/0008-util-introduce-sethostname_idempotent.patch deleted file mode 100644 index 5b42ce14..00000000 --- a/0008-util-introduce-sethostname_idempotent.patch +++ /dev/null @@ -1,85 +0,0 @@ -Based on 605f81a8968b2df8a28cca2cf11db99ab948a2af Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 21 Oct 2014 18:17:54 +0200 -Subject: [PATCH] util: introduce sethostname_idempotent - -Function queries system hostname and applies changes only when necessary. Also, -migrate all client of sethostname to sethostname_idempotent while at it. ---- - src/core/hostname-setup.c | 2 +- - src/hostname/hostnamed.c | 2 +- - src/nspawn/nspawn.c | 2 +- - src/shared/util.c | 20 ++++++++++++++++++++ - src/shared/util.h | 2 ++ - 5 files changed, 25 insertions(+), 3 deletions(-) - ---- src/core/hostname-setup.c -+++ src/core/hostname-setup.c 2014-10-29 00:00:00.000000000 +0000 -@@ -99,7 +99,7 @@ int hostname_setup(void) { - hn = "localhost"; - } - -- if (sethostname(hn, strlen(hn)) < 0) { -+ if (sethostname_idempotent(hn) < 0) { - log_warning("Failed to set hostname to <%s>: %m", hn); - return -errno; - } ---- src/hostname/hostnamed.c -+++ src/hostname/hostnamed.c 2014-10-29 14:13:26.124337751 +0000 -@@ -244,7 +244,7 @@ static int context_write_data_hostname(C - else - hn = c->data[PROP_HOSTNAME]; - -- if (sethostname(hn, strlen(hn)) < 0) -+ if (sethostname_idempotent(hn) < 0) - return -errno; - - return 0; ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-10-29 00:00:00.000000000 +0000 -@@ -981,7 +981,7 @@ static int setup_hostname(void) { - if (arg_share_system) - return 0; - -- if (sethostname(arg_machine, strlen(arg_machine)) < 0) -+ if (sethostname_idempotent(arg_machine) < 0) - return -errno; - - return 0; ---- src/shared/util.c -+++ src/shared/util.c 2014-10-29 00:00:00.000000000 +0000 -@@ -6451,6 +6451,26 @@ int fd_warn_permissions(const char *path - return 0; - } - -+int sethostname_idempotent(const char *s) { -+ int r; -+ char buf[HOST_NAME_MAX + 1] = {}; -+ -+ assert(s); -+ -+ r = gethostname(buf, sizeof(buf)); -+ if (r < 0) -+ return -errno; -+ -+ if (streq(buf, s)) -+ return 0; -+ -+ r = sethostname(buf, strlen(buf)); -+ if (r < 0) -+ return -errno; -+ -+ return 1; -+} -+ - unsigned long personality_from_string(const char *p) { - - /* Parse a personality specifier. We introduce our own ---- src/shared/util.h -+++ src/shared/util.h 2014-10-29 14:14:15.764337717 +0000 -@@ -899,3 +899,5 @@ union file_handle_union { - }; - - int umount_recursive(const char *target, int flags); -+ -+int sethostname_idempotent(const char *s); diff --git a/0009-ask-password-when-the-user-types-a-overly-long-passw.patch b/0009-ask-password-when-the-user-types-a-overly-long-passw.patch deleted file mode 100644 index 840c4a18..00000000 --- a/0009-ask-password-when-the-user-types-a-overly-long-passw.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 036eeac5a1799fa2c0ae11a14d8c667b5d303189 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 25 Mar 2014 01:27:05 +0100 -Subject: [PATCH] ask-password: when the user types a overly long password, - beep and refuse -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Based on a similar patch from David Härdeman. ---- - src/shared/ask-password-api.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/shared/ask-password-api.c src/shared/ask-password-api.c -index 117f0c6..96f16cc 100644 ---- src/shared/ask-password-api.c -+++ src/shared/ask-password-api.c -@@ -207,6 +207,11 @@ int ask_password_tty( - if (ttyfd >= 0) - loop_write(ttyfd, "(no echo) ", 10, false); - } else { -+ if (p >= sizeof(passphrase)-1) { -+ loop_write(ttyfd, "\a", 1, false); -+ continue; -+ } -+ - passphrase[p++] = c; - - if (!silent_mode && ttyfd >= 0) --- -1.7.9.2 - diff --git a/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch b/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch deleted file mode 100644 index 381d0732..00000000 --- a/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c2fa048c4a70c8386c6d8fe939e5ea9edecf1e98 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 18 Sep 2014 13:28:28 +0200 -Subject: [PATCH] bus: fix bus_print_property() to use "int" for booleans - -We always use "int" if we retrieve boolean values from sd-bus, as "bool" -is only a single byte, but full int on va-args. - -Thanks to Werner Fink for the report! ---- - src/libsystemd/sd-bus/bus-util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c -index 7c6da60..9018bce 100644 ---- src/libsystemd/sd-bus/bus-util.c -+++ src/libsystemd/sd-bus/bus-util.c -@@ -631,7 +631,7 @@ int bus_print_property(const char *name, sd_bus_message *property, bool all) { - } - - case SD_BUS_TYPE_BOOLEAN: { -- bool b; -+ int b; - - r = sd_bus_message_read_basic(property, type, &b); - if (r < 0) --- -1.7.9.2 - diff --git a/0009-core-clean-up-signal-reset-logic-when-reexec.patch b/0009-core-clean-up-signal-reset-logic-when-reexec.patch deleted file mode 100644 index cfe54186..00000000 --- a/0009-core-clean-up-signal-reset-logic-when-reexec.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9bfcda9528636914aef3e0ab91191bb81654c83d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 20 Jun 2014 16:58:21 +0200 -Subject: [PATCH] core: clean-up signal reset logic when reexec - -There's no need to save the old sigmask, if we are going to die. Let's -simplify this. Also, reset all the signal handlers, so that we don't -leave SIG_IGN set for some of them across reexec. ---- - src/core/main.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git src/core/main.c src/core/main.c -index 863ba52..6981e72 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1824,7 +1824,7 @@ finish: - if (reexecute) { - const char **args; - unsigned i, args_size; -- sigset_t ss, o_ss; -+ sigset_t ss; - - /* Close and disarm the watchdog, so that the new - * instance can reinitialize it, but doesn't get -@@ -1910,8 +1910,10 @@ finish: - - /* reenable any blocked signals, especially important - * if we switch from initial ramdisk to init=... */ -- sigemptyset(&ss); -- sigprocmask(SIG_SETMASK, &ss, &o_ss); -+ reset_all_signal_handlers(); -+ -+ assert_se(sigemptyset(&ss) == 0); -+ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); - - if (switch_root_init) { - args[0] = switch_root_init; -@@ -1931,8 +1933,6 @@ finish: - log_error("Failed to execute /bin/sh, giving up: %m"); - } else - log_warning("Failed to execute /sbin/init, giving up: %m"); -- -- sigprocmask(SIG_SETMASK, &o_ss, NULL); - } - - if (arg_serialization) { --- -1.7.9.2 - diff --git a/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 69372137..00000000 --- a/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2e3390ea4684b954edce66b7758b5371d3338a9f Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Thu, 2 Oct 2014 07:53:15 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 14aee74..ee2efdf 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -1148,3 +1148,21 @@ bluetooth:v017B* - - bluetooth:v017C* - ID_VENDOR_FROM_DATABASE=Daimler AG -+ -+bluetooth:v017D* -+ ID_VENDOR_FROM_DATABASE=BatAndCat -+ -+bluetooth:v017E* -+ ID_VENDOR_FROM_DATABASE=BluDotz Ltd -+ -+bluetooth:v017F* -+ ID_VENDOR_FROM_DATABASE=XTel ApS -+ -+bluetooth:v0180* -+ ID_VENDOR_FROM_DATABASE=Gigaset Communications GmbH -+ -+bluetooth:v0181* -+ ID_VENDOR_FROM_DATABASE=Gecko Health Innovations, Inc. -+ -+bluetooth:v0182* -+ ID_VENDOR_FROM_DATABASE=HOP Ubiquitous --- -1.7.9.2 - diff --git a/0009-hwdb-update.patch b/0009-hwdb-update.patch deleted file mode 100644 index 099e33b6..00000000 --- a/0009-hwdb-update.patch +++ /dev/null @@ -1,3363 +0,0 @@ -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 deleted file mode 100644 index 3d92f474..00000000 --- a/0009-journal-do-not-leak-mmaps-on-OOM.patch +++ /dev/null @@ -1,50 +0,0 @@ -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/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch b/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch deleted file mode 100644 index 864b9982..00000000 --- a/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b9c488f60050248b35640f28e4d00958702ba1c3 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Wed, 6 Aug 2014 13:14:51 +0200 -Subject: [PATCH] journald: Fix off-by-one error in "Missed X kernel messages" - warning - -On receiving a message, "kernel_seqnum" is set to "serial + 1". So -subtracting 1 will cause messages like "Missed 0 kernel messages", -which should be "Missed 1 kernel messages". ---- - src/journal/journald-kmsg.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c -index 9935986..fb8ea08 100644 ---- src/journal/journald-kmsg.c -+++ src/journal/journald-kmsg.c -@@ -152,7 +152,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { - /* Did we lose any? */ - if (serial > *s->kernel_seqnum) - server_driver_message(s, SD_MESSAGE_JOURNAL_MISSED, "Missed %"PRIu64" kernel messages", -- serial - *s->kernel_seqnum - 1); -+ serial - *s->kernel_seqnum); - - /* Make sure we never read this one again. Note that - * we always store the next message serial we expect --- -1.7.9.2 - diff --git a/0009-journald-always-add-syslog-facility-for-messages-com.patch b/0009-journald-always-add-syslog-facility-for-messages-com.patch deleted file mode 100644 index 58a8bdd2..00000000 --- a/0009-journald-always-add-syslog-facility-for-messages-com.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 36dd072cdf03dcac0fcd2d6b42f261444dc7ac88 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Fri, 25 Jul 2014 14:38:22 +0200 -Subject: [PATCH] journald: always add syslog facility for messages coming - from kmsg - -Set SYSLOG_FACILITY field for kernel log messages too. Setting only -SYSLOG_IDENTIFIER="kernel" is not sufficient and tools reading journal -maybe confused by missing SYSLOG_FACILITY field for kernel log messages. ---- - src/journal/journald-kmsg.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c -index 12992e7..bb62a76 100644 ---- src/journal/journald-kmsg.c -+++ src/journal/journald-kmsg.c -@@ -274,6 +274,9 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { - if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0) - IOVEC_SET_STRING(iovec[n++], syslog_priority); - -+ if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) -+ IOVEC_SET_STRING(iovec[n++], syslog_facility); -+ - if ((priority & LOG_FACMASK) == LOG_KERN) - IOVEC_SET_STRING(iovec[n++], "SYSLOG_IDENTIFIER=kernel"); - else { -@@ -295,9 +298,6 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { - if (syslog_pid) - IOVEC_SET_STRING(iovec[n++], syslog_pid); - } -- -- if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) -- IOVEC_SET_STRING(iovec[n++], syslog_facility); - } - - message = cunescape_length_with_prefix(p, pl, "MESSAGE="); --- -1.7.9.2 - diff --git a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch deleted file mode 100644 index 5bf1987e..00000000 --- a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 646e392e10924454576f10b072f78d7676422816 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 04:52:31 +0100 -Subject: [PATCH] logind: fix reference to systemd-user-sessions.service - ---- - src/login/logind-session.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 548f049..3700522 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { - if (!scope) - return log_oom(); - -- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); -+ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); - if (r < 0) { - log_error("Failed to start session scope %s: %s %s", - scope, bus_error_message(&error, r), error.name); --- -1.7.9.2 - diff --git a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch deleted file mode 100644 index f064927a..00000000 --- a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +++ /dev/null @@ -1,70 +0,0 @@ -From ff5f34d08c191c326c41a083745522383ac86cae Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 04:27:50 +0100 -Subject: [PATCH] mount: don't send out PropertiesChanged message if actually - nothing got changed - ---- - src/core/mount.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git src/core/mount.c src/core/mount.c -index b35e507..98812c9 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -1390,7 +1390,7 @@ static int mount_add_one( - _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; - bool load_extras = false; - MountParameters *p; -- bool delete; -+ bool delete, changed = false; - Unit *u; - int r; - -@@ -1458,6 +1458,7 @@ static int mount_add_one( - } - - unit_add_to_load_queue(u); -+ changed = true; - } else { - delete = false; - -@@ -1476,6 +1477,7 @@ static int mount_add_one( - /* Load in the extras later on, after we - * finished initialization of the unit */ - load_extras = true; -+ changed = true; - } - } - -@@ -1488,10 +1490,16 @@ static int mount_add_one( - } - - p = &MOUNT(u)->parameters_proc_self_mountinfo; -+ -+ changed = changed || -+ !streq_ptr(p->options, options) || -+ !streq_ptr(p->what, what) || -+ !streq_ptr(p->fstype, fstype); -+ - if (set_flags) { - MOUNT(u)->is_mounted = true; - MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; -- MOUNT(u)->just_changed = !streq_ptr(p->options, o); -+ MOUNT(u)->just_changed = changed; - } - - MOUNT(u)->from_proc_self_mountinfo = true; -@@ -1514,7 +1522,8 @@ static int mount_add_one( - goto fail; - } - -- unit_add_to_dbus_queue(u); -+ if (changed) -+ unit_add_to_dbus_queue(u); - - return 0; - --- -1.7.9.2 - diff --git a/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch b/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch deleted file mode 100644 index a88af680..00000000 --- a/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 9f24adc288de142d6606fde3c5a5971613f3b6b9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 May 2014 19:37:19 +0200 -Subject: [PATCH] nspawn: properly format container_uuid in UUID format - -http://lists.freedesktop.org/archives/systemd-devel/2014-April/018971.html ---- - src/nspawn/nspawn.c | 18 +++++++++++++----- - 1 file changed, 13 insertions(+), 5 deletions(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 0bd52da..6be4dca 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) { - return 0; - } - -+static char* id128_format_as_uuid(sd_id128_t id, char s[37]) { -+ -+ snprintf(s, 37, -+ "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", -+ SD_ID128_FORMAT_VAL(id)); -+ -+ return s; -+} -+ - static int setup_boot_id(const char *dest) { - _cleanup_free_ char *from = NULL, *to = NULL; - sd_id128_t rnd = {}; -@@ -794,10 +803,7 @@ static int setup_boot_id(const char *dest) { - return r; - } - -- snprintf(as_uuid, sizeof(as_uuid), -- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", -- SD_ID128_FORMAT_VAL(rnd)); -- char_array_0(as_uuid); -+ id128_format_as_uuid(rnd, as_uuid); - - r = write_string_file(from, as_uuid); - if (r < 0) { -@@ -2954,7 +2960,9 @@ int main(int argc, char *argv[]) { - } - - if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) { -- if (asprintf((char**)(envp + n_env++), "container_uuid=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(arg_uuid)) < 0) { -+ char as_uuid[37]; -+ -+ if (asprintf((char**)(envp + n_env++), "container_uuid=%s", id128_format_as_uuid(arg_uuid, as_uuid)) < 0) { - log_oom(); - goto child_fail; - } --- -1.7.9.2 - diff --git a/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch b/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch deleted file mode 100644 index f9e93696..00000000 --- a/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5a4d665ad679a8436f1210ba67d713a8f0b91b96 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 14 Mar 2014 21:15:32 +0100 -Subject: [PATCH] sd-bus: don't choke if somebody sends us a message with a - unix fd count of 0 - -It's kinda pointless to include a unix fd header field in messages if it -carries the value 0, but let's do this anyway... ---- - src/libsystemd/sd-bus/bus-message.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c -index 97ab0e3..b9d7f6d 100644 ---- src/libsystemd/sd-bus/bus-message.c -+++ src/libsystemd/sd-bus/bus-message.c -@@ -4885,6 +4885,7 @@ int bus_message_parse_fields(sd_bus_message *m) { - size_t ri; - int r; - uint32_t unix_fds = 0; -+ bool unix_fds_set = false; - void *offsets = NULL; - unsigned n_offsets = 0; - size_t sz = 0; -@@ -5097,7 +5098,7 @@ int bus_message_parse_fields(sd_bus_message *m) { - } - - case BUS_MESSAGE_HEADER_UNIX_FDS: -- if (unix_fds != 0) -+ if (unix_fds_set) - return -EBADMSG; - - if (!streq(signature, "u")) -@@ -5107,9 +5108,7 @@ int bus_message_parse_fields(sd_bus_message *m) { - if (r < 0) - return -EBADMSG; - -- if (unix_fds == 0) -- return -EBADMSG; -- -+ unix_fds_set = true; - break; - - default: --- -1.7.9.2 - diff --git a/0009-units-make-systemd-journald.service-Type-notify.patch b/0009-units-make-systemd-journald.service-Type-notify.patch deleted file mode 100644 index 4890daf5..00000000 --- a/0009-units-make-systemd-journald.service-Type-notify.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on a87a38c20196a4aeb56b6ba71d688eefd0b21c30 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 4 Nov 2014 20:28:08 +0100 -Subject: [PATCH] units: make systemd-journald.service Type=notify - -It already calls sd_notify(), so it looks like an oversight. - -Without it, its ordering to systemd-journal-flush.service is -non-deterministic and the SIGUSR1 from flushing may kill journald before -it has its signal handlers set up. - -https://bugs.freedesktop.org/show_bug.cgi?id=85871 -https://bugzilla.redhat.com/show_bug.cgi?id=1159641 ---- - units/systemd-journald.service.in | 1 + - 1 file changed, 1 insertion(+) - ---- units/systemd-journald.service.in -+++ units/systemd-journald.service.in 2014-11-10 12:22:08.461949786 +0000 -@@ -14,6 +14,7 @@ After=systemd-journald.socket syslog.soc - Before=sysinit.target - - [Service] -+Type=notify - ExecStart=@rootlibexecdir@/systemd-journald - Restart=always - RestartSec=0 diff --git a/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch b/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch deleted file mode 100644 index 0e7fdba3..00000000 --- a/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a9169c1c589bf7c7a29e7905d17e350ce7c7c48e Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Mon, 27 Oct 2014 11:08:26 +0100 -Subject: [PATCH] util: fix copy-paste error and actually set the new hostname - -Reported-by: sztanpet on irc ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 7d94a28..4143f6d 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -7189,7 +7189,7 @@ int sethostname_idempotent(const char *s) { - if (streq(buf, s)) - return 0; - -- r = sethostname(buf, strlen(buf)); -+ r = sethostname(s, strlen(s)); - if (r < 0) - return -errno; - --- -1.7.9.2 - diff --git a/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index dbf00485..00000000 --- a/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 5d20fde4a5c4dff4d7c737b545fbd13582d544c1 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Fri, 31 Oct 2014 20:37:59 +0100 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 57 +++++++++++++++++++++++++++++++++ - 1 file changed, 57 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index ee2efdf..58ca87d 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -1166,3 +1166,60 @@ bluetooth:v0181* - - bluetooth:v0182* - ID_VENDOR_FROM_DATABASE=HOP Ubiquitous -+ -+bluetooth:v0183* -+ ID_VENDOR_FROM_DATABASE=To Be Assigned -+ -+bluetooth:v0184* -+ ID_VENDOR_FROM_DATABASE=Nectar -+ -+bluetooth:v0185* -+ ID_VENDOR_FROM_DATABASE=bel'apps LLC -+ -+bluetooth:v0186* -+ ID_VENDOR_FROM_DATABASE=CORE Lighting Ltd -+ -+bluetooth:v0187* -+ ID_VENDOR_FROM_DATABASE=Seraphim Sense Ltd -+ -+bluetooth:v0188* -+ ID_VENDOR_FROM_DATABASE=Unico RBC -+ -+bluetooth:v0189* -+ ID_VENDOR_FROM_DATABASE=Physical Enterprises Inc. -+ -+bluetooth:v018A* -+ ID_VENDOR_FROM_DATABASE=Able Trend Technology Limited -+ -+bluetooth:v018B* -+ ID_VENDOR_FROM_DATABASE=Konica Minolta, Inc. -+ -+bluetooth:v018C* -+ ID_VENDOR_FROM_DATABASE=Wilo SE -+ -+bluetooth:v018D* -+ ID_VENDOR_FROM_DATABASE=Extron Design Services -+ -+bluetooth:v018E* -+ ID_VENDOR_FROM_DATABASE=Fitbit, Inc. -+ -+bluetooth:v018F* -+ ID_VENDOR_FROM_DATABASE=Fireflies Systems -+ -+bluetooth:v0190* -+ ID_VENDOR_FROM_DATABASE=Intelletto Technologies Inc. -+ -+bluetooth:v0191* -+ ID_VENDOR_FROM_DATABASE=FDK CORPORATION -+ -+bluetooth:v0192* -+ ID_VENDOR_FROM_DATABASE=Cloudleaf, Inc -+ -+bluetooth:v0193* -+ ID_VENDOR_FROM_DATABASE=Maveric Automation LLC -+ -+bluetooth:v0194* -+ ID_VENDOR_FROM_DATABASE=Acoustic Stream Corporation -+ -+bluetooth:v0195* -+ ID_VENDOR_FROM_DATABASE=Zuli --- -1.7.9.2 - diff --git a/0010-logind-allow-suspending-if-there-are-no-displays.patch b/0010-logind-allow-suspending-if-there-are-no-displays.patch deleted file mode 100644 index a12ff513..00000000 --- a/0010-logind-allow-suspending-if-there-are-no-displays.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d36d90933a832bd1e1eb8e3d16b3de73f91636b4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Mon, 28 Apr 2014 00:58:56 +0300 -Subject: [PATCH] logind: allow suspending if there are no displays - -With proprietary graphics drivers, there won't be any 'drm' devices in -sysfs, so logind will never suspend the system upon closing the lid, -even if only one (internal) display is connected. This has been reported -by multiple users so far. - -IMHO, it's better to suspend the system in this case for safety reasons, -to avoid having nvidia blob users' laptops overheat, for the same reason -that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes). ---- - src/login/logind-action.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index ae9cd48..36ee441 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -79,14 +79,12 @@ int manager_handle_action( - return 0; - } - -- /* If we have more than one or no displays connected, -- * don't react to lid closing. The no display case we -- * treat like this under the assumption that there is -- * no modern drm driver available. */ -+ /* If we have more than one display connected, -+ * don't react to lid closing. */ - n = manager_count_displays(m); - if (n < 0) - log_warning("Display counting failed: %s", strerror(-n)); -- else if (n != 1) { -+ else if (n > 1) { - log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } --- -1.7.9.2 - diff --git a/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch b/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch deleted file mode 100644 index cd65acf9..00000000 --- a/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9d685ca8193c0da3ad5746be3871f5350179a3b3 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Thu, 14 Aug 2014 19:59:16 +0200 -Subject: [PATCH] machine_kill(): Don't kill the unit when killing the leader - -If "machinectl poweroff" or "machinectl reboot" is used on a -systemd-nspawn container started with --keep-unit and --register, it -should *only* send the appropriate signal to the leader PID (i.e. the -container's systemd process). It shouldn't fall through to -manager_kill_unit() to also send the signal to the unit. The latter -ends up killing systemd-nspawn, which takes down the container -prematurely. ---- - src/machine/machine.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git src/machine/machine.c src/machine/machine.c -index 1c9177e..13d3448 100644 ---- src/machine/machine.c -+++ src/machine/machine.c -@@ -493,6 +493,8 @@ int machine_kill(Machine *m, KillWho who, int signo) { - - if (kill(m->leader, signo) < 0) - return -errno; -+ -+ return 0; - } - - /* Otherwise make PID 1 do it for us, for the entire cgroup */ --- -1.7.9.2 - diff --git a/0010-man-update-link-to-LSB.patch b/0010-man-update-link-to-LSB.patch deleted file mode 100644 index 07a96f01..00000000 --- a/0010-man-update-link-to-LSB.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Mar 2014 08:10:19 -0500 -Subject: [PATCH] man: update link to LSB - -https://bugzilla.redhat.com/show_bug.cgi?id=1073402 ---- - man/daemon.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/daemon.xml man/daemon.xml -index fd29ba7..ab58d08 100644 ---- man/daemon.xml -+++ man/daemon.xml -@@ -252,7 +252,7 @@ - detect service errors and problems. It - is recommended to follow the exit code - scheme as defined in the LSB -+ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB - recommendations for SysV init - scripts. - -@@ -395,7 +395,7 @@ - exclusively on boot (and manually by the - administrator) via SysV init scripts, as - detailed in the LSB -+ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB - Linux Standard Base Core - Specification. This method of - activation is supported ubiquitously on Linux --- -1.7.9.2 - diff --git a/0010-manager-use-correct-cleanup-function.patch b/0010-manager-use-correct-cleanup-function.patch deleted file mode 100644 index 0f46dec8..00000000 --- a/0010-manager-use-correct-cleanup-function.patch +++ /dev/null @@ -1,30 +0,0 @@ -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/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch deleted file mode 100644 index 79bf62d4..00000000 --- a/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +++ /dev/null @@ -1,51 +0,0 @@ -From aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 04:28:37 +0100 -Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that - are stopped - ---- - src/core/mount.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git src/core/mount.c src/core/mount.c -index 98812c9..7a92e1c 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -1679,20 +1679,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - Mount *mount = MOUNT(u); - - if (!mount->is_mounted) { -- /* This has just been unmounted. */ - - mount->from_proc_self_mountinfo = false; - - switch (mount->state) { - - case MOUNT_MOUNTED: -+ /* This has just been unmounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_dead(mount, MOUNT_SUCCESS); - break; - - default: -- mount_set_state(mount, mount->state); - break; -- - } - - } else if (mount->just_mounted || mount->just_changed) { -@@ -1703,6 +1703,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - case MOUNT_DEAD: - case MOUNT_FAILED: -+ /* This has just been mounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_mounted(mount, MOUNT_SUCCESS); - break; - --- -1.7.9.2 - diff --git a/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch b/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch deleted file mode 100644 index cafa5324..00000000 --- a/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on d89b5fed9ea5d9ec293585cb85bb27b56ea6ac9c Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 21 Oct 2014 18:38:42 +0200 -Subject: [PATCH] shutdown: do final unmounting only if not running inside the - container - -If we run in the container then we run in a mount namespace. If namespace dies -then kernel should do unmounting for us, hence we skip unmounting in containers. - -Also, it may be the case that we no longer have capability to do umount, -because we are running in the unprivileged container. - -See: http://lists.freedesktop.org/archives/systemd-devel/2014-October/023536.html ---- - src/core/shutdown.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/shutdown.c -+++ src/core/shutdown.c 2014-10-29 14:18:38.767837898 +0000 -@@ -278,6 +278,7 @@ int main(int argc, char *argv[]) { - broadcast_signal(SIGKILL, true, false); - - if (in_container) { -+ need_umount = false; - need_swapoff = false; - need_dm_detach = false; - need_loop_detach = false; diff --git a/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch b/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch deleted file mode 100644 index e99c1a0d..00000000 --- a/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch +++ /dev/null @@ -1,25 +0,0 @@ -From da92ca5eb506d513033e0c7a85daf25a7e1c9d0e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 20 Jun 2014 22:43:49 -0400 -Subject: [PATCH] util: treat fuse.sshfs as a network filesystem - -https://bugs.freedesktop.org/show_bug.cgi?id=73727 ---- - src/shared/util.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/util.c src/shared/util.c -index 882a690..dbdb692 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1514,6 +1514,7 @@ bool fstype_is_network(const char *fstype) { - static const char table[] = - "cifs\0" - "smbfs\0" -+ "sshfs\0" - "ncpfs\0" - "ncp\0" - "nfs\0" --- -1.7.9.2 - diff --git a/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch b/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch deleted file mode 100644 index 325f04a9..00000000 --- a/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8e75477abdd838d3beddc5fd1c6a7707b22748b6 Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Sat, 21 Jun 2014 22:07:09 +0200 -Subject: [PATCH] build-sys: add -pthread flag for libsystemd-shared - -src/shared/async.c uses pthread so it will fail at link time if we link -only to libsystemd-shared and use async ---- - Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git Makefile.am Makefile.am -index c7653ea..00db82d 100644 ---- Makefile.am -+++ Makefile.am -@@ -837,7 +837,8 @@ nodist_libsystemd_shared_la_SOURCES = \ - - libsystemd_shared_la_CFLAGS = \ - $(AM_CFLAGS) \ -- $(SECCOMP_CFLAGS) -+ $(SECCOMP_CFLAGS) \ -+ -pthread - - # ------------------------------------------------------------------------------ - noinst_LTLIBRARIES += \ --- -1.7.9.2 - diff --git a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch deleted file mode 100644 index 6ff83d12..00000000 --- a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 47d80904a1f72d559962cc5ad32fffd46672a34a Mon Sep 17 00:00:00 2001 -From: Uoti Urpala -Date: Thu, 20 Feb 2014 03:00:09 +0200 -Subject: [PATCH] logs-show: fix corrupt output with empty messages - -If a message had zero length, journalctl would print no newline, and -two output lines would be concatenated. Fix. The problem was -introduced in commit 31f7bf199452 ("logs-show: print multiline -messages"). Affected short and verbose output modes. - -Before fix: - -Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit - -after: - -Feb 09 21:16:17 glyph dhclient[1323]: -Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit ---- - src/shared/logs-show.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/shared/logs-show.c src/shared/logs-show.c -index 61c3652..12d4a1c 100644 ---- src/shared/logs-show.c -+++ src/shared/logs-show.c -@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output - } - } - -+ /* A special case: make sure that we print a newline when -+ the message is empty. */ -+ if (message_len == 0) -+ fputs("\n", f); -+ - for (pos = message; - pos < message + message_len; - pos = end + 1, line++) { --- -1.7.9.2 - diff --git a/0011-man-systemd-bootchart-fix-spacing-in-command.patch b/0011-man-systemd-bootchart-fix-spacing-in-command.patch deleted file mode 100644 index 60c206b3..00000000 --- a/0011-man-systemd-bootchart-fix-spacing-in-command.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 82ed60080d327d7301fcd55f5a1f8511f894b9d5 Mon Sep 17 00:00:00 2001 -From: Zachary Cook -Date: Thu, 6 Mar 2014 03:49:49 -0500 -Subject: [PATCH] man: systemd-bootchart - fix spacing in command - -Use the same formatting as the systemd-analyze man page, so that man shows a space. ---- - man/systemd-bootchart.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd-bootchart.xml man/systemd-bootchart.xml -index d0adaad..1715d5d 100644 ---- man/systemd-bootchart.xml -+++ man/systemd-bootchart.xml -@@ -78,8 +78,8 @@ - in which order, and where possible problems - exist in the startup sequence of the system. - It is essentially a more detailed version of -- the systemd-analyze -- plot function. -+ the systemd-analyze plot -+ function. - - - Of course, bootchart can also be used at any --- -1.7.9.2 - diff --git a/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch b/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch deleted file mode 100644 index 1592a5aa..00000000 --- a/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +++ /dev/null @@ -1,57 +0,0 @@ -Based on dec23413ecc90d4a547aa41f02af0482b4513495 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 27 Oct 2014 21:31:29 -0400 -Subject: [PATCH] selinux: make sure we do not try to print missing fields - -UID or GID of 0 is valid, so we cannot use that to distinguish whether -calls to sd_bus_creds_get_* succeeded, and the return value from the -function is the only way to know about missing fields. Print "n/a" if -the fields are missing. - -CID #1238779 ---- - src/core/selinux-access.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git src/core/selinux-access.c src/core/selinux-access.c -index 08ea6ef..351d48f 100644 ---- src/core/selinux-access.c -+++ src/core/selinux-access.c -@@ -53,7 +53,7 @@ struct audit_info { - - /* - Any time an access gets denied this callback will be called -- with the aduit data. We then need to just copy the audit data into the msgbuf. -+ with the audit data. We then need to just copy the audit data into the msgbuf. - */ - static int audit_callback( - void *auditdata, -@@ -64,14 +64,20 @@ static int audit_callback( - const struct audit_info *audit = auditdata; - uid_t uid = 0, login_uid = 0; - gid_t gid = 0; -+ char login_uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; -+ char uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; -+ char gid_buf[DECIMAL_STR_MAX(gid_t)] = "n/a"; - -- sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid); -- sd_bus_creds_get_uid(audit->creds, &uid); -- sd_bus_creds_get_gid(audit->creds, &gid); -+ if (sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid) >= 0) -+ snprintf(login_uid_buf, sizeof(login_uid_buf), UID_FMT, login_uid); -+ if (sd_bus_creds_get_uid(audit->creds, &uid) >= 0) -+ snprintf(uid_buf, sizeof(uid_buf), UID_FMT, uid); -+ if (sd_bus_creds_get_gid(audit->creds, &gid) >= 0) -+ snprintf(gid_buf, sizeof(gid_buf), "%lu", (unsigned long)gid); - - snprintf(msgbuf, msgbufsize, -- "auid=%d uid=%d gid=%d%s%s%s%s%s%s", -- login_uid, uid, gid, -+ "auid=%s uid=%s gid=%s%s%s%s%s%s%s", -+ login_uid_buf, uid_buf, gid_buf, - audit->path ? " path=\"" : "", strempty(audit->path), audit->path ? "\"" : "", - audit->cmdline ? " cmdline=\"" : "", strempty(audit->cmdline), audit->cmdline ? "\"" : ""); - --- -1.7.9.2 - diff --git a/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch b/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch deleted file mode 100644 index 7dee5011..00000000 --- a/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch +++ /dev/null @@ -1,93 +0,0 @@ -From ff50244582bf69e8489bba6ce59a21663d7f8274 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 Aug 2014 22:21:42 +0200 -Subject: [PATCH] units: fix BindsTo= logic when applied relative to services - with Type=oneshot -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Start jobs for Type=oneshot units are successful when the unit state -transition activating → inactive took place. In such a case all units -that BindsTo= on it previously would continue to run, even though the unit -they dependet on was actually already gone. ---- - src/core/unit.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 44 insertions(+), 4 deletions(-) - -diff --git src/core/unit.c src/core/unit.c -index a5f6b2e..950b83a 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1471,12 +1471,44 @@ static void unit_check_unneeded(Unit *u) { - if (unit_active_or_pending(other)) - return; - -- log_info_unit(u->id, "Service %s is not needed anymore. Stopping.", u->id); -+ log_info_unit(u->id, "Unit %s is not needed anymore. Stopping.", u->id); - - /* Ok, nobody needs us anymore. Sniff. Then let's commit suicide */ - manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); - } - -+static void unit_check_binds_to(Unit *u) { -+ bool stop = false; -+ Unit *other; -+ Iterator i; -+ -+ assert(u); -+ -+ if (u->job) -+ return; -+ -+ if (unit_active_state(u) != UNIT_ACTIVE) -+ return; -+ -+ SET_FOREACH(other, u->dependencies[UNIT_BINDS_TO], i) { -+ if (other->job) -+ continue; -+ -+ if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) -+ continue; -+ -+ stop = true; -+ } -+ -+ if (!stop) -+ return; -+ -+ log_info_unit(u->id, "Unit %s is bound to inactive service. Stopping, too.", u->id); -+ -+ /* A unit we need to run is gone. Sniff. Let's stop this. */ -+ manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); -+} -+ - static void retroactively_start_dependencies(Unit *u) { - Iterator i; - Unit *other; -@@ -1788,11 +1820,19 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - manager_recheck_journal(m); - unit_trigger_notify(u); - -- /* Maybe we finished startup and are now ready for being -- * stopped because unneeded? */ -- if (u->manager->n_reloading <= 0) -+ if (u->manager->n_reloading <= 0) { -+ /* Maybe we finished startup and are now ready for -+ * being stopped because unneeded? */ - unit_check_unneeded(u); - -+ /* Maybe we finished startup, but something we needed -+ * has vanished? Let's die then. (This happens when -+ * something BindsTo= to a Type=oneshot unit, as these -+ * units go directly from starting to inactive, -+ * without ever entering started.) */ -+ unit_check_binds_to(u); -+ } -+ - unit_add_to_dbus_queue(u); - unit_add_to_gc_queue(u); - } --- -1.7.9.2 - diff --git a/0012-core-transaction-avoid-misleading-error-message-when.patch b/0012-core-transaction-avoid-misleading-error-message-when.patch deleted file mode 100644 index 03021cd2..00000000 --- a/0012-core-transaction-avoid-misleading-error-message-when.patch +++ /dev/null @@ -1,42 +0,0 @@ -Based on 04ef5b03f64d3824a51a2a903548af029a006744 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 22 Jun 2014 14:04:23 -0400 -Subject: [PATCH] core/transaction: avoid misleading error message when unit - not found - -There's no point in telling the user to look at the logs when -an attempt to load the unit file failed with ENOENT. - -https://bugzilla.redhat.com/show_bug.cgi?id=996133 ---- - TODO | 4 ---- - src/core/transaction.c | 18 ++++++++++++------ - 2 files changed, 12 insertions(+), 10 deletions(-) - ---- src/core/transaction.c -+++ src/core/transaction.c 2014-06-24 11:18:42.746235805 +0000 -@@ -865,12 +865,18 @@ int transaction_add_job_and_dependencies - } - - if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { -- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, -- "Unit %s failed to load: %s. " -- "See system logs and 'systemctl status %s' for details.", -- unit->id, -- strerror(-unit->load_error), -- unit->id); -+ if (unit->load_error == -ENOENT) -+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, -+ "Unit %s failed to load: %s.", -+ unit->id, -+ strerror(-unit->load_error)); -+ else -+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, -+ "Unit %s failed to load: %s. " -+ "See system logs and 'systemctl status %s' for details.", -+ unit->id, -+ strerror(-unit->load_error), -+ unit->id); - return -EINVAL; - } - diff --git a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch deleted file mode 100644 index 00b0669b..00000000 --- a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0b6b7c2004317da48e5bbd3078c5662d8f0061b6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 26 Feb 2014 23:01:43 -0500 -Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar - -Positional arguments only make sense with the default action. -For other actions, complain instead of ignoring them silently. ---- - src/journal/journalctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/journal/journalctl.c src/journal/journalctl.c -index a328ba1..0619b25 100644 ---- src/journal/journalctl.c -+++ src/journal/journalctl.c -@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { - return -EINVAL; - } - -+ if (arg_action != ACTION_SHOW && optind < argc) { -+ log_error("Extraneous arguments starting with '%s'", argv[optind]); -+ return -EINVAL; -+ } -+ - return 1; - } - --- -1.7.9.2 - diff --git a/0012-journald-remove-stray-reset-of-error-return-value.patch b/0012-journald-remove-stray-reset-of-error-return-value.patch deleted file mode 100644 index f15237f7..00000000 --- a/0012-journald-remove-stray-reset-of-error-return-value.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 2fc74bf4336eb7a7e40c0b355d19966cd97d4b3c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 10 Mar 2014 21:19:23 -0400 -Subject: [PATCH] journald: remove stray reset of error return value - ---- - src/journal/journald.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git src/journal/journald.c src/journal/journald.c -index 37896d0..c8c0801 100644 ---- src/journal/journald.c -+++ src/journal/journald.c -@@ -110,7 +110,6 @@ int main(int argc, char *argv[]) { - r = sd_event_run(server.event, t); - if (r < 0) { - log_error("Failed to run event loop: %s", strerror(-r)); -- r = -errno; - goto finish; - } - --- -1.7.9.2 - diff --git a/0012-man-add-missing-comma.patch b/0012-man-add-missing-comma.patch deleted file mode 100644 index 9d779f43..00000000 --- a/0012-man-add-missing-comma.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Mar 2014 23:54:13 -0500 -Subject: [PATCH] man: add missing comma - -marcosf0> missing comma in udevadm "see also" section ---- - man/udevadm.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git man/udevadm.xml man/udevadm.xml -index a3f8d54..21d1443 100644 ---- man/udevadm.xml -+++ man/udevadm.xml -@@ -594,7 +594,7 @@ - See Also - - udev7 -- -+ , - - systemd-udevd.service8 - --- -1.7.9.2 - diff --git a/0012-manager-do-not-print-anything-while-passwords-are-be.patch b/0012-manager-do-not-print-anything-while-passwords-are-be.patch deleted file mode 100644 index 88c30eab..00000000 --- a/0012-manager-do-not-print-anything-while-passwords-are-be.patch +++ /dev/null @@ -1,180 +0,0 @@ -Based on e46b13c8c7f48f81d4e09912f2265daaa7f6d27e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 25 Oct 2014 20:30:51 -0400 -Subject: [PATCH] manager: do not print anything while passwords are being - queried - -https://bugs.freedesktop.org/show_bug.cgi?id=73942 ---- - src/core/manager.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++- - src/core/manager.h | 5 ++ - 2 files changed, 109 insertions(+), 1 deletion(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-10-29 14:31:18.984212089 +0000 -@@ -25,6 +25,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -212,6 +214,96 @@ static void manager_print_jobs_in_progre - - } - -+static int have_ask_password(void) { -+ _cleanup_closedir_ DIR *dir; -+ -+ dir = opendir("/run/systemd/ask-password"); -+ if (!dir) { -+ if (errno == ENOENT) -+ return false; -+ else -+ return -errno; -+ } -+ -+ for (;;) { -+ struct dirent *de; -+ -+ errno = 0; -+ de = readdir(dir); -+ if (!de && errno != 0) -+ return -errno; -+ if (!de) -+ return false; -+ -+ if (startswith(de->d_name, "ask.")) -+ return true; -+ } -+} -+ -+static int manager_dispatch_ask_password_fd(sd_event_source *source, -+ int fd, uint32_t revents, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(m); -+ -+ flush_fd(fd); -+ -+ m->have_ask_password = have_ask_password(); -+ if (m->have_ask_password < 0) -+ /* Log error but continue. Negative have_ask_password -+ * is treated as unknown status. */ -+ log_error("Failed to list /run/systemd/ask-password: %s", strerror(m->have_ask_password)); -+ -+ return 0; -+} -+ -+static void manager_close_ask_password(Manager *m) { -+ assert(m); -+ if (m->ask_password_inotify_fd >= 0) close_nointr_nofail(m->ask_password_inotify_fd); -+ m->ask_password_inotify_fd = -1; -+ m->ask_password_event_source = sd_event_source_unref(m->ask_password_event_source); -+ m->have_ask_password = -EINVAL; -+} -+ -+static int manager_check_ask_password(Manager *m) { -+ int r; -+ -+ assert(m); -+ -+ if (!m->ask_password_event_source) { -+ assert(m->ask_password_inotify_fd < 0); -+ -+ mkdir_p_label("/run/systemd/ask-password", 0755); -+ -+ m->ask_password_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); -+ if (m->ask_password_inotify_fd < 0) { -+ log_error("inotify_init1() failed: %m"); -+ return -errno; -+ } -+ -+ if (inotify_add_watch(m->ask_password_inotify_fd, "/run/systemd/ask-password", IN_CREATE|IN_DELETE|IN_MOVE) < 0) { -+ log_error("Failed to add watch on /run/systemd/ask-password: %m"); -+ manager_close_ask_password(m); -+ return -errno; -+ } -+ -+ r = sd_event_add_io(m->event, &m->ask_password_event_source, -+ m->ask_password_inotify_fd, EPOLLIN, -+ manager_dispatch_ask_password_fd, m); -+ if (r < 0) { -+ log_error("Failed to add event source for /run/systemd/ask-password: %m"); -+ manager_close_ask_password(m); -+ return -errno; -+ } -+ -+ /* Queries might have been added meanwhile... */ -+ manager_dispatch_ask_password_fd(m->ask_password_event_source, -+ m->ask_password_inotify_fd, EPOLLIN, m); -+ } -+ -+ return m->have_ask_password; -+} -+ - static int manager_watch_idle_pipe(Manager *m) { - int r; - -@@ -470,6 +562,9 @@ int manager_new(SystemdRunningAs running - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; - m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ - -+ m->ask_password_inotify_fd = -1; -+ m->have_ask_password = -EINVAL; /* we don't know */ -+ - r = manager_default_environment(m); - if (r < 0) - goto fail; -@@ -847,6 +942,8 @@ void manager_free(Manager *m) { - if (m->kdbus_fd >= 0) - close_nointr_nofail(m->kdbus_fd); - -+ manager_close_ask_password(m); -+ - manager_close_idle_pipe(m); - - udev_unref(m->udev); -@@ -2526,6 +2623,9 @@ void manager_check_finished(Manager *m) - /* Turn off confirm spawn now */ - m->confirm_spawn = false; - -+ /* No need to update ask password status when we're going non-interactive */ -+ manager_close_ask_password(m); -+ - if (dual_timestamp_is_set(&m->finish_timestamp)) - return; - -@@ -2843,12 +2943,15 @@ static bool manager_get_show_status(Mana - if (m->no_console_output) - return false; - -+ /* If we cannot find out the status properly, just proceed. */ -+ if (manager_check_ask_password(m) > 0) -+ return false; -+ - if (m->show_status > 0) - return true; - - /* If Plymouth is running make sure we show the status, so - * that there's something nice to see when people press Esc */ -- - return plymouth_running(); - } - ---- src/core/manager.h -+++ src/core/manager.h 2014-10-29 00:00:00.000000000 +0000 -@@ -231,6 +231,11 @@ struct Manager { - unsigned n_on_console; - unsigned jobs_in_progress_iteration; - -+ /* Do we have any outstanding password prompts? */ -+ int have_ask_password; -+ int ask_password_inotify_fd; -+ sd_event_source *ask_password_event_source; -+ - /* Type=idle pipes */ - int idle_pipe[4]; - sd_event_source *idle_pipe_event_source; diff --git a/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch b/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch deleted file mode 100644 index becc7844..00000000 --- a/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 70421bdce2719d76efffd8afdc28433c75aac5a2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 Aug 2014 23:15:51 +0200 -Subject: [PATCH] util: try to be a bit more NFS compatible when checking - whether an FS is writable - -https://bugs.freedesktop.org/show_bug.cgi?id=81169 ---- - src/shared/path-util.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git src/shared/path-util.c src/shared/path-util.c -index 57554cd..67566bc 100644 ---- src/shared/path-util.c -+++ src/shared/path-util.c -@@ -533,7 +533,16 @@ int path_is_read_only_fs(const char *path) { - if (statvfs(path, &st) < 0) - return -errno; - -- return !!(st.f_flag & ST_RDONLY); -+ if (st.f_flag & ST_RDONLY) -+ return true; -+ -+ /* On NFS, statvfs() might not reflect whether we can actually -+ * write to the remote share. Let's try again with -+ * access(W_OK) which is more reliable, at least sometimes. */ -+ if (access(path, W_OK) < 0 && errno == EROFS) -+ return true; -+ -+ return false; - } - - int path_is_os_tree(const char *path) { --- -1.7.9.2 - diff --git a/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch b/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch deleted file mode 100644 index 0343c2ad..00000000 --- a/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 6f285378aa6e4b5b23c939d1fea16f9ab0a57efb Mon Sep 17 00:00:00 2001 -From: Miklos Vajna -Date: Fri, 14 Mar 2014 21:13:38 +0100 -Subject: [PATCH] core, libsystemd, systemd, timedate, udev: spelling fixes - ---- - src/core/service.c | 2 +- - src/core/unit.c | 2 +- - src/libsystemd/sd-bus/bus-message.c | 2 +- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/systemd/sd-resolve.h | 2 +- - src/timedate/timedated.c | 2 +- - src/udev/udevadm-settle.c | 2 +- - 7 files changed, 8 insertions(+), 8 deletions(-) - -diff --git src/core/service.c src/core/service.c -index 41b95ab..386692a 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -3416,7 +3416,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - free(t); - } - -- /* Interpet WATCHDOG= */ -+ /* Interpret WATCHDOG= */ - if (strv_find(tags, "WATCHDOG=1")) { - log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); - service_reset_watchdog(s); -diff --git src/core/unit.c src/core/unit.c -index 5c98843..4fb0d9c 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1537,7 +1537,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - unit_destroy_cgroup(u); - - /* Note that this doesn't apply to RemainAfterExit services exiting -- * sucessfully, since there's no change of state in that case. Which is -+ * successfully, since there's no change of state in that case. Which is - * why it is handled in service_set_state() */ - if (UNIT_IS_INACTIVE_OR_FAILED(os) != UNIT_IS_INACTIVE_OR_FAILED(ns)) { - ExecContext *ec; -diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c -index b9d7f6d..e32f2b8 100644 ---- src/libsystemd/sd-bus/bus-message.c -+++ src/libsystemd/sd-bus/bus-message.c -@@ -4215,7 +4215,7 @@ static int message_read_ap( - * in a single stackframe. We hence implement our own - * home-grown stack in an array. */ - -- n_array = (unsigned) -1; /* lenght of current array entries */ -+ n_array = (unsigned) -1; /* length of current array entries */ - n_struct = strlen(types); /* length of current struct contents signature */ - - for (;;) { -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index 8e44e50..ba8a8a2 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -1447,7 +1447,7 @@ static int bus_seal_message(sd_bus *b, sd_bus_message *m, usec_t timeout) { - static int bus_remarshal_message(sd_bus *b, sd_bus_message **m) { - assert(b); - -- /* Do packet version and endianess already match? */ -+ /* Do packet version and endianness already match? */ - if ((b->message_version == 0 || b->message_version == (*m)->header->version) && - (b->message_endian == 0 || b->message_endian == (*m)->header->endian)) - return 0; -@@ -1464,7 +1464,7 @@ int bus_seal_synthetic_message(sd_bus *b, sd_bus_message *m) { - * hence let's fill something in for synthetic messages. Since - * synthetic messages might have a fake sender and we don't - * want to interfere with the real sender's serial numbers we -- * pick a fixed, artifical one. We use (uint32_t) -1 rather -+ * pick a fixed, artificial one. We use (uint32_t) -1 rather - * than (uint64_t) -1 since dbus1 only had 32bit identifiers, - * even though kdbus can do 64bit. */ - -diff --git src/systemd/sd-resolve.h src/systemd/sd-resolve.h -index df69e4b..3c1d482 100644 ---- src/systemd/sd-resolve.h -+++ src/systemd/sd-resolve.h -@@ -129,7 +129,7 @@ int sd_resolve_get_next(sd_resolve *resolve, sd_resolve_query **q); - int sd_resolve_get_n_queries(sd_resolve *resolve); - - /** Cancel a currently running query. q is is destroyed by this call -- * and may not be used any futher. */ -+ * and may not be used any further. */ - int sd_resolve_cancel(sd_resolve_query* q); - - /** Returns non-zero when the query operation specified by q has been completed */ -diff --git src/timedate/timedated.c src/timedate/timedated.c -index d85ce57..c4a797a 100644 ---- src/timedate/timedated.c -+++ src/timedate/timedated.c -@@ -468,7 +468,7 @@ static int property_get_rtc_time( - zero(tm); - r = hwclock_get_time(&tm); - if (r == -EBUSY) { -- log_warning("/dev/rtc is busy, is somebody keeping it open continously? That's not a good idea... Returning a bogus RTC timestamp."); -+ log_warning("/dev/rtc is busy, is somebody keeping it open continuously? That's not a good idea... Returning a bogus RTC timestamp."); - t = 0; - } else if (r == -ENOENT) { - log_debug("Not /dev/rtc found."); -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index b026155..927ea2a 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -100,7 +100,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - case '?': - exit(EXIT_FAILURE); - default: -- assert_not_reached("Unkown argument"); -+ assert_not_reached("Unknown argument"); - } - - if (optind < argc) { --- -1.7.9.2 - diff --git a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch deleted file mode 100644 index f65e5d3e..00000000 --- a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 6c49212741253dae05b89d22374186f092ef1e5a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Fri, 7 Mar 2014 01:50:34 +0100 -Subject: [PATCH] units: Do not unescape instance name in - systemd-backlight@.service - -The instance name is never escaped in the udev rule, but unescaped in the unit. -This results in the following error message on Asus boards: - - Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory ---- - units/systemd-backlight@.service.in | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git units/systemd-backlight@.service.in units/systemd-backlight@.service.in -index 5caa5d5..e945d87 100644 ---- units/systemd-backlight@.service.in -+++ units/systemd-backlight@.service.in -@@ -6,7 +6,7 @@ - # (at your option) any later version. - - [Unit] --Description=Load/Save Screen Backlight Brightness of %I -+Description=Load/Save Screen Backlight Brightness of %i - Documentation=man:systemd-backlight@.service(8) - DefaultDependencies=no - RequiresMountsFor=/var/lib/systemd/backlight -@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target - [Service] - Type=oneshot - RemainAfterExit=yes --ExecStart=@rootlibexecdir@/systemd-backlight load %I --ExecStop=@rootlibexecdir@/systemd-backlight save %I -+ExecStart=@rootlibexecdir@/systemd-backlight load %i -+ExecStop=@rootlibexecdir@/systemd-backlight save %i --- -1.7.9.2 - diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch index 6bf95fb4..c3ae1a23 100644 --- a/0014-journald-with-journaling-FS.patch +++ b/0014-journald-with-journaling-FS.patch @@ -1,5 +1,22 @@ ---- systemd-208/src/journal/journald-server.c -+++ systemd-208/src/journal/journald-server.c 2013-12-10 16:31:50.770235717 +0000 +From: werner@suse.de +Upstream: marked as openSUSE-specific fix originally, but may well + worth be to be sent upstream. + +Original description: + (none) + +Augmented description [jengelh@inai.de]: +Disable COW on journal files, as that is naturally leading to a lot +of unwanted fragmentation on btrfs. +No word on compression… +--- + src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +Index: systemd/src/journal/journald-server.c +=================================================================== +--- systemd.orig/src/journal/journald-server.c ++++ systemd/src/journal/journald-server.c @@ -21,6 +21,7 @@ #include @@ -8,45 +25,50 @@ #include #include #include -@@ -878,7 +879,7 @@ finish: +@@ -917,6 +918,38 @@ finish: + dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid); + } - - static int system_journal_open(Server *s) { -- int r; -+ int r, fd; - char *fn; - sd_id128_t machine; - char ids[33]; -@@ -905,7 +906,31 @@ static int system_journal_open(Server *s - (void) mkdir("/var/log/journal/", 0755); - - fn = strappenda("/var/log/journal/", ids); -- (void) mkdir(fn, 0755); -+ (void)mkdir(fn, 0755); ++/* ++ * On journaling and/or compressing file systems, avoid doubling the efforts ++ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every ++ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on ++ * a single unkown flag (like BtrFS does). ++ * ++ * …but src/journal/journal-file.c already sets NOCOW too…⸘ ++ */ ++static void disable_cow(const char *dir, const Server *serv) ++{ ++ unsigned long flags; ++ int fd = open(dir, O_DIRECTORY); + -+ /* -+ * On journaling and/or compressing file systems avoid doubling the -+ * efforts for the system, that is set NOCOW and NOCOMP inode flags. -+ * Check for every single flag as otherwise some of the file systems -+ * may return EOPNOTSUPP on one unkown flag (like BtrFS does). -+ */ -+ if ((fd = open(fn, O_DIRECTORY)) >= 0) { -+ long flags; -+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { -+ int old = flags; -+ if (!(flags&FS_NOATIME_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) -+ flags |= FS_NOATIME_FL; -+ if (!(flags&FS_NOCOW_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) -+ flags |= FS_NOCOW_FL; -+ if (!(flags&FS_NOCOMP_FL) && s->compress) { -+ flags &= ~FS_COMPR_FL; -+ flags |= FS_NOCOMP_FL; -+ } -+ if (old != flags) -+ ioctl(fd, FS_IOC_SETFLAGS, flags); -+ } -+ close(fd); ++ if (fd < 0) ++ return; ++ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { ++ unsigned long old = flags; ++ if (!(flags & FS_NOATIME_FL) && ++ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOATIME_FL) == 0) ++ flags |= FS_NOATIME_FL; ++ if (!(flags & FS_NOCOW_FL) && ++ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOCOW_FL) == 0) ++ flags |= FS_NOCOW_FL; ++ if (!(flags & FS_NOCOMP_FL) && serv->compress) { ++ flags &= ~FS_COMPR_FL; ++ flags |= FS_NOCOMP_FL; + } ++ if (old != flags) ++ ioctl(fd, FS_IOC_SETFLAGS, flags); ++ } ++ close(fd); ++} - fn = strappenda(fn, "/system.journal"); + static int system_journal_open(Server *s, bool flush_requested) { + int r; +@@ -946,6 +979,7 @@ static int system_journal_open(Server *s + + fn = strjoina("/var/log/journal/", ids); + (void) mkdir(fn, 0755); ++ disable_cow(fn, s); + + fn = strjoina(fn, "/system.journal"); r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); diff --git a/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch deleted file mode 100644 index c4c2f4cb..00000000 --- a/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 -From: Tero Roponen -Date: Tue, 25 Feb 2014 17:19:35 +0200 -Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid - -Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: - Failed to read /proc/self/loginuid: No such file or directory - - Container Fedora failed with error code 1. - -This patch fixes the problem. ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 1fe641b..92b6728 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { - return 0; - - r = read_one_line_file("/proc/self/loginuid", &p); -- if (r == -EEXIST) -+ if (r == -ENOENT) - return 0; - if (r < 0) { - log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); --- -1.7.9.2 - diff --git a/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch deleted file mode 100644 index a98660ec..00000000 --- a/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +++ /dev/null @@ -1,68 +0,0 @@ -Should solve the problems of - - bug #858864 - LSB "+" dependencies aren't handled properly - bug #857204 - inssrv fails to enable rpcbind - The side effect is that RequiresOverridable= is used for the services - add behind Required-Start - bug #863217 - systemd overrides explicit admin request to disable a service - That is that in this version the Wants= for all services behind - Should-Start, X-Start-Before, and X-Stop-After is not used anymore - ---- - service.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - ---- systemd-208/src/core/service.c -+++ systemd-208/src/core/service.c 2014-02-21 14:44:59.066735478 +0000 -@@ -380,6 +380,8 @@ static int sysv_translate_facility(const - "remote_fs", SPECIAL_REMOTE_FS_TARGET, - "syslog", NULL, - "time", SPECIAL_TIME_SYNC_TARGET, -+ "all", SPECIAL_DEFAULT_TARGET, -+ "null", NULL, - }; - - unsigned i; -@@ -389,7 +391,7 @@ static int sysv_translate_facility(const - assert(name); - assert(_r); - -- n = *name == '$' ? name + 1 : name; -+ n = (*name == '$' || *name == '+') ? name + 1 : name; - - for (i = 0; i < ELEMENTSOF(table); i += 2) { - -@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic - startswith_no_case(t, "Should-Start:") || - startswith_no_case(t, "X-Start-Before:") || - startswith_no_case(t, "X-Start-After:")) { -+ UnitDependency d, e; - char *i, *w; - size_t z; - - state = LSB; -+ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER; -+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : _UNIT_DEPENDENCY_INVALID; - - FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) { - char *n, *m; -@@ -838,12 +843,18 @@ static int service_load_sysv_path(Servic - continue; - } - -+ if (*n == '+') -+ e = UNIT_WANTS; -+ - free(n); - - if (r == 0) - continue; - -- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true); -+ if (e != _UNIT_DEPENDENCY_INVALID) -+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); -+ else -+ r = unit_add_dependency_by_name(u, d, m, NULL, true); - - if (r < 0) - log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s", diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch index 89d79183..a545cf08 100644 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ b/0019-make-completion-smart-to-be-able-to-redirect.patch @@ -1,8 +1,45 @@ ---- systemd-208/shell-completion/bash/hostnamectl -+++ systemd-208/shell-completion/bash/hostnamectl 2014-01-17 14:27:16.183272019 +0000 +--- + shell-completion/bash/coredumpctl | 6 +++++- + shell-completion/bash/hostnamectl | 6 +++++- + shell-completion/bash/journalctl | 6 +++++- + shell-completion/bash/kernel-install | 13 ++++++++++++- + shell-completion/bash/localectl | 6 +++++- + shell-completion/bash/loginctl | 6 +++++- + shell-completion/bash/systemctl.in | 6 +++++- + shell-completion/bash/systemd-analyze | 6 +++++- + shell-completion/bash/systemd-run | 14 +++++++++++++- + shell-completion/bash/timedatectl | 6 +++++- + shell-completion/bash/udevadm | 6 +++++- + 11 files changed, 70 insertions(+), 11 deletions(-) + +Index: systemd/shell-completion/bash/coredumpctl +=================================================================== +--- systemd.orig/shell-completion/bash/coredumpctl ++++ systemd/shell-completion/bash/coredumpctl +@@ -44,6 +44,10 @@ _coredumpctl() { + [DUMP]='dump gdb' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" '--output -o'; then + comps=$( compgen -A file -- "$cur" ) + compopt -o filenames +@@ -82,4 +86,4 @@ _coredumpctl() { + return 0 + } + +-complete -F _coredumpctl coredumpctl ++complete -o default -o bashdefault -F _coredumpctl coredumpctl +Index: systemd/shell-completion/bash/hostnamectl +=================================================================== +--- systemd.orig/shell-completion/bash/hostnamectl ++++ systemd/shell-completion/bash/hostnamectl @@ -30,6 +30,10 @@ _hostnamectl() { local OPTS='-h --help --version --transient --static --pretty - --no-ask-password -H --host' + --no-ask-password -H --host --machine' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -11,16 +48,18 @@ if [[ $cur = -* ]]; then COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) return 0 -@@ -58,4 +62,4 @@ _hostnamectl() { +@@ -61,4 +65,4 @@ _hostnamectl() { return 0 } -complete -F _hostnamectl hostnamectl +complete -o default -o bashdefault -F _hostnamectl hostnamectl ---- systemd-208/shell-completion/bash/journalctl -+++ systemd-208/shell-completion/bash/journalctl 2014-01-17 14:34:30.338737694 +0000 -@@ -49,6 +49,10 @@ _journalctl() { - --verify-key' +Index: systemd/shell-completion/bash/journalctl +=================================================================== +--- systemd.orig/shell-completion/bash/journalctl ++++ systemd/shell-completion/bash/journalctl +@@ -55,6 +55,10 @@ _journalctl() { + --root --machine' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -30,14 +69,16 @@ if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then case $prev in --boot|--this-boot|-b) -@@ -107,4 +111,4 @@ _journalctl() { +@@ -120,4 +124,4 @@ _journalctl() { fi } -complete -F _journalctl journalctl +complete -o default -o bashdefault -F _journalctl journalctl ---- systemd-208/shell-completion/bash/kernel-install -+++ systemd-208/shell-completion/bash/kernel-install 2014-01-17 14:34:41.982255874 +0000 +Index: systemd/shell-completion/bash/kernel-install +=================================================================== +--- systemd.orig/shell-completion/bash/kernel-install ++++ systemd/shell-completion/bash/kernel-install @@ -18,11 +18,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -67,11 +108,13 @@ -complete -F _kernel_install kernel-install +complete -o default -o bashdefault -F _kernel_install kernel-install ---- systemd-208/shell-completion/bash/localectl -+++ systemd-208/shell-completion/bash/localectl 2014-01-17 14:34:52.546235747 +0000 -@@ -30,6 +30,10 @@ _localectl() { +Index: systemd/shell-completion/bash/localectl +=================================================================== +--- systemd.orig/shell-completion/bash/localectl ++++ systemd/shell-completion/bash/localectl +@@ -36,6 +36,10 @@ _localectl() { local OPTS='-h --help --version --no-convert --no-pager --no-ask-password - -H --host' + -H --host --machine' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -80,17 +123,19 @@ if __contains_word "$prev" $OPTS; then case $prev in --host|-H) -@@ -73,4 +77,4 @@ _localectl() { +@@ -89,4 +93,4 @@ _localectl() { return 0 } -complete -F _localectl localectl +complete -o default -o bashdefault -F _localectl localectl ---- systemd-208/shell-completion/bash/loginctl -+++ systemd-208/shell-completion/bash/loginctl 2014-01-17 14:35:03.386245699 +0000 -@@ -37,6 +37,10 @@ _loginctl () { - [ARG]='--host -H --kill-who --property -p --signal -s' - ) +Index: systemd/shell-completion/bash/loginctl +=================================================================== +--- systemd.orig/shell-completion/bash/loginctl ++++ systemd/shell-completion/bash/loginctl +@@ -38,6 +38,10 @@ _loginctl () { + [ARG]='--host -H --kill-who --property -p --signal -s --machine' + ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -99,15 +144,17 @@ if __contains_word "$prev" ${OPTS[ARG]}; then case $prev in --signal|-s) -@@ -106,4 +110,4 @@ _loginctl () { +@@ -107,4 +111,4 @@ _loginctl () { return 0 } -complete -F _loginctl loginctl +complete -o default -o bashdefault -F _loginctl loginctl ---- systemd-208/shell-completion/bash/systemctl -+++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000 -@@ -77,6 +77,10 @@ _systemctl () { +Index: systemd/shell-completion/bash/systemctl.in +=================================================================== +--- systemd.orig/shell-completion/bash/systemctl.in ++++ systemd/shell-completion/bash/systemctl.in +@@ -96,6 +96,10 @@ _systemctl () { [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' ) @@ -118,16 +165,18 @@ if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user else -@@ -226,4 +230,4 @@ _systemctl () { +@@ -264,4 +268,4 @@ _systemctl () { return 0 } -complete -F _systemctl systemctl +complete -o default -o bashdefault -F _systemctl systemctl ---- systemd-208/shell-completion/bash/systemd-analyze -+++ systemd-208/shell-completion/bash/systemd-analyze 2014-01-17 14:35:38.366736021 +0000 -@@ -37,6 +37,10 @@ _systemd_analyze() { - [LOG_LEVEL]='set-log-level' +Index: systemd/shell-completion/bash/systemd-analyze +=================================================================== +--- systemd.orig/shell-completion/bash/systemd-analyze ++++ systemd/shell-completion/bash/systemd-analyze +@@ -47,6 +47,10 @@ _systemd_analyze() { + [VERIFY]='verify' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -137,33 +186,16 @@ _init_completion || return for ((i=0; i < COMP_CWORD; i++)); do -@@ -83,4 +87,4 @@ _systemd_analyze() { +@@ -114,4 +118,4 @@ _systemd_analyze() { return 0 } -complete -F _systemd_analyze systemd-analyze +complete -o default -o bashdefault -F _systemd_analyze systemd-analyze ---- systemd-208/shell-completion/bash/systemd-coredumpctl -+++ systemd-208/shell-completion/bash/systemd-coredumpctl 2014-01-17 14:35:46.434235632 +0000 -@@ -44,6 +44,10 @@ _coredumpctl() { - [DUMP]='dump gdb' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" '--output -o'; then - comps=$( compgen -A file -- "$cur" ) - compopt -o filenames -@@ -82,4 +86,4 @@ _coredumpctl() { - return 0 - } - --complete -F _coredumpctl systemd-coredumpctl -+complete -o default -o bashdefault -F _coredumpctl systemd-coredumpctl ---- systemd-208/shell-completion/bash/systemd-run -+++ systemd-208/shell-completion/bash/systemd-run 2014-01-17 14:35:55.938236298 +0000 +Index: systemd/shell-completion/bash/systemd-run +=================================================================== +--- systemd.orig/shell-completion/bash/systemd-run ++++ systemd/shell-completion/bash/systemd-run @@ -17,6 +17,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -178,7 +210,7 @@ __systemctl() { local mode=$1; shift 1 systemctl $mode --full --no-legend "$@" -@@ -31,6 +38,11 @@ _systemd_run() { +@@ -38,6 +45,11 @@ _systemd_run() { local mode=--system local i @@ -190,17 +222,19 @@ for (( i=1; i <= COMP_CWORD; i++ )); do if [[ ${COMP_WORDS[i]} != -* ]]; then local root_command=${COMP_WORDS[i]} -@@ -60,4 +72,4 @@ _systemd_run() { +@@ -98,4 +110,4 @@ _systemd_run() { return 0 } -complete -F _systemd_run systemd-run +complete -o default -o bashdefault -F _systemd_run systemd-run ---- systemd-208/shell-completion/bash/timedatectl -+++ systemd-208/shell-completion/bash/timedatectl 2014-01-17 14:36:06.182735466 +0000 +Index: systemd/shell-completion/bash/timedatectl +=================================================================== +--- systemd.orig/shell-completion/bash/timedatectl ++++ systemd/shell-completion/bash/timedatectl @@ -30,6 +30,10 @@ _timedatectl() { local OPTS='-h --help --version --adjust-system-clock --no-pager - --no-ask-password -H --host' + --no-ask-password -H --host --machine' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -215,8 +249,10 @@ -complete -F _timedatectl timedatectl +complete -o default -o bashdefault -F _timedatectl timedatectl ---- systemd-208/shell-completion/bash/udevadm -+++ systemd-208/shell-completion/bash/udevadm 2014-01-17 14:36:16.406236120 +0000 +Index: systemd/shell-completion/bash/udevadm +=================================================================== +--- systemd.orig/shell-completion/bash/udevadm ++++ systemd/shell-completion/bash/udevadm @@ -36,6 +36,10 @@ _udevadm() { local verbs=(info trigger settle control monitor hwdb test-builtin test) diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch index 58bb7b25..b4bc2d07 100644 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -22,14 +22,14 @@ References: bnc#770910,FATE#317063 Signed-off-by: Robert Milasan Signed-off-by: Hannes Reinecke --- - src/udev/udev-builtin-path_id.c | 53 +++++++++++++++++++++++++++++++---------- + src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 12 deletions(-) -diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c -index 0599980..fbd3fda 100644 ---- a/src/udev/udev-builtin-path_id.c -+++ b/src/udev/udev-builtin-path_id.c -@@ -339,6 +339,46 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * +Index: systemd-218/src/udev/udev-builtin-path_id.c +=================================================================== +--- systemd-218.orig/src/udev/udev-builtin-path_id.c ++++ systemd-218/src/udev/udev-builtin-path_id.c +@@ -426,6 +426,46 @@ static struct udev_device *handle_scsi_h return parent; } @@ -73,10 +73,10 @@ index 0599980..fbd3fda 100644 + return hostdev; +} + - static struct udev_device *handle_scsi(struct udev_device *parent, char **path) - { + static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) { const char *devtype; -@@ -375,19 +415,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) + const char *name; +@@ -465,19 +505,8 @@ static struct udev_device *handle_scsi(s goto out; } @@ -97,6 +97,3 @@ index 0599980..fbd3fda 100644 goto out; } --- -1.8.1.4 - diff --git a/1003-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch index 93756c5a..eee1415f 100644 --- a/1003-udev-netlink-null-rules.patch +++ b/1003-udev-netlink-null-rules.patch @@ -4,17 +4,19 @@ Subject: udev netlink null rules udevd race for netlink events (bnc#774646) --- - src/udev/udevd.c | 2 ++ + src/udev/udevd.c | 2 ++ 1 file changed, 2 insertions(+) ---- systemd-206.orig/src/udev/udevd.c -+++ systemd-206/src/udev/udevd.c -@@ -1337,6 +1337,8 @@ int main(int argc, char *argv[]) +Index: systemd-218/src/udev/udevd.c +=================================================================== +--- systemd-218.orig/src/udev/udevd.c ++++ systemd-218/src/udev/udevd.c +@@ -1468,6 +1468,8 @@ int main(int argc, char *argv[]) { dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); + if (rules == NULL) -+ rules = udev_rules_new(udev, resolve_names); ++ rules = udev_rules_new(udev, arg_resolve_names); if (event_queue_insert(dev) < 0) udev_device_unref(dev); } diff --git a/1005-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch index e70b5758..85abb1f7 100644 --- a/1005-create-default-links-for-primary-cd_dvd-drive.patch +++ b/1005-create-default-links-for-primary-cd_dvd-drive.patch @@ -4,14 +4,16 @@ Subject: create default links for primary cd_dvd drive cdrom_id: created links for the default cd/dvd drive (bnc#783054). --- - rules/60-cdrom_id.rules | 5 ++++- + rules/60-cdrom_id.rules | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ---- systemd-206.orig/rules/60-cdrom_id.rules -+++ systemd-206/rules/60-cdrom_id.rules -@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr - # enable the receiving of media eject button events - IMPORT{program}="cdrom_id --lock-media $devnode" +Index: systemd/rules/60-cdrom_id.rules +=================================================================== +--- systemd.orig/rules/60-cdrom_id.rules ++++ systemd/rules/60-cdrom_id.rules +@@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $ + # stale mounts after ejecting + ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0" -KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" +KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index eb98cc2f..f838b9ac 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -9,15 +9,17 @@ Date: Tue, 4 Mar 2014 10:29:21 +0000 Port the patch of Robert to systemd v210 and test it out. --- - udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 38 insertions(+), 4 deletions(-) + src/udev/udev-event.c | 41 +++++++++++++++++++++++++++++++++++++---- + 1 file changed, 37 insertions(+), 4 deletions(-) ---- systemd-210/src/udev/udev-event.c -+++ systemd-210/src/udev/udev-event.c 2014-03-27 13:19:06.727748307 +0000 -@@ -750,8 +750,9 @@ static int rename_netif(struct udev_even +Index: systemd-218/src/udev/udev-event.c +=================================================================== +--- systemd-218.orig/src/udev/udev-event.c ++++ systemd-218/src/udev/udev-event.c +@@ -767,20 +767,53 @@ out: + static int rename_netif(struct udev_event *event) { struct udev_device *dev = event->dev; - _cleanup_rtnl_unref_ sd_rtnl *rtnl = NULL; char name[IFNAMSIZ]; + char interim[IFNAMSIZ], *ptr = &interim[0]; const char *oldname; @@ -26,43 +28,40 @@ Port the patch of Robert to systemd v210 and test it out. oldname = udev_device_get_sysname(dev); -@@ -765,12 +766,45 @@ static int rename_netif(struct udev_even - return r; + strscpy(name, IFNAMSIZ, event->name); - r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); + r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); - if (r < 0) + if (r == 0) { -+ print_kmsg("renamed network interface %s to %s\n", oldname, name); ++ log_info("renamed network interface %s to %s\n", oldname, name); + return r; + } else if (r != -EEXIST) { - log_error("error changing net interface name %s to %s: %s", - oldname, name, strerror(-r)); -- else -- print_kmsg("renamed network interface %s to %s", oldname, name); -+ return r; -+ } -+ + return log_error_errno(r, "Error changing net interface name '%s' to '%s': %m", oldname, name); ++ } + +- log_debug("renamed network interface '%s' to '%s'", oldname, name); + /* free our own name, another process may wait for us */ + strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); -+ -+ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); + +- return 0; ++ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), interim); + if (r < 0) { + log_error("error changing net interface name %s to %s: %s", + oldname, interim, strerror(-r)); + return r; + } - ++ + /* log temporary name */ -+ print_kmsg("renamed network interface %s to %s\n", oldname, interim); ++ log_info("renamed network interface %s to %s\n", oldname, interim); + + loop = 90 * 20; + while (loop--) { + const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; + nanosleep(&duration, NULL); + -+ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); ++ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); + if (r == 0) { -+ print_kmsg("renamed network interface %s to %s\n", interim, name); ++ log_info("renamed network interface %s to %s\n", interim, name); + break; + } + @@ -72,6 +71,7 @@ Port the patch of Robert to systemd v210 and test it out. + break; + } + } - return r; ++ return r; } + void udev_event_execute_rules(struct udev_event *event, diff --git a/1008-add-msft-compability-rules.patch b/1008-add-msft-compability-rules.patch deleted file mode 100644 index d0117371..00000000 --- a/1008-add-msft-compability-rules.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- systemd-206.orig/Makefile.am -+++ systemd-206/Makefile.am -@@ -2484,6 +2484,10 @@ dist_udevrules_DATA += \ - rules/80-hotplug-cpu-mem.rules - - # ------------------------------------------------------------------------------ -+dist_udevrules_DATA += \ -+ rules/61-msft.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ ---- /dev/null -+++ systemd-206/rules/61-msft.rules -@@ -0,0 +1,9 @@ -+# MSFT compability rules -+ACTION!="add|change", GOTO="msft_end" -+ -+ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_IDENT_*" -+KERNEL=="sd*[!0-9]|sr*", ENV{SCSI_IDENT_LUN_T10}!="?*", IMPORT{program}="/usr/bin/sg_inq -p di --export $tempnode" -+KERNEL=="sd*|sr*", ENV{DEVTYPE}=="disk", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}" -+KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}-part%n" -+ -+LABEL="msft_end" diff --git a/1009-cdrom_id-use-the-old-MMC-fallback.patch b/1009-cdrom_id-use-the-old-MMC-fallback.patch deleted file mode 100644 index ada9292f..00000000 --- a/1009-cdrom_id-use-the-old-MMC-fallback.patch +++ /dev/null @@ -1,54 +0,0 @@ -From a14f14976094650e17d39f3a7d15a1c68c93c333 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Thu, 27 Feb 2014 11:06:37 +0100 -Subject: [PATCH] cdrom_id: use the old MMC fallback - -https://bugzilla.redhat.com/show_bug.cgi?id=1038015 -The problem seems to be that the your virtual DVD is emulating a really -old DVD device, and doing it kind of strangely. - -> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 -> probing: '/dev/sr0' -> INQUIRY: [IMM ][Virtual CD/DVD ][0316] -> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h - -So your virtual drive rejects the GET CONFIGURATION command as illegal. - -Other pre-MMC2 drives that don't accept this command usually return the -error -SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id -tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set -and all the /dev/disk/by-label (etc) links get set up. - -The virtual drive returns the error SK=5h,ASC=24h (invalid field in -Command Descriptor Block), which cdrom_id doesn't handle, so it gives up -and the links never get made. - -The ideal solution would be to make the IMM to emulate a device that's -less than 15 years old, but I'm not going to hold my breath waiting for -that. - -So probably cdrom_id should also use the old MMC fallback when the error -is SK=5h,ASC=24h, and then all of this would work as expected. - -Suggested-by:Luca Miccini ---- - src/udev/cdrom_id/cdrom_id.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/cdrom_id/cdrom_id.c src/udev/cdrom_id/cdrom_id.c -index 93467c2..33b2bc3 100644 ---- a/src/udev/cdrom_id/cdrom_id.c -+++ b/src/udev/cdrom_id/cdrom_id.c -@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) - if ((err != 0)) { - info_scsi_cmd_err(udev, "GET CONFIGURATION", err); - /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ -- if (SK(err) == 0x5 && ASC(err) == 0x20) { -+ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { - log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); - log_debug("trying to work around the problem"); - ret = cd_profiles_old_mmc(udev, fd); --- -1.7.9.2 - diff --git a/1010-udev-increase-result-size-for-programs.patch b/1010-udev-increase-result-size-for-programs.patch deleted file mode 100644 index 7eb2ea72..00000000 --- a/1010-udev-increase-result-size-for-programs.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-210/src/udev/udev-rules.c -=================================================================== ---- systemd-210.orig/src/udev/udev-rules.c -+++ systemd-210/src/udev/udev-rules.c -@@ -2027,7 +2027,7 @@ int udev_rules_apply_to_event(struct ude - case TK_M_PROGRAM: { - char program[UTIL_PATH_SIZE]; - char **envp; -- char result[UTIL_PATH_SIZE]; -+ char result[UTIL_LINE_SIZE]; - - free(event->program_result); - event->program_result = NULL; diff --git a/1014-udev-update-net_id-comments.patch b/1014-udev-update-net_id-comments.patch deleted file mode 100644 index 6b0b7f5a..00000000 --- a/1014-udev-update-net_id-comments.patch +++ /dev/null @@ -1,102 +0,0 @@ -From d4b687c96adf207f0878aebf3ce3371f6160687f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 27 Mar 2014 15:30:09 +0100 -Subject: [PATCH] udev: update net_id comments - -Signed-off-by: Robert Milasan ---- - src/udev/udev-builtin-net_id.c | 31 +++++++++++++++---------------- - 1 file changed, 15 insertions(+), 16 deletions(-) - -diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c -index 4f2b2c1..9ac07de 100644 ---- a/src/udev/udev-builtin-net_id.c -+++ b/src/udev/udev-builtin-net_id.c -@@ -33,8 +33,11 @@ - * ww -- wwan - * - * Type of names: -+ * b -- BCMA bus core number -+ * ccw -- CCW bus group name - * o -- on-board device index number - * s[f][d] -- hotplug slot index number -+ * v -- virtio number - * x -- MAC address - * [P]ps[f][d] - * -- PCI geographical location -@@ -119,12 +122,9 @@ struct netnames { - const char *pci_onboard_label; - - char usb_ports[IFNAMSIZ]; -- - char bcma_core[IFNAMSIZ]; -- -- char virtio_core[IFNAMSIZ]; -- -- char ccw_core[IFNAMSIZ]; -+ char virtio[IFNAMSIZ]; -+ char ccw_group[IFNAMSIZ]; - }; - - /* retrieve on-board index number and label from firmware */ -@@ -353,18 +353,17 @@ static int names_bcma(struct udev_device *dev, struct netnames *names) { - - static int names_virtio(struct udev_device *dev, struct netnames *names) { - struct udev_device *virtdev; -- unsigned int core; -+ unsigned int num; - - virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); - if (!virtdev) - return -ENOENT; - -- /* core num */ -- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1) -+ if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) - return -EINVAL; -- /* suppress the common core == 0 */ -- if (core > 0) -- snprintf(names->virtio_core, sizeof(names->virtio_core), "v%u", core); -+ /* suppress the common num == 0 */ -+ if (num > 0) -+ snprintf(names->virtio, sizeof(names->virtio), "v%u", num); - - names->type = NET_VIRTIO; - return 0; -@@ -402,8 +401,8 @@ static int names_ccw(struct udev_device *dev, struct netnames *names) { - return -EINVAL; - - /* Store the CCW bus-ID for use as network device name */ -- rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", bus_id); -- if (rc >= 0 && rc < (int)sizeof(names->ccw_core)) -+ rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id); -+ if (rc >= 0 && rc < (int)sizeof(names->ccw_group)) - names->type = NET_CCWGROUP; - return 0; - } -@@ -517,7 +516,7 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool - if (err >= 0 && names.type == NET_CCWGROUP) { - char str[IFNAMSIZ]; - -- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); - goto out; - } -@@ -585,11 +584,11 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool - char str[IFNAMSIZ]; - - if (names.pci_path[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); - - if (names.pci_slot[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); - goto out; - } --- -1.8.4.5 - diff --git a/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch b/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch deleted file mode 100644 index a5e9c58f..00000000 --- a/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +++ /dev/null @@ -1,99 +0,0 @@ -From bf81e792f3c0aed54edf004c1c95cc6f6d81d0ee Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 27 Mar 2014 21:47:14 +0100 -Subject: [PATCH] udev: persistent naming - we cannot use virtio numbers as - they are not stable - -This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk support to path_id' and -commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio buses'. - -Distros may want to take note of this, as it changes behavior. - -Signed-off-by: Robert Milasan ---- - src/udev/udev-builtin-net_id.c | 36 ------------------------------------ - src/udev/udev-builtin-path_id.c | 3 --- - 2 files changed, 39 deletions(-) - -Index: systemd-210/src/udev/udev-builtin-net_id.c -=================================================================== ---- systemd-210.orig/src/udev/udev-builtin-net_id.c -+++ systemd-210/src/udev/udev-builtin-net_id.c -@@ -37,7 +37,6 @@ - * ccw -- CCW bus group name - * o -- on-board device index number - * s[f][d] -- hotplug slot index number -- * v -- virtio number - * x -- MAC address - * [P]ps[f][d] - * -- PCI geographical location -@@ -123,7 +122,6 @@ struct netnames { - - char usb_ports[IFNAMSIZ]; - char bcma_core[IFNAMSIZ]; -- char virtio[IFNAMSIZ]; - char ccw_group[IFNAMSIZ]; - }; - -@@ -351,24 +349,6 @@ static int names_bcma(struct udev_device - return 0; - } - --static int names_virtio(struct udev_device *dev, struct netnames *names) { -- struct udev_device *virtdev; -- unsigned int num; -- -- virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); -- if (!virtdev) -- return -ENOENT; -- -- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) -- return -EINVAL; -- /* suppress the common num == 0 */ -- if (num > 0) -- snprintf(names->virtio, sizeof(names->virtio), "v%u", num); -- -- names->type = NET_VIRTIO; -- return 0; --} -- - static int names_ccw(struct udev_device *dev, struct netnames *names) { - struct udev_device *cdev; - const char *bus_id; -@@ -577,22 +557,6 @@ static int builtin_net_id(struct udev_de - udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); - goto out; - } -- -- /* virtio bus */ -- err = names_virtio(dev, &names); -- if (err >= 0 && names.type == NET_VIRTIO) { -- char str[IFNAMSIZ]; -- -- if (names.pci_path[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) -- udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); -- -- if (names.pci_slot[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) -- udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); -- goto out; -- } -- - out: - return EXIT_SUCCESS; - } -Index: systemd-210/src/udev/udev-builtin-path_id.c -=================================================================== ---- systemd-210.orig/src/udev/udev-builtin-path_id.c -+++ systemd-210/src/udev/udev-builtin-path_id.c -@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d - } else if (streq(subsys, "xen")) { - path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "xen"); -- } else if (streq(subsys, "virtio")) { -- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent)); -- parent = skip_subsystem(parent, "virtio"); - } else if (streq(subsys, "scm")) { - path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "scm"); diff --git a/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch b/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch deleted file mode 100644 index fcf5f374..00000000 --- a/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on e6c474723dc66cd4765fd09453d6b48bd5905ba4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 20 Apr 2014 13:57:26 -0400 -Subject: [PATCH] udev: warn when name_to_handle_at is not implemented - -We have a bunch of reports from people who have a custom kernel and -are confused why udev is not running. Issue a warning on -error. Barring an error in the code, the only error that is possible -is ENOSYS. - -https://bugzilla.redhat.com/show_bug.cgi?id=1072966 ---- - src/libudev/libudev-monitor.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- src/libudev/libudev-monitor.c -+++ src/libudev/libudev-monitor.c 2014-05-12 00:00:00.000000000 +0000 -@@ -115,8 +115,11 @@ static bool udev_has_devtmpfs(struct ude - int r; - - r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); -- if (r < 0) -+ if (r < 0) { -+ if (errno != EOPNOTSUPP) -+ udev_err(udev, "name_to_handle_at on /dev: %m\n"); - return false; -+ } - - - f = fopen("/proc/self/mountinfo", "re"); diff --git a/1017-udev-serialize-synchronize-block-device-event-handli.patch b/1017-udev-serialize-synchronize-block-device-event-handli.patch deleted file mode 100644 index 559c0bc3..00000000 --- a/1017-udev-serialize-synchronize-block-device-event-handli.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 3ebdb81ef088afd3b4c72b516beb5610f8c93a0d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 13 Apr 2014 19:54:27 -0700 -Subject: [PATCH] udev: serialize/synchronize block device event handling with - file locks - ---- - src/udev/udevd.c | 33 +++++++++++++++++++++++++++++++-- - 1 file changed, 31 insertions(+), 2 deletions(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index f9ee368..aecd208 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -265,6 +266,7 @@ static void worker_new(struct event *event) - for (;;) { - struct udev_event *udev_event; - struct worker_message msg; -+ int fd_lock = -1; - int err; - - log_debug("seq %llu running", udev_device_get_seqnum(dev)); -@@ -280,6 +282,30 @@ static void worker_new(struct event *event) - if (exec_delay > 0) - udev_event->exec_delay = exec_delay; - -+ /* -+ * Take a "read lock" on the device node; this establishes -+ * a concept of device "ownership" to serialize device -+ * access. External processes holding a "write lock" will -+ * cause udev to skip the event handling; in the case udev -+ * acquired the lock, the external process will block until -+ * udev has finished its event handling. -+ */ -+ if (streq_ptr("block", udev_device_get_subsystem(dev))) { -+ struct udev_device *d = dev; -+ -+ if (streq_ptr("partition", udev_device_get_devtype(d))) -+ d = udev_device_get_parent(d); -+ -+ if (d) { -+ fd_lock = open(udev_device_get_devnode(d), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { -+ log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); -+ err = -EWOULDBLOCK; -+ goto skip; -+ } -+ } -+ } -+ - /* apply rules, create node, symlinks */ - err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); - -@@ -292,13 +318,16 @@ static void worker_new(struct event *event) - udev_device_update_db(dev); - } - -+ if (fd_lock >= 0) -+ close(fd_lock); -+ - /* send processed event back to libudev listeners */ - udev_monitor_send_device(worker_monitor, NULL, dev); - -+skip: - /* send udevd the result of the event execution */ - memzero(&msg, sizeof(struct worker_message)); -- if (err != 0) -- msg.exitcode = err; -+ msg.exitcode = err; - msg.pid = getpid(); - send(worker_watch[WRITE_END], &msg, sizeof(struct worker_message), 0); - --- -1.7.9.2 - diff --git a/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch b/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch deleted file mode 100644 index e3bd7286..00000000 --- a/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 1ea972174baba40dbc80c51cbfc4edc49764b59b Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 14 May 2014 00:34:49 +0200 -Subject: [PATCH] udev: do not skip the execution of RUN when renaming a - network device fails - ---- - src/test/test-udev.c | 5 ++--- - src/udev/udev-event.c | 11 +++++------ - src/udev/udev.h | 2 +- - src/udev/udevadm-test.c | 13 +++++-------- - src/udev/udevd.c | 5 ++--- - 5 files changed, 15 insertions(+), 21 deletions(-) - -diff --git src/test/test-udev.c src/test/test-udev.c -index b064744..b057cc8 100644 ---- src/test/test-udev.c -+++ src/test/test-udev.c -@@ -155,9 +155,8 @@ int main(int argc, char *argv[]) { - } - } - -- err = udev_event_execute_rules(event, rules, &sigmask_orig); -- if (err == 0) -- udev_event_execute_run(event, NULL); -+ udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_run(event, 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 2cab42b..5213a4a 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -776,13 +776,12 @@ static int rename_netif(struct udev_event *event) - return r; - } - --int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) -+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) - { - struct udev_device *dev = event->dev; -- int err = 0; - - if (udev_device_get_subsystem(dev) == NULL) -- return -1; -+ return; - - if (streq(udev_device_get_action(dev), "remove")) { - udev_device_read_db(dev, NULL); -@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, - event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) { - char syspath[UTIL_PATH_SIZE]; - char *pos; -+ int r; - -- err = rename_netif(event); -- if (err == 0) { -+ r = rename_netif(event); -+ if (r >= 0) { - log_debug("renamed netif to '%s'", event->name); - - /* remember old name */ -@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, - udev_device_unref(event->dev_db); - event->dev_db = NULL; - } -- return err; - } - - void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) -diff --git src/udev/udev.h src/udev/udev.h -index 936adfb..62538bc 100644 ---- src/udev/udev.h -+++ src/udev/udev.h -@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string, - int udev_event_spawn(struct udev_event *event, - const char *cmd, char **envp, const sigset_t *sigmask, - char *result, size_t ressize); --int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); -+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); - void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); - int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); - -diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c -index 6cd311b..6a2f548 100644 ---- src/udev/udevadm-test.c -+++ src/udev/udevadm-test.c -@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - _cleanup_udev_device_unref_ struct udev_device *dev = NULL; - _cleanup_udev_event_unref_ struct udev_event *event = NULL; - sigset_t mask, sigmask_orig; -- int err; - int rc = 0, c; - - static const struct option options[] = { -@@ -139,18 +138,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - goto out; - } - -- err = udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 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)); - -- if (err == 0) { -- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { -- char program[UTIL_PATH_SIZE]; -+ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { -+ char program[UTIL_PATH_SIZE]; - -- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); -- printf("run: '%s'\n", program); -- } -+ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); -+ printf("run: '%s'\n", program); - } - out: - if (event != NULL && event->fd_signal >= 0) -diff --git src/udev/udevd.c src/udev/udevd.c -index aecd208..bc0696c 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -307,10 +307,9 @@ static void worker_new(struct event *event) - } - - /* apply rules, create node, symlinks */ -- err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); -+ udev_event_execute_rules(udev_event, rules, &sigmask_orig); - -- if (err == 0) -- udev_event_execute_run(udev_event, &sigmask_orig); -+ udev_event_execute_run(udev_event, &sigmask_orig); - - /* apply/restore inotify watch */ - if (err == 0 && udev_event->inotify_watch) { --- -1.7.9.2 - diff --git a/1019-udev-avoid-use-of-uninitialized-err.patch b/1019-udev-avoid-use-of-uninitialized-err.patch deleted file mode 100644 index c520436e..00000000 --- a/1019-udev-avoid-use-of-uninitialized-err.patch +++ /dev/null @@ -1,37 +0,0 @@ -From bf9bead187802a52a1f376a03caee762d663e945 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 16 May 2014 23:46:48 +0200 -Subject: [PATCH] udev: avoid use of uninitialized err - -After 1ea972174baba40dbc80c51cbfc4edc49764b59b err is no longer -set unless we hit a special case. Initialize it to 0 and remove -a check that will never fail. ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index bc0696c..1c9488e 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -267,7 +267,7 @@ static void worker_new(struct event *event) - struct udev_event *udev_event; - struct worker_message msg; - int fd_lock = -1; -- int err; -+ int err = 0; - - log_debug("seq %llu running", udev_device_get_seqnum(dev)); - udev_event = udev_event_new(dev); -@@ -312,7 +312,7 @@ static void worker_new(struct event *event) - udev_event_execute_run(udev_event, &sigmask_orig); - - /* apply/restore inotify watch */ -- if (err == 0 && udev_event->inotify_watch) { -+ if (udev_event->inotify_watch) { - udev_watch_begin(udev, dev); - udev_device_update_db(dev); - } --- -1.7.9.2 - diff --git a/1020-udev-keyboard-also-hook-into-change-events.patch b/1020-udev-keyboard-also-hook-into-change-events.patch deleted file mode 100644 index 0d285973..00000000 --- a/1020-udev-keyboard-also-hook-into-change-events.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 49804365ea1242456c9763058a59cf68479e07ea Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 26 May 2014 09:30:21 +0800 -Subject: [PATCH] udev: keyboard - also hook into "change" events - -Re-apply the keymaps when "udevadm trigger" is called. Hooking into -"add" only would just remove all keymap content from the udev database -instead of applying the new config. ---- - rules/60-keyboard.rules | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git rules/60-keyboard.rules rules/60-keyboard.rules -index 4e0f366..22f71e7 100644 ---- rules/60-keyboard.rules -+++ rules/60-keyboard.rules -@@ -1,6 +1,6 @@ - # do not edit this file, it will be overwritten on update - --ACTION!="add", GOTO="keyboard_end" -+ACTION=="remove", GOTO="keyboard_end" - KERNEL!="event*", GOTO="keyboard_end" - ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" - --- -1.7.9.2 - diff --git a/1021-udev-re-add-persistent-net-rules.patch b/1021-udev-re-add-persistent-net-rules.patch index e8cd290c..5d21f1fe 100644 --- a/1021-udev-re-add-persistent-net-rules.patch +++ b/1021-udev-re-add-persistent-net-rules.patch @@ -1,7 +1,73 @@ -Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +--- + Makefile.am | 9 + src/udev/net/link-config.c | 17 + + src/udev/rule_generator/75-persistent-net-generator.rules | 105 ++++++++++ + src/udev/rule_generator/76-net-sriov-names.rules | 18 + + src/udev/rule_generator/net-set-sriov-names | 79 +++++++ + src/udev/rule_generator/rule_generator.functions | 113 +++++++++++ + src/udev/rule_generator/write_net_rules | 141 ++++++++++++++ + 7 files changed, 479 insertions(+), 3 deletions(-) + +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -3416,7 +3416,14 @@ dist_udevrules_DATA += \ + rules/75-tty-description.rules \ + rules/78-sound-card.rules \ + rules/80-net-setup-link.rules \ +- rules/95-udev-late.rules ++ rules/95-udev-late.rules \ ++ src/udev/rule_generator/75-persistent-net-generator.rules \ ++ src/udev/rule_generator/76-net-sriov-names.rules ++ ++udevlibexec_PROGRAMS += \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules \ ++ src/udev/rule_generator/net-set-sriov-names + + nodist_udevrules_DATA += \ + rules/99-systemd.rules +Index: systemd-218/src/udev/net/link-config.c +=================================================================== +--- systemd-218.orig/src/udev/net/link-config.c ++++ systemd-218/src/udev/net/link-config.c +@@ -176,16 +176,29 @@ static bool enable_name_policy(void) { + size_t l; + + r = proc_cmdline(&line); +- if (r < 0) { ++ if (r < 0) + log_warning_errno(r, "Failed to read /proc/cmdline, ignoring: %m"); ++#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) ++# warning Using persistent rules as a default ++ if (r <= 0) ++ return false; ++ ++ FOREACH_WORD_QUOTED(w, l, line, state) ++ if (strneq(w, "net.ifnames=1", l)) ++ return true; ++ ++ return false; ++#else ++# warning Using predictable rules as a default ++ if (r <= 0) + return true; +- } + + FOREACH_WORD_QUOTED(word, l, line, state) + if (strneq(word, "net.ifnames=0", l)) + return false; + + return true; ++#endif + } + + int link_config_load(link_config_ctx *ctx) { +Index: systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules =================================================================== --- /dev/null -+++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules ++++ systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules @@ -0,0 +1,105 @@ +# do not edit this file, it will be overwritten on update + @@ -108,10 +174,117 @@ Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" + +LABEL="persistent_net_generator_end" -Index: systemd-210/src/udev/rule_generator/rule_generator.functions +Index: systemd-218/src/udev/rule_generator/76-net-sriov-names.rules =================================================================== --- /dev/null -+++ systemd-210/src/udev/rule_generator/rule_generator.functions ++++ systemd-218/src/udev/rule_generator/76-net-sriov-names.rules +@@ -0,0 +1,18 @@ ++# do not edit this file, it will be overwritten on update ++# ++# rename SRIOV virtual function interfaces ++ ++ACTION=="remove", GOTO="net-sriov-names_end" ++SUBSYSTEM!="net", GOTO="net-sriov-names_end" ++ ++IMPORT{cmdline}="net.ifnames" ++ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" ++ ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" ++ ++# rename interface if needed ++ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" ++ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" ++ ++LABEL="net-sriov-names_end" +Index: systemd-218/src/udev/rule_generator/net-set-sriov-names +=================================================================== +--- /dev/null ++++ systemd-218/src/udev/rule_generator/net-set-sriov-names +@@ -0,0 +1,79 @@ ++#!/bin/bash -e ++# ++# This script is run to rename virtual interfaces ++# ++ ++if [ -n "$UDEV_LOG" ]; then ++ if [ "$UDEV_LOG" -ge 7 ]; then ++ set -x ++ fi ++fi ++ ++# according to dev_new_index(), ifindex is within [1, INT_MAX] ++int_max=$(/usr/bin/getconf INT_MAX) ++ifindex_before() { ++ a=$1 ++ b=$2 ++ ++ ((0 < (b - a) && (b - a) < int_max / 2 || ++ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) ++} ++ ++rename_interface() { ++ local src_net=$1 ++ local dest_net=$2 ++ local err=0 ++ ++ /sbin/ip link set dev $src_net down ++ /sbin/ip link set dev $src_net name $dest_net ++} ++ ++if [ -z "$INTERFACE" ]; then ++ echo "missing \$INTERFACE" >&2 ++ exit 1 ++fi ++ ++if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then ++ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") ++ if [ $(echo "$pf" | wc -l) -ne 1 ]; then ++ echo "too many pf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$INTERFACE/ifindex" ++ read pfindex < "/sys/class/net/$pf/ifindex" ++ if ifindex_before $pfindex $vfindex; then ++ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) ++ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do ++ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ echo "INTERFACE_NEW=$pf.vf$vfnum" ++ exit 0 ++ fi ++ done ++ fi ++fi ++ ++read pfindex < "/sys/class/net/$INTERFACE/ifindex" ++shopt -s nullglob ++for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do ++ vf=$(ls -1 "$virtfn/net") ++ if [ $(echo "$vf" | wc -l) -ne 1 ]; then ++ echo "too many vf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$vf/ifindex" ++ if ifindex_before $vfindex $pfindex; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ if [ "$INTERFACE_NEW" ]; then ++ new_name=$INTERFACE_NEW ++ else ++ new_name=$INTERFACE ++ fi ++ new_name="$new_name.vf$vfnum" ++ if [ "$vf" != "$new_name" ]; then ++ rename_interface "$vf" "$new_name" ++ fi ++ fi ++done +Index: systemd-218/src/udev/rule_generator/rule_generator.functions +=================================================================== +--- /dev/null ++++ systemd-218/src/udev/rule_generator/rule_generator.functions @@ -0,0 +1,113 @@ +# functions used by the udev rule generator + @@ -226,10 +399,10 @@ Index: systemd-210/src/udev/rule_generator/rule_generator.functions + $([ -e $RULES_FILE ] && echo $RULES_FILE) \ + 2>/dev/null) +} -Index: systemd-210/src/udev/rule_generator/write_net_rules +Index: systemd-218/src/udev/rule_generator/write_net_rules =================================================================== --- /dev/null -+++ systemd-210/src/udev/rule_generator/write_net_rules ++++ systemd-218/src/udev/rule_generator/write_net_rules @@ -0,0 +1,141 @@ +#!/bin/sh -e + @@ -372,161 +545,3 @@ Index: systemd-210/src/udev/rule_generator/write_net_rules +unlock_rules_file + +exit 0 -Index: systemd-210/Makefile.am -=================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2552,7 +2552,14 @@ dist_udevrules_DATA += \ - rules/75-tty-description.rules \ - rules/78-sound-card.rules \ - rules/80-net-setup-link.rules \ -- rules/95-udev-late.rules -+ rules/95-udev-late.rules \ -+ src/udev/rule_generator/75-persistent-net-generator.rules \ -+ src/udev/rule_generator/76-net-sriov-names.rules -+ -+udevlibexec_PROGRAMS += \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules \ -+ src/udev/rule_generator/net-set-sriov-names - - dist_udevhwdb_DATA = \ - hwdb/20-pci-vendor-model.hwdb \ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- /dev/null -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -0,0 +1,18 @@ -+# do not edit this file, it will be overwritten on update -+# -+# rename SRIOV virtual function interfaces -+ -+ACTION=="remove", GOTO="net-sriov-names_end" -+SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" -+ -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" -+ -+LABEL="net-sriov-names_end" -Index: systemd-210/src/udev/rule_generator/net-set-sriov-names -=================================================================== ---- /dev/null -+++ systemd-210/src/udev/rule_generator/net-set-sriov-names -@@ -0,0 +1,79 @@ -+#!/bin/bash -e -+# -+# This script is run to rename virtual interfaces -+# -+ -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+# according to dev_new_index(), ifindex is within [1, INT_MAX] -+int_max=$(/usr/bin/getconf INT_MAX) -+ifindex_before() { -+ a=$1 -+ b=$2 -+ -+ ((0 < (b - a) && (b - a) < int_max / 2 || -+ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) -+} -+ -+rename_interface() { -+ local src_net=$1 -+ local dest_net=$2 -+ local err=0 -+ -+ /sbin/ip link set dev $src_net down -+ /sbin/ip link set dev $src_net name $dest_net -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then -+ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") -+ if [ $(echo "$pf" | wc -l) -ne 1 ]; then -+ echo "too many pf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$INTERFACE/ifindex" -+ read pfindex < "/sys/class/net/$pf/ifindex" -+ if ifindex_before $pfindex $vfindex; then -+ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) -+ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do -+ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ echo "INTERFACE_NEW=$pf.vf$vfnum" -+ exit 0 -+ fi -+ done -+ fi -+fi -+ -+read pfindex < "/sys/class/net/$INTERFACE/ifindex" -+shopt -s nullglob -+for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do -+ vf=$(ls -1 "$virtfn/net") -+ if [ $(echo "$vf" | wc -l) -ne 1 ]; then -+ echo "too many vf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$vf/ifindex" -+ if ifindex_before $vfindex $pfindex; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ if [ "$INTERFACE_NEW" ]; then -+ new_name=$INTERFACE_NEW -+ else -+ new_name=$INTERFACE -+ fi -+ new_name="$new_name.vf$vfnum" -+ if [ "$vf" != "$new_name" ]; then -+ rename_interface "$vf" "$new_name" -+ fi -+ fi -+done -Index: systemd-210/src/udev/net/link-config.c -=================================================================== ---- systemd-210.orig/src/udev/net/link-config.c -+++ systemd-210/src/udev/net/link-config.c -@@ -193,6 +193,18 @@ static bool enable_name_policy(void) { - r = proc_cmdline(&line); - if (r < 0) - log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); -+#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) -+# warning Using persistent rules as a default -+ if (r <= 0) -+ return false; -+ -+ FOREACH_WORD_QUOTED(w, l, line, state) -+ if (strneq(w, "net.ifnames=1", l)) -+ return true; -+ -+ return false; -+#else -+# warning Using predictable rules as a default - if (r <= 0) - return true; - -@@ -201,6 +213,7 @@ static bool enable_name_policy(void) { - return false; - - return true; -+#endif - } - - int link_config_load(link_config_ctx *ctx) { diff --git a/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch b/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch deleted file mode 100644 index 39e385c0..00000000 --- a/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +++ /dev/null @@ -1,1445 +0,0 @@ -From 9ea28c55a2488e6cd4a44ac5786f12b71ad5bc9f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 12 Apr 2014 22:35:50 -0700 -Subject: [PATCH] udev: remove seqnum API and all assumptions about seqnums - -The way the kernel namespaces have been implemented breaks assumptions -udev made regarding uevent sequence numbers. Creating devices in a -namespace "steals" uevents and its sequence numbers from the host. It -confuses the "udevadmin settle" logic, which might block until util a -timeout is reached, even when no uevent is pending. - -Remove any assumptions about sequence numbers and deprecate libudev's -API exposing these numbers; none of that can reliably be used anymore -when namespaces are involved. ---- - Makefile.am | 6 +- - man/udevadm.xml | 22 -- - src/libudev/libudev-monitor.c | 17 +- - src/libudev/libudev-queue-private.c | 406 ----------------------------------- - src/libudev/libudev-queue.c | 302 ++------------------------ - src/libudev/libudev.h | 10 +- - src/shared/udev-util.h | 2 - - src/test/test-libudev.c | 24 --- - src/udev/udev-ctrl.c | 2 +- - src/udev/udevadm-settle.c | 131 ++--------- - src/udev/udevd.c | 59 +++-- - 11 files changed, 84 insertions(+), 897 deletions(-) - delete mode 100644 src/libudev/libudev-queue-private.c - -diff --git Makefile.am Makefile.am -index 5d84605..0ad1729 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2587,8 +2587,7 @@ noinst_LTLIBRARIES += \ - - libudev_internal_la_SOURCES =\ - $(libudev_la_SOURCES) \ -- src/libudev/libudev-device-private.c \ -- src/libudev/libudev-queue-private.c -+ src/libudev/libudev-device-private.c - - libudev_internal_la_CFLAGS = \ - $(AM_CFLAGS) \ -@@ -5169,6 +5168,9 @@ test_libsystemd_sym_LDADD = \ - - test_libudev_sym_SOURCES = \ - test-libudev-sym.c -+test_libudev_sym_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ -Wno-deprecated-declarations - test_libudev_sym_LDADD = \ - libudev.la - -diff --git man/udevadm.xml man/udevadm.xml -index 21d1443..fbfa85a 100644 ---- a/man/udevadm.xml -+++ b/man/udevadm.xml -@@ -339,21 +339,6 @@ - - - -- -- -- -- Wait only for events after the given sequence -- number. -- -- -- -- -- -- -- Wait only for events before the given sequence number. -- -- -- - - - -@@ -361,13 +346,6 @@ - - - -- -- -- -- Do not print any output, like the remaining queue entries when reaching the timeout. -- -- -- - - - -diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c -index ba1b04d..3f7436b 100644 ---- a/src/libudev/libudev-monitor.c -+++ b/src/libudev/libudev-monitor.c -@@ -146,21 +146,6 @@ static bool udev_has_devtmpfs(struct udev *udev) { - return false; - } - --/* we consider udev running when we have running udev service */ --static bool udev_has_service(struct udev *udev) { -- struct udev_queue *queue; -- bool active; -- -- queue = udev_queue_new(udev); -- if (!queue) -- return false; -- -- active = udev_queue_get_udev_is_active(queue); -- udev_queue_unref(queue); -- -- return active; --} -- - struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) - { - struct udev_monitor *udev_monitor; -@@ -184,7 +169,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c - * We do not set a netlink multicast group here, so the socket - * will not receive any messages. - */ -- if (!udev_has_service(udev) && !udev_has_devtmpfs(udev)) { -+ if (access("/run/udev/control", F_OK) < 0 && !udev_has_devtmpfs(udev)) { - udev_dbg(udev, "the udev service seems not to be active, disable the monitor\n"); - group = UDEV_MONITOR_NONE; - } else -diff --git src/libudev/libudev-queue-private.c src/libudev/libudev-queue-private.c -deleted file mode 100644 -index d5a2b50..0000000 ---- a/src/libudev/libudev-queue-private.c -+++ /dev/null -@@ -1,406 +0,0 @@ --/*** -- This file is part of systemd. -- -- Copyright 2008-2012 Kay Sievers -- Copyright 2009 Alan Jenkins -- -- systemd is free software; you can redistribute it and/or modify it -- under the terms of the GNU Lesser General Public License as published by -- the Free Software Foundation; either version 2.1 of the License, or -- (at your option) any later version. -- -- systemd 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 -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public License -- along with systemd; If not, see . --***/ -- --/* -- * DISCLAIMER - The file format mentioned here is private to udev/libudev, -- * and may be changed without notice. -- * -- * The udev event queue is exported as a binary log file. -- * Each log record consists of a sequence number followed by the device path. -- * -- * When a new event is queued, its details are appended to the log. -- * When the event finishes, a second record is appended to the log -- * with the same sequence number but a devpath len of 0. -- * -- * Example: -- * { 0x0000000000000001 } -- * { 0x0000000000000001, 0x0019, "/devices/virtual/mem/null" }, -- * { 0x0000000000000002, 0x001b, "/devices/virtual/mem/random" }, -- * { 0x0000000000000001, 0x0000 }, -- * { 0x0000000000000003, 0x0019, "/devices/virtual/mem/zero" }, -- * -- * Events 2 and 3 are still queued, but event 1 has finished. -- * -- * The queue does not grow indefinitely. It is periodically re-created -- * to remove finished events. Atomic rename() makes this transparent to readers. -- * -- * The queue file starts with a single sequence number which specifies the -- * minimum sequence number in the log that follows. Any events prior to this -- * sequence number have already finished. -- */ -- --#include --#include --#include --#include --#include --#include --#include --#include --#include --#include -- --#include "libudev.h" --#include "libudev-private.h" -- --static int rebuild_queue_file(struct udev_queue_export *udev_queue_export); -- --struct udev_queue_export { -- struct udev *udev; -- int queued_count; /* number of unfinished events exported in queue file */ -- FILE *queue_file; -- unsigned long long int seqnum_max; /* earliest sequence number in queue file */ -- unsigned long long int seqnum_min; /* latest sequence number in queue file */ -- int waste_bytes; /* queue file bytes wasted on finished events */ --}; -- --struct udev_queue_export *udev_queue_export_new(struct udev *udev) --{ -- struct udev_queue_export *udev_queue_export; -- unsigned long long int initial_seqnum; -- -- if (udev == NULL) -- return NULL; -- -- udev_queue_export = new0(struct udev_queue_export, 1); -- if (udev_queue_export == NULL) -- return NULL; -- udev_queue_export->udev = udev; -- -- initial_seqnum = udev_get_kernel_seqnum(udev); -- udev_queue_export->seqnum_min = initial_seqnum; -- udev_queue_export->seqnum_max = initial_seqnum; -- -- udev_queue_export_cleanup(udev_queue_export); -- if (rebuild_queue_file(udev_queue_export) != 0) { -- free(udev_queue_export); -- return NULL; -- } -- -- return udev_queue_export; --} -- --struct udev_queue_export *udev_queue_export_unref(struct udev_queue_export *udev_queue_export) --{ -- if (udev_queue_export == NULL) -- return NULL; -- if (udev_queue_export->queue_file != NULL) -- fclose(udev_queue_export->queue_file); -- free(udev_queue_export); -- return NULL; --} -- --void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export) --{ -- if (udev_queue_export == NULL) -- return; -- unlink("/run/udev/queue.tmp"); -- unlink("/run/udev/queue.bin"); --} -- --static int skip_to(FILE *file, long offset) --{ -- long old_offset; -- -- /* fseek may drop buffered data, avoid it for small seeks */ -- old_offset = ftell(file); -- if (offset > old_offset && offset - old_offset <= BUFSIZ) { -- size_t skip_bytes = offset - old_offset; -- char *buf = alloca(skip_bytes); -- -- if (fread(buf, skip_bytes, 1, file) != skip_bytes) -- return -1; -- } -- -- return fseek(file, offset, SEEK_SET); --} -- --struct queue_devpaths { -- unsigned int devpaths_first; /* index of first queued event */ -- unsigned int devpaths_size; -- long devpaths[]; /* seqnum -> offset of devpath in queue file (or 0) */ --}; -- --/* -- * Returns a table mapping seqnum to devpath file offset for currently queued events. -- * devpaths[i] represents the event with seqnum = i + udev_queue_export->seqnum_min. -- */ --static struct queue_devpaths *build_index(struct udev_queue_export *udev_queue_export) --{ -- struct queue_devpaths *devpaths; -- unsigned long long int range; -- long devpath_offset; -- ssize_t devpath_len; -- unsigned long long int seqnum; -- unsigned long long int n; -- unsigned int i; -- -- /* seek to the first event in the file */ -- rewind(udev_queue_export->queue_file); -- udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum); -- -- /* allocate the table */ -- range = udev_queue_export->seqnum_min - udev_queue_export->seqnum_max; -- if (range - 1 > INT_MAX) { -- udev_err(udev_queue_export->udev, "queue file overflow\n"); -- return NULL; -- } -- devpaths = malloc0(sizeof(struct queue_devpaths) + (range + 1) * sizeof(long)); -- if (devpaths == NULL) -- return NULL; -- devpaths->devpaths_size = range + 1; -- -- /* read all records and populate the table */ -- for (;;) { -- if (udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum) < 0) -- break; -- n = seqnum - udev_queue_export->seqnum_max; -- if (n >= devpaths->devpaths_size) -- goto read_error; -- -- devpath_offset = ftell(udev_queue_export->queue_file); -- devpath_len = udev_queue_skip_devpath(udev_queue_export->queue_file); -- if (devpath_len < 0) -- goto read_error; -- -- if (devpath_len > 0) -- devpaths->devpaths[n] = devpath_offset; -- else -- devpaths->devpaths[n] = 0; -- } -- -- /* find first queued event */ -- for (i = 0; i < devpaths->devpaths_size; i++) { -- if (devpaths->devpaths[i] != 0) -- break; -- } -- devpaths->devpaths_first = i; -- -- return devpaths; -- --read_error: -- udev_err(udev_queue_export->udev, "queue file corrupted\n"); -- free(devpaths); -- return NULL; --} -- --static int rebuild_queue_file(struct udev_queue_export *udev_queue_export) --{ -- unsigned long long int seqnum; -- struct queue_devpaths *devpaths = NULL; -- FILE *new_queue_file = NULL; -- unsigned int i; -- -- /* read old queue file */ -- if (udev_queue_export->queue_file != NULL) { -- devpaths = build_index(udev_queue_export); -- if (devpaths != NULL) -- udev_queue_export->seqnum_max += devpaths->devpaths_first; -- } -- if (devpaths == NULL) { -- udev_queue_export->queued_count = 0; -- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; -- } -- -- /* create new queue file */ -- new_queue_file = fopen("/run/udev/queue.tmp", "w+e"); -- if (new_queue_file == NULL) -- goto error; -- seqnum = udev_queue_export->seqnum_max; -- fwrite(&seqnum, 1, sizeof(unsigned long long int), new_queue_file); -- -- /* copy unfinished events only to the new file */ -- if (devpaths != NULL) { -- for (i = devpaths->devpaths_first; i < devpaths->devpaths_size; i++) { -- char devpath[UTIL_PATH_SIZE]; -- int err; -- unsigned short devpath_len; -- -- if (devpaths->devpaths[i] != 0) -- { -- skip_to(udev_queue_export->queue_file, devpaths->devpaths[i]); -- err = udev_queue_read_devpath(udev_queue_export->queue_file, devpath, sizeof(devpath)); -- devpath_len = err; -- -- fwrite(&seqnum, sizeof(unsigned long long int), 1, new_queue_file); -- fwrite(&devpath_len, sizeof(unsigned short), 1, new_queue_file); -- fwrite(devpath, 1, devpath_len, new_queue_file); -- } -- seqnum++; -- } -- free(devpaths); -- devpaths = NULL; -- } -- fflush(new_queue_file); -- if (ferror(new_queue_file)) -- goto error; -- -- /* rename the new file on top of the old one */ -- if (rename("/run/udev/queue.tmp", "/run/udev/queue.bin") != 0) -- goto error; -- -- if (udev_queue_export->queue_file != NULL) -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = new_queue_file; -- udev_queue_export->waste_bytes = 0; -- -- return 0; -- --error: -- udev_err(udev_queue_export->udev, "failed to create queue file: %m\n"); -- udev_queue_export_cleanup(udev_queue_export); -- -- if (udev_queue_export->queue_file != NULL) { -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = NULL; -- } -- if (new_queue_file != NULL) -- fclose(new_queue_file); -- -- if (devpaths != NULL) -- free(devpaths); -- udev_queue_export->queued_count = 0; -- udev_queue_export->waste_bytes = 0; -- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; -- -- return -1; --} -- --static int write_queue_record(struct udev_queue_export *udev_queue_export, -- unsigned long long int seqnum, const char *devpath, size_t devpath_len) --{ -- unsigned short len; -- -- if (udev_queue_export->queue_file == NULL) -- return -1; -- -- if (fwrite(&seqnum, sizeof(unsigned long long int), 1, udev_queue_export->queue_file) != 1) -- goto write_error; -- -- len = (devpath_len < USHRT_MAX) ? devpath_len : USHRT_MAX; -- if (fwrite(&len, sizeof(unsigned short), 1, udev_queue_export->queue_file) != 1) -- goto write_error; -- if (len > 0) { -- if (fwrite(devpath, 1, len, udev_queue_export->queue_file) != len) -- goto write_error; -- } -- -- /* *must* flush output; caller may fork */ -- if (fflush(udev_queue_export->queue_file) != 0) -- goto write_error; -- -- return 0; -- --write_error: -- /* if we failed half way through writing a record to a file, -- we should not try to write any further records to it. */ -- udev_err(udev_queue_export->udev, "error writing to queue file: %m\n"); -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = NULL; -- -- return -1; --} -- --enum device_state { -- DEVICE_QUEUED, -- DEVICE_FINISHED, --}; -- --static inline size_t queue_record_size(size_t devpath_len) --{ -- return sizeof(unsigned long long int) + sizeof(unsigned short int) + devpath_len; --} -- --static int update_queue(struct udev_queue_export *udev_queue_export, -- struct udev_device *udev_device, enum device_state state) --{ -- unsigned long long int seqnum = udev_device_get_seqnum(udev_device); -- const char *devpath = NULL; -- size_t devpath_len = 0; -- int bytes; -- int err; -- -- /* FINISHED records have a zero length devpath */ -- if (state == DEVICE_QUEUED) { -- devpath = udev_device_get_devpath(udev_device); -- devpath_len = strlen(devpath); -- } -- -- /* recover from an earlier failed rebuild */ -- if (udev_queue_export->queue_file == NULL) { -- if (rebuild_queue_file(udev_queue_export) != 0) -- return -1; -- } -- -- /* if we're removing the last event from the queue, that's the best time to rebuild it */ -- if (state != DEVICE_QUEUED && udev_queue_export->queued_count == 1) { -- /* we don't need to read the old queue file */ -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = NULL; -- rebuild_queue_file(udev_queue_export); -- return 0; -- } -- -- /* try to rebuild the queue files before they grow larger than one page. */ -- bytes = ftell(udev_queue_export->queue_file) + queue_record_size(devpath_len); -- if ((udev_queue_export->waste_bytes > bytes / 2) && bytes > 4096) -- rebuild_queue_file(udev_queue_export); -- -- /* don't record a finished event, if we already dropped the event in a failed rebuild */ -- if (seqnum < udev_queue_export->seqnum_max) -- return 0; -- -- /* now write to the queue */ -- if (state == DEVICE_QUEUED) { -- udev_queue_export->queued_count++; -- udev_queue_export->seqnum_min = seqnum; -- } else { -- udev_queue_export->waste_bytes += queue_record_size(devpath_len) + queue_record_size(0); -- udev_queue_export->queued_count--; -- } -- err = write_queue_record(udev_queue_export, seqnum, devpath, devpath_len); -- -- /* try to handle ENOSPC */ -- if (err != 0 && udev_queue_export->queued_count == 0) { -- udev_queue_export_cleanup(udev_queue_export); -- err = rebuild_queue_file(udev_queue_export); -- } -- -- return err; --} -- --static int update(struct udev_queue_export *udev_queue_export, -- struct udev_device *udev_device, enum device_state state) --{ -- if (update_queue(udev_queue_export, udev_device, state) != 0) -- return -1; -- -- return 0; --} -- --int udev_queue_export_device_queued(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) --{ -- return update(udev_queue_export, udev_device, DEVICE_QUEUED); --} -- --int udev_queue_export_device_finished(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) --{ -- return update(udev_queue_export, udev_device, DEVICE_FINISHED); --} -diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index 2cb4d67..eb0e096 100644 ---- a/src/libudev/libudev-queue.c -+++ b/src/libudev/libudev-queue.c -@@ -24,8 +24,6 @@ - #include - #include - #include --#include --#include - #include - #include - -@@ -36,10 +34,7 @@ - * SECTION:libudev-queue - * @short_description: access to currently active events - * -- * The udev daemon processes events asynchronously. All events which do not have -- * interdependencies run in parallel. This exports the current state of the -- * event processing queue, and the current event sequence numbers from the kernel -- * and the udev daemon. -+ * This exports the current state of the udev processing queue. - */ - - /** -@@ -50,7 +45,6 @@ - struct udev_queue { - struct udev *udev; - int refcount; -- struct udev_list queue_list; - }; - - /** -@@ -72,9 +66,9 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) - udev_queue = new0(struct udev_queue, 1); - if (udev_queue == NULL) - return NULL; -+ - udev_queue->refcount = 1; - udev_queue->udev = udev; -- udev_list_init(udev, &udev_queue->queue_list, false); - return udev_queue; - } - -@@ -90,6 +84,7 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue) - { - if (udev_queue == NULL) - return NULL; -+ - udev_queue->refcount++; - return udev_queue; - } -@@ -107,10 +102,11 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) - { - if (udev_queue == NULL) - return NULL; -+ - udev_queue->refcount--; - if (udev_queue->refcount > 0) - return NULL; -- udev_list_cleanup(&udev_queue->queue_list); -+ - free(udev_queue); - return NULL; - } -@@ -130,141 +126,30 @@ _public_ struct udev *udev_queue_get_udev(struct udev_queue *udev_queue) - return udev_queue->udev; - } - --unsigned long long int udev_get_kernel_seqnum(struct udev *udev) --{ -- unsigned long long int seqnum; -- int fd; -- char buf[32]; -- ssize_t len; -- -- fd = open("/sys/kernel/uevent_seqnum", O_RDONLY|O_CLOEXEC); -- if (fd < 0) -- return 0; -- len = read(fd, buf, sizeof(buf)); -- close(fd); -- if (len <= 2) -- return 0; -- buf[len-1] = '\0'; -- seqnum = strtoull(buf, NULL, 10); -- return seqnum; --} -- - /** - * udev_queue_get_kernel_seqnum: - * @udev_queue: udev queue context - * -- * Get the current kernel event sequence number. -+ * This function is deprecated. - * -- * Returns: the sequence number. -+ * Returns: 0. - **/ - _public_ unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum; -- -- if (udev_queue == NULL) -- return -EINVAL; -- -- seqnum = udev_get_kernel_seqnum(udev_queue->udev); -- return seqnum; --} -- --int udev_queue_read_seqnum(FILE *queue_file, unsigned long long int *seqnum) --{ -- if (fread(seqnum, sizeof(unsigned long long int), 1, queue_file) != 1) -- return -1; -- - return 0; - } - --ssize_t udev_queue_skip_devpath(FILE *queue_file) --{ -- unsigned short int len; -- -- if (fread(&len, sizeof(unsigned short int), 1, queue_file) == 1) { -- char *devpath = alloca(len); -- -- /* use fread to skip, fseek might drop buffered data */ -- if (fread(devpath, 1, len, queue_file) == len) -- return len; -- } -- -- return -1; --} -- --ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t size) --{ -- unsigned short int read_bytes = 0; -- unsigned short int len; -- -- if (fread(&len, sizeof(unsigned short int), 1, queue_file) != 1) -- return -1; -- -- read_bytes = (len < size - 1) ? len : size - 1; -- if (fread(devpath, 1, read_bytes, queue_file) != read_bytes) -- return -1; -- devpath[read_bytes] = '\0'; -- -- /* if devpath was too long, skip unread characters */ -- if (read_bytes != len) { -- unsigned short int skip_bytes = len - read_bytes; -- char *buf = alloca(skip_bytes); -- -- if (fread(buf, 1, skip_bytes, queue_file) != skip_bytes) -- return -1; -- } -- -- return read_bytes; --} -- --static FILE *open_queue_file(struct udev_queue *udev_queue, unsigned long long int *seqnum_start) --{ -- FILE *queue_file; -- -- queue_file = fopen("/run/udev/queue.bin", "re"); -- if (queue_file == NULL) -- return NULL; -- -- if (udev_queue_read_seqnum(queue_file, seqnum_start) < 0) { -- udev_err(udev_queue->udev, "corrupt queue file\n"); -- fclose(queue_file); -- return NULL; -- } -- -- return queue_file; --} -- - /** - * udev_queue_get_udev_seqnum: - * @udev_queue: udev queue context - * -- * Get the last known udev event sequence number. -+ * This function is deprecated. - * -- * Returns: the sequence number. -+ * Returns: 0. - **/ - _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum_udev; -- FILE *queue_file; -- -- queue_file = open_queue_file(udev_queue, &seqnum_udev); -- if (queue_file == NULL) -- return 0; -- -- for (;;) { -- unsigned long long int seqnum; -- ssize_t devpath_len; -- -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- devpath_len = udev_queue_skip_devpath(queue_file); -- if (devpath_len < 0) -- break; -- if (devpath_len > 0) -- seqnum_udev = seqnum; -- } -- -- fclose(queue_file); -- return seqnum_udev; -+ return 0; - } - - /** -@@ -277,15 +162,7 @@ _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *ud - **/ - _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum_start; -- FILE *queue_file; -- -- queue_file = open_queue_file(udev_queue, &seqnum_start); -- if (queue_file == NULL) -- return 0; -- -- fclose(queue_file); -- return 1; -+ return access("/run/udev/control", F_OK) >= 0; - } - - /** -@@ -298,48 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) - **/ - _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum_kernel; -- unsigned long long int seqnum_udev = 0; -- int queued = 0; -- int is_empty = 0; -- FILE *queue_file; -- -- if (udev_queue == NULL) -- return -EINVAL; -- queue_file = open_queue_file(udev_queue, &seqnum_udev); -- if (queue_file == NULL) -- return 1; -- -- for (;;) { -- unsigned long long int seqnum; -- ssize_t devpath_len; -- -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- devpath_len = udev_queue_skip_devpath(queue_file); -- if (devpath_len < 0) -- break; -- -- if (devpath_len > 0) { -- queued++; -- seqnum_udev = seqnum; -- } else { -- queued--; -- } -- } -- -- if (queued > 0) -- goto out; -- -- seqnum_kernel = udev_queue_get_kernel_seqnum(udev_queue); -- if (seqnum_udev < seqnum_kernel) -- goto out; -- -- is_empty = 1; -- --out: -- fclose(queue_file); -- return is_empty; -+ return access("/run/udev/queue", F_OK) >= 0; - } - - /** -@@ -348,63 +184,15 @@ out: - * @start: first event sequence number - * @end: last event sequence number - * -- * Check if udev is currently processing any events in a given sequence number range. -+ * This function is deprecated, it just returns the result of -+ * udev_queue_get_queue_is_empty(). - * -- * Returns: a flag indicating if any of the sequence numbers in the given range is currently active. -+ * Returns: a flag indicating if udev is currently handling events. - **/ - _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, - unsigned long long int start, unsigned long long int end) - { -- unsigned long long int seqnum; -- ssize_t devpath_len; -- int unfinished; -- FILE *queue_file; -- -- if (udev_queue == NULL) -- return -EINVAL; -- queue_file = open_queue_file(udev_queue, &seqnum); -- if (queue_file == NULL) -- return 1; -- if (start < seqnum) -- start = seqnum; -- if (start > end) { -- fclose(queue_file); -- return 1; -- } -- if (end - start > INT_MAX - 1) { -- fclose(queue_file); -- return -EOVERFLOW; -- } -- -- /* -- * we might start with 0, and handle the initial seqnum -- * only when we find an entry in the queue file -- **/ -- unfinished = end - start; -- -- do { -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- devpath_len = udev_queue_skip_devpath(queue_file); -- if (devpath_len < 0) -- break; -- -- /* -- * we might start with an empty or re-build queue file, where -- * the initial seqnum is not recorded as finished -- */ -- if (start == seqnum && devpath_len > 0) -- unfinished++; -- -- if (devpath_len == 0) { -- if (seqnum >= start && seqnum <= end) -- unfinished--; -- } -- } while (unfinished > 0); -- -- fclose(queue_file); -- -- return (unfinished == 0); -+ return udev_queue_get_queue_is_empty(udev_queue); - } - - /** -@@ -412,69 +200,25 @@ _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_ - * @udev_queue: udev queue context - * @seqnum: sequence number - * -- * Check if udev is currently processing a given sequence number. -+ * This function is deprecated, it just returns the result of -+ * udev_queue_get_queue_is_empty(). - * -- * Returns: a flag indicating if the given sequence number is currently active. -+ * Returns: a flag indicating if udev is currently handling events. - **/ - _public_ int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) - { -- if (!udev_queue_get_seqnum_sequence_is_finished(udev_queue, seqnum, seqnum)) -- return 0; -- -- return 1; -+ return udev_queue_get_queue_is_empty(udev_queue); - } - - /** - * udev_queue_get_queued_list_entry: - * @udev_queue: udev queue context - * -- * Get the first entry of the list of queued events. -+ * This function is deprecated. - * -- * Returns: a udev_list_entry. -+ * Returns: NULL. - **/ - _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum; -- FILE *queue_file; -- -- if (udev_queue == NULL) -- return NULL; -- udev_list_cleanup(&udev_queue->queue_list); -- -- queue_file = open_queue_file(udev_queue, &seqnum); -- if (queue_file == NULL) -- return NULL; -- -- for (;;) { -- char syspath[UTIL_PATH_SIZE]; -- char *s; -- size_t l; -- ssize_t len; -- char seqnum_str[32]; -- struct udev_list_entry *list_entry; -- -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- snprintf(seqnum_str, sizeof(seqnum_str), "%llu", seqnum); -- -- s = syspath; -- l = strpcpy(&s, sizeof(syspath), "/sys"); -- len = udev_queue_read_devpath(queue_file, s, l); -- if (len < 0) -- break; -- -- if (len > 0) { -- udev_list_entry_add(&udev_queue->queue_list, syspath, seqnum_str); -- } else { -- udev_list_entry_foreach(list_entry, udev_list_get_entry(&udev_queue->queue_list)) { -- if (streq(seqnum_str, udev_list_entry_get_value(list_entry))) { -- udev_list_entry_delete(list_entry); -- break; -- } -- } -- } -- } -- fclose(queue_file); -- -- return udev_list_get_entry(&udev_queue->queue_list); -+ return NULL; - } -diff --git src/libudev/libudev.h src/libudev/libudev.h -index b9b8f13..ceb89bd 100644 ---- a/src/libudev/libudev.h -+++ b/src/libudev/libudev.h -@@ -170,14 +170,14 @@ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue); - struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue); - struct udev *udev_queue_get_udev(struct udev_queue *udev_queue); - struct udev_queue *udev_queue_new(struct udev *udev); --unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue); --unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue); -+unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); -+unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); - int udev_queue_get_udev_is_active(struct udev_queue *udev_queue); - int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); --int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum); -+int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); - int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, -- unsigned long long int start, unsigned long long int end); --struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue); -+ unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); -+struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); - - /* - * udev_hwdb -diff --git src/shared/udev-util.h src/shared/udev-util.h -index 40f8b77..5f09ce1 100644 ---- a/src/shared/udev-util.h -+++ b/src/shared/udev-util.h -@@ -31,7 +31,6 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_ctrl*, udev_ctrl_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_monitor*, udev_monitor_unref); --DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); - - #define _cleanup_udev_unref_ _cleanup_(udev_unrefp) - #define _cleanup_udev_device_unref_ _cleanup_(udev_device_unrefp) -@@ -40,5 +39,4 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); - #define _cleanup_udev_rules_unref_ _cleanup_(udev_rules_unrefp) - #define _cleanup_udev_ctrl_unref_ _cleanup_(udev_ctrl_unrefp) - #define _cleanup_udev_monitor_unref_ _cleanup_(udev_monitor_unrefp) --#define _cleanup_udev_queue_unref_ _cleanup_(udev_queue_unrefp) - #define _cleanup_udev_list_cleanup_ _cleanup_(udev_list_cleanup) -diff --git src/test/test-libudev.c src/test/test-libudev.c -index c233b1e..f5c8bc7 100644 ---- a/src/test/test-libudev.c -+++ b/src/test/test-libudev.c -@@ -303,38 +303,14 @@ out: - - static int test_queue(struct udev *udev) { - struct udev_queue *udev_queue; -- unsigned long long int seqnum; -- struct udev_list_entry *list_entry; - - udev_queue = udev_queue_new(udev); - if (udev_queue == NULL) - return -1; -- seqnum = udev_queue_get_kernel_seqnum(udev_queue); -- printf("seqnum kernel: %llu\n", seqnum); -- seqnum = udev_queue_get_udev_seqnum(udev_queue); -- printf("seqnum udev : %llu\n", seqnum); - - if (udev_queue_get_queue_is_empty(udev_queue)) - printf("queue is empty\n"); -- printf("get queue list\n"); -- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) -- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); -- printf("\n"); -- printf("get queue list again\n"); -- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) -- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); -- printf("\n"); - -- list_entry = udev_queue_get_queued_list_entry(udev_queue); -- if (list_entry != NULL) { -- printf("event [%llu] is queued\n", seqnum); -- seqnum = strtoull(udev_list_entry_get_value(list_entry), NULL, 10); -- if (udev_queue_get_seqnum_is_finished(udev_queue, seqnum)) -- printf("event [%llu] is not finished\n", seqnum); -- else -- printf("event [%llu] is finished\n", seqnum); -- } -- printf("\n"); - udev_queue_unref(udev_queue); - return 0; - } -diff --git src/udev/udev-ctrl.c src/udev/udev-ctrl.c -index 1e91ec2..74bbd3a 100644 ---- a/src/udev/udev-ctrl.c -+++ b/src/udev/udev-ctrl.c -@@ -275,7 +275,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int - - pfd[0].fd = uctrl->sock; - pfd[0].events = POLLIN; -- r = poll(pfd, 1, timeout * 1000); -+ r = poll(pfd, 1, timeout * MSEC_PER_SEC); - if (r < 0) { - if (errno == EINTR) - continue; -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 927ea2a..65fc35f 100644 ---- a/src/udev/udevadm-settle.c -+++ b/src/udev/udevadm-settle.c -@@ -41,42 +41,28 @@ - static void help(void) { - printf("Usage: udevadm settle OPTIONS\n" - " -t,--timeout= maximum time to wait for events\n" -- " -s,--seq-start= first seqnum to wait for\n" -- " -e,--seq-end= last seqnum to wait for\n" - " -E,--exit-if-exists= stop waiting if file exists\n" -- " -q,--quiet do not print list after timeout\n" - " -h,--help\n\n"); - } - - static int adm_settle(struct udev *udev, int argc, char *argv[]) - { - static const struct option options[] = { -- { "seq-start", required_argument, NULL, 's' }, -- { "seq-end", required_argument, NULL, 'e' }, -+ { "seq-start", required_argument, NULL, '\0' }, /* removed */ -+ { "seq-end", required_argument, NULL, '\0' }, /* removed */ - { "timeout", required_argument, NULL, 't' }, - { "exit-if-exists", required_argument, NULL, 'E' }, -- { "quiet", no_argument, NULL, 'q' }, -+ { "quiet", no_argument, NULL, 'q' }, /* removed */ - { "help", no_argument, NULL, 'h' }, - {} - }; -- usec_t start_usec = now(CLOCK_MONOTONIC); -- usec_t start = 0; -- usec_t end = 0; -- int quiet = 0; - const char *exists = NULL; - unsigned int timeout = 120; - struct pollfd pfd[1] = { {.fd = -1}, }; -- _cleanup_udev_queue_unref_ struct udev_queue *udev_queue = NULL; - int rc = EXIT_FAILURE, c; - -- while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) -+ while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { - switch (c) { -- case 's': -- start = strtoull(optarg, NULL, 0); -- break; -- case 'e': -- end = strtoull(optarg, NULL, 0); -- break; - case 't': { - int r; - -@@ -91,9 +77,6 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - case 'E': - exists = optarg; - break; -- case 'q': -- quiet = 1; -- break; - case 'h': - help(); - exit(EXIT_SUCCESS); -@@ -102,44 +85,13 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - default: - assert_not_reached("Unknown argument"); - } -+ } - - if (optind < argc) { - fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); - exit(EXIT_FAILURE); - } - -- udev_queue = udev_queue_new(udev); -- if (udev_queue == NULL) -- exit(2); -- -- if (start > 0) { -- unsigned long long kernel_seq; -- -- kernel_seq = udev_queue_get_kernel_seqnum(udev_queue); -- -- /* unless specified, the last event is the current kernel seqnum */ -- if (end == 0) -- end = udev_queue_get_kernel_seqnum(udev_queue); -- -- if (start > end) { -- log_error("seq-start larger than seq-end, ignoring"); -- start = 0; -- end = 0; -- } -- -- if (start > kernel_seq || end > kernel_seq) { -- log_error("seq-start or seq-end larger than current kernel value, ignoring"); -- start = 0; -- end = 0; -- } -- log_debug("start=%llu end=%llu current=%llu", (unsigned long long)start, (unsigned long long)end, kernel_seq); -- } else { -- if (end > 0) { -- log_error("seq-end needs seq-start parameter, ignoring"); -- end = 0; -- } -- } -- - /* guarantee that the udev daemon isn't pre-processing */ - if (getuid() == 0) { - struct udev_ctrl *uctrl; -@@ -160,73 +112,34 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - pfd[0].fd = inotify_init1(IN_CLOEXEC); - if (pfd[0].fd < 0) { - log_error("inotify_init failed: %m"); -- } else { -- if (inotify_add_watch(pfd[0].fd, "/run/udev" , IN_MOVED_TO) < 0) { -- log_error("watching /run/udev failed"); -- close(pfd[0].fd); -- pfd[0].fd = -1; -- } -+ goto out; - } - -- for (;;) { -- struct stat statbuf; -+ if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { -+ log_debug("watching /run/udev failed"); -+ goto out; -+ } - -- if (exists != NULL && stat(exists, &statbuf) == 0) { -+ for (;;) { -+ if (exists && access(exists, F_OK) >= 0) { - rc = EXIT_SUCCESS; - break; - } - -- if (start > 0) { -- /* if asked for, wait for a specific sequence of events */ -- if (udev_queue_get_seqnum_sequence_is_finished(udev_queue, start, end) == 1) { -- rc = EXIT_SUCCESS; -- break; -- } -- } else { -- /* exit if queue is empty */ -- if (udev_queue_get_queue_is_empty(udev_queue)) { -- rc = EXIT_SUCCESS; -- break; -- } -- } -- -- if (pfd[0].fd >= 0) { -- int delay; -- -- if (exists != NULL || start > 0) -- delay = 100; -- else -- delay = 1000; -- /* wake up after delay, or immediately after the queue is rebuilt */ -- if (poll(pfd, 1, delay) > 0 && pfd[0].revents & POLLIN) { -- char buf[sizeof(struct inotify_event) + PATH_MAX]; -- -- read(pfd[0].fd, buf, sizeof(buf)); -- } -- } else { -- sleep(1); -+ /* exit if queue is empty */ -+ if (access("/run/udev/queue", F_OK) < 0) { -+ rc = EXIT_SUCCESS; -+ break; - } - -- if (timeout > 0) { -- usec_t age_usec; -+ /* wake up when "queue" file is deleted */ -+ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { -+ char buf[sizeof(struct inotify_event) + PATH_MAX]; - -- age_usec = now(CLOCK_MONOTONIC) - start_usec; -- if (age_usec / (1000 * 1000) >= timeout) { -- struct udev_list_entry *list_entry; -- -- if (!quiet && udev_queue_get_queued_list_entry(udev_queue) != NULL) { -- log_debug("timeout waiting for udev queue"); -- printf("\nudevadm settle - timeout of %i seconds reached, the event queue contains:\n", timeout); -- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) -- printf(" %s (%s)\n", -- udev_list_entry_get_name(list_entry), -- udev_list_entry_get_value(list_entry)); -- } -- -- break; -- } -+ read(pfd[0].fd, buf, sizeof(buf)); - } - } -+ - out: - if (pfd[0].fd >= 0) - close(pfd[0].fd); -@@ -236,5 +149,5 @@ out: - const struct udevadm_cmd udevadm_settle = { - .name = "settle", - .cmd = adm_settle, -- .help = "wait for the event queue to finish", -+ .help = "wait for pending udev events", - }; -diff --git src/udev/udevd.c src/udev/udevd.c -index f21c227..f9ee368 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -60,7 +60,6 @@ void udev_main_log(struct udev *udev, int priority, - } - - static struct udev_rules *rules; --static struct udev_queue_export *udev_queue_export; - static struct udev_ctrl *udev_ctrl; - static struct udev_monitor *monitor; - static int worker_watch[2] = { -1, -1 }; -@@ -139,14 +138,9 @@ static inline struct worker *node_to_worker(struct udev_list_node *node) - return container_of(node, struct worker, node); - } - --static void event_queue_delete(struct event *event, bool export) -+static void event_queue_delete(struct event *event) - { - udev_list_node_remove(&event->node); -- -- if (export) { -- udev_queue_export_device_finished(udev_queue_export, event->dev); -- log_debug("seq %llu done with %i", udev_device_get_seqnum(event->dev), event->exitcode); -- } - udev_device_unref(event->dev); - free(event); - } -@@ -225,7 +219,6 @@ static void worker_new(struct event *event) - free(worker); - worker_list_cleanup(udev); - event_queue_cleanup(udev, EVENT_UNDEF); -- udev_queue_export_unref(udev_queue_export); - udev_monitor_unref(monitor); - udev_ctrl_unref(udev_ctrl); - close(fd_signal); -@@ -449,7 +442,6 @@ static int event_queue_insert(struct udev_device *dev) - 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), - udev_device_get_action(dev), udev_device_get_subsystem(dev)); - -@@ -580,7 +572,7 @@ static void event_queue_cleanup(struct udev *udev, enum event_state match_type) - if (match_type != EVENT_UNDEF && match_type != event->state) - continue; - -- event_queue_delete(event, false); -+ event_queue_delete(event); - } - } - -@@ -605,7 +597,7 @@ static void worker_returned(int fd_worker) - /* worker returned */ - if (worker->event) { - worker->event->exitcode = msg.exitcode; -- event_queue_delete(worker->event, true); -+ event_queue_delete(worker->event); - worker->event = NULL; - } - if (worker->state != WORKER_KILLED) -@@ -797,7 +789,8 @@ static void handle_signal(struct udev *udev, int signo) - log_error("worker [%u] failed while handling '%s'", - pid, worker->event->devpath); - worker->event->exitcode = -32; -- event_queue_delete(worker->event, true); -+ event_queue_delete(worker->event); -+ - /* drop reference taken for state 'running' */ - worker_unref(worker); - } -@@ -1076,14 +1069,7 @@ int main(int argc, char *argv[]) - goto exit; - } - -- udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024); -- -- /* create queue file before signalling 'ready', to make sure we block 'settle' */ -- udev_queue_export = udev_queue_export_new(udev); -- if (udev_queue_export == NULL) { -- log_error("error creating queue file"); -- goto exit; -- } -+ udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024); - - if (daemonize) { - pid_t pid; -@@ -1241,12 +1227,12 @@ int main(int argc, char *argv[]) - worker_kill(udev); - - /* exit after all has cleaned up */ -- if (udev_list_node_is_empty(&event_list) && udev_list_node_is_empty(&worker_list)) -+ if (udev_list_node_is_empty(&event_list) && children == 0) - break; - - /* timeout at exit for workers to finish */ -- timeout = 30 * 1000; -- } else if (udev_list_node_is_empty(&event_list) && !children) { -+ timeout = 30 * MSEC_PER_SEC; -+ } else if (udev_list_node_is_empty(&event_list) && children == 0) { - /* we are idle */ - timeout = -1; - -@@ -1255,8 +1241,20 @@ int main(int argc, char *argv[]) - cg_kill(SYSTEMD_CGROUP_CONTROLLER, udev_cgroup, SIGKILL, false, true, NULL); - } else { - /* kill idle or hanging workers */ -- timeout = 3 * 1000; -+ timeout = 3 * MSEC_PER_SEC; - } -+ -+ /* tell settle that we are busy or idle */ -+ if (!udev_list_node_is_empty(&event_list)) { -+ int fd; -+ -+ fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); -+ if (fd >= 0) -+ close(fd); -+ } else { -+ unlink("/run/udev/queue"); -+ } -+ - fdcount = epoll_wait(fd_ep, ev, ELEMENTSOF(ev), timeout); - if (fdcount < 0) - continue; -@@ -1283,18 +1281,18 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { - log_error("worker [%u] %s timeout; kill it", worker->pid, - worker->event ? worker->event->devpath : ""); - kill(worker->pid, SIGKILL); - worker->state = WORKER_KILLED; -+ - /* drop reference taken for state 'running' */ - worker_unref(worker); - if (worker->event) { -- log_error("seq %llu '%s' killed", -- udev_device_get_seqnum(worker->event->dev), worker->event->devpath); -+ 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); -+ event_queue_delete(worker->event); - worker->event = NULL; - } - } -@@ -1317,7 +1315,7 @@ int main(int argc, char *argv[]) - } - - /* check for changed config, every 3 seconds at most */ -- if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * USEC_PER_SEC) { - if (udev_rules_check_timestamp(rules)) - reload = true; - if (udev_builtin_validate(udev)) -@@ -1390,8 +1388,8 @@ int main(int argc, char *argv[]) - - rc = EXIT_SUCCESS; - exit: -- udev_queue_export_cleanup(udev_queue_export); - udev_ctrl_cleanup(udev_ctrl); -+ unlink("/run/udev/queue"); - exit_daemonize: - if (fd_ep >= 0) - close(fd_ep); -@@ -1406,7 +1404,6 @@ exit_daemonize: - if (worker_watch[WRITE_END] >= 0) - close(worker_watch[WRITE_END]); - udev_monitor_unref(monitor); -- udev_queue_export_unref(udev_queue_export); - udev_ctrl_connection_unref(ctrl_conn); - udev_ctrl_unref(udev_ctrl); - label_finish(); --- -1.7.9.2 - diff --git a/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch b/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch deleted file mode 100644 index 75da64fa..00000000 --- a/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a52ec8ed881537627869afa8f0486db7e20ce2db Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Fri, 30 May 2014 13:16:56 -0400 -Subject: [PATCH] udev-builtin-keyboard: do tell on which device EVIOCSKEYCODE - failed. - -I am getting - -"Error calling EVIOCSKEYCODE (scan code 0xc022d, key code 418): Invalid -argument", the error message does not tell on which specific device the -problem is, add that info. ---- - src/udev/udev-builtin-keyboard.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/udev-builtin-keyboard.c src/udev/udev-builtin-keyboard.c -index 614e44e..9b66bfd 100644 ---- src/udev/udev-builtin-keyboard.c -+++ src/udev/udev-builtin-keyboard.c -@@ -143,7 +143,7 @@ static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], boo - log_debug("keyboard: mapping scan code %d (0x%x) to key code %d (0x%x)", - map[i].scan, map[i].scan, map[i].key, map[i].key); - if (ioctl(fd, EVIOCSKEYCODE, &map[i]) < 0) -- log_error("Error calling EVIOCSKEYCODE (scan code 0x%x, key code %d): %m", map[i].scan, map[i].key); -+ log_error("Error calling EVIOCSKEYCODE on device node '%s' (scan code 0x%x, key code %d): %m", node, map[i].scan, map[i].key); - } - - /* install list of force-release codes */ --- -1.7.9.2 - diff --git a/1024-udev-always-close-lock-file-descriptor.patch b/1024-udev-always-close-lock-file-descriptor.patch deleted file mode 100644 index aaa4b296..00000000 --- a/1024-udev-always-close-lock-file-descriptor.patch +++ /dev/null @@ -1,41 +0,0 @@ -Based on 3d06f4183470d42361303086ed9dedd29c0ffc1b Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 3 Jun 2014 10:46:51 +0200 -Subject: [PATCH] udev: always close lock file descriptor - -https://bugs.freedesktop.org/show_bug.cgi?id=79576 ---- - src/udev/udevd.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-06-03 15:34:42.778346368 +0000 -@@ -301,6 +301,7 @@ static void worker_new(struct event *eve - if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { - log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); - err = -EWOULDBLOCK; -+ close_nointr_nofail(fd_lock); fd_lock = -1; - goto skip; - } - } -@@ -318,7 +319,7 @@ static void worker_new(struct event *eve - } - - if (fd_lock >= 0) -- close(fd_lock); -+ close_nointr_nofail(fd_lock); - - /* send processed event back to libudev listeners */ - udev_monitor_send_device(worker_monitor, NULL, dev); -@@ -378,9 +379,9 @@ skip: - out: - udev_device_unref(dev); - if (fd_signal >= 0) -- close(fd_signal); -+ close_nointr_nofail(fd_signal); - if (fd_ep >= 0) -- close(fd_ep); -+ close_nointr_nofail(fd_ep); - close(fd_inotify); - close(worker_watch[WRITE_END]); - udev_rules_unref(rules); diff --git a/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch b/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch deleted file mode 100644 index 2dc531f4..00000000 --- a/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +++ /dev/null @@ -1,39 +0,0 @@ -From e918a1b5a94f270186dca59156354acd2a596494 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 3 Jun 2014 16:49:38 +0200 -Subject: [PATCH] udev: exclude device-mapper from block device ownership event - locking - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 819ea3b..6c05104 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -290,7 +290,19 @@ static void worker_new(struct event *event) - * acquired the lock, the external process will block until - * udev has finished its event handling. - */ -- if (streq_ptr("block", udev_device_get_subsystem(dev))) { -+ -+ /* -+ * since we make check - device seems unused - we try -+ * ioctl to deactivate - and device is found to be opened -+ * sure, you try to take a write lock -+ * if you get it udev is out -+ * if you can't get it, udev is busy -+ * we cannot deactivate openned device (as it is in-use) -+ * maybe we should just exclude dm from that thing entirely -+ * IMHO this sounds like a good plan for this moment -+ */ -+ if (streq_ptr("block", udev_device_get_subsystem(dev)) && -+ !startswith("dm-", udev_device_get_sysname(dev))) { - struct udev_device *d = dev; - - if (streq_ptr("partition", udev_device_get_devtype(d))) --- -1.8.4.5 - diff --git a/1026-udevd-inotify-modernizations.patch b/1026-udevd-inotify-modernizations.patch deleted file mode 100644 index c63093ff..00000000 --- a/1026-udevd-inotify-modernizations.patch +++ /dev/null @@ -1,85 +0,0 @@ -From edd32000c806e4527c5f376d138f7bff07724c26 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 11:05:45 +0200 -Subject: [PATCH] udevd: inotify - modernizations - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 45 ++++++++++++++++++++++----------------------- - 1 file changed, 22 insertions(+), 23 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -736,20 +736,30 @@ out: - return udev_ctrl_connection_unref(ctrl_conn); - } - -+static void synthesize_change(struct udev_device *dev) { -+ char filename[UTIL_PATH_SIZE]; -+ -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+} -+ - /* read inotify messages */ - static int handle_inotify(struct udev *udev) - { - int nbytes, pos; - char *buf; - struct inotify_event *ev; -+ int r; - -- if ((ioctl(fd_inotify, FIONREAD, &nbytes) < 0) || (nbytes <= 0)) -- return 0; -+ r = ioctl(fd_inotify, FIONREAD, &nbytes); -+ if (r < 0 || nbytes <= 0) -+ return -errno; - - buf = malloc(nbytes); -- if (buf == NULL) { -+ if (!buf) { - log_error("error getting buffer for inotify"); -- return -1; -+ return -ENOMEM; - } - - nbytes = read(fd_inotify, buf, nbytes); -@@ -759,27 +769,16 @@ static int handle_inotify(struct udev *u - - ev = (struct inotify_event *)(buf + pos); - dev = udev_watch_lookup(udev, ev->wd); -- if (dev != NULL) { -- log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); -- if (ev->mask & IN_CLOSE_WRITE) { -- char filename[UTIL_PATH_SIZE]; -- int fd; -- -- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -- fd = open(filename, O_WRONLY|O_CLOEXEC); -- if (fd >= 0) { -- if (write(fd, "change", 6) < 0) -- log_debug("error writing uevent: %m"); -- close(fd); -- } -- } -- if (ev->mask & IN_IGNORED) -- udev_watch_end(udev, dev); -+ if (!dev) -+ continue; - -- udev_device_unref(dev); -- } -+ log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); -+ if (ev->mask & IN_CLOSE_WRITE) -+ synthesize_change(dev); -+ else if (ev->mask & IN_IGNORED) -+ udev_watch_end(udev, dev); - -+ udev_device_unref(dev); - } - - free(buf); diff --git a/1027-udev-synthesize-change-events-for-partitions-when-to.patch b/1027-udev-synthesize-change-events-for-partitions-when-to.patch deleted file mode 100644 index ab09c1b2..00000000 --- a/1027-udev-synthesize-change-events-for-partitions-when-to.patch +++ /dev/null @@ -1,84 +0,0 @@ -From f3a740a5dae792fb6b2d411022ce8c29ced1c3f1 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 12:16:28 +0200 -Subject: [PATCH] udev: synthesize "change' events for partitions when tools - change the disk - -This should make sure that fdisk-like programs will automatically -cause an update of all partitions, just like mkfs-like programs cause -an update of the partition. - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 42 insertions(+), 2 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -46,6 +46,7 @@ - #include - - #include "udev.h" -+#include "udev-util.h" - #include "sd-daemon.h" - #include "cgroup-util.h" - #include "dev-setup.h" -@@ -736,15 +737,54 @@ out: - return udev_ctrl_connection_unref(ctrl_conn); - } - --static void synthesize_change(struct udev_device *dev) { -+static int synthesize_change(struct udev_device *dev) { - char filename[UTIL_PATH_SIZE]; -+ int r; - - log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); - strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); - write_string_file(filename, "change"); -+ -+ /* for disks devices, re-trigger all partitions too */ -+ if (streq_ptr("block", udev_device_get_subsystem(dev)) && -+ streq_ptr("disk", udev_device_get_devtype(dev))) { -+ struct udev *udev = udev_device_get_udev(dev); -+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; -+ struct udev_list_entry *item; -+ -+ e = udev_enumerate_new(udev); -+ if (!e) -+ return -ENOMEM; -+ -+ r = udev_enumerate_add_match_parent(e, dev); -+ if (r < 0) -+ return r; -+ -+ r = udev_enumerate_add_match_subsystem(e, "block"); -+ if (r < 0) -+ return r; -+ -+ r = udev_enumerate_scan_devices(e); -+ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { -+ _cleanup_udev_device_unref_ struct udev_device *d = NULL; -+ -+ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); -+ if (!d) -+ continue; -+ -+ if (!streq_ptr("partition", udev_device_get_devtype(d))) -+ continue; -+ -+ log_debug("device %s closed, synthesising partition '%s' 'change'", -+ udev_device_get_devnode(dev), udev_device_get_devnode(d)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ } -+ } -+ -+ return 0; - } - --/* read inotify messages */ - static int handle_inotify(struct udev *udev) - { - int nbytes, pos; diff --git a/1028-udev-link-config-fix-mem-leak.patch b/1028-udev-link-config-fix-mem-leak.patch deleted file mode 100644 index 265009f0..00000000 --- a/1028-udev-link-config-fix-mem-leak.patch +++ /dev/null @@ -1,34 +0,0 @@ -From edf029b7fd9a5853a87d3ca99aac2922bb8a277e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 4 Jun 2014 12:34:23 +0200 -Subject: [PATCH] udev: link-config - fix mem leak - -Reported by Kay. - -Signed-off-by: Robert Milasan ---- - src/udev/net/link-config.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -Index: systemd-210/src/udev/net/link-config.c -=================================================================== ---- systemd-210.orig/src/udev/net/link-config.c -+++ systemd-210/src/udev/net/link-config.c -@@ -118,6 +118,7 @@ static void link_configs_free(link_confi - free(link->match_type); - free(link->description); - free(link->alias); -+ free(link->name_policy); - - free(link); - } -@@ -205,7 +206,8 @@ static bool enable_name_policy(void) { - - int link_config_load(link_config_ctx *ctx) { - int r; -- char **files, **f; -+ _cleanup_strv_free_ char **files; -+ char **f; - - link_configs_free(ctx); - diff --git a/1029-udev-try-first-re-reading-the-partition-table.patch b/1029-udev-try-first-re-reading-the-partition-table.patch deleted file mode 100644 index fa20002b..00000000 --- a/1029-udev-try-first-re-reading-the-partition-table.patch +++ /dev/null @@ -1,94 +0,0 @@ -From ede344452a54e1c53f541cad12a06269a4fe96a9 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 13:30:24 +0200 -Subject: [PATCH] udev: try first re-reading the partition table - -mounted partitions: - # dd if=/dev/zero of=/dev/sda bs=1 count=1 - UDEV [4157.369250] change .../0:0:0:0/block/sda (block) - UDEV [4157.375059] change .../0:0:0:0/block/sda/sda1 (block) - UDEV [4157.397088] change .../0:0:0:0/block/sda/sda2 (block) - UDEV [4157.404842] change .../0:0:0:0/block/sda/sda4 (block) - -unmounted partitions: - # dd if=/dev/zero of=/dev/sdb bs=1 count=1 - UDEV [4163.450217] remove .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) - UDEV [4163.593167] change .../target6:0:0/6:0:0:0/block/sdb (block) - UDEV [4163.713982] add .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 39 +++++++++++++++++++++++++++++++++------ - 1 file changed, 33 insertions(+), 6 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -741,17 +742,37 @@ static int synthesize_change(struct udev - char filename[UTIL_PATH_SIZE]; - int r; - -- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -- write_string_file(filename, "change"); -- -- /* for disks devices, re-trigger all partitions too */ - if (streq_ptr("block", udev_device_get_subsystem(dev)) && -- streq_ptr("disk", udev_device_get_devtype(dev))) { -+ streq_ptr("disk", udev_device_get_devtype(dev)) && -+ !startswith("dm-", udev_device_get_sysname(dev))) { -+ int fd; - struct udev *udev = udev_device_get_udev(dev); - _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; - struct udev_list_entry *item; - -+ /* -+ * Try to re-read the partition table, this only succeeds if -+ * none of the devices is busy. -+ * -+ * The kernel will send out a change event for the disk, and -+ * "remove/add" for all partitions. -+ */ -+ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ if (fd >= 0) { -+ r = ioctl(fd, BLKRRPART, 0); -+ close(fd); -+ if (r >= 0) -+ return 0; -+ } -+ -+ /* -+ * Re-reading the partition table did not work, synthesize "change" -+ * events for the disk and all partitions. -+ */ -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ - e = udev_enumerate_new(udev); - if (!e) - return -ENOMEM; -@@ -780,8 +801,14 @@ static int synthesize_change(struct udev - strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); - write_string_file(filename, "change"); - } -+ -+ return 0; - } - -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ - return 0; - } - diff --git a/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch b/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch deleted file mode 100644 index 6fb7b15f..00000000 --- a/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 10fab50a3091e0b819c3ddab5a7c07acf750c050 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 14:09:31 +0200 -Subject: [PATCH] udev: guard REREADP logic with open(O_ECXL) - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -757,7 +757,7 @@ static int synthesize_change(struct udev - * The kernel will send out a change event for the disk, and - * "remove/add" for all partitions. - */ -- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd >= 0) { - r = ioctl(fd, BLKRRPART, 0); - close(fd); diff --git a/1031-udev-make-sure-we-always-get-change-for-the-disk.patch b/1031-udev-make-sure-we-always-get-change-for-the-disk.patch deleted file mode 100644 index 4f48cd3a..00000000 --- a/1031-udev-make-sure-we-always-get-change-for-the-disk.patch +++ /dev/null @@ -1,98 +0,0 @@ -From e9fc29f4ecc9509ccc02eb8a014341e26c0d7831 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 15:17:15 +0200 -Subject: [PATCH] udev: make sure we always get "change" for the disk - -The kernel will return 0 for REREADPT when no partition table -is found, we have to send out "change" ourselves. - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 53 +++++++++++++++++++++++++++++++++++++++-------------- - 1 file changed, 39 insertions(+), 14 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -745,34 +745,28 @@ static int synthesize_change(struct udev - if (streq_ptr("block", udev_device_get_subsystem(dev)) && - streq_ptr("disk", udev_device_get_devtype(dev)) && - !startswith("dm-", udev_device_get_sysname(dev))) { -+ bool part_table_read = false; -+ bool has_partitions = false; - int fd; - struct udev *udev = udev_device_get_udev(dev); - _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; - struct udev_list_entry *item; - - /* -- * Try to re-read the partition table, this only succeeds if -- * none of the devices is busy. -- * -- * The kernel will send out a change event for the disk, and -- * "remove/add" for all partitions. -+ * Try to re-read the partition table. This only succeeds if -+ * none of the devices is busy. The kernel returns 0 if no -+ * partition table is found, and we will not get an event for -+ * the disk. - */ - fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd >= 0) { - r = ioctl(fd, BLKRRPART, 0); - close(fd); - if (r >= 0) -- return 0; -+ part_table_read = true; - } - -- /* -- * Re-reading the partition table did not work, synthesize "change" -- * events for the disk and all partitions. -- */ -- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -- write_string_file(filename, "change"); -- -+ /* search for partitions */ - e = udev_enumerate_new(udev); - if (!e) - return -ENOMEM; -@@ -786,6 +780,37 @@ static int synthesize_change(struct udev - return r; - - r = udev_enumerate_scan_devices(e); -+ -+ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { -+ _cleanup_udev_device_unref_ struct udev_device *d = NULL; -+ -+ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); -+ if (!d) -+ continue; -+ -+ if (!streq_ptr("partition", udev_device_get_devtype(d))) -+ continue; -+ -+ has_partitions = true; -+ break; -+ } -+ -+ /* -+ * We have partitions and re-read the table, the kernel already sent -+ * out a "change" event for the disk, and "remove/add" for all -+ * partitions. -+ */ -+ if (part_table_read && has_partitions) -+ return 0; -+ -+ /* -+ * We have partitions but re-reading the partition table did not -+ * work, synthesize "change" for the disk and all partitions. -+ */ -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ - udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; - diff --git a/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch b/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch deleted file mode 100644 index 4a6d7c13..00000000 --- a/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 02ba8fb3357daf57f6120ac512fb464a4c623419 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 16:21:19 +0200 -Subject: [PATCH] udev: guard REREADPT by exclusive lock instead of O_EXCL - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -758,9 +758,12 @@ static int synthesize_change(struct udev - * partition table is found, and we will not get an event for - * the disk. - */ -- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd >= 0) { -- r = ioctl(fd, BLKRRPART, 0); -+ r = flock(fd, LOCK_EX|LOCK_NB); -+ if (r >= 0) -+ r = ioctl(fd, BLKRRPART, 0); -+ - close(fd); - if (r >= 0) - part_table_read = true; diff --git a/1033-udev-really-exclude-device-mapper-from-block-device.patch b/1033-udev-really-exclude-device-mapper-from-block-device.patch deleted file mode 100644 index 594331c3..00000000 --- a/1033-udev-really-exclude-device-mapper-from-block-device.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 638ca89c53e2b897cfb3f627f4acbc7d09af2f4c Mon Sep 17 00:00:00 2001 -From: Christian Hesse -Date: Tue, 10 Jun 2014 15:51:15 +0200 -Subject: [PATCH] udev: really exclude device-mapper from block device - ownership event locking - -Arguments were wrong order, no? -This fixes commits: - -e918a1b5a94f270186dca59156354acd2a596494 -3d06f4183470d42361303086ed9dedd29c0ffc1b - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -304,7 +304,7 @@ static void worker_new(struct event *eve - * IMHO this sounds like a good plan for this moment - */ - if (streq_ptr("block", udev_device_get_subsystem(dev)) && -- !startswith("dm-", udev_device_get_sysname(dev))) { -+ !startswith(udev_device_get_sysname(dev), "dm-")) { - struct udev_device *d = dev; - - if (streq_ptr("partition", udev_device_get_devtype(d))) -@@ -744,7 +744,7 @@ static int synthesize_change(struct udev - - if (streq_ptr("block", udev_device_get_subsystem(dev)) && - streq_ptr("disk", udev_device_get_devtype(dev)) && -- !startswith("dm-", udev_device_get_sysname(dev))) { -+ !startswith(udev_device_get_sysname(dev), "dm-")) { - bool part_table_read = false; - bool has_partitions = false; - int fd; diff --git a/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch b/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch deleted file mode 100644 index c2a21fce..00000000 --- a/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 47a3fa0f7679521b85f7aeba9e245c52cc7bb2cb Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Wed, 4 Jun 2014 23:40:43 +0200 -Subject: [PATCH] udev: check the return value from udev_enumerate_scan_devices - -The return value from udev_enumerate_scan_devices was stored but -never used. I assume this was meant to be checked. - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 2 ++ - 1 file changed, 2 insertions(+) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -783,6 +783,8 @@ static int synthesize_change(struct udev - return r; - - r = udev_enumerate_scan_devices(e); -+ if (r < 0) -+ return r; - - udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; diff --git a/1038-udev-fix-invalid-free-in-enable_name_policy.patch b/1038-udev-fix-invalid-free-in-enable_name_policy.patch deleted file mode 100644 index 4afdb7ce..00000000 --- a/1038-udev-fix-invalid-free-in-enable_name_policy.patch +++ /dev/null @@ -1,30 +0,0 @@ -From f8a0bb5285024b6ce372c3157e761e6543ebdcd2 Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Fri, 13 Jun 2014 18:48:21 +0200 -Subject: [PATCH] udev: fix invalid free() in enable_name_policy() - -static bool enable_name_policy(...) in ./src/udev/net/link-config.c -calls proc_cmdline(...) to get "line" initialized, but -proc_cmdline(...) does not guarantee that atleast when both -conditions (detect_container(NULL) > 0) and -read_full_file(...) returned < 0. ---- - src/udev/net/link-config.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/net/link-config.c src/udev/net/link-config.c -index a9acc3d..7a9d01b 100644 ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c -@@ -185,7 +185,7 @@ static int load_link(link_config_ctx *ctx, const char *filename) { - } - - static bool enable_name_policy(void) { -- _cleanup_free_ char *line; -+ _cleanup_free_ char *line = NULL; - char *w, *state; - int r; - size_t l; --- -1.7.9.2 - diff --git a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch deleted file mode 100644 index 2760970f..00000000 --- a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 83be2c398589a3d64db5999cfd5527c5219bff46 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Tue, 20 May 2014 12:25:16 +0200 -Subject: [PATCH] udevadm-settle: fixed return code for empty queue - -If the udev queue is empty and "/run/udev/queue" does not exist, -"udevadm settle" would return with EXIT_FAILURE, because the inotify on -"/run/udev/queue" would fail with ENOENT. - -This patch lets "udevadm settle" exit with EXIT_SUCCESS in this case. ---- - src/udev/udevadm-settle.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 65fc35f..66fd843 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -116,7 +116,11 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - } - - if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { -- log_debug("watching /run/udev failed"); -+ /* If it does not exist, we don't have to wait */ -+ if (errno == ENOENT) -+ rc = EXIT_SUCCESS; -+ else -+ log_debug("watching /run/udev/queue failed"); - goto out; - } - --- -1.7.9.2 - diff --git a/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch b/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch deleted file mode 100644 index 21d21356..00000000 --- a/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 45e60962b7965f32755a76b79a28126299aac149 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 27 Jun 2014 14:20:17 +0200 -Subject: [PATCH] libudev: fix udev_queue_get_queue_is_empty() logic - ---- - src/libudev/libudev-queue.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index eb0e096..c32a7ef 100644 ---- src/libudev/libudev-queue.c -+++ src/libudev/libudev-queue.c -@@ -175,7 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) - **/ - _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) - { -- return access("/run/udev/queue", F_OK) >= 0; -+ return access("/run/udev/queue", F_OK) < 0; - } - - /** --- -1.7.9.2 - diff --git a/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch b/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch deleted file mode 100644 index a9458e36..00000000 --- a/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +++ /dev/null @@ -1,248 +0,0 @@ -Based on 14cb733684d3c3f50d088a3a370ddf8e8894dfa4 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 27 Jun 2014 17:42:44 +0200 -Subject: [PATCH] libudev: queue provide file descriptor to watch busy event - queue - ---- - docs/libudev/libudev-sections.txt | 2 ++ - src/libudev/libudev-queue.c | 46 +++++++++++++++++++++++++++++++++++ - src/libudev/libudev.h | 2 ++ - src/libudev/libudev.sym | 2 ++ - src/udev/udevadm-settle.c | 48 ++++++++++++++++--------------------- - 5 files changed, 73 insertions(+), 27 deletions(-) - -diff --git docs/libudev/libudev-sections.txt docs/libudev/libudev-sections.txt -index c154645..8a31ded 100644 ---- docs/libudev/libudev-sections.txt -+++ docs/libudev/libudev-sections.txt -@@ -116,6 +116,8 @@ udev_queue_get_seqnum_sequence_is_finished - udev_queue_get_queued_list_entry - udev_queue_get_kernel_seqnum - udev_queue_get_udev_seqnum -+udev_queue_get_fd -+udev_queue_flush -
- -
-diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index c32a7ef..d4334b4 100644 ---- src/libudev/libudev-queue.c -+++ src/libudev/libudev-queue.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #include "libudev.h" - #include "libudev-private.h" -@@ -45,6 +46,7 @@ - struct udev_queue { - struct udev *udev; - int refcount; -+ int fd; - }; - - /** -@@ -69,6 +71,7 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) - - udev_queue->refcount = 1; - udev_queue->udev = udev; -+ udev_queue->fd = -1; - return udev_queue; - } - -@@ -107,6 +110,9 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) - if (udev_queue->refcount > 0) - return NULL; - -+ if (udev_queue->fd >= 0) -+ close_nointr_nofail(udev_queue->fd); -+ - free(udev_queue); - return NULL; - } -@@ -222,3 +228,44 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu - { - return NULL; - } -+ -+/** -+ * udev_queue_get_fd: -+ * @udev_queue: udev queue context -+ * -+ * Returns: a file descriptor to watch for a queue to become empty. -+ */ -+_public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { -+ int fd; -+ int r; -+ -+ if (udev_queue->fd >= 0) -+ return udev_queue->fd; -+ -+ fd = inotify_init1(IN_CLOEXEC); -+ if (fd < 0) -+ return -errno; -+ -+ r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); -+ if (r < 0) { -+ r = -errno; -+ close(fd); -+ return r; -+ } -+ -+ udev_queue->fd = fd; -+ return fd; -+} -+ -+/** -+ * udev_queue_flush: -+ * @udev_queue: udev queue context -+ * -+ * Returns: the result of clearing the watch for queue changes. -+ */ -+_public_ int udev_queue_flush(struct udev_queue *udev_queue) { -+ if (udev_queue->fd < 0) -+ return -EINVAL; -+ -+ return flush_fd(udev_queue->fd); -+} -diff --git src/libudev/libudev.h src/libudev/libudev.h -index ceb89bd..4f2f115 100644 ---- src/libudev/libudev.h -+++ src/libudev/libudev.h -@@ -177,6 +177,8 @@ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); - int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); - int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, - unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); -+int udev_queue_get_fd(struct udev_queue *udev_queue); -+int udev_queue_flush(struct udev_queue *udev_queue); - struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); - - /* -diff --git src/libudev/libudev.sym src/libudev/libudev.sym -index 1e6f885..95cd1c7 100644 ---- src/libudev/libudev.sym -+++ src/libudev/libudev.sym -@@ -82,6 +82,8 @@ global: - udev_queue_get_udev; - udev_queue_get_udev_is_active; - udev_queue_get_udev_seqnum; -+ udev_queue_get_fd; -+ udev_queue_flush; - udev_queue_new; - udev_queue_ref; - udev_queue_unref; -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 66fd843..79e8b59 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -29,7 +29,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -59,7 +58,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - const char *exists = NULL; - unsigned int timeout = 120; - struct pollfd pfd[1] = { {.fd = -1}, }; -- int rc = EXIT_FAILURE, c; -+ int c; -+ struct udev_queue *queue; -+ int rc = EXIT_FAILURE; - - while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { - switch (c) { -@@ -79,9 +80,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - break; - case 'h': - help(); -- exit(EXIT_SUCCESS); -+ return EXIT_SUCCESS; - case '?': -- exit(EXIT_FAILURE); -+ return EXIT_FAILURE; - default: - assert_not_reached("Unknown argument"); - } -@@ -89,7 +90,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - - if (optind < argc) { - fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); -- exit(EXIT_FAILURE); -+ return EXIT_FAILURE; - } - - /* guarantee that the udev daemon isn't pre-processing */ -@@ -101,26 +102,23 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - if (udev_ctrl_send_ping(uctrl, timeout) < 0) { - log_debug("no connection to daemon"); - udev_ctrl_unref(uctrl); -- rc = EXIT_SUCCESS; -- goto out; -+ return EXIT_SUCCESS; - } - udev_ctrl_unref(uctrl); - } - } - -- pfd[0].events = POLLIN; -- pfd[0].fd = inotify_init1(IN_CLOEXEC); -- if (pfd[0].fd < 0) { -- log_error("inotify_init failed: %m"); -- goto out; -+ queue = udev_queue_new(udev); -+ if (!queue) { -+ log_error("unable to get udev queue"); -+ return EXIT_FAILURE; - } - -- if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { -- /* If it does not exist, we don't have to wait */ -- if (errno == ENOENT) -- rc = EXIT_SUCCESS; -- else -- log_debug("watching /run/udev/queue failed"); -+ pfd[0].events = POLLIN; -+ pfd[0].fd = udev_queue_get_fd(queue); -+ if (pfd[0].fd < 0) { -+ log_debug("queue is empty, nothing to watch"); -+ rc = EXIT_SUCCESS; - goto out; - } - -@@ -131,22 +129,18 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - } - - /* exit if queue is empty */ -- if (access("/run/udev/queue", F_OK) < 0) { -+ if (udev_queue_get_queue_is_empty(queue)) { - rc = EXIT_SUCCESS; - break; - } - -- /* wake up when "queue" file is deleted */ -- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { -- char buf[sizeof(struct inotify_event) + PATH_MAX]; -- -- read(pfd[0].fd, buf, sizeof(buf)); -- } -+ /* wake up when queue is empty */ -+ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) -+ udev_queue_flush(queue); - } - - out: -- if (pfd[0].fd >= 0) -- close(pfd[0].fd); -+ udev_queue_unref(queue); - return rc; - } - --- -1.7.9.2 - diff --git a/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch b/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch deleted file mode 100644 index 78c1c084..00000000 --- a/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8a7a0c19edd2d971d4aa9d635f7978af841e8278 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 27 Jun 2014 19:54:45 +0200 -Subject: [PATCH] libudev: queue - watch entire directory to allow the re-use - of the watch descriptor - ---- - src/libudev/libudev-queue.c | 2 +- - src/udev/udevadm-settle.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index d4334b4..8ef1f3d 100644 ---- src/libudev/libudev-queue.c -+++ src/libudev/libudev-queue.c -@@ -245,7 +245,7 @@ _public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { - if (fd < 0) - return -errno; - -- r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); -+ r = inotify_add_watch(fd, "/run/udev" , IN_DELETE); - if (r < 0) { - r = -errno; - close(fd); -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 79e8b59..fa5b0c2 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -135,7 +135,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - } - - /* wake up when queue is empty */ -- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) -+ if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) - udev_queue_flush(queue); - } - --- -1.7.9.2 - diff --git a/1044-rules-update-qemu-hid-rules.patch b/1044-rules-update-qemu-hid-rules.patch deleted file mode 100644 index 52741afe..00000000 --- a/1044-rules-update-qemu-hid-rules.patch +++ /dev/null @@ -1,45 +0,0 @@ -From cd31d1884f1ecf38e11bc6268f446d75dfafbc25 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 24 Mar 2014 12:07:41 +0100 -Subject: [PATCH] rules: update qemu hid rules - -Update comment to be a bit more specific. - -Change match to blacklist the serial number of the broken devices -instead of whitelisting the serial number of the fixed devices. -This allows to do something useful with the serial number in the -future. ---- - rules/42-usb-hid-pm.rules | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules -index 3fd6e8a..c675b5b 100644 ---- rules/42-usb-hid-pm.rules -+++ rules/42-usb-hid-pm.rules -@@ -2,14 +2,15 @@ - # - # Enable autosuspend for qemu emulated usb hid devices - --# Note that there are buggy qemu versions which advertise remote --# wakeup support but don't actually implement it correctly. This --# is the reason why we need a match for the serial number here. --# The serial number "42" is used to tag the implementations where -+# Note that there are buggy qemu versions (0.13 & older) which -+# advertise remote wakeup support but don't actually implement -+# it correctly. This is the reason why we need a match for the -+# serial number here. Old, broken versions have serial "1". -+# It has been changed to "42" after fixing the bug to indicate - # remote wakeup is working. --ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" --ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" --ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" - - # Catch-all for Avocent HID devices. Keyed off interface in order to only - # trigger on HID class devices. --- -1.7.9.2 - diff --git a/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch b/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch deleted file mode 100644 index cd1f72c7..00000000 --- a/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 52fb538361053f8c4abce0e40cd0bae3d28ceb16 Mon Sep 17 00:00:00 2001 -From: Tom Hirst -Date: Wed, 25 Jun 2014 11:57:11 +0000 -Subject: [PATCH] rules: don't enable usb pm for Avocent devices - -The Avocent KVM over IP devices doesn't work correctly with USB power -management enabled. ---- - rules/42-usb-hid-pm.rules | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules -index c675b5b..4c300da 100644 ---- rules/42-usb-hid-pm.rules -+++ rules/42-usb-hid-pm.rules -@@ -12,10 +12,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!= - ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" - ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" - --# Catch-all for Avocent HID devices. Keyed off interface in order to only --# trigger on HID class devices. --ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{bInterfaceClass}=="03", TEST=="../power/control", ATTR{../power/control}="auto" -- - # Dell DRAC 4 - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="2500", TEST=="power/control", ATTR{power/control}="auto" - --- -1.7.9.2 - diff --git a/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch b/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch deleted file mode 100644 index 47fce280..00000000 --- a/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 01d4590b775661ebc71c7b81b0c62ccd69395268 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Jul 2014 15:13:29 +0200 -Subject: [PATCH] udev: net_setup_link builtin should print the reason why - something fails - -Let's tell users what is going wrong. ---- - src/udev/udev-builtin-net_setup_link.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git src/udev/udev-builtin-net_setup_link.c src/udev/udev-builtin-net_setup_link.c -index 3cd384e..6207269 100644 ---- src/udev/udev-builtin-net_setup_link.c -+++ src/udev/udev-builtin-net_setup_link.c -@@ -43,17 +43,17 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv - r = link_config_get(ctx, dev, &link); - if (r < 0) { - if (r == -ENOENT) { -- log_debug("No matching link configuration found"); -+ log_debug("No matching link configuration found."); - return EXIT_SUCCESS; - } else { -- log_error("Could not get link config"); -+ log_error("Could not get link config: %s", strerror(-r)); - return EXIT_FAILURE; - } - } - - r = link_config_apply(ctx, link, dev, &name); - if (r < 0) { -- log_error("Could not apply link config to %s", udev_device_get_sysname(dev)); -+ log_error("Could not apply link config to %s: %s", udev_device_get_sysname(dev), strerror(-r)); - return EXIT_FAILURE; - } - -@@ -77,18 +77,18 @@ static int builtin_net_setup_link_init(struct udev *udev) { - if (r < 0) - return r; - -- log_debug("Created link configuration context"); -+ log_debug("Created link configuration context."); - return 0; - } - - static void builtin_net_setup_link_exit(struct udev *udev) { - link_config_ctx_free(ctx); - ctx = NULL; -- log_debug("Unloaded link configuration context"); -+ log_debug("Unloaded link configuration context."); - } - - static bool builtin_net_setup_link_validate(struct udev *udev) { -- log_debug("Check if link configuration needs reloading"); -+ log_debug("Check if link configuration needs reloading."); - if (!ctx) - return false; - --- -1.7.9.2 - diff --git a/1048-udev-net_setup_link-add-a-bit-more-logging.patch b/1048-udev-net_setup_link-add-a-bit-more-logging.patch deleted file mode 100644 index 740e3c36..00000000 --- a/1048-udev-net_setup_link-add-a-bit-more-logging.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 866ee3682213789f85b877700457fdca05695a0e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 3 Jul 2014 09:57:27 +0200 -Subject: [PATCH] udev: net_setup_link - add a bit more logging - ---- - src/udev/net/link-config.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git src/udev/net/link-config.c src/udev/net/link-config.c -index 7a9d01b..b8650a6 100644 ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c -@@ -92,14 +92,20 @@ static int link_config_ctx_connect(link_config_ctx *ctx) { - - if (ctx->ethtool_fd == -1) { - r = ethtool_connect(&ctx->ethtool_fd); -- if (r < 0) -+ if (r < 0) { -+ log_warning("link_config: could not connect to ethtool: %s", -+ strerror(-r)); - return r; -+ } - } - - if (!ctx->rtnl) { - r = sd_rtnl_open(&ctx->rtnl, 0); -- if (r < 0) -+ if (r < 0) { -+ log_warning("link_config: could not connect to rtnl: %s", -+ strerror(-r)); - return r; -+ } - } - - return 0; --- -1.7.9.2 - diff --git a/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch b/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch deleted file mode 100644 index 6b3d7ec6..00000000 --- a/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +++ /dev/null @@ -1,36 +0,0 @@ -Based on a669ea9860900d5cdebbc4cb9aaea72db7e28a02 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 7 Jul 2014 14:50:16 +0200 -Subject: [PATCH] udev: link_config - ignore errors due to missing MAC address - -Otherwis, we get misleading error messages on links with MACs. - -Reported by Leonid Isaev. ---- - src/udev/net/link-config.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c 2014-07-08 10:44:19.450735575 +0000 -@@ -440,7 +440,9 @@ int link_config_apply(link_config_ctx *c - case MACPOLICY_PERSISTENT: - if (!mac_is_permanent(device)) { - r = get_mac(device, false, &generated_mac); -- if (r < 0) -+ if (r == -ENOENT) -+ break; -+ else if (r < 0) - return r; - mac = &generated_mac; - } -@@ -448,7 +450,9 @@ int link_config_apply(link_config_ctx *c - case MACPOLICY_RANDOM: - if (!mac_is_random(device)) { - r = get_mac(device, true, &generated_mac); -- if (r < 0) -+ if (r == -ENOENT) -+ break; -+ else if (r < 0) - return r; - mac = &generated_mac; - } diff --git a/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch b/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch deleted file mode 100644 index edab1583..00000000 --- a/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 30632d97d9d68c8202e562f34afae8f8d6e9c377 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 15 Jul 2014 17:35:53 +0200 -Subject: [PATCH] rules: uaccess - add ID_SOFTWARE_RADIO - -On Tue, Jul 15, 2014 at 1:52 PM, Alick Zhao wrote: ->>> ->>> So maybe ID_SOFTWARE_RADIO ? ->> ->> Hmm, SDR is more a term for a generic technology than for a device ->> class. To me it does not really sound like an administrator would know ->> what this is. ->> ->> What exactly is the device or subsystem you want to make accessible to ->> locally logged-in users only? -> -> Initially it is bladeRF, but many more are of interest: USRP, rtl-sdr, -> HackRF, ... [1] -> -> I agree an administrator might not know what SDR is, since it is -> currently still not widely known, and makes sense only for amateurs -> and researchers. But as a SDR fan, I see many new SDR peripherals -> are created recently, and expect to see more. So a generic ID seems -> reasonable to me. -> -> [1] http://en.wikipedia.org/wiki/List_of_software-defined_radios ---- - src/login/70-uaccess.rules | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/login/70-uaccess.rules src/login/70-uaccess.rules -index 57f619d..694df2c 100644 ---- src/login/70-uaccess.rules -+++ src/login/70-uaccess.rules -@@ -72,4 +72,7 @@ ENV{DDC_DEVICE}=="?*", TAG+="uaccess" - # media player raw devices (for user-mode drivers, Android SDK, etc.) - SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="uaccess" - -+# software-defined radio communication devices -+ENV{ID_SOFTWARE_RADIO}=="?*", TAG+="uaccess" -+ - LABEL="uaccess_end" --- -1.7.9.2 - diff --git a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch deleted file mode 100644 index ecf11ad5..00000000 --- a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 24 Jul 2014 23:37:35 +0200 -Subject: [PATCH] udev: exclude MD from block device ownership event locking - -MD instantiates devices at open(). This is incomptible with the -locking logic, as the "change" event emitted when stopping a -device will bring it back. ---- - src/udev/udevd.c | 23 +++++++---------------- - 1 file changed, 7 insertions(+), 16 deletions(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index a45d324..db935d6 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -285,26 +285,17 @@ static void worker_new(struct event *event) - udev_event->exec_delay = exec_delay; - - /* -- * Take a "read lock" on the device node; this establishes -+ * Take a shared lock on the device node; this establishes - * a concept of device "ownership" to serialize device -- * access. External processes holding a "write lock" will -+ * access. External processes holding an exclusive lock will - * cause udev to skip the event handling; in the case udev -- * acquired the lock, the external process will block until -+ * acquired the lock, the external process can block until - * udev has finished its event handling. - */ -- -- /* -- * since we make check - device seems unused - we try -- * ioctl to deactivate - and device is found to be opened -- * sure, you try to take a write lock -- * if you get it udev is out -- * if you can't get it, udev is busy -- * we cannot deactivate openned device (as it is in-use) -- * maybe we should just exclude dm from that thing entirely -- * IMHO this sounds like a good plan for this moment -- */ -- if (streq_ptr("block", udev_device_get_subsystem(dev)) && -- !startswith(udev_device_get_sysname(dev), "dm-")) { -+ if (!streq_ptr(udev_device_get_action(dev), "remove") && -+ streq_ptr("block", udev_device_get_subsystem(dev)) && -+ !startswith(udev_device_get_sysname(dev), "dm-") && -+ !startswith(udev_device_get_sysname(dev), "md")) { - struct udev_device *d = dev; - - if (streq_ptr("partition", udev_device_get_devtype(d))) --- -1.7.9.2 - diff --git a/1056-udevd-add-event-timeout-commandline-option.patch b/1056-udevd-add-event-timeout-commandline-option.patch deleted file mode 100644 index 1f670688..00000000 --- a/1056-udevd-add-event-timeout-commandline-option.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 9719859c07aa13539ed2cd4b31972cd30f678543 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 29 Jul 2014 09:06:14 +0200 -Subject: [PATCH] udevd: add --event-timeout commandline option - -Some events take longer than the default 30 seconds. Killing those -events will leave the machine halfway configured. - -Add a commandline option '--event-timeout' to handle these cases. ---- - man/systemd-udevd.service.xml | 19 +++++++++++++++++++ - src/udev/udevd.c | 12 +++++++++++- - 2 files changed, 30 insertions(+), 1 deletion(-) - -diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml -index f44b7a0..8de43b1 100644 ---- man/systemd-udevd.service.xml -+++ man/systemd-udevd.service.xml -@@ -44,6 +44,7 @@ - - - -+ - - - -@@ -96,6 +97,15 @@ - - - -+ -+ -+ Wait for the event to finish up to the given -+ number of seconds. After this time the event will -+ be terminated. Default is 30. -+ -+ -+ -+ - - - Specify when systemd-udevd should resolve names of users and groups. -@@ -156,6 +166,15 @@ - - - -+ udev.event-timeout= -+ rd.udev.event-timeout= -+ -+ Wait for events to finish up to the given number -+ of seconds. This option might be useful if events are -+ terminated due to a timeout in large configurations. -+ -+ -+ - net.ifnames= - - Network interfaces are renamed to give them predictable names -diff --git src/udev/udevd.c src/udev/udevd.c -index db935d6..c5dd739 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -74,6 +74,7 @@ static bool reload; - static int children; - static int children_max; - static int exec_delay; -+static int event_timeout = 30; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -312,6 +313,9 @@ static void worker_new(struct event *event) - } - } - -+ if (event_timeout != 30) -+ udev_event->timeout_usec = event_timeout * USEC_PER_SEC; -+ - /* apply rules, create node, symlinks */ - udev_event_execute_rules(udev_event, rules, &sigmask_orig); - -@@ -1009,6 +1013,8 @@ static void kernel_cmdline_options(struct udev *udev) - children_max = strtoul(opt + 18, NULL, 0); - } else if (startswith(opt, "udev.exec-delay=")) { - exec_delay = strtoul(opt + 16, NULL, 0); -+ } else if (startswith(opt, "udev.event-timeout=")) { -+ event_timeout = strtoul(opt + 16, NULL, 0); - } - - free(s); -@@ -1026,6 +1032,7 @@ int main(int argc, char *argv[]) - { "debug", no_argument, NULL, 'D' }, - { "children-max", required_argument, NULL, 'c' }, - { "exec-delay", required_argument, NULL, 'e' }, -+ { "event-timeout", required_argument, NULL, 't' }, - { "resolve-names", required_argument, NULL, 'N' }, - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, -@@ -1069,6 +1076,9 @@ int main(int argc, char *argv[]) - case 'e': - exec_delay = strtoul(optarg, NULL, 0); - break; -+ case 't': -+ event_timeout = strtoul(optarg, NULL, 0); -+ break; - case 'D': - debug = true; - log_set_max_level(LOG_DEBUG); -@@ -1406,7 +1416,7 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { -+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { - log_error("worker [%u] %s timeout; kill it", worker->pid, - worker->event ? worker->event->devpath : ""); - kill(worker->pid, SIGKILL); --- -1.7.9.2 - diff --git a/1057-udev-unify-event-timeout-handling.patch b/1057-udev-unify-event-timeout-handling.patch deleted file mode 100644 index 9aa819b6..00000000 --- a/1057-udev-unify-event-timeout-handling.patch +++ /dev/null @@ -1,504 +0,0 @@ -From dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 29 Jul 2014 15:18:27 +0200 -Subject: [PATCH] udev: unify event timeout handling - ---- - man/systemd-udevd.service.xml | 7 +++--- - man/udev.xml | 7 ------ - src/test/test-udev.c | 5 ++-- - src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- - src/udev/udev-rules.c | 38 ++++++++--------------------- - src/udev/udev.h | 8 +++---- - src/udev/udevadm-test.c | 2 +- - src/udev/udevd.c | 32 ++++++++++--------------- - 8 files changed, 61 insertions(+), 91 deletions(-) - -diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml -index 8de43b1..3053dc7 100644 ---- man/systemd-udevd.service.xml -+++ man/systemd-udevd.service.xml -@@ -99,9 +99,8 @@ - - - -- Wait for the event to finish up to the given -- number of seconds. After this time the event will -- be terminated. Default is 30. -+ Set the number of seconds to wait for events to finish. After -+ this time the event will be terminated. The default is 30 seconds. - - - -@@ -171,7 +170,7 @@ - - Wait for events to finish up to the given number - of seconds. This option might be useful if events are -- terminated due to a timeout in large configurations. -+ terminated due to kernel drivers taking too long to initialize. - - - -diff --git man/udev.xml man/udev.xml -index 4e5f8f0..123c073 100644 ---- man/udev.xml -+++ man/udev.xml -@@ -516,13 +516,6 @@ - - - -- -- -- Number of seconds an event waits for operations to finish before -- giving up and terminating itself. -- -- -- - - - Usually control and other possibly unsafe characters are replaced -diff --git src/test/test-udev.c src/test/test-udev.c -index b057cc8..26d6537 100644 ---- src/test/test-udev.c -+++ src/test/test-udev.c -@@ -80,7 +80,6 @@ out: - return err; - } - -- - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_event_unref_ struct udev_event *event = NULL; -@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { - } - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -- udev_event_execute_run(event, NULL); -+ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); -+ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) - udev_list_init(udev, &event->seclabel_list, false); - event->fd_signal = -1; - event->birth_usec = now(CLOCK_MONOTONIC); -- event->timeout_usec = 30 * 1000 * 1000; - return event; - } - -@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, - } - - static void spawn_read(struct udev_event *event, -- const char *cmd, -- int fd_stdout, int fd_stderr, -- char *result, size_t ressize) -+ usec_t timeout_usec, -+ const char *cmd, -+ int fd_stdout, int fd_stderr, -+ char *result, size_t ressize) - { - size_t respos = 0; - int fd_ep = -1; -@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, - struct epoll_event ev[4]; - int i; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) { -+ if (age_usec >= timeout_usec) { - log_error("timeout '%s'", cmd); - goto out; - } -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -543,8 +543,9 @@ out: - close(fd_ep); - } - --static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) --{ -+static int spawn_wait(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *cmd, pid_t pid) { - struct pollfd pfd[1]; - int err = 0; - -@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) - int timeout; - int fdcount; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) -+ if (age_usec >= timeout_usec) - timeout = 1000; - else -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -657,9 +658,9 @@ out: - } - - int udev_event_spawn(struct udev_event *event, -+ usec_t timeout_usec, - const char *cmd, char **envp, const sigset_t *sigmask, -- char *result, size_t ressize) --{ -+ char *result, size_t ressize) { - struct udev *udev = event->udev; - int outpipe[2] = {-1, -1}; - int errpipe[2] = {-1, -1}; -@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, - errpipe[WRITE_END] = -1; - } - -- spawn_read(event, cmd, -- outpipe[READ_END], errpipe[READ_END], -- result, ressize); -+ spawn_read(event, -+ timeout_usec, -+ cmd, -+ outpipe[READ_END], errpipe[READ_END], -+ result, ressize); - -- err = spawn_wait(event, cmd, pid); -+ err = spawn_wait(event, timeout_usec, cmd, pid); - } - - out: -@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) - return r; - } - --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) --{ -+void udev_event_execute_rules(struct udev_event *event, -+ usec_t timeout_usec, -+ struct udev_rules *rules, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - - if (udev_device_get_subsystem(dev) == NULL) -@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - if (major(udev_device_get_devnum(dev)) != 0) - udev_watch_end(event->udev, dev); - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - if (major(udev_device_get_devnum(dev)) != 0) - udev_node_remove(dev); -@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - udev_watch_end(event->udev, event->dev_db); - } - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - /* rename a new network interface, if needed */ - if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && -@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - } - } - --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) --{ -+void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { - struct udev_list_entry *list_entry; - - udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { -@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) - - udev_event_apply_format(event, cmd, program, sizeof(program)); - envp = udev_device_get_properties_envp(event->dev); -- udev_event_spawn(event, program, envp, sigmask, NULL, 0); -+ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); - } - } - } -diff --git src/udev/udev-rules.c src/udev/udev-rules.c -index 9864016..aacde38 100644 ---- src/udev/udev-rules.c -+++ src/udev/udev-rules.c -@@ -137,7 +137,6 @@ enum token_type { - TK_M_PARENTS_MAX, - - TK_M_TEST, /* val, mode_t */ -- TK_M_EVENT_TIMEOUT, /* int */ - TK_M_PROGRAM, /* val */ - TK_M_IMPORT_FILE, /* val */ - TK_M_IMPORT_PROG, /* val */ -@@ -201,7 +200,6 @@ struct token { - uid_t uid; - gid_t gid; - int devlink_prio; -- int event_timeout; - int watch; - enum udev_builtin_cmd builtin_cmd; - }; -@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) - [TK_M_PARENTS_MAX] = "M PARENTS_MAX", - - [TK_M_TEST] = "M TEST", -- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", - [TK_M_PROGRAM] = "M PROGRAM", - [TK_M_IMPORT_FILE] = "M IMPORT_FILE", - [TK_M_IMPORT_PROG] = "M IMPORT_PROG", -@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) - case TK_A_SECLABEL: - log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); - break; -- case TK_M_EVENT_TIMEOUT: -- log_debug("%s %u", token_str(type), token->key.event_timeout); -- break; - case TK_A_GOTO: - log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); - break; -@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file - return 0; - } - --static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) --{ -+static int import_program_into_properties(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *program, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - char **envp; - char result[UTIL_LINE_SIZE]; -@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * - int err; - - envp = udev_device_get_properties_envp(dev); -- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); -+ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); - if (err < 0) - return err; - -@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, - case TK_A_MODE_ID: - token->key.mode = *(mode_t *)data; - break; -- case TK_M_EVENT_TIMEOUT: -- token->key.event_timeout = *(int *)data; -- break; - case TK_RULE: - case TK_M_PARENTS_MIN: - case TK_M_PARENTS_MAX: -@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, - rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); - } - -- pos = strstr(value, "event_timeout="); -- if (pos != NULL) { -- int tout = atoi(&pos[strlen("event_timeout=")]); -- -- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); -- } -- -- pos = strstr(value, "string_escape="); - if (pos != NULL) { - pos = &pos[strlen("string_escape=")]; - if (startswith(pos, "none")) -@@ -1829,8 +1813,10 @@ enum escape_type { - ESCAPE_REPLACE, - }; - --int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) --{ -+int udev_rules_apply_to_event(struct udev_rules *rules, -+ struct udev_event *event, -+ usec_t timeout_usec, -+ const sigset_t *sigmask) { - struct token *cur; - struct token *rule; - enum escape_type esc = ESCAPE_UNSET; -@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - goto nomatch; - break; - } -- case TK_M_EVENT_TIMEOUT: -- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); -- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; -- break; - case TK_M_PROGRAM: { - char program[UTIL_PATH_SIZE]; - char **envp; -@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { -+ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { - if (cur->key.op != OP_NOMATCH) - goto nomatch; - } else { -@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (import_program_into_properties(event, import, sigmask) != 0) -+ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) - if (cur->key.op != OP_NOMATCH) - goto nomatch; - break; -diff --git src/udev/udev.h src/udev/udev.h -index 62538bc..4aca70b 100644 ---- src/udev/udev.h -+++ src/udev/udev.h -@@ -43,7 +43,6 @@ struct udev_event { - struct udev_list run_list; - int exec_delay; - usec_t birth_usec; -- usec_t timeout_usec; - int fd_signal; - unsigned int builtin_run; - unsigned int builtin_ret; -@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); -+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_static_dev_perms(struct udev_rules *rules); - - /* udev-event.c */ -@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * - 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, - const char *cmd, char **envp, const sigset_t *sigmask, - char *result, size_t ressize); --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); -+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); - 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 6a2f548..52cc26c 100644 ---- src/udev/udevadm-test.c -+++ src/udev/udevadm-test.c -@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - goto out; - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 30 * 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)); -diff --git src/udev/udevd.c src/udev/udevd.c -index c5dd739..dee7a87 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 int event_timeout = 30; -+static usec_t event_timeout_usec = 30 * USEC_PER_SEC; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -313,13 +313,10 @@ static void worker_new(struct event *event) - } - } - -- if (event_timeout != 30) -- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; -- - /* apply rules, create node, symlinks */ -- udev_event_execute_rules(udev_event, rules, &sigmask_orig); -+ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); - -- udev_event_execute_run(udev_event, &sigmask_orig); -+ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); - - /* apply/restore inotify watch */ - if (udev_event->inotify_watch) { -@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) - } else if (startswith(opt, "udev.exec-delay=")) { - exec_delay = strtoul(opt + 16, NULL, 0); - } else if (startswith(opt, "udev.event-timeout=")) { -- event_timeout = strtoul(opt + 16, NULL, 0); -+ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; - } - - free(s); - } - } - --int main(int argc, char *argv[]) --{ -+int main(int argc, char *argv[]) { - struct udev *udev; - sigset_t mask; - int daemonize = false; -@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) - exec_delay = strtoul(optarg, NULL, 0); - break; - case 't': -- event_timeout = strtoul(optarg, NULL, 0); -+ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; - break; - case 'D': - debug = true; -@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) - " --debug\n" - " --children-max=\n" - " --exec-delay=\n" -+ " --event-timeout=\n" - " --resolve-names=early|late|never\n" - " --version\n" - " --help\n" -@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { -- log_error("worker [%u] %s timeout; kill it", worker->pid, -- worker->event ? worker->event->devpath : ""); -+ 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); -- if (worker->event) { -- 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; -- } -+ 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; - } - } - --- -1.7.9.2 - diff --git a/1058-udev-unify-event-timeout-handling.patch b/1058-udev-unify-event-timeout-handling.patch deleted file mode 100644 index a92d15f7..00000000 --- a/1058-udev-unify-event-timeout-handling.patch +++ /dev/null @@ -1,504 +0,0 @@ -Based on dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 29 Jul 2014 15:18:27 +0200 -Subject: [PATCH] udev: unify event timeout handling - ---- - man/systemd-udevd.service.xml | 7 +++--- - man/udev.xml | 7 ------ - src/test/test-udev.c | 5 ++-- - src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- - src/udev/udev-rules.c | 38 ++++++++--------------------- - src/udev/udev.h | 8 +++---- - src/udev/udevadm-test.c | 2 +- - src/udev/udevd.c | 32 ++++++++++--------------- - 8 files changed, 61 insertions(+), 91 deletions(-) - -diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml -index 8de43b1..3053dc7 100644 ---- man/systemd-udevd.service.xml -+++ man/systemd-udevd.service.xml -@@ -99,9 +99,8 @@ - - - -- Wait for the event to finish up to the given -- number of seconds. After this time the event will -- be terminated. Default is 30. -+ Set the number of seconds to wait for events to finish. After -+ this time the event will be terminated. The default is 30 seconds. - - - -@@ -171,7 +170,7 @@ - - Wait for events to finish up to the given number - of seconds. This option might be useful if events are -- terminated due to a timeout in large configurations. -+ terminated due to kernel drivers taking too long to initialize. - - - -diff --git man/udev.xml man/udev.xml -index 4e5f8f0..123c073 100644 ---- man/udev.xml -+++ man/udev.xml -@@ -516,13 +516,6 @@ - - - -- -- -- Number of seconds an event waits for operations to finish before -- giving up and terminating itself. -- -- -- - - - Usually control and other possibly unsafe characters are replaced -diff --git src/test/test-udev.c src/test/test-udev.c -index b057cc8..26d6537 100644 ---- src/test/test-udev.c -+++ src/test/test-udev.c -@@ -80,7 +80,6 @@ out: - return err; - } - -- - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_event_unref_ struct udev_event *event = NULL; -@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { - } - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -- udev_event_execute_run(event, NULL); -+ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); -+ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) - udev_list_init(udev, &event->seclabel_list, false); - event->fd_signal = -1; - event->birth_usec = now(CLOCK_MONOTONIC); -- event->timeout_usec = 30 * 1000 * 1000; - return event; - } - -@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, - } - - static void spawn_read(struct udev_event *event, -- const char *cmd, -- int fd_stdout, int fd_stderr, -- char *result, size_t ressize) -+ usec_t timeout_usec, -+ const char *cmd, -+ int fd_stdout, int fd_stderr, -+ char *result, size_t ressize) - { - size_t respos = 0; - int fd_ep = -1; -@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, - struct epoll_event ev[4]; - int i; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) { -+ if (age_usec >= timeout_usec) { - log_error("timeout '%s'", cmd); - goto out; - } -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -543,8 +543,9 @@ out: - close(fd_ep); - } - --static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) --{ -+static int spawn_wait(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *cmd, pid_t pid) { - struct pollfd pfd[1]; - int err = 0; - -@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) - int timeout; - int fdcount; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) -+ if (age_usec >= timeout_usec) - timeout = 1000; - else -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -657,9 +658,9 @@ out: - } - - int udev_event_spawn(struct udev_event *event, -+ usec_t timeout_usec, - const char *cmd, char **envp, const sigset_t *sigmask, -- char *result, size_t ressize) --{ -+ char *result, size_t ressize) { - struct udev *udev = event->udev; - int outpipe[2] = {-1, -1}; - int errpipe[2] = {-1, -1}; -@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, - errpipe[WRITE_END] = -1; - } - -- spawn_read(event, cmd, -- outpipe[READ_END], errpipe[READ_END], -- result, ressize); -+ spawn_read(event, -+ timeout_usec, -+ cmd, -+ outpipe[READ_END], errpipe[READ_END], -+ result, ressize); - -- err = spawn_wait(event, cmd, pid); -+ err = spawn_wait(event, timeout_usec, cmd, pid); - } - - out: -@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) - return r; - } - --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) --{ -+void udev_event_execute_rules(struct udev_event *event, -+ usec_t timeout_usec, -+ struct udev_rules *rules, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - - if (udev_device_get_subsystem(dev) == NULL) -@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - if (major(udev_device_get_devnum(dev)) != 0) - udev_watch_end(event->udev, dev); - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - if (major(udev_device_get_devnum(dev)) != 0) - udev_node_remove(dev); -@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - udev_watch_end(event->udev, event->dev_db); - } - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - /* rename a new network interface, if needed */ - if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && -@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - } - } - --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) --{ -+void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { - struct udev_list_entry *list_entry; - - udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { -@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) - - udev_event_apply_format(event, cmd, program, sizeof(program)); - envp = udev_device_get_properties_envp(event->dev); -- udev_event_spawn(event, program, envp, sigmask, NULL, 0); -+ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); - } - } - } -diff --git src/udev/udev-rules.c src/udev/udev-rules.c -index 9864016..aacde38 100644 ---- src/udev/udev-rules.c -+++ src/udev/udev-rules.c -@@ -137,7 +137,6 @@ enum token_type { - TK_M_PARENTS_MAX, - - TK_M_TEST, /* val, mode_t */ -- TK_M_EVENT_TIMEOUT, /* int */ - TK_M_PROGRAM, /* val */ - TK_M_IMPORT_FILE, /* val */ - TK_M_IMPORT_PROG, /* val */ -@@ -201,7 +200,6 @@ struct token { - uid_t uid; - gid_t gid; - int devlink_prio; -- int event_timeout; - int watch; - enum udev_builtin_cmd builtin_cmd; - }; -@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) - [TK_M_PARENTS_MAX] = "M PARENTS_MAX", - - [TK_M_TEST] = "M TEST", -- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", - [TK_M_PROGRAM] = "M PROGRAM", - [TK_M_IMPORT_FILE] = "M IMPORT_FILE", - [TK_M_IMPORT_PROG] = "M IMPORT_PROG", -@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) - case TK_A_SECLABEL: - log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); - break; -- case TK_M_EVENT_TIMEOUT: -- log_debug("%s %u", token_str(type), token->key.event_timeout); -- break; - case TK_A_GOTO: - log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); - break; -@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file - return 0; - } - --static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) --{ -+static int import_program_into_properties(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *program, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - char **envp; - char result[UTIL_LINE_SIZE]; -@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * - int err; - - envp = udev_device_get_properties_envp(dev); -- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); -+ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); - if (err < 0) - return err; - -@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, - case TK_A_MODE_ID: - token->key.mode = *(mode_t *)data; - break; -- case TK_M_EVENT_TIMEOUT: -- token->key.event_timeout = *(int *)data; -- break; - case TK_RULE: - case TK_M_PARENTS_MIN: - case TK_M_PARENTS_MAX: -@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, - rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); - } - -- pos = strstr(value, "event_timeout="); -- if (pos != NULL) { -- int tout = atoi(&pos[strlen("event_timeout=")]); -- -- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); -- } -- -- pos = strstr(value, "string_escape="); - if (pos != NULL) { - pos = &pos[strlen("string_escape=")]; - if (startswith(pos, "none")) -@@ -1829,8 +1813,10 @@ enum escape_type { - ESCAPE_REPLACE, - }; - --int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) --{ -+int udev_rules_apply_to_event(struct udev_rules *rules, -+ struct udev_event *event, -+ usec_t timeout_usec, -+ const sigset_t *sigmask) { - struct token *cur; - struct token *rule; - enum escape_type esc = ESCAPE_UNSET; -@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - goto nomatch; - break; - } -- case TK_M_EVENT_TIMEOUT: -- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); -- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; -- break; - case TK_M_PROGRAM: { - char program[UTIL_PATH_SIZE]; - char **envp; -@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { -+ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { - if (cur->key.op != OP_NOMATCH) - goto nomatch; - } else { -@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (import_program_into_properties(event, import, sigmask) != 0) -+ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) - if (cur->key.op != OP_NOMATCH) - goto nomatch; - break; -diff --git src/udev/udev.h src/udev/udev.h -index 62538bc..4aca70b 100644 ---- src/udev/udev.h -+++ src/udev/udev.h -@@ -43,7 +43,6 @@ struct udev_event { - struct udev_list run_list; - int exec_delay; - usec_t birth_usec; -- usec_t timeout_usec; - int fd_signal; - unsigned int builtin_run; - unsigned int builtin_ret; -@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); -+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_static_dev_perms(struct udev_rules *rules); - - /* udev-event.c */ -@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * - 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, - const char *cmd, char **envp, const sigset_t *sigmask, - char *result, size_t ressize); --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); -+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); - 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 6a2f548..52cc26c 100644 ---- src/udev/udevadm-test.c -+++ src/udev/udevadm-test.c -@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - goto out; - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 30 * 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)); -diff --git src/udev/udevd.c src/udev/udevd.c -index c5dd739..dee7a87 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 int event_timeout = 30; -+static usec_t event_timeout_usec = 30 * USEC_PER_SEC; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -313,13 +313,10 @@ static void worker_new(struct event *event) - } - } - -- if (event_timeout != 30) -- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; -- - /* apply rules, create node, symlinks */ -- udev_event_execute_rules(udev_event, rules, &sigmask_orig); -+ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); - -- udev_event_execute_run(udev_event, &sigmask_orig); -+ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); - - /* apply/restore inotify watch */ - if (udev_event->inotify_watch) { -@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) - } else if (startswith(opt, "udev.exec-delay=")) { - exec_delay = strtoul(opt + 16, NULL, 0); - } else if (startswith(opt, "udev.event-timeout=")) { -- event_timeout = strtoul(opt + 16, NULL, 0); -+ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; - } - - free(s); - } - } - --int main(int argc, char *argv[]) --{ -+int main(int argc, char *argv[]) { - struct udev *udev; - sigset_t mask; - int daemonize = false; -@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) - exec_delay = strtoul(optarg, NULL, 0); - break; - case 't': -- event_timeout = strtoul(optarg, NULL, 0); -+ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; - break; - case 'D': - debug = true; -@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) - " --debug\n" - " --children-max=\n" - " --exec-delay=\n" -+ " --event-timeout=\n" - " --resolve-names=early|late|never\n" - " --version\n" - " --help\n" -@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { -- log_error("worker [%u] %s timeout; kill it", worker->pid, -- worker->event ? worker->event->devpath : ""); -+ 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); -- if (worker->event) { -- 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; -- } -+ 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; - } - } - --- -1.7.9.2 - diff --git a/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch b/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch deleted file mode 100644 index 62d5d665..00000000 --- a/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9f20a8a376f924c8eb5423cfc1f98644fc1e2d1a Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Wed, 30 Jul 2014 10:10:46 +0200 -Subject: [PATCH] udev: fixup commit dd5eddd28a74a49607a8fffcaf960040dba98479 - -Commit dd5eddd28a74a49607a8fffcaf960040dba98479 accidentally -removed one line too many. ---- - src/udev/udev-rules.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/udev/udev-rules.c src/udev/udev-rules.c -index 59bc124..cc56215 100644 ---- src/udev/udev-rules.c -+++ src/udev/udev-rules.c -@@ -1436,6 +1436,7 @@ static int add_rule(struct udev_rules *rules, char *line, - rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); - } - -+ pos = strstr(value, "string_escape="); - if (pos != NULL) { - pos = &pos[strlen("string_escape=")]; - if (startswith(pos, "none")) --- -1.7.9.2 - diff --git a/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch b/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch deleted file mode 100644 index 20d064f8..00000000 --- a/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b5df2eabf3fdd3e1663bc4c948812472084f3e96 Mon Sep 17 00:00:00 2001 -From: Kevin Wells -Date: Thu, 31 Jul 2014 17:38:21 +0200 -Subject: [PATCH] rules: allow systemd to manage loop device partitions - -SYSTEMD_READY is currently set to 0 for all loop devices (loop[0-9]*) -that do not have a backing_file. Partitioned loop devices (ex. loop0p1), -however, are matched by this rule and excluded by systemd even though -they are active devices. - -This change adds an additional check to the rule, ensuring that only -top level loop devices (loop[0-9]+$) are excluded from systemd. ---- - rules/99-systemd.rules.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in -index c3ef81b..aa435c4 100644 ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in -@@ -23,7 +23,7 @@ SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" - - # Ignore loop devices that don't have any file attached --SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" -+SUBSYSTEM=="block", KERNEL=="loop[0-9]*", ENV{DEVTYPE}=="disk", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" - - # Ignore nbd devices in the "add" event, with "change" the nbd is ready - ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" --- -1.7.9.2 - diff --git a/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch b/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch deleted file mode 100644 index 06966c4c..00000000 --- a/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +++ /dev/null @@ -1,96 +0,0 @@ -Based on e98bbfd2074e2b1079b7059341eac25741baf319 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 4 Aug 2014 18:15:34 +0200 -Subject: [PATCH] udev: path_id - suppress ID_PATH for devices with an unknown - parent device type - -https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1321816 ---- - src/udev/udev-builtin-path_id.c | 38 +++++++++++++++++++++++++++----------- - 1 file changed, 27 insertions(+), 11 deletions(-) - ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c 2014-08-22 14:08:59.250235369 +0000 -@@ -524,7 +524,8 @@ static int builtin_path_id(struct udev_d - { - struct udev_device *parent; - char *path = NULL; -- bool some_transport = false; -+ bool supported_transport = false; -+ bool supported_parent = false; - - /* S390 ccw bus */ - parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL); -@@ -545,47 +546,62 @@ static int builtin_path_id(struct udev_d - handle_scsi_tape(parent, &path); - } else if (streq(subsys, "scsi")) { - parent = handle_scsi(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "cciss")) { - parent = handle_cciss(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "usb")) { - parent = handle_usb(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "bcma")) { - parent = handle_bcma(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "serio")) { - path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent)); - parent = skip_subsystem(parent, "serio"); - } else if (streq(subsys, "pci")) { - path_prepend(&path, "pci-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "pci"); -+ supported_parent = true; - } else if (streq(subsys, "platform")) { - path_prepend(&path, "platform-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "platform"); -- some_transport = true; -+ supported_transport = true; -+ supported_parent = true; - } else if (streq(subsys, "acpi")) { - path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "acpi"); -+ supported_parent = true; - } else if (streq(subsys, "xen")) { - path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "xen"); -+ supported_parent = true; - } else if (streq(subsys, "scm")) { - path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "scm"); -- some_transport = true; -+ supported_transport = true; -+ supported_parent = true; - } - - parent = udev_device_get_parent(parent); - } - - /* -- * Do not return a single-parent-device-only for block -- * devices, they might have entire buses behind it which -- * do not get unique IDs only by using the parent device. -+ * Do return devices with have an unknown type of parent device, they -+ * might produce conflicting IDs below multiple independent parent -+ * devices. - */ -- if (!some_transport && streq(udev_device_get_subsystem(dev), "block")) { -+ if (!supported_parent) { -+ free(path); -+ path = NULL; -+ } -+ -+ /* -+ * Do not return a have-only a single-parent block devices, some -+ * have entire hidden buses behind it, and not create predictable -+ * IDs that way. -+ */ -+ if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { - free(path); - path = NULL; - } diff --git a/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch b/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch deleted file mode 100644 index 07755c04..00000000 --- a/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 77cf759ea05bea476cdcb8d0dcd04c4e6fb3b2ff Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 26 Aug 2014 18:27:36 +0200 -Subject: [PATCH] udev: hwdb - do not look at "usb_device" parents - -Based on a patch from Simon McVittie . - -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758050 ---- - src/udev/udev-builtin-hwdb.c | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git src/udev/udev-builtin-hwdb.c src/udev/udev-builtin-hwdb.c -index cac97e7..695a31a 100644 ---- src/udev/udev-builtin-hwdb.c -+++ src/udev/udev-builtin-hwdb.c -@@ -88,9 +88,10 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device - const char *filter, bool test) { - struct udev_device *d; - char s[16]; -- int n = 0; -+ bool last = false; -+ int r = 0; - -- for (d = srcdev; d; d = udev_device_get_parent(d)) { -+ for (d = srcdev; d && !last; d = udev_device_get_parent(d)) { - const char *dsubsys; - const char *modalias = NULL; - -@@ -104,19 +105,24 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device - - modalias = udev_device_get_property_value(d, "MODALIAS"); - -- /* the usb_device does not have a modalias, compose one */ -- if (!modalias && streq(dsubsys, "usb")) -- modalias = modalias_usb(d, s, sizeof(s)); -+ if (streq(dsubsys, "usb") && streq_ptr(udev_device_get_devtype(d), "usb_device")) { -+ /* if the usb_device does not have a modalias, compose one */ -+ if (!modalias) -+ modalias = modalias_usb(d, s, sizeof(s)); -+ -+ /* avoid looking at any parent device, they are usually just a USB hub */ -+ last = true; -+ } - - if (!modalias) - continue; - -- n = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); -- if (n > 0) -+ r = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); -+ if (r > 0) - break; - } - -- return n; -+ return r; - } - - static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool test) { --- -1.7.9.2 - diff --git a/1065-udev-bump-event-timeout-to-60-seconds.patch b/1065-udev-bump-event-timeout-to-60-seconds.patch deleted file mode 100644 index aae4da95..00000000 --- a/1065-udev-bump-event-timeout-to-60-seconds.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2e92633dbae52f5ac9b7b2e068935990d475d2cd Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 30 Aug 2014 11:36:32 +0200 -Subject: [PATCH] udev: bump event timeout to 60 seconds - ---- - src/udev/udevadm-test.c | 2 +- - src/udev/udevd.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c -index 8486049..809adb6 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, 30 * USEC_PER_SEC, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 60 * 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)); -diff --git src/udev/udevd.c src/udev/udevd.c -index 9c2b0d5..e72c5b2 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -73,7 +73,7 @@ static bool reload; - static int children; - static int children_max; - static int exec_delay; --static usec_t event_timeout_usec = 30 * USEC_PER_SEC; -+static usec_t event_timeout_usec = 60 * 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/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch index 3bb4d407..e08ad9f8 100644 --- a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +++ b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch @@ -18,8 +18,10 @@ Signed-off-by: Jeff Mahoney src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------ 4 files changed, 32 insertions(+), 7 deletions(-) ---- a/rules/60-persistent-storage.rules -+++ b/rules/60-persistent-storage.rules +Index: systemd/rules/60-persistent-storage.rules +=================================================================== +--- systemd.orig/rules/60-persistent-storage.rules ++++ systemd/rules/60-persistent-storage.rules @@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" @@ -31,9 +33,11 @@ Signed-off-by: Jeff Mahoney # firewire KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" ---- a/src/udev/scsi_id/scsi_id.c -+++ b/src/udev/scsi_id/scsi_id.c -@@ -44,6 +44,7 @@ static const struct option options[] = { +Index: systemd/src/udev/scsi_id/scsi_id.c +=================================================================== +--- systemd.orig/src/udev/scsi_id/scsi_id.c ++++ systemd/src/udev/scsi_id/scsi_id.c +@@ -43,6 +43,7 @@ static const struct option options[] = { { "replace-whitespace", no_argument, NULL, 'u' }, { "sg-version", required_argument, NULL, 's' }, { "verbose", no_argument, NULL, 'v' }, @@ -41,24 +45,24 @@ Signed-off-by: Jeff Mahoney { "version", no_argument, NULL, 'V' }, /* don't advertise -V */ { "export", no_argument, NULL, 'x' }, { "help", no_argument, NULL, 'h' }, -@@ -56,6 +57,7 @@ static char config_file[MAX_PATH_LEN] = +@@ -54,6 +55,7 @@ static bool dev_specified = false; + static char config_file[MAX_PATH_LEN] = "/etc/scsi_id.config"; static enum page_code default_page_code = PAGE_UNSPECIFIED; static int sg_version = 4; - static int debug = 0; +static bool compat_truncated = false; static bool reformat_serial = false; static bool export = false; static char vendor_str[64]; -@@ -323,6 +325,7 @@ static void help(void) { - " -g,--whitelisted threat device as whitelisted\n" - " -u,--replace-whitespace replace all whitespace by underscores\n" - " -v,--verbose verbose logging\n" +@@ -316,6 +318,7 @@ static void help(void) { + " -g --whitelisted Treat device as whitelisted\n" + " -u --replace-whitespace Replace all whitespace by underscores\n" + " -v --verbose Verbose logging\n" + " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n" - " --version print version\n" - " -x,--export print values as environment keys\n" - " -h,--help print this help text\n\n"); -@@ -393,6 +396,10 @@ static int set_options(struct udev *udev - debug++; + " -x --export Print values as environment keys\n" + , program_invocation_short_name); + +@@ -387,6 +390,10 @@ static int set_options(struct udev *udev + log_open(); break; + case '9': @@ -68,7 +72,7 @@ Signed-off-by: Jeff Mahoney case 'V': printf("%s\n", VERSION); exit(0); -@@ -535,6 +542,9 @@ static int scsi_id(struct udev *udev, ch +@@ -528,6 +535,9 @@ static int scsi_id(struct udev *udev, ch util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); util_replace_chars(serial_str, NULL); printf("ID_SERIAL=%s\n", serial_str); @@ -78,7 +82,7 @@ Signed-off-by: Jeff Mahoney util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str)); util_replace_chars(serial_str, NULL); printf("ID_SERIAL_SHORT=%s\n", serial_str); -@@ -565,7 +575,10 @@ static int scsi_id(struct udev *udev, ch +@@ -558,7 +568,10 @@ static int scsi_id(struct udev *udev, ch if (reformat_serial) { char serial_str[MAX_SERIAL_LEN]; @@ -90,8 +94,10 @@ Signed-off-by: Jeff Mahoney util_replace_chars(serial_str, NULL); printf("%s\n", serial_str); goto out; ---- a/src/udev/scsi_id/scsi_id.h -+++ b/src/udev/scsi_id/scsi_id.h +Index: systemd/src/udev/scsi_id/scsi_id.h +=================================================================== +--- systemd.orig/src/udev/scsi_id/scsi_id.h ++++ systemd/src/udev/scsi_id/scsi_id.h @@ -43,6 +43,7 @@ struct scsi_id_device { char kernel[64]; char serial[MAX_SERIAL_LEN]; @@ -100,9 +106,11 @@ Signed-off-by: Jeff Mahoney int use_sg; /* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */ ---- a/src/udev/scsi_id/scsi_serial.c -+++ b/src/udev/scsi_id/scsi_serial.c -@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a +Index: systemd/src/udev/scsi_id/scsi_serial.c +=================================================================== +--- systemd.orig/src/udev/scsi_id/scsi_serial.c ++++ systemd/src/udev/scsi_id/scsi_serial.c +@@ -96,7 +96,8 @@ static const char hex_str[]="0123456789a static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -112,7 +120,7 @@ Signed-off-by: Jeff Mahoney static int sg_err_category_new(struct udev *udev, int scsi_status, int msg_status, int -@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct +@@ -619,7 +620,7 @@ static int do_scsi_page83_inquiry(struct unsigned char page_83[SCSI_INQ_BUFF_LEN]; /* also pick up the page 80 serial number */ @@ -121,7 +129,7 @@ Signed-off-by: Jeff Mahoney memzero(page_83, SCSI_INQ_BUFF_LEN); retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83, -@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir +@@ -764,7 +765,8 @@ static int do_scsi_page83_prespc3_inquir /* Get unit serial number VPD page */ static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -131,7 +139,7 @@ Signed-off-by: Jeff Mahoney { int retval; int ser_ind; -@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct +@@ -798,9 +800,14 @@ static int do_scsi_page80_inquiry(struct ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]); if (ser_ind < 0) return 1; @@ -147,7 +155,7 @@ Signed-off-by: Jeff Mahoney } if (serial_short != NULL) { memcpy(serial_short, &buf[4], len); -@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev, +@@ -876,7 +883,7 @@ int scsi_get_serial(struct udev *udev, return 1; if (page_code == PAGE_80) { @@ -156,7 +164,7 @@ Signed-off-by: Jeff Mahoney retval = 1; goto completed; } else { -@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev, +@@ -950,7 +957,7 @@ int scsi_get_serial(struct udev *udev, for (ind = 4; ind <= page0[3] + 3; ind++) if (page0[ind] == PAGE_80) if (!do_scsi_page80_inquiry(udev, dev_scsi, fd, diff --git a/1067-udev-always-resolve-correctly-database-names-on-chan.patch b/1067-udev-always-resolve-correctly-database-names-on-chan.patch deleted file mode 100644 index 9fdc9c68..00000000 --- a/1067-udev-always-resolve-correctly-database-names-on-chan.patch +++ /dev/null @@ -1,53 +0,0 @@ -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 deleted file mode 100644 index e0f7039c..00000000 --- a/1068-udev-net_setup_link-export-the-.link-filename-applie.patch +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index 7f7d24aa..00000000 --- a/1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index f389aa8c..00000000 --- a/1070-rules-net-setup-link-remove-stray-linebreak.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index f821d890..00000000 --- a/1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch +++ /dev/null @@ -1,54 +0,0 @@ -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 deleted file mode 100644 index 2a5cebd2..00000000 --- a/1072-udev-netif_rename-don-t-log-to-kmsg.patch +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index 27aaa6e3..00000000 --- a/1073-udev-drop-print_kmsg.patch +++ /dev/null @@ -1,75 +0,0 @@ -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 deleted file mode 100644 index a617451f..00000000 --- a/1074-udev-fix-copy-paste-error-in-log-message.patch +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 08f6daeb..00000000 --- a/1075-udev-timeout-increase-timeout.patch +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index 4345f929..00000000 --- a/1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +++ /dev/null @@ -1,350 +0,0 @@ -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 deleted file mode 100644 index 57b2d699..00000000 --- a/1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +++ /dev/null @@ -1,350 +0,0 @@ -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 deleted file mode 100644 index 42e0af98..00000000 --- a/1078-udev-remove-userspace-firmware-loading-support.patch +++ /dev/null @@ -1,349 +0,0 @@ -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 deleted file mode 100644 index 37a5e752..00000000 --- a/1079-udev-remove-userspace-firmware-loading-support.patch +++ /dev/null @@ -1,349 +0,0 @@ -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/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch b/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch deleted file mode 100644 index a623b566..00000000 --- a/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +++ /dev/null @@ -1,73 +0,0 @@ -Based on 6f5cf8a8b1de763383f7382821147e538b7dbd6d Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:02:03 +0200 -Subject: [PATCH] udevd: parse_argv - warn if argumens are invalid - -Found by Coverity. Fixes CID #1238780. ---- - src/udev/udevd.c | 34 ++++++++++++++++++++++++++-------- - 1 file changed, 26 insertions(+), 8 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-19 10:36:25.602735652 +0000 -@@ -1002,11 +1002,20 @@ static void kernel_cmdline_options(struc - log_set_max_level(prio); - udev_set_log_priority(udev, prio); - } else if (startswith(opt, "udev.children-max=")) { -- children_max = strtoul(opt + 18, NULL, 0); -+ r = safe_atoi(opt + 18, &children_max); -+ if (r < 0) -+ log_warning("Invalid udev.children-max ignored: %s", opt + 18); - } else if (startswith(opt, "udev.exec-delay=")) { -- exec_delay = strtoul(opt + 16, NULL, 0); -+ r = safe_atoi(opt + 16, &exec_delay); -+ if (r < 0) -+ log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); - } else if (startswith(opt, "udev.event-timeout=")) { -- event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; -+ r = safe_atou64(opt + 16, &event_timeout_usec); -+ if (r < 0) { -+ log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); -+ break; -+ } -+ event_timeout_usec *= USEC_PER_SEC; - event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; - } - -@@ -1052,7 +1061,7 @@ int main(int argc, char *argv[]) { - label_init("/dev"); - - for (;;) { -- int option; -+ int option, r; - - option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); - if (option == -1) -@@ -1063,14 +1072,23 @@ int main(int argc, char *argv[]) { - daemonize = true; - break; - case 'c': -- children_max = strtoul(optarg, NULL, 0); -+ r = safe_atoi(optarg, &children_max); -+ if (r < 0) -+ log_warning("Invalid --children-max ignored: %s", optarg); - break; - case 'e': -- exec_delay = strtoul(optarg, NULL, 0); -+ r = safe_atoi(optarg, &exec_delay); -+ if (r < 0) -+ log_warning("Invalid --exec-delay ignored: %s", optarg); - break; - case 't': -- event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; -- event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; -+ r = safe_atou64(optarg, &event_timeout_usec); -+ if (r < 0) -+ log_warning("Invalig --event-timeout ignored: %s", optarg); -+ else { -+ event_timeout_usec *= USEC_PER_SEC; -+ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; -+ } - break; - case 'D': - debug = true; diff --git a/1081-udevd-check-return-of-various-functions.patch b/1081-udevd-check-return-of-various-functions.patch deleted file mode 100644 index 819e4499..00000000 --- a/1081-udevd-check-return-of-various-functions.patch +++ /dev/null @@ -1,55 +0,0 @@ -Based on d457ff8319b1e7c522c146f75e272f1226f4720c Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:07:02 +0200 -Subject: [PATCH] udevd: check return of various functions - -One reported by Coverity. Fixes CID #996252. ---- - src/udev/udevd.c | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-19 11:33:21.566236309 +0000 -@@ -1044,7 +1044,7 @@ int main(int argc, char *argv[]) { - int fd_worker = -1; - struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker; - struct udev_ctrl_connection *ctrl_conn = NULL; -- int rc = 1; -+ int rc = 1, r; - - udev = udev_new(); - if (udev == NULL) -@@ -1058,7 +1058,11 @@ int main(int argc, char *argv[]) { - log_set_max_level(udev_get_log_priority(udev)); - - log_debug("version %s", VERSION); -- label_init("/dev"); -+ r = label_init("/dev"); -+ if (r < 0) { -+ log_error("could not initialize labelling: %s", strerror(-r)); -+ goto exit; -+ } - - for (;;) { - int option, r; -@@ -1137,10 +1141,18 @@ int main(int argc, char *argv[]) { - } - - /* set umask before creating any file/directory */ -- chdir("/"); -+ r = chdir("/"); -+ if (r < 0) { -+ log_error("could not change dir to /: %m"); -+ goto exit; -+ } - umask(022); - -- mkdir("/run/udev", 0755); -+ r = mkdir("/run/udev", 0755); -+ if (r < 0) { -+ log_error("could not create /run/udev: %m"); -+ goto exit; -+ } - - dev_setup(NULL); - diff --git a/1082-udevadm-hwdb-check-return-value-of-fseeko.patch b/1082-udevadm-hwdb-check-return-value-of-fseeko.patch deleted file mode 100644 index 27e6dc45..00000000 --- a/1082-udevadm-hwdb-check-return-value-of-fseeko.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f901aaadd68050bc575c1c15b84f8f31fd4d494d Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:16:54 +0200 -Subject: [PATCH] udevadm: hwdb - check return value of fseeko() - -Fonud by Coverity. Fixes CID #996255. ---- - src/udev/udevadm-hwdb.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git src/udev/udevadm-hwdb.c src/udev/udevadm-hwdb.c -index 65cbf61..64273fb 100644 ---- src/udev/udevadm-hwdb.c -+++ src/udev/udevadm-hwdb.c -@@ -365,7 +365,12 @@ static int trie_store(struct trie *trie, const char *filename) { - fchmod(fileno(t.f), 0444); - - /* write nodes */ -- fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); -+ err = fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); -+ if (err < 0) { -+ fclose(t.f); -+ unlink_noerrno(filename_tmp); -+ return -errno; -+ } - root_off = trie_store_nodes(&t, trie->root); - h.nodes_root_off = htole64(root_off); - pos = ftello(t.f); -@@ -378,7 +383,12 @@ static int trie_store(struct trie *trie, const char *filename) { - /* write header */ - size = ftello(t.f); - h.file_size = htole64(size); -- fseeko(t.f, 0, SEEK_SET); -+ err = fseeko(t.f, 0, SEEK_SET); -+ if (err < 0) { -+ fclose(t.f); -+ unlink_noerrno(filename_tmp); -+ return -errno; -+ } - fwrite(&h, sizeof(struct trie_header_f), 1, t.f); - err = ferror(t.f); - if (err) --- -1.7.9.2 - diff --git a/1083-udev-node-warn-if-chmod-chown-fails.patch b/1083-udev-node-warn-if-chmod-chown-fails.patch deleted file mode 100644 index 0b78f626..00000000 --- a/1083-udev-node-warn-if-chmod-chown-fails.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 543afdc63c02a5af3cf6bd2a264162f23474346a Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:22:09 +0200 -Subject: [PATCH] udev: node - warn if chmod/chown fails - -No functional change, just log the warning. - -Fonud by Coverity. Fixes CID #1237544. ---- - src/udev/udev-node.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git src/udev/udev-node.c src/udev/udev-node.c -index c164603..8ef7889 100644 ---- src/udev/udev-node.c -+++ src/udev/udev-node.c -@@ -281,8 +281,12 @@ static int node_permissions_apply(struct udev_device *dev, bool apply, - - if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) { - log_debug("set permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); -- chmod(devnode, mode); -- chown(devnode, uid, gid); -+ err = chmod(devnode, mode); -+ if (err < 0) -+ log_warning("setting mode of %s to %#o failed: %m", devnode, mode); -+ err = chown(devnode, uid, gid); -+ if (err < 0) -+ log_warning("setting owner of %s to uid=%u, gid=%u failed: %m", devnode, uid, gid); - } else { - log_debug("preserve permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); - } --- -1.7.9.2 - diff --git a/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch b/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch deleted file mode 100644 index 1e8f4fcf..00000000 --- a/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +++ /dev/null @@ -1,45 +0,0 @@ -Based on 4bbdff757ed4e718a3348b93439a03055cc5e3bc Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:26:11 +0200 -Subject: [PATCH] udev: ctrl - log if setting SO_PASSCRED fails - -No functional change. - -Found by Coverity. Fixes CID #1237533. ---- - src/udev/udev-ctrl.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- src/udev/udev-ctrl.c -+++ src/udev/udev-ctrl.c 2014-09-19 10:45:55.494236229 +0000 -@@ -74,6 +74,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd( - { - struct udev_ctrl *uctrl; - const int on = 1; -+ int r; - - uctrl = new0(struct udev_ctrl, 1); - if (uctrl == NULL) -@@ -92,7 +93,9 @@ struct udev_ctrl *udev_ctrl_new_from_fd( - uctrl->bound = true; - uctrl->sock = fd; - } -- setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ r = setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ if (r < 0) -+ log_warning("could not set SO_PASSCRED: %m"); - - uctrl->saddr.sun_family = AF_LOCAL; - strscpy(uctrl->saddr.sun_path, sizeof(uctrl->saddr.sun_path), "/run/udev/control"); -@@ -209,7 +212,10 @@ struct udev_ctrl_connection *udev_ctrl_g - } - - /* enable receiving of the sender credentials in the messages */ -- setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ if (r < 0) -+ log_warning("colud not set SO_PASSCRED: %m"); -+ - udev_ctrl_ref(uctrl); - return conn; - err: diff --git a/1085-udev-fix-typos.patch b/1085-udev-fix-typos.patch deleted file mode 100644 index f6476200..00000000 --- a/1085-udev-fix-typos.patch +++ /dev/null @@ -1,33 +0,0 @@ -Based on 65fea570f03df51dadc06a3e0d261a71fe62aa01 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 20:25:33 +0200 -Subject: [PATCH] udev: fix typos - -Spotted by Andreas Henriksson. ---- - src/udev/udev-ctrl.c | 2 +- - src/udev/udevd.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- src/udev/udev-ctrl.c -+++ src/udev/udev-ctrl.c 2014-09-19 00:00:00.000000000 +0000 -@@ -214,7 +214,7 @@ struct udev_ctrl_connection *udev_ctrl_g - /* enable receiving of the sender credentials in the messages */ - r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); - if (r < 0) -- log_warning("colud not set SO_PASSCRED: %m"); -+ log_warning("could not set SO_PASSCRED: %m"); - - udev_ctrl_ref(uctrl); - return conn; ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-19 10:47:36.306235720 +0000 -@@ -1088,7 +1088,7 @@ int main(int argc, char *argv[]) { - case 't': - r = safe_atou64(optarg, &event_timeout_usec); - if (r < 0) -- log_warning("Invalig --event-timeout ignored: %s", optarg); -+ log_warning("Invalid --event-timeout ignored: %s", optarg); - else { - event_timeout_usec *= USEC_PER_SEC; - event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; diff --git a/1086-udevd-don-t-fail-if-run-udev-exists.patch b/1086-udevd-don-t-fail-if-run-udev-exists.patch deleted file mode 100644 index 7f574d6a..00000000 --- a/1086-udevd-don-t-fail-if-run-udev-exists.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 25773e7fc59b4ce53d67da4e18bfe4d13ab0b14b Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 21:57:49 +0200 -Subject: [PATCH] udevd: don't fail if /run/udev exists - ---- - src/udev/udevd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index 37db81c..29ccb51 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -1155,7 +1155,7 @@ int main(int argc, char *argv[]) { - umask(022); - - r = mkdir("/run/udev", 0755); -- if (r < 0) { -+ if (r < 0 && errno != EEXIST) { - log_error("could not create /run/udev: %m"); - goto exit; - } --- -1.7.9.2 - diff --git a/1087-infinit-timeout-for-kmod-loaded-modules.patch b/1087-infinit-timeout-for-kmod-loaded-modules.patch deleted file mode 100644 index 4208c21f..00000000 --- a/1087-infinit-timeout-for-kmod-loaded-modules.patch +++ /dev/null @@ -1,135 +0,0 @@ ---- - src/udev/udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - src/udev/udev.h | 1 + - src/udev/udevd.c | 23 +++++++++++++++++++++-- - 3 files changed, 64 insertions(+), 2 deletions(-) - ---- src/udev/udev-event.c -+++ src/udev/udev-event.c 2014-09-24 14:32:53.115639820 +0000 -@@ -959,6 +959,46 @@ void udev_event_execute_rules(struct ude - } - } - -+#ifdef HAVE_KMOD -+static inline void udev_check_and_set_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { -+ char filename[UTIL_PATH_SIZE]; -+ switch (builtin_cmd) { -+ case UDEV_BUILTIN_KMOD: -+ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); -+ touch(filename); -+ default: -+ break; -+ } -+} -+ -+static inline void udev_check_and_unset_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { -+ char filename[UTIL_PATH_SIZE]; -+ switch (builtin_cmd) { -+ case UDEV_BUILTIN_KMOD: -+ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); -+ unlink(filename); -+ default: -+ break; -+ } -+} -+ -+bool udev_check_for_kmod(pid_t pid) { -+ char filename[UTIL_PATH_SIZE]; -+ struct stat st; -+ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)pid); -+ if (stat(filename, &st) == 0) { -+ return true; -+ } -+ return false; -+} -+#else -+# define udev_set_kmod (a,b) -+# define udev_unset_kmod(a,b) -+bool udev_check_for_kmod(pid_t pid) { -+ return false; -+} -+#endif -+ - 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; - -@@ -970,7 +1010,9 @@ void udev_event_execute_run(struct udev_ - char command[UTIL_PATH_SIZE]; - - udev_event_apply_format(event, cmd, command, sizeof(command)); -+ udev_check_and_set_kmod(builtin_cmd, event); - udev_builtin_run(event->dev, builtin_cmd, command, false); -+ udev_check_and_unset_kmod(builtin_cmd, event); - } else { - char program[UTIL_PATH_SIZE]; - char **envp; ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-24 15:02:30.895592379 +0000 -@@ -76,6 +76,7 @@ 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 bool event_killkmod = false; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -1017,6 +1018,12 @@ static void kernel_cmdline_options(struc - } - event_timeout_usec *= USEC_PER_SEC; - event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; -+ } else if (startswith(opt, "udev.killkmod=")) { -+ r = parse_boolean(opt + 14); -+ if (r < 0) -+ log_warning("Invalid udev.killkmod Ignoring: %s", opt + 14); -+ else -+ event_killkmod = r; - } - - free(s); -@@ -1065,7 +1072,7 @@ int main(int argc, char *argv[]) { - } - - for (;;) { -- int option, r; -+ int option; - - option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); - if (option == -1) -@@ -1356,6 +1363,12 @@ int main(int argc, char *argv[]) { - udev_list_node_init(&event_list); - udev_list_node_init(&worker_list); - -+ r = mkdir_p("/run/udev/kmod", 0755); -+ if (r < 0 && errno != EEXIST) { -+ log_error("could not create /run/udev/kmod: %m"); -+ goto exit; -+ } -+ - for (;;) { - static usec_t last_usec; - struct epoll_event ev[8]; -@@ -1440,7 +1453,13 @@ int main(int argc, char *argv[]) { - - if (worker->state != WORKER_RUNNING) - continue; -- -+#ifdef HAVE_KMOD -+ if (udev_check_for_kmod(worker->pid)) { -+ log_debug("worker [%u] %s is using kmod", worker->pid, worker->event->devpath); -+ if (!event_killkmod) -+ continue; -+ } -+#endif - ts = now(CLOCK_MONOTONIC); - - if ((ts - worker->event_start_usec) > event_timeout_warn_usec) { ---- src/udev/udev.h -+++ src/udev/udev.h 2014-09-24 14:33:33.824008084 +0000 -@@ -88,6 +88,7 @@ int udev_event_spawn(struct udev_event * - char *result, size_t ressize); - 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); -+bool udev_check_for_kmod(pid_t pid); - 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[]); - diff --git a/1089-fix-cgroup-device-controller.patch b/1089-fix-cgroup-device-controller.patch deleted file mode 100644 index cd68533f..00000000 --- a/1089-fix-cgroup-device-controller.patch +++ /dev/null @@ -1,74 +0,0 @@ -From eb0f0863f5af48865fb4569e2076d5f9e2313995 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 10 Mar 2014 21:36:01 +0100 -Subject: nspawn: don't try mknod() of /dev/console with the correct - major/minor - -We overmount /dev/console with an external pty anyway, hence there's no -point in using the real major/minor when we create the node to -overmount. Instead, use the one of /dev/null now. - -This fixes a race against the cgroup device controller setup we are -using. In case /dev/console was create before the cgroup policy was -applied all was good, but if created in the opposite order the mknod() -would fail, since creating /dev/console is not allowed by it. Creating -/dev/null instances is however permitted, and hence use it. - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index d8d0dae..bef866a 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -879,23 +879,19 @@ static int setup_ptmx(const char *dest) { - } - - static int setup_dev_console(const char *dest, const char *console) { -+ _cleanup_umask_ mode_t u; -+ const char *to; - struct stat st; -- _cleanup_free_ char *to = NULL; - int r; -- _cleanup_umask_ mode_t u; - - assert(dest); - assert(console); - - u = umask(0000); - -- if (stat(console, &st) < 0) { -- log_error("Failed to stat %s: %m", console); -+ if (stat("/dev/null", &st) < 0) { -+ log_error("Failed to stat /dev/null: %m"); - return -errno; -- -- } else if (!S_ISCHR(st.st_mode)) { -- log_error("/dev/console is not a char device"); -- return -EIO; - } - - r = chmod_and_chown(console, 0600, 0, 0); -@@ -904,16 +900,15 @@ static int setup_dev_console(const char *dest, const char *console) { - return r; - } - -- if (asprintf(&to, "%s/dev/console", dest) < 0) -- return log_oom(); -- - /* We need to bind mount the right tty to /dev/console since - * ptys can only exist on pts file systems. To have something -- * to bind mount things on we create a device node first, that -- * has the right major/minor (note that the major minor -- * doesn't actually matter here, since we mount it over -- * anyway). */ -+ * to bind mount things on we create a device node first, and -+ * use /dev/null for that since we the cgroups device policy -+ * allows us to create that freely, while we cannot create -+ * /dev/console. (Note that the major minor doesn't actually -+ * matter here, since we mount it over anyway). */ - -+ to = strappenda(dest, "/dev/console"); - if (mknod(to, (st.st_mode & ~07777) | 0600, st.st_rdev) < 0) { - log_error("mknod() for /dev/console failed: %m"); - return -errno; --- -cgit v0.10.2 - diff --git a/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch b/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch deleted file mode 100644 index 3a3ad550..00000000 --- a/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +++ /dev/null @@ -1,58 +0,0 @@ -Based on cc821d02a37c8c76aaf15bae2d33fee1bdc4b2e0 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 28 Oct 2014 16:50:24 +0100 -Subject: [PATCH] udev: path_id - set supported_parent for well-known SCSI - setups - ---- - src/udev/udev-builtin-path_id.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c 2014-11-03 14:12:48.129956655 +0000 -@@ -379,7 +379,7 @@ out: - return hostdev; - } - --static struct udev_device *handle_scsi(struct udev_device *parent, char **path) -+static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) - { - const char *devtype; - const char *name; -@@ -394,6 +394,7 @@ static struct udev_device *handle_scsi(s - if (id != NULL) { - parent = skip_subsystem(parent, "scsi"); - path_prepend(path, "ieee1394-0x%s", id); -+ *supported_parent = true; - goto out; - } - -@@ -402,16 +403,19 @@ static struct udev_device *handle_scsi(s - - if (strstr(name, "/rport-") != NULL) { - parent = handle_scsi_fibre_channel(parent, path); -+ *supported_parent = true; - goto out; - } - - if (strstr(name, "/end_device-") != NULL) { - parent = handle_scsi_sas(parent, path); -+ *supported_parent = true; - goto out; - } - - if (strstr(name, "/session") != NULL) { - parent = handle_scsi_iscsi(parent, path); -+ *supported_parent = true; - goto out; - } - -@@ -545,7 +549,7 @@ static int builtin_path_id(struct udev_d - } else if (streq(subsys, "scsi_tape")) { - handle_scsi_tape(parent, &path); - } else if (streq(subsys, "scsi")) { -- parent = handle_scsi(parent, &path); -+ parent = handle_scsi(parent, &path, &supported_parent); - supported_transport = true; - } else if (streq(subsys, "cciss")) { - parent = handle_cciss(parent, &path); diff --git a/1091-udev-path_id-update-comments.patch b/1091-udev-path_id-update-comments.patch deleted file mode 100644 index a695f0db..00000000 --- a/1091-udev-path_id-update-comments.patch +++ /dev/null @@ -1,42 +0,0 @@ -From a42cdff19f2d34f12ceca0f40707421a8aaa2c2f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 30 Oct 2014 01:18:34 +0100 -Subject: [PATCH] udev: path_id - update comments - ---- - src/udev/udev-builtin-path_id.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git src/udev/udev-builtin-path_id.c src/udev/udev-builtin-path_id.c -index 0d247f6..df996cb 100644 ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c -@@ -548,9 +548,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool - } - - /* -- * Do return devices with have an unknown type of parent device, they -- * might produce conflicting IDs below multiple independent parent -- * devices. -+ * Do not return devices with an unknown parent device type. They -+ * might produce conflicting IDs if the parent does not provide a -+ * unique and predictable name. - */ - if (!supported_parent) { - free(path); -@@ -558,9 +558,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool - } - - /* -- * Do not return a have-only a single-parent block devices, some -- * have entire hidden buses behind it, and not create predictable -- * IDs that way. -+ * Do not return block devices without a well-known transport. Some -+ * devices do not expose their buses and do not provide a unique -+ * and predictable name that way. - */ - if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { - free(path); --- -1.7.9.2 - diff --git a/1092-libudev-do-not-accept-invalid-log-levels.patch b/1092-libudev-do-not-accept-invalid-log-levels.patch deleted file mode 100644 index 10b78859..00000000 --- a/1092-libudev-do-not-accept-invalid-log-levels.patch +++ /dev/null @@ -1,67 +0,0 @@ -Based on ee7122c0ec6aa11f02e9e8d94254b353f12d2c14 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 1 Nov 2014 12:06:41 -0400 -Subject: [PATCH] libudev: do not accept invalid log levels - -Invalid log levels lead to a assert failure later on. - -https://bugs.freedesktop.org/show_bug.cgi?id=85657 ---- - src/libudev/libudev-util.c | 10 +++++++--- - src/libudev/libudev.c | 19 ++++++++++++++++--- - 2 files changed, 23 insertions(+), 6 deletions(-) - ---- src/libudev/libudev-util.c -+++ src/libudev/libudev-util.c 2014-11-10 11:33:26.269519209 +0000 -@@ -255,9 +255,13 @@ int util_log_priority(const char *priori - char *endptr; - int prio; - -- prio = strtol(priority, &endptr, 10); -- if (endptr[0] == '\0' || isspace(endptr[0])) -- return prio; -+ prio = strtoul(priority, &endptr, 10); -+ if (endptr[0] == '\0' || isspace(endptr[0])) { -+ if (prio >= 0 && prio <= 7) -+ return prio; -+ else -+ return -ERANGE; -+ } - if (startswith(priority, "err")) - return LOG_ERR; - if (startswith(priority, "info")) ---- src/libudev/libudev.c -+++ src/libudev/libudev.c -@@ -193,7 +193,13 @@ _public_ struct udev *udev_new(void) - } - - if (streq(key, "udev_log")) { -- udev_set_log_priority(udev, util_log_priority(val)); -+ int prio; -+ -+ prio = util_log_priority(val); -+ if (prio < 0) -+ udev_err(udev, "/etc/udev/udev.conf:%u: invalid logging level '%s', ignoring.\n", line_nr, val); -+ else -+ udev_set_log_priority(udev, prio); - continue; - } - } -@@ -201,8 +207,15 @@ _public_ struct udev *udev_new(void) - - /* environment overrides config */ - env = secure_getenv("UDEV_LOG"); -- if (env != NULL) -- udev_set_log_priority(udev, util_log_priority(env)); -+ if (env != NULL) { -+ int prio; -+ -+ prio = util_log_priority(env); -+ if (prio < 0) -+ udev_err(udev, "$UDEV_LOG specifies invalid logging level '%s', ignoring.\n", env); -+ else -+ udev_set_log_priority(udev, prio); -+ } - - return udev; - } diff --git a/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch b/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch deleted file mode 100644 index 5f3bb576..00000000 --- a/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on f671774f52838d35d78e62ddcb781b5b65b3373f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 4 Nov 2014 23:45:15 +0000 -Subject: [PATCH] udev: Fix parsing of udev.event-timeout kernel parameter. - ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-11-10 12:28:20.385559165 +0000 -@@ -1011,9 +1011,9 @@ static void kernel_cmdline_options(struc - if (r < 0) - log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); - } else if (startswith(opt, "udev.event-timeout=")) { -- r = safe_atou64(opt + 16, &event_timeout_usec); -+ r = safe_atou64(opt + 19, &event_timeout_usec); - if (r < 0) { -- log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); -+ log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); - break; - } - event_timeout_usec *= USEC_PER_SEC; diff --git a/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch b/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch deleted file mode 100644 index 3cd42e5c..00000000 --- a/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +++ /dev/null @@ -1,58 +0,0 @@ -Based on cfe2061add5479710f6597899d632e64c54e62ef Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Wed, 5 Nov 2014 12:56:49 +0100 -Subject: [PATCH] udev: avoid magic constants in kernel-cmdline parsers - -Lets recognize the fact that startswith() returns a pointer to the tail on -success. Use it instead of hard-coding string-lengths as magic constants. ---- - src/udev/udevd.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-11-10 12:31:15.745519116 +0000 -@@ -984,7 +984,7 @@ static void kernel_cmdline_options(struc - return; - - FOREACH_WORD_QUOTED(w, l, line, state) { -- char *s, *opt; -+ char *s, *opt, *value; - - s = strndup(w, l); - if (!s) -@@ -996,24 +996,24 @@ static void kernel_cmdline_options(struc - else - opt = s; - -- if (startswith(opt, "udev.log-priority=")) { -+ if ((value = startswith(opt, "udev.log-priority="))) { - int prio; - -- prio = util_log_priority(opt + 18); -+ prio = util_log_priority(value); - log_set_max_level(prio); - udev_set_log_priority(udev, prio); -- } else if (startswith(opt, "udev.children-max=")) { -- r = safe_atoi(opt + 18, &children_max); -+ } else if ((value = startswith(opt, "udev.children-max="))) { -+ r = safe_atoi(value, &children_max); - if (r < 0) -- log_warning("Invalid udev.children-max ignored: %s", opt + 18); -- } else if (startswith(opt, "udev.exec-delay=")) { -- r = safe_atoi(opt + 16, &exec_delay); -+ log_warning("Invalid udev.children-max ignored: %s", value); -+ } else if ((value = startswith(opt, "udev.exec-delay="))) { -+ r = safe_atoi(value, &exec_delay); - if (r < 0) -- log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); -- } else if (startswith(opt, "udev.event-timeout=")) { -- r = safe_atou64(opt + 19, &event_timeout_usec); -+ log_warning("Invalid udev.exec-delay ignored: %s", value); -+ } else if ((value = startswith(opt, "udev.event-timeout="))) { -+ r = safe_atou64(value, &event_timeout_usec); - if (r < 0) { -- log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); -+ log_warning("Invalid udev.event-timeout ignored: %s", value); - break; - } - event_timeout_usec *= USEC_PER_SEC; diff --git a/1095-set-ssd-disk-to-use-deadline-scheduler.patch b/1095-set-ssd-disk-to-use-deadline-scheduler.patch index 39c4a74a..d9d128f2 100644 --- a/1095-set-ssd-disk-to-use-deadline-scheduler.patch +++ b/1095-set-ssd-disk-to-use-deadline-scheduler.patch @@ -1,19 +1,24 @@ -Index: systemd-210/Makefile.am +--- + Makefile.am | 1 + + rules/60-ssd-scheduler.rules | 11 +++++++++++ + 2 files changed, 12 insertions(+) + +Index: systemd/Makefile.am =================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2546,6 +2546,7 @@ dist_udevrules_DATA += \ +--- systemd.orig/Makefile.am ++++ systemd/Makefile.am +@@ -3576,6 +3576,7 @@ dist_udevrules_DATA += \ rules/60-persistent-input.rules \ rules/60-persistent-alsa.rules \ rules/60-persistent-storage.rules \ + rules/60-ssd-scheduler.rules \ rules/64-btrfs.rules \ - rules/75-net-description.rules \ - rules/75-tty-description.rules \ -Index: systemd-210/rules/60-ssd-scheduler.rules + rules/70-mouse.rules \ + rules/70-touchpad.rules \ +Index: systemd/rules/60-ssd-scheduler.rules =================================================================== --- /dev/null -+++ systemd-210/rules/60-ssd-scheduler.rules ++++ systemd/rules/60-ssd-scheduler.rules @@ -0,0 +1,11 @@ +# do not edit this file, it will be overwritten on update + diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch index 49c1b2c9..7f09f46e 100644 --- a/1096-new-udev-root-symlink-generator.patch +++ b/1096-new-udev-root-symlink-generator.patch @@ -1,9 +1,16 @@ -Index: systemd-210/Makefile.am +--- + Makefile.am | 19 +++++ + src/udev/rootsymlink_generator/rootsymlink_generator.c | 57 +++++++++++++++++ + units/systemd-udev-root-symlink.service | 10 ++ + units/systemd-udev-root-symlink.service.in | 10 ++ + 4 files changed, 96 insertions(+) + +Index: systemd/Makefile.am =================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2791,6 +2791,25 @@ EXTRA_DIST += \ - test/rule-syntax-check.py +--- systemd.orig/Makefile.am ++++ systemd/Makefile.am +@@ -3862,6 +3862,25 @@ EXTRA_DIST += \ + # ------------------------------------------------------------------------------ +rootsymlink_generator_SOURCES = \ @@ -28,11 +35,11 @@ Index: systemd-210/Makefile.am ata_id_SOURCES = \ src/udev/ata_id/ata_id.c -Index: systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c =================================================================== --- /dev/null -+++ systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c -@@ -0,0 +1,65 @@ ++++ systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c +@@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014-2015 Robert Milasan + * @@ -64,59 +71,36 @@ Index: systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +#define _PATH_ "/run/udev/rules.d" +#define _FILE_ "10-root-symlink.rules" + -+int main() ++int main(void) +{ ++ char filename[BUFFER_SIZE], buf[BUFFER_SIZE]; + struct stat statbuf; ++ int fd; + -+ if (stat(_ROOTDEV_, &statbuf) != 0) ++ if (stat(_ROOTDEV_, &statbuf) < 0) + return 1; -+ -+ if (major(statbuf.st_dev) > 0) { -+ int fd = -1; -+ char filename[BUFFER_SIZE]; -+ -+ if (mkdir(_PATH_, 0755) != 0 && errno != EEXIST) -+ return errno; -+ -+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); -+ -+ if ((fd = open(filename, O_CREAT|O_WRONLY|O_TRUNC, 0644)) == -1) -+ return errno; -+ else { -+ char buf[BUFFER_SIZE]; -+ -+ snprintf(buf, BUFFER_SIZE, "ACTION==\"add|change\", SUBSYSTEM==\"block\", ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", -+ major(statbuf.st_dev), minor(statbuf.st_dev)); -+ -+ if (write(fd, buf, strlen(buf)) == -1) -+ return errno; -+ -+ if (close(fd) == -1) -+ return errno; -+ } -+ } -+ ++ if (major(statbuf.st_dev) <= 0) ++ return 0; ++ if (mkdir(_PATH_, 0755) < 0 && errno != EEXIST) ++ return errno; ++ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); ++ fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644); ++ if (fd < 0) ++ return errno; ++ snprintf(buf, BUFFER_SIZE, ++ "ACTION==\"add|change\", SUBSYSTEM==\"block\", " ++ "ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", ++ major(statbuf.st_dev), minor(statbuf.st_dev)); ++ if (write(fd, buf, strlen(buf)) < 0) ++ return errno; ++ if (close(fd) < 0) ++ return errno; + return 0; +} -Index: systemd-210/units/systemd-udev-root-symlink.service.in +Index: systemd/units/systemd-udev-root-symlink.service =================================================================== --- /dev/null -+++ systemd-210/units/systemd-udev-root-symlink.service.in -@@ -0,0 +1,10 @@ -+[Unit] -+Description=Rule generator for /dev/root symlink -+Before=systemd-udevd.service -+DefaultDependencies=no -+ConditionPathIsReadWrite=/run/udev -+ -+[Service] -+Type=oneshot -+RemainAfterExit=yes -+ExecStart=@udevlibexec@/rootsymlink-generator -Index: systemd-210/units/systemd-udev-root-symlink.service -=================================================================== ---- /dev/null -+++ systemd-210/units/systemd-udev-root-symlink.service ++++ systemd/units/systemd-udev-root-symlink.service @@ -0,0 +1,10 @@ +[Unit] +Description=Rule generator for /dev/root symlink @@ -128,3 +112,18 @@ Index: systemd-210/units/systemd-udev-root-symlink.service +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/udev/rootsymlink-generator +Index: systemd/units/systemd-udev-root-symlink.service.in +=================================================================== +--- /dev/null ++++ systemd/units/systemd-udev-root-symlink.service.in +@@ -0,0 +1,10 @@ ++[Unit] ++Description=Rule generator for /dev/root symlink ++Before=systemd-udevd.service ++DefaultDependencies=no ++ConditionPathIsReadWrite=/run/udev ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=@udevlibexec@/rootsymlink-generator diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch index 50bbc56f..486be9b2 100644 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -1,22 +1,26 @@ -Index: systemd-210/src/udev/udevd.c +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-218/src/udev/udevd.c =================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -454,7 +454,7 @@ static void event_run(struct event *even +--- systemd-218.orig/src/udev/udevd.c ++++ systemd-218/src/udev/udevd.c +@@ -446,7 +446,7 @@ static void event_run(struct event *even - if (children >= children_max) { - if (children_max > 1) + if (children >= arg_children_max) { + if (arg_children_max > 1) - log_debug("maximum number (%i) of children reached", children); + log_error("maximum number (%i) of children reached", children); return; } -@@ -1277,7 +1277,7 @@ int main(int argc, char *argv[]) { - children_max = 8; +@@ -1265,7 +1265,7 @@ int main(int argc, char *argv[]) { + arg_children_max = 8; if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { -- children_max += CPU_COUNT(&cpu_set) * 2; -+ children_max += CPU_COUNT(&cpu_set) * 64; +- arg_children_max += CPU_COUNT(&cpu_set) * 2; ++ arg_children_max += CPU_COUNT(&cpu_set) * 64; } } - log_debug("set children_max to %u", children_max); + log_debug("set children_max to %u", arg_children_max); diff --git a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch deleted file mode 100644 index 6772f650..00000000 --- a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch +++ /dev/null @@ -1,154 +0,0 @@ -Based on 04b67d49254d956d31bcfe80340fb9df7ed332d3 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Tue, 15 Jul 2014 17:57:43 +0200 -Subject: [PATCH] udev: link_setup - respect kernel name assign policy - -Newer kernels export meta-information about the origin of an ifname. Respect this -from the ifname rename logic. We do not rename any interfaces that was originally -named by userspace, nor once which have already been renamed from userspace. - -Moreover, we optionally do not (the default) rename interfaces which the kernel -claims to have named in a predictable way. ---- - man/udev.xml | 13 ++++++++++- - network/99-default.link | 2 - - src/shared/missing.h | 21 +++++++++++++++++ - src/udev/net/link-config.c | 53 +++++++++++++++++++++++++++++++++++++-------- - src/udev/net/link-config.h | 1 - 5 files changed, 79 insertions(+), 11 deletions(-) - -Index: man/udev.xml -=================================================================== ---- man/udev.xml.orig -+++ man/udev.xml -@@ -914,10 +914,12 @@ - successful one is used. The name is not set directly, but - is exported to udev as the property ID_NET_NAME, - which is, by default, used by a udev rule to set -- NAME. The available policies are: -+ NAME. If the name has already -+ been set by userspace, no renaming is performed. -+ The available policies are: - - -- -+ - database - - The name is set based on entries in the Hardware -Index: src/shared/missing.h -=================================================================== ---- src/shared/missing.h.orig -+++ src/shared/missing.h -@@ -362,3 +362,24 @@ static inline int setns(int fd, int nsty - return syscall(__NR_setns, fd, nstype); - } - #endif -+ -+#ifndef NET_ADDR_RANDOM -+# define NET_ADDR_RANDOM 1 -+#endif -+ -+#ifndef NET_NAME_ENUM -+# define NET_NAME_ENUM 1 -+#endif -+ -+#ifndef NET_NAME_PREDICTABLE -+# define NET_NAME_PREDICTABLE 2 -+#endif -+ -+#ifndef NET_NAME_USER -+# define NET_NAME_USER 3 -+#endif -+ -+#ifndef NET_NAME_RENAMED -+# define NET_NAME_RENAMED 4 -+#endif -+ -Index: src/udev/net/link-config.c -=================================================================== ---- src/udev/net/link-config.c.orig -+++ src/udev/net/link-config.c -@@ -20,10 +20,11 @@ - ***/ - - #include --#include -+#include - - #include "sd-id128.h" - -+#include "missing.h" - #include "link-config.h" - #include "ethtool-util.h" - -@@ -297,23 +298,30 @@ static bool mac_is_random(struct udev_de - return false; - - /* check for NET_ADDR_RANDOM */ -- return type == 1; -+ return type == NET_ADDR_RANDOM; - } - --static bool mac_is_permanent(struct udev_device *device) { -+static bool should_rename(struct udev_device *device) { - const char *s; - unsigned type; - int r; - -- s = udev_device_get_sysattr_value(device, "addr_assign_type"); -+ s = udev_device_get_sysattr_value(device, "name_assign_type"); - if (!s) -- return true; /* if we don't know, assume it is permanent */ -+ return true; /* if we don't know, assume we should rename */ - r = safe_atou(s, &type); - if (r < 0) - return true; - -- /* check for NET_ADDR_PERM */ -- return type == 0; -+ switch (type) { -+ case NET_NAME_USER: -+ case NET_NAME_RENAMED: -+ return false; /* these were already named by userspace, do not touch again */ -+ case NET_NAME_PREDICTABLE: -+ case NET_NAME_ENUM: -+ default: -+ return true; /* the name is known to be bad, or of an unknown type */ -+ } - } - - #define HASH_KEY SD_ID128_MAKE(d3,1e,48,fa,90,fe,4b,4c,9d,af,d5,d7,a1,b1,2e,8a) -@@ -429,16 +437,16 @@ int link_config_apply(link_config_ctx *c - } - } - -- if (new_name) -- *name = new_name; /* a name was set by a policy */ -- else if (config->name) -- *name = config->name; /* a name was set manually in the config */ -- else -- *name = NULL; -+ if (should_rename(device)) { -+ if (!new_name) -+ /* if not set by policy, fall back manually set name */ -+ new_name = config->name; -+ } else -+ new_name = NULL; - - switch (config->mac_policy) { - case MACPOLICY_PERSISTENT: -- if (!mac_is_permanent(device)) { -+ if (mac_is_random(device)) { - r = get_mac(device, false, &generated_mac); - if (r == -ENOENT) - break; -@@ -467,6 +475,8 @@ int link_config_apply(link_config_ctx *c - return r; - } - -+ *name = new_name; -+ - return 0; - } - diff --git a/513-nspawn-veth.patch b/513-nspawn-veth.patch deleted file mode 100644 index b24ecf6c..00000000 --- a/513-nspawn-veth.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c ---- systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c 2014-11-19 13:10:23.998310815 +0100 -+++ systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c 2014-12-08 12:03:18.059734333 +0100 -@@ -722,6 +722,7 @@ - - int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type) { - uint16_t rtm_type; -+ int r; - - assert_return(m, -EINVAL); - assert_return(!m->sealed, -EPERM); -@@ -729,15 +730,21 @@ - sd_rtnl_message_get_type(m, &rtm_type); - - if (rtnl_message_type_is_link(rtm_type)) { -- - if ((type == IFLA_LINKINFO && m->n_containers == 0) || - (type == IFLA_INFO_DATA && m->n_containers == 1 && -- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) -- return add_rtattr(m, type, NULL, 0); -- else if (type == VETH_INFO_PEER && m->n_containers == 2 && -+ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) { -+ r = add_rtattr(m, type, NULL, 0); -+ if ( r > 0) -+ m->container_offsets[m->n_containers ++] = r; -+ return r; -+ } else if (type == VETH_INFO_PEER && m->n_containers == 2 && - GET_CONTAINER(m, 1)->rta_type == IFLA_INFO_DATA && -- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) -- return add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); -+ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) { -+ r = add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); -+ if ( r > 0) -+ m->container_offsets[m->n_containers ++] = r; -+ return r; -+ } - } - - return -ENOTSUP; diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch index 8e0a00a7..95c19107 100644 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -5,18 +5,21 @@ Subject: Fix /run/lock directories permissions to follow openSUSE policy disable /var/lock/{subsys,lockdev} and change default permissions on /var/lock (bnc#733523). --- - tmpfiles.d/legacy.conf | 7 ++++--- + tmpfiles.d/legacy.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) ---- systemd-206_git201308300826.orig/tmpfiles.d/legacy.conf -+++ systemd-206_git201308300826/tmpfiles.d/legacy.conf -@@ -10,12 +10,13 @@ +Index: systemd-218/tmpfiles.d/legacy.conf +=================================================================== +--- systemd-218.orig/tmpfiles.d/legacy.conf ++++ systemd-218/tmpfiles.d/legacy.conf +@@ -10,13 +10,14 @@ # These files are considered legacy and are unnecessary on legacy-free # systems. -d /run/lock 0755 root root - -+# changed for openSUSE : only /run/lock should be available ++# changed for openSUSE: only /run/lock should be available. +d /run/lock 0775 root lock - + L /var/lock - - - - ../run/lock # /run/lock/subsys is used for serializing SysV service execution, and # hence without use on SysV-less systems. @@ -26,7 +29,7 @@ disable /var/lock/{subsys,lockdev} and change default permissions on # /run/lock/lockdev is used to serialize access to tty devices via # LCK..xxx style lock files, For more information see: -@@ -23,7 +24,7 @@ d /run/lock/subsys 0755 root root - +@@ -24,7 +25,7 @@ d /run/lock/subsys 0755 root root - # On modern systems a BSD file lock is a better choice if # serialization is needed on those devices. diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 0c06b4dc..96de1ed2 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -4,21 +4,23 @@ Subject: Forward suspend / hibernate calls to pm-utils forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) --- - src/sleep/sleep.c | 26 ++++++++++++++++++++++---- - 1 file changed, 22 insertions(+), 4 deletions(-) + src/sleep/sleep.c | 27 ++++++++++++++++++++++----- + 1 file changed, 22 insertions(+), 5 deletions(-) ---- systemd-206.orig/src/sleep/sleep.c -+++ systemd-206/src/sleep/sleep.c +Index: systemd/src/sleep/sleep.c +=================================================================== +--- systemd.orig/src/sleep/sleep.c ++++ systemd/src/sleep/sleep.c @@ -24,6 +24,7 @@ #include #include #include +#include - #include "systemd/sd-id128.h" - #include "systemd/sd-messages.h" -@@ -35,6 +36,8 @@ - #include "sleep-config.h" + #include "sd-id128.h" + #include "sd-messages.h" +@@ -36,6 +37,8 @@ + #include "def.h" static char* arg_verb = NULL; +static bool delegate_to_pmutils = false; @@ -26,36 +28,37 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) static int write_mode(char **modes) { int r = 0; -@@ -50,9 +53,6 @@ static int write_mode(char **modes) { +@@ -53,10 +56,6 @@ static int write_mode(char **modes) { + if (r == 0) r = k; } - +- - if (r < 0) -- log_error("Failed to write mode to /sys/power/disk: %s", -- strerror(-r)); - +- log_error_errno(r, "Failed to write mode to /sys/power/disk: %m"); +- return r; } -@@ -90,6 +90,8 @@ static int execute(char **modes, char ** + +@@ -97,6 +96,8 @@ static int execute(char **modes, char ** + int r; _cleanup_fclose_ FILE *f = NULL; - const char* note = strappenda("SLEEP=", arg_verb); + if (!delegate_to_pmutils) { + /* This file is opened first, so that if we hit an error, * we can abort before modifying any state. */ f = fopen("/sys/power/state", "we"); -@@ -102,6 +104,7 @@ static int execute(char **modes, char ** +@@ -107,6 +108,7 @@ static int execute(char **modes, char ** r = write_mode(modes); if (r < 0) return r; + } - arguments[0] = NULL; - arguments[1] = (char*) "pre"; -@@ -114,8 +117,10 @@ static int execute(char **modes, char ** - "MESSAGE=Suspending system...", - note, + execute_directories(dirs, DEFAULT_TIMEOUT_USEC, arguments); + +@@ -115,8 +117,10 @@ static int execute(char **modes, char ** + LOG_MESSAGE("Suspending system..."), + "SLEEP=%s", arg_verb, NULL); - + if (!delegate_to_pmutils) @@ -65,7 +68,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) if (r < 0) return r; -@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *ar +@@ -156,6 +160,7 @@ static int parse_argv(int argc, char *ar }; int c; @@ -73,7 +76,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) assert(argc >= 0); assert(argv); -@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *ar +@@ -193,6 +198,18 @@ static int parse_argv(int argc, char *ar return -EINVAL; } diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch deleted file mode 100644 index 41d51bfa..00000000 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ /dev/null @@ -1,140 +0,0 @@ -From: Frederic Crozat -Date: Fri, 12 Apr 2013 16:56:26 +0200 -Subject: Revert "service: drop support for SysV scripts for the early boot" - -This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. - -Conflicts: - src/core/service.c ---- - src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 46 insertions(+), 5 deletions(-) - -Index: systemd-208/src/core/service.c -=================================================================== ---- systemd-208.orig/src/core/service.c -+++ systemd-208/src/core/service.c -@@ -51,7 +51,8 @@ - - typedef enum RunlevelType { - RUNLEVEL_UP, -- RUNLEVEL_DOWN -+ RUNLEVEL_DOWN, -+ RUNLEVEL_SYSINIT - } RunlevelType; - - static const struct { -@@ -66,6 +67,16 @@ static const struct { - { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, - { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, - -+#ifdef HAVE_SYSV_COMPAT -+ /* SUSE style boot.d */ -+ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, -+#endif -+ -+#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) -+ /* Debian style rcS.d */ -+ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, -+#endif -+ - /* Standard SysV runlevels for shutdown */ - { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, - { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } -@@ -74,10 +85,12 @@ static const struct { - directories in this order, and we want to make sure that - sysv_start_priority is known when we first load the - unit. And that value we only know from S links. Hence -- UP must be read before DOWN */ -+ UP/SYSINIT must be read before DOWN */ - }; - - #define RUNLEVELS_UP "12345" -+/* #define RUNLEVELS_DOWN "06" */ -+#define RUNLEVELS_BOOT "bBsS" - #endif - - static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { -@@ -340,6 +353,9 @@ static char *sysv_translate_name(const c - if (endswith(name, ".sh")) - /* Drop .sh suffix */ - strcpy(stpcpy(r, name) - 3, ".service"); -+ if (startswith(name, "boot.")) -+ /* Drop SuSE-style boot. prefix */ -+ strcpy(stpcpy(r, name + 5), ".service"); - else - /* Normal init script name */ - strcpy(stpcpy(r, name), ".service"); -@@ -942,6 +958,13 @@ static int service_load_sysv_path(Servic - - if ((r = sysv_exec_commands(s, supports_reload)) < 0) - goto finish; -+ if (s->sysv_runlevels && -+ chars_intersect(RUNLEVELS_BOOT, s->sysv_runlevels) && -+ chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { -+ /* Service has both boot and "up" runlevels -+ configured. Kill the "up" ones. */ -+ delete_chars(s->sysv_runlevels, RUNLEVELS_UP); -+ } - - if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { - /* If there a runlevels configured for this service -@@ -1023,6 +1046,9 @@ static int service_load_sysv_name(Servic - if (endswith(name, ".sh.service")) - return -ENOENT; - -+ if (startswith(name, "boot.")) -+ return -ENOENT; -+ - STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { - char *path; - int r; -@@ -1043,6 +1069,18 @@ static int service_load_sysv_name(Servic - } - free(path); - -+ if (r >= 0 && UNIT(s)->load_state == UNIT_STUB) { -+ /* Try SUSE style boot.* init scripts */ -+ -+ path = strjoin(*p, "/boot.", name, NULL); -+ if (!path) -+ return -ENOMEM; -+ -+ /* Drop .service suffix */ -+ path[strlen(path)-8] = 0; -+ r = service_load_sysv_path(s, path); -+ free(path); -+ } - if (r < 0) - return r; - -@@ -3574,7 +3612,7 @@ static int service_enumerate(Manager *m) - - if (de->d_name[0] == 'S') { - -- if (rcnd_table[i].type == RUNLEVEL_UP) { -+ if (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT) { - SERVICE(service)->sysv_start_priority_from_rcnd = - MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); - -@@ -3591,7 +3629,8 @@ static int service_enumerate(Manager *m) - goto finish; - - } else if (de->d_name[0] == 'K' && -- (rcnd_table[i].type == RUNLEVEL_DOWN)) { -+ (rcnd_table[i].type == RUNLEVEL_DOWN || -+ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { - - r = set_ensure_allocated(&shutdown_services, - trivial_hash_func, trivial_compare_func); -@@ -3631,7 +3670,9 @@ static int service_enumerate(Manager *m) - * runlevels we assume the stop jobs will be implicitly added - * by the core logic. Also, we don't really distinguish here - * between the runlevels 0 and 6 and just add them to the -- * special shutdown target. */ -+ * special shutdown target. On SUSE the boot.d/ runlevel is -+ * also used for shutdown, so we add links for that too to the -+ * shutdown target.*/ - SET_FOREACH(service, shutdown_services, j) { - service = unit_follow_merge(service); - diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch deleted file mode 100644 index 04afafb9..00000000 --- a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Ludwig Nussel -Date: Mon, 26 Nov 2012 09:49:42 +0100 -Subject: avoid assertion if invalid address familily is passed to - gethostbyaddr_r (bnc#791101) - ---- - src/nss-myhostname/nss-myhostname.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c -+++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c -@@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostb - uint32_t local_address_ipv4 = LOCALADDRESS_IPV4; - const char *canonical = NULL, *additional = NULL; - -+ if (af != AF_INET && af != AF_INET6) { -+ *errnop = EAFNOSUPPORT; -+ *h_errnop = NO_DATA; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - if (len != PROTO_ADDRESS_SIZE(af)) { - *errnop = EINVAL; - *h_errnop = NO_RECOVERY; diff --git a/avoid-leaking-socket-descriptors.patch b/avoid-leaking-socket-descriptors.patch deleted file mode 100644 index d65d1196..00000000 --- a/avoid-leaking-socket-descriptors.patch +++ /dev/null @@ -1,339 +0,0 @@ -Based on 249968612f16a71df909d6e73785c18a9ff36a65 -with src/core/dbus.c as well and corrected systemctl -error messages for killing a unit. - ---- - src/analyze/analyze.c | 2 +- - src/bus-proxyd/bus-proxyd.c | 4 +--- - src/cgroups-agent/cgroups-agent.c | 4 +--- - src/core/dbus.c | 2 +- - src/fsck/fsck.c | 2 +- - src/hostname/hostnamectl.c | 2 +- - src/hostname/hostnamed.c | 4 ++-- - src/libsystemd/sd-bus/bus-util.h | 9 +++++++++ - src/libsystemd/sd-bus/busctl.c | 2 +- - src/locale/localectl.c | 2 +- - src/locale/localed.c | 4 ++-- - src/login/inhibit.c | 2 +- - src/login/loginctl.c | 2 +- - src/login/pam-module.c | 4 ++-- - src/machine/machinectl.c | 4 ++-- - src/nspawn/nspawn.c | 4 ++-- - src/run/run.c | 2 +- - src/systemctl/systemctl.c | 2 +- - src/timedate/timedatectl.c | 2 +- - src/timedate/timedated.c | 4 ++-- - 20 files changed, 34 insertions(+), 29 deletions(-) - ---- src/analyze/analyze.c -+++ src/analyze/analyze.c 2014-10-21 11:13:56.113045992 +0000 -@@ -1264,7 +1264,7 @@ static int parse_argv(int argc, char *ar - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/bus-proxyd/bus-proxyd.c -+++ src/bus-proxyd/bus-proxyd.c 2014-10-21 11:16:16.303837968 +0000 -@@ -427,7 +427,7 @@ static int patch_sender(sd_bus *a, sd_bu - - int main(int argc, char *argv[]) { - -- _cleanup_bus_unref_ sd_bus *a = NULL, *b = NULL; -+ _cleanup_bus_close_unref_ sd_bus *a = NULL, *b = NULL; - sd_id128_t server_id; - int r, in_fd, out_fd; - bool got_hello = false; -@@ -777,8 +777,6 @@ int main(int argc, char *argv[]) { - r = 0; - - finish: -- sd_bus_flush(a); -- sd_bus_flush(b); - - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; - } ---- src/cgroups-agent/cgroups-agent.c -+++ src/cgroups-agent/cgroups-agent.c 2014-10-21 11:17:37.400197469 +0000 -@@ -26,7 +26,7 @@ - #include "bus-util.h" - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - if (argc != 2) { -@@ -62,7 +62,5 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- sd_bus_flush(bus); -- - return EXIT_SUCCESS; - } ---- src/core/dbus.c -+++ src/core/dbus.c 2014-10-17 09:52:47.000000000 +0000 -@@ -639,7 +639,7 @@ static int bus_setup_disconnected_match( - } - - static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void *userdata) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - _cleanup_close_ int nfd = -1; - Manager *m = userdata; - sd_id128_t id; ---- src/fsck/fsck.c -+++ src/fsck/fsck.c 2014-10-21 11:18:06.003838037 +0000 -@@ -45,7 +45,7 @@ static bool arg_show_progress = false; - - static void start_target(const char *target) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(target); ---- src/hostname/hostnamectl.c -+++ src/hostname/hostnamectl.c 2014-10-21 11:18:19.915858156 +0000 -@@ -468,7 +468,7 @@ static int hostnamectl_main(sd_bus *bus, - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/hostname/hostnamed.c -+++ src/hostname/hostnamed.c 2014-10-21 11:24:07.737447673 +0000 -@@ -566,7 +566,7 @@ static const sd_bus_vtable hostname_vtab - }; - - static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(c); -@@ -607,7 +607,7 @@ int main(int argc, char *argv[]) { - Context context = {}; - - _cleanup_event_unref_ sd_event *event = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_set_target(LOG_TARGET_AUTO); ---- src/libsystemd/sd-bus/bus-util.h -+++ src/libsystemd/sd-bus/bus-util.h 2014-10-17 09:51:34.000000000 +0000 -@@ -137,11 +137,20 @@ typedef struct UnitInfo { - - int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u); - -+static inline void sd_bus_close_unrefp(sd_bus **bus) { -+ if (*bus) { -+ sd_bus_flush(*bus); -+ sd_bus_close(*bus); -+ sd_bus_unref(*bus); -+ } -+} -+ - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus*, sd_bus_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_message*, sd_bus_message_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_creds*, sd_bus_creds_unref); - - #define _cleanup_bus_unref_ _cleanup_(sd_bus_unrefp) -+#define _cleanup_bus_close_unref_ _cleanup_(sd_bus_close_unrefp) - #define _cleanup_bus_message_unref_ _cleanup_(sd_bus_message_unrefp) - #define _cleanup_bus_creds_unref_ _cleanup_(sd_bus_creds_unrefp) - #define _cleanup_bus_error_free_ _cleanup_(sd_bus_error_free) ---- src/libsystemd/sd-bus/busctl.c -+++ src/libsystemd/sd-bus/busctl.c 2014-10-21 11:19:01.472337887 +0000 -@@ -484,7 +484,7 @@ static int busctl_main(sd_bus *bus, int - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_parse_environment(); ---- src/locale/localectl.c -+++ src/locale/localectl.c 2014-10-21 11:19:13.811947994 +0000 -@@ -796,7 +796,7 @@ static int localectl_main(sd_bus *bus, i - } - - int main(int argc, char*argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/locale/localed.c -+++ src/locale/localed.c 2014-10-21 11:19:28.415837424 +0000 -@@ -1076,7 +1076,7 @@ static const sd_bus_vtable locale_vtable - }; - - static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(c); -@@ -1116,7 +1116,7 @@ static int connect_bus(Context *c, sd_ev - int main(int argc, char *argv[]) { - Context context = {}; - _cleanup_event_unref_ sd_event *event = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_set_target(LOG_TARGET_AUTO); ---- src/login/inhibit.c -+++ src/login/inhibit.c 2014-10-21 11:19:44.470844885 +0000 -@@ -221,7 +221,7 @@ static int parse_argv(int argc, char *ar - - int main(int argc, char *argv[]) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_parse_environment(); ---- src/login/loginctl.c -+++ src/login/loginctl.c 2014-10-21 11:20:16.695837857 +0000 -@@ -1298,7 +1298,7 @@ static int loginctl_main(sd_bus *bus, in - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/login/pam-module.c -+++ src/login/pam-module.c 2014-10-21 10:48:20.000000000 +0000 -@@ -213,7 +213,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess - *seat = NULL, - *type = NULL, *class = NULL, - *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int session_fd = -1, existing, r; - bool debug = false, remote; - struct passwd *pw; -@@ -517,7 +517,7 @@ _public_ PAM_EXTERN int pam_sm_close_ses - int argc, const char **argv) { - - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - const void *existing = NULL; - const char *id; - int r; ---- src/machine/machinectl.c -+++ src/machine/machinectl.c 2014-10-21 11:20:45.747838104 +0000 -@@ -550,7 +550,7 @@ static int openpt_in_namespace(pid_t pid - static int login_machine(sd_bus *bus, char **args, unsigned n) { - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL, *reply2 = NULL, *reply3 = NULL; - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *container_bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *container_bus = NULL; - _cleanup_close_ int master = -1; - _cleanup_free_ char *getty = NULL; - const char *path, *pty, *p; -@@ -879,7 +879,7 @@ static int machinectl_main(sd_bus *bus, - } - - int main(int argc, char*argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-10-21 11:21:05.561523449 +0000 -@@ -1163,7 +1163,7 @@ static int drop_capabilities(void) { - - static int register_machine(pid_t pid) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - if (!arg_register) -@@ -1285,7 +1285,7 @@ static int register_machine(pid_t pid) { - static int terminate_machine(pid_t pid) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - const char *path; - int r; - ---- src/run/run.c -+++ src/run/run.c 2014-10-21 11:22:35.163838021 +0000 -@@ -462,7 +462,7 @@ static int start_transient_scope( - - int main(int argc, char* argv[]) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - _cleanup_free_ char *description = NULL, *command = NULL; - int r; - ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-10-22 09:36:33.399838318 +0000 -@@ -2601,7 +2601,7 @@ static int kill_unit(sd_bus *bus, char * - "ssi", *names, arg_kill_who, arg_signal); - if (q < 0) { - log_error("Failed to kill unit %s: %s", -- *names, bus_error_message(&error, r)); -+ *names, bus_error_message(&error, q)); - if (r == 0) - r = q; - } -@@ -6436,7 +6436,7 @@ static int runlevel_main(void) { - } - - int main(int argc, char*argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/timedate/timedatectl.c -+++ src/timedate/timedatectl.c 2014-10-21 11:23:06.107837988 +0000 -@@ -593,7 +593,7 @@ static int timedatectl_main(sd_bus *bus, - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/timedate/timedated.c -+++ src/timedate/timedated.c 2014-10-21 11:23:26.047838675 +0000 -@@ -779,7 +779,7 @@ static const sd_bus_vtable timedate_vtab - }; - - static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(c); -@@ -825,7 +825,7 @@ int main(int argc, char *argv[]) { - }; - - _cleanup_event_unref_ sd_event *event = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_set_target(LOG_TARGET_AUTO); diff --git a/boot.udev b/boot.udev deleted file mode 100644 index 4fa0bd63..00000000 --- a/boot.udev +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# -### BEGIN INIT INFO -# Provides: boot.udev -# Required-Start: -# Required-Stop: -# Should-Start: -# Should-Stop: -# Default-Start: B -# Default-Stop: -# Short-Description: manage /dev and kernel device-events -# Description: udevd daemon to manage /dev and kernel device events -### END INIT INFO - -. /etc/rc.status - -PATH="/sbin:/bin:/usr/sbin:/usr/bin" -DAEMON="@@SYSTEMD@@/systemd-udevd" -UDEVADM="@@BINDIR@@/udevadm" -WRITERULE="@@PREFIX@@/write_dev_root_rule" -udev_timeout=180 - -case "$1" in - start) - # create /dev/root symlink with dynamic rule - if [ -x ${WRITERULE} ]; then - ${WRITERULE} >/dev/null 2>&1 || true - fi - - # start udevd - echo -n "Starting udevd: " - ${DAEMON} --daemon - if [ $? -ne 0 ]; then - rc_status -v - rc_exit - fi - rc_status -v - - # trigger events for all devices - echo -n "Loading drivers, configuring devices: " - ${UDEVADM} trigger --type=subsystems --action=add - ${UDEVADM} trigger --type=devices --action=add - - # wait for events to finish - ${UDEVADM} settle --timeout=$udev_timeout - rc_status -v - ;; - stop) - echo -n "Stopping udevd: " - killproc ${DAEMON} - rc_status -v - ;; - restart) - echo -n "Restarting udevd: " - killproc ${DAEMON} - ${DAEMON} --daemon - rc_status -v - ;; - status) - echo -n "Checking for udevd: " - checkproc ${DAEMON} - rc_status -v - ;; - reload|force-reload) - echo -n "Reloading udevd: " - killproc -G -HUP ${DAEMON} - rc_status -v - ;; - *) - echo "Usage: $0 {start|stop|restart|status|reload|force-reload}" - exit 1 - ;; -esac -rc_exit diff --git a/disable-nss-myhostname-warning-bnc-783841.patch b/disable-nss-myhostname-warning-bnc-783841.patch deleted file mode 100644 index c20aad94..00000000 --- a/disable-nss-myhostname-warning-bnc-783841.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Ludwig Nussel -Date: Tue, 12 Feb 2013 17:24:35 +0100 -Subject: disable nss-myhostname warning (bnc#783841) - ---- - src/hostname/hostnamed.c | 1 + - 1 file changed, 1 insertion(+) - ---- systemd-206.orig/src/hostname/hostnamed.c -+++ systemd-206/src/hostname/hostnamed.c -@@ -134,6 +134,7 @@ static int read_data(void) { - - static bool check_nss(void) { - void *dl; -+ return true; - - dl = dlopen("libnss_myhostname.so.2", RTLD_LAZY); - if (dl) { diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch index 3f6b0eb4..77bed82d 100644 --- a/ensure-shortname-is-set-as-hostname-bnc-820213.patch +++ b/ensure-shortname-is-set-as-hostname-bnc-820213.patch @@ -4,11 +4,13 @@ Subject: ensure shortname is set as hostname (bnc#820213) strip hostname so the domain part isn't set as part of the hostname --- - src/core/hostname-setup.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + src/core/hostname-setup.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) ---- systemd-206.orig/src/core/hostname-setup.c -+++ systemd-206/src/core/hostname-setup.c +Index: systemd-218/src/core/hostname-setup.c +=================================================================== +--- systemd-218.orig/src/core/hostname-setup.c ++++ systemd-218/src/core/hostname-setup.c @@ -32,7 +32,7 @@ #include "fileio.h" @@ -18,14 +20,13 @@ strip hostname so the domain part isn't set as part of the hostname int r; assert(path); -@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const +@@ -49,6 +49,10 @@ static int read_and_strip_hostname(const return -ENOENT; } + /* strip any leftover of a domain name */ -+ if (domain = strchr(s, '.')) { -+ *domain = NULL; -+ } ++ if ((domain = strchr(s, '.')) != NULL) ++ *domain = '\0'; + *hn = s; return 0; diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch deleted file mode 100644 index 954c60ca..00000000 --- a/fix-owner-of-var-log-btmp.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Frederic Crozat -Date: Tue, 20 Nov 2012 09:36:43 +0000 -Subject: fix owner of /var/log/btmp - -ensure btmp is owned only by root (bnc#777405). ---- - tmpfiles.d/systemd.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- systemd-206_git201308300826.orig/tmpfiles.d/systemd.conf -+++ systemd-206_git201308300826/tmpfiles.d/systemd.conf -@@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d - F! /run/utmp 0664 root utmp - - - f /var/log/wtmp 0664 root utmp - --f /var/log/btmp 0600 root utmp - -+f /var/log/btmp 0600 root root - - - d /var/cache/man - - - 30d - diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index b8fea652..c4875197 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -3,15 +3,17 @@ Date: Thu, 23 Aug 2012 11:08:25 +0200 Subject: fix support for boot prefixed initscript (bnc#746506) --- - src/systemctl/systemctl.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) + src/systemctl/systemctl.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) ---- systemd-206_git201308300826.orig/src/systemctl/systemctl.c -+++ systemd-206_git201308300826/src/systemctl/systemctl.c -@@ -4169,8 +4169,28 @@ static int enable_sysv_units(char **args - p[strlen(p) - sizeof(".service") + 1] = 0; - found_sysv = access(p, F_OK) >= 0; +Index: systemd-218/src/systemctl/systemctl.c +=================================================================== +--- systemd-218.orig/src/systemctl/systemctl.c ++++ systemd-218/src/systemctl/systemctl.c +@@ -5202,8 +5202,26 @@ static int enable_sysv_units(const char + p[strlen(p) - strlen(".service")] = 0; + found_sysv = access(p, F_OK) >= 0; - if (!found_sysv) + if (!found_sysv) { +#ifdef HAVE_SYSV_COMPAT @@ -21,10 +23,8 @@ Subject: fix support for boot prefixed initscript (bnc#746506) + asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else + asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -+ if (!p) { -+ r = log_oom(); -+ goto finish; -+ } ++ if (!p) ++ return -ENOMEM; + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; + @@ -36,5 +36,5 @@ Subject: fix support for boot prefixed initscript (bnc#746506) +#endif + } - /* Mark this entry, so that we don't try enabling it as native unit */ - args[f] = (char*) ""; + log_info("%s is not a native service, redirecting to /sbin/chkconfig.", name); + diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch deleted file mode 100644 index c7fa0726..00000000 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ /dev/null @@ -1,42 +0,0 @@ -From: Frederic Crozat -Date: Tue, 22 Jan 2013 17:02:04 +0000 -Subject: handle SYSTEMCTL_OPTIONS environment variable - -(bnc#798620) ---- - src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -Index: systemd-208/src/systemctl/systemctl.c -=================================================================== ---- systemd-208.orig/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c -@@ -6115,6 +6115,28 @@ int main(int argc, char*argv[]) { - * ellipsized. */ - original_stdout_is_tty = isatty(STDOUT_FILENO); - -+ if (secure_getenv("SYSTEMCTL_OPTIONS") && -+ (!program_invocation_short_name || -+ (program_invocation_short_name && strstr(program_invocation_short_name, "systemctl")))) { -+ char **parsed_systemctl_options = strv_split_quoted(getenv("SYSTEMCTL_OPTIONS")); -+ -+ if (*parsed_systemctl_options && **parsed_systemctl_options) { -+ char **k,**a; -+ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); -+ new_argv[0] = strdup(argv[0]); -+ for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { -+ *k = strdup(*a); -+ } -+ for (a = argv+1; *a; k++, a++) { -+ *k = strdup(*a); -+ } -+ *k = NULL; -+ argv = new_argv; -+ argc = strv_length(new_argv); -+ strv_free (parsed_systemctl_options); -+ } -+ } -+ - r = parse_argv(argc, argv); - if (r <= 0) - goto finish; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index 96213505..52af3ee9 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -4,13 +4,13 @@ Subject: handle disable_caplock and compose_table and kbd_rate (bnc#746595) --- - src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 153 insertions(+), 3 deletions(-) + src/vconsole/vconsole-setup.c | 151 +++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 148 insertions(+), 3 deletions(-) -Index: systemd-210/src/vconsole/vconsole-setup.c +Index: systemd-218/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-210.orig/src/vconsole/vconsole-setup.c -+++ systemd-210/src/vconsole/vconsole-setup.c +--- systemd-218.orig/src/vconsole/vconsole-setup.c ++++ systemd-218/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" @@ -19,7 +19,7 @@ Index: systemd-210/src/vconsole/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -99,8 +100,8 @@ static int enable_utf8(int fd) { +@@ -101,8 +102,8 @@ static int enable_utf8(int fd) { return r; } @@ -30,7 +30,7 @@ Index: systemd-210/src/vconsole/vconsole-setup.c int i = 0; pid_t pid; -@@ -119,6 +120,8 @@ static int keymap_load(const char *vc, c +@@ -121,6 +122,8 @@ static int keymap_load(const char *vc, c args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,7 +39,7 @@ Index: systemd-210/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) +@@ -236,11 +239,113 @@ static void font_copy_to_all_vcs(int fd) } } @@ -140,25 +140,20 @@ Index: systemd-210/src/vconsole/vconsole-setup.c + int main(int argc, char **argv) { const char *vc; - char *vc_keymap = NULL; -@@ -219,8 +317,16 @@ int main(int argc, char **argv) { - char *vc_font = NULL; - char *vc_font_map = NULL; - char *vc_font_unimap = NULL; + _cleanup_free_ char + *vc_keymap = NULL, *vc_keymap_toggle = NULL, + *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; +#ifdef HAVE_SYSV_COMPAT -+ char *vc_kbd_delay = NULL; -+ char *vc_kbd_rate = NULL; -+ char *vc_kbd_disable_caps_lock = NULL; -+ char *vc_compose_table = NULL; ++ _cleanup_free_ char ++ *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, ++ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; +#endif - int fd = -1; - bool utf8; + bool disable_capslock = false; + _cleanup_close_ int fd = -1; + bool utf8; pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -251,6 +357,28 @@ int main(int argc, char **argv) { +@@ -273,6 +378,28 @@ int main(int argc, char **argv) { utf8 = is_locale_utf8(); @@ -187,45 +182,37 @@ Index: systemd-210/src/vconsole/vconsole-setup.c r = parse_env_file("/etc/vconsole.conf", NEWLINE, "KEYMAP", &vc_keymap, "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -282,7 +410,12 @@ int main(int argc, char **argv) { - disable_utf8(fd); +@@ -312,14 +439,32 @@ int main(int argc, char **argv) { + if (font_pid > 0) + wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true); - r = EXIT_FAILURE; -- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && -+ -+ if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +- r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid); ++ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); + if (r < 0) { + log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); + return EXIT_FAILURE; + } +#ifdef HAVE_SYSV_COMPAT -+ load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && -+ set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && ++ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); ++ if (r < 0) { ++ log_error_errno(r, "Failed to start " KBD_LOADKEYS " loading the compose table: %m"); ++ return EXIT_FAILURE; ++ } ++ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); ++ if (r < 0) { ++ log_error_errno(r, "Failed to start kbdrate: %m"); ++ return EXIT_FAILURE; ++ } +#endif - font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) - r = EXIT_SUCCESS; -@@ -290,6 +423,14 @@ finish: if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); - + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true); +#ifdef HAVE_SYSV_COMPAT + if (compose_table_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); -+ ++ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid, true); + if (kbd_rate_pid > 0) -+ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); -+#endif -+ - if (font_pid > 0) { - wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - if (font_copy) -@@ -300,6 +441,12 @@ finish: - free(vc_font); - free(vc_font_map); - free(vc_font_unimap); -+#ifdef HAVE_SYSV_COMPAT -+ free(vc_kbd_delay); -+ free(vc_kbd_rate); -+ free(vc_kbd_disable_caps_lock); -+ free(vc_compose_table); ++ wait_for_terminate_and_warn("/usr/bin/kbdrate", kbd_rate_pid, true); +#endif - if (fd >= 0) - close_nointr_nofail(fd); + /* Only copy the font when we started setfont successfully */ + if (font_copy && font_pid > 0) diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch deleted file mode 100644 index 57a74f0d..00000000 --- a/handle-etc-HOSTNAME.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Frederic Crozat -Date: Fri, 15 Feb 2013 16:04:39 +0000 -Subject: handle /etc/HOSTNAME - -(bnc#803653) ---- - src/core/hostname-setup.c | 22 +++++++++++++++++----- - src/hostname/hostnamed.c | 12 +++++++++++- - 2 files changed, 28 insertions(+), 6 deletions(-) - ---- systemd-206/src/core/hostname-setup.c -+++ systemd-206/src/core/hostname-setup.c -@@ -61,12 +61,24 @@ int hostname_setup(void) { - - r = read_and_strip_hostname("/etc/hostname", &b); - if (r < 0) { -- if (r == -ENOENT) -- enoent = true; -- else -- log_warning("Failed to read configured hostname: %s", strerror(-r)); -+ if (r == -ENOENT) { -+ /* use SUSE fallback */ -+ r = read_and_strip_hostname("/etc/HOSTNAME", &b); -+ if (r < 0) { -+ if (r == -ENOENT) -+ enoent = true; -+ else -+ log_warning("Failed to read configured hostname: %s", strerror(-r)); -+ hn = NULL; -+ } -+ else -+ hn = b; - -- hn = NULL; -+ } -+ else { -+ log_warning("Failed to read configured hostname: %s", strerror(-r)); -+ hn = NULL; -+ } - } else - hn = b; - ---- systemd-209/src/hostname/hostnamed.c -+++ systemd-209/src/hostname/hostnamed.c 2014-02-28 11:36:30.594735241 +0000 -@@ -89,6 +89,10 @@ static int context_read_data(Context *c) - if (r < 0 && r != -ENOENT) - return r; - -+ r = read_one_line_file("/etc/HOSTNAME", &c->data[PROP_STATIC_HOSTNAME]); -+ if (r < 0 && r != -ENOENT) -+ return r; -+ - return 0; - } - -@@ -246,6 +250,7 @@ static int context_write_data_hostname(C - } - - static int context_write_data_static_hostname(Context *c) { -+ int r; - - assert(c); - -@@ -256,7 +261,12 @@ static int context_write_data_static_hos - - return 0; - } -- return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); -+ -+ r = write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); -+ if (!r) { -+ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); -+ } -+ return r; - } - - static int context_write_data_other(Context *c) { diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 4278436c..a9f6924a 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,105 +6,19 @@ Authors: Stanislav Brabec Cristian Rodríguez -Index: systemd-210/src/vconsole/vconsole-setup.c +--- + Makefile.am | 13 ++++++++++ + rules/73-seat-numlock.rules | 8 ++++++ + src/login/numlock-on.c | 34 +++++++++++++++++++++++++++ + src/vconsole/vconsole-setup.c | 40 ++++++++++++++++++++++++++++++-- + units/systemd-vconsole-setup.service.in | 2 - + 5 files changed, 94 insertions(+), 3 deletions(-) + +Index: systemd-218/Makefile.am =================================================================== ---- systemd-210.orig/src/vconsole/vconsole-setup.c -+++ systemd-210/src/vconsole/vconsole-setup.c -@@ -42,6 +42,10 @@ - #include "fileio.h" - #include "strv.h" - -+#define BIOS_DATA_AREA 0x400 -+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 -+#define BDA_KSF4_NUMLOCK_MASK 0x02 -+ - static bool is_vconsole(int fd) { - unsigned char data[1]; - -@@ -321,12 +325,14 @@ int main(int argc, char **argv) { - char *vc_kbd_delay = NULL; - char *vc_kbd_rate = NULL; - char *vc_kbd_disable_caps_lock = NULL; -+ char *vc_kbd_numlock = NULL; - char *vc_compose_table = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; - #endif - int fd = -1; - bool utf8; - bool disable_capslock = false; -+ bool numlock = false; - pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -363,6 +369,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -377,6 +384,36 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); - - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+#if defined(__i386__) || defined(__x86_64__) -+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { -+ int _cleanup_close_ fdmem; -+ char c; -+ -+ fdmem = open ("/dev/mem", O_RDONLY); -+ -+ if(fdmem < 0) { -+ r = EXIT_FAILURE; -+ log_error("Failed to open /dev/mem: %m"); -+ goto finish; -+ } -+ -+ if(lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { -+ r = EXIT_FAILURE; -+ log_error("Failed to seek /dev/mem: %m"); -+ goto finish; -+ } -+ -+ if(read (fdmem, &c, sizeof(char)) == -1) { -+ r = EXIT_FAILURE; -+ log_error("Failed to read /dev/mem: %m"); -+ goto finish; -+ } -+ -+ if (c & BDA_KSF4_NUMLOCK_MASK) -+ numlock = true; -+ } else -+#endif -+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); - #endif - - r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -422,6 +459,10 @@ int main(int argc, char **argv) { - finish: - if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ if (numlock) -+ touch("/run/numlock-on"); -+ else -+ unlink("/run/numlock-on"); - - #ifdef HAVE_SYSV_COMPAT - if (compose_table_pid > 0) -@@ -441,6 +482,7 @@ finish: - free(vc_font); - free(vc_font_map); - free(vc_font_unimap); -+ free(vc_kbd_numlock); - #ifdef HAVE_SYSV_COMPAT - free(vc_kbd_delay); - free(vc_kbd_rate); -Index: systemd-210/Makefile.am -=================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2847,6 +2847,19 @@ dist_udevrules_DATA += \ +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -3715,6 +3715,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -124,10 +38,10 @@ Index: systemd-210/Makefile.am if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -Index: systemd-210/rules/73-seat-numlock.rules +Index: systemd-218/rules/73-seat-numlock.rules =================================================================== --- /dev/null -+++ systemd-210/rules/73-seat-numlock.rules ++++ systemd-218/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -137,10 +51,10 @@ Index: systemd-210/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-210/src/login/numlock-on.c +Index: systemd-218/src/login/numlock-on.c =================================================================== --- /dev/null -+++ systemd-210/src/login/numlock-on.c ++++ systemd-218/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -176,14 +90,95 @@ Index: systemd-210/src/login/numlock-on.c + + exit(0); +} -Index: systemd-210/units/systemd-vconsole-setup.service.in +Index: systemd-218/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-210.orig/units/systemd-vconsole-setup.service.in -+++ systemd-210/units/systemd-vconsole-setup.service.in -@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup +--- systemd-218.orig/src/vconsole/vconsole-setup.c ++++ systemd-218/src/vconsole/vconsole-setup.c +@@ -42,6 +42,10 @@ + #include "fileio.h" + #include "strv.h" + ++#define BIOS_DATA_AREA 0x400 ++#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 ++#define BDA_KSF4_NUMLOCK_MASK 0x02 ++ + static bool is_vconsole(int fd) { + unsigned char data[1]; + +@@ -342,10 +346,11 @@ int main(int argc, char **argv) { + #ifdef HAVE_SYSV_COMPAT + _cleanup_free_ char + *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, +- *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; ++ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL, ++ *vc_kbd_numlock = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; + #endif +- bool disable_capslock = false; ++ bool disable_capslock = false, numlock = false; + _cleanup_close_ int fd = -1; + bool utf8; + pid_t font_pid = 0, keymap_pid = 0; +@@ -384,6 +389,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -398,6 +404,32 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++#if defined(__i386__) || defined(__x86_64__) ++ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { ++ int _cleanup_close_ fdmem; ++ char c; ++ ++ fdmem = open ("/dev/mem", O_RDONLY); ++ if (fdmem < 0) { ++ log_error("Failed to open /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } ++ ++ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { ++ log_error("Failed to seek /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } ++ ++ if (read (fdmem, &c, sizeof(char)) == -1) { ++ log_error("Failed to read /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } ++ ++ if (c & BDA_KSF4_NUMLOCK_MASK) ++ numlock = true; ++ } else ++#endif ++ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); + #endif + + r = parse_env_file("/etc/vconsole.conf", NEWLINE, +@@ -444,6 +476,10 @@ int main(int argc, char **argv) { + log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); + return EXIT_FAILURE; + } ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + #ifdef HAVE_SYSV_COMPAT + r = load_compose_table(vc, vc_compose_table, &compose_table_pid); + if (r < 0) { +Index: systemd-218/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-218.orig/units/systemd-vconsole-setup.service.in ++++ systemd-218/units/systemd-vconsole-setup.service.in +@@ -10,7 +10,7 @@ Description=Setup Virtual Console + Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) DefaultDependencies=no Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service -Before=sysinit.target shutdown.target +Before=sysinit.target shutdown.target systemd-udev-trigger.service ConditionPathExists=/dev/tty0 diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index d7bea39c..a441dd59 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -4,16 +4,16 @@ Subject: handle root_uses_lang value in /etc/sysconfig/language handle ROOT_USES_LANG=ctype (bnc#792182). --- - src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) + src/core/locale-setup.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) -Index: systemd-208/src/core/locale-setup.c +Index: systemd-218/src/core/locale-setup.c =================================================================== ---- systemd-208.orig/src/core/locale-setup.c -+++ systemd-208/src/core/locale-setup.c -@@ -73,6 +73,11 @@ int locale_setup(char ***environment) { +--- systemd-218.orig/src/core/locale-setup.c ++++ systemd-218/src/core/locale-setup.c +@@ -36,6 +36,11 @@ int locale_setup(char ***environment) { char **add; - char *variables[_VARIABLE_MAX] = {}; + char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT + char _cleanup_free_ *root_uses_lang; @@ -23,9 +23,9 @@ Index: systemd-208/src/core/locale-setup.c if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -119,6 +124,27 @@ int locale_setup(char ***environment) { +@@ -82,6 +87,27 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); + log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } +#ifdef HAVE_SYSV_COMPAT + if (r <= 0 && @@ -50,4 +50,4 @@ Index: systemd-208/src/core/locale-setup.c +#endif add = NULL; - for (i = 0; i < _VARIABLE_MAX; i++) { + for (i = 0; i < _VARIABLE_LC_MAX; i++) { diff --git a/insserv-generator.patch b/insserv-generator.patch index 5525222a..1e1cdf4e 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -6,29 +6,30 @@ Subject: [PATCH] insserv.conf generator parse /etc/insserv.conf.dd content and /etc/insserv.conf and generate systemd unit drop-in files to add dependencies --- - Makefile.am | 9 + - src/insserv-generator/Makefile | 28 +++ - src/insserv-generator/insserv-generator.c | 309 ++++++++++++++++++++++++++++++ - 3 files changed, 346 insertions(+) + Makefile.am | 9 + src/insserv-generator/Makefile | 28 ++ + src/insserv-generator/insserv-generator.c | 312 ++++++++++++++++++++++++++++++ + 3 files changed, 349 insertions(+) create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c -Index: systemd-210/Makefile.am -=================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -343,6 +343,7 @@ rootlibexec_PROGRAMS = \ - systemd-socket-proxyd +--- systemd-219.orig/Makefile.am ++++ systemd-219/Makefile.am +@@ -621,7 +621,8 @@ nodist_systemunit_DATA += \ - systemgenerator_PROGRAMS = \ -+ systemd-insserv-generator \ - systemd-getty-generator \ - systemd-fstab-generator \ - systemd-system-update-generator -@@ -1728,6 +1729,14 @@ systemd_delta_LDADD = \ + systemgenerator_PROGRAMS += \ + systemd-sysv-generator \ +- systemd-rc-local-generator ++ systemd-rc-local-generator \ ++ systemd-insserv-generator + endif + + EXTRA_DIST += \ +@@ -2565,6 +2566,14 @@ systemd_rc_local_generator_LDADD = \ + libsystemd-label.la \ libsystemd-shared.la - # ------------------------------------------------------------------------------ ++#------------------------------------------------------------------------------- +systemd_insserv_generator_SOURCES = \ + src/insserv-generator/insserv-generator.c + @@ -36,14 +37,11 @@ Index: systemd-210/Makefile.am + libsystemd-label.la \ + libsystemd-shared.la + -+# ------------------------------------------------------------------------------ - systemd_getty_generator_SOURCES = \ - src/getty-generator/getty-generator.c - -Index: systemd-210/src/insserv-generator/Makefile -=================================================================== + # ------------------------------------------------------------------------------ + systemd_remount_fs_SOURCES = \ + src/remount-fs/remount-fs.c \ --- /dev/null -+++ systemd-210/src/insserv-generator/Makefile ++++ systemd-219/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -73,10 +71,8 @@ Index: systemd-210/src/insserv-generator/Makefile + $(MAKE) -C .. clean + +.PHONY: all clean -Index: systemd-210/src/insserv-generator/insserv-generator.c -=================================================================== --- /dev/null -+++ systemd-210/src/insserv-generator/insserv-generator.c ++++ systemd-219/src/insserv-generator/insserv-generator.c @@ -0,0 +1,312 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -354,7 +350,7 @@ Index: systemd-210/src/insserv-generator/insserv-generator.c + + while ((de = readdir(d))) { + char *path = NULL; -+ if (ignore_file(de->d_name)) ++ if (hidden_file(de->d_name)) + continue; + + path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL); diff --git a/journald-advice-about-use-of-memory.patch b/journald-advice-about-use-of-memory.patch index 008a72ef..4caf994f 100644 --- a/journald-advice-about-use-of-memory.patch +++ b/journald-advice-about-use-of-memory.patch @@ -1,143 +1,135 @@ ---- - src/journal/catalog.c | 21 +++++++++++++++++++-- - src/journal/journal-authenticate.c | 4 ++-- - src/journal/journal-file.c | 2 +- - src/journal/journald-kmsg.c | 2 +- - src/journal/mmap-cache.c | 24 ++++++++++++++++++++++-- - 5 files changed, 45 insertions(+), 8 deletions(-) +From: werner@suse.de +Upstream: marked as openSUSE-specific fix originally, but may well + worth be to be sent upstream. ---- src/journal/catalog.c -+++ src/journal/catalog.c 2014-10-24 11:44:59.079838065 +0000 -@@ -472,9 +472,19 @@ finish: +Original description: + (none) + +Notes [jengelh@inai.de]: +MAP_NONBLOCK is documented (mmap(2) in man-pages-3.69+) to render +MAP_POPULATE ineffective. Why do we have it? +What is the rationale for MAP_STACK? +--- + src/journal/catalog.c | 12 +++++++++++- + src/journal/journal-authenticate.c | 7 +++++-- + src/journal/journald-kmsg.c | 3 ++- + src/journal/mmap-cache.c | 16 +++++++++++++++- + 4 files changed, 33 insertions(+), 5 deletions(-) + +Index: systemd/src/journal/catalog.c +=================================================================== +--- systemd.orig/src/journal/catalog.c ++++ systemd/src/journal/catalog.c +@@ -470,6 +470,10 @@ finish: static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) { const CatalogHeader *h; -- int fd; -+ static const struct { -+ const int index; -+ int advise; -+ } advises[] = { -+ {0,MADV_WILLNEED}, -+ {1,MADV_SEQUENTIAL}, -+ {2,MADV_DONTDUMP}, -+ {3,MADV_DONTFORK} -+ }; -+ int n, fd; ++ static const unsigned int advice[] = ++ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; ++ unsigned int n; ++ size_t psize; + int fd; void *p; struct stat st; -+ size_t psize; - - assert(_fd); - assert(_st); -@@ -494,12 +504,19 @@ static int open_mmap(const char *databas +@@ -492,12 +496,18 @@ static int open_mmap(const char *databas return -EINVAL; } - p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0); + psize = PAGE_ALIGN(st.st_size); -+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, 0); ++ p = mmap(NULL, psize, PROT_READ, MAP_SHARED | MAP_POPULATE | ++ MAP_NONBLOCK, fd, 0); if (p == MAP_FAILED) { - close_nointr_nofail(fd); + safe_close(fd); return -errno; } -+ for (n=0; n < sizeof(advises)/sizeof(advises[0]); n++) { -+ int r = madvise(p, psize, advises[n].advise); -+ if (r < 0) ++ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) ++ if (madvise(p, psize, advice[n]) < 0) + log_warning("Failed to give advice about use of memory: %m"); -+ } + h = p; if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 || le64toh(h->header_size) < sizeof(CatalogHeader) || ---- src/journal/journal-authenticate.c -+++ src/journal/journal-authenticate.c 2014-10-24 07:41:09.271837523 +0000 -@@ -355,7 +355,7 @@ int journal_file_fss_load(JournalFile *f +Index: systemd/src/journal/journal-authenticate.c +=================================================================== +--- systemd.orig/src/journal/journal-authenticate.c ++++ systemd/src/journal/journal-authenticate.c +@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f goto finish; } - m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0); -+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED|MAP_STACK, fd, 0); ++ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, ++ MAP_SHARED | MAP_STACK, fd, 0); if (m == MAP_FAILED) { m = NULL; r = -errno; -@@ -399,7 +399,7 @@ int journal_file_fss_load(JournalFile *f +@@ -399,7 +400,9 @@ int journal_file_fss_load(JournalFile *f goto finish; } - f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); ++ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), ++ PROT_READ | PROT_WRITE, MAP_SHARED | MAP_STACK, ++ fd, 0); if (f->fss_file == MAP_FAILED) { f->fss_file = NULL; r = -errno; ---- src/journal/journal-file.c -+++ src/journal/journal-file.c 2014-10-24 07:39:25.603837720 +0000 -@@ -2554,7 +2554,7 @@ int journal_file_open( - goto fail; - } - -- f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED, f->fd, 0); -+ f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED|MAP_STACK, f->fd, 0); - if (f->header == MAP_FAILED) { - f->header = NULL; - r = -errno; ---- src/journal/journald-kmsg.c -+++ src/journal/journald-kmsg.c 2014-10-24 07:38:01.967837989 +0000 -@@ -473,7 +473,7 @@ int server_open_kernel_seqnum(Server *s) +Index: systemd/src/journal/journald-kmsg.c +=================================================================== +--- systemd.orig/src/journal/journald-kmsg.c ++++ systemd/src/journal/journald-kmsg.c +@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s) return 0; } - p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); ++ p = mmap(NULL, sizeof(uint64_t), PROT_READ | PROT_WRITE, ++ MAP_SHARED | MAP_STACK, fd, 0); if (p == MAP_FAILED) { - log_error("Failed to map sequential number file, ignoring: %m"); - close_nointr_nofail(fd); ---- src/journal/mmap-cache.c -+++ src/journal/mmap-cache.c 2014-10-24 11:16:47.759837744 +0000 -@@ -439,12 +439,21 @@ static int add_mmap( + log_error_errno(errno, "Failed to map sequential number file, ignoring: %m"); + return 0; +Index: systemd/src/journal/mmap-cache.c +=================================================================== +--- systemd.orig/src/journal/mmap-cache.c ++++ systemd/src/journal/mmap-cache.c +@@ -467,11 +467,14 @@ static int add_mmap( struct stat *st, void **ret) { -+ static const struct { -+ const int index; -+ int vise; -+ } ad[] = { -+ {0, MADV_WILLNEED}, -+ {1, MADV_SEQUENTIAL}, -+ {2, MADV_DONTDUMP}, -+ {3, MADV_DONTFORK} -+ }; ++ static const unsigned int advice[] = ++ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; uint64_t woffset, wsize; Context *c; FileDescriptor *f; Window *w; void *d; -- int r; -+ int n, r; ++ unsigned int n; + int r; assert(m); - assert(m->n_ref > 0); -@@ -481,7 +490,7 @@ static int add_mmap( +@@ -510,7 +513,8 @@ static int add_mmap( } for (;;) { - d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset); -+ d = mmap(NULL, wsize, prot, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, woffset); ++ d = mmap(NULL, wsize, prot, MAP_SHARED | MAP_POPULATE | ++ MAP_NONBLOCK, fd, woffset); if (d != MAP_FAILED) break; if (errno != ENOMEM) -@@ -494,6 +503,17 @@ static int add_mmap( +@@ -523,6 +527,16 @@ static int add_mmap( return -ENOMEM; } -+ for (n=0; n < sizeof(ad)/sizeof(ad[0]); n++) { -+ if (ad[n].vise == MADV_DONTFORK) { ++ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) { ++ if (advice[n] == MADV_DONTFORK) { + int flags = fcntl(fd, F_GETFD); + if (flags < 0 || !(flags & FD_CLOEXEC)) + continue; + } -+ r = madvise(d, wsize, ad[n].vise); -+ if (r < 0) ++ if (madvise(d, wsize, advice[n]) < 0) + log_warning("Failed to give advice about use of memory: %m"); + } + diff --git a/kbd-model-map.patch b/kbd-model-map.patch index 743a67b2..b7327892 100644 --- a/kbd-model-map.patch +++ b/kbd-model-map.patch @@ -1,13 +1,18 @@ +From: werner@suse.de +Date: Tue Jan 20 11:33:59 UTC 2015 + --- src/locale/kbd-model-map | 13 +++++++++++++ 1 file changed, 13 insertions(+) ---- src/locale/kbd-model-map -+++ src/locale/kbd-model-map 2015-01-20 11:31:38.357518811 +0000 -@@ -63,3 +63,16 @@ by by,us pc105 - terminate:ctrl_alt_ - il il pc105 - terminate:ctrl_alt_bksp - kazakh kz,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll +Index: systemd/src/locale/kbd-model-map +=================================================================== +--- systemd.orig/src/locale/kbd-model-map ++++ systemd/src/locale/kbd-model-map +@@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a + lt.l4 lt pc105 - terminate:ctrl_alt_bksp lt lt pc105 - terminate:ctrl_alt_bksp + khmer kh,us pc105 - terminate:ctrl_alt_bksp +# Additional layouts offered by YaST +Pl02 pl pc105 - terminate:ctrl_alt_bksp +arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle diff --git a/let-linker-find-libudev-for-libdevmapper.patch b/let-linker-find-libudev-for-libdevmapper.patch index e2bbdda1..4879c708 100644 --- a/let-linker-find-libudev-for-libdevmapper.patch +++ b/let-linker-find-libudev-for-libdevmapper.patch @@ -1,6 +1,13 @@ ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am 2014-03-13 08:54:36.010736086 +0000 -@@ -3691,6 +3691,10 @@ systemd_cryptsetup_CFLAGS = \ +--- + Makefile.am | 4 ++++ + configure.ac | 4 ---- + 2 files changed, 4 insertions(+), 4 deletions(-) + +Index: systemd/Makefile.am +=================================================================== +--- systemd.orig/Makefile.am ++++ systemd/Makefile.am +@@ -4789,6 +4789,10 @@ systemd_cryptsetup_CFLAGS = \ $(AM_CFLAGS) \ $(LIBCRYPTSETUP_CFLAGS) @@ -11,27 +18,18 @@ systemd_cryptsetup_LDADD = \ libsystemd-label.la \ libudev-internal.la \ ---- systemd-210/Makefile.in -+++ systemd-210/Makefile.in 2014-03-13 09:19:48.950238725 +0000 -@@ -8964,7 +8964,7 @@ src/cryptsetup/systemd_cryptsetup-crypts +Index: systemd/configure.ac +=================================================================== +--- systemd.orig/configure.ac ++++ systemd/configure.ac +@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*], + -Wno-gnu-variable-sized-type-not-at-end \ + ])]) - systemd-cryptsetup$(EXEEXT): $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_DEPENDENCIES) $(EXTRA_systemd_cryptsetup_DEPENDENCIES) - @rm -f systemd-cryptsetup$(EXEEXT) -- $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDADD) $(LIBS) -+ $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDFLAGS) $(systemd_cryptsetup_LDADD) $(LIBS) - src/cryptsetup/cryptsetup-generator.$(OBJEXT): \ - src/cryptsetup/$(am__dirstamp) \ - src/cryptsetup/$(DEPDIR)/$(am__dirstamp) ---- systemd-210/configure.ac -+++ systemd-210/configure.ac 2014-03-13 13:46:24.394235954 +0000 -@@ -156,10 +156,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CF - -fdata-sections \ - -fstack-protector \ - --param=ssp-buffer-size=4]) -AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -- -flto])], +- -flto -ffat-lto-objects])], - [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) - AC_SUBST([OUR_CFLAGS], "$with_cflags $address_sanitizer_cflags") + AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], diff --git a/localfs.service b/localfs.service deleted file mode 100644 index da3facec..00000000 --- a/localfs.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Shadow /etc/init.d/boot.localfs -DefaultDependencies=no -After=local-fs.target - -[Service] -RemainAfterExit=true -ExecStart=/bin/true diff --git a/log-target-null-instead-kmsg.patch b/log-target-null-instead-kmsg.patch deleted file mode 100644 index 4e715385..00000000 --- a/log-target-null-instead-kmsg.patch +++ /dev/null @@ -1,116 +0,0 @@ ---- - src/journal/journald-kmsg.c | 16 +++++++++++++++- - src/libudev/libudev-util.c | 16 +++++++++++++++- - src/shared/log.c | 16 +++++++++++++++- - src/shared/util.c | 6 +++++- - 4 files changed, 50 insertions(+), 4 deletions(-) - -Index: systemd-210/src/journal/journald-kmsg.c -=================================================================== ---- systemd-210.orig/src/journal/journald-kmsg.c -+++ systemd-210/src/journal/journald-kmsg.c -@@ -391,12 +391,24 @@ static int dispatch_dev_kmsg(sd_event_so - return server_read_dev_kmsg(s); - } - -+static int parse_proc_cmdline_word(const char *word) { -+ if (streq(word, "systemd.log_target=null")) -+ return -115; -+ -+ return 0; -+} -+ - int server_open_dev_kmsg(Server *s) { - int r; - - assert(s); - -- s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { -+ s->dev_kmsg_fd = open("/dev/null", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ } else { -+ s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ } -+ - if (s->dev_kmsg_fd < 0) { - log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, - "Failed to open /dev/kmsg, ignoring: %m"); -Index: systemd-210/src/libudev/libudev-util.c -=================================================================== ---- systemd-210.orig/src/libudev/libudev-util.c -+++ systemd-210/src/libudev/libudev-util.c -@@ -416,6 +416,13 @@ uint64_t util_string_bloom64(const char - return bits; - } - -+static int parse_proc_cmdline_word(const char *word) { -+ if (streq(word, "systemd.log_target=null")) -+ return -115; -+ -+ return 0; -+} -+ - ssize_t print_kmsg(const char *fmt, ...) - { - _cleanup_close_ int fd = -1; -@@ -424,7 +431,12 @@ ssize_t print_kmsg(const char *fmt, ...) - ssize_t len; - ssize_t ret; - -- fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ 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; - -Index: systemd-210/src/shared/log.c -=================================================================== ---- systemd-210.orig/src/shared/log.c -+++ systemd-210/src/shared/log.c -@@ -92,12 +92,24 @@ void log_close_kmsg(void) { - kmsg_fd = -1; - } - -+static int parse_proc_cmdline_word(const char *word) { -+ if (streq(word, "systemd.log_target=null")) -+ return -115; -+ -+ return 0; -+} -+ - static int log_open_kmsg(void) { - - if (kmsg_fd >= 0) - return 0; - -- kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { -+ kmsg_fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ } else { -+ kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ } -+ - if (kmsg_fd < 0) - return -errno; - -Index: systemd-210/src/shared/util.c -=================================================================== ---- systemd-210.orig/src/shared/util.c -+++ systemd-210/src/shared/util.c -@@ -6069,7 +6069,11 @@ int parse_proc_cmdline(int (*parse_word) - - r = parse_word(word); - if (r < 0) { -- log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); -+ if (r == -115) { -+ log_error("Warning: %s set, redirecting messages to /dev/null.", word); -+ } else { -+ log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); -+ } - return r; - } - } diff --git a/macros.systemd.upstream b/macros.systemd.upstream index 323d1d48..8c2e84f6 100644 --- a/macros.systemd.upstream +++ b/macros.systemd.upstream @@ -26,7 +26,9 @@ %_udevrulesdir @udevrulesdir@ %_journalcatalogdir @catalogdir@ %_tmpfilesdir @tmpfilesdir@ +%_sysusersdir @sysusersdir@ %_sysctldir @sysctldir@ +%_binfmtdir @binfmtdir@ %systemd_requires \ Requires(post): systemd \ @@ -37,42 +39,71 @@ Requires(postun): systemd \ %systemd_post() \ if [ $1 -eq 1 ] ; then \ # Initial installation \ - @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \ + systemctl preset %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} +%systemd_user_post() %systemd_post --user --global %{?*} + %systemd_preun() \ if [ $1 -eq 0 ] ; then \ # Package removal, not upgrade \ - @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \ + systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + systemctl stop %{?*} > /dev/null 2>&1 || : \ +fi \ +%{nil} + +%systemd_user_preun() \ +if [ $1 -eq 0 ] ; then \ + # Package removal, not upgrade \ + systemctl --no-reload --user --global disable %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} %systemd_postun() \ -@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +systemctl daemon-reload >/dev/null 2>&1 || : \ %{nil} +%systemd_user_postun() %{nil} + %systemd_postun_with_restart() \ -@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +systemctl daemon-reload >/dev/null 2>&1 || : \ if [ $1 -ge 1 ] ; then \ # Package upgrade, not uninstall \ - @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ + systemctl try-restart %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} +%systemd_user_postun_with_restart() %{nil} + %udev_hwdb_update() \ -@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \ +udevadm hwdb --update >/dev/null 2>&1 || : \ %{nil} %udev_rules_update() \ -@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \ +udevadm control --reload >/dev/null 2>&1 || : \ %{nil} %journal_catalog_update() \ -@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \ +journalctl --update-catalog >/dev/null 2>&1 || : \ %{nil} %tmpfiles_create() \ -@rootbindir@/systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ +systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ +%{nil} + +%sysusers_create() \ +systemd-sysusers %{?*} >/dev/null 2>&1 || : \ +%{nil} + +%sysusers_create_inline() \ +echo %{?*} | systemd-sysusers - >/dev/null 2>&1 || : \ +%{nil} + +%sysctl_apply() \ +@rootlibexecdir@/systemd-sysctl %{?*} >/dev/null 2>&1 || : \ +%{nil} + +%binfmt_apply() \ +@rootlibexecdir@/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ %{nil} diff --git a/make-emergency.service-conflict-with-syslog.socket.patch b/make-emergency.service-conflict-with-syslog.socket.patch index 63e513cc..d5814921 100644 --- a/make-emergency.service-conflict-with-syslog.socket.patch +++ b/make-emergency.service-conflict-with-syslog.socket.patch @@ -7,16 +7,19 @@ As a workaround explicitly stop syslog.socket when entering emergency.service. Reference: bnc#852232 -Index: systemd-208/units/emergency.service.in +--- + units/emergency.service.in | 1 + + 1 file changed, 1 insertion(+) + +Index: systemd-218/units/emergency.service.in =================================================================== ---- systemd-208/units/emergency.service.in -+++ systemd-208/units/emergency.service.in -@@ -9,7 +9,7 @@ - Description=Emergency Shell - Documentation=man:sulogin(8) +--- systemd-218.orig/units/emergency.service.in ++++ systemd-218/units/emergency.service.in +@@ -11,6 +11,7 @@ Documentation=man:sulogin(8) DefaultDependencies=no --Conflicts=shutdown.target -+Conflicts=shutdown.target syslog.socket + Conflicts=shutdown.target + Conflicts=rescue.service ++Conflicts=syslog.socket Before=shutdown.target [Service] diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch deleted file mode 100644 index 4f557c54..00000000 --- a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Frederic Crozat -Date: Wed, 12 Oct 2011 15:18:29 +0200 -Subject: module-load: handle SUSE /etc/sysconfig/kernel module list - ---- - src/modules-load/modules-load.c | 27 ++++++++++++++++++++++++++- - units/systemd-modules-load.service.in | 1 + - 2 files changed, 27 insertions(+), 1 deletion(-) - ---- systemd-206_git201308300826.orig/src/modules-load/modules-load.c -+++ systemd-206_git201308300826/src/modules-load/modules-load.c -@@ -262,6 +262,9 @@ static int parse_argv(int argc, char *ar - int main(int argc, char *argv[]) { - int r, k; - struct kmod_ctx *ctx; -+#ifdef HAVE_SYSV_COMPAT -+ _cleanup_free_ char *modules_on_boot = NULL; -+#endif - - r = parse_argv(argc, argv); - if (r <= 0) -@@ -318,7 +321,31 @@ int main(int argc, char *argv[]) { - r = k; - } - } -- -+#ifdef HAVE_SYSV_COMPAT -+ log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT"); -+ if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, -+ "MODULES_LOADED_ON_BOOT", &modules_on_boot, -+ NULL)) < 0) { -+ if (r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); -+ else -+ r = EXIT_SUCCESS; -+ } else -+ r = EXIT_SUCCESS; -+ if (modules_on_boot) { -+ char **modules = strv_split(modules_on_boot,WHITESPACE); -+ char **module; -+ -+ if (modules) { -+ STRV_FOREACH(module, modules) { -+ k = load_module(ctx, *module); -+ if (k < 0) -+ r = EXIT_FAILURE; -+ } -+ } -+ strv_free(modules); -+ } -+#endif - finish: - kmod_unref(ctx); - strv_free(arg_proc_cmdline_modules); ---- systemd-206_git201308300826.orig/units/systemd-modules-load.service.in -+++ systemd-206_git201308300826/units/systemd-modules-load.service.in -@@ -13,6 +13,7 @@ Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service - Before=sysinit.target shutdown.target - ConditionCapability=CAP_SYS_MODULE -+ConditionPathExists=|/etc/sysconfig/kernel - ConditionDirectoryNotEmpty=|/lib/modules-load.d - ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d - ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch deleted file mode 100644 index 5b296a18..00000000 --- a/optionally-warn-if-nss-myhostname-is-called.patch +++ /dev/null @@ -1,102 +0,0 @@ -From: Ludwig Nussel -Date: Fri, 20 May 2011 15:38:46 +0200 -Subject: optionally warn if nss-myhostname is called - ---- - configure.ac | 11 +++++++++++ - src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++ - 2 files changed, 43 insertions(+) - ---- systemd-206_git201308300826.orig/configure.ac -+++ systemd-206_git201308300826/configure.ac -@@ -817,6 +817,17 @@ if test "x$enable_myhostname" != "xno"; - fi - AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) - -+if test "x$have_myhostname" != "xno"; then -+ AC_MSG_CHECKING([log warning messages for nss-myhostname]) -+ AC_ARG_WITH(nss-my-hostname-warning, AS_HELP_STRING([--with-nss-my-hostname-warning], [log warning to syslog when nss-myhostname is called (default=no)]),[],[with_nss_my_hostname_warning=no]) -+ AC_MSG_RESULT([$with_nss_my_hostname_warning]) -+ -+ if test x$with_nss_my_hostname_warning != xno; then -+ AC_CHECK_HEADERS([syslog.h]) -+ AC_DEFINE([LOG_NSS_MY_HOSTNAME_WARNING],[1],[whether to log warning message for nss-myhostname]) -+ fi -+fi -+ - # ------------------------------------------------------------------------------ - AC_ARG_WITH(firmware-path, - AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], ---- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c -+++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c -@@ -29,6 +29,9 @@ - #include - #include - #include -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+#include -+#endif - - #include "ifconf.h" - #include "macro.h" -@@ -47,6 +50,10 @@ - #define LOCALADDRESS_IPV6 &in6addr_loopback - #define LOOPBACK_INTERFACE "lo" - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+static void warn(const char* hn); -+#endif -+ - enum nss_status _nss_myhostname_gethostbyname4_r( - const char *name, - struct gaih_addrtuple **pat, -@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostb - return NSS_STATUS_NOTFOUND; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif - /* If this fails, n_addresses is 0. Which is fine */ - ifconf_acquire_addresses(&addresses, &n_addresses); - -@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostb - local_address_ipv4 = LOCALADDRESS_IPV4; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif - return fill_in_hostent( - canonical, additional, - af, -@@ -509,6 +522,9 @@ found: - canonical = hn; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif - return fill_in_hostent( - canonical, additional, - af, -@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostb - errnop, h_errnop, - NULL); - } -+ -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+static void warn(const char* hn) { -+ if (strstr(program_invocation_short_name, "nscd")) { -+ syslog(LOG_WARNING, -+ "Some application tried to resolve hostname \"%s\" which is not in DNS. Stop nscd to find out which one.\n", -+ hn); -+ } else { -+ syslog(LOG_WARNING, -+ "%s(%u) tried to resolve hostname \"%s\" which is not in DNS. This might be the reason for the delays you experience.\n", -+ program_invocation_short_name, -+ getpid(), -+ hn); -+ } -+} -+#endif diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index 8709dc70..4226b51c 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -1,14 +1,14 @@ --- - src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- - 1 file changed, 50 insertions(+), 2 deletions(-) + src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++- + 1 file changed, 44 insertions(+), 1 deletion(-) -Index: systemd-210/src/fstab-generator/fstab-generator.c +Index: systemd/src/fstab-generator/fstab-generator.c =================================================================== ---- systemd-210.orig/src/fstab-generator/fstab-generator.c -+++ systemd-210/src/fstab-generator/fstab-generator.c -@@ -37,6 +37,50 @@ - static const char *arg_dest = "/tmp"; - static bool arg_enabled = true; +--- systemd.orig/src/fstab-generator/fstab-generator.c ++++ systemd/src/fstab-generator/fstab-generator.c +@@ -48,6 +48,49 @@ static char *arg_usr_what = NULL; + static char *arg_usr_fstype = NULL; + static char *arg_usr_options = NULL; +static int check_crypttab(const char *what) { + _cleanup_fclose_ FILE *f = NULL; @@ -53,26 +53,15 @@ Index: systemd-210/src/fstab-generator/fstab-generator.c + return 1; +} + -+ - static int mount_find_pri(struct mntent *me, int *ret) { - char *end, *pri; - unsigned long r; -@@ -212,7 +256,7 @@ static int add_mount( - *name = NULL, *unit = NULL, *lnk = NULL, - *automount_name = NULL, *automount_unit = NULL; - _cleanup_fclose_ FILE *f = NULL; -- int r; -+ int r, c; - - assert(what); - assert(where); -@@ -288,7 +332,8 @@ static int add_mount( - return -errno; - } + static int add_swap( + const char *what, + struct mntent *me, +@@ -118,7 +161,7 @@ static int add_swap( + if (r < 0) + return r; - if (!noauto) { -+ c = check_crypttab(what); -+ if (!noauto && (c != 0)) { - if (post) { - lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); - if (!lnk) ++ if (!noauto && check_crypttab(what) != 0) { + lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET, + nofail ? ".wants/" : ".requires/", name, NULL); + if (!lnk) diff --git a/plymouth-quit-and-wait-for-emergency-service.patch b/plymouth-quit-and-wait-for-emergency-service.patch index 560f9f3f..242a05d1 100644 --- a/plymouth-quit-and-wait-for-emergency-service.patch +++ b/plymouth-quit-and-wait-for-emergency-service.patch @@ -1,16 +1,40 @@ ---- systemd-208/units/console-shell.service.m4.in -+++ systemd-208/units/console-shell.service.m4.in 2014-02-05 11:28:31.446735287 +0000 +--- + units/console-shell.service.m4.in | 2 ++ + units/emergency.service.in | 3 ++- + units/rescue.service.in | 3 ++- + 3 files changed, 6 insertions(+), 2 deletions(-) + +Index: systemd/units/console-shell.service.m4.in +=================================================================== +--- systemd.orig/units/console-shell.service.m4.in ++++ systemd/units/console-shell.service.m4.in @@ -17,6 +17,8 @@ Before=getty.target [Service] Environment=HOME=/root WorkingDirectory=/root +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait - ExecStart=-/usr/sbin/sulogin + ExecStart=-@SULOGIN@ ExecStopPost=-@SYSTEMCTL@ poweroff Type=idle ---- systemd-208/units/rescue.service.m4.in -+++ systemd-208/units/rescue.service.m4.in 2014-02-05 11:28:45.214235524 +0000 +Index: systemd/units/emergency.service.in +=================================================================== +--- systemd.orig/units/emergency.service.in ++++ systemd/units/emergency.service.in +@@ -17,7 +17,8 @@ Before=shutdown.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStartPre=-/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + Type=idle +Index: systemd/units/rescue.service.in +=================================================================== +--- systemd.orig/units/rescue.service.in ++++ systemd/units/rescue.service.in @@ -16,7 +16,8 @@ Before=shutdown.target [Service] Environment=HOME=/root @@ -18,18 +42,6 @@ -ExecStartPre=-/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' - ExecStart=-/usr/sbin/sulogin - ExecStopPost=-@SYSTEMCTL@ --fail --no-block default ---- systemd-208/units/emergency.service.in -+++ systemd-208/units/emergency.service.in 2014-02-05 11:28:51.782235282 +0000 -@@ -15,7 +15,8 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' - ExecStart=-/usr/sbin/sulogin - ExecStopPost=@SYSTEMCTL@ --fail --no-block default + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + Type=idle diff --git a/prepare-suspend-to-disk.patch b/prepare-suspend-to-disk.patch deleted file mode 100644 index 01f95f9d..00000000 --- a/prepare-suspend-to-disk.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -Naur systemd-210/units/systemd-hibernate.service.in systemd-210-mod/units/systemd-hibernate.service.in ---- systemd-210/units/systemd-hibernate.service.in 2013-08-13 22:02:52.808756274 +0200 -+++ systemd-210-mod/units/systemd-hibernate.service.in 2014-03-25 12:27:44.995995220 +0100 -@@ -11,7 +11,10 @@ - DefaultDependencies=no - Requires=sleep.target - After=sleep.target -+ConditionKernelCommandLine=resume - - [Service] - Type=oneshot -+ExecStart=@rootbindir@/systemd-sleep-grub pre - ExecStart=@rootlibexecdir@/systemd-sleep hibernate -+ExecStopPost=@rootbindir@/systemd-sleep-grub post -diff -Naur systemd-210/units/systemd-hybrid-sleep.service.in systemd-210-mod/units/systemd-hybrid-sleep.service.in ---- systemd-210/units/systemd-hybrid-sleep.service.in 2013-08-13 22:02:52.809756282 +0200 -+++ systemd-210-mod/units/systemd-hybrid-sleep.service.in 2014-03-25 12:27:56.115994902 +0100 -@@ -11,7 +11,10 @@ - DefaultDependencies=no - Requires=sleep.target - After=sleep.target -+ConditionKernelCommandLine=resume - - [Service] - Type=oneshot -+ExecStart=@rootbindir@/systemd-sleep-grub pre - ExecStart=@rootlibexecdir@/systemd-sleep hybrid-sleep -+ExecStopPost=@rootbindir@/systemd-sleep-grub post diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch deleted file mode 100644 index f1e0dfcb..00000000 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ /dev/null @@ -1,91 +0,0 @@ -From: Frederic Crozat -Date: Wed, 7 Dec 2011 15:15:07 +0000 -Subject: remain_after_exit initscript heuristic and add new LSB headers - -Add remain_after_exit heuristic for initscripts and add LSB headers -PIDFile: and X-Systemd-RemainAfterExit to control it. - -(bnc#721426) (bnc#727771) ---- - src/core/service.c | 34 ++++++++++++++++++++++++++++++++-- - src/core/service.h | 1 + - 2 files changed, 33 insertions(+), 2 deletions(-) - -Index: systemd-208/src/core/service.c -=================================================================== ---- systemd-208.orig/src/core/service.c -+++ systemd-208/src/core/service.c -@@ -135,6 +135,7 @@ static void service_init(Unit *u) { - #ifdef HAVE_SYSV_COMPAT - s->sysv_start_priority = -1; - s->sysv_start_priority_from_rcnd = -1; -+ s->sysv_remain_after_exit_heuristic = true; - #endif - s->socket_fd = -1; - s->guess_main_pid = true; -@@ -883,6 +884,34 @@ static int service_load_sysv_path(Servic - free(short_description); - short_description = d; - -+ } else if (startswith_no_case(t, "PIDFile:")) { -+ char *fn; -+ -+ state = LSB; -+ -+ fn = strstrip(t+8); -+ if (!path_is_absolute(fn)) { -+ log_warning("[%s:%u] PID file not absolute. Ignoring.", path, line); -+ continue; -+ } -+ -+ if (!(fn = strdup(fn))) { -+ r = -ENOMEM; -+ goto finish; -+ } -+ -+ free(s->pid_file); -+ s->pid_file = fn; -+ s->sysv_remain_after_exit_heuristic = false; -+ s->remain_after_exit = false; -+ } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) { -+ char *j; -+ -+ state = LSB; -+ if ((j = strstrip(t+26)) && *j) { -+ s->remain_after_exit = parse_boolean(j); -+ s->sysv_remain_after_exit_heuristic = false; -+ } - } else if (state == LSB_DESCRIPTION) { - - if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -933,7 +962,8 @@ static int service_load_sysv_path(Servic - - /* Special setting for all SysV services */ - s->type = SERVICE_FORKING; -- s->remain_after_exit = !s->pid_file; -+ if (s->sysv_remain_after_exit_heuristic) -+ s->remain_after_exit = !s->pid_file; - s->guess_main_pid = false; - s->restart = SERVICE_RESTART_NO; - s->exec_context.ignore_sigpipe = false; -@@ -2080,7 +2110,7 @@ static void service_enter_running(Servic - if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && - (s->bus_name_good || s->type != SERVICE_DBUS)) { - #ifdef HAVE_SYSV_COMPAT -- if (s->sysv_enabled && !s->pid_file) -+ if (s->sysv_enabled && !s->pid_file && s->sysv_remain_after_exit_heuristic) - s->remain_after_exit = false; - #endif - service_set_state(s, SERVICE_RUNNING); -Index: systemd-208/src/core/service.h -=================================================================== ---- systemd-208.orig/src/core/service.h -+++ systemd-208/src/core/service.h -@@ -178,6 +178,7 @@ struct Service { - bool is_sysv:1; - bool sysv_has_lsb:1; - bool sysv_enabled:1; -+ bool sysv_remain_after_exit_heuristic:1; - int sysv_start_priority_from_rcnd; - int sysv_start_priority; - diff --git a/respect-nfs-bg-option.patch b/respect-nfs-bg-option.patch index ccf7cea4..91822e07 100644 --- a/respect-nfs-bg-option.patch +++ b/respect-nfs-bg-option.patch @@ -1,19 +1,22 @@ ---- systemd-210/src/fstab-generator/fstab-generator.c 2014-02-17 15:49:21.070855641 +0100 -+++ systemd-210/src/fstab-generator/fstab-generator.c 2014-04-25 16:25:13.256106126 +0200 -@@ -255,10 +255,12 @@ - "SourcePath=%s\n", - source); +--- + src/fstab-generator/fstab-generator.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +Index: systemd-218/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-218.orig/src/fstab-generator/fstab-generator.c ++++ systemd-218/src/fstab-generator/fstab-generator.c +@@ -238,8 +238,11 @@ static int add_mount( + "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", + source); - if (post && !noauto && !nofail && !automount) -- fprintf(f, -- "Before=%s\n", -- post); +- fprintf(f, "Before=%s\n", post); + if (post && !noauto && !nofail && !automount) { -+ if (!streq(type, "nfs") || (streq(type, "nfs") && !strstr(opts, "bg"))) -+ fprintf(f, -+ "Before=%s\n", -+ post); ++ bool is_nfs = fstype != NULL && streq(fstype, "nfs"); ++ if (!is_nfs || strstr(opts, "bg") == NULL) ++ fprintf(f, "Before=%s\n", post); + } - r = add_fsck(f, what, where, type, passno); - if (r < 0) + if (passno != 0) { + r = generator_write_fsck_deps(f, arg_dest, what, where, fstype); diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index 422f23ca..132b73e1 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -3,18 +3,20 @@ Date: Mon, 29 Oct 2012 13:01:20 +0000 Subject: restore /var/run and /var/lock bind mount if they aren't symlink --- - Makefile.am | 9 +++++++++ - units/var-lock.mount | 19 +++++++++++++++++++ - units/var-run.mount | 19 +++++++++++++++++++ + Makefile.am | 9 +++++++++ + units/var-lock.mount | 19 +++++++++++++++++++ + units/var-run.mount | 19 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 units/var-lock.mount create mode 100644 units/var-run.mount ---- systemd-206_git201308300826.orig/Makefile.am -+++ systemd-206_git201308300826/Makefile.am -@@ -419,6 +419,12 @@ dist_systemunit_DATA = \ - units/system-update.target \ - units/initrd-switch-root.target +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -516,6 +516,12 @@ endif + dist_systemunit_DATA_busnames += \ + units/busnames.target +if HAVE_SYSV_COMPAT +dist_systemunit_DATA += \ @@ -25,7 +27,7 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -4379,6 +4385,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -6086,6 +6092,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service @@ -33,10 +35,12 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink + var-run.mount \ + var-lock.mount endif + SYSINIT_TARGET_WANTS += \ - systemd-update-utmp.service +Index: systemd-218/units/var-lock.mount +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/units/var-lock.mount ++++ systemd-218/units/var-lock.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# @@ -57,8 +61,10 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink +Where=/var/lock +Type=bind +Options=bind +Index: systemd-218/units/var-run.mount +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/units/var-run.mount ++++ systemd-218/units/var-run.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch deleted file mode 100644 index d0e907bb..00000000 --- a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Frederic Crozat -Date: Fri, 30 Sep 2011 12:58:17 +0200 -Subject: service: flags sysv service with detected pid as - RemainAfterExit=false - -LSB header doesn't give pidfile, so all LSB initscripts have -RemainAfterExit=false, causing daemon termination to not be reported as -such by systemd. Checking at startup if daemon is still running for -sysv initscript to disable RemainAfterExit helps a lot. -Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 ---- - src/core/service.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - ---- systemd-206_git201308300826.orig/src/core/service.c -+++ systemd-206_git201308300826/src/core/service.c -@@ -2100,8 +2100,13 @@ static void service_enter_running(Servic - cgroup_ok = cgroup_good(s); - - if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && -- (s->bus_name_good || s->type != SERVICE_DBUS)) -+ (s->bus_name_good || s->type != SERVICE_DBUS)) { -+#ifdef HAVE_SYSV_COMPAT -+ if (s->sysv_enabled && !s->pid_file) -+ s->remain_after_exit = false; -+#endif - service_set_state(s, SERVICE_RUNNING); -+ } - else if (s->remain_after_exit) - service_set_state(s, SERVICE_EXITED); - else diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index e13cb6dd..23bd0163 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -6,10 +6,8 @@ Use and set default logging console for both journald and kernel messages src/journal/journald-server.c | 5 ++ 3 files changed, 105 insertions(+) -Index: src/journal/journald-console.c -=================================================================== ---- src/journal/journald-console.c.orig -+++ src/journal/journald-console.c +--- systemd-219.orig/src/journal/journald-console.c ++++ systemd-219/src/journal/journald-console.c @@ -23,6 +23,14 @@ #include #include @@ -25,13 +23,13 @@ Index: src/journal/journald-console.c #include "fileio.h" #include "journald-server.h" -@@ -43,6 +51,74 @@ static bool prefix_timestamp(void) { +@@ -43,6 +51,76 @@ static bool prefix_timestamp(void) { return cached_printk_time; } -+#ifdef HAVE_SYSV_COMPAT +void defaul_tty_path(Server *s) +{ ++#ifdef HAVE_SYSV_COMPAT + static const char list[] = "/dev/tty10\0" "/dev/console\0"; + const char *vc; + @@ -51,10 +49,12 @@ Index: src/journal/journald-console.c + s->tty_path = strdup(vc); + break; + } ++#endif +} + +void klogconsole(Server *s) +{ ++#ifdef HAVE_SYSV_COMPAT + _cleanup_free_ char *klogconsole_params = NULL; + _cleanup_close_ int fd = -1; + const char *vc = s->tty_path; @@ -94,27 +94,29 @@ Index: src/journal/journald-console.c + num = klogconsole_params + strcspn(klogconsole_params, "0123456789"); + if (safe_atoi(num, &r) == 0) + klogctl(8, 0, r); -+} +#endif ++} + void server_forward_console( Server *s, int priority, -@@ -64,6 +140,10 @@ void server_forward_console( +@@ -64,6 +142,12 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; ++#ifdef HAVE_SYSV_COMPAT + /* Do not write security/authorization (private) messages to console */ + if ((priority & LOG_FACMASK) == LOG_AUTHPRIV) + return; ++#endif + /* First: timestamp */ if (prefix_timestamp()) { assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -101,7 +181,23 @@ void server_forward_console( +@@ -100,7 +184,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { - log_debug("Failed to open %s for logging: %m", tty); + log_debug_errno(errno, "Failed to open %s for logging: %m", tty); +#ifdef HAVE_SYSV_COMPAT + if (fd != -ENOENT && fd != -ENODEV) + return; @@ -135,23 +137,18 @@ Index: src/journal/journald-console.c } if (writev(fd, iovec, n) < 0) -Index: src/journal/journald-console.h -=================================================================== ---- src/journal/journald-console.h.orig -+++ src/journal/journald-console.h -@@ -24,3 +24,7 @@ +--- systemd-219.orig/src/journal/journald-console.h ++++ systemd-219/src/journal/journald-console.h +@@ -24,3 +24,6 @@ #include "journald-server.h" - void server_forward_console(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred); -+#ifdef HAVE_SYSV_COMPAT + void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred); ++ +void klogconsole(Server *s); +void defaul_tty_path(Server *s); -+#endif -Index: src/journal/journald-server.c -=================================================================== ---- src/journal/journald-server.c.orig -+++ src/journal/journald-server.c -@@ -1509,6 +1509,11 @@ int server_init(Server *s) { +--- systemd-219.orig/src/journal/journald-server.c ++++ systemd-219/src/journal/journald-server.c +@@ -1520,6 +1520,11 @@ int server_init(Server *s) { server_parse_config_file(s); server_parse_proc_cmdline(s); @@ -161,5 +158,5 @@ Index: src/journal/journald-server.c + klogconsole(s); + if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { - log_debug("Setting both rate limit interval and burst from %llu,%u to 0,0", - (long long unsigned) s->rate_limit_interval, + log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0", + s->rate_limit_interval, s->rate_limit_burst); diff --git a/shut-up-annoying-assertion-monotonic-clock-message.patch b/shut-up-annoying-assertion-monotonic-clock-message.patch deleted file mode 100644 index ecdf4bc0..00000000 --- a/shut-up-annoying-assertion-monotonic-clock-message.patch +++ /dev/null @@ -1,38 +0,0 @@ -Stop flooding the kernel's message ring buffer with useless -messages on dual_timestamp_is_set is failed. This is a backport -from upstream code. - ---- - src/libsystemd/sd-event/sd-event.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- systemd-210/src/libsystemd/sd-event/sd-event.c -+++ systemd-210/src/libsystemd/sd-event/sd-event.c 2014-05-02 10:01:23.366235185 +0000 -@@ -2191,9 +2191,12 @@ _public_ int sd_event_exit(sd_event *e, - _public_ int sd_event_get_now_realtime(sd_event *e, uint64_t *usec) { - assert_return(e, -EINVAL); - assert_return(usec, -EINVAL); -- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); - assert_return(!event_pid_changed(e), -ECHILD); - -+ /* If we haven't run yet, just get the actual time */ -+ if (!dual_timestamp_is_set(&e->timestamp)) -+ return -ENODATA; -+ - *usec = e->timestamp.realtime; - return 0; - } -@@ -2201,9 +2204,12 @@ _public_ int sd_event_get_now_realtime(s - _public_ int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec) { - assert_return(e, -EINVAL); - assert_return(usec, -EINVAL); -- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); - assert_return(!event_pid_changed(e), -ECHILD); - -+ /* If we haven't run yet, just get the actual time */ -+ if (!dual_timestamp_is_set(&e->timestamp)) -+ return -ENODATA; -+ - *usec = e->timestamp.monotonic; - return 0; - } diff --git a/shut-up-rpmlint-on-var-log-journal.patch b/shut-up-rpmlint-on-var-log-journal.patch index 3230a8f1..2304a184 100644 --- a/shut-up-rpmlint-on-var-log-journal.patch +++ b/shut-up-rpmlint-on-var-log-journal.patch @@ -1,6 +1,12 @@ ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am 2014-07-28 09:05:41.002735451 +0000 -@@ -3242,11 +3242,11 @@ noinst_LTLIBRARIES += \ +--- + Makefile.am | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -4209,11 +4209,11 @@ noinst_LTLIBRARIES += \ libsystemd-journal-core.la journal-install-hook: @@ -16,4 +22,4 @@ + -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ journal-uninstall-hook: - -rmdir $(DESTDIR)/var/log/journal/ + -rmdir $(DESTDIR)/var/log/journal/remote diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff new file mode 100644 index 00000000..b11ea682 --- /dev/null +++ b/suse-sysv-bootd-support.diff @@ -0,0 +1,86 @@ +From: Frederic Crozat +Date: Fri, 12 Apr 2013 16:56:26 +0200 +Subject: Revert "service: drop support for SysV scripts for the early boot" + +This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. + +[Implementation note: currently, the unit is generated, but not +activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] +--- + src/sysv-generator/sysv-generator.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +--- systemd-219.orig/src/sysv-generator/sysv-generator.c ++++ systemd-219/src/sysv-generator/sysv-generator.c +@@ -42,7 +42,8 @@ + + typedef enum RunlevelType { + RUNLEVEL_UP, +- RUNLEVEL_DOWN ++ RUNLEVEL_DOWN, ++ RUNLEVEL_SYSINIT, + } RunlevelType; + + static const struct { +@@ -50,6 +51,9 @@ static const struct { + const char *target; + const RunlevelType type; + } rcnd_table[] = { ++ /* SUSE style boot.d */ ++ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++ + /* Standard SysV runlevels for start-up */ + { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, + { "rc2.d", SPECIAL_RUNLEVEL2_TARGET, RUNLEVEL_UP }, +@@ -65,7 +69,7 @@ static const struct { + directories in this order, and we want to make sure that + sysv_start_priority is known when we first load the + unit. And that value we only know from S links. Hence +- UP must be read before DOWN */ ++ UP/SYSINIT must be read before DOWN */ + }; + + typedef struct SysvStub { +@@ -83,7 +87,7 @@ typedef struct SysvStub { + bool reload; + } SysvStub; + +-const char *arg_dest = "/tmp"; ++static const char *arg_dest = "/tmp"; + + static int add_symlink(const char *service, const char *where) { + _cleanup_free_ char *from = NULL, *to = NULL; +@@ -235,6 +239,10 @@ static bool usage_contains_reload(const + static char *sysv_translate_name(const char *name) { + char *r; + ++ if (startswith(name, "boot.")) ++ /* Drop SuSE-style boot. prefix */ ++ name += 5; ++ + r = new(char, strlen(name) + strlen(".service") + 1); + if (!r) + return NULL; +@@ -864,10 +872,10 @@ static int set_dependencies_from_rcnd(Lo + + if (de->d_name[0] == 'S') { + +- if (rcnd_table[i].type == RUNLEVEL_UP) { ++ if (rcnd_table[i].type == RUNLEVEL_UP || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT) + service->sysv_start_priority = + MAX(a*10 + b, service->sysv_start_priority); +- } + + r = set_ensure_allocated(&runlevel_services[i], NULL); + if (r < 0) +@@ -878,7 +886,8 @@ static int set_dependencies_from_rcnd(Lo + goto finish; + + } else if (de->d_name[0] == 'K' && +- (rcnd_table[i].type == RUNLEVEL_DOWN)) { ++ (rcnd_table[i].type == RUNLEVEL_DOWN || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { + + r = set_ensure_allocated(&shutdown_services, NULL); + if (r < 0) diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 9b3defb9..08247c82 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -6,14 +6,14 @@ Subject: [PATCH] sysctl: handle /boot/sysctl.conf- Add support for kernel release sysctl.conf files (for per-flavor configuration), needed by openSUSE (bnc#809420). --- - src/sysctl/sysctl.c | 8 ++++++++ - units/systemd-sysctl.service.in | 1 + - 2 files changed, 9 insertions(+) + src/sysctl/sysctl.c | 8 ++++++++ + units/systemd-sysctl.service.in | 2 ++ + 2 files changed, 10 insertions(+) -Index: systemd-207/src/sysctl/sysctl.c +Index: systemd-218/src/sysctl/sysctl.c =================================================================== ---- systemd-207.orig/src/sysctl/sysctl.c -+++ systemd-207/src/sysctl/sysctl.c +--- systemd-218.orig/src/sysctl/sysctl.c ++++ systemd-218/src/sysctl/sysctl.c @@ -26,6 +26,7 @@ #include #include @@ -22,7 +22,7 @@ Index: systemd-207/src/sysctl/sysctl.c #include "log.h" #include "strv.h" -@@ -299,6 +300,13 @@ int main(int argc, char *argv[]) { +@@ -310,6 +311,13 @@ int main(int argc, char *argv[]) { } else { _cleanup_strv_free_ char **files = NULL; char **f; @@ -36,14 +36,14 @@ Index: systemd-207/src/sysctl/sysctl.c r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); if (r < 0) { -Index: systemd-207/units/systemd-sysctl.service.in +Index: systemd-218/units/systemd-sysctl.service.in =================================================================== ---- systemd-207.orig/units/systemd-sysctl.service.in -+++ systemd-207/units/systemd-sysctl.service.in -@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys - ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d - ConditionDirectoryNotEmpty=|/etc/sysctl.d - ConditionDirectoryNotEmpty=|/run/sysctl.d +--- systemd-218.orig/units/systemd-sysctl.service.in ++++ systemd-218/units/systemd-sysctl.service.in +@@ -13,6 +13,8 @@ Conflicts=shutdown.target + After=systemd-modules-load.service + Before=sysinit.target shutdown.target + ConditionPathIsReadWrite=/proc/sys/ +ConditionPathExistsGlob=|/boot/sysctl.conf-%v +RequiresMountsFor=/boot diff --git a/systemctl-set-default-target.patch b/systemctl-set-default-target.patch index 4dd058d9..86aec7e9 100644 --- a/systemctl-set-default-target.patch +++ b/systemctl-set-default-target.patch @@ -3,12 +3,14 @@ Mention that --force is required to override an already existing default.target This solves the bug bnc#868439 --- - systemctl.xml | 4 +++- + man/systemctl.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) ---- systemd-210/man/systemctl.xml -+++ systemd-210/man/systemctl.xml 2014-03-19 12:19:53.182235657 +0000 -@@ -371,7 +371,7 @@ along with systemd; If not, see @@ -17,12 +19,12 @@ This solves the bug bnc#868439 any existing conflicting symlinks. When used with halt, -@@ -1036,6 +1036,8 @@ kobject-uevent 1 systemd-udevd-kernel.so - - Set the default target to boot into. Command links - default.target to the given unit. +@@ -1215,6 +1215,8 @@ kobject-uevent 1 systemd-udevd-kernel.so + Return the default target to boot into. This returns + the target unit name default.target + is aliased (symlinked) to. + If combined with , override + an already existing symlink for the default target. - + diff --git a/systemd-210.tar.xz b/systemd-210.tar.xz deleted file mode 100644 index dd2041d8..00000000 --- a/systemd-210.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2b3ddf9bf82f05cc3079650e86ae05b558381fd034cf1b03a592bcadd1610c4 -size 2620924 diff --git a/systemd-219.tar.xz b/systemd-219.tar.xz new file mode 100644 index 00000000..d90808ee --- /dev/null +++ b/systemd-219.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c57113454e37c040d0cb481bd960ae7cf3a3fe0a231ff4945259bc74503f2d9 +size 3938228 diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch index c1c06ba5..8eb7f440 100644 --- a/systemd-add-user-keep.patch +++ b/systemd-add-user-keep.patch @@ -1,25 +1,27 @@ -diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210.mod/man/tmpfiles.d.xml ---- systemd-210/man/tmpfiles.d.xml 2014-12-18 09:40:29.403629407 +0100 -+++ systemd-210.mod/man/tmpfiles.d.xml 2014-12-18 10:34:06.274130934 +0100 -@@ -435,8 +435,12 @@ - f, F, - and w may be used to - specify a short string that is written to the -- file, suffixed by a newline. Ignored for all -- other lines. -+ file, suffixed by a newline. -+ For x, X -+ a comma separated list of usernames. If given, -+ only paths belonging to these users will be -+ excluded during directory cleanup. -+ Ignored for all other lines. - - - -diff -Naur systemd-210/src/tmpfiles/tmpfiles.c systemd-210.mod/src/tmpfiles/tmpfiles.c ---- systemd-210/src/tmpfiles/tmpfiles.c 2014-12-18 09:40:29.342629177 +0100 -+++ systemd-210.mod/src/tmpfiles/tmpfiles.c 2014-12-18 11:58:16.686576974 +0100 -@@ -263,6 +263,7 @@ +--- + man/tmpfiles.d.xml | 3 +++ + src/tmpfiles/tmpfiles.c | 48 ++++++++++++++++++++++++++++++++++++++++-------- + 2 files changed, 43 insertions(+), 8 deletions(-) + +Index: systemd/man/tmpfiles.d.xml +=================================================================== +--- systemd.orig/man/tmpfiles.d.xml ++++ systemd/man/tmpfiles.d.xml +@@ -489,6 +489,9 @@ + f, F, and + w may be used to specify a short string that + is written to the file, suffixed by a newline. For ++ x, X, a comma separated list of ++ usernames. If given, only paths belonging to these users will be excluded ++ during directory cleanup. Ignored for all other lines. For + C, specifies the source file or + directory. For t determines extended + attributes to be set. For a determines +Index: systemd/src/tmpfiles/tmpfiles.c +=================================================================== +--- systemd.orig/src/tmpfiles/tmpfiles.c ++++ systemd/src/tmpfiles/tmpfiles.c +@@ -345,6 +345,7 @@ static int dir_cleanup( struct timespec times[2]; bool deleted = false; int r = 0; @@ -27,52 +29,57 @@ diff -Naur systemd-210/src/tmpfiles/tmpfiles.c systemd-210.mod/src/tmpfiles/tmpf while ((dent = readdir(d))) { struct stat s; -@@ -306,11 +307,43 @@ +@@ -395,14 +396,45 @@ static int dir_cleanup( } /* Is there an item configured for this path? */ -- if (hashmap_get(items, sub_path)) +- if (hashmap_get(items, sub_path)) { +- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); - continue; +- } - -- if (find_glob(globs, sub_path)) +- if (find_glob(globs, sub_path)) { +- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); - continue; ++ bool found_glob = false; + found = hashmap_get(items, sub_path); -+ -+ if (!found) -+ found = find_glob(globs, sub_path); -+ -+ if (found) { -+ /* evaluate username arguments in ignore statements */ -+ if (found->type == IGNORE_PATH || found->type == IGNORE_DIRECTORY_PATH) { -+ if (!found->argument) -+ continue; -+ else { -+ struct passwd *pw; -+ char *userfound = NULL, *args = strdup(found->argument); -+ bool match = false; -+ int uid = -1; -+ -+ while ((userfound = strsep(&args, ","))) { -+ pw = getpwnam(userfound); -+ -+ if (!pw) -+ log_error("Unknown user '%s' in ignore statement.", userfound); -+ else { -+ uid = pw->pw_uid; -+ if (s.st_uid == uid) { -+ match = true; -+ break; -+ } -+ } -+ } -+ if (match) { -+ found = NULL; -+ continue; -+ } -+ } -+ } else -+ continue; ++ if (!found) { ++ found_glob = true; ++ found = find_glob(globs, sub_path); + } ++ if (found) { ++ struct passwd *pw; ++ char *userfound = NULL, *args; ++ bool match = false; ++ uid_t uid = -1; ++ ++ /* evaluate username arguments in ignore statements */ ++ if ((found->type != IGNORE_PATH && found->type != IGNORE_DIRECTORY_PATH) || ++ !found->argument) { ++ if (found_glob) ++ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); ++ else ++ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); ++ continue; ++ } ++ args = strdup(found->argument); ++ assert_se(args != NULL); ++ while ((userfound = strsep(&args, ",")) != NULL) { ++ pw = getpwnam(userfound); ++ if (pw == NULL) { ++ log_error("Unknown user '%s' in ignore statement.", userfound); ++ continue; ++ } ++ uid = pw->pw_uid; ++ if (s.st_uid == uid) { ++ match = true; ++ break; ++ } ++ } ++ if (match) { ++ found = NULL; ++ continue; ++ } + } if (S_ISDIR(s.st_mode)) { - diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch index cede24c9..89c83e42 100644 --- a/systemd-dbus-system-bus-address.patch +++ b/systemd-dbus-system-bus-address.patch @@ -1,18 +1,14 @@ ---- systemd-210/src/shared/def.h -+++ systemd-210/src/shared/def.h 2014-03-12 13:11:06.502235254 +0000 -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS ---- systemd-210/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-210/src/libsystemd/sd-bus/sd-bus.c 2014-03-12 14:31:09.966736492 +0000 -@@ -794,8 +794,8 @@ static int parse_container_unix_address( - machine = NULL; +--- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/shared/def.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +Index: systemd/src/libsystemd/sd-bus/sd-bus.c +=================================================================== +--- systemd.orig/src/libsystemd/sd-bus/sd-bus.c ++++ systemd/src/libsystemd/sd-bus/sd-bus.c +@@ -809,8 +809,8 @@ static int parse_container_unix_address( + b->nspid = 0; b->sockaddr.un.sun_family = AF_UNIX; - strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); @@ -22,3 +18,16 @@ return 0; } +Index: systemd/src/shared/def.h +=================================================================== +--- systemd.orig/src/shared/def.h ++++ systemd/src/shared/def.h +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS diff --git a/systemd-journald.init b/systemd-journald.init deleted file mode 100644 index 0b8d5081..00000000 --- a/systemd-journald.init +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# -# Copyright (c) 2001-2002 SuSE Linux AG, Nuernberg, Germany. -# All rights reserved. -# -# /etc/init.d/systemd-journald -# -### BEGIN INIT INFO -# Provides: syslog -# Required-Start: $null -# Required-Stop: $null -# Default-Start: 2 3 5 -# Default-Stop: -# Short-Description: compat wrapper for journald -# Description: compat wrapper for journald -### END INIT INFO - -. /etc/rc.status - -rc_reset - -case "$1" in - start|stop|restart) - rc_failed 3 - rc_status -v - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac - -rc_exit diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index def95a7d..a9e12af8 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -1,3 +1,4 @@ +addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot\.8.*") @@ -16,6 +17,7 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") +addFilter("nss-mymachines.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") diff --git a/systemd-mini.changes b/systemd-mini.changes index 78b33870..7308f33f 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,9 +1,569 @@ +------------------------------------------------------------------- +Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com + +- mark more subpackages as !bootstrap for systemd-mini usage. + +------------------------------------------------------------------- +Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org + +- spec : remove --with-firmware-path, firmware loader was removed in v217 +- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) +- spec: Do not enable systemd-readahead-collect.service and +systemd-readahead-replay.service as these do not exist anymore. +- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch + Yast was fixed to write all timezone changes exactly how timedated expects + things to be done. +- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg + package handles the migration from /etc/HOSTNAME to /etc/hostname + and owns both files. +-spec: remove boot.udev and systemd-journald.init as they currently + serve no purpose. +- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we + are in sysvcompat-only codepath, also remove the code targetting other + distributions, never compiled as the TARGET_$DISTRO macros are never defined. +- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT +- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards +- insserv-generator.patch: Only build when sysvcompat is enabled +- vhangup-on-all-consoles.patch add a comment indicating this is a workaround + for a kernel bug. +- spec: Add option to allow disabling sysvinit compat at build time. +- spec: Add option to enable resolved at build time. +- spec: Remove all %ifs for !factory products, current systemd releases can + neither be built nor installed in older products without upgrading + several components of the base system. + (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) +- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when + those init scripts still existed. (dummy localfs.service source: gone) +- systemd-sleep-grub: moved to the grub2 package where it belongs as a + suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) +- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds + config.h everywhere in the preprocessor cmdline. + +------------------------------------------------------------------- +Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 219 +* systemd units can now be "unsupported" (like, for example, + .device in a containers), similar to the "skipped" state in + SUSE's prior sysvinit scripts. +* tmpfiles gained the 'v' type for creating btrfs subvolumes. +* tmpfiles gained the 'a' type for setting ACLs. +* systemd-nspawn gained new switches: --ephemeral, --template +* The /var/lib/containers location is deprecated and replaced by + /var/lib/machines. +* machinectl gained the copy-from and copy-to commands. +* machinectl now knows a "bind" command (for use with nspawn) +* new "systemd-importd" daemon to download container images and run + them as nspawn containers. +* networkd collects LLDP network announcements, if available, and + so shown in networkctl. +* The fallback terminal type was changed from "vt102" to "vt220", + allowing PgUp/PgDn keys to work. +* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, + useful should the regular shutdown hang. +* Removing storage will cause systemd to unmount the associated + mountpoints so that they don't linger around. + +------------------------------------------------------------------- +Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de + +- Add suse-sysv-bootd-support.diff (reinstate old + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) + +------------------------------------------------------------------- +Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de + +- Update to systemd v218-1050-g38ab096 +- Remove patches + use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) +- Reinstate and improve (remove huge indents from) + tty-ask-password-agent-on-console.patch, + 0014-journald-with-journaling-FS.patch, rootsymlink_generator. + +------------------------------------------------------------------- +Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com + +- disable systemd-resolved for now as it interacts not well with + our methods and security has concerns regarding spoofing. bsc#917781 + ------------------------------------------------------------------- Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - Add patch kbd-model-map.patch to add missed keyboard layouts which are offered by YaST2 (bsc#910643 and boo#897803) +------------------------------------------------------------------- +Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 218 +* New utilities: systemd-timesyncd (SNTP client), + systemd-resolved, systemd-networkd, networkctl, + systemd-sysusers +* machinectl gained a "poweroff" command for clean container shutdown +* The udev hwdb now contains DPI information for mice. +* Userspace firmware loading support has been removed and + the minimum supported kernel version is thus bumped to 3.7. +- Remove patches: + G=gone locally, is upstream; + D=dropped: no longer needed; + N=no longer applies to source nor is it deemed needed; + K=killed: no longer applicable and too complex to resolve: + ---- + G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch + K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch + K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch + K handle-SYSTEMCTL_OPTIONS-environment-variable.patch + K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch + K log-target-null-instead-kmsg.patch + K tty-ask-password-agent-on-console.patch + K 513-nspawn-veth.patch + K 1087-infinit-timeout-for-kmod-loaded-modules.patch + D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + D avoid-leaking-socket-descriptors.patch + D 0001-make-fortify-happy-with-ppoll.patch + N fix-owner-of-var-log-btmp.patch + N disable-nss-myhostname-warning-bnc-783841.patch + N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch + N 0001-make-209-working-on-older-dist.patch + N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch + N tmpfiles-do-not-clean-for-mandb-index-files.patch + G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc + G optionally-warn-if-nss-myhostname-is-called.patch + G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch + G 0004-getty-generator-properly-escape-instance-names.patch + G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch + G 0008-Reset-signal-mask-on-re-exec-to-init.patch + G 0001-login-fix-pos-array-allocation.patch + G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch + G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + G 0005-Replace-var-run-with-run-in-remaining-places.patch + G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch + G 0007-README-document-that-var-run-must-be-a-symlink-run.patch + G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch + G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch + G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + G 0001-Fix-systemd-stdio-bridge-symlink.patch + G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + G 0004-man-document-missing-options-of-systemd-run.patch + G 0005-systemd-run-add-some-extra-safety-checks.patch + G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + G 0007-journal-forget-file-after-encountering-an-error.patch + G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + G 0010-man-update-link-to-LSB.patch + G 0011-man-systemd-bootchart-fix-spacing-in-command.patch + G 0012-man-add-missing-comma.patch + G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch + G 0002-manager-flush-memory-stream-before-using-the-buffer.patch + G 0003-busname-don-t-drop-service-from-the-result-string.patch + G 0004-fix-off-by-one-error-in-array-index-assertion.patch + G 0005-logind-fix-policykit-checks.patch + G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch + G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch + G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch + G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch + G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch + G 0007-networkd-fix-typo.patch + G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch + G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch + G 0012-journald-remove-stray-reset-of-error-return-value.patch + G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch + G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch + G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch + G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch + G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch + G 0005-sd-daemon-fix-incorrect-variable-access.patch + G 0006-sd-event-initialization-perturbation-value-right-bef.patch + G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch + G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch + G 0001-journal-fix-export-of-messages-containing-newlines.patch + G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + G 0003-tty-ask-password-agent-return-negative-errno.patch + G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + G 0005-systemd-python-fix-failing-assert.patch + G 0007-dbus-suppress-duplicate-and-misleading-messages.patch + G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch + G 0001-bash-completion-fix-__get_startable_units.patch + G 0002-sysctl-replaces-some-slashes-with-dots.patch + G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch + G 0004-implement-a-union-to-pad-out-file_handle.patch + G shut-up-annoying-assertion-monotonic-clock-message.patch + G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch + G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch + G 0003-analyze-fix-plot-with-bad-y-size.patch + G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch + G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch + G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch + G 0002-backlight-do-nothing-if-max_brightness-is-0.patch + G 0003-backlight-unify-error-messages.patch + G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch + G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch + G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch + G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch + G 0001-core-close-socket-fds-asynchronously.patch + G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch + G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch + G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch + G 0002-logind-fix-printf-format.patch + G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch + G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch + G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch + G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch + G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch + G 0008-man-update-journald-rate-limit-defaults.patch + G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch + G 0010-logind-allow-suspending-if-there-are-no-displays.patch + G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch + G 0002-man-note-that-entire-sections-can-now-be-ignored.patch + G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch + G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch + G 0006-login-add-mir-to-the-list-of-session-types.patch + G 0007-logind-fix-Display-property-of-user-objects.patch + G 0001-hwdb-update.patch + G 0002-hwdb-update.patch + G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch + G 0004-hwdb-update.patch + G 0005-hwdb-update.patch + G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch + G 0002-journal-properly-detect-language-specified-in-line.patch + G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch + G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch + G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch + G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch + G 0002-nspawn-restore-journal-directory-is-empty-check.patch + G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + G 0004-socket-properly-handle-if-our-service-vanished-durin.patch + G 0001-Do-not-unescape-unit-names-in-Install-section.patch + G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch + G 0001-virt-rework-container-detection-logic.patch + G 0002-fsck-include-device-name-in-the-message-about-missin.patch + G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch + G 0004-util-ignore_file-should-not-allow-files-ending-with.patch + G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch + G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch + G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch + G 0001-hwdb-fix-case-sensitive-match.patch + G 0001-sd-event-restore-correct-timeout-behaviour.patch + G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch + G 0001-umount-modernizations.patch + G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch + G 0003-core-allow-transient-mount-units.patch + G 0004-systemd-detect-virt-only-discover-Xen-domU.patch + G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch + G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch + G 0001-core-fix-invalid-free-in-killall.patch + G 0003-install-fix-invalid-free-in-unit_file_mask.patch + G 0001-systemd-detect-virt-detect-s390-virtualization.patch + G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch + G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch + G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch + G 0005-po-add-Greek-translation.patch + G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0007-po-add-German-translation.patch + G 0009-core-clean-up-signal-reset-logic-when-reexec.patch + G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch + G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch + G 0012-core-transaction-avoid-misleading-error-message-when.patch + G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch + G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch + G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch + G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch + G 0005-man-fix-path-in-crypttab-5.patch + G 0001-units-order-network-online.target-after-network.targ.patch + G 0001-core-use-correct-format-string-for-UIDs.patch + G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch + G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch + G 0002-journald-make-MaxFileSec-really-default-to-1month.patch + G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch + G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch + G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch + G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch + G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch + G 0001-parse_uid-return-ENXIO-for-1-uids.patch + G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch + G 0003-localed-consider-an-unset-model-as-a-wildcard.patch + G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch + G 0005-bus-close-a-bus-that-failed-to-connect.patch + G 0006-hwdb-update.patch + G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-architecture-Add-tilegx.patch + G 0002-architecture-Add-cris.patch + G 0003-arch-add-crisv32-to-uname-check.patch + G 0004-architecture-remove-cris-from-uname-list.patch + G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch + G 0002-namespace-fix-uninitialized-memory-access.patch + G 0001-machine-don-t-return-uninitialized-variable.patch + G 0002-vconsole-setup-run-setfont-before-loadkeys.patch + G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch + G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch + G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch + G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch + G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch + G 0007-service-flush-status-text-and-errno-values-each-time.patch + G 0001-journal-compress-return-early-in-uncompress_startswi.patch + G 0002-journal-compress-improve-xz-compression-performance.patch + G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch + G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch + G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch + G 0001-event-pull-in-sd-event.h-from-event-util.h.patch + G 0002-util-fix-has-cc-check-and-add-test.patch + G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch + G 0004-fileio-quote-more-shell-characters-in-envfiles.patch + G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch + G 0002-units-serial-getty-.service-use-the-default-RestartS.patch + G 0001-po-add-Ukrainian-translation.patch + G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch + G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch + G 0001-detect-virt-Fix-Xen-domU-discovery.patch + G 0002-Be-more-verbose-when-bind-or-listen-fails.patch + G 0003-Add-quotes-to-warning-message.patch + G 0004-systemd-return-the-first-error-from-manager_startup.patch + G 0001-bash-completion-p-option-for-journalctl.patch + G 0002-journalctl-man-allow-only-between-terms.patch + G 0003-systemd-use-pager-for-test-and-help.patch + G 0001-bus-proxyd-fix-incorrect-comparison.patch + G 0002-shell-completion-prevent-mangling-unit-names.patch + G 0003-Always-check-asprintf-return-code.patch + G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch + G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch + G 0006-parse_boolean-require-exact-matches.patch + G 0007-drop_duplicates-copy-full-BindMount-struct.patch + G 0008-shell-completion-prevent-mangling-unit-names-bash.patch + G 0009-journald-always-add-syslog-facility-for-messages-com.patch + G 0001-sysv-order-initscripts-which-provide-network-before-.patch + G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch + G 0003-keymap-Annotate-all-micmute-workarounds.patch + G 0007-hwdb-update.patch + G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch + G 0002-switch-root-umount-the-old-root-correctly.patch + G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch + G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch + G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch + G 0006-login-share-VT-signal-handler-between-sessions.patch + G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch + G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch + G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch + G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch + G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch + G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch + G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch + G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch + G 0003-keymap-Fix-HP-Pavillon-DV7.patch + G 0004-hwdb-update-format-description-and-document-reloadin.patch + G 0008-hwdb-update.patch + G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch + G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch + G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch + G 0001-login-fix-memory-leak-on-DropController.patch + G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch + G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch + G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch + G 0001-nspawn-fix-network-interface.patch + G 0001-completion-filter-templates-from-restartable-units.patch + G 0002-systemd-fix-error-message.patch + G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch + G 0004-config-parser-fix-mem-leak.patch + G 0005-login-fix-mem-leak.patch + G 0001-login-simplify-controller-handling.patch + G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch + G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0009-hwdb-update.patch + G 0001-systemctl-allow-to-change-the-default-target-without.patch + G 0001-activate-fix-fd-leak-in-do_accept.patch + G 0002-analyze-avoid-a-null-dereference.patch + G 0003-analyze-fix-mem-leak.patch + G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch + G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch + G 0006-bus-unref-buscreds-on-failure.patch + G 0007-core-fix-a-potential-mem-leak.patch + G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch + G 0009-journal-do-not-leak-mmaps-on-OOM.patch + G 0010-manager-use-correct-cleanup-function.patch + G 0001-core-fix-resource-leak-in-manager_environment_add.patch + G 0002-util-remove-a-unnecessary-check.patch + G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch + G 0004-shared-conf-parser.patch + G 0005-logind-fix-typo.patch + G 0006-systemctl-fix-resource-leak-CID-1237747.patch + G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch + G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch + G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch + G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch + G 0003-mount-order-options-before-other-arguments-to-mount.patch + G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch + G 0005-shared-label.h-add-missing-stdio.h-include.patch + G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch + G 0001-login-pause-devices-before-acknowledging-VT-switches.patch + G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch + G 0001-socket-introduce-SELinuxContextFromNet-option.patch + G 0002-util-avoid-non-portable-__WORDSIZE.patch + G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch + G 0002-bus-remove-unused-check.patch + G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch + G 0001-logind-add-support-for-Triton2-Power-Button.patch + G 0002-logind-add-support-for-TPS65217-Power-Button.patch + G 0001-shutdownd-clean-up-initialization-of-struct.patch + G 0003-bootchart-parse-userinput-with-safe_atoi.patch + G 0004-bootchart-check-return-of-strftime.patch + G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch + G 0001-journalctl-do-not-output-reboot-markers-when-running.patch + G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch + G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch + G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch + G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch + G 0003-fileio-label-return-error-when-writing-fails.patch + G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch + G 0004-sd-event-check-the-value-of-received-signal.patch + G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch + G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch + G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch + G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch + G 0003-sd-bus-check-return-value-of-vasprintf.patch + G 0004-core-map-the-rescue-argument-to-rescue.target.patch + G 0005-util-avoid-double-close-of-fd.patch + G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch + G 0001-tmpfiles-compare-return-against-correct-errno.patch + G 0001-shell-completion-fix-completion-of-inactive-units.patch + G 0002-shell-completion-propose-templates-for-disable-re-en.patch + G 0003-man-we-don-t-have-Wanted-dependency.patch + G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch + G 0001-systemd-continue-switch-root-even-if-umount-fails.patch + G 0002-systemd-try-harder-to-bind-to-notify-socket.patch + G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch + G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch + G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch + G 0004-journal-do-server_vacuum-for-sigusr1.patch + G 0005-cryptsetup-fix-an-OOM-check.patch + G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch + G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch + G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch + G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch + G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch + G 0005-journalctl-correct-help-text-for-until.patch + G 0006-calendarspec-fix-typo-in-annually.patch + G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch + G 0008-util-introduce-sethostname_idempotent.patch + G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch + G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch + G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch + G 0012-manager-do-not-print-anything-while-passwords-are-be.patch + G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch + G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch + G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch + G 0002-snapshot-return-error-when-snapshot-exists.patch + G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch + G 0004-Raise-level-of-Found-dependency.-lines.patch + G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch + G 0006-journald-fix-minor-memory-leak.patch + G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch + G 0008-journald-fix-memory-leak-on-error-path.patch + G 0009-units-make-systemd-journald.service-Type-notify.patch + G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch + G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch + G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch + G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch + G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch + G 0001-systemctl-let-list-units-unit-files-honour-type.patch + G 0002-systemctl-obey-state-in-list-unit-files.patch + G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch + G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch + G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch + G 0001-selinux-access-fix-broken-ternary-operator.patch + G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch + G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch + G 0004-core-fix-transaction-destructiveness-check-once-more.patch + G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch + G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch + G 1009-cdrom_id-use-the-old-MMC-fallback.patch + G 1010-udev-increase-result-size-for-programs.patch + G 1014-udev-update-net_id-comments.patch + G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch + G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch + G 1017-udev-serialize-synchronize-block-device-event-handli.patch + G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch + G 1019-udev-avoid-use-of-uninitialized-err.patch + G 1020-udev-keyboard-also-hook-into-change-events.patch + G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch + G 1024-udev-always-close-lock-file-descriptor.patch + G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch + G 1026-udevd-inotify-modernizations.patch + G 1027-udev-synthesize-change-events-for-partitions-when-to.patch + G 1028-udev-link-config-fix-mem-leak.patch + G 1029-udev-try-first-re-reading-the-partition-table.patch + G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch + G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch + G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch + G 1033-udev-really-exclude-device-mapper-from-block-device.patch + G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch + G 1038-udev-fix-invalid-free-in-enable_name_policy.patch + G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch + G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch + G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch + G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch + G 1044-rules-update-qemu-hid-rules.patch + G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch + G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch + G 1048-udev-net_setup_link-add-a-bit-more-logging.patch + G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch + G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch + G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch + G 1056-udevd-add-event-timeout-commandline-option.patch + G 1057-udev-unify-event-timeout-handling.patch + G 1058-udev-unify-event-timeout-handling.patch + G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch + G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch + G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch + G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch + G 1065-udev-bump-event-timeout-to-60-seconds.patch + G 1067-udev-always-resolve-correctly-database-names-on-chan.patch + G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch + G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch + G 1070-rules-net-setup-link-remove-stray-linebreak.patch + G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch + G 1072-udev-netif_rename-don-t-log-to-kmsg.patch + G 1073-udev-drop-print_kmsg.patch + G 1074-udev-fix-copy-paste-error-in-log-message.patch + G 1075-udev-timeout-increase-timeout.patch + G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1078-udev-remove-userspace-firmware-loading-support.patch + G 1079-udev-remove-userspace-firmware-loading-support.patch + G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch + G 1081-udevd-check-return-of-various-functions.patch + G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch + G 1083-udev-node-warn-if-chmod-chown-fails.patch + G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch + G 1085-udev-fix-typos.patch + G 1086-udevd-don-t-fail-if-run-udev-exists.patch + G 1089-fix-cgroup-device-controller.patch + G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + G 1091-udev-path_id-update-comments.patch + G 1092-libudev-do-not-accept-invalid-log-levels.patch + G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch + G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch + G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 015e1e0c..599ca3cd 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,8 +23,9 @@ %define udevpkgname udev-mini %define udev_major 1 %bcond_without bash_completion -%bcond_without compat_libs %bcond_with networkd +%bcond_without sysvcompat +%bcond_with resolved %bcond_with python %bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 @@ -45,7 +46,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 210 +Version: 219 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -56,112 +57,69 @@ Provides: %{real} = %{version}-%{release} BuildRequires: acl BuildRequires: audit-devel -%if %{with compat_libs} -# See gold_archs in binutils.spec -%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc -BuildRequires: binutils-gold -%endif -%endif -BuildRequires: config(suse-module-tools) -%if ! 0%{?bootstrap} -BuildRequires: docbook-xsl-stylesheets -%endif +BuildRequires: autoconf +BuildRequires: automake BuildRequires: fdupes -%if ! 0%{?bootstrap} -BuildRequires: gobject-introspection-devel -%endif BuildRequires: gperf -%if ! 0%{?bootstrap} BuildRequires: gtk-doc -%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel -BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool -%if ! 0%{?bootstrap} -BuildRequires: libusb-devel -BuildRequires: libxslt-tools -%endif BuildRequires: pam-devel -%if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros -%endif -%if 0%{?suse_version} <= 1315 -BuildRequires: tcpd-devel -%endif BuildRequires: xz -BuildRequires: pkgconfig(blkid) >= 2.20 -%if ! 0%{?bootstrap} -BuildRequires: libgcrypt-devel -%if %{with python} -BuildRequires: python -%endif -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -%endif -%if 0%{?suse_version} <= 1310 -BuildRequires: pkgconfig(libkmod) >= 14 -%else +BuildRequires: config(suse-module-tools) +BuildRequires: pkgconfig(blkid) >= 2.24 BuildRequires: pkgconfig(libkmod) >= 15 -%endif BuildRequires: pkgconfig(liblzma) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libmicrohttpd) -%endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 -%endif -%if 0%{?suse_version} >= 1315 +BuildRequires: pkgconfig(mount) >= 2.20 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif -%else -%if 0%{?suse_version} >= 1310 -%ifarch %ix86 x86_64 x32 %arm -BuildRequires: pkgconfig(libseccomp) -%endif -%endif -%endif -%if ! 0%{?bootstrap} -BuildRequires: libapparmor-devel -%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -%if 0%{?suse_version} > 1310 Conflicts: sysvinit -%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else +BuildRequires: docbook-xsl-stylesheets +BuildRequires: gobject-introspection-devel +BuildRequires: gtk-doc +BuildRequires: libgcrypt-devel +BuildRequires: libusb-devel +BuildRequires: libxslt-tools +%if %{with python} +BuildRequires: python +%endif +BuildRequires: libapparmor-devel +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 +BuildRequires: pkgconfig(libmicrohttpd) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd -%if 0%{?suse_version} <= 1310 -Requires: kmod >= 14 -%else Requires: kmod >= 15 -%endif Requires: netcfg Requires: pam-config >= 0.79-5 +BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.21 +Requires: util-linux >= 2.25 Requires(post): coreutils Requires(post): findutils -%endif -%if ! 0%{?bootstrap} Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent @@ -173,47 +131,31 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} -Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz + +#Git-Clone: git://anongit.freedesktop.org/systemd/systemd +Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif -Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 -Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source1060: boot.udev Source1063: udev-generate-persistent-rule.sh -Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs -# -# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r -Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch -# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called -Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch -Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch -Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch -Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch -Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch -Patch18: fix-owner-of-var-log-btmp.patch -# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file -Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -221,14 +163,11 @@ Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch -# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable -Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts -Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file @@ -241,18 +180,10 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) -Patch23: disable-nss-myhostname-warning-bnc-783841.patch -# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) -Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin -Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian -Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -261,126 +192,8 @@ Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) -Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch -# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com -Patch117: 0001-make-209-working-on-older-dist.patch -# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com -Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch121: 0001-login-fix-pos-array-allocation.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch137: 0004-man-document-missing-options-of-systemd-run.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch140: 0007-journal-forget-file-after-encountering-an-error.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch143: 0010-man-update-link-to-LSB.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch145: 0012-man-add-missing-comma.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch151: 0005-logind-fix-policykit-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch158: 0007-networkd-fix-typo.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -389,8 +202,6 @@ Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch -Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com @@ -399,8 +210,6 @@ Patch183: 0001-add-network-device-after-NFS-mount-units.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch -# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) -Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager @@ -413,652 +222,33 @@ Patch191: systemd-dbus-system-bus-address.patch Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/14 -Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -# PATCH-FIX-SUSE Do not clean the data base files of the manual pages -Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch199: 0001-bash-completion-fix-__get_startable_units.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch -# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. -Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch -# PATCH-FIX-UPSTREAM Fix uninitialized memory -Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch -# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) -Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch216: 0003-backlight-unify-error-messages.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch -# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) -Patch219: log-target-null-instead-kmsg.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch222: 0001-core-close-socket-fds-asynchronously.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch226: 0002-logind-fix-printf-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch232: 0008-man-update-journald-rate-limit-defaults.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch245: 0007-logind-fix-Display-property-of-user-objects.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch246: 0001-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch247: 0002-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch249: 0004-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch250: 0005-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch252: 0002-journal-properly-detect-language-specified-in-line.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch262: 0001-virt-rework-container-detection-logic.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch -# PATCH-FIX-UPSTREAM added at 2014/06/05 -Patch269: 0001-hwdb-fix-case-sensitive-match.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch272: 0001-umount-modernizations.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch274: 0003-core-allow-transient-mount-units.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU -Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch278: 0001-core-fix-invalid-free-in-killall.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch -# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) -Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch -# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available -Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch284: 0005-po-add-Greek-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch286: 0007-po-add-German-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch295: 0005-man-fix-path-in-crypttab-5.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch296: 0001-units-order-network-online.target-after-network.targ.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch297: 0001-core-use-correct-format-string-for-UIDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch312: 0006-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch314: 0001-architecture-Add-tilegx.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch315: 0002-architecture-Add-cris.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch316: 0003-arch-add-crisv32-to-uname-check.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch317: 0004-architecture-remove-cris-from-uname-list.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch319: 0002-namespace-fix-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch320: 0001-machine-don-t-return-uninitialized-variable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch330: 0002-journal-compress-improve-xz-compression-performance.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/10 -Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch335: 0002-util-fix-has-cc-check-and-add-test.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch341: 0001-po-add-Ukrainian-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch347: 0003-Add-quotes-to-warning-message.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch349: 0001-bash-completion-p-option-for-journalctl.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch350: 0002-journalctl-man-allow-only-between-terms.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch355: 0003-Always-check-asprintf-return-code.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch358: 0006-parse_boolean-require-exact-matches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch -# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console Patch362: tty-ask-password-agent-on-console.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch -# PATCH-FIX-UPSTREAM added at 2014/08/01 -Patch367: 0007-hwdb-update.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch370: 0002-switch-root-umount-the-old-root-correctly.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch385: 0008-hwdb-update.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch390: 0001-login-fix-memory-leak-on-DropController.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch -# PATCH-FIX-UPSTREAM added at 2014/08/29 -Patch394: 0001-nspawn-fix-network-interface.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch395: 0001-completion-filter-templates-from-restartable-units.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch396: 0002-systemd-fix-error-message.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch398: 0004-config-parser-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch399: 0005-login-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/02 -Patch400: 0001-login-simplify-controller-handling.patch -# PATCH-FIX-UPSTREAM added at 2014/09/05 -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 -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch416: 0002-util-remove-a-unnecessary-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch418: 0004-shared-conf-parser.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch419: 0005-logind-fix-typo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch -# PATCH-FIX-UPSTREAM added at 2014/09/16 -Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary -Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved -Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) -Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch436: 0002-bus-remove-unused-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/26 -Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch442: 0004-bootchart-check-return-of-strftime.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch450: 0003-fileio-label-return-error-when-writing-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch452: 0004-sd-event-check-the-value-of-received-signal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch459: 0005-util-avoid-double-close-of-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/10/13 -Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/14 -Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch -# PATCH-FIX-SUSE added at 2014/10/15 -Patch468: avoid-leaking-socket-descriptors.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch473: 0005-cryptsetup-fix-an-OOM-check.patch -# PATCH-FIX-UPSTREAM added at 2014/10/24 -Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch -# PATCH-FIX-SUSE added at 2014/10/24 +# PATCH-FIX-SUSE added on 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch480: 0005-journalctl-correct-help-text-for-until.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch481: 0006-calendarspec-fix-typo-in-annually.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch483: 0008-util-introduce-sethostname_idempotent.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch -# PATCH-FIX-SUSE added at 2014/11/05 +# PATCH-FIX-SUSE added on 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch496: 0006-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch498: 0008-journald-fix-memory-leak-on-error-path.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch -# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) -Patch513: 513-nspawn-veth.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) @@ -1085,188 +275,46 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 -Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch -# PATCH-FIX-SUSE increase result size for programs (bnc#867840) -Patch1010: 1010-udev-increase-result-size-for-programs.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch -Patch1014: 1014-udev-update-net_id-comments.patch -# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch # PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch Patch1021: 1021-udev-re-add-persistent-net-rules.patch -# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1024: 1024-udev-always-close-lock-file-descriptor.patch -# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch -Patch1026: 1026-udevd-inotify-modernizations.patch -# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch -Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch -# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch -Patch1028: 1028-udev-link-config-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch -Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch -# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch -Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch -# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch -Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch -Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch -# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch -Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch -Patch1044: 1044-rules-update-qemu-hid-rules.patch -# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch -Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch # PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch -# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch -Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch -# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch -Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch # PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch -Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch -# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch -Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch -# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch -Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch -# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch -Patch1057: 1057-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch -Patch1058: 1058-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch -Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch -Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch -# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 -# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch -Patch1081: 1081-udevd-check-return-of-various-functions.patch -# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch -Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch -# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch -Patch1085: 1085-udev-fix-typos.patch -# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch -Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch -# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch -Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch # PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch -# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch -Patch1089: 1089-fix-cgroup-device-controller.patch -# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch -Patch1091: 1091-udev-path_id-update-comments.patch -# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch -Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch -# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch -Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch -# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch -Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1474,6 +522,24 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. +%package -n nss-mymachines +Summary: Plugin for local virtual host name resolution +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-mymachines +nss-myhostname is a plugin for the GNU Name Service Switch (NSS) +functionality of the GNU C Library (glibc) providing host name +resolution for the locally configured containers and virtual machines +systemd-machined knows about. + +%package -n nss-resolve +Summary: Plugin for local hostname resolution via systemd-resolved +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-resolve + %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ @@ -1485,13 +551,12 @@ Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. - %endif %prep -%setup -q -n systemd-%{version} +%setup -q -n systemd-%version echo "Checking whether upstream rpm macros changed..." -[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 +diff -au "%{S:10}" src/core/macros.systemd.in # only needed for bootstrap %if 0%{?bootstrap} @@ -1499,29 +564,15 @@ cp %{SOURCE7} m4/ %endif # systemd patches -%patch0 -p1 -%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 -%if 0%{?suse_version} <= 1310 -%patch8 -p1 -%endif -%patch9 -p1 %patch12 -p1 -%patch13 -p0 -%patch15 -p1 %patch16 -p1 %patch17 -p1 -%patch18 -p1 -%patch19 -p0 %patch20 -p1 %patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html @@ -1532,418 +583,44 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch42 -p1 -%patch46 -p1 -%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 -%patch93 -p1 -%patch114 -p0 -%if 0%{?suse_version} <= 1310 -%patch117 -p1 -%endif -%patch119 -p1 %patch120 -p1 -%patch121 -p0 -%patch122 -p0 -%patch123 -p0 -%patch124 -p0 -%patch125 -p0 -%patch126 -p0 -%patch127 -p0 -%patch128 -p0 -%patch129 -p0 -%patch130 -p0 -%patch131 -p0 -%patch132 -p0 -%patch133 -p0 -%patch134 -p0 -%patch135 -p0 -%patch136 -p0 -%patch137 -p0 -%patch138 -p0 -%patch139 -p0 -%patch140 -p0 -%patch141 -p0 -%patch142 -p0 -%patch143 -p0 -%patch144 -p0 -%patch145 -p0 -%patch146 -p0 -%patch147 -p0 -%patch148 -p0 -%patch149 -p0 -%patch150 -p0 -%patch151 -p0 -%patch152 -p0 -%patch153 -p0 -%patch154 -p0 -%patch155 -p0 -%patch157 -p0 -%patch158 -p0 -%patch159 -p0 -%patch160 -p0 -%patch161 -p0 -%patch162 -p0 -%patch163 -p0 -%patch164 -p0 -%patch165 -p0 -%patch166 -p0 -%patch167 -p0 -%patch168 -p0 -%patch169 -p0 -%patch170 -p0 -%patch171 -p0 -%patch172 -p0 -%patch173 -p0 -%patch174 -p0 -%patch175 -p0 -%patch176 -p0 %patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 -%patch181 -p1 %patch182 -p1 %patch183 -p1 %patch185 -p1 %patch186 -p1 -%patch187 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 -%patch194 -p0 -%patch196 -p1 -%patch195 -p0 %patch197 -p1 %patch198 -p1 -%patch199 -p0 -%patch200 -p0 -%patch201 -p0 -%patch202 -p0 %patch203 -p1 -%patch204 -p1 -%patch206 -p0 -%patch207 -p0 %patch208 -p1 -%patch209 -p0 -%patch211 -p0 -%patch212 -p0 -%patch213 -p0 -%patch214 -p0 -%patch215 -p0 -%patch216 -p0 -%patch217 -p0 -%patch218 -p0 -%patch219 -p1 -%patch220 -p0 -%patch221 -p0 -%patch222 -p0 -%patch223 -p0 -%patch224 -p0 -%patch225 -p0 -%patch226 -p0 -%patch227 -p0 -%patch228 -p0 -%patch229 -p0 -%patch230 -p0 -%patch231 -p0 -%patch232 -p0 -%patch233 -p0 -%patch234 -p0 -%patch235 -p0 -%patch236 -p0 -%patch237 -p0 -%patch238 -p0 -%patch239 -p0 -%patch240 -p0 -%patch241 -p0 -%patch242 -p0 -%patch243 -p0 -%patch244 -p0 -%patch245 -p0 -%patch246 -p0 -%patch247 -p0 -%patch248 -p0 -%patch249 -p0 -%patch250 -p0 -%patch251 -p0 -%patch252 -p0 -%patch253 -p0 -%patch254 -p0 -%patch255 -p0 -%patch256 -p0 -%patch257 -p0 -%patch258 -p0 -%patch259 -p0 -%patch260 -p0 -%patch261 -p0 -%patch262 -p0 -%patch263 -p0 -%patch264 -p0 -%patch265 -p0 -%patch266 -p0 -%patch267 -p0 -%patch268 -p0 -%patch269 -p0 -%patch270 -p0 -%patch271 -p0 -%patch272 -p0 -%patch273 -p0 -%patch274 -p0 -%patch275 -p0 -%patch276 -p0 -%patch277 -p0 -%patch278 -p0 -%patch279 -p0 -%patch280 -p0 -%patch281 -p1 -%patch282 -p0 -%patch283 -p0 -%patch284 -p0 -%patch285 -p0 -%patch286 -p0 -%patch287 -p0 -%patch288 -p0 -%patch289 -p0 -%patch290 -p0 -%patch291 -p0 -%patch292 -p0 -%patch293 -p0 -%patch294 -p0 -%patch295 -p0 -%patch296 -p0 -%patch297 -p0 -%patch298 -p0 -%patch299 -p0 -%patch300 -p0 -%patch301 -p0 -%patch302 -p0 -%patch303 -p0 -%patch304 -p0 -%patch305 -p0 -%patch306 -p0 -%patch307 -p0 -%patch308 -p0 -%patch309 -p0 -%patch310 -p0 -%patch311 -p0 -%patch312 -p0 -%patch313 -p0 -%patch314 -p0 -%patch315 -p0 -%patch316 -p0 -%patch317 -p0 -%patch318 -p0 -%patch319 -p0 -%patch320 -p0 -%patch321 -p0 -%patch322 -p0 -%patch323 -p0 -%patch324 -p0 -%patch325 -p0 -%patch326 -p0 -%patch327 -p0 -%patch328 -p0 -%patch329 -p0 -%patch330 -p0 -%patch331 -p0 -%patch332 -p0 -%patch333 -p0 -%patch334 -p0 -%patch335 -p0 -%patch336 -p0 -%patch337 -p0 -%patch338 -p0 -%patch339 -p0 -%patch340 -p0 -%patch341 -p0 -%patch342 -p0 -%patch343 -p0 -%patch344 -p0 +%patch338 -p1 %patch345 -p1 -%patch346 -p0 -%patch347 -p0 -%patch348 -p0 -%patch349 -p0 -%patch350 -p0 -%patch351 -p0 -%patch352 -p0 -%patch353 -p0 -%patch354 -p0 -%patch355 -p0 -%patch356 -p0 -%patch357 -p0 -%patch358 -p0 -%patch359 -p0 -%patch360 -p0 -%patch361 -p0 +%patch352 -p1 %patch362 -p1 -%patch363 -p0 -%patch364 -p0 -%patch365 -p0 %patch366 -p1 -%patch367 -p0 %patch368 -p1 -%patch369 -p0 -%patch370 -p0 -%patch371 -p0 -%patch372 -p0 -%patch373 -p0 -%patch374 -p0 -%patch375 -p0 -%patch376 -p0 -%patch377 -p0 -%patch378 -p0 -%patch379 -p0 -%patch380 -p0 -%patch381 -p0 -%patch382 -p0 -%patch383 -p0 -%patch384 -p0 -%patch385 -p0 %patch386 -p1 -%patch387 -p0 -%patch388 -p0 -%patch389 -p0 -%patch390 -p0 -%patch391 -p0 -%patch392 -p0 -%patch393 -p0 -%patch394 -p0 -%patch395 -p0 -%patch396 -p0 -%patch397 -p0 -%patch398 -p0 -%patch399 -p0 -%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 -%patch415 -p0 -%patch416 -p0 -%patch417 -p0 -%patch418 -p0 -%patch419 -p0 -%patch420 -p0 -%patch421 -p0 -%patch422 -p0 -%patch423 -p0 -%patch424 -p0 -%patch425 -p0 -%patch426 -p0 -%patch427 -p0 -%patch428 -p0 -%patch429 -p0 %patch430 -p1 -%patch431 -p0 -%patch432 -p0 -%patch433 -p0 -%patch434 -p0 -%patch435 -p0 -%patch436 -p0 -%patch437 -p0 -%patch438 -p0 -%patch439 -p0 +%patch475 -p1 %ifarch %arm %patch38 -p1 %endif -%patch440 -p0 -%patch441 -p0 -%patch442 -p0 -%patch443 -p0 -%patch444 -p0 -%patch445 -p0 -%patch446 -p0 -%patch447 -p0 -%patch448 -p0 -%patch449 -p0 -%patch450 -p0 -%patch451 -p0 -%patch452 -p0 -%patch453 -p0 -%patch454 -p0 -%patch455 -p0 -%patch456 -p0 -%patch457 -p0 -%patch458 -p0 -%patch459 -p0 -%patch460 -p0 -%patch461 -p0 -%patch462 -p0 -%patch463 -p0 -%patch464 -p0 -%patch465 -p0 -%patch466 -p0 -%patch467 -p0 -%patch468 -p0 -%patch469 -p0 -%patch470 -p0 -%patch471 -p0 -%patch472 -p0 -%patch473 -p0 -%patch474 -p0 -%patch475 -p0 -%patch476 -p0 -%patch477 -p0 -%patch478 -p0 -%patch479 -p0 -%patch480 -p0 -%patch481 -p0 -%patch482 -p0 -%patch483 -p0 -%patch484 -p0 -%patch485 -p0 -%patch486 -p0 -%patch487 -p0 -%patch488 -p0 -%patch489 -p0 -%patch490 -p0 -%patch491 -p0 -%patch492 -p0 -%patch493 -p0 -%patch494 -p0 -%patch495 -p0 -%patch496 -p0 -%patch497 -p0 -%patch498 -p0 -%patch499 -p0 -%patch500 -p0 -%patch501 -p0 -%patch502 -p0 -%patch503 -p0 -%patch504 -p0 -%patch505 -p0 -%patch506 -p0 -%patch507 -p0 -%patch509 -p0 -%patch510 -p0 -%patch511 -p0 -%patch512 -p0 -%patch513 -p1 -%patch514 -p0 -%patch515 -p0 -%patch516 -p0 -%patch517 -p0 -%patch518 -p1 -%patch519 -p1 +%patch490 -p1 %patch520 -p1 -%patch521 -p0 +%patch521 -p1 # udev patches %patch1001 -p1 @@ -1952,131 +629,31 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 -%if 0%{?suse_version} <= 1310 -%patch1008 -p1 -%endif -%patch1009 -p1 -%patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p0 -%patch1017 -p0 -%patch1018 -p0 -%patch1019 -p0 -%patch1020 -p0 %patch1021 -p1 -%if %{with udevsettle} -%patch1022 -p1 -%endif -%patch1023 -p0 -%patch1024 -p0 -%if %{with blkrrpart} -%patch1025 -p1 -%endif -%patch1026 -p1 -%if %{with blkrrpart} -%patch1027 -p1 -%endif -%patch1028 -p1 -%if %{with blkrrpart} -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%endif %patch1035 -p1 %patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1038 -p0 -%if %{with udevsettle} -%patch1039 -p0 -%endif %patch1040 -p1 -%if %{with udevsettle} -%patch1041 -p0 -%patch1042 -p0 -%patch1043 -p0 -%endif -%patch1044 -p0 -%patch1045 -p0 %patch1046 -p1 -%patch1047 -p0 -%patch1048 -p0 -%patch1049 -p0 %patch1050 -p1 %patch1051 -p1 -%patch1052 -p0 %patch1053 -p1 %if %{with blkrrpart} -%patch1054 -p0 %else %patch1055 -p1 %endif -%patch1056 -p0 -%if %{with udevsettle} -%patch1057 -p0 -%else -%patch1058 -p0 -%endif -%patch1059 -p0 %patch1060 -p1 -%patch1061 -p0 %patch1062 -p1 -%if %{with parentpathid} -%patch1063 -p0 -%endif -%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 -%patch1080 -p0 -%patch1081 -p0 -%patch1082 -p0 -%patch1083 -p0 -%patch1084 -p0 -%patch1085 -p0 -%patch1086 -p0 -%patch1087 -p0 %patch1088 -p1 -%patch1089 -p1 -%if %{with parentpathid} -%patch1090 -p0 -%patch1091 -p0 -%endif -%patch1092 -p0 -%patch1093 -p0 -%patch1094 -p0 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 -%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -2096,17 +673,6 @@ else sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c fi -%if 0%{?suse_version} <= 1310 -# -# Older versions like oS 13.1 do not distinguish between -# network.target and network-online.target -# -for f in src/core/service.c src/insserv-generator/insserv-generator.c -do - sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f -done -%endif - # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 @@ -2147,11 +713,11 @@ cflags () esac set +o noclobber } -autoreconf -fiv +autoreconf -fi # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=e -export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" +export CFLAGS="%{optflags}" export LDFLAGS %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" @@ -2177,6 +743,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS --disable-gudev \ --disable-myhostname \ --disable-manpages \ + --disable-machined \ %else --enable-manpages \ %if %{with python} @@ -2184,16 +751,10 @@ cflags -Wl,--hash-size=8599 LDFLAGS %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ -%endif -%if %{with compat_libs} - --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ -%if 0%{?suse_version} <= 1310 - --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ -%endif %if ! 0%{?has_efi} --disable-efi \ %endif @@ -2202,11 +763,15 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ -%if 0%{?suse_version} > 1310 - --disable-multi-seat-x \ -%endif %if %{without networkd} --disable-networkd \ +%endif +%if %{without sysvcompat} + --with-sysvinit-path= \ + --with-sysvrcnd-path= \ +%endif +%if %{without resolved} + --disable-resolved \ %endif --disable-kdbus make %{?_smp_mflags} @@ -2215,19 +780,9 @@ make %{?_smp_mflags} update-man-list man %endif %install -# Use refreshed manual pages -for man in man/*.[0-9] -do - section=${man##*.} - test -d man/man${section} || continue - new=man/man${section}/${man##*/} - if test -s $new -a $new -nt $man - then - cp -p $new $man - else - sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man - fi -done +%if !0%{?bootstrap} +cp man/man[0-9]/*.[0-9] man/ +%endif make install DESTDIR="%buildroot" # move to %{_lib} @@ -2240,24 +795,17 @@ ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd + %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -%if 0%{?suse_version} <= 1310 -ln -sf /lib/firmware %{buildroot}/usr/lib/firmware -%endif + %if ! 0%{?bootstrap} -install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif -sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} -sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} -sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule -install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -2275,28 +823,7 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# aliases for /etc/init.d/* -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service -ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service -install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service -ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service -ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service + # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -2369,15 +896,6 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ -%if ! 0%{?bootstrap} -%if %{without python} -for man in systemd.directives.7 systemd.index.7 -do - install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ -done -%endif -%endif - mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed @@ -2394,10 +912,8 @@ done > files.completion > files.completion %endif -%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd -%endif %if %{without compat_libs} lib=%{_libdir}/libsystemd.so @@ -2409,30 +925,6 @@ do done %endif -%if 0%{suse_version} <= 1310 -cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' - [Unit] - Description=Fix against deadlock at shutdown - Wants=remote-fs.target remote-fs-pre.target - Before=remote-fs.target systemd-logind.service - After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target - ConditionPathExists=|/etc/init.d/autofs - ConditionPathExists=|/etc/init.d/nfs - - [Service] - Type=oneshot - RemainAfterExit=true - ExecStart=/bin/true - ExecStop=-/etc/init.d/autofs stop - ExecStop=-/etc/init.d/nfs stop - - [Install] - WantedBy=remote-fs.target - EOF - mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants - ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants -%endif - # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ @@ -2480,6 +972,7 @@ fi getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif +systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -2527,8 +1020,6 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ - systemd-readahead-collect.service \ - systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -2558,7 +1049,6 @@ fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : -%{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : @@ -2657,6 +1147,9 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig +%post -n nss-mymachines -p /sbin/ldconfig +%postun -n nss-mymachines -p /sbin/ldconfig + %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : @@ -2679,17 +1172,26 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl -%{_bindir}/systemd-sleep-grub +%if %{with networkd} +%{_bindir}/networkctl +%endif %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl +%if ! 0%{?bootstrap} %{_bindir}/machinectl +%endif %{_bindir}/systemctl %{_bindir}/systemd-analyze -%{_bindir}/systemd-coredumpctl +%{_bindir}/coredumpctl %{_bindir}/systemd-delta +%{_bindir}/systemd-escape +%{_bindir}/systemd-firstboot +%{_bindir}/systemd-path +%{_bindir}/systemd-sysusers %{_bindir}/systemd-notify +%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -2732,7 +1234,6 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount -%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -2771,12 +1272,19 @@ exit 0 %{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif -%{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-debug-generator +%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator +%if %{with sysvcompat} +%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%endif +%{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator +%{_prefix}/lib/systemd/system-preset/ +%{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user @@ -2805,13 +1313,23 @@ exit 0 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf +%config(noreplace) %{_sysconfdir}/systemd/coredump.conf +%if !0%{?bootstrap} +%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf +%endif +%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf +%endif +%if %{with networkd} +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf +%endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -2828,15 +1346,24 @@ exit 0 %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target +%{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service +%if %{with networkd} +%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%if !0%{?bootstrap} %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions +%if !0%{?bootstrap} +%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy +%endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy @@ -2886,8 +1413,11 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed -%if 0%{?suse_version} > 1310 -%{_datadir}/pkgconfig/systemd.pc +%if %{with resolved} +%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf +%{_sysconfdir}/systemd/resolved.conf +%{_libdir}/libnss_resolve.so.2 +%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service %endif %if ! 0%{?bootstrap} @@ -2912,9 +1442,7 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/systemd.pc -%endif +%{_libdir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -2976,7 +1504,6 @@ exit 0 %{_prefix}/lib/udev/rules.d/*.rules %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* -%{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin @@ -3007,9 +1534,6 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/udev.pc -%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc @@ -3043,8 +1567,9 @@ exit 0 %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ +%if %{with sysvcompat} %{_localstatedir}/log/README -/etc/init.d/systemd-journald +%endif %files -n nss-myhostname %defattr(-, root, root) @@ -3057,6 +1582,10 @@ exit 0 %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd + +%files -n nss-mymachines +%defattr(-,root,root) +%_libdir/libnss_mymachines.so* %endif %changelog diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch index 85027c50..898a6548 100644 --- a/systemd-pam_config.patch +++ b/systemd-pam_config.patch @@ -1,14 +1,16 @@ -diff --git a/src/login/systemd-user b/src/login/systemd-user -index 7b57dbf..c0fc793 100644 ---- a/src/login/systemd-user -+++ b/src/login/systemd-user -@@ -2,7 +2,7 @@ +--- + src/login/systemd-user | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-218/src/login/systemd-user +=================================================================== +--- systemd-218.orig/src/login/systemd-user ++++ systemd-218/src/login/systemd-user +@@ -2,5 +2,5 @@ + # + # Used by systemd --user instances. - # Used by systemd when launching systemd user instances. - --account include system-auth --session include system-auth -+account include common-account -+session include common-session - auth required pam_deny.so - password required pam_deny.so +-account include system-auth +-session include system-auth ++account include common-account ++session include common-session diff --git a/systemd-powerd-initctl-support.patch b/systemd-powerd-initctl-support.patch index bc0e3ca4..675124ba 100644 --- a/systemd-powerd-initctl-support.patch +++ b/systemd-powerd-initctl-support.patch @@ -12,10 +12,8 @@ Signed-off-by: Hannes Reinecke src/initctl/initctl.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) -diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c -index 468df35..d4794a6 100644 ---- a/src/initctl/initctl.c -+++ b/src/initctl/initctl.c +--- systemd-219.orig/src/initctl/initctl.c ++++ systemd-219/src/initctl/initctl.c @@ -32,8 +32,11 @@ #include #include @@ -36,11 +34,12 @@ index 468df35..d4794a6 100644 #define SERVER_FD_MAX 16 #define TIMEOUT_MSEC ((int) (DEFAULT_EXIT_USEC/USEC_PER_MSEC)) -@@ -141,7 +145,53 @@ static void change_runlevel(Server *s, int runlevel) { +@@ -141,7 +145,54 @@ static void change_runlevel(Server *s, i } } +static int send_shutdownd(unsigned delay, char mode, const char *message) { ++#ifdef HAVE_SYSV_COMPAT + usec_t t = now(CLOCK_REALTIME) + delay * USEC_PER_MINUTE; + struct sd_shutdown_command c = { + .usec = t, @@ -81,7 +80,7 @@ index 468df35..d4794a6 100644 + + if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) + return -errno; -+ ++#endif + return 0; +} + @@ -90,7 +89,7 @@ index 468df35..d4794a6 100644 assert(s); assert(req); -@@ -184,9 +234,28 @@ static void request_process(Server *s, const struct init_request *req) { +@@ -184,9 +235,28 @@ static void request_process(Server *s, c return; case INIT_CMD_POWERFAIL: @@ -120,6 +119,3 @@ index 468df35..d4794a6 100644 return; case INIT_CMD_CHANGECONS: --- -1.8.1.4 - diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index def95a7d..a9e12af8 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,3 +1,4 @@ +addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot\.8.*") @@ -16,6 +17,7 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") +addFilter("nss-mymachines.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") diff --git a/systemd-sleep-grub b/systemd-sleep-grub deleted file mode 100644 index 5cd8bef3..00000000 --- a/systemd-sleep-grub +++ /dev/null @@ -1,204 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. - -set -x - -prepare-parameters() -{ - eval `grep LOADER_TYPE= /etc/sysconfig/bootloader` - - if [ x"$LOADER_TYPE" = "xgrub2" -o x"$LOADER_TYPE" = "xgrub2-efi" ]; then - GRUBONCE="/usr/sbin/grub2-once" - GRUBDEFAULT="/boot/grub2/grubenv" - GRUB2EDITENV="/usr/bin/grub2-editenv" - GRUB2CONF="/boot/grub2/grub.cfg" - BLKID="/usr/sbin/blkid" - getkernels="getkernels-grub2" - fi -} - -##################################################################### -# gets a list of available kernels from /boot/grub2/grub.cfg -# kernels are in the array $KERNELS, output to stdout to be eval-ed. -getkernels-grub2() -{ - local I DUMMY MNT ROOTDEV - declare -i I=0 J=-1 - - # we need the root partition later to decide if this is the kernel to select - while read ROOTDEV MNT DUMMY; do - [ "$ROOTDEV" = "rootfs" ] && continue # not what we are searching for - if [ "$MNT" = "/" ]; then - break - fi - done < /proc/mounts - - while read LINE; do - case $LINE in - menuentry\ *) - let J++ - ;; - set\ default*) - local DEFAULT=${LINE#*default=} - - if echo $DEFAULT | grep -q saved_entry ; then - local SAVED=`$GRUB2EDITENV $GRUBDEFAULT list | sed -n s/^saved_entry=//p` - if [ -n "$SAVED" ]; then - DEFAULT_BOOT=$($GRUBONCE --show-mapped "$SAVED") - fi - fi - - ;; - linux*noresume*|module*xen*noresume*) - echo " Skipping grub entry #${J}, because it has the noresume option" >&2 - ;; - linux*root=*|module*xen*root=*) - local ROOT - ROOT=${LINE#*root=} - DUMMY=($ROOT) - ROOT=${DUMMY[0]} - - if [ x"${ROOT:0:5}" = "xUUID=" ]; then - UUID=${ROOT#UUID=} - if [ -n "$UUID" ]; then - ROOT=$($BLKID -U $UUID) - fi - fi - - if [ "$(stat -Lc '%t:%T' $ROOT)" != "$(stat -Lc '%t:%T' $ROOTDEV)" ]; then - echo " Skipping grub entry #${J}, because its root= parameter ($ROOT)" >&2 - echo " does not match the current root device ($ROOTDEV)." >&2 - continue - fi - DUMMY=($LINE) # kernel (hd0,1)/boot/vmlinuz-ABC root=/dev/hda2 - echo "KERNELS[$I]='${DUMMY[1]##*/}'" # vmlinuz-ABC - echo "MENU_ENTRIES[$I]=$J" - # DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO - let I++ - ;; - linux*|module*xen*) - # a kernel without "root="? We better skip that one... - echo " Skipping grub entry #${J}, because it has no root= option" >&2 - ;; - *) ;; - esac - done < "$GRUB2CONF" -} - -############################################################# -# runs grubonce from the grub package to select which kernel -# to boot on next startup -grub-once() -{ - if [ -x "$GRUBONCE" ]; then - echo " running '$GRUBONCE $1'" - $GRUBONCE $1 - else - echo "WARNING: $GRUBONCE not found, not preparing bootloader" - fi -} - -############################################################# -# restore grub default after (eventually failed) resume -grub-once-restore() -{ - echo "INFO: running grub-once-restore" - prepare-parameters - $GRUB2EDITENV $GRUBDEFAULT unset next_entry -} - -############################################################################# -# try to find a kernel image that matches the actually running kernel. -# We need this, if more than one kernel is installed. This works reasonably -# well with grub, if all kernels are named "vmlinuz-`uname -r`" and are -# located in /boot. If they are not, good luck ;-) -find-kernel-entry() -{ - NEXT_BOOT=-1 - ARCH=`uname -m` - declare -i I=0 - # DEBUG "running kernel: $RUNNING" DIAG - while [ -n "${KERNELS[$I]}" ]; do - BOOTING="${KERNELS[$I]}" - if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then - # DEBUG "Found kernel symlink $BOOTING => $IMAGE" INFO - BOOTING=$IMAGE - fi - case $ARCH in - ppc*) BOOTING="${BOOTING#*vmlinux-}" ;; - *) BOOTING="${BOOTING#*vmlinuz-}" ;; - esac - if [ "$RUNNING" == "$BOOTING" ]; then - NEXT_BOOT=${MENU_ENTRIES[$I]} - echo " running kernel is grub menu entry $NEXT_BOOT (${KERNELS[$I]})" - break - fi - let I++ - done - # if we have not found a kernel, issue a warning. - # if we have found a kernel, we'll do "grub-once" later, after - # prepare_suspend finished. - if [ $NEXT_BOOT -eq -1 ]; then - echo "WARNING: no kernelfile matching the running kernel found" - fi -} - -############################################################################# -# if we did not find a kernel (or BOOT_LOADER is not GRUB) check, -# if the running kernel is still the one that will (probably) be booted for -# resume (default entry in menu.lst or, if there is none, the kernel file -# /boot/vmlinuz points to.) -# This will only work, if you use "original" SUSE kernels. -# you can always override with the config variable set to "yes" -prepare-grub() -{ - echo "INFO: running prepare-grub" - prepare-parameters - eval `$getkernels` - RUNNING=`uname -r` - find-kernel-entry - - RET=0 - - if [ $NEXT_BOOT -eq -1 ]; then - # which kernel is booted with the default entry? - BOOTING="${KERNELS[$DEFAULT_BOOT]}" - # if there is no default entry (no menu.lst?) we fall back to - # the default of /boot/vmlinuz. - [ -z "$BOOTING" ] && BOOTING="vmlinuz" - if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then - BOOTING=$IMAGE - fi - BOOTING="${BOOTING#*vmlinuz-}" - echo "running kernel: '$RUNNING', probably booting kernel: '$BOOTING'" - if [ "$BOOTING" != "$RUNNING" ]; then - echo "ERROR: kernel version mismatch, cannot suspend to disk" - echo "running: $RUNNING booting: $BOOTING" >> $INHIBIT - RET=1 - fi - else - # set the bootloader to the running kernel - echo " preparing boot-loader: selecting entry $NEXT_BOOT, kernel /boot/$BOOTING" - T1=`date +"%s%N"` - sync; sync; sync # this is needed to speed up grub-once on reiserfs - T2=`date +"%s%N"` - echo " grub-once: `grub-once $NEXT_BOOT`" - T3=`date +"%s%N"` - S=$(((T2-T1)/100000000)); S="$((S/10)).${S:0-1}" - G=$(((T3-T2)/100000000)); G="$((G/10)).${G:0-1}" - echo " time needed for sync: $S seconds, time needed for grub: $G seconds." - fi - - return $RET -} - - -###### main() - -if [ "$1" = pre ] ; then - prepare-grub -fi -if [ "$1" = post ] ; then - grub-once-restore -fi diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 61d05349..dd7c0d80 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -5,20 +5,22 @@ Subject: systemd tmp safe defaults Fix regression in the default for tmp auto-deletion (FATE#314974). SUSE policy is to not clean /tmp by default. --- - tmpfiles.d/tmp.conf | 5 +++-- + tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---- systemd-206.orig/tmpfiles.d/tmp.conf -+++ systemd-206/tmpfiles.d/tmp.conf +Index: systemd/tmpfiles.d/tmp.conf +=================================================================== +--- systemd.orig/tmpfiles.d/tmp.conf ++++ systemd/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override --d /tmp 1777 root root 10d --d /var/tmp 1777 root root 30d +-v /tmp 1777 root root 10d +-v /var/tmp 1777 root root 30d +# SUSE policy: we don't clean those directories -+d /tmp 1777 root root - -+d /var/tmp 1777 root root - ++v /tmp 1777 root root - ++v /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index 78b33870..7308f33f 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,9 +1,569 @@ +------------------------------------------------------------------- +Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com + +- mark more subpackages as !bootstrap for systemd-mini usage. + +------------------------------------------------------------------- +Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org + +- spec : remove --with-firmware-path, firmware loader was removed in v217 +- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) +- spec: Do not enable systemd-readahead-collect.service and +systemd-readahead-replay.service as these do not exist anymore. +- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch + Yast was fixed to write all timezone changes exactly how timedated expects + things to be done. +- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg + package handles the migration from /etc/HOSTNAME to /etc/hostname + and owns both files. +-spec: remove boot.udev and systemd-journald.init as they currently + serve no purpose. +- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we + are in sysvcompat-only codepath, also remove the code targetting other + distributions, never compiled as the TARGET_$DISTRO macros are never defined. +- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT +- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards +- insserv-generator.patch: Only build when sysvcompat is enabled +- vhangup-on-all-consoles.patch add a comment indicating this is a workaround + for a kernel bug. +- spec: Add option to allow disabling sysvinit compat at build time. +- spec: Add option to enable resolved at build time. +- spec: Remove all %ifs for !factory products, current systemd releases can + neither be built nor installed in older products without upgrading + several components of the base system. + (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) +- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when + those init scripts still existed. (dummy localfs.service source: gone) +- systemd-sleep-grub: moved to the grub2 package where it belongs as a + suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) +- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds + config.h everywhere in the preprocessor cmdline. + +------------------------------------------------------------------- +Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 219 +* systemd units can now be "unsupported" (like, for example, + .device in a containers), similar to the "skipped" state in + SUSE's prior sysvinit scripts. +* tmpfiles gained the 'v' type for creating btrfs subvolumes. +* tmpfiles gained the 'a' type for setting ACLs. +* systemd-nspawn gained new switches: --ephemeral, --template +* The /var/lib/containers location is deprecated and replaced by + /var/lib/machines. +* machinectl gained the copy-from and copy-to commands. +* machinectl now knows a "bind" command (for use with nspawn) +* new "systemd-importd" daemon to download container images and run + them as nspawn containers. +* networkd collects LLDP network announcements, if available, and + so shown in networkctl. +* The fallback terminal type was changed from "vt102" to "vt220", + allowing PgUp/PgDn keys to work. +* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, + useful should the regular shutdown hang. +* Removing storage will cause systemd to unmount the associated + mountpoints so that they don't linger around. + +------------------------------------------------------------------- +Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de + +- Add suse-sysv-bootd-support.diff (reinstate old + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) + +------------------------------------------------------------------- +Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de + +- Update to systemd v218-1050-g38ab096 +- Remove patches + use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) +- Reinstate and improve (remove huge indents from) + tty-ask-password-agent-on-console.patch, + 0014-journald-with-journaling-FS.patch, rootsymlink_generator. + +------------------------------------------------------------------- +Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com + +- disable systemd-resolved for now as it interacts not well with + our methods and security has concerns regarding spoofing. bsc#917781 + ------------------------------------------------------------------- Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - Add patch kbd-model-map.patch to add missed keyboard layouts which are offered by YaST2 (bsc#910643 and boo#897803) +------------------------------------------------------------------- +Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 218 +* New utilities: systemd-timesyncd (SNTP client), + systemd-resolved, systemd-networkd, networkctl, + systemd-sysusers +* machinectl gained a "poweroff" command for clean container shutdown +* The udev hwdb now contains DPI information for mice. +* Userspace firmware loading support has been removed and + the minimum supported kernel version is thus bumped to 3.7. +- Remove patches: + G=gone locally, is upstream; + D=dropped: no longer needed; + N=no longer applies to source nor is it deemed needed; + K=killed: no longer applicable and too complex to resolve: + ---- + G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch + K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch + K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch + K handle-SYSTEMCTL_OPTIONS-environment-variable.patch + K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch + K log-target-null-instead-kmsg.patch + K tty-ask-password-agent-on-console.patch + K 513-nspawn-veth.patch + K 1087-infinit-timeout-for-kmod-loaded-modules.patch + D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + D avoid-leaking-socket-descriptors.patch + D 0001-make-fortify-happy-with-ppoll.patch + N fix-owner-of-var-log-btmp.patch + N disable-nss-myhostname-warning-bnc-783841.patch + N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch + N 0001-make-209-working-on-older-dist.patch + N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch + N tmpfiles-do-not-clean-for-mandb-index-files.patch + G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc + G optionally-warn-if-nss-myhostname-is-called.patch + G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch + G 0004-getty-generator-properly-escape-instance-names.patch + G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch + G 0008-Reset-signal-mask-on-re-exec-to-init.patch + G 0001-login-fix-pos-array-allocation.patch + G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch + G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + G 0005-Replace-var-run-with-run-in-remaining-places.patch + G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch + G 0007-README-document-that-var-run-must-be-a-symlink-run.patch + G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch + G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch + G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + G 0001-Fix-systemd-stdio-bridge-symlink.patch + G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + G 0004-man-document-missing-options-of-systemd-run.patch + G 0005-systemd-run-add-some-extra-safety-checks.patch + G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + G 0007-journal-forget-file-after-encountering-an-error.patch + G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + G 0010-man-update-link-to-LSB.patch + G 0011-man-systemd-bootchart-fix-spacing-in-command.patch + G 0012-man-add-missing-comma.patch + G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch + G 0002-manager-flush-memory-stream-before-using-the-buffer.patch + G 0003-busname-don-t-drop-service-from-the-result-string.patch + G 0004-fix-off-by-one-error-in-array-index-assertion.patch + G 0005-logind-fix-policykit-checks.patch + G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch + G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch + G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch + G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch + G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch + G 0007-networkd-fix-typo.patch + G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch + G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch + G 0012-journald-remove-stray-reset-of-error-return-value.patch + G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch + G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch + G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch + G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch + G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch + G 0005-sd-daemon-fix-incorrect-variable-access.patch + G 0006-sd-event-initialization-perturbation-value-right-bef.patch + G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch + G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch + G 0001-journal-fix-export-of-messages-containing-newlines.patch + G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + G 0003-tty-ask-password-agent-return-negative-errno.patch + G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + G 0005-systemd-python-fix-failing-assert.patch + G 0007-dbus-suppress-duplicate-and-misleading-messages.patch + G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch + G 0001-bash-completion-fix-__get_startable_units.patch + G 0002-sysctl-replaces-some-slashes-with-dots.patch + G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch + G 0004-implement-a-union-to-pad-out-file_handle.patch + G shut-up-annoying-assertion-monotonic-clock-message.patch + G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch + G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch + G 0003-analyze-fix-plot-with-bad-y-size.patch + G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch + G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch + G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch + G 0002-backlight-do-nothing-if-max_brightness-is-0.patch + G 0003-backlight-unify-error-messages.patch + G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch + G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch + G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch + G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch + G 0001-core-close-socket-fds-asynchronously.patch + G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch + G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch + G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch + G 0002-logind-fix-printf-format.patch + G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch + G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch + G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch + G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch + G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch + G 0008-man-update-journald-rate-limit-defaults.patch + G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch + G 0010-logind-allow-suspending-if-there-are-no-displays.patch + G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch + G 0002-man-note-that-entire-sections-can-now-be-ignored.patch + G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch + G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch + G 0006-login-add-mir-to-the-list-of-session-types.patch + G 0007-logind-fix-Display-property-of-user-objects.patch + G 0001-hwdb-update.patch + G 0002-hwdb-update.patch + G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch + G 0004-hwdb-update.patch + G 0005-hwdb-update.patch + G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch + G 0002-journal-properly-detect-language-specified-in-line.patch + G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch + G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch + G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch + G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch + G 0002-nspawn-restore-journal-directory-is-empty-check.patch + G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + G 0004-socket-properly-handle-if-our-service-vanished-durin.patch + G 0001-Do-not-unescape-unit-names-in-Install-section.patch + G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch + G 0001-virt-rework-container-detection-logic.patch + G 0002-fsck-include-device-name-in-the-message-about-missin.patch + G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch + G 0004-util-ignore_file-should-not-allow-files-ending-with.patch + G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch + G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch + G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch + G 0001-hwdb-fix-case-sensitive-match.patch + G 0001-sd-event-restore-correct-timeout-behaviour.patch + G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch + G 0001-umount-modernizations.patch + G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch + G 0003-core-allow-transient-mount-units.patch + G 0004-systemd-detect-virt-only-discover-Xen-domU.patch + G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch + G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch + G 0001-core-fix-invalid-free-in-killall.patch + G 0003-install-fix-invalid-free-in-unit_file_mask.patch + G 0001-systemd-detect-virt-detect-s390-virtualization.patch + G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch + G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch + G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch + G 0005-po-add-Greek-translation.patch + G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0007-po-add-German-translation.patch + G 0009-core-clean-up-signal-reset-logic-when-reexec.patch + G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch + G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch + G 0012-core-transaction-avoid-misleading-error-message-when.patch + G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch + G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch + G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch + G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch + G 0005-man-fix-path-in-crypttab-5.patch + G 0001-units-order-network-online.target-after-network.targ.patch + G 0001-core-use-correct-format-string-for-UIDs.patch + G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch + G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch + G 0002-journald-make-MaxFileSec-really-default-to-1month.patch + G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch + G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch + G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch + G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch + G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch + G 0001-parse_uid-return-ENXIO-for-1-uids.patch + G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch + G 0003-localed-consider-an-unset-model-as-a-wildcard.patch + G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch + G 0005-bus-close-a-bus-that-failed-to-connect.patch + G 0006-hwdb-update.patch + G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-architecture-Add-tilegx.patch + G 0002-architecture-Add-cris.patch + G 0003-arch-add-crisv32-to-uname-check.patch + G 0004-architecture-remove-cris-from-uname-list.patch + G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch + G 0002-namespace-fix-uninitialized-memory-access.patch + G 0001-machine-don-t-return-uninitialized-variable.patch + G 0002-vconsole-setup-run-setfont-before-loadkeys.patch + G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch + G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch + G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch + G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch + G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch + G 0007-service-flush-status-text-and-errno-values-each-time.patch + G 0001-journal-compress-return-early-in-uncompress_startswi.patch + G 0002-journal-compress-improve-xz-compression-performance.patch + G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch + G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch + G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch + G 0001-event-pull-in-sd-event.h-from-event-util.h.patch + G 0002-util-fix-has-cc-check-and-add-test.patch + G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch + G 0004-fileio-quote-more-shell-characters-in-envfiles.patch + G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch + G 0002-units-serial-getty-.service-use-the-default-RestartS.patch + G 0001-po-add-Ukrainian-translation.patch + G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch + G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch + G 0001-detect-virt-Fix-Xen-domU-discovery.patch + G 0002-Be-more-verbose-when-bind-or-listen-fails.patch + G 0003-Add-quotes-to-warning-message.patch + G 0004-systemd-return-the-first-error-from-manager_startup.patch + G 0001-bash-completion-p-option-for-journalctl.patch + G 0002-journalctl-man-allow-only-between-terms.patch + G 0003-systemd-use-pager-for-test-and-help.patch + G 0001-bus-proxyd-fix-incorrect-comparison.patch + G 0002-shell-completion-prevent-mangling-unit-names.patch + G 0003-Always-check-asprintf-return-code.patch + G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch + G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch + G 0006-parse_boolean-require-exact-matches.patch + G 0007-drop_duplicates-copy-full-BindMount-struct.patch + G 0008-shell-completion-prevent-mangling-unit-names-bash.patch + G 0009-journald-always-add-syslog-facility-for-messages-com.patch + G 0001-sysv-order-initscripts-which-provide-network-before-.patch + G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch + G 0003-keymap-Annotate-all-micmute-workarounds.patch + G 0007-hwdb-update.patch + G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch + G 0002-switch-root-umount-the-old-root-correctly.patch + G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch + G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch + G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch + G 0006-login-share-VT-signal-handler-between-sessions.patch + G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch + G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch + G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch + G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch + G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch + G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch + G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch + G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch + G 0003-keymap-Fix-HP-Pavillon-DV7.patch + G 0004-hwdb-update-format-description-and-document-reloadin.patch + G 0008-hwdb-update.patch + G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch + G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch + G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch + G 0001-login-fix-memory-leak-on-DropController.patch + G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch + G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch + G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch + G 0001-nspawn-fix-network-interface.patch + G 0001-completion-filter-templates-from-restartable-units.patch + G 0002-systemd-fix-error-message.patch + G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch + G 0004-config-parser-fix-mem-leak.patch + G 0005-login-fix-mem-leak.patch + G 0001-login-simplify-controller-handling.patch + G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch + G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0009-hwdb-update.patch + G 0001-systemctl-allow-to-change-the-default-target-without.patch + G 0001-activate-fix-fd-leak-in-do_accept.patch + G 0002-analyze-avoid-a-null-dereference.patch + G 0003-analyze-fix-mem-leak.patch + G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch + G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch + G 0006-bus-unref-buscreds-on-failure.patch + G 0007-core-fix-a-potential-mem-leak.patch + G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch + G 0009-journal-do-not-leak-mmaps-on-OOM.patch + G 0010-manager-use-correct-cleanup-function.patch + G 0001-core-fix-resource-leak-in-manager_environment_add.patch + G 0002-util-remove-a-unnecessary-check.patch + G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch + G 0004-shared-conf-parser.patch + G 0005-logind-fix-typo.patch + G 0006-systemctl-fix-resource-leak-CID-1237747.patch + G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch + G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch + G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch + G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch + G 0003-mount-order-options-before-other-arguments-to-mount.patch + G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch + G 0005-shared-label.h-add-missing-stdio.h-include.patch + G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch + G 0001-login-pause-devices-before-acknowledging-VT-switches.patch + G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch + G 0001-socket-introduce-SELinuxContextFromNet-option.patch + G 0002-util-avoid-non-portable-__WORDSIZE.patch + G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch + G 0002-bus-remove-unused-check.patch + G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch + G 0001-logind-add-support-for-Triton2-Power-Button.patch + G 0002-logind-add-support-for-TPS65217-Power-Button.patch + G 0001-shutdownd-clean-up-initialization-of-struct.patch + G 0003-bootchart-parse-userinput-with-safe_atoi.patch + G 0004-bootchart-check-return-of-strftime.patch + G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch + G 0001-journalctl-do-not-output-reboot-markers-when-running.patch + G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch + G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch + G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch + G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch + G 0003-fileio-label-return-error-when-writing-fails.patch + G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch + G 0004-sd-event-check-the-value-of-received-signal.patch + G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch + G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch + G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch + G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch + G 0003-sd-bus-check-return-value-of-vasprintf.patch + G 0004-core-map-the-rescue-argument-to-rescue.target.patch + G 0005-util-avoid-double-close-of-fd.patch + G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch + G 0001-tmpfiles-compare-return-against-correct-errno.patch + G 0001-shell-completion-fix-completion-of-inactive-units.patch + G 0002-shell-completion-propose-templates-for-disable-re-en.patch + G 0003-man-we-don-t-have-Wanted-dependency.patch + G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch + G 0001-systemd-continue-switch-root-even-if-umount-fails.patch + G 0002-systemd-try-harder-to-bind-to-notify-socket.patch + G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch + G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch + G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch + G 0004-journal-do-server_vacuum-for-sigusr1.patch + G 0005-cryptsetup-fix-an-OOM-check.patch + G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch + G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch + G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch + G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch + G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch + G 0005-journalctl-correct-help-text-for-until.patch + G 0006-calendarspec-fix-typo-in-annually.patch + G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch + G 0008-util-introduce-sethostname_idempotent.patch + G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch + G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch + G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch + G 0012-manager-do-not-print-anything-while-passwords-are-be.patch + G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch + G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch + G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch + G 0002-snapshot-return-error-when-snapshot-exists.patch + G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch + G 0004-Raise-level-of-Found-dependency.-lines.patch + G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch + G 0006-journald-fix-minor-memory-leak.patch + G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch + G 0008-journald-fix-memory-leak-on-error-path.patch + G 0009-units-make-systemd-journald.service-Type-notify.patch + G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch + G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch + G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch + G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch + G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch + G 0001-systemctl-let-list-units-unit-files-honour-type.patch + G 0002-systemctl-obey-state-in-list-unit-files.patch + G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch + G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch + G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch + G 0001-selinux-access-fix-broken-ternary-operator.patch + G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch + G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch + G 0004-core-fix-transaction-destructiveness-check-once-more.patch + G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch + G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch + G 1009-cdrom_id-use-the-old-MMC-fallback.patch + G 1010-udev-increase-result-size-for-programs.patch + G 1014-udev-update-net_id-comments.patch + G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch + G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch + G 1017-udev-serialize-synchronize-block-device-event-handli.patch + G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch + G 1019-udev-avoid-use-of-uninitialized-err.patch + G 1020-udev-keyboard-also-hook-into-change-events.patch + G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch + G 1024-udev-always-close-lock-file-descriptor.patch + G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch + G 1026-udevd-inotify-modernizations.patch + G 1027-udev-synthesize-change-events-for-partitions-when-to.patch + G 1028-udev-link-config-fix-mem-leak.patch + G 1029-udev-try-first-re-reading-the-partition-table.patch + G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch + G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch + G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch + G 1033-udev-really-exclude-device-mapper-from-block-device.patch + G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch + G 1038-udev-fix-invalid-free-in-enable_name_policy.patch + G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch + G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch + G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch + G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch + G 1044-rules-update-qemu-hid-rules.patch + G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch + G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch + G 1048-udev-net_setup_link-add-a-bit-more-logging.patch + G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch + G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch + G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch + G 1056-udevd-add-event-timeout-commandline-option.patch + G 1057-udev-unify-event-timeout-handling.patch + G 1058-udev-unify-event-timeout-handling.patch + G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch + G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch + G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch + G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch + G 1065-udev-bump-event-timeout-to-60-seconds.patch + G 1067-udev-always-resolve-correctly-database-names-on-chan.patch + G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch + G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch + G 1070-rules-net-setup-link-remove-stray-linebreak.patch + G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch + G 1072-udev-netif_rename-don-t-log-to-kmsg.patch + G 1073-udev-drop-print_kmsg.patch + G 1074-udev-fix-copy-paste-error-in-log-message.patch + G 1075-udev-timeout-increase-timeout.patch + G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1078-udev-remove-userspace-firmware-loading-support.patch + G 1079-udev-remove-userspace-firmware-loading-support.patch + G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch + G 1081-udevd-check-return-of-various-functions.patch + G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch + G 1083-udev-node-warn-if-chmod-chown-fails.patch + G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch + G 1085-udev-fix-typos.patch + G 1086-udevd-don-t-fail-if-run-udev-exists.patch + G 1089-fix-cgroup-device-controller.patch + G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + G 1091-udev-path_id-update-comments.patch + G 1092-libudev-do-not-accept-invalid-log-levels.patch + G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch + G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch + G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd.spec b/systemd.spec index 307e3cab..75cd2d10 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,8 +21,9 @@ %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion -%bcond_without compat_libs %bcond_with networkd +%bcond_without sysvcompat +%bcond_with resolved %bcond_with python %bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 @@ -43,7 +44,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 210 +Version: 219 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -51,112 +52,69 @@ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: acl BuildRequires: audit-devel -%if %{with compat_libs} -# See gold_archs in binutils.spec -%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc -BuildRequires: binutils-gold -%endif -%endif -BuildRequires: config(suse-module-tools) -%if ! 0%{?bootstrap} -BuildRequires: docbook-xsl-stylesheets -%endif +BuildRequires: autoconf +BuildRequires: automake BuildRequires: fdupes -%if ! 0%{?bootstrap} -BuildRequires: gobject-introspection-devel -%endif BuildRequires: gperf -%if ! 0%{?bootstrap} BuildRequires: gtk-doc -%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel -BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool -%if ! 0%{?bootstrap} -BuildRequires: libusb-devel -BuildRequires: libxslt-tools -%endif BuildRequires: pam-devel -%if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros -%endif -%if 0%{?suse_version} <= 1315 -BuildRequires: tcpd-devel -%endif BuildRequires: xz -BuildRequires: pkgconfig(blkid) >= 2.20 -%if ! 0%{?bootstrap} -BuildRequires: libgcrypt-devel -%if %{with python} -BuildRequires: python -%endif -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -%endif -%if 0%{?suse_version} <= 1310 -BuildRequires: pkgconfig(libkmod) >= 14 -%else +BuildRequires: config(suse-module-tools) +BuildRequires: pkgconfig(blkid) >= 2.24 BuildRequires: pkgconfig(libkmod) >= 15 -%endif BuildRequires: pkgconfig(liblzma) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libmicrohttpd) -%endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 -%endif -%if 0%{?suse_version} >= 1315 +BuildRequires: pkgconfig(mount) >= 2.20 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif -%else -%if 0%{?suse_version} >= 1310 -%ifarch %ix86 x86_64 x32 %arm -BuildRequires: pkgconfig(libseccomp) -%endif -%endif -%endif -%if ! 0%{?bootstrap} -BuildRequires: libapparmor-devel -%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -%if 0%{?suse_version} > 1310 Conflicts: sysvinit -%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else +BuildRequires: docbook-xsl-stylesheets +BuildRequires: gobject-introspection-devel +BuildRequires: gtk-doc +BuildRequires: libgcrypt-devel +BuildRequires: libusb-devel +BuildRequires: libxslt-tools +%if %{with python} +BuildRequires: python +%endif +BuildRequires: libapparmor-devel +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 +BuildRequires: pkgconfig(libmicrohttpd) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd -%if 0%{?suse_version} <= 1310 -Requires: kmod >= 14 -%else Requires: kmod >= 15 -%endif Requires: netcfg Requires: pam-config >= 0.79-5 +BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.21 +Requires: util-linux >= 2.25 Requires(post): coreutils Requires(post): findutils -%endif -%if ! 0%{?bootstrap} Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent @@ -168,47 +126,31 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} -Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz + +#Git-Clone: git://anongit.freedesktop.org/systemd/systemd +Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif -Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 -Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source1060: boot.udev Source1063: udev-generate-persistent-rule.sh -Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs -# -# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r -Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch -# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called -Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch -Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch -Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch -Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch -Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch -Patch18: fix-owner-of-var-log-btmp.patch -# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file -Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -216,14 +158,11 @@ Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch -# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable -Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts -Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file @@ -236,18 +175,10 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) -Patch23: disable-nss-myhostname-warning-bnc-783841.patch -# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) -Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin -Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian -Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -256,126 +187,8 @@ Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) -Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch -# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com -Patch117: 0001-make-209-working-on-older-dist.patch -# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com -Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch121: 0001-login-fix-pos-array-allocation.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch137: 0004-man-document-missing-options-of-systemd-run.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch140: 0007-journal-forget-file-after-encountering-an-error.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch143: 0010-man-update-link-to-LSB.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch145: 0012-man-add-missing-comma.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch151: 0005-logind-fix-policykit-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch158: 0007-networkd-fix-typo.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -384,8 +197,6 @@ Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch -Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com @@ -394,8 +205,6 @@ Patch183: 0001-add-network-device-after-NFS-mount-units.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch -# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) -Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager @@ -408,652 +217,33 @@ Patch191: systemd-dbus-system-bus-address.patch Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/14 -Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -# PATCH-FIX-SUSE Do not clean the data base files of the manual pages -Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch199: 0001-bash-completion-fix-__get_startable_units.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch -# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. -Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch -# PATCH-FIX-UPSTREAM Fix uninitialized memory -Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch -# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) -Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch216: 0003-backlight-unify-error-messages.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch -# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) -Patch219: log-target-null-instead-kmsg.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch222: 0001-core-close-socket-fds-asynchronously.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch226: 0002-logind-fix-printf-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch232: 0008-man-update-journald-rate-limit-defaults.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch245: 0007-logind-fix-Display-property-of-user-objects.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch246: 0001-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch247: 0002-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch249: 0004-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch250: 0005-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch252: 0002-journal-properly-detect-language-specified-in-line.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch262: 0001-virt-rework-container-detection-logic.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch -# PATCH-FIX-UPSTREAM added at 2014/06/05 -Patch269: 0001-hwdb-fix-case-sensitive-match.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch272: 0001-umount-modernizations.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch274: 0003-core-allow-transient-mount-units.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU -Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch278: 0001-core-fix-invalid-free-in-killall.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch -# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) -Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch -# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available -Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch284: 0005-po-add-Greek-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch286: 0007-po-add-German-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch295: 0005-man-fix-path-in-crypttab-5.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch296: 0001-units-order-network-online.target-after-network.targ.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch297: 0001-core-use-correct-format-string-for-UIDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch312: 0006-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch314: 0001-architecture-Add-tilegx.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch315: 0002-architecture-Add-cris.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch316: 0003-arch-add-crisv32-to-uname-check.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch317: 0004-architecture-remove-cris-from-uname-list.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch319: 0002-namespace-fix-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch320: 0001-machine-don-t-return-uninitialized-variable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch330: 0002-journal-compress-improve-xz-compression-performance.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/10 -Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch335: 0002-util-fix-has-cc-check-and-add-test.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch341: 0001-po-add-Ukrainian-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch347: 0003-Add-quotes-to-warning-message.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch349: 0001-bash-completion-p-option-for-journalctl.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch350: 0002-journalctl-man-allow-only-between-terms.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch355: 0003-Always-check-asprintf-return-code.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch358: 0006-parse_boolean-require-exact-matches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch -# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console Patch362: tty-ask-password-agent-on-console.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch -# PATCH-FIX-UPSTREAM added at 2014/08/01 -Patch367: 0007-hwdb-update.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch370: 0002-switch-root-umount-the-old-root-correctly.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch385: 0008-hwdb-update.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch390: 0001-login-fix-memory-leak-on-DropController.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch -# PATCH-FIX-UPSTREAM added at 2014/08/29 -Patch394: 0001-nspawn-fix-network-interface.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch395: 0001-completion-filter-templates-from-restartable-units.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch396: 0002-systemd-fix-error-message.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch398: 0004-config-parser-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch399: 0005-login-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/02 -Patch400: 0001-login-simplify-controller-handling.patch -# PATCH-FIX-UPSTREAM added at 2014/09/05 -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 -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch416: 0002-util-remove-a-unnecessary-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch418: 0004-shared-conf-parser.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch419: 0005-logind-fix-typo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch -# PATCH-FIX-UPSTREAM added at 2014/09/16 -Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary -Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved -Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) -Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch436: 0002-bus-remove-unused-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/26 -Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch442: 0004-bootchart-check-return-of-strftime.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch450: 0003-fileio-label-return-error-when-writing-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch452: 0004-sd-event-check-the-value-of-received-signal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch459: 0005-util-avoid-double-close-of-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/10/13 -Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/14 -Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch -# PATCH-FIX-SUSE added at 2014/10/15 -Patch468: avoid-leaking-socket-descriptors.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch473: 0005-cryptsetup-fix-an-OOM-check.patch -# PATCH-FIX-UPSTREAM added at 2014/10/24 -Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch -# PATCH-FIX-SUSE added at 2014/10/24 +# PATCH-FIX-SUSE added on 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch480: 0005-journalctl-correct-help-text-for-until.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch481: 0006-calendarspec-fix-typo-in-annually.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch483: 0008-util-introduce-sethostname_idempotent.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch -# PATCH-FIX-SUSE added at 2014/11/05 +# PATCH-FIX-SUSE added on 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch496: 0006-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch498: 0008-journald-fix-memory-leak-on-error-path.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch -# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) -Patch513: 513-nspawn-veth.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) @@ -1080,188 +270,46 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 -Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch -# PATCH-FIX-SUSE increase result size for programs (bnc#867840) -Patch1010: 1010-udev-increase-result-size-for-programs.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch -Patch1014: 1014-udev-update-net_id-comments.patch -# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch # PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch Patch1021: 1021-udev-re-add-persistent-net-rules.patch -# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1024: 1024-udev-always-close-lock-file-descriptor.patch -# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch -Patch1026: 1026-udevd-inotify-modernizations.patch -# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch -Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch -# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch -Patch1028: 1028-udev-link-config-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch -Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch -# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch -Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch -# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch -Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch -Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch -# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch -Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch -Patch1044: 1044-rules-update-qemu-hid-rules.patch -# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch -Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch # PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch -# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch -Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch -# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch -Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch # PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch -Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch -# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch -Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch -# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch -Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch -# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch -Patch1057: 1057-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch -Patch1058: 1058-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch -Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch -Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch -# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 -# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch -Patch1081: 1081-udevd-check-return-of-various-functions.patch -# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch -Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch -# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch -Patch1085: 1085-udev-fix-typos.patch -# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch -Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch -# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch -Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch # PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch -# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch -Patch1089: 1089-fix-cgroup-device-controller.patch -# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch -Patch1091: 1091-udev-path_id-update-comments.patch -# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch -Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch -# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch -Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch -# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch -Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1469,6 +517,24 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. +%package -n nss-mymachines +Summary: Plugin for local virtual host name resolution +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-mymachines +nss-myhostname is a plugin for the GNU Name Service Switch (NSS) +functionality of the GNU C Library (glibc) providing host name +resolution for the locally configured containers and virtual machines +systemd-machined knows about. + +%package -n nss-resolve +Summary: Plugin for local hostname resolution via systemd-resolved +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-resolve + %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ @@ -1480,13 +546,12 @@ Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. - %endif %prep -%setup -q -n systemd-%{version} +%setup -q -n systemd-%version echo "Checking whether upstream rpm macros changed..." -[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 +diff -au "%{S:10}" src/core/macros.systemd.in # only needed for bootstrap %if 0%{?bootstrap} @@ -1494,29 +559,15 @@ cp %{SOURCE7} m4/ %endif # systemd patches -%patch0 -p1 -%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 -%if 0%{?suse_version} <= 1310 -%patch8 -p1 -%endif -%patch9 -p1 %patch12 -p1 -%patch13 -p0 -%patch15 -p1 %patch16 -p1 %patch17 -p1 -%patch18 -p1 -%patch19 -p0 %patch20 -p1 %patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html @@ -1527,418 +578,44 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch42 -p1 -%patch46 -p1 -%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 -%patch93 -p1 -%patch114 -p0 -%if 0%{?suse_version} <= 1310 -%patch117 -p1 -%endif -%patch119 -p1 %patch120 -p1 -%patch121 -p0 -%patch122 -p0 -%patch123 -p0 -%patch124 -p0 -%patch125 -p0 -%patch126 -p0 -%patch127 -p0 -%patch128 -p0 -%patch129 -p0 -%patch130 -p0 -%patch131 -p0 -%patch132 -p0 -%patch133 -p0 -%patch134 -p0 -%patch135 -p0 -%patch136 -p0 -%patch137 -p0 -%patch138 -p0 -%patch139 -p0 -%patch140 -p0 -%patch141 -p0 -%patch142 -p0 -%patch143 -p0 -%patch144 -p0 -%patch145 -p0 -%patch146 -p0 -%patch147 -p0 -%patch148 -p0 -%patch149 -p0 -%patch150 -p0 -%patch151 -p0 -%patch152 -p0 -%patch153 -p0 -%patch154 -p0 -%patch155 -p0 -%patch157 -p0 -%patch158 -p0 -%patch159 -p0 -%patch160 -p0 -%patch161 -p0 -%patch162 -p0 -%patch163 -p0 -%patch164 -p0 -%patch165 -p0 -%patch166 -p0 -%patch167 -p0 -%patch168 -p0 -%patch169 -p0 -%patch170 -p0 -%patch171 -p0 -%patch172 -p0 -%patch173 -p0 -%patch174 -p0 -%patch175 -p0 -%patch176 -p0 %patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 -%patch181 -p1 %patch182 -p1 %patch183 -p1 %patch185 -p1 %patch186 -p1 -%patch187 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 -%patch194 -p0 -%patch196 -p1 -%patch195 -p0 %patch197 -p1 %patch198 -p1 -%patch199 -p0 -%patch200 -p0 -%patch201 -p0 -%patch202 -p0 %patch203 -p1 -%patch204 -p1 -%patch206 -p0 -%patch207 -p0 %patch208 -p1 -%patch209 -p0 -%patch211 -p0 -%patch212 -p0 -%patch213 -p0 -%patch214 -p0 -%patch215 -p0 -%patch216 -p0 -%patch217 -p0 -%patch218 -p0 -%patch219 -p1 -%patch220 -p0 -%patch221 -p0 -%patch222 -p0 -%patch223 -p0 -%patch224 -p0 -%patch225 -p0 -%patch226 -p0 -%patch227 -p0 -%patch228 -p0 -%patch229 -p0 -%patch230 -p0 -%patch231 -p0 -%patch232 -p0 -%patch233 -p0 -%patch234 -p0 -%patch235 -p0 -%patch236 -p0 -%patch237 -p0 -%patch238 -p0 -%patch239 -p0 -%patch240 -p0 -%patch241 -p0 -%patch242 -p0 -%patch243 -p0 -%patch244 -p0 -%patch245 -p0 -%patch246 -p0 -%patch247 -p0 -%patch248 -p0 -%patch249 -p0 -%patch250 -p0 -%patch251 -p0 -%patch252 -p0 -%patch253 -p0 -%patch254 -p0 -%patch255 -p0 -%patch256 -p0 -%patch257 -p0 -%patch258 -p0 -%patch259 -p0 -%patch260 -p0 -%patch261 -p0 -%patch262 -p0 -%patch263 -p0 -%patch264 -p0 -%patch265 -p0 -%patch266 -p0 -%patch267 -p0 -%patch268 -p0 -%patch269 -p0 -%patch270 -p0 -%patch271 -p0 -%patch272 -p0 -%patch273 -p0 -%patch274 -p0 -%patch275 -p0 -%patch276 -p0 -%patch277 -p0 -%patch278 -p0 -%patch279 -p0 -%patch280 -p0 -%patch281 -p1 -%patch282 -p0 -%patch283 -p0 -%patch284 -p0 -%patch285 -p0 -%patch286 -p0 -%patch287 -p0 -%patch288 -p0 -%patch289 -p0 -%patch290 -p0 -%patch291 -p0 -%patch292 -p0 -%patch293 -p0 -%patch294 -p0 -%patch295 -p0 -%patch296 -p0 -%patch297 -p0 -%patch298 -p0 -%patch299 -p0 -%patch300 -p0 -%patch301 -p0 -%patch302 -p0 -%patch303 -p0 -%patch304 -p0 -%patch305 -p0 -%patch306 -p0 -%patch307 -p0 -%patch308 -p0 -%patch309 -p0 -%patch310 -p0 -%patch311 -p0 -%patch312 -p0 -%patch313 -p0 -%patch314 -p0 -%patch315 -p0 -%patch316 -p0 -%patch317 -p0 -%patch318 -p0 -%patch319 -p0 -%patch320 -p0 -%patch321 -p0 -%patch322 -p0 -%patch323 -p0 -%patch324 -p0 -%patch325 -p0 -%patch326 -p0 -%patch327 -p0 -%patch328 -p0 -%patch329 -p0 -%patch330 -p0 -%patch331 -p0 -%patch332 -p0 -%patch333 -p0 -%patch334 -p0 -%patch335 -p0 -%patch336 -p0 -%patch337 -p0 -%patch338 -p0 -%patch339 -p0 -%patch340 -p0 -%patch341 -p0 -%patch342 -p0 -%patch343 -p0 -%patch344 -p0 +%patch338 -p1 %patch345 -p1 -%patch346 -p0 -%patch347 -p0 -%patch348 -p0 -%patch349 -p0 -%patch350 -p0 -%patch351 -p0 -%patch352 -p0 -%patch353 -p0 -%patch354 -p0 -%patch355 -p0 -%patch356 -p0 -%patch357 -p0 -%patch358 -p0 -%patch359 -p0 -%patch360 -p0 -%patch361 -p0 +%patch352 -p1 %patch362 -p1 -%patch363 -p0 -%patch364 -p0 -%patch365 -p0 %patch366 -p1 -%patch367 -p0 %patch368 -p1 -%patch369 -p0 -%patch370 -p0 -%patch371 -p0 -%patch372 -p0 -%patch373 -p0 -%patch374 -p0 -%patch375 -p0 -%patch376 -p0 -%patch377 -p0 -%patch378 -p0 -%patch379 -p0 -%patch380 -p0 -%patch381 -p0 -%patch382 -p0 -%patch383 -p0 -%patch384 -p0 -%patch385 -p0 %patch386 -p1 -%patch387 -p0 -%patch388 -p0 -%patch389 -p0 -%patch390 -p0 -%patch391 -p0 -%patch392 -p0 -%patch393 -p0 -%patch394 -p0 -%patch395 -p0 -%patch396 -p0 -%patch397 -p0 -%patch398 -p0 -%patch399 -p0 -%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 -%patch415 -p0 -%patch416 -p0 -%patch417 -p0 -%patch418 -p0 -%patch419 -p0 -%patch420 -p0 -%patch421 -p0 -%patch422 -p0 -%patch423 -p0 -%patch424 -p0 -%patch425 -p0 -%patch426 -p0 -%patch427 -p0 -%patch428 -p0 -%patch429 -p0 %patch430 -p1 -%patch431 -p0 -%patch432 -p0 -%patch433 -p0 -%patch434 -p0 -%patch435 -p0 -%patch436 -p0 -%patch437 -p0 -%patch438 -p0 -%patch439 -p0 +%patch475 -p1 %ifarch %arm %patch38 -p1 %endif -%patch440 -p0 -%patch441 -p0 -%patch442 -p0 -%patch443 -p0 -%patch444 -p0 -%patch445 -p0 -%patch446 -p0 -%patch447 -p0 -%patch448 -p0 -%patch449 -p0 -%patch450 -p0 -%patch451 -p0 -%patch452 -p0 -%patch453 -p0 -%patch454 -p0 -%patch455 -p0 -%patch456 -p0 -%patch457 -p0 -%patch458 -p0 -%patch459 -p0 -%patch460 -p0 -%patch461 -p0 -%patch462 -p0 -%patch463 -p0 -%patch464 -p0 -%patch465 -p0 -%patch466 -p0 -%patch467 -p0 -%patch468 -p0 -%patch469 -p0 -%patch470 -p0 -%patch471 -p0 -%patch472 -p0 -%patch473 -p0 -%patch474 -p0 -%patch475 -p0 -%patch476 -p0 -%patch477 -p0 -%patch478 -p0 -%patch479 -p0 -%patch480 -p0 -%patch481 -p0 -%patch482 -p0 -%patch483 -p0 -%patch484 -p0 -%patch485 -p0 -%patch486 -p0 -%patch487 -p0 -%patch488 -p0 -%patch489 -p0 -%patch490 -p0 -%patch491 -p0 -%patch492 -p0 -%patch493 -p0 -%patch494 -p0 -%patch495 -p0 -%patch496 -p0 -%patch497 -p0 -%patch498 -p0 -%patch499 -p0 -%patch500 -p0 -%patch501 -p0 -%patch502 -p0 -%patch503 -p0 -%patch504 -p0 -%patch505 -p0 -%patch506 -p0 -%patch507 -p0 -%patch509 -p0 -%patch510 -p0 -%patch511 -p0 -%patch512 -p0 -%patch513 -p1 -%patch514 -p0 -%patch515 -p0 -%patch516 -p0 -%patch517 -p0 -%patch518 -p1 -%patch519 -p1 +%patch490 -p1 %patch520 -p1 -%patch521 -p0 +%patch521 -p1 # udev patches %patch1001 -p1 @@ -1947,131 +624,31 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 -%if 0%{?suse_version} <= 1310 -%patch1008 -p1 -%endif -%patch1009 -p1 -%patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p0 -%patch1017 -p0 -%patch1018 -p0 -%patch1019 -p0 -%patch1020 -p0 %patch1021 -p1 -%if %{with udevsettle} -%patch1022 -p1 -%endif -%patch1023 -p0 -%patch1024 -p0 -%if %{with blkrrpart} -%patch1025 -p1 -%endif -%patch1026 -p1 -%if %{with blkrrpart} -%patch1027 -p1 -%endif -%patch1028 -p1 -%if %{with blkrrpart} -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%endif %patch1035 -p1 %patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1038 -p0 -%if %{with udevsettle} -%patch1039 -p0 -%endif %patch1040 -p1 -%if %{with udevsettle} -%patch1041 -p0 -%patch1042 -p0 -%patch1043 -p0 -%endif -%patch1044 -p0 -%patch1045 -p0 %patch1046 -p1 -%patch1047 -p0 -%patch1048 -p0 -%patch1049 -p0 %patch1050 -p1 %patch1051 -p1 -%patch1052 -p0 %patch1053 -p1 %if %{with blkrrpart} -%patch1054 -p0 %else %patch1055 -p1 %endif -%patch1056 -p0 -%if %{with udevsettle} -%patch1057 -p0 -%else -%patch1058 -p0 -%endif -%patch1059 -p0 %patch1060 -p1 -%patch1061 -p0 %patch1062 -p1 -%if %{with parentpathid} -%patch1063 -p0 -%endif -%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 -%patch1080 -p0 -%patch1081 -p0 -%patch1082 -p0 -%patch1083 -p0 -%patch1084 -p0 -%patch1085 -p0 -%patch1086 -p0 -%patch1087 -p0 %patch1088 -p1 -%patch1089 -p1 -%if %{with parentpathid} -%patch1090 -p0 -%patch1091 -p0 -%endif -%patch1092 -p0 -%patch1093 -p0 -%patch1094 -p0 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 -%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -2091,17 +668,6 @@ else sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c fi -%if 0%{?suse_version} <= 1310 -# -# Older versions like oS 13.1 do not distinguish between -# network.target and network-online.target -# -for f in src/core/service.c src/insserv-generator/insserv-generator.c -do - sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f -done -%endif - # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 @@ -2142,11 +708,11 @@ cflags () esac set +o noclobber } -autoreconf -fiv +autoreconf -fi # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=e -export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" +export CFLAGS="%{optflags}" export LDFLAGS %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" @@ -2172,6 +738,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS --disable-gudev \ --disable-myhostname \ --disable-manpages \ + --disable-machined \ %else --enable-manpages \ %if %{with python} @@ -2179,16 +746,10 @@ cflags -Wl,--hash-size=8599 LDFLAGS %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ -%endif -%if %{with compat_libs} - --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ -%if 0%{?suse_version} <= 1310 - --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ -%endif %if ! 0%{?has_efi} --disable-efi \ %endif @@ -2197,11 +758,15 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ -%if 0%{?suse_version} > 1310 - --disable-multi-seat-x \ -%endif %if %{without networkd} --disable-networkd \ +%endif +%if %{without sysvcompat} + --with-sysvinit-path= \ + --with-sysvrcnd-path= \ +%endif +%if %{without resolved} + --disable-resolved \ %endif --disable-kdbus make %{?_smp_mflags} @@ -2210,19 +775,9 @@ make %{?_smp_mflags} update-man-list man %endif %install -# Use refreshed manual pages -for man in man/*.[0-9] -do - section=${man##*.} - test -d man/man${section} || continue - new=man/man${section}/${man##*/} - if test -s $new -a $new -nt $man - then - cp -p $new $man - else - sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man - fi -done +%if !0%{?bootstrap} +cp man/man[0-9]/*.[0-9] man/ +%endif make install DESTDIR="%buildroot" # move to %{_lib} @@ -2235,24 +790,17 @@ ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd + %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -%if 0%{?suse_version} <= 1310 -ln -sf /lib/firmware %{buildroot}/usr/lib/firmware -%endif + %if ! 0%{?bootstrap} -install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif -sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} -sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} -sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule -install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -2270,28 +818,7 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# aliases for /etc/init.d/* -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service -ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service -install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service -ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service -ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service + # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -2364,15 +891,6 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ -%if ! 0%{?bootstrap} -%if %{without python} -for man in systemd.directives.7 systemd.index.7 -do - install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ -done -%endif -%endif - mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed @@ -2389,10 +907,8 @@ done > files.completion > files.completion %endif -%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd -%endif %if %{without compat_libs} lib=%{_libdir}/libsystemd.so @@ -2404,30 +920,6 @@ do done %endif -%if 0%{suse_version} <= 1310 -cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' - [Unit] - Description=Fix against deadlock at shutdown - Wants=remote-fs.target remote-fs-pre.target - Before=remote-fs.target systemd-logind.service - After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target - ConditionPathExists=|/etc/init.d/autofs - ConditionPathExists=|/etc/init.d/nfs - - [Service] - Type=oneshot - RemainAfterExit=true - ExecStart=/bin/true - ExecStop=-/etc/init.d/autofs stop - ExecStop=-/etc/init.d/nfs stop - - [Install] - WantedBy=remote-fs.target - EOF - mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants - ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants -%endif - # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ @@ -2475,6 +967,7 @@ fi getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif +systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -2522,8 +1015,6 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ - systemd-readahead-collect.service \ - systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -2553,7 +1044,6 @@ fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : -%{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : @@ -2652,6 +1142,9 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig +%post -n nss-mymachines -p /sbin/ldconfig +%postun -n nss-mymachines -p /sbin/ldconfig + %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : @@ -2674,17 +1167,26 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl -%{_bindir}/systemd-sleep-grub +%if %{with networkd} +%{_bindir}/networkctl +%endif %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl +%if ! 0%{?bootstrap} %{_bindir}/machinectl +%endif %{_bindir}/systemctl %{_bindir}/systemd-analyze -%{_bindir}/systemd-coredumpctl +%{_bindir}/coredumpctl %{_bindir}/systemd-delta +%{_bindir}/systemd-escape +%{_bindir}/systemd-firstboot +%{_bindir}/systemd-path +%{_bindir}/systemd-sysusers %{_bindir}/systemd-notify +%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -2727,7 +1229,6 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount -%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -2766,12 +1267,19 @@ exit 0 %{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif -%{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-debug-generator +%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator +%if %{with sysvcompat} +%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%endif +%{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator +%{_prefix}/lib/systemd/system-preset/ +%{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user @@ -2800,13 +1308,23 @@ exit 0 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf +%config(noreplace) %{_sysconfdir}/systemd/coredump.conf +%if !0%{?bootstrap} +%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf +%endif +%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf +%endif +%if %{with networkd} +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf +%endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -2823,15 +1341,24 @@ exit 0 %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target +%{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service +%if %{with networkd} +%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%if !0%{?bootstrap} %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions +%if !0%{?bootstrap} +%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy +%endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy @@ -2881,8 +1408,11 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed -%if 0%{?suse_version} > 1310 -%{_datadir}/pkgconfig/systemd.pc +%if %{with resolved} +%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf +%{_sysconfdir}/systemd/resolved.conf +%{_libdir}/libnss_resolve.so.2 +%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service %endif %if ! 0%{?bootstrap} @@ -2907,9 +1437,7 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/systemd.pc -%endif +%{_libdir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -2971,7 +1499,6 @@ exit 0 %{_prefix}/lib/udev/rules.d/*.rules %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* -%{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin @@ -3002,9 +1529,6 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/udev.pc -%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc @@ -3038,8 +1562,9 @@ exit 0 %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ +%if %{with sysvcompat} %{_localstatedir}/log/README -/etc/init.d/systemd-journald +%endif %files -n nss-myhostname %defattr(-, root, root) @@ -3052,6 +1577,10 @@ exit 0 %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd + +%files -n nss-mymachines +%defattr(-,root,root) +%_libdir/libnss_mymachines.so* %endif %changelog diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch deleted file mode 100644 index fb97a2f1..00000000 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Frederic Crozat -Date: Tue, 14 Aug 2012 14:26:16 +0200 -Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock - ---- - src/timedate/timedated.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- systemd-206_git201308300826.orig/src/timedate/timedated.c -+++ systemd-206_git201308300826/src/timedate/timedated.c -@@ -182,6 +182,13 @@ static int read_data(void) { - goto have_timezone; - } - } -+#ifdef HAVE_SYSV_COMPAT -+ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+ "TIMEZONE", &c->zone, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); -+#endif - - have_timezone: - if (isempty(c->zone)) { diff --git a/tmpfiles-do-not-clean-for-mandb-index-files.patch b/tmpfiles-do-not-clean-for-mandb-index-files.patch deleted file mode 100644 index 3bfd928f..00000000 --- a/tmpfiles-do-not-clean-for-mandb-index-files.patch +++ /dev/null @@ -1,22 +0,0 @@ -There is no need to clean out all 30 days the index data base -files nor the cachedir tags of mandb. Those files are used -for whatis(1) as well as for apropos(1). - ---- - systemd-210/tmpfiles.d/systemd.conf | 5 +++++ - 1 file changed, 5 insertions(+) - ---- systemd-210/tmpfiles.d/systemd.conf -+++ systemd-210/tmpfiles.d/systemd.conf 2014-06-11 13:47:59.470236564 +0000 -@@ -14,6 +14,11 @@ f /var/log/wtmp 0664 root utmp - - f /var/log/btmp 0600 root root - - - d /var/cache/man - - - 30d -+# mandb uses data base file which should not be cleared -+x /var/cache/man/index.* -+x /var/cache/man/CACHEDIR.TAG -+x /var/cache/man/*/index.* -+x /var/cache/man/*/CACHEDIR.TAG - - d /run/systemd/ask-password 0755 root root - - d /run/systemd/seats 0755 root root - diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index 1091a730..ee7e73d8 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -1,110 +1,99 @@ --- - src/tty-ask-password-agent/tty-ask-password-agent.c | 190 +++++++++++++++++++- - 1 file changed, 185 insertions(+), 5 deletions(-) + src/tty-ask-password-agent/tty-ask-password-agent.c | 171 +++++++++++++++++++- + 1 file changed, 166 insertions(+), 5 deletions(-) ---- systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-30 10:48:43.602052750 +0000 -@@ -28,8 +28,12 @@ - #include - #include - #include -+#include +Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c +=================================================================== +--- systemd.orig/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd/src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -31,6 +31,10 @@ #include + #include + #include ++#include +#include +#include - #include +#include - #include #include "util.h" -@@ -41,6 +45,9 @@ - #include "ask-password-api.h" + #include "mkdir.h" +@@ -42,6 +46,9 @@ #include "strv.h" #include "build.h" + #include "def.h" +#include "fileio.h" +#include "macro.h" +#include "list.h" static enum { ACTION_LIST, -@@ -49,6 +56,21 @@ static enum { +@@ -50,6 +57,22 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; +struct console { + LIST_FIELDS(struct console, handle); -+ char *tty; ++ const char *tty; + pid_t pid; + int id; ++ char dev[]; +}; + -+static volatile uint32_t *usemask; ++static volatile unsigned long *usemask; +static volatile sig_atomic_t sigchild; +static void chld_handler(int sig) +{ + (void)sig; -+ sigchild++; ++ ++sigchild; +} + static bool arg_plymouth = false; static bool arg_console = false; -@@ -246,12 +268,77 @@ finish: - return r; +@@ -208,6 +231,58 @@ static int ask_password_plymouth( + return 0; } +static const char *current_dev = "/dev/console"; +static LIST_HEAD(struct console, consoles); +static int collect_consoles(void) { + _cleanup_free_ char *active = NULL; -+ char *w, *state; -+ struct console *c; -+ size_t l; -+ int id; -+ int r; ++ const char *word, *state; ++ struct console *con; ++ size_t len; ++ int ret, id = 0; + -+ r = read_one_line_file("/sys/class/tty/console/active", &active); -+ if (r < 0) -+ return r; -+ -+ id = 0; -+ FOREACH_WORD(w, l, active, state) { ++ ret = read_one_line_file("/sys/class/tty/console/active", &active); ++ if (ret < 0) ++ return ret; ++ FOREACH_WORD(word, len, active, state) { + _cleanup_free_ char *tty = NULL; + -+ if (strneq(w, "tty0", l)) { -+ if (read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { -+ w = tty; -+ l = strlen(tty); -+ } ++ if (strneq(word, "tty0", len) && ++ read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { ++ word = tty; ++ len = strlen(tty); + } -+ -+ c = malloc0(sizeof(struct console)+5+l+1); -+ if (!c) { ++ con = malloc0(sizeof(*con) + strlen("/dev/") + len + 1); ++ if (con == NULL) { + log_oom(); + continue; + } -+ -+ c->tty = ((char*)c)+sizeof(struct console); -+ stpncpy(stpcpy(c->tty, "/dev/"),w,l); -+ c->id = id++; -+ -+ LIST_PREPEND(handle, consoles, c); ++ sprintf(con->dev, "/dev/%.*s", (int)len, word); ++ con->tty = con->dev; ++ con->id = id++; ++ LIST_PREPEND(handle, consoles, con); + } -+ -+ if (!consoles) { -+ -+ c = malloc0(sizeof(struct console)); -+ if (!c) { ++ if (consoles == NULL) { ++ con = malloc0(sizeof(*con)); ++ if (con == NULL) { + log_oom(); + return -ENOMEM; + } -+ -+ c->tty = (char *)current_dev; -+ c->id = id++; -+ -+ LIST_PREPEND(handle, consoles, c); ++ con->tty = current_dev; ++ con->id = id++; ++ LIST_PREPEND(handle, consoles, con); + } -+ + return 0; +} + @@ -118,168 +107,133 @@ +} + static int parse_password(const char *filename, char **wall) { - char *socket_name = NULL, *message = NULL, *packet = NULL; + _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; uint64_t not_after = 0; - unsigned pid = 0; - int socket_fd = -1; - bool accept_cached = false; -+ size_t packet_length = 0; +@@ -308,7 +383,7 @@ static int parse_password(const char *fi + _cleanup_free_ char *password = NULL; - const ConfigTableItem items[] = { - { "Ask", "Socket", config_parse_string, 0, &socket_name }, -@@ -323,7 +410,6 @@ static int parse_password(const char *fi - struct sockaddr sa; - struct sockaddr_un un; - } sa = {}; -- size_t packet_length = 0; - - assert(arg_action == ACTION_QUERY || - arg_action == ACTION_WATCH); -@@ -365,7 +451,7 @@ static int parse_password(const char *fi - char *password = NULL; - - if (arg_console) -- if ((tty_fd = acquire_terminal("/dev/console", false, false, false, (usec_t) -1)) < 0) { -+ if ((tty_fd = acquire_terminal(current_dev, false, false, true, (usec_t) -1)) < 0) { - r = tty_fd; - goto finish; - } -@@ -386,6 +472,7 @@ static int parse_password(const char *fi - strcpy(packet+1, password); - } - -+ memset(password, 0, strlen(password)); - free(password); + if (arg_console) { +- tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY); ++ tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY); + if (tty_fd < 0) + return tty_fd; } - } -@@ -423,6 +510,7 @@ finish: - if (socket_fd >= 0) - close_nointr_nofail(socket_fd); - -+ memset(packet, 0, packet_length); - free(packet); - free(socket_name); - free(message); -@@ -726,8 +814,10 @@ static int parse_argv(int argc, char *ar +@@ -612,9 +687,85 @@ static int parse_argv(int argc, char *ar + return 1; } ++static int zzz(void) ++{ ++ struct console *con; ++ struct sigaction sig = { ++ .sa_handler = chld_handler, ++ .sa_flags = SA_NOCLDSTOP | SA_RESTART, ++ }; ++ struct sigaction oldsig; ++ sigset_t set, oldset; ++ int status = 0, ret; ++ pid_t job; ++ ++ collect_consoles(); ++ if (!consoles->handle_next) { ++ consoles->pid = 0; ++ con = consoles; ++ goto nofork; ++ } ++ ++ assert_se(sigemptyset(&set) == 0); ++ assert_se(sigaddset(&set, SIGHUP) == 0); ++ assert_se(sigaddset(&set, SIGCHLD) == 0); ++ assert_se(sigemptyset(&sig.sa_mask) == 0); ++ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); ++ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); ++ sig.sa_handler = SIG_DFL; ++ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); ++ ++ LIST_FOREACH(handle, con, consoles) { ++ switch ((con->pid = fork())) { ++ case 0: ++ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) ++ _exit(EXIT_FAILURE); ++ zero(sig); ++ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); ++ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); ++ nofork: ++ setsid(); ++ release_terminal(); ++ *usemask |= 1 << con->id; ++ current_dev = con->tty; ++ return con->id; /* child */ ++ case -1: ++ log_error("Failed to query password: %s", strerror(errno)); ++ exit(EXIT_FAILURE); ++ default: ++ break; ++ } ++ } ++ ++ ret = 0; ++ while ((job = wait(&status)) != 0) { ++ if (job < 0) { ++ if (errno != EINTR) ++ break; ++ continue; ++ } ++ LIST_FOREACH(handle, con, consoles) { ++ if (con->pid == job || kill(con->pid, 0) < 0) { ++ *usemask &= ~(1 << con->id); ++ continue; ++ } ++ if (*usemask & (1 << con->id)) ++ continue; ++ kill(con->pid, SIGHUP); ++ usleep(50000); ++ kill(con->pid, SIGKILL); ++ } ++ if (WIFEXITED(status) && ret == 0) ++ ret = WEXITSTATUS(status); ++ } ++ free_consoles(); ++ exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */ ++} ++ int main(int argc, char *argv[]) { -+ int id = 0; - int r; +- int r; ++ int r, id = 0; + LIST_HEAD_INIT(consoles); log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); -@@ -737,11 +827,99 @@ int main(int argc, char *argv[]) { - if ((r = parse_argv(argc, argv)) <= 0) +@@ -625,11 +776,19 @@ int main(int argc, char *argv[]) { + if (r <= 0) goto finish; -+ usemask = (uint32_t*) mmap(NULL, sizeof(uint32_t), PROT_READ|PROT_WRITE, -+ MAP_ANONYMOUS|MAP_SHARED, -1, 0); ++ usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE, ++ MAP_ANONYMOUS | MAP_SHARED, -1, 0); ++ assert_se(usemask != NULL); + if (arg_console) { - setsid(); - release_terminal(); -- } + if (!arg_plymouth && arg_action != ACTION_WALL && + arg_action != ACTION_LIST) { -+ struct console *c; -+ struct sigaction sig = { -+ .sa_handler = chld_handler, -+ .sa_flags = SA_NOCLDSTOP|SA_RESTART, -+ }; -+ struct sigaction oldsig; -+ sigset_t set, oldset; -+ int status = 0; -+ pid_t job; -+ -+ collect_consoles(); -+ -+ if (!consoles->handle_next) { -+ consoles->pid = 0; -+ c = consoles; -+ goto nofork; -+ } - -+ assert_se(sigemptyset(&set) == 0); -+ assert_se(sigaddset(&set, SIGHUP) == 0); -+ assert_se(sigaddset(&set, SIGCHLD) == 0); -+ assert_se(sigemptyset(&sig.sa_mask) == 0); -+ -+ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); -+ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); -+ sig.sa_handler = SIG_DFL; -+ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); -+ LIST_FOREACH(handle, c, consoles) { -+ -+ switch ((c->pid = fork())) { -+ case 0: -+ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) -+ _exit(EXIT_FAILURE); -+ zero(sig); -+ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); -+ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); -+ /* fall through */ -+ nofork: -+ setsid(); -+ release_terminal(); -+ id = c->id; -+ *usemask |= (1<tty; -+ goto forked; /* child */ -+ case -1: -+ log_error("Failed to query password: %s", strerror(errno)); -+ return EXIT_FAILURE; -+ default: -+ break; -+ } -+ } -+ -+ r = 0; -+ while ((job = wait(&status))) { -+ if (job < 0) { -+ if (errno != EINTR) -+ break; -+ continue; -+ } -+ LIST_FOREACH(handle, c, consoles) { -+ if (c->pid == job) { -+ *usemask &= ~(1<id); -+ continue; -+ } -+ if (kill(c->pid, 0) < 0) { -+ *usemask &= ~(1<id); -+ continue; -+ } -+ if (*usemask & (1<id)) -+ continue; -+ kill(c->pid, SIGHUP); -+ usleep(50000); -+ kill(c->pid, SIGKILL); -+ } -+ -+ if (WIFEXITED(status) && !r) -+ r = WEXITSTATUS(status); -+ } -+ free_consoles(); -+ return r != 0 ? EXIT_FAILURE : EXIT_SUCCESS; /* parent */ -+ ++ id = zzz(); + } else { + setsid(); + release_terminal(); + } -+ } -+forked: - if (arg_action == ACTION_WATCH || - arg_action == ACTION_WALL) + } +- + if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) r = watch_passwords(); -@@ -751,6 +929,8 @@ int main(int argc, char *argv[]) { + else +@@ -638,6 +797,8 @@ int main(int argc, char *argv[]) { if (r < 0) - log_error("Error: %s", strerror(-r)); + log_error_errno(r, "Error: %m"); + free_consoles(); -+ *usemask &= ~(1< #include @@ -37,7 +39,7 @@ Related to bnc#892096 + entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); + if (entropy_fd < 0) { -+ entropy_count = 0; ++ entropy_count = 0; + if (errno != ENOENT) { + log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); + r = -errno; @@ -55,13 +57,13 @@ Related to bnc#892096 seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -113,16 +133,37 @@ int main(int argc, char *argv[]) { +@@ -113,12 +133,34 @@ int main(int argc, char *argv[]) { } else { lseek(seed_fd, 0, SEEK_SET); -- k = loop_write(random_fd, buf, (size_t) k, false); -- if (k <= 0) { -- log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); +- r = loop_write(random_fd, buf, (size_t) k, false); +- if (r < 0) +- log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); + if (entropy_count && (size_t) k == buf_size) { + struct rand_pool_info entropy = { + .entropy_count = entropy_count, @@ -77,15 +79,12 @@ Related to bnc#892096 + k = loop_write(random_fd, buf, (size_t) k, false); + if (k <= 0) { + log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); - -- r = k == 0 ? -EIO : (int) k; + r = k == 0 ? -EIO : (int) k; + } - } ++ } } } else if (streq(argv[1], "save")) { - + /* Read available entropy count, if possible */ + f = fopen("/proc/sys/kernel/random/entropy_avail", "re"); + if (f) { @@ -93,11 +92,10 @@ Related to bnc#892096 + entropy_count = 0; + fclose(f); + } -+ + seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { - log_error("Failed to open " RANDOM_SEED ": %m"); -@@ -137,6 +178,21 @@ int main(int argc, char *argv[]) { +@@ -134,6 +176,21 @@ int main(int argc, char *argv[]) { goto finish; } diff --git a/use-usr-sbin-sulogin-for-emergency-service.patch b/use-usr-sbin-sulogin-for-emergency-service.patch deleted file mode 100644 index e29f4b28..00000000 --- a/use-usr-sbin-sulogin-for-emergency-service.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Andrey Borzenkov -Subject: use /usr/sbin/sulogin in emergency service - -In current Factory sulogin is in /usr/sbin which makes it impossible -to enter emergency service. -Index: systemd-207/units/emergency.service.in -=================================================================== ---- systemd-207.orig/units/emergency.service.in -+++ systemd-207/units/emergency.service.in -@@ -17,7 +17,7 @@ Environment=HOME=/root - WorkingDirectory=/root - ExecStartPre=-/bin/plymouth quit - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=@SYSTEMCTL@ --fail --no-block default - Type=idle - StandardInput=tty-force -Index: systemd-207/units/console-shell.service.m4.in -=================================================================== ---- systemd-207.orig/units/console-shell.service.m4.in -+++ systemd-207/units/console-shell.service.m4.in -@@ -17,7 +17,7 @@ Before=getty.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=-@SYSTEMCTL@ poweroff - Type=idle - StandardInput=tty-force -Index: systemd-207/units/rescue.service.m4.in -=================================================================== ---- systemd-207.orig/units/rescue.service.m4.in -+++ systemd-207/units/rescue.service.m4.in -@@ -18,7 +18,7 @@ Environment=HOME=/root - WorkingDirectory=/root - ExecStartPre=-/bin/plymouth quit - ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=-@SYSTEMCTL@ --fail --no-block default - Type=idle - StandardInput=tty-force diff --git a/vhangup-on-all-consoles.patch b/vhangup-on-all-consoles.patch index b318b124..3273aba6 100644 --- a/vhangup-on-all-consoles.patch +++ b/vhangup-on-all-consoles.patch @@ -2,12 +2,22 @@ Related to bnc#886599 and others. That is use the vhangup(8) tool to explicit do a virtually hangup on the specified on the terminal line to give e.g. the bash a few seconds to e.g. safe its history. +[crrodriguez@opensuse.org: Feb 2015 +This a known kernel bug, no notification from the cgroup subsystem +arrives and the processes in the "scope" units have +to be SIGKILL'ed without delay in order not to hang shutdown +Status: fix not available as of Feb 16 2015 +track progress: https://bugzilla.redhat.com/show_bug.cgi?id=1141137 +] + --- units/getty@.service.m4 | 1 + units/serial-getty@.service.m4 | 1 + 2 files changed, 2 insertions(+) ---- units/getty@.service.m4 -+++ units/getty@.service.m4 2014-07-15 07:30:28.006235859 +0000 +Index: systemd-218/units/getty@.service.m4 +=================================================================== +--- systemd-218.orig/units/getty@.service.m4 ++++ systemd-218/units/getty@.service.m4 @@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0 [Service] # the VT is cleared by TTYVTDisallocate @@ -16,13 +26,15 @@ line to give e.g. the bash a few seconds to e.g. safe its history. Type=idle Restart=always RestartSec=0 ---- units/serial-getty@.service.m4 -+++ units/serial-getty@.service.m4 2014-07-15 07:30:01.366235017 +0000 +Index: systemd-218/units/serial-getty@.service.m4 +=================================================================== +--- systemd-218.orig/units/serial-getty@.service.m4 ++++ systemd-218/units/serial-getty@.service.m4 @@ -24,6 +24,7 @@ IgnoreOnIsolate=yes [Service] - ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600 $TERM + ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM +ExecStopPost=-/sbin/vhangup /dev/%I Type=idle Restart=always - RestartSec=0 + UtmpIdentifier=%I diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch index 41a2b6dc..8aec94ac 100644 --- a/watch_resolv.conf_for_become_changed.patch +++ b/watch_resolv.conf_for_become_changed.patch @@ -1,10 +1,12 @@ --- - src/core/manager.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/manager.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/core/manager.h | 5 ++ - 2 files changed, 108 insertions(+) + 2 files changed, 98 insertions(+) ---- src/core/manager.c -+++ src/core/manager.c 2014-11-07 11:12:58.334193988 +0000 +Index: systemd-218/src/core/manager.c +=================================================================== +--- systemd-218.orig/src/core/manager.c ++++ systemd-218/src/core/manager.c @@ -37,6 +37,7 @@ #include #include @@ -13,7 +15,7 @@ #ifdef HAVE_AUDIT #include -@@ -304,6 +305,101 @@ static int manager_check_ask_password(Ma +@@ -302,6 +303,91 @@ static int manager_check_ask_password(Ma return m->have_ask_password; } @@ -35,13 +37,8 @@ + flush_fd(fd); + + m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ -+ if (m->resolv_conf_inotify_fd >= 0) -+ close_nointr_nofail(m->resolv_conf_inotify_fd); -+ m->resolv_conf_inotify_fd = -1; -+ ++ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); + manager_setup_resolv_conf_change(m); -+ + return m->resolv_conf_noent ? 0 : res_init(); +} + @@ -96,10 +93,7 @@ + + return 0; +fail: -+ if (m->resolv_conf_inotify_fd >= 0) -+ close_nointr_nofail(m->resolv_conf_inotify_fd); -+ m->resolv_conf_inotify_fd = -1; -+ ++ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); + return 0; /* Ignore error here */ +} + @@ -107,23 +101,21 @@ + assert(m); + + m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ if (m->resolv_conf_inotify_fd >= 0) -+ close_nointr_nofail(m->resolv_conf_inotify_fd); -+ m->resolv_conf_inotify_fd = -1; ++ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); +} + static int manager_watch_idle_pipe(Manager *m) { int r; -@@ -562,6 +658,7 @@ int manager_new(SystemdRunningAs running - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; +@@ -557,6 +643,7 @@ int manager_new(SystemdRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + m->resolv_conf_inotify_fd = -1; m->ask_password_inotify_fd = -1; m->have_ask_password = -EINVAL; /* we don't know */ -@@ -613,6 +710,10 @@ int manager_new(SystemdRunningAs running +@@ -618,6 +705,10 @@ int manager_new(SystemdRunningAs running if (r < 0) goto fail; @@ -134,20 +126,22 @@ m->udev = udev_new(); if (!m->udev) { r = -ENOMEM; -@@ -906,6 +1007,8 @@ void manager_free(Manager *m) { - - assert(m); +@@ -896,6 +987,8 @@ Manager* manager_free(Manager *m) { + if (!m) + return NULL; + manager_shutdown_resolv_conf_change(m); + manager_clear_jobs_and_units(m); for (c = 0; c < _UNIT_TYPE_MAX; c++) ---- src/core/manager.h -+++ src/core/manager.h 2014-11-07 11:06:41.466019636 +0000 -@@ -157,6 +157,11 @@ struct Manager { - FILE *proc_self_mountinfo; - sd_event_source *mount_event_source; +Index: systemd-218/src/core/manager.h +=================================================================== +--- systemd-218.orig/src/core/manager.h ++++ systemd-218/src/core/manager.h +@@ -185,6 +185,11 @@ struct Manager { + int utab_inotify_fd; + sd_event_source *mount_utab_event_source; + /* Watch out any change of /etc/resolv.conf */ + int resolv_conf_inotify_fd; From daede5b00d84e012a3eeda5593f4c959d44a09bf6a1b5639bd65e00188d0962b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 5 Mar 2015 14:28:42 +0000 Subject: [PATCH 210/221] Accepting request 288864 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/288864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=216 --- 0001-core-rework-device-state-logic.patch | 917 ++++++++++++++++++++++ systemd-mini.changes | 6 + systemd-mini.spec | 3 +- systemd.changes | 6 + systemd.spec | 3 +- 5 files changed, 933 insertions(+), 2 deletions(-) create mode 100644 0001-core-rework-device-state-logic.patch diff --git a/0001-core-rework-device-state-logic.patch b/0001-core-rework-device-state-logic.patch new file mode 100644 index 00000000..0234602c --- /dev/null +++ b/0001-core-rework-device-state-logic.patch @@ -0,0 +1,917 @@ +From 628c89cc68ab96fce2de7ebba5933725d147aecc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 27 Feb 2015 21:55:08 +0100 +Subject: [PATCH] core: rework device state logic +References: https://bugzilla.redhat.com/show_bug.cgi?id=1196452 + +This change introduces a new state "tentative" for device units. Device +units are considered "plugged" when udev announced them, "dead" when +they are not available in the kernel, and "tentative" when they are +referenced in /proc/self/mountinfo or /proc/swaps but not (yet) +announced via udev. + +This should fix a race when device nodes (like loop devices) are created +and immediately mounted. Previously, systemd might end up seeing the +mount unit before the device, and would thus pull down the mount because +its BindTo dependency on the device would not be fulfilled. +=== +[The bug can be triggered by + cp -a /dev/sda1 (pick any source) /dev/xxx; mount /dev/xxx /mnt; + since "xxx" is a device udev does not know about even if it runs + and is race-free in the moment you are trying. + -jengelh] +--- + src/core/device.c | 368 +++++++++++++++++++++++++++++++++--------------------- + src/core/device.h | 14 ++- + src/core/mount.c | 46 ++++--- + src/core/swap.c | 32 +++-- + src/core/swap.h | 4 +- + src/core/unit.c | 1 - + 6 files changed, 285 insertions(+), 180 deletions(-) + +diff --git a/src/core/device.c b/src/core/device.c +index 2d983cc..e41ed41 100644 +--- a/src/core/device.c ++++ b/src/core/device.c +@@ -34,7 +34,8 @@ + + static const UnitActiveState state_translation_table[_DEVICE_STATE_MAX] = { + [DEVICE_DEAD] = UNIT_INACTIVE, +- [DEVICE_PLUGGED] = UNIT_ACTIVE ++ [DEVICE_TENTATIVE] = UNIT_ACTIVATING, ++ [DEVICE_PLUGGED] = UNIT_ACTIVE, + }; + + static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata); +@@ -63,6 +64,41 @@ static void device_unset_sysfs(Device *d) { + d->sysfs = NULL; + } + ++static int device_set_sysfs(Device *d, const char *sysfs) { ++ Device *first; ++ char *copy; ++ int r; ++ ++ assert(d); ++ ++ if (streq_ptr(d->sysfs, sysfs)) ++ return 0; ++ ++ r = hashmap_ensure_allocated(&UNIT(d)->manager->devices_by_sysfs, &string_hash_ops); ++ if (r < 0) ++ return r; ++ ++ copy = strdup(sysfs); ++ if (!copy) ++ return -ENOMEM; ++ ++ device_unset_sysfs(d); ++ ++ first = hashmap_get(UNIT(d)->manager->devices_by_sysfs, sysfs); ++ LIST_PREPEND(same_sysfs, first, d); ++ ++ r = hashmap_replace(UNIT(d)->manager->devices_by_sysfs, copy, first); ++ if (r < 0) { ++ LIST_REMOVE(same_sysfs, first, d); ++ free(copy); ++ return r; ++ } ++ ++ d->sysfs = copy; ++ ++ return 0; ++} ++ + static void device_init(Unit *u) { + Device *d = DEVICE(u); + +@@ -110,8 +146,13 @@ static int device_coldplug(Unit *u) { + assert(d); + assert(d->state == DEVICE_DEAD); + +- if (d->sysfs) ++ if (d->found & DEVICE_FOUND_UDEV) ++ /* If udev says the device is around, it's around */ + device_set_state(d, DEVICE_PLUGGED); ++ else if (d->found != DEVICE_NOT_FOUND) ++ /* If a device is found in /proc/self/mountinfo or ++ * /proc/swaps, it's "tentatively" around. */ ++ device_set_state(d, DEVICE_TENTATIVE); + + return 0; + } +@@ -140,49 +181,9 @@ _pure_ static const char *device_sub_state_to_string(Unit *u) { + return device_state_to_string(DEVICE(u)->state); + } + +-static int device_add_escaped_name(Unit *u, const char *dn) { +- _cleanup_free_ char *e = NULL; +- int r; +- +- assert(u); +- assert(dn); +- assert(dn[0] == '/'); +- +- e = unit_name_from_path(dn, ".device"); +- if (!e) +- return -ENOMEM; +- +- r = unit_add_name(u, e); +- if (r < 0 && r != -EEXIST) +- return r; +- +- return 0; +-} +- +-static int device_find_escape_name(Manager *m, const char *dn, Unit **_u) { +- _cleanup_free_ char *e = NULL; +- Unit *u; +- +- assert(m); +- assert(dn); +- assert(dn[0] == '/'); +- assert(_u); +- +- e = unit_name_from_path(dn, ".device"); +- if (!e) +- return -ENOMEM; +- +- u = manager_get_unit(m, e); +- if (u) { +- *_u = u; +- return 1; +- } +- +- return 0; +-} +- +-static int device_make_description(Unit *u, struct udev_device *dev, const char *path) { ++static int device_update_description(Unit *u, struct udev_device *dev, const char *path) { + const char *model; ++ int r; + + assert(u); + assert(dev); +@@ -207,13 +208,16 @@ static int device_make_description(Unit *u, struct udev_device *dev, const char + + j = strjoin(model, " ", label, NULL); + if (j) +- return unit_set_description(u, j); +- } ++ r = unit_set_description(u, j); ++ } else ++ r = unit_set_description(u, model); ++ } else ++ r = unit_set_description(u, path); + +- return unit_set_description(u, model); +- } ++ if (r < 0) ++ log_unit_error_errno(u->id, r, "Failed to set device description: %m"); + +- return unit_set_description(u, path); ++ return r; + } + + static int device_add_udev_wants(Unit *u, struct udev_device *dev) { +@@ -240,20 +244,20 @@ static int device_add_udev_wants(Unit *u, struct udev_device *dev) { + + n = unit_name_mangle(e, MANGLE_NOGLOB); + if (!n) +- return -ENOMEM; ++ return log_oom(); + + r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true); + if (r < 0) +- return r; ++ return log_unit_error_errno(u->id, r, "Failed to add wants dependency: %m"); + } + if (!isempty(state)) +- log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", +- property, strna(udev_device_get_syspath(dev))); ++ log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", property, strna(udev_device_get_syspath(dev))); + + return 0; + } + +-static int device_update_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { ++static int device_setup_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { ++ _cleanup_free_ char *e = NULL; + const char *sysfs; + Unit *u = NULL; + bool delete; +@@ -267,12 +271,18 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + if (!sysfs) + return 0; + +- r = device_find_escape_name(m, path, &u); +- if (r < 0) +- return r; ++ e = unit_name_from_path(path, ".device"); ++ if (!e) ++ return log_oom(); ++ ++ u = manager_get_unit(m, e); + +- if (u && DEVICE(u)->sysfs && !path_equal(DEVICE(u)->sysfs, sysfs)) ++ if (u && ++ DEVICE(u)->sysfs && ++ !path_equal(DEVICE(u)->sysfs, sysfs)) { ++ log_unit_error(u->id, "Device %s appeared twice with different sysfs paths %s and %s", e, DEVICE(u)->sysfs, sysfs); + return -EEXIST; ++ } + + if (!u) { + delete = true; +@@ -281,7 +291,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + if (!u) + return log_oom(); + +- r = device_add_escaped_name(u, path); ++ r = unit_add_name(u, e); + if (r < 0) + goto fail; + +@@ -293,37 +303,16 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + * actually been seen yet ->sysfs will not be + * initialized. Hence initialize it if necessary. */ + +- if (!DEVICE(u)->sysfs) { +- Device *first; +- +- DEVICE(u)->sysfs = strdup(sysfs); +- if (!DEVICE(u)->sysfs) { +- r = -ENOMEM; +- goto fail; +- } +- +- r = hashmap_ensure_allocated(&m->devices_by_sysfs, &string_hash_ops); +- if (r < 0) +- goto fail; +- +- first = hashmap_get(m->devices_by_sysfs, sysfs); +- LIST_PREPEND(same_sysfs, first, DEVICE(u)); +- +- r = hashmap_replace(m->devices_by_sysfs, DEVICE(u)->sysfs, first); +- if (r < 0) +- goto fail; +- } +- +- device_make_description(u, dev, path); ++ r = device_set_sysfs(DEVICE(u), sysfs); ++ if (r < 0) ++ goto fail; + +- if (main) { +- /* The additional systemd udev properties we only +- * interpret for the main object */ ++ (void) device_update_description(u, dev, path); + +- r = device_add_udev_wants(u, dev); +- if (r < 0) +- goto fail; +- } ++ /* The additional systemd udev properties we only interpret ++ * for the main object */ ++ if (main) ++ (void) device_add_udev_wants(u, dev); + + /* Note that this won't dispatch the load queue, the caller + * has to do that if needed and appropriate */ +@@ -332,7 +321,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + return 0; + + fail: +- log_warning_errno(r, "Failed to load device unit: %m"); ++ log_unit_warning_errno(u->id, r, "Failed to set up device unit: %m"); + + if (delete && u) + unit_free(u); +@@ -340,7 +329,7 @@ fail: + return r; + } + +-static int device_process_new_device(Manager *m, struct udev_device *dev) { ++static int device_process_new(Manager *m, struct udev_device *dev) { + const char *sysfs, *dn, *alias; + struct udev_list_entry *item = NULL, *first = NULL; + int r; +@@ -352,14 +341,14 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + return 0; + + /* Add the main unit named after the sysfs path */ +- r = device_update_unit(m, dev, sysfs, true); ++ r = device_setup_unit(m, dev, sysfs, true); + if (r < 0) + return r; + + /* Add an additional unit for the device node */ + dn = udev_device_get_devnode(dev); + if (dn) +- device_update_unit(m, dev, dn, false); ++ (void) device_setup_unit(m, dev, dn, false); + + /* Add additional units for all symlinks */ + first = udev_device_get_devlinks_list_entry(dev); +@@ -386,7 +375,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + st.st_rdev != udev_device_get_devnum(dev)) + continue; + +- device_update_unit(m, dev, p, false); ++ (void) device_setup_unit(m, dev, p, false); + } + + /* Add additional units for all explicitly configured +@@ -403,7 +392,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + e[l] = 0; + + if (path_is_absolute(e)) +- device_update_unit(m, dev, e, false); ++ (void) device_setup_unit(m, dev, e, false); + else + log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e); + } +@@ -414,39 +403,62 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + return 0; + } + +-static void device_set_path_plugged(Manager *m, struct udev_device *dev) { +- const char *sysfs; ++static void device_update_found_one(Device *d, bool add, DeviceFound found, bool now) { ++ DeviceFound n; ++ ++ assert(d); ++ ++ n = add ? (d->found | found) : (d->found & ~found); ++ if (n == d->found) ++ return; ++ ++ d->found = n; ++ ++ if (now) { ++ if (d->found & DEVICE_FOUND_UDEV) ++ device_set_state(d, DEVICE_PLUGGED); ++ else if (d->found != DEVICE_NOT_FOUND) ++ device_set_state(d, DEVICE_TENTATIVE); ++ else ++ device_set_state(d, DEVICE_DEAD); ++ } ++} ++ ++static int device_update_found_by_sysfs(Manager *m, const char *sysfs, bool add, DeviceFound found, bool now) { + Device *d, *l; + + assert(m); +- assert(dev); ++ assert(sysfs); + +- sysfs = udev_device_get_syspath(dev); +- if (!sysfs) +- return; ++ if (found == DEVICE_NOT_FOUND) ++ return 0; + + l = hashmap_get(m->devices_by_sysfs, sysfs); + LIST_FOREACH(same_sysfs, d, l) +- device_set_state(d, DEVICE_PLUGGED); ++ device_update_found_one(d, add, found, now); ++ ++ return 0; + } + +-static int device_process_removed_device(Manager *m, struct udev_device *dev) { +- const char *sysfs; +- Device *d; ++static int device_update_found_by_name(Manager *m, const char *path, bool add, DeviceFound found, bool now) { ++ _cleanup_free_ char *e = NULL; ++ Unit *u; + + assert(m); +- assert(dev); ++ assert(path); + +- sysfs = udev_device_get_syspath(dev); +- if (!sysfs) +- return -ENOMEM; ++ if (found == DEVICE_NOT_FOUND) ++ return 0; + +- /* Remove all units of this sysfs path */ +- while ((d = hashmap_get(m->devices_by_sysfs, sysfs))) { +- device_unset_sysfs(d); +- device_set_state(d, DEVICE_DEAD); +- } ++ e = unit_name_from_path(path, ".device"); ++ if (!e) ++ return log_oom(); + ++ u = manager_get_unit(m, e); ++ if (!u) ++ return 0; ++ ++ device_update_found_one(DEVICE(u), add, found, now); + return 0; + } + +@@ -462,22 +474,6 @@ static bool device_is_ready(struct udev_device *dev) { + return parse_boolean(ready) != 0; + } + +-static int device_process_new_path(Manager *m, const char *path) { +- _cleanup_udev_device_unref_ struct udev_device *dev = NULL; +- +- assert(m); +- assert(path); +- +- dev = udev_device_new_from_syspath(m->udev, path); +- if (!dev) +- return log_oom(); +- +- if (!device_is_ready(dev)) +- return 0; +- +- return device_process_new_device(m, dev); +-} +- + static Unit *device_following(Unit *u) { + Device *d = DEVICE(u); + Device *other, *first = NULL; +@@ -604,12 +600,31 @@ static int device_enumerate(Manager *m) { + goto fail; + + first = udev_enumerate_get_list_entry(e); +- udev_list_entry_foreach(item, first) +- device_process_new_path(m, udev_list_entry_get_name(item)); ++ udev_list_entry_foreach(item, first) { ++ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; ++ const char *sysfs; ++ ++ sysfs = udev_list_entry_get_name(item); ++ ++ dev = udev_device_new_from_syspath(m->udev, sysfs); ++ if (!dev) { ++ log_oom(); ++ continue; ++ } ++ ++ if (!device_is_ready(dev)) ++ continue; ++ ++ (void) device_process_new(m, dev); ++ ++ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, false); ++ } + + return 0; + + fail: ++ log_error_errno(r, "Failed to enumerate devices: %m"); ++ + device_shutdown(m); + return r; + } +@@ -617,7 +632,7 @@ fail: + static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata) { + _cleanup_udev_device_unref_ struct udev_device *dev = NULL; + Manager *m = userdata; +- const char *action; ++ const char *action, *sysfs; + int r; + + assert(m); +@@ -639,33 +654,47 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + if (!dev) + return 0; + ++ sysfs = udev_device_get_syspath(dev); ++ if (!sysfs) { ++ log_error("Failed to get udev sys path."); ++ return 0; ++ } ++ + action = udev_device_get_action(dev); + if (!action) { + log_error("Failed to get udev action string."); + return 0; + } + +- if (streq(action, "remove") || !device_is_ready(dev)) { +- r = device_process_removed_device(m, dev); +- if (r < 0) +- log_error_errno(r, "Failed to process device remove event: %m"); +- +- r = swap_process_removed_device(m, dev); ++ if (streq(action, "remove")) { ++ r = swap_process_device_remove(m, dev); + if (r < 0) + log_error_errno(r, "Failed to process swap device remove event: %m"); + +- } else { +- r = device_process_new_device(m, dev); +- if (r < 0) +- log_error_errno(r, "Failed to process device new event: %m"); ++ /* If we get notified that a device was removed by ++ * udev, then it's completely gone, hence unset all ++ * found bits */ ++ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV|DEVICE_FOUND_MOUNT|DEVICE_FOUND_SWAP, true); + +- r = swap_process_new_device(m, dev); ++ } else if (device_is_ready(dev)) { ++ ++ (void) device_process_new(m, dev); ++ ++ r = swap_process_device_new(m, dev); + if (r < 0) + log_error_errno(r, "Failed to process swap device new event: %m"); + + manager_dispatch_load_queue(m); + +- device_set_path_plugged(m, dev); ++ /* The device is found now, set the udev found bit */ ++ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, true); ++ ++ } else { ++ /* The device is nominally around, but not ready for ++ * us. Hence unset the udev bit, but leave the rest ++ * around. */ ++ ++ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV, true); + } + + return 0; +@@ -684,9 +713,58 @@ static bool device_supported(Manager *m) { + return read_only <= 0; + } + ++int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now) { ++ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; ++ struct stat st; ++ ++ assert(m); ++ assert(node); ++ ++ /* This is called whenever we find a device referenced in ++ * /proc/swaps or /proc/self/mounts. Such a device might be ++ * mounted/enabled at a time where udev has not finished ++ * probing it yet, and we thus haven't learned about it ++ * yet. In this case we will set the device unit to ++ * "tentative" state. */ ++ ++ if (add) { ++ if (!path_startswith(node, "/dev")) ++ return 0; ++ ++ if (stat(node, &st) < 0) { ++ if (errno == ENOENT) ++ return 0; ++ ++ return log_error_errno(errno, "Failed to stat device node file %s: %m", node); ++ } ++ ++ if (!S_ISBLK(st.st_mode) && !S_ISCHR(st.st_mode)) ++ return 0; ++ ++ dev = udev_device_new_from_devnum(m->udev, S_ISBLK(st.st_mode) ? 'b' : 'c', st.st_rdev); ++ if (!dev) { ++ if (errno == ENOENT) ++ return 0; ++ ++ return log_oom(); ++ } ++ ++ /* If the device is known in the kernel and newly ++ * appeared, then we'll create a device unit for it, ++ * under the name referenced in /proc/swaps or ++ * /proc/self/mountinfo. */ ++ ++ (void) device_setup_unit(m, dev, node, false); ++ } ++ ++ /* Update the device unit's state, should it exist */ ++ return device_update_found_by_name(m, node, add, found, now); ++} ++ + static const char* const device_state_table[_DEVICE_STATE_MAX] = { + [DEVICE_DEAD] = "dead", +- [DEVICE_PLUGGED] = "plugged" ++ [DEVICE_TENTATIVE] = "tentative", ++ [DEVICE_PLUGGED] = "plugged", + }; + + DEFINE_STRING_TABLE_LOOKUP(device_state, DeviceState); +diff --git a/src/core/device.h b/src/core/device.h +index 9065085..9f46e08 100644 +--- a/src/core/device.h ++++ b/src/core/device.h +@@ -28,20 +28,28 @@ typedef struct Device Device; + * simplifies the state engine greatly */ + typedef enum DeviceState { + DEVICE_DEAD, +- DEVICE_PLUGGED, ++ DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ ++ DEVICE_PLUGGED, /* announced by udev */ + _DEVICE_STATE_MAX, + _DEVICE_STATE_INVALID = -1 + } DeviceState; + ++typedef enum DeviceFound { ++ DEVICE_NOT_FOUND = 0, ++ DEVICE_FOUND_UDEV = 1, ++ DEVICE_FOUND_MOUNT = 2, ++ DEVICE_FOUND_SWAP = 4, ++} DeviceFound; ++ + struct Device { + Unit meta; + + char *sysfs; ++ DeviceFound found; + + /* In order to be able to distinguish dependencies on + different device nodes we might end up creating multiple + devices for the same sysfs path. We chain them up here. */ +- + LIST_FIELDS(struct Device, same_sysfs); + + DeviceState state; +@@ -51,3 +59,5 @@ extern const UnitVTable device_vtable; + + const char* device_state_to_string(DeviceState i) _const_; + DeviceState device_state_from_string(const char *s) _pure_; ++ ++int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now); +diff --git a/src/core/mount.c b/src/core/mount.c +index 40037e7..8e4a376 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -1386,7 +1386,7 @@ static int mount_dispatch_timer(sd_event_source *source, usec_t usec, void *user + return 0; + } + +-static int mount_add_one( ++static int mount_setup_unit( + Manager *m, + const char *what, + const char *where, +@@ -1429,7 +1429,7 @@ static int mount_add_one( + + u = unit_new(m, sizeof(Mount)); + if (!u) +- return -ENOMEM; ++ return log_oom(); + + r = unit_add_name(u, e); + if (r < 0) +@@ -1542,6 +1542,8 @@ static int mount_add_one( + return 0; + + fail: ++ log_warning_errno(r, "Failed to set up mount unit: %m"); ++ + if (delete && u) + unit_free(u); + +@@ -1549,33 +1551,36 @@ fail: + } + + static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { +- _cleanup_(mnt_free_tablep) struct libmnt_table *tb = NULL; +- _cleanup_(mnt_free_iterp) struct libmnt_iter *itr = NULL; +- struct libmnt_fs *fs; ++ _cleanup_(mnt_free_tablep) struct libmnt_table *t = NULL; ++ _cleanup_(mnt_free_iterp) struct libmnt_iter *i = NULL; + int r = 0; + + assert(m); + +- tb = mnt_new_table(); +- itr = mnt_new_iter(MNT_ITER_FORWARD); +- if (!tb || !itr) ++ t = mnt_new_table(); ++ if (!t) + return log_oom(); + +- r = mnt_table_parse_mtab(tb, NULL); ++ i = mnt_new_iter(MNT_ITER_FORWARD); ++ if (!i) ++ return log_oom(); ++ ++ r = mnt_table_parse_mtab(t, NULL); + if (r < 0) +- return r; ++ return log_error_errno(r, "Failed to parse /proc/self/mountinfo: %m"); + + r = 0; + for (;;) { + const char *device, *path, *options, *fstype; + _cleanup_free_ const char *d = NULL, *p = NULL; ++ struct libmnt_fs *fs; + int k; + +- k = mnt_table_next_fs(tb, itr, &fs); ++ k = mnt_table_next_fs(t, i, &fs); + if (k == 1) + break; +- else if (k < 0) +- return log_error_errno(k, "Failed to get next entry from /etc/fstab: %m"); ++ if (k < 0) ++ return log_error_errno(k, "Failed to get next entry from /proc/self/mountinfo: %m"); + + device = mnt_fs_get_source(fs); + path = mnt_fs_get_target(fs); +@@ -1583,11 +1588,16 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { + fstype = mnt_fs_get_fstype(fs); + + d = cunescape(device); ++ if (!d) ++ return log_oom(); ++ + p = cunescape(path); +- if (!d || !p) ++ if (!p) + return log_oom(); + +- k = mount_add_one(m, d, p, options, fstype, set_flags); ++ (void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags); ++ ++ k = mount_setup_unit(m, d, p, options, fstype, set_flags); + if (r == 0 && k < 0) + r = k; + } +@@ -1731,8 +1741,6 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + + r = mount_load_proc_self_mountinfo(m, true); + if (r < 0) { +- log_error_errno(r, "Failed to reread /proc/self/mountinfo: %m"); +- + /* Reset flags, just in case, for later calls */ + LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_MOUNT]) { + Mount *mount = MOUNT(u); +@@ -1765,6 +1773,10 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + break; + } + ++ if (mount->parameters_proc_self_mountinfo.what) ++ (void) device_found_node(m, mount->parameters_proc_self_mountinfo.what, false, DEVICE_FOUND_MOUNT, true); ++ ++ + } else if (mount->just_mounted || mount->just_changed) { + + /* New or changed mount entry */ +diff --git a/src/core/swap.c b/src/core/swap.c +index f73a8e6..de3a5d8 100644 +--- a/src/core/swap.c ++++ b/src/core/swap.c +@@ -331,7 +331,7 @@ static int swap_load(Unit *u) { + return swap_verify(s); + } + +-static int swap_add_one( ++static int swap_setup_unit( + Manager *m, + const char *what, + const char *what_proc_swaps, +@@ -356,8 +356,10 @@ static int swap_add_one( + + if (u && + SWAP(u)->from_proc_swaps && +- !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) ++ !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) { ++ log_error("Swap %s appeared twice with different device paths %s and %s", e, SWAP(u)->parameters_proc_swaps.what, what_proc_swaps); + return -EEXIST; ++ } + + if (!u) { + delete = true; +@@ -372,7 +374,7 @@ static int swap_add_one( + + SWAP(u)->what = strdup(what); + if (!SWAP(u)->what) { +- r = log_oom(); ++ r = -ENOMEM; + goto fail; + } + +@@ -400,7 +402,6 @@ static int swap_add_one( + p->priority = priority; + + unit_add_to_dbus_queue(u); +- + return 0; + + fail: +@@ -412,7 +413,7 @@ fail: + return r; + } + +-static int swap_process_new_swap(Manager *m, const char *device, int prio, bool set_flags) { ++static int swap_process_new(Manager *m, const char *device, int prio, bool set_flags) { + _cleanup_udev_device_unref_ struct udev_device *d = NULL; + struct udev_list_entry *item = NULL, *first = NULL; + const char *dn; +@@ -421,7 +422,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool + + assert(m); + +- r = swap_add_one(m, device, device, prio, set_flags); ++ r = swap_setup_unit(m, device, device, prio, set_flags); + if (r < 0) + return r; + +@@ -437,7 +438,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool + /* Add the main device node */ + dn = udev_device_get_devnode(d); + if (dn && !streq(dn, device)) +- swap_add_one(m, dn, device, prio, set_flags); ++ swap_setup_unit(m, dn, device, prio, set_flags); + + /* Add additional units for all symlinks */ + first = udev_device_get_devlinks_list_entry(d); +@@ -458,7 +459,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool + st.st_rdev != udev_device_get_devnum(d)) + continue; + +- swap_add_one(m, p, device, prio, set_flags); ++ swap_setup_unit(m, p, device, prio, set_flags); + } + + return r; +@@ -1084,15 +1085,17 @@ static int swap_load_proc_swaps(Manager *m, bool set_flags) { + if (k == EOF) + break; + +- log_warning("Failed to parse /proc/swaps:%u", i); ++ log_warning("Failed to parse /proc/swaps:%u.", i); + continue; + } + + d = cunescape(dev); + if (!d) +- return -ENOMEM; ++ return log_oom(); ++ ++ device_found_node(m, d, true, DEVICE_FOUND_SWAP, set_flags); + +- k = swap_process_new_swap(m, d, prio, set_flags); ++ k = swap_process_new(m, d, prio, set_flags); + if (k < 0) + r = k; + } +@@ -1144,6 +1147,9 @@ static int swap_dispatch_io(sd_event_source *source, int fd, uint32_t revents, v + break; + } + ++ if (swap->what) ++ device_found_node(m, swap->what, false, DEVICE_FOUND_SWAP, true); ++ + } else if (swap->just_activated) { + + /* New swap entry */ +@@ -1291,7 +1297,7 @@ fail: + return r; + } + +-int swap_process_new_device(Manager *m, struct udev_device *dev) { ++int swap_process_device_new(Manager *m, struct udev_device *dev) { + struct udev_list_entry *item = NULL, *first = NULL; + _cleanup_free_ char *e = NULL; + const char *dn; +@@ -1334,7 +1340,7 @@ int swap_process_new_device(Manager *m, struct udev_device *dev) { + return r; + } + +-int swap_process_removed_device(Manager *m, struct udev_device *dev) { ++int swap_process_device_remove(Manager *m, struct udev_device *dev) { + const char *dn; + int r = 0; + Swap *s; +diff --git a/src/core/swap.h b/src/core/swap.h +index c36c6f2..5de8c20 100644 +--- a/src/core/swap.h ++++ b/src/core/swap.h +@@ -115,8 +115,8 @@ struct Swap { + + extern const UnitVTable swap_vtable; + +-int swap_process_new_device(Manager *m, struct udev_device *dev); +-int swap_process_removed_device(Manager *m, struct udev_device *dev); ++int swap_process_device_new(Manager *m, struct udev_device *dev); ++int swap_process_device_remove(Manager *m, struct udev_device *dev); + + const char* swap_state_to_string(SwapState i) _const_; + SwapState swap_state_from_string(const char *s) _pure_; +diff --git a/src/core/unit.c b/src/core/unit.c +index 63ccd67..7cd7043 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -2834,7 +2834,6 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { + return -ENOMEM; + + r = manager_load_unit(u->manager, e, NULL, NULL, &device); +- + if (r < 0) + return r; + +-- +2.1.4 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 7308f33f..7a555d36 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de + +- Add 0001-core-rework-device-state-logic.patch to fix spurious + automated umount after mount. + ------------------------------------------------------------------- Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 599ca3cd..3399d28d 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -253,7 +253,7 @@ Patch490: watch_resolv.conf_for_become_changed.patch Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -# +Patch522: 0001-core-rework-device-state-logic.patch # UDEV PATCHES # ============ @@ -621,6 +621,7 @@ cp %{SOURCE7} m4/ %patch490 -p1 %patch520 -p1 %patch521 -p1 +%patch522 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 7308f33f..7a555d36 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de + +- Add 0001-core-rework-device-state-logic.patch to fix spurious + automated umount after mount. + ------------------------------------------------------------------- Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com diff --git a/systemd.spec b/systemd.spec index 75cd2d10..7b5b6805 100644 --- a/systemd.spec +++ b/systemd.spec @@ -248,7 +248,7 @@ Patch490: watch_resolv.conf_for_become_changed.patch Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -# +Patch522: 0001-core-rework-device-state-logic.patch # UDEV PATCHES # ============ @@ -616,6 +616,7 @@ cp %{SOURCE7} m4/ %patch490 -p1 %patch520 -p1 %patch521 -p1 +%patch522 -p1 # udev patches %patch1001 -p1 From 24f522a6e88a5a0d373567e425c6f7ef01bd600958f059efbebe6bcc4a1a0242 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 9 Mar 2015 08:20:20 +0000 Subject: [PATCH 211/221] osc copypac from project:openSUSE:Factory package:systemd revision:214, using expand OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=217 --- ...on-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch | 110 + ...escape-unit-names-in-Install-section.patch | 21 + ...-snprintf-a-potentially-NULL-pointer.patch | 25 + 0001-Fix-systemd-stdio-bridge-symlink.patch | 28 + ...g-about-unused-variable-with-SELINUX.patch | 31 + ...s390_con3270_disable_ANSI_colour_esc.patch | 67 +- 0001-activate-fix-fd-leak-in-do_accept.patch | 26 + ...sh-for-reboot-or-hddown-for-poweroff.patch | 49 +- ...network-device-after-NFS-mount-units.patch | 64 +- 0001-architecture-Add-tilegx.patch | 56 + ...restoring-brightness-to-an-unreadabl.patch | 79 + ...completion-fix-__get_startable_units.patch | 25 + ...h-completion-p-option-for-journalctl.patch | 46 + 0001-bnc888612-logind-polkit-acpi.patch | 34 +- ...ibc-s-xattr-support-instead-of-requi.patch | 215 + ...-bus-proxyd-fix-incorrect-comparison.patch | 21 + ...t-s-not-OK-to-invoke-alloca-in-loops.patch | 80 + ...ter-templates-from-restartable-units.patch | 30 + ...ntly-ignore-sections-starting-with-X.patch | 73 + ...-lookup-string-for-BUSNAME_FAILURE_S.patch | 29 + ...core-close-socket-fds-asynchronously.patch | 89 + ...n-t-allow-enabling-if-unit-is-masked.patch | 36 + 0001-core-fix-invalid-free-in-killall.patch | 32 + ...urce-leak-in-manager_environment_add.patch | 32 + 0001-core-rework-device-state-logic.patch | 917 - ...ake-configured-units-part-of-swap.ta.patch | 76 + ...network-should-be-equivalent-to-netw.patch | 51 + ...e-use-correct-format-string-for-UIDs.patch | 20 + 0001-detect-virt-Fix-Xen-domU-discovery.patch | 33 + ...to-handle-the-3-errnos-that-are-alia.patch | 30 + ...pull-in-sd-event.h-from-event-util.h.patch | 24 + ...or-don-t-return-OOM-on-parentless-de.patch | 20 + ...base-of-Bluetooth-company-identifier.patch | 29 + 0001-hwdb-fix-case-sensitive-match.patch | 25 + ...db-keymaps-for-Samsung-900X3E-900X3F.patch | 40 + 0001-hwdb-update.patch | 6590 ++ ....service-ignore-return-code-of-daemo.patch | 29 + ...ount-on-the-compiler-initializing-fo.patch | 30 + ...-up-error-handling-in-update_catalog.patch | 104 + ...-return-early-in-uncompress_startswi.patch | 186 + ...port-of-messages-containing-newlines.patch | 80 + ...t-output-reboot-markers-when-running.patch | 27 + ...map-Add-Lenovo-Enhanced-USB-Keyboard.patch | 36 + ...-support-for-IBM-ThinkPad-X41-Tablet.patch | 38 + ...pad-toggle-on-Toshiba-Satellite-P75-.patch | 27 + ...systemctl-completion-ignore-at-names.patch | 4 +- ...in-fix-memory-leak-on-DropController.patch | 36 + 0001-login-fix-pos-array-allocation.patch | 52 + ...ces-before-acknowledging-VT-switches.patch | 82 + ...sole-setup-when-switching-from-vgaco.patch | 60 + 0001-login-simplify-controller-handling.patch | 118 + ...add-support-for-Triton2-Power-Button.patch | 24 + ...switching-to-unused-VTs-via-SwitchTo.patch | 37 + ...d-switch-if-more-than-1-display-is-c.patch | 168 + ...-don-t-return-uninitialized-variable.patch | 26 + ...-might-fail-due-to-OOM-protect-again.patch | 26 + 0001-make-209-working-on-older-dist.patch | 79 + 0001-make-fortify-happy-with-ppoll.patch | 55 + ...-hppa-has-fewer-rtsigs-hence-avoid-u.patch | 79 + ...bind-mount-journal-on-top-of-a-non-e.patch | 45 + ...-to-create-veth-link-with-too-long-i.patch | 21 + 0001-nspawn-fix-network-interface.patch | 21 + ...ation-of-machine-names-in-interface-.patch | 31 + ...XDG_RUNTIME_DIR_of_the_original_user.patch | 6 +- 0001-parse_uid-return-ENXIO-for-1-uids.patch | 45 + 0001-po-add-Ukrainian-translation.patch | 406 + ...t-of-messages-logged-to-dev-kmsg-whe.patch | 27 + ...-replace-more-dup-by-F_DUPFD_CLOEXEC.patch | 39 + ...k-for-a-64bit-value-when-we-only-hav.patch | 181 + ...handle-removals-of-non-existing-matc.patch | 25 + ...equire-a-signal-event-source-to-be-e.patch | 58 + ...nt-restore-correct-timeout-behaviour.patch | 37 + ...sage-append-fix-uninitialized-memory.patch | 111 + ...x-access-fix-broken-ternary-operator.patch | 23 + ...ion-fix-completion-of-inactive-units.patch | 95 + ...nd-clean-up-initialization-of-struct.patch | 30 + ...troduce-SELinuxContextFromNet-option.patch | 414 + ...tional-overflow-check-when-enlarging.patch | 35 + ...t-error-message-printed-when-bus_pro.patch | 28 + ...to-change-the-default-target-without.patch | 51 + ...et-list-units-unit-files-honour-type.patch | 94 + ...angle-unit-names-for-the-isolate-suf.patch | 52 + ...nue-switch-root-even-if-umount-fails.patch | 50 + ...tect-virt-detect-s390-virtualization.patch | 72 + ...-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch | 39 + ...cripts-which-provide-network-before-.patch | 34 + ...compare-return-against-correct-errno.patch | 26 + ...fix-permissions-on-new-journal-files.patch | 27 + 0001-umount-modernizations.patch | 119 + ...network-pre.target-as-place-to-hook-.patch | 126 + ...xecStopPost-action-part-of-ExecStart.patch | 46 + ...rfkill-service-is-bount-to-the-actua.patch | 32 + ...ork-online.target-after-network.targ.patch | 20 + ...sctl.service.in-run-after-load-modul.patch | 29 + ...etup-dev-allow-unsafe-file-creation-.patch | 24 + ...7F-a-control-chracter-which-it-is-DE.patch | 54 + ...py-character-maps-not-just-fonts-fro.patch | 56 + ...-we-are-running-inside-the-docker-co.patch | 25 + ...irt-rework-container-detection-logic.patch | 159 + ...wdb-entry-for-Samsung-Series-7-Ultra.patch | 31 + ...re-verbose-when-bind-or-listen-fails.patch | 92 + 0002-analyze-avoid-a-null-dereference.patch | 30 + ...bus_open_transport_systemd-instead-o.patch | 46 + 0002-architecture-Add-cris.patch | 55 + ...ht-do-nothing-if-max_brightness-is-0.patch | 108 + ...-use-n-a-if-PRETTY_NAME-is-not-found.patch | 31 + ...emory-leak-when-kdbus-is-not-enabled.patch | 26 + ...sd_bus_try_close-in-exit-on-idle-ser.patch | 59 + 0002-bus-remove-unused-check.patch | 29 + ...nvironment-fields-passed-in-for-tran.patch | 27 + ...-fix-cycle-break-attempts-outside-tr.patch | 42 + ...s-properties-cannot-be-both-writable.patch | 23 + ...ectory-path-if-we-fail-to-remove-it-.patch | 54 + ...ice-name-in-the-message-about-missin.patch | 26 + ...d-add-a-new-chassis-type-for-watches.patch | 26 + ...-for-special-keys-on-compaq-ku-0133-.patch | 42 + ...base-of-Bluetooth-company-identifier.patch | 32 + 0002-hwdb-update.patch | 2058 + ...lude-fcntl.h-rather-than-sys-fcntl.h.patch | 25 + ...s-improve-xz-compression-performance.patch | 82 + ...ly-detect-language-specified-in-line.patch | 99 + ...rnalctl-man-allow-only-between-terms.patch | 109 + ...-MaxFileSec-really-default-to-1month.patch | 30 + ...ophone-mute-keymap-for-Dell-Latitude.patch | 38 + ...eymap-Asus-EeePC-touchpad-toggle-key.patch | 28 + ...cial-keys-on-ThinkPad-X60-X61-Tablet.patch | 33 + ...-touchpad-toggle-key-on-Asus-laptops.patch | 25 + ...ightness-keys-on-Dell-Inspiron-1520-.patch | 41 + ...pos-slot-to-fallback-on-pos-eviction.patch | 52 + ...dd-support-for-TPS65217-Power-Button.patch | 71 + ...kit-policy-for-hibernate-in-line-wit.patch | 28 + 0002-logind-fix-printf-format.patch | 25 + ...l-bus-call-on-machine-objects-when-w.patch | 70 + ...early-and-annually-in-systemd.time-7.patch | 49 + ...t-entire-sections-can-now-be-ignored.patch | 35 + ...n-tmpfiles.d-recommend-using-b-and-c.patch | 24 + ...emory-stream-before-using-the-buffer.patch | 45 + ...pace-fix-uninitialized-memory-access.patch | 28 + ...etting-up-an-inaccessible-mount-poin.patch | 122 + ...ore-journal-directory-is-empty-check.patch | 30 + ...F_DUPFD_CLOEXEC-when-dupping-session.patch | 26 + ...w-we-generate-file-names-from-rfkill.patch | 116 + ...mpletion-prevent-mangling-unit-names.patch | 67 + ...-propose-templates-for-disable-re-en.patch | 111 + ...-arguments-to-run-initramfs-shutdown.patch | 70 + ...s-own-argv-to-run-initramfs-shutdown.patch | 36 + ...ot-return-error-when-snapshot-exists.patch | 25 + ...h-root-umount-the-old-root-correctly.patch | 26 + ...sctl-replaces-some-slashes-with-dots.patch | 97 + ...temctl-obey-state-in-list-unit-files.patch | 28 + ...BindsTo-BoundBy-in-list-dependencies.patch | 35 + ...emctl-update-NAME-to-PATTERN-in-help.patch | 52 + 0002-systemd-fix-error-message.patch | 29 + ...-try-harder-to-bind-to-notify-socket.patch | 44 + ...upport-infinity-syntax-in-parse_nsec.patch | 40 + ...w-Entry-for-Dell-XPS12-9Q33-keyboard.patch | 29 + ...g-caps-so-that-GetAddresses-can-work.patch | 18 + ...emd-fsck-.service-after-local-fs-pre.patch | 29 + ...ty-.service-use-the-default-RestartS.patch | 29 + 0002-util-avoid-non-portable-__WORDSIZE.patch | 25 + ...der-tabs-special-in-string_has_cc-an.patch | 117 + 0002-util-fix-has-cc-check-and-add-test.patch | 25 + ...-race-where-we-might-miss-SIGTERMs-w.patch | 96 + 0002-util-remove-a-unnecessary-check.patch | 25 + ...ping-strings-don-t-allow-smuggling-i.patch | 74 + ...le-setup-run-setfont-before-loadkeys.patch | 167 + 0003-Add-quotes-to-warning-message.patch | 41 + 0003-Always-check-asprintf-return-code.patch | 223 + ...rint-invalid-UTF-8-in-error-messages.patch | 130 + ...-in-suggested-systemctl-commandlines.patch | 68 + 0003-analyze-fix-mem-leak.patch | 27 + 0003-analyze-fix-plot-with-bad-y-size.patch | 31 + 0003-arch-add-crisv32-to-uname-check.patch | 24 + ...-string-table-entries-for-mips-le-ar.patch | 52 + 0003-backlight-unify-error-messages.patch | 115 + ...ot-OK-to-return-1-from-a-main-progra.patch | 27 + ...chart-parse-userinput-with-safe_atoi.patch | 34 + ...-drop-service-from-the-result-string.patch | 25 + ...-put-the-cached-result-of-use_smack-.patch | 32 + 0003-core-allow-transient-mount-units.patch | 115 + ...sure-to-serialize-jobs-for-all-units.patch | 118 + ...der-failure-when-reading-drop-ins-fa.patch | 113 + ...ge-when-inotify-watches-are-exhauste.patch | 30 + ...lt-to-no-hash-when-keyfile-is-specif.patch | 28 + ...do-not-use-unicode-chars-in-C-locale.patch | 134 + ...abel-return-error-when-writing-fails.patch | 30 + ...fsck-implementation-linked-to-bin-tr.patch | 110 + ...-primary-model-string-in-subsystem-m.patch | 51583 ++++++++++++++++ ...base-of-Bluetooth-company-identifier.patch | 38 + ...l-fix-invalid-free-in-unit_file_mask.patch | 30 + ..._MAC_OVERRIDE-in-journald-for-SMACK-.patch | 41 + ...Adjust-for-more-Samsung-900X4-series.patch | 29 + ...map-Annotate-all-micmute-workarounds.patch | 54 + 0003-keymap-Fix-HP-Pavillon-DV7.patch | 28 + ...onsider-an-unset-model-as-a-wildcard.patch | 39 + ...ing-org.freedesktop.login1.Seat.Swit.patch | 35 + ...d-switch-events-for-30s-after-each-s.patch | 174 + ...tion-XDG_CONFIG_HOME-in-systemd.unit.patch | 40 + ...-man-we-don-t-have-Wanted-dependency.patch | 29 + ...ions-before-other-arguments-to-mount.patch | 39 + ...ure-tmp-var-tmp-and-dev-are-writable.patch | 34 + ...-bus-check-return-value-of-vasprintf.patch | 35 + ...-assert_return-to-check-for-disconne.patch | 498 + ...operties-that-claim-to-be-both-writa.patch | 29 + ...call-epoll_ctl-on-mask-updates-if-ed.patch | 46 + ...rly-convert-object-size-on-big-endia.patch | 39 + ...void-prematurely-rejecting-missing-u.patch | 39 + ...-systemd-use-pager-for-test-and-help.patch | 111 + ...t-from-format_timestamp_relative-on-.patch | 25 + ...password-agent-return-negative-errno.patch | 29 + ...xplicitly-don-t-read-from-invalid-fd.patch | 27 + ...emd-tmpfiles-clean.service-after-tim.patch | 26 + ...useManualStart-from-units-which-are-.patch | 65 + ...de-mixed-for-systemd-nspawn-.service.patch | 26 + ...g-at-the-next-unichar-honour-the-siz.patch | 29 + ...ise-level-of-Found-dependency.-lines.patch | 42 + ...itecture-remove-cris-from-uname-list.patch | 27 + ...error-when-state-restore-is-disabled.patch | 33 + ...f-kernel-exposes-backlight-device-wi.patch | 40 + ...use-list-unit-files-to-get-all-units.patch | 39 + 0004-bootchart-check-return-of-strftime.patch | 63 + 0004-config-parser-fix-mem-leak.patch | 24 + ...rt-for-ERRNO-NOTIFY_SOCKET-message-p.patch | 67 + ...o-relabel-mounts-before-we-loaded-th.patch | 29 + ...tion-destructiveness-check-once-more.patch | 32 + ...the-rescue-argument-to-rescue.target.patch | 27 + ...-add-unit-dependency-on-dev-null-dev.patch | 53 + ...te-more-shell-characters-in-envfiles.patch | 54 + ...y-one-error-in-array-index-assertion.patch | 35 + ...C-network-interface-name-irdac-idrac.patch | 22 + ...rator-properly-escape-instance-names.patch | 39 + ...base-of-Bluetooth-company-identifier.patch | 50 + ...at-description-and-document-reloadin.patch | 60 + 0004-hwdb-update.patch | 3964 ++ ...ement-a-union-to-pad-out-file_handle.patch | 117 + ...g-jobs-to-run-queue-in-unit_coldplug.patch | 30 + ...journal-do-server_vacuum-for-sigusr1.patch | 30 + ...ller-should-fail-if-prepare_vt-fails.patch | 134 + ...il-display-count-if-a-device-has-no-.patch | 45 + ...re-GetMachineAddresses-is-available-.patch | 38 + ...ument-missing-options-of-systemd-run.patch | 113 + ...-t-manage-to-properly-allocate-the-e.patch | 43 + ...vent-loop-terminates-explicitly-clos.patch | 27 + ...t-check-the-value-of-received-signal.patch | 46 + ...y-that-object-start-with-the-field-n.patch | 41 + ...ntial-double-free-crash-in-child-pro.patch | 38 + 0004-shared-conf-parser.patch | 31 + ...-don-t-clear-store_wtmp-in-utmp_put_.patch | 106 + ...handle-if-our-service-vanished-durin.patch | 30 + ...d-detect-virt-only-discover-Xen-domU.patch | 79 + ...-python-use-.hex-instead-of-.get_hex.patch | 46 + ...the-first-error-from-manager_startup.patch | 57 + ...e-should-not-allow-files-ending-with.patch | 28 + ...idering-UID-0xFFFF-and-0xFFFFFFFF-va.patch | 31 + ...var-run-with-run-in-remaining-places.patch | 89 + ...ght-Do-not-clamp-brightness-for-LEDs.patch | 60 + ...-saved-brightness-exceeding-max-brig.patch | 64 + ...-try-to-access-data-for-non-existing.patch | 29 + ...avoid-using-m-kdbus-after-freeing-it.patch | 35 + ...s-close-a-bus-that-failed-to-connect.patch | 28 + ...tate-behind-the-D-Bus-API-not-in-the.patch | 137 + ...e-kernel-s-timezone-when-the-RTC-run.patch | 121 + 0005-cryptsetup-fix-an-OOM-check.patch | 25 + ...base-of-Bluetooth-company-identifier.patch | 73 + 0005-hwdb-update.patch | 1560 + ...aiting-jobs-to-run-queue-during-cold.patch | 34 + ...urnalctl-correct-help-text-for-until.patch | 21 + 0005-login-fix-mem-leak.patch | 23 + 0005-logind-fix-policykit-checks.patch | 43 + 0005-logind-fix-typo.patch | 25 + ...switch-handling-from-logind-main-to-.patch | 119 + 0005-man-fix-path-in-crypttab-5.patch | 26 + ...n_by_handle_at-and-others-via-seccom.patch | 94 + 0005-po-add-Greek-translation.patch | 436 + ...daemon-fix-incorrect-variable-access.patch | 25 + ...-stricter-checking-of-random-boot-id.patch | 37 + ...llocation-if-query-ids-never-reuse-t.patch | 45 + ...cept-negative-ERRNO-notification-mes.patch | 25 + ...-label.h-add-missing-stdio.h-include.patch | 24 + 0005-systemd-python-fix-failing-assert.patch | 26 + ...emd-run-add-some-extra-safety-checks.patch | 34 + ...sd-journal-flush-after-sd-remount-fs.patch | 38 + 0005-util-avoid-double-close-of-fd.patch | 28 + ...-return-1-EINVAL-on-allocation-error.patch | 35 + ...k-to-var-run-at-a-couple-of-problems.patch | 60 + 0006-bus-unref-buscreds-on-failure.patch | 32 + 0006-calendarspec-fix-typo-in-annually.patch | 27 + ...base-of-Bluetooth-company-identifier.patch | 82 + 0006-hwdb-update.patch | 4392 ++ ...hat-next-entry-is-after-previous-ent.patch | 70 + 0006-journald-fix-minor-memory-leak.patch | 24 + ...-the-kernel-s-quiet-cmdline-argument.patch | 29 + ...add-mir-to-the-list-of-session-types.patch | 90 + ...e-VT-signal-handler-between-sessions.patch | 246 + ...-the-ExecReload-command-should-be-sy.patch | 39 + ...-parse_boolean-require-exact-matches.patch | 48 + ...device-as-SYSTEMD_READY-0-if-no-file.patch | 30 + ...ization-perturbation-value-right-bef.patch | 75 + ...dian.h-add-missing-byteswap.h-includ.patch | 24 + ...temctl-fix-resource-leak-CID-1237747.patch | 35 + ...tatusErrno-value-in-systemctl-status.patch | 37 + ...o-automatic-cleanup-in-XDG_RUNTIME_D.patch | 26 + ...-agent-Do-tell-what-directory-we-fai.patch | 26 + ...t-that-var-run-must-be-a-symlink-run.patch | 30 + 0007-core-fix-a-potential-mem-leak.patch | 25 + ...ss-duplicate-and-misleading-messages.patch | 66 + ...uplicates-copy-full-BindMount-struct.patch | 31 + ...base-of-Bluetooth-company-identifier.patch | 49 + 0007-hwdb-update.patch | 1910 + ...get-file-after-encountering-an-error.patch | 74 + ...eck-journal-file-size-to-deduce-if-i.patch | 55 + ...crease-the-SendBuffer-of-dev-log-to-.patch | 23 + ...d-add-Plantronics-.Audio-mute-button.patch | 32 + ...warn-if-we-fail-to-request-SO_PASSCR.patch | 29 + ...fix-Display-property-of-user-objects.patch | 147 + ...x-cmdline-switch-inconsistency-betwe.patch | 41 + 0007-networkd-fix-typo.patch | 26 + 0007-po-add-German-translation.patch | 448 + ...ccidentally-turn-of-watchdog-timer-e.patch | 29 + ...atus-text-and-errno-values-each-time.patch | 29 + ...not-ignore-errors-in-symlink-removal.patch | 26 + ...skip-mounting-tmp-if-it-is-a-symlink.patch | 26 + ...Reset-signal-mask-on-re-exec-to-init.patch | 51 + ...-system_bus_socket-for-the-D-Bus-soc.patch | 51 + ...-unregister-PIDs-from-PID-hashtables.patch | 102 + ...-Actually-allow-for-succesfully-load.patch | 31 + ...base-of-Bluetooth-company-identifier.patch | 104 + 0008-hwdb-update.patch | 1425 + ...urnald-fix-memory-leak-on-error-path.patch | 29 + ...ep-modes-are-to-be-separated-by-whit.patch | 36 + ...-update-journald-rate-limit-defaults.patch | 28 + ...counting-of-early-mounts-without-SMA.patch | 32 + ...ess-invalid-memory-if-a-signal-match.patch | 27 + ...er-don-t-leak-memory-on-error-in-DEF.patch | 52 + ...ion-prevent-mangling-unit-names-bash.patch | 87 + ...ode-is-long-long-gone-don-t-mention-.patch | 53 + ...til-introduce-sethostname_idempotent.patch | 85 + ...n-the-user-types-a-overly-long-passw.patch | 33 + ...int_property-to-use-int-for-booleans.patch | 29 + ...an-up-signal-reset-logic-when-reexec.patch | 50 + ...base-of-Bluetooth-company-identifier.patch | 38 + 0009-hwdb-update.patch | 3363 + 0009-journal-do-not-leak-mmaps-on-OOM.patch | 50 + ...-by-one-error-in-Missed-X-kernel-mes.patch | 29 + ...add-syslog-facility-for-messages-com.patch | 40 + ...ence-to-systemd-user-sessions.servic.patch | 25 + ...-out-PropertiesChanged-message-if-ac.patch | 70 + ...format-container_uuid-in-UUID-format.patch | 56 + ...ke-if-somebody-sends-us-a-message-wi.patch | 47 + ...systemd-journald.service-Type-notify.patch | 27 + ...ste-error-and-actually-set-the-new-h.patch | 26 + ...base-of-Bluetooth-company-identifier.patch | 77 + ...-suspending-if-there-are-no-displays.patch | 42 + ...-t-kill-the-unit-when-killing-the-le.patch | 32 + 0010-man-update-link-to-LSB.patch | 35 + ...manager-use-correct-cleanup-function.patch | 30 + ...-PropertiesChanged-signals-for-mount.patch | 51 + ...l-unmounting-only-if-not-running-ins.patch | 27 + ...t-fuse.sshfs-as-a-network-filesystem.patch | 25 + ...d-pthread-flag-for-libsystemd-shared.patch | 28 + ...x-corrupt-output-with-empty-messages.patch | 41 + ...emd-bootchart-fix-spacing-in-command.patch | 28 + ...e-we-do-not-try-to-print-missing-fie.patch | 57 + ...o-logic-when-applied-relative-to-ser.patch | 93 + ...-avoid-misleading-error-message-when.patch | 42 + ...e-extra-arguments-with-verify-and-si.patch | 30 + ...ve-stray-reset-of-error-return-value.patch | 24 + 0012-man-add-missing-comma.patch | 26 + ...rint-anything-while-passwords-are-be.patch | 180 + ...-bit-more-NFS-compatible-when-checki.patch | 36 + ...systemd-timedate-udev-spelling-fixes.patch | 118 + ...scape-instance-name-in-systemd-backl.patch | 38 + 0014-journald-with-journaling-FS.patch | 100 +- ...ection-of-missing-proc-self-loginuid.patch | 31 + ...ripts-know-about-Required-and-Should.patch | 68 + ...pletion-smart-to-be-able-to-redirect.patch | 154 +- ...enable-by_path-links-for-ata-devices.patch | 21 +- 1003-udev-netlink-null-rules.patch | 12 +- ...fault-links-for-primary-cd_dvd-drive.patch | 14 +- 1006-udev-always-rename-network.patch | 48 +- 1008-add-msft-compability-rules.patch | 25 + 1009-cdrom_id-use-the-old-MMC-fallback.patch | 54 + ...ev-increase-result-size-for-programs.patch | 13 + 1014-udev-update-net_id-comments.patch | 102 + ...naming-we-cannot-use-virtio-numbers-.patch | 99 + ...name_to_handle_at-is-not-implemented.patch | 30 + ...ynchronize-block-device-event-handli.patch | 83 + ...-the-execution-of-RUN-when-renaming-.patch | 140 + ...-udev-avoid-use-of-uninitialized-err.patch | 37 + ...eyboard-also-hook-into-change-events.patch | 27 + 1021-udev-re-add-persistent-net-rules.patch | 343 +- ...um-API-and-all-assumptions-about-seq.patch | 1445 + ...board-do-tell-on-which-device-EVIOCS.patch | 31 + ...ev-always-close-lock-file-descriptor.patch | 41 + ...ice-mapper-from-block-device-ownersh.patch | 39 + 1026-udevd-inotify-modernizations.patch | 85 + ...change-events-for-partitions-when-to.patch | 84 + 1028-udev-link-config-fix-mem-leak.patch | 34 + ...first-re-reading-the-partition-table.patch | 94 + ...guard-REREADP-logic-with-open-O_ECXL.patch | 23 + ...re-we-always-get-change-for-the-disk.patch | 98 + ...DPT-by-exclusive-lock-instead-of-O_E.patch | 29 + ...lude-device-mapper-from-block-device.patch | 39 + ...eturn-value-from-udev_enumerate_scan.patch | 26 + ...x-invalid-free-in-enable_name_policy.patch | 30 + ...le-fixed-return-code-for-empty-queue.patch | 34 + ...-udev_queue_get_queue_is_empty-logic.patch | 25 + ...ovide-file-descriptor-to-watch-busy-.patch | 248 + ...tch-entire-directory-to-allow-the-re.patch | 40 + 1044-rules-update-qemu-hid-rules.patch | 45 + ...-t-enable-usb-pm-for-Avocent-devices.patch | 29 + ...ink-builtin-should-print-the-reason-.patch | 61 + ...et_setup_link-add-a-bit-more-logging.patch | 39 + ...-ignore-errors-due-to-missing-MAC-ad.patch | 36 + ...-rules-uaccess-add-ID_SOFTWARE_RADIO.patch | 45 + ...from-block-device-ownership-event-lo.patch | 53 + ...add-event-timeout-commandline-option.patch | 119 + 1057-udev-unify-event-timeout-handling.patch | 504 + 1058-udev-unify-event-timeout-handling.patch | 504 + ...t-dd5eddd28a74a49607a8fffcaf960040db.patch | 26 + ...emd-to-manage-loop-device-partitions.patch | 32 + ...press-ID_PATH-for-devices-with-an-un.patch | 96 + ...db-do-not-look-at-usb_device-parents.patch | 63 + ...dev-bump-event-timeout-to-60-seconds.patch | 39 + ...lity-links-for-truncated-by-id-links.patch | 64 +- ...lve-correctly-database-names-on-chan.patch | 53 + ...ink-export-the-.link-filename-applie.patch | 26 + ...link-preserve-ID_NET_LINK_FILE-and-I.patch | 27 + ...et-setup-link-remove-stray-linebreak.patch | 27 + ...full-db-on-MOVE-events-for-devices-w.patch | 54 + ...-udev-netif_rename-don-t-log-to-kmsg.patch | 39 + 1073-udev-drop-print_kmsg.patch | 75 + ...-fix-copy-paste-error-in-log-message.patch | 25 + 1075-udev-timeout-increase-timeout.patch | 28 + ...n-after-a-third-of-the-timeout-befor.patch | 350 + ...n-after-a-third-of-the-timeout-befor.patch | 350 + ...e-userspace-firmware-loading-support.patch | 349 + ...e-userspace-firmware-loading-support.patch | 349 + ...se_argv-warn-if-argumens-are-invalid.patch | 73 + ...vd-check-return-of-various-functions.patch | 55 + ...dm-hwdb-check-return-value-of-fseeko.patch | 45 + ...-udev-node-warn-if-chmod-chown-fails.patch | 34 + ...trl-log-if-setting-SO_PASSCRED-fails.patch | 45 + 1085-udev-fix-typos.patch | 33 + ...-udevd-don-t-fail-if-run-udev-exists.patch | 25 + ...init-timeout-for-kmod-loaded-modules.patch | 135 + 1089-fix-cgroup-device-controller.patch | 74 + ...-supported_parent-for-well-known-SCS.patch | 58 + 1091-udev-path_id-update-comments.patch | 42 + ...dev-do-not-accept-invalid-log-levels.patch | 67 + ...-of-udev.event-timeout-kernel-parame.patch | 23 + ...-constants-in-kernel-cmdline-parsers.patch | 58 + ...t-ssd-disk-to-use-deadline-scheduler.patch | 21 +- 1096-new-udev-root-symlink-generator.patch | 105 +- ...-increase-maximum-number-of-children.patch | 26 +- ...up-respect-kernel-name-assign-policy.patch | 154 + 513-nspawn-veth.patch | 39 + ...es-permissions-to-follow-openSUSE-po.patch | 15 +- ...-suspend-hibernate-calls-to-pm-utils.patch | 49 +- ...pport-for-SysV-scripts-for-the-early.patch | 140 + ...alid-address-familily-is-passed-to-g.patch | 24 + avoid-leaking-socket-descriptors.patch | 339 + boot.udev | 74 + ...le-nss-myhostname-warning-bnc-783841.patch | 18 + ...rtname-is-set-as-hostname-bnc-820213.patch | 17 +- fix-owner-of-var-log-btmp.patch | 20 + ...-boot-prefixed-initscript-bnc-746506.patch | 26 +- ...STEMCTL_OPTIONS-environment-variable.patch | 42 + ...plock-and-compose_table-and-kbd_rate.patch | 95 +- handle-etc-HOSTNAME.patch | 77 + ...lock-value-in-etc-sysconfig-keyboard.patch | 209 +- ...lang-value-in-etc-sysconfig-language.patch | 20 +- insserv-generator.patch | 52 +- journald-advice-about-use-of-memory.patch | 144 +- kbd-model-map.patch | 15 +- ...linker-find-libudev-for-libdevmapper.patch | 40 +- localfs.service | 8 + log-target-null-instead-kmsg.patch | 116 + macros.systemd.upstream | 51 +- ....service-conflict-with-syslog.socket.patch | 19 +- ...USE-etc-sysconfig-kernel-module-list.patch | 64 + ...lly-warn-if-nss-myhostname-is-called.patch | 102 + parse-crypttab-for-noauto-option.patch | 47 +- ...-quit-and-wait-for-emergency-service.patch | 52 +- prepare-suspend-to-disk.patch | 28 + ...script-heuristic-and-add-new-LSB-hea.patch | 91 + respect-nfs-bg-option.patch | 31 +- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 30 +- ...vice-with-detected-pid-as-RemainAfte.patch | 31 + set-and-use-default-logconsole.patch | 47 +- ...ng-assertion-monotonic-clock-message.patch | 38 + shut-up-rpmlint-on-var-log-journal.patch | 14 +- suse-sysv-bootd-support.diff | 86 - ...ndle-boot-sysctl.conf-kernel_release.patch | 28 +- systemctl-set-default-target.patch | 20 +- systemd-210.tar.xz | 3 + systemd-219.tar.xz | 3 - systemd-add-user-keep.patch | 125 +- systemd-dbus-system-bus-address.patch | 39 +- systemd-journald.init | 33 + systemd-mini-rpmlintrc | 2 - systemd-mini.changes | 566 - systemd-mini.spec | 1730 +- systemd-pam_config.patch | 28 +- systemd-powerd-initctl-support.patch | 16 +- systemd-rpmlintrc | 2 - systemd-sleep-grub | 204 + systemd-tmp-safe-defaults.patch | 16 +- systemd.changes | 566 - systemd.spec | 1730 +- ...or-openSUSE-version-of-etc-sysconfig.patch | 24 + ...s-do-not-clean-for-mandb-index-files.patch | 22 + tty-ask-password-agent-on-console.patch | 334 +- ...addentropy-ioctl-to-load-random-seed.patch | 30 +- ...r-sbin-sulogin-for-emergency-service.patch | 44 + vhangup-on-all-consoles.patch | 24 +- watch_resolv.conf_for_become_changed.patch | 52 +- 517 files changed, 110757 insertions(+), 3868 deletions(-) create mode 100644 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch create mode 100644 0001-Do-not-unescape-unit-names-in-Install-section.patch create mode 100644 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch create mode 100644 0001-Fix-systemd-stdio-bridge-symlink.patch create mode 100644 0001-Fix-warning-about-unused-variable-with-SELINUX.patch create mode 100644 0001-activate-fix-fd-leak-in-do_accept.patch create mode 100644 0001-architecture-Add-tilegx.patch create mode 100644 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch create mode 100644 0001-bash-completion-fix-__get_startable_units.patch create mode 100644 0001-bash-completion-p-option-for-journalctl.patch create mode 100644 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch create mode 100644 0001-bus-proxyd-fix-incorrect-comparison.patch create mode 100644 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch create mode 100644 0001-completion-filter-templates-from-restartable-units.patch create mode 100644 0001-conf-parser-silently-ignore-sections-starting-with-X.patch create mode 100644 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch create mode 100644 0001-core-close-socket-fds-asynchronously.patch create mode 100644 0001-core-don-t-allow-enabling-if-unit-is-masked.patch create mode 100644 0001-core-fix-invalid-free-in-killall.patch create mode 100644 0001-core-fix-resource-leak-in-manager_environment_add.patch delete mode 100644 0001-core-rework-device-state-logic.patch create mode 100644 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch create mode 100644 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch create mode 100644 0001-core-use-correct-format-string-for-UIDs.patch create mode 100644 0001-detect-virt-Fix-Xen-domU-discovery.patch create mode 100644 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch create mode 100644 0001-event-pull-in-sd-event.h-from-event-util.h.patch create mode 100644 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch create mode 100644 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0001-hwdb-fix-case-sensitive-match.patch create mode 100644 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch create mode 100644 0001-hwdb-update.patch create mode 100644 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch create mode 100644 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch create mode 100644 0001-journal-cleanup-up-error-handling-in-update_catalog.patch create mode 100644 0001-journal-compress-return-early-in-uncompress_startswi.patch create mode 100644 0001-journal-fix-export-of-messages-containing-newlines.patch create mode 100644 0001-journalctl-do-not-output-reboot-markers-when-running.patch create mode 100644 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch create mode 100644 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch create mode 100644 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch create mode 100644 0001-login-fix-memory-leak-on-DropController.patch create mode 100644 0001-login-fix-pos-array-allocation.patch create mode 100644 0001-login-pause-devices-before-acknowledging-VT-switches.patch create mode 100644 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch create mode 100644 0001-login-simplify-controller-handling.patch create mode 100644 0001-logind-add-support-for-Triton2-Power-Button.patch create mode 100644 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch create mode 100644 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch create mode 100644 0001-machine-don-t-return-uninitialized-variable.patch create mode 100644 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch create mode 100644 0001-make-209-working-on-older-dist.patch create mode 100644 0001-make-fortify-happy-with-ppoll.patch create mode 100644 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch create mode 100644 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch create mode 100644 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch create mode 100644 0001-nspawn-fix-network-interface.patch create mode 100644 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch create mode 100644 0001-parse_uid-return-ENXIO-for-1-uids.patch create mode 100644 0001-po-add-Ukrainian-translation.patch create mode 100644 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch create mode 100644 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch create mode 100644 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch create mode 100644 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch create mode 100644 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch create mode 100644 0001-sd-event-restore-correct-timeout-behaviour.patch create mode 100644 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch create mode 100644 0001-selinux-access-fix-broken-ternary-operator.patch create mode 100644 0001-shell-completion-fix-completion-of-inactive-units.patch create mode 100644 0001-shutdownd-clean-up-initialization-of-struct.patch create mode 100644 0001-socket-introduce-SELinuxContextFromNet-option.patch create mode 100644 0001-strv-add-an-additional-overflow-check-when-enlarging.patch create mode 100644 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch create mode 100644 0001-systemctl-allow-to-change-the-default-target-without.patch create mode 100644 0001-systemctl-let-list-units-unit-files-honour-type.patch create mode 100644 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch create mode 100644 0001-systemd-continue-switch-root-even-if-umount-fails.patch create mode 100644 0001-systemd-detect-virt-detect-s390-virtualization.patch create mode 100644 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch create mode 100644 0001-sysv-order-initscripts-which-provide-network-before-.patch create mode 100644 0001-tmpfiles-compare-return-against-correct-errno.patch create mode 100644 0001-tmpfiles-fix-permissions-on-new-journal-files.patch create mode 100644 0001-umount-modernizations.patch create mode 100644 0001-units-introduce-network-pre.target-as-place-to-hook-.patch create mode 100644 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch create mode 100644 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch create mode 100644 0001-units-order-network-online.target-after-network.targ.patch create mode 100644 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch create mode 100644 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch create mode 100644 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch create mode 100644 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch create mode 100644 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch create mode 100644 0001-virt-rework-container-detection-logic.patch create mode 100644 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch create mode 100644 0002-Be-more-verbose-when-bind-or-listen-fails.patch create mode 100644 0002-analyze-avoid-a-null-dereference.patch create mode 100644 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch create mode 100644 0002-architecture-Add-cris.patch create mode 100644 0002-backlight-do-nothing-if-max_brightness-is-0.patch create mode 100644 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch create mode 100644 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch create mode 100644 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch create mode 100644 0002-bus-remove-unused-check.patch create mode 100644 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch create mode 100644 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch create mode 100644 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch create mode 100644 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch create mode 100644 0002-fsck-include-device-name-in-the-message-about-missin.patch create mode 100644 0002-hostnamed-add-a-new-chassis-type-for-watches.patch create mode 100644 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch create mode 100644 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0002-hwdb-update.patch create mode 100644 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch create mode 100644 0002-journal-compress-improve-xz-compression-performance.patch create mode 100644 0002-journal-properly-detect-language-specified-in-line.patch create mode 100644 0002-journalctl-man-allow-only-between-terms.patch create mode 100644 0002-journald-make-MaxFileSec-really-default-to-1month.patch create mode 100644 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch create mode 100644 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch create mode 100644 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch create mode 100644 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch create mode 100644 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch create mode 100644 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch create mode 100644 0002-logind-add-support-for-TPS65217-Power-Button.patch create mode 100644 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch create mode 100644 0002-logind-fix-printf-format.patch create mode 100644 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch create mode 100644 0002-man-document-yearly-and-annually-in-systemd.time-7.patch create mode 100644 0002-man-note-that-entire-sections-can-now-be-ignored.patch create mode 100644 0002-man-tmpfiles.d-recommend-using-b-and-c.patch create mode 100644 0002-manager-flush-memory-stream-before-using-the-buffer.patch create mode 100644 0002-namespace-fix-uninitialized-memory-access.patch create mode 100644 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch create mode 100644 0002-nspawn-restore-journal-directory-is-empty-check.patch create mode 100644 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch create mode 100644 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch create mode 100644 0002-shell-completion-prevent-mangling-unit-names.patch create mode 100644 0002-shell-completion-propose-templates-for-disable-re-en.patch create mode 100644 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch create mode 100644 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch create mode 100644 0002-snapshot-return-error-when-snapshot-exists.patch create mode 100644 0002-switch-root-umount-the-old-root-correctly.patch create mode 100644 0002-sysctl-replaces-some-slashes-with-dots.patch create mode 100644 0002-systemctl-obey-state-in-list-unit-files.patch create mode 100644 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch create mode 100644 0002-systemctl-update-NAME-to-PATTERN-in-help.patch create mode 100644 0002-systemd-fix-error-message.patch create mode 100644 0002-systemd-try-harder-to-bind-to-notify-socket.patch create mode 100644 0002-time-also-support-infinity-syntax-in-parse_nsec.patch create mode 100644 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch create mode 100644 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch create mode 100644 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch create mode 100644 0002-units-serial-getty-.service-use-the-default-RestartS.patch create mode 100644 0002-util-avoid-non-portable-__WORDSIZE.patch create mode 100644 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch create mode 100644 0002-util-fix-has-cc-check-and-add-test.patch create mode 100644 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch create mode 100644 0002-util-remove-a-unnecessary-check.patch create mode 100644 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch create mode 100644 0002-vconsole-setup-run-setfont-before-loadkeys.patch create mode 100644 0003-Add-quotes-to-warning-message.patch create mode 100644 0003-Always-check-asprintf-return-code.patch create mode 100644 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch create mode 100644 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch create mode 100644 0003-analyze-fix-mem-leak.patch create mode 100644 0003-analyze-fix-plot-with-bad-y-size.patch create mode 100644 0003-arch-add-crisv32-to-uname-check.patch create mode 100644 0003-architecture-add-string-table-entries-for-mips-le-ar.patch create mode 100644 0003-backlight-unify-error-messages.patch create mode 100644 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch create mode 100644 0003-bootchart-parse-userinput-with-safe_atoi.patch create mode 100644 0003-busname-don-t-drop-service-from-the-result-string.patch create mode 100644 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch create mode 100644 0003-core-allow-transient-mount-units.patch create mode 100644 0003-core-make-sure-to-serialize-jobs-for-all-units.patch create mode 100644 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch create mode 100644 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch create mode 100644 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch create mode 100644 0003-delta-do-not-use-unicode-chars-in-C-locale.patch create mode 100644 0003-fileio-label-return-error-when-writing-fails.patch create mode 100644 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch create mode 100644 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch create mode 100644 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0003-install-fix-invalid-free-in-unit_file_mask.patch create mode 100644 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch create mode 100644 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch create mode 100644 0003-keymap-Annotate-all-micmute-workarounds.patch create mode 100644 0003-keymap-Fix-HP-Pavillon-DV7.patch create mode 100644 0003-localed-consider-an-unset-model-as-a-wildcard.patch create mode 100644 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch create mode 100644 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch create mode 100644 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch create mode 100644 0003-man-we-don-t-have-Wanted-dependency.patch create mode 100644 0003-mount-order-options-before-other-arguments-to-mount.patch create mode 100644 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch create mode 100644 0003-sd-bus-check-return-value-of-vasprintf.patch create mode 100644 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch create mode 100644 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch create mode 100644 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch create mode 100644 0003-sd-journal-properly-convert-object-size-on-big-endia.patch create mode 100644 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch create mode 100644 0003-systemd-use-pager-for-test-and-help.patch create mode 100644 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch create mode 100644 0003-tty-ask-password-agent-return-negative-errno.patch create mode 100644 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch create mode 100644 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch create mode 100644 0003-units-remove-RefuseManualStart-from-units-which-are-.patch create mode 100644 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch create mode 100644 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch create mode 100644 0004-Raise-level-of-Found-dependency.-lines.patch create mode 100644 0004-architecture-remove-cris-from-uname-list.patch create mode 100644 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch create mode 100644 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch create mode 100644 0004-bash-completion-use-list-unit-files-to-get-all-units.patch create mode 100644 0004-bootchart-check-return-of-strftime.patch create mode 100644 0004-config-parser-fix-mem-leak.patch create mode 100644 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch create mode 100644 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch create mode 100644 0004-core-fix-transaction-destructiveness-check-once-more.patch create mode 100644 0004-core-map-the-rescue-argument-to-rescue.target.patch create mode 100644 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch create mode 100644 0004-fileio-quote-more-shell-characters-in-envfiles.patch create mode 100644 0004-fix-off-by-one-error-in-array-index-assertion.patch create mode 100644 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch create mode 100644 0004-getty-generator-properly-escape-instance-names.patch create mode 100644 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0004-hwdb-update-format-description-and-document-reloadin.patch create mode 100644 0004-hwdb-update.patch create mode 100644 0004-implement-a-union-to-pad-out-file_handle.patch create mode 100644 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch create mode 100644 0004-journal-do-server_vacuum-for-sigusr1.patch create mode 100644 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch create mode 100644 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch create mode 100644 0004-machined-make-sure-GetMachineAddresses-is-available-.patch create mode 100644 0004-man-document-missing-options-of-systemd-run.patch create mode 100644 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch create mode 100644 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch create mode 100644 0004-sd-event-check-the-value-of-received-signal.patch create mode 100644 0004-sd-journal-verify-that-object-start-with-the-field-n.patch create mode 100644 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch create mode 100644 0004-shared-conf-parser.patch create mode 100644 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch create mode 100644 0004-socket-properly-handle-if-our-service-vanished-durin.patch create mode 100644 0004-systemd-detect-virt-only-discover-Xen-domU.patch create mode 100644 0004-systemd-python-use-.hex-instead-of-.get_hex.patch create mode 100644 0004-systemd-return-the-first-error-from-manager_startup.patch create mode 100644 0004-util-ignore_file-should-not-allow-files-ending-with.patch create mode 100644 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch create mode 100644 0005-Replace-var-run-with-run-in-remaining-places.patch create mode 100644 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch create mode 100644 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch create mode 100644 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch create mode 100644 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch create mode 100644 0005-bus-close-a-bus-that-failed-to-connect.patch create mode 100644 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch create mode 100644 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch create mode 100644 0005-cryptsetup-fix-an-OOM-check.patch create mode 100644 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0005-hwdb-update.patch create mode 100644 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch create mode 100644 0005-journalctl-correct-help-text-for-until.patch create mode 100644 0005-login-fix-mem-leak.patch create mode 100644 0005-logind-fix-policykit-checks.patch create mode 100644 0005-logind-fix-typo.patch create mode 100644 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch create mode 100644 0005-man-fix-path-in-crypttab-5.patch create mode 100644 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch create mode 100644 0005-po-add-Greek-translation.patch create mode 100644 0005-sd-daemon-fix-incorrect-variable-access.patch create mode 100644 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch create mode 100644 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch create mode 100644 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch create mode 100644 0005-shared-label.h-add-missing-stdio.h-include.patch create mode 100644 0005-systemd-python-fix-failing-assert.patch create mode 100644 0005-systemd-run-add-some-extra-safety-checks.patch create mode 100644 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch create mode 100644 0005-util-avoid-double-close-of-fd.patch create mode 100644 0006-Do-not-return-1-EINVAL-on-allocation-error.patch create mode 100644 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch create mode 100644 0006-bus-unref-buscreds-on-failure.patch create mode 100644 0006-calendarspec-fix-typo-in-annually.patch create mode 100644 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0006-hwdb-update.patch create mode 100644 0006-journal-assume-that-next-entry-is-after-previous-ent.patch create mode 100644 0006-journald-fix-minor-memory-leak.patch create mode 100644 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch create mode 100644 0006-login-add-mir-to-the-list-of-session-types.patch create mode 100644 0006-login-share-VT-signal-handler-between-sessions.patch create mode 100644 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch create mode 100644 0006-parse_boolean-require-exact-matches.patch create mode 100644 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch create mode 100644 0006-sd-event-initialization-perturbation-value-right-bef.patch create mode 100644 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch create mode 100644 0006-systemctl-fix-resource-leak-CID-1237747.patch create mode 100644 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch create mode 100644 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch create mode 100644 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch create mode 100644 0007-README-document-that-var-run-must-be-a-symlink-run.patch create mode 100644 0007-core-fix-a-potential-mem-leak.patch create mode 100644 0007-dbus-suppress-duplicate-and-misleading-messages.patch create mode 100644 0007-drop_duplicates-copy-full-BindMount-struct.patch create mode 100644 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0007-hwdb-update.patch create mode 100644 0007-journal-forget-file-after-encountering-an-error.patch create mode 100644 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch create mode 100644 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch create mode 100644 0007-keyboard-add-Plantronics-.Audio-mute-button.patch create mode 100644 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch create mode 100644 0007-logind-fix-Display-property-of-user-objects.patch create mode 100644 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch create mode 100644 0007-networkd-fix-typo.patch create mode 100644 0007-po-add-German-translation.patch create mode 100644 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch create mode 100644 0007-service-flush-status-text-and-errno-values-each-time.patch create mode 100644 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch create mode 100644 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch create mode 100644 0008-Reset-signal-mask-on-re-exec-to-init.patch create mode 100644 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch create mode 100644 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch create mode 100644 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch create mode 100644 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0008-hwdb-update.patch create mode 100644 0008-journald-fix-memory-leak-on-error-path.patch create mode 100644 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch create mode 100644 0008-man-update-journald-rate-limit-defaults.patch create mode 100644 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch create mode 100644 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch create mode 100644 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch create mode 100644 0008-shell-completion-prevent-mangling-unit-names-bash.patch create mode 100644 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch create mode 100644 0008-util-introduce-sethostname_idempotent.patch create mode 100644 0009-ask-password-when-the-user-types-a-overly-long-passw.patch create mode 100644 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch create mode 100644 0009-core-clean-up-signal-reset-logic-when-reexec.patch create mode 100644 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0009-hwdb-update.patch create mode 100644 0009-journal-do-not-leak-mmaps-on-OOM.patch create mode 100644 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch create mode 100644 0009-journald-always-add-syslog-facility-for-messages-com.patch create mode 100644 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch create mode 100644 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch create mode 100644 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch create mode 100644 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch create mode 100644 0009-units-make-systemd-journald.service-Type-notify.patch create mode 100644 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch create mode 100644 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch create mode 100644 0010-logind-allow-suspending-if-there-are-no-displays.patch create mode 100644 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch create mode 100644 0010-man-update-link-to-LSB.patch create mode 100644 0010-manager-use-correct-cleanup-function.patch create mode 100644 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch create mode 100644 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch create mode 100644 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch create mode 100644 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch create mode 100644 0011-logs-show-fix-corrupt-output-with-empty-messages.patch create mode 100644 0011-man-systemd-bootchart-fix-spacing-in-command.patch create mode 100644 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch create mode 100644 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch create mode 100644 0012-core-transaction-avoid-misleading-error-message-when.patch create mode 100644 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch create mode 100644 0012-journald-remove-stray-reset-of-error-return-value.patch create mode 100644 0012-man-add-missing-comma.patch create mode 100644 0012-manager-do-not-print-anything-while-passwords-are-be.patch create mode 100644 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch create mode 100644 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch create mode 100644 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch create mode 100644 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch create mode 100644 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch create mode 100644 1008-add-msft-compability-rules.patch create mode 100644 1009-cdrom_id-use-the-old-MMC-fallback.patch create mode 100644 1010-udev-increase-result-size-for-programs.patch create mode 100644 1014-udev-update-net_id-comments.patch create mode 100644 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch create mode 100644 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch create mode 100644 1017-udev-serialize-synchronize-block-device-event-handli.patch create mode 100644 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch create mode 100644 1019-udev-avoid-use-of-uninitialized-err.patch create mode 100644 1020-udev-keyboard-also-hook-into-change-events.patch create mode 100644 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch create mode 100644 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch create mode 100644 1024-udev-always-close-lock-file-descriptor.patch create mode 100644 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch create mode 100644 1026-udevd-inotify-modernizations.patch create mode 100644 1027-udev-synthesize-change-events-for-partitions-when-to.patch create mode 100644 1028-udev-link-config-fix-mem-leak.patch create mode 100644 1029-udev-try-first-re-reading-the-partition-table.patch create mode 100644 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch create mode 100644 1031-udev-make-sure-we-always-get-change-for-the-disk.patch create mode 100644 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch create mode 100644 1033-udev-really-exclude-device-mapper-from-block-device.patch create mode 100644 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch create mode 100644 1038-udev-fix-invalid-free-in-enable_name_policy.patch create mode 100644 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch create mode 100644 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch create mode 100644 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch create mode 100644 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch create mode 100644 1044-rules-update-qemu-hid-rules.patch create mode 100644 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch create mode 100644 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch create mode 100644 1048-udev-net_setup_link-add-a-bit-more-logging.patch create mode 100644 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch create mode 100644 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch create mode 100644 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch create mode 100644 1056-udevd-add-event-timeout-commandline-option.patch create mode 100644 1057-udev-unify-event-timeout-handling.patch create mode 100644 1058-udev-unify-event-timeout-handling.patch create mode 100644 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch create mode 100644 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch create mode 100644 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch create mode 100644 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch create mode 100644 1065-udev-bump-event-timeout-to-60-seconds.patch create mode 100644 1067-udev-always-resolve-correctly-database-names-on-chan.patch create mode 100644 1068-udev-net_setup_link-export-the-.link-filename-applie.patch create mode 100644 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch create mode 100644 1070-rules-net-setup-link-remove-stray-linebreak.patch create mode 100644 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch create mode 100644 1072-udev-netif_rename-don-t-log-to-kmsg.patch create mode 100644 1073-udev-drop-print_kmsg.patch create mode 100644 1074-udev-fix-copy-paste-error-in-log-message.patch create mode 100644 1075-udev-timeout-increase-timeout.patch create mode 100644 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch create mode 100644 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch create mode 100644 1078-udev-remove-userspace-firmware-loading-support.patch create mode 100644 1079-udev-remove-userspace-firmware-loading-support.patch create mode 100644 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch create mode 100644 1081-udevd-check-return-of-various-functions.patch create mode 100644 1082-udevadm-hwdb-check-return-value-of-fseeko.patch create mode 100644 1083-udev-node-warn-if-chmod-chown-fails.patch create mode 100644 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch create mode 100644 1085-udev-fix-typos.patch create mode 100644 1086-udevd-don-t-fail-if-run-udev-exists.patch create mode 100644 1087-infinit-timeout-for-kmod-loaded-modules.patch create mode 100644 1089-fix-cgroup-device-controller.patch create mode 100644 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch create mode 100644 1091-udev-path_id-update-comments.patch create mode 100644 1092-libudev-do-not-accept-invalid-log-levels.patch create mode 100644 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch create mode 100644 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch create mode 100644 1098-udev-link_setup-respect-kernel-name-assign-policy.patch create mode 100644 513-nspawn-veth.patch create mode 100644 Revert-service-drop-support-for-SysV-scripts-for-the-early.patch create mode 100644 avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch create mode 100644 avoid-leaking-socket-descriptors.patch create mode 100644 boot.udev create mode 100644 disable-nss-myhostname-warning-bnc-783841.patch create mode 100644 fix-owner-of-var-log-btmp.patch create mode 100644 handle-SYSTEMCTL_OPTIONS-environment-variable.patch create mode 100644 handle-etc-HOSTNAME.patch create mode 100644 localfs.service create mode 100644 log-target-null-instead-kmsg.patch create mode 100644 module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch create mode 100644 optionally-warn-if-nss-myhostname-is-called.patch create mode 100644 prepare-suspend-to-disk.patch create mode 100644 remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch create mode 100644 service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch create mode 100644 shut-up-annoying-assertion-monotonic-clock-message.patch delete mode 100644 suse-sysv-bootd-support.diff create mode 100644 systemd-210.tar.xz delete mode 100644 systemd-219.tar.xz create mode 100644 systemd-journald.init create mode 100644 systemd-sleep-grub create mode 100644 timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch create mode 100644 tmpfiles-do-not-clean-for-mandb-index-files.patch create mode 100644 use-usr-sbin-sulogin-for-emergency-service.patch diff --git a/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch b/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch new file mode 100644 index 00000000..53ccbcf5 --- /dev/null +++ b/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch @@ -0,0 +1,110 @@ +Based on 874bc134ac6504c45e94174e37af13ff21a6bfe2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 14 Jul 2014 16:53:23 -0400 +Subject: [PATCH] Clear up confusion wrt. ENTRY_SIZE_MAX and DATA_SIZE_MAX + +Define DATA_SIZE_MAX to mean the maximum size of a single +field, and ENTRY_SIZE_MAX to mean the size of the whole +entry, with some rough calculation of overhead over the payload. + +Check if entries are not too big when processing native journal +messages. +--- + src/journal/coredump.c | 6 +++--- + src/journal/journald-native.c | 25 +++++++++++++++++++++---- + 2 files changed, 24 insertions(+), 7 deletions(-) +--- src/journal/coredump.c ++++ src/journal/coredump.c 2014-07-16 13:02:54.438235659 +0000 +@@ -38,10 +38,10 @@ + #include "cgroup-util.h" + + /* Few programs have less than 3MiB resident */ +-#define COREDUMP_MIN_START (3*1024*1024) ++#define COREDUMP_MIN_START (3*1024*1024u) + /* Make sure to not make this larger than the maximum journal entry +- * size. See ENTRY_SIZE_MAX in journald-native.c. */ +-#define COREDUMP_MAX (767*1024*1024) ++ * size. See DATA_SIZE_MAX in journald-native.c. */ ++#define COREDUMP_MAX (1024*1024*767u) + + enum { + ARG_PID = 1, +--- src/journal/journald-native.c ++++ src/journal/journald-native.c 2014-07-16 12:50:45.000000000 +0000 +@@ -34,8 +34,8 @@ + + /* Make sure not to make this smaller than the maximum coredump + * size. See COREDUMP_MAX in coredump.c */ +-#define ENTRY_SIZE_MAX (1024*1024*768) +-#define DATA_SIZE_MAX (1024*1024*768) ++#define ENTRY_SIZE_MAX (1024*1024*770u) ++#define DATA_SIZE_MAX (1024*1024*768u) + + static bool valid_user_field(const char *p, size_t l) { + const char *a; +@@ -86,7 +86,7 @@ void server_process_native_message( + struct iovec *iovec = NULL; + unsigned n = 0, j, tn = (unsigned) -1; + const char *p; +- size_t remaining, m = 0; ++ size_t remaining, m = 0, entry_size = 0; + int priority = LOG_INFO; + char *identifier = NULL, *message = NULL; + pid_t object_pid = 0; +@@ -110,9 +110,17 @@ void server_process_native_message( + + if (e == p) { + /* Entry separator */ ++ ++ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ ++ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", ++ n, entry_size); ++ continue; ++ } ++ + server_dispatch_message(s, iovec, n, m, ucred, tv, label, label_len, NULL, priority, object_pid); + n = 0; + priority = LOG_INFO; ++ entry_size = 0; + + p++; + remaining--; +@@ -150,6 +158,7 @@ void server_process_native_message( + iovec[n].iov_base = (char*) p; + iovec[n].iov_len = l; + n++; ++ entry_size += iovec[n].iov_len; + + /* We need to determine the priority + * of this entry for the rate limiting +@@ -218,7 +227,7 @@ void server_process_native_message( + l = le64toh(l_le); + + if (l > DATA_SIZE_MAX) { +- log_debug("Received binary data block too large, ignoring."); ++ log_debug("Received binary data block of %zu bytes is too large, ignoring.", l); + break; + } + +@@ -242,6 +251,7 @@ void server_process_native_message( + iovec[n].iov_base = k; + iovec[n].iov_len = (e - p) + 1 + l; + n++; ++ entry_size += iovec[n].iov_len; + } else + free(k); + +@@ -255,6 +265,13 @@ void server_process_native_message( + + tn = n++; + IOVEC_SET_STRING(iovec[tn], "_TRANSPORT=journal"); ++ entry_size += strlen("_TRANSPORT=journal"); ++ ++ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ ++ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", ++ n, entry_size); ++ goto finish; ++ } + + if (message) { + if (s->forward_to_syslog) diff --git a/0001-Do-not-unescape-unit-names-in-Install-section.patch b/0001-Do-not-unescape-unit-names-in-Install-section.patch new file mode 100644 index 00000000..18e4aaa1 --- /dev/null +++ b/0001-Do-not-unescape-unit-names-in-Install-section.patch @@ -0,0 +1,21 @@ +Based on 000f6e5667eb4f73e137cbd0d7395a9f9db7728a Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Mon, 26 May 2014 20:09:45 +0200 +Subject: [PATCH] Do not unescape unit names in [Install] section + +https://bugs.freedesktop.org/show_bug.cgi?id=49316 +--- + src/shared/conf-parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c 2014-05-27 07:36:20.478236631 +0000 +@@ -723,7 +723,7 @@ int config_parse_strv(const char *unit, + FOREACH_WORD_QUOTED(w, l, rvalue, state) { + _cleanup_free_ char *n; + +- n = cunescape_length(w, l); ++ n = strndup(w, l); + if (!n) + return log_oom(); + diff --git a/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch b/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch new file mode 100644 index 00000000..7f0f7b9c --- /dev/null +++ b/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch @@ -0,0 +1,25 @@ +From 5effdfa831d75306fc0ff9b47d39997e4ae87f16 Mon Sep 17 00:00:00 2001 +From: Michael Meeks +Date: Tue, 11 Feb 2014 14:42:26 +0000 +Subject: [PATCH] Don't snprintf a potentially NULL pointer. + +--- + src/shared/log.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/log.c b/src/shared/log.c +index 2a075ff..d6b138f 100644 +--- a/src/shared/log.c ++++ b/src/shared/log.c +@@ -479,7 +479,7 @@ static int log_do_header(char *header, size_t size, + func ? "CODE_FUNCTION=" : "", + func ? LINE_MAX : 0, func, + func ? "\n" : "", +- object ? object_name : "", ++ object_name ? object_name : "", + object ? LINE_MAX : 0, object, /* %.0s means no output */ + object ? "\n" : "", + program_invocation_short_name); +-- +1.8.4.5 + diff --git a/0001-Fix-systemd-stdio-bridge-symlink.patch b/0001-Fix-systemd-stdio-bridge-symlink.patch new file mode 100644 index 00000000..02e7e1cc --- /dev/null +++ b/0001-Fix-systemd-stdio-bridge-symlink.patch @@ -0,0 +1,28 @@ +From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Sun, 2 Mar 2014 23:37:39 -0500 +Subject: [PATCH] Fix systemd-stdio-bridge symlink + +The symlink is created in bindir (/usr/bin), and points to a binary +which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A +relative symlink does not work here. +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git Makefile.am Makefile.am +index 38445fb..e7134a2 100644 +--- Makefile.am ++++ Makefile.am +@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ + + bus-proxyd-install-hook: + $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) +- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge ++ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge + + bus-proxyd-uninstall-hook: + rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge +-- +1.7.9.2 + diff --git a/0001-Fix-warning-about-unused-variable-with-SELINUX.patch b/0001-Fix-warning-about-unused-variable-with-SELINUX.patch new file mode 100644 index 00000000..f1fb4ea9 --- /dev/null +++ b/0001-Fix-warning-about-unused-variable-with-SELINUX.patch @@ -0,0 +1,31 @@ +From 493d521d9ffe706741665a88ea14929913ea2eaf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 23 Sep 2014 09:22:40 -0400 +Subject: [PATCH] Fix warning about unused variable with !SELINUX + +src/shared/label.c:255:15: warning: unused variable 'l' [-Wunused-variable] + char *l = NULL; + ^ +--- + src/shared/label.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/shared/label.c src/shared/label.c +index 02b41f0..b6af38d 100644 +--- src/shared/label.c ++++ src/shared/label.c +@@ -252,9 +252,10 @@ fail: + + int label_get_our_label(char **label) { + int r = -EOPNOTSUPP; +- char *l = NULL; + + #ifdef HAVE_SELINUX ++ char *l = NULL; ++ + r = getcon(&l); + if (r < 0) + return r; +-- +1.7.9.2 + diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index ef656b99..f09e8270 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,29 +1,25 @@ --- rules/99-systemd.rules.in | 2 - src/core/manager.c | 24 ++++++++--- - src/shared/util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- + src/core/manager.c | 24 ++++++++-- + src/shared/util.c | 101 ++++++++++++++++++++++++++++++++++++++++++++-- src/shared/util.h | 1 - 4 files changed, 116 insertions(+), 10 deletions(-) + 4 files changed, 118 insertions(+), 10 deletions(-) -Index: systemd/rules/99-systemd.rules.in -=================================================================== ---- systemd.orig/rules/99-systemd.rules.in -+++ systemd/rules/99-systemd.rules.in +--- systemd-208/rules/99-systemd.rules.in ++++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="systemd_end" --SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd" +-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*", TAG+="systemd" +SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" KERNEL=="vport*", TAG+="systemd" -Index: systemd/src/core/manager.c -=================================================================== ---- systemd.orig/src/core/manager.c -+++ systemd/src/core/manager.c -@@ -113,7 +113,7 @@ static int manager_watch_jobs_in_progres +--- systemd-210/src/core/manager.c ++++ systemd-210/src/core/manager.c 2014-04-30 10:51:43.398735332 +0000 +@@ -110,7 +110,7 @@ static int manager_watch_jobs_in_progres #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) @@ -32,7 +28,7 @@ Index: systemd/src/core/manager.c char *p = buffer; assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); -@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si +@@ -119,12 +119,14 @@ static void draw_cylon(char buffer[], si if (pos > 1) { if (pos > 2) p = mempset(p, ' ', pos-2); @@ -49,7 +45,7 @@ Index: systemd/src/core/manager.c *p++ = '*'; } -@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si +@@ -135,7 +137,8 @@ static void draw_cylon(char buffer[], si *p++ = '*'; if (pos < width-1) p = mempset(p, ' ', width-1-pos); @@ -59,7 +55,7 @@ Index: systemd/src/core/manager.c } } -@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m +@@ -150,6 +153,7 @@ void manager_flip_auto_status(Manager *m } static void manager_print_jobs_in_progress(Manager *m) { @@ -67,7 +63,7 @@ Index: systemd/src/core/manager.c _cleanup_free_ char *job_of_n = NULL; Iterator i; Job *j; -@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre +@@ -174,10 +178,20 @@ static void manager_print_jobs_in_progre assert(counter == print_nr + 1); assert(j); @@ -89,11 +85,9 @@ Index: systemd/src/core/manager.c m->jobs_in_progress_iteration++; -Index: systemd/src/shared/util.c -=================================================================== ---- systemd.orig/src/shared/util.c -+++ systemd/src/shared/util.c -@@ -3212,6 +3212,7 @@ int status_vprintf(const char *status, b +--- systemd-210/src/shared/util.c ++++ systemd-210/src/shared/util.c 2014-04-30 10:39:17.154736438 +0000 +@@ -2886,6 +2886,7 @@ int status_vprintf(const char *status, b struct iovec iovec[6] = {}; int n = 0; static bool prev_ephemeral; @@ -101,12 +95,12 @@ Index: systemd/src/shared/util.c assert(format); -@@ -3225,6 +3226,41 @@ int status_vprintf(const char *status, b +@@ -2899,6 +2900,41 @@ int status_vprintf(const char *status, b if (fd < 0) return fd; + if (_unlikely_(is_ansi_console < 0)) -+ is_ansi_console = ansi_console(fd); ++ is_ansi_console = (int)ansi_console(fd); + + if (status && !is_ansi_console) { + const char *esc, *ptr; @@ -143,7 +137,7 @@ Index: systemd/src/shared/util.c if (ellipse) { char *e; size_t emax, sl; -@@ -3247,8 +3283,12 @@ int status_vprintf(const char *status, b +@@ -2921,8 +2957,12 @@ int status_vprintf(const char *status, b } } @@ -158,7 +152,7 @@ Index: systemd/src/shared/util.c prev_ephemeral = ephemeral; if (status) { -@@ -3504,8 +3544,22 @@ void columns_lines_cache_reset(int signu +@@ -3169,12 +3209,47 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; @@ -182,9 +176,6 @@ Index: systemd/src/shared/util.c return cached_on_tty; } -@@ -3523,6 +3577,27 @@ int files_same(const char *filea, const - a.st_ino == b.st_ino; - } +bool ansi_console(int fd) { + static int cached_ansi_console = -1; @@ -208,13 +199,13 @@ Index: systemd/src/shared/util.c +} + int running_in_chroot(void) { - int ret; + struct stat a = {}, b = {}; -@@ -4006,7 +4081,23 @@ bool tty_is_vc_resolve(const char *tty) +@@ -3630,7 +3705,25 @@ bool tty_is_vc_resolve(const char *tty) const char *default_term_for_tty(const char *tty) { assert(tty); -- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220"; +- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102"; + if (tty_is_vc_resolve(tty)) + return "TERM=linux"; + @@ -230,16 +221,16 @@ Index: systemd/src/shared/util.c + if (streq(mode, "3270")) + return "TERM=ibm327x"; + } ++ if (streq(tty, "ttyS1")) ++ return "TERM=vt220"; +#endif -+ return "TERM=vt220"; ++ return "TERM=vt102"; } bool dirent_is_file(const struct dirent *de) { -Index: systemd/src/shared/util.h -=================================================================== ---- systemd.orig/src/shared/util.h -+++ systemd/src/shared/util.h -@@ -475,6 +475,7 @@ unsigned lines(void); +--- systemd-210/src/shared/util.h ++++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000 +@@ -418,6 +418,7 @@ unsigned lines(void); void columns_lines_cache_reset(int _unused_ signum); bool on_tty(void); 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 00000000..14104a34 --- /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-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index d6b6fa3a..b4aeb6f4 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -1,13 +1,11 @@ --- - src/core/shutdown.c | 4 ++++ - src/systemctl/systemctl.c | 18 ++++++++++++------ - 2 files changed, 16 insertions(+), 6 deletions(-) + systemd-209/src/core/shutdown.c | 4 ++++ + systemd-209/src/systemctl/systemctl.c | 22 +++++++++++++++------- + 2 files changed, 19 insertions(+), 7 deletions(-) -Index: systemd-218/src/core/shutdown.c -=================================================================== ---- systemd-218.orig/src/core/shutdown.c -+++ systemd-218/src/core/shutdown.c -@@ -400,6 +400,10 @@ int main(int argc, char *argv[]) { +--- systemd-209/src/core/shutdown.c ++++ systemd-209/src/core/shutdown.c 2014-02-28 11:17:22.000000000 +0000 +@@ -449,6 +449,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); @@ -18,11 +16,9 @@ Index: systemd-218/src/core/shutdown.c if (errno == EPERM && in_container) { /* If we are in a container, and we lacked * CAP_SYS_BOOT just exit, this will kill our -Index: systemd-218/src/systemctl/systemctl.c -=================================================================== ---- systemd-218.orig/src/systemctl/systemctl.c -+++ systemd-218/src/systemctl/systemctl.c -@@ -94,6 +94,7 @@ static bool arg_no_pager = false; +--- systemd-209/src/systemctl/systemctl.c ++++ systemd-209/src/systemctl/systemctl.c 2014-02-28 11:19:35.000000000 +0000 +@@ -93,6 +93,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -30,7 +26,7 @@ Index: systemd-218/src/systemctl/systemctl.c static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -6813,6 +6814,7 @@ static int halt_parse_argv(int argc, cha +@@ -5578,6 +5579,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -38,7 +34,7 @@ Index: systemd-218/src/systemctl/systemctl.c { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -6865,10 +6867,13 @@ static int halt_parse_argv(int argc, cha +@@ -5629,10 +5631,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -53,17 +49,17 @@ Index: systemd-218/src/systemctl/systemctl.c case '?': return -EINVAL; -@@ -7511,7 +7516,8 @@ static int halt_now(enum action a) { - /* The kernel will automaticall flush ATA disks and suchlike - * on reboot(), but the file systems need to be synce'd - * explicitly in advance. */ -- sync(); +@@ -6274,20 +6279,23 @@ done: + + static int halt_now(enum action a) { + +-/* Make sure C-A-D is handled by the kernel from this + if (!arg_no_sync) + sync(); - - /* Make sure C-A-D is handled by the kernel from this point - * on... */ -@@ -7519,14 +7525,14 @@ static int halt_now(enum action a) { ++ ++ /* Make sure C-A-D is handled by the kernel from this + * point on... */ + reboot(RB_ENABLE_CAD); switch (a) { @@ -71,11 +67,12 @@ Index: systemd-218/src/systemctl/systemctl.c - log_info("Halting."); - reboot(RB_HALT_SYSTEM); - return -errno; - +- case ACTION_POWEROFF: log_info("Powering off."); reboot(RB_POWER_OFF); -+ /* fall-through */ ++ /* Fall through */ ++ + case ACTION_HALT: + log_info("Halting."); + reboot(RB_HALT_SYSTEM); diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index eb070d64..57a87c73 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -11,23 +11,19 @@ NFS share is added as "After=" dependency to the .mount. src/shared/util.c | 1 5 files changed, 234 insertions(+), 2 deletions(-) -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -1134,6 +1134,8 @@ libsystemd_core_la_SOURCES = \ +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-02-26 12:44:20.000000000 +0000 +@@ -994,6 +994,8 @@ libsystemd_core_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ + src/core/mount-iface.c \ + src/core/mount-iface.h \ - src/core/kmod-setup.c \ - src/core/kmod-setup.h \ src/core/loopback-setup.h \ -Index: systemd-218/src/core/mount-iface.c -=================================================================== ---- /dev/null -+++ systemd-218/src/core/mount-iface.c + src/core/loopback-setup.c \ + src/core/condition.c \ +--- systemd-210/src/core/mount-iface.c ++++ systemd-210/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -170,7 +166,7 @@ Index: systemd-218/src/core/mount-iface.c + continue; + + ret = ifa->ifa_name; -+ break; ++ break; + } else if (ifa->ifa_addr->sa_family == AF_INET6) { + struct in6_addr *addr, *mask, dest, ip6; + unsigned int prefix; @@ -202,10 +198,8 @@ Index: systemd-218/src/core/mount-iface.c + freeifaddrs(ifa_list); + ifa_list = NULL; +} -Index: systemd-218/src/core/mount-iface.h -=================================================================== ---- /dev/null -+++ systemd-218/src/core/mount-iface.h +--- systemd-210/src/core/mount-iface.h ++++ systemd-210/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -232,11 +226,9 @@ Index: systemd-218/src/core/mount-iface.h + +char *host2iface(const char *ip); +void freeroutes(void); -Index: systemd-218/src/core/mount.c -=================================================================== ---- systemd-218.orig/src/core/mount.c -+++ systemd-218/src/core/mount.c -@@ -38,6 +38,7 @@ +--- systemd-210/src/core/mount.c ++++ systemd-210/src/core/mount.c 2014-03-03 12:13:23.406246117 +0000 +@@ -36,6 +36,7 @@ #include "mkdir.h" #include "path-util.h" #include "mount-setup.h" @@ -244,7 +236,7 @@ Index: systemd-218/src/core/mount.c #include "unit-name.h" #include "dbus-mount.h" #include "special.h" -@@ -1365,8 +1366,9 @@ static int mount_add_one( +@@ -1388,8 +1389,9 @@ static int mount_add_one( _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; @@ -255,7 +247,7 @@ Index: systemd-218/src/core/mount.c int r; assert(m); -@@ -1391,6 +1393,8 @@ static int mount_add_one( +@@ -1414,6 +1416,8 @@ static int mount_add_one( if (!e) return -ENOMEM; @@ -264,16 +256,16 @@ Index: systemd-218/src/core/mount.c u = manager_get_unit(m, e); if (!u) { delete = true; -@@ -1419,7 +1423,7 @@ static int mount_add_one( +@@ -1442,7 +1446,7 @@ static int mount_add_one( if (m->running_as == SYSTEMD_SYSTEM) { const char* target; -- target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; +- target = fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) - goto fail; -@@ -1505,6 +1509,32 @@ static int mount_add_one( +@@ -1519,6 +1523,32 @@ static int mount_add_one( goto fail; } @@ -296,7 +288,7 @@ Index: systemd-218/src/core/mount.c + else { + r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); + if (r < 0) -+ log_unit_error(u->id, "Failed to add dependency on %s, ignoring: %s", ++ log_error_unit(u->id, "Failed to add dependency on %s, ignoring: %s", + target, strerror(-r)); + } + } @@ -306,23 +298,21 @@ Index: systemd-218/src/core/mount.c if (changed) unit_add_to_dbus_queue(u); -@@ -1560,6 +1590,7 @@ static int mount_load_proc_self_mountinf - if (r == 0 && k < 0) +@@ -1583,6 +1613,7 @@ static int mount_load_proc_self_mountinf + if (k < 0) r = k; } + freeroutes(); /* Just in case of using the routing table with host2iface() */ return r; } -Index: systemd-218/src/shared/util.c -=================================================================== ---- systemd-218.orig/src/shared/util.c -+++ systemd-218/src/shared/util.c -@@ -1667,6 +1667,7 @@ bool fstype_is_network(const char *fstyp +--- systemd-210/src/shared/util.c ++++ systemd-210/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 +@@ -1502,6 +1502,7 @@ bool fstype_is_network(const char *fstyp "ncp\0" "nfs\0" "nfs4\0" + "afs\0" "gfs\0" - "gfs2\0" - "glusterfs\0"; + "gfs2\0"; + diff --git a/0001-architecture-Add-tilegx.patch b/0001-architecture-Add-tilegx.patch new file mode 100644 index 00000000..277587c3 --- /dev/null +++ b/0001-architecture-Add-tilegx.patch @@ -0,0 +1,56 @@ +From 46eea341c36f0caf0bdd5b2274a1ef7cb4e83e97 Mon Sep 17 00:00:00 2001 +From: Henrik Grindal Bakken +Date: Thu, 27 Feb 2014 21:19:13 +0100 +Subject: [PATCH] architecture: Add tilegx + +Add Tilera's TILE-GX processor family support. +--- + src/shared/architecture.c | 3 +++ + src/shared/architecture.h | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index ceba492..fcdb3d5 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -112,6 +112,8 @@ Architecture uname_architecture(void) { + { "sh", ARCHITECTURE_SH }, + #elif defined(__m68k__) + { "m68k", ARCHITECTURE_M68K }, ++#elif defined(__tilegx__) ++ { "tilegx", ARCHITECTURE_TILEGX }, + #else + #error "Please register your architecture here!" + #endif +@@ -158,6 +160,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { + [ARCHITECTURE_SH] = "sh", + [ARCHITECTURE_SH64] = "sh64", + [ARCHITECTURE_M68K] = "m68k", ++ [ARCHITECTURE_TILEGX] = "tilegx", + }; + + DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); +diff --git src/shared/architecture.h src/shared/architecture.h +index 3183645..e589a91 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -47,6 +47,7 @@ typedef enum Architecture { + ARCHITECTURE_SH, + ARCHITECTURE_SH64, + ARCHITECTURE_M68K, ++ ARCHITECTURE_TILEGX, + _ARCHITECTURE_MAX, + _ARCHITECTURE_INVALID = -1 + } Architecture; +@@ -107,6 +108,8 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_SH + #elif defined(__m68k__) + # define native_architecture() ARCHITECTURE_M68K ++#elif defined(__tilegx__) ++# define native_architecture() ARCHITECTURE_TILEGX + #else + #error "Please register your architecture here!" + #endif +-- +1.7.9.2 + diff --git a/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch b/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch new file mode 100644 index 00000000..3b20a7e0 --- /dev/null +++ b/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch @@ -0,0 +1,79 @@ +From 7b909d7407965c03caaba30daae7aee113627a83 Mon Sep 17 00:00:00 2001 +From: Josh Triplett +Date: Tue, 11 Mar 2014 21:16:33 -0700 +Subject: [PATCH] backlight: Avoid restoring brightness to an unreadably dim + level + +Some systems turn the backlight all the way off at the lowest levels. +Clamp saved brightness to at least 1 or 5% of max_brightness. This +avoids preserving an unreadably dim screen, which would otherwise force +the user to disable state restoration. +--- + src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 81470b3..abf8bcf 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -192,6 +192,48 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { + return true; + } + ++/* Some systems turn the backlight all the way off at the lowest levels. ++ * clamp_brightness clamps the saved brightness to at least 1 or 5% of ++ * max_brightness. This avoids preserving an unreadably dim screen, which ++ * would otherwise force the user to disable state restoration. */ ++static void clamp_brightness(struct udev_device *device, char **value) { ++ int r; ++ const char *max_brightness_str; ++ unsigned brightness, max_brightness, new_brightness; ++ ++ max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); ++ if (!max_brightness_str) { ++ log_warning("Failed to read max_brightness attribute; not checking saved brightness"); ++ return; ++ } ++ ++ r = safe_atou(*value, &brightness); ++ if (r < 0) { ++ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); ++ return; ++ } ++ ++ r = safe_atou(max_brightness_str, &max_brightness); ++ if (r < 0) { ++ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ return; ++ } ++ ++ new_brightness = MAX3(brightness, 1U, max_brightness/20); ++ if (new_brightness != brightness) { ++ char *old_value = *value; ++ ++ r = asprintf(value, "%u", new_brightness); ++ if (r < 0) { ++ log_oom(); ++ return; ++ } ++ ++ log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); ++ free(old_value); ++ } ++} ++ + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_device_unref_ struct udev_device *device = NULL; +@@ -306,6 +348,8 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + ++ clamp_brightness(device, &value); ++ + r = udev_device_set_sysattr_value(device, "brightness", value); + if (r < 0) { + log_error("Failed to write system attribute: %s", strerror(-r)); +-- +1.7.9.2 + diff --git a/0001-bash-completion-fix-__get_startable_units.patch b/0001-bash-completion-fix-__get_startable_units.patch new file mode 100644 index 00000000..815e6abd --- /dev/null +++ b/0001-bash-completion-fix-__get_startable_units.patch @@ -0,0 +1,25 @@ +From a163b64c4b08e8a4ad39a9a295acf3d1634024a3 Mon Sep 17 00:00:00 2001 +From: Dan Kilman +Date: Sun, 13 Apr 2014 18:06:13 +0300 +Subject: [PATCH] bash completion: fix __get_startable_units + +--- + shell-completion/bash/systemctl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl +index 992e52d..e1c8420 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -56,7 +56,7 @@ __get_all_units () { __systemctl $1 list-units --all \ + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } + __get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ +- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed " ]] && echo " $a"; done; }; } ++ | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } + __get_failed_units () { __systemctl $1 list-units \ + | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } + __get_enabled_units () { __systemctl $1 list-unit-files \ +-- +1.7.9.2 + diff --git a/0001-bash-completion-p-option-for-journalctl.patch b/0001-bash-completion-p-option-for-journalctl.patch new file mode 100644 index 00000000..f41318f5 --- /dev/null +++ b/0001-bash-completion-p-option-for-journalctl.patch @@ -0,0 +1,46 @@ +From be8f4a9fa732d61e845e1ab1a62ac3a6b368d3a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 19 Jul 2014 19:46:04 -0400 +Subject: [PATCH] bash-completion: -p option for journalctl + +--- + shell-completion/bash/journalctl | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git shell-completion/bash/journalctl shell-completion/bash/journalctl +index e4b2f4a..14dcd22 100644 +--- shell-completion/bash/journalctl ++++ shell-completion/bash/journalctl +@@ -35,6 +35,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} + _UDEV_{SYSNAME,DEVNODE,DEVLINK} + __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) + ++__syslog_priorities=(emerg alert crit err warning notice info debug) ++ + _journalctl() { + local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + local -A OPTS=( +@@ -44,8 +46,8 @@ _journalctl() { + --no-tail -q --quiet --setup-keys --this-boot --verify + --version --list-catalog --update-catalog --list-boots' + [ARG]='-b --boot --this-boot -D --directory --file -F --field +- -o --output -u --unit --user-unit' +- [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until ++ -o --output -u --unit --user-unit -p --priority' ++ [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until + --verify-key' + ) + +@@ -68,6 +70,9 @@ _journalctl() { + --field|-F) + comps=${__journal_fields[*]} + ;; ++ --priority|-p) ++ comps=${__syslog_priorities[*]} ++ ;; + --unit|-u) + comps=$(journalctl -F '_SYSTEMD_UNIT' 2>/dev/null) + ;; +-- +1.7.9.2 + diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index 104339e0..a7021400 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -3,11 +3,11 @@ src/login/logind-dbus.c | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) -Index: systemd-218/src/login/logind-action.c +Index: systemd-210/src/login/logind-action.c =================================================================== ---- systemd-218.orig/src/login/logind-action.c -+++ systemd-218/src/login/logind-action.c -@@ -83,6 +83,11 @@ int manager_handle_action( +--- systemd-210.orig/src/login/logind-action.c ++++ systemd-210/src/login/logind-action.c +@@ -101,6 +101,11 @@ int manager_handle_action( /* If the key handling is inhibited, don't do anything */ if (inhibit_key > 0) { @@ -19,11 +19,11 @@ Index: systemd-218/src/login/logind-action.c if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); return 0; -Index: systemd-218/src/login/logind-dbus.c +Index: systemd-210/src/login/logind-dbus.c =================================================================== ---- systemd-218.orig/src/login/logind-dbus.c -+++ systemd-218/src/login/logind-dbus.c -@@ -1487,9 +1487,11 @@ static int method_do_shutdown_or_sleep( +--- systemd-210.orig/src/login/logind-dbus.c ++++ systemd-210/src/login/logind-dbus.c +@@ -1469,9 +1469,11 @@ static int method_do_shutdown_or_sleep( sd_bus_error *error) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; @@ -36,7 +36,7 @@ Index: systemd-218/src/login/logind-dbus.c assert(m); assert(message); -@@ -1533,7 +1535,17 @@ static int method_do_shutdown_or_sleep( +@@ -1515,7 +1517,17 @@ static int method_do_shutdown_or_sleep( multiple_sessions = r > 0; blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); @@ -52,24 +52,24 @@ Index: systemd-218/src/login/logind-dbus.c + + + if (multiple_sessions && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, &m->polkit_registry, error); + r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, + action_multiple_sessions, interactive, error, method, m); if (r < 0) - return r; -@@ -1541,7 +1553,7 @@ static int method_do_shutdown_or_sleep( +@@ -1524,7 +1536,7 @@ static int method_do_shutdown_or_sleep( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (blocked) { + if (blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, &m->polkit_registry, error); + r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, + action_ignore_inhibit, interactive, error, method, m); if (r < 0) - return r; -@@ -1549,7 +1561,7 @@ static int method_do_shutdown_or_sleep( +@@ -1533,7 +1545,7 @@ static int method_do_shutdown_or_sleep( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (!multiple_sessions && !blocked) { + if (!multiple_sessions && !blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, &m->polkit_registry, error); + r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, + action, interactive, error, method, m); if (r < 0) - return r; diff --git a/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch b/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch new file mode 100644 index 00000000..f8632b99 --- /dev/null +++ b/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch @@ -0,0 +1,215 @@ +Based on d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 28 May 2014 17:36:40 +0800 +Subject: [PATCH] build-sys: use glibc's xattr support instead of requiring + libattr + +--- + configure.ac | 53 ++----------------------------------------- + src/core/mount-setup.c | 2 - + src/core/socket.c | 4 --- + src/journal/journal-file.c | 7 ----- + src/journal/journal-vacuum.c | 10 -------- + src/shared/label.c | 2 - + src/shared/smack-util.c | 4 --- + 7 files changed, 7 insertions(+), 75 deletions(-) + +--- configure.ac ++++ configure.ac 2014-06-03 00:00:00.000000000 +0000 +@@ -526,44 +526,6 @@ AC_SUBST(ACL_LIBS) + AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno]) + + # ------------------------------------------------------------------------------ +-AC_ARG_ENABLE([xattr], +- AS_HELP_STRING([--disable-xattr],[Disable optional XATTR support]), +- [case "${enableval}" in +- yes) have_xattr=yes ;; +- no) have_xattr=no ;; +- *) AC_MSG_ERROR(bad value ${enableval} for --disable-xattr) ;; +- esac], +- [have_xattr=auto]) +- +-if test "x${have_xattr}" != xno ; then +- AC_CHECK_HEADERS( +- [attr/xattr.h], +- [have_xattr=yes], +- [if test "x$have_xattr" = xyes ; then +- AC_MSG_ERROR([*** XATTR headers not found.]) +- fi]) +- +- AC_CHECK_LIB( +- [attr], +- [fsetxattr], +- [have_xattr=yes], +- [if test "x$have_xattr" = xyes ; then +- AC_MSG_ERROR([*** libattr not found.]) +- fi]) +- +- if test "x$have_xattr" = xyes ; then +- XATTR_LIBS="-lattr" +- AC_DEFINE(HAVE_XATTR, 1, [XATTR available]) +- else +- have_xattr=no +- fi +-else +- XATTR_LIBS= +-fi +-AC_SUBST(XATTR_LIBS) +-AM_CONDITIONAL([HAVE_XATTR], [test "x$have_xattr" != xno]) +- +-# ------------------------------------------------------------------------------ + AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK support]), + [case "${enableval}" in + yes) have_smack=yes ;; +@@ -572,17 +534,9 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([- + esac], + [have_smack=auto]) + +-if test "x${have_xattr}" = xno; then +- if test "x${have_smack}" = xyes; then +- AC_MSG_ERROR(SMACK requires xattr support) +- else +- have_smack=no +- fi +-else +- if test "x${have_smack}" = xauto; then +- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" +- have_smack=yes +- fi ++if test "x${have_smack}" = xauto; then ++ M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" ++ have_smack=yes + fi + + AC_ARG_WITH(smack-run-label, +@@ -1131,7 +1085,6 @@ AC_MSG_RESULT([ + SMACK: ${have_smack} + XZ: ${have_xz} + ACL: ${have_acl} +- XATTR: ${have_xattr} + GCRYPT: ${have_gcrypt} + QRENCODE: ${have_qrencode} + MICROHTTPD: ${have_microhttpd} +--- src/core/mount-setup.c ++++ src/core/mount-setup.c 2014-06-03 00:00:00.000000000 +0000 +@@ -93,10 +93,8 @@ static const MountPoint mount_table[] = + NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, + NULL, MNT_IN_CONTAINER }, +-#ifdef HAVE_XATTR + { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_IN_CONTAINER }, +-#endif + { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_IN_CONTAINER }, + { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +--- src/core/socket.c ++++ src/core/socket.c 2014-06-03 00:00:00.000000000 +0000 +@@ -29,9 +29,7 @@ + #include + #include + #include +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "sd-event.h" + #include "log.h" +--- src/journal/journal-file.c ++++ src/journal/journal-file.c 2014-06-03 00:00:00.000000000 +0000 +@@ -26,10 +26,7 @@ + #include + #include + #include +- +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "journal-def.h" + #include "journal-file.h" +@@ -2515,7 +2512,6 @@ int journal_file_open( + } + + if (f->last_stat.st_size == 0 && f->writable) { +-#ifdef HAVE_XATTR + uint64_t crtime; + + /* Let's attach the creation time to the journal file, +@@ -2530,7 +2526,6 @@ int journal_file_open( + + crtime = htole64((uint64_t) now(CLOCK_REALTIME)); + fsetxattr(f->fd, "user.crtime_usec", &crtime, sizeof(crtime), XATTR_CREATE); +-#endif + + #ifdef HAVE_GCRYPT + /* Try to load the FSPRG state, and if we can't, then +--- src/journal/journal-vacuum.c ++++ src/journal/journal-vacuum.c 2014-06-03 00:00:00.000000000 +0000 +@@ -24,10 +24,7 @@ + #include + #include + #include +- +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "journal-def.h" + #include "journal-file.h" +@@ -79,11 +76,8 @@ static void patch_realtime( + unsigned long long *realtime) { + + usec_t x; +- +-#ifdef HAVE_XATTR + uint64_t crtime; + _cleanup_free_ const char *path = NULL; +-#endif + + /* The timestamp was determined by the file name, but let's + * see if the file might actually be older than the file name +@@ -106,7 +100,6 @@ static void patch_realtime( + if (x > 0 && x != (usec_t) -1 && x < *realtime) + *realtime = x; + +-#ifdef HAVE_XATTR + /* Let's read the original creation time, if possible. Ideally + * we'd just query the creation time the FS might provide, but + * unfortunately there's currently no sane API to query +@@ -125,7 +118,6 @@ static void patch_realtime( + if (crtime > 0 && crtime != (uint64_t) -1 && crtime < *realtime) + *realtime = crtime; + } +-#endif + } + + static int journal_file_empty(int dir_fd, const char *name) { +--- src/shared/label.c ++++ src/shared/label.c 2014-06-03 00:00:00.000000000 +0000 +@@ -27,9 +27,7 @@ + #include + #include + #include +-#ifdef HAVE_XATTR + #include +-#endif + #ifdef HAVE_SELINUX + #include + #include +--- src/shared/smack-util.c ++++ src/shared/smack-util.c 2014-06-03 00:00:00.000000000 +0000 +@@ -23,9 +23,7 @@ + + #include + #include +-#ifdef HAVE_XATTR +-#include +-#endif ++#include + + #include "smack-util.h" + diff --git a/0001-bus-proxyd-fix-incorrect-comparison.patch b/0001-bus-proxyd-fix-incorrect-comparison.patch new file mode 100644 index 00000000..404e4c8d --- /dev/null +++ b/0001-bus-proxyd-fix-incorrect-comparison.patch @@ -0,0 +1,21 @@ +Based on e05aa2e02ba35d8b3741dddb79af3c802308414b Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 25 Jul 2014 10:25:06 +0200 +Subject: [PATCH] bus-proxyd: fix incorrect comparison + +We should be interested in k variable. +--- + src/bus-proxyd/bus-proxyd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/bus-proxyd/bus-proxyd.c ++++ src/bus-proxyd/bus-proxyd.c 2014-07-28 09:37:29.274735818 +0000 +@@ -698,7 +698,7 @@ int main(int argc, char *argv[]) { + + k = sd_bus_send(a, m, NULL); + if (k < 0) { +- if (r == -ECONNRESET) ++ if (k == -ECONNRESET) + r = 0; + else { + r = k; diff --git a/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch b/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch new file mode 100644 index 00000000..06845364 --- /dev/null +++ b/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch @@ -0,0 +1,80 @@ +From a641dcd9bf05418d6a6c165e1c0cff615b4a0f47 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 18 Mar 2014 04:06:36 +0100 +Subject: [PATCH] cgroup: it's not OK to invoke alloca() in loops + +--- + src/core/mount-setup.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index 387030a..c6d3f4b 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -216,10 +216,10 @@ int mount_setup_early(void) { + } + + int mount_cgroup_controllers(char ***join_controllers) { +- int r; +- char buf[LINE_MAX]; + _cleanup_set_free_free_ Set *controllers = NULL; + _cleanup_fclose_ FILE *f; ++ char buf[LINE_MAX]; ++ int r; + + /* Mount all available cgroup controllers that are built into the kernel. */ + +@@ -262,6 +262,7 @@ int mount_cgroup_controllers(char ***join_controllers) { + } + + for (;;) { ++ _cleanup_free_ char *options = NULL, *controller = NULL, *where = NULL; + MountPoint p = { + .what = "cgroup", + .type = "cgroup", +@@ -269,7 +270,6 @@ int mount_cgroup_controllers(char ***join_controllers) { + .mode = MNT_IN_CONTAINER, + }; + char ***k = NULL; +- _cleanup_free_ char *options = NULL, *controller; + + controller = set_steal_first(controllers); + if (!controller) +@@ -286,7 +286,7 @@ int mount_cgroup_controllers(char ***join_controllers) { + for (i = *k, j = *k; *i; i++) { + + if (!streq(*i, controller)) { +- char _cleanup_free_ *t; ++ _cleanup_free_ char *t; + + t = set_remove(controllers, *i); + if (!t) { +@@ -308,7 +308,11 @@ int mount_cgroup_controllers(char ***join_controllers) { + controller = NULL; + } + +- p.where = strappenda("/sys/fs/cgroup/", options); ++ where = strappend("/sys/fs/cgroup/", options); ++ if (!where) ++ return log_oom(); ++ ++ p.where = where; + p.options = options; + + r = mount_one(&p, true); +@@ -319,7 +323,11 @@ int mount_cgroup_controllers(char ***join_controllers) { + char **i; + + for (i = *k; *i; i++) { +- char *t = strappenda("/sys/fs/cgroup/", *i); ++ _cleanup_free_ char *t = NULL; ++ ++ t = strappend("/sys/fs/cgroup/", *i); ++ if (!t) ++ return log_oom(); + + r = symlink(options, t); + if (r < 0 && errno != EEXIST) { +-- +1.7.9.2 + diff --git a/0001-completion-filter-templates-from-restartable-units.patch b/0001-completion-filter-templates-from-restartable-units.patch new file mode 100644 index 00000000..13e03e03 --- /dev/null +++ b/0001-completion-filter-templates-from-restartable-units.patch @@ -0,0 +1,30 @@ +Based on ec15977a3cd82eff6c94bb13db72195f7cd512e8 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Fri, 29 Aug 2014 20:35:15 -0400 +Subject: [PATCH] completion: filter templates from restartable units + +Since c6a373a2634854, we might encounter unit templates via the +'list-units' verb. These aren't restartable (and we throw errors), so +make sure they're filtered out of the completion options. + +fixes downstream bug: https://bugs.archlinux.org/task/41719 +--- + shell-completion/bash/systemctl.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in +index 64b15df..0150018 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -182,7 +182,7 @@ _systemctl () { + comps=$( __filter_units_by_property $mode CanStart yes \ + $( __get_all_units $mode \ + | while read -r line; do \ +- [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ ++ [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ + done )) + compopt -o filenames + +-- +1.7.9.2 + diff --git a/0001-conf-parser-silently-ignore-sections-starting-with-X.patch b/0001-conf-parser-silently-ignore-sections-starting-with-X.patch new file mode 100644 index 00000000..8ae66062 --- /dev/null +++ b/0001-conf-parser-silently-ignore-sections-starting-with-X.patch @@ -0,0 +1,73 @@ +From 342aea195051633c69ba7b8c02c82a0e5f8cbde4 Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Fri, 16 May 2014 16:58:31 -0700 +Subject: [PATCH] conf-parser: silently ignore sections starting with "X-" + +This allows external tools to keep additional unit information in a +separate section without scaring users with a big warning. +--- + src/shared/conf-parser.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index d27b1b7..062b15b 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c +@@ -204,6 +204,7 @@ static int parse_line(const char* unit, + bool allow_include, + char **section, + unsigned *section_line, ++ bool *section_ignored, + char *l, + void *userdata) { + +@@ -266,7 +267,7 @@ static int parse_line(const char* unit, + + if (sections && !nulstr_contains(sections, n)) { + +- if (!relaxed) ++ if (!relaxed && !startswith(n, "X-")) + log_syntax(unit, LOG_WARNING, filename, line, EINVAL, + "Unknown section '%s'. Ignoring.", n); + +@@ -274,10 +275,12 @@ static int parse_line(const char* unit, + free(*section); + *section = NULL; + *section_line = 0; ++ *section_ignored = true; + } else { + free(*section); + *section = n; + *section_line = line; ++ *section_ignored = false; + } + + return 0; +@@ -285,7 +288,7 @@ static int parse_line(const char* unit, + + if (sections && !*section) { + +- if (!relaxed) ++ if (!relaxed && !*section_ignored) + log_syntax(unit, LOG_WARNING, filename, line, EINVAL, + "Assignment outside of section. Ignoring."); + +@@ -328,6 +331,7 @@ int config_parse(const char *unit, + _cleanup_free_ char *section = NULL, *continuation = NULL; + _cleanup_fclose_ FILE *ours = NULL; + unsigned line = 0, section_line = 0; ++ bool section_ignored = false; + int r; + + assert(filename); +@@ -399,6 +403,7 @@ int config_parse(const char *unit, + allow_include, + §ion, + §ion_line, ++ §ion_ignored, + p, + userdata); + free(c); +-- +1.7.9.2 + diff --git a/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch b/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch new file mode 100644 index 00000000..b8989aef --- /dev/null +++ b/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch @@ -0,0 +1,29 @@ +From 36d239dbdaf94ba2d96bb60ac45ecfc58624b1eb Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Fri, 7 Mar 2014 11:41:18 +0100 +Subject: [PATCH] core/busname: add lookup string for + BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT + +When a busname unit enters BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT, the +serialization will not be able to look up the result as string via +busname_result_to_string(). This leads to an assertion trap during +daemon-reexec. +--- + src/core/busname.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/core/busname.c src/core/busname.c +index 4c34538..237011a 100644 +--- src/core/busname.c ++++ src/core/busname.c +@@ -548,6 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); + static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { + [BUSNAME_SUCCESS] = "success", + [BUSNAME_FAILURE_RESOURCES] = "resources", ++ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", + }; + + DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); +-- +1.7.9.2 + diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch new file mode 100644 index 00000000..90649f90 --- /dev/null +++ b/0001-core-close-socket-fds-asynchronously.patch @@ -0,0 +1,89 @@ +Based on 574634bcacb01efe15ca2742effd461a5b7afb5f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 13 May 2014 23:22:13 +0200 +Subject: [PATCH] core: close socket fds asynchronously + +http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html +--- + src/core/async.c | 24 ++++++++++++++++++++++++ + src/core/service.c | 5 +++-- + 2 files changed, 27 insertions(+), 2 deletions(-) + +Index: src/core/service.c +=================================================================== +--- src/core/service.c.orig ++++ src/core/service.c +@@ -25,6 +25,7 @@ + #include + #include + ++#include "async.h" + #include "manager.h" + #include "unit.h" + #include "service.h" +@@ -240,7 +241,7 @@ static void service_close_socket_fd(Serv + if (s->socket_fd < 0) + return; + +- close_nointr_nofail(s->socket_fd); ++ asynchronous_close(s->socket_fd); + s->socket_fd = -1; + } + +@@ -2767,7 +2768,7 @@ static int service_deserialize_item(Unit + else { + + if (s->socket_fd >= 0) +- close_nointr_nofail(s->socket_fd); ++ asynchronous_close(s->socket_fd); + s->socket_fd = fdset_remove(fds, fd); + } + } else if (streq(key, "main-exec-status-pid")) { +Index: src/core/async.c +=================================================================== +--- src/core/async.c.orig ++++ src/core/async.c +@@ -24,6 +24,7 @@ + + #include "async.h" + #include "log.h" ++#include "util.h" + + int asynchronous_job(void* (*func)(void *p), void *arg) { + pthread_attr_t a; +@@ -70,3 +71,26 @@ int asynchronous_sync(void) { + + return asynchronous_job(sync_thread, NULL); + } ++ ++static void *close_thread(void *p) { ++ int fd = PTR_TO_INT(p); ++ if (fd >= 0) ++ close_nointr_nofail(fd); ++ return NULL; ++} ++ ++int asynchronous_close(int fd) { ++ int r; ++ ++ /* This is supposed to behave similar to safe_close(), but ++ * actually invoke close() asynchronously, so that it will ++ * never block. Ideally the kernel would have an API for this, ++ * but it doesn't, so we work around it, and hide this as a ++ * far away as we can. */ ++ ++ r = asynchronous_job(close_thread, INT_TO_PTR(fd)); ++ if (r < 0 && fd >= 0) ++ close_nointr_nofail(fd); ++ ++ return -1; ++} +Index: src/core/async.h +=================================================================== +--- src/core/async.h.orig ++++ src/core/async.h +@@ -23,3 +23,4 @@ + + int asynchronous_job(void* (*func)(void *p), void *arg); + int asynchronous_sync(void); ++int asynchronous_close(int fd); diff --git a/0001-core-don-t-allow-enabling-if-unit-is-masked.patch b/0001-core-don-t-allow-enabling-if-unit-is-masked.patch new file mode 100644 index 00000000..7e193738 --- /dev/null +++ b/0001-core-don-t-allow-enabling-if-unit-is-masked.patch @@ -0,0 +1,36 @@ +From f7101b7368dfe41dbc8b7203e06133cccb589c01 Mon Sep 17 00:00:00 2001 +From: Jan Synacek +Date: Tue, 7 Oct 2014 13:35:41 +0200 +Subject: [PATCH] core: don't allow enabling if unit is masked + +--- + src/shared/install.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git src/shared/install.c src/shared/install.c +index fa064c2..945bb27 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -1516,6 +1516,19 @@ int unit_file_enable( + return r; + + STRV_FOREACH(i, files) { ++ UnitFileState state; ++ ++ state = unit_file_get_state(scope, root_dir, *i); ++ if (state < 0) { ++ log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); ++ return state; ++ } ++ ++ if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { ++ log_error("Failed to enable unit: Unit %s is masked", *i); ++ return -ENOTSUP; ++ } ++ + r = install_info_add_auto(&c, *i); + if (r < 0) + return r; +-- +1.7.9.2 + diff --git a/0001-core-fix-invalid-free-in-killall.patch b/0001-core-fix-invalid-free-in-killall.patch new file mode 100644 index 00000000..23d527e8 --- /dev/null +++ b/0001-core-fix-invalid-free-in-killall.patch @@ -0,0 +1,32 @@ +From 3e09eb5c83e56bc0184bd9d9c44f76047464f77c Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Fri, 13 Jun 2014 18:48:19 +0200 +Subject: [PATCH] core: fix invalid free() in killall() + +static int killall(....) in ./src/core/killall.c tries to get "s" +initialized by calling get_process_comm(...) which calls +read_one_line_file(...) which if it fails will mean it is left +uninitialized. +It is then used in argument to strna(s) call where it is +dereferenced(!), in addition to nothing else initializing it before +the scope it is in finishes. +--- + src/core/killall.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/killall.c src/core/killall.c +index 57ed41c..eab48f7 100644 +--- src/core/killall.c ++++ src/core/killall.c +@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) { + continue; + + if (sig == SIGKILL) { +- _cleanup_free_ char *s; ++ _cleanup_free_ char *s = NULL; + + get_process_comm(pid, &s); + log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s)); +-- +1.7.9.2 + diff --git a/0001-core-fix-resource-leak-in-manager_environment_add.patch b/0001-core-fix-resource-leak-in-manager_environment_add.patch new file mode 100644 index 00000000..7991b3be --- /dev/null +++ b/0001-core-fix-resource-leak-in-manager_environment_add.patch @@ -0,0 +1,32 @@ +From aa9f8a30fd7dc7aa3aa2575b75b3f9a0ab3f02db Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Tue, 16 Sep 2014 21:11:02 +0200 +Subject: [PATCH] core: fix resource leak in manager_environment_add + +Second error path must free the (potentially) allocated memory in the +first code chunk before returning. + +Found by coverity. Fixes: CID#1237750 +--- + src/core/manager.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git src/core/manager.c src/core/manager.c +index 0770727..e0c1cd1 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -2751,8 +2751,10 @@ int manager_environment_add(Manager *m, char **minus, char **plus) { + + if (!strv_isempty(plus)) { + b = strv_env_merge(2, l, plus); +- if (!b) ++ if (!b) { ++ strv_free(a); + return -ENOMEM; ++ } + + l = b; + } +-- +1.7.9.2 + diff --git a/0001-core-rework-device-state-logic.patch b/0001-core-rework-device-state-logic.patch deleted file mode 100644 index 0234602c..00000000 --- a/0001-core-rework-device-state-logic.patch +++ /dev/null @@ -1,917 +0,0 @@ -From 628c89cc68ab96fce2de7ebba5933725d147aecc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 27 Feb 2015 21:55:08 +0100 -Subject: [PATCH] core: rework device state logic -References: https://bugzilla.redhat.com/show_bug.cgi?id=1196452 - -This change introduces a new state "tentative" for device units. Device -units are considered "plugged" when udev announced them, "dead" when -they are not available in the kernel, and "tentative" when they are -referenced in /proc/self/mountinfo or /proc/swaps but not (yet) -announced via udev. - -This should fix a race when device nodes (like loop devices) are created -and immediately mounted. Previously, systemd might end up seeing the -mount unit before the device, and would thus pull down the mount because -its BindTo dependency on the device would not be fulfilled. -=== -[The bug can be triggered by - cp -a /dev/sda1 (pick any source) /dev/xxx; mount /dev/xxx /mnt; - since "xxx" is a device udev does not know about even if it runs - and is race-free in the moment you are trying. - -jengelh] ---- - src/core/device.c | 368 +++++++++++++++++++++++++++++++++--------------------- - src/core/device.h | 14 ++- - src/core/mount.c | 46 ++++--- - src/core/swap.c | 32 +++-- - src/core/swap.h | 4 +- - src/core/unit.c | 1 - - 6 files changed, 285 insertions(+), 180 deletions(-) - -diff --git a/src/core/device.c b/src/core/device.c -index 2d983cc..e41ed41 100644 ---- a/src/core/device.c -+++ b/src/core/device.c -@@ -34,7 +34,8 @@ - - static const UnitActiveState state_translation_table[_DEVICE_STATE_MAX] = { - [DEVICE_DEAD] = UNIT_INACTIVE, -- [DEVICE_PLUGGED] = UNIT_ACTIVE -+ [DEVICE_TENTATIVE] = UNIT_ACTIVATING, -+ [DEVICE_PLUGGED] = UNIT_ACTIVE, - }; - - static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata); -@@ -63,6 +64,41 @@ static void device_unset_sysfs(Device *d) { - d->sysfs = NULL; - } - -+static int device_set_sysfs(Device *d, const char *sysfs) { -+ Device *first; -+ char *copy; -+ int r; -+ -+ assert(d); -+ -+ if (streq_ptr(d->sysfs, sysfs)) -+ return 0; -+ -+ r = hashmap_ensure_allocated(&UNIT(d)->manager->devices_by_sysfs, &string_hash_ops); -+ if (r < 0) -+ return r; -+ -+ copy = strdup(sysfs); -+ if (!copy) -+ return -ENOMEM; -+ -+ device_unset_sysfs(d); -+ -+ first = hashmap_get(UNIT(d)->manager->devices_by_sysfs, sysfs); -+ LIST_PREPEND(same_sysfs, first, d); -+ -+ r = hashmap_replace(UNIT(d)->manager->devices_by_sysfs, copy, first); -+ if (r < 0) { -+ LIST_REMOVE(same_sysfs, first, d); -+ free(copy); -+ return r; -+ } -+ -+ d->sysfs = copy; -+ -+ return 0; -+} -+ - static void device_init(Unit *u) { - Device *d = DEVICE(u); - -@@ -110,8 +146,13 @@ static int device_coldplug(Unit *u) { - assert(d); - assert(d->state == DEVICE_DEAD); - -- if (d->sysfs) -+ if (d->found & DEVICE_FOUND_UDEV) -+ /* If udev says the device is around, it's around */ - device_set_state(d, DEVICE_PLUGGED); -+ else if (d->found != DEVICE_NOT_FOUND) -+ /* If a device is found in /proc/self/mountinfo or -+ * /proc/swaps, it's "tentatively" around. */ -+ device_set_state(d, DEVICE_TENTATIVE); - - return 0; - } -@@ -140,49 +181,9 @@ _pure_ static const char *device_sub_state_to_string(Unit *u) { - return device_state_to_string(DEVICE(u)->state); - } - --static int device_add_escaped_name(Unit *u, const char *dn) { -- _cleanup_free_ char *e = NULL; -- int r; -- -- assert(u); -- assert(dn); -- assert(dn[0] == '/'); -- -- e = unit_name_from_path(dn, ".device"); -- if (!e) -- return -ENOMEM; -- -- r = unit_add_name(u, e); -- if (r < 0 && r != -EEXIST) -- return r; -- -- return 0; --} -- --static int device_find_escape_name(Manager *m, const char *dn, Unit **_u) { -- _cleanup_free_ char *e = NULL; -- Unit *u; -- -- assert(m); -- assert(dn); -- assert(dn[0] == '/'); -- assert(_u); -- -- e = unit_name_from_path(dn, ".device"); -- if (!e) -- return -ENOMEM; -- -- u = manager_get_unit(m, e); -- if (u) { -- *_u = u; -- return 1; -- } -- -- return 0; --} -- --static int device_make_description(Unit *u, struct udev_device *dev, const char *path) { -+static int device_update_description(Unit *u, struct udev_device *dev, const char *path) { - const char *model; -+ int r; - - assert(u); - assert(dev); -@@ -207,13 +208,16 @@ static int device_make_description(Unit *u, struct udev_device *dev, const char - - j = strjoin(model, " ", label, NULL); - if (j) -- return unit_set_description(u, j); -- } -+ r = unit_set_description(u, j); -+ } else -+ r = unit_set_description(u, model); -+ } else -+ r = unit_set_description(u, path); - -- return unit_set_description(u, model); -- } -+ if (r < 0) -+ log_unit_error_errno(u->id, r, "Failed to set device description: %m"); - -- return unit_set_description(u, path); -+ return r; - } - - static int device_add_udev_wants(Unit *u, struct udev_device *dev) { -@@ -240,20 +244,20 @@ static int device_add_udev_wants(Unit *u, struct udev_device *dev) { - - n = unit_name_mangle(e, MANGLE_NOGLOB); - if (!n) -- return -ENOMEM; -+ return log_oom(); - - r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true); - if (r < 0) -- return r; -+ return log_unit_error_errno(u->id, r, "Failed to add wants dependency: %m"); - } - if (!isempty(state)) -- log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", -- property, strna(udev_device_get_syspath(dev))); -+ log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", property, strna(udev_device_get_syspath(dev))); - - return 0; - } - --static int device_update_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { -+static int device_setup_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { -+ _cleanup_free_ char *e = NULL; - const char *sysfs; - Unit *u = NULL; - bool delete; -@@ -267,12 +271,18 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - if (!sysfs) - return 0; - -- r = device_find_escape_name(m, path, &u); -- if (r < 0) -- return r; -+ e = unit_name_from_path(path, ".device"); -+ if (!e) -+ return log_oom(); -+ -+ u = manager_get_unit(m, e); - -- if (u && DEVICE(u)->sysfs && !path_equal(DEVICE(u)->sysfs, sysfs)) -+ if (u && -+ DEVICE(u)->sysfs && -+ !path_equal(DEVICE(u)->sysfs, sysfs)) { -+ log_unit_error(u->id, "Device %s appeared twice with different sysfs paths %s and %s", e, DEVICE(u)->sysfs, sysfs); - return -EEXIST; -+ } - - if (!u) { - delete = true; -@@ -281,7 +291,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - if (!u) - return log_oom(); - -- r = device_add_escaped_name(u, path); -+ r = unit_add_name(u, e); - if (r < 0) - goto fail; - -@@ -293,37 +303,16 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - * actually been seen yet ->sysfs will not be - * initialized. Hence initialize it if necessary. */ - -- if (!DEVICE(u)->sysfs) { -- Device *first; -- -- DEVICE(u)->sysfs = strdup(sysfs); -- if (!DEVICE(u)->sysfs) { -- r = -ENOMEM; -- goto fail; -- } -- -- r = hashmap_ensure_allocated(&m->devices_by_sysfs, &string_hash_ops); -- if (r < 0) -- goto fail; -- -- first = hashmap_get(m->devices_by_sysfs, sysfs); -- LIST_PREPEND(same_sysfs, first, DEVICE(u)); -- -- r = hashmap_replace(m->devices_by_sysfs, DEVICE(u)->sysfs, first); -- if (r < 0) -- goto fail; -- } -- -- device_make_description(u, dev, path); -+ r = device_set_sysfs(DEVICE(u), sysfs); -+ if (r < 0) -+ goto fail; - -- if (main) { -- /* The additional systemd udev properties we only -- * interpret for the main object */ -+ (void) device_update_description(u, dev, path); - -- r = device_add_udev_wants(u, dev); -- if (r < 0) -- goto fail; -- } -+ /* The additional systemd udev properties we only interpret -+ * for the main object */ -+ if (main) -+ (void) device_add_udev_wants(u, dev); - - /* Note that this won't dispatch the load queue, the caller - * has to do that if needed and appropriate */ -@@ -332,7 +321,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - return 0; - - fail: -- log_warning_errno(r, "Failed to load device unit: %m"); -+ log_unit_warning_errno(u->id, r, "Failed to set up device unit: %m"); - - if (delete && u) - unit_free(u); -@@ -340,7 +329,7 @@ fail: - return r; - } - --static int device_process_new_device(Manager *m, struct udev_device *dev) { -+static int device_process_new(Manager *m, struct udev_device *dev) { - const char *sysfs, *dn, *alias; - struct udev_list_entry *item = NULL, *first = NULL; - int r; -@@ -352,14 +341,14 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - return 0; - - /* Add the main unit named after the sysfs path */ -- r = device_update_unit(m, dev, sysfs, true); -+ r = device_setup_unit(m, dev, sysfs, true); - if (r < 0) - return r; - - /* Add an additional unit for the device node */ - dn = udev_device_get_devnode(dev); - if (dn) -- device_update_unit(m, dev, dn, false); -+ (void) device_setup_unit(m, dev, dn, false); - - /* Add additional units for all symlinks */ - first = udev_device_get_devlinks_list_entry(dev); -@@ -386,7 +375,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - st.st_rdev != udev_device_get_devnum(dev)) - continue; - -- device_update_unit(m, dev, p, false); -+ (void) device_setup_unit(m, dev, p, false); - } - - /* Add additional units for all explicitly configured -@@ -403,7 +392,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - e[l] = 0; - - if (path_is_absolute(e)) -- device_update_unit(m, dev, e, false); -+ (void) device_setup_unit(m, dev, e, false); - else - log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e); - } -@@ -414,39 +403,62 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - return 0; - } - --static void device_set_path_plugged(Manager *m, struct udev_device *dev) { -- const char *sysfs; -+static void device_update_found_one(Device *d, bool add, DeviceFound found, bool now) { -+ DeviceFound n; -+ -+ assert(d); -+ -+ n = add ? (d->found | found) : (d->found & ~found); -+ if (n == d->found) -+ return; -+ -+ d->found = n; -+ -+ if (now) { -+ if (d->found & DEVICE_FOUND_UDEV) -+ device_set_state(d, DEVICE_PLUGGED); -+ else if (d->found != DEVICE_NOT_FOUND) -+ device_set_state(d, DEVICE_TENTATIVE); -+ else -+ device_set_state(d, DEVICE_DEAD); -+ } -+} -+ -+static int device_update_found_by_sysfs(Manager *m, const char *sysfs, bool add, DeviceFound found, bool now) { - Device *d, *l; - - assert(m); -- assert(dev); -+ assert(sysfs); - -- sysfs = udev_device_get_syspath(dev); -- if (!sysfs) -- return; -+ if (found == DEVICE_NOT_FOUND) -+ return 0; - - l = hashmap_get(m->devices_by_sysfs, sysfs); - LIST_FOREACH(same_sysfs, d, l) -- device_set_state(d, DEVICE_PLUGGED); -+ device_update_found_one(d, add, found, now); -+ -+ return 0; - } - --static int device_process_removed_device(Manager *m, struct udev_device *dev) { -- const char *sysfs; -- Device *d; -+static int device_update_found_by_name(Manager *m, const char *path, bool add, DeviceFound found, bool now) { -+ _cleanup_free_ char *e = NULL; -+ Unit *u; - - assert(m); -- assert(dev); -+ assert(path); - -- sysfs = udev_device_get_syspath(dev); -- if (!sysfs) -- return -ENOMEM; -+ if (found == DEVICE_NOT_FOUND) -+ return 0; - -- /* Remove all units of this sysfs path */ -- while ((d = hashmap_get(m->devices_by_sysfs, sysfs))) { -- device_unset_sysfs(d); -- device_set_state(d, DEVICE_DEAD); -- } -+ e = unit_name_from_path(path, ".device"); -+ if (!e) -+ return log_oom(); - -+ u = manager_get_unit(m, e); -+ if (!u) -+ return 0; -+ -+ device_update_found_one(DEVICE(u), add, found, now); - return 0; - } - -@@ -462,22 +474,6 @@ static bool device_is_ready(struct udev_device *dev) { - return parse_boolean(ready) != 0; - } - --static int device_process_new_path(Manager *m, const char *path) { -- _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -- -- assert(m); -- assert(path); -- -- dev = udev_device_new_from_syspath(m->udev, path); -- if (!dev) -- return log_oom(); -- -- if (!device_is_ready(dev)) -- return 0; -- -- return device_process_new_device(m, dev); --} -- - static Unit *device_following(Unit *u) { - Device *d = DEVICE(u); - Device *other, *first = NULL; -@@ -604,12 +600,31 @@ static int device_enumerate(Manager *m) { - goto fail; - - first = udev_enumerate_get_list_entry(e); -- udev_list_entry_foreach(item, first) -- device_process_new_path(m, udev_list_entry_get_name(item)); -+ udev_list_entry_foreach(item, first) { -+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -+ const char *sysfs; -+ -+ sysfs = udev_list_entry_get_name(item); -+ -+ dev = udev_device_new_from_syspath(m->udev, sysfs); -+ if (!dev) { -+ log_oom(); -+ continue; -+ } -+ -+ if (!device_is_ready(dev)) -+ continue; -+ -+ (void) device_process_new(m, dev); -+ -+ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, false); -+ } - - return 0; - - fail: -+ log_error_errno(r, "Failed to enumerate devices: %m"); -+ - device_shutdown(m); - return r; - } -@@ -617,7 +632,7 @@ fail: - static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata) { - _cleanup_udev_device_unref_ struct udev_device *dev = NULL; - Manager *m = userdata; -- const char *action; -+ const char *action, *sysfs; - int r; - - assert(m); -@@ -639,33 +654,47 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - if (!dev) - return 0; - -+ sysfs = udev_device_get_syspath(dev); -+ if (!sysfs) { -+ log_error("Failed to get udev sys path."); -+ return 0; -+ } -+ - action = udev_device_get_action(dev); - if (!action) { - log_error("Failed to get udev action string."); - return 0; - } - -- if (streq(action, "remove") || !device_is_ready(dev)) { -- r = device_process_removed_device(m, dev); -- if (r < 0) -- log_error_errno(r, "Failed to process device remove event: %m"); -- -- r = swap_process_removed_device(m, dev); -+ if (streq(action, "remove")) { -+ r = swap_process_device_remove(m, dev); - if (r < 0) - log_error_errno(r, "Failed to process swap device remove event: %m"); - -- } else { -- r = device_process_new_device(m, dev); -- if (r < 0) -- log_error_errno(r, "Failed to process device new event: %m"); -+ /* If we get notified that a device was removed by -+ * udev, then it's completely gone, hence unset all -+ * found bits */ -+ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV|DEVICE_FOUND_MOUNT|DEVICE_FOUND_SWAP, true); - -- r = swap_process_new_device(m, dev); -+ } else if (device_is_ready(dev)) { -+ -+ (void) device_process_new(m, dev); -+ -+ r = swap_process_device_new(m, dev); - if (r < 0) - log_error_errno(r, "Failed to process swap device new event: %m"); - - manager_dispatch_load_queue(m); - -- device_set_path_plugged(m, dev); -+ /* The device is found now, set the udev found bit */ -+ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, true); -+ -+ } else { -+ /* The device is nominally around, but not ready for -+ * us. Hence unset the udev bit, but leave the rest -+ * around. */ -+ -+ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV, true); - } - - return 0; -@@ -684,9 +713,58 @@ static bool device_supported(Manager *m) { - return read_only <= 0; - } - -+int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now) { -+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -+ struct stat st; -+ -+ assert(m); -+ assert(node); -+ -+ /* This is called whenever we find a device referenced in -+ * /proc/swaps or /proc/self/mounts. Such a device might be -+ * mounted/enabled at a time where udev has not finished -+ * probing it yet, and we thus haven't learned about it -+ * yet. In this case we will set the device unit to -+ * "tentative" state. */ -+ -+ if (add) { -+ if (!path_startswith(node, "/dev")) -+ return 0; -+ -+ if (stat(node, &st) < 0) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return log_error_errno(errno, "Failed to stat device node file %s: %m", node); -+ } -+ -+ if (!S_ISBLK(st.st_mode) && !S_ISCHR(st.st_mode)) -+ return 0; -+ -+ dev = udev_device_new_from_devnum(m->udev, S_ISBLK(st.st_mode) ? 'b' : 'c', st.st_rdev); -+ if (!dev) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return log_oom(); -+ } -+ -+ /* If the device is known in the kernel and newly -+ * appeared, then we'll create a device unit for it, -+ * under the name referenced in /proc/swaps or -+ * /proc/self/mountinfo. */ -+ -+ (void) device_setup_unit(m, dev, node, false); -+ } -+ -+ /* Update the device unit's state, should it exist */ -+ return device_update_found_by_name(m, node, add, found, now); -+} -+ - static const char* const device_state_table[_DEVICE_STATE_MAX] = { - [DEVICE_DEAD] = "dead", -- [DEVICE_PLUGGED] = "plugged" -+ [DEVICE_TENTATIVE] = "tentative", -+ [DEVICE_PLUGGED] = "plugged", - }; - - DEFINE_STRING_TABLE_LOOKUP(device_state, DeviceState); -diff --git a/src/core/device.h b/src/core/device.h -index 9065085..9f46e08 100644 ---- a/src/core/device.h -+++ b/src/core/device.h -@@ -28,20 +28,28 @@ typedef struct Device Device; - * simplifies the state engine greatly */ - typedef enum DeviceState { - DEVICE_DEAD, -- DEVICE_PLUGGED, -+ DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ -+ DEVICE_PLUGGED, /* announced by udev */ - _DEVICE_STATE_MAX, - _DEVICE_STATE_INVALID = -1 - } DeviceState; - -+typedef enum DeviceFound { -+ DEVICE_NOT_FOUND = 0, -+ DEVICE_FOUND_UDEV = 1, -+ DEVICE_FOUND_MOUNT = 2, -+ DEVICE_FOUND_SWAP = 4, -+} DeviceFound; -+ - struct Device { - Unit meta; - - char *sysfs; -+ DeviceFound found; - - /* In order to be able to distinguish dependencies on - different device nodes we might end up creating multiple - devices for the same sysfs path. We chain them up here. */ -- - LIST_FIELDS(struct Device, same_sysfs); - - DeviceState state; -@@ -51,3 +59,5 @@ extern const UnitVTable device_vtable; - - const char* device_state_to_string(DeviceState i) _const_; - DeviceState device_state_from_string(const char *s) _pure_; -+ -+int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now); -diff --git a/src/core/mount.c b/src/core/mount.c -index 40037e7..8e4a376 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1386,7 +1386,7 @@ static int mount_dispatch_timer(sd_event_source *source, usec_t usec, void *user - return 0; - } - --static int mount_add_one( -+static int mount_setup_unit( - Manager *m, - const char *what, - const char *where, -@@ -1429,7 +1429,7 @@ static int mount_add_one( - - u = unit_new(m, sizeof(Mount)); - if (!u) -- return -ENOMEM; -+ return log_oom(); - - r = unit_add_name(u, e); - if (r < 0) -@@ -1542,6 +1542,8 @@ static int mount_add_one( - return 0; - - fail: -+ log_warning_errno(r, "Failed to set up mount unit: %m"); -+ - if (delete && u) - unit_free(u); - -@@ -1549,33 +1551,36 @@ fail: - } - - static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { -- _cleanup_(mnt_free_tablep) struct libmnt_table *tb = NULL; -- _cleanup_(mnt_free_iterp) struct libmnt_iter *itr = NULL; -- struct libmnt_fs *fs; -+ _cleanup_(mnt_free_tablep) struct libmnt_table *t = NULL; -+ _cleanup_(mnt_free_iterp) struct libmnt_iter *i = NULL; - int r = 0; - - assert(m); - -- tb = mnt_new_table(); -- itr = mnt_new_iter(MNT_ITER_FORWARD); -- if (!tb || !itr) -+ t = mnt_new_table(); -+ if (!t) - return log_oom(); - -- r = mnt_table_parse_mtab(tb, NULL); -+ i = mnt_new_iter(MNT_ITER_FORWARD); -+ if (!i) -+ return log_oom(); -+ -+ r = mnt_table_parse_mtab(t, NULL); - if (r < 0) -- return r; -+ return log_error_errno(r, "Failed to parse /proc/self/mountinfo: %m"); - - r = 0; - for (;;) { - const char *device, *path, *options, *fstype; - _cleanup_free_ const char *d = NULL, *p = NULL; -+ struct libmnt_fs *fs; - int k; - -- k = mnt_table_next_fs(tb, itr, &fs); -+ k = mnt_table_next_fs(t, i, &fs); - if (k == 1) - break; -- else if (k < 0) -- return log_error_errno(k, "Failed to get next entry from /etc/fstab: %m"); -+ if (k < 0) -+ return log_error_errno(k, "Failed to get next entry from /proc/self/mountinfo: %m"); - - device = mnt_fs_get_source(fs); - path = mnt_fs_get_target(fs); -@@ -1583,11 +1588,16 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { - fstype = mnt_fs_get_fstype(fs); - - d = cunescape(device); -+ if (!d) -+ return log_oom(); -+ - p = cunescape(path); -- if (!d || !p) -+ if (!p) - return log_oom(); - -- k = mount_add_one(m, d, p, options, fstype, set_flags); -+ (void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags); -+ -+ k = mount_setup_unit(m, d, p, options, fstype, set_flags); - if (r == 0 && k < 0) - r = k; - } -@@ -1731,8 +1741,6 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - r = mount_load_proc_self_mountinfo(m, true); - if (r < 0) { -- log_error_errno(r, "Failed to reread /proc/self/mountinfo: %m"); -- - /* Reset flags, just in case, for later calls */ - LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_MOUNT]) { - Mount *mount = MOUNT(u); -@@ -1765,6 +1773,10 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - break; - } - -+ if (mount->parameters_proc_self_mountinfo.what) -+ (void) device_found_node(m, mount->parameters_proc_self_mountinfo.what, false, DEVICE_FOUND_MOUNT, true); -+ -+ - } else if (mount->just_mounted || mount->just_changed) { - - /* New or changed mount entry */ -diff --git a/src/core/swap.c b/src/core/swap.c -index f73a8e6..de3a5d8 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -331,7 +331,7 @@ static int swap_load(Unit *u) { - return swap_verify(s); - } - --static int swap_add_one( -+static int swap_setup_unit( - Manager *m, - const char *what, - const char *what_proc_swaps, -@@ -356,8 +356,10 @@ static int swap_add_one( - - if (u && - SWAP(u)->from_proc_swaps && -- !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) -+ !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) { -+ log_error("Swap %s appeared twice with different device paths %s and %s", e, SWAP(u)->parameters_proc_swaps.what, what_proc_swaps); - return -EEXIST; -+ } - - if (!u) { - delete = true; -@@ -372,7 +374,7 @@ static int swap_add_one( - - SWAP(u)->what = strdup(what); - if (!SWAP(u)->what) { -- r = log_oom(); -+ r = -ENOMEM; - goto fail; - } - -@@ -400,7 +402,6 @@ static int swap_add_one( - p->priority = priority; - - unit_add_to_dbus_queue(u); -- - return 0; - - fail: -@@ -412,7 +413,7 @@ fail: - return r; - } - --static int swap_process_new_swap(Manager *m, const char *device, int prio, bool set_flags) { -+static int swap_process_new(Manager *m, const char *device, int prio, bool set_flags) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; - struct udev_list_entry *item = NULL, *first = NULL; - const char *dn; -@@ -421,7 +422,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - - assert(m); - -- r = swap_add_one(m, device, device, prio, set_flags); -+ r = swap_setup_unit(m, device, device, prio, set_flags); - if (r < 0) - return r; - -@@ -437,7 +438,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - /* Add the main device node */ - dn = udev_device_get_devnode(d); - if (dn && !streq(dn, device)) -- swap_add_one(m, dn, device, prio, set_flags); -+ swap_setup_unit(m, dn, device, prio, set_flags); - - /* Add additional units for all symlinks */ - first = udev_device_get_devlinks_list_entry(d); -@@ -458,7 +459,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - st.st_rdev != udev_device_get_devnum(d)) - continue; - -- swap_add_one(m, p, device, prio, set_flags); -+ swap_setup_unit(m, p, device, prio, set_flags); - } - - return r; -@@ -1084,15 +1085,17 @@ static int swap_load_proc_swaps(Manager *m, bool set_flags) { - if (k == EOF) - break; - -- log_warning("Failed to parse /proc/swaps:%u", i); -+ log_warning("Failed to parse /proc/swaps:%u.", i); - continue; - } - - d = cunescape(dev); - if (!d) -- return -ENOMEM; -+ return log_oom(); -+ -+ device_found_node(m, d, true, DEVICE_FOUND_SWAP, set_flags); - -- k = swap_process_new_swap(m, d, prio, set_flags); -+ k = swap_process_new(m, d, prio, set_flags); - if (k < 0) - r = k; - } -@@ -1144,6 +1147,9 @@ static int swap_dispatch_io(sd_event_source *source, int fd, uint32_t revents, v - break; - } - -+ if (swap->what) -+ device_found_node(m, swap->what, false, DEVICE_FOUND_SWAP, true); -+ - } else if (swap->just_activated) { - - /* New swap entry */ -@@ -1291,7 +1297,7 @@ fail: - return r; - } - --int swap_process_new_device(Manager *m, struct udev_device *dev) { -+int swap_process_device_new(Manager *m, struct udev_device *dev) { - struct udev_list_entry *item = NULL, *first = NULL; - _cleanup_free_ char *e = NULL; - const char *dn; -@@ -1334,7 +1340,7 @@ int swap_process_new_device(Manager *m, struct udev_device *dev) { - return r; - } - --int swap_process_removed_device(Manager *m, struct udev_device *dev) { -+int swap_process_device_remove(Manager *m, struct udev_device *dev) { - const char *dn; - int r = 0; - Swap *s; -diff --git a/src/core/swap.h b/src/core/swap.h -index c36c6f2..5de8c20 100644 ---- a/src/core/swap.h -+++ b/src/core/swap.h -@@ -115,8 +115,8 @@ struct Swap { - - extern const UnitVTable swap_vtable; - --int swap_process_new_device(Manager *m, struct udev_device *dev); --int swap_process_removed_device(Manager *m, struct udev_device *dev); -+int swap_process_device_new(Manager *m, struct udev_device *dev); -+int swap_process_device_remove(Manager *m, struct udev_device *dev); - - const char* swap_state_to_string(SwapState i) _const_; - SwapState swap_state_from_string(const char *s) _pure_; -diff --git a/src/core/unit.c b/src/core/unit.c -index 63ccd67..7cd7043 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2834,7 +2834,6 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - return -ENOMEM; - - r = manager_load_unit(u->manager, e, NULL, NULL, &device); -- - if (r < 0) - return r; - --- -2.1.4 - diff --git a/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch b/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch new file mode 100644 index 00000000..18e76f4f --- /dev/null +++ b/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch @@ -0,0 +1,76 @@ +From 3018d31238caabc2e204aa161e647dc1c1b5d1c6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 2 Oct 2014 00:11:36 -0400 +Subject: [PATCH] core/swap: only make configured units part of swap.target + +We used to make all .swap units either RequiredBy=swap.target or +WantedBy=swap.target. But swap.target should be the "configured swap +units", either through /etc/fstab or non-generated .swap units. It +is surprising when systemd starts treating a swap device that was +possibly temporarily enabled as a hard dependency for other units. +So do not add dependencies with swap.target for units gleaned from +/proc/swaps. + +Similarly, we added dependencies for all aliases of the device name, +which clutters up the dependency graph but does not seem to bring any +value, since the status of those following units is consistent with +the main one anyway. + +This should be a fix for [1], and it seems the right thing to do +anyway. + +[1] https://bugzilla.redhat.com/show_bug.cgi?id=1114786 +--- + src/core/swap.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git src/core/swap.c src/core/swap.c +index ef90d0e..b2ca048 100644 +--- src/core/swap.c ++++ src/core/swap.c +@@ -213,7 +213,7 @@ static int swap_add_device_links(Swap *s) { + } + + static int swap_add_default_dependencies(Swap *s) { +- bool nofail = false, noauto = false; ++ bool nofail, noauto; + int r; + + assert(s); +@@ -228,23 +228,25 @@ static int swap_add_default_dependencies(Swap *s) { + if (r < 0) + return r; + +- if (s->from_fragment) { +- SwapParameters *p = &s->parameters_fragment; ++ if (!s->from_fragment) ++ /* The swap unit can either be for an alternative device name, in which ++ * case we don't need to add the dependency on swap.target because this unit ++ * is following a different unit which will have this dependency added, ++ * or it can be derived from /proc/swaps, in which case it was started ++ * manually, and should not become a dependency of swap.target. */ ++ return 0; + +- nofail = p->nofail; +- noauto = p->noauto; +- } ++ nofail = s->parameters_fragment.nofail; ++ noauto = s->parameters_fragment.noauto; + + if (!noauto) { + if (nofail) + r = unit_add_dependency_by_name_inverse(UNIT(s), UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); + else + r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); +- if (r < 0) +- return r; + } + +- return 0; ++ return r < 0 ? r : 0; + } + + static int swap_verify(Swap *s) { +-- +1.7.9.2 + diff --git a/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch b/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch new file mode 100644 index 00000000..06371697 --- /dev/null +++ b/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch @@ -0,0 +1,51 @@ +From 0404c609f399b2092a3de52eef9d75b0dc12e94c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 12 May 2014 21:26:54 +0200 +Subject: [PATCH] core: sysvcompat - $network should be equivalent to + network-online, rather than network target +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Most likely the facility needed is actual connectivity, rather than whether or not the +network managment daemon is running. + +We also need to explicitly pull in the network-online.target, as it is not active by +default. + +This means {systemd-networkd,NetworkManager}-wait-online.service, can be enabled by default +as part of network-online.target, and only delay boot when some service actively pulls it in. + +See: + +Cc: Pavel Šimerda +Cc: Michal Sekletar +--- + TODO | 4 ---- + src/core/service.c | 8 ++++++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +Modified by Andrey Borzenkov for openSUSE. +Index: systemd-210/src/core/service.c +=================================================================== +--- systemd-210.orig/src/core/service.c ++++ systemd-210/src/core/service.c +@@ -404,7 +404,7 @@ static int sysv_translate_facility(const + static const char * const table[] = { + /* LSB defined facilities */ + "local_fs", NULL, +- "network", SPECIAL_NETWORK_TARGET, ++ "network", SPECIAL_NETWORK_ONLINE_TARGET, + "named", SPECIAL_NSS_LOOKUP_TARGET, + "portmap", SPECIAL_RPCBIND_TARGET, + "remote_fs", SPECIAL_REMOTE_FS_TARGET, +@@ -881,6 +881,9 @@ static int service_load_sysv_path(Servic + if (r == 0) + continue; + ++ if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && d == UNIT_AFTER && e == _UNIT_DEPENDENCY_INVALID) ++ e = UNIT_WANTS; ++ + if (e != _UNIT_DEPENDENCY_INVALID) + r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); + else diff --git a/0001-core-use-correct-format-string-for-UIDs.patch b/0001-core-use-correct-format-string-for-UIDs.patch new file mode 100644 index 00000000..f0906df0 --- /dev/null +++ b/0001-core-use-correct-format-string-for-UIDs.patch @@ -0,0 +1,20 @@ +Based on d6239dc4b0cf55a953d6c40890859b85d504ef19 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= +Date: Wed, 25 Jun 2014 14:54:48 +0200 +Subject: [PATCH] core: use correct format string for UIDs + +--- + src/core/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/main.c ++++ src/core/main.c 2014-06-26 09:29:28.182235325 +0000 +@@ -1526,7 +1526,7 @@ int main(int argc, char *argv[]) { + + } else { + _cleanup_free_ char *t = uid_to_name(getuid()); +- log_debug(PACKAGE_STRING " running in user mode for user "PID_FMT"/%s. (" SYSTEMD_FEATURES ")", ++ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", + getuid(), t); + } + diff --git a/0001-detect-virt-Fix-Xen-domU-discovery.patch b/0001-detect-virt-Fix-Xen-domU-discovery.patch new file mode 100644 index 00000000..8582f560 --- /dev/null +++ b/0001-detect-virt-Fix-Xen-domU-discovery.patch @@ -0,0 +1,33 @@ +From a71516dfd1858f37712ef52a288bf5fb274383e0 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Thu, 17 Jul 2014 11:25:37 +0200 +Subject: [PATCH] detect-virt: Fix Xen domU discovery + +The conditional for detection xen virtualization contained a little mistake. +It is checking for i to be empty: 'if (!i) {', but it must check for cap instead, +because: 'cap = strsep(&i, ",")' will set cap to the discovered value and i to +the next value after the separator. +Hence, i would be empty, if there is only control_d in domcap, leading to a wrong +domU detection. + +https://bugs.freedesktop.org/show_bug.cgi?id=77271 +--- + src/shared/virt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/virt.c src/shared/virt.c +index 774915f..20a8d7c 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -173,7 +173,7 @@ int detect_vm(const char **id) { + if (streq(cap, "control_d")) + break; + +- if (!i) { ++ if (!cap) { + _id = "xen"; + r = 1; + } +-- +1.7.9.2 + diff --git a/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch b/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch new file mode 100644 index 00000000..d087eeb6 --- /dev/null +++ b/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch @@ -0,0 +1,30 @@ +Based on 0d522a7a0547982eae9ab1b5971e4bed9c2fbc7c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 24 Apr 2014 08:11:39 +0200 +Subject: [PATCH] errno: make sure to handle the 3 errnos that are aliases for + others properly + +--- + Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- Makefile.am ++++ Makefile.am 2014-05-12 00:00:00.000000000 +0000 +@@ -1078,7 +1078,7 @@ BUILT_SOURCES += \ + + src/shared/errno-list.txt: + $(AM_V_at)$(MKDIR_P) $(dir $@) +- $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+[0-9]/ { print $$2; }' > $@ ++ $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' > $@ + + src/shared/errno-from-name.gperf: src/shared/errno-list.txt + $(AM_V_at)$(MKDIR_P) $(dir $@) +@@ -1090,7 +1090,7 @@ src/shared/errno-from-name.h: src/shared + + src/shared/errno-to-name.h: src/shared/errno-list.txt + $(AM_V_at)$(MKDIR_P) $(dir $@) +- $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ ++ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ + + # ------------------------------------------------------------------------------ + systemd_SOURCES = \ diff --git a/0001-event-pull-in-sd-event.h-from-event-util.h.patch b/0001-event-pull-in-sd-event.h-from-event-util.h.patch new file mode 100644 index 00000000..e9fc98ce --- /dev/null +++ b/0001-event-pull-in-sd-event.h-from-event-util.h.patch @@ -0,0 +1,24 @@ +From 138992534878483de28417dfc61c546bba5cb8ad Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 10 Jul 2014 18:25:08 +0200 +Subject: [PATCH] event: pull in sd-event.h from event-util.h + +--- + src/libsystemd/sd-event/event-util.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/libsystemd/sd-event/event-util.h src/libsystemd/sd-event/event-util.h +index e58020d..e7cad9b 100644 +--- src/libsystemd/sd-event/event-util.h ++++ src/libsystemd/sd-event/event-util.h +@@ -22,6 +22,7 @@ + ***/ + + #include "util.h" ++#include "sd-event.h" + + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event*, sd_event_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event_source*, sd_event_source_unref); +-- +1.7.9.2 + diff --git a/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch b/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch new file mode 100644 index 00000000..be9add48 --- /dev/null +++ b/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch @@ -0,0 +1,20 @@ +From 9c4495ca561624c2f0085507dd1288ed5f1247c5 Mon Sep 17 00:00:00 2001 +From: Tomasz Torcz +Date: Wed, 12 Mar 2014 19:25:11 +0100 +Subject: [PATCH] gpt-auto-generator: don't return OOM on parentless devices + +--- + src/gpt-auto-generator/gpt-auto-generator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/gpt-auto-generator/gpt-auto-generator.c ++++ src/gpt-auto-generator/gpt-auto-generator.c 2014-03-18 13:35:11.438235125 +0000 +@@ -254,7 +254,7 @@ static int enumerate_partitions(struct u + + parent = udev_device_get_parent(d); + if (!parent) +- return log_oom(); ++ return 0; + + r = udev_enumerate_add_match_parent(e, parent); + if (r < 0) diff --git a/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..15de6363 --- /dev/null +++ b/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,29 @@ +From e525326bd07ebf3cabcfd730bc479166723f2d44 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Sun, 2 Mar 2014 10:02:10 -0800 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index db3bc24..0335a71 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -902,3 +902,12 @@ bluetooth:v0129* + + bluetooth:v012A* + ID_VENDOR_FROM_DATABASE=Changzhou Yongse Infotech Co., Ltd ++ ++bluetooth:v012B* ++ ID_VENDOR_FROM_DATABASE=SportIQ ++ ++bluetooth:v012C* ++ ID_VENDOR_FROM_DATABASE=TEMEC Instruments B.V. ++ ++bluetooth:v012D* ++ ID_VENDOR_FROM_DATABASE=Sony Corporation +-- +1.7.9.2 + diff --git a/0001-hwdb-fix-case-sensitive-match.patch b/0001-hwdb-fix-case-sensitive-match.patch new file mode 100644 index 00000000..64642714 --- /dev/null +++ b/0001-hwdb-fix-case-sensitive-match.patch @@ -0,0 +1,25 @@ +From 4c02dd7153f970244950b5e00f7bdfea8d2ff0be Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 17:55:14 +0200 +Subject: [PATCH] hwdb: fix case-sensitive match + +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index d053766..c7ff4e4 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -870,7 +870,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* + ########################################################### + + # Plantronics .Audio 626 DSP +-keyboard:usb:v047fpC006* ++keyboard:usb:v047FpC006* + KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute + + ########################################################### +-- +1.7.9.2 + diff --git a/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch b/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch new file mode 100644 index 00000000..d3acf899 --- /dev/null +++ b/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch @@ -0,0 +1,40 @@ +From 77e8ff6974ffaa6c9954e3d2264d9aa75ef25233 Mon Sep 17 00:00:00 2001 +From: Kieran Clancy +Date: Thu, 27 Feb 2014 16:02:57 +1030 +Subject: [PATCH] hwdb: keymaps for Samsung 900X3E/900X3F + +Keymaps for Samsung 900X3E and 900X3F should be the same as for other +models in the series. + +I have also moved the comment for '# Series 9' to the right place +--- + hwdb/60-keyboard.hwdb | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index edfa842..bd8fd10 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -897,9 +897,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* + KEYBOARD_KEY_a8=! # Fn Lock - Function lock on + KEYBOARD_KEY_a9=! # Fn Lock - Function lock off + ++# Series 7 / 9 + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* +-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDG]*:pvr* ++keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* + KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings + KEYBOARD_KEY_a0=!mute # Fn+F6 mute +@@ -909,7 +910,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* + KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up + KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer + +-# Series 9 + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr* + KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up + KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down +-- +1.7.9.2 + diff --git a/0001-hwdb-update.patch b/0001-hwdb-update.patch new file mode 100644 index 00000000..f487f680 --- /dev/null +++ b/0001-hwdb-update.patch @@ -0,0 +1,6590 @@ +From 6080625dc833144aca0817d1b9fd23f2fbcdf5c2 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 18 Mar 2014 16:17:51 +0100 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 779 +++++++++++++++++-- + hwdb/20-pci-vendor-model.hwdb | 1671 ++++++++++++++++++++++++++++++++++++----- + hwdb/20-usb-vendor-model.hwdb | 119 ++- + 3 files changed, 2330 insertions(+), 239 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index a51a00a..209b89e 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -13558,6 +13558,9 @@ OUI:40D8551CA* + OUI:40D8551CB* + ID_OUI_FROM_DATABASE=MG S.r.l. + ++OUI:40D8551CC* ++ ID_OUI_FROM_DATABASE=NKT Photonics A/S ++ + OUI:40D8551CD* + ID_OUI_FROM_DATABASE=YXLON International A/S + +@@ -13630,6 +13633,9 @@ OUI:40D8551E3* + OUI:40D8551E4* + ID_OUI_FROM_DATABASE=STEK Ltd + ++OUI:40D85550D* ++ ID_OUI_FROM_DATABASE=Shenzhen MaiWei Cable TV Equipment CO.,LTD. ++ + OUI:40D855EE6* + ID_OUI_FROM_DATABASE=Narinet, Inc. + +@@ -13703,7 +13709,7 @@ OUI:000016* + ID_OUI_FROM_DATABASE=DU PONT PIXEL SYSTEMS . + + OUI:000017* +- ID_OUI_FROM_DATABASE=TEKELEC ++ ID_OUI_FROM_DATABASE=Oracle + + OUI:000018* + ID_OUI_FROM_DATABASE=WEBSTER COMPUTER CORPORATION +@@ -18029,7 +18035,7 @@ OUI:0005BB* + ID_OUI_FROM_DATABASE=Myspace AB + + OUI:0005BC* +- ID_OUI_FROM_DATABASE=Resorsys Ltd. ++ ID_OUI_FROM_DATABASE=Resource Data Management Ltd + + OUI:0005BD* + ID_OUI_FROM_DATABASE=ROAX BV +@@ -18977,7 +18983,7 @@ OUI:0006F7* + ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. + + OUI:0006F8* +- ID_OUI_FROM_DATABASE=CPU Technology, Inc. ++ ID_OUI_FROM_DATABASE=The Boeing Company + + OUI:0006F9* + ID_OUI_FROM_DATABASE=Mitsui Zosen Systems Research Inc. +@@ -19337,7 +19343,7 @@ OUI:00076F* + ID_OUI_FROM_DATABASE=Synoptics Limited + + OUI:000770* +- ID_OUI_FROM_DATABASE=Locusnetworks Corporation ++ ID_OUI_FROM_DATABASE=Ubiquoss Inc + + OUI:000771* + ID_OUI_FROM_DATABASE=Embedded System Corporation +@@ -19616,7 +19622,7 @@ OUI:0007CC* + ID_OUI_FROM_DATABASE=Kaba Benzing GmbH + + OUI:0007CD* +- ID_OUI_FROM_DATABASE=NMTEL Co., Ltd. ++ ID_OUI_FROM_DATABASE=Kumoh Electronic Co, Ltd + + OUI:0007CE* + ID_OUI_FROM_DATABASE=Cabletime Limited +@@ -21584,7 +21590,7 @@ OUI:000A78* + ID_OUI_FROM_DATABASE=OLITEC + + OUI:000A79* +- ID_OUI_FROM_DATABASE=Allied Telesis K.K. corega division ++ ID_OUI_FROM_DATABASE=corega K.K + + OUI:000A7A* + ID_OUI_FROM_DATABASE=Kyoritsu Electric Co., Ltd. +@@ -22643,7 +22649,7 @@ OUI:000BDA* + ID_OUI_FROM_DATABASE=EyeCross Co.,Inc. + + OUI:000BDB* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:000BDC* + ID_OUI_FROM_DATABASE=AKCP +@@ -23774,7 +23780,7 @@ OUI:000D55* + ID_OUI_FROM_DATABASE=SANYCOM Technology Co.,Ltd + + OUI:000D56* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:000D57* + ID_OUI_FROM_DATABASE=Fujitsu I-Network Systems Limited. +@@ -25118,7 +25124,7 @@ OUI:000F1E* + ID_OUI_FROM_DATABASE=Chengdu KT Electric Co.of High & New Technology + + OUI:000F1F* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:000F20* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company +@@ -26435,7 +26441,7 @@ OUI:0010D5* + ID_OUI_FROM_DATABASE=IMASDE CANARIAS, S.A. + + OUI:0010D6* +- ID_OUI_FROM_DATABASE=ITT - A/CD ++ ID_OUI_FROM_DATABASE=Exelis + + OUI:0010D7* + ID_OUI_FROM_DATABASE=ARGOSY RESEARCH INC. +@@ -26762,7 +26768,7 @@ OUI:001142* + ID_OUI_FROM_DATABASE=e-SMARTCOM INC. + + OUI:001143* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001144* + ID_OUI_FROM_DATABASE=Assurance Technology Corp +@@ -27518,7 +27524,7 @@ OUI:00123E* + ID_OUI_FROM_DATABASE=ERUNE technology Co., Ltd. + + OUI:00123F* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001240* + ID_OUI_FROM_DATABASE=AMOI ELECTRONICS CO.,LTD +@@ -28439,7 +28445,7 @@ OUI:001371* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + + OUI:001372* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001373* + ID_OUI_FROM_DATABASE=BLwave Electronics Co., Ltd +@@ -28967,7 +28973,7 @@ OUI:001421* + ID_OUI_FROM_DATABASE=Total Wireless Technologies Pte. Ltd. + + OUI:001422* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001423* + ID_OUI_FROM_DATABASE=J-S Co. NEUROCOM +@@ -30104,7 +30110,7 @@ OUI:00159C* + ID_OUI_FROM_DATABASE=B-KYUNG SYSTEM Co.,Ltd. + + OUI:00159D* +- ID_OUI_FROM_DATABASE=Minicom Advanced Systems ltd ++ ID_OUI_FROM_DATABASE=Tripp Lite + + OUI:00159E* + ID_OUI_FROM_DATABASE=Mad Catz Interactive Inc +@@ -30224,7 +30230,7 @@ OUI:0015C4* + ID_OUI_FROM_DATABASE=FLOVEL CO., LTD. + + OUI:0015C5* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:0015C6* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +@@ -30914,7 +30920,7 @@ OUI:0016AA* + ID_OUI_FROM_DATABASE=Kei Communication Technology Inc. + + OUI:0016AB* +- ID_OUI_FROM_DATABASE=PBI-Dansensor A/S ++ ID_OUI_FROM_DATABASE=Dansensor A/S + + OUI:0016AC* + ID_OUI_FROM_DATABASE=Toho Technology Corp. +@@ -32342,7 +32348,7 @@ OUI:00188A* + ID_OUI_FROM_DATABASE=Infinova LLC + + OUI:00188B* +- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:00188C* + ID_OUI_FROM_DATABASE=Mobile Action Technology Inc. +@@ -35348,7 +35354,7 @@ OUI:001C74* + ID_OUI_FROM_DATABASE=Syswan Technologies Inc. + + OUI:001C75* +- ID_OUI_FROM_DATABASE=RF Systems GmbH ++ ID_OUI_FROM_DATABASE=Segnet Ltd. + + OUI:001C76* + ID_OUI_FROM_DATABASE=The Wandsworth Group Ltd +@@ -35831,7 +35837,7 @@ OUI:001D15* + ID_OUI_FROM_DATABASE=Shenzhen Dolphin Electronic Co., Ltd + + OUI:001D16* +- ID_OUI_FROM_DATABASE=Efixo ++ ID_OUI_FROM_DATABASE=SFR + + OUI:001D17* + ID_OUI_FROM_DATABASE=Digital Sky Corporation +@@ -35957,7 +35963,7 @@ OUI:001D3F* + ID_OUI_FROM_DATABASE=Mitron Pty Ltd + + OUI:001D40* +- ID_OUI_FROM_DATABASE=Living Independently Group, Inc. ++ ID_OUI_FROM_DATABASE=Intel – GE Care Innovations LLC + + OUI:001D41* + ID_OUI_FROM_DATABASE=Hardy Instruments +@@ -35969,7 +35975,7 @@ OUI:001D43* + ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. + + OUI:001D44* +- ID_OUI_FROM_DATABASE=Krohne ++ ID_OUI_FROM_DATABASE=KROHNE + + OUI:001D45* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +@@ -40316,7 +40322,7 @@ OUI:0022EE* + ID_OUI_FROM_DATABASE=Algo Communication Products Ltd + + OUI:0022EF* +- ID_OUI_FROM_DATABASE=Ibis Tek, LLC ++ ID_OUI_FROM_DATABASE=iWDL Technologies + + OUI:0022F0* + ID_OUI_FROM_DATABASE=3 Greens Aviation Limited +@@ -40361,7 +40367,7 @@ OUI:0022FE* + ID_OUI_FROM_DATABASE=Microprocessor Designs Inc + + OUI:0022FF* +- ID_OUI_FROM_DATABASE=NIVIS LLC ++ ID_OUI_FROM_DATABASE=iWDL Technologies + + OUI:002300* + ID_OUI_FROM_DATABASE=Cayee Computer Ltd. +@@ -41258,7 +41264,7 @@ OUI:00242E* + ID_OUI_FROM_DATABASE=Datastrip Inc. + + OUI:00242F* +- ID_OUI_FROM_DATABASE=VirtenSys Inc ++ ID_OUI_FROM_DATABASE=Micron + + OUI:002430* + ID_OUI_FROM_DATABASE=Ruby Tech Corp. +@@ -43028,7 +43034,7 @@ OUI:002686* + ID_OUI_FROM_DATABASE=Quantenna Communcations, Inc. + + OUI:002687* +- ID_OUI_FROM_DATABASE=ALLIED TELESIS, K.K corega division. ++ ID_OUI_FROM_DATABASE=Corega K.K + + OUI:002688* + ID_OUI_FROM_DATABASE=Juniper Networks +@@ -46118,7 +46124,7 @@ OUI:00605F* + ID_OUI_FROM_DATABASE=NIPPON UNISOFT CORPORATION + + OUI:006060* +- ID_OUI_FROM_DATABASE=DAWNING TECHNOLOGIES, INC. ++ ID_OUI_FROM_DATABASE=Data Innovations North America + + OUI:006061* + ID_OUI_FROM_DATABASE=WHISTLE COMMUNICATIONS CORP. +@@ -46621,12 +46627,18 @@ OUI:0070B0* + OUI:0070B3* + ID_OUI_FROM_DATABASE=DATA RECALL LTD. + ++OUI:0071CC* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:00738D* + ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp + + OUI:0073E0* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:007532* ++ ID_OUI_FROM_DATABASE=INID BV ++ + OUI:0075E1* + ID_OUI_FROM_DATABASE=Ampt, LLC + +@@ -48623,7 +48635,7 @@ OUI:00A086* + ID_OUI_FROM_DATABASE=AMBER WAVE SYSTEMS, INC. + + OUI:00A087* +- ID_OUI_FROM_DATABASE=Zarlink Semiconductor Ltd. ++ ID_OUI_FROM_DATABASE=Microsemi Corporation + + OUI:00A088* + ID_OUI_FROM_DATABASE=ESSENTIAL COMMUNICATIONS +@@ -49009,6 +49021,9 @@ OUI:00AA3C* + OUI:00AA70* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:00ACE0* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:00B009* + ID_OUI_FROM_DATABASE=Grass Valley Group + +@@ -51550,6 +51565,9 @@ OUI:00E0FE* + OUI:00E0FF* + ID_OUI_FROM_DATABASE=SECURITY DYNAMICS TECHNOLOGIES, Inc. + ++OUI:00E16D* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:00E175* + ID_OUI_FROM_DATABASE=AK-Systems Ltd + +@@ -51703,6 +51721,9 @@ OUI:0444A1* + OUI:044665* + ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. + ++OUI:04489A* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:044A50* + ID_OUI_FROM_DATABASE=Ramaxel Technology (Shenzhen) limited company + +@@ -51727,6 +51748,9 @@ OUI:045453* + OUI:0455CA* + ID_OUI_FROM_DATABASE=BriView (Xiamen) Corp. + ++OUI:04572F* ++ ID_OUI_FROM_DATABASE=Sertel Electronics UK Ltd ++ + OUI:04586F* + ID_OUI_FROM_DATABASE=Sichuan Whayer information industry Co.,LTD + +@@ -51892,6 +51916,9 @@ OUI:04E548* + OUI:04E662* + ID_OUI_FROM_DATABASE=Acroname Inc. + ++OUI:04E676* ++ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. ++ + OUI:04E9E5* + ID_OUI_FROM_DATABASE=PJRC.COM, LLC + +@@ -52486,6 +52513,9 @@ OUI:085AE0* + OUI:085B0E* + ID_OUI_FROM_DATABASE=Fortinet, Inc. + ++OUI:085DDD* ++ ID_OUI_FROM_DATABASE=Mercury Corporation ++ + OUI:08606E* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + +@@ -52504,6 +52534,9 @@ OUI:086DF2* + OUI:087045* + ID_OUI_FROM_DATABASE=Apple + ++OUI:0874F6* ++ ID_OUI_FROM_DATABASE=Winterhalter Gastronom GmbH ++ + OUI:087572* + ID_OUI_FROM_DATABASE=Obelux Oy + +@@ -52573,6 +52606,9 @@ OUI:08ACA5* + OUI:08AF78* + ID_OUI_FROM_DATABASE=Totus Solutions, Inc. + ++OUI:08B2A3* ++ ID_OUI_FROM_DATABASE=Cynny Italia S.r.L. ++ + OUI:08B4CF* + ID_OUI_FROM_DATABASE=Abicom International + +@@ -52615,6 +52651,9 @@ OUI:08D5C0* + OUI:08D833* + ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co,.Ltd + ++OUI:08DF1F* ++ ID_OUI_FROM_DATABASE=Bose Corporation ++ + OUI:08E5DA* + ID_OUI_FROM_DATABASE=NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD. + +@@ -52687,6 +52726,9 @@ OUI:0C191F* + OUI:0C1DC2* + ID_OUI_FROM_DATABASE=SeAH Networks + ++OUI:0C2026* ++ ID_OUI_FROM_DATABASE=noax Technologies AG ++ + OUI:0C2724* + ID_OUI_FROM_DATABASE=Cisco + +@@ -52756,6 +52798,9 @@ OUI:0C5CD8* + OUI:0C6076* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:0C63FC* ++ ID_OUI_FROM_DATABASE=Nanjing Signway Technology Co., Ltd ++ + OUI:0C6803* + ID_OUI_FROM_DATABASE=Cisco + +@@ -52984,6 +53029,9 @@ OUI:1000FD* + OUI:1001CA* + ID_OUI_FROM_DATABASE=Ashley Butterworth + ++OUI:1005CA* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:10090C* + ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. + +@@ -53008,6 +53056,9 @@ OUI:100E2B* + OUI:100E7E* + ID_OUI_FROM_DATABASE=Juniper networks + ++OUI:100F18* ++ ID_OUI_FROM_DATABASE=Fu Gang Electronic(KunShan)CO.,LTD ++ + OUI:1010B6* + ID_OUI_FROM_DATABASE=McCain Inc + +@@ -53158,6 +53209,9 @@ OUI:1083D2* + OUI:10880F* + ID_OUI_FROM_DATABASE=Daruma Telecomunicações e Informática S.A. + ++OUI:1088CE* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:108CCF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -53317,6 +53371,9 @@ OUI:1423D7* + OUI:142BD2* + ID_OUI_FROM_DATABASE=Armtel Ltd. + ++OUI:142BD6* ++ ID_OUI_FROM_DATABASE=Guangdong Appscomm Co.,Ltd ++ + OUI:142D27* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -53329,6 +53386,9 @@ OUI:142DF5* + OUI:14307A* + ID_OUI_FROM_DATABASE=Avermetrics + ++OUI:1430C6* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:14358B* + ID_OUI_FROM_DATABASE=Mediabridge Products, LLC. + +@@ -53344,6 +53404,9 @@ OUI:14373B* + OUI:143AEA* + ID_OUI_FROM_DATABASE=Dynapower Company LLC + ++OUI:143DF2* ++ ID_OUI_FROM_DATABASE=Beijing Shidai Hongyuan Network Communication Co.,Ltd ++ + OUI:143E60* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + +@@ -53368,6 +53431,9 @@ OUI:144C1A* + OUI:145412* + ID_OUI_FROM_DATABASE=Entis Co., Ltd. + ++OUI:145645* ++ ID_OUI_FROM_DATABASE=Savitech Corp. ++ + OUI:145A05* + ID_OUI_FROM_DATABASE=Apple + +@@ -53440,6 +53506,9 @@ OUI:14B126* + OUI:14B1C8* + ID_OUI_FROM_DATABASE=InfiniWing, Inc. + ++OUI:14B484* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:14B73D* + ID_OUI_FROM_DATABASE=ARCHEAN Technologies + +@@ -53489,7 +53558,7 @@ OUI:14EB33* + ID_OUI_FROM_DATABASE=BSMediasoft Co., Ltd. + + OUI:14EDA5* +- ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme ++ ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme + + OUI:14EE9D* + ID_OUI_FROM_DATABASE=AirNav Systems LLC +@@ -53572,6 +53641,9 @@ OUI:182032* + OUI:1820A6* + ID_OUI_FROM_DATABASE=Sage Co., Ltd. + ++OUI:18227E* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:182666* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53726,7 +53798,7 @@ OUI:18A905* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + + OUI:18A99B* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:18AA45* + ID_OUI_FROM_DATABASE=Fon Technology +@@ -53779,6 +53851,9 @@ OUI:18CC23* + OUI:18D071* + ID_OUI_FROM_DATABASE=DASAN SMC, Inc. + ++OUI:18D5B6* ++ ID_OUI_FROM_DATABASE=SMG Holdings LLC ++ + OUI:18D66A* + ID_OUI_FROM_DATABASE=Inmarsat + +@@ -53824,6 +53899,9 @@ OUI:18F87A* + OUI:18FA6F* + ID_OUI_FROM_DATABASE=ISC applied systems corp + ++OUI:18FB7B* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:18FC9F* + ID_OUI_FROM_DATABASE=Changhe Electronics Co., Ltd. + +@@ -53863,9 +53941,15 @@ OUI:1C184A* + OUI:1C19DE* + ID_OUI_FROM_DATABASE=eyevis GmbH + ++OUI:1C1AC0* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:1C1B68* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:1C1CFD* ++ ID_OUI_FROM_DATABASE=Dalian Hi-Think Computer Technology, Corp ++ + OUI:1C1D67* + ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd + +@@ -54157,6 +54241,9 @@ OUI:201D03* + OUI:2021A5* + ID_OUI_FROM_DATABASE=LG Electronics Inc + ++OUI:202564* ++ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION ++ + OUI:202598* + ID_OUI_FROM_DATABASE=Teleview + +@@ -54202,6 +54289,9 @@ OUI:204E6B* + OUI:204E7F* + ID_OUI_FROM_DATABASE=NETGEAR + ++OUI:2053CA* ++ ID_OUI_FROM_DATABASE=Risk Technology Ltd ++ + OUI:205476* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + +@@ -54211,6 +54301,9 @@ OUI:205721* + OUI:2059A0* + ID_OUI_FROM_DATABASE=Paragon Technologies Inc. + ++OUI:205A00* ++ ID_OUI_FROM_DATABASE=Coval ++ + OUI:205B5E* + ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd + +@@ -54265,12 +54358,18 @@ OUI:20918A* + OUI:2091D9* + ID_OUI_FROM_DATABASE=I'M SPA + ++OUI:209AE9* ++ ID_OUI_FROM_DATABASE=Volacomm Co., Ltd ++ + OUI:209BA5* + ID_OUI_FROM_DATABASE=JIAXING GLEAD Electronics Co.,Ltd + + OUI:20A2E7* + ID_OUI_FROM_DATABASE=Lee-Dickens Ltd + ++OUI:20A787* ++ ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited ++ + OUI:20AA25* + ID_OUI_FROM_DATABASE=IP-NET LLC + +@@ -54394,6 +54493,9 @@ OUI:24050F* + OUI:240917* + ID_OUI_FROM_DATABASE=Devlin Electronics Limited + ++OUI:240A11* ++ ID_OUI_FROM_DATABASE=TCT Mobile Limited ++ + OUI:240A64* + ID_OUI_FROM_DATABASE=AzureWaveTechnologies,Inc + +@@ -54691,9 +54793,15 @@ OUI:282CB2* + OUI:283152* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:2832C5* ++ ID_OUI_FROM_DATABASE=Humax.co.,ltd ++ + OUI:283410* + ID_OUI_FROM_DATABASE=Enigma Diagnostics Limited + ++OUI:2834A2* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:283737* + ID_OUI_FROM_DATABASE=Apple + +@@ -54778,6 +54886,9 @@ OUI:2872F0* + OUI:287994* + ID_OUI_FROM_DATABASE=Realplay Digital Technology(Shenzhen) Co.,Ltd + ++OUI:288023* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:28852D* + ID_OUI_FROM_DATABASE=Touch Networks + +@@ -55024,6 +55135,9 @@ OUI:2C3731* + OUI:2C3996* + ID_OUI_FROM_DATABASE=SAGEMCOM + ++OUI:2C39C1* ++ ID_OUI_FROM_DATABASE=Ciena Corporation ++ + OUI:2C3A28* + ID_OUI_FROM_DATABASE=Fagor Electrónica + +@@ -55069,6 +55183,9 @@ OUI:2C5A05* + OUI:2C5AA3* + ID_OUI_FROM_DATABASE=PROMATE ELECTRONIC CO.LTD + ++OUI:2C5BE1* ++ ID_OUI_FROM_DATABASE=Centripetal Networks, Inc ++ + OUI:2C5D93* + ID_OUI_FROM_DATABASE=Ruckus Wireless + +@@ -55117,6 +55234,9 @@ OUI:2C8065* + OUI:2C8158* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd + ++OUI:2C8A72* ++ ID_OUI_FROM_DATABASE=HTC Corporation ++ + OUI:2C8BF2* + ID_OUI_FROM_DATABASE=Hitachi Metals America Ltd + +@@ -55135,6 +55255,9 @@ OUI:2C957F* + OUI:2C9717* + ID_OUI_FROM_DATABASE=I.C.Y. B.V. + ++OUI:2C9AA4* ++ ID_OUI_FROM_DATABASE=NGI SpA ++ + OUI:2C9E5F* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -55327,6 +55450,9 @@ OUI:3055ED* + OUI:3057AC* + ID_OUI_FROM_DATABASE=IRLAB LTD. + ++OUI:3059B7* ++ ID_OUI_FROM_DATABASE=Microsoft ++ + OUI:305D38* + ID_OUI_FROM_DATABASE=Beissbarth + +@@ -55387,6 +55513,9 @@ OUI:308CFB* + OUI:3090AB* + ID_OUI_FROM_DATABASE=Apple + ++OUI:30918F* ++ ID_OUI_FROM_DATABASE=Technicolor ++ + OUI:3092F6* + ID_OUI_FROM_DATABASE=SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD + +@@ -55417,12 +55546,18 @@ OUI:30B5C2* + OUI:30C750* + ID_OUI_FROM_DATABASE=MIC Technology Group + ++OUI:30C7AE* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:30C82A* + ID_OUI_FROM_DATABASE=Wi-Next s.r.l. + + OUI:30CDA7* + ID_OUI_FROM_DATABASE=Samsung Electronics ITS, Printer division + ++OUI:30D17E* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:30D357* + ID_OUI_FROM_DATABASE=Logosol, Inc. + +@@ -55462,6 +55597,9 @@ OUI:30F70D* + OUI:30F7C5* + ID_OUI_FROM_DATABASE=Apple + ++OUI:30F7D7* ++ ID_OUI_FROM_DATABASE=Thread Technology Co., Ltd ++ + OUI:30F9ED* + ID_OUI_FROM_DATABASE=Sony Corporation + +@@ -55474,6 +55612,9 @@ OUI:3407FB* + OUI:340804* + ID_OUI_FROM_DATABASE=D-Link Corporation + ++OUI:340AFF* ++ ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd ++ + OUI:3413A8* + ID_OUI_FROM_DATABASE=Mediplan Limited + +@@ -55484,7 +55625,7 @@ OUI:34159E* + ID_OUI_FROM_DATABASE=Apple + + OUI:3417EB* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:341A4C* + ID_OUI_FROM_DATABASE=SHENZHEN WEIBU ELECTRONICS CO.,LTD. +@@ -55534,6 +55675,9 @@ OUI:344F5C* + OUI:344F69* + ID_OUI_FROM_DATABASE=EKINOPS SAS + ++OUI:3451AA* ++ ID_OUI_FROM_DATABASE=JID GLOBAL ++ + OUI:3451C9* + ID_OUI_FROM_DATABASE=Apple + +@@ -55543,6 +55687,9 @@ OUI:345B11* + OUI:345C40* + ID_OUI_FROM_DATABASE=Cargt Holdings LLC + ++OUI:345D10* ++ ID_OUI_FROM_DATABASE=Wytek ++ + OUI:346178* + ID_OUI_FROM_DATABASE=The Boeing Company + +@@ -55573,6 +55720,9 @@ OUI:347E39* + OUI:348137* + ID_OUI_FROM_DATABASE=UNICARD SA + ++OUI:3481C4* ++ ID_OUI_FROM_DATABASE=AVM GmbH ++ + OUI:3482DE* + ID_OUI_FROM_DATABASE=Kayo Technology, Inc. + +@@ -55741,6 +55891,9 @@ OUI:34E0D7* + OUI:34E2FD* + ID_OUI_FROM_DATABASE=Apple + ++OUI:34E42A* ++ ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. ++ + OUI:34EF44* + ID_OUI_FROM_DATABASE=2Wire + +@@ -55933,6 +56086,9 @@ OUI:38B74D* + OUI:38BB23* + ID_OUI_FROM_DATABASE=OzVision America LLC + ++OUI:38BB3C* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:38BC1A* + ID_OUI_FROM_DATABASE=Meizu technology co.,ltd + +@@ -56224,6 +56380,9 @@ OUI:3CA72B* + OUI:3CA9F4* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:3CAB8E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:3CB15B* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -56311,6 +56470,9 @@ OUI:3CF72A* + OUI:3CF748* + ID_OUI_FROM_DATABASE=Shenzhen Linsn Technology Development Co.,Ltd + ++OUI:3CF808* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:3CFB96* + ID_OUI_FROM_DATABASE=Emcraft Systems LLC + +@@ -56341,6 +56503,9 @@ OUI:4013D9* + OUI:401597* + ID_OUI_FROM_DATABASE=Protect America, Inc. + ++OUI:40167E* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:40169F* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO., LTD. + +@@ -56392,6 +56557,9 @@ OUI:404022* + OUI:40406B* + ID_OUI_FROM_DATABASE=Icomera + ++OUI:4045DA* ++ ID_OUI_FROM_DATABASE=Spreadtrum Communications (Shanghai) Co., Ltd. ++ + OUI:404A03* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + +@@ -56527,6 +56695,9 @@ OUI:40B2C8* + OUI:40B395* + ID_OUI_FROM_DATABASE=Apple + ++OUI:40B3CD* ++ ID_OUI_FROM_DATABASE=Chiyoda Electronics Co.,Ltd. ++ + OUI:40B3FC* + ID_OUI_FROM_DATABASE=Logital Co. Limited + +@@ -56596,6 +56767,9 @@ OUI:40F02F* + OUI:40F14C* + ID_OUI_FROM_DATABASE=ISE Europe SPRL + ++OUI:40F201* ++ ID_OUI_FROM_DATABASE=SAGEMCOM ++ + OUI:40F2E9* + ID_OUI_FROM_DATABASE=IBM + +@@ -56632,6 +56806,9 @@ OUI:44184F* + OUI:4419B6* + ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. + ++OUI:441E91* ++ ID_OUI_FROM_DATABASE=ARVIDA Intelligent Electronics Technology Co.,Ltd. ++ + OUI:441EA1* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -56776,6 +56953,9 @@ OUI:448312* + OUI:448500* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:4486C1* ++ ID_OUI_FROM_DATABASE=Siemens Low Voltage & Products ++ + OUI:4487FC* + ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. + +@@ -56860,6 +57040,9 @@ OUI:44D2CA* + OUI:44D3CA* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:44D4E0* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:44D63D* + ID_OUI_FROM_DATABASE=Talari Networks + +@@ -56920,6 +57103,9 @@ OUI:48174C* + OUI:481842* + ID_OUI_FROM_DATABASE=Shanghai Winaas Co. Equipment Co. Ltd. + ++OUI:481A84* ++ ID_OUI_FROM_DATABASE=Pointer Telocation Ltd ++ + OUI:481BD2* + ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. + +@@ -56950,9 +57136,15 @@ OUI:4846F1* + OUI:4846FB* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:4851B7* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:485261* + ID_OUI_FROM_DATABASE=SOREEL + ++OUI:485929* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:485A3F* + ID_OUI_FROM_DATABASE=WISOL + +@@ -56971,6 +57163,9 @@ OUI:4860BC* + OUI:4861A3* + ID_OUI_FROM_DATABASE=Concern "Axion" JSC + ++OUI:486276* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:486B91* + ID_OUI_FROM_DATABASE=Fleetwood Group Inc. + +@@ -56986,6 +57181,9 @@ OUI:487119* + OUI:48746E* + ID_OUI_FROM_DATABASE=Apple + ++OUI:488244* ++ ID_OUI_FROM_DATABASE=Life Fitness / Div. of Brunswick ++ + OUI:488E42* + ID_OUI_FROM_DATABASE=DIGALOG GmbH + +@@ -57046,15 +57244,24 @@ OUI:48CB6E* + OUI:48D0CF* + ID_OUI_FROM_DATABASE=Universal Electronics, Inc. + ++OUI:48D18E* ++ ID_OUI_FROM_DATABASE=Metis Communication Co.,Ltd ++ + OUI:48D224* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + + OUI:48D54C* + ID_OUI_FROM_DATABASE=Jeda Networks + ++OUI:48D705* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:48D7FF* + ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH + ++OUI:48D855* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY ++ + OUI:48D8FE* + ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. + +@@ -57136,6 +57343,9 @@ OUI:4C0F6E* + OUI:4C0FC7* + ID_OUI_FROM_DATABASE=Earda Electronics Co.,Ltd + ++OUI:4C11BF* ++ ID_OUI_FROM_DATABASE=ZHEJIANG DAHUA TECHNOLOGY CO.,LTD. ++ + OUI:4C1480* + ID_OUI_FROM_DATABASE=NOREGON SYSTEMS, INC + +@@ -57178,6 +57388,9 @@ OUI:4C322D* + OUI:4C32D9* + ID_OUI_FROM_DATABASE=M Rutty Holdings Pty. Ltd. + ++OUI:4C3909* ++ ID_OUI_FROM_DATABASE=HPL Electric & Power Private Limited ++ + OUI:4C3910* + ID_OUI_FROM_DATABASE=Newtek Electronics co., Ltd. + +@@ -57478,9 +57691,15 @@ OUI:505663* + OUI:5056A8* + ID_OUI_FROM_DATABASE=Jolla Ltd + ++OUI:5056BF* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD ++ + OUI:5057A8* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:505800* ++ ID_OUI_FROM_DATABASE=WyTec International, Inc. ++ + OUI:505AC6* + ID_OUI_FROM_DATABASE=GUANGDONG SUPER TELECOM CO.,LTD. + +@@ -57601,6 +57820,9 @@ OUI:50C271* + OUI:50C58D* + ID_OUI_FROM_DATABASE=Juniper Networks + ++OUI:50C7BF* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:50C971* + ID_OUI_FROM_DATABASE=GN Netcom A/S + +@@ -57706,6 +57928,9 @@ OUI:54271E* + OUI:542A9C* + ID_OUI_FROM_DATABASE=LSY Defense, LLC. + ++OUI:542AA2* ++ ID_OUI_FROM_DATABASE=Alpha Networks Inc. ++ + OUI:542CEA* + ID_OUI_FROM_DATABASE=PROTECTRON + +@@ -57739,9 +57964,15 @@ OUI:544408* + OUI:54466B* + ID_OUI_FROM_DATABASE=Shenzhen CZTIC Electronic Technology Co., Ltd + ++OUI:544A00* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:544A05* + ID_OUI_FROM_DATABASE=wenglor sensoric gmbh + ++OUI:544A16* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:5453ED* + ID_OUI_FROM_DATABASE=Sony Corporation + +@@ -57844,6 +58075,9 @@ OUI:54B620* + OUI:54BEF7* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + ++OUI:54C80F* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:54CDA7* + ID_OUI_FROM_DATABASE=Fujian Shenzhou Electronic Co.,Ltd + +@@ -57886,6 +58120,12 @@ OUI:54E6FC* + OUI:54EAA8* + ID_OUI_FROM_DATABASE=Apple, Inc. + ++OUI:54EE75* ++ ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. ++ ++OUI:54EF92* ++ ID_OUI_FROM_DATABASE=Shenzhen Elink Technology Co., LTD ++ + OUI:54F5B6* + ID_OUI_FROM_DATABASE=ORIENTAL PACIFIC INTERNATIONAL LIMITED + +@@ -57928,12 +58168,18 @@ OUI:581CBD* + OUI:581D91* + ID_OUI_FROM_DATABASE=Advanced Mobile Telecom co.,ltd. + ++OUI:581F67* ++ ID_OUI_FROM_DATABASE=Open-m technology limited ++ + OUI:581FAA* + ID_OUI_FROM_DATABASE=Apple + + OUI:581FEF* + ID_OUI_FROM_DATABASE=Tuttnaer LTD + ++OUI:58238C* ++ ID_OUI_FROM_DATABASE=Technicolor CH USA ++ + OUI:582EFE* + ID_OUI_FROM_DATABASE=Lighting Science Group + +@@ -58123,6 +58369,9 @@ OUI:58DB8D* + OUI:58E02C* + ID_OUI_FROM_DATABASE=Micro Technic A/S + ++OUI:58E326* ++ ID_OUI_FROM_DATABASE=Compass Technologies Inc. ++ + OUI:58E476* + ID_OUI_FROM_DATABASE=CENTRON COMMUNICATIONS TECHNOLOGIES FUJIAN CO.,LTD + +@@ -58213,6 +58462,9 @@ OUI:5C260A* + OUI:5C2AEF* + ID_OUI_FROM_DATABASE=Open Access Pty Ltd + ++OUI:5C313E* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:5C3327* + ID_OUI_FROM_DATABASE=Spazio Italia srl + +@@ -58411,6 +58663,9 @@ OUI:5CF370* + OUI:5CF3FC* + ID_OUI_FROM_DATABASE=IBM Corp + ++OUI:5CF4AB* ++ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp ++ + OUI:5CF50D* + ID_OUI_FROM_DATABASE=Institute of microelectronic applications + +@@ -58561,6 +58816,9 @@ OUI:60748D* + OUI:607688* + ID_OUI_FROM_DATABASE=Velodyne + ++OUI:60812B* ++ ID_OUI_FROM_DATABASE=Custom Control Concepts ++ + OUI:6083B2* + ID_OUI_FROM_DATABASE=GkWare e.K. + +@@ -58585,9 +58843,15 @@ OUI:608C2B* + OUI:608D17* + ID_OUI_FROM_DATABASE=Sentrus Government Systems Division, Inc + ++OUI:608F5C* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:609084* + ID_OUI_FROM_DATABASE=DSSD Inc + ++OUI:609217* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:609AA4* + ID_OUI_FROM_DATABASE=GVI SECURITY INC. + +@@ -58615,6 +58879,9 @@ OUI:60B3C4* + OUI:60B606* + ID_OUI_FROM_DATABASE=Phorus + ++OUI:60B617* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:60B933* + ID_OUI_FROM_DATABASE=Deutron Electronics Corp. + +@@ -58633,6 +58900,9 @@ OUI:60BD91* + OUI:60BEB5* + ID_OUI_FROM_DATABASE=Motorola Mobility LLC + ++OUI:60C1CB* ++ ID_OUI_FROM_DATABASE=Fujian Great Power PLC Equipment Co.,Ltd ++ + OUI:60C397* + ID_OUI_FROM_DATABASE=2Wire Inc + +@@ -58681,6 +58951,9 @@ OUI:60DE44* + OUI:60E00E* + ID_OUI_FROM_DATABASE=SHINSEI ELECTRONICS CO LTD + ++OUI:60E327* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:60E956* + ID_OUI_FROM_DATABASE=Ayla Networks, Inc + +@@ -58753,6 +59026,9 @@ OUI:640F28* + OUI:641084* + ID_OUI_FROM_DATABASE=HEXIUM Technical Development Co., Ltd. + ++OUI:641225* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:64168D* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -58966,6 +59242,9 @@ OUI:64A3CB* + OUI:64A769* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:64A7DD* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:64A837* + ID_OUI_FROM_DATABASE=Juni Korea Co., Ltd + +@@ -59062,6 +59341,9 @@ OUI:64E8E6* + OUI:64E950* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:64EAC5* ++ ID_OUI_FROM_DATABASE=SiboTech Automation Co., Ltd. ++ + OUI:64EB8C* + ID_OUI_FROM_DATABASE=Seiko Epson Corporation + +@@ -59131,6 +59413,9 @@ OUI:681FD8* + OUI:68234B* + ID_OUI_FROM_DATABASE=Nihon Dengyo Kousaku + ++OUI:6828BA* ++ ID_OUI_FROM_DATABASE=Dejai ++ + OUI:682DDC* + ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD + +@@ -59188,6 +59473,9 @@ OUI:6869F2* + OUI:686E23* + ID_OUI_FROM_DATABASE=Wi3 Inc. + ++OUI:686E48* ++ ID_OUI_FROM_DATABASE=Prophet Electronic Technology Corp.,Ltd ++ + OUI:687251* + ID_OUI_FROM_DATABASE=Ubiquiti Networks + +@@ -59332,6 +59620,9 @@ OUI:68DB96* + OUI:68DCE8* + ID_OUI_FROM_DATABASE=PacketStorm Communications + ++OUI:68DFDD* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:68E41F* + ID_OUI_FROM_DATABASE=Unglaube Identech GmbH + +@@ -59377,12 +59668,18 @@ OUI:6C0E0D* + OUI:6C0F6A* + ID_OUI_FROM_DATABASE=JDC Tech Co., Ltd. + ++OUI:6C14F7* ++ ID_OUI_FROM_DATABASE=Erhardt+Leimer GmbH ++ + OUI:6C15F9* + ID_OUI_FROM_DATABASE=Nautronix Limited + + OUI:6C1811* + ID_OUI_FROM_DATABASE=Decatur Electronics + ++OUI:6C198F* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:6C2056* + ID_OUI_FROM_DATABASE=Cisco + +@@ -59395,6 +59692,9 @@ OUI:6C23B9* + OUI:6C2995* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:6C2C06* ++ ID_OUI_FROM_DATABASE=OOO NPP Systemotechnika-NN ++ + OUI:6C2E33* + ID_OUI_FROM_DATABASE=Accelink Technologies Co.,Ltd. + +@@ -59539,6 +59839,9 @@ OUI:6CA906* + OUI:6CA96F* + ID_OUI_FROM_DATABASE=TransPacket AS + ++OUI:6CAAB3* ++ ID_OUI_FROM_DATABASE=Ruckus Wireless ++ + OUI:6CAB4D* + ID_OUI_FROM_DATABASE=Digital Payment Technologies + +@@ -59608,6 +59911,9 @@ OUI:6CE983* + OUI:6CECA1* + ID_OUI_FROM_DATABASE=SHENZHEN CLOU ELECTRONICS CO. LTD. + ++OUI:6CECEB* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:6CF049* + ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. + +@@ -59623,6 +59929,9 @@ OUI:6CF97C* + OUI:6CFA58* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:6CFAA7* ++ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. ++ + OUI:6CFDB9* + ID_OUI_FROM_DATABASE=Proware Technologies Co Ltd. + +@@ -59686,6 +59995,9 @@ OUI:702F97* + OUI:703018* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:70305D* ++ ID_OUI_FROM_DATABASE=Ubiquoss Inc ++ + OUI:70305E* + ID_OUI_FROM_DATABASE=Nanjing Zhongke Menglian Information Technology Co.,LTD + +@@ -59767,6 +60079,9 @@ OUI:7060DE* + OUI:706173* + ID_OUI_FROM_DATABASE=Calantec GmbH + ++OUI:7062B8* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:706417* + ID_OUI_FROM_DATABASE=ORBIS TECNOLOGIA ELECTRICA S.A. + +@@ -59881,6 +60196,9 @@ OUI:70B14E* + OUI:70B265* + ID_OUI_FROM_DATABASE=Hiltron s.r.l. + ++OUI:70B3D5* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see OUI36 public listing for more information. ++ + OUI:70B599* + ID_OUI_FROM_DATABASE=Embedded Technologies s.r.o. + +@@ -59950,6 +60268,9 @@ OUI:70F395* + OUI:70F927* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:70F96D* ++ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited ++ + OUI:70FF76* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -59965,12 +60286,18 @@ OUI:741489* + OUI:7415E2* + ID_OUI_FROM_DATABASE=Tri-Sen Systems Corporation + ++OUI:7419F8* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:741E93* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + + OUI:74258A* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:7426AC* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:74273C* + ID_OUI_FROM_DATABASE=ChangYang Technology (Nanjing) Co., LTD + +@@ -60077,7 +60404,7 @@ OUI:747E2D* + ID_OUI_FROM_DATABASE=Beijing Thomson CITIC Digital Technology Co. LTD. + + OUI:74867A* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:74882A* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD +@@ -60172,6 +60499,9 @@ OUI:74D675* + OUI:74D850* + ID_OUI_FROM_DATABASE=Evrisko Systems + ++OUI:74DA38* ++ ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. ++ + OUI:74DE2B* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -60292,6 +60622,9 @@ OUI:7831C1* + OUI:78324F* + ID_OUI_FROM_DATABASE=Millennium Group, Inc. + ++OUI:783A84* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:783CE3* + ID_OUI_FROM_DATABASE=Kai-EE + +@@ -60319,6 +60652,9 @@ OUI:7846C4* + OUI:78471D* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:784859* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:78491D* + ID_OUI_FROM_DATABASE=The Will-Burt Company + +@@ -60391,6 +60727,9 @@ OUI:788C54* + OUI:788DF7* + ID_OUI_FROM_DATABASE=Hitron Technologies. Inc + ++OUI:78923E* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:78929C* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -60523,6 +60862,9 @@ OUI:78D38D* + OUI:78D5B5* + ID_OUI_FROM_DATABASE=NAVIELEKTRO KY + ++OUI:78D66F* ++ ID_OUI_FROM_DATABASE=Aristocrat Technologies Australia Pty. Ltd. ++ + OUI:78D6F0* + ID_OUI_FROM_DATABASE=Samsung Electro Mechanics + +@@ -60736,6 +61078,9 @@ OUI:7C6C8F* + OUI:7C6D62* + ID_OUI_FROM_DATABASE=Apple + ++OUI:7C6DF8* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:7C6F06* + ID_OUI_FROM_DATABASE=Caterpillar Trimble Control Technologies + +@@ -60856,6 +61201,9 @@ OUI:7CCFCF* + OUI:7CD1C3* + ID_OUI_FROM_DATABASE=Apple + ++OUI:7CD30A* ++ ID_OUI_FROM_DATABASE=INVENTEC Corporation ++ + OUI:7CD762* + ID_OUI_FROM_DATABASE=Freestyle Technology Pty Ltd + +@@ -60919,6 +61267,9 @@ OUI:7CFADF* + OUI:7CFE28* + ID_OUI_FROM_DATABASE=Salutron Inc. + ++OUI:7CFE4E* ++ ID_OUI_FROM_DATABASE=Shenzhen Safe vision Technology Co.,LTD ++ + OUI:7CFF62* + ID_OUI_FROM_DATABASE=Huizhou Super Electron Technology Co.,Ltd. + +@@ -60940,9 +61291,15 @@ OUI:8007A2* + OUI:800A06* + ID_OUI_FROM_DATABASE=COMTEC co.,ltd + ++OUI:800E24* ++ ID_OUI_FROM_DATABASE=ForgetBox ++ + OUI:801440* + ID_OUI_FROM_DATABASE=Sunlit System Technology Corp + ++OUI:8014A8* ++ ID_OUI_FROM_DATABASE=Guangzhou V-SOLUTION Electronic Technology Co., Ltd. ++ + OUI:8016B7* + ID_OUI_FROM_DATABASE=Brunel University + +@@ -60952,6 +61309,9 @@ OUI:80177D* + OUI:8018A7* + ID_OUI_FROM_DATABASE=Samsung Eletronics Co., Ltd + ++OUI:801934* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:801DAA* + ID_OUI_FROM_DATABASE=Avaya Inc + +@@ -60994,6 +61354,9 @@ OUI:803F5D* + OUI:803FD6* + ID_OUI_FROM_DATABASE=bytes at work AG + ++OUI:80414E* ++ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., ++ + OUI:80427C* + ID_OUI_FROM_DATABASE=Adolf Tedsen GmbH & Co. KG + +@@ -61279,6 +61642,9 @@ OUI:843611* + OUI:843835* + ID_OUI_FROM_DATABASE=Apple + ++OUI:843838* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ + OUI:843A4B* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -61360,6 +61726,9 @@ OUI:848506* + OUI:848D84* + ID_OUI_FROM_DATABASE=Rajant Corporation + ++OUI:848DC7* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:848E0C* + ID_OUI_FROM_DATABASE=Apple + +@@ -61372,6 +61741,12 @@ OUI:848F69* + OUI:849000* + ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik + ++OUI:84948C* ++ ID_OUI_FROM_DATABASE=Hitron Technologies. Inc ++ ++OUI:8496D8* ++ ID_OUI_FROM_DATABASE=Pace plc ++ + OUI:8497B8* + ID_OUI_FROM_DATABASE=Memjet Inc. + +@@ -61399,6 +61774,9 @@ OUI:84ACA4* + OUI:84AF1F* + ID_OUI_FROM_DATABASE=Beat System Service Co,. Ltd. + ++OUI:84B153* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:84B59C* + ID_OUI_FROM_DATABASE=Juniper networks + +@@ -61468,6 +61846,9 @@ OUI:880355* + OUI:880905* + ID_OUI_FROM_DATABASE=MTMCommunications + ++OUI:880F10* ++ ID_OUI_FROM_DATABASE=Huami Information Technology Co.,Ltd. ++ + OUI:880FB6* + ID_OUI_FROM_DATABASE=Jabil Circuits India Pvt Ltd,-EHTP unit + +@@ -61558,7 +61939,10 @@ OUI:88576D* + OUI:885A92* + ID_OUI_FROM_DATABASE=Cisco + +-OUI:885C4F* ++OUI:885BDD* ++ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. ++ ++OUI:885C47* + ID_OUI_FROM_DATABASE=Alcatel Lucent + + OUI:88615A* +@@ -61654,6 +62038,9 @@ OUI:88AE1D* + OUI:88B168* + ID_OUI_FROM_DATABASE=Delta Control GmbH + ++OUI:88B1E1* ++ ID_OUI_FROM_DATABASE=AirTight Networks, Inc. ++ + OUI:88B627* + ID_OUI_FROM_DATABASE=Gembird Europe BV + +@@ -62107,6 +62494,9 @@ OUI:9046B7* + OUI:904716* + ID_OUI_FROM_DATABASE=RORZE CORPORATION + ++OUI:90489A* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:9049FA* + ID_OUI_FROM_DATABASE=Intel Corporation + +@@ -62179,6 +62569,9 @@ OUI:907A28* + OUI:907AF1* + ID_OUI_FROM_DATABASE=SNUPI Technologies + ++OUI:907EBA* ++ ID_OUI_FROM_DATABASE=UTEK TECHNOLOGY (SHENZHEN) CO.,LTD ++ + OUI:907F61* + ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. + +@@ -62197,12 +62590,12 @@ OUI:9088A2* + OUI:908C44* + ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. + ++OUI:908C63* ++ ID_OUI_FROM_DATABASE=GZ Weedong Networks Technology Co. , Ltd ++ + OUI:908D1D* + ID_OUI_FROM_DATABASE=GH Technologies + +-OUI:908F93* +- ID_OUI_FROM_DATABASE=MakerBot Industries +- + OUI:908FCF* + ID_OUI_FROM_DATABASE=UNO System Co., Ltd + +@@ -62245,6 +62638,9 @@ OUI:90A7C1* + OUI:90AC3F* + ID_OUI_FROM_DATABASE=BrightSign LLC + ++OUI:90AE1B* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:90B11C* + ID_OUI_FROM_DATABASE=Dell Inc. + +@@ -62303,7 +62699,7 @@ OUI:90DFB7* + ID_OUI_FROM_DATABASE=s.m.s smart microwave sensors GmbH + + OUI:90E0F0* +- ID_OUI_FROM_DATABASE=Harman International ++ ID_OUI_FROM_DATABASE=IEEE 1722a Working Group + + OUI:90E2BA* + ID_OUI_FROM_DATABASE=Intel Corporate +@@ -62683,6 +63079,9 @@ OUI:983571* + OUI:9835B8* + ID_OUI_FROM_DATABASE=Assembled Products Corporation + ++OUI:983713* ++ ID_OUI_FROM_DATABASE=PT.Navicom Indonesia ++ + OUI:983B16* + ID_OUI_FROM_DATABASE=AMPAK Technology Inc + +@@ -62746,6 +63145,9 @@ OUI:986022* + OUI:9866EA* + ID_OUI_FROM_DATABASE=Industrial Control Communications, Inc. + ++OUI:986B3D* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:986CF5* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -62812,6 +63214,9 @@ OUI:98BC57* + OUI:98BC99* + ID_OUI_FROM_DATABASE=Edeltech Co.,Ltd. + ++OUI:98BE94* ++ ID_OUI_FROM_DATABASE=IBM ++ + OUI:98C0EB* + ID_OUI_FROM_DATABASE=Global Regency Ltd + +@@ -62929,6 +63334,9 @@ OUI:9C2840* + OUI:9C28BF* + ID_OUI_FROM_DATABASE=Continental Automotive Czech Republic s.r.o. + ++OUI:9C28EF* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:9C2A70* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -63184,6 +63592,9 @@ OUI:9CFBF1* + OUI:9CFFBE* + ID_OUI_FROM_DATABASE=OTSL Inc. + ++OUI:A002DC* ++ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. ++ + OUI:A00363* + ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH + +@@ -63205,6 +63616,9 @@ OUI:A00CA1* + OUI:A01290* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:A012DB* ++ ID_OUI_FROM_DATABASE=TABUCHI ELECTRIC CO.,LTD ++ + OUI:A0133B* + ID_OUI_FROM_DATABASE=Copyright © HiTi Digital, Inc. + +@@ -63235,6 +63649,9 @@ OUI:A021B7* + OUI:A0231B* + ID_OUI_FROM_DATABASE=TeleComp R&D Corp. + ++OUI:A02BB8* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:A02EF3* + ID_OUI_FROM_DATABASE=United Integrated Services Co., Led. + +@@ -63439,6 +63856,9 @@ OUI:A0D12A* + OUI:A0D3C1* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A0DA92* ++ ID_OUI_FROM_DATABASE=Nanjing Glarun Atten Technology Co. Ltd. ++ + OUI:A0DC04* + ID_OUI_FROM_DATABASE=Becker-Antriebe GmbH + +@@ -63502,6 +63922,9 @@ OUI:A0F450* + OUI:A0F459* + ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED + ++OUI:A0FC6E* ++ ID_OUI_FROM_DATABASE=Telegrafia a.s. ++ + OUI:A0FE91* + ID_OUI_FROM_DATABASE=AVAT Automation GmbH + +@@ -63565,6 +63988,12 @@ OUI:A438FC* + OUI:A43A69* + ID_OUI_FROM_DATABASE=Vers Inc + ++OUI:A43BFA* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ ++OUI:A43D78* ++ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD ++ + OUI:A4466B* + ID_OUI_FROM_DATABASE=EOC Technology + +@@ -63604,6 +64033,9 @@ OUI:A45C27* + OUI:A45D36* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A46032* ++ ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD ++ + OUI:A46706* + ID_OUI_FROM_DATABASE=Apple + +@@ -63632,7 +64064,13 @@ OUI:A47C14* + ID_OUI_FROM_DATABASE=ChargeStorm AB + + OUI:A47C1F* +- ID_OUI_FROM_DATABASE=Global Microwave Systems Inc. ++ ID_OUI_FROM_DATABASE=Cobham plc ++ ++OUI:A47E39* ++ ID_OUI_FROM_DATABASE=zte corporation ++ ++OUI:A481EE* ++ ID_OUI_FROM_DATABASE=Nokia Corporation + + OUI:A4856B* + ID_OUI_FROM_DATABASE=Q Electronics Ltd +@@ -63664,6 +64102,9 @@ OUI:A49B13* + OUI:A49EDB* + ID_OUI_FROM_DATABASE=AutoCrib, Inc. + ++OUI:A49F85* ++ ID_OUI_FROM_DATABASE=Lyve Minds, Inc ++ + OUI:A49F89* + ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. + +@@ -63964,6 +64405,9 @@ OUI:A8995C* + OUI:A89B10* + ID_OUI_FROM_DATABASE=inMotion Ltd. + ++OUI:A8A668* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:A8AD3D* + ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd + +@@ -64021,6 +64465,9 @@ OUI:A8F274* + OUI:A8F470* + ID_OUI_FROM_DATABASE=Fujian Newland Communication Science Technologies Co.,Ltd. + ++OUI:A8F7E0* ++ ID_OUI_FROM_DATABASE=PLANET Technology Corporation ++ + OUI:A8F94B* + ID_OUI_FROM_DATABASE=Eltex Enterprise Ltd. + +@@ -64258,12 +64705,21 @@ OUI:ACA22C* + OUI:ACA430* + ID_OUI_FROM_DATABASE=Peerless AV + ++OUI:ACA919* ++ ID_OUI_FROM_DATABASE=TrekStor GmbH ++ ++OUI:ACA9A0* ++ ID_OUI_FROM_DATABASE=Audioengine, Ltd. ++ + OUI:ACAB8D* + ID_OUI_FROM_DATABASE=Lyngso Marine A/S + + OUI:ACB313* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:ACB859* ++ ID_OUI_FROM_DATABASE=Uniband Electronic Corp, ++ + OUI:ACBD0B* + ID_OUI_FROM_DATABASE=IMAC CO.,LTD + +@@ -64375,6 +64831,9 @@ OUI:ACF97E* + OUI:ACFDEC* + ID_OUI_FROM_DATABASE=Apple, Inc + ++OUI:B000B4* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:B00594* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -64465,6 +64924,9 @@ OUI:B06CBF* + OUI:B0750C* + ID_OUI_FROM_DATABASE=QA Cafe + ++OUI:B0754D* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:B075D5* + ID_OUI_FROM_DATABASE=ZTE Corporation + +@@ -64528,9 +64990,15 @@ OUI:B09FBA* + OUI:B0A10A* + ID_OUI_FROM_DATABASE=Pivotal Systems Corporation + ++OUI:B0A37E* ++ ID_OUI_FROM_DATABASE=Qingdao Haier Electronics Co.,Ltd ++ + OUI:B0A72A* + ID_OUI_FROM_DATABASE=Ensemble Designs, Inc. + ++OUI:B0A737* ++ ID_OUI_FROM_DATABASE=Roku, Inc. ++ + OUI:B0A86E* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -64597,6 +65065,9 @@ OUI:B0D09C* + OUI:B0D2F5* + ID_OUI_FROM_DATABASE=Vello Systems, Inc. + ++OUI:B0D59D* ++ ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd ++ + OUI:B0D7C5* + ID_OUI_FROM_DATABASE=STP KFT + +@@ -64813,6 +65284,9 @@ OUI:B499BA* + OUI:B49DB4* + ID_OUI_FROM_DATABASE=Axion Technologies Inc. + ++OUI:B49EAC* ++ ID_OUI_FROM_DATABASE=Imagik Int'l Corp ++ + OUI:B49EE6* + ID_OUI_FROM_DATABASE=SHENZHEN TECHNOLOGY CO LTD + +@@ -64900,6 +65374,9 @@ OUI:B4ED19* + OUI:B4ED54* + ID_OUI_FROM_DATABASE=Wohler Technologies + ++OUI:B4EEB4* ++ ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP ++ + OUI:B4EED4* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -64963,6 +65440,9 @@ OUI:B8288B* + OUI:B829F7* + ID_OUI_FROM_DATABASE=Blaster Tech + ++OUI:B82A72* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:B82ADC* + ID_OUI_FROM_DATABASE=EFR Europäische Funk-Rundsteuerung GmbH + +@@ -65047,6 +65527,9 @@ OUI:B87424* + OUI:B87447* + ID_OUI_FROM_DATABASE=Convergence Technologies + ++OUI:B875C0* ++ ID_OUI_FROM_DATABASE=PayPal, Inc. ++ + OUI:B8763F* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -65062,6 +65545,9 @@ OUI:B8797E* + OUI:B87AC9* + ID_OUI_FROM_DATABASE=Siemens Ltd. + ++OUI:B87CF2* ++ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. ++ + OUI:B8871E* + ID_OUI_FROM_DATABASE=Good Mind Industries Co., Ltd. + +@@ -65152,6 +65638,9 @@ OUI:B8BB6D* + OUI:B8BEBF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:B8BF83* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:B8C1A2* + ID_OUI_FROM_DATABASE=Dragon Path Technologies Co., Limited + +@@ -65171,7 +65660,7 @@ OUI:B8C855* + ID_OUI_FROM_DATABASE=Shanghai GBCOM Communication Technology Co.,Ltd. + + OUI:B8CA3A* +- ID_OUI_FROM_DATABASE=Dell PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:B8CD93* + ID_OUI_FROM_DATABASE=Penetek, Inc +@@ -65215,6 +65704,9 @@ OUI:B8E856* + OUI:B8E937* + ID_OUI_FROM_DATABASE=Sonos, Inc. + ++OUI:B8EE65* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:B8EE79* + ID_OUI_FROM_DATABASE=YWire Technologies, Inc. + +@@ -65284,6 +65776,9 @@ OUI:BC20A4* + OUI:BC20BA* + ID_OUI_FROM_DATABASE=Inspur (Shandong) Electronic Information Co., Ltd + ++OUI:BC25F0* ++ ID_OUI_FROM_DATABASE=3D Display Technologies Co., Ltd. ++ + OUI:BC261D* + ID_OUI_FROM_DATABASE=HONG KONG TECON TECHNOLOGY + +@@ -65311,6 +65806,9 @@ OUI:BC305B* + OUI:BC307D* + ID_OUI_FROM_DATABASE=Wistron Neweb Corp. + ++OUI:BC3400* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:BC35E5* + ID_OUI_FROM_DATABASE=Hydro Systems Company + +@@ -65419,6 +65917,9 @@ OUI:BC8B55* + OUI:BC8CCD* + ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. + ++OUI:BC8D0E* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:BC926B* + ID_OUI_FROM_DATABASE=Apple + +@@ -65572,6 +66073,9 @@ OUI:C038F9* + OUI:C03B8F* + ID_OUI_FROM_DATABASE=Minicom Digital Signage + ++OUI:C03D46* ++ ID_OUI_FROM_DATABASE=Shanghai Mochui Network Technology Co., Ltd ++ + OUI:C03E0F* + ID_OUI_FROM_DATABASE=BSkyB Ltd + +@@ -65602,6 +66106,9 @@ OUI:C04A00* + OUI:C04DF7* + ID_OUI_FROM_DATABASE=SERELEC + ++OUI:C056E3* ++ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. ++ + OUI:C057BC* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -65614,6 +66121,9 @@ OUI:C05E6F* + OUI:C05E79* + ID_OUI_FROM_DATABASE=SHENZHEN HUAXUN ARK TECHNOLOGIES CO.,LTD + ++OUI:C06118* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:C0626B* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -65794,6 +66304,9 @@ OUI:C40415* + OUI:C40528* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:C4084A* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:C40938* + ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd + +@@ -65848,6 +66361,9 @@ OUI:C4291D* + OUI:C42C03* + ID_OUI_FROM_DATABASE=Apple + ++OUI:C4346B* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:C436DA* + ID_OUI_FROM_DATABASE=Rusteletech Ltd. + +@@ -65938,6 +66454,9 @@ OUI:C467B5* + OUI:C46AB7* + ID_OUI_FROM_DATABASE=Xiaomi Technology,Inc. + ++OUI:C46BB4* ++ ID_OUI_FROM_DATABASE=myIDkey ++ + OUI:C46DF1* + ID_OUI_FROM_DATABASE=DataGravity + +@@ -65983,6 +66502,9 @@ OUI:C48508* + OUI:C488E5* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:C4913A* ++ ID_OUI_FROM_DATABASE=Shenzhen Sanland Electronic Co., ltd. ++ + OUI:C49300* + ID_OUI_FROM_DATABASE=8Devices + +@@ -66025,6 +66547,9 @@ OUI:C4C755* + OUI:C4C919* + ID_OUI_FROM_DATABASE=Energy Imports Ltd + ++OUI:C4C9EC* ++ ID_OUI_FROM_DATABASE=D&D GROUP sp. z o.o. ++ + OUI:C4CAD9* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + +@@ -66113,7 +66638,7 @@ OUI:C81E8E* + ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd + + OUI:C81F66* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:C8208E* + ID_OUI_FROM_DATABASE=Storagedata +@@ -66127,6 +66652,9 @@ OUI:C82A14* + OUI:C82E94* + ID_OUI_FROM_DATABASE=Halfa Enterprise Co., Ltd. + ++OUI:C83168* ++ ID_OUI_FROM_DATABASE=eZEX corporation ++ + OUI:C83232* + ID_OUI_FROM_DATABASE=Hunting Innova + +@@ -66238,6 +66766,9 @@ OUI:C89C1D* + OUI:C89CDC* + ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. + ++OUI:C89F1D* ++ ID_OUI_FROM_DATABASE=SHENZHEN COMMUNICATION TECHNOLOGIES CO.,LTD ++ + OUI:C89F42* + ID_OUI_FROM_DATABASE=VDII Innovation AB + +@@ -66274,6 +66805,9 @@ OUI:C8B373* + OUI:C8B5B7* + ID_OUI_FROM_DATABASE=Apple + ++OUI:C8BA94* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ + OUI:C8BBD3* + ID_OUI_FROM_DATABASE=Embrane + +@@ -66316,6 +66850,9 @@ OUI:C8D3A3* + OUI:C8D429* + ID_OUI_FROM_DATABASE=Muehlbauer AG + ++OUI:C8D590* ++ ID_OUI_FROM_DATABASE=FLIGHT DATA SYSTEMS ++ + OUI:C8D5FE* + ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd + +@@ -66337,6 +66874,9 @@ OUI:C8E0EB* + OUI:C8E1A7* + ID_OUI_FROM_DATABASE=Vertu Corporation Limited + ++OUI:C8E42F* ++ ID_OUI_FROM_DATABASE=Technical Research Design and Development ++ + OUI:C8EE08* + ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD + +@@ -66358,6 +66898,9 @@ OUI:C8F386* + OUI:C8F406* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:C8F650* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:C8F68D* + ID_OUI_FROM_DATABASE=S.E.TECHNOLOGIES LIMITED + +@@ -66379,6 +66922,9 @@ OUI:C8FB26* + OUI:C8FE30* + ID_OUI_FROM_DATABASE=Bejing DAYO Mobile Communication Technology Ltd. + ++OUI:C8FF77* ++ ID_OUI_FROM_DATABASE=Dyson Limited ++ + OUI:CC0080* + ID_OUI_FROM_DATABASE=BETTINI SRL + +@@ -66394,6 +66940,9 @@ OUI:CC051B* + OUI:CC07AB* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:CC07E4* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:CC08E0* + ID_OUI_FROM_DATABASE=Apple + +@@ -66574,6 +67123,9 @@ OUI:CC9E00* + OUI:CC9F35* + ID_OUI_FROM_DATABASE=Transbit Sp. z o.o. + ++OUI:CCA0E5* ++ ID_OUI_FROM_DATABASE=DZG Metering GmbH ++ + OUI:CCA374* + ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd + +@@ -66595,6 +67147,9 @@ OUI:CCB3F8* + OUI:CCB55A* + ID_OUI_FROM_DATABASE=Fraunhofer ITWM + ++OUI:CCB691* ++ ID_OUI_FROM_DATABASE=NECMagnusCommunications ++ + OUI:CCB888* + ID_OUI_FROM_DATABASE=AnB Securite s.a. + +@@ -66610,6 +67165,9 @@ OUI:CCBE71* + OUI:CCC104* + ID_OUI_FROM_DATABASE=Applied Technical Systems + ++OUI:CCC3EA* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:CCC50A* + ID_OUI_FROM_DATABASE=SHENZHEN DAJIAHAO TECHNOLOGY CO.,LTD + +@@ -66643,6 +67201,9 @@ OUI:CCD811* + OUI:CCD9E9* + ID_OUI_FROM_DATABASE=SCR Engineers Ltd. + ++OUI:CCE1D5* ++ ID_OUI_FROM_DATABASE=Buffalo Inc. ++ + OUI:CCE798* + ID_OUI_FROM_DATABASE=My Social Stuff + +@@ -66778,6 +67339,12 @@ OUI:D059C3* + OUI:D05A0F* + ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD + ++OUI:D05AF1* ++ ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd ++ ++OUI:D05FB8* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:D05FCE* + ID_OUI_FROM_DATABASE=Hitachi Data Systems + +@@ -66799,6 +67366,9 @@ OUI:D0699E* + OUI:D069D0* + ID_OUI_FROM_DATABASE=Verto Medical Solutions, LLC + ++OUI:D072DC* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:D0737F* + ID_OUI_FROM_DATABASE=Mini-Circuits + +@@ -66811,6 +67381,9 @@ OUI:D073D5* + OUI:D075BE* + ID_OUI_FROM_DATABASE=Reno A&E + ++OUI:D07650* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:D07AB5* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -66895,6 +67468,9 @@ OUI:D0C42F* + OUI:D0C789* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:D0C7C0* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:D0CDE1* + ID_OUI_FROM_DATABASE=Scientech Electronics + +@@ -67018,6 +67594,9 @@ OUI:D41F0C* + OUI:D4206D* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:D42122* ++ ID_OUI_FROM_DATABASE=Sercomm Corporation ++ + OUI:D4223F* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + +@@ -67099,6 +67678,9 @@ OUI:D464F7* + OUI:D466A8* + ID_OUI_FROM_DATABASE=Riedo Networks GmbH + ++OUI:D46761* ++ ID_OUI_FROM_DATABASE=SAHAB TECHNOLOGY ++ + OUI:D467E7* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + +@@ -67168,6 +67750,9 @@ OUI:D49524* + OUI:D496DF* + ID_OUI_FROM_DATABASE=SUNGJIN C&T CO.,LTD + ++OUI:D4970B* ++ ID_OUI_FROM_DATABASE=XIAOMI CORPORATION ++ + OUI:D49A20* + ID_OUI_FROM_DATABASE=Apple + +@@ -67207,6 +67792,9 @@ OUI:D4AE52* + OUI:D4B110* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:D4B43E* ++ ID_OUI_FROM_DATABASE=Messcomp Datentechnik GmbH ++ + OUI:D4BED9* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -67237,6 +67825,9 @@ OUI:D4CBAF* + OUI:D4CEB8* + ID_OUI_FROM_DATABASE=Enatel LTD + ++OUI:D4CFF9* ++ ID_OUI_FROM_DATABASE=Shenzhen Sen5 Technology Co., Ltd. ++ + OUI:D4D184* + ID_OUI_FROM_DATABASE=ADB Broadband Italia + +@@ -67258,6 +67849,9 @@ OUI:D4D919* + OUI:D4DF57* + ID_OUI_FROM_DATABASE=Alpinion Medical Systems + ++OUI:D4E08E* ++ ID_OUI_FROM_DATABASE=ValueHD Corporation ++ + OUI:D4E32C* + ID_OUI_FROM_DATABASE=S. Siedle & Sohne + +@@ -67375,6 +67969,9 @@ OUI:D84606* + OUI:D8490B* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:D8492F* ++ ID_OUI_FROM_DATABASE=CANON INC. ++ + OUI:D84B2A* + ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. + +@@ -67397,7 +67994,7 @@ OUI:D85D84* + ID_OUI_FROM_DATABASE=CAx soft GmbH + + OUI:D86194* +- ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido ++ ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido + + OUI:D862DB* + ID_OUI_FROM_DATABASE=Eno Inc. +@@ -67438,6 +68035,9 @@ OUI:D87988* + OUI:D87CDD* + ID_OUI_FROM_DATABASE=SANIX INCORPORATED + ++OUI:D87EB1* ++ ID_OUI_FROM_DATABASE=x.o.ware, inc. ++ + OUI:D881CE* + ID_OUI_FROM_DATABASE=AHN INC. + +@@ -67462,6 +68062,9 @@ OUI:D8973B* + OUI:D89760* + ID_OUI_FROM_DATABASE=C2 Development, Inc. + ++OUI:D8977C* ++ ID_OUI_FROM_DATABASE=Grey Innovation ++ + OUI:D89D67* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -67525,6 +68128,9 @@ OUI:D8C7C8* + OUI:D8C99D* + ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED + ++OUI:D8CF9C* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:D8D1CB* + ID_OUI_FROM_DATABASE=Apple + +@@ -67555,6 +68161,9 @@ OUI:D8DD5F* + OUI:D8DDFD* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:D8DECE* ++ ID_OUI_FROM_DATABASE=ISUNG CO.,LTD ++ + OUI:D8DF0D* + ID_OUI_FROM_DATABASE=beroNet GmbH + +@@ -67660,6 +68269,9 @@ OUI:DC3350* + OUI:DC37D2* + ID_OUI_FROM_DATABASE=Hunan HKT Electronic Technology Co., Ltd + ++OUI:DC38E1* ++ ID_OUI_FROM_DATABASE=Juniper networks ++ + OUI:DC3A5E* + ID_OUI_FROM_DATABASE=Roku, Inc + +@@ -67693,6 +68305,9 @@ OUI:DC5E36* + OUI:DC647C* + ID_OUI_FROM_DATABASE=C.R.S. iiMotion GmbH + ++OUI:DC663A* ++ ID_OUI_FROM_DATABASE=Apacer Technology Inc. ++ + OUI:DC6F00* + ID_OUI_FROM_DATABASE=Livescribe, Inc. + +@@ -67816,6 +68431,9 @@ OUI:DCE71C* + OUI:DCF05D* + ID_OUI_FROM_DATABASE=Letta Teknoloji + ++OUI:DCF110* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:DCF755* + ID_OUI_FROM_DATABASE=SITRONIK + +@@ -67939,6 +68557,9 @@ OUI:E063E5* + OUI:E064BB* + ID_OUI_FROM_DATABASE=DigiView S.r.l. + ++OUI:E06678* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:E067B3* + ID_OUI_FROM_DATABASE=C-Data Technology Co., Ltd + +@@ -68071,6 +68692,9 @@ OUI:E0CA94* + OUI:E0CB4E* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + ++OUI:E0CBEE* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:E0CEC3* + ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP + +@@ -68152,6 +68776,9 @@ OUI:E40439* + OUI:E4115B* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:E41218* ++ ID_OUI_FROM_DATABASE=ShenZhen Rapoo Technology Co., Ltd. ++ + OUI:E4121D* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -68341,6 +68968,9 @@ OUI:E4C806* + OUI:E4CE8F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:E4D332* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:E4D3F1* + ID_OUI_FROM_DATABASE=Cisco + +@@ -68371,6 +69001,9 @@ OUI:E4F365* + OUI:E4F3E3* + ID_OUI_FROM_DATABASE=Shanghai iComhome Co.,Ltd. + ++OUI:E4F4C6* ++ ID_OUI_FROM_DATABASE=NETGEAR ++ + OUI:E4F7A1* + ID_OUI_FROM_DATABASE=Datafox GmbH + +@@ -68671,6 +69304,9 @@ OUI:E8EADA* + OUI:E8EDF3* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:E8EF89* ++ ID_OUI_FROM_DATABASE=OPMEX Tech. ++ + OUI:E8F1B0* + ID_OUI_FROM_DATABASE=SAGEMCOM SAS + +@@ -68719,6 +69355,9 @@ OUI:EC2AF0* + OUI:EC2C49* + ID_OUI_FROM_DATABASE=University of Tokyo + ++OUI:EC2E4E* ++ ID_OUI_FROM_DATABASE=HITACHI-LG DATA STORAGE INC ++ + OUI:EC3091* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -68881,6 +69520,9 @@ OUI:ECE09B* + OUI:ECE1A9* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:ECE512* ++ ID_OUI_FROM_DATABASE=tado GmbH ++ + OUI:ECE555* + ID_OUI_FROM_DATABASE=Hirschmann Automation + +@@ -68909,7 +69551,7 @@ OUI:ECF35B* + ID_OUI_FROM_DATABASE=Nokia Corporation + + OUI:ECF4BB* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:ECF72B* + ID_OUI_FROM_DATABASE=HD DIGITAL TECH CO., LTD. +@@ -68948,7 +69590,7 @@ OUI:F01C13* + ID_OUI_FROM_DATABASE=LG Electronics + + OUI:F01FAF* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F0219D* + ID_OUI_FROM_DATABASE=Cal-Comp Electronics & Communications Company Ltd. +@@ -69085,6 +69727,9 @@ OUI:F08A28* + OUI:F08BFE* + ID_OUI_FROM_DATABASE=COSTEL.,CO.LTD + ++OUI:F08CFB* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:F08EDB* + ID_OUI_FROM_DATABASE=VeloCloud Networks + +@@ -69241,6 +69886,9 @@ OUI:F4044C* + OUI:F4068D* + ID_OUI_FROM_DATABASE=devolo AG + ++OUI:F406A5* ++ ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. ++ + OUI:F40B93* + ID_OUI_FROM_DATABASE=Research In Motion + +@@ -69427,6 +70075,9 @@ OUI:F4B7E2* + OUI:F4BD7C* + ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD + ++OUI:F4C447* ++ ID_OUI_FROM_DATABASE=Coagent International Enterprise Limited ++ + OUI:F4C6D7* + ID_OUI_FROM_DATABASE=blackned GmbH + +@@ -69478,6 +70129,9 @@ OUI:F4F15A* + OUI:F4F5A5* + ID_OUI_FROM_DATABASE=Nokia corporation + ++OUI:F4F5E8* ++ ID_OUI_FROM_DATABASE=Google ++ + OUI:F4F951* + ID_OUI_FROM_DATABASE=Apple + +@@ -69502,6 +70156,9 @@ OUI:F80BD0* + OUI:F80CF3* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:F80D43* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. ++ + OUI:F80DEA* + ID_OUI_FROM_DATABASE=ZyCast Technology Inc. + +@@ -69586,6 +70243,9 @@ OUI:F8472D* + OUI:F84897* + ID_OUI_FROM_DATABASE=Hitachi, Ltd. + ++OUI:F84A73* ++ ID_OUI_FROM_DATABASE=EUMTECH CO., LTD ++ + OUI:F84A7F* + ID_OUI_FROM_DATABASE=Innometriks Inc + +@@ -69622,6 +70282,12 @@ OUI:F85F2A* + OUI:F862AA* + ID_OUI_FROM_DATABASE=xn systems + ++OUI:F86601* ++ ID_OUI_FROM_DATABASE=Suzhou Chi-tek information technology Co., Ltd ++ ++OUI:F866D1* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. ++ + OUI:F866F2* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -69710,13 +70376,13 @@ OUI:F8AC6D* + ID_OUI_FROM_DATABASE=Deltenna Ltd + + OUI:F8B156* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F8B599* + ID_OUI_FROM_DATABASE=Guangzhou CHNAVS Digital Technology Co.,Ltd + + OUI:F8BC12* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F8C001* + ID_OUI_FROM_DATABASE=Juniper Networks +@@ -69764,7 +70430,7 @@ OUI:F8DB7F* + ID_OUI_FROM_DATABASE=HTC Corporation + + OUI:F8DB88* +- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:F8DC7A* + ID_OUI_FROM_DATABASE=Variscite LTD +@@ -69892,6 +70558,9 @@ OUI:FC1FC0* + OUI:FC229C* + ID_OUI_FROM_DATABASE=Han Kyung I Net Co.,Ltd. + ++OUI:FC2325* ++ ID_OUI_FROM_DATABASE=EosTek (Shenzhen) Co., Ltd. ++ + OUI:FC253F* + ID_OUI_FROM_DATABASE=Apple + +@@ -69928,6 +70597,9 @@ OUI:FC455F* + OUI:FC48EF* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:FC4AE9* ++ ID_OUI_FROM_DATABASE=Castlenet Technology Inc. ++ + OUI:FC4B1C* + ID_OUI_FROM_DATABASE=INTERSENSOR S.R.L. + +@@ -70030,6 +70702,9 @@ OUI:FCBBA1* + OUI:FCC23D* + ID_OUI_FROM_DATABASE=Atmel Corporation + ++OUI:FCC2DE* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:FCC734* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -70048,6 +70723,9 @@ OUI:FCD4F2* + OUI:FCD4F6* + ID_OUI_FROM_DATABASE=Messana Air.Ray Conditioning s.r.l. + ++OUI:FCD5D9* ++ ID_OUI_FROM_DATABASE=Shenzhen SDMC Technology Co., Ltd. ++ + OUI:FCD6BD* + ID_OUI_FROM_DATABASE=Robert Bosch GmbH + +@@ -70060,6 +70738,9 @@ OUI:FCDB96* + OUI:FCDD55* + ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd + ++OUI:FCE186* ++ ID_OUI_FROM_DATABASE=A3M Co., LTD ++ + OUI:FCE192* + ID_OUI_FROM_DATABASE=Sichuan Jinwangtong Electronic Science&Technology Co,.Ltd + +@@ -70078,12 +70759,18 @@ OUI:FCE892* + OUI:FCEDB9* + ID_OUI_FROM_DATABASE=Arrayent + ++OUI:FCF152* ++ ID_OUI_FROM_DATABASE=Sony Corporation ++ + OUI:FCF1CD* + ID_OUI_FROM_DATABASE=OPTEX-FA CO.,LTD. + + OUI:FCF528* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + ++OUI:FCF647* ++ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. ++ + OUI:FCF8AE* + ID_OUI_FROM_DATABASE=Intel Corporate + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 7f833e3..371a685 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -890,6 +890,9 @@ pci:v00001000d0000005Bsv00001000sd00009295* + pci:v00001000d0000005Bsv00001014sd0000040B* + ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller + ++pci:v00001000d0000005Bsv00001014sd0000040C* ++ ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller ++ + pci:v00001000d0000005Bsv00001014sd00000412* + ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller + +@@ -917,6 +920,9 @@ pci:v00001000d0000005Bsv00001028sd00001F37* + pci:v00001000d0000005Bsv00001028sd00001F38* + ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) + ++pci:v00001000d0000005Bsv000015D9sd00000690* ++ ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB ++ + pci:v00001000d0000005Bsv00008086sd00003510* + ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller + +@@ -950,6 +956,12 @@ pci:v00001000d0000005Dsv00001028sd00001F49* + pci:v00001000d0000005Dsv00001028sd00001F4A* + ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) + ++pci:v00001000d0000005Dsv000017AAsd00001052* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i ++ ++pci:v00001000d0000005Dsv000017AAsd00001053* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix ++ + pci:v00001000d0000005E* + ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS + +@@ -1163,6 +1175,9 @@ pci:v00001000d00000073sv000015D9sd00000400* + pci:v00001000d00000073sv00001734sd00001177* + ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) + ++pci:v00001000d00000073sv000017AAsd00001051* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i ++ + pci:v00001000d00000073sv00008086sd0000350D* + ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller + +@@ -1598,6 +1613,9 @@ pci:v00001000d00001960sv00008086sd00000520* + pci:v00001000d00001960sv00008086sd00000523* + ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 + ++pci:v00001000d00003050* ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 ++ + pci:v00001000d00006001* + ID_MODEL_FROM_DATABASE=DX1 Multiformat Broadcast HD/SD Encoder/Decoder + +@@ -1665,7 +1683,7 @@ pci:v00001002d0000130E* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d0000130F* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] + + pci:v00001002d00001310* + ID_MODEL_FROM_DATABASE=Kaveri +@@ -1673,9 +1691,12 @@ pci:v00001002d00001310* + pci:v00001002d00001311* + ID_MODEL_FROM_DATABASE=Kaveri + +-pci:v00001002d00001313* ++pci:v00001002d00001312* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d00001313* ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] ++ + pci:v00001002d00001314* + ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio + +@@ -1686,6 +1707,9 @@ pci:v00001002d00001315* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d00001316* ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] ++ ++pci:v00001002d00001317* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d0000131B* +@@ -1694,6 +1718,9 @@ pci:v00001002d0000131B* + pci:v00001002d0000131C* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d0000131D* ++ ID_MODEL_FROM_DATABASE=Kaveri ++ + pci:v00001002d00001714* + ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] + +@@ -4176,20 +4203,41 @@ pci:v00001002d00006603* + ID_MODEL_FROM_DATABASE=Mars + + pci:v00001002d00006604* +- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M265] ++ ID_MODEL_FROM_DATABASE=Opal XT [Radeon R7 M265] + + pci:v00001002d00006605* +- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M260] ++ ID_MODEL_FROM_DATABASE=Opal PRO [Radeon R7 M260] + + pci:v00001002d00006606* + ID_MODEL_FROM_DATABASE=Mars XTX [Radeon HD 8790M] + + pci:v00001002d00006607* +- ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M] ++ ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M / R5 M240] + + pci:v00001002d00006610* + ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] + ++pci:v00001002d00006610sv00001019sd00000030* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001028sd00002120* ++ ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ++pci:v00001002d00006610sv00001028sd00002322* ++ ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ++pci:v00001002d00006610sv00001462sd00002910* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001462sd00002911* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001642sd00003C81* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ++pci:v00001002d00006610sv00001642sd00003C91* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ + pci:v00001002d00006611* + ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] + +@@ -4278,13 +4326,13 @@ pci:v00001002d00006663sv00001025sd00000846* + ID_MODEL_FROM_DATABASE=Radeon HD 8570A + + pci:v00001002d00006664* +- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M200 Series] ++ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] + + pci:v00001002d00006665* +- ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M200 Series] ++ ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] + + pci:v00001002d00006667* +- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M200 Series] ++ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] + + pci:v00001002d0000666F* + ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] +@@ -5003,6 +5051,9 @@ pci:v00001002d00006759sv00001B0Asd000090B5* + pci:v00001002d00006759sv00001B0Asd000090B6* + ID_MODEL_FROM_DATABASE=Radeon HD 7570 + ++pci:v00001002d0000675B* ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] ++ + pci:v00001002d0000675D* + ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 7570] + +@@ -5801,6 +5852,9 @@ pci:v00001002d00006798sv00001092sd00003000* + pci:v00001002d00006798sv00001458sd00002261* + ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] + ++pci:v00001002d00006798sv00001462sd00002774* ++ ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE ++ + pci:v00001002d00006798sv00001682sd00003211* + ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition + +@@ -5823,7 +5877,7 @@ pci:v00001002d00006799* + ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] + + pci:v00001002d0000679A* +- ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950] ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] + + pci:v00001002d0000679Asv00001002sd00000B01* + ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM +@@ -5903,6 +5957,9 @@ pci:v00001002d00006801* + pci:v00001002d00006801sv00001002sd00000124* + ID_MODEL_FROM_DATABASE=Radeon HD 8970M + ++pci:v00001002d00006801sv00001462sd00001117* ++ ID_MODEL_FROM_DATABASE=Radeon R9 M290X ++ + pci:v00001002d00006801sv00008086sd00002110* + ID_MODEL_FROM_DATABASE=Radeon HD 8970M + +@@ -5966,6 +6023,12 @@ pci:v00001002d00006821* + pci:v00001002d00006821sv00001002sd0000031E* + ID_MODEL_FROM_DATABASE=FirePro SX4000 + ++pci:v00001002d00006821sv00001028sd000005CC* ++ ID_MODEL_FROM_DATABASE=FirePro M5100 ++ ++pci:v00001002d00006821sv00001028sd000015CC* ++ ID_MODEL_FROM_DATABASE=FirePro M5100 ++ + pci:v00001002d00006822* + ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] + +@@ -6039,7 +6102,7 @@ pci:v00001002d0000683B* + ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7700 Series] + + pci:v00001002d0000683D* +- ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] + + pci:v00001002d0000683Dsv00001002sd00000030* + ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM +@@ -6050,8 +6113,14 @@ pci:v00001002d0000683Dsv00001019sd00000030* + pci:v00001002d0000683Dsv0000103Csd00006890* + ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM + ++pci:v00001002d0000683Dsv00001043sd00008760* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ++pci:v00001002d0000683Dsv0000174Bsd00008304* ++ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ + pci:v00001002d0000683F* +- ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750] ++ ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] + + pci:v00001002d00006840* + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] +@@ -8891,6 +8960,9 @@ pci:v00001002d0000985E* + pci:v00001002d0000985F* + ID_MODEL_FROM_DATABASE=Mullins + ++pci:v00001002d00009900* ++ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660G] ++ + pci:v00001002d00009901* + ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660D] + +@@ -9498,7 +9570,7 @@ pci:v00001011d0000000D* + ID_MODEL_FROM_DATABASE=PBXGB [TGA2] + + pci:v00001011d0000000F* +- ID_MODEL_FROM_DATABASE=PCI-to-PDQ Interface Chip [PFI] ++ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] + + pci:v00001011d0000000Fsv00001011sd0000DEF1* + ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) +@@ -9596,6 +9668,9 @@ pci:v00001011d00000019sv00001186sd00001102* + pci:v00001011d00000019sv00001186sd00001112* + ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet + ++pci:v00001011d00000019sv000011F0sd00004235* ++ ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] ++ + pci:v00001011d00000019sv00001259sd00002800* + ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet + +@@ -9761,6 +9836,9 @@ pci:v00001013d000000B0* + pci:v00001013d000000B8* + ID_MODEL_FROM_DATABASE=GD 5446 + ++pci:v00001013d000000B8sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001013d000000BC* + ID_MODEL_FROM_DATABASE=GD 5480 + +@@ -10487,6 +10565,9 @@ pci:v0000101Ed00001960sv00001028sd00000511* + pci:v0000101Ed00001960sv0000103Csd000060E7* + ID_MODEL_FROM_DATABASE=NetRAID-1M + ++pci:v0000101Ed00001960sv0000103Csd000060E8* ++ ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] ++ + pci:v0000101Ed00009010* + ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller + +@@ -10811,6 +10892,9 @@ pci:v00001022d00002003* + pci:v00001022d00002020* + ID_MODEL_FROM_DATABASE=53c974 [PCscsi] + ++pci:v00001022d00002020sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001022d00002040* + ID_MODEL_FROM_DATABASE=79c974 + +@@ -12263,6 +12347,9 @@ pci:v0000102Bd00002007* + pci:v0000102Bd00002527* + ID_MODEL_FROM_DATABASE=Millennium G550 + ++pci:v0000102Bd00002527sv0000102Bsd00000F42* ++ ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI ++ + pci:v0000102Bd00002527sv0000102Bsd00000F83* + ID_MODEL_FROM_DATABASE=Millennium G550 + +@@ -12515,6 +12602,9 @@ pci:v0000102Bd00004949* + pci:v0000102Bd00004949sv0000102Bsd00000010* + ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber + ++pci:v0000102Bd00004949sv0000102Bsd00000011* ++ ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber ++ + pci:v0000102Bd00004949sv0000102Bsd00000020* + ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber + +@@ -12527,6 +12617,18 @@ pci:v0000102Bd00004949sv0000102Bsd00000040* + pci:v0000102Bd00004949sv0000102Bsd00000050* + ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber + ++pci:v0000102Bd00004949sv0000102Bsd00001010* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber ++ ++pci:v0000102Bd00004949sv0000102Bsd00001015* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber ++ ++pci:v0000102Bd00004949sv0000102Bsd00001020* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber ++ ++pci:v0000102Bd00004949sv0000102Bsd00001050* ++ ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber ++ + pci:v0000102Bd00004CDC* + ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator + +@@ -12911,6 +13013,9 @@ pci:v00001033d00000194sv00001028sd000004DA* + pci:v00001033d00000194sv00001043sd00008413* + ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard + ++pci:v00001033d00000194sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001033d00000194sv00001B96sd00000001* + ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card + +@@ -13853,9 +13958,6 @@ pci:v0000103Cd00004037* + pci:v0000103Cd0000403B* + ID_MODEL_FROM_DATABASE=PCIe Root Port + +-pci:v0000103Cd000060E8* +- ID_MODEL_FROM_DATABASE=NetRAID-2M : ZX1/M (OEM AMI MegaRAID 493) +- + pci:v0000103E* + ID_VENDOR_FROM_DATABASE=Solliday Engineering + +@@ -14159,6 +14261,9 @@ pci:v0000104Ad00000010* + pci:v0000104Ad00000010sv0000104Asd00004018* + ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) + ++pci:v0000104Ad00000010sv00001681sd00000010* ++ ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] ++ + pci:v0000104Ad00000010sv00001681sd00000028* + ID_MODEL_FROM_DATABASE=3D Prophet 4000XT + +@@ -14426,6 +14531,9 @@ pci:v0000104Cd00008022sv0000104Csd00008023* + pci:v0000104Cd00008023* + ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] + ++pci:v0000104Cd00008023sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v0000104Cd00008023sv0000103Csd0000088C* + ID_MODEL_FROM_DATABASE=NC8000 laptop + +@@ -15233,6 +15341,9 @@ pci:v00001054d0000302C* + pci:v00001054d0000302D* + ID_MODEL_FROM_DATABASE=M001 PCI Express Switch Downstream Port + ++pci:v00001054d00003070* ++ ID_MODEL_FROM_DATABASE=Hitachi FIVE-FX Fibre Channel to PCIe HBA ++ + pci:v00001054d00003505* + ID_MODEL_FROM_DATABASE=SH7751 PCI Controller (PCIC) + +@@ -16208,6 +16319,9 @@ pci:v0000106Bd0000003E* + pci:v0000106Bd0000003F* + ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB + ++pci:v0000106Bd0000003Fsv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v0000106Bd00000040* + ID_MODEL_FROM_DATABASE=K2 KeyLargo USB + +@@ -16517,6 +16631,9 @@ pci:v00001077d00002422sv0000103Csd000012DD* + pci:v00001077d00002432* + ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA + ++pci:v00001077d00002432sv0000103Csd00007040* ++ ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] ++ + pci:v00001077d00002532* + ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA + +@@ -16815,7 +16932,7 @@ pci:v0000108Dd00000002* + ID_MODEL_FROM_DATABASE=16/4 Token Ring + + pci:v0000108Dd00000004* +- ID_MODEL_FROM_DATABASE=RapidFire 3139 Token-Ring 16/4 PCI Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter + + pci:v0000108Dd00000004sv0000108Dsd00000004* + ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter +@@ -17294,6 +17411,30 @@ pci:v00001093d00002CC0* + pci:v00001093d00002DB0* + ID_MODEL_FROM_DATABASE=PCI-6608 + ++pci:v00001093d0000702C* ++ ID_MODEL_FROM_DATABASE=PXI-7831R ++ ++pci:v00001093d0000702D* ++ ID_MODEL_FROM_DATABASE=PCI-7831R ++ ++pci:v00001093d0000702E* ++ ID_MODEL_FROM_DATABASE=PXI-7811R ++ ++pci:v00001093d0000702F* ++ ID_MODEL_FROM_DATABASE=PCI-7811R ++ ++pci:v00001093d00007055* ++ ID_MODEL_FROM_DATABASE=PXI-7830R ++ ++pci:v00001093d00007056* ++ ID_MODEL_FROM_DATABASE=PCI-7830R ++ ++pci:v00001093d00007074* ++ ID_MODEL_FROM_DATABASE=PXI-7833R ++ ++pci:v00001093d00007083* ++ ID_MODEL_FROM_DATABASE=PCI-7833R ++ + pci:v00001093d00007085* + ID_MODEL_FROM_DATABASE=PCI-6509 + +@@ -17369,6 +17510,9 @@ pci:v00001093d0000714C* + pci:v00001093d0000714D* + ID_MODEL_FROM_DATABASE=PCI-5114 + ++pci:v00001093d00007152* ++ ID_MODEL_FROM_DATABASE=PCI-5640R ++ + pci:v00001093d0000716C* + ID_MODEL_FROM_DATABASE=PCI-6225 + +@@ -17378,6 +17522,12 @@ pci:v00001093d0000717D* + pci:v00001093d0000717F* + ID_MODEL_FROM_DATABASE=PCIe-6259 + ++pci:v00001093d00007193* ++ ID_MODEL_FROM_DATABASE=PXI-7813R ++ ++pci:v00001093d00007194* ++ ID_MODEL_FROM_DATABASE=PCI-7813R ++ + pci:v00001093d000071BC* + ID_MODEL_FROM_DATABASE=PCI-6221 (37pin) + +@@ -17420,6 +17570,51 @@ pci:v00001093d0000734A* + pci:v00001093d0000737D* + ID_MODEL_FROM_DATABASE=PXI-5124EX + ++pci:v00001093d00007384* ++ ID_MODEL_FROM_DATABASE=PXI-7851R ++ ++pci:v00001093d00007385* ++ ID_MODEL_FROM_DATABASE=PXI-7852R ++ ++pci:v00001093d00007386* ++ ID_MODEL_FROM_DATABASE=PCIe-7851R ++ ++pci:v00001093d00007387* ++ ID_MODEL_FROM_DATABASE=PCIe-7852R ++ ++pci:v00001093d00007390* ++ ID_MODEL_FROM_DATABASE=PXI-7841R ++ ++pci:v00001093d00007391* ++ ID_MODEL_FROM_DATABASE=PXI-7842R ++ ++pci:v00001093d00007392* ++ ID_MODEL_FROM_DATABASE=PXI-7853R ++ ++pci:v00001093d00007393* ++ ID_MODEL_FROM_DATABASE=PCIe-7841R ++ ++pci:v00001093d00007394* ++ ID_MODEL_FROM_DATABASE=PCIe-7842R ++ ++pci:v00001093d000073A5* ++ ID_MODEL_FROM_DATABASE=PXIe-5641R ++ ++pci:v00001093d000073D5* ++ ID_MODEL_FROM_DATABASE=PXI-7951R ++ ++pci:v00001093d000073D6* ++ ID_MODEL_FROM_DATABASE=PXI-7952R ++ ++pci:v00001093d000073D7* ++ ID_MODEL_FROM_DATABASE=PXI-7953R ++ ++pci:v00001093d000073E1* ++ ID_MODEL_FROM_DATABASE=PXI-7854R ++ ++pci:v00001093d000073EC* ++ ID_MODEL_FROM_DATABASE=PXI-7954R ++ + pci:v00001093d000073F0* + ID_MODEL_FROM_DATABASE=PXI-5153 + +@@ -17438,6 +17633,18 @@ pci:v00001093d00007460* + pci:v00001093d00007461* + ID_MODEL_FROM_DATABASE=PCI-5154EX + ++pci:v00001093d00007539* ++ ID_MODEL_FROM_DATABASE=NI 9157 ++ ++pci:v00001093d0000753A* ++ ID_MODEL_FROM_DATABASE=NI 9159 ++ ++pci:v00001093d00007626* ++ ID_MODEL_FROM_DATABASE=NI 9154 ++ ++pci:v00001093d00007627* ++ ID_MODEL_FROM_DATABASE=NI 9155 ++ + pci:v00001093d0000B001* + ID_MODEL_FROM_DATABASE=IMAQ-PCI-1408 + +@@ -17469,7 +17676,28 @@ pci:v00001093d0000B091* + ID_MODEL_FROM_DATABASE=IMAQ-PXI-1411 + + pci:v00001093d0000C4C4* +- ID_MODEL_FROM_DATABASE=PXIe-4353/5160 ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device ++ ++pci:v00001093d0000C4C4sv00001093sd000074B2* ++ ID_MODEL_FROM_DATABASE=PXIe-4353 ++ ++pci:v00001093d0000C4C4sv00001093sd000074D0* ++ ID_MODEL_FROM_DATABASE=PXIe-7961R ++ ++pci:v00001093d0000C4C4sv00001093sd000074E2* ++ ID_MODEL_FROM_DATABASE=PXIe-7962R ++ ++pci:v00001093d0000C4C4sv00001093sd000074E3* ++ ID_MODEL_FROM_DATABASE=PXIe-7965R ++ ++pci:v00001093d0000C4C4sv00001093sd00007553* ++ ID_MODEL_FROM_DATABASE=PCIe-1473R ++ ++pci:v00001093d0000C4C4sv00001093sd000075CE* ++ ID_MODEL_FROM_DATABASE=PXIe-7966R ++ ++pci:v00001093d0000C4C4sv00001093sd000076B7* ++ ID_MODEL_FROM_DATABASE=PXIe-7975R + + pci:v00001093d0000C4C4sv00001093sd000076D0* + ID_MODEL_FROM_DATABASE=PXIe-5160 +@@ -17696,9 +17924,6 @@ pci:v0000109Ed0000036Esv00001461sd00000761* + pci:v0000109Ed0000036Esv00001461sd00000771* + ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 + +-pci:v0000109Ed0000036Esv00001464sd0000AA00* +- ID_MODEL_FROM_DATABASE=iTuner Spectra8 +- + pci:v0000109Ed0000036Esv000014F1sd00000001* + ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC + +@@ -18152,6 +18377,9 @@ pci:v000010A9d00008001* + pci:v000010A9d00008002* + ID_MODEL_FROM_DATABASE=G-net NT + ++pci:v000010A9d0000802B* ++ ID_MODEL_FROM_DATABASE=REACT external interrupt controller ++ + pci:v000010AA* + ID_VENDOR_FROM_DATABASE=ACC Microelectronics + +@@ -18485,6 +18713,9 @@ pci:v000010B5d00008732* + pci:v000010B5d00008734* + ID_MODEL_FROM_DATABASE=PEX 8734 32-lane, 8-Port PCI Express Gen 3 (8.0GT/s) Switch + ++pci:v000010B5d00008747* ++ ID_MODEL_FROM_DATABASE=PEX 8747 48-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch ++ + pci:v000010B5d000087B0* + ID_MODEL_FROM_DATABASE=PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch + +@@ -18969,10 +19200,10 @@ pci:v000010B6d00000009sv000010B6sd00000009* + ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode + + pci:v000010B6d0000000A* +- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode ++ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner + + pci:v000010B6d0000000Asv000010B6sd0000000A* +- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode ++ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner + + pci:v000010B6d0000000B* + ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 +@@ -19001,6 +19232,9 @@ pci:v000010B7* + pci:v000010B7d00000001* + ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) + ++pci:v000010B7d00000001sv00009850sd00000001* ++ ID_MODEL_FROM_DATABASE=3c985B-SX ++ + pci:v000010B7d00000013* + ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) + +@@ -21042,10 +21276,7 @@ pci:v000010DEd000000CC* + ID_MODEL_FROM_DATABASE=NV41GLM [Quadro FX Go1400] + + pci:v000010DEd000000CD* +- ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 3450/4000 SDI] +- +-pci:v000010DEd000000CDsv000010DEsd0000029B* +- ID_MODEL_FROM_DATABASE=wx4300 Workstation ++ ID_MODEL_FROM_DATABASE=NV42GL [Quadro FX 3450/4000 SDI] + + pci:v000010DEd000000CE* + ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 1400] +@@ -24858,7 +25089,7 @@ pci:v000010DEd0000086E* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9100M G] + + pci:v000010DEd0000086F* +- ID_MODEL_FROM_DATABASE=C79 [GeForce 9200M G] ++ ID_MODEL_FROM_DATABASE=MCP79 [GeForce 8200M G] + + pci:v000010DEd00000870* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] +@@ -26006,6 +26237,9 @@ pci:v000010DEd00001005sv00003842sd00002795* + pci:v000010DEd0000100A* + ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] + ++pci:v000010DEd0000100C* ++ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX Titan Black] ++ + pci:v000010DEd0000101F* + ID_MODEL_FROM_DATABASE=GK110GL [Tesla K20] + +@@ -26582,6 +26816,9 @@ pci:v000010DEd00001140sv00001462sd000010B8* + pci:v000010DEd00001140sv00001462sd000010E9* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + ++pci:v000010DEd00001140sv00001462sd00001116* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ + pci:v000010DEd00001140sv00001462sd0000AA33* + ID_MODEL_FROM_DATABASE=GeForce 720M + +@@ -26750,6 +26987,9 @@ pci:v000010DEd00001140sv00001B0Asd00002202* + pci:v000010DEd00001180* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] + ++pci:v000010DEd00001180sv00001043sd000083F1* ++ ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 ++ + pci:v000010DEd00001180sv00003842sd00003682* + ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition + +@@ -26804,6 +27044,15 @@ pci:v000010DEd0000118F* + pci:v000010DEd00001193* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] + ++pci:v000010DEd00001198* ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] ++ ++pci:v000010DEd00001199* ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 870M] ++ ++pci:v000010DEd0000119A* ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 860M] ++ + pci:v000010DEd0000119D* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 775M Mac Edition] + +@@ -27065,6 +27314,9 @@ pci:v000010DEd00001251* + pci:v000010DEd00001280* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 635] + ++pci:v000010DEd00001281* ++ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 710] ++ + pci:v000010DEd00001282* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 640 Rev. 2] + +@@ -27107,6 +27359,9 @@ pci:v000010DEd00001294* + pci:v000010DEd00001295* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] + ++pci:v000010DEd00001296* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] ++ + pci:v000010DEd00001298* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 720M] + +@@ -27119,12 +27374,48 @@ pci:v000010DEd000012B9* + pci:v000010DEd000012BA* + ID_MODEL_FROM_DATABASE=GK208GLM [Quadro K510M] + ++pci:v000010DEd00001340* ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] ++ ++pci:v000010DEd00001341* ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] ++ ++pci:v000010DEd00001380* ++ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] ++ ++pci:v000010DEd00001381* ++ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750] ++ ++pci:v000010DEd00001382* ++ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 745] ++ ++pci:v000010DEd00001390* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce 845M] ++ ++pci:v000010DEd00001391* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] ++ ++pci:v000010DEd00001392* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] ++ ++pci:v000010DEd00001393* ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] ++ + pci:v000010DF* + ID_VENDOR_FROM_DATABASE=Emulex Corporation + + pci:v000010DFd00000720* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) + ++pci:v000010DFd00000720sv000017AAsd00001056* ++ ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric ++ ++pci:v000010DFd00000720sv000017AAsd00001057* ++ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric ++ ++pci:v000010DFd00000720sv000017AAsd00001059* ++ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric ++ + pci:v000010DFd00000722* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) + +@@ -27167,6 +27458,12 @@ pci:v000010DFd0000E208* + pci:v000010DFd0000E220* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) + ++pci:v000010DFd0000E220sv000017AAsd00001054* ++ ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric ++ ++pci:v000010DFd0000E220sv000017AAsd00001055* ++ ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric ++ + pci:v000010DFd0000E240* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) + +@@ -27573,7 +27870,7 @@ pci:v000010ECd00008029sv00001259sd00002400* + ID_MODEL_FROM_DATABASE=AT-2400 + + pci:v000010ECd00008029sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine + + pci:v000010ECd00008129* + ID_MODEL_FROM_DATABASE=RTL-8129 +@@ -27603,7 +27900,7 @@ pci:v000010ECd00008138sv000010ECsd00008138* + ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter + + pci:v000010ECd00008139* +- ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter + + pci:v000010ECd00008139sv00000357sd0000000A* + ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 +@@ -27638,11 +27935,14 @@ pci:v000010ECd00008139sv00001071sd00008160* + pci:v000010ECd00008139sv000010BDsd00000320* + ID_MODEL_FROM_DATABASE=EP-320X-R + ++pci:v000010ECd00008139sv000010ECsd00008139* ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter ++ + pci:v000010ECd00008139sv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop + + pci:v000010ECd00008139sv00001113sd0000EC01* +- ID_MODEL_FROM_DATABASE=FNC-0107TX ++ ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX + + pci:v000010ECd00008139sv00001186sd00001300* + ID_MODEL_FROM_DATABASE=DFE-538TX +@@ -27734,6 +28034,9 @@ pci:v000010ECd00008139sv0000187Esd00003303* + pci:v000010ECd00008139sv00001904sd00008139* + ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter + ++pci:v000010ECd00008139sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v000010ECd00008139sv00002646sd00000001* + ID_MODEL_FROM_DATABASE=KNE120TX + +@@ -27779,6 +28082,9 @@ pci:v000010ECd00008168sv0000103Csd00001611* + pci:v000010ECd00008168sv0000103Csd00001950* + ID_MODEL_FROM_DATABASE=ProBook 450/455 + ++pci:v000010ECd00008168sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v000010ECd00008168sv00001043sd000011F5* + ID_MODEL_FROM_DATABASE=A6J-Q008 + +@@ -27815,6 +28121,9 @@ pci:v000010ECd00008168sv00001462sd0000238C* + pci:v000010ECd00008168sv00001462sd0000368C* + ID_MODEL_FROM_DATABASE=K9AG Neo2 + ++pci:v000010ECd00008168sv00001462sd00004180* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v000010ECd00008168sv00001462sd00007522* + ID_MODEL_FROM_DATABASE=X58 Pro-E + +@@ -27894,10 +28203,10 @@ pci:v000010ECd00008176sv00001A3Bsd00001139* + ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card + + pci:v000010ECd00008177* +- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter ++ ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter + + pci:v000010ECd00008178* +- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter ++ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter + + pci:v000010ECd00008179* + ID_MODEL_FROM_DATABASE=RTL8188EE Wireless Network Adapter +@@ -27914,11 +28223,14 @@ pci:v000010ECd00008180sv00001737sd00000019* + pci:v000010ECd00008185* + ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller + ++pci:v000010ECd0000818B* ++ ID_MODEL_FROM_DATABASE=RTL8192EE PCIe Wireless Network Adapter ++ + pci:v000010ECd00008190* +- ID_MODEL_FROM_DATABASE=RTL8190 802.11n Wireless LAN ++ ID_MODEL_FROM_DATABASE=RTL8190 802.11n PCI Wireless Network Adapter + + pci:v000010ECd00008191* +- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter ++ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter + + pci:v000010ECd00008192* + ID_MODEL_FROM_DATABASE=RTL8192E/RTL8192SE Wireless LAN Controller +@@ -27938,6 +28250,15 @@ pci:v000010ECd00008199sv00001462sd00006894* + pci:v000010ECd00008723* + ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter + ++pci:v000010ECd00008812* ++ ID_MODEL_FROM_DATABASE=RTL8812AE 802.11ac PCIe Wireless Network Adapter ++ ++pci:v000010ECd00008813* ++ ID_MODEL_FROM_DATABASE=RTL8813AE 802.11ac PCIe Wireless Network Adapter ++ ++pci:v000010ECd00008821* ++ ID_MODEL_FROM_DATABASE=RTL8821AE 802.11ac PCIe Wireless Network Adapter ++ + pci:v000010ECd0000B723* + ID_MODEL_FROM_DATABASE=RTL8723BE PCIe Wireless Network Adapter + +@@ -28211,6 +28532,9 @@ pci:v00001102d00000004sv00001102sd00000058* + pci:v00001102d00000004sv00001102sd00001002* + ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum + ++pci:v00001102d00000004sv00001102sd00001003* ++ ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 ++ + pci:v00001102d00000004sv00001102sd00001007* + ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 + +@@ -28436,6 +28760,9 @@ pci:v00001103d00001742* + pci:v00001103d00002210* + ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller + ++pci:v00001103d00002210sv000011ABsd000011AB* ++ ID_MODEL_FROM_DATABASE=88SX6042 ++ + pci:v00001103d00002300* + ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller + +@@ -28635,7 +28962,7 @@ pci:v00001106d00000415* + ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller + + pci:v00001106d00000415sv00001043sd0000838F* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=Motherboard + + pci:v00001106d00000501* + ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] +@@ -29033,6 +29360,9 @@ pci:v00001106d00003038sv00001849sd00003038* + pci:v00001106d00003038sv000019DAsd0000A179* + ID_MODEL_FROM_DATABASE=ZBOX nano VD01 + ++pci:v00001106d00003038sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001106d00003040* + ID_MODEL_FROM_DATABASE=VT82C586B ACPI + +@@ -29591,6 +29921,9 @@ pci:v00001106d00003238* + pci:v00001106d00003249* + ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller + ++pci:v00001106d00003249sv00001106sd00003249* ++ ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller ++ + pci:v00001106d0000324A* + ID_MODEL_FROM_DATABASE=CX700/VX700 PCI to PCI Bridge + +@@ -30180,7 +30513,7 @@ pci:v00001109d00001400* + ID_MODEL_FROM_DATABASE=EM110TX [EX110TX] + + pci:v0000110A* +- ID_VENDOR_FROM_DATABASE=Siemens Nixdorf AG ++ ID_VENDOR_FROM_DATABASE=Siemens AG + + pci:v0000110Ad00000002* + ID_MODEL_FROM_DATABASE=Pirahna 2-port +@@ -30216,20 +30549,56 @@ pci:v0000110Ad00002104* + ID_MODEL_FROM_DATABASE=Eicon Diva 2.02 compatible passive ISDN card + + pci:v0000110Ad00003141* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 (Profibus Adapter) ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 / 5621 + + pci:v0000110Ad00003142* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A1 (Profibus Adapter) ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 / 5614 ++ ++pci:v0000110Ad00003143* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 + + pci:v0000110Ad00004021* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) + + pci:v0000110Ad00004029* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A2 (Profibus Adapter) ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 ++ ++pci:v0000110Ad00004029sv0000110Asd00004029* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 ++ ++pci:v0000110Ad00004029sv0000110Asd0000C029* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 + + pci:v0000110Ad00004035* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 + ++pci:v0000110Ad00004036* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1616 ++ ++pci:v0000110Ad00004038* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1604 ++ ++pci:v0000110Ad00004069* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 ++ ++pci:v0000110Ad00004069sv0000110Asd0000C069* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 ++ ++pci:v0000110Ad0000407C* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 ++ ++pci:v0000110Ad0000407D* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A3 ++ ++pci:v0000110Ad0000407E* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5622 ++ ++pci:v0000110Ad00004083* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A3 ++ ++pci:v0000110Ad00004084* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1626 ++ + pci:v0000110Ad00004942* + ID_MODEL_FROM_DATABASE=FPGA I-Bus Tracer for MBD + +@@ -31244,9 +31613,24 @@ pci:v00001131d00007133sv00005ACEsd00006290* + pci:v00001131d00007133sv00005ACEsd00007090* + ID_MODEL_FROM_DATABASE=Behold TV A7 + ++pci:v00001131d00007133sv00005ACEsd00007150* ++ ID_MODEL_FROM_DATABASE=Behold TV H75 ++ ++pci:v00001131d00007133sv00005ACEsd00007151* ++ ID_MODEL_FROM_DATABASE=Behold TV H75 ++ + pci:v00001131d00007133sv00005ACEsd00007190* + ID_MODEL_FROM_DATABASE=Behold TV H7 + ++pci:v00001131d00007133sv00005ACEsd00007191* ++ ID_MODEL_FROM_DATABASE=Behold TV H7 ++ ++pci:v00001131d00007133sv00005ACEsd00007290* ++ ID_MODEL_FROM_DATABASE=Behold TV T7 ++ ++pci:v00001131d00007133sv00005ACEsd00007591* ++ ID_MODEL_FROM_DATABASE=Behold TV X7 ++ + pci:v00001131d00007133sv00005ACEsd00007595* + ID_MODEL_FROM_DATABASE=Behold TV X7 + +@@ -31553,9 +31937,30 @@ pci:v00001131d00007231* + pci:v00001131d00007231sv00005ACEsd00008000* + ID_MODEL_FROM_DATABASE=Behold TV H8 + ++pci:v00001131d00007231sv00005ACEsd00008001* ++ ID_MODEL_FROM_DATABASE=Behold TV H8 ++ ++pci:v00001131d00007231sv00005ACEsd00008050* ++ ID_MODEL_FROM_DATABASE=Behold TV H85 ++ ++pci:v00001131d00007231sv00005ACEsd00008051* ++ ID_MODEL_FROM_DATABASE=Behold TV H85 ++ + pci:v00001131d00007231sv00005ACEsd00008100* + ID_MODEL_FROM_DATABASE=Behold TV A8 + ++pci:v00001131d00007231sv00005ACEsd00008101* ++ ID_MODEL_FROM_DATABASE=Behold TV A8 ++ ++pci:v00001131d00007231sv00005ACEsd00008150* ++ ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ++pci:v00001131d00007231sv00005ACEsd00008151* ++ ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ++pci:v00001131d00007231sv00005ACEsd00008201* ++ ID_MODEL_FROM_DATABASE=Behold TV T8 ++ + pci:v00001131d00009730* + ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller + +@@ -35042,6 +35447,9 @@ pci:v000011C1d00005811* + pci:v000011C1d00005811sv0000103Csd00002A34* + ID_MODEL_FROM_DATABASE=Pavilion a1677c + ++pci:v000011C1d00005811sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v000011C1d00005811sv0000103Csd00002A9E* + ID_MODEL_FROM_DATABASE=Pavilion p6310f + +@@ -35858,6 +36266,9 @@ pci:v00001217d00008330sv00001028sd000004A3* + pci:v00001217d00008331* + ID_MODEL_FROM_DATABASE=O2 Flash Memory Card + ++pci:v00001217d00008520* ++ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller ++ + pci:v00001218* + ID_VENDOR_FROM_DATABASE=Hybricon Corp. + +@@ -36852,7 +37263,7 @@ pci:v00001274d00001171* + ID_MODEL_FROM_DATABASE=ES1373 [AudioPCI] (also Creative Labs CT5803) + + pci:v00001274d00001371* +- ID_MODEL_FROM_DATABASE=ES1371 [AudioPCI-97] ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] + + pci:v00001274d00001371sv00000E11sd00000024* + ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro +@@ -36870,7 +37281,7 @@ pci:v00001274d00001371sv0000107Bsd00008054* + ID_MODEL_FROM_DATABASE=Tabor2 + + pci:v00001274d00001371sv00001274sd00001371* +- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI64V, AudioPCI128 ++ ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 + + pci:v00001274d00001371sv00001274sd00008001* + ID_MODEL_FROM_DATABASE=CT4751 board +@@ -41858,12 +42269,24 @@ pci:v00001425d00005013* + pci:v00001425d00005014* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005015* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005080* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005081* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005083* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005084* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005085* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d00005401* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -41924,12 +42347,24 @@ pci:v00001425d00005413* + pci:v00001425d00005414* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005415* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005480* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005481* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005483* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005484* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005485* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d00005501* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller + +@@ -41990,12 +42425,24 @@ pci:v00001425d00005513* + pci:v00001425d00005514* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller + ++pci:v00001425d00005515* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller ++ + pci:v00001425d00005580* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller + + pci:v00001425d00005581* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller + ++pci:v00001425d00005583* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller ++ ++pci:v00001425d00005584* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller ++ ++pci:v00001425d00005585* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller ++ + pci:v00001425d00005601* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller + +@@ -42056,12 +42503,24 @@ pci:v00001425d00005613* + pci:v00001425d00005614* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller + ++pci:v00001425d00005615* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller ++ + pci:v00001425d00005680* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller + + pci:v00001425d00005681* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller + ++pci:v00001425d00005683* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller ++ ++pci:v00001425d00005684* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller ++ ++pci:v00001425d00005685* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller ++ + pci:v00001425d00005701* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -42122,12 +42581,24 @@ pci:v00001425d00005713* + pci:v00001425d00005714* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005715* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005780* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005781* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005783* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005784* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005785* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d00005801* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -42188,12 +42659,24 @@ pci:v00001425d00005813* + pci:v00001425d00005814* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller + ++pci:v00001425d00005815* ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ + pci:v00001425d00005880* + ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller + + pci:v00001425d00005881* + ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller + ++pci:v00001425d00005883* ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005884* ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ++pci:v00001425d00005885* ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ + pci:v00001425d0000A000* + ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller + +@@ -42483,7 +42966,7 @@ pci:v00001461d0000F436* + ID_MODEL_FROM_DATABASE=AVerTV Hybrid+FM + + pci:v00001462* +- ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. ++ ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. [MSI] + + pci:v00001463* + ID_VENDOR_FROM_DATABASE=Fast Corporation +@@ -43847,6 +44330,33 @@ pci:v000014E4d0000168E* + pci:v000014E4d0000168Esv0000103Csd00001798* + ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] + ++pci:v000014E4d0000168Esv0000103Csd000017A5* ++ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd000018D3* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001930* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001931* ++ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001932* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00001933* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd0000193A* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd00003382* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ++pci:v000014E4d0000168Esv0000103Csd0000339D* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ + pci:v000014E4d00001690* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe + +@@ -43922,9 +44432,21 @@ pci:v000014E4d000016A1* + pci:v000014E4d000016A2* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet + ++pci:v000014E4d000016A2sv0000103Csd00001916* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ++pci:v000014E4d000016A2sv0000103Csd00001917* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ + pci:v000014E4d000016A4* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function + ++pci:v000014E4d000016A4sv0000103Csd00001916* ++ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter ++ ++pci:v000014E4d000016A4sv0000103Csd00001917* ++ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter ++ + pci:v000014E4d000016A5* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function + +@@ -44048,12 +44570,78 @@ pci:v000014E4d000016ACsv0000103Csd0000703D* + pci:v000014E4d000016AD* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function + ++pci:v000014E4d000016ADsv0000103Csd00001916* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ++pci:v000014E4d000016ADsv0000103Csd00001917* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ + pci:v000014E4d000016AE* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function + ++pci:v000014E4d000016AEsv0000103Csd00001798* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd000017A5* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd000018D3* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001930* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001931* ++ ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001932* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00001933* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd0000193A* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd00003382* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AEsv0000103Csd0000339D* ++ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter ++ + pci:v000014E4d000016AF* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function + ++pci:v000014E4d000016AFsv0000103Csd00001798* ++ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd000017A5* ++ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd000018D3* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001930* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001931* ++ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001932* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00001933* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd0000193A* ++ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd00003382* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ++pci:v000014E4d000016AFsv0000103Csd0000339D* ++ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ + pci:v000014E4d000016B0* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe + +@@ -49484,6 +50072,9 @@ pci:v00001814d0000539F* + pci:v00001814d0000539Fsv0000103Csd00001637* + ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card + ++pci:v00001814d00005592* ++ ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter ++ + pci:v00001814d0000E932* + ID_MODEL_FROM_DATABASE=RT2560F 802.11 b/g PCI + +@@ -50480,6 +51071,12 @@ pci:v0000193Fd00000367* + pci:v0000193Fd00000370* + ID_MODEL_FROM_DATABASE=AHA370-PCIe + ++pci:v0000193Fd00003641* ++ ID_MODEL_FROM_DATABASE=AHA3641 ++ ++pci:v0000193Fd00003642* ++ ID_MODEL_FROM_DATABASE=AHA3642 ++ + pci:v00001942* + ID_VENDOR_FROM_DATABASE=ClearSpeed Technology plc + +@@ -50633,6 +51230,9 @@ pci:v00001957d00000084* + pci:v00001957d00000085* + ID_MODEL_FROM_DATABASE=MPC8347 PBGA + ++pci:v00001957d00000085sv0000110Asd00004046* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 ++ + pci:v00001957d00000086* + ID_MODEL_FROM_DATABASE=MPC8343E + +@@ -51095,6 +51695,9 @@ pci:v000019A2d00000710sv0000103Csd00003341* + pci:v000019A2d00000710sv0000103Csd00003345* + ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter + ++pci:v000019A2d00000710sv0000103Csd0000337B* ++ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ + pci:v000019A2d00000712* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) + +@@ -51104,6 +51707,9 @@ pci:v000019A2d00000714* + pci:v000019A2d00000714sv0000103Csd00003315* + ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter + ++pci:v000019A2d00000714sv0000103Csd0000337B* ++ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ + pci:v000019A8* + ID_VENDOR_FROM_DATABASE=DAQDATA GmbH + +@@ -51236,6 +51842,9 @@ pci:v00001A22* + pci:v00001A29* + ID_VENDOR_FROM_DATABASE=Fortinet, Inc. + ++pci:v00001A29d00004338* ++ ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC ++ + pci:v00001A2B* + ID_VENDOR_FROM_DATABASE=Ascom AG + +@@ -51605,6 +52214,12 @@ pci:v00001AF4d00001005* + pci:v00001AF4d00001009* + ID_MODEL_FROM_DATABASE=Virtio filesystem + ++pci:v00001AF4d00001110* ++ ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory ++ ++pci:v00001AF4d00001110sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001AF5* + ID_VENDOR_FROM_DATABASE=Netezza Corp. + +@@ -51647,6 +52262,9 @@ pci:v00001B21d00000612sv00001849sd00000612* + pci:v00001B21d00001042* + ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller + ++pci:v00001B21d00001042sv00001043sd00008488* ++ ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ + pci:v00001B21d00001042sv00001849sd00001042* + ID_MODEL_FROM_DATABASE=Motherboard + +@@ -51662,6 +52280,39 @@ pci:v00001B2C* + pci:v00001B36* + ID_VENDOR_FROM_DATABASE=Red Hat, Inc. + ++pci:v00001B36d00000001* ++ ID_MODEL_FROM_DATABASE=QEMU PCI-PCI bridge ++ ++pci:v00001B36d00000002* ++ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter ++ ++pci:v00001B36d00000002sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000003* ++ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter ++ ++pci:v00001B36d00000003sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000004* ++ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter ++ ++pci:v00001B36d00000004sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000005* ++ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device ++ ++pci:v00001B36d00000005sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ++pci:v00001B36d00000100* ++ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card ++ ++pci:v00001B36d00000100sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00001B37* + ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB + +@@ -51725,6 +52376,9 @@ pci:v00001B4Bd00009130sv00001043sd00008438* + pci:v00001B4Bd00009172* + ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller + ++pci:v00001B4Bd00009178* ++ ID_MODEL_FROM_DATABASE=88SE9170 PCIe SATA 6Gb/s Controller ++ + pci:v00001B4Bd0000917A* + ID_MODEL_FROM_DATABASE=88SE9172 SATA III 6Gb/s RAID Controller + +@@ -51875,6 +52529,9 @@ pci:v00001BBFd00000004* + pci:v00001BF4* + ID_VENDOR_FROM_DATABASE=VTI Instruments Corporation + ++pci:v00001BF4d00000001* ++ ID_MODEL_FROM_DATABASE=SentinelEX ++ + pci:v00001BFD* + ID_VENDOR_FROM_DATABASE=EeeTOP + +@@ -51902,6 +52559,18 @@ pci:v00001C2Cd000000A1* + pci:v00001C2Cd000000A2* + ID_MODEL_FROM_DATABASE=FBC8XG Capture 8x10Gb + ++pci:v00001C2Cd000000A3* ++ ID_MODEL_FROM_DATABASE=FBC2XG Capture 2x10Gb ++ ++pci:v00001C2Cd000000A4* ++ ID_MODEL_FROM_DATABASE=FBC4XGG3 Capture 4x10Gb ++ ++pci:v00001C2Cd000000A5* ++ ID_MODEL_FROM_DATABASE=FBC2XLG Capture 2x40Gb ++ ++pci:v00001C2Cd000000A6* ++ ID_MODEL_FROM_DATABASE=FBC1CG Capture 1x100Gb ++ + pci:v00001C32* + ID_VENDOR_FROM_DATABASE=Highland Technology, Inc. + +@@ -53970,7 +54639,7 @@ pci:v00008086d00000100sv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + + pci:v00008086d00000100sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard + + pci:v00008086d00000101* + ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port +@@ -53987,6 +54656,9 @@ pci:v00008086d00000102* + pci:v00008086d00000102sv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + ++pci:v00008086d00000102sv00001043sd00000102* ++ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ + pci:v00008086d00000104* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller + +@@ -54065,9 +54737,15 @@ pci:v00008086d00000151* + pci:v00008086d00000151sv00001043sd00001477* + ID_MODEL_FROM_DATABASE=N56VZ + ++pci:v00008086d00000151sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00000151sv00001043sd000084CA* + ID_MODEL_FROM_DATABASE=P8H77-I Motherboard + ++pci:v00008086d00000151sv00008086sd00002010* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00000152* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + +@@ -54098,12 +54776,21 @@ pci:v00008086d00000154sv00001043sd00001517* + pci:v00008086d00000155* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + ++pci:v00008086d00000155sv00008086sd00002010* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00000156* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller + + pci:v00008086d00000158* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller + ++pci:v00008086d00000158sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ++pci:v00008086d00000158sv00008086sd00002010* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00000159* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + +@@ -54116,6 +54803,9 @@ pci:v00008086d0000015C* + pci:v00008086d0000015D* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + ++pci:v00008086d0000015Dsv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d0000015E* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + +@@ -54137,6 +54827,9 @@ pci:v00008086d00000166sv00001043sd00002103* + pci:v00008086d0000016A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + ++pci:v00008086d0000016Asv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ + pci:v00008086d00000172* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + +@@ -54753,7 +55446,7 @@ pci:v00008086d0000095Asv00008086sd00005002* + ID_MODEL_FROM_DATABASE=Wireless-N 7265 + + pci:v00008086d0000095Asv00008086sd0000500A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 + + pci:v00008086d0000095Asv00008086sd00005010* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 +@@ -54770,9 +55463,18 @@ pci:v00008086d0000095Asv00008086sd0000502A* + pci:v00008086d0000095Asv00008086sd00005090* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00005100* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ++pci:v00008086d0000095Asv00008086sd0000510A* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00005110* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00005112* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00005190* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + +@@ -54794,9 +55496,15 @@ pci:v00008086d0000095Asv00008086sd00005590* + pci:v00008086d0000095Asv00008086sd00009010* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00009012* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00009110* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + ++pci:v00008086d0000095Asv00008086sd00009112* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ + pci:v00008086d0000095Asv00008086sd00009210* + ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 + +@@ -55089,397 +55797,409 @@ pci:v00008086d00000D36* + ID_MODEL_FROM_DATABASE=Crystal Well Integrated Graphics Controller + + pci:v00008086d00000E00* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DMI2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DMI2 + + pci:v00008086d00000E01* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode + + pci:v00008086d00000E02* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1a ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a + + pci:v00008086d00000E03* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1b ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1b + + pci:v00008086d00000E04* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2a ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a + + pci:v00008086d00000E05* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2b ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2b + + pci:v00008086d00000E06* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2c ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2c + + pci:v00008086d00000E07* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2d ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2d + + pci:v00008086d00000E08* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3a ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a + + pci:v00008086d00000E09* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3b ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3b + + pci:v00008086d00000E0A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3c ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3c + + pci:v00008086d00000E0B* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3d ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3d + + pci:v00008086d00000E10* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E13* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E17* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E18* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E1C* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers + + pci:v00008086d00000E1D* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E1E* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers + + pci:v00008086d00000E1F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers + + pci:v00008086d00000E20* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 + + pci:v00008086d00000E21* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 + + pci:v00008086d00000E22* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 + + pci:v00008086d00000E23* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 + + pci:v00008086d00000E24* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 + + pci:v00008086d00000E25* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 + + pci:v00008086d00000E26* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 + + pci:v00008086d00000E27* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 + + pci:v00008086d00000E28* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 VTd/Memory Map/Misc ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 VTd/Memory Map/Misc + + pci:v00008086d00000E29* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Memory Hotplug ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Memory Hotplug + + pci:v00008086d00000E2A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO RAS ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO RAS + + pci:v00008086d00000E2C* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IOAPIC ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IOAPIC + + pci:v00008086d00000E2E* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA + + pci:v00008086d00000E2F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA + + pci:v00008086d00000E30* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 + + pci:v00008086d00000E32* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 + + pci:v00008086d00000E33* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 + + pci:v00008086d00000E34* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E36* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E37* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E38* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 + + pci:v00008086d00000E3A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 + + pci:v00008086d00000E3E* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E3F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring + + pci:v00008086d00000E40* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 + + pci:v00008086d00000E41* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E43* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 + + pci:v00008086d00000E44* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 ++ ++pci:v00008086d00000E45* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register ++ ++pci:v00008086d00000E47* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register + + pci:v00008086d00000E60* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 + + pci:v00008086d00000E68* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers + + pci:v00008086d00000E6A* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E6B* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E6C* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E6D* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers + + pci:v00008086d00000E71* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers + + pci:v00008086d00000E74* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E75* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe + + pci:v00008086d00000E77* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E79* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers + + pci:v00008086d00000E7D* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers + + pci:v00008086d00000E7F* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E80* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 + + pci:v00008086d00000E81* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers + + pci:v00008086d00000E83* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 + + pci:v00008086d00000E84* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 ++ ++pci:v00008086d00000E85* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register + + pci:v00008086d00000E87* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Registers + + pci:v00008086d00000E90* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 + + pci:v00008086d00000E93* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 + + pci:v00008086d00000E94* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 1 ++ ++pci:v00008086d00000E95* ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register + + pci:v00008086d00000EA0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 + + pci:v00008086d00000EA8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers + + pci:v00008086d00000EAA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAB* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAD* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers + + pci:v00008086d00000EAE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EAF* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EB0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 + + pci:v00008086d00000EB1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 + + pci:v00008086d00000EB2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 + + pci:v00008086d00000EB3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 + + pci:v00008086d00000EB4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 + + pci:v00008086d00000EB5* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 + + pci:v00008086d00000EB6* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 + + pci:v00008086d00000EB7* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 + + pci:v00008086d00000EBC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EBE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EBF* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers + + pci:v00008086d00000EC0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 0 + + pci:v00008086d00000EC1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 1 + + pci:v00008086d00000EC2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 2 + + pci:v00008086d00000EC3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 3 + + pci:v00008086d00000EC4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 4 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 4 + + pci:v00008086d00000EC8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 System Address Decoder ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 System Address Decoder + + pci:v00008086d00000EC9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers + + pci:v00008086d00000ECA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers + + pci:v00008086d00000ED8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000ED9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDD* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EDF* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EE0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE5* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE6* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE7* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EE9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEB* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EED* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EEE* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers + + pci:v00008086d00000EF0* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 + + pci:v00008086d00000EF1* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 + + pci:v00008086d00000EF2* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 + + pci:v00008086d00000EF3* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 + + pci:v00008086d00000EF4* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 + + pci:v00008086d00000EF5* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 + + pci:v00008086d00000EF6* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 + + pci:v00008086d00000EF7* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 + + pci:v00008086d00000EF8* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EF9* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFA* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFB* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFC* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000EFD* +- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO ++ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000F00* + ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +@@ -55868,6 +56588,9 @@ pci:v00008086d0000100Esv00001028sd00000151* + pci:v00008086d0000100Esv0000107Bsd00008920* + ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter + ++pci:v00008086d0000100Esv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000100Esv00008086sd0000001E* + ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter + +@@ -56057,6 +56780,9 @@ pci:v00008086d0000101Esv00008086sd0000101E* + pci:v00008086d00001026* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + ++pci:v00008086d00001026sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d00001026sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -56867,15 +57593,24 @@ pci:v00008086d000010D3* + pci:v00008086d000010D3sv0000103Csd00003250* + ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter + ++pci:v00008086d000010D3sv00001043sd00008369* ++ ID_MODEL_FROM_DATABASE=Motherboard ++ + pci:v00008086d000010D3sv000010A9sd00008029* + ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet + + pci:v00008086d000010D3sv000015D9sd0000060A* + ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard + ++pci:v00008086d000010D3sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d000010D3sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter + ++pci:v00008086d000010D3sv00008086sd0000357A* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d000010D3sv00008086sd0000A01F* + ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter + +@@ -57002,6 +57737,9 @@ pci:v00008086d000010EF* + pci:v00008086d000010EFsv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d000010EFsv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d000010F0* + ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection + +@@ -57086,6 +57824,9 @@ pci:v00008086d000010FBsv0000108Esd00007B11* + pci:v00008086d000010FBsv00001734sd000011A9* + ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection + ++pci:v00008086d000010FBsv000017AAsd00001071* ++ ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric ++ + pci:v00008086d000010FBsv00008086sd00000002* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 + +@@ -57182,6 +57923,9 @@ pci:v00008086d00001209* + pci:v00008086d00001209sv0000140Bsd00000610* + ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board + ++pci:v00008086d00001209sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00001209sv00004C53sd00001050* + ID_MODEL_FROM_DATABASE=CT7 mainboard + +@@ -57428,6 +58172,9 @@ pci:v00008086d00001229sv00001775sd00001100* + pci:v00008086d00001229sv00001775sd0000CE90* + ID_MODEL_FROM_DATABASE=CE9 + ++pci:v00008086d00001229sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00001229sv00004C53sd00001080* + ID_MODEL_FROM_DATABASE=CT8 mainboard + +@@ -57782,6 +58529,9 @@ pci:v00008086d00001502* + pci:v00008086d00001502sv00001028sd000004A3* + ID_MODEL_FROM_DATABASE=Precision M4600 + ++pci:v00008086d00001502sv00008086sd0000357A* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00001503* + ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection + +@@ -57878,12 +58628,18 @@ pci:v00008086d00001520* + pci:v00008086d00001521* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection + ++pci:v00008086d00001521sv00001028sd00000602* ++ ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM ++ + pci:v00008086d00001521sv00001028sd00001F60* + ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC + + pci:v00008086d00001521sv00001028sd00001F62* + ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC + ++pci:v00008086d00001521sv00001028sd0000FF9A* ++ ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC ++ + pci:v00008086d00001521sv0000103Csd000017D1* + ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter + +@@ -57911,6 +58667,9 @@ pci:v00008086d00001521sv0000108Esd00007B18* + pci:v00008086d00001521sv000010A9sd0000802A* + ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE + ++pci:v00008086d00001521sv000017AAsd00001074* ++ ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric ++ + pci:v00008086d00001521sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 + +@@ -57962,6 +58721,9 @@ pci:v00008086d00001522sv00008086sd000000A4* + pci:v00008086d00001523* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection + ++pci:v00008086d00001523sv00001028sd00001F9B* ++ ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC ++ + pci:v00008086d00001523sv0000103Csd00001784* + ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter + +@@ -58025,6 +58787,9 @@ pci:v00008086d00001528sv0000108Esd00007B15* + pci:v00008086d00001528sv00001137sd000000BF* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 + ++pci:v00008086d00001528sv000017AAsd00001073* ++ ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric ++ + pci:v00008086d00001528sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 + +@@ -58055,6 +58820,9 @@ pci:v00008086d00001533* + pci:v00008086d00001533sv0000103Csd00000003* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 + ++pci:v00008086d00001533sv000017AAsd00001100* ++ ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter ++ + pci:v00008086d00001533sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 + +@@ -58103,6 +58871,9 @@ pci:v00008086d0000154Asv00008086sd0000011B* + pci:v00008086d0000154Asv00008086sd0000011C* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 + ++pci:v00008086d0000154C* ++ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ + pci:v00008086d0000154D* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter + +@@ -58148,12 +58919,78 @@ pci:v00008086d0000155Dsv00008086sd00000002* + pci:v00008086d00001560* + ID_MODEL_FROM_DATABASE=Ethernet Controller X540 + ++pci:v00008086d00001571* ++ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ ++pci:v00008086d00001572* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter ++ ++pci:v00008086d00001572sv00001028sd00001F99* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC ++ ++pci:v00008086d00001572sv00008086sd00000001* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ++pci:v00008086d00001572sv00008086sd00000002* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ++pci:v00008086d00001572sv00008086sd00000004* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ++pci:v00008086d00001572sv00008086sd00000005* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter ++ ++pci:v00008086d00001572sv00008086sd00000006* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter ++ ++pci:v00008086d00001572sv00008086sd00000007* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ ++pci:v00008086d00001572sv00008086sd00000008* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ + pci:v00008086d0000157B* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection + + pci:v00008086d0000157C* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + ++pci:v00008086d00001580* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane ++ ++pci:v00008086d00001581* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane ++ ++pci:v00008086d00001581sv00001028sd00001F98* ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC ++ ++pci:v00008086d00001583* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ ++ ++pci:v00008086d00001583sv00008086sd00000001* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ++pci:v00008086d00001583sv00008086sd00000002* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ++pci:v00008086d00001583sv00008086sd00000003* ++ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 ++ ++pci:v00008086d00001584* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ ++ ++pci:v00008086d00001584sv00008086sd00000001* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ++pci:v00008086d00001584sv00008086sd00000002* ++ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ++pci:v00008086d00001584sv00008086sd00000003* ++ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 ++ ++pci:v00008086d00001585* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ ++ + pci:v00008086d000015A0* + ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I218-LM + +@@ -58166,6 +59003,117 @@ pci:v00008086d000015A2* + pci:v00008086d000015A3* + ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V + ++pci:v00008086d00001600* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI ++ ++pci:v00008086d00001601* ++ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x16 Controller ++ ++pci:v00008086d00001602* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001603* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Camarillo Device ++ ++pci:v00008086d00001604* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI ++ ++pci:v00008086d00001605* ++ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x8 Controller ++ ++pci:v00008086d00001606* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001607* ++ ID_MODEL_FROM_DATABASE=Broadwell-U CHAPS Device ++ ++pci:v00008086d00001608* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI ++ ++pci:v00008086d00001609* ++ ID_MODEL_FROM_DATABASE=Broadwell-U x4 PCIe ++ ++pci:v00008086d0000160A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160C* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Audio Controller ++ ++pci:v00008086d0000160D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000160F* ++ ID_MODEL_FROM_DATABASE=Broadwell-U SoftSKU ++ ++pci:v00008086d00001610* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI ++ ++pci:v00008086d00001612* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001614* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI ++ ++pci:v00008086d00001616* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001618* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI ++ ++pci:v00008086d0000161A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000161B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000161D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000161E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001622* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001626* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000162E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001632* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d00001636* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163A* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163B* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163D* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ ++pci:v00008086d0000163E* ++ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics ++ + pci:v00008086d00001960* + ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor + +@@ -58308,7 +59256,10 @@ pci:v00008086d00001C02sv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + + pci:v00008086d00001C02sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ++pci:v00008086d00001C02sv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS + + pci:v00008086d00001C03* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller +@@ -58346,8 +59297,11 @@ pci:v00008086d00001C10sv00001028sd000004AA* + pci:v00008086d00001C10sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + ++pci:v00008086d00001C10sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00001C10sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C12* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 +@@ -58379,18 +59333,27 @@ pci:v00008086d00001C18* + pci:v00008086d00001C18sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + ++pci:v00008086d00001C18sv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00001C1A* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 + + pci:v00008086d00001C1Asv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + ++pci:v00008086d00001C1Asv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00001C1C* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 + + pci:v00008086d00001C1E* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 + ++pci:v00008086d00001C1Esv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d00001C20* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller + +@@ -58412,6 +59375,9 @@ pci:v00008086d00001C20sv00001028sd000004DA* + pci:v00008086d00001C20sv00001043sd00008418* + ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard + ++pci:v00008086d00001C20sv00001043sd0000841B* ++ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ + pci:v00008086d00001C20sv00008086sd00002008* + ID_MODEL_FROM_DATABASE=DQ67SW board + +@@ -58434,10 +59400,10 @@ pci:v00008086d00001C22sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C22sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C22sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C24* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller +@@ -58461,10 +59427,10 @@ pci:v00008086d00001C26sv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C26sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C26sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C27* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 +@@ -58494,10 +59460,10 @@ pci:v00008086d00001C2Dsv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C2Dsv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C2Dsv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 + + pci:v00008086d00001C33* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller +@@ -58521,7 +59487,7 @@ pci:v00008086d00001C3Asv00001028sd000004DA* + ID_MODEL_FROM_DATABASE=Vostro 3750 + + pci:v00008086d00001C3Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P8 series motherboard + + pci:v00008086d00001C3Asv00008086sd00007270* + ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] +@@ -58577,6 +59543,9 @@ pci:v00008086d00001C4A* + pci:v00008086d00001C4Asv00001028sd000004AA* + ID_MODEL_FROM_DATABASE=XPS 8300 + ++pci:v00008086d00001C4Asv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ + pci:v00008086d00001C4B* + ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller + +@@ -58610,6 +59579,9 @@ pci:v00008086d00001C51* + pci:v00008086d00001C52* + ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller + ++pci:v00008086d00001C52sv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00001C53* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller + +@@ -58622,6 +59594,9 @@ pci:v00008086d00001C55* + pci:v00008086d00001C56* + ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller + ++pci:v00008086d00001C56sv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ + pci:v00008086d00001C57* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller + +@@ -59345,6 +60320,9 @@ pci:v00008086d0000225C* + pci:v00008086d0000225D* + ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 3120 series + ++pci:v00008086d0000225E* ++ ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 31S1 ++ + pci:v00008086d00002310* + ID_MODEL_FROM_DATABASE=DH89xxCC LPC Controller + +@@ -59495,6 +60473,9 @@ pci:v00008086d00002415sv000011D4sd00005340* + pci:v00008086d00002415sv00001734sd00001025* + ID_MODEL_FROM_DATABASE=Activy 3xx + ++pci:v00008086d00002415sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002416* + ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller + +@@ -59804,6 +60785,9 @@ pci:v00008086d00002449sv00001186sd00007801* + pci:v00008086d00002449sv0000144Dsd00002602* + ID_MODEL_FROM_DATABASE=HomePNA 1M CNR + ++pci:v00008086d00002449sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002449sv00008086sd00003010* + ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE + +@@ -59897,6 +60881,9 @@ pci:v00008086d0000244Esv00001028sd000002DA* + pci:v00008086d0000244Esv0000103Csd00002A3B* + ID_MODEL_FROM_DATABASE=Pavilion A1512X + ++pci:v00008086d0000244Esv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000244Esv0000103Csd000031FE* + ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 + +@@ -59906,15 +60893,27 @@ pci:v00008086d0000244Esv0000103Csd0000330B* + pci:v00008086d0000244Esv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + ++pci:v00008086d0000244Esv00001043sd0000844D* ++ ID_MODEL_FROM_DATABASE=P8 series motherboard ++ + pci:v00008086d0000244Esv00001458sd00005000* + ID_MODEL_FROM_DATABASE=Motherboard + ++pci:v00008086d0000244Esv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ++pci:v00008086d0000244Esv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d0000244Esv000015D9sd00009680* + ID_MODEL_FROM_DATABASE=X7DBN Motherboard + + pci:v00008086d0000244Esv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + ++pci:v00008086d0000244Esv00008086sd00007270* ++ ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ + pci:v00008086d00002450* + ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) + +@@ -60671,6 +61670,9 @@ pci:v00008086d000024CDsv00001734sd00001004* + pci:v00008086d000024CDsv00001734sd00001055* + ID_MODEL_FROM_DATABASE=Amilo M1420 + ++pci:v00008086d000024CDsv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000024CDsv00004C53sd00001090* + ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard + +@@ -60689,6 +61691,9 @@ pci:v00008086d000024D0* + pci:v00008086d000024D1* + ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller + ++pci:v00008086d000024D1sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D1sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60740,6 +61745,9 @@ pci:v00008086d000024D2sv00001014sd000002DD* + pci:v00008086d000024D2sv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024D2sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D2sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60809,6 +61817,9 @@ pci:v00008086d000024D3sv00001014sd000002ED* + pci:v00008086d000024D3sv00001028sd00000156* + ID_MODEL_FROM_DATABASE=Precision 360 + ++pci:v00008086d000024D3sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D3sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60860,6 +61871,9 @@ pci:v00008086d000024D4sv00001014sd000002DD* + pci:v00008086d000024D4sv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024D4sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D4sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60926,6 +61940,9 @@ pci:v00008086d000024D5* + pci:v00008086d000024D5sv0000100Asd0000147B* + ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard + ++pci:v00008086d000024D5sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D5sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -60977,6 +61994,9 @@ pci:v00008086d000024D7* + pci:v00008086d000024D7sv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=xSeries server mainboard + ++pci:v00008086d000024D7sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024D7sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61040,6 +62060,9 @@ pci:v00008086d000024DBsv00001014sd000002DD* + pci:v00008086d000024DBsv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024DBsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024DBsv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61112,6 +62135,9 @@ pci:v00008086d000024DDsv00001014sd000002DD* + pci:v00008086d000024DDsv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d000024DDsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024DDsv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61169,6 +62195,9 @@ pci:v00008086d000024DE* + pci:v00008086d000024DEsv00001014sd000002ED* + ID_MODEL_FROM_DATABASE=xSeries server mainboard + ++pci:v00008086d000024DEsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d000024DEsv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -61208,6 +62237,21 @@ pci:v00008086d000024DEsv00008086sd0000524C* + pci:v00008086d000024DF* + ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller + ++pci:v00008086d000024DFsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ++pci:v00008086d000024F3* ++ ID_MODEL_FROM_DATABASE=Wireless 8260 ++ ++pci:v00008086d000024F3sv00008086sd00000010* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ ++pci:v00008086d000024F4* ++ ID_MODEL_FROM_DATABASE=Wireless 8260 ++ ++pci:v00008086d000024F4sv00008086sd00000030* ++ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ + pci:v00008086d00002500* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) + +@@ -61679,6 +62723,9 @@ pci:v00008086d000025ABsv00001775sd00001100* + pci:v00008086d000025ABsv00001775sd0000CE90* + ID_MODEL_FROM_DATABASE=CE9 + ++pci:v00008086d000025ABsv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000025ABsv00004C53sd000010B0* + ID_MODEL_FROM_DATABASE=CL9 mainboard + +@@ -62330,6 +63377,9 @@ pci:v00008086d00002668sv00001043sd0000814E* + pci:v00008086d00002668sv00001462sd00007028* + ID_MODEL_FROM_DATABASE=915P/G Neo2 + ++pci:v00008086d00002668sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000266A* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller + +@@ -62657,6 +63707,9 @@ pci:v00008086d00002770sv00001043sd0000817A* + pci:v00008086d00002770sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=E4500 + ++pci:v00008086d00002770sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d00002770sv00008086sd0000544E* + ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP + +@@ -62669,6 +63722,9 @@ pci:v00008086d00002772* + pci:v00008086d00002772sv0000103Csd00002A3B* + ID_MODEL_FROM_DATABASE=Pavilion A1512X + ++pci:v00008086d00002772sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d00002772sv00008086sd0000544E* + ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP + +@@ -62831,6 +63887,9 @@ pci:v00008086d000027B8sv00001043sd00008179* + pci:v00008086d000027B8sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=E4500 + ++pci:v00008086d000027B8sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027B8sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -62906,6 +63965,9 @@ pci:v00008086d000027C0sv00001462sd00002310* + pci:v00008086d000027C0sv00001462sd00007236* + ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard + ++pci:v00008086d000027C0sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027C0sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -62961,7 +64023,7 @@ pci:v00008086d000027C4sv00001028sd000001D7* + ID_MODEL_FROM_DATABASE=XPS M1210 + + pci:v00008086d000027C4sv000017AAsd0000200E* +- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 ++ ID_MODEL_FROM_DATABASE=ThinkPad T60 + + pci:v00008086d000027C5* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] +@@ -63026,6 +64088,9 @@ pci:v00008086d000027C8sv0000144Dsd0000C072* + pci:v00008086d000027C8sv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027C8sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027C8sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63089,6 +64154,9 @@ pci:v00008086d000027C9sv0000144Dsd0000C072* + pci:v00008086d000027C9sv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027C9sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027C9sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63152,6 +64220,9 @@ pci:v00008086d000027CAsv0000144Dsd0000C072* + pci:v00008086d000027CAsv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027CAsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027CAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63209,6 +64280,9 @@ pci:v00008086d000027CBsv0000144Dsd0000C072* + pci:v00008086d000027CBsv00001458sd00005004* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027CBsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027CBsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63266,6 +64340,9 @@ pci:v00008086d000027CCsv0000144Dsd0000C072* + pci:v00008086d000027CCsv00001458sd00005006* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027CCsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027CCsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63296,6 +64373,9 @@ pci:v00008086d000027D0sv0000144Dsd0000C072* + pci:v00008086d000027D0sv00001458sd00005001* + ID_MODEL_FROM_DATABASE=GA-D525TUD + ++pci:v00008086d000027D0sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D0sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63314,6 +64394,9 @@ pci:v00008086d000027D2sv0000103Csd000030A3* + pci:v00008086d000027D2sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=Notebook N150P + ++pci:v00008086d000027D2sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D2sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63326,6 +64409,9 @@ pci:v00008086d000027D4* + pci:v00008086d000027D4sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=Notebook N150P + ++pci:v00008086d000027D4sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D4sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63341,6 +64427,9 @@ pci:v00008086d000027D6sv0000103Csd000030A3* + pci:v00008086d000027D6sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=Notebook N150P + ++pci:v00008086d000027D6sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D6sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63410,6 +64499,9 @@ pci:v00008086d000027D8sv00001458sd0000A002* + pci:v00008086d000027D8sv00001458sd0000A102* + ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard + ++pci:v00008086d000027D8sv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027D8sv0000152Dsd00000753* + ID_MODEL_FROM_DATABASE=Softmodem + +@@ -63470,6 +64562,9 @@ pci:v00008086d000027DAsv0000144Dsd0000C072* + pci:v00008086d000027DAsv00001458sd00005001* + ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard + ++pci:v00008086d000027DAsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027DAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63545,6 +64640,9 @@ pci:v00008086d000027DFsv0000107Bsd00005048* + pci:v00008086d000027DFsv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop + ++pci:v00008086d000027DFsv00001462sd00007418* ++ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ + pci:v00008086d000027DFsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + +@@ -63632,6 +64730,9 @@ pci:v00008086d00002822* + pci:v00008086d00002822sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d00002822sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002823* + ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller + +@@ -64202,6 +65303,9 @@ pci:v00008086d00002916* + pci:v00008086d00002916sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d00002916sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002916sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + +@@ -64223,6 +65327,9 @@ pci:v00008086d00002918sv00001028sd00000236* + pci:v00008086d00002918sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002918sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002919* + ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller + +@@ -64265,6 +65372,9 @@ pci:v00008086d00002921sv00001462sd00007360* + pci:v00008086d00002922* + ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] + ++pci:v00008086d00002922sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002922sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64331,6 +65441,9 @@ pci:v00008086d00002930sv00001028sd0000020D* + pci:v00008086d00002930sv00001028sd00000211* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002930sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002930sv0000103Csd00003628* + ID_MODEL_FROM_DATABASE=dv6-1190en + +@@ -64340,6 +65453,9 @@ pci:v00008086d00002930sv00001043sd00008277* + pci:v00008086d00002930sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002930sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002930sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64388,12 +65504,18 @@ pci:v00008086d00002934sv00001028sd0000029C* + pci:v00008086d00002934sv00001028sd00002011* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002934sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002934sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002934sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002934sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002934sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64433,12 +65555,18 @@ pci:v00008086d00002935sv00001028sd00000287* + pci:v00008086d00002935sv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller + ++pci:v00008086d00002935sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002935sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002935sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002935sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002935sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64472,12 +65600,18 @@ pci:v00008086d00002936sv00001028sd00000287* + pci:v00008086d00002936sv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller + ++pci:v00008086d00002936sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002936sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002936sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002936sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002936sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64511,12 +65645,18 @@ pci:v00008086d00002937sv00001028sd0000029C* + pci:v00008086d00002937sv00001028sd00002011* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002937sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002937sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002937sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002937sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002937sv00008086sd00002937* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64553,12 +65693,18 @@ pci:v00008086d00002938sv00001028sd00000287* + pci:v00008086d00002938sv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller + ++pci:v00008086d00002938sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002938sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002938sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002938sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002938sv00008086sd00002938* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64580,12 +65726,18 @@ pci:v00008086d00002939sv00001028sd00000210* + pci:v00008086d00002939sv00001028sd00000237* + ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller + ++pci:v00008086d00002939sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002939sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d00002939sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d00002939sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00002939sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64625,12 +65777,18 @@ pci:v00008086d0000293Asv00001028sd00000287* + pci:v00008086d0000293Asv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller + ++pci:v00008086d0000293Asv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000293Asv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d0000293Asv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d0000293Asv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000293Asv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -64661,12 +65819,18 @@ pci:v00008086d0000293Csv00001028sd00000287* + pci:v00008086d0000293Csv00001028sd0000029C* + ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller + ++pci:v00008086d0000293Csv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000293Csv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + + pci:v00008086d0000293Csv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d0000293Csv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000293Csv00008086sd0000293C* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64685,6 +65849,9 @@ pci:v00008086d0000293Esv00001028sd0000020D* + pci:v00008086d0000293Esv00001028sd00000211* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d0000293Esv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d0000293Esv0000103Csd00003628* + ID_MODEL_FROM_DATABASE=dv6-1190en + +@@ -64694,6 +65861,9 @@ pci:v00008086d0000293Esv00001043sd0000829F* + pci:v00008086d0000293Esv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d0000293Esv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d0000293Esv00008086sd0000293E* + ID_MODEL_FROM_DATABASE=Optiplex 755 + +@@ -64712,6 +65882,9 @@ pci:v00008086d00002940sv00001028sd0000020D* + pci:v00008086d00002940sv00001028sd00000211* + ID_MODEL_FROM_DATABASE=Optiplex 755 + ++pci:v00008086d00002940sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002940sv00001043sd00008277* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + +@@ -64730,6 +65903,9 @@ pci:v00008086d00002944* + pci:v00008086d00002944sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d00002944sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d00002946* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 + +@@ -64910,6 +66086,9 @@ pci:v00008086d000029C0* + pci:v00008086d000029C0sv00001028sd0000020D* + ID_MODEL_FROM_DATABASE=Inspiron 530 + ++pci:v00008086d000029C0sv0000103Csd00002A6F* ++ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ + pci:v00008086d000029C0sv00001043sd00008276* + ID_MODEL_FROM_DATABASE=P5K PRO Motherboard + +@@ -64919,6 +66098,9 @@ pci:v00008086d000029C0sv00001043sd000082B0* + pci:v00008086d000029C0sv00001462sd00007360* + ID_MODEL_FROM_DATABASE=G33/P35 Neo + ++pci:v00008086d000029C0sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000029C0sv00008086sd00005044* + ID_MODEL_FROM_DATABASE=Desktop Board DP35DP + +@@ -66050,6 +67232,9 @@ pci:v00008086d00002F37* + pci:v00008086d00002F38* + ID_MODEL_FROM_DATABASE=Haswell-E Home Agent 1 + ++pci:v00008086d00002F39* ++ ID_MODEL_FROM_DATABASE=Haswell-E I/O Performance Monitoring ++ + pci:v00008086d00002F3A* + ID_MODEL_FROM_DATABASE=Haswell-E QPI Link 2 + +@@ -66899,6 +68084,9 @@ pci:v00008086d00003591* + pci:v00008086d00003591sv00001014sd000002DD* + ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard + ++pci:v00008086d00003591sv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d00003591sv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -66968,6 +68156,9 @@ pci:v00008086d0000359Bsv00001014sd000002DD* + pci:v00008086d0000359E* + ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub + ++pci:v00008086d0000359Esv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00008086d0000359Esv00001028sd00000169* + ID_MODEL_FROM_DATABASE=Precision 470 + +@@ -67586,6 +68777,9 @@ pci:v00008086d00003B0A* + pci:v00008086d00003B0Asv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d00003B0Asv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B0B* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller + +@@ -67661,6 +68855,9 @@ pci:v00008086d00003B22* + pci:v00008086d00003B22sv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d00003B22sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B23* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller + +@@ -67715,6 +68912,9 @@ pci:v00008086d00003B30sv00001028sd000002DA* + pci:v00008086d00003B30sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B30sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B30sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67736,6 +68936,9 @@ pci:v00008086d00003B34sv00001028sd000002DA* + pci:v00008086d00003B34sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B34sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B34sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67769,6 +68972,9 @@ pci:v00008086d00003B3Csv00001028sd000002DA* + pci:v00008086d00003B3Csv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B3Csv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B3Csv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67793,12 +68999,18 @@ pci:v00008086d00003B42sv00001028sd000002DA* + pci:v00008086d00003B42sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B42sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B44* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 + + pci:v00008086d00003B44sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B44sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B46* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 + +@@ -67841,6 +69053,9 @@ pci:v00008086d00003B56sv00001028sd000002DA* + pci:v00008086d00003B56sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d00003B56sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B56sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -67853,6 +69068,9 @@ pci:v00008086d00003B64* + pci:v00008086d00003B64sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=Aspire 7740G + ++pci:v00008086d00003B64sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d00003B64sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=PC1-GROOVE + +@@ -68601,10 +69819,10 @@ pci:v00008086d0000504C* + ID_MODEL_FROM_DATABASE=EP80579 Integrated Processor with QuickAssist TDM + + pci:v00008086d00005200* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server ++ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server PCI Bridge + + pci:v00008086d00005201* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server ++ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller + + pci:v00008086d00005201sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter +@@ -68612,6 +69830,12 @@ pci:v00008086d00005201sv00008086sd00000001* + pci:v00008086d0000530D* + ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor + ++pci:v00008086d00005845* ++ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller ++ ++pci:v00008086d00005845sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d000065C0* + ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub + +@@ -68688,7 +69912,7 @@ pci:v00008086d00007020* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] + + pci:v00008086d00007020sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine + + pci:v00008086d00007030* + ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] +@@ -68720,6 +69944,9 @@ pci:v00008086d00007112* + pci:v00008086d00007112sv000015ADsd00001976* + ID_MODEL_FROM_DATABASE=Virtual Machine Chipset + ++pci:v00008086d00007112sv00001AF4sd00001100* ++ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ + pci:v00008086d00007113* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI + +@@ -69383,6 +70610,9 @@ pci:v00008086d00008D04* + pci:v00008086d00008D06* + ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] + ++pci:v00008086d00008D06sv000017AAsd00001031* ++ ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i ++ + pci:v00008086d00008D08* + ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] + +@@ -69959,6 +71189,9 @@ pci:v00008086d0000D131* + pci:v00008086d0000D131sv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=OptiPlex 980 + ++pci:v00008086d0000D131sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d0000D132* + ID_MODEL_FROM_DATABASE=Core Processor DMI + +@@ -69989,6 +71222,9 @@ pci:v00008086d0000D138sv00001028sd000002DA* + pci:v00008086d0000D138sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=Latitude E6510 + ++pci:v00008086d0000D138sv000015D9sd0000060D* ++ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ + pci:v00008086d0000D139* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 + +@@ -71144,6 +72380,9 @@ pci:v00009005d00008089* + pci:v00009005d0000808F* + ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID + ++pci:v00009005d0000808Fsv00001028sd00000168* ++ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ + pci:v00009005d00008090* + ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID + +@@ -71271,11 +72510,14 @@ pci:v00009710d00009912* + ID_MODEL_FROM_DATABASE=PCIe 9912 Multi-I/O Controller + + pci:v00009710d00009922* +- ID_MODEL_FROM_DATABASE=PCIe 9922 Multi-I/O Controller ++ ID_MODEL_FROM_DATABASE=MCS9922 PCIe Multi-I/O Controller + + pci:v00009710d00009990* + ID_MODEL_FROM_DATABASE=MCS9990 PCIe to 4‐Port USB 2.0 Host Controller + ++pci:v00009850* ++ ID_VENDOR_FROM_DATABASE=3Com (wrong ID) ++ + pci:v00009902* + ID_VENDOR_FROM_DATABASE=Stargen Inc. + +@@ -71381,6 +72623,9 @@ pci:v0000BD11* + pci:v0000BDBD* + ID_VENDOR_FROM_DATABASE=Blackmagic Design + ++pci:v0000BDBDd0000A106* ++ ID_MODEL_FROM_DATABASE=Multibridge Extreme ++ + pci:v0000BDBDd0000A117* + ID_MODEL_FROM_DATABASE=Intensity Pro + +@@ -71585,6 +72830,51 @@ pci:v0000D84D* + pci:v0000DADA* + ID_VENDOR_FROM_DATABASE=Datapath Limited + ++pci:v0000DADAd00000133* ++ ID_MODEL_FROM_DATABASE=VisionRGB-X2 ++ ++pci:v0000DADAd00000139* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E1 ++ ++pci:v0000DADAd00000144* ++ ID_MODEL_FROM_DATABASE=VisionSD8 ++ ++pci:v0000DADAd00000150* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E2 ++ ++pci:v0000DADAd00000151* ++ ID_MODEL_FROM_DATABASE=VisionSD4+1 ++ ++pci:v0000DADAd00000159* ++ ID_MODEL_FROM_DATABASE=VisionAV ++ ++pci:v0000DADAd00000161* ++ ID_MODEL_FROM_DATABASE=DGC161 ++ ++pci:v0000DADAd00000165* ++ ID_MODEL_FROM_DATABASE=DGC165 ++ ++pci:v0000DADAd00000167* ++ ID_MODEL_FROM_DATABASE=DGC167 ++ ++pci:v0000DADAd00000168* ++ ID_MODEL_FROM_DATABASE=DGC168 ++ ++pci:v0000DADAd00001139* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E1S ++ ++pci:v0000DADAd00001150* ++ ID_MODEL_FROM_DATABASE=VisionRGB-E2S ++ ++pci:v0000DADAd00001151* ++ ID_MODEL_FROM_DATABASE=VisionSD4+1S ++ ++pci:v0000DADAd00001153* ++ ID_MODEL_FROM_DATABASE=VisionDVI-DL ++ ++pci:v0000DADAd00001154* ++ ID_MODEL_FROM_DATABASE=VisionSDI2 ++ + pci:v0000DB10* + ID_VENDOR_FROM_DATABASE=Diablo Technologies + +@@ -71735,6 +73025,9 @@ pci:v0000E4BFd0000CC47* + pci:v0000E4BFd0000CC4D* + ID_MODEL_FROM_DATABASE=CCM-BOOGIE + ++pci:v0000E4E4* ++ ID_VENDOR_FROM_DATABASE=Xorcom ++ + pci:v0000E55E* + ID_VENDOR_FROM_DATABASE=Essence Technology, Inc. + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 60dbcd2..014c628 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -20,6 +20,12 @@ usb:v0003* + usb:v0004* + ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart + ++usb:v0011* ++ ID_VENDOR_FROM_DATABASE=Unknown manufacturer ++ ++usb:v0011p7788* ++ ID_MODEL_FROM_DATABASE=Flash mass storage drive ++ + usb:v0053* + ID_VENDOR_FROM_DATABASE=Planex + +@@ -30,7 +36,7 @@ usb:v0079* + ID_VENDOR_FROM_DATABASE=DragonRise Inc. + + usb:v0079p0006* +- ID_MODEL_FROM_DATABASE=Generic USB Joystick ++ ID_MODEL_FROM_DATABASE=PC TWIN SHOCK Gamepad + + usb:v0079p0011* + ID_MODEL_FROM_DATABASE=Gamepad +@@ -63,7 +69,7 @@ usb:v0204* + ID_VENDOR_FROM_DATABASE=Chipsbank Microelectronics Co., Ltd + + usb:v0204p6025* +- ID_MODEL_FROM_DATABASE=CBM2080 Flash drive controller ++ ID_MODEL_FROM_DATABASE=CBM2080 / CBM2090 Flash drive controller + + usb:v0204p6026* + ID_MODEL_FROM_DATABASE=CBM1180 Flash drive controller +@@ -263,6 +269,9 @@ usb:v03EBp2109* + usb:v03EBp210D* + ID_MODEL_FROM_DATABASE=XPLAIN evaluation kit (CDC ACM) + ++usb:v03EBp2110* ++ ID_MODEL_FROM_DATABASE=AVR JTAGICE3 Debugger and Programmer ++ + usb:v03EBp2122* + ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit + +@@ -1001,6 +1010,9 @@ usb:v03F0p2505* + usb:v03F0p2512* + ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 + ++usb:v03F0p2514* ++ ID_MODEL_FROM_DATABASE=4-port hub ++ + usb:v03F0p2517* + ID_MODEL_FROM_DATABASE=LaserJet 2410 + +@@ -1376,6 +1388,9 @@ usb:v03F0p5111* + usb:v03F0p5211* + ID_MODEL_FROM_DATABASE=PhotoSmart 3300 series + ++usb:v03F0p5307* ++ ID_MODEL_FROM_DATABASE=v165w Stick ++ + usb:v03F0p5311* + ID_MODEL_FROM_DATABASE=OfficeJet 6300 + +@@ -2054,6 +2069,21 @@ usb:v0403p8A28* + usb:v0403p8A98* + ID_MODEL_FROM_DATABASE=TIAO Multi-Protocol Adapter + ++usb:v0403p8B28* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCI70 ++ ++usb:v0403p8B29* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 CLS ++ ++usb:v0403p8B2A* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium Q1 ++ ++usb:v0403p8B2B* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCD ++ ++usb:v0403p8B2C* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 ++ + usb:v0403p9133* + ID_MODEL_FROM_DATABASE=CallerID + +@@ -2156,6 +2186,9 @@ usb:v0403pC8BD* + usb:v0403pC8BE* + ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium D1 + ++usb:v0403pC8BF* ++ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 RLV ++ + usb:v0403pCC48* + ID_MODEL_FROM_DATABASE=Tactrix OpenPort 1.3 Mitsubishi + +@@ -2966,6 +2999,9 @@ usb:v040Ap4021* + usb:v040Ap4022* + ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer + ++usb:v040Ap402E* ++ ID_MODEL_FROM_DATABASE=605 Photo Printer ++ + usb:v040Ap4034* + ID_MODEL_FROM_DATABASE=805 Photo Printer + +@@ -4949,6 +4985,9 @@ usb:v043Ep7001* + usb:v043Ep7013* + ID_MODEL_FROM_DATABASE=MP3 Player + ++usb:v043Ep70D7* ++ ID_MODEL_FROM_DATABASE=Mouse Scanner LSM-150 [LG Smart Scan Mouse] ++ + usb:v043Ep70F5* + ID_MODEL_FROM_DATABASE=External HDD + +@@ -5114,6 +5153,9 @@ usb:v044FpB203* + usb:v044FpB300* + ID_MODEL_FROM_DATABASE=Firestorm Dual Power + ++usb:v044FpB303* ++ ID_MODEL_FROM_DATABASE=FireStorm Dual Analog 2 ++ + usb:v044FpB304* + ID_MODEL_FROM_DATABASE=Firestorm Dual Power + +@@ -6437,6 +6479,9 @@ usb:v045Ep0772* + usb:v045Ep0779* + ID_MODEL_FROM_DATABASE=LifeCam HD-3000 + ++usb:v045Ep0780* ++ ID_MODEL_FROM_DATABASE=Comfort Curve Keyboard 3000 ++ + usb:v045Ep0797* + ID_MODEL_FROM_DATABASE=Optical Mouse 200 + +@@ -7313,6 +7358,9 @@ usb:v046DpC062* + usb:v046DpC063* + ID_MODEL_FROM_DATABASE=DELL Laser Mouse + ++usb:v046DpC064* ++ ID_MODEL_FROM_DATABASE=M110 corded optical mouse (M-B0001) ++ + usb:v046DpC066* + ID_MODEL_FROM_DATABASE=G9x Laser Mouse + +@@ -7331,6 +7379,9 @@ usb:v046DpC06B* + usb:v046DpC06C* + ID_MODEL_FROM_DATABASE=Optical Mouse + ++usb:v046DpC077* ++ ID_MODEL_FROM_DATABASE=M105 Optical Mouse ++ + usb:v046DpC101* + ID_MODEL_FROM_DATABASE=UltraX Media Remote + +@@ -7361,6 +7412,9 @@ usb:v046DpC125* + usb:v046DpC126* + ID_MODEL_FROM_DATABASE=Harmony Link + ++usb:v046DpC12B* ++ ID_MODEL_FROM_DATABASE=Harmony Touch Remote ++ + usb:v046DpC201* + ID_MODEL_FROM_DATABASE=WingMan Extreme Joystick with Throttle + +@@ -7448,6 +7502,12 @@ usb:v046DpC226* + usb:v046DpC227* + ID_MODEL_FROM_DATABASE=G15 Refresh Keyboard + ++usb:v046DpC228* ++ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard ++ ++usb:v046DpC229* ++ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard Macro Interface ++ + usb:v046DpC22A* + ID_MODEL_FROM_DATABASE=Gaming Keyboard G110 + +@@ -7466,6 +7526,18 @@ usb:v046DpC245* + usb:v046DpC246* + ID_MODEL_FROM_DATABASE=Gaming Mouse G300 + ++usb:v046DpC248* ++ ID_MODEL_FROM_DATABASE=G105 Gaming Keyboard ++ ++usb:v046DpC24A* ++ ID_MODEL_FROM_DATABASE=G600 Gaming Mouse ++ ++usb:v046DpC24D* ++ ID_MODEL_FROM_DATABASE=G710 Gaming Keyboard ++ ++usb:v046DpC24E* ++ ID_MODEL_FROM_DATABASE=G500s Laser Gaming Mouse ++ + usb:v046DpC281* + ID_MODEL_FROM_DATABASE=WingMan Force + +@@ -8543,6 +8615,9 @@ usb:v0480pA006* + usb:v0480pA007* + ID_MODEL_FROM_DATABASE=External Disk USB 3.0 + ++usb:v0480pA009* ++ ID_MODEL_FROM_DATABASE=Stor.E Basics ++ + usb:v0480pD010* + ID_MODEL_FROM_DATABASE=External Disk 3TB + +@@ -10814,6 +10889,9 @@ usb:v04A9p31E5* + usb:v04A9p31E6* + ID_MODEL_FROM_DATABASE=PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS + ++usb:v04A9p31E7* ++ ID_MODEL_FROM_DATABASE=SELPHY CP790 ++ + usb:v04A9p31EA* + ID_MODEL_FROM_DATABASE=EOS Rebel T2i / EOS 550D / EOS Kiss X4 + +@@ -10985,6 +11063,9 @@ usb:v04A9p325F* + usb:v04A9p3260* + ID_MODEL_FROM_DATABASE=PowerShot SX270 HS + ++usb:v04A9p3262* ++ ID_MODEL_FROM_DATABASE=PowerShot A2600 ++ + usb:v04A9p3264* + ID_MODEL_FROM_DATABASE=PowerShot A1400 + +@@ -11000,6 +11081,9 @@ usb:v04A9p3271* + usb:v04A9p3276* + ID_MODEL_FROM_DATABASE=PowerShot SX170 IS + ++usb:v04A9p3277* ++ ID_MODEL_FROM_DATABASE=PowerShot SX510 HS ++ + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + +@@ -11312,6 +11396,9 @@ usb:v04B3p4482* + usb:v04B3p4485* + ID_MODEL_FROM_DATABASE=Serial Converter + ++usb:v04B3p4524* ++ ID_MODEL_FROM_DATABASE=40 Character Vacuum Fluorescent Display ++ + usb:v04B3p4525* + ID_MODEL_FROM_DATABASE=Double sided CRT + +@@ -12335,6 +12422,9 @@ usb:v04C5p10FE* + usb:v04C5p1150* + ID_MODEL_FROM_DATABASE=fi-6230 + ++usb:v04C5p201D* ++ ID_MODEL_FROM_DATABASE=SATA 3.0 6Gbit/s Adaptor [GROOVY] ++ + usb:v04C6* + ID_VENDOR_FROM_DATABASE=Toshiba America Electronic Components + +@@ -12374,6 +12464,9 @@ usb:v04C8p072D* + usb:v04CA* + ID_VENDOR_FROM_DATABASE=Lite-On Technology Corp. + ++usb:v04CAp004F* ++ ID_MODEL_FROM_DATABASE=SK-9020 keyboard ++ + usb:v04CAp1766* + ID_MODEL_FROM_DATABASE=HID Monitor Controls + +@@ -13346,6 +13439,9 @@ usb:v04E6p5292* + usb:v04E6p5410* + ID_MODEL_FROM_DATABASE=SCR35xx Smart Card Reader + ++usb:v04E6p5591* ++ ID_MODEL_FROM_DATABASE=SCL3711-NFC&RW ++ + usb:v04E6pE000* + ID_MODEL_FROM_DATABASE=SCRx31 Reader + +@@ -14138,6 +14234,9 @@ usb:v04F2p0841* + usb:v04F2p0860* + ID_MODEL_FROM_DATABASE=2.4G Multimedia Wireless Kit + ++usb:v04F2p1121* ++ ID_MODEL_FROM_DATABASE=Periboard 717 Mini Wireless Keyboard ++ + usb:v04F2pA001* + ID_MODEL_FROM_DATABASE=E-Video DC-100 Camera + +@@ -28935,10 +29034,10 @@ usb:v0906* + ID_VENDOR_FROM_DATABASE=Faraday Technology Corp. + + usb:v0908* +- ID_VENDOR_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd ++ ID_VENDOR_FROM_DATABASE=Siemens AG + + usb:v0908p2701* +- ID_MODEL_FROM_DATABASE=Spy Pen VGA ++ ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA + + usb:v0909* + ID_VENDOR_FROM_DATABASE=Audio-Technica Corp. +@@ -38360,6 +38459,12 @@ usb:v0FFC* + usb:v0FFCp0021* + ID_MODEL_FROM_DATABASE=Nord Stage 2 + ++usb:v0FFD* ++ ID_VENDOR_FROM_DATABASE=EarlySense ++ ++usb:v0FFDpFF00* ++ ID_MODEL_FROM_DATABASE=OEM ++ + usb:v0FFF* + ID_VENDOR_FROM_DATABASE=Aopen, Inc. + +@@ -47762,6 +47867,12 @@ usb:v2237* + usb:v2237p4161* + ID_MODEL_FROM_DATABASE=eReader White + ++usb:v228D* ++ ID_VENDOR_FROM_DATABASE=8D Technologies inc. ++ ++usb:v228Dp0001* ++ ID_MODEL_FROM_DATABASE=Terminal Bike Key Reader ++ + usb:v22A6* + ID_VENDOR_FROM_DATABASE=Pie Digital, Inc. + +-- +1.7.9.2 + diff --git a/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch b/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch new file mode 100644 index 00000000..722f7382 --- /dev/null +++ b/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch @@ -0,0 +1,29 @@ +From f3b8fbb1da6519e14985ea444f8304673d20ad3f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 3 Sep 2014 13:28:31 +0200 +Subject: [PATCH] initrd-parse-etc.service: ignore return code of + daemon-reload + +It seems the return code of systemctl daemon-reload can be !=0 in some +circumstances, which causes a failure of the unit and breaks booting in +the initrd. +--- + units/initrd-parse-etc.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git units/initrd-parse-etc.service.in units/initrd-parse-etc.service.in +index c0b2543..42c059b 100644 +--- units/initrd-parse-etc.service.in ++++ units/initrd-parse-etc.service.in +@@ -16,7 +16,7 @@ ConditionPathExists=/etc/initrd-release + + [Service] + Type=oneshot +-ExecStartPre=@rootbindir@/systemctl daemon-reload ++ExecStartPre=-@rootbindir@/systemctl daemon-reload + # we have to retrigger initrd-fs.target after daemon-reload + ExecStart=-@rootbindir@/systemctl --no-block start initrd-fs.target + ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service +-- +1.7.9.2 + diff --git a/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch b/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch new file mode 100644 index 00000000..1cf00ff0 --- /dev/null +++ b/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch @@ -0,0 +1,30 @@ +From e8c108ca9f11a382742f212f5b42a02536b3d40f Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Wed, 17 Sep 2014 00:27:16 +0300 +Subject: [PATCH] journal: Do not count on the compiler initializing + found_last to false + +There is a very unlikely case where this can happen since gcc usually +does the sane thing. But let's make sure found_last is initialized anyway. + +Fixes: CID#996386 +--- + src/journal/journal-verify.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journal-verify.c src/journal/journal-verify.c +index 6c8ca8c..b4e8f73 100644 +--- src/journal/journal-verify.c ++++ src/journal/journal-verify.c +@@ -804,7 +804,7 @@ int journal_file_verify( + usec_t last_usec = 0; + int data_fd = -1, entry_fd = -1, entry_array_fd = -1; + unsigned i; +- bool found_last; ++ bool found_last = false; + #ifdef HAVE_GCRYPT + uint64_t last_tag = 0; + #endif +-- +1.7.9.2 + diff --git a/0001-journal-cleanup-up-error-handling-in-update_catalog.patch b/0001-journal-cleanup-up-error-handling-in-update_catalog.patch new file mode 100644 index 00000000..2062149b --- /dev/null +++ b/0001-journal-cleanup-up-error-handling-in-update_catalog.patch @@ -0,0 +1,104 @@ +From e3b9d9c8027a7c4c55cf1614e0fe9423fad69e8f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Apr 2014 08:44:55 -0400 +Subject: [PATCH] journal: cleanup up error handling in update_catalog() + +- Negative/positive errno mixup caused duplicates not to be detected properly. + Now we get a warning about some duplicate entries in our own catalogs... +- Errors in update_catalog would be ignored, but they should not be. +--- + src/journal/catalog.c | 25 +++++++++++++------------ + src/journal/test-catalog.c | 3 ++- + 2 files changed, 15 insertions(+), 13 deletions(-) + +diff --git src/journal/catalog.c src/journal/catalog.c +index 3ed0b7e..02dedc4 100644 +--- src/journal/catalog.c ++++ src/journal/catalog.c +@@ -103,7 +103,7 @@ static int finish_item( + const char *payload) { + + ssize_t offset; +- CatalogItem *i; ++ _cleanup_free_ CatalogItem *i = NULL; + int r; + + assert(h); +@@ -126,13 +126,14 @@ static int finish_item( + i->offset = htole64((uint64_t) offset); + + r = hashmap_put(h, i, i); +- if (r == EEXIST) { ++ if (r == -EEXIST) { + log_warning("Duplicate entry for " SD_ID128_FORMAT_STR ".%s, ignoring.", + SD_ID128_FORMAT_VAL(id), language ? language : "C"); +- free(i); + return 0; +- } ++ } else if (r < 0) ++ return r; + ++ i = NULL; + return 0; + } + +@@ -383,8 +384,8 @@ error: + int catalog_update(const char* database, const char* root, const char* const* dirs) { + _cleanup_strv_free_ char **files = NULL; + char **f; +- Hashmap *h; + struct strbuf *sb = NULL; ++ _cleanup_hashmap_free_free_ Hashmap *h = NULL; + _cleanup_free_ CatalogItem *items = NULL; + CatalogItem *i; + Iterator j; +@@ -406,13 +407,17 @@ int catalog_update(const char* database, const char* root, const char* const* di + } + + STRV_FOREACH(f, files) { +- log_debug("reading file '%s'", *f); +- catalog_import_file(h, sb, *f); ++ log_debug("Reading file '%s'", *f); ++ r = catalog_import_file(h, sb, *f); ++ if (r < 0) { ++ log_error("Failed to import file '%s': %s.", ++ *f, strerror(-r)); ++ goto finish; ++ } + } + + if (hashmap_size(h) <= 0) { + log_info("No items in catalog."); +- r = 0; + goto finish; + } else + log_debug("Found %u items in catalog.", hashmap_size(h)); +@@ -443,11 +448,7 @@ int catalog_update(const char* database, const char* root, const char* const* di + log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.", + database, n, sb->len, r); + +- r = 0; +- + finish: +- if (h) +- hashmap_free_free(h); + if (sb) + strbuf_cleanup(sb); + +diff --git src/journal/test-catalog.c src/journal/test-catalog.c +index b087a8b..967ab67 100644 +--- src/journal/test-catalog.c ++++ src/journal/test-catalog.c +@@ -157,7 +157,8 @@ int main(int argc, char *argv[]) { + + setlocale(LC_ALL, "de_DE.UTF-8"); + +- log_set_max_level(LOG_DEBUG); ++ log_parse_environment(); ++ log_open(); + + test_catalog_file_lang(); + +-- +1.7.9.2 + diff --git a/0001-journal-compress-return-early-in-uncompress_startswi.patch b/0001-journal-compress-return-early-in-uncompress_startswi.patch new file mode 100644 index 00000000..74777205 --- /dev/null +++ b/0001-journal-compress-return-early-in-uncompress_startswi.patch @@ -0,0 +1,186 @@ +Based on 5e592c66bdf76dfc8445b332f7a5088ca504ee90 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 4 Jul 2014 19:53:58 -0400 +Subject: [PATCH] journal/compress: return early in uncompress_startswith + +uncompress_startswith would always decode the whole stream, even +if it did not start with the given prefix. + +Reallocation policy was also strange. +--- + src/journal/compress.c | 91 ++++++++++++++----------------------------------- + 1 file changed, 27 insertions(+), 64 deletions(-) + +Index: src/journal/compress.c +=================================================================== +--- src/journal/compress.c.orig ++++ src/journal/compress.c +@@ -25,6 +25,7 @@ + #include + + #include "macro.h" ++#include "util.h" + #include "compress.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { +@@ -69,10 +70,9 @@ fail: + bool uncompress_blob(const void *src, uint64_t src_size, + void **dst, uint64_t *dst_alloc_size, uint64_t* dst_size, uint64_t dst_max) { + +- lzma_stream s = LZMA_STREAM_INIT; ++ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; + lzma_ret ret; + uint64_t space; +- bool b = false; + + assert(src); + assert(src_size > 0); +@@ -85,26 +85,18 @@ bool uncompress_blob(const void *src, ui + if (ret != LZMA_OK) + return false; + +- if (*dst_alloc_size <= src_size) { +- void *p; +- +- p = realloc(*dst, src_size*2); +- if (!p) +- return false; +- +- *dst = p; +- *dst_alloc_size = src_size*2; +- } ++ space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); ++ if (!greedy_realloc(dst, dst_alloc_size, space)) ++ return false; + + s.next_in = src; + s.avail_in = src_size; + + s.next_out = *dst; +- space = dst_max > 0 ? MIN(*dst_alloc_size, dst_max) : *dst_alloc_size; + s.avail_out = space; + + for (;;) { +- void *p; ++ uint64_t used; + + ret = lzma_code(&s, LZMA_FINISH); + +@@ -112,31 +104,25 @@ bool uncompress_blob(const void *src, ui + break; + + if (ret != LZMA_OK) +- goto fail; ++ return false; + + if (dst_max > 0 && (space - s.avail_out) >= dst_max) + break; + +- p = realloc(*dst, space*2); +- if (!p) +- goto fail; +- +- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *dst); +- s.avail_out += space; ++ if (dst_max > 0 && space == dst_max) ++ return false; + +- space *= 2; ++ used = space - s.avail_out; ++ space = MIN(2 * space, dst_max ?: (uint64_t) -1); ++ if (!greedy_realloc(dst, dst_alloc_size, space)) ++ return false; + +- *dst = p; +- *dst_alloc_size = space; ++ s.avail_out = space - used; ++ s.next_out = *dst + used; + } + + *dst_size = space - s.avail_out; +- b = true; +- +-fail: +- lzma_end(&s); +- +- return b; ++ return true; + } + + bool uncompress_startswith(const void *src, uint64_t src_size, +@@ -144,9 +130,8 @@ bool uncompress_startswith(const void *s + const void *prefix, uint64_t prefix_len, + uint8_t extra) { + +- lzma_stream s = LZMA_STREAM_INIT; ++ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; + lzma_ret ret; +- bool b = false; + + /* Checks whether the uncompressed blob starts with the + * mentioned prefix. The byte extra needs to follow the +@@ -163,16 +148,8 @@ bool uncompress_startswith(const void *s + if (ret != LZMA_OK) + return false; + +- if (*buffer_size <= prefix_len) { +- void *p; +- +- p = realloc(*buffer, prefix_len*2); +- if (!p) +- return false; +- +- *buffer = p; +- *buffer_size = prefix_len*2; +- } ++ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1))) ++ return false; + + s.next_in = src; + s.avail_in = src_size; +@@ -181,36 +158,23 @@ bool uncompress_startswith(const void *s + s.avail_out = *buffer_size; + + for (;;) { +- void *p; +- + ret = lzma_code(&s, LZMA_FINISH); + + if (ret != LZMA_STREAM_END && ret != LZMA_OK) +- goto fail; ++ return false; + +- if ((*buffer_size - s.avail_out > prefix_len) && +- memcmp(*buffer, prefix, prefix_len) == 0 && +- ((const uint8_t*) *buffer)[prefix_len] == extra) +- break; ++ if (*buffer_size - s.avail_out >= prefix_len + 1) ++ return memcmp(*buffer, prefix, prefix_len) == 0 && ++ ((const uint8_t*) *buffer)[prefix_len] == extra; + + if (ret == LZMA_STREAM_END) +- goto fail; +- +- p = realloc(*buffer, *buffer_size*2); +- if (!p) +- goto fail; ++ return false; + +- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *buffer); + s.avail_out += *buffer_size; + +- *buffer = p; +- *buffer_size *= 2; +- } +- +- b = true; +- +-fail: +- lzma_end(&s); ++ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2))) ++ return false; + +- return b; ++ s.next_out = *buffer + *buffer_size - s.avail_out; ++ } + } diff --git a/0001-journal-fix-export-of-messages-containing-newlines.patch b/0001-journal-fix-export-of-messages-containing-newlines.patch new file mode 100644 index 00000000..75cdd023 --- /dev/null +++ b/0001-journal-fix-export-of-messages-containing-newlines.patch @@ -0,0 +1,80 @@ +From 0ade5ffe2778e7b238bba8d979ca4d53dee1e702 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 31 Mar 2014 08:57:28 -0400 +Subject: [PATCH] journal: fix export of messages containing newlines + +In "export" format, newlines are significant, and messages containing +newlines must be exported as "binary". +--- + src/shared/logs-show.c | 7 ++++--- + src/shared/utf8.c | 5 +++-- + src/shared/utf8.h | 5 ++++- + 3 files changed, 11 insertions(+), 6 deletions(-) + +diff --git src/shared/logs-show.c src/shared/logs-show.c +index 9d14933..b0b66f6 100644 +--- src/shared/logs-show.c ++++ src/shared/logs-show.c +@@ -547,7 +547,9 @@ static int output_export( + startswith(data, "_BOOT_ID=")) + continue; + +- if (!utf8_is_printable(data, length)) { ++ if (utf8_is_printable_newline(data, length, false)) ++ fwrite(data, length, 1, f); ++ else { + const char *c; + uint64_t le64; + +@@ -562,8 +564,7 @@ static int output_export( + le64 = htole64(length - (c - (const char*) data) - 1); + fwrite(&le64, sizeof(le64), 1, f); + fwrite(c + 1, length - (c - (const char*) data) - 1, 1, f); +- } else +- fwrite(data, length, 1, f); ++ } + + fputc('\n', f); + } +diff --git src/shared/utf8.c src/shared/utf8.c +index 0b524d8..c559c13 100644 +--- src/shared/utf8.c ++++ src/shared/utf8.c +@@ -136,7 +136,7 @@ int utf8_encoded_to_unichar(const char *str) { + return unichar; + } + +-bool utf8_is_printable(const char* str, size_t length) { ++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) { + const uint8_t *p; + + assert(str); +@@ -145,7 +145,8 @@ bool utf8_is_printable(const char* str, size_t length) { + int encoded_len = utf8_encoded_valid_unichar((const char *)p); + int val = utf8_encoded_to_unichar((const char*)p); + +- if (encoded_len < 0 || val < 0 || is_unicode_control(val)) ++ if (encoded_len < 0 || val < 0 || is_unicode_control(val) || ++ (!newline && val == '\n')) + return false; + + length -= encoded_len; +diff --git src/shared/utf8.h src/shared/utf8.h +index c0eb73a..c087995 100644 +--- src/shared/utf8.h ++++ src/shared/utf8.h +@@ -31,7 +31,10 @@ const char *utf8_is_valid(const char *s) _pure_; + char *ascii_is_valid(const char *s) _pure_; + char *utf8_escape_invalid(const char *s); + +-bool utf8_is_printable(const char* str, size_t length) _pure_; ++bool utf8_is_printable_newline(const char* str, size_t length, bool newline) _pure_; ++_pure_ static inline bool utf8_is_printable(const char* str, size_t length) { ++ return utf8_is_printable_newline(str, length, true); ++} + + char *utf16_to_utf8(const void *s, size_t length); + +-- +1.7.9.2 + diff --git a/0001-journalctl-do-not-output-reboot-markers-when-running.patch b/0001-journalctl-do-not-output-reboot-markers-when-running.patch new file mode 100644 index 00000000..b2aed874 --- /dev/null +++ b/0001-journalctl-do-not-output-reboot-markers-when-running.patch @@ -0,0 +1,27 @@ +From 4bed248505da4da94d82078fe60326a374970e97 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 26 Sep 2014 10:49:55 -0400 +Subject: [PATCH] journalctl: do not output --reboot-- markers when running + non-interactively + +They are not legal in the export format. +--- + src/journal/journalctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journalctl.c src/journal/journalctl.c +index 47206d3..89a922c 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -1939,7 +1939,7 @@ int main(int argc, char *argv[]) { + goto finish; + } + +- if (!arg_merge) { ++ if (!arg_merge && !arg_quiet) { + sd_id128_t boot_id; + + r = sd_journal_get_monotonic_usec(j, NULL, &boot_id); +-- +1.7.9.2 + diff --git a/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch b/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch new file mode 100644 index 00000000..09bd55ef --- /dev/null +++ b/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch @@ -0,0 +1,36 @@ +From d258d4967eb24122c2b1014d4e873f61b633f1d2 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Sun, 25 May 2014 11:57:22 +0200 +Subject: [PATCH] keymap: Add Lenovo Enhanced USB Keyboard + +https://bugs.freedesktop.org/show_bug.cgi?id=77234 +--- + hwdb/60-keyboard.hwdb | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 832c686..fe5b3ee 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -579,6 +579,18 @@ keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr* + KEYBOARD_KEY_f1=f21 + ++# enhanced USB keyboard ++keyboard:usb:v04B3p301B* ++ KEYBOARD_KEY_90001=prog1 # ThinkVantage ++ KEYBOARD_KEY_90002=screenlock ++ KEYBOARD_KEY_90003=file ++ KEYBOARD_KEY_90004=wordprocessor ++ KEYBOARD_KEY_90005=spreadsheet ++ KEYBOARD_KEY_90006=calc ++ KEYBOARD_KEY_90007=mail ++ KEYBOARD_KEY_90008=www ++ ++ + ########################################################### + # Logitech + ########################################################### +-- +1.7.9.2 + diff --git a/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch b/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch new file mode 100644 index 00000000..67fb3061 --- /dev/null +++ b/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch @@ -0,0 +1,38 @@ +From 71ed2d38711e345f22e2200bc7bb156aed98972a Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 12 Nov 2014 23:30:46 +0100 +Subject: [PATCH] keymap: Add support for IBM ThinkPad X41 Tablet + +Scancode taken from: +http://www.thinkwiki.org/wiki/Tablet_Hardware_Buttons#Linux_Support + +William Jon McCann provided the DMI match. IBM seems to have +swapped the version and model of the system: + Manufacturer: IBM + Product Name: 18666TU + Version: ThinkPad X41 Tablet +--- + hwdb/60-keyboard.hwdb | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index d2ca965..56a4009 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -594,6 +594,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* + KEYBOARD_KEY_6f=down # down on d-pad + KEYBOARD_KEY_69=enter # enter on d-pad + ++# ThinkPad X41 Tablet ++keyboard:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:pvr* ++ KEYBOARD_KEY_6c=direction # rotate ++ KEYBOARD_KEY_68=f13 # toolbox ++ KEYBOARD_KEY_6b=esc # escape ++ KEYBOARD_KEY_69=enter # enter on d-pad ++ + # IdeaPad + keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* + KEYBOARD_KEY_42=f23 +-- +1.7.9.2 + diff --git a/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch b/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch new file mode 100644 index 00000000..29bbbcd1 --- /dev/null +++ b/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch @@ -0,0 +1,27 @@ +From a046659f8551e1c8f79ba4b66472444e285255df Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Tue, 7 Oct 2014 11:20:04 +0200 +Subject: [PATCH] keymap: Fix touchpad toggle on Toshiba Satellite P75-A7200 + +Just like everywhere else we use KEY_F21 instead of KEY_TOUCHPAD_TOGGLE for X +friendliness. +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 8a1baa7..1fea32a 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -1094,7 +1094,7 @@ keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75 + KEYBOARD_KEY_13c=brightnessdown + KEYBOARD_KEY_13d=brightnessup + KEYBOARD_KEY_13e=switchvideomode +- KEYBOARD_KEY_13f=touchpad_toggle ++ KEYBOARD_KEY_13f=f21 # Touchpad toggle + KEYBOARD_KEY_9e=wlan + + ########################################################### +-- +1.7.9.2 + diff --git a/0001-let-systemctl-completion-ignore-at-names.patch b/0001-let-systemctl-completion-ignore-at-names.patch index 4763dcaf..ea89c56a 100644 --- a/0001-let-systemctl-completion-ignore-at-names.patch +++ b/0001-let-systemctl-completion-ignore-at-names.patch @@ -1,5 +1,5 @@ ---- systemd-210/shell-completion/bash/systemctl.in -+++ systemd-210/shell-completion/bash/systemctl.in 2014-08-20 15:01:04.502736981 +0000 +--- systemd-210/shell-completion/bash/systemctl ++++ systemd-210/shell-completion/bash/systemctl 2014-08-20 15:01:04.502736981 +0000 @@ -43,7 +43,7 @@ __filter_units_by_property () { local units=("$@") local props diff --git a/0001-login-fix-memory-leak-on-DropController.patch b/0001-login-fix-memory-leak-on-DropController.patch new file mode 100644 index 00000000..ba5ed744 --- /dev/null +++ b/0001-login-fix-memory-leak-on-DropController.patch @@ -0,0 +1,36 @@ +From 60240797a4ce464ec7a0537ccbec4c83f599251c Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Fri, 22 Aug 2014 14:57:11 +0200 +Subject: [PATCH] login: fix memory-leak on DropController() + +Our bus-name watch helpers only remove a bus-name if it's not a +controller, anymore. If we call manager_drop_busname() before +unregistering the controller, the busname will not be dropped. Therefore, +first drop the controller, then drop the bus-name. +--- + src/login/logind-session.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 136bbce..0c6e425 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -1061,11 +1061,13 @@ bool session_is_controller(Session *s, const char *sender) { + + static void session_swap_controller(Session *s, char *name) { + SessionDevice *sd; ++ char *c; + + if (s->controller) { +- manager_drop_busname(s->manager, s->controller); +- free(s->controller); ++ c = s->controller; + s->controller = NULL; ++ manager_drop_busname(s->manager, c); ++ free(c); + + /* Drop all devices as they're now unused. Do that after the + * controller is released to avoid sending out useles +-- +1.7.9.2 + diff --git a/0001-login-fix-pos-array-allocation.patch b/0001-login-fix-pos-array-allocation.patch new file mode 100644 index 00000000..2549d220 --- /dev/null +++ b/0001-login-fix-pos-array-allocation.patch @@ -0,0 +1,52 @@ +From a1937e679f76758635d295287398abe526de2522 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 25 Feb 2014 12:20:25 +0100 +Subject: [PATCH] login: fix pos-array allocation + +GREEDY_REALLOC takes a pointer to the real size, not the array-width as +argument. Therefore, our array is currently way to small to keep the seat +positions. + +Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store +the array-width instead of array-size. +--- + src/login/logind-seat.c | 2 +- + src/shared/util.h | 9 +++++++++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 631be5f..36ec7ed 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { + if (seat_has_vts(s)) + pos = session->vtnr; + +- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) ++ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) + return; + + seat_evict_position(s, session); +diff --git src/shared/util.h src/shared/util.h +index 9913fce..78b1444 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); + #define GREEDY_REALLOC0(array, allocated, need) \ + greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) + ++#define GREEDY_REALLOC0_T(array, count, need) \ ++ ({ \ ++ size_t _size = (count) * sizeof((array)[0]); \ ++ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ ++ if (_ptr) \ ++ (count) = _size / sizeof((array)[0]); \ ++ _ptr; \ ++ }) ++ + static inline void _reset_errno_(int *saved_errno) { + errno = *saved_errno; + } +-- +1.7.9.2 + diff --git a/0001-login-pause-devices-before-acknowledging-VT-switches.patch b/0001-login-pause-devices-before-acknowledging-VT-switches.patch new file mode 100644 index 00000000..0a335de2 --- /dev/null +++ b/0001-login-pause-devices-before-acknowledging-VT-switches.patch @@ -0,0 +1,82 @@ +Based on 2ec3ff668ff03410e94cfef8e3ee9384a8222211 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Fri, 19 Sep 2014 13:26:39 +0200 +Subject: [PATCH] login: pause devices before acknowledging VT switches + +If a session controller does not need synchronous VT switches, we allow +them to pass VT control to logind, which acknowledges all VT switches +unconditionally. This works fine with all sessions using the dbus API, +but causes out-of-sync device use if we switch to legacy sessions that +are notified via VT signals. Those are processed before logind notices +the session-switch via sysfs. Therefore, leaving the old session still +active for a short amount of time. + +This, in fact, may cause the legacy session to prepare graphics devices +before the old session was deactivated, and thus, maybe causing the old +session to interfer with graphics device usage. + +Fix this by releasing devices immediately before acknowledging VT +switches. This way, sessions without VT handlers are required to support +async session switching (which they do in that case, anyway). +--- + src/login/logind-session.c | 21 +++++++++++++++++++++ + src/login/logind-session.h | 1 + + src/login/logind.c | 4 ++-- + 3 files changed, 24 insertions(+), 2 deletions(-) + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-09-24 07:40:45.786639180 +0000 +@@ -1040,6 +1040,27 @@ void session_restore_vt(Session *s) { + s->vtfd = -1; + } + ++void session_leave_vt(Session *s) { ++ assert(s); ++ ++ /* This is called whenever we get a VT-switch signal from the kernel. ++ * We acknowledge all of them unconditionally. Note that session are ++ * free to overwrite those handlers and we only register them for ++ * sessions with controllers. Legacy sessions are not affected. ++ * However, if we switch from a non-legacy to a legacy session, we must ++ * make sure to pause all device before acknowledging the switch. We ++ * process the real switch only after we are notified via sysfs, so the ++ * legacy session might have already started using the devices. If we ++ * don't pause the devices before the switch, we might confuse the ++ * session we switch to. */ ++ ++ if (s->vtfd < 0) ++ return; ++ ++ session_device_pause_all(s); ++ ioctl(s->vtfd, VT_RELDISP, 1); ++} ++ + bool session_is_controller(Session *s, const char *sender) { + assert(s); + +--- src/login/logind-session.h ++++ src/login/logind-session.h 2014-09-24 07:41:50.290236363 +0000 +@@ -173,6 +173,7 @@ KillWho kill_who_from_string(const char + + int session_mute_vt(Session *s); + void session_restore_vt(Session *s); ++void session_leave_vt(Session *s); + + bool session_is_controller(Session *s, const char *sender); + int session_set_controller(Session *s, const char *sender, bool force); +--- src/login/logind.c ++++ src/login/logind.c 2014-09-24 00:00:00.000000000 +0000 +@@ -743,11 +743,11 @@ static int manager_vt_switch(sd_event_so + } + + if (active->vtfd >= 0) { +- ioctl(active->vtfd, VT_RELDISP, 1); ++ session_leave_vt(active); + } else { + LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { + if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { +- ioctl(iter->vtfd, VT_RELDISP, 1); ++ session_leave_vt(iter); + break; + } + } diff --git a/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch b/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch new file mode 100644 index 00000000..ba00c036 --- /dev/null +++ b/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch @@ -0,0 +1,60 @@ +From f6ba8671d83f9fce9a00045d8fa399a1c07ba7fc Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 5 Nov 2014 08:30:52 -0500 +Subject: [PATCH] login: rerun vconsole-setup when switching from vgacon to + fbcon + +The initialization performed by systemd-vconsole-setup is reset +when changing console drivers (say from vgacon to fbcon), so we +need to run it in that case. + +See +http://lists.freedesktop.org/archives/systemd-devel/2014-October/023919.html +http://lists.freedesktop.org/archives/systemd-devel/2014-October/024423.html +http://lists.freedesktop.org/archives/systemd-devel/2014-November/024881.html + +This commit adds a udev rule to make systemd-vconsole-setup get run when +the fbcon device becomes available. + +(david: moved into new file 90-vconsole.rules instead of 71-seats.rules; + build-failures are on me, not on Ray) +--- + Makefile.am | 3 +++ + src/vconsole/90-vconsole.rules | 11 +++++++++++ + 2 files changed, 14 insertions(+) + create mode 100644 src/vconsole/90-vconsole.rules + +diff --git Makefile.am Makefile.am +index 3686103..f614b86 100644 +--- Makefile.am ++++ Makefile.am +@@ -4439,6 +4439,9 @@ rootlibexec_PROGRAMS += \ + nodist_systemunit_DATA += \ + units/systemd-vconsole-setup.service + ++dist_udevrules_DATA += \ ++ src/vconsole/90-vconsole.rules ++ + SYSINIT_TARGET_WANTS += \ + systemd-vconsole-setup.service + endif +diff --git src/vconsole/90-vconsole.rules src/vconsole/90-vconsole.rules +new file mode 100644 +index 0000000..bf6a9ef +--- /dev/null ++++ src/vconsole/90-vconsole.rules +@@ -0,0 +1,11 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++# Kernel resets vconsole state when changing console drivers so run ++# systemd-vconsole-setup when fbcon loads ++ ++ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="/usr/lib/systemd/systemd-vconsole-setup" +-- +1.7.9.2 + diff --git a/0001-login-simplify-controller-handling.patch b/0001-login-simplify-controller-handling.patch new file mode 100644 index 00000000..0ca9ec52 --- /dev/null +++ b/0001-login-simplify-controller-handling.patch @@ -0,0 +1,118 @@ +Based on b12e56156e5f363ebb8dc4ea5c10f5fd0665dc9d Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Mon, 1 Sep 2014 14:04:44 +0200 +Subject: [PATCH] login: simplify controller handling + +Simplify the way we handler session-controllers and fix several +shortcomings: + * send ReleaseDevice() signals on forced session takeover + * fix mem-leaks for busnames in case VT preparation fails (non-critical) + * avoid passing pre-allocated names to helpers +--- + src/login/logind-session.c | 55 ++++++++++++++++++++++---------------------- + 1 file changed, 28 insertions(+), 27 deletions(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 58453b5..10a43a4 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -1059,32 +1059,30 @@ bool session_is_controller(Session *s, const char *sender) { + return streq_ptr(s->controller, sender); + } + +-static void session_swap_controller(Session *s, char *name) { ++static void session_release_controller(Session *s, bool notify) { ++ _cleanup_free_ char *name = NULL; + SessionDevice *sd; +- char *c; + +- if (s->controller) { +- c = s->controller; +- s->controller = NULL; +- manager_drop_busname(s->manager, c); +- free(c); ++ if (!s->controller) ++ return; + +- /* Drop all devices as they're now unused. Do that after the +- * controller is released to avoid sending out useles +- * dbus signals. */ +- while ((sd = hashmap_first(s->devices))) +- session_device_free(sd); ++ name = s->controller; + +- if (!name) +- session_restore_vt(s); +- } ++ /* By resetting the controller before releasing the devices, we won't ++ * send notification signals. This avoids sending useless notifications ++ * if the controller is released on disconnects. */ ++ if (!notify) ++ s->controller = NULL; + +- s->controller = name; +- session_save(s); ++ while ((sd = hashmap_first(s->devices))) ++ session_device_free(sd); ++ ++ s->controller = NULL; ++ manager_drop_busname(s->manager, name); + } + + int session_set_controller(Session *s, const char *sender, bool force) { +- char *t; ++ _cleanup_free_ char *name = NULL; + int r; + + assert(s); +@@ -1095,15 +1093,13 @@ int session_set_controller(Session *s, const char *sender, bool force) { + if (s->controller && !force) + return -EBUSY; + +- t = strdup(sender); +- if (!t) ++ name = strdup(sender); ++ if (!name) + return -ENOMEM; + +- r = manager_watch_busname(s->manager, sender); +- if (r) { +- free(t); ++ r = manager_watch_busname(s->manager, name); ++ if (r) + return r; +- } + + /* When setting a session controller, we forcibly mute the VT and set + * it into graphics-mode. Applications can override that by changing +@@ -1115,11 +1111,14 @@ int session_set_controller(Session *s, const char *sender, bool force) { + * or reset the VT in case it crashed/exited, too. */ + r = session_mute_vt(s); + if (r < 0) { +- free(t); ++ manager_drop_busname(s->manager, name); + return r; + } + +- session_swap_controller(s, t); ++ session_release_controller(s, true); ++ s->controller = name; ++ name = NULL; ++ session_save(s); + + return 0; + } +@@ -1130,7 +1129,9 @@ void session_drop_controller(Session *s) { + if (!s->controller) + return; + +- session_swap_controller(s, NULL); ++ session_release_controller(s, false); ++ session_save(s); ++ session_restore_vt(s); + } + + static const char* const session_state_table[_SESSION_STATE_MAX] = { +-- +1.7.9.2 + diff --git a/0001-logind-add-support-for-Triton2-Power-Button.patch b/0001-logind-add-support-for-Triton2-Power-Button.patch new file mode 100644 index 00000000..dbd0047c --- /dev/null +++ b/0001-logind-add-support-for-Triton2-Power-Button.patch @@ -0,0 +1,24 @@ +From 58d4aabedd415a735efeb8c2608ee73618c07f78 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 22 Sep 2014 22:14:39 -0400 +Subject: [PATCH] logind: add support for Triton2 Power Button + +https://bugs.freedesktop.org/show_bug.cgi?id=84201 +--- + src/login/70-power-switch.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules +index 36fb827..a6997f7 100644 +--- src/login/70-power-switch.rules ++++ src/login/70-power-switch.rules +@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end" + + SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" ++SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" + + LABEL="power_switch_end" +-- +1.7.9.2 + diff --git a/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch b/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch new file mode 100644 index 00000000..269adaba --- /dev/null +++ b/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch @@ -0,0 +1,37 @@ +From 154034270c4643b7cfe61c0be1676d78bb1b7b07 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 8 Jul 2014 12:56:55 +0200 +Subject: [PATCH] logind: allow switching to unused VTs via SwitchTo() + +If compositors use the new SwitchTo() logic to map F1-F12, we should allow +them to switch to unregistered VTs, too. Otherwise, the auto-spawn logic +of gettys won't trigger. + +Reported-by: Jasper St. Pierre +Signed-off-by: David Herrmann +--- + src/login/logind-seat.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 3114de8..9992195 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -275,8 +275,13 @@ int seat_switch_to(Seat *s, unsigned int num) { + if (!num) + return -EINVAL; + +- if (num >= s->position_count || !s->positions[num]) ++ if (num >= s->position_count || !s->positions[num]) { ++ /* allow switching to unused VTs to trigger auto-activate */ ++ if (seat_has_vts(s) && num < 64) ++ return chvt(num); ++ + return -EINVAL; ++ } + + return session_activate(s->positions[num]); + } +-- +1.7.9.2 + diff --git a/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch b/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch new file mode 100644 index 00000000..382d4bf1 --- /dev/null +++ b/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch @@ -0,0 +1,168 @@ +From 6a79c58603ea816a1b4fa1520397b4e138bc1ca0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 19:30:16 +0100 +Subject: [PATCH] logind: ignore lid switch if more than 1 display is + connected + +Previously we expected the desktop environment to take an inhibitor +lock, but this opened a race on boot-up where logind might already be +running but no DE is active. + +Hence, let's move checking for additional displays into logind. This +also opens up this logic for other DEs, given that only GNOME +implemented the inhibitor logic so far. +--- + man/logind.conf.xml | 14 +++++++----- + src/login/logind-action.c | 8 +++++++ + src/login/logind-core.c | 55 +++++++++++++++++++++++++++++++++++++++++++-- + src/login/logind.h | 1 + + 4 files changed, 71 insertions(+), 7 deletions(-) + +diff --git man/logind.conf.xml man/logind.conf.xml +index 54cc379..7673201 100644 +--- man/logind.conf.xml ++++ man/logind.conf.xml +@@ -242,10 +242,10 @@ + ignore, logind will + never handle these keys. If + lock, all running +- sessions will be screen-locked; otherwise, +- the specified action +- will be taken in the respective +- event. Only input devices with the ++ sessions will be screen-locked; ++ otherwise, the specified action will ++ be taken in the respective event. Only ++ input devices with the + power-switch udev + tag will be watched for key/lid switch + events. HandlePowerKey= +@@ -257,7 +257,11 @@ + default to suspend. + HandleHibernateKey= + defaults to +- hibernate. ++ hibernate. Note ++ that the lid switch is ignored if the ++ system is inserted in a docking ++ station, or if more than one display ++ is connected. + + + +diff --git src/login/logind-action.c src/login/logind-action.c +index c04f210..da5a830 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -72,10 +72,18 @@ int manager_handle_action( + + /* If we are docked don't react to lid closing */ + if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { ++ int n; ++ + if (manager_is_docked(m)) { + log_debug("Ignoring lid switch request, system is docked."); + return 0; + } ++ ++ n = manager_count_displays(m); ++ if (n != 1) { ++ log_debug("Ignoring lid switch request, %s displays connected."); ++ return 0; ++ } + } + + /* If the key handling is inhibited, don't do anything */ +diff --git src/login/logind-core.c src/login/logind-core.c +index e4e593f..b8d03c3 100644 +--- src/login/logind-core.c ++++ src/login/logind-core.c +@@ -32,6 +32,7 @@ + #include "audit.h" + #include "bus-util.h" + #include "bus-error.h" ++#include "udev-util.h" + #include "logind.h" + + int manager_add_device(Manager *m, const char *sysfs, bool master, Device **_device) { +@@ -276,9 +277,11 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) { + return 0; + } + +- /* ignore non-master devices for unknown seats */ ++ seat = hashmap_get(m->seats, sn); + master = udev_device_has_tag(d, "master-of-seat"); +- if (!master && !(seat = hashmap_get(m->seats, sn))) ++ ++ /* Ignore non-master devices for unknown seats */ ++ if (!master && !seat) + return 0; + + r = manager_add_device(m, udev_device_get_syspath(d), master, &device); +@@ -514,3 +517,51 @@ bool manager_is_docked(Manager *m) { + + return false; + } ++ ++int manager_count_displays(Manager *m) { ++ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; ++ struct udev_list_entry *item = NULL, *first = NULL; ++ int r; ++ int n = 0; ++ ++ e = udev_enumerate_new(m->udev); ++ if (!e) ++ return -ENOMEM; ++ ++ r = udev_enumerate_add_match_subsystem(e, "drm"); ++ if (r < 0) ++ return r; ++ ++ r = udev_enumerate_scan_devices(e); ++ if (r < 0) ++ return r; ++ ++ first = udev_enumerate_get_list_entry(e); ++ udev_list_entry_foreach(item, first) { ++ _cleanup_udev_device_unref_ struct udev_device *d = NULL; ++ struct udev_device *p; ++ const char *status; ++ ++ d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item)); ++ if (!d) ++ return -ENOMEM; ++ ++ p = udev_device_get_parent(d); ++ if (!p) ++ return -ENOMEM; ++ ++ /* If the parent shares the same subsystem as the ++ * device we are looking at then it is a connector, ++ * which is what we are interested in. */ ++ if (!streq_ptr(udev_device_get_subsystem(p), "drm")) ++ continue; ++ ++ /* We count any connector which is not explicitly ++ * "disconnected" as connected. */ ++ status = udev_device_get_sysattr_value(d, "status"); ++ if (!streq_ptr(status, "disconnected")) ++ n++; ++ } ++ ++ return n; ++} +diff --git src/login/logind.h src/login/logind.h +index 0344acc..74d6641 100644 +--- src/login/logind.h ++++ src/login/logind.h +@@ -149,6 +149,7 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); + int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); + + bool manager_is_docked(Manager *m); ++int manager_count_displays(Manager *m); + + extern const sd_bus_vtable manager_vtable[]; + +-- +1.7.9.2 + diff --git a/0001-machine-don-t-return-uninitialized-variable.patch b/0001-machine-don-t-return-uninitialized-variable.patch new file mode 100644 index 00000000..5c1bfd05 --- /dev/null +++ b/0001-machine-don-t-return-uninitialized-variable.patch @@ -0,0 +1,26 @@ +From f14aa1f1b2e4e99ee20393871b5f64f1378ed6c3 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sun, 6 Jul 2014 14:12:28 +0200 +Subject: [PATCH] machine: don't return uninitialized variable + +Repotred by Ronny Chevalier +--- + src/machine/machine.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/machine/machine.c src/machine/machine.c +index c0fa1b2..cf38e3f 100644 +--- src/machine/machine.c ++++ src/machine/machine.c +@@ -371,7 +371,7 @@ static int machine_stop_scope(Machine *m) { + free(m->scope_job); + m->scope_job = job; + +- return r; ++ return 0; + } + + int machine_stop(Machine *m) { +-- +1.7.9.2 + diff --git a/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch b/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch new file mode 100644 index 00000000..df04192f --- /dev/null +++ b/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch @@ -0,0 +1,26 @@ +Based on 1f97091d3cb0887c264176b47b0a86c269acf0b5 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 27 Jun 2014 18:34:37 +0200 +Subject: [PATCH] main: uid_to_name() might fail due to OOM, protect against + that + +--- + src/core/main.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-07-01 12:25:17.906235000 +0000 +@@ -1525,9 +1525,10 @@ int main(int argc, char *argv[]) { + log_info("Running in initial RAM disk."); + + } else { +- _cleanup_free_ char *t = uid_to_name(getuid()); +- log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", +- getuid(), t); ++ _cleanup_free_ char *t; ++ ++ t = uid_to_name(getuid()); ++ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", getuid(), strna(t)); + } + + if (arg_running_as == SYSTEMD_SYSTEM && !skip_setup) { diff --git a/0001-make-209-working-on-older-dist.patch b/0001-make-209-working-on-older-dist.patch new file mode 100644 index 00000000..63fbd03b --- /dev/null +++ b/0001-make-209-working-on-older-dist.patch @@ -0,0 +1,79 @@ +--- systemd-209/units/kmod-static-nodes.service.in ++++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 +@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu + [Service] + Type=oneshot + RemainAfterExit=yes ++ExecStartPre=@MKDIR_P@ /run/tmpfiles.d + ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf +--- systemd-209/configure.ac ++++ systemd-209/configure.ac 2014-02-28 17:14:14.866235643 +0000 +@@ -300,9 +300,9 @@ AC_ARG_ENABLE(kmod, AS_HELP_STRING([--di + if test "x$enable_kmod" != "xno"; then + PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no) + if test "x$have_kmod" = "xyes"; then +- PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ], ++ PKG_CHECK_MODULES(KMOD, [ libkmod >= 14 ], + [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])], +- AC_MSG_ERROR([*** kmod version >= 15 not found])) ++ AC_MSG_ERROR([*** kmod version >= 14 not found])) + fi + if test "x$have_kmod" = xno -a "x$enable_kmod" = xyes; then + AC_MSG_ERROR([*** kmod support requested, but libraries not found]) +--- systemd-209/configure ++++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 +@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then + pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then + pkg_cv_KMOD_LIBS="$KMOD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16042,18 +16042,18 @@ else + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + else +- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$KMOD_PKG_ERRORS" >&5 + +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + else + KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS + KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/0001-make-fortify-happy-with-ppoll.patch b/0001-make-fortify-happy-with-ppoll.patch new file mode 100644 index 00000000..ed27a725 --- /dev/null +++ b/0001-make-fortify-happy-with-ppoll.patch @@ -0,0 +1,55 @@ +--- systemd-209/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-209/src/libsystemd/sd-bus/sd-bus.c 2014-02-28 11:08:21.354235373 +0000 +@@ -2548,7 +2548,7 @@ static int bus_poll(sd_bus *bus, bool ne + n = 2; + } + +- r = ppoll(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); ++ r = __ppoll_alias(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); + if (r < 0) + return -errno; + +--- systemd-209/src/core/hostname-setup.c ++++ systemd-209/src/core/hostname-setup.c 2014-02-28 11:14:51.594832792 +0000 +@@ -50,8 +50,8 @@ static int read_and_strip_hostname(const + } + + /* strip any leftover of a domain name */ +- if (domain = strchr(s, '.')) { +- *domain = NULL; ++ if ((domain = strchr(s, '.'))) { ++ *domain = '\0'; + } + + *hn = s; +--- systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-02-28 11:41:42.254735820 +0000 +@@ -142,7 +142,7 @@ static int ask_password_plymouth( + goto finish; + } + +- if ((j = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { ++ if ((j = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { + + if (errno == EINTR) + continue; +@@ -595,7 +595,7 @@ static int watch_passwords(void) { + if ((r = show_passwords()) < 0) + log_error("Failed to show password: %s", strerror(-r)); + +- if (poll(pollfd, _FD_MAX, -1) < 0) { ++ if (__poll_alias(pollfd, _FD_MAX, -1) < 0) { + + if (errno == EINTR) + continue; +--- systemd-209/src/shared/ask-password-api.c ++++ systemd-209/src/shared/ask-password-api.c 2014-02-28 11:47:21.754234675 +0000 +@@ -138,7 +138,7 @@ int ask_password_tty( + goto finish; + } + +- if ((k = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { ++ if ((k = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { + + if (errno == EINTR) + continue; diff --git a/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch b/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch new file mode 100644 index 00000000..f71e16bd --- /dev/null +++ b/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch @@ -0,0 +1,79 @@ +Based on 4dffec1459f50ac9f8f67ccfcb79836b4ed5a50e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 13:44:45 +0200 +Subject: [PATCH] manager: Linux on hppa has fewer rtsigs, hence avoid using + the higher ones there + +https://bugs.freedesktop.org/show_bug.cgi?id=84931 +--- + src/core/manager.c | 29 +++++++++++++++++++++++++++-- + 1 file changed, 27 insertions(+), 2 deletions(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-10-29 14:02:28.635837997 +0000 +@@ -340,11 +340,14 @@ static int manager_setup_signals(Manager + + assert(m); + +- /* We are not interested in SIGSTOP and friends. */ + assert_se(sigaction(SIGCHLD, &sa, NULL) == 0); + +- assert_se(sigemptyset(&mask) == 0); ++ /* We make liberal use of realtime signals here. On ++ * Linux/glibc we have 30 of them (with the exception of Linux ++ * on hppa, see below), between SIGRTMIN+0 ... SIGRTMIN+30 ++ * (aka SIGRTMAX). */ + ++ assert_se(sigemptyset(&mask) == 0); + sigset_add_many(&mask, + SIGCHLD, /* Child died */ + SIGTERM, /* Reexecute daemon */ +@@ -354,6 +357,7 @@ static int manager_setup_signals(Manager + SIGINT, /* Kernel sends us this on control-alt-del */ + SIGWINCH, /* Kernel sends us this on kbrequest (alt-arrowup) */ + SIGPWR, /* Some kernel drivers and upsd send us this on power failure */ ++ + SIGRTMIN+0, /* systemd: start default.target */ + SIGRTMIN+1, /* systemd: isolate rescue.target */ + SIGRTMIN+2, /* systemd: isolate emergency.target */ +@@ -361,19 +365,40 @@ static int manager_setup_signals(Manager + SIGRTMIN+4, /* systemd: start poweroff.target */ + SIGRTMIN+5, /* systemd: start reboot.target */ + SIGRTMIN+6, /* systemd: start kexec.target */ ++ ++ /* ... space for more special targets ... */ ++ + SIGRTMIN+13, /* systemd: Immediate halt */ + SIGRTMIN+14, /* systemd: Immediate poweroff */ + SIGRTMIN+15, /* systemd: Immediate reboot */ + SIGRTMIN+16, /* systemd: Immediate kexec */ ++ ++ /* ... space for more immediate system state changes ... */ ++ + SIGRTMIN+20, /* systemd: enable status messages */ + SIGRTMIN+21, /* systemd: disable status messages */ + SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */ + SIGRTMIN+23, /* systemd: set log level to LOG_INFO */ + SIGRTMIN+24, /* systemd: Immediate exit (--user only) */ ++ ++ /* .. one free signal here ... */ ++ ++#if !defined(__hppa64__) && !defined(__hppa__) ++ /* Apparently Linux on hppa has fewer RT ++ * signals (SIGRTMAX is SIGRTMIN+25 there), ++ * hence let's not try to make use of them ++ * here. Since these commands are accessible ++ * by different means and only really a safety ++ * net, the missing functionality on hppa ++ * shouldn't matter. */ ++ + SIGRTMIN+26, /* systemd: set log target to journal-or-kmsg */ + SIGRTMIN+27, /* systemd: set log target to console */ + SIGRTMIN+28, /* systemd: set log target to kmsg */ + SIGRTMIN+29, /* systemd: set log target to syslog-or-kmsg */ ++ ++ /* ... one free signal here SIGRTMIN+30 ... */ ++#endif + -1); + assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0); + diff --git a/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch b/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch new file mode 100644 index 00000000..7d5b066f --- /dev/null +++ b/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch @@ -0,0 +1,45 @@ +From e6a4a517befe559adf6d1dbbadf425c3538849c9 Mon Sep 17 00:00:00 2001 +From: Djalal Harouni +Date: Fri, 11 Apr 2014 01:45:52 +0100 +Subject: [PATCH] nspawn: allow to bind mount journal on top of a non empty + container journal dentry + +Currently if nspawn was called with --link-journal=host or +--link-journal=auto and the right /var/log/journal/machine-id/ exists +then the bind mount the subdirectory into the container might fail due +to the ~/mycontainer/var/log/journal/machine-id/ of the container not +being empty. + +There is no reason to check if the container journal subdir is empty +since there will be a bind mount on top of it. The user asked for a bind +mount so give it. + +Note: a next call with --link-journal=guest may fail due to the +/var/log/journal/machine-id/ on the host not being empty. + +https://bugs.freedesktop.org/show_bug.cgi?id=76193 + +Reported-by: Tobias Hunger +--- + src/nspawn/nspawn.c | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 9d9238f..ef84664 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1143,11 +1143,6 @@ static int setup_journal(const char *directory) { + } else if (access(p, F_OK) < 0) + return 0; + +- if (dir_is_empty(q) == 0) { +- log_error("%s not empty.", q); +- return -ENOTEMPTY; +- } +- + r = mkdir_p(q, 0755); + if (r < 0) { + log_error("Failed to create %s: %m", q); +-- +1.7.9.2 + diff --git a/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch b/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch new file mode 100644 index 00000000..ee7cea2a --- /dev/null +++ b/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch @@ -0,0 +1,21 @@ +Based on c00524c9cc7fb498c7244350e25823b8352f078c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 19 Sep 2014 23:02:00 +0200 +Subject: [PATCH] nspawn: don't try to create veth link with too long ifname + +Reported by: James Lott +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-09-23 15:33:06.766236272 +0000 +@@ -1383,7 +1383,7 @@ static int setup_veth(pid_t pid, char if + + /* Use two different interface name prefixes depending whether + * we are in bridge mode or not. */ +- snprintf(iface_name, IFNAMSIZ, "%s-%s", ++ snprintf(iface_name, IFNAMSIZ - 1, "%s-%s", + arg_network_bridge ? "vb" : "ve", arg_machine); + + r = sd_rtnl_open(&rtnl, 0); diff --git a/0001-nspawn-fix-network-interface.patch b/0001-nspawn-fix-network-interface.patch new file mode 100644 index 00000000..6e9fce7c --- /dev/null +++ b/0001-nspawn-fix-network-interface.patch @@ -0,0 +1,21 @@ +Based on 3125b3ef5db70d45882c7d6f617705802c5f939e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 28 Aug 2014 12:15:51 +0200 +Subject: [PATCH] nspawn: fix --network-interface + +Use SETLINK when modifying an existing link. +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-08-29 14:11:25.866235309 +0000 +@@ -1568,7 +1568,7 @@ static int move_network_interfaces(pid_t + return -EBUSY; + } + +- r = sd_rtnl_message_new_link(rtnl, &m, RTM_NEWLINK, ifi); ++ r = sd_rtnl_message_new_link(rtnl, &m, RTM_SETLINK, ifi); + if (r < 0) { + log_error("Failed to allocate netlink message: %s", strerror(-r)); + return r; diff --git a/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch b/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch new file mode 100644 index 00000000..4378b91f --- /dev/null +++ b/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch @@ -0,0 +1,31 @@ +Based on 4212a3375e03fd12cb407b34cab59dbe4ed9f4eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 3 Aug 2014 01:28:21 -0400 +Subject: [PATCH] nspawn: fix truncation of machine names in interface names + +Based on patch by Michael Marineau : + +When deriving the network interface name from machine name strncpy was +not properly null terminating the string and the maximum string size as +returned by strlen() is actually IFNAMSIZ-1, not IFNAMSIZ. +--- + src/nspawn/nspawn.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-08-22 10:18:20.390235611 +0000 +@@ -1383,12 +1383,8 @@ static int setup_veth(pid_t pid, char if + + /* Use two different interface name prefixes depending whether + * we are in bridge mode or not. */ +- if (arg_network_bridge) +- memcpy(iface_name, "vb-", 3); +- else +- memcpy(iface_name, "ve-", 3); +- +- strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3); ++ snprintf(iface_name, IFNAMSIZ, "%s-%s", ++ arg_network_bridge ? "vb" : "ve", arg_machine); + + r = sd_rtnl_open(&rtnl, 0); + if (r < 0) { diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch index 291de476..4dcfb70f 100644 --- a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -8,11 +8,11 @@ is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. This belongs to BNC#852015 and also to BNC#855160 --- - pam_systemd.c | 19 +++++++++++++++++++ + pam-module.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---- systemd-209/src/login/pam_systemd.c -+++ systemd-209/src/login/pam_systemd.c 2014-02-26 14:31:30.158235525 +0000 +--- systemd-209/src/login/pam-module.c ++++ systemd-209/src/login/pam-module.c 2014-02-26 14:31:30.158235525 +0000 @@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); if (r != PAM_SUCCESS) diff --git a/0001-parse_uid-return-ENXIO-for-1-uids.patch b/0001-parse_uid-return-ENXIO-for-1-uids.patch new file mode 100644 index 00000000..bc23d1a9 --- /dev/null +++ b/0001-parse_uid-return-ENXIO-for-1-uids.patch @@ -0,0 +1,45 @@ +From f841a154efbb3162d2a732936f031ac7a6b0d4cf Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 1 Jul 2014 16:00:05 +0200 +Subject: [PATCH] parse_uid: return -ENXIO for -1 uids + +--- + src/shared/audit.c | 3 --- + src/shared/util.c | 4 ++-- + 2 files changed, 2 insertions(+), 5 deletions(-) + +diff --git src/shared/audit.c src/shared/audit.c +index 5466447..f101050 100644 +--- src/shared/audit.c ++++ src/shared/audit.c +@@ -77,9 +77,6 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) { + if (r < 0) + return r; + +- if (u == (uid_t) -1) +- return -ENXIO; +- + *uid = (uid_t) u; + return 0; + } +diff --git src/shared/util.c src/shared/util.c +index e75f6c9..9b5a47a 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -282,11 +282,11 @@ int parse_uid(const char *s, uid_t* ret_uid) { + + /* Some libc APIs use (uid_t) -1 as special placeholder */ + if (uid == (uid_t) 0xFFFFFFFF) +- return -EINVAL; ++ return -ENXIO; + + /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ + if (uid == (uid_t) 0xFFFF) +- return -EINVAL; ++ return -ENXIO; + + *ret_uid = uid; + return 0; +-- +1.7.9.2 + diff --git a/0001-po-add-Ukrainian-translation.patch b/0001-po-add-Ukrainian-translation.patch new file mode 100644 index 00000000..b7dba0ee --- /dev/null +++ b/0001-po-add-Ukrainian-translation.patch @@ -0,0 +1,406 @@ +From 260b6323cc2aebe722d5b8e43fa63a502f906774 Mon Sep 17 00:00:00 2001 +From: Daniel Korostil +Date: Thu, 17 Jul 2014 02:07:29 +0300 +Subject: [PATCH] po: add Ukrainian translation + +--- + po/LINGUAS | 1 + + po/uk.po | 377 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 378 insertions(+) + create mode 100644 po/uk.po + +diff --git po/LINGUAS po/LINGUAS +index 2cb0f30..f214ece 100644 +--- po/LINGUAS ++++ po/LINGUAS +@@ -4,3 +4,4 @@ fr + it + pl + ru ++uk +diff --git po/uk.po po/uk.po +new file mode 100644 +index 0000000..7a5212a +--- /dev/null ++++ po/uk.po +@@ -0,0 +1,377 @@ ++# Ukrainian translation for systemd. ++# Copyright (C) 2014 systemd's COPYRIGHT HOLDER ++# This file is distributed under the same license as the systemd package. ++# Eugene Melnik , 2014. ++# Daniel Korostil , 2014. ++msgid "" ++msgstr "" ++"Project-Id-Version: systemd master\n" ++"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" ++"temd&keywords=I18N+L10N&component=general\n" ++"POT-Creation-Date: 2014-06-06 22:16+0000\n" ++"PO-Revision-Date: 2014-07-16 19:13+0300\n" ++"Last-Translator: Daniel Korostil \n" ++"Language-Team: linux.org.ua\n" ++"Language: uk\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" ++"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" ++"X-Generator: Virtaal 0.7.1\n" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 ++msgid "Set host name" ++msgstr "Встановити назву вузла" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 ++msgid "Authentication is required to set the local host name." ++msgstr "Засвідчення потрібне, щоб встановити назву локального вузла." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 ++msgid "Set static host name" ++msgstr "Встановити статичну назву вузла" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 ++msgid "" ++"Authentication is required to set the statically configured local host name, " ++"as well as the pretty host name." ++msgstr "" ++"Засвідчення потрібне, щоб вказати статично налаштовану назву локального " ++"вузла, так само й форматовану." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 ++msgid "Set machine information" ++msgstr "Встановити інформацію про машину" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 ++msgid "Authentication is required to set local machine information." ++msgstr "Засвідчення потрібно, щоб вказати локальну інформацію про машини." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 ++msgid "Set system locale" ++msgstr "Вказати системну локаль" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 ++msgid "Authentication is required to set the system locale." ++msgstr "Засвідчення потрібно, щоб встановити системну локаль." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 ++msgid "Set system keyboard settings" ++msgstr "Вказати налаштування системної клавіатури" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 ++msgid "Authentication is required to set the system keyboard settings." ++msgstr "Засвідчення потрібно, щоб вказати налаштування системної клавіатури." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:1 ++msgid "Allow applications to inhibit system shutdown" ++msgstr "Дозволити програмам перешкоджати вимкненню системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:2 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"shutdown." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати вимкненню системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:3 ++msgid "Allow applications to delay system shutdown" ++msgstr "Дозволити програмам затримувати вимкнення системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:4 ++msgid "" ++"Authentication is required to allow an application to delay system shutdown." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам затримувати вимкнення системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:5 ++msgid "Allow applications to inhibit system sleep" ++msgstr "Дозволити програмам перешкоджати засинанню системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:6 ++msgid "" ++"Authentication is required to allow an application to inhibit system sleep." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати засинанню системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:7 ++msgid "Allow applications to delay system sleep" ++msgstr "Дозволити програмами затримувати засинання системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:8 ++msgid "" ++"Authentication is required to allow an application to delay system sleep." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам затримувати засинання системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:9 ++msgid "Allow applications to inhibit automatic system suspend" ++msgstr "Дозволити програмам перешкоджати автоматичному призупиненню системи" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:10 ++msgid "" ++"Authentication is required to allow an application to inhibit automatic " ++"system suspend." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати автоматичному " ++"призупиненню системи." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:11 ++msgid "Allow applications to inhibit system handling of the power key" ++msgstr "Дозволити програмам перешкоджати обробленню системою клавіші живлення" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:12 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the power key." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші живлення." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:13 ++msgid "Allow applications to inhibit system handling of the suspend key" ++msgstr "" ++"Дозволити програмам перешкоджати обробленню системою клавіші призупинення" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:14 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the suspend key." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші призупинення." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:15 ++msgid "Allow applications to inhibit system handling of the hibernate key" ++msgstr "Дозволити програмам перешкоджати обробленню системою клавіші присипання" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:16 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the hibernate key." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші присипання." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:17 ++msgid "Allow applications to inhibit system handling of the lid switch" ++msgstr "" ++"Дозволити програмам перешкоджати обробленню системою клавіші перемикання " ++"кришки" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:18 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the lid switch." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " ++"системою клавіші перемикання кришки." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:19 ++msgid "Allow non-logged-in users to run programs" ++msgstr "Дозволити незареєстрованим користувачам запускати програми" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:20 ++msgid "" ++"Authentication is required to allow a non-logged-in user to run programs." ++msgstr "" ++"Засвідчення потрібно, щоб дозволити незареєстрованим користувачам запускати " ++"програми." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:21 ++msgid "Allow attaching devices to seats" ++msgstr "Дозволити під'єднання пристроїв до місць" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:22 ++msgid "Authentication is required for attaching a device to a seat." ++msgstr "Засвідчення потрібно, щоб під'єднувати пристрої до місць." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:23 ++msgid "Flush device to seat attachments" ++msgstr "Очисний пристрій для під'єднань до місця" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:24 ++msgid "" ++"Authentication is required for resetting how devices are attached to seats." ++msgstr "Засвідчення потрібно, щоб перезапустити спосіб під'єднання до місць." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:25 ++msgid "Power off the system" ++msgstr "Вимкнути систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:26 ++msgid "Authentication is required for powering off the system." ++msgstr "Засвідчення потрібно, щоб вимкнути систему." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:27 ++msgid "Power off the system while other users are logged in" ++msgstr "Вимикнути систему, коли інші користувачі ще в ній" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:28 ++msgid "" ++"Authentication is required for powering off the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб вимкнути систему, коли інші користувачі в ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:29 ++msgid "Power off the system while an application asked to inhibit it" ++msgstr "Вимкнути систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:30 ++msgid "" ++"Authentication is required for powering off the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб вимкнути систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:31 ++msgid "Reboot the system" ++msgstr "Перезавантажити систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:32 ++msgid "Authentication is required for rebooting the system." ++msgstr "Для перезавантаження системи необхідна ідентифікація." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:33 ++msgid "Reboot the system while other users are logged in" ++msgstr "Перезавантажити, якщо інщі користувачі в системі" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:34 ++msgid "" ++"Authentication is required for rebooting the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб перезапустити систему, коли інші користувачі в " ++"ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:35 ++msgid "Reboot the system while an application asked to inhibit it" ++msgstr "Перезапустити систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:36 ++msgid "" ++"Authentication is required for rebooting the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб перезапустити систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:37 ++msgid "Suspend the system" ++msgstr "Призупинити систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:38 ++msgid "Authentication is required for suspending the system." ++msgstr "Засвідчення потрібно, щоб призупинити систему." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:39 ++msgid "Suspend the system while other users are logged in" ++msgstr "Призупинити систему, коли інші користувачі в ній" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:40 ++msgid "" ++"Authentication is required for suspending the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб призупинити систему, коли інші користувачі в ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:41 ++msgid "Suspend the system while an application asked to inhibit it" ++msgstr "Призупинити систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:42 ++msgid "" ++"Authentication is required for suspending the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб призупнити систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:43 ++msgid "Hibernate the system" ++msgstr "Приспати систему" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:44 ++msgid "Authentication is required for hibernating the system." ++msgstr "Засвідчення потрібно, щоб приспати систему." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:45 ++msgid "Hibernate the system while other users are logged in" ++msgstr "Приспати систему, коли інші користувачі в ній" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:46 ++msgid "" ++"Authentication is required for hibernating the system while other users are " ++"logged in." ++msgstr "" ++"Засвідчення потрібно, щоб присипання систему, коли інші користувачі в ній." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:47 ++msgid "Hibernate the system while an application asked to inhibit it" ++msgstr "Приспати систему, коли програми намагаються першкодити цьому" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:48 ++msgid "" ++"Authentication is required for hibernating the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Засвідчення потрібно, щоб приспати систему, коли програми намагаються " ++"першкодити цьому." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 ++msgid "Set system time" ++msgstr "Вказати системний час" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 ++msgid "Authentication is required to set the system time." ++msgstr "Засвідчення потрібно, щоб вказати системний час." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 ++msgid "Set system timezone" ++msgstr "Вказати системний часовий пояс" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 ++msgid "Authentication is required to set the system timezone." ++msgstr "Засвідчення потрібно, щоб вказати системний часовий пояс." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 ++msgid "Set RTC to local timezone or UTC" ++msgstr "Вкажіть RTC для локального часового поясу або UTC" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 ++msgid "" ++"Authentication is required to control whether the RTC stores the local or " ++"UTC time." ++msgstr "Засвідчення потрібно, щоб контролювати, чи RTC зберігає час, чи UTC." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 ++msgid "Turn network time synchronization on or off" ++msgstr "Увімкнути або вимкнути синхронізування через мережу" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 ++msgid "" ++"Authentication is required to control whether network time synchronization " ++"shall be enabled." ++msgstr "" ++"Засвідчення потрібно, щоб контролювати, чи синхронізування часу через мережу " ++"запущено." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 ++msgid "Send passphrase back to system" ++msgstr "Надіслати пароль назад у систему" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 ++msgid "" ++"Authentication is required to send the entered passphrase back to the system." ++msgstr "Засвідчення потрібно, щоб надіслати введений пароль назад у систему." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 ++msgid "Privileged system and service manager access" ++msgstr "Привілейований доступ до менеджера системи і служб" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 ++msgid "Authentication is required to access the system and service manager." ++msgstr "Засвідчення потрібно, щоб доступитись до менеджера системи і служб." +-- +1.7.9.2 + diff --git a/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch b/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch new file mode 100644 index 00000000..9d10cced --- /dev/null +++ b/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch @@ -0,0 +1,27 @@ +Based on b2103dccb354de3f38c49c14ccb637bdf665e40f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 5 Apr 2014 13:59:01 -0400 +Subject: [PATCH] reduce the amount of messages logged to /dev/kmsg when + "debug" is specified + +--- + src/core/main.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-04-14 13:50:48.490814738 +0000 +@@ -412,12 +412,8 @@ static int parse_proc_cmdline_word(const + if (arg_show_status == _SHOW_STATUS_UNSET) + arg_show_status = SHOW_STATUS_AUTO; + } else if (streq(word, "debug")) { +- /* Log to kmsg, the journal socket will fill up before the +- * journal is started and tools running during that time +- * will block with every log message for for 60 seconds, +- * before they give up. */ +- log_set_max_level(LOG_DEBUG); +- log_set_target(detect_container(NULL) > 0 ? LOG_TARGET_CONSOLE : LOG_TARGET_KMSG); ++ if (detect_container(NULL) > 0) ++ log_set_target(LOG_TARGET_CONSOLE); + } else if (!in_initrd()) { + unsigned i; + diff --git a/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch b/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch new file mode 100644 index 00000000..0438c3ee --- /dev/null +++ b/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch @@ -0,0 +1,39 @@ +From ead349509e325aad720bb0349521a9e56e2ac7c0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 13 May 2014 16:40:53 +0200 +Subject: [PATCH] replace more dup() by F_DUPFD_CLOEXEC + +--- + src/login/inhibit.c | 2 +- + src/shared/install.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/login/inhibit.c src/login/inhibit.c +index 48c2ec4..ae3afdf 100644 +--- src/login/inhibit.c ++++ src/login/inhibit.c +@@ -64,7 +64,7 @@ static int inhibit(sd_bus *bus, sd_bus_error *error) { + if (r < 0) + return r; + +- r = dup(fd); ++ r = fcntl(fd, F_DUPFD_CLOEXEC, 3); + if (r < 0) + return -errno; + +diff --git src/shared/install.c src/shared/install.c +index acfba25..9ce9403 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -332,7 +332,7 @@ static int remove_marked_symlinks( + int q, cfd; + deleted = false; + +- cfd = dup(fd); ++ cfd = fcntl(fd, F_DUPFD_CLOEXEC, 3); + if (cfd < 0) { + r = -errno; + break; +-- +1.7.9.2 + diff --git a/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch b/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch new file mode 100644 index 00000000..47dbcce3 --- /dev/null +++ b/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch @@ -0,0 +1,181 @@ +From 42c4ebcbd4cbd7b27667eb8081ee4dc46f9ece17 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 13 Mar 2014 20:33:22 +0100 +Subject: [PATCH] sd-bus: don't look for a 64bit value when we only have 32bit + value on reply cookie hash table access + +This broke hashtable lookups for the message cookies on s390x, which is +a 64bit BE machine where accessing 32bit values as 64bit and vice versa +will explode. + +Also, while we are at it, be a bit more careful when dealing with the +64bit cookies we expose and the 32bit serial numbers dbus uses in its +payload. + +Problem identified by Fridrich Strba. +--- + src/libsystemd/sd-bus/bus-dump.c | 4 ++-- + src/libsystemd/sd-bus/bus-kernel.c | 2 +- + src/libsystemd/sd-bus/bus-message.c | 15 ++++++++++----- + src/libsystemd/sd-bus/bus-message.h | 5 +++-- + src/libsystemd/sd-bus/sd-bus.c | 12 ++++++------ + 5 files changed, 22 insertions(+), 16 deletions(-) + +diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c +index 0e41549..ea81644 100644 +--- a/src/libsystemd/sd-bus/bus-dump.c ++++ b/src/libsystemd/sd-bus/bus-dump.c +@@ -69,10 +69,10 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { + if (BUS_MESSAGE_COOKIE(m) == 0xFFFFFFFFULL) + fprintf(f, " Cookie=-1"); + else +- fprintf(f, " Cookie=%lu", (unsigned long) BUS_MESSAGE_COOKIE(m)); ++ fprintf(f, " Cookie=%" PRIu64, BUS_MESSAGE_COOKIE(m)); + + if (m->reply_cookie != 0) +- fprintf(f, " ReplyCookie=%lu", (unsigned long) m->reply_cookie); ++ fprintf(f, " ReplyCookie=%" PRIu64, m->reply_cookie); + + fputs("\n", f); + +diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c +index 8a2ca02..80ef15b 100644 +--- a/src/libsystemd/sd-bus/bus-kernel.c ++++ b/src/libsystemd/sd-bus/bus-kernel.c +@@ -266,7 +266,7 @@ static int bus_message_setup_kmsg(sd_bus *b, sd_bus_message *m) { + well_known ? 0 : + m->destination ? unique : KDBUS_DST_ID_BROADCAST; + m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS; +- m->kdbus->cookie = m->header->serial; ++ m->kdbus->cookie = (uint64_t) m->header->serial; + m->kdbus->priority = m->priority; + + if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) +diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c +index fb894ef..97ab0e3 100644 +--- a/src/libsystemd/sd-bus/bus-message.c ++++ b/src/libsystemd/sd-bus/bus-message.c +@@ -617,7 +617,7 @@ static int message_new_reply( + t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; + t->reply_cookie = BUS_MESSAGE_COOKIE(call); + +- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); ++ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); + if (r < 0) + goto fail; + +@@ -752,7 +752,7 @@ int bus_message_new_synthetic_error( + t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; + t->reply_cookie = cookie; + +- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); ++ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); + if (r < 0) + goto fail; + +@@ -5075,21 +5075,26 @@ int bus_message_parse_fields(sd_bus_message *m) { + break; + } + +- case BUS_MESSAGE_HEADER_REPLY_SERIAL: ++ case BUS_MESSAGE_HEADER_REPLY_SERIAL: { ++ uint32_t serial; ++ + if (m->reply_cookie != 0) + return -EBADMSG; + + if (!streq(signature, "u")) + return -EBADMSG; + +- r = message_peek_field_uint32(m, &ri, item_size, &m->reply_cookie); ++ r = message_peek_field_uint32(m, &ri, item_size, &serial); + if (r < 0) + return r; + ++ m->reply_cookie = serial; ++ + if (m->reply_cookie == 0) + return -EBADMSG; + + break; ++ } + + case BUS_MESSAGE_HEADER_UNIX_FDS: + if (unix_fds != 0) +@@ -5489,7 +5494,7 @@ int bus_message_remarshal(sd_bus *bus, sd_bus_message **m) { + return -ENOMEM; + + n->reply_cookie = (*m)->reply_cookie; +- r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, n->reply_cookie); ++ r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) n->reply_cookie); + if (r < 0) + return r; + +diff --git a/src/libsystemd/sd-bus/bus-message.h b/src/libsystemd/sd-bus/bus-message.h +index 5fbe3e6..df79294 100644 +--- a/src/libsystemd/sd-bus/bus-message.h ++++ b/src/libsystemd/sd-bus/bus-message.h +@@ -84,7 +84,7 @@ struct sd_bus_message { + + sd_bus *bus; + +- uint32_t reply_cookie; ++ uint64_t reply_cookie; + + const char *path; + const char *interface; +@@ -162,7 +162,8 @@ static inline uint64_t BUS_MESSAGE_BSWAP64(sd_bus_message *m, uint64_t u) { + return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_64(u) : u; + } + +-static inline uint32_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { ++static inline uint64_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { ++ /* Note that we return the serial converted to a 64bit value here */ + return BUS_MESSAGE_BSWAP32(m, m->header->serial); + } + +diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c +index ca7c428..8e44e50 100644 +--- a/src/libsystemd/sd-bus/sd-bus.c ++++ b/src/libsystemd/sd-bus/sd-bus.c +@@ -1486,15 +1486,15 @@ static int bus_write_message(sd_bus *bus, sd_bus_message *m, bool hint_sync_call + return r; + + if (bus->is_kernel || *idx >= BUS_MESSAGE_SIZE(m)) +- log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", ++ log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", + bus_message_type_to_string(m->header->type), + strna(sd_bus_message_get_sender(m)), + strna(sd_bus_message_get_destination(m)), + strna(sd_bus_message_get_path(m)), + strna(sd_bus_message_get_interface(m)), + strna(sd_bus_message_get_member(m)), +- (unsigned long) BUS_MESSAGE_COOKIE(m), +- (unsigned long) m->reply_cookie, ++ BUS_MESSAGE_COOKIE(m), ++ m->reply_cookie, + strna(m->error.message)); + + return r; +@@ -2253,15 +2253,15 @@ static int process_message(sd_bus *bus, sd_bus_message *m) { + bus->current = m; + bus->iteration_counter++; + +- log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", ++ log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", + bus_message_type_to_string(m->header->type), + strna(sd_bus_message_get_sender(m)), + strna(sd_bus_message_get_destination(m)), + strna(sd_bus_message_get_path(m)), + strna(sd_bus_message_get_interface(m)), + strna(sd_bus_message_get_member(m)), +- (unsigned long) BUS_MESSAGE_COOKIE(m), +- (unsigned long) m->reply_cookie, ++ BUS_MESSAGE_COOKIE(m), ++ m->reply_cookie, + strna(m->error.message)); + + r = process_hello(bus, m); +-- +1.9.0 + diff --git a/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch b/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch new file mode 100644 index 00000000..c1326c50 --- /dev/null +++ b/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch @@ -0,0 +1,25 @@ +From ef7b6c0190fefaacf6d8f8e1a6dda4ba8b98091b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 29 Oct 2014 17:58:43 +0100 +Subject: [PATCH] sd-bus: properly handle removals of non-existing matches + +--- + src/libsystemd/sd-bus/bus-match.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c +index 18afe0f..5658c61 100644 +--- src/libsystemd/sd-bus/bus-match.c ++++ src/libsystemd/sd-bus/bus-match.c +@@ -537,7 +537,7 @@ static int bus_match_find_compare_value( + else if (BUS_MATCH_CAN_HASH(t)) + n = hashmap_get(c->compare.children, value_str); + else { +- for (n = c->child; !value_node_same(n, t, value_u8, value_str); n = n->next) ++ for (n = c->child; n && !value_node_same(n, t, value_u8, value_str); n = n->next) + ; + } + +-- +1.7.9.2 + diff --git a/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch b/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch new file mode 100644 index 00000000..4b9e6e87 --- /dev/null +++ b/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch @@ -0,0 +1,58 @@ +From 92daebc0d0268c35f416c1665e0da3d4be5dd69f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 11 Jul 2014 16:48:35 +0200 +Subject: [PATCH] sd-event: don't require a signal event source to be enabled + for the child event source to work + +--- + src/libsystemd/sd-event/sd-event.c | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index a21f7db..9a9664c 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -1919,14 +1919,13 @@ static int process_signal(sd_event *e, uint32_t events) { + int r; + + assert(e); +- assert(e->signal_sources); + + assert_return(events == EPOLLIN, -EIO); + + for (;;) { + struct signalfd_siginfo si; + ssize_t ss; +- sd_event_source *s; ++ sd_event_source *s = NULL; + + ss = read(e->signal_fd, &si, sizeof(si)); + if (ss < 0) { +@@ -1941,16 +1940,19 @@ static int process_signal(sd_event *e, uint32_t events) { + + read_one = true; + +- s = e->signal_sources[si.ssi_signo]; + if (si.ssi_signo == SIGCHLD) { + r = process_child(e); + if (r < 0) + return r; +- if (r > 0 || !s) ++ if (r > 0) + continue; +- } else +- if (!s) +- return -EIO; ++ } ++ ++ if (e->signal_sources) ++ s = e->signal_sources[si.ssi_signo]; ++ ++ if (!s) ++ continue; + + s->signal.siginfo = si; + r = source_set_pending(s, true); +-- +1.7.9.2 + diff --git a/0001-sd-event-restore-correct-timeout-behaviour.patch b/0001-sd-event-restore-correct-timeout-behaviour.patch new file mode 100644 index 00000000..8787f3f3 --- /dev/null +++ b/0001-sd-event-restore-correct-timeout-behaviour.patch @@ -0,0 +1,37 @@ +Based on eec6022cf039e62233139000b9e95db943959e48 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 13:43:30 +0200 +Subject: [PATCH] sd-event: restore correct timeout behaviour + +--- + src/libsystemd/sd-event/sd-event.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c 2014-06-06 10:26:51.422235695 +0000 +@@ -2047,6 +2047,7 @@ _public_ int sd_event_run(sd_event *e, u + unsigned ev_queue_max; + sd_event_source *p; + int r, i, m; ++ bool timedout; + + assert_return(e, -EINVAL); + assert_return(!event_pid_changed(e), -ECHILD); +@@ -2084,6 +2085,8 @@ _public_ int sd_event_run(sd_event *e, u + goto finish; + } + ++ timedout = m == 0; ++ + dual_timestamp_get(&e->timestamp); + + for (i = 0; i < m; i++) { +@@ -2123,7 +2126,7 @@ _public_ int sd_event_run(sd_event *e, u + + p = event_next_pending(e); + if (!p) { +- r = 1; ++ r = !timedout; + goto finish; + } + diff --git a/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch b/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch new file mode 100644 index 00000000..cde6a3da --- /dev/null +++ b/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch @@ -0,0 +1,111 @@ +Backport of 7ca1d31964a2553f7bd011bc10ac42e0ebc1f975 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 2 May 2014 22:29:18 +0200 +Subject: [PATCH] sd-rtnl-message: append - fix uninitialized memory + +We were not properly clearing the padding at the front of some containers. +--- + src/libsystemd/sd-rtnl/rtnl-message.c | 42 +++++++++++++++++++++------------- + 1 file changed, 27 insertions(+), 15 deletions(-) + +--- src/libsystemd/sd-rtnl/rtnl-message.c ++++ src/libsystemd/sd-rtnl/rtnl-message.c 2014-05-05 13:33:01.998235340 +0000 +@@ -314,24 +314,28 @@ int sd_rtnl_message_link_get_flags(sd_rt + /* If successful the updated message will be correctly aligned, if + unsuccessful the old message is untouched. */ + static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void *data, size_t data_length) { +- uint32_t rta_length, message_length; ++ uint32_t rta_length; ++ size_t message_length, padding_length; + struct nlmsghdr *new_hdr; + struct rtattr *rta; + char *padding; + unsigned i; ++ int offset; + + assert(m); + assert(m->hdr); + assert(!m->sealed); + assert(NLMSG_ALIGN(m->hdr->nlmsg_len) == m->hdr->nlmsg_len); +- assert(!data || data_length > 0); +- assert(data || m->n_containers < RTNL_CONTAINER_DEPTH); ++ assert(!data || data_length); ++ ++ /* get offset of the new attribute */ ++ offset = m->hdr->nlmsg_len; + + /* get the size of the new rta attribute (with padding at the end) */ + rta_length = RTA_LENGTH(data_length); + + /* get the new message size (with padding at the end) */ +- message_length = m->hdr->nlmsg_len + RTA_ALIGN(rta_length); ++ message_length = offset + RTA_ALIGN(rta_length); + + /* realloc to fit the new attribute */ + new_hdr = realloc(m->hdr, message_length); +@@ -340,32 +344,35 @@ static int add_rtattr(sd_rtnl_message *m + m->hdr = new_hdr; + + /* get pointer to the attribute we are about to add */ +- rta = (struct rtattr *) ((uint8_t *) m->hdr + m->hdr->nlmsg_len); ++ rta = (struct rtattr *) ((uint8_t *) m->hdr + offset); + + /* if we are inside containers, extend them */ + for (i = 0; i < m->n_containers; i++) +- GET_CONTAINER(m, i)->rta_len += message_length - m->hdr->nlmsg_len; ++ GET_CONTAINER(m, i)->rta_len += message_length - offset; + + /* fill in the attribute */ + rta->rta_type = type; + rta->rta_len = rta_length; +- if (!data) { +- /* this is the start of a new container */ +- m->container_offsets[m->n_containers ++] = m->hdr->nlmsg_len; +- } else { ++ if (data) + /* we don't deal with the case where the user lies about the type + * and gives us too little data (so don't do that) +- */ ++ */ + padding = mempcpy(RTA_DATA(rta), data, data_length); +- /* make sure also the padding at the end of the message is initialized */ +- memzero(padding, +- (uint8_t *) m->hdr + message_length - (uint8_t *) padding); ++ else { ++ /* if no data was passed, make sure we still initialize the padding ++ note that we can have data_length > 0 (used by some containers) */ ++ padding = RTA_DATA(rta); ++ data_length = 0; + } + ++ /* make sure also the padding at the end of the message is initialized */ ++ padding_length = (uint8_t*)m->hdr + message_length - (uint8_t*)padding; ++ memzero(padding, padding_length); ++ + /* update message size */ + m->hdr->nlmsg_len = message_length; + +- return 0; ++ return offset; + } + + int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const char *data) { +@@ -498,6 +505,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_m + + assert_return(m, -EINVAL); + assert_return(!m->sealed, -EPERM); ++ assert_return(m->n_containers < RTNL_CONTAINER_DEPTH, -ERANGE); + + r = sd_rtnl_message_get_type(m, &rtm_type); + if (r < 0) +@@ -548,6 +556,10 @@ int sd_rtnl_message_append_u32(sd_rtnl_m + if (r < 0) + return r; + ++ m->container_offsets[m->n_containers ++] = r; ++ ++ m->container_offsets[m->n_containers ++] = r; ++ + return 0; + } + diff --git a/0001-selinux-access-fix-broken-ternary-operator.patch b/0001-selinux-access-fix-broken-ternary-operator.patch new file mode 100644 index 00000000..b94de819 --- /dev/null +++ b/0001-selinux-access-fix-broken-ternary-operator.patch @@ -0,0 +1,23 @@ +Based on 1e648011b20c8126412d3cf2699d575d9ba9e0fe Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 21 Nov 2014 17:02:15 +0100 +Subject: [PATCH] selinux-access: fix broken ternary operator + +it seems to be a typo introduced by ebcf1f97de4f6b1580ae55eb56b1a3939fe6b602 +- _r = selinux_access_check(_b, _m, _u->source_path ?:_u->fragment_path, (permission), &_error); \ ++ ({ Unit *_unit = (unit); selinux_generic_access_check(bus,message, _unit->fragment_path ?: _unit->fragment_path, permission,error); }) +--- + src/core/selinux-access.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/selinux-access.h ++++ src/core/selinux-access.h 2014-12-15 11:49:54.521518349 +0000 +@@ -34,7 +34,7 @@ int selinux_generic_access_check(sd_bus + #define selinux_access_check(bus, message, permission, error) \ + selinux_generic_access_check(bus, message, NULL, permission, error) + #define selinux_unit_access_check(unit, bus, message, permission, error) \ +- ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->fragment_path ?: _unit->fragment_path, permission, error); }) ++ ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->source_path ?: _unit->fragment_path, permission, error); }) + + #else + diff --git a/0001-shell-completion-fix-completion-of-inactive-units.patch b/0001-shell-completion-fix-completion-of-inactive-units.patch new file mode 100644 index 00000000..563d9828 --- /dev/null +++ b/0001-shell-completion-fix-completion-of-inactive-units.patch @@ -0,0 +1,95 @@ +Based on f29c77bc0179b0fa57407dbe30b495be9f5ad2e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 14 Oct 2014 20:20:07 -0400 +Subject: [PATCH] shell-completion: fix completion of inactive units + +Units which not loaded were not proposed properly. OTOH, we should +filter units from get-unit-files by their state if they are currently +loaded. Bring zsh completions in line with bash completion, the same +logic should be used in both implementations. + +https://bugzilla.redhat.com/show_bug.cgi?id=1024379 +https://bugzilla.redhat.com/show_bug.cgi?id=790768 +https://bugs.freedesktop.org/show_bug.cgi?id=84720 +--- + shell-completion/bash/systemctl | 17 +++++++++-------- + shell-completion/zsh/_systemctl | 16 +++++++++------- + 2 files changed, 18 insertions(+), 15 deletions(-) + +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -55,10 +55,14 @@ __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list- + | { while read -r a b; do echo " $a"; done; }; } + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } +-__get_startable_units () { { +- __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap +- __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ +- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } ++__get_startable_units () { ++ # find inactive or failed units, filter out masked and not-found ++ __systemctl $1 list-units --state inactive,failed -- $( __get_all_units ) | \ ++ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } ++__get_restartable_units () { ++ # find !masked, filter out masked and not-found ++ __systemctl $1 list-units --state active,inactive,failed -- $( __get_all_units ) | \ ++ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } + __get_failed_units () { __systemctl $1 list-units \ + | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } + __get_enabled_units () { __systemctl $1 list-unit-files \ +@@ -180,10 +184,7 @@ _systemctl () { + + elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +- $( __get_all_units $mode \ +- | while read -r line; do \ +- [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ +- done )) ++ $( __get_restartable_units $mode)) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then +--- shell-completion/zsh/_systemctl ++++ shell-completion/zsh/_systemctl +@@ -138,8 +138,11 @@ _filter_units_by_property() { + done + } + ++_systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } ++ + _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} +-_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} ++_systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} ++_systemctl_restartable_units(){_sys_restartable_units=($(__systemctl list-units --state inactive,failed,active -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} + _systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} + _systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} + _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} +@@ -181,8 +184,9 @@ done + # Completion functions for STARTABLE_UNITS + (( $+functions[_systemctl_start] )) || _systemctl_start() + { +- _systemctl_inactive_units +- compadd "$@" -a - _sys_inactive_units ++ _systemctl_startable_units ++ compadd "$@" - $( _filter_units_by_property CanStart yes \ ++ ${_sys_startable_units[*]} ) + } + + # Completion functions for STOPPABLE_UNITS +@@ -217,11 +221,9 @@ done + for fun in restart reload-or-restart ; do + (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() + { +- _systemctl_all_units ++ _systemctl_restartable_units + compadd "$@" - $( _filter_units_by_property CanStart yes \ +- ${_sys_all_units[*]} | while read -r line; do \ +- [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ +- done ) ++ ${_sys_restartable_units[*]} ) + } + done + +-- +1.7.9.2 + diff --git a/0001-shutdownd-clean-up-initialization-of-struct.patch b/0001-shutdownd-clean-up-initialization-of-struct.patch new file mode 100644 index 00000000..3f2fb4ea --- /dev/null +++ b/0001-shutdownd-clean-up-initialization-of-struct.patch @@ -0,0 +1,30 @@ +From b748c7596f79945be5263a0d1c88de64eb0c5146 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 27 Sep 2014 00:25:09 +0200 +Subject: [PATCH] shutdownd: clean up initialization of struct + +No functional change. We just don't assign the value twice. + +Found by coverity. Fixes: CID#1237616 and #1237617 +--- + src/shutdownd/shutdownd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/shutdownd/shutdownd.c src/shutdownd/shutdownd.c +index 99aa4b3..0f008a6 100644 +--- src/shutdownd/shutdownd.c ++++ src/shutdownd/shutdownd.c +@@ -52,8 +52,8 @@ static int read_packet(int fd, union shutdown_buffer *_b) { + union shutdown_buffer b; /* We maintain our own copy here, in + * order not to corrupt the last message */ + struct iovec iovec = { +- iovec.iov_base = &b, +- iovec.iov_len = sizeof(b) - 1, ++ .iov_base = &b, ++ .iov_len = sizeof(b) - 1, + }; + union { + struct cmsghdr cmsghdr; +-- +1.7.9.2 + diff --git a/0001-socket-introduce-SELinuxContextFromNet-option.patch b/0001-socket-introduce-SELinuxContextFromNet-option.patch new file mode 100644 index 00000000..f437c7be --- /dev/null +++ b/0001-socket-introduce-SELinuxContextFromNet-option.patch @@ -0,0 +1,414 @@ +Based on 16115b0a7b7cdf08fb38084d857d572d8a9088dc Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Thu, 24 Jul 2014 10:40:28 +0200 +Subject: [PATCH] socket: introduce SELinuxContextFromNet option + +This makes possible to spawn service instances triggered by socket with +MLS/MCS SELinux labels which are created based on information provided by +connected peer. + +Implementation of label_get_child_mls_label derived from xinetd. + +Reviewed-by: Paul Moore +--- + man/systemd.socket.xml | 26 +++++++ + src/core/execute.c | 30 +++++++-- + src/core/execute.h | 1 + src/core/load-fragment-gperf.gperf.m4 | 3 + src/core/mount.c | 1 + src/core/service.c | 4 - + src/core/service.h | 3 + src/core/socket.c | 16 +++- + src/core/socket.h | 2 + src/core/swap.c | 1 + src/shared/label.c | 113 ++++++++++++++++++++++++++++++++++ + src/shared/label.h | 2 + 12 files changed, 191 insertions(+), 11 deletions(-) + +--- man/systemd.socket.xml ++++ man/systemd.socket.xml 2014-09-23 15:36:49.000000000 +0000 +@@ -570,6 +570,32 @@ + + + ++ SELinuxContextFromNet= ++ Takes a boolean ++ argument. When true systemd will attempt ++ to figure out the SELinux label used ++ for the instantiated service from the ++ information handed by the peer over the ++ network. Note that only the security ++ level is used from the information ++ provided by the peer. Other parts of ++ the resulting SELinux context originate ++ from either the target binary that is ++ effectively triggered by socket unit ++ are taken from the value of the ++ SELinuxContext= ++ option.This configuration option only ++ affects sockets with ++ Accept= mode set to ++ true. Also note that ++ this option is useful only when ++ MLS/MCS SELinux policy is ++ deployed. Defaults to ++ false. ++ ++ ++ ++ + PipeSize= + Takes an size in + bytes. Controls the pipe buffer size +--- src/core/execute.c ++++ src/core/execute.c 2014-09-24 09:22:08.882735864 +0000 +@@ -82,6 +82,7 @@ + #include "selinux-util.h" + #include "errno-list.h" + #include "apparmor-util.h" ++#include "label.h" + + #ifdef HAVE_SECCOMP + #include "seccomp-util.h" +@@ -1123,6 +1124,7 @@ int exec_spawn(ExecCommand *command, + bool apply_chroot, + bool apply_tty_stdin, + bool confirm_spawn, ++ bool selinux_context_net, + CGroupControllerMask cgroup_supported, + const char *cgroup_path, + const char *unit_id, +@@ -1594,11 +1596,29 @@ int exec_spawn(ExecCommand *command, + #endif + + #ifdef HAVE_SELINUX +- if (context->selinux_context && use_selinux()) { +- err = setexeccon(context->selinux_context); +- if (err < 0 && !context->selinux_context_ignore) { +- r = EXIT_SELINUX_CONTEXT; +- goto fail_child; ++ if (use_selinux()) { ++ if (context->selinux_context) { ++ err = setexeccon(context->selinux_context); ++ if (err < 0 && !context->selinux_context_ignore) { ++ r = EXIT_SELINUX_CONTEXT; ++ goto fail_child; ++ } ++ } ++ ++ if (selinux_context_net && socket_fd >= 0) { ++ _cleanup_free_ char *label = NULL; ++ ++ err = label_get_child_mls_label(socket_fd, command->path, &label); ++ if (err < 0) { ++ r = EXIT_SELINUX_CONTEXT; ++ goto fail_child; ++ } ++ ++ err = setexeccon(label); ++ if (err < 0) { ++ r = EXIT_SELINUX_CONTEXT; ++ goto fail_child; ++ } + } + } + #endif +--- src/core/execute.h ++++ src/core/execute.h 2014-09-23 15:46:26.000000000 +0000 +@@ -195,6 +195,7 @@ int exec_spawn(ExecCommand *command, + bool apply_chroot, + bool apply_tty_stdin, + bool confirm_spawn, ++ bool selinux_context_net, + CGroupControllerMask cgroup_mask, + const char *cgroup_path, + const char *unit_id, +--- src/core/load-fragment-gperf.gperf.m4 ++++ src/core/load-fragment-gperf.gperf.m4 2014-09-23 00:00:00.000000000 +0000 +@@ -242,6 +242,9 @@ Socket.SmackLabelIPOut, config_ + `Socket.SmackLabel, config_parse_warn_compat, 0, 0 + Socket.SmackLabelIPIn, config_parse_warn_compat, 0, 0 + Socket.SmackLabelIPOut, config_parse_warn_compat, 0, 0') ++m4_ifdef(`HAVE_SELINUX', ++`Socket.SELinuxContextFromNet, config_parse_bool, 0, offsetof(Socket, selinux_context_from_net)', ++`Socket.SELinuxContextFromNet, config_parse_warn_compat, 0, 0') + EXEC_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl + CGROUP_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl + KILL_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl +--- src/core/mount.c ++++ src/core/mount.c 2014-09-24 09:16:26.234235379 +0000 +@@ -785,6 +785,7 @@ static int mount_spawn(Mount *m, ExecCom + true, + true, + UNIT(m)->manager->confirm_spawn, ++ false, + UNIT(m)->manager->cgroup_supported, + UNIT(m)->cgroup_path, + UNIT(m)->id, +--- src/core/service.c ++++ src/core/service.c 2014-09-23 15:49:24.000000000 +0000 +@@ -1856,6 +1856,7 @@ static int service_spawn( + apply_chroot, + apply_tty_stdin, + UNIT(s)->manager->confirm_spawn, ++ s->socket_fd_selinux_context_net, + UNIT(s)->manager->cgroup_supported, + path, + UNIT(s)->id, +@@ -3787,7 +3788,7 @@ static void service_bus_name_owner_chang + } + } + +-int service_set_socket_fd(Service *s, int fd, Socket *sock) { ++int service_set_socket_fd(Service *s, int fd, Socket *sock, bool selinux_context_net) { + _cleanup_free_ char *peer = NULL; + int r; + +@@ -3825,6 +3826,7 @@ int service_set_socket_fd(Service *s, in + } + + s->socket_fd = fd; ++ s->socket_fd_selinux_context_net = selinux_context_net; + + unit_ref_set(&s->accept_socket, UNIT(sock)); + +--- src/core/service.h ++++ src/core/service.h 2014-09-23 15:51:13.000000000 +0000 +@@ -159,6 +159,7 @@ struct Service { + pid_t main_pid, control_pid; + int socket_fd; + ++ bool socket_fd_selinux_context_net; + bool permissions_start_only; + bool root_directory_start_only; + bool remain_after_exit; +@@ -204,7 +205,7 @@ extern const UnitVTable service_vtable; + + struct Socket; + +-int service_set_socket_fd(Service *s, int fd, struct Socket *socket); ++int service_set_socket_fd(Service *s, int fd, struct Socket *socket, bool selinux_context_net); + + const char* service_state_to_string(ServiceState i) _const_; + ServiceState service_state_from_string(const char *s) _pure_; +--- src/core/socket.c ++++ src/core/socket.c 2014-09-24 09:13:29.698735735 +0000 +@@ -453,7 +453,8 @@ static void socket_dump(Unit *u, FILE *f + "%sBroadcast: %s\n" + "%sPassCredentials: %s\n" + "%sPassSecurity: %s\n" +- "%sTCPCongestion: %s\n", ++ "%sTCPCongestion: %s\n" ++ "%sSELinuxContextFromNet: %s\n", + prefix, socket_state_to_string(s->state), + prefix, socket_result_to_string(s->result), + prefix, socket_address_bind_ipv6_only_to_string(s->bind_ipv6_only), +@@ -466,7 +467,8 @@ static void socket_dump(Unit *u, FILE *f + prefix, yes_no(s->broadcast), + prefix, yes_no(s->pass_cred), + prefix, yes_no(s->pass_sec), +- prefix, strna(s->tcp_congestion)); ++ prefix, strna(s->tcp_congestion), ++ prefix, yes_no(s->selinux_context_from_net)); + + if (s->control_pid > 0) + fprintf(f, +@@ -1000,7 +1002,12 @@ static int socket_open_fds(Socket *s) { + + if (p->type == SOCKET_SOCKET) { + +- if (!know_label) { ++ if (!know_label && s->selinux_context_from_net) { ++ r = label_get_our_label(&label); ++ if (r < 0) ++ return r; ++ know_label = true; ++ } else if (!know_label) { + + if ((r = socket_instantiate_service(s)) < 0) + return r; +@@ -1247,6 +1254,7 @@ static int socket_spawn(Socket *s, ExecC + true, + true, + UNIT(s)->manager->confirm_spawn, ++ s->selinux_context_from_net, + UNIT(s)->manager->cgroup_supported, + UNIT(s)->cgroup_path, + UNIT(s)->id, +@@ -1568,7 +1576,7 @@ static void socket_enter_running(Socket + + unit_choose_id(UNIT(service), name); + +- r = service_set_socket_fd(service, cfd, s); ++ r = service_set_socket_fd(service, cfd, s, s->selinux_context_from_net); + if (r < 0) + goto fail; + +--- src/core/socket.h ++++ src/core/socket.h 2014-09-23 15:55:17.000000000 +0000 +@@ -154,6 +154,8 @@ struct Socket { + char *smack; + char *smack_ip_in; + char *smack_ip_out; ++ ++ bool selinux_context_from_net; + }; + + /* Called from the service code when collecting fds */ +--- src/core/swap.c ++++ src/core/swap.c 2014-09-24 09:17:18.438735618 +0000 +@@ -642,6 +642,7 @@ static int swap_spawn(Swap *s, ExecComma + true, + true, + UNIT(s)->manager->confirm_spawn, ++ false, + UNIT(s)->manager->cgroup_supported, + UNIT(s)->cgroup_path, + UNIT(s)->id, +--- src/shared/label.c ++++ src/shared/label.c 2014-09-23 00:00:00.000000000 +0000 +@@ -31,6 +31,7 @@ + #ifdef HAVE_SELINUX + #include + #include ++#include + #endif + + #include "label.h" +@@ -41,6 +42,12 @@ + #include "smack-util.h" + + #ifdef HAVE_SELINUX ++DEFINE_TRIVIAL_CLEANUP_FUNC(security_context_t, freecon); ++DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free); ++ ++#define _cleanup_security_context_free_ _cleanup_(freeconp) ++#define _cleanup_context_free_ _cleanup_(context_freep) ++ + static struct selabel_handle *label_hnd = NULL; + #endif + +@@ -243,6 +250,112 @@ fail: + return r; + } + ++int label_get_our_label(char **label) { ++ int r = -EOPNOTSUPP; ++ char *l = NULL; ++ ++#ifdef HAVE_SELINUX ++ r = getcon(&l); ++ if (r < 0) ++ return r; ++ ++ *label = l; ++#endif ++ ++ return r; ++} ++ ++int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { ++ int r = -EOPNOTSUPP; ++ ++#ifdef HAVE_SELINUX ++ ++ _cleanup_security_context_free_ security_context_t mycon = NULL, peercon = NULL, fcon = NULL, ret = NULL; ++ _cleanup_context_free_ context_t pcon = NULL, bcon = NULL; ++ security_class_t sclass; ++ ++ const char *range = NULL; ++ ++ assert(socket_fd >= 0); ++ assert(exe); ++ assert(label); ++ ++ r = getcon(&mycon); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ r = getpeercon(socket_fd, &peercon); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ r = getexeccon(&fcon); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ if (!fcon) { ++ /* If there is no context set for next exec let's use context ++ of target executable */ ++ r = getfilecon(exe, &fcon); ++ if (r < 0) { ++ r = -errno; ++ goto out; ++ } ++ } ++ ++ bcon = context_new(mycon); ++ if (!bcon) { ++ r = -ENOMEM; ++ goto out; ++ } ++ ++ pcon = context_new(peercon); ++ if (!pcon) { ++ r = -ENOMEM; ++ goto out; ++ } ++ ++ range = context_range_get(pcon); ++ if (!range) { ++ r = -errno; ++ goto out; ++ } ++ ++ r = context_range_set(bcon, range); ++ if (r) { ++ r = -errno; ++ goto out; ++ } ++ ++ freecon(mycon); ++ mycon = context_str(bcon); ++ if (!mycon) { ++ r = -errno; ++ goto out; ++ } ++ ++ sclass = string_to_security_class("process"); ++ r = security_compute_create(mycon, fcon, sclass, &ret); ++ if (r < 0) { ++ r = -EINVAL; ++ goto out; ++ } ++ ++ *label = ret; ++ r = 0; ++ ++out: ++ if (r < 0 && security_getenforce() == 1) ++ return r; ++#endif ++ return r; ++} ++ + int label_context_set(const char *path, mode_t mode) { + int r = 0; + +--- src/shared/label.h ++++ src/shared/label.h 2014-09-23 00:00:00.000000000 +0000 +@@ -40,6 +40,8 @@ void label_context_clear(void); + void label_free(const char *label); + + int label_get_create_label_from_exe(const char *exe, char **label); ++int label_get_our_label(char **label); ++int label_get_child_mls_label(int socket_fd, const char *exec, char **label); + + int label_mkdir(const char *path, mode_t mode); + diff --git a/0001-strv-add-an-additional-overflow-check-when-enlarging.patch b/0001-strv-add-an-additional-overflow-check-when-enlarging.patch new file mode 100644 index 00000000..3f953f4f --- /dev/null +++ b/0001-strv-add-an-additional-overflow-check-when-enlarging.patch @@ -0,0 +1,35 @@ +Based on 97569e154b80541cbad39d78231b7f360d4ff058 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 21 Oct 2014 14:01:28 +0200 +Subject: [PATCH] strv: add an additional overflow check when enlarging + strv()s + +https://bugs.freedesktop.org/show_bug.cgi?id=76745 +--- + src/shared/strv.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- src/shared/strv.c ++++ src/shared/strv.c 2014-10-23 00:00:00.000000000 +0000 +@@ -361,13 +361,19 @@ char *strv_join_quoted(char **l) { + + int strv_push(char ***l, char *value) { + char **c; +- unsigned n; ++ unsigned n, m; + + if (!value) + return 0; + + n = strv_length(*l); +- c = realloc(*l, sizeof(char*) * (n + 2)); ++ ++ /* increase and check for overflow */ ++ m = n + 2; ++ if (m < n) ++ return -ENOMEM; ++ ++ c = realloc(*l, sizeof(char*) * (size_t) m); + if (!c) + return -ENOMEM; + diff --git a/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch b/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch new file mode 100644 index 00000000..917c8ec2 --- /dev/null +++ b/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch @@ -0,0 +1,28 @@ +From 498cfc230af8f83675be2e92057956f1792969e4 Mon Sep 17 00:00:00 2001 +From: Sjoerd Simons +Date: Sat, 23 Aug 2014 21:11:44 +0200 +Subject: [PATCH] systemctl: Correct error message printed when + bus_process_wait fails + +Actually use the variable containing the return code of bus_process_wait when +printing the error message as a result of it failing. +--- + src/systemctl/systemctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index d9b8bee..6534819 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -2382,7 +2382,7 @@ static int wait_for_jobs(sd_bus *bus, Set *s) { + while (!set_isempty(s)) { + q = bus_process_wait(bus); + if (q < 0) { +- log_error("Failed to wait for response: %s", strerror(-r)); ++ log_error("Failed to wait for response: %s", strerror(-q)); + return q; + } + +-- +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 00000000..8e78fe01 --- /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/0001-systemctl-let-list-units-unit-files-honour-type.patch b/0001-systemctl-let-list-units-unit-files-honour-type.patch new file mode 100644 index 00000000..1548d84f --- /dev/null +++ b/0001-systemctl-let-list-units-unit-files-honour-type.patch @@ -0,0 +1,94 @@ +Based on 6c71341aeecc3d092ed90f66e1b2c481b8e260ff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 29 Oct 2014 22:46:30 -0400 +Subject: [PATCH] systemctl: let list-{units,unit-files } honour --type + +The docs don't clarify what is expected, but I don't see any reason +why --type should be ignored. + +Also restucture the compund conditions into separate clauses for +easier reading. +--- + src/systemctl/systemctl.c | 48 ++++++++++++++++++++++++++++++++++----------- + 1 file changed, 37 insertions(+), 11 deletions(-) + +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-11-18 00:00:00.000000000 +0000 +@@ -305,21 +305,37 @@ static int compare_unit_info(const void + } + + static bool output_show_unit(const UnitInfo *u, char **patterns) { +- const char *dot; +- + if (!strv_isempty(patterns)) { + char **pattern; + + STRV_FOREACH(pattern, patterns) + if (fnmatch(*pattern, u->id, FNM_NOESCAPE) == 0) +- return true; ++ goto next; + return false; + } + +- return (!arg_types || ((dot = strrchr(u->id, '.')) && +- strv_find(arg_types, dot+1))) && +- (arg_all || !(streq(u->active_state, "inactive") +- || u->following[0]) || u->job_id > 0); ++next: ++ if (arg_types) { ++ const char *dot; ++ ++ dot = strrchr(u->id, '.'); ++ if (!dot) ++ return false; ++ ++ if (!strv_find(arg_types, dot+1)) ++ return false; ++ } ++ ++ if (arg_all) ++ return true; ++ ++ if (u->job_id > 0) ++ return true; ++ ++ if (streq(u->active_state, "inactive") || u->following[0]) ++ return false; ++ ++ return true; + } + + static void output_units_list(const UnitInfo *unit_infos, unsigned c) { +@@ -1019,18 +1035,28 @@ static int compare_unit_file_list(const + } + + static bool output_show_unit_file(const UnitFileList *u, char **patterns) { +- const char *dot; +- + if (!strv_isempty(patterns)) { + char **pattern; + + STRV_FOREACH(pattern, patterns) + if (fnmatch(*pattern, basename(u->path), FNM_NOESCAPE) == 0) +- return true; ++ goto next; + return false; + } + +- return !arg_types || ((dot = strrchr(u->path, '.')) && strv_find(arg_types, dot+1)); ++next: ++ if (!strv_isempty(arg_types)) { ++ const char *dot; ++ ++ dot = strrchr(u->path, '.'); ++ if (!dot) ++ return false; ++ ++ if (!strv_find(arg_types, dot+1)) ++ return false; ++ } ++ ++ return true; + } + + static void output_unit_file_list(const UnitFileList *units, unsigned c) { diff --git a/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch b/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch new file mode 100644 index 00000000..544be067 --- /dev/null +++ b/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch @@ -0,0 +1,52 @@ +From 08073121d8171f8e6be27b0c80e2ec283064760e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 13 Oct 2014 15:43:09 +0200 +Subject: [PATCH] systemctl: when mangle unit names for the "isolate", suffix + with ".target" rather than ".service" by default + +After all, we set AllowIsolate exclusively for target units so far, and +this is more or less the only thing tht makes sense, hence also use +".target" as completion suffix by default. +--- + src/systemctl/systemctl.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 842ca6c..af3cc97 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -2704,7 +2704,7 @@ static enum action verb_to_action(const char *verb) { + static int start_unit(sd_bus *bus, char **args) { + _cleanup_set_free_free_ Set *s = NULL; + _cleanup_strv_free_ char **names = NULL; +- const char *method, *mode, *one_name; ++ const char *method, *mode, *one_name, *suffix = NULL; + char **name; + int r = 0; + +@@ -2717,8 +2717,11 @@ static int start_unit(sd_bus *bus, char **args) { + method = verb_to_method(args[0]); + action = verb_to_action(args[0]); + +- mode = streq(args[0], "isolate") ? "isolate" : +- action_table[action].mode ?: arg_job_mode; ++ if (streq(args[0], "isolate")) { ++ mode = "isolate"; ++ suffix = ".target"; ++ } else ++ mode = action_table[action].mode ?: arg_job_mode; + + one_name = action_table[action].target; + } else { +@@ -2734,7 +2737,7 @@ static int start_unit(sd_bus *bus, char **args) { + if (one_name) + names = strv_new(one_name, NULL); + else { +- r = expand_names(bus, args + 1, NULL, &names); ++ r = expand_names(bus, args + 1, suffix, &names); + if (r < 0) + log_error("Failed to expand names: %s", strerror(-r)); + } +-- +1.7.9.2 + diff --git a/0001-systemd-continue-switch-root-even-if-umount-fails.patch b/0001-systemd-continue-switch-root-even-if-umount-fails.patch new file mode 100644 index 00000000..e8b3ee9f --- /dev/null +++ b/0001-systemd-continue-switch-root-even-if-umount-fails.patch @@ -0,0 +1,50 @@ +Based on d677d4df80e0ea1c66c691f50867fedd63c6770a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 16 Oct 2014 19:12:55 -0500 +Subject: [PATCH] systemd: continue switch-root even if umount fails + +Leaving the old root around seems better than aborting the +switch. +--- + src/core/main.c | 2 +- + src/core/switch-root.c | 11 +++++------ + 2 files changed, 6 insertions(+), 7 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-10-20 13:35:35.915837828 +0000 +@@ -1848,7 +1848,7 @@ finish: + /* And switch root */ + r = switch_root(switch_root_dir); + if (r < 0) +- log_error("Failed to switch root, ignoring: %s", strerror(-r)); ++ log_error("Failed to switch root, trying to continue: %s", strerror(-r)); + } + + args_size = MAX(6, argc+1); +--- src/core/switch-root.c ++++ src/core/switch-root.c 2014-10-20 13:39:58.167121460 +0000 +@@ -68,10 +68,9 @@ int switch_root(const char *new_root) { + goto fail; + } + +- /* Work-around for a kernel bug: for some reason the kernel +- * refuses switching root if any file systems are mounted +- * MS_SHARED. Hence remount them MS_PRIVATE here as a +- * work-around. ++ /* Work-around for kernel design: the kernel refuses switching ++ * root if any file systems are mounted MS_SHARED. Hence ++ * remount them MS_PRIVATE here as a work-around. + * + * https://bugzilla.redhat.com/show_bug.cgi?id=847418 */ + if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) +@@ -124,8 +123,8 @@ int switch_root(const char *new_root) { + * running off it we need to do this lazily. */ + if (umount2("/mnt", MNT_DETACH) < 0) { + r = -errno; +- log_error("Failed to umount old root dir /mnt: %m"); +- goto fail; ++ log_error("Failed to lazily umount old root dir /mnt, %s: %m", ++ errno == ENOENT ? "ignoring" : "leaving it around"); + } + + } else if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { diff --git a/0001-systemd-detect-virt-detect-s390-virtualization.patch b/0001-systemd-detect-virt-detect-s390-virtualization.patch new file mode 100644 index 00000000..300258fb --- /dev/null +++ b/0001-systemd-detect-virt-detect-s390-virtualization.patch @@ -0,0 +1,72 @@ +From f41925b4e442a34c93ad120ef1426c974a047ed1 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Fri, 18 Jul 2014 09:13:36 -0400 +Subject: [PATCH] systemd-detect-virt: detect s390 virtualization + +A system that is running on a logical partition (LPAR) provided by +PR/SM has access to physical hardware (except CPU). It is true that +PR/SM abstracts the hardware, but only for sharing purposes. + +Details are statet at: + +http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm + +-->-- +In other words, PR/SM transforms physical resources into virtual resources so +that many logical partitions can share the same physical resources. +--<-- + +Still, from the OS point of view, the shared virtual resource is real +hardware. ConditionVirtualization must be set to false if the OS runs +directly on PR/SM (e.g. in an LPAR). + +[zj: reorder code so that variables are not allocated when #if-def is +false. Add commit message.] +--- + man/systemd.unit.xml | 1 + + src/shared/virt.c | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 6447584..86a8cbb 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -996,6 +996,7 @@ + virtualization solution, or one of + qemu, + kvm, ++ zvm, + vmware, + microsoft, + oracle, +diff --git src/shared/virt.c src/shared/virt.c +index 20a8d7c..b436895 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -220,6 +220,23 @@ int detect_vm(const char **id) { + goto finish; + } + ++#if defined(__s390__) ++ { ++ _cleanup_free_ char *t = NULL; ++ ++ r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t); ++ if (r >= 0) { ++ if (streq(t, "z/VM")) ++ _id = "zvm"; ++ else ++ _id = "kvm"; ++ r = 1; ++ ++ goto finish; ++ } ++ } ++#endif ++ + r = 0; + + finish: +-- +1.7.9.2 + diff --git a/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch b/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch new file mode 100644 index 00000000..9f1a8dcb --- /dev/null +++ b/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch @@ -0,0 +1,39 @@ +From 9ed2a35e93f4a9e82585f860f54cdcbbdf3e1f86 Mon Sep 17 00:00:00 2001 +From: Richard Weinberger +Date: Tue, 9 Sep 2014 11:09:37 +0200 +Subject: [PATCH] systemd-tmpfiles: Fix IGNORE_DIRECTORY_PATH age handling + +If one has a config like: +d /tmp 1777 root root - +X /tmp/important_mount + +All files below /tmp/important_mount will be deleted as the +/tmp/important_mount item will spuriously inherit a max age of 0 +from /tmp. +/tmp has a max age of 0 but age_set is (of course) false. + +This affects also the PrivateTmp feature of systemd. +All tmp files of such services will be deleted unconditionally +and can cause service failures and data loss. + +Fix this by checking ->age_set in the IGNORE_DIRECTORY_PATH logic. +--- + src/tmpfiles/tmpfiles.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index f9830c4..7eafd6b 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -1576,7 +1576,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { + candidate_item = j; + } + +- if (candidate_item) { ++ if (candidate_item && candidate_item->age_set) { + i->age = candidate_item->age; + i->age_set = true; + } +-- +1.7.9.2 + diff --git a/0001-sysv-order-initscripts-which-provide-network-before-.patch b/0001-sysv-order-initscripts-which-provide-network-before-.patch new file mode 100644 index 00000000..944b9158 --- /dev/null +++ b/0001-sysv-order-initscripts-which-provide-network-before-.patch @@ -0,0 +1,34 @@ +Based on 805b573fad06b845502e76f3db3a0efa7583149d Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 23 Jul 2014 12:49:14 +0200 +Subject: [PATCH] sysv: order initscripts which provide $network before + network.target + +Due to recent changes where $network "maps" to network-online.target +it is not guaranteed that initscript which provides networking will +be terminated after network.target during shutdown which is against LSB. +--- + src/core/service.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/core/service.c ++++ src/core/service.c 2014-07-30 11:27:16.074235995 +0000 +@@ -820,7 +820,7 @@ static int service_load_sysv_path(Servic + + if (unit_name_to_type(m) == UNIT_SERVICE) + r = unit_merge_by_name(u, m); +- else ++ else { + /* NB: SysV targets + * which are provided + * by a service are +@@ -835,6 +835,9 @@ static int service_load_sysv_path(Servic + * in the SysV + * services! */ + r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, UNIT_WANTS, m, NULL, true); ++ if (r >= 0 && streq(m, SPECIAL_NETWORK_ONLINE_TARGET)) ++ r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_NETWORK_TARGET, NULL, true); ++ } + + if (r < 0) + log_error_unit(u->id, diff --git a/0001-tmpfiles-compare-return-against-correct-errno.patch b/0001-tmpfiles-compare-return-against-correct-errno.patch new file mode 100644 index 00000000..10c2e214 --- /dev/null +++ b/0001-tmpfiles-compare-return-against-correct-errno.patch @@ -0,0 +1,26 @@ +From e7aab5412829ed6b50d109f670bd0b1b365838a7 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sat, 11 Oct 2014 20:35:06 -0400 +Subject: [PATCH] tmpfiles: compare return against correct errno + +name_to_handle_at returns -EOPNOTSUPP, not -ENOTSUP. +--- + src/tmpfiles/tmpfiles.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index dafb9ae..8108b43 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -259,7 +259,7 @@ static int dir_is_mount_point(DIR *d, const char *subdir) { + + /* got only one handle; assume different mount points if one + * of both queries was not supported by the filesystem */ +- if (r_p == -ENOSYS || r_p == -ENOTSUP || r == -ENOSYS || r == -ENOTSUP) ++ if (r_p == -ENOSYS || r_p == -EOPNOTSUPP || r == -ENOSYS || r == -EOPNOTSUPP) + return true; + + /* return error */ +-- +1.7.9.2 + diff --git a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch new file mode 100644 index 00000000..de54a2e5 --- /dev/null +++ b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch @@ -0,0 +1,27 @@ +From a606871da508995f5ede113a8fc6538afd98966c Mon Sep 17 00:00:00 2001 +From: Greg KH +Date: Tue, 15 Apr 2014 14:12:01 -0700 +Subject: [PATCH] tmpfiles: fix permissions on new journal files + +When starting up journald on a new system, set the proper permissions on +the system.journal files, not only on the journal directory. +--- + tmpfiles.d/systemd.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git tmpfiles.d/systemd.conf tmpfiles.d/systemd.conf +index 7c6d6b9..c470045 100644 +--- tmpfiles.d/systemd.conf ++++ tmpfiles.d/systemd.conf +@@ -23,6 +23,6 @@ d /run/systemd/machines 0755 root root - + d /run/systemd/shutdown 0755 root root - + + m /var/log/journal 2755 root systemd-journal - - +-m /var/log/journal/%m 2755 root systemd-journal - - ++Z /var/log/journal/%m 2755 root systemd-journal - - + m /run/log/journal 2755 root systemd-journal - - +-m /run/log/journal/%m 2755 root systemd-journal - - ++Z /run/log/journal/%m 2755 root systemd-journal - - +-- +1.7.9.2 + diff --git a/0001-umount-modernizations.patch b/0001-umount-modernizations.patch new file mode 100644 index 00000000..1397d155 --- /dev/null +++ b/0001-umount-modernizations.patch @@ -0,0 +1,119 @@ +From c3544e8d2c2d870a2aff0944aff4ab7824b9ae6b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 21:35:15 +0200 +Subject: [PATCH] umount: modernizations + +--- + src/core/umount.c | 65 ++++++++++++++++++++++------------------------------- + 1 file changed, 27 insertions(+), 38 deletions(-) + +diff --git src/core/umount.c src/core/umount.c +index d1258f0..a30f674 100644 +--- src/core/umount.c ++++ src/core/umount.c +@@ -61,52 +61,46 @@ static void mount_points_list_free(MountPoint **head) { + } + + static int mount_points_list_get(MountPoint **head) { +- FILE *proc_self_mountinfo; +- char *path, *p; ++ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; + unsigned int i; +- int r; + + assert(head); + +- if (!(proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"))) ++ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); ++ if (!proc_self_mountinfo) + return -errno; + + for (i = 1;; i++) { +- int k; ++ _cleanup_free_ char *path = NULL; ++ char *p = NULL; + MountPoint *m; ++ int k; + +- path = p = NULL; +- +- if ((k = fscanf(proc_self_mountinfo, +- "%*s " /* (1) mount id */ +- "%*s " /* (2) parent id */ +- "%*s " /* (3) major:minor */ +- "%*s " /* (4) root */ +- "%ms " /* (5) mount point */ +- "%*s" /* (6) mount options */ +- "%*[^-]" /* (7) optional fields */ +- "- " /* (8) separator */ +- "%*s " /* (9) file system type */ +- "%*s" /* (10) mount source */ +- "%*s" /* (11) mount options 2 */ +- "%*[^\n]", /* some rubbish at the end */ +- &path)) != 1) { ++ k = fscanf(proc_self_mountinfo, ++ "%*s " /* (1) mount id */ ++ "%*s " /* (2) parent id */ ++ "%*s " /* (3) major:minor */ ++ "%*s " /* (4) root */ ++ "%ms " /* (5) mount point */ ++ "%*s" /* (6) mount options */ ++ "%*[^-]" /* (7) optional fields */ ++ "- " /* (8) separator */ ++ "%*s " /* (9) file system type */ ++ "%*s" /* (10) mount source */ ++ "%*s" /* (11) mount options 2 */ ++ "%*[^\n]", /* some rubbish at the end */ ++ &path); ++ if (k != 1) { + if (k == EOF) + break; + + log_warning("Failed to parse /proc/self/mountinfo:%u.", i); +- +- free(path); + continue; + } + + p = cunescape(path); +- free(path); +- +- if (!p) { +- r = -ENOMEM; +- goto finish; +- } ++ if (!p) ++ return -ENOMEM; + + /* Ignore mount points we can't unmount because they + * are API or because we are keeping them open (like +@@ -118,22 +112,17 @@ static int mount_points_list_get(MountPoint **head) { + continue; + } + +- if (!(m = new0(MountPoint, 1))) { ++ m = new0(MountPoint, 1); ++ if (!m) { + free(p); +- r = -ENOMEM; +- goto finish; ++ return -ENOMEM; + } + + m->path = p; + LIST_PREPEND(mount_point, *head, m); + } + +- r = 0; +- +-finish: +- fclose(proc_self_mountinfo); +- +- return r; ++ return 0; + } + + static int swap_list_get(MountPoint **head) { +-- +1.7.9.2 + diff --git a/0001-units-introduce-network-pre.target-as-place-to-hook-.patch b/0001-units-introduce-network-pre.target-as-place-to-hook-.patch new file mode 100644 index 00000000..ffbc0569 --- /dev/null +++ b/0001-units-introduce-network-pre.target-as-place-to-hook-.patch @@ -0,0 +1,126 @@ +From a4a878d04045b46fa9783664e3643a890b356790 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Jun 2014 11:33:02 +0200 +Subject: [PATCH] units: introduce network-pre.target as place to hook in + firewalls + +network-pre.target is a passive target that should be pulled in by +services that want to be executed before any network is configured (for +example: firewall scrips). + +network-pre.target should be ordered before all network managemet +services (but not be pulled in by them). + +network-pre.target should be order after all services that want to be +executed before any network is configured (and be pulled in by them). +--- + Makefile.am | 1 + + man/systemd.special.xml | 15 +++++++++++++++ + units/local-fs.target | 2 -- + units/network-pre.target | 12 ++++++++++++ + units/network.target | 2 ++ + units/systemd-networkd.service.in | 2 +- + 6 files changed, 31 insertions(+), 3 deletions(-) + create mode 100644 units/network-pre.target + +diff --git Makefile.am Makefile.am +index 3ea95e9..8514ec9 100644 +--- Makefile.am ++++ Makefile.am +@@ -413,6 +413,7 @@ dist_systemunit_DATA = \ + units/remote-fs.target \ + units/remote-fs-pre.target \ + units/network.target \ ++ units/network-pre.target \ + units/network-online.target \ + units/nss-lookup.target \ + units/nss-user-lookup.target \ +diff --git man/systemd.special.xml man/systemd.special.xml +index 38b94a7..cda6edd 100644 +--- man/systemd.special.xml ++++ man/systemd.special.xml +@@ -72,6 +72,7 @@ + multi-user.target, + network.target, + network-online.target, ++ network-pre.target, + nss-lookup.target, + nss-user-lookup.target, + paths.target, +@@ -891,6 +892,20 @@ + + + ++ network-pre.target ++ ++ This passive target unit ++ may be pulled in by services ++ that want to run before any ++ network is set up, for example ++ for the purpose of setting up a ++ firewall. All network ++ management software orders ++ itself after this target, but ++ does not pull it in. ++ ++ ++ + nss-lookup.target + + A target that should be +diff --git units/local-fs.target units/local-fs.target +index ae3cedc..70cb13f 100644 +--- units/local-fs.target ++++ units/local-fs.target +@@ -9,7 +9,5 @@ + Description=Local File Systems + Documentation=man:systemd.special(7) + After=local-fs-pre.target +-DefaultDependencies=no +-Conflicts=shutdown.target + OnFailure=emergency.target + OnFailureJobMode=replace-irreversibly +diff --git units/network-pre.target units/network-pre.target +new file mode 100644 +index 0000000..0ea4bc7 +--- /dev/null ++++ units/network-pre.target +@@ -0,0 +1,12 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++[Unit] ++Description=Network (Pre) ++Documentation=man:systemd.special(7) ++Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget ++RefuseManualStart=yes +diff --git units/network.target units/network.target +index 65fc64b..61ebdca 100644 +--- units/network.target ++++ units/network.target +@@ -9,3 +9,5 @@ + Description=Network + Documentation=man:systemd.special(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget ++After=network-pre.target ++RefuseManualStart=yes +diff --git units/systemd-networkd.service.in units/systemd-networkd.service.in +index 373ac4e..48f4d63 100644 +--- units/systemd-networkd.service.in ++++ units/systemd-networkd.service.in +@@ -9,7 +9,7 @@ + Description=Network Service + Documentation=man:systemd-networkd.service(8) + DefaultDependencies=no +-After=dbus.service ++After=dbus.service network-pre.target + Before=network.target + Wants=network.target + ConditionCapability=CAP_NET_ADMIN +-- +1.7.9.2 + diff --git a/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch b/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch new file mode 100644 index 00000000..bb9010bd --- /dev/null +++ b/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch @@ -0,0 +1,46 @@ +Based on d3381512282f2ca1c7669f77fb736a90fdce6982 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 8 Jul 2014 17:42:23 +0200 +Subject: [PATCH] units: make ExecStopPost action part of ExecStart + +Currently after exiting rescue shell we isolate default target. User +might want to isolate to some other target than default one. However +issuing systemctl isolate command to desired target would bring system +to default target as a consequence of running ExecStopPost action. + +Having common ancestor for rescue shell and possible followup systemctl +default command should fix this. If user exits rescue shell we will +proceed with isolating default target, otherwise, on manual isolate, +parent shell process is terminated and we don't isolate default target, +but target chosen by user. + +Suggested-by: Michal Schmidt +--- + units/emergency.service.in | 3 +-- + units/rescue.service.m4.in | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +--- units/emergency.service.in ++++ units/emergency.service.in 2014-07-10 13:31:50.662235825 +0000 +@@ -18,8 +18,7 @@ WorkingDirectory=/root + ExecStartPre=-/usr/bin/plymouth quit + ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' +-ExecStart=-/usr/sbin/sulogin +-ExecStopPost=@SYSTEMCTL@ --fail --no-block default ++ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + Type=idle + StandardInput=tty-force + StandardOutput=inherit +--- units/rescue.service.m4.in ++++ units/rescue.service.m4.in 2014-07-10 13:32:15.678235509 +0000 +@@ -19,8 +19,7 @@ WorkingDirectory=/root + ExecStartPre=-/usr/bin/plymouth quit + ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' +-ExecStart=-/usr/sbin/sulogin +-ExecStopPost=-@SYSTEMCTL@ --fail --no-block default ++ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + Type=idle + StandardInput=tty-force + StandardOutput=inherit diff --git a/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch b/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch new file mode 100644 index 00000000..052eeca6 --- /dev/null +++ b/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch @@ -0,0 +1,32 @@ +Based on 812bd1e6ab4c463507557f2bdbb8875fedd92ade Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 21 Nov 2014 01:20:57 +0100 +Subject: [PATCH] units: make sure rfkill service is bount to the actual + hardware + +--- + rules/99-systemd.rules.in | 2 +- + units/systemd-rfkill@.service.in | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in +@@ -62,7 +62,7 @@ SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="pa + + # Pull in rfkill save/restore for all rfkill devices + +-SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" ++SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/rfkill/devices/%k", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" + + # Asynchronously mount file systems implemented by these modules as + # soon as they are loaded. +--- units/systemd-rfkill@.service.in ++++ units/systemd-rfkill@.service.in 2014-12-05 11:52:59.433518948 +0000 +@@ -9,6 +9,7 @@ + Description=Load/Save RF Kill Switch Status of %I + Documentation=man:systemd-rfkill@.service(8) + DefaultDependencies=no ++BindsTo=sys-subsystem-rfkill-devices-%i.device + RequiresMountsFor=/var/lib/systemd/rfkill + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service diff --git a/0001-units-order-network-online.target-after-network.targ.patch b/0001-units-order-network-online.target-after-network.targ.patch new file mode 100644 index 00000000..d09fa29e --- /dev/null +++ b/0001-units-order-network-online.target-after-network.targ.patch @@ -0,0 +1,20 @@ +Based on 58e027023b47b32e42cf93dd4a629b869ee1ef25 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Jun 2014 14:58:32 +0200 +Subject: [PATCH] units: order network-online.target after network.target + +There might be implementations around where the network-online logic +might not talk to any network configuration service (and thus not have +to wait for it), hence let's explicitly order network-online.target +after network.target to avoid any ambiguities. +--- + units/network-online.target | 1 + + 1 file changed, 1 insertion(+) + +--- units/network-online.target ++++ units/network-online.target 2014-06-26 00:00:00.000000000 +0000 +@@ -9,3 +9,4 @@ + Description=Network is Online + Documentation=man:systemd.special(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget ++After=network.target diff --git a/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch b/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch new file mode 100644 index 00000000..6c60f8b7 --- /dev/null +++ b/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch @@ -0,0 +1,29 @@ +Based on 0b73eab7a2185ae0377650e3fdb8208347a8a575 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Sat, 23 Mar 2013 03:54:16 +0100 +Subject: [PATCH] units/systemd-sysctl.service.in: run after load-modules + +Modules might or will register new sysctl options. + +[zj: This mechanism of adding modules just to reliably set sysctl +attributes is not ideal. Nevertheless, sysctl for dynamically created +attributes is simply broken, and this is the easiest workaround.] + +https://bugzilla.redhat.com/show_bug.cgi?id=1022977 +https://bugzilla.novell.com/show_bug.cgi?id=725412 +--- + units/systemd-sysctl.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git units/systemd-sysctl.service.in units/systemd-sysctl.service.in +index 5c7c5d7..ade9dc3 100644 +--- units/systemd-sysctl.service.in ++++ units/systemd-sysctl.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service + DefaultDependencies=no + Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service ++After=systemd-modules-load.service + Before=sysinit.target shutdown.target + ConditionPathIsReadWrite=/proc/sys/ + ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch b/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch new file mode 100644 index 00000000..8aa6da5f --- /dev/null +++ b/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch @@ -0,0 +1,24 @@ +From 8c94052ee543c3598a3c7b0c46688150aa2c6168 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 27 Oct 2014 17:15:42 +0100 +Subject: [PATCH 1/2] units: tmpfiles-setup-dev - allow unsafe file creation to + happen in /dev at boot + +This will allow us to mark static device nodes with '!' to indicate that they should only be created at early boot. +--- + units/systemd-tmpfiles-setup-dev.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in +index f3833fd..0123a03 100644 +--- a/units/systemd-tmpfiles-setup-dev.service.in ++++ b/units/systemd-tmpfiles-setup-dev.service.in +@@ -17,4 +17,4 @@ ConditionCapability=CAP_SYS_MODULE + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create ++ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create --boot +-- +2.1.2 + diff --git a/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch b/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch new file mode 100644 index 00000000..9a6c97a5 --- /dev/null +++ b/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch @@ -0,0 +1,54 @@ +From 3a8a916338d8446b938f3cf40f6aae0c611892e3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 11:47:10 +0200 +Subject: [PATCH] util: consider 0x7F a control chracter (which it is: DEL) + +Let's better be safe than sorry. +--- + src/shared/util.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git src/shared/util.c src/shared/util.c +index 3d875c7..d25ee66 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1608,8 +1608,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + return -ETIMEDOUT; + } + ++ errno = 0; + if (!fgets(line, sizeof(line), f)) +- return -EIO; ++ return errno ? -errno : -EIO; + + truncate_nl(line); + +@@ -5355,6 +5356,9 @@ bool string_is_safe(const char *p) { + if (*t > 0 && *t < ' ') + return false; + ++ if (*t == 127) ++ return false; ++ + if (strchr("\\\"\'", *t)) + return false; + } +@@ -5371,10 +5375,14 @@ bool string_has_cc(const char *p) { + + assert(p); + +- for (t = p; *t; t++) ++ for (t = p; *t; t++) { + if (*t > 0 && *t < ' ' && *t != '\t') + return true; + ++ if (*t == 127) ++ return true; ++ } ++ + return false; + } + +-- +1.7.9.2 + diff --git a/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch b/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch new file mode 100644 index 00000000..bf379908 --- /dev/null +++ b/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch @@ -0,0 +1,56 @@ +From ff452e76e2c0f89a32542b7179bb2fd538335933 Mon Sep 17 00:00:00 2001 +From: Carl Schaefer +Date: Mon, 23 Jun 2014 18:23:48 +0200 +Subject: [PATCH] vconsole: also copy character maps (not just fonts) from vt1 + to vt2, vt3, ... + +https://bugs.freedesktop.org/show_bug.cgi?id=78796 +--- + src/vconsole/vconsole-setup.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git src/vconsole/vconsole-setup.c src/vconsole/vconsole-setup.c +index 0f2b706..e0c4050 100644 +--- src/vconsole/vconsole-setup.c ++++ src/vconsole/vconsole-setup.c +@@ -180,6 +180,10 @@ static int font_load(const char *vc, const char *font, const char *map, const ch + */ + static void font_copy_to_all_vcs(int fd) { + struct vt_stat vcs = {}; ++ unsigned char map8[E_TABSZ]; ++ unsigned short map16[E_TABSZ]; ++ struct unimapdesc unimapd; ++ struct unipair unipairs[USHRT_MAX]; + int i, r; + + /* get active, and 16 bit mask of used VT numbers */ +@@ -209,6 +213,26 @@ static void font_copy_to_all_vcs(int fd) { + cfo.op = KD_FONT_OP_COPY; + cfo.height = vcs.v_active-1; /* tty1 == index 0 */ + ioctl(vcfd, KDFONTOP, &cfo); ++ ++ /* copy map of 8bit chars */ ++ if (ioctl(fd, GIO_SCRNMAP, map8) >= 0) ++ ioctl(vcfd, PIO_SCRNMAP, map8); ++ ++ /* copy map of 8bit chars -> 16bit Unicode values */ ++ if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0) ++ ioctl(vcfd, PIO_UNISCRNMAP, map16); ++ ++ /* copy unicode translation table */ ++ /* unimapd is a ushort count and a pointer to an ++ array of struct unipair { ushort, ushort } */ ++ unimapd.entries = unipairs; ++ unimapd.entry_ct = USHRT_MAX; ++ if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) { ++ struct unimapinit adv = { 0, 0, 0 }; ++ ++ ioctl(vcfd, PIO_UNIMAPCLR, &adv); ++ ioctl(vcfd, PIO_UNIMAP, &unimapd); ++ } + } + } + +-- +1.7.9.2 + diff --git a/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch b/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch new file mode 100644 index 00000000..a5358cc9 --- /dev/null +++ b/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch @@ -0,0 +1,25 @@ +From 893e72da6b27c21b102e1589276e651e9e4f591c Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 9 Sep 2014 18:14:25 +0200 +Subject: [PATCH] virt: detect that we are running inside the docker container + +--- + src/shared/virt.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/shared/virt.c src/shared/virt.c +index b436895..f9c4e67 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -310,6 +310,8 @@ int detect_container(const char **id) { + _id = "lxc-libvirt"; + else if (streq(e, "systemd-nspawn")) + _id = "systemd-nspawn"; ++ else if (streq(e, "docker")) ++ _id = "docker"; + else + _id = "other"; + +-- +1.7.9.2 + diff --git a/0001-virt-rework-container-detection-logic.patch b/0001-virt-rework-container-detection-logic.patch new file mode 100644 index 00000000..4adc20a2 --- /dev/null +++ b/0001-virt-rework-container-detection-logic.patch @@ -0,0 +1,159 @@ +Based on fdd25311706bd32580ec4d43211cdf4665d2f9de Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 28 May 2014 18:37:11 +0800 +Subject: [PATCH] virt: rework container detection logic + +Instead of accessing /proc/1/environ directly, trying to read the +$container variable from it, let's make PID 1 save the contents of that +variable to /run/systemd/container. This allows us to detect containers +without the need for CAP_SYS_PTRACE, which allows us to drop it from a +number of daemons and from the file capabilities of systemd-detect-virt. + +Also, don't consider chroot a container technology anymore. After all, +we don't consider file system namespaces container technology anymore, +and hence chroot() should be considered a container even less. +--- + Makefile.am | 3 --- + configure.ac | 2 -- + src/core/main.c | 12 ++++++++++++ + src/shared/virt.c | 48 ++++++++++++++++++++++++++++++------------------ + 4 files changed, 42 insertions(+), 23 deletions(-) + +diff --git Makefile.am Makefile.am +index 5b26bc3..f66ef42 100644 +--- Makefile.am ++++ Makefile.am +@@ -1798,9 +1798,6 @@ systemd_detect_virt_SOURCES = \ + systemd_detect_virt_LDADD = \ + libsystemd-shared.la + +-systemd-detect-virt-install-hook: +- -$(SETCAP) cap_dac_override,cap_sys_ptrace=ep $(DESTDIR)$(bindir)/systemd-detect-virt +- + INSTALL_EXEC_HOOKS += \ + systemd-detect-virt-install-hook + +--- configure.ac ++++ configure.ac 2014-06-03 14:16:45.046237826 +0000 +@@ -68,8 +68,6 @@ AC_PATH_PROG([XSLTPROC], [xsltproc]) + AC_PATH_PROG([QUOTAON], [quotaon], [/usr/sbin/quotaon]) + AC_PATH_PROG([QUOTACHECK], [quotacheck], [/usr/sbin/quotacheck]) + +-AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap]) +- + AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) + + AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod]) +diff --git src/core/main.c src/core/main.c +index 77cc2fb..d5d1ee2 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1261,6 +1261,16 @@ static int status_welcome(void) { + isempty(pretty_name) ? "Linux" : pretty_name); + } + ++static int write_container_id(void) { ++ const char *c; ++ ++ c = getenv("container"); ++ if (isempty(c)) ++ return 0; ++ ++ return write_string_file("/run/systemd/container", c); ++} ++ + int main(int argc, char *argv[]) { + Manager *m = NULL; + int r, retval = EXIT_FAILURE; +@@ -1544,6 +1554,8 @@ int main(int argc, char *argv[]) { + if (virtualization) + log_info("Detected virtualization '%s'.", virtualization); + ++ write_container_id(); ++ + log_info("Detected architecture '%s'.", architecture_to_string(uname_architecture())); + + if (in_initrd()) +diff --git src/shared/virt.c src/shared/virt.c +index 0db0514..1e227c5 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -217,8 +217,8 @@ int detect_container(const char **id) { + static thread_local int cached_found = -1; + static thread_local const char *cached_id = NULL; + +- _cleanup_free_ char *e = NULL; +- const char *_id = NULL; ++ _cleanup_free_ char *m = NULL; ++ const char *_id = NULL, *e = NULL; + int r; + + if (_likely_(cached_found >= 0)) { +@@ -229,17 +229,6 @@ int detect_container(const char **id) { + return cached_found; + } + +- /* Unfortunately many of these operations require root access +- * in one way or another */ +- +- r = running_in_chroot(); +- if (r < 0) +- return r; +- if (r > 0) { +- _id = "chroot"; +- goto finish; +- } +- + /* /proc/vz exists in container and outside of the container, + * /proc/bc only outside of the container. */ + if (access("/proc/vz", F_OK) >= 0 && +@@ -249,11 +238,32 @@ int detect_container(const char **id) { + goto finish; + } + +- r = getenv_for_pid(1, "container", &e); +- if (r < 0) +- return r; +- if (r == 0) +- goto finish; ++ if (getpid() == 1) { ++ /* If we are PID 1 we can just check our own ++ * environment variable */ ++ ++ e = getenv("container"); ++ if (isempty(e)) { ++ r = 0; ++ goto finish; ++ } ++ } else { ++ ++ /* Otherwise, PID 1 dropped this information into a ++ * file in /run. This is better than accessing ++ * /proc/1/environ, since we don't need CAP_SYS_PTRACE ++ * for that. */ ++ ++ r = read_one_line_file("/run/systemd/container", &m); ++ if (r == -ENOENT) { ++ r = 0; ++ goto finish; ++ } ++ if (r < 0) ++ return r; ++ ++ e = m; ++ } + + /* We only recognize a selected few here, since we want to + * enforce a redacted namespace */ +@@ -266,6 +276,8 @@ int detect_container(const char **id) { + else + _id = "other"; + ++ r = 1; ++ + finish: + cached_found = r; + +-- +1.7.9.2 + diff --git a/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch b/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch new file mode 100644 index 00000000..30dc17d0 --- /dev/null +++ b/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch @@ -0,0 +1,31 @@ +From 15f392394e75ffb7f318920008fd1bbe4e82b488 Mon Sep 17 00:00:00 2001 +From: Scott Thrasher +Date: Wed, 26 Mar 2014 18:48:13 -0700 +Subject: [PATCH] Add hwdb entry for Samsung Series 7 Ultra + +--- + hwdb/60-keyboard.hwdb | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index bd8fd10..832c686 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -924,6 +924,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr* + KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up + KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle + ++# Series 7 Ultra ++keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* ++ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings ++ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down ++ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up ++ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer ++ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch ++ + # SQ1US + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* + KEYBOARD_KEY_d4=menu +-- +1.7.9.2 + diff --git a/0002-Be-more-verbose-when-bind-or-listen-fails.patch b/0002-Be-more-verbose-when-bind-or-listen-fails.patch new file mode 100644 index 00000000..0a8e80e6 --- /dev/null +++ b/0002-Be-more-verbose-when-bind-or-listen-fails.patch @@ -0,0 +1,92 @@ +Based on 6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 3 Mar 2014 19:49:40 -0500 +Subject: [PATCH] Be more verbose when bind or listen fails + +Also be more verbose in devnode_acl_all(). +--- + src/core/manager.c | 2 +- + src/journal/journald-native.c | 2 +- + src/journal/journald-stream.c | 4 ++-- + src/journal/journald-syslog.c | 2 +- + src/login/logind-acl.c | 5 ++++- + src/shared/ask-password-api.c | 2 +- + 6 files changed, 10 insertions(+), 7 deletions(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-07-21 10:57:20.286367050 +0000 +@@ -571,7 +571,7 @@ static int manager_setup_notify(Manager + + r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); + return -errno; + } + +--- src/journal/journald-native.c ++++ src/journal/journald-native.c 2014-07-21 00:00:00.000000000 +0000 +@@ -405,7 +405,7 @@ int server_open_native_socket(Server*s) + + r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + return -errno; + } + +--- src/journal/journald-stream.c ++++ src/journal/journald-stream.c 2014-07-21 00:00:00.000000000 +0000 +@@ -447,14 +447,14 @@ int server_open_stdout_socket(Server *s) + + r = bind(s->stdout_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + return -errno; + } + + chmod(sa.un.sun_path, 0666); + + if (listen(s->stdout_fd, SOMAXCONN) < 0) { +- log_error("listen() failed: %m"); ++ log_error("listen(%s) failed: %m", sa.un.sun_path); + return -errno; + } + } else +--- src/journal/journald-syslog.c ++++ src/journal/journald-syslog.c 2014-07-21 00:00:00.000000000 +0000 +@@ -437,7 +437,7 @@ int server_open_syslog_socket(Server *s) + + r = bind(s->syslog_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); + if (r < 0) { +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + return -errno; + } + +--- src/login/logind-acl.c ++++ src/login/logind-acl.c 2014-07-21 10:59:04.986235573 +0000 +@@ -277,7 +277,10 @@ int devnode_acl_all(struct udev *udev, + SET_FOREACH(n, nodes, i) { + int k; + +- log_debug("Fixing up ACLs at %s for seat %s", n, seat); ++ log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"→"UID_FMT"%s%s)", ++ n, seat, old_uid, new_uid, ++ del ? " del" : "", add ? " add" : ""); ++ + k = devnode_acl(n, flush, del, old_uid, add, new_uid); + if (k < 0) + r = k; +--- src/shared/ask-password-api.c ++++ src/shared/ask-password-api.c 2014-07-21 00:00:00.000000000 +0000 +@@ -275,7 +275,7 @@ static int create_socket(char **name) { + + if (r < 0) { + r = -errno; +- log_error("bind() failed: %m"); ++ log_error("bind(%s) failed: %m", sa.un.sun_path); + goto fail; + } + diff --git a/0002-analyze-avoid-a-null-dereference.patch b/0002-analyze-avoid-a-null-dereference.patch new file mode 100644 index 00000000..b7662371 --- /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/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch b/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch new file mode 100644 index 00000000..c18fcb9e --- /dev/null +++ b/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch @@ -0,0 +1,46 @@ +From 1f89214e6e990a0b552f6854f87f8514ca384956 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 21 Feb 2014 11:55:24 +0100 +Subject: [PATCH] analyze/run: use bus_open_transport_systemd instead of + bus_open_transport + +Both systemd-analyze and systemd-run only access org.freedesktop.systemd1 +on the bus. This patch allows using systemd-run --user and systemd-analyze +--user even if the user session's bus is not properly integrated with the +systemd user unit. + +https://bugs.freedesktop.org/show_bug.cgi?id=79252 and other reports... +--- + src/analyze/analyze.c | 2 +- + src/run/run.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/analyze/analyze.c src/analyze/analyze.c +index 4c5fcfe..0a4190c 100644 +--- src/analyze/analyze.c ++++ src/analyze/analyze.c +@@ -1335,7 +1335,7 @@ int main(int argc, char *argv[]) { + if (r <= 0) + goto finish; + +- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); ++ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); + if (r < 0) { + log_error("Failed to create bus connection: %s", strerror(-r)); + goto finish; +diff --git src/run/run.c src/run/run.c +index e4c695c..9d5527b 100644 +--- src/run/run.c ++++ src/run/run.c +@@ -593,7 +593,7 @@ int main(int argc, char* argv[]) { + arg_description = description; + } + +- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); ++ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); + if (r < 0) { + log_error("Failed to create bus connection: %s", strerror(-r)); + goto finish; +-- +1.7.9.2 + diff --git a/0002-architecture-Add-cris.patch b/0002-architecture-Add-cris.patch new file mode 100644 index 00000000..a93d29d9 --- /dev/null +++ b/0002-architecture-Add-cris.patch @@ -0,0 +1,55 @@ +From 86bafac9540ba9e111ccba2fdf4161fe3a67cd3b Mon Sep 17 00:00:00 2001 +From: Umut Tezduyar Lindskog +Date: Tue, 4 Mar 2014 13:58:35 +0100 +Subject: [PATCH] architecture: Add cris + +--- + src/shared/architecture.c | 3 +++ + src/shared/architecture.h | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index fcdb3d5..9e0c3ef 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -114,6 +114,8 @@ Architecture uname_architecture(void) { + { "m68k", ARCHITECTURE_M68K }, + #elif defined(__tilegx__) + { "tilegx", ARCHITECTURE_TILEGX }, ++#elif defined(__cris__) ++ { "cris", ARCHITECTURE_CRIS }, + #else + #error "Please register your architecture here!" + #endif +@@ -161,6 +163,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { + [ARCHITECTURE_SH64] = "sh64", + [ARCHITECTURE_M68K] = "m68k", + [ARCHITECTURE_TILEGX] = "tilegx", ++ [ARCHITECTURE_CRIS] = "cris", + }; + + DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); +diff --git src/shared/architecture.h src/shared/architecture.h +index e589a91..20e848b 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -48,6 +48,7 @@ typedef enum Architecture { + ARCHITECTURE_SH64, + ARCHITECTURE_M68K, + ARCHITECTURE_TILEGX, ++ ARCHITECTURE_CRIS, + _ARCHITECTURE_MAX, + _ARCHITECTURE_INVALID = -1 + } Architecture; +@@ -110,6 +111,8 @@ Architecture uname_architecture(void); + # define native_architecture() ARCHITECTURE_M68K + #elif defined(__tilegx__) + # define native_architecture() ARCHITECTURE_TILEGX ++#elif defined(__cris__) ++# define native_architecture() ARCHITECTURE_CRIS + #else + #error "Please register your architecture here!" + #endif +-- +1.7.9.2 + diff --git a/0002-backlight-do-nothing-if-max_brightness-is-0.patch b/0002-backlight-do-nothing-if-max_brightness-is-0.patch new file mode 100644 index 00000000..8ca31e28 --- /dev/null +++ b/0002-backlight-do-nothing-if-max_brightness-is-0.patch @@ -0,0 +1,108 @@ +From 3cadce7d33e263ec7a6a83c00c11144930258b22 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Thu, 27 Mar 2014 23:41:59 +0100 +Subject: [PATCH] backlight: do nothing if max_brightness is 0 + +On virtually any newer Asus mainboard, the eeepc-wmi driver is loaded. +It exposes a backlight device despite the lack of any physical backlight +devices. This fake backlight device has max_brightness set to 0. Since +the introduction of the clamp_brightness function, systemd-backlight +tries to write '1' to brightness and fails. + +This patch changes systemd-backlight to exit gracefully when +max_brightness is 0 before performing any action. This affects +both the load and save actions. +--- + src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++-------------- + 1 file changed, 30 insertions(+), 14 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index abf8bcf..ce0385b 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -192,30 +192,37 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { + return true; + } + +-/* Some systems turn the backlight all the way off at the lowest levels. +- * clamp_brightness clamps the saved brightness to at least 1 or 5% of +- * max_brightness. This avoids preserving an unreadably dim screen, which +- * would otherwise force the user to disable state restoration. */ +-static void clamp_brightness(struct udev_device *device, char **value) { ++static unsigned get_max_brightness(struct udev_device *device) { + int r; + const char *max_brightness_str; +- unsigned brightness, max_brightness, new_brightness; ++ unsigned max_brightness; + + max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); + if (!max_brightness_str) { +- log_warning("Failed to read max_brightness attribute; not checking saved brightness"); +- return; ++ log_warning("Failed to read max_brightness attribute"); ++ return 0; + } + +- r = safe_atou(*value, &brightness); ++ r = safe_atou(max_brightness_str, &max_brightness); + if (r < 0) { +- log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); +- return; ++ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ return 0; + } + +- r = safe_atou(max_brightness_str, &max_brightness); ++ return max_brightness; ++} ++ ++/* Some systems turn the backlight all the way off at the lowest levels. ++ * clamp_brightness clamps the saved brightness to at least 1 or 5% of ++ * max_brightness. This avoids preserving an unreadably dim screen, which ++ * would otherwise force the user to disable state restoration. */ ++static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { ++ int r; ++ unsigned brightness, new_brightness; ++ ++ r = safe_atou(*value, &brightness); + if (r < 0) { +- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); + return; + } + +@@ -239,6 +246,7 @@ int main(int argc, char *argv[]) { + _cleanup_udev_device_unref_ struct udev_device *device = NULL; + _cleanup_free_ char *saved = NULL, *ss = NULL, *escaped_ss = NULL, *escaped_sysname = NULL, *escaped_path_id = NULL; + const char *sysname, *path_id; ++ unsigned max_brightness; + int r; + + if (argc != 3) { +@@ -294,6 +302,14 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + ++ /* If max_brightness is 0, then there is no actual backlight ++ * device. This happens on desktops with Asus mainboards ++ * that load the eeepc-wmi module. ++ */ ++ max_brightness = get_max_brightness(device); ++ if (max_brightness == 0) ++ return EXIT_SUCCESS; ++ + escaped_ss = cescape(ss); + if (!escaped_ss) { + log_oom(); +@@ -348,7 +364,7 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- clamp_brightness(device, &value); ++ clamp_brightness(device, &value, max_brightness); + + r = udev_device_set_sysattr_value(device, "brightness", value); + if (r < 0) { +-- +1.7.9.2 + diff --git a/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch b/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch new file mode 100644 index 00000000..8c1b12e2 --- /dev/null +++ b/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch @@ -0,0 +1,31 @@ +From 1c92ff85b786c423f4436ec26007e79369c9ac05 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 26 Sep 2014 22:01:32 +0200 +Subject: [PATCH] bootchart: use 'n/a' if PRETTY_NAME is not found + +Spotted with coverity. If parsing both /etc/os-release and +/usr/lib/os-release fails then null would be passed on. The calls +to parse the two files are allowed to fail. A empty /etc may not +have had the /etc/os-release symlink restored yet and we just +try again in the loop. If for whatever reason that does not happen +then we now pass on 'n/a' instead of null. +--- + src/bootchart/bootchart.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c +index 366a5ab..813e38d 100644 +--- src/bootchart/bootchart.c ++++ src/bootchart/bootchart.c +@@ -471,7 +471,7 @@ int main(int argc, char *argv[]) { + exit (EXIT_FAILURE); + } + +- svg_do(build); ++ svg_do(strna(build)); + + fprintf(stderr, "systemd-bootchart wrote %s\n", output_file); + +-- +1.7.9.2 + diff --git a/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch b/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch new file mode 100644 index 00000000..718f6862 --- /dev/null +++ b/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch @@ -0,0 +1,26 @@ +From 82923adfe5c4fa09cc91fd2a2e374c936cd4a186 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 13 Mar 2014 20:00:50 +0100 +Subject: [PATCH] bus: fix memory leak when kdbus is not enabled + +--- + src/libsystemd/sd-bus/sd-bus.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index ffa3369..ca7c428 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -1189,7 +1189,8 @@ _public_ int sd_bus_open_user(sd_bus **ret) { + #ifdef ENABLE_KDBUS + asprintf(&b->address, KERNEL_USER_BUS_FMT, (unsigned long) getuid()); + #else +- return -ECONNREFUSED; ++ r = -ECONNREFUSED; ++ goto fail; + #endif + } + +-- +1.7.9.2 + diff --git a/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch b/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch new file mode 100644 index 00000000..3961c020 --- /dev/null +++ b/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch @@ -0,0 +1,59 @@ +From b27adf354a83ad25f4a209c0a6f7989ecab7b4e2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 13:31:25 +0200 +Subject: [PATCH] bus: make use of sd_bus_try_close() in exit-on-idle services + +--- + src/libsystemd/sd-bus/bus-util.c | 25 +++++++++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c +index 6bd21cc..6441c5b 100644 +--- src/libsystemd/sd-bus/bus-util.c ++++ src/libsystemd/sd-bus/bus-util.c +@@ -43,7 +43,9 @@ static int name_owner_change_callback(sd_bus *bus, sd_bus_message *m, void *user + assert(m); + assert(e); + ++ sd_bus_close(bus); + sd_event_exit(e, 0); ++ + return 1; + } + +@@ -121,11 +123,30 @@ int bus_event_loop_with_idle( + return r; + + if (r == 0 && !exiting) { +- r = bus_async_unregister_and_exit(e, bus, name); ++ ++ r = sd_bus_try_close(bus); ++ if (r == -EBUSY) ++ continue; ++ ++ if (r == -ENOTSUP) { ++ /* Fallback for dbus1 connections: we ++ * unregister the name and wait for ++ * the response to come through for ++ * it */ ++ ++ r = bus_async_unregister_and_exit(e, bus, name); ++ if (r < 0) ++ return r; ++ ++ exiting = true; ++ continue; ++ } ++ + if (r < 0) + return r; + +- exiting = true; ++ sd_event_exit(e, 0); ++ break; + } + } + +-- +1.7.9.2 + diff --git a/0002-bus-remove-unused-check.patch b/0002-bus-remove-unused-check.patch new file mode 100644 index 00000000..32c35276 --- /dev/null +++ b/0002-bus-remove-unused-check.patch @@ -0,0 +1,29 @@ +From 04c553e322680b6fcdf5b271e84b0b4b0ad8d5f9 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Tue, 23 Sep 2014 21:34:21 +0200 +Subject: [PATCH] bus: remove unused check + +strerror_r does not return null here and even if it did we would have +problems already at the preceding strlen call. + +Found by coverity. Fixes: CID#1237770 +--- + src/libsystemd/sd-bus/bus-error.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c +index c2e41fb..abdfd73 100644 +--- src/libsystemd/sd-bus/bus-error.c ++++ src/libsystemd/sd-bus/bus-error.c +@@ -312,7 +312,7 @@ static void bus_error_strerror(sd_bus_error *e, int error) { + continue; + } + +- if (!x || errno) { ++ if (errno) { + free(m); + return; + } +-- +1.7.9.2 + diff --git a/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch b/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch new file mode 100644 index 00000000..ec455770 --- /dev/null +++ b/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch @@ -0,0 +1,27 @@ +From cdd7b7dfd44649b204c43e907f03d4294de4f28a Mon Sep 17 00:00:00 2001 +From: Hristo Venev +Date: Mon, 23 Jun 2014 18:53:04 +0200 +Subject: [PATCH] core: make sure Environment fields passed in for transient + units are properly written to unit files + +https://bugs.freedesktop.org/show_bug.cgi?id=76744 +--- + src/core/dbus-execute.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/dbus-execute.c src/core/dbus-execute.c +index cb9a077..ecbadd7 100644 +--- src/core/dbus-execute.c ++++ src/core/dbus-execute.c +@@ -848,7 +848,7 @@ int bus_exec_context_set_transient_property( + strv_free(c->environment); + c->environment = e; + +- joined = strv_join(c->environment, " "); ++ joined = strv_join_quoted(c->environment); + if (!joined) + return -ENOMEM; + +-- +1.7.9.2 + diff --git a/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch b/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch new file mode 100644 index 00000000..61888e5f --- /dev/null +++ b/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch @@ -0,0 +1,42 @@ +From 375ae4aa4d2f89ae8afdd27e9f2b8336fcc2a046 Mon Sep 17 00:00:00 2001 +From: Uoti Urpala +Date: Mon, 23 Jun 2014 16:50:03 +0300 +Subject: [PATCH] core/transaction: fix cycle break attempts outside + transaction + +Patch fixes some incorrect-looking code in transaction.c. +It could fix cases where Debian users with bad package configurations +had systemd go into an infinite loop printing messages about breaking an +ordering cycle, though I have not reproduced that problem myself. + +transaction_verify_order_one() considers jobs/units outside current +transaction when checking whether ordering dependencies cause cycles. +It would also incorrectly try to break cycles at these jobs; this +cannot work, as the break action is to remove the job from the +transaction, which is a no-op if the job isn't part of the transaction +to begin with. The unit_matters_to_anchor() test also looks like it +would not work correctly for non-transaction jobs. Add a check to +verify that the unit is part of the transaction before considering a +job a candidate for deletion. + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752259 +--- + src/core/transaction.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/transaction.c src/core/transaction.c +index d23a45c..805d40a 100644 +--- src/core/transaction.c ++++ src/core/transaction.c +@@ -381,7 +381,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi + "Found dependency on %s/%s", + k->unit->id, job_type_to_string(k->type)); + +- if (!delete && ++ if (!delete && hashmap_get(tr->jobs, k->unit) && + !unit_matters_to_anchor(k->unit, k)) { + /* Ok, we can drop this one, so let's + * do so. */ +-- +1.7.9.2 + diff --git a/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch b/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch new file mode 100644 index 00000000..3a136da5 --- /dev/null +++ b/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch @@ -0,0 +1,23 @@ +Based on 4c3f1641f13b7687a0dc234d3ae387b7c40494ff Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 19 Nov 2014 20:52:23 +0100 +Subject: [PATCH] core: watchdog bus properties cannot be both writable and + constant + +--- + src/core/dbus-manager.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c 2014-11-20 13:43:06.781518488 +0000 +@@ -1599,8 +1599,8 @@ const sd_bus_vtable bus_manager_vtable[] + SD_BUS_PROPERTY("UnitPath", "as", NULL, offsetof(Manager, lookup_paths.unit_path), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("DefaultStandardOutput", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("DefaultStandardError", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), +- SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), +- SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), ++ SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), 0), ++ SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), 0), + SD_BUS_PROPERTY("ControlGroup", "s", NULL, offsetof(Manager, cgroup_root), 0), + + SD_BUS_METHOD("GetUnit", "s", "o", method_get_unit, SD_BUS_VTABLE_UNPRIVILEGED), diff --git a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch new file mode 100644 index 00000000..67454ead --- /dev/null +++ b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch @@ -0,0 +1,54 @@ +From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 17:11:39 +0100 +Subject: [PATCH] execute: free directory path if we fail to remove it because + we cannot allocate a thread + +--- + src/core/execute.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git src/core/execute.c src/core/execute.c +index 9de6e87..3312885 100644 +--- src/core/execute.c ++++ src/core/execute.c +@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { + } + + void exec_runtime_destroy(ExecRuntime *rt) { ++ int r; ++ + if (!rt) + return; + +@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { + + if (rt->tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); ++ free(rt->tmp_dir); ++ } ++ + rt->tmp_dir = NULL; + } + + if (rt->var_tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); ++ free(rt->var_tmp_dir); ++ } ++ + rt->var_tmp_dir = NULL; + } + +-- +1.7.9.2 + diff --git a/0002-fsck-include-device-name-in-the-message-about-missin.patch b/0002-fsck-include-device-name-in-the-message-about-missin.patch new file mode 100644 index 00000000..7ec3506f --- /dev/null +++ b/0002-fsck-include-device-name-in-the-message-about-missin.patch @@ -0,0 +1,26 @@ +Based on 8d2a6145334257c8a9ceabc9dd52dff06cca818e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 26 May 2014 23:03:11 -0400 +Subject: [PATCH] fsck: include device name in the message about missing fsck + +--- + src/fsck/fsck.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- src/fsck/fsck.c ++++ src/fsck/fsck.c 2014-06-03 14:15:15.746235301 +0000 +@@ -284,10 +284,12 @@ int main(int argc, char *argv[]) { + r = access(checker, X_OK); + if (r < 0) { + if (errno == ENOENT) { +- log_info("%s doesn't exist, not checking file system.", checker); ++ log_info("%s doesn't exist, not checking file system on %s", ++ checker, device); + return EXIT_SUCCESS; + } else +- log_warning("%s cannot be used: %m", checker); ++ log_warning("%s cannot be used for %s: %m", ++ checker, device); + } + } + diff --git a/0002-hostnamed-add-a-new-chassis-type-for-watches.patch b/0002-hostnamed-add-a-new-chassis-type-for-watches.patch new file mode 100644 index 00000000..a20c11c6 --- /dev/null +++ b/0002-hostnamed-add-a-new-chassis-type-for-watches.patch @@ -0,0 +1,26 @@ +From c49e59c1831f20fe02276d7bc6ba7d23d24c4ab3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 9 Jul 2014 13:20:05 +0200 +Subject: [PATCH] hostnamed: add a new chassis type for watches + +--- + src/hostname/hostnamed.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c +index 514554d..eaae113 100644 +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c +@@ -144,7 +144,8 @@ static bool valid_chassis(const char *chassis) { + "laptop\0" + "server\0" + "tablet\0" +- "handset\0", ++ "handset\0" ++ "watch\0", + chassis); + } + +-- +1.7.9.2 + diff --git a/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch b/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch new file mode 100644 index 00000000..8304b2d4 --- /dev/null +++ b/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch @@ -0,0 +1,42 @@ +From fc1ae82cae69d8dbbd9e7a31938810a486fac782 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Oct 2014 14:09:21 +0200 +Subject: [PATCH] hwdb: Add mapping for special keys on compaq ku 0133 + keyboards + +The compaq ku 0133 keyboard has 8 special keys at the top: +http://lackof.org/taggart/hacking/keyboard/cpqwireless.jpg + +3 of these use standard HID usage codes from the consumer page, the 5 +others use part of the reserved 0x07 - 0x1f range. + +This commit adds mapping for this keyboard for these reserved codes, making +the other 5 keys work. + +Cc: Hans de Goede +Signed-off-by: Hans de Goede +--- + hwdb/60-keyboard.hwdb | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 59f467b..06caba9 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -181,6 +181,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:pvr* + KEYBOARD_KEY_9e=email + KEYBOARD_KEY_9f=homepage + ++keyboard:usb:v049Fp0051d*dc*dsc*dp*ic*isc*ip*in01* ++ KEYBOARD_KEY_0c0011=presentation ++ KEYBOARD_KEY_0c0012=addressbook ++ KEYBOARD_KEY_0c0013=info ++ KEYBOARD_KEY_0c0014=prog1 ++ KEYBOARD_KEY_0c0015=messenger ++ + ########################################################### + # Dell + ########################################################### +-- +1.7.9.2 + diff --git a/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..a386c649 --- /dev/null +++ b/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,32 @@ +From f401e2b24ba17452f9655993a6dedefdffe06d23 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Tue, 11 Mar 2014 09:33:31 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 0335a71..7d86f10 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -911,3 +911,15 @@ bluetooth:v012C* + + bluetooth:v012D* + ID_VENDOR_FROM_DATABASE=Sony Corporation ++ ++bluetooth:v012E* ++ ID_VENDOR_FROM_DATABASE=ASSA ABLOY ++ ++bluetooth:v012F* ++ ID_VENDOR_FROM_DATABASE=Clarion Co., Ltd. ++ ++bluetooth:v0130* ++ ID_VENDOR_FROM_DATABASE=Warehouse Innovations ++ ++bluetooth:v0131* ++ ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation +-- +1.7.9.2 + diff --git a/0002-hwdb-update.patch b/0002-hwdb-update.patch new file mode 100644 index 00000000..1d3abc28 --- /dev/null +++ b/0002-hwdb-update.patch @@ -0,0 +1,2058 @@ +From dbe633cc027e31a0d4fb488a3c68b7762ef0e7b3 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 13 Apr 2014 23:46:27 -0700 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 275 +++++++++++++++++++++- + hwdb/20-pci-vendor-model.hwdb | 522 ++++++++++++++++++++++++++++++++++++++--- + 2 files changed, 751 insertions(+), 46 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 209b89e..17794ed 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -6929,7 +6929,7 @@ OUI:0050C2912* + ID_OUI_FROM_DATABASE=ASSET InterTech, Inc. + + OUI:0050C2913* +- ID_OUI_FROM_DATABASE=Selex Sensors & Airborne Systems ++ ID_OUI_FROM_DATABASE=Selex Ex Ltd + + OUI:0050C2914* + ID_OUI_FROM_DATABASE=IO-Connect +@@ -15944,7 +15944,7 @@ OUI:000300* + ID_OUI_FROM_DATABASE=Barracuda Networks, Inc. + + OUI:000301* +- ID_OUI_FROM_DATABASE=Avantas Networks Corporation ++ ID_OUI_FROM_DATABASE=EXFO + + OUI:000302* + ID_OUI_FROM_DATABASE=Charles Industries, Ltd. +@@ -24575,7 +24575,7 @@ OUI:000E65* + ID_OUI_FROM_DATABASE=TransCore + + OUI:000E66* +- ID_OUI_FROM_DATABASE=Hitachi Advanced Digital, Inc. ++ ID_OUI_FROM_DATABASE=Hitachi Industry & Control Solutions, Ltd. + + OUI:000E67* + ID_OUI_FROM_DATABASE=Eltis Microelectronics Ltd. +@@ -24947,7 +24947,7 @@ OUI:000EE1* + ID_OUI_FROM_DATABASE=ExtremeSpeed Inc. + + OUI:000EE2* +- ID_OUI_FROM_DATABASE=Custom Engineering S.p.A. ++ ID_OUI_FROM_DATABASE=Custom Engineering + + OUI:000EE3* + ID_OUI_FROM_DATABASE=Chiyu Technology Co.,Ltd +@@ -51760,6 +51760,9 @@ OUI:045A95* + OUI:045C06* + ID_OUI_FROM_DATABASE=Zmodo Technology Corporation + ++OUI:045C8E* ++ ID_OUI_FROM_DATABASE=gosund GROUP CO.,LTD ++ + OUI:045D56* + ID_OUI_FROM_DATABASE=camtron industrial inc. + +@@ -51865,6 +51868,9 @@ OUI:04C5A4* + OUI:04C880* + ID_OUI_FROM_DATABASE=Samtec Inc + ++OUI:04C991* ++ ID_OUI_FROM_DATABASE=Phistek INC. ++ + OUI:04CB1D* + ID_OUI_FROM_DATABASE=Traka plc + +@@ -52633,6 +52639,9 @@ OUI:08CA45* + OUI:08CC68* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:08CD9B* ++ ID_OUI_FROM_DATABASE=samtec automotive electronics & software GmbH ++ + OUI:08D09F* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -52684,6 +52693,9 @@ OUI:08F2F4* + OUI:08F6F8* + ID_OUI_FROM_DATABASE=GET Engineering + ++OUI:08F728* ++ ID_OUI_FROM_DATABASE=GLOBO Multimedia Sp. z o.o. Sp.k. ++ + OUI:08FAE0* + ID_OUI_FROM_DATABASE=Fohhn Audio AG + +@@ -52750,6 +52762,9 @@ OUI:0C3021* + OUI:0C37DC* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:0C383E* ++ ID_OUI_FROM_DATABASE=Fanvil Technology Co., Ltd. ++ + OUI:0C3956* + ID_OUI_FROM_DATABASE=Observator instruments + +@@ -53104,6 +53119,9 @@ OUI:102D96* + OUI:102EAF* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:103047* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:103378* + ID_OUI_FROM_DATABASE=FLECTRON Co., LTD + +@@ -53215,6 +53233,9 @@ OUI:1088CE* + OUI:108CCF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:109266* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:1093E9* + ID_OUI_FROM_DATABASE=Apple + +@@ -53260,6 +53281,9 @@ OUI:10BF48* + OUI:10C2BA* + ID_OUI_FROM_DATABASE=UTT Co., Ltd. + ++OUI:10C37B* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:10C586* + ID_OUI_FROM_DATABASE=BIO SOUND LAB CO., LTD. + +@@ -53365,6 +53389,9 @@ OUI:141BBD* + OUI:141BF0* + ID_OUI_FROM_DATABASE=Intellimedia Systems Ltd + ++OUI:141FBA* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:1423D7* + ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD. + +@@ -53518,6 +53545,9 @@ OUI:14B968* + OUI:14C089* + ID_OUI_FROM_DATABASE=DUNE HD LTD + ++OUI:14C126* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:14C21D* + ID_OUI_FROM_DATABASE=Sabtech Industries + +@@ -53572,6 +53602,9 @@ OUI:14F28E* + OUI:14F42A* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:14F65A* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:14FEAF* + ID_OUI_FROM_DATABASE=SAGITTAR LIMITED + +@@ -53659,6 +53692,9 @@ OUI:182B05* + OUI:182C91* + ID_OUI_FROM_DATABASE=Concept Development, Inc. + ++OUI:183009* ++ ID_OUI_FROM_DATABASE=Woojin Industrial Systems Co., Ltd. ++ + OUI:1832A2* + ID_OUI_FROM_DATABASE=LAON TECHNOLOGY CO., LTD. + +@@ -53698,6 +53734,9 @@ OUI:184617* + OUI:1848D8* + ID_OUI_FROM_DATABASE=Fastback Networks + ++OUI:184A6F* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd ++ + OUI:184E94* + ID_OUI_FROM_DATABASE=MESSOA TECHNOLOGIES INC. + +@@ -53758,6 +53797,9 @@ OUI:1880F5* + OUI:188331* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:1883BF* ++ ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation ++ + OUI:188410* + ID_OUI_FROM_DATABASE=CoreTrust Inc. + +@@ -54322,6 +54364,9 @@ OUI:206A8A* + OUI:206AFF* + ID_OUI_FROM_DATABASE=Atlas Elektronik UK Limited + ++OUI:206E9C* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:206FEC* + ID_OUI_FROM_DATABASE=Braemac CA LLC + +@@ -54838,6 +54883,9 @@ OUI:284C53* + OUI:284D92* + ID_OUI_FROM_DATABASE=Luminator + ++OUI:284ED7* ++ ID_OUI_FROM_DATABASE=OutSmart Power Systems, Inc. ++ + OUI:284FCE* + ID_OUI_FROM_DATABASE=Liaoning Wontel Science and Technology Development Co.,Ltd. + +@@ -54976,6 +55024,9 @@ OUI:28C68E* + OUI:28C718* + ID_OUI_FROM_DATABASE=Altierre + ++OUI:28C7CE* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:28C825* + ID_OUI_FROM_DATABASE=DellKing Industrial Co., Ltd + +@@ -55069,6 +55120,9 @@ OUI:28FBD3* + OUI:28FC51* + ID_OUI_FROM_DATABASE=The Electric Controller and Manufacturing Co., LLC + ++OUI:28FCF6* ++ ID_OUI_FROM_DATABASE=Shenzhen Xin KingBrand enterprises Co.,Ltd ++ + OUI:2C002C* + ID_OUI_FROM_DATABASE=UNOWHY + +@@ -55291,6 +55345,9 @@ OUI:2CB693* + OUI:2CB69D* + ID_OUI_FROM_DATABASE=RED Digital Cinema + ++OUI:2CBE08* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:2CBE97* + ID_OUI_FROM_DATABASE=Ingenieurbuero Bickele und Buehler GmbH + +@@ -55354,6 +55411,9 @@ OUI:30055C* + OUI:300B9C* + ID_OUI_FROM_DATABASE=Delta Mobile Systems, Inc. + ++OUI:300D2A* ++ ID_OUI_FROM_DATABASE=Zhejiang Wellcom Technology Co.,Ltd. ++ + OUI:300ED5* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd + +@@ -55450,6 +55510,9 @@ OUI:3055ED* + OUI:3057AC* + ID_OUI_FROM_DATABASE=IRLAB LTD. + ++OUI:30595B* ++ ID_OUI_FROM_DATABASE=streamnow AG ++ + OUI:3059B7* + ID_OUI_FROM_DATABASE=Microsoft + +@@ -55543,6 +55606,9 @@ OUI:30B3A2* + OUI:30B5C2* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:30B5F1* ++ ID_OUI_FROM_DATABASE=Aitexin Technology Co., Ltd ++ + OUI:30C750* + ID_OUI_FROM_DATABASE=MIC Technology Group + +@@ -55606,6 +55672,9 @@ OUI:30F9ED* + OUI:30FD11* + ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. + ++OUI:340286* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:3407FB* + ID_OUI_FROM_DATABASE=Ericsson AB + +@@ -55654,6 +55723,9 @@ OUI:342F6E* + OUI:343111* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:3431C4* ++ ID_OUI_FROM_DATABASE=AVM GmbH ++ + OUI:3440B5* + ID_OUI_FROM_DATABASE=IBM + +@@ -55840,6 +55912,9 @@ OUI:34C059* + OUI:34C3AC* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:34C5D0* ++ ID_OUI_FROM_DATABASE=Hagleitner Hygiene International GmbH ++ + OUI:34C69A* + ID_OUI_FROM_DATABASE=Enecsys Ltd + +@@ -55963,6 +56038,9 @@ OUI:3826CD* + OUI:3828EA* + ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD + ++OUI:382DD1* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:3831AC* + ID_OUI_FROM_DATABASE=WEG + +@@ -56371,6 +56449,9 @@ OUI:3C99F7* + OUI:3C9F81* + ID_OUI_FROM_DATABASE=Shenzhen CATIC Bit Communications Technology Co.,Ltd + ++OUI:3CA10D* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:3CA315* + ID_OUI_FROM_DATABASE=Bless Information & Communications Co., Ltd + +@@ -56380,6 +56461,9 @@ OUI:3CA72B* + OUI:3CA9F4* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:3CAA3F* ++ ID_OUI_FROM_DATABASE=iKey, Ltd. ++ + OUI:3CAB8E* + ID_OUI_FROM_DATABASE=Apple + +@@ -56413,6 +56497,9 @@ OUI:3CC99E* + OUI:3CCA87* + ID_OUI_FROM_DATABASE=Iders Incorporated + ++OUI:3CCD5A* ++ ID_OUI_FROM_DATABASE=Technische Alternative GmbH ++ + OUI:3CCD93* + ID_OUI_FROM_DATABASE=LG ELECTRONICS INC + +@@ -57109,6 +57196,9 @@ OUI:481A84* + OUI:481BD2* + ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. + ++OUI:4826E8* ++ ID_OUI_FROM_DATABASE=Tek-Air Systems, Inc. ++ + OUI:48282F* + ID_OUI_FROM_DATABASE=ZTE Corporation + +@@ -57260,7 +57350,7 @@ OUI:48D7FF* + ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH + + OUI:48D855* +- ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY ++ ID_OUI_FROM_DATABASE=Telvent + + OUI:48D8FE* + ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. +@@ -57748,6 +57838,9 @@ OUI:507E5D* + OUI:508569* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD + ++OUI:508789* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:5087B8* + ID_OUI_FROM_DATABASE=Nuvyyo Inc + +@@ -57880,6 +57973,9 @@ OUI:50FC30* + OUI:50FC9F* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:50FEF2* ++ ID_OUI_FROM_DATABASE=Sify Technologies Ltd ++ + OUI:5403F5* + ID_OUI_FROM_DATABASE=EBN Technology Corp. + +@@ -58072,6 +58168,9 @@ OUI:54AE27* + OUI:54B620* + ID_OUI_FROM_DATABASE=SUHDOL E&C Co.Ltd. + ++OUI:54B753* ++ ID_OUI_FROM_DATABASE=Hunan Fenghui Yinjia Science And Technology Co.,Ltd ++ + OUI:54BEF7* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + +@@ -58132,6 +58231,9 @@ OUI:54F5B6* + OUI:54F666* + ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG + ++OUI:54FA3E* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD ++ + OUI:54FB58* + ID_OUI_FROM_DATABASE=WISEWARE, Lda + +@@ -58462,6 +58564,9 @@ OUI:5C260A* + OUI:5C2AEF* + ID_OUI_FROM_DATABASE=Open Access Pty Ltd + ++OUI:5C2E59* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:5C313E* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -58519,6 +58624,9 @@ OUI:5C57C8* + OUI:5C5948* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C5BC2* ++ ID_OUI_FROM_DATABASE=YIK Corporation ++ + OUI:5C5EAB* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -58558,6 +58666,9 @@ OUI:5C8778* + OUI:5C89D4* + ID_OUI_FROM_DATABASE=Beijing Banner Electric Co.,Ltd + ++OUI:5C8D4E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:5C95AE* + ID_OUI_FROM_DATABASE=Apple + +@@ -58819,6 +58930,9 @@ OUI:607688* + OUI:60812B* + ID_OUI_FROM_DATABASE=Custom Control Concepts + ++OUI:6081F9* ++ ID_OUI_FROM_DATABASE=Helium Systems, Inc ++ + OUI:6083B2* + ID_OUI_FROM_DATABASE=GkWare e.K. + +@@ -58867,6 +58981,9 @@ OUI:60A10A* + OUI:60A44C* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + ++OUI:60A8FE* ++ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks ++ + OUI:60A9B0* + ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc + +@@ -58918,6 +59035,9 @@ OUI:60C980* + OUI:60CBFB* + ID_OUI_FROM_DATABASE=AirScape Inc. + ++OUI:60CDA9* ++ ID_OUI_FROM_DATABASE=Abloomy ++ + OUI:60CDC5* + ID_OUI_FROM_DATABASE=Taiwan Carol Electronics., Ltd + +@@ -59092,6 +59212,9 @@ OUI:644D70* + OUI:644F74* + ID_OUI_FROM_DATABASE=LENUS Co., Ltd. + ++OUI:644FB0* ++ ID_OUI_FROM_DATABASE=Hyunjin.com ++ + OUI:64517E* + ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. + +@@ -59146,6 +59269,9 @@ OUI:64680C* + OUI:6469BC* + ID_OUI_FROM_DATABASE=Hytera Communications Co .,ltd + ++OUI:646CB2* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:646E6C* + ID_OUI_FROM_DATABASE=Radio Datacom LLC + +@@ -59305,6 +59431,9 @@ OUI:64D814* + OUI:64D912* + ID_OUI_FROM_DATABASE=Solidica, Inc. + ++OUI:64D954* ++ ID_OUI_FROM_DATABASE=TAICANG AND W ELECTRONICS CO LTD ++ + OUI:64D989* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -59368,6 +59497,9 @@ OUI:64F987* + OUI:64FC8C* + ID_OUI_FROM_DATABASE=Zonar Systems + ++OUI:680571* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:6805CA* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -59701,6 +59833,9 @@ OUI:6C2E33* + OUI:6C2E85* + ID_OUI_FROM_DATABASE=SAGEMCOM + ++OUI:6C2F2C* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:6C32DE* + ID_OUI_FROM_DATABASE=Indieon Technologies Pvt. Ltd. + +@@ -59860,6 +59995,9 @@ OUI:6CADF8* + OUI:6CAE8B* + ID_OUI_FROM_DATABASE=IBM Corporation + ++OUI:6CB0CE* ++ ID_OUI_FROM_DATABASE=NETGEAR ++ + OUI:6CB311* + ID_OUI_FROM_DATABASE=Shenzhen Lianrui Electronics Co.,Ltd + +@@ -59875,6 +60013,9 @@ OUI:6CBEE9* + OUI:6CC1D2* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:6CC217* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:6CC26B* + ID_OUI_FROM_DATABASE=Apple + +@@ -59929,6 +60070,9 @@ OUI:6CF97C* + OUI:6CFA58* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:6CFA89* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:6CFAA7* + ID_OUI_FROM_DATABASE=AMPAK Technology Inc. + +@@ -60097,6 +60241,9 @@ OUI:7071B3* + OUI:7071BC* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + ++OUI:70720D* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:70723C* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -60502,6 +60649,9 @@ OUI:74D850* + OUI:74DA38* + ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. + ++OUI:74DBD1* ++ ID_OUI_FROM_DATABASE=Ebay Inc ++ + OUI:74DE2B* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -60733,6 +60883,9 @@ OUI:78923E* + OUI:78929C* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:789684* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:7898FD* + ID_OUI_FROM_DATABASE=Q9 Networks Inc. + +@@ -60922,6 +61075,9 @@ OUI:78F7BE* + OUI:78F7D0* + ID_OUI_FROM_DATABASE=Silverbrook Research + ++OUI:78FD94* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:78FE3D* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -61060,6 +61216,9 @@ OUI:7C69F6* + OUI:7C6AB3* + ID_OUI_FROM_DATABASE=IBC TECHNOLOGIES INC. + ++OUI:7C6AC3* ++ ID_OUI_FROM_DATABASE=GatesAir, Inc ++ + OUI:7C6ADB* + ID_OUI_FROM_DATABASE=SafeTone Technology Co.,Ltd + +@@ -61087,6 +61246,9 @@ OUI:7C6F06* + OUI:7C6FF8* + ID_OUI_FROM_DATABASE=ShenZhen ACTO Digital Video Technology Co.,Ltd. + ++OUI:7C70BC* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:7C72E4* + ID_OUI_FROM_DATABASE=Unikey Technologies + +@@ -61174,6 +61336,9 @@ OUI:7CBFB1* + OUI:7CC3A1* + ID_OUI_FROM_DATABASE=Apple + ++OUI:7CC4EF* ++ ID_OUI_FROM_DATABASE=Devialet ++ + OUI:7CC537* + ID_OUI_FROM_DATABASE=Apple + +@@ -61231,6 +61396,9 @@ OUI:7CE044* + OUI:7CE1FF* + ID_OUI_FROM_DATABASE=Computer Performance, Inc. DBA Digital Loggers, Inc. + ++OUI:7CE524* ++ ID_OUI_FROM_DATABASE=Quirky, Inc. ++ + OUI:7CE56B* + ID_OUI_FROM_DATABASE=ESEN Optoelectronics Technology Co.,Ltd. + +@@ -61477,6 +61645,9 @@ OUI:80A1D7* + OUI:80AAA4* + ID_OUI_FROM_DATABASE=USAG + ++OUI:80AD67* ++ ID_OUI_FROM_DATABASE=Kasda Digital Technology Co.,Ltd ++ + OUI:80B219* + ID_OUI_FROM_DATABASE=ELEKTRON TECHNOLOGY UK LIMITED + +@@ -61564,6 +61735,9 @@ OUI:80FFA8* + OUI:8400D2* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:8401A7* ++ ID_OUI_FROM_DATABASE=Greyware Automation Products, Inc ++ + OUI:840B2D* + ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS CO., LTD + +@@ -61576,6 +61750,9 @@ OUI:841715* + OUI:841766* + ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd + ++OUI:84183A* ++ ID_OUI_FROM_DATABASE=Ruckus Wireless ++ + OUI:841888* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -61723,6 +61900,9 @@ OUI:848433* + OUI:848506* + ID_OUI_FROM_DATABASE=Apple + ++OUI:84850A* ++ ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH ++ + OUI:848D84* + ID_OUI_FROM_DATABASE=Rajant Corporation + +@@ -61885,6 +62065,9 @@ OUI:8823FE* + OUI:88252C* + ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation + ++OUI:882950* ++ ID_OUI_FROM_DATABASE=Dalian Netmoon Tech Develop Co.,Ltd ++ + OUI:882E5A* + ID_OUI_FROM_DATABASE=storONE + +@@ -61948,6 +62131,9 @@ OUI:885C47* + OUI:88615A* + ID_OUI_FROM_DATABASE=Siano Mobile Silicon Ltd. + ++OUI:8863DF* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:88685C* + ID_OUI_FROM_DATABASE=Shenzhen ChuangDao & Perpetual Eternal Technology Co.,Ltd + +@@ -62098,6 +62284,9 @@ OUI:88E917* + OUI:88ED1C* + ID_OUI_FROM_DATABASE=Cudo Communication Co., Ltd. + ++OUI:88F031* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:88F077* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -62326,6 +62515,9 @@ OUI:8CB864* + OUI:8CBEBE* + ID_OUI_FROM_DATABASE=Xiaomi Technology Co.,Ltd + ++OUI:8CBF9D* ++ ID_OUI_FROM_DATABASE=Shanghai Xinyou Information Technology Ltd. Co. ++ + OUI:8CC121* + ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company + +@@ -62662,6 +62854,9 @@ OUI:90B97D* + OUI:90C115* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:90C792* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:90CC24* + ID_OUI_FROM_DATABASE=Synaptics, Inc + +@@ -63259,6 +63454,9 @@ OUI:98EC65* + OUI:98F0AB* + ID_OUI_FROM_DATABASE=Apple + ++OUI:98F170* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:98F537* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -63496,6 +63694,9 @@ OUI:9CA577* + OUI:9CA9E4* + ID_OUI_FROM_DATABASE=zte corporation + ++OUI:9CAD97* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:9CADEF* + ID_OUI_FROM_DATABASE=Obihai Technology, Inc. + +@@ -64456,6 +64657,9 @@ OUI:A8E018* + OUI:A8E3EE* + ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. + ++OUI:A8E539* ++ ID_OUI_FROM_DATABASE=Moimstone Co.,Ltd ++ + OUI:A8EF26* + ID_OUI_FROM_DATABASE=Tritonwave + +@@ -64702,6 +64906,9 @@ OUI:ACA016* + OUI:ACA22C* + ID_OUI_FROM_DATABASE=Baycity Technologies Ltd + ++OUI:ACA31E* ++ ID_OUI_FROM_DATABASE=Aruba Networks ++ + OUI:ACA430* + ID_OUI_FROM_DATABASE=Peerless AV + +@@ -64837,6 +65044,12 @@ OUI:B000B4* + OUI:B00594* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + ++OUI:B009D3* ++ ID_OUI_FROM_DATABASE=Avizia ++ ++OUI:B01041* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:B01203* + ID_OUI_FROM_DATABASE=Dynamics Hong Kong Limited + +@@ -64951,6 +65164,9 @@ OUI:B0808C* + OUI:B081D8* + ID_OUI_FROM_DATABASE=I-sys Corp + ++OUI:B083FE* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:B0869E* + ID_OUI_FROM_DATABASE=Chloride S.r.L + +@@ -65122,6 +65338,9 @@ OUI:B407F9* + OUI:B40832* + ID_OUI_FROM_DATABASE=TC Communications + ++OUI:B40B44* ++ ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. ++ + OUI:B40B7A* + ID_OUI_FROM_DATABASE=Brusa Elektronik AG + +@@ -65200,6 +65419,9 @@ OUI:B4417A* + OUI:B4430D* + ID_OUI_FROM_DATABASE=Broadlink Pty Ltd + ++OUI:B4475E* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:B44CC2* + ID_OUI_FROM_DATABASE=NR ELECTRIC CO., LTD + +@@ -65608,6 +65830,9 @@ OUI:B8A8AF* + OUI:B8AC6F* + ID_OUI_FROM_DATABASE=Dell Inc + ++OUI:B8AD3E* ++ ID_OUI_FROM_DATABASE=BLUECOM ++ + OUI:B8AE6E* + ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. + +@@ -65842,6 +66067,9 @@ OUI:BC4B79* + OUI:BC4E3C* + ID_OUI_FROM_DATABASE=CORE STAFF CO., LTD. + ++OUI:BC4E5D* ++ ID_OUI_FROM_DATABASE=ZhongMiao Technology Co., Ltd. ++ + OUI:BC51FE* + ID_OUI_FROM_DATABASE=Swann Communications Pty Ltd + +@@ -65974,6 +66202,9 @@ OUI:BCC6DB* + OUI:BCC810* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:BCCAB5* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:BCCD45* + ID_OUI_FROM_DATABASE=VOISMART + +@@ -66748,6 +66979,9 @@ OUI:C88B47* + OUI:C8903E* + ID_OUI_FROM_DATABASE=Pakton Technologies + ++OUI:C891F9* ++ ID_OUI_FROM_DATABASE=SAGEMCOM ++ + OUI:C89346* + ID_OUI_FROM_DATABASE=MXCHIP Company Limited + +@@ -67000,6 +67234,9 @@ OUI:CC3A61* + OUI:CC3C3F* + ID_OUI_FROM_DATABASE=SA.S.S. Datentechnik AG + ++OUI:CC3D82* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:CC3E5F* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -67303,6 +67540,9 @@ OUI:D03761* + OUI:D03972* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:D039B3* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:D046DC* + ID_OUI_FROM_DATABASE=Southwest Research Institute + +@@ -67735,6 +67975,9 @@ OUI:D48FAA* + OUI:D491AF* + ID_OUI_FROM_DATABASE=Electroacustica General Iberica, S.A. + ++OUI:D49398* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:D493A0* + ID_OUI_FROM_DATABASE=Fidelix Oy + +@@ -68057,7 +68300,7 @@ OUI:D89695* + ID_OUI_FROM_DATABASE=Apple + + OUI:D8973B* +- ID_OUI_FROM_DATABASE=Emerson Network Power Embedded Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:D89760* + ID_OUI_FROM_DATABASE=C2 Development, Inc. +@@ -68170,6 +68413,9 @@ OUI:D8DF0D* + OUI:D8E3AE* + ID_OUI_FROM_DATABASE=CIRTEC MEDICAL SYSTEMS + ++OUI:D8E56D* ++ ID_OUI_FROM_DATABASE=TCT Mobile Limited ++ + OUI:D8E72B* + ID_OUI_FROM_DATABASE=OnPATH Technologies + +@@ -69319,6 +69565,9 @@ OUI:E8F928* + OUI:E8FC60* + ID_OUI_FROM_DATABASE=ELCOM Innovations Private Limited + ++OUI:E8FCAF* ++ ID_OUI_FROM_DATABASE=NETGEAR INC., ++ + OUI:EC0ED6* + ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS + +@@ -69442,6 +69691,9 @@ OUI:EC888F* + OUI:EC89F5* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:EC8A4C* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:EC8EAD* + ID_OUI_FROM_DATABASE=DLX + +@@ -70099,6 +70351,9 @@ OUI:F4CE46* + OUI:F4CFE2* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:F4D261* ++ ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd ++ + OUI:F4D9FB* + ID_OUI_FROM_DATABASE=Samsung Electronics CO., LTD + +@@ -70111,6 +70366,9 @@ OUI:F4DCDA* + OUI:F4DCF9* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:F4DD9E* ++ ID_OUI_FROM_DATABASE=GoPro ++ + OUI:F4E142* + ID_OUI_FROM_DATABASE=Delta Elektronika BV + +@@ -70318,6 +70576,9 @@ OUI:F87B8C* + OUI:F8811A* + ID_OUI_FROM_DATABASE=OVERKIZ + ++OUI:F884F2* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:F88C1C* + ID_OUI_FROM_DATABASE=KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING + +@@ -70586,7 +70847,7 @@ OUI:FC3FAB* + ID_OUI_FROM_DATABASE=Henan Lanxin Technology Co., Ltd + + OUI:FC4463* +- ID_OUI_FROM_DATABASE=Universal Audio ++ ID_OUI_FROM_DATABASE=Universal Audio, Inc + + OUI:FC4499* + ID_OUI_FROM_DATABASE=Swarco LEA d.o.o. +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 371a685..d54cb2a 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -497,6 +497,9 @@ pci:v00000E11d0000F130* + pci:v00000E11d0000F150* + ID_MODEL_FROM_DATABASE=NetFlex-3/P ThunderLAN 2.3 + ++pci:v00000E55* ++ ID_VENDOR_FROM_DATABASE=HaSoTec GmbH ++ + pci:v00000EAC* + ID_VENDOR_FROM_DATABASE=SHF Communication Technologies AG + +@@ -1169,6 +1172,12 @@ pci:v00001000d00000073sv00001137sd000000B0* + pci:v00001000d00000073sv00001137sd000000B1* + ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i + ++pci:v00001000d00000073sv00001137sd000000C2* ++ ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide ++ ++pci:v00001000d00000073sv00001137sd000000C3* ++ ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide ++ + pci:v00001000d00000073sv000015D9sd00000400* + ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR + +@@ -1665,25 +1674,25 @@ pci:v00001002d00001307* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d00001309* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d0000130A* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] + + pci:v00001002d0000130B* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] + + pci:v00001002d0000130C* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d0000130D* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] + + pci:v00001002d0000130E* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] + + pci:v00001002d0000130F* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d00001310* + ID_MODEL_FROM_DATABASE=Kaveri +@@ -1695,7 +1704,7 @@ pci:v00001002d00001312* + ID_MODEL_FROM_DATABASE=Kaveri + + pci:v00001002d00001313* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d00001314* + ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio +@@ -1704,22 +1713,25 @@ pci:v00001002d00001314sv0000174Bsd00001001* + ID_MODEL_FROM_DATABASE=PURE Fusion Mini + + pci:v00001002d00001315* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] + + pci:v00001002d00001316* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] + + pci:v00001002d00001317* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d00001318* ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] ++ + pci:v00001002d0000131B* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] + + pci:v00001002d0000131C* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + + pci:v00001002d0000131D* +- ID_MODEL_FROM_DATABASE=Kaveri ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] + + pci:v00001002d00001714* + ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] +@@ -4275,7 +4287,7 @@ pci:v00001002d00006641* + ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] + + pci:v00001002d00006649* +- ID_MODEL_FROM_DATABASE=Bonaire ++ ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] + + pci:v00001002d00006650* + ID_MODEL_FROM_DATABASE=Bonaire +@@ -4326,13 +4338,13 @@ pci:v00001002d00006663sv00001025sd00000846* + ID_MODEL_FROM_DATABASE=Radeon HD 8570A + + pci:v00001002d00006664* +- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] ++ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] + + pci:v00001002d00006665* + ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] + + pci:v00001002d00006667* +- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] ++ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] + + pci:v00001002d0000666F* + ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] +@@ -5808,7 +5820,7 @@ pci:v00001002d00006792* + ID_MODEL_FROM_DATABASE=Tahiti + + pci:v00001002d00006798* +- ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/R9 280X] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] + + pci:v00001002d00006798sv00001002sd00003000* + ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] +@@ -5934,7 +5946,7 @@ pci:v00001002d000067B1* + ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] + + pci:v00001002d000067B9* +- ID_MODEL_FROM_DATABASE=Vesuvius ++ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] + + pci:v00001002d000067BE* + ID_MODEL_FROM_DATABASE=Hawaii LE +@@ -5952,7 +5964,7 @@ pci:v00001002d00006800sv00008086sd00002111* + ID_MODEL_FROM_DATABASE=Radeon HD 7970M + + pci:v00001002d00006801* +- ID_MODEL_FROM_DATABASE=Neptune [Radeon HD 8970M] ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] + + pci:v00001002d00006801sv00001002sd00000124* + ID_MODEL_FROM_DATABASE=Radeon HD 8970M +@@ -6017,6 +6029,9 @@ pci:v00001002d00006820* + pci:v00001002d00006820sv0000103Csd00001851* + ID_MODEL_FROM_DATABASE=Radeon HD 7750M + ++pci:v00001002d00006820sv000017AAsd00003801* ++ ID_MODEL_FROM_DATABASE=Radeon R9 M275 ++ + pci:v00001002d00006821* + ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] + +@@ -7817,6 +7832,12 @@ pci:v00001002d000068FAsv000017AFsd00003015* + pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE + ++pci:v00001002d00006900* ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] ++ ++pci:v00001002d00006901* ++ ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] ++ + pci:v00001002d00006920* + ID_MODEL_FROM_DATABASE=Tonga + +@@ -10391,6 +10412,15 @@ pci:v00001014d0000034Asv00001014sd00000499* + pci:v00001014d0000034Asv00001014sd0000049A* + ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) + ++pci:v00001014d0000034Asv00001014sd000004C7* ++ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) ++ ++pci:v00001014d0000034Asv00001014sd000004C8* ++ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) ++ ++pci:v00001014d0000034Asv00001014sd00000C49* ++ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) ++ + pci:v00001014d000004AA* + ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) + +@@ -13793,6 +13823,63 @@ pci:v0000103Cd00003238sv0000103Csd00003211* + pci:v0000103Cd00003238sv0000103Csd00003212* + ID_MODEL_FROM_DATABASE=Smart Array E200 + ++pci:v0000103Cd00003239* ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers ++ ++pci:v0000103Cd00003239sv0000103Csd000021BD* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021BE* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021BF* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C0* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C1* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C2* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C3* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C4* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C5* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C6* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C7* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C8* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021C9* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CA* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CB* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CC* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CD* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ ++pci:v0000103Cd00003239sv0000103Csd000021CE* ++ ID_MODEL_FROM_DATABASE=Smart Array ++ + pci:v0000103Cd0000323A* + ID_MODEL_FROM_DATABASE=Smart Array G6 controllers + +@@ -17954,6 +18041,54 @@ pci:v0000109Ed0000036Esv000018ACsd0000D500* + pci:v0000109Ed0000036Esv0000270Fsd0000FC00* + ID_MODEL_FROM_DATABASE=Digitop DTT-1000 + ++pci:v0000109Ed0000036Esv0000AA00sd00001460* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 ++ ++pci:v0000109Ed0000036Esv0000AA01sd00001461* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 ++ ++pci:v0000109Ed0000036Esv0000AA02sd00001462* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 ++ ++pci:v0000109Ed0000036Esv0000AA03sd00001463* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 ++ ++pci:v0000109Ed0000036Esv0000AA04sd00001464* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 ++ ++pci:v0000109Ed0000036Esv0000AA05sd00001465* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 ++ ++pci:v0000109Ed0000036Esv0000AA06sd00001466* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 ++ ++pci:v0000109Ed0000036Esv0000AA07sd00001467* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 ++ ++pci:v0000109Ed0000036Esv0000AA08sd00001468* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 ++ ++pci:v0000109Ed0000036Esv0000AA09sd00001469* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 ++ ++pci:v0000109Ed0000036Esv0000AA0Asd0000146A* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 ++ ++pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 ++ ++pci:v0000109Ed0000036Esv0000AA0Csd0000146C* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 ++ ++pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 ++ ++pci:v0000109Ed0000036Esv0000AA0Esd0000146E* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 ++ ++pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* ++ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 ++ + pci:v0000109Ed0000036Esv0000BD11sd00001200* + ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) + +@@ -26009,6 +26144,9 @@ pci:v000010DEd00000E1A* + pci:v000010DEd00000E1B* + ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller + ++pci:v000010DEd00000E1Bsv0000103Csd0000197B* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v000010DEd00000E1Bsv00001043sd00008428* + ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 + +@@ -26165,6 +26303,9 @@ pci:v000010DEd00000FF5* + pci:v000010DEd00000FF6* + ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] + ++pci:v000010DEd00000FF6sv0000103Csd0000197B* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v000010DEd00000FF7* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] + +@@ -26234,6 +26375,12 @@ pci:v000010DEd00001005sv00003842sd00002794* + pci:v000010DEd00001005sv00003842sd00002795* + ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature + ++pci:v000010DEd00001007* ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] ++ ++pci:v000010DEd00001008* ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Ti Rev. 2] ++ + pci:v000010DEd0000100A* + ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] + +@@ -26294,6 +26441,9 @@ pci:v000010DEd0000104Asv000010B0sd0000104A* + pci:v000010DEd0000104B* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] + ++pci:v000010DEd0000104C* ++ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 705] ++ + pci:v000010DEd00001050* + ID_MODEL_FROM_DATABASE=GF119M [GeForce GT 520M] + +@@ -26333,6 +26483,24 @@ pci:v000010DEd00001058sv00001043sd000010BC* + pci:v000010DEd00001058sv00001043sd00001652* + ID_MODEL_FROM_DATABASE=GeForce GT 610M + ++pci:v000010DEd00001058sv000017AAsd0000367A* ++ ID_MODEL_FROM_DATABASE=GeForce 610M ++ ++pci:v000010DEd00001058sv000017AAsd00003682* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd00001058sv000017AAsd00003687* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd00001058sv000017AAsd00003692* ++ ID_MODEL_FROM_DATABASE=GeForce 705A ++ ++pci:v000010DEd00001058sv000017AAsd00003695* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd00001058sv000017AAsd0000A117* ++ ID_MODEL_FROM_DATABASE=GeForce 610M ++ + pci:v000010DEd00001059* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] + +@@ -26351,6 +26519,15 @@ pci:v000010DEd0000105B* + pci:v000010DEd0000105Bsv0000103Csd00002AFB* + ID_MODEL_FROM_DATABASE=GeForce 705A + ++pci:v000010DEd0000105Bsv000017AAsd0000309D* ++ ID_MODEL_FROM_DATABASE=GeForce 705A ++ ++pci:v000010DEd0000105Bsv000017AAsd000030B1* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ ++pci:v000010DEd0000105Bsv000017AAsd000036A1* ++ ID_MODEL_FROM_DATABASE=GeForce 800A ++ + pci:v000010DEd0000107C* + ID_MODEL_FROM_DATABASE=GF119 [NVS 315] + +@@ -26675,6 +26852,30 @@ pci:v000010DEd00001140sv00001043sd000014C7* + pci:v000010DEd00001140sv00001043sd00001507* + ID_MODEL_FROM_DATABASE=GeForce GT 620M + ++pci:v000010DEd00001140sv00001043sd000015AD* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd000015ED* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000160D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000163D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000166D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd000016CD* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd000016DD* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000170D* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ + pci:v000010DEd00001140sv00001043sd00002132* + ID_MODEL_FROM_DATABASE=GeForce GT 620M + +@@ -26699,6 +26900,12 @@ pci:v000010DEd00001140sv00001043sd0000223A* + pci:v000010DEd00001140sv00001043sd0000224A* + ID_MODEL_FROM_DATABASE=GeForce GT 710M + ++pci:v000010DEd00001140sv00001043sd0000227A* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ ++pci:v000010DEd00001140sv00001043sd0000228A* ++ ID_MODEL_FROM_DATABASE=GeForce 820M ++ + pci:v000010DEd00001140sv00001043sd00008595* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + +@@ -26864,9 +27071,48 @@ pci:v000010DEd00001140sv000017AAsd00002213* + pci:v000010DEd00001140sv000017AAsd00002220* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + ++pci:v000010DEd00001140sv000017AAsd0000309C* ++ ID_MODEL_FROM_DATABASE=GeForce GT 720A ++ ++pci:v000010DEd00001140sv000017AAsd000030B4* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ + pci:v000010DEd00001140sv000017AAsd00003656* + ID_MODEL_FROM_DATABASE=GeForce GT 620M + ++pci:v000010DEd00001140sv000017AAsd0000365A* ++ ID_MODEL_FROM_DATABASE=GeForce 705M ++ ++pci:v000010DEd00001140sv000017AAsd0000365E* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd0000366C* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd00003685* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd00003686* ++ ID_MODEL_FROM_DATABASE=GeForce 800M ++ ++pci:v000010DEd00001140sv000017AAsd00003687* ++ ID_MODEL_FROM_DATABASE=GeForce 705A ++ ++pci:v000010DEd00001140sv000017AAsd00003696* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369B* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369C* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369D* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ ++pci:v000010DEd00001140sv000017AAsd0000369E* ++ ID_MODEL_FROM_DATABASE=GeForce 820A ++ + pci:v000010DEd00001140sv000017AAsd00003800* + ID_MODEL_FROM_DATABASE=GeForce GT 720M + +@@ -27044,6 +27290,9 @@ pci:v000010DEd0000118F* + pci:v000010DEd00001193* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] + ++pci:v000010DEd00001195* ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 Rev. 2] ++ + pci:v000010DEd00001198* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] + +@@ -27173,6 +27422,9 @@ pci:v000010DEd000011E2* + pci:v000010DEd000011E3* + ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] + ++pci:v000010DEd000011E3sv000017AAsd00003683* ++ ID_MODEL_FROM_DATABASE=GeForce GTX 760A ++ + pci:v000010DEd000011FA* + ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] + +@@ -27323,6 +27575,9 @@ pci:v000010DEd00001282* + pci:v000010DEd00001284* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 630 Rev. 2] + ++pci:v000010DEd00001286* ++ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] ++ + pci:v000010DEd00001290* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] + +@@ -27380,6 +27635,15 @@ pci:v000010DEd00001340* + pci:v000010DEd00001341* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] + ++pci:v000010DEd00001341sv000017AAsd00003697* ++ ID_MODEL_FROM_DATABASE=GeForce 840A ++ ++pci:v000010DEd00001341sv000017AAsd00003699* ++ ID_MODEL_FROM_DATABASE=GeForce 840A ++ ++pci:v000010DEd00001341sv000017AAsd0000369C* ++ ID_MODEL_FROM_DATABASE=GeForce 840A ++ + pci:v000010DEd00001380* + ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] + +@@ -27395,6 +27659,12 @@ pci:v000010DEd00001390* + pci:v000010DEd00001391* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] + ++pci:v000010DEd00001391sv000017AAsd00003697* ++ ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ ++pci:v000010DEd00001391sv000017AAsd0000A125* ++ ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ + pci:v000010DEd00001392* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] + +@@ -27839,6 +28109,9 @@ pci:v000010ECd00005227* + pci:v000010ECd00005227sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + ++pci:v000010ECd00005227sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v000010ECd00005229* + ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader + +@@ -27848,6 +28121,12 @@ pci:v000010ECd00005229sv00001025sd00000813* + pci:v000010ECd00005229sv0000103Csd0000194E* + ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook + ++pci:v000010ECd00005249* ++ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader ++ ++pci:v000010ECd00005249sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v000010ECd00005288* + ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader + +@@ -30561,7 +30840,7 @@ pci:v0000110Ad00004021* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) + + pci:v0000110Ad00004029* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 + + pci:v0000110Ad00004029sv0000110Asd00004029* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 +@@ -30581,6 +30860,9 @@ pci:v0000110Ad00004038* + pci:v0000110Ad00004069* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 + ++pci:v0000110Ad00004069sv0000110Asd00004069* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 ++ + pci:v0000110Ad00004069sv0000110Asd0000C069* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 + +@@ -31541,6 +31823,9 @@ pci:v00001131d00007133sv0000153Bsd00001160* + pci:v00001131d00007133sv0000153Bsd00001162* + ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile + ++pci:v00001131d00007133sv000017DEsd00007256* ++ ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card ++ + pci:v00001131d00007133sv000017DEsd00007350* + ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner + +@@ -33651,7 +33936,7 @@ pci:v00001180d00000476sv000014EFsd00000220* + ID_MODEL_FROM_DATABASE=PCD-RP-220S + + pci:v00001180d00000476sv000017AAsd0000201C* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00001180d00000476sv000017AAsd000020C4* + ID_MODEL_FROM_DATABASE=ThinkPad T61 +@@ -33711,7 +33996,7 @@ pci:v00001180d00000552sv0000144Dsd0000C00C* + ID_MODEL_FROM_DATABASE=P30/P35 notebook + + pci:v00001180d00000552sv000017AAsd0000201E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00001180d00000554* + ID_MODEL_FROM_DATABASE=R5C554 +@@ -33813,7 +34098,7 @@ pci:v00001180d00000822sv0000144Dsd0000C018* + ID_MODEL_FROM_DATABASE=X20 IV + + pci:v00001180d00000822sv000017AAsd0000201D* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00001180d00000822sv000017AAsd000020C7* + ID_MODEL_FROM_DATABASE=ThinkPad T61 +@@ -33833,6 +34118,9 @@ pci:v00001180d00000832sv00001028sd000001D7* + pci:v00001180d00000832sv00001028sd000001F3* + ID_MODEL_FROM_DATABASE=Inspiron 1420 + ++pci:v00001180d00000832sv00001028sd0000024D* ++ ID_MODEL_FROM_DATABASE=Latitude E4300 ++ + pci:v00001180d00000832sv0000103Csd000030B5* + ID_MODEL_FROM_DATABASE=Presario V3242AU + +@@ -49442,6 +49730,18 @@ pci:v00001797d00006812* + pci:v00001797d00006813* + ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller + ++pci:v00001797d00006814* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ ++pci:v00001797d00006815* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ ++pci:v00001797d00006816* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ ++pci:v00001797d00006817* ++ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller ++ + pci:v00001799* + ID_VENDOR_FROM_DATABASE=Belkin + +@@ -50978,12 +51278,33 @@ pci:v00001924d00000813sv00001924sd00007904* + pci:v00001924d00000903* + ID_MODEL_FROM_DATABASE=SFC9120 + ++pci:v00001924d00000903sv00001014sd000004CC* ++ ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra ++ + pci:v00001924d00000903sv00001924sd00008002* + ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter + ++pci:v00001924d00000903sv00001924sd00008003* ++ ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ + pci:v00001924d00000903sv00001924sd00008006* + ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter + ++pci:v00001924d00000903sv00001924sd00008007* ++ ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter ++ ++pci:v00001924d00000903sv00001924sd00008009* ++ ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter ++ ++pci:v00001924d00000903sv00001924sd0000800A* ++ ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter ++ ++pci:v00001924d00000923* ++ ID_MODEL_FROM_DATABASE=SFC9140 ++ ++pci:v00001924d00000923sv00001924sd0000800B* ++ ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ + pci:v00001924d00001803* + ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] + +@@ -51227,6 +51548,9 @@ pci:v00001957d00000083* + pci:v00001957d00000084* + ID_MODEL_FROM_DATABASE=MPC8347E PBGA + ++pci:v00001957d00000084sv0000110Asd00004074* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 ++ + pci:v00001957d00000085* + ID_MODEL_FROM_DATABASE=MPC8347 PBGA + +@@ -51456,7 +51780,7 @@ pci:v00001969d00002062* + ID_MODEL_FROM_DATABASE=AR8152 v2.0 Fast Ethernet + + pci:v00001969d0000E091* +- ID_MODEL_FROM_DATABASE=Killer E2200 Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=Killer E220x Gigabit Ethernet Controller + + pci:v0000196A* + ID_VENDOR_FROM_DATABASE=Sensory Networks Inc. +@@ -52214,8 +52538,14 @@ pci:v00001AF4d00001005* + pci:v00001AF4d00001009* + ID_MODEL_FROM_DATABASE=Virtio filesystem + ++pci:v00001AF4d00001010* ++ ID_MODEL_FROM_DATABASE=Virtio GPU ++ ++pci:v00001AF4d00001012* ++ ID_MODEL_FROM_DATABASE=Virtio input device ++ + pci:v00001AF4d00001110* +- ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory ++ ID_MODEL_FROM_DATABASE=Inter-VM shared memory + + pci:v00001AF4d00001110sv00001AF4sd00001100* + ID_MODEL_FROM_DATABASE=QEMU Virtual Machine +@@ -52397,6 +52727,9 @@ pci:v00001B4Bd000091A4* + pci:v00001B4Bd00009230* + ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller + ++pci:v00001B4Bd00009445* ++ ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller ++ + pci:v00001B4Bd00009480* + ID_MODEL_FROM_DATABASE=88SE9480 SAS/SATA 6Gb/s RAID controller + +@@ -55550,15 +55883,24 @@ pci:v00008086d00000964* + pci:v00008086d00000A04* + ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller + ++pci:v00008086d00000A04sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00000A06* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + + pci:v00008086d00000A0C* + ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller + ++pci:v00008086d00000A0Csv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00000A16* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + ++pci:v00008086d00000A16sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00000A22* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + +@@ -55655,6 +55997,9 @@ pci:v00008086d00000C01* + pci:v00008086d00000C04* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller + ++pci:v00008086d00000C04sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00000C04sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -57360,7 +57705,7 @@ pci:v00008086d0000109Asv000017AAsd00002001* + ID_MODEL_FROM_DATABASE=ThinkPad T60 + + pci:v00008086d0000109Asv000017AAsd0000207E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s ++ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s + + pci:v00008086d0000109Asv00008086sd0000109A* + ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection +@@ -58847,6 +59192,9 @@ pci:v00008086d00001539* + pci:v00008086d0000153A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM + ++pci:v00008086d0000153Asv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d0000153Asv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -58901,6 +59249,9 @@ pci:v00008086d00001559* + pci:v00008086d0000155A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM + ++pci:v00008086d0000155Asv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d0000155C* + ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter + +@@ -63816,7 +64167,7 @@ pci:v00008086d000027A0sv000017AAsd00002015* + ID_MODEL_FROM_DATABASE=ThinkPad T60 + + pci:v00008086d000027A0sv000017AAsd00002017* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027A1* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port +@@ -63834,7 +64185,7 @@ pci:v00008086d000027A2sv0000103Csd000030A1* + ID_MODEL_FROM_DATABASE=NC2400 + + pci:v00008086d000027A2sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027A2sv00009902sd00001584* + ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F +@@ -63849,7 +64200,7 @@ pci:v00008086d000027A6sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) + + pci:v00008086d000027A6sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027AC* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub +@@ -63915,7 +64266,7 @@ pci:v00008086d000027B9sv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop + + pci:v00008086d000027B9sv000017AAsd00002009* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027BC* + ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller +@@ -64035,7 +64386,7 @@ pci:v00008086d000027C5sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=Compaq nw8440 + + pci:v00008086d000027C5sv000017AAsd0000200D* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027C6* + ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] +@@ -64095,7 +64446,7 @@ pci:v00008086d000027C8sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027C8sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027C8sv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64161,7 +64512,7 @@ pci:v00008086d000027C9sv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027C9sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027C9sv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64227,7 +64578,7 @@ pci:v00008086d000027CAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027CAsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027CAsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64287,7 +64638,7 @@ pci:v00008086d000027CBsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027CBsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027CBsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64347,7 +64698,7 @@ pci:v00008086d000027CCsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027CCsv000017AAsd0000200B* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027CCsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64509,7 +64860,7 @@ pci:v00008086d000027D8sv00001734sd000010AD* + ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP + + pci:v00008086d000027D8sv000017AAsd00002010* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027D8sv000017AAsd00003802* + ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] +@@ -64569,7 +64920,7 @@ pci:v00008086d000027DAsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027DAsv000017AAsd0000200F* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027DAsv00008086sd00004F4D* + ID_MODEL_FROM_DATABASE=DeskTop Board D510MO +@@ -64647,7 +64998,7 @@ pci:v00008086d000027DFsv00001775sd000011CC* + ID_MODEL_FROM_DATABASE=CC11/CL11 + + pci:v00008086d000027DFsv000017AAsd0000200C* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series + + pci:v00008086d000027DFsv00008086sd0000544E* + ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP +@@ -70358,6 +70709,9 @@ pci:v00008086d00008C02* + pci:v00008086d00008C03* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] + ++pci:v00008086d00008C03sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C03sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70442,6 +70796,9 @@ pci:v00008086d00008C1F* + pci:v00008086d00008C20* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller + ++pci:v00008086d00008C20sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C20sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70451,6 +70808,9 @@ pci:v00008086d00008C21* + pci:v00008086d00008C22* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller + ++pci:v00008086d00008C22sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C22sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70463,18 +70823,27 @@ pci:v00008086d00008C24* + pci:v00008086d00008C26* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 + ++pci:v00008086d00008C26sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C26sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + + pci:v00008086d00008C2D* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 + ++pci:v00008086d00008C2Dsv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C2Dsv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + + pci:v00008086d00008C31* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI + ++pci:v00008086d00008C31sv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C31sv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70487,6 +70856,9 @@ pci:v00008086d00008C34* + pci:v00008086d00008C3A* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 + ++pci:v00008086d00008C3Asv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C3Asv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70547,6 +70919,9 @@ pci:v00008086d00008C4E* + pci:v00008086d00008C4F* + ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller + ++pci:v00008086d00008C4Fsv0000103Csd00001909* ++ ID_MODEL_FROM_DATABASE=ZBook 15 ++ + pci:v00008086d00008C4Fsv000017AAsd0000220E* + ID_MODEL_FROM_DATABASE=ThinkPad T440p + +@@ -70820,6 +71195,9 @@ pci:v00008086d00009C02* + pci:v00008086d00009C03* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] + ++pci:v00008086d00009C03sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C04* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] + +@@ -70907,12 +71285,18 @@ pci:v00008086d00009C1F* + pci:v00008086d00009C20* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller + ++pci:v00008086d00009C20sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C21* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller + + pci:v00008086d00009C22* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller + ++pci:v00008086d00009C22sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C23* + ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters + +@@ -70922,12 +71306,18 @@ pci:v00008086d00009C24* + pci:v00008086d00009C26* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 + ++pci:v00008086d00009C26sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C2D* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 + + pci:v00008086d00009C31* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC + ++pci:v00008086d00009C31sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C35* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller + +@@ -70937,6 +71327,9 @@ pci:v00008086d00009C36* + pci:v00008086d00009C3A* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 + ++pci:v00008086d00009C3Asv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C3B* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 + +@@ -70958,6 +71351,9 @@ pci:v00008086d00009C42* + pci:v00008086d00009C43* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller + ++pci:v00008086d00009C43sv000017AAsd00002214* ++ ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ + pci:v00008086d00009C44* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller + +@@ -72557,6 +72953,54 @@ pci:v0000A727d00000013* + pci:v0000A727d00006803* + ID_MODEL_FROM_DATABASE=3CRDAG675B Wireless 11a/b/g Adapter + ++pci:v0000AA00* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA01* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA02* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA03* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA04* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA05* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA06* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA07* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA08* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA09* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0A* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0B* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0C* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0D* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0E* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ ++pci:v0000AA0F* ++ ID_VENDOR_FROM_DATABASE=iTuner ++ + pci:v0000AA42* + ID_VENDOR_FROM_DATABASE=Scitex Digital Video + +-- +1.7.9.2 + diff --git a/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch b/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch new file mode 100644 index 00000000..17cd4197 --- /dev/null +++ b/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch @@ -0,0 +1,25 @@ +From fdb8bd0fe7244b72ddc1c08e401ebddefdaf4f46 Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:38 +0200 +Subject: [PATCH] include fcntl.h rather than sys/fcntl.h + +--- + src/socket-proxy/socket-proxyd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/socket-proxy/socket-proxyd.c src/socket-proxy/socket-proxyd.c +index 81d8457..ff2b24f 100644 +--- src/socket-proxy/socket-proxyd.c ++++ src/socket-proxy/socket-proxyd.c +@@ -26,7 +26,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +1.7.9.2 + diff --git a/0002-journal-compress-improve-xz-compression-performance.patch b/0002-journal-compress-improve-xz-compression-performance.patch new file mode 100644 index 00000000..adccdaad --- /dev/null +++ b/0002-journal-compress-improve-xz-compression-performance.patch @@ -0,0 +1,82 @@ +Based on 1930eed2a7855d2df06ccf51f9e394428bf547e2 Mon Sep 17 00:00:00 2001 +From: Jon Severinsson +Date: Tue, 8 Jul 2014 18:29:46 +0200 +Subject: [PATCH] journal/compress: improve xz compression performance + +The new lzma2 compression options at the top of compress_blob_xz are +equivalent to using preset "0", exept for using a 1 MiB dictionary +(the same as preset "1"). This makes the memory usage at most 7.5 MiB +in the compressor, and 1 MiB in the decompressor, instead of the +previous 92 MiB in the compressor and 8 MiB in the decompressor. + +According to test-compress-benchmark this commit makes XZ compression +20 times faster, with no increase in compressed data size. +Using more realistic test data (an ELF binary rather than repeating +ASCII letters 'a' through 'z' in order) it only provides a factor 10 +speedup, and at a cost if a 10% increase in compressed data size. +But that is still a worthwhile trade-off. + +According to test-compress-benchmark XZ compression is still 25 times +slower than LZ4, but the compressed data is one eighth the size. +Using more realistic test data XZ compression is only 18 times slower +than LZ4, and the compressed data is only one quarter the size. + +--- + src/journal/compress.c | 33 ++++++++++++++------------------- + 1 file changed, 14 insertions(+), 19 deletions(-) + +--- src/journal/compress.c ++++ src/journal/compress.c 2014-07-09 12:09:45.814235274 +0000 +@@ -28,8 +28,15 @@ + #include "compress.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { +- lzma_stream s = LZMA_STREAM_INIT; ++ static const lzma_options_lzma opt = { ++ 1u << 20u, NULL, 0, LZMA_LC_DEFAULT, LZMA_LP_DEFAULT, ++ LZMA_PB_DEFAULT, LZMA_MODE_FAST, 128, LZMA_MF_HC3, 4}; ++ static const lzma_filter filters[2] = { ++ {LZMA_FILTER_LZMA2, (lzma_options_lzma*) &opt}, ++ {LZMA_VLI_UNKNOWN, NULL} ++ }; + lzma_ret ret; ++ size_t out_pos = 0; + bool b = false; + + assert(src); +@@ -40,29 +47,17 @@ bool compress_blob(const void *src, uint + /* Returns false if we couldn't compress the data or the + * compressed result is longer than the original */ + +- ret = lzma_easy_encoder(&s, LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE); +- if (ret != LZMA_OK) ++ if (src_size < 80) + return false; + +- s.next_in = src; +- s.avail_in = src_size; +- s.next_out = dst; +- s.avail_out = src_size; +- +- /* Does it fit? */ +- if (lzma_code(&s, LZMA_FINISH) != LZMA_STREAM_END) +- goto fail; +- +- /* Is it actually shorter? */ +- if (s.avail_out == 0) +- goto fail; ++ ret = lzma_stream_buffer_encode((lzma_filter*) filters, LZMA_CHECK_NONE, NULL, ++ src, src_size, dst, &out_pos, src_size - 1); ++ if (ret != LZMA_OK) ++ return false; + +- *dst_size = src_size - s.avail_out; ++ *dst_size = out_pos; + b = true; + +-fail: +- lzma_end(&s); +- + return b; + } + diff --git a/0002-journal-properly-detect-language-specified-in-line.patch b/0002-journal-properly-detect-language-specified-in-line.patch new file mode 100644 index 00000000..361518a2 --- /dev/null +++ b/0002-journal-properly-detect-language-specified-in-line.patch @@ -0,0 +1,99 @@ +From baf167ee0a2953f98e4e7d4c35752ef737832674 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Apr 2014 20:57:27 -0400 +Subject: [PATCH] journal: properly detect language specified in line + +... it turns out that the duplicates in our own catalog were not real +duplicates, but translations. +--- + TODO | 2 ++ + src/journal/catalog.c | 53 +++++++++++++++++++++++++++++++------------------ + 2 files changed, 36 insertions(+), 19 deletions(-) + +diff --git TODO TODO +index 0343b94..a7307f7 100644 +--- TODO ++++ TODO +@@ -709,6 +709,8 @@ External: + + * fedora: update policy to declare access mode and ownership of unit files to root:root 0644, and add an rpmlint check for it + ++* register catalog database signature as file magic ++ + Regularly: + + * look for close() vs. close_nointr() vs. close_nointr_nofail() +diff --git src/journal/catalog.c src/journal/catalog.c +index 02dedc4..f03357d 100644 +--- src/journal/catalog.c ++++ src/journal/catalog.c +@@ -159,6 +159,37 @@ int catalog_file_lang(const char* filename, char **lang) { + return 1; + } + ++static int catalog_entry_lang(const char* filename, int line, ++ const char* t, const char* deflang, char **lang) { ++ size_t c; ++ ++ c = strlen(t); ++ if (c == 0) { ++ log_error("[%s:%u] Language too short.", filename, line); ++ return -EINVAL; ++ } ++ if (c > 31) { ++ log_error("[%s:%u] language too long.", filename, line); ++ return -EINVAL; ++ } ++ ++ if (deflang) { ++ if (streq(t, deflang)) { ++ log_warning("[%s:%u] language specified unnecessarily", ++ filename, line); ++ return 0; ++ } else ++ log_warning("[%s:%u] language differs from default for file", ++ filename, line); ++ } ++ ++ *lang = strdup(t); ++ if (!*lang) ++ return -ENOMEM; ++ ++ return 0; ++} ++ + int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { + _cleanup_fclose_ FILE *f = NULL; + _cleanup_free_ char *payload = NULL; +@@ -238,25 +269,9 @@ int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { + if (with_language) { + t = strstrip(line + 2 + 1 + 32 + 1); + +- c = strlen(t); +- if (c <= 0) { +- log_error("[%s:%u] Language too short.", path, n); +- return -EINVAL; +- } +- if (c > 31) { +- log_error("[%s:%u] language too long.", path, n); +- return -EINVAL; +- } +- +- if (deflang) { +- log_warning("[%s:%u] language %s", path, n, +- streq(t, deflang) ? +- "specified unnecessarily" : +- "differs from default for file"); +- lang = strdup(t); +- if (!lang) +- return -ENOMEM; +- } ++ r = catalog_entry_lang(path, n, t, deflang, &lang); ++ if (r < 0) ++ return r; + } + + got_id = true; +-- +1.7.9.2 + diff --git a/0002-journalctl-man-allow-only-between-terms.patch b/0002-journalctl-man-allow-only-between-terms.patch new file mode 100644 index 00000000..c29bdf6f --- /dev/null +++ b/0002-journalctl-man-allow-only-between-terms.patch @@ -0,0 +1,109 @@ +From 4e6029435111adcad71489aca2dd68bc65aeffd4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 19 Jul 2014 21:05:07 -0400 +Subject: [PATCH] journalctl,man: allow + only between terms + +https://bugzilla.redhat.com/show_bug.cgi?id=1110712 +--- + man/journalctl.xml | 19 +++++++++++++++---- + src/journal/journalctl.c | 20 +++++++++++++++++--- + 2 files changed, 32 insertions(+), 7 deletions(-) + +diff --git man/journalctl.xml man/journalctl.xml +index 47b5a05..df9c794 100644 +--- man/journalctl.xml ++++ man/journalctl.xml +@@ -84,10 +84,11 @@ + field, then they are automatically matched as + alternatives, i.e. the resulting output will show + entries matching any of the specified matches for the +- same field. Finally, if the character +- + appears as a separate word on the +- command line, all matches before and after are combined +- in a disjunction (i.e. logical OR). ++ same field. Finally, the character ++ + may appears as a separate word ++ between other terms on the command line. This causes ++ all matches before and after to be combined in a ++ disjunction (i.e. logical OR). + + As shortcuts for a few types of field/value + matches, file paths may be specified. If a file path +@@ -98,11 +99,21 @@ + _KERNEL_DEVICE= match for the + device. + ++ Additional contraints may be added using options ++ , , ++ etc, to futher limit what entries will be shown ++ (logical AND). ++ + Output is interleaved from all accessible + journal files, whether they are rotated or currently + being written, and regardless of whether they belong to the + system itself or are accessible user journals. + ++ The set of journal files which will be used ++ can be modified using the , ++ , , ++ and options, see below. ++ + All users are granted access to their private + per-user journals. However, by default, only root and + users who are members of the systemd-journal +diff --git src/journal/journalctl.c src/journal/journalctl.c +index 92e8286..7aedbf0 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -699,15 +699,20 @@ static int generate_new_id128(void) { + + static int add_matches(sd_journal *j, char **args) { + char **i; ++ bool have_term = false; + + assert(j); + + STRV_FOREACH(i, args) { + int r; + +- if (streq(*i, "+")) ++ if (streq(*i, "+")) { ++ if (!have_term) ++ break; + r = sd_journal_add_disjunction(j); +- else if (path_is_absolute(*i)) { ++ have_term = false; ++ ++ } else if (path_is_absolute(*i)) { + _cleanup_free_ char *p, *t = NULL, *t2 = NULL; + const char *path; + _cleanup_free_ char *interpreter = NULL; +@@ -756,8 +761,12 @@ static int add_matches(sd_journal *j, char **args) { + r = sd_journal_add_match(j, t, 0); + if (t2) + r = sd_journal_add_match(j, t2, 0); +- } else ++ have_term = true; ++ ++ } else { + r = sd_journal_add_match(j, *i, 0); ++ have_term = true; ++ } + + if (r < 0) { + log_error("Failed to add match '%s': %s", *i, strerror(-r)); +@@ -765,6 +774,11 @@ static int add_matches(sd_journal *j, char **args) { + } + } + ++ if (!strv_isempty(args) && !have_term) { ++ log_error("\"+\" can only be used between terms"); ++ return -EINVAL; ++ } ++ + return 0; + } + +-- +1.7.9.2 + diff --git a/0002-journald-make-MaxFileSec-really-default-to-1month.patch b/0002-journald-make-MaxFileSec-really-default-to-1month.patch new file mode 100644 index 00000000..9b48fcae --- /dev/null +++ b/0002-journald-make-MaxFileSec-really-default-to-1month.patch @@ -0,0 +1,30 @@ +Based on e150e82097211f09b911c7784a89ef9efed713ca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= +Date: Thu, 26 Jun 2014 22:11:35 +0200 +Subject: [PATCH] journald: make MaxFileSec really default to 1month + +journald.conf(5) states that the default for MaxFileSec is one month, +but the code didn't respect that. +--- + src/journal/journald-server.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- src/journal/journald-server.c ++++ src/journal/journald-server.c 2014-07-01 12:28:25.506735287 +0000 +@@ -68,6 +68,7 @@ + #define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE) + #define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC) + #define DEFAULT_RATE_LIMIT_BURST 1000 ++#define DEFAULT_MAX_FILE_USEC USEC_PER_MONTH + + #define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC) + +@@ -1496,6 +1497,8 @@ int server_init(Server *s) { + + s->forward_to_syslog = true; + ++ s->max_file_usec = DEFAULT_MAX_FILE_USEC; ++ + s->max_level_store = LOG_DEBUG; + s->max_level_syslog = LOG_DEBUG; + s->max_level_kmsg = LOG_NOTICE; diff --git a/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch b/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch new file mode 100644 index 00000000..7ba1dc4d --- /dev/null +++ b/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch @@ -0,0 +1,38 @@ +From 1f6d36f267186c0e3184bab4c7eca48481c6faab Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Wed, 30 Jul 2014 16:09:08 +0800 +Subject: [PATCH] keymap: Add microphone mute keymap for Dell Latitude + +On the Dell Latitude, the mic mute key event is generated by wmi +driver, the keycode assigned to this hotkey from kernel is +KEY_MICMUTE (248), this keycode is too big for xorg to handle, +in the xorg, the XF86AudioMicMute is assigned to F20. + +Please refer to 4e648ea0 of xkeyboard-config. + +BugLink: https://bugs.launchpad.net/bugs/1326684 +BugLink: https://bugs.launchpad.net/bugs/1339998 +Signed-off-by: Hui Wang +Signed-off-by: Martin Pitt +--- + hwdb/60-keyboard.hwdb | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index c7ff4e4..70e372b 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -229,6 +229,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + KEYBOARD_KEY_8c=!unknown + ++# Dell Latitude microphone mute ++keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* ++ KEYBOARD_KEY_150=f20 # Mic mute toggle ++ + ########################################################### + # Everex + ########################################################### +-- +1.7.9.2 + diff --git a/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch b/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch new file mode 100644 index 00000000..e921c60b --- /dev/null +++ b/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch @@ -0,0 +1,28 @@ +From e55edb22a71e67f01534d28f91c6aa27bba48fc1 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Sun, 25 May 2014 12:16:35 +0200 +Subject: [PATCH] keymap: Asus EeePC touchpad toggle key + +Originally is KEY_TOUCHPAD_TOGGLE, but X.org can't handle the big key events, +so use the F21 convention. + +https://bugs.freedesktop.org/show_bug.cgi?id=72807 +--- + hwdb/60-keyboard.hwdb | 1 + + 1 file changed, 1 insertion(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index fe5b3ee..05e6a04 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -138,6 +138,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* + KEYBOARD_KEY_ef=mute + + keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* ++keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* + KEYBOARD_KEY_6b=f21 # Touchpad Toggle + + ########################################################### +-- +1.7.9.2 + diff --git a/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch b/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch new file mode 100644 index 00000000..28f7bb2a --- /dev/null +++ b/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch @@ -0,0 +1,33 @@ +From b4c72e52d2109fe7f0ac3440c81ae3e1ce64a143 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 12 Nov 2014 23:31:08 +0100 +Subject: [PATCH] keymap: Fix special keys on ThinkPad X60/X61 Tablet + +KEY_DIRECTION is mapped to XF86RotateWindows, to rotate the display: +http://cgit.freedesktop.org/xkeyboard-config/commit/symbols/inet?id=ec875f6f9b7c4028e11d32b071989c682e6502bd + +And F13 is mapped to XF86Tools, which is closest to the original toolbox +usage: +http://cgit.freedesktop.org/xkeyboard-config/tree/symbols/inet?id=7a2c4bed212ebbcc05f3c959aef659ce7dd31fd8#n221 +--- + hwdb/60-keyboard.hwdb | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 56a4009..533ad5b 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -585,8 +585,8 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* + + # ThinkPad X6 Tablet + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* +- KEYBOARD_KEY_6c=f21 # rotate +- KEYBOARD_KEY_68=screenlock # screenlock ++ KEYBOARD_KEY_6c=direction # rotate ++ KEYBOARD_KEY_68=f13 # toolbox + KEYBOARD_KEY_6b=esc # escape + KEYBOARD_KEY_6d=right # right on d-pad + KEYBOARD_KEY_6e=left # left on d-pad +-- +1.7.9.2 + diff --git a/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch b/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch new file mode 100644 index 00000000..45af9018 --- /dev/null +++ b/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch @@ -0,0 +1,25 @@ +From 4e3deeedc15b03197d591850061316289245c9a9 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Tue, 7 Oct 2014 11:22:31 +0200 +Subject: [PATCH] keymap: Fix touchpad toggle key on Asus laptops + +https://launchpad.net/bugs/1377352 +--- + hwdb/60-keyboard.hwdb | 1 + + 1 file changed, 1 insertion(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 1fea32a..59f467b 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -153,6 +153,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* + + keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* + keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* ++keyboard:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* + KEYBOARD_KEY_6b=f21 # Touchpad Toggle + + ########################################################### +-- +1.7.9.2 + diff --git a/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch b/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch new file mode 100644 index 00000000..e29c01d9 --- /dev/null +++ b/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch @@ -0,0 +1,41 @@ +From aba248ee6b1eb10baf3d89eca2ad7569459af6ab Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 30 Oct 2014 10:15:54 +0100 +Subject: [PATCH] keymap: Ignore brightness keys on Dell Inspiron 1520 to + avoid double events + +On the Dell Inspiron 1520 both the atkbd and acpi-video input devices report +an event for pressing the brightness up / down key-combos, resulting in user +space seeing double events and increasing / decreasing the brightness 2 steps +for each keypress. + +This hwdb snippet suppresses the atkbd events, making the Inspiron 1520 work +like most modern laptops which emit brightness up / down events through +acpi-video only. + +Reported by Pavel Malyshev + +https://bugzilla.redhat.com/show_bug.cgi?id=1141525 +--- + hwdb/60-keyboard.hwdb | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 06caba9..d2ca965 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -230,6 +230,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:pvr* + KEYBOARD_KEY_84=wlan + ++# Dell Inspiron 1520 ++keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:pvr* ++ KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore ++ KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore ++ + # Latitude XT2 + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*XT2:pvr* + KEYBOARD_KEY_9b=up # tablet rocker up +-- +1.7.9.2 + diff --git a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch new file mode 100644 index 00000000..a1934486 --- /dev/null +++ b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch @@ -0,0 +1,52 @@ +From 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 25 Feb 2014 13:08:24 +0100 +Subject: [PATCH] login: set pos-slot to fallback on pos-eviction + +If we evict a session position, we open the position slot for future +sessions. However, there might already be another session on the same +position if both were started on the same VT. This is currently done if +gdm spawns the session on its own Xserver. + +Hence, look for such a session on pos-eviction and claim the new slot +immediately. +--- + src/login/logind-seat.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 36ec7ed..96cf08e 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { + } + + void seat_evict_position(Seat *s, Session *session) { ++ Session *iter; + unsigned int pos = session->pos; + + session->pos = 0; +@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { + if (!pos) + return; + +- if (pos < s->position_count && s->positions[pos] == session) ++ if (pos < s->position_count && s->positions[pos] == session) { + s->positions[pos] = NULL; ++ ++ /* There might be another session claiming the same ++ * position (eg., during gdm->session transition), so lets look ++ * for it and set it on the free slot. */ ++ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { ++ if (iter->pos == pos) { ++ s->positions[pos] = iter; ++ break; ++ } ++ } ++ } + } + + void seat_claim_position(Seat *s, Session *session, unsigned int pos) { +-- +1.7.9.2 + diff --git a/0002-logind-add-support-for-TPS65217-Power-Button.patch b/0002-logind-add-support-for-TPS65217-Power-Button.patch new file mode 100644 index 00000000..17a576de --- /dev/null +++ b/0002-logind-add-support-for-TPS65217-Power-Button.patch @@ -0,0 +1,71 @@ +From 492d7a3038b154e1813a1ece913a5a27148fec19 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Sat, 27 Sep 2014 09:55:44 +0200 +Subject: [PATCH] logind: add support for TPS65217 Power Button + +This PMIC is found on TI AM335x based boards like the beaglebone and +beaglebone black. + +root@beaglebone-white:~# udevadm info -a /dev/input/event0 + +Udevadm info starts with the device specified by the devpath and then +walks up the chain of parent devices. It prints for every device +found, all possible attributes in the udev rules key format. +A rule to match, can be composed by the attributes of the device +and the attributes from one single parent device. + + looking at device +'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0/event0': + KERNEL=="event0" + SUBSYSTEM=="input" + DRIVER=="" + + looking at parent device +'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0': + KERNELS=="input0" + SUBSYSTEMS=="input" + DRIVERS=="" + ATTRS{name}=="tps65217_pwr_but" + ATTRS{phys}=="" + ATTRS{uniq}=="" + ATTRS{properties}=="0" + + looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024': + KERNELS=="0-0024" + SUBSYSTEMS=="i2c" + DRIVERS=="tps65217" + ATTRS{name}=="tps65217" + + looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0': + KERNELS=="i2c-0" + SUBSYSTEMS=="i2c" + DRIVERS=="" + ATTRS{name}=="OMAP I2C adapter" + + looking at parent device '/devices/ocp.3/44e0b000.i2c': + KERNELS=="44e0b000.i2c" + SUBSYSTEMS=="platform" + DRIVERS=="omap_i2c" + + looking at parent device '/devices/ocp.3': + KERNELS=="ocp.3" + SUBSYSTEMS=="platform" + DRIVERS=="" +--- + src/login/70-power-switch.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules +index a6997f7..695d246 100644 +--- src/login/70-power-switch.rules ++++ src/login/70-power-switch.rules +@@ -10,5 +10,6 @@ ACTION=="remove", GOTO="power_switch_end" + SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" ++SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" + + LABEL="power_switch_end" +-- +1.7.9.2 + diff --git a/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch b/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch new file mode 100644 index 00000000..73ffb867 --- /dev/null +++ b/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch @@ -0,0 +1,28 @@ +From 301f9684e6465df5d0590f6c571fe3229ded966d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 15 May 2014 18:30:07 +0200 +Subject: [PATCH] logind: bring polkit policy for hibernate in line with + suspend/poweroff/reboot + +THere's no reason why hibernate should be better protected then +suspendor poweroff, so sync the policies. +--- + src/login/org.freedesktop.login1.policy.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/org.freedesktop.login1.policy.in src/login/org.freedesktop.login1.policy.in +index b96d32d..b8e90f1 100644 +--- src/login/org.freedesktop.login1.policy.in ++++ src/login/org.freedesktop.login1.policy.in +@@ -254,7 +254,7 @@ + + auth_admin_keep + auth_admin_keep +- auth_admin_keep ++ yes + + org.freedesktop.login1.hibernate + +-- +1.7.9.2 + diff --git a/0002-logind-fix-printf-format.patch b/0002-logind-fix-printf-format.patch new file mode 100644 index 00000000..61bbc9aa --- /dev/null +++ b/0002-logind-fix-printf-format.patch @@ -0,0 +1,25 @@ +From 7e9110a29d90041b0364cb93a84aec9dd72363b6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 19:39:51 +0100 +Subject: [PATCH] logind: fix printf format + +--- + src/login/logind-action.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index da5a830..c9d8bc5 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -81,7 +81,7 @@ int manager_handle_action( + + n = manager_count_displays(m); + if (n != 1) { +- log_debug("Ignoring lid switch request, %s displays connected."); ++ log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } + } +-- +1.7.9.2 + diff --git a/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch b/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch new file mode 100644 index 00000000..c3381ef7 --- /dev/null +++ b/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch @@ -0,0 +1,70 @@ +From de58a50e24a0d55e3bbcc77f8f6170a7322acf52 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 18 Mar 2014 04:43:08 +0100 +Subject: [PATCH] machined: fix Kill() bus call on machine objects when "what" + is specified as "leader" + +--- + src/machine/machine.c | 10 +++++++++- + src/machine/machined-dbus.c | 4 ++-- + src/machine/machined.h | 2 +- + 3 files changed, 12 insertions(+), 4 deletions(-) + +diff --git src/machine/machine.c src/machine/machine.c +index 4596a80..9a5cc9a 100644 +--- src/machine/machine.c ++++ src/machine/machine.c +@@ -410,7 +410,15 @@ int machine_kill(Machine *m, KillWho who, int signo) { + if (!m->unit) + return -ESRCH; + +- return manager_kill_unit(m->manager, m->unit, who, signo, NULL); ++ if (who == KILL_LEADER) { ++ /* If we shall simply kill the leader, do so directly */ ++ ++ if (kill(m->leader, signo) < 0) ++ return -errno; ++ } ++ ++ /* Otherwise make PID 1 do it for us, for the entire cgroup */ ++ return manager_kill_unit(m->manager, m->unit, signo, NULL); + } + + static const char* const machine_class_table[_MACHINE_CLASS_MAX] = { +diff --git src/machine/machined-dbus.c src/machine/machined-dbus.c +index 09d28bb..9473105 100644 +--- src/machine/machined-dbus.c ++++ src/machine/machined-dbus.c +@@ -655,7 +655,7 @@ int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, c + return 1; + } + +-int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error) { ++int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error) { + assert(manager); + assert(unit); + +@@ -667,7 +667,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo + "KillUnit", + error, + NULL, +- "ssi", unit, who == KILL_LEADER ? "main" : "all", signo); ++ "ssi", unit, "all", signo); + } + + int manager_unit_is_active(Manager *manager, const char *unit) { +diff --git src/machine/machined.h src/machine/machined.h +index d4b581b..2dba303 100644 +--- src/machine/machined.h ++++ src/machine/machined.h +@@ -67,6 +67,6 @@ int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_b + + int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, sd_bus_message *more_properties, sd_bus_error *error, char **job); + int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); +-int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); ++int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error); + int manager_unit_is_active(Manager *manager, const char *unit); + int manager_job_is_active(Manager *manager, const char *path); +-- +1.7.9.2 + diff --git a/0002-man-document-yearly-and-annually-in-systemd.time-7.patch b/0002-man-document-yearly-and-annually-in-systemd.time-7.patch new file mode 100644 index 00000000..521b22cc --- /dev/null +++ b/0002-man-document-yearly-and-annually-in-systemd.time-7.patch @@ -0,0 +1,49 @@ +From 8c275eef38bf7e3e592e4cb35a497522d1f15bb6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Jul 2014 22:17:29 -0400 +Subject: [PATCH] man: document yearly and annually in systemd.time(7) + +https://bugs.freedesktop.org/show_bug.cgi?id=81158 +--- + man/systemd.time.xml | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git man/systemd.time.xml man/systemd.time.xml +index 0706cdf..02431a5 100644 +--- man/systemd.time.xml ++++ man/systemd.time.xml +@@ -243,12 +243,16 @@ + + The special expressions + hourly, daily, +- monthly and weekly +- may be used as calendar events which refer to +- *-*-* *:00:00, *-*-* +- 00:00:00, *-*-01 00:00:00 and +- Mon *-*-* 00:00:00, +- respectively. ++ monthly, weekly, ++ and yearly or ++ annually may be used as calendar ++ events which refer to ++ *-*-* *:00:00, ++ *-*-* 00:00:00, ++ *-*-01 00:00:00, ++ Mon *-*-* 00:00:00, and ++ *-01-01 00:00:00 respectively. ++ + + Examples for valid timestamps and their + normalized form: +@@ -277,6 +281,8 @@ Wed-Sat,Tue 12-10-15 1:2:3 → Tue-Sat 2012-10-15 01:02:03 + daily → *-*-* 00:00:00 + monthly → *-*-01 00:00:00 + weekly → Mon *-*-* 00:00:00 ++ yearly → *-01-01 00:00:00 ++ annually → *-01-01 00:00:00 + *:2/3 → *-*-* *:02/3:00 + + Calendar events are used by timer units, see +-- +1.7.9.2 + diff --git a/0002-man-note-that-entire-sections-can-now-be-ignored.patch b/0002-man-note-that-entire-sections-can-now-be-ignored.patch new file mode 100644 index 00000000..2db35728 --- /dev/null +++ b/0002-man-note-that-entire-sections-can-now-be-ignored.patch @@ -0,0 +1,35 @@ +From 2bcc2523711e69e6daa744641e56ed8b78646676 Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Sat, 17 May 2014 16:09:08 -0700 +Subject: [PATCH] man: note that entire sections can now be ignored + +Prefixing a section name with "X-" will cause it and all of its contents +to be silently ignored as of commit 342aea19. +--- + man/systemd.unit.xml | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 157530b..e903156 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -139,10 +139,12 @@ + Unit files may contain additional options on top + of those listed here. If systemd encounters an unknown + option, it will write a warning log message but +- continue loading the unit. If an option is prefixed +- with , it is ignored completely by +- systemd. Applications may use this to include +- additional information in the unit files. ++ continue loading the unit. If an option or section name ++ is prefixed with , it is ignored ++ completely by systemd. Options within an ignored ++ section do not need the prefix. Applications may use ++ this to include additional information in the unit ++ files. + + Boolean arguments used in unit files can be + written in various formats. For positive settings the +-- +1.7.9.2 + diff --git a/0002-man-tmpfiles.d-recommend-using-b-and-c.patch b/0002-man-tmpfiles.d-recommend-using-b-and-c.patch new file mode 100644 index 00000000..bb6c70d2 --- /dev/null +++ b/0002-man-tmpfiles.d-recommend-using-b-and-c.patch @@ -0,0 +1,24 @@ +diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210-mod/man/tmpfiles.d.xml +--- systemd-210/man/tmpfiles.d.xml 2014-12-16 10:16:51.269189374 +0100 ++++ systemd-210-mod/man/tmpfiles.d.xml 2014-12-16 10:39:49.937552189 +0100 +@@ -158,12 +158,18 @@ + + + c +- Create a character device node if it does not exist yet. ++ Create a character device node if it does not exist yet. ++ It is recommended to suffix this entry with an exclamation mark to only ++ create static device nodes at boot, as udev will not manage static device ++ nodes that are created at runtime. + + + + b +- Create a block device node if it does not exist yet. ++ Create a block device node if it does not exist yet. ++ It is recommended to suffix this entry with an exclamation mark to only ++ create static device nodes at boot, as udev will not manage static device ++ nodes that re created at runtime. + + + diff --git a/0002-manager-flush-memory-stream-before-using-the-buffer.patch b/0002-manager-flush-memory-stream-before-using-the-buffer.patch new file mode 100644 index 00000000..39ca371c --- /dev/null +++ b/0002-manager-flush-memory-stream-before-using-the-buffer.patch @@ -0,0 +1,45 @@ +From b2cdc6664ef6b56e47d38649d69b9943d9f9f5d0 Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Fri, 7 Mar 2014 14:43:59 +0100 +Subject: [PATCH] manager: flush memory stream before using the buffer + +When the manager receives a SIGUSR2 signal, it opens a memory stream +with open_memstream(), uses the returned file handle for logging, and +dumps the logged content with log_dump(). + +However, the char* buffer is only safe to use after the file handle has +been flushed with fflush, as the man pages states: + + When the stream is closed (fclose(3)) or flushed (fflush(3)), the + locations pointed to by ptr and sizeloc are updated to contain, + respectively, a pointer to the buffer and the current size of the + buffer. + These values remain valid only as long as the caller performs no + further output on the stream. If further output is performed, then the + stream must again be flushed before trying to access these variables. + +Without that call, dump remains NULL and the daemon crashes in +log_dump(). +--- + src/core/manager.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/core/manager.c src/core/manager.c +index 27a1cc6..78f4f3d 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -1621,6 +1621,11 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t + break; + } + ++ if (fflush(f)) { ++ log_warning("Failed to flush status stream"); ++ break; ++ } ++ + log_dump(LOG_INFO, dump); + break; + } +-- +1.7.9.2 + diff --git a/0002-namespace-fix-uninitialized-memory-access.patch b/0002-namespace-fix-uninitialized-memory-access.patch new file mode 100644 index 00000000..bb6ea8ea --- /dev/null +++ b/0002-namespace-fix-uninitialized-memory-access.patch @@ -0,0 +1,28 @@ +Based on 002b226843e77630128da580225f9c3ef8474db2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 16:27:53 +0200 +Subject: [PATCH] namespace: fix uninitialized memory access + +--- + src/core/namespace.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- src/core/namespace.c ++++ src/core/namespace.c 2014-07-04 00:00:00.000000000 +0000 +@@ -68,6 +68,7 @@ static int append_mounts(BindMount **p, + STRV_FOREACH(i, strv) { + + (*p)->ignore = false; ++ (*p)->done = false; + + if ((mode == INACCESSIBLE || mode == READONLY) && (*i)[0] == '-') { + (*p)->ignore = true; +@@ -298,7 +299,7 @@ int setup_namespace( + private_dev; + + if (n > 0) { +- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); ++ m = mounts = (BindMount *) alloca0(n * sizeof(BindMount)); + r = append_mounts(&m, read_write_dirs, READWRITE); + if (r < 0) + return r; diff --git a/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch b/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch new file mode 100644 index 00000000..dfbf403c --- /dev/null +++ b/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch @@ -0,0 +1,122 @@ +Based on 6d313367d9ef780560e117e886502a99fa220eac Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 5 Jun 2014 21:35:35 +0200 +Subject: [PATCH] namespace: when setting up an inaccessible mount point, + unmounting everything below + +This has the benefit of not triggering any autofs mount points +unnecessarily. + +--- + src/core/namespace.c | 6 ++++ + src/shared/util.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/shared/util.h | 2 + + 3 files changed, 76 insertions(+) + +--- src/core/namespace.c ++++ src/core/namespace.c 2014-06-11 00:00:00.000000000 +0000 +@@ -220,6 +220,12 @@ static int apply_mount( + return mount_dev(m); + + case INACCESSIBLE: ++ ++ /* First, get rid of everything that is below if there ++ * is anything... Then, overmount it with an ++ * inaccessible directory. */ ++ umount_recursive(m->path, 0); ++ + what = "/run/systemd/inaccessible"; + break; + +--- src/shared/util.c ++++ src/shared/util.c 2014-06-11 00:00:00.000000000 +0000 +@@ -54,6 +54,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -4635,6 +4636,73 @@ char *strjoin(const char *x, ...) { + return r; + } + ++int umount_recursive(const char *prefix, int flags) { ++ bool again; ++ int n = 0, r; ++ ++ /* Try to umount everything recursively below a ++ * directory. Also, take care of stacked mounts, and keep ++ * unmounting them until they are gone. */ ++ ++ do { ++ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; ++ ++ again = false; ++ r = 0; ++ ++ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); ++ if (!proc_self_mountinfo) ++ return -errno; ++ ++ for (;;) { ++ _cleanup_free_ char *path = NULL, *p = NULL; ++ int k; ++ ++ k = fscanf(proc_self_mountinfo, ++ "%*s " /* (1) mount id */ ++ "%*s " /* (2) parent id */ ++ "%*s " /* (3) major:minor */ ++ "%*s " /* (4) root */ ++ "%ms " /* (5) mount point */ ++ "%*s" /* (6) mount options */ ++ "%*[^-]" /* (7) optional fields */ ++ "- " /* (8) separator */ ++ "%*s " /* (9) file system type */ ++ "%*s" /* (10) mount source */ ++ "%*s" /* (11) mount options 2 */ ++ "%*[^\n]", /* some rubbish at the end */ ++ &path); ++ ++ if (k != 1) { ++ if (k == EOF) ++ break; ++ ++ continue; ++ } ++ ++ p = cunescape(path); ++ if (!p) ++ return -ENOMEM; ++ ++ if (!path_startswith(p, prefix)) ++ continue; ++ ++ if (umount2(p, flags) < 0) { ++ r = -errno; ++ continue; ++ } ++ ++ again = true; ++ n++; ++ ++ break; ++ } ++ ++ } while (again); ++ ++ return r ? r : n; ++} ++ + bool is_main_thread(void) { + static thread_local int cached = 0; + +--- src/shared/util.h ++++ src/shared/util.h 2014-06-11 10:10:08.000000000 +0000 +@@ -890,3 +890,5 @@ union file_handle_union { + struct file_handle handle; + char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; + }; ++ ++int umount_recursive(const char *target, int flags); diff --git a/0002-nspawn-restore-journal-directory-is-empty-check.patch b/0002-nspawn-restore-journal-directory-is-empty-check.patch new file mode 100644 index 00000000..c3d60bd4 --- /dev/null +++ b/0002-nspawn-restore-journal-directory-is-empty-check.patch @@ -0,0 +1,30 @@ +From cdb2b9d05a2f3d649f47bd2ba24eb3fe30b52e92 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 May 2014 15:19:46 +0900 +Subject: [PATCH] nspawn: restore journal directory is empty check + +This undoes part of commit e6a4a517befe559adf6d1dbbadf425c3538849c9. + +Instead of removing the error message about non-empty journal bind mount +directories, simply downgrade the message to a warning and proceed. +--- + src/nspawn/nspawn.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index ef84664..eb9c5e0 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1143,6 +1143,9 @@ static int setup_journal(const char *directory) { + } else if (access(p, F_OK) < 0) + return 0; + ++ if (dir_is_empty(q) == 0) ++ log_warning("%s is not empty, proceeding anyway.", q); ++ + r = mkdir_p(q, 0755); + if (r < 0) { + log_error("Failed to create %s: %m", q); +-- +1.7.9.2 + diff --git a/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch b/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch new file mode 100644 index 00000000..06a4521c --- /dev/null +++ b/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch @@ -0,0 +1,26 @@ +From 85c08dc013f9f99b58bc9b79284af0b35304237b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 13 May 2014 16:35:34 +0200 +Subject: [PATCH] pam_systemd: use F_DUPFD_CLOEXEC when dupping session fds + +http://lists.freedesktop.org/archives/systemd-devel/2014-May/019034.html +--- + src/login/pam-module.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/pam-module.c src/login/pam-module.c +index 9873dd5..1259457 100644 +--- src/login/pam-module.c ++++ src/login/pam-module.c +@@ -475,7 +475,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( + } + + if (session_fd >= 0) { +- session_fd = dup(session_fd); ++ session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3); + if (session_fd < 0) { + pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m"); + return PAM_SESSION_ERR; +-- +1.7.9.2 + diff --git a/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch b/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch new file mode 100644 index 00000000..67ad0284 --- /dev/null +++ b/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch @@ -0,0 +1,116 @@ +Based on 4844262f25a3ff6bd23de05a0a6f84a8e2983d74 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 3 Dec 2014 02:02:11 +0100 +Subject: [PATCH] rfkill: rework how we generate file names from rfkill + devices + +Generate the file name from ID_PATH plus the rfkill type (wlan, +bluetooth, ...) and ignore the rfkill device name, since it apparently +is not a stable identifier. + +Also, ensure that devices disappearing don't result in broken services, +simply exit cleanly. +--- + src/rfkill/rfkill.c | 47 ++++++++++++++++++++++++----------------------- + 1 file changed, 24 insertions(+), 23 deletions(-) + +--- src/rfkill/rfkill.c ++++ src/rfkill/rfkill.c 2014-12-05 12:05:59.053518122 +0000 +@@ -28,8 +28,8 @@ + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_device_unref_ struct udev_device *device = NULL; +- _cleanup_free_ char *saved = NULL, *escaped_name = NULL, *escaped_path_id = NULL; +- const char *name, *path_id; ++ _cleanup_free_ char *saved = NULL, *escaped_type = NULL, *escaped_path_id = NULL; ++ const char *name, *type, *path_id; + int r; + + if (argc != 3) { +@@ -55,25 +55,28 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- errno = 0; + device = udev_device_new_from_subsystem_sysname(udev, "rfkill", argv[2]); + if (!device) { +- if (errno != 0) +- log_error("Failed to get rfkill device '%s': %m", argv[2]); +- else +- log_oom(); +- +- return EXIT_FAILURE; ++ log_debug("Failed to get rfkill device '%s', ignoring: %m", argv[2]); ++ return EXIT_SUCCESS; + } + + name = udev_device_get_sysattr_value(device, "name"); + if (!name) { +- log_error("rfkill device has no name?"); +- return EXIT_FAILURE; ++ log_error("rfkill device has no name? Ignoring device."); ++ return EXIT_SUCCESS; ++ } ++ ++ log_debug("Operating on rfkill device '%s'.", name); ++ ++ type = udev_device_get_sysattr_value(device, "type"); ++ if (!type) { ++ log_error("rfkill device has no type? Ignoring device."); ++ return EXIT_SUCCESS; + } + +- escaped_name = cescape(name); +- if (!escaped_name) { ++ escaped_type = cescape(type); ++ if (!escaped_type) { + log_oom(); + return EXIT_FAILURE; + } +@@ -86,9 +89,9 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_name, NULL); ++ saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_type, NULL); + } else +- saved = strjoin("/var/lib/systemd/rfkill/", escaped_name, NULL); ++ saved = strjoin("/var/lib/systemd/rfkill/", escaped_type, NULL); + + if (!saved) { + log_oom(); +@@ -102,19 +105,17 @@ int main(int argc, char *argv[]) { + return EXIT_SUCCESS; + + r = read_one_line_file(saved, &value); ++ if (r == -ENOENT) ++ return EXIT_SUCCESS; + if (r < 0) { +- +- if (r == -ENOENT) +- return EXIT_SUCCESS; +- + log_error("Failed to read %s: %s", saved, strerror(-r)); + return EXIT_FAILURE; + } + + r = udev_device_set_sysattr_value(device, "soft", value); + if (r < 0) { +- log_error("Failed to write system attribute: %s", strerror(-r)); +- return EXIT_FAILURE; ++ log_debug("Failed to write 'soft' attribute on rfkill device, ignoring: %s", strerror(-r)); ++ return EXIT_SUCCESS; + } + + } else if (streq(argv[1], "save")) { +@@ -122,8 +123,8 @@ int main(int argc, char *argv[]) { + + value = udev_device_get_sysattr_value(device, "soft"); + if (!value) { +- log_error("Failed to read system attribute: %s", strerror(-r)); +- return EXIT_FAILURE; ++ log_debug("Failed to read system attribute, ignoring device: %s", strerror(-r)); ++ return EXIT_SUCCESS; + } + + r = write_string_file(saved, value); diff --git a/0002-shell-completion-prevent-mangling-unit-names.patch b/0002-shell-completion-prevent-mangling-unit-names.patch new file mode 100644 index 00000000..9d8b1324 --- /dev/null +++ b/0002-shell-completion-prevent-mangling-unit-names.patch @@ -0,0 +1,67 @@ +Based on 6d314eca15f6cbda38d82774b210f784d3d4f52a Mon Sep 17 00:00:00 2001 +From: Eric Cook +Date: Sat, 26 Jul 2014 11:15:52 -0400 +Subject: [PATCH] shell-completion: prevent mangling unit names + +Units with literal hex '\xFF' in their names has to be read +and printed properly. +dev-disk-byx2dlabel-root.device != dev-disk-by\x2dlabel-root.device +--- + shell-completion/zsh/_systemctl.in | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git shell-completion/zsh/_systemctl.in shell-completion/zsh/_systemctl.in +index d364d17..e681ec6 100644 +--- shell-completion/zsh/_systemctl ++++ shell-completion/zsh/_systemctl +@@ -100,7 +100,7 @@ _systemctl_all_units() + if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) && + ! _retrieve_cache SYS_ALL_UNITS; + then +- _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo " $a"; done; }) ) ++ _sys_all_units=( $(__systemctl list-units --all | { while read -r a b; do echo -E - " $a"; done; }) ) + _store_cache SYS_ALL_UNITS _sys_all_units + fi + } +@@ -113,7 +113,7 @@ _systemctl_really_all_units() + if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) && + ! _retrieve_cache SYS_REALLY_ALL_UNITS; + then +- all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo " $a"; done; }) ) ++ all_unit_files=( $(__systemctl list-unit-files | { while read -r a b; do echo -E - " $a"; done; }) ) + _systemctl_all_units + really_all_units=($_sys_all_units $all_unit_files) + _sys_really_all_units=(${(u)really_all_units}) +@@ -138,12 +138,12 @@ _filter_units_by_property() { + done + } + +-_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo " $a"; done; }) )} +-_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )} +-_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )} +-_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )} +-_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )} +-_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )} ++_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} ++_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} ++_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} ++_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} ++_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} ++_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )} + + # Completion functions for ALL_UNITS + for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies ; do +@@ -219,8 +219,8 @@ for fun in restart reload-or-restart ; do + { + _systemctl_all_units + compadd "$@" - $( _filter_units_by_property CanStart yes \ +- ${_sys_all_units[*]} | while read line; do \ +- [[ "$line" =~ \.device$ ]] || echo " $line"; \ ++ ${_sys_all_units[*]} | while read -r line; do \ ++ [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ + done ) + } + done +-- +1.7.9.2 + diff --git a/0002-shell-completion-propose-templates-for-disable-re-en.patch b/0002-shell-completion-propose-templates-for-disable-re-en.patch new file mode 100644 index 00000000..3a58e013 --- /dev/null +++ b/0002-shell-completion-propose-templates-for-disable-re-en.patch @@ -0,0 +1,111 @@ +Based on e9a19bd882ff8a2c8aef5c63b39525ea231e5fb9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 14 Oct 2014 21:10:02 -0400 +Subject: [PATCH] shell-completion: propose templates for + disable/[re]enable/[re]start + +Templates can be [re]enabled, on their own if the have DefaultInstance set, +and with an instance suffix in all cases. Propose just the template name +ending in @, to underline the instance suffix may have to be appended. + +Likewise for start/restart. + +This means that sometimes superflous units that one will not really +want to operate on will be proposed, but this seems better than +proposing a very incomplete set of names. + +https://bugs.freedesktop.org/show_bug.cgi?id=66912 +--- + shell-completion/bash/systemctl | 15 +++++++++++---- + shell-completion/zsh/_systemctl | 20 +++++++++++++------- + 2 files changed, 24 insertions(+), 11 deletions(-) + +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -53,6 +53,9 @@ __filter_units_by_property () { + + __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ + | { while read -r a b; do echo " $a"; done; }; } ++__get_template_names () { __systemctl $1 list-unit-files \ ++ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; } ++ + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } + __get_startable_units () { +@@ -169,22 +172,26 @@ _systemctl () { + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then +- comps=$( __get_disabled_units $mode ) ++ comps=$( __get_disabled_units $mode; ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then + comps=$( __get_disabled_units $mode; +- __get_enabled_units $mode ) ++ __get_enabled_units $mode; ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +- $( __get_startable_units $mode)) ++ $( __get_startable_units $mode); ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +- $( __get_restartable_units $mode)) ++ $( __get_restartable_units $mode); \ ++ __get_template_names $mode) + compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then +--- shell-completion/zsh/_systemctl ++++ shell-completion/zsh/_systemctl +@@ -139,6 +139,8 @@ _filter_units_by_property() { + } + + _systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } ++_systemctl_get_template_names() { __systemctl list-unit-files | { while read -r a b; do [[ $a =~ @\. ]] && echo -E - " ${a%%@.*}@"; done; } } ++ + + _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} + _systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} +@@ -158,20 +160,24 @@ for fun in is-active is-failed is-enabled status show cat mask preset help list- + done + + # Completion functions for ENABLED_UNITS +-for fun in disable reenable ; do +- (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() +- { ++(( $+functions[_systemctl_disable] )) || _systemctl_disable() ++{ ++ _systemctl_enabled_units ++ compadd "$@" -a - _sys_enabled_units ++} ++ ++(( $+functions[_systemctl_reenable] )) || _systemctl_reenable() ++{ + _systemctl_enabled_units + _systemctl_disabled_units +- compadd "$@" -a - _sys_enabled_units _sys_disabled_units +- } +-done ++ compadd "$@" -a - _sys_enabled_units _sys_disabled_units $(_systemctl_get_template_names) ++} + + # Completion functions for DISABLED_UNITS + (( $+functions[_systemctl_enable] )) || _systemctl_enable() + { + _systemctl_disabled_units +- compadd "$@" -a - _sys_disabled_units ++ compadd "$@" -a - _sys_disabled_units $(_systemctl_get_template_names) + } + + # Completion functions for FAILED_UNITS +-- +1.7.9.2 + diff --git a/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch b/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch new file mode 100644 index 00000000..12ad7d2d --- /dev/null +++ b/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch @@ -0,0 +1,70 @@ +Based on 4b5d8d0f22ae61ceb45a25391354ba53b43ee992 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 6 Nov 2014 22:24:13 +0100 +Subject: [PATCH] shutdown: fix arguments to /run/initramfs/shutdown + +Our initrd interface specifies that the verb is in argv[1]. +This is where systemd passes it to systemd-shutdown, but getopt +permutes argv[]. This confuses dracut's shutdown script: + Shutdown called with argument '--log-level'. Rebooting! + +getopt can be convinced to not permute argv[] by having '-' as the first +character of optstring. Let's use it. This requires changing the way +non-option arguments (in our case, the verb) are processed. + +This fixes a bug where the system would reboot instead of powering off. +--- + src/core/shutdown.c | 24 +++++++++++------------- + 1 file changed, 11 insertions(+), 13 deletions(-) + +--- src/core/shutdown.c ++++ src/core/shutdown.c 2014-11-10 14:14:20.869519112 +0000 +@@ -75,9 +75,9 @@ static int parse_argv(int argc, char *ar + assert(argc >= 1); + assert(argv); + +- opterr = 0; +- +- while ((c = getopt_long(argc, argv, ":", options, NULL)) >= 0) ++ /* "-" prevents getopt from permuting argv[] and moving the verb away ++ * from argv[1]. Our interface to initrd promises it'll be there. */ ++ while ((c = getopt_long(argc, argv, "-", options, NULL)) >= 0) + switch (c) { + + case ARG_LOG_LEVEL: +@@ -115,27 +115,25 @@ static int parse_argv(int argc, char *ar + + break; + +- case '?': +- log_error("Unknown option %s.", argv[optind-1]); +- return -EINVAL; ++ case '\001': ++ if (!arg_verb) ++ arg_verb = optarg; ++ else ++ log_error("Excess arguments, ignoring"); ++ break; + +- case ':': +- log_error("Missing argument to %s.", argv[optind-1]); ++ case '?': + return -EINVAL; + + default: + assert_not_reached("Unhandled option code."); + } + +- if (optind >= argc) { ++ if (!arg_verb) { + log_error("Verb argument missing."); + return -EINVAL; + } + +- arg_verb = argv[optind]; +- +- if (optind + 1 < argc) +- log_error("Excess arguments, ignoring"); + return 0; + } + diff --git a/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch b/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch new file mode 100644 index 00000000..73a98020 --- /dev/null +++ b/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch @@ -0,0 +1,36 @@ +Based on a2726e5cedfa5edeabd7e0784be11bc578555ac5 Mon Sep 17 00:00:00 2001 +From: Marius Tessmann +Date: Fri, 29 Aug 2014 17:51:45 +0200 +Subject: [PATCH] shutdown: pass own argv to /run/initramfs/shutdown + +Since commit b1e90ec515408aec2702522f6f68c4920b56375b systemd passes +its log settings to systemd-shutdown via command line parameters. +However, systemd-shutdown doesn't pass these parameters to +/run/initramfs/shutdown, causing it to fall back to the default log +settings. + +This fixes the following bugs about the shutdown not being quiet +despite "quiet" being in the kernel parameters: + +https://bugs.freedesktop.org/show_bug.cgi?id=79582 +https://bugs.freedesktop.org/show_bug.cgi?id=57216 +--- + src/core/shutdown.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/shutdown.c ++++ src/core/shutdown.c 2014-10-24 12:32:44.704337960 +0000 +@@ -377,11 +377,11 @@ int main(int argc, char *argv[]) { + + if (prepare_new_root() >= 0 && + pivot_to_new_root() >= 0) { +- arguments[0] = (char*) "/shutdown"; ++ argv[0] = (char*) "/shutdown"; + + log_info("Returning to initrd..."); + +- execv("/shutdown", arguments); ++ execv("/shutdown", argv); + log_error("Failed to execute shutdown binary: %m"); + } + } diff --git a/0002-snapshot-return-error-when-snapshot-exists.patch b/0002-snapshot-return-error-when-snapshot-exists.patch new file mode 100644 index 00000000..4a7fcfb3 --- /dev/null +++ b/0002-snapshot-return-error-when-snapshot-exists.patch @@ -0,0 +1,25 @@ +From 7cabba07745b388497e8c0fc19b61984167fd474 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 28 Oct 2014 12:36:17 -0400 +Subject: [PATCH] snapshot: return error when snapshot exists + +--- + src/core/snapshot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/snapshot.c src/core/snapshot.c +index 5eed615..c2678cb 100644 +--- src/core/snapshot.c ++++ src/core/snapshot.c +@@ -208,7 +208,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, sd_bus_error *e, + return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Unit name %s lacks snapshot suffix.", name); + + if (manager_get_unit(m, name)) +- sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); ++ return sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); + + } else { + +-- +1.7.9.2 + diff --git a/0002-switch-root-umount-the-old-root-correctly.patch b/0002-switch-root-umount-the-old-root-correctly.patch new file mode 100644 index 00000000..df79c8f0 --- /dev/null +++ b/0002-switch-root-umount-the-old-root-correctly.patch @@ -0,0 +1,26 @@ +Based on 23f25b1496c31ef4c20b8f3ee8328f7b1d5f3a54 Mon Sep 17 00:00:00 2001 +From: Dan Dedrick +Date: Tue, 29 Jul 2014 15:31:23 -0400 +Subject: [PATCH] switch-root: umount the old root correctly + +The unmount occurs after the pivot_root, so the path used to unmount +should take into account the new root directory. This will allow the +umount to actually succeed. +--- + src/core/switch-root.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/switch-root.c ++++ src/core/switch-root.c 2014-08-22 11:22:50.230735231 +0000 +@@ -122,9 +122,9 @@ int switch_root(const char *new_root) { + + /* Immediately get rid of the old root. Since we are + * running off it we need to do this lazily. */ +- if (umount2(temporary_old_root, MNT_DETACH) < 0) { ++ if (umount2("/mnt", MNT_DETACH) < 0) { + r = -errno; +- log_error("Failed to umount old root dir %s: %m", temporary_old_root); ++ log_error("Failed to umount old root dir /mnt: %m"); + goto fail; + } + diff --git a/0002-sysctl-replaces-some-slashes-with-dots.patch b/0002-sysctl-replaces-some-slashes-with-dots.patch new file mode 100644 index 00000000..d46fd449 --- /dev/null +++ b/0002-sysctl-replaces-some-slashes-with-dots.patch @@ -0,0 +1,97 @@ +From 2e573fcf8754fdfe0db0a783b1631ec1679b063a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Apr 2014 21:33:46 -0400 +Subject: [PATCH] sysctl: replaces some slashes with dots + +It turns out that plain sysctl understands a.b/c syntax to write to +/proc/sys/a/b.c. Support this for compatibility. + +https://bugs.freedesktop.org/show_bug.cgi?id=77466 +--- + man/sysctl.d.xml | 29 +++++++++++++++++++++-------- + src/sysctl/sysctl.c | 18 ++++++++++++++++-- + 2 files changed, 37 insertions(+), 10 deletions(-) + +diff --git man/sysctl.d.xml man/sysctl.d.xml +index 00a857b..db53b49 100644 +--- man/sysctl.d.xml ++++ man/sysctl.d.xml +@@ -68,13 +68,26 @@ + The configuration files contain a list of + variable assignments, separated by newlines. Empty + lines and lines whose first non-whitespace character +- is # or ; are ignored. +- +- Note that both / and . are accepted as label +- separators within sysctl variable +- names. kernel.domainname=foo and +- kernel/domainname=foo hence are +- entirely equivalent. ++ is # or ; are ++ ignored. ++ ++ Note that either / or ++ . may be used as separators within ++ sysctl variable names. If the first separator is a ++ slash, remaining slashes and dots are left intact. If ++ the first separator is a dot, dots and slashes are ++ interchanged. kernel.domainname=foo ++ and kernel/domainname=foo are ++ equivalent and will cause foo to ++ be written to ++ /proc/sys/kernel/domainname. ++ Either ++ net.ipv4.conf.enp3s0/200.forwarding ++ or ++ net/ipv4/conf/enp3s0.200/forwarding ++ may be used to refer to ++ /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. ++ + + Each configuration file shall be named in the + style of program.conf. +@@ -109,7 +122,7 @@ + early on boot. The network interface-specific options + will also be applied individually for each network + interface as it shows up in the system. (More +- specifically, that is ++ specifically, + net.ipv4.conf.*, + net.ipv6.conf.*, + net.ipv4.neigh.* and net.ipv6.neigh.*) +diff --git src/sysctl/sysctl.c src/sysctl/sysctl.c +index 283eefe..06defa5 100644 +--- src/sysctl/sysctl.c ++++ src/sysctl/sysctl.c +@@ -48,12 +48,26 @@ static const char conf_file_dirs[] = + #endif + ; + +-static char *normalize_sysctl(char *s) { ++static char* normalize_sysctl(char *s) { + char *n; + +- for (n = s; *n; n++) ++ n = strpbrk(s, "/."); ++ /* If the first separator is a slash, the path is ++ * assumed to be normalized and slashes remain slashes ++ * and dots remains dots. */ ++ if (!n || *n == '/') ++ return s; ++ ++ /* Otherwise, dots become slashes and slashes become ++ * dots. Fun. */ ++ while (n) { + if (*n == '.') + *n = '/'; ++ else ++ *n = '.'; ++ ++ n = strpbrk(n + 1, "/."); ++ } + + return s; + } +-- +1.7.9.2 + diff --git a/0002-systemctl-obey-state-in-list-unit-files.patch b/0002-systemctl-obey-state-in-list-unit-files.patch new file mode 100644 index 00000000..aaa1cbf3 --- /dev/null +++ b/0002-systemctl-obey-state-in-list-unit-files.patch @@ -0,0 +1,28 @@ +From fec1530e6b5b8d6dc352c7338010357126e84621 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 29 Oct 2014 22:51:00 -0400 +Subject: [PATCH] systemctl: obey --state in list-unit-files + +--- + src/systemctl/systemctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index b71040b..8481a9b 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -1268,6 +1268,11 @@ next: + return false; + } + ++ if (!strv_isempty(arg_states)) { ++ if (!strv_find(arg_states, unit_file_state_to_string(u->state))) ++ return false; ++ } ++ + return true; + } + +-- +1.7.9.2 + diff --git a/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch b/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch new file mode 100644 index 00000000..6a9cd2ac --- /dev/null +++ b/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch @@ -0,0 +1,35 @@ +From c469089cf647ac740c7dcf09c463d2907b6d00eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 22 Nov 2014 20:21:56 -0500 +Subject: [PATCH] systemctl: show BindsTo/BoundBy in list-dependencies + +Suggested-by: Peter Mattern + +http://lists.freedesktop.org/archives/systemd-devel/2014-November/025437.html +--- + src/systemctl/systemctl.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 78b7c96..fd69c69 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -1480,11 +1480,13 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha + "RequiresOverridable\0" + "Requisite\0" + "RequisiteOverridable\0" +- "Wants\0", ++ "Wants\0" ++ "BindsTo\0", + [DEPENDENCY_REVERSE] = "RequiredBy\0" + "RequiredByOverridable\0" + "WantedBy\0" +- "PartOf\0", ++ "PartOf\0" ++ "BoundBy\0", + [DEPENDENCY_AFTER] = "After\0", + [DEPENDENCY_BEFORE] = "Before\0", + }; +-- +1.7.9.2 + diff --git a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch new file mode 100644 index 00000000..fd9096b9 --- /dev/null +++ b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch @@ -0,0 +1,52 @@ +From b3ae710c251d0ce5cf2cef63208e325497b5e323 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 1 Apr 2014 20:43:15 -0400 +Subject: [PATCH] systemctl: update NAME to PATTERN in help() + +Previously the man page was modified, but not help(). +--- + TODO | 2 ++ + src/systemctl/systemctl.c | 14 +++++++------- + 2 files changed, 9 insertions(+), 7 deletions(-) + +diff --git TODO TODO +index 4ff69ff..0343b94 100644 +--- TODO ++++ TODO +@@ -1,4 +1,6 @@ + Bugfixes: ++* Should systemctl status \* work on all unit types, not just .service? ++ + * enabling an instance unit creates a pointless link, and + the unit will be started with getty@getty.service: + $ systemctl enable getty@.service +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 6b88f85..653a324 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -5403,15 +5403,15 @@ static int systemctl_help(void) { + " otherwise restart if active\n" + " isolate NAME Start one unit and stop all others\n" + " kill NAME... Send signal to processes of a unit\n" +- " is-active NAME... Check whether units are active\n" +- " is-failed NAME... Check whether units are failed\n" +- " status [NAME...|PID...] Show runtime status of one or more units\n" +- " show [NAME...|JOB...] Show properties of one or more\n" ++ " is-active PATTERN... Check whether units are active\n" ++ " is-failed PATTERN... Check whether units are failed\n" ++ " status [PATTERN...|PID...] Show runtime status of one or more units\n" ++ " show [PATTERN...|JOB...] Show properties of one or more\n" + " units/jobs or the manager\n" +- " cat NAME... Show files and drop-ins of one or more units\n" ++ " cat PATTERN... Show files and drop-ins of one or more units\n" + " set-property NAME ASSIGNMENT... Sets one or more properties of a unit\n" +- " help NAME...|PID... Show manual for one or more units\n" +- " reset-failed [NAME...] Reset failed state for all, one, or more\n" ++ " help PATTERN...|PID... Show manual for one or more units\n" ++ " reset-failed [PATTERN...] Reset failed state for all, one, or more\n" + " units\n" + " list-dependencies [NAME] Recursively show units which are required\n" + " or wanted by this unit or by which this\n" +-- +1.7.9.2 + diff --git a/0002-systemd-fix-error-message.patch b/0002-systemd-fix-error-message.patch new file mode 100644 index 00000000..778444a8 --- /dev/null +++ b/0002-systemd-fix-error-message.patch @@ -0,0 +1,29 @@ +Based on 6ad3b2b62cbe34cc02ee98deb5f48047f5e42d26 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 30 Aug 2014 17:22:42 -0400 +Subject: [PATCH] systemd: fix error message + +--- + src/core/dbus-manager.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c 2014-09-01 12:51:33.266735961 +0000 +@@ -1114,7 +1114,7 @@ static int method_switch_root(sd_bus *bu + return r; + + if (m->running_as != SYSTEMD_SYSTEM) +- return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "KExec is only supported for system managers."); ++ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "Root switching is only supported by system manager."); + + r = sd_bus_message_read(message, "ss", &root, &init); + if (r < 0) +@@ -1125,7 +1125,7 @@ static int method_switch_root(sd_bus *bu + + /* Safety check */ + if (isempty(init)) { +- if (! path_is_os_tree(root)) ++ if (!path_is_os_tree(root)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified switch root path %s does not seem to be an OS tree. /etc/os-release is missing.", root); + } else { + _cleanup_free_ char *p = NULL; diff --git a/0002-systemd-try-harder-to-bind-to-notify-socket.patch b/0002-systemd-try-harder-to-bind-to-notify-socket.patch new file mode 100644 index 00000000..d0277386 --- /dev/null +++ b/0002-systemd-try-harder-to-bind-to-notify-socket.patch @@ -0,0 +1,44 @@ +Based on e7bc519620cb7bcdbe2166fc2a446453769d827e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 16 Oct 2014 19:15:38 -0500 +Subject: [PATCH] systemd: try harder to bind to notify socket + +Without the socket open we are going to crash and burn. If for +whatever reason we fail during deserialization we will fail when +trying to open the socket. In this case it is better to unlink the old +socket and maybe lose some messages, than to continue without the +notification socket. + +Of course this situation should not happen, but we should handle +it as gracefully as possible anyway. + +https://bugzilla.redhat.com/show_bug.cgi?id=1099299 +--- + src/core/manager.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-10-20 13:47:21.035837897 +0000 +@@ -572,7 +572,21 @@ static int manager_setup_notify(Manager + r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); + if (r < 0) { + log_error("bind(@%s) failed: %m", sa.un.sun_path+1); +- return -errno; ++ if (errno == EADDRINUSE) { ++ log_notice("Removing %s socket and trying again.", m->notify_socket); ++ r = unlink(m->notify_socket); ++ if (r < 0) { ++ log_error("Failed to remove %s: %m", m->notify_socket); ++ return -EADDRINUSE; ++ } ++ ++ r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)); ++ if (r < 0) { ++ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); ++ return -errno; ++ } ++ } else ++ return -errno; + } + + r = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); diff --git a/0002-time-also-support-infinity-syntax-in-parse_nsec.patch b/0002-time-also-support-infinity-syntax-in-parse_nsec.patch new file mode 100644 index 00000000..c1f4884c --- /dev/null +++ b/0002-time-also-support-infinity-syntax-in-parse_nsec.patch @@ -0,0 +1,40 @@ +Based on e73c78c27511b03c7abc55aed87896092c0de699 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 19:07:26 +0200 +Subject: [PATCH] time: also support 'infinity' syntax in parse_nsec() + +Let's make parse_usec() and parse_nsec() work similar +--- + src/shared/time-util.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +--- src/shared/time-util.c ++++ src/shared/time-util.c +@@ -773,7 +773,7 @@ int parse_nsec(const char *t, nsec_t *nsec) { + { "", 1ULL }, /* default is nsec */ + }; + +- const char *p; ++ const char *p, *s; + nsec_t r = 0; + bool something = false; + +@@ -781,6 +781,18 @@ int parse_nsec(const char *t, nsec_t *nsec) { + assert(nsec); + + p = t; ++ ++ p += strspn(p, WHITESPACE); ++ s = startswith(p, "infinity"); ++ if (s) { ++ s += strspn(s, WHITESPACE); ++ if (!*s != 0) ++ return -EINVAL; ++ ++ *nsec = ((nsec_t) -1); ++ return 0; ++ } ++ + for (;;) { + long long l, z = 0; + char *e; diff --git a/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch b/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch new file mode 100644 index 00000000..7fab49e6 --- /dev/null +++ b/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch @@ -0,0 +1,29 @@ +From 24119cf10c7ed58a8fc0851745149dcc6dd5757f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Mon, 29 Sep 2014 22:32:10 -0400 +Subject: [PATCH] udev/hwdb: New Entry for Dell XPS12 9Q33 keyboard + +https://bugs.freedesktop.org/show_bug.cgi?id=84437 +--- + hwdb/60-keyboard.hwdb | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 0ffcb83..8a1baa7 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -243,6 +243,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + KEYBOARD_KEY_8c=!unknown + ++# Dell XPS12 9Q33 ++keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* ++ KEYBOARD_KEY_88=wlan ++ KEYBOARD_KEY_65=switchvideomode # Screen Rotate ++ + # Dell Latitude microphone mute + keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* + KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute +-- +1.7.9.2 + diff --git a/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch b/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch new file mode 100644 index 00000000..58189d0f --- /dev/null +++ b/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch @@ -0,0 +1,18 @@ +Basedo n a55954297dade7b432fd3a4f328f23261621ff79 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 19 Jun 2014 19:53:16 +0200 +Subject: [PATCH] units: add missing caps so that GetAddresses() can work + +--- + units/systemd-machined.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- units/systemd-machined.service.in ++++ units/systemd-machined.service.in 2014-06-24 11:26:19.554235869 +0000 +@@ -15,5 +15,5 @@ After=machine.slice + [Service] + ExecStart=@rootlibexecdir@/systemd-machined + BusName=org.freedesktop.machine1 +-CapabilityBoundingSet=CAP_KILL ++CapabilityBoundingSet=CAP_KILL CAP_SYS_PTRACE CAP_SYS_ADMIN CAP_SETGID + WatchdogSec=1min diff --git a/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch b/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch new file mode 100644 index 00000000..6bc06d23 --- /dev/null +++ b/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch @@ -0,0 +1,29 @@ +From 66f311206e908a5b6f21e66fad73e1e5ea3e31d6 Mon Sep 17 00:00:00 2001 +From: Ivan Shapovalov +Date: Wed, 27 Aug 2014 00:17:43 +0400 +Subject: [PATCH] units: order systemd-fsck@.service after + local-fs-pre.target. + +With this change, it becomes possible to order a unit to activate before any +modifications to the file systems. This is especially useful for supporting +resume from hibernation. +--- + units/systemd-fsck@.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git units/systemd-fsck@.service.in units/systemd-fsck@.service.in +index c12efa8..d2cda6a 100644 +--- units/systemd-fsck@.service.in ++++ units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Description=File System Check on %f + Documentation=man:systemd-fsck@.service(8) + DefaultDependencies=no + BindsTo=%i.device +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service local-fs-pre.target + Before=shutdown.target + + [Service] +-- +1.7.9.2 + diff --git a/0002-units-serial-getty-.service-use-the-default-RestartS.patch b/0002-units-serial-getty-.service-use-the-default-RestartS.patch new file mode 100644 index 00000000..3945e4cd --- /dev/null +++ b/0002-units-serial-getty-.service-use-the-default-RestartS.patch @@ -0,0 +1,29 @@ +Based on 4bf04322b8b7ecca4f3d65cfc642d0ac16356129 Mon Sep 17 00:00:00 2001 +From: Michael Olbrich +Date: Tue, 15 Jul 2014 18:28:10 +0200 +Subject: [PATCH] units/serial-getty@.service: use the default RestartSec + +For pluggable ttys such as USB serial devices, the getty is restarted +and exits in a loop until the remove event reaches systemd. Under +certain circumstances the restart loop can overload the system in a +way that prevents the remove event from reaching systemd for a long +time (e.g. at least several minutes on a small embedded system). + +Use the default RestartSec to prevent the restart loop from +overloading the system. Serial gettys are interactive units, so +waiting an extra 100ms really doesn't make a difference anyways +compared to the time it takes the user to log in. +--- + units/serial-getty@.service.m4 | 1 - + 1 file changed, 1 deletion(-) + +--- units/serial-getty@.service.m4 ++++ units/serial-getty@.service.m4 2014-07-16 00:00:00.000000000 +0000 +@@ -27,7 +27,6 @@ ExecStart=-/sbin/agetty --keep-baud %I 1 + ExecStopPost=-/sbin/vhangup /dev/%I + Type=idle + Restart=always +-RestartSec=0 + UtmpIdentifier=%I + TTYPath=/dev/%I + TTYReset=yes diff --git a/0002-util-avoid-non-portable-__WORDSIZE.patch b/0002-util-avoid-non-portable-__WORDSIZE.patch new file mode 100644 index 00000000..7c82d91c --- /dev/null +++ b/0002-util-avoid-non-portable-__WORDSIZE.patch @@ -0,0 +1,25 @@ +Based on 8507eb20b64010b26f23822cbf442bb0bf96511c Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Fri, 19 Sep 2014 20:26:53 +0200 +Subject: [PATCH] util: avoid non-portable __WORDSIZE + +Lets not unnecessarily rely on __WORDSIZE, which is not clearly specified +by any spec. Use explicit size comparisons if we're not interested in the +WORDSIZE, anyway. + +(David: adjust commit message to explain why we do this) +--- + src/shared/util.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/shared/util.h ++++ src/shared/util.h 2014-09-24 06:58:11.378235669 +0000 +@@ -166,7 +166,7 @@ int safe_atolli(const char *s, long long + + int safe_atod(const char *s, double *ret_d); + +-#if __WORDSIZE == 32 ++#if LONG_MAX == INT_MAX + static inline int safe_atolu(const char *s, unsigned long *ret_u) { + assert_cc(sizeof(unsigned long) == sizeof(unsigned)); + return safe_atou(s, (unsigned*) ret_u); diff --git a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch new file mode 100644 index 00000000..7dd59ed5 --- /dev/null +++ b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch @@ -0,0 +1,117 @@ +From 6294aa76d818e831de4592b41a37e225fd0871f9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 12:04:55 +0200 +Subject: [PATCH] util: don't consider tabs special in string_has_cc() anymore + +Instead, take a list of exceptions to our usual CC check +--- + src/hostname/hostnamed.c | 3 +-- + src/shared/env-util.c | 4 +++- + src/shared/fileio.c | 2 +- + src/shared/util.c | 19 ++++++++++--------- + src/shared/util.h | 5 +++-- + 5 files changed, 18 insertions(+), 15 deletions(-) + +Index: src/hostname/hostnamed.c +=================================================================== +--- src/hostname/hostnamed.c.orig ++++ src/hostname/hostnamed.c +@@ -507,8 +507,7 @@ static int set_machine_info(Context *c, + + if (prop == PROP_ICON_NAME && !filename_is_safe(name)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); +- if (prop == PROP_PRETTY_HOSTNAME && +- (string_has_cc(name) || chars_intersect(name, "\t"))) ++ if (prop == PROP_PRETTY_HOSTNAME && string_has_cc(name, NULL)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); + if (prop == PROP_CHASSIS && !valid_chassis(name)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name); +Index: src/shared/env-util.c +=================================================================== +--- src/shared/env-util.c.orig ++++ src/shared/env-util.c +@@ -78,7 +78,9 @@ bool env_value_is_valid(const char *e) { + if (!utf8_is_valid(e)) + return false; + +- if (string_has_cc(e)) ++ /* bash allows tabs in environment variables, and so should ++ * we */ ++ if (string_has_cc(e, "\t")) + return false; + + /* POSIX says the overall size of the environment block cannot +Index: src/shared/fileio.c +=================================================================== +--- src/shared/fileio.c.orig ++++ src/shared/fileio.c +@@ -658,7 +658,7 @@ static void write_env_var(FILE *f, const + p++; + fwrite(v, 1, p-v, f); + +- if (string_has_cc(p) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { ++ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { + fputc('\"', f); + + for (; *p; p++) { +Index: src/shared/util.c +=================================================================== +--- src/shared/util.c.orig ++++ src/shared/util.c +@@ -5466,16 +5466,14 @@ bool filename_is_safe(const char *p) { + bool string_is_safe(const char *p) { + const char *t; + +- assert(p); ++ if (!p) ++ return false; + + for (t = p; *t; t++) { + if (*t > 0 && *t < ' ') + return false; + +- if (*t == 127) +- return false; +- +- if (strchr("\\\"\'", *t)) ++ if (strchr("\\\"\'\0x7f", *t)) + return false; + } + +@@ -5483,16 +5481,19 @@ bool string_is_safe(const char *p) { + } + + /** +- * Check if a string contains control characters. +- * Spaces and tabs are not considered control characters. ++ * Check if a string contains control characters. If 'ok' is non-NULL ++ * it may be a string containing additional CCs to be considered OK. + */ +-bool string_has_cc(const char *p) { ++bool string_has_cc(const char *p, const char *ok) { + const char *t; + + assert(p); + + for (t = p; *t; t++) { +- if (*t > 0 && *t < ' ' && *t != '\t') ++ if (ok && strchr(ok, *t)) ++ return false; ++ ++ if (*t > 0 && *t < ' ') + return true; + + if (*t == 127) +Index: src/shared/util.h +=================================================================== +--- src/shared/util.h.orig ++++ src/shared/util.h +@@ -652,7 +652,7 @@ _alloc_(2, 3) static inline void *memdup + bool filename_is_safe(const char *p) _pure_; + bool path_is_safe(const char *p) _pure_; + bool string_is_safe(const char *p) _pure_; +-bool string_has_cc(const char *p) _pure_; ++bool string_has_cc(const char *p, const char *ok) _pure_; + + /** + * Check if a string contains any glob patterns. diff --git a/0002-util-fix-has-cc-check-and-add-test.patch b/0002-util-fix-has-cc-check-and-add-test.patch new file mode 100644 index 00000000..f39ad16c --- /dev/null +++ b/0002-util-fix-has-cc-check-and-add-test.patch @@ -0,0 +1,25 @@ +Based on 1cb1767a29458b3d16d6b161b4ee34dd496ff60d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Jul 2014 09:21:15 -0400 +Subject: [PATCH] util: fix has cc check and add test + +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 3342798..75dc58b 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -5419,7 +5419,7 @@ bool string_has_cc(const char *p, const char *ok) { + + for (t = p; *t; t++) { + if (ok && strchr(ok, *t)) +- return false; ++ continue; + + if (*t > 0 && *t < ' ') + return true; +-- +1.7.9.2 + diff --git a/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch b/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch new file mode 100644 index 00000000..9cd13c2d --- /dev/null +++ b/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch @@ -0,0 +1,96 @@ +Based on 8a7c93d858c342744adf481565d8bb03b9713dcf Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 27 Aug 2014 21:42:20 +0200 +Subject: [PATCH] util: fix minimal race where we might miss SIGTERMs when + forking off an agent + +Before forking, block all signals, and unblock them afterwards. This way +the child will have them blocked, and we won't lose them. +--- + src/shared/util.c | 39 ++++++++++++++++++++++++++++++++++----- + 1 file changed, 34 insertions(+), 5 deletions(-) + +--- src/shared/util.c ++++ src/shared/util.c 2014-08-28 10:32:06.442693437 +0000 +@@ -894,6 +894,18 @@ int reset_all_signal_handlers(void) { + return 0; + } + ++static int reset_signal_mask(void) { ++ sigset_t ss; ++ ++ if (sigemptyset(&ss) < 0) ++ return -errno; ++ ++ if (sigprocmask(SIG_SETMASK, &ss, NULL) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + char *strstrip(char *s) { + char *e; + +@@ -5119,9 +5131,9 @@ int fd_inc_rcvbuf(int fd, size_t n) { + } + + int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *path, ...) { +- pid_t parent_pid, agent_pid; +- int fd; + bool stdout_is_tty, stderr_is_tty; ++ pid_t parent_pid, agent_pid; ++ sigset_t ss, saved_ss; + unsigned n, i; + va_list ap; + char **l; +@@ -5129,16 +5141,25 @@ int fork_agent(pid_t *pid, const int exc + assert(pid); + assert(path); + +- parent_pid = getpid(); +- + /* Spawns a temporary TTY agent, making sure it goes away when + * we go away */ + ++ parent_pid = getpid(); ++ ++ /* First we temporarily block all signals, so that the new ++ * child has them blocked initially. This way, we can be sure ++ * that SIGTERMs are not lost we might send to the agent. */ ++ assert_se(sigfillset(&ss) >= 0); ++ assert_se(sigprocmask(SIG_SETMASK, &ss, &saved_ss) >= 0); ++ + agent_pid = fork(); +- if (agent_pid < 0) ++ if (agent_pid < 0) { ++ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); + return -errno; ++ } + + if (agent_pid != 0) { ++ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); + *pid = agent_pid; + return 0; + } +@@ -5149,6 +5170,12 @@ int fork_agent(pid_t *pid, const int exc + if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) + _exit(EXIT_FAILURE); + ++ /* Make sure we actually can kill the agent, if we need to, in ++ * case somebody invoked us from a shell script that trapped ++ * SIGTERM or so... */ ++ reset_all_signal_handlers(); ++ reset_signal_mask(); ++ + /* Check whether our parent died before we were able + * to set the death signal */ + if (getppid() != parent_pid) +@@ -5161,6 +5188,8 @@ int fork_agent(pid_t *pid, const int exc + stderr_is_tty = isatty(STDERR_FILENO); + + if (!stdout_is_tty || !stderr_is_tty) { ++ int fd; ++ + /* Detach from stdout/stderr. and reopen + * /dev/tty for them. This is important to + * ensure that when systemctl is started via diff --git a/0002-util-remove-a-unnecessary-check.patch b/0002-util-remove-a-unnecessary-check.patch new file mode 100644 index 00000000..ac7cdfb8 --- /dev/null +++ b/0002-util-remove-a-unnecessary-check.patch @@ -0,0 +1,25 @@ +Based on 42646a8bf24be2c9280554c9d8540c67c835b3c4 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Tue, 16 Sep 2014 22:58:35 +0200 +Subject: [PATCH] util: remove a unnecessary check + +We only break out of the previous loop if fd >= 0 so there is no +use in checking it again. + +Found by coverity. Fixes: CID#1237577 +--- + src/shared/util.c | 3 --- + 1 file changed, 3 deletions(-) + +--- src/shared/util.c ++++ src/shared/util.c 2014-09-18 13:05:08.218236754 +0000 +@@ -1772,9 +1772,6 @@ int open_terminal(const char *name, int + c++; + } + +- if (fd < 0) +- return -errno; +- + r = isatty(fd); + if (r < 0) { + close_nointr_nofail(fd); diff --git a/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch b/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch new file mode 100644 index 00000000..b202ce37 --- /dev/null +++ b/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch @@ -0,0 +1,74 @@ +Based on e0a33e7ba619eb44f732aaf23cb249fa43d0ce8d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Jul 2014 13:42:25 +0200 +Subject: [PATCH] util: when unescaping strings, don't allow smuggling in of + additional NUL bytes + +Better safe than sorry. +--- + src/shared/util.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git src/shared/util.c src/shared/util.c +index ceafa01..4ad3f20 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1256,7 +1256,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre + a = unhexchar(f[1]); + b = unhexchar(f[2]); + +- if (a < 0 || b < 0) { ++ if (a < 0 || b < 0 || (a == 0 && b == 0)) { + /* Invalid escape code, let's take it literal then */ + *(t++) = '\\'; + *(t++) = 'x'; +@@ -1283,7 +1283,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre + b = unoctchar(f[1]); + c = unoctchar(f[2]); + +- if (a < 0 || b < 0 || c < 0) { ++ if (a < 0 || b < 0 || c < 0 || (a == 0 && b == 0 && c == 0)) { + /* Invalid escape code, let's take it literal then */ + *(t++) = '\\'; + *(t++) = f[0]; +@@ -1566,8 +1566,7 @@ int chvt(int vt) { + + int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + struct termios old_termios, new_termios; +- char c; +- char line[LINE_MAX]; ++ char c, line[LINE_MAX]; + + assert(f); + assert(ret); +@@ -1604,9 +1603,10 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + } + } + +- if (t != (usec_t) -1) ++ if (t != (usec_t) -1) { + if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0) + return -ETIMEDOUT; ++ } + + if (!fgets(line, sizeof(line), f)) + return -EIO; +@@ -1624,6 +1624,7 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + } + + int ask(char *ret, const char *replies, const char *text, ...) { ++ int r; + + assert(ret); + assert(replies); +@@ -1632,7 +1633,6 @@ int ask(char *ret, const char *replies, const char *text, ...) { + for (;;) { + va_list ap; + char c; +- int r; + bool need_nl = true; + + if (on_tty()) +-- +1.7.9.2 + diff --git a/0002-vconsole-setup-run-setfont-before-loadkeys.patch b/0002-vconsole-setup-run-setfont-before-loadkeys.patch new file mode 100644 index 00000000..7ef05c2d --- /dev/null +++ b/0002-vconsole-setup-run-setfont-before-loadkeys.patch @@ -0,0 +1,167 @@ +Based on abee28c56d523e55751b0c007d0bf812cc285c00 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 1 Jul 2014 22:20:11 -0400 +Subject: [PATCH] vconsole-setup: run setfont before loadkeys + +https://bugs.freedesktop.org/show_bug.cgi?id=80685 + +For SUSE please note that this had been ported on top of the patches + * handle-disable_caplock-and-compose_table-and-kbd_rate.patch + * handle-numlock-value-in-etc-sysconfig-keyboard.patch +that is that now set_kbd_rate() will be called first before font_load(). +Then font_load() is followed by load_compose_table() and afterwards as +in the original commit the keymap_load() follows. + +--- + src/vconsole/vconsole-setup.c | 93 +++++++++++++++++++++--------------------- + 1 file changed, 47 insertions(+), 46 deletions(-) + +Index: src/vconsole/vconsole-setup.c +=================================================================== +--- src/vconsole/vconsole-setup.c.orig ++++ src/vconsole/vconsole-setup.c +@@ -340,23 +340,20 @@ static int set_kbd_rate(const char *vc, + + int main(int argc, char **argv) { + const char *vc; +- char *vc_keymap = NULL; +- char *vc_keymap_toggle = NULL; +- char *vc_font = NULL; +- char *vc_font_map = NULL; +- char *vc_font_unimap = NULL; ++ _cleanup_free_ char ++ *vc_keymap = NULL, *vc_keymap_toggle = NULL, ++ *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; ++ _cleanup_close_ int fd = -1; + #ifdef HAVE_SYSV_COMPAT +- char *vc_kbd_delay = NULL; +- char *vc_kbd_rate = NULL; +- char *vc_kbd_disable_caps_lock = NULL; +- char *vc_kbd_numlock = NULL; +- char *vc_compose_table = NULL; ++ _cleanup_free_ char ++ *vc_kbd_numlock = NULL, *vc_kbd_delay = NULL, ++ *vc_kbd_rate = NULL, * vc_kbd_disable_caps_lock = NULL, ++ *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; ++ bool numlock = false; + #endif +- int fd = -1; + bool utf8; + bool disable_capslock = false; +- bool numlock = false; + pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -377,12 +374,12 @@ int main(int argc, char **argv) { + fd = open_terminal(vc, O_RDWR|O_CLOEXEC); + if (fd < 0) { + log_error("Failed to open %s: %m", vc); +- goto finish; ++ return EXIT_FAILURE; + } + + if (!is_vconsole(fd)) { + log_error("Device %s is not a virtual console.", vc); +- goto finish; ++ return EXIT_FAILURE; + } + + utf8 = is_locale_utf8(); +@@ -464,58 +461,62 @@ int main(int argc, char **argv) { + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); + } ++#ifdef HAVE_SYSV_COMPAT ++finish: ++ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); ++ if (r < 0) { ++ log_error("Failed to start /bin/kbdrate: %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } ++ ++ if (kbd_rate_pid > 0) ++ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); ++#endif + + if (utf8) + enable_utf8(fd); + else + disable_utf8(fd); + +- r = EXIT_FAILURE; +- +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +-#ifdef HAVE_SYSV_COMPAT +- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && +- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && +-#endif +- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) +- r = EXIT_SUCCESS; ++ r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } + +-finish: +- if (keymap_pid > 0) +- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); +- if (numlock) +- touch("/run/numlock-on"); +- else +- unlink("/run/numlock-on"); ++ if (font_pid > 0) ++ wait_for_terminate_and_warn(KBD_SETFONT, font_pid); + + #ifdef HAVE_SYSV_COMPAT ++ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } ++ + if (compose_table_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); +- +- if (kbd_rate_pid > 0) +- wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); + #endif + +- if (font_pid > 0) { +- wait_for_terminate_and_warn(KBD_SETFONT, font_pid); +- if (font_copy) +- font_copy_to_all_vcs(fd); ++ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ return EXIT_FAILURE; + } + +- free(vc_keymap); +- free(vc_font); +- free(vc_font_map); +- free(vc_font_unimap); +- free(vc_kbd_numlock); ++ if (keymap_pid > 0) ++ wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ + #ifdef HAVE_SYSV_COMPAT +- free(vc_kbd_delay); +- free(vc_kbd_rate); +- free(vc_kbd_disable_caps_lock); +- free(vc_compose_table); ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + #endif + +- if (fd >= 0) +- close_nointr_nofail(fd); ++ /* Only copy the font when we started setfont successfully */ ++ if (font_copy && font_pid > 0) ++ font_copy_to_all_vcs(fd); + + return r; + } diff --git a/0003-Add-quotes-to-warning-message.patch b/0003-Add-quotes-to-warning-message.patch new file mode 100644 index 00000000..3a742bac --- /dev/null +++ b/0003-Add-quotes-to-warning-message.patch @@ -0,0 +1,41 @@ +From f0ea29eaeb3449822bfbdfa839b00e323dfc523e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 20 Jul 2014 19:47:42 -0400 +Subject: [PATCH] Add quotes to warning message + +The message for SYSTEMD_LOG_LEVEL= looked a bit strange. +--- + src/shared/log.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git src/shared/log.c src/shared/log.c +index 9039db3..3941e3e 100644 +--- src/shared/log.c ++++ src/shared/log.c +@@ -884,19 +884,19 @@ void log_parse_environment(void) { + + e = secure_getenv("SYSTEMD_LOG_TARGET"); + if (e && log_set_target_from_string(e) < 0) +- log_warning("Failed to parse log target %s. Ignoring.", e); ++ log_warning("Failed to parse log target '%s'. Ignoring.", e); + + e = secure_getenv("SYSTEMD_LOG_LEVEL"); + if (e && log_set_max_level_from_string(e) < 0) +- log_warning("Failed to parse log level %s. Ignoring.", e); ++ log_warning("Failed to parse log level '%s'. Ignoring.", e); + + e = secure_getenv("SYSTEMD_LOG_COLOR"); + if (e && log_show_color_from_string(e) < 0) +- log_warning("Failed to parse bool %s. Ignoring.", e); ++ log_warning("Failed to parse bool '%s'. Ignoring.", e); + + e = secure_getenv("SYSTEMD_LOG_LOCATION"); + if (e && log_show_location_from_string(e) < 0) +- log_warning("Failed to parse bool %s. Ignoring.", e); ++ log_warning("Failed to parse bool '%s'. Ignoring.", e); + } + + LogTarget log_get_target(void) { +-- +1.7.9.2 + diff --git a/0003-Always-check-asprintf-return-code.patch b/0003-Always-check-asprintf-return-code.patch new file mode 100644 index 00000000..00d873f7 --- /dev/null +++ b/0003-Always-check-asprintf-return-code.patch @@ -0,0 +1,223 @@ +Based on 7de80bfe2e61d5818601ccfddbadad3b7703ed70 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 25 Jul 2014 15:38:31 +0200 +Subject: [PATCH] Always check asprintf return code + +There is a small number of the places in sources where we don't check +asprintf() return code and assume that after error the function +returns NULL pointer via the first argument. That's wrong, after +error the content of pointer is undefined. +--- + src/core/unit-printf.c | 8 ++++---- + src/cryptsetup/cryptsetup.c | 11 ++++++++--- + src/journal/journalctl.c | 16 +++++++++++----- + src/run/run.c | 20 ++++++++++---------- + src/shared/install.c | 15 +++++++++------ + src/systemctl/systemctl.c | 18 +++++++++--------- + src/tty-ask-password-agent/tty-ask-password-agent.c | 5 +++-- + 7 files changed, 54 insertions(+), 39 deletions(-) + +--- src/core/unit-printf.c ++++ src/core/unit-printf.c 2014-07-28 09:42:20.726235696 +0000 +@@ -182,7 +182,7 @@ static int specifier_user_name(char spec + char *printed = NULL; + Unit *u = userdata; + ExecContext *c; +- int r; ++ int r = 0; + + assert(u); + +@@ -208,7 +208,7 @@ static int specifier_user_name(char spec + if (r < 0) + return -ENODATA; + +- asprintf(&printed, "%lu", (unsigned long) uid); ++ r = asprintf(&printed, "%lu", (unsigned long) uid); + } + } + +@@ -231,10 +231,10 @@ static int specifier_user_name(char spec + if (specifier == 'u') + printed = strdup(username); + else +- asprintf(&printed, "%lu", (unsigned long) uid); ++ r = asprintf(&printed, "%lu", (unsigned long) uid); + } + +- if (!printed) ++ if (r < 0 || !printed) + return -ENOMEM; + + *ret = printed; +--- src/cryptsetup/cryptsetup.c ++++ src/cryptsetup/cryptsetup.c 2014-07-28 00:00:00.000000000 +0000 +@@ -535,13 +535,18 @@ int main(int argc, char *argv[]) { + description = NULL; + } + ++ k = 0; + if (mount_point && description) +- asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); ++ k = asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); + else if (mount_point) +- asprintf(&name_buffer, "%s on %s", argv[2], mount_point); ++ k = asprintf(&name_buffer, "%s on %s", argv[2], mount_point); + else if (description) +- asprintf(&name_buffer, "%s (%s)", description, argv[2]); ++ k = asprintf(&name_buffer, "%s (%s)", description, argv[2]); + ++ if (k < 0) { ++ log_oom(); ++ goto finish; ++ } + name = name_buffer ? name_buffer : argv[2]; + + k = crypt_init(&cd, argv[3]); +--- src/journal/journalctl.c ++++ src/journal/journalctl.c 2014-07-28 00:00:00.000000000 +0000 +@@ -746,11 +746,17 @@ static int add_matches(sd_journal *j, ch + } + } else + t = strappend("_EXE=", path); +- } else if (S_ISCHR(st.st_mode)) +- asprintf(&t, "_KERNEL_DEVICE=c%u:%u", major(st.st_rdev), minor(st.st_rdev)); +- else if (S_ISBLK(st.st_mode)) +- asprintf(&t, "_KERNEL_DEVICE=b%u:%u", major(st.st_rdev), minor(st.st_rdev)); +- else { ++ } else if (S_ISCHR(st.st_mode)) { ++ if (asprintf(&t, "_KERNEL_DEVICE=c%u:%u", ++ major(st.st_rdev), ++ minor(st.st_rdev)) < 0) ++ return -ENOMEM; ++ } else if (S_ISBLK(st.st_mode)) { ++ if (asprintf(&t, "_KERNEL_DEVICE=b%u:%u", ++ major(st.st_rdev), ++ minor(st.st_rdev)) < 0) ++ return -ENOMEM; ++ } else { + log_error("File is neither a device node, nor regular file, nor executable: %s", *i); + return -EINVAL; + } +--- src/run/run.c ++++ src/run/run.c 2014-07-28 09:46:36.846235596 +0000 +@@ -309,12 +309,12 @@ static int start_transient_service( + _cleanup_free_ char *name = NULL; + int r; + +- if (arg_unit) ++ if (arg_unit) { + name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".service"); +- else +- asprintf(&name, "run-%lu.service", (unsigned long) getpid()); +- if (!name) +- return -ENOMEM; ++ if (!name) ++ return log_oom(); ++ } else if (asprintf(&name, "run-%lu.service", (unsigned long) getpid()) < 0) ++ return log_oom(); + + r = message_start_transient_unit_new(bus, name, &m); + if (r < 0) +@@ -436,12 +436,12 @@ static int start_transient_scope( + + assert(bus); + +- if (arg_unit) ++ if (arg_unit) { + name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope"); +- else +- asprintf(&name, "run-%lu.scope", (unsigned long) getpid()); +- if (!name) +- return -ENOMEM; ++ if (!name) ++ return log_oom(); ++ } else if (asprintf(&name, "run-%lu.scope", (unsigned long) getpid()) < 0) ++ return log_oom(); + + r = message_start_transient_unit_new(bus, name, &m); + if (r < 0) +--- src/shared/install.c ++++ src/shared/install.c 2014-07-28 00:00:00.000000000 +0000 +@@ -72,13 +72,16 @@ static int get_config_path(UnitFileScope + + case UNIT_FILE_SYSTEM: + +- if (root_dir && runtime) +- asprintf(&p, "%s/run/systemd/system", root_dir); +- else if (runtime) ++ if (root_dir && runtime) { ++ if (asprintf(&p, "%s/run/systemd/system", root_dir) < 0) ++ return -ENOMEM; ++ } else if (runtime) + p = strdup("/run/systemd/system"); +- else if (root_dir) +- asprintf(&p, "%s/%s", root_dir, SYSTEM_CONFIG_UNIT_PATH); +- else ++ else if (root_dir) { ++ if (asprintf(&p, "%s/%s", root_dir, ++ SYSTEM_CONFIG_UNIT_PATH) < 0) ++ return -ENOMEM; ++ } else + p = strdup(SYSTEM_CONFIG_UNIT_PATH); + + break; +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-07-28 09:51:40.894735541 +0000 +@@ -4639,11 +4639,11 @@ static int enable_sysv_units(const char + + STRV_FOREACH(k, paths.unit_path) { + if (!isempty(arg_root)) +- asprintf(&p, "%s/%s/%s", arg_root, *k, name); ++ j = asprintf(&p, "%s/%s/%s", arg_root, *k, name); + else +- asprintf(&p, "%s/%s", *k, name); ++ j = asprintf(&p, "%s/%s", *k, name); + +- if (!p) { ++ if (j < 0) { + r = log_oom(); + goto finish; + } +@@ -4660,10 +4660,10 @@ static int enable_sysv_units(const char + continue; + + if (!isempty(arg_root)) +- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); ++ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); + else +- asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); +- if (!p) { ++ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); ++ if (j < 0) { + r = log_oom(); + goto finish; + } +@@ -4676,10 +4676,10 @@ static int enable_sysv_units(const char + free(p); + p = NULL; + if (!isempty(arg_root)) +- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); ++ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else +- asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); +- if (!p) { ++ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); ++ if (j < 0) { + r = log_oom(); + goto finish; + } +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-28 00:00:00.000000000 +0000 +@@ -102,8 +102,9 @@ static int ask_password_plymouth( + if (accept_cached) { + packet = strdup("c"); + n = 1; +- } else +- asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), message, &n); ++ } else if (asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), ++ message, &n) < 0) ++ packet = NULL; + + if (!packet) { + r = -ENOMEM; diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch new file mode 100644 index 00000000..7f485448 --- /dev/null +++ b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch @@ -0,0 +1,130 @@ +From b5d742138f71e87312541a89aac5657015f50f48 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 4 Mar 2014 09:50:26 -0500 +Subject: [PATCH] Do not print invalid UTF-8 in error messages + +Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error +messages') only fixed two paths. Convert all of them now. +--- + src/core/load-fragment.c | 13 ++++--------- + src/shared/conf-parser.c | 7 +++---- + src/shared/conf-parser.h | 6 ++++++ + src/shared/fileio.c | 9 ++++++--- + 4 files changed, 19 insertions(+), 16 deletions(-) + +diff --git src/core/load-fragment.c src/core/load-fragment.c +index d77bf5c..5628d8c 100644 +--- src/core/load-fragment.c ++++ src/core/load-fragment.c +@@ -536,9 +536,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(path)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -553,9 +551,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(c)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for( + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index 0a87a71..d27b1b7 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c +@@ -618,8 +618,7 @@ int config_parse_string(const char *unit + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + free(n); + return 0; + } +@@ -656,8 +655,7 @@ int config_parse_path(const char *unit, + assert(data); + + if (!utf8_is_valid(rvalue)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + return 0; + } + +@@ -725,8 +723,7 @@ int config_parse_strv(const char *unit, + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.h src/shared/conf-parser.h +index e1c7ab4..ba0e58d 100644 +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h +@@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level, + config_file, config_line, \ + error, __VA_ARGS__) + ++#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ ++ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ ++ log_syntax(unit, level, config_file, config_line, error, \ ++ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ ++ } ++ + #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ + int function(const char *unit, \ + const char *filename, \ +diff --git src/shared/fileio.c src/shared/fileio.c +index d591567..f101269 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, + int r; + + if (!utf8_is_valid(key)) { ++ _cleanup_free_ char *t = utf8_escape_invalid(key); ++ + log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", +- filename, line, key); ++ filename, line, t); + return -EINVAL; + } + + if (value && !utf8_is_valid(value)) { +- /* FIXME: filter UTF-8 */ ++ _cleanup_free_ char *t = utf8_escape_invalid(value); ++ + log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", +- filename, line, key, value); ++ filename, line, key, t); + return -EINVAL; + } + +-- +1.7.9.2 + diff --git a/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch b/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch new file mode 100644 index 00000000..38b777fe --- /dev/null +++ b/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch @@ -0,0 +1,68 @@ +From 8e07fc41f86d41e68c5663b2a3c620a0adedcc11 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 31 Aug 2014 00:42:27 -0400 +Subject: [PATCH] Quote unit names in suggested systemctl commandlines + +The fact that unit names have to be quoted can be a bit surprising. +Show quotes in the hint commandline, but only after checking that this +is necessary, since quotes are visually heavy and usually not needed. + +https://bugs.freedesktop.org/show_bug.cgi?id=82832 +--- + src/core/job.c | 11 +++++++++-- + src/systemctl/systemctl.c | 14 ++++++++++++-- + 2 files changed, 21 insertions(+), 4 deletions(-) + +diff --git src/core/job.c src/core/job.c +index 5e4987f..ef5dbce 100644 +--- src/core/job.c ++++ src/core/job.c +@@ -632,11 +632,18 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { + unit_status_printf(u, ANSI_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, format); + break; + +- case JOB_FAILED: ++ case JOB_FAILED: { ++ bool quotes; ++ ++ quotes = chars_intersect(u->id, SHELL_NEED_QUOTES); ++ + manager_flip_auto_status(u->manager, true); + unit_status_printf(u, ANSI_HIGHLIGHT_RED_ON "FAILED" ANSI_HIGHLIGHT_OFF, format); +- manager_status_printf(u->manager, false, NULL, "See 'systemctl status %s' for details.", u->id); ++ manager_status_printf(u->manager, false, NULL, ++ "See \"systemctl status %s%s%s\" for details.", ++ quotes ? "'" : "", u->id, quotes ? "'" : ""); + break; ++ } + + case JOB_DEPENDENCY: + manager_flip_auto_status(u->manager, true); +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 6534819..de43c87 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -2351,8 +2351,18 @@ static int check_wait_response(WaitData *d) { + log_error("Job for %s canceled.", strna(d->name)); + else if (streq(d->result, "dependency")) + log_error("A dependency job for %s failed. See 'journalctl -xn' for details.", strna(d->name)); +- else if (!streq(d->result, "done") && !streq(d->result, "skipped")) +- log_error("Job for %s failed. See 'systemctl status %s' and 'journalctl -xn' for details.", strna(d->name), strna(d->name)); ++ else if (!streq(d->result, "done") && !streq(d->result, "skipped")) { ++ if (d->name) { ++ bool quotes; ++ ++ quotes = chars_intersect(d->name, SHELL_NEED_QUOTES); ++ ++ log_error("Job for %s failed. See \"systemctl status %s%s%s\" and \"journalctl -xn\" for details.", ++ d->name, ++ quotes ? "'" : "", d->name, quotes ? "'" : ""); ++ } else ++ log_error("Job failed. See \"journalctl -xn\" for details."); ++ } + } + + if (streq(d->result, "timeout")) +-- +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 00000000..10ecbcfc --- /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/0003-analyze-fix-plot-with-bad-y-size.patch b/0003-analyze-fix-plot-with-bad-y-size.patch new file mode 100644 index 00000000..07761449 --- /dev/null +++ b/0003-analyze-fix-plot-with-bad-y-size.patch @@ -0,0 +1,31 @@ +From a213b7e977221ca96bbc1b19a5a879c912ba2488 Mon Sep 17 00:00:00 2001 +From: Jeffrey Clark +Date: Wed, 23 Apr 2014 22:37:43 +0200 +Subject: [PATCH] analyze: fix plot with bad y size + +systemd-analyze plot > test.svg produces output with all y and height +element attributes equal to zero. This of course causes the resulting +svg to appear blank (zero height). Bug does not affect x86. Looks like +a compiler optimization may be the culprit. + +https://github.com/archlinuxarm/PKGBUILDs/issues/815 +--- + src/analyze/analyze.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/analyze/analyze.c src/analyze/analyze.c +index ba236d9..ebaa9d0 100644 +--- src/analyze/analyze.c ++++ src/analyze/analyze.c +@@ -43,7 +43,7 @@ + #include "pager.h" + + #define SCALE_X (0.1 / 1000.0) /* pixels per us */ +-#define SCALE_Y 20.0 ++#define SCALE_Y (20.0) + + #define compare(a, b) (((a) > (b))? 1 : (((b) > (a))? -1 : 0)) + +-- +1.7.9.2 + diff --git a/0003-arch-add-crisv32-to-uname-check.patch b/0003-arch-add-crisv32-to-uname-check.patch new file mode 100644 index 00000000..c8a9e7f3 --- /dev/null +++ b/0003-arch-add-crisv32-to-uname-check.patch @@ -0,0 +1,24 @@ +From 9b3a0ba3e9e28382a1072bf0e2c07a3661432743 Mon Sep 17 00:00:00 2001 +From: Umut Tezduyar Lindskog +Date: Thu, 3 Jul 2014 09:54:45 +0200 +Subject: [PATCH] arch: add crisv32 to uname check + +--- + src/shared/architecture.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index 9e0c3ef..7dd049a 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -116,6 +116,7 @@ Architecture uname_architecture(void) { + { "tilegx", ARCHITECTURE_TILEGX }, + #elif defined(__cris__) + { "cris", ARCHITECTURE_CRIS }, ++ { "crisv32", ARCHITECTURE_CRIS }, + #else + #error "Please register your architecture here!" + #endif +-- +1.7.9.2 + diff --git a/0003-architecture-add-string-table-entries-for-mips-le-ar.patch b/0003-architecture-add-string-table-entries-for-mips-le-ar.patch new file mode 100644 index 00000000..c3944702 --- /dev/null +++ b/0003-architecture-add-string-table-entries-for-mips-le-ar.patch @@ -0,0 +1,52 @@ +Based on 037c26d0aeb750ca9c8d605884ea1db7baecfea8 Mon Sep 17 00:00:00 2001 +Based on 9a00f57a5ba7ed431e6bac8d8b36518708503b4e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 14:59:06 +0200 +Subject: [PATCH] architecture: add string table entries for mips-le archs + which were missing + +--- + src/shared/architecture.c | 2 ++ + src/shared/architecture.h | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git src/shared/architecture.c src/shared/architecture.c +index 6cdca4e..dc45f35 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -153,7 +153,9 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { + [ARCHITECTURE_SPARC] = "sparc", + [ARCHITECTURE_SPARC64] = "sparc64", + [ARCHITECTURE_MIPS] = "mips", ++ [ARCHITECTURE_MIPS_LE] = "mips-le", + [ARCHITECTURE_MIPS64] = "mips64", ++ [ARCHITECTURE_MIPS64_LE] = "mips64-le", + [ARCHITECTURE_ALPHA] = "alpha", + [ARCHITECTURE_ARM] = "arm", + [ARCHITECTURE_ARM_BE] = "arm-be", +diff --git src/shared/architecture.h src/shared/architecture.h +index 20e848b..0807924 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -23,6 +23,8 @@ + + #include "util.h" + ++/* A cleaned up architecture definition */ ++ + typedef enum Architecture { + ARCHITECTURE_X86 = 0, + ARCHITECTURE_X86_64, +@@ -38,7 +40,9 @@ typedef enum Architecture { + ARCHITECTURE_SPARC, + ARCHITECTURE_SPARC64, + ARCHITECTURE_MIPS, ++ ARCHITECTURE_MIPS_LE, + ARCHITECTURE_MIPS64, ++ ARCHITECTURE_MIPS64_LE, + ARCHITECTURE_ALPHA, + ARCHITECTURE_ARM, + ARCHITECTURE_ARM_BE, +-- +1.7.9.2 + diff --git a/0003-backlight-unify-error-messages.patch b/0003-backlight-unify-error-messages.patch new file mode 100644 index 00000000..452de616 --- /dev/null +++ b/0003-backlight-unify-error-messages.patch @@ -0,0 +1,115 @@ +Based on 938d2699d2e818bd996614e89ea3d668200ad2a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 7 Apr 2014 20:57:22 -0400 +Subject: [PATCH] backlight: unify error messages + +--- + src/backlight/backlight.c | 29 +++++++++++++++++++---------- + 1 file changed, 19 insertions(+), 10 deletions(-) + +--- src/backlight/backlight.c ++++ src/backlight/backlight.c 2014-05-12 13:31:50.502235843 +0000 +@@ -24,6 +24,7 @@ + #include "fileio.h" + #include "libudev.h" + #include "udev-util.h" ++#include "def.h" + + static struct udev_device *find_pci_or_platform_parent(struct udev_device *device) { + struct udev_device *parent; +@@ -50,7 +51,7 @@ static struct udev_device *find_pci_or_p + if (!c) + return NULL; + +- c += strspn(c, "0123456789"); ++ c += strspn(c, DIGITS); + if (*c == '-') { + /* A connector DRM device, let's ignore all but LVDS and eDP! */ + +@@ -67,7 +68,8 @@ static struct udev_device *find_pci_or_p + unsigned long class = 0; + + if (safe_atolu(value, &class) < 0) { +- log_warning("Cannot parse PCI class %s of device %s:%s.", value, subsystem, sysname); ++ log_warning("Cannot parse PCI class %s of device %s:%s.", ++ value, subsystem, sysname); + return NULL; + } + +@@ -175,7 +177,9 @@ static bool validate_device(struct udev + if (same_device(parent, other_parent)) { + /* Both have the same PCI parent, that means + * we are out. */ +- log_debug("Skipping backlight device %s, since backlight device %s is on same PCI device and, takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); ++ log_debug("Skipping backlight device %s, since device %s is on same PCI device and takes precedence.", ++ udev_device_get_sysname(device), ++ udev_device_get_sysname(other)); + return false; + } + +@@ -184,7 +188,9 @@ static bool validate_device(struct udev + /* The other is connected to the platform bus + * and we are a PCI device, that also means we + * are out. */ +- log_debug("Skipping backlight device %s, since backlight device %s is a platform device and takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); ++ log_debug("Skipping backlight device %s, since device %s is a platform device and takes precedence.", ++ udev_device_get_sysname(device), ++ udev_device_get_sysname(other)); + return false; + } + } +@@ -199,13 +205,14 @@ static unsigned get_max_brightness(struc + + max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); + if (!max_brightness_str) { +- log_warning("Failed to read max_brightness attribute"); ++ log_warning("Failed to read 'max_brightness' attribute"); + return 0; + } + + r = safe_atou(max_brightness_str, &max_brightness); + if (r < 0) { +- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); ++ log_warning("Failed to parse 'max_brightness' \"%s\": %s", ++ max_brightness_str, strerror(-r)); + return 0; + } + +@@ -262,7 +269,8 @@ int main(int argc, char *argv[]) { + + r = mkdir_p("/var/lib/systemd/backlight", 0755); + if (r < 0) { +- log_error("Failed to create backlight directory: %s", strerror(-r)); ++ log_error("Failed to create backlight directory /var/lib/systemd/backlight: %s", ++ strerror(-r)); + return EXIT_FAILURE; + } + +@@ -274,7 +282,7 @@ int main(int argc, char *argv[]) { + + sysname = strchr(argv[2], ':'); + if (!sysname) { +- log_error("Requires pair of subsystem and sysname for specifying backlight device."); ++ log_error("Requires a subsystem and sysname pair specifying a backlight device."); + return EXIT_FAILURE; + } + +@@ -368,7 +376,8 @@ int main(int argc, char *argv[]) { + + r = udev_device_set_sysattr_value(device, "brightness", value); + if (r < 0) { +- log_error("Failed to write system attribute: %s", strerror(-r)); ++ log_error("Failed to write system 'brightness' attribute: %s", ++ strerror(-r)); + return EXIT_FAILURE; + } + +@@ -382,7 +391,7 @@ int main(int argc, char *argv[]) { + + value = udev_device_get_sysattr_value(device, "brightness"); + if (!value) { +- log_error("Failed to read system attribute: %s", strerror(-r)); ++ log_error("Failed to read system 'brightness' attribute: %s", strerror(-r)); + return EXIT_FAILURE; + } + diff --git a/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch b/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch new file mode 100644 index 00000000..9796af4f --- /dev/null +++ b/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch @@ -0,0 +1,27 @@ +From 4155f7d4be5053d5f34a26e5437fd85e1fe00fa3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 11 Aug 2014 18:23:47 +0200 +Subject: [PATCH] bootchart: it's not OK to return -1 from a main program + +--- + src/bootchart/bootchart.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c +index c0e176d..8ef5ad1 100644 +--- src/bootchart/bootchart.c ++++ src/bootchart/bootchart.c +@@ -380,8 +380,8 @@ int main(int argc, char *argv[]) { + + sampledata = new0(struct list_sample_data, 1); + if (sampledata == NULL) { +- log_error("Failed to allocate memory for a node: %m"); +- return -1; ++ log_oom(); ++ return EXIT_FAILURE; + } + + sampledata->sampletime = gettime_ns(); +-- +1.7.9.2 + diff --git a/0003-bootchart-parse-userinput-with-safe_atoi.patch b/0003-bootchart-parse-userinput-with-safe_atoi.patch new file mode 100644 index 00000000..16378405 --- /dev/null +++ b/0003-bootchart-parse-userinput-with-safe_atoi.patch @@ -0,0 +1,34 @@ +From 9bcf7507fab6e6b022ae3cc7178237e6e0a09e9a Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 26 Sep 2014 21:41:02 +0200 +Subject: [PATCH] bootchart: parse userinput with safe_atoi + +Found by coverity. Fixes: CID#996409 +--- + src/bootchart/store.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git src/bootchart/store.c src/bootchart/store.c +index ed683e8..3099ff1 100644 +--- src/bootchart/store.c ++++ src/bootchart/store.c +@@ -192,12 +192,14 @@ vmstat_next: + + m = buf; + while (m) { ++ int r; ++ + if (sscanf(m, "%s %*s %*s %*s %*s %*s %*s %s %s", key, rt, wt) < 3) + goto schedstat_next; + + if (strstr(key, "cpu")) { +- c = atoi((const char*)(key+3)); +- if (c > MAXCPUS) ++ r = safe_atoi((const char*)(key+3), &c); ++ if (r < 0 || c > MAXCPUS) + /* Oops, we only have room for MAXCPUS data */ + break; + sampledata->runtime[c] = atoll(rt); +-- +1.7.9.2 + diff --git a/0003-busname-don-t-drop-service-from-the-result-string.patch b/0003-busname-don-t-drop-service-from-the-result-string.patch new file mode 100644 index 00000000..37b7bd5c --- /dev/null +++ b/0003-busname-don-t-drop-service-from-the-result-string.patch @@ -0,0 +1,25 @@ +From 700ff4d97311902a440109a2c081731ab6ae8a20 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 7 Mar 2014 17:29:16 +0100 +Subject: [PATCH] busname: don't drop 'service' from the result string + +--- + src/core/busname.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/busname.c src/core/busname.c +index 237011a..bca2145 100644 +--- src/core/busname.c ++++ src/core/busname.c +@@ -548,7 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); + static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { + [BUSNAME_SUCCESS] = "success", + [BUSNAME_FAILURE_RESOURCES] = "resources", +- [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", ++ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "service-failed-permanent", + }; + + DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); +-- +1.7.9.2 + diff --git a/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch b/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch new file mode 100644 index 00000000..8305035f --- /dev/null +++ b/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch @@ -0,0 +1,32 @@ +From d1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f Mon Sep 17 00:00:00 2001 +From: Ronan Le Martret +Date: Tue, 22 Apr 2014 10:33:25 +0200 +Subject: [PATCH] core: You can not put the cached result of use_smack fct, as + we are not sure the "/sys" is mounted. So we should mount + "sys" before "/proc" + +https://bugs.freedesktop.org/show_bug.cgi?id=77646 +--- + src/core/mount-setup.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index ae8447c..991bfdf 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -67,10 +67,10 @@ typedef struct MountPoint { + #define N_EARLY_MOUNT 5 + + static const MountPoint mount_table[] = { +- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +- NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_FATAL|MNT_IN_CONTAINER }, ++ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ++ NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, + NULL, MNT_FATAL|MNT_IN_CONTAINER }, + { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +-- +1.7.9.2 + diff --git a/0003-core-allow-transient-mount-units.patch b/0003-core-allow-transient-mount-units.patch new file mode 100644 index 00000000..607bdaea --- /dev/null +++ b/0003-core-allow-transient-mount-units.patch @@ -0,0 +1,115 @@ +From 0e252f6b375af59eac9bd6d2fe8dd6ee2f51998d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 6 Jun 2014 15:10:20 +0200 +Subject: [PATCH] core: allow transient mount units + +For now only What=, Options=, Type= are supported, and Where= is deduced +from the unit name. +--- + src/core/dbus-mount.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++- + src/core/mount.c | 2 ++ + 2 files changed, 65 insertions(+), 1 deletion(-) + +diff --git src/core/dbus-mount.c src/core/dbus-mount.c +index e64d3ea..e27019d 100644 +--- src/core/dbus-mount.c ++++ src/core/dbus-mount.c +@@ -124,6 +124,47 @@ const sd_bus_vtable bus_mount_vtable[] = { + SD_BUS_VTABLE_END + }; + ++static int bus_mount_set_transient_property( ++ Mount *m, ++ const char *name, ++ sd_bus_message *message, ++ UnitSetPropertiesMode mode, ++ sd_bus_error *error) { ++ ++ const char *new_property; ++ char **property; ++ char *p; ++ int r; ++ ++ assert(m); ++ assert(name); ++ assert(message); ++ ++ if (streq(name, "What")) ++ property = &m->parameters_fragment.what; ++ else if (streq(name, "Options")) ++ property = &m->parameters_fragment.options; ++ else if (streq(name, "Type")) ++ property = &m->parameters_fragment.fstype; ++ else ++ return 0; ++ ++ r = sd_bus_message_read(message, "s", &new_property); ++ if (r < 0) ++ return r; ++ ++ if (mode != UNIT_CHECK) { ++ p = strdup(new_property); ++ if (!p) ++ return -ENOMEM; ++ ++ free(*property); ++ *property = p; ++ } ++ ++ return 1; ++} ++ + int bus_mount_set_property( + Unit *u, + const char *name, +@@ -132,12 +173,33 @@ int bus_mount_set_property( + sd_bus_error *error) { + + Mount *m = MOUNT(u); ++ int r; + + assert(m); + assert(name); + assert(message); + +- return bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); ++ r = bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); ++ if (r != 0) ++ return r; ++ ++ if (u->transient && u->load_state == UNIT_STUB) { ++ /* This is a transient unit, let's load a little more */ ++ ++ r = bus_mount_set_transient_property(m, name, message, mode, error); ++ if (r != 0) ++ return r; ++ ++ r = bus_exec_context_set_transient_property(u, &m->exec_context, name, message, mode, error); ++ if (r != 0) ++ return r; ++ ++ r = bus_kill_context_set_transient_property(u, &m->kill_context, name, message, mode, error); ++ if (r != 0) ++ return r; ++ } ++ ++ return 0; + } + + int bus_mount_commit_properties(Unit *u) { +diff --git src/core/mount.c src/core/mount.c +index a979837..14ac0a0 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1819,6 +1819,8 @@ const UnitVTable mount_vtable = { + + .get_timeout = mount_get_timeout, + ++ .can_transient = true, ++ + .enumerate = mount_enumerate, + .shutdown = mount_shutdown, + +-- +1.7.9.2 + diff --git a/0003-core-make-sure-to-serialize-jobs-for-all-units.patch b/0003-core-make-sure-to-serialize-jobs-for-all-units.patch new file mode 100644 index 00000000..30c4615f --- /dev/null +++ b/0003-core-make-sure-to-serialize-jobs-for-all-units.patch @@ -0,0 +1,118 @@ +From 9bdb98c59451ed090f8d35d470a54710f389ce71 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 May 2014 01:15:03 +0200 +Subject: [PATCH] core: make sure to serialize jobs for all units + +Previously we wouldn't serialize jobs for units that themselves have +nothing to serialize. + +http://lists.freedesktop.org/archives/systemd-devel/2014-May/019051.html +--- + src/core/manager.c | 3 --- + src/core/unit.c | 43 +++++++++++++++++++++---------------------- + 2 files changed, 21 insertions(+), 25 deletions(-) + +diff --git src/core/manager.c src/core/manager.c +index 1e3e127..d0af674 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -2131,9 +2131,6 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) { + if (u->id != t) + continue; + +- if (!unit_can_serialize(u)) +- continue; +- + /* Start marker */ + fputs(u->id, f); + fputc('\n', f); +diff --git src/core/unit.c src/core/unit.c +index c4ed923..41651ba 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -2288,25 +2288,25 @@ bool unit_can_serialize(Unit *u) { + } + + int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs) { +- ExecRuntime *rt; + int r; + + assert(u); + assert(f); + assert(fds); + +- if (!unit_can_serialize(u)) +- return 0; +- +- r = UNIT_VTABLE(u)->serialize(u, f, fds); +- if (r < 0) +- return r; ++ if (unit_can_serialize(u)) { ++ ExecRuntime *rt; + +- rt = unit_get_exec_runtime(u); +- if (rt) { +- r = exec_runtime_serialize(rt, u, f, fds); ++ r = UNIT_VTABLE(u)->serialize(u, f, fds); + if (r < 0) + return r; ++ ++ rt = unit_get_exec_runtime(u); ++ if (rt) { ++ r = exec_runtime_serialize(rt, u, f, fds); ++ if (r < 0) ++ return r; ++ } + } + + dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); +@@ -2368,17 +2368,14 @@ void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value) { + } + + int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { +- size_t offset; + ExecRuntime **rt = NULL; ++ size_t offset; + int r; + + assert(u); + assert(f); + assert(fds); + +- if (!unit_can_serialize(u)) +- return 0; +- + offset = UNIT_VTABLE(u)->exec_runtime_offset; + if (offset > 0) + rt = (ExecRuntime**) ((uint8_t*) u + offset); +@@ -2503,17 +2500,19 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { + continue; + } + +- if (rt) { +- r = exec_runtime_deserialize_item(rt, u, l, v, fds); ++ if (unit_can_serialize(u)) { ++ if (rt) { ++ r = exec_runtime_deserialize_item(rt, u, l, v, fds); ++ if (r < 0) ++ return r; ++ if (r > 0) ++ continue; ++ } ++ ++ r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); + if (r < 0) + return r; +- if (r > 0) +- continue; + } +- +- r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); +- if (r < 0) +- return r; + } + } + +-- +1.7.9.2 + diff --git a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch new file mode 100644 index 00000000..74a3f0e8 --- /dev/null +++ b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch @@ -0,0 +1,113 @@ +From bcd816bd349241bcd9c0bfbfd9cfe7b034ba351b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 May 2014 16:49:12 +0900 +Subject: [PATCH] core: never consider failure when reading drop-ins fatal + +drop-ins don't carry the main configuration of a unit, hence read them +if we can't, complain if we cannot, but don't fail. +--- + src/core/load-dropin.c | 42 +++++++++++++----------------------------- + 1 file changed, 13 insertions(+), 29 deletions(-) + +Index: src/core/load-dropin.c +=================================================================== +--- src/core/load-dropin.c.orig ++++ src/core/load-dropin.c +@@ -58,6 +58,7 @@ static int iterate_dir( + if (errno == ENOENT) + return 0; + ++ log_error("Failed to open directory %s: %m", path); + return -errno; + } + +@@ -101,7 +102,6 @@ static int process_dir( + char ***strv) { + + _cleanup_free_ char *path = NULL; +- int r; + + assert(u); + assert(unit_path); +@@ -112,11 +112,8 @@ static int process_dir( + if (!path) + return log_oom(); + +- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) { +- r = iterate_dir(u, path, dependency, strv); +- if (r < 0) +- return r; +- } ++ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) ++ iterate_dir(u, path, dependency, strv); + + if (u->instance) { + _cleanup_free_ char *template = NULL, *p = NULL; +@@ -130,11 +127,8 @@ static int process_dir( + if (!p) + return log_oom(); + +- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) { +- r = iterate_dir(u, p, dependency, strv); +- if (r < 0) +- return r; +- } ++ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) ++ iterate_dir(u, p, dependency, strv); + } + + return 0; +@@ -152,12 +146,8 @@ char **unit_find_dropin_paths(Unit *u) { + SET_FOREACH(t, u->names, i) { + char **p; + +- STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { +- /* This loads the drop-in config snippets */ +- r = process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); +- if (r < 0) +- return NULL; +- } ++ STRV_FOREACH(p, u->manager->lookup_paths.unit_path) ++ process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); + } + + if (strv_isempty(strv)) +@@ -176,7 +166,6 @@ char **unit_find_dropin_paths(Unit *u) { + int unit_load_dropin(Unit *u) { + Iterator i; + char *t, **f; +- int r; + + assert(u); + +@@ -186,13 +175,8 @@ int unit_load_dropin(Unit *u) { + char **p; + + STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { +- r = process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); +- if (r < 0) +- return r; +- +- r = process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); +- if (r < 0) +- return r; ++ process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); ++ process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); + } + } + +@@ -201,11 +185,9 @@ int unit_load_dropin(Unit *u) { + return 0; + + STRV_FOREACH(f, u->dropin_paths) { +- r = config_parse(u->id, *f, NULL, +- UNIT_VTABLE(u)->sections, config_item_perf_lookup, +- (void*) load_fragment_gperf_lookup, false, false, u); +- if (r < 0) +- return r; ++ config_parse(u->id, *f, NULL, ++ UNIT_VTABLE(u)->sections, config_item_perf_lookup, ++ (void*) load_fragment_gperf_lookup, false, false, u); + } + + u->dropin_mtime = now(CLOCK_REALTIME); diff --git a/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch b/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch new file mode 100644 index 00000000..5a60b86b --- /dev/null +++ b/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch @@ -0,0 +1,30 @@ +From 18abe7bd3e13525b257da69ac49ff7841c289567 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Jul 2014 22:52:53 -0400 +Subject: [PATCH] core: nicer message when inotify watches are exhausted + +inotify_add_watch returns ENOSPC, which translates to +"No space left on device", which is misleading. + +https://bugs.freedesktop.org/show_bug.cgi?id=73628 +--- + src/core/path.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/core/path.c src/core/path.c +index 20e454d..f54c77f 100644 +--- src/core/path.c ++++ src/core/path.c +@@ -99,7 +99,8 @@ int path_spec_watch(PathSpec *s, sd_event_io_handler_t handler) { + break; + } + +- log_warning("Failed to add watch on %s: %m", s->path); ++ log_warning("Failed to add watch on %s: %s", s->path, ++ errno == ENOSPC ? "too many watches" : strerror(-r)); + r = -errno; + if (cut) + *cut = tmp; +-- +1.7.9.2 + diff --git a/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch b/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch new file mode 100644 index 00000000..5424ff1c --- /dev/null +++ b/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch @@ -0,0 +1,28 @@ +Based on 8a52210c9392887a31fdb2845f65b4c5869e8e66 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 24 Nov 2014 09:11:12 -0500 +Subject: [PATCH] cryptsetup: default to no hash when keyfile is specified + +For plain dm-crypt devices, the behavior of cryptsetup package is to +ignore the hash algorithm when a key file is provided. It seems wrong +to ignore a hash when it is explicitly specified, but we should default +to no hash if the keyfile is specified. + +https://bugs.freedesktop.org/show_bug.cgi?id=52630 +--- + src/cryptsetup/cryptsetup.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- src/cryptsetup/cryptsetup.c ++++ src/cryptsetup/cryptsetup.c 2014-12-15 12:00:17.554019752 +0000 +@@ -386,7 +386,9 @@ static int attach_luks_or_plain(struct c + /* plain isn't a real hash type. it just means "use no hash" */ + if (!streq(opt_hash, "plain")) + params.hash = opt_hash; +- } else ++ } else if (!key_file) ++ /* for CRYPT_PLAIN, the behaviour of cryptsetup ++ * package is to not hash when a key file is provided */ + params.hash = "ripemd160"; + + if (opt_cipher) { diff --git a/0003-delta-do-not-use-unicode-chars-in-C-locale.patch b/0003-delta-do-not-use-unicode-chars-in-C-locale.patch new file mode 100644 index 00000000..f7360178 --- /dev/null +++ b/0003-delta-do-not-use-unicode-chars-in-C-locale.patch @@ -0,0 +1,134 @@ +From 00a5cc3a63c125633e822f39efd9c32223169f62 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Apr 2014 23:33:41 -0400 +Subject: [PATCH] delta: do not use unicode chars in C locale + +https://bugzilla.redhat.com/show_bug.cgi?id=1088418 +--- + src/delta/delta.c | 40 +++++++++++++++++++++++++--------------- + 1 file changed, 25 insertions(+), 15 deletions(-) + +diff --git src/delta/delta.c src/delta/delta.c +index 369f8f8..8fc37c5 100644 +--- src/delta/delta.c ++++ src/delta/delta.c +@@ -85,6 +85,10 @@ static void pager_open_if_enabled(void) { + pager_open(false); + } + ++static inline const char* arrow(void) { ++ return is_locale_utf8() ? "→" : "->"; ++} ++ + static int equivalent(const char *a, const char *b) { + _cleanup_free_ char *x = NULL, *y = NULL; + +@@ -103,8 +107,9 @@ static int notify_override_masked(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_MASKED)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -112,8 +117,9 @@ static int notify_override_equivalent(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_EQUIVALENT)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -121,8 +127,9 @@ static int notify_override_redirected(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_REDIRECTED)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -130,8 +137,9 @@ static int notify_override_overridden(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_OVERRIDDEN)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -139,8 +147,9 @@ static int notify_override_extended(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_EXTENDED)) + return 0; + +- printf("%s%s%s %s → %s\n", +- ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom); ++ printf("%s%s%s %s %s %s\n", ++ ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), ++ top, arrow(), bottom); + return 1; + } + +@@ -241,7 +250,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const + return -ENOMEM; + d = p + strlen(toppath) + 1; + +- log_debug("Adding at top: %s → %s", d, p); ++ log_debug("Adding at top: %s %s %s", d, arrow(), p); + k = hashmap_put(top, d, p); + if (k >= 0) { + p = strdup(p); +@@ -253,7 +262,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const + return k; + } + +- log_debug("Adding at bottom: %s → %s", d, p); ++ log_debug("Adding at bottom: %s %s %s", d, arrow(), p); + free(hashmap_remove(bottom, d)); + k = hashmap_put(bottom, d, p); + if (k < 0) { +@@ -276,7 +285,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const + if (!p) + return -ENOMEM; + +- log_debug("Adding to drops: %s → %s → %s", unit, basename(p), p); ++ log_debug("Adding to drops: %s %s %s %s %s", ++ unit, arrow(), basename(p), arrow(), p); + k = hashmap_put(h, basename(p), p); + if (k < 0) { + free(p); +@@ -328,7 +338,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch + if (!p) + return -ENOMEM; + +- log_debug("Adding at top: %s → %s", basename(p), p); ++ log_debug("Adding at top: %s %s %s", basename(p), arrow(), p); + k = hashmap_put(top, basename(p), p); + if (k >= 0) { + p = strdup(p); +@@ -339,7 +349,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch + return k; + } + +- log_debug("Adding at bottom: %s → %s", basename(p), p); ++ log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p); + free(hashmap_remove(bottom, basename(p))); + k = hashmap_put(bottom, basename(p), p); + if (k < 0) { +-- +1.7.9.2 + diff --git a/0003-fileio-label-return-error-when-writing-fails.patch b/0003-fileio-label-return-error-when-writing-fails.patch new file mode 100644 index 00000000..91ea97d9 --- /dev/null +++ b/0003-fileio-label-return-error-when-writing-fails.patch @@ -0,0 +1,30 @@ +Based on 754fc0c720eb998b8e47e695c12807ced0ff3602 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Oct 2014 08:58:40 -0400 +Subject: [PATCH] fileio-label: return error when writing fails + +The status of actually writing the file was totally ignored. +--- + src/shared/fileio-label.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/shared/fileio-label.c ++++ src/shared/fileio-label.c 2014-10-14 14:52:50.883837740 +0000 +@@ -33,7 +33,7 @@ int write_string_file_atomic_label(const + if (r < 0) + return r; + +- write_string_file_atomic(fn, line); ++ r = write_string_file_atomic(fn, line); + + label_context_clear(); + +@@ -47,7 +47,7 @@ int write_env_file_label(const char *fna + if (r < 0) + return r; + +- write_env_file(fname, l); ++ r = write_env_file(fname, l); + + label_context_clear(); + diff --git a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch new file mode 100644 index 00000000..27bfc4e6 --- /dev/null +++ b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch @@ -0,0 +1,110 @@ +Based on 571d0134bd464444567cf4eb0d2ed8df40045f36 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 24 Jun 2014 19:37:22 +0200 +Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true + non-existant + +--- + src/fsck/fsck.c | 32 ++++++++++++++++++++++---------- + src/shared/path-util.c | 26 +++++++++++++++----------- + 2 files changed, 37 insertions(+), 21 deletions(-) + +Index: src/fsck/fsck.c +=================================================================== +--- src/fsck/fsck.c.orig ++++ src/fsck/fsck.c +@@ -37,6 +37,7 @@ + #include "bus-errors.h" + #include "fileio.h" + #include "udev-util.h" ++#include "path-util.h" + + static bool arg_skip = false; + static bool arg_force = false; +@@ -280,16 +281,28 @@ int main(int argc, char *argv[]) { + + type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); + if (type) { +- const char *checker = strappenda("/sbin/fsck.", type); +- r = access(checker, X_OK); +- if (r < 0) { +- if (errno == ENOENT) { +- log_info("%s doesn't exist, not checking file system on %s", +- checker, device); +- return EXIT_SUCCESS; +- } else +- log_warning("%s cannot be used for %s: %m", +- checker, device); ++ _cleanup_free_ char *p = NULL, *d = NULL; ++ const char *checker = strappenda("fsck.", type); ++ r = find_binary(checker, &p); ++ if (r == -ENOENT) { ++ log_info("fsck.%s doesn't exist, not checking file system on %s", ++ type, device); ++ return EXIT_SUCCESS; ++ } else if (r < 0) { ++ log_warning("fsck.%s cannot be used for %s: %m", ++ type, device); ++ return r; ++ } ++ ++ /* An fsck that is linked to /bin/true is a non-existant fsck */ ++ r = readlink_malloc(p, &d); ++ if (r >= 0 && ++ (path_equal(d, "/bin/true") || ++ path_equal(d, "/usr/bin/true") || ++ path_equal(d, "/dev/null"))) { ++ log_info("fsck.%s doesn't exist, not checking file system on %s", ++ type, device); ++ return EXIT_SUCCESS; + } + } + +Index: src/shared/path-util.c +=================================================================== +--- src/shared/path-util.c.orig ++++ src/shared/path-util.c +@@ -425,19 +425,21 @@ int path_is_os_tree(const char *path) { + + int find_binary(const char *name, char **filename) { + assert(name); +- assert(filename); + +- if (strchr(name, '/')) { +- char *p; ++ if (is_path(name)) { ++ if (access(name, X_OK) < 0) ++ return -errno; ++ ++ if (filename) { ++ char *p; + +- if (path_is_absolute(name)) +- p = strdup(name); +- else + p = path_make_absolute_cwd(name); +- if (!p) +- return -ENOMEM; ++ if (!p) ++ return -ENOMEM; ++ ++ *filename = p; ++ } + +- *filename = p; + return 0; + } else { + const char *path; +@@ -463,8 +465,10 @@ int find_binary(const char *name, char * + continue; + } + +- path_kill_slashes(p); +- *filename = p; ++ if (filename) { ++ path_kill_slashes(p); ++ *filename = p; ++ } + + return 0; + } diff --git a/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch b/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch new file mode 100644 index 00000000..6515929b --- /dev/null +++ b/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch @@ -0,0 +1,51583 @@ +Based on d060b62fcb4746d3758c567e9379c6728a035b66 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 14 Apr 2014 07:54:35 -0700 +Subject: [PATCH] hwdb: PCI - include "primary" model string in subsystem + model string + +The data in the PCI ids file is randomly inconsistent. Many +subvendor model strings just describe the "product" where the +hardware is built into, not the hardware itself. This causes +some "Network Card Model Foo" to show up as "Laptop Model Bar". + +Try to make the best out of this mess and concatenate both +strings to describe the hardware. +--- + hwdb/20-pci-vendor-model.hwdb |21356 +++++++++++++++++++++--------------------- + 1 file changed, 10678 insertions(+), 10678 deletions(-) + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index d54cb2a..14637d3 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -15,10 +15,10 @@ pci:v0000001Cd00000001* + ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller + + pci:v0000001Cd00000001sv0000001Csd00000004* +- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 ++ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000) + + pci:v0000001Cd00000001sv0000001Csd00000005* +- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 (Optically Isolated) ++ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000 (Optically Isolated)) + + pci:v0000003D* + ID_VENDOR_FROM_DATABASE=Lockheed Martin-Marietta Corp +@@ -189,19 +189,19 @@ pci:v00000E11d00000046* + ID_MODEL_FROM_DATABASE=Smart Array 64xx + + pci:v00000E11d00000046sv00000E11sd00004091* +- ID_MODEL_FROM_DATABASE=Smart Array 6i ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6i) + + pci:v00000E11d00000046sv00000E11sd0000409A* +- ID_MODEL_FROM_DATABASE=Smart Array 641 ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 641) + + pci:v00000E11d00000046sv00000E11sd0000409B* +- ID_MODEL_FROM_DATABASE=Smart Array 642 ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 642) + + pci:v00000E11d00000046sv00000E11sd0000409C* +- ID_MODEL_FROM_DATABASE=Smart Array 6400 ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400) + + pci:v00000E11d00000046sv00000E11sd0000409D* +- ID_MODEL_FROM_DATABASE=Smart Array 6400 EM ++ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400 EM) + + pci:v00000E11d00000049* + ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module +@@ -321,7 +321,7 @@ pci:v00000E11d0000A0F0* + ID_MODEL_FROM_DATABASE=Advanced System Management Controller + + pci:v00000E11d0000A0F0sv00000E11sd0000B0F3* +- ID_MODEL_FROM_DATABASE=ProLiant DL360 ++ ID_MODEL_FROM_DATABASE=Advanced System Management Controller (ProLiant DL360) + + pci:v00000E11d0000A0F3* + ID_MODEL_FROM_DATABASE=Triflex PCI to ISA Bridge +@@ -330,10 +330,10 @@ pci:v00000E11d0000A0F7* + ID_MODEL_FROM_DATABASE=PCI Hotplug Controller + + pci:v00000E11d0000A0F7sv00008086sd0000002A* +- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller A ++ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (A) + + pci:v00000E11d0000A0F7sv00008086sd0000002B* +- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller B ++ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (B) + + pci:v00000E11d0000A0F8* + ID_MODEL_FROM_DATABASE=ZFMicro Chipset USB +@@ -345,19 +345,19 @@ pci:v00000E11d0000AE10* + ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller + + pci:v00000E11d0000AE10sv00000E11sd00004030* +- ID_MODEL_FROM_DATABASE=Smart-2/P Array Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2/P Array Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004031* +- ID_MODEL_FROM_DATABASE=Smart-2SL Array Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2SL Array Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004032* +- ID_MODEL_FROM_DATABASE=Smart Array 3200 Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3200 Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004033* +- ID_MODEL_FROM_DATABASE=Smart Array 3100ES Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3100ES Controller) + + pci:v00000E11d0000AE10sv00000E11sd00004034* +- ID_MODEL_FROM_DATABASE=Smart Array 221 Controller ++ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 221 Controller) + + pci:v00000E11d0000AE29* + ID_MODEL_FROM_DATABASE=MIS-L +@@ -468,13 +468,13 @@ pci:v00000E11d0000B178* + ID_MODEL_FROM_DATABASE=Smart Array 5i/532 + + pci:v00000E11d0000B178sv00000E11sd00004080* +- ID_MODEL_FROM_DATABASE=Smart Array 5i ++ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5i) + + pci:v00000E11d0000B178sv00000E11sd00004082* +- ID_MODEL_FROM_DATABASE=Smart Array 532 ++ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 532) + + pci:v00000E11d0000B178sv00000E11sd00004083* +- ID_MODEL_FROM_DATABASE=Smart Array 5312 ++ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5312) + + pci:v00000E11d0000B1A4* + ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter +@@ -516,7 +516,7 @@ pci:v00001000d00000001* + ID_MODEL_FROM_DATABASE=53c810 + + pci:v00001000d00000001sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C810AE PCI to SCSI I/O Processor ++ ID_MODEL_FROM_DATABASE=53c810 (LSI53C810AE PCI to SCSI I/O Processor) + + pci:v00001000d00000002* + ID_MODEL_FROM_DATABASE=53c820 +@@ -525,7 +525,7 @@ pci:v00001000d00000003* + ID_MODEL_FROM_DATABASE=53c825 + + pci:v00001000d00000003sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide) ++ ID_MODEL_FROM_DATABASE=53c825 (LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide)) + + pci:v00001000d00000004* + ID_MODEL_FROM_DATABASE=53c815 +@@ -537,49 +537,49 @@ pci:v00001000d00000006* + ID_MODEL_FROM_DATABASE=53c860 + + pci:v00001000d00000006sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C860E PCI to Ultra SCSI I/O Processor ++ ID_MODEL_FROM_DATABASE=53c860 (LSI53C860E PCI to Ultra SCSI I/O Processor) + + pci:v00001000d0000000A* + ID_MODEL_FROM_DATABASE=53c1510 + + pci:v00001000d0000000Asv00000E11sd0000B143* +- ID_MODEL_FROM_DATABASE=Integrated Dual Channel Wide Ultra2 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1510 (Integrated Dual Channel Wide Ultra2 SCSI Controller) + + pci:v00001000d0000000Asv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode) ++ ID_MODEL_FROM_DATABASE=53c1510 (LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode)) + + pci:v00001000d0000000B* + ID_MODEL_FROM_DATABASE=53C896/897 + + pci:v00001000d0000000Bsv00000E11sd00006004* +- ID_MODEL_FROM_DATABASE=EOB003 Series SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53C896/897 (EOB003 Series SCSI host adapter) + + pci:v00001000d0000000Bsv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller ++ ID_MODEL_FROM_DATABASE=53C896/897 (LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller) + + pci:v00001000d0000000Bsv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53C896/897 (LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter) + + pci:v00001000d0000000Bsv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53C896/897 (LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter) + + pci:v00001000d0000000Bsv000013E9sd00001000* +- ID_MODEL_FROM_DATABASE=6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics) ++ ID_MODEL_FROM_DATABASE=53C896/897 (6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics)) + + pci:v00001000d0000000C* + ID_MODEL_FROM_DATABASE=53c895 + + pci:v00001000d0000000Csv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=LSI8951U PCI to Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c895 (LSI8951U PCI to Ultra2 SCSI host adapter) + + pci:v00001000d0000000Csv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=LSI8952U PCI to Ultra2 SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c895 (LSI8952U PCI to Ultra2 SCSI host adapter) + + pci:v00001000d0000000Csv00001DE1sd00003906* +- ID_MODEL_FROM_DATABASE=DC-390U2B SCSI adapter ++ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2B SCSI adapter) + + pci:v00001000d0000000Csv00001DE1sd00003907* +- ID_MODEL_FROM_DATABASE=DC-390U2W ++ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2W) + + pci:v00001000d0000000D* + ID_MODEL_FROM_DATABASE=53c885 +@@ -588,151 +588,151 @@ pci:v00001000d0000000F* + ID_MODEL_FROM_DATABASE=53c875 + + pci:v00001000d0000000Fsv00000E11sd00007004* +- ID_MODEL_FROM_DATABASE=Embedded Ultra Wide SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875 (Embedded Ultra Wide SCSI Controller) + + pci:v00001000d0000000Fsv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C876/E PCI to Dual Channel SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875 (LSI53C876/E PCI to Dual Channel SCSI Controller) + + pci:v00001000d0000000Fsv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=LSI22801 PCI to Dual Channel Ultra SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c875 (LSI22801 PCI to Dual Channel Ultra SCSI host adapter) + + pci:v00001000d0000000Fsv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=LSI22802 PCI to Dual Channel Ultra SCSI host adapter ++ ID_MODEL_FROM_DATABASE=53c875 (LSI22802 PCI to Dual Channel Ultra SCSI host adapter) + + pci:v00001000d0000000Fsv00001092sd00008760* +- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875 (FirePort 40 Dual SCSI Controller) + + pci:v00001000d0000000Fsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Wide Ultra SCSI ++ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Wide Ultra SCSI) + + pci:v00001000d0000000Fsv00001775sd000010D1* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Ultra SCSI ++ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Ultra SCSI) + + pci:v00001000d0000000Fsv00001DE1sd00003904* +- ID_MODEL_FROM_DATABASE=DC390F/U Ultra Wide SCSI Adapter ++ ID_MODEL_FROM_DATABASE=53c875 (DC390F/U Ultra Wide SCSI Adapter) + + pci:v00001000d0000000Fsv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=53c875 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00001000d0000000Fsv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=53c875 (CT7 mainboard) + + pci:v00001000d00000010* + ID_MODEL_FROM_DATABASE=53C1510 + + pci:v00001000d00000010sv00000E11sd00004040* +- ID_MODEL_FROM_DATABASE=Integrated Smart Array Controller ++ ID_MODEL_FROM_DATABASE=53C1510 (Integrated Smart Array Controller) + + pci:v00001000d00000010sv00000E11sd00004048* +- ID_MODEL_FROM_DATABASE=RAID LC2 Controller ++ ID_MODEL_FROM_DATABASE=53C1510 (RAID LC2 Controller) + + pci:v00001000d00000010sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode) ++ ID_MODEL_FROM_DATABASE=53C1510 (PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)) + + pci:v00001000d00000012* + ID_MODEL_FROM_DATABASE=53c895a + + pci:v00001000d00000012sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C895A PCI to Ultra2 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c895a (LSI53C895A PCI to Ultra2 SCSI Controller) + + pci:v00001000d00000013* + ID_MODEL_FROM_DATABASE=53c875a + + pci:v00001000d00000013sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C875A PCI to Ultra SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875a (LSI53C875A PCI to Ultra SCSI Controller) + + pci:v00001000d00000020* + ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter + + pci:v00001000d00000020sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller) + + pci:v00001000d00000020sv0000107Bsd00001040* +- ID_MODEL_FROM_DATABASE=Server Onboard 53C1010-33 ++ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (Server Onboard 53C1010-33) + + pci:v00001000d00000020sv00001DE1sd00001020* +- ID_MODEL_FROM_DATABASE=DC-390U3W ++ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (DC-390U3W) + + pci:v00001000d00000021* + ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter + + pci:v00001000d00000021sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller) + + pci:v00001000d00000021sv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=Asus TR-DLS onboard 53C1010-66 ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Asus TR-DLS onboard 53C1010-66) + + pci:v00001000d00000021sv0000103Csd00001300* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [AB306A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [AB306A]) + + pci:v00001000d00000021sv0000103Csd00001310* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A9918A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A9918A]) + + pci:v00001000d00000021sv0000103Csd00001330* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7059A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7059A]) + + pci:v00001000d00000021sv0000103Csd00001340* +- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7060A] ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7060A]) + + pci:v00001000d00000021sv0000124Bsd00001070* +- ID_MODEL_FROM_DATABASE=PMC-USCSI3 ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (PMC-USCSI3) + + pci:v00001000d00000021sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (CT8 mainboard) + + pci:v00001000d00000021sv00004C53sd00001300* +- ID_MODEL_FROM_DATABASE=P017 mezzanine (32-bit PMC) ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (32-bit PMC)) + + pci:v00001000d00000021sv00004C53sd00001310* +- ID_MODEL_FROM_DATABASE=P017 mezzanine (64-bit PMC) ++ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (64-bit PMC)) + + pci:v00001000d0000002F* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] + + pci:v00001000d0000002Fsv00001028sd00001F3E* +- ID_MODEL_FROM_DATABASE=SPERC 8 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] (SPERC 8) + + pci:v00001000d00000030* + ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI + + pci:v00001000d00000030sv00000E11sd000000DA* +- ID_MODEL_FROM_DATABASE=ProLiant ML 350 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (ProLiant ML 350) + + pci:v00001000d00000030sv00001028sd00000123* +- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) + + pci:v00001000d00000030sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) + + pci:v00001000d00000030sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4) ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4)) + + pci:v00001000d00000030sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) + + pci:v00001000d00000030sv00001028sd0000018A* +- ID_MODEL_FROM_DATABASE=PERC 4/IM ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PERC 4/IM) + + pci:v00001000d00000030sv00001028sd00001010* +- ID_MODEL_FROM_DATABASE=LSI U320 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI U320 SCSI Controller) + + pci:v00001000d00000030sv0000103Csd000012C5* +- ID_MODEL_FROM_DATABASE=Ultra320 SCSI [A7173A] ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Ultra320 SCSI [A7173A]) + + pci:v00001000d00000030sv0000103Csd00001323* +- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Core I/O LAN/SCSI Combo [AB314A]) + + pci:v00001000d00000030sv0000103Csd00003108* +- ID_MODEL_FROM_DATABASE=Single Channel Ultra320 SCSI HBA G2 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Single Channel Ultra320 SCSI HBA G2) + + pci:v00001000d00000030sv0000124Bsd00001170* +- ID_MODEL_FROM_DATABASE=PMC-USCSI320 ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PMC-USCSI320) + + pci:v00001000d00000030sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=LSI Logic Parallel SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic Parallel SCSI Controller) + + pci:v00001000d00000030sv00001734sd00001052* +- ID_MODEL_FROM_DATABASE=PRIMERGY BX/RX/TX S2 series onboard SCSI(IME) ++ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PRIMERGY BX/RX/TX S2 series onboard SCSI(IME)) + + pci:v00001000d00000031* + ID_MODEL_FROM_DATABASE=53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI +@@ -741,7 +741,7 @@ pci:v00001000d00000032* + ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI + + pci:v00001000d00000032sv00001000sd00001000* +- ID_MODEL_FROM_DATABASE=LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller) + + pci:v00001000d00000033* + ID_MODEL_FROM_DATABASE=1030ZC_53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI +@@ -750,10 +750,10 @@ pci:v00001000d00000040* + ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI + + pci:v00001000d00000040sv00001000sd00000033* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XR ++ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XR) + + pci:v00001000d00000040sv00001000sd00000066* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XRWS ++ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XRWS) + + pci:v00001000d00000041* + ID_MODEL_FROM_DATABASE=53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI +@@ -762,73 +762,73 @@ pci:v00001000d00000050* + ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS + + pci:v00001000d00000050sv00001028sd00001F04* +- ID_MODEL_FROM_DATABASE=SAS 5/E ++ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5/E) + + pci:v00001000d00000050sv00001028sd00001F09* +- ID_MODEL_FROM_DATABASE=SAS 5i/R ++ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5i/R) + + pci:v00001000d00000054* + ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS + + pci:v00001000d00000054sv00001028sd00001F04* +- ID_MODEL_FROM_DATABASE=SAS 5/E Adapter Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/E Adapter Controller) + + pci:v00001000d00000054sv00001028sd00001F05* +- ID_MODEL_FROM_DATABASE=SAS 5/i Adapter Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Adapter Controller) + + pci:v00001000d00000054sv00001028sd00001F06* +- ID_MODEL_FROM_DATABASE=SAS 5/i Integrated Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Integrated Controller) + + pci:v00001000d00000054sv00001028sd00001F07* +- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) + + pci:v00001000d00000054sv00001028sd00001F08* +- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) + + pci:v00001000d00000054sv00001028sd00001F09* +- ID_MODEL_FROM_DATABASE=SAS 5/iR Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Adapter RAID Controller) + + pci:v00001000d00000054sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=SAS Controller ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS Controller) + + pci:v00001000d00000055* + ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS + + pci:v00001000d00000055sv00001033sd00008336* +- ID_MODEL_FROM_DATABASE=SAS1068 ++ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS1068) + + pci:v00001000d00000056* + ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS + + pci:v00001000d00000056sv00001014sd000003BB* +- ID_MODEL_FROM_DATABASE=ServeRAID BR10il SAS/SATA Controller v2 ++ ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS (ServeRAID BR10il SAS/SATA Controller v2) + + pci:v00001000d00000057* + ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS + + pci:v00001000d00000057sv00008086sd0000346C* +- ID_MODEL_FROM_DATABASE=Embedded Software RAID Technology II (ESTRII) ++ ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS (Embedded Software RAID Technology II (ESTRII)) + + pci:v00001000d00000058* + ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS + + pci:v00001000d00000058sv00001000sd00003140* +- ID_MODEL_FROM_DATABASE=SAS3081E-R 8-Port SAS/SATA Host Bus Adapter ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS3081E-R 8-Port SAS/SATA Host Bus Adapter) + + pci:v00001000d00000058sv00001028sd0000021D* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Workstations RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Workstations RAID Controller) + + pci:v00001000d00000058sv00001028sd00001F0E* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Adapter RAID Controller) + + pci:v00001000d00000058sv00001028sd00001F0F* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Blades RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Blades RAID Controller) + + pci:v00001000d00000058sv00001028sd00001F10* +- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated RAID Controller) + + pci:v00001000d00000058sv0000103Csd00003229* +- ID_MODEL_FROM_DATABASE=SC44Ge Host Bus Adapter ++ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SC44Ge Host Bus Adapter) + + pci:v00001000d00000059* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 8208ELP/8208ELP +@@ -840,97 +840,97 @@ pci:v00001000d0000005B* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] + + pci:v00001000d0000005Bsv00001000sd00009265* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265-8i) + + pci:v00001000d0000005Bsv00001000sd00009266* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-8i) + + pci:v00001000d0000005Bsv00001000sd00009267* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9267-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9267-8i) + + pci:v00001000d0000005Bsv00001000sd00009268* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265CV-8i / 9270CV-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265CV-8i / 9270CV-8i) + + pci:v00001000d0000005Bsv00001000sd00009269* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-4i) + + pci:v00001000d0000005Bsv00001000sd00009270* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-8i) + + pci:v00001000d0000005Bsv00001000sd00009271* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8i) + + pci:v00001000d0000005Bsv00001000sd00009272* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9272-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9272-8i) + + pci:v00001000d0000005Bsv00001000sd00009273* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270CV-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270CV-8i) + + pci:v00001000d0000005Bsv00001000sd00009274* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-4i) + + pci:v00001000d0000005Bsv00001000sd00009275* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8iCC ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8iCC) + + pci:v00001000d0000005Bsv00001000sd00009276* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-4i) + + pci:v00001000d0000005Bsv00001000sd00009285* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285-8e) + + pci:v00001000d0000005Bsv00001000sd00009288* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285CV-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285CV-8e) + + pci:v00001000d0000005Bsv00001000sd00009290* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286-8e) + + pci:v00001000d0000005Bsv00001000sd00009291* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8e) + + pci:v00001000d0000005Bsv00001000sd00009295* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8eCC ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8eCC) + + pci:v00001000d0000005Bsv00001014sd0000040B* +- ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110 SAS/SATA Controller) + + pci:v00001000d0000005Bsv00001014sd0000040C* +- ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5120 SAS/SATA Controller) + + pci:v00001000d0000005Bsv00001014sd00000412* +- ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110e SAS/SATA Controller) + + pci:v00001000d0000005Bsv00001028sd00001F2D* +- ID_MODEL_FROM_DATABASE=PERC H810 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H810 Adapter) + + pci:v00001000d0000005Bsv00001028sd00001F30* +- ID_MODEL_FROM_DATABASE=PERC H710 Embedded ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Embedded) + + pci:v00001000d0000005Bsv00001028sd00001F31* +- ID_MODEL_FROM_DATABASE=PERC H710P Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Adapter) + + pci:v00001000d0000005Bsv00001028sd00001F33* +- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for blades)) + + pci:v00001000d0000005Bsv00001028sd00001F34* +- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for monolithics) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for monolithics)) + + pci:v00001000d0000005Bsv00001028sd00001F35* +- ID_MODEL_FROM_DATABASE=PERC H710 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Adapter) + + pci:v00001000d0000005Bsv00001028sd00001F37* +- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for blades)) + + pci:v00001000d0000005Bsv00001028sd00001F38* +- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for monolithics)) + + pci:v00001000d0000005Bsv000015D9sd00000690* +- ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (LSI MegaRAID ROMB) + + pci:v00001000d0000005Bsv00008086sd00003510* +- ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25PB080 RAID Controller) + + pci:v00001000d0000005Bsv00008086sd00003513* +- ID_MODEL_FROM_DATABASE=RMS25CB080 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25CB080 RAID Controller) + + pci:v00001000d0000005C* + ID_MODEL_FROM_DATABASE=SAS1064A PCI-X Fusion-MPT SAS +@@ -939,31 +939,31 @@ pci:v00001000d0000005D* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] + + pci:v00001000d0000005Dsv00001028sd00001F41* +- ID_MODEL_FROM_DATABASE=PERC H830 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H830 Adapter) + + pci:v00001000d0000005Dsv00001028sd00001F42* +- ID_MODEL_FROM_DATABASE=PERC H730P Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Adapter) + + pci:v00001000d0000005Dsv00001028sd00001F43* +- ID_MODEL_FROM_DATABASE=PERC H730 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Adapter) + + pci:v00001000d0000005Dsv00001028sd00001F47* +- ID_MODEL_FROM_DATABASE=PERC H730P Mini ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini) + + pci:v00001000d0000005Dsv00001028sd00001F48* +- ID_MODEL_FROM_DATABASE=PERC H730P Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini (for blades)) + + pci:v00001000d0000005Dsv00001028sd00001F49* +- ID_MODEL_FROM_DATABASE=PERC H730 Mini ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini) + + pci:v00001000d0000005Dsv00001028sd00001F4A* +- ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) + + pci:v00001000d0000005Dsv000017AAsd00001052* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) + + pci:v00001000d0000005Dsv000017AAsd00001053* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720ix) + + pci:v00001000d0000005E* + ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS +@@ -972,109 +972,109 @@ pci:v00001000d0000005F* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] + + pci:v00001000d0000005Fsv00001028sd00001F44* +- ID_MODEL_FROM_DATABASE=PERC H330 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Adapter) + + pci:v00001000d0000005Fsv00001028sd00001F4B* +- ID_MODEL_FROM_DATABASE=PERC H330 Mini ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini) + + pci:v00001000d0000005Fsv00001028sd00001F4C* +- ID_MODEL_FROM_DATABASE=PERC H330 Mini (for blades) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini (for blades)) + + pci:v00001000d0000005Fsv00001028sd00001F4D* +- ID_MODEL_FROM_DATABASE=PERC H330 Embedded (for monolithic) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Embedded (for monolithic)) + + pci:v00001000d00000060* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 + + pci:v00001000d00000060sv00001000sd00001006* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8888ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8888ELP) + + pci:v00001000d00000060sv00001000sd0000100A* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708ELP) + + pci:v00001000d00000060sv00001000sd0000100E* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8884E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8884E) + + pci:v00001000d00000060sv00001000sd0000100F* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708E) + + pci:v00001000d00000060sv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-8ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-8ELP) + + pci:v00001000d00000060sv00001000sd00001011* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-4ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-4ELP) + + pci:v00001000d00000060sv00001000sd00001012* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8704ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8704ELP) + + pci:v00001000d00000060sv00001000sd00001016* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8880EM2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8880EM2) + + pci:v00001000d00000060sv00001014sd00000363* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001014sd00000364* +- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8808E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8808E) + + pci:v00001000d00000060sv00001014sd00000365* +- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8884E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8884E) + + pci:v00001000d00000060sv00001014sd00000379* +- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8880EM2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8880EM2) + + pci:v00001000d00000060sv00001028sd00001F0A* +- ID_MODEL_FROM_DATABASE=PERC 6/E Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/E Adapter RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F0B* +- ID_MODEL_FROM_DATABASE=PERC 6/i Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Adapter RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F0C* +- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F0D* +- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) + + pci:v00001000d00000060sv00001028sd00001F11* +- ID_MODEL_FROM_DATABASE=CERC 6/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (CERC 6/i Integrated RAID Controller) + + pci:v00001000d00000060sv00001033sd0000835A* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001043sd0000824D* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001170sd0000002F* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00001170sd00000036* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv000015D9sd0000C080* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv000017AAsd00006B7C* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv000018A1sd00000003* +- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (LSI MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000060sv00008086sd00001006* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EP) + + pci:v00001000d00000060sv00008086sd0000100A* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EV ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EV) + + pci:v00001000d00000060sv00008086sd00001010* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSATA28E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSATA28E) + + pci:v00001000d00000060sv00008086sd000034CC* +- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) + + pci:v00001000d00000060sv00008086sd000034CD* +- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) + + pci:v00001000d00000060sv00008086sd00003505* +- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSASMP2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSASMP2) + + pci:v00001000d00000062* + ID_MODEL_FROM_DATABASE=SAS1078 PCI-Express Fusion-MPT SAS +@@ -1101,100 +1101,100 @@ pci:v00001000d00000072* + ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] + + pci:v00001000d00000072sv00001028sd00001F1C* +- ID_MODEL_FROM_DATABASE=6Gbps SAS HBA Adapter ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (6Gbps SAS HBA Adapter) + + pci:v00001000d00000072sv00001028sd00001F1D* +- ID_MODEL_FROM_DATABASE=PERC H200 Adapter ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Adapter) + + pci:v00001000d00000072sv00001028sd00001F1E* +- ID_MODEL_FROM_DATABASE=PERC H200 Integrated ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Integrated) + + pci:v00001000d00000072sv00001028sd00001F1F* +- ID_MODEL_FROM_DATABASE=PERC H200 Modular ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Modular) + + pci:v00001000d00000072sv00001028sd00001F20* +- ID_MODEL_FROM_DATABASE=PERC H200 Embedded ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Embedded) + + pci:v00001000d00000072sv00001028sd00001F22* +- ID_MODEL_FROM_DATABASE=Internal Tape Adapter ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (Internal Tape Adapter) + + pci:v00001000d00000072sv00008086sd0000350F* +- ID_MODEL_FROM_DATABASE=RMS2LL040 RAID Controller ++ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (RMS2LL040 RAID Controller) + + pci:v00001000d00000073* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] + + pci:v00001000d00000073sv00001000sd00009240* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-8i) + + pci:v00001000d00000073sv00001000sd00009241* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-4i) + + pci:v00001000d00000073sv00001000sd000092A0* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9220-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9220-8i) + + pci:v00001000d00000073sv00001014sd000003B1* +- ID_MODEL_FROM_DATABASE=ServeRAID M1015 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ServeRAID M1015 SAS/SATA Controller) + + pci:v00001000d00000073sv00001028sd00001F4E* +- ID_MODEL_FROM_DATABASE=PERC H310 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Adapter) + + pci:v00001000d00000073sv00001028sd00001F4F* +- ID_MODEL_FROM_DATABASE=PERC H310 Integrated ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Integrated) + + pci:v00001000d00000073sv00001028sd00001F50* +- ID_MODEL_FROM_DATABASE=PERC H310 Mini Blades ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Blades) + + pci:v00001000d00000073sv00001028sd00001F51* +- ID_MODEL_FROM_DATABASE=PERC H310 Mini Monolithics ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Monolithics) + + pci:v00001000d00000073sv00001028sd00001F52* +- ID_MODEL_FROM_DATABASE=PERC H310 Embedded1 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded1) + + pci:v00001000d00000073sv00001028sd00001F53* +- ID_MODEL_FROM_DATABASE=PERC H310 Embedded2 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded2) + + pci:v00001000d00000073sv00001028sd00001F54* +- ID_MODEL_FROM_DATABASE=PERC H310 Reserved ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Reserved) + + pci:v00001000d00000073sv00001054sd00003035* +- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS 9240-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (LSI MegaRAID SAS 9240-8i) + + pci:v00001000d00000073sv00001137sd00000072* +- ID_MODEL_FROM_DATABASE=2004 iMR ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2004 iMR ROMB) + + pci:v00001000d00000073sv00001137sd00000073* +- ID_MODEL_FROM_DATABASE=2008 ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2008 ROMB) + + pci:v00001000d00000073sv00001137sd000000B0* +- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) + + pci:v00001000d00000073sv00001137sd000000B1* +- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) + + pci:v00001000d00000073sv00001137sd000000C2* +- ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Double Wide) + + pci:v00001000d00000073sv00001137sd000000C3* +- ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Single Wide) + + pci:v00001000d00000073sv000015D9sd00000400* +- ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (Supermicro SMC2008-iMR) + + pci:v00001000d00000073sv00001734sd00001177* +- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Ctrl SAS 6G 0/1 (D2607)) + + pci:v00001000d00000073sv000017AAsd00001051* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ThinkServer RAID 510i) + + pci:v00001000d00000073sv00008086sd0000350D* +- ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RMS2AF040 RAID Controller) + + pci:v00001000d00000073sv00008086sd00009240* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC080 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC080) + + pci:v00001000d00000073sv00008086sd00009241* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC040 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC040) + + pci:v00001000d00000074* + ID_MODEL_FROM_DATABASE=SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] +@@ -1209,106 +1209,106 @@ pci:v00001000d00000079* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] + + pci:v00001000d00000079sv00001000sd00009251* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4ix ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4ix) + + pci:v00001000d00000079sv00001000sd00009256* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8ix ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8ix) + + pci:v00001000d00000079sv00001000sd00009260* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4i) + + pci:v00001000d00000079sv00001000sd00009261* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8i) + + pci:v00001000d00000079sv00001000sd00009262* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9262-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9262-8i) + + pci:v00001000d00000079sv00001000sd00009263* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9261-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9261-8i) + + pci:v00001000d00000079sv00001000sd00009264* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9264-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9264-8i) + + pci:v00001000d00000079sv00001000sd00009267* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-4i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-4i) + + pci:v00001000d00000079sv00001000sd00009268* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-8i) + + pci:v00001000d00000079sv00001000sd00009275* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8ex ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8ex) + + pci:v00001000d00000079sv00001000sd00009276* +- ID_MODEL_FROM_DATABASE=MR9260-16i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MR9260-16i) + + pci:v00001000d00000079sv00001000sd00009280* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8e) + + pci:v00001000d00000079sv00001000sd00009281* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9281-8E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9281-8E) + + pci:v00001000d00000079sv00001000sd00009282* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-4i4e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-4i4e) + + pci:v00001000d00000079sv00001000sd00009290* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280DE-24i4e ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280DE-24i4e) + + pci:v00001000d00000079sv00001014sd000003B2* +- ID_MODEL_FROM_DATABASE=ServeRAID M5015 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5015 SAS/SATA Controller) + + pci:v00001000d00000079sv00001014sd000003B3* +- ID_MODEL_FROM_DATABASE=ServeRAID M5025 SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5025 SAS/SATA Controller) + + pci:v00001000d00000079sv00001028sd00001F15* +- ID_MODEL_FROM_DATABASE=PERC H800 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Adapter) + + pci:v00001000d00000079sv00001028sd00001F16* +- ID_MODEL_FROM_DATABASE=PERC H700 Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Adapter) + + pci:v00001000d00000079sv00001028sd00001F17* +- ID_MODEL_FROM_DATABASE=PERC H700 Integrated ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) + + pci:v00001000d00000079sv00001028sd00001F18* +- ID_MODEL_FROM_DATABASE=PERC H700 Modular ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Modular) + + pci:v00001000d00000079sv00001028sd00001F1A* +- ID_MODEL_FROM_DATABASE=PERC H800 Proto Adapter ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Proto Adapter) + + pci:v00001000d00000079sv00001028sd00001F1B* +- ID_MODEL_FROM_DATABASE=PERC H700 Integrated ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) + + pci:v00001000d00000079sv00001043sd00008480* +- ID_MODEL_FROM_DATABASE=PIKE-2108 16PD ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PIKE-2108 16PD) + + pci:v00001000d00000079sv00001734sd00001176* +- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 5/6 512MB (D2616) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 5/6 512MB (D2616)) + + pci:v00001000d00000079sv00001734sd00001177* +- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 0/1 (D2607)) + + pci:v00001000d00000079sv00008086sd00009256* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260DE-8i ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260DE-8i) + + pci:v00001000d00000079sv00008086sd00009260* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL040 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL040) + + pci:v00001000d00000079sv00008086sd00009261* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL080 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL080) + + pci:v00001000d00000079sv00008086sd00009264* +- ID_MODEL_FROM_DATABASE=Warm Beach (Caster Lite) ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (Warm Beach (Caster Lite)) + + pci:v00001000d00000079sv00008086sd00009267* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB040 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB040) + + pci:v00001000d00000079sv00008086sd00009268* +- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB080 ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB080) + + pci:v00001000d0000007C* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE + + pci:v00001000d0000007Csv00001014sd00000395* +- ID_MODEL_FROM_DATABASE=ServeRAID-AR10is SAS/SATA Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE (ServeRAID-AR10is SAS/SATA Controller) + + pci:v00001000d0000007E* + ID_MODEL_FROM_DATABASE=SSS6200 PCI-Express Flash SSD +@@ -1338,16 +1338,16 @@ pci:v00001000d00000087* + ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 + + pci:v00001000d00000087sv00001590sd00000044* +- ID_MODEL_FROM_DATABASE=H220i ++ ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 (H220i) + + pci:v00001000d0000008F* + ID_MODEL_FROM_DATABASE=53c875J + + pci:v00001000d0000008Fsv00001092sd00008000* +- ID_MODEL_FROM_DATABASE=FirePort 40 SCSI Controller ++ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 SCSI Controller) + + pci:v00001000d0000008Fsv00001092sd00008760* +- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 Dual SCSI Host Adapter) + + pci:v00001000d00000090* + ID_MODEL_FROM_DATABASE=SAS3108 PCI-Express Fusion-MPT SAS-3 +@@ -1368,151 +1368,151 @@ pci:v00001000d00000097* + ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 + + pci:v00001000d00000097sv00001028sd00001F45* +- ID_MODEL_FROM_DATABASE=12GB/s HBA internal ++ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA internal) + + pci:v00001000d00000097sv00001028sd00001F46* +- ID_MODEL_FROM_DATABASE=12GB/s HBA external ++ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA external) + + pci:v00001000d00000407* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00000407sv00001000sd00000530* +- ID_MODEL_FROM_DATABASE=MegaRAID 530 SCSI 320-0X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (530 SCSI 320-0X RAID Controller) + + pci:v00001000d00000407sv00001000sd00000531* +- ID_MODEL_FROM_DATABASE=MegaRAID 531 SCSI 320-4X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (531 SCSI 320-4X RAID Controller) + + pci:v00001000d00000407sv00001000sd00000532* +- ID_MODEL_FROM_DATABASE=MegaRAID 532 SCSI 320-2X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (532 SCSI 320-2X RAID Controller) + + pci:v00001000d00000407sv00001028sd00000531* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00000407sv00001028sd00000533* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00000407sv00008086sd00000530* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCZCRX ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCZCRX) + + pci:v00001000d00000407sv00008086sd00000532* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42X ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42X) + + pci:v00001000d00000408* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00000408sv00001000sd00000001* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-1E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-1E RAID Controller) + + pci:v00001000d00000408sv00001000sd00000002* +- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-2E RAID Controller) + + pci:v00001000d00000408sv00001025sd0000004D* +- ID_MODEL_FROM_DATABASE=MegaRAID ACER ROMB-2E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (ACER ROMB-2E RAID Controller) + + pci:v00001000d00000408sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/SC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/SC) + + pci:v00001000d00000408sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/DC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/DC) + + pci:v00001000d00000408sv00001028sd00000012* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller RAC4 ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller RAC4) + + pci:v00001000d00000408sv00001028sd00000015* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) + + pci:v00001000d00000408sv00001028sd00001F03* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) + + pci:v00001000d00000408sv00001734sd00001065* +- ID_MODEL_FROM_DATABASE=FSC MegaRAID PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID (FSC MegaRAID PCI Express ROMB) + + pci:v00001000d00000408sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42E ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42E) + + pci:v00001000d00000408sv00008086sd00003449* +- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SROMBU ++ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SROMBU) + + pci:v00001000d00000409* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00000409sv00001000sd00003004* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-4X RAID Controller) + + pci:v00001000d00000409sv00001000sd00003008* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8X RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-8X RAID Controller) + + pci:v00001000d00000409sv00008086sd00003008* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS28X ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS28X) + + pci:v00001000d00000409sv00008086sd00003431* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Alief SROMBU42E ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Alief SROMBU42E) + + pci:v00001000d00000409sv00008086sd00003499* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Harwich SROMBU42E ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Harwich SROMBU42E) + + pci:v00001000d00000411* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 + + pci:v00001000d00000411sv00001000sd00001001* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8408E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8408E) + + pci:v00001000d00000411sv00001000sd00001002* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8480E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8480E) + + pci:v00001000d00000411sv00001000sd00001003* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8344ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8344ELP) + + pci:v00001000d00000411sv00001000sd00001004* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8308ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8308ELP) + + pci:v00001000d00000411sv00001000sd00001008* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 84016E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 84016E) + + pci:v00001000d00000411sv00001000sd0000100C* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-12E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-12E) + + pci:v00001000d00000411sv00001000sd0000100D* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-16E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-16E) + + pci:v00001000d00000411sv00001000sd00002004* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-8ELP) + + pci:v00001000d00000411sv00001000sd00002005* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4ELP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-4ELP) + + pci:v00001000d00000411sv00001033sd00008287* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000411sv00001054sd00003016* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS RoMB Server ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS RoMB Server) + + pci:v00001000d00000411sv00001734sd00001081* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000411sv00001734sd000010A3* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) + + pci:v00001000d00000411sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS18E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS18E) + + pci:v00001000d00000411sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS144E ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS144E) + + pci:v00001000d00000411sv00008086sd00003500* +- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) + + pci:v00001000d00000411sv00008086sd00003501* +- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) + + pci:v00001000d00000411sv00008086sd00003504* +- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) + + pci:v00001000d00000413* + ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] + + pci:v00001000d00000413sv00001000sd00001005* +- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8300XLP ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] (MegaRAID SAS 8300XLP) + + pci:v00001000d00000621* + ID_MODEL_FROM_DATABASE=FC909 Fibre Channel Adapter +@@ -1521,7 +1521,7 @@ pci:v00001000d00000622* + ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter + + pci:v00001000d00000622sv00001000sd00001020* +- ID_MODEL_FROM_DATABASE=44929 O Dual Fibre Channel card ++ ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter (44929 O Dual Fibre Channel card) + + pci:v00001000d00000623* + ID_MODEL_FROM_DATABASE=FC929 LAN +@@ -1536,7 +1536,7 @@ pci:v00001000d00000626* + ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter + + pci:v00001000d00000626sv00001000sd00001010* +- ID_MODEL_FROM_DATABASE=7202-XP-LC Dual Fibre Channel card ++ ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter (7202-XP-LC Dual Fibre Channel card) + + pci:v00001000d00000627* + ID_MODEL_FROM_DATABASE=FC929X LAN +@@ -1563,7 +1563,7 @@ pci:v00001000d00000702* + ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet + + pci:v00001000d00000702sv00001318sd00000000* +- ID_MODEL_FROM_DATABASE=PEI100X ++ ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet (PEI100X) + + pci:v00001000d00000804* + ID_MODEL_FROM_DATABASE=SA2010 +@@ -1587,40 +1587,40 @@ pci:v00001000d00001960* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v00001000d00001960sv00001000sd00000518* +- ID_MODEL_FROM_DATABASE=MegaRAID 518 SCSI 320-2 Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (518 SCSI 320-2 Controller) + + pci:v00001000d00001960sv00001000sd00000520* +- ID_MODEL_FROM_DATABASE=MegaRAID 520 SCSI 320-1 Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (520 SCSI 320-1 Controller) + + pci:v00001000d00001960sv00001000sd00000522* +- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4 133 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4 133 RAID Controller) + + pci:v00001000d00001960sv00001000sd00000523* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-6 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-6 RAID Controller) + + pci:v00001000d00001960sv00001000sd00004523* +- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-4 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-4 RAID Controller) + + pci:v00001000d00001960sv00001000sd0000A520* +- ID_MODEL_FROM_DATABASE=MegaRAID ZCR SCSI 320-0 Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (ZCR SCSI 320-0 Controller) + + pci:v00001000d00001960sv00001028sd00000518* +- ID_MODEL_FROM_DATABASE=MegaRAID 518 DELL PERC 4/DC RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (518 DELL PERC 4/DC RAID Controller) + + pci:v00001000d00001960sv00001028sd00000520* +- ID_MODEL_FROM_DATABASE=MegaRAID 520 DELL PERC 4/SC RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (520 DELL PERC 4/SC RAID Controller) + + pci:v00001000d00001960sv00001028sd00000531* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00001960sv00001028sd00000533* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) + + pci:v00001000d00001960sv00008086sd00000520* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCU41L ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCU41L) + + pci:v00001000d00001960sv00008086sd00000523* +- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 ++ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS16) + + pci:v00001000d00003050* + ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 +@@ -1710,7 +1710,7 @@ pci:v00001002d00001314* + ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio + + pci:v00001002d00001314sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio (PURE Fusion Mini) + + pci:v00001002d00001315* + ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] +@@ -1737,13 +1737,13 @@ pci:v00001002d00001714* + ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] + + pci:v00001002d00001714sv0000103Csd0000168B* +- ID_MODEL_FROM_DATABASE=ProBook 4535s ++ ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] (ProBook 4535s) + + pci:v00001002d00003150* + ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] + + pci:v00001002d00003150sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=nx8220 ++ ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] (nx8220) + + pci:v00001002d00003151* + ID_MODEL_FROM_DATABASE=RV380 GL [FireMV 2400] +@@ -1791,73 +1791,73 @@ pci:v00001002d00004150* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] + + pci:v00001002d00004150sv00001002sd00000002* +- ID_MODEL_FROM_DATABASE=R9600 Pro primary (Asus OEM for HP) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro primary (Asus OEM for HP)) + + pci:v00001002d00004150sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro secondary (Asus OEM for HP)) + + pci:v00001002d00004150sv00001002sd00004722* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (All-in-Wonder 2006 AGP Edition) + + pci:v00001002d00004150sv00001458sd00004024* +- ID_MODEL_FROM_DATABASE=GV-R96128D ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GV-R96128D) + + pci:v00001002d00004150sv0000148Csd00002064* +- ID_MODEL_FROM_DATABASE=R96A-C3N ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) + + pci:v00001002d00004150sv0000148Csd00002066* +- ID_MODEL_FROM_DATABASE=R96A-C3N ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) + + pci:v00001002d00004150sv0000174Bsd00007C19* +- ID_MODEL_FROM_DATABASE=Atlantis Radeon 9600 Pro ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Atlantis Radeon 9600 Pro) + + pci:v00001002d00004150sv0000174Bsd00007C29* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO) + + pci:v00001002d00004150sv000017EEsd00002002* +- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb Primary ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Radeon 9600 256Mb Primary) + + pci:v00001002d00004150sv000018BCsd00000101* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Primary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO (Primary)) + + pci:v00001002d00004151* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] + + pci:v00001002d00004151sv00001043sd0000C004* +- ID_MODEL_FROM_DATABASE=A9600SE ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] (A9600SE) + + pci:v00001002d00004152* + ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] + + pci:v00001002d00004152sv00001002sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) + + pci:v00001002d00004152sv00001002sd00004772* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (All-in-Wonder 9600 XT) + + pci:v00001002d00004152sv00001043sd0000C002* +- ID_MODEL_FROM_DATABASE=Radeon 9600 XT TVD ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT TVD) + + pci:v00001002d00004152sv00001043sd0000C01A* +- ID_MODEL_FROM_DATABASE=A9600XT/TD ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (A9600XT/TD) + + pci:v00001002d00004152sv00001462sd00009510* +- ID_MODEL_FROM_DATABASE=RX9600XT (MS-8951) ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (RX9600XT (MS-8951)) + + pci:v00001002d00004152sv0000174Bsd00007C29* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) + + pci:v00001002d00004152sv00001787sd00004002* +- ID_MODEL_FROM_DATABASE=Radeon 9600 XT ++ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT) + + pci:v00001002d00004153* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] + + pci:v00001002d00004153sv00001043sd0000010C* +- ID_MODEL_FROM_DATABASE=A9550GE/TD ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (A9550GE/TD) + + pci:v00001002d00004153sv00001462sd0000932C* +- ID_MODEL_FROM_DATABASE=RX9550SE-TD128 (MS-8932) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (RX9550SE-TD128 (MS-8932)) + + pci:v00001002d00004154* + ID_MODEL_FROM_DATABASE=RV350 GL [FireGL T2] +@@ -1887,64 +1887,64 @@ pci:v00001002d00004170* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) + + pci:v00001002d00004170sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R9600 Pro secondary (Asus OEM for HP)) + + pci:v00001002d00004170sv00001002sd00004723* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (All-in-Wonder 2006 AGP Edition (Secondary)) + + pci:v00001002d00004170sv00001458sd00004025* +- ID_MODEL_FROM_DATABASE=GV-R96128D (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GV-R96128D (Secondary)) + + pci:v00001002d00004170sv0000148Csd00002067* +- ID_MODEL_FROM_DATABASE=R96A-C3N (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R96A-C3N (Secondary)) + + pci:v00001002d00004170sv0000174Bsd00007C28* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) + + pci:v00001002d00004170sv000017EEsd00002003* +- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (Radeon 9600 256Mb (Secondary)) + + pci:v00001002d00004170sv000018BCsd00000100* +- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) + + pci:v00001002d00004171* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) + + pci:v00001002d00004171sv00001043sd0000C005* +- ID_MODEL_FROM_DATABASE=A9600SE (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) (A9600SE (Secondary)) + + pci:v00001002d00004172* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) + + pci:v00001002d00004172sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) + + pci:v00001002d00004172sv00001002sd00004773* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (All-in-Wonder 9600 XT (Secondary)) + + pci:v00001002d00004172sv00001043sd0000C003* +- ID_MODEL_FROM_DATABASE=A9600XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT (Secondary)) + + pci:v00001002d00004172sv00001043sd0000C01B* +- ID_MODEL_FROM_DATABASE=A9600XT/TD (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT/TD (Secondary)) + + pci:v00001002d00004172sv0000174Bsd00007C28* +- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) + + pci:v00001002d00004172sv00001787sd00004003* +- ID_MODEL_FROM_DATABASE=Radeon 9600 XT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600 XT (Secondary)) + + pci:v00001002d00004173* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) + + pci:v00001002d00004173sv00001043sd0000010D* +- ID_MODEL_FROM_DATABASE=A9550GE/TD (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) (A9550GE/TD (Secondary)) + + pci:v00001002d00004242* + ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] + + pci:v00001002d00004242sv00001002sd000002AA* +- ID_MODEL_FROM_DATABASE=Radeon 8500 AIW DV Edition ++ ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] (Radeon 8500 AIW DV Edition) + + pci:v00001002d00004243* + ID_MODEL_FROM_DATABASE=R200 PCI Bridge [All-in-Wonder Radeon 8500DV] +@@ -1953,22 +1953,22 @@ pci:v00001002d00004336* + ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] + + pci:v00001002d00004336sv00001002sd00004336* +- ID_MODEL_FROM_DATABASE=Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M) ++ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M)) + + pci:v00001002d00004336sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Video ++ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4400 builtin Video) + + pci:v00001002d00004336sv0000161Fsd00002029* +- ID_MODEL_FROM_DATABASE=eMachines M5312 builtin Video ++ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (eMachines M5312 builtin Video) + + pci:v00001002d00004337* + ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] + + pci:v00001002d00004337sv00001014sd0000053A* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (ThinkPad R40e) + + pci:v00001002d00004337sv0000103Csd00000850* +- ID_MODEL_FROM_DATABASE=Radeon IGP 345M ++ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (Radeon IGP 345M) + + pci:v00001002d00004341* + ID_MODEL_FROM_DATABASE=IXP150 AC'97 Audio Controller +@@ -2013,160 +2013,160 @@ pci:v00001002d00004370* + ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller + + pci:v00001002d00004370sv00001025sd00000079* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5024WLMMi) + + pci:v00001002d00004370sv00001025sd00000091* +- ID_MODEL_FROM_DATABASE=Aspire 5032WXMi ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5032WXMi) + + pci:v00001002d00004370sv0000103Csd00002A05* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004370sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6125) + + pci:v00001002d00004370sv0000105Bsd00000C81* +- ID_MODEL_FROM_DATABASE=Realtek ALC 653 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Realtek ALC 653) + + pci:v00001002d00004370sv0000107Bsd00000300* +- ID_MODEL_FROM_DATABASE=MX6421 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6421) + + pci:v00001002d00004370sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MS-1013 Notebook) + + pci:v00001002d00004371* + ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge + + pci:v00001002d00004371sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (MX6125) + + pci:v00001002d00004371sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (Aspire L250) + + pci:v00001002d00004372* + ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller + + pci:v00001002d00004372sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire 5024WLMMi) + + pci:v00001002d00004372sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004372sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MX6125) + + pci:v00001002d00004372sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MS-1013 Notebook) + + pci:v00001002d00004372sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire L250) + + pci:v00001002d00004373* + ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller + + pci:v00001002d00004373sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire 5024WLMMi) + + pci:v00001002d00004373sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004373sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (MX6125) + + pci:v00001002d00004373sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire L250) + + pci:v00001002d00004374* + ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller + + pci:v00001002d00004374sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004374sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) + + pci:v00001002d00004374sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) + + pci:v00001002d00004375* + ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller + + pci:v00001002d00004375sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire 5024WLMMi) + + pci:v00001002d00004375sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004375sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) + + pci:v00001002d00004375sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) + + pci:v00001002d00004376* + ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller + + pci:v00001002d00004376sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire 5024WLMMi) + + pci:v00001002d00004376sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004376sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MX6125) + + pci:v00001002d00004376sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MS-1013 Notebook) + + pci:v00001002d00004376sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire L250) + + pci:v00001002d00004377* + ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge + + pci:v00001002d00004377sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire 5024WLMi) + + pci:v00001002d00004377sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Pavilion t3030.de Desktop PC) + + pci:v00001002d00004377sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (MX6125) + + pci:v00001002d00004377sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire L250) + + pci:v00001002d00004378* + ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller + + pci:v00001002d00004378sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (Aspire 5024WLMMi) + + pci:v00001002d00004378sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MX6125) + + pci:v00001002d00004378sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MS-1013 Notebook) + + pci:v00001002d00004379* + ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller + + pci:v00001002d00004379sv00001462sd00007141* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller (Aspire L250) + + pci:v00001002d0000437A* + ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller + + pci:v00001002d0000437Asv00001002sd00004379* +- ID_MODEL_FROM_DATABASE=4379 Serial ATA Controller ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (4379 Serial ATA Controller) + + pci:v00001002d0000437Asv00001002sd0000437A* +- ID_MODEL_FROM_DATABASE=437A Serial ATA Controller ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (437A Serial ATA Controller) + + pci:v00001002d0000437Asv00001462sd00007141* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Aspire L250) + + pci:v00001002d0000437Asv000014F1sd00008800* +- ID_MODEL_FROM_DATABASE=Leadtek WinFast TV2000XP Expert ++ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Leadtek WinFast TV2000XP Expert) + + pci:v00001002d0000437B* + ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller +@@ -2175,31 +2175,31 @@ pci:v00001002d0000437Bsv00001002sd0000437B* + ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller + + pci:v00001002d0000437Bsv000010CFsd00001326* +- ID_MODEL_FROM_DATABASE=Fujitsu Lifebook A3040 ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Fujitsu Lifebook A3040) + + pci:v00001002d0000437Bsv00001734sd000010B8* +- ID_MODEL_FROM_DATABASE=Realtek High Definition Audio ++ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Realtek High Definition Audio) + + pci:v00001002d00004380* + ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA + + pci:v00001002d00004380sv0000103Csd00002813* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (DC5750 Microtower) + + pci:v00001002d00004380sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Satellite P305D-S8995E) + + pci:v00001002d00004380sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-MA790FX-DS5 (rev. 1.0) ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (GA-MA790FX-DS5 (rev. 1.0)) + + pci:v00001002d00004380sv00001458sd0000B005* +- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Gigabyte GA-MA69G-S3H Motherboard) + + pci:v00001002d00004380sv00001462sd00007327* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (K9AG Neo2) + + pci:v00001002d00004380sv000017F2sd00005999* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (KI690-AM2 Motherboard) + + pci:v00001002d00004381* + ID_MODEL_FROM_DATABASE=SB600 SATA Controller (RAID 5 mode) +@@ -2211,34 +2211,34 @@ pci:v00001002d00004383* + ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) + + pci:v00001002d00004383sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (A785GM-M) + + pci:v00001002d00004383sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Pavilion DM1Z-3000) + + pci:v00001002d00004383sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (DC5750 Microtower) + + pci:v00001002d00004383sv00001043sd00008230* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M3A78-EH Motherboard) + + pci:v00001002d00004383sv00001043sd0000836C* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A785TD Motherboard) + + pci:v00001002d00004383sv00001043sd00008410* +- ID_MODEL_FROM_DATABASE=M4A89GTD PRO/USB3 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A89GTD PRO/USB3 Motherboard) + + pci:v00001002d00004383sv00001043sd0000841B* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M5A88-V EVO) + + pci:v00001002d00004383sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Satellite P305D-S8995E) + + pci:v00001002d00004383sv00001458sd0000A022* +- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (GA-MA770-DS3rev2.0 Motherboard) + + pci:v00001002d00004383sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (KI690-AM2 Motherboard) + + pci:v00001002d00004384* + ID_MODEL_FROM_DATABASE=SBx00 PCI to PCI Bridge +@@ -2247,160 +2247,160 @@ pci:v00001002d00004385* + ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller + + pci:v00001002d00004385sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (A785GM-M) + + pci:v00001002d00004385sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Pavilion DM1Z-3000) + + pci:v00001002d00004385sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (DC5750 Microtower) + + pci:v00001002d00004385sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M3A78-EH Motherboard) + + pci:v00001002d00004385sv00001043sd00008389* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M4A785TD Motherboard) + + pci:v00001002d00004385sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Satellite P305D-S8995E) + + pci:v00001002d00004385sv00001458sd00004385* +- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (GA-MA770-DS3rev2.0 Motherboard) + + pci:v00001002d00004385sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (K9AG Neo2) + + pci:v00001002d00004385sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (H8DGU) + + pci:v00001002d00004385sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (PURE Fusion Mini) + + pci:v00001002d00004385sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (KI690-AM2 Motherboard) + + pci:v00001002d00004386* + ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) + + pci:v00001002d00004386sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (DC5750 Microtower) + + pci:v00001002d00004386sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (Satellite P305D-S8995E) + + pci:v00001002d00004386sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (K9AG Neo2) + + pci:v00001002d00004386sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (KI690-AM2 Motherboard) + + pci:v00001002d00004387* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) + + pci:v00001002d00004387sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (DC5750 Microtower) + + pci:v00001002d00004387sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (Satellite P305D-S8995E) + + pci:v00001002d00004387sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (K9AG Neo2) + + pci:v00001002d00004387sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (KI690-AM2 Motherboard) + + pci:v00001002d00004388* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) + + pci:v00001002d00004388sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (DC5750 Microtower) + + pci:v00001002d00004388sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (Satellite P305D-S8995E) + + pci:v00001002d00004388sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (K9AG Neo2) + + pci:v00001002d00004388sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (KI690-AM2 Motherboard) + + pci:v00001002d00004389* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) + + pci:v00001002d00004389sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (DC5750 Microtower) + + pci:v00001002d00004389sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (Satellite P305D-S8995E) + + pci:v00001002d00004389sv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (K9AG Neo2) + + pci:v00001002d00004389sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (KI690-AM2 Motherboard) + + pci:v00001002d0000438A* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) + + pci:v00001002d0000438Asv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (DC5750 Microtower) + + pci:v00001002d0000438Asv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (Satellite P305D-S8995E) + + pci:v00001002d0000438Asv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (K9AG Neo2) + + pci:v00001002d0000438Asv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (KI690-AM2 Motherboard) + + pci:v00001002d0000438B* + ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) + + pci:v00001002d0000438Bsv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (DC5750 Microtower) + + pci:v00001002d0000438Bsv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (Satellite P305D-S8995E) + + pci:v00001002d0000438Bsv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (K9AG Neo2) + + pci:v00001002d0000438Bsv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (KI690-AM2 Motherboard) + + pci:v00001002d0000438C* + ID_MODEL_FROM_DATABASE=SB600 IDE + + pci:v00001002d0000438Csv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 IDE (DC5750 Microtower) + + pci:v00001002d0000438Csv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 IDE (Satellite P305D-S8995E) + + pci:v00001002d0000438Csv00001458sd00005002* +- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 IDE (Gigabyte GA-MA69G-S3H Motherboard) + + pci:v00001002d0000438Csv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 IDE (K9AG Neo2) + + pci:v00001002d0000438Csv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 IDE (KI690-AM2 Motherboard) + + pci:v00001002d0000438D* + ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge + + pci:v00001002d0000438Dsv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (DC5750 Microtower) + + pci:v00001002d0000438Dsv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (Satellite P305D-S8995E) + + pci:v00001002d0000438Dsv00001462sd00007368* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (K9AG Neo2) + + pci:v00001002d0000438Dsv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (KI690-AM2 Motherboard) + + pci:v00001002d0000438E* + ID_MODEL_FROM_DATABASE=SB600 AC97 Modem +@@ -2409,31 +2409,31 @@ pci:v00001002d00004390* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] + + pci:v00001002d00004390sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M3A78-EH Motherboard) + + pci:v00001002d00004390sv00001043sd00008389* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M4A785TD Motherboard) + + pci:v00001002d00004390sv00001458sd0000B002* +- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (GA-MA770-DS3rev2.0 Motherboard) + + pci:v00001002d00004390sv00001849sd00004390* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (Motherboard (one of many)) + + pci:v00001002d00004391* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] + + pci:v00001002d00004391sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (Pavilion DM1Z-3000) + + pci:v00001002d00004391sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M3A78-EH Motherboard) + + pci:v00001002d00004391sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M5A88-V EVO) + + pci:v00001002d00004391sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (PURE Fusion Mini) + + pci:v00001002d00004392* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] +@@ -2451,97 +2451,97 @@ pci:v00001002d00004396* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller + + pci:v00001002d00004396sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (A785GM-M) + + pci:v00001002d00004396sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (Pavilion DM1Z-3000) + + pci:v00001002d00004396sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M3A78-EH Motherboard) + + pci:v00001002d00004396sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M5A88-V EVO) + + pci:v00001002d00004396sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (H8DGU) + + pci:v00001002d00004396sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (PURE Fusion Mini) + + pci:v00001002d00004397* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller + + pci:v00001002d00004397sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (A785GM-M) + + pci:v00001002d00004397sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (Pavilion DM1Z-3000) + + pci:v00001002d00004397sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M3A78-EH Motherboard) + + pci:v00001002d00004397sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M5A88-V EVO) + + pci:v00001002d00004397sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (H8DGU) + + pci:v00001002d00004397sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (PURE Fusion Mini) + + pci:v00001002d00004398* + ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller + + pci:v00001002d00004398sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (A785GM-M) + + pci:v00001002d00004398sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (M3A78-EH Motherboard) + + pci:v00001002d00004398sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (H8DGU) + + pci:v00001002d00004399* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller + + pci:v00001002d00004399sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (A785GM-M) + + pci:v00001002d00004399sv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M3A78-EH Motherboard) + + pci:v00001002d00004399sv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M5A88-V EVO) + + pci:v00001002d00004399sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (PURE Fusion Mini) + + pci:v00001002d0000439C* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller + + pci:v00001002d0000439Csv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (A785GM-M) + + pci:v00001002d0000439Csv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (M3A78-EH Motherboard) + + pci:v00001002d0000439D* + ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller + + pci:v00001002d0000439Dsv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (A785GM-M) + + pci:v00001002d0000439Dsv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (Pavilion DM1Z-3000) + + pci:v00001002d0000439Dsv00001043sd000082EF* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M3A78-EH Motherboard) + + pci:v00001002d0000439Dsv00001043sd00008443* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M5A88-V EVO) + + pci:v00001002d0000439Dsv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (PURE Fusion Mini) + + pci:v00001002d000043A0* + ID_MODEL_FROM_DATABASE=SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) +@@ -2568,88 +2568,88 @@ pci:v00001002d00004742* + ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X + + pci:v00001002d00004742sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00000061* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) + + pci:v00001002d00004742sv00001002sd00000062* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) + + pci:v00001002d00004742sv00001002sd00000063* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) + + pci:v00001002d00004742sv00001002sd00000080* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00004742* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001002sd00008001* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001028sd00000082* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001028sd00004082* +- ID_MODEL_FROM_DATABASE=Optiplex GX1 Onboard Display Adapter ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Optiplex GX1 Onboard Display Adapter) + + pci:v00001002d00004742sv00001028sd00008082* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00001028sd0000C082* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004742sv00008086sd00004152* +- ID_MODEL_FROM_DATABASE=Xpert 98D AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Xpert 98D AGP 2X) + + pci:v00001002d00004742sv00008086sd0000464A* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) + + pci:v00001002d00004744* + ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X + + pci:v00001002d00004744sv00001002sd00004744* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage Pro Turbo AGP) + + pci:v00001002d00004744sv00008086sd00004D55* +- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 1X [Intel MU440EX] ++ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage 3D Pro AGP 1X [Intel MU440EX]) + + pci:v00001002d00004749* + ID_MODEL_FROM_DATABASE=3D Rage PRO PCI + + pci:v00001002d00004749sv00001002sd00000061* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW ++ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) + + pci:v00001002d00004749sv00001002sd00000062* +- ID_MODEL_FROM_DATABASE=Rage Pro AIW ++ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) + + pci:v00001002d0000474D* + ID_MODEL_FROM_DATABASE=Rage XL AGP 2X + + pci:v00001002d0000474Dsv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) + + pci:v00001002d0000474Dsv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) + + pci:v00001002d0000474Dsv00001002sd00000080* + ID_MODEL_FROM_DATABASE=Rage XL AGP 2X + + pci:v00001002d0000474Dsv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 AGP 2X) + + pci:v00001002d0000474Dsv00001002sd0000474D* +- ID_MODEL_FROM_DATABASE=Rage XL AGP ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) + + pci:v00001002d0000474Dsv00001033sd0000806A* +- ID_MODEL_FROM_DATABASE=Rage XL AGP ++ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) + + pci:v00001002d0000474E* + ID_MODEL_FROM_DATABASE=Rage XC AGP +@@ -2670,79 +2670,79 @@ pci:v00001002d00004750* + ID_MODEL_FROM_DATABASE=3D Rage Pro PCI + + pci:v00001002d00004750sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00000080* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004750sv00001002sd00004750* +- ID_MODEL_FROM_DATABASE=Rage Pro Turbo ++ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) + + pci:v00001002d00004752* + ID_MODEL_FROM_DATABASE=Rage XL PCI + + pci:v00001002d00004752sv00000E11sd0000001E* +- ID_MODEL_FROM_DATABASE=Proliant Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) + + pci:v00001002d00004752sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) + + pci:v00001002d00004752sv00001002sd00004752* +- ID_MODEL_FROM_DATABASE=Proliant Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) + + pci:v00001002d00004752sv00001002sd00008008* +- ID_MODEL_FROM_DATABASE=Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) + + pci:v00001002d00004752sv00001014sd00000240* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (eServer xSeries server mainboard) + + pci:v00001002d00004752sv00001028sd000000CE* +- ID_MODEL_FROM_DATABASE=PowerEdge 1400 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1400) + + pci:v00001002d00004752sv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=PowerEdge 2550 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2550) + + pci:v00001002d00004752sv00001028sd000000D9* +- ID_MODEL_FROM_DATABASE=PowerEdge 2500 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2500) + + pci:v00001002d00004752sv00001028sd00000134* +- ID_MODEL_FROM_DATABASE=PowerEdge 600SC ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 600SC) + + pci:v00001002d00004752sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1750) + + pci:v00001002d00004752sv00001028sd00000165* +- ID_MODEL_FROM_DATABASE=PowerEdge 750 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 750) + + pci:v00001002d00004752sv0000103Csd000010E1* +- ID_MODEL_FROM_DATABASE=NetServer Rage XL ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (NetServer Rage XL) + + pci:v00001002d00004752sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (ProLiant DL140 G2) + + pci:v00001002d00004752sv0000107Bsd00006400* +- ID_MODEL_FROM_DATABASE=6400 Server ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (6400 Server) + + pci:v00001002d00004752sv00001734sd0000007A* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard VGA ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (PRIMERGY RX/TX series onboard VGA) + + pci:v00001002d00004752sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (Primergy Econel 200 D2020 mainboard) + + pci:v00001002d00004752sv00008086sd00003411* +- ID_MODEL_FROM_DATABASE=SDS2 Mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (SDS2 Mainboard) + + pci:v00001002d00004752sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (S875WP1-E mainboard) + + pci:v00001002d00004752sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=Rage XL PCI (S845WD1-E mainboard) + + pci:v00001002d00004753* + ID_MODEL_FROM_DATABASE=Rage XC +@@ -2760,28 +2760,28 @@ pci:v00001002d00004756* + ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] + + pci:v00001002d00004756sv00001002sd00004756* +- ID_MODEL_FROM_DATABASE=Rage IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] (Rage IIC) + + pci:v00001002d00004757* + ID_MODEL_FROM_DATABASE=3D Rage IIC AGP + + pci:v00001002d00004757sv00001002sd00004757* +- ID_MODEL_FROM_DATABASE=Rage IIC AGP ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) + + pci:v00001002d00004757sv00001028sd00000089* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004757sv00001028sd0000008E* +- ID_MODEL_FROM_DATABASE=PowerEdge 1300 onboard video ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (PowerEdge 1300 onboard video) + + pci:v00001002d00004757sv00001028sd00004082* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004757sv00001028sd00008082* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004757sv00001028sd0000C082* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d00004758* + ID_MODEL_FROM_DATABASE=210888GX [Mach64 GX PCI] +@@ -2793,40 +2793,40 @@ pci:v00001002d0000475A* + ID_MODEL_FROM_DATABASE=3D Rage IIC AGP + + pci:v00001002d0000475Asv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 2x XPERT 98 ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D Pro AGP 2x XPERT 98) + + pci:v00001002d0000475Asv00001002sd00000087* +- ID_MODEL_FROM_DATABASE=Rage 3D IIC ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) + + pci:v00001002d0000475Asv00001002sd0000475A* +- ID_MODEL_FROM_DATABASE=Rage IIC AGP ++ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) + + pci:v00001002d00004966* + ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] + + pci:v00001002d00004966sv000010F1sd00000002* +- ID_MODEL_FROM_DATABASE=RV250 If [Tachyon G9000 PRO] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Tachyon G9000 PRO]) + + pci:v00001002d00004966sv0000148Csd00002039* +- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 Pro "Evil Commando"] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 Pro "Evil Commando"]) + + pci:v00001002d00004966sv00001509sd00009A00* +- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "AT009"] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "AT009"]) + + pci:v00001002d00004966sv00001681sd00000040* +- ID_MODEL_FROM_DATABASE=RV250 If [3D prophet 9000] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [3D prophet 9000]) + + pci:v00001002d00004966sv0000174Bsd00007176* +- ID_MODEL_FROM_DATABASE=Radeon 9000 Pro ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (Radeon 9000 Pro) + + pci:v00001002d00004966sv0000174Bsd00007192* +- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "Atlantis"] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "Atlantis"]) + + pci:v00001002d00004966sv000017AFsd00002005* +- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000 Pro] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000 Pro]) + + pci:v00001002d00004966sv000017AFsd00002006* +- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000] ++ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000]) + + pci:v00001002d0000496E* + ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000] (Secondary) +@@ -2835,7 +2835,7 @@ pci:v00001002d00004A49* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] + + pci:v00001002d00004A49sv0000174Bsd00002620* +- ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GTO AGP] ++ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] (R420 [Radeon X800 GTO AGP]) + + pci:v00001002d00004A4A* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GT AGP] +@@ -2859,7 +2859,7 @@ pci:v00001002d00004A54* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] + + pci:v00001002d00004A54sv00001002sd00004422* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 VE AGP ++ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] (All-In-Wonder X800 VE AGP) + + pci:v00001002d00004A69* + ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO] (Secondary) +@@ -2898,40 +2898,40 @@ pci:v00001002d00004C42* + ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X + + pci:v00001002d00004C42sv00000E11sd0000B0E7* +- ID_MODEL_FROM_DATABASE=Rage LT Pro (Compaq Presario 5240) ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro (Compaq Presario 5240)) + + pci:v00001002d00004C42sv00000E11sd0000B0E8* +- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) + + pci:v00001002d00004C42sv00000E11sd0000B10E* +- ID_MODEL_FROM_DATABASE=3D Rage LT Pro (Compaq Armada 1750) ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (3D Rage LT Pro (Compaq Armada 1750)) + + pci:v00001002d00004C42sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001002sd00004C42* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001002sd00008001* +- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) + + pci:v00001002d00004C42sv00001028sd00000085* +- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) + + pci:v00001002d00004C46* + ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 + + pci:v00001002d00004C46sv00001002sd00000155* +- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p ++ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) + + pci:v00001002d00004C46sv00001014sd00000155* +- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p ++ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) + + pci:v00001002d00004C46sv00001028sd000000B1* +- ID_MODEL_FROM_DATABASE=Latitude C600 ++ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (Latitude C600) + + pci:v00001002d00004C47* + ID_MODEL_FROM_DATABASE=3D Rage IIC PCI / Mobility Radeon 7500/7500C +@@ -2940,55 +2940,55 @@ pci:v00001002d00004C49* + ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI + + pci:v00001002d00004C49sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C49sv00001002sd00000040* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C49sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C49sv00001002sd00004C49* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C4D* + ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series + + pci:v00001002d00004C4Dsv00000E11sd0000B111* +- ID_MODEL_FROM_DATABASE=Armada M700 ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada M700) + + pci:v00001002d00004C4Dsv00000E11sd0000B160* +- ID_MODEL_FROM_DATABASE=Armada E500 ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada E500) + + pci:v00001002d00004C4Dsv00001002sd00000084* +- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X (Mobility) ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Xpert 98 AGP 2X (Mobility)) + + pci:v00001002d00004C4Dsv00001014sd00000154* +- ID_MODEL_FROM_DATABASE=ThinkPad A20m/A21m ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (ThinkPad A20m/A21m) + + pci:v00001002d00004C4Dsv00001028sd000000AA* +- ID_MODEL_FROM_DATABASE=Latitude CPt ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPt) + + pci:v00001002d00004C4Dsv00001028sd000000BB* +- ID_MODEL_FROM_DATABASE=Latitude CPx ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPx) + + pci:v00001002d00004C4Dsv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Satellite 1715XCDS laptop ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Satellite 1715XCDS laptop) + + pci:v00001002d00004C4Dsv000013BDsd00001019* +- ID_MODEL_FROM_DATABASE=PC-AR10 ++ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (PC-AR10) + + pci:v00001002d00004C50* + ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI + + pci:v00001002d00004C50sv00001002sd00004C50* +- ID_MODEL_FROM_DATABASE=Rage LT Pro ++ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) + + pci:v00001002d00004C52* + ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI + + pci:v00001002d00004C52sv00001033sd00008112* +- ID_MODEL_FROM_DATABASE=Versa Note VXi ++ ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI (Versa Note VXi) + + pci:v00001002d00004C54* + ID_MODEL_FROM_DATABASE=264LT [Mach64 LT] +@@ -2997,22 +2997,22 @@ pci:v00001002d00004C57* + ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] + + pci:v00001002d00004C57sv00001014sd00000517* +- ID_MODEL_FROM_DATABASE=ThinkPad T30 ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) + + pci:v00001002d00004C57sv00001014sd00000530* +- ID_MODEL_FROM_DATABASE=ThinkPad T42 2373-4WU ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) + + pci:v00001002d00004C57sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW (Dell Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) + + pci:v00001002d00004C57sv00001028sd0000012A* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Latitude C640) + + pci:v00001002d00004C57sv00001043sd00001622* +- ID_MODEL_FROM_DATABASE=Mobility Radeon M7 (L3C/S) ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Mobility Radeon M7 (L3C/S)) + + pci:v00001002d00004C57sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW in vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW in vpr Matrix 170B4) + + pci:v00001002d00004C58* + ID_MODEL_FROM_DATABASE=RV200/M7 GL [Mobility FireGL 7800] +@@ -3021,31 +3021,31 @@ pci:v00001002d00004C59* + ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] + + pci:v00001002d00004C59sv00000E11sd0000B111* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Evo N600c) + + pci:v00001002d00004C59sv00001014sd00000235* +- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p (2652/2653) ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad A30/A30p (2652/2653)) + + pci:v00001002d00004C59sv00001014sd00000239* +- ID_MODEL_FROM_DATABASE=ThinkPad X22/X23/X24 ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad X22/X23/X24) + + pci:v00001002d00004C59sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (XE4500 Notebook) + + pci:v00001002d00004C59sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00001002d00004C59sv0000104Dsd00008140* +- ID_MODEL_FROM_DATABASE=PCG-Z1SP laptop ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (PCG-Z1SP laptop) + + pci:v00001002d00004C59sv00001509sd00001930* +- ID_MODEL_FROM_DATABASE=Medion MD9703 ++ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Medion MD9703) + + pci:v00001002d00004C66* + ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] + + pci:v00001002d00004C66sv00001014sd0000054D* +- ID_MODEL_FROM_DATABASE=ThinkPad T41 ++ ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] (ThinkPad T41) + + pci:v00001002d00004C6E* + ID_MODEL_FROM_DATABASE=RV250/M9 [Mobility Radeon 9000] (Secondary) +@@ -3063,19 +3063,19 @@ pci:v00001002d00004E44* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] + + pci:v00001002d00004E44sv00001002sd0000515E* +- ID_MODEL_FROM_DATABASE=Radeon ES1000 ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) + + pci:v00001002d00004E44sv00001002sd00005965* +- ID_MODEL_FROM_DATABASE=Radeon ES1000 ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) + + pci:v00001002d00004E45* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] + + pci:v00001002d00004E45sv00001002sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Radeon R300 NE [Radeon 9500 Pro]) + + pci:v00001002d00004E45sv00001681sd00000002* +- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro]) + + pci:v00001002d00004E46* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9600 TX] +@@ -3093,7 +3093,7 @@ pci:v00001002d00004E4A* + ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] + + pci:v00001002d00004E4Asv00001002sd00004E4A* +- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] ++ ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] (R360 [Radeon 9800 XT]) + + pci:v00001002d00004E4B* + ID_MODEL_FROM_DATABASE=R350 GL [FireGL X2 AGP Pro] +@@ -3102,22 +3102,22 @@ pci:v00001002d00004E50* + ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] + + pci:v00001002d00004E50sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (TravelMate 290) + + pci:v00001002d00004E50sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC8000 laptop) + + pci:v00001002d00004E50sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC6000 laptop) + + pci:v00001002d00004E50sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P35 notebook ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (P35 notebook) + + pci:v00001002d00004E50sv00001462sd00000311* +- ID_MODEL_FROM_DATABASE=MSI M510A ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (MSI M510A) + + pci:v00001002d00004E50sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420W ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (Amilo M1420W) + + pci:v00001002d00004E51* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] +@@ -3126,7 +3126,7 @@ pci:v00001002d00004E52* + ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] + + pci:v00001002d00004E52sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P35 notebook ++ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] (P35 notebook) + + pci:v00001002d00004E54* + ID_MODEL_FROM_DATABASE=RV350/M10 GL [Mobility FireGL T2] +@@ -3141,10 +3141,10 @@ pci:v00001002d00004E65* + ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) + + pci:v00001002d00004E65sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Radeon R300 NE [Radeon 9500 Pro]) + + pci:v00001002d00004E65sv00001681sd00000003* +- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary) ++ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary)) + + pci:v00001002d00004E66* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) +@@ -3162,10 +3162,10 @@ pci:v00001002d00004E6A* + ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) + + pci:v00001002d00004E6Asv00001002sd00004E6A* +- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] (Secondary) ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (R360 [Radeon 9800 XT] (Secondary)) + + pci:v00001002d00004E6Asv00001002sd00004E71* +- ID_MODEL_FROM_DATABASE=M10 NQ [Radeon Mobility 9600] ++ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (M10 NQ [Radeon Mobility 9600]) + + pci:v00001002d00004E71* + ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600] (Secondary) +@@ -3180,46 +3180,46 @@ pci:v00001002d00005044* + ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI + + pci:v00001002d00005044sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) + + pci:v00001002d00005044sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) + + pci:v00001002d00005046* + ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS + + pci:v00001002d00005046sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) + + pci:v00001002d00005046sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005046sv00001002sd00000014* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) + + pci:v00001002d00005046sv00001002sd00000018* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005046sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) + + pci:v00001002d00005046sv00001002sd0000002A* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) + + pci:v00001002d00005046sv00001002sd00000048* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) + + pci:v00001002d00005046sv00001002sd00002000* +- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (VGA device) ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (VGA device)) + + pci:v00001002d00005046sv00001002sd00002001* +- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (Extra device?!) ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (Extra device?!)) + + pci:v00001002d00005050* + ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] + + pci:v00001002d00005050sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 128 ++ ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] (Xpert 128) + + pci:v00001002d00005052* + ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4X TMDS +@@ -3228,79 +3228,79 @@ pci:v00001002d00005144* + ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] + + pci:v00001002d00005144sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon VE) + + pci:v00001002d00005144sv00001002sd00000009* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000000A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000001A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Radeon AIW ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) + + pci:v00001002d00005144sv00001002sd00000038* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd00000039* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000008A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd000000BA* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd00000139* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd0000028A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005144sv00001002sd000002AA* +- ID_MODEL_FROM_DATABASE=Radeon AIW ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) + + pci:v00001002d00005144sv00001002sd0000053A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon ++ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) + + pci:v00001002d00005148* + ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] + + pci:v00001002d00005148sv00001002sd0000010A* +- ID_MODEL_FROM_DATABASE=FireGL 8800 64Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 64Mb) + + pci:v00001002d00005148sv00001002sd00000152* +- ID_MODEL_FROM_DATABASE=FireGL 8800 128Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 128Mb) + + pci:v00001002d00005148sv00001002sd00000162* +- ID_MODEL_FROM_DATABASE=FireGL 8700 32Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 32Mb) + + pci:v00001002d00005148sv00001002sd00000172* +- ID_MODEL_FROM_DATABASE=FireGL 8700 64Mb ++ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 64Mb) + + pci:v00001002d0000514C* + ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] + + pci:v00001002d0000514Csv00001002sd0000003A* +- ID_MODEL_FROM_DATABASE=Radeon R200 QL [Radeon 8500 LE] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [Radeon 8500 LE]) + + pci:v00001002d0000514Csv00001002sd0000013A* +- ID_MODEL_FROM_DATABASE=Radeon 8500 ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500) + + pci:v00001002d0000514Csv0000148Csd00002026* +- ID_MODEL_FROM_DATABASE=R200 QL [Radeon 8500 Evil Master II Multi Display Edition] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (R200 QL [Radeon 8500 Evil Master II Multi Display Edition]) + + pci:v00001002d0000514Csv00001681sd00000010* +- ID_MODEL_FROM_DATABASE=Radeon 8500 [3D Prophet 8500 128Mb] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 [3D Prophet 8500 128Mb]) + + pci:v00001002d0000514Csv0000174Bsd00007149* +- ID_MODEL_FROM_DATABASE=Radeon 8500 LE ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 LE) + + pci:v00001002d0000514Csv00001787sd00000F08* +- ID_MODEL_FROM_DATABASE=Radeon R200 QL [PowerMagic Radeon 8500] ++ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [PowerMagic Radeon 8500]) + + pci:v00001002d0000514D* + ID_MODEL_FROM_DATABASE=R200 [Radeon 9100] +@@ -3309,196 +3309,196 @@ pci:v00001002d00005157* + ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] + + pci:v00001002d00005157sv00001002sd0000013A* +- ID_MODEL_FROM_DATABASE=Radeon 7500 ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500) + + pci:v00001002d00005157sv00001002sd00000F2B* +- ID_MODEL_FROM_DATABASE=ALL-IN-WONDER VE PCI ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (ALL-IN-WONDER VE PCI) + + pci:v00001002d00005157sv00001002sd0000103A* +- ID_MODEL_FROM_DATABASE=Dell Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Dell Optiplex GX260) + + pci:v00001002d00005157sv00001458sd00004000* +- ID_MODEL_FROM_DATABASE=RV200 QW [RADEON 7500 PRO MAYA AR] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [RADEON 7500 PRO MAYA AR]) + + pci:v00001002d00005157sv0000148Csd00002024* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500LE Dual Display] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500LE Dual Display]) + + pci:v00001002d00005157sv0000148Csd00002025* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 Evil Master Multi Display Edition] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 Evil Master Multi Display Edition]) + + pci:v00001002d00005157sv0000148Csd00002036* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 PCI Dual Display] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 PCI Dual Display]) + + pci:v00001002d00005157sv0000174Bsd00007146* +- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 LE] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 LE]) + + pci:v00001002d00005157sv0000174Bsd00007147* +- ID_MODEL_FROM_DATABASE=Radeon 7500 LE ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500 LE) + + pci:v00001002d00005157sv0000174Bsd00007161* +- ID_MODEL_FROM_DATABASE=Radeon RV200 QW [Radeon 7500 LE] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon RV200 QW [Radeon 7500 LE]) + + pci:v00001002d00005157sv000017AFsd00000202* +- ID_MODEL_FROM_DATABASE=RV200 QW [Excalibur Radeon 7500LE] ++ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Excalibur Radeon 7500LE]) + + pci:v00001002d00005159* + ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] + + pci:v00001002d00005159sv00001002sd0000000A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd0000000B* +- ID_MODEL_FROM_DATABASE=Radeon 7000 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) + + pci:v00001002d00005159sv00001002sd00000038* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd0000003A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd000000BA* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd0000013A* +- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) + + pci:v00001002d00005159sv00001002sd00000908* +- ID_MODEL_FROM_DATABASE=XVR-100 (supplied by Sun) ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (XVR-100 (supplied by Sun)) + + pci:v00001002d00005159sv00001014sd0000029A* +- ID_MODEL_FROM_DATABASE=Remote Supervisor Adapter II (RSA2) ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Remote Supervisor Adapter II (RSA2)) + + pci:v00001002d00005159sv00001014sd000002C8* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (eServer xSeries server mainboard) + + pci:v00001002d00005159sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Embedded Radeon 7000/VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 1850 Embedded Radeon 7000/VE) + + pci:v00001002d00005159sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Embedded Radeon 7000-M ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 2850 Embedded Radeon 7000-M) + + pci:v00001002d00005159sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Embedded Radeon 7000/VE ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 6850 Embedded Radeon 7000/VE) + + pci:v00001002d00005159sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge SC1425) + + pci:v00001002d00005159sv0000103Csd00001292* +- ID_MODEL_FROM_DATABASE=Radeon 7000 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) + + pci:v00001002d00005159sv00001043sd0000C00A* +- ID_MODEL_FROM_DATABASE=A7000/T/64M ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (A7000/T/64M) + + pci:v00001002d00005159sv00001458sd00004002* +- ID_MODEL_FROM_DATABASE=RV100 QY [RADEON 7000 PRO MAYA AV Series] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [RADEON 7000 PRO MAYA AV Series]) + + pci:v00001002d00005159sv0000148Csd00002003* +- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Multi-Display Edition] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Multi-Display Edition]) + + pci:v00001002d00005159sv0000148Csd00002023* +- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Evil Master Multi-Display] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Evil Master Multi-Display]) + + pci:v00001002d00005159sv0000174Bsd00000280* +- ID_MODEL_FROM_DATABASE=Radeon RV100 QY [Radeon 7000/VE] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon RV100 QY [Radeon 7000/VE]) + + pci:v00001002d00005159sv0000174Bsd00007112* +- ID_MODEL_FROM_DATABASE=Radeon VE 7000 ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000) + + pci:v00001002d00005159sv0000174Bsd00007C28* +- ID_MODEL_FROM_DATABASE=Radeon VE 7000 DDR ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000 DDR) + + pci:v00001002d00005159sv00001787sd00000202* +- ID_MODEL_FROM_DATABASE=RV100 QY [Excalibur Radeon 7000] ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Excalibur Radeon 7000]) + + pci:v00001002d00005159sv000017EEsd00001001* +- ID_MODEL_FROM_DATABASE=Radeon 7000 64MB DDR + DVI ++ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000 64MB DDR + DVI) + + pci:v00001002d0000515E* + ID_MODEL_FROM_DATABASE=ES1000 + + pci:v00001002d0000515Esv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 1955 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge SC440) + + pci:v00001002d0000515Esv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 860) + + pci:v00001002d0000515Esv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R900 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 2970 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T605 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R300 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T300 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R805 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000223* +- ID_MODEL_FROM_DATABASE=PowerEdge R905 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R905 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T105 Embedded ATI ES1000) + + pci:v00001002d0000515Esv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 Embedded ATI ES1000 ++ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R200 Embedded ATI ES1000) + + pci:v00001002d0000515Esv0000103Csd00001304* +- ID_MODEL_FROM_DATABASE=Integrity iLO2 Advanced KVM VGA [AD307A] ++ ID_MODEL_FROM_DATABASE=ES1000 (Integrity iLO2 Advanced KVM VGA [AD307A]) + + pci:v00001002d0000515Esv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=ES1000 (X7DVL-E-O motherboard) + + pci:v00001002d0000515Esv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=ES1000 (X7DBN Motherboard) + + pci:v00001002d0000515Esv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=ES1000 (S5000PSLSATA Server Board) + + pci:v00001002d00005245* + ID_MODEL_FROM_DATABASE=Rage 128 GL PCI + + pci:v00001002d00005245sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 128 ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Xpert 128) + + pci:v00001002d00005245sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) + + pci:v00001002d00005245sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) + + pci:v00001002d00005245sv00001002sd00000068* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) + + pci:v00001002d00005246* + ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x + + pci:v00001002d00005246sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Magnum/Xpert 128/Xpert 99 ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert 128/Xpert 99) + + pci:v00001002d00005246sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Magnum/Xpert128/X99/Xpert2000 ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert128/X99/Xpert2000) + + pci:v00001002d00005246sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) + + pci:v00001002d00005246sv00001002sd00000044* +- ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury/Xpert 128/Xpert 2000) + + pci:v00001002d00005246sv00001002sd00000068* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) + + pci:v00001002d00005246sv00001002sd00000448* +- ID_MODEL_FROM_DATABASE=Rage Fury ++ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury) + + pci:v00001002d0000524B* + ID_MODEL_FROM_DATABASE=Rage 128 VR PCI +@@ -3507,73 +3507,73 @@ pci:v00001002d0000524C* + ID_MODEL_FROM_DATABASE=Rage 128 VR AGP + + pci:v00001002d0000524Csv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99/Xpert 2000) + + pci:v00001002d0000524Csv00001002sd00000088* +- ID_MODEL_FROM_DATABASE=Xpert 99 ++ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99) + + pci:v00001002d00005346* + ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x + + pci:v00001002d00005346sv00001002sd00000048* +- ID_MODEL_FROM_DATABASE=RAGE 128 16MB VGA TVOUT AMC PAL ++ ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x (RAGE 128 16MB VGA TVOUT AMC PAL) + + pci:v00001002d0000534D* + ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x + + pci:v00001002d0000534Dsv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 99/Xpert 2000) + + pci:v00001002d0000534Dsv00001002sd00000018* +- ID_MODEL_FROM_DATABASE=Xpert 2000 ++ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 2000) + + pci:v00001002d00005354* + ID_MODEL_FROM_DATABASE=Mach 64 VT + + pci:v00001002d00005354sv00001002sd00005654* +- ID_MODEL_FROM_DATABASE=Mach 64 reference ++ ID_MODEL_FROM_DATABASE=Mach 64 VT (Mach 64 reference) + + pci:v00001002d00005446* + ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x + + pci:v00001002d00005446sv00001002sd00000004* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro) + + pci:v00001002d00005446sv00001002sd00000008* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005446sv00001002sd00000018* +- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) + + pci:v00001002d00005446sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) + + pci:v00001002d00005446sv00001002sd00000029* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) + + pci:v00001002d00005446sv00001002sd0000002A* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) + + pci:v00001002d00005446sv00001002sd0000002B* +- ID_MODEL_FROM_DATABASE=Rage 128 AIW ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) + + pci:v00001002d00005446sv00001002sd00000048* +- ID_MODEL_FROM_DATABASE=Xpert 2000 Pro ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Xpert 2000 Pro) + + pci:v00001002d00005452* + ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP + + pci:v00001002d00005452sv00001002sd0000001C* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) + + pci:v00001002d00005452sv0000103Csd00001279* +- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL ++ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) + + pci:v00001002d00005460* + ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] + + pci:v00001002d00005460sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] (CR11/VR11 Single Board Computer) + + pci:v00001002d00005461* + ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] +@@ -3594,16 +3594,16 @@ pci:v00001002d0000554B* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] + + pci:v00001002d0000554Bsv00001002sd00000302* +- ID_MODEL_FROM_DATABASE=Radeon X800 SE ++ ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] (Radeon X800 SE) + + pci:v00001002d0000554D* + ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] + + pci:v00001002d0000554Dsv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 XL ++ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (All-In-Wonder X800 XL) + + pci:v00001002d0000554Dsv00001458sd00002124* +- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) ++ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (GV-R80L256V-B (AGP)) + + pci:v00001002d0000554E* + ID_MODEL_FROM_DATABASE=R430 [All-In-Wonder X800 GT] +@@ -3627,7 +3627,7 @@ pci:v00001002d0000556D* + ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) + + pci:v00001002d0000556Dsv00001458sd00002125* +- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) ++ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) (GV-R80L256V-B (AGP)) + + pci:v00001002d0000556F* + ID_MODEL_FROM_DATABASE=R430 [Radeon X800] (Secondary) +@@ -3648,16 +3648,16 @@ pci:v00001002d00005653* + ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] + + pci:v00001002d00005653sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (Aspire 5024WLMi) + + pci:v00001002d00005653sv0000103Csd00000940* +- ID_MODEL_FROM_DATABASE=HP Compaq NW8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (HP Compaq NW8240 Mobile Workstation) + + pci:v00001002d00005654* + ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] + + pci:v00001002d00005654sv00001002sd00005654* +- ID_MODEL_FROM_DATABASE=Mach64VT Reference ++ ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] (Mach64VT Reference) + + pci:v00001002d00005655* + ID_MODEL_FROM_DATABASE=264VT3 [Mach64 VT3] +@@ -3699,22 +3699,22 @@ pci:v00001002d00005940* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) + + pci:v00001002d00005940sv000017AFsd00002021* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) (Excalibur Radeon 9250 (Secondary)) + + pci:v00001002d00005941* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) + + pci:v00001002d00005941sv00001458sd00004019* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) + + pci:v00001002d00005941sv0000174Bsd00007C12* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) + + pci:v00001002d00005941sv000017AFsd0000200D* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Excalibur Radeon 9200) + + pci:v00001002d00005941sv000018BCsd00000050* +- ID_MODEL_FROM_DATABASE=GC-R9200-C3 (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (GC-R9200-C3 (Secondary)) + + pci:v00001002d00005944* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE PCI] +@@ -3723,22 +3723,22 @@ pci:v00001002d00005950* + ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge + + pci:v00001002d00005950sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire 5024WLMMi) + + pci:v00001002d00005950sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (DC5750 Microtower) + + pci:v00001002d00005950sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Pavilion t3030.de Desktop PC) + + pci:v00001002d00005950sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MX6125) + + pci:v00001002d00005950sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MS-1013 Notebook) + + pci:v00001002d00005950sv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire L250) + + pci:v00001002d00005951* + ID_MODEL_FROM_DATABASE=RX480/RX482 Host Bridge +@@ -3750,19 +3750,19 @@ pci:v00001002d00005954* + ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] + + pci:v00001002d00005954sv00001002sd00005954* +- ID_MODEL_FROM_DATABASE=RV370 [Radeon Xpress 200G Series] ++ ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] (RV370 [Radeon Xpress 200G Series]) + + pci:v00001002d00005955* + ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] + + pci:v00001002d00005955sv00001002sd00005955* +- ID_MODEL_FROM_DATABASE=RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)] ++ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]) + + pci:v00001002d00005955sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MX6125) + + pci:v00001002d00005955sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MS-1013 Notebook) + + pci:v00001002d00005956* + ID_MODEL_FROM_DATABASE=RD790 Host Bridge +@@ -3771,7 +3771,7 @@ pci:v00001002d00005957* + ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge + + pci:v00001002d00005957sv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge (A770CrossFire Motherboard) + + pci:v00001002d00005958* + ID_MODEL_FROM_DATABASE=RD780 Host Bridge +@@ -3780,37 +3780,37 @@ pci:v00001002d00005960* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] + + pci:v00001002d00005960sv000017AFsd00002020* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Excalibur Radeon 9250) + + pci:v00001002d00005961* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] + + pci:v00001002d00005961sv00001002sd00002F72* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 9200 Series ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (All-in-Wonder 9200 Series) + + pci:v00001002d00005961sv00001019sd00004C30* +- ID_MODEL_FROM_DATABASE=Radeon 9200 VIVO ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 VIVO) + + pci:v00001002d00005961sv000012ABsd00005961* +- ID_MODEL_FROM_DATABASE=YUAN SMARTVGA Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (YUAN SMARTVGA Radeon 9200) + + pci:v00001002d00005961sv00001458sd00004018* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) + + pci:v00001002d00005961sv0000174Bsd00007C13* +- ID_MODEL_FROM_DATABASE=Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) + + pci:v00001002d00005961sv000017AFsd0000200C* +- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Excalibur Radeon 9200) + + pci:v00001002d00005961sv000018BCsd00000050* +- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster) + + pci:v00001002d00005961sv000018BCsd00000051* +- ID_MODEL_FROM_DATABASE=GC-R9200-C3 ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (GC-R9200-C3) + + pci:v00001002d00005961sv000018BCsd00000053* +- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster VIVO ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster VIVO) + + pci:v00001002d00005962* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] +@@ -3819,37 +3819,37 @@ pci:v00001002d00005964* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] + + pci:v00001002d00005964sv00001002sd00005964* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz) + + pci:v00001002d00005964sv00001043sd0000C006* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE / TD / 128M ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE / TD / 128M) + + pci:v00001002d00005964sv00001458sd00004018* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) + + pci:v00001002d00005964sv00001458sd00004032* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE 128MB) + + pci:v00001002d00005964sv0000147Bsd00006191* +- ID_MODEL_FROM_DATABASE=R9200SE-DT ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (R9200SE-DT) + + pci:v00001002d00005964sv0000148Csd00002073* +- ID_MODEL_FROM_DATABASE=CN-AG92E ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (CN-AG92E) + + pci:v00001002d00005964sv0000174Bsd00007C13* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) + + pci:v00001002d00005964sv00001787sd00005964* +- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Excalibur 9200SE VIVO 128M) + + pci:v00001002d00005964sv000017AFsd00002012* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE Excalibur) + + pci:v00001002d00005964sv000018BCsd00000170* +- ID_MODEL_FROM_DATABASE=Sapphire Radeon 9200 SE 128MB Game Buster ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Sapphire Radeon 9200 SE 128MB Game Buster) + + pci:v00001002d00005964sv000018BCsd00000173* +- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) + + pci:v00001002d00005965* + ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] +@@ -3858,10 +3858,10 @@ pci:v00001002d00005974* + ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] + + pci:v00001002d00005974sv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (DC5750 Microtower) + + pci:v00001002d00005974sv00001462sd00007141* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (Aspire L250) + + pci:v00001002d00005975* + ID_MODEL_FROM_DATABASE=RS482M [Mobility Radeon Xpress 200] +@@ -3870,7 +3870,7 @@ pci:v00001002d00005978* + ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) + + pci:v00001002d00005978sv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) (A770CrossFire Motherboard) + + pci:v00001002d00005979* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx0 port B) +@@ -3891,13 +3891,13 @@ pci:v00001002d0000597E* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) + + pci:v00001002d0000597Esv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) (A770CrossFire Motherboard) + + pci:v00001002d0000597F* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) + + pci:v00001002d0000597Fsv00001849sd00005957* +- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard ++ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) (A770CrossFire Motherboard) + + pci:v00001002d00005980* + ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx1 port A) +@@ -3918,7 +3918,7 @@ pci:v00001002d00005A12* + ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part + + pci:v00001002d00005A12sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part (H8DGU) + + pci:v00001002d00005A13* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (external gfx0 port A) +@@ -3939,7 +3939,7 @@ pci:v00001002d00005A18* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) + + pci:v00001002d00005A18sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) (H8DGU) + + pci:v00001002d00005A19* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port E) +@@ -3963,7 +3963,7 @@ pci:v00001002d00005A1F* + ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) + + pci:v00001002d00005A1Fsv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) (H8DGU) + + pci:v00001002d00005A20* + ID_MODEL_FROM_DATABASE=RD890S PCI Express bridge for GPP2 port 1 +@@ -3996,7 +3996,7 @@ pci:v00001002d00005A3F* + ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] + + pci:v00001002d00005A3Fsv00001462sd00007217* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] (Aspire L250) + + pci:v00001002d00005A41* + ID_MODEL_FROM_DATABASE=RS400 [Radeon Xpress 200] +@@ -4014,25 +4014,25 @@ pci:v00001002d00005B60* + ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] + + pci:v00001002d00005B60sv00001043sd0000002A* +- ID_MODEL_FROM_DATABASE=Extreme AX300SE-X ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300SE-X) + + pci:v00001002d00005B60sv00001043sd0000032E* +- ID_MODEL_FROM_DATABASE=Extreme AX300/TD ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300/TD) + + pci:v00001002d00005B60sv00001458sd00002102* +- ID_MODEL_FROM_DATABASE=GV-RX30S128D (X300SE) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (GV-RX30S128D (X300SE)) + + pci:v00001002d00005B60sv00001462sd00000400* +- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940 REV:200) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940 REV:200)) + + pci:v00001002d00005B60sv00001462sd00000402* +- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940)) + + pci:v00001002d00005B60sv0000174Bsd00000500* +- ID_MODEL_FROM_DATABASE=Radeon X300 (PCIE) ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Radeon X300 (PCIE)) + + pci:v00001002d00005B60sv0000196Dsd00001086* +- ID_MODEL_FROM_DATABASE=X300SE HM ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (X300SE HM) + + pci:v00001002d00005B62* + ID_MODEL_FROM_DATABASE=RV370 [Radeon X600/X600 SE] +@@ -4053,13 +4053,13 @@ pci:v00001002d00005B70* + ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] + + pci:v00001002d00005B70sv00001462sd00000403* +- ID_MODEL_FROM_DATABASE=Radeon X300 SE 128MB DDR ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE 128MB DDR) + + pci:v00001002d00005B70sv0000174Bsd00000501* +- ID_MODEL_FROM_DATABASE=Radeon X300 SE ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE) + + pci:v00001002d00005B70sv0000196Dsd00001087* +- ID_MODEL_FROM_DATABASE=Radeon X300 SE HyperMemory ++ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE HyperMemory) + + pci:v00001002d00005B72* + ID_MODEL_FROM_DATABASE=RV380 [Radeon X300/X550/X1050 Series] (Secondary) +@@ -4080,37 +4080,37 @@ pci:v00001002d00005C63* + ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] + + pci:v00001002d00005C63sv00001002sd00005C63* +- ID_MODEL_FROM_DATABASE=Apple iBook G4 2004 ++ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (Apple iBook G4 2004) + + pci:v00001002d00005C63sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (P30 notebook) + + pci:v00001002d00005D44* + ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) + + pci:v00001002d00005D44sv00001458sd00004019* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) + + pci:v00001002d00005D44sv00001458sd00004032* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB) + + pci:v00001002d00005D44sv0000147Bsd00006190* +- ID_MODEL_FROM_DATABASE=R9200SE-DT (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (R9200SE-DT (Secondary)) + + pci:v00001002d00005D44sv0000174Bsd00007C12* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) + + pci:v00001002d00005D44sv00001787sd00005965* +- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Excalibur 9200SE VIVO 128M (Secondary)) + + pci:v00001002d00005D44sv000017AFsd00002013* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE Excalibur (Secondary)) + + pci:v00001002d00005D44sv000018BCsd00000171* +- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB Game Buster (Secondary) ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB Game Buster (Secondary)) + + pci:v00001002d00005D44sv000018BCsd00000172* +- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] ++ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) + + pci:v00001002d00005D45* + ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] (Secondary) +@@ -4140,7 +4140,7 @@ pci:v00001002d00005D52* + ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] + + pci:v00001002d00005D52sv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Primary) ++ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (PowerColor X850XT PCIe (Primary)) + + pci:v00001002d00005D57* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] +@@ -4155,7 +4155,7 @@ pci:v00001002d00005D72* + ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) + + pci:v00001002d00005D72sv00001002sd00000B13* +- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Secondary) ++ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) (PowerColor X850XT PCIe (Secondary)) + + pci:v00001002d00005D77* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] (Secondary) +@@ -4179,13 +4179,13 @@ pci:v00001002d00005E4D* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] + + pci:v00001002d00005E4Dsv0000148Csd00002116* +- ID_MODEL_FROM_DATABASE=Bravo X700 ++ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Bravo X700) + + pci:v00001002d00005E4F* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] + + pci:v00001002d00005E4Fsv00001569sd00001E4F* +- ID_MODEL_FROM_DATABASE=Radeon X550 XT ++ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Radeon X550 XT) + + pci:v00001002d00005E6B* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700 PRO] (Secondary) +@@ -4194,7 +4194,7 @@ pci:v00001002d00005E6D* + ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) + + pci:v00001002d00005E6Dsv0000148Csd00002117* +- ID_MODEL_FROM_DATABASE=Bravo X700 (Secondary) ++ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) (Bravo X700 (Secondary)) + + pci:v00001002d00005F57* + ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] +@@ -4206,7 +4206,7 @@ pci:v00001002d00006601* + ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] + + pci:v00001002d00006601sv0000103Csd00002100* +- ID_MODEL_FROM_DATABASE=FirePro M4100 ++ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] (FirePro M4100) + + pci:v00001002d00006602* + ID_MODEL_FROM_DATABASE=Mars +@@ -4230,40 +4230,40 @@ pci:v00001002d00006610* + ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] + + pci:v00001002d00006610sv00001019sd00000030* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001028sd00002120* +- ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) + + pci:v00001002d00006610sv00001028sd00002322* +- ID_MODEL_FROM_DATABASE=Radeon R7 250 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) + + pci:v00001002d00006610sv00001462sd00002910* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001462sd00002911* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001642sd00003C81* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006610sv00001642sd00003C91* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) + + pci:v00001002d00006611* + ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] + + pci:v00001002d00006611sv00001028sd0000210B* +- ID_MODEL_FROM_DATABASE=Radeon R5 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R5 240 OEM) + + pci:v00001002d00006611sv0000174Bsd00004248* +- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) + + pci:v00001002d00006611sv0000174Bsd0000A240* +- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) + + pci:v00001002d00006611sv00001B0Asd000090D3* +- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM ++ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) + + pci:v00001002d00006613* + ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] +@@ -4302,28 +4302,28 @@ pci:v00001002d0000665C* + ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] + + pci:v00001002d0000665Csv00001043sd00000452* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 DirectCU II OC ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 DirectCU II OC) + + pci:v00001002d0000665Csv00001462sd00002930* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 OC ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 OC) + + pci:v00001002d0000665Csv00001462sd00002932* +- ID_MODEL_FROM_DATABASE=Radeon HD 8770 ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 8770) + + pci:v00001002d0000665Csv00001462sd00002934* +- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) + + pci:v00001002d0000665Csv0000148Csd00009260* +- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) + + pci:v00001002d0000665Csv00001682sd00003310* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Black Edition 2 GB ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Black Edition 2 GB) + + pci:v00001002d0000665Csv0000174Bsd0000E253* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Dual-X OC ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Dual-X OC) + + pci:v00001002d0000665Csv00001787sd00002329* +- ID_MODEL_FROM_DATABASE=Radeon HD 7790 TurboDuo ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 TurboDuo) + + pci:v00001002d0000665D* + ID_MODEL_FROM_DATABASE=Bonaire [Radeon R7 200 Series] +@@ -4335,7 +4335,7 @@ pci:v00001002d00006663* + ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] + + pci:v00001002d00006663sv00001025sd00000846* +- ID_MODEL_FROM_DATABASE=Radeon HD 8570A ++ ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] (Radeon HD 8570A) + + pci:v00001002d00006664* + ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] +@@ -4377,34 +4377,34 @@ pci:v00001002d00006720* + ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] + + pci:v00001002d00006720sv00001028sd0000048F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv00001028sd00000490* +- ID_MODEL_FROM_DATABASE=Alienware M17x R3 Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Alienware M17x R3 Radeon HD 6970M) + + pci:v00001002d00006720sv00001028sd000004A4* +- ID_MODEL_FROM_DATABASE=FirePro M8900 ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) + + pci:v00001002d00006720sv00001028sd000004BA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv00001028sd0000053F* +- ID_MODEL_FROM_DATABASE=FirePro M8900 ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) + + pci:v00001002d00006720sv0000106Bsd00000B00* +- ID_MODEL_FROM_DATABASE=Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) + + pci:v00001002d00006720sv00001558sd00005102* +- ID_MODEL_FROM_DATABASE=Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) + + pci:v00001002d00006720sv00001558sd00005104* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv00001558sd00007201* +- ID_MODEL_FROM_DATABASE=Radeon HD 6990M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) + + pci:v00001002d00006720sv0000174Bsd0000E188* +- ID_MODEL_FROM_DATABASE=Radeon HD 6970M ++ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) + + pci:v00001002d00006724* + ID_MODEL_FROM_DATABASE=Blackcomb [Mobility Radeon HD 6000 series] +@@ -4416,511 +4416,511 @@ pci:v00001002d00006738* + ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] + + pci:v00001002d00006738sv00001682sd00003103* +- ID_MODEL_FROM_DATABASE=Radeon HD 8670 ++ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Radeon HD 8670) + + pci:v00001002d00006738sv00001787sd0000201A* +- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] ++ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) + + pci:v00001002d00006738sv00001787sd0000201B* +- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] ++ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) + + pci:v00001002d00006739* + ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] + + pci:v00001002d00006739sv00001043sd000003B4* +- ID_MODEL_FROM_DATABASE=EAH6850 [Radeon HD 6850] ++ ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] (EAH6850 [Radeon HD 6850]) + + pci:v00001002d0000673E* + ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] + + pci:v00001002d0000673Esv0000148Csd00007720* +- ID_MODEL_FROM_DATABASE=Radeon HD 7720 OEM ++ ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] (Radeon HD 7720 OEM) + + pci:v00001002d00006740* + ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] + + pci:v00001002d00006740sv00001019sd0000238C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001019sd00002391* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001019sd00002392* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Precision M4600) + + pci:v00001002d00006740sv00001028sd0000053E* +- ID_MODEL_FROM_DATABASE=FirePro M5950 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) + + pci:v00001002d00006740sv0000103Csd00001630* +- ID_MODEL_FROM_DATABASE=FirePro M5950 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) + + pci:v00001002d00006740sv0000103Csd00001631* +- ID_MODEL_FROM_DATABASE=FirePro M5950 ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) + + pci:v00001002d00006740sv0000103Csd0000164B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000103Csd0000164E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000103Csd00001657* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00001658* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000165A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000165B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00001688* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00001689* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000168A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000185E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7690M XT ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 7690M XT) + + pci:v00001002d00006740sv0000103Csd00003388* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00003389* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd00003582* +- ID_MODEL_FROM_DATABASE=Radeon HD 6770M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) + + pci:v00001002d00006740sv0000103Csd0000366C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001043sd00001D02* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv00001043sd00001D12* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000104Dsd00009084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000104Dsd00009085* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B074* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B077* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv0000144Dsd0000B088* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006740sv000017AAsd00003982* +- ID_MODEL_FROM_DATABASE=Radeon HD 6730M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) + + pci:v00001002d00006741* + ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] + + pci:v00001002d00006741sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001019sd0000238F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000379* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000037B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000037E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000382* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000384* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000385* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000386* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000387* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000388* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000442* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000451* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000489* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000048B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000048C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000050F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000513* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000515* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000516* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000051E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000051F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000520* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000521* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000052A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000555* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000556* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000055D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000055E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000056D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd0000059F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000600* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000605* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000606* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001025sd00000619* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001028sd000004C1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004C5* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004CD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004D7* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd000004D9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001028sd0000052D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000103Csd00001617* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd00001646* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00001647* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd0000164B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd0000164E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000103Csd00001688* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00001689* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd0000168A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00001860* +- ID_MODEL_FROM_DATABASE=Radeon HD 7690M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7690M) + + pci:v00001002d00006741sv0000103Csd00003385* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000103Csd00003560* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd0000358D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00003590* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd00003593* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000103Csd0000366C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00001CD2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002121* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002122* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002123* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001043sd00002125* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) + + pci:v00001002d00006741sv00001043sd00002127* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) + + pci:v00001002d00006741sv0000104Dsd0000907B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000104Dsd00009080* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000106Bsd000000E2* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", Late 2011] ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (MacBookPro8,2 [Core i7, 15", Late 2011]) + + pci:v00001002d00006741sv00001179sd0000FD63* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv00001179sd0000FD65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000144Dsd0000C093* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000144Dsd0000C0AC* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv0000144Dsd0000C0B3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) + + pci:v00001002d00006741sv0000144Dsd0000C539* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000144Dsd0000C609* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv0000152Dsd00000914* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv000017AAsd000021E1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6630M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) + + pci:v00001002d00006741sv000017AAsd00003970* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv000017AAsd00003976* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006741sv00001854sd00000907* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650M ++ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) + + pci:v00001002d00006742* + ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] + + pci:v00001002d00006742sv00001002sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00001019sd00002393* +- ID_MODEL_FROM_DATABASE=Radeon HD 6610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6610M) + + pci:v00001002d00006742sv00001043sd00001D82* +- ID_MODEL_FROM_DATABASE=K53SK Laptop Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (K53SK Laptop Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB22* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB23* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB27* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB2A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB2C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB30* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB31* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB32* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB38* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB39* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB3A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB3B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB40* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB41* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB47* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB48* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB49* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB51* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB53* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB81* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB82* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FB83* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FC56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FCD4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001179sd0000FCEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7610M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) + + pci:v00001002d00006742sv00001458sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00001462sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv0000148Csd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00001682sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv0000174Bsd00005570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 5570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 5570]) + + pci:v00001002d00006742sv0000174Bsd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv0000174Bsd00007570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 7570]) + + pci:v00001002d00006742sv0000174Bsd00008510* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8510] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8510]) + + pci:v00001002d00006742sv0000174Bsd00008570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8570]) + + pci:v00001002d00006742sv00001787sd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv000017AFsd00006570* +- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) + + pci:v00001002d00006742sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Radeon HD 6625M ++ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6625M) + + pci:v00001002d00006743* + ID_MODEL_FROM_DATABASE=Whistler [Radeon E6760] +@@ -4935,133 +4935,133 @@ pci:v00001002d00006750* + ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] + + pci:v00001002d00006750sv00001462sd00002670* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6670A) + + pci:v00001002d00006750sv000017AAsd00003079* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) + + pci:v00001002d00006750sv000017AAsd0000307A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006750sv000017AAsd00003087* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) + + pci:v00001002d00006750sv000017AAsd00003618* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006750sv000017AAsd00003623* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006750sv000017AAsd00003627* +- ID_MODEL_FROM_DATABASE=Radeon HD 6650A ++ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) + + pci:v00001002d00006751* + ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] + + pci:v00001002d00006751sv00001028sd00000548* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006751sv00001462sd00002671* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) + + pci:v00001002d00006751sv00001462sd00002672* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) + + pci:v00001002d00006751sv00001462sd00002680* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006751sv00001462sd00002681* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006751sv000017AAsd00003087* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650A ++ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) + + pci:v00001002d00006758* + ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] + + pci:v00001002d00006758sv00001028sd00000B0E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006758sv0000103Csd00006882* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006758sv00001462sd0000250A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv0000148Csd00007670* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv00001545sd00007670* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv00001682sd00003300* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv0000174Bsd00007670* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) + + pci:v00001002d00006758sv0000174Bsd0000E181* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006758sv00001787sd00002309* +- ID_MODEL_FROM_DATABASE=Radeon HD 6670 ++ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) + + pci:v00001002d00006759* + ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] + + pci:v00001002d00006759sv0000103Csd00003130* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001043sd00000403* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001462sd00002500* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001462sd00002509* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv0000148Csd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv00001642sd00003A67* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001682sd00003280* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv00001682sd00003530* +- ID_MODEL_FROM_DATABASE=Radeon HD 8550 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 8550) + + pci:v00001002d00006759sv0000174Bsd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv0000174Bsd0000E142* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv0000174Bsd0000E181* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd0000908F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd00009090* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd00009091* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd00009092* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd0000909E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) + + pci:v00001002d00006759sv00001B0Asd000090B5* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d00006759sv00001B0Asd000090B6* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) + + pci:v00001002d0000675B* + ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] +@@ -5073,526 +5073,526 @@ pci:v00001002d0000675F* + ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] + + pci:v00001002d0000675Fsv0000148Csd00006510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) + + pci:v00001002d0000675Fsv0000148Csd00006530* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6530) + + pci:v00001002d0000675Fsv0000148Csd00007510* +- ID_MODEL_FROM_DATABASE=Radeon HD 7510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) + + pci:v00001002d0000675Fsv00001545sd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7570) + + pci:v00001002d0000675Fsv0000174Bsd00006510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) + + pci:v00001002d0000675Fsv0000174Bsd00007510* +- ID_MODEL_FROM_DATABASE=Radeon HD 7510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) + + pci:v00001002d0000675Fsv0000174Bsd00008510* +- ID_MODEL_FROM_DATABASE=Radeon HD 8510 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 8510) + + pci:v00001002d0000675Fsv00001787sd00002012* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 2GB GDDR3 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 2GB GDDR3) + + pci:v00001002d0000675Fsv00001787sd00002314* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 1GB DDR2/GDDR3 ++ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 1GB DDR2/GDDR3) + + pci:v00001002d00006760* + ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] + + pci:v00001002d00006760sv00001002sd00000124* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001002sd00000134* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd0000238B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd00002390* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001019sd00009985* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004C1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004C3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004CA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004CB* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004CC* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Vostro 3350) + + pci:v00001002d00006760sv00001028sd000004D1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004D3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd000004D7* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000502* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000503* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000506* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000507* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001028sd0000051C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001028sd0000051D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv0000103Csd0000161A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000161B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000161E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000161F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001622* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv0000103Csd00001623* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv0000103Csd0000164A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000164D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001651* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001656* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00001658* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00001659* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000165B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000165D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000165F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001661* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001663* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001665* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001667* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001669* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000166B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000166C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000166E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001670* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001672* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000167A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000167B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000167D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000167F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000168C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000168F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001694* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001696* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00001698* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000169A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000169C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00001855* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd00001859* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd0000185C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd0000185D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000103Csd0000185F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000103Csd00001863* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv0000103Csd0000355C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000355F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003563* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003565* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003567* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003569* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003581* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003584* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd0000358C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000358F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003592* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd00003596* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000103Csd0000366B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000103Csd00003671* +- ID_MODEL_FROM_DATABASE=FirePro M3900 ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (FirePro M3900) + + pci:v00001002d00006760sv0000103Csd00003673* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000100A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000100C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000101B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000101C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000102A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv00001043sd0000102C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd0000104B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000105D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000106B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000106D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000107D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00001CB2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00001D22* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00001D32* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00002001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00002002* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00002107* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00002108* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00002109* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd000084A0* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd000084E9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001043sd00008515* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd00008517* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001043sd0000855A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000104Dsd0000907B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000104Dsd00009084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000104Dsd00009085* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001179sd00000003* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001179sd00000004* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) + + pci:v00001002d00006760sv00001179sd0000FB22* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB23* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB2C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB31* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB32* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB33* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB38* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB39* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB3A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB40* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB41* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB42* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB47* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB48* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB51* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB53* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB81* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB82* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FB83* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FC51* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001179sd0000FC52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FC56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FCD3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FCD4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FCEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv00001179sd0000FDEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000144Dsd0000B074* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000B084* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C095* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C0B3* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) + + pci:v00001002d00006760sv0000144Dsd0000C538* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C581* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C589* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000144Dsd0000C609* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000144Dsd0000C625* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv0000144Dsd0000C636* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv00001462sd000010AC* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv0000152Dsd00000916* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd000021E5* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd00003900* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00003902* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00003969* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd00003970* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00003976* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd0000397B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd0000397D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv000017AAsd00005101* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) + + pci:v00001002d00006760sv000017AAsd00005102* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00005103* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv000017AAsd00005106* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) + + pci:v00001002d00006760sv00001854sd00000897* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001854sd00000900* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001854sd00000908* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006760sv00001854sd00002015* +- ID_MODEL_FROM_DATABASE=Radeon HD 6470M ++ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) + + pci:v00001002d00006761* + ID_MODEL_FROM_DATABASE=Seymour LP [Radeon HD 6430M] +@@ -5619,22 +5619,22 @@ pci:v00001002d00006770* + ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] + + pci:v00001002d00006770sv000017AAsd0000308D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7450A) + + pci:v00001002d00006770sv000017AAsd00003623* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd00003627* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd00003629* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd0000363C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) + + pci:v00001002d00006770sv000017AAsd00003658* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7470A) + + pci:v00001002d00006771* + ID_MODEL_FROM_DATABASE=Caicos XTX [Radeon HD 8490 / R5 235X OEM] +@@ -5646,133 +5646,133 @@ pci:v00001002d00006778* + ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] + + pci:v00001002d00006778sv00001019sd00000024* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) + + pci:v00001002d00006778sv00001019sd00000027* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001028sd00002120* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) + + pci:v00001002d00006778sv00001462sd0000B491* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001462sd0000B492* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001462sd0000B493* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 OEM ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470 OEM) + + pci:v00001002d00006778sv00001642sd00003C65* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv00001642sd00003C75* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv0000174Bsd00008145* +- ID_MODEL_FROM_DATABASE=Radeon HD 8470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) + + pci:v00001002d00006778sv0000174Bsd0000E145* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) + + pci:v00001002d00006779* + ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] + + pci:v00001002d00006779sv00001019sd00000016* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001019sd00000017* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001019sd00000018* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001028sd00002120* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000103Csd00002128* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000103Csd00002AEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) + + pci:v00001002d00006779sv00001462sd00002125* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001462sd00002346* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv00001462sd00002490* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001462sd00002494* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001462sd00002496* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000148Csd00007450* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000148Csd00008450* +- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) + + pci:v00001002d00006779sv00001545sd00007470* +- ID_MODEL_FROM_DATABASE=Radeon HD 7470 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7470) + + pci:v00001002d00006779sv00001642sd00003A65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001642sd00003A66* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv00001642sd00003A75* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001642sd00003A76* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv00001682sd00003200* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000174Bsd00007450* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) + + pci:v00001002d00006779sv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000174Bsd0000E164* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1 GB DDR3 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450 1 GB DDR3) + + pci:v00001002d00006779sv0000174Bsd0000E180* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv0000174Bsd0000E201* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv000017AFsd00008450* +- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) + + pci:v00001002d00006779sv00001B0Asd00009096* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001B0Asd00009097* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001B0Asd000090A8* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450A) + + pci:v00001002d00006779sv00001B0Asd000090B1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) + + pci:v00001002d00006779sv00001B0Asd000090B3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) + + pci:v00001002d00006779sv00001B0Asd000090BB* +- ID_MODEL_FROM_DATABASE=Radeon HD 7450A ++ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) + + pci:v00001002d0000677B* + ID_MODEL_FROM_DATABASE=Caicos PRO [Radeon HD 7450] +@@ -5790,25 +5790,25 @@ pci:v00001002d0000678A* + ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] + + pci:v00001002d0000678Asv00001002sd0000030C* +- ID_MODEL_FROM_DATABASE=FirePro W8000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) + + pci:v00001002d0000678Asv00001002sd00000310* +- ID_MODEL_FROM_DATABASE=FirePro S9000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S9000) + + pci:v00001002d0000678Asv00001002sd00000420* +- ID_MODEL_FROM_DATABASE=Radeon Sky 700 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 700) + + pci:v00001002d0000678Asv00001002sd00000422* +- ID_MODEL_FROM_DATABASE=Radeon Sky 900 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 900) + + pci:v00001002d0000678Asv00001002sd00000B0E* +- ID_MODEL_FROM_DATABASE=FirePro S10000 Passive ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000 Passive) + + pci:v00001002d0000678Asv00001002sd00000B2A* +- ID_MODEL_FROM_DATABASE=FirePro S10000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000) + + pci:v00001002d0000678Asv00001028sd0000030C* +- ID_MODEL_FROM_DATABASE=FirePro W8000 ++ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) + + pci:v00001002d00006790* + ID_MODEL_FROM_DATABASE=Tahiti +@@ -5823,67 +5823,67 @@ pci:v00001002d00006798* + ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] + + pci:v00001002d00006798sv00001002sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) + + pci:v00001002d00006798sv00001002sd00003001* +- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X]) + + pci:v00001002d00006798sv00001002sd00004000* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970 OEM ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 8970 OEM) + + pci:v00001002d00006798sv00001043sd0000041C* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II) + + pci:v00001002d00006798sv00001043sd00000420* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) + + pci:v00001002d00006798sv00001043sd00000444* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) + + pci:v00001002d00006798sv00001043sd00000448* +- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) + + pci:v00001002d00006798sv00001043sd0000044A* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970]) + + pci:v00001002d00006798sv00001043sd0000044C* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970 Platinum] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970 Platinum]) + + pci:v00001002d00006798sv00001043sd00003001* +- ID_MODEL_FROM_DATABASE=Tahiti XTL [ROG Matrix R9 280X] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [ROG Matrix R9 280X]) + + pci:v00001002d00006798sv00001043sd00003006* +- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X DirectCU II TOP] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X DirectCU II TOP]) + + pci:v00001002d00006798sv00001043sd00009999* +- ID_MODEL_FROM_DATABASE=ARES II ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (ARES II) + + pci:v00001002d00006798sv00001092sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) + + pci:v00001002d00006798sv00001458sd00002261* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition OC]) + + pci:v00001002d00006798sv00001462sd00002774* +- ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (MSI R7970 TF 3GD5/OC BE) + + pci:v00001002d00006798sv00001682sd00003211* +- ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970 Black Edition) + + pci:v00001002d00006798sv00001682sd00003213* +- ID_MODEL_FROM_DATABASE=HD 7970 Black Edition ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 Black Edition) + + pci:v00001002d00006798sv00001682sd00003214* +- ID_MODEL_FROM_DATABASE=Double D HD 7970 ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970) + + pci:v00001002d00006798sv00001787sd0000201C* +- ID_MODEL_FROM_DATABASE=HD 7970 IceQ X² ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 IceQ X²) + + pci:v00001002d00006798sv00001787sd00002317* +- ID_MODEL_FROM_DATABASE=Radeon HD 7990 ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 7990) + + pci:v00001002d00006798sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] ++ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) + + pci:v00001002d00006799* + ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] +@@ -5892,28 +5892,28 @@ pci:v00001002d0000679A* + ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] + + pci:v00001002d0000679Asv00001002sd00000B01* +- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) + + pci:v00001002d0000679Asv00001002sd00003000* +- ID_MODEL_FROM_DATABASE=Tahiti PRO2 [Radeon HD 7950 Boost] ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Tahiti PRO2 [Radeon HD 7950 Boost]) + + pci:v00001002d0000679Asv00001462sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM ++ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) + + pci:v00001002d0000679B* + ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] + + pci:v00001002d0000679Bsv00001002sd00000B28* +- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) + + pci:v00001002d0000679Bsv00001002sd00000B2A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7990 ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 7990) + + pci:v00001002d0000679Bsv00001462sd00008036* +- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) + + pci:v00001002d0000679Bsv0000148Csd00008990* +- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM ++ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) + + pci:v00001002d0000679E* + ID_MODEL_FROM_DATABASE=Tahiti LE [Radeon HD 7870 XT] +@@ -5955,28 +5955,28 @@ pci:v00001002d00006800* + ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] + + pci:v00001002d00006800sv00001002sd00000124* +- ID_MODEL_FROM_DATABASE=Radeon HD 7970M ++ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) + + pci:v00001002d00006800sv00008086sd00002110* +- ID_MODEL_FROM_DATABASE=Radeon HD 7970M ++ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) + + pci:v00001002d00006800sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Radeon HD 7970M ++ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) + + pci:v00001002d00006801* + ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] + + pci:v00001002d00006801sv00001002sd00000124* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970M ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) + + pci:v00001002d00006801sv00001462sd00001117* +- ID_MODEL_FROM_DATABASE=Radeon R9 M290X ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon R9 M290X) + + pci:v00001002d00006801sv00008086sd00002110* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970M ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) + + pci:v00001002d00006801sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Radeon HD 8970M ++ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) + + pci:v00001002d00006802* + ID_MODEL_FROM_DATABASE=Wimbledon +@@ -5988,10 +5988,10 @@ pci:v00001002d00006808* + ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] + + pci:v00001002d00006808sv00001002sd00000310* +- ID_MODEL_FROM_DATABASE=FirePro S7000 ++ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (FirePro S7000) + + pci:v00001002d00006808sv00001002sd00000420* +- ID_MODEL_FROM_DATABASE=Radeon Sky 500 ++ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (Radeon Sky 500) + + pci:v00001002d00006809* + ID_MODEL_FROM_DATABASE=Pitcairn LE GL [FirePro W5000] +@@ -6012,37 +6012,37 @@ pci:v00001002d00006818* + ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] + + pci:v00001002d00006818sv00001002sd00000B05* +- ID_MODEL_FROM_DATABASE=Radeon HD 8870 OEM ++ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8870 OEM) + + pci:v00001002d00006818sv0000174Bsd00008B04* +- ID_MODEL_FROM_DATABASE=Radeon HD 8860 ++ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8860) + + pci:v00001002d00006819* + ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] + + pci:v00001002d00006819sv0000174Bsd0000E221* +- ID_MODEL_FROM_DATABASE=Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP ++ ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) + + pci:v00001002d00006820* + ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] + + pci:v00001002d00006820sv0000103Csd00001851* +- ID_MODEL_FROM_DATABASE=Radeon HD 7750M ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) + + pci:v00001002d00006820sv000017AAsd00003801* +- ID_MODEL_FROM_DATABASE=Radeon R9 M275 ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) + + pci:v00001002d00006821* + ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] + + pci:v00001002d00006821sv00001002sd0000031E* +- ID_MODEL_FROM_DATABASE=FirePro SX4000 ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) + + pci:v00001002d00006821sv00001028sd000005CC* +- ID_MODEL_FROM_DATABASE=FirePro M5100 ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) + + pci:v00001002d00006821sv00001028sd000015CC* +- ID_MODEL_FROM_DATABASE=FirePro M5100 ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) + + pci:v00001002d00006822* + ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] +@@ -6054,7 +6054,7 @@ pci:v00001002d00006825* + ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] + + pci:v00001002d00006825sv00008086sd00002111* +- ID_MODEL_FROM_DATABASE=Chelsea PRO ++ ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] (Chelsea PRO) + + pci:v00001002d00006826* + ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7700M Series] +@@ -6081,7 +6081,7 @@ pci:v00001002d0000682F* + ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] + + pci:v00001002d0000682Fsv0000103Csd00001851* +- ID_MODEL_FROM_DATABASE=Radeon HD 7750M ++ ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] (Radeon HD 7750M) + + pci:v00001002d00006830* + ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7800M Series] +@@ -6096,16 +6096,16 @@ pci:v00001002d00006837* + ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] + + pci:v00001002d00006837sv00001462sd00002796* +- ID_MODEL_FROM_DATABASE=Radeon HD 8730 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) + + pci:v00001002d00006837sv00001462sd00008092* +- ID_MODEL_FROM_DATABASE=Radeon HD 8730 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) + + pci:v00001002d00006837sv0000148Csd00008730* +- ID_MODEL_FROM_DATABASE=Radeon HD 8730 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) + + pci:v00001002d00006837sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 6570) + + pci:v00001002d00006838* + ID_MODEL_FROM_DATABASE=Cape Verde +@@ -6120,19 +6120,19 @@ pci:v00001002d0000683D* + ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] + + pci:v00001002d0000683Dsv00001002sd00000030* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv00001019sd00000030* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv0000103Csd00006890* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv00001043sd00008760* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683Dsv0000174Bsd00008304* +- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + + pci:v00001002d0000683F* + ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] +@@ -6141,322 +6141,322 @@ pci:v00001002d00006840* + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] + + pci:v00001002d00006840sv00001025sd0000050E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000050F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000513* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000056D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000059A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000059B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd0000059E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000600* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000606* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001025sd00000696* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000697* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000698* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000699* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv00001025sd00000757* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd0000056A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd0000056E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd00000598* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd0000059D* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd000005A3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd000005B9* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001028sd000005BB* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000017F1* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7570M) + + pci:v00001002d00006840sv0000103Csd000017F4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) + + pci:v00001002d00006840sv0000103Csd00001813* +- ID_MODEL_FROM_DATABASE=Radeon HD 7590M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7590M) + + pci:v00001002d00006840sv0000103Csd0000182F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001830* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001835* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000183A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000183C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000183E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001840* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001842* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001844* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001848* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000184A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd0000184C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001895* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd00001897* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000018A5* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000018A7* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000103Csd000018F4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd0000100A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd0000104B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd000010DC* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002121* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002122* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002123* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002125* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001043sd00002127* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB11* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB22* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB23* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB2C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB31* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB32* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB38* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB39* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB3A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB40* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB41* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB47* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB48* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB51* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB52* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB53* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB81* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB82* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FB83* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FC56* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FCD4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv00001179sd0000FCEE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000144Dsd0000C0C5* +- ID_MODEL_FROM_DATABASE=Radeon HD 7690M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7690M) + + pci:v00001002d00006840sv0000144Dsd0000C0CE* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv0000144Dsd0000C0DA* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00003970* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd0000397B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00005101* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00005102* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006840sv000017AAsd00005103* +- ID_MODEL_FROM_DATABASE=Radeon HD 7670M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) + + pci:v00001002d00006841* + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] + + pci:v00001002d00006841sv00001028sd00000561* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001028sd0000056C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001028sd0000057F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv0000103Csd000017F1* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv0000103Csd000017F4* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001813* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv0000103Csd0000183A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd0000183C* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd0000183E* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001840* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001842* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv0000103Csd00001844* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd0000100A* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd0000104B* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd000010DC* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001043sd00002134* +- ID_MODEL_FROM_DATABASE=Radeon HD 7650M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) + + pci:v00001002d00006841sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv00001179sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) + + pci:v00001002d00006841sv00001179sd0000FB43* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FB91* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FB92* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FB93* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FBA2* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv00001179sd0000FBA3* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006841sv0000144Dsd0000C0C7* +- ID_MODEL_FROM_DATABASE=Radeon HD 7550M ++ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) + + pci:v00001002d00006842* + ID_MODEL_FROM_DATABASE=Thames LE [Radeon HD 7000M Series] +@@ -6471,13 +6471,13 @@ pci:v00001002d00006889* + ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] + + pci:v00001002d00006889sv00001002sd00000301* +- ID_MODEL_FROM_DATABASE=FirePro V7800P ++ ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] (FirePro V7800P) + + pci:v00001002d0000688A* + ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] + + pci:v00001002d0000688Asv00001002sd0000030C* +- ID_MODEL_FROM_DATABASE=FirePro V9800P ++ ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] (FirePro V9800P) + + pci:v00001002d0000688C* + ID_MODEL_FROM_DATABASE=Cypress XT GL [FireStream 9370] +@@ -6489,28 +6489,28 @@ pci:v00001002d00006898* + ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] + + pci:v00001002d00006898sv00001002sd00000B00* +- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Eyefinity⁶ Edition ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Eyefinity⁶ Edition) + + pci:v00001002d00006898sv0000106Bsd000000D0* +- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Mac Edition ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Mac Edition) + + pci:v00001002d00006898sv00001462sd00008032* +- ID_MODEL_FROM_DATABASE=Radeon HD 5870 1 GB GDDR5 ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 1 GB GDDR5) + + pci:v00001002d00006898sv0000174Bsd00006870* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870 1600SP Edition ++ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 6870 1600SP Edition) + + pci:v00001002d00006899* + ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] + + pci:v00001002d00006899sv00001043sd00000330* +- ID_MODEL_FROM_DATABASE=Radeon HD 5850 ++ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850) + + pci:v00001002d00006899sv0000174Bsd0000237B* +- ID_MODEL_FROM_DATABASE=Radeon HD 5850 X2 ++ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850 X2) + + pci:v00001002d00006899sv0000174Bsd00006850* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850 1440SP Edition ++ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 6850 1440SP Edition) + + pci:v00001002d0000689B* + ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 6800 Series] +@@ -6519,7 +6519,7 @@ pci:v00001002d0000689C* + ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] + + pci:v00001002d0000689Csv00001043sd00000352* +- ID_MODEL_FROM_DATABASE=ARES ++ ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] (ARES) + + pci:v00001002d0000689D* + ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] +@@ -6531,79 +6531,79 @@ pci:v00001002d000068A0* + ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] + + pci:v00001002d000068A0sv00001028sd000012EF* +- ID_MODEL_FROM_DATABASE=FirePro M7820 ++ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) + + pci:v00001002d000068A0sv0000103Csd00001520* +- ID_MODEL_FROM_DATABASE=FirePro M7820 ++ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) + + pci:v00001002d000068A1* + ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] + + pci:v00001002d000068A1sv0000106Bsd000000CC* +- ID_MODEL_FROM_DATABASE=iMac MC511 Mobility Radeon HD 5850 MXM Module ++ ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] (iMac MC511 Mobility Radeon HD 5850 MXM Module) + + pci:v00001002d000068A8* + ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] + + pci:v00001002d000068A8sv00001025sd00000442* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000451* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000050F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000513* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000514* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000515* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000516* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000525* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd00000526* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001025sd0000056D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv00001028sd0000048F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv00001028sd00000490* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv00001028sd000004B9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv00001028sd000004BA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6870M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) + + pci:v00001002d000068A8sv0000103Csd0000159B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A8sv0000144Dsd0000C0AD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6850M ++ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) + + pci:v00001002d000068A9* + ID_MODEL_FROM_DATABASE=Juniper XT [FirePro V5800] +@@ -6612,7 +6612,7 @@ pci:v00001002d000068B8* + ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] + + pci:v00001002d000068B8sv0000106Bsd000000CF* +- ID_MODEL_FROM_DATABASE=MacPro5,1 [Mac Pro 2.8GHz DDR3] ++ ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] (MacPro5,1 [Mac Pro 2.8GHz DDR3]) + + pci:v00001002d000068B9* + ID_MODEL_FROM_DATABASE=Juniper LE [Radeon HD 5670 640SP Edition] +@@ -6624,466 +6624,466 @@ pci:v00001002d000068BE* + ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] + + pci:v00001002d000068BEsv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750 ++ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] (Radeon HD 6750) + + pci:v00001002d000068BF* + ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] + + pci:v00001002d000068BFsv0000174Bsd00006750* +- ID_MODEL_FROM_DATABASE=Radeon HD 6750 ++ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] (Radeon HD 6750) + + pci:v00001002d000068C0* + ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] + + pci:v00001002d000068C0sv00001019sd00002383* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv00001028sd000002A2* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv00001028sd000002FE* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv00001028sd00000419* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv0000103Csd0000147D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv0000103Csd00001521* +- ID_MODEL_FROM_DATABASE=Madison XT [FirePro M5800] ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Madison XT [FirePro M5800]) + + pci:v00001002d000068C0sv0000103Csd00001593* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) + + pci:v00001002d000068C0sv0000103Csd00001596* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) + + pci:v00001002d000068C0sv0000103Csd00001599* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) + + pci:v00001002d000068C0sv00001043sd00001C22* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv000017AAsd00003927* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv000017AAsd00003952* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) + + pci:v00001002d000068C0sv000017AAsd00003978* +- ID_MODEL_FROM_DATABASE=Radeon HD 6570M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Radeon HD 6570M) + + pci:v00001002d000068C1* + ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] + + pci:v00001002d000068C1sv00001025sd00000205* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000293* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000294* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000296* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000308* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000030A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000311* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000312* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000031C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000031D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000033D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000033E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000033F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000346* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Aspire 7740G) + + pci:v00001002d000068C1sv00001025sd00000348* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000356* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000357* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000358* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000359* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000035E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000360* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000362* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000364* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000365* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000366* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000367* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000368* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000036F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000372* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000373* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000377* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000378* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000379* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000037F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000382* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000383* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000384* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000385* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000386* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000387* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000388* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000038B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000038C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000039A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000411* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000412* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000418* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000419* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000420* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000421* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000425* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000042A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000042E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000042F* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000432* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000433* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000442* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000044C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd0000044E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000451* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000454* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000455* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000475* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000476* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000487* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000489* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000498* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001025sd00000517* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000051D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd00000525* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd00000526* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000052B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000052C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd0000053F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001025sd00000607* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C1sv00001028sd0000041B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000447* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000448* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000456* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001028sd00000457* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001436* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001437* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001440* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001448* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001449* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000144A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000144B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000147B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000149C* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd0000149E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000103Csd00001521* +- ID_MODEL_FROM_DATABASE=Madison Pro [FirePro M5800] ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Madison Pro [FirePro M5800]) + + pci:v00001002d000068C1sv00001043sd00001BC2* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000104Dsd00009071* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000104Dsd00009077* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD00* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD12* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD1A* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD30* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD31* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD50* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FD52* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv00001179sd0000FD63* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv00001179sd0000FD65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv00001179sd0000FDD0* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv00001179sd0000FDD2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6530M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) + + pci:v00001002d000068C1sv0000144Dsd0000C07E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv0000144Dsd0000C085* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000014C0sd00000043* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000014C0sd0000004D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000017AAsd00003928* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000017AAsd00003951* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) + + pci:v00001002d000068C1sv000017AAsd00003977* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550M ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) + + pci:v00001002d000068C7* + ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] + + pci:v00001002d000068C7sv00001462sd00002241* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) + + pci:v00001002d000068C7sv00001462sd00002243* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) + + pci:v00001002d000068C7sv00001462sd00002244* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) + + pci:v00001002d000068C7sv00001462sd00002245* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550A ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) + + pci:v00001002d000068C7sv00001462sd00002246* +- ID_MODEL_FROM_DATABASE=Radeon HD 6550A ++ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) + + pci:v00001002d000068C8* + ID_MODEL_FROM_DATABASE=Redwood XT GL [FirePro V4800] +@@ -7095,115 +7095,115 @@ pci:v00001002d000068D8* + ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] + + pci:v00001002d000068D8sv00001028sd000068E0* +- ID_MODEL_FROM_DATABASE=Radeon HD 5670 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) + + pci:v00001002d000068D8sv0000174Bsd00005690* +- ID_MODEL_FROM_DATABASE=Radeon HD 5690 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) + + pci:v00001002d000068D8sv0000174Bsd00005730* +- ID_MODEL_FROM_DATABASE=Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) + + pci:v00001002d000068D8sv0000174Bsd0000E151* +- ID_MODEL_FROM_DATABASE=Radeon HD 5670 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) + + pci:v00001002d000068D8sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) + + pci:v00001002d000068D8sv000017AFsd00003010* +- ID_MODEL_FROM_DATABASE=Radeon HD 5730 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) + + pci:v00001002d000068D8sv000017AFsd00003011* +- ID_MODEL_FROM_DATABASE=Radeon HD 5690 ++ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) + + pci:v00001002d000068D9* + ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] + + pci:v00001002d000068D9sv0000103Csd00006870* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv0000103Csd00006872* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001043sd000003CE* +- ID_MODEL_FROM_DATABASE=Radeon HD 5550 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) + + pci:v00001002d000068D9sv00001462sd00002151* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001462sd00002240* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6610 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) + + pci:v00001002d000068D9sv00001545sd00005550* +- ID_MODEL_FROM_DATABASE=Radeon HD 5550 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) + + pci:v00001002d000068D9sv00001545sd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 7570) + + pci:v00001002d000068D9sv00001642sd00003985* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001642sd00003996* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv0000174Bsd00006510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv0000174Bsd00006610* +- ID_MODEL_FROM_DATABASE=Radeon HD 6610 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) + + pci:v00001002d000068D9sv0000174Bsd0000E142* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) + + pci:v00001002d000068D9sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6510 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) + + pci:v00001002d000068D9sv000017AFsd00003010* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5630) + + pci:v00001002d000068DA* + ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] + + pci:v00001002d000068DAsv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6390 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) + + pci:v00001002d000068DAsv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) + + pci:v00001002d000068DAsv00001545sd00007570* +- ID_MODEL_FROM_DATABASE=Radeon HD 7570 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 7570) + + pci:v00001002d000068DAsv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6390 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) + + pci:v00001002d000068DAsv0000174Bsd00005570* +- ID_MODEL_FROM_DATABASE=Radeon HD 5570 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5570) + + pci:v00001002d000068DAsv0000174Bsd00005630* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) + + pci:v00001002d000068DAsv0000174Bsd00006490* +- ID_MODEL_FROM_DATABASE=Radeon HD 6490 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) + + pci:v00001002d000068DAsv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) + + pci:v00001002d000068DAsv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6390 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) + + pci:v00001002d000068DAsv000017AFsd00003010* +- ID_MODEL_FROM_DATABASE=Radeon HD 5630 ++ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) + + pci:v00001002d000068DE* + ID_MODEL_FROM_DATABASE=Redwood +@@ -7212,349 +7212,349 @@ pci:v00001002d000068E0* + ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] + + pci:v00001002d000068E0sv00001028sd00000404* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv00001028sd00000414* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv00001028sd00000434* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001433* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001434* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001469* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd0000146B* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001486* +- ID_MODEL_FROM_DATABASE=TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450) ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450)) + + pci:v00001002d000068E0sv0000103Csd00001622* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd00001623* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000103Csd0000EEEE* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv0000104Dsd00009076* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) + + pci:v00001002d000068E0sv00001682sd0000304E* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E0sv00001682sd00006000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E0sv000017AAsd00009E52* +- ID_MODEL_FROM_DATABASE=FirePro M3800 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) + + pci:v00001002d000068E0sv000017AAsd00009E53* +- ID_MODEL_FROM_DATABASE=FirePro M3800 ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) + + pci:v00001002d000068E1* + ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] + + pci:v00001002d000068E1sv00001043sd0000041F* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv00001043sd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) + + pci:v00001002d000068E1sv0000148Csd00003002* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6250] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6250]) + + pci:v00001002d000068E1sv0000148Csd00003003* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) + + pci:v00001002d000068E1sv0000148Csd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv0000148Csd00008350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350]) + + pci:v00001002d000068E1sv00001545sd00005450* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv00001682sd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv00001682sd00006000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv00001682sd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000174Bsd00005470* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5470] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5470]) + + pci:v00001002d000068E1sv0000174Bsd00006000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv0000174Bsd00006230* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) + + pci:v00001002d000068E1sv0000174Bsd00006350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) + + pci:v00001002d000068E1sv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) + + pci:v00001002d000068E1sv000017AFsd00003001* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) + + pci:v00001002d000068E1sv000017AFsd00003014* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) + + pci:v00001002d000068E1sv000017AFsd00003015* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) + + pci:v00001002d000068E1sv000017AFsd00008350* +- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350 OEM] ++ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350 OEM]) + + pci:v00001002d000068E4* + ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] + + pci:v00001002d000068E4sv00001019sd00002386* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) + + pci:v00001002d000068E4sv00001019sd00002387* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) + + pci:v00001002d000068E4sv00001019sd0000238D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001019sd0000238E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd00000382* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd00000489* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd0000048A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd0000048B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001025sd0000048C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004C1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004CA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004CC* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004CD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001028sd000004D7* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001411* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001421* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001426* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001428* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000142A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000142B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000143A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000143C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001445* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000162F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001639* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163D* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163E* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000163F* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001641* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00001643* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00003578* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd0000357A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00003673* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000103Csd00003675* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001043sd00001C92* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001043sd000084A1* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001043sd000084AD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000104Dsd00009081* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 7350]) + + pci:v00001002d000068E4sv00001558sd00004510* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv00001558sd00005505* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv0000174Bsd00005450* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 5450]) + + pci:v00001002d000068E4sv000017AAsd000021DD* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv000017AAsd000021E9* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv000017AAsd00003971* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) + + pci:v00001002d000068E4sv000017AAsd00003972* +- ID_MODEL_FROM_DATABASE=Radeon HD 7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) + + pci:v00001002d000068E4sv000017AAsd0000397A* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) + + pci:v00001002d000068E4sv000017AAsd0000397B* +- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) + + pci:v00001002d000068E4sv000017AAsd0000397F* +- ID_MODEL_FROM_DATABASE=Radeon HD 7370M ++ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) + + pci:v00001002d000068E5* + ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] + + pci:v00001002d000068E5sv00001179sd0000FD3C* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD50* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD52* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD63* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD65* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD73* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FD75* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDD0* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDD2* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDEA* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv00001179sd0000FDF8* +- ID_MODEL_FROM_DATABASE=Radeon HD 6330M ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) + + pci:v00001002d000068E5sv0000148Csd00005450* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 5450]) + + pci:v00001002d000068E5sv0000148Csd00006350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 6350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 6350]) + + pci:v00001002d000068E5sv0000148Csd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) + + pci:v00001002d000068E5sv0000148Csd00008350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 8350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 8350]) + + pci:v00001002d000068E5sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] ++ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) + + pci:v00001002d000068E8* + ID_MODEL_FROM_DATABASE=Cedar +@@ -7575,259 +7575,259 @@ pci:v00001002d000068F9* + ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] + + pci:v00001002d000068F9sv00001019sd00000001* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001019sd00000002* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001019sd00000019* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001025sd00000518* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001025sd00000519* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (XPS 8300) + + pci:v00001002d000068F9sv00001028sd00002126* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000103Csd00002126* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000103Csd00002AAC* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000103Csd00002AAE* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000103Csd00003580* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001043sd00000386* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001043sd000003C2* +- ID_MODEL_FROM_DATABASE=EAH5450 SILENT/DI/512MD2 (LP) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (EAH5450 SILENT/DI/512MD2 (LP)) + + pci:v00001002d000068F9sv00001462sd00002130* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002131* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002133* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001462sd00002180* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002181* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002182* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001462sd00002183* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001462sd00002230* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002231* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001462sd00002495* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000148Csd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 5530/6250 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530/6250) + + pci:v00001002d000068F9sv0000148Csd00003002* +- ID_MODEL_FROM_DATABASE=Radeon HD 6290 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) + + pci:v00001002d000068F9sv0000148Csd00003003* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv0000148Csd00003004* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000148Csd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv0000148Csd00008350* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) + + pci:v00001002d000068F9sv00001545sd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv00001642sd00003983* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001642sd00003984* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001642sd00003987* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv00001642sd00003997* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001642sd00003A05* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001642sd00003B31* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350A ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350A) + + pci:v00001002d000068F9sv00001682sd00003270* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv0000174Bsd00003987* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000174Bsd00005470* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv0000174Bsd00005490* +- ID_MODEL_FROM_DATABASE=Radeon HD 5490 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) + + pci:v00001002d000068F9sv0000174Bsd00005530* +- ID_MODEL_FROM_DATABASE=Radeon HD 5530 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) + + pci:v00001002d000068F9sv0000174Bsd00006230* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv0000174Bsd00006250* +- ID_MODEL_FROM_DATABASE=Radeon HD 6250 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) + + pci:v00001002d000068F9sv0000174Bsd00006290* +- ID_MODEL_FROM_DATABASE=Radeon HD 6290 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) + + pci:v00001002d000068F9sv0000174Bsd00006350* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068F9sv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) + + pci:v00001002d000068F9sv0000174Bsd00008350* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) + + pci:v00001002d000068F9sv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000174Bsd0000E145* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv00001787sd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 5530 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) + + pci:v00001002d000068F9sv00001787sd00003002* +- ID_MODEL_FROM_DATABASE=Radeon HD 5490 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) + + pci:v00001002d000068F9sv000017AAsd00003602* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AAsd00003603* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AAsd0000360F* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AAsd00003619* +- ID_MODEL_FROM_DATABASE=Radeon HD 5450 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) + + pci:v00001002d000068F9sv000017AFsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 6250 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) + + pci:v00001002d000068F9sv000017AFsd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 6230 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) + + pci:v00001002d000068F9sv000017AFsd00003002* +- ID_MODEL_FROM_DATABASE=Radeon HD 6290 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) + + pci:v00001002d000068F9sv000017AFsd00003011* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv000017AFsd00003012* +- ID_MODEL_FROM_DATABASE=Radeon HD 5490 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) + + pci:v00001002d000068F9sv000017AFsd00003013* +- ID_MODEL_FROM_DATABASE=Radeon HD 5470 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) + + pci:v00001002d000068F9sv000017AFsd00003014* +- ID_MODEL_FROM_DATABASE=Radeon HD 6350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068FA* + ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] + + pci:v00001002d000068FAsv00001019sd00000019* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000021* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000022* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000026* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000103Csd00002ADF* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350A ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) + + pci:v00001002d000068FAsv0000103Csd00002AE8* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350A ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) + + pci:v00001002d000068FAsv00001043sd00008350* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) + + pci:v00001002d000068FAsv00001462sd00002128* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002184* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002186* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002495* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd0000B490* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001642sd00003985* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd00008153* +- ID_MODEL_FROM_DATABASE=Radeon HD 8350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E180* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FAsv000017AFsd00003015* +- ID_MODEL_FROM_DATABASE=Radeon HD 7350 ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) + + pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE +@@ -7863,16 +7863,16 @@ pci:v00001002d00007109* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] + + pci:v00001002d00007109sv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-in-Wonder X1800XL ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (All-in-Wonder X1800XL) + + pci:v00001002d00007109sv00001002sd00000D02* +- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (Radeon X1800 CrossFire Edition) + + pci:v00001002d0000710A* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] + + pci:v00001002d0000710Asv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=Radeon X1800 GTO² ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] (Radeon X1800 GTO²) + + pci:v00001002d0000710B* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] +@@ -7887,10 +7887,10 @@ pci:v00001002d00007129* + ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) + + pci:v00001002d00007129sv00001002sd00000323* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X1800 XL (Secondary) ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (All-In-Wonder X1800 XL (Secondary)) + + pci:v00001002d00007129sv00001002sd00000D03* +- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (Radeon X1800 CrossFire Edition (Secondary)) + + pci:v00001002d00007140* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550/X1600 Series] +@@ -7899,10 +7899,10 @@ pci:v00001002d00007142* + ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] + + pci:v00001002d00007142sv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition ++ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (All-in-Wonder 2006 PCI-E Edition) + + pci:v00001002d00007142sv00001043sd00000142* +- ID_MODEL_FROM_DATABASE=EAX1300PRO/TD/256M ++ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (EAX1300PRO/TD/256M) + + pci:v00001002d00007143* + ID_MODEL_FROM_DATABASE=RV505 [Radeon X1300/X1550 Series] +@@ -7911,16 +7911,16 @@ pci:v00001002d00007145* + ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] + + pci:v00001002d00007145sv000017AAsd00002006* +- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 ++ ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] (Thinkpad T60 model 2007) + + pci:v00001002d00007146* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] + + pci:v00001002d00007146sv00001002sd00000322* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (All-in-Wonder 2006 PCI-E Edition) + + pci:v00001002d00007146sv00001545sd00001996* +- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (Radeon X1300 512MB PCI-e) + + pci:v00001002d00007147* + ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 64-bit] +@@ -7944,7 +7944,7 @@ pci:v00001002d00007162* + ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) + + pci:v00001002d00007162sv00001002sd00000323* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) + + pci:v00001002d00007163* + ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 Series] (Secondary) +@@ -7953,10 +7953,10 @@ pci:v00001002d00007166* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) + + pci:v00001002d00007166sv00001002sd00000323* +- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) + + pci:v00001002d00007166sv00001545sd00001997* +- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e (Secondary) ++ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (Radeon X1300 512MB PCI-e (Secondary)) + + pci:v00001002d00007167* + ID_MODEL_FROM_DATABASE=RV515 [Radeon X1550 64-bit] (Secondary) +@@ -7983,7 +7983,7 @@ pci:v00001002d00007188* + ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] + + pci:v00001002d00007188sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=6910p ++ ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] (6910p) + + pci:v00001002d0000718A* + ID_MODEL_FROM_DATABASE=RV516/M64 [Mobility Radeon X2300] +@@ -8028,16 +8028,16 @@ pci:v00001002d000071C0* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] + + pci:v00001002d000071C0sv00001002sd0000E160* +- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO ++ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) + + pci:v00001002d000071C0sv0000174Bsd0000E160* +- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO ++ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) + + pci:v00001002d000071C1* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] + + pci:v00001002d000071C1sv0000174Bsd00000880* +- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Radeon X1700 FSC) + + pci:v00001002d000071C2* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 PRO] +@@ -8046,22 +8046,22 @@ pci:v00001002d000071C4* + ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] + + pci:v00001002d000071C4sv000017AAsd00002007* +- ID_MODEL_FROM_DATABASE=ThinkPad T60p ++ ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] (ThinkPad T60p) + + pci:v00001002d000071C5* + ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] + + pci:v00001002d000071C5sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq nx9420 Notebook) + + pci:v00001002d000071C5sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq NW8440 ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq NW8440) + + pci:v00001002d000071C5sv00001043sd000010B2* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (A6J-Q008) + + pci:v00001002d000071C5sv0000106Bsd00000080* +- ID_MODEL_FROM_DATABASE=MacBook Pro ++ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (MacBook Pro) + + pci:v00001002d000071C6* + ID_MODEL_FROM_DATABASE=RV530LE [Radeon X1600/X1650 PRO] +@@ -8070,7 +8070,7 @@ pci:v00001002d000071C7* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] + + pci:v00001002d000071C7sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=PowerColor X1650 PRO AGP ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (PowerColor X1650 PRO AGP) + + pci:v00001002d000071CE* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1300 XT/X1600 PRO] +@@ -8094,13 +8094,13 @@ pci:v00001002d000071E0* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) + + pci:v00001002d000071E0sv0000174Bsd0000E161* +- ID_MODEL_FROM_DATABASE=Radeon X1600 GTO (Secondary) ++ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) (Radeon X1600 GTO (Secondary)) + + pci:v00001002d000071E1* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) + + pci:v00001002d000071E1sv0000174Bsd00000881* +- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC (Secondary) ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1700 FSC (Secondary)) + + pci:v00001002d000071E2* + ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) +@@ -8112,7 +8112,7 @@ pci:v00001002d000071E7* + ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) + + pci:v00001002d000071E7sv00001787sd00003001* +- ID_MODEL_FROM_DATABASE=Radeon X1650 PRO AGP ++ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1650 PRO AGP) + + pci:v00001002d000071F2* + ID_MODEL_FROM_DATABASE=RV530 GL [FireGL V3400] (Secondary) +@@ -8127,7 +8127,7 @@ pci:v00001002d00007240* + ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] + + pci:v00001002d00007240sv00001002sd00000D02* +- ID_MODEL_FROM_DATABASE=Radeon X1950 CrossFire Edition ++ ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] (Radeon X1950 CrossFire Edition) + + pci:v00001002d00007244* + ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XT] +@@ -8139,25 +8139,25 @@ pci:v00001002d00007249* + ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] + + pci:v00001002d00007249sv00001002sd00000412* +- ID_MODEL_FROM_DATABASE=All-In-Wonder X1900 ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (All-In-Wonder X1900) + + pci:v00001002d00007249sv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=Radeon X1900 XT/XTX ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XT/XTX) + + pci:v00001002d00007249sv00001002sd00000D02* +- ID_MODEL_FROM_DATABASE=Radeon X1900 CrossFire Edition ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 CrossFire Edition) + + pci:v00001002d00007249sv00001043sd00000160* +- ID_MODEL_FROM_DATABASE=Radeon X1900 XTX 512 MB GDDR3 ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XTX 512 MB GDDR3) + + pci:v00001002d0000724B* + ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] + + pci:v00001002d0000724Bsv00001002sd00000B12* +- ID_MODEL_FROM_DATABASE=Radeon X1900 (Primary) ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Primary)) + + pci:v00001002d0000724Bsv00001002sd00000B13* +- ID_MODEL_FROM_DATABASE=Radeon X1900 (Secondary) ++ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Secondary)) + + pci:v00001002d0000724E* + ID_MODEL_FROM_DATABASE=R580 GL [FireGL V7350] +@@ -8181,7 +8181,7 @@ pci:v00001002d00007291* + ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] + + pci:v00001002d00007291sv00001462sd00000810* +- ID_MODEL_FROM_DATABASE=Radeon X1700 SE ++ ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] (Radeon X1700 SE) + + pci:v00001002d00007293* + ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 GT] +@@ -8214,10 +8214,10 @@ pci:v00001002d00007910* + ID_MODEL_FROM_DATABASE=RS690 Host Bridge + + pci:v00001002d00007910sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (Satellite P305D-S8995E) + + pci:v00001002d00007910sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (KI690-AM2 Motherboard) + + pci:v00001002d00007911* + ID_MODEL_FROM_DATABASE=RS690 Host Bridge +@@ -8238,31 +8238,31 @@ pci:v00001002d00007917* + ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) + + pci:v00001002d00007917sv00001002sd00007910* +- ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge ++ ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) (RS690 PCI to PCI Bridge) + + pci:v00001002d00007919* + ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] + + pci:v00001002d00007919sv00001179sd00007919* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (Satellite P305D-S8995E) + + pci:v00001002d00007919sv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (KI690-AM2 Motherboard) + + pci:v00001002d0000791E* + ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] + + pci:v00001002d0000791Esv00001462sd00007327* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (K9AG Neo2) + + pci:v00001002d0000791Esv000017F2sd00005000* +- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard ++ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (KI690-AM2 Motherboard) + + pci:v00001002d0000791F* + ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] + + pci:v00001002d0000791Fsv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] (Satellite P305D-S8995E) + + pci:v00001002d00007930* + ID_MODEL_FROM_DATABASE=RS600 Host Bridge +@@ -8301,13 +8301,13 @@ pci:v00001002d00009400* + ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] + + pci:v00001002d00009400sv00001002sd00002552* +- ID_MODEL_FROM_DATABASE=Radeon HD 2900 XT ++ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 XT) + + pci:v00001002d00009400sv00001002sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 2900 PRO ++ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 PRO) + + pci:v00001002d00009400sv00001002sd00003142* +- ID_MODEL_FROM_DATABASE=HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe ++ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe) + + pci:v00001002d00009401* + ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 XT] +@@ -8337,10 +8337,10 @@ pci:v00001002d00009442* + ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] + + pci:v00001002d00009442sv00001002sd00000502* +- ID_MODEL_FROM_DATABASE=MSI Radeon HD 4850 512MB GDDR3 ++ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (MSI Radeon HD 4850 512MB GDDR3) + + pci:v00001002d00009442sv0000174Bsd0000E810* +- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 ++ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (Radeon HD 4850 512MB GDDR3) + + pci:v00001002d00009443* + ID_MODEL_FROM_DATABASE=R700 [Radeon HD 4850 X2] +@@ -8364,7 +8364,7 @@ pci:v00001002d0000944E* + ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] + + pci:v00001002d0000944Esv0000174Bsd00003261* +- ID_MODEL_FROM_DATABASE=Radeon HD 4810 ++ ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] (Radeon HD 4810) + + pci:v00001002d00009450* + ID_MODEL_FROM_DATABASE=RV770 GL [FireStream 9270] +@@ -8391,7 +8391,7 @@ pci:v00001002d00009480* + ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] + + pci:v00001002d00009480sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4650 [dv6-1190en] ++ ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] (Mobility Radeon HD 4650 [dv6-1190en]) + + pci:v00001002d00009488* + ID_MODEL_FROM_DATABASE=RV730/M96-XT [Mobility Radeon HD 4670] +@@ -8403,7 +8403,7 @@ pci:v00001002d00009490* + ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] + + pci:v00001002d00009490sv0000174Bsd0000E880* +- ID_MODEL_FROM_DATABASE=Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO ++ ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] (Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO) + + pci:v00001002d00009491* + ID_MODEL_FROM_DATABASE=RV730/M96-CSP [Radeon E4690] +@@ -8412,19 +8412,19 @@ pci:v00001002d00009495* + ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] + + pci:v00001002d00009495sv00001002sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650/4670 AGP ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650/4670 AGP) + + pci:v00001002d00009495sv00001092sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4670 AGP 512MB DDR2 ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4670 AGP 512MB DDR2) + + pci:v00001002d00009495sv00001458sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) + + pci:v00001002d00009495sv00001682sd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) + + pci:v00001002d00009495sv0000174Bsd00000028* +- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP DDR2 ++ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP DDR2) + + pci:v00001002d00009498* + ID_MODEL_FROM_DATABASE=RV730 PRO [Radeon HD 4650] +@@ -8457,22 +8457,22 @@ pci:v00001002d000094C1* + ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] + + pci:v00001002d000094C1sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) + + pci:v00001002d000094C1sv00001028sd00000D02* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) + + pci:v00001002d000094C3* + ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] + + pci:v00001002d000094C3sv00001028sd00000302* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 Pro ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 Pro) + + pci:v00001002d000094C3sv0000174Bsd0000E400* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) + + pci:v00001002d000094C3sv000018BCsd00003550* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) + + pci:v00001002d000094C4* + ID_MODEL_FROM_DATABASE=RV610 LE [Radeon HD 2400 PRO AGP] +@@ -8490,7 +8490,7 @@ pci:v00001002d000094C9* + ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] + + pci:v00001002d000094C9sv00001002sd000094C9* +- ID_MODEL_FROM_DATABASE=Radeon HD2400 ++ ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] (Radeon HD2400) + + pci:v00001002d000094CB* + ID_MODEL_FROM_DATABASE=RV610 [Radeon E2400] +@@ -8505,7 +8505,7 @@ pci:v00001002d00009501* + ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] + + pci:v00001002d00009501sv0000174Bsd0000E620* +- ID_MODEL_FROM_DATABASE=Radeon HD 3870 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] (Radeon HD 3870) + + pci:v00001002d00009504* + ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850] +@@ -8514,13 +8514,13 @@ pci:v00001002d00009505* + ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] + + pci:v00001002d00009505sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3850 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3850) + + pci:v00001002d00009505sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3690/3850 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690/3850) + + pci:v00001002d00009505sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3690 ++ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690) + + pci:v00001002d00009506* + ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850 X2] +@@ -8556,76 +8556,76 @@ pci:v00001002d0000954F* + ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] + + pci:v00001002d0000954Fsv00001462sd00001618* +- ID_MODEL_FROM_DATABASE=R4350 MD512H (MS-V161) ++ ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] (R4350 MD512H (MS-V161)) + + pci:v00001002d00009552* + ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] + + pci:v00001002d00009552sv00001028sd00001103* +- ID_MODEL_FROM_DATABASE=M92 [Mobility Radeon HD 4330] ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (M92 [Mobility Radeon HD 4330]) + + pci:v00001002d00009552sv00001458sd000021AC* +- ID_MODEL_FROM_DATABASE=Radeon HD 4350 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350) + + pci:v00001002d00009552sv00001458sd000021ED* +- ID_MODEL_FROM_DATABASE=Radeon HD 4550 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4550) + + pci:v00001002d00009552sv0000148Csd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 4350 Go! Green 512MB GDDR3 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350 Go! Green 512MB GDDR3) + + pci:v00001002d00009552sv0000174Bsd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 4350/4550 HyperMemory DDR2 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350/4550 HyperMemory DDR2) + + pci:v00001002d00009553* + ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] + + pci:v00001002d00009553sv00001025sd0000015E* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd0000017D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd00000205* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd00000206* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001025sd00000237* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001028sd000002BE* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001028sd000002E8* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv0000103Csd00003624* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv0000103Csd00003636* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) + + pci:v00001002d00009553sv00001043sd00001B32* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001043sd00001B42* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv0000104Dsd00009056* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) + + pci:v00001002d00009553sv00001179sd0000FF82* +- ID_MODEL_FROM_DATABASE=Satellite L505-13T GPU (Mobility Radeon HD 5145) ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Satellite L505-13T GPU (Mobility Radeon HD 5145)) + + pci:v00001002d00009555* + ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] + + pci:v00001002d00009555sv0000103Csd00001411* +- ID_MODEL_FROM_DATABASE=ProBook 4720s GPU (Mobility Radeon HD 4350) ++ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] (ProBook 4720s GPU (Mobility Radeon HD 4350)) + + pci:v00001002d00009557* + ID_MODEL_FROM_DATABASE=RV711 GL [FirePro RG220] +@@ -8643,10 +8643,10 @@ pci:v00001002d00009583* + ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] + + pci:v00001002d00009583sv0000106Bsd00000083* +- ID_MODEL_FROM_DATABASE=iMac 7,1 ++ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (iMac 7,1) + + pci:v00001002d00009583sv00001734sd00001107* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 2700 ++ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (Mobility Radeon HD 2700) + + pci:v00001002d00009586* + ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT AGP] +@@ -8658,13 +8658,13 @@ pci:v00001002d00009588* + ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] + + pci:v00001002d00009588sv00001458sd0000216C* +- ID_MODEL_FROM_DATABASE=Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H) ++ ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] (Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H)) + + pci:v00001002d00009589* + ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] + + pci:v00001002d00009589sv00001787sd00003000* +- ID_MODEL_FROM_DATABASE=Radeon HD 3610 ++ ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] (Radeon HD 3610) + + pci:v00001002d0000958A* + ID_MODEL_FROM_DATABASE=RV630 [Radeon HD 2600 X2] +@@ -8682,7 +8682,7 @@ pci:v00001002d00009591* + ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] + + pci:v00001002d00009591sv00001002sd00009591* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3650 ++ ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] (Mobility Radeon HD 3650) + + pci:v00001002d00009593* + ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3670] +@@ -8694,7 +8694,7 @@ pci:v00001002d00009596* + ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] + + pci:v00001002d00009596sv00001043sd00000028* +- ID_MODEL_FROM_DATABASE=EAH3650 SILENT/HTDI/512M/A ++ ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] (EAH3650 SILENT/HTDI/512M/A) + + pci:v00001002d00009597* + ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] +@@ -8703,19 +8703,19 @@ pci:v00001002d00009598* + ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] + + pci:v00001002d00009598sv00001002sd00009598* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3600 ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Mobility Radeon HD 3600) + + pci:v00001002d00009598sv00001043sd000001D6* +- ID_MODEL_FROM_DATABASE=EAH3650 Silent ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (EAH3650 Silent) + + pci:v00001002d00009598sv00001043sd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 4570 ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 4570) + + pci:v00001002d00009598sv0000174Bsd00003001* +- ID_MODEL_FROM_DATABASE=Radeon HD 3750 ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 3750) + + pci:v00001002d00009598sv0000174Bsd00004580* +- ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 4580] ++ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (RV635 PRO [Radeon HD 4580]) + + pci:v00001002d00009599* + ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] +@@ -8724,7 +8724,7 @@ pci:v00001002d000095C0* + ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] + + pci:v00001002d000095C0sv00001002sd000095C0* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3470 ++ ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] (Mobility Radeon HD 3470) + + pci:v00001002d000095C2* + ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3410/3430] +@@ -8733,13 +8733,13 @@ pci:v00001002d000095C4* + ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] + + pci:v00001002d000095C4sv00001002sd000095C4* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3400 ++ ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] (Mobility Radeon HD 3400) + + pci:v00001002d000095C5* + ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] + + pci:v00001002d000095C5sv00001028sd00000342* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] (OptiPlex 980) + + pci:v00001002d000095C6* + ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450 AGP] +@@ -8760,7 +8760,7 @@ pci:v00001002d00009610* + ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] + + pci:v00001002d00009610sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-MA78GM-S2H Motherboard ++ ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] (GA-MA78GM-S2H Motherboard) + + pci:v00001002d00009611* + ID_MODEL_FROM_DATABASE=RS780C [Radeon 3100] +@@ -8823,22 +8823,22 @@ pci:v00001002d0000970F* + ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] + + pci:v00001002d0000970Fsv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (A785GM-M) + + pci:v00001002d0000970Fsv00001043sd000083A2* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M4A785TD Motherboard) + + pci:v00001002d0000970Fsv00001043sd0000843E* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M5A88-V EVO) + + pci:v00001002d00009710* + ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] + + pci:v00001002d00009710sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (A785GM-M) + + pci:v00001002d00009710sv00001043sd000083A2* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (M4A785TD Motherboard) + + pci:v00001002d00009712* + ID_MODEL_FROM_DATABASE=RS880M [Mobility Radeon HD 4225/4250] +@@ -8853,13 +8853,13 @@ pci:v00001002d00009715* + ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] + + pci:v00001002d00009715sv00001043sd0000843E* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] (M5A88-V EVO) + + pci:v00001002d00009802* + ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] + + pci:v00001002d00009802sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] (PURE Fusion Mini) + + pci:v00001002d00009803* + ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] +@@ -8991,16 +8991,16 @@ pci:v00001002d00009902* + ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller + + pci:v00001002d00009902sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller (ProBook 455 G1 Notebook) + + pci:v00001002d00009903* + ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] + + pci:v00001002d00009903sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) + + pci:v00001002d00009903sv0000103Csd00001952* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) + + pci:v00001002d00009904* + ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7560D] +@@ -9114,10 +9114,10 @@ pci:v00001002d0000AA10* + ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] + + pci:v00001002d0000AA10sv0000174Bsd0000AA10* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) + + pci:v00001002d0000AA10sv000018BCsd0000AA10* +- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO ++ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) + + pci:v00001002d0000AA18* + ID_MODEL_FROM_DATABASE=RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] +@@ -9132,13 +9132,13 @@ pci:v00001002d0000AA30* + ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] + + pci:v00001002d0000AA30sv0000174Bsd0000AA30* +- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink ++ ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] (Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink) + + pci:v00001002d0000AA38* + ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] + + pci:v00001002d0000AA38sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] (dv6-1190en) + + pci:v00001002d0000AA50* + ID_MODEL_FROM_DATABASE=Cypress HDMI Audio [Radeon HD 5800 Series] +@@ -9150,16 +9150,16 @@ pci:v00001002d0000AA60* + ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] + + pci:v00001002d0000AA60sv00001025sd0000033D* +- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 ++ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Mobility Radeon HD 5650) + + pci:v00001002d0000AA60sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Aspire 7740G) + + pci:v00001002d0000AA68* + ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] + + pci:v00001002d0000AA68sv00001028sd0000AA68* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] (XPS 8300) + + pci:v00001002d0000AA80* + ID_MODEL_FROM_DATABASE=Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] +@@ -9171,13 +9171,13 @@ pci:v00001002d0000AA90* + ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] + + pci:v00001002d0000AA90sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] (Precision M4600) + + pci:v00001002d0000AA98* + ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] + + pci:v00001002d0000AA98sv0000174Bsd0000AA98* +- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1GB DDR3 ++ ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] (Radeon HD 6450 1GB DDR3) + + pci:v00001002d0000AAA0* + ID_MODEL_FROM_DATABASE=Tahiti XT HDMI Audio [Radeon HD 7970 Series] +@@ -9264,10 +9264,10 @@ pci:v00001004d00000304sv00001004sd00000304* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio + + pci:v00001004d00000304sv0000122Dsd00001206* +- ID_MODEL_FROM_DATABASE=DSP368 Audio ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (DSP368 Audio) + + pci:v00001004d00000304sv00001483sd00005020* +- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (XWave Thunder 3D Audio) + + pci:v00001004d00000305* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport +@@ -9276,10 +9276,10 @@ pci:v00001004d00000305sv00001004sd00000305* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport + + pci:v00001004d00000305sv0000122Dsd00001207* +- ID_MODEL_FROM_DATABASE=DSP368 Audio Gameport ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (DSP368 Audio Gameport) + + pci:v00001004d00000305sv00001483sd00005021* +- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Gameport ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (XWave Thunder 3D Audio Gameport) + + pci:v00001004d00000306* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers +@@ -9288,22 +9288,22 @@ pci:v00001004d00000306sv00001004sd00000306* + ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers + + pci:v00001004d00000306sv0000122Dsd00001208* +- ID_MODEL_FROM_DATABASE=DSP368 Audio Support Registers ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (DSP368 Audio Support Registers) + + pci:v00001004d00000306sv00001483sd00005022* +- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Support Registers ++ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (XWave Thunder 3D Audio Support Registers) + + pci:v00001004d00000307* + ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio + + pci:v00001004d00000307sv00001004sd00000703* +- ID_MODEL_FROM_DATABASE=Philips Rhythmic Edge PSC703 ++ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Rhythmic Edge PSC703) + + pci:v00001004d00000307sv00001004sd00000705* +- ID_MODEL_FROM_DATABASE=Philips Seismic Edge PSC705 ++ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Seismic Edge PSC705) + + pci:v00001004d00000307sv00001004sd00000706* +- ID_MODEL_FROM_DATABASE=Philips Acoustic Edge PSC706 ++ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Acoustic Edge PSC706) + + pci:v00001004d00000308* + ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio Gameport +@@ -9375,16 +9375,16 @@ pci:v0000100Bd00000020* + ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller + + pci:v0000100Bd00000020sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Network ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Pavilion ze4400 builtin Network) + + pci:v0000100Bd00000020sv000012D9sd0000000C* +- ID_MODEL_FROM_DATABASE=Aculab E1/T1 PMXc cPCI carrier card ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Aculab E1/T1 PMXc cPCI carrier card) + + pci:v0000100Bd00000020sv00001385sd0000F311* +- ID_MODEL_FROM_DATABASE=FA311 / FA312 (FA311 with WoL HW) ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA311 / FA312 (FA311 with WoL HW)) + + pci:v0000100Bd00000020sv00001385sd0000F312* +- ID_MODEL_FROM_DATABASE=FA312 (rev. A1) Fast Ethernet PCI Adapter ++ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA312 (rev. A1) Fast Ethernet PCI Adapter) + + pci:v0000100Bd00000021* + ID_MODEL_FROM_DATABASE=PC87200 PCI to ISA Bridge +@@ -9393,13 +9393,13 @@ pci:v0000100Bd00000022* + ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller + + pci:v0000100Bd00000022sv00001186sd00004900* +- ID_MODEL_FROM_DATABASE=DGE-500T ++ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (DGE-500T) + + pci:v0000100Bd00000022sv00001385sd0000621A* +- ID_MODEL_FROM_DATABASE=GA621 ++ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA621) + + pci:v0000100Bd00000022sv00001385sd0000622A* +- ID_MODEL_FROM_DATABASE=GA622T ++ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA622T) + + pci:v0000100Bd00000028* + ID_MODEL_FROM_DATABASE=Geode GX2 Host Bridge +@@ -9435,13 +9435,13 @@ pci:v0000100Bd00000502* + ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller + + pci:v0000100Bd00000502sv0000100Bsd00000502* +- ID_MODEL_FROM_DATABASE=IDE Controller ++ ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller (IDE Controller) + + pci:v0000100Bd00000503* + ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller + + pci:v0000100Bd00000503sv0000100Bsd00000503* +- ID_MODEL_FROM_DATABASE=XpressAudio controller ++ ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller (XpressAudio controller) + + pci:v0000100Bd00000504* + ID_MODEL_FROM_DATABASE=SCx200 Video +@@ -9453,19 +9453,19 @@ pci:v0000100Bd00000510* + ID_MODEL_FROM_DATABASE=SC1100 Bridge + + pci:v0000100Bd00000510sv0000100Bsd00000500* +- ID_MODEL_FROM_DATABASE=GPIO and LPC support bridge ++ ID_MODEL_FROM_DATABASE=SC1100 Bridge (GPIO and LPC support bridge) + + pci:v0000100Bd00000511* + ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI + + pci:v0000100Bd00000511sv0000100Bsd00000501* +- ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI bridge ++ ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI (bridge) + + pci:v0000100Bd00000515* + ID_MODEL_FROM_DATABASE=SC1100 XBus + + pci:v0000100Bd00000515sv0000100Bsd00000505* +- ID_MODEL_FROM_DATABASE=SC1100 PCI to XBus bridge ++ ID_MODEL_FROM_DATABASE=SC1100 XBus (SC1100 PCI to XBus bridge) + + pci:v0000100Bd0000D001* + ID_MODEL_FROM_DATABASE=87410 IDE +@@ -9534,55 +9534,55 @@ pci:v00001011d00000009* + ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] + + pci:v00001011d00000009sv00001025sd00000310* +- ID_MODEL_FROM_DATABASE=21140 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (21140 Fast Ethernet) + + pci:v00001011d00000009sv000010B8sd00002001* +- ID_MODEL_FROM_DATABASE=SMC9332BDT EtherPower 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BDT EtherPower 10/100) + + pci:v00001011d00000009sv000010B8sd00002002* +- ID_MODEL_FROM_DATABASE=SMC9332BVT EtherPower T4 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BVT EtherPower T4 10/100) + + pci:v00001011d00000009sv000010B8sd00002003* +- ID_MODEL_FROM_DATABASE=SMC9334BDT EtherPower 10/100 (1-port) ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9334BDT EtherPower 10/100 (1-port)) + + pci:v00001011d00000009sv00001109sd00002400* +- ID_MODEL_FROM_DATABASE=ANA-6944A/TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (ANA-6944A/TX Fast Ethernet) + + pci:v00001011d00000009sv00001112sd00002300* +- ID_MODEL_FROM_DATABASE=RNS2300 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2300 Fast Ethernet) + + pci:v00001011d00000009sv00001112sd00002320* +- ID_MODEL_FROM_DATABASE=RNS2320 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2320 Fast Ethernet) + + pci:v00001011d00000009sv00001112sd00002340* +- ID_MODEL_FROM_DATABASE=RNS2340 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2340 Fast Ethernet) + + pci:v00001011d00000009sv00001113sd00001207* +- ID_MODEL_FROM_DATABASE=EN-1207-TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (EN-1207-TX Fast Ethernet) + + pci:v00001011d00000009sv00001186sd00001100* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-500TX Fast Ethernet) + + pci:v00001011d00000009sv00001186sd00001112* +- ID_MODEL_FROM_DATABASE=DFE-570TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-570TX Fast Ethernet) + + pci:v00001011d00000009sv00001186sd00001140* +- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) + + pci:v00001011d00000009sv00001186sd00001142* +- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) + + pci:v00001011d00000009sv000011F6sd00000503* +- ID_MODEL_FROM_DATABASE=Freedomline Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (Freedomline Fast Ethernet) + + pci:v00001011d00000009sv00001282sd00009100* +- ID_MODEL_FROM_DATABASE=AEF-380TXD Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (AEF-380TXD Fast Ethernet) + + pci:v00001011d00000009sv00001385sd00001100* +- ID_MODEL_FROM_DATABASE=FA310TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (FA310TX Fast Ethernet) + + pci:v00001011d00000009sv00002646sd00000001* +- ID_MODEL_FROM_DATABASE=KNE100TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (KNE100TX Fast Ethernet) + + pci:v00001011d0000000A* + ID_MODEL_FROM_DATABASE=21230 Video Codec +@@ -9594,16 +9594,16 @@ pci:v00001011d0000000F* + ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] + + pci:v00001011d0000000Fsv00001011sd0000DEF1* +- ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) ++ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (DEFPA)) + + pci:v00001011d0000000Fsv0000103Csd0000DEF1* +- ID_MODEL_FROM_DATABASE=FDDI controller (3X-DEFPA) ++ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (3X-DEFPA)) + + pci:v00001011d00000014* + ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] + + pci:v00001011d00000014sv00001186sd00000100* +- ID_MODEL_FROM_DATABASE=DE-530+ ++ ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] (DE-530+) + + pci:v00001011d00000016* + ID_MODEL_FROM_DATABASE=DGLPB [OPPO] +@@ -9618,133 +9618,133 @@ pci:v00001011d00000019* + ID_MODEL_FROM_DATABASE=DECchip 21142/43 + + pci:v00001011d00000019sv00001011sd0000500A* +- ID_MODEL_FROM_DATABASE=DE500A Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500A Fast Ethernet) + + pci:v00001011d00000019sv00001011sd0000500B* +- ID_MODEL_FROM_DATABASE=DE500B Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500B Fast Ethernet) + + pci:v00001011d00000019sv00001014sd00000001* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 EtherJet Cardbus) + + pci:v00001011d00000019sv00001025sd00000315* +- ID_MODEL_FROM_DATABASE=ALN315 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ALN315 Fast Ethernet) + + pci:v00001011d00000019sv00001033sd0000800C* +- ID_MODEL_FROM_DATABASE=PC-9821-CS01 100BASE-TX Interface Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821-CS01 100BASE-TX Interface Card) + + pci:v00001011d00000019sv00001033sd0000800D* +- ID_MODEL_FROM_DATABASE=PC-9821NR-B06 100BASE-TX Interface Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821NR-B06 100BASE-TX Interface Card) + + pci:v00001011d00000019sv0000103Csd0000125A* +- ID_MODEL_FROM_DATABASE=10/100Base-TX (PCI) [A5506B] ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100Base-TX (PCI) [A5506B]) + + pci:v00001011d00000019sv0000108Dsd00000016* +- ID_MODEL_FROM_DATABASE=Rapidfire 2327 10/100 Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Rapidfire 2327 10/100 Ethernet) + + pci:v00001011d00000019sv0000108Dsd00000017* +- ID_MODEL_FROM_DATABASE=GoCard 2250 Ethernet 10/100 Cardbus ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (GoCard 2250 Ethernet 10/100 Cardbus) + + pci:v00001011d00000019sv000010B8sd00002005* +- ID_MODEL_FROM_DATABASE=SMC8032DT Extreme Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8032DT Extreme Ethernet 10/100) + + pci:v00001011d00000019sv000010B8sd00008034* +- ID_MODEL_FROM_DATABASE=SMC8034 Extreme Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8034 Extreme Ethernet 10/100) + + pci:v00001011d00000019sv000010EFsd00008169* +- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) + + pci:v00001011d00000019sv00001109sd00002A00* +- ID_MODEL_FROM_DATABASE=ANA-6911A/TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TX Fast Ethernet) + + pci:v00001011d00000019sv00001109sd00002B00* +- ID_MODEL_FROM_DATABASE=ANA-6911A/TXC Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TXC Fast Ethernet) + + pci:v00001011d00000019sv00001109sd00003000* +- ID_MODEL_FROM_DATABASE=ANA-6922/TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6922/TX Fast Ethernet) + + pci:v00001011d00000019sv00001113sd00001207* +- ID_MODEL_FROM_DATABASE=Cheetah Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cheetah Fast Ethernet) + + pci:v00001011d00000019sv00001113sd00002220* +- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) + + pci:v00001011d00000019sv0000115Dsd00000002* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet 10/100) + + pci:v00001011d00000019sv00001179sd00000203* +- ID_MODEL_FROM_DATABASE=Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Fast Ethernet) + + pci:v00001011d00000019sv00001179sd00000204* +- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001100* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001101* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001102* +- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) + + pci:v00001011d00000019sv00001186sd00001112* +- ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-570TX Quad Fast Ethernet) + + pci:v00001011d00000019sv000011F0sd00004235* +- ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (21143 [FASTLine-II UTP 10/100]) + + pci:v00001011d00000019sv00001259sd00002800* +- ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (AT-2800Tx Fast Ethernet) + + pci:v00001011d00000019sv00001266sd00000004* +- ID_MODEL_FROM_DATABASE=Eagle Fast EtherMAX ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Eagle Fast EtherMAX) + + pci:v00001011d00000019sv000012AFsd00000019* +- ID_MODEL_FROM_DATABASE=NetFlyer Cardbus Fast Ethernet ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (NetFlyer Cardbus Fast Ethernet) + + pci:v00001011d00000019sv00001374sd00000001* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001374sd00000002* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001374sd00000007* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001374sd00000008* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) + + pci:v00001011d00000019sv00001385sd00002100* +- ID_MODEL_FROM_DATABASE=FA510 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FA510) + + pci:v00001011d00000019sv00001395sd00000001* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet CardBus PC Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 Ethernet CardBus PC Card) + + pci:v00001011d00000019sv000013D1sd0000AB01* +- ID_MODEL_FROM_DATABASE=EtherFast 10/100 Cardbus (PCMPC200) ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherFast 10/100 Cardbus (PCMPC200)) + + pci:v00001011d00000019sv00001498sd0000000A* +- ID_MODEL_FROM_DATABASE=TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter) + + pci:v00001011d00000019sv00001498sd0000000B* +- ID_MODEL_FROM_DATABASE=TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter) + + pci:v00001011d00000019sv00001498sd0000000C* +- ID_MODEL_FROM_DATABASE=TPMC880-12 Single 10Base2 PMC Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-12 Single 10Base2 PMC Ethernet Adapter) + + pci:v00001011d00000019sv000014CBsd00000100* +- ID_MODEL_FROM_DATABASE=LNDL-100N 100Base-TX Ethernet PC Card ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (LNDL-100N 100Base-TX Ethernet PC Card) + + pci:v00001011d00000019sv00001668sd00002000* +- ID_MODEL_FROM_DATABASE=FastNet Pro (PE2000) ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FastNet Pro (PE2000)) + + pci:v00001011d00000019sv00002646sd00000001* +- ID_MODEL_FROM_DATABASE=KNE100TX ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE100TX) + + pci:v00001011d00000019sv00002646sd00000002* +- ID_MODEL_FROM_DATABASE=KNE-CB4TX ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE-CB4TX) + + pci:v00001011d00000019sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 ++ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherExpress PRO/100 Mobile CardBus 32) + + pci:v00001011d0000001A* + ID_MODEL_FROM_DATABASE=Farallon PN9000SX Gigabit Ethernet +@@ -9780,46 +9780,46 @@ pci:v00001011d00000046* + ID_MODEL_FROM_DATABASE=DECchip 21554 + + pci:v00001011d00000046sv00000E11sd00004050* +- ID_MODEL_FROM_DATABASE=Smart Array 4200 Controller ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4200 Controller) + + pci:v00001011d00000046sv00000E11sd00004051* +- ID_MODEL_FROM_DATABASE=Smart Array 4250ES Controller ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4250ES Controller) + + pci:v00001011d00000046sv00000E11sd00004058* +- ID_MODEL_FROM_DATABASE=Smart Array 431 Controller ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 431 Controller) + + pci:v00001011d00000046sv0000103Csd000010C2* +- ID_MODEL_FROM_DATABASE=NetRAID-4M ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (NetRAID-4M) + + pci:v00001011d00000046sv000012D9sd0000000A* +- ID_MODEL_FROM_DATABASE=IP Telephony card ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (IP Telephony card) + + pci:v00001011d00000046sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (CT7 mainboard) + + pci:v00001011d00000046sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (CE7 mainboard) + + pci:v00001011d00000046sv00009005sd00000364* +- ID_MODEL_FROM_DATABASE=5400S (Mustang) ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) + + pci:v00001011d00000046sv00009005sd00000365* +- ID_MODEL_FROM_DATABASE=5400S (Mustang) ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) + + pci:v00001011d00000046sv00009005sd00001364* +- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) + + pci:v00001011d00000046sv00009005sd00001365* +- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) + + pci:v00001011d00000046sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CC8-1-BLUES ++ ID_MODEL_FROM_DATABASE=DECchip 21554 (CC8-1-BLUES) + + pci:v00001011d00001065* + ID_MODEL_FROM_DATABASE=StrongARM DC21285 + + pci:v00001011d00001065sv00001069sd00000020* +- ID_MODEL_FROM_DATABASE=DAC960P / DAC1164P ++ ID_MODEL_FROM_DATABASE=StrongARM DC21285 (DAC960P / DAC1164P) + + pci:v00001012* + ID_VENDOR_FROM_DATABASE=Micronics Computers Inc +@@ -9858,13 +9858,13 @@ pci:v00001013d000000B8* + ID_MODEL_FROM_DATABASE=GD 5446 + + pci:v00001013d000000B8sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=GD 5446 (QEMU Virtual Machine) + + pci:v00001013d000000BC* + ID_MODEL_FROM_DATABASE=GD 5480 + + pci:v00001013d000000BCsv00001013sd000000BC* +- ID_MODEL_FROM_DATABASE=CL-GD5480 ++ ID_MODEL_FROM_DATABASE=GD 5480 (CL-GD5480) + + pci:v00001013d000000D0* + ID_MODEL_FROM_DATABASE=GD 5462 +@@ -9882,10 +9882,10 @@ pci:v00001013d000000D6* + ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] + + pci:v00001013d000000D6sv000013CEsd00008031* +- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) + + pci:v00001013d000000D6sv000013CFsd00008031* +- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) + + pci:v00001013d000000E8* + ID_MODEL_FROM_DATABASE=GD 5436U +@@ -9921,34 +9921,34 @@ pci:v00001013d00006001* + ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] + + pci:v00001013d00006001sv00001014sd00001010* +- ID_MODEL_FROM_DATABASE=CS4610 SoundFusion Audio Accelerator ++ ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] (CS4610 SoundFusion Audio Accelerator) + + pci:v00001013d00006003* + ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] + + pci:v00001013d00006003sv00001013sd00004280* +- ID_MODEL_FROM_DATABASE=Crystal SoundFusion PCI Audio Accelerator ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Crystal SoundFusion PCI Audio Accelerator) + + pci:v00001013d00006003sv00001014sd00000153* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A20m ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (ThinkPad 600X/A20m) + + pci:v00001013d00006003sv0000153Bsd0000112E* +- ID_MODEL_FROM_DATABASE=DMX XFire 1024 ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (DMX XFire 1024) + + pci:v00001013d00006003sv0000153Bsd00001136* +- ID_MODEL_FROM_DATABASE=SiXPack 5.1+ ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (SiXPack 5.1+) + + pci:v00001013d00006003sv00001681sd00000050* +- ID_MODEL_FROM_DATABASE=Game Theater XP ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Game Theater XP) + + pci:v00001013d00006003sv00001681sd0000A010* +- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo II ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo II) + + pci:v00001013d00006003sv00001681sd0000A011* +- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo III 7.1 ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo III 7.1) + + pci:v00001013d00006003sv00005053sd00003357* +- ID_MODEL_FROM_DATABASE=Santa Cruz ++ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Santa Cruz) + + pci:v00001013d00006004* + ID_MODEL_FROM_DATABASE=CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] +@@ -10029,16 +10029,16 @@ pci:v00001014d0000002E* + ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] + + pci:v00001014d0000002Esv00001014sd0000002E* +- ID_MODEL_FROM_DATABASE=ServeRAID-3x ++ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-3x) + + pci:v00001014d0000002Esv00001014sd0000022E* +- ID_MODEL_FROM_DATABASE=ServeRAID-4H ++ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-4H) + + pci:v00001014d00000031* + ID_MODEL_FROM_DATABASE=2 Port Serial Adapter + + pci:v00001014d00000031sv00001014sd00000031* +- ID_MODEL_FROM_DATABASE=2721 WAN IOA - 2 Port Sync Serial Adapter ++ ID_MODEL_FROM_DATABASE=2 Port Serial Adapter (2721 WAN IOA - 2 Port Sync Serial Adapter) + + pci:v00001014d00000036* + ID_MODEL_FROM_DATABASE=PCI to 32-bit LocalBus Bridge [Miami] +@@ -10056,25 +10056,25 @@ pci:v00001014d0000003E* + ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller + + pci:v00001014d0000003Esv00001014sd0000003E* +- ID_MODEL_FROM_DATABASE=Token-Ring Adapter ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter) + + pci:v00001014d0000003Esv00001014sd000000CD* +- ID_MODEL_FROM_DATABASE=Token-Ring Adapter + Wake-On-LAN ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter + Wake-On-LAN) + + pci:v00001014d0000003Esv00001014sd000000CE* +- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2) + + pci:v00001014d0000003Esv00001014sd000000CF* +- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter Special ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter Special) + + pci:v00001014d0000003Esv00001014sd000000E4* +- ID_MODEL_FROM_DATABASE=High-Speed 100/16/4 Token-Ring Adapter ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (High-Speed 100/16/4 Token-Ring Adapter) + + pci:v00001014d0000003Esv00001014sd000000E5* +- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 + Wake-On-LAN ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2 + Wake-On-LAN) + + pci:v00001014d0000003Esv00001014sd0000016D* +- ID_MODEL_FROM_DATABASE=iSeries 2744 Card ++ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (iSeries 2744 Card) + + pci:v00001014d00000045* + ID_MODEL_FROM_DATABASE=SSA Adapter +@@ -10131,7 +10131,7 @@ pci:v00001014d00000090* + ID_MODEL_FROM_DATABASE=GXT 3000P + + pci:v00001014d00000090sv00001014sd0000008E* +- ID_MODEL_FROM_DATABASE=GXT-3000P ++ ID_MODEL_FROM_DATABASE=GXT 3000P (GXT-3000P) + + pci:v00001014d00000091* + ID_MODEL_FROM_DATABASE=SSA Adapter +@@ -10143,13 +10143,13 @@ pci:v00001014d00000096* + ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller + + pci:v00001014d00000096sv00001014sd00000097* +- ID_MODEL_FROM_DATABASE=iSeries 2778 DASD IOA ++ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2778 DASD IOA) + + pci:v00001014d00000096sv00001014sd00000098* +- ID_MODEL_FROM_DATABASE=iSeries 2763 DASD IOA ++ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2763 DASD IOA) + + pci:v00001014d00000096sv00001014sd00000099* +- ID_MODEL_FROM_DATABASE=iSeries 2748 DASD IOA ++ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2748 DASD IOA) + + pci:v00001014d0000009F* + ID_MODEL_FROM_DATABASE=PCI 4758 Cryptographic Accelerator +@@ -10164,7 +10164,7 @@ pci:v00001014d000000B7* + ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] + + pci:v00001014d000000B7sv00001092sd000000B8* +- ID_MODEL_FROM_DATABASE=FireGL1 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] (FireGL1 AGP 32Mb) + + pci:v00001014d000000B8* + ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter +@@ -10188,13 +10188,13 @@ pci:v00001014d00000142* + ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input + + pci:v00001014d00000142sv00001014sd00000143* +- ID_MODEL_FROM_DATABASE=Yotta Input Controller (ytin) ++ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input (Yotta Input Controller (ytin)) + + pci:v00001014d00000144* + ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output + + pci:v00001014d00000144sv00001014sd00000145* +- ID_MODEL_FROM_DATABASE=Yotta Output Controller (ytout) ++ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output (Yotta Output Controller (ytout)) + + pci:v00001014d00000156* + ID_MODEL_FROM_DATABASE=405GP PLB to PCI Bridge +@@ -10218,10 +10218,10 @@ pci:v00001014d00000180* + ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller + + pci:v00001014d00000180sv00001014sd00000241* +- ID_MODEL_FROM_DATABASE=iSeries 2757 DASD IOA ++ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (iSeries 2757 DASD IOA) + + pci:v00001014d00000180sv00001014sd00000264* +- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X U320 SCSI RAID Adapter (2780) ++ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (Quad Channel PCI-X U320 SCSI RAID Adapter (2780)) + + pci:v00001014d00000188* + ID_MODEL_FROM_DATABASE=EADS-X PCI-X to PCI-X Bridge +@@ -10233,28 +10233,28 @@ pci:v00001014d000001BD* + ID_MODEL_FROM_DATABASE=ServeRAID Controller + + pci:v00001014d000001BDsv00001014sd000001BD* +- ID_MODEL_FROM_DATABASE=ServeRAID 4Lx ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 4Lx) + + pci:v00001014d000001BDsv00001014sd000001BE* +- ID_MODEL_FROM_DATABASE=ServeRAID-4M ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4M) + + pci:v00001014d000001BDsv00001014sd000001BF* +- ID_MODEL_FROM_DATABASE=ServeRAID-4L ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4L) + + pci:v00001014d000001BDsv00001014sd00000208* +- ID_MODEL_FROM_DATABASE=ServeRAID-4Mx ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Mx) + + pci:v00001014d000001BDsv00001014sd0000020E* +- ID_MODEL_FROM_DATABASE=ServeRAID-4Lx ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Lx) + + pci:v00001014d000001BDsv00001014sd0000022E* +- ID_MODEL_FROM_DATABASE=ServeRAID-4H ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4H) + + pci:v00001014d000001BDsv00001014sd00000258* +- ID_MODEL_FROM_DATABASE=ServeRAID-5i ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) + + pci:v00001014d000001BDsv00001014sd00000259* +- ID_MODEL_FROM_DATABASE=ServeRAID-5i ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) + + pci:v00001014d000001C1* + ID_MODEL_FROM_DATABASE=64bit/66MHz PCI ATM 155 UTP +@@ -10266,10 +10266,10 @@ pci:v00001014d000001EF* + ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge + + pci:v00001014d000001EFsv00001734sd0000102B* +- ID_MODEL_FROM_DATABASE=PCEAS PCI-X Dual Port ESCON Adapter ++ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAS PCI-X Dual Port ESCON Adapter) + + pci:v00001014d000001EFsv00001734sd000010F8* +- ID_MODEL_FROM_DATABASE=PCEAT PCI-Express Dual Port ESCON Adapter ++ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAT PCI-Express Dual Port ESCON Adapter) + + pci:v00001014d000001FF* + ID_MODEL_FROM_DATABASE=10/100 Mbps Ethernet +@@ -10278,13 +10278,13 @@ pci:v00001014d00000219* + ID_MODEL_FROM_DATABASE=Multiport Serial Adapter + + pci:v00001014d00000219sv00001014sd0000021A* +- ID_MODEL_FROM_DATABASE=Dual RVX ++ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Dual RVX) + + pci:v00001014d00000219sv00001014sd00000251* +- ID_MODEL_FROM_DATABASE=Internal Modem/RVX ++ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Internal Modem/RVX) + + pci:v00001014d00000219sv00001014sd00000252* +- ID_MODEL_FROM_DATABASE=Quad Internal Modem ++ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Quad Internal Modem) + + pci:v00001014d0000021B* + ID_MODEL_FROM_DATABASE=GXT6500P Graphics Adapter +@@ -10299,16 +10299,16 @@ pci:v00001014d0000028C* + ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller + + pci:v00001014d0000028Csv00001014sd0000028D* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR SAS RAID Adapter (572E) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR SAS RAID Adapter (572E)) + + pci:v00001014d0000028Csv00001014sd000002BE* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B)) + + pci:v00001014d0000028Csv00001014sd000002C0* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI Adapter (571A) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI Adapter (571A)) + + pci:v00001014d0000028Csv00001014sd0000030D* +- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575B) ++ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575B)) + + pci:v00001014d000002A1* + ID_MODEL_FROM_DATABASE=Calgary PCI-X Host Bridge +@@ -10317,13 +10317,13 @@ pci:v00001014d000002BD* + ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller + + pci:v00001014d000002BDsv00001014sd000002C1* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) + + pci:v00001014d000002BDsv00001014sd000002C2* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/571D) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)) + + pci:v00001014d000002BDsv00001014sd00000338* +- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575C) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575C)) + + pci:v00001014d00000302* + ID_MODEL_FROM_DATABASE=Winnipeg PCI-X Host Bridge +@@ -10338,88 +10338,88 @@ pci:v00001014d0000032D* + ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip + + pci:v00001014d0000032Dsv00001014sd000003A1* +- ID_MODEL_FROM_DATABASE=PCIe PowerXCell 8i Cell Accelerator Board ++ ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip (PCIe PowerXCell 8i Cell Accelerator Board) + + pci:v00001014d00000339* + ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller + + pci:v00001014d00000339sv00001014sd0000030A* +- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS RAID Adapter (574E) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS RAID Adapter (574E)) + + pci:v00001014d00000339sv00001014sd0000033A* +- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS Adapter (57B3) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS Adapter (57B3)) + + pci:v00001014d00000339sv00001014sd0000035C* +- ID_MODEL_FROM_DATABASE=PCIe x8 Internal 3Gb SAS adapter (57CC) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe x8 Internal 3Gb SAS adapter (57CC)) + + pci:v00001014d00000339sv00001014sd00000360* +- ID_MODEL_FROM_DATABASE=PCI-E Auxiliary Cache Adapter (57B7) ++ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCI-E Auxiliary Cache Adapter (57B7)) + + pci:v00001014d0000033D* + ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) + + pci:v00001014d0000033Dsv00001014sd0000033C* +- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5)) + + pci:v00001014d0000033Dsv00001014sd00000353* +- ID_MODEL_FROM_DATABASE=PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3)) + + pci:v00001014d0000033Dsv00001014sd00000354* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Dual-port (57C4) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Dual-port (57C4)) + + pci:v00001014d0000033Dsv00001014sd00000356* +- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D)) + + pci:v00001014d0000033Dsv00001014sd0000035F* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57B2) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Quad-port (57B2)) + + pci:v00001014d0000034A* + ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) + + pci:v00001014d0000034Asv00001014sd0000033B* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS RAID Adapter Quad-port (57B4) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS RAID Adapter Quad-port (57B4)) + + pci:v00001014d0000034Asv00001014sd00000355* +- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1)) + + pci:v00001014d0000034Asv00001014sd00000357* +- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57C6) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS Adapter Quad-port (57C6)) + + pci:v00001014d0000034Asv00001014sd0000035D* +- ID_MODEL_FROM_DATABASE=PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8)) + + pci:v00001014d0000034Asv00001014sd0000035E* +- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE)) + + pci:v00001014d0000034Asv00001014sd000003FB* +- ID_MODEL_FROM_DATABASE=PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5)) + + pci:v00001014d0000034Asv00001014sd000003FE* +- ID_MODEL_FROM_DATABASE=PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8)) + + pci:v00001014d0000034Asv00001014sd000003FF* +- ID_MODEL_FROM_DATABASE=PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7)) + + pci:v00001014d0000034Asv00001014sd00000474* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB)) + + pci:v00001014d0000034Asv00001014sd00000475* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC)) + + pci:v00001014d0000034Asv00001014sd00000499* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED)) + + pci:v00001014d0000034Asv00001014sd0000049A* +- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE)) + + pci:v00001014d0000034Asv00001014sd000004C7* +- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA)) + + pci:v00001014d0000034Asv00001014sd000004C8* +- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2)) + + pci:v00001014d0000034Asv00001014sd00000C49* +- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) ++ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) + + pci:v00001014d000004AA* + ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) +@@ -10461,13 +10461,13 @@ pci:v0000101Ad00000007* + ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G + + pci:v0000101Ad00000007sv0000101Asd00000019* +- ID_MODEL_FROM_DATABASE=BYNET BIC2C ++ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2C) + + pci:v0000101Ad00000007sv0000101Asd0000001C* +- ID_MODEL_FROM_DATABASE=BYNET BIC2G ++ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2G) + + pci:v0000101Ad00000007sv0000101Asd0000001F* +- ID_MODEL_FROM_DATABASE=BYNET BIC4G ++ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC4G) + + pci:v0000101Ad00000009* + ID_MODEL_FROM_DATABASE=PQS Memory Controller +@@ -10488,19 +10488,19 @@ pci:v0000101Ad00001DC1* + ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M + + pci:v0000101Ad00001DC1sv0000101Asd00000019* +- ID_MODEL_FROM_DATABASE=BIC2M ++ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC2M) + + pci:v0000101Ad00001DC1sv0000101Asd0000001F* +- ID_MODEL_FROM_DATABASE=BIC4M ++ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC4M) + + pci:v0000101Ad00001DC1sv0000101Asd00000ECE* +- ID_MODEL_FROM_DATABASE=BYA4M ++ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BYA4M) + + pci:v0000101Ad00001FA8* + ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) + + pci:v0000101Ad00001FA8sv0000101Asd000000C3* +- ID_MODEL_FROM_DATABASE=BYNET BIC2SE ++ ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) (BYNET BIC2SE) + + pci:v0000101B* + ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor +@@ -10557,46 +10557,46 @@ pci:v0000101Ed00001960* + ID_MODEL_FROM_DATABASE=MegaRAID + + pci:v0000101Ed00001960sv0000101Esd00000471* +- ID_MODEL_FROM_DATABASE=MegaRAID 471 Enterprise 1600 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (471 Enterprise 1600 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000475* +- ID_MODEL_FROM_DATABASE=MegaRAID 475 Express 500/500LC RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (475 Express 500/500LC RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000477* +- ID_MODEL_FROM_DATABASE=MegaRAID 477 Elite 3100 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (477 Elite 3100 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000493* +- ID_MODEL_FROM_DATABASE=MegaRAID 493 Elite 1600 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (493 Elite 1600 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000494* +- ID_MODEL_FROM_DATABASE=MegaRAID 494 Elite 1650 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (494 Elite 1650 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000503* +- ID_MODEL_FROM_DATABASE=MegaRAID 503 Enterprise 1650 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (503 Enterprise 1650 RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000511* +- ID_MODEL_FROM_DATABASE=MegaRAID 511 i4 IDE RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (511 i4 IDE RAID Controller) + + pci:v0000101Ed00001960sv0000101Esd00000522* +- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4133 RAID Controller ++ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4133 RAID Controller) + + pci:v0000101Ed00001960sv00001028sd00000471* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/QC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/QC) + + pci:v0000101Ed00001960sv00001028sd00000475* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/SC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/SC) + + pci:v0000101Ed00001960sv00001028sd00000493* +- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/DC ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/DC) + + pci:v0000101Ed00001960sv00001028sd00000511* +- ID_MODEL_FROM_DATABASE=PowerEdge Cost Effective RAID Controller ATA100/4Ch ++ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Cost Effective RAID Controller ATA100/4Ch) + + pci:v0000101Ed00001960sv0000103Csd000060E7* +- ID_MODEL_FROM_DATABASE=NetRAID-1M ++ ID_MODEL_FROM_DATABASE=MegaRAID (NetRAID-1M) + + pci:v0000101Ed00001960sv0000103Csd000060E8* +- ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] ++ ID_MODEL_FROM_DATABASE=MegaRAID (NetRaid 2M [AMI MegaRaid 493]) + + pci:v0000101Ed00009010* + ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller +@@ -10623,7 +10623,7 @@ pci:v0000101Ed00009063* + ID_MODEL_FROM_DATABASE=MegaRAC + + pci:v0000101Ed00009063sv0000101Esd00000767* +- ID_MODEL_FROM_DATABASE=Dell Remote Assistant Card 2 ++ ID_MODEL_FROM_DATABASE=MegaRAC (Dell Remote Assistant Card 2) + + pci:v0000101F* + ID_VENDOR_FROM_DATABASE=PictureTel +@@ -10731,7 +10731,7 @@ pci:v00001022d00001510* + ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex + + pci:v00001022d00001510sv0000174Bsd00001001* +- ID_MODEL_FROM_DATABASE=PURE Fusion Mini ++ ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex (PURE Fusion Mini) + + pci:v00001022d00001512* + ID_MODEL_FROM_DATABASE=Family 14h Processor Root Port +@@ -10842,79 +10842,79 @@ pci:v00001022d00002000* + ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] + + pci:v00001022d00002000sv00001014sd00002000* +- ID_MODEL_FROM_DATABASE=NetFinity 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (NetFinity 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001022sd00002000* +- ID_MODEL_FROM_DATABASE=PCnet - Fast 79C971 ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PCnet - Fast 79C971) + + pci:v00001022d00002000sv0000103Csd0000104C* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd00001064* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd00001065* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd0000106C* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd0000106E* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv0000103Csd000010EA* +- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) + + pci:v00001022d00002000sv00001113sd00001220* +- ID_MODEL_FROM_DATABASE=EN1220 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (EN1220 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002450* +- ID_MODEL_FROM_DATABASE=AT-2450 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002454* +- ID_MODEL_FROM_DATABASE=AT-2450v4 10Mb Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450v4 10Mb Ethernet Adapter) + + pci:v00001022d00002000sv00001259sd00002700* +- ID_MODEL_FROM_DATABASE=AT-2700TX 10/100 Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700TX 10/100 Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002701* +- ID_MODEL_FROM_DATABASE=AT-2700FX 100Mb Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FX 100Mb Ethernet) + + pci:v00001022d00002000sv00001259sd00002702* +- ID_MODEL_FROM_DATABASE=AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet) + + pci:v00001022d00002000sv00001259sd00002703* +- ID_MODEL_FROM_DATABASE=AT-2701FX ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FX) + + pci:v00001022d00002000sv00001259sd00002704* +- ID_MODEL_FROM_DATABASE=AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet) + + pci:v00001022d00002000sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00001022d00002000sv00004C53sd00001010* +- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CP5/CR6 mainboard) + + pci:v00001022d00002000sv00004C53sd00001020* +- ID_MODEL_FROM_DATABASE=VR6 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (VR6 mainboard) + + pci:v00001022d00002000sv00004C53sd00001030* +- ID_MODEL_FROM_DATABASE=PC5 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC5 mainboard) + + pci:v00001022d00002000sv00004C53sd00001040* +- ID_MODEL_FROM_DATABASE=CL7 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CL7 mainboard) + + pci:v00001022d00002000sv00004C53sd00001060* +- ID_MODEL_FROM_DATABASE=PC7 mainboard ++ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC7 mainboard) + + pci:v00001022d00002001* + ID_MODEL_FROM_DATABASE=79c978 [HomePNA] + + pci:v00001022d00002001sv00001092sd00000A78* +- ID_MODEL_FROM_DATABASE=Multimedia Home Network Adapter ++ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (Multimedia Home Network Adapter) + + pci:v00001022d00002001sv00001668sd00000299* +- ID_MODEL_FROM_DATABASE=ActionLink Home Network Adapter ++ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (ActionLink Home Network Adapter) + + pci:v00001022d00002003* + ID_MODEL_FROM_DATABASE=Am 1771 MBW [Alchemy] +@@ -10923,7 +10923,7 @@ pci:v00001022d00002020* + ID_MODEL_FROM_DATABASE=53c974 [PCscsi] + + pci:v00001022d00002020sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=53c974 [PCscsi] (QEMU Virtual Machine) + + pci:v00001022d00002040* + ID_MODEL_FROM_DATABASE=79c974 +@@ -11043,7 +11043,7 @@ pci:v00001022d00007440* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA + + pci:v00001022d00007440sv00001043sd00008044* +- ID_MODEL_FROM_DATABASE=A7M-D Mainboard ++ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA (A7M-D Mainboard) + + pci:v00001022d00007441* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] IDE +@@ -11052,7 +11052,7 @@ pci:v00001022d00007443* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI + + pci:v00001022d00007443sv00001043sd00008044* +- ID_MODEL_FROM_DATABASE=A7M-D Mainboard ++ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI (A7M-D Mainboard) + + pci:v00001022d00007445* + ID_MODEL_FROM_DATABASE=AMD-768 [Opus] Audio +@@ -11088,7 +11088,7 @@ pci:v00001022d00007460* + ID_MODEL_FROM_DATABASE=AMD-8111 PCI + + pci:v00001022d00007460sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 PCI (HDAMB) + + pci:v00001022d00007461* + ID_MODEL_FROM_DATABASE=AMD-8111 USB +@@ -11103,22 +11103,22 @@ pci:v00001022d00007464* + ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI + + pci:v00001022d00007464sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI (HDAMB) + + pci:v00001022d00007468* + ID_MODEL_FROM_DATABASE=AMD-8111 LPC + + pci:v00001022d00007468sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 LPC (HDAMB) + + pci:v00001022d00007469* + ID_MODEL_FROM_DATABASE=AMD-8111 IDE + + pci:v00001022d00007469sv00001022sd00002B80* +- ID_MODEL_FROM_DATABASE=AMD-8111 IDE [Quartet] ++ ID_MODEL_FROM_DATABASE=AMD-8111 IDE ([Quartet]) + + pci:v00001022d00007469sv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 IDE (HDAMB) + + pci:v00001022d0000746A* + ID_MODEL_FROM_DATABASE=AMD-8111 SMBus 2.0 +@@ -11127,13 +11127,13 @@ pci:v00001022d0000746B* + ID_MODEL_FROM_DATABASE=AMD-8111 ACPI + + pci:v00001022d0000746Bsv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 ACPI (HDAMB) + + pci:v00001022d0000746D* + ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio + + pci:v00001022d0000746Dsv0000161Fsd00003017* +- ID_MODEL_FROM_DATABASE=HDAMB ++ ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio (HDAMB) + + pci:v00001022d0000746E* + ID_MODEL_FROM_DATABASE=AMD-8111 MC97 Modem +@@ -11148,10 +11148,10 @@ pci:v00001022d00007801* + ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] + + pci:v00001022d00007801sv0000103Csd0000168B* +- ID_MODEL_FROM_DATABASE=ProBook 4535s Notebook ++ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 4535s Notebook) + + pci:v00001022d00007801sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 455 G1 Notebook) + + pci:v00001022d00007802* + ID_MODEL_FROM_DATABASE=FCH SATA Controller [RAID mode] +@@ -11172,25 +11172,25 @@ pci:v00001022d00007807* + ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller + + pci:v00001022d00007807sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d00007808* + ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller + + pci:v00001022d00007808sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d00007809* + ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller + + pci:v00001022d00007809sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d0000780B* + ID_MODEL_FROM_DATABASE=FCH SMBus Controller + + pci:v00001022d0000780Bsv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH SMBus Controller (ProBook 455 G1 Notebook) + + pci:v00001022d0000780C* + ID_MODEL_FROM_DATABASE=FCH IDE Controller +@@ -11199,16 +11199,16 @@ pci:v00001022d0000780D* + ID_MODEL_FROM_DATABASE=FCH Azalia Controller + + pci:v00001022d0000780Dsv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (ProBook 455 G1 Notebook) + + pci:v00001022d0000780Dsv00001043sd00008444* +- ID_MODEL_FROM_DATABASE=F2A85-M Series ++ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (F2A85-M Series) + + pci:v00001022d0000780E* + ID_MODEL_FROM_DATABASE=FCH LPC Bridge + + pci:v00001022d0000780Esv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH LPC Bridge (ProBook 455 G1 Notebook) + + pci:v00001022d0000780F* + ID_MODEL_FROM_DATABASE=FCH PCI Bridge +@@ -11223,7 +11223,7 @@ pci:v00001022d00007814* + ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller + + pci:v00001022d00007814sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller (ProBook 455 G1 Notebook) + + pci:v00001022d00007900* + ID_MODEL_FROM_DATABASE=FCH SATA Controller [IDE mode] +@@ -11262,16 +11262,16 @@ pci:v00001022d00009600* + ID_MODEL_FROM_DATABASE=RS780 Host Bridge + + pci:v00001022d00009600sv00001043sd000082F1* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=RS780 Host Bridge (M3A78-EH Motherboard) + + pci:v00001022d00009601* + ID_MODEL_FROM_DATABASE=RS880 Host Bridge + + pci:v00001022d00009601sv00001019sd00002120* +- ID_MODEL_FROM_DATABASE=A785GM-M ++ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (A785GM-M) + + pci:v00001022d00009601sv00001043sd0000843E* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (M5A88-V EVO) + + pci:v00001022d00009602* + ID_MODEL_FROM_DATABASE=RS780/RS880 PCI to PCI bridge (int gfx) +@@ -11316,7 +11316,7 @@ pci:v00001023d00002001* + ID_MODEL_FROM_DATABASE=4DWave NX + + pci:v00001023d00002001sv0000122Dsd00001400* +- ID_MODEL_FROM_DATABASE=Trident PCI288-Q3DII (NX) ++ ID_MODEL_FROM_DATABASE=4DWave NX (Trident PCI288-Q3DII (NX)) + + pci:v00001023d00002100* + ID_MODEL_FROM_DATABASE=CyberBlade XP4m32 +@@ -11328,13 +11328,13 @@ pci:v00001023d00008400* + ID_MODEL_FROM_DATABASE=CyberBlade/i7 + + pci:v00001023d00008400sv00001023sd00008400* +- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade/i7 (CyberBlade i7 AGP) + + pci:v00001023d00008420* + ID_MODEL_FROM_DATABASE=CyberBlade/i7d + + pci:v00001023d00008420sv00000E11sd0000B15A* +- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade/i7d (CyberBlade i7 AGP) + + pci:v00001023d00008500* + ID_MODEL_FROM_DATABASE=CyberBlade/i1 +@@ -11343,19 +11343,19 @@ pci:v00001023d00008520* + ID_MODEL_FROM_DATABASE=CyberBlade i1 + + pci:v00001023d00008520sv00000E11sd0000B16E* +- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) + + pci:v00001023d00008520sv00001023sd00008520* +- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP ++ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) + + pci:v00001023d00008620* + ID_MODEL_FROM_DATABASE=CyberBlade/i1 + + pci:v00001023d00008620sv00001014sd00000502* +- ID_MODEL_FROM_DATABASE=ThinkPad R30/T30 ++ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (ThinkPad R30/T30) + + pci:v00001023d00008620sv00001014sd00001025* +- ID_MODEL_FROM_DATABASE=Travelmate 352TE ++ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (Travelmate 352TE) + + pci:v00001023d00008820* + ID_MODEL_FROM_DATABASE=CyberBlade XPAi1 +@@ -11460,7 +11460,7 @@ pci:v00001023d00009880* + ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP + + pci:v00001023d00009880sv00001023sd00009880* +- ID_MODEL_FROM_DATABASE=Blade 3D ++ ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP (Blade 3D) + + pci:v00001023d00009910* + ID_MODEL_FROM_DATABASE=CyberBlade/XP +@@ -11523,7 +11523,7 @@ pci:v00001025d00001533* + ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge + + pci:v00001025d00001533sv000010B9sd00001533* +- ID_MODEL_FROM_DATABASE=ALI M1533 Aladdin IV/V ISA South Bridge ++ ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge (ALI M1533 Aladdin IV/V ISA South Bridge) + + pci:v00001025d00001535* + ID_MODEL_FROM_DATABASE=M1535 PCI Bridge + Super I/O + FIR +@@ -11532,7 +11532,7 @@ pci:v00001025d00001541* + ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] + + pci:v00001025d00001541sv000010B9sd00001541* +- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP+PCI North Bridge ++ ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] (ALI M1541 Aladdin V/V+ AGP+PCI North Bridge) + + pci:v00001025d00001542* + ID_MODEL_FROM_DATABASE=M1542 Northbridge [Aladdin V] +@@ -11658,31 +11658,31 @@ pci:v00001028d00000001* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si + + pci:v00001028d00000001sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=PowerEdge 2400 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si (PowerEdge 2400) + + pci:v00001028d00000002* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di + + pci:v00001028d00000002sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=PowerEdge 4400 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PowerEdge 4400) + + pci:v00001028d00000002sv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=PERC 3/DiV [Viper] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiV [Viper]) + + pci:v00001028d00000002sv00001028sd000000D9* +- ID_MODEL_FROM_DATABASE=PERC 3/DiL [Lexus] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiL [Lexus]) + + pci:v00001028d00000003* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si + + pci:v00001028d00000003sv00001028sd00000003* +- ID_MODEL_FROM_DATABASE=PowerEdge 2450 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si (PowerEdge 2450) + + pci:v00001028d00000004* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] + + pci:v00001028d00000004sv00001028sd00000004* +- ID_MODEL_FROM_DATABASE=PERC 3/DiF [Iguana] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] (PERC 3/DiF [Iguana]) + + pci:v00001028d00000006* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di +@@ -11700,13 +11700,13 @@ pci:v00001028d0000000A* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di + + pci:v00001028d0000000Asv00001028sd00000106* +- ID_MODEL_FROM_DATABASE=PERC 3/DiJ [Jaguar] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiJ [Jaguar]) + + pci:v00001028d0000000Asv00001028sd0000011B* +- ID_MODEL_FROM_DATABASE=PERC 3/DiD [Dagger] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiD [Dagger]) + + pci:v00001028d0000000Asv00001028sd00000121* +- ID_MODEL_FROM_DATABASE=PERC 3/DiB [Boxster] ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiB [Boxster]) + + pci:v00001028d0000000C* + ID_MODEL_FROM_DATABASE=Embedded Remote Access or ERA/O +@@ -11721,7 +11721,7 @@ pci:v00001028d0000000F* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di + + pci:v00001028d0000000Fsv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di (PowerEdge 1750) + + pci:v00001028d00000010* + ID_MODEL_FROM_DATABASE=Remote Access Card 4 +@@ -11736,19 +11736,19 @@ pci:v00001028d00000013* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 + + pci:v00001028d00000013sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Si ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Si) + + pci:v00001028d00000013sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000013sv00001028sd0000016E* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000013sv00001028sd0000016F* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000013sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) + + pci:v00001028d00000014* + ID_MODEL_FROM_DATABASE=Remote Access Card 4 Daughter Card SMIC interface +@@ -11757,19 +11757,19 @@ pci:v00001028d00000015* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 + + pci:v00001028d00000015sv00001028sd00001F01* +- ID_MODEL_FROM_DATABASE=PERC 5/E Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/E Adapter RAID Controller) + + pci:v00001028d00000015sv00001028sd00001F02* +- ID_MODEL_FROM_DATABASE=PERC 5/i Adapter RAID Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Adapter RAID Controller) + + pci:v00001028d00000015sv00001028sd00001F03* +- ID_MODEL_FROM_DATABASE=PERC 5/i Integrated RAID Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Integrated RAID Controller) + + pci:v00001028d00000016* + ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 + + pci:v00001028d00000016sv00001028sd00001F24* +- ID_MODEL_FROM_DATABASE=PERC S300 Controller ++ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 (PERC S300 Controller) + + pci:v00001029* + ID_VENDOR_FROM_DATABASE=Siemens Nixdorf IS +@@ -11787,28 +11787,28 @@ pci:v0000102Ad0000001F* + ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers + + pci:v0000102Ad0000001Fsv00009005sd0000000F* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) + + pci:v0000102Ad0000001Fsv00009005sd00000106* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) + + pci:v0000102Ad0000001Fsv00009005sd0000A180* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) + + pci:v0000102Ad000000C5* + ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller + + pci:v0000102Ad000000C5sv00001028sd000000C5* +- ID_MODEL_FROM_DATABASE=PowerEdge 2550/2650/4600 ++ ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller (PowerEdge 2550/2650/4600) + + pci:v0000102Ad000000CF* + ID_MODEL_FROM_DATABASE=AIC-7899P U160/m + + pci:v0000102Ad000000CFsv00001028sd00000106* +- ID_MODEL_FROM_DATABASE=PowerEdge 4600 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 4600) + + pci:v0000102Ad000000CFsv00001028sd00000121* +- ID_MODEL_FROM_DATABASE=PowerEdge 2650 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2650) + + pci:v0000102B* + ID_VENDOR_FROM_DATABASE=Matrox Electronics Systems Ltd. +@@ -11829,34 +11829,34 @@ pci:v0000102Bd0000051A* + ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] + + pci:v0000102Bd0000051Asv0000102Bsd00000100* +- ID_MODEL_FROM_DATABASE=MGA-1064SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1064SG Mystique) + + pci:v0000102Bd0000051Asv0000102Bsd00001100* +- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) + + pci:v0000102Bd0000051Asv0000102Bsd00001200* +- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) + + pci:v0000102Bd0000051Asv00001100sd0000102B* +- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) + + pci:v0000102Bd0000051Asv0000110Asd00000018* +- ID_MODEL_FROM_DATABASE=Scenic Pro C5 (D1025) ++ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (Scenic Pro C5 (D1025)) + + pci:v0000102Bd0000051B* + ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] + + pci:v0000102Bd0000051Bsv0000102Bsd0000051B* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051Bsv0000102Bsd00001100* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051Bsv0000102Bsd00001200* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051Bsv0000102Bsd00002100* +- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II ++ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) + + pci:v0000102Bd0000051E* + ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] AGP +@@ -11868,391 +11868,391 @@ pci:v0000102Bd00000520* + ID_MODEL_FROM_DATABASE=MGA G200 + + pci:v0000102Bd00000520sv0000102Bsd0000DBC2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000DBC8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000DBE2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000DBE8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) + + pci:v0000102Bd00000520sv0000102Bsd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G200 SD ++ ID_MODEL_FROM_DATABASE=MGA G200 (Millennium G200 SD) + + pci:v0000102Bd00000520sv0000102Bsd0000FF04* +- ID_MODEL_FROM_DATABASE=Marvel G200 ++ ID_MODEL_FROM_DATABASE=MGA G200 (Marvel G200) + + pci:v0000102Bd00000521* + ID_MODEL_FROM_DATABASE=MGA G200 AGP + + pci:v0000102Bd00000521sv00001014sd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd000048E9* +- ID_MODEL_FROM_DATABASE=Mystique G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd000048F8* +- ID_MODEL_FROM_DATABASE=Millennium G200 SD AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 SD AGP) + + pci:v0000102Bd00000521sv0000102Bsd00004A60* +- ID_MODEL_FROM_DATABASE=Millennium G200 LE AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 LE AGP) + + pci:v0000102Bd00000521sv0000102Bsd00004A64* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000C93C* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000C9B0* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000C9BC* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000CA60* +- ID_MODEL_FROM_DATABASE=Millennium G250 LE AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 LE AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000CA6C* +- ID_MODEL_FROM_DATABASE=Millennium G250 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000DBBC* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000DBC2* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBC3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBC8* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD4* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD5* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBD9* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBE2* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBE3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBE8* +- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF2* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF3* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF4* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF5* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF8* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000DBF9* +- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) + + pci:v0000102Bd00000521sv0000102Bsd0000F806* +- ID_MODEL_FROM_DATABASE=Mystique G200 Video AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 Video AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF00* +- ID_MODEL_FROM_DATABASE=MGA-G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF02* +- ID_MODEL_FROM_DATABASE=Mystique G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) + + pci:v0000102Bd00000521sv0000102Bsd0000FF04* +- ID_MODEL_FROM_DATABASE=Marvel G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Marvel G200 AGP) + + pci:v0000102Bd00000521sv0000110Asd00000032* +- ID_MODEL_FROM_DATABASE=MGA-G200 AGP ++ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) + + pci:v0000102Bd00000522* + ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) + + pci:v0000102Bd00000522sv0000103Csd000031FA* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) (ProLiant DL140 G3) + + pci:v0000102Bd00000525* + ID_MODEL_FROM_DATABASE=MGA G400/G450 + + pci:v0000102Bd00000525sv00000E11sd0000B16F* +- ID_MODEL_FROM_DATABASE=MGA-G400 AGP ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (MGA-G400 AGP) + + pci:v0000102Bd00000525sv0000102Bsd00000328* +- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) + + pci:v0000102Bd00000525sv0000102Bsd00000338* +- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) + + pci:v0000102Bd00000525sv0000102Bsd00000378* +- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SDRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SDRAM) + + pci:v0000102Bd00000525sv0000102Bsd00000541* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head) + + pci:v0000102Bd00000525sv0000102Bsd00000542* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX) + + pci:v0000102Bd00000525sv0000102Bsd00000543* +- ID_MODEL_FROM_DATABASE=Millennium G450 Single Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Single Head LX) + + pci:v0000102Bd00000525sv0000102Bsd00000641* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head) + + pci:v0000102Bd00000525sv0000102Bsd00000642* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head LX) + + pci:v0000102Bd00000525sv0000102Bsd00000643* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Single Head LX ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Single Head LX) + + pci:v0000102Bd00000525sv0000102Bsd000007C0* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LE ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LE) + + pci:v0000102Bd00000525sv0000102Bsd000007C1* +- ID_MODEL_FROM_DATABASE=Millennium G450 SDR Dual Head LE ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 SDR Dual Head LE) + + pci:v0000102Bd00000525sv0000102Bsd00000D41* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head PCI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head PCI) + + pci:v0000102Bd00000525sv0000102Bsd00000D42* +- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX PCI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX PCI) + + pci:v0000102Bd00000525sv0000102Bsd00000D43* +- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb Dual Head PCI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb Dual Head PCI) + + pci:v0000102Bd00000525sv0000102Bsd00000E00* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000E01* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000E02* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000E03* +- ID_MODEL_FROM_DATABASE=Marvel G450 eTV ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) + + pci:v0000102Bd00000525sv0000102Bsd00000F80* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) + + pci:v0000102Bd00000525sv0000102Bsd00000F81* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) + + pci:v0000102Bd00000525sv0000102Bsd00000F82* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) + + pci:v0000102Bd00000525sv0000102Bsd00000F83* +- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) + + pci:v0000102Bd00000525sv0000102Bsd000019D8* +- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SGRAM) + + pci:v0000102Bd00000525sv0000102Bsd000019F8* +- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SGRAM) + + pci:v0000102Bd00000525sv0000102Bsd00002159* +- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head 16Mb ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head 16Mb) + + pci:v0000102Bd00000525sv0000102Bsd00002179* +- ID_MODEL_FROM_DATABASE=Millennium G400 MAX/Dual Head 32Mb ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 MAX/Dual Head 32Mb) + + pci:v0000102Bd00000525sv0000102Bsd0000217D* +- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head Max ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head Max) + + pci:v0000102Bd00000525sv0000102Bsd000023C0* +- ID_MODEL_FROM_DATABASE=Millennium G450 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) + + pci:v0000102Bd00000525sv0000102Bsd000023C1* +- ID_MODEL_FROM_DATABASE=Millennium G450 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) + + pci:v0000102Bd00000525sv0000102Bsd000023C2* +- ID_MODEL_FROM_DATABASE=Millennium G450 DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) + + pci:v0000102Bd00000525sv0000102Bsd000023C3* +- ID_MODEL_FROM_DATABASE=Millennium G450 DVI ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) + + pci:v0000102Bd00000525sv0000102Bsd00002F58* +- ID_MODEL_FROM_DATABASE=Millennium G400 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) + + pci:v0000102Bd00000525sv0000102Bsd00002F78* +- ID_MODEL_FROM_DATABASE=Millennium G400 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) + + pci:v0000102Bd00000525sv0000102Bsd00003693* +- ID_MODEL_FROM_DATABASE=Marvel G400 AGP ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G400 AGP) + + pci:v0000102Bd00000525sv0000102Bsd00005DD0* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00005F50* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00005F51* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00005F52* +- ID_MODEL_FROM_DATABASE=4Sight II ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) + + pci:v0000102Bd00000525sv0000102Bsd00009010* +- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head) + + pci:v0000102Bd00000525sv00001458sd00000400* +- ID_MODEL_FROM_DATABASE=GA-G400 ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (GA-G400) + + pci:v0000102Bd00000525sv00001705sd00000001* +- ID_MODEL_FROM_DATABASE=Millennium G450 32MB SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB SGRAM) + + pci:v0000102Bd00000525sv00001705sd00000002* +- ID_MODEL_FROM_DATABASE=Millennium G450 16MB SGRAM ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB SGRAM) + + pci:v0000102Bd00000525sv00001705sd00000003* +- ID_MODEL_FROM_DATABASE=Millennium G450 32MB ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB) + + pci:v0000102Bd00000525sv00001705sd00000004* +- ID_MODEL_FROM_DATABASE=Millennium G450 16MB ++ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB) + + pci:v0000102Bd00000527* + ID_MODEL_FROM_DATABASE=Parhelia + + pci:v0000102Bd00000527sv0000102Bsd00000840* +- ID_MODEL_FROM_DATABASE=Parhelia 128Mb ++ ID_MODEL_FROM_DATABASE=Parhelia (128Mb) + + pci:v0000102Bd00000527sv0000102Bsd00000850* +- ID_MODEL_FROM_DATABASE=Parhelia 256MB ++ ID_MODEL_FROM_DATABASE=Parhelia (256MB) + + pci:v0000102Bd00000527sv0000102Bsd00000870* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000527sv0000102Bsd00000880* +- ID_MODEL_FROM_DATABASE=P-256 Edge Overlap Controller ++ ID_MODEL_FROM_DATABASE=Parhelia (P-256 Edge Overlap Controller) + + pci:v0000102Bd00000528* + ID_MODEL_FROM_DATABASE=Parhelia + + pci:v0000102Bd00000528sv0000102Bsd00001020* +- ID_MODEL_FROM_DATABASE=Parhelia 128MB ++ ID_MODEL_FROM_DATABASE=Parhelia (128MB) + + pci:v0000102Bd00000528sv0000102Bsd00001030* +- ID_MODEL_FROM_DATABASE=Parhelia 256 MB Dual DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (256 MB Dual DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001040* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001050* +- ID_MODEL_FROM_DATABASE=Sono S20 ++ ID_MODEL_FROM_DATABASE=Parhelia (Sono S20) + + pci:v0000102Bd00000528sv0000102Bsd00001060* +- ID_MODEL_FROM_DATABASE=PJ-30L ++ ID_MODEL_FROM_DATABASE=Parhelia (PJ-30L) + + pci:v0000102Bd00000528sv0000102Bsd00001070* +- ID_MODEL_FROM_DATABASE=PJ-40L ++ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40L) + + pci:v0000102Bd00000528sv0000102Bsd00001421* +- ID_MODEL_FROM_DATABASE=MED5mp ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp) + + pci:v0000102Bd00000528sv0000102Bsd00001431* +- ID_MODEL_FROM_DATABASE=MED3mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001451* +- ID_MODEL_FROM_DATABASE=MED5mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001491* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd000014B1* +- ID_MODEL_FROM_DATABASE=MED3mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd000014C1* +- ID_MODEL_FROM_DATABASE=MED5mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd000014E1* +- ID_MODEL_FROM_DATABASE=Parhelia PCI 256MB ++ ID_MODEL_FROM_DATABASE=Parhelia (PCI 256MB) + + pci:v0000102Bd00000528sv0000102Bsd000014F1* +- ID_MODEL_FROM_DATABASE=Parhelia Precision SGT ++ ID_MODEL_FROM_DATABASE=Parhelia (Precision SGT) + + pci:v0000102Bd00000528sv0000102Bsd00001501* +- ID_MODEL_FROM_DATABASE=ATC-4MP ++ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) + + pci:v0000102Bd00000528sv0000102Bsd00001511* +- ID_MODEL_FROM_DATABASE=ATC-4MP ++ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) + + pci:v0000102Bd00000528sv0000102Bsd00001521* +- ID_MODEL_FROM_DATABASE=TheatreVUE T30 ++ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T30) + + pci:v0000102Bd00000528sv0000102Bsd00001531* +- ID_MODEL_FROM_DATABASE=TheatreVUE T20 ++ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T20) + + pci:v0000102Bd00000528sv0000102Bsd00001541* +- ID_MODEL_FROM_DATABASE=MED2mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001551* +- ID_MODEL_FROM_DATABASE=MED3mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001561* +- ID_MODEL_FROM_DATABASE=MED5mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00001571* +- ID_MODEL_FROM_DATABASE=Parhelia DL256 PCI ++ ID_MODEL_FROM_DATABASE=Parhelia (DL256 PCI) + + pci:v0000102Bd00000528sv0000102Bsd00001591* +- ID_MODEL_FROM_DATABASE=Parhelia Precision SDT ++ ID_MODEL_FROM_DATABASE=Parhelia (Precision SDT) + + pci:v0000102Bd00000528sv0000102Bsd000015A1* +- ID_MODEL_FROM_DATABASE=MED4mp-DVI ++ ID_MODEL_FROM_DATABASE=Parhelia (MED4mp-DVI) + + pci:v0000102Bd00000528sv0000102Bsd00002011* +- ID_MODEL_FROM_DATABASE=Parhelia HR256 ++ ID_MODEL_FROM_DATABASE=Parhelia (HR256) + + pci:v0000102Bd00000528sv0000102Bsd00002021* +- ID_MODEL_FROM_DATABASE=QID Pro ++ ID_MODEL_FROM_DATABASE=Parhelia (QID Pro) + + pci:v0000102Bd00000528sv0000102Bsd00002061* +- ID_MODEL_FROM_DATABASE=PJ-40LP ++ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40LP) + + pci:v0000102Bd00000528sv0000102Bsd00002081* +- ID_MODEL_FROM_DATABASE=EWS Quad ++ ID_MODEL_FROM_DATABASE=Parhelia (EWS Quad) + + pci:v0000102Bd00000528sv0000102Bsd00002411* +- ID_MODEL_FROM_DATABASE=PPX-OUT8 ++ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT8) + + pci:v0000102Bd00000528sv0000102Bsd00002421* +- ID_MODEL_FROM_DATABASE=VPX-OUT8 ++ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT8) + + pci:v0000102Bd00000528sv0000102Bsd00002441* +- ID_MODEL_FROM_DATABASE=PPX-OUT4 ++ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT4) + + pci:v0000102Bd00000528sv0000102Bsd00002451* +- ID_MODEL_FROM_DATABASE=VPX-OUT4 ++ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT4) + + pci:v0000102Bd00000528sv0000102Bsd00002491* +- ID_MODEL_FROM_DATABASE=LPX-OUT4 ++ ID_MODEL_FROM_DATABASE=Parhelia (LPX-OUT4) + + pci:v0000102Bd00000530* + ID_MODEL_FROM_DATABASE=MGA G200EV +@@ -12261,37 +12261,37 @@ pci:v0000102Bd00000532* + ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 + + pci:v0000102Bd00000532sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R710 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R610 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T610 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M610 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R410 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T410 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M710 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv00001028sd000002A4* +- ID_MODEL_FROM_DATABASE=PowerEdge T310 MGA G200eW WPCM450 ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) + + pci:v0000102Bd00000532sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) + + pci:v0000102Bd00000533* + ID_MODEL_FROM_DATABASE=MGA G200EH + + pci:v0000102Bd00000533sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=MGA G200EH (iLO4) + + pci:v0000102Bd00000534* + ID_MODEL_FROM_DATABASE=G200eR2 +@@ -12300,40 +12300,40 @@ pci:v0000102Bd00000540* + ID_MODEL_FROM_DATABASE=M91XX + + pci:v0000102Bd00000540sv0000102Bsd00002080* +- ID_MODEL_FROM_DATABASE=M9140 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9140 LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd000020C0* +- ID_MODEL_FROM_DATABASE=Xenia ++ ID_MODEL_FROM_DATABASE=M91XX (Xenia) + + pci:v0000102Bd00000540sv0000102Bsd000020C1* +- ID_MODEL_FROM_DATABASE=Xenia Pro ++ ID_MODEL_FROM_DATABASE=M91XX (Xenia Pro) + + pci:v0000102Bd00000540sv0000102Bsd00002100* +- ID_MODEL_FROM_DATABASE=M9120 PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9120 PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002140* +- ID_MODEL_FROM_DATABASE=M9125 PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9125 PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002180* +- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd000021C0* +- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x1 ++ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x1) + + pci:v0000102Bd00000540sv0000102Bsd00002200* +- ID_MODEL_FROM_DATABASE=VDA1164 Output Board ++ ID_MODEL_FROM_DATABASE=M91XX (VDA1164 Output Board) + + pci:v0000102Bd00000540sv0000102Bsd00002240* +- ID_MODEL_FROM_DATABASE=M9148 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9148 LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002241* +- ID_MODEL_FROM_DATABASE=M9138 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9138 LP PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd00002280* +- ID_MODEL_FROM_DATABASE=M9188 ATX PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9188 ATX PCIe x16) + + pci:v0000102Bd00000540sv0000102Bsd000022C0* +- ID_MODEL_FROM_DATABASE=M9128 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=M91XX (M9128 LP PCIe x16) + + pci:v0000102Bd00000D10* + ID_MODEL_FROM_DATABASE=MGA Ultima/Impression +@@ -12342,34 +12342,34 @@ pci:v0000102Bd00001000* + ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] + + pci:v0000102Bd00001000sv0000102Bsd0000FF01* +- ID_MODEL_FROM_DATABASE=Productiva G100 ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100) + + pci:v0000102Bd00001000sv0000102Bsd0000FF05* +- ID_MODEL_FROM_DATABASE=Productiva G100 Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100 Multi-Monitor) + + pci:v0000102Bd00001001* + ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP + + pci:v0000102Bd00001001sv0000102Bsd00001001* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF00* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF01* +- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF03* +- ID_MODEL_FROM_DATABASE=Millennium G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (Millennium G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF04* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00001001sv0000102Bsd0000FF05* +- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP Multi-Monitor ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP Multi-Monitor) + + pci:v0000102Bd00001001sv0000110Asd0000001E* +- ID_MODEL_FROM_DATABASE=MGA-G100 AGP ++ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) + + pci:v0000102Bd00002007* + ID_MODEL_FROM_DATABASE=MGA Mistral +@@ -12378,163 +12378,163 @@ pci:v0000102Bd00002527* + ID_MODEL_FROM_DATABASE=Millennium G550 + + pci:v0000102Bd00002527sv0000102Bsd00000F42* +- ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI ++ ID_MODEL_FROM_DATABASE=Millennium G550 (Matrox G550 Low Profile PCI) + + pci:v0000102Bd00002527sv0000102Bsd00000F83* + ID_MODEL_FROM_DATABASE=Millennium G550 + + pci:v0000102Bd00002527sv0000102Bsd00000F84* +- ID_MODEL_FROM_DATABASE=Millennium G550 Dual Head DDR 32Mb ++ ID_MODEL_FROM_DATABASE=Millennium G550 (Dual Head DDR 32Mb) + + pci:v0000102Bd00002527sv0000102Bsd00001E41* + ID_MODEL_FROM_DATABASE=Millennium G550 + + pci:v0000102Bd00002527sv0000102Bsd00002300* +- ID_MODEL_FROM_DATABASE=Millennium G550 LP PCIE ++ ID_MODEL_FROM_DATABASE=Millennium G550 (LP PCIE) + + pci:v0000102Bd00002537* + ID_MODEL_FROM_DATABASE=Millenium P650/P750 + + pci:v0000102Bd00002537sv0000102Bsd00001820* +- ID_MODEL_FROM_DATABASE=Millennium P750 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P750 64MB) + + pci:v0000102Bd00002537sv0000102Bsd00001830* +- ID_MODEL_FROM_DATABASE=Millennium P650 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 64MB) + + pci:v0000102Bd00002537sv0000102Bsd00001850* +- ID_MODEL_FROM_DATABASE=RAD2mp ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD2mp) + + pci:v0000102Bd00002537sv0000102Bsd00001860* +- ID_MODEL_FROM_DATABASE=RAD3mp ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD3mp) + + pci:v0000102Bd00002537sv0000102Bsd00001880* +- ID_MODEL_FROM_DATABASE=Sono S10 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Sono S10) + + pci:v0000102Bd00002537sv0000102Bsd00001C10* +- ID_MODEL_FROM_DATABASE=QID 128MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID 128MB) + + pci:v0000102Bd00002537sv0000102Bsd00002811* +- ID_MODEL_FROM_DATABASE=Millennium P650 Low-profile PCI 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 Low-profile PCI 64MB) + + pci:v0000102Bd00002537sv0000102Bsd00002821* +- ID_MODEL_FROM_DATABASE=Millenium P650 Low-profile PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millenium P650 Low-profile PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002841* +- ID_MODEL_FROM_DATABASE=RAD PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002851* +- ID_MODEL_FROM_DATABASE=Spectrum PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Spectrum PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002871* +- ID_MODEL_FROM_DATABASE=EpicA TC2 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC2) + + pci:v0000102Bd00002537sv0000102Bsd00002C11* +- ID_MODEL_FROM_DATABASE=QID Low-profile PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID Low-profile PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002C21* +- ID_MODEL_FROM_DATABASE=QID LP PCI LW ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI LW) + + pci:v0000102Bd00002537sv0000102Bsd00002C31* +- ID_MODEL_FROM_DATABASE=QID LP PCI ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI) + + pci:v0000102Bd00002537sv0000102Bsd00002C41* +- ID_MODEL_FROM_DATABASE=EpicA TC4 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC4) + + pci:v0000102Bd00002537sv0000102Bsd00003001* +- ID_MODEL_FROM_DATABASE=Extio F1400 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1400) + + pci:v0000102Bd00002537sv0000102Bsd00003011* +- ID_MODEL_FROM_DATABASE=Extio F1220 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1220) + + pci:v0000102Bd00002537sv0000102Bsd00003041* +- ID_MODEL_FROM_DATABASE=RG-200DL ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-200DL) + + pci:v0000102Bd00002537sv0000102Bsd00003051* +- ID_MODEL_FROM_DATABASE=RG-400SL ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-400SL) + + pci:v0000102Bd00002537sv0000102Bsd00003061* +- ID_MODEL_FROM_DATABASE=Extio F1420 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1420) + + pci:v0000102Bd00002537sv0000102Bsd00003081* +- ID_MODEL_FROM_DATABASE=Extio F1240 ++ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1240) + + pci:v0000102Bd00002538* + ID_MODEL_FROM_DATABASE=Millenium P650 PCIe + + pci:v0000102Bd00002538sv0000102Bsd00000847* +- ID_MODEL_FROM_DATABASE=RAD PCIe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (RAD PCIe) + + pci:v0000102Bd00002538sv0000102Bsd000008C7* +- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 128MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 128MB) + + pci:v0000102Bd00002538sv0000102Bsd00000907* +- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 64MB) + + pci:v0000102Bd00002538sv0000102Bsd00000947* +- ID_MODEL_FROM_DATABASE=Parhelia APVe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) + + pci:v0000102Bd00002538sv0000102Bsd00000987* +- ID_MODEL_FROM_DATABASE=ATC PCIe 4MP ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (ATC PCIe 4MP) + + pci:v0000102Bd00002538sv0000102Bsd00001047* +- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 128MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 128MB) + + pci:v0000102Bd00002538sv0000102Bsd00001087* +- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 64MB ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 64MB) + + pci:v0000102Bd00002538sv0000102Bsd00001801* +- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe x1 ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (x1) + + pci:v0000102Bd00002538sv0000102Bsd00002538* +- ID_MODEL_FROM_DATABASE=Parhelia APVe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) + + pci:v0000102Bd00002538sv0000102Bsd00003007* +- ID_MODEL_FROM_DATABASE=QID Low-profile PCIe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID Low-profile PCIe) + + pci:v0000102Bd00002538sv0000102Bsd00003087* +- ID_MODEL_FROM_DATABASE=Aurora VX3mp ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Aurora VX3mp) + + pci:v0000102Bd00002538sv0000102Bsd000030C7* +- ID_MODEL_FROM_DATABASE=QID LP PCIe ++ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID LP PCIe) + + pci:v0000102Bd00002539* + ID_MODEL_FROM_DATABASE=Millennium P690 + + pci:v0000102Bd00002539sv0000102Bsd00000040* +- ID_MODEL_FROM_DATABASE=Millenium P690 PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd00000042* +- ID_MODEL_FROM_DATABASE=ONYX ++ ID_MODEL_FROM_DATABASE=Millennium P690 (ONYX) + + pci:v0000102Bd00002539sv0000102Bsd00000043* +- ID_MODEL_FROM_DATABASE=SPECTRA ++ ID_MODEL_FROM_DATABASE=Millennium P690 (SPECTRA) + + pci:v0000102Bd00002539sv0000102Bsd00000080* +- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd00000081* +- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd00000082* +- ID_MODEL_FROM_DATABASE=RAD LPX PCIe x16 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCIe x16) + + pci:v0000102Bd00002539sv0000102Bsd000000C0* +- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCI) + + pci:v0000102Bd00002539sv0000102Bsd000000C2* +- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCI) + + pci:v0000102Bd00002539sv0000102Bsd000000C3* +- ID_MODEL_FROM_DATABASE=RAD LPX PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCI) + + pci:v0000102Bd00002539sv0000102Bsd00000101* +- ID_MODEL_FROM_DATABASE=Millenium P690 PCI ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCI) + + pci:v0000102Bd00002539sv0000102Bsd00000140* +- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x1 ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x1) + + pci:v0000102Bd00002539sv0000102Bsd00000180* +- ID_MODEL_FROM_DATABASE=Display Wall IP Decode 128 MB ++ ID_MODEL_FROM_DATABASE=Millennium P690 (Display Wall IP Decode 128 MB) + + pci:v0000102Bd00004164* + ID_MODEL_FROM_DATABASE=Morphis QxT frame grabber +@@ -12558,43 +12558,43 @@ pci:v0000102Bd0000475D* + ID_MODEL_FROM_DATABASE=Vio frame grabber family + + pci:v0000102Bd0000475Dsv0000102Bsd00004B90* +- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber (single channel) ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber (single channel)) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B91* +- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B92* +- ID_MODEL_FROM_DATABASE=Vio Analog frame grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Analog frame grabber) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B93* +- ID_MODEL_FROM_DATABASE=Vio SDI Frame Grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio SDI Frame Grabber) + + pci:v0000102Bd0000475Dsv0000102Bsd00004B94* +- ID_MODEL_FROM_DATABASE=Vio DVI-A frame grabber ++ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio DVI-A frame grabber) + + pci:v0000102Bd0000475F* + ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber + + pci:v0000102Bd0000475Fsv0000102Bsd0000475F* +- ID_MODEL_FROM_DATABASE=Solios eCL/XCL-F frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eCL/XCL-F frame grabber) + + pci:v0000102Bd0000475Fsv0000102Bsd00004D5F* +- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Full) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eV-CL (single-Full) frame grabber) + + pci:v0000102Bd0000475Fsv0000102Bsd00004E5F* +- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Full) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eM-CL (single-Full) frame grabber) + + pci:v0000102Bd000047A1* + ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber + + pci:v0000102Bd000047A1sv0000102Bsd00004BE0* +- ID_MODEL_FROM_DATABASE=Solios eA/XA (single) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (single) frame grabber) + + pci:v0000102Bd000047A1sv0000102Bsd00004BE1* +- ID_MODEL_FROM_DATABASE=Solios eA/XA (dual) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (dual) frame grabber) + + pci:v0000102Bd000047A1sv0000102Bsd00004BE2* +- ID_MODEL_FROM_DATABASE=Solios eA/XA (quad) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (quad) frame grabber) + + pci:v0000102Bd000047A2* + ID_MODEL_FROM_DATABASE=Solios COM port +@@ -12603,25 +12603,25 @@ pci:v0000102Bd000047C1* + ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber + + pci:v0000102Bd000047C1sv0000102Bsd00000000* +- ID_MODEL_FROM_DATABASE=Solios frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004B80* +- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (single-Medium) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (single-Medium) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004B81* +- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (dual-Base) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (dual-Base) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004D80* +- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Medium) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (single-Medium) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004D81* +- ID_MODEL_FROM_DATABASE=Solios eV-CL (dual-Base) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (dual-Base) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004E80* +- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Medium) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (single-Medium) frame grabber) + + pci:v0000102Bd000047C1sv0000102Bsd00004E81* +- ID_MODEL_FROM_DATABASE=Solios eM-CL (dual-Base) frame grabber ++ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (dual-Base) frame grabber) + + pci:v0000102Bd000047C2* + ID_MODEL_FROM_DATABASE=Solios COM port +@@ -12630,34 +12630,34 @@ pci:v0000102Bd00004949* + ID_MODEL_FROM_DATABASE=Radient frame grabber family + + pci:v0000102Bd00004949sv0000102Bsd00000010* +- ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Single-full) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000011* +- ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCLV (Single-full) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000020* +- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-base) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000030* +- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-full) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-full) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000040* +- ID_MODEL_FROM_DATABASE=Radient eCL (Quad-base) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Quad-base) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00000050* +- ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Golden) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001010* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-6) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001015* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (dual CXP-6) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001020* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-3) frame grabber) + + pci:v0000102Bd00004949sv0000102Bsd00001050* +- ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber ++ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (Golden) frame grabber) + + pci:v0000102Bd00004CDC* + ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator +@@ -12687,22 +12687,22 @@ pci:v0000102Cd000000C0sv0000102Csd000000C0* + ID_MODEL_FROM_DATABASE=F69000 HiQVideo + + pci:v0000102Cd000000C0sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001010* +- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CP5/CR6 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001020* +- ID_MODEL_FROM_DATABASE=VR6 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (VR6 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001030* +- ID_MODEL_FROM_DATABASE=PC5 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (PC5 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CT7 mainboard) + + pci:v0000102Cd000000C0sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CE7 mainboard) + + pci:v0000102Cd000000D0* + ID_MODEL_FROM_DATABASE=F65545 +@@ -12723,10 +12723,10 @@ pci:v0000102Cd000000E5* + ID_MODEL_FROM_DATABASE=F65555 HiQVPro + + pci:v0000102Cd000000E5sv00000E11sd0000B049* +- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop Display Controller ++ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Armada 1700 Laptop Display Controller) + + pci:v0000102Cd000000E5sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite Pro/Satellite ++ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Satellite Pro/Satellite) + + pci:v0000102Cd000000F0* + ID_MODEL_FROM_DATABASE=F68554 +@@ -12741,16 +12741,16 @@ pci:v0000102Cd00000C30* + ID_MODEL_FROM_DATABASE=F69030 + + pci:v0000102Cd00000C30sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v0000102Cd00000C30sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CT7 mainboard) + + pci:v0000102Cd00000C30sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CE7 mainboard) + + pci:v0000102Cd00000C30sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=F69030 (CT8 mainboard) + + pci:v0000102D* + ID_VENDOR_FROM_DATABASE=Wyse Technology Inc. +@@ -12894,34 +12894,34 @@ pci:v00001033d00000035* + ID_MODEL_FROM_DATABASE=OHCI USB Controller + + pci:v00001033d00000035sv00001033sd00000035* +- ID_MODEL_FROM_DATABASE=USB Controller ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB Controller) + + pci:v00001033d00000035sv0000103Csd00001293* +- ID_MODEL_FROM_DATABASE=USB add-in card ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB add-in card) + + pci:v00001033d00000035sv0000103Csd00001294* +- ID_MODEL_FROM_DATABASE=USB 2.0 add-in card ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB 2.0 add-in card) + + pci:v00001033d00000035sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=USB ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB) + + pci:v00001033d00000035sv000012EEsd00007000* +- ID_MODEL_FROM_DATABASE=Root Hub ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) + + pci:v00001033d00000035sv000014C2sd00000105* +- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PTI-205N USB 2.0 Host Controller) + + pci:v00001033d00000035sv00001799sd00000001* +- ID_MODEL_FROM_DATABASE=Root Hub ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) + + pci:v00001033d00000035sv00001931sd0000000A* +- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (PPP data) ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (PPP data)) + + pci:v00001033d00000035sv00001931sd0000000B* +- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (GSM data) ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (GSM data)) + + pci:v00001033d00000035sv0000807Dsd00000035* +- ID_MODEL_FROM_DATABASE=PCI-USB2 (OHCI subsystem) ++ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PCI-USB2 (OHCI subsystem)) + + pci:v00001033d0000003B* + ID_MODEL_FROM_DATABASE=PCI to C-bus Bridge +@@ -12942,28 +12942,28 @@ pci:v00001033d00000067* + ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset + + pci:v00001033d00000067sv00001010sd00000020* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) + + pci:v00001033d00000067sv00001010sd00000080* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) + + pci:v00001033d00000067sv00001010sd00000088* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) + + pci:v00001033d00000067sv00001010sd00000090* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) + + pci:v00001033d00000067sv00001010sd00000098* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) + + pci:v00001033d00000067sv00001010sd000000A0* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) + + pci:v00001033d00000067sv00001010sd000000A8* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 32Mb) + + pci:v00001033d00000067sv00001010sd00000120* +- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb ++ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) + + pci:v00001033d00000072* + ID_MODEL_FROM_DATABASE=uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr +@@ -12972,7 +12972,7 @@ pci:v00001033d00000074* + ID_MODEL_FROM_DATABASE=56k Voice Modem + + pci:v00001033d00000074sv00001033sd00008014* +- ID_MODEL_FROM_DATABASE=RCV56ACF 56k Voice Modem ++ ID_MODEL_FROM_DATABASE=56k Voice Modem (RCV56ACF 56k Voice Modem) + + pci:v00001033d0000009B* + ID_MODEL_FROM_DATABASE=Vrc5476 +@@ -12987,7 +12987,7 @@ pci:v00001033d000000CD* + ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller + + pci:v00001033d000000CDsv000012EEsd00008011* +- ID_MODEL_FROM_DATABASE=Root hub ++ ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller (Root hub) + + pci:v00001033d000000CE* + ID_MODEL_FROM_DATABASE=uPD72871 [Firewarden] IEEE1394a OHCI 1.0 Link/1-port PHY Controller +@@ -12999,16 +12999,16 @@ pci:v00001033d000000E0* + ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller + + pci:v00001033d000000E0sv000012EEsd00007001* +- ID_MODEL_FROM_DATABASE=Root hub ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root hub) + + pci:v00001033d000000E0sv000014C2sd00000205* +- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PTI-205N USB 2.0 Host Controller) + + pci:v00001033d000000E0sv00001799sd00000002* +- ID_MODEL_FROM_DATABASE=Root Hub ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root Hub) + + pci:v00001033d000000E0sv0000807Dsd00001043* +- ID_MODEL_FROM_DATABASE=PCI-USB2 (EHCI subsystem) ++ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PCI-USB2 (EHCI subsystem)) + + pci:v00001033d000000E7* + ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller +@@ -13032,22 +13032,22 @@ pci:v00001033d00000194* + ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller + + pci:v00001033d00000194sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Precision M4600) + + pci:v00001033d00000194sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3350) + + pci:v00001033d00000194sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3750) + + pci:v00001033d00000194sv00001043sd00008413* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (P8P67 Deluxe Motherboard) + + pci:v00001033d00000194sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (QEMU Virtual Machine) + + pci:v00001033d00000194sv00001B96sd00000001* +- ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card ++ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (USB 3.0 PCIe Card) + + pci:v00001033d000001E7* + ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller +@@ -13116,7 +13116,7 @@ pci:v00001039d00000182* + ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller + + pci:v00001039d00000182sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller (D2030-A1) + + pci:v00001039d00000186* + ID_MODEL_FROM_DATABASE=AHCI Controller (0106) +@@ -13131,7 +13131,7 @@ pci:v00001039d00000200* + ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA + + pci:v00001039d00000200sv00001039sd00000000* +- ID_MODEL_FROM_DATABASE=SiS5597 SVGA (Shared RAM) ++ ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA (SiS5597 SVGA (Shared RAM)) + + pci:v00001039d00000204* + ID_MODEL_FROM_DATABASE=82C204 +@@ -13143,7 +13143,7 @@ pci:v00001039d00000300* + ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter + + pci:v00001039d00000300sv0000107Dsd00002720* +- ID_MODEL_FROM_DATABASE=Leadtek WinFast VR300 ++ ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter (Leadtek WinFast VR300) + + pci:v00001039d00000310* + ID_MODEL_FROM_DATABASE=315H PCI/AGP VGA Display Adapter +@@ -13239,7 +13239,7 @@ pci:v00001039d00000741* + ID_MODEL_FROM_DATABASE=741/741GX/M741 Host + + pci:v00001039d00000741sv00001849sd00000741* +- ID_MODEL_FROM_DATABASE=K7S41/K7S41GX motherboard ++ ID_MODEL_FROM_DATABASE=741/741GX/M741 Host (K7S41/K7S41GX motherboard) + + pci:v00001039d00000745* + ID_MODEL_FROM_DATABASE=745 Host +@@ -13257,25 +13257,25 @@ pci:v00001039d00000761* + ID_MODEL_FROM_DATABASE=761/M761 Host + + pci:v00001039d00000761sv00001734sd00001099* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=761/M761 Host (D2030-A1 Motherboard) + + pci:v00001039d00000900* + ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet + + pci:v00001039d00000900sv00001019sd00000A14* +- ID_MODEL_FROM_DATABASE=K7S5A motherboard ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (K7S5A motherboard) + + pci:v00001039d00000900sv00001039sd00000900* +- ID_MODEL_FROM_DATABASE=SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA] ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA]) + + pci:v00001039d00000900sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (CUSI-FX motherboard) + + pci:v00001039d00000900sv00001043sd000080A7* +- ID_MODEL_FROM_DATABASE=Motherboard P4S800D-X ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (Motherboard P4S800D-X) + + pci:v00001039d00000900sv00001462sd00000900* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (MS-6701 motherboard) + + pci:v00001039d00000961* + ID_MODEL_FROM_DATABASE=SiS961 [MuTIOL Media IO] +@@ -13335,22 +13335,22 @@ pci:v00001039d00005513* + ID_MODEL_FROM_DATABASE=5513 IDE Controller + + pci:v00001039d00005513sv00001019sd00000970* +- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (P6STP-FL motherboard) + + pci:v00001039d00005513sv00001039sd00005513* +- ID_MODEL_FROM_DATABASE=SiS5513 EIDE Controller (A,B step) ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (SiS5513 EIDE Controller (A,B step)) + + pci:v00001039d00005513sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (CUSI-FX motherboard) + + pci:v00001039d00005513sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (MS-6701 motherboard) + + pci:v00001039d00005513sv00001631sd00005513* +- ID_MODEL_FROM_DATABASE=GA-8SIML Rev1.0 Motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (GA-8SIML Rev1.0 Motherboard) + + pci:v00001039d00005513sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=5513 IDE Controller (D2030-A1 Motherboard) + + pci:v00001039d00005517* + ID_MODEL_FROM_DATABASE=5517 +@@ -13389,13 +13389,13 @@ pci:v00001039d00006300* + ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter + + pci:v00001039d00006300sv00001019sd00000970* +- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard ++ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (P6STP-FL motherboard) + + pci:v00001039d00006300sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (CUSI-FX motherboard) + + pci:v00001039d00006300sv0000104Dsd000080E2* +- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 ++ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (VAIO PCV-J200) + + pci:v00001039d00006306* + ID_MODEL_FROM_DATABASE=530/620 PCI/AGP VGA Display Adapter +@@ -13404,49 +13404,49 @@ pci:v00001039d00006325* + ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter + + pci:v00001039d00006325sv00001039sd00006325* +- ID_MODEL_FROM_DATABASE=SiS 651 onboard [Asus P4SC-EA] ++ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651 onboard [Asus P4SC-EA]) + + pci:v00001039d00006325sv00001631sd00001004* +- ID_MODEL_FROM_DATABASE=SiS 651C onboard [Gigabyte GA-8SIML Rev1.0] ++ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651C onboard [Gigabyte GA-8SIML Rev1.0]) + + pci:v00001039d00006326* + ID_MODEL_FROM_DATABASE=86C326 5598/6326 + + pci:v00001039d00006326sv00001039sd00006326* +- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) + + pci:v00001039d00006326sv00001092sd00000A50* +- ID_MODEL_FROM_DATABASE=SpeedStar A50 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A50) + + pci:v00001039d00006326sv00001092sd00000A70* +- ID_MODEL_FROM_DATABASE=SpeedStar A70 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) + + pci:v00001039d00006326sv00001092sd00004910* +- ID_MODEL_FROM_DATABASE=SpeedStar A70 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) + + pci:v00001039d00006326sv00001092sd00004920* +- ID_MODEL_FROM_DATABASE=SpeedStar A70 ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) + + pci:v00001039d00006326sv000010B0sd00006326* +- ID_MODEL_FROM_DATABASE=S6110-B (AGP) ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (S6110-B (AGP)) + + pci:v00001039d00006326sv00001569sd00006326* +- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator ++ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) + + pci:v00001039d00006330* + ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter + + pci:v00001039d00006330sv00001039sd00006330* +- ID_MODEL_FROM_DATABASE=[M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter ([M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter) + + pci:v00001039d00006330sv00001043sd00008113* +- ID_MODEL_FROM_DATABASE=SiS Real 256E (ASUS P5S800-VM motherboard) ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS Real 256E (ASUS P5S800-VM motherboard)) + + pci:v00001039d00006330sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=SiS661FX GUI 2D/3D Accelerator ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS661FX GUI 2D/3D Accelerator) + + pci:v00001039d00006330sv00001734sd00001099* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (D2030-A1) + + pci:v00001039d00006350* + ID_MODEL_FROM_DATABASE=770/670 PCIE VGA Display Adapter +@@ -13458,70 +13458,70 @@ pci:v00001039d00007001* + ID_MODEL_FROM_DATABASE=USB 1.1 Controller + + pci:v00001039d00007001sv00001019sd00000A14* +- ID_MODEL_FROM_DATABASE=K7S5A motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (K7S5A motherboard) + + pci:v00001039d00007001sv00001039sd00007000* +- ID_MODEL_FROM_DATABASE=Onboard USB Controller ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Onboard USB Controller) + + pci:v00001039d00007001sv00001462sd00005470* +- ID_MODEL_FROM_DATABASE=ECS K7SOM+ motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ECS K7SOM+ motherboard) + + pci:v00001039d00007001sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (MS-6701 motherboard) + + pci:v00001039d00007001sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (D2030-A1 Motherboard) + + pci:v00001039d00007002* + ID_MODEL_FROM_DATABASE=USB 2.0 Controller + + pci:v00001039d00007002sv00001462sd00005470* +- ID_MODEL_FROM_DATABASE=K7SOM+ 5.2C Motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (K7SOM+ 5.2C Motherboard) + + pci:v00001039d00007002sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (MS-6701 motherboard) + + pci:v00001039d00007002sv00001509sd00007002* +- ID_MODEL_FROM_DATABASE=Onboard USB Controller ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (Onboard USB Controller) + + pci:v00001039d00007002sv00001734sd00001095* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (D2030-A1) + + pci:v00001039d00007007* + ID_MODEL_FROM_DATABASE=FireWire Controller + + pci:v00001039d00007007sv00001462sd0000701D* +- ID_MODEL_FROM_DATABASE=MS-6701 ++ ID_MODEL_FROM_DATABASE=FireWire Controller (MS-6701) + + pci:v00001039d00007012* + ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller + + pci:v00001039d00007012sv00001019sd00000F05* +- ID_MODEL_FROM_DATABASE=A928 (i-Buddie) ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A928 (i-Buddie)) + + pci:v00001039d00007012sv00001039sd00007012* +- ID_MODEL_FROM_DATABASE=SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller) + + pci:v00001039d00007012sv00001043sd0000818F* +- ID_MODEL_FROM_DATABASE=A8S-X Motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A8S-X Motherboard) + + pci:v00001039d00007012sv000013F6sd00000300* +- ID_MODEL_FROM_DATABASE=CMI9739(A) on ECS K7SOM+ motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (CMI9739(A) on ECS K7SOM+ motherboard) + + pci:v00001039d00007012sv00001462sd00005850* +- ID_MODEL_FROM_DATABASE=MSI 648 Max (MS-6585) ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MSI 648 Max (MS-6585)) + + pci:v00001039d00007012sv00001462sd00007010* +- ID_MODEL_FROM_DATABASE=MS-6701 motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MS-6701 motherboard) + + pci:v00001039d00007012sv000015BDsd00001001* +- ID_MODEL_FROM_DATABASE=DFI 661FX motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (DFI 661FX motherboard) + + pci:v00001039d00007012sv00001734sd0000109F* +- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (D2030-A1 Motherboard) + + pci:v00001039d00007012sv00001849sd00007012* +- ID_MODEL_FROM_DATABASE=K7S41GX motherboard ++ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (K7S41GX motherboard) + + pci:v00001039d00007013* + ID_MODEL_FROM_DATABASE=AC'97 Modem Controller +@@ -13530,7 +13530,7 @@ pci:v00001039d00007016* + ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter + + pci:v00001039d00007016sv00001039sd00007016* +- ID_MODEL_FROM_DATABASE=SiS7016 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter (SiS7016 10/100 Ethernet Adapter) + + pci:v00001039d00007018* + ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator +@@ -13560,7 +13560,7 @@ pci:v00001039d00007018sv00001043sd0000800B* + ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator + + pci:v00001039d00007018sv0000104Dsd000080E2* +- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 ++ ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator (VAIO PCV-J200) + + pci:v00001039d00007018sv00001054sd00007018* + ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator +@@ -13635,25 +13635,25 @@ pci:v0000103Cd00001029* + ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter + + pci:v0000103Cd00001029sv0000107Esd0000000F* +- ID_MODEL_FROM_DATABASE=Interphase 5560 Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (Interphase 5560 Fibre Channel Adapter) + + pci:v0000103Cd00001029sv00009004sd00009210* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd00001029sv00009004sd00009211* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd0000102A* + ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter + + pci:v0000103Cd0000102Asv0000107Esd0000000E* +- ID_MODEL_FROM_DATABASE=Interphase 5540/5541 Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (Interphase 5540/5541 Fibre Channel Adapter) + + pci:v0000103Cd0000102Asv00009004sd00009110* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd0000102Asv00009004sd00009111* +- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller ++ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) + + pci:v0000103Cd00001030* + ID_MODEL_FROM_DATABASE=J2585A DeskDirect 10/100VG NIC +@@ -13662,13 +13662,13 @@ pci:v0000103Cd00001031* + ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter + + pci:v0000103Cd00001031sv0000103Csd00001040* +- ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC ++ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2973A DeskDirect 10BaseT NIC) + + pci:v0000103Cd00001031sv0000103Csd00001041* +- ID_MODEL_FROM_DATABASE=J2585B DeskDirect 10/100VG NIC ++ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2585B DeskDirect 10/100VG NIC) + + pci:v0000103Cd00001031sv0000103Csd00001042* +- ID_MODEL_FROM_DATABASE=J2970A DeskDirect 10BaseT/2 NIC ++ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2970A DeskDirect 10BaseT/2 NIC) + + pci:v0000103Cd00001040* + ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC +@@ -13683,28 +13683,28 @@ pci:v0000103Cd00001048* + ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART + + pci:v0000103Cd00001048sv0000103Csd00001049* +- ID_MODEL_FROM_DATABASE=Tosca Console ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Console) + + pci:v0000103Cd00001048sv0000103Csd0000104A* +- ID_MODEL_FROM_DATABASE=Tosca Secondary ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Secondary) + + pci:v0000103Cd00001048sv0000103Csd0000104B* +- ID_MODEL_FROM_DATABASE=Maestro SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Maestro SP2) + + pci:v0000103Cd00001048sv0000103Csd00001223* +- ID_MODEL_FROM_DATABASE=Superdome Console ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Superdome Console) + + pci:v0000103Cd00001048sv0000103Csd00001226* +- ID_MODEL_FROM_DATABASE=Keystone SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Keystone SP2) + + pci:v0000103Cd00001048sv0000103Csd00001227* +- ID_MODEL_FROM_DATABASE=Powerbar SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Powerbar SP2) + + pci:v0000103Cd00001048sv0000103Csd00001282* +- ID_MODEL_FROM_DATABASE=Everest SP2 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Everest SP2) + + pci:v0000103Cd00001048sv0000103Csd00001301* +- ID_MODEL_FROM_DATABASE=Diva RMP3 ++ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Diva RMP3) + + pci:v0000103Cd00001054* + ID_MODEL_FROM_DATABASE=PCI Local Bus Adapter +@@ -13758,7 +13758,7 @@ pci:v0000103Cd00001290* + ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port + + pci:v0000103Cd00001290sv0000103Csd00001291* +- ID_MODEL_FROM_DATABASE=Diva SP2 ++ ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port (Diva SP2) + + pci:v0000103Cd00001291* + ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port +@@ -13794,208 +13794,208 @@ pci:v0000103Cd00003220* + ID_MODEL_FROM_DATABASE=Smart Array P600 + + pci:v0000103Cd00003220sv0000103Csd00003225* +- ID_MODEL_FROM_DATABASE=3 Gb/s SAS RAID ++ ID_MODEL_FROM_DATABASE=Smart Array P600 (3 Gb/s SAS RAID) + + pci:v0000103Cd00003230* + ID_MODEL_FROM_DATABASE=Smart Array Controller + + pci:v0000103Cd00003230sv0000103Csd00003223* +- ID_MODEL_FROM_DATABASE=Smart Array P800 ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (Smart Array P800) + + pci:v0000103Cd00003230sv0000103Csd00003234* +- ID_MODEL_FROM_DATABASE=P400 SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400 SAS Controller) + + pci:v0000103Cd00003230sv0000103Csd00003235* +- ID_MODEL_FROM_DATABASE=P400i SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400i SAS Controller) + + pci:v0000103Cd00003230sv0000103Csd00003237* +- ID_MODEL_FROM_DATABASE=E500 SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (E500 SAS Controller) + + pci:v0000103Cd00003230sv0000103Csd0000323D* +- ID_MODEL_FROM_DATABASE=P700m SAS Controller ++ ID_MODEL_FROM_DATABASE=Smart Array Controller (P700m SAS Controller) + + pci:v0000103Cd00003238* + ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) + + pci:v0000103Cd00003238sv0000103Csd00003211* +- ID_MODEL_FROM_DATABASE=Smart Array E200i ++ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200i) + + pci:v0000103Cd00003238sv0000103Csd00003212* +- ID_MODEL_FROM_DATABASE=Smart Array E200 ++ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200) + + pci:v0000103Cd00003239* + ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers + + pci:v0000103Cd00003239sv0000103Csd000021BD* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021BE* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021BF* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C0* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C1* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C2* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C3* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C4* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C5* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C6* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C7* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C8* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021C9* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CA* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CB* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CC* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CD* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd00003239sv0000103Csd000021CE* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) + + pci:v0000103Cd0000323A* + ID_MODEL_FROM_DATABASE=Smart Array G6 controllers + + pci:v0000103Cd0000323Asv0000103Csd00003241* +- ID_MODEL_FROM_DATABASE=Smart Array P212 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P212) + + pci:v0000103Cd0000323Asv0000103Csd00003243* +- ID_MODEL_FROM_DATABASE=Smart Array P410 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410) + + pci:v0000103Cd0000323Asv0000103Csd00003245* +- ID_MODEL_FROM_DATABASE=Smart Array P410i ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410i) + + pci:v0000103Cd0000323Asv0000103Csd00003247* +- ID_MODEL_FROM_DATABASE=Smart Array P411 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P411) + + pci:v0000103Cd0000323Asv0000103Csd00003249* +- ID_MODEL_FROM_DATABASE=Smart Array P812 ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P812) + + pci:v0000103Cd0000323Asv0000103Csd0000324A* +- ID_MODEL_FROM_DATABASE=HP Smart Array 712m (Mezzanine RAID controller) ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (HP Smart Array 712m (Mezzanine RAID controller)) + + pci:v0000103Cd0000323Asv0000103Csd0000324B* +- ID_MODEL_FROM_DATABASE=Smart Array P711m (Mezzanine RAID controller) ++ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P711m (Mezzanine RAID controller)) + + pci:v0000103Cd0000323B* + ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers + + pci:v0000103Cd0000323Bsv0000103Csd00003350* +- ID_MODEL_FROM_DATABASE=P222 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P222) + + pci:v0000103Cd0000323Bsv0000103Csd00003351* +- ID_MODEL_FROM_DATABASE=P420 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420) + + pci:v0000103Cd0000323Bsv0000103Csd00003352* +- ID_MODEL_FROM_DATABASE=P421 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P421) + + pci:v0000103Cd0000323Bsv0000103Csd00003354* +- ID_MODEL_FROM_DATABASE=P420i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420i) + + pci:v0000103Cd0000323Bsv0000103Csd00003355* +- ID_MODEL_FROM_DATABASE=P220i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P220i) + + pci:v0000103Cd0000323C* + ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers + + pci:v0000103Cd0000323Csv0000103Csd00001920* +- ID_MODEL_FROM_DATABASE=P430i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430i) + + pci:v0000103Cd0000323Csv0000103Csd00001921* +- ID_MODEL_FROM_DATABASE=P830i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830i) + + pci:v0000103Cd0000323Csv0000103Csd00001922* +- ID_MODEL_FROM_DATABASE=P430 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430) + + pci:v0000103Cd0000323Csv0000103Csd00001923* +- ID_MODEL_FROM_DATABASE=P431 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P431) + + pci:v0000103Cd0000323Csv0000103Csd00001924* +- ID_MODEL_FROM_DATABASE=P830 ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830) + + pci:v0000103Cd0000323Csv0000103Csd00001925* +- ID_MODEL_FROM_DATABASE=Smart Array ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (Smart Array) + + pci:v0000103Cd0000323Csv0000103Csd00001926* +- ID_MODEL_FROM_DATABASE=P731m ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P731m) + + pci:v0000103Cd0000323Csv0000103Csd00001928* +- ID_MODEL_FROM_DATABASE=P230i ++ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P230i) + + pci:v0000103Cd00003300* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller + + pci:v0000103Cd00003300sv0000103Csd00003304* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) + + pci:v0000103Cd00003300sv0000103Csd00003305* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) + + pci:v0000103Cd00003300sv0000103Csd00003309* +- ID_MODEL_FROM_DATABASE=iLO2 GXL/iLO3 GXE ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2 GXL/iLO3 GXE) + + pci:v0000103Cd00003300sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO3) + + pci:v0000103Cd00003300sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO4) + + pci:v0000103Cd00003301* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port + + pci:v0000103Cd00003301sv0000103Csd00003304* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) + + pci:v0000103Cd00003301sv0000103Csd00003305* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) + + pci:v0000103Cd00003301sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO3) + + pci:v0000103Cd00003301sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO4) + + pci:v0000103Cd00003302* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface + + pci:v0000103Cd00003302sv0000103Csd00003304* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) + + pci:v0000103Cd00003302sv0000103Csd00003305* +- ID_MODEL_FROM_DATABASE=iLO2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) + + pci:v0000103Cd00003302sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO3) + + pci:v0000103Cd00003302sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO4) + + pci:v0000103Cd00003305* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out (iLO2) Controller +@@ -14004,31 +14004,31 @@ pci:v0000103Cd00003306* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support + + pci:v0000103Cd00003306sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO3) + + pci:v0000103Cd00003306sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO4) + + pci:v0000103Cd00003307* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging + + pci:v0000103Cd00003307sv0000103Csd00003309* +- ID_MODEL_FROM_DATABASE=iLO 2 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO 2) + + pci:v0000103Cd00003307sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO3) + + pci:v0000103Cd00003307sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO4) + + pci:v0000103Cd00003308* + ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer + + pci:v0000103Cd00003308sv0000103Csd0000330E* +- ID_MODEL_FROM_DATABASE=iLO3 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO3) + + pci:v0000103Cd00003308sv0000103Csd00003381* +- ID_MODEL_FROM_DATABASE=iLO4 ++ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO4) + + pci:v0000103Cd0000402F* + ID_MODEL_FROM_DATABASE=PCIe Root Port +@@ -14082,19 +14082,19 @@ pci:v00001043d00000675* + ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D + + pci:v00001043d00000675sv00000675sd00001704* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) ++ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, D, C)) + + pci:v00001043d00000675sv00000675sd00001707* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001043d00000675sv000010CFsd0000105E* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001043d00009602* + ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) + + pci:v00001043d00009602sv00001043sd000083A2* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) (M4A785TD Motherboard) + + pci:v00001044* + ID_VENDOR_FROM_DATABASE=Adaptec (formerly DPT) +@@ -14112,118 +14112,118 @@ pci:v00001044d0000A501* + ID_MODEL_FROM_DATABASE=SmartRAID V Controller + + pci:v00001044d0000A501sv00001044sd0000C001* +- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C002* +- ID_MODEL_FROM_DATABASE=PM1654U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1654U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C003* +- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C004* +- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C005* +- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C00A* +- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C00B* +- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C00C* +- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C00D* +- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C00E* +- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C00F* +- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C014* +- ID_MODEL_FROM_DATABASE=PM3754U2 Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3754U2 Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C015* +- ID_MODEL_FROM_DATABASE=PM3755U2B Ultra2 Single Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755U2B Ultra2 Single Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C016* +- ID_MODEL_FROM_DATABASE=PM3755F Fibre Channel (NON ACPI) ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755F Fibre Channel (NON ACPI)) + + pci:v00001044d0000A501sv00001044sd0000C01E* +- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C01F* +- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C020* +- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C021* +- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Quad Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Quad Channel) + + pci:v00001044d0000A501sv00001044sd0000C028* +- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C029* +- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C02A* +- ID_MODEL_FROM_DATABASE=PM2865F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C03C* +- ID_MODEL_FROM_DATABASE=2000S Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C03D* +- ID_MODEL_FROM_DATABASE=2000S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C03E* +- ID_MODEL_FROM_DATABASE=2000F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C046* +- ID_MODEL_FROM_DATABASE=3000S Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C047* +- ID_MODEL_FROM_DATABASE=3000S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C048* +- ID_MODEL_FROM_DATABASE=3000F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C050* +- ID_MODEL_FROM_DATABASE=5000S Ultra3 Single Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Single Channel) + + pci:v00001044d0000A501sv00001044sd0000C051* +- ID_MODEL_FROM_DATABASE=5000S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C052* +- ID_MODEL_FROM_DATABASE=5000F Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000F Fibre Channel) + + pci:v00001044d0000A501sv00001044sd0000C05A* +- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel) + + pci:v00001044d0000A501sv00001044sd0000C05B* +- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel DAC ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel DAC) + + pci:v00001044d0000A501sv00001044sd0000C064* +- ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Ultra3 Dual Channel) + + pci:v00001044d0000A501sv00001044sd0000C065* +- ID_MODEL_FROM_DATABASE=3410S Ultra160 Four Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3410S Ultra160 Four Channel) + + pci:v00001044d0000A501sv00001044sd0000C066* +- ID_MODEL_FROM_DATABASE=3010S Fibre Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Fibre Channel) + + pci:v00001044d0000A511* + ID_MODEL_FROM_DATABASE=SmartRAID V Controller + + pci:v00001044d0000A511sv00001044sd0000C032* +- ID_MODEL_FROM_DATABASE=ASR-2005S I2O Zero Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2005S I2O Zero Channel) + + pci:v00001044d0000A511sv00001044sd0000C035* +- ID_MODEL_FROM_DATABASE=ASR-2010S I2O Zero Channel ++ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2010S I2O Zero Channel) + + pci:v00001044d0000C066* + ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel +@@ -14325,7 +14325,7 @@ pci:v00001048d00008901* + ID_MODEL_FROM_DATABASE=Gloria XL + + pci:v00001048d00008901sv00001048sd00000935* +- ID_MODEL_FROM_DATABASE=GLoria XL (Virge) ++ ID_MODEL_FROM_DATABASE=Gloria XL (GLoria XL (Virge)) + + pci:v00001049* + ID_VENDOR_FROM_DATABASE=Fountain Technologies, Inc. +@@ -14346,19 +14346,19 @@ pci:v0000104Ad00000010* + ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] + + pci:v0000104Ad00000010sv0000104Asd00004018* +- ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (ST PowerVR Kyro (64MB AGP TVO)) + + pci:v0000104Ad00000010sv00001681sd00000010* +- ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (PowerVR Kyro II [3D Prophet 4500]) + + pci:v0000104Ad00000010sv00001681sd00000028* +- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) + + pci:v0000104Ad00000010sv00001681sd0000C010* +- ID_MODEL_FROM_DATABASE=3D Prophet 4500 TV-Out ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4500 TV-Out) + + pci:v0000104Ad00000010sv00001681sd0000C069* +- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT ++ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) + + pci:v0000104Ad00000201* + ID_MODEL_FROM_DATABASE=STPC Vega Northbridge +@@ -14400,7 +14400,7 @@ pci:v0000104Ad00000500* + ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver + + pci:v0000104Ad00000500sv0000104Asd00000500* +- ID_MODEL_FROM_DATABASE=BeWAN ADSL PCI st ++ ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver (BeWAN ADSL PCI st) + + pci:v0000104Ad00000564* + ID_MODEL_FROM_DATABASE=STPC Client Northbridge +@@ -14454,115 +14454,115 @@ pci:v0000104Cd00003D07* + ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] + + pci:v0000104Cd00003D07sv00001011sd00004D10* +- ID_MODEL_FROM_DATABASE=Comet ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Comet) + + pci:v0000104Cd00003D07sv00001040sd0000000F* +- ID_MODEL_FROM_DATABASE=AccelStar II ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) + + pci:v0000104Cd00003D07sv00001040sd00000011* +- ID_MODEL_FROM_DATABASE=AccelStar II ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) + + pci:v0000104Cd00003D07sv00001048sd00000A31* +- ID_MODEL_FROM_DATABASE=WINNER 2000 ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WINNER 2000) + + pci:v0000104Cd00003D07sv00001048sd00000A32* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A34* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A35* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A36* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A43* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv00001048sd00000A44* +- ID_MODEL_FROM_DATABASE=GLoria Synergy ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) + + pci:v0000104Cd00003D07sv0000107Dsd00002633* +- ID_MODEL_FROM_DATABASE=WinFast 3D L2300 ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WinFast 3D L2300) + + pci:v0000104Cd00003D07sv00001092sd00000126* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000127* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000136* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000141* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000146* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000148* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000149* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000152* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000154* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000155* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000156* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001092sd00000157* +- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) + + pci:v0000104Cd00003D07sv00001097sd00003D01* +- ID_MODEL_FROM_DATABASE=Jeronimo Pro ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Jeronimo Pro) + + pci:v0000104Cd00003D07sv00001102sd0000100F* +- ID_MODEL_FROM_DATABASE=Graphics Blaster Extreme ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Graphics Blaster Extreme) + + pci:v0000104Cd00003D07sv00003D3Dsd00000100* +- ID_MODEL_FROM_DATABASE=Reference Permedia 2 3D ++ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Reference Permedia 2 3D) + + pci:v0000104Cd00008000* + ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller + + pci:v0000104Cd00008000sv0000105Esd00008003* +- ID_MODEL_FROM_DATABASE=FireBoard200 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) + + pci:v0000104Cd00008000sv00001443sd00008003* +- ID_MODEL_FROM_DATABASE=FireBoard200 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) + + pci:v0000104Cd00008000sv00001443sd00008005* +- ID_MODEL_FROM_DATABASE=FireBoard400 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) + + pci:v0000104Cd00008000sv00001443sd00008006* +- ID_MODEL_FROM_DATABASE=FireBoard400 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) + + pci:v0000104Cd00008000sv0000E4BFsd00001010* +- ID_MODEL_FROM_DATABASE=CF1-1-SNARE ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-1-SNARE) + + pci:v0000104Cd00008000sv0000E4BFsd00001020* +- ID_MODEL_FROM_DATABASE=CF1-2-SNARE ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-2-SNARE) + + pci:v0000104Cd00008000sv0000E4BFsd00001040* +- ID_MODEL_FROM_DATABASE=FireCompact400 ++ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireCompact400) + + pci:v0000104Cd00008009* + ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller + + pci:v0000104Cd00008009sv0000104Dsd00008032* +- ID_MODEL_FROM_DATABASE=8032 OHCI i.LINK (IEEE 1394) Controller ++ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (8032 OHCI i.LINK (IEEE 1394) Controller) + + pci:v0000104Cd00008009sv00001443sd00008010* +- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI ++ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (FireBoard400-OHCI) + + pci:v0000104Cd00008017* + ID_MODEL_FROM_DATABASE=PCI4410 FireWire Controller +@@ -14571,223 +14571,223 @@ pci:v0000104Cd00008019* + ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller + + pci:v0000104Cd00008019sv000011BDsd0000000A* +- ID_MODEL_FROM_DATABASE=Studio DV500-1394 ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV500-1394) + + pci:v0000104Cd00008019sv000011BDsd0000000E* +- ID_MODEL_FROM_DATABASE=Studio DV ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV) + + pci:v0000104Cd00008019sv00001443sd00008010* +- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (FireBoard400-OHCI) + + pci:v0000104Cd00008019sv0000E4BFsd00001010* +- ID_MODEL_FROM_DATABASE=CF2-1-CYMBAL ++ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (CF2-1-CYMBAL) + + pci:v0000104Cd00008020* + ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) + + pci:v0000104Cd00008020sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Precision 530) + + pci:v0000104Cd00008020sv0000104Dsd000080E2* +- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (VAIO PCV-J200) + + pci:v0000104Cd00008020sv000011BDsd0000000F* +- ID_MODEL_FROM_DATABASE=Studio DV500-1394 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Studio DV500-1394) + + pci:v0000104Cd00008020sv000011BDsd0000001C* +- ID_MODEL_FROM_DATABASE=Excalibur 4.1 ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Excalibur 4.1) + + pci:v0000104Cd00008020sv00001443sd00008010* +- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI ++ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (FireBoard400-OHCI) + + pci:v0000104Cd00008021* + ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) + + pci:v0000104Cd00008021sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (Vaio PCG-FX403) + + pci:v0000104Cd00008021sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v0000104Cd00008022* + ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] + + pci:v0000104Cd00008022sv0000104Csd00008023* +- ID_MODEL_FROM_DATABASE=TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) ++ ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)) + + pci:v0000104Cd00008023* + ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] + + pci:v0000104Cd00008023sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Precision Workstation 670 Mainboard) + + pci:v0000104Cd00008023sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (NC8000 laptop) + + pci:v0000104Cd00008023sv00001043sd0000808B* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (K8N4/A8N Series Mainboard) + + pci:v0000104Cd00008023sv00001043sd0000815B* +- ID_MODEL_FROM_DATABASE=P5W DH Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (P5W DH Deluxe Motherboard) + + pci:v0000104Cd00008023sv00001443sd00008023* +- ID_MODEL_FROM_DATABASE=FireCard400 ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (FireCard400) + + pci:v0000104Cd00008023sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Desktop Board DP35DP) + + pci:v0000104Cd00008024* + ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) + + pci:v0000104Cd00008024sv0000107Dsd00006620* +- ID_MODEL_FROM_DATABASE=Winfast DV2000 FireWire Controller ++ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Winfast DV2000 FireWire Controller) + + pci:v0000104Cd00008024sv00001443sd00008024* +- ID_MODEL_FROM_DATABASE=FireBoard Blue ++ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (FireBoard Blue) + + pci:v0000104Cd00008024sv00001458sd00001000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Motherboard) + + pci:v0000104Cd00008025* + ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller + + pci:v0000104Cd00008025sv00001043sd0000813C* +- ID_MODEL_FROM_DATABASE=P5P series mainboard ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (P5P series mainboard) + + pci:v0000104Cd00008025sv00001443sd00008025* +- ID_MODEL_FROM_DATABASE=FireBoard800 ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FireBoard800) + + pci:v0000104Cd00008025sv00001458sd00001000* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GA-K8N Ultra-9 Mainboard) + + pci:v0000104Cd00008025sv00001546sd00008025* +- ID_MODEL_FROM_DATABASE=FWB-PCI01 ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FWB-PCI01) + + pci:v0000104Cd00008025sv000017FCsd00008025* +- ID_MODEL_FROM_DATABASE=GIC3800 ++ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GIC3800) + + pci:v0000104Cd00008026* + ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) + + pci:v0000104Cd00008026sv00001025sd00000035* +- ID_MODEL_FROM_DATABASE=TravelMate 660 ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (TravelMate 660) + + pci:v0000104Cd00008026sv00001025sd0000003C* +- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compaq CL50 motherboard) ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (Aspire 2001WLCi (Compaq CL50 motherboard)) + + pci:v0000104Cd00008026sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (XE4500 Notebook) + + pci:v0000104Cd00008026sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (NX9500) + + pci:v0000104Cd00008026sv00001043sd0000808D* +- ID_MODEL_FROM_DATABASE=A7V333 mainboard. ++ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (A7V333 mainboard.) + + pci:v0000104Cd00008027* + ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller + + pci:v0000104Cd00008027sv00001028sd000000E5* +- ID_MODEL_FROM_DATABASE=Latitude C810 ++ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Latitude C810) + + pci:v0000104Cd00008027sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Dell Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller ((Dell Inspiron 8100)) + + pci:v0000104Cd00008029* + ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller + + pci:v0000104Cd00008029sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Latitude D505) + + pci:v0000104Cd00008029sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Inspiron 5160) + + pci:v0000104Cd00008029sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2900 ++ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (MIM2900) + + pci:v0000104Cd0000802B* + ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller + + pci:v0000104Cd0000802Bsv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D400) + + pci:v0000104Cd0000802Bsv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D800) ++ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller ((Latitude D800)) + + pci:v0000104Cd0000802E* + ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller + + pci:v0000104Cd0000802Esv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller (Inspiron 700m/710m) + + pci:v0000104Cd00008031* + ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller + + pci:v0000104Cd00008031sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008031sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008031sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (NX6110/NC6120) + + pci:v0000104Cd00008031sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (MX6125) + + pci:v0000104Cd00008032* + ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller + + pci:v0000104Cd00008032sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008032sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008032sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (NX6110/NC6120) + + pci:v0000104Cd00008032sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (MX6125) + + pci:v0000104Cd00008033* + ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller + + pci:v0000104Cd00008033sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008033sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008033sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (NX6110/NC6120) + + pci:v0000104Cd00008033sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (MX6125) + + pci:v0000104Cd00008034* + ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller + + pci:v0000104Cd00008034sv00001025sd00000080* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Aspire 5024WLMi) + + pci:v0000104Cd00008034sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008034sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (NX6110/NC6120) + + pci:v0000104Cd00008034sv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (MX6125) + + pci:v0000104Cd00008035* + ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller + + pci:v0000104Cd00008035sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (Compaq nw8240/nx8220) + + pci:v0000104Cd00008035sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (NX6110/NC6120) + + pci:v0000104Cd00008036* + ID_MODEL_FROM_DATABASE=PCI6515 Cardbus Controller +@@ -14799,67 +14799,67 @@ pci:v0000104Cd00008039* + ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller + + pci:v0000104Cd00008039sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nx9420 Notebook) + + pci:v0000104Cd00008039sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (NC2400) + + pci:v0000104Cd00008039sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nw8440) + + pci:v0000104Cd00008039sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (VAIO VGN-NR120E) + + pci:v0000104Cd0000803A* + ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller + + pci:v0000104Cd0000803Asv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=nx9420 ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (nx9420) + + pci:v0000104Cd0000803Asv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (NC2400) + + pci:v0000104Cd0000803Asv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (Compaq nw8440) + + pci:v0000104Cd0000803Asv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (VAIO VGN-NR120E) + + pci:v0000104Cd0000803B* + ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) + + pci:v0000104Cd0000803Bsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=nx9420 ++ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (nx9420) + + pci:v0000104Cd0000803Bsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (Compaq nw8440) + + pci:v0000104Cd0000803Bsv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (VAIO VGN-NR120E) + + pci:v0000104Cd0000803C* + ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller + + pci:v0000104Cd0000803Csv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=nx9420 ++ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (nx9420) + + pci:v0000104Cd0000803Csv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (Compaq nw8440) + + pci:v0000104Cd0000803D* + ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller + + pci:v0000104Cd0000803Dsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (Compaq nx9420 Notebook) + + pci:v0000104Cd0000803Dsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (NC2400) + + pci:v0000104Cd0000803Dsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=nc8430 ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc8430) + + pci:v0000104Cd0000803Dsv0000103Csd000030AA* +- ID_MODEL_FROM_DATABASE=nc6310 ++ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc6310) + + pci:v0000104Cd00008101* + ID_MODEL_FROM_DATABASE=TSB43DB42 IEEE-1394a-2000 Controller (PHY/Link) +@@ -14871,16 +14871,16 @@ pci:v0000104Cd00008204* + ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function + + pci:v0000104Cd00008204sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D400) + + pci:v0000104Cd00008204sv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=Latitude D800 ++ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D800) + + pci:v0000104Cd00008231* + ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge + + pci:v0000104Cd00008231sv00005678sd00001234* +- ID_MODEL_FROM_DATABASE=DC-1394 PCIe ++ ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge (DC-1394 PCIe) + + pci:v0000104Cd00008232* + ID_MODEL_FROM_DATABASE=XIO3130 PCI Express Switch (Upstream) +@@ -14892,7 +14892,7 @@ pci:v0000104Cd00008235* + ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) + + pci:v0000104Cd00008235sv00005678sd00001234* +- ID_MODEL_FROM_DATABASE=DC-1394 PCIe ++ ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) (DC-1394 PCIe) + + pci:v0000104Cd0000823E* + ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] +@@ -14901,7 +14901,7 @@ pci:v0000104Cd0000823F* + ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] + + pci:v0000104Cd0000823Fsv00001546sd0000803C* +- ID_MODEL_FROM_DATABASE=FWB-PCIE1X11B ++ ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (FWB-PCIE1X11B) + + pci:v0000104Cd00008240* + ID_MODEL_FROM_DATABASE=XIO2001 PCI Express-to-PCI Bridge +@@ -14913,16 +14913,16 @@ pci:v0000104Cd00008400* + ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface + + pci:v0000104Cd00008400sv00001186sd00003B00* +- ID_MODEL_FROM_DATABASE=DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus] ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus]) + + pci:v0000104Cd00008400sv00001186sd00003B01* +- ID_MODEL_FROM_DATABASE=DWL-520+ 22Mbps PCI Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-520+ 22Mbps PCI Wireless Adapter) + + pci:v0000104Cd00008400sv00001395sd00002201* +- ID_MODEL_FROM_DATABASE=WL22-PC ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL22-PC) + + pci:v0000104Cd00008400sv000016ABsd00008501* +- ID_MODEL_FROM_DATABASE=WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter) + + pci:v0000104Cd00008401* + ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface +@@ -14937,58 +14937,58 @@ pci:v0000104Cd00009066* + ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface + + pci:v0000104Cd00009066sv00000308sd00003404* +- ID_MODEL_FROM_DATABASE=G-102 v1 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-102 v1 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv00000308sd00003406* +- ID_MODEL_FROM_DATABASE=G-162 v2 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v2 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv0000104Csd00009066* +- ID_MODEL_FROM_DATABASE=WL212 Sitecom Wireless Network PCI-Card 100M (Version 1) ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WL212 Sitecom Wireless Network PCI-Card 100M (Version 1)) + + pci:v0000104Cd00009066sv0000104Csd00009067* +- ID_MODEL_FROM_DATABASE=TNETW1130GVF ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (TNETW1130GVF) + + pci:v0000104Cd00009066sv0000104Csd00009096* +- ID_MODEL_FROM_DATABASE=Trendnet TEW-412PC Wireless PCI Adapter (Version A) ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Trendnet TEW-412PC Wireless PCI Adapter (Version A)) + + pci:v0000104Cd00009066sv00001186sd00003B04* +- ID_MODEL_FROM_DATABASE=DWL-G520+ Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G520+ Wireless PCI Adapter) + + pci:v0000104Cd00009066sv00001186sd00003B05* +- ID_MODEL_FROM_DATABASE=DWL-G650+ AirPlusG+ CardBus Wireless LAN ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G650+ AirPlusG+ CardBus Wireless LAN) + + pci:v0000104Cd00009066sv00001186sd00003B08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1) ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1)) + + pci:v0000104Cd00009066sv00001385sd00004C00* +- ID_MODEL_FROM_DATABASE=WG311v2 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WG311v2 802.11g Wireless PCI Adapter) + + pci:v0000104Cd00009066sv000013D1sd0000ABA0* +- ID_MODEL_FROM_DATABASE=SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+ ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+) + + pci:v0000104Cd00009066sv000014EAsd0000AB07* +- ID_MODEL_FROM_DATABASE=GW-NS54GM Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (GW-NS54GM Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv000016ECsd0000010D* +- ID_MODEL_FROM_DATABASE=USR5416 802.11g Wireless Turbo PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5416 802.11g Wireless Turbo PCI Adapter) + + pci:v0000104Cd00009066sv000016ECsd0000010E* +- ID_MODEL_FROM_DATABASE=USR5410 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5410 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv00001737sd00000033* +- ID_MODEL_FROM_DATABASE=WPC54G v2 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WPC54G v2 802.11g Wireless-G Notebook Adapter) + + pci:v0000104Cd00009066sv000017CFsd00000032* +- ID_MODEL_FROM_DATABASE=G-162 v1 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v1 802.11g Wireless Cardbus Adapter) + + pci:v0000104Cd00009066sv000017CFsd00000033* +- ID_MODEL_FROM_DATABASE=Z-Com XG650 Wireless miniPCI 802.11b/g ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Z-Com XG650 Wireless miniPCI 802.11b/g) + + pci:v0000104Cd00009066sv0000187Esd0000340B* +- ID_MODEL_FROM_DATABASE=G-302 v2 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-302 v2 802.11g Wireless PCI Adapter) + + pci:v0000104Cd00009066sv0000187Esd0000340C* +- ID_MODEL_FROM_DATABASE=G-360 v2 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-360 v2 802.11g Wireless PCI Adapter) + + pci:v0000104Cd0000A001* + ID_MODEL_FROM_DATABASE=TDC1570 +@@ -15003,13 +15003,13 @@ pci:v0000104Cd0000A106* + ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 + + pci:v0000104Cd0000A106sv0000175Csd00005000* +- ID_MODEL_FROM_DATABASE=ASI50xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI50xx Audio Adapter) + + pci:v0000104Cd0000A106sv0000175Csd00006400* +- ID_MODEL_FROM_DATABASE=ASI6400 Cobranet series ++ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI6400 Cobranet series) + + pci:v0000104Cd0000A106sv0000175Csd00008700* +- ID_MODEL_FROM_DATABASE=ASI87xx Radio Tuner card ++ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI87xx Radio Tuner card) + + pci:v0000104Cd0000AC10* + ID_MODEL_FROM_DATABASE=PCI1050 +@@ -15030,7 +15030,7 @@ pci:v0000104Cd0000AC16* + ID_MODEL_FROM_DATABASE=PCI1250 + + pci:v0000104Cd0000AC16sv00001014sd00000092* +- ID_MODEL_FROM_DATABASE=ThinkPad 600 ++ ID_MODEL_FROM_DATABASE=PCI1250 (ThinkPad 600) + + pci:v0000104Cd0000AC17* + ID_MODEL_FROM_DATABASE=PCI1220 +@@ -15048,19 +15048,19 @@ pci:v0000104Cd0000AC1B* + ID_MODEL_FROM_DATABASE=PCI1450 + + pci:v0000104Cd0000AC1Bsv00000E11sd0000B113* +- ID_MODEL_FROM_DATABASE=Armada M700 ++ ID_MODEL_FROM_DATABASE=PCI1450 (Armada M700) + + pci:v0000104Cd0000AC1Bsv00001014sd00000130* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A21m/T20/T22 ++ ID_MODEL_FROM_DATABASE=PCI1450 (ThinkPad 600X/A21m/T20/T22) + + pci:v0000104Cd0000AC1C* + ID_MODEL_FROM_DATABASE=PCI1225 + + pci:v0000104Cd0000AC1Csv00000E11sd0000B121* +- ID_MODEL_FROM_DATABASE=Armada E500 ++ ID_MODEL_FROM_DATABASE=PCI1225 (Armada E500) + + pci:v0000104Cd0000AC1Csv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=Latitude CPi A400XT ++ ID_MODEL_FROM_DATABASE=PCI1225 (Latitude CPi A400XT) + + pci:v0000104Cd0000AC1D* + ID_MODEL_FROM_DATABASE=PCI1251A +@@ -15102,40 +15102,40 @@ pci:v0000104Cd0000AC42* + ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller + + pci:v0000104Cd0000AC42sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=PCI4451 PC card CardBus Controller (Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller (PCI4451 PC card CardBus Controller (Inspiron 8100)) + + pci:v0000104Cd0000AC44* + ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller + + pci:v0000104Cd0000AC44sv00001028sd00000149* +- ID_MODEL_FROM_DATABASE=Inspiron 5100 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5100) + + pci:v0000104Cd0000AC44sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Latitude D505) + + pci:v0000104Cd0000AC44sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5160) + + pci:v0000104Cd0000AC44sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (MIM2000) + + pci:v0000104Cd0000AC46* + ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller + + pci:v0000104Cd0000AC46sv00001014sd00000552* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller (ThinkPad) + + pci:v0000104Cd0000AC47* + ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller + + pci:v0000104Cd0000AC47sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D400) + + pci:v0000104Cd0000AC47sv00001028sd0000013F* +- ID_MODEL_FROM_DATABASE=Precision M60 ++ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Precision M60) + + pci:v0000104Cd0000AC47sv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=Latitude D800 ++ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D800) + + pci:v0000104Cd0000AC48* + ID_MODEL_FROM_DATABASE=PCI7610 PC Card Cardbus Controller +@@ -15147,10 +15147,10 @@ pci:v0000104Cd0000AC4A* + ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge + + pci:v0000104Cd0000AC4Asv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D400) + + pci:v0000104Cd0000AC4Asv00001028sd0000014E* +- ID_MODEL_FROM_DATABASE=Latitude D800 ++ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D800) + + pci:v0000104Cd0000AC4B* + ID_MODEL_FROM_DATABASE=PCI7610 SD/MMC controller +@@ -15165,28 +15165,28 @@ pci:v0000104Cd0000AC51* + ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller + + pci:v0000104Cd0000AC51sv00000E11sd0000004E* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Evo N600c) + + pci:v0000104Cd0000AC51sv00001014sd00000148* +- ID_MODEL_FROM_DATABASE=ThinkPad A20m ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad A20m) + + pci:v0000104Cd0000AC51sv00001014sd0000023B* +- ID_MODEL_FROM_DATABASE=ThinkPad T23 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad T23) + + pci:v0000104Cd0000AC51sv00001028sd000000B1* +- ID_MODEL_FROM_DATABASE=Latitude C600 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C600) + + pci:v0000104Cd0000AC51sv00001028sd0000012A* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C640) + + pci:v0000104Cd0000AC51sv00001033sd000080CD* +- ID_MODEL_FROM_DATABASE=Versa Note VXi ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Versa Note VXi) + + pci:v0000104Cd0000AC51sv000010CFsd00001095* +- ID_MODEL_FROM_DATABASE=Lifebook S-4510/C6155 ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Lifebook S-4510/C6155) + + pci:v0000104Cd0000AC51sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CP2-2-HIPHOP ++ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (CP2-2-HIPHOP) + + pci:v0000104Cd0000AC52* + ID_MODEL_FROM_DATABASE=PCI1451 PC card Cardbus Controller +@@ -15198,55 +15198,55 @@ pci:v0000104Cd0000AC54* + ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller + + pci:v0000104Cd0000AC54sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller (tc1100 tablet) + + pci:v0000104Cd0000AC55* + ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller + + pci:v0000104Cd0000AC55sv00001014sd00000512* +- ID_MODEL_FROM_DATABASE=ThinkPad T30/T40 ++ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (ThinkPad T30/T40) + + pci:v0000104Cd0000AC55sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (XE4500 Notebook) + + pci:v0000104Cd0000AC56* + ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller + + pci:v0000104Cd0000AC56sv00001014sd00000512* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R50e) + + pci:v0000104Cd0000AC56sv00001014sd00000528* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R40e) + + pci:v0000104Cd0000AC56sv000017AAsd00002012* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series ++ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad T60/R60 series) + + pci:v0000104Cd0000AC60* + ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller + + pci:v0000104Cd0000AC60sv0000175Csd00005100* +- ID_MODEL_FROM_DATABASE=ASI51xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI51xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000175Csd00006100* +- ID_MODEL_FROM_DATABASE=ASI61xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI61xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000175Csd00006200* +- ID_MODEL_FROM_DATABASE=ASI62xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI62xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000175Csd00008800* +- ID_MODEL_FROM_DATABASE=ASI88xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI88xx Audio Adapter) + + pci:v0000104Cd0000AC60sv0000186Fsd00003001* +- ID_MODEL_FROM_DATABASE=WR-G303 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G303 PCI radio receiver) + + pci:v0000104Cd0000AC60sv0000186Fsd00003005* +- ID_MODEL_FROM_DATABASE=WR-G305 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G305 PCI radio receiver) + + pci:v0000104Cd0000AC60sv0000186Fsd00003101* +- ID_MODEL_FROM_DATABASE=WR-G313 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G313 PCI radio receiver) + + pci:v0000104Cd0000AC60sv0000186Fsd00003105* +- ID_MODEL_FROM_DATABASE=WR-G315 PCI radio receiver ++ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G315 PCI radio receiver) + + pci:v0000104Cd0000AC8D* + ID_MODEL_FROM_DATABASE=PCI 7620 +@@ -15255,13 +15255,13 @@ pci:v0000104Cd0000AC8E* + ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller + + pci:v0000104Cd0000AC8Esv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller (Inspiron 700m/710m) + + pci:v0000104Cd0000AC8F* + ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller + + pci:v0000104Cd0000AC8Fsv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller (Inspiron 700m/710m) + + pci:v0000104Cd0000B001* + ID_MODEL_FROM_DATABASE=TMS320C6424 +@@ -15336,10 +15336,10 @@ pci:v00001050d00000840* + ID_MODEL_FROM_DATABASE=W89C840 + + pci:v00001050d00000840sv00001050sd00000001* +- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) + + pci:v00001050d00000840sv00001050sd00000840* +- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) + + pci:v00001050d00000940* + ID_MODEL_FROM_DATABASE=W89C940 +@@ -15351,22 +15351,22 @@ pci:v00001050d00006692* + ID_MODEL_FROM_DATABASE=W6692 + + pci:v00001050d00006692sv00001043sd00001702* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) + + pci:v00001050d00006692sv00001043sd00001703* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00006692sv00001043sd00001707* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00006692sv0000144Fsd00001702* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) + + pci:v00001050d00006692sv0000144Fsd00001703* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00006692sv0000144Fsd00001707* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) ++ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) + + pci:v00001050d00009921* + ID_MODEL_FROM_DATABASE=W99200F MPEG-1 Video Encoder +@@ -15501,76 +15501,76 @@ pci:v00001057d00001801* + ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor + + pci:v00001057d00001801sv000014FBsd00000101* +- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM]) + + pci:v00001057d00001801sv000014FBsd00000102* +- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM-2]) + + pci:v00001057d00001801sv000014FBsd00000202* +- ID_MODEL_FROM_DATABASE=Transas Radar Integrator Board [RIB-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Integrator Board [RIB-2]) + + pci:v00001057d00001801sv000014FBsd00000611* +- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci-1] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci-1]) + + pci:v00001057d00001801sv000014FBsd00000612* +- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci-2]) + + pci:v00001057d00001801sv000014FBsd00000613* +- ID_MODEL_FROM_DATABASE=3 channels CAN bus Controller [CanPci-3] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (3 channels CAN bus Controller [CanPci-3]) + + pci:v00001057d00001801sv000014FBsd00000614* +- ID_MODEL_FROM_DATABASE=4 channels CAN bus Controller [CanPci-4] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (4 channels CAN bus Controller [CanPci-4]) + + pci:v00001057d00001801sv000014FBsd00000621* +- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci2-1] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci2-1]) + + pci:v00001057d00001801sv000014FBsd00000622* +- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci2-2] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci2-2]) + + pci:v00001057d00001801sv000014FBsd00000810* +- ID_MODEL_FROM_DATABASE=Transas VTS Radar Integrator Board [RIB-4] ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas VTS Radar Integrator Board [RIB-4]) + + pci:v00001057d00001801sv0000175Csd00004200* +- ID_MODEL_FROM_DATABASE=ASI4215 Audio Adapter ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4215 Audio Adapter) + + pci:v00001057d00001801sv0000175Csd00004300* +- ID_MODEL_FROM_DATABASE=ASI43xx Audio Adapter ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI43xx Audio Adapter) + + pci:v00001057d00001801sv0000175Csd00004400* +- ID_MODEL_FROM_DATABASE=ASI4401 Audio Adapter ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4401 Audio Adapter) + + pci:v00001057d00001801sv0000ECC0sd00000010* +- ID_MODEL_FROM_DATABASE=Darla ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla) + + pci:v00001057d00001801sv0000ECC0sd00000020* +- ID_MODEL_FROM_DATABASE=Gina ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina) + + pci:v00001057d00001801sv0000ECC0sd00000030* +- ID_MODEL_FROM_DATABASE=Layla rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000031* +- ID_MODEL_FROM_DATABASE=Layla rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000040* +- ID_MODEL_FROM_DATABASE=Darla24 rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000041* +- ID_MODEL_FROM_DATABASE=Darla24 rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000050* +- ID_MODEL_FROM_DATABASE=Gina24 rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000051* +- ID_MODEL_FROM_DATABASE=Gina24 rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000070* +- ID_MODEL_FROM_DATABASE=Mona rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.0) + + pci:v00001057d00001801sv0000ECC0sd00000071* +- ID_MODEL_FROM_DATABASE=Mona rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.1) + + pci:v00001057d00001801sv0000ECC0sd00000072* +- ID_MODEL_FROM_DATABASE=Mona rev.2 ++ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.2) + + pci:v00001057d000018C0* + ID_MODEL_FROM_DATABASE=MPC8265A/8266/8272 +@@ -15585,40 +15585,40 @@ pci:v00001057d00003410* + ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor + + pci:v00001057d00003410sv0000ECC0sd00000050* +- ID_MODEL_FROM_DATABASE=Gina24 rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.0) + + pci:v00001057d00003410sv0000ECC0sd00000051* +- ID_MODEL_FROM_DATABASE=Gina24 rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.1) + + pci:v00001057d00003410sv0000ECC0sd00000060* +- ID_MODEL_FROM_DATABASE=Layla24 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Layla24) + + pci:v00001057d00003410sv0000ECC0sd00000070* +- ID_MODEL_FROM_DATABASE=Mona rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.0) + + pci:v00001057d00003410sv0000ECC0sd00000071* +- ID_MODEL_FROM_DATABASE=Mona rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.1) + + pci:v00001057d00003410sv0000ECC0sd00000072* +- ID_MODEL_FROM_DATABASE=Mona rev.2 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.2) + + pci:v00001057d00003410sv0000ECC0sd00000080* +- ID_MODEL_FROM_DATABASE=Mia rev.0 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.0) + + pci:v00001057d00003410sv0000ECC0sd00000081* +- ID_MODEL_FROM_DATABASE=Mia rev.1 ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.1) + + pci:v00001057d00003410sv0000ECC0sd00000090* +- ID_MODEL_FROM_DATABASE=Indigo ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo) + + pci:v00001057d00003410sv0000ECC0sd000000A0* +- ID_MODEL_FROM_DATABASE=Indigo IO ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo IO) + + pci:v00001057d00003410sv0000ECC0sd000000B0* +- ID_MODEL_FROM_DATABASE=Indigo DJ ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo DJ) + + pci:v00001057d00003410sv0000ECC0sd00000100* +- ID_MODEL_FROM_DATABASE=3G ++ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (3G) + + pci:v00001057d00004801* + ID_MODEL_FROM_DATABASE=Raven +@@ -15639,55 +15639,55 @@ pci:v00001057d00005600* + ID_MODEL_FROM_DATABASE=SM56 PCI Modem + + pci:v00001057d00005600sv00001057sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001057sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice Modem) + + pci:v00001057d00005600sv00001057sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001057sd00005600* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv000013D2sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv000013D2sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv000013D2sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001436sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001436sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv00001436sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv0000144Fsd0000100C* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001494sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001494sd00000301* +- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) + + pci:v00001057d00005600sv000014C8sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv000014C8sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005600sv00001668sd00000300* +- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) + + pci:v00001057d00005600sv00001668sd00000302* +- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem ++ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) + + pci:v00001057d00005608* + ID_MODEL_FROM_DATABASE=Wildcard X100P +@@ -15723,16 +15723,16 @@ pci:v0000105Ad00000D30* + ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) + + pci:v0000105Ad00000D30sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=AV7266-E South Bridge Promise RAID ++ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (AV7266-E South Bridge Promise RAID) + + pci:v0000105Ad00000D30sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=Ultra100 ++ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (Ultra100) + + pci:v0000105Ad00000D38* + ID_MODEL_FROM_DATABASE=20263 + + pci:v0000105Ad00000D38sv0000105Asd00004D39* +- ID_MODEL_FROM_DATABASE=Fasttrak66 ++ ID_MODEL_FROM_DATABASE=20263 (Fasttrak66) + + pci:v0000105Ad00001275* + ID_MODEL_FROM_DATABASE=20275 +@@ -15744,10 +15744,10 @@ pci:v0000105Ad00003319* + ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) + + pci:v0000105Ad00003319sv0000105Asd00003319* +- ID_MODEL_FROM_DATABASE=FastTrak S150 TX4 4 port SATA PCI board ++ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (FastTrak S150 TX4 4 port SATA PCI board) + + pci:v0000105Ad00003319sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (S875WP1-E mainboard) + + pci:v0000105Ad00003371* + ID_MODEL_FROM_DATABASE=PDC20371 (FastTrak S150 TX2plus) +@@ -15756,13 +15756,13 @@ pci:v0000105Ad00003373* + ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) + + pci:v0000105Ad00003373sv00001043sd000080F5* +- ID_MODEL_FROM_DATABASE=K8V Deluxe/PC-DL Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8V Deluxe/PC-DL Deluxe motherboard) + + pci:v0000105Ad00003373sv00001462sd0000590D* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (KT6 Delta-FIS2R (MS-6590)) + + pci:v0000105Ad00003373sv00001462sd0000702E* +- ID_MODEL_FROM_DATABASE=K8T NEO FIS2R motherboard ++ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8T NEO FIS2R motherboard) + + pci:v0000105Ad00003375* + ID_MODEL_FROM_DATABASE=PDC20375 (SATA150 TX2plus) +@@ -15771,7 +15771,7 @@ pci:v0000105Ad00003376* + ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) + + pci:v0000105Ad00003376sv00001043sd0000809E* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) (A7V8X motherboard) + + pci:v0000105Ad00003515* + ID_MODEL_FROM_DATABASE=PDC40719 [FastTrak TX4300/TX4310] +@@ -15813,58 +15813,58 @@ pci:v0000105Ad00004D30* + ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) + + pci:v0000105Ad00004D30sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=Ultra100 ++ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (Ultra100) + + pci:v0000105Ad00004D30sv0000105Asd00004D39* +- ID_MODEL_FROM_DATABASE=FastTrak100 ++ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (FastTrak100) + + pci:v0000105Ad00004D30sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (S845WD1-E mainboard) + + pci:v0000105Ad00004D33* + ID_MODEL_FROM_DATABASE=20246 + + pci:v0000105Ad00004D33sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=20246 IDE Controller ++ ID_MODEL_FROM_DATABASE=20246 (IDE Controller) + + pci:v0000105Ad00004D38* + ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) + + pci:v0000105Ad00004D38sv0000105Asd00004D30* +- ID_MODEL_FROM_DATABASE=Ultra Device on SuperTrak ++ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra Device on SuperTrak) + + pci:v0000105Ad00004D38sv0000105Asd00004D33* +- ID_MODEL_FROM_DATABASE=Ultra66 ++ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra66) + + pci:v0000105Ad00004D38sv0000105Asd00004D39* +- ID_MODEL_FROM_DATABASE=FastTrak66 ++ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (FastTrak66) + + pci:v0000105Ad00004D68* + ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] + + pci:v0000105Ad00004D68sv0000105Asd00004D68* +- ID_MODEL_FROM_DATABASE=Ultra100 TX2 ++ ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] (Ultra100 TX2) + + pci:v0000105Ad00004D69* + ID_MODEL_FROM_DATABASE=20269 + + pci:v0000105Ad00004D69sv0000105Asd00004D68* +- ID_MODEL_FROM_DATABASE=Ultra133TX2 ++ ID_MODEL_FROM_DATABASE=20269 (Ultra133TX2) + + pci:v0000105Ad00005275* + ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) + + pci:v0000105Ad00005275sv00001043sd0000807E* +- ID_MODEL_FROM_DATABASE=A7V333 motherboard. ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (A7V333 motherboard.) + + pci:v0000105Ad00005275sv0000105Asd00000275* +- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 IDE ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (SuperTrak SX6000 IDE) + + pci:v0000105Ad00005275sv0000105Asd00001275* +- ID_MODEL_FROM_DATABASE=MBFastTrak133 Lite (tm) Controller (RAID mode) ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBFastTrak133 Lite (tm) Controller (RAID mode)) + + pci:v0000105Ad00005275sv00001458sd0000B001* +- ID_MODEL_FROM_DATABASE=MBUltra 133 ++ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBUltra 133) + + pci:v0000105Ad00005300* + ID_MODEL_FROM_DATABASE=DC5300 +@@ -15873,13 +15873,13 @@ pci:v0000105Ad00006268* + ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) + + pci:v0000105Ad00006268sv0000105Asd00004D68* +- ID_MODEL_FROM_DATABASE=FastTrak100 TX2 ++ ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) (FastTrak100 TX2) + + pci:v0000105Ad00006269* + ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) + + pci:v0000105Ad00006269sv0000105Asd00006269* +- ID_MODEL_FROM_DATABASE=FastTrak TX2/TX2000 ++ ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) (FastTrak TX2/TX2000) + + pci:v0000105Ad00006300* + ID_MODEL_FROM_DATABASE=PDC81731 [FastTrak SX8300] +@@ -15912,43 +15912,43 @@ pci:v0000105Ad00008650* + ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] + + pci:v0000105Ad00008650sv0000105Asd00004600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX4650A ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650A) + + pci:v0000105Ad00008650sv0000105Asd00004601* +- ID_MODEL_FROM_DATABASE=SuperTrak EX4650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650) + + pci:v0000105Ad00008650sv0000105Asd00004610* +- ID_MODEL_FROM_DATABASE=SuperTrak EX4650EL ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650EL) + + pci:v0000105Ad00008650sv0000105Asd00008600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650EL ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650EL) + + pci:v0000105Ad00008650sv0000105Asd00008601* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650A ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650A) + + pci:v0000105Ad00008650sv0000105Asd00008602* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8654 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8654) + + pci:v0000105Ad00008650sv0000105Asd00008603* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8658 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8658) + + pci:v0000105Ad00008650sv0000105Asd00008604* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650) + + pci:v0000105Ad00008650sv0000105Asd00008610* +- ID_MODEL_FROM_DATABASE=SuperTrak EX8650M ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650M) + + pci:v0000105Ad00008650sv0000105Asd0000A600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX12650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX12650) + + pci:v0000105Ad00008650sv0000105Asd0000B600* +- ID_MODEL_FROM_DATABASE=SuperTrak EX16650 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16650) + + pci:v0000105Ad00008650sv0000105Asd0000B601* +- ID_MODEL_FROM_DATABASE=SuperTrak EX16654 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16654) + + pci:v0000105Ad00008650sv0000105Asd0000B602* +- ID_MODEL_FROM_DATABASE=SuperTrak EX16658 ++ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16658) + + pci:v0000105Ad00008760* + ID_MODEL_FROM_DATABASE=PM8010 [SuperTrak EX SAS and SATA 6G RAID Controller] +@@ -15975,106 +15975,106 @@ pci:v0000105Dd00002339* + ID_MODEL_FROM_DATABASE=Imagine 128-II + + pci:v0000105Dd00002339sv0000105Dsd00000000* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000001* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000002* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000003* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000004* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000005* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000006* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000007* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000008* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) + + pci:v0000105Dd00002339sv0000105Dsd00000009* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) + + pci:v0000105Dd00002339sv0000105Dsd0000000A* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb VRAM) + + pci:v0000105Dd00002339sv0000105Dsd0000000B* +- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb H-VRAM ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb H-VRAM) + + pci:v0000105Dd00002339sv000011A4sd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000000* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000004* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000005* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000006* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000008* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd00000009* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd00002339sv000013CCsd0000000C* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel ++ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) + + pci:v0000105Dd0000493D* + ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] + + pci:v0000105Dd0000493Dsv000011A4sd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000011A4sd0000000B* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000002* +- ID_MODEL_FROM_DATABASE=Barco Metheus 4 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 4 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000003* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000007* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000008* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd00000009* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd0000493Dsv000013CCsd0000000A* +- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head ++ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) + + pci:v0000105Dd00005348* + ID_MODEL_FROM_DATABASE=Revolution 4 + + pci:v0000105Dd00005348sv0000105Dsd00000037* +- ID_MODEL_FROM_DATABASE=Revolution IV-FP AGP (For SGI 1600SW) ++ ID_MODEL_FROM_DATABASE=Revolution 4 (Revolution IV-FP AGP (For SGI 1600SW)) + + pci:v0000105Dd00005348sv000011A4sd00000028* +- ID_MODEL_FROM_DATABASE=PVS5600M ++ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600M) + + pci:v0000105Dd00005348sv000011A4sd00000038* +- ID_MODEL_FROM_DATABASE=PVS5600D ++ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600D) + + pci:v0000105E* + ID_VENDOR_FROM_DATABASE=Vtech Computers Ltd +@@ -16236,43 +16236,43 @@ pci:v00001069d00000050* + ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device + + pci:v00001069d00000050sv00001069sd00000050* +- ID_MODEL_FROM_DATABASE=AcceleRAID 352 support Device ++ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 352 support Device) + + pci:v00001069d00000050sv00001069sd00000052* +- ID_MODEL_FROM_DATABASE=AcceleRAID 170 support Device ++ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 170 support Device) + + pci:v00001069d00000050sv00001069sd00000054* +- ID_MODEL_FROM_DATABASE=AcceleRAID 160 support Device ++ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 160 support Device) + + pci:v00001069d0000B166* + ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device + + pci:v00001069d0000B166sv00001014sd00000242* +- ID_MODEL_FROM_DATABASE=iSeries 2872 DASD IOA ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (iSeries 2872 DASD IOA) + + pci:v00001069d0000B166sv00001014sd00000266* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) + + pci:v00001069d0000B166sv00001014sd00000278* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) + + pci:v00001069d0000B166sv00001014sd000002D3* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) + + pci:v00001069d0000B166sv00001014sd000002D4* +- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) + + pci:v00001069d0000B166sv00001069sd00000200* +- ID_MODEL_FROM_DATABASE=AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000B166sv00001069sd00000202* +- ID_MODEL_FROM_DATABASE=AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000B166sv00001069sd00000204* +- ID_MODEL_FROM_DATABASE=AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000B166sv00001069sd00000206* +- ID_MODEL_FROM_DATABASE=AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID ++ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID) + + pci:v00001069d0000BA55* + ID_MODEL_FROM_DATABASE=eXtremeRAID 1100 support Device +@@ -16281,16 +16281,16 @@ pci:v00001069d0000BA56* + ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device + + pci:v00001069d0000BA56sv00001069sd00000030* +- ID_MODEL_FROM_DATABASE=eXtremeRAID 3000 support Device ++ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 3000 support Device) + + pci:v00001069d0000BA56sv00001069sd00000040* +- ID_MODEL_FROM_DATABASE=eXtremeRAID 2000 support Device ++ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 2000 support Device) + + pci:v00001069d0000BA57* + ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device + + pci:v00001069d0000BA57sv00001069sd00000072* +- ID_MODEL_FROM_DATABASE=eXtremeRAID 5000 support Device ++ ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device (eXtremeRAID 5000 support Device) + + pci:v0000106A* + ID_VENDOR_FROM_DATABASE=Aten Research Inc +@@ -16380,7 +16380,7 @@ pci:v0000106Bd00000031* + ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire + + pci:v0000106Bd00000031sv0000106Bsd00005811* +- ID_MODEL_FROM_DATABASE=iBook G4 2004 ++ ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire (iBook G4 2004) + + pci:v0000106Bd00000032* + ID_MODEL_FROM_DATABASE=UniNorth 2 GMAC (Sun GEM) +@@ -16407,7 +16407,7 @@ pci:v0000106Bd0000003F* + ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB + + pci:v0000106Bd0000003Fsv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB (QEMU Virtual Machine) + + pci:v0000106Bd00000040* + ID_MODEL_FROM_DATABASE=K2 KeyLargo USB +@@ -16563,13 +16563,13 @@ pci:v00001073d00000004* + ID_MODEL_FROM_DATABASE=YMF-724 + + pci:v00001073d00000004sv00001073sd00000004* +- ID_MODEL_FROM_DATABASE=YMF724-Based PCI Audio Adapter ++ ID_MODEL_FROM_DATABASE=YMF-724 (YMF724-Based PCI Audio Adapter) + + pci:v00001073d00000005* + ID_MODEL_FROM_DATABASE=DS1 Audio + + pci:v00001073d00000005sv00001073sd00000005* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d00000006* + ID_MODEL_FROM_DATABASE=DS1 Audio +@@ -16578,46 +16578,46 @@ pci:v00001073d00000008* + ID_MODEL_FROM_DATABASE=DS1 Audio + + pci:v00001073d00000008sv00001073sd00000008* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000A* + ID_MODEL_FROM_DATABASE=DS1L Audio + + pci:v00001073d0000000Asv00001073sd00000004* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000Asv00001073sd0000000A* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000Asv00008086sd00004D55* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC [Intel MU440EX] ++ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC [Intel MU440EX]) + + pci:v00001073d0000000C* + ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] + + pci:v00001073d0000000Csv0000107Asd0000000C* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d0000000D* + ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] + + pci:v00001073d0000000Dsv00001073sd0000000D* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d00000010* + ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] + + pci:v00001073d00000010sv00001073sd00000006* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d00000010sv00001073sd00000010* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC ++ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) + + pci:v00001073d00000012* + ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] + + pci:v00001073d00000012sv00001073sd00000012* +- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio Codec ++ ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] (DS-XG PCI Audio Codec) + + pci:v00001073d00000020* + ID_MODEL_FROM_DATABASE=DS-1 Audio +@@ -16662,10 +16662,10 @@ pci:v00001077d00001216* + ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor + + pci:v00001077d00001216sv0000101Esd00008471* +- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID ++ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) + + pci:v00001077d00001216sv0000101Esd00008493* +- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID ++ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) + + pci:v00001077d00001240* + ID_MODEL_FROM_DATABASE=ISP1240 SCSI Host Adapter +@@ -16689,7 +16689,7 @@ pci:v00001077d00002200* + ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter + + pci:v00001077d00002200sv00001077sd00000002* +- ID_MODEL_FROM_DATABASE=QLA2200 ++ ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter (QLA2200) + + pci:v00001077d00002300* + ID_MODEL_FROM_DATABASE=QLA2300 64-bit Fibre Channel Adapter +@@ -16698,10 +16698,10 @@ pci:v00001077d00002312* + ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA + + pci:v00001077d00002312sv0000103Csd00000131* +- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Single port [A7538A] ++ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Single port [A7538A]) + + pci:v00001077d00002312sv0000103Csd000012BA* +- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Dual port [A6826A] ++ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Dual port [A6826A]) + + pci:v00001077d00002322* + ID_MODEL_FROM_DATABASE=ISP2322-based 2Gb Fibre Channel to PCI-X HBA +@@ -16710,25 +16710,25 @@ pci:v00001077d00002422* + ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA + + pci:v00001077d00002422sv0000103Csd000012D7* +- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB379A] ++ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB379A]) + + pci:v00001077d00002422sv0000103Csd000012DD* +- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB429A] ++ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB429A]) + + pci:v00001077d00002432* + ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA + + pci:v00001077d00002432sv0000103Csd00007040* +- ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] ++ ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA (FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]) + + pci:v00001077d00002532* + ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA + + pci:v00001077d00002532sv0000103Csd00003262* +- ID_MODEL_FROM_DATABASE=StorageWorks 81Q ++ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (StorageWorks 81Q) + + pci:v00001077d00002532sv00001077sd00000167* +- ID_MODEL_FROM_DATABASE=QME2572 Dual Port FC8 HBA Mezzanine ++ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (QME2572 Dual Port FC8 HBA Mezzanine) + + pci:v00001077d00003022* + ID_MODEL_FROM_DATABASE=ISP4022-based Ethernet NIC +@@ -16770,55 +16770,55 @@ pci:v00001077d00008020* + ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller + + pci:v00001077d00008020sv0000103Csd00003346* +- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (CN1000Q Dual Port Converged Network Adapter) + + pci:v00001077d00008020sv0000103Csd00003733* +- ID_MODEL_FROM_DATABASE=NC523SFP 10Gb 2-port Server Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (NC523SFP 10Gb 2-port Server Adapter) + + pci:v00001077d00008020sv00001077sd00000203* +- ID_MODEL_FROM_DATABASE=8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008020sv00001077sd00000207* +- ID_MODEL_FROM_DATABASE=8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008020sv00001077sd0000020B* +- ID_MODEL_FROM_DATABASE=3200 Series Dual Port 10Gb Intelligent Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Dual Port 10Gb Intelligent Ethernet Adapter) + + pci:v00001077d00008020sv00001077sd0000020C* +- ID_MODEL_FROM_DATABASE=3200 Series Quad Port 1Gb Intelligent Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Quad Port 1Gb Intelligent Ethernet Adapter) + + pci:v00001077d00008020sv00001077sd0000020F* +- ID_MODEL_FROM_DATABASE=3200 Series Single Port 10Gb Intelligent Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Single Port 10Gb Intelligent Ethernet Adapter) + + pci:v00001077d00008020sv00001077sd00000210* +- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card ++ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (QME8242-k 10GbE Dual Port Mezzanine Card) + + pci:v00001077d00008021* + ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) + + pci:v00001077d00008021sv0000103Csd00003348* +- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (CN1000Q Dual Port Converged Network Adapter) + + pci:v00001077d00008021sv00001077sd00000211* +- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, FCoE ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (QME8242-k 10GbE Dual Port Mezzanine Card, FCoE) + + pci:v00001077d00008022* + ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) + + pci:v00001077d00008022sv0000103Csd00003347* +- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (CN1000Q Dual Port Converged Network Adapter) + + pci:v00001077d00008022sv00001077sd00000212* +- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI ++ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI) + + pci:v00001077d00008030* + ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller + + pci:v00001077d00008030sv00001077sd00000243* +- ID_MODEL_FROM_DATABASE=8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008030sv00001077sd00000246* +- ID_MODEL_FROM_DATABASE=8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) ++ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) + + pci:v00001077d00008031* + ID_MODEL_FROM_DATABASE=8300 Series 10GbE Converged Network Adapter (FCoE) +@@ -17022,7 +17022,7 @@ pci:v0000108Dd00000004* + ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter + + pci:v0000108Dd00000004sv0000108Dsd00000004* +- ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter (OC-3139/3140 RapidFire Token-Ring 16/4 Adapter) + + pci:v0000108Dd00000005* + ID_MODEL_FROM_DATABASE=GoCard 3250 Token-Ring 16/4 CardBus PC Card +@@ -17034,13 +17034,13 @@ pci:v0000108Dd00000007* + ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter + + pci:v0000108Dd00000007sv0000108Dsd00000007* +- ID_MODEL_FROM_DATABASE=OC-3141 RapidFire Token-Ring 16/4 Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter (OC-3141 RapidFire Token-Ring 16/4 Adapter) + + pci:v0000108Dd00000008* + ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter + + pci:v0000108Dd00000008sv0000108Dsd00000008* +- ID_MODEL_FROM_DATABASE=OC-3540 RapidFire HSTR 100/16/4 Adapter ++ ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter (OC-3540 RapidFire HSTR 100/16/4 Adapter) + + pci:v0000108Dd00000011* + ID_MODEL_FROM_DATABASE=OC-2315 +@@ -17058,10 +17058,10 @@ pci:v0000108Dd00000019* + ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter + + pci:v0000108Dd00000019sv0000108Dsd00000016* +- ID_MODEL_FROM_DATABASE=OC-2327 Rapidfire 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2327 Rapidfire 10/100 Ethernet Adapter) + + pci:v0000108Dd00000019sv0000108Dsd00000017* +- ID_MODEL_FROM_DATABASE=OC-2250 GoCard 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2250 GoCard 10/100 Ethernet Adapter) + + pci:v0000108Dd00000021* + ID_MODEL_FROM_DATABASE=OC-6151/6152 [RapidFire ATM 155] +@@ -17085,25 +17085,25 @@ pci:v0000108Ed00001100* + ID_MODEL_FROM_DATABASE=RIO EBUS + + pci:v0000108Ed00001100sv0000108Esd00001100* +- ID_MODEL_FROM_DATABASE=RIO EBUS on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO EBUS (on Blade 100 motherboard) + + pci:v0000108Ed00001101* + ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] + + pci:v0000108Ed00001101sv0000108Esd00001101* +- ID_MODEL_FROM_DATABASE=RIO GEM on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] (RIO GEM on Blade 100 motherboard) + + pci:v0000108Ed00001102* + ID_MODEL_FROM_DATABASE=RIO 1394 + + pci:v0000108Ed00001102sv0000108Esd00001102* +- ID_MODEL_FROM_DATABASE=RIO 1394 on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO 1394 (on Blade 100 motherboard) + + pci:v0000108Ed00001103* + ID_MODEL_FROM_DATABASE=RIO USB + + pci:v0000108Ed00001103sv0000108Esd00001103* +- ID_MODEL_FROM_DATABASE=RIO USB on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=RIO USB (on Blade 100 motherboard) + + pci:v0000108Ed00001647* + ID_MODEL_FROM_DATABASE=Broadcom 570x 10/100/1000 Ethernet [bge] +@@ -17124,7 +17124,7 @@ pci:v0000108Ed00005000* + ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge + + pci:v0000108Ed00005000sv0000108Esd00005000* +- ID_MODEL_FROM_DATABASE=Netra AX1105-500 ++ ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge (Netra AX1105-500) + + pci:v0000108Ed00005043* + ID_MODEL_FROM_DATABASE=SunPCI Co-processor +@@ -17226,7 +17226,7 @@ pci:v0000108Ed0000A001* + ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] + + pci:v0000108Ed0000A001sv0000108Esd0000A001* +- ID_MODEL_FROM_DATABASE=Ultra IIe on Blade 100 motherboard ++ ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] (Ultra IIe on Blade 100 motherboard) + + pci:v0000108Ed0000A801* + ID_MODEL_FROM_DATABASE=Schizo Fireplane-PCI bus bridge module [pcisch] +@@ -17295,7 +17295,7 @@ pci:v00001092d00000028* + ID_MODEL_FROM_DATABASE=Viper V770 + + pci:v00001092d00000028sv00001092sd00004A00* +- ID_MODEL_FROM_DATABASE=Viper V770 32MB ++ ID_MODEL_FROM_DATABASE=Viper V770 (32MB) + + pci:v00001092d000000A0* + ID_MODEL_FROM_DATABASE=Speedstar Pro SE +@@ -17766,28 +17766,28 @@ pci:v00001093d0000C4C4* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device + + pci:v00001093d0000C4C4sv00001093sd000074B2* +- ID_MODEL_FROM_DATABASE=PXIe-4353 ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4353) + + pci:v00001093d0000C4C4sv00001093sd000074D0* +- ID_MODEL_FROM_DATABASE=PXIe-7961R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7961R) + + pci:v00001093d0000C4C4sv00001093sd000074E2* +- ID_MODEL_FROM_DATABASE=PXIe-7962R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7962R) + + pci:v00001093d0000C4C4sv00001093sd000074E3* +- ID_MODEL_FROM_DATABASE=PXIe-7965R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7965R) + + pci:v00001093d0000C4C4sv00001093sd00007553* +- ID_MODEL_FROM_DATABASE=PCIe-1473R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1473R) + + pci:v00001093d0000C4C4sv00001093sd000075CE* +- ID_MODEL_FROM_DATABASE=PXIe-7966R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7966R) + + pci:v00001093d0000C4C4sv00001093sd000076B7* +- ID_MODEL_FROM_DATABASE=PXIe-7975R ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7975R) + + pci:v00001093d0000C4C4sv00001093sd000076D0* +- ID_MODEL_FROM_DATABASE=PXIe-5160 ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160) + + pci:v00001093d0000C801* + ID_MODEL_FROM_DATABASE=PCI-GPIB +@@ -17820,19 +17820,19 @@ pci:v00001095d00000648* + ID_MODEL_FROM_DATABASE=PCI0648 + + pci:v00001095d00000648sv00001043sd00008025* +- ID_MODEL_FROM_DATABASE=CUBX motherboard ++ ID_MODEL_FROM_DATABASE=PCI0648 (CUBX motherboard) + + pci:v00001095d00000649* + ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller + + pci:v00001095d00000649sv00000E11sd0000005D* +- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 Dual Channel Controller ++ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 Dual Channel Controller) + + pci:v00001095d00000649sv00000E11sd0000007E* +- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 IDE RAID Controller ++ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 IDE RAID Controller) + + pci:v00001095d00000649sv0000101Esd00000649* +- ID_MODEL_FROM_DATABASE=AMI MegaRAID IDE 100 Controller ++ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (AMI MegaRAID IDE 100 Controller) + + pci:v00001095d00000650* + ID_MODEL_FROM_DATABASE=PBC0650A +@@ -17850,34 +17850,34 @@ pci:v00001095d00000680* + ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller + + pci:v00001095d00000680sv00001095sd00000680* +- ID_MODEL_FROM_DATABASE=SiI 0680 ATA/133 Controller ++ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (SiI 0680 ATA/133 Controller) + + pci:v00001095d00000680sv00001095sd00003680* +- ID_MODEL_FROM_DATABASE=Winic W-680 (Silicon Image 680 based) ++ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (Winic W-680 (Silicon Image 680 based)) + + pci:v00001095d00003112* + ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller + + pci:v00001095d00003112sv00001095sd00003112* +- ID_MODEL_FROM_DATABASE=SiI 3112 SATALink Controller ++ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATALink Controller) + + pci:v00001095d00003112sv00001095sd00006112* +- ID_MODEL_FROM_DATABASE=SiI 3112 SATARaid Controller ++ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATARaid Controller) + + pci:v00001095d00003112sv00009005sd00000250* +- ID_MODEL_FROM_DATABASE=SATAConnect 1205SA Host Controller ++ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SATAConnect 1205SA Host Controller) + + pci:v00001095d00003114* + ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller + + pci:v00001095d00003114sv00001043sd00008167* +- ID_MODEL_FROM_DATABASE=A8N-SLI Deluxe/Premium Mainboard ++ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (A8N-SLI Deluxe/Premium Mainboard) + + pci:v00001095d00003114sv00001095sd00003114* +- ID_MODEL_FROM_DATABASE=SiI 3114 SATALink Controller ++ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATALink Controller) + + pci:v00001095d00003114sv00001095sd00006114* +- ID_MODEL_FROM_DATABASE=SiI 3114 SATARaid Controller ++ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATARaid Controller) + + pci:v00001095d00003124* + ID_MODEL_FROM_DATABASE=SiI 3124 PCI-X Serial ATA Controller +@@ -17892,10 +17892,10 @@ pci:v00001095d00003512* + ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller + + pci:v00001095d00003512sv00001095sd00003512* +- ID_MODEL_FROM_DATABASE=SiI 3512 SATALink Controller ++ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATALink Controller) + + pci:v00001095d00003512sv00001095sd00006512* +- ID_MODEL_FROM_DATABASE=SiI 3512 SATARaid Controller ++ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATARaid Controller) + + pci:v00001095d00003531* + ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller +@@ -17949,412 +17949,412 @@ pci:v0000109Ed00000369* + ID_MODEL_FROM_DATABASE=Bt878 Video Capture + + pci:v0000109Ed00000369sv00001002sd00000001* +- ID_MODEL_FROM_DATABASE=TV-Wonder ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder) + + pci:v0000109Ed00000369sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=TV-Wonder/VE ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder/VE) + + pci:v0000109Ed0000036C* + ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture + + pci:v0000109Ed0000036Csv000013E9sd00000070* +- ID_MODEL_FROM_DATABASE=Win/TV (Video Section) ++ ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture (Win/TV (Video Section)) + + pci:v0000109Ed0000036E* + ID_MODEL_FROM_DATABASE=Bt878 Video Capture + + pci:v0000109Ed0000036Esv00000070sd000013EB* +- ID_MODEL_FROM_DATABASE=WinTV Series ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinTV Series) + + pci:v0000109Ed0000036Esv00000070sd0000FF01* +- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Viewcast Osprey 200) + + pci:v0000109Ed0000036Esv00000071sd00000101* +- ID_MODEL_FROM_DATABASE=DigiTV PCI ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DigiTV PCI) + + pci:v0000109Ed0000036Esv0000107Dsd00006606* +- ID_MODEL_FROM_DATABASE=WinFast TV 2000 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinFast TV 2000) + + pci:v0000109Ed0000036Esv000011BDsd00000012* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) + + pci:v0000109Ed0000036Esv000011BDsd0000001C* +- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV Sat (DBC receiver)) + + pci:v0000109Ed0000036Esv0000127Asd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) + + pci:v0000109Ed0000036Esv0000127Asd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv0000127Asd00000003* +- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv0000127Asd00000048* +- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) + + pci:v0000109Ed0000036Esv0000144Fsd00003000* +- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Video ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (MagicTView CPH060 - Video) + + pci:v0000109Ed0000036Esv00001461sd00000002* +- ID_MODEL_FROM_DATABASE=TV98 Series (TV/No FM/Remote) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV98 Series (TV/No FM/Remote)) + + pci:v0000109Ed0000036Esv00001461sd00000003* +- ID_MODEL_FROM_DATABASE=AverMedia UltraTV PCI 350 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia UltraTV PCI 350) + + pci:v0000109Ed0000036Esv00001461sd00000004* +- ID_MODEL_FROM_DATABASE=AVerTV WDM Video Capture ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AVerTV WDM Video Capture) + + pci:v0000109Ed0000036Esv00001461sd00000761* +- ID_MODEL_FROM_DATABASE=AverTV DVB-T ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverTV DVB-T) + + pci:v0000109Ed0000036Esv00001461sd00000771* +- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia AVerTV DVB-T 771) + + pci:v0000109Ed0000036Esv000014F1sd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) + + pci:v0000109Ed0000036Esv000014F1sd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv000014F1sd00000003* +- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) + + pci:v0000109Ed0000036Esv000014F1sd00000048* +- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) + + pci:v0000109Ed0000036Esv00001822sd00000001* +- ID_MODEL_FROM_DATABASE=VisionPlus DVB card ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (VisionPlus DVB card) + + pci:v0000109Ed0000036Esv00001851sd00001850* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video) + + pci:v0000109Ed0000036Esv00001851sd00001851* +- ID_MODEL_FROM_DATABASE=FlyVideo II ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo II) + + pci:v0000109Ed0000036Esv00001852sd00001852* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video (with FM Tuner)) + + pci:v0000109Ed0000036Esv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DViCO FusionHDTV5 Lite) + + pci:v0000109Ed0000036Esv0000270Fsd0000FC00* +- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Digitop DTT-1000) + + pci:v0000109Ed0000036Esv0000AA00sd00001460* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input0) + + pci:v0000109Ed0000036Esv0000AA01sd00001461* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input1) + + pci:v0000109Ed0000036Esv0000AA02sd00001462* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input2) + + pci:v0000109Ed0000036Esv0000AA03sd00001463* +- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input3) + + pci:v0000109Ed0000036Esv0000AA04sd00001464* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input0) + + pci:v0000109Ed0000036Esv0000AA05sd00001465* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input1) + + pci:v0000109Ed0000036Esv0000AA06sd00001466* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input2) + + pci:v0000109Ed0000036Esv0000AA07sd00001467* +- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input3) + + pci:v0000109Ed0000036Esv0000AA08sd00001468* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input0) + + pci:v0000109Ed0000036Esv0000AA09sd00001469* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input1) + + pci:v0000109Ed0000036Esv0000AA0Asd0000146A* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input2) + + pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* +- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input3) + + pci:v0000109Ed0000036Esv0000AA0Csd0000146C* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input0) + + pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input1) + + pci:v0000109Ed0000036Esv0000AA0Esd0000146E* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input2) + + pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* +- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input3) + + pci:v0000109Ed0000036Esv0000BD11sd00001200* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) + + pci:v0000109Ed0000036F* + ID_MODEL_FROM_DATABASE=Bt879 Video Capture + + pci:v0000109Ed0000036Fsv0000127Asd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv0000127Asd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv0000127Asd00000244* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv0000127Asd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv0000127Asd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv0000127Asd00001522* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) + + pci:v0000109Ed0000036Fsv0000127Asd00001622* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) + + pci:v0000109Ed0000036Fsv0000127Asd00001722* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv000014F1sd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv000014F1sd00000244* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) + + pci:v0000109Ed0000036Fsv000014F1sd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) + + pci:v0000109Ed0000036Fsv000014F1sd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) + + pci:v0000109Ed0000036Fsv000014F1sd00001522* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) + + pci:v0000109Ed0000036Fsv000014F1sd00001622* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) + + pci:v0000109Ed0000036Fsv000014F1sd00001722* +- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) + + pci:v0000109Ed0000036Fsv00001851sd00001850* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video) + + pci:v0000109Ed0000036Fsv00001851sd00001851* +- ID_MODEL_FROM_DATABASE=FlyVideo II ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo II) + + pci:v0000109Ed0000036Fsv00001852sd00001852* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) ++ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video (with FM Tuner)) + + pci:v0000109Ed00000370* + ID_MODEL_FROM_DATABASE=Bt880 Video Capture + + pci:v0000109Ed00000370sv00001851sd00001850* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 ++ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98) + + pci:v0000109Ed00000370sv00001851sd00001851* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 EZ - video ++ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 EZ - video) + + pci:v0000109Ed00000370sv00001852sd00001852* +- ID_MODEL_FROM_DATABASE=FlyVideo'98 (with FM Tuner) ++ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 (with FM Tuner)) + + pci:v0000109Ed00000878* + ID_MODEL_FROM_DATABASE=Bt878 Audio Capture + + pci:v0000109Ed00000878sv00000070sd000013EB* +- ID_MODEL_FROM_DATABASE=WinTV Series ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (WinTV Series) + + pci:v0000109Ed00000878sv00000070sd0000FF01* +- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Viewcast Osprey 200) + + pci:v0000109Ed00000878sv00000071sd00000101* +- ID_MODEL_FROM_DATABASE=DigiTV PCI ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DigiTV PCI) + + pci:v0000109Ed00000878sv00001002sd00000001* +- ID_MODEL_FROM_DATABASE=TV-Wonder ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder) + + pci:v0000109Ed00000878sv00001002sd00000003* +- ID_MODEL_FROM_DATABASE=TV-Wonder/VE ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder/VE) + + pci:v0000109Ed00000878sv000011BDsd00000012* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) + + pci:v0000109Ed00000878sv000011BDsd0000001C* +- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV Sat (DBC receiver)) + + pci:v0000109Ed00000878sv0000127Asd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv0000127Asd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv0000127Asd00000003* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv0000127Asd00000048* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000013E9sd00000070* +- ID_MODEL_FROM_DATABASE=Win/TV (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Win/TV (Audio Section)) + + pci:v0000109Ed00000878sv0000144Fsd00003000* +- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Audio ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (MagicTView CPH060 - Audio) + + pci:v0000109Ed00000878sv00001461sd00000002* +- ID_MODEL_FROM_DATABASE=Avermedia PCTV98 Audio Capture ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Avermedia PCTV98 Audio Capture) + + pci:v0000109Ed00000878sv00001461sd00000003* +- ID_MODEL_FROM_DATABASE=UltraTV PCI 350 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (UltraTV PCI 350) + + pci:v0000109Ed00000878sv00001461sd00000004* +- ID_MODEL_FROM_DATABASE=AVerTV WDM Audio Capture ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV WDM Audio Capture) + + pci:v0000109Ed00000878sv00001461sd00000761* +- ID_MODEL_FROM_DATABASE=AVerTV DVB-T ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV DVB-T) + + pci:v0000109Ed00000878sv00001461sd00000771* +- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AverMedia AVerTV DVB-T 771) + + pci:v0000109Ed00000878sv000014F1sd00000001* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000014F1sd00000002* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000014F1sd00000003* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv000014F1sd00000048* +- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) + + pci:v0000109Ed00000878sv00001822sd00000001* +- ID_MODEL_FROM_DATABASE=VisionPlus DVB Card ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (VisionPlus DVB Card) + + pci:v0000109Ed00000878sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DViCO FusionHDTV5 Lite) + + pci:v0000109Ed00000878sv0000270Fsd0000FC00* +- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Digitop DTT-1000) + + pci:v0000109Ed00000878sv0000BD11sd00001200* +- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) ++ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) + + pci:v0000109Ed00000879* + ID_MODEL_FROM_DATABASE=Bt879 Audio Capture + + pci:v0000109Ed00000879sv0000127Asd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000244* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001522* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001622* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv0000127Asd00001722* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000044* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000144* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000244* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00000422* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001122* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001222* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001322* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001522* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001622* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000879sv000014F1sd00001722* +- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) ++ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) + + pci:v0000109Ed00000880* + ID_MODEL_FROM_DATABASE=Bt880 Audio Capture +@@ -18585,7 +18585,7 @@ pci:v000010B4d00001B1D* + ID_MODEL_FROM_DATABASE=Velocity 128 3D + + pci:v000010B4d00001B1Dsv000010B4sd0000237E* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=Velocity 128 3D (Velocity 4400) + + pci:v000010B5* + ID_VENDOR_FROM_DATABASE=PLX Technology, Inc. +@@ -18597,13 +18597,13 @@ pci:v000010B5d00000557* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00000557sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card) + + pci:v000010B5d00001000* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00001000sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM AT400P Quad T1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AT400P Quad T1 PCI card) + + pci:v000010B5d00001024* + ID_MODEL_FROM_DATABASE=Acromag, Inc. IndustryPack Carrier Card +@@ -18636,7 +18636,7 @@ pci:v000010B5d00002000* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00002000sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM AE400P Quad E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AE400P Quad E1 PCI card) + + pci:v000010B5d00002540* + ID_MODEL_FROM_DATABASE=IXXAT CAN-Interface PC-I 04/PCI +@@ -18651,19 +18651,19 @@ pci:v000010B5d00004000* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00004000sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card) + + pci:v000010B5d00004001* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00004001sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM A400PE Quad E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PE Quad E1 PCI card) + + pci:v000010B5d00004002* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00004002sv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=ATCOM A400PT Quad T1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PT Quad T1 PCI card) + + pci:v000010B5d00006140* + ID_MODEL_FROM_DATABASE=PCI6140 32-bit 33MHz PCI-to-PCI Bridge +@@ -18690,28 +18690,28 @@ pci:v000010B5d00006540* + ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge + + pci:v000010B5d00006540sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (CR11 Single Board Computer) + + pci:v000010B5d00006540sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (PSL09 PrPMC) + + pci:v000010B5d00006541* + ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) + + pci:v000010B5d00006541sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (CR11 Single Board Computer) + + pci:v000010B5d00006541sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (PSL09 PrPMC) + + pci:v000010B5d00006542* + ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) + + pci:v000010B5d00006542sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (CR11 Single Board Computer) + + pci:v000010B5d00006542sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (PSL09 PrPMC) + + pci:v000010B5d00008111* + ID_MODEL_FROM_DATABASE=PEX 8111 PCI Express-to-PCI Bridge +@@ -18807,7 +18807,7 @@ pci:v000010B5d00008624* + ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] + + pci:v000010B5d00008624sv000013A3sd00001845* +- ID_MODEL_FROM_DATABASE=DX1845 Acceleration Card ++ ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] (DX1845 Acceleration Card) + + pci:v000010B5d00008625* + ID_MODEL_FROM_DATABASE=PEX 8625 24-lane, 24-Port PCI Express Gen 2 (5.0 GT/s) Switch +@@ -18861,85 +18861,85 @@ pci:v000010B5d00009030* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009030sv000010B5sd00002695* +- ID_MODEL_FROM_DATABASE=Hilscher CIF50-PB/DPS Profibus ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Hilscher CIF50-PB/DPS Profibus) + + pci:v000010B5d00009030sv000010B5sd00002862* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00002906* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board) + + pci:v000010B5d00009030sv000010B5sd00002940* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00002977* +- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCI CAN Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCI CAN Board) + + pci:v000010B5d00009030sv000010B5sd00002978* +- ID_MODEL_FROM_DATABASE=SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card) + + pci:v000010B5d00009030sv000010B5sd00003025* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00003068* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000010B5sd00003463* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board) + + pci:v000010B5d00009030sv000012FEsd00000111* +- ID_MODEL_FROM_DATABASE=CPCI-ASIO4 (ESD 4-port Serial Interface Board) ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (CPCI-ASIO4 (ESD 4-port Serial Interface Board)) + + pci:v000010B5d00009030sv00001369sd00009C01* +- ID_MODEL_FROM_DATABASE=VX222v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222v2) + + pci:v000010B5d00009030sv00001369sd00009D01* +- ID_MODEL_FROM_DATABASE=VX222-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) + + pci:v000010B5d00009030sv00001369sd00009D02* +- ID_MODEL_FROM_DATABASE=VX222-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) + + pci:v000010B5d00009030sv00001369sd00009E01* +- ID_MODEL_FROM_DATABASE=PCX924v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924v2) + + pci:v000010B5d00009030sv00001369sd00009F01* +- ID_MODEL_FROM_DATABASE=PCX924-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) + + pci:v000010B5d00009030sv00001369sd00009F02* +- ID_MODEL_FROM_DATABASE=PCX924-Mic ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) + + pci:v000010B5d00009030sv00001369sd0000A001* +- ID_MODEL_FROM_DATABASE=PCX22v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX22v2) + + pci:v000010B5d00009030sv00001369sd0000A701* +- ID_MODEL_FROM_DATABASE=LCM220v2 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM220v2) + + pci:v000010B5d00009030sv00001369sd0000A801* +- ID_MODEL_FROM_DATABASE=LCM200 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM200) + + pci:v000010B5d00009030sv00001397sd00003136* +- ID_MODEL_FROM_DATABASE=4xS0-ISDN PCI Adapter ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (4xS0-ISDN PCI Adapter) + + pci:v000010B5d00009030sv00001397sd00003137* +- ID_MODEL_FROM_DATABASE=S2M-E1-ISDN PCI Adapter ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (S2M-E1-ISDN PCI Adapter) + + pci:v000010B5d00009030sv00001518sd00000200* +- ID_MODEL_FROM_DATABASE=Kontron ThinkIO-C ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Kontron ThinkIO-C) + + pci:v000010B5d00009030sv000015EDsd00001002* +- ID_MODEL_FROM_DATABASE=MCCS 8-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 8-port Serial Hot Swap) + + pci:v000010B5d00009030sv000015EDsd00001003* +- ID_MODEL_FROM_DATABASE=MCCS 16-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 16-port Serial Hot Swap) + + pci:v000010B5d00009030sv0000E1C5sd00000001* +- ID_MODEL_FROM_DATABASE=TE1-PCI ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TE1-PCI) + + pci:v000010B5d00009030sv0000E1C5sd00000005* +- ID_MODEL_FROM_DATABASE=TA1-PCI ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI) + + pci:v000010B5d00009030sv0000E1C5sd00000006* +- ID_MODEL_FROM_DATABASE=TA1-PCI4 ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI4) + + pci:v000010B5d00009036* + ID_MODEL_FROM_DATABASE=9036 +@@ -18948,145 +18948,145 @@ pci:v000010B5d00009050* + ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge + + pci:v000010B5d00009050sv000010B5sd00001067* +- ID_MODEL_FROM_DATABASE=IXXAT CAN i165 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IXXAT CAN i165) + + pci:v000010B5d00009050sv000010B5sd0000114E* +- ID_MODEL_FROM_DATABASE=Wasco WITIO PCI168extended ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco WITIO PCI168extended) + + pci:v000010B5d00009050sv000010B5sd00001169* +- ID_MODEL_FROM_DATABASE=Wasco OPTOIO32standard 32 digital in, 32 digital out ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco OPTOIO32standard 32 digital in, 32 digital out) + + pci:v000010B5d00009050sv000010B5sd00001172* +- ID_MODEL_FROM_DATABASE=IK220 (Heidenhain) ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IK220 (Heidenhain)) + + pci:v000010B5d00009050sv000010B5sd00002036* +- ID_MODEL_FROM_DATABASE=SatPak GPS ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SatPak GPS) + + pci:v000010B5d00009050sv000010B5sd00002221* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV: Timecode Reader Board) + + pci:v000010B5d00009050sv000010B5sd00002273* +- ID_MODEL_FROM_DATABASE=SH ARC-PCI SOHARD ARCNET card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SH ARC-PCI SOHARD ARCNET card) + + pci:v000010B5d00009050sv000010B5sd00002431* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D: Timecode Reader Board) + + pci:v000010B5d00009050sv000010B5sd00002905* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS: Time Synchronisation Board ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCI TS: Time Synchronisation Board) + + pci:v000010B5d00009050sv000010B5sd00003196* +- ID_MODEL_FROM_DATABASE=Goramo PLX200SYN sync serial card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Goramo PLX200SYN sync serial card) + + pci:v000010B5d00009050sv000010B5sd00009050* +- ID_MODEL_FROM_DATABASE=PCI-I04 PCI Passive PC/CAN Interface ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCI-I04 PCI Passive PC/CAN Interface) + + pci:v000010B5d00009050sv00001369sd00008901* +- ID_MODEL_FROM_DATABASE=PCX11+ PCI ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX11+ PCI) + + pci:v000010B5d00009050sv00001369sd00008F01* +- ID_MODEL_FROM_DATABASE=VX222 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (VX222) + + pci:v000010B5d00009050sv00001369sd00009401* +- ID_MODEL_FROM_DATABASE=PCX924 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX924) + + pci:v000010B5d00009050sv00001369sd00009501* +- ID_MODEL_FROM_DATABASE=PCX22 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX22) + + pci:v000010B5d00009050sv00001498sd00000362* +- ID_MODEL_FROM_DATABASE=TPMC866 8 Channel Serial Card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (TPMC866 8 Channel Serial Card) + + pci:v000010B5d00009050sv00001522sd00000001* +- ID_MODEL_FROM_DATABASE=RockForce 4 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 4 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000002* +- ID_MODEL_FROM_DATABASE=RockForce 2 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 2 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000003* +- ID_MODEL_FROM_DATABASE=RockForce 6 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 6 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000004* +- ID_MODEL_FROM_DATABASE=RockForce 8 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 8 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000010* +- ID_MODEL_FROM_DATABASE=RockForce2000 4 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 4 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv00001522sd00000020* +- ID_MODEL_FROM_DATABASE=RockForce2000 2 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 2 Port V.90 Data/Fax/Voice Modem) + + pci:v000010B5d00009050sv000015EDsd00001000* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial) + + pci:v000010B5d00009050sv000015EDsd00001001* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial) + + pci:v000010B5d00009050sv000015EDsd00001002* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial Hot Swap) + + pci:v000010B5d00009050sv000015EDsd00001003* +- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial Hot Swap ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial Hot Swap) + + pci:v000010B5d00009050sv00005654sd00002036* +- ID_MODEL_FROM_DATABASE=OpenSwitch 6 Telephony card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 6 Telephony card) + + pci:v000010B5d00009050sv00005654sd00003132* +- ID_MODEL_FROM_DATABASE=OpenSwitch 12 Telephony card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 12 Telephony card) + + pci:v000010B5d00009050sv00005654sd00005634* +- ID_MODEL_FROM_DATABASE=OpenLine4 Telephony Card ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenLine4 Telephony Card) + + pci:v000010B5d00009050sv0000D531sd0000C002* +- ID_MODEL_FROM_DATABASE=PCIntelliCAN 2xSJA1000 CAN bus ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCIntelliCAN 2xSJA1000 CAN bus) + + pci:v000010B5d00009050sv0000D84Dsd00004006* +- ID_MODEL_FROM_DATABASE=EX-4006 1P ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4006 1P) + + pci:v000010B5d00009050sv0000D84Dsd00004008* +- ID_MODEL_FROM_DATABASE=EX-4008 1P EPP/ECP ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4008 1P EPP/ECP) + + pci:v000010B5d00009050sv0000D84Dsd00004014* +- ID_MODEL_FROM_DATABASE=EX-4014 2P ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4014 2P) + + pci:v000010B5d00009050sv0000D84Dsd00004018* +- ID_MODEL_FROM_DATABASE=EX-4018 3P EPP/ECP ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4018 3P EPP/ECP) + + pci:v000010B5d00009050sv0000D84Dsd00004025* +- ID_MODEL_FROM_DATABASE=EX-4025 1S(16C550) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4025 1S(16C550) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004027* +- ID_MODEL_FROM_DATABASE=EX-4027 1S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4027 1S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004028* +- ID_MODEL_FROM_DATABASE=EX-4028 1S(16C850) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4028 1S(16C850) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004036* +- ID_MODEL_FROM_DATABASE=EX-4036 2S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4036 2S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004037* +- ID_MODEL_FROM_DATABASE=EX-4037 2S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4037 2S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004038* +- ID_MODEL_FROM_DATABASE=EX-4038 2S(16C850) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4038 2S(16C850) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004052* +- ID_MODEL_FROM_DATABASE=EX-4052 1S(16C550) RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4052 1S(16C550) RS-422/485) + + pci:v000010B5d00009050sv0000D84Dsd00004053* +- ID_MODEL_FROM_DATABASE=EX-4053 2S(16C550) RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4053 2S(16C550) RS-422/485) + + pci:v000010B5d00009050sv0000D84Dsd00004055* +- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C550) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C550) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004058* +- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004065* +- ID_MODEL_FROM_DATABASE=EX-4065 8S(16C550) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4065 8S(16C550) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004068* +- ID_MODEL_FROM_DATABASE=EX-4068 8S(16C650) RS-232 ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4068 8S(16C650) RS-232) + + pci:v000010B5d00009050sv0000D84Dsd00004078* +- ID_MODEL_FROM_DATABASE=EX-4078 2S(16C552) RS-232+1P ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4078 2S(16C552) RS-232+1P) + + pci:v000010B5d00009052* + ID_MODEL_FROM_DATABASE=PCI9052 PCI <-> IOBus Bridge +@@ -19095,88 +19095,88 @@ pci:v000010B5d00009054* + ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009054sv000010B5sd00002455* +- ID_MODEL_FROM_DATABASE=Wessex Techology PHIL-PCI ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Wessex Techology PHIL-PCI) + + pci:v000010B5d00009054sv000010B5sd00002696* +- ID_MODEL_FROM_DATABASE=Innes Corp AM Radcap card ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp AM Radcap card) + + pci:v000010B5d00009054sv000010B5sd00002717* +- ID_MODEL_FROM_DATABASE=Innes Corp Auricon card ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp Auricon card) + + pci:v000010B5d00009054sv000010B5sd00002844* +- ID_MODEL_FROM_DATABASE=Innes Corp TVS Encoder card ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp TVS Encoder card) + + pci:v000010B5d00009054sv000012C7sd00004001* +- ID_MODEL_FROM_DATABASE=Intel Dialogic DM/V960-4T1 PCI ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Intel Dialogic DM/V960-4T1 PCI) + + pci:v000010B5d00009054sv000012D9sd00000002* +- ID_MODEL_FROM_DATABASE=PCI Prosody Card rev 1.5 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PCI Prosody Card rev 1.5) + + pci:v000010B5d00009054sv000014B4sd0000D100* +- ID_MODEL_FROM_DATABASE=Dektec DTA-100 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-100) + + pci:v000010B5d00009054sv000014B4sd0000D114* +- ID_MODEL_FROM_DATABASE=Dektec DTA-120 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-120) + + pci:v000010B5d00009054sv000016DFsd00000011* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM PCI ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM PCI) + + pci:v000010B5d00009054sv000016DFsd00000012* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8) + + pci:v000010B5d00009054sv000016DFsd00000013* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 (without CAS Signaling) ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8 (without CAS Signaling)) + + pci:v000010B5d00009054sv000016DFsd00000014* +- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 4 ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 4) + + pci:v000010B5d00009054sv000016DFsd00000015* +- ID_MODEL_FROM_DATABASE=PIKA Daytona MM ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA Daytona MM) + + pci:v000010B5d00009054sv000016DFsd00000016* +- ID_MODEL_FROM_DATABASE=PIKA InLine MM ++ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA InLine MM) + + pci:v000010B5d00009056* + ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009056sv000010B5sd00002979* +- ID_MODEL_FROM_DATABASE=CellinkBlade 11 - CPCI board VoATM AAL1 ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (CellinkBlade 11 - CPCI board VoATM AAL1) + + pci:v000010B5d00009056sv000010B5sd00003268* +- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCIe CAN Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCIe CAN Board) + + pci:v000010B5d00009056sv000010B5sd00003352* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe HD: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe HD: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003353* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe D: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe D: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003354* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe LV: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe LV: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003355* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe L: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe L: Timecode Reader Board) + + pci:v000010B5d00009056sv000010B5sd00003415* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCIe TS: Time Synchronisation Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCIe TS: Time Synchronisation Board) + + pci:v000010B5d00009056sv000010B5sd00003493* +- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe 3G: Timecode Reader Board ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe 3G: Timecode Reader Board) + + pci:v000010B5d00009056sv00001369sd0000C001* +- ID_MODEL_FROM_DATABASE=LX6464ES ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX6464ES) + + pci:v000010B5d00009056sv00001369sd0000C201* +- ID_MODEL_FROM_DATABASE=LX1616ES ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX1616ES) + + pci:v000010B5d00009056sv000014B4sd0000D10A* +- ID_MODEL_FROM_DATABASE=DekTec DTA-110T ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (DekTec DTA-110T) + + pci:v000010B5d00009056sv000014B4sd0000D140* +- ID_MODEL_FROM_DATABASE=Dektec DTA-140 ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-140) + + pci:v000010B5d00009056sv00001A0Esd0000006F* +- ID_MODEL_FROM_DATABASE=Dektec DTA-111 ++ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-111) + + pci:v000010B5d00009060* + ID_MODEL_FROM_DATABASE=PCI9060 32-bit 33MHz PCI <-> IOBus Bridge +@@ -19185,7 +19185,7 @@ pci:v000010B5d0000906D* + ID_MODEL_FROM_DATABASE=9060SD + + pci:v000010B5d0000906Dsv0000125Csd00000640* +- ID_MODEL_FROM_DATABASE=Aries 16000P ++ ID_MODEL_FROM_DATABASE=9060SD (Aries 16000P) + + pci:v000010B5d0000906E* + ID_MODEL_FROM_DATABASE=9060ES +@@ -19194,61 +19194,61 @@ pci:v000010B5d00009080* + ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d00009080sv0000103Csd000010EB* +- ID_MODEL_FROM_DATABASE=(Agilent) E2777B 83K Series Optical Communication Interface ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E2777B 83K Series Optical Communication Interface) + + pci:v000010B5d00009080sv0000103Csd000010EC* +- ID_MODEL_FROM_DATABASE=(Agilent) E6978-66442 PCI CIC ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E6978-66442 PCI CIC) + + pci:v000010B5d00009080sv000010B5sd00001123* +- ID_MODEL_FROM_DATABASE=Sectra KK631 encryption board ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (Sectra KK631 encryption board) + + pci:v000010B5d00009080sv000010B5sd00009080* +- ID_MODEL_FROM_DATABASE=9080 [real subsystem ID not set] ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (9080 [real subsystem ID not set]) + + pci:v000010B5d00009080sv000012D9sd00000002* +- ID_MODEL_FROM_DATABASE=PCI Prosody Card ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCI Prosody Card) + + pci:v000010B5d00009080sv000012DFsd00004422* +- ID_MODEL_FROM_DATABASE=4422PCI ["Do-All" Telemetry Data Aquisition System] ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (4422PCI ["Do-All" Telemetry Data Aquisition System]) + + pci:v000010B5d00009080sv00001369sd00009601* +- ID_MODEL_FROM_DATABASE=PCX822np ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822np) + + pci:v000010B5d00009080sv00001369sd0000A102* +- ID_MODEL_FROM_DATABASE=PCX822v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822v2) + + pci:v000010B5d00009080sv00001369sd0000A201* +- ID_MODEL_FROM_DATABASE=PCX442 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX442) + + pci:v000010B5d00009080sv00001369sd0000A301* +- ID_MODEL_FROM_DATABASE=LCM440v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM440v2) + + pci:v000010B5d00009080sv00001369sd0000A401* +- ID_MODEL_FROM_DATABASE=VX822 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822) + + pci:v000010B5d00009080sv00001369sd0000A402* +- ID_MODEL_FROM_DATABASE=VX822v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822v2) + + pci:v000010B5d00009080sv00001369sd0000A901* +- ID_MODEL_FROM_DATABASE=LCM420 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM420) + + pci:v000010B5d00009080sv00001369sd0000AA01* +- ID_MODEL_FROM_DATABASE=VX820v2 ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX820v2) + + pci:v000010B5d00009080sv00001517sd0000000B* +- ID_MODEL_FROM_DATABASE=ECSG-1R3ADC-PMC Clock synthesizer ++ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (ECSG-1R3ADC-PMC Clock synthesizer) + + pci:v000010B5d00009656* + ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge + + pci:v000010B5d00009656sv00001517sd0000000F* +- ID_MODEL_FROM_DATABASE=ECDR-GC314-PMC Receiver ++ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (ECDR-GC314-PMC Receiver) + + pci:v000010B5d00009656sv00001885sd00000700* +- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S40 ++ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S40) + + pci:v000010B5d00009656sv00001885sd00000701* +- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S30 ++ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S30) + + pci:v000010B5d0000A100* + ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink +@@ -19263,28 +19263,28 @@ pci:v000010B5d0000D00D* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d0000D00Dsv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card) + + pci:v000010B5d0000D33D* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d0000D33Dsv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PT Quad T1/J1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PT Quad T1/J1 PCI card) + + pci:v000010B5d0000D44D* + ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + + pci:v000010B5d0000D44Dsv000010B5sd000017F6* +- ID_MODEL_FROM_DATABASE=Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card) + + pci:v000010B5d0000D44Dsv000010B5sd000017F7* +- ID_MODEL_FROM_DATABASE=Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card) + + pci:v000010B5d0000D44Dsv000010B5sd000017F8* +- ID_MODEL_FROM_DATABASE=Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card) + + pci:v000010B5d0000D44Dsv000010B5sd00009030* +- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PE Quad E1 PCI card ++ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PE Quad E1 PCI card) + + pci:v000010B6* + ID_VENDOR_FROM_DATABASE=Madge Networks +@@ -19299,19 +19299,19 @@ pci:v000010B6d00000002sv000010B6sd00000002* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 + + pci:v000010B6d00000002sv000010B6sd00000006* +- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter ++ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 (16/4 CardBus Adapter) + + pci:v000010B6d00000003* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 + + pci:v000010B6d00000003sv00000E11sd0000B0FD* +- ID_MODEL_FROM_DATABASE=Compaq NC4621 PCI, 4/16, WOL ++ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Compaq NC4621 PCI, 4/16, WOL) + + pci:v000010B6d00000003sv000010B6sd00000003* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 + + pci:v000010B6d00000003sv000010B6sd00000007* +- ID_MODEL_FROM_DATABASE=Presto PCI Plus Adapter ++ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Presto PCI Plus Adapter) + + pci:v000010B6d00000004* + ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk1 +@@ -19320,13 +19320,13 @@ pci:v000010B6d00000006* + ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter + + pci:v000010B6d00000006sv000010B6sd00000006* +- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter ++ ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter (16/4 CardBus Adapter) + + pci:v000010B6d00000007* + ID_MODEL_FROM_DATABASE=Presto PCI Adapter + + pci:v000010B6d00000007sv000010B6sd00000007* +- ID_MODEL_FROM_DATABASE=Presto PCI ++ ID_MODEL_FROM_DATABASE=Presto PCI Adapter (Presto PCI) + + pci:v000010B6d00000009* + ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode +@@ -19347,7 +19347,7 @@ pci:v000010B6d0000000Bsv000010B6sd00000008* + ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 + + pci:v000010B6d0000000Bsv000010B6sd0000000B* +- ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter Mk2 ++ ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 (16/4 Cardbus Adapter Mk2) + + pci:v000010B6d0000000C* + ID_MODEL_FROM_DATABASE=RapidFire 3140V2 16/4 TR Adapter +@@ -19368,13 +19368,13 @@ pci:v000010B7d00000001* + ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) + + pci:v000010B7d00000001sv00009850sd00000001* +- ID_MODEL_FROM_DATABASE=3c985B-SX ++ ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) (3c985B-SX) + + pci:v000010B7d00000013* + ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) + + pci:v000010B7d00000013sv000010B7sd00002031* +- ID_MODEL_FROM_DATABASE=3CRDAG675 11a/b/g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) (3CRDAG675 11a/b/g Wireless PCI Adapter) + + pci:v000010B7d00000910* + ID_MODEL_FROM_DATABASE=3C910-A01 +@@ -19386,10 +19386,10 @@ pci:v000010B7d00001007* + ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem + + pci:v000010B7d00001007sv000010B7sd0000615B* +- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem ++ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) + + pci:v000010B7d00001007sv000010B7sd0000615C* +- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem ++ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) + + pci:v000010B7d00001201* + ID_MODEL_FROM_DATABASE=3c982-TXM 10/100baseTX Dual Port A [Hydra] +@@ -19401,16 +19401,16 @@ pci:v000010B7d00001700* + ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] + + pci:v000010B7d00001700sv00001043sd000080EB* +- ID_MODEL_FROM_DATABASE=A7V600/P4P800/K8V motherboard ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (A7V600/P4P800/K8V motherboard) + + pci:v000010B7d00001700sv000010B7sd00000010* +- ID_MODEL_FROM_DATABASE=3C940 Gigabit LOM Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C940 Gigabit LOM Ethernet Adapter) + + pci:v000010B7d00001700sv000010B7sd00000020* +- ID_MODEL_FROM_DATABASE=3C941 Gigabit LOM Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C941 Gigabit LOM Ethernet Adapter) + + pci:v000010B7d00001700sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (KV8-MAX3 motherboard) + + pci:v000010B7d00003390* + ID_MODEL_FROM_DATABASE=3c339 TokenLink Velocity +@@ -19419,7 +19419,7 @@ pci:v000010B7d00003590* + ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL + + pci:v000010B7d00003590sv000010B7sd00003590* +- ID_MODEL_FROM_DATABASE=TokenLink Velocity XL Adapter (3C359/359B) ++ ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL (TokenLink Velocity XL Adapter (3C359/359B)) + + pci:v000010B7d00004500* + ID_MODEL_FROM_DATABASE=3c450 HomePNA [Tornado] +@@ -19431,19 +19431,19 @@ pci:v000010B7d00005057* + ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] + + pci:v000010B7d00005057sv000010B7sd00005A57* +- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card ++ ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) + + pci:v000010B7d00005157* + ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] + + pci:v000010B7d00005157sv000010B7sd00005B57* +- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card ++ ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] (3C575 Megahertz 10/100 LAN Cardbus PC Card) + + pci:v000010B7d00005257* + ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] + + pci:v000010B7d00005257sv000010B7sd00005C57* +- ID_MODEL_FROM_DATABASE=FE575C-3Com 10/100 LAN CardBus-Fast Ethernet ++ ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] (FE575C-3Com 10/100 LAN CardBus-Fast Ethernet) + + pci:v000010B7d00005900* + ID_MODEL_FROM_DATABASE=3c590 10BaseT [Vortex] +@@ -19467,7 +19467,7 @@ pci:v000010B7d00005B57* + ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] + + pci:v000010B7d00005B57sv000010B7sd00005B57* +- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card ++ ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) + + pci:v000010B7d00006000* + ID_MODEL_FROM_DATABASE=3CRSHPW796 [OfficeConnect Wireless CardBus] +@@ -19482,31 +19482,31 @@ pci:v000010B7d00006056* + ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] + + pci:v000010B7d00006056sv000010B7sd00006556* +- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] (10/100 Mini PCI Ethernet Adapter) + + pci:v000010B7d00006560* + ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] + + pci:v000010B7d00006560sv000010B7sd0000656A* +- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] (3CCFEM656 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006561* + ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus + + pci:v000010B7d00006561sv000010B7sd0000656B* +- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006562* + ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] + + pci:v000010B7d00006562sv000010B7sd0000656B* +- ID_MODEL_FROM_DATABASE=3CCFEM656B 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] (3CCFEM656B 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006563* + ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus + + pci:v000010B7d00006563sv000010B7sd0000656B* +- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus ++ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) + + pci:v000010B7d00006564* + ID_MODEL_FROM_DATABASE=3cXFEM656C 10/100 LAN+Winmodem CardBus [Tornado] +@@ -19542,13 +19542,13 @@ pci:v000010B7d00009004* + ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] + + pci:v000010B7d00009004sv000010B7sd00009004* +- ID_MODEL_FROM_DATABASE=3C900B-TPO Etherlink XL TPO 10Mb ++ ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] (3C900B-TPO Etherlink XL TPO 10Mb) + + pci:v000010B7d00009005* + ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] + + pci:v000010B7d00009005sv000010B7sd00009005* +- ID_MODEL_FROM_DATABASE=3C900B-Combo Etherlink XL Combo ++ ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] (3C900B-Combo Etherlink XL Combo) + + pci:v000010B7d00009006* + ID_MODEL_FROM_DATABASE=3c900B-TPC Etherlink XL [Cyclone] +@@ -19572,67 +19572,67 @@ pci:v000010B7d00009055* + ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] + + pci:v000010B7d00009055sv00001028sd00000080* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000081* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000082* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000083* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000084* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000085* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000086* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000087* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000089* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000090* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000091* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000092* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000093* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000094* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000096* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000097* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000098* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv00001028sd00000099* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009055sv000010B7sd00009055* +- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 ++ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) + + pci:v000010B7d00009056* + ID_MODEL_FROM_DATABASE=3c905B-T4 Fast EtherLink XL [Cyclone] +@@ -19647,40 +19647,40 @@ pci:v000010B7d00009200* + ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] + + pci:v000010B7d00009200sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) + + pci:v000010B7d00009200sv00001028sd00000097* +- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) + + pci:v000010B7d00009200sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (OptiPlex GX110) + + pci:v000010B7d00009200sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Precision 530) + + pci:v000010B7d00009200sv00001028sd000000FE* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Optiplex GX240) + + pci:v000010B7d00009200sv00001028sd0000012A* +- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller [Latitude C640] ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller [Latitude C640]) + + pci:v000010B7d00009200sv000010B7sd00001000* +- ID_MODEL_FROM_DATABASE=3C905CX-TX/TX-M Fast Etherlink for PC Management NIC ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C905CX-TX/TX-M Fast Etherlink for PC Management NIC) + + pci:v000010B7d00009200sv000010B7sd00007000* +- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (10/100 Mini PCI Ethernet Adapter) + + pci:v000010B7d00009200sv000010F1sd00002466* +- ID_MODEL_FROM_DATABASE=Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller) ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)) + + pci:v000010B7d00009200sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (X10 Laptop) + + pci:v000010B7d00009201* + ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] + + pci:v000010B7d00009201sv00001043sd000080AB* +- ID_MODEL_FROM_DATABASE=A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller ++ ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] (A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller) + + pci:v000010B7d00009202* + ID_MODEL_FROM_DATABASE=3Com 3C920B-EMB-WNM Integrated Fast Ethernet Controller +@@ -19695,22 +19695,22 @@ pci:v000010B7d00009800* + ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] + + pci:v000010B7d00009800sv000010B7sd00009800* +- ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter ++ ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] (3c980-TX Fast Etherlink XL Server Adapter) + + pci:v000010B7d00009805* + ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] + + pci:v000010B7d00009805sv000010B7sd00001201* +- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port A ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port A) + + pci:v000010B7d00009805sv000010B7sd00001202* +- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port B ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port B) + + pci:v000010B7d00009805sv000010B7sd00009805* +- ID_MODEL_FROM_DATABASE=3c980 10/100baseTX NIC [Python-T] ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (3c980 10/100baseTX NIC [Python-T]) + + pci:v000010B7d00009805sv000010F1sd00002462* +- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 ++ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (Thunder K7 S2462) + + pci:v000010B7d00009900* + ID_MODEL_FROM_DATABASE=3C990-TX [Typhoon] +@@ -19725,25 +19725,25 @@ pci:v000010B7d00009904* + ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] + + pci:v000010B7d00009904sv000010B7sd00001000* +- ID_MODEL_FROM_DATABASE=3CR990B-TX-M [Typhoon2] ++ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990B-TX-M [Typhoon2]) + + pci:v000010B7d00009904sv000010B7sd00002000* +- ID_MODEL_FROM_DATABASE=3CR990BSVR [Typhoon2 Server] ++ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990BSVR [Typhoon2 Server]) + + pci:v000010B7d00009905* + ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] + + pci:v000010B7d00009905sv000010B7sd00001101* +- ID_MODEL_FROM_DATABASE=3CR990-FX-95 [Typhoon Fiber 56-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 [Typhoon Fiber 56-bit]) + + pci:v000010B7d00009905sv000010B7sd00001102* +- ID_MODEL_FROM_DATABASE=3CR990-FX-97 [Typhoon Fiber 168-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 [Typhoon Fiber 168-bit]) + + pci:v000010B7d00009905sv000010B7sd00002101* +- ID_MODEL_FROM_DATABASE=3CR990-FX-95 Server [Typhoon Fiber 56-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 Server [Typhoon Fiber 56-bit]) + + pci:v000010B7d00009905sv000010B7sd00002102* +- ID_MODEL_FROM_DATABASE=3CR990-FX-97 Server [Typhoon Fiber 168-bit] ++ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 Server [Typhoon Fiber 168-bit]) + + pci:v000010B7d00009908* + ID_MODEL_FROM_DATABASE=3CR990SVR95 [Typhoon Server 56-bit] +@@ -19764,49 +19764,49 @@ pci:v000010B8d00000005* + ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter + + pci:v000010B8d00000005sv00001055sd0000E000* +- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171Q-PCI] ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171Q-PCI]) + + pci:v000010B8d00000005sv00001055sd0000E002* +- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171G-PCI] ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171G-PCI]) + + pci:v000010B8d00000005sv000010B8sd0000A011* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A014* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A015* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A016* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000005sv000010B8sd0000A017* +- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 ++ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) + + pci:v000010B8d00000006* + ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter + + pci:v000010B8d00000006sv00001055sd0000E100* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv00001055sd0000E102* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv00001055sd0000E300* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv00001055sd0000E302* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv000010B8sd0000A012* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv000013A2sd00008002* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00000006sv000013A2sd00008006* +- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) + + pci:v000010B8d00001000* + ID_MODEL_FROM_DATABASE=FDC 37c665 +@@ -19869,13 +19869,13 @@ pci:v000010B9d00001521* + ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] + + pci:v000010B9d00001521sv000010B9sd00001521* +- ID_MODEL_FROM_DATABASE=ALI M1521 Aladdin III CPU Bridge ++ ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] (ALI M1521 Aladdin III CPU Bridge) + + pci:v000010B9d00001523* + ID_MODEL_FROM_DATABASE=M1523 + + pci:v000010B9d00001523sv000010B9sd00001523* +- ID_MODEL_FROM_DATABASE=ALI M1523 ISA Bridge ++ ID_MODEL_FROM_DATABASE=M1523 (ALI M1523 ISA Bridge) + + pci:v000010B9d00001531* + ID_MODEL_FROM_DATABASE=M1531 [Aladdin IV] +@@ -19884,16 +19884,16 @@ pci:v000010B9d00001533* + ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] + + pci:v000010B9d00001533sv00001014sd0000053B* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ThinkPad R40e) + + pci:v000010B9d00001533sv000010B9sd00001533* +- ID_MODEL_FROM_DATABASE=ALi M1533 Aladdin IV/V ISA Bridge ++ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ALi M1533 Aladdin IV/V ISA Bridge) + + pci:v000010B9d00001541* + ID_MODEL_FROM_DATABASE=M1541 + + pci:v000010B9d00001541sv000010B9sd00001541* +- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP System Controller ++ ID_MODEL_FROM_DATABASE=M1541 (ALI M1541 Aladdin V/V+ AGP System Controller) + + pci:v000010B9d00001543* + ID_MODEL_FROM_DATABASE=M1543 +@@ -19902,10 +19902,10 @@ pci:v000010B9d00001563* + ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge + + pci:v000010B9d00001563sv000010B9sd00001563* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00001563sv00001849sd00001563* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00001573* + ID_MODEL_FROM_DATABASE=PCI to LPC Controller +@@ -20007,22 +20007,22 @@ pci:v000010B9d00005229* + ID_MODEL_FROM_DATABASE=M5229 IDE + + pci:v000010B9d00005229sv00001014sd0000050F* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R30) + + pci:v000010B9d00005229sv00001014sd0000053D* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R40e) + + pci:v000010B9d00005229sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin IDE ++ ID_MODEL_FROM_DATABASE=M5229 IDE (Pavilion ze4400 builtin IDE) + + pci:v000010B9d00005229sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M5229 IDE (XE4500 Notebook) + + pci:v000010B9d00005229sv00001043sd00008053* +- ID_MODEL_FROM_DATABASE=A7A266 Motherboard IDE ++ ID_MODEL_FROM_DATABASE=M5229 IDE (A7A266 Motherboard IDE) + + pci:v000010B9d00005229sv00001849sd00005229* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard IDE (PATA) ++ ID_MODEL_FROM_DATABASE=M5229 IDE (ASRock 939Dual-SATA2 Motherboard IDE (PATA)) + + pci:v000010B9d00005235* + ID_MODEL_FROM_DATABASE=M5225 +@@ -20031,31 +20031,31 @@ pci:v000010B9d00005237* + ID_MODEL_FROM_DATABASE=USB 1.1 Controller + + pci:v000010B9d00005237sv00001014sd00000540* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ThinkPad R40e) + + pci:v000010B9d00005237sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin USB ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Pavilion ze4400 builtin USB) + + pci:v000010B9d00005237sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (XE4500 Notebook) + + pci:v000010B9d00005237sv0000104Dsd0000810F* +- ID_MODEL_FROM_DATABASE=VAIO PCG-U1 USB/OHCI Revision 1.0 ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (VAIO PCG-U1 USB/OHCI Revision 1.0) + + pci:v000010B9d00005237sv000010B9sd00005237* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005237sv00001849sd00005237* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005239* + ID_MODEL_FROM_DATABASE=USB 2.0 Controller + + pci:v000010B9d00005239sv000010B9sd00005239* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005239sv00001849sd00005239* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005243* + ID_MODEL_FROM_DATABASE=M1541 PCI to AGP Controller +@@ -20103,7 +20103,7 @@ pci:v000010B9d00005288* + ID_MODEL_FROM_DATABASE=ULi M5288 SATA + + pci:v000010B9d00005288sv00001043sd00008056* +- ID_MODEL_FROM_DATABASE=A8R-MVP Mainboard ++ ID_MODEL_FROM_DATABASE=ULi M5288 SATA (A8R-MVP Mainboard) + + pci:v000010B9d00005289* + ID_MODEL_FROM_DATABASE=ULi 5289 SATA +@@ -20115,16 +20115,16 @@ pci:v000010B9d00005451* + ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device + + pci:v000010B9d00005451sv00001014sd00000506* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R30) + + pci:v000010B9d00005451sv00001014sd0000053E* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R40e) + + pci:v000010B9d00005451sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Audio ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (Pavilion ze4400 builtin Audio) + + pci:v000010B9d00005451sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (XE4500 Notebook) + + pci:v000010B9d00005453* + ID_MODEL_FROM_DATABASE=M5453 PCI AC-Link Controller Modem Device +@@ -20133,22 +20133,22 @@ pci:v000010B9d00005455* + ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device + + pci:v000010B9d00005455sv000010B9sd00005455* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005455sv00001849sd00000850* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010B9d00005457* + ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller + + pci:v000010B9d00005457sv00001014sd00000535* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (ThinkPad R40e) + + pci:v000010B9d00005457sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Modem Device ++ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (Pavilion ze4400 builtin Modem Device) + + pci:v000010B9d00005457sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (XE4500 Notebook) + + pci:v000010B9d00005459* + ID_MODEL_FROM_DATABASE=SmartLink SmartPCI561 56K Modem +@@ -20169,19 +20169,19 @@ pci:v000010B9d00007101* + ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] + + pci:v000010B9d00007101sv00001014sd00000510* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R30) + + pci:v000010B9d00007101sv00001014sd0000053C* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R40e) + + pci:v000010B9d00007101sv0000103Csd00000024* +- ID_MODEL_FROM_DATABASE=Pavilion ze4400 ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (Pavilion ze4400) + + pci:v000010B9d00007101sv0000103Csd00000025* +- ID_MODEL_FROM_DATABASE=XE4500 Notebook ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (XE4500 Notebook) + + pci:v000010B9d00007101sv00001849sd00007101* +- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard ++ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ASRock 939Dual-SATA2 Motherboard) + + pci:v000010BA* + ID_VENDOR_FROM_DATABASE=Mitsubishi Electric Corp. +@@ -20196,7 +20196,7 @@ pci:v000010BAd00000308* + ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] + + pci:v000010BAd00000308sv000010DDsd00000024* +- ID_MODEL_FROM_DATABASE=Tornado 3000 ++ ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] (Tornado 3000) + + pci:v000010BAd00001002* + ID_MODEL_FROM_DATABASE=VG500 [VolumePro Volume Rendering Accelerator] +@@ -20259,79 +20259,79 @@ pci:v000010C8d00000004* + ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] + + pci:v000010C8d00000004sv00001014sd000000BA* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001025sd00001007* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd00000074* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd00000075* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd0000007D* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001028sd0000007E* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv00001033sd0000802F* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv0000104Dsd0000801B* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv0000104Dsd0000802F* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv0000104Dsd0000830B* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010BAsd00000E00* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010C8sd00000004* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010CFsd00001029* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd00008308* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd00008309* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd0000830B* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd0000830D* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000004sv000010F7sd00008312* +- ID_MODEL_FROM_DATABASE=MagicGraph 128XD ++ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) + + pci:v000010C8d00000005* + ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] + + pci:v000010C8d00000005sv00001014sd000000DD* +- ID_MODEL_FROM_DATABASE=ThinkPad 570 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (ThinkPad 570) + + pci:v000010C8d00000005sv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=Latitude CPi A ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (Latitude CPi A) + + pci:v000010C8d00000006* + ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] + + pci:v000010C8d00000006sv00001014sd00000152* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X ++ ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] (ThinkPad 600X) + + pci:v000010C8d00000016* + ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] + + pci:v000010C8d00000016sv000010C8sd00000016* +- ID_MODEL_FROM_DATABASE=MagicMedia 256XL+ ++ ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] (MagicMedia 256XL+) + + pci:v000010C8d00000025* + ID_MODEL_FROM_DATABASE=NM2230 [MagicGraph 256AV+] +@@ -20343,40 +20343,40 @@ pci:v000010C8d00008005* + ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] + + pci:v000010C8d00008005sv00000E11sd0000B0D1* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Discovery ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Discovery) + + pci:v000010C8d00008005sv00000E11sd0000B126* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Durango ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Durango) + + pci:v000010C8d00008005sv00001014sd000000DD* +- ID_MODEL_FROM_DATABASE=ThinkPad 390/i1720/i1721 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (ThinkPad 390/i1720/i1721) + + pci:v000010C8d00008005sv00001025sd00001003* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on TravelMate 720 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on TravelMate 720) + + pci:v000010C8d00008005sv00001028sd00000088* +- ID_MODEL_FROM_DATABASE=Latitude CPi A ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (Latitude CPi A) + + pci:v000010C8d00008005sv00001028sd0000008F* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Colorado Inspiron ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Colorado Inspiron) + + pci:v000010C8d00008005sv0000103Csd00000007* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager II ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager II) + + pci:v000010C8d00008005sv0000103Csd00000008* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager III ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager III) + + pci:v000010C8d00008005sv0000103Csd0000000D* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Omnibook 900 ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Omnibook 900) + + pci:v000010C8d00008005sv000010C8sd00008005* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on FireAnt ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on FireAnt) + + pci:v000010C8d00008005sv0000110Asd00008005* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) + + pci:v000010C8d00008005sv000014C0sd00000004* +- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device ++ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) + + pci:v000010C8d00008006* + ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX Audio] +@@ -20415,10 +20415,10 @@ pci:v000010CDd00001300* + ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U + + pci:v000010CDd00001300sv000010CDsd00001310* +- ID_MODEL_FROM_DATABASE=ASC1300 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (ASC1300 SCSI Adapter) + + pci:v000010CDd00001300sv00001195sd00001320* +- ID_MODEL_FROM_DATABASE=Ultra-SCSI CardBus PC Card REX CB31 ++ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (Ultra-SCSI CardBus PC Card REX CB31) + + pci:v000010CDd00002300* + ID_MODEL_FROM_DATABASE=ABP940-UW +@@ -20511,7 +20511,7 @@ pci:v000010D9d00000531* + ID_MODEL_FROM_DATABASE=MX987x5 + + pci:v000010D9d00000531sv00001186sd00001200* +- ID_MODEL_FROM_DATABASE=DFE-540TX ProFAST 10/100 Adapter ++ ID_MODEL_FROM_DATABASE=MX987x5 (DFE-540TX ProFAST 10/100 Adapter) + + pci:v000010D9d00008625* + ID_MODEL_FROM_DATABASE=MX86250 +@@ -20559,7 +20559,7 @@ pci:v000010DDd00000100* + ID_MODEL_FROM_DATABASE=Lightning 1200 + + pci:v000010DDd00000100sv000010DDsd00000023* +- ID_MODEL_FROM_DATABASE=Lightning 1200 15+16M ++ ID_MODEL_FROM_DATABASE=Lightning 1200 (15+16M) + + pci:v000010DE* + ID_VENDOR_FROM_DATABASE=NVIDIA Corporation +@@ -20574,193 +20574,193 @@ pci:v000010DEd00000020* + ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] + + pci:v000010DEd00000020sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=V3400 TNT ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (V3400 TNT) + + pci:v000010DEd00000020sv00001048sd00000C18* +- ID_MODEL_FROM_DATABASE=Erazor II SGRAM ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II SGRAM) + + pci:v000010DEd00000020sv00001048sd00000C19* +- ID_MODEL_FROM_DATABASE=Erazor II ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) + + pci:v000010DEd00000020sv00001048sd00000C1B* +- ID_MODEL_FROM_DATABASE=Erazor II ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) + + pci:v000010DEd00000020sv00001048sd00000C1C* +- ID_MODEL_FROM_DATABASE=Erazor II ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) + + pci:v000010DEd00000020sv00001092sd00000550* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00000552* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004804* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004808* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004810* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004812* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004815* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004820* +- ID_MODEL_FROM_DATABASE=Viper V550 with TV out ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550 with TV out) + + pci:v000010DEd00000020sv00001092sd00004822* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004904* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00004914* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv00001092sd00008225* +- ID_MODEL_FROM_DATABASE=Viper V550 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) + + pci:v000010DEd00000020sv000010B4sd0000273D* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) + + pci:v000010DEd00000020sv000010B4sd0000273E* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) + + pci:v000010DEd00000020sv000010B4sd00002740* +- ID_MODEL_FROM_DATABASE=Velocity 4400 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) + + pci:v000010DEd00000020sv000010DEsd00000020* +- ID_MODEL_FROM_DATABASE=Riva TNT ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Riva TNT) + + pci:v000010DEd00000020sv00001102sd00001015* +- ID_MODEL_FROM_DATABASE=Graphics Blaster CT6710 ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster CT6710) + + pci:v000010DEd00000020sv00001102sd00001016* +- ID_MODEL_FROM_DATABASE=Graphics Blaster RIVA TNT ++ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster RIVA TNT) + + pci:v000010DEd00000028* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] + + pci:v000010DEd00000028sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800 SGRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SGRAM) + + pci:v000010DEd00000028sv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800 SDRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SDRAM) + + pci:v000010DEd00000028sv00001043sd00000205* +- ID_MODEL_FROM_DATABASE=PCI-V3800 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (PCI-V3800) + + pci:v000010DEd00000028sv00001043sd00004000* +- ID_MODEL_FROM_DATABASE=AGP-V3800PRO ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800PRO) + + pci:v000010DEd00000028sv00001048sd00000C21* +- ID_MODEL_FROM_DATABASE=Synergy II ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Synergy II) + + pci:v000010DEd00000028sv00001048sd00000C28* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C29* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C2A* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C2B* +- ID_MODEL_FROM_DATABASE=Erazor III ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) + + pci:v000010DEd00000028sv00001048sd00000C31* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv00001048sd00000C32* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv00001048sd00000C33* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv00001048sd00000C34* +- ID_MODEL_FROM_DATABASE=Erazor III Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) + + pci:v000010DEd00000028sv0000107Dsd00002134* +- ID_MODEL_FROM_DATABASE=WinFast 3D S320 II + TV-Out ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (WinFast 3D S320 II + TV-Out) + + pci:v000010DEd00000028sv00001092sd00004804* +- ID_MODEL_FROM_DATABASE=Viper V770 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) + + pci:v000010DEd00000028sv00001092sd00004A00* +- ID_MODEL_FROM_DATABASE=Viper V770 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) + + pci:v000010DEd00000028sv00001092sd00004A02* +- ID_MODEL_FROM_DATABASE=Viper V770 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) + + pci:v000010DEd00000028sv00001092sd00005A00* +- ID_MODEL_FROM_DATABASE=RIVA TNT2/TNT2 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2/TNT2 Pro) + + pci:v000010DEd00000028sv00001092sd00005A40* +- ID_MODEL_FROM_DATABASE=Viper V770D AGP ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770D AGP) + + pci:v000010DEd00000028sv00001092sd00006A02* +- ID_MODEL_FROM_DATABASE=Viper V770 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) + + pci:v000010DEd00000028sv00001092sd00007A02* +- ID_MODEL_FROM_DATABASE=Viper V770 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) + + pci:v000010DEd00000028sv000010DEsd00000005* +- ID_MODEL_FROM_DATABASE=RIVA TNT2 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2 Pro) + + pci:v000010DEd00000028sv000010DEsd0000000F* +- ID_MODEL_FROM_DATABASE=Compaq NVIDIA TNT2 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Compaq NVIDIA TNT2 Pro) + + pci:v000010DEd00000028sv00001102sd00001020* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2) + + pci:v000010DEd00000028sv00001102sd00001026* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Digital ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2 Digital) + + pci:v000010DEd00000028sv00001462sd00008806* +- ID_MODEL_FROM_DATABASE=MS-8806 AGPhantom Graphics Card ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (MS-8806 AGPhantom Graphics Card) + + pci:v000010DEd00000028sv000014AFsd00005810* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Maxi Gamer Xentor) + + pci:v000010DEd00000029* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] + + pci:v000010DEd00000029sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Deluxe ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Deluxe) + + pci:v000010DEd00000029sv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Ultra SDRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Ultra SDRAM) + + pci:v000010DEd00000029sv00001043sd00000205* +- ID_MODEL_FROM_DATABASE=PCI-V3800 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (PCI-V3800 Ultra) + + pci:v000010DEd00000029sv00001048sd00000C2E* +- ID_MODEL_FROM_DATABASE=Erazor III Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) + + pci:v000010DEd00000029sv00001048sd00000C2F* +- ID_MODEL_FROM_DATABASE=Erazor III Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) + + pci:v000010DEd00000029sv00001048sd00000C30* +- ID_MODEL_FROM_DATABASE=Erazor III Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) + + pci:v000010DEd00000029sv00001102sd00001021* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) + + pci:v000010DEd00000029sv00001102sd00001029* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) + + pci:v000010DEd00000029sv00001102sd0000102F* +- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) + + pci:v000010DEd00000029sv000014AFsd00005820* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor 32 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Maxi Gamer Xentor 32) + + pci:v000010DEd00000029sv00004843sd00004F34* +- ID_MODEL_FROM_DATABASE=Dynamite ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Dynamite) + + pci:v000010DEd0000002A* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2] +@@ -20772,85 +20772,85 @@ pci:v000010DEd0000002C* + ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] + + pci:v000010DEd0000002Csv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat SDRAM ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat SDRAM) + + pci:v000010DEd0000002Csv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat) + + pci:v000010DEd0000002Csv00001048sd00000C20* +- ID_MODEL_FROM_DATABASE=TNT2 Vanta ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) + + pci:v000010DEd0000002Csv00001048sd00000C21* +- ID_MODEL_FROM_DATABASE=TNT2 Vanta ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) + + pci:v000010DEd0000002Csv00001048sd00000C25* +- ID_MODEL_FROM_DATABASE=TNT2 Vanta 16MB ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta 16MB) + + pci:v000010DEd0000002Csv00001092sd00006820* +- ID_MODEL_FROM_DATABASE=Viper V730 ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Viper V730) + + pci:v000010DEd0000002Csv00001102sd00001031* +- ID_MODEL_FROM_DATABASE=CT6938 VANTA 8MB ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6938 VANTA 8MB) + + pci:v000010DEd0000002Csv00001102sd00001034* +- ID_MODEL_FROM_DATABASE=CT6894 VANTA 16MB ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6894 VANTA 16MB) + + pci:v000010DEd0000002Csv000014AFsd00005008* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix 2 ++ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Maxi Gamer Phoenix 2) + + pci:v000010DEd0000002D* + ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] + + pci:v000010DEd0000002Dsv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V3800M ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) + + pci:v000010DEd0000002Dsv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V3800M ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) + + pci:v000010DEd0000002Dsv00001048sd00000C3A* +- ID_MODEL_FROM_DATABASE=Erazor III LT ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) + + pci:v000010DEd0000002Dsv00001048sd00000C3B* +- ID_MODEL_FROM_DATABASE=Erazor III LT ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) + + pci:v000010DEd0000002Dsv0000107Dsd00002137* +- ID_MODEL_FROM_DATABASE=WinFast 3D S325 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (WinFast 3D S325) + + pci:v000010DEd0000002Dsv000010DEsd00000006* +- ID_MODEL_FROM_DATABASE=RIVA TNT2 Model 64/Model 64 Pro ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (RIVA TNT2 Model 64/Model 64 Pro) + + pci:v000010DEd0000002Dsv000010DEsd0000001E* +- ID_MODEL_FROM_DATABASE=M64 AGP4x ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (M64 AGP4x) + + pci:v000010DEd0000002Dsv00001102sd00001023* +- ID_MODEL_FROM_DATABASE=CT6892 RIVA TNT2 Value ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6892 RIVA TNT2 Value) + + pci:v000010DEd0000002Dsv00001102sd00001024* +- ID_MODEL_FROM_DATABASE=CT6932 RIVA TNT2 Value 32Mb ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6932 RIVA TNT2 Value 32Mb) + + pci:v000010DEd0000002Dsv00001102sd0000102C* +- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value [Jumper] ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value [Jumper]) + + pci:v000010DEd0000002Dsv00001102sd00001030* +- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value) + + pci:v000010DEd0000002Dsv0000110Asd0000006F* +- ID_MODEL_FROM_DATABASE=GM1000-16 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) + + pci:v000010DEd0000002Dsv0000110Asd00000081* +- ID_MODEL_FROM_DATABASE=GM1000-16 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) + + pci:v000010DEd0000002Dsv00001462sd00008808* +- ID_MODEL_FROM_DATABASE=MSI-8808 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (MSI-8808) + + pci:v000010DEd0000002Dsv000014AFsd00005620* +- ID_MODEL_FROM_DATABASE=Gamer Cougar Video Edition ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Gamer Cougar Video Edition) + + pci:v000010DEd0000002Dsv00001554sd00001041* +- ID_MODEL_FROM_DATABASE=Pixelview RIVA TNT2 M64 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Pixelview RIVA TNT2 M64) + + pci:v000010DEd0000002Dsv00001569sd0000002D* +- ID_MODEL_FROM_DATABASE=Palit Microsystems Daytona TNT2 M64 ++ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Palit Microsystems Daytona TNT2 M64) + + pci:v000010DEd00000034* + ID_MODEL_FROM_DATABASE=MCP04 SMBus +@@ -20889,19 +20889,19 @@ pci:v000010DEd00000041* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] + + pci:v000010DEd00000041sv00001043sd0000817B* +- ID_MODEL_FROM_DATABASE=V9999 Gamer Edition ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (V9999 Gamer Edition) + + pci:v000010DEd00000041sv0000107Dsd00002992* +- ID_MODEL_FROM_DATABASE=WinFast A400 ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (WinFast A400) + + pci:v000010DEd00000041sv00001458sd0000310F* +- ID_MODEL_FROM_DATABASE=Geforce 6800 GV-N6812 ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (Geforce 6800 GV-N6812) + + pci:v000010DEd00000042* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] + + pci:v000010DEd00000042sv0000107Dsd0000299B* +- ID_MODEL_FROM_DATABASE=WinFast A400 LE ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] (WinFast A400 LE) + + pci:v000010DEd00000043* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XE] +@@ -20913,16 +20913,16 @@ pci:v000010DEd00000045* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] + + pci:v000010DEd00000045sv00001043sd0000817D* +- ID_MODEL_FROM_DATABASE=V9999GT ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (V9999GT) + + pci:v000010DEd00000045sv00001458sd00003140* +- ID_MODEL_FROM_DATABASE=GV-N68T256D ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (GV-N68T256D) + + pci:v000010DEd00000047* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] + + pci:v000010DEd00000047sv00001682sd00002109* +- ID_MODEL_FROM_DATABASE=GeForce 6800 GS ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] (GeForce 6800 GS) + + pci:v000010DEd00000048* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XT] +@@ -20934,133 +20934,133 @@ pci:v000010DEd00000050* + ID_MODEL_FROM_DATABASE=CK804 ISA Bridge + + pci:v000010DEd00000050sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000050sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (Tomcat K8E (S2865)) + + pci:v000010DEd00000050sv00001458sd00000C11* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000050sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (MSI K8N Diamond) + + pci:v000010DEd00000050sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N Neo4-F mainboard) + + pci:v000010DEd00000050sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (KN8-Ultra Mainboard) + + pci:v000010DEd00000050sv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (NF4 AM2L Mainboard) + + pci:v000010DEd00000051* + ID_MODEL_FROM_DATABASE=CK804 ISA Bridge + + pci:v000010DEd00000051sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 ISA Bridge ++ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (PowerEdge T105 ISA Bridge) + + pci:v000010DEd00000052* + ID_MODEL_FROM_DATABASE=CK804 SMBus + + pci:v000010DEd00000052sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 SMBus ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (PowerEdge T105 SMBus) + + pci:v000010DEd00000052sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000052sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (Tomcat K8E (S2865)) + + pci:v000010DEd00000052sv00001458sd00000C11* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000052sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (MSI K8N Diamond) + + pci:v000010DEd00000052sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N Neo4-F mainboard) + + pci:v000010DEd00000052sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (KN8-Ultra Mainboard) + + pci:v000010DEd00000052sv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 SMBus (NF4 AM2L Mainboard) + + pci:v000010DEd00000053* + ID_MODEL_FROM_DATABASE=CK804 IDE + + pci:v000010DEd00000053sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000053sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 IDE (Tomcat K8E (S2865)) + + pci:v000010DEd00000053sv00001458sd00005002* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000053sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 IDE (MSI K8N Diamond) + + pci:v000010DEd00000053sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N Neo4-F mainboard) + + pci:v000010DEd00000053sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (KN8-Ultra Mainboard) + + pci:v000010DEd00000053sv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 IDE (NF4 AM2L Mainboard) + + pci:v000010DEd00000054* + ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller + + pci:v000010DEd00000054sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) + + pci:v000010DEd00000054sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (A8N Series Mainboard) + + pci:v000010DEd00000054sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000054sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000054sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (MSI K8N Diamond) + + pci:v000010DEd00000054sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000054sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000054sv00001565sd00005401* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) + + pci:v000010DEd00000055* + ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller + + pci:v000010DEd00000055sv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) + + pci:v000010DEd00000055sv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000055sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000055sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000055sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000055sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000055sv00001565sd00005401* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) + + pci:v000010DEd00000056* + ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller +@@ -21069,28 +21069,28 @@ pci:v000010DEd00000057* + ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller + + pci:v000010DEd00000057sv00001043sd00008141* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000057sv000010DEsd0000CB84* +- ID_MODEL_FROM_DATABASE=NF4 Lanparty ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 Lanparty) + + pci:v000010DEd00000057sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000057sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd00000057sv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (MSI K8N Diamond) + + pci:v000010DEd00000057sv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000057sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000057sv00001565sd00002501* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 AM2L Mainboard) + + pci:v000010DEd00000058* + ID_MODEL_FROM_DATABASE=CK804 AC'97 Modem +@@ -21099,73 +21099,73 @@ pci:v000010DEd00000059* + ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller + + pci:v000010DEd00000059sv00001043sd0000812A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd00000059sv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (Tomcat K8E (S2865)) + + pci:v000010DEd00000059sv00001462sd00007585* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N Neo4-F mainboard) + + pci:v000010DEd00000059sv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (KN8-Ultra Mainboard) + + pci:v000010DEd00000059sv00001565sd00008211* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005A* + ID_MODEL_FROM_DATABASE=CK804 USB Controller + + pci:v000010DEd0000005Asv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) + + pci:v000010DEd0000005Asv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd0000005Asv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) + + pci:v000010DEd0000005Asv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd0000005Asv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) + + pci:v000010DEd0000005Asv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) + + pci:v000010DEd0000005Asv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) + + pci:v000010DEd0000005Asv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005B* + ID_MODEL_FROM_DATABASE=CK804 USB Controller + + pci:v000010DEd0000005Bsv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) + + pci:v000010DEd0000005Bsv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) + + pci:v000010DEd0000005Bsv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) + + pci:v000010DEd0000005Bsv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd0000005Bsv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=MSI K8N Diamond ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) + + pci:v000010DEd0000005Bsv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) + + pci:v000010DEd0000005Bsv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) + + pci:v000010DEd0000005Bsv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005C* + ID_MODEL_FROM_DATABASE=CK804 PCI Bridge +@@ -21177,34 +21177,34 @@ pci:v000010DEd0000005E* + ID_MODEL_FROM_DATABASE=CK804 Memory Controller + + pci:v000010DEd0000005Esv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Memory Controller ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (PowerEdge T105 Memory Controller) + + pci:v000010DEd0000005Esv00001043sd0000815A* +- ID_MODEL_FROM_DATABASE=A8N Series Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (A8N Series Mainboard) + + pci:v000010DEd0000005Esv000010DEsd0000005E* +- ID_MODEL_FROM_DATABASE=ECS Elitegroup NFORCE3-A939 motherboard. ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (ECS Elitegroup NFORCE3-A939 motherboard.) + + pci:v000010DEd0000005Esv000010F1sd00002865* +- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Tomcat K8E (S2865)) + + pci:v000010DEd0000005Esv000010F1sd00002891* +- ID_MODEL_FROM_DATABASE=Thunder K8SRE Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Thunder K8SRE Mainboard) + + pci:v000010DEd0000005Esv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (GA-K8N Ultra-9 Mainboard) + + pci:v000010DEd0000005Esv00001462sd00007100* +- ID_MODEL_FROM_DATABASE=K8N Diamond Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Diamond Mainboard) + + pci:v000010DEd0000005Esv00001462sd00007125* +- ID_MODEL_FROM_DATABASE=K8N Neo4-F Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Neo4-F Mainboard) + + pci:v000010DEd0000005Esv0000147Bsd00001C1A* +- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (KN8-Ultra Mainboard) + + pci:v000010DEd0000005Esv00001565sd00003402* +- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard ++ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (NF4 AM2L Mainboard) + + pci:v000010DEd0000005F* + ID_MODEL_FROM_DATABASE=CK804 Memory Controller +@@ -21213,61 +21213,61 @@ pci:v000010DEd00000060* + ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge + + pci:v000010DEd00000060sv00001043sd000080AD* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard ++ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (A7N8X Mainboard) + + pci:v000010DEd00000060sv0000147Bsd00001C02* +- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X ++ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (NF7-S/NF7 (nVidia-nForce2) 2.X) + + pci:v000010DEd00000060sv0000A0A0sd000003BA* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (UK79G-1394 motherboard) + + pci:v000010DEd00000064* + ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) + + pci:v000010DEd00000064sv0000147Bsd00001C02* +- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X ++ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (NF7-S/NF7 (nVidia-nForce2) 2.X) + + pci:v000010DEd00000064sv0000A0A0sd000003BB* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (UK79G-1394 motherboard) + + pci:v000010DEd00000065* + ID_MODEL_FROM_DATABASE=nForce2 IDE + + pci:v000010DEd00000065sv000010DEsd00000C11* +- ID_MODEL_FROM_DATABASE=nForce 2 EIDE Controller ++ ID_MODEL_FROM_DATABASE=nForce2 IDE (nForce 2 EIDE Controller) + + pci:v000010DEd00000065sv0000A0A0sd000003B2* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 IDE (UK79G-1394 motherboard) + + pci:v000010DEd00000066* + ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller + + pci:v000010DEd00000066sv00001043sd000080A7* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard onboard nForce2 Ethernet ++ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (A7N8X Mainboard onboard nForce2 Ethernet) + + pci:v000010DEd00000066sv000010DEsd00000C11* +- ID_MODEL_FROM_DATABASE=nForce MCP-T Networking Adapter ++ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (nForce MCP-T Networking Adapter) + + pci:v000010DEd00000066sv0000A0A0sd000003B3* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (UK79G-1394 motherboard) + + pci:v000010DEd00000067* + ID_MODEL_FROM_DATABASE=nForce2 USB Controller + + pci:v000010DEd00000067sv00001043sd00000C11* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) + + pci:v000010DEd00000067sv0000A0A0sd000003B4* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) + + pci:v000010DEd00000068* + ID_MODEL_FROM_DATABASE=nForce2 USB Controller + + pci:v000010DEd00000068sv00001043sd00000C11* +- ID_MODEL_FROM_DATABASE=A7N8X Mainboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) + + pci:v000010DEd00000068sv0000A0A0sd000003B4* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) + + pci:v000010DEd0000006A* + ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) +@@ -21276,16 +21276,16 @@ pci:v000010DEd0000006Asv00001043sd00008095* + ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) + + pci:v000010DEd0000006Asv0000A0A0sd00000304* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) (UK79G-1394 motherboard) + + pci:v000010DEd0000006B* + ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit + + pci:v000010DEd0000006Bsv000010DEsd0000006B* +- ID_MODEL_FROM_DATABASE=nForce2 MCP Audio Processing Unit ++ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (nForce2 MCP Audio Processing Unit) + + pci:v000010DEd0000006Bsv0000A0A0sd00000304* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (UK79G-1394 motherboard) + + pci:v000010DEd0000006C* + ID_MODEL_FROM_DATABASE=nForce2 External PCI Bridge +@@ -21297,25 +21297,25 @@ pci:v000010DEd0000006E* + ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller + + pci:v000010DEd0000006Esv0000A0A0sd00000306* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller (UK79G-1394 motherboard) + + pci:v000010DEd00000080* + ID_MODEL_FROM_DATABASE=MCP2A ISA bridge + + pci:v000010DEd00000080sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A ISA bridge (NV7 Motherboard) + + pci:v000010DEd00000084* + ID_MODEL_FROM_DATABASE=MCP2A SMBus + + pci:v000010DEd00000084sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A SMBus (NV7 Motherboard) + + pci:v000010DEd00000085* + ID_MODEL_FROM_DATABASE=MCP2A IDE + + pci:v000010DEd00000085sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A IDE (NV7 Motherboard) + + pci:v000010DEd00000086* + ID_MODEL_FROM_DATABASE=MCP2A Ethernet Controller +@@ -21324,19 +21324,19 @@ pci:v000010DEd00000087* + ID_MODEL_FROM_DATABASE=MCP2A USB Controller + + pci:v000010DEd00000087sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) + + pci:v000010DEd00000088* + ID_MODEL_FROM_DATABASE=MCP2A USB Controller + + pci:v000010DEd00000088sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) + + pci:v000010DEd0000008A* + ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller + + pci:v000010DEd0000008Asv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller (NV7 Motherboard) + + pci:v000010DEd0000008B* + ID_MODEL_FROM_DATABASE=MCP2A PCI Bridge +@@ -21378,7 +21378,7 @@ pci:v000010DEd000000A0* + ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] + + pci:v000010DEd000000A0sv000014AFsd00005810* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor ++ ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] (Maxi Gamer Xentor) + + pci:v000010DEd000000C0* + ID_MODEL_FROM_DATABASE=NV41 [GeForce 6800 GS] +@@ -21459,46 +21459,46 @@ pci:v000010DEd000000DF* + ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller + + pci:v000010DEd000000DFsv00001043sd000080A7* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (K8N-E) + + pci:v000010DEd000000DFsv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000DFsv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (NF8 Mainboard) + + pci:v000010DEd000000E0* + ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge + + pci:v000010DEd000000E0sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N-E) + + pci:v000010DEd000000E0sv000010DEsd00000C11* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Winfast NF3250K8AA) + + pci:v000010DEd000000E0sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E0sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (NF8 Mainboard) + + pci:v000010DEd000000E0sv00001849sd000000E0* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Motherboard (one of many)) + + pci:v000010DEd000000E1* + ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge + + pci:v000010DEd000000E1sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N-E) + + pci:v000010DEd000000E1sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E1sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (NF8 Mainboard) + + pci:v000010DEd000000E1sv00001849sd000000E1* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (Motherboard (one of many)) + + pci:v000010DEd000000E2* + ID_MODEL_FROM_DATABASE=nForce3 250Gb AGP Host to PCI Bridge +@@ -21507,55 +21507,55 @@ pci:v000010DEd000000E3* + ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller + + pci:v000010DEd000000E3sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (K8N-E) + + pci:v000010DEd000000E3sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000E3sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (NF8 Mainboard) + + pci:v000010DEd000000E3sv00001849sd000000E3* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Motherboard (one of many)) + + pci:v000010DEd000000E4* + ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management + + pci:v000010DEd000000E4sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N-E) + + pci:v000010DEd000000E4sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Winfast NF3250K8AA) + + pci:v000010DEd000000E4sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E4sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (NF8 Mainboard) + + pci:v000010DEd000000E4sv00001849sd000000E4* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Motherboard (one of many)) + + pci:v000010DEd000000E5* + ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) + + pci:v000010DEd000000E5sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N-E) + + pci:v000010DEd000000E5sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Winfast NF3250K8AA) + + pci:v000010DEd000000E5sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E5sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (NF8 Mainboard) + + pci:v000010DEd000000E5sv00001849sd000000E5* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) + + pci:v000010DEd000000E5sv0000F849sd000000E5* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) + + pci:v000010DEd000000E6* + ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller +@@ -21564,52 +21564,52 @@ pci:v000010DEd000000E7* + ID_MODEL_FROM_DATABASE=CK8S USB Controller + + pci:v000010DEd000000E7sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N-E) + + pci:v000010DEd000000E7sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000E7sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E7sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (NF8 Mainboard) + + pci:v000010DEd000000E7sv00001849sd000000E7* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Motherboard (one of many)) + + pci:v000010DEd000000E8* + ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller + + pci:v000010DEd000000E8sv00001043sd0000813F* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N-E) + + pci:v000010DEd000000E8sv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000E8sv00001462sd00007030* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N Neo-FSR v2.0) + + pci:v000010DEd000000E8sv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (NF8 Mainboard) + + pci:v000010DEd000000E8sv00001849sd000000E8* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Motherboard (one of many)) + + pci:v000010DEd000000EA* + ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller + + pci:v000010DEd000000EAsv00001043sd0000819D* +- ID_MODEL_FROM_DATABASE=K8N-E ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N-E) + + pci:v000010DEd000000EAsv0000105Bsd00000C43* +- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (Winfast NF3250K8AA) + + pci:v000010DEd000000EAsv00001462sd0000B010* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N Neo-FSR v2.0) + + pci:v000010DEd000000EAsv0000147Bsd00001C0B* +- ID_MODEL_FROM_DATABASE=NF8 Mainboard ++ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (NF8 Mainboard) + + pci:v000010DEd000000ED* + ID_MODEL_FROM_DATABASE=nForce3 250Gb PCI-to-PCI Bridge +@@ -21621,28 +21621,28 @@ pci:v000010DEd000000F1* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] + + pci:v000010DEd000000F1sv00001043sd000081A6* +- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) + + pci:v000010DEd000000F1sv00001043sd000081C6* +- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) + + pci:v000010DEd000000F1sv00001458sd00003150* +- ID_MODEL_FROM_DATABASE=GV-N66T128VP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-N66T128VP) + + pci:v000010DEd000000F1sv00001554sd00001191* +- ID_MODEL_FROM_DATABASE=PixelView PV-N43UA (128KD) ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (PixelView PV-N43UA (128KD)) + + pci:v000010DEd000000F1sv00001682sd00002119* +- ID_MODEL_FROM_DATABASE=GeForce 6600 GT AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GeForce 6600 GT AGP) + + pci:v000010DEd000000F2* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] + + pci:v000010DEd000000F2sv00001554sd00001194* +- ID_MODEL_FROM_DATABASE=PixelView PV-N43AT (256KD) ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (PixelView PV-N43AT (256KD)) + + pci:v000010DEd000000F2sv00001682sd0000211C* +- ID_MODEL_FROM_DATABASE=GeForce 6600 256MB DDR DUAL DVI TV ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GeForce 6600 256MB DDR DUAL DVI TV) + + pci:v000010DEd000000F3* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6200] +@@ -21657,7 +21657,7 @@ pci:v000010DEd000000F6* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] + + pci:v000010DEd000000F6sv00001682sd0000217E* +- ID_MODEL_FROM_DATABASE=XFX GeForce 6800 XTreme 256MB DDR3 AGP ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] (XFX GeForce 6800 XTreme 256MB DDR3 AGP) + + pci:v000010DEd000000F8* + ID_MODEL_FROM_DATABASE=NV40GL [Quadro FX 3400/4400] +@@ -21666,10 +21666,10 @@ pci:v000010DEd000000F9* + ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] + + pci:v000010DEd000000F9sv000010DEsd000000F9* +- ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (NV40 [GeForce 6800 GT]) + + pci:v000010DEd000000F9sv00001682sd00002120* +- ID_MODEL_FROM_DATABASE=GEFORCE 6800 GT PCI-E ++ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (GEFORCE 6800 GT PCI-E) + + pci:v000010DEd000000FA* + ID_MODEL_FROM_DATABASE=NV36 [GeForce PCX 5750] +@@ -21693,130 +21693,130 @@ pci:v000010DEd00000100* + ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] + + pci:v000010DEd00000100sv00001043sd00000200* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) + + pci:v000010DEd00000100sv00001043sd00000201* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) + + pci:v000010DEd00000100sv00001043sd00004008* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) + + pci:v000010DEd00000100sv00001043sd00004009* +- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) + + pci:v000010DEd00000100sv00001048sd00000C41* +- ID_MODEL_FROM_DATABASE=Erazor X ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Erazor X) + + pci:v000010DEd00000100sv00001048sd00000C43* +- ID_MODEL_FROM_DATABASE=ERAZOR X PCI ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (ERAZOR X PCI) + + pci:v000010DEd00000100sv00001048sd00000C48* +- ID_MODEL_FROM_DATABASE=Synergy Force ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Synergy Force) + + pci:v000010DEd00000100sv00001102sd0000102D* +- ID_MODEL_FROM_DATABASE=CT6941 GeForce 256 ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (CT6941 GeForce 256) + + pci:v000010DEd00000100sv000014AFsd00005022* +- ID_MODEL_FROM_DATABASE=3D Prophet SE ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (3D Prophet SE) + + pci:v000010DEd00000101* + ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] + + pci:v000010DEd00000101sv00001043sd00000202* +- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR) + + pci:v000010DEd00000101sv00001043sd0000400A* +- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SGRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SGRAM) + + pci:v000010DEd00000101sv00001043sd0000400B* +- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SDRAM ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SDRAM) + + pci:v000010DEd00000101sv00001048sd00000C42* +- ID_MODEL_FROM_DATABASE=Erazor X ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (Erazor X) + + pci:v000010DEd00000101sv0000107Dsd00002822* +- ID_MODEL_FROM_DATABASE=WinFast GeForce 256 ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (WinFast GeForce 256) + + pci:v000010DEd00000101sv00001102sd0000102E* +- ID_MODEL_FROM_DATABASE=CT6970/CT6971 ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (CT6970/CT6971) + + pci:v000010DEd00000101sv000014AFsd00005021* +- ID_MODEL_FROM_DATABASE=3D Prophet DDR-DVI ++ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (3D Prophet DDR-DVI) + + pci:v000010DEd00000103* + ID_MODEL_FROM_DATABASE=NV10GL [Quadro] + + pci:v000010DEd00000103sv00001048sd00000C40* +- ID_MODEL_FROM_DATABASE=GLoria II-64 ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64) + + pci:v000010DEd00000103sv00001048sd00000C44* +- ID_MODEL_FROM_DATABASE=GLoria II ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) + + pci:v000010DEd00000103sv00001048sd00000C45* +- ID_MODEL_FROM_DATABASE=GLoria II ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) + + pci:v000010DEd00000103sv00001048sd00000C4A* +- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro) + + pci:v000010DEd00000103sv00001048sd00000C4B* +- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro DVII ++ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro DVII) + + pci:v000010DEd00000110* + ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] + + pci:v000010DEd00000110sv00001043sd00004015* +- ID_MODEL_FROM_DATABASE=AGP-V7100 Pro ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (AGP-V7100 Pro) + + pci:v000010DEd00000110sv00001043sd00004021* +- ID_MODEL_FROM_DATABASE=V7100 Deluxe Combo ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Deluxe Combo) + + pci:v000010DEd00000110sv00001043sd00004031* +- ID_MODEL_FROM_DATABASE=V7100 Pro with TV output ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Pro with TV output) + + pci:v000010DEd00000110sv00001048sd00000C60* +- ID_MODEL_FROM_DATABASE=Gladiac MX ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac MX) + + pci:v000010DEd00000110sv00001048sd00000C61* +- ID_MODEL_FROM_DATABASE=Gladiac 511PCI ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511PCI) + + pci:v000010DEd00000110sv00001048sd00000C63* +- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 32MB ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 32MB) + + pci:v000010DEd00000110sv00001048sd00000C64* +- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 64MB ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 64MB) + + pci:v000010DEd00000110sv00001048sd00000C65* +- ID_MODEL_FROM_DATABASE=Gladiac 511TWIN ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TWIN) + + pci:v000010DEd00000110sv00001048sd00000C66* +- ID_MODEL_FROM_DATABASE=Gladiac 311 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 311) + + pci:v000010DEd00000110sv000010B0sd00000001* +- ID_MODEL_FROM_DATABASE=GeForce2 MX Jumbo TV ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (GeForce2 MX Jumbo TV) + + pci:v000010DEd00000110sv000010DEsd00000091* +- ID_MODEL_FROM_DATABASE=Dell OEM GeForce 2 MX 400 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Dell OEM GeForce 2 MX 400) + + pci:v000010DEd00000110sv000010DEsd000000A1* +- ID_MODEL_FROM_DATABASE=Apple OEM GeForce2 MX ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Apple OEM GeForce2 MX) + + pci:v000010DEd00000110sv00001462sd00008523* +- ID_MODEL_FROM_DATABASE=MS-8852 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MS-8852) + + pci:v000010DEd00000110sv00001462sd00008817* +- ID_MODEL_FROM_DATABASE=MSI GeForce2 MX400 Pro32S [MS-8817] ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MSI GeForce2 MX400 Pro32S [MS-8817]) + + pci:v000010DEd00000110sv000014AFsd00007102* +- ID_MODEL_FROM_DATABASE=3D Prophet II MX ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX) + + pci:v000010DEd00000110sv000014AFsd00007103* +- ID_MODEL_FROM_DATABASE=3D Prophet II MX Dual-Display ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX Dual-Display) + + pci:v000010DEd00000110sv00001545sd00000023* +- ID_MODEL_FROM_DATABASE=Xtasy Rev. B2 ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Xtasy Rev. B2) + + pci:v000010DEd00000110sv00001554sd00001081* +- ID_MODEL_FROM_DATABASE=MVGA-NVG11AM(400) ++ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MVGA-NVG11AM(400)) + + pci:v000010DEd00000111* + ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX200] +@@ -21831,28 +21831,28 @@ pci:v000010DEd00000140* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] + + pci:v000010DEd00000140sv00001458sd00003125* +- ID_MODEL_FROM_DATABASE=GV-NX66T128D ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T128D) + + pci:v000010DEd00000140sv00001458sd00003126* +- ID_MODEL_FROM_DATABASE=GV-NX66T256DE ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T256DE) + + pci:v000010DEd00000140sv00001462sd00008939* +- ID_MODEL_FROM_DATABASE=MS-8983 ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (MS-8983) + + pci:v000010DEd00000141* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] + + pci:v000010DEd00000141sv00001043sd000081B0* +- ID_MODEL_FROM_DATABASE=EN6600 Silencer ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (EN6600 Silencer) + + pci:v000010DEd00000141sv0000107Dsd0000593A* +- ID_MODEL_FROM_DATABASE=LR2A22 128MB TV OUT ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (LR2A22 128MB TV OUT) + + pci:v000010DEd00000141sv0000107Dsd0000597B* +- ID_MODEL_FROM_DATABASE=WINFAST PX6600 ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (WINFAST PX6600) + + pci:v000010DEd00000141sv00001458sd00003124* +- ID_MODEL_FROM_DATABASE=GV-NX66128DP Turbo Force Edition ++ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GV-NX66128DP Turbo Force Edition) + + pci:v000010DEd00000142* + ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 LE] +@@ -21897,49 +21897,49 @@ pci:v000010DEd00000150* + ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] + + pci:v000010DEd00000150sv00001043sd00004016* +- ID_MODEL_FROM_DATABASE=V7700 AGP Video Card ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (V7700 AGP Video Card) + + pci:v000010DEd00000150sv00001043sd0000402A* +- ID_MODEL_FROM_DATABASE=AGP-V7700 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (AGP-V7700) + + pci:v000010DEd00000150sv00001048sd00000C50* +- ID_MODEL_FROM_DATABASE=Gladiac ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac) + + pci:v000010DEd00000150sv00001048sd00000C52* +- ID_MODEL_FROM_DATABASE=Gladiac-64 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac-64) + + pci:v000010DEd00000150sv0000107Dsd00002840* +- ID_MODEL_FROM_DATABASE=WinFast GeForce2 GTS with TV output ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce2 GTS with TV output) + + pci:v000010DEd00000150sv0000107Dsd00002842* +- ID_MODEL_FROM_DATABASE=WinFast GeForce 2 Pro ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce 2 Pro) + + pci:v000010DEd00000150sv000010DEsd0000002E* +- ID_MODEL_FROM_DATABASE=GeForce2 GTS ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (GeForce2 GTS) + + pci:v000010DEd00000150sv00001462sd0000815A* +- ID_MODEL_FROM_DATABASE=MS-8815 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (MS-8815) + + pci:v000010DEd00000150sv00001462sd00008831* +- ID_MODEL_FROM_DATABASE=Creative GeForce2 Pro ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Creative GeForce2 Pro) + + pci:v000010DEd00000151* + ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] + + pci:v000010DEd00000151sv00001043sd0000405F* +- ID_MODEL_FROM_DATABASE=V7700Ti ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (V7700Ti) + + pci:v000010DEd00000151sv00001462sd00005506* +- ID_MODEL_FROM_DATABASE=Creative 3D Blaster GeForce2 Titanium ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (Creative 3D Blaster GeForce2 Titanium) + + pci:v000010DEd00000151sv00001462sd00008364* +- ID_MODEL_FROM_DATABASE=MS-8836 ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (MS-8836) + + pci:v000010DEd00000152* + ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] + + pci:v000010DEd00000152sv00001048sd00000C56* +- ID_MODEL_FROM_DATABASE=GLADIAC Ultra ++ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] (GLADIAC Ultra) + + pci:v000010DEd00000153* + ID_MODEL_FROM_DATABASE=NV15GL [Quadro2 Pro] +@@ -21990,40 +21990,40 @@ pci:v000010DEd00000170* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] + + pci:v000010DEd00000170sv00001462sd00008630* +- ID_MODEL_FROM_DATABASE=MS-8863 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] (MS-8863) + + pci:v000010DEd00000171* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] + + pci:v000010DEd00000171sv000010B0sd00000002* +- ID_MODEL_FROM_DATABASE=Gainward Pro/600 TV ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Gainward Pro/600 TV) + + pci:v000010DEd00000171sv000010DEsd00000008* +- ID_MODEL_FROM_DATABASE=Apple OEM GeForce4 MX 440 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Apple OEM GeForce4 MX 440) + + pci:v000010DEd00000171sv00001462sd00008661* +- ID_MODEL_FROM_DATABASE=G4MX440-VTP ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (G4MX440-VTP) + + pci:v000010DEd00000171sv00001462sd00008730* +- ID_MODEL_FROM_DATABASE=MX440SES-T (MS-8873) ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MX440SES-T (MS-8873)) + + pci:v000010DEd00000171sv00001462sd00008743* +- ID_MODEL_FROM_DATABASE=MS-8874 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MS-8874) + + pci:v000010DEd00000171sv00001462sd00008852* +- ID_MODEL_FROM_DATABASE=GeForce4 MX440 PCI ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (GeForce4 MX440 PCI) + + pci:v000010DEd00000171sv0000147Bsd00008F00* +- ID_MODEL_FROM_DATABASE=Abit Siluro GeForce4MX440 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Abit Siluro GeForce4MX440) + + pci:v000010DEd00000172* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] + + pci:v000010DEd00000172sv00001462sd00008730* +- ID_MODEL_FROM_DATABASE=MS-8873 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8873) + + pci:v000010DEd00000172sv00001462sd00008784* +- ID_MODEL_FROM_DATABASE=MS-8878 ++ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8878) + + pci:v000010DEd00000173* + ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440-SE] +@@ -22038,13 +22038,13 @@ pci:v000010DEd00000176* + ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] + + pci:v000010DEd00000176sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (tc1100 tablet) + + pci:v000010DEd00000176sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (X10 Laptop) + + pci:v000010DEd00000176sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (Cx9 / Vx9 mainboard) + + pci:v000010DEd00000177* + ID_MODEL_FROM_DATABASE=NV17M [GeForce4 460 Go] +@@ -22056,7 +22056,7 @@ pci:v000010DEd00000179* + ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] + + pci:v000010DEd00000179sv000010DEsd00000179* +- ID_MODEL_FROM_DATABASE=GeForce4 MX (Mac) ++ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] (GeForce4 MX (Mac)) + + pci:v000010DEd0000017A* + ID_MODEL_FROM_DATABASE=NV17GL [Quadro NVS] +@@ -22074,25 +22074,25 @@ pci:v000010DEd00000181* + ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] + + pci:v000010DEd00000181sv00001043sd00008063* +- ID_MODEL_FROM_DATABASE=GeForce4 MX 440 AGP 8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (GeForce4 MX 440 AGP 8X) + + pci:v000010DEd00000181sv00001043sd0000806F* +- ID_MODEL_FROM_DATABASE=V9180 Magic ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (V9180 Magic) + + pci:v000010DEd00000181sv00001462sd00008880* +- ID_MODEL_FROM_DATABASE=MS-StarForce GeForce4 MX 440 with AGP8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-StarForce GeForce4 MX 440 with AGP8X) + + pci:v000010DEd00000181sv00001462sd00008900* +- ID_MODEL_FROM_DATABASE=MS-8890 GeForce 4 MX440 AGP8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-8890 GeForce 4 MX440 AGP8X) + + pci:v000010DEd00000181sv00001462sd00009350* +- ID_MODEL_FROM_DATABASE=MSI GeForce4 MX T8X with AGP8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MSI GeForce4 MX T8X with AGP8X) + + pci:v000010DEd00000181sv0000147Bsd00008F0D* +- ID_MODEL_FROM_DATABASE=Siluro GF4 MX-8X ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (Siluro GF4 MX-8X) + + pci:v000010DEd00000181sv00001554sd00001111* +- ID_MODEL_FROM_DATABASE=PixelView MVGA-NVG18A ++ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (PixelView MVGA-NVG18A) + + pci:v000010DEd00000182* + ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440SE AGP 8x] +@@ -22146,7 +22146,7 @@ pci:v000010DEd00000193* + ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] + + pci:v000010DEd00000193sv0000107Dsd000020BD* +- ID_MODEL_FROM_DATABASE=WinFast PX 8800 GTS TDH ++ ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] (WinFast PX 8800 GTS TDH) + + pci:v000010DEd00000194* + ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 Ultra] +@@ -22212,13 +22212,13 @@ pci:v000010DEd000001D1* + ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] + + pci:v000010DEd000001D1sv0000107Dsd00005EFA* +- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD128 ++ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD128) + + pci:v000010DEd000001D1sv0000107Dsd00005EFB* +- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD256 ++ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD256) + + pci:v000010DEd000001D1sv00001462sd00000345* +- ID_MODEL_FROM_DATABASE=7300LE PCI Express Graphics Adapter ++ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (7300LE PCI Express Graphics Adapter) + + pci:v000010DEd000001D2* + ID_MODEL_FROM_DATABASE=G72 [GeForce 7550 LE] +@@ -22239,7 +22239,7 @@ pci:v000010DEd000001D8* + ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] + + pci:v000010DEd000001D8sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] (XPS M1210) + + pci:v000010DEd000001D9* + ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7450] +@@ -22260,7 +22260,7 @@ pci:v000010DEd000001DE* + ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] + + pci:v000010DEd000001DEsv000010DEsd000001DC* +- ID_MODEL_FROM_DATABASE=Quadro FX Go350M ++ ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] (Quadro FX Go350M) + + pci:v000010DEd000001DF* + ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 GS] +@@ -22269,7 +22269,7 @@ pci:v000010DEd000001E0* + ID_MODEL_FROM_DATABASE=nForce2 IGP2 + + pci:v000010DEd000001E0sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 IGP2 (NV7 Motherboard) + + pci:v000010DEd000001E8* + ID_MODEL_FROM_DATABASE=nForce2 AGP +@@ -22278,55 +22278,55 @@ pci:v000010DEd000001EA* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 + + pci:v000010DEd000001EAsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 (UK79G-1394 motherboard) + + pci:v000010DEd000001EB* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 + + pci:v000010DEd000001EBsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 (UK79G-1394 motherboard) + + pci:v000010DEd000001EC* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 + + pci:v000010DEd000001ECsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 (UK79G-1394 motherboard) + + pci:v000010DEd000001ED* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 + + pci:v000010DEd000001EDsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 (UK79G-1394 motherboard) + + pci:v000010DEd000001EE* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 + + pci:v000010DEd000001EEsv000010DEsd000001EE* +- ID_MODEL_FROM_DATABASE=MSI Delta-L nForce2 memory controller ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (MSI Delta-L nForce2 memory controller) + + pci:v000010DEd000001EEsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (UK79G-1394 motherboard) + + pci:v000010DEd000001EF* + ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 + + pci:v000010DEd000001EFsv0000A0A0sd000003B9* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 (UK79G-1394 motherboard) + + pci:v000010DEd000001F0* + ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] + + pci:v000010DEd000001F0sv0000A0A0sd000003B5* +- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard ++ ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] (UK79G-1394 motherboard) + + pci:v000010DEd00000200* + ID_MODEL_FROM_DATABASE=NV20 [GeForce3] + + pci:v000010DEd00000200sv00001043sd0000402F* +- ID_MODEL_FROM_DATABASE=AGP-V8200 DDR ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (AGP-V8200 DDR) + + pci:v000010DEd00000200sv00001048sd00000C70* +- ID_MODEL_FROM_DATABASE=GLADIAC 920 ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (GLADIAC 920) + + pci:v000010DEd00000201* + ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 200] +@@ -22335,10 +22335,10 @@ pci:v000010DEd00000202* + ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] + + pci:v000010DEd00000202sv00001043sd0000405B* +- ID_MODEL_FROM_DATABASE=V8200 T5 ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (V8200 T5) + + pci:v000010DEd00000202sv00001545sd0000002F* +- ID_MODEL_FROM_DATABASE=Xtasy 6964 ++ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (Xtasy 6964) + + pci:v000010DEd00000203* + ID_MODEL_FROM_DATABASE=NV20GL [Quadro DCC] +@@ -22359,10 +22359,10 @@ pci:v000010DEd00000221* + ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] + + pci:v000010DEd00000221sv00001043sd000081E1* +- ID_MODEL_FROM_DATABASE=N6200/TD/256M/A ++ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (N6200/TD/256M/A) + + pci:v000010DEd00000221sv00003842sd0000A341* +- ID_MODEL_FROM_DATABASE=256A8N341DX ++ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (256A8N341DX) + + pci:v000010DEd00000222* + ID_MODEL_FROM_DATABASE=NV44 [GeForce 6200 A-LE] +@@ -22374,10 +22374,10 @@ pci:v000010DEd00000240* + ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] + + pci:v000010DEd00000240sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM ++ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (A8N-VM CSM) + + pci:v000010DEd00000240sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (K8NGM2 series) + + pci:v000010DEd00000241* + ID_MODEL_FROM_DATABASE=C51 [GeForce 6150 LE] +@@ -22386,7 +22386,7 @@ pci:v000010DEd00000242* + ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] + + pci:v000010DEd00000242sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] (Winfast 6100K8MB) + + pci:v000010DEd00000243* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge +@@ -22395,13 +22395,13 @@ pci:v000010DEd00000244* + ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] + + pci:v000010DEd00000244sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V3242AU) + + pci:v000010DEd00000244sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V6133CL) + + pci:v000010DEd00000244sv000010DEsd00000244* +- ID_MODEL_FROM_DATABASE=GeForce Go 6150 ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (GeForce Go 6150) + + pci:v000010DEd00000245* + ID_MODEL_FROM_DATABASE=C51 [Quadro NVS 210S/GeForce 6150LE] +@@ -22413,7 +22413,7 @@ pci:v000010DEd00000247* + ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] + + pci:v000010DEd00000247sv00001043sd00001382* +- ID_MODEL_FROM_DATABASE=MCP51 PCI-X GeForce Go 6100 ++ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] (MCP51 PCI-X GeForce Go 6100) + + pci:v000010DEd00000248* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge +@@ -22446,13 +22446,13 @@ pci:v000010DEd00000251* + ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] + + pci:v000010DEd00000251sv00001043sd00008023* +- ID_MODEL_FROM_DATABASE=v8440 GeForce 4 Ti4400 ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (v8440 GeForce 4 Ti4400) + + pci:v000010DEd00000251sv000010DEsd00000251* +- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) + + pci:v000010DEd00000251sv00001462sd00008710* +- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) + + pci:v000010DEd00000252* + ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti] +@@ -22461,10 +22461,10 @@ pci:v000010DEd00000253* + ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] + + pci:v000010DEd00000253sv0000107Dsd00002896* +- ID_MODEL_FROM_DATABASE=WinFast A250 LE TD (Dual VGA/TV-out/DVI) ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (WinFast A250 LE TD (Dual VGA/TV-out/DVI)) + + pci:v000010DEd00000253sv0000147Bsd00008F09* +- ID_MODEL_FROM_DATABASE=Siluro (Dual VGA/TV-out/DVI) ++ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (Siluro (Dual VGA/TV-out/DVI)) + + pci:v000010DEd00000258* + ID_MODEL_FROM_DATABASE=NV25GL [Quadro4 900 XGL] +@@ -22479,25 +22479,25 @@ pci:v000010DEd00000260* + ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge + + pci:v000010DEd00000260sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Pavilion a1677c) + + pci:v000010DEd00000260sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Presario V6133CL) + + pci:v000010DEd00000260sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd00000260sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (GA-M55plus-S3G) + + pci:v000010DEd00000260sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (K8NGM2 series) + + pci:v000010DEd00000261* + ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge + + pci:v000010DEd00000261sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Winfast 6100K8MB) + + pci:v000010DEd00000262* + ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge +@@ -22509,64 +22509,64 @@ pci:v000010DEd00000264* + ID_MODEL_FROM_DATABASE=MCP51 SMBus + + pci:v000010DEd00000264sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Pavilion a1677c) + + pci:v000010DEd00000264sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Presario V6133CL) + + pci:v000010DEd00000264sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (A8N-VM CSM Mainboard) + + pci:v000010DEd00000264sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Winfast 6100K8MB) + + pci:v000010DEd00000264sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 SMBus (K8NGM2 series) + + pci:v000010DEd00000265* + ID_MODEL_FROM_DATABASE=MCP51 IDE + + pci:v000010DEd00000265sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (Pavilion a1677c) + + pci:v000010DEd00000265sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (Presario V6133CL) + + pci:v000010DEd00000265sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (A8N-VM CSM Mainboard) + + pci:v000010DEd00000265sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (K8NGM2 series) + + pci:v000010DEd00000265sv0000F05Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 IDE (Winfast 6100K8MB) + + pci:v000010DEd00000266* + ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller + + pci:v000010DEd00000266sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) + + pci:v000010DEd00000266sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Presario V6133CL) + + pci:v000010DEd00000266sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd00000266sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) + + pci:v000010DEd00000267* + ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller + + pci:v000010DEd00000267sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) + + pci:v000010DEd00000267sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd00000267sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) + + pci:v000010DEd00000268* + ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller +@@ -22575,16 +22575,16 @@ pci:v000010DEd00000269* + ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller + + pci:v000010DEd00000269sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Pavilion a1677c) + + pci:v000010DEd00000269sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Presario V6133CL) + + pci:v000010DEd00000269sv00001043sd00008141* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd00000269sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (K8NGM2 series) + + pci:v000010DEd0000026A* + ID_MODEL_FROM_DATABASE=MCP51 MCI +@@ -22593,142 +22593,142 @@ pci:v000010DEd0000026B* + ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller + + pci:v000010DEd0000026Bsv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller (Winfast 6100K8MB) + + pci:v000010DEd0000026C* + ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio + + pci:v000010DEd0000026Csv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Pavilion a1677c) + + pci:v000010DEd0000026Csv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V3242AU) + + pci:v000010DEd0000026Csv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V6133CL) + + pci:v000010DEd0000026Csv000010DEsd0000CB84* +- ID_MODEL_FROM_DATABASE=ASUSTeK Computer Inc. A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (ASUSTeK Computer Inc. A8N-VM CSM Mainboard) + + pci:v000010DEd0000026Csv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (K8NGM2 series) + + pci:v000010DEd0000026D* + ID_MODEL_FROM_DATABASE=MCP51 USB Controller + + pci:v000010DEd0000026Dsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) + + pci:v000010DEd0000026Dsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) + + pci:v000010DEd0000026Dsv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd0000026Dsv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) + + pci:v000010DEd0000026Dsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) + + pci:v000010DEd0000026E* + ID_MODEL_FROM_DATABASE=MCP51 USB Controller + + pci:v000010DEd0000026Esv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) + + pci:v000010DEd0000026Esv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) + + pci:v000010DEd0000026Esv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) + + pci:v000010DEd0000026Esv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) + + pci:v000010DEd0000026Esv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) + + pci:v000010DEd0000026F* + ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge + + pci:v000010DEd0000026Fsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge (Presario V6133CL) + + pci:v000010DEd00000270* + ID_MODEL_FROM_DATABASE=MCP51 Host Bridge + + pci:v000010DEd00000270sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Pavilion a1677c) + + pci:v000010DEd00000270sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Presario V6133CL) + + pci:v000010DEd00000270sv00001043sd000081BC* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd00000270sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Winfast 6100K8MB) + + pci:v000010DEd00000270sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (GA-M55plus-S3G) + + pci:v000010DEd00000270sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (K8NGM2 series) + + pci:v000010DEd00000271* + ID_MODEL_FROM_DATABASE=MCP51 PMU + + pci:v000010DEd00000271sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V3242AU) + + pci:v000010DEd00000271sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V6133CL) + + pci:v000010DEd00000272* + ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 + + pci:v000010DEd00000272sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Pavilion a1677c) + + pci:v000010DEd00000272sv0000105Bsd00000CAD* +- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB ++ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Winfast 6100K8MB) + + pci:v000010DEd0000027E* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 + + pci:v000010DEd0000027Esv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Pavilion a1677c) + + pci:v000010DEd0000027Esv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Presario V6133CL) + + pci:v000010DEd0000027Esv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (A8N-VM CSM Mainboard) + + pci:v000010DEd0000027Esv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (GA-M55plus-S3G) + + pci:v000010DEd0000027Esv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (K8NGM2 series) + + pci:v000010DEd0000027F* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 + + pci:v000010DEd0000027Fsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Pavilion a1677c) + + pci:v000010DEd0000027Fsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Presario V6133CL) + + pci:v000010DEd0000027Fsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (A8N-VM CSM Mainboard) + + pci:v000010DEd0000027Fsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (GA-M55plus-S3G) + + pci:v000010DEd0000027Fsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (K8NGM2 series) + + pci:v000010DEd00000280* + ID_MODEL_FROM_DATABASE=NV28 [GeForce4 Ti 4800] +@@ -22758,7 +22758,7 @@ pci:v000010DEd00000291* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] + + pci:v000010DEd00000291sv000010DEsd0000042B* +- ID_MODEL_FROM_DATABASE=NX7900GTO-T2D512E [7900 GTO] ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] (NX7900GTO-T2D512E [7900 GTO]) + + pci:v000010DEd00000292* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GS] +@@ -22773,13 +22773,13 @@ pci:v000010DEd00000295* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] + + pci:v000010DEd00000295sv00001043sd00008225* +- ID_MODEL_FROM_DATABASE=GeForce 7950 GT ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (GeForce 7950 GT) + + pci:v000010DEd00000295sv0000107Dsd00002A68* +- ID_MODEL_FROM_DATABASE=WinFast PX7950GT TDH ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (WinFast PX7950GT TDH) + + pci:v000010DEd00000295sv00001462sd00000663* +- ID_MODEL_FROM_DATABASE=NX7950GT-VT2D512EZ-HD ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (NX7950GT-VT2D512EZ-HD) + + pci:v000010DEd00000297* + ID_MODEL_FROM_DATABASE=G71M [GeForce Go 7950 GTX] +@@ -22803,7 +22803,7 @@ pci:v000010DEd0000029D* + ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] + + pci:v000010DEd0000029Dsv00001028sd0000019B* +- ID_MODEL_FROM_DATABASE=G71GLM [Quadro FX 3500M] ++ ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] (G71GLM [Quadro FX 3500M]) + + pci:v000010DEd0000029E* + ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 1500] +@@ -22824,16 +22824,16 @@ pci:v000010DEd000002E0* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] + + pci:v000010DEd000002E0sv000002E0sd00002249* +- ID_MODEL_FROM_DATABASE=GF 7600GT 560M 256MB DDR3 DUAL DVI TV ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GF 7600GT 560M 256MB DDR3 DUAL DVI TV) + + pci:v000010DEd000002E1* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] + + pci:v000010DEd000002E1sv00001682sd0000222B* +- ID_MODEL_FROM_DATABASE=PV-T73K-UAL3 (256MB) ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (PV-T73K-UAL3 (256MB)) + + pci:v000010DEd000002E1sv00001682sd00002247* +- ID_MODEL_FROM_DATABASE=GF 7600GS 512MB DDR2 ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (GF 7600GS 512MB DDR2) + + pci:v000010DEd000002E2* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] +@@ -22845,28 +22845,28 @@ pci:v000010DEd000002E4* + ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] + + pci:v000010DEd000002E4sv00001682sd00002271* +- ID_MODEL_FROM_DATABASE=PV-T71A-YDF7 (512MB) ++ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (PV-T71A-YDF7 (512MB)) + + pci:v000010DEd000002F0* + ID_MODEL_FROM_DATABASE=C51 Host Bridge + + pci:v000010DEd000002F0sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) + + pci:v000010DEd000002F0sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) + + pci:v000010DEd000002F0sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd000002F0sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) + + pci:v000010DEd000002F1* + ID_MODEL_FROM_DATABASE=C51 Host Bridge + + pci:v000010DEd000002F1sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) + + pci:v000010DEd000002F2* + ID_MODEL_FROM_DATABASE=C51 Host Bridge +@@ -22890,55 +22890,55 @@ pci:v000010DEd000002F8* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 + + pci:v000010DEd000002F8sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Pavilion a1677c) + + pci:v000010DEd000002F8sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Presario V6133CL) + + pci:v000010DEd000002F8sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002F8sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (GA-M55plus-S3G) + + pci:v000010DEd000002F8sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (K8NGM2 series) + + pci:v000010DEd000002F9* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 + + pci:v000010DEd000002F9sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Pavilion a1677c) + + pci:v000010DEd000002F9sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Presario V6133CL) + + pci:v000010DEd000002F9sv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002F9sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (GA-M55plus-S3G) + + pci:v000010DEd000002F9sv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (K8NGM2 series) + + pci:v000010DEd000002FA* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 + + pci:v000010DEd000002FAsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Pavilion a1677c) + + pci:v000010DEd000002FAsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Presario V6133CL) + + pci:v000010DEd000002FAsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002FAsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (GA-M55plus-S3G) + + pci:v000010DEd000002FAsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (K8NGM2 series) + + pci:v000010DEd000002FB* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge +@@ -22947,49 +22947,49 @@ pci:v000010DEd000002FC* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge + + pci:v000010DEd000002FCsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) + + pci:v000010DEd000002FD* + ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge + + pci:v000010DEd000002FDsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) + + pci:v000010DEd000002FE* + ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 + + pci:v000010DEd000002FEsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Pavilion a1677c) + + pci:v000010DEd000002FEsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Presario V6133CL) + + pci:v000010DEd000002FEsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (A8N-VM CSM Mainboard) + + pci:v000010DEd000002FEsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (GA-M55plus-S3G) + + pci:v000010DEd000002FEsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (K8NGM2 series) + + pci:v000010DEd000002FF* + ID_MODEL_FROM_DATABASE=C51 Host Bridge + + pci:v000010DEd000002FFsv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) + + pci:v000010DEd000002FFsv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) + + pci:v000010DEd000002FFsv00001043sd000081CD* +- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) + + pci:v000010DEd000002FFsv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) + + pci:v000010DEd000002FFsv00001462sd00007207* +- ID_MODEL_FROM_DATABASE=K8NGM2 series ++ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) + + pci:v000010DEd00000300* + ID_MODEL_FROM_DATABASE=NV30 [GeForce FX] +@@ -23016,7 +23016,7 @@ pci:v000010DEd00000314* + ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] + + pci:v000010DEd00000314sv00001043sd0000814A* +- ID_MODEL_FROM_DATABASE=V9560XT/TD ++ ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] (V9560XT/TD) + + pci:v000010DEd00000316* + ID_MODEL_FROM_DATABASE=NV31M +@@ -23043,25 +23043,25 @@ pci:v000010DEd00000322* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] + + pci:v000010DEd00000322sv00001043sd000002FB* +- ID_MODEL_FROM_DATABASE=V9250 Magic ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9250 Magic) + + pci:v000010DEd00000322sv00001043sd00008180* +- ID_MODEL_FROM_DATABASE=V9520-X/TD/128M ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9520-X/TD/128M) + + pci:v000010DEd00000322sv0000107Dsd00002967* +- ID_MODEL_FROM_DATABASE=WinFast A340T 128MB ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (WinFast A340T 128MB) + + pci:v000010DEd00000322sv00001462sd00009110* +- ID_MODEL_FROM_DATABASE=MS-8911 (FX5200-TD128) ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8911 (FX5200-TD128)) + + pci:v000010DEd00000322sv00001462sd00009171* +- ID_MODEL_FROM_DATABASE=MS-8917 (FX5200-T128) ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8917 (FX5200-T128)) + + pci:v000010DEd00000322sv00001462sd00009360* +- ID_MODEL_FROM_DATABASE=MS-8936 (FX5200-T128) ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8936 (FX5200-T128)) + + pci:v000010DEd00000322sv00001682sd00001351* +- ID_MODEL_FROM_DATABASE=GeForce FX 5200 ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (GeForce FX 5200) + + pci:v000010DEd00000323* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200LE] +@@ -23070,13 +23070,13 @@ pci:v000010DEd00000324* + ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] + + pci:v000010DEd00000324sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Inspiron 5160) + + pci:v000010DEd00000324sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=Pavilion ZD7000 laptop ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Pavilion ZD7000 laptop) + + pci:v000010DEd00000324sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (MIM2000) + + pci:v000010DEd00000325* + ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5250] +@@ -23085,10 +23085,10 @@ pci:v000010DEd00000326* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] + + pci:v000010DEd00000326sv00001458sd0000310D* +- ID_MODEL_FROM_DATABASE=GeForce FX 5500 128 MB ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce FX 5500 128 MB) + + pci:v000010DEd00000326sv00001682sd00002034* +- ID_MODEL_FROM_DATABASE=GeForce 5500 256 MB ++ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce 5500 256 MB) + + pci:v000010DEd00000327* + ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5100] +@@ -23100,7 +23100,7 @@ pci:v000010DEd00000329* + ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] + + pci:v000010DEd00000329sv000010DEsd00000010* +- ID_MODEL_FROM_DATABASE=Powerbook G4 ++ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] (Powerbook G4) + + pci:v000010DEd0000032A* + ID_MODEL_FROM_DATABASE=NV34GL [Quadro NVS 280 PCI] +@@ -23124,13 +23124,13 @@ pci:v000010DEd00000330* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] + + pci:v000010DEd00000330sv00001043sd00008137* +- ID_MODEL_FROM_DATABASE=V9950 Ultra / 256 MB ++ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] (V9950 Ultra / 256 MB) + + pci:v000010DEd00000331* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] + + pci:v000010DEd00000331sv00001043sd00008145* +- ID_MODEL_FROM_DATABASE=V9950GE ++ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] (V9950GE) + + pci:v000010DEd00000332* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900XT] +@@ -23142,7 +23142,7 @@ pci:v000010DEd00000334* + ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] + + pci:v000010DEd00000334sv00001462sd00009373* +- ID_MODEL_FROM_DATABASE=FX5900ZT-VTD128 (MS-8937) ++ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] (FX5900ZT-VTD128 (MS-8937)) + + pci:v000010DEd00000338* + ID_MODEL_FROM_DATABASE=NV35GL [Quadro FX 3000] +@@ -23154,7 +23154,7 @@ pci:v000010DEd00000341* + ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] + + pci:v000010DEd00000341sv00001462sd00009380* +- ID_MODEL_FROM_DATABASE=MS-8938 (FX5700U-TD128) ++ ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] (MS-8938 (FX5700U-TD128)) + + pci:v000010DEd00000342* + ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700] +@@ -23169,7 +23169,7 @@ pci:v000010DEd00000347* + ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] + + pci:v000010DEd00000347sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] (NX9500) + + pci:v000010DEd00000348* + ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] +@@ -23190,13 +23190,13 @@ pci:v000010DEd00000361* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000361sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge ++ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) + + pci:v000010DEd00000362* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000362sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (KN9 series mainboard) + + pci:v000010DEd00000363* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge +@@ -23205,7 +23205,7 @@ pci:v000010DEd00000364* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000364sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge ++ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) + + pci:v000010DEd00000365* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge +@@ -23220,19 +23220,19 @@ pci:v000010DEd00000368* + ID_MODEL_FROM_DATABASE=MCP55 SMBus + + pci:v000010DEd00000368sv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 SMBus ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge M605 MCP55 SMBus) + + pci:v000010DEd00000368sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SMBus ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge R805 MCP55 SMBus) + + pci:v000010DEd00000368sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus (KN9 series mainboard) + + pci:v000010DEd00000369* + ID_MODEL_FROM_DATABASE=MCP55 Memory Controller + + pci:v000010DEd00000369sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 Memory Controller (KN9 series mainboard) + + pci:v000010DEd0000036A* + ID_MODEL_FROM_DATABASE=MCP55 Memory Controller +@@ -23244,31 +23244,31 @@ pci:v000010DEd0000036C* + ID_MODEL_FROM_DATABASE=MCP55 USB Controller + + pci:v000010DEd0000036Csv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) + + pci:v000010DEd0000036Csv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) + + pci:v000010DEd0000036Csv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) + + pci:v000010DEd0000036D* + ID_MODEL_FROM_DATABASE=MCP55 USB Controller + + pci:v000010DEd0000036Dsv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) + + pci:v000010DEd0000036Dsv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) + + pci:v000010DEd0000036Dsv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) + + pci:v000010DEd0000036E* + ID_MODEL_FROM_DATABASE=MCP55 IDE + + pci:v000010DEd0000036Esv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 IDE (KN9 series mainboard) + + pci:v000010DEd00000370* + ID_MODEL_FROM_DATABASE=MCP55 PCI bridge +@@ -23277,7 +23277,7 @@ pci:v000010DEd00000371* + ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio + + pci:v000010DEd00000371sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio (KN9 series mainboard) + + pci:v000010DEd00000372* + ID_MODEL_FROM_DATABASE=MCP55 Ethernet +@@ -23286,7 +23286,7 @@ pci:v000010DEd00000373* + ID_MODEL_FROM_DATABASE=MCP55 Ethernet + + pci:v000010DEd00000373sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 Ethernet (KN9 series mainboard) + + pci:v000010DEd00000374* + ID_MODEL_FROM_DATABASE=MCP55 PCI Express bridge +@@ -23313,10 +23313,10 @@ pci:v000010DEd0000037F* + ID_MODEL_FROM_DATABASE=MCP55 SATA Controller + + pci:v000010DEd0000037Fsv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SATA Controller ++ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (PowerEdge R805 MCP55 SATA Controller) + + pci:v000010DEd0000037Fsv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=KN9 series mainboard ++ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (KN9 series mainboard) + + pci:v000010DEd0000038B* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7650 GS] +@@ -23328,25 +23328,25 @@ pci:v000010DEd00000391* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] + + pci:v000010DEd00000391sv00001458sd00003427* +- ID_MODEL_FROM_DATABASE=GV-NX76T128D-RH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GV-NX76T128D-RH) + + pci:v000010DEd00000391sv00001462sd00000452* +- ID_MODEL_FROM_DATABASE=NX7600GT-VT2D256E ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (NX7600GT-VT2D256E) + + pci:v000010DEd00000392* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] + + pci:v000010DEd00000392sv00001462sd00000622* +- ID_MODEL_FROM_DATABASE=NX7600GS-T2D256EH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (NX7600GS-T2D256EH) + + pci:v000010DEd00000393* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] + + pci:v000010DEd00000393sv000010DEsd00000412* +- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) + + pci:v000010DEd00000393sv00001462sd00000412* +- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH ++ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) + + pci:v000010DEd00000394* + ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 LE] +@@ -23364,7 +23364,7 @@ pci:v000010DEd00000398* + ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] + + pci:v000010DEd00000398sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=Acer 9814 WKMI ++ ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] (Acer 9814 WKMI) + + pci:v000010DEd00000399* + ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600 GT] +@@ -23379,7 +23379,7 @@ pci:v000010DEd0000039C* + ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] + + pci:v000010DEd0000039Csv000010DEsd0000039C* +- ID_MODEL_FROM_DATABASE=Quadro FX 560M ++ ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] (Quadro FX 560M) + + pci:v000010DEd0000039D* + ID_MODEL_FROM_DATABASE=G73 +@@ -23481,7 +23481,7 @@ pci:v000010DEd000003D0* + ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] + + pci:v000010DEd000003D0sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] (Inspiron 531) + + pci:v000010DEd000003D1* + ID_MODEL_FROM_DATABASE=C61 [GeForce 6100 nForce 405] +@@ -23499,22 +23499,22 @@ pci:v000010DEd000003E0* + ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge + + pci:v000010DEd000003E0sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (Inspiron 531) + + pci:v000010DEd000003E0sv00001849sd000003E0* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003E1* + ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge + + pci:v000010DEd000003E1sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (M4N68T series motherboard) + + pci:v000010DEd000003E2* + ID_MODEL_FROM_DATABASE=MCP61 Host Bridge + + pci:v000010DEd000003E2sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 Host Bridge (M4N68T series motherboard) + + pci:v000010DEd000003E3* + ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge +@@ -23535,55 +23535,55 @@ pci:v000010DEd000003E8* + ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge + + pci:v000010DEd000003E8sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) + + pci:v000010DEd000003E8sv00001849sd000003E8* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003E9* + ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge + + pci:v000010DEd000003E9sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) + + pci:v000010DEd000003E9sv00001849sd000003E9* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003EA* + ID_MODEL_FROM_DATABASE=MCP61 Memory Controller + + pci:v000010DEd000003EAsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) + + pci:v000010DEd000003EAsv00001849sd000003EA* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003EB* + ID_MODEL_FROM_DATABASE=MCP61 SMBus + + pci:v000010DEd000003EBsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 SMBus (Inspiron 531) + + pci:v000010DEd000003EBsv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 SMBus (M4N68T series motherboard) + + pci:v000010DEd000003EBsv00001849sd000003EB* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 SMBus (939NF6G-VSTA Board) + + pci:v000010DEd000003EC* + ID_MODEL_FROM_DATABASE=MCP61 IDE + + pci:v000010DEd000003ECsv00001025sd00000392* +- ID_MODEL_FROM_DATABASE=ET1350 ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (ET1350) + + pci:v000010DEd000003ECsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (Inspiron 531) + + pci:v000010DEd000003ECsv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (M4N68T series motherboard) + + pci:v000010DEd000003ECsv00001849sd000003EC* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 IDE (939NF6G-VSTA Board) + + pci:v000010DEd000003EE* + ID_MODEL_FROM_DATABASE=MCP61 Ethernet +@@ -23592,61 +23592,61 @@ pci:v000010DEd000003EF* + ID_MODEL_FROM_DATABASE=MCP61 Ethernet + + pci:v000010DEd000003EFsv00001025sd00008000* +- ID_MODEL_FROM_DATABASE=ET1350 ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (ET1350) + + pci:v000010DEd000003EFsv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (Inspiron 531) + + pci:v000010DEd000003EFsv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (M4N68T series motherboard) + + pci:v000010DEd000003EFsv00001849sd000003EF* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (939NF6G-VSTA Board) + + pci:v000010DEd000003F0* + ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio + + pci:v000010DEd000003F0sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (Inspiron 531) + + pci:v000010DEd000003F0sv00001043sd00008415* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (M4N68T series motherboard) + + pci:v000010DEd000003F0sv00001849sd00000888* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (939NF6G-VSTA Board) + + pci:v000010DEd000003F1* + ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller + + pci:v000010DEd000003F1sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (Inspiron 531) + + pci:v000010DEd000003F1sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (M4N68T series motherboard) + + pci:v000010DEd000003F1sv00001849sd000003F1* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F2* + ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller + + pci:v000010DEd000003F2sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (Inspiron 531) + + pci:v000010DEd000003F2sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (M4N68T series motherboard) + + pci:v000010DEd000003F2sv00001849sd000003F2* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F3* + ID_MODEL_FROM_DATABASE=MCP61 PCI bridge + + pci:v000010DEd000003F3sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (Inspiron 531) + + pci:v000010DEd000003F3sv00001849sd000003F3* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (939NF6G-VSTA Board) + + pci:v000010DEd000003F4* + ID_MODEL_FROM_DATABASE=MCP61 SMU +@@ -23655,25 +23655,25 @@ pci:v000010DEd000003F5* + ID_MODEL_FROM_DATABASE=MCP61 Memory Controller + + pci:v000010DEd000003F5sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) + + pci:v000010DEd000003F5sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (M4N68T series motherboard) + + pci:v000010DEd000003F5sv00001849sd000003EB* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F6* + ID_MODEL_FROM_DATABASE=MCP61 SATA Controller + + pci:v000010DEd000003F6sv00001028sd0000020E* +- ID_MODEL_FROM_DATABASE=Inspiron 531 ++ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (Inspiron 531) + + pci:v000010DEd000003F6sv00001043sd000083A4* +- ID_MODEL_FROM_DATABASE=M4N68T series motherboard ++ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (M4N68T series motherboard) + + pci:v000010DEd000003F6sv00001849sd000003F6* +- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board ++ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (939NF6G-VSTA Board) + + pci:v000010DEd000003F7* + ID_MODEL_FROM_DATABASE=MCP61 SATA Controller +@@ -23682,7 +23682,7 @@ pci:v000010DEd00000400* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] + + pci:v000010DEd00000400sv00001043sd00008241* +- ID_MODEL_FROM_DATABASE=EN8600GTS ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] (EN8600GTS) + + pci:v000010DEd00000401* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] +@@ -23691,10 +23691,10 @@ pci:v000010DEd00000402* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] + + pci:v000010DEd00000402sv00001458sd00003455* +- ID_MODEL_FROM_DATABASE=GV-NX86T512H ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (GV-NX86T512H) + + pci:v000010DEd00000402sv00001462sd00000910* +- ID_MODEL_FROM_DATABASE=NX8600GT-T2D256EZ ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (NX8600GT-T2D256EZ) + + pci:v000010DEd00000403* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GS] +@@ -23703,7 +23703,7 @@ pci:v000010DEd00000404* + ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] + + pci:v000010DEd00000404sv00001462sd00001230* +- ID_MODEL_FROM_DATABASE=NX8400GS-TD256E ++ ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] (NX8400GS-TD256E) + + pci:v000010DEd00000405* + ID_MODEL_FROM_DATABASE=G84M [GeForce 9500M GS] +@@ -23730,7 +23730,7 @@ pci:v000010DEd0000040C* + ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] + + pci:v000010DEd0000040Csv000017AAsd000020D9* +- ID_MODEL_FROM_DATABASE=ThinkPad T61p ++ ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] (ThinkPad T61p) + + pci:v000010DEd0000040D* + ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 1600M] +@@ -23754,7 +23754,7 @@ pci:v000010DEd00000421* + ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] + + pci:v000010DEd00000421sv00001462sd00000960* +- ID_MODEL_FROM_DATABASE=NX8500GT-TD512EH/M2 ++ ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] (NX8500GT-TD512EH/M2) + + pci:v000010DEd00000422* + ID_MODEL_FROM_DATABASE=G86 [GeForce 8400 GS] +@@ -23769,7 +23769,7 @@ pci:v000010DEd00000425* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] + + pci:v000010DEd00000425sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] (Aspire 5920G) + + pci:v000010DEd00000426* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GT] +@@ -23778,10 +23778,10 @@ pci:v000010DEd00000427* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] + + pci:v000010DEd00000427sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv6700) + + pci:v000010DEd00000427sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000428* + ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M G] +@@ -23790,7 +23790,7 @@ pci:v000010DEd00000429* + ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] + + pci:v000010DEd00000429sv000017AAsd000020D8* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] (ThinkPad T61) + + pci:v000010DEd0000042A* + ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 130M] +@@ -23820,7 +23820,7 @@ pci:v000010DEd00000442* + ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge + + pci:v000010DEd00000442sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000443* + ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge +@@ -23829,7 +23829,7 @@ pci:v000010DEd00000444* + ID_MODEL_FROM_DATABASE=MCP65 Memory Controller + + pci:v000010DEd00000444sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 Memory Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000445* + ID_MODEL_FROM_DATABASE=MCP65 Memory Controller +@@ -23838,31 +23838,31 @@ pci:v000010DEd00000446* + ID_MODEL_FROM_DATABASE=MCP65 SMBus + + pci:v000010DEd00000446sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 SMBus (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000447* + ID_MODEL_FROM_DATABASE=MCP65 SMU + + pci:v000010DEd00000447sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 SMU (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000448* + ID_MODEL_FROM_DATABASE=MCP65 IDE + + pci:v000010DEd00000448sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 IDE (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000449* + ID_MODEL_FROM_DATABASE=MCP65 PCI bridge + + pci:v000010DEd00000449sv000010DEsd0000CB84* +- ID_MODEL_FROM_DATABASE=HP Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 PCI bridge (HP Pavilion dv9668eg Laptop) + + pci:v000010DEd0000044A* + ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio + + pci:v000010DEd0000044Asv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio (Pavilion dv9668eg Laptop) + + pci:v000010DEd0000044B* + ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio +@@ -23883,7 +23883,7 @@ pci:v000010DEd00000450* + ID_MODEL_FROM_DATABASE=MCP65 Ethernet + + pci:v000010DEd00000450sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 Ethernet (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000451* + ID_MODEL_FROM_DATABASE=MCP65 Ethernet +@@ -23898,13 +23898,13 @@ pci:v000010DEd00000454* + ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller + + pci:v000010DEd00000454sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000455* + ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller + + pci:v000010DEd00000455sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd00000456* + ID_MODEL_FROM_DATABASE=MCP65 USB Controller +@@ -23943,7 +23943,7 @@ pci:v000010DEd0000045D* + ID_MODEL_FROM_DATABASE=MCP65 SATA Controller + + pci:v000010DEd0000045Dsv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=MCP65 SATA Controller (Pavilion dv9668eg Laptop) + + pci:v000010DEd0000045E* + ID_MODEL_FROM_DATABASE=MCP65 SATA Controller +@@ -23964,7 +23964,7 @@ pci:v000010DEd0000053B* + ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] + + pci:v000010DEd0000053Bsv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] (M2N68-AM Motherbord) + + pci:v000010DEd0000053E* + ID_MODEL_FROM_DATABASE=C68 [GeForce 7025 / nForce 630a] +@@ -23976,7 +23976,7 @@ pci:v000010DEd00000542* + ID_MODEL_FROM_DATABASE=MCP67 SMBus + + pci:v000010DEd00000542sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=MCP67 SMBus (M2N68-AM Motherbord) + + pci:v000010DEd00000543* + ID_MODEL_FROM_DATABASE=MCP67 Co-processor +@@ -23985,25 +23985,25 @@ pci:v000010DEd00000547* + ID_MODEL_FROM_DATABASE=MCP67 Memory Controller + + pci:v000010DEd00000547sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (M2N68-AM Motherbord) + + pci:v000010DEd00000547sv00001849sd00000547* +- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready ++ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (ALiveNF7G-HDready) + + pci:v000010DEd00000548* + ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge + + pci:v000010DEd00000548sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge (M2N68-AM Motherboard) + + pci:v000010DEd0000054C* + ID_MODEL_FROM_DATABASE=MCP67 Ethernet + + pci:v000010DEd0000054Csv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord ++ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (M2N68-AM Motherbord) + + pci:v000010DEd0000054Csv00001849sd0000054C* +- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready, MCP67 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (ALiveNF7G-HDready, MCP67 Gigabit Ethernet) + + pci:v000010DEd0000054D* + ID_MODEL_FROM_DATABASE=MCP67 Ethernet +@@ -24018,25 +24018,25 @@ pci:v000010DEd00000550* + ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller + + pci:v000010DEd00000550sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000554* + ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller + + pci:v000010DEd00000554sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000555* + ID_MODEL_FROM_DATABASE=MCP67 SATA Controller + + pci:v000010DEd00000555sv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 SATA Controller (M2N68-AM Motherboard) + + pci:v000010DEd0000055C* + ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio + + pci:v000010DEd0000055Csv00001043sd00008290* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio (M2N68-AM Motherboard) + + pci:v000010DEd0000055D* + ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio +@@ -24045,19 +24045,19 @@ pci:v000010DEd0000055E* + ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller + + pci:v000010DEd0000055Esv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller (M2N68-AM Motherboard) + + pci:v000010DEd0000055F* + ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller + + pci:v000010DEd0000055Fsv00001043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000560* + ID_MODEL_FROM_DATABASE=MCP67 IDE Controller + + pci:v000010DEd00000560sv0000F043sd00008308* +- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard ++ ID_MODEL_FROM_DATABASE=MCP67 IDE Controller (M2N68-AM Motherboard) + + pci:v000010DEd00000561* + ID_MODEL_FROM_DATABASE=MCP67 PCI Bridge +@@ -24066,7 +24066,7 @@ pci:v000010DEd00000562* + ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge + + pci:v000010DEd00000562sv00001849sd00000562* +- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready ++ ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge (ALiveNF7G-HDready) + + pci:v000010DEd00000563* + ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge +@@ -24075,64 +24075,64 @@ pci:v000010DEd00000568* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller + + pci:v000010DEd00000568sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) + + pci:v000010DEd00000568sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) + + pci:v000010DEd00000568sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) + + pci:v000010DEd00000568sv00001849sd00000568* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) + + pci:v000010DEd00000569* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge + + pci:v000010DEd00000569sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) + + pci:v000010DEd00000569sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) + + pci:v000010DEd00000569sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) + + pci:v000010DEd00000569sv00001849sd00000569* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) + + pci:v000010DEd0000056A* + ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) + + pci:v000010DEd0000056Asv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) (MCP73PVT-SM) + + pci:v000010DEd0000056C* + ID_MODEL_FROM_DATABASE=MCP73 IDE + + pci:v000010DEd0000056Csv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 IDE (MCP73PVT-SM) + + pci:v000010DEd0000056Csv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 IDE (JW-IN7150-HD) + + pci:v000010DEd0000056D* + ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge + + pci:v000010DEd0000056Dsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) + + pci:v000010DEd0000056E* + ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge + + pci:v000010DEd0000056Esv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) + + pci:v000010DEd0000056F* + ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge + + pci:v000010DEd0000056Fsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) + + pci:v000010DEd000005B1* + ID_MODEL_FROM_DATABASE=NF200 PCIe 2.0 switch +@@ -24156,7 +24156,7 @@ pci:v000010DEd000005E3* + ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] + + pci:v000010DEd000005E3sv00001682sd00002490* +- ID_MODEL_FROM_DATABASE=GX-285N-ZDF ++ ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] (GX-285N-ZDF) + + pci:v000010DEd000005E6* + ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 275] +@@ -24165,19 +24165,19 @@ pci:v000010DEd000005E7* + ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] + + pci:v000010DEd000005E7sv000010DEsd00000595* +- ID_MODEL_FROM_DATABASE=Tesla T10 Processor ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) + + pci:v000010DEd000005E7sv000010DEsd0000068F* +- ID_MODEL_FROM_DATABASE=Tesla T10 Processor ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) + + pci:v000010DEd000005E7sv000010DEsd00000697* +- ID_MODEL_FROM_DATABASE=Tesla M1060 ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) + + pci:v000010DEd000005E7sv000010DEsd00000714* +- ID_MODEL_FROM_DATABASE=Tesla M1060 ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) + + pci:v000010DEd000005E7sv000010DEsd00000743* +- ID_MODEL_FROM_DATABASE=Tesla M1060 ++ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) + + pci:v000010DEd000005EA* + ID_MODEL_FROM_DATABASE=GT200 [GeForce GTX 260] +@@ -24240,7 +24240,7 @@ pci:v000010DEd00000609* + ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] + + pci:v000010DEd00000609sv0000106Bsd000000A7* +- ID_MODEL_FROM_DATABASE=GeForce 8800 GS ++ ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] (GeForce 8800 GS) + + pci:v000010DEd0000060A* + ID_MODEL_FROM_DATABASE=G92M [GeForce GTX 280M] +@@ -24261,16 +24261,16 @@ pci:v000010DEd00000610* + ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] + + pci:v000010DEd00000610sv00001682sd00002385* +- ID_MODEL_FROM_DATABASE=GeForce 9600 GSO 768mb ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] (GeForce 9600 GSO 768mb) + + pci:v000010DEd00000611* + ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] + + pci:v000010DEd00000611sv0000107Dsd00002AB0* +- ID_MODEL_FROM_DATABASE=Winfast PX8800 GT PCI-E ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (Winfast PX8800 GT PCI-E) + + pci:v000010DEd00000611sv000019DAsd00001040* +- ID_MODEL_FROM_DATABASE=ZT-88TES2P-FSP ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (ZT-88TES2P-FSP) + + pci:v000010DEd00000612* + ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GTX / 9800 GTX+] +@@ -24282,22 +24282,22 @@ pci:v000010DEd00000614* + ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] + + pci:v000010DEd00000614sv0000107Dsd00002AB3* +- ID_MODEL_FROM_DATABASE=WinFast PX9800 GT (S-Fanpipe) ++ ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] (WinFast PX9800 GT (S-Fanpipe)) + + pci:v000010DEd00000615* + ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] + + pci:v000010DEd00000615sv00003842sd00001150* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1150-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1150-TR) + + pci:v000010DEd00000615sv00003842sd00001151* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1151-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1151-TR) + + pci:v000010DEd00000615sv00003842sd00001155* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1155-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1155-TR) + + pci:v000010DEd00000615sv00003842sd00001156* +- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1156-TR ++ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1156-TR) + + pci:v000010DEd00000617* + ID_MODEL_FROM_DATABASE=G92M [GeForce 9800M GTX] +@@ -24336,10 +24336,10 @@ pci:v000010DEd00000622* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] + + pci:v000010DEd00000622sv0000107Dsd00002AC1* +- ID_MODEL_FROM_DATABASE=WinFast PX9600GT 1024MB ++ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (WinFast PX9600GT 1024MB) + + pci:v000010DEd00000622sv00001458sd00003481* +- ID_MODEL_FROM_DATABASE=GV-NX96T512HP ++ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GV-NX96T512HP) + + pci:v000010DEd00000623* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GS] +@@ -24375,7 +24375,7 @@ pci:v000010DEd0000062E* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] + + pci:v000010DEd0000062Esv0000106Bsd00000605* +- ID_MODEL_FROM_DATABASE=GeForce GT 130 ++ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GeForce GT 130) + + pci:v000010DEd0000062F* + ID_MODEL_FROM_DATABASE=G94 [GeForce 9800 S] +@@ -24435,7 +24435,7 @@ pci:v000010DEd00000649* + ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] + + pci:v000010DEd00000649sv00001043sd0000202D* +- ID_MODEL_FROM_DATABASE=GeForce GT 220M ++ ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] (GeForce GT 220M) + + pci:v000010DEd0000064A* + ID_MODEL_FROM_DATABASE=G96M [GeForce 9700M GT] +@@ -24459,7 +24459,7 @@ pci:v000010DEd00000652* + ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] + + pci:v000010DEd00000652sv0000152Dsd00000850* +- ID_MODEL_FROM_DATABASE=GeForce GT 240M LE ++ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] (GeForce GT 240M LE) + + pci:v000010DEd00000653* + ID_MODEL_FROM_DATABASE=G96M [GeForce GT 120M] +@@ -24468,10 +24468,10 @@ pci:v000010DEd00000654* + ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] + + pci:v000010DEd00000654sv00001043sd000014A2* +- ID_MODEL_FROM_DATABASE=GeForce GT 320M ++ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) + + pci:v000010DEd00000654sv00001043sd000014D2* +- ID_MODEL_FROM_DATABASE=GeForce GT 320M ++ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) + + pci:v000010DEd00000655* + ID_MODEL_FROM_DATABASE=G96 [GeForce GT 120] +@@ -24519,28 +24519,28 @@ pci:v000010DEd000006D1* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] + + pci:v000010DEd000006D1sv000010DEsd00000771* +- ID_MODEL_FROM_DATABASE=Tesla C2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2050) + + pci:v000010DEd000006D1sv000010DEsd00000772* +- ID_MODEL_FROM_DATABASE=Tesla C2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2070) + + pci:v000010DEd000006D2* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] + + pci:v000010DEd000006D2sv000010DEsd00000774* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D2sv000010DEsd00000830* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D2sv000010DEsd00000842* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D2sv000010DEsd0000088F* +- ID_MODEL_FROM_DATABASE=Tesla X2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla X2070) + + pci:v000010DEd000006D2sv000010DEsd00000908* +- ID_MODEL_FROM_DATABASE=Tesla M2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) + + pci:v000010DEd000006D8* + ID_MODEL_FROM_DATABASE=GF100GL [Quadro 6000] +@@ -24561,37 +24561,37 @@ pci:v000010DEd000006DE* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] + + pci:v000010DEd000006DEsv000010DEsd00000773* +- ID_MODEL_FROM_DATABASE=Tesla S2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla S2050) + + pci:v000010DEd000006DEsv000010DEsd0000082F* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000840* +- ID_MODEL_FROM_DATABASE=Tesla X2070 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla X2070) + + pci:v000010DEd000006DEsv000010DEsd00000842* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000846* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000866* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd00000907* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DEsv000010DEsd0000091E* +- ID_MODEL_FROM_DATABASE=Tesla M2050 ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) + + pci:v000010DEd000006DF* + ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] + + pci:v000010DEd000006DFsv000010DEsd0000084D* +- ID_MODEL_FROM_DATABASE=Tesla M2070-Q ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) + + pci:v000010DEd000006DFsv000010DEsd0000087F* +- ID_MODEL_FROM_DATABASE=Tesla M2070-Q ++ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) + + pci:v000010DEd000006E0* + ID_MODEL_FROM_DATABASE=G98 [GeForce 9300 GE] +@@ -24609,7 +24609,7 @@ pci:v000010DEd000006E4* + ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] + + pci:v000010DEd000006E4sv00001458sd00003475* +- ID_MODEL_FROM_DATABASE=GV-NX84S256HE [GeForce 8400 GS] ++ ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] (GV-NX84S256HE [GeForce 8400 GS]) + + pci:v000010DEd000006E5* + ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] +@@ -24624,13 +24624,13 @@ pci:v000010DEd000006E8* + ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] + + pci:v000010DEd000006E8sv0000103Csd0000360B* +- ID_MODEL_FROM_DATABASE=GeForce 9200M GE ++ ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] (GeForce 9200M GE) + + pci:v000010DEd000006E9* + ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] + + pci:v000010DEd000006E9sv00001043sd000019B2* +- ID_MODEL_FROM_DATABASE=U6V laptop ++ ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] (U6V laptop) + + pci:v000010DEd000006EA* + ID_MODEL_FROM_DATABASE=G98M [Quadro NVS 150M] +@@ -24672,139 +24672,139 @@ pci:v000010DEd000006FF* + ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] + + pci:v000010DEd000006FFsv000010DEsd00000711* +- ID_MODEL_FROM_DATABASE=HICx8 + Graphics ++ ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] (HICx8 + Graphics) + + pci:v000010DEd00000751* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller + + pci:v000010DEd00000751sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) + + pci:v000010DEd00000751sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) + + pci:v000010DEd00000751sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) + + pci:v000010DEd00000751sv00001849sd00000751* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) + + pci:v000010DEd00000752* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus + + pci:v000010DEd00000752sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (Pavilion p6310f) + + pci:v000010DEd00000752sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (M3N72-D) + + pci:v000010DEd00000752sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K9N2GM-FIH) + + pci:v000010DEd00000752sv00001849sd00000752* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 SMBus ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K10N78FullHD-hSLI R3.0 SMBus) + + pci:v000010DEd00000753* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor + + pci:v000010DEd00000753sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (Pavilion p6310f) + + pci:v000010DEd00000753sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (M3N72-D) + + pci:v000010DEd00000753sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K9N2GM-FIH) + + pci:v000010DEd00000753sv00001849sd00000753* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Co-Processor ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K10N78FullHD-hSLI R3.0 Co-Processor) + + pci:v000010DEd00000754* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller + + pci:v000010DEd00000754sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) + + pci:v000010DEd00000754sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) + + pci:v000010DEd00000754sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) + + pci:v000010DEd00000754sv00001849sd00000754* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) + + pci:v000010DEd00000759* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE + + pci:v000010DEd00000759sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (M3N72-D) + + pci:v000010DEd00000759sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K9N2GM-FIH) + + pci:v000010DEd00000759sv00001849sd00000759* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K10N78FullHD-hSLI R3.0 IDE) + + pci:v000010DEd0000075A* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge + + pci:v000010DEd0000075Asv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) + + pci:v000010DEd0000075Asv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) + + pci:v000010DEd0000075Asv00001849sd0000075A* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) + + pci:v000010DEd0000075B* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge + + pci:v000010DEd0000075Bsv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) + + pci:v000010DEd0000075Bsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) + + pci:v000010DEd0000075Bsv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) + + pci:v000010DEd0000075Bsv00001849sd0000075B* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) + + pci:v000010DEd0000075C* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge + + pci:v000010DEd0000075Csv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (Pavilion p6310f) + + pci:v000010DEd0000075Csv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K9N2GM-FIH) + + pci:v000010DEd0000075Csv00001849sd0000075C* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 LPC Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K10N78FullHD-hSLI R3.0 LPC Bridge) + + pci:v000010DEd0000075D* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge + + pci:v000010DEd0000075Dsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (M3N72-D) + + pci:v000010DEd00000760* + ID_MODEL_FROM_DATABASE=MCP77 Ethernet + + pci:v000010DEd00000760sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (Pavilion p6310f) + + pci:v000010DEd00000760sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (M3N72-D) + + pci:v000010DEd00000760sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K9N2GM-FIH) + + pci:v000010DEd00000760sv00001849sd00000760* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Ethernet ++ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K10N78FullHD-hSLI R3.0 Ethernet) + + pci:v000010DEd00000761* + ID_MODEL_FROM_DATABASE=MCP77 Ethernet +@@ -24819,118 +24819,118 @@ pci:v000010DEd00000774* + ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio + + pci:v000010DEd00000774sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (Pavilion p6310f) + + pci:v000010DEd00000774sv00001043sd000082FE* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (M3N72-D) + + pci:v000010DEd00000774sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K9N2GM-FIH) + + pci:v000010DEd00000774sv00001849sd00003662* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 High Definition Audio ++ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K10N78FullHD-hSLI R3.0 High Definition Audio) + + pci:v000010DEd00000778* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge + + pci:v000010DEd00000778sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) + + pci:v000010DEd00000778sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) + + pci:v000010DEd00000778sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) + + pci:v000010DEd00000778sv00001849sd00000778* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) + + pci:v000010DEd0000077A* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge + + pci:v000010DEd0000077Asv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) + + pci:v000010DEd0000077Asv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) + + pci:v000010DEd0000077Asv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K9N2GM-FIH) + + pci:v000010DEd0000077Asv00001849sd0000077A* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) + + pci:v000010DEd0000077B* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller + + pci:v000010DEd0000077Bsv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Bsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) + + pci:v000010DEd0000077Bsv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Bsv00001849sd0000077B* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) + + pci:v000010DEd0000077C* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller + + pci:v000010DEd0000077Csv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Csv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) + + pci:v000010DEd0000077Csv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Csv00001849sd0000077C* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) + + pci:v000010DEd0000077D* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller + + pci:v000010DEd0000077Dsv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Dsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) + + pci:v000010DEd0000077Dsv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Dsv00001849sd0000077D* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) + + pci:v000010DEd0000077E* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller + + pci:v000010DEd0000077Esv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) + + pci:v000010DEd0000077Esv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) + + pci:v000010DEd0000077Esv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) + + pci:v000010DEd0000077Esv00001849sd0000077E* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) + + pci:v000010DEd000007C0* + ID_MODEL_FROM_DATABASE=MCP73 Host Bridge + + pci:v000010DEd000007C0sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (JW-IN7150-HD) + + pci:v000010DEd000007C1* + ID_MODEL_FROM_DATABASE=MCP73 Host Bridge + + pci:v000010DEd000007C1sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (MCP73PVT-SM) + + pci:v000010DEd000007C2* + ID_MODEL_FROM_DATABASE=MCP73 Host Bridge +@@ -24942,124 +24942,124 @@ pci:v000010DEd000007C8* + ID_MODEL_FROM_DATABASE=MCP73 Memory Controller + + pci:v000010DEd000007C8sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) + + pci:v000010DEd000007C8sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) + + pci:v000010DEd000007CB* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CBsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CBsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007CD* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CDsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CDsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007CE* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CEsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CEsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007CF* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007CFsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007CFsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D0* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D0sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D0sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D1* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D1sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D1sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D2* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D2sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D2sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D3* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D3sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D3sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D6* + ID_MODEL_FROM_DATABASE=nForce 630i memory controller + + pci:v000010DEd000007D6sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) + + pci:v000010DEd000007D6sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) + + pci:v000010DEd000007D7* + ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge + + pci:v000010DEd000007D7sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (MCP73PVT-SM) + + pci:v000010DEd000007D7sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (JW-IN7150-HD) + + pci:v000010DEd000007D8* + ID_MODEL_FROM_DATABASE=MCP73 SMBus + + pci:v000010DEd000007D8sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 SMBus (MCP73PVT-SM) + + pci:v000010DEd000007D8sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 SMBus (JW-IN7150-HD) + + pci:v000010DEd000007D9* + ID_MODEL_FROM_DATABASE=MCP73 Memory Controller + + pci:v000010DEd000007D9sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) + + pci:v000010DEd000007D9sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) + + pci:v000010DEd000007DA* + ID_MODEL_FROM_DATABASE=MCP73 Co-processor + + pci:v000010DEd000007DAsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=MCP73 Co-processor (JW-IN7150-HD) + + pci:v000010DEd000007DC* + ID_MODEL_FROM_DATABASE=MCP73 Ethernet +@@ -25077,13 +25077,13 @@ pci:v000010DEd000007E0* + ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] + + pci:v000010DEd000007E0sv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] (JW-IN7150-HD) + + pci:v000010DEd000007E1* + ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] + + pci:v000010DEd000007E1sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] (MCP73PVT-SM) + + pci:v000010DEd000007E2* + ID_MODEL_FROM_DATABASE=C73 [GeForce 7050 / nForce 630i] +@@ -25101,7 +25101,7 @@ pci:v000010DEd000007F4* + ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA + + pci:v000010DEd000007F4sv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA (MCP73PVT-SM) + + pci:v000010DEd000007F8* + ID_MODEL_FROM_DATABASE=MCP73 SATA RAID Controller +@@ -25110,7 +25110,7 @@ pci:v000010DEd000007FC* + ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio + + pci:v000010DEd000007FCsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio (MCP73PVT-SM) + + pci:v000010DEd000007FCsv000010DEsd000007FC* + ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio +@@ -25119,10 +25119,10 @@ pci:v000010DEd000007FE* + ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB + + pci:v000010DEd000007FEsv00001019sd0000297A* +- ID_MODEL_FROM_DATABASE=MCP73PVT-SM ++ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (MCP73PVT-SM) + + pci:v000010DEd000007FEsv00001AFAsd00007150* +- ID_MODEL_FROM_DATABASE=JW-IN7150-HD ++ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (JW-IN7150-HD) + + pci:v000010DEd00000840* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8200M] +@@ -25140,7 +25140,7 @@ pci:v000010DEd00000847* + ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] + + pci:v000010DEd00000847sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] (Pavilion p6310f) + + pci:v000010DEd00000848* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8300] +@@ -25149,10 +25149,10 @@ pci:v000010DEd00000849* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] + + pci:v000010DEd00000849sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K9N2GM-FIH) + + pci:v000010DEd00000849sv00001849sd00000849* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 GeForce 8200 ++ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K10N78FullHD-hSLI R3.0 GeForce 8200) + + pci:v000010DEd0000084A* + ID_MODEL_FROM_DATABASE=C77 [nForce 730a] +@@ -25167,7 +25167,7 @@ pci:v000010DEd0000084D* + ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] + + pci:v000010DEd0000084Dsv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D mGPU ++ ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] (M3N72-D mGPU) + + pci:v000010DEd0000084F* + ID_MODEL_FROM_DATABASE=C77 [GeForce 8100 / nForce 720a] +@@ -25185,7 +25185,7 @@ pci:v000010DEd00000863* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] + + pci:v000010DEd00000863sv0000106Bsd000000AA* +- ID_MODEL_FROM_DATABASE=MacBook5,1 ++ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] (MacBook5,1) + + pci:v000010DEd00000864* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9300] +@@ -25197,13 +25197,13 @@ pci:v000010DEd00000866* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] + + pci:v000010DEd00000866sv0000106Bsd000000B1* +- ID_MODEL_FROM_DATABASE=GeForce 9400M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] (GeForce 9400M) + + pci:v000010DEd00000867* + ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] + + pci:v000010DEd00000867sv0000106Bsd000000AD* +- ID_MODEL_FROM_DATABASE=iMac 9,1 ++ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] (iMac 9,1) + + pci:v000010DEd00000868* + ID_MODEL_FROM_DATABASE=C79 [nForce 760i SLI] +@@ -25236,28 +25236,28 @@ pci:v000010DEd00000872* + ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] + + pci:v000010DEd00000872sv00001043sd000019B4* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000872sv00001043sd00001AA2* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000872sv00001043sd00001C02* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000872sv00001043sd00001C42* +- ID_MODEL_FROM_DATABASE=GeForce G205M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) + + pci:v000010DEd00000873* + ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] + + pci:v000010DEd00000873sv00001043sd000019B4* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000873sv00001043sd00001C12* +- ID_MODEL_FROM_DATABASE=GeForce G102M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) + + pci:v000010DEd00000873sv00001043sd00001C52* +- ID_MODEL_FROM_DATABASE=GeForce G205M ++ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) + + pci:v000010DEd00000874* + ID_MODEL_FROM_DATABASE=C79 [ION] +@@ -25272,7 +25272,7 @@ pci:v000010DEd0000087D* + ID_MODEL_FROM_DATABASE=ION VGA + + pci:v000010DEd0000087Dsv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=ION VGA (IONITX-F-E) + + pci:v000010DEd0000087E* + ID_MODEL_FROM_DATABASE=ION LE VGA +@@ -25299,7 +25299,7 @@ pci:v000010DEd00000A20* + ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] + + pci:v000010DEd00000A20sv00001043sd00008311* +- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 ++ ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] (ENGT220/DI/1GD3(LP)/V2) + + pci:v000010DEd00000A21* + ID_MODEL_FROM_DATABASE=GT216M [GeForce GT 330M] +@@ -25368,7 +25368,7 @@ pci:v000010DEd00000A65* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] + + pci:v000010DEd00000A65sv00001043sd00008334* +- ID_MODEL_FROM_DATABASE=EN210 SILENT ++ ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] (EN210 SILENT) + + pci:v000010DEd00000A66* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 310] +@@ -25389,10 +25389,10 @@ pci:v000010DEd00000A6C* + ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] + + pci:v000010DEd00000A6Csv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (Latitude E6510) + + pci:v000010DEd00000A6Csv000017AAsd00002142* +- ID_MODEL_FROM_DATABASE=ThinkPad T410 ++ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (ThinkPad T410) + + pci:v000010DEd00000A6E* + ID_MODEL_FROM_DATABASE=GT218M [GeForce 305M] +@@ -25416,7 +25416,7 @@ pci:v000010DEd00000A74* + ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] + + pci:v000010DEd00000A74sv00001B0Asd0000903A* +- ID_MODEL_FROM_DATABASE=GeForce G210 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] (GeForce G210) + + pci:v000010DEd00000A75* + ID_MODEL_FROM_DATABASE=GT218M [GeForce 310M] +@@ -25431,127 +25431,127 @@ pci:v000010DEd00000A7A* + ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] + + pci:v000010DEd00000A7Asv0000104Dsd0000907E* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC50* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC61* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC71* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FC90* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCC0* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCD0* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCE2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FCF2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD16* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD40* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD50* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD52* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD61* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD71* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD92* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FD96* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FDD0* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FDD2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001179sd0000FDFE* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C0A2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C0B2* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C581* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C587* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C588* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C597* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv0000144Dsd0000C606* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001462sd0000AA51* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AA58* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AC71* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AC81* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001462sd0000AC82* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001462sd0000AE33* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001642sd00003980* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv000017AAsd00003950* +- ID_MODEL_FROM_DATABASE=GeForce 405M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) + + pci:v000010DEd00000A7Asv000017AAsd0000397D* +- ID_MODEL_FROM_DATABASE=GeForce 405M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) + + pci:v000010DEd00000A7Asv00001B0Asd00002091* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7Asv00001B0Asd000090B4* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001BFDsd00000003* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001BFDsd00008006* +- ID_MODEL_FROM_DATABASE=GeForce 405 ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) + + pci:v000010DEd00000A7Asv00001BFDsd00008007* +- ID_MODEL_FROM_DATABASE=GeForce 315M ++ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) + + pci:v000010DEd00000A7B* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 505] +@@ -25593,64 +25593,64 @@ pci:v000010DEd00000A98* + ID_MODEL_FROM_DATABASE=MCP79 Memory Controller + + pci:v000010DEd00000A98sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (iMac 9,1) + + pci:v000010DEd00000AA0* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AA0sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AA2* + ID_MODEL_FROM_DATABASE=MCP79 SMBus + + pci:v000010DEd00000AA2sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 SMBus (Apple iMac 9,1) + + pci:v000010DEd00000AA2sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 SMBus (IONITX-F-E) + + pci:v000010DEd00000AA3* + ID_MODEL_FROM_DATABASE=MCP79 Co-processor + + pci:v000010DEd00000AA3sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (Apple iMac 9,1) + + pci:v000010DEd00000AA3sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (IONITX-F-E) + + pci:v000010DEd00000AA4* + ID_MODEL_FROM_DATABASE=MCP79 Memory Controller + + pci:v000010DEd00000AA4sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (IONITX-F-E) + + pci:v000010DEd00000AA5* + ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller + + pci:v000010DEd00000AA5sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA5sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) + + pci:v000010DEd00000AA6* + ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller + + pci:v000010DEd00000AA6sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA6sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) + + pci:v000010DEd00000AA7* + ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller + + pci:v000010DEd00000AA7sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA7sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) + + pci:v000010DEd00000AA8* + ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller +@@ -25659,10 +25659,10 @@ pci:v000010DEd00000AA9* + ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller + + pci:v000010DEd00000AA9sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) + + pci:v000010DEd00000AA9sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) + + pci:v000010DEd00000AAA* + ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller +@@ -25671,7 +25671,7 @@ pci:v000010DEd00000AAB* + ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge + + pci:v000010DEd00000AABsv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AAC* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge +@@ -25680,13 +25680,13 @@ pci:v000010DEd00000AAD* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge + + pci:v000010DEd00000AADsv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (IONITX-F-E) + + pci:v000010DEd00000AAE* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge + + pci:v000010DEd00000AAEsv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AAF* + ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge +@@ -25695,10 +25695,10 @@ pci:v000010DEd00000AB0* + ID_MODEL_FROM_DATABASE=MCP79 Ethernet + + pci:v000010DEd00000AB0sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (Apple iMac 9,1) + + pci:v000010DEd00000AB0sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (IONITX-F-E) + + pci:v000010DEd00000AB1* + ID_MODEL_FROM_DATABASE=MCP79 Ethernet +@@ -25713,7 +25713,7 @@ pci:v000010DEd00000AB4* + ID_MODEL_FROM_DATABASE=MCP79 SATA Controller + + pci:v000010DEd00000AB4sv000019DAsd0000A123* +- ID_MODEL_FROM_DATABASE=IONITX-F-E ++ ID_MODEL_FROM_DATABASE=MCP79 SATA Controller (IONITX-F-E) + + pci:v000010DEd00000AB5* + ID_MODEL_FROM_DATABASE=MCP79 SATA Controller +@@ -25731,7 +25731,7 @@ pci:v000010DEd00000AB9* + ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller + + pci:v000010DEd00000AB9sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller (Apple iMac 9,1) + + pci:v000010DEd00000ABA* + ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller +@@ -25755,7 +25755,7 @@ pci:v000010DEd00000AC0* + ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio + + pci:v000010DEd00000AC0sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio (Apple iMac 9,1) + + pci:v000010DEd00000AC1* + ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio +@@ -25770,7 +25770,7 @@ pci:v000010DEd00000AC4* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AC4sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AC5* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge +@@ -25779,13 +25779,13 @@ pci:v000010DEd00000AC6* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AC6sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AC7* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge + + pci:v000010DEd00000AC7sv000010DEsd0000CB79* +- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 ++ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) + + pci:v000010DEd00000AC8* + ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge +@@ -25794,22 +25794,22 @@ pci:v000010DEd00000AD0* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) + + pci:v000010DEd00000AD0sv00001462sd00007508* +- ID_MODEL_FROM_DATABASE=K9N2GM-FIH ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K9N2GM-FIH) + + pci:v000010DEd00000AD0sv00001849sd00000AD0* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K10N78FullHD-hSLI R3.0 IDE) + + pci:v000010DEd00000AD4* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller + + pci:v000010DEd00000AD4sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (Pavilion p6310f) + + pci:v000010DEd00000AD4sv00001043sd000082E8* +- ID_MODEL_FROM_DATABASE=M3N72-D ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (M3N72-D) + + pci:v000010DEd00000AD4sv00001849sd00000AD4* +- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 AHCI Controller ++ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (K10N78FullHD-hSLI R3.0 AHCI Controller) + + pci:v000010DEd00000AD8* + ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (RAID mode) +@@ -25818,16 +25818,16 @@ pci:v000010DEd00000BE2* + ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller + + pci:v000010DEd00000BE2sv00001043sd00008311* +- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 ++ ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller (ENGT220/DI/1GD3(LP)/V2) + + pci:v000010DEd00000BE3* + ID_MODEL_FROM_DATABASE=High Definition Audio Controller + + pci:v000010DEd00000BE3sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (Latitude E6510) + + pci:v000010DEd00000BE3sv000010DEsd0000066D* +- ID_MODEL_FROM_DATABASE=G98 [GeForce 8400GS] ++ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (G98 [GeForce 8400GS]) + + pci:v000010DEd00000BE4* + ID_MODEL_FROM_DATABASE=High Definition Audio Controller +@@ -25839,22 +25839,22 @@ pci:v000010DEd00000BE9* + ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller + + pci:v000010DEd00000BE9sv00001558sd00008687* +- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU ++ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (CLEVO/KAPOK W860CU) + + pci:v000010DEd00000BE9sv00003842sd00001452* +- ID_MODEL_FROM_DATABASE=GeForce GTS 450 ++ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (GeForce GTS 450) + + pci:v000010DEd00000BEA* + ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller + + pci:v000010DEd00000BEAsv00003842sd00001430* +- ID_MODEL_FROM_DATABASE=GeForce GT 430 ++ ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller (GeForce GT 430) + + pci:v000010DEd00000BEB* + ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller + + pci:v000010DEd00000BEBsv00001462sd00002322* +- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC ++ ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller (N460GTX Cyclone 1GD5/OC) + + pci:v000010DEd00000BEE* + ID_MODEL_FROM_DATABASE=GF116 High Definition Audio Controller +@@ -25968,7 +25968,7 @@ pci:v000010DEd00000DD1* + ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] + + pci:v000010DEd00000DD1sv00001558sd00008687* +- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU ++ ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] (CLEVO/KAPOK W860CU) + + pci:v000010DEd00000DD2* + ID_MODEL_FROM_DATABASE=GF106M [GeForce GT 445M] +@@ -25983,7 +25983,7 @@ pci:v000010DEd00000DD8* + ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] + + pci:v000010DEd00000DD8sv000010DEsd00000914* +- ID_MODEL_FROM_DATABASE=Quadro 2000D ++ ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] (Quadro 2000D) + + pci:v000010DEd00000DDA* + ID_MODEL_FROM_DATABASE=GF106GLM [Quadro 2000M] +@@ -25995,7 +25995,7 @@ pci:v000010DEd00000DE1* + ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] + + pci:v000010DEd00000DE1sv00003842sd00001430* +- ID_MODEL_FROM_DATABASE=GeForce GT 430 ++ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] (GeForce GT 430) + + pci:v000010DEd00000DE2* + ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 420] +@@ -26019,49 +26019,49 @@ pci:v000010DEd00000DE9* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] + + pci:v000010DEd00000DE9sv00001025sd00000692* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000725* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000728* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd0000072B* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd0000072E* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000753* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv00001025sd00000754* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) + + pci:v000010DEd00000DE9sv000017AAsd00003977* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 640M LE) + + pci:v000010DEd00000DE9sv00001B0Asd00002210* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 635M) + + pci:v000010DEd00000DEA* + ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] + + pci:v000010DEd00000DEAsv000017AAsd0000365A* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd0000365B* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd0000365E* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd00003660* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEAsv000017AAsd0000366C* +- ID_MODEL_FROM_DATABASE=GeForce 615 ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) + + pci:v000010DEd00000DEB* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 555M] +@@ -26094,10 +26094,10 @@ pci:v000010DEd00000DF4* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] + + pci:v000010DEd00000DF4sv0000152Dsd00000952* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) + + pci:v000010DEd00000DF4sv0000152Dsd00000953* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) + + pci:v000010DEd00000DF5* + ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 525M] +@@ -26124,7 +26124,7 @@ pci:v000010DEd00000E08* + ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller + + pci:v000010DEd00000E08sv000010B0sd0000104A* +- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 ++ ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller (Gainward GeForce GT 610) + + pci:v000010DEd00000E09* + ID_MODEL_FROM_DATABASE=GF110 High Definition Audio Controller +@@ -26145,16 +26145,16 @@ pci:v000010DEd00000E1B* + ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller + + pci:v000010DEd00000E1Bsv0000103Csd0000197B* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (ZBook 15) + + pci:v000010DEd00000E1Bsv00001043sd00008428* +- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 ++ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (GTX650-DC-1GD5) + + pci:v000010DEd00000E22* + ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] + + pci:v000010DEd00000E22sv00001462sd00002322* +- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC ++ ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] (N460GTX Cyclone 1GD5/OC) + + pci:v000010DEd00000E23* + ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460 SE] +@@ -26193,7 +26193,7 @@ pci:v000010DEd00000FC6* + ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] + + pci:v000010DEd00000FC6sv00001043sd00008428* +- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 ++ ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) + + pci:v000010DEd00000FCD* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] +@@ -26205,34 +26205,34 @@ pci:v000010DEd00000FD1* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] + + pci:v000010DEd00000FD1sv00001043sd00001597* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD1sv00001043sd000015A7* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD1sv00001043sd00002103* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (N56VZ) + + pci:v000010DEd00000FD1sv00001043sd00002105* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD1sv00001043sd00002141* +- ID_MODEL_FROM_DATABASE=GeForce GT 650M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) + + pci:v000010DEd00000FD2* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] + + pci:v000010DEd00000FD2sv00001028sd0000054F* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) + + pci:v000010DEd00000FD2sv00001028sd0000055F* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) + + pci:v000010DEd00000FD2sv00001028sd00000595* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) + + pci:v000010DEd00000FD2sv00001028sd000005B2* +- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) + + pci:v000010DEd00000FD3* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M LE] +@@ -26265,7 +26265,7 @@ pci:v000010DEd00000FE3* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] + + pci:v000010DEd00000FE3sv000017AAsd00003675* +- ID_MODEL_FROM_DATABASE=GeForce GT 745A ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) + + pci:v000010DEd00000FE4* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M] +@@ -26280,7 +26280,7 @@ pci:v000010DEd00000FE7* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] + + pci:v000010DEd00000FE7sv000010DEsd0000101E* +- ID_MODEL_FROM_DATABASE=GRID K100 ++ ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] (GRID K100) + + pci:v000010DEd00000FE9* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M Mac Edition] +@@ -26304,13 +26304,13 @@ pci:v000010DEd00000FF6* + ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] + + pci:v000010DEd00000FF6sv0000103Csd0000197B* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] (ZBook 15) + + pci:v000010DEd00000FF7* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] + + pci:v000010DEd00000FF7sv000010DEsd00001037* +- ID_MODEL_FROM_DATABASE=GRID K140Q ++ ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] (GRID K140Q) + + pci:v000010DEd00000FF8* + ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K500M] +@@ -26343,37 +26343,37 @@ pci:v000010DEd00001004* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] + + pci:v000010DEd00001004sv00003842sd00000784* +- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 SC w/ ACX Cooler] ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 SC w/ ACX Cooler]) + + pci:v000010DEd00001004sv00003842sd00001784* +- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler] ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler]) + + pci:v000010DEd00001004sv00003842sd00001788* +- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler] ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler]) + + pci:v000010DEd00001005* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] + + pci:v000010DEd00001005sv00001043sd00008451* +- ID_MODEL_FROM_DATABASE=GTXTITAN-6GD5 ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GTXTITAN-6GD5) + + pci:v000010DEd00001005sv000010DEsd00001035* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) + + pci:v000010DEd00001005sv00003842sd00002790* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) + + pci:v000010DEd00001005sv00003842sd00002791* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC) + + pci:v000010DEd00001005sv00003842sd00002793* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Signature ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Signature) + + pci:v000010DEd00001005sv00003842sd00002794* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper) + + pci:v000010DEd00001005sv00003842sd00002795* +- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature ++ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper Signature) + + pci:v000010DEd00001007* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] +@@ -26436,7 +26436,7 @@ pci:v000010DEd0000104A* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] + + pci:v000010DEd0000104Asv000010B0sd0000104A* +- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 ++ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] (Gainward GeForce GT 610) + + pci:v000010DEd0000104B* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] +@@ -26469,37 +26469,37 @@ pci:v000010DEd00001058* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] + + pci:v000010DEd00001058sv0000103Csd00002AED* +- ID_MODEL_FROM_DATABASE=GeForce 610 ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) + + pci:v000010DEd00001058sv0000103Csd00002AF1* +- ID_MODEL_FROM_DATABASE=GeForce 610 ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) + + pci:v000010DEd00001058sv00001043sd000010AC* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd00001058sv00001043sd000010BC* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd00001058sv00001043sd00001652* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd00001058sv000017AAsd0000367A* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) + + pci:v000010DEd00001058sv000017AAsd00003682* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) + + pci:v000010DEd00001058sv000017AAsd00003687* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) + + pci:v000010DEd00001058sv000017AAsd00003692* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 705A) + + pci:v000010DEd00001058sv000017AAsd00003695* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) + + pci:v000010DEd00001058sv000017AAsd0000A117* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) + + pci:v000010DEd00001059* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] +@@ -26508,25 +26508,25 @@ pci:v000010DEd0000105A* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] + + pci:v000010DEd0000105Asv00001043sd00002111* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd0000105Asv00001043sd00002112* +- ID_MODEL_FROM_DATABASE=GeForce GT 610M ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) + + pci:v000010DEd0000105B* + ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] + + pci:v000010DEd0000105Bsv0000103Csd00002AFB* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) + + pci:v000010DEd0000105Bsv000017AAsd0000309D* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) + + pci:v000010DEd0000105Bsv000017AAsd000030B1* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) + + pci:v000010DEd0000105Bsv000017AAsd000036A1* +- ID_MODEL_FROM_DATABASE=GeForce 800A ++ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) + + pci:v000010DEd0000107C* + ID_MODEL_FROM_DATABASE=GF119 [NVS 315] +@@ -26541,7 +26541,7 @@ pci:v000010DEd00001081* + ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] + + pci:v000010DEd00001081sv000010DEsd0000087E* +- ID_MODEL_FROM_DATABASE=Leadtek WinFast GTX 570 ++ ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] (Leadtek WinFast GTX 570) + + pci:v000010DEd00001082* + ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 560 Ti OEM] +@@ -26571,31 +26571,31 @@ pci:v000010DEd00001091* + ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] + + pci:v000010DEd00001091sv000010DEsd0000088E* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001091sv000010DEsd00000891* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001091sv000010DEsd00000974* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001091sv000010DEsd0000098D* +- ID_MODEL_FROM_DATABASE=Tesla X2090 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) + + pci:v000010DEd00001094* + ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] + + pci:v000010DEd00001094sv000010DEsd00000888* +- ID_MODEL_FROM_DATABASE=Tesla M2075 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] (Tesla M2075) + + pci:v000010DEd00001096* + ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] + + pci:v000010DEd00001096sv000010DEsd00000910* +- ID_MODEL_FROM_DATABASE=Tesla C2075 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2075) + + pci:v000010DEd00001096sv000010DEsd00000911* +- ID_MODEL_FROM_DATABASE=Tesla C2050 ++ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2050) + + pci:v000010DEd0000109A* + ID_MODEL_FROM_DATABASE=GF100GLM [Quadro 5010M] +@@ -26604,7 +26604,7 @@ pci:v000010DEd0000109B* + ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] + + pci:v000010DEd0000109Bsv000010DEsd00000918* +- ID_MODEL_FROM_DATABASE=Quadro 7000 ++ ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] (Quadro 7000) + + pci:v000010DEd000010C0* + ID_MODEL_FROM_DATABASE=GT218 [GeForce 9300 GS Rev. 2] +@@ -26622,622 +26622,622 @@ pci:v000010DEd00001140* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] + + pci:v000010DEd00001140sv00001025sd00000600* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000606* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000064A* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000064C* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000067A* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000680* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000686* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000689* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000068B* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000068D* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000068E* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000691* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000692* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000694* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000702* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000719* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000725* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000728* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000072B* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd0000072E* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000732* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001025sd00000763* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000773* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000774* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000776* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd0000077A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077B* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077C* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077D* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077E* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd0000077F* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001025sd00000781* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000798* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000799* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd0000079B* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd0000079C* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000807* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000821* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000823* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000830* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000837* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001025sd00000841* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001028sd0000054D* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd0000054E* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000554* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001028sd00000557* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001028sd00000562* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd00000565* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000568* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000590* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd00000592* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd00000594* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd00000595* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005A2* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005B1* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005B3* +- ID_MODEL_FROM_DATABASE=GeForce GT 625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) + + pci:v000010DEd00001140sv00001028sd000005DA* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd000005DE* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001028sd000005E0* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001028sd000005E8* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv00001028sd000005F4* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv0000103Csd000018EF* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018F9* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018FB* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018FD* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd000018FF* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000103Csd00002AEF* +- ID_MODEL_FROM_DATABASE=GeForce GT 720A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) + + pci:v000010DEd00001140sv0000103Csd00002AF9* +- ID_MODEL_FROM_DATABASE=GeForce 710A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710A) + + pci:v000010DEd00001140sv00001043sd000010DD* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv00001043sd000010ED* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv00001043sd000011FD* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000124D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000126D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000131D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd000013FD* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd000014C7* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd00001507* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001043sd000015AD* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd000015ED* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000160D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000163D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000166D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd000016CD* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd000016DD* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000170D* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd00002132* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001043sd00002136* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv00001043sd000021BA* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd000021FA* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000220A* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000221A* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001043sd0000223A* +- ID_MODEL_FROM_DATABASE=GeForce GT 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) + + pci:v000010DEd00001140sv00001043sd0000224A* +- ID_MODEL_FROM_DATABASE=GeForce GT 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) + + pci:v000010DEd00001140sv00001043sd0000227A* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd0000228A* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001043sd00008595* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001072sd0000152D* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000010CFsd000017F5* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001179sd0000FA01* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA02* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA03* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA05* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA11* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA13* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA18* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA19* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA21* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA23* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA2A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA32* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA33* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA36* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA38* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA42* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA43* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA45* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA47* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA49* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA58* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA59* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA88* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001179sd0000FA89* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000144Dsd0000B092* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv0000144Dsd0000C0D5* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000144Dsd0000C0D7* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv0000144Dsd0000C0E2* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv0000144Dsd0000C0E3* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv0000144Dsd0000C0E4* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv0000144Dsd0000C652* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv0000144Dsd0000C709* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000144Dsd0000C711* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000144Dsd0000C736* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001462sd000010B8* +- ID_MODEL_FROM_DATABASE=GeForce GT 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) + + pci:v000010DEd00001140sv00001462sd000010E9* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001462sd00001116* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001462sd0000AA33* +- ID_MODEL_FROM_DATABASE=GeForce 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) + + pci:v000010DEd00001140sv00001462sd0000AAA2* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001462sd0000AAA3* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001462sd0000AE71* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv0000152Dsd00000926* +- ID_MODEL_FROM_DATABASE=GeForce 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 620M) + + pci:v000010DEd00001140sv0000152Dsd00000982* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000152Dsd00000983* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000152Dsd00001012* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000152Dsd00001030* +- ID_MODEL_FROM_DATABASE=GeForce GT 630M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + + pci:v000010DEd00001140sv0000152Dsd00001055* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv0000152Dsd00001067* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv0000152Dsd00001072* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00002200* +- ID_MODEL_FROM_DATABASE=NVS 5200M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + + pci:v000010DEd00001140sv000017AAsd00002213* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00002220* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000309C* +- ID_MODEL_FROM_DATABASE=GeForce GT 720A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) + + pci:v000010DEd00001140sv000017AAsd000030B4* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd00003656* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv000017AAsd0000365A* +- ID_MODEL_FROM_DATABASE=GeForce 705M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) + + pci:v000010DEd00001140sv000017AAsd0000365E* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd0000366C* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd00003685* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd00003686* +- ID_MODEL_FROM_DATABASE=GeForce 800M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) + + pci:v000010DEd00001140sv000017AAsd00003687* +- ID_MODEL_FROM_DATABASE=GeForce 705A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705A) + + pci:v000010DEd00001140sv000017AAsd00003696* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369B* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369C* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369D* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd0000369E* +- ID_MODEL_FROM_DATABASE=GeForce 820A ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) + + pci:v000010DEd00001140sv000017AAsd00003800* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003801* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003802* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003803* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003804* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003901* +- ID_MODEL_FROM_DATABASE=GeForce 610M / GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) + + pci:v000010DEd00001140sv000017AAsd00003902* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00003903* +- ID_MODEL_FROM_DATABASE=GeForce 610M/710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M/710M) + + pci:v000010DEd00001140sv000017AAsd00003904* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M/625M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M/625M) + + pci:v000010DEd00001140sv000017AAsd00003905* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003910* +- ID_MODEL_FROM_DATABASE=GeForce 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) + + pci:v000010DEd00001140sv000017AAsd00003912* +- ID_MODEL_FROM_DATABASE=GeForce 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) + + pci:v000010DEd00001140sv000017AAsd00003977* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00003983* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) + + pci:v000010DEd00001140sv000017AAsd00005001* +- ID_MODEL_FROM_DATABASE=GeForce 610M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) + + pci:v000010DEd00001140sv000017AAsd00005003* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00005005* +- ID_MODEL_FROM_DATABASE=GeForce 705M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) + + pci:v000010DEd00001140sv000017AAsd0000500D* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv000017AAsd00005014* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00005017* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00005019* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000501A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000501F* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd00005025* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd00005027* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000502A* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000502B* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000502D* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000502E* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000502F* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv000017AAsd0000503E* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000503F* +- ID_MODEL_FROM_DATABASE=GeForce 820M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + + pci:v000010DEd00001140sv00001854sd00000177* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001854sd00000180* +- ID_MODEL_FROM_DATABASE=GeForce 710M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv00001854sd00000190* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001854sd00000192* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001140sv00001B0Asd000020DD* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001B0Asd000020DF* +- ID_MODEL_FROM_DATABASE=GeForce GT 620M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + + pci:v000010DEd00001140sv00001B0Asd00002202* +- ID_MODEL_FROM_DATABASE=GeForce GT 720M ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + + pci:v000010DEd00001180* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] + + pci:v000010DEd00001180sv00001043sd000083F1* +- ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GTX680-DC2-2GD5) + + pci:v000010DEd00001180sv00003842sd00003682* +- ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GeForce GTX 680 Mac Edition) + + pci:v000010DEd00001182* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti] +@@ -27252,7 +27252,7 @@ pci:v000010DEd00001185* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] + + pci:v000010DEd00001185sv000010DEsd0000106F* +- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] (GK104 [GeForce GTX 760 OEM]) + + pci:v000010DEd00001187* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760] +@@ -27264,7 +27264,7 @@ pci:v000010DEd00001189* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] + + pci:v000010DEd00001189sv000010DEsd00001074* +- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] (GK104 [GeForce GTX 760 Ti OEM]) + + pci:v000010DEd0000118A* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K520] +@@ -27279,7 +27279,7 @@ pci:v000010DEd0000118D* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] + + pci:v000010DEd0000118Dsv000010DEsd0000101D* +- ID_MODEL_FROM_DATABASE=GRID K200 ++ ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] (GRID K200) + + pci:v000010DEd0000118E* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] +@@ -27324,7 +27324,7 @@ pci:v000010DEd000011A3* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] + + pci:v000010DEd000011A3sv0000106Bsd0000010D* +- ID_MODEL_FROM_DATABASE=iMac 13,2 ++ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] (iMac 13,2) + + pci:v000010DEd000011A7* + ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 675MX] +@@ -27333,10 +27333,10 @@ pci:v000010DEd000011B0* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] + + pci:v000010DEd000011B0sv000010DEsd0000101A* +- ID_MODEL_FROM_DATABASE=GRID K240Q ++ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K240Q) + + pci:v000010DEd000011B0sv000010DEsd0000101B* +- ID_MODEL_FROM_DATABASE=GRID K260Q ++ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K260Q) + + pci:v000010DEd000011B1* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] +@@ -27375,28 +27375,28 @@ pci:v000010DEd000011C2* + ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] + + pci:v000010DEd000011C2sv00001043sd0000845B* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost DirectCU II OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost DirectCU II OC) + + pci:v000010DEd000011C2sv00001462sd00002874* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost TwinFrozr II OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost TwinFrozr II OC) + + pci:v000010DEd000011C2sv00001569sd000011C2* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) + + pci:v000010DEd000011C2sv000019DAsd00001281* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) + + pci:v000010DEd000011C2sv00003842sd00003657* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost) + + pci:v000010DEd000011C2sv00003842sd00003658* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost Superclocked ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost Superclocked) + + pci:v000010DEd000011C3* + ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] + + pci:v000010DEd000011C3sv000010DEsd00001030* +- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti OEM ++ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] (GeForce GTX 650 Ti OEM) + + pci:v000010DEd000011C4* + ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 645 OEM] +@@ -27423,7 +27423,7 @@ pci:v000010DEd000011E3* + ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] + + pci:v000010DEd000011E3sv000017AAsd00003683* +- ID_MODEL_FROM_DATABASE=GeForce GTX 760A ++ ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] (GeForce GTX 760A) + + pci:v000010DEd000011FA* + ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] +@@ -27486,55 +27486,55 @@ pci:v000010DEd00001247* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] + + pci:v000010DEd00001247sv00001043sd00001752* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001247sv00001043sd00002050* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001247sv00001043sd00002051* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001247sv00001043sd0000212A* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001247sv00001043sd0000212B* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001247sv00001043sd0000212C* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001247sv0000152Dsd00000930* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001248* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] + + pci:v000010DEd00001248sv0000152Dsd00000930* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001248sv000017C0sd000010E7* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv000017C0sd000010E8* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv000017C0sd000010EA* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00000890* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00000891* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00001795* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00001796* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001248sv00001854sd00003005* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd00001249* + ID_MODEL_FROM_DATABASE=GF116 [GeForce GTS 450 Rev. 3] +@@ -27546,19 +27546,19 @@ pci:v000010DEd0000124D* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] + + pci:v000010DEd0000124Dsv00001028sd00000491* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001028sd00000570* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001028sd00000571* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001462sd0000108D* +- ID_MODEL_FROM_DATABASE=GeForce GT 555M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) + + pci:v000010DEd0000124Dsv00001462sd000010CC* +- ID_MODEL_FROM_DATABASE=GeForce GT 635M ++ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) + + pci:v000010DEd00001251* + ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 560M] +@@ -27582,16 +27582,16 @@ pci:v000010DEd00001290* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] + + pci:v000010DEd00001290sv0000103Csd00002AFA* +- ID_MODEL_FROM_DATABASE=GeForce GT 730A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) + + pci:v000010DEd00001290sv0000103Csd00002B04* +- ID_MODEL_FROM_DATABASE=GeForce GT 730A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) + + pci:v000010DEd00001290sv00001043sd000013AD* +- ID_MODEL_FROM_DATABASE=GeForce GT 730M ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) + + pci:v000010DEd00001290sv00001043sd000013CD* +- ID_MODEL_FROM_DATABASE=GeForce GT 730M ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) + + pci:v000010DEd00001291* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 735M] +@@ -27600,10 +27600,10 @@ pci:v000010DEd00001292* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] + + pci:v000010DEd00001292sv000017AAsd00003675* +- ID_MODEL_FROM_DATABASE=GeForce GT 740A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) + + pci:v000010DEd00001292sv000017AAsd00003684* +- ID_MODEL_FROM_DATABASE=GeForce GT 740A ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) + + pci:v000010DEd00001293* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] +@@ -27636,13 +27636,13 @@ pci:v000010DEd00001341* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] + + pci:v000010DEd00001341sv000017AAsd00003697* +- ID_MODEL_FROM_DATABASE=GeForce 840A ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) + + pci:v000010DEd00001341sv000017AAsd00003699* +- ID_MODEL_FROM_DATABASE=GeForce 840A ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) + + pci:v000010DEd00001341sv000017AAsd0000369C* +- ID_MODEL_FROM_DATABASE=GeForce 840A ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) + + pci:v000010DEd00001380* + ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] +@@ -27660,10 +27660,10 @@ pci:v000010DEd00001391* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] + + pci:v000010DEd00001391sv000017AAsd00003697* +- ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) + + pci:v000010DEd00001391sv000017AAsd0000A125* +- ID_MODEL_FROM_DATABASE=GeForce GTX 850A ++ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) + + pci:v000010DEd00001392* + ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] +@@ -27678,13 +27678,13 @@ pci:v000010DFd00000720* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) + + pci:v000010DFd00000720sv000017AAsd00001056* +- ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14102-UX-L AnyFabric) + + pci:v000010DFd00000720sv000017AAsd00001057* +- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UX-L AnyFabric) + + pci:v000010DFd00000720sv000017AAsd00001059* +- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UT-L AnyFabric) + + pci:v000010DFd00000722* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) +@@ -27729,10 +27729,10 @@ pci:v000010DFd0000E220* + ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) + + pci:v000010DFd0000E220sv000017AAsd00001054* +- ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16002B-M6-L AnyFabric) + + pci:v000010DFd0000E220sv000017AAsd00001055* +- ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric ++ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16004B-M8-L AnyFabric) + + pci:v000010DFd0000E240* + ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) +@@ -27831,7 +27831,7 @@ pci:v000010DFd0000FC00* + ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter + + pci:v000010DFd0000FC00sv000010DFsd0000FC00* +- ID_MODEL_FROM_DATABASE=LP10000 LightPulse Fibre Channel Host Adapter ++ ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter (LP10000 LightPulse Fibre Channel Host Adapter) + + pci:v000010DFd0000FC10* + ID_MODEL_FROM_DATABASE=Helios-X LightPulse Fibre Channel Host Adapter +@@ -27897,7 +27897,7 @@ pci:v000010E1d00000391* + ID_MODEL_FROM_DATABASE=TRM-S1040 + + pci:v000010E1d00000391sv000010E1sd00000391* +- ID_MODEL_FROM_DATABASE=DC-315U SCSI-3 Host Adapter ++ ID_MODEL_FROM_DATABASE=TRM-S1040 (DC-315U SCSI-3 Host Adapter) + + pci:v000010E1d0000690C* + ID_MODEL_FROM_DATABASE=DC-690c +@@ -27921,7 +27921,7 @@ pci:v000010E3d00000148* + ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] + + pci:v000010E3d00000148sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] (VR11 Single Board Computer) + + pci:v000010E3d00000860* + ID_MODEL_FROM_DATABASE=CA91C860 [QSpan] +@@ -28107,25 +28107,25 @@ pci:v000010ECd00005227* + ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader + + pci:v000010ECd00005227sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad T440p) + + pci:v000010ECd00005227sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad X240) + + pci:v000010ECd00005229* + ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader + + pci:v000010ECd00005229sv00001025sd00000813* +- ID_MODEL_FROM_DATABASE=Aspire R7-571 ++ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (Aspire R7-571) + + pci:v000010ECd00005229sv0000103Csd0000194E* +- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook ++ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (ProBook 455 G1 Notebook) + + pci:v000010ECd00005249* + ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader + + pci:v000010ECd00005249sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) + + pci:v000010ECd00005288* + ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader +@@ -28134,334 +28134,334 @@ pci:v000010ECd00008029* + ID_MODEL_FROM_DATABASE=RTL-8029(AS) + + pci:v000010ECd00008029sv000010B8sd00002011* +- ID_MODEL_FROM_DATABASE=EZ-Card (SMC1208) ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EZ-Card (SMC1208)) + + pci:v000010ECd00008029sv000010ECsd00008029* + ID_MODEL_FROM_DATABASE=RTL-8029(AS) + + pci:v000010ECd00008029sv00001113sd00001208* +- ID_MODEL_FROM_DATABASE=EN1208 ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EN1208) + + pci:v000010ECd00008029sv00001186sd00000300* +- ID_MODEL_FROM_DATABASE=DE-528 ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (DE-528) + + pci:v000010ECd00008029sv00001259sd00002400* +- ID_MODEL_FROM_DATABASE=AT-2400 ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (AT-2400) + + pci:v000010ECd00008029sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (QEMU Virtual Machine) + + pci:v000010ECd00008129* + ID_MODEL_FROM_DATABASE=RTL-8129 + + pci:v000010ECd00008129sv000010ECsd00008129* +- ID_MODEL_FROM_DATABASE=RT8129 Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL-8129 (RT8129 Fast Ethernet Adapter) + + pci:v000010ECd00008129sv000011ECsd00008129* +- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCIe Gigabit Ethernet (misconfigured) ++ ID_MODEL_FROM_DATABASE=RTL-8129 (RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)) + + pci:v000010ECd00008136* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller + + pci:v000010ECd00008136sv0000103Csd00002AB1* +- ID_MODEL_FROM_DATABASE=Pavillion p6774 ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) + + pci:v000010ECd00008136sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) + + pci:v000010ECd00008136sv00001179sd0000FF64* +- ID_MODEL_FROM_DATABASE=RTL8102E PCI-E Fast Ethernet NIC ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) + + pci:v000010ECd00008138* + ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter + + pci:v000010ECd00008138sv000010ECsd00008138* +- ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter (RT8139 (B/C) Fast Ethernet Adapter) + + pci:v000010ECd00008139* + ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter + + pci:v000010ECd00008139sv00000357sd0000000A* +- ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TTP-Monitoring Card V2.0) + + pci:v000010ECd00008139sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TravelMate 290) + + pci:v000010ECd00008139sv00001025sd00008920* +- ID_MODEL_FROM_DATABASE=ALN-325 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) + + pci:v000010ECd00008139sv00001025sd00008921* +- ID_MODEL_FROM_DATABASE=ALN-325 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) + + pci:v000010ECd00008139sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (NX9500) + + pci:v000010ECd00008139sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Pavilion t3030.de Desktop PC) + + pci:v000010ECd00008139sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Presario C700) + + pci:v000010ECd00008139sv00001043sd00001045* +- ID_MODEL_FROM_DATABASE=L8400B or L3C/S notebook ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (L8400B or L3C/S notebook) + + pci:v000010ECd00008139sv00001043sd00008109* +- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P5P800-MX Mainboard) + + pci:v000010ECd00008139sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MIM2000) + + pci:v000010ECd00008139sv000010BDsd00000320* +- ID_MODEL_FROM_DATABASE=EP-320X-R ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EP-320X-R) + + pci:v000010ECd00008139sv000010ECsd00008139* + ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter + + pci:v000010ECd00008139sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Panasonic CF-Y5 laptop) + + pci:v000010ECd00008139sv00001113sd0000EC01* +- ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LevelOne FNC-0107TX/FNC-0109TX) + + pci:v000010ECd00008139sv00001186sd00001300* +- ID_MODEL_FROM_DATABASE=DFE-538TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DFE-538TX) + + pci:v000010ECd00008139sv00001186sd00001320* +- ID_MODEL_FROM_DATABASE=SN5200 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (SN5200) + + pci:v000010ECd00008139sv00001186sd00008139* +- ID_MODEL_FROM_DATABASE=DRN-32TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DRN-32TX) + + pci:v000010ECd00008139sv000011F6sd00008139* +- ID_MODEL_FROM_DATABASE=FN22-3(A) LinxPRO Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN22-3(A) LinxPRO Ethernet Adapter) + + pci:v000010ECd00008139sv00001259sd00002500* +- ID_MODEL_FROM_DATABASE=AT-2500TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX) + + pci:v000010ECd00008139sv00001259sd00002503* +- ID_MODEL_FROM_DATABASE=AT-2500TX/ACPI ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX/ACPI) + + pci:v000010ECd00008139sv00001385sd0000F31D* +- ID_MODEL_FROM_DATABASE=FA311 v2 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FA311 v2) + + pci:v000010ECd00008139sv00001395sd00002100* +- ID_MODEL_FROM_DATABASE=AMB2100 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AMB2100) + + pci:v000010ECd00008139sv00001429sd0000D010* +- ID_MODEL_FROM_DATABASE=ND010/ND012 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ND010/ND012) + + pci:v000010ECd00008139sv00001432sd00009130* +- ID_MODEL_FROM_DATABASE=EN-9130TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EN-9130TX) + + pci:v000010ECd00008139sv00001436sd00008139* +- ID_MODEL_FROM_DATABASE=RT8139 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RT8139) + + pci:v000010ECd00008139sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P30/P35 notebook) + + pci:v000010ECd00008139sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-7VM400M/7VT600 Motherboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GA-7VM400M/7VT600 Motherboard) + + pci:v000010ECd00008139sv00001462sd00000131* +- ID_MODEL_FROM_DATABASE=MS-1013 Notebook ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MS-1013 Notebook) + + pci:v000010ECd00008139sv00001462sd0000217C* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Aspire L250) + + pci:v000010ECd00008139sv00001462sd0000788C* +- ID_MODEL_FROM_DATABASE=865PE Neo2-V Mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (865PE Neo2-V Mainboard) + + pci:v000010ECd00008139sv0000146Csd00001439* +- ID_MODEL_FROM_DATABASE=FE-1439TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FE-1439TX) + + pci:v000010ECd00008139sv00001489sd00006001* +- ID_MODEL_FROM_DATABASE=GF100TXRII ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRII) + + pci:v000010ECd00008139sv00001489sd00006002* +- ID_MODEL_FROM_DATABASE=GF100TXRA ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRA) + + pci:v000010ECd00008139sv0000149Csd0000139A* +- ID_MODEL_FROM_DATABASE=LFE-8139ATX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139ATX) + + pci:v000010ECd00008139sv0000149Csd00008139* +- ID_MODEL_FROM_DATABASE=LFE-8139TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139TX) + + pci:v000010ECd00008139sv000014CBsd00000200* +- ID_MODEL_FROM_DATABASE=LNR-100 Family 10/100 Base-TX Ethernet ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LNR-100 Family 10/100 Base-TX Ethernet) + + pci:v000010ECd00008139sv00001565sd00002300* +- ID_MODEL_FROM_DATABASE=P4TSV Onboard LAN (RTL8100B) ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P4TSV Onboard LAN (RTL8100B)) + + pci:v000010ECd00008139sv00001631sd00007003* +- ID_MODEL_FROM_DATABASE=Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard) + + pci:v000010ECd00008139sv00001695sd00009001* +- ID_MODEL_FROM_DATABASE=Onboard RTL8101L 10/100 MBit ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8101L 10/100 MBit) + + pci:v000010ECd00008139sv000016ECsd000000FF* +- ID_MODEL_FROM_DATABASE=USR997900A ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (USR997900A) + + pci:v000010ECd00008139sv00001799sd00005000* +- ID_MODEL_FROM_DATABASE=F5D5000 PCI Card/Desktop Network PCI Card ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5000 PCI Card/Desktop Network PCI Card) + + pci:v000010ECd00008139sv00001799sd00005010* +- ID_MODEL_FROM_DATABASE=F5D5010 CardBus Notebook Network Card ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5010 CardBus Notebook Network Card) + + pci:v000010ECd00008139sv0000187Esd00003303* +- ID_MODEL_FROM_DATABASE=FN312 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN312) + + pci:v000010ECd00008139sv00001904sd00008139* +- ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RTL8139D Fast Ethernet Adapter) + + pci:v000010ECd00008139sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (QEMU Virtual Machine) + + pci:v000010ECd00008139sv00002646sd00000001* +- ID_MODEL_FROM_DATABASE=KNE120TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KNE120TX) + + pci:v000010ECd00008139sv00008E2Esd00007000* +- ID_MODEL_FROM_DATABASE=KF-230TX ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX) + + pci:v000010ECd00008139sv00008E2Esd00007100* +- ID_MODEL_FROM_DATABASE=KF-230TX/2 ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX/2) + + pci:v000010ECd00008139sv0000A0A0sd00000007* +- ID_MODEL_FROM_DATABASE=ALN-325C ++ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325C) + + pci:v000010ECd00008167* + ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet + + pci:v000010ECd00008167sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-MA69G-S3H Motherboard ++ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (GA-MA69G-S3H Motherboard) + + pci:v000010ECd00008167sv00001462sd0000235C* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (P965 Neo MS-7235 mainboard) + + pci:v000010ECd00008167sv00001462sd0000236C* +- ID_MODEL_FROM_DATABASE=945P Neo3-F motherboard ++ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (945P Neo3-F motherboard) + + pci:v000010ECd00008168* + ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller + + pci:v000010ECd00008168sv00001019sd00008168* +- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) + + pci:v000010ECd00008168sv00001028sd00000283* +- ID_MODEL_FROM_DATABASE=Vostro 220 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 220) + + pci:v000010ECd00008168sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3350) + + pci:v000010ECd00008168sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3750) + + pci:v000010ECd00008168sv0000103Csd00001611* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Pavilion DM1Z-3000) + + pci:v000010ECd00008168sv0000103Csd00001950* +- ID_MODEL_FROM_DATABASE=ProBook 450/455 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (ProBook 450/455) + + pci:v000010ECd00008168sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Asus IPIBL-LB Motherboard) + + pci:v000010ECd00008168sv00001043sd000011F5* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (A6J-Q008) + + pci:v000010ECd00008168sv00001043sd000016D5* +- ID_MODEL_FROM_DATABASE=U6V/U31J laptop ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (U6V/U31J laptop) + + pci:v000010ECd00008168sv00001043sd000081AA* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P5B) + + pci:v000010ECd00008168sv00001043sd000082C6* +- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M3A78-EH Motherboard) + + pci:v000010ECd00008168sv00001043sd000083A3* +- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M4A785TD Motherboard) + + pci:v000010ECd00008168sv00001043sd00008432* +- ID_MODEL_FROM_DATABASE=P8P67 and other motherboards ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) + + pci:v000010ECd00008168sv00001043sd00008505* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) + + pci:v000010ECd00008168sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) + + pci:v000010ECd00008168sv000010ECsd00008168* +- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) + + pci:v000010ECd00008168sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard) + + pci:v000010ECd00008168sv00001462sd0000238C* +- ID_MODEL_FROM_DATABASE=Onboard RTL8111b on MSI P965 Platinum Mainboard ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Onboard RTL8111b on MSI P965 Platinum Mainboard) + + pci:v000010ECd00008168sv00001462sd0000368C* +- ID_MODEL_FROM_DATABASE=K9AG Neo2 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (K9AG Neo2) + + pci:v000010ECd00008168sv00001462sd00004180* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Wind PC MS-7418) + + pci:v000010ECd00008168sv00001462sd00007522* +- ID_MODEL_FROM_DATABASE=X58 Pro-E ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (X58 Pro-E) + + pci:v000010ECd00008168sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (CC11/CL11) + + pci:v000010ECd00008168sv00001849sd00008168* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard (one of many)) + + pci:v000010ECd00008168sv00008086sd0000D615* +- ID_MODEL_FROM_DATABASE=Desktop Board D510MO/D525MW ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Desktop Board D510MO/D525MW) + + pci:v000010ECd00008169* + ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller + + pci:v000010ECd00008169sv00001025sd00000079* +- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Aspire 5024WLMi) + + pci:v000010ECd00008169sv000010BDsd00003202* +- ID_MODEL_FROM_DATABASE=EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter) + + pci:v000010ECd00008169sv000010ECsd00008169* +- ID_MODEL_FROM_DATABASE=RTL8169/8110 Family PCI Gigabit Ethernet NIC ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (RTL8169/8110 Family PCI Gigabit Ethernet NIC) + + pci:v000010ECd00008169sv00001259sd0000C107* +- ID_MODEL_FROM_DATABASE=CG-LAPCIGT ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (CG-LAPCIGT) + + pci:v000010ECd00008169sv00001371sd0000434E* +- ID_MODEL_FROM_DATABASE=ProG-2000L ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (ProG-2000L) + + pci:v000010ECd00008169sv00001385sd0000311A* +- ID_MODEL_FROM_DATABASE=GA311 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA311) + + pci:v000010ECd00008169sv00001385sd00005200* +- ID_MODEL_FROM_DATABASE=GA511 Gigabit PC Card ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA511 Gigabit PC Card) + + pci:v000010ECd00008169sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA-8I915ME-G Mainboard) + + pci:v000010ECd00008169sv00001462sd0000030C* +- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 mainboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8N Neo-FSR v2.0 mainboard) + + pci:v000010ECd00008169sv00001462sd0000065C* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Hetis 865GV-E (MS-7065)) + + pci:v000010ECd00008169sv00001462sd0000702C* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T NEO 2 motherboard) + + pci:v000010ECd00008169sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T Neo2-F V2.0) + + pci:v000010ECd00008169sv000016ECsd0000011F* +- ID_MODEL_FROM_DATABASE=USR997903 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (USR997903) + + pci:v000010ECd00008169sv00001734sd00001091* +- ID_MODEL_FROM_DATABASE=D2030-A1 ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (D2030-A1) + + pci:v000010ECd00008169sv0000A0A0sd00000449* +- ID_MODEL_FROM_DATABASE=AK86-L motherboard ++ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (AK86-L motherboard) + + pci:v000010ECd00008171* + ID_MODEL_FROM_DATABASE=RTL8191SEvA Wireless LAN Controller +@@ -28479,7 +28479,7 @@ pci:v000010ECd00008176* + ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter + + pci:v000010ECd00008176sv00001A3Bsd00001139* +- ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter (AW-NE139H Half-size Mini PCIe Card) + + pci:v000010ECd00008177* + ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter +@@ -28494,10 +28494,10 @@ pci:v000010ECd00008180* + ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC + + pci:v000010ECd00008180sv00001385sd00004700* +- ID_MODEL_FROM_DATABASE=MA521 802.11b Wireless PC Card ++ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (MA521 802.11b Wireless PC Card) + + pci:v000010ECd00008180sv00001737sd00000019* +- ID_MODEL_FROM_DATABASE=WPC11v4 802.11b Wireless-B Notebook Adapter ++ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (WPC11v4 802.11b Wireless-B Notebook Adapter) + + pci:v000010ECd00008185* + ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller +@@ -28524,7 +28524,7 @@ pci:v000010ECd00008199* + ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller + + pci:v000010ECd00008199sv00001462sd00006894* +- ID_MODEL_FROM_DATABASE=MN54G2 / MS-6894 Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller (MN54G2 / MS-6894 Wireless Mini PCIe Card) + + pci:v000010ECd00008723* + ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter +@@ -28734,115 +28734,115 @@ pci:v00001102d00000002* + ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 + + pci:v00001102d00000002sv0000100Asd00001102* +- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF) + + pci:v00001102d00000002sv00001102sd00000020* +- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00000021* +- ID_MODEL_FROM_DATABASE=CT4620 SBLive! ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4620 SBLive!) + + pci:v00001102d00000002sv00001102sd0000002F* +- ID_MODEL_FROM_DATABASE=SBLive! mainboard implementation ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! mainboard implementation) + + pci:v00001102d00000002sv00001102sd0000100A* +- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM [SB0220] ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM [SB0220]) + + pci:v00001102d00000002sv00001102sd00004001* +- ID_MODEL_FROM_DATABASE=E-mu APS ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (E-mu APS) + + pci:v00001102d00000002sv00001102sd00008022* +- ID_MODEL_FROM_DATABASE=CT4780 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4780 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008023* +- ID_MODEL_FROM_DATABASE=CT4790 SoundBlaster PCI512 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4790 SoundBlaster PCI512) + + pci:v00001102d00000002sv00001102sd00008024* +- ID_MODEL_FROM_DATABASE=CT4760 SBLive! ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) + + pci:v00001102d00000002sv00001102sd00008025* +- ID_MODEL_FROM_DATABASE=SBLive! Mainboard Implementation ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Mainboard Implementation) + + pci:v00001102d00000002sv00001102sd00008026* +- ID_MODEL_FROM_DATABASE=CT4830 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4830 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008027* +- ID_MODEL_FROM_DATABASE=CT4832 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4832 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008028* +- ID_MODEL_FROM_DATABASE=CT4760 SBLive! OEM version ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive! OEM version) + + pci:v00001102d00000002sv00001102sd00008031* +- ID_MODEL_FROM_DATABASE=CT4831 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4831 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008040* +- ID_MODEL_FROM_DATABASE=CT4760 SBLive! ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) + + pci:v00001102d00000002sv00001102sd00008051* +- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) + + pci:v00001102d00000002sv00001102sd00008061* +- ID_MODEL_FROM_DATABASE=SBLive! Player 5.1 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Player 5.1) + + pci:v00001102d00000002sv00001102sd00008064* +- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Model SB0100 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Model SB0100) + + pci:v00001102d00000002sv00001102sd00008065* +- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Digital Model SB0220 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Digital Model SB0220) + + pci:v00001102d00000002sv00001102sd00008066* +- ID_MODEL_FROM_DATABASE=Live! 5.1 Digital [SB0228] ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (Live! 5.1 Digital [SB0228]) + + pci:v00001102d00000002sv00001102sd00008067* +- ID_MODEL_FROM_DATABASE=SBLive! 5.1 eMicro 28028 ++ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 eMicro 28028) + + pci:v00001102d00000004* + ID_MODEL_FROM_DATABASE=SB Audigy + + pci:v00001102d00000004sv00001102sd00000051* +- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player) + + pci:v00001102d00000004sv00001102sd00000053* +- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) + + pci:v00001102d00000004sv00001102sd00000058* +- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) + + pci:v00001102d00000004sv00001102sd00001002* +- ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 Platinum) + + pci:v00001102d00000004sv00001102sd00001003* +- ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0350 Audigy 2) + + pci:v00001102d00000004sv00001102sd00001007* +- ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 ++ ID_MODEL_FROM_DATABASE=SB Audigy (SB0240 Audigy 2 Platinum 6.1) + + pci:v00001102d00000004sv00001102sd00001009* +- ID_MODEL_FROM_DATABASE=SB Audigy2 OEM HP ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 OEM HP) + + pci:v00001102d00000004sv00001102sd00002001* +- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS Platinum Pro ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS Platinum Pro) + + pci:v00001102d00000004sv00001102sd00002002* +- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS (SB0350) ++ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS (SB0350)) + + pci:v00001102d00000004sv00001102sd00004001* +- ID_MODEL_FROM_DATABASE=E-MU 1010 ++ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 1010) + + pci:v00001102d00000004sv00001102sd00004002* +- ID_MODEL_FROM_DATABASE=E-MU 0404 ++ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 0404) + + pci:v00001102d00000005* + ID_MODEL_FROM_DATABASE=SB X-Fi + + pci:v00001102d00000005sv00001102sd00000021* +- ID_MODEL_FROM_DATABASE=X-Fi Platinum ++ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi Platinum) + + pci:v00001102d00000005sv00001102sd0000002C* +- ID_MODEL_FROM_DATABASE=X-Fi XtremeGamer FATAL1TY PRO ++ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeGamer FATAL1TY PRO) + + pci:v00001102d00000005sv00001102sd00001003* +- ID_MODEL_FROM_DATABASE=X-Fi XtremeMusic ++ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeMusic) + + pci:v00001102d00000006* + ID_MODEL_FROM_DATABASE=[SB Live! Value] EMU10k1X +@@ -28851,37 +28851,37 @@ pci:v00001102d00000007* + ID_MODEL_FROM_DATABASE=CA0106 Soundblaster + + pci:v00001102d00000007sv00001102sd00000007* +- ID_MODEL_FROM_DATABASE=SBLive! 24bit ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SBLive! 24bit) + + pci:v00001102d00000007sv00001102sd00001001* +- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0310 Audigy LS) + + pci:v00001102d00000007sv00001102sd00001002* +- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0312 Audigy LS) + + pci:v00001102d00000007sv00001102sd00001006* +- ID_MODEL_FROM_DATABASE=SB0410 SBLive! 24-bit ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0410 SBLive! 24-bit) + + pci:v00001102d00000007sv00001102sd0000100A* +- ID_MODEL_FROM_DATABASE=SB0570 [SB Audigy SE] ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0570 [SB Audigy SE]) + + pci:v00001102d00000007sv00001102sd00001012* +- ID_MODEL_FROM_DATABASE=SB0790 X-Fi XA ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0790 X-Fi XA) + + pci:v00001102d00000007sv00001102sd00001013* +- ID_MODEL_FROM_DATABASE=Soundblaster X-Fi Xtreme Audio ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (Soundblaster X-Fi Xtreme Audio) + + pci:v00001102d00000007sv00001462sd00001009* +- ID_MODEL_FROM_DATABASE=K8N Diamond ++ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (K8N Diamond) + + pci:v00001102d00000008* + ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value + + pci:v00001102d00000008sv00001102sd00000008* +- ID_MODEL_FROM_DATABASE=EMU0404 Digital Audio System ++ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU0404 Digital Audio System) + + pci:v00001102d00000008sv00001102sd00004004* +- ID_MODEL_FROM_DATABASE=EMU1010 Digital Audio System [MAEM8960] ++ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU1010 Digital Audio System [MAEM8960]) + + pci:v00001102d00000009* + ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG +@@ -28890,13 +28890,13 @@ pci:v00001102d00000009sv00001102sd00000010* + ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG + + pci:v00001102d00000009sv00001102sd00000018* +- ID_MODEL_FROM_DATABASE=SB1040 ++ ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG (SB1040) + + pci:v00001102d0000000B* + ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] + + pci:v00001102d0000000Bsv00001102sd00000041* +- ID_MODEL_FROM_DATABASE=SB0880 [SoundBlaster X-Fi Titanium PCI-e] ++ ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) + + pci:v00001102d00004001* + ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port +@@ -28908,7 +28908,7 @@ pci:v00001102d00007002* + ID_MODEL_FROM_DATABASE=SB Live! Game Port + + pci:v00001102d00007002sv00001102sd00000020* +- ID_MODEL_FROM_DATABASE=Gameport Joystick ++ ID_MODEL_FROM_DATABASE=SB Live! Game Port (Gameport Joystick) + + pci:v00001102d00007003* + ID_MODEL_FROM_DATABASE=SB Audigy Game Port +@@ -28917,7 +28917,7 @@ pci:v00001102d00007003sv00001102sd00000040* + ID_MODEL_FROM_DATABASE=SB Audigy Game Port + + pci:v00001102d00007003sv00001102sd00000060* +- ID_MODEL_FROM_DATABASE=SB Audigy2 MIDI/Game Port ++ ID_MODEL_FROM_DATABASE=SB Audigy Game Port (SB Audigy2 MIDI/Game Port) + + pci:v00001102d00007004* + ID_MODEL_FROM_DATABASE=[SB Live! Value] Input device controller +@@ -28926,10 +28926,10 @@ pci:v00001102d00007005* + ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port + + pci:v00001102d00007005sv00001102sd00001001* +- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS MIDI/Game port ++ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0310 Audigy LS MIDI/Game port) + + pci:v00001102d00007005sv00001102sd00001002* +- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS MIDI/Game port ++ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0312 Audigy LS MIDI/Game port) + + pci:v00001102d00007006* + ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG PCI to PCIe Bridge +@@ -28938,49 +28938,49 @@ pci:v00001102d00008938* + ID_MODEL_FROM_DATABASE=Ectiva EV1938 + + pci:v00001102d00008938sv00001033sd000080E5* +- ID_MODEL_FROM_DATABASE=SlimTower-Jim (NEC) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (SlimTower-Jim (NEC)) + + pci:v00001102d00008938sv00001071sd00007150* +- ID_MODEL_FROM_DATABASE=Mitac 7150 ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Mitac 7150) + + pci:v00001102d00008938sv0000110Asd00005938* +- ID_MODEL_FROM_DATABASE=Siemens Scenic Mobile 510PIII ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Siemens Scenic Mobile 510PIII) + + pci:v00001102d00008938sv000013BDsd0000100C* +- ID_MODEL_FROM_DATABASE=Ceres-C (Sharp, Intel BX) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Ceres-C (Sharp, Intel BX)) + + pci:v00001102d00008938sv000013BDsd0000100D* +- ID_MODEL_FROM_DATABASE=Sharp, Intel Banister ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Sharp, Intel Banister) + + pci:v00001102d00008938sv000013BDsd0000100E* +- ID_MODEL_FROM_DATABASE=TwinHead P09S/P09S3 (Sharp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (TwinHead P09S/P09S3 (Sharp)) + + pci:v00001102d00008938sv000013BDsd0000F6F1* +- ID_MODEL_FROM_DATABASE=Marlin (Sharp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Marlin (Sharp)) + + pci:v00001102d00008938sv000014FFsd00000E70* +- ID_MODEL_FROM_DATABASE=P88TE (TWINHEAD INTERNATIONAL Corp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (P88TE (TWINHEAD INTERNATIONAL Corp)) + + pci:v00001102d00008938sv000014FFsd0000C401* +- ID_MODEL_FROM_DATABASE=Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp)) + + pci:v00001102d00008938sv0000156Dsd0000B400* +- ID_MODEL_FROM_DATABASE=G400 - Geo (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G400 - Geo (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B550* +- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B560* +- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B700* +- ID_MODEL_FROM_DATABASE=G700/U700 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G700/U700 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B795* +- ID_MODEL_FROM_DATABASE=G795 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G795 (AlphaTop (Taiwan))) + + pci:v00001102d00008938sv0000156Dsd0000B797* +- ID_MODEL_FROM_DATABASE=G797 (AlphaTop (Taiwan)) ++ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G797 (AlphaTop (Taiwan))) + + pci:v00001103* + ID_VENDOR_FROM_DATABASE=HighPoint Technologies, Inc. +@@ -28992,16 +28992,16 @@ pci:v00001103d00000004* + ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N + + pci:v00001103d00000004sv00001103sd00000001* +- ID_MODEL_FROM_DATABASE=HPT370A ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370A) + + pci:v00001103d00000004sv00001103sd00000004* +- ID_MODEL_FROM_DATABASE=HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4) ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)) + + pci:v00001103d00000004sv00001103sd00000005* +- ID_MODEL_FROM_DATABASE=HPT370 UDMA100 ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370 UDMA100) + + pci:v00001103d00000004sv00001103sd00000006* +- ID_MODEL_FROM_DATABASE=HPT302/302N ++ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT302/302N) + + pci:v00001103d00000005* + ID_MODEL_FROM_DATABASE=HPT372A/372N +@@ -29040,7 +29040,7 @@ pci:v00001103d00002210* + ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller + + pci:v00001103d00002210sv000011ABsd000011AB* +- ID_MODEL_FROM_DATABASE=88SX6042 ++ ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller (88SX6042) + + pci:v00001103d00002300* + ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller +@@ -29112,13 +29112,13 @@ pci:v00001105d00008475* + ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder + + pci:v00001105d00008475sv00001105sd00000001* +- ID_MODEL_FROM_DATABASE=REALmagic X-Card ++ ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder (REALmagic X-Card) + + pci:v00001105d00008476* + ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder + + pci:v00001105d00008476sv0000127Dsd00000000* +- ID_MODEL_FROM_DATABASE=CineView II ++ ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder (CineView II) + + pci:v00001105d00008485* + ID_MODEL_FROM_DATABASE=EM8485 REALmagic DVD/MPEG-4 A/V Decoder +@@ -29163,7 +29163,7 @@ pci:v00001106d00000282* + ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge + + pci:v00001106d00000282sv00001043sd000080A3* +- ID_MODEL_FROM_DATABASE=A8V Deluxe ++ ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge (A8V Deluxe) + + pci:v00001106d00000290* + ID_MODEL_FROM_DATABASE=K8M890 Host Bridge +@@ -29178,28 +29178,28 @@ pci:v00001106d00000305* + ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] + + pci:v00001106d00000305sv00001019sd00000987* +- ID_MODEL_FROM_DATABASE=K7VZA Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (K7VZA Mainboard) + + pci:v00001106d00000305sv00001043sd00008033* +- ID_MODEL_FROM_DATABASE=A7V Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V Mainboard) + + pci:v00001106d00000305sv00001043sd0000803E* +- ID_MODEL_FROM_DATABASE=A7V-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V-E Mainboard) + + pci:v00001106d00000305sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V133/A7V133-C Mainboard) + + pci:v00001106d00000305sv0000147Bsd0000A401* +- ID_MODEL_FROM_DATABASE=KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard ++ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard) + + pci:v00001106d00000308* + ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge + + pci:v00001106d00000308sv00001043sd00008199* +- ID_MODEL_FROM_DATABASE=P4V800D-X Mainboard ++ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (P4V800D-X Mainboard) + + pci:v00001106d00000308sv00001849sd00000308* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (Motherboard) + + pci:v00001106d00000314* + ID_MODEL_FROM_DATABASE=CN700/VN800/P4M800CE/Pro Host Bridge +@@ -29226,7 +29226,7 @@ pci:v00001106d00000364* + ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge + + pci:v00001106d00000364sv00001043sd000081CE* +- ID_MODEL_FROM_DATABASE=P5VD2-VM mothervoard ++ ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge (P5VD2-VM mothervoard) + + pci:v00001106d00000391* + ID_MODEL_FROM_DATABASE=VT8371 [KX133] +@@ -29241,7 +29241,7 @@ pci:v00001106d00000415* + ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller + + pci:v00001106d00000415sv00001043sd0000838F* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller (Motherboard) + + pci:v00001106d00000501* + ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] +@@ -29256,55 +29256,55 @@ pci:v00001106d00000571* + ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE + + pci:v00001106d00000571sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (P6VXA Motherboard) + + pci:v00001106d00000571sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00000571sv00001043sd00008052* +- ID_MODEL_FROM_DATABASE=VT8233A Bus Master ATA100/66/33 IDE ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT8233A Bus Master ATA100/66/33 IDE) + + pci:v00001106d00000571sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V8X / A7V333 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X / A7V333 motherboard) + + pci:v00001106d00000571sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev. 1.01 ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X-X motherboard rev. 1.01) + + pci:v00001106d00000571sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00000571sv00001106sd00000571* +- ID_MODEL_FROM_DATABASE=VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE) + + pci:v00001106d00000571sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (Magnia Z310) + + pci:v00001106d00000571sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (FX41 motherboard) + + pci:v00001106d00000571sv00001458sd00005002* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (GA-7VAX Mainboard) + + pci:v00001106d00000571sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00000571sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T NEO 2 motherboard) + + pci:v00001106d00000571sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T Neo2-F V2.0) + + pci:v00001106d00000571sv00001462sd00007120* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT4AV motherboard) + + pci:v00001106d00000571sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8MM3-V mainboard) + + pci:v00001106d00000571sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KV8-MAX3 motherboard) + + pci:v00001106d00000571sv00001849sd00000571* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K7VT series Motherboards) + + pci:v00001106d00000576* + ID_MODEL_FROM_DATABASE=VT82C576 3V [Apollo Master] +@@ -29313,7 +29313,7 @@ pci:v00001106d00000581* + ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller + + pci:v00001106d00000581sv00001106sd00000581* +- ID_MODEL_FROM_DATABASE=Wrong IDE ID ++ ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller (Wrong IDE ID) + + pci:v00001106d00000585* + ID_MODEL_FROM_DATABASE=VT82C585VP [Apollo VP1/VPX] +@@ -29322,7 +29322,7 @@ pci:v00001106d00000586* + ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] + + pci:v00001106d00000586sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=MVP3 ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] (MVP3 ISA Bridge) + + pci:v00001106d00000591* + ID_MODEL_FROM_DATABASE=VT8237A SATA 2-Port Controller +@@ -29334,10 +29334,10 @@ pci:v00001106d00000596* + ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] + + pci:v00001106d00000596sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) + + pci:v00001106d00000596sv00001458sd00000596* +- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) + + pci:v00001106d00000597* + ID_MODEL_FROM_DATABASE=VT82C597 [Apollo VP3] +@@ -29352,10 +29352,10 @@ pci:v00001106d00000605* + ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] + + pci:v00001106d00000605sv0000103Csd00001254* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00001106d00000605sv00001043sd0000802C* +- ID_MODEL_FROM_DATABASE=CUV4X mainboard ++ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (CUV4X mainboard) + + pci:v00001106d00000680* + ID_MODEL_FROM_DATABASE=VT82C680 [Apollo P6] +@@ -29364,49 +29364,49 @@ pci:v00001106d00000686* + ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] + + pci:v00001106d00000686sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (P6VXA Motherboard) + + pci:v00001106d00000686sv0000103Csd00001256* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00001106d00000686sv00001043sd0000802C* +- ID_MODEL_FROM_DATABASE=CUV4X mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (CUV4X mainboard) + + pci:v00001106d00000686sv00001043sd00008033* +- ID_MODEL_FROM_DATABASE=A7V Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V Mainboard) + + pci:v00001106d00000686sv00001043sd0000803E* +- ID_MODEL_FROM_DATABASE=A7V-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V-E Mainboard) + + pci:v00001106d00000686sv00001043sd00008040* +- ID_MODEL_FROM_DATABASE=A7M266 Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7M266 Mainboard) + + pci:v00001106d00000686sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V133/A7V133-C Mainboard) + + pci:v00001106d00000686sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) + + pci:v00001106d00000686sv00001106sd00000686* +- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) + + pci:v00001106d00000686sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (Magnia Z310) + + pci:v00001106d00000686sv0000147Bsd0000A702* +- ID_MODEL_FROM_DATABASE=KG7-Lite Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (KG7-Lite Mainboard) + + pci:v00001106d00000691* + ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] + + pci:v00001106d00000691sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (P6VXA Motherboard) + + pci:v00001106d00000691sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (Magnia Z310) + + pci:v00001106d00000691sv00001458sd00000691* +- ID_MODEL_FROM_DATABASE=VT82C691 Apollo Pro System Controller ++ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (VT82C691 Apollo Pro System Controller) + + pci:v00001106d00000693* + ID_MODEL_FROM_DATABASE=VT82C693 [Apollo Pro Plus] +@@ -29586,61 +29586,61 @@ pci:v00001106d00003038* + ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller + + pci:v00001106d00003038sv00000925sd00001234* +- ID_MODEL_FROM_DATABASE=VA-502 Mainboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VA-502 Mainboard) + + pci:v00001106d00003038sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (P6VXA Motherboard) + + pci:v00001106d00003038sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003038sv00001043sd00008080* +- ID_MODEL_FROM_DATABASE=A7V333 motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V333 motherboard) + + pci:v00001106d00003038sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=VT6202 USB2.0 4 port controller ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VT6202 USB2.0 4 port controller) + + pci:v00001106d00003038sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V8X-X motherboard) + + pci:v00001106d00003038sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003038sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (Magnia Z310) + + pci:v00001106d00003038sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (GA-7VAX Mainboard) + + pci:v00001106d00003038sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003038sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T NEO 2 motherboard) + + pci:v00001106d00003038sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T Neo2-F V2.0) + + pci:v00001106d00003038sv00001462sd00007120* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT4AV motherboard) + + pci:v00001106d00003038sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8MM3-V mainboard) + + pci:v00001106d00003038sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KV8-MAX3 motherboard) + + pci:v00001106d00003038sv0000182Dsd0000201D* +- ID_MODEL_FROM_DATABASE=CN-029 USB2.0 4 port PCI Card ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (CN-029 USB2.0 4 port PCI Card) + + pci:v00001106d00003038sv00001849sd00003038* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K7VT series Motherboards) + + pci:v00001106d00003038sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (ZBOX nano VD01) + + pci:v00001106d00003038sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (QEMU Virtual Machine) + + pci:v00001106d00003040* + ID_MODEL_FROM_DATABASE=VT82C586B ACPI +@@ -29649,52 +29649,52 @@ pci:v00001106d00003043* + ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] + + pci:v00001106d00003043sv000010BDsd00000000* +- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) + + pci:v00001106d00003043sv00001106sd00000100* +- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) + + pci:v00001106d00003043sv00001186sd00001400* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev A ++ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (DFE-530TX rev A) + + pci:v00001106d00003044* + ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller + + pci:v00001106d00003044sv00000010sd00000001* +- ID_MODEL_FROM_DATABASE=IEEE 1394 4port DCST 1394-3+1B ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (IEEE 1394 4port DCST 1394-3+1B) + + pci:v00001106d00003044sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (TravelMate 290) + + pci:v00001106d00003044sv0000103Csd00002A20* +- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Pavilion t3030.de Desktop PC) + + pci:v00001106d00003044sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Media Center PC m7590n ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Media Center PC m7590n) + + pci:v00001106d00003044sv00001043sd0000808A* +- ID_MODEL_FROM_DATABASE=A8V/A8N/P4P800 series motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (A8V/A8N/P4P800 series motherboard) + + pci:v00001106d00003044sv00001043sd000081FE* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Motherboard) + + pci:v00001106d00003044sv00001458sd00001000* +- ID_MODEL_FROM_DATABASE=GA-7VT600-1394 Motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (GA-7VT600-1394 Motherboard) + + pci:v00001106d00003044sv00001462sd0000207D* +- ID_MODEL_FROM_DATABASE=K8NGM2 series motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8NGM2 series motherboard) + + pci:v00001106d00003044sv00001462sd0000217D* +- ID_MODEL_FROM_DATABASE=Aspire L250 ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Aspire L250) + + pci:v00001106d00003044sv00001462sd0000590D* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003044sv00001462sd0000702D* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8T NEO 2 motherboard) + + pci:v00001106d00003044sv00001462sd0000971D* +- ID_MODEL_FROM_DATABASE=MS-6917 ++ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (MS-6917) + + pci:v00001106d00003050* + ID_MODEL_FROM_DATABASE=VT82C596 Power Management +@@ -29709,205 +29709,205 @@ pci:v00001106d00003057* + ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] + + pci:v00001106d00003057sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (P6VXA Motherboard) + + pci:v00001106d00003057sv00001019sd00000987* +- ID_MODEL_FROM_DATABASE=K7VZA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (K7VZA Motherboard) + + pci:v00001106d00003057sv00001043sd00008033* +- ID_MODEL_FROM_DATABASE=A7V Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V Mainboard) + + pci:v00001106d00003057sv00001043sd0000803E* +- ID_MODEL_FROM_DATABASE=A7V-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V-E Mainboard) + + pci:v00001106d00003057sv00001043sd00008040* +- ID_MODEL_FROM_DATABASE=A7M266 Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7M266 Mainboard) + + pci:v00001106d00003057sv00001043sd00008042* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V133/A7V133-C Mainboard) + + pci:v00001106d00003057sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (Magnia Z310) + + pci:v00001106d00003058* + ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller + + pci:v00001106d00003058sv00000E11sd00000097* +- ID_MODEL_FROM_DATABASE=SoundMax Digital Integrated Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (SoundMax Digital Integrated Audio) + + pci:v00001106d00003058sv00000E11sd0000B194* +- ID_MODEL_FROM_DATABASE=Soundmax integrated digital audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Soundmax integrated digital audio) + + pci:v00001106d00003058sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (P6VXA Motherboard) + + pci:v00001106d00003058sv00001019sd00000987* +- ID_MODEL_FROM_DATABASE=K7VZA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (K7VZA Motherboard) + + pci:v00001106d00003058sv0000103Csd00001251* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00001106d00003058sv00001043sd00001106* +- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (A7V133/A7V133-C Mainboard) + + pci:v00001106d00003058sv00001106sd00004511* +- ID_MODEL_FROM_DATABASE=Onboard Audio on EP7KXA ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio on EP7KXA) + + pci:v00001106d00003058sv00001106sd0000AA03* +- ID_MODEL_FROM_DATABASE=VT1612A AC'97 Audio Controller ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (VT1612A AC'97 Audio Controller) + + pci:v00001106d00003058sv000011D4sd00005348* +- ID_MODEL_FROM_DATABASE=AD1881A audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (AD1881A audio) + + pci:v00001106d00003058sv00001458sd00007600* +- ID_MODEL_FROM_DATABASE=Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) + + pci:v00001106d00003058sv00001462sd00003091* +- ID_MODEL_FROM_DATABASE=MS-6309 Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 Onboard Audio) + + pci:v00001106d00003058sv00001462sd00003092* +- ID_MODEL_FROM_DATABASE=MS-6309 v2.x Mainboard (VIA VT1611A codec) ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 v2.x Mainboard (VIA VT1611A codec)) + + pci:v00001106d00003058sv00001462sd00003300* +- ID_MODEL_FROM_DATABASE=MS-6330 Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6330 Onboard Audio) + + pci:v00001106d00003058sv000015DDsd00007609* +- ID_MODEL_FROM_DATABASE=Onboard Audio ++ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) + + pci:v00001106d00003059* + ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller + + pci:v00001106d00003059sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003059sv00001019sd00001877* +- ID_MODEL_FROM_DATABASE=K8M800-M2 (V2.0) onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8M800-M2 (V2.0) onboard audio) + + pci:v00001106d00003059sv00001043sd00008095* +- ID_MODEL_FROM_DATABASE=A7V8X Motherboard (Realtek ALC650 codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X Motherboard (Realtek ALC650 codec)) + + pci:v00001106d00003059sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X-X Motherboard) + + pci:v00001106d00003059sv00001043sd000080B0* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX]) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX])) + + pci:v00001106d00003059sv00001043sd0000810D* +- ID_MODEL_FROM_DATABASE=Asus P5VD1-X (AD1888 codec [SoundMax]) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Asus P5VD1-X (AD1888 codec [SoundMax])) + + pci:v00001106d00003059sv00001043sd0000812A* +- ID_MODEL_FROM_DATABASE=A8V Deluxe motherboard (Realtek ALC850 codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A8V Deluxe motherboard (Realtek ALC850 codec)) + + pci:v00001106d00003059sv000010ECsd00008168* +- ID_MODEL_FROM_DATABASE=High Definition Audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (High Definition Audio) + + pci:v00001106d00003059sv00001106sd00003059* +- ID_MODEL_FROM_DATABASE=L7VMM2 Motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VMM2 Motherboard) + + pci:v00001106d00003059sv00001106sd00004161* +- ID_MODEL_FROM_DATABASE=K7VT2 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT2 motherboard) + + pci:v00001106d00003059sv00001106sd00004170* +- ID_MODEL_FROM_DATABASE=PCPartner P4M800-8237R Motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (PCPartner P4M800-8237R Motherboard) + + pci:v00001106d00003059sv00001106sd00004552* +- ID_MODEL_FROM_DATABASE=Soyo KT-600 Dragon Plus (Realtek ALC 650) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Soyo KT-600 Dragon Plus (Realtek ALC 650)) + + pci:v00001106d00003059sv00001297sd0000C160* +- ID_MODEL_FROM_DATABASE=FX41 motherboard (Realtek ALC650 codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (FX41 motherboard (Realtek ALC650 codec)) + + pci:v00001106d00003059sv00001413sd0000147B* +- ID_MODEL_FROM_DATABASE=KV8 Pro motherboard onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8 Pro motherboard onboard audio) + + pci:v00001106d00003059sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-7VAX Onboard Audio (Realtek ALC650) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (GA-7VAX Onboard Audio (Realtek ALC650)) + + pci:v00001106d00003059sv00001462sd00000080* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8T NEO 2 motherboard) + + pci:v00001106d00003059sv00001462sd00003800* +- ID_MODEL_FROM_DATABASE=KT266 onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT266 onboard audio) + + pci:v00001106d00003059sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003059sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8MM3-V mainboard) + + pci:v00001106d00003059sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8-MAX3 motherboard) + + pci:v00001106d00003059sv00001695sd0000300C* +- ID_MODEL_FROM_DATABASE=EP-8KRA2+ Mainboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (EP-8KRA2+ Mainboard) + + pci:v00001106d00003059sv00001849sd00000850* +- ID_MODEL_FROM_DATABASE=ASRock 775Dual-880 Pro onboard audio (Realtek ALC850) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (ASRock 775Dual-880 Pro onboard audio (Realtek ALC850)) + + pci:v00001106d00003059sv00001849sd00009739* +- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard (C-Media CMI9739A codec) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (P4VT8 Mainboard (C-Media CMI9739A codec)) + + pci:v00001106d00003059sv00001849sd00009761* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT series Motherboards) + + pci:v00001106d00003059sv00004005sd00004710* +- ID_MODEL_FROM_DATABASE=MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P) ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P)) + + pci:v00001106d00003059sv0000A0A0sd000001B6* +- ID_MODEL_FROM_DATABASE=AK77-8XN onboard audio ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK77-8XN onboard audio) + + pci:v00001106d00003059sv0000A0A0sd00000342* +- ID_MODEL_FROM_DATABASE=AK86-L motherboard ++ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK86-L motherboard) + + pci:v00001106d00003065* + ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] + + pci:v00001106d00003065sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V8X-X Motherboard) + + pci:v00001106d00003065sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600-X Motherboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V600-X Motherboard) + + pci:v00001106d00003065sv00001106sd00000102* +- ID_MODEL_FROM_DATABASE=VT6102 [Rhine II] Embeded Ethernet Controller on VT8235 ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6102 [Rhine II] Embeded Ethernet Controller on VT8235) + + pci:v00001106d00003065sv00001186sd00001400* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev A ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev A) + + pci:v00001106d00003065sv00001186sd00001401* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev B ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev B) + + pci:v00001106d00003065sv000013B9sd00001421* +- ID_MODEL_FROM_DATABASE=LD-10/100AL PCI Fast Ethernet Adapter (rev.B) ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (LD-10/100AL PCI Fast Ethernet Adapter (rev.B)) + + pci:v00001106d00003065sv00001462sd00007061* +- ID_MODEL_FROM_DATABASE=MS-7061 ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (MS-7061) + + pci:v00001106d00003065sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K8MM3-V mainboard) + + pci:v00001106d00003065sv0000147Bsd00001C09* +- ID_MODEL_FROM_DATABASE=NV7 Motherboard ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (NV7 Motherboard) + + pci:v00001106d00003065sv00001695sd00003005* +- ID_MODEL_FROM_DATABASE=VT6103 ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6103) + + pci:v00001106d00003065sv00001695sd0000300C* +- ID_MODEL_FROM_DATABASE=Realtek ALC655 sound chip ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (Realtek ALC655 sound chip) + + pci:v00001106d00003065sv00001849sd00003065* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K7VT series Motherboards) + + pci:v00001106d00003068* + ID_MODEL_FROM_DATABASE=AC'97 Modem Controller + + pci:v00001106d00003068sv00001462sd0000309E* +- ID_MODEL_FROM_DATABASE=MS-6309 Saturn Motherboard ++ ID_MODEL_FROM_DATABASE=AC'97 Modem Controller (MS-6309 Saturn Motherboard) + + pci:v00001106d00003074* + ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge + + pci:v00001106d00003074sv00001043sd00008052* +- ID_MODEL_FROM_DATABASE=VT8233A ++ ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge (VT8233A) + + pci:v00001106d00003091* + ID_MODEL_FROM_DATABASE=VT8633 [Apollo Pro266] +@@ -29916,13 +29916,13 @@ pci:v00001106d00003099* + ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] + + pci:v00001106d00003099sv00001043sd00008064* +- ID_MODEL_FROM_DATABASE=A7V266-E Mainboard ++ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V266-E Mainboard) + + pci:v00001106d00003099sv00001043sd0000807F* +- ID_MODEL_FROM_DATABASE=A7V333 Mainboard ++ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V333 Mainboard) + + pci:v00001106d00003099sv00001849sd00003099* +- ID_MODEL_FROM_DATABASE=K7VT2 motherboard ++ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (K7VT2 motherboard) + + pci:v00001106d00003101* + ID_MODEL_FROM_DATABASE=VT8653 Host Bridge +@@ -29937,70 +29937,70 @@ pci:v00001106d00003104* + ID_MODEL_FROM_DATABASE=USB 2.0 + + pci:v00001106d00003104sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=USB 2.0 (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003104sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X motherboard) + + pci:v00001106d00003104sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev 1.01 ++ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X-X motherboard rev 1.01) + + pci:v00001106d00003104sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003104sv00001106sd00003104* +- ID_MODEL_FROM_DATABASE=USB 2.0 Controller ++ ID_MODEL_FROM_DATABASE=USB 2.0 (Controller) + + pci:v00001106d00003104sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (FX41 motherboard) + + pci:v00001106d00003104sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (GA-7VAX Mainboard) + + pci:v00001106d00003104sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=USB 2.0 (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003104sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T NEO 2 motherboard) + + pci:v00001106d00003104sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T Neo2-F V2.0) + + pci:v00001106d00003104sv00001462sd00007120* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (KT4AV motherboard) + + pci:v00001106d00003104sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K8MM3-V mainboard) + + pci:v00001106d00003104sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=USB 2.0 (KV8-MAX3 motherboard) + + pci:v00001106d00003104sv0000182Dsd0000201D* +- ID_MODEL_FROM_DATABASE=CN-029 USB 2.0 4 port PCI Card ++ ID_MODEL_FROM_DATABASE=USB 2.0 (CN-029 USB 2.0 4 port PCI Card) + + pci:v00001106d00003104sv00001849sd00003104* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=USB 2.0 (K7VT series Motherboards) + + pci:v00001106d00003104sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=USB 2.0 (ZBOX nano VD01) + + pci:v00001106d00003106* + ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] + + pci:v00001106d00003106sv00001106sd00000105* +- ID_MODEL_FROM_DATABASE=VT6106S [Rhine-III] ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (VT6106S [Rhine-III]) + + pci:v00001106d00003106sv00001186sd00001403* +- ID_MODEL_FROM_DATABASE=DFE-530TX rev C ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX rev C) + + pci:v00001106d00003106sv00001186sd00001405* +- ID_MODEL_FROM_DATABASE=DFE-520TX Fast Ethernet PCI Adapter ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-520TX Fast Ethernet PCI Adapter) + + pci:v00001106d00003106sv00001186sd00001406* +- ID_MODEL_FROM_DATABASE=DFE-530TX+ rev F2 ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX+ rev F2) + + pci:v00001106d00003106sv00001186sd00001407* +- ID_MODEL_FROM_DATABASE=DFE-538TX ++ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-538TX) + + pci:v00001106d00003108* + ID_MODEL_FROM_DATABASE=K8M800/K8N800/K8N800A [S3 UniChrome Pro] +@@ -30018,7 +30018,7 @@ pci:v00001106d00003116* + ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge + + pci:v00001106d00003116sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge (FX41 motherboard) + + pci:v00001106d00003118* + ID_MODEL_FROM_DATABASE=CN400/PM800/PM880/PN800/PN880 [S3 UniChrome Pro] +@@ -30045,7 +30045,7 @@ pci:v00001106d00003147* + ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge + + pci:v00001106d00003147sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V333 motherboard ++ ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge (A7V333 motherboard) + + pci:v00001106d00003148* + ID_MODEL_FROM_DATABASE=P4M266 Host Bridge +@@ -30054,34 +30054,34 @@ pci:v00001106d00003149* + ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller + + pci:v00001106d00003149sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003149sv00001458sd0000B003* +- ID_MODEL_FROM_DATABASE=GA-7VM400AM(F) Motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (GA-7VM400AM(F) Motherboard) + + pci:v00001106d00003149sv00001462sd00005901* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KT6 Delta-FIS2R (MS-6590)) + + pci:v00001106d00003149sv00001462sd00007020* +- ID_MODEL_FROM_DATABASE=K8T Neo 2 Motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo 2 Motherboard) + + pci:v00001106d00003149sv00001462sd00007094* +- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo2-F V2.0) + + pci:v00001106d00003149sv00001462sd00007181* +- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8MM3-V mainboard) + + pci:v00001106d00003149sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV8-MAX3 motherboard) + + pci:v00001106d00003149sv0000147Bsd00001408* +- ID_MODEL_FROM_DATABASE=KV7 ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV7) + + pci:v00001106d00003149sv00001849sd00003149* +- ID_MODEL_FROM_DATABASE=K7VT6 motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K7VT6 motherboard) + + pci:v00001106d00003149sv0000A0A0sd000004AD* +- ID_MODEL_FROM_DATABASE=AK86-L motherboard ++ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (AK86-L motherboard) + + pci:v00001106d00003156* + ID_MODEL_FROM_DATABASE=P/KN266 Host Bridge +@@ -30093,40 +30093,40 @@ pci:v00001106d00003164* + ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller + + pci:v00001106d00003164sv00001043sd000080F4* +- ID_MODEL_FROM_DATABASE=P4P800 Mainboard Deluxe ATX ++ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (P4P800 Mainboard Deluxe ATX) + + pci:v00001106d00003164sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (915P/G Neo2) + + pci:v00001106d00003168* + ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge + + pci:v00001106d00003168sv00001849sd00003168* +- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard ++ ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge (P4VT8 Mainboard) + + pci:v00001106d00003177* + ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge + + pci:v00001106d00003177sv00001019sd00000A81* +- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (L7VTA v1.0 Motherboard (KT400-8235)) + + pci:v00001106d00003177sv00001043sd0000808C* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X motherboard) + + pci:v00001106d00003177sv00001043sd000080A1* +- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X-X motherboard) + + pci:v00001106d00003177sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (KT4AV motherboard) + + pci:v00001106d00003177sv00001297sd0000F641* +- ID_MODEL_FROM_DATABASE=FX41 motherboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (FX41 motherboard) + + pci:v00001106d00003177sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (GA-7VAX Mainboard) + + pci:v00001106d00003177sv00001849sd00003177* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (K7VT series Motherboards) + + pci:v00001106d00003178* + ID_MODEL_FROM_DATABASE=ProSavageDDR P4N333 Host Bridge +@@ -30135,25 +30135,25 @@ pci:v00001106d00003188* + ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge + + pci:v00001106d00003188sv00001043sd000080A3* +- ID_MODEL_FROM_DATABASE=K8V Deluxe/K8V-X motherboard ++ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (K8V Deluxe/K8V-X motherboard) + + pci:v00001106d00003188sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (KV8-MAX3 motherboard) + + pci:v00001106d00003189* + ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge + + pci:v00001106d00003189sv00001043sd0000807F* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (A7V8X motherboard) + + pci:v00001106d00003189sv00001106sd00000000* +- ID_MODEL_FROM_DATABASE=KT4AV motherboard (KT400A) ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (KT4AV motherboard (KT400A)) + + pci:v00001106d00003189sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (GA-7VAX Mainboard) + + pci:v00001106d00003189sv00001849sd00003189* +- ID_MODEL_FROM_DATABASE=K7VT series Motherboards ++ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (K7VT series Motherboards) + + pci:v00001106d00003204* + ID_MODEL_FROM_DATABASE=K8M800 Host Bridge +@@ -30162,7 +30162,7 @@ pci:v00001106d00003205* + ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge + + pci:v00001106d00003205sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-7VM400M Motherboard ++ ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge (GA-7VM400M Motherboard) + + pci:v00001106d00003208* + ID_MODEL_FROM_DATABASE=PT890 Host Bridge +@@ -30177,19 +30177,19 @@ pci:v00001106d00003227* + ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] + + pci:v00001106d00003227sv00001043sd000080ED* +- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (A7V600/K8V-X/A8V Deluxe motherboard) + + pci:v00001106d00003227sv00001106sd00003227* +- ID_MODEL_FROM_DATABASE=DFI KT600-AL / Soltek SL-B9D-FGR Motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (DFI KT600-AL / Soltek SL-B9D-FGR Motherboard) + + pci:v00001106d00003227sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-7VT600 Motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (GA-7VT600 Motherboard) + + pci:v00001106d00003227sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (KV8-MAX3 motherboard) + + pci:v00001106d00003227sv00001849sd00003227* +- ID_MODEL_FROM_DATABASE=K7VT4 motherboard ++ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (K7VT4 motherboard) + + pci:v00001106d00003230* + ID_MODEL_FROM_DATABASE=K8M890CE/K8N890CE [Chrome 9] +@@ -30237,7 +30237,7 @@ pci:v00001106d00003288* + ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller + + pci:v00001106d00003288sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX VD01 ++ ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller (ZBOX VD01) + + pci:v00001106d00003290* + ID_MODEL_FROM_DATABASE=K8M890 Host Bridge +@@ -30294,10 +30294,10 @@ pci:v00001106d00003403* + ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller + + pci:v00001106d00003403sv00001043sd00008374* +- ID_MODEL_FROM_DATABASE=M5A88-V EVO ++ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (M5A88-V EVO) + + pci:v00001106d00003403sv00001043sd00008384* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (P8P67 Deluxe Motherboard) + + pci:v00001106d00003409* + ID_MODEL_FROM_DATABASE=VX855/VX875 DRAM Bus Control +@@ -30306,7 +30306,7 @@ pci:v00001106d00003410* + ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control + + pci:v00001106d00003410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control (ZBOX nano VD01) + + pci:v00001106d00003432* + ID_MODEL_FROM_DATABASE=VL80x xHCI USB 3.0 Controller +@@ -30378,7 +30378,7 @@ pci:v00001106d00004410* + ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control + + pci:v00001106d00004410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control (ZBOX nano VD01) + + pci:v00001106d00005030* + ID_MODEL_FROM_DATABASE=VT82C596 ACPI [Apollo PRO] +@@ -30456,7 +30456,7 @@ pci:v00001106d00006410* + ID_MODEL_FROM_DATABASE=VX900 Scratch Registers + + pci:v00001106d00006410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 Scratch Registers (ZBOX nano VD01) + + pci:v00001106d00007122* + ID_MODEL_FROM_DATABASE=VX900 Graphics [Chrome9 HD] +@@ -30468,10 +30468,10 @@ pci:v00001106d00007205* + ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] + + pci:v00001106d00007205sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=Gigabyte GA-7VM400(A)M(F) Motherboard ++ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (Gigabyte GA-7VM400(A)M(F) Motherboard) + + pci:v00001106d00007205sv00001462sd00007061* +- ID_MODEL_FROM_DATABASE=MS-7061 ++ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (MS-7061) + + pci:v00001106d00007208* + ID_MODEL_FROM_DATABASE=PT890 Host Bridge +@@ -30534,7 +30534,7 @@ pci:v00001106d00007410* + ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control + + pci:v00001106d00007410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 ++ ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control (ZBOX nano VD01) + + pci:v00001106d00008231* + ID_MODEL_FROM_DATABASE=VT8231 [PCI-to-ISA Bridge] +@@ -30564,7 +30564,7 @@ pci:v00001106d00008410* + ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management + + pci:v00001106d00008410sv000019DAsd0000A179* +- ID_MODEL_FROM_DATABASE=ZBOX VD01 ++ ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management (ZBOX VD01) + + pci:v00001106d00008500* + ID_MODEL_FROM_DATABASE=KLE133/PLE133/PLE133T +@@ -30582,7 +30582,7 @@ pci:v00001106d00008598* + ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] + + pci:v00001106d00008598sv00001019sd00000985* +- ID_MODEL_FROM_DATABASE=P6VXA Motherboard ++ ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] (P6VXA Motherboard) + + pci:v00001106d00008601* + ID_MODEL_FROM_DATABASE=VT8601 [Apollo ProMedia AGP] +@@ -30669,7 +30669,7 @@ pci:v00001106d0000B188* + ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] + + pci:v00001106d0000B188sv0000147Bsd00001407* +- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard ++ ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] (KV8-MAX3 motherboard) + + pci:v00001106d0000B198* + ID_MODEL_FROM_DATABASE=VT8237/VX700 PCI Bridge +@@ -30846,7 +30846,7 @@ pci:v0000110Ad00004029sv0000110Asd00004029* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 + + pci:v0000110Ad00004029sv0000110Asd0000C029* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 (SIMATIC NET CP 5614 A2) + + pci:v0000110Ad00004035* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 +@@ -30864,7 +30864,7 @@ pci:v0000110Ad00004069sv0000110Asd00004069* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 + + pci:v0000110Ad00004069sv0000110Asd0000C069* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 (SIMATIC NET CP 5624) + + pci:v0000110Ad0000407C* + ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 +@@ -30942,25 +30942,25 @@ pci:v00001113d00001211* + ID_MODEL_FROM_DATABASE=SMC2-1211TX + + pci:v00001113d00001211sv0000103Csd00001207* +- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) + + pci:v00001113d00001211sv00001113sd00001211* +- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) + + pci:v00001113d00001216* + ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter + + pci:v00001113d00001216sv00001113sd00001216* +- ID_MODEL_FROM_DATABASE=EN1207F series PCI Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN1207F series PCI Fast Ethernet Adapter) + + pci:v00001113d00001216sv00001113sd00002220* +- ID_MODEL_FROM_DATABASE=EN2220A Cardbus Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2220A Cardbus Fast Ethernet Adapter) + + pci:v00001113d00001216sv00001113sd00002242* +- ID_MODEL_FROM_DATABASE=EN2242 10/100 Ethernet Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2242 10/100 Ethernet Mini-PCI Card) + + pci:v00001113d00001216sv0000111Asd00001020* +- ID_MODEL_FROM_DATABASE=SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?] ++ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?]) + + pci:v00001113d00001217* + ID_MODEL_FROM_DATABASE=EN-1217 Ethernet Adapter +@@ -31272,37 +31272,37 @@ pci:v0000111Ad00000003* + ID_MODEL_FROM_DATABASE=ENI-25P ATM + + pci:v0000111Ad00000003sv0000111Asd00000000* +- ID_MODEL_FROM_DATABASE=ENI-25p Miniport ATM Adapter ++ ID_MODEL_FROM_DATABASE=ENI-25P ATM (ENI-25p Miniport ATM Adapter) + + pci:v0000111Ad00000005* + ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) + + pci:v0000111Ad00000005sv0000111Asd00000001* +- ID_MODEL_FROM_DATABASE=ENI-3010 ATM ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) + + pci:v0000111Ad00000005sv0000111Asd00000009* +- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0)) + + pci:v0000111Ad00000005sv0000111Asd00000101* +- ID_MODEL_FROM_DATABASE=ENI-3010 ATM ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) + + pci:v0000111Ad00000005sv0000111Asd00000109* +- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0)) + + pci:v0000111Ad00000005sv0000111Asd00000809* +- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0 or 8) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0 or 8)) + + pci:v0000111Ad00000005sv0000111Asd00000909* +- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0 or 8) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0 or 8)) + + pci:v0000111Ad00000005sv0000111Asd00000A09* +- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=<0..15>) ++ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=<0..15>)) + + pci:v0000111Ad00000007* + ID_MODEL_FROM_DATABASE=SpeedStream ADSL + + pci:v0000111Ad00000007sv0000111Asd00001001* +- ID_MODEL_FROM_DATABASE=ENI-3061 ADSL [ASIC] ++ ID_MODEL_FROM_DATABASE=SpeedStream ADSL (ENI-3061 ADSL [ASIC]) + + pci:v0000111Ad00001020* + ID_MODEL_FROM_DATABASE=SpeedStream PCI 10/100 Network Card +@@ -31446,7 +31446,7 @@ pci:v0000111Dd0000806A* + ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch + + pci:v0000111Dd0000806Asv000014C1sd0000000C* +- ID_MODEL_FROM_DATABASE=10G-PCIE2-8B2 ++ ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch (10G-PCIE2-8B2) + + pci:v0000111Dd0000806C* + ID_MODEL_FROM_DATABASE=PES16T4A/4T4G2 PCI Express Gen2 Switch +@@ -31515,7 +31515,7 @@ pci:v00001127d00000400* + ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter + + pci:v00001127d00000400sv00001127sd00000400* +- ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM ++ ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter (ForeRunnerHE ATM) + + pci:v00001129* + ID_VENDOR_FROM_DATABASE=Firmworks +@@ -31557,13 +31557,13 @@ pci:v00001131d00001561* + ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller + + pci:v00001131d00001561sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K onboard USB 1.1 host controller ++ ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller (C2K onboard USB 1.1 host controller) + + pci:v00001131d00001562* + ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller + + pci:v00001131d00001562sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K onboard USB 2.0 host controller ++ ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller (C2K onboard USB 2.0 host controller) + + pci:v00001131d00003400* + ID_MODEL_FROM_DATABASE=SmartPCI56(UCB1500) 56K Modem +@@ -31572,49 +31572,49 @@ pci:v00001131d00005400* + ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 + + pci:v00001131d00005400sv000012CAsd00000000* +- ID_MODEL_FROM_DATABASE=BlueICE ++ ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 (BlueICE) + + pci:v00001131d00005402* + ID_MODEL_FROM_DATABASE=TriMedia TM1300 + + pci:v00001131d00005402sv00001244sd00000F00* +- ID_MODEL_FROM_DATABASE=Fritz!Card DSL ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (Fritz!Card DSL) + + pci:v00001131d00005402sv000015EBsd00001300* +- ID_MODEL_FROM_DATABASE=DT1300 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1300) + + pci:v00001131d00005402sv000015EBsd00001302* +- ID_MODEL_FROM_DATABASE=DT1302 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1302) + + pci:v00001131d00005402sv000015EBsd00001304* +- ID_MODEL_FROM_DATABASE=DT1304 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1304) + + pci:v00001131d00005402sv000015EBsd00001305* +- ID_MODEL_FROM_DATABASE=DT1305 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1305) + + pci:v00001131d00005402sv000015EBsd00001306* +- ID_MODEL_FROM_DATABASE=PMCDT1306 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PMCDT1306) + + pci:v00001131d00005402sv000015EBsd00001308* +- ID_MODEL_FROM_DATABASE=DT1308 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1308) + + pci:v00001131d00005402sv000015EBsd00001331* +- ID_MODEL_FROM_DATABASE=DT1301 with SAA7121 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7121) + + pci:v00001131d00005402sv000015EBsd00001337* +- ID_MODEL_FROM_DATABASE=DT1301 with SAA7127 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7127) + + pci:v00001131d00005402sv000015EBsd00002D3D* +- ID_MODEL_FROM_DATABASE=X3D ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (X3D) + + pci:v00001131d00005402sv000015EBsd00007022* +- ID_MODEL_FROM_DATABASE=PTM1300 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PTM1300) + + pci:v00001131d00005405* + ID_MODEL_FROM_DATABASE=TriMedia TM1500 + + pci:v00001131d00005405sv00001136sd00000005* +- ID_MODEL_FROM_DATABASE=LCP-1500 ++ ID_MODEL_FROM_DATABASE=TriMedia TM1500 (LCP-1500) + + pci:v00001131d00005406* + ID_MODEL_FROM_DATABASE=TriMedia TM1700 +@@ -31623,409 +31623,409 @@ pci:v00001131d0000540B* + ID_MODEL_FROM_DATABASE=PNX1005 Media Processor + + pci:v00001131d0000540Bsv00001131sd00000020* +- ID_MODEL_FROM_DATABASE=PNXLite PCI Demo Board ++ ID_MODEL_FROM_DATABASE=PNX1005 Media Processor (PNXLite PCI Demo Board) + + pci:v00001131d00007130* + ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder + + pci:v00001131d00007130sv00000000sd00004016* +- ID_MODEL_FROM_DATABASE=Behold TV 401 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 401) + + pci:v00001131d00007130sv00000000sd00004051* +- ID_MODEL_FROM_DATABASE=Behold TV 405 FM ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 405 FM) + + pci:v00001131d00007130sv00000000sd00005051* +- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) + + pci:v00001131d00007130sv00000000sd0000505B* +- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) + + pci:v00001131d00007130sv0000102Bsd000048D0* +- ID_MODEL_FROM_DATABASE=Matrox CronosPlus ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Matrox CronosPlus) + + pci:v00001131d00007130sv00001048sd0000226B* +- ID_MODEL_FROM_DATABASE=ELSA EX-VISION 300TV ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (ELSA EX-VISION 300TV) + + pci:v00001131d00007130sv0000107Dsd00006655* +- ID_MODEL_FROM_DATABASE=WinFast DTV1000S ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (WinFast DTV1000S) + + pci:v00001131d00007130sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=SAA7130-based TV tuner card ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (SAA7130-based TV tuner card) + + pci:v00001131d00007130sv00001131sd00002001* +- ID_MODEL_FROM_DATABASE=10MOONS PCI TV CAPTURE CARD ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (10MOONS PCI TV CAPTURE CARD) + + pci:v00001131d00007130sv00001131sd00002005* +- ID_MODEL_FROM_DATABASE=Techcom (India) TV Tuner Card (SSD-TV-670) ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Techcom (India) TV Tuner Card (SSD-TV-670)) + + pci:v00001131d00007130sv00001458sd00009006* +- ID_MODEL_FROM_DATABASE=GT-PS700 DVB-S tuner ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (GT-PS700 DVB-S tuner) + + pci:v00001131d00007130sv00001461sd0000050C* +- ID_MODEL_FROM_DATABASE=Nagase Sangyo TransGear 3000TV ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Nagase Sangyo TransGear 3000TV) + + pci:v00001131d00007130sv00001461sd000010FF* +- ID_MODEL_FROM_DATABASE=AVerMedia DVD EZMaker ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AVerMedia DVD EZMaker) + + pci:v00001131d00007130sv00001461sd00002108* +- ID_MODEL_FROM_DATABASE=AverMedia AverTV/305 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV/305) + + pci:v00001131d00007130sv00001461sd00002115* +- ID_MODEL_FROM_DATABASE=AverMedia AverTV Studio 305 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV Studio 305) + + pci:v00001131d00007130sv0000153Bsd00001152* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 200 TV ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Terratec Cinergy 200 TV) + + pci:v00001131d00007130sv0000185Bsd0000C100* +- ID_MODEL_FROM_DATABASE=Compro VideoMate TV PVR/FM ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Compro VideoMate TV PVR/FM) + + pci:v00001131d00007130sv0000185Bsd0000C901* +- ID_MODEL_FROM_DATABASE=Videomate DVB-T200 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Videomate DVB-T200) + + pci:v00001131d00007130sv00005168sd00000138* +- ID_MODEL_FROM_DATABASE=LifeView FlyVIDEO2000 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (LifeView FlyVIDEO2000) + + pci:v00001131d00007130sv00005ACEsd00005010* +- ID_MODEL_FROM_DATABASE=Behold TV 501 ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 501) + + pci:v00001131d00007130sv00005ACEsd00005050* +- ID_MODEL_FROM_DATABASE=Behold TV 505 FM ++ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 FM) + + pci:v00001131d00007133* + ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder + + pci:v00001131d00007133sv00000000sd00004091* +- ID_MODEL_FROM_DATABASE=Beholder BeholdTV 409 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Beholder BeholdTV 409 FM) + + pci:v00001131d00007133sv00000000sd00005071* +- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) + + pci:v00001131d00007133sv00000000sd0000507B* +- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) + + pci:v00001131d00007133sv00000000sd00005201* +- ID_MODEL_FROM_DATABASE=Behold TV Columbus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV Columbus) + + pci:v00001131d00007133sv00000070sd00006701* +- ID_MODEL_FROM_DATABASE=WinTV HVR-1110 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (WinTV HVR-1110) + + pci:v00001131d00007133sv00001019sd00004CB5* +- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)) + + pci:v00001131d00007133sv00001043sd00000210* +- ID_MODEL_FROM_DATABASE=FlyTV mini Asus Digimatrix ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (FlyTV mini Asus Digimatrix) + + pci:v00001131d00007133sv00001043sd00004843* +- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7133 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ASUS TV-FM 7133) + + pci:v00001131d00007133sv00001043sd00004845* +- ID_MODEL_FROM_DATABASE=TV-FM 7135 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV-FM 7135) + + pci:v00001131d00007133sv00001043sd00004862* +- ID_MODEL_FROM_DATABASE=P7131 Dual ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (P7131 Dual) + + pci:v00001131d00007133sv00001043sd00004876* +- ID_MODEL_FROM_DATABASE=My Cinema-P7131 Hybrid ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (My Cinema-P7131 Hybrid) + + pci:v00001131d00007133sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (SAA713x-based TV tuner card) + + pci:v00001131d00007133sv00001131sd00002001* +- ID_MODEL_FROM_DATABASE=Proteus Pro [philips reference design] ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Proteus Pro [philips reference design]) + + pci:v00001131d00007133sv00001131sd00002018* +- ID_MODEL_FROM_DATABASE=Tiger reference design ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Tiger reference design) + + pci:v00001131d00007133sv00001131sd00004EE9* +- ID_MODEL_FROM_DATABASE=MonsterTV Mobile ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (MonsterTV Mobile) + + pci:v00001131d00007133sv00001131sd00007133* +- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 301i ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Pinnacle PCTV 301i) + + pci:v00001131d00007133sv000011BDsd0000002B* +- ID_MODEL_FROM_DATABASE=PCTV Stereo ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV Stereo) + + pci:v00001131d00007133sv000011BDsd0000002E* +- ID_MODEL_FROM_DATABASE=PCTV 110i (saa7133) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV 110i (saa7133)) + + pci:v00001131d00007133sv000012ABsd00000800* +- ID_MODEL_FROM_DATABASE=PURPLE TV ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PURPLE TV) + + pci:v00001131d00007133sv000013C2sd00002804* +- ID_MODEL_FROM_DATABASE=Technotrend Budget T-3000 Hybrid ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Technotrend Budget T-3000 Hybrid) + + pci:v00001131d00007133sv00001421sd00000335* +- ID_MODEL_FROM_DATABASE=Instant TV DVB-T Cardbus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV DVB-T Cardbus) + + pci:v00001131d00007133sv00001421sd00001370* +- ID_MODEL_FROM_DATABASE=Instant TV (saa7135) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV (saa7135)) + + pci:v00001131d00007133sv00001435sd00007330* +- ID_MODEL_FROM_DATABASE=VFG7330 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7330) + + pci:v00001131d00007133sv00001435sd00007350* +- ID_MODEL_FROM_DATABASE=VFG7350 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7350) + + pci:v00001131d00007133sv00001458sd00009001* +- ID_MODEL_FROM_DATABASE=GC-PTV-TAF Hybrid TV card ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GC-PTV-TAF Hybrid TV card) + + pci:v00001131d00007133sv00001458sd00009002* +- ID_MODEL_FROM_DATABASE=GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009003* +- ID_MODEL_FROM_DATABASE=GT-PTV-AF-RH Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-AF-RH Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009004* +- ID_MODEL_FROM_DATABASE=GT-P8000 DVB-T/Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P8000 DVB-T/Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009005* +- ID_MODEL_FROM_DATABASE=GT-P6000 Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P6000 Analog TV/FM tuner) + + pci:v00001131d00007133sv00001458sd00009008* +- ID_MODEL_FROM_DATABASE=GT-P5100 Analog TV tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P5100 Analog TV tuner) + + pci:v00001131d00007133sv00001461sd00001044* +- ID_MODEL_FROM_DATABASE=AVerTVHD MCE A180 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTVHD MCE A180) + + pci:v00001131d00007133sv00001461sd00004836* +- ID_MODEL_FROM_DATABASE=M10D Hybrid DVBT ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M10D Hybrid DVBT) + + pci:v00001131d00007133sv00001461sd0000861E* +- ID_MODEL_FROM_DATABASE=M105 PAL/SECAM/NTSC/FM Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M105 PAL/SECAM/NTSC/FM Tuner) + + pci:v00001131d00007133sv00001461sd0000A14B* +- ID_MODEL_FROM_DATABASE=AVerTV Studio 509 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTV Studio 509) + + pci:v00001131d00007133sv00001461sd0000A836* +- ID_MODEL_FROM_DATABASE=M115 DVB-T, PAL/SECAM/NTSC Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M115 DVB-T, PAL/SECAM/NTSC Tuner) + + pci:v00001131d00007133sv00001461sd0000F01D* +- ID_MODEL_FROM_DATABASE=DVB-T Super 007 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (DVB-T Super 007) + + pci:v00001131d00007133sv00001461sd0000F31F* +- ID_MODEL_FROM_DATABASE=Avermedia AVerTV GO 007 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Avermedia AVerTV GO 007 FM) + + pci:v00001131d00007133sv00001461sd0000F936* +- ID_MODEL_FROM_DATABASE=Hybrid+FM PCI (rev A16D) ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Hybrid+FM PCI (rev A16D)) + + pci:v00001131d00007133sv00001462sd00006231* +- ID_MODEL_FROM_DATABASE=TV@nywhere Plus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV@nywhere Plus) + + pci:v00001131d00007133sv00001489sd00000214* +- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum FM) + + pci:v00001131d00007133sv000014C0sd00001212* +- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum Mini2 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum Mini2) + + pci:v00001131d00007133sv0000153Bsd00001160* +- ID_MODEL_FROM_DATABASE=Cinergy 250 PCI TV ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Cinergy 250 PCI TV) + + pci:v00001131d00007133sv0000153Bsd00001162* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Terratec Cinergy 400 mobile) + + pci:v00001131d00007133sv000017DEsd00007256* +- ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PlusTV All In One PI610 card) + + pci:v00001131d00007133sv000017DEsd00007350* +- ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 110 Digital / Analog HDTV Tuner) + + pci:v00001131d00007133sv000017DEsd00007352* +- ID_MODEL_FROM_DATABASE=ATSC 115 Digital / Analog HDTV Tuner ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 115 Digital / Analog HDTV Tuner) + + pci:v00001131d00007133sv0000185Bsd0000C100* +- ID_MODEL_FROM_DATABASE=VideoMate TV ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate TV) + + pci:v00001131d00007133sv0000185Bsd0000C900* +- ID_MODEL_FROM_DATABASE=VideoMate T750 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate T750) + + pci:v00001131d00007133sv00005168sd00000306* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T DUO ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T DUO) + + pci:v00001131d00007133sv00005168sd00000319* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio) + + pci:v00001131d00007133sv00005168sd00000502* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Duo CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Duo CardBus) + + pci:v00001131d00007133sv00005168sd00000520* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio CardBus) + + pci:v00001131d00007133sv00005168sd00001502* +- ID_MODEL_FROM_DATABASE=LifeView FlyTV CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV CardBus) + + pci:v00001131d00007133sv00005168sd00002502* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T CardBus) + + pci:v00001131d00007133sv00005168sd00002520* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-S Duo CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-S Duo CardBus) + + pci:v00001131d00007133sv00005168sd00003502* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Hybrid CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Hybrid CardBus) + + pci:v00001131d00007133sv00005168sd00003520* +- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio N CardBus ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio N CardBus) + + pci:v00001131d00007133sv00005ACEsd00005030* +- ID_MODEL_FROM_DATABASE=Behold TV 503 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 503 FM) + + pci:v00001131d00007133sv00005ACEsd00005090* +- ID_MODEL_FROM_DATABASE=Behold TV 509 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 509 FM) + + pci:v00001131d00007133sv00005ACEsd00006090* +- ID_MODEL_FROM_DATABASE=Behold TV 609 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) + + pci:v00001131d00007133sv00005ACEsd00006091* +- ID_MODEL_FROM_DATABASE=Behold TV 609 FM ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) + + pci:v00001131d00007133sv00005ACEsd00006092* +- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) + + pci:v00001131d00007133sv00005ACEsd00006093* +- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) + + pci:v00001131d00007133sv00005ACEsd00006190* +- ID_MODEL_FROM_DATABASE=Behold TV M6 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6) + + pci:v00001131d00007133sv00005ACEsd00006191* +- ID_MODEL_FROM_DATABASE=Behold TV M63 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M63) + + pci:v00001131d00007133sv00005ACEsd00006193* +- ID_MODEL_FROM_DATABASE=Behold TV M6 Extra ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6 Extra) + + pci:v00001131d00007133sv00005ACEsd00006290* +- ID_MODEL_FROM_DATABASE=Behold TV H6 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H6) + + pci:v00001131d00007133sv00005ACEsd00007090* +- ID_MODEL_FROM_DATABASE=Behold TV A7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV A7) + + pci:v00001131d00007133sv00005ACEsd00007150* +- ID_MODEL_FROM_DATABASE=Behold TV H75 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) + + pci:v00001131d00007133sv00005ACEsd00007151* +- ID_MODEL_FROM_DATABASE=Behold TV H75 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) + + pci:v00001131d00007133sv00005ACEsd00007190* +- ID_MODEL_FROM_DATABASE=Behold TV H7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) + + pci:v00001131d00007133sv00005ACEsd00007191* +- ID_MODEL_FROM_DATABASE=Behold TV H7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) + + pci:v00001131d00007133sv00005ACEsd00007290* +- ID_MODEL_FROM_DATABASE=Behold TV T7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV T7) + + pci:v00001131d00007133sv00005ACEsd00007591* +- ID_MODEL_FROM_DATABASE=Behold TV X7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) + + pci:v00001131d00007133sv00005ACEsd00007595* +- ID_MODEL_FROM_DATABASE=Behold TV X7 ++ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) + + pci:v00001131d00007134* + ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder + + pci:v00001131d00007134sv00000000sd00004036* +- ID_MODEL_FROM_DATABASE=Behold TV 403 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403) + + pci:v00001131d00007134sv00000000sd00004037* +- ID_MODEL_FROM_DATABASE=Behold TV 403 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403 FM) + + pci:v00001131d00007134sv00000000sd00004071* +- ID_MODEL_FROM_DATABASE=Behold TV 407 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 407 FM) + + pci:v00001131d00007134sv00001019sd00004CB4* +- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM)) + + pci:v00001131d00007134sv00001043sd00000210* +- ID_MODEL_FROM_DATABASE=Digimatrix TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Digimatrix TV) + + pci:v00001131d00007134sv00001043sd00004840* +- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7134 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ASUS TV-FM 7134) + + pci:v00001131d00007134sv00001043sd00004842* +- ID_MODEL_FROM_DATABASE=TV-FM 7134 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (TV-FM 7134) + + pci:v00001131d00007134sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SAA713x-based TV tuner card) + + pci:v00001131d00007134sv00001131sd00002004* +- ID_MODEL_FROM_DATABASE=EUROPA V3 reference design ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EUROPA V3 reference design) + + pci:v00001131d00007134sv00001131sd00004E85* +- ID_MODEL_FROM_DATABASE=SKNet Monster TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SKNet Monster TV) + + pci:v00001131d00007134sv00001131sd00006752* +- ID_MODEL_FROM_DATABASE=EMPRESS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EMPRESS) + + pci:v00001131d00007134sv000011BDsd0000002B* +- ID_MODEL_FROM_DATABASE=PCTV Stereo ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV Stereo) + + pci:v00001131d00007134sv000011BDsd0000002D* +- ID_MODEL_FROM_DATABASE=PCTV 300i DVB-T + PAL ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV 300i DVB-T + PAL) + + pci:v00001131d00007134sv00001461sd00002C00* +- ID_MODEL_FROM_DATABASE=AverTV Hybrid+FM PCI ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverTV Hybrid+FM PCI) + + pci:v00001131d00007134sv00001461sd00009715* +- ID_MODEL_FROM_DATABASE=AVerTV Studio 307 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Studio 307) + + pci:v00001131d00007134sv00001461sd0000A70A* +- ID_MODEL_FROM_DATABASE=Avermedia AVerTV 307 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Avermedia AVerTV 307) + + pci:v00001131d00007134sv00001461sd0000A70B* +- ID_MODEL_FROM_DATABASE=AverMedia M156 / Medion 2819 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverMedia M156 / Medion 2819) + + pci:v00001131d00007134sv00001461sd0000D6EE* +- ID_MODEL_FROM_DATABASE=Cardbus TV/Radio (E500) ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Cardbus TV/Radio (E500)) + + pci:v00001131d00007134sv00001471sd0000B7E9* +- ID_MODEL_FROM_DATABASE=AVerTV Cardbus plus ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Cardbus plus) + + pci:v00001131d00007134sv0000153Bsd00001142* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 400 TV) + + pci:v00001131d00007134sv0000153Bsd00001143* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV) + + pci:v00001131d00007134sv0000153Bsd00001158* +- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV MK3 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV MK3) + + pci:v00001131d00007134sv00001540sd00009524* +- ID_MODEL_FROM_DATABASE=ProVideo PV952 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ProVideo PV952) + + pci:v00001131d00007134sv000016BEsd00000003* +- ID_MODEL_FROM_DATABASE=Medion 7134 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Medion 7134) + + pci:v00001131d00007134sv0000185Bsd0000C200* +- ID_MODEL_FROM_DATABASE=Compro VideoMate Gold+ Pal ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Compro VideoMate Gold+ Pal) + + pci:v00001131d00007134sv0000185Bsd0000C900* +- ID_MODEL_FROM_DATABASE=Videomate DVB-T300 ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Videomate DVB-T300) + + pci:v00001131d00007134sv00001894sd0000A006* +- ID_MODEL_FROM_DATABASE=KNC One TV-Station DVR ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station DVR) + + pci:v00001131d00007134sv00001894sd0000FE01* +- ID_MODEL_FROM_DATABASE=KNC One TV-Station RDS / Typhoon TV Tuner RDS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station RDS / Typhoon TV Tuner RDS) + + pci:v00001131d00007134sv00005168sd00000138* +- ID_MODEL_FROM_DATABASE=FLY TV PRIME 34FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FLY TV PRIME 34FM) + + pci:v00001131d00007134sv00005168sd00000300* +- ID_MODEL_FROM_DATABASE=FlyDVB-S ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FlyDVB-S) + + pci:v00001131d00007134sv00005ACEsd00005070* +- ID_MODEL_FROM_DATABASE=Behold TV 507 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 507 FM) + + pci:v00001131d00007134sv00005ACEsd00006070* +- ID_MODEL_FROM_DATABASE=Behold TV 607 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) + + pci:v00001131d00007134sv00005ACEsd00006071* +- ID_MODEL_FROM_DATABASE=Behold TV 607 FM ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) + + pci:v00001131d00007134sv00005ACEsd00006072* +- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) + + pci:v00001131d00007134sv00005ACEsd00006073* +- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS ++ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) + + pci:v00001131d00007145* + ID_MODEL_FROM_DATABASE=SAA7145 +@@ -32034,223 +32034,223 @@ pci:v00001131d00007146* + ID_MODEL_FROM_DATABASE=SAA7146 + + pci:v00001131d00007146sv0000110Asd00000000* +- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) + + pci:v00001131d00007146sv0000110Asd0000FFFF* +- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) + + pci:v00001131d00007146sv00001124sd00002581* +- ID_MODEL_FROM_DATABASE=Leutron Vision PicPort ++ ID_MODEL_FROM_DATABASE=SAA7146 (Leutron Vision PicPort) + + pci:v00001131d00007146sv00001131sd00004F56* +- ID_MODEL_FROM_DATABASE=KNC1 DVB-S Budget ++ ID_MODEL_FROM_DATABASE=SAA7146 (KNC1 DVB-S Budget) + + pci:v00001131d00007146sv00001131sd00004F60* +- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Activy DVB-S Budget Rev AL ++ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu-Siemens Activy DVB-S Budget Rev AL) + + pci:v00001131d00007146sv00001131sd00004F61* +- ID_MODEL_FROM_DATABASE=Activy DVB-S Budget Rev GR ++ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-S Budget Rev GR) + + pci:v00001131d00007146sv00001131sd00005F61* +- ID_MODEL_FROM_DATABASE=Activy DVB-T Budget ++ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-T Budget) + + pci:v00001131d00007146sv0000114Bsd00002003* +- ID_MODEL_FROM_DATABASE=DVRaptor Video Edit/Capture Card ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVRaptor Video Edit/Capture Card) + + pci:v00001131d00007146sv000011BDsd00000006* +- ID_MODEL_FROM_DATABASE=DV500 Overlay ++ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) + + pci:v00001131d00007146sv000011BDsd0000000A* +- ID_MODEL_FROM_DATABASE=DV500 Overlay ++ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) + + pci:v00001131d00007146sv000011BDsd0000000F* +- ID_MODEL_FROM_DATABASE=DV500 Overlay ++ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) + + pci:v00001131d00007146sv000013C2sd00000000* +- ID_MODEL_FROM_DATABASE=Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5) + + pci:v00001131d00007146sv000013C2sd00000001* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) + + pci:v00001131d00007146sv000013C2sd00000002* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv000013C2sd00000003* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv000013C2sd00000004* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv000013C2sd00000006* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) + + pci:v00001131d00007146sv000013C2sd00000008* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB-T ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB-T) + + pci:v00001131d00007146sv000013C2sd0000000A* +- ID_MODEL_FROM_DATABASE=Octal/Technotrend DVB-C for iTV ++ ID_MODEL_FROM_DATABASE=SAA7146 (Octal/Technotrend DVB-C for iTV) + + pci:v00001131d00007146sv000013C2sd0000000E* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.3 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.3) + + pci:v00001131d00007146sv000013C2sd00001003* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card) + + pci:v00001131d00007146sv000013C2sd00001004* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card) + + pci:v00001131d00007146sv000013C2sd00001005* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) + + pci:v00001131d00007146sv000013C2sd0000100C* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) + + pci:v00001131d00007146sv000013C2sd0000100F* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) + + pci:v00001131d00007146sv000013C2sd00001010* +- ID_MODEL_FROM_DATABASE=DVB C-1500 ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVB C-1500) + + pci:v00001131d00007146sv000013C2sd00001011* +- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) + + pci:v00001131d00007146sv000013C2sd00001012* +- ID_MODEL_FROM_DATABASE=DVB T-1500 ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVB T-1500) + + pci:v00001131d00007146sv000013C2sd00001013* +- ID_MODEL_FROM_DATABASE=SATELCO Multimedia DVB ++ ID_MODEL_FROM_DATABASE=SAA7146 (SATELCO Multimedia DVB) + + pci:v00001131d00007146sv000013C2sd00001016* +- ID_MODEL_FROM_DATABASE=WinTV-NOVA-SE DVB card ++ ID_MODEL_FROM_DATABASE=SAA7146 (WinTV-NOVA-SE DVB card) + + pci:v00001131d00007146sv000013C2sd00001018* +- ID_MODEL_FROM_DATABASE=DVB S-1401 ++ ID_MODEL_FROM_DATABASE=SAA7146 (DVB S-1401) + + pci:v00001131d00007146sv000013C2sd00001019* +- ID_MODEL_FROM_DATABASE=S2-3200 ++ ID_MODEL_FROM_DATABASE=SAA7146 (S2-3200) + + pci:v00001131d00007146sv000013C2sd00001102* +- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 ++ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) + + pci:v00001131d00007146sv0000153Bsd00001155* +- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-S ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) + + pci:v00001131d00007146sv0000153Bsd00001156* +- ID_MODEL_FROM_DATABASE=Terratec Cynergy 1200C ++ ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) + + pci:v00001131d00007146sv0000153Bsd00001157* +- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-T ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) + + pci:v00001131d00007146sv00001894sd00000020* +- ID_MODEL_FROM_DATABASE=KNC One DVB-C V1.0 ++ ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) + + pci:v00001131d00007146sv00001894sd00000023* +- ID_MODEL_FROM_DATABASE=TVStation DVB-C plus ++ ID_MODEL_FROM_DATABASE=SAA7146 (TVStation DVB-C plus) + + pci:v00001131d00007160* + ID_MODEL_FROM_DATABASE=SAA7160 + + pci:v00001131d00007160sv00001458sd00009009* +- ID_MODEL_FROM_DATABASE=E8000 DVB-T/Analog TV/FM tuner ++ ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) + + pci:v00001131d00007162* + ID_MODEL_FROM_DATABASE=SAA7162 + + pci:v00001131d00007162sv000011BDsd00000101* +- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 7010iX TV Card ++ ID_MODEL_FROM_DATABASE=SAA7162 (Pinnacle PCTV 7010iX TV Card) + + pci:v00001131d00007164* + ID_MODEL_FROM_DATABASE=SAA7164 + + pci:v00001131d00007164sv00000070sd00008800* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008810* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008851* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008853* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008880* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008891* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd000088A0* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd000088A1* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) + + pci:v00001131d00007164sv00000070sd00008900* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008901* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008940* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 (submodel 89619) ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200 (submodel 89619)) + + pci:v00001131d00007164sv00000070sd00008951* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008953* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008980* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008991* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd00008993* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd000089A0* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007164sv00000070sd000089A1* +- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 ++ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) + + pci:v00001131d00007231* + ID_MODEL_FROM_DATABASE=SAA7231 + + pci:v00001131d00007231sv00005ACEsd00008000* +- ID_MODEL_FROM_DATABASE=Behold TV H8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) + + pci:v00001131d00007231sv00005ACEsd00008001* +- ID_MODEL_FROM_DATABASE=Behold TV H8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) + + pci:v00001131d00007231sv00005ACEsd00008050* +- ID_MODEL_FROM_DATABASE=Behold TV H85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) + + pci:v00001131d00007231sv00005ACEsd00008051* +- ID_MODEL_FROM_DATABASE=Behold TV H85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) + + pci:v00001131d00007231sv00005ACEsd00008100* +- ID_MODEL_FROM_DATABASE=Behold TV A8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) + + pci:v00001131d00007231sv00005ACEsd00008101* +- ID_MODEL_FROM_DATABASE=Behold TV A8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) + + pci:v00001131d00007231sv00005ACEsd00008150* +- ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) + + pci:v00001131d00007231sv00005ACEsd00008151* +- ID_MODEL_FROM_DATABASE=Behold TV A85 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) + + pci:v00001131d00007231sv00005ACEsd00008201* +- ID_MODEL_FROM_DATABASE=Behold TV T8 ++ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV T8) + + pci:v00001131d00009730* + ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller + + pci:v00001131d00009730sv00001131sd00000000* +- ID_MODEL_FROM_DATABASE=Integrated Multimedia and Peripheral Controller ++ ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller (Integrated Multimedia and Peripheral Controller) + + pci:v00001132* + ID_VENDOR_FROM_DATABASE=Mitel Corp. +@@ -32364,7 +32364,7 @@ pci:v00001133d0000E010* + ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI + + pci:v00001133d0000E010sv0000110Asd00000021* +- ID_MODEL_FROM_DATABASE=Fujitsu Siemens ISDN S0 ++ ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI (Fujitsu Siemens ISDN S0) + + pci:v00001133d0000E011* + ID_MODEL_FROM_DATABASE=Diva Server BRI S/T Rev 2 +@@ -32376,10 +32376,10 @@ pci:v00001133d0000E013* + ID_MODEL_FROM_DATABASE=4BRI + + pci:v00001133d0000E013sv00001133sd00001300* +- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCI v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCI v2) + + pci:v00001133d0000E013sv00001133sd0000E013* +- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCI v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCI v2) + + pci:v00001133d0000E014* + ID_MODEL_FROM_DATABASE=Diva Server PRI-30M PCI +@@ -32394,22 +32394,22 @@ pci:v00001133d0000E017* + ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 + + pci:v00001133d0000E017sv00001133sd0000E017* +- ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI-8M 2.0 PCI ++ ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 (Diva Server Voice 4BRI-8M 2.0 PCI) + + pci:v00001133d0000E018* + ID_MODEL_FROM_DATABASE=BRI + + pci:v00001133d0000E018sv00001133sd00001800* +- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCI v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCI v2) + + pci:v00001133d0000E018sv00001133sd0000E018* +- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCI v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCI v2) + + pci:v00001133d0000E019* + ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 + + pci:v00001133d0000E019sv00001133sd0000E019* +- ID_MODEL_FROM_DATABASE=Diva Server Voice PRI 2.0 PCI ++ ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 (Diva Server Voice PRI 2.0 PCI) + + pci:v00001133d0000E01A* + ID_MODEL_FROM_DATABASE=Diva BRI-2FX PCI v2 +@@ -32424,85 +32424,85 @@ pci:v00001133d0000E01C* + ID_MODEL_FROM_DATABASE=PRI + + pci:v00001133d0000E01Csv00001133sd00001C01* +- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-8 PCI v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-8 PCI v3) + + pci:v00001133d0000E01Csv00001133sd00001C02* +- ID_MODEL_FROM_DATABASE=Diva PRI/T1-24 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/T1-24 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C03* +- ID_MODEL_FROM_DATABASE=Diva PRI/E1-30 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1-30 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C04* +- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-CTI PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-CTI PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C05* +- ID_MODEL_FROM_DATABASE=Diva V-PRI/T1-24 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/T1-24 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C06* +- ID_MODEL_FROM_DATABASE=Diva V-PRI/E1-30 PCI(e) v3 ++ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/E1-30 PCI(e) v3) + + pci:v00001133d0000E01Csv00001133sd00001C07* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1-8 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1-8 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C08* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/T1-24 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/T1-24 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C09* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1-30 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1-30 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C0A* +- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C0B* +- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/T1-24 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/T1-24 Cornet NQ) + + pci:v00001133d0000E01Csv00001133sd00001C0C* +- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/E1-30 Cornet NQ ++ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/E1-30 Cornet NQ) + + pci:v00001133d0000E01E* + ID_MODEL_FROM_DATABASE=2PRI + + pci:v00001133d0000E01Esv00001133sd00001E01* +- ID_MODEL_FROM_DATABASE=Diva 2PRI/E1/T1-60 PCI v1 ++ ID_MODEL_FROM_DATABASE=2PRI (Diva 2PRI/E1/T1-60 PCI v1) + + pci:v00001133d0000E01Esv00001133sd0000E01E* +- ID_MODEL_FROM_DATABASE=Diva V-2PRI/E1/T1-60 PCI v1 ++ ID_MODEL_FROM_DATABASE=2PRI (Diva V-2PRI/E1/T1-60 PCI v1) + + pci:v00001133d0000E020* + ID_MODEL_FROM_DATABASE=4PRI + + pci:v00001133d0000E020sv00001133sd00002001* +- ID_MODEL_FROM_DATABASE=Diva 4PRI/E1/T1-120 PCI v1 ++ ID_MODEL_FROM_DATABASE=4PRI (Diva 4PRI/E1/T1-120 PCI v1) + + pci:v00001133d0000E020sv00001133sd0000E020* +- ID_MODEL_FROM_DATABASE=Diva V-4PRI/E1/T1-120 PCI v1 ++ ID_MODEL_FROM_DATABASE=4PRI (Diva V-4PRI/E1/T1-120 PCI v1) + + pci:v00001133d0000E022* + ID_MODEL_FROM_DATABASE=Analog-2 + + pci:v00001133d0000E022sv00001133sd00002200* +- ID_MODEL_FROM_DATABASE=Diva V-Analog-2 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-2 (Diva V-Analog-2 PCI v1) + + pci:v00001133d0000E022sv00001133sd0000E022* +- ID_MODEL_FROM_DATABASE=Diva Analog-2 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-2 (Diva Analog-2 PCI v1) + + pci:v00001133d0000E024* + ID_MODEL_FROM_DATABASE=Analog-4 + + pci:v00001133d0000E024sv00001133sd00002400* +- ID_MODEL_FROM_DATABASE=Diva V-Analog-4 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-4 (Diva V-Analog-4 PCI v1) + + pci:v00001133d0000E024sv00001133sd0000E024* +- ID_MODEL_FROM_DATABASE=Diva Analog-4 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-4 (Diva Analog-4 PCI v1) + + pci:v00001133d0000E028* + ID_MODEL_FROM_DATABASE=Analog-8 + + pci:v00001133d0000E028sv00001133sd00002800* +- ID_MODEL_FROM_DATABASE=Diva V-Analog-8 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-8 (Diva V-Analog-8 PCI v1) + + pci:v00001133d0000E028sv00001133sd0000E028* +- ID_MODEL_FROM_DATABASE=Diva Analog-8 PCI v1 ++ ID_MODEL_FROM_DATABASE=Analog-8 (Diva Analog-8 PCI v1) + + pci:v00001133d0000E02A* + ID_MODEL_FROM_DATABASE=Diva IPM-300 PCI v1 +@@ -32514,19 +32514,19 @@ pci:v00001133d0000E02E* + ID_MODEL_FROM_DATABASE=4BRI + + pci:v00001133d0000E02Esv00001133sd00002E01* +- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCIe v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCIe v2) + + pci:v00001133d0000E02Esv00001133sd0000E02E* +- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCIe v2 ++ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCIe v2) + + pci:v00001133d0000E032* + ID_MODEL_FROM_DATABASE=BRI + + pci:v00001133d0000E032sv00001133sd00003201* +- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCIe v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCIe v2) + + pci:v00001133d0000E032sv00001133sd0000E032* +- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCIe v2 ++ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCIe v2) + + pci:v00001133d0000E034* + ID_MODEL_FROM_DATABASE=Diva BRI-CTI PCI v2 +@@ -32574,88 +32574,88 @@ pci:v00001137d00000042* + ID_MODEL_FROM_DATABASE=VIC Management Controller + + pci:v00001137d00000042sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC P81E PCIe Management Controller) + + pci:v00001137d00000042sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225 PCIe Management Controller) + + pci:v00001137d00000042sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1285 PCIe Management Controller) + + pci:v00001137d00000042sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Management Controller ++ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225T PCIe Management Controller) + + pci:v00001137d00000043* + ID_MODEL_FROM_DATABASE=VIC Ethernet NIC + + pci:v00001137d00000043sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC P81E PCIe Ethernet NIC) + + pci:v00001137d00000043sv00001137sd00000048* +- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC M81KR Mezzanine Ethernet NIC) + + pci:v00001137d00000043sv00001137sd0000004F* +- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1280 Mezzanine Ethernet NIC) + + pci:v00001137d00000043sv00001137sd00000084* +- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1240 MLOM Ethernet NIC) + + pci:v00001137d00000043sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225 PCIe Ethernet NIC) + + pci:v00001137d00000043sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1285 PCIe Ethernet NIC) + + pci:v00001137d00000043sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225T PCIe Ethernet NIC) + + pci:v00001137d00000044* + ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic + + pci:v00001137d00000044sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC P81E PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd00000048* +- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC M81KR Mezzanine Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd0000004F* +- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1280 Mezzanine Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd00000084* +- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1240 MLOM Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225 PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1285 PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000044sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC Dynamic ++ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225T PCIe Ethernet NIC Dynamic) + + pci:v00001137d00000045* + ID_MODEL_FROM_DATABASE=VIC FCoE HBA + + pci:v00001137d00000045sv00001137sd00000047* +- ID_MODEL_FROM_DATABASE=VIC P81E PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC P81E PCIe FCoE HBA) + + pci:v00001137d00000045sv00001137sd00000048* +- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC M81KR Mezzanine FCoE HBA) + + pci:v00001137d00000045sv00001137sd0000004F* +- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1280 Mezzanine FCoE HBA) + + pci:v00001137d00000045sv00001137sd00000084* +- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1240 MLOM FCoE HBA) + + pci:v00001137d00000045sv00001137sd00000085* +- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225 PCIe FCoE HBA) + + pci:v00001137d00000045sv00001137sd000000CD* +- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1285 PCIe FCoE HBA) + + pci:v00001137d00000045sv00001137sd000000CE* +- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe FCoE HBA ++ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225T PCIe FCoE HBA) + + pci:v00001137d0000004E* + ID_MODEL_FROM_DATABASE=VIC 82 PCIe Upstream Port +@@ -32814,49 +32814,49 @@ pci:v00001148d00004000* + ID_MODEL_FROM_DATABASE=FDDI Adapter + + pci:v00001148d00004000sv00000E11sd0000B03B* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS Fibre SC ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS Fibre SC) + + pci:v00001148d00004000sv00000E11sd0000B03C* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre SC ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre SC) + + pci:v00001148d00004000sv00000E11sd0000B03D* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS UTP ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS UTP) + + pci:v00001148d00004000sv00000E11sd0000B03E* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS UTP ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS UTP) + + pci:v00001148d00004000sv00000E11sd0000B03F* +- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre MIC ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre MIC) + + pci:v00001148d00004000sv00001148sd00005521* +- ID_MODEL_FROM_DATABASE=FDDI SK-5521 (SK-NET FDDI-UP) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5521 (SK-NET FDDI-UP)) + + pci:v00001148d00004000sv00001148sd00005522* +- ID_MODEL_FROM_DATABASE=FDDI SK-5522 (SK-NET FDDI-UP DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5522 (SK-NET FDDI-UP DAS)) + + pci:v00001148d00004000sv00001148sd00005541* +- ID_MODEL_FROM_DATABASE=FDDI SK-5541 (SK-NET FDDI-FP) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5541 (SK-NET FDDI-FP)) + + pci:v00001148d00004000sv00001148sd00005543* +- ID_MODEL_FROM_DATABASE=FDDI SK-5543 (SK-NET FDDI-LP) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5543 (SK-NET FDDI-LP)) + + pci:v00001148d00004000sv00001148sd00005544* +- ID_MODEL_FROM_DATABASE=FDDI SK-5544 (SK-NET FDDI-LP DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5544 (SK-NET FDDI-LP DAS)) + + pci:v00001148d00004000sv00001148sd00005821* +- ID_MODEL_FROM_DATABASE=FDDI SK-5821 (SK-NET FDDI-UP64) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5821 (SK-NET FDDI-UP64)) + + pci:v00001148d00004000sv00001148sd00005822* +- ID_MODEL_FROM_DATABASE=FDDI SK-5822 (SK-NET FDDI-UP64 DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5822 (SK-NET FDDI-UP64 DAS)) + + pci:v00001148d00004000sv00001148sd00005841* +- ID_MODEL_FROM_DATABASE=FDDI SK-5841 (SK-NET FDDI-FP64) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5841 (SK-NET FDDI-FP64)) + + pci:v00001148d00004000sv00001148sd00005843* +- ID_MODEL_FROM_DATABASE=FDDI SK-5843 (SK-NET FDDI-LP64) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5843 (SK-NET FDDI-LP64)) + + pci:v00001148d00004000sv00001148sd00005844* +- ID_MODEL_FROM_DATABASE=FDDI SK-5844 (SK-NET FDDI-LP64 DAS) ++ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5844 (SK-NET FDDI-LP64 DAS)) + + pci:v00001148d00004200* + ID_MODEL_FROM_DATABASE=Token Ring adapter +@@ -32865,115 +32865,115 @@ pci:v00001148d00004300* + ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) + + pci:v00001148d00004300sv00001148sd00009821* +- ID_MODEL_FROM_DATABASE=SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T)) + + pci:v00001148d00004300sv00001148sd00009822* +- ID_MODEL_FROM_DATABASE=SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link)) + + pci:v00001148d00004300sv00001148sd00009841* +- ID_MODEL_FROM_DATABASE=SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX)) + + pci:v00001148d00004300sv00001148sd00009842* +- ID_MODEL_FROM_DATABASE=SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link)) + + pci:v00001148d00004300sv00001148sd00009843* +- ID_MODEL_FROM_DATABASE=SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX)) + + pci:v00001148d00004300sv00001148sd00009844* +- ID_MODEL_FROM_DATABASE=SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link)) + + pci:v00001148d00004300sv00001148sd00009861* +- ID_MODEL_FROM_DATABASE=SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition)) + + pci:v00001148d00004300sv00001148sd00009862* +- ID_MODEL_FROM_DATABASE=SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link)) + + pci:v00001148d00004300sv00001148sd00009871* +- ID_MODEL_FROM_DATABASE=SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX) ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX)) + + pci:v00001148d00004300sv00001148sd00009872* + ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) + + pci:v00001148d00004300sv00001259sd00002970* +- ID_MODEL_FROM_DATABASE=AT-2970SX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002971* +- ID_MODEL_FROM_DATABASE=AT-2970LX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002972* +- ID_MODEL_FROM_DATABASE=AT-2970TX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002973* +- ID_MODEL_FROM_DATABASE=AT-2971SX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971SX Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002974* +- ID_MODEL_FROM_DATABASE=AT-2971T Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971T Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002975* +- ID_MODEL_FROM_DATABASE=AT-2970SX/2SC Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX/2SC Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002976* +- ID_MODEL_FROM_DATABASE=AT-2970LX/2SC Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX/2SC Gigabit Ethernet Adapter) + + pci:v00001148d00004300sv00001259sd00002977* +- ID_MODEL_FROM_DATABASE=AT-2970TX/2TX Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX/2TX Gigabit Ethernet Adapter) + + pci:v00001148d00004320* + ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC + + pci:v00001148d00004320sv00001148sd00000121* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8001 Adapter) + + pci:v00001148d00004320sv00001148sd00000221* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8002 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8002 Adapter) + + pci:v00001148d00004320sv00001148sd00000321* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8003 Adapter) + + pci:v00001148d00004320sv00001148sd00000421* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8004 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8004 Adapter) + + pci:v00001148d00004320sv00001148sd00000621* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8006 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8006 Adapter) + + pci:v00001148d00004320sv00001148sd00000721* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8007 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8007 Adapter) + + pci:v00001148d00004320sv00001148sd00000821* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8008 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8008 Adapter) + + pci:v00001148d00004320sv00001148sd00000921* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8009 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8009 Adapter) + + pci:v00001148d00004320sv00001148sd00001121* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8011 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8011 Adapter) + + pci:v00001148d00004320sv00001148sd00001221* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8012 Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8012 Adapter) + + pci:v00001148d00004320sv00001148sd00003221* +- ID_MODEL_FROM_DATABASE=SK-9521 V2.0 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 V2.0 10/100/1000Base-T Adapter) + + pci:v00001148d00004320sv00001148sd00005021* +- ID_MODEL_FROM_DATABASE=SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter) + + pci:v00001148d00004320sv00001148sd00005041* +- ID_MODEL_FROM_DATABASE=SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter) + + pci:v00001148d00004320sv00001148sd00005043* +- ID_MODEL_FROM_DATABASE=SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter) + + pci:v00001148d00004320sv00001148sd00005051* +- ID_MODEL_FROM_DATABASE=SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter) + + pci:v00001148d00004320sv00001148sd00005061* +- ID_MODEL_FROM_DATABASE=SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter) + + pci:v00001148d00004320sv00001148sd00005071* +- ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter) + + pci:v00001148d00004320sv00001148sd00009521* +- ID_MODEL_FROM_DATABASE=SK-9521 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 10/100/1000Base-T Adapter) + + pci:v00001148d00004400* + ID_MODEL_FROM_DATABASE=SK-9Dxx Gigabit Ethernet Adapter +@@ -32991,25 +32991,25 @@ pci:v00001148d00009E00* + ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 + + pci:v00001148d00009E00sv00001148sd00002100* +- ID_MODEL_FROM_DATABASE=SK-9E21 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21 Server Adapter) + + pci:v00001148d00009E00sv00001148sd000021D0* +- ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21D 10/100/1000Base-T Adapter) + + pci:v00001148d00009E00sv00001148sd00002200* +- ID_MODEL_FROM_DATABASE=SK-9E22 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E22 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00008100* +- ID_MODEL_FROM_DATABASE=SK-9E81 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E81 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00008200* +- ID_MODEL_FROM_DATABASE=SK-9E82 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E82 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00009100* +- ID_MODEL_FROM_DATABASE=SK-9E91 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E91 Server Adapter) + + pci:v00001148d00009E00sv00001148sd00009200* +- ID_MODEL_FROM_DATABASE=SK-9E92 Server Adapter ++ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E92 Server Adapter) + + pci:v00001148d00009E01* + ID_MODEL_FROM_DATABASE=SK-9E21M 10/100/1000Base-T Adapter +@@ -33111,16 +33111,16 @@ pci:v0000114Fd0000001D* + ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI + + pci:v0000114Fd0000001Dsv0000114Fsd00000050* +- ID_MODEL_FROM_DATABASE=DataFire RAS E1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS E1 Adapter) + + pci:v0000114Fd0000001Dsv0000114Fsd00000051* +- ID_MODEL_FROM_DATABASE=DataFire RAS Dual E1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual E1 Adapter) + + pci:v0000114Fd0000001Dsv0000114Fsd00000052* +- ID_MODEL_FROM_DATABASE=DataFire RAS T1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS T1 Adapter) + + pci:v0000114Fd0000001Dsv0000114Fsd00000053* +- ID_MODEL_FROM_DATABASE=DataFire RAS Dual T1 Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual T1 Adapter) + + pci:v0000114Fd00000023* + ID_MODEL_FROM_DATABASE=AccelePort RAS +@@ -33129,10 +33129,10 @@ pci:v0000114Fd00000024* + ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U + + pci:v0000114Fd00000024sv0000114Fsd00000030* +- ID_MODEL_FROM_DATABASE=DataFire RAS BRI U Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI U Adapter) + + pci:v0000114Fd00000024sv0000114Fsd00000031* +- ID_MODEL_FROM_DATABASE=DataFire RAS BRI S/T Adapter ++ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI S/T Adapter) + + pci:v0000114Fd00000026* + ID_MODEL_FROM_DATABASE=AccelePort 4r 920 +@@ -33156,19 +33156,19 @@ pci:v0000114Fd00000040* + ID_MODEL_FROM_DATABASE=AccelePort Xp + + pci:v0000114Fd00000040sv0000114Fsd00000042* +- ID_MODEL_FROM_DATABASE=AccelePort 2p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 2p PCI) + + pci:v0000114Fd00000040sv0000114Fsd00000043* +- ID_MODEL_FROM_DATABASE=AccelePort 4p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 4p PCI) + + pci:v0000114Fd00000040sv0000114Fsd00000044* +- ID_MODEL_FROM_DATABASE=AccelePort 8p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 8p PCI) + + pci:v0000114Fd00000040sv0000114Fsd00000045* +- ID_MODEL_FROM_DATABASE=AccelePort 16p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 16p PCI) + + pci:v0000114Fd00000040sv0000114Fsd0000004E* +- ID_MODEL_FROM_DATABASE=AccelePort 32p PCI ++ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 32p PCI) + + pci:v0000114Fd00000042* + ID_MODEL_FROM_DATABASE=AccelePort 2p +@@ -33300,22 +33300,22 @@ pci:v0000115Dd00000003* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000003sv00001014sd00000181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv00001014sd00001181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv00001014sd00008181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv00001014sd00009181* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000003sv0000115Dsd00000181* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000003sv0000115Dsd00000182* +- ID_MODEL_FROM_DATABASE=RealPort2 CardBus Ethernet 10/100 (R2BE-100) ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (RealPort2 CardBus Ethernet 10/100 (R2BE-100)) + + pci:v0000115Dd00000003sv0000115Dsd00001181* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33324,19 +33324,19 @@ pci:v0000115Dd00000003sv00001179sd00000181* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000003sv00008086sd00008181* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) + + pci:v0000115Dd00000003sv00008086sd00009181* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) + + pci:v0000115Dd00000005* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000005sv00001014sd00000182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000005sv00001014sd00001182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000005sv0000115Dsd00000182* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33348,10 +33348,10 @@ pci:v0000115Dd00000007* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd00000007sv00001014sd00000182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000007sv00001014sd00001182* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd00000007sv0000115Dsd00000182* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33363,7 +33363,7 @@ pci:v0000115Dd0000000B* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd0000000Bsv00001014sd00000183* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd0000000Bsv0000115Dsd00000183* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33375,7 +33375,7 @@ pci:v0000115Dd0000000F* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 + + pci:v0000115Dd0000000Fsv00001014sd00000183* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) + + pci:v0000115Dd0000000Fsv0000115Dsd00000183* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 +@@ -33387,22 +33387,22 @@ pci:v0000115Dd00000101* + ID_MODEL_FROM_DATABASE=Cardbus 56k modem + + pci:v0000115Dd00000101sv0000115Dsd00001081* +- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus 56k modem (Cardbus 56k Modem) + + pci:v0000115Dd00000103* + ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem + + pci:v0000115Dd00000103sv00001014sd00009181* +- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus 56k Modem) + + pci:v0000115Dd00000103sv00001115sd00001181* +- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 100 + 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus Ethernet 100 + 56k Modem) + + pci:v0000115Dd00000103sv0000115Dsd00001181* +- ID_MODEL_FROM_DATABASE=CBEM56G-100 Ethernet + 56k Modem ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (CBEM56G-100 Ethernet + 56k Modem) + + pci:v0000115Dd00000103sv00008086sd00009181* +- ID_MODEL_FROM_DATABASE=PRO/100 LAN + Modem56 CardBus ++ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (PRO/100 LAN + Modem56 CardBus) + + pci:v0000115E* + ID_VENDOR_FROM_DATABASE=Peer Protocols Inc +@@ -33429,7 +33429,7 @@ pci:v00001163d00002000* + ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 + + pci:v00001163d00002000sv00001092sd00002000* +- ID_MODEL_FROM_DATABASE=Stealth II S220 ++ ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 (Stealth II S220) + + pci:v00001164* + ID_VENDOR_FROM_DATABASE=Advanced Peripherals Technologies +@@ -33510,7 +33510,7 @@ pci:v00001166d00000132* + ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge + + pci:v00001166d00000132sv00001166sd00000132* +- ID_MODEL_FROM_DATABASE=HT2000 PCI-Express bridge ++ ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge (HT2000 PCI-Express bridge) + + pci:v00001166d00000140* + ID_MODEL_FROM_DATABASE=HT2100 PCI-Express Bridge +@@ -33531,13 +33531,13 @@ pci:v00001166d00000201* + ID_MODEL_FROM_DATABASE=CSB5 South Bridge + + pci:v00001166d00000201sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=CSB5 South Bridge (CT8 mainboard) + + pci:v00001166d00000203* + ID_MODEL_FROM_DATABASE=CSB6 South Bridge + + pci:v00001166d00000203sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series ++ ID_MODEL_FROM_DATABASE=CSB6 South Bridge (PRIMERGY RX/TX series) + + pci:v00001166d00000205* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] Legacy South Bridge +@@ -33549,37 +33549,37 @@ pci:v00001166d00000212* + ID_MODEL_FROM_DATABASE=CSB5 IDE Controller + + pci:v00001166d00000212sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1750) + + pci:v00001166d00000212sv00001028sd0000810B* +- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 ++ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1650/2550) + + pci:v00001166d00000212sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (CT8 mainboard) + + pci:v00001166d00000213* + ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller + + pci:v00001166d00000213sv00001028sd00004134* +- ID_MODEL_FROM_DATABASE=PowerEdge 600SC ++ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PowerEdge 600SC) + + pci:v00001166d00000213sv00001028sd0000C134* +- ID_MODEL_FROM_DATABASE=Poweredge SC600 ++ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (Poweredge SC600) + + pci:v00001166d00000213sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard IDE ++ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PRIMERGY RX/TX series onboard IDE) + + pci:v00001166d00000214* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE + + pci:v00001166d00000214sv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 IDE ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE (PowerEdge 2970 HT1000 IDE) + + pci:v00001166d00000217* + ID_MODEL_FROM_DATABASE=CSB6 IDE Controller + + pci:v00001166d00000217sv00001028sd00004134* +- ID_MODEL_FROM_DATABASE=Poweredge SC600 ++ ID_MODEL_FROM_DATABASE=CSB6 IDE Controller (Poweredge SC600) + + pci:v00001166d0000021B* + ID_MODEL_FROM_DATABASE=HT1100 HD Audio +@@ -33588,22 +33588,22 @@ pci:v00001166d00000220* + ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller + + pci:v00001166d00000220sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller (CT8 mainboard) + + pci:v00001166d00000221* + ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller + + pci:v00001166d00000221sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard OHCI ++ ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller (PRIMERGY RX/TX series onboard OHCI) + + pci:v00001166d00000223* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB + + pci:v00001166d00000223sv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 USB Controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge 2970 HT1000 USB Controller) + + pci:v00001166d00000223sv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 USB Controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge T605 HT1000 USB Controller) + + pci:v00001166d00000225* + ID_MODEL_FROM_DATABASE=CSB5 LPC bridge +@@ -33612,22 +33612,22 @@ pci:v00001166d00000227* + ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge + + pci:v00001166d00000227sv00001734sd00001012* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series ++ ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge (PRIMERGY RX/TX series) + + pci:v00001166d00000230* + ID_MODEL_FROM_DATABASE=CSB5 LPC bridge + + pci:v00001166d00000230sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=CSB5 LPC bridge (CT8 mainboard) + + pci:v00001166d00000234* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC + + pci:v00001166d00000234sv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 LPC ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge 2970 HT1000 LPC) + + pci:v00001166d00000234sv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 LPC ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge T605 HT1000 LPC) + + pci:v00001166d00000235* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] XIOAPIC0-2 +@@ -33648,13 +33648,13 @@ pci:v00001166d0000024A* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) + + pci:v00001166d0000024Asv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) (PowerEdge T605 onboard SATA Controller) + + pci:v00001166d0000024B* + ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) + + pci:v00001166d0000024Bsv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 SATA controller ++ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) (PowerEdge 2970 HT1000 SATA controller) + + pci:v00001166d00000406* + ID_MODEL_FROM_DATABASE=HT1100 PCI-X Bridge +@@ -33666,7 +33666,7 @@ pci:v00001166d0000040A* + ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge + + pci:v00001166d0000040Asv00001028sd00000223* +- ID_MODEL_FROM_DATABASE=PowerEdge R905 HT1100 ISA-LPC Bridge ++ ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge (PowerEdge R905 HT1100 ISA-LPC Bridge) + + pci:v00001166d00000410* + ID_MODEL_FROM_DATABASE=HT1100 SATA Controller (Native SATA Mode) +@@ -33783,7 +33783,7 @@ pci:v00001179d00000601* + ID_MODEL_FROM_DATABASE=CPU to PCI bridge + + pci:v00001179d00000601sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite Pro ++ ID_MODEL_FROM_DATABASE=CPU to PCI bridge (Satellite Pro) + + pci:v00001179d00000602* + ID_MODEL_FROM_DATABASE=PCI to ISA bridge +@@ -33798,13 +33798,13 @@ pci:v00001179d0000060A* + ID_MODEL_FROM_DATABASE=ToPIC95 + + pci:v00001179d0000060Asv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite Pro ++ ID_MODEL_FROM_DATABASE=ToPIC95 (Satellite Pro) + + pci:v00001179d0000060F* + ID_MODEL_FROM_DATABASE=ToPIC97 + + pci:v00001179d0000060Fsv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite 4010 ++ ID_MODEL_FROM_DATABASE=ToPIC97 (Satellite 4010) + + pci:v00001179d00000617* + ID_MODEL_FROM_DATABASE=ToPIC100 PCI to Cardbus Bridge with ZV Support +@@ -33846,16 +33846,16 @@ pci:v0000117Cd00000030* + ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter + + pci:v0000117Cd00000030sv0000117Csd00008013* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL4D ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4D) + + pci:v0000117Cd00000030sv0000117Csd00008014* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL4S ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4S) + + pci:v0000117Cd00000030sv0000117Csd00008027* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D) + + pci:v0000117Cd00000030sv0000117Csd0000802F* +- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D Low Profile ++ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D Low Profile) + + pci:v0000117Cd00000033* + ID_MODEL_FROM_DATABASE=SAS Adapter +@@ -33882,67 +33882,67 @@ pci:v00001180d00000475* + ID_MODEL_FROM_DATABASE=RL5c475 + + pci:v00001180d00000475sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 CardBus bridge ++ ID_MODEL_FROM_DATABASE=RL5c475 (vpr Matrix 170B4 CardBus bridge) + + pci:v00001180d00000476* + ID_MODEL_FROM_DATABASE=RL5c476 II + + pci:v00001180d00000476sv00001014sd00000185* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad A/T/X Series) + + pci:v00001180d00000476sv00001014sd0000056C* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad Z60t) + + pci:v00001180d00000476sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Latitude X300 laptop) + + pci:v00001180d00000476sv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Inspiron 6000 laptop) + + pci:v00001180d00000476sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6710b) + + pci:v00001180d00000476sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6910p) + + pci:v00001180d00000476sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (A6J-Q008) + + pci:v00001180d00000476sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=RL5c476 II (V6800V) + + pci:v00001180d00000476sv00001043sd00001987* +- ID_MODEL_FROM_DATABASE=Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines ) ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines )) + + pci:v00001180d00000476sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Vaio PCG-FX403) + + pci:v00001180d00000476sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00001180d00000476sv0000104Dsd0000814E* +- ID_MODEL_FROM_DATABASE=VAIO GRZ390Z ++ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO GRZ390Z) + + pci:v00001180d00000476sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (Panasonic CF-Y5 laptop) + + pci:v00001180d00000476sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=RL5c476 II (X10 Laptop) + + pci:v00001180d00000476sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=RL5c476 II (P30/P35 notebook) + + pci:v00001180d00000476sv000014EFsd00000220* +- ID_MODEL_FROM_DATABASE=PCD-RP-220S ++ ID_MODEL_FROM_DATABASE=RL5c476 II (PCD-RP-220S) + + pci:v00001180d00000476sv000017AAsd0000201C* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad X60/X60s) + + pci:v00001180d00000476sv000017AAsd000020C4* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad T61) + + pci:v00001180d00000476sv000017AAsd000020C6* +- ID_MODEL_FROM_DATABASE=ThinkPad R61 ++ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad R61) + + pci:v00001180d00000477* + ID_MODEL_FROM_DATABASE=RL5c477 +@@ -33951,7 +33951,7 @@ pci:v00001180d00000478* + ID_MODEL_FROM_DATABASE=RL5c478 + + pci:v00001180d00000478sv00001014sd00000184* +- ID_MODEL_FROM_DATABASE=ThinkPad A30p ++ ID_MODEL_FROM_DATABASE=RL5c478 (ThinkPad A30p) + + pci:v00001180d00000511* + ID_MODEL_FROM_DATABASE=R5C511 +@@ -33960,43 +33960,43 @@ pci:v00001180d00000522* + ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller + + pci:v00001180d00000522sv00001014sd000001CF* +- ID_MODEL_FROM_DATABASE=ThinkPad A30p ++ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (ThinkPad A30p) + + pci:v00001180d00000522sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (V6800V) + + pci:v00001180d00000551* + ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller + + pci:v00001180d00000551sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller (vpr Matrix 170B4) + + pci:v00001180d00000552* + ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller + + pci:v00001180d00000552sv00001014sd00000511* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad A/T/X Series) + + pci:v00001180d00000552sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Latitude X300 laptop) + + pci:v00001180d00000552sv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Inspiron 6000 laptop) + + pci:v00001180d00000552sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (A6J-Q008) + + pci:v00001180d00000552sv00001043sd00001757* +- ID_MODEL_FROM_DATABASE=M2400N laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (M2400N laptop) + + pci:v00001180d00000552sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (X10 Laptop) + + pci:v00001180d00000552sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (P30/P35 notebook) + + pci:v00001180d00000552sv000017AAsd0000201E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad X60/X60s) + + pci:v00001180d00000554* + ID_MODEL_FROM_DATABASE=R5C554 +@@ -34011,37 +34011,37 @@ pci:v00001180d00000592* + ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter + + pci:v00001180d00000592sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Aspire 5920G) + + pci:v00001180d00000592sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (XPS M1210) + + pci:v00001180d00000592sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Inspiron 1420) + + pci:v00001180d00000592sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V3242AU) + + pci:v00001180d00000592sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V6133CL) + + pci:v00001180d00000592sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv6700) + + pci:v00001180d00000592sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv9668eg Laptop) + + pci:v00001180d00000592sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (A6J-Q008) + + pci:v00001180d00000592sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (V6800V) + + pci:v00001180d00000592sv0000144Dsd0000C018* +- ID_MODEL_FROM_DATABASE=X20 IV ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (X20 IV) + + pci:v00001180d00000592sv000017AAsd000020CA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (ThinkPad T61) + + pci:v00001180d00000811* + ID_MODEL_FROM_DATABASE=R5C811 +@@ -34050,94 +34050,94 @@ pci:v00001180d00000822* + ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter + + pci:v00001180d00000822sv00001014sd00000556* +- ID_MODEL_FROM_DATABASE=ThinkPad X60s / Z60t ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60s / Z60t) + + pci:v00001180d00000822sv00001014sd00000598* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60m ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad Z60m) + + pci:v00001180d00000822sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Aspire 5920G) + + pci:v00001180d00000822sv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 6000 laptop) + + pci:v00001180d00000822sv00001028sd000001A2* +- ID_MODEL_FROM_DATABASE=Inspiron 9200 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 9200) + + pci:v00001180d00000822sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (XPS M1210) + + pci:v00001180d00000822sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 1420) + + pci:v00001180d00000822sv0000103Csd000003B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V3242AU) + + pci:v00001180d00000822sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V6133CL) + + pci:v00001180d00000822sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Compaq 6910p) + + pci:v00001180d00000822sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv6700) + + pci:v00001180d00000822sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv9668eg Laptop) + + pci:v00001180d00000822sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (A6J-Q008) + + pci:v00001180d00000822sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=ASUS V6800V ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ASUS V6800V) + + pci:v00001180d00000822sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Panasonic CF-Y5 laptop) + + pci:v00001180d00000822sv0000144Dsd0000C018* +- ID_MODEL_FROM_DATABASE=X20 IV ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (X20 IV) + + pci:v00001180d00000822sv000017AAsd0000201D* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60/X60s) + + pci:v00001180d00000822sv000017AAsd000020C7* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad T61) + + pci:v00001180d00000822sv000017AAsd000020C8* +- ID_MODEL_FROM_DATABASE=ThinkPad W500 ++ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad W500) + + pci:v00001180d00000832* + ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller + + pci:v00001180d00000832sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Aspire 5920G) + + pci:v00001180d00000832sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (XPS M1210) + + pci:v00001180d00000832sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Inspiron 1420) + + pci:v00001180d00000832sv00001028sd0000024D* +- ID_MODEL_FROM_DATABASE=Latitude E4300 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Latitude E4300) + + pci:v00001180d00000832sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V3242AU) + + pci:v00001180d00000832sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V6133CL) + + pci:v00001180d00000832sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Compaq 6910p) + + pci:v00001180d00000832sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv6700) + + pci:v00001180d00000832sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv9668eg Laptop) + + pci:v00001180d00000832sv000017AAsd000020C7* +- ID_MODEL_FROM_DATABASE=ThinkPad R61 ++ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (ThinkPad R61) + + pci:v00001180d00000841* + ID_MODEL_FROM_DATABASE=R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394 +@@ -34146,58 +34146,58 @@ pci:v00001180d00000843* + ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller + + pci:v00001180d00000843sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Aspire 5920G) + + pci:v00001180d00000843sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (XPS M1210) + + pci:v00001180d00000843sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Inspiron 1420) + + pci:v00001180d00000843sv00001028sd000001F5* +- ID_MODEL_FROM_DATABASE=Dell Inspiron 1501 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Inspiron 1501) + + pci:v00001180d00000843sv00001028sd0000024F* +- ID_MODEL_FROM_DATABASE=Dell Latitude e6500 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Latitude e6500) + + pci:v00001180d00000843sv0000103Csd000003B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V3242AU) + + pci:v00001180d00000843sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V6133CL) + + pci:v00001180d00000843sv00001183sd00000843* +- ID_MODEL_FROM_DATABASE=Alienware Aurora m9700 ++ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Alienware Aurora m9700) + + pci:v00001180d00000852* + ID_MODEL_FROM_DATABASE=xD-Picture Card Controller + + pci:v00001180d00000852sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Aspire 5920G) + + pci:v00001180d00000852sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Inspiron 1420) + + pci:v00001180d00000852sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V3242AU) + + pci:v00001180d00000852sv0000103Csd000030B7* +- ID_MODEL_FROM_DATABASE=Presario V6133CL ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V6133CL) + + pci:v00001180d00000852sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv6700) + + pci:v00001180d00000852sv0000103Csd000030CF* +- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv9668eg Laptop) + + pci:v00001180d00000852sv00001043sd00001967* +- ID_MODEL_FROM_DATABASE=V6800V ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (V6800V) + + pci:v00001180d00000852sv00001180sd00000852* +- ID_MODEL_FROM_DATABASE=Pavilion 2410us ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion 2410us) + + pci:v00001180d00000852sv00001324sd000010CF* +- ID_MODEL_FROM_DATABASE=P7120 ++ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (P7120) + + pci:v00001180d0000E230* + ID_MODEL_FROM_DATABASE=R5U2xx (R5U230 / R5U231 / R5U241) [Memory Stick Host Controller] +@@ -34206,19 +34206,19 @@ pci:v00001180d0000E476* + ID_MODEL_FROM_DATABASE=CardBus bridge + + pci:v00001180d0000E476sv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6410) + + pci:v00001180d0000E476sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6510) + + pci:v00001180d0000E822* + ID_MODEL_FROM_DATABASE=MMC/SD Host Controller + + pci:v00001180d0000E822sv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6410) + + pci:v00001180d0000E822sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6510) + + pci:v00001180d0000E823* + ID_MODEL_FROM_DATABASE=PCIe SDXC/MMC Host Controller +@@ -34227,10 +34227,10 @@ pci:v00001180d0000E832* + ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller + + pci:v00001180d0000E832sv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6410) + + pci:v00001180d0000E832sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6510) + + pci:v00001180d0000E852* + ID_MODEL_FROM_DATABASE=PCIe xD-Picture Card Controller +@@ -34254,10 +34254,10 @@ pci:v00001186d00001002* + ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet + + pci:v00001186d00001002sv00001186sd00001002* +- ID_MODEL_FROM_DATABASE=DFE-550TX/FX ++ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-550TX/FX) + + pci:v00001186d00001002sv00001186sd00001012* +- ID_MODEL_FROM_DATABASE=DFE-580TX ++ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-580TX) + + pci:v00001186d00001025* + ID_MODEL_FROM_DATABASE=AirPlus Xtreme G DWL-G650 Adapter +@@ -34272,13 +34272,13 @@ pci:v00001186d00001300* + ID_MODEL_FROM_DATABASE=RTL8139 Ethernet + + pci:v00001186d00001300sv00001186sd00001300* +- ID_MODEL_FROM_DATABASE=DFE-538TX 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-538TX 10/100 Ethernet Adapter) + + pci:v00001186d00001300sv00001186sd00001301* +- ID_MODEL_FROM_DATABASE=DFE-530TX+ 10/100 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-530TX+ 10/100 Ethernet Adapter) + + pci:v00001186d00001300sv00001186sd00001303* +- ID_MODEL_FROM_DATABASE=DFE-528TX 10/100 Fast Ethernet PCI Adapter ++ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-528TX 10/100 Fast Ethernet PCI Adapter) + + pci:v00001186d00001340* + ID_MODEL_FROM_DATABASE=DFE-690TXD CardBus PC Card +@@ -34296,10 +34296,10 @@ pci:v00001186d00003300* + ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] + + pci:v00001186d00003300sv00001186sd00003300* +- ID_MODEL_FROM_DATABASE=DWL-610 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-610 Wireless Cardbus Adapter) + + pci:v00001186d00003300sv00001186sd00003301* +- ID_MODEL_FROM_DATABASE=DWL-510 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-510 Wireless PCI Adapter) + + pci:v00001186d00003A10* + ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter(rev.B) +@@ -34317,7 +34317,7 @@ pci:v00001186d00004300* + ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter + + pci:v00001186d00004300sv00001186sd00004B10* +- ID_MODEL_FROM_DATABASE=DGE-560T PCI Express (x1) Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter (DGE-560T PCI Express (x1) Gigabit Ethernet Adapter) + + pci:v00001186d00004302* + ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter (rev.C1) [Realtek RTL8169] +@@ -34338,7 +34338,7 @@ pci:v00001186d00004C00* + ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter + + pci:v00001186d00004C00sv00001186sd00004C00* +- ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (DGE-530T Gigabit Ethernet Adapter) + + pci:v00001186d00008400* + ID_MODEL_FROM_DATABASE=D-Link DWL-650+ CardBus PC Card +@@ -34620,7 +34620,7 @@ pci:v000011ABd00001FA6* + ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter + + pci:v000011ABd00001FA6sv00001186sd00003B08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1) ++ ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1)) + + pci:v000011ABd00001FA7* + ID_MODEL_FROM_DATABASE=88W8310 and 88W8000G [Libertas] 802.11g client chipset +@@ -34629,13 +34629,13 @@ pci:v000011ABd00001FAA* + ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless + + pci:v000011ABd00001FAAsv00001385sd00004E00* +- ID_MODEL_FROM_DATABASE=WG511v2 54 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG511v2 54 Mbps Wireless PC Card) + + pci:v000011ABd00001FAAsv00001385sd00006B00* +- ID_MODEL_FROM_DATABASE=WG311v3 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG311v3 802.11g Wireless PCI Adapter) + + pci:v000011ABd00001FAAsv00001737sd00000040* +- ID_MODEL_FROM_DATABASE=WPC54G v5 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WPC54G v5 802.11g Wireless-G Notebook Adapter) + + pci:v000011ABd00002211* + ID_MODEL_FROM_DATABASE=88SB2211 PCI Express to PCI Bridge +@@ -34647,19 +34647,19 @@ pci:v000011ABd00002A02* + ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless + + pci:v000011ABd00002A02sv000007D1sd00003B02* +- ID_MODEL_FROM_DATABASE=DIR-615 rev. A1 Mini PCI Wireless Module ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (DIR-615 rev. A1 Mini PCI Wireless Module) + + pci:v000011ABd00002A02sv00001385sd00007C00* +- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless PC Card) + + pci:v000011ABd00002A02sv00001385sd00007C01* +- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter) + + pci:v000011ABd00002A02sv00001385sd00007E00* +- ID_MODEL_FROM_DATABASE=WN311T RangeMax Next 300 Mbps Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN311T RangeMax Next 300 Mbps Wireless PCI Adapter) + + pci:v000011ABd00002A02sv00001799sd0000801B* +- ID_MODEL_FROM_DATABASE=F5D8011 v2 802.11n N1 Wireless Notebook Card ++ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (F5D8011 v2 802.11n N1 Wireless Notebook Card) + + pci:v000011ABd00002A08* + ID_MODEL_FROM_DATABASE=88W8362e [TopDog] 802.11a/b/g/n Wireless +@@ -34701,58 +34701,58 @@ pci:v000011ABd00004320* + ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller + + pci:v000011ABd00004320sv00001019sd00000F38* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) + + pci:v000011ABd00004320sv00001019sd00008001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) + + pci:v000011ABd00004320sv00001043sd0000173C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004320sv00001043sd0000811A* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004320sv0000105Bsd00000C19* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Foxconn) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Foxconn)) + + pci:v000011ABd00004320sv000010B8sd0000B452* +- ID_MODEL_FROM_DATABASE=EZ Card 1000 (SMC9452TXV.2) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (EZ Card 1000 (SMC9452TXV.2)) + + pci:v000011ABd00004320sv000011ABsd00000121* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8001) + + pci:v000011ABd00004320sv000011ABsd00000321* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8003) + + pci:v000011ABd00004320sv000011ABsd00001021* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8010 ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8010) + + pci:v000011ABd00004320sv000011ABsd00004320* +- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus)) + + pci:v000011ABd00004320sv000011ABsd00005021* +- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit)) + + pci:v000011ABd00004320sv000011ABsd00009521* +- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit)) + + pci:v000011ABd00004320sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte)) + + pci:v000011ABd00004320sv0000147Bsd00001406* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Abit) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Abit)) + + pci:v000011ABd00004320sv000015D4sd00000047* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Iwill) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Iwill)) + + pci:v000011ABd00004320sv00001695sd00009025* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Epox) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Epox)) + + pci:v000011ABd00004320sv000017F2sd00001C03* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Albatron) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Albatron)) + + pci:v000011ABd00004320sv0000270Fsd00002803* +- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Chaintech) ++ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Chaintech)) + + pci:v000011ABd00004340* + ID_MODEL_FROM_DATABASE=88E8021 PCI-X IPMI Gigabit Ethernet Controller +@@ -34779,115 +34779,115 @@ pci:v000011ABd00004347* + ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller + + pci:v000011ABd00004347sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 PrAMC Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller (Telum ASLP10 PrAMC Gigabit Ethernet) + + pci:v000011ABd00004350* + ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004350sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (Toshiba) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (Toshiba)) + + pci:v000011ABd00004350sv000011ABsd00003521* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8035 ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell RDK-8035) + + pci:v000011ABd00004350sv00001854sd0000000D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000000E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000000F* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000011* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000012* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000016* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000017* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000018* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000019* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000001C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd0000001E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004350sv00001854sd00000020* +- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351* + ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004351sv0000107Bsd00004009* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Wistron) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Wistron)) + + pci:v000011ABd00004351sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Panasonic) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Panasonic)) + + pci:v000011ABd00004351sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Toshiba) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Toshiba)) + + pci:v000011ABd00004351sv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Compal) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Compal)) + + pci:v000011ABd00004351sv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Inventec) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Inventec)) + + pci:v000011ABd00004351sv000011ABsd00003621* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8036 ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell RDK-8036) + + pci:v000011ABd00004351sv000013D1sd0000AC12* +- ID_MODEL_FROM_DATABASE=Abocom EFE3K - 10/100 Ethernet Expresscard ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Abocom EFE3K - 10/100 Ethernet Expresscard) + + pci:v000011ABd00004351sv0000161Fsd0000203D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Arima) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Arima)) + + pci:v000011ABd00004351sv00001854sd0000000D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000000E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000000F* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000011* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000012* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000016* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000017* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000018* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000019* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000001C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd0000001E* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004351sv00001854sd00000020* +- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) + + pci:v000011ABd00004352* + ID_MODEL_FROM_DATABASE=88E8038 PCI-E Fast Ethernet Controller +@@ -34896,19 +34896,19 @@ pci:v000011ABd00004353* + ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004353sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller (VAIO VGN-NR120E) + + pci:v000011ABd00004354* + ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller + + pci:v000011ABd00004354sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) + + pci:v000011ABd00004355* + ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller + + pci:v000011ABd00004355sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller (Satellite P305D-S8995E) + + pci:v000011ABd00004356* + ID_MODEL_FROM_DATABASE=88EC033 PCI-E Fast Ethernet Controller +@@ -34923,163 +34923,163 @@ pci:v000011ABd00004360* + ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller + + pci:v000011ABd00004360sv00001043sd00008134* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004360sv0000107Bsd00004009* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Wistron) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Wistron)) + + pci:v000011ABd00004360sv000011ABsd00005221* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8052 ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell RDK-8052) + + pci:v000011ABd00004360sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte)) + + pci:v000011ABd00004360sv00001462sd0000052C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (MSI) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (MSI)) + + pci:v000011ABd00004360sv00001849sd00008052* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (ASRock) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (ASRock)) + + pci:v000011ABd00004360sv0000A0A0sd00000509* +- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Aopen) ++ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Aopen)) + + pci:v000011ABd00004361* + ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller + + pci:v000011ABd00004361sv0000107Bsd00003015* +- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Gateway) ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Gateway)) + + pci:v000011ABd00004361sv000011ABsd00005021* +- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) + + pci:v000011ABd00004361sv00008086sd00003063* +- ID_MODEL_FROM_DATABASE=D925XCVLK mainboard ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (D925XCVLK mainboard) + + pci:v000011ABd00004361sv00008086sd00003439* +- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) ++ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) + + pci:v000011ABd00004362* + ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller + + pci:v000011ABd00004362sv0000103Csd00002A0D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Asus) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Asus)) + + pci:v000011ABd00004362sv00001043sd00008142* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus)) + + pci:v000011ABd00004362sv0000109Fsd00003197* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Trigem) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Trigem)) + + pci:v000011ABd00004362sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Panasonic) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Panasonic)) + + pci:v000011ABd00004362sv000010FDsd0000A430* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (SOYO) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (SOYO)) + + pci:v000011ABd00004362sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Toshiba) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Toshiba)) + + pci:v000011ABd00004362sv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) + + pci:v000011ABd00004362sv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Inventec) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Inventec)) + + pci:v000011ABd00004362sv000011ABsd00005321* +- ID_MODEL_FROM_DATABASE=Marvell RDK-8053 ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell RDK-8053) + + pci:v000011ABd00004362sv00001297sd0000C240* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C241* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C242* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C243* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv00001297sd0000C244* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) + + pci:v000011ABd00004362sv000013D1sd0000AC11* +- ID_MODEL_FROM_DATABASE=EGE5K - Giga Ethernet Expresscard ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (EGE5K - Giga Ethernet Expresscard) + + pci:v000011ABd00004362sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte)) + + pci:v000011ABd00004362sv00001462sd0000058C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (MSI) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (MSI)) + + pci:v000011ABd00004362sv000014C0sd00000012* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) + + pci:v000011ABd00004362sv00001558sd000004A0* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Clevo) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Clevo)) + + pci:v000011ABd00004362sv000015BDsd00001003* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (DFI) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (DFI)) + + pci:v000011ABd00004362sv0000161Fsd0000203C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) + + pci:v000011ABd00004362sv0000161Fsd0000203D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) + + pci:v000011ABd00004362sv00001695sd00009029* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Epox) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Epox)) + + pci:v000011ABd00004362sv000017F2sd00002C08* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Albatron) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Albatron)) + + pci:v000011ABd00004362sv000017FFsd00000585* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Quanta) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Quanta)) + + pci:v000011ABd00004362sv00001849sd00008053* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (ASRock) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (ASRock)) + + pci:v000011ABd00004362sv00001854sd0000000B* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000000C* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000010* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000013* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000014* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000015* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001A* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001B* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001D* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd0000001F* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000021* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv00001854sd00000022* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) + + pci:v000011ABd00004362sv0000270Fsd00002801* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Chaintech) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Chaintech)) + + pci:v000011ABd00004362sv0000A0A0sd00000506* +- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Aopen) ++ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Aopen)) + + pci:v000011ABd00004363* + ID_MODEL_FROM_DATABASE=88E8055 PCI-E Gigabit Ethernet Controller +@@ -35088,10 +35088,10 @@ pci:v000011ABd00004364* + ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller + + pci:v000011ABd00004364sv00001043sd000081F8* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (Motherboard) + + pci:v000011ABd00004364sv000011BAsd000000BA* +- ID_MODEL_FROM_DATABASE=8056 Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (8056 Gigabit Ethernet Controller) + + pci:v000011ABd00004365* + ID_MODEL_FROM_DATABASE=88E8070 based Ethernet Controller +@@ -35112,7 +35112,7 @@ pci:v000011ABd0000436A* + ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller + + pci:v000011ABd0000436Asv000011ABsd000000BA* +- ID_MODEL_FROM_DATABASE=Imac 8,1 Wired Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller (Imac 8,1 Wired Ethernet Adapter) + + pci:v000011ABd0000436B* + ID_MODEL_FROM_DATABASE=88E8071 PCI-E Gigabit Ethernet Controller +@@ -35178,7 +35178,7 @@ pci:v000011ABd00006101* + ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface + + pci:v000011ABd00006101sv00001043sd000082E0* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface (P5K PRO Motherboard) + + pci:v000011ABd00006111* + ID_MODEL_FROM_DATABASE=88SE6111 1-port PATA133(IDE) and 1-port SATA II Controllers +@@ -35217,7 +35217,7 @@ pci:v000011ABd00006480* + ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller + + pci:v000011ABd00006480sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K CompactPCI single board computer ++ ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller (C2K CompactPCI single board computer) + + pci:v000011ABd00006485* + ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller, Revision B +@@ -35226,7 +35226,7 @@ pci:v000011ABd00007042* + ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II + + pci:v000011ABd00007042sv000016B8sd0000434B* +- ID_MODEL_FROM_DATABASE=Tempo SATA E4P ++ ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II (Tempo SATA E4P) + + pci:v000011ABd00007810* + ID_MODEL_FROM_DATABASE=MV78100 [Discovery Innovation] ARM SoC +@@ -35259,19 +35259,19 @@ pci:v000011ADd00000002sv000011ADsd0000FFFF* + ID_MODEL_FROM_DATABASE=LNE100TX + + pci:v000011ADd00000002sv00001385sd0000F004* +- ID_MODEL_FROM_DATABASE=FA310TX ++ ID_MODEL_FROM_DATABASE=LNE100TX (FA310TX) + + pci:v000011ADd00000002sv00002646sd0000F002* +- ID_MODEL_FROM_DATABASE=KNE110TX EtheRx Fast Ethernet ++ ID_MODEL_FROM_DATABASE=LNE100TX (KNE110TX EtheRx Fast Ethernet) + + pci:v000011ADd0000C115* + ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] + + pci:v000011ADd0000C115sv000011ADsd0000C001* +- ID_MODEL_FROM_DATABASE=LNE100TX [ver 2.0] ++ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (LNE100TX [ver 2.0]) + + pci:v000011ADd0000C115sv00002646sd0000000B* +- ID_MODEL_FROM_DATABASE=KNE111TX ++ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (KNE111TX) + + pci:v000011AE* + ID_VENDOR_FROM_DATABASE=Aztech System Ltd +@@ -35355,28 +35355,28 @@ pci:v000011BDd00000040* + ID_MODEL_FROM_DATABASE=Royal TS Function 1 + + pci:v000011BDd00000040sv000011BDsd00000044* +- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 1 ++ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV 2000i Dual DVB-T Pro PCI Tuner 1) + + pci:v000011BDd00000040sv000011BDsd00000045* +- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 1 ++ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV Dual Sat Pro PCI 4000i Tuner 1) + + pci:v000011BDd00000041* + ID_MODEL_FROM_DATABASE=RoyalTS Function 2 + + pci:v000011BDd00000041sv000011BDsd00000044* +- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 2 ++ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV 2000i Dual DVB-T Pro PCI Tuner 2) + + pci:v000011BDd00000041sv000011BDsd00000045* +- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 2 ++ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV Dual Sat Pro PCI 4000i Tuner 2) + + pci:v000011BDd00000042* + ID_MODEL_FROM_DATABASE=Royal TS Function 3 + + pci:v000011BDd00000042sv000011BDsd00000044* +- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Common ++ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV 2000i Dual DVB-T Pro PCI Common) + + pci:v000011BDd00000042sv000011BDsd00000045* +- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Common ++ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV Dual Sat Pro PCI 4000i Common) + + pci:v000011BDd00000051* + ID_MODEL_FROM_DATABASE=PCTV HD 800i +@@ -35400,154 +35400,154 @@ pci:v000011C1d00000440* + ID_MODEL_FROM_DATABASE=56k WinModem + + pci:v000011C1d00000440sv00001033sd00008015* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv00001033sd00008047* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv00001033sd0000804F* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000010CFsd0000102C* +- ID_MODEL_FROM_DATABASE=LB LT Modem V.90 56k ++ ID_MODEL_FROM_DATABASE=56k WinModem (LB LT Modem V.90 56k) + + pci:v000011C1d00000440sv000010CFsd0000104A* +- ID_MODEL_FROM_DATABASE=BIBLO LT Modem 56k ++ ID_MODEL_FROM_DATABASE=56k WinModem (BIBLO LT Modem 56k) + + pci:v000011C1d00000440sv000010CFsd0000105F* +- ID_MODEL_FROM_DATABASE=LB2 LT Modem V.90 56k ++ ID_MODEL_FROM_DATABASE=56k WinModem (LB2 LT Modem V.90 56k) + + pci:v000011C1d00000440sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Internal V.90 Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) + + pci:v000011C1d00000440sv000011C1sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv0000122Dsd00004101* +- ID_MODEL_FROM_DATABASE=MDP7800-U Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) + + pci:v000011C1d00000440sv0000122Dsd00004102* +- ID_MODEL_FROM_DATABASE=MDP7800SP-U Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800SP-U Modem) + + pci:v000011C1d00000440sv000013E0sd00000040* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd00000441* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd00000450* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd0000F100* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv000013E0sd0000F101* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000440sv0000144Dsd00002101* +- ID_MODEL_FROM_DATABASE=LT56PV Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PV Modem) + + pci:v000011C1d00000440sv0000149Fsd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000441* + ID_MODEL_FROM_DATABASE=56k WinModem + + pci:v000011C1d00000441sv00001033sd0000804D* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv00001033sd00008065* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv00001092sd00000440* +- ID_MODEL_FROM_DATABASE=Supra 56i ++ ID_MODEL_FROM_DATABASE=56k WinModem (Supra 56i) + + pci:v000011C1d00000441sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Internal V.90 Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) + + pci:v000011C1d00000441sv000011C1sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000011C1sd00000441* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv0000122Dsd00004100* +- ID_MODEL_FROM_DATABASE=MDP7800-U Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) + + pci:v000011C1d00000441sv000013E0sd00000040* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000100* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000410* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000420* +- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem ++ ID_MODEL_FROM_DATABASE=56k WinModem (TelePath Internet 56k WinModem) + + pci:v000011C1d00000441sv000013E0sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd00000443* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv000013E0sd0000F102* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv00001416sd00009804* +- ID_MODEL_FROM_DATABASE=CommWave 56k Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (CommWave 56k Modem) + + pci:v000011C1d00000441sv0000141Dsd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000441sv0000144Fsd00000441* +- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) + + pci:v000011C1d00000441sv0000144Fsd00000449* +- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) + + pci:v000011C1d00000441sv0000144Fsd0000110D* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) + + pci:v000011C1d00000441sv00001468sd00000441* +- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DF Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Presario 56k V.90 DF Modem) + + pci:v000011C1d00000441sv00001668sd00000440* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) + + pci:v000011C1d00000442* + ID_MODEL_FROM_DATABASE=56k WinModem + + pci:v000011C1d00000442sv000011C1sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000011C1sd00000442* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000013E0sd00000412* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000013E0sd00000442* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv000013FCsd00002471* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv0000144Dsd00002104* +- ID_MODEL_FROM_DATABASE=LT56PT Modem ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PT Modem) + + pci:v000011C1d00000442sv0000144Fsd00001104* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv0000149Fsd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000442sv00001668sd00000440* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d00000443* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35559,10 +35559,10 @@ pci:v000011C1d00000445* + ID_MODEL_FROM_DATABASE=LT WinModem + + pci:v000011C1d00000445sv00008086sd00002203* +- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card) ++ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card)) + + pci:v000011C1d00000445sv00008086sd00002204* +- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI on Armada E500 ++ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI on Armada E500) + + pci:v000011C1d00000446* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35574,64 +35574,64 @@ pci:v000011C1d00000448* + ID_MODEL_FROM_DATABASE=WinModem 56k + + pci:v000011C1d00000448sv00001014sd00000131* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=WinModem 56k (Lucent Win Modem) + + pci:v000011C1d00000448sv00001033sd00008066* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000448sv000013E0sd00000030* +- ID_MODEL_FROM_DATABASE=56k Voice Modem ++ ID_MODEL_FROM_DATABASE=WinModem 56k (56k Voice Modem) + + pci:v000011C1d00000448sv000013E0sd00000040* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd ++ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) + + pci:v000011C1d00000448sv00001668sd00002400* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k (MiniPCI Ethernet+Modem) ++ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k (MiniPCI Ethernet+Modem)) + + pci:v000011C1d00000449* + ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k + + pci:v000011C1d00000449sv00000E11sd0000B14D* +- ID_MODEL_FROM_DATABASE=56k V.90 Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (56k V.90 Modem) + + pci:v000011C1d00000449sv00001014sd0000018C* +- ID_MODEL_FROM_DATABASE=ThinkPad 600X ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (ThinkPad 600X) + + pci:v000011C1d00000449sv000013E0sd00000020* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (LT WinModem 56k Data+Fax) + + pci:v000011C1d00000449sv000013E0sd00000041* +- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (TelePath Internet 56k WinModem) + + pci:v000011C1d00000449sv00001436sd00000440* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) + + pci:v000011C1d00000449sv0000144Fsd00000449* +- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DFi Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent 56k V.90 DFi Modem) + + pci:v000011C1d00000449sv00001468sd00000410* +- ID_MODEL_FROM_DATABASE=IBM ThinkPad T23 ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (IBM ThinkPad T23) + + pci:v000011C1d00000449sv00001468sd00000440* +- ID_MODEL_FROM_DATABASE=Lucent Win Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) + + pci:v000011C1d00000449sv00001468sd00000449* +- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DFi Modem ++ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Presario 56k V.90 DFi Modem) + + pci:v000011C1d0000044A* + ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) + + pci:v000011C1d0000044Asv000010CFsd00001072* +- ID_MODEL_FROM_DATABASE=LB Global LT Modem ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LB Global LT Modem) + + pci:v000011C1d0000044Asv000013E0sd00000012* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d0000044Asv000013E0sd00000042* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d0000044Asv0000144Fsd00001005* +- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd ++ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) + + pci:v000011C1d0000044B* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35652,13 +35652,13 @@ pci:v000011C1d00000450* + ID_MODEL_FROM_DATABASE=LT WinModem + + pci:v000011C1d00000450sv00001033sd000080A8* +- ID_MODEL_FROM_DATABASE=Versa Note Vxi ++ ID_MODEL_FROM_DATABASE=LT WinModem (Versa Note Vxi) + + pci:v000011C1d00000450sv0000144Fsd00004005* +- ID_MODEL_FROM_DATABASE=Magnia SG20 ++ ID_MODEL_FROM_DATABASE=LT WinModem (Magnia SG20) + + pci:v000011C1d00000450sv00001468sd00000450* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=LT WinModem (Evo N600c) + + pci:v000011C1d00000451* + ID_MODEL_FROM_DATABASE=LT WinModem +@@ -35733,22 +35733,22 @@ pci:v000011C1d00005811* + ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller + + pci:v000011C1d00005811sv0000103Csd00002A34* +- ID_MODEL_FROM_DATABASE=Pavilion a1677c ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion a1677c) + + pci:v000011C1d00005811sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Asus IPIBL-LB Motherboard) + + pci:v000011C1d00005811sv0000103Csd00002A9E* +- ID_MODEL_FROM_DATABASE=Pavilion p6310f ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion p6310f) + + pci:v000011C1d00005811sv00001043sd00008294* +- ID_MODEL_FROM_DATABASE=LSI FW322/323 IEEE 1394a FireWire Controller ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (LSI FW322/323 IEEE 1394a FireWire Controller) + + pci:v000011C1d00005811sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (D865PERL mainboard) + + pci:v000011C1d00005811sv0000DEADsd00000800* +- ID_MODEL_FROM_DATABASE=FireWire Host Bus Adapter ++ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (FireWire Host Bus Adapter) + + pci:v000011C1d00005901* + ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller +@@ -35757,10 +35757,10 @@ pci:v000011C1d00005901sv000011C1sd00005900* + ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller + + pci:v000011C1d00005901sv00001443sd00000643* +- ID_MODEL_FROM_DATABASE=FireBoard800-e V.2 ++ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FireBoard800-e V.2) + + pci:v000011C1d00005901sv00001546sd00000643* +- ID_MODEL_FROM_DATABASE=FWB-PCIE1X2x ++ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FWB-PCIE1X2x) + + pci:v000011C1d00005903* + ID_MODEL_FROM_DATABASE=FW533 [TrueFire] PCIe 1394a Controller +@@ -35769,7 +35769,7 @@ pci:v000011C1d00008110* + ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch + + pci:v000011C1d00008110sv000012D9sd0000000C* +- ID_MODEL_FROM_DATABASE=E1/T1 PMXc cPCI carrier card ++ ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch (E1/T1 PMXc cPCI carrier card) + + pci:v000011C1d0000AB10* + ID_MODEL_FROM_DATABASE=WL60010 Wireless LAN MAC +@@ -35778,16 +35778,16 @@ pci:v000011C1d0000AB11* + ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC + + pci:v000011C1d0000AB11sv000011C1sd0000AB12* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1102) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1102)) + + pci:v000011C1d0000AB11sv000011C1sd0000AB13* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0512) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0512)) + + pci:v000011C1d0000AB11sv000011C1sd0000AB15* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1106) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1106)) + + pci:v000011C1d0000AB11sv000011C1sd0000AB16* +- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0516) ++ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0516)) + + pci:v000011C1d0000AB20* + ID_MODEL_FROM_DATABASE=ORiNOCO PCI Adapter +@@ -35856,10 +35856,10 @@ pci:v000011CBd00002000* + ID_MODEL_FROM_DATABASE=PCI_9050 + + pci:v000011CBd00002000sv000011CBsd00000200* +- ID_MODEL_FROM_DATABASE=SX ++ ID_MODEL_FROM_DATABASE=PCI_9050 (SX) + + pci:v000011CBd00002000sv000011CBsd0000B008* +- ID_MODEL_FROM_DATABASE=I/O8+ ++ ID_MODEL_FROM_DATABASE=PCI_9050 (I/O8+) + + pci:v000011CBd00004000* + ID_MODEL_FROM_DATABASE=SUPI_1 +@@ -35949,28 +35949,28 @@ pci:v000011DEd00006057* + ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset + + pci:v000011DEd00006057sv00001031sd00007EFE* +- ID_MODEL_FROM_DATABASE=DC10 Plus ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (DC10 Plus) + + pci:v000011DEd00006057sv00001031sd0000FC00* +- ID_MODEL_FROM_DATABASE=MiroVIDEO DC50, Motion JPEG Capture/CODEC Board ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (MiroVIDEO DC50, Motion JPEG Capture/CODEC Board) + + pci:v000011DEd00006057sv000012F8sd00008A02* +- ID_MODEL_FROM_DATABASE=Tekram Video Kit ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (Tekram Video Kit) + + pci:v000011DEd00006057sv000013CAsd00004231* +- ID_MODEL_FROM_DATABASE=JPEG/TV Card ++ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (JPEG/TV Card) + + pci:v000011DEd00006120* + ID_MODEL_FROM_DATABASE=ZR36120 + + pci:v000011DEd00006120sv00001328sd0000F001* +- ID_MODEL_FROM_DATABASE=Cinemaster C DVD Decoder ++ ID_MODEL_FROM_DATABASE=ZR36120 (Cinemaster C DVD Decoder) + + pci:v000011DEd00006120sv000013C2sd00000000* +- ID_MODEL_FROM_DATABASE=MediaFocus Satellite TV Card ++ ID_MODEL_FROM_DATABASE=ZR36120 (MediaFocus Satellite TV Card) + + pci:v000011DEd00006120sv00001DE1sd00009FFF* +- ID_MODEL_FROM_DATABASE=Video Kit C210 ++ ID_MODEL_FROM_DATABASE=ZR36120 (Video Kit C210) + + pci:v000011DF* + ID_VENDOR_FROM_DATABASE=New Wave PDG +@@ -36102,13 +36102,13 @@ pci:v000011F6d00002011* + ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 + + pci:v000011F6d00002011sv000011F6sd00002011* +- ID_MODEL_FROM_DATABASE=RL100-ATX ++ ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 (RL100-ATX) + + pci:v000011F6d00002201* + ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) + + pci:v000011F6d00002201sv000011F6sd00002011* +- ID_MODEL_FROM_DATABASE=ReadyLink 100TX ++ ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) (ReadyLink 100TX) + + pci:v000011F6d00009881* + ID_MODEL_FROM_DATABASE=RL100TX Fast Ethernet +@@ -36138,10 +36138,10 @@ pci:v000011F8d00008032* + ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN + + pci:v000011F8d00008032sv0000117Csd0000003B* +- ID_MODEL_FROM_DATABASE=Celerity FC-82EN Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-82EN Fibre Channel Adapter) + + pci:v000011F8d00008032sv0000117Csd0000003C* +- ID_MODEL_FROM_DATABASE=Celerity FC-84EN Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-84EN Fibre Channel Adapter) + + pci:v000011F9* + ID_VENDOR_FROM_DATABASE=I-Cube Inc +@@ -36285,16 +36285,16 @@ pci:v00001202d00004300* + ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter + + pci:v00001202d00004300sv00001202sd00009841* +- ID_MODEL_FROM_DATABASE=SK-9841 LX ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX) + + pci:v00001202d00004300sv00001202sd00009842* +- ID_MODEL_FROM_DATABASE=SK-9841 LX dual link ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX dual link) + + pci:v00001202d00004300sv00001202sd00009843* +- ID_MODEL_FROM_DATABASE=SK-9843 SX ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX) + + pci:v00001202d00004300sv00001202sd00009844* +- ID_MODEL_FROM_DATABASE=SK-9843 SX dual link ++ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX dual link) + + pci:v00001203* + ID_VENDOR_FROM_DATABASE=Bayer Corporation, Agfa Division +@@ -36411,7 +36411,7 @@ pci:v00001217d000000F7* + ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) + + pci:v00001217d000000F7sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) + + pci:v00001217d000010F7* + ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller +@@ -36420,7 +36420,7 @@ pci:v00001217d000011F7* + ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller + + pci:v00001217d000011F7sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller (Precision M4600) + + pci:v00001217d000013F7* + ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller +@@ -36447,31 +36447,31 @@ pci:v00001217d00006933* + ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller + + pci:v00001217d00006933sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller (Travelmate 612 TX) + + pci:v00001217d00006972* + ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller + + pci:v00001217d00006972sv00001014sd0000020C* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (ThinkPad R30) + + pci:v00001217d00006972sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Latitude D500) + + pci:v00001217d00006972sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Magnia Z310) + + pci:v00001217d00007110* + ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator + + pci:v00001217d00007110sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC8000 laptop) + + pci:v00001217d00007110sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC6000 laptop) + + pci:v00001217d00007110sv00001734sd0000106C* +- ID_MODEL_FROM_DATABASE=Amilo A1645 ++ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (Amilo A1645) + + pci:v00001217d00007112* + ID_MODEL_FROM_DATABASE=OZ711EC1/M1 SmartCardBus/MemoryCardBus Controller +@@ -36480,7 +36480,7 @@ pci:v00001217d00007113* + ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller + + pci:v00001217d00007113sv00001025sd00000035* +- ID_MODEL_FROM_DATABASE=TravelMate 660 ++ ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller (TravelMate 660) + + pci:v00001217d00007114* + ID_MODEL_FROM_DATABASE=OZ711M1/MC1 4-in-1 MemoryCardBus Controller +@@ -36489,13 +36489,13 @@ pci:v00001217d00007120* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller + + pci:v00001217d00007120sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) + + pci:v00001217d00007130* + ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller + + pci:v00001217d00007130sv00001179sd0000FF50* +- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E ++ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) + + pci:v00001217d00007134* + ID_MODEL_FROM_DATABASE=OZ711MP1/MS1 MemoryCardBus Controller +@@ -36519,13 +36519,13 @@ pci:v00001217d00007223* + ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller + + pci:v00001217d00007223sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC8000 laptop) + + pci:v00001217d00007223sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC6000 laptop) + + pci:v00001217d00007223sv000010CFsd000011C4* +- ID_MODEL_FROM_DATABASE=Lifebook P5020D Laptop ++ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (Lifebook P5020D Laptop) + + pci:v00001217d00007233* + ID_MODEL_FROM_DATABASE=OZ711MP3/MS3 4-in-1 MemoryCardBus Controller +@@ -36540,7 +36540,7 @@ pci:v00001217d00008320* + ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller + + pci:v00001217d00008320sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) + + pci:v00001217d00008321* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller +@@ -36549,7 +36549,7 @@ pci:v00001217d00008330* + ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller + + pci:v00001217d00008330sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller (Precision M4600) + + pci:v00001217d00008331* + ID_MODEL_FROM_DATABASE=O2 Flash Memory Card +@@ -36576,52 +36576,52 @@ pci:v0000121Ad00000003* + ID_MODEL_FROM_DATABASE=Voodoo Banshee + + pci:v0000121Ad00000003sv00001092sd00000003* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00004000* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00004002* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00004801* +- ID_MODEL_FROM_DATABASE=Monster Fusion AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) + + pci:v0000121Ad00000003sv00001092sd00004803* +- ID_MODEL_FROM_DATABASE=Monster Fusion AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) + + pci:v0000121Ad00000003sv00001092sd00008030* +- ID_MODEL_FROM_DATABASE=Monster Fusion ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) + + pci:v0000121Ad00000003sv00001092sd00008035* +- ID_MODEL_FROM_DATABASE=Monster Fusion AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) + + pci:v0000121Ad00000003sv000010B0sd00000001* +- ID_MODEL_FROM_DATABASE=Dragon 4000 ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Dragon 4000) + + pci:v0000121Ad00000003sv00001102sd00001017* +- ID_MODEL_FROM_DATABASE=3D Blaster Banshee PCI (CT6760) ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee PCI (CT6760)) + + pci:v0000121Ad00000003sv00001102sd00001018* +- ID_MODEL_FROM_DATABASE=3D Blaster Banshee VE ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee VE) + + pci:v0000121Ad00000003sv0000121Asd00000001* +- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP) + + pci:v0000121Ad00000003sv0000121Asd00000003* +- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP SGRAM ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP SGRAM) + + pci:v0000121Ad00000003sv0000121Asd00000004* + ID_MODEL_FROM_DATABASE=Voodoo Banshee + + pci:v0000121Ad00000003sv0000139Csd00000016* +- ID_MODEL_FROM_DATABASE=Raven ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) + + pci:v0000121Ad00000003sv0000139Csd00000017* +- ID_MODEL_FROM_DATABASE=Raven ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) + + pci:v0000121Ad00000003sv000014AFsd00000002* +- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix ++ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Maxi Gamer Phoenix) + + pci:v0000121Ad00000004* + ID_MODEL_FROM_DATABASE=Voodoo Banshee [Velocity 100] +@@ -36630,70 +36630,70 @@ pci:v0000121Ad00000005* + ID_MODEL_FROM_DATABASE=Voodoo 3 + + pci:v0000121Ad00000005sv0000121Asd00000004* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000030* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000031* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000034* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000036* +- ID_MODEL_FROM_DATABASE=Voodoo3 2000 PCI ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 2000 PCI) + + pci:v0000121Ad00000005sv0000121Asd00000037* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000038* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd0000003A* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000044* +- ID_MODEL_FROM_DATABASE=Voodoo3 ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3) + + pci:v0000121Ad00000005sv0000121Asd0000004B* +- ID_MODEL_FROM_DATABASE=Velocity 100 ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 100) + + pci:v0000121Ad00000005sv0000121Asd0000004C* +- ID_MODEL_FROM_DATABASE=Velocity 200 ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 200) + + pci:v0000121Ad00000005sv0000121Asd0000004D* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd0000004E* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000051* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000052* +- ID_MODEL_FROM_DATABASE=Voodoo3 AGP ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) + + pci:v0000121Ad00000005sv0000121Asd00000057* +- ID_MODEL_FROM_DATABASE=Voodoo3 3000 PCI ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3000 PCI) + + pci:v0000121Ad00000005sv0000121Asd00000060* +- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (NTSC) ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (NTSC)) + + pci:v0000121Ad00000005sv0000121Asd00000061* +- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (PAL) ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (PAL)) + + pci:v0000121Ad00000005sv0000121Asd00000062* +- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (SECAM) ++ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (SECAM)) + + pci:v0000121Ad00000009* + ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 + + pci:v0000121Ad00000009sv0000121Asd00000003* +- ID_MODEL_FROM_DATABASE=Voodoo5 PCI 5500 ++ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 PCI 5500) + + pci:v0000121Ad00000009sv0000121Asd00000009* +- ID_MODEL_FROM_DATABASE=Voodoo5 AGP 5500/6000 ++ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 AGP 5500/6000) + + pci:v0000121Ad00000057* + ID_MODEL_FROM_DATABASE=Voodoo 3/3000 [Avenger] +@@ -36930,31 +36930,31 @@ pci:v0000123Fd00008120* + ID_MODEL_FROM_DATABASE=DVxplore Codec + + pci:v0000123Fd00008120sv000010DEsd000001E1* +- ID_MODEL_FROM_DATABASE=NVTV PAL ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) + + pci:v0000123Fd00008120sv000010DEsd000001E2* +- ID_MODEL_FROM_DATABASE=NVTV NTSC ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) + + pci:v0000123Fd00008120sv000010DEsd000001E3* +- ID_MODEL_FROM_DATABASE=NVTV PAL ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) + + pci:v0000123Fd00008120sv000010DEsd00000248* +- ID_MODEL_FROM_DATABASE=NVTV NTSC ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) + + pci:v0000123Fd00008120sv000010DEsd00000249* +- ID_MODEL_FROM_DATABASE=NVTV PAL ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) + + pci:v0000123Fd00008120sv000011BDsd00000006* +- ID_MODEL_FROM_DATABASE=DV500 E4 ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) + + pci:v0000123Fd00008120sv000011BDsd0000000A* +- ID_MODEL_FROM_DATABASE=DV500 E4 ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) + + pci:v0000123Fd00008120sv000011BDsd0000000F* +- ID_MODEL_FROM_DATABASE=DV500 E4 ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) + + pci:v0000123Fd00008120sv00001809sd00000016* +- ID_MODEL_FROM_DATABASE=Emuzed MAUI-III PCI PVR FM TV ++ ID_MODEL_FROM_DATABASE=DVxplore Codec (Emuzed MAUI-III PCI PVR FM TV) + + pci:v0000123Fd00008888* + ID_MODEL_FROM_DATABASE=Cinemaster C 3.0 DVD Decoder +@@ -36981,10 +36981,10 @@ pci:v00001242d00001560* + ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller + + pci:v00001242d00001560sv00001242sd00006562* +- ID_MODEL_FROM_DATABASE=FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter) + + pci:v00001242d00001560sv00001242sd0000656A* +- ID_MODEL_FROM_DATABASE=FCX-6562 PCI-X Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX-6562 PCI-X Fibre Channel Adapter) + + pci:v00001242d00004643* + ID_MODEL_FROM_DATABASE=FCI-1063 Fibre Channel Adapter +@@ -37011,7 +37011,7 @@ pci:v00001244d00000A00* + ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] + + pci:v00001244d00000A00sv00001244sd00000A00* +- ID_MODEL_FROM_DATABASE=FRITZ!Card ISDN Controller ++ ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] (FRITZ!Card ISDN Controller) + + pci:v00001244d00000E00* + ID_MODEL_FROM_DATABASE=Fritz!PCI v2.0 ISDN +@@ -37053,7 +37053,7 @@ pci:v0000124Bd00000040* + ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier + + pci:v0000124Bd00000040sv0000124Bsd00009080* +- ID_MODEL_FROM_DATABASE=PCI9080 Bridge ++ ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier (PCI9080 Bridge) + + pci:v0000124C* + ID_VENDOR_FROM_DATABASE=Solitron Technologies, Inc. +@@ -37164,7 +37164,7 @@ pci:v0000125Bd00001400* + ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller + + pci:v0000125Bd00001400sv00001186sd00001100* +- ID_MODEL_FROM_DATABASE=AX8814X Based PCI Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller (AX8814X Based PCI Fast Ethernet Adapter) + + pci:v0000125C* + ID_VENDOR_FROM_DATABASE=Aurora Technologies, Inc. +@@ -37188,61 +37188,61 @@ pci:v0000125Dd00001968* + ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 + + pci:v0000125Dd00001968sv00001028sd00000085* +- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 PCI ++ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 PCI) + + pci:v0000125Dd00001968sv00001033sd00008051* +- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 Audiodrive) + + pci:v0000125Dd00001969* + ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive + + pci:v0000125Dd00001969sv00001014sd00000166* +- ID_MODEL_FROM_DATABASE=ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard ++ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard) + + pci:v0000125Dd00001969sv0000125Dsd00008888* +- ID_MODEL_FROM_DATABASE=Solo-1 Audio Adapter ++ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Solo-1 Audio Adapter) + + pci:v0000125Dd00001969sv0000153Bsd0000111B* +- ID_MODEL_FROM_DATABASE=Terratec 128i PCI ++ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Terratec 128i PCI) + + pci:v0000125Dd00001978* + ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E + + pci:v0000125Dd00001978sv00000E11sd0000B112* +- ID_MODEL_FROM_DATABASE=Armada M700/E500 ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Armada M700/E500) + + pci:v0000125Dd00001978sv00001033sd0000803C* +- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) + + pci:v0000125Dd00001978sv00001033sd00008058* +- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) + + pci:v0000125Dd00001978sv00001092sd00004000* +- ID_MODEL_FROM_DATABASE=Monster Sound MX400 ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Monster Sound MX400) + + pci:v0000125Dd00001978sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) + + pci:v0000125Dd00001988* + ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 + + pci:v0000125Dd00001988sv00000E11sd00000098* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Evo N600c) + + pci:v0000125Dd00001988sv00001092sd00004100* +- ID_MODEL_FROM_DATABASE=Sonic Impact S100 ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Sonic Impact S100) + + pci:v0000125Dd00001988sv0000125Dsd00000431* +- ID_MODEL_FROM_DATABASE=Allegro AudioDrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) + + pci:v0000125Dd00001988sv0000125Dsd00001988* +- ID_MODEL_FROM_DATABASE=ESS Allegro-1 Audiodrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (ESS Allegro-1 Audiodrive) + + pci:v0000125Dd00001988sv0000125Dsd00001998* +- ID_MODEL_FROM_DATABASE=Allegro AudioDrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) + + pci:v0000125Dd00001988sv0000125Dsd00001999* +- ID_MODEL_FROM_DATABASE=Allegro-1 AudioDrive ++ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro-1 AudioDrive) + + pci:v0000125Dd00001989* + ID_MODEL_FROM_DATABASE=ESS Modem +@@ -37254,13 +37254,13 @@ pci:v0000125Dd00001998* + ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator + + pci:v0000125Dd00001998sv00001028sd000000B1* +- ID_MODEL_FROM_DATABASE=Latitude C600 ++ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C600) + + pci:v0000125Dd00001998sv00001028sd000000E5* +- ID_MODEL_FROM_DATABASE=Latitude C810 ++ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C810) + + pci:v0000125Dd00001998sv00001028sd000000E6* +- ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i (Dell Inspiron 8100) ++ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (ES1983S Maestro-3i (Dell Inspiron 8100)) + + pci:v0000125Dd00001999* + ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Modem Accelerator +@@ -37281,34 +37281,34 @@ pci:v0000125Dd00002898* + ID_MODEL_FROM_DATABASE=ES2898 Modem + + pci:v0000125Dd00002898sv0000125Dsd00000424* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000425* +- ID_MODEL_FROM_DATABASE=ES56T-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56T-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000426* +- ID_MODEL_FROM_DATABASE=ES56V-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56V-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000427* +- ID_MODEL_FROM_DATABASE=VW-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (VW-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000428* +- ID_MODEL_FROM_DATABASE=ES56ST-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56ST-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000125Dsd00000429* +- ID_MODEL_FROM_DATABASE=ES56SV-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56SV-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000147Asd0000C001* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125Dd00002898sv0000148Dsd00001030* +- ID_MODEL_FROM_DATABASE=HCF WV-PI56 [ESS ES56-PI Data Fax Modem] ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (HCF WV-PI56 [ESS ES56-PI Data Fax Modem]) + + pci:v0000125Dd00002898sv000014FEsd00000428* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125Dd00002898sv000014FEsd00000429* +- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem ++ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) + + pci:v0000125E* + ID_VENDOR_FROM_DATABASE=Specialvideo Engineering SRL +@@ -37323,40 +37323,40 @@ pci:v00001260d00003872* + ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] + + pci:v00001260d00003872sv00001468sd00000202* +- ID_MODEL_FROM_DATABASE=LAN-Express IEEE 802.11b Wireless LAN ++ ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] (LAN-Express IEEE 802.11b Wireless LAN) + + pci:v00001260d00003873* + ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] + + pci:v00001260d00003873sv000010CFsd00001169* +- ID_MODEL_FROM_DATABASE=MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874]) + + pci:v00001260d00003873sv00001186sd00003501* +- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874]) + + pci:v00001260d00003873sv00001186sd00003700* +- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev E1) [ISL3872] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev E1) [ISL3872]) + + pci:v00001260d00003873sv00001385sd00004105* +- ID_MODEL_FROM_DATABASE=MA311 802.11b wireless adapter [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MA311 802.11b wireless adapter [ISL3874]) + + pci:v00001260d00003873sv00001668sd00000414* +- ID_MODEL_FROM_DATABASE=HWP01170-01 802.11b PCI Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (HWP01170-01 802.11b PCI Wireless Adapter) + + pci:v00001260d00003873sv000016A5sd00001601* +- ID_MODEL_FROM_DATABASE=AIR.mate PC-400 PCI Wireless LAN Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (AIR.mate PC-400 PCI Wireless LAN Adapter) + + pci:v00001260d00003873sv00001737sd00003874* +- ID_MODEL_FROM_DATABASE=WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874]) + + pci:v00001260d00003873sv00004033sd00007033* +- ID_MODEL_FROM_DATABASE=PCW200 802.11b Wireless PCI Adapter [ISL3874] ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (PCW200 802.11b Wireless PCI Adapter [ISL3874]) + + pci:v00001260d00003873sv00008086sd00002510* +- ID_MODEL_FROM_DATABASE=M3AWEB Wireless 802.11b MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (M3AWEB Wireless 802.11b MiniPCI Adapter) + + pci:v00001260d00003873sv00008086sd00002513* +- ID_MODEL_FROM_DATABASE=Wireless 802.11b MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (Wireless 802.11b MiniPCI Adapter) + + pci:v00001260d00003877* + ID_MODEL_FROM_DATABASE=ISL3877 [Prism Indigo] +@@ -37365,58 +37365,58 @@ pci:v00001260d00003886* + ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] + + pci:v00001260d00003886sv000017CFsd00000037* +- ID_MODEL_FROM_DATABASE=XG-901 and clones Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] (XG-901 and clones Wireless Adapter) + + pci:v00001260d00003890* + ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] + + pci:v00001260d00003890sv000010B8sd00002802* +- ID_MODEL_FROM_DATABASE=SMC2802W V1 Wireless PCI Adapter [ISL3890] ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V1 Wireless PCI Adapter [ISL3890]) + + pci:v00001260d00003890sv000010B8sd00002835* +- ID_MODEL_FROM_DATABASE=SMC2835W Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W Wireless Cardbus Adapter) + + pci:v00001260d00003890sv000010B8sd0000A835* +- ID_MODEL_FROM_DATABASE=SMC2835W V2 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V2 Wireless Cardbus Adapter) + + pci:v00001260d00003890sv00001113sd00004203* +- ID_MODEL_FROM_DATABASE=WN4201B ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WN4201B) + + pci:v00001260d00003890sv00001113sd00008201* +- ID_MODEL_FROM_DATABASE=T-Com T-Sinus 154pcicard Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Com T-Sinus 154pcicard Wireless PCI Adapter) + + pci:v00001260d00003890sv00001113sd0000B301* +- ID_MODEL_FROM_DATABASE=T-Sinus 154card Cardbus ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Sinus 154card Cardbus) + + pci:v00001260d00003890sv00001113sd0000EE03* +- ID_MODEL_FROM_DATABASE=SMC2802W V2 Wireless PCI Adapter [ISL3886] ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V2 Wireless PCI Adapter [ISL3886]) + + pci:v00001260d00003890sv00001113sd0000EE08* +- ID_MODEL_FROM_DATABASE=SMC2835W V3 EU Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V3 EU Wireless Cardbus Adapter) + + pci:v00001260d00003890sv00001186sd00003202* +- ID_MODEL_FROM_DATABASE=DWL-G650 A1 Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (DWL-G650 A1 Wireless Adapter) + + pci:v00001260d00003890sv00001259sd0000C104* +- ID_MODEL_FROM_DATABASE=CG-WLCB54GT Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (CG-WLCB54GT Wireless Adapter) + + pci:v00001260d00003890sv00001260sd00000000* +- ID_MODEL_FROM_DATABASE=WG511 v1 54 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v1 54 Mbps Wireless PC Card) + + pci:v00001260d00003890sv00001385sd00004800* +- ID_MODEL_FROM_DATABASE=WG511 v2/v3 54 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v2/v3 54 Mbps Wireless PC Card) + + pci:v00001260d00003890sv000016A5sd00001605* +- ID_MODEL_FROM_DATABASE=ALLNET ALL0271 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (ALLNET ALL0271 Wireless PCI Adapter) + + pci:v00001260d00003890sv000017CFsd00000014* +- ID_MODEL_FROM_DATABASE=XG-600 and clones Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-600 and clones Wireless Adapter) + + pci:v00001260d00003890sv000017CFsd00000020* +- ID_MODEL_FROM_DATABASE=XG-900 and clones Wireless Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-900 and clones Wireless Adapter) + + pci:v00001260d00003890sv0000187Esd00003403* +- ID_MODEL_FROM_DATABASE=G-110 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (G-110 802.11g Wireless Cardbus Adapter) + + pci:v00001260d00008130* + ID_MODEL_FROM_DATABASE=HMP8130 NTSC/PAL Video Decoder +@@ -37428,7 +37428,7 @@ pci:v00001260d0000FFFF* + ID_MODEL_FROM_DATABASE=ISL3886IK + + pci:v00001260d0000FFFFsv00001260sd00000000* +- ID_MODEL_FROM_DATABASE=Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter ++ ID_MODEL_FROM_DATABASE=ISL3886IK (Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter) + + pci:v00001261* + ID_VENDOR_FROM_DATABASE=Matsushita-Kotobuki Electronics Industries, Ltd. +@@ -37455,7 +37455,7 @@ pci:v00001266d00001910* + ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter + + pci:v00001266d00001910sv00001266sd00001910* +- ID_MODEL_FROM_DATABASE=NE2000Plus Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter (NE2000Plus Ethernet Adapter) + + pci:v00001267* + ID_VENDOR_FROM_DATABASE=S. A. Telecommunications +@@ -37554,169 +37554,169 @@ pci:v00001274d00001371* + ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] + + pci:v00001274d00001371sv00000E11sd00000024* +- ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI on Motherboard Compaq Deskpro) + + pci:v00001274d00001371sv00000E11sd0000B1A7* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) + + pci:v00001274d00001371sv00001033sd000080AC* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) + + pci:v00001274d00001371sv00001042sd00001854* +- ID_MODEL_FROM_DATABASE=Tazer ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tazer) + + pci:v00001274d00001371sv0000107Bsd00008054* +- ID_MODEL_FROM_DATABASE=Tabor2 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tabor2) + + pci:v00001274d00001371sv00001274sd00001371* +- ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI 64V/128 / Creative Sound Blaster CT4810) + + pci:v00001274d00001371sv00001274sd00008001* +- ID_MODEL_FROM_DATABASE=CT4751 board ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (CT4751 board) + + pci:v00001274d00001371sv00001462sd00006470* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A) + + pci:v00001274d00001371sv00001462sd00006560* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10) + + pci:v00001274d00001371sv00001462sd00006630* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A) + + pci:v00001274d00001371sv00001462sd00006631* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A) + + pci:v00001274d00001371sv00001462sd00006632* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A) + + pci:v00001274d00001371sv00001462sd00006633* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A) + + pci:v00001274d00001371sv00001462sd00006820* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00) + + pci:v00001274d00001371sv00001462sd00006822* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A) + + pci:v00001274d00001371sv00001462sd00006830* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00) + + pci:v00001274d00001371sv00001462sd00006880* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00) + + pci:v00001274d00001371sv00001462sd00006900* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00) + + pci:v00001274d00001371sv00001462sd00006910* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6191 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6191) + + pci:v00001274d00001371sv00001462sd00006930* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6193 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6193) + + pci:v00001274d00001371sv00001462sd00006990* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A) + + pci:v00001274d00001371sv00001462sd00006991* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A) + + pci:v00001274d00001371sv000014A4sd00002077* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KR639 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KR639) + + pci:v00001274d00001371sv000014A4sd00002105* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR800 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR800) + + pci:v00001274d00001371sv000014A4sd00002107* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR801 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR801) + + pci:v00001274d00001371sv000014A4sd00002172* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard DR739 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard DR739) + + pci:v00001274d00001371sv00001509sd00009902* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW11 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW11) + + pci:v00001274d00001371sv00001509sd00009903* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW31 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW31) + + pci:v00001274d00001371sv00001509sd00009904* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KA11 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KA11) + + pci:v00001274d00001371sv00001509sd00009905* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KC13 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KC13) + + pci:v00001274d00001371sv0000152Dsd00008801* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810E ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810E) + + pci:v00001274d00001371sv0000152Dsd00008802* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810) + + pci:v00001274d00001371sv0000152Dsd00008803* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810E ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810E) + + pci:v00001274d00001371sv0000152Dsd00008804* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810-S ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810-S) + + pci:v00001274d00001371sv0000152Dsd00008805* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3820-S ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3820-S) + + pci:v00001274d00001371sv0000270Fsd00002001* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6CTR ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6CTR) + + pci:v00001274d00001371sv0000270Fsd00002200* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WTX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WTX) + + pci:v00001274d00001371sv0000270Fsd00003000* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WSV ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WSV) + + pci:v00001274d00001371sv0000270Fsd00003100* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV2 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV2) + + pci:v00001274d00001371sv0000270Fsd00003102* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV) + + pci:v00001274d00001371sv0000270Fsd00007060* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6ASA2 ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6ASA2) + + pci:v00001274d00001371sv00008086sd00004249* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BI440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BI440ZX) + + pci:v00001274d00001371sv00008086sd0000424C* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BL440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BL440ZX) + + pci:v00001274d00001371sv00008086sd0000425A* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BZ440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BZ440ZX) + + pci:v00001274d00001371sv00008086sd00004341* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cayman ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cayman) + + pci:v00001274d00001371sv00008086sd00004343* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cape Cod ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cape Cod) + + pci:v00001274d00001371sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=D815EEA Motherboard ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (D815EEA Motherboard) + + pci:v00001274d00001371sv00008086sd00004649* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Fire Island ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Fire Island) + + pci:v00001274d00001371sv00008086sd0000464A* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard FJ440ZX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard FJ440ZX) + + pci:v00001274d00001371sv00008086sd00004D4F* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Montreal ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Montreal) + + pci:v00001274d00001371sv00008086sd00004F43* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard OC440LX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard OC440LX) + + pci:v00001274d00001371sv00008086sd00005243* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard RC440BX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard RC440BX) + + pci:v00001274d00001371sv00008086sd00005352* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard SunRiver ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard SunRiver) + + pci:v00001274d00001371sv00008086sd00005643* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Vancouver ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Vancouver) + + pci:v00001274d00001371sv00008086sd00005753* +- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard WS440BX ++ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard WS440BX) + + pci:v00001274d00005000* + ID_MODEL_FROM_DATABASE=ES1370 [AudioPCI] +@@ -37725,31 +37725,31 @@ pci:v00001274d00005880* + ID_MODEL_FROM_DATABASE=5880B [AudioPCI] + + pci:v00001274d00005880sv00001274sd00002000* +- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) + + pci:v00001274d00005880sv00001274sd00002003* +- ID_MODEL_FROM_DATABASE=Creative SoundBlaster AudioPCI 128 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative SoundBlaster AudioPCI 128) + + pci:v00001274d00005880sv00001274sd00005880* +- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) + + pci:v00001274d00005880sv00001274sd00008001* +- ID_MODEL_FROM_DATABASE=Sound Blaster 16PCI 4.1ch ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Sound Blaster 16PCI 4.1ch) + + pci:v00001274d00005880sv00001458sd0000A000* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6OXET ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6OXET) + + pci:v00001274d00005880sv00001462sd00006880* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard MS-6188 1.00 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard MS-6188 1.00) + + pci:v00001274d00005880sv0000270Fsd00002001* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6CTR ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6CTR) + + pci:v00001274d00005880sv0000270Fsd00002200* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6WTX ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6WTX) + + pci:v00001274d00005880sv0000270Fsd00007040* +- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6ATA4 ++ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6ATA4) + + pci:v00001274d00008001* + ID_MODEL_FROM_DATABASE=CT5880 [AudioPCI] +@@ -37809,181 +37809,181 @@ pci:v0000127Ad00001002* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00001002sv00001092sd0000094C* +- ID_MODEL_FROM_DATABASE=SupraExpress 56i PRO [Diamond SUP2380] ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (SupraExpress 56i PRO [Diamond SUP2380]) + + pci:v0000127Ad00001002sv0000122Dsd00004002* +- ID_MODEL_FROM_DATABASE=HPG / MDP3858-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (HPG / MDP3858-U) + + pci:v0000127Ad00001002sv0000122Dsd00004005* +- ID_MODEL_FROM_DATABASE=MDP3858-E ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-E) + + pci:v0000127Ad00001002sv0000122Dsd00004007* +- ID_MODEL_FROM_DATABASE=MDP3858-A/-NZ ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-A/-NZ) + + pci:v0000127Ad00001002sv0000122Dsd00004012* +- ID_MODEL_FROM_DATABASE=MDP3858-SA ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-SA) + + pci:v0000127Ad00001002sv0000122Dsd00004017* +- ID_MODEL_FROM_DATABASE=MDP3858-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) + + pci:v0000127Ad00001002sv0000122Dsd00004018* +- ID_MODEL_FROM_DATABASE=MDP3858-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) + + pci:v0000127Ad00001002sv0000127Asd00001002* +- ID_MODEL_FROM_DATABASE=Rockwell 56K D/F HCF Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Rockwell 56K D/F HCF Modem) + + pci:v0000127Ad00001003* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00001003sv00000E11sd0000B0BC* +- ID_MODEL_FROM_DATABASE=229-DF Zephyr ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Zephyr) + + pci:v0000127Ad00001003sv00000E11sd0000B114* +- ID_MODEL_FROM_DATABASE=229-DF Cheetah ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Cheetah) + + pci:v0000127Ad00001003sv00001033sd0000802B* +- ID_MODEL_FROM_DATABASE=229-DF ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF) + + pci:v0000127Ad00001003sv000013DFsd00001003* +- ID_MODEL_FROM_DATABASE=PCI56RX Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PCI56RX Modem) + + pci:v0000127Ad00001003sv000013E0sd00000117* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv000013E0sd00000147* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 Spain V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 Spain V.90 Modem) + + pci:v0000127Ad00001003sv000013E0sd00000197* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv000013E0sd000001C7* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 WW V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 WW V.90 Modem) + + pci:v0000127Ad00001003sv000013E0sd000001F7* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv00001436sd00001003* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001003sv00001436sd00001103* +- ID_MODEL_FROM_DATABASE=IBM 5614PM3G V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM 5614PM3G V.90 Modem) + + pci:v0000127Ad00001003sv00001436sd00001602* +- ID_MODEL_FROM_DATABASE=Compaq 229-DF Ducati ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq 229-DF Ducati) + + pci:v0000127Ad00001004* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem + + pci:v0000127Ad00001004sv00001048sd00001500* +- ID_MODEL_FROM_DATABASE=MicroLink 56k Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (MicroLink 56k Modem) + + pci:v0000127Ad00001004sv000010CFsd00001059* +- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFRT ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (Fujitsu 229-DFRT) + + pci:v0000127Ad00001005* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v0000127Ad00001005sv00001005sd0000127A* +- ID_MODEL_FROM_DATABASE=AOpen FM56-P ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (AOpen FM56-P) + + pci:v0000127Ad00001005sv00001033sd00008029* +- ID_MODEL_FROM_DATABASE=229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (229-DFSV) + + pci:v0000127Ad00001005sv00001033sd00008054* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Modem) + + pci:v0000127Ad00001005sv000010CFsd0000103C* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00001005sv000010CFsd00001055* +- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) + + pci:v0000127Ad00001005sv000010CFsd00001056* +- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) + + pci:v0000127Ad00001005sv0000122Dsd00004003* +- ID_MODEL_FROM_DATABASE=MDP3858SP-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-U) + + pci:v0000127Ad00001005sv0000122Dsd00004006* +- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-E ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-E) + + pci:v0000127Ad00001005sv0000122Dsd00004008* +- ID_MODEL_FROM_DATABASE=MDP3858SP-A/SP-NZ ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-A/SP-NZ) + + pci:v0000127Ad00001005sv0000122Dsd00004009* +- ID_MODEL_FROM_DATABASE=MDP3858SP-E ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-E) + + pci:v0000127Ad00001005sv0000122Dsd00004010* +- ID_MODEL_FROM_DATABASE=MDP3858V-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-U) + + pci:v0000127Ad00001005sv0000122Dsd00004011* +- ID_MODEL_FROM_DATABASE=MDP3858SP-SA ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-SA) + + pci:v0000127Ad00001005sv0000122Dsd00004013* +- ID_MODEL_FROM_DATABASE=MDP3858V-A/V-NZ ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-A/V-NZ) + + pci:v0000127Ad00001005sv0000122Dsd00004015* +- ID_MODEL_FROM_DATABASE=MDP3858SP-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-W) + + pci:v0000127Ad00001005sv0000122Dsd00004016* +- ID_MODEL_FROM_DATABASE=MDP3858V-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-W) + + pci:v0000127Ad00001005sv0000122Dsd00004019* +- ID_MODEL_FROM_DATABASE=MDP3858V-SA ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-SA) + + pci:v0000127Ad00001005sv000013DFsd00001005* +- ID_MODEL_FROM_DATABASE=PCI56RVP Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (PCI56RVP Modem) + + pci:v0000127Ad00001005sv000013E0sd00000187* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv000013E0sd000001A7* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv000013E0sd000001B7* +- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 Spain V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 Spain V.90 Modem) + + pci:v0000127Ad00001005sv000013E0sd000001D7* +- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 WW V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 WW V.90 Modem) + + pci:v0000127Ad00001005sv00001436sd00001005* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv00001436sd00001105* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) + + pci:v0000127Ad00001005sv00001437sd00001105* +- ID_MODEL_FROM_DATABASE=IBM 5614PS3G V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM 5614PS3G V.90 Modem) + + pci:v0000127Ad00001022* + ID_MODEL_FROM_DATABASE=HCF 56k Modem + + pci:v0000127Ad00001022sv00001436sd00001303* +- ID_MODEL_FROM_DATABASE=M3-5614PM3G V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (M3-5614PM3G V.90 Modem) + + pci:v0000127Ad00001023* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00001023sv0000122Dsd00004020* +- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858-WE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Packard Bell MDP3858-WE) + + pci:v0000127Ad00001023sv0000122Dsd00004023* +- ID_MODEL_FROM_DATABASE=MDP3858-UE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-UE) + + pci:v0000127Ad00001023sv000013E0sd00000247* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 Spain V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 Spain V.90 Modem) + + pci:v0000127Ad00001023sv000013E0sd00000297* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001023sv000013E0sd000002C7* +- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 WW V.90 Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 WW V.90 Modem) + + pci:v0000127Ad00001023sv00001436sd00001203* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001023sv00001436sd00001303* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v0000127Ad00001024* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem +@@ -37992,19 +37992,19 @@ pci:v0000127Ad00001025* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v0000127Ad00001025sv000010CFsd0000106A* +- ID_MODEL_FROM_DATABASE=Fujitsu 235-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 235-DFSV) + + pci:v0000127Ad00001025sv0000122Dsd00004021* +- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-WE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-WE) + + pci:v0000127Ad00001025sv0000122Dsd00004022* +- ID_MODEL_FROM_DATABASE=MDP3858SP-WE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-WE) + + pci:v0000127Ad00001025sv0000122Dsd00004024* +- ID_MODEL_FROM_DATABASE=MDP3858V-UE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-UE) + + pci:v0000127Ad00001025sv0000122Dsd00004025* +- ID_MODEL_FROM_DATABASE=MDP3858SP-UE ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-UE) + + pci:v0000127Ad00001026* + ID_MODEL_FROM_DATABASE=HCF 56k PCI Speakerphone Modem +@@ -38034,85 +38034,85 @@ pci:v0000127Ad00002005* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v0000127Ad00002005sv0000104Dsd00008044* +- ID_MODEL_FROM_DATABASE=229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd00008045* +- ID_MODEL_FROM_DATABASE=229-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd00008055* +- ID_MODEL_FROM_DATABASE=PBE/Aztech 235W-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PBE/Aztech 235W-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd00008056* +- ID_MODEL_FROM_DATABASE=235-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (235-DFSV) + + pci:v0000127Ad00002005sv0000104Dsd0000805A* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002005sv0000104Dsd0000805F* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002005sv0000104Dsd00008074* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002013* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem + + pci:v0000127Ad00002013sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002013sv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) + + pci:v0000127Ad00002014* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem + + pci:v0000127Ad00002014sv000010CFsd00001057* +- ID_MODEL_FROM_DATABASE=Fujitsu Citicorp III ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Fujitsu Citicorp III) + + pci:v0000127Ad00002014sv0000122Dsd00004050* +- ID_MODEL_FROM_DATABASE=MSP3880-U ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-U) + + pci:v0000127Ad00002014sv0000122Dsd00004055* +- ID_MODEL_FROM_DATABASE=MSP3880-W ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-W) + + pci:v0000127Ad00002015* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v0000127Ad00002015sv000010CFsd00001063* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00002015sv000010CFsd00001064* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00002015sv00001468sd00002015* +- ID_MODEL_FROM_DATABASE=Fujitsu ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) + + pci:v0000127Ad00002016* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem + + pci:v0000127Ad00002016sv0000122Dsd00004051* +- ID_MODEL_FROM_DATABASE=MSP3880V-W ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-W) + + pci:v0000127Ad00002016sv0000122Dsd00004052* +- ID_MODEL_FROM_DATABASE=MSP3880SP-W ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-W) + + pci:v0000127Ad00002016sv0000122Dsd00004054* +- ID_MODEL_FROM_DATABASE=MSP3880V-U ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-U) + + pci:v0000127Ad00002016sv0000122Dsd00004056* +- ID_MODEL_FROM_DATABASE=MSP3880SP-U ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-U) + + pci:v0000127Ad00002016sv0000122Dsd00004057* +- ID_MODEL_FROM_DATABASE=MSP3880SP-A ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-A) + + pci:v0000127Ad00004311* + ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem + + pci:v0000127Ad00004311sv0000127Asd00004311* +- ID_MODEL_FROM_DATABASE=Ring Modular? Riptide HSF RT HP Dom ++ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (Ring Modular? Riptide HSF RT HP Dom) + + pci:v0000127Ad00004311sv000013E0sd00000210* +- ID_MODEL_FROM_DATABASE=HP-GVC ++ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (HP-GVC) + + pci:v0000127Ad00004320* + ID_MODEL_FROM_DATABASE=Riptide PCI Audio Controller +@@ -38124,16 +38124,16 @@ pci:v0000127Ad00004321* + ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem + + pci:v0000127Ad00004321sv00001235sd00004321* +- ID_MODEL_FROM_DATABASE=Hewlett Packard DF ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) + + pci:v0000127Ad00004321sv00001235sd00004324* +- ID_MODEL_FROM_DATABASE=Hewlett Packard DF ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) + + pci:v0000127Ad00004321sv000013E0sd00000210* +- ID_MODEL_FROM_DATABASE=Hewlett Packard DF ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) + + pci:v0000127Ad00004321sv0000144Dsd00002321* +- ID_MODEL_FROM_DATABASE=Riptide ++ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Riptide) + + pci:v0000127Ad00004322* + ID_MODEL_FROM_DATABASE=Riptide PCI Game Controller +@@ -38190,7 +38190,7 @@ pci:v00001282d00009102* + ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet + + pci:v00001282d00009102sv00000291sd00008212* +- ID_MODEL_FROM_DATABASE=DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit ++ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit) + + pci:v00001282d00009132* + ID_MODEL_FROM_DATABASE=Ethernet 100/10 MBit +@@ -38208,19 +38208,19 @@ pci:v00001283d00008211* + ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 + + pci:v00001283d00008211sv00001043sd00008138* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 (P5GD1-VW Mainboard) + + pci:v00001283d00008212* + ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller + + pci:v00001283d00008212sv00001283sd00000001* +- ID_MODEL_FROM_DATABASE=IT/ITE8212 Dual channel ATA RAID controller ++ ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller (IT/ITE8212 Dual channel ATA RAID controller) + + pci:v00001283d00008213* + ID_MODEL_FROM_DATABASE=IT8213 IDE Controller + + pci:v00001283d00008213sv00001458sd0000B000* +- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard ++ ID_MODEL_FROM_DATABASE=IT8213 IDE Controller (GA-EG45M-DS2H Mainboard) + + pci:v00001283d00008330* + ID_MODEL_FROM_DATABASE=IT8330G +@@ -38451,19 +38451,19 @@ pci:v000012AEd00000001* + ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet + + pci:v000012AEd00000001sv00001014sd00000104* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX PCI Adapter ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX PCI Adapter) + + pci:v000012AEd00000001sv000012AEsd00000001* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX (Universal) ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX (Universal)) + + pci:v000012AEd00000002* + ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) + + pci:v000012AEd00000002sv000010A9sd00008002* +- ID_MODEL_FROM_DATABASE=Acenic Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Acenic Gigabit Ethernet) + + pci:v000012AEd00000002sv000012AEsd00000002* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-T (3C986-T) ++ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Gigabit Ethernet-T (3C986-T)) + + pci:v000012AEd000000FA* + ID_MODEL_FROM_DATABASE=Farallon PN9100-T Gigabit Ethernet +@@ -38505,64 +38505,64 @@ pci:v000012B9d00001006* + ID_MODEL_FROM_DATABASE=WinModem + + pci:v000012B9d00001006sv000012B9sd0000005C* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 3472) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 3472)) + + pci:v000012B9d00001006sv000012B9sd0000005E* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 662975) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 662975)) + + pci:v000012B9d00001006sv000012B9sd00000062* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662978) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662978)) + + pci:v000012B9d00001006sv000012B9sd00000068* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 5690) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 5690)) + + pci:v000012B9d00001006sv000012B9sd0000007A* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662974) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662974)) + + pci:v000012B9d00001006sv000012B9sd0000007F* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 5698, 5699) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 5698, 5699)) + + pci:v000012B9d00001006sv000012B9sd00000080* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 2975, 3528) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 2975, 3528)) + + pci:v000012B9d00001006sv000012B9sd00000081* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Models 2974, 3529) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Models 2974, 3529)) + + pci:v000012B9d00001006sv000012B9sd00000091* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 2978) ++ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 2978)) + + pci:v000012B9d00001007* + ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem + + pci:v000012B9d00001007sv000012B9sd000000A3* +- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Model 3595) ++ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem ((Model 3595)) + + pci:v000012B9d00001007sv000012B9sd000000C4* +- ID_MODEL_FROM_DATABASE=U.S. Robotics V.92 Voice Faxmodem (2884A/B/C) ++ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (U.S. Robotics V.92 Voice Faxmodem (2884A/B/C)) + + pci:v000012B9d00001008* + ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 + + pci:v000012B9d00001008sv000012B9sd000000A2* +- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 2977) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 2977)) + + pci:v000012B9d00001008sv000012B9sd000000AA* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 2976) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 2976)) + + pci:v000012B9d00001008sv000012B9sd000000AB* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 5609) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 5609)) + + pci:v000012B9d00001008sv000012B9sd000000AC* +- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 3298) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 3298)) + + pci:v000012B9d00001008sv000012B9sd000000AD* +- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 5610) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 5610)) + + pci:v000012B9d00001008sv000012B9sd000000D3* +- ID_MODEL_FROM_DATABASE=USR 56K Internal V92 FAX Modem (Model 5610) ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal V92 FAX Modem (Model 5610)) + + pci:v000012B9d00001008sv000012B9sd0000BABA* +- ID_MODEL_FROM_DATABASE=USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk] ++ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk]) + + pci:v000012BA* + ID_VENDOR_FROM_DATABASE=BittWare, Inc. +@@ -38586,7 +38586,7 @@ pci:v000012BEd00003042* + ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite + + pci:v000012BEd00003042sv000012BEsd00003042* +- ID_MODEL_FROM_DATABASE=Anchor Chips Lite Evaluation Board ++ ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite (Anchor Chips Lite Evaluation Board) + + pci:v000012BF* + ID_VENDOR_FROM_DATABASE=Fujifilm Microdevices +@@ -38781,58 +38781,58 @@ pci:v000012D2d00000018* + ID_MODEL_FROM_DATABASE=Riva128 + + pci:v000012D2d00000018sv00001048sd00000C10* +- ID_MODEL_FROM_DATABASE=VICTORY Erazor ++ ID_MODEL_FROM_DATABASE=Riva128 (VICTORY Erazor) + + pci:v000012D2d00000018sv0000107Bsd00008030* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv00001092sd00000350* +- ID_MODEL_FROM_DATABASE=Viper V330 ++ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) + + pci:v000012D2d00000018sv00001092sd00001092* +- ID_MODEL_FROM_DATABASE=Viper V330 ++ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) + + pci:v000012D2d00000018sv000010B4sd00001B1B* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00001B1D* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00001B1E* +- ID_MODEL_FROM_DATABASE=STB Velocity 128, PAL TV-Out ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128, PAL TV-Out) + + pci:v000012D2d00000018sv000010B4sd00001B20* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 Sapphire ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 Sapphire) + + pci:v000012D2d00000018sv000010B4sd00001B21* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00001B22* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, NTSC TV-Out ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, NTSC TV-Out) + + pci:v000012D2d00000018sv000010B4sd00001B23* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, PAL TV-Out ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, PAL TV-Out) + + pci:v000012D2d00000018sv000010B4sd00001B27* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 DVD ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 DVD) + + pci:v000012D2d00000018sv000010B4sd00001B88* +- ID_MODEL_FROM_DATABASE=MVP Pro 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (MVP Pro 128) + + pci:v000012D2d00000018sv000010B4sd0000222A* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) + + pci:v000012D2d00000018sv000010B4sd00002230* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00002232* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) + + pci:v000012D2d00000018sv000010B4sd00002235* +- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP ++ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) + + pci:v000012D2d00000018sv00002A15sd000054A3* +- ID_MODEL_FROM_DATABASE=3DVision-SAGP / 3DexPlorer 3000 ++ ID_MODEL_FROM_DATABASE=Riva128 (3DVision-SAGP / 3DexPlorer 3000) + + pci:v000012D2d00000019* + ID_MODEL_FROM_DATABASE=Riva128ZX +@@ -38916,7 +38916,7 @@ pci:v000012D8d0000E110* + ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge + + pci:v000012D8d0000E110sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 CompactPCI Bridge ++ ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge (CC11/CL11 CompactPCI Bridge) + + pci:v000012D8d0000E111* + ID_MODEL_FROM_DATABASE=PI7C9X111SL PCIe-to-PCI Reversible Bridge +@@ -38940,10 +38940,10 @@ pci:v000012D9d00001078* + ID_MODEL_FROM_DATABASE=Prosody X class e1000 device + + pci:v000012D9d00001078sv000012D9sd0000000D* +- ID_MODEL_FROM_DATABASE=Prosody X PCI ++ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X PCI) + + pci:v000012D9d00001078sv000012D9sd0000000E* +- ID_MODEL_FROM_DATABASE=Prosody X cPCI ++ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X cPCI) + + pci:v000012DA* + ID_VENDOR_FROM_DATABASE=True Time Inc. +@@ -39015,67 +39015,67 @@ pci:v000012EBd00000001* + ID_MODEL_FROM_DATABASE=Vortex 1 + + pci:v000012EBd00000001sv0000104Dsd00008036* +- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) + + pci:v000012EBd00000001sv00001092sd00002000* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv00001092sd00002100* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv00001092sd00002110* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv00001092sd00002200* +- ID_MODEL_FROM_DATABASE=Sonic Impact A3D ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) + + pci:v000012EBd00000001sv0000122Dsd00001002* +- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) + + pci:v000012EBd00000001sv000012EBsd00000001* +- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) + + pci:v000012EBd00000001sv00005053sd00003355* +- ID_MODEL_FROM_DATABASE=Montego ++ ID_MODEL_FROM_DATABASE=Vortex 1 (Montego) + + pci:v000012EBd00000001sv000050B2sd00001111* +- ID_MODEL_FROM_DATABASE=XLerate ++ ID_MODEL_FROM_DATABASE=Vortex 1 (XLerate) + + pci:v000012EBd00000002* + ID_MODEL_FROM_DATABASE=Vortex 2 + + pci:v000012EBd00000002sv0000104Dsd00008049* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv0000104Dsd0000807B* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv00001092sd00003000* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003001* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003002* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003003* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv00001092sd00003004* +- ID_MODEL_FROM_DATABASE=Monster Sound II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) + + pci:v000012EBd00000002sv000012EBsd00000002* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv000012EBsd00000088* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv0000144Dsd00003510* +- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor ++ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) + + pci:v000012EBd00000002sv00005053sd00003356* +- ID_MODEL_FROM_DATABASE=Montego II ++ ID_MODEL_FROM_DATABASE=Vortex 2 (Montego II) + + pci:v000012EBd00000003* + ID_MODEL_FROM_DATABASE=AU8810 Vortex Digital Audio Processor +@@ -39465,16 +39465,16 @@ pci:v00001317d00000985* + ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 + + pci:v00001317d00000985sv00001734sd0000100C* +- ID_MODEL_FROM_DATABASE=Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter ++ ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 (Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter) + + pci:v00001317d00001985* + ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet + + pci:v00001317d00001985sv00001385sd0000511A* +- ID_MODEL_FROM_DATABASE=FA511 ++ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (FA511) + + pci:v00001317d00001985sv00001395sd00002103* +- ID_MODEL_FROM_DATABASE=CB100-EZ (4-LED version) ++ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (CB100-EZ (4-LED version)) + + pci:v00001317d00002850* + ID_MODEL_FROM_DATABASE=HSP MicroModem 56 +@@ -39486,10 +39486,10 @@ pci:v00001317d00008201* + ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface + + pci:v00001317d00008201sv000010B8sd00002635* +- ID_MODEL_FROM_DATABASE=SMC2635W v1 802.11b Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v1 802.11b Wireless Cardbus Adapter) + + pci:v00001317d00008201sv00001317sd00008201* +- ID_MODEL_FROM_DATABASE=SMC2635W v2 802.11b Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v2 802.11b Wireless Cardbus Adapter) + + pci:v00001317d00008211* + ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface +@@ -39510,13 +39510,13 @@ pci:v00001319d00000801* + ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] + + pci:v00001319d00000801sv00001319sd00001319* +- ID_MODEL_FROM_DATABASE=FM801 PCI Audio ++ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] (FM801 PCI Audio) + + pci:v00001319d00000802* + ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] + + pci:v00001319d00000802sv00001319sd00001319* +- ID_MODEL_FROM_DATABASE=FM801 PCI Joystick ++ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] (FM801 PCI Joystick) + + pci:v00001319d00001000* + ID_MODEL_FROM_DATABASE=FM801 PCI Audio +@@ -39618,7 +39618,7 @@ pci:v0000131Fd00002030* + ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 + + pci:v0000131Fd00002030sv0000131Fsd00002030* +- ID_MODEL_FROM_DATABASE=PCI Serial Card ++ ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 (PCI Serial Card) + + pci:v0000131Fd00002031* + ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16650 +@@ -39834,7 +39834,7 @@ pci:v0000134Dd00007890* + ID_MODEL_FROM_DATABASE=HSP MicroModem 56 + + pci:v0000134Dd00007890sv0000134Dsd00000001* +- ID_MODEL_FROM_DATABASE=PCT789 adapter ++ ID_MODEL_FROM_DATABASE=HSP MicroModem 56 (PCT789 adapter) + + pci:v0000134Dd00007891* + ID_MODEL_FROM_DATABASE=HSP MicroModem 56 +@@ -40119,7 +40119,7 @@ pci:v00001371d0000434E* + ID_MODEL_FROM_DATABASE=GigaCard Network Adapter + + pci:v00001371d0000434Esv00001371sd0000434E* +- ID_MODEL_FROM_DATABASE=N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L) ++ ID_MODEL_FROM_DATABASE=GigaCard Network Adapter (N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)) + + pci:v00001373* + ID_VENDOR_FROM_DATABASE=Silicon Vision Inc +@@ -40515,10 +40515,10 @@ pci:v00001394d00000001* + ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet + + pci:v00001394d00000001sv00001186sd00004800* +- ID_MODEL_FROM_DATABASE=DGE-500SX ++ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (DGE-500SX) + + pci:v00001394d00000001sv00001394sd00000001* +- ID_MODEL_FROM_DATABASE=NetCelerator Adapter ++ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (NetCelerator Adapter) + + pci:v00001395* + ID_VENDOR_FROM_DATABASE=Ambicom Inc +@@ -40533,40 +40533,40 @@ pci:v00001397d000008B4* + ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] + + pci:v00001397d000008B4sv00001397sd0000B520* +- ID_MODEL_FROM_DATABASE=HFC-4S [IOB4ST] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [IOB4ST]) + + pci:v00001397d000008B4sv00001397sd0000B540* +- ID_MODEL_FROM_DATABASE=HFC-4S [Swyx 4xS0 SX2 QuadBri] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Swyx 4xS0 SX2 QuadBri]) + + pci:v00001397d000008B4sv00001397sd0000B550* +- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns quadBRI] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns quadBRI]) + + pci:v00001397d000008B4sv00001397sd0000B556* +- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns DuoDBRI] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns DuoDBRI]) + + pci:v00001397d000008B4sv00001397sd0000E888* +- ID_MODEL_FROM_DATABASE=HFC-4S [OpenVox B200P / B400P] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [OpenVox B200P / B400P]) + + pci:v00001397d000016B8* + ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] + + pci:v00001397d000016B8sv00001397sd0000B562* +- ID_MODEL_FROM_DATABASE=HFC-8S [IOB8ST] ++ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [IOB8ST]) + + pci:v00001397d00002BD0* + ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] + + pci:v00001397d00002BD0sv00000675sd00001704* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C)) + + pci:v00001397d00002BD0sv00000675sd00001708* +- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C, ACPI) ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C, ACPI)) + + pci:v00001397d00002BD0sv00001397sd00002BD0* +- ID_MODEL_FROM_DATABASE=ISDN Board ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Board) + + pci:v00001397d00002BD0sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CI1-1-Harp ++ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (CI1-1-Harp) + + pci:v00001397d000030B1* + ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] +@@ -40665,46 +40665,46 @@ pci:v000013A3d0000002F* + ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor + + pci:v000013A3d0000002Fsv000013A3sd00001600* +- ID_MODEL_FROM_DATABASE=DR1600 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1600 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001605* +- ID_MODEL_FROM_DATABASE=DR1605 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1605 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001610* +- ID_MODEL_FROM_DATABASE=DR1610 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1610 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001615* +- ID_MODEL_FROM_DATABASE=DR1615 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1615 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001620* +- ID_MODEL_FROM_DATABASE=DR1620 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1620 Acceleration Card) + + pci:v000013A3d0000002Fsv000013A3sd00001625* +- ID_MODEL_FROM_DATABASE=DR1625 Acceleration Card ++ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1625 Acceleration Card) + + pci:v000013A3d00000033* + ID_MODEL_FROM_DATABASE=8201 Acceleration Processor + + pci:v000013A3d00000033sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1710 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8201 Acceleration Processor (DX1710 Acceleration Card) + + pci:v000013A3d00000034* + ID_MODEL_FROM_DATABASE=8202 Acceleration Processor + + pci:v000013A3d00000034sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1720 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8202 Acceleration Processor (DX1720 Acceleration Card) + + pci:v000013A3d00000035* + ID_MODEL_FROM_DATABASE=8203 Acceleration Processor + + pci:v000013A3d00000035sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1730 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8203 Acceleration Processor (DX1730 Acceleration Card) + + pci:v000013A3d00000037* + ID_MODEL_FROM_DATABASE=8204 Acceleration Processor + + pci:v000013A3d00000037sv000013A3sd00000036* +- ID_MODEL_FROM_DATABASE=DX1740 Acceleration Card ++ ID_MODEL_FROM_DATABASE=8204 Acceleration Processor (DX1740 Acceleration Card) + + pci:v000013A4* + ID_VENDOR_FROM_DATABASE=Rascom Inc +@@ -41067,7 +41067,7 @@ pci:v000013F0d00000200* + ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY + + pci:v000013F0d00000200sv00001043sd00008213* +- ID_MODEL_FROM_DATABASE=NX1001 ++ ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (NX1001) + + pci:v000013F0d00000201* + ID_MODEL_FROM_DATABASE=ST201 Sundance Ethernet +@@ -41079,7 +41079,7 @@ pci:v000013F0d00001023* + ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet + + pci:v000013F0d00001023sv00001043sd00008180* +- ID_MODEL_FROM_DATABASE=NX1101 ++ ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet (NX1101) + + pci:v000013F1* + ID_VENDOR_FROM_DATABASE=Oce' - Technologies B.V. +@@ -41109,76 +41109,76 @@ pci:v000013F6d00000100* + ID_MODEL_FROM_DATABASE=CM8338A + + pci:v000013F6d00000100sv000013F6sd0000FFFF* +- ID_MODEL_FROM_DATABASE=CMI8338/C3DX PCI Audio Device ++ ID_MODEL_FROM_DATABASE=CM8338A (CMI8338/C3DX PCI Audio Device) + + pci:v000013F6d00000101* + ID_MODEL_FROM_DATABASE=CM8338B + + pci:v000013F6d00000101sv000013F6sd00000101* +- ID_MODEL_FROM_DATABASE=CMI8338-031 PCI Audio Device ++ ID_MODEL_FROM_DATABASE=CM8338B (CMI8338-031 PCI Audio Device) + + pci:v000013F6d00000111* + ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio + + pci:v000013F6d00000111sv00001019sd00000970* +- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (P6STP-FL motherboard) + + pci:v000013F6d00000111sv00001043sd00008035* +- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CUSI-FX motherboard) + + pci:v000013F6d00000111sv00001043sd00008077* +- ID_MODEL_FROM_DATABASE=CMI8738 6-channel audio controller ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6-channel audio controller) + + pci:v000013F6d00000111sv00001043sd000080E2* +- ID_MODEL_FROM_DATABASE=CMI8738 6ch-MX ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6ch-MX) + + pci:v000013F6d00000111sv000013F6sd00000111* +- ID_MODEL_FROM_DATABASE=CMI8738/C3DX PCI Audio Device ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738/C3DX PCI Audio Device) + + pci:v000013F6d00000111sv000013F6sd00009761* +- ID_MODEL_FROM_DATABASE=Theatron Agrippa ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Theatron Agrippa) + + pci:v000013F6d00000111sv0000153Bsd00001144* +- ID_MODEL_FROM_DATABASE=Aureon 5.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 5.1) + + pci:v000013F6d00000111sv0000153Bsd00001170* +- ID_MODEL_FROM_DATABASE=Aureon 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 7.1) + + pci:v000013F6d00000111sv00001681sd0000A000* +- ID_MODEL_FROM_DATABASE=Gamesurround MUSE XL ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Gamesurround MUSE XL) + + pci:v000013F6d00000111sv000017ABsd00000604* +- ID_MODEL_FROM_DATABASE=PSC604 Dynamic Edge ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC604 Dynamic Edge) + + pci:v000013F6d00000111sv000017ABsd00000605* +- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) + + pci:v000013F6d00000111sv000017ABsd00007777* +- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) + + pci:v000013F6d00000111sv0000270Fsd00001103* +- ID_MODEL_FROM_DATABASE=CT-7NJS Ultra motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CT-7NJS Ultra motherboard) + + pci:v000013F6d00000111sv0000270Fsd0000F462* +- ID_MODEL_FROM_DATABASE=7NJL1 motherboard ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (7NJL1 motherboard) + + pci:v000013F6d00000111sv0000584Dsd00003731* +- ID_MODEL_FROM_DATABASE=Digital X-Mystique ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Digital X-Mystique) + + pci:v000013F6d00000111sv0000584Dsd00003741* +- ID_MODEL_FROM_DATABASE=X-Plosion 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Plosion 7.1) + + pci:v000013F6d00000111sv0000584Dsd00003751* +- ID_MODEL_FROM_DATABASE=X-Raider 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Raider 7.1) + + pci:v000013F6d00000111sv0000584Dsd00003761* +- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP) + + pci:v000013F6d00000111sv0000584Dsd00003771* +- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP Value ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP Value) + + pci:v000013F6d00000111sv00007284sd00008384* +- ID_MODEL_FROM_DATABASE=Striker 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Striker 7.1) + + pci:v000013F6d00000211* + ID_MODEL_FROM_DATABASE=CM8738 +@@ -41187,85 +41187,85 @@ pci:v000013F6d00005011* + ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] + + pci:v000013F6d00005011sv000013F6sd00005011* +- ID_MODEL_FROM_DATABASE=HDA Controller ++ ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] (HDA Controller) + + pci:v000013F6d00008788* + ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] + + pci:v000013F6d00008788sv00001043sd00008269* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2)) + + pci:v000013F6d00008788sv00001043sd00008275* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) + + pci:v000013F6d00008788sv00001043sd000082B7* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2X) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2X)) + + pci:v000013F6d00008788sv00001043sd00008314* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3)) + + pci:v000013F6d00008788sv00001043sd00008327* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) + + pci:v000013F6d00008788sv00001043sd0000834F* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar D1) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar D1)) + + pci:v000013F6d00008788sv00001043sd0000835C* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Essence STX) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX)) + + pci:v000013F6d00008788sv00001043sd0000835D* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar ST) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar ST)) + + pci:v000013F6d00008788sv00001043sd0000835E* +- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3 Slim) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3 Slim)) + + pci:v000013F6d00008788sv00001043sd0000838E* +- ID_MODEL_FROM_DATABASE=Virtuoso 66 (Xonar DS) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 66 (Xonar DS)) + + pci:v000013F6d00008788sv00001043sd00008428* +- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Xense) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Xense)) + + pci:v000013F6d00008788sv00001043sd00008467* +- ID_MODEL_FROM_DATABASE=CMI8786 (Xonar DG) ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) + + pci:v000013F6d00008788sv000013F6sd00008782* +- ID_MODEL_FROM_DATABASE=PCI 2.0 HD Audio ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) + + pci:v000013F6d00008788sv000013F6sd0000FFFF* +- ID_MODEL_FROM_DATABASE=CMI8787-HG2PCI ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8787-HG2PCI) + + pci:v000013F6d00008788sv000014C3sd00001710* +- ID_MODEL_FROM_DATABASE=HiFier Fantasia ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Fantasia) + + pci:v000013F6d00008788sv000014C3sd00001711* +- ID_MODEL_FROM_DATABASE=HiFier Serenade ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade) + + pci:v000013F6d00008788sv000014C3sd00001713* +- ID_MODEL_FROM_DATABASE=HiFier Serenade III ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade III) + + pci:v000013F6d00008788sv00001A58sd00000910* +- ID_MODEL_FROM_DATABASE=Barracuda AC-1 ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Barracuda AC-1) + + pci:v000013F6d00008788sv0000415Asd00005431* +- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1) + + pci:v000013F6d00008788sv00005431sd0000017A* +- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 2G ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1 2G) + + pci:v000013F6d00008788sv0000584Dsd00003781* +- ID_MODEL_FROM_DATABASE=HDA X-Purity 7.1 Platinum ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HDA X-Purity 7.1 Platinum) + + pci:v000013F6d00008788sv00007284sd00009761* +- ID_MODEL_FROM_DATABASE=CLARO ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO) + + pci:v000013F6d00008788sv00007284sd00009781* +- ID_MODEL_FROM_DATABASE=CLARO halo ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO halo) + + pci:v000013F6d00008788sv00007284sd00009783* +- ID_MODEL_FROM_DATABASE=eCLARO ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (eCLARO) + + pci:v000013F6d00008788sv00007284sd00009787* +- ID_MODEL_FROM_DATABASE=CLARO II ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO II) + + pci:v000013F7* + ID_VENDOR_FROM_DATABASE=Wildfire Communications +@@ -41298,13 +41298,13 @@ pci:v000013FEd00001600* + ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) + + pci:v000013FEd00001600sv00001601sd00000002* +- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1601 2-port unisolated RS-422/485) + + pci:v000013FEd00001600sv00001602sd00000002* +- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1602 2-port isolated RS-422/485) + + pci:v000013FEd00001600sv00001612sd00000004* +- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1612 4-port RS-232/422/485) + + pci:v000013FEd00001603* + ID_MODEL_FROM_DATABASE=PCI-1603 2-port isolated RS-232/current loop +@@ -41316,13 +41316,13 @@ pci:v000013FEd000016FF* + ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) + + pci:v000013FEd000016FFsv00001601sd00000000* +- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 PCI communications card ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1601 2-port unisolated RS-422/485 PCI communications card) + + pci:v000013FEd000016FFsv00001602sd00000000* +- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1602 2-port isolated RS-422/485) + + pci:v000013FEd000016FFsv00001612sd00000000* +- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 ++ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1612 4-port RS-232/422/485) + + pci:v000013FEd00001711* + ID_MODEL_FROM_DATABASE=PCI-1711 16-channel data acquisition card 12-bit, 100kS/s +@@ -41676,37 +41676,37 @@ pci:v00001409d00007168* + ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) + + pci:v00001409d00007168sv00001409sd00000002* +- ID_MODEL_FROM_DATABASE=SER4036A3V (2x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4036A3V (2x RS232 port)) + + pci:v00001409d00007168sv00001409sd00004027* +- ID_MODEL_FROM_DATABASE=SER4027A (1x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027A (1x RS232 port)) + + pci:v00001409d00007168sv00001409sd00004037* +- ID_MODEL_FROM_DATABASE=SER4037A (2x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037A (2x RS232 port)) + + pci:v00001409d00007168sv00001409sd00004056* +- ID_MODEL_FROM_DATABASE=SER4056A (4x RS232) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056A (4x RS232)) + + pci:v00001409d00007168sv00001409sd00005027* +- ID_MODEL_FROM_DATABASE=SER4027D ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027D) + + pci:v00001409d00007168sv00001409sd00005037* +- ID_MODEL_FROM_DATABASE=SER4037D (2x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037D (2x RS232 port)) + + pci:v00001409d00007168sv00001409sd00005066* +- ID_MODEL_FROM_DATABASE=SER4066R (8x RS232) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4066R (8x RS232)) + + pci:v00001409d00007168sv00001409sd00006056* +- ID_MODEL_FROM_DATABASE=SER4056D (4x RS232 port) ++ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056D (4x RS232 port)) + + pci:v00001409d00007268* + ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) + + pci:v00001409d00007268sv00001409sd00000103* +- ID_MODEL_FROM_DATABASE=PAR4008A ++ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4008A) + + pci:v00001409d00007268sv00001409sd00000104* +- ID_MODEL_FROM_DATABASE=PAR4018A ++ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4018A) + + pci:v0000140A* + ID_VENDOR_FROM_DATABASE=DSP Research Inc +@@ -41739,106 +41739,106 @@ pci:v00001412d00001712* + ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller + + pci:v00001412d00001712sv00001412sd00001712* +- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24) + + pci:v00001412d00001712sv00001412sd00003632* +- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 192 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 192) + + pci:v00001412d00001712sv00001412sd0000D630* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010) + + pci:v00001412d00001712sv00001412sd0000D631* +- ID_MODEL_FROM_DATABASE=M-Audio Delta DiO ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta DiO) + + pci:v00001412d00001712sv00001412sd0000D632* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 66 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 66) + + pci:v00001412d00001712sv00001412sd0000D633* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 44 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 44) + + pci:v00001412d00001712sv00001412sd0000D634* +- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 2496 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 2496) + + pci:v00001412d00001712sv00001412sd0000D635* +- ID_MODEL_FROM_DATABASE=M-Audio Delta TDIF ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta TDIF) + + pci:v00001412d00001712sv00001412sd0000D637* +- ID_MODEL_FROM_DATABASE=M-Audio Delta RBUS ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta RBUS) + + pci:v00001412d00001712sv00001412sd0000D638* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 410 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 410) + + pci:v00001412d00001712sv00001412sd0000D63B* +- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010LT ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010LT) + + pci:v00001412d00001712sv00001412sd0000D63C* +- ID_MODEL_FROM_DATABASE=Digigram VX442 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Digigram VX442) + + pci:v00001412d00001712sv00001416sd00001712* +- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 Media 7.1 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24 Media 7.1) + + pci:v00001412d00001712sv0000153Bsd00001115* +- ID_MODEL_FROM_DATABASE=EWS88 MT ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT) + + pci:v00001412d00001712sv0000153Bsd00001125* +- ID_MODEL_FROM_DATABASE=EWS88 MT (Master) ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT (Master)) + + pci:v00001412d00001712sv0000153Bsd0000112B* +- ID_MODEL_FROM_DATABASE=EWS88 D ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D) + + pci:v00001412d00001712sv0000153Bsd0000112C* +- ID_MODEL_FROM_DATABASE=EWS88 D (Master) ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D (Master)) + + pci:v00001412d00001712sv0000153Bsd00001130* +- ID_MODEL_FROM_DATABASE=EWX 24/96 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWX 24/96) + + pci:v00001412d00001712sv0000153Bsd00001138* +- ID_MODEL_FROM_DATABASE=DMX 6fire 24/96 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (DMX 6fire 24/96) + + pci:v00001412d00001712sv0000153Bsd00001151* +- ID_MODEL_FROM_DATABASE=PHASE88 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (PHASE88) + + pci:v00001412d00001712sv000016CEsd00001040* +- ID_MODEL_FROM_DATABASE=Edirol DA-2496 ++ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Edirol DA-2496) + + pci:v00001412d00001724* + ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller + + pci:v00001412d00001724sv000010B0sd00000200* +- ID_MODEL_FROM_DATABASE=Hollywood@Home 7.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Hollywood@Home 7.1) + + pci:v00001412d00001724sv00001412sd00001724* +- ID_MODEL_FROM_DATABASE=Albatron PX865PE 7.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Albatron PX865PE 7.1) + + pci:v00001412d00001724sv00001412sd00003630* +- ID_MODEL_FROM_DATABASE=M-Audio Revolution 7.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 7.1) + + pci:v00001412d00001724sv00001412sd00003631* +- ID_MODEL_FROM_DATABASE=M-Audio Revolution 5.1 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 5.1) + + pci:v00001412d00001724sv0000153Bsd00001145* +- ID_MODEL_FROM_DATABASE=Aureon 7.1 Space ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Space) + + pci:v00001412d00001724sv0000153Bsd00001147* +- ID_MODEL_FROM_DATABASE=Aureon 5.1 Sky ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 5.1 Sky) + + pci:v00001412d00001724sv0000153Bsd00001150* +- ID_MODEL_FROM_DATABASE=PHASE 22 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PHASE 22) + + pci:v00001412d00001724sv0000153Bsd00001153* +- ID_MODEL_FROM_DATABASE=Aureon 7.1 Universe ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Universe) + + pci:v00001412d00001724sv000017ABsd00001906* +- ID_MODEL_FROM_DATABASE=PSC 724 [Ultimate Edge] ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PSC 724 [Ultimate Edge]) + + pci:v00001412d00001724sv0000270Fsd0000F641* +- ID_MODEL_FROM_DATABASE=ZNF3-150 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-150) + + pci:v00001412d00001724sv0000270Fsd0000F645* +- ID_MODEL_FROM_DATABASE=ZNF3-250 ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-250) + + pci:v00001412d00001724sv00003130sd00004154* +- ID_MODEL_FROM_DATABASE=MAYA 44 MKII ++ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (MAYA 44 MKII) + + pci:v00001413* + ID_VENDOR_FROM_DATABASE=Addonics +@@ -41904,28 +41904,28 @@ pci:v00001415d00009501* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) + + pci:v00001415d00009501sv000012C4sd00000201* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (2 port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (2 port)) + + pci:v00001415d00009501sv000012C4sd00000202* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (4 port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (4 port)) + + pci:v00001415d00009501sv000012C4sd00000203* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (8 port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (8 port)) + + pci:v00001415d00009501sv000012C4sd00000210* +- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p1-4) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/104-Plus (8 port, p1-4)) + + pci:v00001415d00009501sv0000131Fsd00002050* +- ID_MODEL_FROM_DATABASE=CyberPro (4-port) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberPro (4-port)) + + pci:v00001415d00009501sv0000131Fsd00002051* +- ID_MODEL_FROM_DATABASE=CyberSerial 4S Plus ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberSerial 4S Plus) + + pci:v00001415d00009501sv000015EDsd00002000* +- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 8 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 8) + + pci:v00001415d00009501sv000015EDsd00002001* +- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 16 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 16) + + pci:v00001415d00009505* + ID_MODEL_FROM_DATABASE=OXuPCI952 (Dual 16C950 UART) +@@ -41940,19 +41940,19 @@ pci:v00001415d00009510* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) + + pci:v00001415d00009510sv000012C4sd00000200* +- ID_MODEL_FROM_DATABASE=Titan/cPCI (Unused) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) (Titan/cPCI (Unused)) + + pci:v00001415d00009511* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) + + pci:v00001415d00009511sv000012C4sd00000211* +- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p5-8) ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (Titan/104-Plus (8 port, p5-8)) + + pci:v00001415d00009511sv000015EDsd00002000* +- ID_MODEL_FROM_DATABASE=MCCR Serial p4-7 of 8 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-7 of 8) + + pci:v00001415d00009511sv000015EDsd00002001* +- ID_MODEL_FROM_DATABASE=MCCR Serial p4-15 of 16 ++ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-15 of 16) + + pci:v00001415d00009512* + ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (32bit bus) +@@ -41970,10 +41970,10 @@ pci:v00001415d0000C158* + ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART + + pci:v00001415d0000C158sv0000E4BFsd0000C504* +- ID_MODEL_FROM_DATABASE=CP4-SCAT Wireless Technologies Carrier Board ++ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (CP4-SCAT Wireless Technologies Carrier Board) + + pci:v00001415d0000C158sv0000E4BFsd0000D551* +- ID_MODEL_FROM_DATABASE=DU1-MUSTANG Dual-Port RS-485 Interface ++ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (DU1-MUSTANG Dual-Port RS-485 Interface) + + pci:v00001415d0000C308* + ID_MODEL_FROM_DATABASE=EX-44016 16-port serial +@@ -42042,7 +42042,7 @@ pci:v00001425d00000030* + ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter + + pci:v00001425d00000030sv0000103Csd0000705E* +- ID_MODEL_FROM_DATABASE=PCIe 10GBase-SR [AD386A] ++ ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter (PCIe 10GBase-SR [AD386A]) + + pci:v00001425d00000031* + ID_MODEL_FROM_DATABASE=T320 10GbE Dual Port Adapter +@@ -43170,13 +43170,13 @@ pci:v0000144Dd0000A820* + ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X + + pci:v0000144Dd0000A820sv00001028sd00001F95* +- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 400GB ++ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 400GB) + + pci:v0000144Dd0000A820sv00001028sd00001F96* +- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 800GB ++ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 800GB) + + pci:v0000144Dd0000A820sv00001028sd00001F97* +- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 1600GB ++ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 1600GB) + + pci:v0000144E* + ID_VENDOR_FROM_DATABASE=OLITEC +@@ -43656,19 +43656,19 @@ pci:v000014C1d00000008* + ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC + + pci:v000014C1d00000008sv000014C1sd00000008* +- ID_MODEL_FROM_DATABASE=10G-PCIE-8A ++ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A) + + pci:v000014C1d00000008sv000014C1sd00000009* +- ID_MODEL_FROM_DATABASE=10G-PCIE-8A (MSI-X firmware) ++ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A (MSI-X firmware)) + + pci:v000014C1d00000008sv000014C1sd0000000A* +- ID_MODEL_FROM_DATABASE=10G-PCIE-8B ++ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8B) + + pci:v000014C1d00008043* + ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect + + pci:v000014C1d00008043sv0000103Csd00001240* +- ID_MODEL_FROM_DATABASE=Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) ++ ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect (Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)) + + pci:v000014C2* + ID_VENDOR_FROM_DATABASE=DTK Computer +@@ -43929,19 +43929,19 @@ pci:v000014E4d00001600* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express + + pci:v000014E4d00001600sv00001028sd000001C1* +- ID_MODEL_FROM_DATABASE=Precision 490 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Precision 490) + + pci:v000014E4d00001600sv00001028sd000001C2* +- ID_MODEL_FROM_DATABASE=Latitude D620 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Latitude D620) + + pci:v000014E4d00001600sv0000103Csd00003015* +- ID_MODEL_FROM_DATABASE=PCIe LAN on Motherboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (PCIe LAN on Motherboard) + + pci:v000014E4d00001600sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 Onboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (E4500 Onboard) + + pci:v000014E4d00001600sv00001259sd00002705* +- ID_MODEL_FROM_DATABASE=AT-2711FX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (AT-2711FX) + + pci:v000014E4d00001601* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5752M Gigabit Ethernet PCI Express +@@ -43956,52 +43956,52 @@ pci:v000014E4d00001639* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet + + pci:v000014E4d00001639sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 BCM5709 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R710 BCM5709 Gigabit Ethernet) + + pci:v000014E4d00001639sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 BCM5709 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R610 BCM5709 Gigabit Ethernet) + + pci:v000014E4d00001639sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 BCM5709 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge T610 BCM5709 Gigabit Ethernet) + + pci:v000014E4d00001639sv0000103Csd00007055* +- ID_MODEL_FROM_DATABASE=NC382i Integrated Multi-port PCI Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382i Integrated Multi-port PCI Express Gigabit Server Adapter) + + pci:v000014E4d00001639sv0000103Csd00007059* +- ID_MODEL_FROM_DATABASE=NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter) + + pci:v000014E4d00001639sv000010A9sd00008027* +- ID_MODEL_FROM_DATABASE=Quad port Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (Quad port Gigabit Ethernet Controller) + + pci:v000014E4d0000163A* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet + + pci:v000014E4d0000163Asv00001028sd0000027B* +- ID_MODEL_FROM_DATABASE=PowerEdge M805 Broadcom NetXtreme II BCM5709S ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M805 Broadcom NetXtreme II BCM5709S) + + pci:v000014E4d0000163Asv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 BCM5709S Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M710 BCM5709S Gigabit Ethernet) + + pci:v000014E4d0000163Asv0000103Csd0000171D* +- ID_MODEL_FROM_DATABASE=NC382m Dual Port 1GbE Multifunction BL-c Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382m Dual Port 1GbE Multifunction BL-c Adapter) + + pci:v000014E4d0000163Asv0000103Csd00007056* +- ID_MODEL_FROM_DATABASE=NC382i Integrated Quad Port PCI Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382i Integrated Quad Port PCI Express Gigabit Server Adapter) + + pci:v000014E4d0000163Asv00001259sd00002984* +- ID_MODEL_FROM_DATABASE=AT-2973SX ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (AT-2973SX) + + pci:v000014E4d0000163B* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet + + pci:v000014E4d0000163Bsv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 BCM5716 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R410 BCM5716 Gigabit Ethernet) + + pci:v000014E4d0000163Bsv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 BCM5716 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge T410 BCM5716 Gigabit Ethernet) + + pci:v000014E4d0000163Bsv00001028sd000002F1* +- ID_MODEL_FROM_DATABASE=PowerEdge R510 BCM5716 Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R510 BCM5716 Gigabit Ethernet) + + pci:v000014E4d0000163C* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716S Gigabit Ethernet +@@ -44028,220 +44028,220 @@ pci:v000014E4d00001644* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet + + pci:v000014E4d00001644sv00001014sd00000277* +- ID_MODEL_FROM_DATABASE=Broadcom Vigil B5700 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom Vigil B5700 1000Base-T) + + pci:v000014E4d00001644sv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) + + pci:v000014E4d00001644sv00001028sd00000106* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) + + pci:v000014E4d00001644sv00001028sd00000109* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000Base-T) + + pci:v000014E4d00001644sv00001028sd0000010A* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000BaseTX) + + pci:v000014E4d00001644sv000010B7sd00001000* +- ID_MODEL_FROM_DATABASE=3C996-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-T 1000Base-T) + + pci:v000014E4d00001644sv000010B7sd00001001* +- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996B-T 1000Base-T) + + pci:v000014E4d00001644sv000010B7sd00001002* +- ID_MODEL_FROM_DATABASE=3C996C-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996C-T 1000Base-T) + + pci:v000014E4d00001644sv000010B7sd00001003* +- ID_MODEL_FROM_DATABASE=3C997-T 1000Base-T Dual Port ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-T 1000Base-T Dual Port) + + pci:v000014E4d00001644sv000010B7sd00001004* +- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-SX 1000Base-SX) + + pci:v000014E4d00001644sv000010B7sd00001005* +- ID_MODEL_FROM_DATABASE=3C997-SX 1000Base-SX Dual Port ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-SX 1000Base-SX Dual Port) + + pci:v000014E4d00001644sv000010B7sd00001008* +- ID_MODEL_FROM_DATABASE=3C942 Gigabit LOM (31X31) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C942 Gigabit LOM (31X31)) + + pci:v000014E4d00001644sv000014E4sd00000002* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) + + pci:v000014E4d00001644sv000014E4sd00000003* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) + + pci:v000014E4d00001644sv000014E4sd00000004* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-T) + + pci:v000014E4d00001644sv000014E4sd00001028* +- ID_MODEL_FROM_DATABASE=NetXtreme 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000BaseTX) + + pci:v000014E4d00001644sv000014E4sd00001644* +- ID_MODEL_FROM_DATABASE=BCM5700 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (BCM5700 1000Base-T) + + pci:v000014E4d00001645* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet + + pci:v000014E4d00001645sv00000E11sd0000007C* +- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) + + pci:v000014E4d00001645sv00000E11sd0000007D* +- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) + + pci:v000014E4d00001645sv00000E11sd00000085* +- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) + + pci:v000014E4d00001645sv00000E11sd00000099* +- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) + + pci:v000014E4d00001645sv00000E11sd0000009A* +- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) + + pci:v000014E4d00001645sv00000E11sd000000C1* +- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) + + pci:v000014E4d00001645sv00001028sd00000121* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Broadcom BCM5701 1000Base-T) + + pci:v000014E4d00001645sv0000103Csd0000128A* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T (HP, OEM 3COM) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T (HP, OEM 3COM)) + + pci:v000014E4d00001645sv0000103Csd0000128B* +- ID_MODEL_FROM_DATABASE=1000Base-SX (PCI) [A7073A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (1000Base-SX (PCI) [A7073A]) + + pci:v000014E4d00001645sv0000103Csd000012A4* +- ID_MODEL_FROM_DATABASE=Core Lan 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core Lan 1000Base-T) + + pci:v000014E4d00001645sv0000103Csd000012C1* +- ID_MODEL_FROM_DATABASE=IOX Core Lan 1000Base-T [A7109AX] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IOX Core Lan 1000Base-T [A7109AX]) + + pci:v000014E4d00001645sv0000103Csd00001300* +- ID_MODEL_FROM_DATABASE=Core LAN/SCSI Combo [A6794A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core LAN/SCSI Combo [A6794A]) + + pci:v000014E4d00001645sv000010A9sd00008010* +- ID_MODEL_FROM_DATABASE=IO9/IO10 Gigabit Ethernet (Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IO9/IO10 Gigabit Ethernet (Copper)) + + pci:v000014E4d00001645sv000010A9sd00008011* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Copper)) + + pci:v000014E4d00001645sv000010A9sd00008012* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Fiber) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Fiber)) + + pci:v000014E4d00001645sv000010B7sd00001004* +- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996-SX 1000Base-SX) + + pci:v000014E4d00001645sv000010B7sd00001006* +- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996B-T 1000Base-T) + + pci:v000014E4d00001645sv000010B7sd00001007* +- ID_MODEL_FROM_DATABASE=3C1000-T 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C1000-T 1000Base-T) + + pci:v000014E4d00001645sv000010B7sd00001008* +- ID_MODEL_FROM_DATABASE=3C940-BR01 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C940-BR01 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000001* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000005* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000006* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00000007* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-SX) + + pci:v000014E4d00001645sv000014E4sd00000008* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001645sv000014E4sd00001645* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet + + pci:v000014E4d00001645sv000014E4sd00008008* +- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) + + pci:v000014E4d00001646* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet + + pci:v000014E4d00001646sv00000E11sd000000BB* +- ID_MODEL_FROM_DATABASE=NC7760 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (NC7760 1000BaseTX) + + pci:v000014E4d00001646sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Broadcom BCM5702 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (Broadcom BCM5702 1000BaseTX) + + pci:v000014E4d00001646sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5702 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (BCM5702 1000BaseTX) + + pci:v000014E4d00001647* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet + + pci:v000014E4d00001647sv00000E11sd00000099* +- ID_MODEL_FROM_DATABASE=NC7780 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7780 1000BaseTX) + + pci:v000014E4d00001647sv00000E11sd0000009A* +- ID_MODEL_FROM_DATABASE=NC7770 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7770 1000BaseTX) + + pci:v000014E4d00001647sv000010A9sd00008010* +- ID_MODEL_FROM_DATABASE=SGI IO9 Gigabit Ethernet (Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (SGI IO9 Gigabit Ethernet (Copper)) + + pci:v000014E4d00001647sv000014E4sd00000009* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001647sv000014E4sd0000000A* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseSX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseSX) + + pci:v000014E4d00001647sv000014E4sd0000000B* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001647sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001647sv000014E4sd0000800A* +- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) + + pci:v000014E4d00001648* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet + + pci:v000014E4d00001648sv00000E11sd000000CF* +- ID_MODEL_FROM_DATABASE=NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv00000E11sd000000D0* +- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv00000E11sd000000D1* +- ID_MODEL_FROM_DATABASE=NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv00001028sd0000014A* +- ID_MODEL_FROM_DATABASE=PowerEdge 1750 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 1750) + + pci:v000014E4d00001648sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Broadcom NetXtreme BCM5704 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 6850 Broadcom NetXtreme BCM5704) + + pci:v000014E4d00001648sv0000103Csd0000310F* +- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d00001648sv000010A9sd00008013* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Copper)) + + pci:v000014E4d00001648sv000010A9sd00008018* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (A330) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (A330)) + + pci:v000014E4d00001648sv000010A9sd0000801A* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (IA-blade) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (IA-blade)) + + pci:v000014E4d00001648sv000010A9sd0000801B* +- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Copper) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Copper)) + + pci:v000014E4d00001648sv000010B7sd00002000* +- ID_MODEL_FROM_DATABASE=3C998-T Dual Port 10/100/1000 PCI-X ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C998-T Dual Port 10/100/1000 PCI-X) + + pci:v000014E4d00001648sv000010B7sd00003000* +- ID_MODEL_FROM_DATABASE=3C999-T Quad Port 10/100/1000 PCI-X ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C999-T Quad Port 10/100/1000 PCI-X) + + pci:v000014E4d00001648sv00001166sd00001648* +- ID_MODEL_FROM_DATABASE=NetXtreme CIOB-E 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NetXtreme CIOB-E 1000Base-T) + + pci:v000014E4d00001648sv00001734sd0000100B* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard LAN ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PRIMERGY RX/TX series onboard LAN) + + pci:v000014E4d00001649* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S_2 Gigabit Ethernet +@@ -44250,46 +44250,46 @@ pci:v000014E4d0000164A* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet + + pci:v000014E4d0000164Asv0000103Csd00001709* +- ID_MODEL_FROM_DATABASE=NC371i Integrated PCI-X Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC371i Integrated PCI-X Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Asv0000103Csd00003070* +- ID_MODEL_FROM_DATABASE=NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Asv0000103Csd00003101* +- ID_MODEL_FROM_DATABASE=NC370T MultifuNCtion Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370T MultifuNCtion Gigabit Server Adapter) + + pci:v000014E4d0000164Asv0000103Csd00003106* +- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164C* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet + + pci:v000014E4d0000164Csv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R900 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge 2970 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd0000020B* +- ID_MODEL_FROM_DATABASE=PowerEdge T605 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge T605 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=PowerEdge R805 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00000223* +- ID_MODEL_FROM_DATABASE=PowerEdge R905 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R905 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv00001028sd00001F12* +- ID_MODEL_FROM_DATABASE=PowerEdge R805/R905 Broadcom NetXtreme II BCM5708 ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805/R905 Broadcom NetXtreme II BCM5708) + + pci:v000014E4d0000164Csv0000103Csd00007037* +- ID_MODEL_FROM_DATABASE=NC373T PCI Express Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373T PCI Express Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Csv0000103Csd00007038* +- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164Csv0000103Csd00007045* +- ID_MODEL_FROM_DATABASE=NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter) + + pci:v000014E4d0000164D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702FE Gigabit Ethernet +@@ -44298,10 +44298,10 @@ pci:v000014E4d0000164E* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] + + pci:v000014E4d0000164Esv0000103Csd0000171C* +- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532m Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d0000164Esv0000103Csd00007058* +- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532i Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d0000164F* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711 10-Gigabit PCIe +@@ -44310,31 +44310,31 @@ pci:v000014E4d00001650* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe + + pci:v000014E4d00001650sv0000103Csd0000171C* +- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532m Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d00001650sv0000103Csd00007058* +- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532i Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v000014E4d00001653* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet + + pci:v000014E4d00001653sv00000E11sd000000E3* +- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (NC7761 Gigabit Server Adapter) + + pci:v000014E4d00001653sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (Primergy Econel 200 D2020 mainboard) + + pci:v000014E4d00001654* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet + + pci:v000014E4d00001654sv00000E11sd000000E3* +- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC7761 Gigabit Server Adapter) + + pci:v000014E4d00001654sv0000103Csd00003100* +- ID_MODEL_FROM_DATABASE=NC1020 ProLiant Gigabit Server Adapter 32 PCI ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC1020 ProLiant Gigabit Server Adapter 32 PCI) + + pci:v000014E4d00001654sv0000103Csd00003226* +- ID_MODEL_FROM_DATABASE=NC150T 4-port Gigabit Combo Switch & Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC150T 4-port Gigabit Combo Switch & Adapter) + + pci:v000014E4d00001655* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5717 Gigabit Ethernet PCIe +@@ -44349,52 +44349,52 @@ pci:v000014E4d00001659* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express + + pci:v000014E4d00001659sv00001014sd000002C6* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (eServer xSeries server mainboard) + + pci:v000014E4d00001659sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge 860) + + pci:v000014E4d00001659sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 Broadcom NetXtreme BCM5721 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge R200 Broadcom NetXtreme BCM5721) + + pci:v000014E4d00001659sv0000103Csd0000170B* +- ID_MODEL_FROM_DATABASE=NC320m PCI Express Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320m PCI Express Dual Port Gigabit Server Adapter) + + pci:v000014E4d00001659sv0000103Csd00007031* +- ID_MODEL_FROM_DATABASE=NC320T PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320T PCIe Gigabit Server Adapter) + + pci:v000014E4d00001659sv0000103Csd00007032* +- ID_MODEL_FROM_DATABASE=NC320i PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320i PCIe Gigabit Server Adapter) + + pci:v000014E4d00001659sv00001734sd00001061* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard LAN ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PRIMERGY RX/TX S2 series onboard LAN) + + pci:v000014E4d0000165A* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express + + pci:v000014E4d0000165Asv00001014sd00000378* +- ID_MODEL_FROM_DATABASE=IBM System x3350 (Machine type 4192) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (IBM System x3350 (Machine type 4192)) + + pci:v000014E4d0000165Asv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 Broadcom NetXtreme 5722 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge R300 Broadcom NetXtreme 5722) + + pci:v000014E4d0000165Asv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 Broadcom NetXtreme 5722 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T300 Broadcom NetXtreme 5722) + + pci:v000014E4d0000165Asv00001028sd00000225* +- ID_MODEL_FROM_DATABASE=PowerEdge T105 Broadcom NetXtreme 5722 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T105 Broadcom NetXtreme 5722) + + pci:v000014E4d0000165Asv0000103Csd00007051* +- ID_MODEL_FROM_DATABASE=NC105i PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105i PCIe Gigabit Server Adapter) + + pci:v000014E4d0000165Asv0000103Csd00007052* +- ID_MODEL_FROM_DATABASE=NC105T PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105T PCIe Gigabit Server Adapter) + + pci:v000014E4d0000165B* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe + + pci:v000014E4d0000165Bsv0000103Csd0000705D* +- ID_MODEL_FROM_DATABASE=NC107i Integrated PCI Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe (NC107i Integrated PCI Express Gigabit Server Adapter) + + pci:v000014E4d0000165C* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5724 Gigabit Ethernet PCIe +@@ -44403,25 +44403,25 @@ pci:v000014E4d0000165D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet + + pci:v000014E4d0000165Dsv00001028sd0000865D* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Latitude D400) + + pci:v000014E4d0000165Dsv000014E4sd0000165D* +- ID_MODEL_FROM_DATABASE=Dell Latitude D600 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Dell Latitude D600) + + pci:v000014E4d0000165E* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet + + pci:v000014E4d0000165Esv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC8000 laptop) + + pci:v000014E4d0000165Esv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC6000 laptop) + + pci:v000014E4d0000165Esv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NX6110/NC6120) + + pci:v000014E4d0000165Esv000010CFsd00001279* +- ID_MODEL_FROM_DATABASE=LifeBook E8010D ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (LifeBook E8010D) + + pci:v000014E4d0000165F* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5720 Gigabit Ethernet PCIe +@@ -44439,7 +44439,7 @@ pci:v000014E4d00001668* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet + + pci:v000014E4d00001668sv0000103Csd00007039* +- ID_MODEL_FROM_DATABASE=NC324i PCIe Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet (NC324i PCIe Dual Port Gigabit Server Adapter) + + pci:v000014E4d00001669* + ID_MODEL_FROM_DATABASE=NetXtreme 5714S Gigabit Ethernet +@@ -44448,7 +44448,7 @@ pci:v000014E4d0000166A* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet + + pci:v000014E4d0000166Asv0000103Csd00007035* +- ID_MODEL_FROM_DATABASE=NC325i Integrated Dual port PCIe Express Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet (NC325i Integrated Dual port PCIe Express Gigabit Server Adapter) + + pci:v000014E4d0000166B* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5780S Gigabit Ethernet +@@ -44472,91 +44472,91 @@ pci:v000014E4d00001677* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express + + pci:v000014E4d00001677sv00001028sd00000176* +- ID_MODEL_FROM_DATABASE=Dimension XPS Gen 4 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension XPS Gen 4) + + pci:v000014E4d00001677sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension 8400) + + pci:v000014E4d00001677sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Optiplex GX280) + + pci:v000014E4d00001677sv00001028sd00000182* +- ID_MODEL_FROM_DATABASE=Latitude D610 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Latitude D610) + + pci:v000014E4d00001677sv00001028sd00000187* +- ID_MODEL_FROM_DATABASE=Precision M70 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision M70) + + pci:v000014E4d00001677sv00001028sd000001A8* +- ID_MODEL_FROM_DATABASE=Precision 380 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision 380) + + pci:v000014E4d00001677sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (OptiPlex GX620) + + pci:v000014E4d00001677sv0000103Csd00003006* +- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (DC7100 SFF(DX878AV)) + + pci:v000014E4d00001677sv00001462sd0000028C* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (915P/G Neo2) + + pci:v000014E4d00001677sv00001734sd0000105D* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Scenic W620) + + pci:v000014E4d00001678* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet + + pci:v000014E4d00001678sv0000103Csd0000703E* +- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) + + pci:v000014E4d00001679* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet + + pci:v000014E4d00001679sv0000103Csd00001707* +- ID_MODEL_FROM_DATABASE=NC326m PCIe Dual Port Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326m PCIe Dual Port Adapter) + + pci:v000014E4d00001679sv0000103Csd0000170C* +- ID_MODEL_FROM_DATABASE=NC325m PCIe Quad Port Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC325m PCIe Quad Port Adapter) + + pci:v000014E4d00001679sv0000103Csd0000703C* +- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) + + pci:v000014E4d0000167A* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express + + pci:v000014E4d0000167Asv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (OptiPlex 745) + + pci:v000014E4d0000167Asv00001028sd000001DE* +- ID_MODEL_FROM_DATABASE=Precision 390 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision 390) + + pci:v000014E4d0000167Asv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (PowerEdge SC440) + + pci:v000014E4d0000167Asv00001028sd00000214* +- ID_MODEL_FROM_DATABASE=Precision T3400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T3400) + + pci:v000014E4d0000167Asv00001028sd0000021E* +- ID_MODEL_FROM_DATABASE=Precision T5400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T5400) + + pci:v000014E4d0000167B* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express + + pci:v000014E4d0000167Bsv0000103Csd0000280A* +- ID_MODEL_FROM_DATABASE=DC5750 Microtower ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express (DC5750 Microtower) + + pci:v000014E4d0000167D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express + + pci:v000014E4d0000167Dsv00001014sd00000577* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad Z60t) + + pci:v000014E4d0000167Dsv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP nx8220 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP nx8220) + + pci:v000014E4d0000167Dsv0000103Csd00000940* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP Compaq nw8240 Mobile Workstation) + + pci:v000014E4d0000167Dsv000017AAsd00002081* +- ID_MODEL_FROM_DATABASE=ThinkPad R60e ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad R60e) + + pci:v000014E4d0000167E* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5751F Fast Ethernet PCI Express +@@ -44592,22 +44592,22 @@ pci:v000014E4d00001688* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet + + pci:v000014E4d00001688sv00001259sd00002708* +- ID_MODEL_FROM_DATABASE=AT-2712 FX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet (AT-2712 FX) + + pci:v000014E4d0000168A* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet + + pci:v000014E4d0000168Asv00001028sd00001F5C* +- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) + + pci:v000014E4d0000168Asv00001028sd00001F5D* +- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) + + pci:v000014E4d0000168Asv00001028sd00001F67* +- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) + + pci:v000014E4d0000168Asv00001028sd00001F68* +- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) + + pci:v000014E4d0000168D* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet +@@ -44616,34 +44616,34 @@ pci:v000014E4d0000168E* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet + + pci:v000014E4d0000168Esv0000103Csd00001798* +- ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (Flex-10 10Gb 2-port 530FLB Adapter [Meru]) + + pci:v000014E4d0000168Esv0000103Csd000017A5* +- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Flex-10 10Gb 2-port 530M Adapter) + + pci:v000014E4d0000168Esv0000103Csd000018D3* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530T Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001930* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001931* +- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP StoreFabric CN1100R Dual Port Converged Network Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001932* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLB Adapter) + + pci:v000014E4d0000168Esv0000103Csd00001933* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534M Adapter) + + pci:v000014E4d0000168Esv0000103Csd0000193A* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) + + pci:v000014E4d0000168Esv0000103Csd00003382* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) + + pci:v000014E4d0000168Esv0000103Csd0000339D* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530SFP+ Adapter) + + pci:v000014E4d00001690* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe +@@ -44652,22 +44652,22 @@ pci:v000014E4d00001691* + ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe + + pci:v000014E4d00001691sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe (XPS 8300) + + pci:v000014E4d00001692* + ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe + + pci:v000014E4d00001692sv00001025sd0000033D* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe (Aspire 7740G) + + pci:v000014E4d00001693* + ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express + + pci:v000014E4d00001693sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (Aspire 5920G) + + pci:v000014E4d00001693sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=6710b ++ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (6710b) + + pci:v000014E4d00001694* + ID_MODEL_FROM_DATABASE=NetLink BCM57790 Gigabit Ethernet PCIe +@@ -44676,10 +44676,10 @@ pci:v000014E4d00001696* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet + + pci:v000014E4d00001696sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (d530 CMT (DG746A)) + + pci:v000014E4d00001696sv000014E4sd0000000D* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (NetXtreme BCM5782 1000Base-T) + + pci:v000014E4d00001698* + ID_MODEL_FROM_DATABASE=NetLink BCM5784M Gigabit Ethernet PCIe +@@ -44697,16 +44697,16 @@ pci:v000014E4d0000169C* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet + + pci:v000014E4d0000169Csv0000103Csd0000308B* +- ID_MODEL_FROM_DATABASE=MX6125 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (MX6125) + + pci:v000014E4d0000169Csv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (NC2400) + + pci:v000014E4d0000169Csv0000144Dsd0000C018* +- ID_MODEL_FROM_DATABASE=X20 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (X20) + + pci:v000014E4d0000169Csv00001462sd0000590C* +- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (KT6 Delta-FIS2R (MS-6590)) + + pci:v000014E4d0000169D* + ID_MODEL_FROM_DATABASE=NetLink BCM5789 Gigabit Ethernet PCI Express +@@ -44721,112 +44721,112 @@ pci:v000014E4d000016A2* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet + + pci:v000014E4d000016A2sv0000103Csd00001916* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630FLB Adapter) + + pci:v000014E4d000016A2sv0000103Csd00001917* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) + + pci:v000014E4d000016A4* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function + + pci:v000014E4d000016A4sv0000103Csd00001916* +- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630FLB Adapter) + + pci:v000014E4d000016A4sv0000103Csd00001917* +- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter ++ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630M Adapter) + + pci:v000014E4d000016A5* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function + + pci:v000014E4d000016A5sv00001028sd00001F5C* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A5sv00001028sd00001F5D* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A5sv00001028sd00001F67* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A5sv00001028sd00001F68* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) + + pci:v000014E4d000016A6* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet + + pci:v000014E4d000016A6sv00000E11sd000000BB* +- ID_MODEL_FROM_DATABASE=NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) + + pci:v000014E4d000016A6sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016A6sv000014E4sd0000000C* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016A6sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016A7* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet + + pci:v000014E4d000016A7sv00000E11sd000000CA* +- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016A7sv00000E11sd000000CB* +- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016A7sv00001014sd0000026F* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (eServer xSeries server mainboard) + + pci:v000014E4d000016A7sv000014E4sd00000009* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016A7sv000014E4sd0000000A* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) + + pci:v000014E4d000016A7sv000014E4sd0000000B* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016A7sv000014E4sd0000800A* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016A8* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet + + pci:v000014E4d000016A8sv0000103Csd0000132B* +- ID_MODEL_FROM_DATABASE=PCI-X 1000Mbps Dual-port Built-in ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (PCI-X 1000Mbps Dual-port Built-in) + + pci:v000014E4d000016A8sv000010A9sd00008014* +- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Fiber) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Fiber)) + + pci:v000014E4d000016A8sv000010A9sd0000801C* +- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Fiber) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Fiber)) + + pci:v000014E4d000016A8sv000010B7sd00002001* +- ID_MODEL_FROM_DATABASE=3C998-SX Dual Port 1000-SX PCI-X ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (3C998-SX Dual Port 1000-SX PCI-X) + + pci:v000014E4d000016A9* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function + + pci:v000014E4d000016A9sv00001028sd00001F5C* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016A9sv00001028sd00001F5D* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016A9sv00001028sd00001F67* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016A9sv00001028sd00001F68* +- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) + + pci:v000014E4d000016AA* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet + + pci:v000014E4d000016AAsv0000103Csd00003102* +- ID_MODEL_FROM_DATABASE=NC370F MultifuNCtion Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370F MultifuNCtion Gigabit Server Adapter) + + pci:v000014E4d000016AAsv0000103Csd0000310C* +- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016AB* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Multi Function +@@ -44838,97 +44838,97 @@ pci:v000014E4d000016ACsv00001014sd00000304* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet + + pci:v000014E4d000016ACsv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Broadcom NetXtreme II BCM5708S ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge 1955 Broadcom NetXtreme II BCM5708S) + + pci:v000014E4d000016ACsv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=PowerEdge M605 Broadcom NetXtreme II BCM5708S ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge M605 Broadcom NetXtreme II BCM5708S) + + pci:v000014E4d000016ACsv0000103Csd00001706* +- ID_MODEL_FROM_DATABASE=NC373m Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373m Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016ACsv0000103Csd00007038* +- ID_MODEL_FROM_DATABASE=NC373i PCI Express Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i PCI Express Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016ACsv0000103Csd0000703B* +- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016ACsv0000103Csd0000703D* +- ID_MODEL_FROM_DATABASE=NC373F PCI Express Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373F PCI Express Multifunction Gigabit Server Adapter) + + pci:v000014E4d000016AD* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function + + pci:v000014E4d000016ADsv0000103Csd00001916* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630FLB Adapter) + + pci:v000014E4d000016ADsv0000103Csd00001917* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630M Adapter) + + pci:v000014E4d000016AE* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function + + pci:v000014E4d000016AEsv0000103Csd00001798* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLB Adapter) + + pci:v000014E4d000016AEsv0000103Csd000017A5* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530M Adapter) + + pci:v000014E4d000016AEsv0000103Csd000018D3* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530T Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001930* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001931* +- ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR CN1100R Dual Port Converged Network Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001932* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLB Adapter) + + pci:v000014E4d000016AEsv0000103Csd00001933* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534M Adapter) + + pci:v000014E4d000016AEsv0000103Csd0000193A* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 533FLR-T Adapter) + + pci:v000014E4d000016AEsv0000103Csd00003382* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter) + + pci:v000014E4d000016AEsv0000103Csd0000339D* +- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530SFP+ Adapter) + + pci:v000014E4d000016AF* + ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function + + pci:v000014E4d000016AFsv0000103Csd00001798* +- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530FLB Adapter) + + pci:v000014E4d000016AFsv0000103Csd000017A5* +- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530M Adapter) + + pci:v000014E4d000016AFsv0000103Csd000018D3* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530T Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001930* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001931* +- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP StoreFabric CN1100R Dual Port Converged Network Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001932* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLB Adapter) + + pci:v000014E4d000016AFsv0000103Csd00001933* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534M Adapter) + + pci:v000014E4d000016AFsv0000103Csd0000193A* +- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) + + pci:v000014E4d000016AFsv0000103Csd00003382* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) + + pci:v000014E4d000016AFsv0000103Csd0000339D* +- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530SFP+ Adapter) + + pci:v000014E4d000016B0* + ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe +@@ -44937,7 +44937,7 @@ pci:v000014E4d000016B1* + ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe + + pci:v000014E4d000016B1sv00001849sd000096B1* +- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard ++ ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe (Z77 Extreme4 motherboard) + + pci:v000014E4d000016B2* + ID_MODEL_FROM_DATABASE=NetLink BCM57791 Gigabit Ethernet PCIe +@@ -44970,37 +44970,37 @@ pci:v000014E4d000016C6* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet + + pci:v000014E4d000016C6sv000010B7sd00001100* +- ID_MODEL_FROM_DATABASE=3C1000B-T 10/100/1000 PCI ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (3C1000B-T 10/100/1000 PCI) + + pci:v000014E4d000016C6sv000014E4sd0000000C* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016C6sv000014E4sd00008009* +- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) + + pci:v000014E4d000016C7* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet + + pci:v000014E4d000016C7sv00000E11sd000000CA* +- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016C7sv00000E11sd000000CB* +- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) + + pci:v000014E4d000016C7sv0000103Csd000012C3* +- ID_MODEL_FROM_DATABASE=Combo FC/GigE-SX [A9782A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-SX [A9782A]) + + pci:v000014E4d000016C7sv0000103Csd000012CA* +- ID_MODEL_FROM_DATABASE=Combo FC/GigE-T [A9784A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-T [A9784A]) + + pci:v000014E4d000016C7sv0000103Csd00001321* +- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Core I/O LAN/SCSI Combo [AB314A]) + + pci:v000014E4d000016C7sv000014E4sd00000009* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) + + pci:v000014E4d000016C7sv000014E4sd0000000A* +- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) + + pci:v000014E4d000016DD* + ID_MODEL_FROM_DATABASE=NetLink BCM5781 Gigabit Ethernet PCI Express +@@ -45015,10 +45015,10 @@ pci:v000014E4d000016FD* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express + + pci:v000014E4d000016FDsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nx9420 Notebook) + + pci:v000014E4d000016FDsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nw8440) + + pci:v000014E4d000016FE* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5753F Fast Ethernet PCI Express +@@ -45027,40 +45027,40 @@ pci:v000014E4d0000170C* + ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX + + pci:v000014E4d0000170Csv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6000 laptop) + + pci:v000014E4d0000170Csv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 700m/710m) + + pci:v000014E4d0000170Csv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 5160) + + pci:v000014E4d0000170Csv00001028sd000001AF* +- ID_MODEL_FROM_DATABASE=Inspiron 6400 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6400) + + pci:v000014E4d0000170Csv00001028sd000001CD* +- ID_MODEL_FROM_DATABASE=Inspiron 9400 Laptop ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 9400 Laptop) + + pci:v000014E4d0000170Csv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (XPS M1210) + + pci:v000014E4d0000170Csv00001028sd000001D8* +- ID_MODEL_FROM_DATABASE=Inspiron E1405 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron E1405) + + pci:v000014E4d0000170Csv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX6110/NC6120) + + pci:v000014E4d0000170Csv0000103Csd000030A2* +- ID_MODEL_FROM_DATABASE=NX7300 laptop ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX7300 laptop) + + pci:v000014E4d0000170Csv000014E4sd0000170C* +- ID_MODEL_FROM_DATABASE=HP Compaq 6720t Mobile Thin Client ++ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (HP Compaq 6720t Mobile Thin Client) + + pci:v000014E4d0000170D* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX + + pci:v000014E4d0000170Dsv00001014sd00000545* +- ID_MODEL_FROM_DATABASE=ThinkPad R40e ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX (ThinkPad R40e) + + pci:v000014E4d0000170E* + ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX +@@ -45072,16 +45072,16 @@ pci:v000014E4d00001713* + ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express + + pci:v000014E4d00001713sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Inspiron 1420) + + pci:v000014E4d00001713sv00001028sd00000209* +- ID_MODEL_FROM_DATABASE=XPS M1330 ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (XPS M1330) + + pci:v000014E4d00001713sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Compaq 6710b) + + pci:v000014E4d00001713sv000017AAsd00003A23* +- ID_MODEL_FROM_DATABASE=IdeaPad S10e ++ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (IdeaPad S10e) + + pci:v000014E4d00003352* + ID_MODEL_FROM_DATABASE=BCM3352 +@@ -45108,16 +45108,16 @@ pci:v000014E4d00004301* + ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller + + pci:v000014E4d00004301sv00001028sd00000407* +- ID_MODEL_FROM_DATABASE=TrueMobile 1180 Onboard WLAN ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (TrueMobile 1180 Onboard WLAN) + + pci:v000014E4d00004301sv00001043sd00000120* +- ID_MODEL_FROM_DATABASE=WL-103b Wireless LAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WL-103b Wireless LAN PC Card) + + pci:v000014E4d00004301sv000016A5sd00001602* +- ID_MODEL_FROM_DATABASE=B-300 802.11b Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (B-300 802.11b Wireless CardBus Adapter) + + pci:v000014E4d00004301sv00001737sd00004301* +- ID_MODEL_FROM_DATABASE=WMP11 v2.7 802.11b Wireless-B PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WMP11 v2.7 802.11b Wireless-B PCI Adapter) + + pci:v000014E4d00004305* + ID_MODEL_FROM_DATABASE=BCM4307 V.90 56k Modem +@@ -45135,85 +45135,85 @@ pci:v000014E4d00004311* + ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN + + pci:v000014E4d00004311sv00001028sd00000007* +- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN Mini-Card) + + pci:v000014E4d00004311sv00001028sd00000008* +- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN ExpressCard ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN ExpressCard) + + pci:v000014E4d00004311sv0000103Csd00001363* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001364* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001365* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001374* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001375* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001376* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001377* +- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd0000137F* +- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) + + pci:v000014E4d00004311sv0000103Csd00001380* +- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) + + pci:v000014E4d00004311sv000014E4sd00004311* +- ID_MODEL_FROM_DATABASE=BCM94311MCG ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM94311MCG) + + pci:v000014E4d00004312* + ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g + + pci:v000014E4d00004312sv00001028sd00000007* +- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN Mini-Card) + + pci:v000014E4d00004312sv00001028sd00000008* +- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN ExpressCard ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN ExpressCard) + + pci:v000014E4d00004312sv0000103Csd0000135A* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd0000135F* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001360* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001361* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001362* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001370* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001371* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001372* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd00001373* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004312sv0000103Csd000030B5* +- ID_MODEL_FROM_DATABASE=Presario V3242AU ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Presario V3242AU) + + pci:v000014E4d00004312sv0000106Bsd00000089* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (AirPort Extreme) + + pci:v000014E4d00004312sv00001371sd0000103C* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11 Multiband-netwerkadapter(6715s) ++ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11 Multiband-netwerkadapter(6715s)) + + pci:v000014E4d00004313* + ID_MODEL_FROM_DATABASE=BCM4311 802.11a +@@ -45222,175 +45222,175 @@ pci:v000014E4d00004315* + ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY + + pci:v000014E4d00004315sv00001028sd0000000B* +- ID_MODEL_FROM_DATABASE=Wireless 1395 WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1395 WLAN Mini-Card) + + pci:v000014E4d00004315sv00001028sd0000000C* +- ID_MODEL_FROM_DATABASE=Wireless 1397 WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1397 WLAN Mini-Card) + + pci:v000014E4d00004315sv0000103Csd0000137C* +- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004315sv0000103Csd0000137D* +- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) + + pci:v000014E4d00004315sv0000103Csd00001507* +- ID_MODEL_FROM_DATABASE=U98Z049.00 Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (U98Z049.00 Wireless Mini PCIe Card) + + pci:v000014E4d00004315sv0000105Bsd0000E003* +- ID_MODEL_FROM_DATABASE=T77H030.00 Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H030.00 Wireless Mini PCIe Card) + + pci:v000014E4d00004315sv0000105Bsd0000E01B* +- ID_MODEL_FROM_DATABASE=T77H106.00 Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H106.00 Wireless Half-size Mini PCIe Card) + + pci:v000014E4d00004318* + ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller + + pci:v000014E4d00004318sv00001028sd00000005* +- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN Mini-PCI Card) + + pci:v000014E4d00004318sv00001028sd00000006* +- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN PC Card) + + pci:v000014E4d00004318sv0000103Csd00001355* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004318sv0000103Csd00001356* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004318sv0000103Csd00001357* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004318sv00001043sd0000100F* +- ID_MODEL_FROM_DATABASE=WL-138G v2 / WL-138gE / WL-100gE ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WL-138G v2 / WL-138gE / WL-100gE) + + pci:v000014E4d00004318sv00001043sd0000120F* +- ID_MODEL_FROM_DATABASE=A6U notebook embedded card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (A6U notebook embedded card) + + pci:v000014E4d00004318sv00001154sd00000355* +- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter) + + pci:v000014E4d00004318sv00001468sd00000311* +- ID_MODEL_FROM_DATABASE=Aspire 3022WLMi, 5024WLMi, 5020 ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Aspire 3022WLMi, 5024WLMi, 5020) + + pci:v000014E4d00004318sv00001468sd00000312* +- ID_MODEL_FROM_DATABASE=TravelMate 2410 ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (TravelMate 2410) + + pci:v000014E4d00004318sv000014E4sd00000449* +- ID_MODEL_FROM_DATABASE=Gateway 7510GX ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Gateway 7510GX) + + pci:v000014E4d00004318sv000016ECsd00000119* +- ID_MODEL_FROM_DATABASE=U.S.Robotics Wireless MAXg PC Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (U.S.Robotics Wireless MAXg PC Card) + + pci:v000014E4d00004318sv00001737sd00000042* +- ID_MODEL_FROM_DATABASE=WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster) + + pci:v000014E4d00004318sv00001737sd00000048* +- ID_MODEL_FROM_DATABASE=WPC54G v3 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54G v3 802.11g Wireless-G Notebook Adapter) + + pci:v000014E4d00004318sv00001737sd00000049* +- ID_MODEL_FROM_DATABASE=WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster) + + pci:v000014E4d00004318sv00001799sd00007000* +- ID_MODEL_FROM_DATABASE=F5D7000 v4000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7000 v4000 Wireless G Desktop Card) + + pci:v000014E4d00004318sv00001799sd00007001* +- ID_MODEL_FROM_DATABASE=F5D7001 v2000 Wireless G Plus Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7001 v2000 Wireless G Plus Desktop Card) + + pci:v000014E4d00004318sv00001799sd00007010* +- ID_MODEL_FROM_DATABASE=F5D7010 v4000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7010 v4000 Wireless G Notebook Card) + + pci:v000014E4d00004318sv00001799sd00007011* +- ID_MODEL_FROM_DATABASE=F5D7011 v2000 High-Speed Mode Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7011 v2000 High-Speed Mode Wireless G Notebook Card) + + pci:v000014E4d00004319* + ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver + + pci:v000014E4d00004319sv00001028sd00000005* +- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN Mini-PCI Card) + + pci:v000014E4d00004319sv00001028sd00000006* +- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN PC Card) + + pci:v000014E4d00004319sv0000103Csd00001358* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004319sv0000103Csd00001359* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004319sv0000103Csd0000135A* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004320* + ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller + + pci:v000014E4d00004320sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN Mini-PCI Card) + + pci:v000014E4d00004320sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN PC Card) + + pci:v000014E4d00004320sv00001028sd00000003* +- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN Mini-PCI Card) + + pci:v000014E4d00004320sv00001028sd00000004* +- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN PC Card) + + pci:v000014E4d00004320sv0000103Csd000012F4* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv0000103Csd000012F8* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv0000103Csd000012FA* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv0000103Csd000012FB* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) + + pci:v000014E4d00004320sv00001043sd0000100F* +- ID_MODEL_FROM_DATABASE=WL-100G ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WL-100G) + + pci:v000014E4d00004320sv00001057sd00007025* +- ID_MODEL_FROM_DATABASE=WN825G ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WN825G) + + pci:v000014E4d00004320sv0000106Bsd0000004E* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (AirPort Extreme) + + pci:v000014E4d00004320sv00001154sd00000330* +- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter) + + pci:v000014E4d00004320sv0000144Fsd00007050* +- ID_MODEL_FROM_DATABASE=eMachines M6805 802.11g Built-in Wireless ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (eMachines M6805 802.11g Built-in Wireless) + + pci:v000014E4d00004320sv0000144Fsd00007051* +- ID_MODEL_FROM_DATABASE=Sonnet Aria Extreme PCI ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Sonnet Aria Extreme PCI) + + pci:v000014E4d00004320sv00001737sd00000013* +- ID_MODEL_FROM_DATABASE=WMP54G v1 802.11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v1 802.11g PCI Adapter) + + pci:v000014E4d00004320sv00001737sd00000014* +- ID_MODEL_FROM_DATABASE=WMP54G v2 802.11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v2 802.11g PCI Adapter) + + pci:v000014E4d00004320sv00001737sd00000015* +- ID_MODEL_FROM_DATABASE=WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster) + + pci:v000014E4d00004320sv00001737sd00004320* +- ID_MODEL_FROM_DATABASE=WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter) + + pci:v000014E4d00004320sv00001799sd00007000* +- ID_MODEL_FROM_DATABASE=F5D7000 v1000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7000 v1000 Wireless G Desktop Card) + + pci:v000014E4d00004320sv00001799sd00007001* +- ID_MODEL_FROM_DATABASE=F5D7001 v1000 Wireless G Plus Desktop Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7001 v1000 Wireless G Plus Desktop Card) + + pci:v000014E4d00004320sv00001799sd00007010* +- ID_MODEL_FROM_DATABASE=F5D7010 v1000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7010 v1000 Wireless G Notebook Card) + + pci:v000014E4d00004320sv00001799sd00007011* +- ID_MODEL_FROM_DATABASE=F5D7011 v1000 High-Speed Mode Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7011 v1000 High-Speed Mode Wireless G Notebook Card) + + pci:v000014E4d00004320sv0000185Fsd00001220* +- ID_MODEL_FROM_DATABASE=TravelMate 290E WLAN Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TravelMate 290E WLAN Mini-PCI Card) + + pci:v000014E4d00004321* + ID_MODEL_FROM_DATABASE=BCM4321 802.11a Wireless Network Controller +@@ -45402,31 +45402,31 @@ pci:v000014E4d00004324* + ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller + + pci:v000014E4d00004324sv00001028sd00000001* +- ID_MODEL_FROM_DATABASE=Truemobile 1400 ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1400) + + pci:v000014E4d00004324sv00001028sd00000002* +- ID_MODEL_FROM_DATABASE=TrueMobile 1400 Dual Band WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (TrueMobile 1400 Dual Band WLAN PC Card) + + pci:v000014E4d00004324sv00001028sd00000003* +- ID_MODEL_FROM_DATABASE=Truemobile 1450 MiniPCI ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1450 MiniPCI) + + pci:v000014E4d00004324sv00001028sd00000004* +- ID_MODEL_FROM_DATABASE=Wireless 1450 Dual Band WLAN PC Card ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Wireless 1450 Dual Band WLAN PC Card) + + pci:v000014E4d00004324sv0000103Csd000012F9* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004324sv0000103Csd000012FC* +- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN ++ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) + + pci:v000014E4d00004325* + ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller + + pci:v000014E4d00004325sv00001414sd00000003* +- ID_MODEL_FROM_DATABASE=Wireless Notebook Adapter MN-720 ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless Notebook Adapter MN-720) + + pci:v000014E4d00004325sv00001414sd00000004* +- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter MN-730 ++ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless PCI Adapter MN-730) + + pci:v000014E4d00004326* + ID_MODEL_FROM_DATABASE=BCM4307 Chipcommon I/O Controller? +@@ -45435,58 +45435,58 @@ pci:v000014E4d00004328* + ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n + + pci:v000014E4d00004328sv00001028sd00000009* +- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-Card) + + pci:v000014E4d00004328sv00001028sd0000000A* +- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-card ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-card) + + pci:v000014E4d00004328sv0000103Csd00001366* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000103Csd00001367* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000103Csd00001368* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000103Csd00001369* +- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) + + pci:v000014E4d00004328sv0000106Bsd00000087* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd00000088* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd0000008B* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd0000008C* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv0000106Bsd00000090* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004328sv000014E4sd00004328* +- ID_MODEL_FROM_DATABASE=BCM4328 802.11a/b/g/n ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (BCM4328 802.11a/b/g/n) + + pci:v000014E4d00004328sv00001737sd00000066* +- ID_MODEL_FROM_DATABASE=WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter) + + pci:v000014E4d00004328sv00001737sd00000068* +- ID_MODEL_FROM_DATABASE=WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard) + + pci:v000014E4d00004329* + ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n + + pci:v000014E4d00004329sv00001385sd00007B00* +- ID_MODEL_FROM_DATABASE=WN511B RangeMax NEXT Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN511B RangeMax NEXT Wireless Notebook Adapter) + + pci:v000014E4d00004329sv00001385sd00007D00* +- ID_MODEL_FROM_DATABASE=WN311B RangeMax Next 270 Mbps Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN311B RangeMax Next 270 Mbps Wireless PCI Adapter) + + pci:v000014E4d00004329sv00001737sd00000058* +- ID_MODEL_FROM_DATABASE=WPC300N v1 Wireless-N Notebook Adapter ++ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WPC300N v1 Wireless-N Notebook Adapter) + + pci:v000014E4d0000432A* + ID_MODEL_FROM_DATABASE=BCM4321 802.11an Wireless Network Controller +@@ -45495,19 +45495,19 @@ pci:v000014E4d0000432B* + ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller + + pci:v000014E4d0000432Bsv00001028sd0000000D* +- ID_MODEL_FROM_DATABASE=Wireless 1510 Wireless-N WLAN Mini-Card ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (Wireless 1510 Wireless-N WLAN Mini-Card) + + pci:v000014E4d0000432Bsv0000106Bsd0000008D* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) + + pci:v000014E4d0000432Bsv0000106Bsd0000008E* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) + + pci:v000014E4d0000432C* + ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n + + pci:v000014E4d0000432Csv00001799sd0000D311* +- ID_MODEL_FROM_DATABASE=Dynex DX-NNBX 802.11n WLAN Cardbus Card ++ ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n (Dynex DX-NNBX 802.11n WLAN Cardbus Card) + + pci:v000014E4d0000432D* + ID_MODEL_FROM_DATABASE=BCM4322 802.11an Wireless Network Controller +@@ -45516,25 +45516,25 @@ pci:v000014E4d00004331* + ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n + + pci:v000014E4d00004331sv0000106Bsd000000D6* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000E4* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000EF* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000F4* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd000000F5* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd0000010E* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004331sv0000106Bsd0000010F* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004333* + ID_MODEL_FROM_DATABASE=Serial (EDGE/GPRS modem part of Option GT Combo Edge) +@@ -45549,25 +45549,25 @@ pci:v000014E4d00004353* + ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n + + pci:v000014E4d00004353sv00001028sd0000000E* +- ID_MODEL_FROM_DATABASE=Wireless 1520 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (Wireless 1520 Half-size Mini PCIe Card) + + pci:v000014E4d00004353sv0000103Csd00001509* +- ID_MODEL_FROM_DATABASE=WMIB-275N Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (WMIB-275N Half-size Mini PCIe Card) + + pci:v000014E4d00004353sv0000106Bsd00000093* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004353sv0000106Bsd000000D1* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004353sv0000106Bsd000000E9* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) + + pci:v000014E4d00004357* + ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n + + pci:v000014E4d00004357sv0000105Bsd0000E021* +- ID_MODEL_FROM_DATABASE=T77H103.00 Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n (T77H103.00 Wireless Half-size Mini PCIe Card) + + pci:v000014E4d00004358* + ID_MODEL_FROM_DATABASE=BCM43227 802.11b/g/n +@@ -45576,16 +45576,16 @@ pci:v000014E4d00004359* + ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n + + pci:v000014E4d00004359sv00001028sd00000011* +- ID_MODEL_FROM_DATABASE=Wireless 1530 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (Wireless 1530 Half-size Mini PCIe Card) + + pci:v000014E4d00004359sv0000103Csd0000182C* +- ID_MODEL_FROM_DATABASE=BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter ++ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) + + pci:v000014E4d00004365* + ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n + + pci:v000014E4d00004365sv00001028sd00000016* +- ID_MODEL_FROM_DATABASE=Wireless 1704 802.11n + BT 4.0 ++ ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n (Wireless 1704 802.11n + BT 4.0) + + pci:v000014E4d000043A0* + ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter +@@ -45597,13 +45597,13 @@ pci:v000014E4d00004401* + ID_MODEL_FROM_DATABASE=BCM4401 100Base-T + + pci:v000014E4d00004401sv00001025sd00000035* +- ID_MODEL_FROM_DATABASE=TravelMate 660 ++ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (TravelMate 660) + + pci:v000014E4d00004401sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (tc1100 tablet) + + pci:v000014E4d00004401sv00001043sd000080A8* +- ID_MODEL_FROM_DATABASE=A7V8X motherboard ++ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (A7V8X motherboard) + + pci:v000014E4d00004402* + ID_MODEL_FROM_DATABASE=BCM4402 Integrated 10/100BaseT +@@ -45696,7 +45696,7 @@ pci:v000014E4d00004727* + ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter + + pci:v000014E4d00004727sv00001028sd00000010* +- ID_MODEL_FROM_DATABASE=Inspiron M5010 / XPS 8300 ++ ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter (Inspiron M5010 / XPS 8300) + + pci:v000014E4d00005365* + ID_MODEL_FROM_DATABASE=BCM5365P Sentry5 Host Bridge +@@ -45867,55 +45867,55 @@ pci:v000014F1d00001033* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v000014F1d00001033sv00001033sd00008077* +- ID_MODEL_FROM_DATABASE=NEC ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (NEC) + + pci:v000014F1d00001033sv0000122Dsd00004027* +- ID_MODEL_FROM_DATABASE=Dell Zeus - MDP3880-W(B) Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Zeus - MDP3880-W(B) Data Fax Modem) + + pci:v000014F1d00001033sv0000122Dsd00004030* +- ID_MODEL_FROM_DATABASE=Dell Mercury - MDP3880-U(B) Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Mercury - MDP3880-U(B) Data Fax Modem) + + pci:v000014F1d00001033sv0000122Dsd00004034* +- ID_MODEL_FROM_DATABASE=Dell Thor - MDP3880-W(U) Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Thor - MDP3880-W(U) Data Fax Modem) + + pci:v000014F1d00001033sv000013E0sd0000020D* +- ID_MODEL_FROM_DATABASE=Dell Copper ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Copper) + + pci:v000014F1d00001033sv000013E0sd0000020E* +- ID_MODEL_FROM_DATABASE=Dell Silver ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Silver) + + pci:v000014F1d00001033sv000013E0sd00000261* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv000013E0sd00000290* +- ID_MODEL_FROM_DATABASE=Compaq Goldwing ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Goldwing) + + pci:v000014F1d00001033sv000013E0sd000002A0* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv000013E0sd000002B0* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv000013E0sd000002C0* +- ID_MODEL_FROM_DATABASE=Compaq Scooter ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Scooter) + + pci:v000014F1d00001033sv000013E0sd000002D0* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001033sv0000144Fsd00001500* +- ID_MODEL_FROM_DATABASE=IBM P85-DF (1) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (1)) + + pci:v000014F1d00001033sv0000144Fsd00001501* +- ID_MODEL_FROM_DATABASE=IBM P85-DF (2) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (2)) + + pci:v000014F1d00001033sv0000144Fsd0000150A* +- ID_MODEL_FROM_DATABASE=IBM P85-DF (3) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (3)) + + pci:v000014F1d00001033sv0000144Fsd0000150B* +- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (1) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (1)) + + pci:v000014F1d00001033sv0000144Fsd00001510* +- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (2) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (2)) + + pci:v000014F1d00001034* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem +@@ -45924,31 +45924,31 @@ pci:v000014F1d00001035* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem + + pci:v000014F1d00001035sv000010CFsd00001098* +- ID_MODEL_FROM_DATABASE=Fujitsu P85-DFSV ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu P85-DFSV) + + pci:v000014F1d00001036* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem + + pci:v000014F1d00001036sv0000104Dsd00008067* +- ID_MODEL_FROM_DATABASE=HCF 56k Modem ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (HCF 56k Modem) + + pci:v000014F1d00001036sv0000122Dsd00004029* +- ID_MODEL_FROM_DATABASE=MDP3880SP-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-W) + + pci:v000014F1d00001036sv0000122Dsd00004031* +- ID_MODEL_FROM_DATABASE=MDP3880SP-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-U) + + pci:v000014F1d00001036sv000013E0sd00000209* +- ID_MODEL_FROM_DATABASE=Dell Titanium ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Titanium) + + pci:v000014F1d00001036sv000013E0sd0000020A* +- ID_MODEL_FROM_DATABASE=Dell Graphite ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Graphite) + + pci:v000014F1d00001036sv000013E0sd00000260* +- ID_MODEL_FROM_DATABASE=Gateway Red Owl ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway Red Owl) + + pci:v000014F1d00001036sv000013E0sd00000270* +- ID_MODEL_FROM_DATABASE=Gateway White Horse ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway White Horse) + + pci:v000014F1d00001052* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Worldwide) +@@ -45966,7 +45966,7 @@ pci:v000014F1d00001056* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) + + pci:v000014F1d00001056sv0000122Dsd00004035* +- ID_MODEL_FROM_DATABASE=MDP3900V-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) (MDP3900V-W) + + pci:v000014F1d00001057* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) +@@ -45987,7 +45987,7 @@ pci:v000014F1d00001066* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem + + pci:v000014F1d00001066sv0000122Dsd00004033* +- ID_MODEL_FROM_DATABASE=Dell Athena - MDP3900V-U ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Athena - MDP3900V-U) + + pci:v000014F1d00001085* + ID_MODEL_FROM_DATABASE=HCF V90 56k Data/Fax/Voice/Spkp PCI Modem +@@ -46011,16 +46011,16 @@ pci:v000014F1d00001453* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem + + pci:v000014F1d00001453sv000013E0sd00000240* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001453sv000013E0sd00000250* +- ID_MODEL_FROM_DATABASE=IBM ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) + + pci:v000014F1d00001453sv0000144Fsd00001502* +- ID_MODEL_FROM_DATABASE=IBM P95-DF (1) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (1)) + + pci:v000014F1d00001453sv0000144Fsd00001503* +- ID_MODEL_FROM_DATABASE=IBM P95-DF (2) ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (2)) + + pci:v000014F1d00001454* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem +@@ -46032,10 +46032,10 @@ pci:v000014F1d00001456* + ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem + + pci:v000014F1d00001456sv0000122Dsd00004035* +- ID_MODEL_FROM_DATABASE=Dell Europa - MDP3900V-W ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Europa - MDP3900V-W) + + pci:v000014F1d00001456sv0000122Dsd00004302* +- ID_MODEL_FROM_DATABASE=Dell MP3930V-W(C) MiniPCI ++ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell MP3930V-W(C) MiniPCI) + + pci:v000014F1d00001610* + ID_MODEL_FROM_DATABASE=ADSL AccessRunner PCI Arbitration Device +@@ -46056,10 +46056,10 @@ pci:v000014F1d00001803* + ID_MODEL_FROM_DATABASE=HCF 56k Modem + + pci:v000014F1d00001803sv00000E11sd00000023* +- ID_MODEL_FROM_DATABASE=623-LAN Grizzly ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Grizzly) + + pci:v000014F1d00001803sv00000E11sd00000043* +- ID_MODEL_FROM_DATABASE=623-LAN Yogi ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Yogi) + + pci:v000014F1d00001811* + ID_MODEL_FROM_DATABASE=MiniPCI Network Adapter +@@ -46068,10 +46068,10 @@ pci:v000014F1d00001815* + ID_MODEL_FROM_DATABASE=HCF 56k Modem + + pci:v000014F1d00001815sv00000E11sd00000022* +- ID_MODEL_FROM_DATABASE=Grizzly ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Grizzly) + + pci:v000014F1d00001815sv00000E11sd00000042* +- ID_MODEL_FROM_DATABASE=Yogi ++ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Yogi) + + pci:v000014F1d00002003* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem +@@ -46089,28 +46089,28 @@ pci:v000014F1d00002013* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem + + pci:v000014F1d00002013sv00000E11sd0000B195* +- ID_MODEL_FROM_DATABASE=Bear ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Bear) + + pci:v000014F1d00002013sv00000E11sd0000B196* +- ID_MODEL_FROM_DATABASE=Seminole 1 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 1) + + pci:v000014F1d00002013sv00000E11sd0000B1BE* +- ID_MODEL_FROM_DATABASE=Seminole 2 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 2) + + pci:v000014F1d00002013sv00001025sd00008013* +- ID_MODEL_FROM_DATABASE=Acer ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Acer) + + pci:v000014F1d00002013sv00001033sd0000809D* +- ID_MODEL_FROM_DATABASE=NEC ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) + + pci:v000014F1d00002013sv00001033sd000080BC* +- ID_MODEL_FROM_DATABASE=NEC ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) + + pci:v000014F1d00002013sv0000155Dsd00006793* +- ID_MODEL_FROM_DATABASE=HP ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (HP) + + pci:v000014F1d00002013sv0000155Dsd00008850* +- ID_MODEL_FROM_DATABASE=E Machines ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (E Machines) + + pci:v000014F1d00002014* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem +@@ -46131,7 +46131,7 @@ pci:v000014F1d00002045* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) + + pci:v000014F1d00002045sv000014F1sd00002045* +- ID_MODEL_FROM_DATABASE=Generic SoftK56 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) (Generic SoftK56) + + pci:v000014F1d00002046* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (WorldW SmartDAA) +@@ -46152,7 +46152,7 @@ pci:v000014F1d00002093* + ID_MODEL_FROM_DATABASE=HSF 56k Modem + + pci:v000014F1d00002093sv0000155Dsd00002F07* +- ID_MODEL_FROM_DATABASE=Legend ++ ID_MODEL_FROM_DATABASE=HSF 56k Modem (Legend) + + pci:v000014F1d00002143* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Cell Modem (Mob WorldW SmartDAA) +@@ -46206,13 +46206,13 @@ pci:v000014F1d00002443* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) + + pci:v000014F1d00002443sv0000104Dsd00008075* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) + + pci:v000014F1d00002443sv0000104Dsd00008083* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) + + pci:v000014F1d00002443sv0000104Dsd00008097* +- ID_MODEL_FROM_DATABASE=Modem ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) + + pci:v000014F1d00002444* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Mob WorldW SmartDAA) +@@ -46239,13 +46239,13 @@ pci:v000014F1d00002F00* + ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem + + pci:v000014F1d00002F00sv000013E0sd00008D84* +- ID_MODEL_FROM_DATABASE=IBM HSFi V.90 ++ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (IBM HSFi V.90) + + pci:v000014F1d00002F00sv000013E0sd00008D85* +- ID_MODEL_FROM_DATABASE=Compaq Stinger ++ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Compaq Stinger) + + pci:v000014F1d00002F00sv000014F1sd00002004* +- ID_MODEL_FROM_DATABASE=Dynalink 56PMi ++ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Dynalink 56PMi) + + pci:v000014F1d00002F02* + ID_MODEL_FROM_DATABASE=HSF 56k HSFi Data/Fax +@@ -46257,16 +46257,16 @@ pci:v000014F1d00002F20* + ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem + + pci:v000014F1d00002F20sv000014F1sd0000200C* +- ID_MODEL_FROM_DATABASE=Soft Data Fax Modem with SmartCP ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Soft Data Fax Modem with SmartCP) + + pci:v000014F1d00002F20sv000014F1sd0000200F* +- ID_MODEL_FROM_DATABASE=Dimension 3000 ++ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Dimension 3000) + + pci:v000014F1d00002F30* + ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP + + pci:v000014F1d00002F30sv000014F1sd00002014* +- ID_MODEL_FROM_DATABASE=Devolo MikroLink 56K Modem PCI ++ ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP (Devolo MikroLink 56K Modem PCI) + + pci:v000014F1d00002F50* + ID_MODEL_FROM_DATABASE=Conexant SoftK56 Data/Fax Modem +@@ -46275,13 +46275,13 @@ pci:v000014F1d00005B7A* + ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder + + pci:v000014F1d00005B7Asv00000070sd00007444* +- ID_MODEL_FROM_DATABASE=WinTV HVR-1600 ++ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinTV HVR-1600) + + pci:v000014F1d00005B7Asv0000107Dsd00006F34* +- ID_MODEL_FROM_DATABASE=WinFast DVR3100 H ++ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinFast DVR3100 H) + + pci:v000014F1d00005B7Asv00005854sd00003343* +- ID_MODEL_FROM_DATABASE=GoTView PCI DVD3 Hybrid ++ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (GoTView PCI DVD3 Hybrid) + + pci:v000014F1d00008200* + ID_MODEL_FROM_DATABASE=CX25850 +@@ -46293,304 +46293,304 @@ pci:v000014F1d00008800* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder + + pci:v000014F1d00008800sv00000070sd00002801* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 28xxx (Roslyn) models) + + pci:v000014F1d00008800sv00000070sd00003400* +- ID_MODEL_FROM_DATABASE=WinTV 34604 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 34604) + + pci:v000014F1d00008800sv00000070sd00003401* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 34xxx models) + + pci:v000014F1d00008800sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-4000-HD) + + pci:v000014F1d00008800sv00000070sd00007801* +- ID_MODEL_FROM_DATABASE=WinTV HVR-1800 MCE ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-1800 MCE) + + pci:v000014F1d00008800sv00000070sd00009001* +- ID_MODEL_FROM_DATABASE=Nova-T DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-T DVB-T) + + pci:v000014F1d00008800sv00000070sd00009200* +- ID_MODEL_FROM_DATABASE=Nova-SE2 DVB-S ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-SE2 DVB-S) + + pci:v000014F1d00008800sv00000070sd00009202* +- ID_MODEL_FROM_DATABASE=Nova-S-Plus DVB-S ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-S-Plus DVB-S) + + pci:v000014F1d00008800sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008800sv00000070sd00009600* +- ID_MODEL_FROM_DATABASE=WinTV 88x Video ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 88x Video) + + pci:v000014F1d00008800sv00000070sd00009802* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid (Low Profile) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid (Low Profile)) + + pci:v000014F1d00008800sv00001002sd000000F8* +- ID_MODEL_FROM_DATABASE=ATI TV Wonder Pro ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) + + pci:v000014F1d00008800sv00001002sd0000A101* +- ID_MODEL_FROM_DATABASE=HDTV Wonder ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) + + pci:v000014F1d00008800sv00001043sd00004823* +- ID_MODEL_FROM_DATABASE=ASUS PVR-416 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ASUS PVR-416) + + pci:v000014F1d00008800sv0000107Dsd00006611* +- ID_MODEL_FROM_DATABASE=Winfast TV 2000XP Expert ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Winfast TV 2000XP Expert) + + pci:v000014F1d00008800sv0000107Dsd00006613* +- ID_MODEL_FROM_DATABASE=Leadtek Winfast 2000XP Expert ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast 2000XP Expert) + + pci:v000014F1d00008800sv0000107Dsd00006620* +- ID_MODEL_FROM_DATABASE=Leadtek Winfast DV2000 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast DV2000) + + pci:v000014F1d00008800sv0000107Dsd0000663C* +- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek PVR 2000) + + pci:v000014F1d00008800sv0000107Dsd0000665F* +- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinFast DTV1000-T) + + pci:v000014F1d00008800sv000010FCsd0000D003* +- ID_MODEL_FROM_DATABASE=IODATA GV-VCP3/PCI ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV-VCP3/PCI) + + pci:v000014F1d00008800sv000010FCsd0000D035* +- ID_MODEL_FROM_DATABASE=IODATA GV/BCTV7E ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV/BCTV7E) + + pci:v000014F1d00008800sv00001421sd00000334* +- ID_MODEL_FROM_DATABASE=Instant TV DVB-T PCI ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Instant TV DVB-T PCI) + + pci:v000014F1d00008800sv00001461sd0000000A* +- ID_MODEL_FROM_DATABASE=AVerTV 303 (M126) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AVerTV 303 (M126)) + + pci:v000014F1d00008800sv00001461sd0000000B* +- ID_MODEL_FROM_DATABASE=AverTV Studio 303 (M126) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AverTV Studio 303 (M126)) + + pci:v000014F1d00008800sv00001461sd00008011* +- ID_MODEL_FROM_DATABASE=UltraTV Media Center PCI 550 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (UltraTV Media Center PCI 550) + + pci:v000014F1d00008800sv00001462sd00008606* +- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (MSI TV-@nywhere Master) + + pci:v000014F1d00008800sv000014C7sd00000107* +- ID_MODEL_FROM_DATABASE=GDI Black Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GDI Black Gold) + + pci:v000014F1d00008800sv000014F1sd00000187* +- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Conexant DVB-T reference design) + + pci:v000014F1d00008800sv000014F1sd00000342* +- ID_MODEL_FROM_DATABASE=Digital-Logic MICROSPACE Entertainment Center (MEC) ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Digital-Logic MICROSPACE Entertainment Center (MEC)) + + pci:v000014F1d00008800sv0000153Bsd00001166* +- ID_MODEL_FROM_DATABASE=Cinergy 1400 DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Cinergy 1400 DVB-T) + + pci:v000014F1d00008800sv00001540sd00002580* +- ID_MODEL_FROM_DATABASE=Provideo PV259 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Provideo PV259) + + pci:v000014F1d00008800sv00001554sd00004811* +- ID_MODEL_FROM_DATABASE=PixelView ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (PixelView) + + pci:v000014F1d00008800sv00001554sd00004813* +- ID_MODEL_FROM_DATABASE=Club 3D ZAP1000 MCE Edition ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Club 3D ZAP1000 MCE Edition) + + pci:v000014F1d00008800sv000017DEsd000008A1* +- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T with cx22702 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T with cx22702) + + pci:v000014F1d00008800sv000017DEsd000008A6* +- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T) + + pci:v000014F1d00008800sv000017DEsd000008B2* +- ID_MODEL_FROM_DATABASE=KWorld DVB-S 100 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld DVB-S 100) + + pci:v000014F1d00008800sv000017DEsd0000A8A6* +- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T) + + pci:v000014F1d00008800sv00001822sd00000025* +- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T Pro ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T Pro) + + pci:v000014F1d00008800sv0000185Bsd0000E000* +- ID_MODEL_FROM_DATABASE=VideoMate X500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (VideoMate X500) + + pci:v000014F1d00008800sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=FusionHDTV 5 Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 5 Gold) + + pci:v000014F1d00008800sv000018ACsd0000D810* +- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-Q ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-Q) + + pci:v000014F1d00008800sv000018ACsd0000D820* +- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-T) + + pci:v000014F1d00008800sv000018ACsd0000DB00* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T1 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T1) + + pci:v000014F1d00008800sv000018ACsd0000DB11* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Plus ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Plus) + + pci:v000014F1d00008800sv000018ACsd0000DB50* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Digital ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Digital) + + pci:v000014F1d00008800sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TV Tuner Card ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GoTView PCI Hybrid TV Tuner Card) + + pci:v000014F1d00008800sv00007063sd00003000* +- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD3000 HDTV) + + pci:v000014F1d00008800sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD-5500) + + pci:v000014F1d00008801* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] + + pci:v000014F1d00008801sv00000070sd00002801* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 28xxx (Roslyn) models) + + pci:v000014F1d00008801sv0000185Bsd0000E000* +- ID_MODEL_FROM_DATABASE=VideoMate X500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (VideoMate X500) + + pci:v000014F1d00008801sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio AVStream Device ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio AVStream Device) + + pci:v000014F1d00008801sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (pcHDTV HD-5500) + + pci:v000014F1d00008802* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] + + pci:v000014F1d00008802sv00000070sd00002801* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Hauppauge WinTV 28xxx (Roslyn) models) + + pci:v000014F1d00008802sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV HVR-4000-HD) + + pci:v000014F1d00008802sv00000070sd00009002* +- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Nova-T DVB-T Model 909) + + pci:v000014F1d00008802sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008802sv00000070sd00009600* +- ID_MODEL_FROM_DATABASE=WinTV 88x MPEG Encoder ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV 88x MPEG Encoder) + + pci:v000014F1d00008802sv00001043sd00004823* +- ID_MODEL_FROM_DATABASE=ASUS PVR-416 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (ASUS PVR-416) + + pci:v000014F1d00008802sv0000107Dsd0000663C* +- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Leadtek PVR 2000) + + pci:v000014F1d00008802sv0000107Dsd0000665F* +- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinFast DTV1000-T) + + pci:v000014F1d00008802sv000014F1sd00000187* +- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Conexant DVB-T reference design) + + pci:v000014F1d00008802sv000017DEsd000008A1* +- ID_MODEL_FROM_DATABASE=XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture) + + pci:v000014F1d00008802sv000017DEsd000008A6* +- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (KWorld/VStream XPert DVB-T) + + pci:v000014F1d00008802sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV5 Gold) + + pci:v000014F1d00008802sv000018ACsd0000D810* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-Q) + + pci:v000014F1d00008802sv000018ACsd0000D820* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-T) + + pci:v000014F1d00008802sv000018ACsd0000DB00* +- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T1) + + pci:v000014F1d00008802sv000018ACsd0000DB10* +- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T Plus ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T Plus) + + pci:v000014F1d00008802sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TS Capture Device ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (GoTView PCI Hybrid TS Capture Device) + + pci:v000014F1d00008802sv00007063sd00003000* +- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD3000 HDTV) + + pci:v000014F1d00008802sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD-5500) + + pci:v000014F1d00008804* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] + + pci:v000014F1d00008804sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV HVR-4000-HD) + + pci:v000014F1d00008804sv00000070sd00009002* +- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (Nova-T DVB-T Model 909) + + pci:v000014F1d00008804sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008804sv00007063sd00005500* +- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (pcHDTV HD-5500) + + pci:v000014F1d00008811* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] + + pci:v000014F1d00008811sv00000070sd00003400* +- ID_MODEL_FROM_DATABASE=WinTV 34604 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 34604) + + pci:v000014F1d00008811sv00000070sd00003401* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 34xxx models) + + pci:v000014F1d00008811sv00000070sd00006902* +- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV HVR-4000-HD) + + pci:v000014F1d00008811sv00000070sd00009402* +- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV-HVR1100 DVB-T/Hybrid) + + pci:v000014F1d00008811sv00000070sd00009600* +- ID_MODEL_FROM_DATABASE=WinTV 88x Audio ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 88x Audio) + + pci:v000014F1d00008811sv00001462sd00008606* +- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (MSI TV-@nywhere Master) + + pci:v000014F1d00008811sv000018ACsd0000D500* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV5 Gold) + + pci:v000014F1d00008811sv000018ACsd0000D810* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-Q) + + pci:v000014F1d00008811sv000018ACsd0000D820* +- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-T) + + pci:v000014F1d00008811sv000018ACsd0000DB00* +- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DVICO FusionHDTV DVB-T1) + + pci:v000014F1d00008811sv00005654sd00002388* +- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio Capture Device ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio Capture Device) + + pci:v000014F1d00008852* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder + + pci:v000014F1d00008852sv00000070sd00008010* +- ID_MODEL_FROM_DATABASE=Hauppauge WinTV HVR-1400 ExpressCard ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) + + pci:v000014F1d00008852sv0000107Dsd00006F22* +- ID_MODEL_FROM_DATABASE=WinFast PxTV1200 ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) + + pci:v000014F1d00008852sv00001461sd0000C039* +- ID_MODEL_FROM_DATABASE=AVerTV Hybrid Express (A577) ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (AVerTV Hybrid Express (A577)) + + pci:v000014F1d00008852sv0000153Bsd0000117E* +- ID_MODEL_FROM_DATABASE=Cinergy T PCIe Dual ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Cinergy T PCIe Dual) + + pci:v000014F1d00008852sv000018ACsd0000DB78* +- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Express ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) + + pci:v000014F1d00008880* + ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb + + pci:v000014F1d00008880sv00000070sd0000C108* +- ID_MODEL_FROM_DATABASE=WinTV-HVR-4400-HD model 1278 ++ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (WinTV-HVR-4400-HD model 1278) + + pci:v000014F1d00008880sv00005654sd00002389* +- ID_MODEL_FROM_DATABASE=GoTView X5 DVD Hybrid PCI-E ++ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 DVD Hybrid PCI-E) + + pci:v000014F1d00008880sv00005654sd00002390* +- ID_MODEL_FROM_DATABASE=GoTView X5 3D HYBRID PCI-E ++ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 3D HYBRID PCI-E) + + pci:v000014F2* + ID_VENDOR_FROM_DATABASE=MOBILITY Electronics +@@ -46842,100 +46842,100 @@ pci:v00001522d00000100* + ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge + + pci:v00001522d00000100sv00001522sd00000200* +- ID_MODEL_FROM_DATABASE=RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000300* +- ID_MODEL_FROM_DATABASE=RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000400* +- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000500* +- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000600* +- ID_MODEL_FROM_DATABASE=RockForce+ 2 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 2 Port V.90 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000700* +- ID_MODEL_FROM_DATABASE=RockForce+ 4 Port V.90 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 4 Port V.90 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000800* +- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem) + + pci:v00001522d00000100sv00001522sd00000C00* +- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) + + pci:v00001522d00000100sv00001522sd00000D00* +- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) + + pci:v00001522d00000100sv00001522sd00001D00* +- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) + + pci:v00001522d00000100sv00001522sd00002000* +- ID_MODEL_FROM_DATABASE=RockForceD1 1 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD1 1 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002100* +- ID_MODEL_FROM_DATABASE=RockForceF1 1 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF1 1 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00002200* +- ID_MODEL_FROM_DATABASE=RockForceD2 2 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD2 2 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002300* +- ID_MODEL_FROM_DATABASE=RockForceF2 2 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF2 2 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00002400* +- ID_MODEL_FROM_DATABASE=RockForceD4 4 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD4 4 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002500* +- ID_MODEL_FROM_DATABASE=RockForceF4 4 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF4 4 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00002600* +- ID_MODEL_FROM_DATABASE=RockForceD8 8 Port V.90 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD8 8 Port V.90 Data Modem) + + pci:v00001522d00000100sv00001522sd00002700* +- ID_MODEL_FROM_DATABASE=RockForceF8 8 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF8 8 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003000* +- ID_MODEL_FROM_DATABASE=IQ Express D1 - 1 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D1 - 1 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003100* +- ID_MODEL_FROM_DATABASE=IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003200* +- ID_MODEL_FROM_DATABASE=IQ Express D2 - 2 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D2 - 2 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003300* +- ID_MODEL_FROM_DATABASE=IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003400* +- ID_MODEL_FROM_DATABASE=IQ Express D4 - 4 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D4 - 4 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003500* +- ID_MODEL_FROM_DATABASE=IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00000100sv00001522sd00003C00* +- ID_MODEL_FROM_DATABASE=IQ Express D8 - 8 Port V.92 Data Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D8 - 8 Port V.92 Data Modem) + + pci:v00001522d00000100sv00001522sd00003D00* +- ID_MODEL_FROM_DATABASE=IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem ++ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem) + + pci:v00001522d00004000* + ID_MODEL_FROM_DATABASE=PCI Express UART + + pci:v00001522d00004000sv00001522sd00004001* +- ID_MODEL_FROM_DATABASE=IQ Express 1-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 1-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004002* +- ID_MODEL_FROM_DATABASE=IQ Express 2-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 2-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004004* +- ID_MODEL_FROM_DATABASE=IQ Express 4-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 4-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004008* +- ID_MODEL_FROM_DATABASE=IQ Express 8-port V.34 Super-G3 Fax ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 8-port V.34 Super-G3 Fax) + + pci:v00001522d00004000sv00001522sd00004100* +- ID_MODEL_FROM_DATABASE=IQ Express SideBand ++ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express SideBand) + + pci:v00001523* + ID_VENDOR_FROM_DATABASE=MUSIC Semiconductors +@@ -46947,7 +46947,7 @@ pci:v00001524d00000510* + ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller + + pci:v00001524d00000510sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller (NX9500) + + pci:v00001524d00000520* + ID_MODEL_FROM_DATABASE=FLASH memory: ENE Technology Inc: +@@ -46986,16 +46986,16 @@ pci:v00001524d00001410* + ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller + + pci:v00001524d00001410sv00001025sd0000003C* +- ID_MODEL_FROM_DATABASE=CL50 motherboard ++ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (CL50 motherboard) + + pci:v00001524d00001410sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (TravelMate 290) + + pci:v00001524d00001411* + ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller + + pci:v00001524d00001411sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller (NX9500) + + pci:v00001524d00001412* + ID_MODEL_FROM_DATABASE=CB-712/4 Cardbus Controller +@@ -47598,7 +47598,7 @@ pci:v000015ADd00000801* + ID_MODEL_FROM_DATABASE=Virtual Machine Interface + + pci:v000015ADd00000801sv000015ADsd00000800* +- ID_MODEL_FROM_DATABASE=Hypervisor ROM Interface ++ ID_MODEL_FROM_DATABASE=Virtual Machine Interface (Hypervisor ROM Interface) + + pci:v000015ADd00001977* + ID_MODEL_FROM_DATABASE=HD Audio Controller +@@ -47748,10 +47748,10 @@ pci:v000015B3d00006746* + ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] + + pci:v000015B3d00006746sv0000103Csd00001781* +- ID_MODEL_FROM_DATABASE=NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter ++ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter) + + pci:v000015B3d00006746sv0000103Csd00003349* +- ID_MODEL_FROM_DATABASE=NC543i 2-port 4xQDR IB/10Gb Adapter ++ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 2-port 4xQDR IB/10Gb Adapter) + + pci:v000015B3d00006750* + ID_MODEL_FROM_DATABASE=MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] +@@ -47763,7 +47763,7 @@ pci:v000015B3d00006764* + ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] + + pci:v000015B3d00006764sv0000103Csd00003313* +- ID_MODEL_FROM_DATABASE=HP NC542m Dual Port Flex-10 10GbE BLc Adapter ++ ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] (HP NC542m Dual Port Flex-10 10GbE BLc Adapter) + + pci:v000015B3d0000676E* + ID_MODEL_FROM_DATABASE=MT26478 [ConnectX EN 40GigE, PCIe 2.0 5GT/s] +@@ -47886,13 +47886,13 @@ pci:v000015BCd00000105* + ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES + + pci:v000015BCd00000105sv0000117Csd00000022* +- ID_MODEL_FROM_DATABASE=Celerity FC-42XS Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42XS Fibre Channel Adapter) + + pci:v000015BCd00000105sv0000117Csd00000025* +- ID_MODEL_FROM_DATABASE=Celerity FC-44ES Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-44ES Fibre Channel Adapter) + + pci:v000015BCd00000105sv0000117Csd00000026* +- ID_MODEL_FROM_DATABASE=Celerity FC-42ES Fibre Channel Adapter ++ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42ES Fibre Channel Adapter) + + pci:v000015BCd00001100* + ID_MODEL_FROM_DATABASE=E8001-66442 PCI Express CIC +@@ -48306,34 +48306,34 @@ pci:v00001657d00000013* + ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA + + pci:v00001657d00000013sv0000103Csd00001742* +- ID_MODEL_FROM_DATABASE=HP 82B 8Gbps dual port FC HBA ++ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 82B 8Gbps dual port FC HBA) + + pci:v00001657d00000013sv0000103Csd00001744* +- ID_MODEL_FROM_DATABASE=HP 42B 4Gbps dual port FC HBA ++ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 42B 4Gbps dual port FC HBA) + + pci:v00001657d00000013sv00001657sd00000014* +- ID_MODEL_FROM_DATABASE=425/825 4Gbps/8Gbps PCIe dual port FC HBA ++ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (425/825 4Gbps/8Gbps PCIe dual port FC HBA) + + pci:v00001657d00000014* + ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA + + pci:v00001657d00000014sv00001657sd00000014* +- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - FCOE ++ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- FCOE) + + pci:v00001657d00000014sv00001657sd00000015* +- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - LL ++ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- LL) + + pci:v00001657d00000017* + ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA + + pci:v00001657d00000017sv0000103Csd00001741* +- ID_MODEL_FROM_DATABASE=HP 41B 4Gbps single port FC HBA ++ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 41B 4Gbps single port FC HBA) + + pci:v00001657d00000017sv0000103Csd00001743* +- ID_MODEL_FROM_DATABASE=HP 81B 8Gbps single port FC HBA ++ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 81B 8Gbps single port FC HBA) + + pci:v00001657d00000017sv00001657sd00000014* +- ID_MODEL_FROM_DATABASE=415/815 4Gbps/8Gbps single port PCIe FC HBA ++ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (415/815 4Gbps/8Gbps single port PCIe FC HBA) + + pci:v00001657d00000021* + ID_MODEL_FROM_DATABASE=804 8Gbps FC HBA for HP Bladesystem c-class +@@ -48342,13 +48342,13 @@ pci:v00001657d00000022* + ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter + + pci:v00001657d00000022sv00001657sd00000022* +- ID_MODEL_FROM_DATABASE=10Gbps CNA - FCOE ++ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - FCOE) + + pci:v00001657d00000022sv00001657sd00000023* +- ID_MODEL_FROM_DATABASE=10Gbps CNA - LL ++ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - LL) + + pci:v00001657d00000022sv00001657sd00000024* +- ID_MODEL_FROM_DATABASE=16Gbps FC HBA ++ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (16Gbps FC HBA) + + pci:v00001657d00000023* + ID_MODEL_FROM_DATABASE=1867/1869 16Gbps FC HBA +@@ -48435,10 +48435,10 @@ pci:v0000167Bd00002102* + ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 + + pci:v0000167Bd00002102sv0000187Esd00003406* +- ID_MODEL_FROM_DATABASE=ZyAIR B-122 CardBus 11Mbs Wireless LAN Card ++ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-122 CardBus 11Mbs Wireless LAN Card) + + pci:v0000167Bd00002102sv0000187Esd00003407* +- ID_MODEL_FROM_DATABASE=ZyAIR B-320 802.11b Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-320 802.11b Wireless PCI Adapter) + + pci:v0000167Bd00002116* + ID_MODEL_FROM_DATABASE=ZD1212B Wireless Adapter +@@ -48471,16 +48471,16 @@ pci:v0000168Cd00000007* + ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] + + pci:v0000168Cd00000007sv00001737sd00000007* +- ID_MODEL_FROM_DATABASE=WPC54A Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (WPC54A Wireless PC Card) + + pci:v0000168Cd00000007sv00001B47sd00000100* +- ID_MODEL_FROM_DATABASE=Harmony 8450CN Wireless CardBus Module ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Harmony 8450CN Wireless CardBus Module) + + pci:v0000168Cd00000007sv00001B47sd00000110* +- ID_MODEL_FROM_DATABASE=Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter) + + pci:v0000168Cd00000007sv00008086sd00002501* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 5000 LAN PCI Adapter Module ++ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (PRO/Wireless 5000 LAN PCI Adapter Module) + + pci:v0000168Cd00000011* + ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001A 802.11a] +@@ -48489,562 +48489,562 @@ pci:v0000168Cd00000012* + ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] + + pci:v0000168Cd00000012sv00001186sd00003A03* +- ID_MODEL_FROM_DATABASE=AirPro DWL-A650 Wireless Cardbus Adapter (rev.B) ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-A650 Wireless Cardbus Adapter (rev.B)) + + pci:v0000168Cd00000012sv00001186sd00003A04* +- ID_MODEL_FROM_DATABASE=AirPro DWL-AB650 Multimode Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB650 Multimode Wireless Cardbus Adapter) + + pci:v0000168Cd00000012sv00001186sd00003A05* +- ID_MODEL_FROM_DATABASE=AirPro DWL-AB520 Multimode Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB520 Multimode Wireless PCI Adapter) + + pci:v0000168Cd00000012sv0000126Csd00008031* +- ID_MODEL_FROM_DATABASE=2201 Mobile Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (2201 Mobile Adapter) + + pci:v0000168Cd00000012sv00001385sd00004400* +- ID_MODEL_FROM_DATABASE=WAB501 802.11ab Wireless CardBus Card ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (WAB501 802.11ab Wireless CardBus Card) + + pci:v0000168Cd00000012sv00001B47sd0000AA00* +- ID_MODEL_FROM_DATABASE=8460 802.11ab Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (8460 802.11ab Wireless CardBus Adapter) + + pci:v0000168Cd00000013* + ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter + + pci:v0000168Cd00000013sv00000308sd00003402* +- ID_MODEL_FROM_DATABASE=AG-100 802.11ag Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AG-100 802.11ag Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00000308sd00003405* +- ID_MODEL_FROM_DATABASE=G-102 v2 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-102 v2 802.11g Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00000308sd00003408* +- ID_MODEL_FROM_DATABASE=G-170S 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-170S 802.11g Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv00000E11sd000000E5* +- ID_MODEL_FROM_DATABASE=NC6000/NC8000 laptop ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (NC6000/NC8000 laptop) + + pci:v0000168Cd00000013sv000010B7sd00006002* +- ID_MODEL_FROM_DATABASE=3CRWE154A72 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRWE154A72 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv00001113sd0000D301* +- ID_MODEL_FROM_DATABASE=Philips CPWNA100 Wireless CardBus adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Philips CPWNA100 Wireless CardBus adapter) + + pci:v0000168Cd00000013sv00001113sd0000EE23* +- ID_MODEL_FROM_DATABASE=SMCWPCIT-G 108Mbps Wireless PCI adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (SMCWPCIT-G 108Mbps Wireless PCI adapter) + + pci:v0000168Cd00000013sv00001154sd0000033B* +- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AMG54 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AMG54) + + pci:v0000168Cd00000013sv00001154sd0000034E* +- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003202* +- ID_MODEL_FROM_DATABASE=DWL-G650 (Rev B3,B5) Wireless cardbus adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650 (Rev B3,B5) Wireless cardbus adapter) + + pci:v0000168Cd00000013sv00001186sd00003203* +- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. A) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) + + pci:v0000168Cd00000013sv00001186sd00003A07* +- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG650 Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A08* +- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG520 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG520 Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A12* +- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C)) + + pci:v0000168Cd00000013sv00001186sd00003A13* +- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. B) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. B)) + + pci:v0000168Cd00000013sv00001186sd00003A14* +- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A)) + + pci:v0000168Cd00000013sv00001186sd00003A17* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G680 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G680 Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A18* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G550 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G550 Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A1A* +- ID_MODEL_FROM_DATABASE=WNA-2330 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WNA-2330 802.11bg Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A63* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003A93* +- ID_MODEL_FROM_DATABASE=Conceptronic C54I Wireless 801.11g PCI card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54I Wireless 801.11g PCI card) + + pci:v0000168Cd00000013sv00001186sd00003A94* +- ID_MODEL_FROM_DATABASE=Conceptronic C54C 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54C 802.11g Wireless Cardbus Adapter) + + pci:v0000168Cd00000013sv00001186sd00003AB0* +- ID_MODEL_FROM_DATABASE=Allnet ALL0281 Wireless PCI Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Allnet ALL0281 Wireless PCI Card) + + pci:v0000168Cd00000013sv00001385sd00004600* +- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) + + pci:v0000168Cd00000013sv00001385sd00004610* +- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) + + pci:v0000168Cd00000013sv00001385sd00004900* +- ID_MODEL_FROM_DATABASE=WG311v1 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311v1 802.11g Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001385sd00004A00* +- ID_MODEL_FROM_DATABASE=WAG311 802.11a/g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG311 802.11a/g Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001385sd00004B00* +- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.A/B) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.A/B)) + + pci:v0000168Cd00000013sv00001385sd00004D00* +- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A2) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A2)) + + pci:v0000168Cd00000013sv00001385sd00004F00* +- ID_MODEL_FROM_DATABASE=WG511U Double 108 Mbps Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511U Double 108 Mbps Wireless PC Card) + + pci:v0000168Cd00000013sv00001385sd00005A00* +- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A3) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A3)) + + pci:v0000168Cd00000013sv00001385sd00005B00* +- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.C) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.C)) + + pci:v0000168Cd00000013sv00001385sd00005D00* +- ID_MODEL_FROM_DATABASE=WPN511 RangeMax Wireless PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPN511 RangeMax Wireless PC Card) + + pci:v0000168Cd00000013sv00001458sd0000E911* +- ID_MODEL_FROM_DATABASE=GN-WIAG02 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (GN-WIAG02) + + pci:v0000168Cd00000013sv00001468sd00000403* +- ID_MODEL_FROM_DATABASE=U10H014 802.11g Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (U10H014 802.11g Cardbus Adapter) + + pci:v0000168Cd00000013sv00001468sd00000408* +- ID_MODEL_FROM_DATABASE=ThinkPad 11b/g Wireless LAN Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (ThinkPad 11b/g Wireless LAN Mini PCI Adapter) + + pci:v0000168Cd00000013sv000014B7sd00000A10* +- ID_MODEL_FROM_DATABASE=8480-WD 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8480-WD 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv000014B7sd00000A60* +- ID_MODEL_FROM_DATABASE=8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter) + + pci:v0000168Cd00000013sv000014B7sd0000AA30* +- ID_MODEL_FROM_DATABASE=8800-FC 802.11bg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8800-FC 802.11bg Cardbus Adapter) + + pci:v0000168Cd00000013sv000014B7sd0000AA40* +- ID_MODEL_FROM_DATABASE=8470-WD 802.11bg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8470-WD 802.11bg Cardbus Adapter) + + pci:v0000168Cd00000013sv000014B9sd0000CB21* +- ID_MODEL_FROM_DATABASE=CB21 802.11a/b/g Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CB21 802.11a/b/g Cardbus Adapter) + + pci:v0000168Cd00000013sv00001668sd00001026* +- ID_MODEL_FROM_DATABASE=IBM HighRate 11 a/b/g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (IBM HighRate 11 a/b/g Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00000013* +- ID_MODEL_FROM_DATABASE=AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001025* +- ID_MODEL_FROM_DATABASE=DWL-G650B2 Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650B2 Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001027* +- ID_MODEL_FROM_DATABASE=Engenius NL-3054CB ARIES b/g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius NL-3054CB ARIES b/g CardBus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001042* +- ID_MODEL_FROM_DATABASE=Ubiquiti Networks SuperRange a/b/g Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Ubiquiti Networks SuperRange a/b/g Cardbus Adapter) + + pci:v0000168Cd00000013sv0000168Csd00001051* +- ID_MODEL_FROM_DATABASE=EZ Connect g 802.11g 108Mbps Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (EZ Connect g 802.11g 108Mbps Wireless PCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002026* +- ID_MODEL_FROM_DATABASE=Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002027* +- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A) ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) + + pci:v0000168Cd00000013sv0000168Csd00002041* +- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002042* +- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000168Csd00002051* +- ID_MODEL_FROM_DATABASE=TRENDnet TEW-443PI Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (TRENDnet TEW-443PI Wireless PCI Adapter) + + pci:v0000168Cd00000013sv000016A5sd0000160A* +- ID_MODEL_FROM_DATABASE=BWP712 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (BWP712 802.11bg Wireless CardBus Adapter) + + pci:v0000168Cd00000013sv000016ABsd00007302* +- ID_MODEL_FROM_DATABASE=Trust Speedshare Turbo Pro Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Trust Speedshare Turbo Pro Wireless PCI Adapter) + + pci:v0000168Cd00000013sv00001737sd00000017* +- ID_MODEL_FROM_DATABASE=WPC55AG ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG) + + pci:v0000168Cd00000013sv00001737sd00000026* +- ID_MODEL_FROM_DATABASE=WMP55AG v1.1 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.1) + + pci:v0000168Cd00000013sv00001737sd00000035* +- ID_MODEL_FROM_DATABASE=WPC55AG v1.2 802.11abg Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG v1.2 802.11abg Cardbus Adapter) + + pci:v0000168Cd00000013sv00001737sd00000036* +- ID_MODEL_FROM_DATABASE=WMP55AG v1.2 802.11abg PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.2 802.11abg PCI Adapter) + + pci:v0000168Cd00000013sv00001799sd00003000* +- ID_MODEL_FROM_DATABASE=F6D3000 Dual-Band Wireless A+G Desktop Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3000 Dual-Band Wireless A+G Desktop Card) + + pci:v0000168Cd00000013sv00001799sd00003010* +- ID_MODEL_FROM_DATABASE=F6D3010 Dual-Band Wireless A+G Notebook Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3010 Dual-Band Wireless A+G Notebook Card) + + pci:v0000168Cd00000013sv000017CFsd00000042* +- ID_MODEL_FROM_DATABASE=Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter) + + pci:v0000168Cd00000013sv0000185Fsd00001012* +- ID_MODEL_FROM_DATABASE=CM9 Wireless a/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CM9 Wireless a/b/g MiniPCI Adapter) + + pci:v0000168Cd00000013sv0000185Fsd00002012* +- ID_MODEL_FROM_DATABASE=Wistron NeWeb WLAN a+b+g model CB9 ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Wistron NeWeb WLAN a+b+g model CB9) + + pci:v0000168Cd00000013sv0000A727sd00006801* +- ID_MODEL_FROM_DATABASE=3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card ++ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card) + + pci:v0000168Cd0000001A* + ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] + + pci:v0000168Cd0000001Asv00001052sd0000168C* +- ID_MODEL_FROM_DATABASE=Sweex Wireless Lan PC Card 54Mbps ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Sweex Wireless Lan PC Card 54Mbps) + + pci:v0000168Cd0000001Asv00001113sd0000EE20* +- ID_MODEL_FROM_DATABASE=SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU)) + + pci:v0000168Cd0000001Asv00001113sd0000EE24* +- ID_MODEL_FROM_DATABASE=SMC Wireless PCI Card WPCI-G ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless PCI Card WPCI-G) + + pci:v0000168Cd0000001Asv00001186sd00003A15* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1)) + + pci:v0000168Cd0000001Asv00001186sd00003A16* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless PCI Adapter(rev.B) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G510 Wireless PCI Adapter(rev.B)) + + pci:v0000168Cd0000001Asv00001186sd00003A1C* +- ID_MODEL_FROM_DATABASE=WNA-1330 Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WNA-1330 Notebook Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003A1D* +- ID_MODEL_FROM_DATABASE=WDA-1320 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WDA-1320 Desktop Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003A23* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G520+A Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G520+A Wireless PCI Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003A24* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G650+A Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G650+A Wireless Cardbus Adapter) + + pci:v0000168Cd0000001Asv00001186sd00003B08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1) ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1)) + + pci:v0000168Cd0000001Asv0000168Csd0000001A* +- ID_MODEL_FROM_DATABASE=Belkin FD7000 ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Belkin FD7000) + + pci:v0000168Cd0000001Asv0000168Csd00001052* +- ID_MODEL_FROM_DATABASE=TP-Link TL-WN510G Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (TP-Link TL-WN510G Wireless CardBus Adapter) + + pci:v0000168Cd0000001Asv0000168Csd00002052* +- ID_MODEL_FROM_DATABASE=Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G] ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G]) + + pci:v0000168Cd0000001Asv000016ECsd00000122* +- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter Model 5418 ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Wireless PCI Adapter Model 5418) + + pci:v0000168Cd0000001Asv00001737sd00000053* +- ID_MODEL_FROM_DATABASE=WPC54G v7 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WPC54G v7 802.11g Wireless-G Notebook Adapter) + + pci:v0000168Cd0000001Asv00001799sd0000700C* +- ID_MODEL_FROM_DATABASE=F5D7000 v5000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7000 v5000 Wireless G Desktop Card) + + pci:v0000168Cd0000001Asv00001799sd0000701D* +- ID_MODEL_FROM_DATABASE=F5D7010 v5000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7010 v5000 Wireless G Notebook Card) + + pci:v0000168Cd0000001Asv000017F9sd00000008* +- ID_MODEL_FROM_DATABASE=DX-WGNBC 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGNBC 802.11bg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Asv000017F9sd00000018* +- ID_MODEL_FROM_DATABASE=DX-WGDTC 802.11bg Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGDTC 802.11bg Wireless PCI Adapter) + + pci:v0000168Cd0000001B* + ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] + + pci:v0000168Cd0000001Bsv00000777sd00001107* +- ID_MODEL_FROM_DATABASE=UB5 802.11a Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (UB5 802.11a Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00000777sd00003002* +- ID_MODEL_FROM_DATABASE=XR2 802.11g Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR2 802.11g Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00000777sd00003005* +- ID_MODEL_FROM_DATABASE=XR5 802.11a Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR5 802.11a Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00000777sd00003009* +- ID_MODEL_FROM_DATABASE=XR9 900MHz Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR9 900MHz Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv00001154sd0000034E* +- ID_MODEL_FROM_DATABASE=WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Bsv00001186sd00003A19* +- ID_MODEL_FROM_DATABASE=D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter) + + pci:v0000168Cd0000001Bsv00001186sd00003A22* +- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B) ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B)) + + pci:v0000168Cd0000001Bsv000011ADsd00005001* +- ID_MODEL_FROM_DATABASE=WN5301A 802.11bg Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WN5301A 802.11bg Wireless PCI Adapter) + + pci:v0000168Cd0000001Bsv00001458sd0000E901* +- ID_MODEL_FROM_DATABASE=GN-WI01HT Wireless a/b/g MiniPCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (GN-WI01HT Wireless a/b/g MiniPCI Adapter) + + pci:v0000168Cd0000001Bsv0000168Csd0000001B* +- ID_MODEL_FROM_DATABASE=Wireless LAN PCI LiteOn ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless LAN PCI LiteOn) + + pci:v0000168Cd0000001Bsv0000168Csd00001062* +- ID_MODEL_FROM_DATABASE=IPN-W100CB 802.11abg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (IPN-W100CB 802.11abg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Bsv0000168Csd00002062* +- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG) ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG)) + + pci:v0000168Cd0000001Bsv0000168Csd00002063* +- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG) + + pci:v0000168Cd0000001Bsv000017F9sd0000000B* +- ID_MODEL_FROM_DATABASE=WL-711A 802.11abg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WL-711A 802.11abg Wireless CardBus Adapter) + + pci:v0000168Cd0000001Bsv000017F9sd0000000C* +- ID_MODEL_FROM_DATABASE=WPIA-112AG 802.11abg Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WPIA-112AG 802.11abg Wireless PCI Adapter) + + pci:v0000168Cd0000001Bsv000017F9sd0000000D* +- ID_MODEL_FROM_DATABASE=PC-686X 802.11abg Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (PC-686X 802.11abg Wireless Mini PCI Adapter) + + pci:v0000168Cd0000001Bsv0000185Fsd00001600* +- ID_MODEL_FROM_DATABASE=DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW) ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)) + + pci:v0000168Cd0000001Bsv00001948sd00003ABA* +- ID_MODEL_FROM_DATABASE=RBTBJ-AW 802.11abg Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (RBTBJ-AW 802.11abg Wireless Cardbus Adapter) + + pci:v0000168Cd0000001Bsv0000A727sd00006804* +- ID_MODEL_FROM_DATABASE=Wireless 11a/b/g PC Card with XJACK(r) Antenna ++ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless 11a/b/g PC Card with XJACK(r) Antenna) + + pci:v0000168Cd0000001C* + ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) + + pci:v0000168Cd0000001Csv00000777sd00003006* +- ID_MODEL_FROM_DATABASE=SRX 802.11abg Wireless ExpressCard Adapter ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (SRX 802.11abg Wireless ExpressCard Adapter) + + pci:v0000168Cd0000001Csv0000103Csd0000137A* +- ID_MODEL_FROM_DATABASE=AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC) + + pci:v0000168Cd0000001Csv0000106Bsd00000086* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPort Extreme) + + pci:v0000168Cd0000001Csv0000144Fsd00007106* +- ID_MODEL_FROM_DATABASE=WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card) + + pci:v0000168Cd0000001Csv0000144Fsd00007128* +- ID_MODEL_FROM_DATABASE=WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card) + + pci:v0000168Cd0000001Csv00001468sd00000428* +- ID_MODEL_FROM_DATABASE=AR5BXB63 802.11bg NIC ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 802.11bg NIC) + + pci:v0000168Cd0000001Csv00001468sd0000042A* +- ID_MODEL_FROM_DATABASE=AR5007EG 802.11bg NIC ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5007EG 802.11bg NIC) + + pci:v0000168Cd0000001Csv0000147Bsd00001033* +- ID_MODEL_FROM_DATABASE=AirPace Wi-Fi ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPace Wi-Fi) + + pci:v0000168Cd0000001Csv0000168Csd0000001C* +- ID_MODEL_FROM_DATABASE=AR242x 802.11abg NIC (PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg NIC (PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003061* +- ID_MODEL_FROM_DATABASE=AR5006EGS 802.11bg NIC (2.4GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EGS 802.11bg NIC (2.4GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003062* +- ID_MODEL_FROM_DATABASE=AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003063* +- ID_MODEL_FROM_DATABASE=AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003065* +- ID_MODEL_FROM_DATABASE=AR5006EG 802.11bg NIC (2.4GHz, PCI Express) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EG 802.11bg NIC (2.4GHz, PCI Express)) + + pci:v0000168Cd0000001Csv0000168Csd00003067* +- ID_MODEL_FROM_DATABASE=AR242x 802.11abg Wireless PCI Express Adapter (rev 01) ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg Wireless PCI Express Adapter (rev 01)) + + pci:v0000168Cd0000001Csv00001A3Bsd00001026* +- ID_MODEL_FROM_DATABASE=AW-GE780 802.11bg Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AW-GE780 802.11bg Wireless Mini PCIe Card) + + pci:v0000168Cd0000001D* + ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] + + pci:v0000168Cd0000001Dsv00001799sd0000720B* +- ID_MODEL_FROM_DATABASE=F5D7000 v8000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7000 v8000 Wireless G Desktop Card) + + pci:v0000168Cd0000001Dsv00001799sd0000721B* +- ID_MODEL_FROM_DATABASE=F5D7010 v8000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7010 v8000 Wireless G Notebook Card) + + pci:v0000168Cd00000020* + ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC + + pci:v0000168Cd00000020sv00000308sd00003407* +- ID_MODEL_FROM_DATABASE=M-102 802.11g Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-102 802.11g Wireless Cardbus Adapter) + + pci:v0000168Cd00000020sv00001186sd00003A67* +- ID_MODEL_FROM_DATABASE=DWL-G650M Super G MIMO Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G650M Super G MIMO Wireless Notebook Adapter) + + pci:v0000168Cd00000020sv00001186sd00003A68* +- ID_MODEL_FROM_DATABASE=DWL-G520M Wireless 108G MIMO Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G520M Wireless 108G MIMO Desktop Adapter) + + pci:v0000168Cd00000020sv0000187Esd0000340E* +- ID_MODEL_FROM_DATABASE=M-302 802.11g Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-302 802.11g Wireless PCI Adapter) + + pci:v0000168Cd00000020sv00001976sd00002003* +- ID_MODEL_FROM_DATABASE=TEW-601PC 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (TEW-601PC 802.11g Wireless CardBus Adapter) + + pci:v0000168Cd00000023* + ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] + + pci:v0000168Cd00000023sv00000308sd0000340B* +- ID_MODEL_FROM_DATABASE=NWD-170N 802.11bgn Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-170N 802.11bgn Wireless CardBus Adapter) + + pci:v0000168Cd00000023sv00001154sd00000365* +- ID_MODEL_FROM_DATABASE=Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter) + + pci:v0000168Cd00000023sv00001154sd00000367* +- ID_MODEL_FROM_DATABASE=WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter) + + pci:v0000168Cd00000023sv00001186sd00003A6A* +- ID_MODEL_FROM_DATABASE=DWA-642 802.11n RangeBooster N CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-642 802.11n RangeBooster N CardBus Adapter) + + pci:v0000168Cd00000023sv00001186sd00003A6B* +- ID_MODEL_FROM_DATABASE=DWA-547 802.11n RangeBooster N 650 DeskTop Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-547 802.11n RangeBooster N 650 DeskTop Adapter) + + pci:v0000168Cd00000023sv00001186sd00003A6D* +- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A1) ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-552 802.11n Xtreme N Desktop Adapter (rev A1)) + + pci:v0000168Cd00000023sv00001186sd00003A76* +- ID_MODEL_FROM_DATABASE=DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1) ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1)) + + pci:v0000168Cd00000023sv00001737sd00000059* +- ID_MODEL_FROM_DATABASE=WPC300N v2 Wireless-N Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC300N v2 Wireless-N Notebook Adapter) + + pci:v0000168Cd00000023sv00001737sd00000069* +- ID_MODEL_FROM_DATABASE=WPC100 v1 802.11n RangePlus Wireless Notebook Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC100 v1 802.11n RangePlus Wireless Notebook Adapter) + + pci:v0000168Cd00000023sv00001737sd00000072* +- ID_MODEL_FROM_DATABASE=WMP110 v1 802.11n RangePlus Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WMP110 v1 802.11n RangePlus Wireless PCI Adapter) + + pci:v0000168Cd00000023sv00001799sd00008011* +- ID_MODEL_FROM_DATABASE=F5D8011 v1 802.11n N1 Wireless Notebook Card ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (F5D8011 v1 802.11n N1 Wireless Notebook Card) + + pci:v0000168Cd00000023sv0000187Esd00003411* +- ID_MODEL_FROM_DATABASE=NWD-370N 802.11n Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-370N 802.11n Wireless PCI Adapter) + + pci:v0000168Cd00000023sv00001976sd00002008* +- ID_MODEL_FROM_DATABASE=TEW-621PC 802.11bgn Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (TEW-621PC 802.11bgn Wireless CardBus Adapter) + + pci:v0000168Cd00000024* + ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) + + pci:v0000168Cd00000024sv0000106Bsd00000087* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (AirPort Extreme) + + pci:v0000168Cd00000024sv00001186sd00003A70* +- ID_MODEL_FROM_DATABASE=DWA-556 Xtreme N PCI Express Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (DWA-556 Xtreme N PCI Express Desktop Adapter) + + pci:v0000168Cd00000027* + ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] + + pci:v0000168Cd00000027sv00000777sd00004082* +- ID_MODEL_FROM_DATABASE=SR71-A 802.11abgn Wireless Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] (SR71-A 802.11abgn Wireless Mini PCI Adapter) + + pci:v0000168Cd00000029* + ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter + + pci:v0000168Cd00000029sv00000777sd00004005* +- ID_MODEL_FROM_DATABASE=SR71-15 802.11an Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (SR71-15 802.11an Mini PCI Adapter) + + pci:v0000168Cd00000029sv00001186sd00003A7A* +- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A2) ++ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A2)) + + pci:v0000168Cd00000029sv00001186sd00003A7D* +- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A3) ++ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A3)) + + pci:v0000168Cd0000002A* + ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) + + pci:v0000168Cd0000002Asv00000777sd00004F05* +- ID_MODEL_FROM_DATABASE=SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280]) + + pci:v0000168Cd0000002Asv0000103Csd00003041* +- ID_MODEL_FROM_DATABASE=AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) + + pci:v0000168Cd0000002Asv0000105Bsd0000E006* +- ID_MODEL_FROM_DATABASE=T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv0000105Bsd0000E01F* +- ID_MODEL_FROM_DATABASE=T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) + + pci:v0000168Cd0000002Asv0000106Bsd0000008F* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AirPort Extreme) + + pci:v0000168Cd0000002Asv000011ADsd00006600* +- ID_MODEL_FROM_DATABASE=WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv0000144Fsd00007141* +- ID_MODEL_FROM_DATABASE=WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv0000168Csd00000203* +- ID_MODEL_FROM_DATABASE=DW1525 802.11abgn WLAN PCIe Card [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (DW1525 802.11abgn WLAN PCIe Card [AR9280]) + + pci:v0000168Cd0000002Asv00001A32sd00000303* +- ID_MODEL_FROM_DATABASE=EM303 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM303 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv00001A32sd00000306* +- ID_MODEL_FROM_DATABASE=EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) + + pci:v0000168Cd0000002Asv00001A3Bsd00001067* +- ID_MODEL_FROM_DATABASE=AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281]) + + pci:v0000168Cd0000002Asv00001A3Bsd00001081* +- ID_MODEL_FROM_DATABASE=AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] ++ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) + + pci:v0000168Cd0000002B* + ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) + + pci:v0000168Cd0000002Bsv00001028sd00000204* +- ID_MODEL_FROM_DATABASE=Wireless 1502 802.11bgn Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1502 802.11bgn Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001028sd00000205* +- ID_MODEL_FROM_DATABASE=Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD] ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD]) + + pci:v0000168Cd0000002Bsv0000103Csd0000303F* +- ID_MODEL_FROM_DATABASE=U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000103Csd00003040* +- ID_MODEL_FROM_DATABASE=U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000105Bsd0000E017* +- ID_MODEL_FROM_DATABASE=T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000105Bsd0000E023* +- ID_MODEL_FROM_DATABASE=T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001113sd0000E811* +- ID_MODEL_FROM_DATABASE=WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv0000185Fsd000030AF* +- ID_MODEL_FROM_DATABASE=DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001931sd00000023* +- ID_MODEL_FROM_DATABASE=Option GTM67x PCIe WiFi Adapter ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Option GTM67x PCIe WiFi Adapter) + + pci:v0000168Cd0000002Bsv00001A3Bsd00001089* +- ID_MODEL_FROM_DATABASE=AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001A3Bsd00002C37* +- ID_MODEL_FROM_DATABASE=AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) + + pci:v0000168Cd0000002Bsv00001B9Asd00000401* +- ID_MODEL_FROM_DATABASE=XW204E 802.11bgn Wireless Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (XW204E 802.11bgn Wireless Half-size Mini PCIe Card) + + pci:v0000168Cd0000002Bsv00001B9Asd00000C03* +- ID_MODEL_FROM_DATABASE=WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) + + pci:v0000168Cd0000002C* + ID_MODEL_FROM_DATABASE=AR2427 802.11bg Wireless Network Adapter (PCI-Express) +@@ -49059,25 +49059,25 @@ pci:v0000168Cd00000030* + ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter + + pci:v0000168Cd00000030sv0000103Csd00001627* +- ID_MODEL_FROM_DATABASE=AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter) + + pci:v0000168Cd00000030sv0000106Bsd0000009A* +- ID_MODEL_FROM_DATABASE=AirPort Extreme ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AirPort Extreme) + + pci:v0000168Cd00000030sv00001186sd00003A7E* +- ID_MODEL_FROM_DATABASE=DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter) + + pci:v0000168Cd00000030sv00001A56sd00002000* +- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382] ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382]) + + pci:v0000168Cd00000030sv00001A56sd00002001* +- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380] ++ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380]) + + pci:v0000168Cd00000032* + ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter + + pci:v0000168Cd00000032sv0000103Csd00001838* +- ID_MODEL_FROM_DATABASE=AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter ++ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter) + + pci:v0000168Cd00000033* + ID_MODEL_FROM_DATABASE=AR9580 Wireless Network Adapter +@@ -49086,7 +49086,7 @@ pci:v0000168Cd00000034* + ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter + + pci:v0000168Cd00000034sv00001A56sd00002003* +- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1202 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter (Killer Wireless-N 1202 Half-size Mini PCIe Card) + + pci:v0000168Cd00000036* + ID_MODEL_FROM_DATABASE=QCA9565 / AR9565 Wireless Network Adapter +@@ -49095,7 +49095,7 @@ pci:v0000168Cd00000037* + ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter + + pci:v0000168Cd00000037sv00001A3Bsd00002100* +- ID_MODEL_FROM_DATABASE=AW-NB100H 802.11n Wireless Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AW-NB100H 802.11n Wireless Mini PCIe Card) + + pci:v0000168Cd0000003C* + ID_MODEL_FROM_DATABASE=QCA988x 802.11ac Wireless Network Adapter +@@ -49107,7 +49107,7 @@ pci:v0000168Cd00001014* + ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC + + pci:v0000168Cd00001014sv00001014sd0000058A* +- ID_MODEL_FROM_DATABASE=ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6) ++ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)) + + pci:v0000168Cd00009013* + ID_MODEL_FROM_DATABASE=AR5002X Wireless Network Adapter +@@ -49125,7 +49125,7 @@ pci:v0000168Cd0000FF1D* + ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter + + pci:v0000168Cd0000FF1Dsv0000168Csd0000EE1C* +- ID_MODEL_FROM_DATABASE=AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3] ++ ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter (AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3]) + + pci:v00001695* + ID_VENDOR_FROM_DATABASE=EPoX Computer Co., Ltd. +@@ -49524,16 +49524,16 @@ pci:v00001737d00001032* + ID_MODEL_FROM_DATABASE=Gigabit Network Adapter + + pci:v00001737d00001032sv00001737sd00000015* +- ID_MODEL_FROM_DATABASE=EG1032 v2 Instant Gigabit Network Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v2 Instant Gigabit Network Adapter) + + pci:v00001737d00001032sv00001737sd00000024* +- ID_MODEL_FROM_DATABASE=EG1032 v3 Instant Gigabit Network Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v3 Instant Gigabit Network Adapter) + + pci:v00001737d00001064* + ID_MODEL_FROM_DATABASE=Gigabit Network Adapter + + pci:v00001737d00001064sv00001737sd00000016* +- ID_MODEL_FROM_DATABASE=EG1064 v2 Instant Gigabit Network Adapter ++ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1064 v2 Instant Gigabit Network Adapter) + + pci:v00001737d0000AB08* + ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet +@@ -49554,7 +49554,7 @@ pci:v0000173Bd000003EA* + ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet + + pci:v0000173Bd000003EAsv0000173Bsd00000001* +- ID_MODEL_FROM_DATABASE=AC1002 ++ ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet (AC1002) + + pci:v0000173Bd000003EB* + ID_MODEL_FROM_DATABASE=AC1003 Gigabit Ethernet +@@ -49851,19 +49851,19 @@ pci:v000017CBd00000001* + ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card + + pci:v000017CBd00000001sv00001385sd00005C00* +- ID_MODEL_FROM_DATABASE=WGM511 Pre-N 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WGM511 Pre-N 802.11g Wireless CardBus Adapter) + + pci:v000017CBd00000001sv00001737sd00000045* +- ID_MODEL_FROM_DATABASE=WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX ++ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX) + + pci:v000017CBd00000002* + ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card + + pci:v000017CBd00000002sv00001385sd00006D00* +- ID_MODEL_FROM_DATABASE=WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter) + + pci:v000017CBd00000002sv00001737sd00000054* +- ID_MODEL_FROM_DATABASE=WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400 ++ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400) + + pci:v000017CC* + ID_VENDOR_FROM_DATABASE=NetChip Technology, Inc +@@ -49914,7 +49914,7 @@ pci:v000017D3d00001280* + ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller + + pci:v000017D3d00001280sv000017D3sd00001221* +- ID_MODEL_FROM_DATABASE=ARC-1221 8-Port PCI-Express to SATA RAID Controller ++ ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller (ARC-1221 8-Port PCI-Express to SATA RAID Controller) + + pci:v000017D3d00001300* + ID_MODEL_FROM_DATABASE=ARC-1300ix-16 16-Port PCI-Express to SAS Non-RAID Host Adapter +@@ -49923,7 +49923,7 @@ pci:v000017D3d00001680* + ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller + + pci:v000017D3d00001680sv000017D3sd00001212* +- ID_MODEL_FROM_DATABASE=ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller ++ ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller (ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller) + + pci:v000017D3d00001880* + ID_MODEL_FROM_DATABASE=ARC-1880 8/12 port PCIe/PCI-X to SAS/SATA II RAID Controller +@@ -49941,82 +49941,82 @@ pci:v000017D5d00005831* + ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X + + pci:v000017D5d00005831sv0000103Csd000012D5* +- ID_MODEL_FROM_DATABASE=PCI-X 133MHz 10GbE SR Fiber ++ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (PCI-X 133MHz 10GbE SR Fiber) + + pci:v000017D5d00005831sv000010A9sd00008020* +- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) ++ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) + + pci:v000017D5d00005831sv000010A9sd00008024* +- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) ++ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) + + pci:v000017D5d00005832* + ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 + + pci:v000017D5d00005832sv0000103Csd00001337* +- ID_MODEL_FROM_DATABASE=PCI-X 266MHz 10GigE SR [AD385A] ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (PCI-X 266MHz 10GigE SR [AD385A]) + + pci:v000017D5d00005832sv000010A9sd00008021* +- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet II (PCI-X, Fiber) ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Single Port 10-Gigabit Ethernet II (PCI-X, Fiber)) + + pci:v000017D5d00005832sv000017D5sd00006020* +- ID_MODEL_FROM_DATABASE=Xframe II SR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR) + + pci:v000017D5d00005832sv000017D5sd00006021* +- ID_MODEL_FROM_DATABASE=Xframe II SR, Low Profile ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR, Low Profile) + + pci:v000017D5d00005832sv000017D5sd00006022* +- ID_MODEL_FROM_DATABASE=Xframe E SR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E SR) + + pci:v000017D5d00005832sv000017D5sd00006420* +- ID_MODEL_FROM_DATABASE=Xframe II LR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR) + + pci:v000017D5d00005832sv000017D5sd00006421* +- ID_MODEL_FROM_DATABASE=Xframe II LR, Low Profile ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR, Low Profile) + + pci:v000017D5d00005832sv000017D5sd00006422* +- ID_MODEL_FROM_DATABASE=Xframe E LR ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E LR) + + pci:v000017D5d00005832sv000017D5sd00006C20* +- ID_MODEL_FROM_DATABASE=Xframe II CX4 ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4) + + pci:v000017D5d00005832sv000017D5sd00006C21* +- ID_MODEL_FROM_DATABASE=Xframe II CX4, Low Profile ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4, Low Profile) + + pci:v000017D5d00005832sv000017D5sd00006C22* +- ID_MODEL_FROM_DATABASE=Xframe E CX4 ++ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E CX4) + + pci:v000017D5d00005833* + ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe + + pci:v000017D5d00005833sv000017D5sd00006030* +- ID_MODEL_FROM_DATABASE=X3110 Single Port SR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port SR) + + pci:v000017D5d00005833sv000017D5sd00006031* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port SR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port SR) + + pci:v000017D5d00005833sv000017D5sd00006430* +- ID_MODEL_FROM_DATABASE=X3110 Single Port LR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LR) + + pci:v000017D5d00005833sv000017D5sd00006431* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port LR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LR) + + pci:v000017D5d00005833sv000017D5sd00007030* +- ID_MODEL_FROM_DATABASE=X3110 Single Port LRM ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LRM) + + pci:v000017D5d00005833sv000017D5sd00007031* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port LRM ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LRM) + + pci:v000017D5d00005833sv000017D5sd00007430* +- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-T ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-T) + + pci:v000017D5d00005833sv000017D5sd00007431* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-T ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-T) + + pci:v000017D5d00005833sv000017D5sd00007830* +- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-CR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-CR) + + pci:v000017D5d00005833sv000017D5sd00007831* +- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-CR ++ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-CR) + + pci:v000017DB* + ID_VENDOR_FROM_DATABASE=Cray Inc +@@ -50103,16 +50103,16 @@ pci:v000017FEd00002120* + ID_MODEL_FROM_DATABASE=IPN 2120 802.11b + + pci:v000017FEd00002120sv00001737sd00000020* +- ID_MODEL_FROM_DATABASE=WMP11 v4 802.11b Wireless-B PCI Adapter ++ ID_MODEL_FROM_DATABASE=IPN 2120 802.11b (WMP11 v4 802.11b Wireless-B PCI Adapter) + + pci:v000017FEd00002220* + ID_MODEL_FROM_DATABASE=IPN 2220 802.11g + + pci:v000017FEd00002220sv00001468sd00000305* +- ID_MODEL_FROM_DATABASE=T60N871 802.11g Mini PCI Wireless Adapter ++ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (T60N871 802.11g Mini PCI Wireless Adapter) + + pci:v000017FEd00002220sv00001737sd00000029* +- ID_MODEL_FROM_DATABASE=WPC54G v4 802.11g Wireless-G Notebook Adapter ++ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (WPC54G v4 802.11g Wireless-G Notebook Adapter) + + pci:v000017FF* + ID_VENDOR_FROM_DATABASE=Benq Corporation +@@ -50133,13 +50133,13 @@ pci:v00001813d00004000* + ID_MODEL_FROM_DATABASE=HaM controllerless modem + + pci:v00001813d00004000sv000016BEsd00000001* +- ID_MODEL_FROM_DATABASE=V9x HAM Data Fax Modem ++ ID_MODEL_FROM_DATABASE=HaM controllerless modem (V9x HAM Data Fax Modem) + + pci:v00001813d00004100* + ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem + + pci:v00001813d00004100sv000016BEsd00000002* +- ID_MODEL_FROM_DATABASE=V9x HAM 1394 ++ ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem (V9x HAM 1394) + + pci:v00001814* + ID_VENDOR_FROM_DATABASE=Ralink corp. +@@ -50148,13 +50148,13 @@ pci:v00001814d00000101* + ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 + + pci:v00001814d00000101sv00001043sd00000127* +- ID_MODEL_FROM_DATABASE=WiFi-b add-on Card ++ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (WiFi-b add-on Card) + + pci:v00001814d00000101sv00001371sd00000010* +- ID_MODEL_FROM_DATABASE=Minitar MNW2BPCI Wireless PCI Card ++ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (Minitar MNW2BPCI Wireless PCI Card) + + pci:v00001814d00000101sv00001462sd00006828* +- ID_MODEL_FROM_DATABASE=PC11B2 (MS-6828) Wireless 11b PCI Card ++ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (PC11B2 (MS-6828) Wireless 11b PCI Card) + + pci:v00001814d00000200* + ID_MODEL_FROM_DATABASE=RT2500 802.11g PCI [PC54G2] +@@ -50163,58 +50163,58 @@ pci:v00001814d00000201* + ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg + + pci:v00001814d00000201sv00001043sd0000130F* +- ID_MODEL_FROM_DATABASE=WL-130g ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-130g) + + pci:v00001814d00000201sv00001186sd00003C00* +- ID_MODEL_FROM_DATABASE=DWL-G650X Wireless 11g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (DWL-G650X Wireless 11g CardBus Adapter) + + pci:v00001814d00000201sv00001371sd0000001E* +- ID_MODEL_FROM_DATABASE=CWC-854 Wireless-G CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWC-854 Wireless-G CardBus Adapter) + + pci:v00001814d00000201sv00001371sd0000001F* +- ID_MODEL_FROM_DATABASE=CWM-854 Wireless-G Mini PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWM-854 Wireless-G Mini PCI Adapter) + + pci:v00001814d00000201sv00001371sd00000020* +- ID_MODEL_FROM_DATABASE=CWP-854 Wireless-G PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWP-854 Wireless-G PCI Adapter) + + pci:v00001814d00000201sv00001458sd0000E381* +- ID_MODEL_FROM_DATABASE=GN-WMKG 802.11b/g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WMKG 802.11b/g Wireless CardBus Adapter) + + pci:v00001814d00000201sv00001458sd0000E931* +- ID_MODEL_FROM_DATABASE=GN-WIKG 802.11b/g mini-PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WIKG 802.11b/g mini-PCI Adapter) + + pci:v00001814d00000201sv00001462sd00006833* +- ID_MODEL_FROM_DATABASE=Unknown 802.11g mini-PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Unknown 802.11g mini-PCI Adapter) + + pci:v00001814d00000201sv00001462sd00006835* +- ID_MODEL_FROM_DATABASE=Wireless 11G CardBus CB54G2 ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Wireless 11G CardBus CB54G2) + + pci:v00001814d00000201sv00001737sd00000032* +- ID_MODEL_FROM_DATABASE=WMP54G v4.0 PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WMP54G v4.0 PCI Adapter) + + pci:v00001814d00000201sv00001799sd0000700A* +- ID_MODEL_FROM_DATABASE=F5D7000 v2000/v3000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7000 v2000/v3000 Wireless G Desktop Card) + + pci:v00001814d00000201sv00001799sd0000701A* +- ID_MODEL_FROM_DATABASE=F5D7010 v2000/v3000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7010 v2000/v3000 Wireless G Notebook Card) + + pci:v00001814d00000201sv00001814sd00002560* + ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg + + pci:v00001814d00000201sv0000182Dsd00009073* +- ID_MODEL_FROM_DATABASE=WL-115 Wireless Network PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-115 Wireless Network PCI Adapter) + + pci:v00001814d00000201sv0000185Fsd000022A0* +- ID_MODEL_FROM_DATABASE=CN-WF513 Wireless Cardbus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CN-WF513 Wireless Cardbus Adapter) + + pci:v00001814d00000201sv000018EBsd00005312* +- ID_MODEL_FROM_DATABASE=WL531P IEEE 802.11g PCI Card-EU ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL531P IEEE 802.11g PCI Card-EU) + + pci:v00001814d00000201sv00001948sd00003C00* +- ID_MODEL_FROM_DATABASE=C54RC v1 Wireless 11g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54RC v1 Wireless 11g CardBus Adapter) + + pci:v00001814d00000201sv00001948sd00003C01* +- ID_MODEL_FROM_DATABASE=C54Ri v1 Wireless 11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54Ri v1 Wireless 11g PCI Adapter) + + pci:v00001814d00000300* + ID_MODEL_FROM_DATABASE=Wireless Adapter Canyon CN-WF511 +@@ -50223,88 +50223,88 @@ pci:v00001814d00000301* + ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI + + pci:v00001814d00000301sv00001186sd00003C08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1) ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1)) + + pci:v00001814d00000301sv00001186sd00003C09* +- ID_MODEL_FROM_DATABASE=DWL-G510 Rev C ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (DWL-G510 Rev C) + + pci:v00001814d00000301sv000013D1sd0000ABE3* +- ID_MODEL_FROM_DATABASE=miniPCI Pluscom 802.11 a/b/g ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (miniPCI Pluscom 802.11 a/b/g) + + pci:v00001814d00000301sv00001458sd0000E933* +- ID_MODEL_FROM_DATABASE=GN-WI01GS ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WI01GS) + + pci:v00001814d00000301sv00001458sd0000E934* +- ID_MODEL_FROM_DATABASE=GN-WP01GS ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WP01GS) + + pci:v00001814d00000301sv00001737sd00000055* +- ID_MODEL_FROM_DATABASE=WMP54G v4.1 ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (WMP54G v4.1) + + pci:v00001814d00000301sv00001799sd0000700E* +- ID_MODEL_FROM_DATABASE=F5D7000 v6000 Wireless G Desktop Card ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7000 v6000 Wireless G Desktop Card) + + pci:v00001814d00000301sv00001799sd0000701E* +- ID_MODEL_FROM_DATABASE=F5D7010 v6000 Wireless G Notebook Card ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7010 v6000 Wireless G Notebook Card) + + pci:v00001814d00000301sv000017F9sd00000012* +- ID_MODEL_FROM_DATABASE=AWLC3026T 802.11g Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AWLC3026T 802.11g Wireless CardBus Adapter) + + pci:v00001814d00000301sv00001814sd00002561* +- ID_MODEL_FROM_DATABASE=EW-7108PCg/EW-7128g ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (EW-7108PCg/EW-7128g) + + pci:v00001814d00000302* + ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g + + pci:v00001814d00000302sv00001186sd00003A71* +- ID_MODEL_FROM_DATABASE=DWA-510 Wireless G Desktop Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (DWA-510 Wireless G Desktop Adapter) + + pci:v00001814d00000302sv00001186sd00003C08* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2) ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2)) + + pci:v00001814d00000302sv00001186sd00003C09* +- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless Network Adapter (Rev.C) ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G510 Wireless Network Adapter (Rev.C)) + + pci:v00001814d00000302sv00001462sd0000B834* +- ID_MODEL_FROM_DATABASE=PC54G3 Wireless 11g PCI Card ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (PC54G3 Wireless 11g PCI Card) + + pci:v00001814d00000302sv00001948sd00003C23* +- ID_MODEL_FROM_DATABASE=C54RC v2 Wireless 11g CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54RC v2 Wireless 11g CardBus Adapter) + + pci:v00001814d00000302sv00001948sd00003C24* +- ID_MODEL_FROM_DATABASE=C54Ri v2 Wireless 11g PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54Ri v2 Wireless 11g PCI Adapter) + + pci:v00001814d00000401* + ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO + + pci:v00001814d00000401sv00001737sd00000052* +- ID_MODEL_FROM_DATABASE=WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster ++ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster) + + pci:v00001814d00000401sv000017F9sd00000011* +- ID_MODEL_FROM_DATABASE=WPCR-137G 802.11bg Wireless CardBus Adapter ++ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPCR-137G 802.11bg Wireless CardBus Adapter) + + pci:v00001814d00000401sv000017F9sd00000016* +- ID_MODEL_FROM_DATABASE=WPIR-119GH 802.11bg Wireless Desktop Adapter ++ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPIR-119GH 802.11bg Wireless Desktop Adapter) + + pci:v00001814d00000601* + ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI + + pci:v00001814d00000601sv00001799sd0000801C* +- ID_MODEL_FROM_DATABASE=F5D8011 v3 802.11n N1 Wireless Notebook Card ++ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (F5D8011 v3 802.11n N1 Wireless Notebook Card) + + pci:v00001814d00000601sv0000187Esd00003412* +- ID_MODEL_FROM_DATABASE=NWD-310N 802.11n Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (NWD-310N 802.11n Wireless PCI Adapter) + + pci:v00001814d00000681* + ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe + + pci:v00001814d00000681sv00001458sd0000E939* +- ID_MODEL_FROM_DATABASE=GN-WS30N-RH 802.11bgn Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe (GN-WS30N-RH 802.11bgn Mini PCIe Card) + + pci:v00001814d00000701* + ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R + + pci:v00001814d00000701sv00001737sd00000074* +- ID_MODEL_FROM_DATABASE=WMP110 v2 802.11n RangePlus Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R (WMP110 v2 802.11n RangePlus Wireless PCI Adapter) + + pci:v00001814d00000781* + ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe +@@ -50313,7 +50313,7 @@ pci:v00001814d00003060* + ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R + + pci:v00001814d00003060sv00001186sd00003C04* +- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A1) ++ ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A1)) + + pci:v00001814d00003062* + ID_MODEL_FROM_DATABASE=RT3062 Wireless 802.11n 2T/2R +@@ -50322,7 +50322,7 @@ pci:v00001814d00003090* + ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe + + pci:v00001814d00003090sv000013BDsd00001057* +- ID_MODEL_FROM_DATABASE=GN-WS32L-RH Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe (GN-WS32L-RH Half-size Mini PCIe Card) + + pci:v00001814d00003091* + ID_MODEL_FROM_DATABASE=RT3091 Wireless 802.11n 1T/2R PCIe +@@ -50334,13 +50334,13 @@ pci:v00001814d00003290* + ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe + + pci:v00001814d00003290sv0000103Csd000018EC* +- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter ++ ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) + + pci:v00001814d00003298* + ID_MODEL_FROM_DATABASE=RT3290 Bluetooth + + pci:v00001814d00003298sv0000103Csd000018EC* +- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter ++ ID_MODEL_FROM_DATABASE=RT3290 Bluetooth (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) + + pci:v00001814d00003592* + ID_MODEL_FROM_DATABASE=RT3592 Wireless 802.11abgn 2T/2R PCIe +@@ -50352,16 +50352,16 @@ pci:v00001814d00005360* + ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R + + pci:v00001814d00005360sv00001186sd00003C05* +- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A2) ++ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A2)) + + pci:v00001814d00005360sv000020F4sd0000703A* +- ID_MODEL_FROM_DATABASE=TEW-703PI N150 Wireless PCI Adapter ++ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (TEW-703PI N150 Wireless PCI Adapter) + + pci:v00001814d00005390* + ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe + + pci:v00001814d00005390sv0000103Csd00001636* +- ID_MODEL_FROM_DATABASE=U98Z077.00 Half-size Mini PCIe Card ++ ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe (U98Z077.00 Half-size Mini PCIe Card) + + pci:v00001814d00005392* + ID_MODEL_FROM_DATABASE=RT5392 PCIe Wireless Network Adapter +@@ -50370,7 +50370,7 @@ pci:v00001814d0000539F* + ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] + + pci:v00001814d0000539Fsv0000103Csd00001637* +- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card ++ ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] (Pavilion DM1Z-3000 PCIe wireless card) + + pci:v00001814d00005592* + ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter +@@ -50637,7 +50637,7 @@ pci:v000018C3d00000720* + ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller + + pci:v000018C3d00000720sv000007CAsd0000032E* +- ID_MODEL_FROM_DATABASE=Hybrid M779 PCI-E ++ ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller (Hybrid M779 PCI-E) + + pci:v000018C8* + ID_VENDOR_FROM_DATABASE=Cray Inc +@@ -50697,70 +50697,70 @@ pci:v000018ECd00006D05* + ID_MODEL_FROM_DATABASE=ML555 + + pci:v000018ECd00006D05sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=ML555 (NIC (ethernet interfaces)) + + pci:v000018ECd00006D05sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 4x1G) + + pci:v000018ECd00006D05sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 2x10G) + + pci:v000018ECd00006D05sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd00006D05sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd00006D05sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=ML555 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd00006D05sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=ML555 (Testing design) + + pci:v000018ECd00006D05sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=ML555 (Boot design) + + pci:v000018ECd0000C006* + ID_MODEL_FROM_DATABASE=COMBO6 + + pci:v000018ECd0000C006sv000018ECsd0000D001* +- ID_MODEL_FROM_DATABASE=COMBO-4MTX ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4MTX) + + pci:v000018ECd0000C006sv000018ECsd0000D002* +- ID_MODEL_FROM_DATABASE=COMBO-4SFP ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFP) + + pci:v000018ECd0000C006sv000018ECsd0000D003* +- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFPRO) + + pci:v000018ECd0000C006sv000018ECsd0000D004* +- ID_MODEL_FROM_DATABASE=COMBO-2XFP ++ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-2XFP) + + pci:v000018ECd0000C032* + ID_MODEL_FROM_DATABASE=COMBO-LXT110 + + pci:v000018ECd0000C032sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (ethernet interfaces)) + + pci:v000018ECd0000C032sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 4x1G) + + pci:v000018ECd0000C032sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 2x10G) + + pci:v000018ECd0000C032sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd0000C032sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd0000C032sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd0000C032sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Testing design) + + pci:v000018ECd0000C032sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Boot design) + + pci:v000018ECd0000C045* + ID_MODEL_FROM_DATABASE=COMBO6E +@@ -50772,70 +50772,70 @@ pci:v000018ECd0000C058* + ID_MODEL_FROM_DATABASE=COMBO6X + + pci:v000018ECd0000C058sv000018ECsd0000D001* +- ID_MODEL_FROM_DATABASE=COMBO-4MTX ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4MTX) + + pci:v000018ECd0000C058sv000018ECsd0000D002* +- ID_MODEL_FROM_DATABASE=COMBO-4SFP ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFP) + + pci:v000018ECd0000C058sv000018ECsd0000D003* +- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFPRO) + + pci:v000018ECd0000C058sv000018ECsd0000D004* +- ID_MODEL_FROM_DATABASE=COMBO-2XFP ++ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-2XFP) + + pci:v000018ECd0000C132* + ID_MODEL_FROM_DATABASE=COMBO-LXT155 + + pci:v000018ECd0000C132sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (ethernet interfaces)) + + pci:v000018ECd0000C132sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 4x1G) + + pci:v000018ECd0000C132sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 2x10G) + + pci:v000018ECd0000C132sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd0000C132sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd0000C132sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd0000C132sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Testing design) + + pci:v000018ECd0000C132sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Boot design) + + pci:v000018ECd0000C232* + ID_MODEL_FROM_DATABASE=COMBO-FXT100 + + pci:v000018ECd0000C232sv000018ECsd00000100* +- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (ethernet interfaces)) + + pci:v000018ECd0000C232sv000018ECsd00000200* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 4x1G) + + pci:v000018ECd0000C232sv000018ECsd00000201* +- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 2x10G) + + pci:v000018ECd0000C232sv000018ECsd00000300* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 4x1G) + + pci:v000018ECd0000C232sv000018ECsd00000302* +- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 2x10G) + + pci:v000018ECd0000C232sv000018ECsd00004200* +- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Flexible FlowMon (szedata2) 1x10G) + + pci:v000018ECd0000C232sv000018ECsd0000FF00* +- ID_MODEL_FROM_DATABASE=Testing design ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Testing design) + + pci:v000018ECd0000C232sv000018ECsd0000FF01* +- ID_MODEL_FROM_DATABASE=Boot design ++ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Boot design) + + pci:v000018EE* + ID_VENDOR_FROM_DATABASE=Chenming Mold Ind. Corp. +@@ -51075,235 +51075,235 @@ pci:v00001924d00000703* + ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] + + pci:v00001924d00000703sv000010B8sd00000102* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) + + pci:v00001924d00000703sv000010B8sd00000103* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) + + pci:v00001924d00000703sv000010B8sd00000201* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) + + pci:v00001924d00000703sv00001924sd00000101* +- ID_MODEL_FROM_DATABASE=SFE4001-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A1) + + pci:v00001924d00000703sv00001924sd00000102* +- ID_MODEL_FROM_DATABASE=SFE4001-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A2) + + pci:v00001924d00000703sv00001924sd00000103* +- ID_MODEL_FROM_DATABASE=SFE4001-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A3) + + pci:v00001924d00000703sv00001924sd00000201* +- ID_MODEL_FROM_DATABASE=SFE4002-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4002-A1) + + pci:v00001924d00000703sv00001924sd00000301* +- ID_MODEL_FROM_DATABASE=SFE4003-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A1) + + pci:v00001924d00000703sv00001924sd00000302* +- ID_MODEL_FROM_DATABASE=SFE4003-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A2) + + pci:v00001924d00000703sv00001924sd00000303* +- ID_MODEL_FROM_DATABASE=SFE4003-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A3) + + pci:v00001924d00000703sv00001924sd00000304* +- ID_MODEL_FROM_DATABASE=SFE4003-A4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A4) + + pci:v00001924d00000703sv00001924sd00000500* +- ID_MODEL_FROM_DATABASE=SFE4005-A0 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4005-A0) + + pci:v00001924d00000710* + ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] + + pci:v00001924d00000710sv000010B8sd00000103* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) + + pci:v00001924d00000710sv000010B8sd00000201* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) + + pci:v00001924d00000710sv00001924sd00000102* +- ID_MODEL_FROM_DATABASE=SFE4001-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A2) + + pci:v00001924d00000710sv00001924sd00000103* +- ID_MODEL_FROM_DATABASE=SFE4001-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A3) + + pci:v00001924d00000710sv00001924sd00000201* +- ID_MODEL_FROM_DATABASE=SFE4002-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4002-A1) + + pci:v00001924d00000710sv00001924sd00000302* +- ID_MODEL_FROM_DATABASE=SFE4003-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A2) + + pci:v00001924d00000710sv00001924sd00000303* +- ID_MODEL_FROM_DATABASE=SFE4003-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A3) + + pci:v00001924d00000710sv00001924sd00000304* +- ID_MODEL_FROM_DATABASE=SFE4003-A4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A4) + + pci:v00001924d00000710sv00001924sd00000500* +- ID_MODEL_FROM_DATABASE=SFE4005-A0 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4005-A0) + + pci:v00001924d00000710sv00001924sd00005102* +- ID_MODEL_FROM_DATABASE=SFN4111T-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-A2) + + pci:v00001924d00000710sv00001924sd00005103* +- ID_MODEL_FROM_DATABASE=SFN4111T-R3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R3) + + pci:v00001924d00000710sv00001924sd00005104* +- ID_MODEL_FROM_DATABASE=SFN4111T-R4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R4) + + pci:v00001924d00000710sv00001924sd00005105* +- ID_MODEL_FROM_DATABASE=SFN4111T-R5 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R5) + + pci:v00001924d00000710sv00001924sd00005201* +- ID_MODEL_FROM_DATABASE=SFN4112F-R1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R1) + + pci:v00001924d00000710sv00001924sd00005202* +- ID_MODEL_FROM_DATABASE=SFN4112F-R2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R2) + + pci:v00001924d00000803* + ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] + + pci:v00001924d00000803sv00001014sd00000478* +- ID_MODEL_FROM_DATABASE=2-port 10GbE Low-Latency (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE Low-Latency (R7)) + + pci:v00001924d00000803sv00001014sd00000479* +- ID_MODEL_FROM_DATABASE=2-port 10GbE OpenOnload (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE OpenOnload (R7)) + + pci:v00001924d00000803sv00001014sd000004A7* +- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Low-latency Dual-port HBA (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Low-latency Dual-port HBA (R7)) + + pci:v00001924d00000803sv00001014sd000004A8* +- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Dual-port HBA (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Dual-port HBA (R7)) + + pci:v00001924d00000803sv0000103Csd00002132* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1)) + + pci:v00001924d00000803sv0000103Csd00002136* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570SFP+ Adapter (R7) ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570SFP+ Adapter (R7)) + + pci:v00001924d00000803sv00001924sd00001201* +- ID_MODEL_FROM_DATABASE=SFA6902F-R1 SFP+ AOE Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFA6902F-R1 SFP+ AOE Adapter) + + pci:v00001924d00000803sv00001924sd00006200* +- ID_MODEL_FROM_DATABASE=SFN5122F-R0 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R0 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006201* +- ID_MODEL_FROM_DATABASE=SFN5122F-R1 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R1 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006202* +- ID_MODEL_FROM_DATABASE=SFN5122F-R2 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R2 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006204* +- ID_MODEL_FROM_DATABASE=SFN5122F-R4 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R4 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006205* +- ID_MODEL_FROM_DATABASE=SFN5122F-R5 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R5 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006206* +- ID_MODEL_FROM_DATABASE=SFN5122F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006207* +- ID_MODEL_FROM_DATABASE=SFN5122F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R7 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006210* +- ID_MODEL_FROM_DATABASE=SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006211* +- ID_MODEL_FROM_DATABASE=SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006217* +- ID_MODEL_FROM_DATABASE=SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006227* +- ID_MODEL_FROM_DATABASE=SFN6122F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6122F-R7 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006237* +- ID_MODEL_FROM_DATABASE=SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter) + + pci:v00001924d00000803sv00001924sd00006501* +- ID_MODEL_FROM_DATABASE=SFN5802K-R1 Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5802K-R1 Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006511* +- ID_MODEL_FROM_DATABASE=SFN5814H-R1 Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5814H-R1 Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006521* +- ID_MODEL_FROM_DATABASE=SFN5812H-R1 Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5812H-R1 Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006562* +- ID_MODEL_FROM_DATABASE=SFN6832F-R2 SFP+ Mezzanine Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6832F-R2 SFP+ Mezzanine Adapter) + + pci:v00001924d00000803sv00001924sd00006A05* +- ID_MODEL_FROM_DATABASE=SFN5112F-R5 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R5 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00006A06* +- ID_MODEL_FROM_DATABASE=SFN5112F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007206* +- ID_MODEL_FROM_DATABASE=SFN5162F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007207* +- ID_MODEL_FROM_DATABASE=SFN5162F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R7 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007A06* +- ID_MODEL_FROM_DATABASE=SFN5152F-R6 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R6 SFP+ Server Adapter) + + pci:v00001924d00000803sv00001924sd00007A07* +- ID_MODEL_FROM_DATABASE=SFN5152F-R7 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R7 SFP+ Server Adapter) + + pci:v00001924d00000813* + ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] + + pci:v00001924d00000813sv00001924sd00006100* +- ID_MODEL_FROM_DATABASE=SFN5121T-R0 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R0 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006102* +- ID_MODEL_FROM_DATABASE=SFN5121T-R2 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R2 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006103* +- ID_MODEL_FROM_DATABASE=SFN5121T-R3 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R3 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006104* +- ID_MODEL_FROM_DATABASE=SFN5121T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006902* +- ID_MODEL_FROM_DATABASE=SFN5111T-R2 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R2 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00006904* +- ID_MODEL_FROM_DATABASE=SFN5111T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00007104* +- ID_MODEL_FROM_DATABASE=SFN5161T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5161T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000813sv00001924sd00007904* +- ID_MODEL_FROM_DATABASE=SFN5151T-R4 10GBASE-T Server Adapter ++ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5151T-R4 10GBASE-T Server Adapter) + + pci:v00001924d00000903* + ID_MODEL_FROM_DATABASE=SFC9120 + + pci:v00001924d00000903sv00001014sd000004CC* +- ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R2 2x10GbE SFP+ Flareon Ultra) + + pci:v00001924d00000903sv00001924sd00008002* +- ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R1 SFP+ Server Adapter) + + pci:v00001924d00000903sv00001924sd00008003* +- ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) + + pci:v00001924d00000903sv00001924sd00008006* +- ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7022F-R1 SFP+ Server Adapter) + + pci:v00001924d00000903sv00001924sd00008007* +- ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7322F-R2 Precision Time SFP+ Server Adapter) + + pci:v00001924d00000903sv00001924sd00008009* +- ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter) + + pci:v00001924d00000903sv00001924sd0000800A* +- ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x02F-R2 Flareon 7000 Series 10G Adapter) + + pci:v00001924d00000923* + ID_MODEL_FROM_DATABASE=SFC9140 + + pci:v00001924d00000923sv00001924sd0000800B* +- ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter ++ ID_MODEL_FROM_DATABASE=SFC9140 (SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) + + pci:v00001924d00001803* + ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] +@@ -51315,40 +51315,40 @@ pci:v00001924d00006703* + ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] + + pci:v00001924d00006703sv000010B8sd00000102* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) + + pci:v00001924d00006703sv000010B8sd00000103* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) + + pci:v00001924d00006703sv000010B8sd00000201* +- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) + + pci:v00001924d00006703sv00001924sd00000101* +- ID_MODEL_FROM_DATABASE=SFE4001-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A1) + + pci:v00001924d00006703sv00001924sd00000102* +- ID_MODEL_FROM_DATABASE=SFE4001-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A2) + + pci:v00001924d00006703sv00001924sd00000103* +- ID_MODEL_FROM_DATABASE=SFE4001-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A3) + + pci:v00001924d00006703sv00001924sd00000201* +- ID_MODEL_FROM_DATABASE=SFE4002-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4002-A1) + + pci:v00001924d00006703sv00001924sd00000301* +- ID_MODEL_FROM_DATABASE=SFE4003-A1 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A1) + + pci:v00001924d00006703sv00001924sd00000302* +- ID_MODEL_FROM_DATABASE=SFE4003-A2 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A2) + + pci:v00001924d00006703sv00001924sd00000303* +- ID_MODEL_FROM_DATABASE=SFE4003-A3 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A3) + + pci:v00001924d00006703sv00001924sd00000304* +- ID_MODEL_FROM_DATABASE=SFE4003-A4 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A4) + + pci:v00001924d00006703sv00001924sd00000500* +- ID_MODEL_FROM_DATABASE=SFE4005-A0 ++ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4005-A0) + + pci:v00001924d0000C101* + ID_MODEL_FROM_DATABASE=EF1-21022T [EtherFabric] +@@ -51549,13 +51549,13 @@ pci:v00001957d00000084* + ID_MODEL_FROM_DATABASE=MPC8347E PBGA + + pci:v00001957d00000084sv0000110Asd00004074* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 ++ ID_MODEL_FROM_DATABASE=MPC8347E PBGA (SIMATIC NET CP 1628) + + pci:v00001957d00000085* + ID_MODEL_FROM_DATABASE=MPC8347 PBGA + + pci:v00001957d00000085sv0000110Asd00004046* +- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 ++ ID_MODEL_FROM_DATABASE=MPC8347 PBGA (SIMATIC NET CP 1623) + + pci:v00001957d00000086* + ID_MODEL_FROM_DATABASE=MPC8343E +@@ -51570,7 +51570,7 @@ pci:v00001957d000000B6* + ID_MODEL_FROM_DATABASE=MPC8314E + + pci:v00001957d000000B6sv00001A56sd00001101* +- ID_MODEL_FROM_DATABASE=Killer Xeno Pro Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=MPC8314E (Killer Xeno Pro Gigabit Ethernet Controller) + + pci:v00001957d000000C2* + ID_MODEL_FROM_DATABASE=MPC8379E +@@ -51621,7 +51621,7 @@ pci:v00001957d00000111* + ID_MODEL_FROM_DATABASE=P1022 + + pci:v00001957d00000111sv00001C7Fsd00005200* +- ID_MODEL_FROM_DATABASE=EB5200 ++ ID_MODEL_FROM_DATABASE=P1022 (EB5200) + + pci:v00001957d00000118* + ID_MODEL_FROM_DATABASE=P1013E +@@ -51660,7 +51660,7 @@ pci:v00001957d0000C006* + ID_MODEL_FROM_DATABASE=MPC8308 + + pci:v00001957d0000C006sv00001A56sd00001201* +- ID_MODEL_FROM_DATABASE=Killer E2100 Gigabit Ethernet Controller ++ ID_MODEL_FROM_DATABASE=MPC8308 (Killer E2100 Gigabit Ethernet Controller) + + pci:v00001958* + ID_VENDOR_FROM_DATABASE=Faster Technology, LLC. +@@ -51726,13 +51726,13 @@ pci:v00001969d00001026* + ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet + + pci:v00001969d00001026sv00001043sd00008304* +- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard ++ ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (P5KPL-CM Motherboard) + + pci:v00001969d00001048* + ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet + + pci:v00001969d00001048sv00001043sd00008226* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet (P5KPL-VM Motherboard) + + pci:v00001969d00001062* + ID_MODEL_FROM_DATABASE=AR8132 Fast Ethernet +@@ -51741,7 +51741,7 @@ pci:v00001969d00001063* + ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet + + pci:v00001969d00001063sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=GA-G31M-ES2L Motherboard ++ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) + + pci:v00001969d00001066* + ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet +@@ -51762,7 +51762,7 @@ pci:v00001969d00001091* + ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet + + pci:v00001969d00001091sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet (N56VZ) + + pci:v00001969d000010A0* + ID_MODEL_FROM_DATABASE=QCA8172 Fast Ethernet +@@ -51804,7 +51804,7 @@ pci:v00001971d00001011* + ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] + + pci:v00001971d00001011sv00001043sd00000001* +- ID_MODEL_FROM_DATABASE=PhysX P1 ++ ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] (PhysX P1) + + pci:v00001974* + ID_VENDOR_FROM_DATABASE=Eberspaecher Electronics +@@ -51834,25 +51834,25 @@ pci:v0000197Bd00002361* + ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE + + pci:v0000197Bd00002361sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE (P965 Neo MS-7235 mainboard) + + pci:v0000197Bd00002362* + ID_MODEL_FROM_DATABASE=JMB362 SATA Controller + + pci:v0000197Bd00002362sv00001043sd00008460* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=JMB362 SATA Controller (P8P67 Deluxe Motherboard) + + pci:v0000197Bd00002363* + ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller + + pci:v0000197Bd00002363sv00001043sd000081E4* +- ID_MODEL_FROM_DATABASE=P5B [JMB363] ++ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (P5B [JMB363]) + + pci:v0000197Bd00002363sv00001458sd0000B000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard) + + pci:v0000197Bd00002363sv00001849sd00002363* +- ID_MODEL_FROM_DATABASE=Motherboard (one of many) ++ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard (one of many)) + + pci:v0000197Bd00002364* + ID_MODEL_FROM_DATABASE=JMB364 AHCI Controller +@@ -51984,19 +51984,19 @@ pci:v000019A2d00000700* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC + + pci:v000019A2d00000700sv0000103Csd00001747* +- ID_MODEL_FROM_DATABASE=NC550SFP DualPort 10GbE Server Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP DualPort 10GbE Server Adapter) + + pci:v000019A2d00000700sv0000103Csd00001749* +- ID_MODEL_FROM_DATABASE=NC550SFP Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP Dual Port Server Adapter) + + pci:v000019A2d00000700sv0000103Csd0000174A* +- ID_MODEL_FROM_DATABASE=NC551m Dual Port FlexFabric 10Gb Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551m Dual Port FlexFabric 10Gb Adapter) + + pci:v000019A2d00000700sv0000103Csd0000174B* +- ID_MODEL_FROM_DATABASE=StorageWorks NC550 DualPort Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (StorageWorks NC550 DualPort Converged Network Adapter) + + pci:v000019A2d00000700sv0000103Csd00003314* +- ID_MODEL_FROM_DATABASE=NC551i Dual Port FlexFabric 10Gb Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551i Dual Port FlexFabric 10Gb Adapter) + + pci:v000019A2d00000702* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator +@@ -52008,19 +52008,19 @@ pci:v000019A2d00000710* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) + + pci:v000019A2d00000710sv0000103Csd00003315* +- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000710sv0000103Csd00003340* +- ID_MODEL_FROM_DATABASE=NC552SFP 2-port 10Gb Server Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552SFP 2-port 10Gb Server Adapter) + + pci:v000019A2d00000710sv0000103Csd00003341* +- ID_MODEL_FROM_DATABASE=NC552m 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552m 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000710sv0000103Csd00003345* +- ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553m 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000710sv0000103Csd0000337B* +- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000712* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) +@@ -52029,10 +52029,10 @@ pci:v000019A2d00000714* + ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) + + pci:v000019A2d00000714sv0000103Csd00003315* +- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A2d00000714sv0000103Csd0000337B* +- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) + + pci:v000019A8* + ID_VENDOR_FROM_DATABASE=DAQDATA GmbH +@@ -52332,16 +52332,16 @@ pci:v00001A78d00000031* + ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive + + pci:v00001A78d00000031sv00001A78sd00000034* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) + + pci:v00001A78d00000031sv00001A78sd00000037* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3D] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) + + pci:v00001A78d00000031sv00001A78sd00000038* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) + + pci:v00001A78d00000031sv00001A78sd00000039* +- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4D] ++ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) + + pci:v00001A78d00000040* + ID_MODEL_FROM_DATABASE=FlashMAX II +@@ -52479,25 +52479,25 @@ pci:v00001AEDd00001005* + ID_MODEL_FROM_DATABASE=ioDimm3 + + pci:v00001AEDd00001005sv00001014sd000003C3* +- ID_MODEL_FROM_DATABASE=High IOPS SSD PCIe Adapter ++ ID_MODEL_FROM_DATABASE=ioDimm3 (High IOPS SSD PCIe Adapter) + + pci:v00001AEDd00001005sv0000103Csd0000176F* +- ID_MODEL_FROM_DATABASE=1.28TB MLC PCIe ioDrive Duo ++ ID_MODEL_FROM_DATABASE=ioDimm3 (1.28TB MLC PCIe ioDrive Duo) + + pci:v00001AEDd00001005sv0000103Csd00001770* +- ID_MODEL_FROM_DATABASE=5.2TB MLC PCIe ioDrive Octal ++ ID_MODEL_FROM_DATABASE=ioDimm3 (5.2TB MLC PCIe ioDrive Octal) + + pci:v00001AEDd00001005sv0000103Csd0000178B* +- ID_MODEL_FROM_DATABASE=160GB SLC PCIe ioDrive ++ ID_MODEL_FROM_DATABASE=ioDimm3 (160GB SLC PCIe ioDrive) + + pci:v00001AEDd00001005sv0000103Csd0000178C* +- ID_MODEL_FROM_DATABASE=320GB MLC PCIe ioDrive ++ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB MLC PCIe ioDrive) + + pci:v00001AEDd00001005sv0000103Csd0000178D* +- ID_MODEL_FROM_DATABASE=320GB SLC PCIe ioDrive Duo ++ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB SLC PCIe ioDrive Duo) + + pci:v00001AEDd00001005sv0000103Csd0000178E* +- ID_MODEL_FROM_DATABASE=640GB MLC PCIe ioDrive Duo ++ ID_MODEL_FROM_DATABASE=ioDimm3 (640GB MLC PCIe ioDrive Duo) + + pci:v00001AEDd00001006* + ID_MODEL_FROM_DATABASE=ioXtreme +@@ -52548,7 +52548,7 @@ pci:v00001AF4d00001110* + ID_MODEL_FROM_DATABASE=Inter-VM shared memory + + pci:v00001AF4d00001110sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=Inter-VM shared memory (QEMU Virtual Machine) + + pci:v00001AF5* + ID_VENDOR_FROM_DATABASE=Netezza Corp. +@@ -52587,22 +52587,22 @@ pci:v00001B21d00000612* + ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller + + pci:v00001B21d00000612sv00001849sd00000612* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller (Motherboard) + + pci:v00001B21d00001042* + ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller + + pci:v00001B21d00001042sv00001043sd00008488* +- ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (P8B WS Motherboard) + + pci:v00001B21d00001042sv00001849sd00001042* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (Motherboard) + + pci:v00001B21d00001080* + ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge + + pci:v00001B21d00001080sv00001849sd00001080* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) + + pci:v00001B2C* + ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. +@@ -52617,31 +52617,31 @@ pci:v00001B36d00000002* + ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter + + pci:v00001B36d00000002sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter (QEMU Virtual Machine) + + pci:v00001B36d00000003* + ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter + + pci:v00001B36d00000003sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter (QEMU Virtual Machine) + + pci:v00001B36d00000004* + ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter + + pci:v00001B36d00000004sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter (QEMU Virtual Machine) + + pci:v00001B36d00000005* + ID_MODEL_FROM_DATABASE=QEMU PCI Test Device + + pci:v00001B36d00000005sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device (QEMU Virtual Machine) + + pci:v00001B36d00000100* + ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card + + pci:v00001B36d00000100sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card (QEMU Virtual Machine) + + pci:v00001B37* + ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB +@@ -52662,10 +52662,10 @@ pci:v00001B3Ed00001FA8* + ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X + + pci:v00001B3Ed00001FA8sv00001B3Esd000000A3* +- ID_MODEL_FROM_DATABASE=BYNET BIC2SX ++ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SX) + + pci:v00001B3Ed00001FA8sv00001B3Esd000000C3* +- ID_MODEL_FROM_DATABASE=BYNET BIC2SE ++ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SE) + + pci:v00001B40* + ID_VENDOR_FROM_DATABASE=Schooner Information Technology, Inc. +@@ -52701,7 +52701,7 @@ pci:v00001B4Bd00009130* + ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo + + pci:v00001B4Bd00009130sv00001043sd00008438* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo (P8P67 Deluxe Motherboard) + + pci:v00001B4Bd00009172* + ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller +@@ -52767,7 +52767,7 @@ pci:v00001B73d00001000* + ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller + + pci:v00001B73d00001000sv00001D5Csd00001000* +- ID_MODEL_FROM_DATABASE=Anker USB 3.0 Express Card ++ ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller (Anker USB 3.0 Express Card) + + pci:v00001B73d00001009* + ID_MODEL_FROM_DATABASE=FL1009 USB 3.0 Host Controller +@@ -53010,67 +53010,67 @@ pci:v00001FC9d00003010* + ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC + + pci:v00001FC9d00003010sv00000000sd00003002* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port XFP SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port XFP SmartNIC) + + pci:v00001FC9d00003010sv00000000sd00003004* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) + + pci:v00001FC9d00003010sv00000000sd00003008* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port CX4 SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port CX4 SmartNIC) + + pci:v00001FC9d00003014* + ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port + + pci:v00001FC9d00003014sv00000000sd00003003* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port XFP Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port XFP Low Profile SmartNIC) + + pci:v00001FC9d00003014sv00000000sd00003005* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003014sv00000000sd00003014* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003110* + ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC + + pci:v00001FC9d00003110sv00000000sd00003004* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) + + pci:v00001FC9d00003114* + ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC + + pci:v00001FC9d00003114sv00000000sd00003005* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003114sv00000000sd00003011* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003114sv00000000sd00003012* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003114sv00000000sd00003014* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003310* + ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC + + pci:v00001FC9d00003310sv00000000sd00003004* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) + + pci:v00001FC9d00003314* + ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC + + pci:v00001FC9d00003314sv00000000sd00003005* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003314sv00000000sd00003011* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) + + pci:v00001FC9d00003314sv00000000sd00003012* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) + + pci:v00001FC9d00003314sv00000000sd00003014* +- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC ++ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) + + pci:v00001FCE* + ID_VENDOR_FROM_DATABASE=Cognio Inc. +@@ -53172,31 +53172,31 @@ pci:v00003388d00000021* + ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) + + pci:v00003388d00000021sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K CompactPCI interface bridge ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (C2K CompactPCI interface bridge) + + pci:v00003388d00000021sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CE9) + + pci:v00003388d00000021sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT7 mainboard) + + pci:v00003388d00000021sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT8 mainboard) + + pci:v00003388d00000021sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (Cx9 mainboard) + + pci:v00003388d00000021sv00004C53sd000010A0* +- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CA3/CR3 mainboard) + + pci:v00003388d00000021sv00004C53sd00003010* +- ID_MODEL_FROM_DATABASE=PPCI mezzanine (32-bit PMC) ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (32-bit PMC)) + + pci:v00003388d00000021sv00004C53sd00003011* +- ID_MODEL_FROM_DATABASE=PPCI mezzanine (64-bit PMC) ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (64-bit PMC)) + + pci:v00003388d00000021sv00004C53sd00004000* +- ID_MODEL_FROM_DATABASE=PMCCARR1 carrier board ++ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PMCCARR1 carrier board) + + pci:v00003388d00000022* + ID_MODEL_FROM_DATABASE=HiNT HB4 PCI-PCI Bridge (PCI6150) +@@ -53220,19 +53220,19 @@ pci:v00003388d00008011* + ID_MODEL_FROM_DATABASE=VXPro II Chipset + + pci:v00003388d00008011sv00003388sd00008011* +- ID_MODEL_FROM_DATABASE=VXPro II Chipset CPU to PCI Bridge ++ ID_MODEL_FROM_DATABASE=VXPro II Chipset (CPU to PCI Bridge) + + pci:v00003388d00008012* + ID_MODEL_FROM_DATABASE=VXPro II Chipset + + pci:v00003388d00008012sv00003388sd00008012* +- ID_MODEL_FROM_DATABASE=VXPro II Chipset PCI to ISA Bridge ++ ID_MODEL_FROM_DATABASE=VXPro II Chipset (PCI to ISA Bridge) + + pci:v00003388d00008013* + ID_MODEL_FROM_DATABASE=VXPro II IDE + + pci:v00003388d00008013sv00003388sd00008013* +- ID_MODEL_FROM_DATABASE=VXPro II Chipset EIDE Controller ++ ID_MODEL_FROM_DATABASE=VXPro II IDE (VXPro II Chipset EIDE Controller) + + pci:v00003388d0000A103* + ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink HD Pro +@@ -53277,13 +53277,13 @@ pci:v00003D3Dd00000002* + ID_MODEL_FROM_DATABASE=GLINT 500TX + + pci:v00003D3Dd00000002sv00000000sd00000000* +- ID_MODEL_FROM_DATABASE=GLoria L ++ ID_MODEL_FROM_DATABASE=GLINT 500TX (GLoria L) + + pci:v00003D3Dd00000003* + ID_MODEL_FROM_DATABASE=GLINT Delta + + pci:v00003D3Dd00000003sv00000000sd00000000* +- ID_MODEL_FROM_DATABASE=GLoria XL ++ ID_MODEL_FROM_DATABASE=GLINT Delta (GLoria XL) + + pci:v00003D3Dd00000004* + ID_MODEL_FROM_DATABASE=Permedia +@@ -53295,10 +53295,10 @@ pci:v00003D3Dd00000006* + ID_MODEL_FROM_DATABASE=GLINT MX + + pci:v00003D3Dd00000006sv00000000sd00000000* +- ID_MODEL_FROM_DATABASE=GLoria XL ++ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XL) + + pci:v00003D3Dd00000006sv00001048sd00000A42* +- ID_MODEL_FROM_DATABASE=GLoria XXL ++ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XXL) + + pci:v00003D3Dd00000007* + ID_MODEL_FROM_DATABASE=3D Extreme +@@ -53307,55 +53307,55 @@ pci:v00003D3Dd00000008* + ID_MODEL_FROM_DATABASE=GLINT Gamma G1 + + pci:v00003D3Dd00000008sv00001048sd00000A42* +- ID_MODEL_FROM_DATABASE=GLoria XXL ++ ID_MODEL_FROM_DATABASE=GLINT Gamma G1 (GLoria XXL) + + pci:v00003D3Dd00000009* + ID_MODEL_FROM_DATABASE=Permedia II 2D+3D + + pci:v00003D3Dd00000009sv00001040sd00000011* +- ID_MODEL_FROM_DATABASE=AccelStar II ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II) + + pci:v00003D3Dd00000009sv00001048sd00000A42* +- ID_MODEL_FROM_DATABASE=GLoria XXL ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (GLoria XXL) + + pci:v00003D3Dd00000009sv000013E9sd00001000* +- ID_MODEL_FROM_DATABASE=6221L-4U ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (6221L-4U) + + pci:v00003D3Dd00000009sv00003D3Dsd00000100* +- ID_MODEL_FROM_DATABASE=AccelStar II 3D Accelerator ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II 3D Accelerator) + + pci:v00003D3Dd00000009sv00003D3Dsd00000111* +- ID_MODEL_FROM_DATABASE=Permedia 3:16 ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia 3:16) + + pci:v00003D3Dd00000009sv00003D3Dsd00000114* +- ID_MODEL_FROM_DATABASE=Santa Ana ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana) + + pci:v00003D3Dd00000009sv00003D3Dsd00000116* +- ID_MODEL_FROM_DATABASE=Oxygen GVX1 ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen GVX1) + + pci:v00003D3Dd00000009sv00003D3Dsd00000119* +- ID_MODEL_FROM_DATABASE=Scirocco ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Scirocco) + + pci:v00003D3Dd00000009sv00003D3Dsd00000120* +- ID_MODEL_FROM_DATABASE=Santa Ana PCL ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana PCL) + + pci:v00003D3Dd00000009sv00003D3Dsd00000125* +- ID_MODEL_FROM_DATABASE=Oxygen VX1 ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen VX1) + + pci:v00003D3Dd00000009sv00003D3Dsd00000127* +- ID_MODEL_FROM_DATABASE=Permedia3 Create! ++ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia3 Create!) + + pci:v00003D3Dd0000000A* + ID_MODEL_FROM_DATABASE=GLINT R3 + + pci:v00003D3Dd0000000Asv00003D3Dsd00000121* +- ID_MODEL_FROM_DATABASE=Oxygen VX1 ++ ID_MODEL_FROM_DATABASE=GLINT R3 (Oxygen VX1) + + pci:v00003D3Dd0000000C* + ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] + + pci:v00003D3Dd0000000Csv00003D3Dsd00000144* +- ID_MODEL_FROM_DATABASE=Oxygen VX1-4X AGP [Permedia 4] ++ ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] (Oxygen VX1-4X AGP [Permedia 4]) + + pci:v00003D3Dd0000000D* + ID_MODEL_FROM_DATABASE=GLint R4 rev A +@@ -53472,13 +53472,13 @@ pci:v00004040d00000001* + ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface + + pci:v00004040d00000001sv0000103Csd00007047* +- ID_MODEL_FROM_DATABASE=NC510F PCIe 10-Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface (NC510F PCIe 10-Gigabit Server Adapter) + + pci:v00004040d00000002* + ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface + + pci:v00004040d00000002sv0000103Csd00007048* +- ID_MODEL_FROM_DATABASE=NC510c PCIe 10-Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface (NC510c PCIe 10-Gigabit Server Adapter) + + pci:v00004040d00000003* + ID_MODEL_FROM_DATABASE=NXB-4GCU Quad Gigabit Ethernet PCIe Adapter with 1000-BASE-T interface +@@ -53490,7 +53490,7 @@ pci:v00004040d00000005* + ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class + + pci:v00004040d00000005sv0000103Csd0000170E* +- ID_MODEL_FROM_DATABASE=NC512m Dual Port 10GbE Multifunction BL-C Adapter ++ ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class (NC512m Dual Port 10GbE Multifunction BL-C Adapter) + + pci:v00004040d00000024* + ID_MODEL_FROM_DATABASE=XG Mgmt +@@ -53502,28 +53502,28 @@ pci:v00004040d00000100* + ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter + + pci:v00004040d00000100sv0000103Csd0000171B* +- ID_MODEL_FROM_DATABASE=NC522m Dual Port 10GbE Multifunction BL-c Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522m Dual Port 10GbE Multifunction BL-c Adapter) + + pci:v00004040d00000100sv0000103Csd00001740* +- ID_MODEL_FROM_DATABASE=NC375T PCI Express Quad Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375T PCI Express Quad Port Gigabit Server Adapter) + + pci:v00004040d00000100sv0000103Csd00003251* +- ID_MODEL_FROM_DATABASE=NC375i 1G w/NC524SFP 10G Module ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i 1G w/NC524SFP 10G Module) + + pci:v00004040d00000100sv0000103Csd0000705A* +- ID_MODEL_FROM_DATABASE=NC375i Integrated Quad Port Multifunction Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i Integrated Quad Port Multifunction Gigabit Server Adapter) + + pci:v00004040d00000100sv0000103Csd0000705B* +- ID_MODEL_FROM_DATABASE=NC522SFP Dual Port 10GbE Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522SFP Dual Port 10GbE Server Adapter) + + pci:v00004040d00000100sv0000152Dsd0000896B* +- ID_MODEL_FROM_DATABASE=TG20 Dual Port 10GbE Server/Storage Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (TG20 Dual Port 10GbE Server/Storage Adapter) + + pci:v00004040d00000100sv00004040sd00000124* +- ID_MODEL_FROM_DATABASE=NX3031 Quad Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NX3031 Quad Port Gigabit Server Adapter) + + pci:v00004040d00000100sv00004040sd00000126* +- ID_MODEL_FROM_DATABASE=Dual Port SFP+ 10GbE Server Adapter ++ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (Dual Port SFP+ 10GbE Server Adapter) + + pci:v00004143* + ID_VENDOR_FROM_DATABASE=Digital Equipment Corp +@@ -53571,190 +53571,190 @@ pci:v00004444d00000016* + ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder + + pci:v00004444d00000016sv00000070sd00000003* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00000009* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00000801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00000807* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00004001* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00004009* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00004801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00004803* +- ID_MODEL_FROM_DATABASE=WinTV PVR 250 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) + + pci:v00004444d00000016sv00000070sd00008003* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd00008801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd0000C801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv00000070sd0000E807* +- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (1st unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (1st unit)) + + pci:v00004444d00000016sv00000070sd0000E817* +- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (2nd unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (2nd unit)) + + pci:v00004444d00000016sv00000070sd0000FF92* +- ID_MODEL_FROM_DATABASE=WiNTV PVR-550 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WiNTV PVR-550) + + pci:v00004444d00000016sv00000270sd00000801* +- ID_MODEL_FROM_DATABASE=WinTV PVR 150 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) + + pci:v00004444d00000016sv0000104Dsd0000013D* +- ID_MODEL_FROM_DATABASE=ENX-26 TV Encoder ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (ENX-26 TV Encoder) + + pci:v00004444d00000016sv000010FCsd0000D038* +- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (1st unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (1st unit)) + + pci:v00004444d00000016sv000010FCsd0000D039* +- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (2nd unit) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (2nd unit)) + + pci:v00004444d00000016sv000012ABsd0000FFF3* +- ID_MODEL_FROM_DATABASE=MPG600 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) + + pci:v00004444d00000016sv000012ABsd0000FFFF* +- ID_MODEL_FROM_DATABASE=MPG600 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) + + pci:v00004444d00000016sv00001461sd0000C00A* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C00B* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C00C* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner)) + + pci:v00004444d00000016sv00001461sd0000C010* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C011* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C018* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C019* +- ID_MODEL_FROM_DATABASE=UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C01A* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C01B* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C030* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C031* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C032* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C033* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C034* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C035* +- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C03F* +- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) + + pci:v00004444d00000016sv00001461sd0000C136* +- ID_MODEL_FROM_DATABASE=M104 mini-PCI Analog TV ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M104 mini-PCI Analog TV) + + pci:v00004444d00000016sv00001461sd0000C20A* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner)) + + pci:v00004444d00000016sv00001461sd0000C218* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C219* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C21A* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C21B* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner)) + + pci:v00004444d00000016sv00001461sd0000C230* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C231* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C232* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C233* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C234* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C235* +- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner)) + + pci:v00004444d00000016sv00001461sd0000C337* +- ID_MODEL_FROM_DATABASE=E106 AVerMedia AVerTV Video Capture ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (E106 AVerMedia AVerTV Video Capture) + + pci:v00004444d00000016sv00001461sd0000C439* +- ID_MODEL_FROM_DATABASE=M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner)) + + pci:v00004444d00000016sv00001461sd0000C5FF* +- ID_MODEL_FROM_DATABASE=C755 AVerTV Video Capture card (no tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C755 AVerTV Video Capture card (no tuner)) + + pci:v00004444d00000016sv00001461sd0000C6FF* +- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) + + pci:v00004444d00000016sv00001461sd0000C739* +- ID_MODEL_FROM_DATABASE=M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner) ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner)) + + pci:v00004444d00000016sv00009005sd00000092* +- ID_MODEL_FROM_DATABASE=VideOh! AVC-2010 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2010) + + pci:v00004444d00000016sv00009005sd00000093* +- ID_MODEL_FROM_DATABASE=VideOh! AVC-2410 ++ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2410) + + pci:v00004444d00000803* + ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder + + pci:v00004444d00000803sv00000070sd00004000* +- ID_MODEL_FROM_DATABASE=WinTV PVR-350 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350) + + pci:v00004444d00000803sv00000070sd00004001* +- ID_MODEL_FROM_DATABASE=WinTV PVR-250 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-250) + + pci:v00004444d00000803sv00000070sd00004800* +- ID_MODEL_FROM_DATABASE=WinTV PVR-350 (V1) ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350 (V1)) + + pci:v00004444d00000803sv000012ABsd00000000* +- ID_MODEL_FROM_DATABASE=MPG160 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (MPG160) + + pci:v00004444d00000803sv00001461sd0000A3CE* +- ID_MODEL_FROM_DATABASE=M179 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) + + pci:v00004444d00000803sv00001461sd0000A3CF* +- ID_MODEL_FROM_DATABASE=M179 ++ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) + + pci:v00004468* + ID_VENDOR_FROM_DATABASE=Bridgeport machines +@@ -53961,7 +53961,7 @@ pci:v00004A14d00005000* + ID_MODEL_FROM_DATABASE=NV5000SC + + pci:v00004A14d00005000sv00004A14sd00005000* +- ID_MODEL_FROM_DATABASE=RT8029-Based Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=NV5000SC (RT8029-Based Ethernet Adapter) + + pci:v00004B10* + ID_VENDOR_FROM_DATABASE=Buslogic Inc. +@@ -53976,16 +53976,16 @@ pci:v00004C53d00000000* + ID_MODEL_FROM_DATABASE=PLUSTEST device + + pci:v00004C53d00000000sv00004C53sd00003000* +- ID_MODEL_FROM_DATABASE=PLUSTEST card (PC104+) ++ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PC104+)) + + pci:v00004C53d00000000sv00004C53sd00003001* +- ID_MODEL_FROM_DATABASE=PLUSTEST card (PMC) ++ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PMC)) + + pci:v00004C53d00000001* + ID_MODEL_FROM_DATABASE=PLUSTEST-MM device + + pci:v00004C53d00000001sv00004C53sd00003002* +- ID_MODEL_FROM_DATABASE=PLUSTEST-MM card (PMC) ++ ID_MODEL_FROM_DATABASE=PLUSTEST-MM device (PLUSTEST-MM card (PMC)) + + pci:v00004CA1* + ID_VENDOR_FROM_DATABASE=Seanix Technology Inc +@@ -54222,13 +54222,13 @@ pci:v00005333d00008900* + ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] + + pci:v00005333d00008900sv00005333sd00008900* +- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX ++ ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] (86C775 Trio64V2/DX) + + pci:v00005333d00008901* + ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] + + pci:v00005333d00008901sv00005333sd00008901* +- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX, 86C785 Trio64V2/GX ++ ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] (86C775 Trio64V2/DX, 86C785 Trio64V2/GX) + + pci:v00005333d00008902* + ID_MODEL_FROM_DATABASE=Plato/PX +@@ -54240,13 +54240,13 @@ pci:v00005333d00008904* + ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] + + pci:v00005333d00008904sv00001014sd000000DB* +- ID_MODEL_FROM_DATABASE=Integrated Trio3D ++ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Integrated Trio3D) + + pci:v00005333d00008904sv00004843sd0000314A* +- ID_MODEL_FROM_DATABASE=Terminator 128/3D GLH ++ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Terminator 128/3D GLH) + + pci:v00005333d00008904sv00005333sd00008904* +- ID_MODEL_FROM_DATABASE=86C365 Trio3D AGP ++ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (86C365 Trio3D AGP) + + pci:v00005333d00008905* + ID_MODEL_FROM_DATABASE=Trio 64V+ family +@@ -54285,40 +54285,40 @@ pci:v00005333d00008A01* + ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] + + pci:v00005333d00008A01sv00000E11sd0000B032* +- ID_MODEL_FROM_DATABASE=ViRGE/GX ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/GX) + + pci:v00005333d00008A01sv000010B4sd00001617* +- ID_MODEL_FROM_DATABASE=Nitro 3D ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) + + pci:v00005333d00008A01sv000010B4sd00001717* +- ID_MODEL_FROM_DATABASE=Nitro 3D ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) + + pci:v00005333d00008A01sv00005333sd00008A01* +- ID_MODEL_FROM_DATABASE=ViRGE/DX ++ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/DX) + + pci:v00005333d00008A10* + ID_MODEL_FROM_DATABASE=ViRGE/GX2 + + pci:v00005333d00008A10sv00001092sd00008A10* +- ID_MODEL_FROM_DATABASE=Stealth 3D 4000 ++ ID_MODEL_FROM_DATABASE=ViRGE/GX2 (Stealth 3D 4000) + + pci:v00005333d00008A13* + ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] + + pci:v00005333d00008A13sv00005333sd00008A13* +- ID_MODEL_FROM_DATABASE=Trio3D/2X ++ ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] (Trio3D/2X) + + pci:v00005333d00008A20* + ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] + + pci:v00005333d00008A20sv00005333sd00008A20* +- ID_MODEL_FROM_DATABASE=86C391 Savage3D ++ ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] (86C391 Savage3D) + + pci:v00005333d00008A21* + ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] + + pci:v00005333d00008A21sv00005333sd00008A21* +- ID_MODEL_FROM_DATABASE=86C390 Savage3D/MV ++ ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] (86C390 Savage3D/MV) + + pci:v00005333d00008A22* + ID_MODEL_FROM_DATABASE=Savage 4 +@@ -54330,85 +54330,85 @@ pci:v00005333d00008A22sv00001033sd00008069* + ID_MODEL_FROM_DATABASE=Savage 4 + + pci:v00005333d00008A22sv00001033sd00008110* +- ID_MODEL_FROM_DATABASE=Savage 4 LT ++ ID_MODEL_FROM_DATABASE=Savage 4 (LT) + + pci:v00005333d00008A22sv0000105Dsd00000018* +- ID_MODEL_FROM_DATABASE=SR9 8Mb SDRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 8Mb SDRAM) + + pci:v00005333d00008A22sv0000105Dsd0000002A* +- ID_MODEL_FROM_DATABASE=SR9 Pro 16Mb SDRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 16Mb SDRAM) + + pci:v00005333d00008A22sv0000105Dsd0000003A* +- ID_MODEL_FROM_DATABASE=SR9 Pro 32Mb SDRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 32Mb SDRAM) + + pci:v00005333d00008A22sv0000105Dsd0000092F* +- ID_MODEL_FROM_DATABASE=SR9 Pro+ 16Mb SGRAM ++ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro+ 16Mb SGRAM) + + pci:v00005333d00008A22sv00001092sd00004207* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004800* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004807* +- ID_MODEL_FROM_DATABASE=SpeedStar A90 ++ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A90) + + pci:v00005333d00008A22sv00001092sd00004808* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004809* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd0000480E* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004904* +- ID_MODEL_FROM_DATABASE=Stealth III S520 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S520) + + pci:v00005333d00008A22sv00001092sd00004905* +- ID_MODEL_FROM_DATABASE=SpeedStar A200 ++ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A200) + + pci:v00005333d00008A22sv00001092sd00004A09* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004A0B* +- ID_MODEL_FROM_DATABASE=Stealth III S540 Xtreme ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540 Xtreme) + + pci:v00005333d00008A22sv00001092sd00004A0F* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001092sd00004E01* +- ID_MODEL_FROM_DATABASE=Stealth III S540 ++ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) + + pci:v00005333d00008A22sv00001102sd0000101D* +- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 ++ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) + + pci:v00005333d00008A22sv00001102sd0000101E* +- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 ++ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) + + pci:v00005333d00008A22sv00005333sd00008100* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 100 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 100) + + pci:v00005333d00008A22sv00005333sd00008110* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 110 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 110) + + pci:v00005333d00008A22sv00005333sd00008125* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 125 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 125) + + pci:v00005333d00008A22sv00005333sd00008143* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 143 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 143) + + pci:v00005333d00008A22sv00005333sd00008A22* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4) + + pci:v00005333d00008A22sv00005333sd00008A2E* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 32bit ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 32bit) + + pci:v00005333d00008A22sv00005333sd00009125* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 125 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 125) + + pci:v00005333d00008A22sv00005333sd00009143* +- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 143 ++ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 143) + + pci:v00005333d00008A23* + ID_MODEL_FROM_DATABASE=Savage 4 +@@ -54417,7 +54417,7 @@ pci:v00005333d00008A25* + ID_MODEL_FROM_DATABASE=ProSavage PM133 + + pci:v00005333d00008A25sv00000303sd00000303* +- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] ++ ID_MODEL_FROM_DATABASE=ProSavage PM133 (D9840-60001 [Brio BA410 Motherboard]) + + pci:v00005333d00008A26* + ID_MODEL_FROM_DATABASE=ProSavage KM133 +@@ -54447,16 +54447,16 @@ pci:v00005333d00008C12* + ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] + + pci:v00005333d00008C12sv00001014sd0000017F* +- ID_MODEL_FROM_DATABASE=ThinkPad T20/T22 ++ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (ThinkPad T20/T22) + + pci:v00005333d00008C12sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=86C584 SuperSavage/IXC Toshiba ++ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (86C584 SuperSavage/IXC Toshiba) + + pci:v00005333d00008C13* + ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] + + pci:v00005333d00008C13sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] (Magnia Z310) + + pci:v00005333d00008C22* + ID_MODEL_FROM_DATABASE=SuperSavage MX/128 +@@ -54483,7 +54483,7 @@ pci:v00005333d00008C2E* + ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR + + pci:v00005333d00008C2Esv00001014sd000001FC* +- ID_MODEL_FROM_DATABASE=ThinkPad T23 ++ ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR (ThinkPad T23) + + pci:v00005333d00008C2F* + ID_MODEL_FROM_DATABASE=SuperSavage IX/C DDR +@@ -54513,7 +54513,7 @@ pci:v00005333d00008E48* + ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] + + pci:v00005333d00008E48sv00005333sd00000130* +- ID_MODEL_FROM_DATABASE=Chrome S27 256M DDR2 ++ ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] (Chrome S27 256M DDR2) + + pci:v00005333d00009043* + ID_MODEL_FROM_DATABASE=Chrome 430 GT +@@ -54528,28 +54528,28 @@ pci:v00005333d00009102* + ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] + + pci:v00005333d00009102sv00001092sd00005932* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005934* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005952* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005954* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A35* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A37* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A55* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d00009102sv00001092sd00005A57* +- ID_MODEL_FROM_DATABASE=Viper II Z200 ++ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) + + pci:v00005333d0000CA00* + ID_MODEL_FROM_DATABASE=SonicVibes +@@ -54774,13 +54774,13 @@ pci:v00008086d00000044* + ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller + + pci:v00008086d00000044sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Aspire 7740G) + + pci:v00008086d00000044sv00001025sd00000487* +- ID_MODEL_FROM_DATABASE=TravelMate 5742 ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) + + pci:v00008086d00000044sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) + + pci:v00008086d00000045* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port +@@ -54789,7 +54789,7 @@ pci:v00008086d00000046* + ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller + + pci:v00008086d00000046sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) + + pci:v00008086d00000047* + ID_MODEL_FROM_DATABASE=Core Processor Secondary PCI Express Root Port +@@ -54816,202 +54816,202 @@ pci:v00008086d00000082* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] + + pci:v00008086d00000082sv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) + + pci:v00008086d00000082sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) + + pci:v00008086d00000082sv00008086sd00001307* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 BG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 BG) + + pci:v00008086d00000082sv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) + + pci:v00008086d00000082sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) + + pci:v00008086d00000083* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] + + pci:v00008086d00000083sv00008086sd00001205* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001206* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000083sv00008086sd00001225* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001226* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000083sv00008086sd00001305* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000083sv00008086sd00001325* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000083sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000084* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] + + pci:v00008086d00000084sv00008086sd00001215* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000084sv00008086sd00001216* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000084sv00008086sd00001315* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) + + pci:v00008086d00000084sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) + + pci:v00008086d00000085* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] + + pci:v00008086d00000085sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) + + pci:v00008086d00000085sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) + + pci:v00008086d00000087* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] + + pci:v00008086d00000087sv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) + + pci:v00008086d00000087sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) + + pci:v00008086d00000087sv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) + + pci:v00008086d00000087sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) + + pci:v00008086d00000089* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] + + pci:v00008086d00000089sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) + + pci:v00008086d00000089sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) + + pci:v00008086d0000008A* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] + + pci:v00008086d0000008Asv00008086sd00005305* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) + + pci:v00008086d0000008Asv00008086sd00005307* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) + + pci:v00008086d0000008Asv00008086sd00005325* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) + + pci:v00008086d0000008Asv00008086sd00005327* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) + + pci:v00008086d0000008B* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] + + pci:v00008086d0000008Bsv00008086sd00005315* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) + + pci:v00008086d0000008Bsv00008086sd00005317* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) + + pci:v00008086d00000090* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] + + pci:v00008086d00000090sv00008086sd00005211* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) + + pci:v00008086d00000090sv00008086sd00005215* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) + + pci:v00008086d00000090sv00008086sd00005216* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) + + pci:v00008086d00000091* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] + + pci:v00008086d00000091sv00008086sd00005201* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) + + pci:v00008086d00000091sv00008086sd00005205* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) + + pci:v00008086d00000091sv00008086sd00005206* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) + + pci:v00008086d00000091sv00008086sd00005207* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BG) + + pci:v00008086d00000091sv00008086sd00005221* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) + + pci:v00008086d00000091sv00008086sd00005225* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) + + pci:v00008086d00000091sv00008086sd00005226* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) + + pci:v00008086d00000100* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller + + pci:v00008086d00000100sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (XPS 8300) + + pci:v00008086d00000100sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (P8P67/P8H67 Series Motherboard) + + pci:v00008086d00000101* + ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port + + pci:v00008086d00000101sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (Vostro 3350) + + pci:v00008086d00000101sv0000106Bsd000000DC* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00000102* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller + + pci:v00008086d00000102sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (XPS 8300) + + pci:v00008086d00000102sv00001043sd00000102* +- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (P8H67 Series Motherboard) + + pci:v00008086d00000104* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller + + pci:v00008086d00000104sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Precision M4600) + + pci:v00008086d00000104sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3350) + + pci:v00008086d00000104sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3750) + + pci:v00008086d00000104sv0000106Bsd000000DC* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00000105* + ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port + + pci:v00008086d00000105sv0000106Bsd000000DC* +- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00000106* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller +@@ -55044,7 +55044,7 @@ pci:v00008086d00000116* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller + + pci:v00008086d00000116sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3750) + + pci:v00008086d00000122* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller +@@ -55053,64 +55053,64 @@ pci:v00008086d00000126* + ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller + + pci:v00008086d00000126sv00001028sd000004CC* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3350) + + pci:v00008086d00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller + + pci:v00008086d00000150sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) + + pci:v00008086d00000150sv00001849sd00000150* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) + + pci:v00008086d00000151* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + + pci:v00008086d00000151sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (N56VZ) + + pci:v00008086d00000151sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) + + pci:v00008086d00000151sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8H77-I Motherboard) + + pci:v00008086d00000151sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) + + pci:v00008086d00000152* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + + pci:v00008086d00000152sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8H77-I Motherboard) + + pci:v00008086d00000153* + ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem + + pci:v00008086d00000153sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem (Zenbook Prime UX31A) + + pci:v00008086d00000154* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller + + pci:v00008086d00000154sv00001025sd00000813* +- ID_MODEL_FROM_DATABASE=Aspire R7-571 ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Aspire R7-571) + + pci:v00008086d00000154sv0000103Csd000017F6* +- ID_MODEL_FROM_DATABASE=ProBook 4540s ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (ProBook 4540s) + + pci:v00008086d00000154sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (N56VZ) + + pci:v00008086d00000154sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Zenbook Prime UX31A) + + pci:v00008086d00000155* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + + pci:v00008086d00000155sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) + + pci:v00008086d00000156* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller +@@ -55119,10 +55119,10 @@ pci:v00008086d00000158* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller + + pci:v00008086d00000158sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (P8 series motherboard) + + pci:v00008086d00000158sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (Server Board S1200BTS) + + pci:v00008086d00000159* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port +@@ -55137,7 +55137,7 @@ pci:v00008086d0000015D* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + + pci:v00008086d0000015Dsv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) + + pci:v00008086d0000015E* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller +@@ -55146,22 +55146,22 @@ pci:v00008086d00000162* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + + pci:v00008086d00000162sv00001849sd00000162* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) + + pci:v00008086d00000166* + ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller + + pci:v00008086d00000166sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (Zenbook Prime UX31A) + + pci:v00008086d00000166sv00001043sd00002103* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (N56VZ) + + pci:v00008086d0000016A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + + pci:v00008086d0000016Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8B WS Motherboard) + + pci:v00008086d00000172* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller +@@ -55179,19 +55179,19 @@ pci:v00008086d00000326* + ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A + + pci:v00008086d00000326sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (ProLiant DL140 G2) + + pci:v00008086d00000326sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (CR11/VR11 Single Board Computer) + + pci:v00008086d00000327* + ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B + + pci:v00008086d00000327sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (ProLiant DL140 G2) + + pci:v00008086d00000327sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (CR11/VR11 Single Board Computer) + + pci:v00008086d00000329* + ID_MODEL_FROM_DATABASE=6700PXH PCI Express-to-PCI Bridge A +@@ -55260,7 +55260,7 @@ pci:v00008086d00000416* + ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller + + pci:v00008086d00000416sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller (ThinkPad T440p) + + pci:v00008086d0000041A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller +@@ -55365,16 +55365,16 @@ pci:v00008086d00000600* + ID_MODEL_FROM_DATABASE=RAID Controller + + pci:v00008086d00000600sv00008086sd00000136* +- ID_MODEL_FROM_DATABASE=SRCU31L ++ ID_MODEL_FROM_DATABASE=RAID Controller (SRCU31L) + + pci:v00008086d00000600sv00008086sd000001AF* +- ID_MODEL_FROM_DATABASE=SRCZCR ++ ID_MODEL_FROM_DATABASE=RAID Controller (SRCZCR) + + pci:v00008086d00000600sv00008086sd000001C1* +- ID_MODEL_FROM_DATABASE=ICP Vortex GDT8546RZ ++ ID_MODEL_FROM_DATABASE=RAID Controller (ICP Vortex GDT8546RZ) + + pci:v00008086d00000600sv00008086sd000001F7* +- ID_MODEL_FROM_DATABASE=SCRU32 ++ ID_MODEL_FROM_DATABASE=RAID Controller (SCRU32) + + pci:v00008086d0000061F* + ID_MODEL_FROM_DATABASE=80303 I/O Processor +@@ -55467,301 +55467,301 @@ pci:v00008086d00000885* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 + + pci:v00008086d00000885sv00008086sd00001305* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) + + pci:v00008086d00000885sv00008086sd00001307* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) + + pci:v00008086d00000885sv00008086sd00001325* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) + + pci:v00008086d00000885sv00008086sd00001327* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) + + pci:v00008086d00000886* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 + + pci:v00008086d00000886sv00008086sd00001315* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) + + pci:v00008086d00000886sv00008086sd00001317* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) + + pci:v00008086d00000887* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 + + pci:v00008086d00000887sv00008086sd00004062* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) + + pci:v00008086d00000887sv00008086sd00004462* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) + + pci:v00008086d00000888* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 + + pci:v00008086d00000888sv00008086sd00004262* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) + + pci:v00008086d0000088E* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 + + pci:v00008086d0000088Esv00008086sd00004060* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) + + pci:v00008086d0000088Esv00008086sd00004460* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) + + pci:v00008086d0000088F* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 + + pci:v00008086d0000088Fsv00008086sd00004260* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) + + pci:v00008086d00000890* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 + + pci:v00008086d00000890sv00008086sd00004022* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000890sv00008086sd00004422* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000890sv00008086sd00004822* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000891* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 + + pci:v00008086d00000891sv00008086sd00004222* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) + + pci:v00008086d00000892* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 + + pci:v00008086d00000892sv00008086sd00000062* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) + + pci:v00008086d00000892sv00008086sd00000462* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) + + pci:v00008086d00000893* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 + + pci:v00008086d00000893sv00008086sd00000262* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) + + pci:v00008086d00000894* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 + + pci:v00008086d00000894sv00008086sd00000022* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000894sv00008086sd00000422* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000894sv00008086sd00000822* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000895* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 + + pci:v00008086d00000895sv00008086sd00000222* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) + + pci:v00008086d00000896* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 + + pci:v00008086d00000896sv00008086sd00005005* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) + + pci:v00008086d00000896sv00008086sd00005007* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) + + pci:v00008086d00000896sv00008086sd00005025* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) + + pci:v00008086d00000896sv00008086sd00005027* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) + + pci:v00008086d00000897* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 + + pci:v00008086d00000897sv00008086sd00005015* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) + + pci:v00008086d00000897sv00008086sd00005017* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) + + pci:v00008086d000008AE* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 + + pci:v00008086d000008AEsv00008086sd00001005* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) + + pci:v00008086d000008AEsv00008086sd00001007* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) + + pci:v00008086d000008AEsv00008086sd00001025* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) + + pci:v00008086d000008AEsv00008086sd00001027* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) + + pci:v00008086d000008AF* + ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 + + pci:v00008086d000008AFsv00008086sd00001015* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) + + pci:v00008086d000008AFsv00008086sd00001017* +- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG ++ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) + + pci:v00008086d000008B1* + ID_MODEL_FROM_DATABASE=Wireless 7260 + + pci:v00008086d000008B1sv00008086sd00004060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004062* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004160* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004162* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004460* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004462* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd00004470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000486E* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004870* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004A6C* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004A6E* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd00004A70* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000C020* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C062* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000C160* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C162* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B1sv00008086sd0000C420* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C460* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C462* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B1sv00008086sd0000C470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B2* + ID_MODEL_FROM_DATABASE=Wireless 7260 + + pci:v00008086d000008B2sv00008086sd00004220* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd00004260* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd00004262* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd00004270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B2sv00008086sd0000C220* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd0000C260* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd0000C262* +- ID_MODEL_FROM_DATABASE=Wireless-N 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) + + pci:v00008086d000008B2sv00008086sd0000C270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 ++ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) + + pci:v00008086d000008B3* + ID_MODEL_FROM_DATABASE=Wireless 3160 + + pci:v00008086d000008B3sv00008086sd00000060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-N 3160) + + pci:v00008086d000008B3sv00008086sd00000062* +- ID_MODEL_FROM_DATABASE=Wireless-N 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless-N 3160) + + pci:v00008086d000008B3sv00008086sd00000070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B3sv00008086sd00000170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B3sv00008086sd00000470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B3sv00008086sd00008060* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless N-3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless N-3160) + + pci:v00008086d000008B3sv00008086sd00008062* +- ID_MODEL_FROM_DATABASE=Wireless N-3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless N-3160) + + pci:v00008086d000008B3sv00008086sd00008070* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008B3sv00008086sd00008170* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008B3sv00008086sd00008470* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008B4* + ID_MODEL_FROM_DATABASE=Wireless 3160 + + pci:v00008086d000008B4sv00008086sd00000270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) + + pci:v00008086d000008B4sv00008086sd00008270* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 ++ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) + + pci:v00008086d000008CF* + ID_MODEL_FROM_DATABASE=Atom Processor Z2760 Integrated Graphics Controller +@@ -55770,106 +55770,106 @@ pci:v00008086d0000095A* + ID_MODEL_FROM_DATABASE=Wireless 7265 + + pci:v00008086d0000095Asv00008086sd00001010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005000* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005002* +- ID_MODEL_FROM_DATABASE=Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd0000500A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005012* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005020* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd0000502A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005090* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005100* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd0000510A* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005110* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005112* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005190* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005400* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005410* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005420* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Asv00008086sd00005490* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00005590* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009012* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009110* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009112* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009210* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009310* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009410* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Asv00008086sd00009510* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095B* + ID_MODEL_FROM_DATABASE=Wireless 7265 + + pci:v00008086d0000095Bsv00008086sd00005200* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) + + pci:v00008086d0000095Bsv00008086sd00005202* +- ID_MODEL_FROM_DATABASE=Wireless-N 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) + + pci:v00008086d0000095Bsv00008086sd00005210* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Bsv00008086sd00005290* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Bsv00008086sd00005302* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d0000095Bsv00008086sd00005310* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 ++ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) + + pci:v00008086d00000960* + ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor/Bridge +@@ -55884,7 +55884,7 @@ pci:v00008086d00000A04* + ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller + + pci:v00008086d00000A04sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller (ThinkPad X240) + + pci:v00008086d00000A06* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller +@@ -55893,13 +55893,13 @@ pci:v00008086d00000A0C* + ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller + + pci:v00008086d00000A0Csv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller (ThinkPad X240) + + pci:v00008086d00000A16* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller + + pci:v00008086d00000A16sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller (ThinkPad X240) + + pci:v00008086d00000A22* + ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller +@@ -55917,7 +55917,7 @@ pci:v00008086d00000BE1* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller + + pci:v00008086d00000BE1sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller (D270S/D250S Motherboard) + + pci:v00008086d00000BE2* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller +@@ -55980,7 +55980,7 @@ pci:v00008086d00000BF5* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller + + pci:v00008086d00000BF5sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller (D270S/D250S Motherboard) + + pci:v00008086d00000BF6* + ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller +@@ -55998,10 +55998,10 @@ pci:v00008086d00000C04* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller + + pci:v00008086d00000C04sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ZBook 15) + + pci:v00008086d00000C04sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ThinkPad T440p) + + pci:v00008086d00000C05* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller +@@ -56016,7 +56016,7 @@ pci:v00008086d00000C0C* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller + + pci:v00008086d00000C0Csv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (ThinkPad T440p) + + pci:v00008086d00000C46* + ID_MODEL_FROM_DATABASE=Atom Processor S1200 PCI Express Root Port 1 +@@ -56787,34 +56787,34 @@ pci:v00008086d00001000* + ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001000sv00000E11sd0000B0DF* +- ID_MODEL_FROM_DATABASE=NC6132 Gigabit Ethernet Adapter (1000-SX) ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6132 Gigabit Ethernet Adapter (1000-SX)) + + pci:v00008086d00001000sv00000E11sd0000B0E0* +- ID_MODEL_FROM_DATABASE=NC6133 Gigabit Ethernet Adapter (1000-LX) ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6133 Gigabit Ethernet Adapter (1000-LX)) + + pci:v00008086d00001000sv00000E11sd0000B123* +- ID_MODEL_FROM_DATABASE=NC6134 Gigabit Ethernet Adapter (1000-LX) ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6134 Gigabit Ethernet Adapter (1000-LX)) + + pci:v00008086d00001000sv00001014sd00000119* +- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) + + pci:v00008086d00001000sv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (PRO/1000 Gigabit Server Adapter) + + pci:v00008086d00001001* + ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001001sv00000E11sd0000004A* +- ID_MODEL_FROM_DATABASE=NC6136 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (NC6136 Gigabit Server Adapter) + + pci:v00008086d00001001sv00001014sd000001EA* +- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) + + pci:v00008086d00001001sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) + + pci:v00008086d00001001sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) + + pci:v00008086d00001002* + ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II +@@ -56823,64 +56823,64 @@ pci:v00008086d00001002sv00008086sd0000200E* + ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II + + pci:v00008086d00001002sv00008086sd00002013* +- ID_MODEL_FROM_DATABASE=Pro 100 SR Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 SR Mobile Combo Adapter) + + pci:v00008086d00001002sv00008086sd00002017* +- ID_MODEL_FROM_DATABASE=Pro 100 S Combo Mobile Adapter ++ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 S Combo Mobile Adapter) + + pci:v00008086d00001004* + ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001004sv00000E11sd00000049* +- ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7132 Gigabit Upgrade Module) + + pci:v00008086d00001004sv00000E11sd0000B1A4* +- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7131 Gigabit Server Adapter) + + pci:v00008086d00001004sv00001014sd000010F2* +- ID_MODEL_FROM_DATABASE=Gigabit Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (Gigabit Ethernet Server Adapter) + + pci:v00008086d00001004sv00008086sd00001004* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) + + pci:v00008086d00001004sv00008086sd00002004* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter ++ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) + + pci:v00008086d00001008* + ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001008sv00001014sd00000269* +- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) + + pci:v00008086d00001008sv00001028sd0000011B* +- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PowerEdge 1650/2550) + + pci:v00008086d00001008sv00001028sd0000011C* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) + + pci:v00008086d00001008sv00008086sd00001107* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) + + pci:v00008086d00001008sv00008086sd00002107* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) + + pci:v00008086d00001008sv00008086sd00002110* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Desktop Adapter) + + pci:v00008086d00001008sv00008086sd00003108* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) + + pci:v00008086d00001009* + ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001009sv00001014sd00000268* +- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) + + pci:v00008086d00001009sv00008086sd00001109* +- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) + + pci:v00008086d00001009sv00008086sd00002109* +- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter ++ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) + + pci:v00008086d0000100A* + ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller +@@ -56889,286 +56889,286 @@ pci:v00008086d0000100C* + ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000100Csv00008086sd00001112* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) + + pci:v00008086d0000100Csv00008086sd00002112* +- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) + + pci:v00008086d0000100D* + ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) + + pci:v00008086d0000100Dsv00001028sd00000123* +- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (PRO/1000 XT Network Connection) + + pci:v00008086d0000100Dsv00001079sd0000891F* +- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) + + pci:v00008086d0000100Dsv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (CT8 mainboard) + + pci:v00008086d0000100Dsv00008086sd0000110D* +- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection ++ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) + + pci:v00008086d0000100E* + ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller + + pci:v00008086d0000100Esv00001014sd00000265* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Esv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Esv00001014sd0000026A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Esv00001028sd0000002E* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX260) + + pci:v00008086d0000100Esv00001028sd00000134* +- ID_MODEL_FROM_DATABASE=PowerEdge 600SC ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PowerEdge 600SC) + + pci:v00008086d0000100Esv00001028sd00000151* +- ID_MODEL_FROM_DATABASE=Optiplex GX270 ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX270) + + pci:v00008086d0000100Esv0000107Bsd00008920* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d0000100Esv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (QEMU Virtual Machine) + + pci:v00008086d0000100Esv00008086sd0000001E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d0000100Esv00008086sd0000002E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d0000100Esv00008086sd00001376* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000100Esv00008086sd00001476* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000100F* + ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000100Fsv00001014sd00000269* +- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) + + pci:v00008086d0000100Fsv00001014sd0000028E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Fsv000015ADsd00000750* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Single Port Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter) + + pci:v00008086d0000100Fsv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) + + pci:v00008086d0000100Fsv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Server Adapter) + + pci:v00008086d00001010* + ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001010sv00000E11sd000000DB* +- ID_MODEL_FROM_DATABASE=NC7170 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (NC7170 Gigabit Server Adapter) + + pci:v00008086d00001010sv00001014sd0000027C* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Adapter) + + pci:v00008086d00001010sv000015ADsd00000760* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Adapter) + + pci:v00008086d00001010sv000018FBsd00007872* +- ID_MODEL_FROM_DATABASE=RESlink-X ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (RESlink-X) + + pci:v00008086d00001010sv00001FC1sd00000026* +- ID_MODEL_FROM_DATABASE=Niagara 2260 Bypass Card ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (Niagara 2260 Bypass Card) + + pci:v00008086d00001010sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CT8 mainboard) + + pci:v00008086d00001010sv00004C53sd000010A0* +- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CA3/CR3 mainboard) + + pci:v00008086d00001010sv00008086sd00001011* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d00001010sv00008086sd00001012* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d00001010sv00008086sd0000101A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Connection) + + pci:v00008086d00001010sv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (SE7501HG2 Mainboard) + + pci:v00008086d00001011* + ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001011sv00001014sd00000268* +- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) + + pci:v00008086d00001011sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter) + + pci:v00008086d00001011sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter (LX) ++ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter (LX)) + + pci:v00008086d00001012* + ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) + + pci:v00008086d00001012sv00000E11sd000000DC* +- ID_MODEL_FROM_DATABASE=NC6170 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (NC6170 Gigabit Server Adapter) + + pci:v00008086d00001012sv00008086sd00001012* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Dual Port Server Adapter) + + pci:v00008086d00001013* + ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller + + pci:v00008086d00001013sv00008086sd00000013* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001013sv00008086sd00001013* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001013sv00008086sd00001113* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d00001014* + ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller + + pci:v00008086d00001014sv00008086sd00000014* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Connection ++ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Desktop Connection) + + pci:v00008086d00001014sv00008086sd00001014* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001015* + ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) + + pci:v00008086d00001015sv00008086sd00001015* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001016* + ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) + + pci:v00008086d00001016sv00001014sd0000052C* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001016sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001016sv00008086sd00001016* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001017* + ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller + + pci:v00008086d00001017sv00008086sd00001017* +- ID_MODEL_FROM_DATABASE=PR0/1000 MT Desktop Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (PR0/1000 MT Desktop Connection) + + pci:v00008086d00001018* + ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller + + pci:v00008086d00001018sv00008086sd00001018* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001019* + ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller + + pci:v00008086d00001019sv00001458sd00001019* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d00001019sv00001458sd0000E000* +- ID_MODEL_FROM_DATABASE=Intel Gigabit Ethernet (Kenai II) ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel Gigabit Ethernet (Kenai II)) + + pci:v00008086d00001019sv00008086sd00001019* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Desktop Connection ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (PRO/1000 CT Desktop Connection) + + pci:v00008086d00001019sv00008086sd0000301F* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D865PERL mainboard) + + pci:v00008086d00001019sv00008086sd00003025* +- ID_MODEL_FROM_DATABASE=D875PBZ motherboard ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D875PBZ motherboard) + + pci:v00008086d00001019sv00008086sd0000302C* +- ID_MODEL_FROM_DATABASE=Intel 82865G Mainboard (D865GBF) ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel 82865G Mainboard (D865GBF)) + + pci:v00008086d00001019sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (S875WP1-E mainboard) + + pci:v00008086d0000101A* + ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) + + pci:v00008086d0000101Asv00008086sd0000101A* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) (PRO/1000 CT Mobile Connection) + + pci:v00008086d0000101D* + ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller + + pci:v00008086d0000101Dsv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (PRO/1000 MT Quad Port Server Adapter) + + pci:v00008086d0000101E* + ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) + + pci:v00008086d0000101Esv00001014sd00000549* +- ID_MODEL_FROM_DATABASE=Thinkpad ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (Thinkpad) + + pci:v00008086d0000101Esv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d0000101Esv00008086sd0000101E* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001026* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + + pci:v00008086d00001026sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d00001026sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision 470) + + pci:v00008086d00001026sv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) + + pci:v00008086d00001026sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) + + pci:v00008086d00001026sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) + + pci:v00008086d00001026sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 GT Server Adapter) + + pci:v00008086d00001026sv00008086sd00001026* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) + + pci:v00008086d00001027* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + + pci:v00008086d00001027sv0000103Csd00003103* +- ID_MODEL_FROM_DATABASE=NC310F PCI-X Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (NC310F PCI-X Gigabit Server Adapter) + + pci:v00008086d00001027sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) + + pci:v00008086d00001027sv00008086sd00001002* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) + + pci:v00008086d00001027sv00008086sd00001003* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) + + pci:v00008086d00001027sv00008086sd00001027* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter) + + pci:v00008086d00001028* + ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller + + pci:v00008086d00001028sv00008086sd00001028* +- ID_MODEL_FROM_DATABASE=PRO/1000 MB Server Connection ++ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MB Server Connection) + + pci:v00008086d00001029* + ID_MODEL_FROM_DATABASE=82559 Ethernet Controller +@@ -57180,31 +57180,31 @@ pci:v00008086d00001031* + ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller + + pci:v00008086d00001031sv00001014sd00000209* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (ThinkPad A/T/X Series) + + pci:v00008086d00001031sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00001031sv0000104Dsd0000813C* +- ID_MODEL_FROM_DATABASE=Vaio PCG-GRV616G ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GRV616G) + + pci:v00008086d00001031sv0000107Bsd00005350* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C000* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C003* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00001031sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (vpr Matrix 170B4) + + pci:v00008086d00001032* + ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE Ethernet Controller +@@ -57228,16 +57228,16 @@ pci:v00008086d00001038* + ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller + + pci:v00008086d00001038sv00000E11sd00000098* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller (Evo N600c) + + pci:v00008086d00001039* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller + + pci:v00008086d00001039sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (NetVista A30p) + + pci:v00008086d00001039sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH1 ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (PC8 onboard ethernet ETH1) + + pci:v00008086d0000103A* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (CNR) Ethernet Controller +@@ -57252,13 +57252,13 @@ pci:v00008086d0000103D* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller + + pci:v00008086d0000103Dsv00001014sd00000522* +- ID_MODEL_FROM_DATABASE=ThinkPad R40 ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (ThinkPad R40) + + pci:v00008086d0000103Dsv00001028sd00002002* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (Latitude D500) + + pci:v00008086d0000103Dsv00008086sd0000103D* +- ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller ++ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (82562EZ 10/100 Ethernet Controller) + + pci:v00008086d0000103E* + ID_MODEL_FROM_DATABASE=82801DB PRO/100 VM (MOB) Ethernet Controller +@@ -57267,43 +57267,43 @@ pci:v00008086d00001040* + ID_MODEL_FROM_DATABASE=536EP Data Fax Modem + + pci:v00008086d00001040sv000016BEsd00001040* +- ID_MODEL_FROM_DATABASE=V.9X DSP Data Fax Modem ++ ID_MODEL_FROM_DATABASE=536EP Data Fax Modem (V.9X DSP Data Fax Modem) + + pci:v00008086d00001043* + ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter + + pci:v00008086d00001043sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (tc1100 tablet) + + pci:v00008086d00001043sv00008086sd00002522* +- ID_MODEL_FROM_DATABASE=Samsung X10/P30 integrated WLAN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Samsung X10/P30 integrated WLAN) + + pci:v00008086d00001043sv00008086sd00002527* +- ID_MODEL_FROM_DATABASE=MIM2000/Centrino ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (MIM2000/Centrino) + + pci:v00008086d00001043sv00008086sd00002561* +- ID_MODEL_FROM_DATABASE=Dell Latitude D800 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Dell Latitude D800) + + pci:v00008086d00001043sv00008086sd00002581* +- ID_MODEL_FROM_DATABASE=Toshiba Satellite M10 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Toshiba Satellite M10) + + pci:v00008086d00001048* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d00001048sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001048sv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001049* + ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection + + pci:v00008086d00001049sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (Compaq 6910p) + + pci:v00008086d00001049sv000017AAsd000020B9* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (ThinkPad T61/R61) + + pci:v00008086d0000104A* + ID_MODEL_FROM_DATABASE=82566DM Gigabit Network Connection +@@ -57321,22 +57321,22 @@ pci:v00008086d00001050* + ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller + + pci:v00008086d00001050sv00001028sd0000019D* +- ID_MODEL_FROM_DATABASE=Dimension 3000 ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Dimension 3000) + + pci:v00008086d00001050sv00001462sd0000728C* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d00001050sv00001462sd0000758C* +- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (MS-6758 (875P Neo)) + + pci:v00008086d00001050sv00008086sd00003020* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (D865PERL mainboard) + + pci:v00008086d00001050sv00008086sd0000302F* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Desktop Board D865GBF) + + pci:v00008086d00001050sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (S875WP1-E mainboard) + + pci:v00008086d00001051* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) integrated LAN Controller +@@ -57369,70 +57369,70 @@ pci:v00008086d0000105E* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d0000105Esv0000103Csd00007044* +- ID_MODEL_FROM_DATABASE=NC360T PCI Express Dual Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (NC360T PCI Express Dual Port Gigabit Server Adapter) + + pci:v00008086d0000105Esv0000103Csd0000704E* +- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T (PCIe) [AD337A] ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-T (PCIe) [AD337A]) + + pci:v00008086d0000105Esv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d0000105Esv00001775sd00006003* +- ID_MODEL_FROM_DATABASE=Telum GE-QT ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Telum GE-QT) + + pci:v00008086d0000105Esv000018DFsd00001214* +- ID_MODEL_FROM_DATABASE=2x 1GbE, PCIe x1, dual Intel 82571EB chips ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (2x 1GbE, PCIe x1, dual Intel 82571EB chips) + + pci:v00008086d0000105Esv00008086sd0000005E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Connection) + + pci:v00008086d0000105Esv00008086sd0000105E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Network Connection) + + pci:v00008086d0000105Esv00008086sd000010D5* +- ID_MODEL_FROM_DATABASE=82571PT Gigabit PT Quad Port Server ExpressModule ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (82571PT Gigabit PT Quad Port Server ExpressModule) + + pci:v00008086d0000105Esv00008086sd0000115E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) + + pci:v00008086d0000105Esv00008086sd0000125E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) + + pci:v00008086d0000105Esv00008086sd0000135E* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) + + pci:v00008086d0000105F* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d0000105Fsv0000103Csd0000704F* +- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-SX (PCIe) [AD338A] ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-SX (PCIe) [AD338A]) + + pci:v00008086d0000105Fsv00008086sd0000005A* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d0000105Fsv00008086sd0000115F* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d0000105Fsv00008086sd0000125F* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d0000105Fsv00008086sd0000135F* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) + + pci:v00008086d00001060* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d00001060sv00008086sd00000060* +- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) + + pci:v00008086d00001060sv00008086sd00001060* +- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) + + pci:v00008086d00001064* + ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller + + pci:v00008086d00001064sv00001043sd000080F8* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller (P5GD1-VW Mainboard) + + pci:v00008086d00001065* + ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller +@@ -57459,148 +57459,148 @@ pci:v00008086d00001075* + ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller + + pci:v00008086d00001075sv00001028sd00000165* +- ID_MODEL_FROM_DATABASE=PowerEdge 750 ++ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PowerEdge 750) + + pci:v00008086d00001075sv00008086sd00000075* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection ++ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) + + pci:v00008086d00001075sv00008086sd00001075* +- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection ++ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) + + pci:v00008086d00001076* + ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller + + pci:v00008086d00001076sv00001028sd00000165* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00001028sd0000106D* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00008086sd00000076* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00008086sd00001076* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) + + pci:v00008086d00001076sv00008086sd00001176* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) + + pci:v00008086d00001076sv00008086sd00001276* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Adapter ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Adapter) + + pci:v00008086d00001077* + ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller + + pci:v00008086d00001077sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001077sv00008086sd00000077* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001077sv00008086sd00001077* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection ++ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) + + pci:v00008086d00001078* + ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller + + pci:v00008086d00001078sv00008086sd00001078* +- ID_MODEL_FROM_DATABASE=82541ER-based Network Connection ++ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (82541ER-based Network Connection) + + pci:v00008086d00001079* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d00001079sv0000103Csd000012A6* +- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T [A9900A] ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000Base-T [A9900A]) + + pci:v00008086d00001079sv0000103Csd000012CF* +- ID_MODEL_FROM_DATABASE=Core Dual Port 1000Base-T [AB352A] ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Core Dual Port 1000Base-T [AB352A]) + + pci:v00008086d00001079sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (V5D Single Board Computer Gigabit Ethernet) + + pci:v00008086d00001079sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CE9) + + pci:v00008086d00001079sv00001FC1sd00000027* +- ID_MODEL_FROM_DATABASE=Niagara 2261 Failover NIC ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Niagara 2261 Failover NIC) + + pci:v00008086d00001079sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d00001079sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CL9 mainboard) + + pci:v00008086d00001079sv00008086sd00000079* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) + + pci:v00008086d00001079sv00008086sd00001079* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) + + pci:v00008086d00001079sv00008086sd00001179* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d00001079sv00008086sd0000117A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) + + pci:v00008086d0000107A* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d0000107Asv0000103Csd000012A8* +- ID_MODEL_FROM_DATABASE=Dual Port 1000base-SX [A9899A] ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000base-SX [A9899A]) + + pci:v00008086d0000107Asv00008086sd0000107A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) + + pci:v00008086d0000107Asv00008086sd0000127A* +- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) + + pci:v00008086d0000107B* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d0000107Bsv00008086sd0000007B* +- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) + + pci:v00008086d0000107Bsv00008086sd0000107B* +- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) + + pci:v00008086d0000107C* + ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller + + pci:v00008086d0000107Csv00008086sd00001376* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000107Csv00008086sd00001476* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) + + pci:v00008086d0000107D* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000107Dsv00008086sd00001082* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) + + pci:v00008086d0000107Dsv00008086sd00001084* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) + + pci:v00008086d0000107Dsv00008086sd00001092* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) + + pci:v00008086d0000107E* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) + + pci:v00008086d0000107Esv00008086sd00001084* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) + + pci:v00008086d0000107Esv00008086sd00001085* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) + + pci:v00008086d0000107Esv00008086sd00001094* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) + + pci:v00008086d0000107F* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller +@@ -57636,16 +57636,16 @@ pci:v00008086d0000108A* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller + + pci:v00008086d0000108Asv00008086sd0000108A* +- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) + + pci:v00008086d0000108Asv00008086sd0000118A* +- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) + + pci:v00008086d0000108B* + ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) + + pci:v00008086d0000108Bsv00001462sd0000176C* +- ID_MODEL_FROM_DATABASE=on board on MSI 945P - NEO (MS-7176) ++ ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) (on board on MSI 945P - NEO (MS-7176)) + + pci:v00008086d0000108C* + ID_MODEL_FROM_DATABASE=82573E Gigabit Ethernet Controller (Copper) +@@ -57675,13 +57675,13 @@ pci:v00008086d00001096* + ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001096sv000015D9sd00001096* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Motherboard) + + pci:v00008086d00001096sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (X7DVL-E-O motherboard) + + pci:v00008086d00001096sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Intel S5000PSLSATA Server Board) + + pci:v00008086d00001097* + ID_MODEL_FROM_DATABASE=631xESB/632xESB DPT LAN Controller (Fiber) +@@ -57693,28 +57693,28 @@ pci:v00008086d00001099* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) + + pci:v00008086d00001099sv00008086sd00001099* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) + + pci:v00008086d0000109A* + ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller + + pci:v00008086d0000109Asv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=PRO/1000 PL ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL) + + pci:v00008086d0000109Asv000017AAsd00002001* +- ID_MODEL_FROM_DATABASE=ThinkPad T60 ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad T60) + + pci:v00008086d0000109Asv000017AAsd0000207E* +- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad X60/X60s) + + pci:v00008086d0000109Asv00008086sd0000109A* +- ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL Network Connection) + + pci:v00008086d0000109Asv00008086sd0000309C* +- ID_MODEL_FROM_DATABASE=Desktop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D945GTP) + + pci:v00008086d0000109Asv00008086sd000030A5* +- ID_MODEL_FROM_DATABASE=Desktop Board D975XBX ++ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D975XBX) + + pci:v00008086d0000109B* + ID_MODEL_FROM_DATABASE=82546GB PRO/1000 GF Quad Port Server Adapter +@@ -57723,10 +57723,10 @@ pci:v00008086d0000109E* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d0000109Esv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) + + pci:v00008086d0000109Esv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) + + pci:v00008086d000010A0* + ID_MODEL_FROM_DATABASE=82571EB PRO/1000 AT Quad Port Bypass Adapter +@@ -57738,19 +57738,19 @@ pci:v00008086d000010A4* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller + + pci:v00008086d000010A4sv00008086sd000010A4* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) + + pci:v00008086d000010A4sv00008086sd000011A4* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) + + pci:v00008086d000010A5* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) + + pci:v00008086d000010A5sv00008086sd000010A5* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) + + pci:v00008086d000010A5sv00008086sd000010A6* +- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) + + pci:v00008086d000010A6* + ID_MODEL_FROM_DATABASE=82599EB 10-Gigabit Dummy Function +@@ -57759,7 +57759,7 @@ pci:v00008086d000010A7* + ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection + + pci:v00008086d000010A7sv00008086sd000010A8* +- ID_MODEL_FROM_DATABASE=82575EB Gigabit Riser Card ++ ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection (82575EB Gigabit Riser Card) + + pci:v00008086d000010A9* + ID_MODEL_FROM_DATABASE=82575EB Gigabit Backplane Connection +@@ -57780,13 +57780,13 @@ pci:v00008086d000010B5* + ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) + + pci:v00008086d000010B5sv0000103Csd00003109* +- ID_MODEL_FROM_DATABASE=NC340T PCI-X Quad-port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (NC340T PCI-X Quad-port Gigabit Server Adapter) + + pci:v00008086d000010B5sv00008086sd00001099* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) + + pci:v00008086d000010B5sv00008086sd00001199* +- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) + + pci:v00008086d000010B6* + ID_MODEL_FROM_DATABASE=82598 10GbE PCI-Express Ethernet Controller +@@ -57795,13 +57795,13 @@ pci:v00008086d000010B9* + ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) + + pci:v00008086d000010B9sv0000103Csd0000704A* +- ID_MODEL_FROM_DATABASE=HP 110T PCIe Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (HP 110T PCIe Gigabit Server Adapter) + + pci:v00008086d000010B9sv00008086sd00001083* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) + + pci:v00008086d000010B9sv00008086sd00001093* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) + + pci:v00008086d000010BA* + ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) +@@ -57813,22 +57813,22 @@ pci:v00008086d000010BC* + ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) + + pci:v00008086d000010BCsv0000103Csd0000704B* +- ID_MODEL_FROM_DATABASE=NC364T PCI Express Quad Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (NC364T PCI Express Quad Port Gigabit Server Adapter) + + pci:v00008086d000010BCsv0000108Esd000011BC* +- ID_MODEL_FROM_DATABASE=x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter) + + pci:v00008086d000010BCsv00008086sd000010BC* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) + + pci:v00008086d000010BCsv00008086sd000011BC* +- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) + + pci:v00008086d000010BD* + ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection + + pci:v00008086d000010BDsv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection (OptiPlex 755) + + pci:v00008086d000010BF* + ID_MODEL_FROM_DATABASE=82567LF Gigabit Network Connection +@@ -57837,7 +57837,7 @@ pci:v00008086d000010C0* + ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection + + pci:v00008086d000010C0sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection (Inspiron 530) + + pci:v00008086d000010C2* + ID_MODEL_FROM_DATABASE=82562G-2 10/100 Network Connection +@@ -57855,67 +57855,67 @@ pci:v00008086d000010C6* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection + + pci:v00008086d000010C6sv00008086sd0000A05F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) + + pci:v00008086d000010C6sv00008086sd0000A15F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) + + pci:v00008086d000010C7* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection + + pci:v00008086d000010C7sv00001014sd0000037F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C7sv00001014sd00000380* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) + + pci:v00008086d000010C7sv00008086sd0000A05F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C7sv00008086sd0000A15F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C7sv00008086sd0000A16F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) + + pci:v00008086d000010C8* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection + + pci:v00008086d000010C8sv00008086sd0000A10C* +- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) + + pci:v00008086d000010C8sv00008086sd0000A11C* +- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) + + pci:v00008086d000010C8sv00008086sd0000A12C* +- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) + + pci:v00008086d000010C9* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010C9sv0000103Csd000031EF* +- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) + + pci:v00008086d000010C9sv0000103Csd0000323F* +- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) + + pci:v00008086d000010C9sv000010A9sd00008028* +- ID_MODEL_FROM_DATABASE=UV-BaseIO dual-port GbE ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (UV-BaseIO dual-port GbE) + + pci:v00008086d000010C9sv000013A3sd00000037* +- ID_MODEL_FROM_DATABASE=DS4100 Secure Multi-Gigabit Server Adapter with Compression ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (DS4100 Secure Multi-Gigabit Server Adapter with Compression) + + pci:v00008086d000010C9sv000015D9sd0000A811* +- ID_MODEL_FROM_DATABASE=H8DGU ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (H8DGU) + + pci:v00008086d000010C9sv00008086sd0000A01C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) + + pci:v00008086d000010C9sv00008086sd0000A03C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) + + pci:v00008086d000010C9sv00008086sd0000A04C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) + + pci:v00008086d000010CA* + ID_MODEL_FROM_DATABASE=82576 Virtual Function +@@ -57936,34 +57936,34 @@ pci:v00008086d000010D3* + ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection + + pci:v00008086d000010D3sv0000103Csd00003250* +- ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (NC112T PCI Express single Port Gigabit Server Adapter) + + pci:v00008086d000010D3sv00001043sd00008369* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Motherboard) + + pci:v00008086d000010D3sv000010A9sd00008029* +- ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Prism XL Single Port Gigabit Ethernet) + + pci:v00008086d000010D3sv000015D9sd0000060A* +- ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (X7SPA-H/X7SPA-HF Motherboard) + + pci:v00008086d000010D3sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (C7SIM-Q Motherboard) + + pci:v00008086d000010D3sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT2 Desktop Adapter) + + pci:v00008086d000010D3sv00008086sd0000357A* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Server Board S1200BTS) + + pci:v00008086d000010D3sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT Desktop Adapter) + + pci:v00008086d000010D3sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC1-GROOVE) + + pci:v00008086d000010D3sv0000E4BFsd000050C2* +- ID_MODEL_FROM_DATABASE=PC2-LIMBO ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC2-LIMBO) + + pci:v00008086d000010D4* + ID_MODEL_FROM_DATABASE=Matrox Concord GE (customized Intel 82574) +@@ -57975,13 +57975,13 @@ pci:v00008086d000010D6* + ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection + + pci:v00008086d000010D6sv00008086sd000010D6* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010D6sv00008086sd0000145A* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010D6sv00008086sd0000147A* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010D8* + ID_MODEL_FROM_DATABASE=82599EB 10 Gigabit Unprogrammed +@@ -57990,13 +57990,13 @@ pci:v00008086d000010D9* + ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter + + pci:v00008086d000010D9sv0000103Csd00001716* +- ID_MODEL_FROM_DATABASE=NC360m Dual Port 1GbE BL-c Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter (NC360m Dual Port 1GbE BL-c Adapter) + + pci:v00008086d000010DA* + ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter + + pci:v00008086d000010DAsv0000103Csd00001717* +- ID_MODEL_FROM_DATABASE=NC364m Quad Port 1GbE BL-c Adapter ++ ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter (NC364m Quad Port 1GbE BL-c Adapter) + + pci:v00008086d000010DB* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit Dual Port Network Connection +@@ -58014,13 +58014,13 @@ pci:v00008086d000010E1* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection + + pci:v00008086d000010E1sv00008086sd0000A15F* +- ID_MODEL_FROM_DATABASE=10-Gigabit SR Dual Port Express Module ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit SR Dual Port Express Module) + + pci:v00008086d000010E2* + ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection + + pci:v00008086d000010E2sv00008086sd000010E2* +- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) + + pci:v00008086d000010E5* + ID_MODEL_FROM_DATABASE=82567LM-4 Gigabit Network Connection +@@ -58029,37 +58029,37 @@ pci:v00008086d000010E6* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010E6sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) + + pci:v00008086d000010E6sv00008086sd0000A02F* +- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) + + pci:v00008086d000010E7* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010E7sv0000103Csd000031FF* +- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual Port BL-c Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual Port BL-c Gigabit Server Adapter) + + pci:v00008086d000010E8* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d000010E8sv00008086sd0000A02B* +- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) + + pci:v00008086d000010E8sv00008086sd0000A02C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) + + pci:v00008086d000010EA* + ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection + + pci:v00008086d000010EAsv00001028sd0000040A* +- ID_MODEL_FROM_DATABASE=Latitude E6410 ++ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6410) + + pci:v00008086d000010EAsv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6510) + + pci:v00008086d000010EAsv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (PC1-GROOVE) + + pci:v00008086d000010EB* + ID_MODEL_FROM_DATABASE=82577LC Gigabit Network Connection +@@ -58068,10 +58068,10 @@ pci:v00008086d000010EC* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection + + pci:v00008086d000010ECsv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) + + pci:v00008086d000010ECsv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) + + pci:v00008086d000010ED* + ID_MODEL_FROM_DATABASE=82599 Ethernet Controller Virtual Function +@@ -58080,10 +58080,10 @@ pci:v00008086d000010EF* + ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection + + pci:v00008086d000010EFsv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (OptiPlex 980) + + pci:v00008086d000010EFsv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (C7SIM-Q Motherboard) + + pci:v00008086d000010F0* + ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection +@@ -58092,19 +58092,19 @@ pci:v00008086d000010F1* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection + + pci:v00008086d000010F1sv00008086sd0000A20F* +- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) + + pci:v00008086d000010F1sv00008086sd0000A21F* +- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) + + pci:v00008086d000010F4* + ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection + + pci:v00008086d000010F4sv00008086sd0000106F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) + + pci:v00008086d000010F4sv00008086sd0000A06F* +- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) + + pci:v00008086d000010F5* + ID_MODEL_FROM_DATABASE=82567LM Gigabit Network Connection +@@ -58116,25 +58116,25 @@ pci:v00008086d000010F7* + ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection + + pci:v00008086d000010F7sv0000108Esd00007B12* +- ID_MODEL_FROM_DATABASE=Sun Dual 10GbE PCIe 2.0 FEM ++ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Sun Dual 10GbE PCIe 2.0 FEM) + + pci:v00008086d000010F7sv00008086sd0000000D* +- ID_MODEL_FROM_DATABASE=Ethernet Mezzanine Adapter X520-KX4-2 ++ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Ethernet Mezzanine Adapter X520-KX4-2) + + pci:v00008086d000010F8* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection + + pci:v00008086d000010F8sv00001028sd00001F63* +- ID_MODEL_FROM_DATABASE=10GbE 2P X520k bNDC ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (10GbE 2P X520k bNDC) + + pci:v00008086d000010F8sv0000103Csd000017D2* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560M Adapter) + + pci:v00008086d000010F8sv0000103Csd000018D0* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLB Adapter ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560FLB Adapter) + + pci:v00008086d000010F8sv00008086sd0000000C* +- ID_MODEL_FROM_DATABASE=Ethernet X520 10GbE Dual Port KX4-KR Mezz ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet X520 10GbE Dual Port KX4-KR Mezz) + + pci:v00008086d000010F9* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection +@@ -58143,58 +58143,58 @@ pci:v00008086d000010FB* + ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection + + pci:v00008086d000010FBsv00001028sd00001F72* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X520/I350 rNDC ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10G 4P X520/I350 rNDC) + + pci:v00008086d000010FBsv0000103Csd000017D0* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560FLR-SFP+ Adapter) + + pci:v00008086d000010FBsv0000103Csd000017D2* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560M Adapter) + + pci:v00008086d000010FBsv0000103Csd000017D3* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560SFP+ Adapter) + + pci:v00008086d000010FBsv0000103Csd0000211B* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port P560FLR-SFP+ Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port P560FLR-SFP+ Adapter) + + pci:v00008086d000010FBsv0000103Csd00002147* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port 561i Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port 561i Adapter) + + pci:v00008086d000010FBsv0000103Csd00002159* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 562i Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 562i Adapter) + + pci:v00008086d000010FBsv0000108Esd00007B11* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00001734sd000011A9* +- ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (10 Gigabit Dual Port Network Connection) + + pci:v00008086d000010FBsv000017AAsd00001071* +- ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (ThinkServer X520-2 AnyFabric) + + pci:v00008086d000010FBsv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-DA2) + + pci:v00008086d000010FBsv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) + + pci:v00008086d000010FBsv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet OCP Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd0000000A* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) + + pci:v00008086d000010FBsv00008086sd0000000C* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd00007A11* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FBsv00008086sd00007A12* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 ++ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) + + pci:v00008086d000010FC* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection +@@ -58209,19 +58209,19 @@ pci:v00008086d00001130* + ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub + + pci:v00008086d00001130sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Travelmate 612 TX) + + pci:v00008086d00001130sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (TUSL2-C Mainboard) + + pci:v00008086d00001130sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Vaio PCG-FX403) + + pci:v00008086d00001130sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EEA2 mainboard) + + pci:v00008086d00001130sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EGEW Mainboard) + + pci:v00008086d00001131* + ID_MODEL_FROM_DATABASE=82815 815 Chipset AGP Bridge +@@ -58230,28 +58230,28 @@ pci:v00008086d00001132* + ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) + + pci:v00008086d00001132sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Travelmate 612 TX) + + pci:v00008086d00001132sv0000103Csd00002001* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (e-pc 40) + + pci:v00008086d00001132sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Vaio PCG-FX403) + + pci:v00008086d00001132sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 Mainboard ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA2 Mainboard) + + pci:v00008086d00001132sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=D815EEA Motherboard ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA Motherboard) + + pci:v00008086d00001132sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EGEW Mainboard) + + pci:v00008086d00001161* + ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller + + pci:v00008086d00001161sv00008086sd00001161* +- ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub APIC ++ ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller (82806AA PCI64 Hub APIC) + + pci:v00008086d00001162* + ID_MODEL_FROM_DATABASE=Xscale 80200 Big Endian Companion Chip +@@ -58260,25 +58260,25 @@ pci:v00008086d00001200* + ID_MODEL_FROM_DATABASE=IXP1200 Network Processor + + pci:v00008086d00001200sv0000172Asd00000000* +- ID_MODEL_FROM_DATABASE=AEP SSL Accelerator ++ ID_MODEL_FROM_DATABASE=IXP1200 Network Processor (AEP SSL Accelerator) + + pci:v00008086d00001209* + ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller + + pci:v00008086d00001209sv0000140Bsd00000610* +- ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PMC610 quad Ethernet board) + + pci:v00008086d00001209sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (QEMU Virtual Machine) + + pci:v00008086d00001209sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CT7 mainboard) + + pci:v00008086d00001209sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CE7 mainboard) + + pci:v00008086d00001209sv00004C53sd00001070* +- ID_MODEL_FROM_DATABASE=PC6 mainboard ++ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PC6 mainboard) + + pci:v00008086d00001221* + ID_MODEL_FROM_DATABASE=82092AA PCI to PCMCIA Bridge +@@ -58305,487 +58305,487 @@ pci:v00008086d00001229* + ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 + + pci:v00008086d00001229sv00000E11sd00003001* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003002* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003003* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003004* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003005* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003006* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd00003007* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) + + pci:v00008086d00001229sv00000E11sd0000B01E* +- ID_MODEL_FROM_DATABASE=NC3120 Fast Ethernet NIC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3120 Fast Ethernet NIC) + + pci:v00008086d00001229sv00000E11sd0000B01F* +- ID_MODEL_FROM_DATABASE=NC3122 Fast Ethernet NIC (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3122 Fast Ethernet NIC (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B02F* +- ID_MODEL_FROM_DATABASE=NC1120 Ethernet NIC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC1120 Ethernet NIC) + + pci:v00008086d00001229sv00000E11sd0000B04A* +- ID_MODEL_FROM_DATABASE=Netelligent 10/100TX NIC with Wake on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netelligent 10/100TX NIC with Wake on LAN) + + pci:v00008086d00001229sv00000E11sd0000B0C6* +- ID_MODEL_FROM_DATABASE=NC3161 Fast Ethernet NIC (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3161 Fast Ethernet NIC (embedded, WOL)) + + pci:v00008086d00001229sv00000E11sd0000B0C7* +- ID_MODEL_FROM_DATABASE=NC3160 Fast Ethernet NIC (embedded) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3160 Fast Ethernet NIC (embedded)) + + pci:v00008086d00001229sv00000E11sd0000B0D7* +- ID_MODEL_FROM_DATABASE=NC3121 Fast Ethernet NIC (WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3121 Fast Ethernet NIC (WOL)) + + pci:v00008086d00001229sv00000E11sd0000B0DD* +- ID_MODEL_FROM_DATABASE=NC3131 Fast Ethernet NIC (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3131 Fast Ethernet NIC (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B0DE* +- ID_MODEL_FROM_DATABASE=NC3132 Fast Ethernet Module (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3132 Fast Ethernet Module (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B0E1* +- ID_MODEL_FROM_DATABASE=NC3133 Fast Ethernet Module (100-FX) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3133 Fast Ethernet Module (100-FX)) + + pci:v00008086d00001229sv00000E11sd0000B134* +- ID_MODEL_FROM_DATABASE=NC3163 Fast Ethernet NIC (embedded, WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3163 Fast Ethernet NIC (embedded, WOL)) + + pci:v00008086d00001229sv00000E11sd0000B13C* +- ID_MODEL_FROM_DATABASE=NC3162 Fast Ethernet NIC (embedded) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3162 Fast Ethernet NIC (embedded)) + + pci:v00008086d00001229sv00000E11sd0000B144* +- ID_MODEL_FROM_DATABASE=NC3123 Fast Ethernet NIC (WOL) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3123 Fast Ethernet NIC (WOL)) + + pci:v00008086d00001229sv00000E11sd0000B163* +- ID_MODEL_FROM_DATABASE=NC3134 Fast Ethernet NIC (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3134 Fast Ethernet NIC (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B164* +- ID_MODEL_FROM_DATABASE=NC3135 Fast Ethernet Upgrade Module (dual port) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3135 Fast Ethernet Upgrade Module (dual port)) + + pci:v00008086d00001229sv00000E11sd0000B1A4* +- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC7131 Gigabit Server Adapter) + + pci:v00008086d00001229sv00001014sd0000005C* +- ID_MODEL_FROM_DATABASE=82558B Ethernet Pro 10/100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B Ethernet Pro 10/100) + + pci:v00008086d00001229sv00001014sd000001BC* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN On Motherboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN On Motherboard) + + pci:v00008086d00001229sv00001014sd000001F1* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001014sd000001F2* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001014sd00000207* +- ID_MODEL_FROM_DATABASE=Ethernet Pro/100 S ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Ethernet Pro/100 S) + + pci:v00008086d00001229sv00001014sd00000232* +- ID_MODEL_FROM_DATABASE=10/100 Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Dual Port Server Adapter) + + pci:v00008086d00001229sv00001014sd0000023A* +- ID_MODEL_FROM_DATABASE=ThinkPad R30 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad R30) + + pci:v00008086d00001229sv00001014sd0000105C* +- ID_MODEL_FROM_DATABASE=Netfinity 10/100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netfinity 10/100) + + pci:v00008086d00001229sv00001014sd00002205* +- ID_MODEL_FROM_DATABASE=ThinkPad A22p ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad A22p) + + pci:v00008086d00001229sv00001014sd0000305C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Management Adapter) + + pci:v00008086d00001229sv00001014sd0000405C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Adapter with Alert on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Adapter with Alert on LAN) + + pci:v00008086d00001229sv00001014sd0000505C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) + + pci:v00008086d00001229sv00001014sd0000605C* +- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) + + pci:v00008086d00001229sv00001014sd0000705C* +- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) + + pci:v00008086d00001229sv00001014sd0000805C* +- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) + + pci:v00008086d00001229sv00001028sd0000009B* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001028sd000000CE* +- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) + + pci:v00008086d00001229sv00001033sd00008000* +- ID_MODEL_FROM_DATABASE=PC-9821X-B06 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC-9821X-B06) + + pci:v00008086d00001229sv00001033sd00008016* +- ID_MODEL_FROM_DATABASE=PK-UG-X006 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) + + pci:v00008086d00001229sv00001033sd0000801F* +- ID_MODEL_FROM_DATABASE=PK-UG-X006 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) + + pci:v00008086d00001229sv00001033sd00008026* +- ID_MODEL_FROM_DATABASE=PK-UG-X006 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) + + pci:v00008086d00001229sv00001033sd00008063* +- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) + + pci:v00008086d00001229sv00001033sd00008064* +- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) + + pci:v00008086d00001229sv0000103Csd000010C0* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010C3* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010CA* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010CB* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010E3* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd000010E4* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000103Csd00001200* +- ID_MODEL_FROM_DATABASE=NetServer 10/100TX ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) + + pci:v00008086d00001229sv0000108Esd000010CF* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100(B) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100(B)) + + pci:v00008086d00001229sv000010C3sd00001100* +- ID_MODEL_FROM_DATABASE=SmartEther100 SC1100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SmartEther100 SC1100) + + pci:v00008086d00001229sv000010CFsd00001115* +- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) + + pci:v00008086d00001229sv000010CFsd00001143* +- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) + + pci:v00008086d00001229sv0000110Asd0000008B* +- ID_MODEL_FROM_DATABASE=82551QM Fast Ethernet Multifuction PCI/CardBus Controller ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82551QM Fast Ethernet Multifuction PCI/CardBus Controller) + + pci:v00008086d00001229sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH2 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC8 onboard ethernet ETH2) + + pci:v00008086d00001229sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) + + pci:v00008086d00001229sv00001179sd00000002* +- ID_MODEL_FROM_DATABASE=PCI FastEther LAN on Docker ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PCI FastEther LAN on Docker) + + pci:v00008086d00001229sv00001179sd00000003* +- ID_MODEL_FROM_DATABASE=8255x-based Fast Ethernet ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Fast Ethernet) + + pci:v00008086d00001229sv00001259sd00002560* +- ID_MODEL_FROM_DATABASE=AT-2560 100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100) + + pci:v00008086d00001229sv00001259sd00002561* +- ID_MODEL_FROM_DATABASE=AT-2560 100 FX Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100 FX Ethernet Adapter) + + pci:v00008086d00001229sv00001266sd00000001* +- ID_MODEL_FROM_DATABASE=NE10/100 Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NE10/100 Adapter) + + pci:v00008086d00001229sv000013E9sd00001000* +- ID_MODEL_FROM_DATABASE=6221L-4U ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (6221L-4U) + + pci:v00008086d00001229sv0000144Dsd00002501* +- ID_MODEL_FROM_DATABASE=SEM-2000 MiniPCI LAN Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2000 MiniPCI LAN Adapter) + + pci:v00008086d00001229sv0000144Dsd00002502* +- ID_MODEL_FROM_DATABASE=SEM-2100IL MiniPCI LAN Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2100IL MiniPCI LAN Adapter) + + pci:v00008086d00001229sv00001668sd00001100* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)) + + pci:v00008086d00001229sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CR11/VR11 Single Board Computer) + + pci:v00008086d00001229sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CE9) + + pci:v00008086d00001229sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (QEMU Virtual Machine) + + pci:v00008086d00001229sv00004C53sd00001080* +- ID_MODEL_FROM_DATABASE=CT8 mainboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CT8 mainboard) + + pci:v00008086d00001229sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PSL09 PrPMC) + + pci:v00008086d00001229sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX)) + + pci:v00008086d00001229sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (T4) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (T4)) + + pci:v00008086d00001229sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/10+ ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/10+) + + pci:v00008086d00001229sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 WfM ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 WfM) + + pci:v00008086d00001229sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=82557 10/100 ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100) + + pci:v00008086d00001229sv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=82557 10/100 with Wake on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100 with Wake on LAN) + + pci:v00008086d00001229sv00008086sd00000007* +- ID_MODEL_FROM_DATABASE=82558 10/100 Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 Adapter) + + pci:v00008086d00001229sv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=82558 10/100 with Wake on LAN ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 with Wake on LAN) + + pci:v00008086d00001229sv00008086sd00000009* +- ID_MODEL_FROM_DATABASE=82558B PRO/100+ PCI (TP) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B PRO/100+ PCI (TP)) + + pci:v00008086d00001229sv00008086sd0000000A* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) + + pci:v00008086d00001229sv00008086sd0000000B* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+) + + pci:v00008086d00001229sv00008086sd0000000C* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) + + pci:v00008086d00001229sv00008086sd0000000D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Alert On LAN II* Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Alert On LAN II* Adapter) + + pci:v00008086d00001229sv00008086sd0000000E* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN*) + + pci:v00008086d00001229sv00008086sd0000000F* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) + + pci:v00008086d00001229sv00008086sd00000011* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) + + pci:v00008086d00001229sv00008086sd00000012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (D) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (D)) + + pci:v00008086d00001229sv00008086sd00000013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (E) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (E)) + + pci:v00008086d00001229sv00008086sd00000030* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Management Adapter with Alert On LAN* GC ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Management Adapter with Alert On LAN* GC) + + pci:v00008086d00001229sv00008086sd00000031* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000040* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000041* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000042* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00000050* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) + + pci:v00008086d00001229sv00008086sd00001009* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter) + + pci:v00008086d00001229sv00008086sd0000100C* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter (PILA8470B) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter (PILA8470B)) + + pci:v00008086d00001229sv00008086sd00001012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (D) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (D)) + + pci:v00008086d00001229sv00008086sd00001013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (E) ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (E)) + + pci:v00008086d00001229sv00008086sd00001015* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Dual Port Server Adapter) + + pci:v00008086d00001229sv00008086sd00001017* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Server Adapter) + + pci:v00008086d00001229sv00008086sd00001030* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server) + + pci:v00008086d00001229sv00008086sd00001040* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) + + pci:v00008086d00001229sv00008086sd00001041* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) + + pci:v00008086d00001229sv00008086sd00001042* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) + + pci:v00008086d00001229sv00008086sd00001050* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) + + pci:v00008086d00001229sv00008086sd00001051* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) + + pci:v00008086d00001229sv00008086sd00001052* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) + + pci:v00008086d00001229sv00008086sd000010F0* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Adapter) + + pci:v00008086d00001229sv00008086sd00001229* +- ID_MODEL_FROM_DATABASE=82557/8/9 [Ethernet Pro 100] ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557/8/9 [Ethernet Pro 100]) + + pci:v00008086d00001229sv00008086sd00002009* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) + + pci:v00008086d00001229sv00008086sd0000200D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Cardbus ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Cardbus) + + pci:v00008086d00001229sv00008086sd0000200E* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 LAN+V90 Cardbus Modem ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 LAN+V90 Cardbus Modem) + + pci:v00008086d00001229sv00008086sd0000200F* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002016* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002017* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Combo Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Combo Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002018* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002019* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Combo Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Combo Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002101* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002102* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002103* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002104* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002105* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002106* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) + + pci:v00008086d00001229sv00008086sd00002107* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd00002108* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd00002200* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002201* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002202* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002203* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002204* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002205* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002206* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002207* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002208* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) + + pci:v00008086d00001229sv00008086sd00002402* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002407* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002408* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002409* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd0000240F* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002410* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002411* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002412* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00002413* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) + + pci:v00008086d00001229sv00008086sd00003000* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN on Motherboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN on Motherboard) + + pci:v00008086d00001229sv00008086sd00003001* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Basic Alert on LAN* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Basic Alert on LAN*) + + pci:v00008086d00001229sv00008086sd00003002* +- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN II* ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN II*) + + pci:v00008086d00001229sv00008086sd00003006* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003007* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003008* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd00003010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003011* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) + + pci:v00008086d00001229sv00008086sd00003012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) + + pci:v00008086d00001229sv00008086sd0000301A* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (S845WD1-E mainboard) + + pci:v00008086d00001229sv00008086sd00003411* +- ID_MODEL_FROM_DATABASE=SDS2 Mainboard ++ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SDS2 Mainboard) + + pci:v00008086d0000122D* + ID_MODEL_FROM_DATABASE=430FX - 82437FX TSC [Triton I] +@@ -58809,7 +58809,7 @@ pci:v00008086d00001237* + ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] + + pci:v00008086d00001237sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] (Qemu virtual machine) + + pci:v00008086d00001239* + ID_MODEL_FROM_DATABASE=82371FB PIIX IDE Interface +@@ -58857,10 +58857,10 @@ pci:v00008086d00001461* + ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC + + pci:v00008086d00001461sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (P4DP6) + + pci:v00008086d00001461sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9/Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (Cx9/Vx9 mainboard) + + pci:v00008086d00001462* + ID_MODEL_FROM_DATABASE=82870P2 P64H2 Hot Plug Controller +@@ -58872,16 +58872,16 @@ pci:v00008086d00001502* + ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection + + pci:v00008086d00001502sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Precision M4600) + + pci:v00008086d00001502sv00008086sd0000357A* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Server Board S1200BTS) + + pci:v00008086d00001503* + ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection + + pci:v00008086d00001503sv00001043sd0000849C* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection (P8P67 Deluxe Motherboard) + + pci:v00008086d00001507* + ID_MODEL_FROM_DATABASE=Ethernet Express Module X520-P2 +@@ -58911,19 +58911,19 @@ pci:v00008086d0000150D* + ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection + + pci:v00008086d0000150Dsv00008086sd0000A10C* +- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Mezzanine Card ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection (Gigabit ET Quad Port Mezzanine Card) + + pci:v00008086d0000150E* + ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection + + pci:v00008086d0000150Esv0000103Csd00001780* +- ID_MODEL_FROM_DATABASE=NC365T 4-port Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (NC365T 4-port Ethernet Server Adapter) + + pci:v00008086d0000150Esv00008086sd000012A1* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) + + pci:v00008086d0000150Esv00008086sd000012A2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) + + pci:v00008086d0000150F* + ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection +@@ -58947,16 +58947,16 @@ pci:v00008086d00001516* + ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection + + pci:v00008086d00001516sv00008086sd000012B1* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) + + pci:v00008086d00001516sv00008086sd000012B2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) + + pci:v00008086d00001517* + ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection + + pci:v00008086d00001517sv00001137sd0000006A* +- ID_MODEL_FROM_DATABASE=UCS CNA M61KR-I Intel Converged Network Adapter ++ ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection (UCS CNA M61KR-I Intel Converged Network Adapter) + + pci:v00008086d00001518* + ID_MODEL_FROM_DATABASE=82576NS SerDes Gigabit Network Connection +@@ -58965,7 +58965,7 @@ pci:v00008086d0000151C* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection + + pci:v00008086d0000151Csv0000108Esd00007B13* +- ID_MODEL_FROM_DATABASE=Dual 10GBASE-T LP ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection (Dual 10GBASE-T LP) + + pci:v00008086d00001520* + ID_MODEL_FROM_DATABASE=I350 Ethernet Controller Virtual Function +@@ -58974,115 +58974,115 @@ pci:v00008086d00001521* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection + + pci:v00008086d00001521sv00001028sd00000602* +- ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) + + pci:v00008086d00001521sv00001028sd00001F60* +- ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) + + pci:v00008086d00001521sv00001028sd00001F62* +- ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) + + pci:v00008086d00001521sv00001028sd0000FF9A* +- ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) + + pci:v00008086d00001521sv0000103Csd000017D1* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366FLR Adapter) + + pci:v00008086d00001521sv0000103Csd00002003* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 367i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 367i Adapter) + + pci:v00008086d00001521sv0000103Csd00002226* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 1-port 364i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 1-port 364i Adapter) + + pci:v00008086d00001521sv0000103Csd0000337F* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361i Adapter) + + pci:v00008086d00001521sv0000103Csd00003380* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366i Adapter) + + pci:v00008086d00001521sv0000103Csd0000339E* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361T Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361T Adapter) + + pci:v00008086d00001521sv0000108Esd00007B16* +- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, UTP ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, UTP) + + pci:v00008086d00001521sv0000108Esd00007B18* +- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP) + + pci:v00008086d00001521sv000010A9sd0000802A* +- ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (UV2-BaseIO dual-port GbE) + + pci:v00008086d00001521sv000017AAsd00001074* +- ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (ThinkServer I350-T4 AnyFabric) + + pci:v00008086d00001521sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) + + pci:v00008086d00001521sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001521sv00008086sd000000A1* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) + + pci:v00008086d00001521sv00008086sd000000A2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001521sv00008086sd00005001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) + + pci:v00008086d00001521sv00008086sd00005002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001522* + ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection + + pci:v00008086d00001522sv0000108Esd00007B17* +- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, MMF ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, MMF) + + pci:v00008086d00001522sv0000108Esd00007B19* +- ID_MODEL_FROM_DATABASE=Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF) + + pci:v00008086d00001522sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001522sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) + + pci:v00008086d00001522sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) + + pci:v00008086d00001522sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F1 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F1) + + pci:v00008086d00001522sv00008086sd000000A2* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) + + pci:v00008086d00001522sv00008086sd000000A3* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) + + pci:v00008086d00001522sv00008086sd000000A4* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) + + pci:v00008086d00001523* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection + + pci:v00008086d00001523sv00001028sd00001F9B* +- ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) + + pci:v00008086d00001523sv0000103Csd00001784* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) + + pci:v00008086d00001523sv0000103Csd000018D1* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) + + pci:v00008086d00001523sv0000103Csd00001989* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 363i Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 363i Adapter) + + pci:v00008086d00001523sv0000103Csd0000339F* +- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366M Adapter ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 4-port 366M Adapter) + + pci:v00008086d00001523sv00008086sd00001F52* +- ID_MODEL_FROM_DATABASE=1GbE 4P I350 Mezz ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (1GbE 4P I350 Mezz) + + pci:v00008086d00001524* + ID_MODEL_FROM_DATABASE=I350 Gigabit Connection +@@ -59094,64 +59094,64 @@ pci:v00008086d00001526* + ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection + + pci:v00008086d00001526sv00008086sd0000A05C* +- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) + + pci:v00008086d00001526sv00008086sd0000A06C* +- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter ++ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) + + pci:v00008086d00001527* + ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection + + pci:v00008086d00001527sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) + + pci:v00008086d00001527sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 ++ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) + + pci:v00008086d00001528* + ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 + + pci:v00008086d00001528sv00001028sd00001F61* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) + + pci:v00008086d00001528sv0000103Csd0000192D* +- ID_MODEL_FROM_DATABASE=561FLR-T 2-port 10Gb Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (561FLR-T 2-port 10Gb Ethernet Adapter) + + pci:v00008086d00001528sv0000103Csd00002004* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561i Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561i Adapter) + + pci:v00008086d00001528sv0000103Csd0000211A* +- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561T Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561T Adapter) + + pci:v00008086d00001528sv0000108Esd00007B14* +- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T) + + pci:v00008086d00001528sv0000108Esd00007B15* +- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T) + + pci:v00008086d00001528sv00001137sd000000BF* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) + + pci:v00008086d00001528sv000017AAsd00001073* +- ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (ThinkServer X540-T2 AnyFabric) + + pci:v00008086d00001528sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) + + pci:v00008086d00001528sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) + + pci:v00008086d00001528sv00008086sd0000001A* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) + + pci:v00008086d00001528sv00008086sd000000A2* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) + + pci:v00008086d00001528sv00008086sd00001F61* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) + + pci:v00008086d00001528sv00008086sd00005003* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X540-t Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 2P X540-t Adapter) + + pci:v00008086d00001529* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection with FCoE +@@ -59163,16 +59163,16 @@ pci:v00008086d00001533* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection + + pci:v00008086d00001533sv0000103Csd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + + pci:v00008086d00001533sv000017AAsd00001100* +- ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) + + pci:v00008086d00001533sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + + pci:v00008086d00001533sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + + pci:v00008086d00001534* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +@@ -59193,10 +59193,10 @@ pci:v00008086d0000153A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM + + pci:v00008086d0000153Asv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ZBook 15) + + pci:v00008086d0000153Asv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ThinkPad T440p) + + pci:v00008086d0000153B* + ID_MODEL_FROM_DATABASE=Ethernet Connection I217-V +@@ -59211,13 +59211,13 @@ pci:v00008086d0000154A* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 + + pci:v00008086d0000154Asv00008086sd0000011A* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154Asv00008086sd0000011B* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154Asv00008086sd0000011C* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154C* + ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function +@@ -59226,13 +59226,13 @@ pci:v00008086d0000154D* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter + + pci:v00008086d0000154Dsv00008086sd00007B11* +- ID_MODEL_FROM_DATABASE=10GbE 2P X520 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter (10GbE 2P X520 Adapter) + + pci:v00008086d00001557* + ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection + + pci:v00008086d00001557sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-1 ++ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection (Ethernet OCP Server Adapter X520-1) + + pci:v00008086d00001558* + ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-Q1 +@@ -59250,22 +59250,22 @@ pci:v00008086d0000155A* + ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM + + pci:v00008086d0000155Asv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM (ThinkPad X240) + + pci:v00008086d0000155C* + ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter + + pci:v00008086d0000155Csv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X540-T2 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X540-T2) + + pci:v00008086d0000155D* + ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter + + pci:v00008086d0000155Dsv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-SR2 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-SR2) + + pci:v00008086d0000155Dsv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-LR2 ++ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-LR2) + + pci:v00008086d00001560* + ID_MODEL_FROM_DATABASE=Ethernet Controller X540 +@@ -59277,28 +59277,28 @@ pci:v00008086d00001572* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter + + pci:v00008086d00001572sv00001028sd00001F99* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) + + pci:v00008086d00001572sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000007* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d00001572sv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 ++ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d0000157B* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +@@ -59313,31 +59313,31 @@ pci:v00008086d00001581* + ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane + + pci:v00008086d00001581sv00001028sd00001F98* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) + + pci:v00008086d00001583* + ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ + + pci:v00008086d00001583sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) + + pci:v00008086d00001584* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + + pci:v00008086d00001584sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) + + pci:v00008086d00001584sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) + + pci:v00008086d00001584sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q1) + + pci:v00008086d00001585* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ +@@ -59469,82 +59469,82 @@ pci:v00008086d00001960* + ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor + + pci:v00008086d00001960sv0000101Esd00000431* +- ID_MODEL_FROM_DATABASE=MegaRAID 431 RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 431 RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000438* +- ID_MODEL_FROM_DATABASE=MegaRAID 438 Ultra2 LVD RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438 Ultra2 LVD RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000466* +- ID_MODEL_FROM_DATABASE=MegaRAID 466 Express Plus RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466 Express Plus RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000467* +- ID_MODEL_FROM_DATABASE=MegaRAID 467 Enterprise 1500 RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 467 Enterprise 1500 RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000490* +- ID_MODEL_FROM_DATABASE=MegaRAID 490 Express 300 RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 490 Express 300 RAID Controller) + + pci:v00008086d00001960sv0000101Esd00000762* +- ID_MODEL_FROM_DATABASE=MegaRAID 762 Express RAID Controller ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 762 Express RAID Controller) + + pci:v00008086d00001960sv0000101Esd000009A0* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv00001028sd00000467* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/DC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/DC) + + pci:v00008086d00001960sv00001028sd00001111* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv0000103Csd000003A2* +- ID_MODEL_FROM_DATABASE=MegaRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) + + pci:v00008086d00001960sv0000103Csd000010C6* +- ID_MODEL_FROM_DATABASE=MegaRAID 438, NetRAID-3Si ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438, NetRAID-3Si) + + pci:v00008086d00001960sv0000103Csd000010C7* +- ID_MODEL_FROM_DATABASE=MegaRAID T5, Integrated NetRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID T5, Integrated NetRAID) + + pci:v00008086d00001960sv0000103Csd000010CC* +- ID_MODEL_FROM_DATABASE=MegaRAID, Integrated NetRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID, Integrated NetRAID) + + pci:v00008086d00001960sv0000103Csd000010CD* +- ID_MODEL_FROM_DATABASE=NetRAID-1Si ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (NetRAID-1Si) + + pci:v00008086d00001960sv0000105Asd00000000* +- ID_MODEL_FROM_DATABASE=SuperTrak ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak) + + pci:v00008086d00001960sv0000105Asd00002168* +- ID_MODEL_FROM_DATABASE=SuperTrak Pro ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak Pro) + + pci:v00008086d00001960sv0000105Asd00005168* +- ID_MODEL_FROM_DATABASE=SuperTrak66/100 ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak66/100) + + pci:v00008086d00001960sv00001111sd00001111* +- ID_MODEL_FROM_DATABASE=MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv00001111sd00001112* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) + + pci:v00008086d00001960sv0000113Csd000003A2* +- ID_MODEL_FROM_DATABASE=MegaRAID ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) + + pci:v00008086d00001960sv0000E4BFsd00001010* +- ID_MODEL_FROM_DATABASE=CG1-RADIO ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CG1-RADIO) + + pci:v00008086d00001960sv0000E4BFsd00001020* +- ID_MODEL_FROM_DATABASE=CU2-QUARTET ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU2-QUARTET) + + pci:v00008086d00001960sv0000E4BFsd00001040* +- ID_MODEL_FROM_DATABASE=CU1-CHORUS ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU1-CHORUS) + + pci:v00008086d00001960sv0000E4BFsd00003100* +- ID_MODEL_FROM_DATABASE=CX1-BAND ++ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CX1-BAND) + + pci:v00008086d00001962* + ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor + + pci:v00008086d00001962sv0000105Asd00000000* +- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 I2O CPU ++ ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor (SuperTrak SX6000 I2O CPU) + + pci:v00008086d00001A21* + ID_MODEL_FROM_DATABASE=82840 840 [Carmel] Chipset Host Bridge (Hub A) +@@ -59559,10 +59559,10 @@ pci:v00008086d00001A30* + ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge + + pci:v00008086d00001A30sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Optiplex GX240) + + pci:v00008086d00001A30sv000015D9sd00003280* +- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard ++ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Supermicro P4SBE Mainboard) + + pci:v00008086d00001A31* + ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset AGP Bridge +@@ -59571,28 +59571,28 @@ pci:v00008086d00001A38* + ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine + + pci:v00008086d00001A38sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (X7DVL-E-O motherboard) + + pci:v00008086d00001A38sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (Intel S5000PSLSATA Server Board) + + pci:v00008086d00001A48* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d00001A48sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) + + pci:v00008086d00001A48sv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) + + pci:v00008086d00001B48* + ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller + + pci:v00008086d00001B48sv00008086sd0000A01F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001B48sv00008086sd0000A11F* +- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter ++ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) + + pci:v00008086d00001C00* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 4 port SATA IDE Controller +@@ -59604,28 +59604,28 @@ pci:v00008086d00001C02* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller + + pci:v00008086d00001C02sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (XPS 8300) + + pci:v00008086d00001C02sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (P8 series motherboard) + + pci:v00008086d00001C02sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (Server Board S1200BTS) + + pci:v00008086d00001C03* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller + + pci:v00008086d00001C03sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Precision M4600) + + pci:v00008086d00001C03sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3350) + + pci:v00008086d00001C03sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3750) + + pci:v00008086d00001C03sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C04* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA RAID Controller +@@ -59643,58 +59643,58 @@ pci:v00008086d00001C10* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 + + pci:v00008086d00001C10sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (XPS 8300) + + pci:v00008086d00001C10sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Vostro 3750) + + pci:v00008086d00001C10sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (P8 series motherboard) + + pci:v00008086d00001C10sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C12* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 + + pci:v00008086d00001C12sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (XPS 8300) + + pci:v00008086d00001C12sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C14* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 + + pci:v00008086d00001C14sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Vostro 3750) + + pci:v00008086d00001C14sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C16* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 + + pci:v00008086d00001C16sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 (XPS 8300) + + pci:v00008086d00001C18* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 + + pci:v00008086d00001C18sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Vostro 3750) + + pci:v00008086d00001C18sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Server Board S1200BTS) + + pci:v00008086d00001C1A* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 + + pci:v00008086d00001C1Asv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (Vostro 3750) + + pci:v00008086d00001C1Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (P8 series motherboard) + + pci:v00008086d00001C1C* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 +@@ -59703,58 +59703,58 @@ pci:v00008086d00001C1E* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 + + pci:v00008086d00001C1Esv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 (P8 series motherboard) + + pci:v00008086d00001C20* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller + + pci:v00008086d00001C20sv00001028sd00000490* +- ID_MODEL_FROM_DATABASE=Alienware M17x R3 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Alienware M17x R3) + + pci:v00008086d00001C20sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Precision M4600) + + pci:v00008086d00001C20sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (XPS 8300) + + pci:v00008086d00001C20sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3350) + + pci:v00008086d00001C20sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3750) + + pci:v00008086d00001C20sv00001043sd00008418* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8P67 Deluxe Motherboard) + + pci:v00008086d00001C20sv00001043sd0000841B* +- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8H67 Series Motherboard) + + pci:v00008086d00001C20sv00008086sd00002008* +- ID_MODEL_FROM_DATABASE=DQ67SW board ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (DQ67SW board) + + pci:v00008086d00001C20sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C22* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller + + pci:v00008086d00001C22sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Precision M4600) + + pci:v00008086d00001C22sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (XPS 8300) + + pci:v00008086d00001C22sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3350) + + pci:v00008086d00001C22sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3750) + + pci:v00008086d00001C22sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (P8 series motherboard) + + pci:v00008086d00001C22sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C24* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller +@@ -59766,55 +59766,55 @@ pci:v00008086d00001C26* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 + + pci:v00008086d00001C26sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Precision M4600) + + pci:v00008086d00001C26sv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (XPS 8300) + + pci:v00008086d00001C26sv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3350) + + pci:v00008086d00001C26sv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3750) + + pci:v00008086d00001C26sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) + + pci:v00008086d00001C26sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C27* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 + + pci:v00008086d00001C27sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C2C* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 + + pci:v00008086d00001C2Csv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C2D* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 + + pci:v00008086d00001C2Dsv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Precision M4600) + + pci:v00008086d00001C2Dsv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (XPS 8300) + + pci:v00008086d00001C2Dsv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3350) + + pci:v00008086d00001C2Dsv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3750) + + pci:v00008086d00001C2Dsv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) + + pci:v00008086d00001C2Dsv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) + + pci:v00008086d00001C33* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller +@@ -59826,22 +59826,22 @@ pci:v00008086d00001C3A* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 + + pci:v00008086d00001C3Asv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Precision M4600) + + pci:v00008086d00001C3Asv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (XPS 8300) + + pci:v00008086d00001C3Asv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3350) + + pci:v00008086d00001C3Asv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3750) + + pci:v00008086d00001C3Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (P8 series motherboard) + + pci:v00008086d00001C3Asv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C3B* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #2 +@@ -59874,7 +59874,7 @@ pci:v00008086d00001C46* + ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller + + pci:v00008086d00001C46sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller (P8P67 Deluxe Motherboard) + + pci:v00008086d00001C47* + ID_MODEL_FROM_DATABASE=UM67 Express Chipset Family LPC Controller +@@ -59886,25 +59886,25 @@ pci:v00008086d00001C49* + ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller + + pci:v00008086d00001C49sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] ++ ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) + + pci:v00008086d00001C4A* + ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller + + pci:v00008086d00001C4Asv00001028sd000004AA* +- ID_MODEL_FROM_DATABASE=XPS 8300 ++ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (XPS 8300) + + pci:v00008086d00001C4Asv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard ++ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (P8H67 Series Motherboard) + + pci:v00008086d00001C4B* + ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller + + pci:v00008086d00001C4Bsv00001028sd000004B2* +- ID_MODEL_FROM_DATABASE=Vostro 3350 ++ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3350) + + pci:v00008086d00001C4Bsv00001028sd000004DA* +- ID_MODEL_FROM_DATABASE=Vostro 3750 ++ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3750) + + pci:v00008086d00001C4C* + ID_MODEL_FROM_DATABASE=Q65 Express Chipset Family LPC Controller +@@ -59919,7 +59919,7 @@ pci:v00008086d00001C4F* + ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller + + pci:v00008086d00001C4Fsv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=Precision M4600 ++ ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller (Precision M4600) + + pci:v00008086d00001C50* + ID_MODEL_FROM_DATABASE=B65 Express Chipset Family LPC Controller +@@ -59931,7 +59931,7 @@ pci:v00008086d00001C52* + ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller + + pci:v00008086d00001C52sv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller (Server Board S1200BTS) + + pci:v00008086d00001C53* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller +@@ -59946,7 +59946,7 @@ pci:v00008086d00001C56* + ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller + + pci:v00008086d00001C56sv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8B WS Motherboard ++ ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller (P8B WS Motherboard) + + pci:v00008086d00001C57* + ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller +@@ -60177,19 +60177,19 @@ pci:v00008086d00001E02* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] + + pci:v00008086d00001E02sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) + + pci:v00008086d00001E02sv00001849sd00001E02* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) + + pci:v00008086d00001E03* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] + + pci:v00008086d00001E03sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (N56VZ) + + pci:v00008086d00001E03sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (Zenbook Prime UX31A) + + pci:v00008086d00001E04* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SATA Controller [RAID mode] +@@ -60216,25 +60216,25 @@ pci:v00008086d00001E10* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 + + pci:v00008086d00001E10sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (N56VZ) + + pci:v00008086d00001E10sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Zenbook Prime UX31A) + + pci:v00008086d00001E10sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (P8H77-I Motherboard) + + pci:v00008086d00001E10sv00001849sd00001E10* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Motherboard) + + pci:v00008086d00001E12* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 + + pci:v00008086d00001E12sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (N56VZ) + + pci:v00008086d00001E12sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (Zenbook Prime UX31A) + + pci:v00008086d00001E14* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 3 +@@ -60243,25 +60243,25 @@ pci:v00008086d00001E16* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 + + pci:v00008086d00001E16sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (N56VZ) + + pci:v00008086d00001E16sv00001849sd00001618* +- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (Z77 Extreme4 motherboard) + + pci:v00008086d00001E18* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 + + pci:v00008086d00001E18sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (P8H77-I Motherboard) + + pci:v00008086d00001E18sv00001849sd00001E18* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (Motherboard) + + pci:v00008086d00001E1A* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 + + pci:v00008086d00001E1Asv00001849sd00001E1A* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 (Motherboard) + + pci:v00008086d00001E1C* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 7 +@@ -60270,43 +60270,43 @@ pci:v00008086d00001E1E* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 + + pci:v00008086d00001E1Esv00001849sd00001E1E* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 (Motherboard) + + pci:v00008086d00001E20* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller + + pci:v00008086d00001E20sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (N56VZ) + + pci:v00008086d00001E20sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E20sv00001043sd00008415* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) + + pci:v00008086d00001E20sv00001849sd00001898* +- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) + + pci:v00008086d00001E22* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller + + pci:v00008086d00001E22sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (N56VZ) + + pci:v00008086d00001E22sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E22sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) + + pci:v00008086d00001E22sv00001849sd00001E22* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) + + pci:v00008086d00001E24* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller + + pci:v00008086d00001E24sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E25* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family DMI to PCI Bridge +@@ -60315,49 +60315,49 @@ pci:v00008086d00001E26* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 + + pci:v00008086d00001E26sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (N56VZ) + + pci:v00008086d00001E26sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E26sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) + + pci:v00008086d00001E26sv00001849sd00001E26* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) + + pci:v00008086d00001E2D* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 + + pci:v00008086d00001E2Dsv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (N56VZ) + + pci:v00008086d00001E2Dsv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) + + pci:v00008086d00001E2Dsv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) + + pci:v00008086d00001E2Dsv00001849sd00001E2D* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) + + pci:v00008086d00001E31* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller + + pci:v00008086d00001E31sv0000103Csd000017AB* +- ID_MODEL_FROM_DATABASE=ProBook 6570b ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (ProBook 6570b) + + pci:v00008086d00001E31sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (N56VZ) + + pci:v00008086d00001E31sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E31sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) + + pci:v00008086d00001E31sv00001849sd00001E31* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) + + pci:v00008086d00001E33* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family LAN Controller +@@ -60366,16 +60366,16 @@ pci:v00008086d00001E3A* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 + + pci:v00008086d00001E3Asv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (N56VZ) + + pci:v00008086d00001E3Asv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E3Asv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) + + pci:v00008086d00001E3Asv00001849sd00001E3A* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) + + pci:v00008086d00001E3B* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #2 +@@ -60399,7 +60399,7 @@ pci:v00008086d00001E44* + ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller + + pci:v00008086d00001E44sv00001849sd00001E44* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) + + pci:v00008086d00001E45* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller +@@ -60420,7 +60420,7 @@ pci:v00008086d00001E4A* + ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller + + pci:v00008086d00001E4Asv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard ++ ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller (P8H77-I Motherboard) + + pci:v00008086d00001E4B* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller +@@ -60468,10 +60468,10 @@ pci:v00008086d00001E59* + ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller + + pci:v00008086d00001E59sv00001043sd00001477* +- ID_MODEL_FROM_DATABASE=N56VZ ++ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (N56VZ) + + pci:v00008086d00001E59sv00001043sd00001517* +- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A ++ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E5A* + ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller +@@ -60804,28 +60804,28 @@ pci:v00008086d00002415* + ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller + + pci:v00008086d00002415sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Precision Workstation 220 Integrated Digital Audio) + + pci:v00008086d00002415sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (OptiPlex GX110) + + pci:v00008086d00002415sv0000110Asd00000051* +- ID_MODEL_FROM_DATABASE=Activy 2xx ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 2xx) + + pci:v00008086d00002415sv000011D4sd00000040* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002415sv000011D4sd00000048* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002415sv000011D4sd00005340* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002415sv00001734sd00001025* +- ID_MODEL_FROM_DATABASE=Activy 3xx ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 3xx) + + pci:v00008086d00002415sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (QEMU Virtual Machine) + + pci:v00008086d00002416* + ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller +@@ -60849,10 +60849,10 @@ pci:v00008086d00002425* + ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller + + pci:v00008086d00002425sv000011D4sd00000040* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002425sv000011D4sd00000048* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00002426* + ID_MODEL_FROM_DATABASE=82801AB AC'97 Modem Controller +@@ -60864,352 +60864,352 @@ pci:v00008086d00002440* + ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) + + pci:v00008086d00002440sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E ++ ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) (S845WD1-E) + + pci:v00008086d00002442* + ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 + + pci:v00008086d00002442sv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Netvista A40/A40p) + + pci:v00008086d00002442sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) + + pci:v00008086d00002442sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) + + pci:v00008086d00002442sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) + + pci:v00008086d00002442sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) + + pci:v00008086d00002442sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) + + pci:v00008086d00002442sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) + + pci:v00008086d00002442sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) + + pci:v00008086d00002442sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) + + pci:v00008086d00002442sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) + + pci:v00008086d00002442sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EGEW Mainboard) + + pci:v00008086d00002442sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) + + pci:v00008086d00002443* + ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller + + pci:v00008086d00002443sv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Netvista A40/A40p) + + pci:v00008086d00002443sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Travelmate 612 TX) + + pci:v00008086d00002443sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Dimension 8100) + + pci:v00008086d00002443sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Precision 530) + + pci:v00008086d00002443sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Optiplex GX240) + + pci:v00008086d00002443sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (e-pc 40) + + pci:v00008086d00002443sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TUSL2-C Mainboard) + + pci:v00008086d00002443sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Vaio PCG-FX403) + + pci:v00008086d00002443sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TH7II-RAID) + + pci:v00008086d00002443sv000015D9sd00003280* +- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Supermicro P4SBE Mainboard) + + pci:v00008086d00002443sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EEA2 mainboard) + + pci:v00008086d00002443sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EGEW Mainboard) + + pci:v00008086d00002443sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (S845WD1-E mainboard) + + pci:v00008086d00002444* + ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 + + pci:v00008086d00002444sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) + + pci:v00008086d00002444sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) + + pci:v00008086d00002444sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) + + pci:v00008086d00002444sv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) + + pci:v00008086d00002444sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) + + pci:v00008086d00002444sv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) + + pci:v00008086d00002444sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) + + pci:v00008086d00002444sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) + + pci:v00008086d00002444sv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) + + pci:v00008086d00002444sv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) + + pci:v00008086d00002445* + ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller + + pci:v00008086d00002445sv00000E11sd0000000B* +- ID_MODEL_FROM_DATABASE=Compaq Deskpro EN Audio ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Compaq Deskpro EN Audio) + + pci:v00008086d00002445sv00000E11sd00000088* +- ID_MODEL_FROM_DATABASE=Evo D500 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Evo D500) + + pci:v00008086d00002445sv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Netvista A40/A40p) + + pci:v00008086d00002445sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Travelmate 612 TX) + + pci:v00008086d00002445sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Precision 530) + + pci:v00008086d00002445sv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (e-pc 40) + + pci:v00008086d00002445sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Vaio PCG-FX403) + + pci:v00008086d00002445sv00001462sd00003370* +- ID_MODEL_FROM_DATABASE=STAC9721 AC ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (STAC9721 AC) + + pci:v00008086d00002445sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (TH7II-RAID) + + pci:v00008086d00002445sv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (D815EGEW Mainboard) + + pci:v00008086d00002446* + ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller + + pci:v00008086d00002446sv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612 TX ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Travelmate 612 TX) + + pci:v00008086d00002446sv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Vaio PCG-FX403) + + pci:v00008086d00002448* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge + + pci:v00008086d00002448sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Latitude E6510) + + pci:v00008086d00002448sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002448sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (NX6110/NC6120) + + pci:v00008086d00002448sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nx9420 Notebook) + + pci:v00008086d00002448sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nw8440) + + pci:v00008086d00002448sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq 6910p) + + pci:v00008086d00002448sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (VAIO VGN-NR120E) + + pci:v00008086d00002448sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) + + pci:v00008086d00002448sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) + + pci:v00008086d00002448sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) + + pci:v00008086d00002448sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (GA-D525TUD) + + pci:v00008086d00002448sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Amilo M1420) + + pci:v00008086d00002448sv000017AAsd000020AE* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) + + pci:v00008086d00002448sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) + + pci:v00008086d00002448sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (CCG-RUMBA) + + pci:v00008086d00002449* + ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller + + pci:v00008086d00002449sv00000E11sd00000012* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) + + pci:v00008086d00002449sv00000E11sd00000091* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001CE* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001DC* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001EB* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd000001EC* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000202* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000205* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000217* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000234* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd0000023D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000244* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000245* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001014sd00000265* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) + + pci:v00008086d00002449sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) + + pci:v00008086d00002449sv00001014sd0000026A* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) + + pci:v00008086d00002449sv0000109Fsd0000315D* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv0000109Fsd00003181* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00001179sd0000FF01* +- ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Network Connection) + + pci:v00008086d00002449sv00001186sd00007801* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv0000144Dsd00002602* +- ID_MODEL_FROM_DATABASE=HomePNA 1M CNR ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (HomePNA 1M CNR) + + pci:v00008086d00002449sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (QEMU Virtual Machine) + + pci:v00008086d00002449sv00008086sd00003010* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00008086sd00003011* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) + + pci:v00008086d00002449sv00008086sd00003012* +- ID_MODEL_FROM_DATABASE=82562EH based Phoneline ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) + + pci:v00008086d00002449sv00008086sd00003013* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) + + pci:v00008086d00002449sv00008086sd00003014* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) + + pci:v00008086d00002449sv00008086sd00003015* +- ID_MODEL_FROM_DATABASE=82562EH based Phoneline ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) + + pci:v00008086d00002449sv00008086sd00003016* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile Combo) + + pci:v00008086d00002449sv00008086sd00003017* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile) + + pci:v00008086d00002449sv00008086sd00003018* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 ++ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100) + + pci:v00008086d0000244A* + ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller + + pci:v00008086d0000244Asv00001025sd00001016* +- ID_MODEL_FROM_DATABASE=Travelmate 612TX ++ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Travelmate 612TX) + + pci:v00008086d0000244Asv0000104Dsd000080DF* +- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 ++ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Vaio PCG-FX403) + + pci:v00008086d0000244B* + ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller + + pci:v00008086d0000244Bsv00001014sd000001C6* +- ID_MODEL_FROM_DATABASE=Netvista A40/A40p ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Netvista A40/A40p) + + pci:v00008086d0000244Bsv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Dimension 8100) + + pci:v00008086d0000244Bsv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Precision 530) + + pci:v00008086d0000244Bsv00001028sd0000010E* +- ID_MODEL_FROM_DATABASE=Optiplex GX240 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Optiplex GX240) + + pci:v00008086d0000244Bsv0000103Csd0000126F* +- ID_MODEL_FROM_DATABASE=e-pc 40 ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (e-pc 40) + + pci:v00008086d0000244Bsv00001043sd00008027* +- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TUSL2-C Mainboard) + + pci:v00008086d0000244Bsv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TH7II-RAID) + + pci:v00008086d0000244Bsv000015D9sd00003280* +- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Supermicro P4SBE Mainboard) + + pci:v00008086d0000244Bsv00008086sd00004532* +- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EEA2 mainboard) + + pci:v00008086d0000244Bsv00008086sd00004557* +- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EGEW Mainboard) + + pci:v00008086d0000244Bsv00008086sd00005744* +- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (S845WD1-E mainboard) + + pci:v00008086d0000244C* + ID_MODEL_FROM_DATABASE=82801BAM ISA Bridge (LPC) +@@ -61218,52 +61218,52 @@ pci:v00008086d0000244E* + ID_MODEL_FROM_DATABASE=82801 PCI Bridge + + pci:v00008086d0000244Esv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (NetVista A30p) + + pci:v00008086d0000244Esv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Inspiron 530) + + pci:v00008086d0000244Esv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Optiplex 755) + + pci:v00008086d0000244Esv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (OptiPlex 980) + + pci:v00008086d0000244Esv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Pavilion A1512X) + + pci:v00008086d0000244Esv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000244Esv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant DL140 G3) + + pci:v00008086d0000244Esv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant ML150 G6 Server) + + pci:v00008086d0000244Esv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P5K PRO Motherboard) + + pci:v00008086d0000244Esv00001043sd0000844D* +- ID_MODEL_FROM_DATABASE=P8 series motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P8 series motherboard) + + pci:v00008086d0000244Esv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Motherboard) + + pci:v00008086d0000244Esv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Wind PC MS-7418) + + pci:v00008086d0000244Esv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (C7SIM-Q Motherboard) + + pci:v00008086d0000244Esv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (X7DBN Motherboard) + + pci:v00008086d0000244Esv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (CC11/CL11) + + pci:v00008086d0000244Esv00008086sd00007270* +- ID_MODEL_FROM_DATABASE=Server Board S1200BTS ++ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Server Board S1200BTS) + + pci:v00008086d00002450* + ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) +@@ -61293,160 +61293,160 @@ pci:v00008086d00002482* + ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 + + pci:v00008086d00002482sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Evo N600c) + + pci:v00008086d00002482sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (ThinkPad A/T/X Series) + + pci:v00008086d00002482sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002482sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (P4DP6) + + pci:v00008086d00002482sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (vpr Matrix 170B4) + + pci:v00008086d00002482sv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (SE7501HG2 Mainboard) + + pci:v00008086d00002482sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Latitude C640) + + pci:v00008086d00002483* + ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller + + pci:v00008086d00002483sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002483sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002483sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (P4DP6) + + pci:v00008086d00002483sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (vpr Matrix 170B4) + + pci:v00008086d00002484* + ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 + + pci:v00008086d00002484sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (Evo N600c) + + pci:v00008086d00002484sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (ThinkPad A/T/X Series) + + pci:v00008086d00002484sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002484sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (P4DP6) + + pci:v00008086d00002484sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (vpr Matrix 170B4) + + pci:v00008086d00002485* + ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller + + pci:v00008086d00002485sv00001013sd00005959* +- ID_MODEL_FROM_DATABASE=Crystal WMD Audio Codec ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (Crystal WMD Audio Codec) + + pci:v00008086d00002485sv00001014sd00000222* +- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p/T23 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A30/A30p/T23) + + pci:v00008086d00002485sv00001014sd00000508* +- ID_MODEL_FROM_DATABASE=ThinkPad T30 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad T30) + + pci:v00008086d00002485sv00001014sd0000051C* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002485sv00001043sd00001583* +- ID_MODEL_FROM_DATABASE=L3C (SPDIF) ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3C (SPDIF)) + + pci:v00008086d00002485sv00001043sd00001623* +- ID_MODEL_FROM_DATABASE=L2B (no SPDIF) ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L2B (no SPDIF)) + + pci:v00008086d00002485sv00001043sd00001643* +- ID_MODEL_FROM_DATABASE=L3F ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3F) + + pci:v00008086d00002485sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002485sv0000144Dsd0000C006* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (vpr Matrix 170B4) + + pci:v00008086d00002486* + ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller + + pci:v00008086d00002486sv00001014sd00000223* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002486sv00001014sd00000503* +- ID_MODEL_FROM_DATABASE=ThinkPad R31 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad R31) + + pci:v00008086d00002486sv00001014sd0000051A* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) + + pci:v00008086d00002486sv0000101Fsd00001025* +- ID_MODEL_FROM_DATABASE=620 Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (620 Series) + + pci:v00008086d00002486sv00001043sd00001496* +- ID_MODEL_FROM_DATABASE=PCtel HSP56 MR ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (PCtel HSP56 MR) + + pci:v00008086d00002486sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002486sv0000134Dsd00004C21* +- ID_MODEL_FROM_DATABASE=Dell Inspiron 2100 internal modem ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (Dell Inspiron 2100 internal modem) + + pci:v00008086d00002486sv0000144Dsd00002115* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 internal modem ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (vpr Matrix 170B4 internal modem) + + pci:v00008086d00002486sv000014F1sd00005421* +- ID_MODEL_FROM_DATABASE=MD56ORD V.92 MDC Modem ++ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (MD56ORD V.92 MDC Modem) + + pci:v00008086d00002487* + ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 + + pci:v00008086d00002487sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (Evo N600c) + + pci:v00008086d00002487sv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (ThinkPad A/T/X Series) + + pci:v00008086d00002487sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00002487sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (P4DP6) + + pci:v00008086d00002487sv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (vpr Matrix 170B4) + + pci:v00008086d0000248A* + ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller + + pci:v00008086d0000248Asv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Evo N600c) + + pci:v00008086d0000248Asv00001014sd00000220* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (ThinkPad A/T/X Series) + + pci:v00008086d0000248Asv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d0000248Asv00008086sd00001958* +- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (vpr Matrix 170B4) + + pci:v00008086d0000248Asv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude C640 ++ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Latitude C640) + + pci:v00008086d0000248B* + ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller + + pci:v00008086d0000248Bsv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller (P4DP6) + + pci:v00008086d0000248C* + ID_MODEL_FROM_DATABASE=82801CAM ISA Bridge (LPC) +@@ -61455,10 +61455,10 @@ pci:v00008086d000024C0* + ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge + + pci:v00008086d000024C0sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (NetVista A30p) + + pci:v00008086d000024C0sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (845PE Max (MS-6580)) + + pci:v00008086d000024C1* + ID_MODEL_FROM_DATABASE=82801DBL (ICH4-L) IDE Controller +@@ -61467,574 +61467,574 @@ pci:v00008086d000024C2* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 + + pci:v00008086d000024C2sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NetVista A30p) + + pci:v00008086d000024C2sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (ThinkPad) + + pci:v00008086d000024C2sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (TravelMate 290) + + pci:v00008086d000024C2sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Optiplex GX260) + + pci:v00008086d000024C2sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D505) + + pci:v00008086d000024C2sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 700m/710m) + + pci:v00008086d000024C2sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 5160) + + pci:v00008086d000024C2sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC8000 laptop) + + pci:v00008086d000024C2sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC6000 laptop) + + pci:v00008086d000024C2sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (tc1100 tablet) + + pci:v00008086d000024C2sv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P4B533) + + pci:v00008086d000024C2sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (MIM2000) + + pci:v00008086d000024C2sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard USB 1.x ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (PC8 onboard USB 1.x) + + pci:v00008086d000024C2sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (X10 Laptop) + + pci:v00008086d000024C2sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P30/P35 notebook) + + pci:v00008086d000024C2sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (845PE Max (MS-6580)) + + pci:v00008086d000024C2sv00001509sd00002990* +- ID_MODEL_FROM_DATABASE=Averatec 5110H laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Averatec 5110H laptop) + + pci:v00008086d000024C2sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C2sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Amilo M1420) + + pci:v00008086d000024C2sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C2sv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude X300) + + pci:v00008086d000024C2sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D400/D500) + + pci:v00008086d000024C2sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CC9-SAMBA) + + pci:v00008086d000024C2sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CD2-BEBOP) + + pci:v00008086d000024C3* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller + + pci:v00008086d000024C3sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NetVista A30p) + + pci:v00008086d000024C3sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (ThinkPad) + + pci:v00008086d000024C3sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (TravelMate 290) + + pci:v00008086d000024C3sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Optiplex GX260) + + pci:v00008086d000024C3sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Latitude X300) + + pci:v00008086d000024C3sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Inspiron 700m/710m) + + pci:v00008086d000024C3sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC8000 laptop) + + pci:v00008086d000024C3sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC6000 laptop) + + pci:v00008086d000024C3sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (tc1100 tablet) + + pci:v00008086d000024C3sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (MIM2000) + + pci:v00008086d000024C3sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard SMbus ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (PC8 onboard SMbus) + + pci:v00008086d000024C3sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (X10 Laptop) + + pci:v00008086d000024C3sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (P30/P35 notebook) + + pci:v00008086d000024C3sv00001458sd000024C2* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (GA-8PE667 Ultra) + + pci:v00008086d000024C3sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (845PE Max (MS-6580)) + + pci:v00008086d000024C3sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C3sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Amilo M1420) + + pci:v00008086d000024C3sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C3sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CC9-SAMBA) + + pci:v00008086d000024C3sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CD2-BEBOP) + + pci:v00008086d000024C4* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 + + pci:v00008086d000024C4sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NetVista A30p) + + pci:v00008086d000024C4sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (ThinkPad) + + pci:v00008086d000024C4sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (TravelMate 290) + + pci:v00008086d000024C4sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Optiplex GX260) + + pci:v00008086d000024C4sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D505) + + pci:v00008086d000024C4sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 700m/710m) + + pci:v00008086d000024C4sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 5160) + + pci:v00008086d000024C4sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC8000 laptop) + + pci:v00008086d000024C4sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC6000 laptop) + + pci:v00008086d000024C4sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (tc1100 tablet) + + pci:v00008086d000024C4sv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P4B533) + + pci:v00008086d000024C4sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (MIM2000) + + pci:v00008086d000024C4sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P30/P35 notebook) + + pci:v00008086d000024C4sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (845PE Max (MS-6580)) + + pci:v00008086d000024C4sv00001509sd00002990* +- ID_MODEL_FROM_DATABASE=Averatec 5110H ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Averatec 5110H) + + pci:v00008086d000024C4sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C4sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C4sv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude X300) + + pci:v00008086d000024C4sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D400/D500) + + pci:v00008086d000024C4sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CC9-SAMBA) + + pci:v00008086d000024C4sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CD2-BEBOP) + + pci:v00008086d000024C5* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller + + pci:v00008086d000024C5sv00000E11sd000000B8* +- ID_MODEL_FROM_DATABASE=Analog Devices Inc. codec [SoundMAX] ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Analog Devices Inc. codec [SoundMAX]) + + pci:v00008086d000024C5sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) + + pci:v00008086d000024C5sv00001014sd00000537* +- ID_MODEL_FROM_DATABASE=ThinkPad T41 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) + + pci:v00008086d000024C5sv00001014sd0000055F* +- ID_MODEL_FROM_DATABASE=Thinkpad R50e model 1634 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) + + pci:v00008086d000024C5sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (TravelMate 290) + + pci:v00008086d000024C5sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D400) + + pci:v00008086d000024C5sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude X300) + + pci:v00008086d000024C5sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D500) + + pci:v00008086d000024C5sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D505) + + pci:v00008086d000024C5sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m [SigmaTel STAC9750,51] ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 700m/710m [SigmaTel STAC9750,51]) + + pci:v00008086d000024C5sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 5160) + + pci:v00008086d000024C5sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC8000 laptop) + + pci:v00008086d000024C5sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC6000 laptop) + + pci:v00008086d000024C5sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (tc1100 tablet) + + pci:v00008086d000024C5sv00001043sd00001713* +- ID_MODEL_FROM_DATABASE=M2400N/M6800N laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (M2400N/M6800N laptop) + + pci:v00008086d000024C5sv00001043sd000080B0* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P4B533) + + pci:v00008086d000024C5sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (MIM2000) + + pci:v00008086d000024C5sv00001179sd00000201* +- ID_MODEL_FROM_DATABASE=Toshiba Tecra M1 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Toshiba Tecra M1) + + pci:v00008086d000024C5sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (X10 Laptop) + + pci:v00008086d000024C5sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P30/P35 notebook) + + pci:v00008086d000024C5sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (GA-8PE667 Ultra) + + pci:v00008086d000024C5sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (845PE Max (MS-6580)) + + pci:v00008086d000024C5sv00001734sd00001005* +- ID_MODEL_FROM_DATABASE=D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T) + + pci:v00008086d000024C5sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Amilo M1420) + + pci:v00008086d000024C5sv00008086sd000024C5* +- ID_MODEL_FROM_DATABASE=Dell Dimension 2400 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Dell Dimension 2400) + + pci:v00008086d000024C6* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller + + pci:v00008086d000024C6sv00001014sd00000524* +- ID_MODEL_FROM_DATABASE=ThinkPad T41 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) + + pci:v00008086d000024C6sv00001014sd00000525* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) + + pci:v00008086d000024C6sv00001014sd00000559* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad R50e) + + pci:v00008086d000024C6sv00001025sd0000003C* +- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compal CL50 motherboard) implementation ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Aspire 2001WLCi (Compal CL50 motherboard) implementation) + + pci:v00008086d000024C6sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (TravelMate 290) + + pci:v00008086d000024C6sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Inspiron 5160) + + pci:v00008086d000024C6sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC8000 laptop) + + pci:v00008086d000024C6sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC6000 laptop) + + pci:v00008086d000024C6sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (tc1100 tablet) + + pci:v00008086d000024C6sv00001043sd00001716* +- ID_MODEL_FROM_DATABASE=M2400N laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M2400N laptop) + + pci:v00008086d000024C6sv00001043sd00001826* +- ID_MODEL_FROM_DATABASE=M6800N ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M6800N) + + pci:v00008086d000024C6sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (MIM2000) + + pci:v00008086d000024C6sv0000134Dsd00004C21* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Latitude D500) + + pci:v00008086d000024C6sv0000144Dsd00002115* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (X10 Laptop) + + pci:v00008086d000024C6sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (P30/P35 notebook) + + pci:v00008086d000024C6sv000014F1sd00005422* +- ID_MODEL_FROM_DATABASE=D480 MDC V.9x Modem ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (D480 MDC V.9x Modem) + + pci:v00008086d000024C7* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 + + pci:v00008086d000024C7sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NetVista A30p) + + pci:v00008086d000024C7sv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (ThinkPad) + + pci:v00008086d000024C7sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (TravelMate 290) + + pci:v00008086d000024C7sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Optiplex GX260) + + pci:v00008086d000024C7sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D505) + + pci:v00008086d000024C7sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 700m/710m) + + pci:v00008086d000024C7sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 5160) + + pci:v00008086d000024C7sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC8000 laptop) + + pci:v00008086d000024C7sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC6000 laptop) + + pci:v00008086d000024C7sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (tc1100 tablet) + + pci:v00008086d000024C7sv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P4B533) + + pci:v00008086d000024C7sv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (MIM2000) + + pci:v00008086d000024C7sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P30/P35 notebook) + + pci:v00008086d000024C7sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (845PE Max (MS-6580)) + + pci:v00008086d000024C7sv00001509sd00002990* +- ID_MODEL_FROM_DATABASE=Averatec 5110H ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Averatec 5110H) + + pci:v00008086d000024C7sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024C7sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Cx9 / Vx9 mainboard) + + pci:v00008086d000024C7sv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude X300) + + pci:v00008086d000024C7sv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D400/D500) + + pci:v00008086d000024C7sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CC9-SAMBA) + + pci:v00008086d000024C7sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CD2-BEBOP) + + pci:v00008086d000024CA* + ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller + + pci:v00008086d000024CAsv00001014sd0000052D* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (ThinkPad) + + pci:v00008086d000024CAsv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (TravelMate 290) + + pci:v00008086d000024CAsv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude X300) + + pci:v00008086d000024CAsv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D505) + + pci:v00008086d000024CAsv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 700m/710m) + + pci:v00008086d000024CAsv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 5160) + + pci:v00008086d000024CAsv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC8000 laptop) + + pci:v00008086d000024CAsv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC6000 laptop) + + pci:v00008086d000024CAsv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (tc1100 tablet) + + pci:v00008086d000024CAsv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (MIM2000) + + pci:v00008086d000024CAsv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (X10 Laptop) + + pci:v00008086d000024CAsv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (P30/P35 notebook) + + pci:v00008086d000024CAsv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Amilo M1420) + + pci:v00008086d000024CAsv00008086sd00004541* +- ID_MODEL_FROM_DATABASE=Latitude D400/D500 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D400/D500) + + pci:v00008086d000024CB* + ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller + + pci:v00008086d000024CBsv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (NetVista A30p) + + pci:v00008086d000024CBsv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Optiplex GX260) + + pci:v00008086d000024CBsv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (P4B533) + + pci:v00008086d000024CBsv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard IDE ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (PC8 onboard IDE) + + pci:v00008086d000024CBsv00001458sd000024C2* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (GA-8PE667 Ultra) + + pci:v00008086d000024CBsv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (845PE Max (MS-6580)) + + pci:v00008086d000024CBsv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024CBsv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d000024CBsv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CC9-SAMBA) + + pci:v00008086d000024CBsv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CD2-BEBOP) + + pci:v00008086d000024CC* + ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge + + pci:v00008086d000024CCsv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (P30 notebook) + + pci:v00008086d000024CCsv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (Amilo M1420) + + pci:v00008086d000024CD* + ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller + + pci:v00008086d000024CDsv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NetVista A30p) + + pci:v00008086d000024CDsv00001014sd0000052E* +- ID_MODEL_FROM_DATABASE=ThinkPad ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (ThinkPad) + + pci:v00008086d000024CDsv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (TravelMate 290) + + pci:v00008086d000024CDsv00001028sd0000011D* +- ID_MODEL_FROM_DATABASE=Latitude D600 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D600) + + pci:v00008086d000024CDsv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Optiplex GX260) + + pci:v00008086d000024CDsv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D400) + + pci:v00008086d000024CDsv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D500) + + pci:v00008086d000024CDsv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D505) + + pci:v00008086d000024CDsv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 700m/710m) + + pci:v00008086d000024CDsv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 5160) + + pci:v00008086d000024CDsv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC8000 laptop) + + pci:v00008086d000024CDsv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC6000 laptop) + + pci:v00008086d000024CDsv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (tc1100 tablet) + + pci:v00008086d000024CDsv00001043sd00008089* +- ID_MODEL_FROM_DATABASE=P4B533 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P4B533) + + pci:v00008086d000024CDsv00001071sd00008160* +- ID_MODEL_FROM_DATABASE=MIM2000 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (MIM2000) + + pci:v00008086d000024CDsv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 onboard USB 2.0 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (PC8 onboard USB 2.0) + + pci:v00008086d000024CDsv00001179sd0000FF00* +- ID_MODEL_FROM_DATABASE=Satellite 2430 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Satellite 2430) + + pci:v00008086d000024CDsv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (X10 Laptop) + + pci:v00008086d000024CDsv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P30/P35 notebook) + + pci:v00008086d000024CDsv00001462sd00003981* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (845PE Max (MS-6580)) + + pci:v00008086d000024CDsv00001509sd00001968* +- ID_MODEL_FROM_DATABASE=Averatec 5110H ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Averatec 5110H) + + pci:v00008086d000024CDsv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d000024CDsv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Amilo M1420) + + pci:v00008086d000024CDsv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (QEMU Virtual Machine) + + pci:v00008086d000024CDsv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d000024CDsv00008086sd000024C2* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude X300) + + pci:v00008086d000024CDsv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CC9-SAMBA) + + pci:v00008086d000024CDsv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CD2-BEBOP) + + pci:v00008086d000024D0* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) LPC Interface Bridge +@@ -62043,436 +62043,436 @@ pci:v00008086d000024D1* + ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller + + pci:v00008086d000024D1sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D1sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision 470) + + pci:v00008086d000024D1sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (PowerEdge SC1425) + + pci:v00008086d000024D1sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (d530 CMT (DG746A)) + + pci:v00008086d000024D1sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (ProLiant DL140 G2) + + pci:v00008086d000024D1sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4P800 series motherboard) + + pci:v00008086d000024D1sv00001458sd000024D1* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D1sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D1sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D1sv00001565sd00005200* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4TSV Motherboard (865G)) + + pci:v00008086d000024D1sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4SCE Mainboard) + + pci:v00008086d000024D1sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (S875WP1-E mainboard) + + pci:v00008086d000024D1sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GBF) + + pci:v00008086d000024D1sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GLC) + + pci:v00008086d000024D1sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (D865PERL mainboard) + + pci:v00008086d000024D2* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 + + pci:v00008086d000024D2sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) + + pci:v00008086d000024D2sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) + + pci:v00008086d000024D2sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D2sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision 470) + + pci:v00008086d000024D2sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1850 onboard UHCI) + + pci:v00008086d000024D2sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 2850 onboard UHCI) + + pci:v00008086d000024D2sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 6850 onboard UHCI) + + pci:v00008086d000024D2sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1800) + + pci:v00008086d000024D2sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge SC1425) + + pci:v00008086d000024D2sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (NX9500) + + pci:v00008086d000024D2sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (d530 CMT (DG746A)) + + pci:v00008086d000024D2sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (ProLiant DL140 G2) + + pci:v00008086d000024D2sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D2sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (GA-8IPE1000/8KNXP motherboard) + + pci:v00008086d000024D2sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D2sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4TSV Motherboard (865G)) + + pci:v00008086d000024D2sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4SCE Mainboard) + + pci:v00008086d000024D2sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PRIMERGY RX/TX series onboard UHCI) + + pci:v00008086d000024D2sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (S875WP1-E mainboard) + + pci:v00008086d000024D2sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GBF) + + pci:v00008086d000024D2sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GLC) + + pci:v00008086d000024D2sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (D865PERL mainboard) + + pci:v00008086d000024D3* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller + + pci:v00008086d000024D3sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) + + pci:v00008086d000024D3sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) + + pci:v00008086d000024D3sv00001028sd00000156* +- ID_MODEL_FROM_DATABASE=Precision 360 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 360) + + pci:v00008086d000024D3sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D3sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 470) + + pci:v00008086d000024D3sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d330 uT ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (d330 uT) + + pci:v00008086d000024D3sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (ProLiant DL140 G2) + + pci:v00008086d000024D3sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D3sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D3sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D3sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D3sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4TSV Motherboard (865G)) + + pci:v00008086d000024D3sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4SCE Mainboard) + + pci:v00008086d000024D3sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series SMBus ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (PRIMERGY RX/TX S2 series SMBus) + + pci:v00008086d000024D3sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (S875WP1-E mainboard) + + pci:v00008086d000024D3sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GBF) + + pci:v00008086d000024D3sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GLC) + + pci:v00008086d000024D3sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (D865PERL mainboard) + + pci:v00008086d000024D4* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 + + pci:v00008086d000024D4sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) + + pci:v00008086d000024D4sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) + + pci:v00008086d000024D4sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D4sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision 470) + + pci:v00008086d000024D4sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1850 onboard UHCI) + + pci:v00008086d000024D4sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 2850 onboard UHCI) + + pci:v00008086d000024D4sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 6850 onboard UHCI) + + pci:v00008086d000024D4sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1800) + + pci:v00008086d000024D4sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge SC1425) + + pci:v00008086d000024D4sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (NX9500) + + pci:v00008086d000024D4sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (d530 CMT (DG746A)) + + pci:v00008086d000024D4sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (ProLiant DL140 G2) + + pci:v00008086d000024D4sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D4sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D4sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D4sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D4sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4TSV Motherboard (865G)) + + pci:v00008086d000024D4sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4SCE Mainboard) + + pci:v00008086d000024D4sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PRIMERGY RX/TX S2 series onboard UHCI) + + pci:v00008086d000024D4sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (S875WP1-E mainboard) + + pci:v00008086d000024D4sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GBF) + + pci:v00008086d000024D4sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GLC) + + pci:v00008086d000024D4sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (D865PERL mainboard) + + pci:v00008086d000024D5* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller + + pci:v00008086d000024D5sv0000100Asd0000147B* +- ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Abit IS7-E motherboard) + + pci:v00008086d000024D5sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D5sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision 470) + + pci:v00008086d000024D5sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (NX9500) + + pci:v00008086d000024D5sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d330 uT ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (d330 uT) + + pci:v00008086d000024D5sv00001043sd000080F3* +- ID_MODEL_FROM_DATABASE=P4P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P4P800 series motherboard) + + pci:v00008086d000024D5sv00001043sd0000810F* +- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P5P800-MX Mainboard) + + pci:v00008086d000024D5sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (GA-8IPE1000/8KNXP motherboard) + + pci:v00008086d000024D5sv00001462sd00000080* +- ID_MODEL_FROM_DATABASE=865PE Neo2-V (MS-6788) Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2-V (MS-6788) Mainboard) + + pci:v00008086d000024D5sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D5sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D5sv00008086sd0000A000* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) + + pci:v00008086d000024D5sv00008086sd0000E000* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) + + pci:v00008086d000024D5sv00008086sd0000E001* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Desktop Board D865GBF) + + pci:v00008086d000024D5sv00008086sd0000E002* +- ID_MODEL_FROM_DATABASE=SoundMax Intergrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (SoundMax Intergrated Digital Audio) + + pci:v00008086d000024D6* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller + + pci:v00008086d000024D6sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller (NX9500) + + pci:v00008086d000024D7* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 + + pci:v00008086d000024D7sv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (xSeries server mainboard) + + pci:v00008086d000024D7sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024D7sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision 470) + + pci:v00008086d000024D7sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1850 onboard UHCI) + + pci:v00008086d000024D7sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 2850 onboard UHCI) + + pci:v00008086d000024D7sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 6850 onboard UHCI) + + pci:v00008086d000024D7sv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1800) + + pci:v00008086d000024D7sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (NX9500) + + pci:v00008086d000024D7sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (d530 CMT (DG746A)) + + pci:v00008086d000024D7sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024D7sv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024D7sv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024D7sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024D7sv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4TSV Motherboard (865G)) + + pci:v00008086d000024D7sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4SCE Mainboard) + + pci:v00008086d000024D7sv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PRIMERGY RX/TX S2 series onboard UHCI) + + pci:v00008086d000024D7sv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (S875WP1-E mainboard) + + pci:v00008086d000024D7sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GBF) + + pci:v00008086d000024D7sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GLC) + + pci:v00008086d000024D7sv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (D865PERL mainboard) + + pci:v00008086d000024DB* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller + + pci:v00008086d000024DBsv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DBsv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DBsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024DBsv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision 470) + + pci:v00008086d000024DBsv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 IDE Controller ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 1850 IDE Controller) + + pci:v00008086d000024DBsv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 IDE Controller ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 2850 IDE Controller) + + pci:v00008086d000024DBsv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 IDE Controller ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 6850 IDE Controller) + + pci:v00008086d000024DBsv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge SC1425) + + pci:v00008086d000024DBsv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (NX9500) + + pci:v00008086d000024DBsv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (d530 CMT (DG746A)) + + pci:v00008086d000024DBsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4P800/P5P800 series motherboard) + + pci:v00008086d000024DBsv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024DBsv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024DBsv00001462sd00007580* +- ID_MODEL_FROM_DATABASE=MSI 875P ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (MSI 875P) + + pci:v00008086d000024DBsv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024DBsv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4TSV Motherboard (865G)) + + pci:v00008086d000024DBsv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4SCE Mainboard) + + pci:v00008086d000024DBsv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard IDE ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PRIMERGY RX/TX S2 series onboard IDE) + + pci:v00008086d000024DBsv00008086sd000024DB* +- ID_MODEL_FROM_DATABASE=P4C800 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4C800 Mainboard) + + pci:v00008086d000024DBsv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (S875WP1-E mainboard) + + pci:v00008086d000024DBsv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GBF) + + pci:v00008086d000024DBsv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GLC) + + pci:v00008086d000024DBsv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (D865PERL mainboard) + + pci:v00008086d000024DC* + ID_MODEL_FROM_DATABASE=82801EB (ICH5) LPC Interface Bridge +@@ -62481,142 +62481,142 @@ pci:v00008086d000024DD* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller + + pci:v00008086d000024DDsv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DDsv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) + + pci:v00008086d000024DDsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024DDsv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision 470) + + pci:v00008086d000024DDsv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1850 onboard EHCI) + + pci:v00008086d000024DDsv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 2850 onboard EHCI) + + pci:v00008086d000024DDsv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 6850 onboard EHCI) + + pci:v00008086d000024DDsv00001028sd00000183* +- ID_MODEL_FROM_DATABASE=PowerEdge 1800 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1800) + + pci:v00008086d000024DDsv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge SC1425) + + pci:v00008086d000024DDsv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (NX9500) + + pci:v00008086d000024DDsv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (d530 CMT (DG746A)) + + pci:v00008086d000024DDsv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (ProLiant DL140 G2) + + pci:v00008086d000024DDsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (P4P800/P5P800 series motherboard) + + pci:v00008086d000024DDsv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024DDsv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (865PE Neo2 (MS-6728)) + + pci:v00008086d000024DDsv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024DDsv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (S875WP1-E mainboard) + + pci:v00008086d000024DDsv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GBF) + + pci:v00008086d000024DDsv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GLC) + + pci:v00008086d000024DDsv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (D865PERL mainboard) + + pci:v00008086d000024DE* + ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 + + pci:v00008086d000024DEsv00001014sd000002ED* +- ID_MODEL_FROM_DATABASE=xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (xSeries server mainboard) + + pci:v00008086d000024DEsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision Workstation 670 Mainboard) + + pci:v00008086d000024DEsv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision 470) + + pci:v00008086d000024DEsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4P800/P5P800 series motherboard) + + pci:v00008086d000024DEsv00001458sd000024D2* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d000024DEsv00001462sd00007280* +- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (865PE Neo2 (MS-6728)) + + pci:v00008086d000024DEsv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Hetis 865GV-E (MS-7065)) + + pci:v00008086d000024DEsv00001565sd00003101* +- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4TSV Motherboard (865G)) + + pci:v00008086d000024DEsv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4SCE Mainboard) + + pci:v00008086d000024DEsv00001734sd0000101C* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (PRIMERGY RX/TX S2 series onboard UHCI) + + pci:v00008086d000024DEsv00008086sd00003427* +- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (S875WP1-E mainboard) + + pci:v00008086d000024DEsv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GBF) + + pci:v00008086d000024DEsv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GLC) + + pci:v00008086d000024DEsv00008086sd0000524C* +- ID_MODEL_FROM_DATABASE=D865PERL mainboard ++ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (D865PERL mainboard) + + pci:v00008086d000024DF* + ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller + + pci:v00008086d000024DFsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller (Precision Workstation 670 Mainboard) + + pci:v00008086d000024F3* + ID_MODEL_FROM_DATABASE=Wireless 8260 + + pci:v00008086d000024F3sv00008086sd00000010* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) + + pci:v00008086d000024F4* + ID_MODEL_FROM_DATABASE=Wireless 8260 + + pci:v00008086d000024F4sv00008086sd00000030* +- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 ++ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) + + pci:v00008086d00002500* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) + + pci:v00008086d00002500sv00001028sd00000095* +- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Chipset ++ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (Precision Workstation 220 Chipset) + + pci:v00008086d00002500sv00001043sd0000801C* +- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset ++ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) + + pci:v00008086d00002501* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) + + pci:v00008086d00002501sv00001043sd0000801C* +- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset ++ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) + + pci:v00008086d0000250B* + ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge +@@ -62634,16 +62634,16 @@ pci:v00008086d00002530* + ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) + + pci:v00008086d00002530sv00001028sd000000C7* +- ID_MODEL_FROM_DATABASE=Dimension 8100 ++ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (Dimension 8100) + + pci:v00008086d00002530sv0000147Bsd00000507* +- ID_MODEL_FROM_DATABASE=TH7II-RAID ++ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (TH7II-RAID) + + pci:v00008086d00002531* + ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) + + pci:v00008086d00002531sv00001028sd000000D8* +- ID_MODEL_FROM_DATABASE=Precision 530 ++ ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) (Precision 530) + + pci:v00008086d00002532* + ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset AGP Bridge +@@ -62658,19 +62658,19 @@ pci:v00008086d00002540* + ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub + + pci:v00008086d00002540sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub (P4DP6) + + pci:v00008086d00002541* + ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller + + pci:v00008086d00002541sv000015D9sd00003480* +- ID_MODEL_FROM_DATABASE=P4DP6 ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (P4DP6) + + pci:v00008086d00002541sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d00002541sv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (SE7501HG2 Mainboard) + + pci:v00008086d00002543* + ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B PCI-to-PCI Bridge +@@ -62679,7 +62679,7 @@ pci:v00008086d00002544* + ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller + + pci:v00008086d00002544sv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller (Cx9 / Vx9 mainboard) + + pci:v00008086d00002545* + ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface C PCI-to-PCI Bridge +@@ -62697,10 +62697,10 @@ pci:v00008086d0000254C* + ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub + + pci:v00008086d0000254Csv00004C53sd00001090* +- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard ++ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (Cx9 / Vx9 mainboard) + + pci:v00008086d0000254Csv00008086sd00003424* +- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard ++ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (SE7501HG2 Mainboard) + + pci:v00008086d00002550* + ID_MODEL_FROM_DATABASE=E7505 Memory Controller Hub +@@ -62724,13 +62724,13 @@ pci:v00008086d00002560* + ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface + + pci:v00008086d00002560sv00001028sd00000126* +- ID_MODEL_FROM_DATABASE=Optiplex GX260 ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (Optiplex GX260) + + pci:v00008086d00002560sv00001458sd00002560* +- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (GA-8PE667 Ultra) + + pci:v00008086d00002560sv00001462sd00005800* +- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (845PE Max (MS-6580)) + + pci:v00008086d00002561* + ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge +@@ -62739,31 +62739,31 @@ pci:v00008086d00002562* + ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device + + pci:v00008086d00002562sv00000E11sd000000B9* +- ID_MODEL_FROM_DATABASE=Evo D510 SFF ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (Evo D510 SFF) + + pci:v00008086d00002562sv00001014sd00000267* +- ID_MODEL_FROM_DATABASE=NetVista A30p ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (NetVista A30p) + + pci:v00008086d00002562sv00001734sd00001003* +- ID_MODEL_FROM_DATABASE=D1521 Mainboard (Fujitsu-Siemens) ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1521 Mainboard (Fujitsu-Siemens)) + + pci:v00008086d00002562sv00001734sd00001004* +- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) ++ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1451 Mainboard (SCENIC N300, i845GV)) + + pci:v00008086d00002570* + ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface + + pci:v00008086d00002570sv0000103Csd0000006A* +- ID_MODEL_FROM_DATABASE=NX9500 ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (NX9500) + + pci:v00008086d00002570sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=d330 uT ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (d330 uT) + + pci:v00008086d00002570sv00001043sd000080F2* +- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (P4P800/P5P800 series motherboard) + + pci:v00008086d00002570sv00001458sd00002570* +- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) ++ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (GA-8IPE1000 Pro2 motherboard (865PE)) + + pci:v00008086d00002571* + ID_MODEL_FROM_DATABASE=82865G/PE/P AGP Bridge +@@ -62772,25 +62772,25 @@ pci:v00008086d00002572* + ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller + + pci:v00008086d00002572sv00001028sd0000019D* +- ID_MODEL_FROM_DATABASE=Dimension 3000 ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Dimension 3000) + + pci:v00008086d00002572sv0000103Csd000012BC* +- ID_MODEL_FROM_DATABASE=D530 sff(dc578av) ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (D530 sff(dc578av)) + + pci:v00008086d00002572sv00001043sd000080A5* +- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (P5P800-MX Mainboard) + + pci:v00008086d00002572sv00001462sd00007650* +- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Hetis 865GV-E (MS-7065)) + + pci:v00008086d00002572sv00001734sd0000101B* +- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Scenic E300 i865GV ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Fujitsu-Siemens Scenic E300 i865GV) + + pci:v00008086d00002572sv00008086sd00004246* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GBF) + + pci:v00008086d00002572sv00008086sd00004C43* +- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC ++ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GLC) + + pci:v00008086d00002573* + ID_MODEL_FROM_DATABASE=82865G/PE/P PCI to CSA Bridge +@@ -62802,13 +62802,13 @@ pci:v00008086d00002578* + ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub + + pci:v00008086d00002578sv00001458sd00002578* +- ID_MODEL_FROM_DATABASE=GA-8KNXP motherboard (875P) ++ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (GA-8KNXP motherboard (875P)) + + pci:v00008086d00002578sv00001462sd00007580* +- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) ++ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (MS-6758 (875P Neo)) + + pci:v00008086d00002578sv000015D9sd00004580* +- ID_MODEL_FROM_DATABASE=P4SCE Motherboard ++ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (P4SCE Motherboard) + + pci:v00008086d00002579* + ID_MODEL_FROM_DATABASE=82875P Processor to AGP Controller +@@ -62823,13 +62823,13 @@ pci:v00008086d00002580* + ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub + + pci:v00008086d00002580sv00001458sd00002580* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (GA-8I915ME-G Mainboard) + + pci:v00008086d00002580sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (915P/G Neo2) + + pci:v00008086d00002580sv00001734sd0000105B* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (Scenic W620) + + pci:v00008086d00002581* + ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL PCI Express Root Port +@@ -62838,28 +62838,28 @@ pci:v00008086d00002582* + ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller + + pci:v00008086d00002582sv00001028sd00001079* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Optiplex GX280) + + pci:v00008086d00002582sv0000103Csd00003006* +- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (DC7100 SFF(DX878AV)) + + pci:v00008086d00002582sv00001043sd00002582* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002582sv00001458sd00002582* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d00002582sv00001734sd0000105B* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Scenic W620) + + pci:v00008086d00002582sv00001849sd00002582* +- ID_MODEL_FROM_DATABASE=ASRock P4Dual-915GL ++ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (ASRock P4Dual-915GL) + + pci:v00008086d00002584* + ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub + + pci:v00008086d00002584sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub (Dimension 8400) + + pci:v00008086d00002585* + ID_MODEL_FROM_DATABASE=82925X/XE PCI Express Root Port +@@ -62877,58 +62877,58 @@ pci:v00008086d00002590* + ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller + + pci:v00008086d00002590sv00001014sd00000575* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (ThinkPad Z60t) + + pci:v00008086d00002590sv00001028sd00000182* +- ID_MODEL_FROM_DATABASE=Dell Latitude C610 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Dell Latitude C610) + + pci:v00008086d00002590sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Compaq nw8240/nx8220) + + pci:v00008086d00002590sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (NX6110/NC6120) + + pci:v00008086d00002590sv0000104Dsd000081B7* +- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) + + pci:v00008086d00002590sv0000A304sd000081B7* +- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) + + pci:v00008086d00002590sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CCD-CALYPSO) + + pci:v00008086d00002590sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CD3-JIVE) + + pci:v00008086d00002590sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (XB1) + + pci:v00008086d00002591* + ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port + + pci:v00008086d00002591sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002592* + ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller + + pci:v00008086d00002592sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) + + pci:v00008086d00002592sv0000103Csd0000308A* +- ID_MODEL_FROM_DATABASE=NC6220 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NC6220) + + pci:v00008086d00002592sv00001043sd00001881* +- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) + + pci:v00008086d00002592sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) + + pci:v00008086d00002592sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) + + pci:v00008086d00002592sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) + + pci:v00008086d000025A1* + ID_MODEL_FROM_DATABASE=6300ESB LPC Interface Controller +@@ -62937,79 +62937,79 @@ pci:v00008086d000025A2* + ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller + + pci:v00008086d000025A2sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A2sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer IDE ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (V5D Single Board Computer IDE) + + pci:v00008086d000025A2sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A2sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CE9) + + pci:v00008086d000025A2sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CL9 mainboard) + + pci:v00008086d000025A2sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (PSL09 PrPMC) + + pci:v00008086d000025A3* + ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller + + pci:v00008086d000025A3sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A3sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A3sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CE9) + + pci:v00008086d000025A3sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CL9 mainboard) + + pci:v00008086d000025A3sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025A3sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (PSL09 PrPMC) + + pci:v00008086d000025A4* + ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller + + pci:v00008086d000025A4sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A4sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (V5D Single Board Computer) + + pci:v00008086d000025A4sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A4sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CE9) + + pci:v00008086d000025A4sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CL9 mainboard) + + pci:v00008086d000025A4sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025A4sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (PSL09 PrPMC) + + pci:v00008086d000025A6* + ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller + + pci:v00008086d000025A6sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A6sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CE9) + + pci:v00008086d000025A6sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CL9 mainboard) + + pci:v00008086d000025A7* + ID_MODEL_FROM_DATABASE=6300ESB AC'97 Modem Controller +@@ -63018,121 +63018,121 @@ pci:v00008086d000025A9* + ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller + + pci:v00008086d000025A9sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025A9sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (V5D Single Board Computer USB) + + pci:v00008086d000025A9sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025A9sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) + + pci:v00008086d000025A9sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) + + pci:v00008086d000025A9sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025A9sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) + + pci:v00008086d000025AA* + ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller + + pci:v00008086d000025AAsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025AAsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025AAsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) + + pci:v00008086d000025AAsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) + + pci:v00008086d000025AAsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025AAsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) + + pci:v00008086d000025AB* + ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer + + pci:v00008086d000025ABsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025ABsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (V5D Single Board Computer) + + pci:v00008086d000025ABsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CR11/VR11 Single Board Computer) + + pci:v00008086d000025ABsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CE9) + + pci:v00008086d000025ABsv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (QEMU Virtual Machine) + + pci:v00008086d000025ABsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CL9 mainboard) + + pci:v00008086d000025ABsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Telum ASLP10 Processor AMC) + + pci:v00008086d000025ABsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (PSL09 PrPMC) + + pci:v00008086d000025AC* + ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller + + pci:v00008086d000025ACsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025ACsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (V5D Single Board Computer) + + pci:v00008086d000025ACsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025ACsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CE9) + + pci:v00008086d000025ACsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CL9 mainboard) + + pci:v00008086d000025ACsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025ACsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (PSL09 PrPMC) + + pci:v00008086d000025AD* + ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller + + pci:v00008086d000025ADsv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d000025ADsv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB 2.0 ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (V5D Single Board Computer USB 2.0) + + pci:v00008086d000025ADsv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025ADsv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CE9) + + pci:v00008086d000025ADsv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CL9 mainboard) + + pci:v00008086d000025ADsv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025ADsv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (PSL09 PrPMC) + + pci:v00008086d000025AE* + ID_MODEL_FROM_DATABASE=6300ESB 64-bit PCI-X Bridge +@@ -63141,13 +63141,13 @@ pci:v00008086d000025B0* + ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller + + pci:v00008086d000025B0sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d000025B0sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d000025B0sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (PSL09 PrPMC) + + pci:v00008086d000025C0* + ID_MODEL_FROM_DATABASE=5000X Chipset Memory Controller Hub +@@ -63159,16 +63159,16 @@ pci:v00008086d000025D4* + ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub + + pci:v00008086d000025D4sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub (X7DVL-E-O motherboard) + + pci:v00008086d000025D8* + ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub + + pci:v00008086d000025D8sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (X7DBN Motherboard) + + pci:v00008086d000025D8sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (S5000PSLSATA Server Board) + + pci:v00008086d000025E2* + ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x4 Port 2 +@@ -63192,79 +63192,79 @@ pci:v00008086d000025F0* + ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers + + pci:v00008086d000025F0sv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 FSB Registers ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (PowerEdge 1955 FSB Registers) + + pci:v00008086d000025F0sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (ProLiant DL140 G3) + + pci:v00008086d000025F0sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F0sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DBN Motherboard) + + pci:v00008086d000025F0sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F1* + ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers + + pci:v00008086d000025F1sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) + + pci:v00008086d000025F1sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F1sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) + + pci:v00008086d000025F1sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F3* + ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers + + pci:v00008086d000025F3sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) + + pci:v00008086d000025F3sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F3sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) + + pci:v00008086d000025F3sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F5* + ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers + + pci:v00008086d000025F5sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) + + pci:v00008086d000025F5sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F5sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) + + pci:v00008086d000025F5sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F6* + ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers + + pci:v00008086d000025F6sv0000103Csd000031FD* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) + + pci:v00008086d000025F6sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) + + pci:v00008086d000025F6sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) + + pci:v00008086d000025F6sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) + + pci:v00008086d000025F7* + ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x8 Port 2-3 +@@ -63282,7 +63282,7 @@ pci:v00008086d00002600* + ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 + + pci:v00008086d00002600sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Hub Interface ++ ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 (PowerEdge 6850 Hub Interface) + + pci:v00008086d00002601* + ID_MODEL_FROM_DATABASE=E8500/E8501 PCI Express x4 Port D +@@ -63363,76 +63363,76 @@ pci:v00008086d00002620* + ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge + + pci:v00008086d00002620sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Bridge ++ ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge (PowerEdge 6850 Memory Bridge) + + pci:v00008086d00002621* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers + + pci:v00008086d00002621sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 XMB Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers (PowerEdge 6850 XMB Registers) + + pci:v00008086d00002622* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers + + pci:v00008086d00002622sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Interleaving Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers (PowerEdge 6850 Memory Interleaving Registers) + + pci:v00008086d00002623* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration + + pci:v00008086d00002623sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 DDR Initialization and Calibration ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration (PowerEdge 6850 DDR Initialization and Calibration) + + pci:v00008086d00002624* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002624sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002625* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002625sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002626* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002626sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002627* + ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers + + pci:v00008086d00002627sv00001028sd00000170* +- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers ++ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) + + pci:v00008086d00002640* + ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge + + pci:v00008086d00002640sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (915P/G Neo2) + + pci:v00008086d00002640sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (Scenic W620) + + pci:v00008086d00002640sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CCD-CALYPSO) + + pci:v00008086d00002640sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CD3-JIVE) + + pci:v00008086d00002640sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (XB1) + + pci:v00008086d00002641* + ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge + + pci:v00008086d00002641sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (Compaq nw8240/nx8220) + + pci:v00008086d00002641sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (NX6110/NC6120) + + pci:v00008086d00002642* + ID_MODEL_FROM_DATABASE=82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge +@@ -63441,34 +63441,34 @@ pci:v00008086d00002651* + ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller + + pci:v00008086d00002651sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Optiplex GX280) + + pci:v00008086d00002651sv00001043sd00002601* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002651sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Scenic W620) + + pci:v00008086d00002651sv00008086sd00004147* +- ID_MODEL_FROM_DATABASE=D915GAG Motherboard ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (D915GAG Motherboard) + + pci:v00008086d00002651sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CCD-CALYPSO) + + pci:v00008086d00002651sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CD3-JIVE) + + pci:v00008086d00002651sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (XB1) + + pci:v00008086d00002652* + ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller + + pci:v00008086d00002652sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (Dimension 8400) + + pci:v00008086d00002652sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (915P/G Neo2) + + pci:v00008086d00002653* + ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) SATA Controller +@@ -63477,289 +63477,289 @@ pci:v00008086d00002658* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 + + pci:v00008086d00002658sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Dimension 8400) + + pci:v00008086d00002658sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Optiplex GX280) + + pci:v00008086d00002658sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Compaq nw8240/nx8220) + + pci:v00008086d00002658sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (NX6110/NC6120) + + pci:v00008086d00002658sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (P5GD1-VW Mainboard) + + pci:v00008086d00002658sv00001458sd00002558* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (GA-8I915ME-G Mainboard) + + pci:v00008086d00002658sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (915P/G Neo2) + + pci:v00008086d00002658sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Scenic W620) + + pci:v00008086d00002658sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CCD-CALYPSO) + + pci:v00008086d00002658sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CD3-JIVE) + + pci:v00008086d00002658sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (XB1) + + pci:v00008086d00002659* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 + + pci:v00008086d00002659sv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Dimension 8400) + + pci:v00008086d00002659sv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Optiplex GX280) + + pci:v00008086d00002659sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Compaq nw8240/nx8220) + + pci:v00008086d00002659sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (NX6110/NC6120) + + pci:v00008086d00002659sv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (P5GD1-VW Mainboard) + + pci:v00008086d00002659sv00001458sd00002659* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (GA-8I915ME-G Mainboard) + + pci:v00008086d00002659sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (915P/G Neo2) + + pci:v00008086d00002659sv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Scenic W620) + + pci:v00008086d00002659sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CCD-CALYPSO) + + pci:v00008086d00002659sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CD3-JIVE) + + pci:v00008086d00002659sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (XB1) + + pci:v00008086d0000265A* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 + + pci:v00008086d0000265Asv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Dimension 8400) + + pci:v00008086d0000265Asv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Optiplex GX280) + + pci:v00008086d0000265Asv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Compaq nw8240/nx8220) + + pci:v00008086d0000265Asv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (NX6110/NC6120) + + pci:v00008086d0000265Asv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (P5GD1-VW Mainboard) + + pci:v00008086d0000265Asv00001458sd0000265A* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (GA-8I915ME-G Mainboard) + + pci:v00008086d0000265Asv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (915P/G Neo2) + + pci:v00008086d0000265Asv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Scenic W620) + + pci:v00008086d0000265Asv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CCD-CALYPSO) + + pci:v00008086d0000265Asv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CD3-JIVE) + + pci:v00008086d0000265Asv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (XB1) + + pci:v00008086d0000265B* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 + + pci:v00008086d0000265Bsv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Dimension 8400) + + pci:v00008086d0000265Bsv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Optiplex GX280) + + pci:v00008086d0000265Bsv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (NX6110/NC6120) + + pci:v00008086d0000265Bsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (P5GD1-VW Mainboard) + + pci:v00008086d0000265Bsv00001458sd0000265A* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (GA-8I915ME-G Mainboard) + + pci:v00008086d0000265Bsv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (915P/G Neo2) + + pci:v00008086d0000265Bsv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Scenic W620) + + pci:v00008086d0000265Bsv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CCD-CALYPSO) + + pci:v00008086d0000265Bsv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CD3-JIVE) + + pci:v00008086d0000265Bsv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (XB1) + + pci:v00008086d0000265C* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller + + pci:v00008086d0000265Csv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 8400) + + pci:v00008086d0000265Csv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Optiplex GX280) + + pci:v00008086d0000265Csv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000265Csv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (NX6110/NC6120) + + pci:v00008086d0000265Csv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (P5GD1-VW Mainboard) + + pci:v00008086d0000265Csv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000265Csv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (915P/G Neo2) + + pci:v00008086d0000265Csv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Scenic W620) + + pci:v00008086d0000265Csv00008086sd0000265C* +- ID_MODEL_FROM_DATABASE=Dimension 3100 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 3100) + + pci:v00008086d0000265Csv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CCD-CALYPSO) + + pci:v00008086d0000265Csv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CD3-JIVE) + + pci:v00008086d0000265Csv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (XB1) + + pci:v00008086d00002660* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 + + pci:v00008086d00002660sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002660sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (NX6110/NC6120) + + pci:v00008086d00002660sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CCD-CALYPSO) + + pci:v00008086d00002660sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CD3-JIVE) + + pci:v00008086d00002660sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (XB1) + + pci:v00008086d00002662* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 + + pci:v00008086d00002662sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (HP Compaq nw8240 Mobile Workstation) + + pci:v00008086d00002662sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CCD-CALYPSO) + + pci:v00008086d00002662sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CD3-JIVE) + + pci:v00008086d00002662sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (XB1) + + pci:v00008086d00002664* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 + + pci:v00008086d00002664sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CCD-CALYPSO) + + pci:v00008086d00002664sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CD3-JIVE) + + pci:v00008086d00002664sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (XB1) + + pci:v00008086d00002666* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 + + pci:v00008086d00002666sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CCD-CALYPSO) + + pci:v00008086d00002666sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CD3-JIVE) + + pci:v00008086d00002666sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (XB1) + + pci:v00008086d00002668* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller + + pci:v00008086d00002668sv00001014sd000005B7* +- ID_MODEL_FROM_DATABASE=ThinkPad Z60t ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (ThinkPad Z60t) + + pci:v00008086d00002668sv0000103Csd00002A09* +- ID_MODEL_FROM_DATABASE=PufferM-UL8E ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (PufferM-UL8E) + + pci:v00008086d00002668sv00001043sd00001173* +- ID_MODEL_FROM_DATABASE=Asus A6VC ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (Asus A6VC) + + pci:v00008086d00002668sv00001043sd0000814E* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002668sv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (915P/G Neo2) + + pci:v00008086d00002668sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (QEMU Virtual Machine) + + pci:v00008086d0000266A* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller + + pci:v00008086d0000266Asv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Dimension 8400) + + pci:v00008086d0000266Asv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Optiplex GX280) + + pci:v00008086d0000266Asv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (P5GD1-VW Mainboard) + + pci:v00008086d0000266Asv00001458sd0000266A* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000266Asv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (915P/G Neo2) + + pci:v00008086d0000266Asv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Scenic W620) + + pci:v00008086d0000266Asv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CCD-CALYPSO) + + pci:v00008086d0000266Asv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CD3-JIVE) + + pci:v00008086d0000266Asv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (XB1) + + pci:v00008086d0000266C* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller +@@ -63768,103 +63768,103 @@ pci:v00008086d0000266D* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller + + pci:v00008086d0000266Dsv00001025sd0000006A* +- ID_MODEL_FROM_DATABASE=Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop) ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)) + + pci:v00008086d0000266Dsv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000266Dsv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (NX6110/NC6120) + + pci:v00008086d0000266E* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller + + pci:v00008086d0000266Esv00001025sd0000006A* +- ID_MODEL_FROM_DATABASE=Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop) ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)) + + pci:v00008086d0000266Esv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dimension 8400) + + pci:v00008086d0000266Esv00001028sd00000179* +- ID_MODEL_FROM_DATABASE=Optiplex GX280 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Optiplex GX280) + + pci:v00008086d0000266Esv00001028sd00000182* +- ID_MODEL_FROM_DATABASE=Latitude D610 Laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Latitude D610 Laptop) + + pci:v00008086d0000266Esv00001028sd00000187* +- ID_MODEL_FROM_DATABASE=Dell Precision M70 Laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dell Precision M70 Laptop) + + pci:v00008086d0000266Esv00001028sd00000188* +- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Inspiron 6000 laptop) + + pci:v00008086d0000266Esv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000266Esv0000103Csd00000944* +- ID_MODEL_FROM_DATABASE=Compaq NC6220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq NC6220) + + pci:v00008086d0000266Esv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (NX6110/NC6120) + + pci:v00008086d0000266Esv0000103Csd00003006* +- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (DC7100 SFF(DX878AV)) + + pci:v00008086d0000266Esv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000266Esv0000152Dsd00000745* +- ID_MODEL_FROM_DATABASE=Packard Bell A8550 Laptop ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Packard Bell A8550 Laptop) + + pci:v00008086d0000266Esv00001734sd0000105A* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Scenic W620) + + pci:v00008086d0000266F* + ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller + + pci:v00008086d0000266Fsv00001028sd00000177* +- ID_MODEL_FROM_DATABASE=Dimension 8400 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Dimension 8400) + + pci:v00008086d0000266Fsv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Compaq nw8240/nx8220) + + pci:v00008086d0000266Fsv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (NX6110/NC6120) + + pci:v00008086d0000266Fsv00001043sd000080A6* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (P5GD1-VW Mainboard) + + pci:v00008086d0000266Fsv00001458sd0000266F* +- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (GA-8I915ME-G Mainboard) + + pci:v00008086d0000266Fsv00001462sd00007028* +- ID_MODEL_FROM_DATABASE=915P/G Neo2 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (915P/G Neo2) + + pci:v00008086d0000266Fsv00001734sd0000105C* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Scenic W620) + + pci:v00008086d0000266Fsv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CCD-CALYPSO) + + pci:v00008086d0000266Fsv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CD3-JIVE) + + pci:v00008086d0000266Fsv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (XB1) + + pci:v00008086d00002670* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller + + pci:v00008086d00002670sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (ProLiant DL140 G3) + + pci:v00008086d00002670sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DVL-E-O motherboard) + + pci:v00008086d00002670sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DBN Motherboard) + + pci:v00008086d00002670sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002680* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SATA IDE Controller +@@ -63873,22 +63873,22 @@ pci:v00008086d00002681* + ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller + + pci:v00008086d00002681sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (ProLiant DL140 G3) + + pci:v00008086d00002681sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DVL-E-O motherboard) + + pci:v00008086d00002681sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DBN Motherboard) + + pci:v00008086d00002681sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002682* + ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller + + pci:v00008086d00002682sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=Adaptec Serial ATA HostRAID ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller (Adaptec Serial ATA HostRAID) + + pci:v00008086d00002683* + ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller +@@ -63897,109 +63897,109 @@ pci:v00008086d00002688* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 + + pci:v00008086d00002688sv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge 1955 onboard USB) + + pci:v00008086d00002688sv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge R900 onboard USB) + + pci:v00008086d00002688sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (ProLiant DL140 G3) + + pci:v00008086d00002688sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DVL-E-O motherboard) + + pci:v00008086d00002688sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DBN Motherboard) + + pci:v00008086d00002688sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002689* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 + + pci:v00008086d00002689sv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge 1955 onboard USB) + + pci:v00008086d00002689sv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge R900 onboard USB) + + pci:v00008086d00002689sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (ProLiant DL140 G3) + + pci:v00008086d00002689sv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DVL-E-O motherboard) + + pci:v00008086d00002689sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DBN Motherboard) + + pci:v00008086d00002689sv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000268A* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 + + pci:v00008086d0000268Asv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (PowerEdge R900 onboard USB) + + pci:v00008086d0000268Asv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (ProLiant DL140 G3) + + pci:v00008086d0000268Asv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DVL-E-O motherboard) + + pci:v00008086d0000268Asv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DBN Motherboard) + + pci:v00008086d0000268Asv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000268B* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 + + pci:v00008086d0000268Bsv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (PowerEdge R900 onboard USB) + + pci:v00008086d0000268Bsv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (X7DVL-E-O motherboard) + + pci:v00008086d0000268Bsv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000268C* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller + + pci:v00008086d0000268Csv00001028sd000001BB* +- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge 1955 onboard USB) + + pci:v00008086d0000268Csv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge R900 onboard USB) + + pci:v00008086d0000268Csv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (ProLiant DL140 G3) + + pci:v00008086d0000268Csv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DVL-E-O motherboard) + + pci:v00008086d0000268Csv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DBN Motherboard) + + pci:v00008086d0000268Csv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d00002690* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 + + pci:v00008086d00002690sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (ProLiant DL140 G3) + + pci:v00008086d00002690sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (X7DBN Motherboard) + + pci:v00008086d00002692* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 + + pci:v00008086d00002692sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 (ProLiant DL140 G3) + + pci:v00008086d00002694* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 3 +@@ -64020,49 +64020,49 @@ pci:v00008086d0000269B* + ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller + + pci:v00008086d0000269Bsv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (ProLiant DL140 G3) + + pci:v00008086d0000269Bsv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DVL-E-O motherboard) + + pci:v00008086d0000269Bsv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DBN Motherboard) + + pci:v00008086d0000269Bsv00008086sd00003476* +- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (Intel S5000PSLSATA Server Board) + + pci:v00008086d0000269E* + ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller + + pci:v00008086d0000269Esv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (ProLiant DL140 G3) + + pci:v00008086d0000269Esv000015D9sd00008680* +- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DVL-E-O motherboard) + + pci:v00008086d0000269Esv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DBN Motherboard) + + pci:v00008086d00002770* + ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub + + pci:v00008086d00002770sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (OptiPlex GX620) + + pci:v00008086d00002770sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Pavilion A1512X) + + pci:v00008086d00002770sv00001043sd0000817A* +- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (P5LD2-VM Mainboard) + + pci:v00008086d00002770sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (E4500) + + pci:v00008086d00002770sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Wind PC MS-7418) + + pci:v00008086d00002770sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (DeskTop Board D945GTP) + + pci:v00008086d00002771* + ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL PCI Express Root Port +@@ -64071,16 +64071,16 @@ pci:v00008086d00002772* + ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller + + pci:v00008086d00002772sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Pavilion A1512X) + + pci:v00008086d00002772sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Wind PC MS-7418) + + pci:v00008086d00002772sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (DeskTop Board D945GTP) + + pci:v00008086d00002772sv00008086sd0000D605* +- ID_MODEL_FROM_DATABASE=Intel Desktop Board D945GCCR ++ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Intel Desktop Board D945GCCR) + + pci:v00008086d00002774* + ID_MODEL_FROM_DATABASE=82955X Memory Controller Hub +@@ -64095,10 +64095,10 @@ pci:v00008086d00002778* + ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub + + pci:v00008086d00002778sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge SC440) + + pci:v00008086d00002778sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge 860) + + pci:v00008086d00002779* + ID_MODEL_FROM_DATABASE=E7230/3000/3010 PCI Express Root Port +@@ -64110,7 +64110,7 @@ pci:v00008086d0000277C* + ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub + + pci:v00008086d0000277Csv00001043sd00008178* +- ID_MODEL_FROM_DATABASE=P5WDG2 WS Professional motherboard ++ ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub (P5WDG2 WS Professional motherboard) + + pci:v00008086d0000277D* + ID_MODEL_FROM_DATABASE=82975X PCI Express Root Port +@@ -64119,94 +64119,94 @@ pci:v00008086d00002782* + ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller + + pci:v00008086d00002782sv00001043sd00002582* +- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard ++ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (P5GD1-VW Mainboard) + + pci:v00008086d00002782sv00001734sd0000105B* +- ID_MODEL_FROM_DATABASE=Scenic W620 ++ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (Scenic W620) + + pci:v00008086d00002792* + ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller + + pci:v00008086d00002792sv0000103Csd0000099C* +- ID_MODEL_FROM_DATABASE=NX6110/NC6120 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) + + pci:v00008086d00002792sv00001043sd00001881* +- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) + + pci:v00008086d00002792sv0000E4BFsd00000CCD* +- ID_MODEL_FROM_DATABASE=CCD-CALYPSO ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) + + pci:v00008086d00002792sv0000E4BFsd00000CD3* +- ID_MODEL_FROM_DATABASE=CD3-JIVE ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) + + pci:v00008086d00002792sv0000E4BFsd000058B1* +- ID_MODEL_FROM_DATABASE=XB1 ++ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) + + pci:v00008086d000027A0* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub + + pci:v00008086d000027A0sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (9814 WKMI) + + pci:v00008086d000027A0sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (XPS M1210) + + pci:v00008086d000027A0sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nx9420 Notebook) + + pci:v00008086d000027A0sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (NC2400) + + pci:v00008086d000027A0sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nw8440) + + pci:v00008086d000027A0sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) + + pci:v00008086d000027A0sv000017AAsd00002015* +- ID_MODEL_FROM_DATABASE=ThinkPad T60 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) + + pci:v00008086d000027A0sv000017AAsd00002017* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027A1* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port + + pci:v00008086d000027A1sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nx9420 Notebook) + + pci:v00008086d000027A1sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) + + pci:v00008086d000027A2* + ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller + + pci:v00008086d000027A2sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (NC2400) + + pci:v00008086d000027A2sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027A2sv00009902sd00001584* +- ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (CCE MPL-D10H120F) + + pci:v00008086d000027A6* + ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller + + pci:v00008086d000027A6sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (NC2400) + + pci:v00008086d000027A6sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (CC11/CL11 integrated graphics (secondary)) + + pci:v00008086d000027A6sv000017AAsd0000201A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027AC* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub + + pci:v00008086d000027ACsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub (CC11/CL11) + + pci:v00008086d000027AD* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express PCI Express Root Port +@@ -64215,178 +64215,178 @@ pci:v00008086d000027AE* + ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller + + pci:v00008086d000027AEsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (primary) ++ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller (CC11/CL11 integrated graphics (primary)) + + pci:v00008086d000027B0* + ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge + + pci:v00008086d000027B0sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (Pavilion A1512X) + + pci:v00008086d000027B0sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (DeskTop Board D945GTP) + + pci:v00008086d000027B8* + ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge + + pci:v00008086d000027B8sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (PowerEdge 860) + + pci:v00008086d000027B8sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (P5KPL-VM Motherboard) + + pci:v00008086d000027B8sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (E4500) + + pci:v00008086d000027B8sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (Wind PC MS-7418) + + pci:v00008086d000027B8sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (CC11/CL11) + + pci:v00008086d000027B8sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (DeskTop Board D945GTP) + + pci:v00008086d000027B9* + ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge + + pci:v00008086d000027B9sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (XPS M1210) + + pci:v00008086d000027B9sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nx9420 Notebook) + + pci:v00008086d000027B9sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (NC2400) + + pci:v00008086d000027B9sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) + + pci:v00008086d000027B9sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) + + pci:v00008086d000027B9sv000017AAsd00002009* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027BC* + ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller + + pci:v00008086d000027BCsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (D270S/D250S Motherboard) + + pci:v00008086d000027BCsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Notebook N150P) + + pci:v00008086d000027BCsv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (GA-D525TUD) + + pci:v00008086d000027BCsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (DeskTop Board D510MO) + + pci:v00008086d000027BCsv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Desktop Board D425KT) + + pci:v00008086d000027BD* + ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge + + pci:v00008086d000027BDsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge (9814 WKMI) + + pci:v00008086d000027C0* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] + + pci:v00008086d000027C0sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (OptiPlex GX620) + + pci:v00008086d000027C0sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge SC440) + + pci:v00008086d000027C0sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge 860) + + pci:v00008086d000027C0sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (P5KPL-VM Motherboard) + + pci:v00008086d000027C0sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (E4500) + + pci:v00008086d000027C0sv00001462sd00002310* +- ID_MODEL_FROM_DATABASE=MSI Hetis 945 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (MSI Hetis 945) + + pci:v00008086d000027C0sv00001462sd00007236* +- ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (945P Neo3-F Rev. 2.2 motherboard) + + pci:v00008086d000027C0sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Wind PC MS-7418) + + pci:v00008086d000027C0sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (CC11/CL11) + + pci:v00008086d000027C0sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Desktop Board D425KT) + + pci:v00008086d000027C0sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (DeskTop Board D945GTP) + + pci:v00008086d000027C1* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] + + pci:v00008086d000027C1sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (PowerEdge SC440) + + pci:v00008086d000027C1sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Pavilion A1512X) + + pci:v00008086d000027C1sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (D270S/D250S Motherboard) + + pci:v00008086d000027C1sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Notebook N150P) + + pci:v00008086d000027C1sv00001458sd0000B005* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (GA-D525TUD) + + pci:v00008086d000027C1sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (CC11/CL11) + + pci:v00008086d000027C1sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D510MO) + + pci:v00008086d000027C1sv00008086sd00005842* +- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D975XBX) + + pci:v00008086d000027C3* + ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] + + pci:v00008086d000027C3sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (CC11/CL11) + + pci:v00008086d000027C3sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (DeskTop Board D945GTP) + + pci:v00008086d000027C4* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] + + pci:v00008086d000027C4sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (9814 WKMI) + + pci:v00008086d000027C4sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) + + pci:v00008086d000027C4sv000017AAsd0000200E* +- ID_MODEL_FROM_DATABASE=ThinkPad T60 ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) + + pci:v00008086d000027C5* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] + + pci:v00008086d000027C5sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nx9420 Notebook) + + pci:v00008086d000027C5sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nw8440) + + pci:v00008086d000027C5sv000017AAsd0000200D* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027C6* + ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] +@@ -64395,553 +64395,553 @@ pci:v00008086d000027C8* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 + + pci:v00008086d000027C8sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (9814 WKMI) + + pci:v00008086d000027C8sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (OptiPlex GX620) + + pci:v00008086d000027C8sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (XPS M1210) + + pci:v00008086d000027C8sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge SC440) + + pci:v00008086d000027C8sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge 860) + + pci:v00008086d000027C8sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Pavilion A1512X) + + pci:v00008086d000027C8sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nx9420 Notebook) + + pci:v00008086d000027C8sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (NC2400) + + pci:v00008086d000027C8sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nw8440) + + pci:v00008086d000027C8sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (A6J-Q008) + + pci:v00008086d000027C8sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027C8sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) + + pci:v00008086d000027C8sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) + + pci:v00008086d000027C8sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Notebook N150P) + + pci:v00008086d000027C8sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (GA-D525TUD) + + pci:v00008086d000027C8sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Wind PC MS-7418) + + pci:v00008086d000027C8sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (CC11/CL11) + + pci:v00008086d000027C8sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027C8sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D510MO) + + pci:v00008086d000027C8sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Desktop Board D425KT) + + pci:v00008086d000027C8sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D945GTP) + + pci:v00008086d000027C9* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 + + pci:v00008086d000027C9sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (9814 WKMI) + + pci:v00008086d000027C9sv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (OptiPlex GX620) + + pci:v00008086d000027C9sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (XPS M1210) + + pci:v00008086d000027C9sv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge SC440) + + pci:v00008086d000027C9sv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge 860) + + pci:v00008086d000027C9sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Pavilion A1512X) + + pci:v00008086d000027C9sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nx9420 Notebook) + + pci:v00008086d000027C9sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (NC2400) + + pci:v00008086d000027C9sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nw8440) + + pci:v00008086d000027C9sv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (A6J-Q008) + + pci:v00008086d000027C9sv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027C9sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) + + pci:v00008086d000027C9sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) + + pci:v00008086d000027C9sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Notebook N150P) + + pci:v00008086d000027C9sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (GA-D525TUD) + + pci:v00008086d000027C9sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Wind PC MS-7418) + + pci:v00008086d000027C9sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (CC11/CL11) + + pci:v00008086d000027C9sv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027C9sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D510MO) + + pci:v00008086d000027C9sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Desktop Board D425KT) + + pci:v00008086d000027C9sv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D945GTP) + + pci:v00008086d000027CA* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 + + pci:v00008086d000027CAsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (9814 WKMI) + + pci:v00008086d000027CAsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (OptiPlex GX620) + + pci:v00008086d000027CAsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (XPS M1210) + + pci:v00008086d000027CAsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge SC440) + + pci:v00008086d000027CAsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge 860) + + pci:v00008086d000027CAsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Pavilion A1512X) + + pci:v00008086d000027CAsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nx9420 Notebook) + + pci:v00008086d000027CAsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (NC2400) + + pci:v00008086d000027CAsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nw8440) + + pci:v00008086d000027CAsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (A6J-Q008) + + pci:v00008086d000027CAsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027CAsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) + + pci:v00008086d000027CAsv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) + + pci:v00008086d000027CAsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Notebook N150P) + + pci:v00008086d000027CAsv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (GA-D525TUD) + + pci:v00008086d000027CAsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Wind PC MS-7418) + + pci:v00008086d000027CAsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (CC11/CL11) + + pci:v00008086d000027CAsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027CAsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D510MO) + + pci:v00008086d000027CAsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D945GTP) + + pci:v00008086d000027CB* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 + + pci:v00008086d000027CBsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (9814 WKMI) + + pci:v00008086d000027CBsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (OptiPlex GX620) + + pci:v00008086d000027CBsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (XPS M1210) + + pci:v00008086d000027CBsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (PowerEdge SC440) + + pci:v00008086d000027CBsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Pavilion A1512X) + + pci:v00008086d000027CBsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nx9420 Notebook) + + pci:v00008086d000027CBsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (NC2400) + + pci:v00008086d000027CBsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nw8440) + + pci:v00008086d000027CBsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (A6J-Q008) + + pci:v00008086d000027CBsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027CBsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) + + pci:v00008086d000027CBsv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) + + pci:v00008086d000027CBsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Notebook N150P) + + pci:v00008086d000027CBsv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (GA-D525TUD) + + pci:v00008086d000027CBsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Wind PC MS-7418) + + pci:v00008086d000027CBsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (CC11/CL11) + + pci:v00008086d000027CBsv000017AAsd0000200A* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027CBsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D510MO) + + pci:v00008086d000027CBsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D945GTP) + + pci:v00008086d000027CC* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller + + pci:v00008086d000027CCsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (9814 WKMI) + + pci:v00008086d000027CCsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (OptiPlex GX620) + + pci:v00008086d000027CCsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (XPS M1210) + + pci:v00008086d000027CCsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge SC440) + + pci:v00008086d000027CCsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge 860) + + pci:v00008086d000027CCsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Pavilion A1512X) + + pci:v00008086d000027CCsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nx9420 Notebook) + + pci:v00008086d000027CCsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (NC2400) + + pci:v00008086d000027CCsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nw8440) + + pci:v00008086d000027CCsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (A6J-Q008) + + pci:v00008086d000027CCsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (P5KPL-VM,P5LD2-VM Mainboard) + + pci:v00008086d000027CCsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) + + pci:v00008086d000027CCsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) + + pci:v00008086d000027CCsv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (GA-D525TUD) + + pci:v00008086d000027CCsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Wind PC MS-7418) + + pci:v00008086d000027CCsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (CC11/CL11) + + pci:v00008086d000027CCsv000017AAsd0000200B* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027CCsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D510MO) + + pci:v00008086d000027CCsv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Desktop Board D425KT) + + pci:v00008086d000027CCsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D945GTP) + + pci:v00008086d000027D0* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 + + pci:v00008086d000027D0sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nx9420 Notebook) + + pci:v00008086d000027D0sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) + + pci:v00008086d000027D0sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) + + pci:v00008086d000027D0sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (GA-D525TUD) + + pci:v00008086d000027D0sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Wind PC MS-7418) + + pci:v00008086d000027D0sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (CC11/CL11) + + pci:v00008086d000027D0sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Desktop Board D425KT) + + pci:v00008086d000027D2* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 + + pci:v00008086d000027D2sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nx9420 Notebook) + + pci:v00008086d000027D2sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) + + pci:v00008086d000027D2sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) + + pci:v00008086d000027D2sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Wind PC MS-7418) + + pci:v00008086d000027D2sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (CC11/CL11) + + pci:v00008086d000027D2sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Desktop Board D425KT) + + pci:v00008086d000027D4* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 + + pci:v00008086d000027D4sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) + + pci:v00008086d000027D4sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Wind PC MS-7418) + + pci:v00008086d000027D4sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (CC11/CL11) + + pci:v00008086d000027D4sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Desktop Board D425KT) + + pci:v00008086d000027D6* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 + + pci:v00008086d000027D6sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) + + pci:v00008086d000027D6sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) + + pci:v00008086d000027D6sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Wind PC MS-7418) + + pci:v00008086d000027D6sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (CC11/CL11) + + pci:v00008086d000027D6sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Desktop Board D425KT) + + pci:v00008086d000027D8* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller + + pci:v00008086d000027D8sv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (9814 WKMI) + + pci:v00008086d000027D8sv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (XPS M1210) + + pci:v00008086d000027D8sv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Pavilion A1512X) + + pci:v00008086d000027D8sv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nx9420 Notebook) + + pci:v00008086d000027D8sv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (NC2400) + + pci:v00008086d000027D8sv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nw8440) + + pci:v00008086d000027D8sv00001043sd00001123* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (A6J-Q008) + + pci:v00008086d000027D8sv00001043sd000013C4* +- ID_MODEL_FROM_DATABASE=Asus G2P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus G2P) + + pci:v00008086d000027D8sv00001043sd0000817F* +- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard (Realtek ALC 882 codec) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5LD2-VM Mainboard (Realtek ALC 882 codec)) + + pci:v00008086d000027D8sv00001043sd00008290* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-VM Motherboard) + + pci:v00008086d000027D8sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-CM Motherboard) + + pci:v00008086d000027D8sv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) + + pci:v00008086d000027D8sv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) + + pci:v00008086d000027D8sv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Panasonic CF-Y5 laptop) + + pci:v00008086d000027D8sv00001179sd0000FF10* +- ID_MODEL_FROM_DATABASE=Toshiba Satellite A100-796 audio (Realtek ALC861) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Toshiba Satellite A100-796 audio (Realtek ALC861)) + + pci:v00008086d000027D8sv00001179sd0000FF31* +- ID_MODEL_FROM_DATABASE=AC97 Data Fax SoftModem with SmartCP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (AC97 Data Fax SoftModem with SmartCP) + + pci:v00008086d000027D8sv00001447sd00001043* +- ID_MODEL_FROM_DATABASE=Asus A8JP (Analog Devices AD1986A) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus A8JP (Analog Devices AD1986A)) + + pci:v00008086d000027D8sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Notebook N150P) + + pci:v00008086d000027D8sv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-D525TUD (Realtek ALC887) ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-D525TUD (Realtek ALC887)) + + pci:v00008086d000027D8sv00001458sd0000A102* +- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-8I945PG-RH Mainboard) + + pci:v00008086d000027D8sv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Wind PC MS-7418) + + pci:v00008086d000027D8sv0000152Dsd00000753* +- ID_MODEL_FROM_DATABASE=Softmodem ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Softmodem) + + pci:v00008086d000027D8sv00001734sd000010AD* +- ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Conexant softmodem SmartCP) + + pci:v00008086d000027D8sv000017AAsd00002010* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027D8sv000017AAsd00003802* +- ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Lenovo 3000 C200 audio [Realtek ALC861VD]) + + pci:v00008086d000027D8sv00008086sd00001112* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) + + pci:v00008086d000027D8sv00008086sd000027D8* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) + + pci:v00008086d000027D8sv00008086sd0000D618* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D510MO) + + pci:v00008086d000027D8sv00008384sd00007680* +- ID_MODEL_FROM_DATABASE=STAC9221 HD Audio Codec ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (STAC9221 HD Audio Codec) + + pci:v00008086d000027DA* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller + + pci:v00008086d000027DAsv00001025sd0000006C* +- ID_MODEL_FROM_DATABASE=9814 WKMI ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (9814 WKMI) + + pci:v00008086d000027DAsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (OptiPlex GX620) + + pci:v00008086d000027DAsv00001028sd000001D7* +- ID_MODEL_FROM_DATABASE=XPS M1210 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (XPS M1210) + + pci:v00008086d000027DAsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge SC440) + + pci:v00008086d000027DAsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge 860) + + pci:v00008086d000027DAsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Pavilion A1512X) + + pci:v00008086d000027DAsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (P5KPL-VM Motherboard) + + pci:v00008086d000027DAsv0000105Bsd00000D7C* +- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) + + pci:v00008086d000027DAsv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) + + pci:v00008086d000027DAsv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Notebook N150P) + + pci:v00008086d000027DAsv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (GA-8I945PG-RH/GA-D525TUD Mainboard) + + pci:v00008086d000027DAsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Wind PC MS-7418) + + pci:v00008086d000027DAsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (CC11/CL11) + + pci:v00008086d000027DAsv000017AAsd0000200F* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027DAsv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D510MO) + + pci:v00008086d000027DAsv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Desktop Board D425KT) + + pci:v00008086d000027DAsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D945GTP) + + pci:v00008086d000027DAsv00008086sd00005842* +- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D975XBX) + + pci:v00008086d000027DC* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller + + pci:v00008086d000027DCsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (Pavilion A1512X) + + pci:v00008086d000027DCsv00008086sd0000308D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (DeskTop Board D945GTP) + + pci:v00008086d000027DD* + ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Modem Controller +@@ -64950,88 +64950,88 @@ pci:v00008086d000027DE* + ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller + + pci:v00008086d000027DEsv00001028sd000001AD* +- ID_MODEL_FROM_DATABASE=OptiPlex GX620 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (OptiPlex GX620) + + pci:v00008086d000027DEsv00001462sd00007267* +- ID_MODEL_FROM_DATABASE=Realtek ALC883 Audio Controller ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (Realtek ALC883 Audio Controller) + + pci:v00008086d000027DEsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11 integrated audio (AD1981BL codec) ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (CC11 integrated audio (AD1981BL codec)) + + pci:v00008086d000027DF* + ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller + + pci:v00008086d000027DFsv00001028sd000001DF* +- ID_MODEL_FROM_DATABASE=PowerEdge SC440 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge SC440) + + pci:v00008086d000027DFsv00001028sd000001E6* +- ID_MODEL_FROM_DATABASE=PowerEdge 860 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge 860) + + pci:v00008086d000027DFsv0000103Csd00002A3B* +- ID_MODEL_FROM_DATABASE=Pavilion A1512X ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Pavilion A1512X) + + pci:v00008086d000027DFsv0000103Csd0000309F* +- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nx9420 Notebook) + + pci:v00008086d000027DFsv0000103Csd000030A1* +- ID_MODEL_FROM_DATABASE=NC2400 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (NC2400) + + pci:v00008086d000027DFsv0000103Csd000030A3* +- ID_MODEL_FROM_DATABASE=Compaq nw8440 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nw8440) + + pci:v00008086d000027DFsv00001043sd00001237* +- ID_MODEL_FROM_DATABASE=A6J-Q008 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (A6J-Q008) + + pci:v00008086d000027DFsv00001043sd00008179* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (P5KPL-VM Motherboard) + + pci:v00008086d000027DFsv0000107Bsd00005048* +- ID_MODEL_FROM_DATABASE=E4500 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (E4500) + + pci:v00008086d000027DFsv000010F7sd00008338* +- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Panasonic CF-Y5 laptop) + + pci:v00008086d000027DFsv00001462sd00007418* +- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Wind PC MS-7418) + + pci:v00008086d000027DFsv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (CC11/CL11) + + pci:v00008086d000027DFsv000017AAsd0000200C* +- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (ThinkPad R60/T60/X60 series) + + pci:v00008086d000027DFsv00008086sd0000544E* +- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP ++ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (DeskTop Board D945GTP) + + pci:v00008086d000027E0* + ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 + + pci:v00008086d000027E0sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 (CC11/CL11) + + pci:v00008086d000027E2* + ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 + + pci:v00008086d000027E2sv00001775sd000011CC* +- ID_MODEL_FROM_DATABASE=CC11/CL11 ++ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (CC11/CL11) + + pci:v00008086d00002810* + ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller + + pci:v00008086d00002810sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller (P5B) + + pci:v00008086d00002811* + ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller + + pci:v00008086d00002811sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (Compaq 6910p) + + pci:v00008086d00002811sv000017AAsd000020B6* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (ThinkPad T61/R61) + + pci:v00008086d00002811sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (CCG-RUMBA) + + pci:v00008086d00002812* + ID_MODEL_FROM_DATABASE=82801HH (ICH8DH) LPC Interface Controller +@@ -65043,34 +65043,34 @@ pci:v00008086d00002815* + ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller + + pci:v00008086d00002815sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Aspire 5920G) + + pci:v00008086d00002815sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Inspiron 1420) + + pci:v00008086d00002815sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Compaq 6710b) + + pci:v00008086d00002815sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Pavilion dv6700) + + pci:v00008086d00002815sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Presario C700) + + pci:v00008086d00002815sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Vaio VGN-FZ260E) + + pci:v00008086d00002815sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) + + pci:v00008086d00002820* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] + + pci:v00008086d00002820sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (OptiPlex 745) + + pci:v00008086d00002820sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002821* + ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA Controller [AHCI mode] +@@ -65079,10 +65079,10 @@ pci:v00008086d00002822* + ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] + + pci:v00008086d00002822sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Inspiron 530) + + pci:v00008086d00002822sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002823* + ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller +@@ -65091,16 +65091,16 @@ pci:v00008086d00002824* + ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] + + pci:v00008086d00002824sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] (P5B) + + pci:v00008086d00002825* + ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] + + pci:v00008086d00002825sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (OptiPlex 745) + + pci:v00008086d00002825sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002826* + ID_MODEL_FROM_DATABASE=C600/X79 series chipset SATA RAID Controller +@@ -65112,424 +65112,424 @@ pci:v00008086d00002828* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] + + pci:v00008086d00002828sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Inspiron 1420) + + pci:v00008086d00002828sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Compaq 6710b) + + pci:v00008086d00002828sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (CCG-RUMBA) + + pci:v00008086d00002829* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] + + pci:v00008086d00002829sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Aspire 5920G) + + pci:v00008086d00002829sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6710b) + + pci:v00008086d00002829sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6910p) + + pci:v00008086d00002829sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Pavilion dv6700) + + pci:v00008086d00002829sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Presario C700) + + pci:v00008086d00002829sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Vaio VGN-FZ260E) + + pci:v00008086d00002829sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (VAIO VGN-NR120E) + + pci:v00008086d00002829sv000017AAsd000020A7* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) + + pci:v00008086d00002829sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) + + pci:v00008086d0000282A* + ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] + + pci:v00008086d0000282Asv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (Latitude E6510) + + pci:v00008086d0000282Asv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (PC1-GROOVE) + + pci:v00008086d00002830* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 + + pci:v00008086d00002830sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Acer Aspire 5920G) + + pci:v00008086d00002830sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (OptiPlex 745) + + pci:v00008086d00002830sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Inspiron 1420) + + pci:v00008086d00002830sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6710b) + + pci:v00008086d00002830sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6910p) + + pci:v00008086d00002830sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Pavilion dv6700) + + pci:v00008086d00002830sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Presario C700) + + pci:v00008086d00002830sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P5B) + + pci:v00008086d00002830sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Vaio VGN-FZ260E) + + pci:v00008086d00002830sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (VAIO VGN-NR120E) + + pci:v00008086d00002830sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002830sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) + + pci:v00008086d00002830sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) + + pci:v00008086d00002831* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 + + pci:v00008086d00002831sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Aspire 5920G) + + pci:v00008086d00002831sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (OptiPlex 745) + + pci:v00008086d00002831sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Inspiron 1420) + + pci:v00008086d00002831sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6710b) + + pci:v00008086d00002831sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6910p) + + pci:v00008086d00002831sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Pavilion dv6700) + + pci:v00008086d00002831sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Presario C700) + + pci:v00008086d00002831sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P5B) + + pci:v00008086d00002831sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Vaio VGN-FZ260E) + + pci:v00008086d00002831sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (VAIO VGN-NR120E) + + pci:v00008086d00002831sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002831sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) + + pci:v00008086d00002831sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) + + pci:v00008086d00002832* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 + + pci:v00008086d00002832sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Aspire 5920G) + + pci:v00008086d00002832sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (OptiPlex 745) + + pci:v00008086d00002832sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Inspiron 1420) + + pci:v00008086d00002832sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6710b) + + pci:v00008086d00002832sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6910p) + + pci:v00008086d00002832sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Pavilion dv6700) + + pci:v00008086d00002832sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Presario C700) + + pci:v00008086d00002832sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (P5B) + + pci:v00008086d00002832sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Vaio VGN-FZ260E) + + pci:v00008086d00002832sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (VAIO VGN-NR120E) + + pci:v00008086d00002832sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) + + pci:v00008086d00002832sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) + + pci:v00008086d00002833* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 + + pci:v00008086d00002833sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) + + pci:v00008086d00002834* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 + + pci:v00008086d00002834sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Aspire 5920G) + + pci:v00008086d00002834sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (OptiPlex 745) + + pci:v00008086d00002834sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Inspiron 1420) + + pci:v00008086d00002834sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6710b) + + pci:v00008086d00002834sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6910p) + + pci:v00008086d00002834sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Pavilion dv6700) + + pci:v00008086d00002834sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) + + pci:v00008086d00002834sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Vaio VGN-FZ260E) + + pci:v00008086d00002834sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (VAIO VGN-NR120E) + + pci:v00008086d00002834sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002834sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) + + pci:v00008086d00002834sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) + + pci:v00008086d00002835* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 + + pci:v00008086d00002835sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Acer Aspire 5920G) + + pci:v00008086d00002835sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (OptiPlex 745) + + pci:v00008086d00002835sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Inspiron 1420) + + pci:v00008086d00002835sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6710b) + + pci:v00008086d00002835sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6910p) + + pci:v00008086d00002835sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Pavilion dv6700) + + pci:v00008086d00002835sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (P5B) + + pci:v00008086d00002835sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Vaio VGN-FZ260E) + + pci:v00008086d00002835sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (VAIO VGN-NR120E) + + pci:v00008086d00002835sv000017AAsd000020AA* +- ID_MODEL_FROM_DATABASE=Thinkpad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) + + pci:v00008086d00002835sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) + + pci:v00008086d00002836* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 + + pci:v00008086d00002836sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Aspire 5920G) + + pci:v00008086d00002836sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (OptiPlex 745) + + pci:v00008086d00002836sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Inspiron 1420) + + pci:v00008086d00002836sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6710b) + + pci:v00008086d00002836sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6910p) + + pci:v00008086d00002836sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Pavilion dv6700) + + pci:v00008086d00002836sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Presario C700) + + pci:v00008086d00002836sv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P5B) + + pci:v00008086d00002836sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Vaio VGN-FZ260E) + + pci:v00008086d00002836sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (VAIO VGN-NR120E) + + pci:v00008086d00002836sv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P965 Neo MS-7235 mainboard) + + pci:v00008086d00002836sv000017AAsd000020AB* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) + + pci:v00008086d00002836sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) + + pci:v00008086d0000283A* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 + + pci:v00008086d0000283Asv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Acer Aspire 5920G) + + pci:v00008086d0000283Asv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (OptiPlex 745) + + pci:v00008086d0000283Asv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Inspiron 1420) + + pci:v00008086d0000283Asv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6710b) + + pci:v00008086d0000283Asv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6910p) + + pci:v00008086d0000283Asv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Pavilion dv6700) + + pci:v00008086d0000283Asv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (P5B) + + pci:v00008086d0000283Asv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Vaio VGN-FZ260E) + + pci:v00008086d0000283Asv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (VAIO VGN-NR120E) + + pci:v00008086d0000283Asv000017AAsd000020AB* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) + + pci:v00008086d0000283Asv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) + + pci:v00008086d0000283E* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller + + pci:v00008086d0000283Esv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Aspire 5920G) + + pci:v00008086d0000283Esv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (OptiPlex 745) + + pci:v00008086d0000283Esv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Inspiron 1420) + + pci:v00008086d0000283Esv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Presario C700) + + pci:v00008086d0000283Esv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P5B) + + pci:v00008086d0000283Esv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-FZ260E) + + pci:v00008086d0000283Esv0000104Dsd00009008* +- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-SZ79SN_C) + + pci:v00008086d0000283Esv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (VAIO VGN-NR120E) + + pci:v00008086d0000283Esv00001462sd00007235* +- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P965 Neo MS-7235 mainboard) + + pci:v00008086d0000283Esv000017AAsd000020A9* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) + + pci:v00008086d0000283Esv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) + + pci:v00008086d0000283F* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 + + pci:v00008086d0000283Fsv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (OptiPlex 745) + + pci:v00008086d0000283Fsv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Compaq 6910p) + + pci:v00008086d0000283Fsv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (VAIO VGN-NR120E) + + pci:v00008086d0000283Fsv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) + + pci:v00008086d00002841* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 + + pci:v00008086d00002841sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Compaq 6910p) + + pci:v00008086d00002841sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (VAIO VGN-NR120E) + + pci:v00008086d00002841sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) + + pci:v00008086d00002843* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 + + pci:v00008086d00002843sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (VAIO VGN-NR120E) + + pci:v00008086d00002843sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) + + pci:v00008086d00002845* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 + + pci:v00008086d00002845sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) + + pci:v00008086d00002847* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 + + pci:v00008086d00002847sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (OptiPlex 745) + + pci:v00008086d00002847sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Compaq 6910p) + + pci:v00008086d00002847sv000017AAsd000020AD* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) + + pci:v00008086d00002849* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 +@@ -65538,70 +65538,70 @@ pci:v00008086d0000284B* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller + + pci:v00008086d0000284Bsv00001025sd0000011F* +- ID_MODEL_FROM_DATABASE=Realtek ALC268 audio codec ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC268 audio codec) + + pci:v00008086d0000284Bsv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Aspire 5920G) + + pci:v00008086d0000284Bsv00001025sd00000145* +- ID_MODEL_FROM_DATABASE=Realtek ALC889 (Aspire 8920G w. Dolby Theather) ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC889 (Aspire 8920G w. Dolby Theather)) + + pci:v00008086d0000284Bsv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (OptiPlex 745) + + pci:v00008086d0000284Bsv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Inspiron 1420) + + pci:v00008086d0000284Bsv00001028sd000001F9* +- ID_MODEL_FROM_DATABASE=Dell Latitude D630 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Latitude D630) + + pci:v00008086d0000284Bsv00001028sd000001FF* +- ID_MODEL_FROM_DATABASE=Dell Precision M4300 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Precision M4300) + + pci:v00008086d0000284Bsv00001028sd00000256* +- ID_MODEL_FROM_DATABASE=Studio 1735 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Studio 1735) + + pci:v00008086d0000284Bsv0000103Csd00002802* +- ID_MODEL_FROM_DATABASE=HP Compaq dc7700p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (HP Compaq dc7700p) + + pci:v00008086d0000284Bsv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6710b) + + pci:v00008086d0000284Bsv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6910p) + + pci:v00008086d0000284Bsv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Pavilion dv6700) + + pci:v00008086d0000284Bsv00001043sd00001339* +- ID_MODEL_FROM_DATABASE=Asus M51S series ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Asus M51S series) + + pci:v00008086d0000284Bsv00001043sd000081EC* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (P5B) + + pci:v00008086d0000284Bsv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-FZ260E) + + pci:v00008086d0000284Bsv0000104Dsd00009008* +- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-SZ79SN_C) + + pci:v00008086d0000284Bsv0000104Dsd00009016* +- ID_MODEL_FROM_DATABASE=Sony VAIO VGN-AR51M ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Sony VAIO VGN-AR51M) + + pci:v00008086d0000284Bsv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (VAIO VGN-NR120E) + + pci:v00008086d0000284Bsv000014F1sd00005051* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Presario C700) + + pci:v00008086d0000284Bsv000017AAsd000020AC* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) + + pci:v00008086d0000284Bsv00008384sd00007616* +- ID_MODEL_FROM_DATABASE=Dell Vostro 1400 ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) + + pci:v00008086d0000284Bsv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (CCG-RUMBA) + + pci:v00008086d0000284F* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) Thermal Reporting Device +@@ -65610,34 +65610,34 @@ pci:v00008086d00002850* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller + + pci:v00008086d00002850sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Aspire 5920G ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Aspire 5920G) + + pci:v00008086d00002850sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Inspiron 1420) + + pci:v00008086d00002850sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6710b) + + pci:v00008086d00002850sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6910p) + + pci:v00008086d00002850sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Pavilion dv6700) + + pci:v00008086d00002850sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Presario C700) + + pci:v00008086d00002850sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Vaio VGN-FZ260E) + + pci:v00008086d00002850sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (VAIO VGN-NR120E) + + pci:v00008086d00002850sv000017AAsd000020A6* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) + + pci:v00008086d00002850sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) + + pci:v00008086d00002912* + ID_MODEL_FROM_DATABASE=82801IH (ICH9DH) LPC Interface Controller +@@ -65646,40 +65646,40 @@ pci:v00008086d00002914* + ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller + + pci:v00008086d00002914sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller (Optiplex 755) + + pci:v00008086d00002916* + ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller + + pci:v00008086d00002916sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Inspiron 530) + + pci:v00008086d00002916sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002916sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (P5K PRO Motherboard) + + pci:v00008086d00002916sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Desktop Board DP35DP) + + pci:v00008086d00002917* + ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller + + pci:v00008086d00002917sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller (CCM-BOOGIE) + + pci:v00008086d00002918* + ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller + + pci:v00008086d00002918sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 82801IB (ICH9) LPC Interface Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (PowerEdge R610 82801IB (ICH9) LPC Interface Controller) + + pci:v00008086d00002918sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (G33/P35 Neo) + + pci:v00008086d00002918sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (QEMU Virtual Machine) + + pci:v00008086d00002919* + ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller +@@ -65688,46 +65688,46 @@ pci:v00008086d00002920* + ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] + + pci:v00008086d00002920sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Inspiron 530) + + pci:v00008086d00002920sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) + + pci:v00008086d00002920sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) + + pci:v00008086d00002920sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Optiplex 755) + + pci:v00008086d00002920sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R200 onboard SATA Controller) + + pci:v00008086d00002920sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (P5K PRO Motherboard) + + pci:v00008086d00002921* + ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] + + pci:v00008086d00002921sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R710 SATA IDE Controller) + + pci:v00008086d00002921sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R610 SATA IDE Controller) + + pci:v00008086d00002921sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge T610 SATA IDE Controller) + + pci:v00008086d00002921sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (G33/P35 Neo) + + pci:v00008086d00002922* + ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] + + pci:v00008086d00002922sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (QEMU Virtual Machine) + + pci:v00008086d00002922sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (Desktop Board DP35DP) + + pci:v00008086d00002923* + ID_MODEL_FROM_DATABASE=82801IB (ICH9) 4 port SATA Controller [AHCI mode] +@@ -65736,31 +65736,31 @@ pci:v00008086d00002925* + ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] + + pci:v00008086d00002925sv00001734sd000010E0* +- ID_MODEL_FROM_DATABASE=System Board D2542 ++ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) + + pci:v00008086d00002925sv00008086sd00002925* +- ID_MODEL_FROM_DATABASE=System Board D2542 ++ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) + + pci:v00008086d00002926* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] + + pci:v00008086d00002926sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Inspiron 530) + + pci:v00008086d00002926sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) + + pci:v00008086d00002926sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) + + pci:v00008086d00002926sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Optiplex 755) + + pci:v00008086d00002926sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (P5K PRO Motherboard) + + pci:v00008086d00002926sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (G33/P35 Neo) + + pci:v00008086d00002928* + ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] +@@ -65769,10 +65769,10 @@ pci:v00008086d00002929* + ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] + + pci:v00008086d00002929sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (dv6-1190en) + + pci:v00008086d00002929sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (CCM-BOOGIE) + + pci:v00008086d0000292C* + ID_MODEL_FROM_DATABASE=82801IEM (ICH9M-E) SATA Controller [RAID mode] +@@ -65781,511 +65781,511 @@ pci:v00008086d0000292D* + ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] + + pci:v00008086d0000292Dsv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] (CCM-BOOGIE) + + pci:v00008086d00002930* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller + + pci:v00008086d00002930sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Inspiron 530) + + pci:v00008086d00002930sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Optiplex 755) + + pci:v00008086d00002930sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002930sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (dv6-1190en) + + pci:v00008086d00002930sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (P5K PRO Motherboard) + + pci:v00008086d00002930sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (G33/P35 Neo) + + pci:v00008086d00002930sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (QEMU Virtual Machine) + + pci:v00008086d00002930sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Desktop Board DP35DP) + + pci:v00008086d00002930sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (CCM-BOOGIE) + + pci:v00008086d00002932* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem + + pci:v00008086d00002932sv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem (dv6-1190en) + + pci:v00008086d00002934* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 + + pci:v00008086d00002934sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Inspiron 530) + + pci:v00008086d00002934sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R300 onboard UHCI) + + pci:v00008086d00002934sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002934sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) + + pci:v00008086d00002934sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R200 onboard UHCI) + + pci:v00008086d00002934sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002934sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002934sv00001028sd00002011* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) + + pci:v00008086d00002934sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002934sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (P5K PRO Motherboard) + + pci:v00008086d00002934sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (G33/P35 Neo) + + pci:v00008086d00002934sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (QEMU Virtual Machine) + + pci:v00008086d00002934sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Desktop Board DP35DP) + + pci:v00008086d00002934sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (CCM-BOOGIE) + + pci:v00008086d00002935* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 + + pci:v00008086d00002935sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Inspiron 530) + + pci:v00008086d00002935sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R300 onboard UHCI) + + pci:v00008086d00002935sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002935sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Optiplex 755) + + pci:v00008086d00002935sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002935sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002935sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002935sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R200 onboard UHCI) + + pci:v00008086d00002935sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002935sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002935sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002935sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (P5K PRO Motherboard) + + pci:v00008086d00002935sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (G33/P35 Neo) + + pci:v00008086d00002935sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (QEMU Virtual Machine) + + pci:v00008086d00002935sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Desktop Board DP35DP) + + pci:v00008086d00002935sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (CCM-BOOGIE) + + pci:v00008086d00002936* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 + + pci:v00008086d00002936sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Inspiron 530) + + pci:v00008086d00002936sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R300 onboard UHCI) + + pci:v00008086d00002936sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002936sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Optiplex 755) + + pci:v00008086d00002936sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002936sv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R200 onboard UHCI) + + pci:v00008086d00002936sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002936sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002936sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002936sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (P5K PRO Motherboard) + + pci:v00008086d00002936sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (G33/P35 Neo) + + pci:v00008086d00002936sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (QEMU Virtual Machine) + + pci:v00008086d00002936sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Desktop Board DP35DP) + + pci:v00008086d00002936sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (CCM-BOOGIE) + + pci:v00008086d00002937* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 + + pci:v00008086d00002937sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Inspiron 530) + + pci:v00008086d00002937sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) + + pci:v00008086d00002937sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002937sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002937sv00001028sd00002011* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) + + pci:v00008086d00002937sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002937sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (P5K PRO Motherboard) + + pci:v00008086d00002937sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (G33/P35 Neo) + + pci:v00008086d00002937sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (QEMU Virtual Machine) + + pci:v00008086d00002937sv00008086sd00002937* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) + + pci:v00008086d00002937sv00008086sd00002942* +- ID_MODEL_FROM_DATABASE=828011 (ICH9 Family ) USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (828011 (ICH9 Family ) USB UHCI Controller) + + pci:v00008086d00002937sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Desktop Board DP35DP) + + pci:v00008086d00002937sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (CCM-BOOGIE) + + pci:v00008086d00002938* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 + + pci:v00008086d00002938sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Inspiron 530) + + pci:v00008086d00002938sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) + + pci:v00008086d00002938sv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R710 USB UHCI Controller) + + pci:v00008086d00002938sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R610 USB UHCI Controller) + + pci:v00008086d00002938sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002938sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M610 onboard UHCI) + + pci:v00008086d00002938sv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M710 USB UHCI Controller) + + pci:v00008086d00002938sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002938sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (P5K PRO Motherboard) + + pci:v00008086d00002938sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (G33/P35 Neo) + + pci:v00008086d00002938sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (QEMU Virtual Machine) + + pci:v00008086d00002938sv00008086sd00002938* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) + + pci:v00008086d00002938sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Desktop Board DP35DP) + + pci:v00008086d00002938sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (CCM-BOOGIE) + + pci:v00008086d00002939* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 + + pci:v00008086d00002939sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Inspiron 530) + + pci:v00008086d00002939sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T300 onboard UHCI) + + pci:v00008086d00002939sv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T610 USB UHCI Controller) + + pci:v00008086d00002939sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002939sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (P5K PRO Motherboard) + + pci:v00008086d00002939sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (G33/P35 Neo) + + pci:v00008086d00002939sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (QEMU Virtual Machine) + + pci:v00008086d00002939sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Desktop Board DP35DP) + + pci:v00008086d00002939sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (CCM-BOOGIE) + + pci:v00008086d0000293A* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 + + pci:v00008086d0000293Asv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Inspiron 530) + + pci:v00008086d0000293Asv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R300 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T300 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Optiplex 755) + + pci:v00008086d0000293Asv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R710 USB EHCI Controller) + + pci:v00008086d0000293Asv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R610 USB EHCI Controller) + + pci:v00008086d0000293Asv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T610 USB EHCI Controller) + + pci:v00008086d0000293Asv00001028sd0000023C* +- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R200 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M610 onboard EHCI) + + pci:v00008086d0000293Asv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M710 USB EHCI Controller) + + pci:v00008086d0000293Asv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000293Asv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (P5K PRO Motherboard) + + pci:v00008086d0000293Asv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (G33/P35 Neo) + + pci:v00008086d0000293Asv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (QEMU Virtual Machine) + + pci:v00008086d0000293Asv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Desktop Board DP35DP) + + pci:v00008086d0000293Asv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (CCM-BOOGIE) + + pci:v00008086d0000293C* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 + + pci:v00008086d0000293Csv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Inspiron 530) + + pci:v00008086d0000293Csv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) + + pci:v00008086d0000293Csv00001028sd00000235* +- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R710 USB EHCI Controller) + + pci:v00008086d0000293Csv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R610 USB EHCI Controller) + + pci:v00008086d0000293Csv00001028sd00000237* +- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge T610 USB EHCI Controller) + + pci:v00008086d0000293Csv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M610 onboard EHCI) + + pci:v00008086d0000293Csv00001028sd0000029C* +- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M710 USB EHCI Controller) + + pci:v00008086d0000293Csv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000293Csv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (P5K PRO Motherboard) + + pci:v00008086d0000293Csv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (G33/P35 Neo) + + pci:v00008086d0000293Csv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (QEMU Virtual Machine) + + pci:v00008086d0000293Csv00008086sd0000293C* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) + + pci:v00008086d0000293Csv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Desktop Board DP35DP) + + pci:v00008086d0000293Csv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (CCM-BOOGIE) + + pci:v00008086d0000293E* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller + + pci:v00008086d0000293Esv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Inspiron 530) + + pci:v00008086d0000293Esv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) + + pci:v00008086d0000293Esv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d0000293Esv0000103Csd00003628* +- ID_MODEL_FROM_DATABASE=dv6-1190en ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (dv6-1190en) + + pci:v00008086d0000293Esv00001043sd0000829F* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (P5K PRO Motherboard) + + pci:v00008086d0000293Esv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (G33/P35 Neo) + + pci:v00008086d0000293Esv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (QEMU Virtual Machine) + + pci:v00008086d0000293Esv00008086sd0000293E* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) + + pci:v00008086d0000293Esv00008086sd00002940* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) + + pci:v00008086d0000293Esv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (CCM-BOOGIE) + + pci:v00008086d00002940* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 + + pci:v00008086d00002940sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Inspiron 530) + + pci:v00008086d00002940sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) + + pci:v00008086d00002940sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002940sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (P5K PRO Motherboard) + + pci:v00008086d00002940sv00008086sd00002940* +- ID_MODEL_FROM_DATABASE=Optiplex 755 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) + + pci:v00008086d00002942* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 + + pci:v00008086d00002942sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 (Inspiron 530) + + pci:v00008086d00002944* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 + + pci:v00008086d00002944sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Inspiron 530) + + pci:v00008086d00002944sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Asus IPIBL-LB Motherboard) + + pci:v00008086d00002946* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 + + pci:v00008086d00002946sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 (Inspiron 530) + + pci:v00008086d00002948* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 + + pci:v00008086d00002948sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (Inspiron 530) + + pci:v00008086d00002948sv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (P5K PRO Motherboard) + + pci:v00008086d0000294A* + ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 + + pci:v00008086d0000294Asv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (Inspiron 530) + + pci:v00008086d0000294Asv00001043sd00008277* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (P5K PRO Motherboard) + + pci:v00008086d0000294C* + ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection + + pci:v00008086d0000294Csv000017AAsd0000302E* +- ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection ++ ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection (82566DM-2 Gigabit Network Connection) + + pci:v00008086d00002970* + ID_MODEL_FROM_DATABASE=82946GZ/PL/GL Memory Controller Hub +@@ -66330,7 +66330,7 @@ pci:v00008086d00002990* + ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub + + pci:v00008086d00002990sv00001028sd000001DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 745 ++ ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub (OptiPlex 745) + + pci:v00008086d00002991* + ID_MODEL_FROM_DATABASE=82Q963/Q965 PCI Express Root Port +@@ -66357,10 +66357,10 @@ pci:v00008086d000029A0* + ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub + + pci:v00008086d000029A0sv00001043sd000081EA* +- ID_MODEL_FROM_DATABASE=P5B ++ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (P5B) + + pci:v00008086d000029A0sv00001462sd00007276* +- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] ++ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (MS-7276 [G965MDH]) + + pci:v00008086d000029A1* + ID_MODEL_FROM_DATABASE=82P965/G965 PCI Express Root Port +@@ -66369,7 +66369,7 @@ pci:v00008086d000029A2* + ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller + + pci:v00008086d000029A2sv00001462sd00007276* +- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] ++ ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller (MS-7276 [G965MDH]) + + pci:v00008086d000029A3* + ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller +@@ -66390,31 +66390,31 @@ pci:v00008086d000029B0* + ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller + + pci:v00008086d000029B0sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller (OptiPlex 755) + + pci:v00008086d000029B1* + ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port + + pci:v00008086d000029B1sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port (OptiPlex 755) + + pci:v00008086d000029B2* + ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller + + pci:v00008086d000029B2sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) + + pci:v00008086d000029B3* + ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller + + pci:v00008086d000029B3sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) + + pci:v00008086d000029B4* + ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller + + pci:v00008086d000029B4sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller (OptiPlex 755) + + pci:v00008086d000029B5* + ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller +@@ -66423,70 +66423,70 @@ pci:v00008086d000029B6* + ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller + + pci:v00008086d000029B6sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller (OptiPlex 755) + + pci:v00008086d000029B7* + ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller + + pci:v00008086d000029B7sv00001028sd00000211* +- ID_MODEL_FROM_DATABASE=OptiPlex 755 ++ ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller (OptiPlex 755) + + pci:v00008086d000029C0* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller + + pci:v00008086d000029C0sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Inspiron 530) + + pci:v00008086d000029C0sv0000103Csd00002A6F* +- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Asus IPIBL-LB Motherboard) + + pci:v00008086d000029C0sv00001043sd00008276* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5K PRO Motherboard) + + pci:v00008086d000029C0sv00001043sd000082B0* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5KPL-VM Motherboard) + + pci:v00008086d000029C0sv00001462sd00007360* +- ID_MODEL_FROM_DATABASE=G33/P35 Neo ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (G33/P35 Neo) + + pci:v00008086d000029C0sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (QEMU Virtual Machine) + + pci:v00008086d000029C0sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Desktop Board DP35DP) + + pci:v00008086d000029C1* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port + + pci:v00008086d000029C1sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (Inspiron 530) + + pci:v00008086d000029C1sv00001043sd00008276* +- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (P5K PRO Motherboard) + + pci:v00008086d000029C2* + ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller + + pci:v00008086d000029C2sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) + + pci:v00008086d000029C2sv00001043sd000082B0* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) + + pci:v00008086d000029C3* + ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller + + pci:v00008086d000029C3sv00001028sd0000020D* +- ID_MODEL_FROM_DATABASE=Inspiron 530 ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) + + pci:v00008086d000029C3sv00001043sd000082B0* +- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard ++ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) + + pci:v00008086d000029C4* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller + + pci:v00008086d000029C4sv00008086sd00005044* +- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP ++ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller (Desktop Board DP35DP) + + pci:v00008086d000029C5* + ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller +@@ -66570,37 +66570,37 @@ pci:v00008086d00002A00* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub + + pci:v00008086d00002A00sv00001025sd00000121* +- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Acer Aspire 5920G) + + pci:v00008086d00002A00sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Inspiron 1420) + + pci:v00008086d00002A00sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6710b) + + pci:v00008086d00002A00sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6910p) + + pci:v00008086d00002A00sv0000103Csd000030CC* +- ID_MODEL_FROM_DATABASE=Pavilion dv6700 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Pavilion dv6700) + + pci:v00008086d00002A00sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Presario C700) + + pci:v00008086d00002A00sv0000104Dsd00009005* +- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Vaio VGN-FZ260E) + + pci:v00008086d00002A00sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (VAIO VGN-NR120E) + + pci:v00008086d00002A00sv000017AAsd000020B1* +- ID_MODEL_FROM_DATABASE=ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61) + + pci:v00008086d00002A00sv000017AAsd000020B3* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) + + pci:v00008086d00002A00sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) + + pci:v00008086d00002A01* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 PCI Express Root Port +@@ -66609,52 +66609,52 @@ pci:v00008086d00002A02* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) + + pci:v00008086d00002A02sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Inspiron 1420) + + pci:v00008086d00002A02sv00001028sd000001F9* +- ID_MODEL_FROM_DATABASE=Latitude D630 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Latitude D630) + + pci:v00008086d00002A02sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Compaq 6710b) + + pci:v00008086d00002A02sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Presario C700) + + pci:v00008086d00002A02sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (VAIO VGN-NR120E) + + pci:v00008086d00002A02sv000017AAsd000020B5* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) + + pci:v00008086d00002A02sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) + + pci:v00008086d00002A03* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) + + pci:v00008086d00002A03sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Dell Inspiron 1420 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) + + pci:v00008086d00002A03sv0000103Csd000030C0* +- ID_MODEL_FROM_DATABASE=Compaq 6710b ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) + + pci:v00008086d00002A03sv0000103Csd000030D9* +- ID_MODEL_FROM_DATABASE=Presario C700 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Presario C700) + + pci:v00008086d00002A03sv0000104Dsd0000902D* +- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (VAIO VGN-NR120E) + + pci:v00008086d00002A03sv000017AAsd000020B5* +- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) + + pci:v00008086d00002A03sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) + + pci:v00008086d00002A04* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller + + pci:v00008086d00002A04sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller (Compaq 6910p) + + pci:v00008086d00002A05* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller +@@ -66663,19 +66663,19 @@ pci:v00008086d00002A06* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller + + pci:v00008086d00002A06sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller (Compaq 6910p) + + pci:v00008086d00002A07* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller + + pci:v00008086d00002A07sv0000103Csd000030C1* +- ID_MODEL_FROM_DATABASE=Compaq 6910p ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller (Compaq 6910p) + + pci:v00008086d00002A10* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub + + pci:v00008086d00002A10sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub (CCG-RUMBA) + + pci:v00008086d00002A11* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 PCI Express Root Port +@@ -66684,13 +66684,13 @@ pci:v00008086d00002A12* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller + + pci:v00008086d00002A12sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) + + pci:v00008086d00002A13* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller + + pci:v00008086d00002A13sv0000E4BFsd0000CC47* +- ID_MODEL_FROM_DATABASE=CCG-RUMBA ++ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) + + pci:v00008086d00002A14* + ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 MEI Controller +@@ -66708,25 +66708,25 @@ pci:v00008086d00002A40* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub + + pci:v00008086d00002A40sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub (CCM-BOOGIE) + + pci:v00008086d00002A41* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port + + pci:v00008086d00002A41sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port (CCM-BOOGIE) + + pci:v00008086d00002A42* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002A42sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) + + pci:v00008086d00002A43* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002A43sv0000E4BFsd0000CC4D* +- ID_MODEL_FROM_DATABASE=CCM-BOOGIE ++ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) + + pci:v00008086d00002A44* + ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset MEI Controller +@@ -67251,34 +67251,34 @@ pci:v00008086d00002E20* + ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller + + pci:v00008086d00002E20sv00001028sd00000283* +- ID_MODEL_FROM_DATABASE=Dell Vostro 220 ++ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (Dell Vostro 220) + + pci:v00008086d00002E20sv00001043sd000082D3* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00002E20sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00002E21* + ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port + + pci:v00008086d00002E21sv00001043sd000082D3* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (P5Q Deluxe Motherboard) + + pci:v00008086d00002E21sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (GA-EP45-DS5 Motherboard) + + pci:v00008086d00002E22* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002E22sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) + + pci:v00008086d00002E23* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + + pci:v00008086d00002E23sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard ++ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) + + pci:v00008086d00002E24* + ID_MODEL_FROM_DATABASE=4 Series Chipset HECI Controller +@@ -67917,16 +67917,16 @@ pci:v00008086d00003200* + ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA + + pci:v00008086d00003200sv00001775sd0000C200* +- ID_MODEL_FROM_DATABASE=C2K onboard SATA host bus adapter ++ ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA (C2K onboard SATA host bus adapter) + + pci:v00008086d00003310* + ID_MODEL_FROM_DATABASE=IOP348 I/O Processor + + pci:v00008086d00003310sv00001054sd00003030* +- ID_MODEL_FROM_DATABASE=HRA380 Hitachi RAID Adapter to PCIe ++ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA380 Hitachi RAID Adapter to PCIe) + + pci:v00008086d00003310sv00001054sd00003034* +- ID_MODEL_FROM_DATABASE=HRA381 Hitachi RAID Adapter to PCIe ++ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA381 Hitachi RAID Adapter to PCIe) + + pci:v00008086d00003313* + ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA +@@ -67944,31 +67944,31 @@ pci:v00008086d00003340* + ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller + + pci:v00008086d00003340sv00001014sd00000529* +- ID_MODEL_FROM_DATABASE=Thinkpad T40 series ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (Thinkpad T40 series) + + pci:v00008086d00003340sv00001025sd0000005A* +- ID_MODEL_FROM_DATABASE=TravelMate 290 ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (TravelMate 290) + + pci:v00008086d00003340sv0000103Csd0000088C* +- ID_MODEL_FROM_DATABASE=NC8000 laptop ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC8000 laptop) + + pci:v00008086d00003340sv0000103Csd00000890* +- ID_MODEL_FROM_DATABASE=NC6000 laptop ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC6000 laptop) + + pci:v00008086d00003340sv0000103Csd000008B0* +- ID_MODEL_FROM_DATABASE=tc1100 tablet ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (tc1100 tablet) + + pci:v00008086d00003340sv0000144Dsd0000C005* +- ID_MODEL_FROM_DATABASE=X10 Laptop ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (X10 Laptop) + + pci:v00008086d00003340sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30/P35 notebook ++ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (P30/P35 notebook) + + pci:v00008086d00003341* + ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller + + pci:v00008086d00003341sv0000144Dsd0000C00C* +- ID_MODEL_FROM_DATABASE=P30 notebook ++ ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller (P30 notebook) + + pci:v00008086d00003363* + ID_MODEL_FROM_DATABASE=IOC340 I/O Controller in IOC Mode SAS/SATA +@@ -67995,19 +67995,19 @@ pci:v00008086d00003403* + ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port + + pci:v00008086d00003403sv00001028sd00000236* +- ID_MODEL_FROM_DATABASE=PowerEdge R610 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R610 I/O Hub to ESI Port) + + pci:v00008086d00003403sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge M610 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge M610 I/O Hub to ESI Port) + + pci:v00008086d00003403sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R410 I/O Hub to ESI Port) + + pci:v00008086d00003403sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 I/O Hub to ESI Port ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge T410 I/O Hub to ESI Port) + + pci:v00008086d00003403sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (ProLiant ML150 G6 Server) + + pci:v00008086d00003404* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port +@@ -68019,7 +68019,7 @@ pci:v00008086d00003406* + ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port + + pci:v00008086d00003406sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port (ProLiant G6 series) + + pci:v00008086d00003407* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port +@@ -68028,7 +68028,7 @@ pci:v00008086d00003408* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 + + pci:v00008086d00003408sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 (ProLiant G6 series) + + pci:v00008086d00003409* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 2 +@@ -68037,7 +68037,7 @@ pci:v00008086d0000340A* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 + + pci:v00008086d0000340Asv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 (ProLiant ML150 G6 Server) + + pci:v00008086d0000340B* + ID_MODEL_FROM_DATABASE=5520/X58 I/O Hub PCI Express Root Port 4 +@@ -68052,7 +68052,7 @@ pci:v00008086d0000340E* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 + + pci:v00008086d0000340Esv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 (ProLiant ML150 G6 Server) + + pci:v00008086d0000340F* + ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 8 +@@ -68079,13 +68079,13 @@ pci:v00008086d00003422* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers + + pci:v00008086d00003422sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (ProLiant G6 series) + + pci:v00008086d00003423* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers + + pci:v00008086d00003423sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (ProLiant G6 series) + + pci:v00008086d00003425* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Physical and Link Layer Registers Port 0 +@@ -68118,7 +68118,7 @@ pci:v00008086d0000342E* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers + + pci:v00008086d0000342Esv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers (ProLiant G6 series) + + pci:v00008086d0000342F* + ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Trusted Execution Technology Registers +@@ -68142,10 +68142,10 @@ pci:v00008086d00003500* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port + + pci:v00008086d00003500sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (ProLiant DL140 G3) + + pci:v00008086d00003500sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (X7DBN Motherboard) + + pci:v00008086d00003501* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express Upstream Port +@@ -68160,10 +68160,10 @@ pci:v00008086d0000350C* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge + + pci:v00008086d0000350Csv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (ProLiant DL140 G3) + + pci:v00008086d0000350Csv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (X7DBN Motherboard) + + pci:v00008086d0000350D* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express to PCI-X Bridge +@@ -68172,10 +68172,10 @@ pci:v00008086d00003510* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 + + pci:v00008086d00003510sv0000103Csd000031FE* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (ProLiant DL140 G3) + + pci:v00008086d00003510sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (X7DBN Motherboard) + + pci:v00008086d00003511* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E1 +@@ -68190,7 +68190,7 @@ pci:v00008086d00003518* + ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 + + pci:v00008086d00003518sv000015D9sd00009680* +- ID_MODEL_FROM_DATABASE=X7DBN Motherboard ++ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 (X7DBN Motherboard) + + pci:v00008086d00003519* + ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E3 +@@ -68199,13 +68199,13 @@ pci:v00008086d00003575* + ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge + + pci:v00008086d00003575sv00000E11sd00000030* +- ID_MODEL_FROM_DATABASE=Evo N600c ++ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (Evo N600c) + + pci:v00008086d00003575sv00001014sd0000021D* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (ThinkPad A/T/X Series) + + pci:v00008086d00003575sv0000104Dsd000080E7* +- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP ++ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) + + pci:v00008086d00003576* + ID_MODEL_FROM_DATABASE=82830M/MP AGP Bridge +@@ -68214,7 +68214,7 @@ pci:v00008086d00003577* + ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller + + pci:v00008086d00003577sv00001014sd00000513* +- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series ++ ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller (ThinkPad A/T/X Series) + + pci:v00008086d00003578* + ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge +@@ -68223,181 +68223,181 @@ pci:v00008086d00003580* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller + + pci:v00008086d00003580sv00001014sd0000055C* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) + + pci:v00008086d00003580sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) + + pci:v00008086d00003580sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) + + pci:v00008086d00003580sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) + + pci:v00008086d00003580sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) + + pci:v00008086d00003580sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) + + pci:v00008086d00003580sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) + + pci:v00008086d00003580sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) + + pci:v00008086d00003580sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) + + pci:v00008086d00003580sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) + + pci:v00008086d00003580sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) + + pci:v00008086d00003580sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) + + pci:v00008086d00003580sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) + + pci:v00008086d00003580sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CC9-SAMBA) + + pci:v00008086d00003580sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CD2-BEBOP) + + pci:v00008086d00003581* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller + + pci:v00008086d00003581sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller (Amilo M1420) + + pci:v00008086d00003582* + ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device + + pci:v00008086d00003582sv00001014sd00000562* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (ThinkPad R50e) + + pci:v00008086d00003582sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D400) + + pci:v00008086d00003582sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude X300) + + pci:v00008086d00003582sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D500) + + pci:v00008086d00003582sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D505) + + pci:v00008086d00003582sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Inspiron 700m/710m) + + pci:v00008086d00003582sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 integrated graphics ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PC8 integrated graphics) + + pci:v00008086d00003582sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer VGA ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (V5D Single Board Computer VGA) + + pci:v00008086d00003582sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CE9) + + pci:v00008086d00003582sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CL9 mainboard) + + pci:v00008086d00003582sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PSL09 PrPMC) + + pci:v00008086d00003582sv0000E4BFsd00000CC9* +- ID_MODEL_FROM_DATABASE=CC9-SAMBA ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CC9-SAMBA) + + pci:v00008086d00003582sv0000E4BFsd00000CD2* +- ID_MODEL_FROM_DATABASE=CD2-BEBOP ++ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CD2-BEBOP) + + pci:v00008086d00003584* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller + + pci:v00008086d00003584sv00001014sd0000055D* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) + + pci:v00008086d00003584sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) + + pci:v00008086d00003584sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) + + pci:v00008086d00003584sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) + + pci:v00008086d00003584sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) + + pci:v00008086d00003584sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) + + pci:v00008086d00003584sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) + + pci:v00008086d00003584sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) + + pci:v00008086d00003584sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) + + pci:v00008086d00003584sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) + + pci:v00008086d00003584sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) + + pci:v00008086d00003584sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) + + pci:v00008086d00003584sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) + + pci:v00008086d00003585* + ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller + + pci:v00008086d00003585sv00001014sd0000055E* +- ID_MODEL_FROM_DATABASE=ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) + + pci:v00008086d00003585sv00001028sd00000139* +- ID_MODEL_FROM_DATABASE=Latitude D400 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) + + pci:v00008086d00003585sv00001028sd0000014F* +- ID_MODEL_FROM_DATABASE=Latitude X300 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) + + pci:v00008086d00003585sv00001028sd00000152* +- ID_MODEL_FROM_DATABASE=Latitude D500 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) + + pci:v00008086d00003585sv00001028sd00000163* +- ID_MODEL_FROM_DATABASE=Latitude D505 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) + + pci:v00008086d00003585sv00001028sd0000018D* +- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) + + pci:v00008086d00003585sv00001028sd00000196* +- ID_MODEL_FROM_DATABASE=Inspiron 5160 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) + + pci:v00008086d00003585sv0000114Asd00000582* +- ID_MODEL_FROM_DATABASE=PC8 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) + + pci:v00008086d00003585sv00001734sd00001055* +- ID_MODEL_FROM_DATABASE=Amilo M1420 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) + + pci:v00008086d00003585sv00001775sd000010D0* +- ID_MODEL_FROM_DATABASE=V5D Single Board Computer ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) + + pci:v00008086d00003585sv00001775sd0000CE90* +- ID_MODEL_FROM_DATABASE=CE9 ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) + + pci:v00008086d00003585sv00004C53sd000010B0* +- ID_MODEL_FROM_DATABASE=CL9 mainboard ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) + + pci:v00008086d00003585sv00004C53sd000010E0* +- ID_MODEL_FROM_DATABASE=PSL09 PrPMC ++ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) + + pci:v00008086d0000358C* + ID_MODEL_FROM_DATABASE=82854 GMCH +@@ -68409,70 +68409,70 @@ pci:v00008086d00003590* + ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub + + pci:v00008086d00003590sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (eServer xSeries server mainboard) + + pci:v00008086d00003590sv00001028sd0000016C* +- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Memory Controller Hub ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 1850 Memory Controller Hub) + + pci:v00008086d00003590sv00001028sd0000016D* +- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Memory Controller Hub ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 2850 Memory Controller Hub) + + pci:v00008086d00003590sv00001028sd0000019A* +- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge SC1425) + + pci:v00008086d00003590sv00001734sd0000103E* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PRIMERGY RX/TX S2 series) + + pci:v00008086d00003590sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (CR11/VR11 Single Board Computer) + + pci:v00008086d00003590sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (Telum ASLP10 Processor AMC) + + pci:v00008086d00003591* + ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers + + pci:v00008086d00003591sv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (eServer xSeries server mainboard) + + pci:v00008086d00003591sv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision Workstation 670 Mainboard) + + pci:v00008086d00003591sv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision 470) + + pci:v00008086d00003591sv0000103Csd00003208* +- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (ProLiant DL140 G2) + + pci:v00008086d00003591sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Telum ASLP10 Processor AMC) + + pci:v00008086d00003592* + ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub + + pci:v00008086d00003592sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d00003593* + ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers + + pci:v00008086d00003593sv00001734sd00001073* +- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard ++ ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers (Primergy Econel 200 D2020 mainboard) + + pci:v00008086d00003594* + ID_MODEL_FROM_DATABASE=E7520 DMA Controller + + pci:v00008086d00003594sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (CR11/VR11 Single Board Computer) + + pci:v00008086d00003594sv00004C53sd000010D0* +- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC ++ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (Telum ASLP10 Processor AMC) + + pci:v00008086d00003595* + ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A + + pci:v00008086d00003595sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A (CR11/VR11 Single Board Computer) + + pci:v00008086d00003596* + ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A1 +@@ -68481,19 +68481,19 @@ pci:v00008086d00003597* + ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B + + pci:v00008086d00003597sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B (CR11/VR11 Single Board Computer) + + pci:v00008086d00003598* + ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 + + pci:v00008086d00003598sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 (CR11/VR11 Single Board Computer) + + pci:v00008086d00003599* + ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C + + pci:v00008086d00003599sv00001775sd00001100* +- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer ++ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C (CR11/VR11 Single Board Computer) + + pci:v00008086d0000359A* + ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C1 +@@ -68502,16 +68502,16 @@ pci:v00008086d0000359B* + ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers + + pci:v00008086d0000359Bsv00001014sd000002DD* +- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard ++ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers (eServer xSeries server mainboard) + + pci:v00008086d0000359E* + ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub + + pci:v00008086d0000359Esv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision Workstation 670 Mainboard) + + pci:v00008086d0000359Esv00001028sd00000169* +- ID_MODEL_FROM_DATABASE=Precision 470 ++ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision 470) + + pci:v00008086d000035B0* + ID_MODEL_FROM_DATABASE=3100 Chipset Memory I/O Controller Hub +@@ -68562,7 +68562,7 @@ pci:v00008086d0000360C* + ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers + + pci:v00008086d0000360Csv00001028sd000001F0* +- ID_MODEL_FROM_DATABASE=PowerEdge R900 7300 Chipset FSB Registers ++ ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers (PowerEdge R900 7300 Chipset FSB Registers) + + pci:v00008086d0000360D* + ID_MODEL_FROM_DATABASE=7300 Chipset Snoop Filter Registers +@@ -68724,19 +68724,19 @@ pci:v00008086d00003A16* + ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller + + pci:v00008086d00003A16sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 LPC Interface Controller ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge R410 LPC Interface Controller) + + pci:v00008086d00003A16sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 LPC Interface Controller ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge T410 LPC Interface Controller) + + pci:v00008086d00003A16sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (ProLiant G6 series) + + pci:v00008086d00003A16sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A16sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A18* + ID_MODEL_FROM_DATABASE=82801JIB (ICH10) LPC Interface Controller +@@ -68748,52 +68748,52 @@ pci:v00008086d00003A20* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 + + pci:v00008086d00003A20sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge R410 SATA IDE Controller) + + pci:v00008086d00003A20sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge T410 SATA IDE Controller) + + pci:v00008086d00003A22* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller + + pci:v00008086d00003A22sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (ProLiant G6 series) + + pci:v00008086d00003A22sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A22sv00001458sd0000B005* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A25* + ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller + + pci:v00008086d00003A25sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R410) ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R410)) + + pci:v00008086d00003A25sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE T410) ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE T410)) + + pci:v00008086d00003A25sv00001028sd000002F1* +- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R510) ++ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R510)) + + pci:v00008086d00003A26* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 + + pci:v00008086d00003A26sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge R410 SATA IDE Controller) + + pci:v00008086d00003A26sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge T410 SATA IDE Controller) + + pci:v00008086d00003A30* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller + + pci:v00008086d00003A30sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A30sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A32* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Thermal Subsystem +@@ -68802,178 +68802,178 @@ pci:v00008086d00003A34* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 + + pci:v00008086d00003A34sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A34sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A34sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (ProLiant G6 series) + + pci:v00008086d00003A34sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A34sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A35* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 + + pci:v00008086d00003A35sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A35sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A35sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (ProLiant G6 series) + + pci:v00008086d00003A35sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A35sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A36* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 + + pci:v00008086d00003A36sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A36sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A36sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (ProLiant G6 series) + + pci:v00008086d00003A36sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A36sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A37* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 + + pci:v00008086d00003A37sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A37sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A37sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (ProLiant G6 series) + + pci:v00008086d00003A37sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A37sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (Motherboard) + + pci:v00008086d00003A38* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 + + pci:v00008086d00003A38sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A38sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A38sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A38sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A38sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (Motherboard) + + pci:v00008086d00003A39* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 + + pci:v00008086d00003A39sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge R410 USB UHCI Controller) + + pci:v00008086d00003A39sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge T410 USB UHCI Controller) + + pci:v00008086d00003A39sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A39sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A39sv00001458sd00005004* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (Motherboard) + + pci:v00008086d00003A3A* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 + + pci:v00008086d00003A3Asv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge R410 USB EHCI Controller) + + pci:v00008086d00003A3Asv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge T410 USB EHCI Controller) + + pci:v00008086d00003A3Asv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (ProLiant G6 series) + + pci:v00008086d00003A3Asv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A3Asv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A3C* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 + + pci:v00008086d00003A3Csv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge R410 USB EHCI Controller) + + pci:v00008086d00003A3Csv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge T410 USB EHCI Controller) + + pci:v00008086d00003A3Csv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant G6 series ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (ProLiant G6 series) + + pci:v00008086d00003A3Csv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A3Csv00001458sd00005006* +- ID_MODEL_FROM_DATABASE=Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (Motherboard) + + pci:v00008086d00003A3E* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller + + pci:v00008086d00003A3Esv00001043sd00008311* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (P5Q Deluxe Motherboard) + + pci:v00008086d00003A3Esv00001458sd0000A002* +- ID_MODEL_FROM_DATABASE=GA-EP45-UD3R Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-UD3R Motherboard) + + pci:v00008086d00003A3Esv00001458sd0000A102* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A40* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 + + pci:v00008086d00003A40sv00001028sd0000028C* +- ID_MODEL_FROM_DATABASE=PowerEdge R410 PCI Express Port 1 ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge R410 PCI Express Port 1) + + pci:v00008086d00003A40sv00001028sd0000028D* +- ID_MODEL_FROM_DATABASE=PowerEdge T410 PCI Express Port 1 ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge T410 PCI Express Port 1) + + pci:v00008086d00003A40sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A40sv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A40sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A40sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A42* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Port 2 +@@ -68982,43 +68982,43 @@ pci:v00008086d00003A44* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 + + pci:v00008086d00003A44sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A46* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 + + pci:v00008086d00003A46sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A46sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A48* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 + + pci:v00008086d00003A48sv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A48sv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (P6T Deluxe Motherboard) + + pci:v00008086d00003A48sv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (GA-EP45-DS5 Motherboard) + + pci:v00008086d00003A4A* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 + + pci:v00008086d00003A4Asv0000103Csd0000330B* +- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (ProLiant ML150 G6 Server) + + pci:v00008086d00003A4Asv00001043sd000082D4* +- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P5Q Deluxe Motherboard) + + pci:v00008086d00003A4Asv00001043sd000082EA* +- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P6T DeLuxe Motherboard) + + pci:v00008086d00003A4Asv00001458sd00005001* +- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard ++ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) + + pci:v00008086d00003A4C* + ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Gigabit Ethernet Controller +@@ -69108,10 +69108,10 @@ pci:v00008086d00003B07* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller + + pci:v00008086d00003B07sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Latitude E6510) + + pci:v00008086d00003B07sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (PC1-GROOVE) + + pci:v00008086d00003B08* + ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller +@@ -69120,16 +69120,16 @@ pci:v00008086d00003B09* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller + + pci:v00008086d00003B09sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) + + pci:v00008086d00003B0A* + ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller + + pci:v00008086d00003B0Asv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (OptiPlex 980) + + pci:v00008086d00003B0Asv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B0B* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller +@@ -69204,10 +69204,10 @@ pci:v00008086d00003B22* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller + + pci:v00008086d00003B22sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (OptiPlex 980) + + pci:v00008086d00003B22sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B23* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller +@@ -69225,7 +69225,7 @@ pci:v00008086d00003B29* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller + + pci:v00008086d00003B29sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) + + pci:v00008086d00003B2C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller +@@ -69234,64 +69234,64 @@ pci:v00008086d00003B2D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller + + pci:v00008086d00003B2Dsv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) + + pci:v00008086d00003B2E* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller + + pci:v00008086d00003B2Esv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (PC1-GROOVE) + + pci:v00008086d00003B2F* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller + + pci:v00008086d00003B2Fsv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (Latitude E6510) + + pci:v00008086d00003B2Fsv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (PC1-GROOVE) + + pci:v00008086d00003B30* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller + + pci:v00008086d00003B30sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Aspire 7740G) + + pci:v00008086d00003B30sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (OptiPlex 980) + + pci:v00008086d00003B30sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) + + pci:v00008086d00003B30sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B30sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) + + pci:v00008086d00003B32* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem + + pci:v00008086d00003B32sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) + + pci:v00008086d00003B34* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller + + pci:v00008086d00003B34sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) + + pci:v00008086d00003B34sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) + + pci:v00008086d00003B34sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + + pci:v00008086d00003B34sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B34sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + + pci:v00008086d00003B36* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller +@@ -69315,19 +69315,19 @@ pci:v00008086d00003B3C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller + + pci:v00008086d00003B3Csv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) + + pci:v00008086d00003B3Csv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) + + pci:v00008086d00003B3Csv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + + pci:v00008086d00003B3Csv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B3Csv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + + pci:v00008086d00003B3E* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller +@@ -69345,40 +69345,40 @@ pci:v00008086d00003B42* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 + + pci:v00008086d00003B42sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (OptiPlex 980) + + pci:v00008086d00003B42sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) + + pci:v00008086d00003B42sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) + + pci:v00008086d00003B44* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 + + pci:v00008086d00003B44sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Latitude E6510) + + pci:v00008086d00003B44sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) + + pci:v00008086d00003B46* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 + + pci:v00008086d00003B46sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) + + pci:v00008086d00003B48* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 + + pci:v00008086d00003B48sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) + + pci:v00008086d00003B4A* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 + + pci:v00008086d00003B4Asv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) + + pci:v00008086d00003B4C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 +@@ -69396,19 +69396,19 @@ pci:v00008086d00003B56* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio + + pci:v00008086d00003B56sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Aspire 7740G) + + pci:v00008086d00003B56sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (OptiPlex 980) + + pci:v00008086d00003B56sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) + + pci:v00008086d00003B56sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) + + pci:v00008086d00003B56sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) + + pci:v00008086d00003B57* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio +@@ -69417,13 +69417,13 @@ pci:v00008086d00003B64* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller + + pci:v00008086d00003B64sv00001025sd00000347* +- ID_MODEL_FROM_DATABASE=Aspire 7740G ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Aspire 7740G) + + pci:v00008086d00003B64sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) + + pci:v00008086d00003B64sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) + + pci:v00008086d00003B65* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller +@@ -69435,7 +69435,7 @@ pci:v00008086d00003B67* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller + + pci:v00008086d00003B67sv0000E4BFsd000050C1* +- ID_MODEL_FROM_DATABASE=PC1-GROOVE ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller (PC1-GROOVE) + + pci:v00008086d00003C00* + ID_MODEL_FROM_DATABASE=Xeon E5/Core i7 DMI2 +@@ -69765,25 +69765,25 @@ pci:v00008086d00004220* + ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection + + pci:v00008086d00004220sv0000103Csd00000934* +- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Compaq nw8240/nx8220) + + pci:v00008086d00004220sv0000103Csd000012F6* +- ID_MODEL_FROM_DATABASE=nc6120/nx8220/nw8240 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (nc6120/nx8220/nw8240) + + pci:v00008086d00004220sv00008086sd00002701* +- ID_MODEL_FROM_DATABASE=WM3B2300BG Mini-PCI Card ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (WM3B2300BG Mini-PCI Card) + + pci:v00008086d00004220sv00008086sd00002712* +- ID_MODEL_FROM_DATABASE=IBM ThinkPad R50e ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (IBM ThinkPad R50e) + + pci:v00008086d00004220sv00008086sd00002721* +- ID_MODEL_FROM_DATABASE=Dell B130 laptop integrated WLAN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell B130 laptop integrated WLAN) + + pci:v00008086d00004220sv00008086sd00002722* +- ID_MODEL_FROM_DATABASE=Dell Latitude D600 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell Latitude D600) + + pci:v00008086d00004220sv00008086sd00002731* +- ID_MODEL_FROM_DATABASE=Samsung P35 integrated WLAN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Samsung P35 integrated WLAN) + + pci:v00008086d00004222* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection +@@ -69792,40 +69792,40 @@ pci:v00008086d00004222sv0000103Csd0000135C* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection + + pci:v00008086d00004222sv00008086sd00001000* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004222sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004222sv00008086sd00001005* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004222sv00008086sd00001034* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004222sv00008086sd00001044* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004222sv00008086sd00001C00* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004223* + ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection + + pci:v00008086d00004223sv00001000sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B Americas/Europe ZZA ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Americas/Europe ZZA) + + pci:v00008086d00004223sv00001001sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B Europe ZZE ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Europe ZZE) + + pci:v00008086d00004223sv00001002sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B Japan ZZJ ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Japan ZZJ) + + pci:v00008086d00004223sv00001003sd00008086* +- ID_MODEL_FROM_DATABASE=mPCI 3B High-Band ZZH ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B High-Band ZZH) + + pci:v00008086d00004223sv00001351sd0000103C* +- ID_MODEL_FROM_DATABASE=Compaq NC6220 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (Compaq NC6220) + + pci:v00008086d00004224* + ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection +@@ -69834,106 +69834,106 @@ pci:v00008086d00004227* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection + + pci:v00008086d00004227sv00008086sd00001011* +- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60e/X60s ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (ThinkPad T60/R60e/X60s) + + pci:v00008086d00004227sv00008086sd00001014* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) + + pci:v00008086d00004229* + ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection + + pci:v00008086d00004229sv00008086sd00001100* +- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Vaio VGN-SZ79SN_C) + + pci:v00008086d00004229sv00008086sd00001101* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (PRO/Wireless 4965 AG or AGN) + + pci:v00008086d0000422B* + ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 + + pci:v00008086d0000422Bsv00008086sd00001101* +- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) + + pci:v00008086d0000422Bsv00008086sd00001121* +- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) + + pci:v00008086d0000422C* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 + + pci:v00008086d0000422Csv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) + + pci:v00008086d0000422Csv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) + + pci:v00008086d0000422Csv00008086sd00001307* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 BG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 BG) + + pci:v00008086d0000422Csv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) + + pci:v00008086d0000422Csv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) + + pci:v00008086d00004230* + ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection + + pci:v00008086d00004230sv00008086sd00001110* +- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T51 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T51) + + pci:v00008086d00004230sv00008086sd00001111* +- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T61 ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T61) + + pci:v00008086d00004232* + ID_MODEL_FROM_DATABASE=WiFi Link 5100 + + pci:v00008086d00004232sv00008086sd00001201* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001204* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001205* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001206* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004232sv00008086sd00001221* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001224* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001225* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001226* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004232sv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001304* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001305* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004232sv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001324* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) + + pci:v00008086d00004232sv00008086sd00001325* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) + + pci:v00008086d00004232sv00008086sd00001326* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) + + pci:v00008086d00004235* + ID_MODEL_FROM_DATABASE=Ultimate N WiFi Link 5300 +@@ -69945,43 +69945,43 @@ pci:v00008086d00004237* + ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection + + pci:v00008086d00004237sv00008086sd00001211* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001214* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001215* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) + + pci:v00008086d00004237sv00008086sd00001216* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) + + pci:v00008086d00004237sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001314* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) + + pci:v00008086d00004237sv00008086sd00001315* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) + + pci:v00008086d00004237sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) + + pci:v00008086d00004238* + ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 + + pci:v00008086d00004238sv00008086sd00001111* +- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) + + pci:v00008086d00004239* + ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 + + pci:v00008086d00004239sv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) + + pci:v00008086d00004239sv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG ++ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) + + pci:v00008086d0000423A* + ID_MODEL_FROM_DATABASE=PRO/Wireless 5350 AGN [Echo Peak] Network Connection +@@ -69993,37 +69993,37 @@ pci:v00008086d0000423C* + ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 + + pci:v00008086d0000423Csv00008086sd00001201* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Csv00008086sd00001206* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000423Csv00008086sd00001221* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Csv00008086sd00001301* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Csv00008086sd00001306* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000423Csv00008086sd00001321* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423D* + ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 + + pci:v00008086d0000423Dsv00008086sd00001211* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Dsv00008086sd00001216* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000423Dsv00008086sd00001311* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) + + pci:v00008086d0000423Dsv00008086sd00001316* +- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG ++ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) + + pci:v00008086d0000444E* + ID_MODEL_FROM_DATABASE=Turbo Memory Controller +@@ -70176,7 +70176,7 @@ pci:v00008086d00005201* + ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller + + pci:v00008086d00005201sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter ++ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller (EtherExpress PRO/100 Server Ethernet Adapter) + + pci:v00008086d0000530D* + ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor +@@ -70185,7 +70185,7 @@ pci:v00008086d00005845* + ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller + + pci:v00008086d00005845sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller (QEMU Virtual Machine) + + pci:v00008086d000065C0* + ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub +@@ -70212,16 +70212,16 @@ pci:v00008086d000065F0* + ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers + + pci:v00008086d000065F0sv00001028sd0000020F* +- ID_MODEL_FROM_DATABASE=PowerEdge R300 ++ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge R300) + + pci:v00008086d000065F0sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 ++ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge T300) + + pci:v00008086d000065F1* + ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers + + pci:v00008086d000065F1sv00001028sd00000210* +- ID_MODEL_FROM_DATABASE=PowerEdge T300 ++ ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers (PowerEdge T300) + + pci:v00008086d000065F3* + ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers +@@ -70251,19 +70251,19 @@ pci:v00008086d00007000* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] + + pci:v00008086d00007000sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] (Qemu virtual machine) + + pci:v00008086d00007010* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] + + pci:v00008086d00007010sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] (Qemu virtual machine) + + pci:v00008086d00007020* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] + + pci:v00008086d00007020sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] (QEMU Virtual Machine) + + pci:v00008086d00007030* + ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] +@@ -70281,52 +70281,52 @@ pci:v00008086d00007110* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA + + pci:v00008086d00007110sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA (Virtual Machine Chipset) + + pci:v00008086d00007111* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE + + pci:v00008086d00007111sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE (Virtual Machine Chipset) + + pci:v00008086d00007112* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB + + pci:v00008086d00007112sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (Virtual Machine Chipset) + + pci:v00008086d00007112sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (QEMU Virtual Machine) + + pci:v00008086d00007113* + ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI + + pci:v00008086d00007113sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Virtual Machine Chipset) + + pci:v00008086d00007113sv00001AF4sd00001100* +- ID_MODEL_FROM_DATABASE=Qemu virtual machine ++ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Qemu virtual machine) + + pci:v00008086d00007120* + ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) + + pci:v00008086d00007120sv00004C53sd00001040* +- ID_MODEL_FROM_DATABASE=CL7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (CL7 mainboard) + + pci:v00008086d00007120sv00004C53sd00001060* +- ID_MODEL_FROM_DATABASE=PC7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (PC7 mainboard) + + pci:v00008086d00007121* + ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller + + pci:v00008086d00007121sv00004C53sd00001040* +- ID_MODEL_FROM_DATABASE=CL7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (CL7 mainboard) + + pci:v00008086d00007121sv00004C53sd00001060* +- ID_MODEL_FROM_DATABASE=PC7 mainboard ++ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (PC7 mainboard) + + pci:v00008086d00007121sv00008086sd00004341* +- ID_MODEL_FROM_DATABASE=Cayman (CA810) Mainboard ++ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (Cayman (CA810) Mainboard) + + pci:v00008086d00007122* + ID_MODEL_FROM_DATABASE=82810 DC-100 (GMCH) Graphics Memory Controller Hub +@@ -70338,13 +70338,13 @@ pci:v00008086d00007124* + ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub + + pci:v00008086d00007124sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub (OptiPlex GX110) + + pci:v00008086d00007125* + ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller + + pci:v00008086d00007125sv00001028sd000000B4* +- ID_MODEL_FROM_DATABASE=OptiPlex GX110 ++ ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller (OptiPlex GX110) + + pci:v00008086d00007126* + ID_MODEL_FROM_DATABASE=82810 DC-133 System and Graphics Controller +@@ -70365,73 +70365,73 @@ pci:v00008086d00007190* + ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge + + pci:v00008086d00007190sv00000E11sd00000500* +- ID_MODEL_FROM_DATABASE=Armada 1750 Laptop System Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada 1750 Laptop System Chipset) + + pci:v00008086d00007190sv00000E11sd0000B110* +- ID_MODEL_FROM_DATABASE=Armada M700/E500 ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada M700/E500) + + pci:v00008086d00007190sv00001028sd0000008E* +- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (PowerEdge 1300 mainboard) + + pci:v00008086d00007190sv00001043sd0000803B* +- ID_MODEL_FROM_DATABASE=CUBX-L/E Mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CUBX-L/E Mainboard) + + pci:v00008086d00007190sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Toshiba Tecra 8100 Laptop System Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Toshiba Tecra 8100 Laptop System Chipset) + + pci:v00008086d00007190sv000015ADsd00001976* +- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Virtual Machine Chipset) + + pci:v00008086d00007190sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CT7 mainboard) + + pci:v00008086d00007190sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CE7 mainboard) + + pci:v00008086d00007191* + ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge + + pci:v00008086d00007191sv00001028sd0000008E* +- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (PowerEdge 1300 mainboard) + + pci:v00008086d00007192* + ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) + + pci:v00008086d00007192sv00000E11sd00000460* +- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop System Chipset ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Armada 1700 Laptop System Chipset) + + pci:v00008086d00007192sv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Satellite 4010 ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Satellite 4010) + + pci:v00008086d00007192sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00008086d00007192sv00008086sd00007190* +- ID_MODEL_FROM_DATABASE=Dell PowerEdge 350 ++ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Dell PowerEdge 350) + + pci:v00008086d00007194* + ID_MODEL_FROM_DATABASE=82440MX Host Bridge + + pci:v00008086d00007194sv00001033sd00000000* +- ID_MODEL_FROM_DATABASE=Versa Note Vxi ++ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (Versa Note Vxi) + + pci:v00008086d00007194sv00004C53sd000010A0* +- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard ++ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (CA3/CR3 mainboard) + + pci:v00008086d00007195* + ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller + + pci:v00008086d00007195sv00001033sd000080CC* +- ID_MODEL_FROM_DATABASE=Versa Note VXi ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (Versa Note VXi) + + pci:v00008086d00007195sv000010CFsd00001099* +- ID_MODEL_FROM_DATABASE=QSound_SigmaTel Stac97 PCI Audio ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (QSound_SigmaTel Stac97 PCI Audio) + + pci:v00008086d00007195sv000011D4sd00000040* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00007195sv000011D4sd00000048* +- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio ++ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) + + pci:v00008086d00007196* + ID_MODEL_FROM_DATABASE=82440MX AC'97 Modem Controller +@@ -70452,10 +70452,10 @@ pci:v00008086d000071A0* + ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge + + pci:v00008086d000071A0sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CT7 mainboard) + + pci:v00008086d000071A0sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CE7 mainboard) + + pci:v00008086d000071A1* + ID_MODEL_FROM_DATABASE=440GX - 82443GX AGP bridge +@@ -70464,7 +70464,7 @@ pci:v00008086d000071A2* + ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) + + pci:v00008086d000071A2sv00004C53sd00001000* +- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard ++ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) + + pci:v00008086d00007600* + ID_MODEL_FROM_DATABASE=82372FB PIIX5 ISA +@@ -70482,25 +70482,25 @@ pci:v00008086d00007800* + ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator + + pci:v00008086d00007800sv0000003Dsd00000008* +- ID_MODEL_FROM_DATABASE=Starfighter AGP ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) + + pci:v00008086d00007800sv0000003Dsd0000000B* +- ID_MODEL_FROM_DATABASE=Starfighter AGP ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) + + pci:v00008086d00007800sv00001092sd00000100* +- ID_MODEL_FROM_DATABASE=Stealth II G460 ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Stealth II G460) + + pci:v00008086d00007800sv000010B4sd0000201A* +- ID_MODEL_FROM_DATABASE=Lightspeed 740 ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) + + pci:v00008086d00007800sv000010B4sd0000202F* +- ID_MODEL_FROM_DATABASE=Lightspeed 740 ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) + + pci:v00008086d00007800sv00008086sd00000000* +- ID_MODEL_FROM_DATABASE=Terminator 2x/i ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Terminator 2x/i) + + pci:v00008086d00007800sv00008086sd00000100* +- ID_MODEL_FROM_DATABASE=Intel740 Graphics Accelerator ++ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Intel740 Graphics Accelerator) + + pci:v00008086d00008002* + ID_MODEL_FROM_DATABASE=Trusted Execution Technology Registers +@@ -70611,13 +70611,13 @@ pci:v00008086d00008500* + ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) + + pci:v00008086d00008500sv00001993sd00000DED* +- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#2 ++ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#2) + + pci:v00008086d00008500sv00001993sd00000DEE* +- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#1 ++ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#1) + + pci:v00008086d00008500sv00001993sd00000DEF* +- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#0 ++ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#0) + + pci:v00008086d00008800* + ID_MODEL_FROM_DATABASE=Platform Controller Hub EG20T PCI Express Port +@@ -70710,10 +70710,10 @@ pci:v00008086d00008C03* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] + + pci:v00008086d00008C03sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ZBook 15) + + pci:v00008086d00008C03sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ThinkPad T440p) + + pci:v00008086d00008C04* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode] +@@ -70743,7 +70743,7 @@ pci:v00008086d00008C10* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 + + pci:v00008086d00008C10sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 (ThinkPad T440p) + + pci:v00008086d00008C11* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 +@@ -70752,7 +70752,7 @@ pci:v00008086d00008C12* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 + + pci:v00008086d00008C12sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 (ThinkPad T440p) + + pci:v00008086d00008C13* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 +@@ -70797,10 +70797,10 @@ pci:v00008086d00008C20* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller + + pci:v00008086d00008C20sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ZBook 15) + + pci:v00008086d00008C20sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ThinkPad T440p) + + pci:v00008086d00008C21* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller +@@ -70809,10 +70809,10 @@ pci:v00008086d00008C22* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller + + pci:v00008086d00008C22sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ZBook 15) + + pci:v00008086d00008C22sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ThinkPad T440p) + + pci:v00008086d00008C23* + ID_MODEL_FROM_DATABASE=8 Series Chipset Family CHAP Counters +@@ -70824,28 +70824,28 @@ pci:v00008086d00008C26* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 + + pci:v00008086d00008C26sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ZBook 15) + + pci:v00008086d00008C26sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ThinkPad T440p) + + pci:v00008086d00008C2D* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 + + pci:v00008086d00008C2Dsv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ZBook 15) + + pci:v00008086d00008C2Dsv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ThinkPad T440p) + + pci:v00008086d00008C31* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI + + pci:v00008086d00008C31sv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ZBook 15) + + pci:v00008086d00008C31sv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ThinkPad T440p) + + pci:v00008086d00008C33* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LAN Controller +@@ -70857,10 +70857,10 @@ pci:v00008086d00008C3A* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 + + pci:v00008086d00008C3Asv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ZBook 15) + + pci:v00008086d00008C3Asv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ThinkPad T440p) + + pci:v00008086d00008C3B* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #2 +@@ -70920,10 +70920,10 @@ pci:v00008086d00008C4F* + ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller + + pci:v00008086d00008C4Fsv0000103Csd00001909* +- ID_MODEL_FROM_DATABASE=ZBook 15 ++ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ZBook 15) + + pci:v00008086d00008C4Fsv000017AAsd0000220E* +- ID_MODEL_FROM_DATABASE=ThinkPad T440p ++ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ThinkPad T440p) + + pci:v00008086d00008C50* + ID_MODEL_FROM_DATABASE=B85 Express LPC Controller +@@ -70986,7 +70986,7 @@ pci:v00008086d00008D06* + ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] + + pci:v00008086d00008D06sv000017AAsd00001031* +- ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i ++ ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] (ThinkServer RAID 110i) + + pci:v00008086d00008D08* + ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] +@@ -71196,7 +71196,7 @@ pci:v00008086d00009C03* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] + + pci:v00008086d00009C03sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) + + pci:v00008086d00009C04* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] +@@ -71286,7 +71286,7 @@ pci:v00008086d00009C20* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller + + pci:v00008086d00009C20sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) + + pci:v00008086d00009C21* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller +@@ -71295,7 +71295,7 @@ pci:v00008086d00009C22* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller + + pci:v00008086d00009C22sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) + + pci:v00008086d00009C23* + ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters +@@ -71307,7 +71307,7 @@ pci:v00008086d00009C26* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 + + pci:v00008086d00009C26sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) + + pci:v00008086d00009C2D* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 +@@ -71316,7 +71316,7 @@ pci:v00008086d00009C31* + ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC + + pci:v00008086d00009C31sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) + + pci:v00008086d00009C35* + ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller +@@ -71328,7 +71328,7 @@ pci:v00008086d00009C3A* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 + + pci:v00008086d00009C3Asv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) + + pci:v00008086d00009C3B* + ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 +@@ -71352,7 +71352,7 @@ pci:v00008086d00009C43* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller + + pci:v00008086d00009C43sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=ThinkPad X240 ++ ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) + + pci:v00008086d00009C44* + ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller +@@ -71496,25 +71496,25 @@ pci:v00008086d0000A000* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge + + pci:v00008086d0000A000sv00001458sd00005000* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (GA-D525TUD) + + pci:v00008086d0000A000sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (DeskTop Board D510MO) + + pci:v00008086d0000A000sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Desktop Board D425KT) + + pci:v00008086d0000A001* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + + pci:v00008086d0000A001sv00001458sd0000D000* +- ID_MODEL_FROM_DATABASE=GA-D525TUD ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (GA-D525TUD) + + pci:v00008086d0000A001sv00008086sd00004F4D* +- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (DeskTop Board D510MO) + + pci:v00008086d0000A001sv00008086sd0000544B* +- ID_MODEL_FROM_DATABASE=Desktop Board D425KT ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Desktop Board D425KT) + + pci:v00008086d0000A002* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller +@@ -71526,19 +71526,19 @@ pci:v00008086d0000A010* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge + + pci:v00008086d0000A010sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Notebook N150P) + + pci:v00008086d0000A011* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + + pci:v00008086d0000A011sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) + + pci:v00008086d0000A012* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + + pci:v00008086d0000A012sv0000144Dsd0000C072* +- ID_MODEL_FROM_DATABASE=Notebook N150P ++ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) + + pci:v00008086d0000A013* + ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx CHAPS counter +@@ -71559,22 +71559,22 @@ pci:v00008086d0000B555* + ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge + + pci:v00008086d0000B555sv000012C7sd00005005* +- ID_MODEL_FROM_DATABASE=SS7HD PCI Adaptor Card ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HD PCI Adaptor Card) + + pci:v00008086d0000B555sv000012C7sd00005006* +- ID_MODEL_FROM_DATABASE=SS7HDC cPCI Adaptor Card ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HDC cPCI Adaptor Card) + + pci:v00008086d0000B555sv000012D9sd0000000A* +- ID_MODEL_FROM_DATABASE=PCI VoIP Gateway ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (PCI VoIP Gateway) + + pci:v00008086d0000B555sv00004C53sd00001050* +- ID_MODEL_FROM_DATABASE=CT7 mainboard ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CT7 mainboard) + + pci:v00008086d0000B555sv00004C53sd00001051* +- ID_MODEL_FROM_DATABASE=CE7 mainboard ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CE7 mainboard) + + pci:v00008086d0000B555sv0000E4BFsd00001000* +- ID_MODEL_FROM_DATABASE=CC8-1-BLUES ++ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CC8-1-BLUES) + + pci:v00008086d0000D130* + ID_MODEL_FROM_DATABASE=Core Processor DMI +@@ -71583,16 +71583,16 @@ pci:v00008086d0000D131* + ID_MODEL_FROM_DATABASE=Core Processor DMI + + pci:v00008086d0000D131sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=Core Processor DMI (OptiPlex 980) + + pci:v00008086d0000D131sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=Core Processor DMI (C7SIM-Q Motherboard) + + pci:v00008086d0000D132* + ID_MODEL_FROM_DATABASE=Core Processor DMI + + pci:v00008086d0000D132sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=Core Processor DMI (Latitude E6510) + + pci:v00008086d0000D133* + ID_MODEL_FROM_DATABASE=Core Processor DMI +@@ -71613,13 +71613,13 @@ pci:v00008086d0000D138* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 + + pci:v00008086d0000D138sv00001028sd000002DA* +- ID_MODEL_FROM_DATABASE=OptiPlex 980 ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (OptiPlex 980) + + pci:v00008086d0000D138sv00001028sd0000040B* +- ID_MODEL_FROM_DATABASE=Latitude E6510 ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (Latitude E6510) + + pci:v00008086d0000D138sv000015D9sd0000060D* +- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (C7SIM-Q Motherboard) + + pci:v00008086d0000D139* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 +@@ -71730,7 +71730,7 @@ pci:v00009004d00005078* + ID_MODEL_FROM_DATABASE=AIC-7850 + + pci:v00009004d00005078sv00009004sd00007850* +- ID_MODEL_FROM_DATABASE=AHA-2904/Integrated AIC-7850 ++ ID_MODEL_FROM_DATABASE=AIC-7850 (AHA-2904/Integrated AIC-7850) + + pci:v00009004d00005175* + ID_MODEL_FROM_DATABASE=AIC-755x +@@ -71766,10 +71766,10 @@ pci:v00009004d00005647* + ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine + + pci:v00009004d00005647sv00009004sd00007710* +- ID_MODEL_FROM_DATABASE=ANA-7711F TCP Offload Engine - Optical ++ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711F TCP Offload Engine - Optical) + + pci:v00009004d00005647sv00009004sd00007711* +- ID_MODEL_FROM_DATABASE=ANA-7711LP TCP Offload Engine - Copper ++ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711LP TCP Offload Engine - Copper) + + pci:v00009004d00005675* + ID_MODEL_FROM_DATABASE=AIC-755x +@@ -71799,7 +71799,7 @@ pci:v00009004d00006075* + ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 + + pci:v00009004d00006075sv00009004sd00007560* +- ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 Cardbus ++ ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 (Cardbus) + + pci:v00009004d00006078* + ID_MODEL_FROM_DATABASE=AIC-7860 +@@ -71808,7 +71808,7 @@ pci:v00009004d00006178* + ID_MODEL_FROM_DATABASE=AIC-7861 + + pci:v00009004d00006178sv00009004sd00007861* +- ID_MODEL_FROM_DATABASE=AHA-2940AU Single ++ ID_MODEL_FROM_DATABASE=AIC-7861 (AHA-2940AU Single) + + pci:v00009004d00006278* + ID_MODEL_FROM_DATABASE=AIC-7860 +@@ -71832,46 +71832,46 @@ pci:v00009004d00006915* + ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A + + pci:v00009004d00006915sv00009004sd00000008* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) + + pci:v00009004d00006915sv00009004sd00000009* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) + + pci:v00009004d00006915sv00009004sd00000010* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) + + pci:v00009004d00006915sv00009004sd00000018* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) + + pci:v00009004d00006915sv00009004sd00000019* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) + + pci:v00009004d00006915sv00009004sd00000020* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) + + pci:v00009004d00006915sv00009004sd00000028* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) + + pci:v00009004d00006915sv00009004sd00008008* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008009* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008010* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008018* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008019* +- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008020* +- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) + + pci:v00009004d00006915sv00009004sd00008028* +- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 ++ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) + + pci:v00009004d00007078* + ID_MODEL_FROM_DATABASE=AHA-294x / AIC-7870 +@@ -71910,7 +71910,7 @@ pci:v00009004d00007815* + ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC + + pci:v00009004d00007815sv00009004sd00007815* +- ID_MODEL_FROM_DATABASE=ARO-1130U2 RAID Controller ++ ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC (ARO-1130U2 RAID Controller) + + pci:v00009004d00007815sv00009004sd00007840* + ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC +@@ -71961,25 +71961,25 @@ pci:v00009004d00007895* + ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 + + pci:v00009004d00007895sv00009004sd00007890* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007895sv00009004sd00007891* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual) + + pci:v00009004d00007895sv00009004sd00007892* +- ID_MODEL_FROM_DATABASE=AHA-3940AU/AUW/AUWD/UWD ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3940AU/AUW/AUWD/UWD) + + pci:v00009004d00007895sv00009004sd00007894* +- ID_MODEL_FROM_DATABASE=AHA-3944AUWD ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3944AUWD) + + pci:v00009004d00007895sv00009004sd00007895* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007895sv00009004sd00007896* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007895sv00009004sd00007897* +- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) + + pci:v00009004d00007896* + ID_MODEL_FROM_DATABASE=AIC-789x +@@ -71991,13 +71991,13 @@ pci:v00009004d00008078* + ID_MODEL_FROM_DATABASE=AIC-7880U + + pci:v00009004d00008078sv00009004sd00007880* +- ID_MODEL_FROM_DATABASE=AIC-7880P Ultra/Ultra Wide SCSI Chipset ++ ID_MODEL_FROM_DATABASE=AIC-7880U (AIC-7880P Ultra/Ultra Wide SCSI Chipset) + + pci:v00009004d00008178* + ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U + + pci:v00009004d00008178sv00009004sd00007881* +- ID_MODEL_FROM_DATABASE=AHA-2940UW SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U (AHA-2940UW SCSI Host Adapter) + + pci:v00009004d00008278* + ID_MODEL_FROM_DATABASE=AHA-3940U/UW/UWD / AIC-7882U +@@ -72018,13 +72018,13 @@ pci:v00009004d00008778* + ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x + + pci:v00009004d00008778sv00009004sd00007887* +- ID_MODEL_FROM_DATABASE=2940UW Pro Ultra-Wide SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x (2940UW Pro Ultra-Wide SCSI Controller) + + pci:v00009004d00008878* + ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 + + pci:v00009004d00008878sv00009004sd00007888* +- ID_MODEL_FROM_DATABASE=AHA-2930UW SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 (AHA-2930UW SCSI Controller) + + pci:v00009004d00008B78* + ID_MODEL_FROM_DATABASE=ABA-1030 +@@ -72039,19 +72039,19 @@ pci:v00009005d00000010* + ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W + + pci:v00009005d00000010sv00009005sd00002180* +- ID_MODEL_FROM_DATABASE=AHA-2940U2 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2 SCSI Controller) + + pci:v00009005d00000010sv00009005sd00008100* +- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) + + pci:v00009005d00000010sv00009005sd0000A100* +- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) + + pci:v00009005d00000010sv00009005sd0000A180* +- ID_MODEL_FROM_DATABASE=AHA-2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2W SCSI Controller) + + pci:v00009005d00000010sv00009005sd0000E100* +- ID_MODEL_FROM_DATABASE=AHA-2950U2B SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2950U2B SCSI Controller) + + pci:v00009005d00000011* + ID_MODEL_FROM_DATABASE=AHA-2930U2 +@@ -72060,19 +72060,19 @@ pci:v00009005d00000013* + ID_MODEL_FROM_DATABASE=78902 + + pci:v00009005d00000013sv00009005sd00000003* +- ID_MODEL_FROM_DATABASE=AAA-131U2 Array1000 1 Channel RAID Controller ++ ID_MODEL_FROM_DATABASE=78902 (AAA-131U2 Array1000 1 Channel RAID Controller) + + pci:v00009005d00000013sv00009005sd0000000F* +- ID_MODEL_FROM_DATABASE=AIC7890_ARO ++ ID_MODEL_FROM_DATABASE=78902 (AIC7890_ARO) + + pci:v00009005d0000001F* + ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 + + pci:v00009005d0000001Fsv00009005sd0000000F* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) + + pci:v00009005d0000001Fsv00009005sd0000A180* +- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller ++ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) + + pci:v00009005d00000020* + ID_MODEL_FROM_DATABASE=AIC-7890 +@@ -72090,10 +72090,10 @@ pci:v00009005d00000050* + ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x + + pci:v00009005d00000050sv00009005sd0000F500* +- ID_MODEL_FROM_DATABASE=AHA-3950U2B ++ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) + + pci:v00009005d00000050sv00009005sd0000FFFF* +- ID_MODEL_FROM_DATABASE=AHA-3950U2B ++ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) + + pci:v00009005d00000051* + ID_MODEL_FROM_DATABASE=AHA-3950U2D +@@ -72105,7 +72105,7 @@ pci:v00009005d00000053* + ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller + + pci:v00009005d00000053sv00009005sd0000FFFF* +- ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller mainboard implementation ++ ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller (mainboard implementation) + + pci:v00009005d0000005F* + ID_MODEL_FROM_DATABASE=AIC-7896U2/7897U2 +@@ -72114,25 +72114,25 @@ pci:v00009005d00000080* + ID_MODEL_FROM_DATABASE=AIC-7892A U160/m + + pci:v00009005d00000080sv00000E11sd0000E2A0* +- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter) + + pci:v00009005d00000080sv00009005sd00006220* +- ID_MODEL_FROM_DATABASE=AHA-29160C ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (AHA-29160C) + + pci:v00009005d00000080sv00009005sd000062A0* +- ID_MODEL_FROM_DATABASE=29160N Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160N Ultra160 SCSI Controller) + + pci:v00009005d00000080sv00009005sd0000E220* +- ID_MODEL_FROM_DATABASE=29160LP Low Profile Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160LP Low Profile Ultra160 SCSI Controller) + + pci:v00009005d00000080sv00009005sd0000E2A0* +- ID_MODEL_FROM_DATABASE=29160 Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160 Ultra160 SCSI Controller) + + pci:v00009005d00000081* + ID_MODEL_FROM_DATABASE=AIC-7892B U160/m + + pci:v00009005d00000081sv00009005sd000062A1* +- ID_MODEL_FROM_DATABASE=19160 Ultra160 SCSI Controller ++ ID_MODEL_FROM_DATABASE=AIC-7892B U160/m (19160 Ultra160 SCSI Controller) + + pci:v00009005d00000083* + ID_MODEL_FROM_DATABASE=AIC-7892D U160/m +@@ -72141,10 +72141,10 @@ pci:v00009005d0000008F* + ID_MODEL_FROM_DATABASE=AIC-7892P U160/m + + pci:v00009005d0000008Fsv00001179sd00000001* +- ID_MODEL_FROM_DATABASE=Magnia Z310 ++ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Magnia Z310) + + pci:v00009005d0000008Fsv000015D9sd00009005* +- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Onboard SCSI Host Adapter) + + pci:v00009005d00000092* + ID_MODEL_FROM_DATABASE=AVC-2010 [VideoH!] +@@ -72156,10 +72156,10 @@ pci:v00009005d000000C0* + ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m + + pci:v00009005d000000C0sv00000E11sd0000F620* +- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter ++ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter) + + pci:v00009005d000000C0sv00009005sd0000F620* +- ID_MODEL_FROM_DATABASE=AHA-3960D U160/m ++ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (AHA-3960D U160/m) + + pci:v00009005d000000C1* + ID_MODEL_FROM_DATABASE=AIC-7899B U160/m +@@ -72171,28 +72171,28 @@ pci:v00009005d000000C5* + ID_MODEL_FROM_DATABASE=RAID subsystem HBA + + pci:v00009005d000000C5sv00001028sd000000C5* +- ID_MODEL_FROM_DATABASE=PowerEdge 2400,2500,2550,4400 ++ ID_MODEL_FROM_DATABASE=RAID subsystem HBA (PowerEdge 2400,2500,2550,4400) + + pci:v00009005d000000CF* + ID_MODEL_FROM_DATABASE=AIC-7899P U160/m + + pci:v00009005d000000CFsv00001028sd000000CE* +- ID_MODEL_FROM_DATABASE=PowerEdge 1400 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 1400) + + pci:v00009005d000000CFsv00001028sd000000D1* +- ID_MODEL_FROM_DATABASE=PowerEdge 2550 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2550) + + pci:v00009005d000000CFsv00001028sd000000D9* +- ID_MODEL_FROM_DATABASE=PowerEdge 2500 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2500) + + pci:v00009005d000000CFsv000010F1sd00002462* +- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Thunder K7 S2462) + + pci:v00009005d000000CFsv000015D9sd00009005* +- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Onboard SCSI Host Adapter) + + pci:v00009005d000000CFsv00008086sd00003411* +- ID_MODEL_FROM_DATABASE=SDS2 Mainboard ++ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (SDS2 Mainboard) + + pci:v00009005d00000241* + ID_MODEL_FROM_DATABASE=Serial ATA II RAID 1420SA +@@ -72210,13 +72210,13 @@ pci:v00009005d00000250* + ID_MODEL_FROM_DATABASE=ServeRAID Controller + + pci:v00009005d00000250sv00001014sd00000279* +- ID_MODEL_FROM_DATABASE=ServeRAID 6M ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6M) + + pci:v00009005d00000250sv00001014sd0000028C* +- ID_MODEL_FROM_DATABASE=ServeRAID 6i/6i+ ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6i/6i+) + + pci:v00009005d00000250sv00001014sd0000028E* +- ID_MODEL_FROM_DATABASE=ServeRAID 7k ++ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 7k) + + pci:v00009005d00000279* + ID_MODEL_FROM_DATABASE=ServeRAID 6M +@@ -72225,415 +72225,415 @@ pci:v00009005d00000283* + ID_MODEL_FROM_DATABASE=AAC-RAID + + pci:v00009005d00000283sv00009005sd00000283* +- ID_MODEL_FROM_DATABASE=Catapult ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Catapult) + + pci:v00009005d00000284* + ID_MODEL_FROM_DATABASE=AAC-RAID + + pci:v00009005d00000284sv00009005sd00000284* +- ID_MODEL_FROM_DATABASE=Tomcat ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Tomcat) + + pci:v00009005d00000285* + ID_MODEL_FROM_DATABASE=AAC-RAID + + pci:v00009005d00000285sv00000E11sd00000295* +- ID_MODEL_FROM_DATABASE=SATA 6Ch (Bearcat) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SATA 6Ch (Bearcat)) + + pci:v00009005d00000285sv00001014sd000002F2* +- ID_MODEL_FROM_DATABASE=ServeRAID 8i ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ServeRAID 8i) + + pci:v00009005d00000285sv00001028sd00000287* +- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 320/DC ++ ID_MODEL_FROM_DATABASE=AAC-RAID (PowerEdge Expandable RAID Controller 320/DC) + + pci:v00009005d00000285sv00001028sd00000291* +- ID_MODEL_FROM_DATABASE=CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)) + + pci:v00009005d00000285sv0000103Csd00003227* +- ID_MODEL_FROM_DATABASE=AAR-2610SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2610SA) + + pci:v00009005d00000285sv0000108Esd00000286* +- ID_MODEL_FROM_DATABASE=Sun StorageTek SAS RAID HBA, Internal ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Sun StorageTek SAS RAID HBA, Internal) + + pci:v00009005d00000285sv0000108Esd00000287* +- ID_MODEL_FROM_DATABASE=STK RAID EXT ++ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EXT) + + pci:v00009005d00000285sv0000108Esd00007AAC* +- ID_MODEL_FROM_DATABASE=STK RAID REM ++ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID REM) + + pci:v00009005d00000285sv0000108Esd00007AAE* +- ID_MODEL_FROM_DATABASE=STK RAID EX ++ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EX) + + pci:v00009005d00000285sv000015D9sd000002B5* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4i ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4i) + + pci:v00009005d00000285sv000015D9sd000002B6* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i) + + pci:v00009005d00000285sv000015D9sd000002C9* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4iR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4iR) + + pci:v00009005d00000285sv000015D9sd000002CA* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR) + + pci:v00009005d00000285sv000015D9sd000002D2* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i-LP ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i-LP) + + pci:v00009005d00000285sv000015D9sd000002D3* +- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR-LP ++ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR-LP) + + pci:v00009005d00000285sv000017AAsd00000286* +- ID_MODEL_FROM_DATABASE=Legend S220 (Legend Crusader) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S220 (Legend Crusader)) + + pci:v00009005d00000285sv000017AAsd00000287* +- ID_MODEL_FROM_DATABASE=Legend S230 (Legend Vulcan) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S230 (Legend Vulcan)) + + pci:v00009005d00000285sv00009005sd00000285* +- ID_MODEL_FROM_DATABASE=2200S (Vulcan) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan)) + + pci:v00009005d00000285sv00009005sd00000286* +- ID_MODEL_FROM_DATABASE=2120S (Crusader) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (2120S (Crusader)) + + pci:v00009005d00000285sv00009005sd00000287* +- ID_MODEL_FROM_DATABASE=2200S (Vulcan-2m) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan-2m)) + + pci:v00009005d00000285sv00009005sd00000288* +- ID_MODEL_FROM_DATABASE=3230S (Harrier) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3230S (Harrier)) + + pci:v00009005d00000285sv00009005sd00000289* +- ID_MODEL_FROM_DATABASE=3240S (Tornado) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3240S (Tornado)) + + pci:v00009005d00000285sv00009005sd0000028A* +- ID_MODEL_FROM_DATABASE=ASR-2020ZCR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020ZCR) + + pci:v00009005d00000285sv00009005sd0000028B* +- ID_MODEL_FROM_DATABASE=ASR-2025ZCR (Terminator) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025ZCR (Terminator)) + + pci:v00009005d00000285sv00009005sd0000028E* +- ID_MODEL_FROM_DATABASE=ASR-2020SA (Skyhawk) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020SA (Skyhawk)) + + pci:v00009005d00000285sv00009005sd0000028F* +- ID_MODEL_FROM_DATABASE=ASR-2025SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025SA) + + pci:v00009005d00000285sv00009005sd00000290* +- ID_MODEL_FROM_DATABASE=AAR-2410SA PCI SATA 4ch (Jaguar II) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2410SA PCI SATA 4ch (Jaguar II)) + + pci:v00009005d00000285sv00009005sd00000292* +- ID_MODEL_FROM_DATABASE=AAR-2810SA PCI SATA 8ch (Corsair-8) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2810SA PCI SATA 8ch (Corsair-8)) + + pci:v00009005d00000285sv00009005sd00000293* +- ID_MODEL_FROM_DATABASE=AAR-21610SA PCI SATA 16ch (Corsair-16) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-21610SA PCI SATA 16ch (Corsair-16)) + + pci:v00009005d00000285sv00009005sd00000294* +- ID_MODEL_FROM_DATABASE=ESD SO-DIMM PCI-X SATA ZCR (Prowler) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ESD SO-DIMM PCI-X SATA ZCR (Prowler)) + + pci:v00009005d00000285sv00009005sd00000296* +- ID_MODEL_FROM_DATABASE=ASR-2240S ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2240S) + + pci:v00009005d00000285sv00009005sd00000297* +- ID_MODEL_FROM_DATABASE=ASR-4005SAS ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4005SAS) + + pci:v00009005d00000285sv00009005sd00000298* +- ID_MODEL_FROM_DATABASE=ASR-4000 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4000) + + pci:v00009005d00000285sv00009005sd00000299* +- ID_MODEL_FROM_DATABASE=ASR-4800SAS ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4800SAS) + + pci:v00009005d00000285sv00009005sd0000029A* +- ID_MODEL_FROM_DATABASE=4805SAS ++ ID_MODEL_FROM_DATABASE=AAC-RAID (4805SAS) + + pci:v00009005d00000285sv00009005sd000002A4* +- ID_MODEL_FROM_DATABASE=ICP ICP9085LI ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP9085LI) + + pci:v00009005d00000285sv00009005sd000002A5* +- ID_MODEL_FROM_DATABASE=ICP ICP5085BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BR) + + pci:v00009005d00000285sv00009005sd000002B5* +- ID_MODEL_FROM_DATABASE=ASR5800 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5800) + + pci:v00009005d00000285sv00009005sd000002B6* +- ID_MODEL_FROM_DATABASE=ASR5805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5805) + + pci:v00009005d00000285sv00009005sd000002B7* +- ID_MODEL_FROM_DATABASE=ASR5808 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5808) + + pci:v00009005d00000285sv00009005sd000002B8* +- ID_MODEL_FROM_DATABASE=ICP5445SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5445SL) + + pci:v00009005d00000285sv00009005sd000002B9* +- ID_MODEL_FROM_DATABASE=ICP5085SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5085SL) + + pci:v00009005d00000285sv00009005sd000002BA* +- ID_MODEL_FROM_DATABASE=ICP5805SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805SL) + + pci:v00009005d00000285sv00009005sd000002BB* +- ID_MODEL_FROM_DATABASE=3405 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3405) + + pci:v00009005d00000285sv00009005sd000002BC* +- ID_MODEL_FROM_DATABASE=3805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3805) + + pci:v00009005d00000285sv00009005sd000002BD* +- ID_MODEL_FROM_DATABASE=31205 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (31205) + + pci:v00009005d00000285sv00009005sd000002BE* +- ID_MODEL_FROM_DATABASE=31605 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (31605) + + pci:v00009005d00000285sv00009005sd000002BF* +- ID_MODEL_FROM_DATABASE=ICP ICP5045BL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5045BL) + + pci:v00009005d00000285sv00009005sd000002C0* +- ID_MODEL_FROM_DATABASE=ICP ICP5085BL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BL) + + pci:v00009005d00000285sv00009005sd000002C1* +- ID_MODEL_FROM_DATABASE=ICP ICP5125BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125BR) + + pci:v00009005d00000285sv00009005sd000002C2* +- ID_MODEL_FROM_DATABASE=ICP ICP5165BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165BR) + + pci:v00009005d00000285sv00009005sd000002C3* +- ID_MODEL_FROM_DATABASE=51205 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51205) + + pci:v00009005d00000285sv00009005sd000002C4* +- ID_MODEL_FROM_DATABASE=51605 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51605) + + pci:v00009005d00000285sv00009005sd000002C5* +- ID_MODEL_FROM_DATABASE=ICP ICP5125SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125SL) + + pci:v00009005d00000285sv00009005sd000002C6* +- ID_MODEL_FROM_DATABASE=ICP ICP5165SL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165SL) + + pci:v00009005d00000285sv00009005sd000002C7* +- ID_MODEL_FROM_DATABASE=3085 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (3085) + + pci:v00009005d00000285sv00009005sd000002C8* +- ID_MODEL_FROM_DATABASE=ICP5805BL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805BL) + + pci:v00009005d00000285sv00009005sd000002CE* +- ID_MODEL_FROM_DATABASE=51245 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51245) + + pci:v00009005d00000285sv00009005sd000002CF* +- ID_MODEL_FROM_DATABASE=51645 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51645) + + pci:v00009005d00000285sv00009005sd000002D0* +- ID_MODEL_FROM_DATABASE=52445 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (52445) + + pci:v00009005d00000285sv00009005sd000002D1* +- ID_MODEL_FROM_DATABASE=5405 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5405) + + pci:v00009005d00000285sv00009005sd000002D4* +- ID_MODEL_FROM_DATABASE=ASR-2045 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045) + + pci:v00009005d00000285sv00009005sd000002D5* +- ID_MODEL_FROM_DATABASE=ASR-2405 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405) + + pci:v00009005d00000285sv00009005sd000002D6* +- ID_MODEL_FROM_DATABASE=ASR-2445 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445) + + pci:v00009005d00000285sv00009005sd000002D7* +- ID_MODEL_FROM_DATABASE=ASR-2805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805) + + pci:v00009005d00000285sv00009005sd000002D8* +- ID_MODEL_FROM_DATABASE=5405G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5405G) + + pci:v00009005d00000285sv00009005sd000002D9* +- ID_MODEL_FROM_DATABASE=5445G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5445G) + + pci:v00009005d00000285sv00009005sd000002DA* +- ID_MODEL_FROM_DATABASE=5805G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5805G) + + pci:v00009005d00000285sv00009005sd000002DB* +- ID_MODEL_FROM_DATABASE=5085G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (5085G) + + pci:v00009005d00000285sv00009005sd000002DC* +- ID_MODEL_FROM_DATABASE=51245G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51245G) + + pci:v00009005d00000285sv00009005sd000002DD* +- ID_MODEL_FROM_DATABASE=51645G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (51645G) + + pci:v00009005d00000285sv00009005sd000002DE* +- ID_MODEL_FROM_DATABASE=52445G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (52445G) + + pci:v00009005d00000285sv00009005sd000002DF* +- ID_MODEL_FROM_DATABASE=ASR-2045G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045G) + + pci:v00009005d00000285sv00009005sd000002E0* +- ID_MODEL_FROM_DATABASE=ASR-2405G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405G) + + pci:v00009005d00000285sv00009005sd000002E1* +- ID_MODEL_FROM_DATABASE=ASR-2445G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445G) + + pci:v00009005d00000285sv00009005sd000002E2* +- ID_MODEL_FROM_DATABASE=ASR-2805G ++ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805G) + + pci:v00009005d00000286* + ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) + + pci:v00009005d00000286sv00001014sd0000034D* +- ID_MODEL_FROM_DATABASE=8s ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (8s) + + pci:v00009005d00000286sv00001014sd00009540* +- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l4 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l4) + + pci:v00009005d00000286sv00001014sd00009580* +- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l8 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l8) + + pci:v00009005d00000286sv00009005sd0000028C* +- ID_MODEL_FROM_DATABASE=ASR-2230S + ASR-2230SLP PCI-X (Lancer) ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2230S + ASR-2230SLP PCI-X (Lancer)) + + pci:v00009005d00000286sv00009005sd0000028D* +- ID_MODEL_FROM_DATABASE=ASR-2130S ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2130S) + + pci:v00009005d00000286sv00009005sd0000029B* +- ID_MODEL_FROM_DATABASE=ASR-2820SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2820SA) + + pci:v00009005d00000286sv00009005sd0000029C* +- ID_MODEL_FROM_DATABASE=ASR-2620SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2620SA) + + pci:v00009005d00000286sv00009005sd0000029D* +- ID_MODEL_FROM_DATABASE=ASR-2420SA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2420SA) + + pci:v00009005d00000286sv00009005sd0000029E* +- ID_MODEL_FROM_DATABASE=ICP ICP9024R0 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9024R0) + + pci:v00009005d00000286sv00009005sd0000029F* +- ID_MODEL_FROM_DATABASE=ICP ICP9014R0 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9014R0) + + pci:v00009005d00000286sv00009005sd000002A0* +- ID_MODEL_FROM_DATABASE=ICP ICP9047MA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9047MA) + + pci:v00009005d00000286sv00009005sd000002A1* +- ID_MODEL_FROM_DATABASE=ICP ICP9087MA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9087MA) + + pci:v00009005d00000286sv00009005sd000002A2* +- ID_MODEL_FROM_DATABASE=3800 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3800) + + pci:v00009005d00000286sv00009005sd000002A3* +- ID_MODEL_FROM_DATABASE=ICP ICP5445AU ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5445AU) + + pci:v00009005d00000286sv00009005sd000002A4* +- ID_MODEL_FROM_DATABASE=ICP ICP9085LI ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9085LI) + + pci:v00009005d00000286sv00009005sd000002A5* +- ID_MODEL_FROM_DATABASE=ICP ICP5085BR ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085BR) + + pci:v00009005d00000286sv00009005sd000002A6* +- ID_MODEL_FROM_DATABASE=ICP9067MA ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP9067MA) + + pci:v00009005d00000286sv00009005sd000002A7* +- ID_MODEL_FROM_DATABASE=3805 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3805) + + pci:v00009005d00000286sv00009005sd000002A8* +- ID_MODEL_FROM_DATABASE=3400 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3400) + + pci:v00009005d00000286sv00009005sd000002A9* +- ID_MODEL_FROM_DATABASE=ICP ICP5085AU ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085AU) + + pci:v00009005d00000286sv00009005sd000002AA* +- ID_MODEL_FROM_DATABASE=ICP ICP5045AU ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AU) + + pci:v00009005d00000286sv00009005sd000002AC* +- ID_MODEL_FROM_DATABASE=1800 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (1800) + + pci:v00009005d00000286sv00009005sd000002B3* +- ID_MODEL_FROM_DATABASE=2400 ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (2400) + + pci:v00009005d00000286sv00009005sd000002B4* +- ID_MODEL_FROM_DATABASE=ICP ICP5045AL ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AL) + + pci:v00009005d00000286sv00009005sd00000800* +- ID_MODEL_FROM_DATABASE=Callisto ++ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (Callisto) + + pci:v00009005d0000028B* + ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 + + pci:v00009005d0000028Bsv00009005sd00000200* +- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000201* +- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000300* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6405 - 4 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6405 - 4 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000301* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6805 - 8 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6805 - 8 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000302* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000310* +- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000311* +- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS) + + pci:v00009005d0000028Bsv00009005sd00000400* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61205 - 12 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61205 - 12 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000401* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61605 - 16 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61605 - 16 internal 6G SAS ports) + + pci:v00009005d0000028Bsv00009005sd00000403* +- ID_MODEL_FROM_DATABASE=Series 6 - ASR-62405 - 24 internal 6G SAS ports ++ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-62405 - 24 internal 6G SAS ports) + + pci:v00009005d0000028C* + ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 + + pci:v00009005d0000028Csv00009005sd00000500* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000501* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000502* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000503* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000504* +- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000505* +- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Csv00009005sd00000506* +- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0) + + pci:v00009005d0000028D* + ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 + + pci:v00009005d0000028Dsv00009005sd00000550* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000551* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000552* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000553* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d0000028Dsv00009005sd00000554* +- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0 ++ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0) + + pci:v00009005d00000410* + ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) + + pci:v00009005d00000410sv00009005sd00000410* +- ID_MODEL_FROM_DATABASE=ASC-48300(Spirit RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-48300(Spirit RAID)) + + pci:v00009005d00000410sv00009005sd00000411* +- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-58300 (Oakmont RAID)) + + pci:v00009005d00000412* + ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) + + pci:v00009005d00000412sv00009005sd00000412* +- ID_MODEL_FROM_DATABASE=ASC-48300 (Spirit non-RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-48300 (Spirit non-RAID)) + + pci:v00009005d00000412sv00009005sd00000413* +- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont non-RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-58300 (Oakmont non-RAID)) + + pci:v00009005d00000415* + ID_MODEL_FROM_DATABASE=ASC-58300 SAS (Razor-External HBA RAID) +@@ -72657,13 +72657,13 @@ pci:v00009005d00000430* + ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) + + pci:v00009005d00000430sv00009005sd00000430* +- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) (ASC-44300 (Spirit-Lite RAID)) + + pci:v00009005d00000432* + ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) + + pci:v00009005d00000432sv00009005sd00000432* +- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite non-RAID) ++ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) (ASC-44300 (Spirit-Lite non-RAID)) + + pci:v00009005d0000043E* + ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite ASIC non-RAID) +@@ -72678,22 +72678,22 @@ pci:v00009005d00000500* + ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller + + pci:v00009005d00000500sv00001014sd000002C1* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) + + pci:v00009005d00000500sv00001014sd000002C2* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/572D) ++ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/572D)) + + pci:v00009005d00000503* + ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller + + pci:v00009005d00000503sv00001014sd000002BF* +- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E) ++ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E)) + + pci:v00009005d00000503sv00001014sd000002C3* +- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572F) ++ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572F)) + + pci:v00009005d00000503sv00001014sd000002D5* +- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F) ++ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F)) + + pci:v00009005d00000910* + ID_MODEL_FROM_DATABASE=AUA-3100B +@@ -72714,10 +72714,10 @@ pci:v00009005d00008011* + ID_MODEL_FROM_DATABASE=ASC-39320D + + pci:v00009005d00008011sv00000E11sd000000AC* +- ID_MODEL_FROM_DATABASE=ASC-39320D U320 ++ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) + + pci:v00009005d00008011sv00009005sd00000041* +- ID_MODEL_FROM_DATABASE=ASC-39320D U320 ++ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) + + pci:v00009005d00008012* + ID_MODEL_FROM_DATABASE=ASC-29320 U320 +@@ -72738,10 +72738,10 @@ pci:v00009005d00008017* + ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 + + pci:v00009005d00008017sv00009005sd00000044* +- ID_MODEL_FROM_DATABASE=ASC-29320ALP PCIx U320 ++ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320ALP PCIx U320) + + pci:v00009005d00008017sv00009005sd00000045* +- ID_MODEL_FROM_DATABASE=ASC-29320LPE PCIe U320 ++ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320LPE PCIe U320) + + pci:v00009005d0000801C* + ID_MODEL_FROM_DATABASE=ASC-39320D U320 +@@ -72750,7 +72750,7 @@ pci:v00009005d0000801D* + ID_MODEL_FROM_DATABASE=AIC-7902B U320 + + pci:v00009005d0000801Dsv00001014sd000002CC* +- ID_MODEL_FROM_DATABASE=ServeRAID 7e ++ ID_MODEL_FROM_DATABASE=AIC-7902B U320 (ServeRAID 7e) + + pci:v00009005d0000801E* + ID_MODEL_FROM_DATABASE=AIC-7901A U320 +@@ -72759,7 +72759,7 @@ pci:v00009005d0000801F* + ID_MODEL_FROM_DATABASE=AIC-7902 U320 + + pci:v00009005d0000801Fsv00001734sd00001011* +- ID_MODEL_FROM_DATABASE=PRIMERGY RX300 onboard SCSI ++ ID_MODEL_FROM_DATABASE=AIC-7902 U320 (PRIMERGY RX300 onboard SCSI) + + pci:v00009005d00008080* + ID_MODEL_FROM_DATABASE=ASC-29320A U320 w/HostRAID +@@ -72777,7 +72777,7 @@ pci:v00009005d0000808F* + ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID + + pci:v00009005d0000808Fsv00001028sd00000168* +- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard ++ ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID (Precision Workstation 670 Mainboard) + + pci:v00009005d00008090* + ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID +@@ -72810,7 +72810,7 @@ pci:v00009005d0000809D* + ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID + + pci:v00009005d0000809Dsv00001014sd000002CC* +- ID_MODEL_FROM_DATABASE=ServeRAID 7e ++ ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID (ServeRAID 7e) + + pci:v00009005d0000809E* + ID_MODEL_FROM_DATABASE=AIC-7901A U320 w/HostRAID +@@ -72858,7 +72858,7 @@ pci:v00009710d00009815* + ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller + + pci:v00009710d00009815sv00001000sd00000020* +- ID_MODEL_FROM_DATABASE=2P0S (2 port parallel adaptor) ++ ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller (2P0S (2 port parallel adaptor)) + + pci:v00009710d00009820* + ID_MODEL_FROM_DATABASE=PCI 9820 Multi-I/O Controller +@@ -72867,31 +72867,31 @@ pci:v00009710d00009835* + ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller + + pci:v00009710d00009835sv00001000sd00000002* +- ID_MODEL_FROM_DATABASE=2S (16C550 UART) ++ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (2S (16C550 UART)) + + pci:v00009710d00009835sv00001000sd00000012* +- ID_MODEL_FROM_DATABASE=1P2S ++ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (1P2S) + + pci:v00009710d00009845* + ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller + + pci:v00009710d00009845sv00001000sd00000004* +- ID_MODEL_FROM_DATABASE=0P4S (4 port 16550A serial card) ++ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P4S (4 port 16550A serial card)) + + pci:v00009710d00009845sv00001000sd00000006* +- ID_MODEL_FROM_DATABASE=0P6S (6 port 16550a serial card) ++ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P6S (6 port 16550a serial card)) + + pci:v00009710d00009845sv00001000sd00000014* +- ID_MODEL_FROM_DATABASE=1P4S (1 Parallel / 4 16550A Serial Port Adapter) ++ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (1P4S (1 Parallel / 4 16550A Serial Port Adapter)) + + pci:v00009710d00009855* + ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller + + pci:v00009710d00009855sv00001000sd00000014* +- ID_MODEL_FROM_DATABASE=1P4S ++ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (1P4S) + + pci:v00009710d00009855sv00001000sd00000022* +- ID_MODEL_FROM_DATABASE=2P2S (2 Parallel / 2 16550A Serial Port Adapter) ++ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (2P2S (2 Parallel / 2 16550A Serial Port Adapter)) + + pci:v00009710d00009865* + ID_MODEL_FROM_DATABASE=PCI 9865 Multi-I/O Controller +@@ -73350,40 +73350,40 @@ pci:v0000DD01d00000003* + ID_MODEL_FROM_DATABASE=Octopus DVB Adapter + + pci:v0000DD01d00000003sv0000DD01sd00000001* +- ID_MODEL_FROM_DATABASE=Octopus DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000002* +- ID_MODEL_FROM_DATABASE=Octopus LE DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus LE DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000003* +- ID_MODEL_FROM_DATABASE=Octopus OEM ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus OEM) + + pci:v0000DD01d00000003sv0000DD01sd00000004* +- ID_MODEL_FROM_DATABASE=Octopus V3 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus V3 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000010* +- ID_MODEL_FROM_DATABASE=Octopus Mini ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus Mini) + + pci:v0000DD01d00000003sv0000DD01sd00000020* +- ID_MODEL_FROM_DATABASE=Cine S2 V6 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000021* +- ID_MODEL_FROM_DATABASE=Cine S2 V6.5 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6.5 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd00000030* +- ID_MODEL_FROM_DATABASE=Cine CT V6.1 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine CT V6.1 DVB adapter) + + pci:v0000DD01d00000003sv0000DD01sd0000DB03* +- ID_MODEL_FROM_DATABASE=Mystique SaTiX-S2 V3 DVB adapter ++ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Mystique SaTiX-S2 V3 DVB adapter) + + pci:v0000DD01d00000011* + ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter + + pci:v0000DD01d00000011sv0000DD01sd00000040* +- ID_MODEL_FROM_DATABASE=Octopus CI ++ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI) + + pci:v0000DD01d00000011sv0000DD01sd00000041* +- ID_MODEL_FROM_DATABASE=Octopus CI Single ++ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI Single) + + pci:v0000DEAD* + ID_VENDOR_FROM_DATABASE=Indigita Corporation +@@ -73416,22 +73416,22 @@ pci:v0000E159d00000001* + ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface + + pci:v0000E159d00000001sv00000059sd00000001* +- ID_MODEL_FROM_DATABASE=128k ISDN-S/T Adapter ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-S/T Adapter) + + pci:v0000E159d00000001sv00000059sd00000003* +- ID_MODEL_FROM_DATABASE=128k ISDN-U Adapter ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-U Adapter) + + pci:v0000E159d00000001sv000000A7sd00000001* +- ID_MODEL_FROM_DATABASE=TELES.S0/PCI 2.x ISDN Adapter ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (TELES.S0/PCI 2.x ISDN Adapter) + + pci:v0000E159d00000001sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Digium X100P/X101P analogue PSTN FXO interface ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (Digium X100P/X101P analogue PSTN FXO interface) + + pci:v0000E159d00000001sv0000B100sd00000003* +- ID_MODEL_FROM_DATABASE=OpenVox A400P 4-port analog card ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (OpenVox A400P 4-port analog card) + + pci:v0000E159d00000001sv0000B1D9sd00000003* +- ID_MODEL_FROM_DATABASE=AX400P 4-port analog card ++ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (AX400P 4-port analog card) + + pci:v0000E159d00000002* + ID_MODEL_FROM_DATABASE=Tiger100APC ISDN chipset +-- +1.7.9.2 + diff --git a/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..5f097f39 --- /dev/null +++ b/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,38 @@ +From f89b42ec0fd51feab5566d6bdbacee101023c037 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Tue, 25 Mar 2014 20:21:23 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 7d86f10..b928f5a 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -923,3 +923,21 @@ bluetooth:v0130* + + bluetooth:v0131* + ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation ++ ++bluetooth:v0132* ++ ID_VENDOR_FROM_DATABASE=MADS Inc ++ ++bluetooth:v0133* ++ ID_VENDOR_FROM_DATABASE=Blue Maestro Limited ++ ++bluetooth:v0134* ++ ID_VENDOR_FROM_DATABASE=Resolution Products, Inc. ++ ++bluetooth:v0135* ++ ID_VENDOR_FROM_DATABASE=Airewear LLC ++ ++bluetooth:v0136* ++ ID_VENDOR_FROM_DATABASE=ETC sp. z.o.o. ++ ++bluetooth:v0137* ++ ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. +-- +1.7.9.2 + diff --git a/0003-install-fix-invalid-free-in-unit_file_mask.patch b/0003-install-fix-invalid-free-in-unit_file_mask.patch new file mode 100644 index 00000000..0fe0581b --- /dev/null +++ b/0003-install-fix-invalid-free-in-unit_file_mask.patch @@ -0,0 +1,30 @@ +From 223217749e57996336d5730b0a28716cca56d45d Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Fri, 13 Jun 2014 18:48:18 +0200 +Subject: [PATCH] install: fix invalid free() in unit_file_mask() + +int unit_file_mask(...) in ./src/shared/install.c calls +get_config_path(...) which can in 4 error cases return without setting +"ret", and thus "prefix" can be uninitialized when unit_file_mask(...) +finishes (which it does directly after the error is returned from +get_config_path(...)). +--- + src/shared/install.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/install.c src/shared/install.c +index 487d0f6..f562063 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -563,7 +563,7 @@ int unit_file_mask( + unsigned *n_changes) { + + char **i; +- _cleanup_free_ char *prefix; ++ _cleanup_free_ char *prefix = NULL; + int r; + + assert(scope >= 0); +-- +1.7.9.2 + diff --git a/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch b/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch new file mode 100644 index 00000000..c88ed60b --- /dev/null +++ b/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch @@ -0,0 +1,41 @@ +From f2a474aea8f82fa9b695515d4590f4f3398358a7 Mon Sep 17 00:00:00 2001 +From: Juho Son +Date: Thu, 11 Sep 2014 16:06:38 +0900 +Subject: [PATCH] journald: add CAP_MAC_OVERRIDE in journald for SMACK issue + +systemd-journald check the cgroup id to support rate limit option for +every messages. so journald should be available to access cgroup node in +each process send messages to journald. +In system using SMACK, cgroup node in proc is assigned execute label +as each process's execute label. +so if journald don't want to denied for every process, journald +should have all of access rule for all process's label. +It's too heavy. so we could give special smack label for journald te get +all accesses's permission. +'^' label. +When assign '^' execute smack label to systemd-journald, +systemd-journald need to add CAP_MAC_OVERRIDE capability to get that smack privilege. + +so I want to notice this information and set default capability to +journald whether system use SMACK or not. +because that capability affect to only smack enabled kernel +--- + units/systemd-journald.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git units/systemd-journald.service.in units/systemd-journald.service.in +index 7013979..4de38fa 100644 +--- units/systemd-journald.service.in ++++ units/systemd-journald.service.in +@@ -20,7 +20,7 @@ Restart=always + RestartSec=0 + NotifyAccess=all + StandardOutput=null +-CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID ++CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_MAC_OVERRIDE + WatchdogSec=1min + + # Increase the default a bit in order to allow many simultaneous +-- +1.7.9.2 + diff --git a/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch b/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch new file mode 100644 index 00000000..c9ab5e0e --- /dev/null +++ b/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch @@ -0,0 +1,29 @@ +From e512e8a255ef29d5a8eb605f8849202ea3d3e4cb Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Wed, 27 Aug 2014 08:41:10 +0200 +Subject: [PATCH] keymap: Adjust for more Samsung 900X4 series + +Reportedly also applies to NP900X4B, so relax the match to apply to all models +of this series. + +https://launchpad.net/bugs/902332 +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index ef0ebc5..0ffcb83 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -939,7 +939,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* + # Series 7 / 9 + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* +-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* ++keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34]*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* + KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings + KEYBOARD_KEY_a0=!mute # Fn+F6 mute +-- +1.7.9.2 + diff --git a/0003-keymap-Annotate-all-micmute-workarounds.patch b/0003-keymap-Annotate-all-micmute-workarounds.patch new file mode 100644 index 00000000..00f1e431 --- /dev/null +++ b/0003-keymap-Annotate-all-micmute-workarounds.patch @@ -0,0 +1,54 @@ +From d946bb53f94713241004810de92cc37f1e19c2d2 Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Wed, 30 Jul 2014 10:54:23 +0200 +Subject: [PATCH] keymap: Annotate all micmute workarounds + +Add a comment to all assignments to f20 that this actually should be "micmute" +in a future when we aren't limited by X.org's key code limiations any more. +--- + hwdb/60-keyboard.hwdb | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 70e372b..cbbbf2c 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -231,7 +231,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + + # Dell Latitude microphone mute + keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* +- KEYBOARD_KEY_150=f20 # Mic mute toggle ++ KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute + + ########################################################### + # Everex +@@ -505,7 +505,7 @@ keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* + KEYBOARD_KEY_15=volumedown + KEYBOARD_KEY_16=mute + KEYBOARD_KEY_17=prog1 +- KEYBOARD_KEY_1a=f20 ++ KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute + + # ThinkPad Keyboard with TrackPoint + keyboard:usb:v17EFp6009* +@@ -573,7 +573,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr* + + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr* + KEYBOARD_KEY_f1=f21 +- KEYBOARD_KEY_ce=f20 ++ KEYBOARD_KEY_ce=f20 # micmute + + keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* + KEYBOARD_KEY_a0=!mute +@@ -809,7 +809,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:* + KEYBOARD_KEY_f3=f17 + KEYBOARD_KEY_f2=f18 + KEYBOARD_KEY_f1=f19 +- KEYBOARD_KEY_f0=f20 ++ KEYBOARD_KEY_f0=f20 # micmute + KEYBOARD_KEY_ef=f21 + KEYBOARD_KEY_ee=chat + KEYBOARD_KEY_e4=chat +-- +1.7.9.2 + diff --git a/0003-keymap-Fix-HP-Pavillon-DV7.patch b/0003-keymap-Fix-HP-Pavillon-DV7.patch new file mode 100644 index 00000000..33908a82 --- /dev/null +++ b/0003-keymap-Fix-HP-Pavillon-DV7.patch @@ -0,0 +1,28 @@ +From efb4bf4e419e14a13eead6289ea40165579a816f Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Tue, 5 Aug 2014 12:29:27 +0200 +Subject: [PATCH] keymap: Fix HP Pavillon DV7 + +Properly disable scan code 94 instead of producing KEY_0. + +https://launchpad.net/bugs/1322770 +--- + hwdb/60-keyboard.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index cbbbf2c..5c3d4ca 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -368,7 +368,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:pvr + KEYBOARD_KEY_b7=print + KEYBOARD_KEY_c2=media # FIXME: quick play + KEYBOARD_KEY_c6=break +- KEYBOARD_KEY_94=0 ++ KEYBOARD_KEY_94=reserved + + # Elitebook + keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr* +-- +1.7.9.2 + diff --git a/0003-localed-consider-an-unset-model-as-a-wildcard.patch b/0003-localed-consider-an-unset-model-as-a-wildcard.patch new file mode 100644 index 00000000..3fbdb74e --- /dev/null +++ b/0003-localed-consider-an-unset-model-as-a-wildcard.patch @@ -0,0 +1,39 @@ +From 387066c2e5bda159201896b194711965b52f34a9 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Fri, 30 May 2014 18:20:16 +0200 +Subject: [PATCH] localed: consider an unset model as a wildcard + +--- + src/locale/localed.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git src/locale/localed.c src/locale/localed.c +index e3061c8..358f6c2 100644 +--- src/locale/localed.c ++++ src/locale/localed.c +@@ -712,15 +712,16 @@ static int find_legacy_keymap(Context *c, char **new_keymap) { + } + } + +- if (matching > 0 && +- streq_ptr(c->x11_model, a[2])) { +- matching++; +- +- if (streq_ptr(c->x11_variant, a[3])) { ++ if (matching > 0) { ++ if (isempty(c->x11_model) || streq_ptr(c->x11_model, a[2])) { + matching++; + +- if (streq_ptr(c->x11_options, a[4])) ++ if (streq_ptr(c->x11_variant, a[3])) { + matching++; ++ ++ if (streq_ptr(c->x11_options, a[4])) ++ matching++; ++ } + } + } + +-- +1.7.9.2 + diff --git a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch new file mode 100644 index 00000000..e4752edc --- /dev/null +++ b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch @@ -0,0 +1,35 @@ +From 9c413373d2112055a0142ef522bf95af9b491b4a Mon Sep 17 00:00:00 2001 +From: "Jasper St. Pierre" +Date: Fri, 21 Feb 2014 18:23:17 -0500 +Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo + +--- + src/login/org.freedesktop.login1.conf | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git src/login/org.freedesktop.login1.conf src/login/org.freedesktop.login1.conf +index d677f61..1318328 100644 +--- src/login/org.freedesktop.login1.conf ++++ src/login/org.freedesktop.login1.conf +@@ -141,6 +141,18 @@ + send_member="ActivateSession"/> + + ++ ++ ++ ++ ++ ++ + +-- +1.7.9.2 + diff --git a/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch b/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch new file mode 100644 index 00000000..596702d6 --- /dev/null +++ b/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch @@ -0,0 +1,174 @@ +From f9cd6be10ece07e10488c05e270a0b5860779864 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 20:49:33 +0100 +Subject: [PATCH] logind: ignore lid switch events for 30s after each suspend + and 3min after startup + +This is needed to give USB docking stations and suchlike time to settle, +so that a display connected to an USB docking station can actually act +as a lid swith inhibitor correctly. + +With this change we should have somewhat reliable docking station +support in place. +--- + src/login/logind-action.c | 15 ++++++++++++++- + src/login/logind-dbus.c | 3 +++ + src/login/logind.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ + src/login/logind.h | 7 +++++++ + 4 files changed, 69 insertions(+), 1 deletion(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index c9d8bc5..ae7b350 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -70,20 +70,33 @@ int manager_handle_action( + return 0; + } + +- /* If we are docked don't react to lid closing */ + if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { + int n; + ++ /* If we are docked don't react to lid closing */ + if (manager_is_docked(m)) { + log_debug("Ignoring lid switch request, system is docked."); + return 0; + } + ++ /* If we have more than one or no displays connected, ++ * don't react to lid closing. The no display case we ++ * treat like this under the assumption that there is ++ * no modern drm driver available. */ + n = manager_count_displays(m); + if (n != 1) { + log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } ++ ++ /* If the last system suspend or startup is too close, ++ * let's not suspend for now, to give USB docking ++ * stations some time to settle so that we can ++ * properly watch its displays. */ ++ if (m->lid_switch_ignore_event_source) { ++ log_debug("Ignoring lid switch request, system startup or resume too close."); ++ return 0; ++ } + } + + /* If the key handling is inhibited, don't do anything */ +diff --git src/login/logind-dbus.c src/login/logind-dbus.c +index fc89531..c9c58f3 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -1337,6 +1337,9 @@ static int execute_shutdown_or_sleep( + m->action_job = c; + m->action_what = w; + ++ /* Make sure the lid switch is ignored for a while */ ++ manager_set_lid_switch_ignore(m, now(CLOCK_MONOTONIC) + IGNORE_LID_SWITCH_SUSPEND_USEC); ++ + return 0; + } + +diff --git src/login/logind.c src/login/logind.c +index 10f61ab..fd113b3 100644 +--- src/login/logind.c ++++ src/login/logind.c +@@ -144,6 +144,7 @@ void manager_free(Manager *m) { + sd_event_source_unref(m->udev_device_event_source); + sd_event_source_unref(m->udev_vcsa_event_source); + sd_event_source_unref(m->udev_button_event_source); ++ sd_event_source_unref(m->lid_switch_ignore_event_source); + + if (m->console_active_fd >= 0) + close_nointr_nofail(m->console_active_fd); +@@ -959,6 +960,46 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us + return 0; + } + ++static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(e); ++ assert(m); ++ ++ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); ++ return 0; ++} ++ ++int manager_set_lid_switch_ignore(Manager *m, usec_t until) { ++ int r; ++ ++ assert(m); ++ ++ if (until <= now(CLOCK_MONOTONIC)) ++ return 0; ++ ++ /* We want to ignore the lid switch for a while after each ++ * suspend, and after boot-up. Hence let's install a timer for ++ * this. As long as the event source exists we ignore the lid ++ * switch. */ ++ ++ if (m->lid_switch_ignore_event_source) { ++ usec_t u; ++ ++ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); ++ if (r < 0) ++ return r; ++ ++ if (until <= u) ++ return 0; ++ ++ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); ++ } else ++ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); ++ ++ return r; ++} ++ + int manager_startup(Manager *m) { + int r; + Seat *seat; +@@ -994,6 +1035,10 @@ int manager_startup(Manager *m) { + return r; + } + ++ r = manager_set_lid_switch_ignore(m, 0 + IGNORE_LID_SWITCH_STARTUP_USEC); ++ if (r < 0) ++ log_warning("Failed to set up lid switch ignore event source: %s", strerror(-r)); ++ + /* Deserialize state */ + r = manager_enumerate_devices(m); + if (r < 0) +diff --git src/login/logind.h src/login/logind.h +index 74d6641..4bb8e7b 100644 +--- src/login/logind.h ++++ src/login/logind.h +@@ -42,6 +42,9 @@ typedef struct Manager Manager; + #include "logind-button.h" + #include "logind-action.h" + ++#define IGNORE_LID_SWITCH_STARTUP_USEC (3 * USEC_PER_MINUTE) ++#define IGNORE_LID_SWITCH_SUSPEND_USEC (30 * USEC_PER_SEC) ++ + struct Manager { + sd_event *event; + sd_bus *bus; +@@ -118,6 +121,8 @@ struct Manager { + bool lid_switch_ignore_inhibited; + + Hashmap *polkit_registry; ++ ++ sd_event_source *lid_switch_ignore_event_source; + }; + + Manager *manager_new(void); +@@ -178,3 +183,5 @@ const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned lengt + + int manager_watch_busname(Manager *manager, const char *name); + void manager_drop_busname(Manager *manager, const char *name); ++ ++int manager_set_lid_switch_ignore(Manager *m, usec_t until); +-- +1.7.9.2 + diff --git a/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch b/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch new file mode 100644 index 00000000..070a9100 --- /dev/null +++ b/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch @@ -0,0 +1,40 @@ +From 05a2f6fefedd7254fd799502191d025d2908cf74 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Sat, 12 Apr 2014 08:37:38 +0300 +Subject: [PATCH] man: mention XDG_CONFIG_HOME in systemd.unit + +--- + man/systemd.unit.xml | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index 07a73fd..bcd4ba8 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -70,7 +70,8 @@ + ... + + +- $HOME/.config/systemd/user/* ++ $XDG_CONFIG_HOME/systemd/user/* ++$HOME/.config/systemd/user/* + /etc/systemd/user/* + /run/systemd/user/* + /usr/lib/systemd/user/* +@@ -320,8 +321,12 @@ + + + ++ $XDG_CONFIG_HOME/systemd/user ++ User configuration (only used when $XDG_CONFIG_HOME is set) ++ ++ + $HOME/.config/systemd/user +- User configuration ++ User configuration (only used when $XDG_CONFIG_HOME is not set) + + + /etc/systemd/user +-- +1.7.9.2 + diff --git a/0003-man-we-don-t-have-Wanted-dependency.patch b/0003-man-we-don-t-have-Wanted-dependency.patch new file mode 100644 index 00000000..6ab1a897 --- /dev/null +++ b/0003-man-we-don-t-have-Wanted-dependency.patch @@ -0,0 +1,29 @@ +From 3e883473a0f36c220fc45ecf61d6878c9ac308b4 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Wed, 15 Oct 2014 09:28:31 +0200 +Subject: [PATCH] man: we don't have 'Wanted' dependency + +--- + man/systemd.unit.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd.unit.xml man/systemd.unit.xml +index e9395ff..88c9d7f 100644 +--- man/systemd.unit.xml ++++ man/systemd.unit.xml +@@ -181,10 +181,10 @@ + foo.service.wants/ may exist. All + unit files symlinked from such a directory are + implicitly added as dependencies of type +- Wanted= to the unit. This is useful ++ Wants= to the unit. This is useful + to hook units into the start-up of other units, + without having to modify their unit files. For details +- about the semantics of Wanted=, see ++ about the semantics of Wants=, see + below. The preferred way to create symlinks in the + .wants/ directory of a unit file + is with the enable command of the +-- +1.7.9.2 + diff --git a/0003-mount-order-options-before-other-arguments-to-mount.patch b/0003-mount-order-options-before-other-arguments-to-mount.patch new file mode 100644 index 00000000..d777869d --- /dev/null +++ b/0003-mount-order-options-before-other-arguments-to-mount.patch @@ -0,0 +1,39 @@ +Based on 141a1ceaa62578f1ed14f04cae2113dd0f49fd7f Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:59 +0200 +Subject: [PATCH] mount: order options before other arguments to mount + +--- + src/core/mount.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +--- src/core/mount.c ++++ src/core/mount.c 2014-09-25 13:43:44.926563278 +0000 +@@ -947,10 +947,11 @@ static void mount_enter_mounting(Mount * + r = exec_command_set( + m->control_command, + "/bin/mount", ++ "-n", ++ "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", ++ "-o", m->parameters_fragment.options ? m->parameters_fragment.options : "defaults", + m->parameters_fragment.what, + m->where, +- "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", +- m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options, + NULL); + else + r = -ENOENT; +@@ -994,10 +995,11 @@ static void mount_enter_remounting(Mount + r = exec_command_set( + m->control_command, + "/bin/mount", +- m->parameters_fragment.what, +- m->where, ++ "-n", + "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", + "-o", o, ++ m->parameters_fragment.what, ++ m->where, + NULL); + } else + r = -ENOENT; diff --git a/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch b/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch new file mode 100644 index 00000000..a8e538e2 --- /dev/null +++ b/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch @@ -0,0 +1,34 @@ +Based on 664064d60c36e1f62c7e9177e4c7498035467e07 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 16:27:57 +0200 +Subject: [PATCH] namespace: make sure /tmp, /var/tmp and /dev are writable in + namespaces we set up + +--- + src/core/namespace.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- src/core/namespace.c ++++ src/core/namespace.c 2014-07-04 09:55:21.582234949 +0000 +@@ -263,14 +263,17 @@ static int make_read_only(BindMount *m) + + assert(m); + +- if (m->mode != INACCESSIBLE && m->mode != READONLY) +- return 0; ++ if (IN_SET(m->mode, INACCESSIBLE, READONLY)) ++ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); ++ else if (IN_SET(m->mode, READWRITE, PRIVATE_TMP, PRIVATE_VAR_TMP, PRIVATE_DEV)) ++ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_REC, NULL); ++ else ++ r = 0; + +- r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); + if (r < 0 && !(m->ignore && errno == ENOENT)) + return -errno; + +- return 0; ++ return r; + } + + int setup_namespace( diff --git a/0003-sd-bus-check-return-value-of-vasprintf.patch b/0003-sd-bus-check-return-value-of-vasprintf.patch new file mode 100644 index 00000000..c908f074 --- /dev/null +++ b/0003-sd-bus-check-return-value-of-vasprintf.patch @@ -0,0 +1,35 @@ +From 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Tue, 7 Oct 2014 12:10:06 +0200 +Subject: [PATCH] sd-bus: check return value of vasprintf + +Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv(). + +Spotted by coverity. +--- + src/libsystemd/sd-bus/bus-error.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c +index abdfd73..5ca974a 100644 +--- src/libsystemd/sd-bus/bus-error.c ++++ src/libsystemd/sd-bus/bus-error.c +@@ -194,8 +194,13 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li + return -ENOMEM; + } + +- if (format) +- vasprintf((char**) &e->message, format, ap); ++ if (format) { ++ int r; ++ ++ r = vasprintf((char**) &e->message, format, ap); ++ if (r < 0) ++ return -ENOMEM; ++ } + + e->_need_free = 1; + +-- +1.7.9.2 + diff --git a/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch b/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch new file mode 100644 index 00000000..72455f2c --- /dev/null +++ b/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch @@ -0,0 +1,498 @@ +From a3d59cd1b0a2738d06893948492113f2c35be0af Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 19 Mar 2014 21:41:21 +0100 +Subject: [PATCH] sd-bus: don't use assert_return() to check for disconnected + bus connections + +A terminated connection is a runtime error and not a developer mistake, +hence don't use assert_return() to check for it. +--- + src/libsystemd/sd-bus/bus-control.c | 20 +++++++++++++----- + src/libsystemd/sd-bus/bus-convenience.c | 58 +++++++++++++++++++++++++++++++++++++++++------------- + src/libsystemd/sd-bus/bus-objects.c | 23 +++++++++++++++------ + src/libsystemd/sd-bus/sd-bus.c | 49 +++++++++++++++++++++++++++++++++------------ + 4 files changed, 113 insertions(+), 37 deletions(-) + +--- src/libsystemd/sd-bus/bus-control.c ++++ src/libsystemd/sd-bus/bus-control.c 2014-03-28 00:00:00.000000000 +0000 +@@ -128,12 +128,14 @@ _public_ int sd_bus_request_name(sd_bus + assert_return(bus, -EINVAL); + assert_return(name, -EINVAL); + assert_return(bus->bus_client, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(!(flags & ~(SD_BUS_NAME_ALLOW_REPLACEMENT|SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_QUEUE)), -EINVAL); + assert_return(service_name_is_valid(name), -EINVAL); + assert_return(name[0] != ':', -EINVAL); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_request_name_kernel(bus, name, flags); + else +@@ -201,11 +203,13 @@ _public_ int sd_bus_release_name(sd_bus + assert_return(bus, -EINVAL); + assert_return(name, -EINVAL); + assert_return(bus->bus_client, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(service_name_is_valid(name), -EINVAL); + assert_return(name[0] != ':', -EINVAL); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_release_name_kernel(bus, name); + else +@@ -344,9 +348,11 @@ static int bus_list_names_dbus1(sd_bus * + _public_ int sd_bus_list_names(sd_bus *bus, char ***acquired, char ***activatable) { + assert_return(bus, -EINVAL); + assert_return(acquired || activatable, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_list_names_kernel(bus, acquired, activatable); + else +@@ -737,11 +743,13 @@ _public_ int sd_bus_get_owner( + assert_return(name, -EINVAL); + assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); + assert_return(mask == 0 || creds, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(service_name_is_valid(name), -EINVAL); + assert_return(bus->bus_client, -ENODATA); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (bus->is_kernel) + return bus_get_owner_kdbus(bus, name, mask, creds); + else +@@ -1198,10 +1206,12 @@ _public_ int sd_bus_get_owner_machine_id + assert_return(bus, -EINVAL); + assert_return(name, -EINVAL); + assert_return(machine, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + assert_return(service_name_is_valid(name), -EINVAL); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (streq_ptr(name, bus->unique_name)) + return sd_id128_get_machine(machine); + +--- src/libsystemd/sd-bus/bus-convenience.c ++++ src/libsystemd/sd-bus/bus-convenience.c 2014-03-28 00:00:00.000000000 +0000 +@@ -36,9 +36,11 @@ _public_ int sd_bus_emit_signal( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_message_new_signal(bus, &m, path, interface, member); + if (r < 0) + return r; +@@ -70,9 +72,11 @@ _public_ int sd_bus_call_method( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_message_new_method_call(bus, &m, destination, path, interface, member); + if (r < 0) + return r; +@@ -100,9 +104,12 @@ _public_ int sd_bus_reply_method_return( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -134,9 +141,12 @@ _public_ int sd_bus_reply_method_error( + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); + assert_return(sd_bus_error_is_set(e), -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -159,9 +169,12 @@ _public_ int sd_bus_reply_method_errorf( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -182,9 +195,12 @@ _public_ int sd_bus_reply_method_errno( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -208,9 +224,12 @@ _public_ int sd_bus_reply_method_errnof( + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); + assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) + return 0; + +@@ -239,9 +258,11 @@ _public_ int sd_bus_get_property( + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(reply, -EINVAL); + assert_return(signature_is_single(type, false), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &rep, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -273,9 +294,11 @@ _public_ int sd_bus_get_property_trivial + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(bus_type_is_trivial(type), -EINVAL); + assert_return(ptr, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -309,9 +332,11 @@ _public_ int sd_bus_get_property_string( + assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(ret, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -348,9 +373,11 @@ _public_ int sd_bus_get_property_strv( + assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(ret, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); + if (r < 0) + return r; +@@ -383,9 +410,11 @@ _public_ int sd_bus_set_property( + assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); + assert_return(member_name_is_valid(member), -EINVAL); + assert_return(signature_is_single(type, false), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = sd_bus_message_new_method_call(bus, &m, destination, path, "org.freedesktop.DBus.Properties", "Set"); + if (r < 0) + return r; +@@ -416,9 +445,12 @@ _public_ int sd_bus_query_sender_creds(s + + assert_return(call, -EINVAL); + assert_return(call->sealed, -EPERM); +- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); ++ assert_return(call->bus, -EINVAL); + assert_return(!bus_pid_changed(call->bus), -ECHILD); + ++ if (!BUS_IS_OPEN(call->bus->state)) ++ return -ENOTCONN; ++ + c = sd_bus_message_get_creds(call); + + /* All data we need? */ +--- src/libsystemd/sd-bus/bus-objects.c ++++ src/libsystemd/sd-bus/bus-objects.c 2014-03-28 00:00:00.000000000 +0000 +@@ -2196,9 +2196,10 @@ _public_ int sd_bus_emit_properties_chan + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); + assert_return(interface_name_is_valid(interface), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + /* A non-NULL but empty names list means nothing needs to be + generated. A NULL list OTOH indicates that all properties +@@ -2241,9 +2242,11 @@ _public_ int sd_bus_emit_properties_chan + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); + assert_return(interface_name_is_valid(interface), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (!name) + return 0; + +@@ -2361,9 +2364,11 @@ _public_ int sd_bus_emit_interfaces_adde + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (strv_isempty(interfaces)) + return 0; + +@@ -2421,9 +2426,11 @@ _public_ int sd_bus_emit_interfaces_adde + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + interfaces = strv_from_stdarg_alloca(interface); + + return sd_bus_emit_interfaces_added_strv(bus, path, interfaces); +@@ -2435,9 +2442,11 @@ _public_ int sd_bus_emit_interfaces_remo + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (strv_isempty(interfaces)) + return 0; + +@@ -2461,9 +2470,11 @@ _public_ int sd_bus_emit_interfaces_remo + + assert_return(bus, -EINVAL); + assert_return(object_path_is_valid(path), -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + interfaces = strv_from_stdarg_alloca(interface); + + return sd_bus_emit_interfaces_removed_strv(bus, path, interfaces); +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c 2014-03-28 12:19:27.146736146 +0000 +@@ -1592,10 +1592,12 @@ static int bus_send_internal(sd_bus *bus + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (m->n_fds > 0) { + r = sd_bus_can_send(bus, SD_BUS_TYPE_UNIX_FD); + if (r < 0) +@@ -1671,10 +1673,12 @@ _public_ int sd_bus_send_to(sd_bus *bus, + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + if (!streq_ptr(m->destination, destination)) { + + if (!destination) +@@ -1726,13 +1730,15 @@ _public_ int sd_bus_call_async( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); + assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); + assert_return(callback, -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = hashmap_ensure_allocated(&bus->reply_callbacks, uint64_hash_func, uint64_compare_func); + if (r < 0) + return r; +@@ -1839,13 +1845,15 @@ _public_ int sd_bus_call( + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(m, -EINVAL); + assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); + assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); + assert_return(!bus_error_is_dirty(error), -EINVAL); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; ++ + r = bus_ensure_running(bus); + if (r < 0) + return r; +@@ -1971,9 +1979,11 @@ _public_ int sd_bus_get_events(sd_bus *b + int flags = 0; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) ++ return -ENOTCONN; ++ + if (bus->state == BUS_OPENING) + flags |= POLLOUT; + else if (bus->state == BUS_AUTHENTICATING) { +@@ -1998,9 +2008,11 @@ _public_ int sd_bus_get_timeout(sd_bus * + + assert_return(bus, -EINVAL); + assert_return(timeout_usec, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); + ++ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) ++ return -ENOTCONN; ++ + if (bus->state == BUS_CLOSING) { + *timeout_usec = 0; + return 1; +@@ -2510,7 +2522,8 @@ static int bus_poll(sd_bus *bus, bool ne + if (bus->state == BUS_CLOSING) + return 1; + +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + e = sd_bus_get_events(bus); + if (e < 0) +@@ -2565,7 +2578,8 @@ _public_ int sd_bus_wait(sd_bus *bus, ui + if (bus->state == BUS_CLOSING) + return 0; + +- assert_return(BUS_IS_OPEN(bus->state) , -ENOTCONN); ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + if (bus->rqueue_size > 0) + return 0; +@@ -2582,7 +2596,8 @@ _public_ int sd_bus_flush(sd_bus *bus) { + if (bus->state == BUS_CLOSING) + return 0; + +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + r = bus_ensure_running(bus); + if (r < 0) +@@ -3058,9 +3073,13 @@ _public_ int sd_bus_get_peer_creds(sd_bu + assert_return(bus, -EINVAL); + assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); + assert_return(ret, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); +- assert_return(!bus->is_kernel, -ENOTSUP); ++ ++ if (!bus->is_kernel) ++ return -ENOTSUP; ++ ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + if (!bus->ucred_valid && !isempty(bus->label)) + return -ENODATA; +@@ -3099,9 +3118,13 @@ _public_ int sd_bus_try_close(sd_bus *bu + int r; + + assert_return(bus, -EINVAL); +- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); + assert_return(!bus_pid_changed(bus), -ECHILD); +- assert_return(bus->is_kernel, -ENOTSUP); ++ ++ if (!bus->is_kernel) ++ return -ENOTSUP; ++ ++ if (!BUS_IS_OPEN(bus->state)) ++ return -ENOTCONN; + + if (bus->rqueue_size > 0) + return -EBUSY; diff --git a/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch b/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch new file mode 100644 index 00000000..13b0da4b --- /dev/null +++ b/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch @@ -0,0 +1,29 @@ +From 9b772efb41c2d9f743ba5e96804bdf89b12630d8 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 19 Nov 2014 20:52:47 +0100 +Subject: [PATCH] sd-bus: refuse properties that claim to be both writable and + constant at the same time + +--- + src/libsystemd/sd-bus/bus-objects.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/libsystemd/sd-bus/bus-objects.c src/libsystemd/sd-bus/bus-objects.c +index 0ab1119..7981d65 100644 +--- src/libsystemd/sd-bus/bus-objects.c ++++ src/libsystemd/sd-bus/bus-objects.c +@@ -1682,6 +1682,11 @@ static int add_object_vtable_internal( + goto fail; + } + ++ if (v->flags & SD_BUS_VTABLE_PROPERTY_CONST) { ++ r = -EINVAL; ++ goto fail; ++ } ++ + /* Fall through */ + + case _SD_BUS_VTABLE_PROPERTY: { +-- +1.7.9.2 + diff --git a/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch b/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch new file mode 100644 index 00000000..f401411e --- /dev/null +++ b/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch @@ -0,0 +1,46 @@ +From b63c8d4f0364457b0ead8793504012bb7113974f Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 10 Jul 2014 00:47:23 +0200 +Subject: [PATCH] sd-event: always call epoll_ctl() on mask-updates if + edge-triggered + +A call to sd_event_source_set_io_events() skipps calling into the kernel +if the new event-mask matches the old one. This is safe for +level-triggered sources as the kernel moves them onto the ready-list +automatically if events change. However, edge-triggered sources might not +be on the ready-list even though events are present. + +A call to sd_event_source_set_io_events() with EPOLLET set might thus be +used to just move the io-source onto the ready-list so the next poll +will return it again. This is very useful to avoid starvation in +priority-based event queues. + +Imagine a read() loop on an edge-triggered fd. If we cannot read data fast +enough to drain the receive queue, we might decide to skip reading for now +and schedule it for later. On edge-triggered io-sources we have to make +sure it's put on the ready-list so the next dispatch-round will return it +again if it's still the highest priority task. We could make sd-event +handle edge-triggered sources directly and allow marking them ready again. +However, it's much simpler to let the kernel do that for now via +EPOLL_CTL_MOD. +--- + src/libsystemd/sd-event/sd-event.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index 53f1904..a21f7db 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -1282,7 +1282,8 @@ _public_ int sd_event_source_set_io_events(sd_event_source *s, uint32_t events) + assert_return(s->event->state != SD_EVENT_FINISHED, -ESTALE); + assert_return(!event_pid_changed(s->event), -ECHILD); + +- if (s->io.events == events) ++ /* edge-triggered updates are never skipped, so we can reset edges */ ++ if (s->io.events == events && !(events & EPOLLET)) + return 0; + + if (s->enabled != SD_EVENT_OFF) { +-- +1.7.9.2 + diff --git a/0003-sd-journal-properly-convert-object-size-on-big-endia.patch b/0003-sd-journal-properly-convert-object-size-on-big-endia.patch new file mode 100644 index 00000000..40e8d57c --- /dev/null +++ b/0003-sd-journal-properly-convert-object-size-on-big-endia.patch @@ -0,0 +1,39 @@ +From 57cd09acf2c63a414aa2131c00a2b3f600eb0133 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 23 Aug 2014 22:35:03 -0400 +Subject: [PATCH] sd-journal: properly convert object->size on big endian + +mmap code crashes when attempting to map an object of zero size. + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758392 +https://bugs.freedesktop.org/show_bug.cgi?id=82894 +--- + src/journal/journal-file.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git src/journal/journal-file.h src/journal/journal-file.h +index 3d41682..da2ef3b 100644 +--- src/journal/journal-file.h ++++ src/journal/journal-file.h +@@ -214,14 +214,15 @@ static unsigned type_to_context(int type) { + + static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset) { + unsigned context = type_to_context(o->object.type); ++ uint64_t s = le64toh(o->object.size); + + return mmap_cache_get(f->mmap, f->fd, f->prot, context, true, +- offset, o->object.size, &f->last_stat, NULL); ++ offset, s, &f->last_stat, NULL); + } + + static inline int journal_file_object_release(JournalFile *f, Object *o, uint64_t offset) { + unsigned context = type_to_context(o->object.type); ++ uint64_t s = le64toh(o->object.size); + +- return mmap_cache_release(f->mmap, f->fd, f->prot, context, +- offset, o->object.size); ++ return mmap_cache_release(f->mmap, f->fd, f->prot, context, offset, s); + } +-- +1.7.9.2 + diff --git a/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch b/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch new file mode 100644 index 00000000..7aa3506a --- /dev/null +++ b/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch @@ -0,0 +1,39 @@ +From 0ffce503cd6e5a5ff5ba5cd1cc23684cfb8bb9e3 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Thu, 30 Oct 2014 20:12:05 -0400 +Subject: [PATCH] shared/install: avoid prematurely rejecting "missing" units + +f7101b7368df copied some logic to prevent enabling masked units, but +also added a check which causes attempts to enable templated units to +fail. Since we know the logic beyond this check will properly handle +units which truly do not exist, we can rely on the unit file state +comparison to suffice for expressing the intent of f7101b7368df. + +ref: https://bugs.archlinux.org/task/42616 +--- + src/shared/install.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git src/shared/install.c src/shared/install.c +index 035b44c..cab93e8 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -1620,12 +1620,10 @@ int unit_file_enable( + STRV_FOREACH(i, files) { + UnitFileState state; + ++ /* We only want to know if this unit is masked, so we ignore ++ * errors from unit_file_get_state, deferring other checks. ++ * This allows templated units to be enabled on the fly. */ + state = unit_file_get_state(scope, root_dir, *i); +- if (state < 0) { +- log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); +- return state; +- } +- + if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { + log_error("Failed to enable unit: Unit %s is masked", *i); + return -ENOTSUP; +-- +1.7.9.2 + diff --git a/0003-systemd-use-pager-for-test-and-help.patch b/0003-systemd-use-pager-for-test-and-help.patch new file mode 100644 index 00000000..a22e0b9d --- /dev/null +++ b/0003-systemd-use-pager-for-test-and-help.patch @@ -0,0 +1,111 @@ +From b87c2aa6bf1247c298c9bd9f56b9b56a87836b2d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 7 Jan 2014 00:00:05 -0500 +Subject: [PATCH] systemd: use pager for --test and --help + +--- + src/core/main.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git src/core/main.c src/core/main.c +index f9ee297..ae38b43 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -50,6 +50,7 @@ + #include "conf-parser.h" + #include "missing.h" + #include "label.h" ++#include "pager.h" + #include "build.h" + #include "strv.h" + #include "def.h" +@@ -94,6 +95,7 @@ static int arg_crash_chvt = -1; + static bool arg_confirm_spawn = false; + static ShowStatus arg_show_status = _SHOW_STATUS_UNSET; + static bool arg_switched_root = false; ++static int arg_no_pager = -1; + static char ***arg_join_controllers = NULL; + static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL; + static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT; +@@ -117,6 +119,14 @@ static bool arg_default_memory_accounting = false; + + static void nop_handler(int sig) {} + ++static void pager_open_if_enabled(void) { ++ ++ if (arg_no_pager <= 0) ++ return; ++ ++ pager_open(false); ++} ++ + noreturn static void crash(int sig) { + + if (getpid() != 1) +@@ -704,6 +714,7 @@ static int parse_argv(int argc, char *argv[]) { + ARG_SYSTEM, + ARG_USER, + ARG_TEST, ++ ARG_NO_PAGER, + ARG_VERSION, + ARG_DUMP_CONFIGURATION_ITEMS, + ARG_DUMP_CORE, +@@ -725,6 +736,7 @@ static int parse_argv(int argc, char *argv[]) { + { "system", no_argument, NULL, ARG_SYSTEM }, + { "user", no_argument, NULL, ARG_USER }, + { "test", no_argument, NULL, ARG_TEST }, ++ { "no-pager", no_argument, NULL, ARG_NO_PAGER }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, ARG_VERSION }, + { "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS }, +@@ -832,6 +844,12 @@ static int parse_argv(int argc, char *argv[]) { + + case ARG_TEST: + arg_action = ACTION_TEST; ++ if (arg_no_pager < 0) ++ arg_no_pager = true; ++ break; ++ ++ case ARG_NO_PAGER: ++ arg_no_pager = true; + break; + + case ARG_VERSION: +@@ -912,6 +930,8 @@ static int parse_argv(int argc, char *argv[]) { + + case 'h': + arg_action = ACTION_HELP; ++ if (arg_no_pager < 0) ++ arg_no_pager = true; + break; + + case 'D': +@@ -984,6 +1004,7 @@ static int help(void) { + "Starts up and maintains the system or user services.\n\n" + " -h --help Show this help\n" + " --test Determine startup sequence, dump it and exit\n" ++ " --no-pager Do not pipe output into a pager\n" + " --dump-configuration-items Dump understood unit configuration items\n" + " --unit=UNIT Set default unit\n" + " --system Run a system instance, even if PID != 1\n" +@@ -1452,6 +1473,8 @@ int main(int argc, char *argv[]) { + goto finish; + } + ++ pager_open_if_enabled(); ++ + if (arg_action == ACTION_HELP) { + retval = help(); + goto finish; +@@ -1798,6 +1821,8 @@ int main(int argc, char *argv[]) { + } + + finish: ++ pager_close(); ++ + if (m) { + manager_free(m); + m = NULL; +-- +1.7.9.2 + diff --git a/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch b/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch new file mode 100644 index 00000000..17cd7d1a --- /dev/null +++ b/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch @@ -0,0 +1,25 @@ +Based on 65de0395ffe1cfb0f9af86504e8588fb31bb0fbc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 19:08:22 +0200 +Subject: [PATCH] time: earlier exit from format_timestamp_relative() on + special times + +--- + src/shared/time-util.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- src/shared/time-util.c ++++ src/shared/time-util.c 2014-10-29 14:07:28.479838096 +0000 +@@ -194,11 +194,10 @@ char *format_timestamp_relative(char *bu + const char *s; + usec_t n, d; + +- n = now(CLOCK_REALTIME); +- + if (t <= 0 || (t == (usec_t) -1)) + return NULL; + ++ n = now(CLOCK_REALTIME); + if (n > t) { + d = n - t; + s = "ago"; diff --git a/0003-tty-ask-password-agent-return-negative-errno.patch b/0003-tty-ask-password-agent-return-negative-errno.patch new file mode 100644 index 00000000..9f839a7f --- /dev/null +++ b/0003-tty-ask-password-agent-return-negative-errno.patch @@ -0,0 +1,29 @@ +From ee0e4cca5ac37a094dfe1074907dae70c7b7701c Mon Sep 17 00:00:00 2001 +From: Florian Albrechtskirchinger +Date: Thu, 3 Apr 2014 21:17:20 +0200 +Subject: [PATCH] tty-ask-password-agent: return negative errno + +Return negative errno in wall_tty_block(). get_ctty_devnr() already +returns a negative errno in case of failure, no need to negate it again. + +Reported-by: Simon +--- + .../tty-ask-password-agent.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 1d067af..3203474 100644 +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -432,7 +432,7 @@ static int wall_tty_block(void) { + + r = get_ctty_devnr(0, &devnr); + if (r < 0) +- return -r; ++ return r; + + if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0) + return -ENOMEM; +-- +1.7.9.2 + diff --git a/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch b/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch new file mode 100644 index 00000000..bad29c52 --- /dev/null +++ b/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch @@ -0,0 +1,27 @@ +From 3f796750b192e62701e91a95f85389f876d1059b Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 17 Sep 2014 21:44:56 +0200 +Subject: [PATCH] udev: event - explicitly don't read() from invalid fd + +This fixes CID #1237641. +--- + src/udev/udev-event.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/udev/udev-event.c src/udev/udev-event.c +index 6b8b5a8..c8b1420 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -494,6 +494,9 @@ static void spawn_read(struct udev_event *event, + for (i = 0; i < fdcount; i++) { + int *fd = (int *)ev[i].data.ptr; + ++ if (*fd < 0) ++ continue; ++ + if (ev[i].events & EPOLLIN) { + ssize_t count; + char buf[4096]; +-- +1.7.9.2 + diff --git a/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch b/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch new file mode 100644 index 00000000..5f466ea6 --- /dev/null +++ b/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch @@ -0,0 +1,26 @@ +Based on 497d1986c13032f1ef8f4592bb7ed8d3aa321a47 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 20 Jun 2014 00:15:39 +0200 +Subject: [PATCH] units: order systemd-tmpfiles-clean.service after + time-sync.target + +That way, on systems lacking an RTC we don't false start removing aged +files too early. +--- + units/systemd-tmpfiles-clean.service.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- units/systemd-tmpfiles-clean.service.in ++++ units/systemd-tmpfiles-clean.service.in 2014-06-24 10:47:57.398235644 +0000 +@@ -10,8 +10,9 @@ Description=Cleanup of Temporary Directo + Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) + DefaultDependencies=no + Wants=local-fs.target +-After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target +-Before=sysinit.target shutdown.target ++Conflicts=shutdown.target ++After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target ++Before=shutdown.target + ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/etc/tmpfiles.d diff --git a/0003-units-remove-RefuseManualStart-from-units-which-are-.patch b/0003-units-remove-RefuseManualStart-from-units-which-are-.patch new file mode 100644 index 00000000..d9ffedbf --- /dev/null +++ b/0003-units-remove-RefuseManualStart-from-units-which-are-.patch @@ -0,0 +1,65 @@ +Based on 0fdeb6e011dfdb17636c81e2d7e0d632186359ce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 28 Jun 2014 00:06:30 -0400 +Subject: [PATCH] units: remove RefuseManualStart from units which are always + around + +In a normal running system, non-passive targets and units used during +early bootup are always started. So refusing "manual start" for them +doesn't make any difference, because a "start" command doesn't cause +any action. + +In early boot however, the administrator might want to start on +of those targets or services by hand. We shouldn't interfere with that. + +Note: in case of systemd-tmpfiles-setup.service, really running the +unit after system is up would break the system. So e.g. restarting +should not be allowed. The unit has "RefuseManualStop=yes", which +prevents restart too. +--- + units/basic.target | 1 - + units/sysinit.target | 1 - + units/systemd-tmpfiles-setup.service.in | 1 - + units/user/basic.target | 1 - + 4 files changed, 4 deletions(-) + +diff --git units/basic.target units/basic.target +index d7c68f4..b890d48 100644 +--- units/basic.target ++++ units/basic.target +@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) + Requires=sysinit.target + Wants=sockets.target timers.target paths.target slices.target + After=sysinit.target sockets.target timers.target paths.target slices.target +-RefuseManualStart=yes +diff --git units/sysinit.target units/sysinit.target +index 8f4fb8f..ec33503 100644 +--- units/sysinit.target ++++ units/sysinit.target +@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) + Conflicts=emergency.service emergency.target + Wants=local-fs.target swap.target + After=local-fs.target swap.target emergency.service emergency.target +-RefuseManualStart=yes +--- units/systemd-tmpfiles-setup.service.in ++++ units/systemd-tmpfiles-setup.service.in 2014-07-01 12:17:48.154235348 +0000 +@@ -18,7 +18,6 @@ ConditionDirectoryNotEmpty=|/lib/tmpfile + ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/etc/tmpfiles.d + ConditionDirectoryNotEmpty=|/run/tmpfiles.d +-RefuseManualStart=yes + RefuseManualStop=yes + + [Service] +diff --git units/user/basic.target units/user/basic.target +index b74d13c..afc6e93 100644 +--- units/user/basic.target ++++ units/user/basic.target +@@ -10,4 +10,3 @@ Description=Basic System + Documentation=man:systemd.special(7) + Wants=sockets.target timers.target paths.target + After=sockets.target timers.target paths.target +-RefuseManualStart=yes +-- +1.7.9.2 + diff --git a/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch b/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch new file mode 100644 index 00000000..15c8d7f5 --- /dev/null +++ b/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch @@ -0,0 +1,26 @@ +From d8e40d62ab871a87fde421c4b246bb45bc3cbe2d Mon Sep 17 00:00:00 2001 +From: Jonathan Liu +Date: Thu, 29 May 2014 01:17:25 +1000 +Subject: [PATCH] units: use KillMode=mixed for systemd-nspawn@.service + +This causes the container to shut down cleanly when the service is +stopped. +--- + units/systemd-nspawn@.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git units/systemd-nspawn@.service.in units/systemd-nspawn@.service.in +index ff36e90..e373628 100644 +--- units/systemd-nspawn@.service.in ++++ units/systemd-nspawn@.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-nspawn(1) + + [Service] + ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i ++KillMode=mixed + Type=notify + + [Install] +-- +1.7.9.2 + diff --git a/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch b/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch new file mode 100644 index 00000000..bc69be20 --- /dev/null +++ b/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch @@ -0,0 +1,29 @@ +Based on 144b3d9e093dd9310cd9590bec039dc43a7e2ad6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 7 Nov 2014 16:34:00 +0100 +Subject: [PATCH] utf8: when looking at the next unichar, honour the size + parameter, in utf8_is_printable_newline() + +--- + src/shared/utf8.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- src/shared/utf8.c ++++ src/shared/utf8.c 2014-11-10 14:20:28.094539264 +0000 +@@ -143,9 +143,14 @@ bool utf8_is_printable_newline(const cha + + for (p = (const uint8_t*) str; length;) { + int encoded_len = utf8_encoded_valid_unichar((const char *)p); +- int val = utf8_encoded_to_unichar((const char*)p); ++ int val; + +- if (encoded_len < 0 || val < 0 || is_unicode_control(val) || ++ if (encoded_len < 0 || ++ (size_t) encoded_len > length) ++ return false; ++ ++ val = utf8_encoded_to_unichar((const char*)p); ++ if (val < 0 || is_unicode_control(val) || + (!newline && val == '\n')) + return false; + diff --git a/0004-Raise-level-of-Found-dependency.-lines.patch b/0004-Raise-level-of-Found-dependency.-lines.patch new file mode 100644 index 00000000..3ae2e49e --- /dev/null +++ b/0004-Raise-level-of-Found-dependency.-lines.patch @@ -0,0 +1,42 @@ +From 14fe721b5f6d8457cc8737fa75f2ed79e7fa534b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 12:10:42 -0500 +Subject: [PATCH] Raise level of 'Found dependency...' lines + +This way they always show up together with 'Found ordering cycle...'. +Ordering cycles are a serious error and a major pain to debug. If +quiet is enabled, only the first and the last line of output are +shown: + +systemd[1]: Found ordering cycle on basic.target/start +systemd[1]: Breaking ordering cycle by deleting job timers.target/start +systemd[1]: Job timers.target/start deleted to break ordering cycle starting with basic.target/start + +which isn't particularly enlightening. So just show the whole message +at the same level. + +https://bugzilla.redhat.com/show_bug.cgi?id=1158206 +--- + src/core/transaction.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/core/transaction.c src/core/transaction.c +index 488cb86..bbaa6da 100644 +--- src/core/transaction.c ++++ src/core/transaction.c +@@ -376,9 +376,9 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi + for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { + + /* logging for j not k here here to provide consistent narrative */ +- log_info_unit(j->unit->id, +- "Found dependency on %s/%s", +- k->unit->id, job_type_to_string(k->type)); ++ log_warning_unit(j->unit->id, ++ "Found dependency on %s/%s", ++ k->unit->id, job_type_to_string(k->type)); + + if (!delete && hashmap_get(tr->jobs, k->unit) && + !unit_matters_to_anchor(k->unit, k)) { +-- +1.7.9.2 + diff --git a/0004-architecture-remove-cris-from-uname-list.patch b/0004-architecture-remove-cris-from-uname-list.patch new file mode 100644 index 00000000..dc1aa466 --- /dev/null +++ b/0004-architecture-remove-cris-from-uname-list.patch @@ -0,0 +1,27 @@ +From bc4bc52bc3de56405045b0437e145a7067fb085d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 22:52:44 +0200 +Subject: [PATCH] architecture: remove "cris" from uname list + +the only correct name appears to be "crisv32"... + +http://lists.freedesktop.org/archives/systemd-devel/2014-July/020899.html +--- + src/shared/architecture.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/shared/architecture.c src/shared/architecture.c +index 7dd049a..6cdca4e 100644 +--- src/shared/architecture.c ++++ src/shared/architecture.c +@@ -115,7 +115,6 @@ Architecture uname_architecture(void) { + #elif defined(__tilegx__) + { "tilegx", ARCHITECTURE_TILEGX }, + #elif defined(__cris__) +- { "cris", ARCHITECTURE_CRIS }, + { "crisv32", ARCHITECTURE_CRIS }, + #else + #error "Please register your architecture here!" +-- +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 00000000..281f7b5c --- /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/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch b/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch new file mode 100644 index 00000000..d0ec9ec8 --- /dev/null +++ b/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch @@ -0,0 +1,40 @@ +From c7fdf44d08e1217d40dc092fb90a65978a0f541f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 23 Apr 2014 06:55:54 +0200 +Subject: [PATCH] backlight: warn if kernel exposes backlight device with + bogus max_brightness + +We shouldn't silently tape over broken kernel drivers. +--- + src/backlight/backlight.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 754a646..c708391 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device *device) { + + max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); + if (!max_brightness_str) { +- log_warning("Failed to read 'max_brightness' attribute"); ++ log_warning("Failed to read 'max_brightness' attribute."); + return 0; + } + + r = safe_atou(max_brightness_str, &max_brightness); + if (r < 0) { +- log_warning("Failed to parse 'max_brightness' \"%s\": %s", +- max_brightness_str, strerror(-r)); ++ log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r)); ++ return 0; ++ } ++ ++ if (max_brightness <= 0) { ++ log_warning("Maximum brightness is 0, ignoring device."); + return 0; + } + +-- +1.7.9.2 + diff --git a/0004-bash-completion-use-list-unit-files-to-get-all-units.patch b/0004-bash-completion-use-list-unit-files-to-get-all-units.patch new file mode 100644 index 00000000..b5ab5359 --- /dev/null +++ b/0004-bash-completion-use-list-unit-files-to-get-all-units.patch @@ -0,0 +1,39 @@ +Based on c6a373a26348544d944b08bf0c5dea4f72f6980b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 26 Jul 2014 20:11:58 -0400 +Subject: [PATCH] bash-completion: use list-unit-files to get "all" units + +I think that it is better to return good results slightly more slowly, +than partial quickly. Also reading from disk seems fast enough. Even +the delay on first try with completely cold cache is acceptable. + +This is just for bash, 'cause zsh was already doing this. + +https://bugzilla.redhat.com/show_bug.cgi?id=790768 +--- + shell-completion/bash/systemctl.in | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in +index c5950cc..69ef04b 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -51,11 +51,13 @@ __filter_units_by_property () { + done + } + +-__get_all_units () { __systemctl $1 list-units --all \ ++__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ + | { while read -r a b; do echo " $a"; done; }; } + __get_active_units () { __systemctl $1 list-units \ + | { while read -r a b; do echo " $a"; done; }; } +-__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ ++__get_startable_units () { { ++ __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap ++ __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ + | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } + __get_failed_units () { __systemctl $1 list-units \ + | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } +-- +1.7.9.2 + diff --git a/0004-bootchart-check-return-of-strftime.patch b/0004-bootchart-check-return-of-strftime.patch new file mode 100644 index 00000000..a629c9e9 --- /dev/null +++ b/0004-bootchart-check-return-of-strftime.patch @@ -0,0 +1,63 @@ +From e931d3f4241231e4102eda06adaf7cbfd68c6a5d Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 27 Sep 2014 22:25:07 +0200 +Subject: [PATCH] bootchart: check return of strftime + +Found by coverity. Fixes: CID#996314 and #996312 +--- + src/bootchart/bootchart.c | 8 ++++++-- + src/bootchart/svg.c | 5 +++-- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c +index 8ef5ad1..366a5ab 100644 +--- src/bootchart/bootchart.c ++++ src/bootchart/bootchart.c +@@ -389,7 +389,9 @@ int main(int argc, char *argv[]) { + + if (!of && (access(arg_output_path, R_OK|W_OK|X_OK) == 0)) { + t = time(NULL); +- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ assert_se(r > 0); ++ + snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); + of = fopen(output_file, "we"); + } +@@ -457,7 +459,9 @@ int main(int argc, char *argv[]) { + + if (!of) { + t = time(NULL); +- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); ++ assert_se(r > 0); ++ + snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); + of = fopen(output_file, "we"); + } +diff --git src/bootchart/svg.c src/bootchart/svg.c +index 135883f..faf377e 100644 +--- src/bootchart/svg.c ++++ src/bootchart/svg.c +@@ -162,7 +162,7 @@ static void svg_title(const char *build) { + char *c; + FILE *f; + time_t t; +- int fd; ++ int fd, r; + struct utsname uts; + + /* grab /proc/cmdline */ +@@ -196,7 +196,8 @@ static void svg_title(const char *build) { + + /* date */ + t = time(NULL); +- strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); ++ r = strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); ++ assert_se(r > 0); + + /* CPU type */ + fd = openat(procfd, "cpuinfo", O_RDONLY); +-- +1.7.9.2 + diff --git a/0004-config-parser-fix-mem-leak.patch b/0004-config-parser-fix-mem-leak.patch new file mode 100644 index 00000000..b45d89c0 --- /dev/null +++ b/0004-config-parser-fix-mem-leak.patch @@ -0,0 +1,24 @@ +From 9e60277835e61597011358afcdbfb3dd712ce128 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sun, 31 Aug 2014 23:13:12 +0200 +Subject: [PATCH] config-parser: fix mem leak + +--- + src/shared/conf-parser.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index 439cfc5..ee6de65 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c +@@ -710,6 +710,7 @@ int config_parse_strv(const char *unit, + + if (!utf8_is_valid(n)) { + log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); ++ free(n); + continue; + } + +-- +1.7.9.2 + diff --git a/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch b/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch new file mode 100644 index 00000000..3ae99a64 --- /dev/null +++ b/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch @@ -0,0 +1,67 @@ +Based on 4774e357268e4a1e9fa82adb0563a538932a4c8e Mon Sep 17 00:00:00 2001 +From: Miguel Angel Ajo +Date: Mon, 7 Jul 2014 14:20:36 +0200 +Subject: [PATCH] core: Added support for ERRNO NOTIFY_SOCKET message parsing, + and added StatusErrno dbus property along StatusText to + allow notification of numeric status condition while + degraded service operation or any other special situation. + +--- + src/core/dbus-service.c | 1 + + src/core/service.c | 17 +++++++++++++++++ + src/core/service.h | 1 + + 3 files changed, 19 insertions(+) + +diff --git src/core/dbus-service.c src/core/dbus-service.c +index 093289f..5a881e8 100644 +--- src/core/dbus-service.c ++++ src/core/dbus-service.c +@@ -60,6 +60,7 @@ const sd_bus_vtable bus_service_vtable[] = { + SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Service, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("BusName", "s", NULL, offsetof(Service, bus_name), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("StatusText", "s", NULL, offsetof(Service, status_text), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), ++ SD_BUS_PROPERTY("StatusErrno", "i", NULL, offsetof(Service, status_errno), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Service, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + BUS_EXEC_STATUS_VTABLE("ExecMain", offsetof(Service, main_exec_status), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + BUS_EXEC_COMMAND_LIST_VTABLE("ExecStartPre", offsetof(Service, exec_command[SERVICE_EXEC_START_PRE]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION), +diff --git src/core/service.c src/core/service.c +index 0b19767..ace45e2 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -2637,6 +2637,23 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + free(t); + } + ++ /* Interpret ERRNO= */ ++ e = strv_find_prefix(tags, "ERRNO="); ++ if (e) { ++ int status_errno; ++ ++ if (safe_atoi(e + 6, &status_errno) < 0) ++ log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); ++ else { ++ log_debug_unit(u->id, "%s: got %s", u->id, e); ++ ++ if (s->status_errno != status_errno) { ++ s->status_errno = status_errno; ++ notify_dbus = true; ++ } ++ } ++ } ++ + /* Interpret WATCHDOG= */ + if (strv_find(tags, "WATCHDOG=1")) { + log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); +--- src/core/service.h ++++ src/core/service.h 2014-07-08 12:54:39.238736046 +0200 +@@ -187,6 +187,7 @@ struct Service { + char *bus_name; + + char *status_text; ++ int status_errno; + + RateLimit start_limit; + StartLimitAction start_limit_action; +-- +1.7.9.2 + diff --git a/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch b/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch new file mode 100644 index 00000000..17d7f268 --- /dev/null +++ b/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch @@ -0,0 +1,29 @@ +From c4bfd1691f4d3e26d6d7f34dbca941e119956e8a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Mar 2014 21:04:02 +0100 +Subject: [PATCH] core: don't try to relabel mounts before we loaded the + policy + +--- + src/core/mount-setup.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index 147333a..0a45b24 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -172,7 +172,10 @@ static int mount_one(const MountPoint *p, bool relabel) { + + /* The access mode here doesn't really matter too much, since + * the mounted file system will take precedence anyway. */ +- mkdir_p_label(p->where, 0755); ++ if (relabel) ++ mkdir_p_label(p->where, 0755); ++ else ++ mkdir_p(p->where, 0755); + + log_debug("Mounting %s to %s of type %s with options %s.", + p->what, +-- +1.7.9.2 + diff --git a/0004-core-fix-transaction-destructiveness-check-once-more.patch b/0004-core-fix-transaction-destructiveness-check-once-more.patch new file mode 100644 index 00000000..843200c5 --- /dev/null +++ b/0004-core-fix-transaction-destructiveness-check-once-more.patch @@ -0,0 +1,32 @@ +Based on e0312f4db08c7100bd00299614e87bedc759b366 Mon Sep 17 00:00:00 2001 +Based on c21b92ffe7ef939dd32502ac912cf8ad1c5638fd Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Thu, 27 Nov 2014 15:23:58 +0100 +Subject: [PATCH] core: fix transaction destructiveness check once more + +The previous fix e0312f4db "core: fix check for transaction +destructiveness" broke test-engine (noticed by Zbyszek). +Apparently I had a wrong idea of the intended semantics of --fail. + +The manpage says the operation should fail if it "conflicts with a +pending job (more specifically: causes an already pending start job to +be reversed into a stop job or vice versa)". + +So let's check job_type_is_conflicting, instead of !is_superset. + +This makes both test-engine and TEST-03-JOBS pass again. +--- + src/core/transaction.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/transaction.c ++++ src/core/transaction.c 2014-12-15 12:06:11.721518136 +0000 +@@ -510,7 +510,7 @@ static int transaction_is_destructive(Tr + assert(!j->transaction_next); + + if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) && +- !job_type_is_superset(j->type, j->unit->job->type)) { ++ job_type_is_conflicting(j->unit->job->type, j->type)) { + + sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); + return -EEXIST; diff --git a/0004-core-map-the-rescue-argument-to-rescue.target.patch b/0004-core-map-the-rescue-argument-to-rescue.target.patch new file mode 100644 index 00000000..6b639305 --- /dev/null +++ b/0004-core-map-the-rescue-argument-to-rescue.target.patch @@ -0,0 +1,27 @@ +From 5329ab10ffaf5b4a3fd6ebd9380b1ec09d05cfc8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Tue, 7 Oct 2014 14:55:21 +0300 +Subject: [PATCH] core: map the 'rescue' argument to rescue.target + +Even though the 'emergency' and 'single' aliases come from sysvinit, the +lack of 'rescue' is still quite confusing (caught me by surprise for the +9th time yet) and inconsistent with `systemctl rescue` as well. +--- + src/core/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/core/main.c src/core/main.c +index 1a62e04..44373cc 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -272,6 +272,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { + static const char * const rlmap[] = { + "emergency", SPECIAL_EMERGENCY_TARGET, + "-b", SPECIAL_EMERGENCY_TARGET, ++ "rescue", SPECIAL_RESCUE_TARGET, + "single", SPECIAL_RESCUE_TARGET, + "-s", SPECIAL_RESCUE_TARGET, + "s", SPECIAL_RESCUE_TARGET, +-- +1.7.9.2 + diff --git a/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch b/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch new file mode 100644 index 00000000..4bed22a5 --- /dev/null +++ b/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch @@ -0,0 +1,53 @@ +Based on bde29068aa3815c88190a91e9867605a0aeaf9c4 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 23 Jun 2014 19:18:44 +0200 +Subject: [PATCH] cryptsetup: don't add unit dependency on /dev/null devices + when it is listed as password file + +As special magic, don't create device dependencies for /dev/null. Of +course, there might be similar devices we might want to include, but +given that none of them really make sense to specify as password source +there's really no point in checking for anything else here. + +https://bugs.freedesktop.org/show_bug.cgi?id=75816 +--- + src/cryptsetup/cryptsetup-generator.c | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +--- src/cryptsetup/cryptsetup-generator.c ++++ src/cryptsetup/cryptsetup-generator.c 2014-06-25 17:24:14.338237375 +0000 +@@ -29,6 +29,7 @@ + #include "mkdir.h" + #include "strv.h" + #include "fileio.h" ++#include "path-util.h" + + static const char *arg_dest = "/tmp"; + static bool arg_enabled = true; +@@ -141,14 +142,18 @@ static int create_disk( + if (uu == NULL) + return log_oom(); + +- if (is_device_path(uu)) { +- _cleanup_free_ char *dd = unit_name_from_path(uu, ".device"); +- if (dd == NULL) +- return log_oom(); +- +- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); +- } else +- fprintf(f, "RequiresMountsFor=%s\n", password); ++ if (!path_equal(uu, "/dev/null")) { ++ if (is_device_path(uu)) { ++ _cleanup_free_ char *dd; ++ ++ dd = unit_name_from_path(uu, ".device"); ++ if (!dd) ++ return log_oom(); ++ ++ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); ++ } else ++ fprintf(f, "RequiresMountsFor=%s\n", password); ++ } + } + } + diff --git a/0004-fileio-quote-more-shell-characters-in-envfiles.patch b/0004-fileio-quote-more-shell-characters-in-envfiles.patch new file mode 100644 index 00000000..b4cd3e96 --- /dev/null +++ b/0004-fileio-quote-more-shell-characters-in-envfiles.patch @@ -0,0 +1,54 @@ +From 0ce5a80601597fe4d1a715a8f70ce8d5ccaa2d86 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Sun, 13 Jul 2014 18:49:00 +0300 +Subject: [PATCH] fileio: quote more shell characters in envfiles + +Turns out, making strings shell-proof is harder than expected: + + # machinectl set-hostname "foo|poweroff" && . /etc/machine-info + +(This could be simplified by quoting *and* escaping all characters, +which is harmless in shell but unnecessary.) +--- + src/shared/fileio.c | 4 ++-- + src/shared/util.h | 6 ++++++ + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git src/shared/fileio.c src/shared/fileio.c +index b0ab780..cbb40c2 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -738,11 +738,11 @@ static void write_env_var(FILE *f, const char *v) { + p++; + fwrite(v, 1, p-v, f); + +- if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { ++ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE SHELL_NEED_QUOTES)) { + fputc('\"', f); + + for (; *p; p++) { +- if (strchr("\'\"\\`$", *p)) ++ if (strchr(SHELL_NEED_ESCAPE, *p)) + fputc('\\', f); + + fputc(*p, f); +diff --git src/shared/util.h src/shared/util.h +index c5eadc9..b3187a9 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -93,6 +93,12 @@ + #define COMMENTS "#;" + #define GLOB_CHARS "*?[" + ++/* What characters are special in the shell? */ ++/* must be escaped outside and inside double-quotes */ ++#define SHELL_NEED_ESCAPE "\"\\`$" ++/* can be escaped or double-quoted */ ++#define SHELL_NEED_QUOTES SHELL_NEED_ESCAPE GLOB_CHARS "'()<>|&;" ++ + #define FORMAT_BYTES_MAX 8 + + #define ANSI_HIGHLIGHT_ON "\x1B[1;39m" +-- +1.7.9.2 + diff --git a/0004-fix-off-by-one-error-in-array-index-assertion.patch b/0004-fix-off-by-one-error-in-array-index-assertion.patch new file mode 100644 index 00000000..9b718e05 --- /dev/null +++ b/0004-fix-off-by-one-error-in-array-index-assertion.patch @@ -0,0 +1,35 @@ +From 26abdc73a212b90f7c4b71808a1028d2e87ab09f Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sat, 8 Mar 2014 17:32:53 -0500 +Subject: [PATCH] fix off by one error in array index assertion + +Since the index is already post-incremented when the array is appended +to, this assertion can be wrongly reached when the array is at capacity +(with the NULL terminator). The bug is reproducible on shutdown with +the following settings in /etc/systemd/system.conf: + + LogTarget=journal-or-kmsg + LogColor=yes + LogLocation=yes + +Reported by Thermi on IRC. +--- + src/core/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/main.c src/core/main.c +index 6ebfe64..f1b06d8 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1994,7 +1994,7 @@ finish: + if (log_get_show_location()) + command_line[pos++] = "--log-location"; + +- assert(pos + 1 < ELEMENTSOF(command_line)); ++ assert(pos < ELEMENTSOF(command_line)); + + if (arm_reboot_watchdog && arg_shutdown_watchdog > 0) { + char *e; +-- +1.7.9.2 + diff --git a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch new file mode 100644 index 00000000..065c0ea9 --- /dev/null +++ b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch @@ -0,0 +1,22 @@ +From b3e4387351c835766f96796a20d94971afea7d3b Mon Sep 17 00:00:00 2001 +From: Tomasz Torcz +Date: Tue, 25 Feb 2014 12:43:55 +0100 +Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac + +--- + hwdb/20-net-ifname.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/20-net-ifname.hwdb hwdb/20-net-ifname.hwdb +index 29d2633..2408dc1 100644 +--- hwdb/20-net-ifname.hwdb ++++ hwdb/20-net-ifname.hwdb +@@ -2,4 +2,4 @@ + + # Dell iDRAC Virtual USB NIC + usb:v413CpA102* +- ID_NET_NAME_FROM_DATABASE=irdac ++ ID_NET_NAME_FROM_DATABASE=idrac +-- +1.7.9.2 + diff --git a/0004-getty-generator-properly-escape-instance-names.patch b/0004-getty-generator-properly-escape-instance-names.patch new file mode 100644 index 00000000..26feb694 --- /dev/null +++ b/0004-getty-generator-properly-escape-instance-names.patch @@ -0,0 +1,39 @@ +From a2ae516a25dafe41e0cd296ab7b5d022fa62b95f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 19 Jun 2014 22:02:55 -0400 +Subject: [PATCH] getty-generator: properly escape instance names + +Otherwise the add_symlink() function tries to make directories for +each slash even for the slash after the @ symbol in the final link +name, failing for /dev/3270/tty1. + +Based on a patch by Werner Fink . +--- + src/getty-generator/getty-generator.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/getty-generator/getty-generator.c src/getty-generator/getty-generator.c +index 35cd858..7d4b546 100644 +--- src/getty-generator/getty-generator.c ++++ src/getty-generator/getty-generator.c +@@ -67,7 +67,7 @@ static int add_serial_getty(const char *tty) { + + log_debug("Automatically adding serial getty for /dev/%s.", tty); + +- n = unit_name_replace_instance("serial-getty@.service", tty); ++ n = unit_name_from_path_instance("serial-getty", tty, ".service"); + if (!n) + return log_oom(); + +@@ -81,7 +81,7 @@ static int add_container_getty(const char *tty) { + + log_debug("Automatically adding container getty for /dev/pts/%s.", tty); + +- n = unit_name_replace_instance("container-getty@.service", tty); ++ n = unit_name_from_path_instance("container-getty", tty, ".service"); + if (!n) + return log_oom(); + +-- +1.7.9.2 + diff --git a/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..7ae03b91 --- /dev/null +++ b/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,50 @@ +From b189101727e80a09864c5e5880663ef565467f19 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Sat, 12 Apr 2014 10:38:16 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index b928f5a..28aa2a7 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -733,7 +733,7 @@ bluetooth:v00F1* + ID_VENDOR_FROM_DATABASE=Witron Technology Limited + + bluetooth:v00F2* +- ID_VENDOR_FROM_DATABASE=Morse Project Inc. ++ ID_VENDOR_FROM_DATABASE=Aether Things Inc. (formerly Morse Project Inc.) + + bluetooth:v00F3* + ID_VENDOR_FROM_DATABASE=Kent Displays Inc. +@@ -941,3 +941,24 @@ bluetooth:v0136* + + bluetooth:v0137* + ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. ++ ++bluetooth:v0138* ++ ID_VENDOR_FROM_DATABASE=NTEO Inc. ++ ++bluetooth:v0139* ++ ID_VENDOR_FROM_DATABASE=Focus Systems Corporation ++ ++bluetooth:v013A* ++ ID_VENDOR_FROM_DATABASE=Tencent Holdings Limited ++ ++bluetooth:v013B* ++ ID_VENDOR_FROM_DATABASE=Allegion ++ ++bluetooth:v013C* ++ ID_VENDOR_FROM_DATABASE=Murata Manufacuring Co., Ltd. ++ ++bluetooth:v013D* ++ ID_VENDOR_FROM_DATABASE=WirelessWERX ++ ++bluetooth:v013E* ++ ID_VENDOR_FROM_DATABASE=nimai +-- +1.7.9.2 + diff --git a/0004-hwdb-update-format-description-and-document-reloadin.patch b/0004-hwdb-update-format-description-and-document-reloadin.patch new file mode 100644 index 00000000..a65a46f0 --- /dev/null +++ b/0004-hwdb-update-format-description-and-document-reloadin.patch @@ -0,0 +1,60 @@ +From fa9d4be3f1f4a792b2f3624c2a08fe9cc6ce6e54 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 7 Aug 2014 21:48:57 -0400 +Subject: [PATCH] hwdb: update format description and document reloading + +https://bugs.freedesktop.org/show_bug.cgi?id=82311 +--- + hwdb/60-keyboard.hwdb | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 5c3d4ca..ef0ebc5 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -28,19 +28,33 @@ + # driver, is the firmware-provided string exported + # by the kernel DMI modalias. + # +-# Scan codes are specified as: +-# KEYBOARD_KEY_= +-# The scan code should be expressed in hex lowercase and in +-# full bytes, a multiple of 2 digits. The key codes are retrieved +-# and normalized from the kernel input API header. ++# Scan codes are specified as: ++# KEYBOARD_KEY_= ++# The scan code should be expressed in hex lowercase. The key codes ++# are retrieved and normalized from the kernel input API header. + # +-# A '!' as the first charcter of the key identifier string +-# will add the scan code to the AT keyboard's list of scan codes +-# where the driver will synthesize a release event and not expect +-# it to be generated by the hardware. ++# An '!' as the first character of the key identifier string ++# will add the scan code to the AT keyboard's list of scan codes ++# where the driver will synthesize a release event and not expect ++# it to be generated by the hardware. + # + # To debug key presses and access scan code mapping data of + # an input device use the commonly available tool: evtest(1). ++# ++# To update this file, create a new file ++# /etc/udev/hwdb.d/70-keyboad.hwdb ++# and add your rules there. To load the new rules execute (as root): ++# udevadm hwdb --update ++# udevadm trigger /dev/input/eventXX ++# where /dev/input/eventXX is the keyboard in question. If in ++# doubt, simply use /dev/input/event* to reload all input rules. ++# ++# If your changes are generally applicable, open a bug report on ++# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd ++# and include your new rules, a description of the device, and the ++# output of ++# udevadm info /dev/input/eventXX ++# (or /dev/input/event*). + + ########################################## + # Acer +-- +1.7.9.2 + diff --git a/0004-hwdb-update.patch b/0004-hwdb-update.patch new file mode 100644 index 00000000..572bcd32 --- /dev/null +++ b/0004-hwdb-update.patch @@ -0,0 +1,3964 @@ +From 61fb23db45c626d92b4e33f09b9287f58a3625a5 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 5 May 2014 14:23:10 +0200 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 295 +++++++++++- + hwdb/20-pci-vendor-model.hwdb | 174 ++++++-- + hwdb/20-usb-vendor-model.hwdb | 992 +++++++++++++++++++++++++++++++++++++++-- + 3 files changed, 1368 insertions(+), 93 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 17794ed..afc0d90 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -13940,7 +13940,7 @@ OUI:000063* + ID_OUI_FROM_DATABASE=BARCO CONTROL ROOMS GMBH + + OUI:000064* +- ID_OUI_FROM_DATABASE=YOKOGAWA DIGITAL COMPUTER CORP ++ ID_OUI_FROM_DATABASE=Yokogawa Electric Corporation + + OUI:000065* + ID_OUI_FROM_DATABASE=Network General Corporation +@@ -14927,7 +14927,7 @@ OUI:0001AE* + ID_OUI_FROM_DATABASE=Trex Enterprises + + OUI:0001AF* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:0001B0* + ID_OUI_FROM_DATABASE=Fulltek Technology Co., Ltd. +@@ -18272,7 +18272,7 @@ OUI:00060A* + ID_OUI_FROM_DATABASE=Blue2space + + OUI:00060B* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:00060C* + ID_OUI_FROM_DATABASE=Melco Industries, Inc. +@@ -20441,7 +20441,7 @@ OUI:0008F8* + ID_OUI_FROM_DATABASE=UTC CCS + + OUI:0008F9* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:0008FA* + ID_OUI_FROM_DATABASE=Karl E.Brinkmann GmbH +@@ -46612,6 +46612,9 @@ OUI:0064A6* + OUI:00664B* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:006B8E* ++ ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. ++ + OUI:006B9E* + ID_OUI_FROM_DATABASE=VIZIO Inc + +@@ -46850,7 +46853,7 @@ OUI:008041* + ID_OUI_FROM_DATABASE=VEB KOMBINAT ROBOTRON + + OUI:008042* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:008043* + ID_OUI_FROM_DATABASE=NETWORLD, INC. +@@ -49919,7 +49922,7 @@ OUI:00C0F8* + ID_OUI_FROM_DATABASE=ABOUT COMPUTING INC. + + OUI:00C0F9* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:00C0FA* + ID_OUI_FROM_DATABASE=CANARY COMMUNICATIONS, INC. +@@ -50957,7 +50960,7 @@ OUI:00E034* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:00E035* +- ID_OUI_FROM_DATABASE=Emerson Network Power ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:00E036* + ID_OUI_FROM_DATABASE=PIONEER CORPORATION +@@ -52477,6 +52480,9 @@ OUI:0838A5* + OUI:083AB8* + ID_OUI_FROM_DATABASE=Shinoda Plasma Co., Ltd. + ++OUI:083D88* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:083E0C* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -52495,9 +52501,6 @@ OUI:084027* + OUI:08482C* + ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. + +-OUI:084929* +- ID_OUI_FROM_DATABASE=CYBATI +- + OUI:084E1C* + ID_OUI_FROM_DATABASE=H2A Systems, LLC + +@@ -52867,6 +52870,9 @@ OUI:0C8910* + OUI:0C8BFD* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:0C8C8F* ++ ID_OUI_FROM_DATABASE=Kamo Technology Limited ++ + OUI:0C8CDC* + ID_OUI_FROM_DATABASE=Suunto Oy + +@@ -53515,6 +53521,9 @@ OUI:1499E2* + OUI:149FE8* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:14A364* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:14A62C* + ID_OUI_FROM_DATABASE=S.M. Dezac S.A. + +@@ -54403,6 +54412,9 @@ OUI:20918A* + OUI:2091D9* + ID_OUI_FROM_DATABASE=I'M SPA + ++OUI:20934D* ++ ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd ++ + OUI:209AE9* + ID_OUI_FROM_DATABASE=Volacomm Co., Ltd + +@@ -54598,6 +54610,9 @@ OUI:24470E* + OUI:24497B* + ID_OUI_FROM_DATABASE=Innovative Converged Devices Inc + ++OUI:244F1D* ++ ID_OUI_FROM_DATABASE=iRule LLC ++ + OUI:245FDF* + ID_OUI_FROM_DATABASE=KYOCERA Corporation + +@@ -54751,6 +54766,9 @@ OUI:24DEC6* + OUI:24E271* + ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd + ++OUI:24E314* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:24E6BA* + ID_OUI_FROM_DATABASE=JSC Zavod im. Kozitsky + +@@ -54829,6 +54847,9 @@ OUI:2826A6* + OUI:28285D* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + ++OUI:2829CC* ++ ID_OUI_FROM_DATABASE=Corsa Technology Incorporated ++ + OUI:2829D9* + ID_OUI_FROM_DATABASE=GlobalBeiMing technology (Beijing)Co. Ltd + +@@ -55087,12 +55108,18 @@ OUI:28E14C* + OUI:28E297* + ID_OUI_FROM_DATABASE=Shanghai InfoTM Microelectronics Co.,Ltd. + ++OUI:28E31F* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:28E347* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + + OUI:28E608* + ID_OUI_FROM_DATABASE=Tokheim + ++OUI:28E6E9* ++ ID_OUI_FROM_DATABASE=SIS Sat Internet Services GmbH ++ + OUI:28E794* + ID_OUI_FROM_DATABASE=Microtime Computer Inc. + +@@ -55225,6 +55252,9 @@ OUI:2C534A* + OUI:2C542D* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:2C54CF* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:2C553C* + ID_OUI_FROM_DATABASE=Gainspeed, Inc. + +@@ -55330,6 +55360,9 @@ OUI:2CA835* + OUI:2CAB25* + ID_OUI_FROM_DATABASE=Shenzhen Gongjin Electronics Co.,Ltd + ++OUI:2CABA4* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:2CB05D* + ID_OUI_FROM_DATABASE=NETGEAR + +@@ -55456,6 +55489,9 @@ OUI:303294* + OUI:3032D4* + ID_OUI_FROM_DATABASE=Hanilstm Co., Ltd. + ++OUI:303335* ++ ID_OUI_FROM_DATABASE=Boosty ++ + OUI:3037A6* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -55888,6 +55924,9 @@ OUI:34BA9A* + OUI:34BB1F* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:34BB26* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:34BCA6* + ID_OUI_FROM_DATABASE=Beijing Ding Qing Technology, Ltd. + +@@ -55975,6 +56014,9 @@ OUI:34EF44* + OUI:34EF8B* + ID_OUI_FROM_DATABASE=NTT Communications Corporation + ++OUI:34F0CA* ++ ID_OUI_FROM_DATABASE=Shenzhen Linghangyuan Digital Technology Co.,Ltd. ++ + OUI:34F39B* + ID_OUI_FROM_DATABASE=WizLAN Ltd. + +@@ -56023,6 +56065,9 @@ OUI:381766* + OUI:38192F* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:381C1A* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:381C4A* + ID_OUI_FROM_DATABASE=SIMCom Wireless Solutions Co.,Ltd. + +@@ -56236,6 +56281,9 @@ OUI:38F597* + OUI:38F708* + ID_OUI_FROM_DATABASE=National Resource Management, Inc. + ++OUI:38F889* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:38F8B7* + ID_OUI_FROM_DATABASE=V2COM PARTICIPACOES S.A. + +@@ -56287,6 +56335,9 @@ OUI:3C15C2* + OUI:3C15EA* + ID_OUI_FROM_DATABASE=TESCOM CO., LTD. + ++OUI:3C189F* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:3C18A0* + ID_OUI_FROM_DATABASE=Luxshare Precision Industry Co.,Ltd. + +@@ -56521,6 +56572,9 @@ OUI:3CD7DA* + OUI:3CD92B* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + ++OUI:3CD9CE* ++ ID_OUI_FROM_DATABASE=Eclipse WiFi ++ + OUI:3CDF1E* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -56725,6 +56779,9 @@ OUI:407A80* + OUI:407B1B* + ID_OUI_FROM_DATABASE=Mettle Networks Inc. + ++OUI:408256* ++ ID_OUI_FROM_DATABASE=Continental Automotive GmbH ++ + OUI:4083DE* + ID_OUI_FROM_DATABASE=Motorola + +@@ -56818,6 +56875,9 @@ OUI:40C245* + OUI:40C4D6* + ID_OUI_FROM_DATABASE=ChongQing Camyu Technology Development Co.,Ltd. + ++OUI:40C62A* ++ ID_OUI_FROM_DATABASE=Shanghai Jing Ren Electronic Technology Co., Ltd. ++ + OUI:40C7C9* + ID_OUI_FROM_DATABASE=Naviit Inc. + +@@ -57001,6 +57061,9 @@ OUI:446132* + OUI:44619C* + ID_OUI_FROM_DATABASE=FONsystem co. ltd. + ++OUI:44666E* ++ ID_OUI_FROM_DATABASE=IP-LINE ++ + OUI:446755* + ID_OUI_FROM_DATABASE=Orbit Irrigation + +@@ -57019,6 +57082,9 @@ OUI:44700B* + OUI:447098* + ID_OUI_FROM_DATABASE=MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED + ++OUI:44746C* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:447BC4* + ID_OUI_FROM_DATABASE=DualShine Technology(SZ)Co.,Ltd + +@@ -57079,6 +57145,9 @@ OUI:44A42D* + OUI:44A689* + ID_OUI_FROM_DATABASE=PROMAX ELECTRONICA SA + ++OUI:44A6E5* ++ ID_OUI_FROM_DATABASE=THINKING TECHNOLOGY CO.,LTD ++ + OUI:44A7CF* + ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. + +@@ -57178,6 +57247,9 @@ OUI:48022A* + OUI:480362* + ID_OUI_FROM_DATABASE=DESAY ELECTRONICS(HUIZHOU)CO.,LTD + ++OUI:480C49* ++ ID_OUI_FROM_DATABASE=NAKAYO TELECOMMUNICATIONS,INC ++ + OUI:481249* + ID_OUI_FROM_DATABASE=Luxcom Technologies Inc. + +@@ -57463,6 +57535,9 @@ OUI:4C2258* + OUI:4C2578* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:4C26E7* ++ ID_OUI_FROM_DATABASE=Welgate Co., Ltd. ++ + OUI:4C2C80* + ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd + +@@ -57535,6 +57610,9 @@ OUI:4C63EB* + OUI:4C64D9* + ID_OUI_FROM_DATABASE=Guangdong Leawin Group Co., Ltd + ++OUI:4C6E6E* ++ ID_OUI_FROM_DATABASE=Comnect Technology CO.,LTD ++ + OUI:4C72B9* + ID_OUI_FROM_DATABASE=Pegatron Corporation + +@@ -57565,6 +57643,9 @@ OUI:4C8093* + OUI:4C82CF* + ID_OUI_FROM_DATABASE=Echostar Technologies + ++OUI:4C83DE* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:4C8B30* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + +@@ -57592,6 +57673,9 @@ OUI:4C9E80* + OUI:4C9EE4* + ID_OUI_FROM_DATABASE=Hanyang Navicom Co.,Ltd. + ++OUI:4C9EFF* ++ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp ++ + OUI:4CA56D* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -57775,6 +57859,9 @@ OUI:504A6E* + OUI:504F94* + ID_OUI_FROM_DATABASE=Loxone Electronics GmbH + ++OUI:505065* ++ ID_OUI_FROM_DATABASE=TAKT Corporation ++ + OUI:505663* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -57808,6 +57895,9 @@ OUI:506313* + OUI:506441* + ID_OUI_FROM_DATABASE=Greenlee + ++OUI:506787* ++ ID_OUI_FROM_DATABASE=iTellus ++ + OUI:5067F0* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + +@@ -58693,6 +58783,12 @@ OUI:5CAC4C* + OUI:5CB524* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:5CB6CC* ++ ID_OUI_FROM_DATABASE=NovaComm Technologies Inc. ++ ++OUI:5CB8CB* ++ ID_OUI_FROM_DATABASE=Allis Communications ++ + OUI:5CBD9E* + ID_OUI_FROM_DATABASE=HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED + +@@ -58789,6 +58885,9 @@ OUI:5CF8A1* + OUI:5CF938* + ID_OUI_FROM_DATABASE=Apple, Inc + ++OUI:5CF96A* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:5CF9DD* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -58927,6 +59026,9 @@ OUI:60748D* + OUI:607688* + ID_OUI_FROM_DATABASE=Velodyne + ++OUI:6077E2* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:60812B* + ID_OUI_FROM_DATABASE=Custom Control Concepts + +@@ -59074,6 +59176,9 @@ OUI:60E00E* + OUI:60E327* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:60E701* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:60E956* + ID_OUI_FROM_DATABASE=Ayla Networks, Inc + +@@ -59131,6 +59236,9 @@ OUI:6405BE* + OUI:64094C* + ID_OUI_FROM_DATABASE=Beijing Superbee Wireless Technology Co.,Ltd + ++OUI:640980* ++ ID_OUI_FROM_DATABASE=XIAOMI Electronics,CO.,LTD ++ + OUI:640B4A* + ID_OUI_FROM_DATABASE=Digital Telecom Technology Limited + +@@ -59254,6 +59362,9 @@ OUI:645FFF* + OUI:646223* + ID_OUI_FROM_DATABASE=Cellient Co., Ltd. + ++OUI:64649B* ++ ID_OUI_FROM_DATABASE=juniper networks ++ + OUI:6465C0* + ID_OUI_FROM_DATABASE=Nuvon, Inc + +@@ -59680,6 +59791,9 @@ OUI:689C5E* + OUI:689C70* + ID_OUI_FROM_DATABASE=Apple + ++OUI:68A0F6* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:68A1B7* + ID_OUI_FROM_DATABASE=Honghao Mingchuan Technology (Beijing) CO.,Ltd. + +@@ -60130,6 +60244,9 @@ OUI:702B1D* + OUI:702C1F* + ID_OUI_FROM_DATABASE=Wisol + ++OUI:702DD1* ++ ID_OUI_FROM_DATABASE=Newings Communication CO., LTD. ++ + OUI:702F4B* + ID_OUI_FROM_DATABASE=PolyVision Inc. + +@@ -60211,6 +60328,9 @@ OUI:705986* + OUI:705AB6* + ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. + ++OUI:705B2E* ++ ID_OUI_FROM_DATABASE=M2Communication Inc. ++ + OUI:705CAD* + ID_OUI_FROM_DATABASE=Konami Gaming Inc + +@@ -60568,6 +60688,9 @@ OUI:748EF8* + OUI:748F1B* + ID_OUI_FROM_DATABASE=MasterImage 3D + ++OUI:748F4D* ++ ID_OUI_FROM_DATABASE=MEN Mikro Elektronik GmbH ++ + OUI:749050* + ID_OUI_FROM_DATABASE=Renesas Electronics Corporation + +@@ -60694,6 +60817,9 @@ OUI:74F07D* + OUI:74F102* + ID_OUI_FROM_DATABASE=Beijing HCHCOM Technology Co., Ltd + ++OUI:74F413* ++ ID_OUI_FROM_DATABASE=Maxwell Forest ++ + OUI:74F612* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -61582,6 +61708,9 @@ OUI:806CBC* + OUI:80711F* + ID_OUI_FROM_DATABASE=Juniper Networks + ++OUI:80717A* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:807693* + ID_OUI_FROM_DATABASE=Newag SA + +@@ -61633,6 +61762,9 @@ OUI:80946C* + OUI:8096B1* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:8096CA* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind Co.,Ltd ++ + OUI:80971B* + ID_OUI_FROM_DATABASE=Altenergy Power System,Inc. + +@@ -61699,6 +61831,9 @@ OUI:80D019* + OUI:80D18B* + ID_OUI_FROM_DATABASE=Hangzhou I'converge Technology Co.,Ltd + ++OUI:80D21D* ++ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc ++ + OUI:80D433* + ID_OUI_FROM_DATABASE=LzLabs GmbH + +@@ -62356,6 +62491,9 @@ OUI:8C2F39* + OUI:8C3330* + ID_OUI_FROM_DATABASE=EmFirst Co., Ltd. + ++OUI:8C3357* ++ ID_OUI_FROM_DATABASE=HiteVision Digital Media Technology Co.,Ltd. ++ + OUI:8C3AE3* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -62842,6 +62980,9 @@ OUI:90B134* + OUI:90B21F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:90B686* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:90B8D0* + ID_OUI_FROM_DATABASE=Joyent, Inc. + +@@ -62887,6 +63028,9 @@ OUI:90D92C* + OUI:90DA4E* + ID_OUI_FROM_DATABASE=AVANU + ++OUI:90DA6A* ++ ID_OUI_FROM_DATABASE=MCC System Co., Ltd. ++ + OUI:90DB46* + ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD + +@@ -63100,6 +63244,9 @@ OUI:94ACCA* + OUI:94AE61* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:94AEE3* ++ ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. ++ + OUI:94B8C5* + ID_OUI_FROM_DATABASE=RuggedCom Inc. + +@@ -63151,6 +63298,9 @@ OUI:94CE2C* + OUI:94D019* + ID_OUI_FROM_DATABASE=Cydle Corp. + ++OUI:94D60E* ++ ID_OUI_FROM_DATABASE=shenzhen yunmao information technologies co., ltd ++ + OUI:94D723* + ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd + +@@ -63730,6 +63880,9 @@ OUI:9CC077* + OUI:9CC0D2* + ID_OUI_FROM_DATABASE=Conductix-Wampfler AG + ++OUI:9CC172* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:9CC7A6* + ID_OUI_FROM_DATABASE=AVM GmbH + +@@ -63799,6 +63952,9 @@ OUI:A002DC* + OUI:A00363* + ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH + ++OUI:A00627* ++ ID_OUI_FROM_DATABASE=NEXPA System ++ + OUI:A00798* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -63898,6 +64054,9 @@ OUI:A051C6* + OUI:A055DE* + ID_OUI_FROM_DATABASE=Pace plc + ++OUI:A056B2* ++ ID_OUI_FROM_DATABASE=Harman/Becker Automotive Systems GmbH ++ + OUI:A0593A* + ID_OUI_FROM_DATABASE=V.D.S. Video Display Systems srl + +@@ -64234,6 +64393,9 @@ OUI:A45C27* + OUI:A45D36* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A45DA1* ++ ID_OUI_FROM_DATABASE=ADB Broadband Italia ++ + OUI:A46032* + ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD + +@@ -64312,6 +64474,9 @@ OUI:A49F89* + OUI:A4A24A* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:A4A4D3* ++ ID_OUI_FROM_DATABASE=Bluebank Communication Technology Co.Ltd ++ + OUI:A4A80F* + ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd. + +@@ -64462,6 +64627,9 @@ OUI:A80600* + OUI:A80C0D* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:A81374* ++ ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company ++ + OUI:A8154D* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + +@@ -64495,6 +64663,9 @@ OUI:A82BD6* + OUI:A830AD* + ID_OUI_FROM_DATABASE=Wei Fang Goertek Electronics Co.,Ltd + ++OUI:A8329A* ++ ID_OUI_FROM_DATABASE=Digicom Futuristic Technologies Ltd. ++ + OUI:A83944* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + +@@ -64582,6 +64753,9 @@ OUI:A88CEE* + OUI:A88D7B* + ID_OUI_FROM_DATABASE=SunDroid Global limited. + ++OUI:A88E24* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:A8922C* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -64903,6 +65077,9 @@ OUI:AC9CE4* + OUI:ACA016* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:ACA213* ++ ID_OUI_FROM_DATABASE=Shenzhen Bilian electronic CO.,LTD ++ + OUI:ACA22C* + ID_OUI_FROM_DATABASE=Baycity Technologies Ltd + +@@ -65068,6 +65245,9 @@ OUI:B01B7C* + OUI:B01C91* + ID_OUI_FROM_DATABASE=Elim Co + ++OUI:B01F81* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:B024F3* + ID_OUI_FROM_DATABASE=Progeny Systems + +@@ -65113,6 +65293,9 @@ OUI:B058C4* + OUI:B05B1F* + ID_OUI_FROM_DATABASE=THERMO FISHER SCIENTIFIC S.P.A. + ++OUI:B05B67* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:B05CE5* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -65338,6 +65521,9 @@ OUI:B407F9* + OUI:B40832* + ID_OUI_FROM_DATABASE=TC Communications + ++OUI:B40AC6* ++ ID_OUI_FROM_DATABASE=DEXON Systems Ltd. ++ + OUI:B40B44* + ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. + +@@ -65533,6 +65719,9 @@ OUI:B4AA4D* + OUI:B4AB2C* + ID_OUI_FROM_DATABASE=MtM Technology Corporation + ++OUI:B4AE6F* ++ ID_OUI_FROM_DATABASE=Circle Reliance, Inc. ++ + OUI:B4B017* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -65566,6 +65755,9 @@ OUI:B4C810* + OUI:B4CCE9* + ID_OUI_FROM_DATABASE=PROSYST + ++OUI:B4CEF6* ++ ID_OUI_FROM_DATABASE=HTC Corporation ++ + OUI:B4CFDB* + ID_OUI_FROM_DATABASE=Shenzhen Jiuzhou Electric Co.,LTD + +@@ -65812,6 +66004,9 @@ OUI:B898B0* + OUI:B898F7* + ID_OUI_FROM_DATABASE=Gionee Communication Equipment Co,Ltd.ShenZhen + ++OUI:B89919* ++ ID_OUI_FROM_DATABASE=7signal Solutions, Inc ++ + OUI:B89AED* + ID_OUI_FROM_DATABASE=OceanServer Technology, Inc + +@@ -66160,6 +66355,9 @@ OUI:BC9889* + OUI:BC99BC* + ID_OUI_FROM_DATABASE=FonSee Technology Inc. + ++OUI:BC9CC5* ++ ID_OUI_FROM_DATABASE=Beijing Huafei Technology Co., Ltd. ++ + OUI:BC9DA5* + ID_OUI_FROM_DATABASE=DASCOM Europe GmbH + +@@ -66511,6 +66709,9 @@ OUI:C0EAE4* + OUI:C0F1C4* + ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. + ++OUI:C0F2FB* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:C0F79D* + ID_OUI_FROM_DATABASE=Powercode + +@@ -66613,6 +66814,9 @@ OUI:C43C3C* + OUI:C43DC7* + ID_OUI_FROM_DATABASE=NETGEAR + ++OUI:C44202* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:C4438F* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -66634,6 +66838,9 @@ OUI:C44AD0* + OUI:C44B44* + ID_OUI_FROM_DATABASE=Omniprint Inc. + ++OUI:C44BD1* ++ ID_OUI_FROM_DATABASE=Wallys Communications Teachnologies Co.,Ltd. ++ + OUI:C44E1F* + ID_OUI_FROM_DATABASE=BlueN + +@@ -66835,6 +67042,9 @@ OUI:C4F57C* + OUI:C4FCE4* + ID_OUI_FROM_DATABASE=DishTV NZ Ltd + ++OUI:C80210* ++ ID_OUI_FROM_DATABASE=LG Innotek ++ + OUI:C80258* + ID_OUI_FROM_DATABASE=ITW GSE ApS + +@@ -67363,6 +67573,9 @@ OUI:CC9F35* + OUI:CCA0E5* + ID_OUI_FROM_DATABASE=DZG Metering GmbH + ++OUI:CCA223* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:CCA374* + ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd + +@@ -67498,6 +67711,9 @@ OUI:CCFE3C* + OUI:D00790* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:D00AAB* ++ ID_OUI_FROM_DATABASE=Yokogawa Digital Computer Corporation ++ + OUI:D00EA4* + ID_OUI_FROM_DATABASE=Porsche Cars North America + +@@ -67576,6 +67792,9 @@ OUI:D05875* + OUI:D059C3* + ID_OUI_FROM_DATABASE=CeraMicro Technology Corporation + ++OUI:D059E4* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:D05A0F* + ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD + +@@ -68248,6 +68467,9 @@ OUI:D86595* + OUI:D866C6* + ID_OUI_FROM_DATABASE=Shenzhen Daystar Technology Co.,ltd + ++OUI:D866EE* ++ ID_OUI_FROM_DATABASE=BOXIN COMMUNICATION CO.,LTD. ++ + OUI:D867D9* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -68542,6 +68764,9 @@ OUI:DC49C9* + OUI:DC4EDE* + ID_OUI_FROM_DATABASE=SHINYEI TECHNOLOGY CO., LTD. + ++OUI:DC537C* ++ ID_OUI_FROM_DATABASE=Compal Broadband Networks, Inc. ++ + OUI:DC5726* + ID_OUI_FROM_DATABASE=Power-One + +@@ -69112,6 +69337,9 @@ OUI:E45614* + OUI:E457A8* + ID_OUI_FROM_DATABASE=Stuart Manufacturing, Inc. + ++OUI:E45D52* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:E46449* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -69298,6 +69526,9 @@ OUI:E81132* + OUI:E81324* + ID_OUI_FROM_DATABASE=GuangZhou Bonsoninfo System CO.,LTD + ++OUI:E8150E* ++ ID_OUI_FROM_DATABASE=Nokia Corporation ++ + OUI:E817FC* + ID_OUI_FROM_DATABASE=NIFTY Corporation + +@@ -69373,6 +69604,9 @@ OUI:E85B5B* + OUI:E85BF0* + ID_OUI_FROM_DATABASE=Imaging Diagnostics + ++OUI:E85D6B* ++ ID_OUI_FROM_DATABASE=Luminate Wireless ++ + OUI:E85E53* + ID_OUI_FROM_DATABASE=Infratec Datentechnik GmbH + +@@ -69409,6 +69643,9 @@ OUI:E878A1* + OUI:E87AF3* + ID_OUI_FROM_DATABASE=S5 Tech S.r.l. + ++OUI:E8802E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:E880D8* + ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. + +@@ -69719,7 +69956,7 @@ OUI:EC9B5B* + ID_OUI_FROM_DATABASE=Nokia Corporation + + OUI:EC9ECD* +- ID_OUI_FROM_DATABASE=Emerson Network Power and Embedded Computing ++ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + + OUI:ECA29B* + ID_OUI_FROM_DATABASE=Kemppi Oy +@@ -69745,6 +69982,9 @@ OUI:ECC38A* + OUI:ECC882* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:ECCB30* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:ECCD6D* + ID_OUI_FROM_DATABASE=Allied Telesis, Inc. + +@@ -69763,6 +70003,9 @@ OUI:ECD925* + OUI:ECD950* + ID_OUI_FROM_DATABASE=IRT SA + ++OUI:ECD9D1* ++ ID_OUI_FROM_DATABASE=Shenzhen TG-NET Botone Technology Co.,Ltd. ++ + OUI:ECDE3D* + ID_OUI_FROM_DATABASE=Lamprey Networks, Inc. + +@@ -70144,6 +70387,12 @@ OUI:F406A5* + OUI:F40B93* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:F40E11* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ ++OUI:F40F1B* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F40F9B* + ID_OUI_FROM_DATABASE=WAVELINK + +@@ -70165,6 +70414,9 @@ OUI:F41FC2* + OUI:F42012* + ID_OUI_FROM_DATABASE=Cuciniale GmbH + ++OUI:F42833* ++ ID_OUI_FROM_DATABASE=MMPC Inc. ++ + OUI:F42896* + ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA + +@@ -70294,6 +70546,9 @@ OUI:F499AC* + OUI:F49F54* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:F49FF3* ++ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd ++ + OUI:F4A294* + ID_OUI_FROM_DATABASE=EAGLE WORLD DEVELOPMENT CO., LIMITED + +@@ -70351,6 +70606,9 @@ OUI:F4CE46* + OUI:F4CFE2* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:F4D032* ++ ID_OUI_FROM_DATABASE=Yunnan Ideal Information&Technology.,Ltd ++ + OUI:F4D261* + ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd + +@@ -70390,12 +70648,18 @@ OUI:F4F5A5* + OUI:F4F5E8* + ID_OUI_FROM_DATABASE=Google + ++OUI:F4F646* ++ ID_OUI_FROM_DATABASE=Dediprog Technology Co. Ltd. ++ + OUI:F4F951* + ID_OUI_FROM_DATABASE=Apple + + OUI:F4FC32* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:F4FD2B* ++ ID_OUI_FROM_DATABASE=ZOYI Company ++ + OUI:F80113* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -70798,6 +71062,9 @@ OUI:FC1607* + OUI:FC1794* + ID_OUI_FROM_DATABASE=InterCreative Co., Ltd + ++OUI:FC1910* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:FC19D0* + ID_OUI_FROM_DATABASE=Cloud Vision Networks Technology Co.,Ltd. + +@@ -70906,6 +71173,9 @@ OUI:FC7516* + OUI:FC75E6* + ID_OUI_FROM_DATABASE=Handreamnet + ++OUI:FC790B* ++ ID_OUI_FROM_DATABASE=Hitachi High Technologies America, Inc. ++ + OUI:FC7CE7* + ID_OUI_FROM_DATABASE=FCI USA LLC + +@@ -70948,6 +71218,9 @@ OUI:FCA841* + OUI:FCA9B0* + ID_OUI_FROM_DATABASE=MIARTECH (SHANGHAI),INC. + ++OUI:FCAA14* ++ ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. ++ + OUI:FCAD0F* + ID_OUI_FROM_DATABASE=QTS NETWORKS + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 14637d3..2957774 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -1673,6 +1673,9 @@ pci:v00001002d00001306* + pci:v00001002d00001307* + ID_MODEL_FROM_DATABASE=Kaveri + ++pci:v00001002d00001308* ++ ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller ++ + pci:v00001002d00001309* + ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] + +@@ -4268,6 +4271,9 @@ pci:v00001002d00006611sv00001B0Asd000090D3* + pci:v00001002d00006613* + ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] + ++pci:v00001002d00006613sv00001682sd00007240* ++ ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] (R7 240 2048 MB) ++ + pci:v00001002d00006620* + ID_MODEL_FROM_DATABASE=Mars + +@@ -6024,31 +6030,31 @@ pci:v00001002d00006819sv0000174Bsd0000E221* + ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) + + pci:v00001002d00006820* +- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] + + pci:v00001002d00006820sv0000103Csd00001851* +- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon HD 7750M) + + pci:v00001002d00006820sv000017AAsd00003801* +- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) ++ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon R9 M275) + + pci:v00001002d00006821* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] + + pci:v00001002d00006821sv00001002sd0000031E* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro SX4000) + + pci:v00001002d00006821sv00001028sd000005CC* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) + + pci:v00001002d00006821sv00001028sd000015CC* +- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) ++ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) + + pci:v00001002d00006822* + ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] + + pci:v00001002d00006823* +- ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M] ++ ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M / R9 M265X] + + pci:v00001002d00006825* + ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] +@@ -7770,64 +7776,73 @@ pci:v00001002d000068F9sv000017AFsd00003014* + ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) + + pci:v00001002d000068FA* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] + + pci:v00001002d000068FAsv00001019sd00000019* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000021* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000022* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001019sd00000026* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000103Csd00002ADF* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) + + pci:v00001002d000068FAsv0000103Csd00002AE8* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) + + pci:v00001002d000068FAsv00001043sd00008350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) + + pci:v00001002d000068FAsv00001462sd00002128* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002184* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002186* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd00002495* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001462sd0000B490* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv00001642sd00003985* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) ++ ++pci:v00001002d000068FAsv0000174Bsd00003510* ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) ++ ++pci:v00001002d000068FAsv0000174Bsd00003521* ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) ++ ++pci:v00001002d000068FAsv0000174Bsd00003522* ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) + + pci:v00001002d000068FAsv0000174Bsd00007350* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd00008153* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) + + pci:v00001002d000068FAsv0000174Bsd0000E127* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E153* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv0000174Bsd0000E180* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FAsv000017AFsd00003015* +- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) ++ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) + + pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE +@@ -8886,7 +8901,7 @@ pci:v00001002d0000980A* + ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 7290] + + pci:v00001002d00009830* +- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400] ++ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400 / R3 Series] + + pci:v00001002d00009831* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400E] +@@ -8904,13 +8919,13 @@ pci:v00001002d00009835* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8310E] + + pci:v00001002d00009836* +- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280] ++ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280 / R3 Series] + + pci:v00001002d00009837* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280E] + + pci:v00001002d00009838* +- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240] ++ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240 / R3 Series] + + pci:v00001002d00009839* + ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8180] +@@ -10724,6 +10739,33 @@ pci:v00001022d00001418* + pci:v00001022d00001419* + ID_MODEL_FROM_DATABASE=Family 15h (Models 10h-1fh) I/O Memory Management Unit + ++pci:v00001022d0000141A* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 0 ++ ++pci:v00001022d0000141B* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 1 ++ ++pci:v00001022d0000141C* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 2 ++ ++pci:v00001022d0000141D* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 3 ++ ++pci:v00001022d0000141E* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 4 ++ ++pci:v00001022d0000141F* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 5 ++ ++pci:v00001022d00001422* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Complex ++ ++pci:v00001022d00001423* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) I/O Memory Management Unit ++ ++pci:v00001022d00001426* ++ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Port ++ + pci:v00001022d00001439* + ID_MODEL_FROM_DATABASE=Family 16h Processor Functions 5:1 + +@@ -17621,6 +17663,9 @@ pci:v00001093d000071BC* + pci:v00001093d000071D0* + ID_MODEL_FROM_DATABASE=PXI-6143 + ++pci:v00001093d000071DC* ++ ID_MODEL_FROM_DATABASE=PCI-1588 ++ + pci:v00001093d00007260* + ID_MODEL_FROM_DATABASE=PXI-5142 + +@@ -17639,6 +17684,9 @@ pci:v00001093d000072AA* + pci:v00001093d000072AB* + ID_MODEL_FROM_DATABASE=PCI-5105 + ++pci:v00001093d000072B8* ++ ID_MODEL_FROM_DATABASE=PXI-6682 ++ + pci:v00001093d0000730F* + ID_MODEL_FROM_DATABASE=PXI-5922EX + +@@ -17708,6 +17756,9 @@ pci:v00001093d000073F0* + pci:v00001093d000073F1* + ID_MODEL_FROM_DATABASE=PCI-5153 + ++pci:v00001093d00007405* ++ ID_MODEL_FROM_DATABASE=PXIe-6674T ++ + pci:v00001093d0000745E* + ID_MODEL_FROM_DATABASE=PXI-5153EX + +@@ -17726,6 +17777,12 @@ pci:v00001093d00007539* + pci:v00001093d0000753A* + ID_MODEL_FROM_DATABASE=NI 9159 + ++pci:v00001093d000075E5* ++ ID_MODEL_FROM_DATABASE=PXI-6683 ++ ++pci:v00001093d000075E6* ++ ID_MODEL_FROM_DATABASE=PXI-6683H ++ + pci:v00001093d00007626* + ID_MODEL_FROM_DATABASE=NI 9154 + +@@ -28100,6 +28157,9 @@ pci:v000010EC* + pci:v000010ECd00000139* + ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ Ethernet Controller + ++pci:v000010ECd00005208* ++ ID_MODEL_FROM_DATABASE=RTS5208 PCI Express Card Reader ++ + pci:v000010ECd00005209* + ID_MODEL_FROM_DATABASE=RTS5209 PCI Express Card Reader + +@@ -28128,7 +28188,7 @@ pci:v000010ECd00005249sv0000103Csd00001909* + ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) + + pci:v000010ECd00005288* +- ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader ++ ID_MODEL_FROM_DATABASE=RTS5288 PCI Express Card Reader + + pci:v000010ECd00008029* + ID_MODEL_FROM_DATABASE=RTL-8029(AS) +@@ -32153,6 +32213,9 @@ pci:v00001131d00007160* + pci:v00001131d00007160sv00001458sd00009009* + ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) + ++pci:v00001131d00007160sv00001461sd00001455* ++ ID_MODEL_FROM_DATABASE=SAA7160 (AVerTV Hybrid Speedy PCI-E (H788)) ++ + pci:v00001131d00007162* + ID_MODEL_FROM_DATABASE=SAA7162 + +@@ -34691,6 +34754,9 @@ pci:v000011ABd00002A42* + pci:v000011ABd00002A43* + ID_MODEL_FROM_DATABASE=88W8366 [TopDog] 802.11n Wireless + ++pci:v000011ABd00002A55* ++ ID_MODEL_FROM_DATABASE=88W8864 [Avastar] 802.11ac Wireless ++ + pci:v000011ABd00002B36* + ID_MODEL_FROM_DATABASE=88W8764 [Avastar] 802.11n Wireless + +@@ -36536,6 +36602,9 @@ pci:v00001217d00008120* + pci:v00001217d00008130* + ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller + ++pci:v00001217d00008221* ++ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller ++ + pci:v00001217d00008320* + ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller + +@@ -43278,7 +43347,13 @@ pci:v00001469* + ID_VENDOR_FROM_DATABASE=Cleveland Motion Controls + + pci:v0000146A* +- ID_VENDOR_FROM_DATABASE=IFR ++ ID_VENDOR_FROM_DATABASE=Aeroflex ++ ++pci:v0000146Ad00003010* ++ ID_MODEL_FROM_DATABASE=3010 RF Synthesizer ++ ++pci:v0000146Ad00003A11* ++ ID_MODEL_FROM_DATABASE=3011A PXI RF Synthesizer + + pci:v0000146B* + ID_VENDOR_FROM_DATABASE=Parascan Technologies Ltd +@@ -52409,6 +52484,9 @@ pci:v00001AB8d00004006* + pci:v00001AB9* + ID_VENDOR_FROM_DATABASE=Espia Srl + ++pci:v00001AC8* ++ ID_VENDOR_FROM_DATABASE=Aeroflex Gaisler ++ + pci:v00001ACC* + ID_VENDOR_FROM_DATABASE=Point of View BV + +@@ -52724,9 +52802,15 @@ pci:v00001B4Bd000091A0* + pci:v00001B4Bd000091A4* + ID_MODEL_FROM_DATABASE=88SE912x IDE Controller + ++pci:v00001B4Bd00009220* ++ ID_MODEL_FROM_DATABASE=88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller ++ + pci:v00001B4Bd00009230* + ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller + ++pci:v00001B4Bd00009235* ++ ID_MODEL_FROM_DATABASE=88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller ++ + pci:v00001B4Bd00009445* + ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller + +@@ -54693,7 +54777,7 @@ pci:v00006688* + ID_VENDOR_FROM_DATABASE=Zycoo Co., Ltd + + pci:v00006688d00001200* +- ID_MODEL_FROM_DATABASE=CooVOX TDM Analog Module ++ ID_MODEL_FROM_DATABASE=CooVox TDM Analog Module + + pci:v00006688d00001400* + ID_MODEL_FROM_DATABASE=CooVOX TDM GSM Module +@@ -59066,8 +59150,11 @@ pci:v00008086d00001522sv00008086sd000000A4* + pci:v00008086d00001523* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection + ++pci:v00008086d00001523sv00001028sd00000060* ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 2P I350 LOM) ++ + pci:v00008086d00001523sv00001028sd00001F9B* +- ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350-t bNDC) + + pci:v00008086d00001523sv0000103Csd00001784* + ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) +@@ -59183,9 +59270,6 @@ pci:v00008086d00001536* + pci:v00008086d00001537* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + +-pci:v00008086d00001538* +- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +- + pci:v00008086d00001539* + ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection + +@@ -59270,6 +59354,12 @@ pci:v00008086d0000155Dsv00008086sd00000002* + pci:v00008086d00001560* + ID_MODEL_FROM_DATABASE=Ethernet Controller X540 + ++pci:v00008086d0000156F* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-LM ++ ++pci:v00008086d00001570* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V ++ + pci:v00008086d00001571* + ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function + +@@ -59316,16 +59406,16 @@ pci:v00008086d00001581sv00001028sd00001F98* + ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) + + pci:v00008086d00001583* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + + pci:v00008086d00001583sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + + pci:v00008086d00001583sv00008086sd00000003* +- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) + + pci:v00008086d00001584* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 014c628..52586bc 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -21,7 +21,7 @@ usb:v0004* + ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart + + usb:v0011* +- ID_VENDOR_FROM_DATABASE=Unknown manufacturer ++ ID_VENDOR_FROM_DATABASE=Unknown + + usb:v0011p7788* + ID_MODEL_FROM_DATABASE=Flash mass storage drive +@@ -275,6 +275,9 @@ usb:v03EBp2110* + usb:v03EBp2122* + ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit + ++usb:v03EBp2141* ++ ID_MODEL_FROM_DATABASE=ICE debugger ++ + usb:v03EBp2310* + ID_MODEL_FROM_DATABASE=EVK11xx evaluation board + +@@ -455,6 +458,9 @@ usb:v03F0p0121* + usb:v03F0p0122* + ID_MODEL_FROM_DATABASE=HID Internet Keyboard + ++usb:v03F0p0139* ++ ID_MODEL_FROM_DATABASE=Barcode Scanner 4430 ++ + usb:v03F0p0201* + ID_MODEL_FROM_DATABASE=ScanJet 6200c + +@@ -782,6 +788,9 @@ usb:v03F0p1517* + usb:v03F0p1524* + ID_MODEL_FROM_DATABASE=Smart Card Keyboard - KR + ++usb:v03F0p1539* ++ ID_MODEL_FROM_DATABASE=Mini Magnetic Stripe Reader ++ + usb:v03F0p1602* + ID_MODEL_FROM_DATABASE=PhotoSmart 330 series + +@@ -893,6 +902,9 @@ usb:v03F0p1D02* + usb:v03F0p1D17* + ID_MODEL_FROM_DATABASE=LaserJet 1320 + ++usb:v03F0p1D24* ++ ID_MODEL_FROM_DATABASE=Barcode scanner ++ + usb:v03F0p1E02* + ID_MODEL_FROM_DATABASE=PhotoSmart A320 Printer series + +@@ -935,6 +947,9 @@ usb:v03F0p2012* + usb:v03F0p201D* + ID_MODEL_FROM_DATABASE=un2400 Gobi Wireless Modem (QDL mode) + ++usb:v03F0p2039* ++ ID_MODEL_FROM_DATABASE=Cashdrawer ++ + usb:v03F0p2102* + ID_MODEL_FROM_DATABASE=PhotoSmart 7345 + +@@ -1008,7 +1023,7 @@ usb:v03F0p2505* + ID_MODEL_FROM_DATABASE=ScanJet 3770 + + usb:v03F0p2512* +- ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 ++ ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 / Compaq LA2405 series monitor + + usb:v03F0p2514* + ID_MODEL_FROM_DATABASE=4-port hub +@@ -1046,6 +1061,9 @@ usb:v03F0p2704* + usb:v03F0p2717* + ID_MODEL_FROM_DATABASE=Color LaserJet 2830 + ++usb:v03F0p2724* ++ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader IDRA-334133-HP ++ + usb:v03F0p2811* + ID_MODEL_FROM_DATABASE=PSC-2100 + +@@ -1424,6 +1442,9 @@ usb:v03F0p5817* + usb:v03F0p5911* + ID_MODEL_FROM_DATABASE=PhotoSmart C6180 + ++usb:v03F0p5912* ++ ID_MODEL_FROM_DATABASE=Officejet Pro 8600 ++ + usb:v03F0p5A11* + ID_MODEL_FROM_DATABASE=PhotoSmart C7100 series + +@@ -1532,6 +1553,9 @@ usb:v03F0p6B02* + usb:v03F0p6B11* + ID_MODEL_FROM_DATABASE=Photosmart C4500 series + ++usb:v03F0p6C11* ++ ID_MODEL_FROM_DATABASE=Photosmart C4480 ++ + usb:v03F0p6C17* + ID_MODEL_FROM_DATABASE=Color LaserJet 4610 + +@@ -1913,6 +1937,9 @@ usb:v03FC* + usb:v03FD* + ID_VENDOR_FROM_DATABASE=Xilinx, Inc. + ++usb:v03FDp0008* ++ ID_MODEL_FROM_DATABASE=Platform Cable USB II ++ + usb:v03FE* + ID_VENDOR_FROM_DATABASE=Farallon Comunications + +@@ -2012,6 +2039,9 @@ usb:v0403p0232* + usb:v0403p1060* + ID_MODEL_FROM_DATABASE=JTAG adapter + ++usb:v0403p1234* ++ ID_MODEL_FROM_DATABASE=IronLogic RFID Adapter [Z-2 USB] ++ + usb:v0403p6001* + ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC + +@@ -2084,12 +2114,18 @@ usb:v0403p8B2B* + usb:v0403p8B2C* + ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 + ++usb:v0403p9132* ++ ID_MODEL_FROM_DATABASE=LCD and Temperature Interface ++ + usb:v0403p9133* + ID_MODEL_FROM_DATABASE=CallerID + + usb:v0403p9135* + ID_MODEL_FROM_DATABASE=Rotary Pub alarm + ++usb:v0403p9136* ++ ID_MODEL_FROM_DATABASE=Pulsecounter ++ + usb:v0403p9E90* + ID_MODEL_FROM_DATABASE=Marvell OpenRD Base/Client + +@@ -2291,6 +2327,9 @@ usb:v0403pEF10* + usb:v0403pF070* + ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] + ++usb:v0403pF0E9* ++ ID_MODEL_FROM_DATABASE=Tagsys L-P101 ++ + usb:v0403pF1A0* + ID_MODEL_FROM_DATABASE=Asix PRESTO Programmer + +@@ -2999,6 +3038,9 @@ usb:v040Ap4021* + usb:v040Ap4022* + ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer + ++usb:v040Ap402B* ++ ID_MODEL_FROM_DATABASE=Photo Printer 6850 ++ + usb:v040Ap402E* + ID_MODEL_FROM_DATABASE=605 Photo Printer + +@@ -4379,6 +4421,9 @@ usb:v0424p7500* + usb:v0424p9512* + ID_MODEL_FROM_DATABASE=SMC9512/9514 USB Hub + ++usb:v0424p9514* ++ ID_MODEL_FROM_DATABASE=SMC9514 Hub ++ + usb:v0424pA700* + ID_MODEL_FROM_DATABASE=2 Port Hub + +@@ -5219,6 +5264,9 @@ usb:v0451p2046* + usb:v0451p2077* + ID_MODEL_FROM_DATABASE=TUSB2077 Hub + ++usb:v0451p2F90* ++ ID_MODEL_FROM_DATABASE=SM-USB-DIG ++ + usb:v0451p3410* + ID_MODEL_FROM_DATABASE=TUSB3410 Microcontroller + +@@ -5534,6 +5582,9 @@ usb:v0458p5003* + usb:v0458p5004* + ID_MODEL_FROM_DATABASE=G-pen Tablet + ++usb:v0458p505E* ++ ID_MODEL_FROM_DATABASE=Genius iSlim 330 ++ + usb:v0458p6001* + ID_MODEL_FROM_DATABASE=GF3000F Ethernet Adapter + +@@ -5600,6 +5651,24 @@ usb:v0458p705A* + usb:v0458p705C* + ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF + ++usb:v0458p7061* ++ ID_MODEL_FROM_DATABASE=Genius iLook 1321 V2 ++ ++usb:v0458p7066* ++ ID_MODEL_FROM_DATABASE=Acer Crystal Eye Webcam ++ ++usb:v0458p7067* ++ ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF V2 ++ ++usb:v0458p7068* ++ ID_MODEL_FROM_DATABASE=Genius eFace 1325R ++ ++usb:v0458p706D* ++ ID_MODEL_FROM_DATABASE=Genius iSlim 2000AF V2 ++ ++usb:v0458p7076* ++ ID_MODEL_FROM_DATABASE=Genius FaceCam 312 ++ + usb:v0458p7079* + ID_MODEL_FROM_DATABASE=FaceCam 2025R + +@@ -5609,6 +5678,12 @@ usb:v0458p707F* + usb:v0458p7088* + ID_MODEL_FROM_DATABASE=WideCam 1050 + ++usb:v0458p7089* ++ ID_MODEL_FROM_DATABASE=Genius FaceCam 320 ++ ++usb:v0458p708C* ++ ID_MODEL_FROM_DATABASE=Genius WideCam F100 ++ + usb:v0459* + ID_VENDOR_FROM_DATABASE=Adobe Systems, Inc. + +@@ -6017,6 +6092,15 @@ usb:v045Ep02B0* + usb:v045Ep02B6* + ID_MODEL_FROM_DATABASE=Xbox 360 / Bluetooth Wireless Headset + ++usb:v045Ep02BE* ++ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Audio ++ ++usb:v045Ep02BF* ++ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Camera ++ ++usb:v045Ep02C2* ++ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Motor ++ + usb:v045Ep0400* + ID_MODEL_FROM_DATABASE=Windows Powered Pocket PC 2002 + +@@ -6866,6 +6950,9 @@ usb:v046Dp0830* + usb:v046Dp0840* + ID_MODEL_FROM_DATABASE=QuickCam Express + ++usb:v046Dp0843* ++ ID_MODEL_FROM_DATABASE=Webcam C930e ++ + usb:v046Dp0850* + ID_MODEL_FROM_DATABASE=QuickCam Web + +@@ -7169,6 +7256,12 @@ usb:v046Dp0A1F* + usb:v046Dp0A29* + ID_MODEL_FROM_DATABASE=H600 [Wireless Headset] + ++usb:v046Dp0A38* ++ ID_MODEL_FROM_DATABASE=Headset H340 ++ ++usb:v046Dp0A4D* ++ ID_MODEL_FROM_DATABASE=G430 Surround Sound Gaming Headset ++ + usb:v046Dp0B02* + ID_MODEL_FROM_DATABASE=C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode) + +@@ -7650,7 +7743,7 @@ usb:v046DpC31B* + ID_MODEL_FROM_DATABASE=Compact Keyboard K300 + + usb:v046DpC31C* +- ID_MODEL_FROM_DATABASE=Keyboard K120 for Business ++ ID_MODEL_FROM_DATABASE=Keyboard K120 + + usb:v046DpC31D* + ID_MODEL_FROM_DATABASE=Media Keyboard K200 +@@ -7751,6 +7844,9 @@ usb:v046DpC529* + usb:v046DpC52B* + ID_MODEL_FROM_DATABASE=Unifying Receiver + ++usb:v046DpC52D* ++ ID_MODEL_FROM_DATABASE=R700 Remote Presenter receiver ++ + usb:v046DpC52E* + ID_MODEL_FROM_DATABASE=MK260 Wireless Combo Receiver + +@@ -7760,6 +7856,18 @@ usb:v046DpC52F* + usb:v046DpC532* + ID_MODEL_FROM_DATABASE=Unifying Receiver + ++usb:v046DpC603* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT ++ ++usb:v046DpC605* ++ ID_MODEL_FROM_DATABASE=3Dconnexion CADman ++ ++usb:v046DpC606* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Classic ++ ++usb:v046DpC621* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Spaceball 5000 ++ + usb:v046DpC623* + ID_MODEL_FROM_DATABASE=3Dconnexion Space Traveller 3D Mouse + +@@ -7772,9 +7880,18 @@ usb:v046DpC626* + usb:v046DpC627* + ID_MODEL_FROM_DATABASE=3Dconnexion Space Explorer 3D Mouse + ++usb:v046DpC628* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Space Navigator for Notebooks ++ + usb:v046DpC629* + ID_MODEL_FROM_DATABASE=3Dconnexion SpacePilot Pro 3D Mouse + ++usb:v046DpC62B* ++ ID_MODEL_FROM_DATABASE=3Dconnexion Space Mouse Pro ++ ++usb:v046DpC640* ++ ID_MODEL_FROM_DATABASE=NuLOOQ navigator ++ + usb:v046DpC702* + ID_MODEL_FROM_DATABASE=Cordless Presenter + +@@ -8609,6 +8726,9 @@ usb:v0480p0011* + usb:v0480p0014* + ID_MODEL_FROM_DATABASE=InTouch Module + ++usb:v0480p0100* ++ ID_MODEL_FROM_DATABASE=Stor.E Slim USB 3.0 ++ + usb:v0480pA006* + ID_MODEL_FROM_DATABASE=External Disk 1.5TB + +@@ -10043,6 +10163,9 @@ usb:v04A9p2225* + usb:v04A9p2228* + ID_MODEL_FROM_DATABASE=CanoScan 4400F + ++usb:v04A9p2229* ++ ID_MODEL_FROM_DATABASE=CanoScan 8600F ++ + usb:v04A9p2602* + ID_MODEL_FROM_DATABASE=MultiPASS C555 + +@@ -10988,6 +11111,9 @@ usb:v04A9p3233* + usb:v04A9p3234* + ID_MODEL_FROM_DATABASE=PowerShot SX150 IS + ++usb:v04A9p3235* ++ ID_MODEL_FROM_DATABASE=PowerShot ELPH 510 HS / IXUS 1100 HS ++ + usb:v04A9p3236* + ID_MODEL_FROM_DATABASE=PowerShot S100 + +@@ -11057,12 +11183,18 @@ usb:v04A9p325B* + usb:v04A9p325C* + ID_MODEL_FROM_DATABASE=PowerShot SX500 IS + ++usb:v04A9p325E* ++ ID_MODEL_FROM_DATABASE=PowerShot N ++ + usb:v04A9p325F* + ID_MODEL_FROM_DATABASE=PowerShot SX280 HS + + usb:v04A9p3260* + ID_MODEL_FROM_DATABASE=PowerShot SX270 HS + ++usb:v04A9p3261* ++ ID_MODEL_FROM_DATABASE=PowerShot A3500 IS ++ + usb:v04A9p3262* + ID_MODEL_FROM_DATABASE=PowerShot A2600 + +@@ -11087,6 +11219,15 @@ usb:v04A9p3277* + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + ++usb:v04A9p3288* ++ ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 ++ ++usb:v04A9p3289* ++ ID_MODEL_FROM_DATABASE=PowerShot ELPH 340 HS / IXUS 265 HS ++ ++usb:v04A9p328A* ++ ID_MODEL_FROM_DATABASE=PowerShot ELPH 150 IS / IXUS 155 ++ + usb:v04AA* + ID_VENDOR_FROM_DATABASE=DaeWoo Telecom, Ltd + +@@ -11471,6 +11612,9 @@ usb:v04B4p2050* + usb:v04B4p2830* + ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) + ++usb:v04B4p4235* ++ ID_MODEL_FROM_DATABASE=Monitor 02 Driver ++ + usb:v04B4p4381* + ID_MODEL_FROM_DATABASE=SCAPS USC-1 Scanner Controller + +@@ -12407,6 +12551,9 @@ usb:v04C5p10AE* + usb:v04C5p10AF* + ID_MODEL_FROM_DATABASE=fi-4220C2 + ++usb:v04C5p10C7* ++ ID_MODEL_FROM_DATABASE=fi-60f scanner ++ + usb:v04C5p10E0* + ID_MODEL_FROM_DATABASE=fi-5120c Scanner + +@@ -12981,7 +13128,7 @@ usb:v04D9p2519* + ID_MODEL_FROM_DATABASE=Shenzhen LogoTech 2.4GHz receiver + + usb:v04D9p2832* +- ID_MODEL_FROM_DATABASE=1channel Telephone line recorder ++ ID_MODEL_FROM_DATABASE=HT82A832R Audio MCU + + usb:v04D9p2834* + ID_MODEL_FROM_DATABASE=HT82A834R Audio MCU +@@ -13070,6 +13217,9 @@ usb:v04DAp2374* + usb:v04DAp2451* + ID_MODEL_FROM_DATABASE=HDC-SD9 + ++usb:v04DAp245B* ++ ID_MODEL_FROM_DATABASE=HC-X920K (3MOS Full HD video camcorder) ++ + usb:v04DAp2497* + ID_MODEL_FROM_DATABASE=HDC-TM700 + +@@ -13535,6 +13685,9 @@ usb:v04E8p1006* + usb:v04E8p130C* + ID_MODEL_FROM_DATABASE=NX100 + ++usb:v04E8p1F05* ++ ID_MODEL_FROM_DATABASE=S2 Portable [JMicron] (500GB) ++ + usb:v04E8p1F06* + ID_MODEL_FROM_DATABASE=HX-MU064DA portable harddisk + +@@ -13670,6 +13823,9 @@ usb:v04E8p3310* + usb:v04E8p3315* + ID_MODEL_FROM_DATABASE=ML-2540 Series Laser Printer + ++usb:v04E8p331E* ++ ID_MODEL_FROM_DATABASE=M262x/M282x Xpress Series Laser Printer ++ + usb:v04E8p3409* + ID_MODEL_FROM_DATABASE=SCX-4216F Scanner + +@@ -13718,6 +13874,9 @@ usb:v04E8p3420* + usb:v04E8p3426* + ID_MODEL_FROM_DATABASE=SCX-4500 Laser Printer + ++usb:v04E8p342D* ++ ID_MODEL_FROM_DATABASE=SCX-4x28 Series ++ + usb:v04E8p344F* + ID_MODEL_FROM_DATABASE=SCX-3400 Series + +@@ -14058,7 +14217,7 @@ usb:v04E8p685B* + ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (mass storage mode) + + usb:v04E8p685C* +- ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] ++ ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] (Mass storage mode) + + usb:v04E8p685D* + ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (Download mode) +@@ -14067,7 +14226,10 @@ usb:v04E8p685E* + ID_MODEL_FROM_DATABASE=GT-I9100 / GT-C3350 Phones (USB Debugging mode) + + usb:v04E8p6860* +- ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] ++ ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] , GT-I9500 [Galaxy S 4] ++ ++usb:v04E8p6863* ++ ID_MODEL_FROM_DATABASE=GT-I9500 [Galaxy S4] / GT-I9250 [Galaxy Nexus] (network tethering) + + usb:v04E8p6865* + ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (PTP mode) +@@ -14075,6 +14237,9 @@ usb:v04E8p6865* + usb:v04E8p6866* + ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (debugging mode) + ++usb:v04E8p6868* ++ ID_MODEL_FROM_DATABASE=Escape Composite driver for Android Phones: Modem+Diagnostic+ADB ++ + usb:v04E8p6875* + ID_MODEL_FROM_DATABASE=GT-B3710 Standalone LTE device (Commercial) + +@@ -14342,6 +14507,12 @@ usb:v04F2pB057* + usb:v04F2pB059* + ID_MODEL_FROM_DATABASE=CKF7037 HP webcam + ++usb:v04F2pB064* ++ ID_MODEL_FROM_DATABASE=CNA7137 Integrated Webcam ++ ++usb:v04F2pB070* ++ ID_MODEL_FROM_DATABASE=Camera ++ + usb:v04F2pB071* + ID_MODEL_FROM_DATABASE=2.0M UVC Webcam / CNF7129 + +@@ -14411,6 +14582,9 @@ usb:v04F2pB2B0* + usb:v04F2pB2B9* + ID_MODEL_FROM_DATABASE=Lenovo Integrated Camera UVC + ++usb:v04F2pB2DA* ++ ID_MODEL_FROM_DATABASE=thinkpad t430s camera ++ + usb:v04F2pB2EA* + ID_MODEL_FROM_DATABASE=Integrated Camera [ThinkPad] + +@@ -14420,6 +14594,9 @@ usb:v04F2pB330* + usb:v04F2pB354* + ID_MODEL_FROM_DATABASE=UVC 1.00 device HD UVC WebCam + ++usb:v04F2pB394* ++ ID_MODEL_FROM_DATABASE=Integrated Camera ++ + usb:v04F3* + ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. + +@@ -15038,6 +15215,9 @@ usb:v04F9p01EB* + usb:v04F9p01F4* + ID_MODEL_FROM_DATABASE=MFC-5890CN + ++usb:v04F9p0217* ++ ID_MODEL_FROM_DATABASE=MFC-8480DN ++ + usb:v04F9p0223* + ID_MODEL_FROM_DATABASE=DCP-365CN + +@@ -15158,9 +15338,15 @@ usb:v04FCp5331* + usb:v04FCp5360* + ID_MODEL_FROM_DATABASE=Sunplus Generic Digital Camera + ++usb:v04FCp5563* ++ ID_MODEL_FROM_DATABASE=Digital Media Player MP3/WMA [The Sharper Image] ++ + usb:v04FCp5720* + ID_MODEL_FROM_DATABASE=Card Reader Driver + ++usb:v04FCp6333* ++ ID_MODEL_FROM_DATABASE=Siri A9 UVC chipset ++ + usb:v04FCp7333* + ID_MODEL_FROM_DATABASE=Finet Technology Palmpix DC-85 + +@@ -15239,6 +15425,18 @@ usb:v0502p3325* + usb:v0502p3341* + ID_MODEL_FROM_DATABASE=Iconia tablet A500 + ++usb:v0502p33C3* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 ++ ++usb:v0502p33C4* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode) ++ ++usb:v0502p33C7* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (USB tethering) ++ ++usb:v0502p33C8* ++ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode, USB tethering) ++ + usb:v0502pD001* + ID_MODEL_FROM_DATABASE=Divio NW801/DVC-V6+ Digital Camera + +@@ -15446,6 +15644,9 @@ usb:v050Dp0416* + usb:v050Dp0551* + ID_MODEL_FROM_DATABASE=F6C550-AVR UPS + ++usb:v050Dp065A* ++ ID_MODEL_FROM_DATABASE=F8T065BF Mini Bluetooth 4.0 Adapter ++ + usb:v050Dp0706* + ID_MODEL_FROM_DATABASE=2-N-1 7-Port Hub (Lower half) + +@@ -15497,6 +15698,9 @@ usb:v050Dp2103* + usb:v050Dp21F1* + ID_MODEL_FROM_DATABASE=N300 WLAN N Adapter [ISY] + ++usb:v050Dp21F2* ++ ID_MODEL_FROM_DATABASE=RTL8192CU 802.11n WLAN Adapter [ISY IWL 4000] ++ + usb:v050Dp258A* + ID_MODEL_FROM_DATABASE=F5U258 Host to Host cable + +@@ -15728,6 +15932,9 @@ usb:v0525p1200* + usb:v0525p1265* + ID_MODEL_FROM_DATABASE=File-backed Storage Gadget + ++usb:v0525p3424* ++ ID_MODEL_FROM_DATABASE=Lumidigm Venus fingerprint sensor ++ + usb:v0525pA0F0* + ID_MODEL_FROM_DATABASE=Cambridge Electronic Devices Power1401 mk 2 + +@@ -16655,6 +16862,9 @@ usb:v054Cp035B* + usb:v054Cp035C* + ID_MODEL_FROM_DATABASE=NWZ-A726/A728/A729 + ++usb:v054Cp035F* ++ ID_MODEL_FROM_DATABASE=UP-DR200 Photo Printer ++ + usb:v054Cp0382* + ID_MODEL_FROM_DATABASE=Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1) + +@@ -16694,9 +16904,18 @@ usb:v054Cp0485* + usb:v054Cp04CB* + ID_MODEL_FROM_DATABASE=WALKMAN NWZ-E354 + ++usb:v054Cp0541* ++ ID_MODEL_FROM_DATABASE=DSC-HX100V [Cybershot Digital Still Camera] ++ ++usb:v054Cp0689* ++ ID_MODEL_FROM_DATABASE=Walkman NWZ-B173F ++ + usb:v054Cp06BB* + ID_MODEL_FROM_DATABASE=WALKMAN NWZ-F805 + ++usb:v054Cp088C* ++ ID_MODEL_FROM_DATABASE=Portable Headphone Amplifier ++ + usb:v054Cp1000* + ID_MODEL_FROM_DATABASE=Wireless Buzz! Receiver + +@@ -16721,6 +16940,12 @@ usb:v0550p0004* + usb:v0550p0005* + ID_MODEL_FROM_DATABASE=InkJet Color Printer + ++usb:v0550p000B* ++ ID_MODEL_FROM_DATABASE=Workcentre 24 ++ ++usb:v0550p014E* ++ ID_MODEL_FROM_DATABASE=CM215b Printer ++ + usb:v0551* + ID_VENDOR_FROM_DATABASE=CompuTrend Systems, Inc. + +@@ -17306,6 +17531,9 @@ usb:v056Ap0069* + usb:v056Ap0081* + ID_MODEL_FROM_DATABASE=Graphire Wireless 6x8 + ++usb:v056Ap0084* ++ ID_MODEL_FROM_DATABASE=Wireless adapter for Bamboo tablets ++ + usb:v056Ap0090* + ID_MODEL_FROM_DATABASE=TPC90 + +@@ -17372,6 +17600,9 @@ usb:v056Ap00D1* + usb:v056Ap00D3* + ID_MODEL_FROM_DATABASE=Bamboo Fun (CTH-661) + ++usb:v056Ap00D4* ++ ID_MODEL_FROM_DATABASE=Bamboo Pen (CTL-460) ++ + usb:v056Ap00D6* + ID_MODEL_FROM_DATABASE=Bamboo Pen & Touch (CTH-460) + +@@ -17390,6 +17621,12 @@ usb:v056Ap00F6* + usb:v056Ap00F8* + ID_MODEL_FROM_DATABASE=Cintiq 24HD touch (DTH-2400) tablet + ++usb:v056Ap0307* ++ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) tablet ++ ++usb:v056Ap0309* ++ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) touchscreen ++ + usb:v056Ap0400* + ID_MODEL_FROM_DATABASE=PenPartner 4x5 + +@@ -18719,6 +18956,9 @@ usb:v0586p341E* + usb:v0586p341F* + ID_MODEL_FROM_DATABASE=NWD2205 802.11n Wireless N Adapter [Realtek RTL8192CU] + ++usb:v0586p3425* ++ ID_MODEL_FROM_DATABASE=NWD6505 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] ++ + usb:v0586p343E* + ID_MODEL_FROM_DATABASE=N220 802.11bgn Wireless Adapter + +@@ -18737,9 +18977,15 @@ usb:v058A* + usb:v058B* + ID_VENDOR_FROM_DATABASE=Infineon Technologies + ++usb:v058Bp0015* ++ ID_MODEL_FROM_DATABASE=Flash Loader utility ++ + usb:v058Bp001C* + ID_MODEL_FROM_DATABASE=Flash Drive + ++usb:v058Bp0041* ++ ID_MODEL_FROM_DATABASE=Flash Loader utility ++ + usb:v058C* + ID_VENDOR_FROM_DATABASE=In Focus Systems + +@@ -18855,7 +19101,7 @@ usb:v058Fp6366* + ID_MODEL_FROM_DATABASE=Multi Flash Reader + + usb:v058Fp6377* +- ID_MODEL_FROM_DATABASE=Multimedia Card Reader ++ ID_MODEL_FROM_DATABASE=AU6375 4-LUN card reader + + usb:v058Fp6386* + ID_MODEL_FROM_DATABASE=Memory Card +@@ -18926,12 +19172,18 @@ usb:v058Fp9510* + usb:v058Fp9520* + ID_MODEL_FROM_DATABASE=EMV Certified Smart Card Reader + ++usb:v058Fp9540* ++ ID_MODEL_FROM_DATABASE=AU9540 Smartcard Reader ++ + usb:v058Fp9720* + ID_MODEL_FROM_DATABASE=USB-Serial Adapter + + usb:v058FpA014* + ID_MODEL_FROM_DATABASE=Asus Integrated Webcam + ++usb:v058FpB002* ++ ID_MODEL_FROM_DATABASE=Acer Integrated Webcam ++ + usb:v0590* + ID_VENDOR_FROM_DATABASE=Omron Corp. + +@@ -18983,6 +19235,9 @@ usb:v0596p0002* + usb:v0596p0500* + ID_MODEL_FROM_DATABASE=PCT Multitouch HID Controller + ++usb:v0596p0543* ++ ID_MODEL_FROM_DATABASE=DELL XPS touchscreen ++ + usb:v0597* + ID_VENDOR_FROM_DATABASE=Trisignal Communications + +@@ -19055,6 +19310,9 @@ usb:v059Bp0061* + usb:v059Bp006D* + ID_MODEL_FROM_DATABASE=HipZip MP3 Player + ++usb:v059Bp0070* ++ ID_MODEL_FROM_DATABASE=eGo Portable Hard Drive ++ + usb:v059Bp007C* + ID_MODEL_FROM_DATABASE=Ultra Max USB/1394 + +@@ -19163,9 +19421,15 @@ usb:v059Fp0323* + usb:v059Fp0421* + ID_MODEL_FROM_DATABASE=Big Disk G465 + ++usb:v059Fp0525* ++ ID_MODEL_FROM_DATABASE=BigDisk Extreme 500 ++ + usb:v059Fp0641* + ID_MODEL_FROM_DATABASE=Mobile Hard Drive + ++usb:v059Fp0829* ++ ID_MODEL_FROM_DATABASE=BigDisk Extreme+ ++ + usb:v059Fp100C* + ID_MODEL_FROM_DATABASE=Rugged Triple Interface Mobile Hard Drive + +@@ -19190,6 +19454,9 @@ usb:v059Fp1049* + usb:v059Fp1052* + ID_MODEL_FROM_DATABASE=P'9220 Mobile Drive + ++usb:v059Fp1064* ++ ID_MODEL_FROM_DATABASE=Rugged 16 and 32 GB ++ + usb:v059FpA601* + ID_MODEL_FROM_DATABASE=HardDrive + +@@ -19464,7 +19731,7 @@ usb:v05ACp0225* + ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (JIS) + + usb:v05ACp0229* +- ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ANSI) ++ ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (ANSI) + + usb:v05ACp022A* + ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ISO) +@@ -19545,7 +19812,7 @@ usb:v05ACp0302* + ID_MODEL_FROM_DATABASE=Optical Mouse [Fujitsu] + + usb:v05ACp0304* +- ID_MODEL_FROM_DATABASE=Optical USB Mouse [Mitsumi] ++ ID_MODEL_FROM_DATABASE=Mighty Mouse [Mitsumi, M1152] + + usb:v05ACp0306* + ID_MODEL_FROM_DATABASE=Optical USB Mouse [Fujitsu] +@@ -19577,6 +19844,9 @@ usb:v05ACp1003* + usb:v05ACp1006* + ID_MODEL_FROM_DATABASE=Hub in Aluminum Keyboard + ++usb:v05ACp1008* ++ ID_MODEL_FROM_DATABASE=Mini DisplayPort to Dual-Link DVI Adapter ++ + usb:v05ACp1101* + ID_MODEL_FROM_DATABASE=Speakers + +@@ -19670,6 +19940,9 @@ usb:v05ACp1265* + usb:v05ACp1266* + ID_MODEL_FROM_DATABASE=iPod Nano 6.Gen + ++usb:v05ACp1267* ++ ID_MODEL_FROM_DATABASE=iPod Nano 7.Gen ++ + usb:v05ACp1281* + ID_MODEL_FROM_DATABASE=Apple Mobile Device [Recovery Mode] + +@@ -19700,6 +19973,9 @@ usb:v05ACp1299* + usb:v05ACp129A* + ID_MODEL_FROM_DATABASE=iPad + ++usb:v05ACp129C* ++ ID_MODEL_FROM_DATABASE=iPhone 4(CDMA) ++ + usb:v05ACp129E* + ID_MODEL_FROM_DATABASE=iPod Touch 4.Gen + +@@ -19712,15 +19988,30 @@ usb:v05ACp12A0* + usb:v05ACp12A2* + ID_MODEL_FROM_DATABASE=iPad 2 (3G; 64GB) + ++usb:v05ACp12A3* ++ ID_MODEL_FROM_DATABASE=iPad 2 (CDMA) ++ ++usb:v05ACp12A4* ++ ID_MODEL_FROM_DATABASE=iPad 3 (wifi) ++ ++usb:v05ACp12A5* ++ ID_MODEL_FROM_DATABASE=iPad 3 (CDMA) ++ + usb:v05ACp12A6* + ID_MODEL_FROM_DATABASE=iPad 3 (3G, 16 GB) + ++usb:v05ACp12A8* ++ ID_MODEL_FROM_DATABASE=iPhone5/5C/5S ++ + usb:v05ACp12A9* + ID_MODEL_FROM_DATABASE=iPad 2 + + usb:v05ACp12AA* + ID_MODEL_FROM_DATABASE=iPod Touch 5.Gen [A1421] + ++usb:v05ACp12AB* ++ ID_MODEL_FROM_DATABASE=iPad 4 (WiFi, 32GB) ++ + usb:v05ACp1300* + ID_MODEL_FROM_DATABASE=iPod Shuffle + +@@ -19742,6 +20033,15 @@ usb:v05ACp1402* + usb:v05ACp1500* + ID_MODEL_FROM_DATABASE=SuperDrive [A1379] + ++usb:v05ACp8005* ++ ID_MODEL_FROM_DATABASE=OHCI Root Hub Simulation ++ ++usb:v05ACp8006* ++ ID_MODEL_FROM_DATABASE=EHCI Root Hub Simulation ++ ++usb:v05ACp8007* ++ ID_MODEL_FROM_DATABASE=XHCI Root Hub USB 2.0 Simulation ++ + usb:v05ACp8202* + ID_MODEL_FROM_DATABASE=HCF V.90 Data/Fax Modem + +@@ -19838,6 +20138,9 @@ usb:v05ACp8510* + usb:v05ACp911C* + ID_MODEL_FROM_DATABASE=Hub in A1082 [Cinema HD Display 23"] + ++usb:v05ACp9127* ++ ID_MODEL_FROM_DATABASE=Hub in Thunderbolt Display ++ + usb:v05ACp912F* + ID_MODEL_FROM_DATABASE=Hub in 30" Cinema Display + +@@ -20042,6 +20345,9 @@ usb:v05C6p9202* + usb:v05C6p9203* + ID_MODEL_FROM_DATABASE=Gobi Wireless Modem + ++usb:v05C6p9205* ++ ID_MODEL_FROM_DATABASE=Gobi 2000 ++ + usb:v05C6p9211* + ID_MODEL_FROM_DATABASE=Acer Gobi Wireless Modem (QDL mode) + +@@ -20123,9 +20429,18 @@ usb:v05C8p021A* + usb:v05C8p0318* + ID_MODEL_FROM_DATABASE=Webcam + ++usb:v05C8p0361* ++ ID_MODEL_FROM_DATABASE=SunplusIT INC. HP Truevision HD Webcam ++ ++usb:v05C8p036E* ++ ID_MODEL_FROM_DATABASE=Webcam ++ + usb:v05C8p0403* + ID_MODEL_FROM_DATABASE=Webcam + ++usb:v05C8p041B* ++ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam ++ + usb:v05C9* + ID_VENDOR_FROM_DATABASE=Semtech Corp. + +@@ -20861,6 +21176,9 @@ usb:v05DCp4D12* + usb:v05DCp4D30* + ID_MODEL_FROM_DATABASE=MP3 Player + ++usb:v05DCpA209* ++ ID_MODEL_FROM_DATABASE=JumpDrive S70 ++ + usb:v05DCpA300* + ID_MODEL_FROM_DATABASE=JumpDrive2 + +@@ -20921,6 +21239,9 @@ usb:v05DCpA701* + usb:v05DCpA731* + ID_MODEL_FROM_DATABASE=JumpDrive FireFly + ++usb:v05DCpA768* ++ ID_MODEL_FROM_DATABASE=JumpDrive Retrax ++ + usb:v05DCpA790* + ID_MODEL_FROM_DATABASE=JumpDrive 2GB + +@@ -20930,6 +21251,9 @@ usb:v05DCpA811* + usb:v05DCpA813* + ID_MODEL_FROM_DATABASE=16gB flash thumb drive + ++usb:v05DCpA815* ++ ID_MODEL_FROM_DATABASE=JumpDrive V10 ++ + usb:v05DCpB002* + ID_MODEL_FROM_DATABASE=USB CF Reader + +@@ -20939,6 +21263,9 @@ usb:v05DCpB018* + usb:v05DCpB047* + ID_MODEL_FROM_DATABASE=SDHC Reader [RW047-7000] + ++usb:v05DCpBA02* ++ ID_MODEL_FROM_DATABASE=Workflow CFR1 ++ + usb:v05DCpC753* + ID_MODEL_FROM_DATABASE=JumpDrive TwistTurn + +@@ -21084,7 +21411,7 @@ usb:v05E3p0607* + ID_MODEL_FROM_DATABASE=Logitech G110 Hub + + usb:v05E3p0608* +- ID_MODEL_FROM_DATABASE=USB-2.0 4-Port HUB ++ ID_MODEL_FROM_DATABASE=Hub + + usb:v05E3p0610* + ID_MODEL_FROM_DATABASE=4-port hub +@@ -21158,6 +21485,9 @@ usb:v05E3p0718* + usb:v05E3p0719* + ID_MODEL_FROM_DATABASE=SATA adapter + ++usb:v05E3p0722* ++ ID_MODEL_FROM_DATABASE=SD/MMC card reader ++ + usb:v05E3p0723* + ID_MODEL_FROM_DATABASE=GL827L SD/MMC/MS Flash Card Reader + +@@ -21170,9 +21500,18 @@ usb:v05E3p0727* + usb:v05E3p0731* + ID_MODEL_FROM_DATABASE=GL3310 SATA 3Gb/s Bridge Controller + ++usb:v05E3p0732* ++ ID_MODEL_FROM_DATABASE=All-in-One Cardreader ++ + usb:v05E3p0736* + ID_MODEL_FROM_DATABASE=microSD Reader/Writer + ++usb:v05E3p0741* ++ ID_MODEL_FROM_DATABASE=microSD Card Reader ++ ++usb:v05E3p0743* ++ ID_MODEL_FROM_DATABASE=SDXC and microSDXC CardReader ++ + usb:v05E3p0760* + ID_MODEL_FROM_DATABASE=USB 2.0 Card Reader/Writer + +@@ -21296,6 +21635,9 @@ usb:v05F3p0081* + usb:v05F3p00FF* + ID_MODEL_FROM_DATABASE=VEC Footpedal + ++usb:v05F3p0203* ++ ID_MODEL_FROM_DATABASE=Y-mouse Keyboard & Mouse Adapter ++ + usb:v05F3p020B* + ID_MODEL_FROM_DATABASE=PS2 Adapter + +@@ -21410,6 +21752,9 @@ usb:v05FEp0014* + usb:v05FEp1010* + ID_MODEL_FROM_DATABASE=Optical Wireless + ++usb:v05FEp2001* ++ ID_MODEL_FROM_DATABASE=Microsoft Wireless Receiver 700 ++ + usb:v05FF* + ID_VENDOR_FROM_DATABASE=LeCroy Corp. + +@@ -21434,6 +21779,9 @@ usb:v0603* + usb:v0603p00F1* + ID_MODEL_FROM_DATABASE=Keyboard + ++usb:v0603p00F2* ++ ID_MODEL_FROM_DATABASE=Keyboard (Labtec Ultra Flat Keyboard) ++ + usb:v0603p6871* + ID_MODEL_FROM_DATABASE=Mouse + +@@ -21491,6 +21839,9 @@ usb:v060Bp2231* + usb:v060Bp2270* + ID_MODEL_FROM_DATABASE=Gigabyte K8100 Aivia Gaming Keyboard + ++usb:v060Bp5253* ++ ID_MODEL_FROM_DATABASE=Thermaltake MEKA G-Unit Gaming Keyboard ++ + usb:v060Bp5811* + ID_MODEL_FROM_DATABASE=ACK-571U Wireless Keyboard + +@@ -21911,6 +22262,9 @@ usb:v064EpA110* + usb:v064EpA114* + ID_MODEL_FROM_DATABASE=Lemote Webcam + ++usb:v064EpA116* ++ ID_MODEL_FROM_DATABASE=UVC 1.3MPixel WebCam ++ + usb:v064EpA136* + ID_MODEL_FROM_DATABASE=Asus Integrated Webcam [CN031B] + +@@ -22893,7 +23247,7 @@ usb:v068Ep00F4* + ID_MODEL_FROM_DATABASE=Combatstick + + usb:v068Ep00FA* +- ID_MODEL_FROM_DATABASE=Flight Sim Pedals ++ ID_MODEL_FROM_DATABASE=Ch Throttle Quadrant + + usb:v068Ep00FF* + ID_MODEL_FROM_DATABASE=Flight Sim Yoke +@@ -22955,6 +23309,9 @@ usb:v0698p9999* + usb:v0699* + ID_VENDOR_FROM_DATABASE=Tektronix, Inc. + ++usb:v0699p0347* ++ ID_MODEL_FROM_DATABASE=AFG 3022B ++ + usb:v069A* + ID_VENDOR_FROM_DATABASE=Askey Computer Corp. + +@@ -23486,6 +23843,9 @@ usb:v06C2* + usb:v06C2p0030* + ID_MODEL_FROM_DATABASE=PhidgetRFID + ++usb:v06C2p0031* ++ ID_MODEL_FROM_DATABASE=RFID reader ++ + usb:v06C2p0038* + ID_MODEL_FROM_DATABASE=4-Motor PhidgetServo v3.0 + +@@ -23789,6 +24149,12 @@ usb:v06D3p0394* + usb:v06D3p03A1* + ID_MODEL_FROM_DATABASE=CP9550D/DW Port + ++usb:v06D3p3B30* ++ ID_MODEL_FROM_DATABASE=CP-D70DW / CP-D707DW ++ ++usb:v06D3p3B31* ++ ID_MODEL_FROM_DATABASE=CP-K60DW-S ++ + usb:v06D4* + ID_VENDOR_FROM_DATABASE=Cisco Systems + +@@ -24575,6 +24941,9 @@ usb:v072Fp1000* + usb:v072Fp1001* + ID_MODEL_FROM_DATABASE=PLDT Drive + ++usb:v072Fp2200* ++ ID_MODEL_FROM_DATABASE=ACR122U ++ + usb:v072Fp8002* + ID_MODEL_FROM_DATABASE=AET63 BioTRUSTKey + +@@ -25046,6 +25415,12 @@ usb:v0765* + usb:v0765p5001* + ID_MODEL_FROM_DATABASE=Huey PRO Colorimeter + ++usb:v0765p5020* ++ ID_MODEL_FROM_DATABASE=i1 Display Pro ++ ++usb:v0765p6003* ++ ID_MODEL_FROM_DATABASE=ColorMunki Smile ++ + usb:v0765pD094* + ID_MODEL_FROM_DATABASE=X-Rite DTP94 [Quato Silver Haze Pro] + +@@ -25325,12 +25700,24 @@ usb:v0781p5530* + usb:v0781p5567* + ID_MODEL_FROM_DATABASE=Cruzer Blade + ++usb:v0781p556C* ++ ID_MODEL_FROM_DATABASE=Ultra ++ ++usb:v0781p556D* ++ ID_MODEL_FROM_DATABASE=Memory Vault ++ + usb:v0781p5571* + ID_MODEL_FROM_DATABASE=Cruzer Fit + ++usb:v0781p5576* ++ ID_MODEL_FROM_DATABASE=Cruzer Facet ++ + usb:v0781p5580* + ID_MODEL_FROM_DATABASE=SDCZ80 Flash Drive + ++usb:v0781p5581* ++ ID_MODEL_FROM_DATABASE=Ultra ++ + usb:v0781p5E10* + ID_MODEL_FROM_DATABASE=Encrypted + +@@ -25830,7 +26217,7 @@ usb:v07AAp001A* + ID_MODEL_FROM_DATABASE=ULUSB-11 Key + + usb:v07AAp001C* +- ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] ++ ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] + + usb:v07AAp002E* + ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] +@@ -26114,6 +26501,9 @@ usb:v07B4p0114* + usb:v07B4p0118* + ID_MODEL_FROM_DATABASE=Mju Mini Digital/Mju Digital 500 Camera / Stylus 850 SW + ++usb:v07B4p0125* ++ ID_MODEL_FROM_DATABASE=Tough TG-1 Camera ++ + usb:v07B4p0184* + ID_MODEL_FROM_DATABASE=P-S100 port + +@@ -26441,6 +26831,9 @@ usb:v07C4pA400* + usb:v07C4pA600* + ID_MODEL_FROM_DATABASE=Card Reader + ++usb:v07C4pA604* ++ ID_MODEL_FROM_DATABASE=12-in-1 Card Reader ++ + usb:v07C4pAD01* + ID_MODEL_FROM_DATABASE=Mass Storage Device + +@@ -26474,6 +26867,9 @@ usb:v07C4pC010* + usb:v07C5* + ID_VENDOR_FROM_DATABASE=APG Cash Drawer + ++usb:v07C5p0500* ++ ID_MODEL_FROM_DATABASE=Cash Drawer ++ + usb:v07C6* + ID_VENDOR_FROM_DATABASE=ShareWave, Inc. + +@@ -27140,6 +27536,9 @@ usb:v0803* + usb:v0803p1300* + ID_MODEL_FROM_DATABASE=V92 Faxmodem + ++usb:v0803p3095* ++ ID_MODEL_FROM_DATABASE=V.92 56K Mini External Modem Model 3095 ++ + usb:v0803p4310* + ID_MODEL_FROM_DATABASE=4410a Wireless-G Adapter [Intersil ISL3887] + +@@ -27713,6 +28112,9 @@ usb:v0846p9018* + usb:v0846p9020* + ID_MODEL_FROM_DATABASE=WNA3100(v1) Wireless-N 300 [Broadcom BCM43231] + ++usb:v0846p9021* ++ ID_MODEL_FROM_DATABASE=WNA3100M(v1) Wireless-N 300 [Realtek RTL8192CU] ++ + usb:v0846p9030* + ID_MODEL_FROM_DATABASE=WNA1100 Wireless-N 150 [Atheros AR9271] + +@@ -27722,9 +28124,21 @@ usb:v0846p9040* + usb:v0846p9041* + ID_MODEL_FROM_DATABASE=WNA1000M 802.11bgn [Realtek RTL8188CUS] + ++usb:v0846p9042* ++ ID_MODEL_FROM_DATABASE=On Networks N150MA 802.11bgn [Realtek RTL8188CUS] ++ ++usb:v0846p9050* ++ ID_MODEL_FROM_DATABASE=A6200 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] ++ ++usb:v0846p9052* ++ ID_MODEL_FROM_DATABASE=A6100 AC600 DB Wireless Adapter [Realtek RTL8811AU] ++ + usb:v0846pA001* + ID_MODEL_FROM_DATABASE=PA101 10 Mbps HPNA Home Phoneline RJ-1 + ++usb:v0846pF001* ++ ID_MODEL_FROM_DATABASE=On Networks N300MA 802.11bgn [Realtek RTL8192CU] ++ + usb:v084D* + ID_VENDOR_FROM_DATABASE=Minton Optic Industry Co., Inc. + +@@ -27875,8 +28289,17 @@ usb:v085Ap8027* + usb:v085C* + ID_VENDOR_FROM_DATABASE=ColorVision, Inc. + ++usb:v085Cp0100* ++ ID_MODEL_FROM_DATABASE=Spyder 1 ++ + usb:v085Cp0200* +- ID_MODEL_FROM_DATABASE=Monitor Spyder ++ ID_MODEL_FROM_DATABASE=Spyder 2 ++ ++usb:v085Cp0300* ++ ID_MODEL_FROM_DATABASE=Spyder 3 ++ ++usb:v085Cp0400* ++ ID_MODEL_FROM_DATABASE=Spyder 4 + + usb:v0862* + ID_VENDOR_FROM_DATABASE=Teletrol Systems, Inc. +@@ -28127,6 +28550,12 @@ usb:v0892* + usb:v0892p0101* + ID_MODEL_FROM_DATABASE=Smartdio Reader/Writer + ++usb:v0894* ++ ID_VENDOR_FROM_DATABASE=TSI Incorporated ++ ++usb:v0894p0010* ++ ID_MODEL_FROM_DATABASE=Remote NDIS Network Device ++ + usb:v0897* + ID_VENDOR_FROM_DATABASE=Lauterbach + +@@ -28181,6 +28610,18 @@ usb:v08A9p0015* + usb:v08AE* + ID_VENDOR_FROM_DATABASE=Macally (Mace Group, Inc.) + ++usb:v08B0* ++ ID_VENDOR_FROM_DATABASE=Metrohm ++ ++usb:v08B0p0006* ++ ID_MODEL_FROM_DATABASE=814 Sample Processor ++ ++usb:v08B0p0015* ++ ID_MODEL_FROM_DATABASE=857 Titrando ++ ++usb:v08B0p001A* ++ ID_MODEL_FROM_DATABASE=852 Titrando ++ + usb:v08B4* + ID_VENDOR_FROM_DATABASE=Sorenson Vision, Inc. + +@@ -29036,6 +29477,12 @@ usb:v0906* + usb:v0908* + ID_VENDOR_FROM_DATABASE=Siemens AG + ++usb:v0908p01F4* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5711 ++ ++usb:v0908p01FE* ++ ID_MODEL_FROM_DATABASE=SIMATIC NET PC Adapter A2 ++ + usb:v0908p2701* + ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA + +@@ -29285,12 +29732,18 @@ usb:v091Ep23CC* + usb:v091Ep2459* + ID_MODEL_FROM_DATABASE=GPSmap 62/78 series + ++usb:v091Ep2491* ++ ID_MODEL_FROM_DATABASE=Edge 800 ++ + usb:v091Ep2519* + ID_MODEL_FROM_DATABASE=eTrex 30 + + usb:v091Ep2535* + ID_MODEL_FROM_DATABASE=Edge 800 + ++usb:v091Ep253C* ++ ID_MODEL_FROM_DATABASE=GPSmap 62sc ++ + usb:v091Ep255B* + ID_MODEL_FROM_DATABASE=Nuvi 2505LM + +@@ -29315,12 +29768,18 @@ usb:v0922p0007* + usb:v0922p0009* + ID_MODEL_FROM_DATABASE=LabelWriter 310 + ++usb:v0922p0019* ++ ID_MODEL_FROM_DATABASE=LabelWriter 400 ++ + usb:v0922p001A* + ID_MODEL_FROM_DATABASE=LabelWriter 400 Turbo + + usb:v0922p0020* + ID_MODEL_FROM_DATABASE=LabelWriter 450 + ++usb:v0922p1001* ++ ID_MODEL_FROM_DATABASE=LabelManager PnP ++ + usb:v0923* + ID_VENDOR_FROM_DATABASE=IC Media Corp. + +@@ -29363,6 +29822,9 @@ usb:v0925* + usb:v0925p0005* + ID_MODEL_FROM_DATABASE=Gamtec.,Ltd SmartJoy PLUS Adapter + ++usb:v0925p03E8* ++ ID_MODEL_FROM_DATABASE=Wii Classic Controller Adapter ++ + usb:v0925p3881* + ID_MODEL_FROM_DATABASE=Saleae Logic + +@@ -29417,6 +29879,9 @@ usb:v0930p000C* + usb:v0930p0010* + ID_MODEL_FROM_DATABASE=Gigabeat S (mtp) + ++usb:v0930p0200* ++ ID_MODEL_FROM_DATABASE=Integrated Bluetooth (Taiyo Yuden) ++ + usb:v0930p0301* + ID_MODEL_FROM_DATABASE=PCX1100U Cable Modem (WDM) + +@@ -29483,6 +29948,9 @@ usb:v0930p070B* + usb:v0930p0A07* + ID_MODEL_FROM_DATABASE=WLM-10U1 802.11abgn Wireless Adapter [Ralink RT3572] + ++usb:v0930p0A13* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Toshiba] ++ + usb:v0930p0B05* + ID_MODEL_FROM_DATABASE=PX1220E-1G25 External hard drive + +@@ -29691,7 +30159,7 @@ usb:v0939* + ID_VENDOR_FROM_DATABASE=Lumberg, Inc. + + usb:v0939p0B15* +- ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 1TB (PX1710E-1HJ0) ++ ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 + + usb:v093A* + ID_VENDOR_FROM_DATABASE=Pixart Imaging, Inc. +@@ -29753,6 +30221,9 @@ usb:v093Ap260F* + usb:v093Ap2621* + ID_MODEL_FROM_DATABASE=PAC731x Trust Webcam + ++usb:v093Ap2622* ++ ID_MODEL_FROM_DATABASE=Webcam Genius ++ + usb:v093Ap2624* + ID_MODEL_FROM_DATABASE=Webcam + +@@ -29951,6 +30422,9 @@ usb:v0951p1653* + usb:v0951p1656* + ID_MODEL_FROM_DATABASE=DataTraveler Ultimate G2 + ++usb:v0951p1665* ++ ID_MODEL_FROM_DATABASE=Digital DataTraveler SE9 64GB ++ + usb:v0951p1689* + ID_MODEL_FROM_DATABASE=DataTraveler SE9 + +@@ -29993,6 +30467,9 @@ usb:v0957p0200* + usb:v0957p0202* + ID_MODEL_FROM_DATABASE=E-Video DC-350 Camera + ++usb:v0957p0407* ++ ID_MODEL_FROM_DATABASE=33220A Waveform Generator ++ + usb:v0957p0518* + ID_MODEL_FROM_DATABASE=82357B GPIB Interface + +@@ -30033,7 +30510,7 @@ usb:v095Dp0001* + ID_MODEL_FROM_DATABASE=Polycom ViaVideo + + usb:v0967* +- ID_VENDOR_FROM_DATABASE=Acer (??) ++ ID_VENDOR_FROM_DATABASE=Acer NeWeb Corp. + + usb:v0967p0204* + ID_MODEL_FROM_DATABASE=WarpLink 802.11b Adapter +@@ -30056,6 +30533,12 @@ usb:v096Ep0807* + usb:v0971* + ID_VENDOR_FROM_DATABASE=Gretag-Macbeth AG + ++usb:v0971p2000* ++ ID_MODEL_FROM_DATABASE=i1 Pro ++ ++usb:v0971p2001* ++ ID_MODEL_FROM_DATABASE=i1 Monitor ++ + usb:v0971p2003* + ID_MODEL_FROM_DATABASE=Eye-One display + +@@ -30063,7 +30546,7 @@ usb:v0971p2005* + ID_MODEL_FROM_DATABASE=Huey + + usb:v0971p2007* +- ID_MODEL_FROM_DATABASE=ColorMunki ++ ID_MODEL_FROM_DATABASE=ColorMunki Photo + + usb:v0973* + ID_VENDOR_FROM_DATABASE=Schlumberger +@@ -30182,6 +30665,9 @@ usb:v099Ap0638* + usb:v099Ap610C* + ID_MODEL_FROM_DATABASE=EL-610 Super Mini Electron luminescent Keyboard + ++usb:v099Ap713A* ++ ID_MODEL_FROM_DATABASE=WK-713 Multimedia Keyboard ++ + usb:v099Ap7160* + ID_MODEL_FROM_DATABASE=Hyper Slim Keyboard + +@@ -30375,7 +30861,10 @@ usb:v09D3* + ID_VENDOR_FROM_DATABASE=Com One + + usb:v09D3p0001* +- ID_MODEL_FROM_DATABASE=ISDN TA ++ ID_MODEL_FROM_DATABASE=ISDN TA / Light Rider 128K ++ ++usb:v09D3p000B* ++ ID_MODEL_FROM_DATABASE=Bluetooth Adapter class 1 [BlueLight] + + usb:v09D7* + ID_VENDOR_FROM_DATABASE=Novatel Wireless +@@ -30596,6 +31085,12 @@ usb:v0A07p00DA* + usb:v0A0B* + ID_VENDOR_FROM_DATABASE=Cybex Computer Products Co. + ++usb:v0A0D* ++ ID_VENDOR_FROM_DATABASE=Servergy, Inc ++ ++usb:v0A0Dp2514* ++ ID_MODEL_FROM_DATABASE=CTS-1000 Internal Hub ++ + usb:v0A11* + ID_VENDOR_FROM_DATABASE=Xentec, Inc. + +@@ -30887,6 +31382,9 @@ usb:v0A48p5024* + usb:v0A48p5025* + ID_MODEL_FROM_DATABASE=Mass Storage Device + ++usb:v0A4A* ++ ID_VENDOR_FROM_DATABASE=Ploytec GmbH ++ + usb:v0A4B* + ID_VENDOR_FROM_DATABASE=Fujitsu Media Devices, Ltd + +@@ -31217,6 +31715,9 @@ usb:v0A5CpBD11* + usb:v0A5CpBD13* + ID_MODEL_FROM_DATABASE=BCM4323 802.11abgn Wireless Adapter + ++usb:v0A5CpBD16* ++ ID_MODEL_FROM_DATABASE=BCM4319 802.11bgn Wireless Adapter ++ + usb:v0A5CpBD17* + ID_MODEL_FROM_DATABASE=BCM43236 802.11abgn Wireless Adapter + +@@ -31775,6 +32276,9 @@ usb:v0AC8pC33F* + usb:v0AC8pC429* + ID_MODEL_FROM_DATABASE=Lenovo ThinkCentre Web Camera + ++usb:v0AC8pC42D* ++ ID_MODEL_FROM_DATABASE=Lenovo IdeaCentre Web Camera ++ + usb:v0AC9* + ID_VENDOR_FROM_DATABASE=Micro Solutions, Inc. + +@@ -31823,6 +32327,9 @@ usb:v0ACDp0630* + usb:v0ACDp0810* + ID_MODEL_FROM_DATABASE=SecurePIN (IDPA-506100Y) PIN Pad + ++usb:v0ACDp2030* ++ ID_MODEL_FROM_DATABASE=ValueMag Magnetic Stripe Reader ++ + usb:v0ACE* + ID_VENDOR_FROM_DATABASE=ZyDAS + +@@ -32024,6 +32531,12 @@ usb:v0AF9p0010* + usb:v0AF9p0011* + ID_MODEL_FROM_DATABASE=Micro Innovations IC50C Webcam + ++usb:v0AFA* ++ ID_VENDOR_FROM_DATABASE=DMC Co., Ltd. ++ ++usb:v0AFAp07D2* ++ ID_MODEL_FROM_DATABASE=Controller Board for Projected Capacitive Touch Screen DUS3000 ++ + usb:v0AFC* + ID_VENDOR_FROM_DATABASE=Zaptronix Ltd + +@@ -32042,6 +32555,9 @@ usb:v0B00* + usb:v0B05* + ID_VENDOR_FROM_DATABASE=ASUSTek Computer, Inc. + ++usb:v0B05p0001* ++ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (CD-ROM mode) ++ + usb:v0B05p1101* + ID_MODEL_FROM_DATABASE=Mass Storage (UISDMC4S) + +@@ -32147,6 +32663,9 @@ usb:v0B05p1784* + usb:v0B05p1786* + ID_MODEL_FROM_DATABASE=USB-N10 802.11n Network Adapter [Realtek RTL8188SU] + ++usb:v0B05p1788* ++ ID_MODEL_FROM_DATABASE=BT-270 Bluetooth Adapter ++ + usb:v0B05p1791* + ID_MODEL_FROM_DATABASE=WL-167G v3 802.11n Adapter [Realtek RTL8188SU] + +@@ -32159,12 +32678,18 @@ usb:v0B05p179E* + usb:v0B05p179F* + ID_MODEL_FROM_DATABASE=Eee Note EA800 (tablet mode) + ++usb:v0B05p17A0* ++ ID_MODEL_FROM_DATABASE=Xonar U3 sound card ++ + usb:v0B05p17A1* + ID_MODEL_FROM_DATABASE=Eee Note EA800 (mass storage mode) + + usb:v0B05p17AB* + ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] + ++usb:v0B05p17C9* ++ ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] ++ + usb:v0B05p4C80* + ID_MODEL_FROM_DATABASE=Transformer Pad TF300TG + +@@ -32183,6 +32708,12 @@ usb:v0B05p4D01* + usb:v0B05p4DAF* + ID_MODEL_FROM_DATABASE=Transformer Pad Infinity TF700 (Fastboot) + ++usb:v0B05p5410* ++ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (MTP mode) ++ ++usb:v0B05p5412* ++ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) ++ + usb:v0B05p6101* + ID_MODEL_FROM_DATABASE=Cable Modem + +@@ -32228,9 +32759,15 @@ usb:v0B0E* + usb:v0B0Ep0420* + ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 + ++usb:v0B0Ep094D* ++ ID_MODEL_FROM_DATABASE=GN Netcom / Jabra REVO Wireless ++ + usb:v0B0Ep1022* + ID_MODEL_FROM_DATABASE=Jabra PRO 9450, Type 9400BS (DECT Headset) + ++usb:v0B0Ep2007* ++ ID_MODEL_FROM_DATABASE=GN 2000 Stereo Corded Headset ++ + usb:v0B0Ep620C* + ID_MODEL_FROM_DATABASE=Jabra BT620s + +@@ -32291,6 +32828,9 @@ usb:v0B33* + usb:v0B33p0020* + ID_MODEL_FROM_DATABASE=ShuttleXpress + ++usb:v0B33p0700* ++ ID_MODEL_FROM_DATABASE=RollerMouse Pro ++ + usb:v0B37* + ID_VENDOR_FROM_DATABASE=Hitachi ULSI Systems Co., Ltd + +@@ -32687,6 +33227,9 @@ usb:v0B95p1720* + usb:v0B95p1780* + ID_MODEL_FROM_DATABASE=AX88178 + ++usb:v0B95p1790* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet ++ + usb:v0B95p7720* + ID_MODEL_FROM_DATABASE=AX88772 + +@@ -32786,6 +33329,9 @@ usb:v0BAFp011B* + usb:v0BAFp0121* + ID_MODEL_FROM_DATABASE=USR5423 802.11bg Wireless Adapter [ZyDAS ZD1211B] + ++usb:v0BAFp0303* ++ ID_MODEL_FROM_DATABASE=USR5637 56K Faxmodem ++ + usb:v0BAFp6112* + ID_MODEL_FROM_DATABASE=FaxModem Model 5633 + +@@ -33332,6 +33878,9 @@ usb:v0BB4p0C01* + usb:v0BB4p0C02* + ID_MODEL_FROM_DATABASE=Dream / ADP1 / G1 / Magic / Tattoo (Debug) + ++usb:v0BB4p0C03* ++ ID_MODEL_FROM_DATABASE=Android Phone [Fairphone First Edition (FP1)] ++ + usb:v0BB4p0C13* + ID_MODEL_FROM_DATABASE=Diamond + +@@ -33371,6 +33920,12 @@ usb:v0BB4p0CA2* + usb:v0BB4p0CA5* + ID_MODEL_FROM_DATABASE=Android Phone [Evo Shift 4G] + ++usb:v0BB4p0CAE* ++ ID_MODEL_FROM_DATABASE=T-Mobile MyTouch 4G Slide [Doubleshot] ++ ++usb:v0BB4p0DEA* ++ ID_MODEL_FROM_DATABASE=M7_UL [HTC One] ++ + usb:v0BB4p0FF8* + ID_MODEL_FROM_DATABASE=Desire HD (Tethering Mode) + +@@ -33443,18 +33998,33 @@ usb:v0BC2p2320* + usb:v0BC2p3008* + ID_MODEL_FROM_DATABASE=FreeAgent Desk 1TB + ++usb:v0BC2p3101* ++ ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB ++ ++usb:v0BC2p3312* ++ ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] ++ + usb:v0BC2p3320* + ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] + + usb:v0BC2p3332* + ID_MODEL_FROM_DATABASE=Expansion + ++usb:v0BC2p5020* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex ++ + usb:v0BC2p5021* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 2.0 + ++usb:v0BC2p5030* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Upgrade Cable STAE104 ++ + usb:v0BC2p5031* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 3.0 + ++usb:v0BC2p5070* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk ++ + usb:v0BC2p50A1* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk + +@@ -33476,6 +34046,9 @@ usb:v0BC2pA0A1* + usb:v0BC2pA0A4* + ID_MODEL_FROM_DATABASE=Backup Plus Desktop Drive + ++usb:v0BC2pAB00* ++ ID_MODEL_FROM_DATABASE=Slim Portable Drive ++ + usb:v0BC3* + ID_VENDOR_FROM_DATABASE=IPWireless, Inc. + +@@ -33650,6 +34223,12 @@ usb:v0BDAp0184* + usb:v0BDAp0186* + ID_MODEL_FROM_DATABASE=Card Reader + ++usb:v0BDAp0301* ++ ID_MODEL_FROM_DATABASE=multicard reader ++ ++usb:v0BDAp1724* ++ ID_MODEL_FROM_DATABASE=RTL8723AU 802.11n WLAN Adapter ++ + usb:v0BDAp2831* + ID_MODEL_FROM_DATABASE=RTL2831U DVB-T + +@@ -33707,6 +34286,9 @@ usb:v0BDAp8198* + usb:v0BDAp8199* + ID_MODEL_FROM_DATABASE=RTL8187SU 802.11g WLAN Adapter + ++usb:v0BDAp8812* ++ ID_MODEL_FROM_DATABASE=RTL8812AU 802.11a/b/g/n/ac WLAN Adapter ++ + usb:v0BDB* + ID_VENDOR_FROM_DATABASE=Ericsson Business Mobile Networks BV + +@@ -34038,7 +34620,7 @@ usb:v0C24p0019* + ID_MODEL_FROM_DATABASE=Bluetooth Device + + usb:v0C24p0021* +- ID_MODEL_FROM_DATABASE=Bluetooth Device ++ ID_MODEL_FROM_DATABASE=Bluetooth Device (V2.1+EDR) + + usb:v0C24p0C24* + ID_MODEL_FROM_DATABASE=Bluetooth Device(SAMPLE) +@@ -34142,6 +34724,9 @@ usb:v0C45* + usb:v0C45p0011* + ID_MODEL_FROM_DATABASE=EBUDDY + ++usb:v0C45p0520* ++ ID_MODEL_FROM_DATABASE=MaxTrack Wireless Mouse ++ + usb:v0C45p1018* + ID_MODEL_FROM_DATABASE=Compact Flash storage memory card reader + +@@ -34496,9 +35081,15 @@ usb:v0C45p62C0* + usb:v0C45p62E0* + ID_MODEL_FROM_DATABASE=MSI Starcam Racer + ++usb:v0C45p6300* ++ ID_MODEL_FROM_DATABASE=PC Microscope camera ++ + usb:v0C45p6310* + ID_MODEL_FROM_DATABASE=Sonix USB 2.0 Camera + ++usb:v0C45p6340* ++ ID_MODEL_FROM_DATABASE=Camera ++ + usb:v0C45p6341* + ID_MODEL_FROM_DATABASE=Defender G-Lens 2577 HD720p Camera + +@@ -34526,6 +35117,12 @@ usb:v0C45p6419* + usb:v0C45p641D* + ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam + ++usb:v0C45p643F* ++ ID_MODEL_FROM_DATABASE=Dell Integrated HD Webcam ++ ++usb:v0C45p644D* ++ ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam ++ + usb:v0C45p6480* + ID_MODEL_FROM_DATABASE=Sonix 1.3 MP Laptop Integrated Webcam + +@@ -34535,6 +35132,9 @@ usb:v0C45p648B* + usb:v0C45p64BD* + ID_MODEL_FROM_DATABASE=Sony Visual Communication Camera + ++usb:v0C45p7401* ++ ID_MODEL_FROM_DATABASE=TEMPer Temperature Sensor ++ + usb:v0C45p7402* + ID_MODEL_FROM_DATABASE=TEMPerHUM Temperature & Humidity Sensor + +@@ -35390,6 +35990,9 @@ usb:v0CF3p3000* + usb:v0CF3p3002* + ID_MODEL_FROM_DATABASE=AR3011 Bluetooth + ++usb:v0CF3p3004* ++ ID_MODEL_FROM_DATABASE=AR3012 Bluetooth 4.0 ++ + usb:v0CF3p3005* + ID_MODEL_FROM_DATABASE=AR3011 Bluetooth + +@@ -35564,6 +36167,15 @@ usb:v0D35* + usb:v0D3A* + ID_VENDOR_FROM_DATABASE=Posiflex Technologies, Inc. + ++usb:v0D3Ap0206* ++ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer ++ ++usb:v0D3Ap0207* ++ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer ++ ++usb:v0D3Ap0500* ++ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader ++ + usb:v0D3C* + ID_VENDOR_FROM_DATABASE=Sri Cable Technology, Ltd + +@@ -35573,6 +36185,9 @@ usb:v0D3D* + usb:v0D3Dp0001* + ID_MODEL_FROM_DATABASE=HID Keyboard + ++usb:v0D3Dp0040* ++ ID_MODEL_FROM_DATABASE=PS/2 Adapter ++ + usb:v0D3E* + ID_VENDOR_FROM_DATABASE=Fitcom, inc. + +@@ -35651,6 +36266,9 @@ usb:v0D49p7010* + usb:v0D49p7100* + ID_MODEL_FROM_DATABASE=OneTouch II 300GB External Hard Disk + ++usb:v0D49p7310* ++ ID_MODEL_FROM_DATABASE=OneTouch 4 ++ + usb:v0D49p7410* + ID_MODEL_FROM_DATABASE=Mobile Hard Disk Drive (1TB) + +@@ -35858,6 +36476,9 @@ usb:v0D78* + usb:v0D7A* + ID_VENDOR_FROM_DATABASE=MARX Datentechnik GmbH + ++usb:v0D7Ap0001* ++ ID_MODEL_FROM_DATABASE=CrypToken ++ + usb:v0D7B* + ID_VENDOR_FROM_DATABASE=Wellco Technology Co., Ltd + +@@ -36404,6 +37025,12 @@ usb:v0DB7* + usb:v0DB7p0002* + ID_MODEL_FROM_DATABASE=Goldpfeil P-LAN + ++usb:v0DBA* ++ ID_VENDOR_FROM_DATABASE=Digidesign ++ ++usb:v0DBAp3000* ++ ID_MODEL_FROM_DATABASE=Mbox 2 ++ + usb:v0DBC* + ID_VENDOR_FROM_DATABASE=A&D Medical + +@@ -36776,6 +37403,9 @@ usb:v0DF6p0060* + usb:v0DF6p0062* + ID_MODEL_FROM_DATABASE=WLA-5000 802.11abgn [Ralink RT3572] + ++usb:v0DF6p0072* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Sitecom] ++ + usb:v0DF6p061C* + ID_MODEL_FROM_DATABASE=LN-028 Network USB 2.0 Adapter + +@@ -37253,6 +37883,9 @@ usb:v0E79p14AD* + usb:v0E79p150E* + ID_MODEL_FROM_DATABASE=80 G9 + ++usb:v0E79p3001* ++ ID_MODEL_FROM_DATABASE=40 Titanium ++ + usb:v0E7B* + ID_VENDOR_FROM_DATABASE=On-Tech Industry Co., Ltd + +@@ -37292,9 +37925,15 @@ usb:v0E8Dp1806* + usb:v0E8Dp1836* + ID_MODEL_FROM_DATABASE=Samsung SE-S084 Super WriteMaster Slim External DVD writer + ++usb:v0E8Dp2000* ++ ID_MODEL_FROM_DATABASE=MT65xx Preloader ++ + usb:v0E8Dp3329* + ID_MODEL_FROM_DATABASE=Qstarz BT-Q1000XT + ++usb:v0E8Dp763E* ++ ID_MODEL_FROM_DATABASE=MT7630e Bluetooth Adapter ++ + usb:v0E8F* + ID_VENDOR_FROM_DATABASE=GreenAsia Inc. + +@@ -37302,7 +37941,7 @@ usb:v0E8Fp0003* + ID_MODEL_FROM_DATABASE=MaxFire Blaze2 + + usb:v0E8Fp0012* +- ID_MODEL_FROM_DATABASE=USB Wireless 2.4GHz Gamepad ++ ID_MODEL_FROM_DATABASE=Joystick/Gamepad + + usb:v0E8Fp0016* + ID_MODEL_FROM_DATABASE=4 port USB 1.1 hub UH-174 +@@ -37436,9 +38075,18 @@ usb:v0EB7* + usb:v0EB8* + ID_VENDOR_FROM_DATABASE=Mettler Toledo + ++usb:v0EB8p2200* ++ ID_MODEL_FROM_DATABASE=Ariva Scale ++ + usb:v0EB8pF000* + ID_MODEL_FROM_DATABASE=PS60 Scale + ++usb:v0EBB* ++ ID_VENDOR_FROM_DATABASE=Thermo Fisher Scientific ++ ++usb:v0EBBp0002* ++ ID_MODEL_FROM_DATABASE=FT-IR Spectrometer ++ + usb:v0EBE* + ID_VENDOR_FROM_DATABASE=VWeb Corp. + +@@ -37559,6 +38207,12 @@ usb:v0EEFp0001* + usb:v0EEFp0002* + ID_MODEL_FROM_DATABASE=Touchscreen Controller(Professional) + ++usb:v0EEFp7200* ++ ID_MODEL_FROM_DATABASE=Touchscreen Controller ++ ++usb:v0EEFpA802* ++ ID_MODEL_FROM_DATABASE=eGalaxTouch EXC7920 ++ + usb:v0EF0* + ID_VENDOR_FROM_DATABASE=Hitachi Cable, Ltd + +@@ -37670,6 +38324,12 @@ usb:v0F12* + usb:v0F13* + ID_VENDOR_FROM_DATABASE=Acetek Technology Co., Ltd + ++usb:v0F14* ++ ID_VENDOR_FROM_DATABASE=Ingenico ++ ++usb:v0F14p0012* ++ ID_MODEL_FROM_DATABASE=Vital'Act 3S ++ + usb:v0F18* + ID_VENDOR_FROM_DATABASE=Finger Lakes Instrumentation + +@@ -37754,6 +38414,12 @@ usb:v0F37* + usb:v0F38* + ID_VENDOR_FROM_DATABASE=Nien-Yi Industrial Corp. + ++usb:v0F39* ++ ID_VENDOR_FROM_DATABASE=TG3 Electronics ++ ++usb:v0F39p0876* ++ ID_MODEL_FROM_DATABASE=Keyboard [87 Francium Pro] ++ + usb:v0F3D* + ID_VENDOR_FROM_DATABASE=Airprime, Incorporated + +@@ -37841,6 +38507,9 @@ usb:v0F63* + usb:v0F63p0010* + ID_MODEL_FROM_DATABASE=Leapster Explorer + ++usb:v0F63p0022* ++ ID_MODEL_FROM_DATABASE=Leap Reader ++ + usb:v0F63p0500* + ID_MODEL_FROM_DATABASE=Fly Fusion + +@@ -37928,6 +38597,9 @@ usb:v0F6Ep0404* + usb:v0F73* + ID_VENDOR_FROM_DATABASE=DFI + ++usb:v0F78* ++ ID_VENDOR_FROM_DATABASE=Guntermann & Drunck GmbH ++ + usb:v0F7C* + ID_VENDOR_FROM_DATABASE=DQ Technology, Inc. + +@@ -38064,7 +38736,7 @@ usb:v0FCAp8001* + ID_MODEL_FROM_DATABASE=Blackberry Handheld + + usb:v0FCAp8004* +- ID_MODEL_FROM_DATABASE=Blackberry Handheld ++ ID_MODEL_FROM_DATABASE=Blackberry + + usb:v0FCAp8007* + ID_MODEL_FROM_DATABASE=Blackberry Handheld +@@ -38147,6 +38819,12 @@ usb:v0FCEp3138* + usb:v0FCEp3149* + ID_MODEL_FROM_DATABASE=Xperia X8 + ++usb:v0FCEp514F* ++ ID_MODEL_FROM_DATABASE=Xperia arc S [Adb-Enable Mode] ++ ++usb:v0FCEp5169* ++ ID_MODEL_FROM_DATABASE=Xperia S [Adb-Enable Mode] ++ + usb:v0FCEp5177* + ID_MODEL_FROM_DATABASE=Xperia Ion [Debug Mode] + +@@ -38309,6 +38987,9 @@ usb:v0FCEpE166* + usb:v0FCEpE167* + ID_MODEL_FROM_DATABASE=XPERIA mini + ++usb:v0FCEpF0FA* ++ ID_MODEL_FROM_DATABASE=Liveview micro display MN800 in DFU mode ++ + usb:v0FCF* + ID_VENDOR_FROM_DATABASE=Dynastream Innovations, Inc. + +@@ -38316,13 +38997,16 @@ usb:v0FCFp1003* + ID_MODEL_FROM_DATABASE=ANT Development Board + + usb:v0FCFp1004* +- ID_MODEL_FROM_DATABASE=ANT2USB ++ ID_MODEL_FROM_DATABASE=ANTUSB Stick + + usb:v0FCFp1006* + ID_MODEL_FROM_DATABASE=ANT Development Board + + usb:v0FCFp1008* +- ID_MODEL_FROM_DATABASE=Mini stick Suunto ++ ID_MODEL_FROM_DATABASE=ANTUSB2 Stick ++ ++usb:v0FCFp1009* ++ ID_MODEL_FROM_DATABASE=ANTUSB-m Stick + + usb:v0FD0* + ID_VENDOR_FROM_DATABASE=Tulip Computers B.V. +@@ -38378,6 +39062,12 @@ usb:v0FDAp0100* + usb:v0FDC* + ID_VENDOR_FROM_DATABASE=Micro Plus + ++usb:v0FDE* ++ ID_VENDOR_FROM_DATABASE=Oregon Scientific ++ ++usb:v0FDEpCA01* ++ ID_MODEL_FROM_DATABASE=WMRS200 weather station ++ + usb:v0FE0* + ID_VENDOR_FROM_DATABASE=Osterhout Design Group + +@@ -38471,6 +39161,9 @@ usb:v0FFF* + usb:v1000* + ID_VENDOR_FROM_DATABASE=Speed Tech Corp. + ++usb:v1000p153B* ++ ID_MODEL_FROM_DATABASE=TerraTec Electronic GmbH ++ + usb:v1001* + ID_VENDOR_FROM_DATABASE=Ritronics Components (S) Pte., Ltd + +@@ -38504,6 +39197,9 @@ usb:v1004p618E* + usb:v1004p618F* + ID_MODEL_FROM_DATABASE=Ally/Optimus One + ++usb:v1004p61C5* ++ ID_MODEL_FROM_DATABASE=P880 / Charge only ++ + usb:v1004p61C6* + ID_MODEL_FROM_DATABASE=Vortex (msc) + +@@ -38514,7 +39210,7 @@ usb:v1004p61F1* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [LG Software mode] + + usb:v1004p61F9* +- ID_MODEL_FROM_DATABASE=V909 G-Slate ++ ID_MODEL_FROM_DATABASE=Optimus (Various Models) MTP Mode + + usb:v1004p61FC* + ID_MODEL_FROM_DATABASE=Optimus 3 +@@ -38528,9 +39224,15 @@ usb:v1004p6300* + usb:v1004p631C* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [MTP mode] + ++usb:v1004p631D* ++ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Camera/PTP Mode) ++ + usb:v1004p631E* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [Camera/PTP mode] + ++usb:v1004p631F* ++ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Charge Mode) ++ + usb:v1004p6356* + ID_MODEL_FROM_DATABASE=Optimus Android Phone [Virtual CD mode] + +@@ -38540,6 +39242,9 @@ usb:v1004p6800* + usb:v1004p7000* + ID_MODEL_FROM_DATABASE=LG LDP-7024D(LD)USB + ++usb:v1004p91C8* ++ ID_MODEL_FROM_DATABASE=P880 / USB tethering ++ + usb:v1004pA400* + ID_MODEL_FROM_DATABASE=Renoir (KC910) + +@@ -38742,13 +39447,13 @@ usb:v1033p0068* + ID_MODEL_FROM_DATABASE=3,5'' HDD case MD-231 + + usb:v1038* +- ID_VENDOR_FROM_DATABASE=Ideazon, Inc. ++ ID_VENDOR_FROM_DATABASE=SteelSeries ApS + + usb:v1038p0100* +- ID_MODEL_FROM_DATABASE=Zboard ++ ID_MODEL_FROM_DATABASE=Ideazon Zboard + + usb:v1038p1361* +- ID_MODEL_FROM_DATABASE=Sensei ++ ID_MODEL_FROM_DATABASE=Ideazon Sensei + + usb:v1039* + ID_VENDOR_FROM_DATABASE=devolo AG +@@ -38946,28 +39651,37 @@ usb:v1058p0704* + ID_MODEL_FROM_DATABASE=Passport External HDD + + usb:v1058p070A* +- ID_MODEL_FROM_DATABASE=My Passport Essential SE ++ ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) + + usb:v1058p071A* + ID_MODEL_FROM_DATABASE=My Passport + + usb:v1058p0730* +- ID_MODEL_FROM_DATABASE=My Passport ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) + + usb:v1058p0740* + ID_MODEL_FROM_DATABASE=My Passport + ++usb:v1058p0741* ++ ID_MODEL_FROM_DATABASE=My Passport Ultra ++ + usb:v1058p0742* + ID_MODEL_FROM_DATABASE=My Passport Essential SE + + usb:v1058p0748* +- ID_MODEL_FROM_DATABASE=My Passport 1TB USB 3.0 ++ ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) ++ ++usb:v1058p0810* ++ ID_MODEL_FROM_DATABASE=My Passport Ultra + + usb:v1058p0900* + ID_MODEL_FROM_DATABASE=MyBook Essential External HDD + + usb:v1058p0901* +- ID_MODEL_FROM_DATABASE=MyBook External HDD ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) ++ ++usb:v1058p0902* ++ ID_MODEL_FROM_DATABASE=My Book Pro Edition + + usb:v1058p0903* + ID_MODEL_FROM_DATABASE=My Book Premium Edition +@@ -38976,20 +39690,32 @@ usb:v1058p0910* + ID_MODEL_FROM_DATABASE=MyBook Essential External HDD + + usb:v1058p1001* +- ID_MODEL_FROM_DATABASE=External Hard Disk [Elements] ++ ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) + + usb:v1058p1003* + ID_MODEL_FROM_DATABASE=Elements 1000 GB + + usb:v1058p1010* +- ID_MODEL_FROM_DATABASE=Elements External HDD ++ ID_MODEL_FROM_DATABASE=Elements Portable (WDBAAR) + + usb:v1058p1021* +- ID_MODEL_FROM_DATABASE=Elements 2TB ++ ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) + + usb:v1058p1023* + ID_MODEL_FROM_DATABASE=Elements SE + ++usb:v1058p1048* ++ ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) ++ ++usb:v1058p10A2* ++ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBPCK) ++ ++usb:v1058p10A8* ++ ID_MODEL_FROM_DATABASE=Elements Portable (WDBUZG) ++ ++usb:v1058p1100* ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition 2.0 (WDH1U) ++ + usb:v1058p1103* + ID_MODEL_FROM_DATABASE=My Book Studio + +@@ -39272,6 +39998,9 @@ usb:v106Fp0009* + usb:v106Fp000A* + ID_MODEL_FROM_DATABASE=CR10x Coin Recycler + ++usb:v106Fp000C* ++ ID_MODEL_FROM_DATABASE=Xchange ++ + usb:v1076* + ID_VENDOR_FROM_DATABASE=GCT Semiconductor, Inc. + +@@ -39335,6 +40064,12 @@ usb:v1099* + usb:v109A* + ID_VENDOR_FROM_DATABASE=DATASOFT Systems GmbH + ++usb:v109B* ++ ID_VENDOR_FROM_DATABASE=Hisense ++ ++usb:v109Bp9118* ++ ID_MODEL_FROM_DATABASE=Medion P4013 Mobile ++ + usb:v109F* + ID_VENDOR_FROM_DATABASE=eSOL Co., Ltd + +@@ -39458,6 +40193,15 @@ usb:v10BF* + usb:v10BFp0001* + ID_MODEL_FROM_DATABASE=SmartHome PowerLinc + ++usb:v10C3* ++ ID_VENDOR_FROM_DATABASE=Universal Laser Systems, Inc. ++ ++usb:v10C3p00A4* ++ ID_MODEL_FROM_DATABASE=ULS PLS Series Laser Engraver Firmware Loader ++ ++usb:v10C3p00A5* ++ ID_MODEL_FROM_DATABASE=ULS Print Support ++ + usb:v10C4* + ID_VENDOR_FROM_DATABASE=Cygnal Integrated Products, Inc. + +@@ -39509,6 +40253,12 @@ usb:v10C4p8461* + usb:v10C4p8477* + ID_MODEL_FROM_DATABASE=Balluff RFID Reader + ++usb:v10C4p8496* ++ ID_MODEL_FROM_DATABASE=SiLabs Cypress FW downloader ++ ++usb:v10C4p8497* ++ ID_MODEL_FROM_DATABASE=SiLabs Cypress EVB ++ + usb:v10C4p8605* + ID_MODEL_FROM_DATABASE=dilitronics ESoLUX solar lighting controller + +@@ -39527,6 +40277,9 @@ usb:v10C4p8863* + usb:v10C4p8897* + ID_MODEL_FROM_DATABASE=C8051F38x HDMI Splitter [UHBX] + ++usb:v10C4p8918* ++ ID_MODEL_FROM_DATABASE=C8051F38x HDMI Audio Extractor [VSA-HA-DP] ++ + usb:v10C4pEA60* + ID_MODEL_FROM_DATABASE=CP210x UART Bridge / myAVR mySmartUSB light + +@@ -39908,6 +40661,9 @@ usb:v1141* + usb:v1142* + ID_VENDOR_FROM_DATABASE=CyberScan Technologies, Inc. + ++usb:v1142p0709* ++ ID_MODEL_FROM_DATABASE=Cyberview High Speed Scanner ++ + usb:v1145* + ID_VENDOR_FROM_DATABASE=Japan Radio Company + +@@ -39938,6 +40694,9 @@ usb:v114D* + usb:v114F* + ID_VENDOR_FROM_DATABASE=Wavecom + ++usb:v114Fp1234* ++ ID_MODEL_FROM_DATABASE=Fastrack Xtend FXT001 Modem ++ + usb:v115B* + ID_VENDOR_FROM_DATABASE=Salix Technology Co., Ltd. + +@@ -40128,7 +40887,7 @@ usb:v1199p683A* + ID_MODEL_FROM_DATABASE=MC8785 Device + + usb:v1199p683C* +- ID_MODEL_FROM_DATABASE=MC8790 Device ++ ID_MODEL_FROM_DATABASE=Mobile Broadband 3G/UMTS (MC8790 Device) + + usb:v1199p6850* + ID_MODEL_FROM_DATABASE=AirCard 880 Device +@@ -40196,6 +40955,12 @@ usb:v1199p9009* + usb:v1199p900A* + ID_MODEL_FROM_DATABASE=Gobi 2000 Wireless Modem + ++usb:v1199p9055* ++ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (NAT mode) ++ ++usb:v1199p9057* ++ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (IP passthrough mode) ++ + usb:v119A* + ID_VENDOR_FROM_DATABASE=ZHAN QI Technology Co., Ltd + +@@ -40238,12 +41003,30 @@ usb:v11ACp6565* + usb:v11B0* + ID_VENDOR_FROM_DATABASE=ATECH FLASH TECHNOLOGY + ++usb:v11B0p6208* ++ ID_MODEL_FROM_DATABASE=PRO-28U ++ ++usb:v11BE* ++ ID_VENDOR_FROM_DATABASE=R&D International NV ++ ++usb:v11BEpF0A0* ++ ID_MODEL_FROM_DATABASE=Martin Maxxyz DMX ++ + usb:v11C5* + ID_VENDOR_FROM_DATABASE=Inmax + + usb:v11C5p0521* + ID_MODEL_FROM_DATABASE=IMT-0521 Smartcard Reader + ++usb:v11CA* ++ ID_VENDOR_FROM_DATABASE=VeriFone Inc ++ ++usb:v11CAp0207* ++ ID_MODEL_FROM_DATABASE=PIN Pad VX 810 ++ ++usb:v11CAp0220* ++ ID_MODEL_FROM_DATABASE=PIN Pad VX 805 ++ + usb:v11DB* + ID_VENDOR_FROM_DATABASE=Topfield Co., Ltd. + +@@ -40274,6 +41057,9 @@ usb:v11F5p0005* + usb:v11F5p0008* + ID_MODEL_FROM_DATABASE=UMTS/HSDPA Data Card + ++usb:v11F5p0101* ++ ID_MODEL_FROM_DATABASE=RCU Connect ++ + usb:v11F6* + ID_VENDOR_FROM_DATABASE=Prolific + +@@ -40284,7 +41070,7 @@ usb:v11F7* + ID_VENDOR_FROM_DATABASE=Alcatel (?) + + usb:v11F7p02DF* +- ID_MODEL_FROM_DATABASE=TD10 Mobile phone USB cable ++ ID_MODEL_FROM_DATABASE=Serial cable (v2) for TD-10 Mobile Phone + + usb:v1203* + ID_VENDOR_FROM_DATABASE=TSC Auto ID Technology Co., Ltd +@@ -40352,6 +41138,9 @@ usb:v1228p0012* + usb:v1228p0015* + ID_MODEL_FROM_DATABASE=TPaq21/MPaq21 Datalogger + ++usb:v1228p584C* ++ ID_MODEL_FROM_DATABASE=XL2 Logger ++ + usb:v1230* + ID_VENDOR_FROM_DATABASE=Chipidea-Microelectronica, S.A. + +@@ -40377,20 +41166,110 @@ usb:v1235* + ID_VENDOR_FROM_DATABASE=Novation EMS + + usb:v1235p0001* +- ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation ++ ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition + + usb:v1235p0002* + ID_MODEL_FROM_DATABASE=Speedio + + usb:v1235p0003* +- ID_MODEL_FROM_DATABASE=ReMOTE ZeRO SL ++ ID_MODEL_FROM_DATABASE=RemoteSL + ZeroSL ++ ++usb:v1235p0004* ++ ID_MODEL_FROM_DATABASE=ReMOTE LE ++ ++usb:v1235p0005* ++ ID_MODEL_FROM_DATABASE=XIOSynth [First Edition] ++ ++usb:v1235p0006* ++ ID_MODEL_FROM_DATABASE=XStation ++ ++usb:v1235p0007* ++ ID_MODEL_FROM_DATABASE=XIOSynth ++ ++usb:v1235p0008* ++ ID_MODEL_FROM_DATABASE=ReMOTE SL Compact ++ ++usb:v1235p0009* ++ ID_MODEL_FROM_DATABASE=nIO ++ ++usb:v1235p000A* ++ ID_MODEL_FROM_DATABASE=Nocturn ++ ++usb:v1235p000B* ++ ID_MODEL_FROM_DATABASE=ReMOTE SL MkII ++ ++usb:v1235p000C* ++ ID_MODEL_FROM_DATABASE=ZeRO MkII ++ ++usb:v1235p000E* ++ ID_MODEL_FROM_DATABASE=Launchpad ++ ++usb:v1235p0010* ++ ID_MODEL_FROM_DATABASE=Saffire 6 ++ ++usb:v1235p0011* ++ ID_MODEL_FROM_DATABASE=Ultranova ++ ++usb:v1235p0012* ++ ID_MODEL_FROM_DATABASE=Nocturn Keyboard ++ ++usb:v1235p0013* ++ ID_MODEL_FROM_DATABASE=VRM Box ++ ++usb:v1235p0014* ++ ID_MODEL_FROM_DATABASE=VRM Box Audio Class (2-out) ++ ++usb:v1235p0015* ++ ID_MODEL_FROM_DATABASE=Dicer ++ ++usb:v1235p0016* ++ ID_MODEL_FROM_DATABASE=Ultranova ++ ++usb:v1235p0018* ++ ID_MODEL_FROM_DATABASE=Twitch ++ ++usb:v1235p0019* ++ ID_MODEL_FROM_DATABASE=Impulse 25 ++ ++usb:v1235p001A* ++ ID_MODEL_FROM_DATABASE=Impulse 49 ++ ++usb:v1235p001B* ++ ID_MODEL_FROM_DATABASE=Impulse 61 + + usb:v1235p4661* + ID_MODEL_FROM_DATABASE=ReMOTE25 + ++usb:v1235p8000* ++ ID_MODEL_FROM_DATABASE=Scarlett 18i6 ++ ++usb:v1235p8002* ++ ID_MODEL_FROM_DATABASE=Scarlett 8i6 ++ + usb:v1235p8006* + ID_MODEL_FROM_DATABASE=Focusrite Scarlett 2i2 + ++usb:v1235p8008* ++ ID_MODEL_FROM_DATABASE=Saffire 6 ++ ++usb:v1235p800A* ++ ID_MODEL_FROM_DATABASE=Scarlett 2i4 ++ ++usb:v1235p800C* ++ ID_MODEL_FROM_DATABASE=Scarlett 18i20 ++ ++usb:v1235p800E* ++ ID_MODEL_FROM_DATABASE=iTrack Solo ++ ++usb:v1235p8010* ++ ID_MODEL_FROM_DATABASE=Forte ++ ++usb:v1235p8012* ++ ID_MODEL_FROM_DATABASE=Scarlett 6i6 ++ ++usb:v1235p8014* ++ ID_MODEL_FROM_DATABASE=Scarlett 18i8 ++ + usb:v1241* + ID_VENDOR_FROM_DATABASE=Belkin + +@@ -40410,7 +41289,7 @@ usb:v1241p1166* + ID_MODEL_FROM_DATABASE=MI-2150 Trust Mouse + + usb:v1241p1177* +- ID_MODEL_FROM_DATABASE=F8E842-DL Mouse ++ ID_MODEL_FROM_DATABASE=Mouse [HT82M21A] + + usb:v1241p1503* + ID_MODEL_FROM_DATABASE=Keyboard +@@ -40463,6 +41342,9 @@ usb:v125Fp312A* + usb:v125Fp312B* + ID_MODEL_FROM_DATABASE=Superior S102 Pro + ++usb:v125FpA22A* ++ ID_MODEL_FROM_DATABASE=DashDrive Elite HE720 500GB ++ + usb:v125FpA91A* + ID_MODEL_FROM_DATABASE=Portable HDD CH91 + +@@ -40478,6 +41360,9 @@ usb:v125FpC93A* + usb:v125FpC96A* + ID_MODEL_FROM_DATABASE=C906 Flash Drive + ++usb:v125FpCB10* ++ ID_MODEL_FROM_DATABASE=Dash Drive UV100 ++ + usb:v1260* + ID_VENDOR_FROM_DATABASE=Standard Microsystems Corp. + +@@ -40637,6 +41522,9 @@ usb:v1283p0150* + usb:v1286* + ID_VENDOR_FROM_DATABASE=Marvell Semiconductor, Inc. + ++usb:v1286p00BC* ++ ID_MODEL_FROM_DATABASE=Marvell JTAG Probe ++ + usb:v1286p1FAB* + ID_MODEL_FROM_DATABASE=88W8338 [Libertas] 802.11g + +@@ -40733,6 +41621,12 @@ usb:v12C4p0006* + usb:v12C4p0008* + ID_MODEL_FROM_DATABASE=Teleprompter Foot Control (v1) + ++usb:v12CF* ++ ID_VENDOR_FROM_DATABASE=DEXIN ++ ++usb:v12CFp0170* ++ ID_MODEL_FROM_DATABASE=Tt eSPORTS BLACK Gaming mouse ++ + usb:v12D1* + ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd. + +@@ -40802,9 +41696,15 @@ usb:v12D1p14CF* + usb:v12D1p14D1* + ID_MODEL_FROM_DATABASE=K3770 3G Modem (Mass Storage Mode) + ++usb:v12D1p14DB* ++ ID_MODEL_FROM_DATABASE=E353/E3131 ++ + usb:v12D1p14F1* + ID_MODEL_FROM_DATABASE=Gobi 3000 HSPA+ Modem + ++usb:v12D1p14FE* ++ ID_MODEL_FROM_DATABASE=Modem (Mass Storage Mode) ++ + usb:v12D1p1501* + ID_MODEL_FROM_DATABASE=Pulse + +@@ -40826,6 +41726,9 @@ usb:v12D1p1521* + usb:v12D1p155A* + ID_MODEL_FROM_DATABASE=R205 Mobile WiFi (CD-ROM mode) + ++usb:v12D1p1575* ++ ID_MODEL_FROM_DATABASE=K5150 LTE modem ++ + usb:v12D1p1805* + ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone + +@@ -41376,7 +42279,7 @@ usb:v13BA* + ID_VENDOR_FROM_DATABASE=PCPlay + + usb:v13BAp0001* +- ID_MODEL_FROM_DATABASE=König Electronic CMP-KEYPAD12 Numeric Keypad ++ ID_MODEL_FROM_DATABASE=Konig Electronic CMP-KEYPAD12 Numeric Keypad + + usb:v13BAp0017* + ID_MODEL_FROM_DATABASE=PS/2 Keyboard+Mouse Adapter +@@ -44096,6 +44999,9 @@ usb:v1740p9801* + usb:v1743* + ID_VENDOR_FROM_DATABASE=General Atomics + ++usb:v1748* ++ ID_VENDOR_FROM_DATABASE=MQP Electronics ++ + usb:v174C* + ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. + +@@ -46569,7 +47475,7 @@ usb:v1C7B* + ID_VENDOR_FROM_DATABASE=LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD. + + usb:v1C83* +- ID_VENDOR_FROM_DATABASE=Schomäcker GmbH ++ ID_VENDOR_FROM_DATABASE=Schomaecker GmbH + + usb:v1C83p0001* + ID_MODEL_FROM_DATABASE=RS150 V2 +@@ -47678,6 +48584,12 @@ usb:v2047* + usb:v2047p0200* + ID_MODEL_FROM_DATABASE=MSP430 USB HID Bootstrap Loader + ++usb:v2047p0855* ++ ID_MODEL_FROM_DATABASE=Invensense Embedded MotionApp HID Sensor ++ ++usb:v2047p0964* ++ ID_MODEL_FROM_DATABASE=Inventio Software MSP430 ++ + usb:v2080* + ID_VENDOR_FROM_DATABASE=Barnes & Noble + +-- +1.7.9.2 + diff --git a/0004-implement-a-union-to-pad-out-file_handle.patch b/0004-implement-a-union-to-pad-out-file_handle.patch new file mode 100644 index 00000000..cbb924cc --- /dev/null +++ b/0004-implement-a-union-to-pad-out-file_handle.patch @@ -0,0 +1,117 @@ +From 370c860f748d149097710dc7952a64f627db9de7 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Sat, 19 Apr 2014 13:22:35 -0400 +Subject: [PATCH] implement a union to pad out file_handle + +Cases where name_to_handle_at is used allocated the full struct to be +MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong +since handle_bytes should describe the length of the flexible array +member and not the whole struct. + +Define a union type which includes sufficient padding to allow +assignment of MAX_HANDLE_SZ to be correct. +--- + src/libudev/libudev-monitor.c | 6 ++---- + src/readahead/readahead-common.c | 6 ++---- + src/shared/util.h | 6 ++++++ + src/tmpfiles/tmpfiles.c | 11 ++++------- + 4 files changed, 14 insertions(+), 15 deletions(-) + +diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c +index 3f7436b..0a2ab82 100644 +--- src/libudev/libudev-monitor.c ++++ src/libudev/libudev-monitor.c +@@ -108,15 +108,13 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev) + + /* we consider udev running when /dev is on devtmpfs */ + static bool udev_has_devtmpfs(struct udev *udev) { +- struct file_handle *h; ++ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; + int mount_id; + _cleanup_fclose_ FILE *f = NULL; + char line[LINE_MAX], *e; + int r; + +- h = alloca(MAX_HANDLE_SZ); +- h->handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(AT_FDCWD, "/dev", h, &mount_id, 0); ++ r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); + if (r < 0) + return false; + +diff --git src/readahead/readahead-common.c src/readahead/readahead-common.c +index 5ffa88b..49679fc 100644 +--- src/readahead/readahead-common.c ++++ src/readahead/readahead-common.c +@@ -75,7 +75,7 @@ int fs_on_ssd(const char *p) { + if (major(st.st_dev) == 0) { + _cleanup_fclose_ FILE *f = NULL; + int mount_id; +- struct file_handle *h; ++ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; + + /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd. + * +@@ -83,9 +83,7 @@ int fs_on_ssd(const char *p) { + * and then lookup the mount ID in mountinfo to find + * the mount options. */ + +- h = alloca(MAX_HANDLE_SZ); +- h->handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW); ++ r = name_to_handle_at(AT_FDCWD, p, &h.handle, &mount_id, AT_SYMLINK_FOLLOW); + if (r < 0) + return false; + +diff --git src/shared/util.h src/shared/util.h +index 900f1cf..891848a 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -22,6 +22,7 @@ + ***/ + + #include ++#include + #include + #include + #include +@@ -883,3 +884,8 @@ int fd_warn_permissions(const char *path + + unsigned long personality_from_string(const char *p); + const char *personality_to_string(unsigned long); ++ ++union file_handle_union { ++ struct file_handle handle; ++ char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; ++}; +diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c +index 33e7cbc..04b472d 100644 +--- src/tmpfiles/tmpfiles.c ++++ src/tmpfiles/tmpfiles.c +@@ -217,19 +217,16 @@ static bool unix_socket_alive(const char *fn) { + } + + static int dir_is_mount_point(DIR *d, const char *subdir) { +- struct file_handle *h; ++ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ }; + int mount_id_parent, mount_id; + int r_p, r; + +- h = alloca(MAX_HANDLE_SZ); +- +- h->handle_bytes = MAX_HANDLE_SZ; +- r_p = name_to_handle_at(dirfd(d), ".", h, &mount_id_parent, 0); ++ r_p = name_to_handle_at(dirfd(d), ".", &h.handle, &mount_id_parent, 0); + if (r_p < 0) + r_p = -errno; + +- h->handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(dirfd(d), subdir, h, &mount_id, 0); ++ h.handle.handle_bytes = MAX_HANDLE_SZ; ++ r = name_to_handle_at(dirfd(d), subdir, &h.handle, &mount_id, 0); + if (r < 0) + r = -errno; + +-- +1.7.9.2 + diff --git a/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch b/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch new file mode 100644 index 00000000..0358d8cc --- /dev/null +++ b/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch @@ -0,0 +1,30 @@ +Based on 20a83d7bf4542875f8033b68682a4da4993010e8 Mon Sep 17 00:00:00 2001 +From: Brandon Philips +Date: Fri, 25 Apr 2014 09:31:59 -0600 +Subject: [PATCH] job: add waiting jobs to run queue in unit_coldplug + +When we have job installed and added to run queue for service which is +still in dead state and systemd initiates reload then after reload we +never add deserialized job to the run queue again. This is caused by +check in service_coldplug() where we check if deserialized state is +something else than dead state, which is not the case thus we never call +service_set_state() and finally unit_notify() where we would have added +job to the run queue. + +Thanks to Michal Sekletar for the original patch. +--- + src/core/job.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- src/core/job.c ++++ src/core/job.c 2014-05-12 12:58:30.354235531 +0000 +@@ -1057,6 +1057,9 @@ int job_coldplug(Job *j) { + if (j->timer_event_source) + j->timer_event_source = sd_event_source_unref(j->timer_event_source); + ++ if (j->state == JOB_WAITING) ++ job_add_to_run_queue(j); ++ + r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); + if (r < 0) + log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0004-journal-do-server_vacuum-for-sigusr1.patch b/0004-journal-do-server_vacuum-for-sigusr1.patch new file mode 100644 index 00000000..530a5397 --- /dev/null +++ b/0004-journal-do-server_vacuum-for-sigusr1.patch @@ -0,0 +1,30 @@ +From 3bfd4e0c6341b0ef946d2198f089743fa99e0a97 Mon Sep 17 00:00:00 2001 +From: WaLyong Cho +Date: Thu, 28 Aug 2014 21:33:03 +0900 +Subject: [PATCH] journal: do server_vacuum for sigusr1 + +runtime journal is migrated to system journal when only +"/run/systemd/journal/flushed" exist. It's ok but according to this +the system journal directory size(max use) can be over the config. If +journal is not rotated during some time the journal directory can be +remained as over the config(or default) size. To avoid, do +server_vacuum just after the system journal migration from runtime. +--- + src/journal/journald-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/journal/journald-server.c src/journal/journald-server.c +index 52111f7..bf9cfcc 100644 +--- src/journal/journald-server.c ++++ src/journal/journald-server.c +@@ -1224,6 +1224,7 @@ static int dispatch_sigusr1(sd_event_source *es, const struct signalfd_siginfo * + touch("/run/systemd/journal/flushed"); + server_flush_to_var(s); + server_sync(s); ++ server_vacuum(s); + + return 0; + } +-- +1.7.9.2 + diff --git a/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch b/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch new file mode 100644 index 00000000..848a73d3 --- /dev/null +++ b/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch @@ -0,0 +1,134 @@ +Based on baccf3e40bab6c0b69992ae29c396930de4660c9 Mon Sep 17 00:00:00 2001 +From: Olivier Brunel +Date: Fri, 8 Aug 2014 20:45:43 +0200 +Subject: [PATCH] login: set_controller should fail if prepare_vt fails + +If controllers can expect logind to have "prepared" the VT (e.g. set it to +graphics mode, etc) then TakeControl() should fail if said preparation +failed (and session_restore_vt() was called). + +(David: fixed up !CONFIG_VT case and errno-numbers) +--- + src/login/logind-session.c | 47 +++++++++++++++++++++++++++++++++------------ + src/login/logind-session.h | 2 - + 2 files changed, 36 insertions(+), 13 deletions(-) + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-08-26 10:14:21.014235811 +0000 +@@ -950,8 +950,8 @@ int session_kill(Session *s, KillWho who + static int session_open_vt(Session *s) { + char path[sizeof("/dev/tty") + DECIMAL_STR_MAX(s->vtnr)]; + +- if (!s->vtnr) +- return -1; ++ if (s->vtnr < 1) ++ return -ENODEV; + + if (s->vtfd >= 0) + return s->vtfd; +@@ -975,22 +975,38 @@ static int session_vt_fn(sd_event_source + return 0; + } + +-void session_mute_vt(Session *s) { ++int session_mute_vt(Session *s) { + int vt, r; + struct vt_mode mode = { 0 }; + sigset_t mask; + ++ if (s->vtnr < 1) ++ return 0; ++ + vt = session_open_vt(s); + if (vt < 0) +- return; ++ return vt; ++ ++ r = fchown(vt, s->user->uid, -1); ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot change owner of /dev/tty%u: %m", s->vtnr); ++ goto error; ++ } + + r = ioctl(vt, KDSKBMODE, K_OFF); +- if (r < 0) ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot set K_OFF on /dev/tty%u: %m", s->vtnr); + goto error; ++ } + + r = ioctl(vt, KDSETMODE, KD_GRAPHICS); +- if (r < 0) ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot set KD_GRAPHICS on /dev/tty%u: %m", s->vtnr); + goto error; ++ } + + sigemptyset(&mask); + sigaddset(&mask, SIGUSR1); +@@ -1007,14 +1023,17 @@ void session_mute_vt(Session *s) { + mode.relsig = SIGUSR1; + mode.acqsig = SIGUSR1; + r = ioctl(vt, VT_SETMODE, &mode); +- if (r < 0) ++ if (r < 0) { ++ r = -errno; ++ log_error("Cannot set VT_PROCESS on /dev/tty%u: %m", s->vtnr); + goto error; ++ } + +- return; ++ return 0; + + error: +- log_error("cannot mute VT %u for session %s (%d/%d)", s->vtnr, s->id, r, errno); + session_restore_vt(s); ++ return r; + } + + void session_restore_vt(Session *s) { +@@ -1037,6 +1056,8 @@ void session_restore_vt(Session *s) { + mode.mode = VT_AUTO; + ioctl(vt, VT_SETMODE, &mode); + ++ fchown(vt, 0, -1); ++ + close_nointr_nofail(vt); + s->vtfd = -1; + } +@@ -1091,8 +1112,6 @@ int session_set_controller(Session *s, c + return r; + } + +- session_swap_controller(s, t); +- + /* When setting a session controller, we forcibly mute the VT and set + * it into graphics-mode. Applications can override that by changing + * VT state after calling TakeControl(). However, this serves as a good +@@ -1101,7 +1120,11 @@ int session_set_controller(Session *s, c + * exits. + * If logind crashes/restarts, we restore the controller during restart + * or reset the VT in case it crashed/exited, too. */ +- session_mute_vt(s); ++ r = session_mute_vt(s); ++ if (r < 0) ++ return r; ++ ++ session_swap_controller(s, t); + + return 0; + } +--- src/login/logind-session.h ++++ src/login/logind-session.h 2014-08-25 17:19:29.042236429 +0000 +@@ -172,7 +172,7 @@ SessionClass session_class_from_string(c + const char *kill_who_to_string(KillWho k) _const_; + KillWho kill_who_from_string(const char *s) _pure_; + +-void session_mute_vt(Session *s); ++int session_mute_vt(Session *s); + void session_restore_vt(Session *s); + + bool session_is_controller(Session *s, const char *sender); diff --git a/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch b/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch new file mode 100644 index 00000000..c19bfcee --- /dev/null +++ b/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch @@ -0,0 +1,45 @@ +From 94036de887ad5b0dc805abe38b5c1c58b57d9465 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Tue, 11 Mar 2014 17:49:00 +0200 +Subject: [PATCH] logind: Do not fail display count if a device has no parent + +udev_device_get_parent() may return NULL when the device doesn't have a +parent, as is the case with (for example) /sys/devices/virtual/drm/ttm. + +Also, log an actual error message instead of "-12 displays connected". +--- + src/login/logind-action.c | 4 +++- + src/login/logind-core.c | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index ae7b350..1928f43 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -84,7 +84,9 @@ int manager_handle_action( + * treat like this under the assumption that there is + * no modern drm driver available. */ + n = manager_count_displays(m); +- if (n != 1) { ++ if (n < 0) ++ log_warning("Display counting failed: %s", strerror(-n)); ++ else if (n != 1) { + log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } +diff --git src/login/logind-core.c src/login/logind-core.c +index ca34d37..053d2ed 100644 +--- src/login/logind-core.c ++++ src/login/logind-core.c +@@ -520,7 +520,7 @@ int manager_count_displays(Manager *m) { + + p = udev_device_get_parent(d); + if (!p) +- return -ENOMEM; ++ continue; + + /* If the parent shares the same subsystem as the + * device we are looking at then it is a connector, +-- +1.7.9.2 + diff --git a/0004-machined-make-sure-GetMachineAddresses-is-available-.patch b/0004-machined-make-sure-GetMachineAddresses-is-available-.patch new file mode 100644 index 00000000..20b625ba --- /dev/null +++ b/0004-machined-make-sure-GetMachineAddresses-is-available-.patch @@ -0,0 +1,38 @@ +From d3152a09ac5804ec8603daee12f98cf03523cce0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 19 May 2014 00:47:26 +0900 +Subject: [PATCH] machined: make sure GetMachineAddresses() is available for + unprivileged processes + +--- + src/machine/org.freedesktop.machine1.conf | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git src/machine/org.freedesktop.machine1.conf src/machine/org.freedesktop.machine1.conf +index 970ccd8..ab349a5 100644 +--- src/machine/org.freedesktop.machine1.conf ++++ src/machine/org.freedesktop.machine1.conf +@@ -42,12 +42,20 @@ + + ++ ++ + + + ++ ++ + + + +-- +1.7.9.2 + diff --git a/0004-man-document-missing-options-of-systemd-run.patch b/0004-man-document-missing-options-of-systemd-run.patch new file mode 100644 index 00000000..a6e6551d --- /dev/null +++ b/0004-man-document-missing-options-of-systemd-run.patch @@ -0,0 +1,113 @@ +From 981ee551945f4e00de52fcbb7780fd7476bcd47e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:37:48 +0100 +Subject: [PATCH] man: document missing options of systemd-run + +--- + man/systemd-run.xml | 71 +++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 60 insertions(+), 11 deletions(-) + +diff --git man/systemd-run.xml man/systemd-run.xml +index 95c1cb7..81d41dc 100644 +--- man/systemd-run.xml ++++ man/systemd-run.xml +@@ -121,9 +121,9 @@ along with systemd; If not, see . + + + +- Provide description for the unit. If not +- specified, the command itself will be used as a description. +- See Description= in ++ Provide description for the service or scope ++ unit. If not specified, the command itself will be used as a ++ description. See Description= in + systemd.unit5. + + +@@ -140,10 +140,10 @@ along with systemd; If not, see . + + + +- After the service's process has terminated, keep +- the service around until it is explicitly stopped. This is +- useful to collect runtime information about the service after +- it finished running. Also see ++ After the service or scope process has ++ terminated, keep the service around until it is explicitly ++ stopped. This is useful to collect runtime information about ++ the service after it finished running. Also see + RemainAfterExit= in + systemd.service5. + +@@ -153,15 +153,64 @@ along with systemd; If not, see . + + + +- When terminating the scope unit, send a SIGHUP +- immediately after SIGTERM. This is useful to indicate to +- shells and shell-like processes that the connection has been +- severed. Also see SendSIGHUP= in ++ When terminating the scope or service unit, ++ send a SIGHUP immediately after SIGTERM. This is useful to ++ indicate to shells and shell-like processes that the ++ connection has been severed. Also see ++ SendSIGHUP= in + systemd.kill5. + + + + ++ ++ ++ ++ Sets the service type. Also see ++ Type= in ++ systemd.service5. This ++ option has no effect in conjunction with ++ . Defaults to ++ simple. ++ ++ ++ ++ ++ ++ ++ ++ Runs the service process under the UNIX user ++ and group. Also see User= and ++ Group= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ nice level. Also see Nice= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ environment variables set. Also see ++ Environment= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ + + + +-- +1.7.9.2 + diff --git a/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch b/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch new file mode 100644 index 00000000..9ab7a2da --- /dev/null +++ b/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch @@ -0,0 +1,43 @@ +From 455cd8b137b8ef45d04889f2d967c562a097f1e6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Oct 2014 19:24:53 +0200 +Subject: [PATCH] sd-bus: if we don't manage to properly allocate the error + message for an sd_bus_error, just go on + +sd_bus_error_setfv() must initialize the sd_bus_error value to some +sensible value and then return a good errno code matching that. If it +cannot work at all it should set the error statically to the OOM error. +But if it can work half-way (i.e. initialize the name, but not the +message) it should do so and still return the correct errno number for +it. + +This effectively reverts 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 +--- + src/libsystemd/sd-bus/bus-error.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c +index 5ca974a..af83c12 100644 +--- src/libsystemd/sd-bus/bus-error.c ++++ src/libsystemd/sd-bus/bus-error.c +@@ -194,13 +194,10 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li + return -ENOMEM; + } + +- if (format) { +- int r; +- +- r = vasprintf((char**) &e->message, format, ap); +- if (r < 0) +- return -ENOMEM; +- } ++ /* Of we hit OOM on formatting the pretty message, we ignore ++ * this, since we at least managed to write the error name */ ++ if (format) ++ (void) vasprintf((char**) &e->message, format, ap); + + e->_need_free = 1; + +-- +1.7.9.2 + diff --git a/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch b/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch new file mode 100644 index 00000000..51b46fb4 --- /dev/null +++ b/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch @@ -0,0 +1,27 @@ +From 7bb4d371af5ec6b8c50b71d2a80c2866d8134d9a Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Jul 2014 17:36:47 +0200 +Subject: [PATCH] sd-bus: when an event loop terminates, explicitly close the + bus + +This makes sure we actually release the bus and all the messages it +references. +--- + src/libsystemd/sd-bus/sd-bus.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index d52afe8..eb267d4 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -2940,6 +2940,7 @@ static int quit_callback(sd_event_source *event, void *userdata) { + assert(event); + + sd_bus_flush(bus); ++ sd_bus_close(bus); + + return 1; + } +-- +1.7.9.2 + diff --git a/0004-sd-event-check-the-value-of-received-signal.patch b/0004-sd-event-check-the-value-of-received-signal.patch new file mode 100644 index 00000000..9c4662a9 --- /dev/null +++ b/0004-sd-event-check-the-value-of-received-signal.patch @@ -0,0 +1,46 @@ +From 7057bd993110c1eff0cd3a8776902ca66417634e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Oct 2014 18:49:45 -0400 +Subject: [PATCH] sd-event: check the value of received signal + +Appease coverity report #1237775. + +Also rename ss to n, to make it visually different from ss. +--- + src/libsystemd/sd-event/sd-event.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index b56182d..4c67ee8 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -1973,20 +1973,22 @@ static int process_signal(sd_event *e, uint32_t events) { + + for (;;) { + struct signalfd_siginfo si; +- ssize_t ss; ++ ssize_t n; + sd_event_source *s = NULL; + +- ss = read(e->signal_fd, &si, sizeof(si)); +- if (ss < 0) { ++ n = read(e->signal_fd, &si, sizeof(si)); ++ if (n < 0) { + if (errno == EAGAIN || errno == EINTR) + return read_one; + + return -errno; + } + +- if (_unlikely_(ss != sizeof(si))) ++ if (_unlikely_(n != sizeof(si))) + return -EIO; + ++ assert(si.ssi_signo < _NSIG); ++ + read_one = true; + + if (si.ssi_signo == SIGCHLD) { +-- +1.7.9.2 + diff --git a/0004-sd-journal-verify-that-object-start-with-the-field-n.patch b/0004-sd-journal-verify-that-object-start-with-the-field-n.patch new file mode 100644 index 00000000..e3ee663d --- /dev/null +++ b/0004-sd-journal-verify-that-object-start-with-the-field-n.patch @@ -0,0 +1,41 @@ +Based on 0f99f74a14ef193c1ebde687c5cc76e1d67b85ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 26 Aug 2014 23:54:31 -0400 +Subject: [PATCH] sd-journal: verify that object start with the field name + +If the journal is corrupted, we might return an object that does +not start with the expected field name and/or is shorter than it +should. +--- + src/journal/sd-journal.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git src/journal/sd-journal.c src/journal/sd-journal.c +index 80ff8fe..693707c 100644 +--- src/journal/sd-journal.c ++++ src/journal/sd-journal.c +@@ -2571,6 +2571,21 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_ + if (r < 0) + return r; + ++ /* Check if we have at least the field name and "=". */ ++ if (ol <= k) { ++ log_debug("%s:offset " OFSfmt ": object has size %zu, expected at least %zu", ++ j->unique_file->path, j->unique_offset, ++ ol, k + 1); ++ return -EBADMSG; ++ } ++ ++ if (memcmp(odata, j->unique_field, k) || ((const char*) odata)[k] != '=') { ++ log_debug("%s:offset " OFSfmt ": object does not start with \"%s=\"", ++ j->unique_file->path, j->unique_offset, ++ j->unique_field); ++ return -EBADMSG; ++ } ++ + /* OK, now let's see if we already returned this data + * object by checking if it exists in the earlier + * traversed files. */ +-- +1.7.9.2 + diff --git a/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch b/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch new file mode 100644 index 00000000..ba22748a --- /dev/null +++ b/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch @@ -0,0 +1,38 @@ +From 5e78424f4a27c07be50e246308035c877f204038 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Mon, 13 Oct 2014 15:25:09 +0200 +Subject: [PATCH] selinux: fix potential double free crash in child process + +Before returning from function we should reset ret to NULL, thus cleanup +function is nop. + +Also context_str() returns pointer to a string containing context but not a +copy, hence we must make copy it explicitly. +--- + src/shared/label.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/shared/label.c src/shared/label.c +index b6af38d..69d4616 100644 +--- src/shared/label.c ++++ src/shared/label.c +@@ -334,7 +334,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { + } + + freecon(mycon); +- mycon = context_str(bcon); ++ mycon = strdup(context_str(bcon)); + if (!mycon) { + r = -errno; + goto out; +@@ -348,6 +348,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { + } + + *label = ret; ++ ret = NULL; + r = 0; + + out: +-- +1.7.9.2 + diff --git a/0004-shared-conf-parser.patch b/0004-shared-conf-parser.patch new file mode 100644 index 00000000..8a03d9d5 --- /dev/null +++ b/0004-shared-conf-parser.patch @@ -0,0 +1,31 @@ +Based on 83e341a637b75f7f592a5dc717c34d8b67ed4ffa Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 17 Sep 2014 22:17:53 +0200 +Subject: [PATCH] shared: conf-parser + +Check memory allocation. Found by Coverity. + +Fixes CID #1237644. +--- + src/shared/conf-parser.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h 2014-09-18 13:07:07.314735514 +0000 +@@ -181,6 +181,8 @@ int log_syntax_internal(const char *unit + assert(data); \ + \ + xs = new0(type, 1); \ ++ if(!xs) \ ++ return -ENOMEM; \ + *xs = invalid; \ + \ + FOREACH_WORD(w, l, rvalue, state) { \ +@@ -213,6 +215,7 @@ int log_syntax_internal(const char *unit + xs = realloc(xs, (++i + 1) * sizeof(type)); \ + if (!xs) \ + return -ENOMEM; \ ++ \ + *(xs + i) = invalid; \ + } \ + \ diff --git a/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch b/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch new file mode 100644 index 00000000..596aa557 --- /dev/null +++ b/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch @@ -0,0 +1,106 @@ +From 863f3ce0d050f005839f6aa41fe7bac5478a7b5e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Fri, 19 Sep 2014 08:03:31 +0200 +Subject: [PATCH] shared: wtmp-utmp - don't clear store_wtmp in + utmp_put_dead_process() + +Also modernize a few other things and add comments to explain CID #1237503 +and CID #1237504. +--- + src/shared/utmp-wtmp.c | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git src/shared/utmp-wtmp.c src/shared/utmp-wtmp.c +index 30a0c03..31f13ec 100644 +--- src/shared/utmp-wtmp.c ++++ src/shared/utmp-wtmp.c +@@ -92,8 +92,6 @@ int utmp_get_runlevel(int *runlevel, int *previous) { + static void init_timestamp(struct utmpx *store, usec_t t) { + assert(store); + +- zero(*store); +- + if (t <= 0) + t = now(CLOCK_REALTIME); + +@@ -143,7 +141,7 @@ static int write_entry_wtmp(const struct utmpx *store) { + assert(store); + + /* wtmp is a simple append-only file where each entry is +- simply appended to * the end; i.e. basically a log. */ ++ simply appended to the end; i.e. basically a log. */ + + errno = 0; + updwtmpx(_PATH_WTMPX, store); +@@ -172,7 +170,7 @@ static int write_entry_both(const struct utmpx *store) { + } + + int utmp_put_shutdown(void) { +- struct utmpx store; ++ struct utmpx store = {}; + + init_entry(&store, 0); + +@@ -183,7 +181,7 @@ int utmp_put_shutdown(void) { + } + + int utmp_put_reboot(usec_t t) { +- struct utmpx store; ++ struct utmpx store = {}; + + init_entry(&store, t); + +@@ -206,16 +204,17 @@ _pure_ static const char *sanitize_id(const char *id) { + } + + int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line) { +- struct utmpx store; ++ struct utmpx store = { ++ .ut_type = INIT_PROCESS, ++ .ut_pid = pid, ++ .ut_session = sid, ++ }; + + assert(id); + + init_timestamp(&store, 0); + +- store.ut_type = INIT_PROCESS; +- store.ut_pid = pid; +- store.ut_session = sid; +- ++ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ + strncpy(store.ut_id, sanitize_id(id), sizeof(store.ut_id)); + + if (line) +@@ -225,14 +224,15 @@ int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line + } + + int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { +- struct utmpx lookup, store, store_wtmp, *found; ++ struct utmpx lookup = { ++ .ut_type = INIT_PROCESS /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ ++ }, store, store_wtmp, *found; + + assert(id); + + setutxent(); + +- zero(lookup); +- lookup.ut_type = INIT_PROCESS; /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ ++ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ + strncpy(lookup.ut_id, sanitize_id(id), sizeof(lookup.ut_id)); + + found = getutxid(&lookup); +@@ -260,7 +260,7 @@ int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { + + + int utmp_put_runlevel(int runlevel, int previous) { +- struct utmpx store; ++ struct utmpx store = {}; + int r; + + assert(runlevel > 0); +-- +1.7.9.2 + diff --git a/0004-socket-properly-handle-if-our-service-vanished-durin.patch b/0004-socket-properly-handle-if-our-service-vanished-durin.patch new file mode 100644 index 00000000..b119ad24 --- /dev/null +++ b/0004-socket-properly-handle-if-our-service-vanished-durin.patch @@ -0,0 +1,30 @@ +From 640ace4a8de907994a1b95f6d368c3e6a8fcf60f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 22 May 2014 16:56:21 +0900 +Subject: [PATCH] socket: properly handle if our service vanished during + runtime + +--- + src/core/socket.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git src/core/socket.c src/core/socket.c +index 05af8fe..aca20fd 100644 +--- src/core/socket.c ++++ src/core/socket.c +@@ -1503,6 +1503,12 @@ static void socket_enter_running(Socket *s, int cfd) { + } + + if (!pending) { ++ if (!UNIT_ISSET(s->service)) { ++ log_error_unit(UNIT(s)->id, "%s: service to activate vanished, refusing activation.", UNIT(s)->id); ++ r = -ENOENT; ++ goto fail; ++ } ++ + r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service), JOB_REPLACE, true, &error, NULL); + if (r < 0) + goto fail; +-- +1.7.9.2 + diff --git a/0004-systemd-detect-virt-only-discover-Xen-domU.patch b/0004-systemd-detect-virt-only-discover-Xen-domU.patch new file mode 100644 index 00000000..246e09b3 --- /dev/null +++ b/0004-systemd-detect-virt-only-discover-Xen-domU.patch @@ -0,0 +1,79 @@ +From 37287585b6ba9a55065c8f94458f6db3c0abe0af Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Fri, 6 Jun 2014 16:36:45 +0200 +Subject: [PATCH] systemd-detect-virt: only discover Xen domU + +The current vm detection lacks the distinction between Xen dom0 and Xen domU. +Both, dom0 and domU are running inside the hypervisor. +Therefore systemd-detect-virt and the ConditionVirtualization directive detect +dom0 as a virtual machine. + +dom0 is not using virtual devices but is accessing the real hardware. +Therefore dom0 should be considered the virtualisation host and not a virtual +machine. + +https://bugs.freedesktop.org/show_bug.cgi?id=77271 +--- + src/shared/virt.c | 34 +++++++++++++++++++++++++++------- + 1 file changed, 27 insertions(+), 7 deletions(-) + +diff --git src/shared/virt.c src/shared/virt.c +index 1e227c5..774915f 100644 +--- src/shared/virt.c ++++ src/shared/virt.c +@@ -148,7 +148,7 @@ static int detect_vm_dmi(const char **_id) { + + /* Returns a short identifier for the various VM implementations */ + int detect_vm(const char **id) { +- _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL; ++ _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL; + static thread_local int cached_found = -1; + static thread_local const char *cached_id = NULL; + const char *_id = NULL; +@@ -162,17 +162,37 @@ int detect_vm(const char **id) { + return cached_found; + } + +- /* Try high-level hypervisor sysfs file first: ++ /* Try xen capabilities file first, if not found try high-level hypervisor sysfs file: + * +- * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */ +- r = read_one_line_file("/sys/hypervisor/type", &hvtype); ++ * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */ ++ r = read_one_line_file("/proc/xen/capabilities", &domcap); + if (r >= 0) { +- if (streq(hvtype, "xen")) { ++ char *cap, *i = domcap; ++ ++ while ((cap = strsep(&i, ","))) ++ if (streq(cap, "control_d")) ++ break; ++ ++ if (!i) { + _id = "xen"; + r = 1; +- goto finish; + } +- } else if (r != -ENOENT) ++ ++ goto finish; ++ ++ } else if (r == -ENOENT) { ++ _cleanup_free_ char *hvtype = NULL; ++ ++ r = read_one_line_file("/sys/hypervisor/type", &hvtype); ++ if (r >= 0) { ++ if (streq(hvtype, "xen")) { ++ _id = "xen"; ++ r = 1; ++ goto finish; ++ } ++ } else if (r != -ENOENT) ++ return r; ++ } else + return r; + + /* this will set _id to "other" and return 0 for unknown hypervisors */ +-- +1.7.9.2 + diff --git a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch new file mode 100644 index 00000000..4ddad20e --- /dev/null +++ b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch @@ -0,0 +1,46 @@ +From b532cf3722e04adb0bd075666eb9989a9390d0a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Apr 2014 13:23:25 -0400 +Subject: [PATCH] systemd-python: use .hex instead of .get_hex() + +It turns out the latter got removed in Python 3. + +https://bugs.freedesktop.org/show_bug.cgi?id=77086 +--- + src/python-systemd/journal.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/python-systemd/journal.py src/python-systemd/journal.py +index 9c7e004..dd1f229 100644 +--- src/python-systemd/journal.py ++++ src/python-systemd/journal.py +@@ -293,7 +293,7 @@ class Reader(_Reader): + monotonic = monotonic.totalseconds() + monotonic = int(monotonic * 1000000) + if isinstance(bootid, _uuid.UUID): +- bootid = bootid.get_hex() ++ bootid = bootid.hex + return super(Reader, self).seek_monotonic(monotonic, bootid) + + def log_level(self, level): +@@ -314,7 +314,7 @@ class Reader(_Reader): + Equivalent to add_match(MESSAGE_ID=`messageid`). + """ + if isinstance(messageid, _uuid.UUID): +- messageid = messageid.get_hex() ++ messageid = messageid.hex + self.add_match(MESSAGE_ID=messageid) + + def this_boot(self, bootid=None): +@@ -346,7 +346,7 @@ class Reader(_Reader): + + def get_catalog(mid): + if isinstance(mid, _uuid.UUID): +- mid = mid.get_hex() ++ mid = mid.hex + return _get_catalog(mid) + + def _make_line(field, value): +-- +1.7.9.2 + diff --git a/0004-systemd-return-the-first-error-from-manager_startup.patch b/0004-systemd-return-the-first-error-from-manager_startup.patch new file mode 100644 index 00000000..0db56a17 --- /dev/null +++ b/0004-systemd-return-the-first-error-from-manager_startup.patch @@ -0,0 +1,57 @@ +From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 18 Jul 2014 17:05:18 -0400 +Subject: [PATCH] systemd: return the first error from manager_startup() + +--- + src/core/manager.c | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git src/core/manager.c src/core/manager.c +index 2e63c5e..0653d7e 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + dual_timestamp_get(&m->units_load_finish_timestamp); + + /* Second, deserialize if there is something to deserialize */ +- if (serialization) { +- q = manager_deserialize(m, serialization, fds); +- if (q < 0) +- r = q; +- } ++ if (serialization) ++ r = manager_deserialize(m, serialization, fds); + + /* Any fds left? Find some unit which wants them. This is + * useful to allow container managers to pass some file +@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + * socket-based activation of entire containers. */ + if (fdset_size(fds) > 0) { + q = manager_distribute_fds(m, fds); +- if (q < 0) ++ if (q < 0 && r == 0) + r = q; + } + + /* We might have deserialized the notify fd, but if we didn't + * then let's create the bus now */ +- manager_setup_notify(m); ++ q = manager_setup_notify(m); ++ if (q < 0 && r == 0) ++ r = q; + + /* We might have deserialized the kdbus control fd, but if we + * didn't, then let's create the bus now. */ +@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + + /* Third, fire things up! */ + q = manager_coldplug(m); +- if (q < 0) ++ if (q < 0 && r == 0) + r = q; + + if (serialization) { +-- +1.7.9.2 + diff --git a/0004-util-ignore_file-should-not-allow-files-ending-with.patch b/0004-util-ignore_file-should-not-allow-files-ending-with.patch new file mode 100644 index 00000000..a30b4c4f --- /dev/null +++ b/0004-util-ignore_file-should-not-allow-files-ending-with.patch @@ -0,0 +1,28 @@ +From 93f1a06374e335e8508d89e1bdaadf45be6ab777 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 31 May 2014 21:36:23 +0200 +Subject: [PATCH] util: ignore_file should not allow files ending with '~' + +ignore_file currently allows any file ending with '~' while it +seems that the opposite was intended: +a228a22fda4faa9ecb7c5a5e499980c8ae5d2a08 +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 0c27394..17b0ae1 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1371,7 +1371,7 @@ bool ignore_file(const char *filename) { + assert(filename); + + if (endswith(filename, "~")) +- return false; ++ return true; + + return ignore_file_allow_backup(filename); + } +-- +1.7.9.2 + diff --git a/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch b/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch new file mode 100644 index 00000000..23ccc1d5 --- /dev/null +++ b/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch @@ -0,0 +1,31 @@ +From 306a55c86360a7ae7b2509771d5ea6ab0d166d85 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Sun, 29 Jun 2014 22:15:33 +0200 +Subject: [PATCH] util: refuse considering UID 0xFFFF and 0xFFFFFFFF valid + +--- + src/shared/util.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git src/shared/util.c src/shared/util.c +index e7ff0f8..1709bb7 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -280,6 +280,14 @@ int parse_uid(const char *s, uid_t* ret_uid) { + if ((unsigned long) uid != ul) + return -ERANGE; + ++ /* Some libc APIs use (uid_t) -1 as special placeholder */ ++ if (uid == (uid_t) 0xFFFFFFFF) ++ return -EINVAL; ++ ++ /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ ++ if (uid == (uid_t) 0xFFFF) ++ return -EINVAL; ++ + *ret_uid = uid; + return 0; + } +-- +1.7.9.2 + diff --git a/0005-Replace-var-run-with-run-in-remaining-places.patch b/0005-Replace-var-run-with-run-in-remaining-places.patch new file mode 100644 index 00000000..67c35e18 --- /dev/null +++ b/0005-Replace-var-run-with-run-in-remaining-places.patch @@ -0,0 +1,89 @@ +From 41a55c46ab8fb4ef6727434227071321fc762cce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 25 Feb 2014 20:11:04 -0500 +Subject: [PATCH] Replace /var/run with /run in remaining places + +/run was already used almost everywhere, fix the remaining places +for consistency. +--- + man/daemon.xml | 2 +- + man/runlevel.xml | 2 +- + man/tmpfiles.d.xml | 4 ++-- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/systemctl/systemctl.c | 4 ++-- + 5 files changed, 8 insertions(+), 8 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index 88dd082..fd29ba7 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -149,7 +149,7 @@ + write the daemon PID (as returned by + getpid()) to a + PID file, for example +- /var/run/foobar.pid ++ /run/foobar.pid + (for a hypothetical daemon "foobar") + to ensure that the daemon cannot be + started more than once. This must be +diff --git man/runlevel.xml man/runlevel.xml +index 976753a..4db06dc 100644 +--- man/runlevel.xml ++++ man/runlevel.xml +@@ -124,7 +124,7 @@ + + + +- /var/run/utmp ++ /run/utmp + + The utmp database + runlevel reads the +diff --git man/tmpfiles.d.xml man/tmpfiles.d.xml +index 812129f..0a006d1 100644 +--- man/tmpfiles.d.xml ++++ man/tmpfiles.d.xml +@@ -441,8 +441,8 @@ r! /tmp/.X[0-9]*-lock + /etc/tmpfiles.d/screen.conf example + screen needs two directories created at boot with specific modes and ownership. + +- d /var/run/screens 1777 root root 10d +-d /var/run/uscreens 0755 root root 10d12h ++ d /run/screens 1777 root root 10d ++d /run/uscreens 0755 root root 10d12h + + + /etc/tmpfiles.d/abrt.conf example +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 20f540d..1318272 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; ++ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); + + return 0; + } +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 34d7079..8692716 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -3758,8 +3758,8 @@ static int show_one( + streq(verb, "status")) { + /* According to LSB: "program not running" */ + /* 0: program is running or service is OK +- * 1: program is dead and /var/run pid file exists +- * 2: program is dead and /var/lock lock file exists ++ * 1: program is dead and /run PID file exists ++ * 2: program is dead and /run/lock lock file exists + * 3: program is not running + * 4: program or service status is unknown + */ +-- +1.7.9.2 + diff --git a/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch b/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch new file mode 100644 index 00000000..37c42d2e --- /dev/null +++ b/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch @@ -0,0 +1,60 @@ +From 4cd2b2cf8ca585d15ebc859701b346658262b5bb Mon Sep 17 00:00:00 2001 +From: Denis Tikhomirov +Date: Thu, 5 Jun 2014 23:59:40 +0400 +Subject: [PATCH] backlight: Do not clamp brightness for LEDs + +https://bugs.freedesktop.org/show_bug.cgi?id=77092 + +On Thu, Jun 05, 2014 at 08:37:20AM +0200, Lennart Poettering wrote: +> The patch is line-broken, please send an uncorrupted patch! +I am very sorry, I forgot that my client limits line width. I will use +mutt now on. +> clamp_brightness() clamps the brightness value to the range of the +> actual device. This is a recent addition that was added to deal with +> driver updates where the resolution is changed. I don't think this part +> should be dropped for LED devices. The clamp_brightness() call hence +> should be called unconditionally, however, internally it should use a +> different min_brightness value if something is an !backlight devices... +Thank you for explanation, this sounds very reasonable to me. Please, +see updated patch: +--- + src/backlight/backlight.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 691472c..4d94ebf 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -225,11 +225,13 @@ static unsigned get_max_brightness(struct udev_device *device) { + + /* Some systems turn the backlight all the way off at the lowest levels. + * clamp_brightness clamps the saved brightness to at least 1 or 5% of +- * max_brightness. This avoids preserving an unreadably dim screen, which +- * would otherwise force the user to disable state restoration. */ ++ * max_brightness in case of 'backlight' subsystem. This avoids preserving ++ * an unreadably dim screen, which would otherwise force the user to ++ * disable state restoration. */ + static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { + int r; + unsigned brightness, new_brightness, min_brightness; ++ const char *subsystem; + + r = safe_atou(*value, &brightness); + if (r < 0) { +@@ -237,7 +239,12 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned + return; + } + +- min_brightness = MAX(1U, max_brightness/20); ++ subsystem = udev_device_get_subsystem(device); ++ if (streq_ptr(subsystem, "backlight")) ++ min_brightness = MAX(1U, max_brightness/20); ++ else ++ min_brightness = 0; ++ + new_brightness = CLAMP(brightness, min_brightness, max_brightness); + if (new_brightness != brightness) { + char *old_value = *value; +-- +1.7.9.2 + diff --git a/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch b/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch new file mode 100644 index 00000000..bee5ed1a --- /dev/null +++ b/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch @@ -0,0 +1,64 @@ +From 0c9d8f1d4b5018199cb5a9b57580dc1480a7f915 Mon Sep 17 00:00:00 2001 +From: Jani Nikula +Date: Wed, 7 May 2014 12:01:01 +0300 +Subject: [PATCH] backlight: handle saved brightness exceeding max brightness + +If too high a brightness value has been saved (e.g. due to kernel +mechanism changing from one kernel version to another, or booting the +userspace on another system), the brightness update fails and the +process exits. + +Clamp saved brightness between the policy minimum introduced in + +commit 7b909d7407965c03caaba30daae7aee113627a83 +Author: Josh Triplett +Date: Tue Mar 11 21:16:33 2014 -0700 + + backlight: Avoid restoring brightness to an unreadably dim level + +and the absolute maximum. + +https://bugs.freedesktop.org/show_bug.cgi?id=78200 +--- + src/backlight/backlight.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index c708391..691472c 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -229,7 +229,7 @@ static unsigned get_max_brightness(struct udev_device *device) { + * would otherwise force the user to disable state restoration. */ + static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { + int r; +- unsigned brightness, new_brightness; ++ unsigned brightness, new_brightness, min_brightness; + + r = safe_atou(*value, &brightness); + if (r < 0) { +@@ -237,7 +237,8 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned + return; + } + +- new_brightness = MAX3(brightness, 1U, max_brightness/20); ++ min_brightness = MAX(1U, max_brightness/20); ++ new_brightness = CLAMP(brightness, min_brightness, max_brightness); + if (new_brightness != brightness) { + char *old_value = *value; + +@@ -247,7 +248,11 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned + return; + } + +- log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); ++ log_info("Saved brightness %s %s to %s.", old_value, ++ new_brightness > brightness ? ++ "too low; increasing" : "too high; decreasing", ++ *value); ++ + free(old_value); + } + } +-- +1.7.9.2 + diff --git a/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch b/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch new file mode 100644 index 00000000..119d1108 --- /dev/null +++ b/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch @@ -0,0 +1,29 @@ +From c119700c06b248b1c2a082b40b1a346f58d89da0 Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Sun, 28 Sep 2014 18:12:51 +0300 +Subject: [PATCH] bootchart: Do not try to access data for non-existing CPU's + +Cpu's are assigned normally, so starting at 0, so the MAX_CPU index will +always be one smaller than the actual number. + +Found with Coverity. +--- + src/bootchart/store.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/bootchart/store.c src/bootchart/store.c +index 3099ff1..9ea1b27 100644 +--- src/bootchart/store.c ++++ src/bootchart/store.c +@@ -199,7 +199,7 @@ vmstat_next: + + if (strstr(key, "cpu")) { + r = safe_atoi((const char*)(key+3), &c); +- if (r < 0 || c > MAXCPUS) ++ if (r < 0 || c > MAXCPUS -1) + /* Oops, we only have room for MAXCPUS data */ + break; + sampledata->runtime[c] = atoll(rt); +-- +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 00000000..93f4711e --- /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/0005-bus-close-a-bus-that-failed-to-connect.patch b/0005-bus-close-a-bus-that-failed-to-connect.patch new file mode 100644 index 00000000..9633317f --- /dev/null +++ b/0005-bus-close-a-bus-that-failed-to-connect.patch @@ -0,0 +1,28 @@ +From db9bb83fa5ec72da38eb5bd0c259ef8c76a71858 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 3 Jul 2014 01:19:21 +0200 +Subject: [PATCH] bus: close a bus that failed to connect + +--- + 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 c25375c..28fc19e 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -1033,8 +1033,10 @@ _public_ int sd_bus_start(sd_bus *bus) { + else + return -EINVAL; + +- if (r < 0) ++ if (r < 0) { ++ sd_bus_close(bus); + return r; ++ } + + return bus_send_hello(bus); + } +-- +1.7.9.2 + diff --git a/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch b/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch new file mode 100644 index 00000000..361a1713 --- /dev/null +++ b/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch @@ -0,0 +1,137 @@ +From cdc06ed7b6120c1049305fa7033f228ee9d86043 Mon Sep 17 00:00:00 2001 +From: David Strauss +Date: Mon, 28 Apr 2014 12:08:32 -0700 +Subject: [PATCH] core: Filter by state behind the D-Bus API, not in the + systemctl client. + +--- + src/core/dbus-manager.c | 24 +++++++++++++++++++++++- + src/core/org.freedesktop.systemd1.conf | 4 ++++ + src/systemctl/systemctl.c | 24 +++++++++++++----------- + 3 files changed, 40 insertions(+), 12 deletions(-) + +diff --git src/core/dbus-manager.c src/core/dbus-manager.c +index 58e484d..d5fab0a 100644 +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c +@@ -728,7 +728,7 @@ static int method_reset_failed(sd_bus *bus, sd_bus_message *message, void *userd + return sd_bus_reply_method_return(message, NULL); + } + +-static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { ++static int list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error, char **states) { + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + Manager *m = userdata; + const char *k; +@@ -761,6 +761,12 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat + + following = unit_following(u); + ++ if (!strv_isempty(states) && ++ !strv_contains(states, unit_load_state_to_string(u->load_state)) && ++ !strv_contains(states, unit_active_state_to_string(unit_active_state(u))) && ++ !strv_contains(states, unit_sub_state_to_string(u))) ++ continue; ++ + unit_path = unit_dbus_path(u); + if (!unit_path) + return -ENOMEM; +@@ -794,6 +800,21 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat + return sd_bus_send(bus, reply, NULL); + } + ++static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { ++ return list_units_filtered(bus, message, userdata, error, NULL); ++} ++ ++static int method_list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { ++ _cleanup_strv_free_ char **states = NULL; ++ int r; ++ ++ r = sd_bus_message_read_strv(message, &states); ++ if (r < 0) ++ return r; ++ ++ return list_units_filtered(bus, message, userdata, error, states); ++} ++ + static int method_list_jobs(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + Manager *m = userdata; +@@ -1670,6 +1691,7 @@ const sd_bus_vtable bus_manager_vtable[] = { + SD_BUS_METHOD("ClearJobs", NULL, NULL, method_clear_jobs, 0), + SD_BUS_METHOD("ResetFailed", NULL, NULL, method_reset_failed, 0), + SD_BUS_METHOD("ListUnits", NULL, "a(ssssssouso)", method_list_units, SD_BUS_VTABLE_UNPRIVILEGED), ++ SD_BUS_METHOD("ListUnitsFiltered", "as", "a(ssssssouso)", method_list_units_filtered, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("ListJobs", NULL, "a(usssoo)", method_list_jobs, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Subscribe", NULL, NULL, method_subscribe, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Unsubscribe", NULL, NULL, method_unsubscribe, SD_BUS_VTABLE_UNPRIVILEGED), +diff --git src/core/org.freedesktop.systemd1.conf src/core/org.freedesktop.systemd1.conf +index a375dce..9dfca81 100644 +--- src/core/org.freedesktop.systemd1.conf ++++ src/core/org.freedesktop.systemd1.conf +@@ -64,6 +64,10 @@ + + ++ ++ + + load_state) || +- strv_contains(arg_states, u->sub_state) || +- strv_contains(arg_states, u->active_state); +- + if (!strv_isempty(patterns)) { + char **pattern; + +@@ -467,6 +461,7 @@ static int get_unit_list( + UnitInfo **_unit_infos, + char **patterns) { + ++ _cleanup_bus_message_unref_ sd_bus_message *m = NULL; + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + _cleanup_free_ UnitInfo *unit_infos = NULL; +@@ -478,15 +473,22 @@ static int get_unit_list( + assert(_reply); + assert(_unit_infos); + +- r = sd_bus_call_method( ++ r = sd_bus_message_new_method_call( + bus, ++ &m, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", +- "ListUnits", +- &error, +- &reply, +- NULL); ++ "ListUnitsFiltered"); ++ ++ if (r < 0) ++ return bus_log_create_error(r); ++ ++ r = sd_bus_message_append_strv(m, arg_states); ++ if (r < 0) ++ return bus_log_create_error(r); ++ ++ r = sd_bus_call(bus, m, 0, &error, &reply); + if (r < 0) { + log_error("Failed to list units: %s", bus_error_message(&error, r)); + return r; +-- +1.7.9.2 + diff --git a/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch b/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch new file mode 100644 index 00000000..05d6edc1 --- /dev/null +++ b/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch @@ -0,0 +1,121 @@ +Based on c264aeab4b0e7b69f469e12e78d4a48b3ed7a66e Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 27 Jul 2014 00:11:08 +0200 +Subject: [PATCH] core: only set the kernel's timezone when the RTC runs in + local time + +We can not reliably manage any notion of local time. Every daylight +saving time change or time zone change by traveling will make the +time jump, and the local time might jump backwards which creates +unsolvable problems with file timestamps. + +We will no longer tell the kernel our local time zone and leave +everything set to UTC. This will effectively turn FAT timestamps +into UTC timestamps. + +If and only if the machine is configured to read the RTC in local +time mode, the kernel's time zone will be configured, but +systemd-timesysnc will disable the kernel's system time to RTC +syncing. In this mode, the RTC will not be managed, and external +tools like Windows bootups are expected to manage the RTC's time. + +https://bugs.freedesktop.org/show_bug.cgi?id=81538 +--- + src/core/main.c | 23 +++++++++++++++-------- + src/shared/hwclock.c | 15 ++++++++------- + src/shared/hwclock.h | 2 +- + 3 files changed, 24 insertions(+), 16 deletions(-) + +--- src/core/main.c ++++ src/core/main.c 2014-07-28 09:59:35.778235585 +0000 +@@ -1349,7 +1349,14 @@ int main(int argc, char *argv[]) { + if (hwclock_is_localtime() > 0) { + int min; + +- /* The first-time call to settimeofday() does a time warp in the kernel */ ++ /* ++ * The very first call of settimeofday() also does a time warp in the kernel. ++ * ++ * In the rtc-in-local time mode, we set the kernel's timezone, and rely on ++ * external tools to take care of maintaining the RTC and do all adjustments. ++ * This matches the behavior of Windows, which leaves the RTC alone if the ++ * registry tells that the RTC runs in UTC. ++ */ + r = hwclock_set_timezone(&min); + if (r < 0) + log_error("Failed to apply local time delta, ignoring: %s", strerror(-r)); +@@ -1357,19 +1364,19 @@ int main(int argc, char *argv[]) { + log_info("RTC configured in localtime, applying delta of %i minutes to system time.", min); + } else if (!in_initrd()) { + /* +- * Do dummy first-time call to seal the kernel's time warp magic ++ * Do a dummy very first call to seal the kernel's time warp magic. + * + * Do not call this this from inside the initrd. The initrd might not + * carry /etc/adjtime with LOCAL, but the real system could be set up + * that way. In such case, we need to delay the time-warp or the sealing + * until we reach the real system. ++ * ++ * Do no set the kernel's timezone. The concept of local time cannot ++ * be supported reliably, the time will jump or be incorrect at every daylight ++ * saving time change. All kernel local time concepts will be treated ++ * as UTC that way. + */ +- hwclock_reset_timezone(); +- +- /* Tell the kernel our timezone */ +- r = hwclock_set_timezone(NULL); +- if (r < 0) +- log_error("Failed to set the kernel's timezone, ignoring: %s", strerror(-r)); ++ hwclock_reset_timewarp(); + } + } + +--- src/shared/hwclock.c ++++ src/shared/hwclock.c 2014-07-28 09:59:12.914235566 +0000 +@@ -124,9 +124,10 @@ int hwclock_set_timezone(int *min) { + tz.tz_dsttime = 0; /* DST_NONE*/ + + /* +- * If the hardware clock does not run in UTC, but in local time: +- * The very first time we set the kernel's timezone, it will warp +- * the clock so that it runs in UTC instead of local time. ++ * If the RTC does not run in UTC but in local time, the very first ++ * call to settimeofday() will set the kernel's timezone and will warp the ++ * system clock, so that it runs in UTC instead of the local time we ++ * have read from the RTC. + */ + if (settimeofday(tv_null, &tz) < 0) + return -errno; +@@ -135,7 +136,7 @@ int hwclock_set_timezone(int *min) { + return 0; + } + +-int hwclock_reset_timezone(void) { ++int hwclock_reset_timewarp(void) { + const struct timeval *tv_null = NULL; + struct timezone tz; + +@@ -143,9 +144,9 @@ int hwclock_reset_timezone(void) { + tz.tz_dsttime = 0; /* DST_NONE*/ + + /* +- * The very first time we set the kernel's timezone, it will warp +- * the clock. Do a dummy call here, so the time warping is sealed +- * and we set only the timezone with next call. ++ * The very first call to settimeofday() does time warp magic. Do a ++ * dummy call here, so the time warping is sealed and all later calls ++ * behave as expected. + */ + if (settimeofday(tv_null, &tz) < 0) + return -errno; +--- src/shared/hwclock.h ++++ src/shared/hwclock.h 2014-07-28 09:59:25.034736002 +0000 +@@ -23,6 +23,6 @@ + + int hwclock_is_localtime(void); + int hwclock_set_timezone(int *min); +-int hwclock_reset_timezone(void); ++int hwclock_reset_timewarp(void); + int hwclock_get_time(struct tm *tm); + int hwclock_set_time(const struct tm *tm); diff --git a/0005-cryptsetup-fix-an-OOM-check.patch b/0005-cryptsetup-fix-an-OOM-check.patch new file mode 100644 index 00000000..23b39bb5 --- /dev/null +++ b/0005-cryptsetup-fix-an-OOM-check.patch @@ -0,0 +1,25 @@ +From 0e2f14014c65b4d8b30146e414579154cfa932da Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 23 Oct 2014 00:30:04 +0200 +Subject: [PATCH] cryptsetup: fix an OOM check + +--- + src/cryptsetup/cryptsetup-generator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/cryptsetup/cryptsetup-generator.c src/cryptsetup/cryptsetup-generator.c +index 137b787..c7f30f6 100644 +--- src/cryptsetup/cryptsetup-generator.c ++++ src/cryptsetup/cryptsetup-generator.c +@@ -387,7 +387,7 @@ int main(int argc, char *argv[]) { + if (k == 2 && streq(proc_uuid, device + 5)) { + free(options); + options = strdup(p); +- if (!proc_options) { ++ if (!options) { + log_oom(); + goto cleanup; + } +-- +1.7.9.2 + diff --git a/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..a309f6b9 --- /dev/null +++ b/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,73 @@ +From 24e29480bd800d3acdb3087e5863440bd0dd1d80 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Fri, 16 May 2014 15:57:35 -0700 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 53 ++++++++++++++++++++++++++++++++- + 1 file changed, 52 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 28aa2a7..a65c7db 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -961,4 +961,55 @@ bluetooth:v013D* + ID_VENDOR_FROM_DATABASE=WirelessWERX + + bluetooth:v013E* +- ID_VENDOR_FROM_DATABASE=nimai ++ ID_VENDOR_FROM_DATABASE=Nod, Inc. ++ ++bluetooth:v013F* ++ ID_VENDOR_FROM_DATABASE=B&B Manufacturing Company ++ ++bluetooth:v0140* ++ ID_VENDOR_FROM_DATABASE=Alpine Electronics (China) Co., Ltd ++ ++bluetooth:v0141* ++ ID_VENDOR_FROM_DATABASE=FedEx Services ++ ++bluetooth:v0142* ++ ID_VENDOR_FROM_DATABASE=Grape Systems Inc. ++ ++bluetooth:v0143* ++ ID_VENDOR_FROM_DATABASE=Bkon Connect ++ ++bluetooth:v0144* ++ ID_VENDOR_FROM_DATABASE=Lintech GmbH ++ ++bluetooth:v0145* ++ ID_VENDOR_FROM_DATABASE=Novatel Wireless ++ ++bluetooth:v0146* ++ ID_VENDOR_FROM_DATABASE=Ciright ++ ++bluetooth:v0147* ++ ID_VENDOR_FROM_DATABASE=Mighty Cast, Inc. ++ ++bluetooth:v0148* ++ ID_VENDOR_FROM_DATABASE=Ambimat Electronics ++ ++bluetooth:v0149* ++ ID_VENDOR_FROM_DATABASE=Perytons Ltd. ++ ++bluetooth:v014A* ++ ID_VENDOR_FROM_DATABASE=Tivoli Audio, LLC ++ ++bluetooth:v014B* ++ ID_VENDOR_FROM_DATABASE=Master Lock ++ ++bluetooth:v014C* ++ ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd ++ ++bluetooth:v014D* ++ ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. ++ ++bluetooth:v014E* ++ ID_VENDOR_FROM_DATABASE=Tangerine, Inc. ++ ++bluetooth:v014F* ++ ID_VENDOR_FROM_DATABASE=B&W Group Ltd. +-- +1.7.9.2 + diff --git a/0005-hwdb-update.patch b/0005-hwdb-update.patch new file mode 100644 index 00000000..e97da5f5 --- /dev/null +++ b/0005-hwdb-update.patch @@ -0,0 +1,1560 @@ +From 7ba52a1283a0864b56947fa091048e8fe31a5899 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 21 May 2014 18:19:24 +0900 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 155 ++++++++++++++++++++- + hwdb/20-pci-vendor-model.hwdb | 141 ++++++++++++++++--- + hwdb/20-usb-vendor-model.hwdb | 302 ++++++++++++++++++++++++++++++++++++++++- + 3 files changed, 572 insertions(+), 26 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index afc0d90..6188bfc 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -52915,6 +52915,9 @@ OUI:0CA42A* + OUI:0CA694* + ID_OUI_FROM_DATABASE=Sunitec Enterprise Co.,Ltd + ++OUI:0CAC05* ++ ID_OUI_FROM_DATABASE=Unitend Technologies Inc. ++ + OUI:0CAF5A* + ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED + +@@ -53164,6 +53167,9 @@ OUI:1048B1* + OUI:104D77* + ID_OUI_FROM_DATABASE=Innovative Computer Engineering + ++OUI:105172* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:1056CA* + ID_OUI_FROM_DATABASE=Peplink International Ltd. + +@@ -53488,6 +53494,9 @@ OUI:147373* + OUI:147411* + ID_OUI_FROM_DATABASE=RIM + ++OUI:147590* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:147DB3* + ID_OUI_FROM_DATABASE=JOA TELECOM.CO.,LTD + +@@ -53899,6 +53908,9 @@ OUI:18C8E7* + OUI:18CC23* + ID_OUI_FROM_DATABASE=Philio Technology Corporation + ++OUI:18CF5E* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:18D071* + ID_OUI_FROM_DATABASE=DASAN SMC, Inc. + +@@ -54517,6 +54529,9 @@ OUI:20E791* + OUI:20EAC7* + ID_OUI_FROM_DATABASE=SHENZHEN RIOPINE ELECTRONICS CO., LTD + ++OUI:20ED74* ++ ID_OUI_FROM_DATABASE=Ability enterprise co.,Ltd. ++ + OUI:20EEC6* + ID_OUI_FROM_DATABASE=Elefirst Science & Tech Co ., ltd + +@@ -54742,6 +54757,9 @@ OUI:24CBE7* + OUI:24CF21* + ID_OUI_FROM_DATABASE=Shenzhen State Micro Technology Co., Ltd + ++OUI:24D13F* ++ ID_OUI_FROM_DATABASE=MEXUS CO.,LTD ++ + OUI:24D2CC* + ID_OUI_FROM_DATABASE=SmartDrive Systems Inc. + +@@ -55438,6 +55456,9 @@ OUI:2CF203* + OUI:2CF4C5* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:2CFAA2* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:30055C* + ID_OUI_FROM_DATABASE=Brother industries, LTD. + +@@ -55708,6 +55729,9 @@ OUI:30F9ED* + OUI:30FD11* + ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. + ++OUI:3400A3* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:340286* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -56077,6 +56101,9 @@ OUI:38229D* + OUI:3822D6* + ID_OUI_FROM_DATABASE=H3C Technologies Co., Limited + ++OUI:38262B* ++ ID_OUI_FROM_DATABASE=UTran Technology ++ + OUI:3826CD* + ID_OUI_FROM_DATABASE=ANDTEK + +@@ -56395,6 +56422,9 @@ OUI:3C404F* + OUI:3C438E* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:3C46D8* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:3C4A92* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -56710,6 +56740,9 @@ OUI:404A18* + OUI:404D8E* + ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd + ++OUI:404EEB* ++ ID_OUI_FROM_DATABASE=Higher Way Electronic Co., Ltd. ++ + OUI:4050E0* + ID_OUI_FROM_DATABASE=Milton Security Group LLC + +@@ -57709,6 +57742,9 @@ OUI:4CB9C8* + OUI:4CBAA3* + ID_OUI_FROM_DATABASE=Bison Electronics Inc. + ++OUI:4CBB58* ++ ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. ++ + OUI:4CBCA5* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -57757,6 +57793,9 @@ OUI:4CEDDE* + OUI:4CF02E* + ID_OUI_FROM_DATABASE=Vifa Denmark A/S + ++OUI:4CF2BF* ++ ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd. ++ + OUI:4CF45B* + ID_OUI_FROM_DATABASE=Blue Clover Devices + +@@ -57994,6 +58033,9 @@ OUI:50B888* + OUI:50B8A2* + ID_OUI_FROM_DATABASE=ImTech Technologies LLC, + ++OUI:50BD5F* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:50C006* + ID_OUI_FROM_DATABASE=Carmanah Signs + +@@ -58285,6 +58327,9 @@ OUI:54D1B0* + OUI:54D46F* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:54DF00* ++ ID_OUI_FROM_DATABASE=Ulterius Technologies, LLC ++ + OUI:54DF63* + ID_OUI_FROM_DATABASE=Intrakey technologies GmbH + +@@ -58597,6 +58642,9 @@ OUI:58F6BF* + OUI:58F98E* + ID_OUI_FROM_DATABASE=SECUDOS GmbH + ++OUI:58FCDB* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:58FD20* + ID_OUI_FROM_DATABASE=Bravida Sakerhet AB + +@@ -58621,6 +58669,9 @@ OUI:5C1193* + OUI:5C1437* + ID_OUI_FROM_DATABASE=Thyssenkrupp Aufzugswerke GmbH + ++OUI:5C1515* ++ ID_OUI_FROM_DATABASE=ADVAN ++ + OUI:5C15E1* + ID_OUI_FROM_DATABASE=AIDC TECHNOLOGY (S) PTE LTD + +@@ -58891,12 +58942,18 @@ OUI:5CF96A* + OUI:5CF9DD* + ID_OUI_FROM_DATABASE=Dell Inc + ++OUI:5CF9F0* ++ ID_OUI_FROM_DATABASE=Atomos Engineering P/L ++ + OUI:5CFF35* + ID_OUI_FROM_DATABASE=Wistron Corporation + + OUI:5CFFFF* + ID_OUI_FROM_DATABASE=Shenzhen Kezhonglong Optoelectronic Technology Co., Ltd + ++OUI:600292* ++ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION ++ + OUI:6002B4* + ID_OUI_FROM_DATABASE=Wistron NeWeb Corp. + +@@ -59323,6 +59380,9 @@ OUI:644F74* + OUI:644FB0* + ID_OUI_FROM_DATABASE=Hyunjin.com + ++OUI:645106* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:64517E* + ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. + +@@ -59902,6 +59962,9 @@ OUI:68FB95* + OUI:68FCB3* + ID_OUI_FROM_DATABASE=Next Level Security Systems, Inc. + ++OUI:6C0273* ++ ID_OUI_FROM_DATABASE=Shenzhen Jin Yun Video Equipment Co., Ltd. ++ + OUI:6C0460* + ID_OUI_FROM_DATABASE=RBH Access Technologies Inc. + +@@ -60874,6 +60937,9 @@ OUI:781FDB* + OUI:78223D* + ID_OUI_FROM_DATABASE=Affirmed Networks + ++OUI:7824AF* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:782544* + ID_OUI_FROM_DATABASE=Omnima Limited + +@@ -60919,6 +60985,9 @@ OUI:784405* + OUI:784476* + ID_OUI_FROM_DATABASE=Zioncom technology co.,ltd + ++OUI:784561* ++ ID_OUI_FROM_DATABASE=CyberTAN Technology Inc. ++ + OUI:7845C4* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -61024,6 +61093,9 @@ OUI:789966* + OUI:78998F* + ID_OUI_FROM_DATABASE=MEDILINE ITALIA SRL + ++OUI:789CE7* ++ ID_OUI_FROM_DATABASE=Shenzhen Aikede Technology Co., Ltd ++ + OUI:789ED0* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -61480,6 +61552,9 @@ OUI:7CC8D7* + OUI:7CCB0D* + ID_OUI_FROM_DATABASE=Antaira Technologies, LLC + ++OUI:7CCCB8* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:7CCD11* + ID_OUI_FROM_DATABASE=MS-Magnet + +@@ -61945,6 +62020,9 @@ OUI:842F75* + OUI:8430E5* + ID_OUI_FROM_DATABASE=SkyHawke Technologies, LLC + ++OUI:8432EA* ++ ID_OUI_FROM_DATABASE=ANHUI WANZTEN P&T CO., LTD ++ + OUI:843497* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -63295,6 +63373,9 @@ OUI:94CDAC* + OUI:94CE2C* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + ++OUI:94CE31* ++ ID_OUI_FROM_DATABASE=CTS Limited ++ + OUI:94D019* + ID_OUI_FROM_DATABASE=Cydle Corp. + +@@ -63409,6 +63490,9 @@ OUI:982CBE* + OUI:982D56* + ID_OUI_FROM_DATABASE=Resolution Audio + ++OUI:982F3C* ++ ID_OUI_FROM_DATABASE=Sichuan Changhong Electric Ltd. ++ + OUI:983000* + ID_OUI_FROM_DATABASE=Beijing KEMACOM Technologies Co., Ltd. + +@@ -63508,6 +63592,9 @@ OUI:9876B6* + OUI:987770* + ID_OUI_FROM_DATABASE=Pep Digital Technology (Guangzhou) Co., Ltd + ++OUI:987E46* ++ ID_OUI_FROM_DATABASE=Emizon Networks Limited ++ + OUI:988217* + ID_OUI_FROM_DATABASE=Disruptive Ltd + +@@ -64303,6 +64390,9 @@ OUI:A40BED* + OUI:A40CC3* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:A41242* ++ ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ + OUI:A4134E* + ID_OUI_FROM_DATABASE=Luxul + +@@ -65740,6 +65830,9 @@ OUI:B4B5AF* + OUI:B4B676* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:B4B859* ++ ID_OUI_FROM_DATABASE=Texa Spa ++ + OUI:B4B88D* + ID_OUI_FROM_DATABASE=Thuh Company + +@@ -65815,6 +65908,9 @@ OUI:B80305* + OUI:B80415* + ID_OUI_FROM_DATABASE=Bayan Audio + ++OUI:B808CF* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:B80B9D* + ID_OUI_FROM_DATABASE=ROPEX Industrie-Elektronik GmbH + +@@ -66277,6 +66373,9 @@ OUI:BC5FF4* + OUI:BC629F* + ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. + ++OUI:BC671C* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:BC6778* + ID_OUI_FROM_DATABASE=Apple + +@@ -66412,6 +66511,9 @@ OUI:BCCFCC* + OUI:BCD177* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:BCD1D3* ++ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp ++ + OUI:BCD5B6* + ID_OUI_FROM_DATABASE=d2d technologies + +@@ -66706,6 +66808,9 @@ OUI:C0E54E* + OUI:C0EAE4* + ID_OUI_FROM_DATABASE=Sonicwall + ++OUI:C0EEFB* ++ ID_OUI_FROM_DATABASE=OnePlus Tech (Shenzhen) Ltd ++ + OUI:C0F1C4* + ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. + +@@ -66721,6 +66826,9 @@ OUI:C0F8DA* + OUI:C0F991* + ID_OUI_FROM_DATABASE=GME Standard Communications P/L + ++OUI:C40006* ++ ID_OUI_FROM_DATABASE=Lipi Data Systems Ltd. ++ + OUI:C40142* + ID_OUI_FROM_DATABASE=MaxMedia Technology Limited + +@@ -67885,6 +67993,9 @@ OUI:D09C30* + OUI:D09D0A* + ID_OUI_FROM_DATABASE=LINKCOM + ++OUI:D0A0D6* ++ ID_OUI_FROM_DATABASE=Chengdu TD Tech Ltd. ++ + OUI:D0A311* + ID_OUI_FROM_DATABASE=Neuberger Gebäudeautomation GmbH + +@@ -68126,7 +68237,7 @@ OUI:D45AB2* + ID_OUI_FROM_DATABASE=Galleon Systems + + OUI:D45C70* +- ID_OUI_FROM_DATABASE=Wireless Gigabit Alliance ++ ID_OUI_FROM_DATABASE=Wi-Fi Alliance + + OUI:D45D42* + ID_OUI_FROM_DATABASE=Nokia Corporation +@@ -68359,6 +68470,9 @@ OUI:D808F5* + OUI:D809C3* + ID_OUI_FROM_DATABASE=Cercacor Labs + ++OUI:D80CCF* ++ ID_OUI_FROM_DATABASE=C.G.V. S.A.S. ++ + OUI:D80DE3* + ID_OUI_FROM_DATABASE=FXI TECHNOLOGIES AS + +@@ -68386,6 +68500,9 @@ OUI:D81EDE* + OUI:D824BD* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:D82522* ++ ID_OUI_FROM_DATABASE=Pace plc ++ + OUI:D826B9* + ID_OUI_FROM_DATABASE=Guangdong Coagent Electronics S &T Co., Ltd. + +@@ -68521,6 +68638,9 @@ OUI:D89685* + OUI:D89695* + ID_OUI_FROM_DATABASE=Apple + ++OUI:D896E0* ++ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. ++ + OUI:D8973B* + ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies + +@@ -68941,6 +69061,9 @@ OUI:E01C41* + OUI:E01CEE* + ID_OUI_FROM_DATABASE=Bravo Tech, Inc. + ++OUI:E01D38* ++ ID_OUI_FROM_DATABASE=Beijing HuaqinWorld Technology Co.,Ltd ++ + OUI:E01D3B* + ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd + +@@ -69373,6 +69496,9 @@ OUI:E47CF9* + OUI:E47D5A* + ID_OUI_FROM_DATABASE=Beijing Hanbang Technology Corp. + ++OUI:E47FB2* ++ ID_OUI_FROM_DATABASE=Fujitsu Limited ++ + OUI:E48184* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + +@@ -69829,6 +69955,9 @@ OUI:EC219F* + OUI:EC2257* + ID_OUI_FROM_DATABASE=JiangSu NanJing University Electronic Information Technology Co.,Ltd + ++OUI:EC2280* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:EC233D* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + +@@ -69970,6 +70099,9 @@ OUI:ECB106* + OUI:ECB541* + ID_OUI_FROM_DATABASE=SHINANO E and E Co.Ltd. + ++OUI:ECB907* ++ ID_OUI_FROM_DATABASE=CloudGenix Inc ++ + OUI:ECBBAE* + ID_OUI_FROM_DATABASE=Digivoice Tecnologia em Eletronica Ltda + +@@ -70189,6 +70321,9 @@ OUI:F0728C* + OUI:F073AE* + ID_OUI_FROM_DATABASE=PEAK-System Technik + ++OUI:F0761C* ++ ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. ++ + OUI:F07765* + ID_OUI_FROM_DATABASE=Sourcefire, Inc + +@@ -70378,6 +70513,9 @@ OUI:F40321* + OUI:F4044C* + ID_OUI_FROM_DATABASE=ValenceTech Limited + ++OUI:F40669* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:F4068D* + ID_OUI_FROM_DATABASE=devolo AG + +@@ -70642,6 +70780,9 @@ OUI:F4EC38* + OUI:F4F15A* + ID_OUI_FROM_DATABASE=Apple + ++OUI:F4F26D* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. ++ + OUI:F4F5A5* + ID_OUI_FROM_DATABASE=Nokia corporation + +@@ -70825,6 +70966,9 @@ OUI:F871FE* + OUI:F872EA* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:F87394* ++ ID_OUI_FROM_DATABASE=NETGEAR INC., ++ + OUI:F8769B* + ID_OUI_FROM_DATABASE=Neopis Co., Ltd. + +@@ -70915,6 +71059,9 @@ OUI:F8C001* + OUI:F8C091* + ID_OUI_FROM_DATABASE=Highgates Technology + ++OUI:F8C288* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F8C678* + ID_OUI_FROM_DATABASE=Carefusion + +@@ -71167,6 +71314,9 @@ OUI:FC683E* + OUI:FC6C31* + ID_OUI_FROM_DATABASE=LXinstruments GmbH + ++OUI:FC6DC0* ++ ID_OUI_FROM_DATABASE=BME CORPORATION ++ + OUI:FC7516* + ID_OUI_FROM_DATABASE=D-Link International + +@@ -71319,3 +71469,6 @@ OUI:FCFBFB* + + OUI:FCFE77* + ID_OUI_FROM_DATABASE=Hitachi Reftechno, Inc. ++ ++OUI:FCFFAA* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAL public listing for more information. +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 2957774..62941b9 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -4205,6 +4205,9 @@ pci:v00001002d00005F57* + pci:v00001002d00006600* + ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] + ++pci:v00001002d00006600sv0000103Csd00001952* ++ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] (ProBook 455 G1) ++ + pci:v00001002d00006601* + ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] + +@@ -4292,6 +4295,12 @@ pci:v00001002d00006640* + pci:v00001002d00006641* + ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] + ++pci:v00001002d00006646* ++ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon R9 M280X] ++ ++pci:v00001002d00006647* ++ ID_MODEL_FROM_DATABASE=Bonaire PRO [Radeon R9 M270X] ++ + pci:v00001002d00006649* + ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] + +@@ -6137,6 +6146,9 @@ pci:v00001002d0000683Dsv0000103Csd00006890* + pci:v00001002d0000683Dsv00001043sd00008760* + ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + ++pci:v00001002d0000683Dsv00001462sd00002710* ++ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (R7770-PMD1GD5) ++ + pci:v00001002d0000683Dsv0000174Bsd00008304* + ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) + +@@ -7856,6 +7868,15 @@ pci:v00001002d00006901* + pci:v00001002d00006920* + ID_MODEL_FROM_DATABASE=Tonga + ++pci:v00001002d00006921* ++ ID_MODEL_FROM_DATABASE=Amethyst XT [Radeon R9 M295X] ++ ++pci:v00001002d0000692B* ++ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] ++ ++pci:v00001002d0000692F* ++ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] ++ + pci:v00001002d0000700F* + ID_MODEL_FROM_DATABASE=RS100 AGP Bridge + +@@ -24470,6 +24491,9 @@ pci:v000010DEd00000640* + pci:v000010DEd00000641* + ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] + ++pci:v000010DEd00000641sv00001682sd00004009* ++ ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] (PV-T94G-ZAFG) ++ + pci:v000010DEd00000643* + ID_MODEL_FROM_DATABASE=G96 [GeForce 9500 GT] + +@@ -26306,6 +26330,9 @@ pci:v000010DEd00000FD8* + pci:v000010DEd00000FD9* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 645M] + ++pci:v000010DEd00000FDB* ++ ID_MODEL_FROM_DATABASE=GK107M ++ + pci:v000010DEd00000FDF* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 740M] + +@@ -26861,6 +26888,12 @@ pci:v000010DEd00001140sv00001028sd000005E8* + pci:v000010DEd00001140sv00001028sd000005F4* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv00001028sd0000064E* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001028sd0000068D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv0000103Csd000018EF* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + +@@ -27185,6 +27218,36 @@ pci:v000010DEd00001140sv000017AAsd00003803* + pci:v000010DEd00001140sv000017AAsd00003804* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv000017AAsd00003806* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) ++ ++pci:v000010DEd00001140sv000017AAsd00003808* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) ++ ++pci:v000010DEd00001140sv000017AAsd0000380D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd0000380E* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd0000380F* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003811* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003812* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003813* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003816* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00003818* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv000017AAsd00003901* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) + +@@ -27260,12 +27323,27 @@ pci:v000010DEd00001140sv000017AAsd0000502E* + pci:v000010DEd00001140sv000017AAsd0000502F* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv000017AAsd00005030* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) ++ ++pci:v000010DEd00001140sv000017AAsd00005031* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) ++ ++pci:v000010DEd00001140sv000017AAsd00005032* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv000017AAsd00005033* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv000017AAsd0000503E* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + + pci:v000010DEd00001140sv000017AAsd0000503F* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + ++pci:v000010DEd00001140sv000017AAsd00005040* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001854sd00000177* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + +@@ -28443,7 +28521,7 @@ pci:v000010ECd00008168sv00001043sd00008432* + ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) + + pci:v000010ECd00008168sv00001043sd00008505* +- ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8 series motherboard) + + pci:v000010ECd00008168sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) +@@ -35300,6 +35378,9 @@ pci:v000011ABd00007810* + pci:v000011ABd00007820* + ID_MODEL_FROM_DATABASE=MV78200 [Discovery Innovation] ARM SoC + ++pci:v000011ABd00007823* ++ ID_MODEL_FROM_DATABASE=MV78230 [Armada XP] ARM SoC ++ + pci:v000011ABd0000F003* + ID_MODEL_FROM_DATABASE=GT-64010 Primary Image Piranha Image Generator + +@@ -36602,17 +36683,20 @@ pci:v00001217d00008120* + pci:v00001217d00008130* + ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller + ++pci:v00001217d00008220* ++ ID_MODEL_FROM_DATABASE=OZ600FJ1/OZ900FJ1 SD/MMC Card Reader Controller ++ + pci:v00001217d00008221* +- ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller ++ ID_MODEL_FROM_DATABASE=OZ600FJ0/OZ900FJ0/OZ600FJS SD/MMC Card Reader Controller + + pci:v00001217d00008320* +- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller ++ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller + + pci:v00001217d00008320sv00001028sd000004A3* +- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) ++ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller (Precision M4600) + + pci:v00001217d00008321* +- ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller ++ ID_MODEL_FROM_DATABASE=OZ600RJ0/OZ900RJ0/OZ600RJS SD/MMC Card Reader Controller + + pci:v00001217d00008330* + ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller +@@ -46403,6 +46487,9 @@ pci:v000014F1d00008800sv00000070sd00009802* + pci:v000014F1d00008800sv00001002sd000000F8* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) + ++pci:v000014F1d00008800sv00001002sd000000F9* ++ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder) ++ + pci:v000014F1d00008800sv00001002sd0000A101* + ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) + +@@ -50978,6 +51065,12 @@ pci:v000018F4d00000125* + pci:v000018F4d00000135* + ID_MODEL_FROM_DATABASE=NT20E2-PTP Network Adapter 2x10Gb + ++pci:v000018F4d00000145* ++ ID_MODEL_FROM_DATABASE=NT40E3-4-PTP Network Adapter 4x10Gb ++ ++pci:v000018F4d00000155* ++ ID_MODEL_FROM_DATABASE=NT100E3-1-PTP Network Adapter 1x100Gb ++ + pci:v000018F6* + ID_VENDOR_FROM_DATABASE=NextIO + +@@ -55143,7 +55236,7 @@ pci:v00008086d00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller + + pci:v00008086d00000150sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) + + pci:v00008086d00000150sv00001849sd00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) +@@ -55229,6 +55322,9 @@ pci:v00008086d0000015E* + pci:v00008086d00000162* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + ++pci:v00008086d00000162sv00001043sd000084CA* ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8 series motherboard) ++ + pci:v00008086d00000162sv00001849sd00000162* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) + +@@ -59061,10 +59157,10 @@ pci:v00008086d00001521sv00001028sd00000602* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) + + pci:v00008086d00001521sv00001028sd00001F60* +- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P I350-t rNDC) + + pci:v00008086d00001521sv00001028sd00001F62* +- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC) + + pci:v00008086d00001521sv00001028sd0000FF9A* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) +@@ -59250,7 +59346,10 @@ pci:v00008086d00001533* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection + + pci:v00008086d00001533sv0000103Csd00000003* +- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet I210-T1 GbE NIC) ++ ++pci:v00008086d00001533sv000010A9sd0000802C* ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (UV300 BaseIO single-port GbE) + + pci:v00008086d00001533sv000017AAsd00001100* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) +@@ -59261,15 +59360,15 @@ pci:v00008086d00001533sv00008086sd00000001* + pci:v00008086d00001533sv00008086sd00000002* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) + +-pci:v00008086d00001534* +- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +- + pci:v00008086d00001536* + ID_MODEL_FROM_DATABASE=I210 Gigabit Fiber Network Connection + + pci:v00008086d00001537* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + ++pci:v00008086d00001538* ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection ++ + pci:v00008086d00001539* + ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection + +@@ -60267,7 +60366,7 @@ pci:v00008086d00001E02* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] + + pci:v00008086d00001E02sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8 series motherboard) + + pci:v00008086d00001E02sv00001849sd00001E02* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) +@@ -60374,6 +60473,9 @@ pci:v00008086d00001E20sv00001043sd00001517* + pci:v00008086d00001E20sv00001043sd00008415* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) + ++pci:v00008086d00001E20sv00001043sd00008445* ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (ASUS P8Z77-V LX Motherboard) ++ + pci:v00008086d00001E20sv00001849sd00001898* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) + +@@ -60387,7 +60489,7 @@ pci:v00008086d00001E22sv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E22sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8 series motherboard) + + pci:v00008086d00001E22sv00001849sd00001E22* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) +@@ -60411,7 +60513,7 @@ pci:v00008086d00001E26sv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E26sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) + + pci:v00008086d00001E26sv00001849sd00001E26* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) +@@ -60426,7 +60528,7 @@ pci:v00008086d00001E2Dsv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) + + pci:v00008086d00001E2Dsv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) + + pci:v00008086d00001E2Dsv00001849sd00001E2D* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) +@@ -60444,7 +60546,7 @@ pci:v00008086d00001E31sv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) + + pci:v00008086d00001E31sv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8 series motherboard) + + pci:v00008086d00001E31sv00001849sd00001E31* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) +@@ -60462,7 +60564,7 @@ pci:v00008086d00001E3Asv00001043sd00001517* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) + + pci:v00008086d00001E3Asv00001043sd000084CA* +- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) ++ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8 series motherboard) + + pci:v00008086d00001E3Asv00001849sd00001E3A* + ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) +@@ -60488,6 +60590,9 @@ pci:v00008086d00001E43* + pci:v00008086d00001E44* + ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller + ++pci:v00008086d00001E44sv00001043sd000084CA* ++ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (P8 series motherboard) ++ + pci:v00008086d00001E44sv00001849sd00001E44* + ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 52586bc..05f267d 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -41163,7 +41163,7 @@ usb:v1234pED02* + ID_MODEL_FROM_DATABASE=Emotiv EPOC Developer Headset Wireless Dongle + + usb:v1235* +- ID_VENDOR_FROM_DATABASE=Novation EMS ++ ID_VENDOR_FROM_DATABASE=Focusrite-Novation + + usb:v1235p0001* + ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition +@@ -41729,6 +41729,9 @@ usb:v12D1p155A* + usb:v12D1p1575* + ID_MODEL_FROM_DATABASE=K5150 LTE modem + ++usb:v12D1p15CA* ++ ID_MODEL_FROM_DATABASE=E3131 3G/UMTS/HSPA+ Modem (Mass Storage Mode) ++ + usb:v12D1p1805* + ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone + +@@ -41744,6 +41747,12 @@ usb:v12D1p1C20* + usb:v12D1p1D50* + ID_MODEL_FROM_DATABASE=ET302s TD-SCDMA/TD-HSDPA Mobile Broadband + ++usb:v12D1p1F01* ++ ID_MODEL_FROM_DATABASE=E353/E3131 (Mass storage mode) ++ ++usb:v12D1p1F16* ++ ID_MODEL_FROM_DATABASE=K5150 LTE modem (Mass Storage Mode) ++ + usb:v12D1p380B* + ID_MODEL_FROM_DATABASE=WiMAX USB modem(s) + +@@ -41762,6 +41771,12 @@ usb:v12D6p0888* + usb:v12D7* + ID_VENDOR_FROM_DATABASE=BETTER WIRE FACTORY CO., LTD. + ++usb:v12D8* ++ ID_VENDOR_FROM_DATABASE=Araneus Information Systems Oy ++ ++usb:v12D8p0001* ++ ID_MODEL_FROM_DATABASE=Alea I True Random Number Generator ++ + usb:v12E6* + ID_VENDOR_FROM_DATABASE=Waldorf Music GmbH + +@@ -41805,7 +41820,7 @@ usb:v1307p0163* + ID_MODEL_FROM_DATABASE=256MB/512MB/1GB Flash Drive + + usb:v1307p0165* +- ID_MODEL_FROM_DATABASE=2GB/4GB Flash Drive ++ ID_MODEL_FROM_DATABASE=2GB/4GB/8GB Flash Drive + + usb:v1307p0190* + ID_MODEL_FROM_DATABASE=Ut190 8 GB Flash Drive with MicroSD reader +@@ -41846,6 +41861,51 @@ usb:v1312* + usb:v1313* + ID_VENDOR_FROM_DATABASE=ThorLabs + ++usb:v1313p0010* ++ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (Jungo) ++ ++usb:v1313p0011* ++ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (Jungo) ++ ++usb:v1313p0012* ++ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (Jungo) ++ ++usb:v1313p0110* ++ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (VISA) ++ ++usb:v1313p0111* ++ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (VISA) ++ ++usb:v1313p0112* ++ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (VISA) ++ ++usb:v1313p8001* ++ ID_MODEL_FROM_DATABASE=TXP-Series Slot (TXP5001, TXP5004) ++ ++usb:v1313p8012* ++ ID_MODEL_FROM_DATABASE=BC106 Camera Beam Profiler ++ ++usb:v1313p8013* ++ ID_MODEL_FROM_DATABASE=WFS10 Wavefront Sensor ++ ++usb:v1313p8017* ++ ID_MODEL_FROM_DATABASE=BC206 Camera Beam Profiler ++ ++usb:v1313p8019* ++ ID_MODEL_FROM_DATABASE=BP2 Multi Slit Beam Profiler ++ ++usb:v1313p8020* ++ ID_MODEL_FROM_DATABASE=PM300 Optical Power Meter ++ ++usb:v1313p8021* ++ ID_MODEL_FROM_DATABASE=PM300E Optical Power and Energy Meter ++ ++usb:v1313p8022* ++ ID_MODEL_FROM_DATABASE=PM320E Optical Power and Energy Meter ++ ++usb:v1313p8030* ++ ID_MODEL_FROM_DATABASE=ER100 Extinction Ratio Meter ++ + usb:v1313p8070* + ID_MODEL_FROM_DATABASE=PM100D + +@@ -41975,6 +42035,18 @@ usb:v1342p0204* + usb:v1342p0304* + ID_MODEL_FROM_DATABASE=EasiDock Ethernet + ++usb:v1343* ++ ID_VENDOR_FROM_DATABASE=Citizen Systems ++ ++usb:v1343p0003* ++ ID_MODEL_FROM_DATABASE=CX / DNP DS40 ++ ++usb:v1343p0004* ++ ID_MODEL_FROM_DATABASE=CX-W / DNP DS80 ++ ++usb:v1343p0005* ++ ID_MODEL_FROM_DATABASE=CY / DNP DSRX ++ + usb:v1345* + ID_VENDOR_FROM_DATABASE=Sino Lite Technology Corp. + +@@ -42002,6 +42074,12 @@ usb:v1347p0403* + usb:v1347p0404* + ID_MODEL_FROM_DATABASE=G2/G3/G4 CCD-F KAF CCD + ++usb:v1347p0405* ++ ID_MODEL_FROM_DATABASE=Gx CCD-I CCD ++ ++usb:v1347p0406* ++ ID_MODEL_FROM_DATABASE=Gx CCD-F CCD ++ + usb:v1347p0410* + ID_MODEL_FROM_DATABASE=G1-0400 CCD + +@@ -42149,6 +42227,9 @@ usb:v138Ap003C* + usb:v138Ap003D* + ID_MODEL_FROM_DATABASE=VFS491 + ++usb:v138Ap0050* ++ ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor ++ + usb:v138E* + ID_VENDOR_FROM_DATABASE=Jungo LTD + +@@ -42161,6 +42242,9 @@ usb:v1390* + usb:v1390p0001* + ID_MODEL_FROM_DATABASE=GO 520 T/GO 630/ONE XL (v9) + ++usb:v1390p5454* ++ ID_MODEL_FROM_DATABASE=Blue & Me 2 ++ + usb:v1391* + ID_VENDOR_FROM_DATABASE=IdealTEK, Inc. + +@@ -42263,6 +42347,15 @@ usb:v13B1p0039* + usb:v13B1p003A* + ID_MODEL_FROM_DATABASE=AE2500 802.11abgn Wireless Adapter [Broadcom BCM43236] + ++usb:v13B1p003B* ++ ID_MODEL_FROM_DATABASE=AE3000 802.11abgn (3x3) Wireless Adapter [Ralink RT3573] ++ ++usb:v13B1p003E* ++ ID_MODEL_FROM_DATABASE=AE6000 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] ++ ++usb:v13B1p003F* ++ ID_MODEL_FROM_DATABASE=WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] ++ + usb:v13B1p13B1* + ID_MODEL_FROM_DATABASE=WUSB200: Wireless-G Business Network Adapter with Rangebooster + +@@ -42446,6 +42539,12 @@ usb:v13D3p3315* + usb:v13D3p3375* + ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth 4.0 Adapter + ++usb:v13D3p3392* ++ ID_MODEL_FROM_DATABASE=Azurewave 43228+20702 ++ ++usb:v13D3p3394* ++ ID_MODEL_FROM_DATABASE=Bluetooth ++ + usb:v13D3p5070* + ID_MODEL_FROM_DATABASE=Webcam + +@@ -42458,6 +42557,9 @@ usb:v13D3p5115* + usb:v13D3p5116* + ID_MODEL_FROM_DATABASE=Integrated Webcam + ++usb:v13D3p5122* ++ ID_MODEL_FROM_DATABASE=2M Integrated Webcam ++ + usb:v13D3p5126* + ID_MODEL_FROM_DATABASE=PC Cam + +@@ -42524,6 +42626,9 @@ usb:v13FDp0840* + usb:v13FDp0841* + ID_MODEL_FROM_DATABASE=Samsung SE-T084M DVD-RW + ++usb:v13FDp1040* ++ ID_MODEL_FROM_DATABASE=INIC-1511L PATA Bridge ++ + usb:v13FDp1340* + ID_MODEL_FROM_DATABASE=Hi-Speed USB to SATA Bridge + +@@ -42533,9 +42638,15 @@ usb:v13FDp160F* + usb:v13FDp1640* + ID_MODEL_FROM_DATABASE=INIC-1610L SATA Bridge + ++usb:v13FDp1669* ++ ID_MODEL_FROM_DATABASE=INIC-1609PN ++ + usb:v13FDp1840* + ID_MODEL_FROM_DATABASE=INIC-1608 SATA bridge + ++usb:v13FDp1E40* ++ ID_MODEL_FROM_DATABASE=INIC-1610P SATA bridge ++ + usb:v13FE* + ID_VENDOR_FROM_DATABASE=Kingston Technology Company Inc. + +@@ -42555,10 +42666,10 @@ usb:v13FEp1E50* + ID_MODEL_FROM_DATABASE=U3 Smart Drive + + usb:v13FEp1F00* +- ID_MODEL_FROM_DATABASE=DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive ++ ID_MODEL_FROM_DATABASE=Kingston DataTraveler / Patriot Xporter + + usb:v13FEp1F23* +- ID_MODEL_FROM_DATABASE=2Gb ++ ID_MODEL_FROM_DATABASE=PS2232 flash drive controller + + usb:v13FEp2240* + ID_MODEL_FROM_DATABASE=microSD card reader +@@ -42569,12 +42680,18 @@ usb:v13FEp3100* + usb:v13FEp3123* + ID_MODEL_FROM_DATABASE=Verbatim STORE N GO 4GB + ++usb:v13FEp3600* ++ ID_MODEL_FROM_DATABASE=flash drive (4GB, EMTEC) ++ + usb:v13FEp3800* + ID_MODEL_FROM_DATABASE=Rage XT Flash Drive + + usb:v13FEp3E00* + ID_MODEL_FROM_DATABASE=Flash Drive + ++usb:v13FEp5000* ++ ID_MODEL_FROM_DATABASE=USB flash drive (32 GB SHARKOON Accelerate) ++ + usb:v13FEp5100* + ID_MODEL_FROM_DATABASE=Flash Drive + +@@ -42674,6 +42791,12 @@ usb:v1415p2000* + usb:v1419* + ID_VENDOR_FROM_DATABASE=ABILITY ENTERPRISE CO., LTD. + ++usb:v1421* ++ ID_VENDOR_FROM_DATABASE=Sensor Technology ++ ++usb:v1421p0605* ++ ID_MODEL_FROM_DATABASE=Sentech Camera ++ + usb:v1429* + ID_VENDOR_FROM_DATABASE=Vega Technologies Industrial (Austria) Co. + +@@ -42776,6 +42899,18 @@ usb:v1457p5118* + usb:v1457p5119* + ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot cdc_acm serial port + ++usb:v1457p511A* ++ ID_MODEL_FROM_DATABASE=HXD8 u-boot usbtty CDC ACM Mode ++ ++usb:v1457p511B* ++ ID_MODEL_FROM_DATABASE=SMDK2440 u-boot usbtty CDC ACM mode ++ ++usb:v1457p511C* ++ ID_MODEL_FROM_DATABASE=SMDK2443 u-boot usbtty CDC ACM mode ++ ++usb:v1457p511D* ++ ID_MODEL_FROM_DATABASE=QT2410 u-boot usbtty CDC ACM mode ++ + usb:v1457p5120* + ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot usbtty generic serial + +@@ -42935,6 +43070,9 @@ usb:v148E* + usb:v148F* + ID_VENDOR_FROM_DATABASE=Ralink Technology, Corp. + ++usb:v148Fp1000* ++ ID_MODEL_FROM_DATABASE=Motorola BC4 Bluetooth 3.0+HS Adapter ++ + usb:v148Fp1706* + ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter + +@@ -42983,6 +43121,9 @@ usb:v148Fp5372* + usb:v148Fp5572* + ID_MODEL_FROM_DATABASE=RT5572 Wireless Adapter + ++usb:v148Fp7601* ++ ID_MODEL_FROM_DATABASE=MT7601U Wireless Adapter ++ + usb:v148Fp9020* + ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter + +@@ -42998,6 +43139,15 @@ usb:v1491p0020* + usb:v1493* + ID_VENDOR_FROM_DATABASE=Suunto + ++usb:v1493p0010* ++ ID_MODEL_FROM_DATABASE=Bluebird [Ambit] ++ ++usb:v1493p0019* ++ ID_MODEL_FROM_DATABASE=Duck [Ambit2] ++ ++usb:v1493p001A* ++ ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] ++ + usb:v1497* + ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. + +@@ -43118,6 +43268,9 @@ usb:v14CD* + usb:v14CDp121C* + ID_MODEL_FROM_DATABASE=microSD card reader + ++usb:v14CDp121F* ++ ID_MODEL_FROM_DATABASE=microSD CardReader SY-T18 ++ + usb:v14CDp123A* + ID_MODEL_FROM_DATABASE=SD/MMC/RS-MMC Card Reader + +@@ -43131,7 +43284,7 @@ usb:v14CDp6116* + ID_MODEL_FROM_DATABASE=M6116 SATA Bridge + + usb:v14CDp6600* +- ID_MODEL_FROM_DATABASE=USB 2.0 IDE DEVICE ++ ID_MODEL_FROM_DATABASE=M110E PATA bridge + + usb:v14CDp6700* + ID_MODEL_FROM_DATABASE=Card Reader +@@ -43166,6 +43319,9 @@ usb:v14E1* + usb:v14E1p5000* + ID_MODEL_FROM_DATABASE=PenMount 5000 Touch Controller + ++usb:v14E4* ++ ID_VENDOR_FROM_DATABASE=Broadcom Corp. ++ + usb:v14E5* + ID_VENDOR_FROM_DATABASE=SAIN Information & Communications Co., Ltd. + +@@ -43214,6 +43370,15 @@ usb:v1501* + usb:v1509* + ID_VENDOR_FROM_DATABASE=First International Computer, Inc. + ++usb:v1509p0A01* ++ ID_MODEL_FROM_DATABASE=LI-3100 Area Meter ++ ++usb:v1509p0A02* ++ ID_MODEL_FROM_DATABASE=LI-7000 CO2/H2O Gas Analyzer ++ ++usb:v1509p0A03* ++ ID_MODEL_FROM_DATABASE=C-DiGit Blot Scanner ++ + usb:v1509p9242* + ID_MODEL_FROM_DATABASE=eHome Infrared Transceiver + +@@ -43253,6 +43418,12 @@ usb:v1518p0001* + usb:v1518p0002* + ID_MODEL_FROM_DATABASE=HDReye (before firmware loads) + ++usb:v1519* ++ ID_VENDOR_FROM_DATABASE=Comneon ++ ++usb:v1519p0020* ++ ID_MODEL_FROM_DATABASE=HSIC Device ++ + usb:v1520* + ID_VENDOR_FROM_DATABASE=Bitwire Corp. + +@@ -43280,6 +43451,15 @@ usb:v1529p3100* + usb:v152A* + ID_VENDOR_FROM_DATABASE=Thesycon Systemsoftware & Consulting GmbH + ++usb:v152Ap8400* ++ ID_MODEL_FROM_DATABASE=INI DVS128 ++ ++usb:v152Ap840D* ++ ID_MODEL_FROM_DATABASE=INI DAViS ++ ++usb:v152Ap841A* ++ ID_MODEL_FROM_DATABASE=INI DAViS FX3 ++ + usb:v152D* + ID_VENDOR_FROM_DATABASE=JMicron Technology Corp. / JMicron USA Technology Corp. + +@@ -43337,6 +43517,9 @@ usb:v1532p0007* + usb:v1532p0013* + ID_MODEL_FROM_DATABASE=Orochi mouse + ++usb:v1532p0015* ++ ID_MODEL_FROM_DATABASE=Naga Mouse ++ + usb:v1532p0016* + ID_MODEL_FROM_DATABASE=DeathAdder Mouse + +@@ -43364,9 +43547,21 @@ usb:v1532p0102* + usb:v1532p0109* + ID_MODEL_FROM_DATABASE=Lycosa Keyboard + ++usb:v1532p0113* ++ ID_MODEL_FROM_DATABASE=RZ07-0074 Gaming Keypad [Orbweaver] ++ + usb:v1532p0300* + ID_MODEL_FROM_DATABASE=RZ06-0063 Motion Sensing Controllers [Hydra] + ++usb:v153B* ++ ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH ++ ++usb:v153Bp1181* ++ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 1 ++ ++usb:v153Bp1182* ++ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 2 ++ + usb:v1546* + ID_VENDOR_FROM_DATABASE=U-Blox AG + +@@ -43388,12 +43583,18 @@ usb:v154B* + usb:v154Bp0010* + ID_MODEL_FROM_DATABASE=USB 2.0 Flash Drive + ++usb:v154Bp0048* ++ ID_MODEL_FROM_DATABASE=Flash Drive ++ + usb:v154Bp004D* + ID_MODEL_FROM_DATABASE=8 GB Flash Drive + + usb:v154Bp0057* + ID_MODEL_FROM_DATABASE=32GB Micro Slide Attache Flash Drive + ++usb:v154Bp007A* ++ ID_MODEL_FROM_DATABASE=8GB Classic Attache Flash Drive ++ + usb:v154Bp6545* + ID_MODEL_FROM_DATABASE=FD Device + +@@ -43530,7 +43731,10 @@ usb:v15A2p0052* + ID_MODEL_FROM_DATABASE=i.MX50 SystemOnChip in RecoveryMode + + usb:v15A2p0054* +- ID_MODEL_FROM_DATABASE=i.MX6Q SystemOnChip in RecoveryMode ++ ID_MODEL_FROM_DATABASE=i.MX 6Dual/6Quad SystemOnChip in RecoveryMode ++ ++usb:v15A2p0061* ++ ID_MODEL_FROM_DATABASE=i.MX 6Solo/6DualLite SystemOnChip in RecoveryMode + + usb:v15A4* + ID_VENDOR_FROM_DATABASE=Afatech Technologies, Inc. +@@ -43640,6 +43844,9 @@ usb:v15C2p0036* + usb:v15C2p0038* + ID_MODEL_FROM_DATABASE=GD01 MX LCD Display/IR Receiver + ++usb:v15C2p0042* ++ ID_MODEL_FROM_DATABASE=Antec Veris Multimedia Station E-Z IR Receiver ++ + usb:v15C2pFFDA* + ID_MODEL_FROM_DATABASE=iMON PAD Remote Controller + +@@ -43724,6 +43931,9 @@ usb:v15D9p0A4C* + usb:v15D9p0A4D* + ID_MODEL_FROM_DATABASE=Optical Mouse + ++usb:v15D9p0A4F* ++ ID_MODEL_FROM_DATABASE=Optical Mouse ++ + usb:v15DC* + ID_VENDOR_FROM_DATABASE=Hynix Semiconductor Inc. + +@@ -44507,6 +44717,15 @@ usb:v1690p0740* + usb:v1690p0901* + ID_MODEL_FROM_DATABASE=Voyager 205 ADSL Router + ++usb:v1690p2000* ++ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard ++ ++usb:v1690p2001* ++ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard ++ ++usb:v1690pFE12* ++ ID_MODEL_FROM_DATABASE=Bootloader ++ + usb:v1696* + ID_VENDOR_FROM_DATABASE=Hitachi Video and Information System, Inc. + +@@ -44669,6 +44888,9 @@ usb:v16C0p06B4* + usb:v16C0p06B5* + ID_MODEL_FROM_DATABASE=USB2LPT with 3 interfaces (native, HID, printer) + ++usb:v16C0p0762* ++ ID_MODEL_FROM_DATABASE=Osmocom SIMtrace ++ + usb:v16C0p076B* + ID_MODEL_FROM_DATABASE=OpenPCD 13.56MHz RFID Reader + +@@ -44759,6 +44981,15 @@ usb:v16D0p075D* + usb:v16D0p080A* + ID_MODEL_FROM_DATABASE=S2E1 Interface + ++usb:v16D0p0870* ++ ID_MODEL_FROM_DATABASE=Kaufmann Automotive GmbH, RKS+CAN Interface ++ ++usb:v16D1* ++ ID_VENDOR_FROM_DATABASE=Suprema Inc. ++ ++usb:v16D1p0401* ++ ID_MODEL_FROM_DATABASE=SUP-SFR400(A) BioMini Fingerprint Reader ++ + usb:v16D3* + ID_VENDOR_FROM_DATABASE=Frontline Test Equipment, Inc. + +@@ -44774,6 +45005,9 @@ usb:v16D5p6501* + usb:v16D5p6502* + ID_MODEL_FROM_DATABASE=CDMA/UMTS/GPRS modem + ++usb:v16D5p6603* ++ ID_MODEL_FROM_DATABASE=ADU-890WH modem ++ + usb:v16D6* + ID_VENDOR_FROM_DATABASE=JABLOCOM s.r.o. + +@@ -44870,6 +45104,18 @@ usb:v170Bp0011* + usb:v170D* + ID_VENDOR_FROM_DATABASE=Avnera + ++usb:v1711* ++ ID_VENDOR_FROM_DATABASE=Leica Microsystems ++ ++usb:v1711p3020* ++ ID_MODEL_FROM_DATABASE=IC80 HD Camera ++ ++usb:v1724* ++ ID_VENDOR_FROM_DATABASE=Meyer Instruments (MIS) ++ ++usb:v1724p0115* ++ ID_MODEL_FROM_DATABASE=PAXcam5 ++ + usb:v1725* + ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor + +@@ -44957,9 +45203,21 @@ usb:v1737p0078* + usb:v1737p0079* + ID_MODEL_FROM_DATABASE=WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572] + ++usb:v173D* ++ ID_VENDOR_FROM_DATABASE=QSENN ++ ++usb:v173Dp0002* ++ ID_MODEL_FROM_DATABASE=GP-K7000 keyboard ++ + usb:v1740* + ID_VENDOR_FROM_DATABASE=Senao + ++usb:v1740p0100* ++ ID_MODEL_FROM_DATABASE=EUB1200AC AC1200 DB Wireless Adapter [Realtek RTL8812AU] ++ ++usb:v1740p0600* ++ ID_MODEL_FROM_DATABASE=EUB600v1 802.11abgn Wireless Adapter [Ralink RT3572] ++ + usb:v1740p0605* + ID_MODEL_FROM_DATABASE=LevelOne WUA-0605 N_Max Wireless USB Adapter + +@@ -45002,14 +45260,20 @@ usb:v1743* + usb:v1748* + ID_VENDOR_FROM_DATABASE=MQP Electronics + ++usb:v1748p0101* ++ ID_MODEL_FROM_DATABASE=Packet-Master USB12 ++ + usb:v174C* + ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. + + usb:v174Cp5106* + ID_MODEL_FROM_DATABASE=Transcend StoreJet 25M3 + ++usb:v174Cp5136* ++ ID_MODEL_FROM_DATABASE=ASM1053 SATA 6Gb/s bridge ++ + usb:v174Cp55AA* +- ID_MODEL_FROM_DATABASE=ASMedia 2105 SATA bridge ++ ID_MODEL_FROM_DATABASE=ASM1051 SATA 3Gb/s bridge + + usb:v174F* + ID_VENDOR_FROM_DATABASE=Syntek +@@ -45137,6 +45401,9 @@ usb:v1781p0C31* + usb:v1781p0C9F* + ID_MODEL_FROM_DATABASE=USBtiny + ++usb:v1781p1EEF* ++ ID_MODEL_FROM_DATABASE=OpenAPC SecuKey ++ + usb:v1782* + ID_VENDOR_FROM_DATABASE=Spreadtrum Communications Inc. + +@@ -45206,6 +45473,9 @@ usb:v17A0p0100* + usb:v17A0p0101* + ID_MODEL_FROM_DATABASE=UB1 boundary microphone + ++usb:v17A0p0120* ++ ID_MODEL_FROM_DATABASE=Meteorite condenser microphone ++ + usb:v17A0p0200* + ID_MODEL_FROM_DATABASE=StudioDock monitors (internal hub) + +@@ -45221,6 +45491,9 @@ usb:v17A0p0301* + usb:v17A0p0302* + ID_MODEL_FROM_DATABASE=GoMic compact condenser microphone + ++usb:v17A0p0303* ++ ID_MODEL_FROM_DATABASE=C01U Pro condenser microphone ++ + usb:v17A0p0304* + ID_MODEL_FROM_DATABASE=Q2U handheld mic with XLR + +@@ -45371,6 +45644,9 @@ usb:v17E9p037C* + usb:v17E9p037D* + ID_MODEL_FROM_DATABASE=Plugable USB2-HDMI-165 + ++usb:v17E9p410A* ++ ID_MODEL_FROM_DATABASE=HDMI Adapter ++ + usb:v17E9p430A* + ID_MODEL_FROM_DATABASE=HP Port Replicator (Composite Device) + +@@ -45383,6 +45659,9 @@ usb:v17EB* + usb:v17EF* + ID_VENDOR_FROM_DATABASE=Lenovo + ++usb:v17EFp1000* ++ ID_MODEL_FROM_DATABASE=Hub ++ + usb:v17EFp1003* + ID_MODEL_FROM_DATABASE=Integrated Smart Card Reader + +@@ -45395,6 +45674,9 @@ usb:v17EFp1008* + usb:v17EFp100A* + ID_MODEL_FROM_DATABASE=ThinkPad Mini Dock Plus Series 3 + ++usb:v17EFp304B* ++ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [ThinkPad OneLink GigaLAN] ++ + usb:v17EFp3815* + ID_MODEL_FROM_DATABASE=ChipsBnk 2GB USB Stick + +@@ -45455,6 +45737,12 @@ usb:v17EFp6009* + usb:v17EFp6014* + ID_MODEL_FROM_DATABASE=Mini Wireless Keyboard N5901 + ++usb:v17EFp6025* ++ ID_MODEL_FROM_DATABASE=ThinkPad Travel Mouse ++ ++usb:v17EFp7203* ++ ID_MODEL_FROM_DATABASE=Ethernet adapter [U2L 100P-Y1] ++ + usb:v17EFp7423* + ID_MODEL_FROM_DATABASE=IdeaPad A1 Tablet + +-- +1.7.9.2 + diff --git a/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch b/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch new file mode 100644 index 00000000..ea295af2 --- /dev/null +++ b/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch @@ -0,0 +1,34 @@ +Based on 1727a595225132eb73ec134b6979d9c713b42e8c Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Mon, 12 May 2014 09:26:16 +0200 +Subject: [PATCH] job: always add waiting jobs to run queue during coldplug + +commit 20a83d7bf was not equivalent to the original bug fix proposed by +Michal Sekletar . The committed version only added +the job to the run queue if the job had a timeout, which most jobs do +not have. Just re-ordering the code gets us the intended functionality +--- + src/core/job.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- src/core/job.c ++++ src/core/job.c 2014-05-12 13:11:24.918735646 +0000 +@@ -1051,15 +1051,15 @@ int job_coldplug(Job *j) { + + assert(j); + ++ if (j->state == JOB_WAITING) ++ job_add_to_run_queue(j); ++ + if (j->begin_usec == 0 || j->unit->job_timeout == 0) + return 0; + + if (j->timer_event_source) + j->timer_event_source = sd_event_source_unref(j->timer_event_source); + +- if (j->state == JOB_WAITING) +- job_add_to_run_queue(j); +- + r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); + if (r < 0) + log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0005-journalctl-correct-help-text-for-until.patch b/0005-journalctl-correct-help-text-for-until.patch new file mode 100644 index 00000000..77563faf --- /dev/null +++ b/0005-journalctl-correct-help-text-for-until.patch @@ -0,0 +1,21 @@ +Based on 7558251eef610e71595a0aa48952479906cb899a Mon Sep 17 00:00:00 2001 +From: Santiago Vila +Date: Sat, 25 Oct 2014 10:40:30 -0400 +Subject: [PATCH] journalctl: correct help text for --until + +http://bugs.debian.org/766598 +--- + src/journal/journalctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/journal/journalctl.c ++++ src/journal/journalctl.c 2014-10-29 14:10:18.863838313 +0000 +@@ -171,7 +171,7 @@ static int help(void) { + " --user Show only the user journal for the current user\n" + " -M --machine=CONTAINER Operate on local container\n" + " --since=DATE Start showing entries on or newer than the specified date\n" +- " --until=DATE Stop showing entries on or older than the specified date\n" ++ " --until=DATE Stop showing entries on or newer than the specified date\n" + " -c --cursor=CURSOR Start showing entries from the specified cursor\n" + " --after-cursor=CURSOR Start showing entries from after the specified cursor\n" + " --show-cursor Print the cursor after all the entries\n" diff --git a/0005-login-fix-mem-leak.patch b/0005-login-fix-mem-leak.patch new file mode 100644 index 00000000..69206fd5 --- /dev/null +++ b/0005-login-fix-mem-leak.patch @@ -0,0 +1,23 @@ +Based on 13f493dc9ace9861c1f27c4d37e8cd6d52fe6a32 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sun, 31 Aug 2014 23:34:01 +0200 +Subject: [PATCH] login: fix mem leak + +--- + src/login/logind-session.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-09-01 12:59:27.870235647 +0000 +@@ -1101,8 +1101,10 @@ int session_set_controller(Session *s, c + * If logind crashes/restarts, we restore the controller during restart + * or reset the VT in case it crashed/exited, too. */ + r = session_mute_vt(s); +- if (r < 0) ++ if (r < 0) { ++ free(t); + return r; ++ } + + session_swap_controller(s, t); + diff --git a/0005-logind-fix-policykit-checks.patch b/0005-logind-fix-policykit-checks.patch new file mode 100644 index 00000000..69cf61a6 --- /dev/null +++ b/0005-logind-fix-policykit-checks.patch @@ -0,0 +1,43 @@ +From 055d406624cb9e01963558767420b71e5f75d2d3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 10 Mar 2014 08:25:15 -0400 +Subject: [PATCH] logind: fix policykit checks + +--- + src/login/logind-dbus.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git src/login/logind-dbus.c src/login/logind-dbus.c +index c9c58f3..235b131 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -1480,6 +1480,8 @@ static int method_do_shutdown_or_sleep( + action_multiple_sessions, interactive, error, method, m); + if (r < 0) + return r; ++ if (r == 0) ++ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + + if (blocked) { +@@ -1487,6 +1489,8 @@ static int method_do_shutdown_or_sleep( + action_ignore_inhibit, interactive, error, method, m); + if (r < 0) + return r; ++ if (r == 0) ++ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + + if (!multiple_sessions && !blocked) { +@@ -1494,6 +1498,8 @@ static int method_do_shutdown_or_sleep( + action, interactive, error, method, m); + if (r < 0) + return r; ++ if (r == 0) ++ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + } + + r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error); +-- +1.7.9.2 + diff --git a/0005-logind-fix-typo.patch b/0005-logind-fix-typo.patch new file mode 100644 index 00000000..79916e75 --- /dev/null +++ b/0005-logind-fix-typo.patch @@ -0,0 +1,25 @@ +From 2b2332856bafe25c4aa17db2a90bdcddef1fec1a Mon Sep 17 00:00:00 2001 +From: Ronny Chevalier +Date: Wed, 17 Sep 2014 20:10:44 +0200 +Subject: [PATCH] logind: fix typo + +--- + src/login/logind-session-dbus.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-session-dbus.c src/login/logind-session-dbus.c +index 7d81500..58836fc 100644 +--- src/login/logind-session-dbus.c ++++ src/login/logind-session-dbus.c +@@ -249,7 +249,7 @@ static int method_set_idle_hint(sd_bus *bus, sd_bus_message *message, void *user + return r; + + if (uid != 0 && uid != s->user->uid) +- return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session my set idle hint"); ++ return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session may set idle hint"); + + session_set_idle_hint(s, b); + +-- +1.7.9.2 + diff --git a/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch b/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch new file mode 100644 index 00000000..aaae9d12 --- /dev/null +++ b/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch @@ -0,0 +1,119 @@ +From b5d3e1688133077ca20542a20dcd8919147e72e1 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 11 Mar 2014 22:38:54 +0100 +Subject: [PATCH] logind: move lid switch handling from logind-main to + logind-core + +../src/login/logind-dbus.c:1352: error: undefined reference to 'manager_set_lid_switch_ignore' +collect2: error: ld returned 1 exit status +make[2]: *** [test-login-tables] +--- + src/login/logind-dbus.c | 40 ++++++++++++++++++++++++++++++++++++++++ + src/login/logind.c | 40 ---------------------------------------- + 2 files changed, 40 insertions(+), 40 deletions(-) + +diff --git src/login/logind-dbus.c src/login/logind-dbus.c +index c5f9cb3..2ef87f7 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -1305,6 +1305,46 @@ static int bus_manager_log_shutdown( + q, NULL); + } + ++static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(e); ++ assert(m); ++ ++ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); ++ return 0; ++} ++ ++int manager_set_lid_switch_ignore(Manager *m, usec_t until) { ++ int r; ++ ++ assert(m); ++ ++ if (until <= now(CLOCK_MONOTONIC)) ++ return 0; ++ ++ /* We want to ignore the lid switch for a while after each ++ * suspend, and after boot-up. Hence let's install a timer for ++ * this. As long as the event source exists we ignore the lid ++ * switch. */ ++ ++ if (m->lid_switch_ignore_event_source) { ++ usec_t u; ++ ++ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); ++ if (r < 0) ++ return r; ++ ++ if (until <= u) ++ return 0; ++ ++ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); ++ } else ++ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); ++ ++ return r; ++} ++ + static int execute_shutdown_or_sleep( + Manager *m, + InhibitWhat w, +diff --git src/login/logind.c src/login/logind.c +index 03b7753..2d734ff 100644 +--- src/login/logind.c ++++ src/login/logind.c +@@ -962,46 +962,6 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us + return 0; + } + +-static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { +- Manager *m = userdata; +- +- assert(e); +- assert(m); +- +- m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); +- return 0; +-} +- +-int manager_set_lid_switch_ignore(Manager *m, usec_t until) { +- int r; +- +- assert(m); +- +- if (until <= now(CLOCK_MONOTONIC)) +- return 0; +- +- /* We want to ignore the lid switch for a while after each +- * suspend, and after boot-up. Hence let's install a timer for +- * this. As long as the event source exists we ignore the lid +- * switch. */ +- +- if (m->lid_switch_ignore_event_source) { +- usec_t u; +- +- r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); +- if (r < 0) +- return r; +- +- if (until <= u) +- return 0; +- +- r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); +- } else +- r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); +- +- return r; +-} +- + int manager_startup(Manager *m) { + int r; + Seat *seat; +-- +1.7.9.2 + diff --git a/0005-man-fix-path-in-crypttab-5.patch b/0005-man-fix-path-in-crypttab-5.patch new file mode 100644 index 00000000..d0aef604 --- /dev/null +++ b/0005-man-fix-path-in-crypttab-5.patch @@ -0,0 +1,26 @@ +From 9fcdf32294e66f91d2a177f73a77049832768311 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 23 Jun 2014 23:07:53 -0400 +Subject: [PATCH] man: fix path in crypttab(5) + +https://bugs.freedesktop.org/show_bug.cgi?id=75816 +--- + man/crypttab.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git man/crypttab.xml man/crypttab.xml +index 668e51d..9030015 100644 +--- man/crypttab.xml ++++ man/crypttab.xml +@@ -369,7 +369,7 @@ + luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b + swap /dev/sda7 /dev/urandom swap + truecrypt /dev/sda2 /etc/container_password tcrypt +-hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile ++hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile + + + +-- +1.7.9.2 + diff --git a/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch b/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch new file mode 100644 index 00000000..e5b6706d --- /dev/null +++ b/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch @@ -0,0 +1,94 @@ +From 28650077f36466d9c5ee27ef2006fae3171a2430 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 30 Jun 2014 16:22:12 +0200 +Subject: [PATCH] nspawn: block open_by_handle_at() and others via seccomp + +Let's protect ourselves against the recently reported docker security +issue. Our man page makes clear that we do not make any security +promises anyway, but well, this one is easy to mitigate, so let's do it. +While we are at it block a couple of more syscalls that are no good in +containers, too. +--- + src/nspawn/nspawn.c | 47 +++++++++++++++++++++++++++++++++++------------ + 1 file changed, 35 insertions(+), 12 deletions(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index fd61d07..656c1bf 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1864,22 +1864,25 @@ static int setup_macvlan(pid_t pid) { + return 0; + } + +-static int audit_still_doesnt_work_in_containers(void) { ++static int setup_seccomp(void) { + + #ifdef HAVE_SECCOMP ++ static const int blacklist[] = { ++ SCMP_SYS(kexec_load), ++ SCMP_SYS(open_by_handle_at), ++ SCMP_SYS(init_module), ++ SCMP_SYS(finit_module), ++ SCMP_SYS(delete_module), ++ SCMP_SYS(iopl), ++ SCMP_SYS(ioperm), ++ SCMP_SYS(swapon), ++ SCMP_SYS(swapoff), ++ }; ++ + scmp_filter_ctx seccomp; ++ unsigned i; + int r; + +- /* +- Audit is broken in containers, much of the userspace audit +- hookup will fail if running inside a container. We don't +- care and just turn off creation of audit sockets. +- +- This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail +- with EAFNOSUPPORT which audit userspace uses as indication +- that audit is disabled in the kernel. +- */ +- + seccomp = seccomp_init(SCMP_ACT_ALLOW); + if (!seccomp) + return log_oom(); +@@ -1890,6 +1893,26 @@ static int audit_still_doesnt_work_in_containers(void) { + goto finish; + } + ++ for (i = 0; i < ELEMENTSOF(blacklist); i++) { ++ r = seccomp_rule_add(seccomp, SCMP_ACT_ERRNO(EPERM), blacklist[i], 0); ++ if (r == -EFAULT) ++ continue; /* unknown syscall */ ++ if (r < 0) { ++ log_error("Failed to block syscall: %s", strerror(-r)); ++ goto finish; ++ } ++ } ++ ++ /* ++ Audit is broken in containers, much of the userspace audit ++ hookup will fail if running inside a container. We don't ++ care and just turn off creation of audit sockets. ++ ++ This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail ++ with EAFNOSUPPORT which audit userspace uses as indication ++ that audit is disabled in the kernel. ++ */ ++ + r = seccomp_rule_add( + seccomp, + SCMP_ACT_ERRNO(EAFNOSUPPORT), +@@ -3050,7 +3073,7 @@ int main(int argc, char *argv[]) { + + dev_setup(arg_directory); + +- if (audit_still_doesnt_work_in_containers() < 0) ++ if (setup_seccomp() < 0) + goto child_fail; + + if (setup_dev_console(arg_directory, console) < 0) +-- +1.7.9.2 + diff --git a/0005-po-add-Greek-translation.patch b/0005-po-add-Greek-translation.patch new file mode 100644 index 00000000..029ce4fa --- /dev/null +++ b/0005-po-add-Greek-translation.patch @@ -0,0 +1,436 @@ +From 3d89c35c2ae08c3fbf1a037c4df54c8e5ae56faf Mon Sep 17 00:00:00 2001 +From: Dimitris Spingos +Date: Wed, 7 May 2014 18:27:02 +0200 +Subject: [PATCH] po: add Greek translation + +https://bugs.freedesktop.org/show_bug.cgi?id=78064 +--- + po/LINGUAS | 3 +- + po/el.po | 404 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 406 insertions(+), 1 deletion(-) + create mode 100644 po/el.po + +diff --git po/LINGUAS po/LINGUAS +index 0301751..820ca82 100644 +--- po/LINGUAS ++++ po/LINGUAS +@@ -1,4 +1,5 @@ ++el + fr ++it + pl + ru +-it +diff --git po/el.po po/el.po +new file mode 100644 +index 0000000..1570565 +--- /dev/null ++++ po/el.po +@@ -0,0 +1,404 @@ ++# Greek translation for systemd. ++# Copyright (C) 2014 systemd's COPYRIGHT HOLDER ++# This file is distributed under the same license as the systemd package. ++# Dimitris Spingos , 2014. ++# Dimitris Spingos (Δημήτρης Σπίγγος) , 2014. ++msgid "" ++msgstr "" ++"Project-Id-Version: systemd master\n" ++"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" ++"temd&keywords=I18N+L10N&component=general\n" ++"POT-Creation-Date: 2014-04-25 15:51+0000\n" ++"PO-Revision-Date: 2014-04-29 09:17+0300\n" ++"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" ++"Language-Team: team@lists.gnome.gr\n" ++"Language: el\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Virtaal 0.7.0\n" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 ++msgid "Set host name" ++msgstr "Ορισμός ονόματος οικοδεσπότη" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 ++msgid "Authentication is required to set the local host name." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 ++msgid "Set static host name" ++msgstr "Ορισμός στατικού ονόματος οικοδεσπότη" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 ++msgid "" ++"Authentication is required to set the statically configured local host name, " ++"as well as the pretty host name." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ορίσετε το στατικά ρυθμισμένο όνομα τοπικού " ++"οικοδεσπότη, καθώς και το pretty όνομα οικοδεσπότη." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 ++msgid "Set machine information" ++msgstr "Ορισμός πληροφοριών μηχανής" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 ++msgid "Authentication is required to set local machine information." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε πληροφορίες τοπικής μηχανής." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 ++msgid "Set system locale" ++msgstr "Ορισμός τοπικών ρυθμίσεων συστήματος" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 ++msgid "Authentication is required to set the system locale." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ορίσετε τις τοπικές ρυθμίσεις του συστήματος." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 ++msgid "Set system keyboard settings" ++msgstr "Ορισμός ρυθμίσεων πληκτρολογίου συστήματος" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 ++msgid "Authentication is required to set the system keyboard settings." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ορίσετε τις ρυθμίσεις πληκτρολογίου του " ++"συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:1 ++msgid "Allow applications to inhibit system shutdown" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τον τερματισμό του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:2 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"shutdown." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει τον " ++"τερματισμό του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:3 ++msgid "Allow applications to delay system shutdown" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να καθυστερούν τον τερματισμό του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:4 ++msgid "" ++"Authentication is required to allow an application to delay system shutdown." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " ++"τον τερματισμό του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:5 ++msgid "Allow applications to inhibit system sleep" ++msgstr "Να επιτρέπεται στις εφαρμογές να αποτρέπουν την ύπνωση του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:6 ++msgid "" ++"Authentication is required to allow an application to inhibit system sleep." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"ύπνωση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:7 ++msgid "Allow applications to delay system sleep" ++msgstr "Να επιτρέπεται στις εφαρμογές να καθυστερούν την ύπνωση του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:8 ++msgid "" ++"Authentication is required to allow an application to delay system sleep." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " ++"την ύπνωση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:9 ++msgid "Allow applications to inhibit automatic system suspend" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν την αυτόματη αναστολή του " ++"συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:10 ++msgid "" ++"Authentication is required to allow an application to inhibit automatic " ++"system suspend." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"αυτόματη αναστολή του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:11 ++msgid "Allow applications to inhibit system handling of the power key" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " ++"ενεργοποίησης του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:12 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the power key." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του πλήκτρου ενεργοποίησης του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:13 ++msgid "Allow applications to inhibit system handling of the suspend key" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " ++"αναστολής του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:14 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the suspend key." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του πλήκτρου αναστολής του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:15 ++msgid "Allow applications to inhibit system handling of the hibernate key" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " ++"αδρανοποίησης του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:16 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the hibernate key." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του πλήκτρου αδρανοποίησης του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:17 ++msgid "Allow applications to inhibit system handling of the lid switch" ++msgstr "" ++"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του διακόπτη " ++"καλύμματος του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:18 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the lid switch." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " ++"διαχείριση του διακόπτη καλύμματος του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:19 ++msgid "Allow non-logged-in users to run programs" ++msgstr "Να επιτρέπεται σε μη συνδεμένους χρήστες να εκτελούν προγράμματα" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:20 ++msgid "" ++"Authentication is required to allow a non-logged-in user to run programs." ++msgstr "" ++"Απαιτείται πιστοποίηση για να επιτρέπεται σε μη συνδεμένους χρήστες να " ++"εκτελούν προγράμματα." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:21 ++msgid "Allow attaching devices to seats" ++msgstr "Να επιτρέπεται η προσάρτηση συσκευών στους σταθμούς εργασίας" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:22 ++msgid "Authentication is required for attaching a device to a seat." ++msgstr "" ++"Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:23 ++msgid "Flush device to seat attachments" ++msgstr "Αφαίρεση συσκευής από προσαρτήσεις σταθμού εργασίας" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:24 ++msgid "" ++"Authentication is required for resetting how devices are attached to seats." ++msgstr "" ++"Απαιτείται πιστοποίηση για επαναφορά του τρόπου που οι συσκευές προσαρτώνται " ++"στους σταθμούς εργασίας." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:25 ++msgid "Power off the system" ++msgstr "Σβήσιμο του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:26 ++msgid "Authentication is required for powering off the system." ++msgstr "Απαιτείται πιστοποίηση για την σβήσιμο του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:27 ++msgid "Power off the system while other users are logged in" ++msgstr "Σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:28 ++msgid "" ++"Authentication is required for powering off the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι " ++"συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:29 ++msgid "Power off the system while an application asked to inhibit it" ++msgstr "Απενεργοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:30 ++msgid "" ++"Authentication is required for powering off the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για απενεργοποίηση του συστήματος ενώ μια εφαρμογή " ++"ζήτησε να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:31 ++msgid "Reboot the system" ++msgstr "Επανεκκίνηση του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:32 ++msgid "Authentication is required for rebooting the system." ++msgstr "Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:33 ++msgid "Reboot the system while other users are logged in" ++msgstr "Επανεκκίνηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:34 ++msgid "" ++"Authentication is required for rebooting the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ άλλοι χρήστες " ++"είναι συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:35 ++msgid "Reboot the system while an application asked to inhibit it" ++msgstr "Επανεκκίνηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:36 ++msgid "" ++"Authentication is required for rebooting the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ μια εφαρμογή " ++"ζήτησε να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:37 ++msgid "Suspend the system" ++msgstr "Αναστολή του συστήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:38 ++msgid "Authentication is required for suspending the system." ++msgstr "Απαιτείται πιστοποίηση για την αναστολή του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:39 ++msgid "Suspend the system while other users are logged in" ++msgstr "Αναστολή του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:40 ++msgid "" ++"Authentication is required for suspending the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ άλλοι χρήστες είναι " ++"συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:41 ++msgid "Suspend the system while an application asked to inhibit it" ++msgstr "Αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:42 ++msgid "" ++"Authentication is required for suspending the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε " ++"να αποτραπεί." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:43 ++msgid "Hibernate the system" ++msgstr "Αδρανοποίηση του συτήματος" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:44 ++msgid "Authentication is required for hibernating the system." ++msgstr "Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:45 ++msgid "Hibernate the system while other users are logged in" ++msgstr "Αδρανοποίηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:46 ++msgid "" ++"Authentication is required for hibernating the system while other users are " ++"logged in." ++msgstr "" ++"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ άλλοι χρήστες " ++"είναι συνδεμένοι." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:47 ++msgid "Hibernate the system while an application asked to inhibit it" ++msgstr "Αδρανοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:48 ++msgid "" ++"Authentication is required for hibernating the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ μια εφαρμογή " ++"ζήτησε να αποτραπεί." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 ++msgid "Set system time" ++msgstr "Ορισμός ώρας συστήματος" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 ++msgid "Authentication is required to set the system time." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 ++msgid "Set system timezone" ++msgstr "Ορισμός ζώνης ώρας συστήματος" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 ++msgid "Authentication is required to set the system timezone." ++msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα ζώνης του συστήματος." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 ++msgid "Set RTC to local timezone or UTC" ++msgstr "Ορισμός RTC στην τοπική ζώνη ώρας ή UTC" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 ++msgid "" ++"Authentication is required to control whether the RTC stores the local or " ++"UTC time." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ελέγξετε αν το RTC αποθηκεύει την τοπική ή την " ++"ώρα UTC." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 ++msgid "Turn network time synchronization on or off" ++msgstr "Ενεργοποίηση/Απενεργοποίηση συγχρονισμού ώρας δικτύου" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 ++msgid "" ++"Authentication is required to control whether network time synchronization " ++"shall be enabled." ++msgstr "" ++"Απαιτείται πιστοποίηση για να ελέγξετε αν ο συγχρονισμός ώρας δικτύου θα " ++"ενεργοποιηθεί." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 ++msgid "Send passphrase back to system" ++msgstr "Αποστολή του συνθηματικού πίσω στο σύστημα" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 ++msgid "" ++"Authentication is required to send the entered passphrase back to the system." ++msgstr "" ++"Απαιτείται πιστοποίηση για αποστολή του εισερχόμενου συνθηματικού πίσω στο " ++"σύστημα." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 ++msgid "Privileged system and service manager access" ++msgstr "Προνομιούχος πρόσβαση διαχειριστή συστήματος και υπηρεσίας" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 ++msgid "Authentication is required to access the system and service manager." ++msgstr "" ++"Απαιτείται πιστοποίηση για να προσπελάσετε τον διαχειριστή συστήματος και " ++"υπηρεσιών." +-- +1.7.9.2 + diff --git a/0005-sd-daemon-fix-incorrect-variable-access.patch b/0005-sd-daemon-fix-incorrect-variable-access.patch new file mode 100644 index 00000000..99a923b2 --- /dev/null +++ b/0005-sd-daemon-fix-incorrect-variable-access.patch @@ -0,0 +1,25 @@ +From 56dc9aec21ab23f76fadf45585adf88e71aa8078 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Mar 2014 23:54:14 +0100 +Subject: [PATCH] sd-daemon: fix incorrect variable access + +--- + src/libsystemd/sd-daemon/sd-daemon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-daemon/sd-daemon.c src/libsystemd/sd-daemon/sd-daemon.c +index 21fb346..b013438 100644 +--- src/libsystemd/sd-daemon/sd-daemon.c ++++ src/libsystemd/sd-daemon/sd-daemon.c +@@ -517,7 +517,7 @@ _public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) { + r = -errno; + goto finish; + } +- if (!p || p == e || *p || l <= 0) { ++ if (!p || p == e || *p || ll <= 0) { + r = -EINVAL; + goto finish; + } +-- +1.7.9.2 + diff --git a/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch b/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch new file mode 100644 index 00000000..3c3d9e50 --- /dev/null +++ b/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch @@ -0,0 +1,37 @@ +From cef3566998fcae6936d781e678c309950a8a5787 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Oct 2014 20:57:30 -0400 +Subject: [PATCH] sd-id128: do stricter checking of random boot id + +If we are bothering to check whether the kernel is not feeding us +bad data, we might as well do it properly. + +CID #1237692. +--- + src/libsystemd/sd-id128/sd-id128.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git src/libsystemd/sd-id128/sd-id128.c src/libsystemd/sd-id128/sd-id128.c +index a1e44e6..233ffa0 100644 +--- src/libsystemd/sd-id128/sd-id128.c ++++ src/libsystemd/sd-id128/sd-id128.c +@@ -183,11 +183,14 @@ _public_ int sd_id128_get_boot(sd_id128_t *ret) { + for (j = 0, p = buf; j < 16; j++) { + int a, b; + +- if (p >= buf + k) ++ if (p >= buf + k - 1) + return -EIO; + +- if (*p == '-') ++ if (*p == '-') { + p++; ++ if (p >= buf + k - 1) ++ return -EIO; ++ } + + a = unhexchar(p[0]); + b = unhexchar(p[1]); +-- +1.7.9.2 + diff --git a/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch b/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch new file mode 100644 index 00000000..5dfa4ed5 --- /dev/null +++ b/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch @@ -0,0 +1,45 @@ +Based on 85529c815b47c22839e0f148af67fd37e977cbfa Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 12 Aug 2014 19:29:27 +0200 +Subject: [PATCH] sd-resolve: fix allocation if query ids, never reuse them + +--- + src/libsystemd/sd-resolve/sd-resolve.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +--- src/libsystemd/sd-resolve/sd-resolve.c ++++ src/libsystemd/sd-resolve/sd-resolve.c 2014-08-22 14:18:24.838235343 +0000 +@@ -81,7 +81,7 @@ struct sd_resolve { + pthread_t workers[WORKERS_MAX]; + unsigned n_valid_workers; + +- unsigned current_id, current_index; ++ unsigned current_id; + sd_resolve_query* queries[QUERIES_MAX]; + unsigned n_queries; + +@@ -892,21 +892,17 @@ static int alloc_query(sd_resolve *resol + if (r < 0) + return r; + +- while (resolve->queries[resolve->current_index]) { +- resolve->current_index++; ++ while (resolve->queries[resolve->current_id % QUERIES_MAX]) + resolve->current_id++; + +- resolve->current_index %= QUERIES_MAX; +- } +- +- q = resolve->queries[resolve->current_index] = new0(sd_resolve_query, 1); ++ q = resolve->queries[resolve->current_id % QUERIES_MAX] = new0(sd_resolve_query, 1); + if (!q) + return -ENOMEM; + + resolve->n_queries++; + + q->resolve = resolve; +- q->id = resolve->current_id; ++ q->id = resolve->current_id++; + + *_q = q; + return 0; diff --git a/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch b/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch new file mode 100644 index 00000000..ed5997e0 --- /dev/null +++ b/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch @@ -0,0 +1,25 @@ +From 2040ccf171404b709acb0ecf1d1f17b87c5d05f0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:32:44 +0200 +Subject: [PATCH] service: don't accept negative ERRNO= notification messages + +--- + src/core/service.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/service.c src/core/service.c +index 5c54a34..d5aff99 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -2637,7 +2637,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + if (e) { + int status_errno; + +- if (safe_atoi(e + 6, &status_errno) < 0) ++ if (safe_atoi(e + 6, &status_errno) < 0 || status_errno < 0) + log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); + else { + log_debug_unit(u->id, "%s: got %s", u->id, e); +-- +1.7.9.2 + diff --git a/0005-shared-label.h-add-missing-stdio.h-include.patch b/0005-shared-label.h-add-missing-stdio.h-include.patch new file mode 100644 index 00000000..1c75aacc --- /dev/null +++ b/0005-shared-label.h-add-missing-stdio.h-include.patch @@ -0,0 +1,24 @@ +From 45f15021e3524b04d574b9ff4e801cb3219daf3f Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:42 +0200 +Subject: [PATCH] shared/label.h: add missing stdio.h include + +--- + src/shared/label.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/label.h src/shared/label.h +index 7294820..cb2ec79 100644 +--- src/shared/label.h ++++ src/shared/label.h +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + int label_init(const char *prefix); + void label_finish(void); +-- +1.7.9.2 + diff --git a/0005-systemd-python-fix-failing-assert.patch b/0005-systemd-python-fix-failing-assert.patch new file mode 100644 index 00000000..9b0290d3 --- /dev/null +++ b/0005-systemd-python-fix-failing-assert.patch @@ -0,0 +1,26 @@ +From b65f24238b0627143916a9c7f8315483a9666676 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 5 Apr 2014 13:29:50 -0400 +Subject: [PATCH] systemd-python: fix failing assert + +A parameter which was always null before, now get's set to +the module. +--- + src/python-systemd/_reader.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/python-systemd/_reader.c src/python-systemd/_reader.c +index 059b904..9a19a10 100644 +--- src/python-systemd/_reader.c ++++ src/python-systemd/_reader.c +@@ -902,7 +902,6 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) { + sd_id128_t id; + _cleanup_free_ char *msg = NULL; + +- assert(!self); + assert(args); + + if (!PyArg_ParseTuple(args, "z:get_catalog", &id_)) +-- +1.7.9.2 + diff --git a/0005-systemd-run-add-some-extra-safety-checks.patch b/0005-systemd-run-add-some-extra-safety-checks.patch new file mode 100644 index 00000000..22d41889 --- /dev/null +++ b/0005-systemd-run-add-some-extra-safety-checks.patch @@ -0,0 +1,34 @@ +From 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:38:36 +0100 +Subject: [PATCH] systemd-run: add some extra safety checks + +--- + src/run/run.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/run/run.c src/run/run.c +index 81763c9..e71ca7d 100644 +--- src/run/run.c ++++ src/run/run.c +@@ -37,7 +37,7 @@ static const char *arg_description = NULL; + static const char *arg_slice = NULL; + static bool arg_send_sighup = false; + static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; +-static char *arg_host = NULL; ++static const char *arg_host = NULL; + static bool arg_user = false; + static const char *arg_service_type = NULL; + static const char *arg_exec_user = NULL; +@@ -186,7 +186,7 @@ static int parse_argv(int argc, char *argv[]) { + + case ARG_NICE: + r = safe_atoi(optarg, &arg_nice); +- if (r < 0) { ++ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { + log_error("Failed to parse nice value"); + return -EINVAL; + } +-- +1.7.9.2 + diff --git a/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch b/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch new file mode 100644 index 00000000..875c905e --- /dev/null +++ b/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch @@ -0,0 +1,38 @@ +Based on 1f1926aa5e836caa3bd6df43704aecd606135103 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 21:45:42 -0500 +Subject: [PATCH] units: order sd-journal-flush after sd-remount-fs + +Otherwise we could attempt to flush the journal while /var/log/ was +still ro, and silently skip journal flushing. + +The way that errors in flushing are handled should still be changed to +be more transparent and robust. + +Based on 919699ec301ea507edce4a619141ed22e789ac0d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 31 Oct 2014 16:22:36 +0100 +Subject: [PATCH] units: don't order journal flushing afte remote-fs.target + +Instead, only depend on the actual file systems we need. + +This should solve dep loops on setups where remote-fs.target is moved +into late boot. +--- + units/systemd-journal-flush.service.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- units/systemd-journal-flush.service.in ++++ units/systemd-journal-flush.service.in 2014-11-10 11:46:22.885518923 +0000 +@@ -10,8 +10,9 @@ Description=Trigger Flushing of Journal + Documentation=man:systemd-journald.service(8) man:journald.conf(5) + DefaultDependencies=no + Requires=systemd-journald.service +-After=systemd-journald.service local-fs.target remote-fs.target +-Before=systemd-user-sessions.service ++After=systemd-journald.service local-fs.target ++After=systemd-remount-fs.service ++Before=systemd-user-sessions.service systemd-tmpfiles-setup.service + + [Service] + ExecStart=@rootbindir@/systemctl kill --kill-who=main --signal=SIGUSR1 systemd-journald.service diff --git a/0005-util-avoid-double-close-of-fd.patch b/0005-util-avoid-double-close-of-fd.patch new file mode 100644 index 00000000..e1b5dacc --- /dev/null +++ b/0005-util-avoid-double-close-of-fd.patch @@ -0,0 +1,28 @@ +Based on 6f53e671aa7539cab02c9f739d84d28a343ca5bc Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Wed, 8 Oct 2014 23:57:32 +0200 +Subject: [PATCH] util: avoid double close of fd + +We could end with a double close if we close the fd loop and flush_fd +fails. That would make us goto fail and there we close the fd once +again. This patch sets the fd to the return value for safe_close: -1 +A fd with negative value will be ignored by the next call to +safe_close. + +CID#996223 +--- + src/shared/util.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- src/shared/util.c ++++ src/shared/util.c 2014-10-14 15:42:22.515839157 +0000 +@@ -1969,7 +1969,8 @@ int acquire_terminal( + * ended our handle will be dead. It's important that + * we do this after sleeping, so that we don't enter + * an endless loop. */ +- close_nointr_nofail(fd); ++ if (fd >= 0) close_nointr_nofail(fd); ++ fd = -1; + } + + if (notify >= 0) diff --git a/0006-Do-not-return-1-EINVAL-on-allocation-error.patch b/0006-Do-not-return-1-EINVAL-on-allocation-error.patch new file mode 100644 index 00000000..bf1db2c6 --- /dev/null +++ b/0006-Do-not-return-1-EINVAL-on-allocation-error.patch @@ -0,0 +1,35 @@ +From 315db1a8aed226a51a4cf700172249cfd10ae115 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 14 Mar 2014 09:05:56 -0400 +Subject: [PATCH] Do not return -1 (EINVAL) on allocation error + +--- + src/core/socket.c | 8 +++----- + +diff --git src/core/socket.c src/core/socket.c +index 8ecc9f9..b39bec2 100644 +--- src/core/socket.c ++++ src/core/socket.c +@@ -198,16 +198,14 @@ static int socket_instantiate_service(Socket *s) { + + assert(s->accept); + +- if (!(prefix = unit_name_to_prefix(UNIT(s)->id))) ++ prefix = unit_name_to_prefix(UNIT(s)->id); ++ if (!prefix) + return -ENOMEM; + +- r = asprintf(&name, "%s@%u.service", prefix, s->n_accepted); +- +- if (r < 0) ++ if (asprintf(&name, "%s@%u.service", prefix, s->n_accepted) < 0) + return -ENOMEM; + + r = manager_load_unit(UNIT(s)->manager, name, NULL, NULL, &u); +- + if (r < 0) + return r; + +-- +1.7.9.2 + diff --git a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch new file mode 100644 index 00000000..ed9a7a79 --- /dev/null +++ b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch @@ -0,0 +1,60 @@ +From df1e02046144f41176c32ed011369fd8dba36b76 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 02:47:43 +0100 +Subject: [PATCH] Revert back to /var/run at a couple of problems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This partially reverts 41a55c46ab8fb4ef6727434227071321fc762cce + +Some specifications we want to stay compatibility actually document +/var/run, not /run, and we should stay compatible with that. In order to +make sure our D-Bus implementation works on any system, regardless if +running systemd or not, we should always use /var/run which is the +only path mandated by the D-Bus spec. + +Similar, glibc hardcodes the utmp location to /var/run, and this is +exposed in _UTMP_PATH in limits.h, hence let's stay in sync with this +public API, too. + +We simply do not support systems where /var/run is not a symlink → /run. +Hence both are equivalent. Staying compatible with upstream +specifications hence weighs more than cleaning up superficial +appearance. +--- + man/runlevel.xml | 2 +- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git man/runlevel.xml man/runlevel.xml +index 4db06dc..976753a 100644 +--- man/runlevel.xml ++++ man/runlevel.xml +@@ -124,7 +124,7 @@ + + + +- /run/utmp ++ /var/run/utmp + + The utmp database + runlevel reads the +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 1318272..636715f 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); ++ strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); + + return 0; + } +-- +1.7.9.2 + diff --git a/0006-bus-unref-buscreds-on-failure.patch b/0006-bus-unref-buscreds-on-failure.patch new file mode 100644 index 00000000..d6ec9ccd --- /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/0006-calendarspec-fix-typo-in-annually.patch b/0006-calendarspec-fix-typo-in-annually.patch new file mode 100644 index 00000000..7e695966 --- /dev/null +++ b/0006-calendarspec-fix-typo-in-annually.patch @@ -0,0 +1,27 @@ +From e90efc70900f8e69cfbafd9e9508bdeb4d40dad7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Oct 2014 11:59:36 -0400 +Subject: [PATCH] calendarspec: fix typo in "annually" + +https://bugs.freedesktop.org/show_bug.cgi?id=85447 +--- + src/shared/calendarspec.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/shared/calendarspec.c src/shared/calendarspec.c +index 4ac74ab..64d0dec 100644 +--- src/shared/calendarspec.c ++++ src/shared/calendarspec.c +@@ -688,7 +688,8 @@ int calendar_spec_from_string(const char *p, CalendarSpec **spec) { + if (r < 0) + goto fail; + +- } else if (strcaseeq(p, "anually") || strcaseeq(p, "yearly")) { ++ } else if (strcaseeq(p, "annually") || strcaseeq(p, "yearly") ++ || strcaseeq(p, "anually") /* backwards compatibility */ ) { + r = const_chain(1, &c->month); + if (r < 0) + goto fail; +-- +1.7.9.2 + diff --git a/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..c4e89bb1 --- /dev/null +++ b/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,82 @@ +From 7cfa80f07e94c3e48703d145ef03a73dd6e7b983 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Wed, 18 Jun 2014 13:55:32 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 42 ++++++++++++++++++++++++++++++--- + 1 file changed, 39 insertions(+), 3 deletions(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index a65c7db..377748a 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -115,7 +115,7 @@ bluetooth:v0024* + ID_VENDOR_FROM_DATABASE=Alcatel + + bluetooth:v0025* +- ID_VENDOR_FROM_DATABASE=Philips Semiconductors ++ ID_VENDOR_FROM_DATABASE=NXP Semiconductors (formerly Philips Semiconductors) + + bluetooth:v0026* + ID_VENDOR_FROM_DATABASE=C Technologies +@@ -427,7 +427,7 @@ bluetooth:v008B* + ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC + + bluetooth:v008C* +- ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.) ++ ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.) + + bluetooth:v008D* + ID_VENDOR_FROM_DATABASE=Zscan Software +@@ -1006,10 +1006,46 @@ bluetooth:v014C* + ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd + + bluetooth:v014D* +- ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. ++ ID_VENDOR_FROM_DATABASE=Huizhou Desay SV Automotive CO., LTD. + + bluetooth:v014E* + ID_VENDOR_FROM_DATABASE=Tangerine, Inc. + + bluetooth:v014F* + ID_VENDOR_FROM_DATABASE=B&W Group Ltd. ++ ++bluetooth:v0150* ++ ID_VENDOR_FROM_DATABASE=Pioneer Corporation ++ ++bluetooth:v0151* ++ ID_VENDOR_FROM_DATABASE=OnBeep ++ ++bluetooth:v0152* ++ ID_VENDOR_FROM_DATABASE=Vernier Software & Technology ++ ++bluetooth:v0153* ++ ID_VENDOR_FROM_DATABASE=ROL Ergo ++ ++bluetooth:v0154* ++ ID_VENDOR_FROM_DATABASE=Pebble Technology ++ ++bluetooth:v0155* ++ ID_VENDOR_FROM_DATABASE=NETATMO ++ ++bluetooth:v0156* ++ ID_VENDOR_FROM_DATABASE=Accumulate AB ++ ++bluetooth:v0157* ++ ID_VENDOR_FROM_DATABASE=Anhui Huami Information Technology Co., Ltd. ++ ++bluetooth:v0158* ++ ID_VENDOR_FROM_DATABASE=Inmite s.r.o. ++ ++bluetooth:v0159* ++ ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. ++ ++bluetooth:v015A* ++ ID_VENDOR_FROM_DATABASE=micus AG ++ ++bluetooth:v015B* ++ ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. +-- +1.7.9.2 + diff --git a/0006-hwdb-update.patch b/0006-hwdb-update.patch new file mode 100644 index 00000000..080bd96c --- /dev/null +++ b/0006-hwdb-update.patch @@ -0,0 +1,4392 @@ +From 98be1a746ac0d7a17e69ccb05936a4d6b3223e97 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 3 Jul 2014 16:28:40 +0200 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 543 +++++++++++++++++++-- + hwdb/20-pci-classes.hwdb | 27 ++ + hwdb/20-pci-vendor-model.hwdb | 1071 +++++++++++++++++++++++++++-------------- + hwdb/20-usb-classes.hwdb | 3 + + hwdb/20-usb-vendor-model.hwdb | 102 +++- + 5 files changed, 1362 insertions(+), 384 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 6188bfc..97f1e6b 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -6446,7 +6446,7 @@ OUI:0050C2871* + ID_OUI_FROM_DATABASE=R-S-I Elektrotechnik GmbH & Co. KG + + OUI:0050C2872* +- ID_OUI_FROM_DATABASE=Oliotalo - Objecthouse Oy ++ ID_OUI_FROM_DATABASE=Oliotalo Oy + + OUI:0050C2873* + ID_OUI_FROM_DATABASE=XRONET Corporation +@@ -37139,76 +37139,76 @@ OUI:001EC7* + ID_OUI_FROM_DATABASE=2Wire, Inc. + + OUI:001EC8* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Rapid Mobile (Pty) Ltd + + OUI:001EC9* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Dell Inc + + OUI:001ECA* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Nortel + + OUI:001ECB* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE="RPC "Energoautomatika" Ltd + + OUI:001ECC* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=CDVI + + OUI:001ECD* + ID_OUI_FROM_DATABASE=KYLAND Technology Co. LTD + + OUI:001ECE* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=BISA Technologies (Hong Kong) Limited + + OUI:001ECF* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=PHILIPS ELECTRONICS UK LTD + + OUI:001ED0* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Ingespace + + OUI:001ED1* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Keyprocessor B.V. + + OUI:001ED2* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Ray Shine Video Technology Inc + + OUI:001ED3* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Dot Technology Int'l Co., Ltd. + + OUI:001ED4* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Doble Engineering + + OUI:001ED5* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Tekon-Automatics + + OUI:001ED6* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Alentec & Orion AB + + OUI:001ED7* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=H-Stream Wireless, Inc. + + OUI:001ED8* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Digital United Inc. + + OUI:001ED9* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Mitsubishi Precision Co.,LTd. + + OUI:001EDA* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Wesemann Elektrotechniek B.V. + + OUI:001EDB* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Giken Trastem Co., Ltd. + + OUI:001EDC* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + + OUI:001EDD* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=WASKO S.A. + + OUI:001EDE* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=BYD COMPANY LIMITED + + OUI:001EDF* +- ID_OUI_FROM_DATABASE=2Wire, Inc. ++ ID_OUI_FROM_DATABASE=Master Industrialization Center Kista + + OUI:001EE0* + ID_OUI_FROM_DATABASE=Urmet Domus SpA +@@ -45800,7 +45800,7 @@ OUI:0050F8* + ID_OUI_FROM_DATABASE=ENTREGA TECHNOLOGIES, INC. + + OUI:0050F9* +- ID_OUI_FROM_DATABASE=SENSORMATIC ACD ++ ID_OUI_FROM_DATABASE=Sensormatic Electronics LLC + + OUI:0050FA* + ID_OUI_FROM_DATABASE=OXTEL, LTD. +@@ -45829,6 +45829,9 @@ OUI:0054AF* + OUI:005907* + ID_OUI_FROM_DATABASE=LenovoEMC Products USA, LLC + ++OUI:005A39* ++ ID_OUI_FROM_DATABASE=SHENZHEN FAST TECHNOLOGIES CO., LTD. ++ + OUI:005CB1* + ID_OUI_FROM_DATABASE=Gospell DIGITAL TECHNOLOGY CO., LTD + +@@ -46603,6 +46606,9 @@ OUI:0060FE* + OUI:0060FF* + ID_OUI_FROM_DATABASE=QuVis, Inc. + ++OUI:006171* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:006440* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -48238,6 +48244,9 @@ OUI:009C02* + OUI:009D8E* + ID_OUI_FROM_DATABASE=CARDIAC RECORDERS, INC. + ++OUI:009EC8* ++ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronic Products Co., Ltd. ++ + OUI:00A000* + ID_OUI_FROM_DATABASE=CENTILLION NETWORKS, INC. + +@@ -50740,6 +50749,9 @@ OUI:00D38D* + OUI:00D632* + ID_OUI_FROM_DATABASE=GE Energy + ++OUI:00D9D1* ++ ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. ++ + OUI:00DB1E* + ID_OUI_FROM_DATABASE=Albedo Telecom SL + +@@ -51778,6 +51790,9 @@ OUI:0462D7* + OUI:0463E0* + ID_OUI_FROM_DATABASE=Nome Oy + ++OUI:046785* ++ ID_OUI_FROM_DATABASE=scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH ++ + OUI:046D42* + ID_OUI_FROM_DATABASE=Bryston Ltd. + +@@ -51901,6 +51916,9 @@ OUI:04DB8A* + OUI:04DD4C* + ID_OUI_FROM_DATABASE=Velocytech + ++OUI:04DEDB* ++ ID_OUI_FROM_DATABASE=Rockport Networks Inc ++ + OUI:04DF69* + ID_OUI_FROM_DATABASE=Car Connectivity Consortium + +@@ -52498,6 +52516,9 @@ OUI:083F76* + OUI:084027* + ID_OUI_FROM_DATABASE=Gridstore Inc. + ++OUI:084656* ++ ID_OUI_FROM_DATABASE=VODALYS Ingénierie ++ + OUI:08482C* + ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. + +@@ -52966,6 +52987,9 @@ OUI:0CCDD3* + OUI:0CCDFB* + ID_OUI_FROM_DATABASE=EDIC Systems Inc. + ++OUI:0CCFD1* ++ ID_OUI_FROM_DATABASE=SPRINGWAVE Co., Ltd ++ + OUI:0CD292* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -53089,6 +53113,9 @@ OUI:1010B6* + OUI:101212* + ID_OUI_FROM_DATABASE=Vivo International Corporation Pty Ltd + ++OUI:101218* ++ ID_OUI_FROM_DATABASE=Korins Inc. ++ + OUI:101248* + ID_OUI_FROM_DATABASE=ITG, Inc. + +@@ -53128,6 +53155,9 @@ OUI:102D96* + OUI:102EAF* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:102F6B* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:103047* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53164,6 +53194,9 @@ OUI:104780* + OUI:1048B1* + ID_OUI_FROM_DATABASE=Beijing Duokan Technology Limited + ++OUI:104B46* ++ ID_OUI_FROM_DATABASE=Mitsubishi Electric Corporation ++ + OUI:104D77* + ID_OUI_FROM_DATABASE=Innovative Computer Engineering + +@@ -53242,6 +53275,9 @@ OUI:10880F* + OUI:1088CE* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + ++OUI:108A1B* ++ ID_OUI_FROM_DATABASE=RAONIX Inc. ++ + OUI:108CCF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -53458,6 +53494,9 @@ OUI:144319* + OUI:1446E4* + ID_OUI_FROM_DATABASE=AVISTEL + ++OUI:14488B* ++ ID_OUI_FROM_DATABASE=Shenzhen Doov Technology Co.,Ltd ++ + OUI:144978* + ID_OUI_FROM_DATABASE=Digital Control Incorporated + +@@ -53473,6 +53512,9 @@ OUI:145412* + OUI:145645* + ID_OUI_FROM_DATABASE=Savitech Corp. + ++OUI:1458D0* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:145A05* + ID_OUI_FROM_DATABASE=Apple + +@@ -53608,6 +53650,9 @@ OUI:14EB33* + OUI:14EDA5* + ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme + ++OUI:14EDE4* ++ ID_OUI_FROM_DATABASE=Kaiam Corporation ++ + OUI:14EE9D* + ID_OUI_FROM_DATABASE=AirNav Systems LLC + +@@ -53794,6 +53839,9 @@ OUI:1867B0* + OUI:186D99* + ID_OUI_FROM_DATABASE=Adanis Inc. + ++OUI:187117* ++ ID_OUI_FROM_DATABASE=eta plus electronic gmbh ++ + OUI:1879A2* + ID_OUI_FROM_DATABASE=GMJ ELECTRIC LIMITED + +@@ -53812,6 +53860,9 @@ OUI:1880CE* + OUI:1880F5* + ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd + ++OUI:188219* ++ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. ++ + OUI:188331* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53857,6 +53908,9 @@ OUI:189EFC* + OUI:18A905* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + ++OUI:18A958* ++ ID_OUI_FROM_DATABASE=PROVISION THAI CO., LTD. ++ + OUI:18A99B* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -54049,6 +54103,9 @@ OUI:1C43EC* + OUI:1C4593* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:1C4840* ++ ID_OUI_FROM_DATABASE=IMS Messsysteme GmbH ++ + OUI:1C48F9* + ID_OUI_FROM_DATABASE=GN Netcom A/S + +@@ -54064,6 +54121,9 @@ OUI:1C4BD6* + OUI:1C51B5* + ID_OUI_FROM_DATABASE=Techaya LTD + ++OUI:1C5216* ++ ID_OUI_FROM_DATABASE=DONGGUAN HELE ELECTRONICS CO., LTD ++ + OUI:1C52D6* + ID_OUI_FROM_DATABASE=FLAT DISPLAY TECHNOLOGY CORPORATION + +@@ -54100,6 +54160,9 @@ OUI:1C66AA* + OUI:1C69A5* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:1C6A7A* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:1C6BCA* + ID_OUI_FROM_DATABASE=Mitsunami Co., Ltd. + +@@ -54163,6 +54226,12 @@ OUI:1C973D* + OUI:1C994C* + ID_OUI_FROM_DATABASE=Murata Manufactuaring Co.,Ltd. + ++OUI:1C9C26* ++ ID_OUI_FROM_DATABASE=Zoovel Technologies ++ ++OUI:1CA2B1* ++ ID_OUI_FROM_DATABASE=ruwido austria gmbh ++ + OUI:1CA770* + ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT + +@@ -54217,6 +54286,9 @@ OUI:1CC63C* + OUI:1CD40C* + ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH + ++OUI:1CDEA7* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:1CDF0F* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -54286,6 +54358,9 @@ OUI:20107A* + OUI:201257* + ID_OUI_FROM_DATABASE=Most Lucky Trading Ltd + ++OUI:2012D5* ++ ID_OUI_FROM_DATABASE=Scientech Materials Corporation ++ + OUI:2013E0* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -54370,6 +54445,9 @@ OUI:205A00* + OUI:205B5E* + ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd + ++OUI:205CFA* ++ ID_OUI_FROM_DATABASE=Yangzhou ChangLian Network Technology Co,ltd. ++ + OUI:206432* + ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO.,LTD. + +@@ -54439,6 +54517,9 @@ OUI:20A2E7* + OUI:20A787* + ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited + ++OUI:20A99B* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:20AA25* + ID_OUI_FROM_DATABASE=IP-NET LLC + +@@ -54469,6 +54550,9 @@ OUI:20BFDB* + OUI:20C1AF* + ID_OUI_FROM_DATABASE=i Wit Digital Co., Limited + ++OUI:20C38F* ++ ID_OUI_FROM_DATABASE=Texas Instruments Inc ++ + OUI:20C60D* + ID_OUI_FROM_DATABASE=Shanghai annijie Information technology Co.,LTD + +@@ -54616,6 +54700,9 @@ OUI:2437EF* + OUI:243C20* + ID_OUI_FROM_DATABASE=Dynamode Group + ++OUI:2442BC* ++ ID_OUI_FROM_DATABASE=Alinco,incorporated ++ + OUI:244597* + ID_OUI_FROM_DATABASE=GEMUE Gebr. Mueller Apparatebau + +@@ -55027,6 +55114,9 @@ OUI:28A241* + OUI:28A574* + ID_OUI_FROM_DATABASE=Miller Electric Mfg. Co. + ++OUI:28A5EE* ++ ID_OUI_FROM_DATABASE=Shenzhen SDGI CATV Co., Ltd ++ + OUI:28AF0A* + ID_OUI_FROM_DATABASE=Sirius XM Radio Inc + +@@ -55177,6 +55267,9 @@ OUI:2C0033* + OUI:2C00F7* + ID_OUI_FROM_DATABASE=XOS + ++OUI:2C010B* ++ ID_OUI_FROM_DATABASE=NASCENT Technology, LLC - RemKon ++ + OUI:2C0623* + ID_OUI_FROM_DATABASE=Win Leader Inc. + +@@ -55192,6 +55285,9 @@ OUI:2C18AE* + OUI:2C1984* + ID_OUI_FROM_DATABASE=IDN Telecom, Inc. + ++OUI:2C1A31* ++ ID_OUI_FROM_DATABASE=Electronics Company Limited ++ + OUI:2C1EEA* + ID_OUI_FROM_DATABASE=AERODEV + +@@ -55369,6 +55465,9 @@ OUI:2C9EFC* + OUI:2CA157* + ID_OUI_FROM_DATABASE=acromate, Inc. + ++OUI:2CA30E* ++ ID_OUI_FROM_DATABASE=POWER DRAGON DEVELOPMENT LIMITED ++ + OUI:2CA780* + ID_OUI_FROM_DATABASE=True Technologies Inc. + +@@ -55540,6 +55639,9 @@ OUI:303EAD* + OUI:304174* + ID_OUI_FROM_DATABASE=ALTEC LANSING LLC + ++OUI:304225* ++ ID_OUI_FROM_DATABASE=BURG-WÄCHTER KG ++ + OUI:304449* + ID_OUI_FROM_DATABASE=PLATH GmbH + +@@ -55603,6 +55705,9 @@ OUI:306E5C* + OUI:3071B2* + ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. + ++OUI:307512* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:30766F* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -55735,6 +55840,9 @@ OUI:3400A3* + OUI:340286* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:34029B* ++ ID_OUI_FROM_DATABASE=CloudBerry Technologies Private Limited ++ + OUI:3407FB* + ID_OUI_FROM_DATABASE=Ericsson AB + +@@ -55774,6 +55882,9 @@ OUI:3423BA* + OUI:34255D* + ID_OUI_FROM_DATABASE=Shenzhen Loadcom Technology Co.,Ltd + ++OUI:3428F0* ++ ID_OUI_FROM_DATABASE=ATN International Limited ++ + OUI:3429EA* + ID_OUI_FROM_DATABASE=MCD ELECTRONICS SP. Z O.O. + +@@ -55798,6 +55909,9 @@ OUI:344B3D* + OUI:344B50* + ID_OUI_FROM_DATABASE=ZTE Corporation + ++OUI:344DF7* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:344F3F* + ID_OUI_FROM_DATABASE=IO-Power Technology Co., Ltd. + +@@ -55825,6 +55939,9 @@ OUI:345D10* + OUI:346178* + ID_OUI_FROM_DATABASE=The Boeing Company + ++OUI:346288* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:34684A* + ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. + +@@ -55939,6 +56056,9 @@ OUI:34B1F7* + OUI:34B571* + ID_OUI_FROM_DATABASE=PLDS + ++OUI:34B7FD* ++ ID_OUI_FROM_DATABASE=Guangzhou Younghead Electronic Technology Co.,Ltd ++ + OUI:34BA51* + ID_OUI_FROM_DATABASE=Se-Kure Controls, Inc. + +@@ -56047,6 +56167,9 @@ OUI:34F39B* + OUI:34F62D* + ID_OUI_FROM_DATABASE=SHARP Corporation + ++OUI:34F6D2* ++ ID_OUI_FROM_DATABASE=Panasonic Taiwan Co.,Ltd. ++ + OUI:34F968* + ID_OUI_FROM_DATABASE=ATEK Products, LLC + +@@ -56062,6 +56185,9 @@ OUI:380197* + OUI:3806B4* + ID_OUI_FROM_DATABASE=A.D.C. GmbH + ++OUI:3808FD* ++ ID_OUI_FROM_DATABASE=Silca Spa ++ + OUI:380A0A* + ID_OUI_FROM_DATABASE=Sky-City Communication and Electronics Limited Company + +@@ -56137,6 +56263,9 @@ OUI:384608* + OUI:38484C* + ID_OUI_FROM_DATABASE=Apple + ++OUI:384B76* ++ ID_OUI_FROM_DATABASE=AIRTAME ApS ++ + OUI:384FF0* + ID_OUI_FROM_DATABASE=Azurewave Technologies, Inc. + +@@ -56227,6 +56356,9 @@ OUI:38AA3C* + OUI:38B12D* + ID_OUI_FROM_DATABASE=Sonotronic Nagel GmbH + ++OUI:38B1DB* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:38B5BD* + ID_OUI_FROM_DATABASE=E.G.O. Elektro-Ger + +@@ -56302,6 +56434,9 @@ OUI:38EE9D* + OUI:38F098* + ID_OUI_FROM_DATABASE=Vapor Stone Rail Systems + ++OUI:38F33F* ++ ID_OUI_FROM_DATABASE=TATSUNO CORPORATION ++ + OUI:38F597* + ID_OUI_FROM_DATABASE=home2net GmbH + +@@ -56443,6 +56578,9 @@ OUI:3C57D5* + OUI:3C5A37* + ID_OUI_FROM_DATABASE=Samsung Electronics + ++OUI:3C5AB4* ++ ID_OUI_FROM_DATABASE=Google ++ + OUI:3C5F01* + ID_OUI_FROM_DATABASE=Synerchip Co., Ltd. + +@@ -56803,6 +56941,9 @@ OUI:407074* + OUI:407496* + ID_OUI_FROM_DATABASE=aFUN TECHNOLOGY INC. + ++OUI:40786A* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:407875* + ID_OUI_FROM_DATABASE=IMBEL - Industria de Material Belico do Brasil + +@@ -56929,6 +57070,9 @@ OUI:40D40E* + OUI:40D559* + ID_OUI_FROM_DATABASE=MICRO S.E.R.I. + ++OUI:40E230* ++ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc. ++ + OUI:40E730* + ID_OUI_FROM_DATABASE=DEY Storage Systems, Inc. + +@@ -57145,6 +57289,9 @@ OUI:4486C1* + OUI:4487FC* + ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. + ++OUI:4488CB* ++ ID_OUI_FROM_DATABASE=Camco Technologies NV ++ + OUI:448A5B* + ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD. + +@@ -57337,6 +57484,9 @@ OUI:4851B7* + OUI:485261* + ID_OUI_FROM_DATABASE=SOREEL + ++OUI:4857DD* ++ ID_OUI_FROM_DATABASE=Facebook ++ + OUI:485929* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -57361,6 +57511,9 @@ OUI:4861A3* + OUI:486276* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:486B2C* ++ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., ++ + OUI:486B91* + ID_OUI_FROM_DATABASE=Fleetwood Group Inc. + +@@ -57391,6 +57544,9 @@ OUI:4891F6* + OUI:489BE2* + ID_OUI_FROM_DATABASE=SCI Innovations Ltd + ++OUI:489D18* ++ ID_OUI_FROM_DATABASE=Flashbay Limited ++ + OUI:489D24* + ID_OUI_FROM_DATABASE=Research In Motion + +@@ -57655,6 +57811,9 @@ OUI:4C7367* + OUI:4C73A5* + ID_OUI_FROM_DATABASE=KOVE + ++OUI:4C7403* ++ ID_OUI_FROM_DATABASE=Mundo Reader (bq) ++ + OUI:4C774F* + ID_OUI_FROM_DATABASE=Embedded Wireless Labs + +@@ -57745,6 +57904,9 @@ OUI:4CBAA3* + OUI:4CBB58* + ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. + ++OUI:4CBC42* ++ ID_OUI_FROM_DATABASE=Shenzhen Hangsheng Electronics Co.,Ltd. ++ + OUI:4CBCA5* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -57784,6 +57946,9 @@ OUI:4CE1BB* + OUI:4CE676* + ID_OUI_FROM_DATABASE=Buffalo Inc. + ++OUI:4CE933* ++ ID_OUI_FROM_DATABASE=RailComm, LLC ++ + OUI:4CEB42* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -57799,6 +57964,9 @@ OUI:4CF2BF* + OUI:4CF45B* + ID_OUI_FROM_DATABASE=Blue Clover Devices + ++OUI:4CF5A0* ++ ID_OUI_FROM_DATABASE=Scalable Network Technologies Inc ++ + OUI:4CF737* + ID_OUI_FROM_DATABASE=SamJi Electronics Co., Ltd + +@@ -57823,6 +57991,9 @@ OUI:500E6D* + OUI:5011EB* + ID_OUI_FROM_DATABASE=SilverNet Ltd + ++OUI:5014B5* ++ ID_OUI_FROM_DATABASE=Richfit Information Technology Co., Ltd ++ + OUI:5017FF* + ID_OUI_FROM_DATABASE=Cisco + +@@ -57847,6 +58018,9 @@ OUI:502690* + OUI:5027C7* + ID_OUI_FROM_DATABASE=TECHNART Co.,Ltd + ++OUI:50294D* ++ ID_OUI_FROM_DATABASE=NANJING IOT SENSOR TECHNOLOGY CO,LTD ++ + OUI:502A7E* + ID_OUI_FROM_DATABASE=Smart electronic GmbH + +@@ -57937,6 +58111,9 @@ OUI:506441* + OUI:506787* + ID_OUI_FROM_DATABASE=iTellus + ++OUI:5067AE* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:5067F0* + ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation + +@@ -58276,6 +58453,9 @@ OUI:549B12* + OUI:549D85* + ID_OUI_FROM_DATABASE=EnerAccess inc + ++OUI:549F35* ++ ID_OUI_FROM_DATABASE=Dell Inc. ++ + OUI:54A04F* + ID_OUI_FROM_DATABASE=t-mac Technologies Ltd + +@@ -58366,6 +58546,9 @@ OUI:54F5B6* + OUI:54F666* + ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG + ++OUI:54F876* ++ ID_OUI_FROM_DATABASE=ABB AG ++ + OUI:54FA3E* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD + +@@ -58375,6 +58558,9 @@ OUI:54FB58* + OUI:54FDBF* + ID_OUI_FROM_DATABASE=Scheidt & Bachmann GmbH + ++OUI:54FFCF* ++ ID_OUI_FROM_DATABASE=Mopria Alliance ++ + OUI:580528* + ID_OUI_FROM_DATABASE=LABRIS NETWORKS + +@@ -58390,6 +58576,9 @@ OUI:5809E5* + OUI:580A20* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:58108C* ++ ID_OUI_FROM_DATABASE=Intelbras ++ + OUI:581243* + ID_OUI_FROM_DATABASE=AcSiP Technology Corp. + +@@ -58504,9 +58693,15 @@ OUI:587521* + OUI:587675* + ID_OUI_FROM_DATABASE=Beijing ECHO Technologies Co.,Ltd + ++OUI:5876C5* ++ ID_OUI_FROM_DATABASE=DIGI I'S LTD ++ + OUI:587A4D* + ID_OUI_FROM_DATABASE=Stonesoft Corporation + ++OUI:587BE9* ++ ID_OUI_FROM_DATABASE=AirPro Technology India Pvt. Ltd ++ + OUI:587E61* + ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd + +@@ -58633,6 +58828,9 @@ OUI:58EECE* + OUI:58F387* + ID_OUI_FROM_DATABASE=HCCP + ++OUI:58F39C* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:58F67B* + ID_OUI_FROM_DATABASE=Xia Men UnionCore Technology LTD. + +@@ -58810,6 +59008,12 @@ OUI:5C89D4* + OUI:5C8D4E* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C8FE0* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ ++OUI:5C93A2* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:5C95AE* + ID_OUI_FROM_DATABASE=Apple + +@@ -59011,6 +59215,9 @@ OUI:60334B* + OUI:603553* + ID_OUI_FROM_DATABASE=Buwon Technology + ++OUI:603696* ++ ID_OUI_FROM_DATABASE=The Sapling Company ++ + OUI:6036DD* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -59038,9 +59245,18 @@ OUI:604616* + OUI:6047D4* + ID_OUI_FROM_DATABASE=FORICS Electronic Technology Co., Ltd. + ++OUI:604826* ++ ID_OUI_FROM_DATABASE=Newbridge Technologies Int. Ltd. ++ + OUI:604A1C* + ID_OUI_FROM_DATABASE=SUYIN Corporation + ++OUI:6050C1* ++ ID_OUI_FROM_DATABASE=Kinetek Sports ++ ++OUI:60512C* ++ ID_OUI_FROM_DATABASE=TCT mobile limited ++ + OUI:6052D0* + ID_OUI_FROM_DATABASE=FACTS Engineering + +@@ -59125,6 +59341,9 @@ OUI:609084* + OUI:609217* + ID_OUI_FROM_DATABASE=Apple + ++OUI:6099D1* ++ ID_OUI_FROM_DATABASE=Vuzix / Lenovo ++ + OUI:609AA4* + ID_OUI_FROM_DATABASE=GVI SECURITY INC. + +@@ -59284,6 +59503,9 @@ OUI:60FEF9* + OUI:60FFDD* + ID_OUI_FROM_DATABASE=C.E. ELECTRONICS, INC + ++OUI:64002D* ++ ID_OUI_FROM_DATABASE=Powerlinq Co., LTD ++ + OUI:6400F1* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -59557,6 +59779,9 @@ OUI:64B310* + OUI:64B370* + ID_OUI_FROM_DATABASE=PowerComm Solutons LLC + ++OUI:64B473* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:64B64A* + ID_OUI_FROM_DATABASE=ViVOtech, Inc. + +@@ -59917,6 +60142,9 @@ OUI:68D247* + OUI:68D925* + ID_OUI_FROM_DATABASE=ProSys Development Services + ++OUI:68D93C* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:68DB67* + ID_OUI_FROM_DATABASE=Nantong Coship Electronics Co., Ltd + +@@ -59950,6 +60178,9 @@ OUI:68EE96* + OUI:68EFBD* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:68F06D* ++ ID_OUI_FROM_DATABASE=ALONG INDUSTRIAL CO., LIMITED ++ + OUI:68F125* + ID_OUI_FROM_DATABASE=Data Controls Inc. + +@@ -60079,6 +60310,9 @@ OUI:6C626D* + OUI:6C641A* + ID_OUI_FROM_DATABASE=Penguin Computing + ++OUI:6C6EFE* ++ ID_OUI_FROM_DATABASE=Core Logic Inc. ++ + OUI:6C6F18* + ID_OUI_FROM_DATABASE=Stereotaxis, Inc. + +@@ -60091,6 +60325,9 @@ OUI:6C709F* + OUI:6C71D9* + ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc + ++OUI:6C7660* ++ ID_OUI_FROM_DATABASE=KYOCERA Corporation ++ + OUI:6C81FE* + ID_OUI_FROM_DATABASE=Mitsuba Corporation + +@@ -60122,7 +60359,7 @@ OUI:6C92BF* + ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd. + + OUI:6C98EB* +- ID_OUI_FROM_DATABASE=Xyne GmbH ++ ID_OUI_FROM_DATABASE=Ocedo GmbH + + OUI:6C9989* + ID_OUI_FROM_DATABASE=Cisco +@@ -60187,6 +60424,9 @@ OUI:6CB7F4* + OUI:6CBEE9* + ID_OUI_FROM_DATABASE=Alcatel-Lucent-IPD + ++OUI:6CBFB5* ++ ID_OUI_FROM_DATABASE=Noon Technology Co., Ltd ++ + OUI:6CC1D2* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -60514,6 +60754,9 @@ OUI:70A8E3* + OUI:70AAB2* + ID_OUI_FROM_DATABASE=Research In Motion + ++OUI:70AF25* ++ ID_OUI_FROM_DATABASE=Nishiyama Industry Co.,LTD. ++ + OUI:70B035* + ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd + +@@ -60535,6 +60778,9 @@ OUI:70B599* + OUI:70B921* + ID_OUI_FROM_DATABASE=FiberHome Telecommunication Technologies CO.,LTD + ++OUI:70BAEF* ++ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited ++ + OUI:70C6AC* + ID_OUI_FROM_DATABASE=Bosch Automotive Aftermarket + +@@ -60586,6 +60832,9 @@ OUI:70EE50* + OUI:70F176* + ID_OUI_FROM_DATABASE=Data Modul AG + ++OUI:70F196* ++ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc ++ + OUI:70F1A1* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + +@@ -60796,6 +61045,9 @@ OUI:74B00C* + OUI:74B9EB* + ID_OUI_FROM_DATABASE=Fujian JinQianMao Electronic Technology Co.,Ltd + ++OUI:74BADB* ++ ID_OUI_FROM_DATABASE=Longconn Electornics(shenzhen)Co.,Ltd ++ + OUI:74BE08* + ID_OUI_FROM_DATABASE=ATEK Products, LLC + +@@ -60844,6 +61096,9 @@ OUI:74DE2B* + OUI:74E06E* + ID_OUI_FROM_DATABASE=Ergophone GmbH + ++OUI:74E14A* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:74E1B6* + ID_OUI_FROM_DATABASE=Apple + +@@ -61318,6 +61573,9 @@ OUI:7C092B* + OUI:7C0A50* + ID_OUI_FROM_DATABASE=J-MEX Inc. + ++OUI:7C0ECE* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:7C11BE* + ID_OUI_FROM_DATABASE=Apple + +@@ -61345,6 +61603,9 @@ OUI:7C2048* + OUI:7C2064* + ID_OUI_FROM_DATABASE=Alcatel Lucent IPD + ++OUI:7C2587* ++ ID_OUI_FROM_DATABASE=chaowifi.com ++ + OUI:7C2CF3* + ID_OUI_FROM_DATABASE=Secure Electrans Ltd + +@@ -61504,6 +61765,9 @@ OUI:7CAD74* + OUI:7CB03E* + ID_OUI_FROM_DATABASE=OSRAM GmbH + ++OUI:7CB177* ++ ID_OUI_FROM_DATABASE=Satelco AG ++ + OUI:7CB21B* + ID_OUI_FROM_DATABASE=Cisco SPVTG + +@@ -61774,6 +62038,9 @@ OUI:8065E9* + OUI:806629* + ID_OUI_FROM_DATABASE=Prescope Technologies CO.,LTD. + ++OUI:806C1B* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:806C8B* + ID_OUI_FROM_DATABASE=KAESER KOMPRESSOREN AG + +@@ -61918,9 +62185,15 @@ OUI:80D733* + OUI:80DB31* + ID_OUI_FROM_DATABASE=Power Quotient International Co., Ltd. + ++OUI:80E650* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:80EA96* + ID_OUI_FROM_DATABASE=Apple + ++OUI:80EACA* ++ ID_OUI_FROM_DATABASE=Dialog Semiconductor Hellas SA ++ + OUI:80EE73* + ID_OUI_FROM_DATABASE=Shuttle Inc. + +@@ -61933,6 +62206,9 @@ OUI:80F593* + OUI:80F62E* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:80F8EB* ++ ID_OUI_FROM_DATABASE=RayTight ++ + OUI:80FA5B* + ID_OUI_FROM_DATABASE=CLEVO CO. + +@@ -62116,6 +62392,9 @@ OUI:848506* + OUI:84850A* + ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH + ++OUI:8486F3* ++ ID_OUI_FROM_DATABASE=Greenvity Communications ++ + OUI:848D84* + ID_OUI_FROM_DATABASE=Rajant Corporation + +@@ -62134,9 +62413,15 @@ OUI:848F69* + OUI:849000* + ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik + ++OUI:84930C* ++ ID_OUI_FROM_DATABASE=InCoax Networks Europe AB ++ + OUI:84948C* + ID_OUI_FROM_DATABASE=Hitron Technologies. Inc + ++OUI:849681* ++ ID_OUI_FROM_DATABASE=Cathay Communication Co.,Ltd ++ + OUI:8496D8* + ID_OUI_FROM_DATABASE=Pace plc + +@@ -62206,6 +62491,9 @@ OUI:84DE3D* + OUI:84DF0C* + ID_OUI_FROM_DATABASE=NET2GRID BV + ++OUI:84E058* ++ ID_OUI_FROM_DATABASE=Pace plc ++ + OUI:84E4D9* + ID_OUI_FROM_DATABASE=Shenzhen NEED technology Ltd. + +@@ -62545,6 +62833,9 @@ OUI:8C0EE3* + OUI:8C11CB* + ID_OUI_FROM_DATABASE=ABUS Security-Center GmbH & Co. KG + ++OUI:8C18D9* ++ ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co., Ltd ++ + OUI:8C1F94* + ID_OUI_FROM_DATABASE=RF Surgical System Inc. + +@@ -62632,6 +62923,9 @@ OUI:8C5AF0* + OUI:8C5CA1* + ID_OUI_FROM_DATABASE=d-broad,INC + ++OUI:8C5D60* ++ ID_OUI_FROM_DATABASE=UCI Corporation Co.,Ltd. ++ + OUI:8C5FDF* + ID_OUI_FROM_DATABASE=Beijing Railway Signal Factory + +@@ -62683,6 +62977,9 @@ OUI:8C7CFF* + OUI:8C7EB3* + ID_OUI_FROM_DATABASE=Lytro, Inc. + ++OUI:8C7F3B* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:8C82A8* + ID_OUI_FROM_DATABASE=Insigma Technology Co.,Ltd + +@@ -62716,6 +63013,9 @@ OUI:8CAE4C* + OUI:8CAE89* + ID_OUI_FROM_DATABASE=Y-cam Solutions Ltd + ++OUI:8CB094* ++ ID_OUI_FROM_DATABASE=Airtech I&C Co., Ltd ++ + OUI:8CB64F* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -62770,6 +63070,9 @@ OUI:8CD628* + OUI:8CDB25* + ID_OUI_FROM_DATABASE=ESG Solutions + ++OUI:8CDCD4* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:8CDD8D* + ID_OUI_FROM_DATABASE=Wifly-City System Inc. + +@@ -62788,6 +63091,9 @@ OUI:8CE7B3* + OUI:8CEEC6* + ID_OUI_FROM_DATABASE=Precepscion Pty. Ltd. + ++OUI:8CF813* ++ ID_OUI_FROM_DATABASE=ORANGE POLSKA ++ + OUI:8CF945* + ID_OUI_FROM_DATABASE=Power Automation pte Ltd + +@@ -62851,6 +63157,9 @@ OUI:901D27* + OUI:901EDD* + ID_OUI_FROM_DATABASE=GREAT COMPUTER CORPORATION + ++OUI:90203A* ++ ID_OUI_FROM_DATABASE=BYD Precision Manufacture Co.,Ltd ++ + OUI:902083* + ID_OUI_FROM_DATABASE=General Engine Management Systems Ltd. + +@@ -63127,6 +63436,9 @@ OUI:90E6BA* + OUI:90EA60* + ID_OUI_FROM_DATABASE=SPI Lasers Ltd + ++OUI:90EF68* ++ ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation ++ + OUI:90F1AA* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD + +@@ -63154,6 +63466,9 @@ OUI:90FB5B* + OUI:90FBA6* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd + ++OUI:90FD61* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:90FF79* + ID_OUI_FROM_DATABASE=Metro Ethernet Forum + +@@ -63247,6 +63562,9 @@ OUI:945103* + OUI:9451BF* + ID_OUI_FROM_DATABASE=Hyundai ESG + ++OUI:945493* ++ ID_OUI_FROM_DATABASE=Rigado, LLC ++ + OUI:94592D* + ID_OUI_FROM_DATABASE=EKE Building Technology Systems Ltd + +@@ -63256,6 +63574,9 @@ OUI:945B7E* + OUI:946124* + ID_OUI_FROM_DATABASE=Pason Systems + ++OUI:946269* ++ ID_OUI_FROM_DATABASE=Arris Group, Inc. ++ + OUI:9463D1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -63622,6 +63943,9 @@ OUI:988EDD* + OUI:989080* + ID_OUI_FROM_DATABASE=Linkpower Network System Inc Ltd. + ++OUI:989096* ++ ID_OUI_FROM_DATABASE=Dell Inc ++ + OUI:9893CC* + ID_OUI_FROM_DATABASE=LG Electronics Inc. + +@@ -63781,6 +64105,9 @@ OUI:9C3178* + OUI:9C31B6* + ID_OUI_FROM_DATABASE=Kulite Semiconductor Products Inc + ++OUI:9C3583* ++ ID_OUI_FROM_DATABASE=Nipro Diagnostics, Inc ++ + OUI:9C3AAF* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -64234,6 +64561,9 @@ OUI:A08C9B* + OUI:A090DE* + ID_OUI_FROM_DATABASE=VEEDIMS,LLC + ++OUI:A09347* ++ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD. ++ + OUI:A09805* + ID_OUI_FROM_DATABASE=OpenVox Communication Co Ltd + +@@ -64336,6 +64666,9 @@ OUI:A0E534* + OUI:A0E5E9* + ID_OUI_FROM_DATABASE=enimai Inc + ++OUI:A0E6F8* ++ ID_OUI_FROM_DATABASE=Texas Instruments Inc ++ + OUI:A0E9DB* + ID_OUI_FROM_DATABASE=Ningbo FreeWings Technologies Co.,Ltd + +@@ -64498,6 +64831,9 @@ OUI:A46CC1* + OUI:A46E79* + ID_OUI_FROM_DATABASE=DFT System Co.Ltd + ++OUI:A470D6* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:A47733* + ID_OUI_FROM_DATABASE=Google + +@@ -64643,7 +64979,7 @@ OUI:A4D3B5* + ID_OUI_FROM_DATABASE=GLITEL Stropkov, s.r.o. + + OUI:A4D856* +- ID_OUI_FROM_DATABASE=Qualcomm Labs Inc. ++ ID_OUI_FROM_DATABASE=Gimbal, Inc + + OUI:A4DA3F* + ID_OUI_FROM_DATABASE=Bionics Corp. +@@ -64732,6 +65068,9 @@ OUI:A81758* + OUI:A81B18* + ID_OUI_FROM_DATABASE=XTS CORP + ++OUI:A81B5D* ++ ID_OUI_FROM_DATABASE=Foxtel Management Pty Ltd ++ + OUI:A81FAF* + ID_OUI_FROM_DATABASE=KRYPTON POLSKA + +@@ -64984,6 +65323,9 @@ OUI:AC0A61* + OUI:AC0DFE* + ID_OUI_FROM_DATABASE=Ekon GmbH - myGEKKO + ++OUI:AC11D3* ++ ID_OUI_FROM_DATABASE=Suzhou HOTEK Video Technology Co. Ltd ++ + OUI:AC1461* + ID_OUI_FROM_DATABASE=ATAW Co., Ltd. + +@@ -65023,6 +65365,9 @@ OUI:AC34CB* + OUI:AC3613* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:AC3870* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:AC3C0B* + ID_OUI_FROM_DATABASE=Apple + +@@ -65191,6 +65536,9 @@ OUI:ACAB8D* + OUI:ACB313* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:ACB74F* ++ ID_OUI_FROM_DATABASE=METEL s.r.o. ++ + OUI:ACB859* + ID_OUI_FROM_DATABASE=Uniband Electronic Corp, + +@@ -65356,6 +65704,9 @@ OUI:B03850* + OUI:B0435D* + ID_OUI_FROM_DATABASE=NuLEDs, Inc. + ++OUI:B04515* ++ ID_OUI_FROM_DATABASE=mira fitness,LLC. ++ + OUI:B04545* + ID_OUI_FROM_DATABASE=YACOUB Automation GmbH + +@@ -65635,6 +65986,9 @@ OUI:B41489* + OUI:B41513* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:B41780* ++ ID_OUI_FROM_DATABASE=DTI Group Ltd ++ + OUI:B418D1* + ID_OUI_FROM_DATABASE=Apple + +@@ -65746,6 +66100,12 @@ OUI:B4749F* + OUI:B4750E* + ID_OUI_FROM_DATABASE=Belkin International Inc. + ++OUI:B479A7* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ ++OUI:B47C29* ++ ID_OUI_FROM_DATABASE=Shenzhen Guzidi Technology Co.,Ltd ++ + OUI:B47F5E* + ID_OUI_FROM_DATABASE=Foresight Manufacture (S) Pte Ltd + +@@ -65923,6 +66283,9 @@ OUI:B81619* + OUI:B817C2* + ID_OUI_FROM_DATABASE=Apple + ++OUI:B8186F* ++ ID_OUI_FROM_DATABASE=ORIENTAL MOTOR CO., LTD. ++ + OUI:B81999* + ID_OUI_FROM_DATABASE=Nesys + +@@ -65989,6 +66352,9 @@ OUI:B843E4* + OUI:B847C6* + ID_OUI_FROM_DATABASE=SanJet Technology Corp. + ++OUI:B84FD5* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:B85510* + ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. + +@@ -66109,6 +66475,9 @@ OUI:B89AED* + OUI:B89BC9* + ID_OUI_FROM_DATABASE=SMC Networks Inc + ++OUI:B89BE4* ++ ID_OUI_FROM_DATABASE=ABB Power Systems Power Generation ++ + OUI:B8A386* + ID_OUI_FROM_DATABASE=D-Link International + +@@ -66151,6 +66520,9 @@ OUI:B8BA72* + OUI:B8BB6D* + ID_OUI_FROM_DATABASE=ENERES Co.,Ltd. + ++OUI:B8BD79* ++ ID_OUI_FROM_DATABASE=TrendPoint Systems ++ + OUI:B8BEBF* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + +@@ -66226,6 +66598,9 @@ OUI:B8EE65* + OUI:B8EE79* + ID_OUI_FROM_DATABASE=YWire Technologies, Inc. + ++OUI:B8F317* ++ ID_OUI_FROM_DATABASE=iSun Smasher Communications Private Limited ++ + OUI:B8F4D0* + ID_OUI_FROM_DATABASE=Herrmann Ultraschalltechnik GmbH & Co. Kg + +@@ -66373,6 +66748,9 @@ OUI:BC5FF4* + OUI:BC629F* + ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. + ++OUI:BC6641* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:BC671C* + ID_OUI_FROM_DATABASE=Cisco + +@@ -66838,6 +67216,9 @@ OUI:C4017C* + OUI:C401B1* + ID_OUI_FROM_DATABASE=SeekTech INC + ++OUI:C401CE* ++ ID_OUI_FROM_DATABASE=PRESITION (2000) CO., LTD. ++ + OUI:C40415* + ID_OUI_FROM_DATABASE=NETGEAR INC., + +@@ -66970,6 +67351,12 @@ OUI:C455C2* + OUI:C45600* + ID_OUI_FROM_DATABASE=Galleon Embedded Computing + ++OUI:C456FE* ++ ID_OUI_FROM_DATABASE=Lava International Ltd. ++ ++OUI:C4576E* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD ++ + OUI:C458C2* + ID_OUI_FROM_DATABASE=Shenzhen TATFOOK Technology Co., Ltd. + +@@ -67081,6 +67468,9 @@ OUI:C4B512* + OUI:C4BA99* + ID_OUI_FROM_DATABASE=I+ME Actia Informatik und Mikro-Elektronik GmbH + ++OUI:C4BD6A* ++ ID_OUI_FROM_DATABASE=SKF GmbH ++ + OUI:C4C0AE* + ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD. + +@@ -67429,6 +67819,9 @@ OUI:C8E1A7* + OUI:C8E42F* + ID_OUI_FROM_DATABASE=Technical Research Design and Development + ++OUI:C8E7D8* ++ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. ++ + OUI:C8EE08* + ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD + +@@ -67480,6 +67873,9 @@ OUI:C8FF77* + OUI:CC0080* + ID_OUI_FROM_DATABASE=BETTINI SRL + ++OUI:CC03FA* ++ ID_OUI_FROM_DATABASE=Technicolor CH USA ++ + OUI:CC047C* + ID_OUI_FROM_DATABASE=G-WAY Microwave + +@@ -67507,6 +67903,9 @@ OUI:CC0CDA* + OUI:CC0DEC* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:CC10A3* ++ ID_OUI_FROM_DATABASE=Beijing Nan Bao Technology Co., Ltd. ++ + OUI:CC14A6* + ID_OUI_FROM_DATABASE=Yichun MyEnergy Domain, Inc + +@@ -67531,6 +67930,9 @@ OUI:CC2A80* + OUI:CC2D8C* + ID_OUI_FROM_DATABASE=LG ELECTRONICS INC + ++OUI:CC3080* ++ ID_OUI_FROM_DATABASE=VAIO Corporation ++ + OUI:CC33BB* + ID_OUI_FROM_DATABASE=SAGEMCOM SAS + +@@ -67756,9 +68158,15 @@ OUI:CCD539* + OUI:CCD811* + ID_OUI_FROM_DATABASE=Aiconn Technology Corporation + ++OUI:CCD8C1* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:CCD9E9* + ID_OUI_FROM_DATABASE=SCR Engineers Ltd. + ++OUI:CCE17F* ++ ID_OUI_FROM_DATABASE=juniper networks ++ + OUI:CCE1D5* + ID_OUI_FROM_DATABASE=Buffalo Inc. + +@@ -67786,6 +68194,9 @@ OUI:CCF3A5* + OUI:CCF407* + ID_OUI_FROM_DATABASE=EUKREA ELECTROMATIQUE SARL + ++OUI:CCF538* ++ ID_OUI_FROM_DATABASE=3isysnetworks ++ + OUI:CCF67A* + ID_OUI_FROM_DATABASE=Ayecka Communication Systems LTD + +@@ -67825,6 +68236,9 @@ OUI:D00AAB* + OUI:D00EA4* + ID_OUI_FROM_DATABASE=Porsche Cars North America + ++OUI:D01242* ++ ID_OUI_FROM_DATABASE=BIOS Corporation ++ + OUI:D0131E* + ID_OUI_FROM_DATABASE=Sunrex Technology Corp + +@@ -67915,6 +68329,9 @@ OUI:D05FB8* + OUI:D05FCE* + ID_OUI_FROM_DATABASE=Hitachi Data Systems + ++OUI:D062A0* ++ ID_OUI_FROM_DATABASE=China Essence Technology (Zhumadian) Co., Ltd. ++ + OUI:D0634D* + ID_OUI_FROM_DATABASE=Meiko Maschinenbau GmbH & Co. KG + +@@ -67963,6 +68380,9 @@ OUI:D07E28* + OUI:D07E35* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:D084B0* ++ ID_OUI_FROM_DATABASE=Sagemcom ++ + OUI:D08999* + ID_OUI_FROM_DATABASE=APCON, Inc. + +@@ -68110,6 +68530,9 @@ OUI:D0F27F* + OUI:D0F73B* + ID_OUI_FROM_DATABASE=Helmut Mauell GmbH + ++OUI:D0FA1D* ++ ID_OUI_FROM_DATABASE=Qihoo 360 Technology Co.,Ltd ++ + OUI:D0FF50* + ID_OUI_FROM_DATABASE=Texas Instruments, Inc + +@@ -68191,6 +68614,9 @@ OUI:D42F23* + OUI:D4319D* + ID_OUI_FROM_DATABASE=Sinwatec + ++OUI:D437D7* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:D43A65* + ID_OUI_FROM_DATABASE=IGRS Engineering Lab Ltd. + +@@ -68278,6 +68704,9 @@ OUI:D46F42* + OUI:D479C3* + ID_OUI_FROM_DATABASE=Cameronet GmbH & Co. KG + ++OUI:D47B35* ++ ID_OUI_FROM_DATABASE=NEO Monitors AS ++ + OUI:D47B75* + ID_OUI_FROM_DATABASE=HARTING Electronics GmbH + +@@ -68299,6 +68728,9 @@ OUI:D48890* + OUI:D48CB5* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:D48F33* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:D48FAA* + ID_OUI_FROM_DATABASE=Sogecam Industrial, S.A. + +@@ -68440,6 +68872,9 @@ OUI:D4EA0E* + OUI:D4EC0C* + ID_OUI_FROM_DATABASE=Harley-Davidson Motor Company + ++OUI:D4EC86* ++ ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd ++ + OUI:D4EE07* + ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd. + +@@ -68551,6 +68986,9 @@ OUI:D8490B* + OUI:D8492F* + ID_OUI_FROM_DATABASE=CANON INC. + ++OUI:D84A87* ++ ID_OUI_FROM_DATABASE=OI ELECTRIC CO.,LTD ++ + OUI:D84B2A* + ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. + +@@ -68860,6 +69298,9 @@ OUI:DC37D2* + OUI:DC38E1* + ID_OUI_FROM_DATABASE=Juniper networks + ++OUI:DC3979* ++ ID_OUI_FROM_DATABASE=Skyport Systems ++ + OUI:DC3A5E* + ID_OUI_FROM_DATABASE=Roku, Inc + +@@ -69199,6 +69640,9 @@ OUI:E09467* + OUI:E09579* + ID_OUI_FROM_DATABASE=ORTHOsoft inc, d/b/a Zimmer CAS + ++OUI:E09796* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:E097F2* + ID_OUI_FROM_DATABASE=Atomax Inc. + +@@ -69226,6 +69670,9 @@ OUI:E0AAB0* + OUI:E0ABFE* + ID_OUI_FROM_DATABASE=Orb Networks, Inc. + ++OUI:E0ACF1* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:E0AE5E* + ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. + +@@ -69523,6 +69970,9 @@ OUI:E492E7* + OUI:E492FB* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:E4956E* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:E496AE* + ID_OUI_FROM_DATABASE=ALTOGRAPHICS Inc. + +@@ -69553,6 +70003,9 @@ OUI:E4B021* + OUI:E4C146* + ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A + ++OUI:E4C62B* ++ ID_OUI_FROM_DATABASE=Airware ++ + OUI:E4C63D* + ID_OUI_FROM_DATABASE=Apple, Inc. + +@@ -69910,6 +70363,9 @@ OUI:E8EA6A* + OUI:E8EADA* + ID_OUI_FROM_DATABASE=Denkovi Assembly Electroncs LTD + ++OUI:E8ED05* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:E8EDF3* + ID_OUI_FROM_DATABASE=Cisco + +@@ -69931,6 +70387,9 @@ OUI:E8FC60* + OUI:E8FCAF* + ID_OUI_FROM_DATABASE=NETGEAR INC., + ++OUI:EC0EC4* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:EC0ED6* + ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS + +@@ -69949,6 +70408,9 @@ OUI:EC1766* + OUI:EC1A59* + ID_OUI_FROM_DATABASE=Belkin International Inc. + ++OUI:EC1D7F* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:EC219F* + ID_OUI_FROM_DATABASE=VidaBox LLC + +@@ -69982,6 +70444,9 @@ OUI:EC3586* + OUI:EC3BF0* + ID_OUI_FROM_DATABASE=NovelSat + ++OUI:EC3C5A* ++ ID_OUI_FROM_DATABASE=SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD ++ + OUI:EC3E09* + ID_OUI_FROM_DATABASE=PERFORMANCE DESIGNED PRODUCTS, LLC + +@@ -70522,6 +70987,9 @@ OUI:F4068D* + OUI:F406A5* + ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. + ++OUI:F409D8* ++ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. ++ + OUI:F40B93* + ID_OUI_FROM_DATABASE=Research In Motion + +@@ -70555,6 +71023,9 @@ OUI:F42012* + OUI:F42833* + ID_OUI_FROM_DATABASE=MMPC Inc. + ++OUI:F42853* ++ ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. ++ + OUI:F42896* + ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA + +@@ -70780,6 +71251,9 @@ OUI:F4EC38* + OUI:F4F15A* + ID_OUI_FROM_DATABASE=Apple + ++OUI:F4F1E1* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:F4F26D* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + +@@ -70855,6 +71329,9 @@ OUI:F81EDF* + OUI:F82285* + ID_OUI_FROM_DATABASE=Cypress Technology CO., LTD. + ++OUI:F82441* ++ ID_OUI_FROM_DATABASE=Yeelink ++ + OUI:F82793* + ID_OUI_FROM_DATABASE=Apple, Inc + +@@ -71119,6 +71596,9 @@ OUI:F8E4FB* + OUI:F8E7B5* + ID_OUI_FROM_DATABASE=µTech Tecnologia LTDA + ++OUI:F8E811* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:F8E968* + ID_OUI_FROM_DATABASE=Egker Kft. + +@@ -71221,6 +71701,9 @@ OUI:FC1BFF* + OUI:FC1D59* + ID_OUI_FROM_DATABASE=I Smart Cities HK Ltd + ++OUI:FC1D84* ++ ID_OUI_FROM_DATABASE=Autobase ++ + OUI:FC1E16* + ID_OUI_FROM_DATABASE=IPEVO corp + +@@ -71359,6 +71842,9 @@ OUI:FC9947* + OUI:FC9FAE* + ID_OUI_FROM_DATABASE=Fidus Systems Inc + ++OUI:FC9FE1* ++ ID_OUI_FROM_DATABASE=CONWIN.Tech. Ltd ++ + OUI:FCA13E* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -71419,6 +71905,9 @@ OUI:FCD817* + OUI:FCDB96* + ID_OUI_FROM_DATABASE=ENERVALLEY CO., LTD + ++OUI:FCDBB3* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:FCDD55* + ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd + +diff --git hwdb/20-pci-classes.hwdb hwdb/20-pci-classes.hwdb +index fd1d5d0..5702c40 100644 +--- hwdb/20-pci-classes.hwdb ++++ hwdb/20-pci-classes.hwdb +@@ -47,12 +47,24 @@ pci:v*d*sv*sd*bc01sc06i00* + pci:v*d*sv*sd*bc01sc06i01* + ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0 + ++pci:v*d*sv*sd*bc01sc06i02* ++ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus ++ + pci:v*d*sv*sd*bc01sc07* + ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller + ++pci:v*d*sv*sd*bc01sc07i01* ++ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus ++ + pci:v*d*sv*sd*bc01sc08* + ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller + ++pci:v*d*sv*sd*bc01sc08i01* ++ ID_PCI_INTERFACE_FROM_DATABASE=NVMHCI ++ ++pci:v*d*sv*sd*bc01sc08i02* ++ ID_PCI_INTERFACE_FROM_DATABASE=NVM Express ++ + pci:v*d*sv*sd*bc01sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller + +@@ -80,6 +92,9 @@ pci:v*d*sv*sd*bc02sc05* + pci:v*d*sv*sd*bc02sc06* + ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller + ++pci:v*d*sv*sd*bc02sc07* ++ ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller ++ + pci:v*d*sv*sd*bc02sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Network controller + +@@ -311,6 +326,9 @@ pci:v*d*sv*sd*bc08sc02i01* + pci:v*d*sv*sd*bc08sc02i02* + ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers + ++pci:v*d*sv*sd*bc08sc02i03* ++ ID_PCI_INTERFACE_FROM_DATABASE=HPET ++ + pci:v*d*sv*sd*bc08sc03* + ID_PCI_SUBCLASS_FROM_DATABASE=RTC + +@@ -527,5 +545,14 @@ pci:v*d*sv*sd*bc11sc20* + pci:v*d*sv*sd*bc11sc80* + ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller + ++pci:v*d*sv*sd*bc12* ++ ID_PCI_CLASS_FROM_DATABASE=Processing accelerators ++ ++pci:v*d*sv*sd*bc12sc00* ++ ID_PCI_SUBCLASS_FROM_DATABASE=Processing accelerators ++ ++pci:v*d*sv*sd*bc13* ++ ID_PCI_CLASS_FROM_DATABASE=Non-Essential Instrumentation ++ + pci:v*d*sv*sd*bcFF* + ID_PCI_CLASS_FROM_DATABASE=Unassigned class +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 62941b9..77c727d 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -959,6 +959,15 @@ pci:v00001000d0000005Dsv00001028sd00001F49* + pci:v00001000d0000005Dsv00001028sd00001F4A* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) + ++pci:v00001000d0000005Dsv00001028sd00001F4D* ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xS) ++ ++pci:v00001000d0000005Dsv00001028sd00001F4F* ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Slim) ++ ++pci:v00001000d0000005Dsv00001028sd00001F54* ++ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xD) ++ + pci:v00001000d0000005Dsv000017AAsd00001052* + ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) + +@@ -1677,7 +1686,7 @@ pci:v00001002d00001308* + ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller + + pci:v00001002d00001309* +- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] ++ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6/R7 Graphics] + + pci:v00001002d0000130A* + ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] +@@ -3003,7 +3012,7 @@ pci:v00001002d00004C57sv00001014sd00000517* + ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) + + pci:v00001002d00004C57sv00001014sd00000530* +- ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) ++ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T4x Series) + + pci:v00001002d00004C57sv00001028sd000000E6* + ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) +@@ -4362,7 +4371,7 @@ pci:v00001002d00006667* + ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] + + pci:v00001002d0000666F* +- ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] ++ ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M / R5 M230] + + pci:v00001002d00006670* + ID_MODEL_FROM_DATABASE=Hainan +@@ -5937,10 +5946,10 @@ pci:v00001002d0000679F* + ID_MODEL_FROM_DATABASE=Tahiti + + pci:v00001002d000067A0* +- ID_MODEL_FROM_DATABASE=Hawaii XT GL ++ ID_MODEL_FROM_DATABASE=Hawaii XT GL [FirePro W9100] + + pci:v00001002d000067A1* +- ID_MODEL_FROM_DATABASE=Hawaii GL ++ ID_MODEL_FROM_DATABASE=Hawaii PRO GL [FirePro W8100] + + pci:v00001002d000067A2* + ID_MODEL_FROM_DATABASE=Hawaii GL +@@ -5961,7 +5970,7 @@ pci:v00001002d000067B1* + ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] + + pci:v00001002d000067B9* +- ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] ++ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295X2] + + pci:v00001002d000067BE* + ID_MODEL_FROM_DATABASE=Hawaii LE +@@ -7860,7 +7869,13 @@ pci:v00001002d000068FE* + ID_MODEL_FROM_DATABASE=Cedar LE + + pci:v00001002d00006900* +- ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] ++ ++pci:v00001002d00006900sv00001028sd00000640* ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M265) ++ ++pci:v00001002d00006900sv00001179sd0000F934* ++ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M260) + + pci:v00001002d00006901* + ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] +@@ -8027,6 +8042,9 @@ pci:v00001002d0000718A* + pci:v00001002d0000718B* + ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] + ++pci:v00001002d0000718Bsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001002d0000718C* + ID_MODEL_FROM_DATABASE=RV516/M62-CSP64 [Mobility Radeon X1350] + +@@ -8969,26 +8987,29 @@ pci:v00001002d0000983E* + pci:v00001002d0000983F* + ID_MODEL_FROM_DATABASE=Kabini + ++pci:v00001002d00009840* ++ ID_MODEL_FROM_DATABASE=Kabini HDMI/DP Audio ++ + pci:v00001002d00009850* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A6-6200 with R3 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] + + pci:v00001002d00009851* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics] + + pci:v00001002d00009852* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] + + pci:v00001002d00009853* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-4000 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] + + pci:v00001002d00009854* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-3700 with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] + + pci:v00001002d00009855* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2450M with R3 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R6 Graphics] + + pci:v00001002d00009856* +- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] ++ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] + + pci:v00001002d00009857* + ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] +@@ -12347,6 +12368,9 @@ pci:v0000102Bd00000532sv00001028sd0000029C* + pci:v0000102Bd00000532sv00001028sd000002A4* + ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) + ++pci:v0000102Bd00000532sv000015D9sd00000624* ++ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (X9SCM-F Motherboard) ++ + pci:v0000102Bd00000532sv000015D9sd0000A811* + ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) + +@@ -13169,6 +13193,9 @@ pci:v00001039d00000016* + pci:v00001039d00000018* + ID_MODEL_FROM_DATABASE=SiS85C503/5513 (LPC Bridge) + ++pci:v00001039d00000163* ++ ID_MODEL_FROM_DATABASE=163 802.11b/g Wireless LAN Adapter ++ + pci:v00001039d00000180* + ID_MODEL_FROM_DATABASE=RAID bus controller 180 SATA/PATA [SiS] + +@@ -14141,6 +14168,9 @@ pci:v00001042d00003020* + pci:v00001043* + ID_VENDOR_FROM_DATABASE=ASUSTeK Computer Inc. + ++pci:v00001043d00000464* ++ ID_MODEL_FROM_DATABASE=Radeon R9 270x GPU ++ + pci:v00001043d00000675* + ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D + +@@ -17978,6 +18008,9 @@ pci:v00001095d00003512sv00001095sd00006512* + pci:v00001095d00003531* + ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller + ++pci:v00001095d00003531sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00001096* + ID_VENDOR_FROM_DATABASE=Alacron + +@@ -26261,6 +26294,9 @@ pci:v000010DEd00000F00* + pci:v000010DEd00000F01* + ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 620] + ++pci:v000010DEd00000F02* ++ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 730] ++ + pci:v000010DEd00000FC0* + ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 640 OEM] + +@@ -26276,6 +26312,9 @@ pci:v000010DEd00000FC6* + pci:v000010DEd00000FC6sv00001043sd00008428* + ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) + ++pci:v000010DEd00000FC8* ++ ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 740] ++ + pci:v000010DEd00000FCD* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] + +@@ -26420,6 +26459,9 @@ pci:v000010DEd00000FFE* + pci:v000010DEd00000FFF* + ID_MODEL_FROM_DATABASE=GK107GL [Quadro 410] + ++pci:v000010DEd00001001* ++ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX TITAN Z] ++ + pci:v000010DEd00001003* + ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan LE] + +@@ -26828,9 +26870,57 @@ pci:v000010DEd00001140sv00001025sd00000830* + pci:v000010DEd00001140sv00001025sd00000837* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv00001025sd0000083E* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001025sd00000841* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + ++pci:v000010DEd00001140sv00001025sd00000854* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000855* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000856* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000857* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000858* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000868* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000869* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) ++ ++pci:v000010DEd00001140sv00001025sd00000873* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000878* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000087B* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000087C* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) ++ ++pci:v000010DEd00001140sv00001025sd00000881* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000088A* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd0000090F* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001025sd00000921* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001028sd0000054D* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + +@@ -26966,6 +27056,18 @@ pci:v000010DEd00001140sv00001043sd000016DD* + pci:v000010DEd00001140sv00001043sd0000170D* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + ++pci:v000010DEd00001140sv00001043sd0000176D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001043sd0000178D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001043sd0000179D* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001043sd000017DD* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001043sd00002132* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) + +@@ -27713,6 +27815,9 @@ pci:v000010DEd00001284* + pci:v000010DEd00001286* + ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] + ++pci:v000010DEd00001287* ++ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 730] ++ + pci:v000010DEd00001290* + ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] + +@@ -27749,6 +27854,21 @@ pci:v000010DEd00001294* + pci:v000010DEd00001295* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] + ++pci:v000010DEd00001295sv0000103Csd00002B0D* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B0F* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B11* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B21* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) ++ ++pci:v000010DEd00001295sv0000103Csd00002B22* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) ++ + pci:v000010DEd00001296* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] + +@@ -28302,7 +28422,7 @@ pci:v000010ECd00008136* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller + + pci:v000010ECd00008136sv0000103Csd00002AB1* +- ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion p6774) + + pci:v000010ECd00008136sv0000103Csd000030CC* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) +@@ -28310,6 +28430,9 @@ pci:v000010ECd00008136sv0000103Csd000030CC* + pci:v000010ECd00008136sv00001179sd0000FF64* + ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) + ++pci:v000010ECd00008136sv000017C0sd00001053* ++ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (AzureWave AW-NE766 802.11B/G/N Mini PCIe Card Model RT2700E) ++ + pci:v000010ECd00008138* + ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter + +@@ -29036,6 +29159,9 @@ pci:v00001102d0000000B* + pci:v00001102d0000000Bsv00001102sd00000041* + ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) + ++pci:v00001102d00000012* ++ ID_MODEL_FROM_DATABASE=SB Recon3D ++ + pci:v00001102d00004001* + ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port + +@@ -30878,6 +31004,9 @@ pci:v00001106d0000E340* + pci:v00001106d0000E353* + ID_MODEL_FROM_DATABASE=VX800/VX820 PCI Express Root Port + ++pci:v00001106d0000E410* ++ ID_MODEL_FROM_DATABASE=VX900 PCI Express Physical Layer Electrical Sub-block ++ + pci:v00001106d0000F208* + ID_MODEL_FROM_DATABASE=PT890 PCI to PCI Bridge Controller + +@@ -35045,6 +35174,9 @@ pci:v000011ABd00004353sv0000104Dsd0000902D* + pci:v000011ABd00004354* + ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller + ++pci:v000011ABd00004354sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (R730 Laptop) ++ + pci:v000011ABd00004354sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) + +@@ -36557,6 +36689,9 @@ pci:v00001217* + pci:v00001217d000000F7* + ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) + ++pci:v00001217d000000F7sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001217d000000F7sv00001179sd0000FF50* + ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) + +@@ -36635,12 +36770,18 @@ pci:v00001217d00007114* + pci:v00001217d00007120* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller + ++pci:v00001217d00007120sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001217d00007120sv00001179sd0000FF50* + ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) + + pci:v00001217d00007130* + ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller + ++pci:v00001217d00007130sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00001217d00007130sv00001179sd0000FF50* + ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) + +@@ -42276,7 +42417,7 @@ pci:v00001425d00004083* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller + + pci:v00001425d00004084* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller + + pci:v00001425d00004085* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller +@@ -42348,7 +42489,7 @@ pci:v00001425d00004483* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller + + pci:v00001425d00004484* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller + + pci:v00001425d00004485* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller +@@ -42420,7 +42561,7 @@ pci:v00001425d00004583* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller + + pci:v00001425d00004584* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller + + pci:v00001425d00004585* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller +@@ -42492,7 +42633,7 @@ pci:v00001425d00004683* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller + + pci:v00001425d00004684* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller + + pci:v00001425d00004685* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller +@@ -42564,7 +42705,7 @@ pci:v00001425d00004783* + ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller + + pci:v00001425d00004784* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller + + pci:v00001425d00004785* + ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller +@@ -42579,76 +42720,76 @@ pci:v00001425d00004788* + ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller + + pci:v00001425d00004801* +- ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004802* +- ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004803* +- ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004804* +- ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004805* +- ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004806* +- ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004807* +- ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004808* +- ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004809* +- ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480A* +- ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480B* +- ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480C* +- ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480D* +- ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480E* +- ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000480F* +- ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004880* +- ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004881* +- ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004882* +- ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004883* +- ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004884* +- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004885* +- ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004886* +- ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004887* +- ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00004888* +- ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005001* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller +@@ -43041,82 +43182,82 @@ pci:v00001425d00005785* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller + + pci:v00001425d00005801* +- ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005802* +- ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005803* +- ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005804* +- ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005805* +- ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005806* +- ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005807* +- ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005808* +- ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005809* +- ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580A* +- ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580B* +- ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580C* +- ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580D* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580E* +- ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000580F* +- ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005810* +- ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005811* +- ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005812* +- ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005813* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005814* +- ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005815* +- ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005880* +- ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005881* +- ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005883* +- ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005884* +- ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005885* +- ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller [VF] + + pci:v00001425d0000A000* + ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller +@@ -43562,6 +43703,9 @@ pci:v0000148E* + pci:v0000148F* + ID_VENDOR_FROM_DATABASE=Plant Equipment, Inc. + ++pci:v0000148Fd00005370* ++ ID_MODEL_FROM_DATABASE=Dexlink AUWL15I1 ++ + pci:v00001490* + ID_VENDOR_FROM_DATABASE=Stone Microsystems PTY Ltd. + +@@ -44885,6 +45029,9 @@ pci:v000014E4d000016A2sv0000103Csd00001916* + pci:v000014E4d000016A2sv0000103Csd00001917* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) + ++pci:v000014E4d000016A3* ++ ID_MODEL_FROM_DATABASE=NetXtreme BCM57786 Gigabit Ethernet PCIe ++ + pci:v000014E4d000016A4* + ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function + +@@ -47796,7 +47943,7 @@ pci:v000015B3d00001003* + ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3] + + pci:v000015B3d00001004* +- ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3 Virtual Function] ++ ID_MODEL_FROM_DATABASE=MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function] + + pci:v000015B3d00001005* + ID_MODEL_FROM_DATABASE=MT27510 Family +@@ -47807,9 +47954,6 @@ pci:v000015B3d00001006* + pci:v000015B3d00001007* + ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro] + +-pci:v000015B3d00001008* +- ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro Virtual Function] +- + pci:v000015B3d00001009* + ID_MODEL_FROM_DATABASE=MT27530 Family + +@@ -49187,6 +49331,9 @@ pci:v0000168Cd0000002Bsv0000105Bsd0000E017* + pci:v0000168Cd0000002Bsv0000105Bsd0000E023* + ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) + ++pci:v0000168Cd0000002Bsv0000105Bsd0000E025* ++ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.05 802.11bgn Wireless Half-size Mini PCIe Card) ++ + pci:v0000168Cd0000002Bsv00001113sd0000E811* + ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) + +@@ -50471,6 +50618,9 @@ pci:v00001814d00000701sv00001737sd00000074* + pci:v00001814d00000781* + ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe + ++pci:v00001814d00000781sv00001814sd00002790* ++ ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe ++ + pci:v00001814d00003060* + ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R + +@@ -51911,6 +52061,9 @@ pci:v00001969d00001063* + pci:v00001969d00001063sv00001458sd0000E000* + ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) + ++pci:v00001969d00001063sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00001969d00001066* + ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet + +@@ -52358,6 +52511,18 @@ pci:v00001A2Bd0000000A* + pci:v00001A2Bd0000000E* + ID_MODEL_FROM_DATABASE=DSLP-104 v1.1 + ++pci:v00001A30* ++ ID_VENDOR_FROM_DATABASE=Lantiq ++ ++pci:v00001A30d00000680* ++ ID_MODEL_FROM_DATABASE=MtW8171 [Hyperion II] ++ ++pci:v00001A30d00000700* ++ ID_MODEL_FROM_DATABASE=Wave300 PSB8224 [Hyperion III] ++ ++pci:v00001A30d00000710* ++ ID_MODEL_FROM_DATABASE=Wave300 PSB8231 [Hyperion III] ++ + pci:v00001A32* + ID_VENDOR_FROM_DATABASE=Quanta Microsystems, Inc + +@@ -52497,19 +52662,19 @@ pci:v00001A78* + ID_VENDOR_FROM_DATABASE=Virident Systems Inc. + + pci:v00001A78d00000031* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive + + pci:v00001A78d00000031sv00001A78sd00000034* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) + + pci:v00001A78d00000031sv00001A78sd00000037* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) + + pci:v00001A78d00000031sv00001A78sd00000038* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) + + pci:v00001A78d00000031sv00001A78sd00000039* +- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) ++ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) + + pci:v00001A78d00000040* + ID_MODEL_FROM_DATABASE=FlashMAX II +@@ -52520,6 +52685,9 @@ pci:v00001A78d00000041* + pci:v00001A78d00000042* + ID_MODEL_FROM_DATABASE=FlashMAX II + ++pci:v00001A78d00000050* ++ ID_MODEL_FROM_DATABASE=FlashMAX III ++ + pci:v00001A84* + ID_VENDOR_FROM_DATABASE=Commex Technologies + +@@ -52682,6 +52850,15 @@ pci:v00001AEDd00001008* + pci:v00001AEDd00002001* + ID_MODEL_FROM_DATABASE=ioDrive2 + ++pci:v00001AEDd00003001* ++ ID_MODEL_FROM_DATABASE=ioMemory FHHL ++ ++pci:v00001AEDd00003002* ++ ID_MODEL_FROM_DATABASE=ioMemory HHHL ++ ++pci:v00001AEDd00003003* ++ ID_MODEL_FROM_DATABASE=ioMemory Mezzanine ++ + pci:v00001AEE* + ID_VENDOR_FROM_DATABASE=Caustic Graphics Inc. + +@@ -52775,6 +52952,9 @@ pci:v00001B21d00001080* + pci:v00001B21d00001080sv00001849sd00001080* + ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) + ++pci:v00001B21d00001142* ++ ID_MODEL_FROM_DATABASE=ASM1042A USB 3.0 Host Controller ++ + pci:v00001B2C* + ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. + +@@ -52916,6 +53096,9 @@ pci:v00001B4Bd00009485* + pci:v00001B55* + ID_VENDOR_FROM_DATABASE=NetUP Inc. + ++pci:v00001B55d000018F6* ++ ID_MODEL_FROM_DATABASE=Dual DVB Universal CI card ++ + pci:v00001B55d00002A2C* + ID_MODEL_FROM_DATABASE=Dual DVB-S2-CI card + +@@ -53135,6 +53318,9 @@ pci:v00001CE4d00000002* + pci:v00001CF7* + ID_VENDOR_FROM_DATABASE=Subspace Dynamics + ++pci:v00001D21* ++ ID_VENDOR_FROM_DATABASE=Allo ++ + pci:v00001D44* + ID_VENDOR_FROM_DATABASE=DPT + +@@ -54956,15 +55142,30 @@ pci:v00008086d00000044sv00001025sd00000347* + pci:v00008086d00000044sv00001025sd00000487* + ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) + ++pci:v00008086d00000044sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (R730 Laptop) ++ ++pci:v00008086d00000044sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00000044sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) + + pci:v00008086d00000045* + ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port + ++pci:v00008086d00000045sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00000046* + ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller + ++pci:v00008086d00000046sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (R730 Laptop) ++ ++pci:v00008086d00000046sv000017C0sd000010D9* ++ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00000046sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) + +@@ -55238,6 +55439,9 @@ pci:v00008086d00000150* + pci:v00008086d00000150sv00001043sd000084CA* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) + ++pci:v00008086d00000150sv000015D9sd00000624* ++ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (X9SCM-F Motherboard) ++ + pci:v00008086d00000150sv00001849sd00000150* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) + +@@ -55445,6 +55649,9 @@ pci:v00008086d00000416sv000017AAsd0000220E* + pci:v00008086d0000041A* + ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller + ++pci:v00008086d0000041E* ++ ID_MODEL_FROM_DATABASE=4th Generation Core Processor Family Integrated Graphics Controller ++ + pci:v00008086d00000433* + ID_MODEL_FROM_DATABASE=Coleto Creek ACC - ME/CPM interface + +@@ -56727,241 +56934,85 @@ pci:v00008086d00000EFD* + ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO + + pci:v00008086d00000F00* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +- +-pci:v00008086d00000F01* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +- +-pci:v00008086d00000F02* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit +- +-pci:v00008086d00000F03* +- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register + + pci:v00008086d00000F04* +- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller +- +-pci:v00008086d00000F05* +- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller + + pci:v00008086d00000F06* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller +- +-pci:v00008086d00000F07* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 DMA Controller + + pci:v00008086d00000F08* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller + + pci:v00008086d00000F09* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller + + pci:v00008086d00000F0A* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 +- +-pci:v00008086d00000F0B* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #1 + + pci:v00008086d00000F0C* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 +- +-pci:v00008086d00000F0D* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #2 + + pci:v00008086d00000F0E* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller +- +-pci:v00008086d00000F0F* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller +- +-pci:v00008086d00000F10* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller +- +-pci:v00008086d00000F11* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller +- +-pci:v00008086d00000F12* +- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller +- +-pci:v00008086d00000F13* +- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 SPI Controller + + pci:v00008086d00000F14* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller + + pci:v00008086d00000F15* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller + + pci:v00008086d00000F16* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller +- +-pci:v00008086d00000F17* +- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller + + pci:v00008086d00000F18* +- ID_MODEL_FROM_DATABASE=ValleyView SEC +- +-pci:v00008086d00000F19* +- ID_MODEL_FROM_DATABASE=ValleyView SEC +- +-pci:v00008086d00000F1A* +- ID_MODEL_FROM_DATABASE=ValleyView SEC +- +-pci:v00008086d00000F1B* +- ID_MODEL_FROM_DATABASE=ValleyView SEC ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine + + pci:v00008086d00000F1C* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F1D* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F1E* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F1F* +- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit +- +-pci:v00008086d00000F20* +- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller +- +-pci:v00008086d00000F21* +- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller +- +-pci:v00008086d00000F22* +- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller +- +-pci:v00008086d00000F23* +- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller +- +-pci:v00008086d00000F24* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F25* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F26* +- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller +- +-pci:v00008086d00000F27* +- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Power Control Unit + + pci:v00008086d00000F28* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F29* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F2A* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F2B* +- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller +- +-pci:v00008086d00000F2E* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F2F* +- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller +- +-pci:v00008086d00000F30* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPE Audio Controller + + pci:v00008086d00000F31* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 +- +-pci:v00008086d00000F32* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 +- +-pci:v00008086d00000F33* +- ID_MODEL_FROM_DATABASE=ValleyView Gen7 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Graphics & Display + + pci:v00008086d00000F34* +- ID_MODEL_FROM_DATABASE=ValleyView USB Enhanced Host Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB EHCI + + pci:v00008086d00000F35* +- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller +- +-pci:v00008086d00000F36* +- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB xHCI + + pci:v00008086d00000F37* +- ID_MODEL_FROM_DATABASE=ValleyView OTG ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series OTG USB Device + + pci:v00008086d00000F38* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F39* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3A* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3B* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3C* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3D* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3E* +- ID_MODEL_FROM_DATABASE=ValleyView ISP +- +-pci:v00008086d00000F3F* +- ID_MODEL_FROM_DATABASE=ValleyView ISP ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Camera ISP + + pci:v00008086d00000F40* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 DMA Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 DMA Controller + + pci:v00008086d00000F41* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #1 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #1 + + pci:v00008086d00000F42* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #2 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #2 + + pci:v00008086d00000F43* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #3 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #3 + + pci:v00008086d00000F44* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #4 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #4 + + pci:v00008086d00000F45* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #5 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #5 + + pci:v00008086d00000F46* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #6 ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #6 + + pci:v00008086d00000F47* +- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #7 +- +-pci:v00008086d00000F48* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F49* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4A* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4B* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4C* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4D* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4E* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F4F* +- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port +- +-pci:v00008086d00000F50* +- ID_MODEL_FROM_DATABASE=ValleyView MIPI-HSI Controller ++ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #7 + + pci:v00008086d00001000* + ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) +@@ -57842,6 +57893,9 @@ pci:v00008086d00001091* + pci:v00008086d00001092* + ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection + ++pci:v00008086d00001092sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d00001093* + ID_MODEL_FROM_DATABASE=PRO/100 VM Network Connection + +@@ -59403,7 +59457,7 @@ pci:v00008086d0000154Asv00008086sd0000011C* + ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) + + pci:v00008086d0000154C* +- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function + + pci:v00008086d0000154D* + ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter +@@ -59460,34 +59514,37 @@ pci:v00008086d00001570* + ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V + + pci:v00008086d00001571* +- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function ++ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function + + pci:v00008086d00001572* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ + + pci:v00008086d00001572sv00001028sd00001F99* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710/I350 rNDC) ++ ++pci:v00008086d00001572sv00008086sd00000000* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710) + + pci:v00008086d00001572sv00008086sd00000001* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000002* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000004* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) + + pci:v00008086d00001572sv00008086sd00000005* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000006* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 2P X710 Adapter) + + pci:v00008086d00001572sv00008086sd00000007* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d00001572sv00008086sd00000008* +- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) + + pci:v00008086d0000157B* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection +@@ -59496,17 +59553,20 @@ pci:v00008086d0000157C* + ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection + + pci:v00008086d00001580* +- ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE backplane + + pci:v00008086d00001581* +- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane + + pci:v00008086d00001581sv00001028sd00001F98* +- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) ++ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane (Ethernet 10G 4P X710-k bNDC) + + pci:v00008086d00001583* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + ++pci:v00008086d00001583sv00008086sd00000000* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) ++ + pci:v00008086d00001583sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) + +@@ -59519,6 +59579,9 @@ pci:v00008086d00001583sv00008086sd00000003* + pci:v00008086d00001584* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ + ++pci:v00008086d00001584sv00008086sd00000000* ++ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) ++ + pci:v00008086d00001584sv00008086sd00000001* + ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) + +@@ -61244,9 +61307,15 @@ pci:v00008086d00002448sv0000104Dsd0000902D* + pci:v00008086d00002448sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) + ++pci:v00008086d00002448sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d00002448sv0000144Dsd0000C00C* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) + ++pci:v00008086d00002448sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (R730 Laptop) ++ + pci:v00008086d00002448sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) + +@@ -61259,6 +61328,12 @@ pci:v00008086d00002448sv00001734sd00001055* + pci:v00008086d00002448sv000017AAsd000020AE* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) + ++pci:v00008086d00002448sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion Akoya E7214 Notebook PC [MD98410]) ++ ++pci:v00008086d00002448sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002448sv00008086sd0000544B* + ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) + +@@ -61872,7 +61947,7 @@ pci:v00008086d000024C5sv00001014sd00000267* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) + + pci:v00008086d000024C5sv00001014sd00000537* +- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T4x Series) + + pci:v00008086d000024C5sv00001014sd0000055F* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) +@@ -61944,7 +62019,7 @@ pci:v00008086d000024C6* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller + + pci:v00008086d000024C6sv00001014sd00000524* +- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) ++ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T4x Series) + + pci:v00008086d000024C6sv00001014sd00000525* + ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) +@@ -64358,6 +64433,9 @@ pci:v00008086d000027A0sv0000103Csd000030A3* + pci:v00008086d000027A0sv00001043sd00001237* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) + ++pci:v00008086d000027A0sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027A0sv000017AAsd00002015* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) + +@@ -64373,6 +64451,9 @@ pci:v00008086d000027A1sv0000103Csd0000309F* + pci:v00008086d000027A1sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) + ++pci:v00008086d000027A1sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027A2* + ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller + +@@ -64457,6 +64538,9 @@ pci:v00008086d000027B9sv0000103Csd000030A1* + pci:v00008086d000027B9sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) + ++pci:v00008086d000027B9sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027B9sv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) + +@@ -64568,6 +64652,9 @@ pci:v00008086d000027C4sv00001025sd0000006C* + pci:v00008086d000027C4sv00001028sd000001D7* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) + ++pci:v00008086d000027C4sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027C4sv000017AAsd0000200E* + ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) + +@@ -64625,6 +64712,9 @@ pci:v00008086d000027C8sv00001043sd00008179* + pci:v00008086d000027C8sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) + ++pci:v00008086d000027C8sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027C8sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) + +@@ -64691,6 +64781,9 @@ pci:v00008086d000027C9sv00001043sd00008179* + pci:v00008086d000027C9sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) + ++pci:v00008086d000027C9sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027C9sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) + +@@ -64757,6 +64850,9 @@ pci:v00008086d000027CAsv00001043sd00008179* + pci:v00008086d000027CAsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) + ++pci:v00008086d000027CAsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027CAsv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) + +@@ -64817,6 +64913,9 @@ pci:v00008086d000027CBsv00001043sd00008179* + pci:v00008086d000027CBsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) + ++pci:v00008086d000027CBsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027CBsv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) + +@@ -64880,6 +64979,9 @@ pci:v00008086d000027CCsv00001043sd00008179* + pci:v00008086d000027CCsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) + ++pci:v00008086d000027CCsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027CCsv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) + +@@ -64913,6 +65015,9 @@ pci:v00008086d000027D0sv0000103Csd0000309F* + pci:v00008086d000027D0sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) + ++pci:v00008086d000027D0sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D0sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) + +@@ -64937,6 +65042,9 @@ pci:v00008086d000027D2sv0000103Csd0000309F* + pci:v00008086d000027D2sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) + ++pci:v00008086d000027D2sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D2sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) + +@@ -64952,6 +65060,9 @@ pci:v00008086d000027D2sv00008086sd0000544B* + pci:v00008086d000027D4* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 + ++pci:v00008086d000027D4sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D4sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) + +@@ -64970,6 +65081,9 @@ pci:v00008086d000027D6* + pci:v00008086d000027D6sv0000103Csd000030A3* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) + ++pci:v00008086d000027D6sv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D6sv0000144Dsd0000C072* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) + +@@ -65021,6 +65135,9 @@ pci:v00008086d000027D8sv00001043sd000082EA* + pci:v00008086d000027D8sv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) + ++pci:v00008086d000027D8sv00001071sd00008207* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027D8sv0000107Bsd00005048* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) + +@@ -65099,6 +65216,9 @@ pci:v00008086d000027DAsv00001043sd00008179* + pci:v00008086d000027DAsv0000105Bsd00000D7C* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) + ++pci:v00008086d000027DAsv00001071sd00008209* ++ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Medion MIM 2240 Notebook PC [MD98100]) ++ + pci:v00008086d000027DAsv000010F7sd00008338* + ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) + +@@ -65258,6 +65378,9 @@ pci:v00008086d00002815sv0000104Dsd00009005* + pci:v00008086d00002815sv0000104Dsd0000902D* + ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) + ++pci:v00008086d00002815sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002820* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] + +@@ -65342,6 +65465,9 @@ pci:v00008086d00002829sv0000104Dsd0000902D* + pci:v00008086d00002829sv000017AAsd000020A7* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) + ++pci:v00008086d00002829sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002829sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) + +@@ -65393,6 +65519,9 @@ pci:v00008086d00002830sv00001462sd00007235* + pci:v00008086d00002830sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) + ++pci:v00008086d00002830sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002830sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) + +@@ -65435,6 +65564,9 @@ pci:v00008086d00002831sv00001462sd00007235* + pci:v00008086d00002831sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) + ++pci:v00008086d00002831sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002831sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) + +@@ -65474,6 +65606,9 @@ pci:v00008086d00002832sv0000104Dsd0000902D* + pci:v00008086d00002832sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) + ++pci:v00008086d00002832sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002832sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) + +@@ -65519,6 +65654,9 @@ pci:v00008086d00002834sv00001462sd00007235* + pci:v00008086d00002834sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) + ++pci:v00008086d00002834sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002834sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) + +@@ -65555,6 +65693,9 @@ pci:v00008086d00002835sv0000104Dsd0000902D* + pci:v00008086d00002835sv000017AAsd000020AA* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) + ++pci:v00008086d00002835sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002835sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) + +@@ -65597,6 +65738,9 @@ pci:v00008086d00002836sv00001462sd00007235* + pci:v00008086d00002836sv000017AAsd000020AB* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) + ++pci:v00008086d00002836sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002836sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) + +@@ -65633,6 +65777,9 @@ pci:v00008086d0000283Asv0000104Dsd0000902D* + pci:v00008086d0000283Asv000017AAsd000020AB* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) + ++pci:v00008086d0000283Asv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d0000283Asv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) + +@@ -65669,6 +65816,9 @@ pci:v00008086d0000283Esv00001462sd00007235* + pci:v00008086d0000283Esv000017AAsd000020A9* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) + ++pci:v00008086d0000283Esv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d0000283Esv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) + +@@ -65687,6 +65837,9 @@ pci:v00008086d0000283Fsv0000104Dsd0000902D* + pci:v00008086d0000283Fsv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) + ++pci:v00008086d0000283Fsv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002841* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 + +@@ -65699,6 +65852,9 @@ pci:v00008086d00002841sv0000104Dsd0000902D* + pci:v00008086d00002841sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) + ++pci:v00008086d00002841sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002843* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 + +@@ -65708,12 +65864,18 @@ pci:v00008086d00002843sv0000104Dsd0000902D* + pci:v00008086d00002843sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) + ++pci:v00008086d00002843sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002845* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 + + pci:v00008086d00002845sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) + ++pci:v00008086d00002845sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002847* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 + +@@ -65726,6 +65888,9 @@ pci:v00008086d00002847sv0000103Csd000030C1* + pci:v00008086d00002847sv000017AAsd000020AD* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) + ++pci:v00008086d00002847sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002849* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 + +@@ -65792,6 +65957,9 @@ pci:v00008086d0000284Bsv000014F1sd00005051* + pci:v00008086d0000284Bsv000017AAsd000020AC* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) + ++pci:v00008086d0000284Bsv000017C0sd00004088* ++ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d0000284Bsv00008384sd00007616* + ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) + +@@ -65831,6 +65999,9 @@ pci:v00008086d00002850sv0000104Dsd0000902D* + pci:v00008086d00002850sv000017AAsd000020A6* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) + ++pci:v00008086d00002850sv000017C0sd00004083* ++ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002850sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) + +@@ -66794,6 +66965,9 @@ pci:v00008086d00002A00sv000017AAsd000020B1* + pci:v00008086d00002A00sv000017AAsd000020B3* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) + ++pci:v00008086d00002A00sv000017C0sd00004082* ++ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002A00sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) + +@@ -66821,6 +66995,9 @@ pci:v00008086d00002A02sv0000104Dsd0000902D* + pci:v00008086d00002A02sv000017AAsd000020B5* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) + ++pci:v00008086d00002A02sv000017C0sd00004082* ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002A02sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) + +@@ -66828,7 +67005,7 @@ pci:v00008086d00002A03* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) + + pci:v00008086d00002A03sv00001028sd000001F3* +- ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Inspiron 1420) + + pci:v00008086d00002A03sv0000103Csd000030C0* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) +@@ -66842,6 +67019,9 @@ pci:v00008086d00002A03sv0000104Dsd0000902D* + pci:v00008086d00002A03sv000017AAsd000020B5* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) + ++pci:v00008086d00002A03sv000017C0sd00004082* ++ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Medion WIM 2210 Notebook PC [MD96850]) ++ + pci:v00008086d00002A03sv0000E4BFsd0000CC47* + ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) + +@@ -67317,13 +67497,13 @@ pci:v00008086d00002D10* + ID_MODEL_FROM_DATABASE=Core Processor QPI Link 0 + + pci:v00008086d00002D11* +- ID_MODEL_FROM_DATABASE=Core Processor QPI Physical 0 ++ ID_MODEL_FROM_DATABASE=1st Generation Core Processor QPI Physical 0 + + pci:v00008086d00002D12* +- ID_MODEL_FROM_DATABASE=Core Processor Reserved ++ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved + + pci:v00008086d00002D13* +- ID_MODEL_FROM_DATABASE=Core Processor Reserved ++ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved + + pci:v00008086d00002D81* + ID_MODEL_FROM_DATABASE=Xeon 5600 Series QuickPath Architecture System Address Decoder +@@ -67427,6 +67607,9 @@ pci:v00008086d00002E11* + pci:v00008086d00002E12* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + ++pci:v00008086d00002E12sv000017AAsd00003048* ++ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (ThinkCentre M6258) ++ + pci:v00008086d00002E13* + ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller + +@@ -69317,6 +69500,12 @@ pci:v00008086d00003B09* + pci:v00008086d00003B09sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) + ++pci:v00008086d00003B09sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (R730 Laptop) ++ ++pci:v00008086d00003B09sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B0A* + ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller + +@@ -69416,18 +69605,36 @@ pci:v00008086d00003B26* + pci:v00008086d00003B28* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller + ++pci:v00008086d00003B28sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (R730 Laptop) ++ ++pci:v00008086d00003B28sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B29* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller + + pci:v00008086d00003B29sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) + ++pci:v00008086d00003B29sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (R730 Laptop) ++ ++pci:v00008086d00003B29sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B2C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller + + pci:v00008086d00003B2D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller + ++pci:v00008086d00003B2Dsv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (R730 Laptop) ++ ++pci:v00008086d00003B2Dsv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B2Dsv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) + +@@ -69458,9 +69665,15 @@ pci:v00008086d00003B30sv00001028sd000002DA* + pci:v00008086d00003B30sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) + ++pci:v00008086d00003B30sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (R730 Laptop) ++ + pci:v00008086d00003B30sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B30sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B30sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) + +@@ -69470,6 +69683,12 @@ pci:v00008086d00003B32* + pci:v00008086d00003B32sv00001025sd00000347* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) + ++pci:v00008086d00003B32sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (R730 Laptop) ++ ++pci:v00008086d00003B32sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B34* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller + +@@ -69482,9 +69701,15 @@ pci:v00008086d00003B34sv00001028sd000002DA* + pci:v00008086d00003B34sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + ++pci:v00008086d00003B34sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) ++ + pci:v00008086d00003B34sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B34sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B34sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + +@@ -69518,9 +69743,15 @@ pci:v00008086d00003B3Csv00001028sd000002DA* + pci:v00008086d00003B3Csv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) + ++pci:v00008086d00003B3Csv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) ++ + pci:v00008086d00003B3Csv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B3Csv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B3Csv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) + +@@ -69545,9 +69776,15 @@ pci:v00008086d00003B42sv00001028sd000002DA* + pci:v00008086d00003B42sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) + ++pci:v00008086d00003B42sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (R730 Laptop) ++ + pci:v00008086d00003B42sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) + ++pci:v00008086d00003B42sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B44* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 + +@@ -69557,24 +69794,39 @@ pci:v00008086d00003B44sv00001028sd0000040B* + pci:v00008086d00003B44sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) + ++pci:v00008086d00003B44sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B46* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 + + pci:v00008086d00003B46sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) + ++pci:v00008086d00003B46sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (R730 Laptop) ++ ++pci:v00008086d00003B46sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B48* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 + + pci:v00008086d00003B48sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) + ++pci:v00008086d00003B48sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (R730 Laptop) ++ + pci:v00008086d00003B4A* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 + + pci:v00008086d00003B4Asv00001028sd000002DA* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) + ++pci:v00008086d00003B4Asv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B4C* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 + +@@ -69599,9 +69851,15 @@ pci:v00008086d00003B56sv00001028sd000002DA* + pci:v00008086d00003B56sv00001028sd0000040B* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) + ++pci:v00008086d00003B56sv0000144Dsd0000C06A* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (R730 Laptop) ++ + pci:v00008086d00003B56sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) + ++pci:v00008086d00003B56sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B56sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) + +@@ -69617,6 +69875,9 @@ pci:v00008086d00003B64sv00001025sd00000347* + pci:v00008086d00003B64sv000015D9sd0000060D* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) + ++pci:v00008086d00003B64sv000017C0sd000010D2* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Medion Akoya E7214 Notebook PC [MD98410]) ++ + pci:v00008086d00003B64sv0000E4BFsd000050C1* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) + +@@ -69990,7 +70251,7 @@ pci:v00008086d00004222sv00008086sd00001000* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) + + pci:v00008086d00004222sv00008086sd00001001* +- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) ++ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (WM3945ABG MOW2) + + pci:v00008086d00004222sv00008086sd00001005* + ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) +@@ -71168,6 +71429,114 @@ pci:v00008086d00008C5E* + pci:v00008086d00008C5F* + ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LPC Controller + ++pci:v00008086d00008C80* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C81* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C82* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] ++ ++pci:v00008086d00008C83* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] ++ ++pci:v00008086d00008C84* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C85* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C86* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C87* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C88* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C89* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] ++ ++pci:v00008086d00008C8E* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C8F* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] ++ ++pci:v00008086d00008C90* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 1 ++ ++pci:v00008086d00008C92* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 2 ++ ++pci:v00008086d00008C94* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 3 ++ ++pci:v00008086d00008C96* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 4 ++ ++pci:v00008086d00008C98* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 5 ++ ++pci:v00008086d00008C9A* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 6 ++ ++pci:v00008086d00008C9C* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 7 ++ ++pci:v00008086d00008C9E* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 8 ++ ++pci:v00008086d00008CA0* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HD Audio Controller ++ ++pci:v00008086d00008CA2* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SMBus Controller ++ ++pci:v00008086d00008CA4* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Thermal Controller ++ ++pci:v00008086d00008CA6* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #1 ++ ++pci:v00008086d00008CAD* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #2 ++ ++pci:v00008086d00008CB1* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB xHCI Controller ++ ++pci:v00008086d00008CB3* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LAN Controller ++ ++pci:v00008086d00008CBA* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #1 ++ ++pci:v00008086d00008CBB* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #2 ++ ++pci:v00008086d00008CBC* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family IDE-R Controller ++ ++pci:v00008086d00008CBD* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family KT Controller ++ ++pci:v00008086d00008CC1* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller ++ ++pci:v00008086d00008CC2* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller ++ ++pci:v00008086d00008CC3* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HM97 LPC Controller ++ ++pci:v00008086d00008CC4* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Z97 LPC Controller ++ ++pci:v00008086d00008CC6* ++ ID_MODEL_FROM_DATABASE=9 Series Chipset Family H97 Controller ++ + pci:v00008086d00008D00* + ID_MODEL_FROM_DATABASE=Wellsburg 4-port SATA Controller [IDE mode] + +@@ -71379,208 +71748,208 @@ pci:v00008086d000096A1* + ID_MODEL_FROM_DATABASE=Integrated RAID + + pci:v00008086d00009C00* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] + + pci:v00008086d00009C01* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] + + pci:v00008086d00009C02* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] + + pci:v00008086d00009C03* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] + + pci:v00008086d00009C03sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] (ThinkPad X240) + + pci:v00008086d00009C04* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C05* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C06* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C07* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C08* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] + + pci:v00008086d00009C09* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] + + pci:v00008086d00009C0A* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0B* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0C* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0D* +- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] + + pci:v00008086d00009C0E* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C0F* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] ++ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] + + pci:v00008086d00009C10* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 + + pci:v00008086d00009C11* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 + + pci:v00008086d00009C12* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 + + pci:v00008086d00009C13* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 + + pci:v00008086d00009C14* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 + + pci:v00008086d00009C15* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 + + pci:v00008086d00009C16* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 + + pci:v00008086d00009C17* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 + + pci:v00008086d00009C18* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 + + pci:v00008086d00009C19* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 + + pci:v00008086d00009C1A* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 + + pci:v00008086d00009C1B* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 + + pci:v00008086d00009C1C* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 + + pci:v00008086d00009C1D* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 + + pci:v00008086d00009C1E* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 + + pci:v00008086d00009C1F* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 ++ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 + + pci:v00008086d00009C20* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller ++ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller + + pci:v00008086d00009C20sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller (ThinkPad X240) + + pci:v00008086d00009C21* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller ++ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller + + pci:v00008086d00009C22* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller ++ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller + + pci:v00008086d00009C22sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller (ThinkPad X240) + + pci:v00008086d00009C23* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters ++ ID_MODEL_FROM_DATABASE=8 Series CHAP Counters + + pci:v00008086d00009C24* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP Thermal ++ ID_MODEL_FROM_DATABASE=8 Series Thermal + + pci:v00008086d00009C26* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 ++ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 + + pci:v00008086d00009C26sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 (ThinkPad X240) + + pci:v00008086d00009C2D* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 ++ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #2 + + pci:v00008086d00009C31* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC ++ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC + + pci:v00008086d00009C31sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC (ThinkPad X240) + + pci:v00008086d00009C35* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller ++ ID_MODEL_FROM_DATABASE=8 Series SDIO Controller + + pci:v00008086d00009C36* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP Audio DSP Controller ++ ID_MODEL_FROM_DATABASE=8 Series Audio DSP Controller + + pci:v00008086d00009C3A* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 ++ ID_MODEL_FROM_DATABASE=8 Series HECI #0 + + pci:v00008086d00009C3Asv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series HECI #0 (ThinkPad X240) + + pci:v00008086d00009C3B* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 ++ ID_MODEL_FROM_DATABASE=8 Series HECI #1 + + pci:v00008086d00009C3C* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI IDER ++ ID_MODEL_FROM_DATABASE=8 Series HECI IDER + + pci:v00008086d00009C3D* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI KT ++ ID_MODEL_FROM_DATABASE=8 Series HECI KT + + pci:v00008086d00009C40* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C41* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C42* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C43* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C43sv000017AAsd00002214* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller (ThinkPad X240) + + pci:v00008086d00009C44* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C45* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C46* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C47* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller ++ ID_MODEL_FROM_DATABASE=8 Series LPC Controller + + pci:v00008086d00009C60* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP Low Power Sub-System DMA ++ ID_MODEL_FROM_DATABASE=8 Series Low Power Sub-System DMA + + pci:v00008086d00009C61* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #0 ++ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #0 + + pci:v00008086d00009C62* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #1 ++ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #1 + + pci:v00008086d00009C63* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #0 ++ ID_MODEL_FROM_DATABASE=8 Series UART Controller #0 + + pci:v00008086d00009C64* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #1 ++ ID_MODEL_FROM_DATABASE=8 Series UART Controller #1 + + pci:v00008086d00009C65* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #0 ++ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #0 + + pci:v00008086d00009C66* +- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #1 ++ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #1 + + pci:v00008086d00009C83* + ID_MODEL_FROM_DATABASE=Wildcat Point-LP SATA Controller [AHCI Mode] +diff --git hwdb/20-usb-classes.hwdb hwdb/20-usb-classes.hwdb +index 3294d8a..418d39b 100644 +--- hwdb/20-usb-classes.hwdb ++++ hwdb/20-usb-classes.hwdb +@@ -311,6 +311,9 @@ usb:v*p*d*dcEFdsc02dp02* + usb:v*p*d*dcEFdsc03dp01* + ID_USB_PROTOCOL_FROM_DATABASE=Cable Based Association + ++usb:v*p*d*dcEFdsc05* ++ ID_USB_SUBCLASS_FROM_DATABASE=USB3 Vision ++ + usb:v*p*d*dcFE* + ID_USB_CLASS_FROM_DATABASE=Application Specific Interface + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 05f267d..89cd5b1 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -284,9 +284,18 @@ usb:v03EBp2310* + usb:v03EBp2FE4* + ID_MODEL_FROM_DATABASE=ATxmega32A4U DFU bootloader + ++usb:v03EBp2FE6* ++ ID_MODEL_FROM_DATABASE=Cactus V6 (DFU) ++ ++usb:v03EBp2FEA* ++ ID_MODEL_FROM_DATABASE=Cactus RF60 (DFU) ++ + usb:v03EBp2FF0* + ID_MODEL_FROM_DATABASE=atmega32u2 DFU bootloader + ++usb:v03EBp2FF4* ++ ID_MODEL_FROM_DATABASE=atmega32u4 DFU bootloader ++ + usb:v03EBp2FFA* + ID_MODEL_FROM_DATABASE=at90usb162 DFU bootloader + +@@ -4409,6 +4418,9 @@ usb:v0424p2602* + usb:v0424p2640* + ID_MODEL_FROM_DATABASE=USB 2.0 Hub + ++usb:v0424p2660* ++ ID_MODEL_FROM_DATABASE=Hub ++ + usb:v0424p4060* + ID_MODEL_FROM_DATABASE=Ultra Fast Media Reader + +@@ -5373,7 +5385,7 @@ usb:v0457p0162* + ID_MODEL_FROM_DATABASE=SiS162 usb Wireless LAN Adapter + + usb:v0457p0163* +- ID_MODEL_FROM_DATABASE=802.11 Wireless LAN Adapter ++ ID_MODEL_FROM_DATABASE=SiS163U 802.11 Wireless LAN Adapter + + usb:v0457p0817* + ID_MODEL_FROM_DATABASE=SiS-184-ASUS-4352.17 touch panel +@@ -6947,6 +6959,9 @@ usb:v046Dp082D* + usb:v046Dp0830* + ID_MODEL_FROM_DATABASE=QuickClip + ++usb:v046Dp0837* ++ ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam ++ + usb:v046Dp0840* + ID_MODEL_FROM_DATABASE=QuickCam Express + +@@ -7856,6 +7871,9 @@ usb:v046DpC52F* + usb:v046DpC532* + ID_MODEL_FROM_DATABASE=Unifying Receiver + ++usb:v046DpC534* ++ ID_MODEL_FROM_DATABASE=Unifying Receiver ++ + usb:v046DpC603* + ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT + +@@ -8738,6 +8756,9 @@ usb:v0480pA007* + usb:v0480pA009* + ID_MODEL_FROM_DATABASE=Stor.E Basics + ++usb:v0480pA00D* ++ ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB ++ + usb:v0480pD010* + ID_MODEL_FROM_DATABASE=External Disk 3TB + +@@ -10943,6 +10964,9 @@ usb:v04A9p3196* + usb:v04A9p319A* + ID_MODEL_FROM_DATABASE=EOS 7D + ++usb:v04A9p319B* ++ ID_MODEL_FROM_DATABASE=EOS 50D ++ + usb:v04A9p31AA* + ID_MODEL_FROM_DATABASE=SELPHY CP770 + +@@ -11219,6 +11243,15 @@ usb:v04A9p3277* + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + ++usb:v04A9p327F* ++ ID_MODEL_FROM_DATABASE=EOS Rebel T5 / EOS 1200D / EOS Kiss X70 ++ ++usb:v04A9p3284* ++ ID_MODEL_FROM_DATABASE=PowerShot D30 ++ ++usb:v04A9p3286* ++ ID_MODEL_FROM_DATABASE=PowerShot SX600 HS ++ + usb:v04A9p3288* + ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 + +@@ -13040,6 +13073,9 @@ usb:v04D8p0036* + usb:v04D8p00E0* + ID_MODEL_FROM_DATABASE=PIC32 Starter Board + ++usb:v04D8p04CD* ++ ID_MODEL_FROM_DATABASE=28Cxxx EEPROM Programmer ++ + usb:v04D8p0A04* + ID_MODEL_FROM_DATABASE=AGP LIN Serial Analyzer + +@@ -14093,6 +14129,9 @@ usb:v04E8p5F05* + usb:v04E8p6032* + ID_MODEL_FROM_DATABASE=G2 Portable hard drive + ++usb:v04E8p6033* ++ ID_MODEL_FROM_DATABASE=G2 Portable device ++ + usb:v04E8p6034* + ID_MODEL_FROM_DATABASE=G2 Portable hard drive + +@@ -14102,6 +14141,9 @@ usb:v04E8p60B3* + usb:v04E8p60C4* + ID_MODEL_FROM_DATABASE=M2 Portable Hard Drive USB 3.0 + ++usb:v04E8p6124* ++ ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive ++ + usb:v04E8p61B6* + ID_MODEL_FROM_DATABASE=M3 Portable Hard Drive 1TB + +@@ -15224,6 +15266,9 @@ usb:v04F9p0223* + usb:v04F9p0248* + ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer + ++usb:v04F9p02B3* ++ ID_MODEL_FROM_DATABASE=MFC J4510DW ++ + usb:v04F9p1000* + ID_MODEL_FROM_DATABASE=Printer + +@@ -15546,7 +15591,7 @@ usb:v050Dp0013* + ID_MODEL_FROM_DATABASE=F8T013 Bluetooth Adapter + + usb:v050Dp0017* +- ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 ++ ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 / F4U017 USB 2.0 7-port Hub + + usb:v050Dp003A* + ID_MODEL_FROM_DATABASE=Universal Media Reader +@@ -15683,6 +15728,9 @@ usb:v050Dp1106* + usb:v050Dp1109* + ID_MODEL_FROM_DATABASE=F9L1109v1 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] + ++usb:v050Dp110A* ++ ID_MODEL_FROM_DATABASE=F9L1101v2 802.11abgn Wireless Adapter [Realtek RTL8192DU] ++ + usb:v050Dp11F2* + ID_MODEL_FROM_DATABASE=ISY Wireless Micro Adapter IWL 2000 [RTL8188CUS] + +@@ -15723,7 +15771,7 @@ usb:v050Dp6051* + ID_MODEL_FROM_DATABASE=F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201] + + usb:v050Dp615A* +- ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101 802.11abgn Wireless Adapter [Broadcom BCM4323] ++ ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101v1 802.11abgn Wireless Adapter [Broadcom BCM4323] + + usb:v050Dp7050* + ID_MODEL_FROM_DATABASE=F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887] +@@ -16358,6 +16406,9 @@ usb:v0547p2810* + usb:v0547p4D90* + ID_MODEL_FROM_DATABASE=AmScope MD1900 camera + ++usb:v0547p7000* ++ ID_MODEL_FROM_DATABASE=PowerSpec MCE460 Front Panel LED Display ++ + usb:v0547p7777* + ID_MODEL_FROM_DATABASE=Bluetooth Device + +@@ -21677,6 +21728,9 @@ usb:v05F9p2601* + usb:v05F9p2602* + ID_MODEL_FROM_DATABASE=Datalogic Magellan 1100i Barcode Scanner + ++usb:v05F9p4204* ++ ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4470 Fixed Scanner ++ + usb:v05F9p5204* + ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4170 (config mode) + +@@ -23234,6 +23288,9 @@ usb:v068Ep00D3* + usb:v068Ep00E2* + ID_MODEL_FROM_DATABASE=HFX OEM Joystick + ++usb:v068Ep00F0* ++ ID_MODEL_FROM_DATABASE=Multi-Function Panel ++ + usb:v068Ep00F1* + ID_MODEL_FROM_DATABASE=Pro Throttle + +@@ -25838,6 +25895,9 @@ usb:v0781p74D0* + usb:v0781p74D1* + ID_MODEL_FROM_DATABASE=Sansa Clip+ (msc) + ++usb:v0781p74E5* ++ ID_MODEL_FROM_DATABASE=Sansa Clip Zip ++ + usb:v0781p8181* + ID_MODEL_FROM_DATABASE=Pen Flash + +@@ -26219,6 +26279,9 @@ usb:v07AAp001A* + usb:v07AAp001C* + ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] + ++usb:v07AAp0020* ++ ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] ++ + usb:v07AAp002E* + ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] + +@@ -26939,6 +27002,9 @@ usb:v07CApA827* + usb:v07CApA867* + ID_MODEL_FROM_DATABASE=AVerTV DVB-T (A867) + ++usb:v07CApB300* ++ ID_MODEL_FROM_DATABASE=A300 DVB-T TV receiver ++ + usb:v07CApB800* + ID_MODEL_FROM_DATABASE=MR800 FM Radio + +@@ -27941,6 +28007,9 @@ usb:v083Ap4507* + usb:v083Ap4521* + ID_MODEL_FROM_DATABASE=Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887] + ++usb:v083Ap4531* ++ ID_MODEL_FROM_DATABASE=T-Com Sinus 154 data II [Intersil ISL3887] ++ + usb:v083Ap5046* + ID_MODEL_FROM_DATABASE=SpeedStream 10/100 Ethernet [pegasus] + +@@ -30476,6 +30545,9 @@ usb:v0957p0518* + usb:v0957p0A07* + ID_MODEL_FROM_DATABASE=34411A Multimeter + ++usb:v0957p1507* ++ ID_MODEL_FROM_DATABASE=33210A Waveform Generator ++ + usb:v0957p1745* + ID_MODEL_FROM_DATABASE=Test and Measurement Device (IVI) + +@@ -30876,13 +30948,13 @@ usb:v09D9* + ID_VENDOR_FROM_DATABASE=KRF Tech, Ltd + + usb:v09DA* +- ID_VENDOR_FROM_DATABASE=A4 Tech Co., Ltd ++ ID_VENDOR_FROM_DATABASE=A4Tech Co., Ltd. + + usb:v09DAp0006* + ID_MODEL_FROM_DATABASE=Optical Mouse WOP-35 / Trust 450L Optical Mouse + + usb:v09DAp000A* +- ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D ++ ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D / OP-620D + + usb:v09DAp000E* + ID_MODEL_FROM_DATABASE=X-F710F Optical Mouse 3xFire Gaming Mouse +@@ -32174,6 +32246,9 @@ usb:v0AB1* + usb:v0AB1p0002* + ID_MODEL_FROM_DATABASE=OBID RFID-Reader + ++usb:v0AB1p0004* ++ ID_MODEL_FROM_DATABASE=OBID classic-pro ++ + usb:v0ABA* + ID_VENDOR_FROM_DATABASE=Ellisys + +@@ -32571,7 +32646,7 @@ usb:v0B05p1708* + ID_MODEL_FROM_DATABASE=Mass Storage Device + + usb:v0B05p170B* +- ID_MODEL_FROM_DATABASE=Mass Storage Device ++ ID_MODEL_FROM_DATABASE=Multi card reader + + usb:v0B05p170C* + ID_MODEL_FROM_DATABASE=WL-159g 802.11bg +@@ -32687,6 +32762,9 @@ usb:v0B05p17A1* + usb:v0B05p17AB* + ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] + ++usb:v0B05p17C7* ++ ID_MODEL_FROM_DATABASE=WL-330NUL ++ + usb:v0B05p17C9* + ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] + +@@ -32714,6 +32792,9 @@ usb:v0B05p5410* + usb:v0B05p5412* + ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) + ++usb:v0B05p550F* ++ ID_MODEL_FROM_DATABASE=ASUS fonepad 7 ++ + usb:v0B05p6101* + ID_MODEL_FROM_DATABASE=Cable Modem + +@@ -32756,6 +32837,9 @@ usb:v0B0Dp0000* + usb:v0B0E* + ID_VENDOR_FROM_DATABASE=GN Netcom + ++usb:v0B0Ep034C* ++ ID_MODEL_FROM_DATABASE=Jabra UC Voice 750 MS ++ + usb:v0B0Ep0420* + ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 + +@@ -49610,6 +49694,12 @@ usb:v2659p1212* + usb:v2659p1213* + ID_MODEL_FROM_DATABASE=MediaTV Pro III MiniPCIe (US) + ++usb:v2676* ++ ID_VENDOR_FROM_DATABASE=Basler AG ++ ++usb:v2676pBA02* ++ ID_MODEL_FROM_DATABASE=ace ++ + usb:v2730* + ID_VENDOR_FROM_DATABASE=Citizen + +-- +1.7.9.2 + diff --git a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch new file mode 100644 index 00000000..aa974fa7 --- /dev/null +++ b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch @@ -0,0 +1,70 @@ +From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:07:29 -0500 +Subject: [PATCH] journal: assume that next entry is after previous entry + +With a corrupted file, we can get in a situation where two entries +in the entry array point to the same object. Then journal_file_next_entry +will find the first one using generic_arrray_bisect, and try to move to +the second one, but since the address is the same, generic_array_get will +return the first one. journal_file_next_entry ends up in an infinite loop. + +https://bugzilla.redhat.com/show_bug.cgi?id=1047039 +--- + src/journal/journal-file.c | 26 ++++++++++++++++++++------ + 1 file changed, 20 insertions(+), 6 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 5876733..0e1fc7f 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st + } + + typedef struct ChainCacheItem { +- uint64_t first; /* the array at the begin of the chain */ ++ uint64_t first; /* the array at the beginning of the chain */ + uint64_t array; /* the cached array */ + uint64_t begin; /* the first item in the cached array */ + uint64_t total; /* the total number of items in all arrays before this one in the chain */ +@@ -1945,7 +1945,7 @@ int journal_file_next_entry( + direction_t direction, + Object **ret, uint64_t *offset) { + +- uint64_t i, n; ++ uint64_t i, n, ofs; + int r; + + assert(f); +@@ -1986,10 +1986,24 @@ int journal_file_next_entry( + } + + /* And jump to it */ +- return generic_array_get(f, +- le64toh(f->header->entry_array_offset), +- i, +- ret, offset); ++ r = generic_array_get(f, ++ le64toh(f->header->entry_array_offset), ++ i, ++ ret, &ofs); ++ if (r <= 0) ++ return r; ++ ++ if (p > 0 && ++ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { ++ log_debug("%s: entry array corrupted at entry %"PRIu64, ++ f->path, i); ++ return -EBADMSG; ++ } ++ ++ if (offset) ++ *offset = ofs; ++ ++ return 1; + } + + int journal_file_skip_entry( +-- +1.7.9.2 + diff --git a/0006-journald-fix-minor-memory-leak.patch b/0006-journald-fix-minor-memory-leak.patch new file mode 100644 index 00000000..72d2ab39 --- /dev/null +++ b/0006-journald-fix-minor-memory-leak.patch @@ -0,0 +1,24 @@ +From 99d0966e75a984bed4f117c888ecc93e16e7b7b6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Nov 2014 21:11:16 +0100 +Subject: [PATCH] journald: fix minor memory leak + +--- + src/journal/journald-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/journal/journald-server.c src/journal/journald-server.c +index e062427..cf6bbcc 100644 +--- src/journal/journald-server.c ++++ src/journal/journald-server.c +@@ -1690,6 +1690,7 @@ void server_done(Server *s) { + free(s->buffer); + free(s->tty_path); + free(s->cgroup_root); ++ free(s->hostname_field); + + if (s->mmap) + mmap_cache_unref(s->mmap); +-- +1.7.9.2 + diff --git a/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch b/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch new file mode 100644 index 00000000..e76abb48 --- /dev/null +++ b/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch @@ -0,0 +1,29 @@ +From e683212f049ac5d3f95fb17300cfa2fd971f78f3 Mon Sep 17 00:00:00 2001 +From: Ronny Chevalier +Date: Tue, 3 Jun 2014 19:44:03 +0200 +Subject: [PATCH] log: honour the kernel's quiet cmdline argument + +It was forgotten in b1e90ec515408aec2702522f6f68c4920b56375b + +See https://bugs.freedesktop.org/show_bug.cgi?id=79582 +--- + src/shared/log.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/shared/log.c src/shared/log.c +index 9039db3..6f17705 100644 +--- src/shared/log.c ++++ src/shared/log.c +@@ -878,6 +878,9 @@ void log_parse_environment(void) { + if (l == 5 && startswith(w, "debug")) { + log_set_max_level(LOG_DEBUG); + break; ++ } else if (l == 5 && startswith(w, "quiet")) { ++ log_set_max_level(LOG_WARNING); ++ break; + } + } + } +-- +1.7.9.2 + diff --git a/0006-login-add-mir-to-the-list-of-session-types.patch b/0006-login-add-mir-to-the-list-of-session-types.patch new file mode 100644 index 00000000..9e966958 --- /dev/null +++ b/0006-login-add-mir-to-the-list-of-session-types.patch @@ -0,0 +1,90 @@ +From 9541666b8d97f107335dd7e3cb93b4d2cfbf19c9 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Wed, 9 Apr 2014 21:22:48 +0200 +Subject: [PATCH] login: add 'mir' to the list of session types + +Add Mir to the list of session types. This is implemented for LightDM +in lp:~robert-ancell/lightdm/xdg-session-desktop [1]. + +[1] https://code.launchpad.net/~robert-ancell/lightdm/xdg-session-desktop/+merge/214108 + +(david: adjusted commit-header and fixed whitespace issues) +--- + man/pam_systemd.xml | 5 +++-- + man/sd_session_is_active.xml | 6 +++--- + src/login/logind-session.c | 1 + + src/login/logind-session.h | 1 + + src/systemd/sd-login.h | 2 +- + 5 files changed, 9 insertions(+), 6 deletions(-) + +diff --git man/pam_systemd.xml man/pam_systemd.xml +index 3022cdb..f973899 100644 +--- man/pam_systemd.xml ++++ man/pam_systemd.xml +@@ -145,8 +145,9 @@ + variable takes precedence. One of + unspecified, + tty, +- x11 or +- wayland. See ++ x11, ++ wayland or ++ mir. See + sd_session_get_type3 + for details about the session type. + +diff --git man/sd_session_is_active.xml man/sd_session_is_active.xml +index ddb2bee..31a6119 100644 +--- man/sd_session_is_active.xml ++++ man/sd_session_is_active.xml +@@ -201,9 +201,9 @@ + be used to determine the type of the session + identified by the specified session identifier. The + returned string is one of x11, +- wayland, tty or +- unspecified and needs to be freed +- with the libc ++ wayland, tty, ++ mir or unspecified and ++ needs to be freed with the libc + free3 + call after use. + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-05-20 12:49:07.150236121 +0000 +@@ -1124,6 +1124,7 @@ static const char* const session_type_ta + [SESSION_TTY] = "tty", + [SESSION_X11] = "x11", + [SESSION_WAYLAND] = "wayland", ++ [SESSION_MIR] = "mir", + [SESSION_UNSPECIFIED] = "unspecified", + }; + +diff --git src/login/logind-session.h src/login/logind-session.h +index c9af5eb..7ecc9f0 100644 +--- src/login/logind-session.h ++++ src/login/logind-session.h +@@ -55,6 +55,7 @@ typedef enum SessionType { + SESSION_TTY, + SESSION_X11, + SESSION_WAYLAND, ++ SESSION_MIR, + _SESSION_TYPE_MAX, + _SESSION_TYPE_INVALID = -1 + } SessionType; +diff --git src/systemd/sd-login.h src/systemd/sd-login.h +index a4ca231..776733a 100644 +--- src/systemd/sd-login.h ++++ src/systemd/sd-login.h +@@ -138,7 +138,7 @@ int sd_session_get_seat(const char *session, char **seat); + /* Determine the (PAM) service name this session was registered by. */ + int sd_session_get_service(const char *session, char **service); + +-/* Determine the type of this session, i.e. one of "tty", "x11" or "unspecified". */ ++/* Determine the type of this session, i.e. one of "tty", "x11", "wayland", "mir" or "unspecified". */ + int sd_session_get_type(const char *session, char **type); + + /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ +-- +1.7.9.2 + diff --git a/0006-login-share-VT-signal-handler-between-sessions.patch b/0006-login-share-VT-signal-handler-between-sessions.patch new file mode 100644 index 00000000..599aa261 --- /dev/null +++ b/0006-login-share-VT-signal-handler-between-sessions.patch @@ -0,0 +1,246 @@ +Based on 92683ad2e28c79891e4123d9a421b018dc58870c Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Mon, 11 Aug 2014 18:17:54 +0200 +Subject: [PATCH] login: share VT-signal handler between sessions + +sd-event does not allow multiple handlers for a single signal. However, +logind sets up signal handlers for each session with VT_PROCESS set (that +is, it has an active controller). Therefore, registering multiple such +controllers will fail. + +Lets make the VT-handler global, as it's mostly trivial, anyway. This way, +the sessions don't have to take care of that and we can simply acknowledge +all VT-switch requests as we always did. +--- + src/libsystemd/sd-event/sd-event.c | 5 +- + src/login/logind-session.c | 26 +------------ + src/login/logind-session.h | 1 + src/login/logind.c | 70 +++++++++++++++++++++++++++++++++++++ + src/shared/util.c | 18 +++++++++ + src/shared/util.h | 1 + 6 files changed, 94 insertions(+), 27 deletions(-) + +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c 2014-08-26 11:02:54.500683967 +0000 +@@ -839,7 +839,6 @@ _public_ int sd_event_add_signal( + assert_return(sig > 0, -EINVAL); + assert_return(sig < _NSIG, -EINVAL); + assert_return(callback, -EINVAL); +- assert_return(ret, -EINVAL); + assert_return(e->state != SD_EVENT_FINISHED, -ESTALE); + assert_return(!event_pid_changed(e), -ECHILD); + +@@ -877,7 +876,9 @@ _public_ int sd_event_add_signal( + } + } + +- *ret = s; ++ if (ret) ++ *ret = s; ++ + return 0; + } + +--- src/login/logind-session.c ++++ src/login/logind-session.c 2014-08-25 17:22:46.000000000 +0000 +@@ -153,8 +153,6 @@ void session_free(Session *s) { + + hashmap_remove(s->manager->sessions, s->id); + +- s->vt_source = sd_event_source_unref(s->vt_source); +- + free(s->state_file); + free(s); + } +@@ -966,19 +964,9 @@ static int session_open_vt(Session *s) { + return s->vtfd; + } + +-static int session_vt_fn(sd_event_source *source, const struct signalfd_siginfo *si, void *data) { +- Session *s = data; +- +- if (s->vtfd >= 0) +- ioctl(s->vtfd, VT_RELDISP, 1); +- +- return 0; +-} +- + int session_mute_vt(Session *s) { + int vt, r; + struct vt_mode mode = { 0 }; +- sigset_t mask; + + if (s->vtnr < 1) + return 0; +@@ -1008,20 +996,12 @@ int session_mute_vt(Session *s) { + goto error; + } + +- sigemptyset(&mask); +- sigaddset(&mask, SIGUSR1); +- sigprocmask(SIG_BLOCK, &mask, NULL); +- +- r = sd_event_add_signal(s->manager->event, &s->vt_source, SIGUSR1, session_vt_fn, s); +- if (r < 0) +- goto error; +- + /* Oh, thanks to the VT layer, VT_AUTO does not work with KD_GRAPHICS. + * So we need a dummy handler here which just acknowledges *all* VT + * switch requests. */ + mode.mode = VT_PROCESS; +- mode.relsig = SIGUSR1; +- mode.acqsig = SIGUSR1; ++ mode.relsig = SIGRTMIN; ++ mode.acqsig = SIGRTMIN + 1; + r = ioctl(vt, VT_SETMODE, &mode); + if (r < 0) { + r = -errno; +@@ -1045,8 +1025,6 @@ void session_restore_vt(Session *s) { + if (vt < 0) + return; + +- s->vt_source = sd_event_source_unref(s->vt_source); +- + ioctl(vt, KDSETMODE, KD_TEXT); + + if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1') +--- src/login/logind-session.h ++++ src/login/logind-session.h 2014-08-25 00:00:00.000000000 +0000 +@@ -98,7 +98,6 @@ struct Session { + Seat *seat; + unsigned int vtnr; + int vtfd; +- sd_event_source *vt_source; + + pid_t leader; + uint32_t audit_id; +--- src/login/logind.c ++++ src/login/logind.c 2014-08-26 11:18:41.422235366 +0000 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + + #include "sd-daemon.h" +@@ -714,6 +715,47 @@ static int manager_connect_bus(Manager * + return 0; + } + ++static int manager_vt_switch(sd_event_source *src, const struct signalfd_siginfo *si, void *data) { ++ Manager *m = data; ++ Session *active, *iter; ++ ++ /* ++ * We got a VT-switch signal and we have to acknowledge it immediately. ++ * Preferably, we'd just use m->seat0->active->vtfd, but unfortunately, ++ * old user-space might run multiple sessions on a single VT, *sigh*. ++ * Therefore, we have to iterate all sessions and find one with a vtfd ++ * on the requested VT. ++ * As only VTs with active controllers have VT_PROCESS set, our current ++ * notion of the active VT might be wrong (for instance if the switch ++ * happens while we setup VT_PROCESS). Therefore, read the current VT ++ * first and then use s->active->vtnr as reference. Note that this is ++ * not racy, as no further VT-switch can happen as long as we're in ++ * synchronous VT_PROCESS mode. ++ */ ++ ++ assert(m->seat0); ++ seat_read_active_vt(m->seat0); ++ ++ active = m->seat0->active; ++ if (!active || active->vtnr < 1) { ++ log_warning("Received VT_PROCESS signal without a registered session on that VT."); ++ return 0; ++ } ++ ++ if (active->vtfd >= 0) { ++ ioctl(active->vtfd, VT_RELDISP, 1); ++ } else { ++ LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { ++ if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { ++ ioctl(iter->vtfd, VT_RELDISP, 1); ++ break; ++ } ++ } ++ } ++ ++ return 0; ++} ++ + static int manager_connect_console(Manager *m) { + int r; + +@@ -744,6 +786,34 @@ static int manager_connect_console(Manag + return r; + } + ++ /* ++ * SIGRTMIN is used as global VT-release signal, SIGRTMIN + 1 is used ++ * as VT-acquire signal. We ignore any acquire-events (yes, we still ++ * have to provide a valid signal-number for it!) and acknowledge all ++ * release events immediately. ++ */ ++ ++ if (SIGRTMIN + 1 > SIGRTMAX) { ++ log_error("Not enough real-time signals available: %u-%u", SIGRTMIN, SIGRTMAX); ++ return -EINVAL; ++ } ++ ++ r = ignore_signals(SIGRTMIN + 1, -1); ++ if (r < 0) { ++ log_error("Cannot ignore SIGRTMIN + 1: %s", strerror(-r)); ++ return r; ++ } ++ ++ r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1); ++ if (r < 0) { ++ log_error("Cannot block SIGRTMIN: %s", strerror(-r)); ++ return r; ++ } ++ ++ r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m); ++ if (r < 0) ++ return r; ++ + return 0; + } + +--- src/shared/util.c ++++ src/shared/util.c 2014-08-26 10:20:14.000000000 +0000 +@@ -2434,6 +2434,24 @@ void sigset_add_many(sigset_t *ss, ...) + va_end(ap); + } + ++int sigprocmask_many(int how, ...) { ++ va_list ap; ++ sigset_t ss; ++ int sig; ++ ++ assert_se(sigemptyset(&ss) == 0); ++ ++ va_start(ap, how); ++ while ((sig = va_arg(ap, int)) > 0) ++ assert_se(sigaddset(&ss, sig) == 0); ++ va_end(ap); ++ ++ if (sigprocmask(how, &ss, NULL) < 0) ++ return -errno; ++ ++ return 0; ++} ++ + char* gethostname_malloc(void) { + struct utsname u; + +--- src/shared/util.h ++++ src/shared/util.h 2014-08-26 10:21:08.000000000 +0000 +@@ -390,6 +390,7 @@ char* dirname_malloc(const char *path); + void rename_process(const char name[8]); + + void sigset_add_many(sigset_t *ss, ...); ++int sigprocmask_many(int how, ...); + + bool hostname_is_set(void); + diff --git a/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch b/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch new file mode 100644 index 00000000..4313946b --- /dev/null +++ b/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch @@ -0,0 +1,39 @@ +From 33169701b0640d3629d4c36cf8c71dc26d2cb7e1 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 May 2014 01:33:22 +0200 +Subject: [PATCH] man: clarify that the ExecReload= command should be + synchronous + +http://lists.freedesktop.org/archives/systemd-devel/2014-May/019054.html +--- + man/systemd.service.xml | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git man/systemd.service.xml man/systemd.service.xml +index af32ccb..364ad7d 100644 +--- man/systemd.service.xml ++++ man/systemd.service.xml +@@ -519,6 +519,20 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} + following: + + /bin/kill -HUP $MAINPID ++ ++ Note however that reloading a ++ daemon by sending a signal (as with ++ the example line above) is usually not ++ a good choice, because this is an ++ asynchronous operation and hence not ++ suitable to order reloads of multiple ++ services against each other. It is ++ strongly recommended to set ++ ExecReload= to a ++ command that no only triggers a ++ configuration reload of the daemon, ++ but also synchronously waits for it ++ complete. + + + +-- +1.7.9.2 + diff --git a/0006-parse_boolean-require-exact-matches.patch b/0006-parse_boolean-require-exact-matches.patch new file mode 100644 index 00000000..2c279f99 --- /dev/null +++ b/0006-parse_boolean-require-exact-matches.patch @@ -0,0 +1,48 @@ +From 0f625d0b87139fc18cd565c9b6da05c53a0eb7ab Mon Sep 17 00:00:00 2001 +From: Ansgar Burchardt +Date: Sun, 27 Jul 2014 15:19:00 +0200 +Subject: [PATCH] parse_boolean: require exact matches + +Require exact matches in all cases instead of treating strings +starting with 't' ('f') as true (false). + +This is required for config_parse_protect_system to parse ProtectSystem=full +correctly: it uses parse_boolean and only tries a more specific parsing +function if that did not return a valid result. Thus "full" was treated as +"false" before. +--- + src/shared/util.c | 4 ++-- + src/test/test-util.c | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git src/shared/util.c src/shared/util.c +index 4fda31c..49c17ef 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -231,9 +231,9 @@ int unlink_noerrno(const char *path) { + int parse_boolean(const char *v) { + assert(v); + +- if (streq(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || strcaseeq(v, "on")) ++ if (streq(v, "1") || strcaseeq(v, "yes") || strcaseeq(v, "y") || strcaseeq(v, "true") || strcaseeq(v, "t") || strcaseeq(v, "on")) + return 1; +- else if (streq(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || strcaseeq(v, "off")) ++ else if (streq(v, "0") || strcaseeq(v, "no") || strcaseeq(v, "n") || strcaseeq(v, "false") || strcaseeq(v, "f") || strcaseeq(v, "off")) + return 0; + + return -EINVAL; +diff --git src/test/test-util.c src/test/test-util.c +index ed91a67..9a28ef9 100644 +--- src/test/test-util.c ++++ src/test/test-util.c +@@ -129,6 +129,7 @@ static void test_parse_boolean(void) { + + assert_se(parse_boolean("garbage") < 0); + assert_se(parse_boolean("") < 0); ++ assert_se(parse_boolean("full") < 0); + } + + static void test_parse_pid(void) { +-- +1.7.9.2 + diff --git a/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch b/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch new file mode 100644 index 00000000..ce18d6c5 --- /dev/null +++ b/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch @@ -0,0 +1,30 @@ +From ebc54302d7fc70927d5dc119e178ff03f6a911ed Mon Sep 17 00:00:00 2001 +From: Peter Rajnoha +Date: Mon, 10 Mar 2014 22:58:14 +0100 +Subject: [PATCH] rules: mark loop device as SYSTEMD_READY=0 if no file is + attached + +Check existence of loop/backing_file in sysfs and mark loop devices with +SYSTEMD_READY if missing. Such loop files is uninitialized and it's not +ready for use yet (there's no file attached). +--- + rules/99-systemd.rules.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in +index 021359a..04a59c4 100644 +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in +@@ -22,6 +22,9 @@ SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_T + SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" + SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" + ++# Ignore loop devices that don't have any file attached ++SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" ++ + # Ignore nbd devices in the "add" event, with "change" the nbd is ready + ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" + +-- +1.7.9.2 + diff --git a/0006-sd-event-initialization-perturbation-value-right-bef.patch b/0006-sd-event-initialization-perturbation-value-right-bef.patch new file mode 100644 index 00000000..a561cabb --- /dev/null +++ b/0006-sd-event-initialization-perturbation-value-right-bef.patch @@ -0,0 +1,75 @@ +From 52444dc478fe38b5b69a771923ab429a41927aa5 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 24 Mar 2014 23:54:21 +0100 +Subject: [PATCH] sd-event: initialization perturbation value right before we + use it + +That way, we don't forget to initialize it when the watchdog is +initialized before all event sources. +--- + src/libsystemd/sd-event/sd-event.c | 34 +++++++++++++++++++++------------- + 1 file changed, 21 insertions(+), 13 deletions(-) + +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c 2014-03-28 12:44:05.652327044 +0000 +@@ -648,13 +648,31 @@ _public_ int sd_event_add_io( + return 0; + } + ++static void initialize_perturb(sd_event *e) { ++ sd_id128_t bootid = {}; ++ ++ /* When we sleep for longer, we try to realign the wakeup to ++ the same time wihtin each minute/second/250ms, so that ++ events all across the system can be coalesced into a single ++ CPU wakeup. However, let's take some system-specific ++ randomness for this value, so that in a network of systems ++ with synced clocks timer events are distributed a ++ bit. Here, we calculate a perturbation usec offset from the ++ boot ID. */ ++ ++ if (_likely_(e->perturb != (usec_t) -1)) ++ return; ++ ++ if (sd_id128_get_boot(&bootid) >= 0) ++ e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; ++} ++ + static int event_setup_timer_fd( + sd_event *e, + EventSourceType type, + int *timer_fd, + clockid_t id) { + +- sd_id128_t bootid = {}; + struct epoll_event ev = {}; + int r, fd; + +@@ -677,18 +695,6 @@ static int event_setup_timer_fd( + return -errno; + } + +- /* When we sleep for longer, we try to realign the wakeup to +- the same time wihtin each minute/second/250ms, so that +- events all across the system can be coalesced into a single +- CPU wakeup. However, let's take some system-specific +- randomness for this value, so that in a network of systems +- with synced clocks timer events are distributed a +- bit. Here, we calculate a perturbation usec offset from the +- boot ID. */ +- +- if (sd_id128_get_boot(&bootid) >= 0) +- e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; +- + *timer_fd = fd; + return 0; + } +@@ -1506,6 +1512,8 @@ static usec_t sleep_between(sd_event *e, + if (b <= a + 1) + return a; + ++ initialize_perturb(e); ++ + /* + Find a good time to wake up again between times a and b. We + have two goals here: diff --git a/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch b/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch new file mode 100644 index 00000000..0dec2f61 --- /dev/null +++ b/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch @@ -0,0 +1,24 @@ +From 8e8af4cfc7fa373504a22e58966909161acfb72f Mon Sep 17 00:00:00 2001 +From: Emil Renner Berthing +Date: Thu, 18 Sep 2014 15:24:43 +0200 +Subject: [PATCH] shared/sparse-endian.h: add missing byteswap.h include + +--- + src/shared/sparse-endian.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/sparse-endian.h src/shared/sparse-endian.h +index eb4dbf3..c913fda 100644 +--- src/shared/sparse-endian.h ++++ src/shared/sparse-endian.h +@@ -21,6 +21,7 @@ + #ifndef SPARSE_ENDIAN_H + #define SPARSE_ENDIAN_H + ++#include + #include + #include + +-- +1.7.9.2 + diff --git a/0006-systemctl-fix-resource-leak-CID-1237747.patch b/0006-systemctl-fix-resource-leak-CID-1237747.patch new file mode 100644 index 00000000..f8ec6af1 --- /dev/null +++ b/0006-systemctl-fix-resource-leak-CID-1237747.patch @@ -0,0 +1,35 @@ +From 48a2900c6612052149a1d0dd88aeacb99b49ce4d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Wed, 17 Sep 2014 21:56:25 -0300 +Subject: [PATCH] systemctl: fix resource leak CID #1237747 + +..by simply moving the declaration of "unit" into the STRV_FOREACH +loop as suggested by Andreas. +--- + src/systemctl/systemctl.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 88be871..9012128 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -4449,7 +4449,6 @@ static int show(sd_bus *bus, char **args) { + } + + static int cat(sd_bus *bus, char **args) { +- _cleanup_free_ char *unit = NULL; + _cleanup_strv_free_ char **names = NULL; + char **name; + bool first = true; +@@ -4468,6 +4467,8 @@ static int cat(sd_bus *bus, char **args) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_strv_free_ char **dropin_paths = NULL; + _cleanup_free_ char *fragment_path = NULL; ++ _cleanup_free_ char *unit = NULL; ++ + char **path; + + unit = unit_dbus_path_from_name(*name); +-- +1.7.9.2 + diff --git a/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch b/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch new file mode 100644 index 00000000..b1fc0988 --- /dev/null +++ b/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch @@ -0,0 +1,37 @@ +Based on b4af5a803aa71a57733ca46fef29b7afb20a626c Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:33:26 +0200 +Subject: [PATCH] systemctl: show StatusErrno value in "systemctl status" + +--- + src/systemctl/systemctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-07-08 10:57:30.170735691 +0000 +@@ -2710,6 +2710,7 @@ typedef struct UnitStatusInfo { + const char *status_text; + const char *pid_file; + bool running:1; ++ int status_errno; + + usec_t start_timestamp; + usec_t exit_timestamp; +@@ -2982,6 +2983,8 @@ static void print_status_info( + + if (i->status_text) + printf(" Status: \"%s\"\n", i->status_text); ++ if (i->status_errno > 0) ++ printf(" Error: %i (%s)\n", i->status_errno, strerror(i->status_errno)); + + if (i->control_group && + (i->main_pid > 0 || i->control_pid > 0 || cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, i->control_group, false) == 0)) { +@@ -3203,6 +3206,8 @@ static int status_property(const char *n + i->exit_code = (int) j; + else if (streq(name, "ExecMainStatus")) + i->exit_status = (int) j; ++ else if (streq(name, "StatusErrno")) ++ i->status_errno = (int) j; + + break; + } diff --git a/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch b/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch new file mode 100644 index 00000000..8647f1e1 --- /dev/null +++ b/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch @@ -0,0 +1,26 @@ +Based on 6fc27667950fe153033f0f49cb5b57e8954c3e54 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 30 Jun 2014 19:06:18 +0200 +Subject: [PATCH] tmpfiles: don't do automatic cleanup in $XDG_RUNTIME_DIR + +Now that logind will clean up all IPC resources of a user we should +really consider $XDG_RUNTIME_DIR as just another kind of IPC with the +same life-cycle logic as the other IPC resources. This should be safe +now to do since every user gets his own $XDG_RUNTIME_DIR tmpfs instance +with a fixed size limit, so that flooding of it will more effectively be +averted. +--- + tmpfiles.d/systemd.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- tmpfiles.d/systemd.conf ++++ tmpfiles.d/systemd.conf 2014-07-01 12:31:01.858735866 +0000 +@@ -7,7 +7,7 @@ + + # See tmpfiles.d(5) for details + +-d /run/user 0755 root root ~10d ++d /run/user 0755 root root - + F! /run/utmp 0664 root utmp - + + f /var/log/wtmp 0664 root utmp - diff --git a/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch b/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch new file mode 100644 index 00000000..aa77e4cc --- /dev/null +++ b/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch @@ -0,0 +1,26 @@ +From 267b3e41df5a2181f2911433539f81de2fa1511a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Thu, 29 May 2014 14:17:37 -0400 +Subject: [PATCH] tty-ask-password-agent: Do tell what directory we failed to + open + +--- + .../tty-ask-password-agent.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 3203474..55a2215 100644 +--- src/tty-ask-password-agent/tty-ask-password-agent.c ++++ src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -501,7 +501,7 @@ static int show_passwords(void) { + if (errno == ENOENT) + return 0; + +- log_error("opendir(): %m"); ++ log_error("opendir(/run/systemd/ask-password): %m"); + return -errno; + } + +-- +1.7.9.2 + diff --git a/0007-README-document-that-var-run-must-be-a-symlink-run.patch b/0007-README-document-that-var-run-must-be-a-symlink-run.patch new file mode 100644 index 00000000..4b8b4384 --- /dev/null +++ b/0007-README-document-that-var-run-must-be-a-symlink-run.patch @@ -0,0 +1,30 @@ +From 47bc23c18cbc87471dc832534c8565625e4a9d16 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 02:54:37 +0100 +Subject: [PATCH] =?UTF-8?q?README:=20document=20that=20/var/run=20must=20be=20?= + =?UTF-8?q?a=20symlink=20=E2=86=92=20/run?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + README | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git README README +index b918132..7a227e7 100644 +--- README ++++ README +@@ -190,6 +190,9 @@ WARNINGS: + about this, since this kind of file system setup is not really + supported anymore by the basic set of Linux OS components. + ++ systemd requires that the /run mount point exists. systemd also ++ requires that /var/run is a a symlink → /run. ++ + For more information on this issue consult + http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken + +-- +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 00000000..03003901 --- /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/0007-dbus-suppress-duplicate-and-misleading-messages.patch b/0007-dbus-suppress-duplicate-and-misleading-messages.patch new file mode 100644 index 00000000..c4051609 --- /dev/null +++ b/0007-dbus-suppress-duplicate-and-misleading-messages.patch @@ -0,0 +1,66 @@ +From fe7f06f142cf42928e419d8578afd75bf1439672 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 11 Mar 2014 04:10:19 +0100 +Subject: [PATCH] dbus: suppress duplicate and misleading messages + +When we try to send a signal on a connection we didn't hae the time to +process the Disconnected message yet, don't generate multiple warning +messages, but only a single debug message. + +https://bugs.freedesktop.org/show_bug.cgi?id=75874 +--- + src/core/dbus-manager.c | 7 +++++-- + src/core/dbus-unit.c | 12 ++---------- + 2 files changed, 7 insertions(+), 12 deletions(-) + +diff --git src/core/dbus-manager.c src/core/dbus-manager.c +index 34ef1f5..30f28b6 100644 +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c +@@ -1357,8 +1357,11 @@ static int reply_unit_file_changes_and_f + unsigned i; + int r; + +- if (n_changes > 0) +- bus_manager_foreach_client(m, send_unit_files_changed, NULL); ++ if (n_changes > 0) { ++ r = bus_manager_foreach_client(m, send_unit_files_changed, NULL); ++ if (r < 0) ++ log_debug("Failed to send UnitFilesChanged signal: %s", strerror(-r)); ++ } + + r = sd_bus_message_new_method_return(message, &reply); + if (r < 0) +diff --git src/core/dbus-unit.c src/core/dbus-unit.c +index 515ac8b..07e7f20 100644 +--- src/core/dbus-unit.c ++++ src/core/dbus-unit.c +@@ -638,21 +638,13 @@ static int send_changed_signal(sd_bus *bus, void *userdata) { + bus, p, + UNIT_VTABLE(u)->bus_interface, + NULL); +- if (r < 0) { +- log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r)); ++ if (r < 0) + return r; +- } + +- r = sd_bus_emit_properties_changed_strv( ++ return sd_bus_emit_properties_changed_strv( + bus, p, + "org.freedesktop.systemd1.Unit", + NULL); +- if (r < 0) { +- log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r)); +- return r; +- } +- +- return 0; + } + + void bus_unit_send_change_signal(Unit *u) { +-- +1.7.9.2 + +--- src/core/dbus-manager.c ++++ src/core/dbus-manager.c 2014-03-11 11:05:44.350235568 +0000 diff --git a/0007-drop_duplicates-copy-full-BindMount-struct.patch b/0007-drop_duplicates-copy-full-BindMount-struct.patch new file mode 100644 index 00000000..434f119d --- /dev/null +++ b/0007-drop_duplicates-copy-full-BindMount-struct.patch @@ -0,0 +1,31 @@ +From e2d7c1a0758ce80d7cb439745deefefdffd67655 Mon Sep 17 00:00:00 2001 +From: Ansgar Burchardt +Date: Sun, 27 Jul 2014 16:32:13 +0200 +Subject: [PATCH] drop_duplicates: copy full BindMount struct + +At least + + t->ignore = f->ignore; + +is missing here. Just copy the full struct to be sure. +--- + src/core/namespace.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git src/core/namespace.c src/core/namespace.c +index 5466b7b..fe95377 100644 +--- src/core/namespace.c ++++ src/core/namespace.c +@@ -124,8 +124,7 @@ static void drop_duplicates(BindMount *m, unsigned *n) { + if (previous && path_equal(f->path, previous->path)) + continue; + +- t->path = f->path; +- t->mode = f->mode; ++ *t = *f; + + previous = t; + +-- +1.7.9.2 + diff --git a/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..7b77e2ab --- /dev/null +++ b/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,49 @@ +From 063e36db8aed7b54100b33089deb6d2e86d516b9 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Thu, 3 Jul 2014 16:13:48 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 377748a..9f3136a 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -1045,7 +1045,31 @@ bluetooth:v0159* + ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. + + bluetooth:v015A* +- ID_VENDOR_FROM_DATABASE=micus AG ++ ID_VENDOR_FROM_DATABASE=micas AG + + bluetooth:v015B* + ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. ++ ++bluetooth:v015C* ++ ID_VENDOR_FROM_DATABASE=Pitius Tec S.L. ++ ++bluetooth:v015D* ++ ID_VENDOR_FROM_DATABASE=Estimote, Inc. ++ ++bluetooth:v015E* ++ ID_VENDOR_FROM_DATABASE=Unikey Technologies, Inc. ++ ++bluetooth:v015F* ++ ID_VENDOR_FROM_DATABASE=Timer Cap Co. ++ ++bluetooth:v0160* ++ ID_VENDOR_FROM_DATABASE=AwoX ++ ++bluetooth:v0161* ++ ID_VENDOR_FROM_DATABASE=yikes ++ ++bluetooth:v0162* ++ ID_VENDOR_FROM_DATABASE=MADSGlobal NZ Ltd. ++ ++bluetooth:v0163* ++ ID_VENDOR_FROM_DATABASE=PCH International +-- +1.7.9.2 + diff --git a/0007-hwdb-update.patch b/0007-hwdb-update.patch new file mode 100644 index 00000000..462cdb4a --- /dev/null +++ b/0007-hwdb-update.patch @@ -0,0 +1,1910 @@ +Based on bd64a88fb0478da2e93c363849b73aed8be36ae7 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 31 Jul 2014 23:06:04 +0200 +Subject: [PATCH] hwdb: update + +--- + 20-OUI.hwdb | 380 +++++++++++++++++++++++++++++++++++++++++++++-- + 20-pci-vendor-model.hwdb | 35 +++- + 20-usb-vendor-model.hwdb | 208 +++++++++++++++++++++++-- + 3 files changed, 586 insertions(+), 37 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index 97f1e6b..f9501be 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -23288,7 +23288,7 @@ OUI:000CB1* + ID_OUI_FROM_DATABASE=Salland Engineering (Europe) BV + + OUI:000CB2* +- ID_OUI_FROM_DATABASE=Comstar Co., Ltd. ++ ID_OUI_FROM_DATABASE=UNION co., ltd. + + OUI:000CB3* + ID_OUI_FROM_DATABASE=ROUND Co.,Ltd. +@@ -23528,7 +23528,7 @@ OUI:000D01* + ID_OUI_FROM_DATABASE=P&E Microcomputer Systems, Inc. + + OUI:000D02* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:000D03* + ID_OUI_FROM_DATABASE=Matrics, Inc. +@@ -30311,7 +30311,7 @@ OUI:0015DF* + ID_OUI_FROM_DATABASE=Clivet S.p.A. + + OUI:0015E0* +- ID_OUI_FROM_DATABASE=ST-Ericsson ++ ID_OUI_FROM_DATABASE=Ericsson + + OUI:0015E1* + ID_OUI_FROM_DATABASE=Picochip Ltd +@@ -32375,7 +32375,7 @@ OUI:001893* + ID_OUI_FROM_DATABASE=SHENZHEN PHOTON BROADBAND TECHNOLOGY CO.,LTD + + OUI:001894* +- ID_OUI_FROM_DATABASE=zimocom ++ ID_OUI_FROM_DATABASE=NPCore, Inc. + + OUI:001895* + ID_OUI_FROM_DATABASE=Hansun Technologies Inc. +@@ -33887,7 +33887,7 @@ OUI:001A8B* + ID_OUI_FROM_DATABASE=CHUNIL ELECTRIC IND., CO. + + OUI:001A8C* +- ID_OUI_FROM_DATABASE=Astaro AG ++ ID_OUI_FROM_DATABASE=Sophos Ltd + + OUI:001A8D* + ID_OUI_FROM_DATABASE=AVECS Bergen GmbH +@@ -34652,7 +34652,7 @@ OUI:001B8A* + ID_OUI_FROM_DATABASE=2M Electronic A/S + + OUI:001B8B* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:001B8C* + ID_OUI_FROM_DATABASE=JMicron Technology Corp. +@@ -35066,7 +35066,7 @@ OUI:001C14* + ID_OUI_FROM_DATABASE=VMware, Inc + + OUI:001C15* +- ID_OUI_FROM_DATABASE=TXP Corporation ++ ID_OUI_FROM_DATABASE=iPhotonix LLC + + OUI:001C16* + ID_OUI_FROM_DATABASE=ThyssenKrupp Elevator +@@ -35975,7 +35975,7 @@ OUI:001D43* + ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. + + OUI:001D44* +- ID_OUI_FROM_DATABASE=KROHNE ++ ID_OUI_FROM_DATABASE=KROHNE Messtechnik GmbH + + OUI:001D45* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +@@ -36863,7 +36863,7 @@ OUI:001E6B* + ID_OUI_FROM_DATABASE=Cisco SPVTG + + OUI:001E6C* +- ID_OUI_FROM_DATABASE=Carbon Mountain LLC ++ ID_OUI_FROM_DATABASE=Opaque Systems + + OUI:001E6D* + ID_OUI_FROM_DATABASE=IT R&D Center +@@ -38471,7 +38471,7 @@ OUI:002084* + ID_OUI_FROM_DATABASE=OCE PRINTING SYSTEMS, GMBH + + OUI:002085* +- ID_OUI_FROM_DATABASE=EXIDE ELECTRONICS ++ ID_OUI_FROM_DATABASE=Eaton Corporation + + OUI:002086* + ID_OUI_FROM_DATABASE=MICROTECH ELECTRONICS LIMITED +@@ -44312,7 +44312,7 @@ OUI:003A9C* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:003A9D* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:003AAF* + ID_OUI_FROM_DATABASE=BlueBit Ltd. +@@ -46394,7 +46394,7 @@ OUI:0060B8* + ID_OUI_FROM_DATABASE=CORELIS Inc. + + OUI:0060B9* +- ID_OUI_FROM_DATABASE=NEC Infrontia Corporation ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd + + OUI:0060BA* + ID_OUI_FROM_DATABASE=SAHARA NETWORKS, INC. +@@ -49015,6 +49015,9 @@ OUI:00A1DE* + OUI:00A2DA* + ID_OUI_FROM_DATABASE=INAT GmbH + ++OUI:00A2F5* ++ ID_OUI_FROM_DATABASE=Guangzhou Yuanyun Network Technology Co.,Ltd ++ + OUI:00A2FF* + ID_OUI_FROM_DATABASE=abatec group AG + +@@ -49036,6 +49039,9 @@ OUI:00AA70* + OUI:00ACE0* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:00AEFA* ++ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. ++ + OUI:00B009* + ID_OUI_FROM_DATABASE=Grass Valley Group + +@@ -51613,6 +51619,9 @@ OUI:00F403* + OUI:00F4B9* + ID_OUI_FROM_DATABASE=Apple + ++OUI:00F76F* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:00F860* + ID_OUI_FROM_DATABASE=PT. Panggung Electric Citrabuana + +@@ -51844,6 +51853,9 @@ OUI:0494A1* + OUI:0498F3* + ID_OUI_FROM_DATABASE=ALPS Electric Co,. Ltd. + ++OUI:0499E6* ++ ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd ++ + OUI:049C62* + ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. + +@@ -52423,6 +52435,9 @@ OUI:0808C2* + OUI:0808EA* + ID_OUI_FROM_DATABASE=AMSC + ++OUI:0809B6* ++ ID_OUI_FROM_DATABASE=Masimo Corp ++ + OUI:080C0B* + ID_OUI_FROM_DATABASE=SysMik GmbH Dresden + +@@ -52438,6 +52453,9 @@ OUI:080EA8* + OUI:080FFA* + ID_OUI_FROM_DATABASE=KSP INC. + ++OUI:08115E* ++ ID_OUI_FROM_DATABASE=Bitel Co., Ltd. ++ + OUI:081196* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -52597,6 +52615,9 @@ OUI:087D21* + OUI:088039* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:0881BC* ++ ID_OUI_FROM_DATABASE=HongKong Ipro Technology Co., Limited ++ + OUI:0881F4* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -52693,6 +52714,9 @@ OUI:08E5DA* + OUI:08E672* + ID_OUI_FROM_DATABASE=JEBSEE ELECTRONICS CO.,LTD. + ++OUI:08E84F* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:08EA44* + ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. + +@@ -52759,6 +52783,9 @@ OUI:0C17F1* + OUI:0C191F* + ID_OUI_FROM_DATABASE=Inform Electronik + ++OUI:0C1DAF* ++ ID_OUI_FROM_DATABASE=Beijing Xiaomi communications co.,ltd ++ + OUI:0C1DC2* + ID_OUI_FROM_DATABASE=SeAH Networks + +@@ -53080,6 +53107,9 @@ OUI:1001CA* + OUI:1005CA* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:1008B1* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:10090C* + ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. + +@@ -53200,6 +53230,9 @@ OUI:104B46* + OUI:104D77* + ID_OUI_FROM_DATABASE=Innovative Computer Engineering + ++OUI:104E07* ++ ID_OUI_FROM_DATABASE=Shanghai Genvision Industries Co.,Ltd ++ + OUI:105172* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + +@@ -53234,7 +53267,7 @@ OUI:1065CF* + ID_OUI_FROM_DATABASE=IQSIM + + OUI:106682* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:10683F* + ID_OUI_FROM_DATABASE=LG Electronics +@@ -53668,6 +53701,9 @@ OUI:14F42A* + OUI:14F65A* + ID_OUI_FROM_DATABASE=Xiaomi inc. + ++OUI:14F893* ++ ID_OUI_FROM_DATABASE=Wuhan FiberHome Digital Technology Co.,Ltd. ++ + OUI:14FEAF* + ID_OUI_FROM_DATABASE=SAGITTAR LIMITED + +@@ -54190,6 +54226,9 @@ OUI:1C7C45* + OUI:1C7CC7* + ID_OUI_FROM_DATABASE=Coriant GmbH + ++OUI:1C7E51* ++ ID_OUI_FROM_DATABASE=3bumen.com ++ + OUI:1C7EE5* + ID_OUI_FROM_DATABASE=D-Link International + +@@ -54220,6 +54259,9 @@ OUI:1C955D* + OUI:1C959F* + ID_OUI_FROM_DATABASE=Veethree Electronics And Marine LLC + ++OUI:1C965A* ++ ID_OUI_FROM_DATABASE=Weifang goertek Electronics CO.,LTD ++ + OUI:1C973D* + ID_OUI_FROM_DATABASE=PRICOM Design + +@@ -54229,6 +54271,9 @@ OUI:1C994C* + OUI:1C9C26* + ID_OUI_FROM_DATABASE=Zoovel Technologies + ++OUI:1C9ECB* ++ ID_OUI_FROM_DATABASE=Beijing Nari Smartchip Microelectronics Company Limited ++ + OUI:1CA2B1* + ID_OUI_FROM_DATABASE=ruwido austria gmbh + +@@ -54254,7 +54299,7 @@ OUI:1CB094* + ID_OUI_FROM_DATABASE=HTC Corporation + + OUI:1CB17F* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:1CB243* + ID_OUI_FROM_DATABASE=TDC A/S +@@ -54478,6 +54523,9 @@ OUI:2074CF* + OUI:207600* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + ++OUI:207693* ++ ID_OUI_FROM_DATABASE=Lenovo (Beijing) Limited. ++ + OUI:207C8F* + ID_OUI_FROM_DATABASE=Quanta Microsystems,Inc. + +@@ -54766,6 +54814,9 @@ OUI:249442* + OUI:249504* + ID_OUI_FROM_DATABASE=SFR + ++OUI:2497ED* ++ ID_OUI_FROM_DATABASE=Techvision Intelligent Technology Limited ++ + OUI:24A2E1* + ID_OUI_FROM_DATABASE=Apple, Inc + +@@ -55306,6 +55357,9 @@ OUI:2C27D7* + OUI:2C282D* + ID_OUI_FROM_DATABASE=BBK COMMUNICATIAO TECHNOLOGY CO.,LTD. + ++OUI:2C2997* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:2C2D48* + ID_OUI_FROM_DATABASE=bct electronic GesmbH + +@@ -55327,6 +55381,9 @@ OUI:2C36F8* + OUI:2C3731* + ID_OUI_FROM_DATABASE=ShenZhen Yifang Digital Technology Co.,LTD + ++OUI:2C3796* ++ ID_OUI_FROM_DATABASE=CYBO CO.,LTD. ++ + OUI:2C3996* + ID_OUI_FROM_DATABASE=SAGEMCOM + +@@ -55390,6 +55447,9 @@ OUI:2C5D93* + OUI:2C5FF3* + ID_OUI_FROM_DATABASE=Pertronic Industries + ++OUI:2C600C* ++ ID_OUI_FROM_DATABASE=QUANTA COMPUTER INC. ++ + OUI:2C625A* + ID_OUI_FROM_DATABASE=Finest Security Systems Co., Ltd + +@@ -55549,12 +55609,18 @@ OUI:2CEDEB* + OUI:2CEE26* + ID_OUI_FROM_DATABASE=Petroleum Geo-Services + ++OUI:2CF0EE* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:2CF203* + ID_OUI_FROM_DATABASE=EMKO ELEKTRONIK SAN VE TIC AS + + OUI:2CF4C5* + ID_OUI_FROM_DATABASE=Avaya, Inc + ++OUI:2CF7F1* ++ ID_OUI_FROM_DATABASE=Seeed Technology Inc. ++ + OUI:2CFAA2* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + +@@ -55570,6 +55636,9 @@ OUI:300D2A* + OUI:300ED5* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd + ++OUI:3010B3* ++ ID_OUI_FROM_DATABASE=Liteon Technology Corporation ++ + OUI:3010E4* + ID_OUI_FROM_DATABASE=Apple, Inc. + +@@ -55711,6 +55780,9 @@ OUI:307512* + OUI:30766F* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:3077CB* ++ ID_OUI_FROM_DATABASE=Maike Industry(Shenzhen)CO.,LTD ++ + OUI:30786B* + ID_OUI_FROM_DATABASE=TIANJIN Golden Pentagon Electronics Co., Ltd. + +@@ -55831,6 +55903,9 @@ OUI:30F7D7* + OUI:30F9ED* + ID_OUI_FROM_DATABASE=Sony Corporation + ++OUI:30FAB7* ++ ID_OUI_FROM_DATABASE=Tunai Creative ++ + OUI:30FD11* + ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. + +@@ -55909,6 +55984,9 @@ OUI:344B3D* + OUI:344B50* + ID_OUI_FROM_DATABASE=ZTE Corporation + ++OUI:344DEA* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:344DF7* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -55942,6 +56020,9 @@ OUI:346178* + OUI:346288* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:3464A9* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:34684A* + ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. + +@@ -56152,6 +56233,9 @@ OUI:34E2FD* + OUI:34E42A* + ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. + ++OUI:34E6AD* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:34EF44* + ID_OUI_FROM_DATABASE=2Wire + +@@ -56200,6 +56284,9 @@ OUI:380B40* + OUI:380DD4* + ID_OUI_FROM_DATABASE=Primax Electronics LTD. + ++OUI:380E7B* ++ ID_OUI_FROM_DATABASE=V.P.S. Thai Co., Ltd ++ + OUI:380F4A* + ID_OUI_FROM_DATABASE=Apple + +@@ -56989,6 +57076,9 @@ OUI:40984E* + OUI:40987B* + ID_OUI_FROM_DATABASE=Aisino Corporation + ++OUI:409B0D* ++ ID_OUI_FROM_DATABASE=Shenzhen Yourf Kwan Industrial Co., Ltd ++ + OUI:409FC7* + ID_OUI_FROM_DATABASE=BAEKCHUN I&C Co., Ltd. + +@@ -57367,6 +57457,9 @@ OUI:44C56F* + OUI:44C9A2* + ID_OUI_FROM_DATABASE=Greenwald Industries + ++OUI:44CE7D* ++ ID_OUI_FROM_DATABASE=SFR ++ + OUI:44D15E* + ID_OUI_FROM_DATABASE=Shanghai Kingto Information Technology Ltd + +@@ -57703,6 +57796,9 @@ OUI:4C1480* + OUI:4C14A3* + ID_OUI_FROM_DATABASE=TCL Technoly Electronics (Huizhou) Co., Ltd. + ++OUI:4C16F1* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:4C17EB* + ID_OUI_FROM_DATABASE=SAGEMCOM + +@@ -57730,6 +57826,9 @@ OUI:4C26E7* + OUI:4C2C80* + ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd + ++OUI:4C2C83* ++ ID_OUI_FROM_DATABASE=Zhejiang KaNong Network Technology Co.,Ltd. ++ + OUI:4C2F9D* + ID_OUI_FROM_DATABASE=ICM Controls + +@@ -57754,6 +57853,9 @@ OUI:4C3B74* + OUI:4C3C16* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:4C48DA* ++ ID_OUI_FROM_DATABASE=Beijing Autelan Technology Co.,Ltd ++ + OUI:4C4B68* + ID_OUI_FROM_DATABASE=Mobile Device, Inc. + +@@ -57943,6 +58045,9 @@ OUI:4CDF3D* + OUI:4CE1BB* + ID_OUI_FROM_DATABASE=Zhuhai HiFocus Technology Co., Ltd. + ++OUI:4CE2F1* ++ ID_OUI_FROM_DATABASE=sclak srl ++ + OUI:4CE676* + ID_OUI_FROM_DATABASE=Buffalo Inc. + +@@ -58459,6 +58564,9 @@ OUI:549F35* + OUI:54A04F* + ID_OUI_FROM_DATABASE=t-mac Technologies Ltd + ++OUI:54A050* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:54A31B* + ID_OUI_FROM_DATABASE=Shenzhen Linkworld Technology Co,.LTD + +@@ -58525,6 +58633,9 @@ OUI:54E3B0* + OUI:54E43A* + ID_OUI_FROM_DATABASE=Apple, Inc. + ++OUI:54E4BD* ++ ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED ++ + OUI:54E63F* + ID_OUI_FROM_DATABASE=ShenZhen LingKeWeiEr Technology Co., Ltd. + +@@ -58603,6 +58714,9 @@ OUI:581FAA* + OUI:581FEF* + ID_OUI_FROM_DATABASE=Tuttnaer LTD + ++OUI:582136* ++ ID_OUI_FROM_DATABASE=KMB systems, s.r.o. ++ + OUI:58238C* + ID_OUI_FROM_DATABASE=Technicolor CH USA + +@@ -58705,6 +58819,9 @@ OUI:587BE9* + OUI:587E61* + ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd + ++OUI:587FB7* ++ ID_OUI_FROM_DATABASE=SONAR INDUSTRIAL CO., LTD. ++ + OUI:587FC8* + ID_OUI_FROM_DATABASE=S2M + +@@ -58903,6 +59020,9 @@ OUI:5C260A* + OUI:5C2AEF* + ID_OUI_FROM_DATABASE=Open Access Pty Ltd + ++OUI:5C2BF5* ++ ID_OUI_FROM_DATABASE=Vivint ++ + OUI:5C2E59* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -59020,6 +59140,9 @@ OUI:5C95AE* + OUI:5C969D* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C97F3* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:5C9AD8* + ID_OUI_FROM_DATABASE=Fujitsu Limited + +@@ -59032,6 +59155,9 @@ OUI:5CA3EB* + OUI:5CA48A* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:5CAAFD* ++ ID_OUI_FROM_DATABASE=Sonos, Inc. ++ + OUI:5CAC4C* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -59167,6 +59293,9 @@ OUI:600308* + OUI:600347* + ID_OUI_FROM_DATABASE=Billion Electric Co. Ltd. + ++OUI:600417* ++ ID_OUI_FROM_DATABASE=POSBANK CO.,LTD ++ + OUI:600F77* + ID_OUI_FROM_DATABASE=SilverPlus, Inc + +@@ -59407,6 +59536,9 @@ OUI:60C547* + OUI:60C5A8* + ID_OUI_FROM_DATABASE=Beijing LT Honway Technology Co.,Ltd + ++OUI:60C798* ++ ID_OUI_FROM_DATABASE=Verifone, Inc. ++ + OUI:60C980* + ID_OUI_FROM_DATABASE=Trymus + +@@ -59947,6 +60079,9 @@ OUI:6828BA* + OUI:682DDC* + ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD + ++OUI:6836B5* ++ ID_OUI_FROM_DATABASE=DriveScale, Inc. ++ + OUI:683B1E* + ID_OUI_FROM_DATABASE=Countwise LTD + +@@ -60007,6 +60142,9 @@ OUI:686E48* + OUI:687251* + ID_OUI_FROM_DATABASE=Ubiquiti Networks + ++OUI:6872DC* ++ ID_OUI_FROM_DATABASE=CETORY.TV Company Limited ++ + OUI:68764F* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + +@@ -60097,6 +60235,9 @@ OUI:68AAD2* + OUI:68AB8A* + ID_OUI_FROM_DATABASE=RF IDeas + ++OUI:68AE20* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:68AF13* + ID_OUI_FROM_DATABASE=Futura Mobility + +@@ -60202,6 +60343,9 @@ OUI:6C0460* + OUI:6C09D6* + ID_OUI_FROM_DATABASE=Digiquest Electronics LTD + ++OUI:6C0B84* ++ ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co.,Ltd. ++ + OUI:6C0E0D* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + +@@ -60268,6 +60412,9 @@ OUI:6C3E6D* + OUI:6C3E9C* + ID_OUI_FROM_DATABASE=KE Knestel Elektronik GmbH + ++OUI:6C4008* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:6C40C6* + ID_OUI_FROM_DATABASE=Nimbus Data Systems, Inc. + +@@ -60850,6 +60997,12 @@ OUI:70F927* + OUI:70F96D* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:70FC8C* ++ ID_OUI_FROM_DATABASE=OneAccess SA ++ ++OUI:70FF5C* ++ ID_OUI_FROM_DATABASE=Cheerzing Communication(Xiamen)Technology Co.,Ltd ++ + OUI:70FF76* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -60967,6 +61120,9 @@ OUI:746F3D* + OUI:7472F2* + ID_OUI_FROM_DATABASE=Chipsip Technology Co., Ltd. + ++OUI:747548* ++ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. ++ + OUI:747818* + ID_OUI_FROM_DATABASE=ServiceAssure + +@@ -61117,6 +61273,9 @@ OUI:74E537* + OUI:74E543* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + ++OUI:74E6E2* ++ ID_OUI_FROM_DATABASE=Dell Inc. ++ + OUI:74E7C6* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -61921,6 +62080,9 @@ OUI:8005DF* + OUI:8007A2* + ID_OUI_FROM_DATABASE=Esson Technology Inc. + ++OUI:800902* ++ ID_OUI_FROM_DATABASE=Keysight Technologies, Inc. ++ + OUI:800A06* + ID_OUI_FROM_DATABASE=COMTEC co.,ltd + +@@ -61945,6 +62107,9 @@ OUI:8018A7* + OUI:801934* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:801967* ++ ID_OUI_FROM_DATABASE=Shanghai Reallytek Information Technology Co.,Ltd ++ + OUI:801DAA* + ID_OUI_FROM_DATABASE=Avaya Inc + +@@ -61972,6 +62137,9 @@ OUI:802FDE* + OUI:803457* + ID_OUI_FROM_DATABASE=OT Systems Limited + ++OUI:803773* ++ ID_OUI_FROM_DATABASE=Netgear Inc ++ + OUI:8038FD* + ID_OUI_FROM_DATABASE=LeapFrog Enterprises, Inc. + +@@ -62146,6 +62314,9 @@ OUI:80BAE6* + OUI:80BBEB* + ID_OUI_FROM_DATABASE=Satmap Systems Ltd + ++OUI:80BE05* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:80C16E* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -62236,6 +62407,9 @@ OUI:841715* + OUI:841766* + ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd + ++OUI:841826* ++ ID_OUI_FROM_DATABASE=Osram GmbH ++ + OUI:84183A* + ID_OUI_FROM_DATABASE=Ruckus Wireless + +@@ -62365,6 +62539,9 @@ OUI:84742A* + OUI:847616* + ID_OUI_FROM_DATABASE=Addat S.r.o. + ++OUI:84788B* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:8478AC* + ID_OUI_FROM_DATABASE=Cisco + +@@ -62506,6 +62683,9 @@ OUI:84E714* + OUI:84EA99* + ID_OUI_FROM_DATABASE=Vieworks + ++OUI:84EB18* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:84ED33* + ID_OUI_FROM_DATABASE=BBMC Co.,Ltd + +@@ -62641,6 +62821,9 @@ OUI:88685C* + OUI:886B76* + ID_OUI_FROM_DATABASE=CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD + ++OUI:88708C* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:887398* + ID_OUI_FROM_DATABASE=K2E Tekpoint + +@@ -62746,6 +62929,9 @@ OUI:88C626* + OUI:88C663* + ID_OUI_FROM_DATABASE=Apple + ++OUI:88C9D0* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:88CB87* + ID_OUI_FROM_DATABASE=Apple + +@@ -63082,6 +63268,9 @@ OUI:8CDE52* + OUI:8CDE99* + ID_OUI_FROM_DATABASE=Comlab Inc. + ++OUI:8CDF9D* ++ ID_OUI_FROM_DATABASE=NEC Corporation ++ + OUI:8CE081* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -63133,6 +63322,12 @@ OUI:900D66* + OUI:900DCB* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + ++OUI:90179B* ++ ID_OUI_FROM_DATABASE=Nanomegas ++ ++OUI:9017AC* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:90185E* + ID_OUI_FROM_DATABASE=Apex Tool Group GmbH & Co OHG + +@@ -63166,12 +63361,18 @@ OUI:902083* + OUI:902155* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:902181* ++ ID_OUI_FROM_DATABASE=Shanghai Huaqin Telecom Technology Co.,Ltd ++ + OUI:9027E4* + ID_OUI_FROM_DATABASE=Apple + + OUI:902B34* + ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. + ++OUI:902CC7* ++ ID_OUI_FROM_DATABASE=C-MAX Asia Limited ++ + OUI:902E87* + ID_OUI_FROM_DATABASE=LabJack + +@@ -63304,6 +63505,9 @@ OUI:90840D* + OUI:9088A2* + ID_OUI_FROM_DATABASE=IONICS TECHNOLOGY ME LTDA + ++OUI:908C09* ++ ID_OUI_FROM_DATABASE=Total Phase ++ + OUI:908C44* + ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. + +@@ -63337,6 +63541,9 @@ OUI:909916* + OUI:909DE0* + ID_OUI_FROM_DATABASE=Newland Design + Assoc. Inc. + ++OUI:909F33* ++ ID_OUI_FROM_DATABASE=EFM Networks ++ + OUI:909F43* + ID_OUI_FROM_DATABASE=Accutron Instruments Inc. + +@@ -63416,7 +63623,7 @@ OUI:90DA4E* + ID_OUI_FROM_DATABASE=AVANU + + OUI:90DA6A* +- ID_OUI_FROM_DATABASE=MCC System Co., Ltd. ++ ID_OUI_FROM_DATABASE=FOCUS H&S Co., Ltd. + + OUI:90DB46* + ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD +@@ -63580,6 +63787,9 @@ OUI:946269* + OUI:9463D1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:9470D2* ++ ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY ++ + OUI:9471AC* + ID_OUI_FROM_DATABASE=TCT Mobile Limited + +@@ -63646,6 +63856,9 @@ OUI:94AE61* + OUI:94AEE3* + ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. + ++OUI:94B40F* ++ ID_OUI_FROM_DATABASE=Aruba Networks ++ + OUI:94B8C5* + ID_OUI_FROM_DATABASE=RuggedCom Inc. + +@@ -63661,9 +63874,15 @@ OUI:94BA56* + OUI:94BF1E* + ID_OUI_FROM_DATABASE=eflow Inc. / Smart Device Planning and Development Division + ++OUI:94BF95* ++ ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd ++ + OUI:94C014* + ID_OUI_FROM_DATABASE=Sorter Sp. j. Konrad Grzeszczyk MichaA, Ziomek + ++OUI:94C038* ++ ID_OUI_FROM_DATABASE=Tallac Networks ++ + OUI:94C150* + ID_OUI_FROM_DATABASE=2Wire Inc + +@@ -63793,6 +64012,9 @@ OUI:980D2E* + OUI:981094* + ID_OUI_FROM_DATABASE=Shenzhen Vsun communication technology Co.,ltd + ++OUI:9816EC* ++ ID_OUI_FROM_DATABASE=IC Intracom ++ + OUI:98208E* + ID_OUI_FROM_DATABASE=Definium Technologies + +@@ -64724,7 +64946,7 @@ OUI:A40CC3* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:A41242* +- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. ++ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. + + OUI:A4134E* + ID_OUI_FROM_DATABASE=Luxul +@@ -64753,6 +64975,9 @@ OUI:A42305* + OUI:A424B3* + ID_OUI_FROM_DATABASE=FlatFrog Laboratories AB + ++OUI:A4251B* ++ ID_OUI_FROM_DATABASE=Avaya, Inc ++ + OUI:A42940* + ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd + +@@ -64783,6 +65008,9 @@ OUI:A4466B* + OUI:A446FA* + ID_OUI_FROM_DATABASE=AmTRAN Video Corporation + ++OUI:A44AD3* ++ ID_OUI_FROM_DATABASE=ST Electronics(Shanghai) Co.,Ltd ++ + OUI:A44B15* + ID_OUI_FROM_DATABASE=Sun Cupid Technology (HK) LTD + +@@ -64897,6 +65125,9 @@ OUI:A49F85* + OUI:A49F89* + ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. + ++OUI:A4A1C2* ++ ID_OUI_FROM_DATABASE=Ericsson AB (EAB) ++ + OUI:A4A24A* + ID_OUI_FROM_DATABASE=Cisco SPVTG + +@@ -65209,6 +65440,9 @@ OUI:A8995C* + OUI:A89B10* + ID_OUI_FROM_DATABASE=inMotion Ltd. + ++OUI:A89DD2* ++ ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd ++ + OUI:A8A668* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -65488,6 +65722,9 @@ OUI:AC8674* + OUI:AC867E* + ID_OUI_FROM_DATABASE=Create New Technology (HK) Limited Company + ++OUI:AC87A3* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:AC8ACD* + ID_OUI_FROM_DATABASE=ROGER D.Wensker, G.Wensker sp.j. + +@@ -65650,6 +65887,9 @@ OUI:ACF7F3* + OUI:ACF97E* + ID_OUI_FROM_DATABASE=ELESYS INC. + ++OUI:ACFDCE* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:ACFDEC* + ID_OUI_FROM_DATABASE=Apple, Inc + +@@ -66496,6 +66736,9 @@ OUI:B8AD3E* + OUI:B8AE6E* + ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. + ++OUI:B8AEED* ++ ID_OUI_FROM_DATABASE=Elitegroup Computer Systems Co., Ltd. ++ + OUI:B8AF67* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -66562,6 +66805,9 @@ OUI:B8D06F* + OUI:B8D49D* + ID_OUI_FROM_DATABASE=M Seven System Ltd. + ++OUI:B8D812* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:B8D9CE* + ID_OUI_FROM_DATABASE=Samsung Electronics + +@@ -66658,6 +66904,9 @@ OUI:BC15A6* + OUI:BC1665* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:BC16F5* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:BC1A67* + ID_OUI_FROM_DATABASE=YF Technology Co., Ltd + +@@ -66766,6 +67015,9 @@ OUI:BC6A16* + OUI:BC6A29* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:BC6B4D* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:BC6E76* + ID_OUI_FROM_DATABASE=Green Energy Options Ltd + +@@ -66868,6 +67120,9 @@ OUI:BCC168* + OUI:BCC23A* + ID_OUI_FROM_DATABASE=Thomson Video Networks + ++OUI:BCC342* ++ ID_OUI_FROM_DATABASE=Panasonic System Networks Co., Ltd. ++ + OUI:BCC61A* + ID_OUI_FROM_DATABASE=SPECTRA EMBEDDED SYSTEMS + +@@ -66907,6 +67162,9 @@ OUI:BCE59F* + OUI:BCEA2B* + ID_OUI_FROM_DATABASE=CityCom GmbH + ++OUI:BCEAFA* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:BCEE7B* + ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. + +@@ -66976,6 +67234,9 @@ OUI:C03580* + OUI:C035BD* + ID_OUI_FROM_DATABASE=Velocytech Aps + ++OUI:C03896* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:C038F9* + ID_OUI_FROM_DATABASE=Nokia Danmark A/S + +@@ -67087,6 +67348,9 @@ OUI:C09132* + OUI:C09134* + ID_OUI_FROM_DATABASE=ProCurve Networking by HP + ++OUI:C09879* ++ ID_OUI_FROM_DATABASE=Acer Inc. ++ + OUI:C098E5* + ID_OUI_FROM_DATABASE=University of Michigan + +@@ -67228,6 +67492,9 @@ OUI:C40528* + OUI:C4084A* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + ++OUI:C40880* ++ ID_OUI_FROM_DATABASE=Shenzhen UTEPO Tech Co., Ltd. ++ + OUI:C40938* + ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd + +@@ -67675,6 +67942,9 @@ OUI:C88439* + OUI:C88447* + ID_OUI_FROM_DATABASE=Beautiful Enterprise Co., Ltd + ++OUI:C88550* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:C8873B* + ID_OUI_FROM_DATABASE=Net Optics + +@@ -67774,6 +68044,9 @@ OUI:C8CBB8* + OUI:C8CD72* + ID_OUI_FROM_DATABASE=SAGEMCOM + ++OUI:C8D019* ++ ID_OUI_FROM_DATABASE=Shanghai Tigercel Communication Technology Co.,Ltd ++ + OUI:C8D10B* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -67960,6 +68233,9 @@ OUI:CC3D82* + OUI:CC3E5F* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:CC3F1D* ++ ID_OUI_FROM_DATABASE=Intesis Software SL ++ + OUI:CC43E3* + ID_OUI_FROM_DATABASE=Trump s.a. + +@@ -68668,6 +68944,9 @@ OUI:D45C70* + OUI:D45D42* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:D46132* ++ ID_OUI_FROM_DATABASE=Pro Concept Manufacturer Co.,Ltd. ++ + OUI:D464F7* + ID_OUI_FROM_DATABASE=CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD + +@@ -68728,6 +69007,9 @@ OUI:D48890* + OUI:D48CB5* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:D48DD9* ++ ID_OUI_FROM_DATABASE=Meld Technology, Inc ++ + OUI:D48F33* + ID_OUI_FROM_DATABASE=Microsoft Corporation + +@@ -68887,6 +69169,9 @@ OUI:D4F0B4* + OUI:D4F143* + ID_OUI_FROM_DATABASE=IPROAD.,Inc + ++OUI:D4F46F* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:D4F63F* + ID_OUI_FROM_DATABASE=IEA S.R.L. + +@@ -69058,6 +69343,9 @@ OUI:D87CDD* + OUI:D87EB1* + ID_OUI_FROM_DATABASE=x.o.ware, inc. + ++OUI:D88039* ++ ID_OUI_FROM_DATABASE=Microchip Technology Inc. ++ + OUI:D881CE* + ID_OUI_FROM_DATABASE=AHN INC. + +@@ -69121,6 +69409,9 @@ OUI:D8B12A* + OUI:D8B377* + ID_OUI_FROM_DATABASE=HTC Corporation + ++OUI:D8B6B7* ++ ID_OUI_FROM_DATABASE=Comtrend Corporation ++ + OUI:D8B6C1* + ID_OUI_FROM_DATABASE=NetworkAccountant, Inc. + +@@ -69214,6 +69505,9 @@ OUI:D8EE78* + OUI:D8F0F2* + ID_OUI_FROM_DATABASE=Zeebo Inc + ++OUI:D8FB11* ++ ID_OUI_FROM_DATABASE=AXACORE ++ + OUI:D8FC93* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -69286,6 +69580,9 @@ OUI:DC2C26* + OUI:DC2E6A* + ID_OUI_FROM_DATABASE=HCT. Co., Ltd. + ++OUI:DC2F03* ++ ID_OUI_FROM_DATABASE=Step forward Group Co., Ltd. ++ + OUI:DC309C* + ID_OUI_FROM_DATABASE=Heyrex Limited + +@@ -69418,6 +69715,9 @@ OUI:DCC101* + OUI:DCC422* + ID_OUI_FROM_DATABASE=Systembase Limited + ++OUI:DCC622* ++ ID_OUI_FROM_DATABASE=BUHEUNG SYSTEM ++ + OUI:DCC793* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -69448,6 +69748,9 @@ OUI:DCD52A* + OUI:DCD87F* + ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd + ++OUI:DCDA4F* ++ ID_OUI_FROM_DATABASE=GET Technology,INC ++ + OUI:DCDECA* + ID_OUI_FROM_DATABASE=Akyllor + +@@ -69490,6 +69793,9 @@ OUI:E00B28* + OUI:E00C7F* + ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. + ++OUI:E0107F* ++ ID_OUI_FROM_DATABASE=Ruckus Wireless ++ + OUI:E0143E* + ID_OUI_FROM_DATABASE=Modoosis Inc. + +@@ -69688,6 +69994,9 @@ OUI:E0AF4B* + OUI:E0B2F1* + ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED + ++OUI:E0B52D* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:E0B7B1* + ID_OUI_FROM_DATABASE=Pace plc + +@@ -69829,9 +70138,15 @@ OUI:E41289* + OUI:E41C4B* + ID_OUI_FROM_DATABASE=V2 TECHNOLOGY, INC. + ++OUI:E41D2D* ++ ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc. ++ + OUI:E41F13* + ID_OUI_FROM_DATABASE=IBM Corp + ++OUI:E42354* ++ ID_OUI_FROM_DATABASE=SHENZHEN FUZHI SOFTWARE TECHNOLOGY CO.,LTD ++ + OUI:E425E7* + ID_OUI_FROM_DATABASE=Apple + +@@ -69961,6 +70276,9 @@ OUI:E48AD5* + OUI:E48B7F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:E48C0F* ++ ID_OUI_FROM_DATABASE=Discovery Insure ++ + OUI:E49069* + ID_OUI_FROM_DATABASE=Rockwell Automation + +@@ -70111,6 +70429,9 @@ OUI:E8150E* + OUI:E817FC* + ID_OUI_FROM_DATABASE=NIFTY Corporation + ++OUI:E81863* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:E82877* + ID_OUI_FROM_DATABASE=TMY Co., Ltd. + +@@ -70249,6 +70570,9 @@ OUI:E8944C* + OUI:E894F6* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:E89606* ++ ID_OUI_FROM_DATABASE=testo Instruments (Shenzhen) Co., Ltd. ++ + OUI:E8995A* + ID_OUI_FROM_DATABASE=PiiGAB, Processinformation i Goteborg AB + +@@ -70396,6 +70720,9 @@ OUI:EC0ED6* + OUI:EC1120* + ID_OUI_FROM_DATABASE=FloDesign Wind Turbine Corporation + ++OUI:EC13B2* ++ ID_OUI_FROM_DATABASE=Netonix ++ + OUI:EC14F6* + ID_OUI_FROM_DATABASE=BioControl AS + +@@ -70729,6 +71056,9 @@ OUI:F03A4B* + OUI:F03A55* + ID_OUI_FROM_DATABASE=Omega Elektronik AS + ++OUI:F03D29* ++ ID_OUI_FROM_DATABASE=Actility ++ + OUI:F03FF8* + ID_OUI_FROM_DATABASE=R L Drake + +@@ -70801,6 +71131,9 @@ OUI:F07BCB* + OUI:F07D68* + ID_OUI_FROM_DATABASE=D-Link Corporation + ++OUI:F07F06* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F07F0C* + ID_OUI_FROM_DATABASE=Leopold Kostal GmbH &Co. KG + +@@ -70843,6 +71176,9 @@ OUI:F09CBB* + OUI:F09CE9* + ID_OUI_FROM_DATABASE=Aerohive Networks Inc + ++OUI:F09E63* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F0A764* + ID_OUI_FROM_DATABASE=GST Co., Ltd. + +@@ -71188,6 +71524,9 @@ OUI:F4B72A* + OUI:F4B7E2* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:F4B85E* ++ ID_OUI_FROM_DATABASE=Texas INstruments ++ + OUI:F4BD7C* + ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD + +@@ -71461,6 +71800,9 @@ OUI:F87B8C* + OUI:F8811A* + ID_OUI_FROM_DATABASE=OVERKIZ + ++OUI:F88479* ++ ID_OUI_FROM_DATABASE=Yaojin Technology(Shenzhen)Co.,Ltd ++ + OUI:F884F2* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -71599,6 +71941,9 @@ OUI:F8E7B5* + OUI:F8E811* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + ++OUI:F8E903* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:F8E968* + ID_OUI_FROM_DATABASE=Egker Kft. + +@@ -71782,6 +72127,9 @@ OUI:FC5B24* + OUI:FC5B26* + ID_OUI_FROM_DATABASE=MikroBits + ++OUI:FC5B39* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:FC6018* + ID_OUI_FROM_DATABASE=Zhejiang Kangtai Electric Co., Ltd. + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 77c727d..a6a2754 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -32403,11 +32403,14 @@ pci:v00001131d00007146sv0000153Bsd00001155* + ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) + + pci:v00001131d00007146sv0000153Bsd00001156* +- ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C) + + pci:v00001131d00007146sv0000153Bsd00001157* + ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) + ++pci:v00001131d00007146sv0000153Bsd00001176* ++ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C (MK3)) ++ + pci:v00001131d00007146sv00001894sd00000020* + ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) + +@@ -42846,7 +42849,7 @@ pci:v00001425d00005012* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller + + pci:v00001425d00005013* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller + + pci:v00001425d00005014* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller +@@ -42924,7 +42927,7 @@ pci:v00001425d00005412* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller + + pci:v00001425d00005413* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller + + pci:v00001425d00005414* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller +@@ -43002,7 +43005,7 @@ pci:v00001425d00005512* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller + + pci:v00001425d00005513* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller + + pci:v00001425d00005514* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller +@@ -43080,7 +43083,7 @@ pci:v00001425d00005612* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller + + pci:v00001425d00005613* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller + + pci:v00001425d00005614* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller +@@ -43236,7 +43239,7 @@ pci:v00001425d00005812* + ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005813* +- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] ++ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller [VF] + + pci:v00001425d00005814* + ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] +@@ -45887,6 +45890,9 @@ pci:v000014E4d00004359sv00001028sd00000011* + pci:v000014E4d00004359sv0000103Csd0000182C* + ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) + ++pci:v000014E4d00004360* ++ ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter ++ + pci:v000014E4d00004365* + ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n + +@@ -45896,6 +45902,9 @@ pci:v000014E4d00004365sv00001028sd00000016* + pci:v000014E4d000043A0* + ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter + ++pci:v000014E4d000043A9* ++ ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n ++ + pci:v000014E4d000043B1* + ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter + +@@ -47886,7 +47895,10 @@ pci:v000015ADd00000774* + ID_MODEL_FROM_DATABASE=USB1.1 UHCI Controller + + pci:v000015ADd00000778* +- ID_MODEL_FROM_DATABASE=USB3 xHCI Controller ++ ID_MODEL_FROM_DATABASE=USB3 xHCI 0.96 Controller ++ ++pci:v000015ADd00000779* ++ ID_MODEL_FROM_DATABASE=USB3 xHCI 1.0 Controller + + pci:v000015ADd00000790* + ID_MODEL_FROM_DATABASE=PCI bridge +@@ -52490,6 +52502,9 @@ pci:v00001A29* + pci:v00001A29d00004338* + ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC + ++pci:v00001A29d00004E36* ++ ID_MODEL_FROM_DATABASE=NP6 Network Processor ++ + pci:v00001A2B* + ID_VENDOR_FROM_DATABASE=Ascom AG + +@@ -73781,6 +73796,9 @@ pci:v0000D161d00001405* + pci:v0000D161d00001420* + ID_MODEL_FROM_DATABASE=Wildcard TE420 quad-span T1/E1/J1 card 3.3V (PCI-Express) (5th gen) + ++pci:v0000D161d00001820* ++ ID_MODEL_FROM_DATABASE=Wildcard TE820 octal-span T1/E1/J1 card 3.3V (PCI-Express) ++ + pci:v0000D161d00002400* + ID_MODEL_FROM_DATABASE=Wildcard TDM2400P 24-port analog card + +@@ -73820,6 +73838,9 @@ pci:v0000D161d0000800A* + pci:v0000D161d0000800B* + ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card + ++pci:v0000D161d0000800E* ++ ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) ++ + pci:v0000D161d0000B410* + ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card + +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index 89cd5b1..ed6b2b1 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -524,6 +524,9 @@ usb:v03F0p0317* + usb:v03F0p0324* + ID_MODEL_FROM_DATABASE=SK-2885 keyboard + ++usb:v03F0p034A* ++ ID_MODEL_FROM_DATABASE=Elite Keyboard ++ + usb:v03F0p0401* + ID_MODEL_FROM_DATABASE=ScanJet 5200c + +@@ -767,6 +770,9 @@ usb:v03F0p1317* + usb:v03F0p1327* + ID_MODEL_FROM_DATABASE=iLO Virtual Hub + ++usb:v03F0p134A* ++ ID_MODEL_FROM_DATABASE=Optical Mouse ++ + usb:v03F0p1405* + ID_MODEL_FROM_DATABASE=ScanJet 3670 + +@@ -2336,6 +2342,12 @@ usb:v0403pEF10* + usb:v0403pF070* + ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] + ++usb:v0403pF0C8* ++ ID_MODEL_FROM_DATABASE=SPROG Decoder Programmer ++ ++usb:v0403pF0C9* ++ ID_MODEL_FROM_DATABASE=SPROG-DCC CAN-USB ++ + usb:v0403pF0E9* + ID_MODEL_FROM_DATABASE=Tagsys L-P101 + +@@ -2642,6 +2654,9 @@ usb:v0409p02B4* + usb:v0409p02B6* + ID_MODEL_FROM_DATABASE=Aterm WL300NU-GS 802.11n Wireless Adapter + ++usb:v0409p02BC* ++ ID_MODEL_FROM_DATABASE=Computer Monitor ++ + usb:v0409p0300* + ID_MODEL_FROM_DATABASE=LifeTouch Note + +@@ -5348,6 +5363,9 @@ usb:v0452p0050* + usb:v0452p0051* + ID_MODEL_FROM_DATABASE=Integrated Hub + ++usb:v0452p0100* ++ ID_MODEL_FROM_DATABASE=Control Panel for Leica TCS SP5 ++ + usb:v0453* + ID_VENDOR_FROM_DATABASE=CMD Technology + +@@ -8759,6 +8777,9 @@ usb:v0480pA009* + usb:v0480pA00D* + ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB + ++usb:v0480pB001* ++ ID_MODEL_FROM_DATABASE=Stor.E Partner ++ + usb:v0480pD010* + ID_MODEL_FROM_DATABASE=External Disk 3TB + +@@ -13100,9 +13121,15 @@ usb:v04D8p900A* + usb:v04D8pC001* + ID_MODEL_FROM_DATABASE=PicoLCD 20x4 + ++usb:v04D8pF4B5* ++ ID_MODEL_FROM_DATABASE=SmartScope ++ + usb:v04D8pF8DA* + ID_MODEL_FROM_DATABASE=Hughski Ltd. ColorHug + ++usb:v04D8pF91C* ++ ID_MODEL_FROM_DATABASE=SPROG IIv3 ++ + usb:v04D8pFAFF* + ID_MODEL_FROM_DATABASE=Dangerous Prototypes BusPirate v4 Bootloader mode + +@@ -13118,6 +13145,9 @@ usb:v04D8pFBBA* + usb:v04D8pFBBB* + ID_MODEL_FROM_DATABASE=DiscFerret Magnetic Disc Analyser (active mode) + ++usb:v04D8pFC1E* ++ ID_MODEL_FROM_DATABASE=Bachrus Speedometer Interface ++ + usb:v04D8pFC92* + ID_MODEL_FROM_DATABASE=Open Bench Logic Sniffer + +@@ -14432,6 +14462,9 @@ usb:v04F2p0403* + usb:v04F2p0418* + ID_MODEL_FROM_DATABASE=KU-0418 Tactical Pad + ++usb:v04F2p0618* ++ ID_MODEL_FROM_DATABASE=RG-0618U Wireless HID Receiver & KG-0609 Wireless Keyboard with Touchpad ++ + usb:v04F2p0760* + ID_MODEL_FROM_DATABASE=Acer KU-0760 Keyboard + +@@ -15336,7 +15369,7 @@ usb:v04FCp0171* + ID_MODEL_FROM_DATABASE=SPCA1527A/SPCA1528 SD card camera (Mass Storage mode) + + usb:v04FCp0201* +- ID_MODEL_FROM_DATABASE=RS232C Adapter ++ ID_MODEL_FROM_DATABASE=SPCP825 RS232C Adapter + + usb:v04FCp0232* + ID_MODEL_FROM_DATABASE=Fingerprint +@@ -29036,6 +29069,9 @@ usb:v08E3p0301* + usb:v08E4* + ID_VENDOR_FROM_DATABASE=Pioneer Corp. + ++usb:v08E4p0185* ++ ID_MODEL_FROM_DATABASE=DDJ-WeGO2 ++ + usb:v08E5* + ID_VENDOR_FROM_DATABASE=Litronic + +@@ -33080,6 +33116,9 @@ usb:v0B48p300D* + usb:v0B48p300E* + ID_MODEL_FROM_DATABASE=TT-connect C-2400 + ++usb:v0B48p3014* ++ ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 ++ + usb:v0B49* + ID_VENDOR_FROM_DATABASE=ASCII Corp. + +@@ -34086,7 +34125,7 @@ usb:v0BC2p3101* + ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB + + usb:v0BC2p3312* +- ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] ++ ID_MODEL_FROM_DATABASE=SRD00F2 Expansion Desktop Drive (STBV) + + usb:v0BC2p3320* + ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] +@@ -34109,6 +34148,9 @@ usb:v0BC2p5031* + usb:v0BC2p5070* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk + ++usb:v0BC2p5071* ++ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk ++ + usb:v0BC2p50A1* + ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk + +@@ -34133,6 +34175,9 @@ usb:v0BC2pA0A4* + usb:v0BC2pAB00* + ID_MODEL_FROM_DATABASE=Slim Portable Drive + ++usb:v0BC2pAB20* ++ ID_MODEL_FROM_DATABASE=Backup Plus Portable Drive ++ + usb:v0BC3* + ID_VENDOR_FROM_DATABASE=IPWireless, Inc. + +@@ -34301,6 +34346,9 @@ usb:v0BDAp0176* + usb:v0BDAp0178* + ID_MODEL_FROM_DATABASE=Mass Storage Device + ++usb:v0BDAp0179* ++ ID_MODEL_FROM_DATABASE=RTL8188ETV Wireless LAN 802.11n Network Adapter ++ + usb:v0BDAp0184* + ID_MODEL_FROM_DATABASE=RTS5182 Card Reader + +@@ -34322,6 +34370,9 @@ usb:v0BDAp2832* + usb:v0BDAp2838* + ID_MODEL_FROM_DATABASE=RTL2838 DVB-T + ++usb:v0BDAp5730* ++ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam ++ + usb:v0BDAp8150* + ID_MODEL_FROM_DATABASE=RTL8150 Fast Ethernet Adapter + +@@ -36012,11 +36063,53 @@ usb:v0CE5p0003* + ID_MODEL_FROM_DATABASE=Matrix + + usb:v0CE9* +- ID_VENDOR_FROM_DATABASE=pico Technology ++ ID_VENDOR_FROM_DATABASE=Pico Technology + + usb:v0CE9p1001* + ID_MODEL_FROM_DATABASE=PicoScope3000 series PC Oscilloscope + ++usb:v0CE9p1007* ++ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope ++ ++usb:v0CE9p1008* ++ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope ++ ++usb:v0CE9p1009* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope ++ ++usb:v0CE9p100E* ++ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope ++ ++usb:v0CE9p1012* ++ ID_MODEL_FROM_DATABASE=PicoScope 3000A series PC Oscilloscope ++ ++usb:v0CE9p1016* ++ ID_MODEL_FROM_DATABASE=PicoScope 2000A series PC Oscilloscope ++ ++usb:v0CE9p1018* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000A series PC Oscilloscope ++ ++usb:v0CE9p1200* ++ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope ++ ++usb:v0CE9p1201* ++ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope ++ ++usb:v0CE9p1202* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope ++ ++usb:v0CE9p1203* ++ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope ++ ++usb:v0CE9p1204* ++ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope ++ ++usb:v0CE9p1211* ++ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope ++ ++usb:v0CE9p1212* ++ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope ++ + usb:v0CF1* + ID_VENDOR_FROM_DATABASE=e-Conn Electronic Co., Ltd + +@@ -36998,6 +37091,9 @@ usb:v0DB0p1020* + usb:v0DB0p1967* + ID_MODEL_FROM_DATABASE=Bluetooth Dongle + ++usb:v0DB0p3713* ++ ID_MODEL_FROM_DATABASE=Primo 73 ++ + usb:v0DB0p3801* + ID_MODEL_FROM_DATABASE=Motorola Bluetooth 2.1+EDR Device + +@@ -37112,6 +37208,9 @@ usb:v0DB7p0002* + usb:v0DBA* + ID_VENDOR_FROM_DATABASE=Digidesign + ++usb:v0DBAp1000* ++ ID_MODEL_FROM_DATABASE=Mbox 1 [Mbox] ++ + usb:v0DBAp3000* + ID_MODEL_FROM_DATABASE=Mbox 2 + +@@ -37913,6 +38012,12 @@ usb:v0E6A* + usb:v0E6Ap0101* + ID_MODEL_FROM_DATABASE=MA100 [USB-UART Bridge IC] + ++usb:v0E6Ap030B* ++ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard (Device Firmware Update mode) ++ ++usb:v0E6Ap030C* ++ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard ++ + usb:v0E6Ap6001* + ID_MODEL_FROM_DATABASE=GEMBIRD Flexible keyboard KB-109F-B-DE + +@@ -39548,6 +39653,12 @@ usb:v1039p0824* + usb:v1039p2140* + ID_MODEL_FROM_DATABASE=dsl+ 1100 duo + ++usb:v103A* ++ ID_VENDOR_FROM_DATABASE=PSA ++ ++usb:v103ApF000* ++ ID_MODEL_FROM_DATABASE=Actia Evo XS ++ + usb:v103D* + ID_VENDOR_FROM_DATABASE=Stanton + +@@ -39692,6 +39803,9 @@ usb:v1050p0110* + usb:v1050p0111* + ID_MODEL_FROM_DATABASE=Yubikey NEO OTP+CCID + ++usb:v1050p0200* ++ ID_MODEL_FROM_DATABASE=U2F Gnubby ++ + usb:v1050p0211* + ID_MODEL_FROM_DATABASE=Gnubby + +@@ -39735,16 +39849,25 @@ usb:v1058p0704* + ID_MODEL_FROM_DATABASE=Passport External HDD + + usb:v1058p070A* +- ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA), My Passport for Mac (WDBAAB), My Passport Essential SE (WDBABM), My Passport SE for Mac (WDBABW) ++ ++usb:v1058p070B* ++ ID_MODEL_FROM_DATABASE=My Passport Elite (WDBAAC) ++ ++usb:v1058p070C* ++ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBAAE) + + usb:v1058p071A* +- ID_MODEL_FROM_DATABASE=My Passport ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA) ++ ++usb:v1058p071D* ++ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBALG) + + usb:v1058p0730* + ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) + + usb:v1058p0740* +- ID_MODEL_FROM_DATABASE=My Passport ++ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) + + usb:v1058p0741* + ID_MODEL_FROM_DATABASE=My Passport Ultra +@@ -39756,22 +39879,22 @@ usb:v1058p0748* + ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) + + usb:v1058p0810* +- ID_MODEL_FROM_DATABASE=My Passport Ultra ++ ID_MODEL_FROM_DATABASE=My Passport Ultra (WDBZFP) + + usb:v1058p0900* + ID_MODEL_FROM_DATABASE=MyBook Essential External HDD + + usb:v1058p0901* +- ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) + + usb:v1058p0902* +- ID_MODEL_FROM_DATABASE=My Book Pro Edition ++ ID_MODEL_FROM_DATABASE=My Book Pro Edition (WDG1T) + + usb:v1058p0903* + ID_MODEL_FROM_DATABASE=My Book Premium Edition + + usb:v1058p0910* +- ID_MODEL_FROM_DATABASE=MyBook Essential External HDD ++ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) + + usb:v1058p1001* + ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) +@@ -39786,7 +39909,7 @@ usb:v1058p1021* + ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) + + usb:v1058p1023* +- ID_MODEL_FROM_DATABASE=Elements SE ++ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBABV) + + usb:v1058p1048* + ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) +@@ -39809,11 +39932,23 @@ usb:v1058p1104* + usb:v1058p1105* + ID_MODEL_FROM_DATABASE=My Book Studio II + ++usb:v1058p1110* ++ ID_MODEL_FROM_DATABASE=My Book Essential (WDBAAF), My Book for Mac (WDBAAG) ++ ++usb:v1058p1111* ++ ID_MODEL_FROM_DATABASE=My Book Elite (WDBAAH) ++ ++usb:v1058p1112* ++ ID_MODEL_FROM_DATABASE=My Book Studio (WDBAAJ), My Book Studio LX (WDBACH) ++ + usb:v1058p1123* +- ID_MODEL_FROM_DATABASE=My Book 3.0 ++ ID_MODEL_FROM_DATABASE=My Book 3.0 (WDBABP) ++ ++usb:v1058p1130* ++ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) + + usb:v1058p1140* +- ID_MODEL_FROM_DATABASE=My Book Essential USB3.0 ++ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) + + usb:v1059* + ID_VENDOR_FROM_DATABASE=Giesecke & Devrient GmbH +@@ -42098,6 +42233,12 @@ usb:v132Bp2045* + usb:v132Bp2049* + ID_MODEL_FROM_DATABASE=Magicolor 2490MF + ++usb:v133E* ++ ID_VENDOR_FROM_DATABASE=Kemper Digital GmbH ++ ++usb:v133Ep0815* ++ ID_MODEL_FROM_DATABASE=Virus TI Desktop ++ + usb:v1342* + ID_VENDOR_FROM_DATABASE=Mobility + +@@ -42203,6 +42344,9 @@ usb:v134E* + usb:v1357* + ID_VENDOR_FROM_DATABASE=P&E Microcomputer Systems + ++usb:v1357p0089* ++ ID_MODEL_FROM_DATABASE=OpenSDA - CDC Serial Port ++ + usb:v1357p0503* + ID_MODEL_FROM_DATABASE=USB-ML-12 HCS08/HCS12 Multilink + +@@ -42213,7 +42357,7 @@ usb:v1366* + ID_VENDOR_FROM_DATABASE=SEGGER + + usb:v1366p0101* +- ID_MODEL_FROM_DATABASE=J-Link ARM ++ ID_MODEL_FROM_DATABASE=J-Link PLUS + + usb:v136B* + ID_VENDOR_FROM_DATABASE=STEC +@@ -42311,6 +42455,9 @@ usb:v138Ap003C* + usb:v138Ap003D* + ID_MODEL_FROM_DATABASE=VFS491 + ++usb:v138Ap003F* ++ ID_MODEL_FROM_DATABASE=VFS495 Fingerprint Reader ++ + usb:v138Ap0050* + ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor + +@@ -42647,6 +42794,9 @@ usb:v13D3p5122* + usb:v13D3p5126* + ID_MODEL_FROM_DATABASE=PC Cam + ++usb:v13D3p5130* ++ ID_MODEL_FROM_DATABASE=Integrated Webcam ++ + usb:v13D3p5702* + ID_MODEL_FROM_DATABASE=UVC VGA Webcam + +@@ -43232,6 +43382,9 @@ usb:v1493p0019* + usb:v1493p001A* + ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] + ++usb:v1493p001D* ++ ID_MODEL_FROM_DATABASE=Greentit [Ambit2 R] ++ + usb:v1497* + ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. + +@@ -49640,12 +49793,39 @@ usb:v2478* + usb:v2478p2008* + ID_MODEL_FROM_DATABASE=U209-000-R Serial Port + ++usb:v249C* ++ ID_VENDOR_FROM_DATABASE=M2Tech s.r.l. ++ + usb:v2632* + ID_VENDOR_FROM_DATABASE=TwinMOS + + usb:v2632p3209* + ID_MODEL_FROM_DATABASE=7-in-1 Card Reader + ++usb:v2639* ++ ID_VENDOR_FROM_DATABASE=Xsens ++ ++usb:v2639p0001* ++ ID_MODEL_FROM_DATABASE=MTi-10 IMU ++ ++usb:v2639p0002* ++ ID_MODEL_FROM_DATABASE=MTi-20 VRU ++ ++usb:v2639p0003* ++ ID_MODEL_FROM_DATABASE=MTi-30 AHRS ++ ++usb:v2639p0011* ++ ID_MODEL_FROM_DATABASE=MTi-100 IMU ++ ++usb:v2639p0012* ++ ID_MODEL_FROM_DATABASE=MTi-200 VRU ++ ++usb:v2639p0013* ++ ID_MODEL_FROM_DATABASE=MTi-300 AHRS ++ ++usb:v2639p0017* ++ ID_MODEL_FROM_DATABASE=MTi-G-700 GPS INS ++ + usb:v2650* + ID_VENDOR_FROM_DATABASE=Electronics For Imaging, Inc. [hex] + +-- +1.7.9.2 + diff --git a/0007-journal-forget-file-after-encountering-an-error.patch b/0007-journal-forget-file-after-encountering-an-error.patch new file mode 100644 index 00000000..e195e6bf --- /dev/null +++ b/0007-journal-forget-file-after-encountering-an-error.patch @@ -0,0 +1,74 @@ +From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:11:54 -0500 +Subject: [PATCH] journal: forget file after encountering an error + +If we encounter an inconsistency in a file, let's just +ignore it. Otherwise, after previous patch, we would try, +and fail, to use this file in every invocation of sd_journal_next +or sd_journal_previous that happens afterwards. +--- + src/journal/sd-journal.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git src/journal/sd-journal.c src/journal/sd-journal.c +index ef455e9..b54bc21 100644 +--- src/journal/sd-journal.c ++++ src/journal/sd-journal.c +@@ -51,6 +51,8 @@ + + #define DEFAULT_DATA_THRESHOLD (64*1024) + ++static void remove_file_real(sd_journal *j, JournalFile *f); ++ + static bool journal_pid_changed(sd_journal *j) { + assert(j); + +@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { + r = next_beyond_location(j, f, direction, &o, &p); + if (r < 0) { + log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); ++ remove_file_real(j, f); + continue; + } else if (r == 0) + continue; +@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { + } + + static int remove_file(sd_journal *j, const char *prefix, const char *filename) { +- char *path; ++ _cleanup_free_ char *path; + JournalFile *f; + + assert(j); +@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + return -ENOMEM; + + f = hashmap_get(j->files, path); +- free(path); + if (!f) + return 0; + ++ remove_file_real(j, f); ++ return 0; ++} ++ ++static void remove_file_real(sd_journal *j, JournalFile *f) { ++ assert(j); ++ assert(f); ++ + hashmap_remove(j->files, f->path); + + log_debug("File %s removed.", f->path); +@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + journal_file_close(f); + + j->current_invalidate_counter ++; +- +- return 0; + } + + static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { +-- +1.7.9.2 + diff --git a/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch b/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch new file mode 100644 index 00000000..f2409242 --- /dev/null +++ b/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch @@ -0,0 +1,55 @@ +From 332076b45b8a78f018ade2dfdc7e4279a56d49cc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Nov 2014 23:10:21 +0100 +Subject: [PATCH] journald: also check journal file size to deduce if it is + empty + +--- + src/journal/journal-vacuum.c | 22 +++++++++++++++------- + 1 file changed, 15 insertions(+), 7 deletions(-) + +diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c +index dbf5d22..d141fe0 100644 +--- src/journal/journal-vacuum.c ++++ src/journal/journal-vacuum.c +@@ -121,22 +121,30 @@ static void patch_realtime( + } + + static int journal_file_empty(int dir_fd, const char *name) { +- int r; +- le64_t n_entries; + _cleanup_close_ int fd; ++ struct stat st; ++ le64_t n_entries; ++ ssize_t n; + + fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd < 0) + return -errno; + +- if (lseek(fd, offsetof(Header, n_entries), SEEK_SET) < 0) ++ if (fstat(fd, &st) < 0) + return -errno; + +- r = read(fd, &n_entries, sizeof(n_entries)); +- if (r != sizeof(n_entries)) +- return r == 0 ? -EINVAL : -errno; ++ /* If an offline file doesn't even have a header we consider it empty */ ++ if (st.st_size < (off_t) sizeof(Header)) ++ return 1; ++ ++ /* If the number of entries is empty, we consider it empty, too */ ++ n = pread(fd, &n_entries, sizeof(n_entries), offsetof(Header, n_entries)); ++ if (n < 0) ++ return -errno; ++ if (n != sizeof(n_entries)) ++ return -EIO; + +- return le64toh(n_entries) == 0; ++ return le64toh(n_entries) <= 0; + } + + int journal_directory_vacuum( +-- +1.7.9.2 + diff --git a/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch b/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch new file mode 100644 index 00000000..54b97960 --- /dev/null +++ b/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch @@ -0,0 +1,23 @@ +Based on 5e8b767df6e18444d5aff2987b5e5603361ed528 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 13 Aug 2014 18:53:05 +0200 +Subject: [PATCH] journald: also increase the SendBuffer of /dev/log to 8M + +http://lists.freedesktop.org/archives/systemd-devel/2014-August/021825.html +--- + units/systemd-journald.socket | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- units/systemd-journald.socket ++++ units/systemd-journald.socket 2014-08-22 14:31:11.022236471 +0000 +@@ -23,4 +23,10 @@ ListenDatagram=/dev/log + SocketMode=0666 + PassCredentials=yes + PassSecurity=yes ++ ++# Increase both the send and receive buffer, so that things don't ++# block early. Note that journald internally uses the this socket both ++# for receiving syslog messages, and for forwarding them to any other ++# syslog, hence we bump both values. + ReceiveBuffer=8M ++SendBuffer=8M diff --git a/0007-keyboard-add-Plantronics-.Audio-mute-button.patch b/0007-keyboard-add-Plantronics-.Audio-mute-button.patch new file mode 100644 index 00000000..53c701bd --- /dev/null +++ b/0007-keyboard-add-Plantronics-.Audio-mute-button.patch @@ -0,0 +1,32 @@ +From 9e3dbf6b2b99d0e16989d9cedb458729db5a60c3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 1 Jun 2014 14:01:23 -0400 +Subject: [PATCH] keyboard: add Plantronics .Audio mute button + +https://bugs.freedesktop.org/show_bug.cgi?id=79495 +--- + hwdb/60-keyboard.hwdb | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb +index 05e6a04..d053766 100644 +--- hwdb/60-keyboard.hwdb ++++ hwdb/60-keyboard.hwdb +@@ -866,6 +866,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* + KEYBOARD_KEY_f3=volumeup + + ########################################################### ++# Plantronics ++########################################################### ++ ++# Plantronics .Audio 626 DSP ++keyboard:usb:v047fpC006* ++ KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute ++ ++########################################################### + # Quanta + ########################################################### + +-- +1.7.9.2 + diff --git a/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch b/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch new file mode 100644 index 00000000..15857575 --- /dev/null +++ b/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch @@ -0,0 +1,29 @@ +From 9dedfe7f667a8cb22ba85d0223556c69c4fd0e9a Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 09:20:46 +0200 +Subject: [PATCH] libudev: monitor - warn if we fail to request SO_PASSCRED + +The function still succeeds, so there is no functional change. This fixes CID #996288. +--- + src/libudev/libudev-monitor.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c +index 186e5e1..59698b8 100644 +--- src/libudev/libudev-monitor.c ++++ src/libudev/libudev-monitor.c +@@ -412,7 +412,10 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor) + } + + /* enable receiving of sender credentials */ +- setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ if (err < 0) ++ udev_err(udev_monitor->udev, "setting SO_PASSCRED failed: %m\n"); ++ + return 0; + } + +-- +1.7.9.2 + diff --git a/0007-logind-fix-Display-property-of-user-objects.patch b/0007-logind-fix-Display-property-of-user-objects.patch new file mode 100644 index 00000000..8fbbbeac --- /dev/null +++ b/0007-logind-fix-Display-property-of-user-objects.patch @@ -0,0 +1,147 @@ +From 952d32609f9bceee444fa2690afb4d28539b4b92 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 19 May 2014 09:03:20 +0900 +Subject: [PATCH] logind: fix Display property of user objects + +When we dropped support for creating a per-user to the "main" X11 +display we stopped returning useful data in the "Display" user property. +With this change this is fixed and we again expose an appropriate +(graphical session) in the property that is useful as the "main" one, if +one is needed. +--- + src/login/logind-session.c | 8 ++++++-- + src/login/logind-session.h | 2 ++ + src/login/logind-user-dbus.c | 2 +- + src/login/logind-user.c | 37 +++++++++++++++++++++++++++++++++++++ + src/login/logind-user.h | 1 + + 5 files changed, 47 insertions(+), 3 deletions(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 4fb229e..9a54101 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -545,6 +545,8 @@ int session_start(Session *s) { + + s->started = true; + ++ user_elect_display(s->user); ++ + /* Save data */ + session_save(s); + user_save(s->user); +@@ -553,7 +555,7 @@ int session_start(Session *s) { + + /* Send signals */ + session_send_signal(s, true); +- user_send_changed(s->user, "Sessions", NULL); ++ user_send_changed(s->user, "Sessions", "Display", NULL); + if (s->seat) { + if (s->seat->active == s) + seat_send_changed(s->seat, "Sessions", "ActiveSession", NULL); +@@ -612,6 +614,8 @@ int session_stop(Session *s, bool force) { + + s->stopping = true; + ++ user_elect_display(s->user); ++ + session_save(s); + user_save(s->user); + +@@ -660,7 +664,7 @@ int session_finalize(Session *s) { + } + + user_save(s->user); +- user_send_changed(s->user, "Sessions", NULL); ++ user_send_changed(s->user, "Sessions", "Display", NULL); + + return r; + } +diff --git src/login/logind-session.h src/login/logind-session.h +index f78f309..81957df 100644 +--- src/login/logind-session.h ++++ src/login/logind-session.h +@@ -60,6 +60,8 @@ typedef enum SessionType { + _SESSION_TYPE_INVALID = -1 + } SessionType; + ++#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR) ++ + enum KillWho { + KILL_LEADER, + KILL_ALL, +diff --git src/login/logind-user-dbus.c src/login/logind-user-dbus.c +index 6266ccb..51793f6 100644 +--- src/login/logind-user-dbus.c ++++ src/login/logind-user-dbus.c +@@ -220,7 +220,7 @@ const sd_bus_vtable user_vtable[] = { + SD_BUS_PROPERTY("RuntimePath", "s", NULL, offsetof(User, runtime_path), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("Service", "s", NULL, offsetof(User, service), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("Slice", "s", NULL, offsetof(User, slice), SD_BUS_VTABLE_PROPERTY_CONST), +- SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_CONST), ++ SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("State", "s", property_get_state, 0, 0), + SD_BUS_PROPERTY("Sessions", "a(so)", property_get_sessions, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("IdleHint", "b", property_get_idle_hint, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), +diff --git src/login/logind-user.c src/login/logind-user.c +index 5fffa65..fdbccb3 100644 +--- src/login/logind-user.c ++++ src/login/logind-user.c +@@ -713,6 +713,43 @@ int user_kill(User *u, int signo) { + return manager_kill_unit(u->manager, u->slice, KILL_ALL, signo, NULL); + } + ++void user_elect_display(User *u) { ++ Session *graphical = NULL, *text = NULL, *s; ++ ++ assert(u); ++ ++ /* This elects a primary session for each user, which we call ++ * the "display". We try to keep the assignment stable, but we ++ * "upgrade" to better choices. */ ++ ++ LIST_FOREACH(sessions_by_user, s, u->sessions) { ++ ++ if (s->class != SESSION_USER) ++ continue; ++ ++ if (s->stopping) ++ continue; ++ ++ if (SESSION_TYPE_IS_GRAPHICAL(s->type)) ++ graphical = s; ++ else ++ text = s; ++ } ++ ++ if (graphical && ++ (!u->display || ++ u->display->class != SESSION_USER || ++ u->display->stopping || ++ !SESSION_TYPE_IS_GRAPHICAL(u->display->type))) ++ u->display = graphical; ++ ++ if (text && ++ (!u->display || ++ u->display->class != SESSION_USER || ++ u->display->stopping)) ++ u->display = text; ++} ++ + static const char* const user_state_table[_USER_STATE_MAX] = { + [USER_OFFLINE] = "offline", + [USER_OPENING] = "opening", +diff --git src/login/logind-user.h src/login/logind-user.h +index f237d2a..4e0568f 100644 +--- src/login/logind-user.h ++++ src/login/logind-user.h +@@ -80,6 +80,7 @@ int user_save(User *u); + int user_load(User *u); + int user_kill(User *u, int signo); + int user_check_linger_file(User *u); ++void user_elect_display(User *u); + + extern const sd_bus_vtable user_vtable[]; + int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); +-- +1.7.9.2 + diff --git a/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch b/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch new file mode 100644 index 00000000..ee54ea31 --- /dev/null +++ b/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch @@ -0,0 +1,41 @@ +From 332bc31992acffc6f32e194c0122e01607bd0e27 Mon Sep 17 00:00:00 2001 +From: Alison Chaiken +Date: Fri, 16 May 2014 09:25:53 +0200 +Subject: [PATCH] man: readahead: fix cmdline switch inconsistency between + readahead.c and docs + +Source code has "files-max" and XML has --max-files. +--- + man/systemd-readahead-replay.service.xml | 2 +- + src/readahead/readahead.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-readahead-replay.service.xml man/systemd-readahead-replay.service.xml +index 67b41f5..669fe78 100644 +--- man/systemd-readahead-replay.service.xml ++++ man/systemd-readahead-replay.service.xml +@@ -117,7 +117,7 @@ + + + +- ++ + + Maximum number of + files to read ahead. Only valid +diff --git src/readahead/readahead.c src/readahead/readahead.c +index d6729ec..73cf538 100644 +--- src/readahead/readahead.c ++++ src/readahead/readahead.c +@@ -42,7 +42,7 @@ static int help(void) { + "Collect read-ahead data on early boot.\n\n" + " -h --help Show this help\n" + " --version Show package version\n" +- " --max-files=INT Maximum number of files to read ahead\n" ++ " --files-max=INT Maximum number of files to read ahead\n" + " --file-size-max=BYTES Maximum size of files to read ahead\n" + " --timeout=USEC Maximum time to spend collecting data\n\n\n", + program_invocation_short_name); +-- +1.7.9.2 + diff --git a/0007-networkd-fix-typo.patch b/0007-networkd-fix-typo.patch new file mode 100644 index 00000000..8bd67322 --- /dev/null +++ b/0007-networkd-fix-typo.patch @@ -0,0 +1,26 @@ +From eed0eee85ac34abd81cd9e81fdb6a19f47b6c8a3 Mon Sep 17 00:00:00 2001 +From: Michael Olbrich +Date: Fri, 14 Mar 2014 18:19:29 +0100 +Subject: [PATCH] networkd: fix typo + +It's HAVE_SPLIT_USR not HAVE_SPLIT_USER +--- + src/network/networkd-manager.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/network/networkd-manager.c src/network/networkd-manager.c +index c730e71..ea414b1 100644 +--- src/network/networkd-manager.c ++++ src/network/networkd-manager.c +@@ -33,7 +33,7 @@ const char* const network_dirs[] = { + "/etc/systemd/network", + "/run/systemd/network", + "/usr/lib/systemd/network", +-#ifdef HAVE_SPLIT_USER ++#ifdef HAVE_SPLIT_USR + "/lib/systemd/network", + #endif + NULL}; +-- +1.7.9.2 + diff --git a/0007-po-add-German-translation.patch b/0007-po-add-German-translation.patch new file mode 100644 index 00000000..d653c8ff --- /dev/null +++ b/0007-po-add-German-translation.patch @@ -0,0 +1,448 @@ +From 351e57652a7d9a51f9064c089794d13801eaee73 Mon Sep 17 00:00:00 2001 +From: Benjamin Steinwender +Date: Sun, 8 Jun 2014 18:39:50 +0200 +Subject: [PATCH] po: add German translation + +https://bugs.freedesktop.org/show_bug.cgi?id=79430 +--- + po/LINGUAS | 1 + + po/de.po | 418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 419 insertions(+) + create mode 100644 po/de.po + +diff --git po/LINGUAS po/LINGUAS +index 820ca82..2cb0f30 100644 +--- po/LINGUAS ++++ po/LINGUAS +@@ -1,3 +1,4 @@ ++de + el + fr + it +diff --git po/de.po po/de.po +new file mode 100644 +index 0000000..a41e33d +--- /dev/null ++++ po/de.po +@@ -0,0 +1,418 @@ ++# German translation for systemd. ++# Copyright (C) 2014 systemd's COPYRIGHT HOLDER ++# This file is distributed under the same license as the systemd package. ++# Christian Kirbach , 2014. ++# Benjamin Steinwender , 2014. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: systemd master\n" ++"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?" ++"product=systemd&keywords=I18N+L10N&component=general\n" ++"POT-Creation-Date: 2014-06-02 10:25+0000\n" ++"PO-Revision-Date: 2014-06-02 22:43+0100\n" ++"Last-Translator: Benjamin Steinwender \n" ++"Language-Team: German \n" ++"Language: de\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Poedit 1.6.5\n" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 ++msgid "Set host name" ++msgstr "Rechnername festlegen" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 ++msgid "Authentication is required to set the local host name." ++msgstr "Legitimierung ist zum Festlegen des lokalen Rechnernamens notwendig" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 ++msgid "Set static host name" ++msgstr "Statischen Rechnernamen festlegen" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 ++msgid "" ++"Authentication is required to set the statically configured local host name, " ++"as well as the pretty host name." ++msgstr "" ++"Authentifizierung ist erforderlich, um den statisch geänderten, lokalen " ++"Rechnernamen, sowie den beschönigten Rechnernamen festzulegen." ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 ++msgid "Set machine information" ++msgstr "Maschinen-Information festlegen" ++ ++#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 ++msgid "Authentication is required to set local machine information." ++msgstr "" ++"Legitimierung ist zum Festlegen der lokalen Maschinen-Information " ++"erforderlich." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 ++msgid "Set system locale" ++msgstr "Die lokale Sprachumgebung festlegen" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 ++msgid "Authentication is required to set the system locale." ++msgstr "" ++"Legitimierung ist zum Festlegen der systemweiten Spracheinstellungen " ++"erforderlich." ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 ++msgid "Set system keyboard settings" ++msgstr "Tastatureinstellungen des Systems festlegen" ++ ++#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 ++msgid "Authentication is required to set the system keyboard settings." ++msgstr "" ++"Legitimierung ist zum Festlegen der Tastatureinstellungen des Systems " ++"erforderlich." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:1 ++msgid "Allow applications to inhibit system shutdown" ++msgstr "Anwendungen dürfen das Herunterfahren des Systems unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:2 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"shutdown." ++msgstr "" ++"Legitimierung ist notwendig, um Anwendungen das Herunterfahren des Systems " ++"zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:3 ++msgid "Allow applications to delay system shutdown" ++msgstr "Anwendungen dürfen das Herunterfahren des Systems verzögern" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:4 ++msgid "" ++"Authentication is required to allow an application to delay system shutdown." ++msgstr "" ++"Legitimierung ist notwendig, um Anwendungen das Verzögern des Herunterfahren " ++"des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:5 ++msgid "Allow applications to inhibit system sleep" ++msgstr "Anwendungen dürfen den Bereitschaftsmodus unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:6 ++msgid "" ++"Authentication is required to allow an application to inhibit system sleep." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden des " ++"Bereitschaftsmodus zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:7 ++msgid "Allow applications to delay system sleep" ++msgstr "Anwendungen dürfen den Bereitschaftsmodus verzögern" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:8 ++msgid "" ++"Authentication is required to allow an application to delay system sleep." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Verzögern des " ++"Bereitschaftsmodus zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:9 ++msgid "Allow applications to inhibit automatic system suspend" ++msgstr "Anwendungen dürfen den automatischen Bereitschaftsmodus unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:10 ++msgid "" ++"Authentication is required to allow an application to inhibit automatic " ++"system suspend." ++msgstr "" ++"Legitimierung ist notwendig, um Anwendungen das Unterbinden des " ++"automatischen Bereitschaftsmodus zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:11 ++msgid "Allow applications to inhibit system handling of the power key" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Ein-/Ausschaltknopfs des Systems " ++"unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:12 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the power key." ++msgstr "" ++"Legitmierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung " ++"der Ein-/Ausschaltknopfs des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:13 ++msgid "Allow applications to inhibit system handling of the suspend key" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Bereitschaftsknopfs des Systems " ++"unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:14 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the suspend key." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " ++"Auswertung des Bereitschaftsknopfes des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:15 ++msgid "Allow applications to inhibit system handling of the hibernate key" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Knopfs für den Ruhezustand unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:16 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the hibernate key." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " ++"Auswertung des Knopfs für den Ruhezustand zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:17 ++msgid "Allow applications to inhibit system handling of the lid switch" ++msgstr "" ++"Anwendungen dürfen das Auswerten des Notebookdeckelschalters unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:18 ++msgid "" ++"Authentication is required to allow an application to inhibit system " ++"handling of the lid switch." ++msgstr "" ++"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " ++"Auswertung des Notebookdeckelschalters des Systems zu erlauben." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:19 ++msgid "Allow non-logged-in users to run programs" ++msgstr "Nicht angemeldete Benutzer dürfen Programme ausführen" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:20 ++msgid "" ++"Authentication is required to allow a non-logged-in user to run programs." ++msgstr "" ++"Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme " ++"ausführen dürfen." ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:21 ++msgid "Allow attaching devices to seats" ++msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben" ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:22 ++msgid "Authentication is required for attaching a device to a seat." ++msgstr "" ++"Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation " ++"notwendig." ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:23 ++msgid "Flush device to seat attachments" ++msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte" ++ ++# www.freedesktop.org/wiki/Software/systemd/multiseat/ ++#: ../src/login/org.freedesktop.login1.policy.in.h:24 ++msgid "" ++"Authentication is required for resetting how devices are attached to seats." ++msgstr "" ++"Legitimierung ist zum Zurücksetzen notwendig, wie Geräte an eine " ++"Arbeitsstation angeschlossen werden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:25 ++msgid "Power off the system" ++msgstr "Das System ausschalten" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:26 ++msgid "Authentication is required for powering off the system." ++msgstr "Legitimierung ist zum Ausschalten des Systems notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:27 ++msgid "Power off the system while other users are logged in" ++msgstr "Das System herunter fahren, während andere Benutzer angemeldet sind" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:28 ++msgid "" ++"Authentication is required for powering off the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Herunterfahren des Systems notwendig, während andere " ++"Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:29 ++msgid "Power off the system while an application asked to inhibit it" ++msgstr "" ++"Das System ausschalten, während eine Anwendung anfordert es zu unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:30 ++msgid "" ++"Authentication is required for powering off the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Ausschalten des Systems notwendig, während eine " ++"Anwendung anfordert es zu unterbinden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:31 ++msgid "Reboot the system" ++msgstr "Das System neu starten" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:32 ++msgid "Authentication is required for rebooting the system." ++msgstr "Legitimierung ist zum Neustart des Systems notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:33 ++msgid "Reboot the system while other users are logged in" ++msgstr "Das Systems neu starten, während andere Benutzer angemeldet sind" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:34 ++msgid "" ++"Authentication is required for rebooting the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Neustart des Systems notwendig, während andere " ++"Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:35 ++msgid "Reboot the system while an application asked to inhibit it" ++msgstr "" ++"Das System neu starten, während eine Anwendung anfordert es zu unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:36 ++msgid "" ++"Authentication is required for rebooting the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Neustart des Systems notwendig, während eine Anwendung " ++"anforderte es zu unterbinden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:37 ++msgid "Suspend the system" ++msgstr "Das System in Bereitschaft versetzen" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:38 ++msgid "Authentication is required for suspending the system." ++msgstr "Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:39 ++msgid "Suspend the system while other users are logged in" ++msgstr "" ++"Das System in Bereitschaft versetzen, während andere Benutzer angemeldet " ++"sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:40 ++msgid "" ++"Authentication is required for suspending the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " ++"während andere Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:41 ++msgid "Suspend the system while an application asked to inhibit it" ++msgstr "" ++"Das System in Bereitschaft versetzen, während eine Anwendung anfordert dies " ++"zu unterbinden" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:42 ++msgid "" ++"Authentication is required for suspending the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " ++"während eine Anwendung anfordert dies zu unterbinden." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:43 ++msgid "Hibernate the system" ++msgstr "Den Ruhezustand des Systems aktivieren" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:44 ++msgid "Authentication is required for hibernating the system." ++msgstr "" ++"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:45 ++msgid "Hibernate the system while other users are logged in" ++msgstr "" ++"Den Ruhezustand des Systems aktivieren, während andere Benutzer angemeldet " ++"sind" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:46 ++msgid "" ++"Authentication is required for hibernating the system while other users are " ++"logged in." ++msgstr "" ++"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, " ++"während andere Benutzer angemeldet sind." ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:47 ++msgid "Hibernate the system while an application asked to inhibit it" ++msgstr "" ++"Das System in den Ruhezustand versetzen, während eine Anwendung wünscht dies " ++"zu verhindern" ++ ++#: ../src/login/org.freedesktop.login1.policy.in.h:48 ++msgid "" ++"Authentication is required for hibernating the system while an application " ++"asked to inhibit it." ++msgstr "" ++"Legitimierung ist zum Versetzen des System in den Ruhezustand notwendig, " ++"während eine Anwendung wünscht dies zu verhindern." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 ++msgid "Set system time" ++msgstr "Die Systemzeit festlegen" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 ++msgid "Authentication is required to set the system time." ++msgstr "Legitimierung ist zum Festlegen der Systemzeit notwendig." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 ++msgid "Set system timezone" ++msgstr "Die Systemzeitzone festlegen" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 ++msgid "Authentication is required to set the system timezone." ++msgstr "Legitimierung ist zum Festlegen der Systemzeitzone notwendig." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 ++msgid "Set RTC to local timezone or UTC" ++msgstr "Echtzeituhr auf lokale Zeitzone oder UTC setzen" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 ++msgid "" ++"Authentication is required to control whether the RTC stores the local or " ++"UTC time." ++msgstr "" ++"Legitimierung ist notwendig zum Festlegen, ob die Echtzeituhr auf lokale " ++"Zeitzone oder UTC eingestellt ist." ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 ++msgid "Turn network time synchronization on or off" ++msgstr "Netzwerkzeitabgeich ein- oder ausschalten" ++ ++#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 ++msgid "" ++"Authentication is required to control whether network time synchronization " ++"shall be enabled." ++msgstr "" ++"Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein " ++"soll, erforderlich." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 ++msgid "Send passphrase back to system" ++msgstr "Passphrase zurück an das System senden" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 ++msgid "" ++"Authentication is required to send the entered passphrase back to the system." ++msgstr "" ++"Legitimierung ist zum Senden des eingegebenen Kennworts zurück an das System " ++"notwendig." ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 ++msgid "Privileged system and service manager access" ++msgstr "Privilegierter Zugriff auf die System- und Dienstverwaltung" ++ ++#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 ++msgid "Authentication is required to access the system and service manager." ++msgstr "" ++"Legitimierung ist notwendig für den Zugriff auf die System- und " ++"Dienstverwaltung." +-- +1.7.9.2 + diff --git a/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch b/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch new file mode 100644 index 00000000..ee4c169a --- /dev/null +++ b/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch @@ -0,0 +1,29 @@ +From 75145780813957ecbe6835f2c8bc20113a3605d2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 25 Mar 2014 00:01:51 +0100 +Subject: [PATCH] sd-event: don't accidentally turn of watchdog timer event if + we determine 0 + +--- + src/libsystemd/sd-event/sd-event.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index d6a3d1c..4aabec1 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -2087,6 +2087,11 @@ static int arm_watchdog(sd_event *e) { + + timespec_store(&its.it_value, t); + ++ /* Make sure we never set the watchdog to 0, which tells the ++ * kernel to disable it. */ ++ if (its.it_value.tv_sec == 0 && its.it_value.tv_nsec == 0) ++ its.it_value.tv_nsec = 1; ++ + r = timerfd_settime(e->watchdog_fd, TFD_TIMER_ABSTIME, &its, NULL); + if (r < 0) + return -errno; +-- +1.7.9.2 + diff --git a/0007-service-flush-status-text-and-errno-values-each-time.patch b/0007-service-flush-status-text-and-errno-values-each-time.patch new file mode 100644 index 00000000..7dbe5a89 --- /dev/null +++ b/0007-service-flush-status-text-and-errno-values-each-time.patch @@ -0,0 +1,29 @@ +From 8cfdb077b8e3da1c47fc1d735d051f21f33144c1 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:33:46 +0200 +Subject: [PATCH] service: flush status text and errno values each time a + service is started + +We shouldn't show status texts from previous service starts +--- + src/core/service.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git src/core/service.c src/core/service.c +index d5aff99..0f542ed 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -1699,6 +1699,10 @@ static int service_start(Unit *u) { + s->main_pid_alien = false; + s->forbid_restart = false; + ++ free(s->status_text); ++ s->status_text = NULL; ++ s->status_errno = 0; ++ + service_enter_start_pre(s); + return 0; + } +-- +1.7.9.2 + diff --git a/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch b/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch new file mode 100644 index 00000000..a161a1c4 --- /dev/null +++ b/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch @@ -0,0 +1,26 @@ +From e95c98378ac2d34df864de4a9b785fd17defb77b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Oct 2014 15:15:28 -0400 +Subject: [PATCH] systemctl: do not ignore errors in symlink removal + +On an ro fs, systemctl disable ... would fail silently. +--- + src/shared/install.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/install.c src/shared/install.c +index 0d7c30e..035b44c 100644 +--- src/shared/install.c ++++ src/shared/install.c +@@ -1679,7 +1679,7 @@ int unit_file_disable( + r = install_context_mark_for_removal(&c, &paths, &remove_symlinks_to, config_path, root_dir); + + q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, files); +- if (r == 0) ++ if (r >= 0) + r = q; + + return r; +-- +1.7.9.2 + diff --git a/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch b/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch new file mode 100644 index 00000000..a1046c39 --- /dev/null +++ b/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch @@ -0,0 +1,26 @@ +From 8ebf02d6f382ce1ac7e0d44a713b8795a07b08cd Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 30 Jun 2014 21:44:05 +0200 +Subject: [PATCH] units: skip mounting /tmp if it is a symlink + +We shouldn't get confused if people have symlinked /tmp somewhere, so +let's simply skip the mount then. +--- + units/tmp.mount | 1 + + 1 file changed, 1 insertion(+) + +diff --git units/tmp.mount units/tmp.mount +index 99a3ba3..00a0d28 100644 +--- units/tmp.mount ++++ units/tmp.mount +@@ -9,6 +9,7 @@ + Description=Temporary Directory + Documentation=man:hier(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems ++ConditionPathIsSymbolicLink=!/tmp + DefaultDependencies=no + Conflicts=umount.target + Before=local-fs.target umount.target +-- +1.7.9.2 + diff --git a/0008-Reset-signal-mask-on-re-exec-to-init.patch b/0008-Reset-signal-mask-on-re-exec-to-init.patch new file mode 100644 index 00000000..9fe7d1ea --- /dev/null +++ b/0008-Reset-signal-mask-on-re-exec-to-init.patch @@ -0,0 +1,51 @@ +From 5a85ca1cb622fda4a39c8a6f00dccea7f8a1e82a Mon Sep 17 00:00:00 2001 +From: Ruediger Oertel +Date: Fri, 13 Jun 2014 16:41:06 +0200 +Subject: [PATCH] Reset signal-mask on re-exec to init=.. + +Process 1 (aka init) needs to be started with an empty signal mask. +That includes the process 1 that's started after the initrd is finished. +When the initrd is using systemd (as it does with dracut based initrds) +then it is systemd that calls the real init. Normally this is systemd +again, except when the user uses for instance "init=/bin/bash" on the +kernel command line. +--- + src/core/main.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git src/core/main.c src/core/main.c +index 3aac5d1..3e57f07 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1843,6 +1843,7 @@ finish: + if (reexecute) { + const char **args; + unsigned i, args_size; ++ sigset_t ss, o_ss; + + /* Close and disarm the watchdog, so that the new + * instance can reinitialize it, but doesn't get +@@ -1926,6 +1927,11 @@ finish: + args[i++] = NULL; + assert(i <= args_size); + ++ /* reenable any blocked signals, especially important ++ * if we switch from initial ramdisk to init=... */ ++ sigemptyset(&ss); ++ sigprocmask(SIG_SETMASK, &ss, &o_ss); ++ + if (switch_root_init) { + args[0] = switch_root_init; + execv(args[0], (char* const*) args); +@@ -1944,6 +1950,8 @@ finish: + log_error("Failed to execute /bin/sh, giving up: %m"); + } else + log_warning("Failed to execute /sbin/init, giving up: %m"); ++ ++ sigprocmask(SIG_SETMASK, &o_ss, NULL); + } + + if (arg_serialization) { +-- +1.7.9.2 + diff --git a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch new file mode 100644 index 00000000..25994e95 --- /dev/null +++ b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch @@ -0,0 +1,51 @@ +From 1ae383a8a3ae4824453e297352fda603d2d3fd5e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 25 Feb 2014 21:26:31 -0500 +Subject: [PATCH] Use /var/run/dbus/system_bus_socket for the D-Bus socket + +--- + man/systemd-bus-proxyd@.service.xml | 2 +- + src/shared/def.h | 2 +- + units/systemd-bus-proxyd.socket | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git man/systemd-bus-proxyd@.service.xml man/systemd-bus-proxyd@.service.xml +index 75a3c8b..3a5930d 100644 +--- man/systemd-bus-proxyd@.service.xml ++++ man/systemd-bus-proxyd@.service.xml +@@ -59,7 +59,7 @@ along with systemd; If not, see . + systemd-bus-proxyd.socket will launch + systemd-bus-proxyd@.service for connections + to the classic D-Bus socket in +- /run/dbus/system_bus_socket. ++ /var/run/dbus/system_bus_socket. + + systemd-bus-proxyd@.service is launched + for an existing D-Bus connection and will use +diff --git src/shared/def.h src/shared/def.h +index 7777756..aa489d8 100644 +--- src/shared/def.h ++++ src/shared/def.h +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS +diff --git units/systemd-bus-proxyd.socket units/systemd-bus-proxyd.socket +index 406e15b..6c42d38 100644 +--- units/systemd-bus-proxyd.socket ++++ units/systemd-bus-proxyd.socket +@@ -9,5 +9,5 @@ + Description=Legacy D-Bus Protocol Compatibility Socket + + [Socket] +-ListenStream=/run/dbus/system_bus_socket ++ListenStream=/var/run/dbus/system_bus_socket + Accept=yes +-- +1.7.9.2 + diff --git a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch new file mode 100644 index 00000000..8dfd01bc --- /dev/null +++ b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch @@ -0,0 +1,102 @@ +From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 02:19:42 +0100 +Subject: [PATCH] core: correctly unregister PIDs from PID hashtables + +--- + src/core/unit.c | 42 ++++++++++++++++++------------------------ + 1 file changed, 18 insertions(+), 24 deletions(-) + +diff --git src/core/unit.c src/core/unit.c +index 2437ee3..85250ca 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { + /* Watch a specific PID. We only support one or two units + * watching each PID for now, not more. */ + +- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); ++ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); ++ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { + set_remove(u->pids, LONG_TO_PTR(pid)); + } + +-static int watch_pids_in_path(Unit *u, const char *path) { ++void unit_unwatch_all_pids(Unit *u) { ++ assert(u); ++ ++ while (!set_isempty(u->pids)) ++ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); ++ ++ set_free(u->pids); ++ u->pids = NULL; ++} ++ ++static int unit_watch_pids_in_path(Unit *u, const char *path) { + _cleanup_closedir_ DIR *d = NULL; + _cleanup_fclose_ FILE *f = NULL; + int ret = 0, r; +@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { + if (!p) + return -ENOMEM; + +- r = watch_pids_in_path(u, p); ++ r = unit_watch_pids_in_path(u, p); + if (r < 0 && ret >= 0) + ret = r; + } +@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { + return ret; + } + +- + int unit_watch_all_pids(Unit *u) { + assert(u); + +- if (!u->cgroup_path) +- return -ENOENT; +- + /* Adds all PIDs from our cgroup to the set of PIDs we watch */ + +- return watch_pids_in_path(u, u->cgroup_path); +-} +- +-void unit_unwatch_all_pids(Unit *u) { +- Iterator i; +- void *e; +- +- assert(u); +- +- SET_FOREACH(e, u->pids, i) { +- hashmap_remove_value(u->manager->watch_pids1, e, u); +- hashmap_remove_value(u->manager->watch_pids2, e, u); +- } ++ if (!u->cgroup_path) ++ return -ENOENT; + +- set_free(u->pids); +- u->pids = NULL; ++ return unit_watch_pids_in_path(u, u->cgroup_path); + } + + void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { +@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { + continue; + + if (!pid_is_unwaited(pid)) +- set_remove(u->pids, e); ++ unit_unwatch_pid(u, pid); + } + } + +-- +1.7.9.2 + 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 00000000..1cc429ce --- /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/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..9c554056 --- /dev/null +++ b/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,104 @@ +From de68938a2cb3ab535ebd9198723a651753c1a1df Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Mon, 8 Sep 2014 05:06:18 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 77 ++++++++++++++++++++++++++++++++- + 1 file changed, 76 insertions(+), 1 deletion(-) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 9f3136a..14aee74 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -184,7 +184,7 @@ bluetooth:v003B* + ID_VENDOR_FROM_DATABASE=Gennum Corporation + + bluetooth:v003C* +- ID_VENDOR_FROM_DATABASE=Research In Motion ++ ID_VENDOR_FROM_DATABASE=BlackBerry Limited (formerly Research In Motion) + + bluetooth:v003D* + ID_VENDOR_FROM_DATABASE=IPextreme, Inc. +@@ -1073,3 +1073,78 @@ bluetooth:v0162* + + bluetooth:v0163* + ID_VENDOR_FROM_DATABASE=PCH International ++ ++bluetooth:v0164* ++ ID_VENDOR_FROM_DATABASE=Qingdao Yeelink Information Technology Co., Ltd. ++ ++bluetooth:v0165* ++ ID_VENDOR_FROM_DATABASE=Milwaukee Tool (formerly Milwaukee Electric Tools) ++ ++bluetooth:v0166* ++ ID_VENDOR_FROM_DATABASE=MISHIK Pte Ltd ++ ++bluetooth:v0167* ++ ID_VENDOR_FROM_DATABASE=Bayer HealthCare ++ ++bluetooth:v0168* ++ ID_VENDOR_FROM_DATABASE=Spicebox LLC ++ ++bluetooth:v0169* ++ ID_VENDOR_FROM_DATABASE=emberlight ++ ++bluetooth:v016A* ++ ID_VENDOR_FROM_DATABASE=Cooper-Atkins Corporation ++ ++bluetooth:v016B* ++ ID_VENDOR_FROM_DATABASE=Qblinks ++ ++bluetooth:v016C* ++ ID_VENDOR_FROM_DATABASE=MYSPHERA ++ ++bluetooth:v016D* ++ ID_VENDOR_FROM_DATABASE=LifeScan Inc ++ ++bluetooth:v016E* ++ ID_VENDOR_FROM_DATABASE=Volantic AB ++ ++bluetooth:v016F* ++ ID_VENDOR_FROM_DATABASE=Podo Labs, Inc ++ ++bluetooth:v0170* ++ ID_VENDOR_FROM_DATABASE=Roche Diabetes Care AG ++ ++bluetooth:v0171* ++ ID_VENDOR_FROM_DATABASE=Amazon Fulfillment Service ++ ++bluetooth:v0172* ++ ID_VENDOR_FROM_DATABASE=Connovate Technology Private Limited ++ ++bluetooth:v0173* ++ ID_VENDOR_FROM_DATABASE=Kocomojo, LLC ++ ++bluetooth:v0174* ++ ID_VENDOR_FROM_DATABASE=Everykey LLC ++ ++bluetooth:v0175* ++ ID_VENDOR_FROM_DATABASE=Dynamic Controls ++ ++bluetooth:v0176* ++ ID_VENDOR_FROM_DATABASE=SentriLock ++ ++bluetooth:v0177* ++ ID_VENDOR_FROM_DATABASE=I-SYST inc. ++ ++bluetooth:v0178* ++ ID_VENDOR_FROM_DATABASE=CASIO COMPUTER CO., LTD. ++ ++bluetooth:v0179* ++ ID_VENDOR_FROM_DATABASE=LAPIS Semiconductor Co., Ltd. ++ ++bluetooth:v017A* ++ ID_VENDOR_FROM_DATABASE=Telemonitor, Inc. ++ ++bluetooth:v017B* ++ ID_VENDOR_FROM_DATABASE=taskit GmbH ++ ++bluetooth:v017C* ++ ID_VENDOR_FROM_DATABASE=Daimler AG +-- +1.7.9.2 + diff --git a/0008-hwdb-update.patch b/0008-hwdb-update.patch new file mode 100644 index 00000000..062b229b --- /dev/null +++ b/0008-hwdb-update.patch @@ -0,0 +1,1425 @@ +From cccc74971fe3c853832d742a15eac94f365603b6 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 20 Aug 2014 00:38:39 +0200 +Subject: [PATCH] update hwdb + +--- + hwdb/20-OUI.hwdb | 177 +++++++++++- + hwdb/20-pci-vendor-model.hwdb | 592 ++++++++++++++++++++++++++++++++++++++++- + hwdb/20-usb-vendor-model.hwdb | 12 + + 3 files changed, 776 insertions(+), 5 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index f9501be..e0c5fed 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -21371,7 +21371,7 @@ OUI:000A2F* + ID_OUI_FROM_DATABASE=Artnix Inc. + + OUI:000A30* +- ID_OUI_FROM_DATABASE=Johnson Controls-ASG ++ ID_OUI_FROM_DATABASE=Visteon Corporation + + OUI:000A31* + ID_OUI_FROM_DATABASE=HCV Consulting +@@ -51601,6 +51601,9 @@ OUI:00E666* + OUI:00E6D3* + ID_OUI_FROM_DATABASE=NIXDORF COMPUTER CORP. + ++OUI:00E6E8* ++ ID_OUI_FROM_DATABASE=Netzin Technology Corporation,.Ltd. ++ + OUI:00E8AB* + ID_OUI_FROM_DATABASE=Meggitt Training Systems, Inc. + +@@ -51616,6 +51619,9 @@ OUI:00F051* + OUI:00F403* + ID_OUI_FROM_DATABASE=Orbis Systems Oy + ++OUI:00F46F* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:00F4B9* + ID_OUI_FROM_DATABASE=Apple + +@@ -51856,6 +51862,9 @@ OUI:0498F3* + OUI:0499E6* + ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd + ++OUI:049B9C* ++ ID_OUI_FROM_DATABASE=Eadingcore Intelligent Technology Co., Ltd. ++ + OUI:049C62* + ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. + +@@ -52720,6 +52729,9 @@ OUI:08E84F* + OUI:08EA44* + ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. + ++OUI:08EB29* ++ ID_OUI_FROM_DATABASE=Jiangsu Huitong Group Co.,Ltd. ++ + OUI:08EB74* + ID_OUI_FROM_DATABASE=Humax + +@@ -52729,6 +52741,9 @@ OUI:08EBED* + OUI:08EDB9* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:08EE8B* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:08EF3B* + ID_OUI_FROM_DATABASE=MCS Logic Inc. + +@@ -52969,6 +52984,9 @@ OUI:0CAC05* + OUI:0CAF5A* + ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED + ++OUI:0CB319* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:0CB4EF* + ID_OUI_FROM_DATABASE=Digience Co.,Ltd. + +@@ -53036,7 +53054,7 @@ OUI:0CD996* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + + OUI:0CD9C1* +- ID_OUI_FROM_DATABASE=Johnson Controls-ASG ++ ID_OUI_FROM_DATABASE=Visteon Corporation + + OUI:0CDA41* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited +@@ -53434,6 +53452,9 @@ OUI:10F96F* + OUI:10F9EE* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:10FACE* ++ ID_OUI_FROM_DATABASE=Reacheng Communication Technology Co.,Ltd ++ + OUI:10FBF0* + ID_OUI_FROM_DATABASE=KangSheng LTD. + +@@ -55417,6 +55438,9 @@ OUI:2C441B* + OUI:2C44FD* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:2C5089* ++ ID_OUI_FROM_DATABASE=Shenzhen Kaixuan Visual Technology Co.,Limited ++ + OUI:2C534A* + ID_OUI_FROM_DATABASE=Shenzhen Winyao Electronic Limited + +@@ -55774,6 +55798,9 @@ OUI:306E5C* + OUI:3071B2* + ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. + ++OUI:307350* ++ ID_OUI_FROM_DATABASE=Inpeco SA ++ + OUI:307512* + ID_OUI_FROM_DATABASE=Sony Mobile Communications AB + +@@ -55972,6 +55999,9 @@ OUI:343111* + OUI:3431C4* + ID_OUI_FROM_DATABASE=AVM GmbH + ++OUI:3438AF* ++ ID_OUI_FROM_DATABASE=Inlab Software GmbH ++ + OUI:3440B5* + ID_OUI_FROM_DATABASE=IBM + +@@ -56323,12 +56353,18 @@ OUI:3826CD* + OUI:3828EA* + ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD + ++OUI:382C4A* ++ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ++ + OUI:382DD1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + + OUI:3831AC* + ID_OUI_FROM_DATABASE=WEG + ++OUI:383BC8* ++ ID_OUI_FROM_DATABASE=2wire ++ + OUI:383F10* + ID_OUI_FROM_DATABASE=DBL Technology Ltd. + +@@ -56416,6 +56452,9 @@ OUI:388EE7* + OUI:3891FB* + ID_OUI_FROM_DATABASE=Xenox Holding BV + ++OUI:389496* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:389592* + ID_OUI_FROM_DATABASE=Beijing Tendyron Corporation + +@@ -56605,6 +56644,9 @@ OUI:3C1A79* + OUI:3C1CBE* + ID_OUI_FROM_DATABASE=JADAK LLC + ++OUI:3C1E13* ++ ID_OUI_FROM_DATABASE=HANGZHOU SUNRISE TECHNOLOGY CO., LTD ++ + OUI:3C25D7* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -57343,6 +57385,9 @@ OUI:446C24* + OUI:446D57* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + ++OUI:446D6C* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:44700B* + ID_OUI_FROM_DATABASE=IFFU + +@@ -57778,6 +57823,9 @@ OUI:4C09B4* + OUI:4C0B3A* + ID_OUI_FROM_DATABASE=TCT Mobile Limited + ++OUI:4C0BBE* ++ ID_OUI_FROM_DATABASE=Microsoft ++ + OUI:4C0DEE* + ID_OUI_FROM_DATABASE=JABIL CIRCUIT (SHANGHAI) LTD. + +@@ -58372,6 +58420,9 @@ OUI:50ED94* + OUI:50F003* + ID_OUI_FROM_DATABASE=Open Stack, Inc. + ++OUI:50F43C* ++ ID_OUI_FROM_DATABASE=Leeo Inc ++ + OUI:50F520* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -58405,6 +58456,9 @@ OUI:540536* + OUI:54055F* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:54098D* ++ ID_OUI_FROM_DATABASE=deister electronic GmbH ++ + OUI:54112F* + ID_OUI_FROM_DATABASE=Sulzer Pump Solutions Finland Oy + +@@ -59137,6 +59191,9 @@ OUI:5C93A2* + OUI:5C95AE* + ID_OUI_FROM_DATABASE=Apple + ++OUI:5C966A* ++ ID_OUI_FROM_DATABASE=RTNET ++ + OUI:5C969D* + ID_OUI_FROM_DATABASE=Apple + +@@ -59905,6 +59962,9 @@ OUI:64AE0C* + OUI:64AE88* + ID_OUI_FROM_DATABASE=Polytec GmbH + ++OUI:64B21D* ++ ID_OUI_FROM_DATABASE=Chengdu Phycom Tech Co., Ltd. ++ + OUI:64B310* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -59917,6 +59977,9 @@ OUI:64B473* + OUI:64B64A* + ID_OUI_FROM_DATABASE=ViVOtech, Inc. + ++OUI:64B853* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:64B9E8* + ID_OUI_FROM_DATABASE=Apple + +@@ -60208,6 +60271,9 @@ OUI:68974B* + OUI:6897E8* + ID_OUI_FROM_DATABASE=Society of Motion Picture & Television Engineers + ++OUI:6899CD* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:689C5E* + ID_OUI_FROM_DATABASE=AcSiP Technology Corp. + +@@ -60325,6 +60391,9 @@ OUI:68F06D* + OUI:68F125* + ID_OUI_FROM_DATABASE=Data Controls Inc. + ++OUI:68F728* ++ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd ++ + OUI:68F895* + ID_OUI_FROM_DATABASE=Redflow Limited + +@@ -61081,12 +61150,18 @@ OUI:744D79* + OUI:745327* + ID_OUI_FROM_DATABASE=COMMSEN CO., LIMITED + ++OUI:74547D* ++ ID_OUI_FROM_DATABASE=Cisco SPVTG ++ + OUI:745612* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + + OUI:745798* + ID_OUI_FROM_DATABASE=TRUMPF Laser GmbH + Co. KG + ++OUI:745C9F* ++ ID_OUI_FROM_DATABASE=TCT mobile ltd. ++ + OUI:745E1C* + ID_OUI_FROM_DATABASE=PIONEER CORPORATION + +@@ -62446,6 +62521,9 @@ OUI:842615* + OUI:84262B* + ID_OUI_FROM_DATABASE=Alcatel-Lucent + ++OUI:842690* ++ ID_OUI_FROM_DATABASE=BEIJING THOUGHT SCIENCE CO.,LTD. ++ + OUI:8427CE* + ID_OUI_FROM_DATABASE=Corporation of the Presiding Bishop of The Church of Jesus Christ of Latter-day Saints + +@@ -62506,6 +62584,9 @@ OUI:844F03* + OUI:845181* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:8455A5* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:84569C* + ID_OUI_FROM_DATABASE=Coho Data, Inc., + +@@ -62611,6 +62692,9 @@ OUI:849CA6* + OUI:849DC5* + ID_OUI_FROM_DATABASE=Centera Photonics Inc. + ++OUI:84A466* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:84A6C8* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -62824,6 +62908,9 @@ OUI:886B76* + OUI:88708C* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:8870EF* ++ ID_OUI_FROM_DATABASE=SC Professional Trading Co., Ltd. ++ + OUI:887398* + ID_OUI_FROM_DATABASE=K2E Tekpoint + +@@ -62998,6 +63085,9 @@ OUI:8C006D* + OUI:8C04FF* + ID_OUI_FROM_DATABASE=Technicolor USA Inc. + ++OUI:8C0551* ++ ID_OUI_FROM_DATABASE=Koubachi AG ++ + OUI:8C078C* + ID_OUI_FROM_DATABASE=FLOW DATA INC + +@@ -63181,6 +63271,9 @@ OUI:8C8E76* + OUI:8C90D3* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:8C9109* ++ ID_OUI_FROM_DATABASE=Toyoshima Electric Technoeogy(Suzhou) Co.,Ltd. ++ + OUI:8C9236* + ID_OUI_FROM_DATABASE=Aus.Linx Technology Co., Ltd. + +@@ -64249,6 +64342,9 @@ OUI:98F8C1* + OUI:98F8DB* + ID_OUI_FROM_DATABASE=Marini Impianti Industriali s.r.l. + ++OUI:98FAE3* ++ ID_OUI_FROM_DATABASE=Xiaomi inc. ++ + OUI:98FB12* + ID_OUI_FROM_DATABASE=Grand Electronics (HK) Ltd + +@@ -64804,6 +64900,9 @@ OUI:A0A130* + OUI:A0A23C* + ID_OUI_FROM_DATABASE=GPMS + ++OUI:A0A3E2* ++ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc ++ + OUI:A0A763* + ID_OUI_FROM_DATABASE=Polytron Vertrieb GmbH + +@@ -64819,6 +64918,9 @@ OUI:A0B100* + OUI:A0B3CC* + ID_OUI_FROM_DATABASE=Hewlett Packard + ++OUI:A0B4A5* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:A0B5DA* + ID_OUI_FROM_DATABASE=HongKong THTF Co., Ltd + +@@ -65116,6 +65218,9 @@ OUI:A49A58* + OUI:A49B13* + ID_OUI_FROM_DATABASE=Burroughs Payment Systems, Inc. + ++OUI:A49D49* ++ ID_OUI_FROM_DATABASE=Ketra, Inc. ++ + OUI:A49EDB* + ID_OUI_FROM_DATABASE=AutoCrib, Inc. + +@@ -65389,6 +65494,9 @@ OUI:A8776F* + OUI:A87B39* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:A87C01* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:A87E33* + ID_OUI_FROM_DATABASE=Nokia Danmark A/S + +@@ -65479,6 +65587,9 @@ OUI:A8CCC5* + OUI:A8CE90* + ID_OUI_FROM_DATABASE=CVC + ++OUI:A8D0E3* ++ ID_OUI_FROM_DATABASE=Systech Electronics Ltd. ++ + OUI:A8D0E5* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -65488,6 +65599,9 @@ OUI:A8D236* + OUI:A8D3C8* + ID_OUI_FROM_DATABASE=Wachendorff Elektronik GmbH & Co. KG + ++OUI:A8D88A* ++ ID_OUI_FROM_DATABASE=Wyconn ++ + OUI:A8E018* + ID_OUI_FROM_DATABASE=Nokia Corporation + +@@ -65602,6 +65716,9 @@ OUI:AC3613* + OUI:AC3870* + ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. + ++OUI:AC3A7A* ++ ID_OUI_FROM_DATABASE=Roku ++ + OUI:AC3C0B* + ID_OUI_FROM_DATABASE=Apple + +@@ -66049,6 +66166,9 @@ OUI:B09074* + OUI:B09134* + ID_OUI_FROM_DATABASE=Taleo + ++OUI:B09137* ++ ID_OUI_FROM_DATABASE=ISis ImageStream Internet Solutions, Inc ++ + OUI:B0973A* + ID_OUI_FROM_DATABASE=E-Fuel Corporation + +@@ -66271,6 +66391,9 @@ OUI:B435F7* + OUI:B43741* + ID_OUI_FROM_DATABASE=Consert, Inc. + ++OUI:B43934* ++ ID_OUI_FROM_DATABASE=Pen Generations, Inc. ++ + OUI:B439D6* + ID_OUI_FROM_DATABASE=ProCurve Networking by HP + +@@ -66397,6 +66520,9 @@ OUI:B4A4E3* + OUI:B4A5A9* + ID_OUI_FROM_DATABASE=MODI GmbH + ++OUI:B4A828* ++ ID_OUI_FROM_DATABASE=Shenzhen Concox Information Technology Co., Ltd ++ + OUI:B4A82B* + ID_OUI_FROM_DATABASE=Histar Digital Electronics Co., Ltd. + +@@ -67114,6 +67240,9 @@ OUI:BCBAE1* + OUI:BCBBC9* + ID_OUI_FROM_DATABASE=Kellendonk Elektronik GmbH + ++OUI:BCBC46* ++ ID_OUI_FROM_DATABASE=SKS Welding Systems GmbH ++ + OUI:BCC168* + ID_OUI_FROM_DATABASE=DinBox Sverige AB + +@@ -67840,6 +67969,9 @@ OUI:C819F7* + OUI:C81AFE* + ID_OUI_FROM_DATABASE=DLOGIC GmbH + ++OUI:C81B6B* ++ ID_OUI_FROM_DATABASE=Innova Security ++ + OUI:C81E8E* + ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd + +@@ -68530,6 +68662,9 @@ OUI:D01AA7* + OUI:D01CBB* + ID_OUI_FROM_DATABASE=Beijing Ctimes Digital Technology Co., Ltd. + ++OUI:D02212* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:D022BE* + ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. + +@@ -69259,6 +69394,9 @@ OUI:D831CF* + OUI:D8337F* + ID_OUI_FROM_DATABASE=Office FA.com Co.,Ltd. + ++OUI:D83C69* ++ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp ++ + OUI:D842AC* + ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. + +@@ -69349,6 +69487,9 @@ OUI:D88039* + OUI:D881CE* + ID_OUI_FROM_DATABASE=AHN INC. + ++OUI:D88466* ++ ID_OUI_FROM_DATABASE=Extreme Networks ++ + OUI:D88A3B* + ID_OUI_FROM_DATABASE=UNIT-EM + +@@ -69376,6 +69517,9 @@ OUI:D89760* + OUI:D8977C* + ID_OUI_FROM_DATABASE=Grey Innovation + ++OUI:D897BA* ++ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION ++ + OUI:D89D67* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -69442,6 +69586,9 @@ OUI:D8C7C8* + OUI:D8C99D* + ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED + ++OUI:D8CB8A* ++ ID_OUI_FROM_DATABASE=Micro-Star INTL CO., LTD. ++ + OUI:D8CF9C* + ID_OUI_FROM_DATABASE=Apple + +@@ -69505,6 +69652,9 @@ OUI:D8EE78* + OUI:D8F0F2* + ID_OUI_FROM_DATABASE=Zeebo Inc + ++OUI:D8F710* ++ ID_OUI_FROM_DATABASE=Libre Wireless Technologies Inc. ++ + OUI:D8FB11* + ID_OUI_FROM_DATABASE=AXACORE + +@@ -69749,7 +69899,7 @@ OUI:DCD87F* + ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd + + OUI:DCDA4F* +- ID_OUI_FROM_DATABASE=GET Technology,INC ++ ID_OUI_FROM_DATABASE=GETCK TECHNOLOGY, INC + + OUI:DCDECA* + ID_OUI_FROM_DATABASE=Akyllor +@@ -69763,6 +69913,9 @@ OUI:DCE578* + OUI:DCE71C* + ID_OUI_FROM_DATABASE=AUG Elektronik GmbH + ++OUI:DCEC06* ++ ID_OUI_FROM_DATABASE=Heimi Network Technology Co., Ltd. ++ + OUI:DCF05D* + ID_OUI_FROM_DATABASE=Letta Teknoloji + +@@ -69856,6 +70009,9 @@ OUI:E039D7* + OUI:E03C5B* + ID_OUI_FROM_DATABASE=SHENZHEN JIAXINJIE ELECTRON CO.,LTD + ++OUI:E03E44* ++ ID_OUI_FROM_DATABASE=Broadcom Corporation ++ + OUI:E03E4A* + ID_OUI_FROM_DATABASE=Cavanagh Group International + +@@ -70378,6 +70534,9 @@ OUI:E4F4C6* + OUI:E4F7A1* + ID_OUI_FROM_DATABASE=Datafox GmbH + ++OUI:E4F8EF* ++ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd ++ + OUI:E4FA1D* + ID_OUI_FROM_DATABASE=PAD Peripheral Advanced Design Inc. + +@@ -70549,6 +70708,9 @@ OUI:E8802E* + OUI:E880D8* + ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. + ++OUI:E887A3* ++ ID_OUI_FROM_DATABASE=Loxley Public Company Limited ++ + OUI:E8892C* + ID_OUI_FROM_DATABASE=ARRIS Group, Inc. + +@@ -70627,6 +70789,9 @@ OUI:E8C320* + OUI:E8CBA1* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:E8CC18* ++ ID_OUI_FROM_DATABASE=D-Link International ++ + OUI:E8CC32* + ID_OUI_FROM_DATABASE=Micronet LTD + +@@ -71008,6 +71173,9 @@ OUI:F015A0* + OUI:F01C13* + ID_OUI_FROM_DATABASE=LG Electronics + ++OUI:F01C2D* ++ ID_OUI_FROM_DATABASE=Juniper Networks ++ + OUI:F01FAF* + ID_OUI_FROM_DATABASE=Dell Inc + +@@ -71398,6 +71566,9 @@ OUI:F4472A* + OUI:F44848* + ID_OUI_FROM_DATABASE=Amscreen Group Ltd + ++OUI:F44E05* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:F44EFD* + ID_OUI_FROM_DATABASE=Actions Semiconductor Co.,Ltd.(Cayman Islands) + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index a6a2754..3bcdbc0 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -10478,6 +10478,9 @@ pci:v00001014d0000034Asv00001014sd000004C8* + pci:v00001014d0000034Asv00001014sd00000C49* + ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) + ++pci:v00001014d0000044B* ++ ID_MODEL_FROM_DATABASE=GenWQE Accelerator Adapter ++ + pci:v00001014d000004AA* + ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) + +@@ -26387,6 +26390,9 @@ pci:v000010DEd00000FE2* + pci:v000010DEd00000FE3* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] + ++pci:v000010DEd00000FE3sv0000103Csd00002B16* ++ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) ++ + pci:v000010DEd00000FE3sv000017AAsd00003675* + ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) + +@@ -26420,6 +26426,9 @@ pci:v000010DEd00000FF1* + pci:v000010DEd00000FF2* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K1] + ++pci:v000010DEd00000FF3* ++ ID_MODEL_FROM_DATABASE=GK107GL [Quadro K420] ++ + pci:v000010DEd00000FF5* + ID_MODEL_FROM_DATABASE=GK107GL [GRID K1 Tesla USM] + +@@ -26546,6 +26555,9 @@ pci:v000010DEd00001029* + pci:v000010DEd0000103A* + ID_MODEL_FROM_DATABASE=GK110GL [Quadro K6000] + ++pci:v000010DEd0000103C* ++ ID_MODEL_FROM_DATABASE=GK110GL [Quadro K5200] ++ + pci:v000010DEd00001040* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 520] + +@@ -26981,6 +26993,12 @@ pci:v000010DEd00001140sv00001028sd000005F4* + pci:v000010DEd00001140sv00001028sd0000064E* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + ++pci:v000010DEd00001140sv00001028sd00000652* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ ++pci:v000010DEd00001140sv00001028sd00000662* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv00001028sd0000068D* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) + +@@ -27239,9 +27257,15 @@ pci:v000010DEd00001140sv0000152Dsd00000982* + pci:v000010DEd00001140sv0000152Dsd00000983* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + ++pci:v000010DEd00001140sv0000152Dsd00001005* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 820M) ++ + pci:v000010DEd00001140sv0000152Dsd00001012* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) + ++pci:v000010DEd00001140sv0000152Dsd00001019* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv0000152Dsd00001030* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) + +@@ -27254,6 +27278,9 @@ pci:v000010DEd00001140sv0000152Dsd00001067* + pci:v000010DEd00001140sv0000152Dsd00001072* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) + ++pci:v000010DEd00001140sv0000152Dsd00001086* ++ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) ++ + pci:v000010DEd00001140sv000017AAsd00002200* + ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) + +@@ -27578,6 +27605,9 @@ pci:v000010DEd000011B0sv000010DEsd0000101B* + pci:v000010DEd000011B1* + ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] + ++pci:v000010DEd000011B4* ++ ID_MODEL_FROM_DATABASE=GK104GL [Quadro K4200] ++ + pci:v000010DEd000011B6* + ID_MODEL_FROM_DATABASE=GK104GLM [Quadro K3100M] + +@@ -27863,6 +27893,9 @@ pci:v000010DEd00001295sv0000103Csd00002B0F* + pci:v000010DEd00001295sv0000103Csd00002B11* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) + ++pci:v000010DEd00001295sv0000103Csd00002B20* ++ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce 810A) ++ + pci:v000010DEd00001295sv0000103Csd00002B21* + ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) + +@@ -27887,6 +27920,9 @@ pci:v000010DEd000012BA* + pci:v000010DEd00001340* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] + ++pci:v000010DEd00001340sv0000103Csd00002B2B* ++ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] (GeForce 830A) ++ + pci:v000010DEd00001341* + ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] + +@@ -27926,6 +27962,15 @@ pci:v000010DEd00001392* + pci:v000010DEd00001393* + ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] + ++pci:v000010DEd000013B3* ++ ID_MODEL_FROM_DATABASE=GM107GLM [Quadro K2200M] ++ ++pci:v000010DEd000013BA* ++ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K2200] ++ ++pci:v000010DEd000013BB* ++ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K620] ++ + pci:v000010DF* + ID_VENDOR_FROM_DATABASE=Emulex Corporation + +@@ -29291,6 +29336,9 @@ pci:v00001103d00000622* + pci:v00001103d00000640* + ID_MODEL_FROM_DATABASE=RocketRAID 640 4 Port SATA-III Controller + ++pci:v00001103d00000644* ++ ID_MODEL_FROM_DATABASE=RocketRAID 644 4 Port SATA-III Controller (eSATA) ++ + pci:v00001103d00001720* + ID_MODEL_FROM_DATABASE=RocketRAID 1720 (2x SATA II RAID Controller) + +@@ -40325,6 +40373,12 @@ pci:v00001360d00000205* + pci:v00001360d00000206* + ID_MODEL_FROM_DATABASE=GPS180PEX GPS Receiver (PCI Express) + ++pci:v00001360d00000207* ++ ID_MODEL_FROM_DATABASE=GLN180PEX GPS/GLONASS receiver (PCI Express) ++ ++pci:v00001360d00000208* ++ ID_MODEL_FROM_DATABASE=GPS180AMC GPS Receiver (PCI Express / MicroTCA / AdvancedMC) ++ + pci:v00001360d00000301* + ID_MODEL_FROM_DATABASE=TCR510PCI IRIG Timecode Reader + +@@ -41525,6 +41579,9 @@ pci:v000013F6d00008788sv00001043sd00008428* + pci:v000013F6d00008788sv00001043sd00008467* + ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) + ++pci:v000013F6d00008788sv00001043sd000085F4* ++ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX II)) ++ + pci:v000013F6d00008788sv000013F6sd00008782* + ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) + +@@ -45905,6 +45962,9 @@ pci:v000014E4d000043A0* + pci:v000014E4d000043A9* + ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n + ++pci:v000014E4d000043AA* ++ ID_MODEL_FROM_DATABASE=BCM43131 802.11b/g/n ++ + pci:v000014E4d000043B1* + ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter + +@@ -46884,7 +46944,7 @@ pci:v000014F1d00008852* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder + + pci:v000014F1d00008852sv00000070sd00008010* +- ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinTV HVR-1400 ExpressCard) + + pci:v000014F1d00008852sv0000107Dsd00006F22* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) +@@ -46898,6 +46958,9 @@ pci:v000014F1d00008852sv0000153Bsd0000117E* + pci:v000014F1d00008852sv000018ACsd0000DB78* + ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) + ++pci:v000014F1d00008852sv00004254sd00009580* ++ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (T9580) ++ + pci:v000014F1d00008880* + ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb + +@@ -47438,6 +47501,18 @@ pci:v00001542* + pci:v00001542d00009260* + ID_MODEL_FROM_DATABASE=RCIM-II Real-Time Clock & Interrupt Module + ++pci:v00001542d00009272* ++ ID_MODEL_FROM_DATABASE=Pulse Width Modulator Card ++ ++pci:v00001542d00009277* ++ ID_MODEL_FROM_DATABASE=5 Volt Delta Sigma Converter Card ++ ++pci:v00001542d00009278* ++ ID_MODEL_FROM_DATABASE=10 Volt Delta Sigma Converter Card ++ ++pci:v00001542d00009287* ++ ID_MODEL_FROM_DATABASE=Analog Output Card ++ + pci:v00001543* + ID_VENDOR_FROM_DATABASE=SILICON Laboratories + +@@ -49505,6 +49580,9 @@ pci:v000016B8* + pci:v000016BE* + ID_VENDOR_FROM_DATABASE=Creatix Polymedia GmbH + ++pci:v000016C3* ++ ID_VENDOR_FROM_DATABASE=Synopsys, Inc. ++ + pci:v000016C6* + ID_VENDOR_FROM_DATABASE=Micrel-Kendin + +@@ -53936,6 +54014,9 @@ pci:v0000416Cd00000100* + pci:v0000416Cd00000200* + ID_MODEL_FROM_DATABASE=CPC + ++pci:v00004254* ++ ID_VENDOR_FROM_DATABASE=DVBSky ++ + pci:v00004321* + ID_VENDOR_FROM_DATABASE=Tata Power Strategic Electronics Division + +@@ -59621,6 +59702,12 @@ pci:v00008086d000015A2* + pci:v00008086d000015A3* + ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V + ++pci:v00008086d000015B7* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-V ++ ++pci:v00008086d000015B8* ++ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-LM ++ + pci:v00008086d00001600* + ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI + +@@ -69614,6 +69701,9 @@ pci:v00008086d00003B23* + pci:v00008086d00003B25* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller + ++pci:v00008086d00003B25sv0000103Csd00003118* ++ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller (HP Smart Array B110i SATA RAID Controller) ++ + pci:v00008086d00003B26* + ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller + +@@ -70718,6 +70808,489 @@ pci:v00008086d000065FA* + pci:v00008086d000065FF* + ID_MODEL_FROM_DATABASE=5100 Chipset DMA Engine + ++pci:v00008086d00006F00* ++ ID_MODEL_FROM_DATABASE=Broadwell DMI2 ++ ++pci:v00008086d00006F01* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 0 ++ ++pci:v00008086d00006F02* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 ++ ++pci:v00008086d00006F03* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 ++ ++pci:v00008086d00006F04* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F05* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F06* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F07* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 ++ ++pci:v00008086d00006F08* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F09* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F0A* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F0B* ++ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 ++ ++pci:v00008086d00006F10* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F11* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F12* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F13* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F14* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F15* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F16* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F17* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F18* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F19* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1A* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1B* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1C* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug ++ ++pci:v00008086d00006F1D* ++ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent ++ ++pci:v00008086d00006F1E* ++ ID_MODEL_FROM_DATABASE=Broadwell Ubox ++ ++pci:v00008086d00006F1F* ++ ID_MODEL_FROM_DATABASE=Broadwell Ubox ++ ++pci:v00008086d00006F20* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 0 ++ ++pci:v00008086d00006F21* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 1 ++ ++pci:v00008086d00006F22* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 2 ++ ++pci:v00008086d00006F23* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 3 ++ ++pci:v00008086d00006F24* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 4 ++ ++pci:v00008086d00006F25* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 5 ++ ++pci:v00008086d00006F26* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 6 ++ ++pci:v00008086d00006F27* ++ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 7 ++ ++pci:v00008086d00006F28* ++ ID_MODEL_FROM_DATABASE=Broadwell Adress Map/VTd_Misc/System Management ++ ++pci:v00008086d00006F29* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO Hot Plug ++ ++pci:v00008086d00006F2A* ++ ID_MODEL_FROM_DATABASE=Broadwell IIO RAS/Control Status/Global Errors ++ ++pci:v00008086d00006F2C* ++ ID_MODEL_FROM_DATABASE=Broadwell I/O APIC ++ ++pci:v00008086d00006F30* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 ++ ++pci:v00008086d00006F32* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 ++ ++pci:v00008086d00006F33* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 ++ ++pci:v00008086d00006F34* ++ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent ++ ++pci:v00008086d00006F36* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 ++ ++pci:v00008086d00006F37* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 ++ ++pci:v00008086d00006F38* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 ++ ++pci:v00008086d00006F39* ++ ID_MODEL_FROM_DATABASE=Broadwell IO Performance Monitoring ++ ++pci:v00008086d00006F3A* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 ++ ++pci:v00008086d00006F3E* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 ++ ++pci:v00008086d00006F3F* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 ++ ++pci:v00008086d00006F40* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 ++ ++pci:v00008086d00006F41* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 ++ ++pci:v00008086d00006F43* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 ++ ++pci:v00008086d00006F45* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug ++ ++pci:v00008086d00006F46* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug ++ ++pci:v00008086d00006F47* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug ++ ++pci:v00008086d00006F60* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 ++ ++pci:v00008086d00006F68* ++ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS ++ ++pci:v00008086d00006F6A* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6B* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6C* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6D* ++ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder ++ ++pci:v00008086d00006F6E* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Broadcast ++ ++pci:v00008086d00006F6F* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast ++ ++pci:v00008086d00006F70* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 Debug ++ ++pci:v00008086d00006F71* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS ++ ++pci:v00008086d00006F76* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug ++ ++pci:v00008086d00006F78* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 Debug ++ ++pci:v00008086d00006F79* ++ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS ++ ++pci:v00008086d00006F7D* ++ ID_MODEL_FROM_DATABASE=Broadwell Ubox ++ ++pci:v00008086d00006F7E* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug ++ ++pci:v00008086d00006F80* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 ++ ++pci:v00008086d00006F81* ++ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 ++ ++pci:v00008086d00006F83* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 ++ ++pci:v00008086d00006F85* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug ++ ++pci:v00008086d00006F86* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug ++ ++pci:v00008086d00006F87* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug ++ ++pci:v00008086d00006F88* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F8A* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F90* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 ++ ++pci:v00008086d00006F93* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 ++ ++pci:v00008086d00006F95* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug ++ ++pci:v00008086d00006F96* ++ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug ++ ++pci:v00008086d00006F98* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F99* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F9A* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006F9C* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FA0* ++ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 ++ ++pci:v00008086d00006FA8* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS ++ ++pci:v00008086d00006FAA* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAB* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAC* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAD* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder ++ ++pci:v00008086d00006FAE* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Broadcast ++ ++pci:v00008086d00006FAF* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast ++ ++pci:v00008086d00006FB0* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Thermal Control ++ ++pci:v00008086d00006FB1* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Thermal Control ++ ++pci:v00008086d00006FB2* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Error ++ ++pci:v00008086d00006FB3* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Error ++ ++pci:v00008086d00006FB4* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Thermal Control ++ ++pci:v00008086d00006FB5* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Thermal Control ++ ++pci:v00008086d00006FB6* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Error ++ ++pci:v00008086d00006FB7* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Error ++ ++pci:v00008086d00006FB8* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FB9* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FBA* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FBB* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface ++ ++pci:v00008086d00006FBC* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FBD* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FBE* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FBF* ++ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface ++ ++pci:v00008086d00006FC0* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC1* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC2* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC3* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC4* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC5* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC6* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC7* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC8* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FC9* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCA* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCB* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCC* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCD* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCE* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FCF* ++ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit ++ ++pci:v00008086d00006FD0* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Thermal Control ++ ++pci:v00008086d00006FD1* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Thermal Control ++ ++pci:v00008086d00006FD2* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Error ++ ++pci:v00008086d00006FD3* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Error ++ ++pci:v00008086d00006FD4* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Thermal Control ++ ++pci:v00008086d00006FD5* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Thermal Control ++ ++pci:v00008086d00006FD6* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Error ++ ++pci:v00008086d00006FD7* ++ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Error ++ ++pci:v00008086d00006FE0* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE1* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE2* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE3* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE4* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE5* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE6* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE7* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE8* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FE9* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEA* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEB* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEC* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FED* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEE* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FEF* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF0* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF1* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF8* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FF9* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFA* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFB* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFC* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFD* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ ++pci:v00008086d00006FFE* ++ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent ++ + pci:v00008086d00007000* + ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] + +@@ -73838,8 +74411,23 @@ pci:v0000D161d0000800A* + pci:v0000D161d0000800B* + ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card + ++pci:v0000D161d0000800C* ++ ID_MODEL_FROM_DATABASE=Wildcard A8A 8-port analog card ++ ++pci:v0000D161d0000800D* ++ ID_MODEL_FROM_DATABASE=Wildcard A8B 8-port analog card (PCI-Express) ++ + pci:v0000D161d0000800E* +- ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) ++ ID_MODEL_FROM_DATABASE=Wildcard TE235/TE435 quad-span T1/E1/J1 card (PCI-Express) ++ ++pci:v0000D161d0000800F* ++ ID_MODEL_FROM_DATABASE=Wildcard A4A 4-port analog card ++ ++pci:v0000D161d00008010* ++ ID_MODEL_FROM_DATABASE=Wildcard A4B 4-port analog card (PCI-Express) ++ ++pci:v0000D161d00008013* ++ ID_MODEL_FROM_DATABASE=Wildcard TE236/TE436 quad-span T1/E1/J1 card + + pci:v0000D161d0000B410* + ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index ed6b2b1..d87313c 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -11243,6 +11243,9 @@ usb:v04A9p3261* + usb:v04A9p3262* + ID_MODEL_FROM_DATABASE=PowerShot A2600 + ++usb:v04A9p3263* ++ ID_MODEL_FROM_DATABASE=PowerShot SX275 HS ++ + usb:v04A9p3264* + ID_MODEL_FROM_DATABASE=PowerShot A1400 + +@@ -11261,6 +11264,9 @@ usb:v04A9p3276* + usb:v04A9p3277* + ID_MODEL_FROM_DATABASE=PowerShot SX510 HS + ++usb:v04A9p3278* ++ ID_MODEL_FROM_DATABASE=PowerShot S200 ++ + usb:v04A9p327D* + ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 + +@@ -11666,6 +11672,9 @@ usb:v04B4p2050* + usb:v04B4p2830* + ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) + ++usb:v04B4p3813* ++ ID_MODEL_FROM_DATABASE=NANO BIOS Programmer ++ + usb:v04B4p4235* + ID_MODEL_FROM_DATABASE=Monitor 02 Driver + +@@ -33116,6 +33125,9 @@ usb:v0B48p300D* + usb:v0B48p300E* + ID_MODEL_FROM_DATABASE=TT-connect C-2400 + ++usb:v0B48p3012* ++ ID_MODEL_FROM_DATABASE=TT-connect CT2-4650 CI ++ + usb:v0B48p3014* + ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 + +-- +1.7.9.2 + diff --git a/0008-journald-fix-memory-leak-on-error-path.patch b/0008-journald-fix-memory-leak-on-error-path.patch new file mode 100644 index 00000000..6f67860c --- /dev/null +++ b/0008-journald-fix-memory-leak-on-error-path.patch @@ -0,0 +1,29 @@ +From 26d8ff04914a5208d029e899682cd314b7714bf0 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Nov 2014 23:10:34 +0100 +Subject: [PATCH] journald: fix memory leak on error path + +--- + src/journal/journal-vacuum.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c +index d141fe0..80723c4 100644 +--- src/journal/journal-vacuum.c ++++ src/journal/journal-vacuum.c +@@ -283,7 +283,11 @@ int journal_directory_vacuum( + + patch_realtime(directory, p, &st, &realtime); + +- GREEDY_REALLOC(list, n_allocated, n_list + 1); ++ if (!GREEDY_REALLOC(list, n_allocated, n_list + 1)) { ++ free(p); ++ r = -ENOMEM; ++ goto finish; ++ } + + list[n_list].filename = p; + list[n_list].usage = 512UL * (uint64_t) st.st_blocks; +-- +1.7.9.2 + diff --git a/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch b/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch new file mode 100644 index 00000000..b43a43c1 --- /dev/null +++ b/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch @@ -0,0 +1,36 @@ +From 252094eb05c58270a0bc35b14ad30a126ddbb3bb Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 11 Mar 2014 05:23:39 +0100 +Subject: [PATCH] man: multiple sleep modes are to be separated by whitespace, + not commas + +As pointed out by Jason A. Donenfeld. +--- + man/systemd-sleep.conf.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-sleep.conf.xml man/systemd-sleep.conf.xml +index a917f4d..d0ea6d8 100644 +--- man/systemd-sleep.conf.xml ++++ man/systemd-sleep.conf.xml +@@ -128,7 +128,7 @@ along with systemd; If not, see . + systemd-hibernate.service8, or + systemd-hybrid-sleep.service8. + More than one value can be specified by separating +- multiple values with commas. They will be tried ++ multiple values with whitespace. They will be tried + in turn, until one is written without error. If + neither succeeds, the operation will be aborted. + +@@ -146,7 +146,7 @@ along with systemd; If not, see . + systemd-hibernate.service8, or + systemd-hybrid-sleep.service8. + More than one value can be specified by separating +- multiple values with commas. They will be tried ++ multiple values with whitespace. They will be tried + in turn, until one is written without error. If + neither succeeds, the operation will be aborted. + +-- +1.7.9.2 + diff --git a/0008-man-update-journald-rate-limit-defaults.patch b/0008-man-update-journald-rate-limit-defaults.patch new file mode 100644 index 00000000..54aad943 --- /dev/null +++ b/0008-man-update-journald-rate-limit-defaults.patch @@ -0,0 +1,28 @@ +From 8f18f550e7023948f199616fdfbb0f09711fd615 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Wed, 30 Apr 2014 19:53:13 +0300 +Subject: [PATCH] man: update journald rate limit defaults + +This brings the man page back into sync with the actual code. +--- + man/journald.conf.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/journald.conf.xml man/journald.conf.xml +index 239a2ec..5cd09a2 100644 +--- man/journald.conf.xml ++++ man/journald.conf.xml +@@ -190,8 +190,8 @@ + limiting is applied per-service, so + that two services which log do not + interfere with each other's +- limits. Defaults to 200 messages in +- 10s. The time specification for ++ limits. Defaults to 1000 messages in ++ 30s. The time specification for + RateLimitInterval= + may be specified in the following + units: s, +-- +1.7.9.2 + diff --git a/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch b/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch new file mode 100644 index 00000000..b189c671 --- /dev/null +++ b/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch @@ -0,0 +1,32 @@ +From 7c96ab1d2484ab2df3c6a84f1a1d2e076f469085 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 13 Aug 2014 20:01:19 +0200 +Subject: [PATCH] mount-setup: fix counting of early mounts without SMACK + +http://lists.freedesktop.org/archives/systemd-devel/2014-August/021772.html +--- + src/core/mount-setup.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git src/core/mount-setup.c src/core/mount-setup.c +index 206f89a..cc2633e 100644 +--- src/core/mount-setup.c ++++ src/core/mount-setup.c +@@ -63,8 +63,13 @@ typedef struct MountPoint { + + /* The first three entries we might need before SELinux is up. The + * fourth (securityfs) is needed by IMA to load a custom policy. The +- * other ones we can delay until SELinux and IMA are loaded. */ ++ * other ones we can delay until SELinux and IMA are loaded. When ++ * SMACK is enabled we need smackfs, too, so it's a fifth one. */ ++#ifdef HAVE_SMACK + #define N_EARLY_MOUNT 5 ++#else ++#define N_EARLY_MOUNT 4 ++#endif + + static const MountPoint mount_table[] = { + { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, +-- +1.7.9.2 + diff --git a/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch b/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch new file mode 100644 index 00000000..d2eac44b --- /dev/null +++ b/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch @@ -0,0 +1,27 @@ +From bbb6ff0216a7c081a2e63e01b1f121592b0165bb Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 14 Mar 2014 21:12:36 +0100 +Subject: [PATCH] sd-bus: don't access invalid memory if a signal matcher was + freed from its own callback + +--- + src/libsystemd/sd-bus/bus-match.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c +index 8280488..c54ca8d 100644 +--- src/libsystemd/sd-bus/bus-match.c ++++ src/libsystemd/sd-bus/bus-match.c +@@ -293,6 +293,9 @@ int bus_match_run( + r = bus_maybe_reply_error(m, r, &error_buffer); + if (r != 0) + return r; ++ ++ if (bus && bus->match_callbacks_modified) ++ return 0; + } + + return bus_match_run(bus, node->next, m); +-- +1.7.9.2 + diff --git a/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch b/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch new file mode 100644 index 00000000..3e5d0c03 --- /dev/null +++ b/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch @@ -0,0 +1,52 @@ +Based on 77c10205bb337585c320e91af4b416f2dcc6faba Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 13:47:00 +0200 +Subject: [PATCH] shared: conf-parser - don't leak memory on error in + DEFINE_CONFIG_PARSE_ENUMV + +Found by Coverity. Fixes CID #1237746. +--- + src/shared/conf-parser.h | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h 2014-09-18 13:14:43.730234764 +0000 +@@ -171,7 +171,8 @@ int log_syntax_internal(const char *unit + void *data, \ + void *userdata) { \ + \ +- type **enums = data, *xs, x, *ys; \ ++ type **enums = data, x, *ys; \ ++ _cleanup_free_ type *xs = NULL; \ + char *w, *state; \ + size_t l, i = 0; \ + \ +@@ -187,6 +188,7 @@ int log_syntax_internal(const char *unit + \ + FOREACH_WORD(w, l, rvalue, state) { \ + _cleanup_free_ char *en = NULL; \ ++ type *new_xs; \ + \ + en = strndup(w, l); \ + if (!en) \ +@@ -212,8 +214,10 @@ int log_syntax_internal(const char *unit + continue; \ + \ + *(xs + i) = x; \ +- xs = realloc(xs, (++i + 1) * sizeof(type)); \ +- if (!xs) \ ++ new_xs = realloc(xs, (++i + 1) * sizeof(type)); \ ++ if (new_xs) \ ++ xs = new_xs; \ ++ else \ + return -ENOMEM; \ + \ + *(xs + i) = invalid; \ +@@ -221,5 +225,7 @@ int log_syntax_internal(const char *unit + \ + free(*enums); \ + *enums = xs; \ ++ xs = NULL; \ ++ \ + return 0; \ + } diff --git a/0008-shell-completion-prevent-mangling-unit-names-bash.patch b/0008-shell-completion-prevent-mangling-unit-names-bash.patch new file mode 100644 index 00000000..7a52c0d7 --- /dev/null +++ b/0008-shell-completion-prevent-mangling-unit-names-bash.patch @@ -0,0 +1,87 @@ +Based on c317a1a19cd9584e07ee43f1b6fafc26c2c75cca Mon Sep 17 00:00:00 2001 +From: Eric Cook +Date: Sun, 27 Jul 2014 15:07:03 -0400 +Subject: [PATCH] shell-completion: prevent mangling unit names (bash) + +This fixes the issue noted by Zbigniew in most cases. +if a unit's name is enclosed in single quotes completion still +will not happen after the first `\'. + +https://bugs.freedesktop.org/show_bug.cgi?id=78388 +--- + shell-completion/bash/systemctl.in | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in +index 69ef04b..64b15df 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -158,20 +158,25 @@ _systemctl () { + + elif __contains_word "$verb" ${VERBS[ALL_UNITS]}; then + comps=$( __get_all_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[ENABLED_UNITS]}; then + comps=$( __get_enabled_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then + comps=$( __get_disabled_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then + comps=$( __get_disabled_units $mode; + __get_enabled_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ + $( __get_startable_units $mode)) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStart yes \ +@@ -179,24 +184,30 @@ _systemctl () { + | while read -r line; do \ + [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ + done )) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanStop yes \ + $( __get_active_units $mode ) ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[RELOADABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode CanReload yes \ + $( __get_active_units $mode ) ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[ISOLATABLE_UNITS]}; then + comps=$( __filter_units_by_property $mode AllowIsolate yes \ + $( __get_all_units $mode ) ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[FAILED_UNITS]}; then + comps=$( __get_failed_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[MASKED_UNITS]}; then + comps=$( __get_masked_units $mode ) ++ compopt -o filenames + + elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[NAME]}; then + comps='' +@@ -221,7 +232,7 @@ _systemctl () { + | { while read -r a b; do echo " $a"; done; } ) + fi + +- COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) ++ COMPREPLY=( $(compgen -o filenames -W '$comps' -- "$cur") ) + return 0 + } + +-- +1.7.9.2 + diff --git a/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch b/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch new file mode 100644 index 00000000..b4564a5a --- /dev/null +++ b/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch @@ -0,0 +1,53 @@ +From 0088d63151e088d62104d88f866e9eb049091c22 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 25 Mar 2014 00:31:48 +0100 +Subject: [PATCH] systemctl: --kill-mode is long long gone, don't mention it + in the man page + +--- + man/systemctl.xml | 5 ++--- + shell-completion/bash/systemctl | 5 +---- + 2 files changed, 3 insertions(+), 7 deletions(-) + +diff --git man/systemctl.xml man/systemctl.xml +index 77447dd..b4727d9 100644 +--- man/systemctl.xml ++++ man/systemctl.xml +@@ -664,9 +664,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service + + Send a signal to one or more processes of the + unit. Use to select which +- process to kill. Use to select +- the kill mode and to select the +- signal to send. ++ process to kill. Use to select ++ the signal to send. + + + +diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl +index dc7ef66..0dfc868 100644 +--- shell-completion/bash/systemctl ++++ shell-completion/bash/systemctl +@@ -74,7 +74,7 @@ _systemctl () { + [STANDALONE]='--all -a --reverse --after --before --defaults --fail --ignore-dependencies --failed --force -f --full -l --global + --help -h --no-ask-password --no-block --no-legend --no-pager --no-reload --no-wall + --quiet -q --privileged -P --system --user --version --runtime' +- [ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root' ++ [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' + ) + + if __contains_word "--user" ${COMP_WORDS[*]}; then +@@ -99,9 +99,6 @@ _systemctl () { + --kill-who) + comps='all control main' + ;; +- --kill-mode) +- comps='control-group process' +- ;; + --root) + comps=$(compgen -A directory -- "$cur" ) + compopt -o filenames +-- +1.7.9.2 + diff --git a/0008-util-introduce-sethostname_idempotent.patch b/0008-util-introduce-sethostname_idempotent.patch new file mode 100644 index 00000000..5b42ce14 --- /dev/null +++ b/0008-util-introduce-sethostname_idempotent.patch @@ -0,0 +1,85 @@ +Based on 605f81a8968b2df8a28cca2cf11db99ab948a2af Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 21 Oct 2014 18:17:54 +0200 +Subject: [PATCH] util: introduce sethostname_idempotent + +Function queries system hostname and applies changes only when necessary. Also, +migrate all client of sethostname to sethostname_idempotent while at it. +--- + src/core/hostname-setup.c | 2 +- + src/hostname/hostnamed.c | 2 +- + src/nspawn/nspawn.c | 2 +- + src/shared/util.c | 20 ++++++++++++++++++++ + src/shared/util.h | 2 ++ + 5 files changed, 25 insertions(+), 3 deletions(-) + +--- src/core/hostname-setup.c ++++ src/core/hostname-setup.c 2014-10-29 00:00:00.000000000 +0000 +@@ -99,7 +99,7 @@ int hostname_setup(void) { + hn = "localhost"; + } + +- if (sethostname(hn, strlen(hn)) < 0) { ++ if (sethostname_idempotent(hn) < 0) { + log_warning("Failed to set hostname to <%s>: %m", hn); + return -errno; + } +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c 2014-10-29 14:13:26.124337751 +0000 +@@ -244,7 +244,7 @@ static int context_write_data_hostname(C + else + hn = c->data[PROP_HOSTNAME]; + +- if (sethostname(hn, strlen(hn)) < 0) ++ if (sethostname_idempotent(hn) < 0) + return -errno; + + return 0; +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-10-29 00:00:00.000000000 +0000 +@@ -981,7 +981,7 @@ static int setup_hostname(void) { + if (arg_share_system) + return 0; + +- if (sethostname(arg_machine, strlen(arg_machine)) < 0) ++ if (sethostname_idempotent(arg_machine) < 0) + return -errno; + + return 0; +--- src/shared/util.c ++++ src/shared/util.c 2014-10-29 00:00:00.000000000 +0000 +@@ -6451,6 +6451,26 @@ int fd_warn_permissions(const char *path + return 0; + } + ++int sethostname_idempotent(const char *s) { ++ int r; ++ char buf[HOST_NAME_MAX + 1] = {}; ++ ++ assert(s); ++ ++ r = gethostname(buf, sizeof(buf)); ++ if (r < 0) ++ return -errno; ++ ++ if (streq(buf, s)) ++ return 0; ++ ++ r = sethostname(buf, strlen(buf)); ++ if (r < 0) ++ return -errno; ++ ++ return 1; ++} ++ + unsigned long personality_from_string(const char *p) { + + /* Parse a personality specifier. We introduce our own +--- src/shared/util.h ++++ src/shared/util.h 2014-10-29 14:14:15.764337717 +0000 +@@ -899,3 +899,5 @@ union file_handle_union { + }; + + int umount_recursive(const char *target, int flags); ++ ++int sethostname_idempotent(const char *s); diff --git a/0009-ask-password-when-the-user-types-a-overly-long-passw.patch b/0009-ask-password-when-the-user-types-a-overly-long-passw.patch new file mode 100644 index 00000000..840c4a18 --- /dev/null +++ b/0009-ask-password-when-the-user-types-a-overly-long-passw.patch @@ -0,0 +1,33 @@ +From 036eeac5a1799fa2c0ae11a14d8c667b5d303189 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 25 Mar 2014 01:27:05 +0100 +Subject: [PATCH] ask-password: when the user types a overly long password, + beep and refuse +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Based on a similar patch from David Härdeman. +--- + src/shared/ask-password-api.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/shared/ask-password-api.c src/shared/ask-password-api.c +index 117f0c6..96f16cc 100644 +--- src/shared/ask-password-api.c ++++ src/shared/ask-password-api.c +@@ -207,6 +207,11 @@ int ask_password_tty( + if (ttyfd >= 0) + loop_write(ttyfd, "(no echo) ", 10, false); + } else { ++ if (p >= sizeof(passphrase)-1) { ++ loop_write(ttyfd, "\a", 1, false); ++ continue; ++ } ++ + passphrase[p++] = c; + + if (!silent_mode && ttyfd >= 0) +-- +1.7.9.2 + diff --git a/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch b/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch new file mode 100644 index 00000000..381d0732 --- /dev/null +++ b/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch @@ -0,0 +1,29 @@ +From c2fa048c4a70c8386c6d8fe939e5ea9edecf1e98 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Thu, 18 Sep 2014 13:28:28 +0200 +Subject: [PATCH] bus: fix bus_print_property() to use "int" for booleans + +We always use "int" if we retrieve boolean values from sd-bus, as "bool" +is only a single byte, but full int on va-args. + +Thanks to Werner Fink for the report! +--- + src/libsystemd/sd-bus/bus-util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c +index 7c6da60..9018bce 100644 +--- src/libsystemd/sd-bus/bus-util.c ++++ src/libsystemd/sd-bus/bus-util.c +@@ -631,7 +631,7 @@ int bus_print_property(const char *name, sd_bus_message *property, bool all) { + } + + case SD_BUS_TYPE_BOOLEAN: { +- bool b; ++ int b; + + r = sd_bus_message_read_basic(property, type, &b); + if (r < 0) +-- +1.7.9.2 + diff --git a/0009-core-clean-up-signal-reset-logic-when-reexec.patch b/0009-core-clean-up-signal-reset-logic-when-reexec.patch new file mode 100644 index 00000000..cfe54186 --- /dev/null +++ b/0009-core-clean-up-signal-reset-logic-when-reexec.patch @@ -0,0 +1,50 @@ +From 9bfcda9528636914aef3e0ab91191bb81654c83d Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 20 Jun 2014 16:58:21 +0200 +Subject: [PATCH] core: clean-up signal reset logic when reexec + +There's no need to save the old sigmask, if we are going to die. Let's +simplify this. Also, reset all the signal handlers, so that we don't +leave SIG_IGN set for some of them across reexec. +--- + src/core/main.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git src/core/main.c src/core/main.c +index 863ba52..6981e72 100644 +--- src/core/main.c ++++ src/core/main.c +@@ -1824,7 +1824,7 @@ finish: + if (reexecute) { + const char **args; + unsigned i, args_size; +- sigset_t ss, o_ss; ++ sigset_t ss; + + /* Close and disarm the watchdog, so that the new + * instance can reinitialize it, but doesn't get +@@ -1910,8 +1910,10 @@ finish: + + /* reenable any blocked signals, especially important + * if we switch from initial ramdisk to init=... */ +- sigemptyset(&ss); +- sigprocmask(SIG_SETMASK, &ss, &o_ss); ++ reset_all_signal_handlers(); ++ ++ assert_se(sigemptyset(&ss) == 0); ++ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); + + if (switch_root_init) { + args[0] = switch_root_init; +@@ -1931,8 +1933,6 @@ finish: + log_error("Failed to execute /bin/sh, giving up: %m"); + } else + log_warning("Failed to execute /sbin/init, giving up: %m"); +- +- sigprocmask(SIG_SETMASK, &o_ss, NULL); + } + + if (arg_serialization) { +-- +1.7.9.2 + diff --git a/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..69372137 --- /dev/null +++ b/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,38 @@ +From 2e3390ea4684b954edce66b7758b5371d3338a9f Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Thu, 2 Oct 2014 07:53:15 +0200 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index 14aee74..ee2efdf 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -1148,3 +1148,21 @@ bluetooth:v017B* + + bluetooth:v017C* + ID_VENDOR_FROM_DATABASE=Daimler AG ++ ++bluetooth:v017D* ++ ID_VENDOR_FROM_DATABASE=BatAndCat ++ ++bluetooth:v017E* ++ ID_VENDOR_FROM_DATABASE=BluDotz Ltd ++ ++bluetooth:v017F* ++ ID_VENDOR_FROM_DATABASE=XTel ApS ++ ++bluetooth:v0180* ++ ID_VENDOR_FROM_DATABASE=Gigaset Communications GmbH ++ ++bluetooth:v0181* ++ ID_VENDOR_FROM_DATABASE=Gecko Health Innovations, Inc. ++ ++bluetooth:v0182* ++ ID_VENDOR_FROM_DATABASE=HOP Ubiquitous +-- +1.7.9.2 + diff --git a/0009-hwdb-update.patch b/0009-hwdb-update.patch new file mode 100644 index 00000000..099e33b6 --- /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 00000000..3d92f474 --- /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/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch b/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch new file mode 100644 index 00000000..864b9982 --- /dev/null +++ b/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch @@ -0,0 +1,29 @@ +From b9c488f60050248b35640f28e4d00958702ba1c3 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Wed, 6 Aug 2014 13:14:51 +0200 +Subject: [PATCH] journald: Fix off-by-one error in "Missed X kernel messages" + warning + +On receiving a message, "kernel_seqnum" is set to "serial + 1". So +subtracting 1 will cause messages like "Missed 0 kernel messages", +which should be "Missed 1 kernel messages". +--- + src/journal/journald-kmsg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c +index 9935986..fb8ea08 100644 +--- src/journal/journald-kmsg.c ++++ src/journal/journald-kmsg.c +@@ -152,7 +152,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { + /* Did we lose any? */ + if (serial > *s->kernel_seqnum) + server_driver_message(s, SD_MESSAGE_JOURNAL_MISSED, "Missed %"PRIu64" kernel messages", +- serial - *s->kernel_seqnum - 1); ++ serial - *s->kernel_seqnum); + + /* Make sure we never read this one again. Note that + * we always store the next message serial we expect +-- +1.7.9.2 + diff --git a/0009-journald-always-add-syslog-facility-for-messages-com.patch b/0009-journald-always-add-syslog-facility-for-messages-com.patch new file mode 100644 index 00000000..58a8bdd2 --- /dev/null +++ b/0009-journald-always-add-syslog-facility-for-messages-com.patch @@ -0,0 +1,40 @@ +From 36dd072cdf03dcac0fcd2d6b42f261444dc7ac88 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Fri, 25 Jul 2014 14:38:22 +0200 +Subject: [PATCH] journald: always add syslog facility for messages coming + from kmsg + +Set SYSLOG_FACILITY field for kernel log messages too. Setting only +SYSLOG_IDENTIFIER="kernel" is not sufficient and tools reading journal +maybe confused by missing SYSLOG_FACILITY field for kernel log messages. +--- + src/journal/journald-kmsg.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c +index 12992e7..bb62a76 100644 +--- src/journal/journald-kmsg.c ++++ src/journal/journald-kmsg.c +@@ -274,6 +274,9 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { + if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0) + IOVEC_SET_STRING(iovec[n++], syslog_priority); + ++ if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) ++ IOVEC_SET_STRING(iovec[n++], syslog_facility); ++ + if ((priority & LOG_FACMASK) == LOG_KERN) + IOVEC_SET_STRING(iovec[n++], "SYSLOG_IDENTIFIER=kernel"); + else { +@@ -295,9 +298,6 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { + if (syslog_pid) + IOVEC_SET_STRING(iovec[n++], syslog_pid); + } +- +- if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) +- IOVEC_SET_STRING(iovec[n++], syslog_facility); + } + + message = cunescape_length_with_prefix(p, pl, "MESSAGE="); +-- +1.7.9.2 + diff --git a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch new file mode 100644 index 00000000..5bf1987e --- /dev/null +++ b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch @@ -0,0 +1,25 @@ +From 646e392e10924454576f10b072f78d7676422816 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 04:52:31 +0100 +Subject: [PATCH] logind: fix reference to systemd-user-sessions.service + +--- + src/login/logind-session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 548f049..3700522 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { + if (!scope) + return log_oom(); + +- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); ++ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); + if (r < 0) { + log_error("Failed to start session scope %s: %s %s", + scope, bus_error_message(&error, r), error.name); +-- +1.7.9.2 + diff --git a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch new file mode 100644 index 00000000..f064927a --- /dev/null +++ b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch @@ -0,0 +1,70 @@ +From ff5f34d08c191c326c41a083745522383ac86cae Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 04:27:50 +0100 +Subject: [PATCH] mount: don't send out PropertiesChanged message if actually + nothing got changed + +--- + src/core/mount.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index b35e507..98812c9 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1390,7 +1390,7 @@ static int mount_add_one( + _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; + bool load_extras = false; + MountParameters *p; +- bool delete; ++ bool delete, changed = false; + Unit *u; + int r; + +@@ -1458,6 +1458,7 @@ static int mount_add_one( + } + + unit_add_to_load_queue(u); ++ changed = true; + } else { + delete = false; + +@@ -1476,6 +1477,7 @@ static int mount_add_one( + /* Load in the extras later on, after we + * finished initialization of the unit */ + load_extras = true; ++ changed = true; + } + } + +@@ -1488,10 +1490,16 @@ static int mount_add_one( + } + + p = &MOUNT(u)->parameters_proc_self_mountinfo; ++ ++ changed = changed || ++ !streq_ptr(p->options, options) || ++ !streq_ptr(p->what, what) || ++ !streq_ptr(p->fstype, fstype); ++ + if (set_flags) { + MOUNT(u)->is_mounted = true; + MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; +- MOUNT(u)->just_changed = !streq_ptr(p->options, o); ++ MOUNT(u)->just_changed = changed; + } + + MOUNT(u)->from_proc_self_mountinfo = true; +@@ -1514,7 +1522,8 @@ static int mount_add_one( + goto fail; + } + +- unit_add_to_dbus_queue(u); ++ if (changed) ++ unit_add_to_dbus_queue(u); + + return 0; + +-- +1.7.9.2 + diff --git a/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch b/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch new file mode 100644 index 00000000..a88af680 --- /dev/null +++ b/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch @@ -0,0 +1,56 @@ +From 9f24adc288de142d6606fde3c5a5971613f3b6b9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 16 May 2014 19:37:19 +0200 +Subject: [PATCH] nspawn: properly format container_uuid in UUID format + +http://lists.freedesktop.org/archives/systemd-devel/2014-April/018971.html +--- + src/nspawn/nspawn.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 0bd52da..6be4dca 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) { + return 0; + } + ++static char* id128_format_as_uuid(sd_id128_t id, char s[37]) { ++ ++ snprintf(s, 37, ++ "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", ++ SD_ID128_FORMAT_VAL(id)); ++ ++ return s; ++} ++ + static int setup_boot_id(const char *dest) { + _cleanup_free_ char *from = NULL, *to = NULL; + sd_id128_t rnd = {}; +@@ -794,10 +803,7 @@ static int setup_boot_id(const char *dest) { + return r; + } + +- snprintf(as_uuid, sizeof(as_uuid), +- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", +- SD_ID128_FORMAT_VAL(rnd)); +- char_array_0(as_uuid); ++ id128_format_as_uuid(rnd, as_uuid); + + r = write_string_file(from, as_uuid); + if (r < 0) { +@@ -2954,7 +2960,9 @@ int main(int argc, char *argv[]) { + } + + if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) { +- if (asprintf((char**)(envp + n_env++), "container_uuid=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(arg_uuid)) < 0) { ++ char as_uuid[37]; ++ ++ if (asprintf((char**)(envp + n_env++), "container_uuid=%s", id128_format_as_uuid(arg_uuid, as_uuid)) < 0) { + log_oom(); + goto child_fail; + } +-- +1.7.9.2 + diff --git a/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch b/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch new file mode 100644 index 00000000..f9e93696 --- /dev/null +++ b/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch @@ -0,0 +1,47 @@ +From 5a4d665ad679a8436f1210ba67d713a8f0b91b96 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 14 Mar 2014 21:15:32 +0100 +Subject: [PATCH] sd-bus: don't choke if somebody sends us a message with a + unix fd count of 0 + +It's kinda pointless to include a unix fd header field in messages if it +carries the value 0, but let's do this anyway... +--- + src/libsystemd/sd-bus/bus-message.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c +index 97ab0e3..b9d7f6d 100644 +--- src/libsystemd/sd-bus/bus-message.c ++++ src/libsystemd/sd-bus/bus-message.c +@@ -4885,6 +4885,7 @@ int bus_message_parse_fields(sd_bus_message *m) { + size_t ri; + int r; + uint32_t unix_fds = 0; ++ bool unix_fds_set = false; + void *offsets = NULL; + unsigned n_offsets = 0; + size_t sz = 0; +@@ -5097,7 +5098,7 @@ int bus_message_parse_fields(sd_bus_message *m) { + } + + case BUS_MESSAGE_HEADER_UNIX_FDS: +- if (unix_fds != 0) ++ if (unix_fds_set) + return -EBADMSG; + + if (!streq(signature, "u")) +@@ -5107,9 +5108,7 @@ int bus_message_parse_fields(sd_bus_message *m) { + if (r < 0) + return -EBADMSG; + +- if (unix_fds == 0) +- return -EBADMSG; +- ++ unix_fds_set = true; + break; + + default: +-- +1.7.9.2 + diff --git a/0009-units-make-systemd-journald.service-Type-notify.patch b/0009-units-make-systemd-journald.service-Type-notify.patch new file mode 100644 index 00000000..4890daf5 --- /dev/null +++ b/0009-units-make-systemd-journald.service-Type-notify.patch @@ -0,0 +1,27 @@ +Based on a87a38c20196a4aeb56b6ba71d688eefd0b21c30 Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Tue, 4 Nov 2014 20:28:08 +0100 +Subject: [PATCH] units: make systemd-journald.service Type=notify + +It already calls sd_notify(), so it looks like an oversight. + +Without it, its ordering to systemd-journal-flush.service is +non-deterministic and the SIGUSR1 from flushing may kill journald before +it has its signal handlers set up. + +https://bugs.freedesktop.org/show_bug.cgi?id=85871 +https://bugzilla.redhat.com/show_bug.cgi?id=1159641 +--- + units/systemd-journald.service.in | 1 + + 1 file changed, 1 insertion(+) + +--- units/systemd-journald.service.in ++++ units/systemd-journald.service.in 2014-11-10 12:22:08.461949786 +0000 +@@ -14,6 +14,7 @@ After=systemd-journald.socket syslog.soc + Before=sysinit.target + + [Service] ++Type=notify + ExecStart=@rootlibexecdir@/systemd-journald + Restart=always + RestartSec=0 diff --git a/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch b/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch new file mode 100644 index 00000000..0e7fdba3 --- /dev/null +++ b/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch @@ -0,0 +1,26 @@ +From a9169c1c589bf7c7a29e7905d17e350ce7c7c48e Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Mon, 27 Oct 2014 11:08:26 +0100 +Subject: [PATCH] util: fix copy-paste error and actually set the new hostname + +Reported-by: sztanpet on irc +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/shared/util.c src/shared/util.c +index 7d94a28..4143f6d 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -7189,7 +7189,7 @@ int sethostname_idempotent(const char *s) { + if (streq(buf, s)) + return 0; + +- r = sethostname(buf, strlen(buf)); ++ r = sethostname(s, strlen(s)); + if (r < 0) + return -errno; + +-- +1.7.9.2 + diff --git a/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch new file mode 100644 index 00000000..dbf00485 --- /dev/null +++ b/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch @@ -0,0 +1,77 @@ +From 5d20fde4a5c4dff4d7c737b545fbd13582d544c1 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Fri, 31 Oct 2014 20:37:59 +0100 +Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers + +--- + hwdb/20-bluetooth-vendor-product.hwdb | 57 +++++++++++++++++++++++++++++++++ + 1 file changed, 57 insertions(+) + +diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb +index ee2efdf..58ca87d 100644 +--- hwdb/20-bluetooth-vendor-product.hwdb ++++ hwdb/20-bluetooth-vendor-product.hwdb +@@ -1166,3 +1166,60 @@ bluetooth:v0181* + + bluetooth:v0182* + ID_VENDOR_FROM_DATABASE=HOP Ubiquitous ++ ++bluetooth:v0183* ++ ID_VENDOR_FROM_DATABASE=To Be Assigned ++ ++bluetooth:v0184* ++ ID_VENDOR_FROM_DATABASE=Nectar ++ ++bluetooth:v0185* ++ ID_VENDOR_FROM_DATABASE=bel'apps LLC ++ ++bluetooth:v0186* ++ ID_VENDOR_FROM_DATABASE=CORE Lighting Ltd ++ ++bluetooth:v0187* ++ ID_VENDOR_FROM_DATABASE=Seraphim Sense Ltd ++ ++bluetooth:v0188* ++ ID_VENDOR_FROM_DATABASE=Unico RBC ++ ++bluetooth:v0189* ++ ID_VENDOR_FROM_DATABASE=Physical Enterprises Inc. ++ ++bluetooth:v018A* ++ ID_VENDOR_FROM_DATABASE=Able Trend Technology Limited ++ ++bluetooth:v018B* ++ ID_VENDOR_FROM_DATABASE=Konica Minolta, Inc. ++ ++bluetooth:v018C* ++ ID_VENDOR_FROM_DATABASE=Wilo SE ++ ++bluetooth:v018D* ++ ID_VENDOR_FROM_DATABASE=Extron Design Services ++ ++bluetooth:v018E* ++ ID_VENDOR_FROM_DATABASE=Fitbit, Inc. ++ ++bluetooth:v018F* ++ ID_VENDOR_FROM_DATABASE=Fireflies Systems ++ ++bluetooth:v0190* ++ ID_VENDOR_FROM_DATABASE=Intelletto Technologies Inc. ++ ++bluetooth:v0191* ++ ID_VENDOR_FROM_DATABASE=FDK CORPORATION ++ ++bluetooth:v0192* ++ ID_VENDOR_FROM_DATABASE=Cloudleaf, Inc ++ ++bluetooth:v0193* ++ ID_VENDOR_FROM_DATABASE=Maveric Automation LLC ++ ++bluetooth:v0194* ++ ID_VENDOR_FROM_DATABASE=Acoustic Stream Corporation ++ ++bluetooth:v0195* ++ ID_VENDOR_FROM_DATABASE=Zuli +-- +1.7.9.2 + diff --git a/0010-logind-allow-suspending-if-there-are-no-displays.patch b/0010-logind-allow-suspending-if-there-are-no-displays.patch new file mode 100644 index 00000000..a12ff513 --- /dev/null +++ b/0010-logind-allow-suspending-if-there-are-no-displays.patch @@ -0,0 +1,42 @@ +From d36d90933a832bd1e1eb8e3d16b3de73f91636b4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Mon, 28 Apr 2014 00:58:56 +0300 +Subject: [PATCH] logind: allow suspending if there are no displays + +With proprietary graphics drivers, there won't be any 'drm' devices in +sysfs, so logind will never suspend the system upon closing the lid, +even if only one (internal) display is connected. This has been reported +by multiple users so far. + +IMHO, it's better to suspend the system in this case for safety reasons, +to avoid having nvidia blob users' laptops overheat, for the same reason +that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes). +--- + src/login/logind-action.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git src/login/logind-action.c src/login/logind-action.c +index ae9cd48..36ee441 100644 +--- src/login/logind-action.c ++++ src/login/logind-action.c +@@ -79,14 +79,12 @@ int manager_handle_action( + return 0; + } + +- /* If we have more than one or no displays connected, +- * don't react to lid closing. The no display case we +- * treat like this under the assumption that there is +- * no modern drm driver available. */ ++ /* If we have more than one display connected, ++ * don't react to lid closing. */ + n = manager_count_displays(m); + if (n < 0) + log_warning("Display counting failed: %s", strerror(-n)); +- else if (n != 1) { ++ else if (n > 1) { + log_debug("Ignoring lid switch request, %i displays connected.", n); + return 0; + } +-- +1.7.9.2 + diff --git a/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch b/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch new file mode 100644 index 00000000..cd65acf9 --- /dev/null +++ b/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch @@ -0,0 +1,32 @@ +From 9d685ca8193c0da3ad5746be3871f5350179a3b3 Mon Sep 17 00:00:00 2001 +From: Eelco Dolstra +Date: Thu, 14 Aug 2014 19:59:16 +0200 +Subject: [PATCH] machine_kill(): Don't kill the unit when killing the leader + +If "machinectl poweroff" or "machinectl reboot" is used on a +systemd-nspawn container started with --keep-unit and --register, it +should *only* send the appropriate signal to the leader PID (i.e. the +container's systemd process). It shouldn't fall through to +manager_kill_unit() to also send the signal to the unit. The latter +ends up killing systemd-nspawn, which takes down the container +prematurely. +--- + src/machine/machine.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/machine/machine.c src/machine/machine.c +index 1c9177e..13d3448 100644 +--- src/machine/machine.c ++++ src/machine/machine.c +@@ -493,6 +493,8 @@ int machine_kill(Machine *m, KillWho who, int signo) { + + if (kill(m->leader, signo) < 0) + return -errno; ++ ++ return 0; + } + + /* Otherwise make PID 1 do it for us, for the entire cgroup */ +-- +1.7.9.2 + diff --git a/0010-man-update-link-to-LSB.patch b/0010-man-update-link-to-LSB.patch new file mode 100644 index 00000000..07a96f01 --- /dev/null +++ b/0010-man-update-link-to-LSB.patch @@ -0,0 +1,35 @@ +From 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 08:10:19 -0500 +Subject: [PATCH] man: update link to LSB + +https://bugzilla.redhat.com/show_bug.cgi?id=1073402 +--- + man/daemon.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index fd29ba7..ab58d08 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -252,7 +252,7 @@ + detect service errors and problems. It + is recommended to follow the exit code + scheme as defined in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + recommendations for SysV init + scripts. + +@@ -395,7 +395,7 @@ + exclusively on boot (and manually by the + administrator) via SysV init scripts, as + detailed in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + Linux Standard Base Core + Specification. This method of + activation is supported ubiquitously on Linux +-- +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 00000000..0f46dec8 --- /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/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch new file mode 100644 index 00000000..79bf62d4 --- /dev/null +++ b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch @@ -0,0 +1,51 @@ +From aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 04:28:37 +0100 +Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that + are stopped + +--- + src/core/mount.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index 98812c9..7a92e1c 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1679,20 +1679,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + Mount *mount = MOUNT(u); + + if (!mount->is_mounted) { +- /* This has just been unmounted. */ + + mount->from_proc_self_mountinfo = false; + + switch (mount->state) { + + case MOUNT_MOUNTED: ++ /* This has just been unmounted by ++ * somebody else, follow the state ++ * change. */ + mount_enter_dead(mount, MOUNT_SUCCESS); + break; + + default: +- mount_set_state(mount, mount->state); + break; +- + } + + } else if (mount->just_mounted || mount->just_changed) { +@@ -1703,6 +1703,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + + case MOUNT_DEAD: + case MOUNT_FAILED: ++ /* This has just been mounted by ++ * somebody else, follow the state ++ * change. */ + mount_enter_mounted(mount, MOUNT_SUCCESS); + break; + +-- +1.7.9.2 + diff --git a/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch b/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch new file mode 100644 index 00000000..cafa5324 --- /dev/null +++ b/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch @@ -0,0 +1,27 @@ +Based on d89b5fed9ea5d9ec293585cb85bb27b56ea6ac9c Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Tue, 21 Oct 2014 18:38:42 +0200 +Subject: [PATCH] shutdown: do final unmounting only if not running inside the + container + +If we run in the container then we run in a mount namespace. If namespace dies +then kernel should do unmounting for us, hence we skip unmounting in containers. + +Also, it may be the case that we no longer have capability to do umount, +because we are running in the unprivileged container. + +See: http://lists.freedesktop.org/archives/systemd-devel/2014-October/023536.html +--- + src/core/shutdown.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- src/core/shutdown.c ++++ src/core/shutdown.c 2014-10-29 14:18:38.767837898 +0000 +@@ -278,6 +278,7 @@ int main(int argc, char *argv[]) { + broadcast_signal(SIGKILL, true, false); + + if (in_container) { ++ need_umount = false; + need_swapoff = false; + need_dm_detach = false; + need_loop_detach = false; diff --git a/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch b/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch new file mode 100644 index 00000000..e99c1a0d --- /dev/null +++ b/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch @@ -0,0 +1,25 @@ +From da92ca5eb506d513033e0c7a85daf25a7e1c9d0e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 20 Jun 2014 22:43:49 -0400 +Subject: [PATCH] util: treat fuse.sshfs as a network filesystem + +https://bugs.freedesktop.org/show_bug.cgi?id=73727 +--- + src/shared/util.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/shared/util.c src/shared/util.c +index 882a690..dbdb692 100644 +--- src/shared/util.c ++++ src/shared/util.c +@@ -1514,6 +1514,7 @@ bool fstype_is_network(const char *fstype) { + static const char table[] = + "cifs\0" + "smbfs\0" ++ "sshfs\0" + "ncpfs\0" + "ncp\0" + "nfs\0" +-- +1.7.9.2 + diff --git a/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch b/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch new file mode 100644 index 00000000..325f04a9 --- /dev/null +++ b/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch @@ -0,0 +1,28 @@ +From 8e75477abdd838d3beddc5fd1c6a7707b22748b6 Mon Sep 17 00:00:00 2001 +From: Ronny Chevalier +Date: Sat, 21 Jun 2014 22:07:09 +0200 +Subject: [PATCH] build-sys: add -pthread flag for libsystemd-shared + +src/shared/async.c uses pthread so it will fail at link time if we link +only to libsystemd-shared and use async +--- + Makefile.am | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git Makefile.am Makefile.am +index c7653ea..00db82d 100644 +--- Makefile.am ++++ Makefile.am +@@ -837,7 +837,8 @@ nodist_libsystemd_shared_la_SOURCES = \ + + libsystemd_shared_la_CFLAGS = \ + $(AM_CFLAGS) \ +- $(SECCOMP_CFLAGS) ++ $(SECCOMP_CFLAGS) \ ++ -pthread + + # ------------------------------------------------------------------------------ + noinst_LTLIBRARIES += \ +-- +1.7.9.2 + diff --git a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch new file mode 100644 index 00000000..6ff83d12 --- /dev/null +++ b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch @@ -0,0 +1,41 @@ +From 47d80904a1f72d559962cc5ad32fffd46672a34a Mon Sep 17 00:00:00 2001 +From: Uoti Urpala +Date: Thu, 20 Feb 2014 03:00:09 +0200 +Subject: [PATCH] logs-show: fix corrupt output with empty messages + +If a message had zero length, journalctl would print no newline, and +two output lines would be concatenated. Fix. The problem was +introduced in commit 31f7bf199452 ("logs-show: print multiline +messages"). Affected short and verbose output modes. + +Before fix: + +Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit + +after: + +Feb 09 21:16:17 glyph dhclient[1323]: +Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit +--- + src/shared/logs-show.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/shared/logs-show.c src/shared/logs-show.c +index 61c3652..12d4a1c 100644 +--- src/shared/logs-show.c ++++ src/shared/logs-show.c +@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output + } + } + ++ /* A special case: make sure that we print a newline when ++ the message is empty. */ ++ if (message_len == 0) ++ fputs("\n", f); ++ + for (pos = message; + pos < message + message_len; + pos = end + 1, line++) { +-- +1.7.9.2 + diff --git a/0011-man-systemd-bootchart-fix-spacing-in-command.patch b/0011-man-systemd-bootchart-fix-spacing-in-command.patch new file mode 100644 index 00000000..60c206b3 --- /dev/null +++ b/0011-man-systemd-bootchart-fix-spacing-in-command.patch @@ -0,0 +1,28 @@ +From 82ed60080d327d7301fcd55f5a1f8511f894b9d5 Mon Sep 17 00:00:00 2001 +From: Zachary Cook +Date: Thu, 6 Mar 2014 03:49:49 -0500 +Subject: [PATCH] man: systemd-bootchart - fix spacing in command + +Use the same formatting as the systemd-analyze man page, so that man shows a space. +--- + man/systemd-bootchart.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-bootchart.xml man/systemd-bootchart.xml +index d0adaad..1715d5d 100644 +--- man/systemd-bootchart.xml ++++ man/systemd-bootchart.xml +@@ -78,8 +78,8 @@ + in which order, and where possible problems + exist in the startup sequence of the system. + It is essentially a more detailed version of +- the systemd-analyze +- plot function. ++ the systemd-analyze plot ++ function. + + + Of course, bootchart can also be used at any +-- +1.7.9.2 + diff --git a/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch b/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch new file mode 100644 index 00000000..1592a5aa --- /dev/null +++ b/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch @@ -0,0 +1,57 @@ +Based on dec23413ecc90d4a547aa41f02af0482b4513495 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 27 Oct 2014 21:31:29 -0400 +Subject: [PATCH] selinux: make sure we do not try to print missing fields + +UID or GID of 0 is valid, so we cannot use that to distinguish whether +calls to sd_bus_creds_get_* succeeded, and the return value from the +function is the only way to know about missing fields. Print "n/a" if +the fields are missing. + +CID #1238779 +--- + src/core/selinux-access.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git src/core/selinux-access.c src/core/selinux-access.c +index 08ea6ef..351d48f 100644 +--- src/core/selinux-access.c ++++ src/core/selinux-access.c +@@ -53,7 +53,7 @@ struct audit_info { + + /* + Any time an access gets denied this callback will be called +- with the aduit data. We then need to just copy the audit data into the msgbuf. ++ with the audit data. We then need to just copy the audit data into the msgbuf. + */ + static int audit_callback( + void *auditdata, +@@ -64,14 +64,20 @@ static int audit_callback( + const struct audit_info *audit = auditdata; + uid_t uid = 0, login_uid = 0; + gid_t gid = 0; ++ char login_uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; ++ char uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; ++ char gid_buf[DECIMAL_STR_MAX(gid_t)] = "n/a"; + +- sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid); +- sd_bus_creds_get_uid(audit->creds, &uid); +- sd_bus_creds_get_gid(audit->creds, &gid); ++ if (sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid) >= 0) ++ snprintf(login_uid_buf, sizeof(login_uid_buf), UID_FMT, login_uid); ++ if (sd_bus_creds_get_uid(audit->creds, &uid) >= 0) ++ snprintf(uid_buf, sizeof(uid_buf), UID_FMT, uid); ++ if (sd_bus_creds_get_gid(audit->creds, &gid) >= 0) ++ snprintf(gid_buf, sizeof(gid_buf), "%lu", (unsigned long)gid); + + snprintf(msgbuf, msgbufsize, +- "auid=%d uid=%d gid=%d%s%s%s%s%s%s", +- login_uid, uid, gid, ++ "auid=%s uid=%s gid=%s%s%s%s%s%s%s", ++ login_uid_buf, uid_buf, gid_buf, + audit->path ? " path=\"" : "", strempty(audit->path), audit->path ? "\"" : "", + audit->cmdline ? " cmdline=\"" : "", strempty(audit->cmdline), audit->cmdline ? "\"" : ""); + +-- +1.7.9.2 + diff --git a/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch b/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch new file mode 100644 index 00000000..7dee5011 --- /dev/null +++ b/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch @@ -0,0 +1,93 @@ +From ff50244582bf69e8489bba6ce59a21663d7f8274 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 18 Aug 2014 22:21:42 +0200 +Subject: [PATCH] units: fix BindsTo= logic when applied relative to services + with Type=oneshot +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Start jobs for Type=oneshot units are successful when the unit state +transition activating → inactive took place. In such a case all units +that BindsTo= on it previously would continue to run, even though the unit +they dependet on was actually already gone. +--- + src/core/unit.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 44 insertions(+), 4 deletions(-) + +diff --git src/core/unit.c src/core/unit.c +index a5f6b2e..950b83a 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1471,12 +1471,44 @@ static void unit_check_unneeded(Unit *u) { + if (unit_active_or_pending(other)) + return; + +- log_info_unit(u->id, "Service %s is not needed anymore. Stopping.", u->id); ++ log_info_unit(u->id, "Unit %s is not needed anymore. Stopping.", u->id); + + /* Ok, nobody needs us anymore. Sniff. Then let's commit suicide */ + manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); + } + ++static void unit_check_binds_to(Unit *u) { ++ bool stop = false; ++ Unit *other; ++ Iterator i; ++ ++ assert(u); ++ ++ if (u->job) ++ return; ++ ++ if (unit_active_state(u) != UNIT_ACTIVE) ++ return; ++ ++ SET_FOREACH(other, u->dependencies[UNIT_BINDS_TO], i) { ++ if (other->job) ++ continue; ++ ++ if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) ++ continue; ++ ++ stop = true; ++ } ++ ++ if (!stop) ++ return; ++ ++ log_info_unit(u->id, "Unit %s is bound to inactive service. Stopping, too.", u->id); ++ ++ /* A unit we need to run is gone. Sniff. Let's stop this. */ ++ manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); ++} ++ + static void retroactively_start_dependencies(Unit *u) { + Iterator i; + Unit *other; +@@ -1788,11 +1820,19 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + manager_recheck_journal(m); + unit_trigger_notify(u); + +- /* Maybe we finished startup and are now ready for being +- * stopped because unneeded? */ +- if (u->manager->n_reloading <= 0) ++ if (u->manager->n_reloading <= 0) { ++ /* Maybe we finished startup and are now ready for ++ * being stopped because unneeded? */ + unit_check_unneeded(u); + ++ /* Maybe we finished startup, but something we needed ++ * has vanished? Let's die then. (This happens when ++ * something BindsTo= to a Type=oneshot unit, as these ++ * units go directly from starting to inactive, ++ * without ever entering started.) */ ++ unit_check_binds_to(u); ++ } ++ + unit_add_to_dbus_queue(u); + unit_add_to_gc_queue(u); + } +-- +1.7.9.2 + diff --git a/0012-core-transaction-avoid-misleading-error-message-when.patch b/0012-core-transaction-avoid-misleading-error-message-when.patch new file mode 100644 index 00000000..03021cd2 --- /dev/null +++ b/0012-core-transaction-avoid-misleading-error-message-when.patch @@ -0,0 +1,42 @@ +Based on 04ef5b03f64d3824a51a2a903548af029a006744 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 22 Jun 2014 14:04:23 -0400 +Subject: [PATCH] core/transaction: avoid misleading error message when unit + not found + +There's no point in telling the user to look at the logs when +an attempt to load the unit file failed with ENOENT. + +https://bugzilla.redhat.com/show_bug.cgi?id=996133 +--- + TODO | 4 ---- + src/core/transaction.c | 18 ++++++++++++------ + 2 files changed, 12 insertions(+), 10 deletions(-) + +--- src/core/transaction.c ++++ src/core/transaction.c 2014-06-24 11:18:42.746235805 +0000 +@@ -865,12 +865,18 @@ int transaction_add_job_and_dependencies + } + + if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { +- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, +- "Unit %s failed to load: %s. " +- "See system logs and 'systemctl status %s' for details.", +- unit->id, +- strerror(-unit->load_error), +- unit->id); ++ if (unit->load_error == -ENOENT) ++ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, ++ "Unit %s failed to load: %s.", ++ unit->id, ++ strerror(-unit->load_error)); ++ else ++ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, ++ "Unit %s failed to load: %s. " ++ "See system logs and 'systemctl status %s' for details.", ++ unit->id, ++ strerror(-unit->load_error), ++ unit->id); + return -EINVAL; + } + diff --git a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch new file mode 100644 index 00000000..00b0669b --- /dev/null +++ b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch @@ -0,0 +1,30 @@ +From 0b6b7c2004317da48e5bbd3078c5662d8f0061b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 26 Feb 2014 23:01:43 -0500 +Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar + +Positional arguments only make sense with the default action. +For other actions, complain instead of ignoring them silently. +--- + src/journal/journalctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/journal/journalctl.c src/journal/journalctl.c +index a328ba1..0619b25 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { + return -EINVAL; + } + ++ if (arg_action != ACTION_SHOW && optind < argc) { ++ log_error("Extraneous arguments starting with '%s'", argv[optind]); ++ return -EINVAL; ++ } ++ + return 1; + } + +-- +1.7.9.2 + diff --git a/0012-journald-remove-stray-reset-of-error-return-value.patch b/0012-journald-remove-stray-reset-of-error-return-value.patch new file mode 100644 index 00000000..f15237f7 --- /dev/null +++ b/0012-journald-remove-stray-reset-of-error-return-value.patch @@ -0,0 +1,24 @@ +From 2fc74bf4336eb7a7e40c0b355d19966cd97d4b3c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 10 Mar 2014 21:19:23 -0400 +Subject: [PATCH] journald: remove stray reset of error return value + +--- + src/journal/journald.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git src/journal/journald.c src/journal/journald.c +index 37896d0..c8c0801 100644 +--- src/journal/journald.c ++++ src/journal/journald.c +@@ -110,7 +110,6 @@ int main(int argc, char *argv[]) { + r = sd_event_run(server.event, t); + if (r < 0) { + log_error("Failed to run event loop: %s", strerror(-r)); +- r = -errno; + goto finish; + } + +-- +1.7.9.2 + diff --git a/0012-man-add-missing-comma.patch b/0012-man-add-missing-comma.patch new file mode 100644 index 00000000..9d779f43 --- /dev/null +++ b/0012-man-add-missing-comma.patch @@ -0,0 +1,26 @@ +From 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 23:54:13 -0500 +Subject: [PATCH] man: add missing comma + +marcosf0> missing comma in udevadm "see also" section +--- + man/udevadm.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git man/udevadm.xml man/udevadm.xml +index a3f8d54..21d1443 100644 +--- man/udevadm.xml ++++ man/udevadm.xml +@@ -594,7 +594,7 @@ + See Also + + udev7 +- ++ , + + systemd-udevd.service8 + +-- +1.7.9.2 + diff --git a/0012-manager-do-not-print-anything-while-passwords-are-be.patch b/0012-manager-do-not-print-anything-while-passwords-are-be.patch new file mode 100644 index 00000000..88c30eab --- /dev/null +++ b/0012-manager-do-not-print-anything-while-passwords-are-be.patch @@ -0,0 +1,180 @@ +Based on e46b13c8c7f48f81d4e09912f2265daaa7f6d27e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Oct 2014 20:30:51 -0400 +Subject: [PATCH] manager: do not print anything while passwords are being + queried + +https://bugs.freedesktop.org/show_bug.cgi?id=73942 +--- + src/core/manager.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++- + src/core/manager.h | 5 ++ + 2 files changed, 109 insertions(+), 1 deletion(-) + +--- src/core/manager.c ++++ src/core/manager.c 2014-10-29 14:31:18.984212089 +0000 +@@ -25,6 +25,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -212,6 +214,96 @@ static void manager_print_jobs_in_progre + + } + ++static int have_ask_password(void) { ++ _cleanup_closedir_ DIR *dir; ++ ++ dir = opendir("/run/systemd/ask-password"); ++ if (!dir) { ++ if (errno == ENOENT) ++ return false; ++ else ++ return -errno; ++ } ++ ++ for (;;) { ++ struct dirent *de; ++ ++ errno = 0; ++ de = readdir(dir); ++ if (!de && errno != 0) ++ return -errno; ++ if (!de) ++ return false; ++ ++ if (startswith(de->d_name, "ask.")) ++ return true; ++ } ++} ++ ++static int manager_dispatch_ask_password_fd(sd_event_source *source, ++ int fd, uint32_t revents, void *userdata) { ++ Manager *m = userdata; ++ ++ assert(m); ++ ++ flush_fd(fd); ++ ++ m->have_ask_password = have_ask_password(); ++ if (m->have_ask_password < 0) ++ /* Log error but continue. Negative have_ask_password ++ * is treated as unknown status. */ ++ log_error("Failed to list /run/systemd/ask-password: %s", strerror(m->have_ask_password)); ++ ++ return 0; ++} ++ ++static void manager_close_ask_password(Manager *m) { ++ assert(m); ++ if (m->ask_password_inotify_fd >= 0) close_nointr_nofail(m->ask_password_inotify_fd); ++ m->ask_password_inotify_fd = -1; ++ m->ask_password_event_source = sd_event_source_unref(m->ask_password_event_source); ++ m->have_ask_password = -EINVAL; ++} ++ ++static int manager_check_ask_password(Manager *m) { ++ int r; ++ ++ assert(m); ++ ++ if (!m->ask_password_event_source) { ++ assert(m->ask_password_inotify_fd < 0); ++ ++ mkdir_p_label("/run/systemd/ask-password", 0755); ++ ++ m->ask_password_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); ++ if (m->ask_password_inotify_fd < 0) { ++ log_error("inotify_init1() failed: %m"); ++ return -errno; ++ } ++ ++ if (inotify_add_watch(m->ask_password_inotify_fd, "/run/systemd/ask-password", IN_CREATE|IN_DELETE|IN_MOVE) < 0) { ++ log_error("Failed to add watch on /run/systemd/ask-password: %m"); ++ manager_close_ask_password(m); ++ return -errno; ++ } ++ ++ r = sd_event_add_io(m->event, &m->ask_password_event_source, ++ m->ask_password_inotify_fd, EPOLLIN, ++ manager_dispatch_ask_password_fd, m); ++ if (r < 0) { ++ log_error("Failed to add event source for /run/systemd/ask-password: %m"); ++ manager_close_ask_password(m); ++ return -errno; ++ } ++ ++ /* Queries might have been added meanwhile... */ ++ manager_dispatch_ask_password_fd(m->ask_password_event_source, ++ m->ask_password_inotify_fd, EPOLLIN, m); ++ } ++ ++ return m->have_ask_password; ++} ++ + static int manager_watch_idle_pipe(Manager *m) { + int r; + +@@ -470,6 +562,9 @@ int manager_new(SystemdRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; + m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + ++ m->ask_password_inotify_fd = -1; ++ m->have_ask_password = -EINVAL; /* we don't know */ ++ + r = manager_default_environment(m); + if (r < 0) + goto fail; +@@ -847,6 +942,8 @@ void manager_free(Manager *m) { + if (m->kdbus_fd >= 0) + close_nointr_nofail(m->kdbus_fd); + ++ manager_close_ask_password(m); ++ + manager_close_idle_pipe(m); + + udev_unref(m->udev); +@@ -2526,6 +2623,9 @@ void manager_check_finished(Manager *m) + /* Turn off confirm spawn now */ + m->confirm_spawn = false; + ++ /* No need to update ask password status when we're going non-interactive */ ++ manager_close_ask_password(m); ++ + if (dual_timestamp_is_set(&m->finish_timestamp)) + return; + +@@ -2843,12 +2943,15 @@ static bool manager_get_show_status(Mana + if (m->no_console_output) + return false; + ++ /* If we cannot find out the status properly, just proceed. */ ++ if (manager_check_ask_password(m) > 0) ++ return false; ++ + if (m->show_status > 0) + return true; + + /* If Plymouth is running make sure we show the status, so + * that there's something nice to see when people press Esc */ +- + return plymouth_running(); + } + +--- src/core/manager.h ++++ src/core/manager.h 2014-10-29 00:00:00.000000000 +0000 +@@ -231,6 +231,11 @@ struct Manager { + unsigned n_on_console; + unsigned jobs_in_progress_iteration; + ++ /* Do we have any outstanding password prompts? */ ++ int have_ask_password; ++ int ask_password_inotify_fd; ++ sd_event_source *ask_password_event_source; ++ + /* Type=idle pipes */ + int idle_pipe[4]; + sd_event_source *idle_pipe_event_source; diff --git a/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch b/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch new file mode 100644 index 00000000..becc7844 --- /dev/null +++ b/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch @@ -0,0 +1,36 @@ +From 70421bdce2719d76efffd8afdc28433c75aac5a2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 18 Aug 2014 23:15:51 +0200 +Subject: [PATCH] util: try to be a bit more NFS compatible when checking + whether an FS is writable + +https://bugs.freedesktop.org/show_bug.cgi?id=81169 +--- + src/shared/path-util.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git src/shared/path-util.c src/shared/path-util.c +index 57554cd..67566bc 100644 +--- src/shared/path-util.c ++++ src/shared/path-util.c +@@ -533,7 +533,16 @@ int path_is_read_only_fs(const char *path) { + if (statvfs(path, &st) < 0) + return -errno; + +- return !!(st.f_flag & ST_RDONLY); ++ if (st.f_flag & ST_RDONLY) ++ return true; ++ ++ /* On NFS, statvfs() might not reflect whether we can actually ++ * write to the remote share. Let's try again with ++ * access(W_OK) which is more reliable, at least sometimes. */ ++ if (access(path, W_OK) < 0 && errno == EROFS) ++ return true; ++ ++ return false; + } + + int path_is_os_tree(const char *path) { +-- +1.7.9.2 + diff --git a/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch b/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch new file mode 100644 index 00000000..0343c2ad --- /dev/null +++ b/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch @@ -0,0 +1,118 @@ +From 6f285378aa6e4b5b23c939d1fea16f9ab0a57efb Mon Sep 17 00:00:00 2001 +From: Miklos Vajna +Date: Fri, 14 Mar 2014 21:13:38 +0100 +Subject: [PATCH] core, libsystemd, systemd, timedate, udev: spelling fixes + +--- + src/core/service.c | 2 +- + src/core/unit.c | 2 +- + src/libsystemd/sd-bus/bus-message.c | 2 +- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/systemd/sd-resolve.h | 2 +- + src/timedate/timedated.c | 2 +- + src/udev/udevadm-settle.c | 2 +- + 7 files changed, 8 insertions(+), 8 deletions(-) + +diff --git src/core/service.c src/core/service.c +index 41b95ab..386692a 100644 +--- src/core/service.c ++++ src/core/service.c +@@ -3416,7 +3416,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { + free(t); + } + +- /* Interpet WATCHDOG= */ ++ /* Interpret WATCHDOG= */ + if (strv_find(tags, "WATCHDOG=1")) { + log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); + service_reset_watchdog(s); +diff --git src/core/unit.c src/core/unit.c +index 5c98843..4fb0d9c 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1537,7 +1537,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su + unit_destroy_cgroup(u); + + /* Note that this doesn't apply to RemainAfterExit services exiting +- * sucessfully, since there's no change of state in that case. Which is ++ * successfully, since there's no change of state in that case. Which is + * why it is handled in service_set_state() */ + if (UNIT_IS_INACTIVE_OR_FAILED(os) != UNIT_IS_INACTIVE_OR_FAILED(ns)) { + ExecContext *ec; +diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c +index b9d7f6d..e32f2b8 100644 +--- src/libsystemd/sd-bus/bus-message.c ++++ src/libsystemd/sd-bus/bus-message.c +@@ -4215,7 +4215,7 @@ static int message_read_ap( + * in a single stackframe. We hence implement our own + * home-grown stack in an array. */ + +- n_array = (unsigned) -1; /* lenght of current array entries */ ++ n_array = (unsigned) -1; /* length of current array entries */ + n_struct = strlen(types); /* length of current struct contents signature */ + + for (;;) { +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 8e44e50..ba8a8a2 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -1447,7 +1447,7 @@ static int bus_seal_message(sd_bus *b, sd_bus_message *m, usec_t timeout) { + static int bus_remarshal_message(sd_bus *b, sd_bus_message **m) { + assert(b); + +- /* Do packet version and endianess already match? */ ++ /* Do packet version and endianness already match? */ + if ((b->message_version == 0 || b->message_version == (*m)->header->version) && + (b->message_endian == 0 || b->message_endian == (*m)->header->endian)) + return 0; +@@ -1464,7 +1464,7 @@ int bus_seal_synthetic_message(sd_bus *b, sd_bus_message *m) { + * hence let's fill something in for synthetic messages. Since + * synthetic messages might have a fake sender and we don't + * want to interfere with the real sender's serial numbers we +- * pick a fixed, artifical one. We use (uint32_t) -1 rather ++ * pick a fixed, artificial one. We use (uint32_t) -1 rather + * than (uint64_t) -1 since dbus1 only had 32bit identifiers, + * even though kdbus can do 64bit. */ + +diff --git src/systemd/sd-resolve.h src/systemd/sd-resolve.h +index df69e4b..3c1d482 100644 +--- src/systemd/sd-resolve.h ++++ src/systemd/sd-resolve.h +@@ -129,7 +129,7 @@ int sd_resolve_get_next(sd_resolve *resolve, sd_resolve_query **q); + int sd_resolve_get_n_queries(sd_resolve *resolve); + + /** Cancel a currently running query. q is is destroyed by this call +- * and may not be used any futher. */ ++ * and may not be used any further. */ + int sd_resolve_cancel(sd_resolve_query* q); + + /** Returns non-zero when the query operation specified by q has been completed */ +diff --git src/timedate/timedated.c src/timedate/timedated.c +index d85ce57..c4a797a 100644 +--- src/timedate/timedated.c ++++ src/timedate/timedated.c +@@ -468,7 +468,7 @@ static int property_get_rtc_time( + zero(tm); + r = hwclock_get_time(&tm); + if (r == -EBUSY) { +- log_warning("/dev/rtc is busy, is somebody keeping it open continously? That's not a good idea... Returning a bogus RTC timestamp."); ++ log_warning("/dev/rtc is busy, is somebody keeping it open continuously? That's not a good idea... Returning a bogus RTC timestamp."); + t = 0; + } else if (r == -ENOENT) { + log_debug("Not /dev/rtc found."); +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index b026155..927ea2a 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -100,7 +100,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + case '?': + exit(EXIT_FAILURE); + default: +- assert_not_reached("Unkown argument"); ++ assert_not_reached("Unknown argument"); + } + + if (optind < argc) { +-- +1.7.9.2 + diff --git a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch new file mode 100644 index 00000000..f65e5d3e --- /dev/null +++ b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch @@ -0,0 +1,38 @@ +From 6c49212741253dae05b89d22374186f092ef1e5a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 7 Mar 2014 01:50:34 +0100 +Subject: [PATCH] units: Do not unescape instance name in + systemd-backlight@.service + +The instance name is never escaped in the udev rule, but unescaped in the unit. +This results in the following error message on Asus boards: + + Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory +--- + units/systemd-backlight@.service.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git units/systemd-backlight@.service.in units/systemd-backlight@.service.in +index 5caa5d5..e945d87 100644 +--- units/systemd-backlight@.service.in ++++ units/systemd-backlight@.service.in +@@ -6,7 +6,7 @@ + # (at your option) any later version. + + [Unit] +-Description=Load/Save Screen Backlight Brightness of %I ++Description=Load/Save Screen Backlight Brightness of %i + Documentation=man:systemd-backlight@.service(8) + DefaultDependencies=no + RequiresMountsFor=/var/lib/systemd/backlight +@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootlibexecdir@/systemd-backlight load %I +-ExecStop=@rootlibexecdir@/systemd-backlight save %I ++ExecStart=@rootlibexecdir@/systemd-backlight load %i ++ExecStop=@rootlibexecdir@/systemd-backlight save %i +-- +1.7.9.2 + diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch index c3ae1a23..6bf95fb4 100644 --- a/0014-journald-with-journaling-FS.patch +++ b/0014-journald-with-journaling-FS.patch @@ -1,22 +1,5 @@ -From: werner@suse.de -Upstream: marked as openSUSE-specific fix originally, but may well - worth be to be sent upstream. - -Original description: - (none) - -Augmented description [jengelh@inai.de]: -Disable COW on journal files, as that is naturally leading to a lot -of unwanted fragmentation on btrfs. -No word on compression… ---- - src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -Index: systemd/src/journal/journald-server.c -=================================================================== ---- systemd.orig/src/journal/journald-server.c -+++ systemd/src/journal/journald-server.c +--- systemd-208/src/journal/journald-server.c ++++ systemd-208/src/journal/journald-server.c 2013-12-10 16:31:50.770235717 +0000 @@ -21,6 +21,7 @@ #include @@ -25,50 +8,45 @@ Index: systemd/src/journal/journald-server.c #include #include #include -@@ -917,6 +918,38 @@ finish: - dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid); - } +@@ -878,7 +879,7 @@ finish: -+/* -+ * On journaling and/or compressing file systems, avoid doubling the efforts -+ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every -+ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on -+ * a single unkown flag (like BtrFS does). -+ * -+ * …but src/journal/journal-file.c already sets NOCOW too…⸘ -+ */ -+static void disable_cow(const char *dir, const Server *serv) -+{ -+ unsigned long flags; -+ int fd = open(dir, O_DIRECTORY); + + static int system_journal_open(Server *s) { +- int r; ++ int r, fd; + char *fn; + sd_id128_t machine; + char ids[33]; +@@ -905,7 +906,31 @@ static int system_journal_open(Server *s + (void) mkdir("/var/log/journal/", 0755); + + fn = strappenda("/var/log/journal/", ids); +- (void) mkdir(fn, 0755); ++ (void)mkdir(fn, 0755); + -+ if (fd < 0) -+ return; -+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { -+ unsigned long old = flags; -+ if (!(flags & FS_NOATIME_FL) && -+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOATIME_FL) == 0) -+ flags |= FS_NOATIME_FL; -+ if (!(flags & FS_NOCOW_FL) && -+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOCOW_FL) == 0) -+ flags |= FS_NOCOW_FL; -+ if (!(flags & FS_NOCOMP_FL) && serv->compress) { -+ flags &= ~FS_COMPR_FL; -+ flags |= FS_NOCOMP_FL; ++ /* ++ * On journaling and/or compressing file systems avoid doubling the ++ * efforts for the system, that is set NOCOW and NOCOMP inode flags. ++ * Check for every single flag as otherwise some of the file systems ++ * may return EOPNOTSUPP on one unkown flag (like BtrFS does). ++ */ ++ if ((fd = open(fn, O_DIRECTORY)) >= 0) { ++ long flags; ++ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { ++ int old = flags; ++ if (!(flags&FS_NOATIME_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) ++ flags |= FS_NOATIME_FL; ++ if (!(flags&FS_NOCOW_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) ++ flags |= FS_NOCOW_FL; ++ if (!(flags&FS_NOCOMP_FL) && s->compress) { ++ flags &= ~FS_COMPR_FL; ++ flags |= FS_NOCOMP_FL; ++ } ++ if (old != flags) ++ ioctl(fd, FS_IOC_SETFLAGS, flags); ++ } ++ close(fd); + } -+ if (old != flags) -+ ioctl(fd, FS_IOC_SETFLAGS, flags); -+ } -+ close(fd); -+} - static int system_journal_open(Server *s, bool flush_requested) { - int r; -@@ -946,6 +979,7 @@ static int system_journal_open(Server *s - - fn = strjoina("/var/log/journal/", ids); - (void) mkdir(fn, 0755); -+ disable_cow(fn, s); - - fn = strjoina(fn, "/system.journal"); + fn = strappenda(fn, "/system.journal"); r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); diff --git a/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch new file mode 100644 index 00000000..c4c2f4cb --- /dev/null +++ b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch @@ -0,0 +1,31 @@ +From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 +From: Tero Roponen +Date: Tue, 25 Feb 2014 17:19:35 +0200 +Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid + +Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: + Failed to read /proc/self/loginuid: No such file or directory + + Container Fedora failed with error code 1. + +This patch fixes the problem. +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 1fe641b..92b6728 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { + return 0; + + r = read_one_line_file("/proc/self/loginuid", &p); +- if (r == -EEXIST) ++ if (r == -ENOENT) + return 0; + if (r < 0) { + log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); +-- +1.7.9.2 + diff --git a/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch new file mode 100644 index 00000000..a98660ec --- /dev/null +++ b/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch @@ -0,0 +1,68 @@ +Should solve the problems of + + bug #858864 - LSB "+" dependencies aren't handled properly + bug #857204 - inssrv fails to enable rpcbind + The side effect is that RequiresOverridable= is used for the services + add behind Required-Start + bug #863217 - systemd overrides explicit admin request to disable a service + That is that in this version the Wants= for all services behind + Should-Start, X-Start-Before, and X-Stop-After is not used anymore + +--- + service.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +--- systemd-208/src/core/service.c ++++ systemd-208/src/core/service.c 2014-02-21 14:44:59.066735478 +0000 +@@ -380,6 +380,8 @@ static int sysv_translate_facility(const + "remote_fs", SPECIAL_REMOTE_FS_TARGET, + "syslog", NULL, + "time", SPECIAL_TIME_SYNC_TARGET, ++ "all", SPECIAL_DEFAULT_TARGET, ++ "null", NULL, + }; + + unsigned i; +@@ -389,7 +391,7 @@ static int sysv_translate_facility(const + assert(name); + assert(_r); + +- n = *name == '$' ? name + 1 : name; ++ n = (*name == '$' || *name == '+') ? name + 1 : name; + + for (i = 0; i < ELEMENTSOF(table); i += 2) { + +@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic + startswith_no_case(t, "Should-Start:") || + startswith_no_case(t, "X-Start-Before:") || + startswith_no_case(t, "X-Start-After:")) { ++ UnitDependency d, e; + char *i, *w; + size_t z; + + state = LSB; ++ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER; ++ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : _UNIT_DEPENDENCY_INVALID; + + FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) { + char *n, *m; +@@ -838,12 +843,18 @@ static int service_load_sysv_path(Servic + continue; + } + ++ if (*n == '+') ++ e = UNIT_WANTS; ++ + free(n); + + if (r == 0) + continue; + +- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true); ++ if (e != _UNIT_DEPENDENCY_INVALID) ++ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); ++ else ++ r = unit_add_dependency_by_name(u, d, m, NULL, true); + + if (r < 0) + log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s", diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch index a545cf08..89d79183 100644 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ b/0019-make-completion-smart-to-be-able-to-redirect.patch @@ -1,45 +1,8 @@ ---- - shell-completion/bash/coredumpctl | 6 +++++- - shell-completion/bash/hostnamectl | 6 +++++- - shell-completion/bash/journalctl | 6 +++++- - shell-completion/bash/kernel-install | 13 ++++++++++++- - shell-completion/bash/localectl | 6 +++++- - shell-completion/bash/loginctl | 6 +++++- - shell-completion/bash/systemctl.in | 6 +++++- - shell-completion/bash/systemd-analyze | 6 +++++- - shell-completion/bash/systemd-run | 14 +++++++++++++- - shell-completion/bash/timedatectl | 6 +++++- - shell-completion/bash/udevadm | 6 +++++- - 11 files changed, 70 insertions(+), 11 deletions(-) - -Index: systemd/shell-completion/bash/coredumpctl -=================================================================== ---- systemd.orig/shell-completion/bash/coredumpctl -+++ systemd/shell-completion/bash/coredumpctl -@@ -44,6 +44,10 @@ _coredumpctl() { - [DUMP]='dump gdb' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" '--output -o'; then - comps=$( compgen -A file -- "$cur" ) - compopt -o filenames -@@ -82,4 +86,4 @@ _coredumpctl() { - return 0 - } - --complete -F _coredumpctl coredumpctl -+complete -o default -o bashdefault -F _coredumpctl coredumpctl -Index: systemd/shell-completion/bash/hostnamectl -=================================================================== ---- systemd.orig/shell-completion/bash/hostnamectl -+++ systemd/shell-completion/bash/hostnamectl +--- systemd-208/shell-completion/bash/hostnamectl ++++ systemd-208/shell-completion/bash/hostnamectl 2014-01-17 14:27:16.183272019 +0000 @@ -30,6 +30,10 @@ _hostnamectl() { local OPTS='-h --help --version --transient --static --pretty - --no-ask-password -H --host --machine' + --no-ask-password -H --host' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -48,18 +11,16 @@ Index: systemd/shell-completion/bash/hostnamectl if [[ $cur = -* ]]; then COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) return 0 -@@ -61,4 +65,4 @@ _hostnamectl() { +@@ -58,4 +62,4 @@ _hostnamectl() { return 0 } -complete -F _hostnamectl hostnamectl +complete -o default -o bashdefault -F _hostnamectl hostnamectl -Index: systemd/shell-completion/bash/journalctl -=================================================================== ---- systemd.orig/shell-completion/bash/journalctl -+++ systemd/shell-completion/bash/journalctl -@@ -55,6 +55,10 @@ _journalctl() { - --root --machine' +--- systemd-208/shell-completion/bash/journalctl ++++ systemd-208/shell-completion/bash/journalctl 2014-01-17 14:34:30.338737694 +0000 +@@ -49,6 +49,10 @@ _journalctl() { + --verify-key' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -69,16 +30,14 @@ Index: systemd/shell-completion/bash/journalctl if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then case $prev in --boot|--this-boot|-b) -@@ -120,4 +124,4 @@ _journalctl() { +@@ -107,4 +111,4 @@ _journalctl() { fi } -complete -F _journalctl journalctl +complete -o default -o bashdefault -F _journalctl journalctl -Index: systemd/shell-completion/bash/kernel-install -=================================================================== ---- systemd.orig/shell-completion/bash/kernel-install -+++ systemd/shell-completion/bash/kernel-install +--- systemd-208/shell-completion/bash/kernel-install ++++ systemd-208/shell-completion/bash/kernel-install 2014-01-17 14:34:41.982255874 +0000 @@ -18,11 +18,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -108,13 +67,11 @@ Index: systemd/shell-completion/bash/kernel-install -complete -F _kernel_install kernel-install +complete -o default -o bashdefault -F _kernel_install kernel-install -Index: systemd/shell-completion/bash/localectl -=================================================================== ---- systemd.orig/shell-completion/bash/localectl -+++ systemd/shell-completion/bash/localectl -@@ -36,6 +36,10 @@ _localectl() { +--- systemd-208/shell-completion/bash/localectl ++++ systemd-208/shell-completion/bash/localectl 2014-01-17 14:34:52.546235747 +0000 +@@ -30,6 +30,10 @@ _localectl() { local OPTS='-h --help --version --no-convert --no-pager --no-ask-password - -H --host --machine' + -H --host' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -123,19 +80,17 @@ Index: systemd/shell-completion/bash/localectl if __contains_word "$prev" $OPTS; then case $prev in --host|-H) -@@ -89,4 +93,4 @@ _localectl() { +@@ -73,4 +77,4 @@ _localectl() { return 0 } -complete -F _localectl localectl +complete -o default -o bashdefault -F _localectl localectl -Index: systemd/shell-completion/bash/loginctl -=================================================================== ---- systemd.orig/shell-completion/bash/loginctl -+++ systemd/shell-completion/bash/loginctl -@@ -38,6 +38,10 @@ _loginctl () { - [ARG]='--host -H --kill-who --property -p --signal -s --machine' - ) +--- systemd-208/shell-completion/bash/loginctl ++++ systemd-208/shell-completion/bash/loginctl 2014-01-17 14:35:03.386245699 +0000 +@@ -37,6 +37,10 @@ _loginctl () { + [ARG]='--host -H --kill-who --property -p --signal -s' + ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -144,17 +99,15 @@ Index: systemd/shell-completion/bash/loginctl if __contains_word "$prev" ${OPTS[ARG]}; then case $prev in --signal|-s) -@@ -107,4 +111,4 @@ _loginctl () { +@@ -106,4 +110,4 @@ _loginctl () { return 0 } -complete -F _loginctl loginctl +complete -o default -o bashdefault -F _loginctl loginctl -Index: systemd/shell-completion/bash/systemctl.in -=================================================================== ---- systemd.orig/shell-completion/bash/systemctl.in -+++ systemd/shell-completion/bash/systemctl.in -@@ -96,6 +96,10 @@ _systemctl () { +--- systemd-208/shell-completion/bash/systemctl ++++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000 +@@ -77,6 +77,10 @@ _systemctl () { [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' ) @@ -165,18 +118,16 @@ Index: systemd/shell-completion/bash/systemctl.in if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user else -@@ -264,4 +268,4 @@ _systemctl () { +@@ -226,4 +230,4 @@ _systemctl () { return 0 } -complete -F _systemctl systemctl +complete -o default -o bashdefault -F _systemctl systemctl -Index: systemd/shell-completion/bash/systemd-analyze -=================================================================== ---- systemd.orig/shell-completion/bash/systemd-analyze -+++ systemd/shell-completion/bash/systemd-analyze -@@ -47,6 +47,10 @@ _systemd_analyze() { - [VERIFY]='verify' +--- systemd-208/shell-completion/bash/systemd-analyze ++++ systemd-208/shell-completion/bash/systemd-analyze 2014-01-17 14:35:38.366736021 +0000 +@@ -37,6 +37,10 @@ _systemd_analyze() { + [LOG_LEVEL]='set-log-level' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -186,16 +137,33 @@ Index: systemd/shell-completion/bash/systemd-analyze _init_completion || return for ((i=0; i < COMP_CWORD; i++)); do -@@ -114,4 +118,4 @@ _systemd_analyze() { +@@ -83,4 +87,4 @@ _systemd_analyze() { return 0 } -complete -F _systemd_analyze systemd-analyze +complete -o default -o bashdefault -F _systemd_analyze systemd-analyze -Index: systemd/shell-completion/bash/systemd-run -=================================================================== ---- systemd.orig/shell-completion/bash/systemd-run -+++ systemd/shell-completion/bash/systemd-run +--- systemd-208/shell-completion/bash/systemd-coredumpctl ++++ systemd-208/shell-completion/bash/systemd-coredumpctl 2014-01-17 14:35:46.434235632 +0000 +@@ -44,6 +44,10 @@ _coredumpctl() { + [DUMP]='dump gdb' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" '--output -o'; then + comps=$( compgen -A file -- "$cur" ) + compopt -o filenames +@@ -82,4 +86,4 @@ _coredumpctl() { + return 0 + } + +-complete -F _coredumpctl systemd-coredumpctl ++complete -o default -o bashdefault -F _coredumpctl systemd-coredumpctl +--- systemd-208/shell-completion/bash/systemd-run ++++ systemd-208/shell-completion/bash/systemd-run 2014-01-17 14:35:55.938236298 +0000 @@ -17,6 +17,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -210,7 +178,7 @@ Index: systemd/shell-completion/bash/systemd-run __systemctl() { local mode=$1; shift 1 systemctl $mode --full --no-legend "$@" -@@ -38,6 +45,11 @@ _systemd_run() { +@@ -31,6 +38,11 @@ _systemd_run() { local mode=--system local i @@ -222,19 +190,17 @@ Index: systemd/shell-completion/bash/systemd-run for (( i=1; i <= COMP_CWORD; i++ )); do if [[ ${COMP_WORDS[i]} != -* ]]; then local root_command=${COMP_WORDS[i]} -@@ -98,4 +110,4 @@ _systemd_run() { +@@ -60,4 +72,4 @@ _systemd_run() { return 0 } -complete -F _systemd_run systemd-run +complete -o default -o bashdefault -F _systemd_run systemd-run -Index: systemd/shell-completion/bash/timedatectl -=================================================================== ---- systemd.orig/shell-completion/bash/timedatectl -+++ systemd/shell-completion/bash/timedatectl +--- systemd-208/shell-completion/bash/timedatectl ++++ systemd-208/shell-completion/bash/timedatectl 2014-01-17 14:36:06.182735466 +0000 @@ -30,6 +30,10 @@ _timedatectl() { local OPTS='-h --help --version --adjust-system-clock --no-pager - --no-ask-password -H --host --machine' + --no-ask-password -H --host' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -249,10 +215,8 @@ Index: systemd/shell-completion/bash/timedatectl -complete -F _timedatectl timedatectl +complete -o default -o bashdefault -F _timedatectl timedatectl -Index: systemd/shell-completion/bash/udevadm -=================================================================== ---- systemd.orig/shell-completion/bash/udevadm -+++ systemd/shell-completion/bash/udevadm +--- systemd-208/shell-completion/bash/udevadm ++++ systemd-208/shell-completion/bash/udevadm 2014-01-17 14:36:16.406236120 +0000 @@ -36,6 +36,10 @@ _udevadm() { local verbs=(info trigger settle control monitor hwdb test-builtin test) diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch index b4bc2d07..58bb7b25 100644 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -22,14 +22,14 @@ References: bnc#770910,FATE#317063 Signed-off-by: Robert Milasan Signed-off-by: Hannes Reinecke --- - src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++---------- + src/udev/udev-builtin-path_id.c | 53 +++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 12 deletions(-) -Index: systemd-218/src/udev/udev-builtin-path_id.c -=================================================================== ---- systemd-218.orig/src/udev/udev-builtin-path_id.c -+++ systemd-218/src/udev/udev-builtin-path_id.c -@@ -426,6 +426,46 @@ static struct udev_device *handle_scsi_h +diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c +index 0599980..fbd3fda 100644 +--- a/src/udev/udev-builtin-path_id.c ++++ b/src/udev/udev-builtin-path_id.c +@@ -339,6 +339,46 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * return parent; } @@ -73,10 +73,10 @@ Index: systemd-218/src/udev/udev-builtin-path_id.c + return hostdev; +} + - static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) { + static struct udev_device *handle_scsi(struct udev_device *parent, char **path) + { const char *devtype; - const char *name; -@@ -465,19 +505,8 @@ static struct udev_device *handle_scsi(s +@@ -375,19 +415,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) goto out; } @@ -97,3 +97,6 @@ Index: systemd-218/src/udev/udev-builtin-path_id.c goto out; } +-- +1.8.1.4 + diff --git a/1003-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch index eee1415f..93756c5a 100644 --- a/1003-udev-netlink-null-rules.patch +++ b/1003-udev-netlink-null-rules.patch @@ -4,19 +4,17 @@ Subject: udev netlink null rules udevd race for netlink events (bnc#774646) --- - src/udev/udevd.c | 2 ++ + src/udev/udevd.c | 2 ++ 1 file changed, 2 insertions(+) -Index: systemd-218/src/udev/udevd.c -=================================================================== ---- systemd-218.orig/src/udev/udevd.c -+++ systemd-218/src/udev/udevd.c -@@ -1468,6 +1468,8 @@ int main(int argc, char *argv[]) { +--- systemd-206.orig/src/udev/udevd.c ++++ systemd-206/src/udev/udevd.c +@@ -1337,6 +1337,8 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); + if (rules == NULL) -+ rules = udev_rules_new(udev, arg_resolve_names); ++ rules = udev_rules_new(udev, resolve_names); if (event_queue_insert(dev) < 0) udev_device_unref(dev); } diff --git a/1005-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch index 85abb1f7..e70b5758 100644 --- a/1005-create-default-links-for-primary-cd_dvd-drive.patch +++ b/1005-create-default-links-for-primary-cd_dvd-drive.patch @@ -4,16 +4,14 @@ Subject: create default links for primary cd_dvd drive cdrom_id: created links for the default cd/dvd drive (bnc#783054). --- - rules/60-cdrom_id.rules | 5 ++++- + rules/60-cdrom_id.rules | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -Index: systemd/rules/60-cdrom_id.rules -=================================================================== ---- systemd.orig/rules/60-cdrom_id.rules -+++ systemd/rules/60-cdrom_id.rules -@@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $ - # stale mounts after ejecting - ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0" +--- systemd-206.orig/rules/60-cdrom_id.rules ++++ systemd-206/rules/60-cdrom_id.rules +@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr + # enable the receiving of media eject button events + IMPORT{program}="cdrom_id --lock-media $devnode" -KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" +KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index f838b9ac..eb98cc2f 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -9,17 +9,15 @@ Date: Tue, 4 Mar 2014 10:29:21 +0000 Port the patch of Robert to systemd v210 and test it out. --- - src/udev/udev-event.c | 41 +++++++++++++++++++++++++++++++++++++---- - 1 file changed, 37 insertions(+), 4 deletions(-) + udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 38 insertions(+), 4 deletions(-) -Index: systemd-218/src/udev/udev-event.c -=================================================================== ---- systemd-218.orig/src/udev/udev-event.c -+++ systemd-218/src/udev/udev-event.c -@@ -767,20 +767,53 @@ out: - static int rename_netif(struct udev_event *event) { +--- systemd-210/src/udev/udev-event.c ++++ systemd-210/src/udev/udev-event.c 2014-03-27 13:19:06.727748307 +0000 +@@ -750,8 +750,9 @@ static int rename_netif(struct udev_even struct udev_device *dev = event->dev; + _cleanup_rtnl_unref_ sd_rtnl *rtnl = NULL; char name[IFNAMSIZ]; + char interim[IFNAMSIZ], *ptr = &interim[0]; const char *oldname; @@ -28,40 +26,43 @@ Index: systemd-218/src/udev/udev-event.c oldname = udev_device_get_sysname(dev); - strscpy(name, IFNAMSIZ, event->name); +@@ -765,12 +766,45 @@ static int rename_netif(struct udev_even + return r; - r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); + r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); - if (r < 0) + if (r == 0) { -+ log_info("renamed network interface %s to %s\n", oldname, name); ++ print_kmsg("renamed network interface %s to %s\n", oldname, name); + return r; + } else if (r != -EEXIST) { - return log_error_errno(r, "Error changing net interface name '%s' to '%s': %m", oldname, name); -+ } - -- log_debug("renamed network interface '%s' to '%s'", oldname, name); + log_error("error changing net interface name %s to %s: %s", + oldname, name, strerror(-r)); +- else +- print_kmsg("renamed network interface %s to %s", oldname, name); ++ return r; ++ } ++ + /* free our own name, another process may wait for us */ + strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); - -- return 0; -+ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), interim); ++ ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); + if (r < 0) { + log_error("error changing net interface name %s to %s: %s", + oldname, interim, strerror(-r)); + return r; + } -+ + + /* log temporary name */ -+ log_info("renamed network interface %s to %s\n", oldname, interim); ++ print_kmsg("renamed network interface %s to %s\n", oldname, interim); + + loop = 90 * 20; + while (loop--) { + const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; + nanosleep(&duration, NULL); + -+ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); + if (r == 0) { -+ log_info("renamed network interface %s to %s\n", interim, name); ++ print_kmsg("renamed network interface %s to %s\n", interim, name); + break; + } + @@ -71,7 +72,6 @@ Index: systemd-218/src/udev/udev-event.c + break; + } + } -+ return r; + return r; } - void udev_event_execute_rules(struct udev_event *event, diff --git a/1008-add-msft-compability-rules.patch b/1008-add-msft-compability-rules.patch new file mode 100644 index 00000000..d0117371 --- /dev/null +++ b/1008-add-msft-compability-rules.patch @@ -0,0 +1,25 @@ +--- systemd-206.orig/Makefile.am ++++ systemd-206/Makefile.am +@@ -2484,6 +2484,10 @@ dist_udevrules_DATA += \ + rules/80-hotplug-cpu-mem.rules + + # ------------------------------------------------------------------------------ ++dist_udevrules_DATA += \ ++ rules/61-msft.rules ++ ++# ------------------------------------------------------------------------------ + if ENABLE_GUDEV + if ENABLE_GTK_DOC + SUBDIRS += \ +--- /dev/null ++++ systemd-206/rules/61-msft.rules +@@ -0,0 +1,9 @@ ++# MSFT compability rules ++ACTION!="add|change", GOTO="msft_end" ++ ++ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_IDENT_*" ++KERNEL=="sd*[!0-9]|sr*", ENV{SCSI_IDENT_LUN_T10}!="?*", IMPORT{program}="/usr/bin/sg_inq -p di --export $tempnode" ++KERNEL=="sd*|sr*", ENV{DEVTYPE}=="disk", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}" ++KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}-part%n" ++ ++LABEL="msft_end" diff --git a/1009-cdrom_id-use-the-old-MMC-fallback.patch b/1009-cdrom_id-use-the-old-MMC-fallback.patch new file mode 100644 index 00000000..ada9292f --- /dev/null +++ b/1009-cdrom_id-use-the-old-MMC-fallback.patch @@ -0,0 +1,54 @@ +From a14f14976094650e17d39f3a7d15a1c68c93c333 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 27 Feb 2014 11:06:37 +0100 +Subject: [PATCH] cdrom_id: use the old MMC fallback + +https://bugzilla.redhat.com/show_bug.cgi?id=1038015 +The problem seems to be that the your virtual DVD is emulating a really +old DVD device, and doing it kind of strangely. + +> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 +> probing: '/dev/sr0' +> INQUIRY: [IMM ][Virtual CD/DVD ][0316] +> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h + +So your virtual drive rejects the GET CONFIGURATION command as illegal. + +Other pre-MMC2 drives that don't accept this command usually return the +error +SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id +tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set +and all the /dev/disk/by-label (etc) links get set up. + +The virtual drive returns the error SK=5h,ASC=24h (invalid field in +Command Descriptor Block), which cdrom_id doesn't handle, so it gives up +and the links never get made. + +The ideal solution would be to make the IMM to emulate a device that's +less than 15 years old, but I'm not going to hold my breath waiting for +that. + +So probably cdrom_id should also use the old MMC fallback when the error +is SK=5h,ASC=24h, and then all of this would work as expected. + +Suggested-by:Luca Miccini +--- + src/udev/cdrom_id/cdrom_id.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/cdrom_id/cdrom_id.c src/udev/cdrom_id/cdrom_id.c +index 93467c2..33b2bc3 100644 +--- a/src/udev/cdrom_id/cdrom_id.c ++++ b/src/udev/cdrom_id/cdrom_id.c +@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) + if ((err != 0)) { + info_scsi_cmd_err(udev, "GET CONFIGURATION", err); + /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ +- if (SK(err) == 0x5 && ASC(err) == 0x20) { ++ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { + log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); + log_debug("trying to work around the problem"); + ret = cd_profiles_old_mmc(udev, fd); +-- +1.7.9.2 + diff --git a/1010-udev-increase-result-size-for-programs.patch b/1010-udev-increase-result-size-for-programs.patch new file mode 100644 index 00000000..7eb2ea72 --- /dev/null +++ b/1010-udev-increase-result-size-for-programs.patch @@ -0,0 +1,13 @@ +Index: systemd-210/src/udev/udev-rules.c +=================================================================== +--- systemd-210.orig/src/udev/udev-rules.c ++++ systemd-210/src/udev/udev-rules.c +@@ -2027,7 +2027,7 @@ int udev_rules_apply_to_event(struct ude + case TK_M_PROGRAM: { + char program[UTIL_PATH_SIZE]; + char **envp; +- char result[UTIL_PATH_SIZE]; ++ char result[UTIL_LINE_SIZE]; + + free(event->program_result); + event->program_result = NULL; diff --git a/1014-udev-update-net_id-comments.patch b/1014-udev-update-net_id-comments.patch new file mode 100644 index 00000000..6b0b7f5a --- /dev/null +++ b/1014-udev-update-net_id-comments.patch @@ -0,0 +1,102 @@ +From d4b687c96adf207f0878aebf3ce3371f6160687f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 27 Mar 2014 15:30:09 +0100 +Subject: [PATCH] udev: update net_id comments + +Signed-off-by: Robert Milasan +--- + src/udev/udev-builtin-net_id.c | 31 +++++++++++++++---------------- + 1 file changed, 15 insertions(+), 16 deletions(-) + +diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c +index 4f2b2c1..9ac07de 100644 +--- a/src/udev/udev-builtin-net_id.c ++++ b/src/udev/udev-builtin-net_id.c +@@ -33,8 +33,11 @@ + * ww -- wwan + * + * Type of names: ++ * b -- BCMA bus core number ++ * ccw -- CCW bus group name + * o -- on-board device index number + * s[f][d] -- hotplug slot index number ++ * v -- virtio number + * x -- MAC address + * [P]ps[f][d] + * -- PCI geographical location +@@ -119,12 +122,9 @@ struct netnames { + const char *pci_onboard_label; + + char usb_ports[IFNAMSIZ]; +- + char bcma_core[IFNAMSIZ]; +- +- char virtio_core[IFNAMSIZ]; +- +- char ccw_core[IFNAMSIZ]; ++ char virtio[IFNAMSIZ]; ++ char ccw_group[IFNAMSIZ]; + }; + + /* retrieve on-board index number and label from firmware */ +@@ -353,18 +353,17 @@ static int names_bcma(struct udev_device *dev, struct netnames *names) { + + static int names_virtio(struct udev_device *dev, struct netnames *names) { + struct udev_device *virtdev; +- unsigned int core; ++ unsigned int num; + + virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); + if (!virtdev) + return -ENOENT; + +- /* core num */ +- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1) ++ if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) + return -EINVAL; +- /* suppress the common core == 0 */ +- if (core > 0) +- snprintf(names->virtio_core, sizeof(names->virtio_core), "v%u", core); ++ /* suppress the common num == 0 */ ++ if (num > 0) ++ snprintf(names->virtio, sizeof(names->virtio), "v%u", num); + + names->type = NET_VIRTIO; + return 0; +@@ -402,8 +401,8 @@ static int names_ccw(struct udev_device *dev, struct netnames *names) { + return -EINVAL; + + /* Store the CCW bus-ID for use as network device name */ +- rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", bus_id); +- if (rc >= 0 && rc < (int)sizeof(names->ccw_core)) ++ rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id); ++ if (rc >= 0 && rc < (int)sizeof(names->ccw_group)) + names->type = NET_CCWGROUP; + return 0; + } +@@ -517,7 +516,7 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool + if (err >= 0 && names.type == NET_CCWGROUP) { + char str[IFNAMSIZ]; + +- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); + goto out; + } +@@ -585,11 +584,11 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool + char str[IFNAMSIZ]; + + if (names.pci_path[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); + + if (names.pci_slot[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio_core) < (int)sizeof(str)) ++ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) + udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); + goto out; + } +-- +1.8.4.5 + diff --git a/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch b/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch new file mode 100644 index 00000000..a5e9c58f --- /dev/null +++ b/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch @@ -0,0 +1,99 @@ +From bf81e792f3c0aed54edf004c1c95cc6f6d81d0ee Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 27 Mar 2014 21:47:14 +0100 +Subject: [PATCH] udev: persistent naming - we cannot use virtio numbers as + they are not stable + +This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk support to path_id' and +commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio buses'. + +Distros may want to take note of this, as it changes behavior. + +Signed-off-by: Robert Milasan +--- + src/udev/udev-builtin-net_id.c | 36 ------------------------------------ + src/udev/udev-builtin-path_id.c | 3 --- + 2 files changed, 39 deletions(-) + +Index: systemd-210/src/udev/udev-builtin-net_id.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin-net_id.c ++++ systemd-210/src/udev/udev-builtin-net_id.c +@@ -37,7 +37,6 @@ + * ccw -- CCW bus group name + * o -- on-board device index number + * s[f][d] -- hotplug slot index number +- * v -- virtio number + * x -- MAC address + * [P]ps[f][d] + * -- PCI geographical location +@@ -123,7 +122,6 @@ struct netnames { + + char usb_ports[IFNAMSIZ]; + char bcma_core[IFNAMSIZ]; +- char virtio[IFNAMSIZ]; + char ccw_group[IFNAMSIZ]; + }; + +@@ -351,24 +349,6 @@ static int names_bcma(struct udev_device + return 0; + } + +-static int names_virtio(struct udev_device *dev, struct netnames *names) { +- struct udev_device *virtdev; +- unsigned int num; +- +- virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); +- if (!virtdev) +- return -ENOENT; +- +- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) +- return -EINVAL; +- /* suppress the common num == 0 */ +- if (num > 0) +- snprintf(names->virtio, sizeof(names->virtio), "v%u", num); +- +- names->type = NET_VIRTIO; +- return 0; +-} +- + static int names_ccw(struct udev_device *dev, struct netnames *names) { + struct udev_device *cdev; + const char *bus_id; +@@ -577,22 +557,6 @@ static int builtin_net_id(struct udev_de + udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); + goto out; + } +- +- /* virtio bus */ +- err = names_virtio(dev, &names); +- if (err >= 0 && names.type == NET_VIRTIO) { +- char str[IFNAMSIZ]; +- +- if (names.pci_path[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) +- udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); +- +- if (names.pci_slot[0]) +- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) +- udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); +- goto out; +- } +- + out: + return EXIT_SUCCESS; + } +Index: systemd-210/src/udev/udev-builtin-path_id.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin-path_id.c ++++ systemd-210/src/udev/udev-builtin-path_id.c +@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d + } else if (streq(subsys, "xen")) { + path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "xen"); +- } else if (streq(subsys, "virtio")) { +- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent)); +- parent = skip_subsystem(parent, "virtio"); + } else if (streq(subsys, "scm")) { + path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "scm"); diff --git a/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch b/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch new file mode 100644 index 00000000..fcf5f374 --- /dev/null +++ b/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch @@ -0,0 +1,30 @@ +Based on e6c474723dc66cd4765fd09453d6b48bd5905ba4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 20 Apr 2014 13:57:26 -0400 +Subject: [PATCH] udev: warn when name_to_handle_at is not implemented + +We have a bunch of reports from people who have a custom kernel and +are confused why udev is not running. Issue a warning on +error. Barring an error in the code, the only error that is possible +is ENOSYS. + +https://bugzilla.redhat.com/show_bug.cgi?id=1072966 +--- + src/libudev/libudev-monitor.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/libudev/libudev-monitor.c ++++ src/libudev/libudev-monitor.c 2014-05-12 00:00:00.000000000 +0000 +@@ -115,8 +115,11 @@ static bool udev_has_devtmpfs(struct ude + int r; + + r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); +- if (r < 0) ++ if (r < 0) { ++ if (errno != EOPNOTSUPP) ++ udev_err(udev, "name_to_handle_at on /dev: %m\n"); + return false; ++ } + + + f = fopen("/proc/self/mountinfo", "re"); diff --git a/1017-udev-serialize-synchronize-block-device-event-handli.patch b/1017-udev-serialize-synchronize-block-device-event-handli.patch new file mode 100644 index 00000000..559c0bc3 --- /dev/null +++ b/1017-udev-serialize-synchronize-block-device-event-handli.patch @@ -0,0 +1,83 @@ +From 3ebdb81ef088afd3b4c72b516beb5610f8c93a0d Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sun, 13 Apr 2014 19:54:27 -0700 +Subject: [PATCH] udev: serialize/synchronize block device event handling with + file locks + +--- + src/udev/udevd.c | 33 +++++++++++++++++++++++++++++++-- + 1 file changed, 31 insertions(+), 2 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index f9ee368..aecd208 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -265,6 +266,7 @@ static void worker_new(struct event *event) + for (;;) { + struct udev_event *udev_event; + struct worker_message msg; ++ int fd_lock = -1; + int err; + + log_debug("seq %llu running", udev_device_get_seqnum(dev)); +@@ -280,6 +282,30 @@ static void worker_new(struct event *event) + if (exec_delay > 0) + udev_event->exec_delay = exec_delay; + ++ /* ++ * Take a "read lock" on the device node; this establishes ++ * a concept of device "ownership" to serialize device ++ * access. External processes holding a "write lock" will ++ * cause udev to skip the event handling; in the case udev ++ * acquired the lock, the external process will block until ++ * udev has finished its event handling. ++ */ ++ if (streq_ptr("block", udev_device_get_subsystem(dev))) { ++ struct udev_device *d = dev; ++ ++ if (streq_ptr("partition", udev_device_get_devtype(d))) ++ d = udev_device_get_parent(d); ++ ++ if (d) { ++ fd_lock = open(udev_device_get_devnode(d), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { ++ log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); ++ err = -EWOULDBLOCK; ++ goto skip; ++ } ++ } ++ } ++ + /* apply rules, create node, symlinks */ + err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); + +@@ -292,13 +318,16 @@ static void worker_new(struct event *event) + udev_device_update_db(dev); + } + ++ if (fd_lock >= 0) ++ close(fd_lock); ++ + /* send processed event back to libudev listeners */ + udev_monitor_send_device(worker_monitor, NULL, dev); + ++skip: + /* send udevd the result of the event execution */ + memzero(&msg, sizeof(struct worker_message)); +- if (err != 0) +- msg.exitcode = err; ++ msg.exitcode = err; + msg.pid = getpid(); + send(worker_watch[WRITE_END], &msg, sizeof(struct worker_message), 0); + +-- +1.7.9.2 + diff --git a/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch b/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch new file mode 100644 index 00000000..e3bd7286 --- /dev/null +++ b/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch @@ -0,0 +1,140 @@ +From 1ea972174baba40dbc80c51cbfc4edc49764b59b Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 14 May 2014 00:34:49 +0200 +Subject: [PATCH] udev: do not skip the execution of RUN when renaming a + network device fails + +--- + src/test/test-udev.c | 5 ++--- + src/udev/udev-event.c | 11 +++++------ + src/udev/udev.h | 2 +- + src/udev/udevadm-test.c | 13 +++++-------- + src/udev/udevd.c | 5 ++--- + 5 files changed, 15 insertions(+), 21 deletions(-) + +diff --git src/test/test-udev.c src/test/test-udev.c +index b064744..b057cc8 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -155,9 +155,8 @@ int main(int argc, char *argv[]) { + } + } + +- err = udev_event_execute_rules(event, rules, &sigmask_orig); +- if (err == 0) +- udev_event_execute_run(event, NULL); ++ udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_run(event, 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 2cab42b..5213a4a 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -776,13 +776,12 @@ static int rename_netif(struct udev_event *event) + return r; + } + +-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) ++void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) + { + struct udev_device *dev = event->dev; +- int err = 0; + + if (udev_device_get_subsystem(dev) == NULL) +- return -1; ++ return; + + if (streq(udev_device_get_action(dev), "remove")) { + udev_device_read_db(dev, NULL); +@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, + event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) { + char syspath[UTIL_PATH_SIZE]; + char *pos; ++ int r; + +- err = rename_netif(event); +- if (err == 0) { ++ r = rename_netif(event); ++ if (r >= 0) { + log_debug("renamed netif to '%s'", event->name); + + /* remember old name */ +@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, + udev_device_unref(event->dev_db); + event->dev_db = NULL; + } +- return err; + } + + void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) +diff --git src/udev/udev.h src/udev/udev.h +index 936adfb..62538bc 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string, + int udev_event_spawn(struct udev_event *event, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); ++void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); + void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); + int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); + +diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c +index 6cd311b..6a2f548 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + _cleanup_udev_device_unref_ struct udev_device *dev = NULL; + _cleanup_udev_event_unref_ struct udev_event *event = NULL; + sigset_t mask, sigmask_orig; +- int err; + int rc = 0, c; + + static const struct option options[] = { +@@ -139,18 +138,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + goto out; + } + +- err = udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 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)); + +- if (err == 0) { +- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { +- char program[UTIL_PATH_SIZE]; ++ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { ++ char program[UTIL_PATH_SIZE]; + +- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); +- printf("run: '%s'\n", program); +- } ++ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); ++ printf("run: '%s'\n", program); + } + out: + if (event != NULL && event->fd_signal >= 0) +diff --git src/udev/udevd.c src/udev/udevd.c +index aecd208..bc0696c 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -307,10 +307,9 @@ static void worker_new(struct event *event) + } + + /* apply rules, create node, symlinks */ +- err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, rules, &sigmask_orig); + +- if (err == 0) +- udev_event_execute_run(udev_event, &sigmask_orig); ++ udev_event_execute_run(udev_event, &sigmask_orig); + + /* apply/restore inotify watch */ + if (err == 0 && udev_event->inotify_watch) { +-- +1.7.9.2 + diff --git a/1019-udev-avoid-use-of-uninitialized-err.patch b/1019-udev-avoid-use-of-uninitialized-err.patch new file mode 100644 index 00000000..c520436e --- /dev/null +++ b/1019-udev-avoid-use-of-uninitialized-err.patch @@ -0,0 +1,37 @@ +From bf9bead187802a52a1f376a03caee762d663e945 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Fri, 16 May 2014 23:46:48 +0200 +Subject: [PATCH] udev: avoid use of uninitialized err + +After 1ea972174baba40dbc80c51cbfc4edc49764b59b err is no longer +set unless we hit a special case. Initialize it to 0 and remove +a check that will never fail. +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index bc0696c..1c9488e 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -267,7 +267,7 @@ static void worker_new(struct event *event) + struct udev_event *udev_event; + struct worker_message msg; + int fd_lock = -1; +- int err; ++ int err = 0; + + log_debug("seq %llu running", udev_device_get_seqnum(dev)); + udev_event = udev_event_new(dev); +@@ -312,7 +312,7 @@ static void worker_new(struct event *event) + udev_event_execute_run(udev_event, &sigmask_orig); + + /* apply/restore inotify watch */ +- if (err == 0 && udev_event->inotify_watch) { ++ if (udev_event->inotify_watch) { + udev_watch_begin(udev, dev); + udev_device_update_db(dev); + } +-- +1.7.9.2 + diff --git a/1020-udev-keyboard-also-hook-into-change-events.patch b/1020-udev-keyboard-also-hook-into-change-events.patch new file mode 100644 index 00000000..0d285973 --- /dev/null +++ b/1020-udev-keyboard-also-hook-into-change-events.patch @@ -0,0 +1,27 @@ +From 49804365ea1242456c9763058a59cf68479e07ea Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 26 May 2014 09:30:21 +0800 +Subject: [PATCH] udev: keyboard - also hook into "change" events + +Re-apply the keymaps when "udevadm trigger" is called. Hooking into +"add" only would just remove all keymap content from the udev database +instead of applying the new config. +--- + rules/60-keyboard.rules | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git rules/60-keyboard.rules rules/60-keyboard.rules +index 4e0f366..22f71e7 100644 +--- rules/60-keyboard.rules ++++ rules/60-keyboard.rules +@@ -1,6 +1,6 @@ + # do not edit this file, it will be overwritten on update + +-ACTION!="add", GOTO="keyboard_end" ++ACTION=="remove", GOTO="keyboard_end" + KERNEL!="event*", GOTO="keyboard_end" + ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" + +-- +1.7.9.2 + diff --git a/1021-udev-re-add-persistent-net-rules.patch b/1021-udev-re-add-persistent-net-rules.patch index 5d21f1fe..e8cd290c 100644 --- a/1021-udev-re-add-persistent-net-rules.patch +++ b/1021-udev-re-add-persistent-net-rules.patch @@ -1,73 +1,7 @@ ---- - Makefile.am | 9 - src/udev/net/link-config.c | 17 + - src/udev/rule_generator/75-persistent-net-generator.rules | 105 ++++++++++ - src/udev/rule_generator/76-net-sriov-names.rules | 18 + - src/udev/rule_generator/net-set-sriov-names | 79 +++++++ - src/udev/rule_generator/rule_generator.functions | 113 +++++++++++ - src/udev/rule_generator/write_net_rules | 141 ++++++++++++++ - 7 files changed, 479 insertions(+), 3 deletions(-) - -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -3416,7 +3416,14 @@ dist_udevrules_DATA += \ - rules/75-tty-description.rules \ - rules/78-sound-card.rules \ - rules/80-net-setup-link.rules \ -- rules/95-udev-late.rules -+ rules/95-udev-late.rules \ -+ src/udev/rule_generator/75-persistent-net-generator.rules \ -+ src/udev/rule_generator/76-net-sriov-names.rules -+ -+udevlibexec_PROGRAMS += \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules \ -+ src/udev/rule_generator/net-set-sriov-names - - nodist_udevrules_DATA += \ - rules/99-systemd.rules -Index: systemd-218/src/udev/net/link-config.c -=================================================================== ---- systemd-218.orig/src/udev/net/link-config.c -+++ systemd-218/src/udev/net/link-config.c -@@ -176,16 +176,29 @@ static bool enable_name_policy(void) { - size_t l; - - r = proc_cmdline(&line); -- if (r < 0) { -+ if (r < 0) - log_warning_errno(r, "Failed to read /proc/cmdline, ignoring: %m"); -+#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) -+# warning Using persistent rules as a default -+ if (r <= 0) -+ return false; -+ -+ FOREACH_WORD_QUOTED(w, l, line, state) -+ if (strneq(w, "net.ifnames=1", l)) -+ return true; -+ -+ return false; -+#else -+# warning Using predictable rules as a default -+ if (r <= 0) - return true; -- } - - FOREACH_WORD_QUOTED(word, l, line, state) - if (strneq(word, "net.ifnames=0", l)) - return false; - - return true; -+#endif - } - - int link_config_load(link_config_ctx *ctx) { -Index: systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules +Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules =================================================================== --- /dev/null -+++ systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules ++++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules @@ -0,0 +1,105 @@ +# do not edit this file, it will be overwritten on update + @@ -174,117 +108,10 @@ Index: systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules +ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" + +LABEL="persistent_net_generator_end" -Index: systemd-218/src/udev/rule_generator/76-net-sriov-names.rules +Index: systemd-210/src/udev/rule_generator/rule_generator.functions =================================================================== --- /dev/null -+++ systemd-218/src/udev/rule_generator/76-net-sriov-names.rules -@@ -0,0 +1,18 @@ -+# do not edit this file, it will be overwritten on update -+# -+# rename SRIOV virtual function interfaces -+ -+ACTION=="remove", GOTO="net-sriov-names_end" -+SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" -+ -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" -+ -+LABEL="net-sriov-names_end" -Index: systemd-218/src/udev/rule_generator/net-set-sriov-names -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/net-set-sriov-names -@@ -0,0 +1,79 @@ -+#!/bin/bash -e -+# -+# This script is run to rename virtual interfaces -+# -+ -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+# according to dev_new_index(), ifindex is within [1, INT_MAX] -+int_max=$(/usr/bin/getconf INT_MAX) -+ifindex_before() { -+ a=$1 -+ b=$2 -+ -+ ((0 < (b - a) && (b - a) < int_max / 2 || -+ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) -+} -+ -+rename_interface() { -+ local src_net=$1 -+ local dest_net=$2 -+ local err=0 -+ -+ /sbin/ip link set dev $src_net down -+ /sbin/ip link set dev $src_net name $dest_net -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then -+ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") -+ if [ $(echo "$pf" | wc -l) -ne 1 ]; then -+ echo "too many pf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$INTERFACE/ifindex" -+ read pfindex < "/sys/class/net/$pf/ifindex" -+ if ifindex_before $pfindex $vfindex; then -+ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) -+ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do -+ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ echo "INTERFACE_NEW=$pf.vf$vfnum" -+ exit 0 -+ fi -+ done -+ fi -+fi -+ -+read pfindex < "/sys/class/net/$INTERFACE/ifindex" -+shopt -s nullglob -+for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do -+ vf=$(ls -1 "$virtfn/net") -+ if [ $(echo "$vf" | wc -l) -ne 1 ]; then -+ echo "too many vf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$vf/ifindex" -+ if ifindex_before $vfindex $pfindex; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ if [ "$INTERFACE_NEW" ]; then -+ new_name=$INTERFACE_NEW -+ else -+ new_name=$INTERFACE -+ fi -+ new_name="$new_name.vf$vfnum" -+ if [ "$vf" != "$new_name" ]; then -+ rename_interface "$vf" "$new_name" -+ fi -+ fi -+done -Index: systemd-218/src/udev/rule_generator/rule_generator.functions -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/rule_generator.functions ++++ systemd-210/src/udev/rule_generator/rule_generator.functions @@ -0,0 +1,113 @@ +# functions used by the udev rule generator + @@ -399,10 +226,10 @@ Index: systemd-218/src/udev/rule_generator/rule_generator.functions + $([ -e $RULES_FILE ] && echo $RULES_FILE) \ + 2>/dev/null) +} -Index: systemd-218/src/udev/rule_generator/write_net_rules +Index: systemd-210/src/udev/rule_generator/write_net_rules =================================================================== --- /dev/null -+++ systemd-218/src/udev/rule_generator/write_net_rules ++++ systemd-210/src/udev/rule_generator/write_net_rules @@ -0,0 +1,141 @@ +#!/bin/sh -e + @@ -545,3 +372,161 @@ Index: systemd-218/src/udev/rule_generator/write_net_rules +unlock_rules_file + +exit 0 +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2552,7 +2552,14 @@ dist_udevrules_DATA += \ + rules/75-tty-description.rules \ + rules/78-sound-card.rules \ + rules/80-net-setup-link.rules \ +- rules/95-udev-late.rules ++ rules/95-udev-late.rules \ ++ src/udev/rule_generator/75-persistent-net-generator.rules \ ++ src/udev/rule_generator/76-net-sriov-names.rules ++ ++udevlibexec_PROGRAMS += \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules \ ++ src/udev/rule_generator/net-set-sriov-names + + dist_udevhwdb_DATA = \ + hwdb/20-pci-vendor-model.hwdb \ +Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules +@@ -0,0 +1,18 @@ ++# do not edit this file, it will be overwritten on update ++# ++# rename SRIOV virtual function interfaces ++ ++ACTION=="remove", GOTO="net-sriov-names_end" ++SUBSYSTEM!="net", GOTO="net-sriov-names_end" ++ ++IMPORT{cmdline}="net.ifnames" ++ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" ++ ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" ++ ++# rename interface if needed ++ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" ++ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" ++ ++LABEL="net-sriov-names_end" +Index: systemd-210/src/udev/rule_generator/net-set-sriov-names +=================================================================== +--- /dev/null ++++ systemd-210/src/udev/rule_generator/net-set-sriov-names +@@ -0,0 +1,79 @@ ++#!/bin/bash -e ++# ++# This script is run to rename virtual interfaces ++# ++ ++if [ -n "$UDEV_LOG" ]; then ++ if [ "$UDEV_LOG" -ge 7 ]; then ++ set -x ++ fi ++fi ++ ++# according to dev_new_index(), ifindex is within [1, INT_MAX] ++int_max=$(/usr/bin/getconf INT_MAX) ++ifindex_before() { ++ a=$1 ++ b=$2 ++ ++ ((0 < (b - a) && (b - a) < int_max / 2 || ++ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) ++} ++ ++rename_interface() { ++ local src_net=$1 ++ local dest_net=$2 ++ local err=0 ++ ++ /sbin/ip link set dev $src_net down ++ /sbin/ip link set dev $src_net name $dest_net ++} ++ ++if [ -z "$INTERFACE" ]; then ++ echo "missing \$INTERFACE" >&2 ++ exit 1 ++fi ++ ++if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then ++ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") ++ if [ $(echo "$pf" | wc -l) -ne 1 ]; then ++ echo "too many pf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$INTERFACE/ifindex" ++ read pfindex < "/sys/class/net/$pf/ifindex" ++ if ifindex_before $pfindex $vfindex; then ++ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) ++ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do ++ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ echo "INTERFACE_NEW=$pf.vf$vfnum" ++ exit 0 ++ fi ++ done ++ fi ++fi ++ ++read pfindex < "/sys/class/net/$INTERFACE/ifindex" ++shopt -s nullglob ++for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do ++ vf=$(ls -1 "$virtfn/net") ++ if [ $(echo "$vf" | wc -l) -ne 1 ]; then ++ echo "too many vf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$vf/ifindex" ++ if ifindex_before $vfindex $pfindex; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ if [ "$INTERFACE_NEW" ]; then ++ new_name=$INTERFACE_NEW ++ else ++ new_name=$INTERFACE ++ fi ++ new_name="$new_name.vf$vfnum" ++ if [ "$vf" != "$new_name" ]; then ++ rename_interface "$vf" "$new_name" ++ fi ++ fi ++done +Index: systemd-210/src/udev/net/link-config.c +=================================================================== +--- systemd-210.orig/src/udev/net/link-config.c ++++ systemd-210/src/udev/net/link-config.c +@@ -193,6 +193,18 @@ static bool enable_name_policy(void) { + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); ++#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) ++# warning Using persistent rules as a default ++ if (r <= 0) ++ return false; ++ ++ FOREACH_WORD_QUOTED(w, l, line, state) ++ if (strneq(w, "net.ifnames=1", l)) ++ return true; ++ ++ return false; ++#else ++# warning Using predictable rules as a default + if (r <= 0) + return true; + +@@ -201,6 +213,7 @@ static bool enable_name_policy(void) { + return false; + + return true; ++#endif + } + + int link_config_load(link_config_ctx *ctx) { diff --git a/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch b/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch new file mode 100644 index 00000000..39e385c0 --- /dev/null +++ b/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch @@ -0,0 +1,1445 @@ +From 9ea28c55a2488e6cd4a44ac5786f12b71ad5bc9f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 12 Apr 2014 22:35:50 -0700 +Subject: [PATCH] udev: remove seqnum API and all assumptions about seqnums + +The way the kernel namespaces have been implemented breaks assumptions +udev made regarding uevent sequence numbers. Creating devices in a +namespace "steals" uevents and its sequence numbers from the host. It +confuses the "udevadmin settle" logic, which might block until util a +timeout is reached, even when no uevent is pending. + +Remove any assumptions about sequence numbers and deprecate libudev's +API exposing these numbers; none of that can reliably be used anymore +when namespaces are involved. +--- + Makefile.am | 6 +- + man/udevadm.xml | 22 -- + src/libudev/libudev-monitor.c | 17 +- + src/libudev/libudev-queue-private.c | 406 ----------------------------------- + src/libudev/libudev-queue.c | 302 ++------------------------ + src/libudev/libudev.h | 10 +- + src/shared/udev-util.h | 2 - + src/test/test-libudev.c | 24 --- + src/udev/udev-ctrl.c | 2 +- + src/udev/udevadm-settle.c | 131 ++--------- + src/udev/udevd.c | 59 +++-- + 11 files changed, 84 insertions(+), 897 deletions(-) + delete mode 100644 src/libudev/libudev-queue-private.c + +diff --git Makefile.am Makefile.am +index 5d84605..0ad1729 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2587,8 +2587,7 @@ noinst_LTLIBRARIES += \ + + libudev_internal_la_SOURCES =\ + $(libudev_la_SOURCES) \ +- src/libudev/libudev-device-private.c \ +- src/libudev/libudev-queue-private.c ++ src/libudev/libudev-device-private.c + + libudev_internal_la_CFLAGS = \ + $(AM_CFLAGS) \ +@@ -5169,6 +5168,9 @@ test_libsystemd_sym_LDADD = \ + + test_libudev_sym_SOURCES = \ + test-libudev-sym.c ++test_libudev_sym_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ -Wno-deprecated-declarations + test_libudev_sym_LDADD = \ + libudev.la + +diff --git man/udevadm.xml man/udevadm.xml +index 21d1443..fbfa85a 100644 +--- a/man/udevadm.xml ++++ b/man/udevadm.xml +@@ -339,21 +339,6 @@ + + + +- +- +- +- Wait only for events after the given sequence +- number. +- +- +- +- +- +- +- Wait only for events before the given sequence number. +- +- +- + + + +@@ -361,13 +346,6 @@ + + + +- +- +- +- Do not print any output, like the remaining queue entries when reaching the timeout. +- +- +- + + + +diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c +index ba1b04d..3f7436b 100644 +--- a/src/libudev/libudev-monitor.c ++++ b/src/libudev/libudev-monitor.c +@@ -146,21 +146,6 @@ static bool udev_has_devtmpfs(struct udev *udev) { + return false; + } + +-/* we consider udev running when we have running udev service */ +-static bool udev_has_service(struct udev *udev) { +- struct udev_queue *queue; +- bool active; +- +- queue = udev_queue_new(udev); +- if (!queue) +- return false; +- +- active = udev_queue_get_udev_is_active(queue); +- udev_queue_unref(queue); +- +- return active; +-} +- + struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) + { + struct udev_monitor *udev_monitor; +@@ -184,7 +169,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c + * We do not set a netlink multicast group here, so the socket + * will not receive any messages. + */ +- if (!udev_has_service(udev) && !udev_has_devtmpfs(udev)) { ++ if (access("/run/udev/control", F_OK) < 0 && !udev_has_devtmpfs(udev)) { + udev_dbg(udev, "the udev service seems not to be active, disable the monitor\n"); + group = UDEV_MONITOR_NONE; + } else +diff --git src/libudev/libudev-queue-private.c src/libudev/libudev-queue-private.c +deleted file mode 100644 +index d5a2b50..0000000 +--- a/src/libudev/libudev-queue-private.c ++++ /dev/null +@@ -1,406 +0,0 @@ +-/*** +- This file is part of systemd. +- +- Copyright 2008-2012 Kay Sievers +- Copyright 2009 Alan Jenkins +- +- systemd is free software; you can redistribute it and/or modify it +- under the terms of the GNU Lesser General Public License as published by +- the Free Software Foundation; either version 2.1 of the License, or +- (at your option) any later version. +- +- systemd 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public License +- along with systemd; If not, see . +-***/ +- +-/* +- * DISCLAIMER - The file format mentioned here is private to udev/libudev, +- * and may be changed without notice. +- * +- * The udev event queue is exported as a binary log file. +- * Each log record consists of a sequence number followed by the device path. +- * +- * When a new event is queued, its details are appended to the log. +- * When the event finishes, a second record is appended to the log +- * with the same sequence number but a devpath len of 0. +- * +- * Example: +- * { 0x0000000000000001 } +- * { 0x0000000000000001, 0x0019, "/devices/virtual/mem/null" }, +- * { 0x0000000000000002, 0x001b, "/devices/virtual/mem/random" }, +- * { 0x0000000000000001, 0x0000 }, +- * { 0x0000000000000003, 0x0019, "/devices/virtual/mem/zero" }, +- * +- * Events 2 and 3 are still queued, but event 1 has finished. +- * +- * The queue does not grow indefinitely. It is periodically re-created +- * to remove finished events. Atomic rename() makes this transparent to readers. +- * +- * The queue file starts with a single sequence number which specifies the +- * minimum sequence number in the log that follows. Any events prior to this +- * sequence number have already finished. +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "libudev.h" +-#include "libudev-private.h" +- +-static int rebuild_queue_file(struct udev_queue_export *udev_queue_export); +- +-struct udev_queue_export { +- struct udev *udev; +- int queued_count; /* number of unfinished events exported in queue file */ +- FILE *queue_file; +- unsigned long long int seqnum_max; /* earliest sequence number in queue file */ +- unsigned long long int seqnum_min; /* latest sequence number in queue file */ +- int waste_bytes; /* queue file bytes wasted on finished events */ +-}; +- +-struct udev_queue_export *udev_queue_export_new(struct udev *udev) +-{ +- struct udev_queue_export *udev_queue_export; +- unsigned long long int initial_seqnum; +- +- if (udev == NULL) +- return NULL; +- +- udev_queue_export = new0(struct udev_queue_export, 1); +- if (udev_queue_export == NULL) +- return NULL; +- udev_queue_export->udev = udev; +- +- initial_seqnum = udev_get_kernel_seqnum(udev); +- udev_queue_export->seqnum_min = initial_seqnum; +- udev_queue_export->seqnum_max = initial_seqnum; +- +- udev_queue_export_cleanup(udev_queue_export); +- if (rebuild_queue_file(udev_queue_export) != 0) { +- free(udev_queue_export); +- return NULL; +- } +- +- return udev_queue_export; +-} +- +-struct udev_queue_export *udev_queue_export_unref(struct udev_queue_export *udev_queue_export) +-{ +- if (udev_queue_export == NULL) +- return NULL; +- if (udev_queue_export->queue_file != NULL) +- fclose(udev_queue_export->queue_file); +- free(udev_queue_export); +- return NULL; +-} +- +-void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export) +-{ +- if (udev_queue_export == NULL) +- return; +- unlink("/run/udev/queue.tmp"); +- unlink("/run/udev/queue.bin"); +-} +- +-static int skip_to(FILE *file, long offset) +-{ +- long old_offset; +- +- /* fseek may drop buffered data, avoid it for small seeks */ +- old_offset = ftell(file); +- if (offset > old_offset && offset - old_offset <= BUFSIZ) { +- size_t skip_bytes = offset - old_offset; +- char *buf = alloca(skip_bytes); +- +- if (fread(buf, skip_bytes, 1, file) != skip_bytes) +- return -1; +- } +- +- return fseek(file, offset, SEEK_SET); +-} +- +-struct queue_devpaths { +- unsigned int devpaths_first; /* index of first queued event */ +- unsigned int devpaths_size; +- long devpaths[]; /* seqnum -> offset of devpath in queue file (or 0) */ +-}; +- +-/* +- * Returns a table mapping seqnum to devpath file offset for currently queued events. +- * devpaths[i] represents the event with seqnum = i + udev_queue_export->seqnum_min. +- */ +-static struct queue_devpaths *build_index(struct udev_queue_export *udev_queue_export) +-{ +- struct queue_devpaths *devpaths; +- unsigned long long int range; +- long devpath_offset; +- ssize_t devpath_len; +- unsigned long long int seqnum; +- unsigned long long int n; +- unsigned int i; +- +- /* seek to the first event in the file */ +- rewind(udev_queue_export->queue_file); +- udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum); +- +- /* allocate the table */ +- range = udev_queue_export->seqnum_min - udev_queue_export->seqnum_max; +- if (range - 1 > INT_MAX) { +- udev_err(udev_queue_export->udev, "queue file overflow\n"); +- return NULL; +- } +- devpaths = malloc0(sizeof(struct queue_devpaths) + (range + 1) * sizeof(long)); +- if (devpaths == NULL) +- return NULL; +- devpaths->devpaths_size = range + 1; +- +- /* read all records and populate the table */ +- for (;;) { +- if (udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum) < 0) +- break; +- n = seqnum - udev_queue_export->seqnum_max; +- if (n >= devpaths->devpaths_size) +- goto read_error; +- +- devpath_offset = ftell(udev_queue_export->queue_file); +- devpath_len = udev_queue_skip_devpath(udev_queue_export->queue_file); +- if (devpath_len < 0) +- goto read_error; +- +- if (devpath_len > 0) +- devpaths->devpaths[n] = devpath_offset; +- else +- devpaths->devpaths[n] = 0; +- } +- +- /* find first queued event */ +- for (i = 0; i < devpaths->devpaths_size; i++) { +- if (devpaths->devpaths[i] != 0) +- break; +- } +- devpaths->devpaths_first = i; +- +- return devpaths; +- +-read_error: +- udev_err(udev_queue_export->udev, "queue file corrupted\n"); +- free(devpaths); +- return NULL; +-} +- +-static int rebuild_queue_file(struct udev_queue_export *udev_queue_export) +-{ +- unsigned long long int seqnum; +- struct queue_devpaths *devpaths = NULL; +- FILE *new_queue_file = NULL; +- unsigned int i; +- +- /* read old queue file */ +- if (udev_queue_export->queue_file != NULL) { +- devpaths = build_index(udev_queue_export); +- if (devpaths != NULL) +- udev_queue_export->seqnum_max += devpaths->devpaths_first; +- } +- if (devpaths == NULL) { +- udev_queue_export->queued_count = 0; +- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; +- } +- +- /* create new queue file */ +- new_queue_file = fopen("/run/udev/queue.tmp", "w+e"); +- if (new_queue_file == NULL) +- goto error; +- seqnum = udev_queue_export->seqnum_max; +- fwrite(&seqnum, 1, sizeof(unsigned long long int), new_queue_file); +- +- /* copy unfinished events only to the new file */ +- if (devpaths != NULL) { +- for (i = devpaths->devpaths_first; i < devpaths->devpaths_size; i++) { +- char devpath[UTIL_PATH_SIZE]; +- int err; +- unsigned short devpath_len; +- +- if (devpaths->devpaths[i] != 0) +- { +- skip_to(udev_queue_export->queue_file, devpaths->devpaths[i]); +- err = udev_queue_read_devpath(udev_queue_export->queue_file, devpath, sizeof(devpath)); +- devpath_len = err; +- +- fwrite(&seqnum, sizeof(unsigned long long int), 1, new_queue_file); +- fwrite(&devpath_len, sizeof(unsigned short), 1, new_queue_file); +- fwrite(devpath, 1, devpath_len, new_queue_file); +- } +- seqnum++; +- } +- free(devpaths); +- devpaths = NULL; +- } +- fflush(new_queue_file); +- if (ferror(new_queue_file)) +- goto error; +- +- /* rename the new file on top of the old one */ +- if (rename("/run/udev/queue.tmp", "/run/udev/queue.bin") != 0) +- goto error; +- +- if (udev_queue_export->queue_file != NULL) +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = new_queue_file; +- udev_queue_export->waste_bytes = 0; +- +- return 0; +- +-error: +- udev_err(udev_queue_export->udev, "failed to create queue file: %m\n"); +- udev_queue_export_cleanup(udev_queue_export); +- +- if (udev_queue_export->queue_file != NULL) { +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = NULL; +- } +- if (new_queue_file != NULL) +- fclose(new_queue_file); +- +- if (devpaths != NULL) +- free(devpaths); +- udev_queue_export->queued_count = 0; +- udev_queue_export->waste_bytes = 0; +- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; +- +- return -1; +-} +- +-static int write_queue_record(struct udev_queue_export *udev_queue_export, +- unsigned long long int seqnum, const char *devpath, size_t devpath_len) +-{ +- unsigned short len; +- +- if (udev_queue_export->queue_file == NULL) +- return -1; +- +- if (fwrite(&seqnum, sizeof(unsigned long long int), 1, udev_queue_export->queue_file) != 1) +- goto write_error; +- +- len = (devpath_len < USHRT_MAX) ? devpath_len : USHRT_MAX; +- if (fwrite(&len, sizeof(unsigned short), 1, udev_queue_export->queue_file) != 1) +- goto write_error; +- if (len > 0) { +- if (fwrite(devpath, 1, len, udev_queue_export->queue_file) != len) +- goto write_error; +- } +- +- /* *must* flush output; caller may fork */ +- if (fflush(udev_queue_export->queue_file) != 0) +- goto write_error; +- +- return 0; +- +-write_error: +- /* if we failed half way through writing a record to a file, +- we should not try to write any further records to it. */ +- udev_err(udev_queue_export->udev, "error writing to queue file: %m\n"); +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = NULL; +- +- return -1; +-} +- +-enum device_state { +- DEVICE_QUEUED, +- DEVICE_FINISHED, +-}; +- +-static inline size_t queue_record_size(size_t devpath_len) +-{ +- return sizeof(unsigned long long int) + sizeof(unsigned short int) + devpath_len; +-} +- +-static int update_queue(struct udev_queue_export *udev_queue_export, +- struct udev_device *udev_device, enum device_state state) +-{ +- unsigned long long int seqnum = udev_device_get_seqnum(udev_device); +- const char *devpath = NULL; +- size_t devpath_len = 0; +- int bytes; +- int err; +- +- /* FINISHED records have a zero length devpath */ +- if (state == DEVICE_QUEUED) { +- devpath = udev_device_get_devpath(udev_device); +- devpath_len = strlen(devpath); +- } +- +- /* recover from an earlier failed rebuild */ +- if (udev_queue_export->queue_file == NULL) { +- if (rebuild_queue_file(udev_queue_export) != 0) +- return -1; +- } +- +- /* if we're removing the last event from the queue, that's the best time to rebuild it */ +- if (state != DEVICE_QUEUED && udev_queue_export->queued_count == 1) { +- /* we don't need to read the old queue file */ +- fclose(udev_queue_export->queue_file); +- udev_queue_export->queue_file = NULL; +- rebuild_queue_file(udev_queue_export); +- return 0; +- } +- +- /* try to rebuild the queue files before they grow larger than one page. */ +- bytes = ftell(udev_queue_export->queue_file) + queue_record_size(devpath_len); +- if ((udev_queue_export->waste_bytes > bytes / 2) && bytes > 4096) +- rebuild_queue_file(udev_queue_export); +- +- /* don't record a finished event, if we already dropped the event in a failed rebuild */ +- if (seqnum < udev_queue_export->seqnum_max) +- return 0; +- +- /* now write to the queue */ +- if (state == DEVICE_QUEUED) { +- udev_queue_export->queued_count++; +- udev_queue_export->seqnum_min = seqnum; +- } else { +- udev_queue_export->waste_bytes += queue_record_size(devpath_len) + queue_record_size(0); +- udev_queue_export->queued_count--; +- } +- err = write_queue_record(udev_queue_export, seqnum, devpath, devpath_len); +- +- /* try to handle ENOSPC */ +- if (err != 0 && udev_queue_export->queued_count == 0) { +- udev_queue_export_cleanup(udev_queue_export); +- err = rebuild_queue_file(udev_queue_export); +- } +- +- return err; +-} +- +-static int update(struct udev_queue_export *udev_queue_export, +- struct udev_device *udev_device, enum device_state state) +-{ +- if (update_queue(udev_queue_export, udev_device, state) != 0) +- return -1; +- +- return 0; +-} +- +-int udev_queue_export_device_queued(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) +-{ +- return update(udev_queue_export, udev_device, DEVICE_QUEUED); +-} +- +-int udev_queue_export_device_finished(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) +-{ +- return update(udev_queue_export, udev_device, DEVICE_FINISHED); +-} +diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index 2cb4d67..eb0e096 100644 +--- a/src/libudev/libudev-queue.c ++++ b/src/libudev/libudev-queue.c +@@ -24,8 +24,6 @@ + #include + #include + #include +-#include +-#include + #include + #include + +@@ -36,10 +34,7 @@ + * SECTION:libudev-queue + * @short_description: access to currently active events + * +- * The udev daemon processes events asynchronously. All events which do not have +- * interdependencies run in parallel. This exports the current state of the +- * event processing queue, and the current event sequence numbers from the kernel +- * and the udev daemon. ++ * This exports the current state of the udev processing queue. + */ + + /** +@@ -50,7 +45,6 @@ + struct udev_queue { + struct udev *udev; + int refcount; +- struct udev_list queue_list; + }; + + /** +@@ -72,9 +66,9 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) + udev_queue = new0(struct udev_queue, 1); + if (udev_queue == NULL) + return NULL; ++ + udev_queue->refcount = 1; + udev_queue->udev = udev; +- udev_list_init(udev, &udev_queue->queue_list, false); + return udev_queue; + } + +@@ -90,6 +84,7 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue) + { + if (udev_queue == NULL) + return NULL; ++ + udev_queue->refcount++; + return udev_queue; + } +@@ -107,10 +102,11 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) + { + if (udev_queue == NULL) + return NULL; ++ + udev_queue->refcount--; + if (udev_queue->refcount > 0) + return NULL; +- udev_list_cleanup(&udev_queue->queue_list); ++ + free(udev_queue); + return NULL; + } +@@ -130,141 +126,30 @@ _public_ struct udev *udev_queue_get_udev(struct udev_queue *udev_queue) + return udev_queue->udev; + } + +-unsigned long long int udev_get_kernel_seqnum(struct udev *udev) +-{ +- unsigned long long int seqnum; +- int fd; +- char buf[32]; +- ssize_t len; +- +- fd = open("/sys/kernel/uevent_seqnum", O_RDONLY|O_CLOEXEC); +- if (fd < 0) +- return 0; +- len = read(fd, buf, sizeof(buf)); +- close(fd); +- if (len <= 2) +- return 0; +- buf[len-1] = '\0'; +- seqnum = strtoull(buf, NULL, 10); +- return seqnum; +-} +- + /** + * udev_queue_get_kernel_seqnum: + * @udev_queue: udev queue context + * +- * Get the current kernel event sequence number. ++ * This function is deprecated. + * +- * Returns: the sequence number. ++ * Returns: 0. + **/ + _public_ unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum; +- +- if (udev_queue == NULL) +- return -EINVAL; +- +- seqnum = udev_get_kernel_seqnum(udev_queue->udev); +- return seqnum; +-} +- +-int udev_queue_read_seqnum(FILE *queue_file, unsigned long long int *seqnum) +-{ +- if (fread(seqnum, sizeof(unsigned long long int), 1, queue_file) != 1) +- return -1; +- + return 0; + } + +-ssize_t udev_queue_skip_devpath(FILE *queue_file) +-{ +- unsigned short int len; +- +- if (fread(&len, sizeof(unsigned short int), 1, queue_file) == 1) { +- char *devpath = alloca(len); +- +- /* use fread to skip, fseek might drop buffered data */ +- if (fread(devpath, 1, len, queue_file) == len) +- return len; +- } +- +- return -1; +-} +- +-ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t size) +-{ +- unsigned short int read_bytes = 0; +- unsigned short int len; +- +- if (fread(&len, sizeof(unsigned short int), 1, queue_file) != 1) +- return -1; +- +- read_bytes = (len < size - 1) ? len : size - 1; +- if (fread(devpath, 1, read_bytes, queue_file) != read_bytes) +- return -1; +- devpath[read_bytes] = '\0'; +- +- /* if devpath was too long, skip unread characters */ +- if (read_bytes != len) { +- unsigned short int skip_bytes = len - read_bytes; +- char *buf = alloca(skip_bytes); +- +- if (fread(buf, 1, skip_bytes, queue_file) != skip_bytes) +- return -1; +- } +- +- return read_bytes; +-} +- +-static FILE *open_queue_file(struct udev_queue *udev_queue, unsigned long long int *seqnum_start) +-{ +- FILE *queue_file; +- +- queue_file = fopen("/run/udev/queue.bin", "re"); +- if (queue_file == NULL) +- return NULL; +- +- if (udev_queue_read_seqnum(queue_file, seqnum_start) < 0) { +- udev_err(udev_queue->udev, "corrupt queue file\n"); +- fclose(queue_file); +- return NULL; +- } +- +- return queue_file; +-} +- + /** + * udev_queue_get_udev_seqnum: + * @udev_queue: udev queue context + * +- * Get the last known udev event sequence number. ++ * This function is deprecated. + * +- * Returns: the sequence number. ++ * Returns: 0. + **/ + _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum_udev; +- FILE *queue_file; +- +- queue_file = open_queue_file(udev_queue, &seqnum_udev); +- if (queue_file == NULL) +- return 0; +- +- for (;;) { +- unsigned long long int seqnum; +- ssize_t devpath_len; +- +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- devpath_len = udev_queue_skip_devpath(queue_file); +- if (devpath_len < 0) +- break; +- if (devpath_len > 0) +- seqnum_udev = seqnum; +- } +- +- fclose(queue_file); +- return seqnum_udev; ++ return 0; + } + + /** +@@ -277,15 +162,7 @@ _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *ud + **/ + _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum_start; +- FILE *queue_file; +- +- queue_file = open_queue_file(udev_queue, &seqnum_start); +- if (queue_file == NULL) +- return 0; +- +- fclose(queue_file); +- return 1; ++ return access("/run/udev/control", F_OK) >= 0; + } + + /** +@@ -298,48 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) + **/ + _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum_kernel; +- unsigned long long int seqnum_udev = 0; +- int queued = 0; +- int is_empty = 0; +- FILE *queue_file; +- +- if (udev_queue == NULL) +- return -EINVAL; +- queue_file = open_queue_file(udev_queue, &seqnum_udev); +- if (queue_file == NULL) +- return 1; +- +- for (;;) { +- unsigned long long int seqnum; +- ssize_t devpath_len; +- +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- devpath_len = udev_queue_skip_devpath(queue_file); +- if (devpath_len < 0) +- break; +- +- if (devpath_len > 0) { +- queued++; +- seqnum_udev = seqnum; +- } else { +- queued--; +- } +- } +- +- if (queued > 0) +- goto out; +- +- seqnum_kernel = udev_queue_get_kernel_seqnum(udev_queue); +- if (seqnum_udev < seqnum_kernel) +- goto out; +- +- is_empty = 1; +- +-out: +- fclose(queue_file); +- return is_empty; ++ return access("/run/udev/queue", F_OK) >= 0; + } + + /** +@@ -348,63 +184,15 @@ out: + * @start: first event sequence number + * @end: last event sequence number + * +- * Check if udev is currently processing any events in a given sequence number range. ++ * This function is deprecated, it just returns the result of ++ * udev_queue_get_queue_is_empty(). + * +- * Returns: a flag indicating if any of the sequence numbers in the given range is currently active. ++ * Returns: a flag indicating if udev is currently handling events. + **/ + _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, + unsigned long long int start, unsigned long long int end) + { +- unsigned long long int seqnum; +- ssize_t devpath_len; +- int unfinished; +- FILE *queue_file; +- +- if (udev_queue == NULL) +- return -EINVAL; +- queue_file = open_queue_file(udev_queue, &seqnum); +- if (queue_file == NULL) +- return 1; +- if (start < seqnum) +- start = seqnum; +- if (start > end) { +- fclose(queue_file); +- return 1; +- } +- if (end - start > INT_MAX - 1) { +- fclose(queue_file); +- return -EOVERFLOW; +- } +- +- /* +- * we might start with 0, and handle the initial seqnum +- * only when we find an entry in the queue file +- **/ +- unfinished = end - start; +- +- do { +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- devpath_len = udev_queue_skip_devpath(queue_file); +- if (devpath_len < 0) +- break; +- +- /* +- * we might start with an empty or re-build queue file, where +- * the initial seqnum is not recorded as finished +- */ +- if (start == seqnum && devpath_len > 0) +- unfinished++; +- +- if (devpath_len == 0) { +- if (seqnum >= start && seqnum <= end) +- unfinished--; +- } +- } while (unfinished > 0); +- +- fclose(queue_file); +- +- return (unfinished == 0); ++ return udev_queue_get_queue_is_empty(udev_queue); + } + + /** +@@ -412,69 +200,25 @@ _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_ + * @udev_queue: udev queue context + * @seqnum: sequence number + * +- * Check if udev is currently processing a given sequence number. ++ * This function is deprecated, it just returns the result of ++ * udev_queue_get_queue_is_empty(). + * +- * Returns: a flag indicating if the given sequence number is currently active. ++ * Returns: a flag indicating if udev is currently handling events. + **/ + _public_ int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) + { +- if (!udev_queue_get_seqnum_sequence_is_finished(udev_queue, seqnum, seqnum)) +- return 0; +- +- return 1; ++ return udev_queue_get_queue_is_empty(udev_queue); + } + + /** + * udev_queue_get_queued_list_entry: + * @udev_queue: udev queue context + * +- * Get the first entry of the list of queued events. ++ * This function is deprecated. + * +- * Returns: a udev_list_entry. ++ * Returns: NULL. + **/ + _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) + { +- unsigned long long int seqnum; +- FILE *queue_file; +- +- if (udev_queue == NULL) +- return NULL; +- udev_list_cleanup(&udev_queue->queue_list); +- +- queue_file = open_queue_file(udev_queue, &seqnum); +- if (queue_file == NULL) +- return NULL; +- +- for (;;) { +- char syspath[UTIL_PATH_SIZE]; +- char *s; +- size_t l; +- ssize_t len; +- char seqnum_str[32]; +- struct udev_list_entry *list_entry; +- +- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) +- break; +- snprintf(seqnum_str, sizeof(seqnum_str), "%llu", seqnum); +- +- s = syspath; +- l = strpcpy(&s, sizeof(syspath), "/sys"); +- len = udev_queue_read_devpath(queue_file, s, l); +- if (len < 0) +- break; +- +- if (len > 0) { +- udev_list_entry_add(&udev_queue->queue_list, syspath, seqnum_str); +- } else { +- udev_list_entry_foreach(list_entry, udev_list_get_entry(&udev_queue->queue_list)) { +- if (streq(seqnum_str, udev_list_entry_get_value(list_entry))) { +- udev_list_entry_delete(list_entry); +- break; +- } +- } +- } +- } +- fclose(queue_file); +- +- return udev_list_get_entry(&udev_queue->queue_list); ++ return NULL; + } +diff --git src/libudev/libudev.h src/libudev/libudev.h +index b9b8f13..ceb89bd 100644 +--- a/src/libudev/libudev.h ++++ b/src/libudev/libudev.h +@@ -170,14 +170,14 @@ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue); + struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue); + struct udev *udev_queue_get_udev(struct udev_queue *udev_queue); + struct udev_queue *udev_queue_new(struct udev *udev); +-unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue); +-unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue); ++unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); ++unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); + int udev_queue_get_udev_is_active(struct udev_queue *udev_queue); + int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); +-int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum); ++int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); + int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, +- unsigned long long int start, unsigned long long int end); +-struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue); ++ unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); ++struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); + + /* + * udev_hwdb +diff --git src/shared/udev-util.h src/shared/udev-util.h +index 40f8b77..5f09ce1 100644 +--- a/src/shared/udev-util.h ++++ b/src/shared/udev-util.h +@@ -31,7 +31,6 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_ctrl*, udev_ctrl_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_monitor*, udev_monitor_unref); +-DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); + + #define _cleanup_udev_unref_ _cleanup_(udev_unrefp) + #define _cleanup_udev_device_unref_ _cleanup_(udev_device_unrefp) +@@ -40,5 +39,4 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); + #define _cleanup_udev_rules_unref_ _cleanup_(udev_rules_unrefp) + #define _cleanup_udev_ctrl_unref_ _cleanup_(udev_ctrl_unrefp) + #define _cleanup_udev_monitor_unref_ _cleanup_(udev_monitor_unrefp) +-#define _cleanup_udev_queue_unref_ _cleanup_(udev_queue_unrefp) + #define _cleanup_udev_list_cleanup_ _cleanup_(udev_list_cleanup) +diff --git src/test/test-libudev.c src/test/test-libudev.c +index c233b1e..f5c8bc7 100644 +--- a/src/test/test-libudev.c ++++ b/src/test/test-libudev.c +@@ -303,38 +303,14 @@ out: + + static int test_queue(struct udev *udev) { + struct udev_queue *udev_queue; +- unsigned long long int seqnum; +- struct udev_list_entry *list_entry; + + udev_queue = udev_queue_new(udev); + if (udev_queue == NULL) + return -1; +- seqnum = udev_queue_get_kernel_seqnum(udev_queue); +- printf("seqnum kernel: %llu\n", seqnum); +- seqnum = udev_queue_get_udev_seqnum(udev_queue); +- printf("seqnum udev : %llu\n", seqnum); + + if (udev_queue_get_queue_is_empty(udev_queue)) + printf("queue is empty\n"); +- printf("get queue list\n"); +- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) +- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); +- printf("\n"); +- printf("get queue list again\n"); +- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) +- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); +- printf("\n"); + +- list_entry = udev_queue_get_queued_list_entry(udev_queue); +- if (list_entry != NULL) { +- printf("event [%llu] is queued\n", seqnum); +- seqnum = strtoull(udev_list_entry_get_value(list_entry), NULL, 10); +- if (udev_queue_get_seqnum_is_finished(udev_queue, seqnum)) +- printf("event [%llu] is not finished\n", seqnum); +- else +- printf("event [%llu] is finished\n", seqnum); +- } +- printf("\n"); + udev_queue_unref(udev_queue); + return 0; + } +diff --git src/udev/udev-ctrl.c src/udev/udev-ctrl.c +index 1e91ec2..74bbd3a 100644 +--- a/src/udev/udev-ctrl.c ++++ b/src/udev/udev-ctrl.c +@@ -275,7 +275,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int + + pfd[0].fd = uctrl->sock; + pfd[0].events = POLLIN; +- r = poll(pfd, 1, timeout * 1000); ++ r = poll(pfd, 1, timeout * MSEC_PER_SEC); + if (r < 0) { + if (errno == EINTR) + continue; +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 927ea2a..65fc35f 100644 +--- a/src/udev/udevadm-settle.c ++++ b/src/udev/udevadm-settle.c +@@ -41,42 +41,28 @@ + static void help(void) { + printf("Usage: udevadm settle OPTIONS\n" + " -t,--timeout= maximum time to wait for events\n" +- " -s,--seq-start= first seqnum to wait for\n" +- " -e,--seq-end= last seqnum to wait for\n" + " -E,--exit-if-exists= stop waiting if file exists\n" +- " -q,--quiet do not print list after timeout\n" + " -h,--help\n\n"); + } + + static int adm_settle(struct udev *udev, int argc, char *argv[]) + { + static const struct option options[] = { +- { "seq-start", required_argument, NULL, 's' }, +- { "seq-end", required_argument, NULL, 'e' }, ++ { "seq-start", required_argument, NULL, '\0' }, /* removed */ ++ { "seq-end", required_argument, NULL, '\0' }, /* removed */ + { "timeout", required_argument, NULL, 't' }, + { "exit-if-exists", required_argument, NULL, 'E' }, +- { "quiet", no_argument, NULL, 'q' }, ++ { "quiet", no_argument, NULL, 'q' }, /* removed */ + { "help", no_argument, NULL, 'h' }, + {} + }; +- usec_t start_usec = now(CLOCK_MONOTONIC); +- usec_t start = 0; +- usec_t end = 0; +- int quiet = 0; + const char *exists = NULL; + unsigned int timeout = 120; + struct pollfd pfd[1] = { {.fd = -1}, }; +- _cleanup_udev_queue_unref_ struct udev_queue *udev_queue = NULL; + int rc = EXIT_FAILURE, c; + +- while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) ++ while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { + switch (c) { +- case 's': +- start = strtoull(optarg, NULL, 0); +- break; +- case 'e': +- end = strtoull(optarg, NULL, 0); +- break; + case 't': { + int r; + +@@ -91,9 +77,6 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + case 'E': + exists = optarg; + break; +- case 'q': +- quiet = 1; +- break; + case 'h': + help(); + exit(EXIT_SUCCESS); +@@ -102,44 +85,13 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + default: + assert_not_reached("Unknown argument"); + } ++ } + + if (optind < argc) { + fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); + exit(EXIT_FAILURE); + } + +- udev_queue = udev_queue_new(udev); +- if (udev_queue == NULL) +- exit(2); +- +- if (start > 0) { +- unsigned long long kernel_seq; +- +- kernel_seq = udev_queue_get_kernel_seqnum(udev_queue); +- +- /* unless specified, the last event is the current kernel seqnum */ +- if (end == 0) +- end = udev_queue_get_kernel_seqnum(udev_queue); +- +- if (start > end) { +- log_error("seq-start larger than seq-end, ignoring"); +- start = 0; +- end = 0; +- } +- +- if (start > kernel_seq || end > kernel_seq) { +- log_error("seq-start or seq-end larger than current kernel value, ignoring"); +- start = 0; +- end = 0; +- } +- log_debug("start=%llu end=%llu current=%llu", (unsigned long long)start, (unsigned long long)end, kernel_seq); +- } else { +- if (end > 0) { +- log_error("seq-end needs seq-start parameter, ignoring"); +- end = 0; +- } +- } +- + /* guarantee that the udev daemon isn't pre-processing */ + if (getuid() == 0) { + struct udev_ctrl *uctrl; +@@ -160,73 +112,34 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + pfd[0].fd = inotify_init1(IN_CLOEXEC); + if (pfd[0].fd < 0) { + log_error("inotify_init failed: %m"); +- } else { +- if (inotify_add_watch(pfd[0].fd, "/run/udev" , IN_MOVED_TO) < 0) { +- log_error("watching /run/udev failed"); +- close(pfd[0].fd); +- pfd[0].fd = -1; +- } ++ goto out; + } + +- for (;;) { +- struct stat statbuf; ++ if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { ++ log_debug("watching /run/udev failed"); ++ goto out; ++ } + +- if (exists != NULL && stat(exists, &statbuf) == 0) { ++ for (;;) { ++ if (exists && access(exists, F_OK) >= 0) { + rc = EXIT_SUCCESS; + break; + } + +- if (start > 0) { +- /* if asked for, wait for a specific sequence of events */ +- if (udev_queue_get_seqnum_sequence_is_finished(udev_queue, start, end) == 1) { +- rc = EXIT_SUCCESS; +- break; +- } +- } else { +- /* exit if queue is empty */ +- if (udev_queue_get_queue_is_empty(udev_queue)) { +- rc = EXIT_SUCCESS; +- break; +- } +- } +- +- if (pfd[0].fd >= 0) { +- int delay; +- +- if (exists != NULL || start > 0) +- delay = 100; +- else +- delay = 1000; +- /* wake up after delay, or immediately after the queue is rebuilt */ +- if (poll(pfd, 1, delay) > 0 && pfd[0].revents & POLLIN) { +- char buf[sizeof(struct inotify_event) + PATH_MAX]; +- +- read(pfd[0].fd, buf, sizeof(buf)); +- } +- } else { +- sleep(1); ++ /* exit if queue is empty */ ++ if (access("/run/udev/queue", F_OK) < 0) { ++ rc = EXIT_SUCCESS; ++ break; + } + +- if (timeout > 0) { +- usec_t age_usec; ++ /* wake up when "queue" file is deleted */ ++ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { ++ char buf[sizeof(struct inotify_event) + PATH_MAX]; + +- age_usec = now(CLOCK_MONOTONIC) - start_usec; +- if (age_usec / (1000 * 1000) >= timeout) { +- struct udev_list_entry *list_entry; +- +- if (!quiet && udev_queue_get_queued_list_entry(udev_queue) != NULL) { +- log_debug("timeout waiting for udev queue"); +- printf("\nudevadm settle - timeout of %i seconds reached, the event queue contains:\n", timeout); +- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) +- printf(" %s (%s)\n", +- udev_list_entry_get_name(list_entry), +- udev_list_entry_get_value(list_entry)); +- } +- +- break; +- } ++ read(pfd[0].fd, buf, sizeof(buf)); + } + } ++ + out: + if (pfd[0].fd >= 0) + close(pfd[0].fd); +@@ -236,5 +149,5 @@ out: + const struct udevadm_cmd udevadm_settle = { + .name = "settle", + .cmd = adm_settle, +- .help = "wait for the event queue to finish", ++ .help = "wait for pending udev events", + }; +diff --git src/udev/udevd.c src/udev/udevd.c +index f21c227..f9ee368 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -60,7 +60,6 @@ void udev_main_log(struct udev *udev, int priority, + } + + static struct udev_rules *rules; +-static struct udev_queue_export *udev_queue_export; + static struct udev_ctrl *udev_ctrl; + static struct udev_monitor *monitor; + static int worker_watch[2] = { -1, -1 }; +@@ -139,14 +138,9 @@ static inline struct worker *node_to_worker(struct udev_list_node *node) + return container_of(node, struct worker, node); + } + +-static void event_queue_delete(struct event *event, bool export) ++static void event_queue_delete(struct event *event) + { + udev_list_node_remove(&event->node); +- +- if (export) { +- udev_queue_export_device_finished(udev_queue_export, event->dev); +- log_debug("seq %llu done with %i", udev_device_get_seqnum(event->dev), event->exitcode); +- } + udev_device_unref(event->dev); + free(event); + } +@@ -225,7 +219,6 @@ static void worker_new(struct event *event) + free(worker); + worker_list_cleanup(udev); + event_queue_cleanup(udev, EVENT_UNDEF); +- udev_queue_export_unref(udev_queue_export); + udev_monitor_unref(monitor); + udev_ctrl_unref(udev_ctrl); + close(fd_signal); +@@ -449,7 +442,6 @@ static int event_queue_insert(struct udev_device *dev) + 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), + udev_device_get_action(dev), udev_device_get_subsystem(dev)); + +@@ -580,7 +572,7 @@ static void event_queue_cleanup(struct udev *udev, enum event_state match_type) + if (match_type != EVENT_UNDEF && match_type != event->state) + continue; + +- event_queue_delete(event, false); ++ event_queue_delete(event); + } + } + +@@ -605,7 +597,7 @@ static void worker_returned(int fd_worker) + /* worker returned */ + if (worker->event) { + worker->event->exitcode = msg.exitcode; +- event_queue_delete(worker->event, true); ++ event_queue_delete(worker->event); + worker->event = NULL; + } + if (worker->state != WORKER_KILLED) +@@ -797,7 +789,8 @@ static void handle_signal(struct udev *udev, int signo) + log_error("worker [%u] failed while handling '%s'", + pid, worker->event->devpath); + worker->event->exitcode = -32; +- event_queue_delete(worker->event, true); ++ event_queue_delete(worker->event); ++ + /* drop reference taken for state 'running' */ + worker_unref(worker); + } +@@ -1076,14 +1069,7 @@ int main(int argc, char *argv[]) + goto exit; + } + +- udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024); +- +- /* create queue file before signalling 'ready', to make sure we block 'settle' */ +- udev_queue_export = udev_queue_export_new(udev); +- if (udev_queue_export == NULL) { +- log_error("error creating queue file"); +- goto exit; +- } ++ udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024); + + if (daemonize) { + pid_t pid; +@@ -1241,12 +1227,12 @@ int main(int argc, char *argv[]) + worker_kill(udev); + + /* exit after all has cleaned up */ +- if (udev_list_node_is_empty(&event_list) && udev_list_node_is_empty(&worker_list)) ++ if (udev_list_node_is_empty(&event_list) && children == 0) + break; + + /* timeout at exit for workers to finish */ +- timeout = 30 * 1000; +- } else if (udev_list_node_is_empty(&event_list) && !children) { ++ timeout = 30 * MSEC_PER_SEC; ++ } else if (udev_list_node_is_empty(&event_list) && children == 0) { + /* we are idle */ + timeout = -1; + +@@ -1255,8 +1241,20 @@ int main(int argc, char *argv[]) + cg_kill(SYSTEMD_CGROUP_CONTROLLER, udev_cgroup, SIGKILL, false, true, NULL); + } else { + /* kill idle or hanging workers */ +- timeout = 3 * 1000; ++ timeout = 3 * MSEC_PER_SEC; + } ++ ++ /* tell settle that we are busy or idle */ ++ if (!udev_list_node_is_empty(&event_list)) { ++ int fd; ++ ++ fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); ++ if (fd >= 0) ++ close(fd); ++ } else { ++ unlink("/run/udev/queue"); ++ } ++ + fdcount = epoll_wait(fd_ep, ev, ELEMENTSOF(ev), timeout); + if (fdcount < 0) + continue; +@@ -1283,18 +1281,18 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { + log_error("worker [%u] %s timeout; kill it", worker->pid, + worker->event ? worker->event->devpath : ""); + kill(worker->pid, SIGKILL); + worker->state = WORKER_KILLED; ++ + /* drop reference taken for state 'running' */ + worker_unref(worker); + if (worker->event) { +- log_error("seq %llu '%s' killed", +- udev_device_get_seqnum(worker->event->dev), worker->event->devpath); ++ 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); ++ event_queue_delete(worker->event); + worker->event = NULL; + } + } +@@ -1317,7 +1315,7 @@ int main(int argc, char *argv[]) + } + + /* check for changed config, every 3 seconds at most */ +- if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) { ++ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * USEC_PER_SEC) { + if (udev_rules_check_timestamp(rules)) + reload = true; + if (udev_builtin_validate(udev)) +@@ -1390,8 +1388,8 @@ int main(int argc, char *argv[]) + + rc = EXIT_SUCCESS; + exit: +- udev_queue_export_cleanup(udev_queue_export); + udev_ctrl_cleanup(udev_ctrl); ++ unlink("/run/udev/queue"); + exit_daemonize: + if (fd_ep >= 0) + close(fd_ep); +@@ -1406,7 +1404,6 @@ exit_daemonize: + if (worker_watch[WRITE_END] >= 0) + close(worker_watch[WRITE_END]); + udev_monitor_unref(monitor); +- udev_queue_export_unref(udev_queue_export); + udev_ctrl_connection_unref(ctrl_conn); + udev_ctrl_unref(udev_ctrl); + label_finish(); +-- +1.7.9.2 + diff --git a/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch b/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch new file mode 100644 index 00000000..75da64fa --- /dev/null +++ b/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch @@ -0,0 +1,31 @@ +From a52ec8ed881537627869afa8f0486db7e20ce2db Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Fri, 30 May 2014 13:16:56 -0400 +Subject: [PATCH] udev-builtin-keyboard: do tell on which device EVIOCSKEYCODE + failed. + +I am getting + +"Error calling EVIOCSKEYCODE (scan code 0xc022d, key code 418): Invalid +argument", the error message does not tell on which specific device the +problem is, add that info. +--- + src/udev/udev-builtin-keyboard.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/udev-builtin-keyboard.c src/udev/udev-builtin-keyboard.c +index 614e44e..9b66bfd 100644 +--- src/udev/udev-builtin-keyboard.c ++++ src/udev/udev-builtin-keyboard.c +@@ -143,7 +143,7 @@ static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], boo + log_debug("keyboard: mapping scan code %d (0x%x) to key code %d (0x%x)", + map[i].scan, map[i].scan, map[i].key, map[i].key); + if (ioctl(fd, EVIOCSKEYCODE, &map[i]) < 0) +- log_error("Error calling EVIOCSKEYCODE (scan code 0x%x, key code %d): %m", map[i].scan, map[i].key); ++ log_error("Error calling EVIOCSKEYCODE on device node '%s' (scan code 0x%x, key code %d): %m", node, map[i].scan, map[i].key); + } + + /* install list of force-release codes */ +-- +1.7.9.2 + diff --git a/1024-udev-always-close-lock-file-descriptor.patch b/1024-udev-always-close-lock-file-descriptor.patch new file mode 100644 index 00000000..aaa4b296 --- /dev/null +++ b/1024-udev-always-close-lock-file-descriptor.patch @@ -0,0 +1,41 @@ +Based on 3d06f4183470d42361303086ed9dedd29c0ffc1b Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 3 Jun 2014 10:46:51 +0200 +Subject: [PATCH] udev: always close lock file descriptor + +https://bugs.freedesktop.org/show_bug.cgi?id=79576 +--- + src/udev/udevd.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-06-03 15:34:42.778346368 +0000 +@@ -301,6 +301,7 @@ static void worker_new(struct event *eve + if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { + log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); + err = -EWOULDBLOCK; ++ close_nointr_nofail(fd_lock); fd_lock = -1; + goto skip; + } + } +@@ -318,7 +319,7 @@ static void worker_new(struct event *eve + } + + if (fd_lock >= 0) +- close(fd_lock); ++ close_nointr_nofail(fd_lock); + + /* send processed event back to libudev listeners */ + udev_monitor_send_device(worker_monitor, NULL, dev); +@@ -378,9 +379,9 @@ skip: + out: + udev_device_unref(dev); + if (fd_signal >= 0) +- close(fd_signal); ++ close_nointr_nofail(fd_signal); + if (fd_ep >= 0) +- close(fd_ep); ++ close_nointr_nofail(fd_ep); + close(fd_inotify); + close(worker_watch[WRITE_END]); + udev_rules_unref(rules); diff --git a/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch b/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch new file mode 100644 index 00000000..2dc531f4 --- /dev/null +++ b/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch @@ -0,0 +1,39 @@ +From e918a1b5a94f270186dca59156354acd2a596494 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 3 Jun 2014 16:49:38 +0200 +Subject: [PATCH] udev: exclude device-mapper from block device ownership event + locking + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 819ea3b..6c05104 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -290,7 +290,19 @@ static void worker_new(struct event *event) + * acquired the lock, the external process will block until + * udev has finished its event handling. + */ +- if (streq_ptr("block", udev_device_get_subsystem(dev))) { ++ ++ /* ++ * since we make check - device seems unused - we try ++ * ioctl to deactivate - and device is found to be opened ++ * sure, you try to take a write lock ++ * if you get it udev is out ++ * if you can't get it, udev is busy ++ * we cannot deactivate openned device (as it is in-use) ++ * maybe we should just exclude dm from that thing entirely ++ * IMHO this sounds like a good plan for this moment ++ */ ++ if (streq_ptr("block", udev_device_get_subsystem(dev)) && ++ !startswith("dm-", udev_device_get_sysname(dev))) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +-- +1.8.4.5 + diff --git a/1026-udevd-inotify-modernizations.patch b/1026-udevd-inotify-modernizations.patch new file mode 100644 index 00000000..c63093ff --- /dev/null +++ b/1026-udevd-inotify-modernizations.patch @@ -0,0 +1,85 @@ +From edd32000c806e4527c5f376d138f7bff07724c26 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 11:05:45 +0200 +Subject: [PATCH] udevd: inotify - modernizations + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 45 ++++++++++++++++++++++----------------------- + 1 file changed, 22 insertions(+), 23 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -736,20 +736,30 @@ out: + return udev_ctrl_connection_unref(ctrl_conn); + } + ++static void synthesize_change(struct udev_device *dev) { ++ char filename[UTIL_PATH_SIZE]; ++ ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++} ++ + /* read inotify messages */ + static int handle_inotify(struct udev *udev) + { + int nbytes, pos; + char *buf; + struct inotify_event *ev; ++ int r; + +- if ((ioctl(fd_inotify, FIONREAD, &nbytes) < 0) || (nbytes <= 0)) +- return 0; ++ r = ioctl(fd_inotify, FIONREAD, &nbytes); ++ if (r < 0 || nbytes <= 0) ++ return -errno; + + buf = malloc(nbytes); +- if (buf == NULL) { ++ if (!buf) { + log_error("error getting buffer for inotify"); +- return -1; ++ return -ENOMEM; + } + + nbytes = read(fd_inotify, buf, nbytes); +@@ -759,27 +769,16 @@ static int handle_inotify(struct udev *u + + ev = (struct inotify_event *)(buf + pos); + dev = udev_watch_lookup(udev, ev->wd); +- if (dev != NULL) { +- log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); +- if (ev->mask & IN_CLOSE_WRITE) { +- char filename[UTIL_PATH_SIZE]; +- int fd; +- +- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); +- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); +- fd = open(filename, O_WRONLY|O_CLOEXEC); +- if (fd >= 0) { +- if (write(fd, "change", 6) < 0) +- log_debug("error writing uevent: %m"); +- close(fd); +- } +- } +- if (ev->mask & IN_IGNORED) +- udev_watch_end(udev, dev); ++ if (!dev) ++ continue; + +- udev_device_unref(dev); +- } ++ log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); ++ if (ev->mask & IN_CLOSE_WRITE) ++ synthesize_change(dev); ++ else if (ev->mask & IN_IGNORED) ++ udev_watch_end(udev, dev); + ++ udev_device_unref(dev); + } + + free(buf); diff --git a/1027-udev-synthesize-change-events-for-partitions-when-to.patch b/1027-udev-synthesize-change-events-for-partitions-when-to.patch new file mode 100644 index 00000000..ab09c1b2 --- /dev/null +++ b/1027-udev-synthesize-change-events-for-partitions-when-to.patch @@ -0,0 +1,84 @@ +From f3a740a5dae792fb6b2d411022ce8c29ced1c3f1 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 12:16:28 +0200 +Subject: [PATCH] udev: synthesize "change' events for partitions when tools + change the disk + +This should make sure that fdisk-like programs will automatically +cause an update of all partitions, just like mkfs-like programs cause +an update of the partition. + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 42 insertions(+), 2 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -46,6 +46,7 @@ + #include + + #include "udev.h" ++#include "udev-util.h" + #include "sd-daemon.h" + #include "cgroup-util.h" + #include "dev-setup.h" +@@ -736,15 +737,54 @@ out: + return udev_ctrl_connection_unref(ctrl_conn); + } + +-static void synthesize_change(struct udev_device *dev) { ++static int synthesize_change(struct udev_device *dev) { + char filename[UTIL_PATH_SIZE]; ++ int r; + + log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); + strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); + write_string_file(filename, "change"); ++ ++ /* for disks devices, re-trigger all partitions too */ ++ if (streq_ptr("block", udev_device_get_subsystem(dev)) && ++ streq_ptr("disk", udev_device_get_devtype(dev))) { ++ struct udev *udev = udev_device_get_udev(dev); ++ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; ++ struct udev_list_entry *item; ++ ++ e = udev_enumerate_new(udev); ++ if (!e) ++ return -ENOMEM; ++ ++ r = udev_enumerate_add_match_parent(e, dev); ++ if (r < 0) ++ return r; ++ ++ r = udev_enumerate_add_match_subsystem(e, "block"); ++ if (r < 0) ++ return r; ++ ++ r = udev_enumerate_scan_devices(e); ++ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { ++ _cleanup_udev_device_unref_ struct udev_device *d = NULL; ++ ++ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); ++ if (!d) ++ continue; ++ ++ if (!streq_ptr("partition", udev_device_get_devtype(d))) ++ continue; ++ ++ log_debug("device %s closed, synthesising partition '%s' 'change'", ++ udev_device_get_devnode(dev), udev_device_get_devnode(d)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ } ++ } ++ ++ return 0; + } + +-/* read inotify messages */ + static int handle_inotify(struct udev *udev) + { + int nbytes, pos; diff --git a/1028-udev-link-config-fix-mem-leak.patch b/1028-udev-link-config-fix-mem-leak.patch new file mode 100644 index 00000000..265009f0 --- /dev/null +++ b/1028-udev-link-config-fix-mem-leak.patch @@ -0,0 +1,34 @@ +From edf029b7fd9a5853a87d3ca99aac2922bb8a277e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 4 Jun 2014 12:34:23 +0200 +Subject: [PATCH] udev: link-config - fix mem leak + +Reported by Kay. + +Signed-off-by: Robert Milasan +--- + src/udev/net/link-config.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +Index: systemd-210/src/udev/net/link-config.c +=================================================================== +--- systemd-210.orig/src/udev/net/link-config.c ++++ systemd-210/src/udev/net/link-config.c +@@ -118,6 +118,7 @@ static void link_configs_free(link_confi + free(link->match_type); + free(link->description); + free(link->alias); ++ free(link->name_policy); + + free(link); + } +@@ -205,7 +206,8 @@ static bool enable_name_policy(void) { + + int link_config_load(link_config_ctx *ctx) { + int r; +- char **files, **f; ++ _cleanup_strv_free_ char **files; ++ char **f; + + link_configs_free(ctx); + diff --git a/1029-udev-try-first-re-reading-the-partition-table.patch b/1029-udev-try-first-re-reading-the-partition-table.patch new file mode 100644 index 00000000..fa20002b --- /dev/null +++ b/1029-udev-try-first-re-reading-the-partition-table.patch @@ -0,0 +1,94 @@ +From ede344452a54e1c53f541cad12a06269a4fe96a9 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 13:30:24 +0200 +Subject: [PATCH] udev: try first re-reading the partition table + +mounted partitions: + # dd if=/dev/zero of=/dev/sda bs=1 count=1 + UDEV [4157.369250] change .../0:0:0:0/block/sda (block) + UDEV [4157.375059] change .../0:0:0:0/block/sda/sda1 (block) + UDEV [4157.397088] change .../0:0:0:0/block/sda/sda2 (block) + UDEV [4157.404842] change .../0:0:0:0/block/sda/sda4 (block) + +unmounted partitions: + # dd if=/dev/zero of=/dev/sdb bs=1 count=1 + UDEV [4163.450217] remove .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) + UDEV [4163.593167] change .../target6:0:0/6:0:0:0/block/sdb (block) + UDEV [4163.713982] add .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 39 +++++++++++++++++++++++++++++++++------ + 1 file changed, 33 insertions(+), 6 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -741,17 +742,37 @@ static int synthesize_change(struct udev + char filename[UTIL_PATH_SIZE]; + int r; + +- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); +- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); +- write_string_file(filename, "change"); +- +- /* for disks devices, re-trigger all partitions too */ + if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- streq_ptr("disk", udev_device_get_devtype(dev))) { ++ streq_ptr("disk", udev_device_get_devtype(dev)) && ++ !startswith("dm-", udev_device_get_sysname(dev))) { ++ int fd; + struct udev *udev = udev_device_get_udev(dev); + _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; + struct udev_list_entry *item; + ++ /* ++ * Try to re-read the partition table, this only succeeds if ++ * none of the devices is busy. ++ * ++ * The kernel will send out a change event for the disk, and ++ * "remove/add" for all partitions. ++ */ ++ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ if (fd >= 0) { ++ r = ioctl(fd, BLKRRPART, 0); ++ close(fd); ++ if (r >= 0) ++ return 0; ++ } ++ ++ /* ++ * Re-reading the partition table did not work, synthesize "change" ++ * events for the disk and all partitions. ++ */ ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ + e = udev_enumerate_new(udev); + if (!e) + return -ENOMEM; +@@ -780,8 +801,14 @@ static int synthesize_change(struct udev + strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); + write_string_file(filename, "change"); + } ++ ++ return 0; + } + ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ + return 0; + } + diff --git a/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch b/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch new file mode 100644 index 00000000..6fb7b15f --- /dev/null +++ b/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch @@ -0,0 +1,23 @@ +From 10fab50a3091e0b819c3ddab5a7c07acf750c050 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 14:09:31 +0200 +Subject: [PATCH] udev: guard REREADP logic with open(O_ECXL) + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -757,7 +757,7 @@ static int synthesize_change(struct udev + * The kernel will send out a change event for the disk, and + * "remove/add" for all partitions. + */ +- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd >= 0) { + r = ioctl(fd, BLKRRPART, 0); + close(fd); diff --git a/1031-udev-make-sure-we-always-get-change-for-the-disk.patch b/1031-udev-make-sure-we-always-get-change-for-the-disk.patch new file mode 100644 index 00000000..4f48cd3a --- /dev/null +++ b/1031-udev-make-sure-we-always-get-change-for-the-disk.patch @@ -0,0 +1,98 @@ +From e9fc29f4ecc9509ccc02eb8a014341e26c0d7831 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 15:17:15 +0200 +Subject: [PATCH] udev: make sure we always get "change" for the disk + +The kernel will return 0 for REREADPT when no partition table +is found, we have to send out "change" ourselves. + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 53 +++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 39 insertions(+), 14 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -745,34 +745,28 @@ static int synthesize_change(struct udev + if (streq_ptr("block", udev_device_get_subsystem(dev)) && + streq_ptr("disk", udev_device_get_devtype(dev)) && + !startswith("dm-", udev_device_get_sysname(dev))) { ++ bool part_table_read = false; ++ bool has_partitions = false; + int fd; + struct udev *udev = udev_device_get_udev(dev); + _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; + struct udev_list_entry *item; + + /* +- * Try to re-read the partition table, this only succeeds if +- * none of the devices is busy. +- * +- * The kernel will send out a change event for the disk, and +- * "remove/add" for all partitions. ++ * Try to re-read the partition table. This only succeeds if ++ * none of the devices is busy. The kernel returns 0 if no ++ * partition table is found, and we will not get an event for ++ * the disk. + */ + fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd >= 0) { + r = ioctl(fd, BLKRRPART, 0); + close(fd); + if (r >= 0) +- return 0; ++ part_table_read = true; + } + +- /* +- * Re-reading the partition table did not work, synthesize "change" +- * events for the disk and all partitions. +- */ +- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); +- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); +- write_string_file(filename, "change"); +- ++ /* search for partitions */ + e = udev_enumerate_new(udev); + if (!e) + return -ENOMEM; +@@ -786,6 +780,37 @@ static int synthesize_change(struct udev + return r; + + r = udev_enumerate_scan_devices(e); ++ ++ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { ++ _cleanup_udev_device_unref_ struct udev_device *d = NULL; ++ ++ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); ++ if (!d) ++ continue; ++ ++ if (!streq_ptr("partition", udev_device_get_devtype(d))) ++ continue; ++ ++ has_partitions = true; ++ break; ++ } ++ ++ /* ++ * We have partitions and re-read the table, the kernel already sent ++ * out a "change" event for the disk, and "remove/add" for all ++ * partitions. ++ */ ++ if (part_table_read && has_partitions) ++ return 0; ++ ++ /* ++ * We have partitions but re-reading the partition table did not ++ * work, synthesize "change" for the disk and all partitions. ++ */ ++ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); ++ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); ++ write_string_file(filename, "change"); ++ + udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { + _cleanup_udev_device_unref_ struct udev_device *d = NULL; + diff --git a/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch b/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch new file mode 100644 index 00000000..4a6d7c13 --- /dev/null +++ b/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch @@ -0,0 +1,29 @@ +From 02ba8fb3357daf57f6120ac512fb464a4c623419 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Wed, 4 Jun 2014 16:21:19 +0200 +Subject: [PATCH] udev: guard REREADPT by exclusive lock instead of O_EXCL + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -758,9 +758,12 @@ static int synthesize_change(struct udev + * partition table is found, and we will not get an event for + * the disk. + */ +- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); ++ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd >= 0) { +- r = ioctl(fd, BLKRRPART, 0); ++ r = flock(fd, LOCK_EX|LOCK_NB); ++ if (r >= 0) ++ r = ioctl(fd, BLKRRPART, 0); ++ + close(fd); + if (r >= 0) + part_table_read = true; diff --git a/1033-udev-really-exclude-device-mapper-from-block-device.patch b/1033-udev-really-exclude-device-mapper-from-block-device.patch new file mode 100644 index 00000000..594331c3 --- /dev/null +++ b/1033-udev-really-exclude-device-mapper-from-block-device.patch @@ -0,0 +1,39 @@ +From 638ca89c53e2b897cfb3f627f4acbc7d09af2f4c Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Tue, 10 Jun 2014 15:51:15 +0200 +Subject: [PATCH] udev: really exclude device-mapper from block device + ownership event locking + +Arguments were wrong order, no? +This fixes commits: + +e918a1b5a94f270186dca59156354acd2a596494 +3d06f4183470d42361303086ed9dedd29c0ffc1b + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -304,7 +304,7 @@ static void worker_new(struct event *eve + * IMHO this sounds like a good plan for this moment + */ + if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- !startswith("dm-", udev_device_get_sysname(dev))) { ++ !startswith(udev_device_get_sysname(dev), "dm-")) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +@@ -744,7 +744,7 @@ static int synthesize_change(struct udev + + if (streq_ptr("block", udev_device_get_subsystem(dev)) && + streq_ptr("disk", udev_device_get_devtype(dev)) && +- !startswith("dm-", udev_device_get_sysname(dev))) { ++ !startswith(udev_device_get_sysname(dev), "dm-")) { + bool part_table_read = false; + bool has_partitions = false; + int fd; diff --git a/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch b/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch new file mode 100644 index 00000000..c2a21fce --- /dev/null +++ b/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch @@ -0,0 +1,26 @@ +From 47a3fa0f7679521b85f7aeba9e245c52cc7bb2cb Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Wed, 4 Jun 2014 23:40:43 +0200 +Subject: [PATCH] udev: check the return value from udev_enumerate_scan_devices + +The return value from udev_enumerate_scan_devices was stored but +never used. I assume this was meant to be checked. + +Signed-off-by: Robert Milasan +--- + src/udev/udevd.c | 2 ++ + 1 file changed, 2 insertions(+) + +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -783,6 +783,8 @@ static int synthesize_change(struct udev + return r; + + r = udev_enumerate_scan_devices(e); ++ if (r < 0) ++ return r; + + udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { + _cleanup_udev_device_unref_ struct udev_device *d = NULL; diff --git a/1038-udev-fix-invalid-free-in-enable_name_policy.patch b/1038-udev-fix-invalid-free-in-enable_name_policy.patch new file mode 100644 index 00000000..4afdb7ce --- /dev/null +++ b/1038-udev-fix-invalid-free-in-enable_name_policy.patch @@ -0,0 +1,30 @@ +From f8a0bb5285024b6ce372c3157e761e6543ebdcd2 Mon Sep 17 00:00:00 2001 +From: Andreas Henriksson +Date: Fri, 13 Jun 2014 18:48:21 +0200 +Subject: [PATCH] udev: fix invalid free() in enable_name_policy() + +static bool enable_name_policy(...) in ./src/udev/net/link-config.c +calls proc_cmdline(...) to get "line" initialized, but +proc_cmdline(...) does not guarantee that atleast when both +conditions (detect_container(NULL) > 0) and +read_full_file(...) returned < 0. +--- + src/udev/net/link-config.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/net/link-config.c src/udev/net/link-config.c +index a9acc3d..7a9d01b 100644 +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c +@@ -185,7 +185,7 @@ static int load_link(link_config_ctx *ctx, const char *filename) { + } + + static bool enable_name_policy(void) { +- _cleanup_free_ char *line; ++ _cleanup_free_ char *line = NULL; + char *w, *state; + int r; + size_t l; +-- +1.7.9.2 + diff --git a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch new file mode 100644 index 00000000..2760970f --- /dev/null +++ b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch @@ -0,0 +1,34 @@ +From 83be2c398589a3d64db5999cfd5527c5219bff46 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 20 May 2014 12:25:16 +0200 +Subject: [PATCH] udevadm-settle: fixed return code for empty queue + +If the udev queue is empty and "/run/udev/queue" does not exist, +"udevadm settle" would return with EXIT_FAILURE, because the inotify on +"/run/udev/queue" would fail with ENOENT. + +This patch lets "udevadm settle" exit with EXIT_SUCCESS in this case. +--- + src/udev/udevadm-settle.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 65fc35f..66fd843 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -116,7 +116,11 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { +- log_debug("watching /run/udev failed"); ++ /* If it does not exist, we don't have to wait */ ++ if (errno == ENOENT) ++ rc = EXIT_SUCCESS; ++ else ++ log_debug("watching /run/udev/queue failed"); + goto out; + } + +-- +1.7.9.2 + diff --git a/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch b/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch new file mode 100644 index 00000000..21d21356 --- /dev/null +++ b/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch @@ -0,0 +1,25 @@ +From 45e60962b7965f32755a76b79a28126299aac149 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 27 Jun 2014 14:20:17 +0200 +Subject: [PATCH] libudev: fix udev_queue_get_queue_is_empty() logic + +--- + src/libudev/libudev-queue.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index eb0e096..c32a7ef 100644 +--- src/libudev/libudev-queue.c ++++ src/libudev/libudev-queue.c +@@ -175,7 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) + **/ + _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) + { +- return access("/run/udev/queue", F_OK) >= 0; ++ return access("/run/udev/queue", F_OK) < 0; + } + + /** +-- +1.7.9.2 + diff --git a/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch b/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch new file mode 100644 index 00000000..a9458e36 --- /dev/null +++ b/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch @@ -0,0 +1,248 @@ +Based on 14cb733684d3c3f50d088a3a370ddf8e8894dfa4 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 27 Jun 2014 17:42:44 +0200 +Subject: [PATCH] libudev: queue provide file descriptor to watch busy event + queue + +--- + docs/libudev/libudev-sections.txt | 2 ++ + src/libudev/libudev-queue.c | 46 +++++++++++++++++++++++++++++++++++ + src/libudev/libudev.h | 2 ++ + src/libudev/libudev.sym | 2 ++ + src/udev/udevadm-settle.c | 48 ++++++++++++++++--------------------- + 5 files changed, 73 insertions(+), 27 deletions(-) + +diff --git docs/libudev/libudev-sections.txt docs/libudev/libudev-sections.txt +index c154645..8a31ded 100644 +--- docs/libudev/libudev-sections.txt ++++ docs/libudev/libudev-sections.txt +@@ -116,6 +116,8 @@ udev_queue_get_seqnum_sequence_is_finished + udev_queue_get_queued_list_entry + udev_queue_get_kernel_seqnum + udev_queue_get_udev_seqnum ++udev_queue_get_fd ++udev_queue_flush +
+ +
+diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index c32a7ef..d4334b4 100644 +--- src/libudev/libudev-queue.c ++++ src/libudev/libudev-queue.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "libudev.h" + #include "libudev-private.h" +@@ -45,6 +46,7 @@ + struct udev_queue { + struct udev *udev; + int refcount; ++ int fd; + }; + + /** +@@ -69,6 +71,7 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) + + udev_queue->refcount = 1; + udev_queue->udev = udev; ++ udev_queue->fd = -1; + return udev_queue; + } + +@@ -107,6 +110,9 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) + if (udev_queue->refcount > 0) + return NULL; + ++ if (udev_queue->fd >= 0) ++ close_nointr_nofail(udev_queue->fd); ++ + free(udev_queue); + return NULL; + } +@@ -222,3 +228,44 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu + { + return NULL; + } ++ ++/** ++ * udev_queue_get_fd: ++ * @udev_queue: udev queue context ++ * ++ * Returns: a file descriptor to watch for a queue to become empty. ++ */ ++_public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { ++ int fd; ++ int r; ++ ++ if (udev_queue->fd >= 0) ++ return udev_queue->fd; ++ ++ fd = inotify_init1(IN_CLOEXEC); ++ if (fd < 0) ++ return -errno; ++ ++ r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); ++ if (r < 0) { ++ r = -errno; ++ close(fd); ++ return r; ++ } ++ ++ udev_queue->fd = fd; ++ return fd; ++} ++ ++/** ++ * udev_queue_flush: ++ * @udev_queue: udev queue context ++ * ++ * Returns: the result of clearing the watch for queue changes. ++ */ ++_public_ int udev_queue_flush(struct udev_queue *udev_queue) { ++ if (udev_queue->fd < 0) ++ return -EINVAL; ++ ++ return flush_fd(udev_queue->fd); ++} +diff --git src/libudev/libudev.h src/libudev/libudev.h +index ceb89bd..4f2f115 100644 +--- src/libudev/libudev.h ++++ src/libudev/libudev.h +@@ -177,6 +177,8 @@ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); + int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); + int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, + unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); ++int udev_queue_get_fd(struct udev_queue *udev_queue); ++int udev_queue_flush(struct udev_queue *udev_queue); + struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); + + /* +diff --git src/libudev/libudev.sym src/libudev/libudev.sym +index 1e6f885..95cd1c7 100644 +--- src/libudev/libudev.sym ++++ src/libudev/libudev.sym +@@ -82,6 +82,8 @@ global: + udev_queue_get_udev; + udev_queue_get_udev_is_active; + udev_queue_get_udev_seqnum; ++ udev_queue_get_fd; ++ udev_queue_flush; + udev_queue_new; + udev_queue_ref; + udev_queue_unref; +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 66fd843..79e8b59 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -29,7 +29,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -59,7 +58,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + const char *exists = NULL; + unsigned int timeout = 120; + struct pollfd pfd[1] = { {.fd = -1}, }; +- int rc = EXIT_FAILURE, c; ++ int c; ++ struct udev_queue *queue; ++ int rc = EXIT_FAILURE; + + while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { + switch (c) { +@@ -79,9 +80,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + break; + case 'h': + help(); +- exit(EXIT_SUCCESS); ++ return EXIT_SUCCESS; + case '?': +- exit(EXIT_FAILURE); ++ return EXIT_FAILURE; + default: + assert_not_reached("Unknown argument"); + } +@@ -89,7 +90,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + + if (optind < argc) { + fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); +- exit(EXIT_FAILURE); ++ return EXIT_FAILURE; + } + + /* guarantee that the udev daemon isn't pre-processing */ +@@ -101,26 +102,23 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + if (udev_ctrl_send_ping(uctrl, timeout) < 0) { + log_debug("no connection to daemon"); + udev_ctrl_unref(uctrl); +- rc = EXIT_SUCCESS; +- goto out; ++ return EXIT_SUCCESS; + } + udev_ctrl_unref(uctrl); + } + } + +- pfd[0].events = POLLIN; +- pfd[0].fd = inotify_init1(IN_CLOEXEC); +- if (pfd[0].fd < 0) { +- log_error("inotify_init failed: %m"); +- goto out; ++ queue = udev_queue_new(udev); ++ if (!queue) { ++ log_error("unable to get udev queue"); ++ return EXIT_FAILURE; + } + +- if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { +- /* If it does not exist, we don't have to wait */ +- if (errno == ENOENT) +- rc = EXIT_SUCCESS; +- else +- log_debug("watching /run/udev/queue failed"); ++ pfd[0].events = POLLIN; ++ pfd[0].fd = udev_queue_get_fd(queue); ++ if (pfd[0].fd < 0) { ++ log_debug("queue is empty, nothing to watch"); ++ rc = EXIT_SUCCESS; + goto out; + } + +@@ -131,22 +129,18 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + /* exit if queue is empty */ +- if (access("/run/udev/queue", F_OK) < 0) { ++ if (udev_queue_get_queue_is_empty(queue)) { + rc = EXIT_SUCCESS; + break; + } + +- /* wake up when "queue" file is deleted */ +- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { +- char buf[sizeof(struct inotify_event) + PATH_MAX]; +- +- read(pfd[0].fd, buf, sizeof(buf)); +- } ++ /* wake up when queue is empty */ ++ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) ++ udev_queue_flush(queue); + } + + out: +- if (pfd[0].fd >= 0) +- close(pfd[0].fd); ++ udev_queue_unref(queue); + return rc; + } + +-- +1.7.9.2 + diff --git a/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch b/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch new file mode 100644 index 00000000..78c1c084 --- /dev/null +++ b/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch @@ -0,0 +1,40 @@ +From 8a7a0c19edd2d971d4aa9d635f7978af841e8278 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Fri, 27 Jun 2014 19:54:45 +0200 +Subject: [PATCH] libudev: queue - watch entire directory to allow the re-use + of the watch descriptor + +--- + src/libudev/libudev-queue.c | 2 +- + src/udev/udevadm-settle.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c +index d4334b4..8ef1f3d 100644 +--- src/libudev/libudev-queue.c ++++ src/libudev/libudev-queue.c +@@ -245,7 +245,7 @@ _public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { + if (fd < 0) + return -errno; + +- r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); ++ r = inotify_add_watch(fd, "/run/udev" , IN_DELETE); + if (r < 0) { + r = -errno; + close(fd); +diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c +index 79e8b59..fa5b0c2 100644 +--- src/udev/udevadm-settle.c ++++ src/udev/udevadm-settle.c +@@ -135,7 +135,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) + } + + /* wake up when queue is empty */ +- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) ++ if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) + udev_queue_flush(queue); + } + +-- +1.7.9.2 + diff --git a/1044-rules-update-qemu-hid-rules.patch b/1044-rules-update-qemu-hid-rules.patch new file mode 100644 index 00000000..52741afe --- /dev/null +++ b/1044-rules-update-qemu-hid-rules.patch @@ -0,0 +1,45 @@ +From cd31d1884f1ecf38e11bc6268f446d75dfafbc25 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Mon, 24 Mar 2014 12:07:41 +0100 +Subject: [PATCH] rules: update qemu hid rules + +Update comment to be a bit more specific. + +Change match to blacklist the serial number of the broken devices +instead of whitelisting the serial number of the fixed devices. +This allows to do something useful with the serial number in the +future. +--- + rules/42-usb-hid-pm.rules | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules +index 3fd6e8a..c675b5b 100644 +--- rules/42-usb-hid-pm.rules ++++ rules/42-usb-hid-pm.rules +@@ -2,14 +2,15 @@ + # + # Enable autosuspend for qemu emulated usb hid devices + +-# Note that there are buggy qemu versions which advertise remote +-# wakeup support but don't actually implement it correctly. This +-# is the reason why we need a match for the serial number here. +-# The serial number "42" is used to tag the implementations where ++# Note that there are buggy qemu versions (0.13 & older) which ++# advertise remote wakeup support but don't actually implement ++# it correctly. This is the reason why we need a match for the ++# serial number here. Old, broken versions have serial "1". ++# It has been changed to "42" after fixing the bug to indicate + # remote wakeup is working. +-ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" +-ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" +-ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" + + # Catch-all for Avocent HID devices. Keyed off interface in order to only + # trigger on HID class devices. +-- +1.7.9.2 + diff --git a/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch b/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch new file mode 100644 index 00000000..cd1f72c7 --- /dev/null +++ b/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch @@ -0,0 +1,29 @@ +Based on 52fb538361053f8c4abce0e40cd0bae3d28ceb16 Mon Sep 17 00:00:00 2001 +From: Tom Hirst +Date: Wed, 25 Jun 2014 11:57:11 +0000 +Subject: [PATCH] rules: don't enable usb pm for Avocent devices + +The Avocent KVM over IP devices doesn't work correctly with USB power +management enabled. +--- + rules/42-usb-hid-pm.rules | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules +index c675b5b..4c300da 100644 +--- rules/42-usb-hid-pm.rules ++++ rules/42-usb-hid-pm.rules +@@ -12,10 +12,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!= + ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" + ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" + +-# Catch-all for Avocent HID devices. Keyed off interface in order to only +-# trigger on HID class devices. +-ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{bInterfaceClass}=="03", TEST=="../power/control", ATTR{../power/control}="auto" +- + # Dell DRAC 4 + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="2500", TEST=="power/control", ATTR{power/control}="auto" + +-- +1.7.9.2 + diff --git a/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch b/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch new file mode 100644 index 00000000..47fce280 --- /dev/null +++ b/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch @@ -0,0 +1,61 @@ +From 01d4590b775661ebc71c7b81b0c62ccd69395268 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 2 Jul 2014 15:13:29 +0200 +Subject: [PATCH] udev: net_setup_link builtin should print the reason why + something fails + +Let's tell users what is going wrong. +--- + src/udev/udev-builtin-net_setup_link.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git src/udev/udev-builtin-net_setup_link.c src/udev/udev-builtin-net_setup_link.c +index 3cd384e..6207269 100644 +--- src/udev/udev-builtin-net_setup_link.c ++++ src/udev/udev-builtin-net_setup_link.c +@@ -43,17 +43,17 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv + r = link_config_get(ctx, dev, &link); + if (r < 0) { + if (r == -ENOENT) { +- log_debug("No matching link configuration found"); ++ log_debug("No matching link configuration found."); + return EXIT_SUCCESS; + } else { +- log_error("Could not get link config"); ++ log_error("Could not get link config: %s", strerror(-r)); + return EXIT_FAILURE; + } + } + + r = link_config_apply(ctx, link, dev, &name); + if (r < 0) { +- log_error("Could not apply link config to %s", udev_device_get_sysname(dev)); ++ log_error("Could not apply link config to %s: %s", udev_device_get_sysname(dev), strerror(-r)); + return EXIT_FAILURE; + } + +@@ -77,18 +77,18 @@ static int builtin_net_setup_link_init(struct udev *udev) { + if (r < 0) + return r; + +- log_debug("Created link configuration context"); ++ log_debug("Created link configuration context."); + return 0; + } + + static void builtin_net_setup_link_exit(struct udev *udev) { + link_config_ctx_free(ctx); + ctx = NULL; +- log_debug("Unloaded link configuration context"); ++ log_debug("Unloaded link configuration context."); + } + + static bool builtin_net_setup_link_validate(struct udev *udev) { +- log_debug("Check if link configuration needs reloading"); ++ log_debug("Check if link configuration needs reloading."); + if (!ctx) + return false; + +-- +1.7.9.2 + diff --git a/1048-udev-net_setup_link-add-a-bit-more-logging.patch b/1048-udev-net_setup_link-add-a-bit-more-logging.patch new file mode 100644 index 00000000..740e3c36 --- /dev/null +++ b/1048-udev-net_setup_link-add-a-bit-more-logging.patch @@ -0,0 +1,39 @@ +From 866ee3682213789f85b877700457fdca05695a0e Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 3 Jul 2014 09:57:27 +0200 +Subject: [PATCH] udev: net_setup_link - add a bit more logging + +--- + src/udev/net/link-config.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git src/udev/net/link-config.c src/udev/net/link-config.c +index 7a9d01b..b8650a6 100644 +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c +@@ -92,14 +92,20 @@ static int link_config_ctx_connect(link_config_ctx *ctx) { + + if (ctx->ethtool_fd == -1) { + r = ethtool_connect(&ctx->ethtool_fd); +- if (r < 0) ++ if (r < 0) { ++ log_warning("link_config: could not connect to ethtool: %s", ++ strerror(-r)); + return r; ++ } + } + + if (!ctx->rtnl) { + r = sd_rtnl_open(&ctx->rtnl, 0); +- if (r < 0) ++ if (r < 0) { ++ log_warning("link_config: could not connect to rtnl: %s", ++ strerror(-r)); + return r; ++ } + } + + return 0; +-- +1.7.9.2 + diff --git a/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch b/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch new file mode 100644 index 00000000..6b3d7ec6 --- /dev/null +++ b/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch @@ -0,0 +1,36 @@ +Based on a669ea9860900d5cdebbc4cb9aaea72db7e28a02 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 7 Jul 2014 14:50:16 +0200 +Subject: [PATCH] udev: link_config - ignore errors due to missing MAC address + +Otherwis, we get misleading error messages on links with MACs. + +Reported by Leonid Isaev. +--- + src/udev/net/link-config.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- src/udev/net/link-config.c ++++ src/udev/net/link-config.c 2014-07-08 10:44:19.450735575 +0000 +@@ -440,7 +440,9 @@ int link_config_apply(link_config_ctx *c + case MACPOLICY_PERSISTENT: + if (!mac_is_permanent(device)) { + r = get_mac(device, false, &generated_mac); +- if (r < 0) ++ if (r == -ENOENT) ++ break; ++ else if (r < 0) + return r; + mac = &generated_mac; + } +@@ -448,7 +450,9 @@ int link_config_apply(link_config_ctx *c + case MACPOLICY_RANDOM: + if (!mac_is_random(device)) { + r = get_mac(device, true, &generated_mac); +- if (r < 0) ++ if (r == -ENOENT) ++ break; ++ else if (r < 0) + return r; + mac = &generated_mac; + } diff --git a/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch b/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch new file mode 100644 index 00000000..edab1583 --- /dev/null +++ b/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch @@ -0,0 +1,45 @@ +From 30632d97d9d68c8202e562f34afae8f8d6e9c377 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 15 Jul 2014 17:35:53 +0200 +Subject: [PATCH] rules: uaccess - add ID_SOFTWARE_RADIO + +On Tue, Jul 15, 2014 at 1:52 PM, Alick Zhao wrote: +>>> +>>> So maybe ID_SOFTWARE_RADIO ? +>> +>> Hmm, SDR is more a term for a generic technology than for a device +>> class. To me it does not really sound like an administrator would know +>> what this is. +>> +>> What exactly is the device or subsystem you want to make accessible to +>> locally logged-in users only? +> +> Initially it is bladeRF, but many more are of interest: USRP, rtl-sdr, +> HackRF, ... [1] +> +> I agree an administrator might not know what SDR is, since it is +> currently still not widely known, and makes sense only for amateurs +> and researchers. But as a SDR fan, I see many new SDR peripherals +> are created recently, and expect to see more. So a generic ID seems +> reasonable to me. +> +> [1] http://en.wikipedia.org/wiki/List_of_software-defined_radios +--- + src/login/70-uaccess.rules | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git src/login/70-uaccess.rules src/login/70-uaccess.rules +index 57f619d..694df2c 100644 +--- src/login/70-uaccess.rules ++++ src/login/70-uaccess.rules +@@ -72,4 +72,7 @@ ENV{DDC_DEVICE}=="?*", TAG+="uaccess" + # media player raw devices (for user-mode drivers, Android SDK, etc.) + SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="uaccess" + ++# software-defined radio communication devices ++ENV{ID_SOFTWARE_RADIO}=="?*", TAG+="uaccess" ++ + LABEL="uaccess_end" +-- +1.7.9.2 + diff --git a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch new file mode 100644 index 00000000..ecf11ad5 --- /dev/null +++ b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch @@ -0,0 +1,53 @@ +From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 24 Jul 2014 23:37:35 +0200 +Subject: [PATCH] udev: exclude MD from block device ownership event locking + +MD instantiates devices at open(). This is incomptible with the +locking logic, as the "change" event emitted when stopping a +device will bring it back. +--- + src/udev/udevd.c | 23 +++++++---------------- + 1 file changed, 7 insertions(+), 16 deletions(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index a45d324..db935d6 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -285,26 +285,17 @@ static void worker_new(struct event *event) + udev_event->exec_delay = exec_delay; + + /* +- * Take a "read lock" on the device node; this establishes ++ * Take a shared lock on the device node; this establishes + * a concept of device "ownership" to serialize device +- * access. External processes holding a "write lock" will ++ * access. External processes holding an exclusive lock will + * cause udev to skip the event handling; in the case udev +- * acquired the lock, the external process will block until ++ * acquired the lock, the external process can block until + * udev has finished its event handling. + */ +- +- /* +- * since we make check - device seems unused - we try +- * ioctl to deactivate - and device is found to be opened +- * sure, you try to take a write lock +- * if you get it udev is out +- * if you can't get it, udev is busy +- * we cannot deactivate openned device (as it is in-use) +- * maybe we should just exclude dm from that thing entirely +- * IMHO this sounds like a good plan for this moment +- */ +- if (streq_ptr("block", udev_device_get_subsystem(dev)) && +- !startswith(udev_device_get_sysname(dev), "dm-")) { ++ if (!streq_ptr(udev_device_get_action(dev), "remove") && ++ streq_ptr("block", udev_device_get_subsystem(dev)) && ++ !startswith(udev_device_get_sysname(dev), "dm-") && ++ !startswith(udev_device_get_sysname(dev), "md")) { + struct udev_device *d = dev; + + if (streq_ptr("partition", udev_device_get_devtype(d))) +-- +1.7.9.2 + diff --git a/1056-udevd-add-event-timeout-commandline-option.patch b/1056-udevd-add-event-timeout-commandline-option.patch new file mode 100644 index 00000000..1f670688 --- /dev/null +++ b/1056-udevd-add-event-timeout-commandline-option.patch @@ -0,0 +1,119 @@ +From 9719859c07aa13539ed2cd4b31972cd30f678543 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Tue, 29 Jul 2014 09:06:14 +0200 +Subject: [PATCH] udevd: add --event-timeout commandline option + +Some events take longer than the default 30 seconds. Killing those +events will leave the machine halfway configured. + +Add a commandline option '--event-timeout' to handle these cases. +--- + man/systemd-udevd.service.xml | 19 +++++++++++++++++++ + src/udev/udevd.c | 12 +++++++++++- + 2 files changed, 30 insertions(+), 1 deletion(-) + +diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml +index f44b7a0..8de43b1 100644 +--- man/systemd-udevd.service.xml ++++ man/systemd-udevd.service.xml +@@ -44,6 +44,7 @@ + + + ++ + + + +@@ -96,6 +97,15 @@ + + + ++ ++ ++ Wait for the event to finish up to the given ++ number of seconds. After this time the event will ++ be terminated. Default is 30. ++ ++ ++ ++ + + + Specify when systemd-udevd should resolve names of users and groups. +@@ -156,6 +166,15 @@ + + + ++ udev.event-timeout= ++ rd.udev.event-timeout= ++ ++ Wait for events to finish up to the given number ++ of seconds. This option might be useful if events are ++ terminated due to a timeout in large configurations. ++ ++ ++ + net.ifnames= + + Network interfaces are renamed to give them predictable names +diff --git src/udev/udevd.c src/udev/udevd.c +index db935d6..c5dd739 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -74,6 +74,7 @@ static bool reload; + static int children; + static int children_max; + static int exec_delay; ++static int event_timeout = 30; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -312,6 +313,9 @@ static void worker_new(struct event *event) + } + } + ++ if (event_timeout != 30) ++ udev_event->timeout_usec = event_timeout * USEC_PER_SEC; ++ + /* apply rules, create node, symlinks */ + udev_event_execute_rules(udev_event, rules, &sigmask_orig); + +@@ -1009,6 +1013,8 @@ static void kernel_cmdline_options(struct udev *udev) + children_max = strtoul(opt + 18, NULL, 0); + } else if (startswith(opt, "udev.exec-delay=")) { + exec_delay = strtoul(opt + 16, NULL, 0); ++ } else if (startswith(opt, "udev.event-timeout=")) { ++ event_timeout = strtoul(opt + 16, NULL, 0); + } + + free(s); +@@ -1026,6 +1032,7 @@ int main(int argc, char *argv[]) + { "debug", no_argument, NULL, 'D' }, + { "children-max", required_argument, NULL, 'c' }, + { "exec-delay", required_argument, NULL, 'e' }, ++ { "event-timeout", required_argument, NULL, 't' }, + { "resolve-names", required_argument, NULL, 'N' }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'V' }, +@@ -1069,6 +1076,9 @@ int main(int argc, char *argv[]) + case 'e': + exec_delay = strtoul(optarg, NULL, 0); + break; ++ case 't': ++ event_timeout = strtoul(optarg, NULL, 0); ++ break; + case 'D': + debug = true; + log_set_max_level(LOG_DEBUG); +@@ -1406,7 +1416,7 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { ++ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { + log_error("worker [%u] %s timeout; kill it", worker->pid, + worker->event ? worker->event->devpath : ""); + kill(worker->pid, SIGKILL); +-- +1.7.9.2 + diff --git a/1057-udev-unify-event-timeout-handling.patch b/1057-udev-unify-event-timeout-handling.patch new file mode 100644 index 00000000..9aa819b6 --- /dev/null +++ b/1057-udev-unify-event-timeout-handling.patch @@ -0,0 +1,504 @@ +From dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 29 Jul 2014 15:18:27 +0200 +Subject: [PATCH] udev: unify event timeout handling + +--- + man/systemd-udevd.service.xml | 7 +++--- + man/udev.xml | 7 ------ + src/test/test-udev.c | 5 ++-- + src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- + src/udev/udev-rules.c | 38 ++++++++--------------------- + src/udev/udev.h | 8 +++---- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 32 ++++++++++--------------- + 8 files changed, 61 insertions(+), 91 deletions(-) + +diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml +index 8de43b1..3053dc7 100644 +--- man/systemd-udevd.service.xml ++++ man/systemd-udevd.service.xml +@@ -99,9 +99,8 @@ + + + +- Wait for the event to finish up to the given +- number of seconds. After this time the event will +- be terminated. Default is 30. ++ Set the number of seconds to wait for events to finish. After ++ this time the event will be terminated. The default is 30 seconds. + + + +@@ -171,7 +170,7 @@ + + Wait for events to finish up to the given number + of seconds. This option might be useful if events are +- terminated due to a timeout in large configurations. ++ terminated due to kernel drivers taking too long to initialize. + + + +diff --git man/udev.xml man/udev.xml +index 4e5f8f0..123c073 100644 +--- man/udev.xml ++++ man/udev.xml +@@ -516,13 +516,6 @@ + + + +- +- +- Number of seconds an event waits for operations to finish before +- giving up and terminating itself. +- +- +- + + + Usually control and other possibly unsafe characters are replaced +diff --git src/test/test-udev.c src/test/test-udev.c +index b057cc8..26d6537 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -80,7 +80,6 @@ out: + return err; + } + +- + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_event_unref_ struct udev_event *event = NULL; +@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { + } + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); +- udev_event_execute_run(event, NULL); ++ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) + udev_list_init(udev, &event->seclabel_list, false); + event->fd_signal = -1; + event->birth_usec = now(CLOCK_MONOTONIC); +- event->timeout_usec = 30 * 1000 * 1000; + return event; + } + +@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, + } + + static void spawn_read(struct udev_event *event, +- const char *cmd, +- int fd_stdout, int fd_stderr, +- char *result, size_t ressize) ++ usec_t timeout_usec, ++ const char *cmd, ++ int fd_stdout, int fd_stderr, ++ char *result, size_t ressize) + { + size_t respos = 0; + int fd_ep = -1; +@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, + struct epoll_event ev[4]; + int i; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) { ++ if (age_usec >= timeout_usec) { + log_error("timeout '%s'", cmd); + goto out; + } +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -543,8 +543,9 @@ out: + close(fd_ep); + } + +-static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) +-{ ++static int spawn_wait(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *cmd, pid_t pid) { + struct pollfd pfd[1]; + int err = 0; + +@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) + int timeout; + int fdcount; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) ++ if (age_usec >= timeout_usec) + timeout = 1000; + else +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -657,9 +658,9 @@ out: + } + + int udev_event_spawn(struct udev_event *event, ++ usec_t timeout_usec, + const char *cmd, char **envp, const sigset_t *sigmask, +- char *result, size_t ressize) +-{ ++ char *result, size_t ressize) { + struct udev *udev = event->udev; + int outpipe[2] = {-1, -1}; + int errpipe[2] = {-1, -1}; +@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, + errpipe[WRITE_END] = -1; + } + +- spawn_read(event, cmd, +- outpipe[READ_END], errpipe[READ_END], +- result, ressize); ++ spawn_read(event, ++ timeout_usec, ++ cmd, ++ outpipe[READ_END], errpipe[READ_END], ++ result, ressize); + +- err = spawn_wait(event, cmd, pid); ++ err = spawn_wait(event, timeout_usec, cmd, pid); + } + + out: +@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) + return r; + } + +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) +-{ ++void udev_event_execute_rules(struct udev_event *event, ++ usec_t timeout_usec, ++ struct udev_rules *rules, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + + if (udev_device_get_subsystem(dev) == NULL) +@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + if (major(udev_device_get_devnum(dev)) != 0) + udev_watch_end(event->udev, dev); + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); +@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + udev_watch_end(event->udev, event->dev_db); + } + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + /* rename a new network interface, if needed */ + if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && +@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + } + } + +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) +-{ ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { + struct udev_list_entry *list_entry; + + udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { +@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) + + udev_event_apply_format(event, cmd, program, sizeof(program)); + envp = udev_device_get_properties_envp(event->dev); +- udev_event_spawn(event, program, envp, sigmask, NULL, 0); ++ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); + } + } + } +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 9864016..aacde38 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -137,7 +137,6 @@ enum token_type { + TK_M_PARENTS_MAX, + + TK_M_TEST, /* val, mode_t */ +- TK_M_EVENT_TIMEOUT, /* int */ + TK_M_PROGRAM, /* val */ + TK_M_IMPORT_FILE, /* val */ + TK_M_IMPORT_PROG, /* val */ +@@ -201,7 +200,6 @@ struct token { + uid_t uid; + gid_t gid; + int devlink_prio; +- int event_timeout; + int watch; + enum udev_builtin_cmd builtin_cmd; + }; +@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) + [TK_M_PARENTS_MAX] = "M PARENTS_MAX", + + [TK_M_TEST] = "M TEST", +- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", + [TK_M_PROGRAM] = "M PROGRAM", + [TK_M_IMPORT_FILE] = "M IMPORT_FILE", + [TK_M_IMPORT_PROG] = "M IMPORT_PROG", +@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) + case TK_A_SECLABEL: + log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); + break; +- case TK_M_EVENT_TIMEOUT: +- log_debug("%s %u", token_str(type), token->key.event_timeout); +- break; + case TK_A_GOTO: + log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); + break; +@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file + return 0; + } + +-static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) +-{ ++static int import_program_into_properties(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *program, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + char **envp; + char result[UTIL_LINE_SIZE]; +@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * + int err; + + envp = udev_device_get_properties_envp(dev); +- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); ++ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); + if (err < 0) + return err; + +@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, + case TK_A_MODE_ID: + token->key.mode = *(mode_t *)data; + break; +- case TK_M_EVENT_TIMEOUT: +- token->key.event_timeout = *(int *)data; +- break; + case TK_RULE: + case TK_M_PARENTS_MIN: + case TK_M_PARENTS_MAX: +@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, + rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); + } + +- pos = strstr(value, "event_timeout="); +- if (pos != NULL) { +- int tout = atoi(&pos[strlen("event_timeout=")]); +- +- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); +- } +- +- pos = strstr(value, "string_escape="); + if (pos != NULL) { + pos = &pos[strlen("string_escape=")]; + if (startswith(pos, "none")) +@@ -1829,8 +1813,10 @@ enum escape_type { + ESCAPE_REPLACE, + }; + +-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) +-{ ++int udev_rules_apply_to_event(struct udev_rules *rules, ++ struct udev_event *event, ++ usec_t timeout_usec, ++ const sigset_t *sigmask) { + struct token *cur; + struct token *rule; + enum escape_type esc = ESCAPE_UNSET; +@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + goto nomatch; + break; + } +- case TK_M_EVENT_TIMEOUT: +- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); +- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; +- break; + case TK_M_PROGRAM: { + char program[UTIL_PATH_SIZE]; + char **envp; +@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { ++ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { + if (cur->key.op != OP_NOMATCH) + goto nomatch; + } else { +@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (import_program_into_properties(event, import, sigmask) != 0) ++ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) + if (cur->key.op != OP_NOMATCH) + goto nomatch; + break; +diff --git src/udev/udev.h src/udev/udev.h +index 62538bc..4aca70b 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -43,7 +43,6 @@ struct udev_event { + struct udev_list run_list; + int exec_delay; + usec_t birth_usec; +- usec_t timeout_usec; + int fd_signal; + unsigned int builtin_run; + unsigned int builtin_ret; +@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); ++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_static_dev_perms(struct udev_rules *rules); + + /* udev-event.c */ +@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * + 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, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); ++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); + 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 6a2f548..52cc26c 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + goto out; + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 30 * 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)); +diff --git src/udev/udevd.c src/udev/udevd.c +index c5dd739..dee7a87 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 int event_timeout = 30; ++static usec_t event_timeout_usec = 30 * USEC_PER_SEC; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -313,13 +313,10 @@ static void worker_new(struct event *event) + } + } + +- if (event_timeout != 30) +- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; +- + /* apply rules, create node, symlinks */ +- udev_event_execute_rules(udev_event, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); + +- udev_event_execute_run(udev_event, &sigmask_orig); ++ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); + + /* apply/restore inotify watch */ + if (udev_event->inotify_watch) { +@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) + } else if (startswith(opt, "udev.exec-delay=")) { + exec_delay = strtoul(opt + 16, NULL, 0); + } else if (startswith(opt, "udev.event-timeout=")) { +- event_timeout = strtoul(opt + 16, NULL, 0); ++ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; + } + + free(s); + } + } + +-int main(int argc, char *argv[]) +-{ ++int main(int argc, char *argv[]) { + struct udev *udev; + sigset_t mask; + int daemonize = false; +@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) + exec_delay = strtoul(optarg, NULL, 0); + break; + case 't': +- event_timeout = strtoul(optarg, NULL, 0); ++ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; + break; + case 'D': + debug = true; +@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) + " --debug\n" + " --children-max=\n" + " --exec-delay=\n" ++ " --event-timeout=\n" + " --resolve-names=early|late|never\n" + " --version\n" + " --help\n" +@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { +- log_error("worker [%u] %s timeout; kill it", worker->pid, +- worker->event ? worker->event->devpath : ""); ++ 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); +- if (worker->event) { +- 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; +- } ++ 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; + } + } + +-- +1.7.9.2 + diff --git a/1058-udev-unify-event-timeout-handling.patch b/1058-udev-unify-event-timeout-handling.patch new file mode 100644 index 00000000..a92d15f7 --- /dev/null +++ b/1058-udev-unify-event-timeout-handling.patch @@ -0,0 +1,504 @@ +Based on dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 29 Jul 2014 15:18:27 +0200 +Subject: [PATCH] udev: unify event timeout handling + +--- + man/systemd-udevd.service.xml | 7 +++--- + man/udev.xml | 7 ------ + src/test/test-udev.c | 5 ++-- + src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- + src/udev/udev-rules.c | 38 ++++++++--------------------- + src/udev/udev.h | 8 +++---- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 32 ++++++++++--------------- + 8 files changed, 61 insertions(+), 91 deletions(-) + +diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml +index 8de43b1..3053dc7 100644 +--- man/systemd-udevd.service.xml ++++ man/systemd-udevd.service.xml +@@ -99,9 +99,8 @@ + + + +- Wait for the event to finish up to the given +- number of seconds. After this time the event will +- be terminated. Default is 30. ++ Set the number of seconds to wait for events to finish. After ++ this time the event will be terminated. The default is 30 seconds. + + + +@@ -171,7 +170,7 @@ + + Wait for events to finish up to the given number + of seconds. This option might be useful if events are +- terminated due to a timeout in large configurations. ++ terminated due to kernel drivers taking too long to initialize. + + + +diff --git man/udev.xml man/udev.xml +index 4e5f8f0..123c073 100644 +--- man/udev.xml ++++ man/udev.xml +@@ -516,13 +516,6 @@ + + + +- +- +- Number of seconds an event waits for operations to finish before +- giving up and terminating itself. +- +- +- + + + Usually control and other possibly unsafe characters are replaced +diff --git src/test/test-udev.c src/test/test-udev.c +index b057cc8..26d6537 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -80,7 +80,6 @@ out: + return err; + } + +- + int main(int argc, char *argv[]) { + _cleanup_udev_unref_ struct udev *udev = NULL; + _cleanup_udev_event_unref_ struct udev_event *event = NULL; +@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { + } + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); +- udev_event_execute_run(event, NULL); ++ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) + udev_list_init(udev, &event->seclabel_list, false); + event->fd_signal = -1; + event->birth_usec = now(CLOCK_MONOTONIC); +- event->timeout_usec = 30 * 1000 * 1000; + return event; + } + +@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, + } + + static void spawn_read(struct udev_event *event, +- const char *cmd, +- int fd_stdout, int fd_stderr, +- char *result, size_t ressize) ++ usec_t timeout_usec, ++ const char *cmd, ++ int fd_stdout, int fd_stderr, ++ char *result, size_t ressize) + { + size_t respos = 0; + int fd_ep = -1; +@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, + struct epoll_event ev[4]; + int i; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) { ++ if (age_usec >= timeout_usec) { + log_error("timeout '%s'", cmd); + goto out; + } +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -543,8 +543,9 @@ out: + close(fd_ep); + } + +-static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) +-{ ++static int spawn_wait(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *cmd, pid_t pid) { + struct pollfd pfd[1]; + int err = 0; + +@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) + int timeout; + int fdcount; + +- if (event->timeout_usec > 0) { ++ if (timeout_usec > 0) { + usec_t age_usec; + + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; +- if (age_usec >= event->timeout_usec) ++ if (age_usec >= timeout_usec) + timeout = 1000; + else +- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; ++ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; + } else { + timeout = -1; + } +@@ -657,9 +658,9 @@ out: + } + + int udev_event_spawn(struct udev_event *event, ++ usec_t timeout_usec, + const char *cmd, char **envp, const sigset_t *sigmask, +- char *result, size_t ressize) +-{ ++ char *result, size_t ressize) { + struct udev *udev = event->udev; + int outpipe[2] = {-1, -1}; + int errpipe[2] = {-1, -1}; +@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, + errpipe[WRITE_END] = -1; + } + +- spawn_read(event, cmd, +- outpipe[READ_END], errpipe[READ_END], +- result, ressize); ++ spawn_read(event, ++ timeout_usec, ++ cmd, ++ outpipe[READ_END], errpipe[READ_END], ++ result, ressize); + +- err = spawn_wait(event, cmd, pid); ++ err = spawn_wait(event, timeout_usec, cmd, pid); + } + + out: +@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) + return r; + } + +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) +-{ ++void udev_event_execute_rules(struct udev_event *event, ++ usec_t timeout_usec, ++ struct udev_rules *rules, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + + if (udev_device_get_subsystem(dev) == NULL) +@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + if (major(udev_device_get_devnum(dev)) != 0) + udev_watch_end(event->udev, dev); + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); +@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + udev_watch_end(event->udev, event->dev_db); + } + +- udev_rules_apply_to_event(rules, event, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + /* rename a new network interface, if needed */ + if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && +@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules + } + } + +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) +-{ ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { + struct udev_list_entry *list_entry; + + udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { +@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) + + udev_event_apply_format(event, cmd, program, sizeof(program)); + envp = udev_device_get_properties_envp(event->dev); +- udev_event_spawn(event, program, envp, sigmask, NULL, 0); ++ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); + } + } + } +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 9864016..aacde38 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -137,7 +137,6 @@ enum token_type { + TK_M_PARENTS_MAX, + + TK_M_TEST, /* val, mode_t */ +- TK_M_EVENT_TIMEOUT, /* int */ + TK_M_PROGRAM, /* val */ + TK_M_IMPORT_FILE, /* val */ + TK_M_IMPORT_PROG, /* val */ +@@ -201,7 +200,6 @@ struct token { + uid_t uid; + gid_t gid; + int devlink_prio; +- int event_timeout; + int watch; + enum udev_builtin_cmd builtin_cmd; + }; +@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) + [TK_M_PARENTS_MAX] = "M PARENTS_MAX", + + [TK_M_TEST] = "M TEST", +- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", + [TK_M_PROGRAM] = "M PROGRAM", + [TK_M_IMPORT_FILE] = "M IMPORT_FILE", + [TK_M_IMPORT_PROG] = "M IMPORT_PROG", +@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) + case TK_A_SECLABEL: + log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); + break; +- case TK_M_EVENT_TIMEOUT: +- log_debug("%s %u", token_str(type), token->key.event_timeout); +- break; + case TK_A_GOTO: + log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); + break; +@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file + return 0; + } + +-static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) +-{ ++static int import_program_into_properties(struct udev_event *event, ++ usec_t timeout_usec, ++ const char *program, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + char **envp; + char result[UTIL_LINE_SIZE]; +@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * + int err; + + envp = udev_device_get_properties_envp(dev); +- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); ++ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); + if (err < 0) + return err; + +@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, + case TK_A_MODE_ID: + token->key.mode = *(mode_t *)data; + break; +- case TK_M_EVENT_TIMEOUT: +- token->key.event_timeout = *(int *)data; +- break; + case TK_RULE: + case TK_M_PARENTS_MIN: + case TK_M_PARENTS_MAX: +@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, + rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); + } + +- pos = strstr(value, "event_timeout="); +- if (pos != NULL) { +- int tout = atoi(&pos[strlen("event_timeout=")]); +- +- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); +- } +- +- pos = strstr(value, "string_escape="); + if (pos != NULL) { + pos = &pos[strlen("string_escape=")]; + if (startswith(pos, "none")) +@@ -1829,8 +1813,10 @@ enum escape_type { + ESCAPE_REPLACE, + }; + +-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) +-{ ++int udev_rules_apply_to_event(struct udev_rules *rules, ++ struct udev_event *event, ++ usec_t timeout_usec, ++ const sigset_t *sigmask) { + struct token *cur; + struct token *rule; + enum escape_type esc = ESCAPE_UNSET; +@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + goto nomatch; + break; + } +- case TK_M_EVENT_TIMEOUT: +- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); +- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; +- break; + case TK_M_PROGRAM: { + char program[UTIL_PATH_SIZE]; + char **envp; +@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { ++ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { + if (cur->key.op != OP_NOMATCH) + goto nomatch; + } else { +@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (import_program_into_properties(event, import, sigmask) != 0) ++ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) + if (cur->key.op != OP_NOMATCH) + goto nomatch; + break; +diff --git src/udev/udev.h src/udev/udev.h +index 62538bc..4aca70b 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -43,7 +43,6 @@ struct udev_event { + struct udev_list run_list; + int exec_delay; + usec_t birth_usec; +- usec_t timeout_usec; + int fd_signal; + unsigned int builtin_run; + unsigned int builtin_ret; +@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); ++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_static_dev_perms(struct udev_rules *rules); + + /* udev-event.c */ +@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * + 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, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); +-void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); ++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); + 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 6a2f548..52cc26c 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) + goto out; + } + +- udev_event_execute_rules(event, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 30 * 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)); +diff --git src/udev/udevd.c src/udev/udevd.c +index c5dd739..dee7a87 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 int event_timeout = 30; ++static usec_t event_timeout_usec = 30 * USEC_PER_SEC; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -313,13 +313,10 @@ static void worker_new(struct event *event) + } + } + +- if (event_timeout != 30) +- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; +- + /* apply rules, create node, symlinks */ +- udev_event_execute_rules(udev_event, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); + +- udev_event_execute_run(udev_event, &sigmask_orig); ++ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); + + /* apply/restore inotify watch */ + if (udev_event->inotify_watch) { +@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) + } else if (startswith(opt, "udev.exec-delay=")) { + exec_delay = strtoul(opt + 16, NULL, 0); + } else if (startswith(opt, "udev.event-timeout=")) { +- event_timeout = strtoul(opt + 16, NULL, 0); ++ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; + } + + free(s); + } + } + +-int main(int argc, char *argv[]) +-{ ++int main(int argc, char *argv[]) { + struct udev *udev; + sigset_t mask; + int daemonize = false; +@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) + exec_delay = strtoul(optarg, NULL, 0); + break; + case 't': +- event_timeout = strtoul(optarg, NULL, 0); ++ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; + break; + case 'D': + debug = true; +@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) + " --debug\n" + " --children-max=\n" + " --exec-delay=\n" ++ " --event-timeout=\n" + " --resolve-names=early|late|never\n" + " --version\n" + " --help\n" +@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { +- log_error("worker [%u] %s timeout; kill it", worker->pid, +- worker->event ? worker->event->devpath : ""); ++ 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); +- if (worker->event) { +- 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; +- } ++ 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; + } + } + +-- +1.7.9.2 + diff --git a/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch b/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch new file mode 100644 index 00000000..62d5d665 --- /dev/null +++ b/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch @@ -0,0 +1,26 @@ +From 9f20a8a376f924c8eb5423cfc1f98644fc1e2d1a Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Wed, 30 Jul 2014 10:10:46 +0200 +Subject: [PATCH] udev: fixup commit dd5eddd28a74a49607a8fffcaf960040dba98479 + +Commit dd5eddd28a74a49607a8fffcaf960040dba98479 accidentally +removed one line too many. +--- + src/udev/udev-rules.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 59bc124..cc56215 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -1436,6 +1436,7 @@ static int add_rule(struct udev_rules *rules, char *line, + rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); + } + ++ pos = strstr(value, "string_escape="); + if (pos != NULL) { + pos = &pos[strlen("string_escape=")]; + if (startswith(pos, "none")) +-- +1.7.9.2 + diff --git a/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch b/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch new file mode 100644 index 00000000..20d064f8 --- /dev/null +++ b/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch @@ -0,0 +1,32 @@ +From b5df2eabf3fdd3e1663bc4c948812472084f3e96 Mon Sep 17 00:00:00 2001 +From: Kevin Wells +Date: Thu, 31 Jul 2014 17:38:21 +0200 +Subject: [PATCH] rules: allow systemd to manage loop device partitions + +SYSTEMD_READY is currently set to 0 for all loop devices (loop[0-9]*) +that do not have a backing_file. Partitioned loop devices (ex. loop0p1), +however, are matched by this rule and excluded by systemd even though +they are active devices. + +This change adds an additional check to the rule, ensuring that only +top level loop devices (loop[0-9]+$) are excluded from systemd. +--- + rules/99-systemd.rules.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in +index c3ef81b..aa435c4 100644 +--- rules/99-systemd.rules.in ++++ rules/99-systemd.rules.in +@@ -23,7 +23,7 @@ SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", + SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" + + # Ignore loop devices that don't have any file attached +-SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" ++SUBSYSTEM=="block", KERNEL=="loop[0-9]*", ENV{DEVTYPE}=="disk", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" + + # Ignore nbd devices in the "add" event, with "change" the nbd is ready + ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" +-- +1.7.9.2 + diff --git a/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch b/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch new file mode 100644 index 00000000..06966c4c --- /dev/null +++ b/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch @@ -0,0 +1,96 @@ +Based on e98bbfd2074e2b1079b7059341eac25741baf319 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Mon, 4 Aug 2014 18:15:34 +0200 +Subject: [PATCH] udev: path_id - suppress ID_PATH for devices with an unknown + parent device type + +https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1321816 +--- + src/udev/udev-builtin-path_id.c | 38 +++++++++++++++++++++++++++----------- + 1 file changed, 27 insertions(+), 11 deletions(-) + +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c 2014-08-22 14:08:59.250235369 +0000 +@@ -524,7 +524,8 @@ static int builtin_path_id(struct udev_d + { + struct udev_device *parent; + char *path = NULL; +- bool some_transport = false; ++ bool supported_transport = false; ++ bool supported_parent = false; + + /* S390 ccw bus */ + parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL); +@@ -545,47 +546,62 @@ static int builtin_path_id(struct udev_d + handle_scsi_tape(parent, &path); + } else if (streq(subsys, "scsi")) { + parent = handle_scsi(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "cciss")) { + parent = handle_cciss(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "usb")) { + parent = handle_usb(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "bcma")) { + parent = handle_bcma(parent, &path); +- some_transport = true; ++ supported_transport = true; + } else if (streq(subsys, "serio")) { + path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent)); + parent = skip_subsystem(parent, "serio"); + } else if (streq(subsys, "pci")) { + path_prepend(&path, "pci-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "pci"); ++ supported_parent = true; + } else if (streq(subsys, "platform")) { + path_prepend(&path, "platform-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "platform"); +- some_transport = true; ++ supported_transport = true; ++ supported_parent = true; + } else if (streq(subsys, "acpi")) { + path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "acpi"); ++ supported_parent = true; + } else if (streq(subsys, "xen")) { + path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "xen"); ++ supported_parent = true; + } else if (streq(subsys, "scm")) { + path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); + parent = skip_subsystem(parent, "scm"); +- some_transport = true; ++ supported_transport = true; ++ supported_parent = true; + } + + parent = udev_device_get_parent(parent); + } + + /* +- * Do not return a single-parent-device-only for block +- * devices, they might have entire buses behind it which +- * do not get unique IDs only by using the parent device. ++ * Do return devices with have an unknown type of parent device, they ++ * might produce conflicting IDs below multiple independent parent ++ * devices. + */ +- if (!some_transport && streq(udev_device_get_subsystem(dev), "block")) { ++ if (!supported_parent) { ++ free(path); ++ path = NULL; ++ } ++ ++ /* ++ * Do not return a have-only a single-parent block devices, some ++ * have entire hidden buses behind it, and not create predictable ++ * IDs that way. ++ */ ++ if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { + free(path); + path = NULL; + } diff --git a/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch b/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch new file mode 100644 index 00000000..07755c04 --- /dev/null +++ b/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch @@ -0,0 +1,63 @@ +From 77cf759ea05bea476cdcb8d0dcd04c4e6fb3b2ff Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 26 Aug 2014 18:27:36 +0200 +Subject: [PATCH] udev: hwdb - do not look at "usb_device" parents + +Based on a patch from Simon McVittie . + +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758050 +--- + src/udev/udev-builtin-hwdb.c | 22 ++++++++++++++-------- + 1 file changed, 14 insertions(+), 8 deletions(-) + +diff --git src/udev/udev-builtin-hwdb.c src/udev/udev-builtin-hwdb.c +index cac97e7..695a31a 100644 +--- src/udev/udev-builtin-hwdb.c ++++ src/udev/udev-builtin-hwdb.c +@@ -88,9 +88,10 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device + const char *filter, bool test) { + struct udev_device *d; + char s[16]; +- int n = 0; ++ bool last = false; ++ int r = 0; + +- for (d = srcdev; d; d = udev_device_get_parent(d)) { ++ for (d = srcdev; d && !last; d = udev_device_get_parent(d)) { + const char *dsubsys; + const char *modalias = NULL; + +@@ -104,19 +105,24 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device + + modalias = udev_device_get_property_value(d, "MODALIAS"); + +- /* the usb_device does not have a modalias, compose one */ +- if (!modalias && streq(dsubsys, "usb")) +- modalias = modalias_usb(d, s, sizeof(s)); ++ if (streq(dsubsys, "usb") && streq_ptr(udev_device_get_devtype(d), "usb_device")) { ++ /* if the usb_device does not have a modalias, compose one */ ++ if (!modalias) ++ modalias = modalias_usb(d, s, sizeof(s)); ++ ++ /* avoid looking at any parent device, they are usually just a USB hub */ ++ last = true; ++ } + + if (!modalias) + continue; + +- n = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); +- if (n > 0) ++ r = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); ++ if (r > 0) + break; + } + +- return n; ++ return r; + } + + static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool test) { +-- +1.7.9.2 + diff --git a/1065-udev-bump-event-timeout-to-60-seconds.patch b/1065-udev-bump-event-timeout-to-60-seconds.patch new file mode 100644 index 00000000..aae4da95 --- /dev/null +++ b/1065-udev-bump-event-timeout-to-60-seconds.patch @@ -0,0 +1,39 @@ +From 2e92633dbae52f5ac9b7b2e068935990d475d2cd Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 30 Aug 2014 11:36:32 +0200 +Subject: [PATCH] udev: bump event timeout to 60 seconds + +--- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c +index 8486049..809adb6 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, 30 * USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 60 * 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)); +diff --git src/udev/udevd.c src/udev/udevd.c +index 9c2b0d5..e72c5b2 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -73,7 +73,7 @@ static bool reload; + static int children; + static int children_max; + static int exec_delay; +-static usec_t event_timeout_usec = 30 * USEC_PER_SEC; ++static usec_t event_timeout_usec = 60 * 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/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch index e08ad9f8..3bb4d407 100644 --- a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +++ b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch @@ -18,10 +18,8 @@ Signed-off-by: Jeff Mahoney src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------ 4 files changed, 32 insertions(+), 7 deletions(-) -Index: systemd/rules/60-persistent-storage.rules -=================================================================== ---- systemd.orig/rules/60-persistent-storage.rules -+++ systemd/rules/60-persistent-storage.rules +--- a/rules/60-persistent-storage.rules ++++ b/rules/60-persistent-storage.rules @@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" @@ -33,11 +31,9 @@ Index: systemd/rules/60-persistent-storage.rules # firewire KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" -Index: systemd/src/udev/scsi_id/scsi_id.c -=================================================================== ---- systemd.orig/src/udev/scsi_id/scsi_id.c -+++ systemd/src/udev/scsi_id/scsi_id.c -@@ -43,6 +43,7 @@ static const struct option options[] = { +--- a/src/udev/scsi_id/scsi_id.c ++++ b/src/udev/scsi_id/scsi_id.c +@@ -44,6 +44,7 @@ static const struct option options[] = { { "replace-whitespace", no_argument, NULL, 'u' }, { "sg-version", required_argument, NULL, 's' }, { "verbose", no_argument, NULL, 'v' }, @@ -45,24 +41,24 @@ Index: systemd/src/udev/scsi_id/scsi_id.c { "version", no_argument, NULL, 'V' }, /* don't advertise -V */ { "export", no_argument, NULL, 'x' }, { "help", no_argument, NULL, 'h' }, -@@ -54,6 +55,7 @@ static bool dev_specified = false; - static char config_file[MAX_PATH_LEN] = "/etc/scsi_id.config"; +@@ -56,6 +57,7 @@ static char config_file[MAX_PATH_LEN] = static enum page_code default_page_code = PAGE_UNSPECIFIED; static int sg_version = 4; + static int debug = 0; +static bool compat_truncated = false; static bool reformat_serial = false; static bool export = false; static char vendor_str[64]; -@@ -316,6 +318,7 @@ static void help(void) { - " -g --whitelisted Treat device as whitelisted\n" - " -u --replace-whitespace Replace all whitespace by underscores\n" - " -v --verbose Verbose logging\n" +@@ -323,6 +325,7 @@ static void help(void) { + " -g,--whitelisted threat device as whitelisted\n" + " -u,--replace-whitespace replace all whitespace by underscores\n" + " -v,--verbose verbose logging\n" + " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n" - " -x --export Print values as environment keys\n" - , program_invocation_short_name); - -@@ -387,6 +390,10 @@ static int set_options(struct udev *udev - log_open(); + " --version print version\n" + " -x,--export print values as environment keys\n" + " -h,--help print this help text\n\n"); +@@ -393,6 +396,10 @@ static int set_options(struct udev *udev + debug++; break; + case '9': @@ -72,7 +68,7 @@ Index: systemd/src/udev/scsi_id/scsi_id.c case 'V': printf("%s\n", VERSION); exit(0); -@@ -528,6 +535,9 @@ static int scsi_id(struct udev *udev, ch +@@ -535,6 +542,9 @@ static int scsi_id(struct udev *udev, ch util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); util_replace_chars(serial_str, NULL); printf("ID_SERIAL=%s\n", serial_str); @@ -82,7 +78,7 @@ Index: systemd/src/udev/scsi_id/scsi_id.c util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str)); util_replace_chars(serial_str, NULL); printf("ID_SERIAL_SHORT=%s\n", serial_str); -@@ -558,7 +568,10 @@ static int scsi_id(struct udev *udev, ch +@@ -565,7 +575,10 @@ static int scsi_id(struct udev *udev, ch if (reformat_serial) { char serial_str[MAX_SERIAL_LEN]; @@ -94,10 +90,8 @@ Index: systemd/src/udev/scsi_id/scsi_id.c util_replace_chars(serial_str, NULL); printf("%s\n", serial_str); goto out; -Index: systemd/src/udev/scsi_id/scsi_id.h -=================================================================== ---- systemd.orig/src/udev/scsi_id/scsi_id.h -+++ systemd/src/udev/scsi_id/scsi_id.h +--- a/src/udev/scsi_id/scsi_id.h ++++ b/src/udev/scsi_id/scsi_id.h @@ -43,6 +43,7 @@ struct scsi_id_device { char kernel[64]; char serial[MAX_SERIAL_LEN]; @@ -106,11 +100,9 @@ Index: systemd/src/udev/scsi_id/scsi_id.h int use_sg; /* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */ -Index: systemd/src/udev/scsi_id/scsi_serial.c -=================================================================== ---- systemd.orig/src/udev/scsi_id/scsi_serial.c -+++ systemd/src/udev/scsi_id/scsi_serial.c -@@ -96,7 +96,8 @@ static const char hex_str[]="0123456789a +--- a/src/udev/scsi_id/scsi_serial.c ++++ b/src/udev/scsi_id/scsi_serial.c +@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -120,7 +112,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c static int sg_err_category_new(struct udev *udev, int scsi_status, int msg_status, int -@@ -619,7 +620,7 @@ static int do_scsi_page83_inquiry(struct +@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct unsigned char page_83[SCSI_INQ_BUFF_LEN]; /* also pick up the page 80 serial number */ @@ -129,7 +121,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c memzero(page_83, SCSI_INQ_BUFF_LEN); retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83, -@@ -764,7 +765,8 @@ static int do_scsi_page83_prespc3_inquir +@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir /* Get unit serial number VPD page */ static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -139,7 +131,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c { int retval; int ser_ind; -@@ -798,9 +800,14 @@ static int do_scsi_page80_inquiry(struct +@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]); if (ser_ind < 0) return 1; @@ -155,7 +147,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c } if (serial_short != NULL) { memcpy(serial_short, &buf[4], len); -@@ -876,7 +883,7 @@ int scsi_get_serial(struct udev *udev, +@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev, return 1; if (page_code == PAGE_80) { @@ -164,7 +156,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c retval = 1; goto completed; } else { -@@ -950,7 +957,7 @@ int scsi_get_serial(struct udev *udev, +@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev, for (ind = 4; ind <= page0[3] + 3; ind++) if (page0[ind] == PAGE_80) if (!do_scsi_page80_inquiry(udev, dev_scsi, fd, 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 00000000..9fdc9c68 --- /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 00000000..e0f7039c --- /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 00000000..7f7d24aa --- /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 00000000..f389aa8c --- /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 00000000..f821d890 --- /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 00000000..2a5cebd2 --- /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 00000000..27aaa6e3 --- /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 00000000..a617451f --- /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 00000000..08f6daeb --- /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 00000000..4345f929 --- /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 00000000..57b2d699 --- /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 00000000..42e0af98 --- /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 00000000..37a5e752 --- /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/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch b/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch new file mode 100644 index 00000000..a623b566 --- /dev/null +++ b/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch @@ -0,0 +1,73 @@ +Based on 6f5cf8a8b1de763383f7382821147e538b7dbd6d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:02:03 +0200 +Subject: [PATCH] udevd: parse_argv - warn if argumens are invalid + +Found by Coverity. Fixes CID #1238780. +--- + src/udev/udevd.c | 34 ++++++++++++++++++++++++++-------- + 1 file changed, 26 insertions(+), 8 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-19 10:36:25.602735652 +0000 +@@ -1002,11 +1002,20 @@ static void kernel_cmdline_options(struc + log_set_max_level(prio); + udev_set_log_priority(udev, prio); + } else if (startswith(opt, "udev.children-max=")) { +- children_max = strtoul(opt + 18, NULL, 0); ++ r = safe_atoi(opt + 18, &children_max); ++ if (r < 0) ++ log_warning("Invalid udev.children-max ignored: %s", opt + 18); + } else if (startswith(opt, "udev.exec-delay=")) { +- exec_delay = strtoul(opt + 16, NULL, 0); ++ r = safe_atoi(opt + 16, &exec_delay); ++ if (r < 0) ++ log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); + } else if (startswith(opt, "udev.event-timeout=")) { +- event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; ++ r = safe_atou64(opt + 16, &event_timeout_usec); ++ if (r < 0) { ++ log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); ++ break; ++ } ++ event_timeout_usec *= USEC_PER_SEC; + event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; + } + +@@ -1052,7 +1061,7 @@ int main(int argc, char *argv[]) { + label_init("/dev"); + + for (;;) { +- int option; ++ int option, r; + + option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); + if (option == -1) +@@ -1063,14 +1072,23 @@ int main(int argc, char *argv[]) { + daemonize = true; + break; + case 'c': +- children_max = strtoul(optarg, NULL, 0); ++ r = safe_atoi(optarg, &children_max); ++ if (r < 0) ++ log_warning("Invalid --children-max ignored: %s", optarg); + break; + case 'e': +- exec_delay = strtoul(optarg, NULL, 0); ++ r = safe_atoi(optarg, &exec_delay); ++ if (r < 0) ++ log_warning("Invalid --exec-delay ignored: %s", optarg); + break; + case 't': +- event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; +- event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; ++ r = safe_atou64(optarg, &event_timeout_usec); ++ if (r < 0) ++ log_warning("Invalig --event-timeout ignored: %s", optarg); ++ else { ++ event_timeout_usec *= USEC_PER_SEC; ++ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; ++ } + break; + case 'D': + debug = true; diff --git a/1081-udevd-check-return-of-various-functions.patch b/1081-udevd-check-return-of-various-functions.patch new file mode 100644 index 00000000..819e4499 --- /dev/null +++ b/1081-udevd-check-return-of-various-functions.patch @@ -0,0 +1,55 @@ +Based on d457ff8319b1e7c522c146f75e272f1226f4720c Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:07:02 +0200 +Subject: [PATCH] udevd: check return of various functions + +One reported by Coverity. Fixes CID #996252. +--- + src/udev/udevd.c | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-19 11:33:21.566236309 +0000 +@@ -1044,7 +1044,7 @@ int main(int argc, char *argv[]) { + int fd_worker = -1; + struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker; + struct udev_ctrl_connection *ctrl_conn = NULL; +- int rc = 1; ++ int rc = 1, r; + + udev = udev_new(); + if (udev == NULL) +@@ -1058,7 +1058,11 @@ int main(int argc, char *argv[]) { + log_set_max_level(udev_get_log_priority(udev)); + + log_debug("version %s", VERSION); +- label_init("/dev"); ++ r = label_init("/dev"); ++ if (r < 0) { ++ log_error("could not initialize labelling: %s", strerror(-r)); ++ goto exit; ++ } + + for (;;) { + int option, r; +@@ -1137,10 +1141,18 @@ int main(int argc, char *argv[]) { + } + + /* set umask before creating any file/directory */ +- chdir("/"); ++ r = chdir("/"); ++ if (r < 0) { ++ log_error("could not change dir to /: %m"); ++ goto exit; ++ } + umask(022); + +- mkdir("/run/udev", 0755); ++ r = mkdir("/run/udev", 0755); ++ if (r < 0) { ++ log_error("could not create /run/udev: %m"); ++ goto exit; ++ } + + dev_setup(NULL); + diff --git a/1082-udevadm-hwdb-check-return-value-of-fseeko.patch b/1082-udevadm-hwdb-check-return-value-of-fseeko.patch new file mode 100644 index 00000000..27e6dc45 --- /dev/null +++ b/1082-udevadm-hwdb-check-return-value-of-fseeko.patch @@ -0,0 +1,45 @@ +From f901aaadd68050bc575c1c15b84f8f31fd4d494d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:16:54 +0200 +Subject: [PATCH] udevadm: hwdb - check return value of fseeko() + +Fonud by Coverity. Fixes CID #996255. +--- + src/udev/udevadm-hwdb.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git src/udev/udevadm-hwdb.c src/udev/udevadm-hwdb.c +index 65cbf61..64273fb 100644 +--- src/udev/udevadm-hwdb.c ++++ src/udev/udevadm-hwdb.c +@@ -365,7 +365,12 @@ static int trie_store(struct trie *trie, const char *filename) { + fchmod(fileno(t.f), 0444); + + /* write nodes */ +- fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); ++ err = fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); ++ if (err < 0) { ++ fclose(t.f); ++ unlink_noerrno(filename_tmp); ++ return -errno; ++ } + root_off = trie_store_nodes(&t, trie->root); + h.nodes_root_off = htole64(root_off); + pos = ftello(t.f); +@@ -378,7 +383,12 @@ static int trie_store(struct trie *trie, const char *filename) { + /* write header */ + size = ftello(t.f); + h.file_size = htole64(size); +- fseeko(t.f, 0, SEEK_SET); ++ err = fseeko(t.f, 0, SEEK_SET); ++ if (err < 0) { ++ fclose(t.f); ++ unlink_noerrno(filename_tmp); ++ return -errno; ++ } + fwrite(&h, sizeof(struct trie_header_f), 1, t.f); + err = ferror(t.f); + if (err) +-- +1.7.9.2 + diff --git a/1083-udev-node-warn-if-chmod-chown-fails.patch b/1083-udev-node-warn-if-chmod-chown-fails.patch new file mode 100644 index 00000000..0b78f626 --- /dev/null +++ b/1083-udev-node-warn-if-chmod-chown-fails.patch @@ -0,0 +1,34 @@ +From 543afdc63c02a5af3cf6bd2a264162f23474346a Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:22:09 +0200 +Subject: [PATCH] udev: node - warn if chmod/chown fails + +No functional change, just log the warning. + +Fonud by Coverity. Fixes CID #1237544. +--- + src/udev/udev-node.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git src/udev/udev-node.c src/udev/udev-node.c +index c164603..8ef7889 100644 +--- src/udev/udev-node.c ++++ src/udev/udev-node.c +@@ -281,8 +281,12 @@ static int node_permissions_apply(struct udev_device *dev, bool apply, + + if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) { + log_debug("set permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); +- chmod(devnode, mode); +- chown(devnode, uid, gid); ++ err = chmod(devnode, mode); ++ if (err < 0) ++ log_warning("setting mode of %s to %#o failed: %m", devnode, mode); ++ err = chown(devnode, uid, gid); ++ if (err < 0) ++ log_warning("setting owner of %s to uid=%u, gid=%u failed: %m", devnode, uid, gid); + } else { + log_debug("preserve permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); + } +-- +1.7.9.2 + diff --git a/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch b/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch new file mode 100644 index 00000000..1e8f4fcf --- /dev/null +++ b/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch @@ -0,0 +1,45 @@ +Based on 4bbdff757ed4e718a3348b93439a03055cc5e3bc Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 19:26:11 +0200 +Subject: [PATCH] udev: ctrl - log if setting SO_PASSCRED fails + +No functional change. + +Found by Coverity. Fixes CID #1237533. +--- + src/udev/udev-ctrl.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- src/udev/udev-ctrl.c ++++ src/udev/udev-ctrl.c 2014-09-19 10:45:55.494236229 +0000 +@@ -74,6 +74,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd( + { + struct udev_ctrl *uctrl; + const int on = 1; ++ int r; + + uctrl = new0(struct udev_ctrl, 1); + if (uctrl == NULL) +@@ -92,7 +93,9 @@ struct udev_ctrl *udev_ctrl_new_from_fd( + uctrl->bound = true; + uctrl->sock = fd; + } +- setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ r = setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ if (r < 0) ++ log_warning("could not set SO_PASSCRED: %m"); + + uctrl->saddr.sun_family = AF_LOCAL; + strscpy(uctrl->saddr.sun_path, sizeof(uctrl->saddr.sun_path), "/run/udev/control"); +@@ -209,7 +212,10 @@ struct udev_ctrl_connection *udev_ctrl_g + } + + /* enable receiving of the sender credentials in the messages */ +- setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); ++ if (r < 0) ++ log_warning("colud not set SO_PASSCRED: %m"); ++ + udev_ctrl_ref(uctrl); + return conn; + err: diff --git a/1085-udev-fix-typos.patch b/1085-udev-fix-typos.patch new file mode 100644 index 00000000..f6476200 --- /dev/null +++ b/1085-udev-fix-typos.patch @@ -0,0 +1,33 @@ +Based on 65fea570f03df51dadc06a3e0d261a71fe62aa01 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 20:25:33 +0200 +Subject: [PATCH] udev: fix typos + +Spotted by Andreas Henriksson. +--- + src/udev/udev-ctrl.c | 2 +- + src/udev/udevd.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- src/udev/udev-ctrl.c ++++ src/udev/udev-ctrl.c 2014-09-19 00:00:00.000000000 +0000 +@@ -214,7 +214,7 @@ struct udev_ctrl_connection *udev_ctrl_g + /* enable receiving of the sender credentials in the messages */ + r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); + if (r < 0) +- log_warning("colud not set SO_PASSCRED: %m"); ++ log_warning("could not set SO_PASSCRED: %m"); + + udev_ctrl_ref(uctrl); + return conn; +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-19 10:47:36.306235720 +0000 +@@ -1088,7 +1088,7 @@ int main(int argc, char *argv[]) { + case 't': + r = safe_atou64(optarg, &event_timeout_usec); + if (r < 0) +- log_warning("Invalig --event-timeout ignored: %s", optarg); ++ log_warning("Invalid --event-timeout ignored: %s", optarg); + else { + event_timeout_usec *= USEC_PER_SEC; + event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; diff --git a/1086-udevd-don-t-fail-if-run-udev-exists.patch b/1086-udevd-don-t-fail-if-run-udev-exists.patch new file mode 100644 index 00000000..7f574d6a --- /dev/null +++ b/1086-udevd-don-t-fail-if-run-udev-exists.patch @@ -0,0 +1,25 @@ +From 25773e7fc59b4ce53d67da4e18bfe4d13ab0b14b Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 18 Sep 2014 21:57:49 +0200 +Subject: [PATCH] udevd: don't fail if /run/udev exists + +--- + src/udev/udevd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index 37db81c..29ccb51 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -1155,7 +1155,7 @@ int main(int argc, char *argv[]) { + umask(022); + + r = mkdir("/run/udev", 0755); +- if (r < 0) { ++ if (r < 0 && errno != EEXIST) { + log_error("could not create /run/udev: %m"); + goto exit; + } +-- +1.7.9.2 + diff --git a/1087-infinit-timeout-for-kmod-loaded-modules.patch b/1087-infinit-timeout-for-kmod-loaded-modules.patch new file mode 100644 index 00000000..4208c21f --- /dev/null +++ b/1087-infinit-timeout-for-kmod-loaded-modules.patch @@ -0,0 +1,135 @@ +--- + src/udev/udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + src/udev/udev.h | 1 + + src/udev/udevd.c | 23 +++++++++++++++++++++-- + 3 files changed, 64 insertions(+), 2 deletions(-) + +--- src/udev/udev-event.c ++++ src/udev/udev-event.c 2014-09-24 14:32:53.115639820 +0000 +@@ -959,6 +959,46 @@ void udev_event_execute_rules(struct ude + } + } + ++#ifdef HAVE_KMOD ++static inline void udev_check_and_set_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { ++ char filename[UTIL_PATH_SIZE]; ++ switch (builtin_cmd) { ++ case UDEV_BUILTIN_KMOD: ++ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); ++ touch(filename); ++ default: ++ break; ++ } ++} ++ ++static inline void udev_check_and_unset_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { ++ char filename[UTIL_PATH_SIZE]; ++ switch (builtin_cmd) { ++ case UDEV_BUILTIN_KMOD: ++ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); ++ unlink(filename); ++ default: ++ break; ++ } ++} ++ ++bool udev_check_for_kmod(pid_t pid) { ++ char filename[UTIL_PATH_SIZE]; ++ struct stat st; ++ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)pid); ++ if (stat(filename, &st) == 0) { ++ return true; ++ } ++ return false; ++} ++#else ++# define udev_set_kmod (a,b) ++# define udev_unset_kmod(a,b) ++bool udev_check_for_kmod(pid_t pid) { ++ return false; ++} ++#endif ++ + 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; + +@@ -970,7 +1010,9 @@ void udev_event_execute_run(struct udev_ + char command[UTIL_PATH_SIZE]; + + udev_event_apply_format(event, cmd, command, sizeof(command)); ++ udev_check_and_set_kmod(builtin_cmd, event); + udev_builtin_run(event->dev, builtin_cmd, command, false); ++ udev_check_and_unset_kmod(builtin_cmd, event); + } else { + char program[UTIL_PATH_SIZE]; + char **envp; +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-24 15:02:30.895592379 +0000 +@@ -76,6 +76,7 @@ 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 bool event_killkmod = false; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -1017,6 +1018,12 @@ static void kernel_cmdline_options(struc + } + event_timeout_usec *= USEC_PER_SEC; + event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; ++ } else if (startswith(opt, "udev.killkmod=")) { ++ r = parse_boolean(opt + 14); ++ if (r < 0) ++ log_warning("Invalid udev.killkmod Ignoring: %s", opt + 14); ++ else ++ event_killkmod = r; + } + + free(s); +@@ -1065,7 +1072,7 @@ int main(int argc, char *argv[]) { + } + + for (;;) { +- int option, r; ++ int option; + + option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); + if (option == -1) +@@ -1356,6 +1363,12 @@ int main(int argc, char *argv[]) { + udev_list_node_init(&event_list); + udev_list_node_init(&worker_list); + ++ r = mkdir_p("/run/udev/kmod", 0755); ++ if (r < 0 && errno != EEXIST) { ++ log_error("could not create /run/udev/kmod: %m"); ++ goto exit; ++ } ++ + for (;;) { + static usec_t last_usec; + struct epoll_event ev[8]; +@@ -1440,7 +1453,13 @@ int main(int argc, char *argv[]) { + + if (worker->state != WORKER_RUNNING) + continue; +- ++#ifdef HAVE_KMOD ++ if (udev_check_for_kmod(worker->pid)) { ++ log_debug("worker [%u] %s is using kmod", worker->pid, worker->event->devpath); ++ if (!event_killkmod) ++ continue; ++ } ++#endif + ts = now(CLOCK_MONOTONIC); + + if ((ts - worker->event_start_usec) > event_timeout_warn_usec) { +--- src/udev/udev.h ++++ src/udev/udev.h 2014-09-24 14:33:33.824008084 +0000 +@@ -88,6 +88,7 @@ int udev_event_spawn(struct udev_event * + char *result, size_t ressize); + 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); ++bool udev_check_for_kmod(pid_t pid); + 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[]); + diff --git a/1089-fix-cgroup-device-controller.patch b/1089-fix-cgroup-device-controller.patch new file mode 100644 index 00000000..cd68533f --- /dev/null +++ b/1089-fix-cgroup-device-controller.patch @@ -0,0 +1,74 @@ +From eb0f0863f5af48865fb4569e2076d5f9e2313995 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 10 Mar 2014 21:36:01 +0100 +Subject: nspawn: don't try mknod() of /dev/console with the correct + major/minor + +We overmount /dev/console with an external pty anyway, hence there's no +point in using the real major/minor when we create the node to +overmount. Instead, use the one of /dev/null now. + +This fixes a race against the cgroup device controller setup we are +using. In case /dev/console was create before the cgroup policy was +applied all was good, but if created in the opposite order the mknod() +would fail, since creating /dev/console is not allowed by it. Creating +/dev/null instances is however permitted, and hence use it. + +diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c +index d8d0dae..bef866a 100644 +--- a/src/nspawn/nspawn.c ++++ b/src/nspawn/nspawn.c +@@ -879,23 +879,19 @@ static int setup_ptmx(const char *dest) { + } + + static int setup_dev_console(const char *dest, const char *console) { ++ _cleanup_umask_ mode_t u; ++ const char *to; + struct stat st; +- _cleanup_free_ char *to = NULL; + int r; +- _cleanup_umask_ mode_t u; + + assert(dest); + assert(console); + + u = umask(0000); + +- if (stat(console, &st) < 0) { +- log_error("Failed to stat %s: %m", console); ++ if (stat("/dev/null", &st) < 0) { ++ log_error("Failed to stat /dev/null: %m"); + return -errno; +- +- } else if (!S_ISCHR(st.st_mode)) { +- log_error("/dev/console is not a char device"); +- return -EIO; + } + + r = chmod_and_chown(console, 0600, 0, 0); +@@ -904,16 +900,15 @@ static int setup_dev_console(const char *dest, const char *console) { + return r; + } + +- if (asprintf(&to, "%s/dev/console", dest) < 0) +- return log_oom(); +- + /* We need to bind mount the right tty to /dev/console since + * ptys can only exist on pts file systems. To have something +- * to bind mount things on we create a device node first, that +- * has the right major/minor (note that the major minor +- * doesn't actually matter here, since we mount it over +- * anyway). */ ++ * to bind mount things on we create a device node first, and ++ * use /dev/null for that since we the cgroups device policy ++ * allows us to create that freely, while we cannot create ++ * /dev/console. (Note that the major minor doesn't actually ++ * matter here, since we mount it over anyway). */ + ++ to = strappenda(dest, "/dev/console"); + if (mknod(to, (st.st_mode & ~07777) | 0600, st.st_rdev) < 0) { + log_error("mknod() for /dev/console failed: %m"); + return -errno; +-- +cgit v0.10.2 + diff --git a/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch b/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch new file mode 100644 index 00000000..3a3ad550 --- /dev/null +++ b/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch @@ -0,0 +1,58 @@ +Based on cc821d02a37c8c76aaf15bae2d33fee1bdc4b2e0 Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Tue, 28 Oct 2014 16:50:24 +0100 +Subject: [PATCH] udev: path_id - set supported_parent for well-known SCSI + setups + +--- + src/udev/udev-builtin-path_id.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c 2014-11-03 14:12:48.129956655 +0000 +@@ -379,7 +379,7 @@ out: + return hostdev; + } + +-static struct udev_device *handle_scsi(struct udev_device *parent, char **path) ++static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) + { + const char *devtype; + const char *name; +@@ -394,6 +394,7 @@ static struct udev_device *handle_scsi(s + if (id != NULL) { + parent = skip_subsystem(parent, "scsi"); + path_prepend(path, "ieee1394-0x%s", id); ++ *supported_parent = true; + goto out; + } + +@@ -402,16 +403,19 @@ static struct udev_device *handle_scsi(s + + if (strstr(name, "/rport-") != NULL) { + parent = handle_scsi_fibre_channel(parent, path); ++ *supported_parent = true; + goto out; + } + + if (strstr(name, "/end_device-") != NULL) { + parent = handle_scsi_sas(parent, path); ++ *supported_parent = true; + goto out; + } + + if (strstr(name, "/session") != NULL) { + parent = handle_scsi_iscsi(parent, path); ++ *supported_parent = true; + goto out; + } + +@@ -545,7 +549,7 @@ static int builtin_path_id(struct udev_d + } else if (streq(subsys, "scsi_tape")) { + handle_scsi_tape(parent, &path); + } else if (streq(subsys, "scsi")) { +- parent = handle_scsi(parent, &path); ++ parent = handle_scsi(parent, &path, &supported_parent); + supported_transport = true; + } else if (streq(subsys, "cciss")) { + parent = handle_cciss(parent, &path); diff --git a/1091-udev-path_id-update-comments.patch b/1091-udev-path_id-update-comments.patch new file mode 100644 index 00000000..a695f0db --- /dev/null +++ b/1091-udev-path_id-update-comments.patch @@ -0,0 +1,42 @@ +From a42cdff19f2d34f12ceca0f40707421a8aaa2c2f Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Thu, 30 Oct 2014 01:18:34 +0100 +Subject: [PATCH] udev: path_id - update comments + +--- + src/udev/udev-builtin-path_id.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git src/udev/udev-builtin-path_id.c src/udev/udev-builtin-path_id.c +index 0d247f6..df996cb 100644 +--- src/udev/udev-builtin-path_id.c ++++ src/udev/udev-builtin-path_id.c +@@ -548,9 +548,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool + } + + /* +- * Do return devices with have an unknown type of parent device, they +- * might produce conflicting IDs below multiple independent parent +- * devices. ++ * Do not return devices with an unknown parent device type. They ++ * might produce conflicting IDs if the parent does not provide a ++ * unique and predictable name. + */ + if (!supported_parent) { + free(path); +@@ -558,9 +558,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool + } + + /* +- * Do not return a have-only a single-parent block devices, some +- * have entire hidden buses behind it, and not create predictable +- * IDs that way. ++ * Do not return block devices without a well-known transport. Some ++ * devices do not expose their buses and do not provide a unique ++ * and predictable name that way. + */ + if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { + free(path); +-- +1.7.9.2 + diff --git a/1092-libudev-do-not-accept-invalid-log-levels.patch b/1092-libudev-do-not-accept-invalid-log-levels.patch new file mode 100644 index 00000000..10b78859 --- /dev/null +++ b/1092-libudev-do-not-accept-invalid-log-levels.patch @@ -0,0 +1,67 @@ +Based on ee7122c0ec6aa11f02e9e8d94254b353f12d2c14 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 1 Nov 2014 12:06:41 -0400 +Subject: [PATCH] libudev: do not accept invalid log levels + +Invalid log levels lead to a assert failure later on. + +https://bugs.freedesktop.org/show_bug.cgi?id=85657 +--- + src/libudev/libudev-util.c | 10 +++++++--- + src/libudev/libudev.c | 19 ++++++++++++++++--- + 2 files changed, 23 insertions(+), 6 deletions(-) + +--- src/libudev/libudev-util.c ++++ src/libudev/libudev-util.c 2014-11-10 11:33:26.269519209 +0000 +@@ -255,9 +255,13 @@ int util_log_priority(const char *priori + char *endptr; + int prio; + +- prio = strtol(priority, &endptr, 10); +- if (endptr[0] == '\0' || isspace(endptr[0])) +- return prio; ++ prio = strtoul(priority, &endptr, 10); ++ if (endptr[0] == '\0' || isspace(endptr[0])) { ++ if (prio >= 0 && prio <= 7) ++ return prio; ++ else ++ return -ERANGE; ++ } + if (startswith(priority, "err")) + return LOG_ERR; + if (startswith(priority, "info")) +--- src/libudev/libudev.c ++++ src/libudev/libudev.c +@@ -193,7 +193,13 @@ _public_ struct udev *udev_new(void) + } + + if (streq(key, "udev_log")) { +- udev_set_log_priority(udev, util_log_priority(val)); ++ int prio; ++ ++ prio = util_log_priority(val); ++ if (prio < 0) ++ udev_err(udev, "/etc/udev/udev.conf:%u: invalid logging level '%s', ignoring.\n", line_nr, val); ++ else ++ udev_set_log_priority(udev, prio); + continue; + } + } +@@ -201,8 +207,15 @@ _public_ struct udev *udev_new(void) + + /* environment overrides config */ + env = secure_getenv("UDEV_LOG"); +- if (env != NULL) +- udev_set_log_priority(udev, util_log_priority(env)); ++ if (env != NULL) { ++ int prio; ++ ++ prio = util_log_priority(env); ++ if (prio < 0) ++ udev_err(udev, "$UDEV_LOG specifies invalid logging level '%s', ignoring.\n", env); ++ else ++ udev_set_log_priority(udev, prio); ++ } + + return udev; + } diff --git a/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch b/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch new file mode 100644 index 00000000..5f3bb576 --- /dev/null +++ b/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch @@ -0,0 +1,23 @@ +Based on f671774f52838d35d78e62ddcb781b5b65b3373f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 4 Nov 2014 23:45:15 +0000 +Subject: [PATCH] udev: Fix parsing of udev.event-timeout kernel parameter. + +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-11-10 12:28:20.385559165 +0000 +@@ -1011,9 +1011,9 @@ static void kernel_cmdline_options(struc + if (r < 0) + log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); + } else if (startswith(opt, "udev.event-timeout=")) { +- r = safe_atou64(opt + 16, &event_timeout_usec); ++ r = safe_atou64(opt + 19, &event_timeout_usec); + if (r < 0) { +- log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); ++ log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); + break; + } + event_timeout_usec *= USEC_PER_SEC; diff --git a/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch b/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch new file mode 100644 index 00000000..3cd42e5c --- /dev/null +++ b/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch @@ -0,0 +1,58 @@ +Based on cfe2061add5479710f6597899d632e64c54e62ef Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Wed, 5 Nov 2014 12:56:49 +0100 +Subject: [PATCH] udev: avoid magic constants in kernel-cmdline parsers + +Lets recognize the fact that startswith() returns a pointer to the tail on +success. Use it instead of hard-coding string-lengths as magic constants. +--- + src/udev/udevd.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-11-10 12:31:15.745519116 +0000 +@@ -984,7 +984,7 @@ static void kernel_cmdline_options(struc + return; + + FOREACH_WORD_QUOTED(w, l, line, state) { +- char *s, *opt; ++ char *s, *opt, *value; + + s = strndup(w, l); + if (!s) +@@ -996,24 +996,24 @@ static void kernel_cmdline_options(struc + else + opt = s; + +- if (startswith(opt, "udev.log-priority=")) { ++ if ((value = startswith(opt, "udev.log-priority="))) { + int prio; + +- prio = util_log_priority(opt + 18); ++ prio = util_log_priority(value); + log_set_max_level(prio); + udev_set_log_priority(udev, prio); +- } else if (startswith(opt, "udev.children-max=")) { +- r = safe_atoi(opt + 18, &children_max); ++ } else if ((value = startswith(opt, "udev.children-max="))) { ++ r = safe_atoi(value, &children_max); + if (r < 0) +- log_warning("Invalid udev.children-max ignored: %s", opt + 18); +- } else if (startswith(opt, "udev.exec-delay=")) { +- r = safe_atoi(opt + 16, &exec_delay); ++ log_warning("Invalid udev.children-max ignored: %s", value); ++ } else if ((value = startswith(opt, "udev.exec-delay="))) { ++ r = safe_atoi(value, &exec_delay); + if (r < 0) +- log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); +- } else if (startswith(opt, "udev.event-timeout=")) { +- r = safe_atou64(opt + 19, &event_timeout_usec); ++ log_warning("Invalid udev.exec-delay ignored: %s", value); ++ } else if ((value = startswith(opt, "udev.event-timeout="))) { ++ r = safe_atou64(value, &event_timeout_usec); + if (r < 0) { +- log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); ++ log_warning("Invalid udev.event-timeout ignored: %s", value); + break; + } + event_timeout_usec *= USEC_PER_SEC; diff --git a/1095-set-ssd-disk-to-use-deadline-scheduler.patch b/1095-set-ssd-disk-to-use-deadline-scheduler.patch index d9d128f2..39c4a74a 100644 --- a/1095-set-ssd-disk-to-use-deadline-scheduler.patch +++ b/1095-set-ssd-disk-to-use-deadline-scheduler.patch @@ -1,24 +1,19 @@ ---- - Makefile.am | 1 + - rules/60-ssd-scheduler.rules | 11 +++++++++++ - 2 files changed, 12 insertions(+) - -Index: systemd/Makefile.am +Index: systemd-210/Makefile.am =================================================================== ---- systemd.orig/Makefile.am -+++ systemd/Makefile.am -@@ -3576,6 +3576,7 @@ dist_udevrules_DATA += \ +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2546,6 +2546,7 @@ dist_udevrules_DATA += \ rules/60-persistent-input.rules \ rules/60-persistent-alsa.rules \ rules/60-persistent-storage.rules \ + rules/60-ssd-scheduler.rules \ rules/64-btrfs.rules \ - rules/70-mouse.rules \ - rules/70-touchpad.rules \ -Index: systemd/rules/60-ssd-scheduler.rules + rules/75-net-description.rules \ + rules/75-tty-description.rules \ +Index: systemd-210/rules/60-ssd-scheduler.rules =================================================================== --- /dev/null -+++ systemd/rules/60-ssd-scheduler.rules ++++ systemd-210/rules/60-ssd-scheduler.rules @@ -0,0 +1,11 @@ +# do not edit this file, it will be overwritten on update + diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch index 7f09f46e..49c1b2c9 100644 --- a/1096-new-udev-root-symlink-generator.patch +++ b/1096-new-udev-root-symlink-generator.patch @@ -1,16 +1,9 @@ ---- - Makefile.am | 19 +++++ - src/udev/rootsymlink_generator/rootsymlink_generator.c | 57 +++++++++++++++++ - units/systemd-udev-root-symlink.service | 10 ++ - units/systemd-udev-root-symlink.service.in | 10 ++ - 4 files changed, 96 insertions(+) - -Index: systemd/Makefile.am +Index: systemd-210/Makefile.am =================================================================== ---- systemd.orig/Makefile.am -+++ systemd/Makefile.am -@@ -3862,6 +3862,25 @@ EXTRA_DIST += \ - +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2791,6 +2791,25 @@ EXTRA_DIST += \ + test/rule-syntax-check.py # ------------------------------------------------------------------------------ +rootsymlink_generator_SOURCES = \ @@ -35,11 +28,11 @@ Index: systemd/Makefile.am ata_id_SOURCES = \ src/udev/ata_id/ata_id.c -Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c +Index: systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c =================================================================== --- /dev/null -+++ systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c -@@ -0,0 +1,57 @@ ++++ systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +@@ -0,0 +1,65 @@ +/* + * Copyright (C) 2014-2015 Robert Milasan + * @@ -71,51 +64,44 @@ Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c +#define _PATH_ "/run/udev/rules.d" +#define _FILE_ "10-root-symlink.rules" + -+int main(void) ++int main() +{ -+ char filename[BUFFER_SIZE], buf[BUFFER_SIZE]; + struct stat statbuf; -+ int fd; + -+ if (stat(_ROOTDEV_, &statbuf) < 0) ++ if (stat(_ROOTDEV_, &statbuf) != 0) + return 1; -+ if (major(statbuf.st_dev) <= 0) -+ return 0; -+ if (mkdir(_PATH_, 0755) < 0 && errno != EEXIST) -+ return errno; -+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); -+ fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644); -+ if (fd < 0) -+ return errno; -+ snprintf(buf, BUFFER_SIZE, -+ "ACTION==\"add|change\", SUBSYSTEM==\"block\", " -+ "ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", -+ major(statbuf.st_dev), minor(statbuf.st_dev)); -+ if (write(fd, buf, strlen(buf)) < 0) -+ return errno; -+ if (close(fd) < 0) -+ return errno; ++ ++ if (major(statbuf.st_dev) > 0) { ++ int fd = -1; ++ char filename[BUFFER_SIZE]; ++ ++ if (mkdir(_PATH_, 0755) != 0 && errno != EEXIST) ++ return errno; ++ ++ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); ++ ++ if ((fd = open(filename, O_CREAT|O_WRONLY|O_TRUNC, 0644)) == -1) ++ return errno; ++ else { ++ char buf[BUFFER_SIZE]; ++ ++ snprintf(buf, BUFFER_SIZE, "ACTION==\"add|change\", SUBSYSTEM==\"block\", ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", ++ major(statbuf.st_dev), minor(statbuf.st_dev)); ++ ++ if (write(fd, buf, strlen(buf)) == -1) ++ return errno; ++ ++ if (close(fd) == -1) ++ return errno; ++ } ++ } ++ + return 0; +} -Index: systemd/units/systemd-udev-root-symlink.service +Index: systemd-210/units/systemd-udev-root-symlink.service.in =================================================================== --- /dev/null -+++ systemd/units/systemd-udev-root-symlink.service -@@ -0,0 +1,10 @@ -+[Unit] -+Description=Rule generator for /dev/root symlink -+Before=systemd-udevd.service -+DefaultDependencies=no -+ConditionPathIsReadWrite=/run/udev -+ -+[Service] -+Type=oneshot -+RemainAfterExit=yes -+ExecStart=/usr/lib/udev/rootsymlink-generator -Index: systemd/units/systemd-udev-root-symlink.service.in -=================================================================== ---- /dev/null -+++ systemd/units/systemd-udev-root-symlink.service.in ++++ systemd-210/units/systemd-udev-root-symlink.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=Rule generator for /dev/root symlink @@ -127,3 +113,18 @@ Index: systemd/units/systemd-udev-root-symlink.service.in +Type=oneshot +RemainAfterExit=yes +ExecStart=@udevlibexec@/rootsymlink-generator +Index: systemd-210/units/systemd-udev-root-symlink.service +=================================================================== +--- /dev/null ++++ systemd-210/units/systemd-udev-root-symlink.service +@@ -0,0 +1,10 @@ ++[Unit] ++Description=Rule generator for /dev/root symlink ++Before=systemd-udevd.service ++DefaultDependencies=no ++ConditionPathIsReadWrite=/run/udev ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=/usr/lib/udev/rootsymlink-generator diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch index 486be9b2..50bbc56f 100644 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -1,26 +1,22 @@ ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-218/src/udev/udevd.c +Index: systemd-210/src/udev/udevd.c =================================================================== ---- systemd-218.orig/src/udev/udevd.c -+++ systemd-218/src/udev/udevd.c -@@ -446,7 +446,7 @@ static void event_run(struct event *even +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -454,7 +454,7 @@ static void event_run(struct event *even - if (children >= arg_children_max) { - if (arg_children_max > 1) + if (children >= children_max) { + if (children_max > 1) - log_debug("maximum number (%i) of children reached", children); + log_error("maximum number (%i) of children reached", children); return; } -@@ -1265,7 +1265,7 @@ int main(int argc, char *argv[]) { - arg_children_max = 8; +@@ -1277,7 +1277,7 @@ int main(int argc, char *argv[]) { + children_max = 8; if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { -- arg_children_max += CPU_COUNT(&cpu_set) * 2; -+ arg_children_max += CPU_COUNT(&cpu_set) * 64; +- children_max += CPU_COUNT(&cpu_set) * 2; ++ children_max += CPU_COUNT(&cpu_set) * 64; } } - log_debug("set children_max to %u", arg_children_max); + log_debug("set children_max to %u", children_max); diff --git a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch new file mode 100644 index 00000000..6772f650 --- /dev/null +++ b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch @@ -0,0 +1,154 @@ +Based on 04b67d49254d956d31bcfe80340fb9df7ed332d3 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Tue, 15 Jul 2014 17:57:43 +0200 +Subject: [PATCH] udev: link_setup - respect kernel name assign policy + +Newer kernels export meta-information about the origin of an ifname. Respect this +from the ifname rename logic. We do not rename any interfaces that was originally +named by userspace, nor once which have already been renamed from userspace. + +Moreover, we optionally do not (the default) rename interfaces which the kernel +claims to have named in a predictable way. +--- + man/udev.xml | 13 ++++++++++- + network/99-default.link | 2 - + src/shared/missing.h | 21 +++++++++++++++++ + src/udev/net/link-config.c | 53 +++++++++++++++++++++++++++++++++++++-------- + src/udev/net/link-config.h | 1 + 5 files changed, 79 insertions(+), 11 deletions(-) + +Index: man/udev.xml +=================================================================== +--- man/udev.xml.orig ++++ man/udev.xml +@@ -914,10 +914,12 @@ + successful one is used. The name is not set directly, but + is exported to udev as the property ID_NET_NAME, + which is, by default, used by a udev rule to set +- NAME. The available policies are: ++ NAME. If the name has already ++ been set by userspace, no renaming is performed. ++ The available policies are: + + +- ++ + database + + The name is set based on entries in the Hardware +Index: src/shared/missing.h +=================================================================== +--- src/shared/missing.h.orig ++++ src/shared/missing.h +@@ -362,3 +362,24 @@ static inline int setns(int fd, int nsty + return syscall(__NR_setns, fd, nstype); + } + #endif ++ ++#ifndef NET_ADDR_RANDOM ++# define NET_ADDR_RANDOM 1 ++#endif ++ ++#ifndef NET_NAME_ENUM ++# define NET_NAME_ENUM 1 ++#endif ++ ++#ifndef NET_NAME_PREDICTABLE ++# define NET_NAME_PREDICTABLE 2 ++#endif ++ ++#ifndef NET_NAME_USER ++# define NET_NAME_USER 3 ++#endif ++ ++#ifndef NET_NAME_RENAMED ++# define NET_NAME_RENAMED 4 ++#endif ++ +Index: src/udev/net/link-config.c +=================================================================== +--- src/udev/net/link-config.c.orig ++++ src/udev/net/link-config.c +@@ -20,10 +20,11 @@ + ***/ + + #include +-#include ++#include + + #include "sd-id128.h" + ++#include "missing.h" + #include "link-config.h" + #include "ethtool-util.h" + +@@ -297,23 +298,30 @@ static bool mac_is_random(struct udev_de + return false; + + /* check for NET_ADDR_RANDOM */ +- return type == 1; ++ return type == NET_ADDR_RANDOM; + } + +-static bool mac_is_permanent(struct udev_device *device) { ++static bool should_rename(struct udev_device *device) { + const char *s; + unsigned type; + int r; + +- s = udev_device_get_sysattr_value(device, "addr_assign_type"); ++ s = udev_device_get_sysattr_value(device, "name_assign_type"); + if (!s) +- return true; /* if we don't know, assume it is permanent */ ++ return true; /* if we don't know, assume we should rename */ + r = safe_atou(s, &type); + if (r < 0) + return true; + +- /* check for NET_ADDR_PERM */ +- return type == 0; ++ switch (type) { ++ case NET_NAME_USER: ++ case NET_NAME_RENAMED: ++ return false; /* these were already named by userspace, do not touch again */ ++ case NET_NAME_PREDICTABLE: ++ case NET_NAME_ENUM: ++ default: ++ return true; /* the name is known to be bad, or of an unknown type */ ++ } + } + + #define HASH_KEY SD_ID128_MAKE(d3,1e,48,fa,90,fe,4b,4c,9d,af,d5,d7,a1,b1,2e,8a) +@@ -429,16 +437,16 @@ int link_config_apply(link_config_ctx *c + } + } + +- if (new_name) +- *name = new_name; /* a name was set by a policy */ +- else if (config->name) +- *name = config->name; /* a name was set manually in the config */ +- else +- *name = NULL; ++ if (should_rename(device)) { ++ if (!new_name) ++ /* if not set by policy, fall back manually set name */ ++ new_name = config->name; ++ } else ++ new_name = NULL; + + switch (config->mac_policy) { + case MACPOLICY_PERSISTENT: +- if (!mac_is_permanent(device)) { ++ if (mac_is_random(device)) { + r = get_mac(device, false, &generated_mac); + if (r == -ENOENT) + break; +@@ -467,6 +475,8 @@ int link_config_apply(link_config_ctx *c + return r; + } + ++ *name = new_name; ++ + return 0; + } + diff --git a/513-nspawn-veth.patch b/513-nspawn-veth.patch new file mode 100644 index 00000000..b24ecf6c --- /dev/null +++ b/513-nspawn-veth.patch @@ -0,0 +1,39 @@ +diff -Naur systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c +--- systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c 2014-11-19 13:10:23.998310815 +0100 ++++ systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c 2014-12-08 12:03:18.059734333 +0100 +@@ -722,6 +722,7 @@ + + int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type) { + uint16_t rtm_type; ++ int r; + + assert_return(m, -EINVAL); + assert_return(!m->sealed, -EPERM); +@@ -729,15 +730,21 @@ + sd_rtnl_message_get_type(m, &rtm_type); + + if (rtnl_message_type_is_link(rtm_type)) { +- + if ((type == IFLA_LINKINFO && m->n_containers == 0) || + (type == IFLA_INFO_DATA && m->n_containers == 1 && +- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) +- return add_rtattr(m, type, NULL, 0); +- else if (type == VETH_INFO_PEER && m->n_containers == 2 && ++ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) { ++ r = add_rtattr(m, type, NULL, 0); ++ if ( r > 0) ++ m->container_offsets[m->n_containers ++] = r; ++ return r; ++ } else if (type == VETH_INFO_PEER && m->n_containers == 2 && + GET_CONTAINER(m, 1)->rta_type == IFLA_INFO_DATA && +- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) +- return add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); ++ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) { ++ r = add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); ++ if ( r > 0) ++ m->container_offsets[m->n_containers ++] = r; ++ return r; ++ } + } + + return -ENOTSUP; diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch index 95c19107..8e0a00a7 100644 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -5,21 +5,18 @@ Subject: Fix /run/lock directories permissions to follow openSUSE policy disable /var/lock/{subsys,lockdev} and change default permissions on /var/lock (bnc#733523). --- - tmpfiles.d/legacy.conf | 7 ++++--- + tmpfiles.d/legacy.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) -Index: systemd-218/tmpfiles.d/legacy.conf -=================================================================== ---- systemd-218.orig/tmpfiles.d/legacy.conf -+++ systemd-218/tmpfiles.d/legacy.conf -@@ -10,13 +10,14 @@ +--- systemd-206_git201308300826.orig/tmpfiles.d/legacy.conf ++++ systemd-206_git201308300826/tmpfiles.d/legacy.conf +@@ -10,12 +10,13 @@ # These files are considered legacy and are unnecessary on legacy-free # systems. -d /run/lock 0755 root root - -+# changed for openSUSE: only /run/lock should be available. ++# changed for openSUSE : only /run/lock should be available +d /run/lock 0775 root lock - - L /var/lock - - - - ../run/lock # /run/lock/subsys is used for serializing SysV service execution, and # hence without use on SysV-less systems. @@ -29,7 +26,7 @@ Index: systemd-218/tmpfiles.d/legacy.conf # /run/lock/lockdev is used to serialize access to tty devices via # LCK..xxx style lock files, For more information see: -@@ -24,7 +25,7 @@ d /run/lock/subsys 0755 root root - +@@ -23,7 +24,7 @@ d /run/lock/subsys 0755 root root - # On modern systems a BSD file lock is a better choice if # serialization is needed on those devices. diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 96de1ed2..0c06b4dc 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -4,23 +4,21 @@ Subject: Forward suspend / hibernate calls to pm-utils forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) --- - src/sleep/sleep.c | 27 ++++++++++++++++++++++----- - 1 file changed, 22 insertions(+), 5 deletions(-) + src/sleep/sleep.c | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) -Index: systemd/src/sleep/sleep.c -=================================================================== ---- systemd.orig/src/sleep/sleep.c -+++ systemd/src/sleep/sleep.c +--- systemd-206.orig/src/sleep/sleep.c ++++ systemd-206/src/sleep/sleep.c @@ -24,6 +24,7 @@ #include #include #include +#include - #include "sd-id128.h" - #include "sd-messages.h" -@@ -36,6 +37,8 @@ - #include "def.h" + #include "systemd/sd-id128.h" + #include "systemd/sd-messages.h" +@@ -35,6 +36,8 @@ + #include "sleep-config.h" static char* arg_verb = NULL; +static bool delegate_to_pmutils = false; @@ -28,37 +26,36 @@ Index: systemd/src/sleep/sleep.c static int write_mode(char **modes) { int r = 0; -@@ -53,10 +56,6 @@ static int write_mode(char **modes) { - if (r == 0) +@@ -50,9 +53,6 @@ static int write_mode(char **modes) { r = k; } -- + - if (r < 0) -- log_error_errno(r, "Failed to write mode to /sys/power/disk: %m"); -- +- log_error("Failed to write mode to /sys/power/disk: %s", +- strerror(-r)); + return r; } - -@@ -97,6 +96,8 @@ static int execute(char **modes, char ** - int r; +@@ -90,6 +90,8 @@ static int execute(char **modes, char ** _cleanup_fclose_ FILE *f = NULL; + const char* note = strappenda("SLEEP=", arg_verb); + if (!delegate_to_pmutils) { + /* This file is opened first, so that if we hit an error, * we can abort before modifying any state. */ f = fopen("/sys/power/state", "we"); -@@ -107,6 +108,7 @@ static int execute(char **modes, char ** +@@ -102,6 +104,7 @@ static int execute(char **modes, char ** r = write_mode(modes); if (r < 0) return r; + } - execute_directories(dirs, DEFAULT_TIMEOUT_USEC, arguments); - -@@ -115,8 +117,10 @@ static int execute(char **modes, char ** - LOG_MESSAGE("Suspending system..."), - "SLEEP=%s", arg_verb, + arguments[0] = NULL; + arguments[1] = (char*) "pre"; +@@ -114,8 +117,10 @@ static int execute(char **modes, char ** + "MESSAGE=Suspending system...", + note, NULL); - + if (!delegate_to_pmutils) @@ -68,7 +65,7 @@ Index: systemd/src/sleep/sleep.c if (r < 0) return r; -@@ -156,6 +160,7 @@ static int parse_argv(int argc, char *ar +@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *ar }; int c; @@ -76,7 +73,7 @@ Index: systemd/src/sleep/sleep.c assert(argc >= 0); assert(argv); -@@ -193,6 +198,18 @@ static int parse_argv(int argc, char *ar +@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *ar return -EINVAL; } diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch new file mode 100644 index 00000000..41d51bfa --- /dev/null +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -0,0 +1,140 @@ +From: Frederic Crozat +Date: Fri, 12 Apr 2013 16:56:26 +0200 +Subject: Revert "service: drop support for SysV scripts for the early boot" + +This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. + +Conflicts: + src/core/service.c +--- + src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 46 insertions(+), 5 deletions(-) + +Index: systemd-208/src/core/service.c +=================================================================== +--- systemd-208.orig/src/core/service.c ++++ systemd-208/src/core/service.c +@@ -51,7 +51,8 @@ + + typedef enum RunlevelType { + RUNLEVEL_UP, +- RUNLEVEL_DOWN ++ RUNLEVEL_DOWN, ++ RUNLEVEL_SYSINIT + } RunlevelType; + + static const struct { +@@ -66,6 +67,16 @@ static const struct { + { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, + { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, + ++#ifdef HAVE_SYSV_COMPAT ++ /* SUSE style boot.d */ ++ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++#endif ++ ++#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) ++ /* Debian style rcS.d */ ++ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++#endif ++ + /* Standard SysV runlevels for shutdown */ + { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, + { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } +@@ -74,10 +85,12 @@ static const struct { + directories in this order, and we want to make sure that + sysv_start_priority is known when we first load the + unit. And that value we only know from S links. Hence +- UP must be read before DOWN */ ++ UP/SYSINIT must be read before DOWN */ + }; + + #define RUNLEVELS_UP "12345" ++/* #define RUNLEVELS_DOWN "06" */ ++#define RUNLEVELS_BOOT "bBsS" + #endif + + static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { +@@ -340,6 +353,9 @@ static char *sysv_translate_name(const c + if (endswith(name, ".sh")) + /* Drop .sh suffix */ + strcpy(stpcpy(r, name) - 3, ".service"); ++ if (startswith(name, "boot.")) ++ /* Drop SuSE-style boot. prefix */ ++ strcpy(stpcpy(r, name + 5), ".service"); + else + /* Normal init script name */ + strcpy(stpcpy(r, name), ".service"); +@@ -942,6 +958,13 @@ static int service_load_sysv_path(Servic + + if ((r = sysv_exec_commands(s, supports_reload)) < 0) + goto finish; ++ if (s->sysv_runlevels && ++ chars_intersect(RUNLEVELS_BOOT, s->sysv_runlevels) && ++ chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { ++ /* Service has both boot and "up" runlevels ++ configured. Kill the "up" ones. */ ++ delete_chars(s->sysv_runlevels, RUNLEVELS_UP); ++ } + + if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { + /* If there a runlevels configured for this service +@@ -1023,6 +1046,9 @@ static int service_load_sysv_name(Servic + if (endswith(name, ".sh.service")) + return -ENOENT; + ++ if (startswith(name, "boot.")) ++ return -ENOENT; ++ + STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { + char *path; + int r; +@@ -1043,6 +1069,18 @@ static int service_load_sysv_name(Servic + } + free(path); + ++ if (r >= 0 && UNIT(s)->load_state == UNIT_STUB) { ++ /* Try SUSE style boot.* init scripts */ ++ ++ path = strjoin(*p, "/boot.", name, NULL); ++ if (!path) ++ return -ENOMEM; ++ ++ /* Drop .service suffix */ ++ path[strlen(path)-8] = 0; ++ r = service_load_sysv_path(s, path); ++ free(path); ++ } + if (r < 0) + return r; + +@@ -3574,7 +3612,7 @@ static int service_enumerate(Manager *m) + + if (de->d_name[0] == 'S') { + +- if (rcnd_table[i].type == RUNLEVEL_UP) { ++ if (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT) { + SERVICE(service)->sysv_start_priority_from_rcnd = + MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); + +@@ -3591,7 +3629,8 @@ static int service_enumerate(Manager *m) + goto finish; + + } else if (de->d_name[0] == 'K' && +- (rcnd_table[i].type == RUNLEVEL_DOWN)) { ++ (rcnd_table[i].type == RUNLEVEL_DOWN || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { + + r = set_ensure_allocated(&shutdown_services, + trivial_hash_func, trivial_compare_func); +@@ -3631,7 +3670,9 @@ static int service_enumerate(Manager *m) + * runlevels we assume the stop jobs will be implicitly added + * by the core logic. Also, we don't really distinguish here + * between the runlevels 0 and 6 and just add them to the +- * special shutdown target. */ ++ * special shutdown target. On SUSE the boot.d/ runlevel is ++ * also used for shutdown, so we add links for that too to the ++ * shutdown target.*/ + SET_FOREACH(service, shutdown_services, j) { + service = unit_follow_merge(service); + diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch new file mode 100644 index 00000000..04afafb9 --- /dev/null +++ b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -0,0 +1,24 @@ +From: Ludwig Nussel +Date: Mon, 26 Nov 2012 09:49:42 +0100 +Subject: avoid assertion if invalid address familily is passed to + gethostbyaddr_r (bnc#791101) + +--- + src/nss-myhostname/nss-myhostname.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c ++++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c +@@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostb + uint32_t local_address_ipv4 = LOCALADDRESS_IPV4; + const char *canonical = NULL, *additional = NULL; + ++ if (af != AF_INET && af != AF_INET6) { ++ *errnop = EAFNOSUPPORT; ++ *h_errnop = NO_DATA; ++ return NSS_STATUS_UNAVAIL; ++ } ++ + if (len != PROTO_ADDRESS_SIZE(af)) { + *errnop = EINVAL; + *h_errnop = NO_RECOVERY; diff --git a/avoid-leaking-socket-descriptors.patch b/avoid-leaking-socket-descriptors.patch new file mode 100644 index 00000000..d65d1196 --- /dev/null +++ b/avoid-leaking-socket-descriptors.patch @@ -0,0 +1,339 @@ +Based on 249968612f16a71df909d6e73785c18a9ff36a65 +with src/core/dbus.c as well and corrected systemctl +error messages for killing a unit. + +--- + src/analyze/analyze.c | 2 +- + src/bus-proxyd/bus-proxyd.c | 4 +--- + src/cgroups-agent/cgroups-agent.c | 4 +--- + src/core/dbus.c | 2 +- + src/fsck/fsck.c | 2 +- + src/hostname/hostnamectl.c | 2 +- + src/hostname/hostnamed.c | 4 ++-- + src/libsystemd/sd-bus/bus-util.h | 9 +++++++++ + src/libsystemd/sd-bus/busctl.c | 2 +- + src/locale/localectl.c | 2 +- + src/locale/localed.c | 4 ++-- + src/login/inhibit.c | 2 +- + src/login/loginctl.c | 2 +- + src/login/pam-module.c | 4 ++-- + src/machine/machinectl.c | 4 ++-- + src/nspawn/nspawn.c | 4 ++-- + src/run/run.c | 2 +- + src/systemctl/systemctl.c | 2 +- + src/timedate/timedatectl.c | 2 +- + src/timedate/timedated.c | 4 ++-- + 20 files changed, 34 insertions(+), 29 deletions(-) + +--- src/analyze/analyze.c ++++ src/analyze/analyze.c 2014-10-21 11:13:56.113045992 +0000 +@@ -1264,7 +1264,7 @@ static int parse_argv(int argc, char *ar + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/bus-proxyd/bus-proxyd.c ++++ src/bus-proxyd/bus-proxyd.c 2014-10-21 11:16:16.303837968 +0000 +@@ -427,7 +427,7 @@ static int patch_sender(sd_bus *a, sd_bu + + int main(int argc, char *argv[]) { + +- _cleanup_bus_unref_ sd_bus *a = NULL, *b = NULL; ++ _cleanup_bus_close_unref_ sd_bus *a = NULL, *b = NULL; + sd_id128_t server_id; + int r, in_fd, out_fd; + bool got_hello = false; +@@ -777,8 +777,6 @@ int main(int argc, char *argv[]) { + r = 0; + + finish: +- sd_bus_flush(a); +- sd_bus_flush(b); + + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + } +--- src/cgroups-agent/cgroups-agent.c ++++ src/cgroups-agent/cgroups-agent.c 2014-10-21 11:17:37.400197469 +0000 +@@ -26,7 +26,7 @@ + #include "bus-util.h" + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + if (argc != 2) { +@@ -62,7 +62,5 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- sd_bus_flush(bus); +- + return EXIT_SUCCESS; + } +--- src/core/dbus.c ++++ src/core/dbus.c 2014-10-17 09:52:47.000000000 +0000 +@@ -639,7 +639,7 @@ static int bus_setup_disconnected_match( + } + + static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void *userdata) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + _cleanup_close_ int nfd = -1; + Manager *m = userdata; + sd_id128_t id; +--- src/fsck/fsck.c ++++ src/fsck/fsck.c 2014-10-21 11:18:06.003838037 +0000 +@@ -45,7 +45,7 @@ static bool arg_show_progress = false; + + static void start_target(const char *target) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(target); +--- src/hostname/hostnamectl.c ++++ src/hostname/hostnamectl.c 2014-10-21 11:18:19.915858156 +0000 +@@ -468,7 +468,7 @@ static int hostnamectl_main(sd_bus *bus, + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/hostname/hostnamed.c ++++ src/hostname/hostnamed.c 2014-10-21 11:24:07.737447673 +0000 +@@ -566,7 +566,7 @@ static const sd_bus_vtable hostname_vtab + }; + + static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(c); +@@ -607,7 +607,7 @@ int main(int argc, char *argv[]) { + Context context = {}; + + _cleanup_event_unref_ sd_event *event = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_set_target(LOG_TARGET_AUTO); +--- src/libsystemd/sd-bus/bus-util.h ++++ src/libsystemd/sd-bus/bus-util.h 2014-10-17 09:51:34.000000000 +0000 +@@ -137,11 +137,20 @@ typedef struct UnitInfo { + + int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u); + ++static inline void sd_bus_close_unrefp(sd_bus **bus) { ++ if (*bus) { ++ sd_bus_flush(*bus); ++ sd_bus_close(*bus); ++ sd_bus_unref(*bus); ++ } ++} ++ + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus*, sd_bus_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_message*, sd_bus_message_unref); + DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_creds*, sd_bus_creds_unref); + + #define _cleanup_bus_unref_ _cleanup_(sd_bus_unrefp) ++#define _cleanup_bus_close_unref_ _cleanup_(sd_bus_close_unrefp) + #define _cleanup_bus_message_unref_ _cleanup_(sd_bus_message_unrefp) + #define _cleanup_bus_creds_unref_ _cleanup_(sd_bus_creds_unrefp) + #define _cleanup_bus_error_free_ _cleanup_(sd_bus_error_free) +--- src/libsystemd/sd-bus/busctl.c ++++ src/libsystemd/sd-bus/busctl.c 2014-10-21 11:19:01.472337887 +0000 +@@ -484,7 +484,7 @@ static int busctl_main(sd_bus *bus, int + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_parse_environment(); +--- src/locale/localectl.c ++++ src/locale/localectl.c 2014-10-21 11:19:13.811947994 +0000 +@@ -796,7 +796,7 @@ static int localectl_main(sd_bus *bus, i + } + + int main(int argc, char*argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/locale/localed.c ++++ src/locale/localed.c 2014-10-21 11:19:28.415837424 +0000 +@@ -1076,7 +1076,7 @@ static const sd_bus_vtable locale_vtable + }; + + static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(c); +@@ -1116,7 +1116,7 @@ static int connect_bus(Context *c, sd_ev + int main(int argc, char *argv[]) { + Context context = {}; + _cleanup_event_unref_ sd_event *event = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_set_target(LOG_TARGET_AUTO); +--- src/login/inhibit.c ++++ src/login/inhibit.c 2014-10-21 11:19:44.470844885 +0000 +@@ -221,7 +221,7 @@ static int parse_argv(int argc, char *ar + + int main(int argc, char *argv[]) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_parse_environment(); +--- src/login/loginctl.c ++++ src/login/loginctl.c 2014-10-21 11:20:16.695837857 +0000 +@@ -1298,7 +1298,7 @@ static int loginctl_main(sd_bus *bus, in + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/login/pam-module.c ++++ src/login/pam-module.c 2014-10-21 10:48:20.000000000 +0000 +@@ -213,7 +213,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess + *seat = NULL, + *type = NULL, *class = NULL, + *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int session_fd = -1, existing, r; + bool debug = false, remote; + struct passwd *pw; +@@ -517,7 +517,7 @@ _public_ PAM_EXTERN int pam_sm_close_ses + int argc, const char **argv) { + + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + const void *existing = NULL; + const char *id; + int r; +--- src/machine/machinectl.c ++++ src/machine/machinectl.c 2014-10-21 11:20:45.747838104 +0000 +@@ -550,7 +550,7 @@ static int openpt_in_namespace(pid_t pid + static int login_machine(sd_bus *bus, char **args, unsigned n) { + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL, *reply2 = NULL, *reply3 = NULL; + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *container_bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *container_bus = NULL; + _cleanup_close_ int master = -1; + _cleanup_free_ char *getty = NULL; + const char *path, *pty, *p; +@@ -879,7 +879,7 @@ static int machinectl_main(sd_bus *bus, + } + + int main(int argc, char*argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c 2014-10-21 11:21:05.561523449 +0000 +@@ -1163,7 +1163,7 @@ static int drop_capabilities(void) { + + static int register_machine(pid_t pid) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + if (!arg_register) +@@ -1285,7 +1285,7 @@ static int register_machine(pid_t pid) { + static int terminate_machine(pid_t pid) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + const char *path; + int r; + +--- src/run/run.c ++++ src/run/run.c 2014-10-21 11:22:35.163838021 +0000 +@@ -462,7 +462,7 @@ static int start_transient_scope( + + int main(int argc, char* argv[]) { + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + _cleanup_free_ char *description = NULL, *command = NULL; + int r; + +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c 2014-10-22 09:36:33.399838318 +0000 +@@ -2601,7 +2601,7 @@ static int kill_unit(sd_bus *bus, char * + "ssi", *names, arg_kill_who, arg_signal); + if (q < 0) { + log_error("Failed to kill unit %s: %s", +- *names, bus_error_message(&error, r)); ++ *names, bus_error_message(&error, q)); + if (r == 0) + r = q; + } +@@ -6436,7 +6436,7 @@ static int runlevel_main(void) { + } + + int main(int argc, char*argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/timedate/timedatectl.c ++++ src/timedate/timedatectl.c 2014-10-21 11:23:06.107837988 +0000 +@@ -593,7 +593,7 @@ static int timedatectl_main(sd_bus *bus, + } + + int main(int argc, char *argv[]) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + setlocale(LC_ALL, ""); +--- src/timedate/timedated.c ++++ src/timedate/timedated.c 2014-10-21 11:23:26.047838675 +0000 +@@ -779,7 +779,7 @@ static const sd_bus_vtable timedate_vtab + }; + + static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + assert(c); +@@ -825,7 +825,7 @@ int main(int argc, char *argv[]) { + }; + + _cleanup_event_unref_ sd_event *event = NULL; +- _cleanup_bus_unref_ sd_bus *bus = NULL; ++ _cleanup_bus_close_unref_ sd_bus *bus = NULL; + int r; + + log_set_target(LOG_TARGET_AUTO); diff --git a/boot.udev b/boot.udev new file mode 100644 index 00000000..4fa0bd63 --- /dev/null +++ b/boot.udev @@ -0,0 +1,74 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: boot.udev +# Required-Start: +# Required-Stop: +# Should-Start: +# Should-Stop: +# Default-Start: B +# Default-Stop: +# Short-Description: manage /dev and kernel device-events +# Description: udevd daemon to manage /dev and kernel device events +### END INIT INFO + +. /etc/rc.status + +PATH="/sbin:/bin:/usr/sbin:/usr/bin" +DAEMON="@@SYSTEMD@@/systemd-udevd" +UDEVADM="@@BINDIR@@/udevadm" +WRITERULE="@@PREFIX@@/write_dev_root_rule" +udev_timeout=180 + +case "$1" in + start) + # create /dev/root symlink with dynamic rule + if [ -x ${WRITERULE} ]; then + ${WRITERULE} >/dev/null 2>&1 || true + fi + + # start udevd + echo -n "Starting udevd: " + ${DAEMON} --daemon + if [ $? -ne 0 ]; then + rc_status -v + rc_exit + fi + rc_status -v + + # trigger events for all devices + echo -n "Loading drivers, configuring devices: " + ${UDEVADM} trigger --type=subsystems --action=add + ${UDEVADM} trigger --type=devices --action=add + + # wait for events to finish + ${UDEVADM} settle --timeout=$udev_timeout + rc_status -v + ;; + stop) + echo -n "Stopping udevd: " + killproc ${DAEMON} + rc_status -v + ;; + restart) + echo -n "Restarting udevd: " + killproc ${DAEMON} + ${DAEMON} --daemon + rc_status -v + ;; + status) + echo -n "Checking for udevd: " + checkproc ${DAEMON} + rc_status -v + ;; + reload|force-reload) + echo -n "Reloading udevd: " + killproc -G -HUP ${DAEMON} + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart|status|reload|force-reload}" + exit 1 + ;; +esac +rc_exit diff --git a/disable-nss-myhostname-warning-bnc-783841.patch b/disable-nss-myhostname-warning-bnc-783841.patch new file mode 100644 index 00000000..c20aad94 --- /dev/null +++ b/disable-nss-myhostname-warning-bnc-783841.patch @@ -0,0 +1,18 @@ +From: Ludwig Nussel +Date: Tue, 12 Feb 2013 17:24:35 +0100 +Subject: disable nss-myhostname warning (bnc#783841) + +--- + src/hostname/hostnamed.c | 1 + + 1 file changed, 1 insertion(+) + +--- systemd-206.orig/src/hostname/hostnamed.c ++++ systemd-206/src/hostname/hostnamed.c +@@ -134,6 +134,7 @@ static int read_data(void) { + + static bool check_nss(void) { + void *dl; ++ return true; + + dl = dlopen("libnss_myhostname.so.2", RTLD_LAZY); + if (dl) { diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch index 77bed82d..3f6b0eb4 100644 --- a/ensure-shortname-is-set-as-hostname-bnc-820213.patch +++ b/ensure-shortname-is-set-as-hostname-bnc-820213.patch @@ -4,13 +4,11 @@ Subject: ensure shortname is set as hostname (bnc#820213) strip hostname so the domain part isn't set as part of the hostname --- - src/core/hostname-setup.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) + src/core/hostname-setup.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) -Index: systemd-218/src/core/hostname-setup.c -=================================================================== ---- systemd-218.orig/src/core/hostname-setup.c -+++ systemd-218/src/core/hostname-setup.c +--- systemd-206.orig/src/core/hostname-setup.c ++++ systemd-206/src/core/hostname-setup.c @@ -32,7 +32,7 @@ #include "fileio.h" @@ -20,13 +18,14 @@ Index: systemd-218/src/core/hostname-setup.c int r; assert(path); -@@ -49,6 +49,10 @@ static int read_and_strip_hostname(const +@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const return -ENOENT; } + /* strip any leftover of a domain name */ -+ if ((domain = strchr(s, '.')) != NULL) -+ *domain = '\0'; ++ if (domain = strchr(s, '.')) { ++ *domain = NULL; ++ } + *hn = s; return 0; diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch new file mode 100644 index 00000000..954c60ca --- /dev/null +++ b/fix-owner-of-var-log-btmp.patch @@ -0,0 +1,20 @@ +From: Frederic Crozat +Date: Tue, 20 Nov 2012 09:36:43 +0000 +Subject: fix owner of /var/log/btmp + +ensure btmp is owned only by root (bnc#777405). +--- + tmpfiles.d/systemd.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- systemd-206_git201308300826.orig/tmpfiles.d/systemd.conf ++++ systemd-206_git201308300826/tmpfiles.d/systemd.conf +@@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d + F! /run/utmp 0664 root utmp - + + f /var/log/wtmp 0664 root utmp - +-f /var/log/btmp 0600 root utmp - ++f /var/log/btmp 0600 root root - + + d /var/cache/man - - - 30d + diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index c4875197..b8fea652 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -3,17 +3,15 @@ Date: Thu, 23 Aug 2012 11:08:25 +0200 Subject: fix support for boot prefixed initscript (bnc#746506) --- - src/systemctl/systemctl.c | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) + src/systemctl/systemctl.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) -Index: systemd-218/src/systemctl/systemctl.c -=================================================================== ---- systemd-218.orig/src/systemctl/systemctl.c -+++ systemd-218/src/systemctl/systemctl.c -@@ -5202,8 +5202,26 @@ static int enable_sysv_units(const char - - p[strlen(p) - strlen(".service")] = 0; +--- systemd-206_git201308300826.orig/src/systemctl/systemctl.c ++++ systemd-206_git201308300826/src/systemctl/systemctl.c +@@ -4169,8 +4169,28 @@ static int enable_sysv_units(char **args + p[strlen(p) - sizeof(".service") + 1] = 0; found_sysv = access(p, F_OK) >= 0; + - if (!found_sysv) + if (!found_sysv) { +#ifdef HAVE_SYSV_COMPAT @@ -23,8 +21,10 @@ Index: systemd-218/src/systemctl/systemctl.c + asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else + asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -+ if (!p) -+ return -ENOMEM; ++ if (!p) { ++ r = log_oom(); ++ goto finish; ++ } + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; + @@ -36,5 +36,5 @@ Index: systemd-218/src/systemctl/systemctl.c +#endif + } - log_info("%s is not a native service, redirecting to /sbin/chkconfig.", name); - + /* Mark this entry, so that we don't try enabling it as native unit */ + args[f] = (char*) ""; diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch new file mode 100644 index 00000000..c7fa0726 --- /dev/null +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -0,0 +1,42 @@ +From: Frederic Crozat +Date: Tue, 22 Jan 2013 17:02:04 +0000 +Subject: handle SYSTEMCTL_OPTIONS environment variable + +(bnc#798620) +--- + src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +Index: systemd-208/src/systemctl/systemctl.c +=================================================================== +--- systemd-208.orig/src/systemctl/systemctl.c ++++ systemd-208/src/systemctl/systemctl.c +@@ -6115,6 +6115,28 @@ int main(int argc, char*argv[]) { + * ellipsized. */ + original_stdout_is_tty = isatty(STDOUT_FILENO); + ++ if (secure_getenv("SYSTEMCTL_OPTIONS") && ++ (!program_invocation_short_name || ++ (program_invocation_short_name && strstr(program_invocation_short_name, "systemctl")))) { ++ char **parsed_systemctl_options = strv_split_quoted(getenv("SYSTEMCTL_OPTIONS")); ++ ++ if (*parsed_systemctl_options && **parsed_systemctl_options) { ++ char **k,**a; ++ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); ++ new_argv[0] = strdup(argv[0]); ++ for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { ++ *k = strdup(*a); ++ } ++ for (a = argv+1; *a; k++, a++) { ++ *k = strdup(*a); ++ } ++ *k = NULL; ++ argv = new_argv; ++ argc = strv_length(new_argv); ++ strv_free (parsed_systemctl_options); ++ } ++ } ++ + r = parse_argv(argc, argv); + if (r <= 0) + goto finish; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index 52af3ee9..96213505 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -4,13 +4,13 @@ Subject: handle disable_caplock and compose_table and kbd_rate (bnc#746595) --- - src/vconsole/vconsole-setup.c | 151 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 148 insertions(+), 3 deletions(-) + src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 153 insertions(+), 3 deletions(-) -Index: systemd-218/src/vconsole/vconsole-setup.c +Index: systemd-210/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-218.orig/src/vconsole/vconsole-setup.c -+++ systemd-218/src/vconsole/vconsole-setup.c +--- systemd-210.orig/src/vconsole/vconsole-setup.c ++++ systemd-210/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" @@ -19,7 +19,7 @@ Index: systemd-218/src/vconsole/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -101,8 +102,8 @@ static int enable_utf8(int fd) { +@@ -99,8 +100,8 @@ static int enable_utf8(int fd) { return r; } @@ -30,7 +30,7 @@ Index: systemd-218/src/vconsole/vconsole-setup.c int i = 0; pid_t pid; -@@ -121,6 +122,8 @@ static int keymap_load(const char *vc, c +@@ -119,6 +120,8 @@ static int keymap_load(const char *vc, c args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,7 +39,7 @@ Index: systemd-218/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -236,11 +239,113 @@ static void font_copy_to_all_vcs(int fd) +@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) } } @@ -140,20 +140,25 @@ Index: systemd-218/src/vconsole/vconsole-setup.c + int main(int argc, char **argv) { const char *vc; - _cleanup_free_ char - *vc_keymap = NULL, *vc_keymap_toggle = NULL, - *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; + char *vc_keymap = NULL; +@@ -219,8 +317,16 @@ int main(int argc, char **argv) { + char *vc_font = NULL; + char *vc_font_map = NULL; + char *vc_font_unimap = NULL; +#ifdef HAVE_SYSV_COMPAT -+ _cleanup_free_ char -+ *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, -+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; ++ char *vc_kbd_delay = NULL; ++ char *vc_kbd_rate = NULL; ++ char *vc_kbd_disable_caps_lock = NULL; ++ char *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; +#endif -+ bool disable_capslock = false; - _cleanup_close_ int fd = -1; + int fd = -1; bool utf8; ++ bool disable_capslock = false; pid_t font_pid = 0, keymap_pid = 0; -@@ -273,6 +378,28 @@ int main(int argc, char **argv) { + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -251,6 +357,28 @@ int main(int argc, char **argv) { utf8 = is_locale_utf8(); @@ -182,37 +187,45 @@ Index: systemd-218/src/vconsole/vconsole-setup.c r = parse_env_file("/etc/vconsole.conf", NEWLINE, "KEYMAP", &vc_keymap, "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -312,14 +439,32 @@ int main(int argc, char **argv) { - if (font_pid > 0) - wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true); +@@ -282,7 +410,12 @@ int main(int argc, char **argv) { + disable_utf8(fd); -- r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid); -+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); - if (r < 0) { - log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); - return EXIT_FAILURE; - } + r = EXIT_FAILURE; +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && ++ ++ if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +#ifdef HAVE_SYSV_COMPAT -+ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); -+ if (r < 0) { -+ log_error_errno(r, "Failed to start " KBD_LOADKEYS " loading the compose table: %m"); -+ return EXIT_FAILURE; -+ } -+ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); -+ if (r < 0) { -+ log_error_errno(r, "Failed to start kbdrate: %m"); -+ return EXIT_FAILURE; -+ } ++ load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && ++ set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && +#endif + font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) + r = EXIT_SUCCESS; +@@ -290,6 +423,14 @@ finish: if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true); + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); + +#ifdef HAVE_SYSV_COMPAT + if (compose_table_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid, true); ++ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); ++ + if (kbd_rate_pid > 0) -+ wait_for_terminate_and_warn("/usr/bin/kbdrate", kbd_rate_pid, true); ++ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); ++#endif ++ + if (font_pid > 0) { + wait_for_terminate_and_warn(KBD_SETFONT, font_pid); + if (font_copy) +@@ -300,6 +441,12 @@ finish: + free(vc_font); + free(vc_font_map); + free(vc_font_unimap); ++#ifdef HAVE_SYSV_COMPAT ++ free(vc_kbd_delay); ++ free(vc_kbd_rate); ++ free(vc_kbd_disable_caps_lock); ++ free(vc_compose_table); +#endif - /* Only copy the font when we started setfont successfully */ - if (font_copy && font_pid > 0) + if (fd >= 0) + close_nointr_nofail(fd); diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch new file mode 100644 index 00000000..57a74f0d --- /dev/null +++ b/handle-etc-HOSTNAME.patch @@ -0,0 +1,77 @@ +From: Frederic Crozat +Date: Fri, 15 Feb 2013 16:04:39 +0000 +Subject: handle /etc/HOSTNAME + +(bnc#803653) +--- + src/core/hostname-setup.c | 22 +++++++++++++++++----- + src/hostname/hostnamed.c | 12 +++++++++++- + 2 files changed, 28 insertions(+), 6 deletions(-) + +--- systemd-206/src/core/hostname-setup.c ++++ systemd-206/src/core/hostname-setup.c +@@ -61,12 +61,24 @@ int hostname_setup(void) { + + r = read_and_strip_hostname("/etc/hostname", &b); + if (r < 0) { +- if (r == -ENOENT) +- enoent = true; +- else +- log_warning("Failed to read configured hostname: %s", strerror(-r)); ++ if (r == -ENOENT) { ++ /* use SUSE fallback */ ++ r = read_and_strip_hostname("/etc/HOSTNAME", &b); ++ if (r < 0) { ++ if (r == -ENOENT) ++ enoent = true; ++ else ++ log_warning("Failed to read configured hostname: %s", strerror(-r)); ++ hn = NULL; ++ } ++ else ++ hn = b; + +- hn = NULL; ++ } ++ else { ++ log_warning("Failed to read configured hostname: %s", strerror(-r)); ++ hn = NULL; ++ } + } else + hn = b; + +--- systemd-209/src/hostname/hostnamed.c ++++ systemd-209/src/hostname/hostnamed.c 2014-02-28 11:36:30.594735241 +0000 +@@ -89,6 +89,10 @@ static int context_read_data(Context *c) + if (r < 0 && r != -ENOENT) + return r; + ++ r = read_one_line_file("/etc/HOSTNAME", &c->data[PROP_STATIC_HOSTNAME]); ++ if (r < 0 && r != -ENOENT) ++ return r; ++ + return 0; + } + +@@ -246,6 +250,7 @@ static int context_write_data_hostname(C + } + + static int context_write_data_static_hostname(Context *c) { ++ int r; + + assert(c); + +@@ -256,7 +261,12 @@ static int context_write_data_static_hos + + return 0; + } +- return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); ++ ++ r = write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); ++ if (!r) { ++ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); ++ } ++ return r; + } + + static int context_write_data_other(Context *c) { diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index a9f6924a..4278436c 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,19 +6,105 @@ Authors: Stanislav Brabec Cristian Rodríguez ---- - Makefile.am | 13 ++++++++++ - rules/73-seat-numlock.rules | 8 ++++++ - src/login/numlock-on.c | 34 +++++++++++++++++++++++++++ - src/vconsole/vconsole-setup.c | 40 ++++++++++++++++++++++++++++++-- - units/systemd-vconsole-setup.service.in | 2 - - 5 files changed, 94 insertions(+), 3 deletions(-) - -Index: systemd-218/Makefile.am +Index: systemd-210/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -3715,6 +3715,19 @@ dist_udevrules_DATA += \ +--- systemd-210.orig/src/vconsole/vconsole-setup.c ++++ systemd-210/src/vconsole/vconsole-setup.c +@@ -42,6 +42,10 @@ + #include "fileio.h" + #include "strv.h" + ++#define BIOS_DATA_AREA 0x400 ++#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 ++#define BDA_KSF4_NUMLOCK_MASK 0x02 ++ + static bool is_vconsole(int fd) { + unsigned char data[1]; + +@@ -321,12 +325,14 @@ int main(int argc, char **argv) { + char *vc_kbd_delay = NULL; + char *vc_kbd_rate = NULL; + char *vc_kbd_disable_caps_lock = NULL; ++ char *vc_kbd_numlock = NULL; + char *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; + #endif + int fd = -1; + bool utf8; + bool disable_capslock = false; ++ bool numlock = false; + pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; + int r = EXIT_FAILURE; +@@ -363,6 +369,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -377,6 +384,36 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++#if defined(__i386__) || defined(__x86_64__) ++ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { ++ int _cleanup_close_ fdmem; ++ char c; ++ ++ fdmem = open ("/dev/mem", O_RDONLY); ++ ++ if(fdmem < 0) { ++ r = EXIT_FAILURE; ++ log_error("Failed to open /dev/mem: %m"); ++ goto finish; ++ } ++ ++ if(lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { ++ r = EXIT_FAILURE; ++ log_error("Failed to seek /dev/mem: %m"); ++ goto finish; ++ } ++ ++ if(read (fdmem, &c, sizeof(char)) == -1) { ++ r = EXIT_FAILURE; ++ log_error("Failed to read /dev/mem: %m"); ++ goto finish; ++ } ++ ++ if (c & BDA_KSF4_NUMLOCK_MASK) ++ numlock = true; ++ } else ++#endif ++ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); + #endif + + r = parse_env_file("/etc/vconsole.conf", NEWLINE, +@@ -422,6 +459,10 @@ int main(int argc, char **argv) { + finish: + if (keymap_pid > 0) + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + + #ifdef HAVE_SYSV_COMPAT + if (compose_table_pid > 0) +@@ -441,6 +482,7 @@ finish: + free(vc_font); + free(vc_font_map); + free(vc_font_unimap); ++ free(vc_kbd_numlock); + #ifdef HAVE_SYSV_COMPAT + free(vc_kbd_delay); + free(vc_kbd_rate); +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2847,6 +2847,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -38,10 +124,10 @@ Index: systemd-218/Makefile.am if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -Index: systemd-218/rules/73-seat-numlock.rules +Index: systemd-210/rules/73-seat-numlock.rules =================================================================== --- /dev/null -+++ systemd-218/rules/73-seat-numlock.rules ++++ systemd-210/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -51,10 +137,10 @@ Index: systemd-218/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-218/src/login/numlock-on.c +Index: systemd-210/src/login/numlock-on.c =================================================================== --- /dev/null -+++ systemd-218/src/login/numlock-on.c ++++ systemd-210/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -90,95 +176,14 @@ Index: systemd-218/src/login/numlock-on.c + + exit(0); +} -Index: systemd-218/src/vconsole/vconsole-setup.c +Index: systemd-210/units/systemd-vconsole-setup.service.in =================================================================== ---- systemd-218.orig/src/vconsole/vconsole-setup.c -+++ systemd-218/src/vconsole/vconsole-setup.c -@@ -42,6 +42,10 @@ - #include "fileio.h" - #include "strv.h" - -+#define BIOS_DATA_AREA 0x400 -+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 -+#define BDA_KSF4_NUMLOCK_MASK 0x02 -+ - static bool is_vconsole(int fd) { - unsigned char data[1]; - -@@ -342,10 +346,11 @@ int main(int argc, char **argv) { - #ifdef HAVE_SYSV_COMPAT - _cleanup_free_ char - *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, -- *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; -+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL, -+ *vc_kbd_numlock = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; - #endif -- bool disable_capslock = false; -+ bool disable_capslock = false, numlock = false; - _cleanup_close_ int fd = -1; - bool utf8; - pid_t font_pid = 0, keymap_pid = 0; -@@ -384,6 +389,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -398,6 +404,32 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); - - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+#if defined(__i386__) || defined(__x86_64__) -+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { -+ int _cleanup_close_ fdmem; -+ char c; -+ -+ fdmem = open ("/dev/mem", O_RDONLY); -+ if (fdmem < 0) { -+ log_error("Failed to open /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } -+ -+ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { -+ log_error("Failed to seek /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } -+ -+ if (read (fdmem, &c, sizeof(char)) == -1) { -+ log_error("Failed to read /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } -+ -+ if (c & BDA_KSF4_NUMLOCK_MASK) -+ numlock = true; -+ } else -+#endif -+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); - #endif - - r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -444,6 +476,10 @@ int main(int argc, char **argv) { - log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); - return EXIT_FAILURE; - } -+ if (numlock) -+ touch("/run/numlock-on"); -+ else -+ unlink("/run/numlock-on"); - #ifdef HAVE_SYSV_COMPAT - r = load_compose_table(vc, vc_compose_table, &compose_table_pid); - if (r < 0) { -Index: systemd-218/units/systemd-vconsole-setup.service.in -=================================================================== ---- systemd-218.orig/units/systemd-vconsole-setup.service.in -+++ systemd-218/units/systemd-vconsole-setup.service.in -@@ -10,7 +10,7 @@ Description=Setup Virtual Console - Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) +--- systemd-210.orig/units/systemd-vconsole-setup.service.in ++++ systemd-210/units/systemd-vconsole-setup.service.in +@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup DefaultDependencies=no Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service -Before=sysinit.target shutdown.target +Before=sysinit.target shutdown.target systemd-udev-trigger.service ConditionPathExists=/dev/tty0 diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index a441dd59..d7bea39c 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -4,16 +4,16 @@ Subject: handle root_uses_lang value in /etc/sysconfig/language handle ROOT_USES_LANG=ctype (bnc#792182). --- - src/core/locale-setup.c | 26 ++++++++++++++++++++++++++ - 1 file changed, 26 insertions(+) + src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) -Index: systemd-218/src/core/locale-setup.c +Index: systemd-208/src/core/locale-setup.c =================================================================== ---- systemd-218.orig/src/core/locale-setup.c -+++ systemd-218/src/core/locale-setup.c -@@ -36,6 +36,11 @@ int locale_setup(char ***environment) { +--- systemd-208.orig/src/core/locale-setup.c ++++ systemd-208/src/core/locale-setup.c +@@ -73,6 +73,11 @@ int locale_setup(char ***environment) { char **add; - char *variables[_VARIABLE_LC_MAX] = {}; + char *variables[_VARIABLE_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT + char _cleanup_free_ *root_uses_lang; @@ -23,9 +23,9 @@ Index: systemd-218/src/core/locale-setup.c if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -82,6 +87,27 @@ int locale_setup(char ***environment) { +@@ -119,6 +124,27 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) - log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); + log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); } +#ifdef HAVE_SYSV_COMPAT + if (r <= 0 && @@ -50,4 +50,4 @@ Index: systemd-218/src/core/locale-setup.c +#endif add = NULL; - for (i = 0; i < _VARIABLE_LC_MAX; i++) { + for (i = 0; i < _VARIABLE_MAX; i++) { diff --git a/insserv-generator.patch b/insserv-generator.patch index 1e1cdf4e..5525222a 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -6,30 +6,29 @@ Subject: [PATCH] insserv.conf generator parse /etc/insserv.conf.dd content and /etc/insserv.conf and generate systemd unit drop-in files to add dependencies --- - Makefile.am | 9 - src/insserv-generator/Makefile | 28 ++ - src/insserv-generator/insserv-generator.c | 312 ++++++++++++++++++++++++++++++ - 3 files changed, 349 insertions(+) + Makefile.am | 9 + + src/insserv-generator/Makefile | 28 +++ + src/insserv-generator/insserv-generator.c | 309 ++++++++++++++++++++++++++++++ + 3 files changed, 346 insertions(+) create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c ---- systemd-219.orig/Makefile.am -+++ systemd-219/Makefile.am -@@ -621,7 +621,8 @@ nodist_systemunit_DATA += \ +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -343,6 +343,7 @@ rootlibexec_PROGRAMS = \ + systemd-socket-proxyd - systemgenerator_PROGRAMS += \ - systemd-sysv-generator \ -- systemd-rc-local-generator -+ systemd-rc-local-generator \ -+ systemd-insserv-generator - endif - - EXTRA_DIST += \ -@@ -2565,6 +2566,14 @@ systemd_rc_local_generator_LDADD = \ - libsystemd-label.la \ + systemgenerator_PROGRAMS = \ ++ systemd-insserv-generator \ + systemd-getty-generator \ + systemd-fstab-generator \ + systemd-system-update-generator +@@ -1728,6 +1729,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la -+#------------------------------------------------------------------------------- + # ------------------------------------------------------------------------------ +systemd_insserv_generator_SOURCES = \ + src/insserv-generator/insserv-generator.c + @@ -37,11 +36,14 @@ systemd unit drop-in files to add dependencies + libsystemd-label.la \ + libsystemd-shared.la + - # ------------------------------------------------------------------------------ - systemd_remount_fs_SOURCES = \ - src/remount-fs/remount-fs.c \ ++# ------------------------------------------------------------------------------ + systemd_getty_generator_SOURCES = \ + src/getty-generator/getty-generator.c + +Index: systemd-210/src/insserv-generator/Makefile +=================================================================== --- /dev/null -+++ systemd-219/src/insserv-generator/Makefile ++++ systemd-210/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -71,8 +73,10 @@ systemd unit drop-in files to add dependencies + $(MAKE) -C .. clean + +.PHONY: all clean +Index: systemd-210/src/insserv-generator/insserv-generator.c +=================================================================== --- /dev/null -+++ systemd-219/src/insserv-generator/insserv-generator.c ++++ systemd-210/src/insserv-generator/insserv-generator.c @@ -0,0 +1,312 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -350,7 +354,7 @@ systemd unit drop-in files to add dependencies + + while ((de = readdir(d))) { + char *path = NULL; -+ if (hidden_file(de->d_name)) ++ if (ignore_file(de->d_name)) + continue; + + path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL); diff --git a/journald-advice-about-use-of-memory.patch b/journald-advice-about-use-of-memory.patch index 4caf994f..008a72ef 100644 --- a/journald-advice-about-use-of-memory.patch +++ b/journald-advice-about-use-of-memory.patch @@ -1,135 +1,143 @@ -From: werner@suse.de -Upstream: marked as openSUSE-specific fix originally, but may well - worth be to be sent upstream. - -Original description: - (none) - -Notes [jengelh@inai.de]: -MAP_NONBLOCK is documented (mmap(2) in man-pages-3.69+) to render -MAP_POPULATE ineffective. Why do we have it? -What is the rationale for MAP_STACK? --- - src/journal/catalog.c | 12 +++++++++++- - src/journal/journal-authenticate.c | 7 +++++-- - src/journal/journald-kmsg.c | 3 ++- - src/journal/mmap-cache.c | 16 +++++++++++++++- - 4 files changed, 33 insertions(+), 5 deletions(-) + src/journal/catalog.c | 21 +++++++++++++++++++-- + src/journal/journal-authenticate.c | 4 ++-- + src/journal/journal-file.c | 2 +- + src/journal/journald-kmsg.c | 2 +- + src/journal/mmap-cache.c | 24 ++++++++++++++++++++++-- + 5 files changed, 45 insertions(+), 8 deletions(-) -Index: systemd/src/journal/catalog.c -=================================================================== ---- systemd.orig/src/journal/catalog.c -+++ systemd/src/journal/catalog.c -@@ -470,6 +470,10 @@ finish: +--- src/journal/catalog.c ++++ src/journal/catalog.c 2014-10-24 11:44:59.079838065 +0000 +@@ -472,9 +472,19 @@ finish: static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) { const CatalogHeader *h; -+ static const unsigned int advice[] = -+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; -+ unsigned int n; -+ size_t psize; - int fd; +- int fd; ++ static const struct { ++ const int index; ++ int advise; ++ } advises[] = { ++ {0,MADV_WILLNEED}, ++ {1,MADV_SEQUENTIAL}, ++ {2,MADV_DONTDUMP}, ++ {3,MADV_DONTFORK} ++ }; ++ int n, fd; void *p; struct stat st; -@@ -492,12 +496,18 @@ static int open_mmap(const char *databas ++ size_t psize; + + assert(_fd); + assert(_st); +@@ -494,12 +504,19 @@ static int open_mmap(const char *databas return -EINVAL; } - p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0); + psize = PAGE_ALIGN(st.st_size); -+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED | MAP_POPULATE | -+ MAP_NONBLOCK, fd, 0); ++ p = mmap(NULL, psize, PROT_READ, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, 0); if (p == MAP_FAILED) { - safe_close(fd); + close_nointr_nofail(fd); return -errno; } -+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) -+ if (madvise(p, psize, advice[n]) < 0) ++ for (n=0; n < sizeof(advises)/sizeof(advises[0]); n++) { ++ int r = madvise(p, psize, advises[n].advise); ++ if (r < 0) + log_warning("Failed to give advice about use of memory: %m"); ++ } + h = p; if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 || le64toh(h->header_size) < sizeof(CatalogHeader) || -Index: systemd/src/journal/journal-authenticate.c -=================================================================== ---- systemd.orig/src/journal/journal-authenticate.c -+++ systemd/src/journal/journal-authenticate.c -@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f +--- src/journal/journal-authenticate.c ++++ src/journal/journal-authenticate.c 2014-10-24 07:41:09.271837523 +0000 +@@ -355,7 +355,7 @@ int journal_file_fss_load(JournalFile *f goto finish; } - m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0); -+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, -+ MAP_SHARED | MAP_STACK, fd, 0); ++ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED|MAP_STACK, fd, 0); if (m == MAP_FAILED) { m = NULL; r = -errno; -@@ -399,7 +400,9 @@ int journal_file_fss_load(JournalFile *f +@@ -399,7 +399,7 @@ int journal_file_fss_load(JournalFile *f goto finish; } - f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), -+ PROT_READ | PROT_WRITE, MAP_SHARED | MAP_STACK, -+ fd, 0); ++ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); if (f->fss_file == MAP_FAILED) { f->fss_file = NULL; r = -errno; -Index: systemd/src/journal/journald-kmsg.c -=================================================================== ---- systemd.orig/src/journal/journald-kmsg.c -+++ systemd/src/journal/journald-kmsg.c -@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s) +--- src/journal/journal-file.c ++++ src/journal/journal-file.c 2014-10-24 07:39:25.603837720 +0000 +@@ -2554,7 +2554,7 @@ int journal_file_open( + goto fail; + } + +- f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED, f->fd, 0); ++ f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED|MAP_STACK, f->fd, 0); + if (f->header == MAP_FAILED) { + f->header = NULL; + r = -errno; +--- src/journal/journald-kmsg.c ++++ src/journal/journald-kmsg.c 2014-10-24 07:38:01.967837989 +0000 +@@ -473,7 +473,7 @@ int server_open_kernel_seqnum(Server *s) return 0; } - p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ p = mmap(NULL, sizeof(uint64_t), PROT_READ | PROT_WRITE, -+ MAP_SHARED | MAP_STACK, fd, 0); ++ p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); if (p == MAP_FAILED) { - log_error_errno(errno, "Failed to map sequential number file, ignoring: %m"); - return 0; -Index: systemd/src/journal/mmap-cache.c -=================================================================== ---- systemd.orig/src/journal/mmap-cache.c -+++ systemd/src/journal/mmap-cache.c -@@ -467,11 +467,14 @@ static int add_mmap( + log_error("Failed to map sequential number file, ignoring: %m"); + close_nointr_nofail(fd); +--- src/journal/mmap-cache.c ++++ src/journal/mmap-cache.c 2014-10-24 11:16:47.759837744 +0000 +@@ -439,12 +439,21 @@ static int add_mmap( struct stat *st, void **ret) { -+ static const unsigned int advice[] = -+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; ++ static const struct { ++ const int index; ++ int vise; ++ } ad[] = { ++ {0, MADV_WILLNEED}, ++ {1, MADV_SEQUENTIAL}, ++ {2, MADV_DONTDUMP}, ++ {3, MADV_DONTFORK} ++ }; uint64_t woffset, wsize; Context *c; FileDescriptor *f; Window *w; void *d; -+ unsigned int n; - int r; +- int r; ++ int n, r; assert(m); -@@ -510,7 +513,8 @@ static int add_mmap( + assert(m->n_ref > 0); +@@ -481,7 +490,7 @@ static int add_mmap( } for (;;) { - d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset); -+ d = mmap(NULL, wsize, prot, MAP_SHARED | MAP_POPULATE | -+ MAP_NONBLOCK, fd, woffset); ++ d = mmap(NULL, wsize, prot, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, woffset); if (d != MAP_FAILED) break; if (errno != ENOMEM) -@@ -523,6 +527,16 @@ static int add_mmap( +@@ -494,6 +503,17 @@ static int add_mmap( return -ENOMEM; } -+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) { -+ if (advice[n] == MADV_DONTFORK) { ++ for (n=0; n < sizeof(ad)/sizeof(ad[0]); n++) { ++ if (ad[n].vise == MADV_DONTFORK) { + int flags = fcntl(fd, F_GETFD); + if (flags < 0 || !(flags & FD_CLOEXEC)) + continue; + } -+ if (madvise(d, wsize, advice[n]) < 0) ++ r = madvise(d, wsize, ad[n].vise); ++ if (r < 0) + log_warning("Failed to give advice about use of memory: %m"); + } + diff --git a/kbd-model-map.patch b/kbd-model-map.patch index b7327892..743a67b2 100644 --- a/kbd-model-map.patch +++ b/kbd-model-map.patch @@ -1,18 +1,13 @@ -From: werner@suse.de -Date: Tue Jan 20 11:33:59 UTC 2015 - --- src/locale/kbd-model-map | 13 +++++++++++++ 1 file changed, 13 insertions(+) -Index: systemd/src/locale/kbd-model-map -=================================================================== ---- systemd.orig/src/locale/kbd-model-map -+++ systemd/src/locale/kbd-model-map -@@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a - lt.l4 lt pc105 - terminate:ctrl_alt_bksp +--- src/locale/kbd-model-map ++++ src/locale/kbd-model-map 2015-01-20 11:31:38.357518811 +0000 +@@ -63,3 +63,16 @@ by by,us pc105 - terminate:ctrl_alt_ + il il pc105 - terminate:ctrl_alt_bksp + kazakh kz,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll lt lt pc105 - terminate:ctrl_alt_bksp - khmer kh,us pc105 - terminate:ctrl_alt_bksp +# Additional layouts offered by YaST +Pl02 pl pc105 - terminate:ctrl_alt_bksp +arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle diff --git a/let-linker-find-libudev-for-libdevmapper.patch b/let-linker-find-libudev-for-libdevmapper.patch index 4879c708..e2bbdda1 100644 --- a/let-linker-find-libudev-for-libdevmapper.patch +++ b/let-linker-find-libudev-for-libdevmapper.patch @@ -1,13 +1,6 @@ ---- - Makefile.am | 4 ++++ - configure.ac | 4 ---- - 2 files changed, 4 insertions(+), 4 deletions(-) - -Index: systemd/Makefile.am -=================================================================== ---- systemd.orig/Makefile.am -+++ systemd/Makefile.am -@@ -4789,6 +4789,10 @@ systemd_cryptsetup_CFLAGS = \ +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-03-13 08:54:36.010736086 +0000 +@@ -3691,6 +3691,10 @@ systemd_cryptsetup_CFLAGS = \ $(AM_CFLAGS) \ $(LIBCRYPTSETUP_CFLAGS) @@ -18,18 +11,27 @@ Index: systemd/Makefile.am systemd_cryptsetup_LDADD = \ libsystemd-label.la \ libudev-internal.la \ -Index: systemd/configure.ac -=================================================================== ---- systemd.orig/configure.ac -+++ systemd/configure.ac -@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*], - -Wno-gnu-variable-sized-type-not-at-end \ - ])]) +--- systemd-210/Makefile.in ++++ systemd-210/Makefile.in 2014-03-13 09:19:48.950238725 +0000 +@@ -8964,7 +8964,7 @@ src/cryptsetup/systemd_cryptsetup-crypts + systemd-cryptsetup$(EXEEXT): $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_DEPENDENCIES) $(EXTRA_systemd_cryptsetup_DEPENDENCIES) + @rm -f systemd-cryptsetup$(EXEEXT) +- $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDADD) $(LIBS) ++ $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDFLAGS) $(systemd_cryptsetup_LDADD) $(LIBS) + src/cryptsetup/cryptsetup-generator.$(OBJEXT): \ + src/cryptsetup/$(am__dirstamp) \ + src/cryptsetup/$(DEPDIR)/$(am__dirstamp) +--- systemd-210/configure.ac ++++ systemd-210/configure.ac 2014-03-13 13:46:24.394235954 +0000 +@@ -156,10 +156,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CF + -fdata-sections \ + -fstack-protector \ + --param=ssp-buffer-size=4]) -AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -- -flto -ffat-lto-objects])], +- -flto])], - [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) - AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") + AC_SUBST([OUR_CFLAGS], "$with_cflags $address_sanitizer_cflags") AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], diff --git a/localfs.service b/localfs.service new file mode 100644 index 00000000..da3facec --- /dev/null +++ b/localfs.service @@ -0,0 +1,8 @@ +[Unit] +Description=Shadow /etc/init.d/boot.localfs +DefaultDependencies=no +After=local-fs.target + +[Service] +RemainAfterExit=true +ExecStart=/bin/true diff --git a/log-target-null-instead-kmsg.patch b/log-target-null-instead-kmsg.patch new file mode 100644 index 00000000..4e715385 --- /dev/null +++ b/log-target-null-instead-kmsg.patch @@ -0,0 +1,116 @@ +--- + src/journal/journald-kmsg.c | 16 +++++++++++++++- + src/libudev/libudev-util.c | 16 +++++++++++++++- + src/shared/log.c | 16 +++++++++++++++- + src/shared/util.c | 6 +++++- + 4 files changed, 50 insertions(+), 4 deletions(-) + +Index: systemd-210/src/journal/journald-kmsg.c +=================================================================== +--- systemd-210.orig/src/journal/journald-kmsg.c ++++ systemd-210/src/journal/journald-kmsg.c +@@ -391,12 +391,24 @@ static int dispatch_dev_kmsg(sd_event_so + return server_read_dev_kmsg(s); + } + ++static int parse_proc_cmdline_word(const char *word) { ++ if (streq(word, "systemd.log_target=null")) ++ return -115; ++ ++ return 0; ++} ++ + int server_open_dev_kmsg(Server *s) { + int r; + + assert(s); + +- s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { ++ s->dev_kmsg_fd = open("/dev/null", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ } else { ++ s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); ++ } ++ + if (s->dev_kmsg_fd < 0) { + log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, + "Failed to open /dev/kmsg, ignoring: %m"); +Index: systemd-210/src/libudev/libudev-util.c +=================================================================== +--- systemd-210.orig/src/libudev/libudev-util.c ++++ systemd-210/src/libudev/libudev-util.c +@@ -416,6 +416,13 @@ uint64_t util_string_bloom64(const char + return bits; + } + ++static int parse_proc_cmdline_word(const char *word) { ++ if (streq(word, "systemd.log_target=null")) ++ return -115; ++ ++ return 0; ++} ++ + ssize_t print_kmsg(const char *fmt, ...) + { + _cleanup_close_ int fd = -1; +@@ -424,7 +431,12 @@ ssize_t print_kmsg(const char *fmt, ...) + ssize_t len; + ssize_t ret; + +- fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ 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; + +Index: systemd-210/src/shared/log.c +=================================================================== +--- systemd-210.orig/src/shared/log.c ++++ systemd-210/src/shared/log.c +@@ -92,12 +92,24 @@ void log_close_kmsg(void) { + kmsg_fd = -1; + } + ++static int parse_proc_cmdline_word(const char *word) { ++ if (streq(word, "systemd.log_target=null")) ++ return -115; ++ ++ return 0; ++} ++ + static int log_open_kmsg(void) { + + if (kmsg_fd >= 0) + return 0; + +- kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { ++ kmsg_fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ } else { ++ kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); ++ } ++ + if (kmsg_fd < 0) + return -errno; + +Index: systemd-210/src/shared/util.c +=================================================================== +--- systemd-210.orig/src/shared/util.c ++++ systemd-210/src/shared/util.c +@@ -6069,7 +6069,11 @@ int parse_proc_cmdline(int (*parse_word) + + r = parse_word(word); + if (r < 0) { +- log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); ++ if (r == -115) { ++ log_error("Warning: %s set, redirecting messages to /dev/null.", word); ++ } else { ++ log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); ++ } + return r; + } + } diff --git a/macros.systemd.upstream b/macros.systemd.upstream index 8c2e84f6..323d1d48 100644 --- a/macros.systemd.upstream +++ b/macros.systemd.upstream @@ -26,9 +26,7 @@ %_udevrulesdir @udevrulesdir@ %_journalcatalogdir @catalogdir@ %_tmpfilesdir @tmpfilesdir@ -%_sysusersdir @sysusersdir@ %_sysctldir @sysctldir@ -%_binfmtdir @binfmtdir@ %systemd_requires \ Requires(post): systemd \ @@ -39,71 +37,42 @@ Requires(postun): systemd \ %systemd_post() \ if [ $1 -eq 1 ] ; then \ # Initial installation \ - systemctl preset %{?*} >/dev/null 2>&1 || : \ + @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} -%systemd_user_post() %systemd_post --user --global %{?*} - %systemd_preun() \ if [ $1 -eq 0 ] ; then \ # Package removal, not upgrade \ - systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - systemctl stop %{?*} > /dev/null 2>&1 || : \ -fi \ -%{nil} - -%systemd_user_preun() \ -if [ $1 -eq 0 ] ; then \ - # Package removal, not upgrade \ - systemctl --no-reload --user --global disable %{?*} > /dev/null 2>&1 || : \ + @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} %systemd_postun() \ -systemctl daemon-reload >/dev/null 2>&1 || : \ +@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ %{nil} -%systemd_user_postun() %{nil} - %systemd_postun_with_restart() \ -systemctl daemon-reload >/dev/null 2>&1 || : \ +@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ if [ $1 -ge 1 ] ; then \ # Package upgrade, not uninstall \ - systemctl try-restart %{?*} >/dev/null 2>&1 || : \ + @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} -%systemd_user_postun_with_restart() %{nil} - %udev_hwdb_update() \ -udevadm hwdb --update >/dev/null 2>&1 || : \ +@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \ %{nil} %udev_rules_update() \ -udevadm control --reload >/dev/null 2>&1 || : \ +@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \ %{nil} %journal_catalog_update() \ -journalctl --update-catalog >/dev/null 2>&1 || : \ +@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \ %{nil} %tmpfiles_create() \ -systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ -%{nil} - -%sysusers_create() \ -systemd-sysusers %{?*} >/dev/null 2>&1 || : \ -%{nil} - -%sysusers_create_inline() \ -echo %{?*} | systemd-sysusers - >/dev/null 2>&1 || : \ -%{nil} - -%sysctl_apply() \ -@rootlibexecdir@/systemd-sysctl %{?*} >/dev/null 2>&1 || : \ -%{nil} - -%binfmt_apply() \ -@rootlibexecdir@/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ +@rootbindir@/systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ %{nil} diff --git a/make-emergency.service-conflict-with-syslog.socket.patch b/make-emergency.service-conflict-with-syslog.socket.patch index d5814921..63e513cc 100644 --- a/make-emergency.service-conflict-with-syslog.socket.patch +++ b/make-emergency.service-conflict-with-syslog.socket.patch @@ -7,19 +7,16 @@ As a workaround explicitly stop syslog.socket when entering emergency.service. Reference: bnc#852232 ---- - units/emergency.service.in | 1 + - 1 file changed, 1 insertion(+) - -Index: systemd-218/units/emergency.service.in +Index: systemd-208/units/emergency.service.in =================================================================== ---- systemd-218.orig/units/emergency.service.in -+++ systemd-218/units/emergency.service.in -@@ -11,6 +11,7 @@ Documentation=man:sulogin(8) +--- systemd-208/units/emergency.service.in ++++ systemd-208/units/emergency.service.in +@@ -9,7 +9,7 @@ + Description=Emergency Shell + Documentation=man:sulogin(8) DefaultDependencies=no - Conflicts=shutdown.target - Conflicts=rescue.service -+Conflicts=syslog.socket +-Conflicts=shutdown.target ++Conflicts=shutdown.target syslog.socket Before=shutdown.target [Service] diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch new file mode 100644 index 00000000..4f557c54 --- /dev/null +++ b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch @@ -0,0 +1,64 @@ +From: Frederic Crozat +Date: Wed, 12 Oct 2011 15:18:29 +0200 +Subject: module-load: handle SUSE /etc/sysconfig/kernel module list + +--- + src/modules-load/modules-load.c | 27 ++++++++++++++++++++++++++- + units/systemd-modules-load.service.in | 1 + + 2 files changed, 27 insertions(+), 1 deletion(-) + +--- systemd-206_git201308300826.orig/src/modules-load/modules-load.c ++++ systemd-206_git201308300826/src/modules-load/modules-load.c +@@ -262,6 +262,9 @@ static int parse_argv(int argc, char *ar + int main(int argc, char *argv[]) { + int r, k; + struct kmod_ctx *ctx; ++#ifdef HAVE_SYSV_COMPAT ++ _cleanup_free_ char *modules_on_boot = NULL; ++#endif + + r = parse_argv(argc, argv); + if (r <= 0) +@@ -318,7 +321,31 @@ int main(int argc, char *argv[]) { + r = k; + } + } +- ++#ifdef HAVE_SYSV_COMPAT ++ log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT"); ++ if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, ++ "MODULES_LOADED_ON_BOOT", &modules_on_boot, ++ NULL)) < 0) { ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); ++ else ++ r = EXIT_SUCCESS; ++ } else ++ r = EXIT_SUCCESS; ++ if (modules_on_boot) { ++ char **modules = strv_split(modules_on_boot,WHITESPACE); ++ char **module; ++ ++ if (modules) { ++ STRV_FOREACH(module, modules) { ++ k = load_module(ctx, *module); ++ if (k < 0) ++ r = EXIT_FAILURE; ++ } ++ } ++ strv_free(modules); ++ } ++#endif + finish: + kmod_unref(ctx); + strv_free(arg_proc_cmdline_modules); +--- systemd-206_git201308300826.orig/units/systemd-modules-load.service.in ++++ systemd-206_git201308300826/units/systemd-modules-load.service.in +@@ -13,6 +13,7 @@ Conflicts=shutdown.target + After=systemd-readahead-collect.service systemd-readahead-replay.service + Before=sysinit.target shutdown.target + ConditionCapability=CAP_SYS_MODULE ++ConditionPathExists=|/etc/sysconfig/kernel + ConditionDirectoryNotEmpty=|/lib/modules-load.d + ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d + ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch new file mode 100644 index 00000000..5b296a18 --- /dev/null +++ b/optionally-warn-if-nss-myhostname-is-called.patch @@ -0,0 +1,102 @@ +From: Ludwig Nussel +Date: Fri, 20 May 2011 15:38:46 +0200 +Subject: optionally warn if nss-myhostname is called + +--- + configure.ac | 11 +++++++++++ + src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++ + 2 files changed, 43 insertions(+) + +--- systemd-206_git201308300826.orig/configure.ac ++++ systemd-206_git201308300826/configure.ac +@@ -817,6 +817,17 @@ if test "x$enable_myhostname" != "xno"; + fi + AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) + ++if test "x$have_myhostname" != "xno"; then ++ AC_MSG_CHECKING([log warning messages for nss-myhostname]) ++ AC_ARG_WITH(nss-my-hostname-warning, AS_HELP_STRING([--with-nss-my-hostname-warning], [log warning to syslog when nss-myhostname is called (default=no)]),[],[with_nss_my_hostname_warning=no]) ++ AC_MSG_RESULT([$with_nss_my_hostname_warning]) ++ ++ if test x$with_nss_my_hostname_warning != xno; then ++ AC_CHECK_HEADERS([syslog.h]) ++ AC_DEFINE([LOG_NSS_MY_HOSTNAME_WARNING],[1],[whether to log warning message for nss-myhostname]) ++ fi ++fi ++ + # ------------------------------------------------------------------------------ + AC_ARG_WITH(firmware-path, + AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], +--- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c ++++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c +@@ -29,6 +29,9 @@ + #include + #include + #include ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++#include ++#endif + + #include "ifconf.h" + #include "macro.h" +@@ -47,6 +50,10 @@ + #define LOCALADDRESS_IPV6 &in6addr_loopback + #define LOOPBACK_INTERFACE "lo" + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++static void warn(const char* hn); ++#endif ++ + enum nss_status _nss_myhostname_gethostbyname4_r( + const char *name, + struct gaih_addrtuple **pat, +@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostb + return NSS_STATUS_NOTFOUND; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif + /* If this fails, n_addresses is 0. Which is fine */ + ifconf_acquire_addresses(&addresses, &n_addresses); + +@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostb + local_address_ipv4 = LOCALADDRESS_IPV4; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif + return fill_in_hostent( + canonical, additional, + af, +@@ -509,6 +522,9 @@ found: + canonical = hn; + } + ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++ warn(hn); ++#endif + return fill_in_hostent( + canonical, additional, + af, +@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostb + errnop, h_errnop, + NULL); + } ++ ++#ifdef LOG_NSS_MY_HOSTNAME_WARNING ++static void warn(const char* hn) { ++ if (strstr(program_invocation_short_name, "nscd")) { ++ syslog(LOG_WARNING, ++ "Some application tried to resolve hostname \"%s\" which is not in DNS. Stop nscd to find out which one.\n", ++ hn); ++ } else { ++ syslog(LOG_WARNING, ++ "%s(%u) tried to resolve hostname \"%s\" which is not in DNS. This might be the reason for the delays you experience.\n", ++ program_invocation_short_name, ++ getpid(), ++ hn); ++ } ++} ++#endif diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index 4226b51c..8709dc70 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -1,14 +1,14 @@ --- - src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++- - 1 file changed, 44 insertions(+), 1 deletion(-) + src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- + 1 file changed, 50 insertions(+), 2 deletions(-) -Index: systemd/src/fstab-generator/fstab-generator.c +Index: systemd-210/src/fstab-generator/fstab-generator.c =================================================================== ---- systemd.orig/src/fstab-generator/fstab-generator.c -+++ systemd/src/fstab-generator/fstab-generator.c -@@ -48,6 +48,49 @@ static char *arg_usr_what = NULL; - static char *arg_usr_fstype = NULL; - static char *arg_usr_options = NULL; +--- systemd-210.orig/src/fstab-generator/fstab-generator.c ++++ systemd-210/src/fstab-generator/fstab-generator.c +@@ -37,6 +37,50 @@ + static const char *arg_dest = "/tmp"; + static bool arg_enabled = true; +static int check_crypttab(const char *what) { + _cleanup_fclose_ FILE *f = NULL; @@ -53,15 +53,26 @@ Index: systemd/src/fstab-generator/fstab-generator.c + return 1; +} + - static int add_swap( - const char *what, - struct mntent *me, -@@ -118,7 +161,7 @@ static int add_swap( - if (r < 0) - return r; ++ + static int mount_find_pri(struct mntent *me, int *ret) { + char *end, *pri; + unsigned long r; +@@ -212,7 +256,7 @@ static int add_mount( + *name = NULL, *unit = NULL, *lnk = NULL, + *automount_name = NULL, *automount_unit = NULL; + _cleanup_fclose_ FILE *f = NULL; +- int r; ++ int r, c; + + assert(what); + assert(where); +@@ -288,7 +332,8 @@ static int add_mount( + return -errno; + } - if (!noauto) { -+ if (!noauto && check_crypttab(what) != 0) { - lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET, - nofail ? ".wants/" : ".requires/", name, NULL); - if (!lnk) ++ c = check_crypttab(what); ++ if (!noauto && (c != 0)) { + if (post) { + lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); + if (!lnk) diff --git a/plymouth-quit-and-wait-for-emergency-service.patch b/plymouth-quit-and-wait-for-emergency-service.patch index 242a05d1..560f9f3f 100644 --- a/plymouth-quit-and-wait-for-emergency-service.patch +++ b/plymouth-quit-and-wait-for-emergency-service.patch @@ -1,40 +1,16 @@ ---- - units/console-shell.service.m4.in | 2 ++ - units/emergency.service.in | 3 ++- - units/rescue.service.in | 3 ++- - 3 files changed, 6 insertions(+), 2 deletions(-) - -Index: systemd/units/console-shell.service.m4.in -=================================================================== ---- systemd.orig/units/console-shell.service.m4.in -+++ systemd/units/console-shell.service.m4.in +--- systemd-208/units/console-shell.service.m4.in ++++ systemd-208/units/console-shell.service.m4.in 2014-02-05 11:28:31.446735287 +0000 @@ -17,6 +17,8 @@ Before=getty.target [Service] Environment=HOME=/root WorkingDirectory=/root +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait - ExecStart=-@SULOGIN@ + ExecStart=-/usr/sbin/sulogin ExecStopPost=-@SYSTEMCTL@ poweroff Type=idle -Index: systemd/units/emergency.service.in -=================================================================== ---- systemd.orig/units/emergency.service.in -+++ systemd/units/emergency.service.in -@@ -17,7 +17,8 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" - Type=idle -Index: systemd/units/rescue.service.in -=================================================================== ---- systemd.orig/units/rescue.service.in -+++ systemd/units/rescue.service.in +--- systemd-208/units/rescue.service.m4.in ++++ systemd-208/units/rescue.service.m4.in 2014-02-05 11:28:45.214235524 +0000 @@ -16,7 +16,8 @@ Before=shutdown.target [Service] Environment=HOME=/root @@ -42,6 +18,18 @@ Index: systemd/units/rescue.service.in -ExecStartPre=-/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" - Type=idle + ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' + ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ --fail --no-block default +--- systemd-208/units/emergency.service.in ++++ systemd-208/units/emergency.service.in 2014-02-05 11:28:51.782235282 +0000 +@@ -15,7 +15,8 @@ Before=shutdown.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStartPre=-/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' + ExecStart=-/usr/sbin/sulogin + ExecStopPost=@SYSTEMCTL@ --fail --no-block default diff --git a/prepare-suspend-to-disk.patch b/prepare-suspend-to-disk.patch new file mode 100644 index 00000000..01f95f9d --- /dev/null +++ b/prepare-suspend-to-disk.patch @@ -0,0 +1,28 @@ +diff -Naur systemd-210/units/systemd-hibernate.service.in systemd-210-mod/units/systemd-hibernate.service.in +--- systemd-210/units/systemd-hibernate.service.in 2013-08-13 22:02:52.808756274 +0200 ++++ systemd-210-mod/units/systemd-hibernate.service.in 2014-03-25 12:27:44.995995220 +0100 +@@ -11,7 +11,10 @@ + DefaultDependencies=no + Requires=sleep.target + After=sleep.target ++ConditionKernelCommandLine=resume + + [Service] + Type=oneshot ++ExecStart=@rootbindir@/systemd-sleep-grub pre + ExecStart=@rootlibexecdir@/systemd-sleep hibernate ++ExecStopPost=@rootbindir@/systemd-sleep-grub post +diff -Naur systemd-210/units/systemd-hybrid-sleep.service.in systemd-210-mod/units/systemd-hybrid-sleep.service.in +--- systemd-210/units/systemd-hybrid-sleep.service.in 2013-08-13 22:02:52.809756282 +0200 ++++ systemd-210-mod/units/systemd-hybrid-sleep.service.in 2014-03-25 12:27:56.115994902 +0100 +@@ -11,7 +11,10 @@ + DefaultDependencies=no + Requires=sleep.target + After=sleep.target ++ConditionKernelCommandLine=resume + + [Service] + Type=oneshot ++ExecStart=@rootbindir@/systemd-sleep-grub pre + ExecStart=@rootlibexecdir@/systemd-sleep hybrid-sleep ++ExecStopPost=@rootbindir@/systemd-sleep-grub post diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch new file mode 100644 index 00000000..f1e0dfcb --- /dev/null +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -0,0 +1,91 @@ +From: Frederic Crozat +Date: Wed, 7 Dec 2011 15:15:07 +0000 +Subject: remain_after_exit initscript heuristic and add new LSB headers + +Add remain_after_exit heuristic for initscripts and add LSB headers +PIDFile: and X-Systemd-RemainAfterExit to control it. + +(bnc#721426) (bnc#727771) +--- + src/core/service.c | 34 ++++++++++++++++++++++++++++++++-- + src/core/service.h | 1 + + 2 files changed, 33 insertions(+), 2 deletions(-) + +Index: systemd-208/src/core/service.c +=================================================================== +--- systemd-208.orig/src/core/service.c ++++ systemd-208/src/core/service.c +@@ -135,6 +135,7 @@ static void service_init(Unit *u) { + #ifdef HAVE_SYSV_COMPAT + s->sysv_start_priority = -1; + s->sysv_start_priority_from_rcnd = -1; ++ s->sysv_remain_after_exit_heuristic = true; + #endif + s->socket_fd = -1; + s->guess_main_pid = true; +@@ -883,6 +884,34 @@ static int service_load_sysv_path(Servic + free(short_description); + short_description = d; + ++ } else if (startswith_no_case(t, "PIDFile:")) { ++ char *fn; ++ ++ state = LSB; ++ ++ fn = strstrip(t+8); ++ if (!path_is_absolute(fn)) { ++ log_warning("[%s:%u] PID file not absolute. Ignoring.", path, line); ++ continue; ++ } ++ ++ if (!(fn = strdup(fn))) { ++ r = -ENOMEM; ++ goto finish; ++ } ++ ++ free(s->pid_file); ++ s->pid_file = fn; ++ s->sysv_remain_after_exit_heuristic = false; ++ s->remain_after_exit = false; ++ } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) { ++ char *j; ++ ++ state = LSB; ++ if ((j = strstrip(t+26)) && *j) { ++ s->remain_after_exit = parse_boolean(j); ++ s->sysv_remain_after_exit_heuristic = false; ++ } + } else if (state == LSB_DESCRIPTION) { + + if (startswith(l, "#\t") || startswith(l, "# ")) { +@@ -933,7 +962,8 @@ static int service_load_sysv_path(Servic + + /* Special setting for all SysV services */ + s->type = SERVICE_FORKING; +- s->remain_after_exit = !s->pid_file; ++ if (s->sysv_remain_after_exit_heuristic) ++ s->remain_after_exit = !s->pid_file; + s->guess_main_pid = false; + s->restart = SERVICE_RESTART_NO; + s->exec_context.ignore_sigpipe = false; +@@ -2080,7 +2110,7 @@ static void service_enter_running(Servic + if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && + (s->bus_name_good || s->type != SERVICE_DBUS)) { + #ifdef HAVE_SYSV_COMPAT +- if (s->sysv_enabled && !s->pid_file) ++ if (s->sysv_enabled && !s->pid_file && s->sysv_remain_after_exit_heuristic) + s->remain_after_exit = false; + #endif + service_set_state(s, SERVICE_RUNNING); +Index: systemd-208/src/core/service.h +=================================================================== +--- systemd-208.orig/src/core/service.h ++++ systemd-208/src/core/service.h +@@ -178,6 +178,7 @@ struct Service { + bool is_sysv:1; + bool sysv_has_lsb:1; + bool sysv_enabled:1; ++ bool sysv_remain_after_exit_heuristic:1; + int sysv_start_priority_from_rcnd; + int sysv_start_priority; + diff --git a/respect-nfs-bg-option.patch b/respect-nfs-bg-option.patch index 91822e07..ccf7cea4 100644 --- a/respect-nfs-bg-option.patch +++ b/respect-nfs-bg-option.patch @@ -1,22 +1,19 @@ ---- - src/fstab-generator/fstab-generator.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-218/src/fstab-generator/fstab-generator.c -=================================================================== ---- systemd-218.orig/src/fstab-generator/fstab-generator.c -+++ systemd-218/src/fstab-generator/fstab-generator.c -@@ -238,8 +238,11 @@ static int add_mount( - "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", - source); +--- systemd-210/src/fstab-generator/fstab-generator.c 2014-02-17 15:49:21.070855641 +0100 ++++ systemd-210/src/fstab-generator/fstab-generator.c 2014-04-25 16:25:13.256106126 +0200 +@@ -255,10 +255,12 @@ + "SourcePath=%s\n", + source); - if (post && !noauto && !nofail && !automount) -- fprintf(f, "Before=%s\n", post); +- fprintf(f, +- "Before=%s\n", +- post); + if (post && !noauto && !nofail && !automount) { -+ bool is_nfs = fstype != NULL && streq(fstype, "nfs"); -+ if (!is_nfs || strstr(opts, "bg") == NULL) -+ fprintf(f, "Before=%s\n", post); ++ if (!streq(type, "nfs") || (streq(type, "nfs") && !strstr(opts, "bg"))) ++ fprintf(f, ++ "Before=%s\n", ++ post); + } - if (passno != 0) { - r = generator_write_fsck_deps(f, arg_dest, what, where, fstype); + r = add_fsck(f, what, where, type, passno); + if (r < 0) diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index 132b73e1..422f23ca 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -3,20 +3,18 @@ Date: Mon, 29 Oct 2012 13:01:20 +0000 Subject: restore /var/run and /var/lock bind mount if they aren't symlink --- - Makefile.am | 9 +++++++++ - units/var-lock.mount | 19 +++++++++++++++++++ - units/var-run.mount | 19 +++++++++++++++++++ + Makefile.am | 9 +++++++++ + units/var-lock.mount | 19 +++++++++++++++++++ + units/var-run.mount | 19 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 units/var-lock.mount create mode 100644 units/var-run.mount -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -516,6 +516,12 @@ endif - dist_systemunit_DATA_busnames += \ - units/busnames.target +--- systemd-206_git201308300826.orig/Makefile.am ++++ systemd-206_git201308300826/Makefile.am +@@ -419,6 +419,12 @@ dist_systemunit_DATA = \ + units/system-update.target \ + units/initrd-switch-root.target +if HAVE_SYSV_COMPAT +dist_systemunit_DATA += \ @@ -27,7 +25,7 @@ Index: systemd-218/Makefile.am nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -6086,6 +6092,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -4379,6 +4385,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service @@ -35,12 +33,10 @@ Index: systemd-218/Makefile.am + var-run.mount \ + var-lock.mount endif - SYSINIT_TARGET_WANTS += \ -Index: systemd-218/units/var-lock.mount -=================================================================== + systemd-update-utmp.service --- /dev/null -+++ systemd-218/units/var-lock.mount ++++ systemd-206_git201308300826/units/var-lock.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# @@ -61,10 +57,8 @@ Index: systemd-218/units/var-lock.mount +Where=/var/lock +Type=bind +Options=bind -Index: systemd-218/units/var-run.mount -=================================================================== --- /dev/null -+++ systemd-218/units/var-run.mount ++++ systemd-206_git201308300826/units/var-run.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch new file mode 100644 index 00000000..d0e907bb --- /dev/null +++ b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch @@ -0,0 +1,31 @@ +From: Frederic Crozat +Date: Fri, 30 Sep 2011 12:58:17 +0200 +Subject: service: flags sysv service with detected pid as + RemainAfterExit=false + +LSB header doesn't give pidfile, so all LSB initscripts have +RemainAfterExit=false, causing daemon termination to not be reported as +such by systemd. Checking at startup if daemon is still running for +sysv initscript to disable RemainAfterExit helps a lot. +Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 +--- + src/core/service.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- systemd-206_git201308300826.orig/src/core/service.c ++++ systemd-206_git201308300826/src/core/service.c +@@ -2100,8 +2100,13 @@ static void service_enter_running(Servic + cgroup_ok = cgroup_good(s); + + if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && +- (s->bus_name_good || s->type != SERVICE_DBUS)) ++ (s->bus_name_good || s->type != SERVICE_DBUS)) { ++#ifdef HAVE_SYSV_COMPAT ++ if (s->sysv_enabled && !s->pid_file) ++ s->remain_after_exit = false; ++#endif + service_set_state(s, SERVICE_RUNNING); ++ } + else if (s->remain_after_exit) + service_set_state(s, SERVICE_EXITED); + else diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index 23bd0163..e13cb6dd 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -6,8 +6,10 @@ Use and set default logging console for both journald and kernel messages src/journal/journald-server.c | 5 ++ 3 files changed, 105 insertions(+) ---- systemd-219.orig/src/journal/journald-console.c -+++ systemd-219/src/journal/journald-console.c +Index: src/journal/journald-console.c +=================================================================== +--- src/journal/journald-console.c.orig ++++ src/journal/journald-console.c @@ -23,6 +23,14 @@ #include #include @@ -23,13 +25,13 @@ Use and set default logging console for both journald and kernel messages #include "fileio.h" #include "journald-server.h" -@@ -43,6 +51,76 @@ static bool prefix_timestamp(void) { +@@ -43,6 +51,74 @@ static bool prefix_timestamp(void) { return cached_printk_time; } ++#ifdef HAVE_SYSV_COMPAT +void defaul_tty_path(Server *s) +{ -+#ifdef HAVE_SYSV_COMPAT + static const char list[] = "/dev/tty10\0" "/dev/console\0"; + const char *vc; + @@ -49,12 +51,10 @@ Use and set default logging console for both journald and kernel messages + s->tty_path = strdup(vc); + break; + } -+#endif +} + +void klogconsole(Server *s) +{ -+#ifdef HAVE_SYSV_COMPAT + _cleanup_free_ char *klogconsole_params = NULL; + _cleanup_close_ int fd = -1; + const char *vc = s->tty_path; @@ -94,29 +94,27 @@ Use and set default logging console for both journald and kernel messages + num = klogconsole_params + strcspn(klogconsole_params, "0123456789"); + if (safe_atoi(num, &r) == 0) + klogctl(8, 0, r); -+#endif +} ++#endif + void server_forward_console( Server *s, int priority, -@@ -64,6 +142,12 @@ void server_forward_console( +@@ -64,6 +140,10 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; -+#ifdef HAVE_SYSV_COMPAT + /* Do not write security/authorization (private) messages to console */ + if ((priority & LOG_FACMASK) == LOG_AUTHPRIV) + return; -+#endif + /* First: timestamp */ if (prefix_timestamp()) { assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -100,7 +184,23 @@ void server_forward_console( +@@ -101,7 +181,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { - log_debug_errno(errno, "Failed to open %s for logging: %m", tty); + log_debug("Failed to open %s for logging: %m", tty); +#ifdef HAVE_SYSV_COMPAT + if (fd != -ENOENT && fd != -ENODEV) + return; @@ -137,18 +135,23 @@ Use and set default logging console for both journald and kernel messages } if (writev(fd, iovec, n) < 0) ---- systemd-219.orig/src/journal/journald-console.h -+++ systemd-219/src/journal/journald-console.h -@@ -24,3 +24,6 @@ +Index: src/journal/journald-console.h +=================================================================== +--- src/journal/journald-console.h.orig ++++ src/journal/journald-console.h +@@ -24,3 +24,7 @@ #include "journald-server.h" - void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred); -+ + void server_forward_console(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred); ++#ifdef HAVE_SYSV_COMPAT +void klogconsole(Server *s); +void defaul_tty_path(Server *s); ---- systemd-219.orig/src/journal/journald-server.c -+++ systemd-219/src/journal/journald-server.c -@@ -1520,6 +1520,11 @@ int server_init(Server *s) { ++#endif +Index: src/journal/journald-server.c +=================================================================== +--- src/journal/journald-server.c.orig ++++ src/journal/journald-server.c +@@ -1509,6 +1509,11 @@ int server_init(Server *s) { server_parse_config_file(s); server_parse_proc_cmdline(s); @@ -158,5 +161,5 @@ Use and set default logging console for both journald and kernel messages + klogconsole(s); + if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { - log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0", - s->rate_limit_interval, s->rate_limit_burst); + log_debug("Setting both rate limit interval and burst from %llu,%u to 0,0", + (long long unsigned) s->rate_limit_interval, diff --git a/shut-up-annoying-assertion-monotonic-clock-message.patch b/shut-up-annoying-assertion-monotonic-clock-message.patch new file mode 100644 index 00000000..ecdf4bc0 --- /dev/null +++ b/shut-up-annoying-assertion-monotonic-clock-message.patch @@ -0,0 +1,38 @@ +Stop flooding the kernel's message ring buffer with useless +messages on dual_timestamp_is_set is failed. This is a backport +from upstream code. + +--- + src/libsystemd/sd-event/sd-event.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- systemd-210/src/libsystemd/sd-event/sd-event.c ++++ systemd-210/src/libsystemd/sd-event/sd-event.c 2014-05-02 10:01:23.366235185 +0000 +@@ -2191,9 +2191,12 @@ _public_ int sd_event_exit(sd_event *e, + _public_ int sd_event_get_now_realtime(sd_event *e, uint64_t *usec) { + assert_return(e, -EINVAL); + assert_return(usec, -EINVAL); +- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); + assert_return(!event_pid_changed(e), -ECHILD); + ++ /* If we haven't run yet, just get the actual time */ ++ if (!dual_timestamp_is_set(&e->timestamp)) ++ return -ENODATA; ++ + *usec = e->timestamp.realtime; + return 0; + } +@@ -2201,9 +2204,12 @@ _public_ int sd_event_get_now_realtime(s + _public_ int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec) { + assert_return(e, -EINVAL); + assert_return(usec, -EINVAL); +- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); + assert_return(!event_pid_changed(e), -ECHILD); + ++ /* If we haven't run yet, just get the actual time */ ++ if (!dual_timestamp_is_set(&e->timestamp)) ++ return -ENODATA; ++ + *usec = e->timestamp.monotonic; + return 0; + } diff --git a/shut-up-rpmlint-on-var-log-journal.patch b/shut-up-rpmlint-on-var-log-journal.patch index 2304a184..3230a8f1 100644 --- a/shut-up-rpmlint-on-var-log-journal.patch +++ b/shut-up-rpmlint-on-var-log-journal.patch @@ -1,12 +1,6 @@ ---- - Makefile.am | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -4209,11 +4209,11 @@ noinst_LTLIBRARIES += \ +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-07-28 09:05:41.002735451 +0000 +@@ -3242,11 +3242,11 @@ noinst_LTLIBRARIES += \ libsystemd-journal-core.la journal-install-hook: @@ -22,4 +16,4 @@ Index: systemd-218/Makefile.am + -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ journal-uninstall-hook: - -rmdir $(DESTDIR)/var/log/journal/remote + -rmdir $(DESTDIR)/var/log/journal/ diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff deleted file mode 100644 index b11ea682..00000000 --- a/suse-sysv-bootd-support.diff +++ /dev/null @@ -1,86 +0,0 @@ -From: Frederic Crozat -Date: Fri, 12 Apr 2013 16:56:26 +0200 -Subject: Revert "service: drop support for SysV scripts for the early boot" - -This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. - -[Implementation note: currently, the unit is generated, but not -activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] ---- - src/sysv-generator/sysv-generator.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - ---- systemd-219.orig/src/sysv-generator/sysv-generator.c -+++ systemd-219/src/sysv-generator/sysv-generator.c -@@ -42,7 +42,8 @@ - - typedef enum RunlevelType { - RUNLEVEL_UP, -- RUNLEVEL_DOWN -+ RUNLEVEL_DOWN, -+ RUNLEVEL_SYSINIT, - } RunlevelType; - - static const struct { -@@ -50,6 +51,9 @@ static const struct { - const char *target; - const RunlevelType type; - } rcnd_table[] = { -+ /* SUSE style boot.d */ -+ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, -+ - /* Standard SysV runlevels for start-up */ - { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, - { "rc2.d", SPECIAL_RUNLEVEL2_TARGET, RUNLEVEL_UP }, -@@ -65,7 +69,7 @@ static const struct { - directories in this order, and we want to make sure that - sysv_start_priority is known when we first load the - unit. And that value we only know from S links. Hence -- UP must be read before DOWN */ -+ UP/SYSINIT must be read before DOWN */ - }; - - typedef struct SysvStub { -@@ -83,7 +87,7 @@ typedef struct SysvStub { - bool reload; - } SysvStub; - --const char *arg_dest = "/tmp"; -+static const char *arg_dest = "/tmp"; - - static int add_symlink(const char *service, const char *where) { - _cleanup_free_ char *from = NULL, *to = NULL; -@@ -235,6 +239,10 @@ static bool usage_contains_reload(const - static char *sysv_translate_name(const char *name) { - char *r; - -+ if (startswith(name, "boot.")) -+ /* Drop SuSE-style boot. prefix */ -+ name += 5; -+ - r = new(char, strlen(name) + strlen(".service") + 1); - if (!r) - return NULL; -@@ -864,10 +872,10 @@ static int set_dependencies_from_rcnd(Lo - - if (de->d_name[0] == 'S') { - -- if (rcnd_table[i].type == RUNLEVEL_UP) { -+ if (rcnd_table[i].type == RUNLEVEL_UP || -+ rcnd_table[i].type == RUNLEVEL_SYSINIT) - service->sysv_start_priority = - MAX(a*10 + b, service->sysv_start_priority); -- } - - r = set_ensure_allocated(&runlevel_services[i], NULL); - if (r < 0) -@@ -878,7 +886,8 @@ static int set_dependencies_from_rcnd(Lo - goto finish; - - } else if (de->d_name[0] == 'K' && -- (rcnd_table[i].type == RUNLEVEL_DOWN)) { -+ (rcnd_table[i].type == RUNLEVEL_DOWN || -+ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { - - r = set_ensure_allocated(&shutdown_services, NULL); - if (r < 0) diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 08247c82..9b3defb9 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -6,14 +6,14 @@ Subject: [PATCH] sysctl: handle /boot/sysctl.conf- Add support for kernel release sysctl.conf files (for per-flavor configuration), needed by openSUSE (bnc#809420). --- - src/sysctl/sysctl.c | 8 ++++++++ - units/systemd-sysctl.service.in | 2 ++ - 2 files changed, 10 insertions(+) + src/sysctl/sysctl.c | 8 ++++++++ + units/systemd-sysctl.service.in | 1 + + 2 files changed, 9 insertions(+) -Index: systemd-218/src/sysctl/sysctl.c +Index: systemd-207/src/sysctl/sysctl.c =================================================================== ---- systemd-218.orig/src/sysctl/sysctl.c -+++ systemd-218/src/sysctl/sysctl.c +--- systemd-207.orig/src/sysctl/sysctl.c ++++ systemd-207/src/sysctl/sysctl.c @@ -26,6 +26,7 @@ #include #include @@ -22,7 +22,7 @@ Index: systemd-218/src/sysctl/sysctl.c #include "log.h" #include "strv.h" -@@ -310,6 +311,13 @@ int main(int argc, char *argv[]) { +@@ -299,6 +300,13 @@ int main(int argc, char *argv[]) { } else { _cleanup_strv_free_ char **files = NULL; char **f; @@ -36,14 +36,14 @@ Index: systemd-218/src/sysctl/sysctl.c r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); if (r < 0) { -Index: systemd-218/units/systemd-sysctl.service.in +Index: systemd-207/units/systemd-sysctl.service.in =================================================================== ---- systemd-218.orig/units/systemd-sysctl.service.in -+++ systemd-218/units/systemd-sysctl.service.in -@@ -13,6 +13,8 @@ Conflicts=shutdown.target - After=systemd-modules-load.service - Before=sysinit.target shutdown.target - ConditionPathIsReadWrite=/proc/sys/ +--- systemd-207.orig/units/systemd-sysctl.service.in ++++ systemd-207/units/systemd-sysctl.service.in +@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys + ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d + ConditionDirectoryNotEmpty=|/etc/sysctl.d + ConditionDirectoryNotEmpty=|/run/sysctl.d +ConditionPathExistsGlob=|/boot/sysctl.conf-%v +RequiresMountsFor=/boot diff --git a/systemctl-set-default-target.patch b/systemctl-set-default-target.patch index 86aec7e9..4dd058d9 100644 --- a/systemctl-set-default-target.patch +++ b/systemctl-set-default-target.patch @@ -3,14 +3,12 @@ Mention that --force is required to override an already existing default.target This solves the bug bnc#868439 --- - man/systemctl.xml | 4 +++- + systemctl.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -Index: systemd/man/systemctl.xml -=================================================================== ---- systemd.orig/man/systemctl.xml -+++ systemd/man/systemctl.xml -@@ -445,7 +445,7 @@ along with systemd; If not, see @@ -19,12 +17,12 @@ Index: systemd/man/systemctl.xml any existing conflicting symlinks. When used with halt, -@@ -1215,6 +1215,8 @@ kobject-uevent 1 systemd-udevd-kernel.so - Return the default target to boot into. This returns - the target unit name default.target - is aliased (symlinked) to. +@@ -1036,6 +1036,8 @@ kobject-uevent 1 systemd-udevd-kernel.so + + Set the default target to boot into. Command links + default.target to the given unit. + If combined with , override + an already existing symlink for the default target. - + diff --git a/systemd-210.tar.xz b/systemd-210.tar.xz new file mode 100644 index 00000000..dd2041d8 --- /dev/null +++ b/systemd-210.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b3ddf9bf82f05cc3079650e86ae05b558381fd034cf1b03a592bcadd1610c4 +size 2620924 diff --git a/systemd-219.tar.xz b/systemd-219.tar.xz deleted file mode 100644 index d90808ee..00000000 --- a/systemd-219.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c57113454e37c040d0cb481bd960ae7cf3a3fe0a231ff4945259bc74503f2d9 -size 3938228 diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch index 8eb7f440..c1c06ba5 100644 --- a/systemd-add-user-keep.patch +++ b/systemd-add-user-keep.patch @@ -1,27 +1,25 @@ ---- - man/tmpfiles.d.xml | 3 +++ - src/tmpfiles/tmpfiles.c | 48 ++++++++++++++++++++++++++++++++++++++++-------- - 2 files changed, 43 insertions(+), 8 deletions(-) - -Index: systemd/man/tmpfiles.d.xml -=================================================================== ---- systemd.orig/man/tmpfiles.d.xml -+++ systemd/man/tmpfiles.d.xml -@@ -489,6 +489,9 @@ - f, F, and - w may be used to specify a short string that - is written to the file, suffixed by a newline. For -+ x, X, a comma separated list of -+ usernames. If given, only paths belonging to these users will be excluded -+ during directory cleanup. Ignored for all other lines. For - C, specifies the source file or - directory. For t determines extended - attributes to be set. For a determines -Index: systemd/src/tmpfiles/tmpfiles.c -=================================================================== ---- systemd.orig/src/tmpfiles/tmpfiles.c -+++ systemd/src/tmpfiles/tmpfiles.c -@@ -345,6 +345,7 @@ static int dir_cleanup( +diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210.mod/man/tmpfiles.d.xml +--- systemd-210/man/tmpfiles.d.xml 2014-12-18 09:40:29.403629407 +0100 ++++ systemd-210.mod/man/tmpfiles.d.xml 2014-12-18 10:34:06.274130934 +0100 +@@ -435,8 +435,12 @@ + f, F, + and w may be used to + specify a short string that is written to the +- file, suffixed by a newline. Ignored for all +- other lines. ++ file, suffixed by a newline. ++ For x, X ++ a comma separated list of usernames. If given, ++ only paths belonging to these users will be ++ excluded during directory cleanup. ++ Ignored for all other lines. + + + +diff -Naur systemd-210/src/tmpfiles/tmpfiles.c systemd-210.mod/src/tmpfiles/tmpfiles.c +--- systemd-210/src/tmpfiles/tmpfiles.c 2014-12-18 09:40:29.342629177 +0100 ++++ systemd-210.mod/src/tmpfiles/tmpfiles.c 2014-12-18 11:58:16.686576974 +0100 +@@ -263,6 +263,7 @@ struct timespec times[2]; bool deleted = false; int r = 0; @@ -29,57 +27,52 @@ Index: systemd/src/tmpfiles/tmpfiles.c while ((dent = readdir(d))) { struct stat s; -@@ -395,14 +396,45 @@ static int dir_cleanup( +@@ -306,11 +307,43 @@ } /* Is there an item configured for this path? */ -- if (hashmap_get(items, sub_path)) { -- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); +- if (hashmap_get(items, sub_path)) - continue; -- } - -- if (find_glob(globs, sub_path)) { -- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); +- if (find_glob(globs, sub_path)) - continue; -+ bool found_glob = false; + found = hashmap_get(items, sub_path); -+ if (!found) { -+ found_glob = true; -+ found = find_glob(globs, sub_path); -+ } -+ if (found) { -+ struct passwd *pw; -+ char *userfound = NULL, *args; -+ bool match = false; -+ uid_t uid = -1; ++ ++ if (!found) ++ found = find_glob(globs, sub_path); + ++ if (found) { + /* evaluate username arguments in ignore statements */ -+ if ((found->type != IGNORE_PATH && found->type != IGNORE_DIRECTORY_PATH) || -+ !found->argument) { -+ if (found_glob) -+ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); -+ else -+ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); -+ continue; -+ } -+ args = strdup(found->argument); -+ assert_se(args != NULL); -+ while ((userfound = strsep(&args, ",")) != NULL) { -+ pw = getpwnam(userfound); -+ if (pw == NULL) { -+ log_error("Unknown user '%s' in ignore statement.", userfound); -+ continue; ++ if (found->type == IGNORE_PATH || found->type == IGNORE_DIRECTORY_PATH) { ++ if (!found->argument) ++ continue; ++ else { ++ struct passwd *pw; ++ char *userfound = NULL, *args = strdup(found->argument); ++ bool match = false; ++ int uid = -1; ++ ++ while ((userfound = strsep(&args, ","))) { ++ pw = getpwnam(userfound); ++ ++ if (!pw) ++ log_error("Unknown user '%s' in ignore statement.", userfound); ++ else { ++ uid = pw->pw_uid; ++ if (s.st_uid == uid) { ++ match = true; ++ break; ++ } ++ } ++ } ++ if (match) { ++ found = NULL; ++ continue; ++ } + } -+ uid = pw->pw_uid; -+ if (s.st_uid == uid) { -+ match = true; -+ break; -+ } -+ } -+ if (match) { -+ found = NULL; -+ continue; -+ } - } ++ } else ++ continue; ++ } if (S_ISDIR(s.st_mode)) { + diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch index 89c83e42..cede24c9 100644 --- a/systemd-dbus-system-bus-address.patch +++ b/systemd-dbus-system-bus-address.patch @@ -1,14 +1,18 @@ ---- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/shared/def.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -Index: systemd/src/libsystemd/sd-bus/sd-bus.c -=================================================================== ---- systemd.orig/src/libsystemd/sd-bus/sd-bus.c -+++ systemd/src/libsystemd/sd-bus/sd-bus.c -@@ -809,8 +809,8 @@ static int parse_container_unix_address( - b->nspid = 0; +--- systemd-210/src/shared/def.h ++++ systemd-210/src/shared/def.h 2014-03-12 13:11:06.502235254 +0000 +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS +--- systemd-210/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-210/src/libsystemd/sd-bus/sd-bus.c 2014-03-12 14:31:09.966736492 +0000 +@@ -794,8 +794,8 @@ static int parse_container_unix_address( + machine = NULL; b->sockaddr.un.sun_family = AF_UNIX; - strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); @@ -18,16 +22,3 @@ Index: systemd/src/libsystemd/sd-bus/sd-bus.c return 0; } -Index: systemd/src/shared/def.h -=================================================================== ---- systemd.orig/src/shared/def.h -+++ systemd/src/shared/def.h -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS diff --git a/systemd-journald.init b/systemd-journald.init new file mode 100644 index 00000000..0b8d5081 --- /dev/null +++ b/systemd-journald.init @@ -0,0 +1,33 @@ +#! /bin/sh +# +# Copyright (c) 2001-2002 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. +# +# /etc/init.d/systemd-journald +# +### BEGIN INIT INFO +# Provides: syslog +# Required-Start: $null +# Required-Stop: $null +# Default-Start: 2 3 5 +# Default-Stop: +# Short-Description: compat wrapper for journald +# Description: compat wrapper for journald +### END INIT INFO + +. /etc/rc.status + +rc_reset + +case "$1" in + start|stop|restart) + rc_failed 3 + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +rc_exit diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index a9e12af8..def95a7d 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -1,4 +1,3 @@ -addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot\.8.*") @@ -17,7 +16,6 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") -addFilter("nss-mymachines.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") diff --git a/systemd-mini.changes b/systemd-mini.changes index 7a555d36..78b33870 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,575 +1,9 @@ -------------------------------------------------------------------- -Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de - -- Add 0001-core-rework-device-state-logic.patch to fix spurious - automated umount after mount. - -------------------------------------------------------------------- -Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com - -- mark more subpackages as !bootstrap for systemd-mini usage. - -------------------------------------------------------------------- -Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org - -- spec : remove --with-firmware-path, firmware loader was removed in v217 -- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) -- spec: Do not enable systemd-readahead-collect.service and -systemd-readahead-replay.service as these do not exist anymore. -- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch - Yast was fixed to write all timezone changes exactly how timedated expects - things to be done. -- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg - package handles the migration from /etc/HOSTNAME to /etc/hostname - and owns both files. --spec: remove boot.udev and systemd-journald.init as they currently - serve no purpose. -- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we - are in sysvcompat-only codepath, also remove the code targetting other - distributions, never compiled as the TARGET_$DISTRO macros are never defined. -- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT -- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards -- insserv-generator.patch: Only build when sysvcompat is enabled -- vhangup-on-all-consoles.patch add a comment indicating this is a workaround - for a kernel bug. -- spec: Add option to allow disabling sysvinit compat at build time. -- spec: Add option to enable resolved at build time. -- spec: Remove all %ifs for !factory products, current systemd releases can - neither be built nor installed in older products without upgrading - several components of the base system. - (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) -- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when - those init scripts still existed. (dummy localfs.service source: gone) -- systemd-sleep-grub: moved to the grub2 package where it belongs as a - suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) -- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds - config.h everywhere in the preprocessor cmdline. - -------------------------------------------------------------------- -Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 219 -* systemd units can now be "unsupported" (like, for example, - .device in a containers), similar to the "skipped" state in - SUSE's prior sysvinit scripts. -* tmpfiles gained the 'v' type for creating btrfs subvolumes. -* tmpfiles gained the 'a' type for setting ACLs. -* systemd-nspawn gained new switches: --ephemeral, --template -* The /var/lib/containers location is deprecated and replaced by - /var/lib/machines. -* machinectl gained the copy-from and copy-to commands. -* machinectl now knows a "bind" command (for use with nspawn) -* new "systemd-importd" daemon to download container images and run - them as nspawn containers. -* networkd collects LLDP network announcements, if available, and - so shown in networkctl. -* The fallback terminal type was changed from "vt102" to "vt220", - allowing PgUp/PgDn keys to work. -* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, - useful should the regular shutdown hang. -* Removing storage will cause systemd to unmount the associated - mountpoints so that they don't linger around. - -------------------------------------------------------------------- -Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de - -- Add suse-sysv-bootd-support.diff (reinstate old - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) - -------------------------------------------------------------------- -Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de - -- Update to systemd v218-1050-g38ab096 -- Remove patches - use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) -- Reinstate and improve (remove huge indents from) - tty-ask-password-agent-on-console.patch, - 0014-journald-with-journaling-FS.patch, rootsymlink_generator. - -------------------------------------------------------------------- -Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com - -- disable systemd-resolved for now as it interacts not well with - our methods and security has concerns regarding spoofing. bsc#917781 - ------------------------------------------------------------------- Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - Add patch kbd-model-map.patch to add missed keyboard layouts which are offered by YaST2 (bsc#910643 and boo#897803) -------------------------------------------------------------------- -Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 218 -* New utilities: systemd-timesyncd (SNTP client), - systemd-resolved, systemd-networkd, networkctl, - systemd-sysusers -* machinectl gained a "poweroff" command for clean container shutdown -* The udev hwdb now contains DPI information for mice. -* Userspace firmware loading support has been removed and - the minimum supported kernel version is thus bumped to 3.7. -- Remove patches: - G=gone locally, is upstream; - D=dropped: no longer needed; - N=no longer applies to source nor is it deemed needed; - K=killed: no longer applicable and too complex to resolve: - ---- - G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch - K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch - K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch - K handle-SYSTEMCTL_OPTIONS-environment-variable.patch - K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch - K log-target-null-instead-kmsg.patch - K tty-ask-password-agent-on-console.patch - K 513-nspawn-veth.patch - K 1087-infinit-timeout-for-kmod-loaded-modules.patch - D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - D avoid-leaking-socket-descriptors.patch - D 0001-make-fortify-happy-with-ppoll.patch - N fix-owner-of-var-log-btmp.patch - N disable-nss-myhostname-warning-bnc-783841.patch - N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch - N 0001-make-209-working-on-older-dist.patch - N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch - N tmpfiles-do-not-clean-for-mandb-index-files.patch - G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc - G optionally-warn-if-nss-myhostname-is-called.patch - G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch - G 0004-getty-generator-properly-escape-instance-names.patch - G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch - G 0008-Reset-signal-mask-on-re-exec-to-init.patch - G 0001-login-fix-pos-array-allocation.patch - G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch - G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - G 0005-Replace-var-run-with-run-in-remaining-places.patch - G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch - G 0007-README-document-that-var-run-must-be-a-symlink-run.patch - G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch - G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch - G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - G 0001-Fix-systemd-stdio-bridge-symlink.patch - G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch - G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch - G 0004-man-document-missing-options-of-systemd-run.patch - G 0005-systemd-run-add-some-extra-safety-checks.patch - G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch - G 0007-journal-forget-file-after-encountering-an-error.patch - G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch - G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch - G 0010-man-update-link-to-LSB.patch - G 0011-man-systemd-bootchart-fix-spacing-in-command.patch - G 0012-man-add-missing-comma.patch - G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch - G 0002-manager-flush-memory-stream-before-using-the-buffer.patch - G 0003-busname-don-t-drop-service-from-the-result-string.patch - G 0004-fix-off-by-one-error-in-array-index-assertion.patch - G 0005-logind-fix-policykit-checks.patch - G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch - G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch - G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch - G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch - G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch - G 0007-networkd-fix-typo.patch - G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch - G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch - G 0012-journald-remove-stray-reset-of-error-return-value.patch - G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch - G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch - G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch - G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch - G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch - G 0005-sd-daemon-fix-incorrect-variable-access.patch - G 0006-sd-event-initialization-perturbation-value-right-bef.patch - G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch - G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch - G 0001-journal-fix-export-of-messages-containing-newlines.patch - G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch - G 0003-tty-ask-password-agent-return-negative-errno.patch - G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch - G 0005-systemd-python-fix-failing-assert.patch - G 0007-dbus-suppress-duplicate-and-misleading-messages.patch - G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch - G 0001-bash-completion-fix-__get_startable_units.patch - G 0002-sysctl-replaces-some-slashes-with-dots.patch - G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch - G 0004-implement-a-union-to-pad-out-file_handle.patch - G shut-up-annoying-assertion-monotonic-clock-message.patch - G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch - G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch - G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch - G 0003-analyze-fix-plot-with-bad-y-size.patch - G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch - G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch - G 0002-backlight-do-nothing-if-max_brightness-is-0.patch - G 0003-backlight-unify-error-messages.patch - G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch - G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch - G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch - G 0001-core-close-socket-fds-asynchronously.patch - G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch - G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch - G 0002-logind-fix-printf-format.patch - G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch - G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch - G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch - G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch - G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch - G 0008-man-update-journald-rate-limit-defaults.patch - G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch - G 0010-logind-allow-suspending-if-there-are-no-displays.patch - G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch - G 0002-man-note-that-entire-sections-can-now-be-ignored.patch - G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch - G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch - G 0006-login-add-mir-to-the-list-of-session-types.patch - G 0007-logind-fix-Display-property-of-user-objects.patch - G 0001-hwdb-update.patch - G 0002-hwdb-update.patch - G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch - G 0004-hwdb-update.patch - G 0005-hwdb-update.patch - G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch - G 0002-journal-properly-detect-language-specified-in-line.patch - G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch - G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch - G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch - G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch - G 0002-nspawn-restore-journal-directory-is-empty-check.patch - G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - G 0004-socket-properly-handle-if-our-service-vanished-durin.patch - G 0001-Do-not-unescape-unit-names-in-Install-section.patch - G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - G 0001-virt-rework-container-detection-logic.patch - G 0002-fsck-include-device-name-in-the-message-about-missin.patch - G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch - G 0004-util-ignore_file-should-not-allow-files-ending-with.patch - G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch - G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch - G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch - G 0001-hwdb-fix-case-sensitive-match.patch - G 0001-sd-event-restore-correct-timeout-behaviour.patch - G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch - G 0001-umount-modernizations.patch - G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch - G 0003-core-allow-transient-mount-units.patch - G 0004-systemd-detect-virt-only-discover-Xen-domU.patch - G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch - G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch - G 0001-core-fix-invalid-free-in-killall.patch - G 0003-install-fix-invalid-free-in-unit_file_mask.patch - G 0001-systemd-detect-virt-detect-s390-virtualization.patch - G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch - G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch - G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch - G 0005-po-add-Greek-translation.patch - G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0007-po-add-German-translation.patch - G 0009-core-clean-up-signal-reset-logic-when-reexec.patch - G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch - G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch - G 0012-core-transaction-avoid-misleading-error-message-when.patch - G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch - G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch - G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch - G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch - G 0005-man-fix-path-in-crypttab-5.patch - G 0001-units-order-network-online.target-after-network.targ.patch - G 0001-core-use-correct-format-string-for-UIDs.patch - G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch - G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch - G 0002-journald-make-MaxFileSec-really-default-to-1month.patch - G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch - G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch - G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch - G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch - G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch - G 0001-parse_uid-return-ENXIO-for-1-uids.patch - G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch - G 0003-localed-consider-an-unset-model-as-a-wildcard.patch - G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch - G 0005-bus-close-a-bus-that-failed-to-connect.patch - G 0006-hwdb-update.patch - G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-architecture-Add-tilegx.patch - G 0002-architecture-Add-cris.patch - G 0003-arch-add-crisv32-to-uname-check.patch - G 0004-architecture-remove-cris-from-uname-list.patch - G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch - G 0002-namespace-fix-uninitialized-memory-access.patch - G 0001-machine-don-t-return-uninitialized-variable.patch - G 0002-vconsole-setup-run-setfont-before-loadkeys.patch - G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch - G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch - G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch - G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch - G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch - G 0007-service-flush-status-text-and-errno-values-each-time.patch - G 0001-journal-compress-return-early-in-uncompress_startswi.patch - G 0002-journal-compress-improve-xz-compression-performance.patch - G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch - G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch - G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch - G 0001-event-pull-in-sd-event.h-from-event-util.h.patch - G 0002-util-fix-has-cc-check-and-add-test.patch - G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch - G 0004-fileio-quote-more-shell-characters-in-envfiles.patch - G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch - G 0002-units-serial-getty-.service-use-the-default-RestartS.patch - G 0001-po-add-Ukrainian-translation.patch - G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch - G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch - G 0001-detect-virt-Fix-Xen-domU-discovery.patch - G 0002-Be-more-verbose-when-bind-or-listen-fails.patch - G 0003-Add-quotes-to-warning-message.patch - G 0004-systemd-return-the-first-error-from-manager_startup.patch - G 0001-bash-completion-p-option-for-journalctl.patch - G 0002-journalctl-man-allow-only-between-terms.patch - G 0003-systemd-use-pager-for-test-and-help.patch - G 0001-bus-proxyd-fix-incorrect-comparison.patch - G 0002-shell-completion-prevent-mangling-unit-names.patch - G 0003-Always-check-asprintf-return-code.patch - G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch - G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch - G 0006-parse_boolean-require-exact-matches.patch - G 0007-drop_duplicates-copy-full-BindMount-struct.patch - G 0008-shell-completion-prevent-mangling-unit-names-bash.patch - G 0009-journald-always-add-syslog-facility-for-messages-com.patch - G 0001-sysv-order-initscripts-which-provide-network-before-.patch - G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch - G 0003-keymap-Annotate-all-micmute-workarounds.patch - G 0007-hwdb-update.patch - G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch - G 0002-switch-root-umount-the-old-root-correctly.patch - G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch - G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch - G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch - G 0006-login-share-VT-signal-handler-between-sessions.patch - G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch - G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch - G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch - G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch - G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch - G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch - G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch - G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch - G 0003-keymap-Fix-HP-Pavillon-DV7.patch - G 0004-hwdb-update-format-description-and-document-reloadin.patch - G 0008-hwdb-update.patch - G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch - G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch - G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - G 0001-login-fix-memory-leak-on-DropController.patch - G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch - G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch - G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - G 0001-nspawn-fix-network-interface.patch - G 0001-completion-filter-templates-from-restartable-units.patch - G 0002-systemd-fix-error-message.patch - G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch - G 0004-config-parser-fix-mem-leak.patch - G 0005-login-fix-mem-leak.patch - G 0001-login-simplify-controller-handling.patch - G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch - G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0009-hwdb-update.patch - G 0001-systemctl-allow-to-change-the-default-target-without.patch - G 0001-activate-fix-fd-leak-in-do_accept.patch - G 0002-analyze-avoid-a-null-dereference.patch - G 0003-analyze-fix-mem-leak.patch - G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch - G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch - G 0006-bus-unref-buscreds-on-failure.patch - G 0007-core-fix-a-potential-mem-leak.patch - G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch - G 0009-journal-do-not-leak-mmaps-on-OOM.patch - G 0010-manager-use-correct-cleanup-function.patch - G 0001-core-fix-resource-leak-in-manager_environment_add.patch - G 0002-util-remove-a-unnecessary-check.patch - G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch - G 0004-shared-conf-parser.patch - G 0005-logind-fix-typo.patch - G 0006-systemctl-fix-resource-leak-CID-1237747.patch - G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch - G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch - G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch - G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch - G 0003-mount-order-options-before-other-arguments-to-mount.patch - G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch - G 0005-shared-label.h-add-missing-stdio.h-include.patch - G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch - G 0001-login-pause-devices-before-acknowledging-VT-switches.patch - G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch - G 0001-socket-introduce-SELinuxContextFromNet-option.patch - G 0002-util-avoid-non-portable-__WORDSIZE.patch - G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch - G 0002-bus-remove-unused-check.patch - G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch - G 0001-logind-add-support-for-Triton2-Power-Button.patch - G 0002-logind-add-support-for-TPS65217-Power-Button.patch - G 0001-shutdownd-clean-up-initialization-of-struct.patch - G 0003-bootchart-parse-userinput-with-safe_atoi.patch - G 0004-bootchart-check-return-of-strftime.patch - G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch - G 0001-journalctl-do-not-output-reboot-markers-when-running.patch - G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch - G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch - G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch - G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch - G 0003-fileio-label-return-error-when-writing-fails.patch - G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch - G 0004-sd-event-check-the-value-of-received-signal.patch - G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch - G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch - G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch - G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch - G 0003-sd-bus-check-return-value-of-vasprintf.patch - G 0004-core-map-the-rescue-argument-to-rescue.target.patch - G 0005-util-avoid-double-close-of-fd.patch - G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch - G 0001-tmpfiles-compare-return-against-correct-errno.patch - G 0001-shell-completion-fix-completion-of-inactive-units.patch - G 0002-shell-completion-propose-templates-for-disable-re-en.patch - G 0003-man-we-don-t-have-Wanted-dependency.patch - G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch - G 0001-systemd-continue-switch-root-even-if-umount-fails.patch - G 0002-systemd-try-harder-to-bind-to-notify-socket.patch - G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch - G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch - G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch - G 0004-journal-do-server_vacuum-for-sigusr1.patch - G 0005-cryptsetup-fix-an-OOM-check.patch - G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch - G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch - G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch - G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch - G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch - G 0005-journalctl-correct-help-text-for-until.patch - G 0006-calendarspec-fix-typo-in-annually.patch - G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch - G 0008-util-introduce-sethostname_idempotent.patch - G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch - G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch - G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch - G 0012-manager-do-not-print-anything-while-passwords-are-be.patch - G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch - G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch - G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch - G 0002-snapshot-return-error-when-snapshot-exists.patch - G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch - G 0004-Raise-level-of-Found-dependency.-lines.patch - G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch - G 0006-journald-fix-minor-memory-leak.patch - G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch - G 0008-journald-fix-memory-leak-on-error-path.patch - G 0009-units-make-systemd-journald.service-Type-notify.patch - G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch - G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch - G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch - G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch - G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch - G 0001-systemctl-let-list-units-unit-files-honour-type.patch - G 0002-systemctl-obey-state-in-list-unit-files.patch - G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch - G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch - G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch - G 0001-selinux-access-fix-broken-ternary-operator.patch - G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch - G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch - G 0004-core-fix-transaction-destructiveness-check-once-more.patch - G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch - G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch - G 1009-cdrom_id-use-the-old-MMC-fallback.patch - G 1010-udev-increase-result-size-for-programs.patch - G 1014-udev-update-net_id-comments.patch - G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch - G 1017-udev-serialize-synchronize-block-device-event-handli.patch - G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch - G 1019-udev-avoid-use-of-uninitialized-err.patch - G 1020-udev-keyboard-also-hook-into-change-events.patch - G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch - G 1024-udev-always-close-lock-file-descriptor.patch - G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch - G 1026-udevd-inotify-modernizations.patch - G 1027-udev-synthesize-change-events-for-partitions-when-to.patch - G 1028-udev-link-config-fix-mem-leak.patch - G 1029-udev-try-first-re-reading-the-partition-table.patch - G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch - G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch - G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch - G 1033-udev-really-exclude-device-mapper-from-block-device.patch - G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch - G 1038-udev-fix-invalid-free-in-enable_name_policy.patch - G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch - G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch - G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch - G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch - G 1044-rules-update-qemu-hid-rules.patch - G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch - G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch - G 1048-udev-net_setup_link-add-a-bit-more-logging.patch - G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch - G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch - G 1056-udevd-add-event-timeout-commandline-option.patch - G 1057-udev-unify-event-timeout-handling.patch - G 1058-udev-unify-event-timeout-handling.patch - G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch - G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch - G 1065-udev-bump-event-timeout-to-60-seconds.patch - G 1067-udev-always-resolve-correctly-database-names-on-chan.patch - G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch - G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch - G 1070-rules-net-setup-link-remove-stray-linebreak.patch - G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch - G 1072-udev-netif_rename-don-t-log-to-kmsg.patch - G 1073-udev-drop-print_kmsg.patch - G 1074-udev-fix-copy-paste-error-in-log-message.patch - G 1075-udev-timeout-increase-timeout.patch - G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1078-udev-remove-userspace-firmware-loading-support.patch - G 1079-udev-remove-userspace-firmware-loading-support.patch - G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch - G 1081-udevd-check-return-of-various-functions.patch - G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch - G 1083-udev-node-warn-if-chmod-chown-fails.patch - G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch - G 1085-udev-fix-typos.patch - G 1086-udevd-don-t-fail-if-run-udev-exists.patch - G 1089-fix-cgroup-device-controller.patch - G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - G 1091-udev-path_id-update-comments.patch - G 1092-libudev-do-not-accept-invalid-log-levels.patch - G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch - G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch - G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 3399d28d..015e1e0c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,9 +23,8 @@ %define udevpkgname udev-mini %define udev_major 1 %bcond_without bash_completion +%bcond_without compat_libs %bcond_with networkd -%bcond_without sysvcompat -%bcond_with resolved %bcond_with python %bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 @@ -46,7 +45,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 219 +Version: 210 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -57,69 +56,112 @@ Provides: %{real} = %{version}-%{release} BuildRequires: acl BuildRequires: audit-devel -BuildRequires: autoconf -BuildRequires: automake +%if %{with compat_libs} +# See gold_archs in binutils.spec +%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc +BuildRequires: binutils-gold +%endif +%endif +BuildRequires: config(suse-module-tools) +%if ! 0%{?bootstrap} +BuildRequires: docbook-xsl-stylesheets +%endif BuildRequires: fdupes +%if ! 0%{?bootstrap} +BuildRequires: gobject-introspection-devel +%endif BuildRequires: gperf +%if ! 0%{?bootstrap} BuildRequires: gtk-doc +%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel +BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool +%if ! 0%{?bootstrap} +BuildRequires: libusb-devel +BuildRequires: libxslt-tools +%endif BuildRequires: pam-devel +%if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros +%endif +%if 0%{?suse_version} <= 1315 +BuildRequires: tcpd-devel +%endif BuildRequires: xz -BuildRequires: config(suse-module-tools) -BuildRequires: pkgconfig(blkid) >= 2.24 +BuildRequires: pkgconfig(blkid) >= 2.20 +%if ! 0%{?bootstrap} +BuildRequires: libgcrypt-devel +%if %{with python} +BuildRequires: python +%endif +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 +%endif +%if 0%{?suse_version} <= 1310 +BuildRequires: pkgconfig(libkmod) >= 14 +%else BuildRequires: pkgconfig(libkmod) >= 15 +%endif BuildRequires: pkgconfig(liblzma) +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libmicrohttpd) +%endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) -BuildRequires: pkgconfig(mount) >= 2.20 +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 +%endif +%if 0%{?suse_version} >= 1315 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif +%else +%if 0%{?suse_version} >= 1310 +%ifarch %ix86 x86_64 x32 %arm +BuildRequires: pkgconfig(libseccomp) +%endif +%endif +%endif +%if ! 0%{?bootstrap} +BuildRequires: libapparmor-devel +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) +%if 0%{?suse_version} > 1310 Conflicts: sysvinit +%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else -BuildRequires: docbook-xsl-stylesheets -BuildRequires: gobject-introspection-devel -BuildRequires: gtk-doc -BuildRequires: libgcrypt-devel -BuildRequires: libusb-devel -BuildRequires: libxslt-tools -%if %{with python} -BuildRequires: python -%endif -BuildRequires: libapparmor-devel -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -BuildRequires: pkgconfig(libmicrohttpd) -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd +%if 0%{?suse_version} <= 1310 +Requires: kmod >= 14 +%else Requires: kmod >= 15 +%endif Requires: netcfg Requires: pam-config >= 0.79-5 -BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.25 +Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils +%endif +%if ! 0%{?bootstrap} Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent @@ -131,31 +173,47 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} - -#Git-Clone: git://anongit.freedesktop.org/systemd/systemd -Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif +Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 +Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service +Source1060: boot.udev Source1063: udev-generate-persistent-rule.sh +Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs +# +# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r +Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called +Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch +Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch +Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +Patch18: fix-owner-of-var-log-btmp.patch +# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file +Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -163,11 +221,14 @@ Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch +# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable +Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -Patch37: suse-sysv-bootd-support.diff +# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts +Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file @@ -180,10 +241,18 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) +Patch23: disable-nss-myhostname-warning-bnc-783841.patch +# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) +Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin +Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian +Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -192,8 +261,126 @@ Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch +# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) +Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch +# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com +Patch117: 0001-make-209-working-on-older-dist.patch +# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com +Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch121: 0001-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch151: 0005-logind-fix-policykit-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch158: 0007-networkd-fix-typo.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -202,6 +389,8 @@ Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch +# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com @@ -210,6 +399,8 @@ Patch183: 0001-add-network-device-after-NFS-mount-units.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch +# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) +Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager @@ -222,38 +413,657 @@ Patch191: systemd-dbus-system-bus-address.patch Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/14 +Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +# PATCH-FIX-SUSE Do not clean the data base files of the manual pages +Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch199: 0001-bash-completion-fix-__get_startable_units.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch +# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. +Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch +# PATCH-FIX-UPSTREAM Fix uninitialized memory +Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) +Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch216: 0003-backlight-unify-error-messages.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch +# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) +Patch219: log-target-null-instead-kmsg.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch222: 0001-core-close-socket-fds-asynchronously.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch226: 0002-logind-fix-printf-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch232: 0008-man-update-journald-rate-limit-defaults.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch245: 0007-logind-fix-Display-property-of-user-objects.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch246: 0001-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch247: 0002-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch249: 0004-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch250: 0005-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch252: 0002-journal-properly-detect-language-specified-in-line.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch +# PATCH-FIX-UPSTREAM added at 2014/05/27 +Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch +# PATCH-FIX-UPSTREAM added at 2014/05/27 +Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch262: 0001-virt-rework-container-detection-logic.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +# PATCH-FIX-UPSTREAM added at 2014/06/05 +Patch269: 0001-hwdb-fix-case-sensitive-match.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch272: 0001-umount-modernizations.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch274: 0003-core-allow-transient-mount-units.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU +Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch278: 0001-core-fix-invalid-free-in-killall.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch +# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) +Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch +# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available +Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch284: 0005-po-add-Greek-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch286: 0007-po-add-German-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch295: 0005-man-fix-path-in-crypttab-5.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch296: 0001-units-order-network-online.target-after-network.targ.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch297: 0001-core-use-correct-format-string-for-UIDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch312: 0006-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch314: 0001-architecture-Add-tilegx.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch315: 0002-architecture-Add-cris.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch316: 0003-arch-add-crisv32-to-uname-check.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch317: 0004-architecture-remove-cris-from-uname-list.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch319: 0002-namespace-fix-uninitialized-memory-access.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch320: 0001-machine-don-t-return-uninitialized-variable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch330: 0002-journal-compress-improve-xz-compression-performance.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/10 +Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch335: 0002-util-fix-has-cc-check-and-add-test.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch341: 0001-po-add-Ukrainian-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch347: 0003-Add-quotes-to-warning-message.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch349: 0001-bash-completion-p-option-for-journalctl.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch350: 0002-journalctl-man-allow-only-between-terms.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch355: 0003-Always-check-asprintf-return-code.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch358: 0006-parse_boolean-require-exact-matches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch +# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console Patch362: tty-ask-password-agent-on-console.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch +# PATCH-FIX-UPSTREAM added at 2014/08/01 +Patch367: 0007-hwdb-update.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch370: 0002-switch-root-umount-the-old-root-correctly.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch385: 0008-hwdb-update.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch390: 0001-login-fix-memory-leak-on-DropController.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch +# PATCH-FIX-UPSTREAM added at 2014/08/29 +Patch394: 0001-nspawn-fix-network-interface.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch395: 0001-completion-filter-templates-from-restartable-units.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch396: 0002-systemd-fix-error-message.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch398: 0004-config-parser-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch399: 0005-login-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/02 +Patch400: 0001-login-simplify-controller-handling.patch +# PATCH-FIX-UPSTREAM added at 2014/09/05 +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 +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch416: 0002-util-remove-a-unnecessary-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch418: 0004-shared-conf-parser.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch419: 0005-logind-fix-typo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary +Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-SUSE added on 2014/10/24 +# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved +Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) +Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch436: 0002-bus-remove-unused-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/26 +Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch442: 0004-bootchart-check-return-of-strftime.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch450: 0003-fileio-label-return-error-when-writing-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch452: 0004-sd-event-check-the-value-of-received-signal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch459: 0005-util-avoid-double-close-of-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/10/13 +Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/14 +Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch +# PATCH-FIX-SUSE added at 2014/10/15 +Patch468: avoid-leaking-socket-descriptors.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch473: 0005-cryptsetup-fix-an-OOM-check.patch +# PATCH-FIX-UPSTREAM added at 2014/10/24 +Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +# PATCH-FIX-SUSE added at 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-SUSE added on 2014/11/05 +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch480: 0005-journalctl-correct-help-text-for-until.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch481: 0006-calendarspec-fix-typo-in-annually.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch483: 0008-util-introduce-sethostname_idempotent.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch +# PATCH-FIX-SUSE added at 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch496: 0006-journald-fix-minor-memory-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch498: 0008-journald-fix-memory-leak-on-error-path.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch +# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) +Patch513: 513-nspawn-veth.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -Patch522: 0001-core-rework-device-state-logic.patch +# # UDEV PATCHES # ============ @@ -275,46 +1085,188 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 +Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-SUSE increase result size for programs (bnc#867840) +Patch1010: 1010-udev-increase-result-size-for-programs.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch +# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch +Patch1014: 1014-udev-update-net_id-comments.patch +# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch # PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch Patch1021: 1021-udev-re-add-persistent-net-rules.patch +# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1024: 1024-udev-always-close-lock-file-descriptor.patch +# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch +Patch1026: 1026-udevd-inotify-modernizations.patch +# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch +Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch +# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch +Patch1028: 1028-udev-link-config-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch +Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch +# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch +Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch +# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch +# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch +Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch +# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch +# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch +Patch1044: 1044-rules-update-qemu-hid-rules.patch +# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch # PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch +# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch +Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch +# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch # PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) Patch1051: 1051-check-if-NAME-has-a-value.patch +# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch +# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch +Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch +Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch +# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch +Patch1057: 1057-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch +Patch1058: 1058-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch +# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 +# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch +Patch1081: 1081-udevd-check-return-of-various-functions.patch +# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch +Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch +# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch +Patch1085: 1085-udev-fix-typos.patch +# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch +Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch +# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch +Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch # PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch +# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch +Patch1089: 1089-fix-cgroup-device-controller.patch +# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch +Patch1091: 1091-udev-path_id-update-comments.patch +# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch +Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch +# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch +# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch +Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -522,24 +1474,6 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. -%package -n nss-mymachines -Summary: Plugin for local virtual host name resolution -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-mymachines -nss-myhostname is a plugin for the GNU Name Service Switch (NSS) -functionality of the GNU C Library (glibc) providing host name -resolution for the locally configured containers and virtual machines -systemd-machined knows about. - -%package -n nss-resolve -Summary: Plugin for local hostname resolution via systemd-resolved -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-resolve - %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ @@ -551,12 +1485,13 @@ Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. + %endif %prep -%setup -q -n systemd-%version +%setup -q -n systemd-%{version} echo "Checking whether upstream rpm macros changed..." -diff -au "%{S:10}" src/core/macros.systemd.in +[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} @@ -564,15 +1499,29 @@ cp %{SOURCE7} m4/ %endif # systemd patches +%patch0 -p1 +%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%if 0%{?suse_version} <= 1310 +%patch8 -p1 +%endif +%patch9 -p1 %patch12 -p1 +%patch13 -p0 +%patch15 -p1 %patch16 -p1 %patch17 -p1 +%patch18 -p1 +%patch19 -p0 %patch20 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html @@ -583,45 +1532,418 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch46 -p1 +%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 +%patch93 -p1 +%patch114 -p0 +%if 0%{?suse_version} <= 1310 +%patch117 -p1 +%endif +%patch119 -p1 %patch120 -p1 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 +%patch147 -p0 +%patch148 -p0 +%patch149 -p0 +%patch150 -p0 +%patch151 -p0 +%patch152 -p0 +%patch153 -p0 +%patch154 -p0 +%patch155 -p0 +%patch157 -p0 +%patch158 -p0 +%patch159 -p0 +%patch160 -p0 +%patch161 -p0 +%patch162 -p0 +%patch163 -p0 +%patch164 -p0 +%patch165 -p0 +%patch166 -p0 +%patch167 -p0 +%patch168 -p0 +%patch169 -p0 +%patch170 -p0 +%patch171 -p0 +%patch172 -p0 +%patch173 -p0 +%patch174 -p0 +%patch175 -p0 +%patch176 -p0 %patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 +%patch181 -p1 %patch182 -p1 %patch183 -p1 %patch185 -p1 %patch186 -p1 +%patch187 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 +%patch194 -p0 +%patch196 -p1 +%patch195 -p0 %patch197 -p1 %patch198 -p1 +%patch199 -p0 +%patch200 -p0 +%patch201 -p0 +%patch202 -p0 %patch203 -p1 +%patch204 -p1 +%patch206 -p0 +%patch207 -p0 %patch208 -p1 -%patch338 -p1 +%patch209 -p0 +%patch211 -p0 +%patch212 -p0 +%patch213 -p0 +%patch214 -p0 +%patch215 -p0 +%patch216 -p0 +%patch217 -p0 +%patch218 -p0 +%patch219 -p1 +%patch220 -p0 +%patch221 -p0 +%patch222 -p0 +%patch223 -p0 +%patch224 -p0 +%patch225 -p0 +%patch226 -p0 +%patch227 -p0 +%patch228 -p0 +%patch229 -p0 +%patch230 -p0 +%patch231 -p0 +%patch232 -p0 +%patch233 -p0 +%patch234 -p0 +%patch235 -p0 +%patch236 -p0 +%patch237 -p0 +%patch238 -p0 +%patch239 -p0 +%patch240 -p0 +%patch241 -p0 +%patch242 -p0 +%patch243 -p0 +%patch244 -p0 +%patch245 -p0 +%patch246 -p0 +%patch247 -p0 +%patch248 -p0 +%patch249 -p0 +%patch250 -p0 +%patch251 -p0 +%patch252 -p0 +%patch253 -p0 +%patch254 -p0 +%patch255 -p0 +%patch256 -p0 +%patch257 -p0 +%patch258 -p0 +%patch259 -p0 +%patch260 -p0 +%patch261 -p0 +%patch262 -p0 +%patch263 -p0 +%patch264 -p0 +%patch265 -p0 +%patch266 -p0 +%patch267 -p0 +%patch268 -p0 +%patch269 -p0 +%patch270 -p0 +%patch271 -p0 +%patch272 -p0 +%patch273 -p0 +%patch274 -p0 +%patch275 -p0 +%patch276 -p0 +%patch277 -p0 +%patch278 -p0 +%patch279 -p0 +%patch280 -p0 +%patch281 -p1 +%patch282 -p0 +%patch283 -p0 +%patch284 -p0 +%patch285 -p0 +%patch286 -p0 +%patch287 -p0 +%patch288 -p0 +%patch289 -p0 +%patch290 -p0 +%patch291 -p0 +%patch292 -p0 +%patch293 -p0 +%patch294 -p0 +%patch295 -p0 +%patch296 -p0 +%patch297 -p0 +%patch298 -p0 +%patch299 -p0 +%patch300 -p0 +%patch301 -p0 +%patch302 -p0 +%patch303 -p0 +%patch304 -p0 +%patch305 -p0 +%patch306 -p0 +%patch307 -p0 +%patch308 -p0 +%patch309 -p0 +%patch310 -p0 +%patch311 -p0 +%patch312 -p0 +%patch313 -p0 +%patch314 -p0 +%patch315 -p0 +%patch316 -p0 +%patch317 -p0 +%patch318 -p0 +%patch319 -p0 +%patch320 -p0 +%patch321 -p0 +%patch322 -p0 +%patch323 -p0 +%patch324 -p0 +%patch325 -p0 +%patch326 -p0 +%patch327 -p0 +%patch328 -p0 +%patch329 -p0 +%patch330 -p0 +%patch331 -p0 +%patch332 -p0 +%patch333 -p0 +%patch334 -p0 +%patch335 -p0 +%patch336 -p0 +%patch337 -p0 +%patch338 -p0 +%patch339 -p0 +%patch340 -p0 +%patch341 -p0 +%patch342 -p0 +%patch343 -p0 +%patch344 -p0 %patch345 -p1 -%patch352 -p1 +%patch346 -p0 +%patch347 -p0 +%patch348 -p0 +%patch349 -p0 +%patch350 -p0 +%patch351 -p0 +%patch352 -p0 +%patch353 -p0 +%patch354 -p0 +%patch355 -p0 +%patch356 -p0 +%patch357 -p0 +%patch358 -p0 +%patch359 -p0 +%patch360 -p0 +%patch361 -p0 %patch362 -p1 +%patch363 -p0 +%patch364 -p0 +%patch365 -p0 %patch366 -p1 +%patch367 -p0 %patch368 -p1 +%patch369 -p0 +%patch370 -p0 +%patch371 -p0 +%patch372 -p0 +%patch373 -p0 +%patch374 -p0 +%patch375 -p0 +%patch376 -p0 +%patch377 -p0 +%patch378 -p0 +%patch379 -p0 +%patch380 -p0 +%patch381 -p0 +%patch382 -p0 +%patch383 -p0 +%patch384 -p0 +%patch385 -p0 %patch386 -p1 +%patch387 -p0 +%patch388 -p0 +%patch389 -p0 +%patch390 -p0 +%patch391 -p0 +%patch392 -p0 +%patch393 -p0 +%patch394 -p0 +%patch395 -p0 +%patch396 -p0 +%patch397 -p0 +%patch398 -p0 +%patch399 -p0 +%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 +%patch415 -p0 +%patch416 -p0 +%patch417 -p0 +%patch418 -p0 +%patch419 -p0 +%patch420 -p0 +%patch421 -p0 +%patch422 -p0 +%patch423 -p0 +%patch424 -p0 +%patch425 -p0 +%patch426 -p0 +%patch427 -p0 +%patch428 -p0 +%patch429 -p0 %patch430 -p1 -%patch475 -p1 +%patch431 -p0 +%patch432 -p0 +%patch433 -p0 +%patch434 -p0 +%patch435 -p0 +%patch436 -p0 +%patch437 -p0 +%patch438 -p0 +%patch439 -p0 %ifarch %arm %patch38 -p1 %endif -%patch490 -p1 +%patch440 -p0 +%patch441 -p0 +%patch442 -p0 +%patch443 -p0 +%patch444 -p0 +%patch445 -p0 +%patch446 -p0 +%patch447 -p0 +%patch448 -p0 +%patch449 -p0 +%patch450 -p0 +%patch451 -p0 +%patch452 -p0 +%patch453 -p0 +%patch454 -p0 +%patch455 -p0 +%patch456 -p0 +%patch457 -p0 +%patch458 -p0 +%patch459 -p0 +%patch460 -p0 +%patch461 -p0 +%patch462 -p0 +%patch463 -p0 +%patch464 -p0 +%patch465 -p0 +%patch466 -p0 +%patch467 -p0 +%patch468 -p0 +%patch469 -p0 +%patch470 -p0 +%patch471 -p0 +%patch472 -p0 +%patch473 -p0 +%patch474 -p0 +%patch475 -p0 +%patch476 -p0 +%patch477 -p0 +%patch478 -p0 +%patch479 -p0 +%patch480 -p0 +%patch481 -p0 +%patch482 -p0 +%patch483 -p0 +%patch484 -p0 +%patch485 -p0 +%patch486 -p0 +%patch487 -p0 +%patch488 -p0 +%patch489 -p0 +%patch490 -p0 +%patch491 -p0 +%patch492 -p0 +%patch493 -p0 +%patch494 -p0 +%patch495 -p0 +%patch496 -p0 +%patch497 -p0 +%patch498 -p0 +%patch499 -p0 +%patch500 -p0 +%patch501 -p0 +%patch502 -p0 +%patch503 -p0 +%patch504 -p0 +%patch505 -p0 +%patch506 -p0 +%patch507 -p0 +%patch509 -p0 +%patch510 -p0 +%patch511 -p0 +%patch512 -p0 +%patch513 -p1 +%patch514 -p0 +%patch515 -p0 +%patch516 -p0 +%patch517 -p0 +%patch518 -p1 +%patch519 -p1 %patch520 -p1 -%patch521 -p1 -%patch522 -p1 +%patch521 -p0 # udev patches %patch1001 -p1 @@ -630,31 +1952,131 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 +%if 0%{?suse_version} <= 1310 +%patch1008 -p1 +%endif +%patch1009 -p1 +%patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p0 +%patch1017 -p0 +%patch1018 -p0 +%patch1019 -p0 +%patch1020 -p0 %patch1021 -p1 +%if %{with udevsettle} +%patch1022 -p1 +%endif +%patch1023 -p0 +%patch1024 -p0 +%if %{with blkrrpart} +%patch1025 -p1 +%endif +%patch1026 -p1 +%if %{with blkrrpart} +%patch1027 -p1 +%endif +%patch1028 -p1 +%if %{with blkrrpart} +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%endif %patch1035 -p1 %patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif +%patch1038 -p0 +%if %{with udevsettle} +%patch1039 -p0 +%endif %patch1040 -p1 +%if %{with udevsettle} +%patch1041 -p0 +%patch1042 -p0 +%patch1043 -p0 +%endif +%patch1044 -p0 +%patch1045 -p0 %patch1046 -p1 +%patch1047 -p0 +%patch1048 -p0 +%patch1049 -p0 %patch1050 -p1 %patch1051 -p1 +%patch1052 -p0 %patch1053 -p1 %if %{with blkrrpart} +%patch1054 -p0 %else %patch1055 -p1 %endif +%patch1056 -p0 +%if %{with udevsettle} +%patch1057 -p0 +%else +%patch1058 -p0 +%endif +%patch1059 -p0 %patch1060 -p1 +%patch1061 -p0 %patch1062 -p1 +%if %{with parentpathid} +%patch1063 -p0 +%endif +%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 +%patch1080 -p0 +%patch1081 -p0 +%patch1082 -p0 +%patch1083 -p0 +%patch1084 -p0 +%patch1085 -p0 +%patch1086 -p0 +%patch1087 -p0 %patch1088 -p1 +%patch1089 -p1 +%if %{with parentpathid} +%patch1090 -p0 +%patch1091 -p0 +%endif +%patch1092 -p0 +%patch1093 -p0 +%patch1094 -p0 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 +%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -674,6 +2096,17 @@ else sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c fi +%if 0%{?suse_version} <= 1310 +# +# Older versions like oS 13.1 do not distinguish between +# network.target and network-online.target +# +for f in src/core/service.c src/insserv-generator/insserv-generator.c +do + sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f +done +%endif + # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 @@ -714,11 +2147,11 @@ cflags () esac set +o noclobber } -autoreconf -fi +autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=e -export CFLAGS="%{optflags}" +export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" export LDFLAGS %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" @@ -744,7 +2177,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS --disable-gudev \ --disable-myhostname \ --disable-manpages \ - --disable-machined \ %else --enable-manpages \ %if %{with python} @@ -752,10 +2184,16 @@ cflags -Wl,--hash-size=8599 LDFLAGS %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%endif +%if %{with compat_libs} + --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ +%if 0%{?suse_version} <= 1310 + --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ +%endif %if ! 0%{?has_efi} --disable-efi \ %endif @@ -764,15 +2202,11 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ +%if 0%{?suse_version} > 1310 + --disable-multi-seat-x \ +%endif %if %{without networkd} --disable-networkd \ -%endif -%if %{without sysvcompat} - --with-sysvinit-path= \ - --with-sysvrcnd-path= \ -%endif -%if %{without resolved} - --disable-resolved \ %endif --disable-kdbus make %{?_smp_mflags} @@ -781,9 +2215,19 @@ make %{?_smp_mflags} update-man-list man %endif %install -%if !0%{?bootstrap} -cp man/man[0-9]/*.[0-9] man/ -%endif +# Use refreshed manual pages +for man in man/*.[0-9] +do + section=${man##*.} + test -d man/man${section} || continue + new=man/man${section}/${man##*/} + if test -s $new -a $new -nt $man + then + cp -p $new $man + else + sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man + fi +done make install DESTDIR="%buildroot" # move to %{_lib} @@ -796,17 +2240,24 @@ ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd - %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif - +%if 0%{?suse_version} <= 1310 +ln -sf /lib/firmware %{buildroot}/usr/lib/firmware +%endif %if ! 0%{?bootstrap} +install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif +sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} +sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} +sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} +install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule +install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -824,7 +2275,28 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target - +# aliases for /etc/init.d/* +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service +ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service +install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service +ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service +ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service +ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -897,6 +2369,15 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ +%if ! 0%{?bootstrap} +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done +%endif +%endif + mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed @@ -913,8 +2394,10 @@ done > files.completion > files.completion %endif +%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd +%endif %if %{without compat_libs} lib=%{_libdir}/libsystemd.so @@ -926,6 +2409,30 @@ do done %endif +%if 0%{suse_version} <= 1310 +cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' + [Unit] + Description=Fix against deadlock at shutdown + Wants=remote-fs.target remote-fs-pre.target + Before=remote-fs.target systemd-logind.service + After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target + ConditionPathExists=|/etc/init.d/autofs + ConditionPathExists=|/etc/init.d/nfs + + [Service] + Type=oneshot + RemainAfterExit=true + ExecStart=/bin/true + ExecStop=-/etc/init.d/autofs stop + ExecStop=-/etc/init.d/nfs stop + + [Install] + WantedBy=remote-fs.target + EOF + mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants + ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants +%endif + # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ @@ -973,7 +2480,6 @@ fi getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif -systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -1021,6 +2527,8 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -1050,6 +2558,7 @@ fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : +%{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : @@ -1148,9 +2657,6 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig -%post -n nss-mymachines -p /sbin/ldconfig -%postun -n nss-mymachines -p /sbin/ldconfig - %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : @@ -1173,26 +2679,17 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl -%if %{with networkd} -%{_bindir}/networkctl -%endif +%{_bindir}/systemd-sleep-grub %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl -%if ! 0%{?bootstrap} %{_bindir}/machinectl -%endif %{_bindir}/systemctl %{_bindir}/systemd-analyze -%{_bindir}/coredumpctl +%{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta -%{_bindir}/systemd-escape -%{_bindir}/systemd-firstboot -%{_bindir}/systemd-path -%{_bindir}/systemd-sysusers %{_bindir}/systemd-notify -%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -1235,6 +2732,7 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -1273,19 +2771,12 @@ exit 0 %{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif -%{_prefix}/lib/systemd/system-generators/systemd-debug-generator -%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator -%if %{with sysvcompat} -%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator -%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator -%endif %{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator -%{_prefix}/lib/systemd/system-preset/ -%{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user @@ -1314,23 +2805,13 @@ exit 0 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf -%config(noreplace) %{_sysconfdir}/systemd/coredump.conf -%if !0%{?bootstrap} -%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf -%endif -%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf -%if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf -%endif -%if %{with networkd} -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf -%endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -1347,24 +2828,15 @@ exit 0 %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target -%{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service -%if %{with networkd} -%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service -%endif %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service -%if !0%{?bootstrap} %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service -%endif %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions -%if !0%{?bootstrap} -%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy -%endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy @@ -1414,11 +2886,8 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed -%if %{with resolved} -%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf -%{_sysconfdir}/systemd/resolved.conf -%{_libdir}/libnss_resolve.so.2 -%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service +%if 0%{?suse_version} > 1310 +%{_datadir}/pkgconfig/systemd.pc %endif %if ! 0%{?bootstrap} @@ -1443,7 +2912,9 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h -%{_libdir}/pkgconfig/systemd.pc +%if 0%{?suse_version} <= 1310 +%{_datadir}/pkgconfig/systemd.pc +%endif %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -1505,6 +2976,7 @@ exit 0 %{_prefix}/lib/udev/rules.d/*.rules %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* +%{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin @@ -1535,6 +3007,9 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so +%if 0%{?suse_version} <= 1310 +%{_datadir}/pkgconfig/udev.pc +%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc @@ -1568,9 +3043,8 @@ exit 0 %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ -%if %{with sysvcompat} %{_localstatedir}/log/README -%endif +/etc/init.d/systemd-journald %files -n nss-myhostname %defattr(-, root, root) @@ -1583,10 +3057,6 @@ exit 0 %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd - -%files -n nss-mymachines -%defattr(-,root,root) -%_libdir/libnss_mymachines.so* %endif %changelog diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch index 898a6548..85027c50 100644 --- a/systemd-pam_config.patch +++ b/systemd-pam_config.patch @@ -1,16 +1,14 @@ ---- - src/login/systemd-user | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-218/src/login/systemd-user -=================================================================== ---- systemd-218.orig/src/login/systemd-user -+++ systemd-218/src/login/systemd-user -@@ -2,5 +2,5 @@ - # - # Used by systemd --user instances. +diff --git a/src/login/systemd-user b/src/login/systemd-user +index 7b57dbf..c0fc793 100644 +--- a/src/login/systemd-user ++++ b/src/login/systemd-user +@@ -2,7 +2,7 @@ --account include system-auth --session include system-auth -+account include common-account -+session include common-session + # Used by systemd when launching systemd user instances. + +-account include system-auth +-session include system-auth ++account include common-account ++session include common-session + auth required pam_deny.so + password required pam_deny.so diff --git a/systemd-powerd-initctl-support.patch b/systemd-powerd-initctl-support.patch index 675124ba..bc0e3ca4 100644 --- a/systemd-powerd-initctl-support.patch +++ b/systemd-powerd-initctl-support.patch @@ -12,8 +12,10 @@ Signed-off-by: Hannes Reinecke src/initctl/initctl.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) ---- systemd-219.orig/src/initctl/initctl.c -+++ systemd-219/src/initctl/initctl.c +diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c +index 468df35..d4794a6 100644 +--- a/src/initctl/initctl.c ++++ b/src/initctl/initctl.c @@ -32,8 +32,11 @@ #include #include @@ -34,12 +36,11 @@ Signed-off-by: Hannes Reinecke #define SERVER_FD_MAX 16 #define TIMEOUT_MSEC ((int) (DEFAULT_EXIT_USEC/USEC_PER_MSEC)) -@@ -141,7 +145,54 @@ static void change_runlevel(Server *s, i +@@ -141,7 +145,53 @@ static void change_runlevel(Server *s, int runlevel) { } } +static int send_shutdownd(unsigned delay, char mode, const char *message) { -+#ifdef HAVE_SYSV_COMPAT + usec_t t = now(CLOCK_REALTIME) + delay * USEC_PER_MINUTE; + struct sd_shutdown_command c = { + .usec = t, @@ -80,7 +81,7 @@ Signed-off-by: Hannes Reinecke + + if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) + return -errno; -+#endif ++ + return 0; +} + @@ -89,7 +90,7 @@ Signed-off-by: Hannes Reinecke assert(s); assert(req); -@@ -184,9 +235,28 @@ static void request_process(Server *s, c +@@ -184,9 +234,28 @@ static void request_process(Server *s, const struct init_request *req) { return; case INIT_CMD_POWERFAIL: @@ -119,3 +120,6 @@ Signed-off-by: Hannes Reinecke return; case INIT_CMD_CHANGECONS: +-- +1.8.1.4 + diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index a9e12af8..def95a7d 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,4 +1,3 @@ -addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot\.8.*") @@ -17,7 +16,6 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") -addFilter("nss-mymachines.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") diff --git a/systemd-sleep-grub b/systemd-sleep-grub new file mode 100644 index 00000000..5cd8bef3 --- /dev/null +++ b/systemd-sleep-grub @@ -0,0 +1,204 @@ +#!/bin/bash +# +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. + +set -x + +prepare-parameters() +{ + eval `grep LOADER_TYPE= /etc/sysconfig/bootloader` + + if [ x"$LOADER_TYPE" = "xgrub2" -o x"$LOADER_TYPE" = "xgrub2-efi" ]; then + GRUBONCE="/usr/sbin/grub2-once" + GRUBDEFAULT="/boot/grub2/grubenv" + GRUB2EDITENV="/usr/bin/grub2-editenv" + GRUB2CONF="/boot/grub2/grub.cfg" + BLKID="/usr/sbin/blkid" + getkernels="getkernels-grub2" + fi +} + +##################################################################### +# gets a list of available kernels from /boot/grub2/grub.cfg +# kernels are in the array $KERNELS, output to stdout to be eval-ed. +getkernels-grub2() +{ + local I DUMMY MNT ROOTDEV + declare -i I=0 J=-1 + + # we need the root partition later to decide if this is the kernel to select + while read ROOTDEV MNT DUMMY; do + [ "$ROOTDEV" = "rootfs" ] && continue # not what we are searching for + if [ "$MNT" = "/" ]; then + break + fi + done < /proc/mounts + + while read LINE; do + case $LINE in + menuentry\ *) + let J++ + ;; + set\ default*) + local DEFAULT=${LINE#*default=} + + if echo $DEFAULT | grep -q saved_entry ; then + local SAVED=`$GRUB2EDITENV $GRUBDEFAULT list | sed -n s/^saved_entry=//p` + if [ -n "$SAVED" ]; then + DEFAULT_BOOT=$($GRUBONCE --show-mapped "$SAVED") + fi + fi + + ;; + linux*noresume*|module*xen*noresume*) + echo " Skipping grub entry #${J}, because it has the noresume option" >&2 + ;; + linux*root=*|module*xen*root=*) + local ROOT + ROOT=${LINE#*root=} + DUMMY=($ROOT) + ROOT=${DUMMY[0]} + + if [ x"${ROOT:0:5}" = "xUUID=" ]; then + UUID=${ROOT#UUID=} + if [ -n "$UUID" ]; then + ROOT=$($BLKID -U $UUID) + fi + fi + + if [ "$(stat -Lc '%t:%T' $ROOT)" != "$(stat -Lc '%t:%T' $ROOTDEV)" ]; then + echo " Skipping grub entry #${J}, because its root= parameter ($ROOT)" >&2 + echo " does not match the current root device ($ROOTDEV)." >&2 + continue + fi + DUMMY=($LINE) # kernel (hd0,1)/boot/vmlinuz-ABC root=/dev/hda2 + echo "KERNELS[$I]='${DUMMY[1]##*/}'" # vmlinuz-ABC + echo "MENU_ENTRIES[$I]=$J" + # DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO + let I++ + ;; + linux*|module*xen*) + # a kernel without "root="? We better skip that one... + echo " Skipping grub entry #${J}, because it has no root= option" >&2 + ;; + *) ;; + esac + done < "$GRUB2CONF" +} + +############################################################# +# runs grubonce from the grub package to select which kernel +# to boot on next startup +grub-once() +{ + if [ -x "$GRUBONCE" ]; then + echo " running '$GRUBONCE $1'" + $GRUBONCE $1 + else + echo "WARNING: $GRUBONCE not found, not preparing bootloader" + fi +} + +############################################################# +# restore grub default after (eventually failed) resume +grub-once-restore() +{ + echo "INFO: running grub-once-restore" + prepare-parameters + $GRUB2EDITENV $GRUBDEFAULT unset next_entry +} + +############################################################################# +# try to find a kernel image that matches the actually running kernel. +# We need this, if more than one kernel is installed. This works reasonably +# well with grub, if all kernels are named "vmlinuz-`uname -r`" and are +# located in /boot. If they are not, good luck ;-) +find-kernel-entry() +{ + NEXT_BOOT=-1 + ARCH=`uname -m` + declare -i I=0 + # DEBUG "running kernel: $RUNNING" DIAG + while [ -n "${KERNELS[$I]}" ]; do + BOOTING="${KERNELS[$I]}" + if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then + # DEBUG "Found kernel symlink $BOOTING => $IMAGE" INFO + BOOTING=$IMAGE + fi + case $ARCH in + ppc*) BOOTING="${BOOTING#*vmlinux-}" ;; + *) BOOTING="${BOOTING#*vmlinuz-}" ;; + esac + if [ "$RUNNING" == "$BOOTING" ]; then + NEXT_BOOT=${MENU_ENTRIES[$I]} + echo " running kernel is grub menu entry $NEXT_BOOT (${KERNELS[$I]})" + break + fi + let I++ + done + # if we have not found a kernel, issue a warning. + # if we have found a kernel, we'll do "grub-once" later, after + # prepare_suspend finished. + if [ $NEXT_BOOT -eq -1 ]; then + echo "WARNING: no kernelfile matching the running kernel found" + fi +} + +############################################################################# +# if we did not find a kernel (or BOOT_LOADER is not GRUB) check, +# if the running kernel is still the one that will (probably) be booted for +# resume (default entry in menu.lst or, if there is none, the kernel file +# /boot/vmlinuz points to.) +# This will only work, if you use "original" SUSE kernels. +# you can always override with the config variable set to "yes" +prepare-grub() +{ + echo "INFO: running prepare-grub" + prepare-parameters + eval `$getkernels` + RUNNING=`uname -r` + find-kernel-entry + + RET=0 + + if [ $NEXT_BOOT -eq -1 ]; then + # which kernel is booted with the default entry? + BOOTING="${KERNELS[$DEFAULT_BOOT]}" + # if there is no default entry (no menu.lst?) we fall back to + # the default of /boot/vmlinuz. + [ -z "$BOOTING" ] && BOOTING="vmlinuz" + if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then + BOOTING=$IMAGE + fi + BOOTING="${BOOTING#*vmlinuz-}" + echo "running kernel: '$RUNNING', probably booting kernel: '$BOOTING'" + if [ "$BOOTING" != "$RUNNING" ]; then + echo "ERROR: kernel version mismatch, cannot suspend to disk" + echo "running: $RUNNING booting: $BOOTING" >> $INHIBIT + RET=1 + fi + else + # set the bootloader to the running kernel + echo " preparing boot-loader: selecting entry $NEXT_BOOT, kernel /boot/$BOOTING" + T1=`date +"%s%N"` + sync; sync; sync # this is needed to speed up grub-once on reiserfs + T2=`date +"%s%N"` + echo " grub-once: `grub-once $NEXT_BOOT`" + T3=`date +"%s%N"` + S=$(((T2-T1)/100000000)); S="$((S/10)).${S:0-1}" + G=$(((T3-T2)/100000000)); G="$((G/10)).${G:0-1}" + echo " time needed for sync: $S seconds, time needed for grub: $G seconds." + fi + + return $RET +} + + +###### main() + +if [ "$1" = pre ] ; then + prepare-grub +fi +if [ "$1" = post ] ; then + grub-once-restore +fi diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index dd7c0d80..61d05349 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -5,22 +5,20 @@ Subject: systemd tmp safe defaults Fix regression in the default for tmp auto-deletion (FATE#314974). SUSE policy is to not clean /tmp by default. --- - tmpfiles.d/tmp.conf | 5 +++-- + tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -Index: systemd/tmpfiles.d/tmp.conf -=================================================================== ---- systemd.orig/tmpfiles.d/tmp.conf -+++ systemd/tmpfiles.d/tmp.conf +--- systemd-206.orig/tmpfiles.d/tmp.conf ++++ systemd-206/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override --v /tmp 1777 root root 10d --v /var/tmp 1777 root root 30d +-d /tmp 1777 root root 10d +-d /var/tmp 1777 root root 30d +# SUSE policy: we don't clean those directories -+v /tmp 1777 root root - -+v /var/tmp 1777 root root - ++d /tmp 1777 root root - ++d /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index 7a555d36..78b33870 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,575 +1,9 @@ -------------------------------------------------------------------- -Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de - -- Add 0001-core-rework-device-state-logic.patch to fix spurious - automated umount after mount. - -------------------------------------------------------------------- -Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com - -- mark more subpackages as !bootstrap for systemd-mini usage. - -------------------------------------------------------------------- -Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org - -- spec : remove --with-firmware-path, firmware loader was removed in v217 -- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) -- spec: Do not enable systemd-readahead-collect.service and -systemd-readahead-replay.service as these do not exist anymore. -- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch - Yast was fixed to write all timezone changes exactly how timedated expects - things to be done. -- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg - package handles the migration from /etc/HOSTNAME to /etc/hostname - and owns both files. --spec: remove boot.udev and systemd-journald.init as they currently - serve no purpose. -- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we - are in sysvcompat-only codepath, also remove the code targetting other - distributions, never compiled as the TARGET_$DISTRO macros are never defined. -- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT -- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards -- insserv-generator.patch: Only build when sysvcompat is enabled -- vhangup-on-all-consoles.patch add a comment indicating this is a workaround - for a kernel bug. -- spec: Add option to allow disabling sysvinit compat at build time. -- spec: Add option to enable resolved at build time. -- spec: Remove all %ifs for !factory products, current systemd releases can - neither be built nor installed in older products without upgrading - several components of the base system. - (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) -- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when - those init scripts still existed. (dummy localfs.service source: gone) -- systemd-sleep-grub: moved to the grub2 package where it belongs as a - suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) -- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds - config.h everywhere in the preprocessor cmdline. - -------------------------------------------------------------------- -Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 219 -* systemd units can now be "unsupported" (like, for example, - .device in a containers), similar to the "skipped" state in - SUSE's prior sysvinit scripts. -* tmpfiles gained the 'v' type for creating btrfs subvolumes. -* tmpfiles gained the 'a' type for setting ACLs. -* systemd-nspawn gained new switches: --ephemeral, --template -* The /var/lib/containers location is deprecated and replaced by - /var/lib/machines. -* machinectl gained the copy-from and copy-to commands. -* machinectl now knows a "bind" command (for use with nspawn) -* new "systemd-importd" daemon to download container images and run - them as nspawn containers. -* networkd collects LLDP network announcements, if available, and - so shown in networkctl. -* The fallback terminal type was changed from "vt102" to "vt220", - allowing PgUp/PgDn keys to work. -* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, - useful should the regular shutdown hang. -* Removing storage will cause systemd to unmount the associated - mountpoints so that they don't linger around. - -------------------------------------------------------------------- -Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de - -- Add suse-sysv-bootd-support.diff (reinstate old - Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) - -------------------------------------------------------------------- -Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de - -- Update to systemd v218-1050-g38ab096 -- Remove patches - use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) -- Reinstate and improve (remove huge indents from) - tty-ask-password-agent-on-console.patch, - 0014-journald-with-journaling-FS.patch, rootsymlink_generator. - -------------------------------------------------------------------- -Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com - -- disable systemd-resolved for now as it interacts not well with - our methods and security has concerns regarding spoofing. bsc#917781 - ------------------------------------------------------------------- Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - Add patch kbd-model-map.patch to add missed keyboard layouts which are offered by YaST2 (bsc#910643 and boo#897803) -------------------------------------------------------------------- -Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 218 -* New utilities: systemd-timesyncd (SNTP client), - systemd-resolved, systemd-networkd, networkctl, - systemd-sysusers -* machinectl gained a "poweroff" command for clean container shutdown -* The udev hwdb now contains DPI information for mice. -* Userspace firmware loading support has been removed and - the minimum supported kernel version is thus bumped to 3.7. -- Remove patches: - G=gone locally, is upstream; - D=dropped: no longer needed; - N=no longer applies to source nor is it deemed needed; - K=killed: no longer applicable and too complex to resolve: - ---- - G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch - K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch - K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch - K handle-SYSTEMCTL_OPTIONS-environment-variable.patch - K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch - K log-target-null-instead-kmsg.patch - K tty-ask-password-agent-on-console.patch - K 513-nspawn-veth.patch - K 1087-infinit-timeout-for-kmod-loaded-modules.patch - D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch - D avoid-leaking-socket-descriptors.patch - D 0001-make-fortify-happy-with-ppoll.patch - N fix-owner-of-var-log-btmp.patch - N disable-nss-myhostname-warning-bnc-783841.patch - N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch - N 0001-make-209-working-on-older-dist.patch - N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch - N tmpfiles-do-not-clean-for-mandb-index-files.patch - G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch - G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc - G optionally-warn-if-nss-myhostname-is-called.patch - G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch - G 0004-getty-generator-properly-escape-instance-names.patch - G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch - G 0008-Reset-signal-mask-on-re-exec-to-init.patch - G 0001-login-fix-pos-array-allocation.patch - G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch - G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - G 0005-Replace-var-run-with-run-in-remaining-places.patch - G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch - G 0007-README-document-that-var-run-must-be-a-symlink-run.patch - G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch - G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch - G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch - G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - G 0001-Fix-systemd-stdio-bridge-symlink.patch - G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch - G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch - G 0004-man-document-missing-options-of-systemd-run.patch - G 0005-systemd-run-add-some-extra-safety-checks.patch - G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch - G 0007-journal-forget-file-after-encountering-an-error.patch - G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch - G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch - G 0010-man-update-link-to-LSB.patch - G 0011-man-systemd-bootchart-fix-spacing-in-command.patch - G 0012-man-add-missing-comma.patch - G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch - G 0002-manager-flush-memory-stream-before-using-the-buffer.patch - G 0003-busname-don-t-drop-service-from-the-result-string.patch - G 0004-fix-off-by-one-error-in-array-index-assertion.patch - G 0005-logind-fix-policykit-checks.patch - G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch - G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch - G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch - G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch - G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch - G 0007-networkd-fix-typo.patch - G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch - G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch - G 0012-journald-remove-stray-reset-of-error-return-value.patch - G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch - G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch - G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch - G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch - G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch - G 0005-sd-daemon-fix-incorrect-variable-access.patch - G 0006-sd-event-initialization-perturbation-value-right-bef.patch - G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch - G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch - G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch - G 0001-journal-fix-export-of-messages-containing-newlines.patch - G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch - G 0003-tty-ask-password-agent-return-negative-errno.patch - G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch - G 0005-systemd-python-fix-failing-assert.patch - G 0007-dbus-suppress-duplicate-and-misleading-messages.patch - G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch - G 0001-bash-completion-fix-__get_startable_units.patch - G 0002-sysctl-replaces-some-slashes-with-dots.patch - G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch - G 0004-implement-a-union-to-pad-out-file_handle.patch - G shut-up-annoying-assertion-monotonic-clock-message.patch - G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch - G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch - G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch - G 0003-analyze-fix-plot-with-bad-y-size.patch - G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch - G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch - G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch - G 0002-backlight-do-nothing-if-max_brightness-is-0.patch - G 0003-backlight-unify-error-messages.patch - G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch - G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch - G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch - G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch - G 0001-core-close-socket-fds-asynchronously.patch - G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch - G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch - G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch - G 0002-logind-fix-printf-format.patch - G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch - G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch - G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch - G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch - G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch - G 0008-man-update-journald-rate-limit-defaults.patch - G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch - G 0010-logind-allow-suspending-if-there-are-no-displays.patch - G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch - G 0002-man-note-that-entire-sections-can-now-be-ignored.patch - G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch - G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch - G 0006-login-add-mir-to-the-list-of-session-types.patch - G 0007-logind-fix-Display-property-of-user-objects.patch - G 0001-hwdb-update.patch - G 0002-hwdb-update.patch - G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch - G 0004-hwdb-update.patch - G 0005-hwdb-update.patch - G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch - G 0002-journal-properly-detect-language-specified-in-line.patch - G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch - G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch - G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch - G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch - G 0002-nspawn-restore-journal-directory-is-empty-check.patch - G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch - G 0004-socket-properly-handle-if-our-service-vanished-durin.patch - G 0001-Do-not-unescape-unit-names-in-Install-section.patch - G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch - G 0001-virt-rework-container-detection-logic.patch - G 0002-fsck-include-device-name-in-the-message-about-missin.patch - G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch - G 0004-util-ignore_file-should-not-allow-files-ending-with.patch - G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch - G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch - G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch - G 0001-hwdb-fix-case-sensitive-match.patch - G 0001-sd-event-restore-correct-timeout-behaviour.patch - G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch - G 0001-umount-modernizations.patch - G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch - G 0003-core-allow-transient-mount-units.patch - G 0004-systemd-detect-virt-only-discover-Xen-domU.patch - G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch - G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch - G 0001-core-fix-invalid-free-in-killall.patch - G 0003-install-fix-invalid-free-in-unit_file_mask.patch - G 0001-systemd-detect-virt-detect-s390-virtualization.patch - G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch - G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch - G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch - G 0005-po-add-Greek-translation.patch - G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0007-po-add-German-translation.patch - G 0009-core-clean-up-signal-reset-logic-when-reexec.patch - G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch - G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch - G 0012-core-transaction-avoid-misleading-error-message-when.patch - G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch - G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch - G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch - G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch - G 0005-man-fix-path-in-crypttab-5.patch - G 0001-units-order-network-online.target-after-network.targ.patch - G 0001-core-use-correct-format-string-for-UIDs.patch - G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch - G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch - G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch - G 0002-journald-make-MaxFileSec-really-default-to-1month.patch - G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch - G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch - G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch - G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch - G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch - G 0001-parse_uid-return-ENXIO-for-1-uids.patch - G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch - G 0003-localed-consider-an-unset-model-as-a-wildcard.patch - G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch - G 0005-bus-close-a-bus-that-failed-to-connect.patch - G 0006-hwdb-update.patch - G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-architecture-Add-tilegx.patch - G 0002-architecture-Add-cris.patch - G 0003-arch-add-crisv32-to-uname-check.patch - G 0004-architecture-remove-cris-from-uname-list.patch - G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch - G 0002-namespace-fix-uninitialized-memory-access.patch - G 0001-machine-don-t-return-uninitialized-variable.patch - G 0002-vconsole-setup-run-setfont-before-loadkeys.patch - G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch - G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch - G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch - G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch - G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch - G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch - G 0007-service-flush-status-text-and-errno-values-each-time.patch - G 0001-journal-compress-return-early-in-uncompress_startswi.patch - G 0002-journal-compress-improve-xz-compression-performance.patch - G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch - G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch - G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch - G 0001-event-pull-in-sd-event.h-from-event-util.h.patch - G 0002-util-fix-has-cc-check-and-add-test.patch - G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch - G 0004-fileio-quote-more-shell-characters-in-envfiles.patch - G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch - G 0002-units-serial-getty-.service-use-the-default-RestartS.patch - G 0001-po-add-Ukrainian-translation.patch - G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch - G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch - G 0001-detect-virt-Fix-Xen-domU-discovery.patch - G 0002-Be-more-verbose-when-bind-or-listen-fails.patch - G 0003-Add-quotes-to-warning-message.patch - G 0004-systemd-return-the-first-error-from-manager_startup.patch - G 0001-bash-completion-p-option-for-journalctl.patch - G 0002-journalctl-man-allow-only-between-terms.patch - G 0003-systemd-use-pager-for-test-and-help.patch - G 0001-bus-proxyd-fix-incorrect-comparison.patch - G 0002-shell-completion-prevent-mangling-unit-names.patch - G 0003-Always-check-asprintf-return-code.patch - G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch - G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch - G 0006-parse_boolean-require-exact-matches.patch - G 0007-drop_duplicates-copy-full-BindMount-struct.patch - G 0008-shell-completion-prevent-mangling-unit-names-bash.patch - G 0009-journald-always-add-syslog-facility-for-messages-com.patch - G 0001-sysv-order-initscripts-which-provide-network-before-.patch - G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch - G 0003-keymap-Annotate-all-micmute-workarounds.patch - G 0007-hwdb-update.patch - G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch - G 0002-switch-root-umount-the-old-root-correctly.patch - G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch - G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch - G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch - G 0006-login-share-VT-signal-handler-between-sessions.patch - G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch - G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch - G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch - G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch - G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch - G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch - G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch - G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch - G 0003-keymap-Fix-HP-Pavillon-DV7.patch - G 0004-hwdb-update-format-description-and-document-reloadin.patch - G 0008-hwdb-update.patch - G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch - G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch - G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - G 0001-login-fix-memory-leak-on-DropController.patch - G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch - G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch - G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - G 0001-nspawn-fix-network-interface.patch - G 0001-completion-filter-templates-from-restartable-units.patch - G 0002-systemd-fix-error-message.patch - G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch - G 0004-config-parser-fix-mem-leak.patch - G 0005-login-fix-mem-leak.patch - G 0001-login-simplify-controller-handling.patch - G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch - G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0009-hwdb-update.patch - G 0001-systemctl-allow-to-change-the-default-target-without.patch - G 0001-activate-fix-fd-leak-in-do_accept.patch - G 0002-analyze-avoid-a-null-dereference.patch - G 0003-analyze-fix-mem-leak.patch - G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch - G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch - G 0006-bus-unref-buscreds-on-failure.patch - G 0007-core-fix-a-potential-mem-leak.patch - G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch - G 0009-journal-do-not-leak-mmaps-on-OOM.patch - G 0010-manager-use-correct-cleanup-function.patch - G 0001-core-fix-resource-leak-in-manager_environment_add.patch - G 0002-util-remove-a-unnecessary-check.patch - G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch - G 0004-shared-conf-parser.patch - G 0005-logind-fix-typo.patch - G 0006-systemctl-fix-resource-leak-CID-1237747.patch - G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch - G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch - G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch - G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch - G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch - G 0003-mount-order-options-before-other-arguments-to-mount.patch - G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch - G 0005-shared-label.h-add-missing-stdio.h-include.patch - G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch - G 0001-login-pause-devices-before-acknowledging-VT-switches.patch - G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch - G 0001-socket-introduce-SELinuxContextFromNet-option.patch - G 0002-util-avoid-non-portable-__WORDSIZE.patch - G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch - G 0002-bus-remove-unused-check.patch - G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch - G 0001-logind-add-support-for-Triton2-Power-Button.patch - G 0002-logind-add-support-for-TPS65217-Power-Button.patch - G 0001-shutdownd-clean-up-initialization-of-struct.patch - G 0003-bootchart-parse-userinput-with-safe_atoi.patch - G 0004-bootchart-check-return-of-strftime.patch - G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch - G 0001-journalctl-do-not-output-reboot-markers-when-running.patch - G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch - G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch - G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch - G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch - G 0003-fileio-label-return-error-when-writing-fails.patch - G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch - G 0004-sd-event-check-the-value-of-received-signal.patch - G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch - G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch - G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch - G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch - G 0003-sd-bus-check-return-value-of-vasprintf.patch - G 0004-core-map-the-rescue-argument-to-rescue.target.patch - G 0005-util-avoid-double-close-of-fd.patch - G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch - G 0001-tmpfiles-compare-return-against-correct-errno.patch - G 0001-shell-completion-fix-completion-of-inactive-units.patch - G 0002-shell-completion-propose-templates-for-disable-re-en.patch - G 0003-man-we-don-t-have-Wanted-dependency.patch - G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch - G 0001-systemd-continue-switch-root-even-if-umount-fails.patch - G 0002-systemd-try-harder-to-bind-to-notify-socket.patch - G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch - G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch - G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch - G 0004-journal-do-server_vacuum-for-sigusr1.patch - G 0005-cryptsetup-fix-an-OOM-check.patch - G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch - G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch - G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch - G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch - G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch - G 0005-journalctl-correct-help-text-for-until.patch - G 0006-calendarspec-fix-typo-in-annually.patch - G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch - G 0008-util-introduce-sethostname_idempotent.patch - G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch - G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch - G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch - G 0012-manager-do-not-print-anything-while-passwords-are-be.patch - G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch - G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch - G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch - G 0002-snapshot-return-error-when-snapshot-exists.patch - G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch - G 0004-Raise-level-of-Found-dependency.-lines.patch - G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch - G 0006-journald-fix-minor-memory-leak.patch - G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch - G 0008-journald-fix-memory-leak-on-error-path.patch - G 0009-units-make-systemd-journald.service-Type-notify.patch - G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch - G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch - G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch - G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch - G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch - G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch - G 0001-systemctl-let-list-units-unit-files-honour-type.patch - G 0002-systemctl-obey-state-in-list-unit-files.patch - G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch - G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch - G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch - G 0001-selinux-access-fix-broken-ternary-operator.patch - G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch - G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch - G 0004-core-fix-transaction-destructiveness-check-once-more.patch - G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch - G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch - G 1009-cdrom_id-use-the-old-MMC-fallback.patch - G 1010-udev-increase-result-size-for-programs.patch - G 1014-udev-update-net_id-comments.patch - G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch - G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch - G 1017-udev-serialize-synchronize-block-device-event-handli.patch - G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch - G 1019-udev-avoid-use-of-uninitialized-err.patch - G 1020-udev-keyboard-also-hook-into-change-events.patch - G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch - G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch - G 1024-udev-always-close-lock-file-descriptor.patch - G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch - G 1026-udevd-inotify-modernizations.patch - G 1027-udev-synthesize-change-events-for-partitions-when-to.patch - G 1028-udev-link-config-fix-mem-leak.patch - G 1029-udev-try-first-re-reading-the-partition-table.patch - G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch - G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch - G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch - G 1033-udev-really-exclude-device-mapper-from-block-device.patch - G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch - G 1038-udev-fix-invalid-free-in-enable_name_policy.patch - G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch - G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch - G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch - G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch - G 1044-rules-update-qemu-hid-rules.patch - G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch - G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch - G 1048-udev-net_setup_link-add-a-bit-more-logging.patch - G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch - G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch - G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch - G 1056-udevd-add-event-timeout-commandline-option.patch - G 1057-udev-unify-event-timeout-handling.patch - G 1058-udev-unify-event-timeout-handling.patch - G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch - G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch - G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch - G 1065-udev-bump-event-timeout-to-60-seconds.patch - G 1067-udev-always-resolve-correctly-database-names-on-chan.patch - G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch - G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch - G 1070-rules-net-setup-link-remove-stray-linebreak.patch - G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch - G 1072-udev-netif_rename-don-t-log-to-kmsg.patch - G 1073-udev-drop-print_kmsg.patch - G 1074-udev-fix-copy-paste-error-in-log-message.patch - G 1075-udev-timeout-increase-timeout.patch - G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch - G 1078-udev-remove-userspace-firmware-loading-support.patch - G 1079-udev-remove-userspace-firmware-loading-support.patch - G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch - G 1081-udevd-check-return-of-various-functions.patch - G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch - G 1083-udev-node-warn-if-chmod-chown-fails.patch - G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch - G 1085-udev-fix-typos.patch - G 1086-udevd-don-t-fail-if-run-udev-exists.patch - G 1089-fix-cgroup-device-controller.patch - G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch - G 1091-udev-path_id-update-comments.patch - G 1092-libudev-do-not-accept-invalid-log-levels.patch - G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch - G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch - G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch - ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd.spec b/systemd.spec index 7b5b6805..307e3cab 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,9 +21,8 @@ %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion +%bcond_without compat_libs %bcond_with networkd -%bcond_without sysvcompat -%bcond_with resolved %bcond_with python %bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 @@ -44,7 +43,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 219 +Version: 210 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -52,69 +51,112 @@ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: acl BuildRequires: audit-devel -BuildRequires: autoconf -BuildRequires: automake +%if %{with compat_libs} +# See gold_archs in binutils.spec +%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc +BuildRequires: binutils-gold +%endif +%endif +BuildRequires: config(suse-module-tools) +%if ! 0%{?bootstrap} +BuildRequires: docbook-xsl-stylesheets +%endif BuildRequires: fdupes +%if ! 0%{?bootstrap} +BuildRequires: gobject-introspection-devel +%endif BuildRequires: gperf +%if ! 0%{?bootstrap} BuildRequires: gtk-doc +%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel +BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool +%if ! 0%{?bootstrap} +BuildRequires: libusb-devel +BuildRequires: libxslt-tools +%endif BuildRequires: pam-devel +%if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros +%endif +%if 0%{?suse_version} <= 1315 +BuildRequires: tcpd-devel +%endif BuildRequires: xz -BuildRequires: config(suse-module-tools) -BuildRequires: pkgconfig(blkid) >= 2.24 +BuildRequires: pkgconfig(blkid) >= 2.20 +%if ! 0%{?bootstrap} +BuildRequires: libgcrypt-devel +%if %{with python} +BuildRequires: python +%endif +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 +%endif +%if 0%{?suse_version} <= 1310 +BuildRequires: pkgconfig(libkmod) >= 14 +%else BuildRequires: pkgconfig(libkmod) >= 15 +%endif BuildRequires: pkgconfig(liblzma) +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libmicrohttpd) +%endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) -BuildRequires: pkgconfig(mount) >= 2.20 +%if ! 0%{?bootstrap} +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 +%endif +%if 0%{?suse_version} >= 1315 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif +%else +%if 0%{?suse_version} >= 1310 +%ifarch %ix86 x86_64 x32 %arm +BuildRequires: pkgconfig(libseccomp) +%endif +%endif +%endif +%if ! 0%{?bootstrap} +BuildRequires: libapparmor-devel +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) +%if 0%{?suse_version} > 1310 Conflicts: sysvinit +%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else -BuildRequires: docbook-xsl-stylesheets -BuildRequires: gobject-introspection-devel -BuildRequires: gtk-doc -BuildRequires: libgcrypt-devel -BuildRequires: libusb-devel -BuildRequires: libxslt-tools -%if %{with python} -BuildRequires: python -%endif -BuildRequires: libapparmor-devel -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -BuildRequires: pkgconfig(libmicrohttpd) -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd +%if 0%{?suse_version} <= 1310 +Requires: kmod >= 14 +%else Requires: kmod >= 15 +%endif Requires: netcfg Requires: pam-config >= 0.79-5 -BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.25 +Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils +%endif +%if ! 0%{?bootstrap} Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent @@ -126,31 +168,47 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} - -#Git-Clone: git://anongit.freedesktop.org/systemd/systemd -Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz +Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif +Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 +Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service +Source1060: boot.udev Source1063: udev-generate-persistent-rule.sh +Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs +# +# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r +Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called +Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch +Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch +Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +Patch18: fix-owner-of-var-log-btmp.patch +# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file +Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -158,11 +216,14 @@ Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch +# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable +Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -Patch37: suse-sysv-bootd-support.diff +# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts +Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file @@ -175,10 +236,18 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) +Patch23: disable-nss-myhostname-warning-bnc-783841.patch +# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) +Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin +Patch46: use-usr-sbin-sulogin-for-emergency-service.patch +# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian +Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -187,8 +256,126 @@ Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch +# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) +Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch +# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com +Patch117: 0001-make-209-working-on-older-dist.patch +# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com +Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch121: 0001-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch151: 0005-logind-fix-policykit-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch158: 0007-networkd-fix-typo.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch +# PATCH-FIX-USTREAM added at 2014/03/18 +Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch +# PATCH-FIX-USTREAM added at 2014/03/28 +Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch +# PATCH-FIX-USTREAM added at 2014/04/08 +Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -197,6 +384,8 @@ Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch +# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com @@ -205,6 +394,8 @@ Patch183: 0001-add-network-device-after-NFS-mount-units.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch +# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) +Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager @@ -217,38 +408,657 @@ Patch191: systemd-dbus-system-bus-address.patch Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch +# PATCH-FIX-USTREAM added at 2014/03/11 +Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/14 +Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +# PATCH-FIX-SUSE Do not clean the data base files of the manual pages +Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch199: 0001-bash-completion-fix-__get_startable_units.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch +# PATCH-FIX-USTREAM added at 2014/04/28 +Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch +# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. +Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch +# PATCH-FIX-UPSTREAM Fix uninitialized memory +Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) +Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch216: 0003-backlight-unify-error-messages.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch +# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) +Patch219: log-target-null-instead-kmsg.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch +# PATCH-FIX-UPSTREAM added at 2014/05/14 +Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch222: 0001-core-close-socket-fds-asynchronously.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch +# PATCH-FIX-UPSTREAM added at 2014/05/16 +Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch226: 0002-logind-fix-printf-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch232: 0008-man-update-journald-rate-limit-defaults.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch +# PATCH-FIX-UPSTREAM added at 2014/05/19 +Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch245: 0007-logind-fix-Display-property-of-user-objects.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch246: 0001-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch247: 0002-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch249: 0004-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch250: 0005-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch252: 0002-journal-properly-detect-language-specified-in-line.patch +# PATCH-FIX-UPSTREAM added at 2014/05/21 +Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch +# PATCH-FIX-UPSTREAM added at 2014/05/27 +Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch +# PATCH-FIX-UPSTREAM added at 2014/05/27 +Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch262: 0001-virt-rework-container-detection-logic.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +# PATCH-FIX-UPSTREAM added at 2014/06/05 +Patch269: 0001-hwdb-fix-case-sensitive-match.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch +# PATCH-FIX-UPSTREAM added at 2014/06/06 +Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch272: 0001-umount-modernizations.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch274: 0003-core-allow-transient-mount-units.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU +Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/11 +Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch278: 0001-core-fix-invalid-free-in-killall.patch +# PATCH-FIX-UPSTREAM added at 2014/06/17 +Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch +# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) +Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch +# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available +Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch284: 0005-po-add-Greek-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch286: 0007-po-add-German-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch +# PATCH-FIX-UPSTREAM added at 2014/06/24 +Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +# PATCH-FIX-UPSTREAM added at 2014/06/25 +Patch295: 0005-man-fix-path-in-crypttab-5.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch296: 0001-units-order-network-online.target-after-network.targ.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch297: 0001-core-use-correct-format-string-for-UIDs.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/06/26 +Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch +# PATCH-FIX-UPSTREAM added at 2014/07/01 +Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch312: 0006-hwdb-update.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch314: 0001-architecture-Add-tilegx.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch315: 0002-architecture-Add-cris.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch316: 0003-arch-add-crisv32-to-uname-check.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch317: 0004-architecture-remove-cris-from-uname-list.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/04 +Patch319: 0002-namespace-fix-uninitialized-memory-access.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch320: 0001-machine-don-t-return-uninitialized-variable.patch +# PATCH-FIX-UPSTREAM added at 2014/07/07 +Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch +# PATCH-FIX-UPSTREAM added at 2014/07/08 +Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch330: 0002-journal-compress-improve-xz-compression-performance.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch +# PATCH-FIX-UPSTREAM added at 2014/07/09 +Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/10 +Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch335: 0002-util-fix-has-cc-check-and-add-test.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch +# PATCH-FIX-UPSTREAM added at 2014/07/14 +Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/07/16 +Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch341: 0001-po-add-Ukrainian-translation.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch +# PATCH-FIX-UPSTREAM added at 2014/07/17 +Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch +Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch347: 0003-Add-quotes-to-warning-message.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch349: 0001-bash-completion-p-option-for-journalctl.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch350: 0002-journalctl-man-allow-only-between-terms.patch +# PATCH-FIX-UPSTREAM added at 2014/07/21 +Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch355: 0003-Always-check-asprintf-return-code.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch358: 0006-parse_boolean-require-exact-matches.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch +# PATCH-FIX-UPSTREAM added at 2014/07/28 +Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch +# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console Patch362: tty-ask-password-agent-on-console.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch +# PATCH-FIX-UPSTREAM added at 2014/07/30 +Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch +# PATCH-FIX-UPSTREAM added at 2014/08/01 +Patch367: 0007-hwdb-update.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch370: 0002-switch-root-umount-the-old-root-correctly.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch +# PATCH-FIX-UPSTREAM added at 2014/08/22 +Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch +# PATCH-FIX-UPSTREAM added at 2014/08/25 +Patch385: 0008-hwdb-update.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch +# PATCH-FIX-UPSTREAM added at 2014/08/27 +Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch390: 0001-login-fix-memory-leak-on-DropController.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch +# PATCH-FIX-UPSTREAM added at 2014/08/28 +Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch +# PATCH-FIX-UPSTREAM added at 2014/08/29 +Patch394: 0001-nspawn-fix-network-interface.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch395: 0001-completion-filter-templates-from-restartable-units.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch396: 0002-systemd-fix-error-message.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch398: 0004-config-parser-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/01 +Patch399: 0005-login-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/02 +Patch400: 0001-login-simplify-controller-handling.patch +# PATCH-FIX-UPSTREAM added at 2014/09/05 +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 +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch416: 0002-util-remove-a-unnecessary-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch418: 0004-shared-conf-parser.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch419: 0005-logind-fix-typo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 +Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch +# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary +Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch +# PATCH-FIX-UPSTREAM added at 2014/09/19 +Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-SUSE added on 2014/10/24 +# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved +Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) +Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch +# PATCH-FIX-UPSTREAM added at 2014/09/24 +Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch +# PATCH-FIX-UPSTREAM added at 2014/09/25 +Patch436: 0002-bus-remove-unused-check.patch +# PATCH-FIX-UPSTREAM added at 2014/09/26 +Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch442: 0004-bootchart-check-return-of-strftime.patch +# PATCH-FIX-UPSTREAM added at 2014/09/29 +Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch +# PATCH-FIX-UPSTREAM added at 2014/09/30 +Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch +# PATCH-FIX-UPSTREAM added at 2014/10/02 +Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch450: 0003-fileio-label-return-error-when-writing-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch452: 0004-sd-event-check-the-value-of-received-signal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/07 +Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch +# PATCH-FIX-UPSTREAM added at 2014/10/10 +Patch459: 0005-util-avoid-double-close-of-fd.patch +# PATCH-FIX-UPSTREAM added at 2014/10/13 +Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch +# PATCH-FIX-UPSTREAM added at 2014/10/14 +Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch +# PATCH-FIX-UPSTREAM added at 2014/10/15 +Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch +# PATCH-FIX-UPSTREAM added at 2014/10/20 +Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch +# PATCH-FIX-SUSE added at 2014/10/15 +Patch468: avoid-leaking-socket-descriptors.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch +# PATCH-FIX-UPSTREAM added at 2014/10/23 +Patch473: 0005-cryptsetup-fix-an-OOM-check.patch +# PATCH-FIX-UPSTREAM added at 2014/10/24 +Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +# PATCH-FIX-SUSE added at 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-SUSE added on 2014/11/05 +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch480: 0005-journalctl-correct-help-text-for-until.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch481: 0006-calendarspec-fix-typo-in-annually.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch483: 0008-util-introduce-sethostname_idempotent.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +# PATCH-FIX-UPSTREAM added at 2014/10/28 +Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch +# PATCH-FIX-UPSTREAM added at 2014/10/31 +Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch +# PATCH-FIX-SUSE added at 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch496: 0006-journald-fix-minor-memory-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch498: 0008-journald-fix-memory-leak-on-error-path.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch +# PATCH-FIX-UPSTREAM added at 2014/11/07 +Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch +# PATCH-FIX-UPSTREAM added at 2014/11/10 +Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch +# PATCH-FIX-UPSTREAM added at 2014/11/18 +Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch +# PATCH-FIX-UPSTREAM added at 2014/11/20 +Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch +# PATCH-FIX-UPSTREAM added at 2014/12/05 +Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch +# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) +Patch513: 513-nspawn-veth.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch +# PATCH-FIX-UPSTREAM added at 2014/12/15 +Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch +# PATCH-FIX-UPSTREAM added at 2014/12/16 +Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -Patch522: 0001-core-rework-device-state-logic.patch +# # UDEV PATCHES # ============ @@ -270,46 +1080,188 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch +# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 +Patch1008: 1008-add-msft-compability-rules.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-SUSE increase result size for programs (bnc#867840) +Patch1010: 1010-udev-increase-result-size-for-programs.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch +# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch +Patch1014: 1014-udev-update-net_id-comments.patch +# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/12 +Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch +# PATCH-FIX-UPSTREAM added at 2014/05/20 +Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch +# PATCH-FIX-UPSTREAM added at 2014/05/26 +Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch # PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch Patch1021: 1021-udev-re-add-persistent-net-rules.patch +# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch +# PATCH-FIX-UPSTREAM added at 2014/06/03 +Patch1024: 1024-udev-always-close-lock-file-descriptor.patch +# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch +Patch1026: 1026-udevd-inotify-modernizations.patch +# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch +Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch +# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch +Patch1028: 1028-udev-link-config-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch +Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch +# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch +# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch +Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch +# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch +# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch +Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch +# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch +# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch +Patch1044: 1044-rules-update-qemu-hid-rules.patch +# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch # PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch +# PATCH-FIX-UPSTREAM added at 2014/07/03 +Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch +# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch +Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch +# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch # PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) Patch1051: 1051-check-if-NAME-has-a-value.patch +# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch +# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch +Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch +Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch +# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch +Patch1057: 1057-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch +Patch1058: 1058-udev-unify-event-timeout-handling.patch +# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch +# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 +# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch +Patch1081: 1081-udevd-check-return-of-various-functions.patch +# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch +# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch +Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch +# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch +Patch1085: 1085-udev-fix-typos.patch +# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch +Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch +# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch +Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch # PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch +# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch +Patch1089: 1089-fix-cgroup-device-controller.patch +# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch +Patch1091: 1091-udev-path_id-update-comments.patch +# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch +Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch +# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch +# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch +Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -517,24 +1469,6 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. -%package -n nss-mymachines -Summary: Plugin for local virtual host name resolution -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-mymachines -nss-myhostname is a plugin for the GNU Name Service Switch (NSS) -functionality of the GNU C Library (glibc) providing host name -resolution for the locally configured containers and virtual machines -systemd-machined knows about. - -%package -n nss-resolve -Summary: Plugin for local hostname resolution via systemd-resolved -License: LGPL-2.1+ -Group: System/Libraries - -%description -n nss-resolve - %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ @@ -546,12 +1480,13 @@ Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. + %endif %prep -%setup -q -n systemd-%version +%setup -q -n systemd-%{version} echo "Checking whether upstream rpm macros changed..." -diff -au "%{S:10}" src/core/macros.systemd.in +[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} @@ -559,15 +1494,29 @@ cp %{SOURCE7} m4/ %endif # systemd patches +%patch0 -p1 +%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%if 0%{?suse_version} <= 1310 +%patch8 -p1 +%endif +%patch9 -p1 %patch12 -p1 +%patch13 -p0 +%patch15 -p1 %patch16 -p1 %patch17 -p1 +%patch18 -p1 +%patch19 -p0 %patch20 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html @@ -578,45 +1527,418 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch46 -p1 +%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 +%patch93 -p1 +%patch114 -p0 +%if 0%{?suse_version} <= 1310 +%patch117 -p1 +%endif +%patch119 -p1 %patch120 -p1 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 +%patch147 -p0 +%patch148 -p0 +%patch149 -p0 +%patch150 -p0 +%patch151 -p0 +%patch152 -p0 +%patch153 -p0 +%patch154 -p0 +%patch155 -p0 +%patch157 -p0 +%patch158 -p0 +%patch159 -p0 +%patch160 -p0 +%patch161 -p0 +%patch162 -p0 +%patch163 -p0 +%patch164 -p0 +%patch165 -p0 +%patch166 -p0 +%patch167 -p0 +%patch168 -p0 +%patch169 -p0 +%patch170 -p0 +%patch171 -p0 +%patch172 -p0 +%patch173 -p0 +%patch174 -p0 +%patch175 -p0 +%patch176 -p0 %patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 +%patch181 -p1 %patch182 -p1 %patch183 -p1 %patch185 -p1 %patch186 -p1 +%patch187 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 +%patch194 -p0 +%patch196 -p1 +%patch195 -p0 %patch197 -p1 %patch198 -p1 +%patch199 -p0 +%patch200 -p0 +%patch201 -p0 +%patch202 -p0 %patch203 -p1 +%patch204 -p1 +%patch206 -p0 +%patch207 -p0 %patch208 -p1 -%patch338 -p1 +%patch209 -p0 +%patch211 -p0 +%patch212 -p0 +%patch213 -p0 +%patch214 -p0 +%patch215 -p0 +%patch216 -p0 +%patch217 -p0 +%patch218 -p0 +%patch219 -p1 +%patch220 -p0 +%patch221 -p0 +%patch222 -p0 +%patch223 -p0 +%patch224 -p0 +%patch225 -p0 +%patch226 -p0 +%patch227 -p0 +%patch228 -p0 +%patch229 -p0 +%patch230 -p0 +%patch231 -p0 +%patch232 -p0 +%patch233 -p0 +%patch234 -p0 +%patch235 -p0 +%patch236 -p0 +%patch237 -p0 +%patch238 -p0 +%patch239 -p0 +%patch240 -p0 +%patch241 -p0 +%patch242 -p0 +%patch243 -p0 +%patch244 -p0 +%patch245 -p0 +%patch246 -p0 +%patch247 -p0 +%patch248 -p0 +%patch249 -p0 +%patch250 -p0 +%patch251 -p0 +%patch252 -p0 +%patch253 -p0 +%patch254 -p0 +%patch255 -p0 +%patch256 -p0 +%patch257 -p0 +%patch258 -p0 +%patch259 -p0 +%patch260 -p0 +%patch261 -p0 +%patch262 -p0 +%patch263 -p0 +%patch264 -p0 +%patch265 -p0 +%patch266 -p0 +%patch267 -p0 +%patch268 -p0 +%patch269 -p0 +%patch270 -p0 +%patch271 -p0 +%patch272 -p0 +%patch273 -p0 +%patch274 -p0 +%patch275 -p0 +%patch276 -p0 +%patch277 -p0 +%patch278 -p0 +%patch279 -p0 +%patch280 -p0 +%patch281 -p1 +%patch282 -p0 +%patch283 -p0 +%patch284 -p0 +%patch285 -p0 +%patch286 -p0 +%patch287 -p0 +%patch288 -p0 +%patch289 -p0 +%patch290 -p0 +%patch291 -p0 +%patch292 -p0 +%patch293 -p0 +%patch294 -p0 +%patch295 -p0 +%patch296 -p0 +%patch297 -p0 +%patch298 -p0 +%patch299 -p0 +%patch300 -p0 +%patch301 -p0 +%patch302 -p0 +%patch303 -p0 +%patch304 -p0 +%patch305 -p0 +%patch306 -p0 +%patch307 -p0 +%patch308 -p0 +%patch309 -p0 +%patch310 -p0 +%patch311 -p0 +%patch312 -p0 +%patch313 -p0 +%patch314 -p0 +%patch315 -p0 +%patch316 -p0 +%patch317 -p0 +%patch318 -p0 +%patch319 -p0 +%patch320 -p0 +%patch321 -p0 +%patch322 -p0 +%patch323 -p0 +%patch324 -p0 +%patch325 -p0 +%patch326 -p0 +%patch327 -p0 +%patch328 -p0 +%patch329 -p0 +%patch330 -p0 +%patch331 -p0 +%patch332 -p0 +%patch333 -p0 +%patch334 -p0 +%patch335 -p0 +%patch336 -p0 +%patch337 -p0 +%patch338 -p0 +%patch339 -p0 +%patch340 -p0 +%patch341 -p0 +%patch342 -p0 +%patch343 -p0 +%patch344 -p0 %patch345 -p1 -%patch352 -p1 +%patch346 -p0 +%patch347 -p0 +%patch348 -p0 +%patch349 -p0 +%patch350 -p0 +%patch351 -p0 +%patch352 -p0 +%patch353 -p0 +%patch354 -p0 +%patch355 -p0 +%patch356 -p0 +%patch357 -p0 +%patch358 -p0 +%patch359 -p0 +%patch360 -p0 +%patch361 -p0 %patch362 -p1 +%patch363 -p0 +%patch364 -p0 +%patch365 -p0 %patch366 -p1 +%patch367 -p0 %patch368 -p1 +%patch369 -p0 +%patch370 -p0 +%patch371 -p0 +%patch372 -p0 +%patch373 -p0 +%patch374 -p0 +%patch375 -p0 +%patch376 -p0 +%patch377 -p0 +%patch378 -p0 +%patch379 -p0 +%patch380 -p0 +%patch381 -p0 +%patch382 -p0 +%patch383 -p0 +%patch384 -p0 +%patch385 -p0 %patch386 -p1 +%patch387 -p0 +%patch388 -p0 +%patch389 -p0 +%patch390 -p0 +%patch391 -p0 +%patch392 -p0 +%patch393 -p0 +%patch394 -p0 +%patch395 -p0 +%patch396 -p0 +%patch397 -p0 +%patch398 -p0 +%patch399 -p0 +%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 +%patch415 -p0 +%patch416 -p0 +%patch417 -p0 +%patch418 -p0 +%patch419 -p0 +%patch420 -p0 +%patch421 -p0 +%patch422 -p0 +%patch423 -p0 +%patch424 -p0 +%patch425 -p0 +%patch426 -p0 +%patch427 -p0 +%patch428 -p0 +%patch429 -p0 %patch430 -p1 -%patch475 -p1 +%patch431 -p0 +%patch432 -p0 +%patch433 -p0 +%patch434 -p0 +%patch435 -p0 +%patch436 -p0 +%patch437 -p0 +%patch438 -p0 +%patch439 -p0 %ifarch %arm %patch38 -p1 %endif -%patch490 -p1 +%patch440 -p0 +%patch441 -p0 +%patch442 -p0 +%patch443 -p0 +%patch444 -p0 +%patch445 -p0 +%patch446 -p0 +%patch447 -p0 +%patch448 -p0 +%patch449 -p0 +%patch450 -p0 +%patch451 -p0 +%patch452 -p0 +%patch453 -p0 +%patch454 -p0 +%patch455 -p0 +%patch456 -p0 +%patch457 -p0 +%patch458 -p0 +%patch459 -p0 +%patch460 -p0 +%patch461 -p0 +%patch462 -p0 +%patch463 -p0 +%patch464 -p0 +%patch465 -p0 +%patch466 -p0 +%patch467 -p0 +%patch468 -p0 +%patch469 -p0 +%patch470 -p0 +%patch471 -p0 +%patch472 -p0 +%patch473 -p0 +%patch474 -p0 +%patch475 -p0 +%patch476 -p0 +%patch477 -p0 +%patch478 -p0 +%patch479 -p0 +%patch480 -p0 +%patch481 -p0 +%patch482 -p0 +%patch483 -p0 +%patch484 -p0 +%patch485 -p0 +%patch486 -p0 +%patch487 -p0 +%patch488 -p0 +%patch489 -p0 +%patch490 -p0 +%patch491 -p0 +%patch492 -p0 +%patch493 -p0 +%patch494 -p0 +%patch495 -p0 +%patch496 -p0 +%patch497 -p0 +%patch498 -p0 +%patch499 -p0 +%patch500 -p0 +%patch501 -p0 +%patch502 -p0 +%patch503 -p0 +%patch504 -p0 +%patch505 -p0 +%patch506 -p0 +%patch507 -p0 +%patch509 -p0 +%patch510 -p0 +%patch511 -p0 +%patch512 -p0 +%patch513 -p1 +%patch514 -p0 +%patch515 -p0 +%patch516 -p0 +%patch517 -p0 +%patch518 -p1 +%patch519 -p1 %patch520 -p1 -%patch521 -p1 -%patch522 -p1 +%patch521 -p0 # udev patches %patch1001 -p1 @@ -625,31 +1947,131 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 +%if 0%{?suse_version} <= 1310 +%patch1008 -p1 +%endif +%patch1009 -p1 +%patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 +%patch1014 -p1 +%patch1015 -p1 +%patch1016 -p0 +%patch1017 -p0 +%patch1018 -p0 +%patch1019 -p0 +%patch1020 -p0 %patch1021 -p1 +%if %{with udevsettle} +%patch1022 -p1 +%endif +%patch1023 -p0 +%patch1024 -p0 +%if %{with blkrrpart} +%patch1025 -p1 +%endif +%patch1026 -p1 +%if %{with blkrrpart} +%patch1027 -p1 +%endif +%patch1028 -p1 +%if %{with blkrrpart} +%patch1029 -p1 +%patch1030 -p1 +%patch1031 -p1 +%patch1032 -p1 +%patch1033 -p1 +%patch1034 -p1 +%endif %patch1035 -p1 %patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif +%patch1038 -p0 +%if %{with udevsettle} +%patch1039 -p0 +%endif %patch1040 -p1 +%if %{with udevsettle} +%patch1041 -p0 +%patch1042 -p0 +%patch1043 -p0 +%endif +%patch1044 -p0 +%patch1045 -p0 %patch1046 -p1 +%patch1047 -p0 +%patch1048 -p0 +%patch1049 -p0 %patch1050 -p1 %patch1051 -p1 +%patch1052 -p0 %patch1053 -p1 %if %{with blkrrpart} +%patch1054 -p0 %else %patch1055 -p1 %endif +%patch1056 -p0 +%if %{with udevsettle} +%patch1057 -p0 +%else +%patch1058 -p0 +%endif +%patch1059 -p0 %patch1060 -p1 +%patch1061 -p0 %patch1062 -p1 +%if %{with parentpathid} +%patch1063 -p0 +%endif +%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 +%patch1080 -p0 +%patch1081 -p0 +%patch1082 -p0 +%patch1083 -p0 +%patch1084 -p0 +%patch1085 -p0 +%patch1086 -p0 +%patch1087 -p0 %patch1088 -p1 +%patch1089 -p1 +%if %{with parentpathid} +%patch1090 -p0 +%patch1091 -p0 +%endif +%patch1092 -p0 +%patch1093 -p0 +%patch1094 -p0 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 +%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -669,6 +2091,17 @@ else sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c fi +%if 0%{?suse_version} <= 1310 +# +# Older versions like oS 13.1 do not distinguish between +# network.target and network-online.target +# +for f in src/core/service.c src/insserv-generator/insserv-generator.c +do + sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f +done +%endif + # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 @@ -709,11 +2142,11 @@ cflags () esac set +o noclobber } -autoreconf -fi +autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=e -export CFLAGS="%{optflags}" +export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" export LDFLAGS %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" @@ -739,7 +2172,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS --disable-gudev \ --disable-myhostname \ --disable-manpages \ - --disable-machined \ %else --enable-manpages \ %if %{with python} @@ -747,10 +2179,16 @@ cflags -Wl,--hash-size=8599 LDFLAGS %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%endif +%if %{with compat_libs} + --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ +%if 0%{?suse_version} <= 1310 + --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ +%endif %if ! 0%{?has_efi} --disable-efi \ %endif @@ -759,15 +2197,11 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ +%if 0%{?suse_version} > 1310 + --disable-multi-seat-x \ +%endif %if %{without networkd} --disable-networkd \ -%endif -%if %{without sysvcompat} - --with-sysvinit-path= \ - --with-sysvrcnd-path= \ -%endif -%if %{without resolved} - --disable-resolved \ %endif --disable-kdbus make %{?_smp_mflags} @@ -776,9 +2210,19 @@ make %{?_smp_mflags} update-man-list man %endif %install -%if !0%{?bootstrap} -cp man/man[0-9]/*.[0-9] man/ -%endif +# Use refreshed manual pages +for man in man/*.[0-9] +do + section=${man##*.} + test -d man/man${section} || continue + new=man/man${section}/${man##*/} + if test -s $new -a $new -nt $man + then + cp -p $new $man + else + sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man + fi +done make install DESTDIR="%buildroot" # move to %{_lib} @@ -791,17 +2235,24 @@ ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd - %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif - +%if 0%{?suse_version} <= 1310 +ln -sf /lib/firmware %{buildroot}/usr/lib/firmware +%endif %if ! 0%{?bootstrap} +install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif +sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} +sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} +sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} +install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule +install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -819,7 +2270,28 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target - +# aliases for /etc/init.d/* +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service +ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service +install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service +ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service +ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service +ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service +ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -892,6 +2364,15 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ +%if ! 0%{?bootstrap} +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done +%endif +%endif + mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed @@ -908,8 +2389,10 @@ done > files.completion > files.completion %endif +%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd +%endif %if %{without compat_libs} lib=%{_libdir}/libsystemd.so @@ -921,6 +2404,30 @@ do done %endif +%if 0%{suse_version} <= 1310 +cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' + [Unit] + Description=Fix against deadlock at shutdown + Wants=remote-fs.target remote-fs-pre.target + Before=remote-fs.target systemd-logind.service + After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target + ConditionPathExists=|/etc/init.d/autofs + ConditionPathExists=|/etc/init.d/nfs + + [Service] + Type=oneshot + RemainAfterExit=true + ExecStart=/bin/true + ExecStop=-/etc/init.d/autofs stop + ExecStop=-/etc/init.d/nfs stop + + [Install] + WantedBy=remote-fs.target + EOF + mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants + ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants +%endif + # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ @@ -968,7 +2475,6 @@ fi getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif -systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -1016,6 +2522,8 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -1045,6 +2553,7 @@ fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : +%{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : @@ -1143,9 +2652,6 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig -%post -n nss-mymachines -p /sbin/ldconfig -%postun -n nss-mymachines -p /sbin/ldconfig - %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : @@ -1168,26 +2674,17 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl -%if %{with networkd} -%{_bindir}/networkctl -%endif +%{_bindir}/systemd-sleep-grub %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl -%if ! 0%{?bootstrap} %{_bindir}/machinectl -%endif %{_bindir}/systemctl %{_bindir}/systemd-analyze -%{_bindir}/coredumpctl +%{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta -%{_bindir}/systemd-escape -%{_bindir}/systemd-firstboot -%{_bindir}/systemd-path -%{_bindir}/systemd-sysusers %{_bindir}/systemd-notify -%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -1230,6 +2727,7 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -1268,19 +2766,12 @@ exit 0 %{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif -%{_prefix}/lib/systemd/system-generators/systemd-debug-generator -%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator -%if %{with sysvcompat} -%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator -%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator -%endif %{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator -%{_prefix}/lib/systemd/system-preset/ -%{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user @@ -1309,23 +2800,13 @@ exit 0 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf -%config(noreplace) %{_sysconfdir}/systemd/coredump.conf -%if !0%{?bootstrap} -%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf -%endif -%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf -%if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf -%endif -%if %{with networkd} -%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf -%endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -1342,24 +2823,15 @@ exit 0 %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target -%{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service -%if %{with networkd} -%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service -%endif %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service -%if !0%{?bootstrap} %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service -%endif %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions -%if !0%{?bootstrap} -%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy -%endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy @@ -1409,11 +2881,8 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed -%if %{with resolved} -%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf -%{_sysconfdir}/systemd/resolved.conf -%{_libdir}/libnss_resolve.so.2 -%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service +%if 0%{?suse_version} > 1310 +%{_datadir}/pkgconfig/systemd.pc %endif %if ! 0%{?bootstrap} @@ -1438,7 +2907,9 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h -%{_libdir}/pkgconfig/systemd.pc +%if 0%{?suse_version} <= 1310 +%{_datadir}/pkgconfig/systemd.pc +%endif %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -1500,6 +2971,7 @@ exit 0 %{_prefix}/lib/udev/rules.d/*.rules %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* +%{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin @@ -1530,6 +3002,9 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so +%if 0%{?suse_version} <= 1310 +%{_datadir}/pkgconfig/udev.pc +%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc @@ -1563,9 +3038,8 @@ exit 0 %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ -%if %{with sysvcompat} %{_localstatedir}/log/README -%endif +/etc/init.d/systemd-journald %files -n nss-myhostname %defattr(-, root, root) @@ -1578,10 +3052,6 @@ exit 0 %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd - -%files -n nss-mymachines -%defattr(-,root,root) -%_libdir/libnss_mymachines.so* %endif %changelog diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch new file mode 100644 index 00000000..fb97a2f1 --- /dev/null +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -0,0 +1,24 @@ +From: Frederic Crozat +Date: Tue, 14 Aug 2012 14:26:16 +0200 +Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock + +--- + src/timedate/timedated.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- systemd-206_git201308300826.orig/src/timedate/timedated.c ++++ systemd-206_git201308300826/src/timedate/timedated.c +@@ -182,6 +182,13 @@ static int read_data(void) { + goto have_timezone; + } + } ++#ifdef HAVE_SYSV_COMPAT ++ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, ++ "TIMEZONE", &c->zone, ++ NULL); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); ++#endif + + have_timezone: + if (isempty(c->zone)) { diff --git a/tmpfiles-do-not-clean-for-mandb-index-files.patch b/tmpfiles-do-not-clean-for-mandb-index-files.patch new file mode 100644 index 00000000..3bfd928f --- /dev/null +++ b/tmpfiles-do-not-clean-for-mandb-index-files.patch @@ -0,0 +1,22 @@ +There is no need to clean out all 30 days the index data base +files nor the cachedir tags of mandb. Those files are used +for whatis(1) as well as for apropos(1). + +--- + systemd-210/tmpfiles.d/systemd.conf | 5 +++++ + 1 file changed, 5 insertions(+) + +--- systemd-210/tmpfiles.d/systemd.conf ++++ systemd-210/tmpfiles.d/systemd.conf 2014-06-11 13:47:59.470236564 +0000 +@@ -14,6 +14,11 @@ f /var/log/wtmp 0664 root utmp - + f /var/log/btmp 0600 root root - + + d /var/cache/man - - - 30d ++# mandb uses data base file which should not be cleared ++x /var/cache/man/index.* ++x /var/cache/man/CACHEDIR.TAG ++x /var/cache/man/*/index.* ++x /var/cache/man/*/CACHEDIR.TAG + + d /run/systemd/ask-password 0755 root root - + d /run/systemd/seats 0755 root root - diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index ee7e73d8..1091a730 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -1,99 +1,110 @@ --- - src/tty-ask-password-agent/tty-ask-password-agent.c | 171 +++++++++++++++++++- - 1 file changed, 166 insertions(+), 5 deletions(-) + src/tty-ask-password-agent/tty-ask-password-agent.c | 190 +++++++++++++++++++- + 1 file changed, 185 insertions(+), 5 deletions(-) -Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c -=================================================================== ---- systemd.orig/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd/src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -31,6 +31,10 @@ - #include - #include - #include +--- systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-30 10:48:43.602052750 +0000 +@@ -28,8 +28,12 @@ + #include + #include + #include +#include + #include +#include +#include + #include +#include + #include #include "util.h" - #include "mkdir.h" -@@ -42,6 +46,9 @@ +@@ -41,6 +45,9 @@ + #include "ask-password-api.h" #include "strv.h" #include "build.h" - #include "def.h" +#include "fileio.h" +#include "macro.h" +#include "list.h" static enum { ACTION_LIST, -@@ -50,6 +57,22 @@ static enum { +@@ -49,6 +56,21 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; +struct console { + LIST_FIELDS(struct console, handle); -+ const char *tty; ++ char *tty; + pid_t pid; + int id; -+ char dev[]; +}; + -+static volatile unsigned long *usemask; ++static volatile uint32_t *usemask; +static volatile sig_atomic_t sigchild; +static void chld_handler(int sig) +{ + (void)sig; -+ ++sigchild; ++ sigchild++; +} + static bool arg_plymouth = false; static bool arg_console = false; -@@ -208,6 +231,58 @@ static int ask_password_plymouth( - return 0; +@@ -246,12 +268,77 @@ finish: + return r; } +static const char *current_dev = "/dev/console"; +static LIST_HEAD(struct console, consoles); +static int collect_consoles(void) { + _cleanup_free_ char *active = NULL; -+ const char *word, *state; -+ struct console *con; -+ size_t len; -+ int ret, id = 0; ++ char *w, *state; ++ struct console *c; ++ size_t l; ++ int id; ++ int r; + -+ ret = read_one_line_file("/sys/class/tty/console/active", &active); -+ if (ret < 0) -+ return ret; -+ FOREACH_WORD(word, len, active, state) { ++ r = read_one_line_file("/sys/class/tty/console/active", &active); ++ if (r < 0) ++ return r; ++ ++ id = 0; ++ FOREACH_WORD(w, l, active, state) { + _cleanup_free_ char *tty = NULL; + -+ if (strneq(word, "tty0", len) && -+ read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { -+ word = tty; -+ len = strlen(tty); ++ if (strneq(w, "tty0", l)) { ++ if (read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { ++ w = tty; ++ l = strlen(tty); ++ } + } -+ con = malloc0(sizeof(*con) + strlen("/dev/") + len + 1); -+ if (con == NULL) { ++ ++ c = malloc0(sizeof(struct console)+5+l+1); ++ if (!c) { + log_oom(); + continue; + } -+ sprintf(con->dev, "/dev/%.*s", (int)len, word); -+ con->tty = con->dev; -+ con->id = id++; -+ LIST_PREPEND(handle, consoles, con); ++ ++ c->tty = ((char*)c)+sizeof(struct console); ++ stpncpy(stpcpy(c->tty, "/dev/"),w,l); ++ c->id = id++; ++ ++ LIST_PREPEND(handle, consoles, c); + } -+ if (consoles == NULL) { -+ con = malloc0(sizeof(*con)); -+ if (con == NULL) { ++ ++ if (!consoles) { ++ ++ c = malloc0(sizeof(struct console)); ++ if (!c) { + log_oom(); + return -ENOMEM; + } -+ con->tty = current_dev; -+ con->id = id++; -+ LIST_PREPEND(handle, consoles, con); ++ ++ c->tty = (char *)current_dev; ++ c->id = id++; ++ ++ LIST_PREPEND(handle, consoles, c); + } ++ + return 0; +} + @@ -107,133 +118,168 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c +} + static int parse_password(const char *filename, char **wall) { - _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; + char *socket_name = NULL, *message = NULL, *packet = NULL; uint64_t not_after = 0; -@@ -308,7 +383,7 @@ static int parse_password(const char *fi - _cleanup_free_ char *password = NULL; + unsigned pid = 0; + int socket_fd = -1; + bool accept_cached = false; ++ size_t packet_length = 0; - if (arg_console) { -- tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY); -+ tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY); - if (tty_fd < 0) - return tty_fd; + const ConfigTableItem items[] = { + { "Ask", "Socket", config_parse_string, 0, &socket_name }, +@@ -323,7 +410,6 @@ static int parse_password(const char *fi + struct sockaddr sa; + struct sockaddr_un un; + } sa = {}; +- size_t packet_length = 0; + + assert(arg_action == ACTION_QUERY || + arg_action == ACTION_WATCH); +@@ -365,7 +451,7 @@ static int parse_password(const char *fi + char *password = NULL; + + if (arg_console) +- if ((tty_fd = acquire_terminal("/dev/console", false, false, false, (usec_t) -1)) < 0) { ++ if ((tty_fd = acquire_terminal(current_dev, false, false, true, (usec_t) -1)) < 0) { + r = tty_fd; + goto finish; + } +@@ -386,6 +472,7 @@ static int parse_password(const char *fi + strcpy(packet+1, password); + } + ++ memset(password, 0, strlen(password)); + free(password); } -@@ -612,9 +687,85 @@ static int parse_argv(int argc, char *ar - return 1; + } +@@ -423,6 +510,7 @@ finish: + if (socket_fd >= 0) + close_nointr_nofail(socket_fd); + ++ memset(packet, 0, packet_length); + free(packet); + free(socket_name); + free(message); +@@ -726,8 +814,10 @@ static int parse_argv(int argc, char *ar } -+static int zzz(void) -+{ -+ struct console *con; -+ struct sigaction sig = { -+ .sa_handler = chld_handler, -+ .sa_flags = SA_NOCLDSTOP | SA_RESTART, -+ }; -+ struct sigaction oldsig; -+ sigset_t set, oldset; -+ int status = 0, ret; -+ pid_t job; -+ -+ collect_consoles(); -+ if (!consoles->handle_next) { -+ consoles->pid = 0; -+ con = consoles; -+ goto nofork; -+ } -+ -+ assert_se(sigemptyset(&set) == 0); -+ assert_se(sigaddset(&set, SIGHUP) == 0); -+ assert_se(sigaddset(&set, SIGCHLD) == 0); -+ assert_se(sigemptyset(&sig.sa_mask) == 0); -+ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); -+ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); -+ sig.sa_handler = SIG_DFL; -+ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); -+ -+ LIST_FOREACH(handle, con, consoles) { -+ switch ((con->pid = fork())) { -+ case 0: -+ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) -+ _exit(EXIT_FAILURE); -+ zero(sig); -+ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); -+ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); -+ nofork: -+ setsid(); -+ release_terminal(); -+ *usemask |= 1 << con->id; -+ current_dev = con->tty; -+ return con->id; /* child */ -+ case -1: -+ log_error("Failed to query password: %s", strerror(errno)); -+ exit(EXIT_FAILURE); -+ default: -+ break; -+ } -+ } -+ -+ ret = 0; -+ while ((job = wait(&status)) != 0) { -+ if (job < 0) { -+ if (errno != EINTR) -+ break; -+ continue; -+ } -+ LIST_FOREACH(handle, con, consoles) { -+ if (con->pid == job || kill(con->pid, 0) < 0) { -+ *usemask &= ~(1 << con->id); -+ continue; -+ } -+ if (*usemask & (1 << con->id)) -+ continue; -+ kill(con->pid, SIGHUP); -+ usleep(50000); -+ kill(con->pid, SIGKILL); -+ } -+ if (WIFEXITED(status) && ret == 0) -+ ret = WEXITSTATUS(status); -+ } -+ free_consoles(); -+ exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */ -+} -+ int main(int argc, char *argv[]) { -- int r; -+ int r, id = 0; ++ int id = 0; + int r; + LIST_HEAD_INIT(consoles); log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); -@@ -625,11 +776,19 @@ int main(int argc, char *argv[]) { - if (r <= 0) +@@ -737,11 +827,99 @@ int main(int argc, char *argv[]) { + if ((r = parse_argv(argc, argv)) <= 0) goto finish; -+ usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE, -+ MAP_ANONYMOUS | MAP_SHARED, -1, 0); -+ assert_se(usemask != NULL); ++ usemask = (uint32_t*) mmap(NULL, sizeof(uint32_t), PROT_READ|PROT_WRITE, ++ MAP_ANONYMOUS|MAP_SHARED, -1, 0); + if (arg_console) { - setsid(); - release_terminal(); +- } + if (!arg_plymouth && arg_action != ACTION_WALL && + arg_action != ACTION_LIST) { -+ id = zzz(); ++ struct console *c; ++ struct sigaction sig = { ++ .sa_handler = chld_handler, ++ .sa_flags = SA_NOCLDSTOP|SA_RESTART, ++ }; ++ struct sigaction oldsig; ++ sigset_t set, oldset; ++ int status = 0; ++ pid_t job; ++ ++ collect_consoles(); ++ ++ if (!consoles->handle_next) { ++ consoles->pid = 0; ++ c = consoles; ++ goto nofork; ++ } + ++ assert_se(sigemptyset(&set) == 0); ++ assert_se(sigaddset(&set, SIGHUP) == 0); ++ assert_se(sigaddset(&set, SIGCHLD) == 0); ++ assert_se(sigemptyset(&sig.sa_mask) == 0); ++ ++ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); ++ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); ++ sig.sa_handler = SIG_DFL; ++ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); ++ LIST_FOREACH(handle, c, consoles) { ++ ++ switch ((c->pid = fork())) { ++ case 0: ++ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) ++ _exit(EXIT_FAILURE); ++ zero(sig); ++ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); ++ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); ++ /* fall through */ ++ nofork: ++ setsid(); ++ release_terminal(); ++ id = c->id; ++ *usemask |= (1<tty; ++ goto forked; /* child */ ++ case -1: ++ log_error("Failed to query password: %s", strerror(errno)); ++ return EXIT_FAILURE; ++ default: ++ break; ++ } ++ } ++ ++ r = 0; ++ while ((job = wait(&status))) { ++ if (job < 0) { ++ if (errno != EINTR) ++ break; ++ continue; ++ } ++ LIST_FOREACH(handle, c, consoles) { ++ if (c->pid == job) { ++ *usemask &= ~(1<id); ++ continue; ++ } ++ if (kill(c->pid, 0) < 0) { ++ *usemask &= ~(1<id); ++ continue; ++ } ++ if (*usemask & (1<id)) ++ continue; ++ kill(c->pid, SIGHUP); ++ usleep(50000); ++ kill(c->pid, SIGKILL); ++ } ++ ++ if (WIFEXITED(status) && !r) ++ r = WEXITSTATUS(status); ++ } ++ free_consoles(); ++ return r != 0 ? EXIT_FAILURE : EXIT_SUCCESS; /* parent */ ++ + } else { + setsid(); + release_terminal(); + } - } -- - if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) ++ } ++forked: + if (arg_action == ACTION_WATCH || + arg_action == ACTION_WALL) r = watch_passwords(); - else -@@ -638,6 +797,8 @@ int main(int argc, char *argv[]) { +@@ -751,6 +929,8 @@ int main(int argc, char *argv[]) { if (r < 0) - log_error_errno(r, "Error: %m"); + log_error("Error: %s", strerror(-r)); + free_consoles(); -+ *usemask &= ~(1 << id); ++ *usemask &= ~(1< #include @@ -39,7 +37,7 @@ Index: systemd-218/src/random-seed/random-seed.c + entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); + if (entropy_fd < 0) { -+ entropy_count = 0; ++ entropy_count = 0; + if (errno != ENOENT) { + log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); + r = -errno; @@ -57,13 +55,13 @@ Index: systemd-218/src/random-seed/random-seed.c seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -113,12 +133,34 @@ int main(int argc, char *argv[]) { +@@ -113,16 +133,37 @@ int main(int argc, char *argv[]) { } else { lseek(seed_fd, 0, SEEK_SET); -- r = loop_write(random_fd, buf, (size_t) k, false); -- if (r < 0) -- log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); +- k = loop_write(random_fd, buf, (size_t) k, false); +- if (k <= 0) { +- log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); + if (entropy_count && (size_t) k == buf_size) { + struct rand_pool_info entropy = { + .entropy_count = entropy_count, @@ -79,12 +77,15 @@ Index: systemd-218/src/random-seed/random-seed.c + k = loop_write(random_fd, buf, (size_t) k, false); + if (k <= 0) { + log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); + +- r = k == 0 ? -EIO : (int) k; + r = k == 0 ? -EIO : (int) k; + } -+ } + } } } else if (streq(argv[1], "save")) { + + /* Read available entropy count, if possible */ + f = fopen("/proc/sys/kernel/random/entropy_avail", "re"); + if (f) { @@ -92,10 +93,11 @@ Index: systemd-218/src/random-seed/random-seed.c + entropy_count = 0; + fclose(f); + } - ++ seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { -@@ -134,6 +176,21 @@ int main(int argc, char *argv[]) { + log_error("Failed to open " RANDOM_SEED ": %m"); +@@ -137,6 +178,21 @@ int main(int argc, char *argv[]) { goto finish; } diff --git a/use-usr-sbin-sulogin-for-emergency-service.patch b/use-usr-sbin-sulogin-for-emergency-service.patch new file mode 100644 index 00000000..e29f4b28 --- /dev/null +++ b/use-usr-sbin-sulogin-for-emergency-service.patch @@ -0,0 +1,44 @@ +From: Andrey Borzenkov +Subject: use /usr/sbin/sulogin in emergency service + +In current Factory sulogin is in /usr/sbin which makes it impossible +to enter emergency service. +Index: systemd-207/units/emergency.service.in +=================================================================== +--- systemd-207.orig/units/emergency.service.in ++++ systemd-207/units/emergency.service.in +@@ -17,7 +17,7 @@ Environment=HOME=/root + WorkingDirectory=/root + ExecStartPre=-/bin/plymouth quit + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=@SYSTEMCTL@ --fail --no-block default + Type=idle + StandardInput=tty-force +Index: systemd-207/units/console-shell.service.m4.in +=================================================================== +--- systemd-207.orig/units/console-shell.service.m4.in ++++ systemd-207/units/console-shell.service.m4.in +@@ -17,7 +17,7 @@ Before=getty.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ poweroff + Type=idle + StandardInput=tty-force +Index: systemd-207/units/rescue.service.m4.in +=================================================================== +--- systemd-207.orig/units/rescue.service.m4.in ++++ systemd-207/units/rescue.service.m4.in +@@ -18,7 +18,7 @@ Environment=HOME=/root + WorkingDirectory=/root + ExecStartPre=-/bin/plymouth quit + ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' +-ExecStart=-/sbin/sulogin ++ExecStart=-/usr/sbin/sulogin + ExecStopPost=-@SYSTEMCTL@ --fail --no-block default + Type=idle + StandardInput=tty-force diff --git a/vhangup-on-all-consoles.patch b/vhangup-on-all-consoles.patch index 3273aba6..b318b124 100644 --- a/vhangup-on-all-consoles.patch +++ b/vhangup-on-all-consoles.patch @@ -2,22 +2,12 @@ Related to bnc#886599 and others. That is use the vhangup(8) tool to explicit do a virtually hangup on the specified on the terminal line to give e.g. the bash a few seconds to e.g. safe its history. -[crrodriguez@opensuse.org: Feb 2015 -This a known kernel bug, no notification from the cgroup subsystem -arrives and the processes in the "scope" units have -to be SIGKILL'ed without delay in order not to hang shutdown -Status: fix not available as of Feb 16 2015 -track progress: https://bugzilla.redhat.com/show_bug.cgi?id=1141137 -] - --- units/getty@.service.m4 | 1 + units/serial-getty@.service.m4 | 1 + 2 files changed, 2 insertions(+) -Index: systemd-218/units/getty@.service.m4 -=================================================================== ---- systemd-218.orig/units/getty@.service.m4 -+++ systemd-218/units/getty@.service.m4 +--- units/getty@.service.m4 ++++ units/getty@.service.m4 2014-07-15 07:30:28.006235859 +0000 @@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0 [Service] # the VT is cleared by TTYVTDisallocate @@ -26,15 +16,13 @@ Index: systemd-218/units/getty@.service.m4 Type=idle Restart=always RestartSec=0 -Index: systemd-218/units/serial-getty@.service.m4 -=================================================================== ---- systemd-218.orig/units/serial-getty@.service.m4 -+++ systemd-218/units/serial-getty@.service.m4 +--- units/serial-getty@.service.m4 ++++ units/serial-getty@.service.m4 2014-07-15 07:30:01.366235017 +0000 @@ -24,6 +24,7 @@ IgnoreOnIsolate=yes [Service] - ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM + ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600 $TERM +ExecStopPost=-/sbin/vhangup /dev/%I Type=idle Restart=always - UtmpIdentifier=%I + RestartSec=0 diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch index 8aec94ac..41a2b6dc 100644 --- a/watch_resolv.conf_for_become_changed.patch +++ b/watch_resolv.conf_for_become_changed.patch @@ -1,12 +1,10 @@ --- - src/core/manager.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/manager.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/core/manager.h | 5 ++ - 2 files changed, 98 insertions(+) + 2 files changed, 108 insertions(+) -Index: systemd-218/src/core/manager.c -=================================================================== ---- systemd-218.orig/src/core/manager.c -+++ systemd-218/src/core/manager.c +--- src/core/manager.c ++++ src/core/manager.c 2014-11-07 11:12:58.334193988 +0000 @@ -37,6 +37,7 @@ #include #include @@ -15,7 +13,7 @@ Index: systemd-218/src/core/manager.c #ifdef HAVE_AUDIT #include -@@ -302,6 +303,91 @@ static int manager_check_ask_password(Ma +@@ -304,6 +305,101 @@ static int manager_check_ask_password(Ma return m->have_ask_password; } @@ -37,8 +35,13 @@ Index: systemd-218/src/core/manager.c + flush_fd(fd); + + m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); ++ ++ if (m->resolv_conf_inotify_fd >= 0) ++ close_nointr_nofail(m->resolv_conf_inotify_fd); ++ m->resolv_conf_inotify_fd = -1; ++ + manager_setup_resolv_conf_change(m); ++ + return m->resolv_conf_noent ? 0 : res_init(); +} + @@ -93,7 +96,10 @@ Index: systemd-218/src/core/manager.c + + return 0; +fail: -+ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); ++ if (m->resolv_conf_inotify_fd >= 0) ++ close_nointr_nofail(m->resolv_conf_inotify_fd); ++ m->resolv_conf_inotify_fd = -1; ++ + return 0; /* Ignore error here */ +} + @@ -101,21 +107,23 @@ Index: systemd-218/src/core/manager.c + assert(m); + + m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); ++ if (m->resolv_conf_inotify_fd >= 0) ++ close_nointr_nofail(m->resolv_conf_inotify_fd); ++ m->resolv_conf_inotify_fd = -1; +} + static int manager_watch_idle_pipe(Manager *m) { int r; -@@ -557,6 +643,7 @@ int manager_new(SystemdRunningAs running - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; +@@ -562,6 +658,7 @@ int manager_new(SystemdRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + m->resolv_conf_inotify_fd = -1; m->ask_password_inotify_fd = -1; m->have_ask_password = -EINVAL; /* we don't know */ -@@ -618,6 +705,10 @@ int manager_new(SystemdRunningAs running +@@ -613,6 +710,10 @@ int manager_new(SystemdRunningAs running if (r < 0) goto fail; @@ -126,22 +134,20 @@ Index: systemd-218/src/core/manager.c m->udev = udev_new(); if (!m->udev) { r = -ENOMEM; -@@ -896,6 +987,8 @@ Manager* manager_free(Manager *m) { - if (!m) - return NULL; +@@ -906,6 +1007,8 @@ void manager_free(Manager *m) { + + assert(m); + manager_shutdown_resolv_conf_change(m); + manager_clear_jobs_and_units(m); for (c = 0; c < _UNIT_TYPE_MAX; c++) -Index: systemd-218/src/core/manager.h -=================================================================== ---- systemd-218.orig/src/core/manager.h -+++ systemd-218/src/core/manager.h -@@ -185,6 +185,11 @@ struct Manager { - int utab_inotify_fd; - sd_event_source *mount_utab_event_source; +--- src/core/manager.h ++++ src/core/manager.h 2014-11-07 11:06:41.466019636 +0000 +@@ -157,6 +157,11 @@ struct Manager { + FILE *proc_self_mountinfo; + sd_event_source *mount_event_source; + /* Watch out any change of /etc/resolv.conf */ + int resolv_conf_inotify_fd; From b9d779e5bf83b7b4183ee3cbb2af62d9b8593d80cb19a020b715aaa1e8990ccb Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 27 Mar 2015 08:39:40 +0000 Subject: [PATCH 212/221] Accepting request 290056 from Base:System Submit systemd to a staging of it's own - retest post revert OBS-URL: https://build.opensuse.org/request/show/290056 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=218 --- ...on-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch | 110 - ...escape-unit-names-in-Install-section.patch | 21 - ...-snprintf-a-potentially-NULL-pointer.patch | 25 - 0001-Fix-systemd-stdio-bridge-symlink.patch | 28 - ...g-about-unused-variable-with-SELINUX.patch | 31 - ...s390_con3270_disable_ANSI_colour_esc.patch | 67 +- 0001-activate-fix-fd-leak-in-do_accept.patch | 26 - ...sh-for-reboot-or-hddown-for-poweroff.patch | 49 +- ...network-device-after-NFS-mount-units.patch | 64 +- 0001-architecture-Add-tilegx.patch | 56 - ...restoring-brightness-to-an-unreadabl.patch | 79 - ...completion-fix-__get_startable_units.patch | 25 - ...h-completion-p-option-for-journalctl.patch | 46 - 0001-bnc888612-logind-polkit-acpi.patch | 34 +- ...ibc-s-xattr-support-instead-of-requi.patch | 215 - ...-bus-proxyd-fix-incorrect-comparison.patch | 21 - ...t-s-not-OK-to-invoke-alloca-in-loops.patch | 80 - ...ter-templates-from-restartable-units.patch | 30 - ...ntly-ignore-sections-starting-with-X.patch | 73 - ...-lookup-string-for-BUSNAME_FAILURE_S.patch | 29 - ...core-close-socket-fds-asynchronously.patch | 89 - ...n-t-allow-enabling-if-unit-is-masked.patch | 36 - 0001-core-fix-invalid-free-in-killall.patch | 32 - ...urce-leak-in-manager_environment_add.patch | 32 - 0001-core-rework-device-state-logic.patch | 917 + ...ake-configured-units-part-of-swap.ta.patch | 76 - ...network-should-be-equivalent-to-netw.patch | 51 - ...e-use-correct-format-string-for-UIDs.patch | 20 - 0001-detect-virt-Fix-Xen-domU-discovery.patch | 33 - ...to-handle-the-3-errnos-that-are-alia.patch | 30 - ...pull-in-sd-event.h-from-event-util.h.patch | 24 - ...or-don-t-return-OOM-on-parentless-de.patch | 20 - ...base-of-Bluetooth-company-identifier.patch | 29 - 0001-hwdb-fix-case-sensitive-match.patch | 25 - ...db-keymaps-for-Samsung-900X3E-900X3F.patch | 40 - 0001-hwdb-update.patch | 6590 -- ....service-ignore-return-code-of-daemo.patch | 29 - ...ount-on-the-compiler-initializing-fo.patch | 30 - ...-up-error-handling-in-update_catalog.patch | 104 - ...-return-early-in-uncompress_startswi.patch | 186 - ...port-of-messages-containing-newlines.patch | 80 - ...t-output-reboot-markers-when-running.patch | 27 - ...map-Add-Lenovo-Enhanced-USB-Keyboard.patch | 36 - ...-support-for-IBM-ThinkPad-X41-Tablet.patch | 38 - ...pad-toggle-on-Toshiba-Satellite-P75-.patch | 27 - ...systemctl-completion-ignore-at-names.patch | 4 +- ...in-fix-memory-leak-on-DropController.patch | 36 - 0001-login-fix-pos-array-allocation.patch | 52 - ...ces-before-acknowledging-VT-switches.patch | 82 - ...sole-setup-when-switching-from-vgaco.patch | 60 - 0001-login-simplify-controller-handling.patch | 118 - ...add-support-for-Triton2-Power-Button.patch | 24 - ...switching-to-unused-VTs-via-SwitchTo.patch | 37 - ...d-switch-if-more-than-1-display-is-c.patch | 168 - ...-don-t-return-uninitialized-variable.patch | 26 - ...-might-fail-due-to-OOM-protect-again.patch | 26 - 0001-make-209-working-on-older-dist.patch | 79 - 0001-make-fortify-happy-with-ppoll.patch | 55 - ...-hppa-has-fewer-rtsigs-hence-avoid-u.patch | 79 - ...bind-mount-journal-on-top-of-a-non-e.patch | 45 - ...-to-create-veth-link-with-too-long-i.patch | 21 - 0001-nspawn-fix-network-interface.patch | 21 - ...ation-of-machine-names-in-interface-.patch | 31 - ...XDG_RUNTIME_DIR_of_the_original_user.patch | 6 +- 0001-parse_uid-return-ENXIO-for-1-uids.patch | 45 - 0001-po-add-Ukrainian-translation.patch | 406 - ...t-of-messages-logged-to-dev-kmsg-whe.patch | 27 - ...-replace-more-dup-by-F_DUPFD_CLOEXEC.patch | 39 - ...k-for-a-64bit-value-when-we-only-hav.patch | 181 - ...handle-removals-of-non-existing-matc.patch | 25 - ...equire-a-signal-event-source-to-be-e.patch | 58 - ...nt-restore-correct-timeout-behaviour.patch | 37 - ...sage-append-fix-uninitialized-memory.patch | 111 - ...x-access-fix-broken-ternary-operator.patch | 23 - ...ion-fix-completion-of-inactive-units.patch | 95 - ...nd-clean-up-initialization-of-struct.patch | 30 - ...troduce-SELinuxContextFromNet-option.patch | 414 - ...tional-overflow-check-when-enlarging.patch | 35 - ...t-error-message-printed-when-bus_pro.patch | 28 - ...to-change-the-default-target-without.patch | 51 - ...et-list-units-unit-files-honour-type.patch | 94 - ...angle-unit-names-for-the-isolate-suf.patch | 52 - ...nue-switch-root-even-if-umount-fails.patch | 50 - ...tect-virt-detect-s390-virtualization.patch | 72 - ...-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch | 39 - ...cripts-which-provide-network-before-.patch | 34 - ...compare-return-against-correct-errno.patch | 26 - ...fix-permissions-on-new-journal-files.patch | 27 - 0001-umount-modernizations.patch | 119 - ...network-pre.target-as-place-to-hook-.patch | 126 - ...xecStopPost-action-part-of-ExecStart.patch | 46 - ...rfkill-service-is-bount-to-the-actua.patch | 32 - ...ork-online.target-after-network.targ.patch | 20 - ...sctl.service.in-run-after-load-modul.patch | 29 - ...etup-dev-allow-unsafe-file-creation-.patch | 24 - ...7F-a-control-chracter-which-it-is-DE.patch | 54 - ...py-character-maps-not-just-fonts-fro.patch | 56 - ...-we-are-running-inside-the-docker-co.patch | 25 - ...irt-rework-container-detection-logic.patch | 159 - ...wdb-entry-for-Samsung-Series-7-Ultra.patch | 31 - ...re-verbose-when-bind-or-listen-fails.patch | 92 - 0002-analyze-avoid-a-null-dereference.patch | 30 - ...bus_open_transport_systemd-instead-o.patch | 46 - 0002-architecture-Add-cris.patch | 55 - ...ht-do-nothing-if-max_brightness-is-0.patch | 108 - ...-use-n-a-if-PRETTY_NAME-is-not-found.patch | 31 - ...emory-leak-when-kdbus-is-not-enabled.patch | 26 - ...sd_bus_try_close-in-exit-on-idle-ser.patch | 59 - 0002-bus-remove-unused-check.patch | 29 - ...nvironment-fields-passed-in-for-tran.patch | 27 - ...-fix-cycle-break-attempts-outside-tr.patch | 42 - ...s-properties-cannot-be-both-writable.patch | 23 - ...ectory-path-if-we-fail-to-remove-it-.patch | 54 - ...ice-name-in-the-message-about-missin.patch | 26 - ...d-add-a-new-chassis-type-for-watches.patch | 26 - ...-for-special-keys-on-compaq-ku-0133-.patch | 42 - ...base-of-Bluetooth-company-identifier.patch | 32 - 0002-hwdb-update.patch | 2058 - ...lude-fcntl.h-rather-than-sys-fcntl.h.patch | 25 - ...s-improve-xz-compression-performance.patch | 82 - ...ly-detect-language-specified-in-line.patch | 99 - ...rnalctl-man-allow-only-between-terms.patch | 109 - ...-MaxFileSec-really-default-to-1month.patch | 30 - ...ophone-mute-keymap-for-Dell-Latitude.patch | 38 - ...eymap-Asus-EeePC-touchpad-toggle-key.patch | 28 - ...cial-keys-on-ThinkPad-X60-X61-Tablet.patch | 33 - ...-touchpad-toggle-key-on-Asus-laptops.patch | 25 - ...ightness-keys-on-Dell-Inspiron-1520-.patch | 41 - ...pos-slot-to-fallback-on-pos-eviction.patch | 52 - ...dd-support-for-TPS65217-Power-Button.patch | 71 - ...kit-policy-for-hibernate-in-line-wit.patch | 28 - 0002-logind-fix-printf-format.patch | 25 - ...l-bus-call-on-machine-objects-when-w.patch | 70 - ...early-and-annually-in-systemd.time-7.patch | 49 - ...t-entire-sections-can-now-be-ignored.patch | 35 - ...n-tmpfiles.d-recommend-using-b-and-c.patch | 24 - ...emory-stream-before-using-the-buffer.patch | 45 - ...pace-fix-uninitialized-memory-access.patch | 28 - ...etting-up-an-inaccessible-mount-poin.patch | 122 - ...ore-journal-directory-is-empty-check.patch | 30 - ...F_DUPFD_CLOEXEC-when-dupping-session.patch | 26 - ...w-we-generate-file-names-from-rfkill.patch | 116 - ...mpletion-prevent-mangling-unit-names.patch | 67 - ...-propose-templates-for-disable-re-en.patch | 111 - ...-arguments-to-run-initramfs-shutdown.patch | 70 - ...s-own-argv-to-run-initramfs-shutdown.patch | 36 - ...ot-return-error-when-snapshot-exists.patch | 25 - ...h-root-umount-the-old-root-correctly.patch | 26 - ...sctl-replaces-some-slashes-with-dots.patch | 97 - ...temctl-obey-state-in-list-unit-files.patch | 28 - ...BindsTo-BoundBy-in-list-dependencies.patch | 35 - ...emctl-update-NAME-to-PATTERN-in-help.patch | 52 - 0002-systemd-fix-error-message.patch | 29 - ...-try-harder-to-bind-to-notify-socket.patch | 44 - ...upport-infinity-syntax-in-parse_nsec.patch | 40 - ...w-Entry-for-Dell-XPS12-9Q33-keyboard.patch | 29 - ...g-caps-so-that-GetAddresses-can-work.patch | 18 - ...emd-fsck-.service-after-local-fs-pre.patch | 29 - ...ty-.service-use-the-default-RestartS.patch | 29 - 0002-util-avoid-non-portable-__WORDSIZE.patch | 25 - ...der-tabs-special-in-string_has_cc-an.patch | 117 - 0002-util-fix-has-cc-check-and-add-test.patch | 25 - ...-race-where-we-might-miss-SIGTERMs-w.patch | 96 - 0002-util-remove-a-unnecessary-check.patch | 25 - ...ping-strings-don-t-allow-smuggling-i.patch | 74 - ...le-setup-run-setfont-before-loadkeys.patch | 167 - 0003-Add-quotes-to-warning-message.patch | 41 - 0003-Always-check-asprintf-return-code.patch | 223 - ...rint-invalid-UTF-8-in-error-messages.patch | 130 - ...-in-suggested-systemctl-commandlines.patch | 68 - 0003-analyze-fix-mem-leak.patch | 27 - 0003-analyze-fix-plot-with-bad-y-size.patch | 31 - 0003-arch-add-crisv32-to-uname-check.patch | 24 - ...-string-table-entries-for-mips-le-ar.patch | 52 - 0003-backlight-unify-error-messages.patch | 115 - ...ot-OK-to-return-1-from-a-main-progra.patch | 27 - ...chart-parse-userinput-with-safe_atoi.patch | 34 - ...-drop-service-from-the-result-string.patch | 25 - ...-put-the-cached-result-of-use_smack-.patch | 32 - 0003-core-allow-transient-mount-units.patch | 115 - ...sure-to-serialize-jobs-for-all-units.patch | 118 - ...der-failure-when-reading-drop-ins-fa.patch | 113 - ...ge-when-inotify-watches-are-exhauste.patch | 30 - ...lt-to-no-hash-when-keyfile-is-specif.patch | 28 - ...do-not-use-unicode-chars-in-C-locale.patch | 134 - ...abel-return-error-when-writing-fails.patch | 30 - ...fsck-implementation-linked-to-bin-tr.patch | 110 - ...-primary-model-string-in-subsystem-m.patch | 51583 ---------------- ...base-of-Bluetooth-company-identifier.patch | 38 - ...l-fix-invalid-free-in-unit_file_mask.patch | 30 - ..._MAC_OVERRIDE-in-journald-for-SMACK-.patch | 41 - ...Adjust-for-more-Samsung-900X4-series.patch | 29 - ...map-Annotate-all-micmute-workarounds.patch | 54 - 0003-keymap-Fix-HP-Pavillon-DV7.patch | 28 - ...onsider-an-unset-model-as-a-wildcard.patch | 39 - ...ing-org.freedesktop.login1.Seat.Swit.patch | 35 - ...d-switch-events-for-30s-after-each-s.patch | 174 - ...tion-XDG_CONFIG_HOME-in-systemd.unit.patch | 40 - ...-man-we-don-t-have-Wanted-dependency.patch | 29 - ...ions-before-other-arguments-to-mount.patch | 39 - ...ure-tmp-var-tmp-and-dev-are-writable.patch | 34 - ...-bus-check-return-value-of-vasprintf.patch | 35 - ...-assert_return-to-check-for-disconne.patch | 498 - ...operties-that-claim-to-be-both-writa.patch | 29 - ...call-epoll_ctl-on-mask-updates-if-ed.patch | 46 - ...rly-convert-object-size-on-big-endia.patch | 39 - ...void-prematurely-rejecting-missing-u.patch | 39 - ...-systemd-use-pager-for-test-and-help.patch | 111 - ...t-from-format_timestamp_relative-on-.patch | 25 - ...password-agent-return-negative-errno.patch | 29 - ...xplicitly-don-t-read-from-invalid-fd.patch | 27 - ...emd-tmpfiles-clean.service-after-tim.patch | 26 - ...useManualStart-from-units-which-are-.patch | 65 - ...de-mixed-for-systemd-nspawn-.service.patch | 26 - ...g-at-the-next-unichar-honour-the-siz.patch | 29 - ...ise-level-of-Found-dependency.-lines.patch | 42 - ...itecture-remove-cris-from-uname-list.patch | 27 - ...error-when-state-restore-is-disabled.patch | 33 - ...f-kernel-exposes-backlight-device-wi.patch | 40 - ...use-list-unit-files-to-get-all-units.patch | 39 - 0004-bootchart-check-return-of-strftime.patch | 63 - 0004-config-parser-fix-mem-leak.patch | 24 - ...rt-for-ERRNO-NOTIFY_SOCKET-message-p.patch | 67 - ...o-relabel-mounts-before-we-loaded-th.patch | 29 - ...tion-destructiveness-check-once-more.patch | 32 - ...the-rescue-argument-to-rescue.target.patch | 27 - ...-add-unit-dependency-on-dev-null-dev.patch | 53 - ...te-more-shell-characters-in-envfiles.patch | 54 - ...y-one-error-in-array-index-assertion.patch | 35 - ...C-network-interface-name-irdac-idrac.patch | 22 - ...rator-properly-escape-instance-names.patch | 39 - ...base-of-Bluetooth-company-identifier.patch | 50 - ...at-description-and-document-reloadin.patch | 60 - 0004-hwdb-update.patch | 3964 -- ...ement-a-union-to-pad-out-file_handle.patch | 117 - ...g-jobs-to-run-queue-in-unit_coldplug.patch | 30 - ...journal-do-server_vacuum-for-sigusr1.patch | 30 - ...ller-should-fail-if-prepare_vt-fails.patch | 134 - ...il-display-count-if-a-device-has-no-.patch | 45 - ...re-GetMachineAddresses-is-available-.patch | 38 - ...ument-missing-options-of-systemd-run.patch | 113 - ...-t-manage-to-properly-allocate-the-e.patch | 43 - ...vent-loop-terminates-explicitly-clos.patch | 27 - ...t-check-the-value-of-received-signal.patch | 46 - ...y-that-object-start-with-the-field-n.patch | 41 - ...ntial-double-free-crash-in-child-pro.patch | 38 - 0004-shared-conf-parser.patch | 31 - ...-don-t-clear-store_wtmp-in-utmp_put_.patch | 106 - ...handle-if-our-service-vanished-durin.patch | 30 - ...d-detect-virt-only-discover-Xen-domU.patch | 79 - ...-python-use-.hex-instead-of-.get_hex.patch | 46 - ...the-first-error-from-manager_startup.patch | 57 - ...e-should-not-allow-files-ending-with.patch | 28 - ...idering-UID-0xFFFF-and-0xFFFFFFFF-va.patch | 31 - ...var-run-with-run-in-remaining-places.patch | 89 - ...ght-Do-not-clamp-brightness-for-LEDs.patch | 60 - ...-saved-brightness-exceeding-max-brig.patch | 64 - ...-try-to-access-data-for-non-existing.patch | 29 - ...avoid-using-m-kdbus-after-freeing-it.patch | 35 - ...s-close-a-bus-that-failed-to-connect.patch | 28 - ...tate-behind-the-D-Bus-API-not-in-the.patch | 137 - ...e-kernel-s-timezone-when-the-RTC-run.patch | 121 - 0005-cryptsetup-fix-an-OOM-check.patch | 25 - ...base-of-Bluetooth-company-identifier.patch | 73 - 0005-hwdb-update.patch | 1560 - ...aiting-jobs-to-run-queue-during-cold.patch | 34 - ...urnalctl-correct-help-text-for-until.patch | 21 - 0005-login-fix-mem-leak.patch | 23 - 0005-logind-fix-policykit-checks.patch | 43 - 0005-logind-fix-typo.patch | 25 - ...switch-handling-from-logind-main-to-.patch | 119 - 0005-man-fix-path-in-crypttab-5.patch | 26 - ...n_by_handle_at-and-others-via-seccom.patch | 94 - 0005-po-add-Greek-translation.patch | 436 - ...daemon-fix-incorrect-variable-access.patch | 25 - ...-stricter-checking-of-random-boot-id.patch | 37 - ...llocation-if-query-ids-never-reuse-t.patch | 45 - ...cept-negative-ERRNO-notification-mes.patch | 25 - ...-label.h-add-missing-stdio.h-include.patch | 24 - 0005-systemd-python-fix-failing-assert.patch | 26 - ...emd-run-add-some-extra-safety-checks.patch | 34 - ...sd-journal-flush-after-sd-remount-fs.patch | 38 - 0005-util-avoid-double-close-of-fd.patch | 28 - ...-return-1-EINVAL-on-allocation-error.patch | 35 - ...k-to-var-run-at-a-couple-of-problems.patch | 60 - 0006-bus-unref-buscreds-on-failure.patch | 32 - 0006-calendarspec-fix-typo-in-annually.patch | 27 - ...base-of-Bluetooth-company-identifier.patch | 82 - 0006-hwdb-update.patch | 4392 -- ...hat-next-entry-is-after-previous-ent.patch | 70 - 0006-journald-fix-minor-memory-leak.patch | 24 - ...-the-kernel-s-quiet-cmdline-argument.patch | 29 - ...add-mir-to-the-list-of-session-types.patch | 90 - ...e-VT-signal-handler-between-sessions.patch | 246 - ...-the-ExecReload-command-should-be-sy.patch | 39 - ...-parse_boolean-require-exact-matches.patch | 48 - ...device-as-SYSTEMD_READY-0-if-no-file.patch | 30 - ...ization-perturbation-value-right-bef.patch | 75 - ...dian.h-add-missing-byteswap.h-includ.patch | 24 - ...temctl-fix-resource-leak-CID-1237747.patch | 35 - ...tatusErrno-value-in-systemctl-status.patch | 37 - ...o-automatic-cleanup-in-XDG_RUNTIME_D.patch | 26 - ...-agent-Do-tell-what-directory-we-fai.patch | 26 - ...t-that-var-run-must-be-a-symlink-run.patch | 30 - 0007-core-fix-a-potential-mem-leak.patch | 25 - ...ss-duplicate-and-misleading-messages.patch | 66 - ...uplicates-copy-full-BindMount-struct.patch | 31 - ...base-of-Bluetooth-company-identifier.patch | 49 - 0007-hwdb-update.patch | 1910 - ...get-file-after-encountering-an-error.patch | 74 - ...eck-journal-file-size-to-deduce-if-i.patch | 55 - ...crease-the-SendBuffer-of-dev-log-to-.patch | 23 - ...d-add-Plantronics-.Audio-mute-button.patch | 32 - ...warn-if-we-fail-to-request-SO_PASSCR.patch | 29 - ...fix-Display-property-of-user-objects.patch | 147 - ...x-cmdline-switch-inconsistency-betwe.patch | 41 - 0007-networkd-fix-typo.patch | 26 - 0007-po-add-German-translation.patch | 448 - ...ccidentally-turn-of-watchdog-timer-e.patch | 29 - ...atus-text-and-errno-values-each-time.patch | 29 - ...not-ignore-errors-in-symlink-removal.patch | 26 - ...skip-mounting-tmp-if-it-is-a-symlink.patch | 26 - ...Reset-signal-mask-on-re-exec-to-init.patch | 51 - ...-system_bus_socket-for-the-D-Bus-soc.patch | 51 - ...-unregister-PIDs-from-PID-hashtables.patch | 102 - ...-Actually-allow-for-succesfully-load.patch | 31 - ...base-of-Bluetooth-company-identifier.patch | 104 - 0008-hwdb-update.patch | 1425 - ...urnald-fix-memory-leak-on-error-path.patch | 29 - ...ep-modes-are-to-be-separated-by-whit.patch | 36 - ...-update-journald-rate-limit-defaults.patch | 28 - ...counting-of-early-mounts-without-SMA.patch | 32 - ...ess-invalid-memory-if-a-signal-match.patch | 27 - ...er-don-t-leak-memory-on-error-in-DEF.patch | 52 - ...ion-prevent-mangling-unit-names-bash.patch | 87 - ...ode-is-long-long-gone-don-t-mention-.patch | 53 - ...til-introduce-sethostname_idempotent.patch | 85 - ...n-the-user-types-a-overly-long-passw.patch | 33 - ...int_property-to-use-int-for-booleans.patch | 29 - ...an-up-signal-reset-logic-when-reexec.patch | 50 - ...base-of-Bluetooth-company-identifier.patch | 38 - 0009-hwdb-update.patch | 3363 - 0009-journal-do-not-leak-mmaps-on-OOM.patch | 50 - ...-by-one-error-in-Missed-X-kernel-mes.patch | 29 - ...add-syslog-facility-for-messages-com.patch | 40 - ...ence-to-systemd-user-sessions.servic.patch | 25 - ...-out-PropertiesChanged-message-if-ac.patch | 70 - ...format-container_uuid-in-UUID-format.patch | 56 - ...ke-if-somebody-sends-us-a-message-wi.patch | 47 - ...systemd-journald.service-Type-notify.patch | 27 - ...ste-error-and-actually-set-the-new-h.patch | 26 - ...base-of-Bluetooth-company-identifier.patch | 77 - ...-suspending-if-there-are-no-displays.patch | 42 - ...-t-kill-the-unit-when-killing-the-le.patch | 32 - 0010-man-update-link-to-LSB.patch | 35 - ...manager-use-correct-cleanup-function.patch | 30 - ...-PropertiesChanged-signals-for-mount.patch | 51 - ...l-unmounting-only-if-not-running-ins.patch | 27 - ...t-fuse.sshfs-as-a-network-filesystem.patch | 25 - ...d-pthread-flag-for-libsystemd-shared.patch | 28 - ...x-corrupt-output-with-empty-messages.patch | 41 - ...emd-bootchart-fix-spacing-in-command.patch | 28 - ...e-we-do-not-try-to-print-missing-fie.patch | 57 - ...o-logic-when-applied-relative-to-ser.patch | 93 - ...-avoid-misleading-error-message-when.patch | 42 - ...e-extra-arguments-with-verify-and-si.patch | 30 - ...ve-stray-reset-of-error-return-value.patch | 24 - 0012-man-add-missing-comma.patch | 26 - ...rint-anything-while-passwords-are-be.patch | 180 - ...-bit-more-NFS-compatible-when-checki.patch | 36 - ...systemd-timedate-udev-spelling-fixes.patch | 118 - ...scape-instance-name-in-systemd-backl.patch | 38 - 0014-journald-with-journaling-FS.patch | 100 +- ...ection-of-missing-proc-self-loginuid.patch | 31 - ...ripts-know-about-Required-and-Should.patch | 68 - ...pletion-smart-to-be-able-to-redirect.patch | 154 +- ...enable-by_path-links-for-ata-devices.patch | 21 +- 1003-udev-netlink-null-rules.patch | 12 +- ...fault-links-for-primary-cd_dvd-drive.patch | 14 +- 1006-udev-always-rename-network.patch | 48 +- 1008-add-msft-compability-rules.patch | 25 - 1009-cdrom_id-use-the-old-MMC-fallback.patch | 54 - ...ev-increase-result-size-for-programs.patch | 13 - 1014-udev-update-net_id-comments.patch | 102 - ...naming-we-cannot-use-virtio-numbers-.patch | 99 - ...name_to_handle_at-is-not-implemented.patch | 30 - ...ynchronize-block-device-event-handli.patch | 83 - ...-the-execution-of-RUN-when-renaming-.patch | 140 - ...-udev-avoid-use-of-uninitialized-err.patch | 37 - ...eyboard-also-hook-into-change-events.patch | 27 - 1021-udev-re-add-persistent-net-rules.patch | 343 +- ...um-API-and-all-assumptions-about-seq.patch | 1445 - ...board-do-tell-on-which-device-EVIOCS.patch | 31 - ...ev-always-close-lock-file-descriptor.patch | 41 - ...ice-mapper-from-block-device-ownersh.patch | 39 - 1026-udevd-inotify-modernizations.patch | 85 - ...change-events-for-partitions-when-to.patch | 84 - 1028-udev-link-config-fix-mem-leak.patch | 34 - ...first-re-reading-the-partition-table.patch | 94 - ...guard-REREADP-logic-with-open-O_ECXL.patch | 23 - ...re-we-always-get-change-for-the-disk.patch | 98 - ...DPT-by-exclusive-lock-instead-of-O_E.patch | 29 - ...lude-device-mapper-from-block-device.patch | 39 - ...eturn-value-from-udev_enumerate_scan.patch | 26 - ...x-invalid-free-in-enable_name_policy.patch | 30 - ...le-fixed-return-code-for-empty-queue.patch | 34 - ...-udev_queue_get_queue_is_empty-logic.patch | 25 - ...ovide-file-descriptor-to-watch-busy-.patch | 248 - ...tch-entire-directory-to-allow-the-re.patch | 40 - 1044-rules-update-qemu-hid-rules.patch | 45 - ...-t-enable-usb-pm-for-Avocent-devices.patch | 29 - ...ink-builtin-should-print-the-reason-.patch | 61 - ...et_setup_link-add-a-bit-more-logging.patch | 39 - ...-ignore-errors-due-to-missing-MAC-ad.patch | 36 - ...-rules-uaccess-add-ID_SOFTWARE_RADIO.patch | 45 - ...from-block-device-ownership-event-lo.patch | 53 - ...add-event-timeout-commandline-option.patch | 119 - 1057-udev-unify-event-timeout-handling.patch | 504 - 1058-udev-unify-event-timeout-handling.patch | 504 - ...t-dd5eddd28a74a49607a8fffcaf960040db.patch | 26 - ...emd-to-manage-loop-device-partitions.patch | 32 - ...press-ID_PATH-for-devices-with-an-un.patch | 96 - ...db-do-not-look-at-usb_device-parents.patch | 63 - ...dev-bump-event-timeout-to-60-seconds.patch | 39 - ...lity-links-for-truncated-by-id-links.patch | 64 +- ...lve-correctly-database-names-on-chan.patch | 53 - ...ink-export-the-.link-filename-applie.patch | 26 - ...link-preserve-ID_NET_LINK_FILE-and-I.patch | 27 - ...et-setup-link-remove-stray-linebreak.patch | 27 - ...full-db-on-MOVE-events-for-devices-w.patch | 54 - ...-udev-netif_rename-don-t-log-to-kmsg.patch | 39 - 1073-udev-drop-print_kmsg.patch | 75 - ...-fix-copy-paste-error-in-log-message.patch | 25 - 1075-udev-timeout-increase-timeout.patch | 28 - ...n-after-a-third-of-the-timeout-befor.patch | 350 - ...n-after-a-third-of-the-timeout-befor.patch | 350 - ...e-userspace-firmware-loading-support.patch | 349 - ...e-userspace-firmware-loading-support.patch | 349 - ...se_argv-warn-if-argumens-are-invalid.patch | 73 - ...vd-check-return-of-various-functions.patch | 55 - ...dm-hwdb-check-return-value-of-fseeko.patch | 45 - ...-udev-node-warn-if-chmod-chown-fails.patch | 34 - ...trl-log-if-setting-SO_PASSCRED-fails.patch | 45 - 1085-udev-fix-typos.patch | 33 - ...-udevd-don-t-fail-if-run-udev-exists.patch | 25 - ...init-timeout-for-kmod-loaded-modules.patch | 135 - 1089-fix-cgroup-device-controller.patch | 74 - ...-supported_parent-for-well-known-SCS.patch | 58 - 1091-udev-path_id-update-comments.patch | 42 - ...dev-do-not-accept-invalid-log-levels.patch | 67 - ...-of-udev.event-timeout-kernel-parame.patch | 23 - ...-constants-in-kernel-cmdline-parsers.patch | 58 - ...t-ssd-disk-to-use-deadline-scheduler.patch | 21 +- 1096-new-udev-root-symlink-generator.patch | 105 +- ...-increase-maximum-number-of-children.patch | 26 +- ...up-respect-kernel-name-assign-policy.patch | 154 - 513-nspawn-veth.patch | 39 - ...es-permissions-to-follow-openSUSE-po.patch | 15 +- ...-suspend-hibernate-calls-to-pm-utils.patch | 49 +- ...pport-for-SysV-scripts-for-the-early.patch | 140 - ...alid-address-familily-is-passed-to-g.patch | 24 - avoid-leaking-socket-descriptors.patch | 339 - boot.udev | 74 - ...le-nss-myhostname-warning-bnc-783841.patch | 18 - ...rtname-is-set-as-hostname-bnc-820213.patch | 17 +- fix-owner-of-var-log-btmp.patch | 20 - ...-boot-prefixed-initscript-bnc-746506.patch | 26 +- ...STEMCTL_OPTIONS-environment-variable.patch | 42 - ...plock-and-compose_table-and-kbd_rate.patch | 95 +- handle-etc-HOSTNAME.patch | 77 - ...lock-value-in-etc-sysconfig-keyboard.patch | 209 +- ...lang-value-in-etc-sysconfig-language.patch | 20 +- insserv-generator.patch | 52 +- journald-advice-about-use-of-memory.patch | 146 +- kbd-model-map.patch | 15 +- ...linker-find-libudev-for-libdevmapper.patch | 40 +- localfs.service | 8 - log-target-null-instead-kmsg.patch | 116 - macros.systemd.upstream | 51 +- ....service-conflict-with-syslog.socket.patch | 19 +- ...USE-etc-sysconfig-kernel-module-list.patch | 64 - ...lly-warn-if-nss-myhostname-is-called.patch | 102 - parse-crypttab-for-noauto-option.patch | 47 +- ...-quit-and-wait-for-emergency-service.patch | 52 +- prepare-suspend-to-disk.patch | 28 - ...script-heuristic-and-add-new-LSB-hea.patch | 91 - respect-nfs-bg-option.patch | 31 +- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 30 +- ...vice-with-detected-pid-as-RemainAfte.patch | 31 - set-and-use-default-logconsole.patch | 47 +- ...ng-assertion-monotonic-clock-message.patch | 38 - shut-up-rpmlint-on-var-log-journal.patch | 14 +- suse-sysv-bootd-support.diff | 86 + ...ndle-boot-sysctl.conf-kernel_release.patch | 28 +- systemctl-set-default-target.patch | 20 +- systemd-210.tar.xz | 3 - systemd-219.tar.xz | 3 + systemd-add-user-keep.patch | 129 +- systemd-dbus-system-bus-address.patch | 39 +- systemd-journald.init | 33 - systemd-mini-rpmlintrc | 2 + systemd-mini.changes | 566 + systemd-mini.spec | 1730 +- systemd-pam_config.patch | 28 +- systemd-powerd-initctl-support.patch | 16 +- systemd-rpmlintrc | 2 + systemd-sleep-grub | 204 - systemd-tmp-safe-defaults.patch | 16 +- systemd.changes | 566 + systemd.spec | 1730 +- ...or-openSUSE-version-of-etc-sysconfig.patch | 24 - ...s-do-not-clean-for-mandb-index-files.patch | 22 - tty-ask-password-agent-on-console.patch | 334 +- ...addentropy-ioctl-to-load-random-seed.patch | 30 +- ...r-sbin-sulogin-for-emergency-service.patch | 44 - vhangup-on-all-consoles.patch | 24 +- watch_resolv.conf_for_become_changed.patch | 52 +- 517 files changed, 3871 insertions(+), 110760 deletions(-) delete mode 100644 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch delete mode 100644 0001-Do-not-unescape-unit-names-in-Install-section.patch delete mode 100644 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch delete mode 100644 0001-Fix-systemd-stdio-bridge-symlink.patch delete mode 100644 0001-Fix-warning-about-unused-variable-with-SELINUX.patch delete mode 100644 0001-activate-fix-fd-leak-in-do_accept.patch delete mode 100644 0001-architecture-Add-tilegx.patch delete mode 100644 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch delete mode 100644 0001-bash-completion-fix-__get_startable_units.patch delete mode 100644 0001-bash-completion-p-option-for-journalctl.patch delete mode 100644 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch delete mode 100644 0001-bus-proxyd-fix-incorrect-comparison.patch delete mode 100644 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch delete mode 100644 0001-completion-filter-templates-from-restartable-units.patch delete mode 100644 0001-conf-parser-silently-ignore-sections-starting-with-X.patch delete mode 100644 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch delete mode 100644 0001-core-close-socket-fds-asynchronously.patch delete mode 100644 0001-core-don-t-allow-enabling-if-unit-is-masked.patch delete mode 100644 0001-core-fix-invalid-free-in-killall.patch delete mode 100644 0001-core-fix-resource-leak-in-manager_environment_add.patch create mode 100644 0001-core-rework-device-state-logic.patch delete mode 100644 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch delete mode 100644 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch delete mode 100644 0001-core-use-correct-format-string-for-UIDs.patch delete mode 100644 0001-detect-virt-Fix-Xen-domU-discovery.patch delete mode 100644 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch delete mode 100644 0001-event-pull-in-sd-event.h-from-event-util.h.patch delete mode 100644 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch delete mode 100644 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0001-hwdb-fix-case-sensitive-match.patch delete mode 100644 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch delete mode 100644 0001-hwdb-update.patch delete mode 100644 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch delete mode 100644 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch delete mode 100644 0001-journal-cleanup-up-error-handling-in-update_catalog.patch delete mode 100644 0001-journal-compress-return-early-in-uncompress_startswi.patch delete mode 100644 0001-journal-fix-export-of-messages-containing-newlines.patch delete mode 100644 0001-journalctl-do-not-output-reboot-markers-when-running.patch delete mode 100644 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch delete mode 100644 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch delete mode 100644 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch delete mode 100644 0001-login-fix-memory-leak-on-DropController.patch delete mode 100644 0001-login-fix-pos-array-allocation.patch delete mode 100644 0001-login-pause-devices-before-acknowledging-VT-switches.patch delete mode 100644 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch delete mode 100644 0001-login-simplify-controller-handling.patch delete mode 100644 0001-logind-add-support-for-Triton2-Power-Button.patch delete mode 100644 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch delete mode 100644 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch delete mode 100644 0001-machine-don-t-return-uninitialized-variable.patch delete mode 100644 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch delete mode 100644 0001-make-209-working-on-older-dist.patch delete mode 100644 0001-make-fortify-happy-with-ppoll.patch delete mode 100644 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch delete mode 100644 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch delete mode 100644 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch delete mode 100644 0001-nspawn-fix-network-interface.patch delete mode 100644 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch delete mode 100644 0001-parse_uid-return-ENXIO-for-1-uids.patch delete mode 100644 0001-po-add-Ukrainian-translation.patch delete mode 100644 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch delete mode 100644 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch delete mode 100644 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch delete mode 100644 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch delete mode 100644 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch delete mode 100644 0001-sd-event-restore-correct-timeout-behaviour.patch delete mode 100644 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch delete mode 100644 0001-selinux-access-fix-broken-ternary-operator.patch delete mode 100644 0001-shell-completion-fix-completion-of-inactive-units.patch delete mode 100644 0001-shutdownd-clean-up-initialization-of-struct.patch delete mode 100644 0001-socket-introduce-SELinuxContextFromNet-option.patch delete mode 100644 0001-strv-add-an-additional-overflow-check-when-enlarging.patch delete mode 100644 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch delete mode 100644 0001-systemctl-allow-to-change-the-default-target-without.patch delete mode 100644 0001-systemctl-let-list-units-unit-files-honour-type.patch delete mode 100644 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch delete mode 100644 0001-systemd-continue-switch-root-even-if-umount-fails.patch delete mode 100644 0001-systemd-detect-virt-detect-s390-virtualization.patch delete mode 100644 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch delete mode 100644 0001-sysv-order-initscripts-which-provide-network-before-.patch delete mode 100644 0001-tmpfiles-compare-return-against-correct-errno.patch delete mode 100644 0001-tmpfiles-fix-permissions-on-new-journal-files.patch delete mode 100644 0001-umount-modernizations.patch delete mode 100644 0001-units-introduce-network-pre.target-as-place-to-hook-.patch delete mode 100644 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch delete mode 100644 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch delete mode 100644 0001-units-order-network-online.target-after-network.targ.patch delete mode 100644 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch delete mode 100644 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch delete mode 100644 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch delete mode 100644 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch delete mode 100644 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch delete mode 100644 0001-virt-rework-container-detection-logic.patch delete mode 100644 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch delete mode 100644 0002-Be-more-verbose-when-bind-or-listen-fails.patch delete mode 100644 0002-analyze-avoid-a-null-dereference.patch delete mode 100644 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch delete mode 100644 0002-architecture-Add-cris.patch delete mode 100644 0002-backlight-do-nothing-if-max_brightness-is-0.patch delete mode 100644 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch delete mode 100644 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch delete mode 100644 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch delete mode 100644 0002-bus-remove-unused-check.patch delete mode 100644 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch delete mode 100644 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch delete mode 100644 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch delete mode 100644 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch delete mode 100644 0002-fsck-include-device-name-in-the-message-about-missin.patch delete mode 100644 0002-hostnamed-add-a-new-chassis-type-for-watches.patch delete mode 100644 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch delete mode 100644 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0002-hwdb-update.patch delete mode 100644 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch delete mode 100644 0002-journal-compress-improve-xz-compression-performance.patch delete mode 100644 0002-journal-properly-detect-language-specified-in-line.patch delete mode 100644 0002-journalctl-man-allow-only-between-terms.patch delete mode 100644 0002-journald-make-MaxFileSec-really-default-to-1month.patch delete mode 100644 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch delete mode 100644 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch delete mode 100644 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch delete mode 100644 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch delete mode 100644 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch delete mode 100644 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch delete mode 100644 0002-logind-add-support-for-TPS65217-Power-Button.patch delete mode 100644 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch delete mode 100644 0002-logind-fix-printf-format.patch delete mode 100644 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch delete mode 100644 0002-man-document-yearly-and-annually-in-systemd.time-7.patch delete mode 100644 0002-man-note-that-entire-sections-can-now-be-ignored.patch delete mode 100644 0002-man-tmpfiles.d-recommend-using-b-and-c.patch delete mode 100644 0002-manager-flush-memory-stream-before-using-the-buffer.patch delete mode 100644 0002-namespace-fix-uninitialized-memory-access.patch delete mode 100644 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch delete mode 100644 0002-nspawn-restore-journal-directory-is-empty-check.patch delete mode 100644 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch delete mode 100644 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch delete mode 100644 0002-shell-completion-prevent-mangling-unit-names.patch delete mode 100644 0002-shell-completion-propose-templates-for-disable-re-en.patch delete mode 100644 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch delete mode 100644 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch delete mode 100644 0002-snapshot-return-error-when-snapshot-exists.patch delete mode 100644 0002-switch-root-umount-the-old-root-correctly.patch delete mode 100644 0002-sysctl-replaces-some-slashes-with-dots.patch delete mode 100644 0002-systemctl-obey-state-in-list-unit-files.patch delete mode 100644 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch delete mode 100644 0002-systemctl-update-NAME-to-PATTERN-in-help.patch delete mode 100644 0002-systemd-fix-error-message.patch delete mode 100644 0002-systemd-try-harder-to-bind-to-notify-socket.patch delete mode 100644 0002-time-also-support-infinity-syntax-in-parse_nsec.patch delete mode 100644 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch delete mode 100644 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch delete mode 100644 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch delete mode 100644 0002-units-serial-getty-.service-use-the-default-RestartS.patch delete mode 100644 0002-util-avoid-non-portable-__WORDSIZE.patch delete mode 100644 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch delete mode 100644 0002-util-fix-has-cc-check-and-add-test.patch delete mode 100644 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch delete mode 100644 0002-util-remove-a-unnecessary-check.patch delete mode 100644 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch delete mode 100644 0002-vconsole-setup-run-setfont-before-loadkeys.patch delete mode 100644 0003-Add-quotes-to-warning-message.patch delete mode 100644 0003-Always-check-asprintf-return-code.patch delete mode 100644 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch delete mode 100644 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch delete mode 100644 0003-analyze-fix-mem-leak.patch delete mode 100644 0003-analyze-fix-plot-with-bad-y-size.patch delete mode 100644 0003-arch-add-crisv32-to-uname-check.patch delete mode 100644 0003-architecture-add-string-table-entries-for-mips-le-ar.patch delete mode 100644 0003-backlight-unify-error-messages.patch delete mode 100644 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch delete mode 100644 0003-bootchart-parse-userinput-with-safe_atoi.patch delete mode 100644 0003-busname-don-t-drop-service-from-the-result-string.patch delete mode 100644 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch delete mode 100644 0003-core-allow-transient-mount-units.patch delete mode 100644 0003-core-make-sure-to-serialize-jobs-for-all-units.patch delete mode 100644 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch delete mode 100644 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch delete mode 100644 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch delete mode 100644 0003-delta-do-not-use-unicode-chars-in-C-locale.patch delete mode 100644 0003-fileio-label-return-error-when-writing-fails.patch delete mode 100644 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch delete mode 100644 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch delete mode 100644 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0003-install-fix-invalid-free-in-unit_file_mask.patch delete mode 100644 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch delete mode 100644 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch delete mode 100644 0003-keymap-Annotate-all-micmute-workarounds.patch delete mode 100644 0003-keymap-Fix-HP-Pavillon-DV7.patch delete mode 100644 0003-localed-consider-an-unset-model-as-a-wildcard.patch delete mode 100644 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch delete mode 100644 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch delete mode 100644 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch delete mode 100644 0003-man-we-don-t-have-Wanted-dependency.patch delete mode 100644 0003-mount-order-options-before-other-arguments-to-mount.patch delete mode 100644 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch delete mode 100644 0003-sd-bus-check-return-value-of-vasprintf.patch delete mode 100644 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch delete mode 100644 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch delete mode 100644 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch delete mode 100644 0003-sd-journal-properly-convert-object-size-on-big-endia.patch delete mode 100644 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch delete mode 100644 0003-systemd-use-pager-for-test-and-help.patch delete mode 100644 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch delete mode 100644 0003-tty-ask-password-agent-return-negative-errno.patch delete mode 100644 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch delete mode 100644 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch delete mode 100644 0003-units-remove-RefuseManualStart-from-units-which-are-.patch delete mode 100644 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch delete mode 100644 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch delete mode 100644 0004-Raise-level-of-Found-dependency.-lines.patch delete mode 100644 0004-architecture-remove-cris-from-uname-list.patch delete mode 100644 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch delete mode 100644 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch delete mode 100644 0004-bash-completion-use-list-unit-files-to-get-all-units.patch delete mode 100644 0004-bootchart-check-return-of-strftime.patch delete mode 100644 0004-config-parser-fix-mem-leak.patch delete mode 100644 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch delete mode 100644 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch delete mode 100644 0004-core-fix-transaction-destructiveness-check-once-more.patch delete mode 100644 0004-core-map-the-rescue-argument-to-rescue.target.patch delete mode 100644 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch delete mode 100644 0004-fileio-quote-more-shell-characters-in-envfiles.patch delete mode 100644 0004-fix-off-by-one-error-in-array-index-assertion.patch delete mode 100644 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch delete mode 100644 0004-getty-generator-properly-escape-instance-names.patch delete mode 100644 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0004-hwdb-update-format-description-and-document-reloadin.patch delete mode 100644 0004-hwdb-update.patch delete mode 100644 0004-implement-a-union-to-pad-out-file_handle.patch delete mode 100644 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch delete mode 100644 0004-journal-do-server_vacuum-for-sigusr1.patch delete mode 100644 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch delete mode 100644 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch delete mode 100644 0004-machined-make-sure-GetMachineAddresses-is-available-.patch delete mode 100644 0004-man-document-missing-options-of-systemd-run.patch delete mode 100644 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch delete mode 100644 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch delete mode 100644 0004-sd-event-check-the-value-of-received-signal.patch delete mode 100644 0004-sd-journal-verify-that-object-start-with-the-field-n.patch delete mode 100644 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch delete mode 100644 0004-shared-conf-parser.patch delete mode 100644 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch delete mode 100644 0004-socket-properly-handle-if-our-service-vanished-durin.patch delete mode 100644 0004-systemd-detect-virt-only-discover-Xen-domU.patch delete mode 100644 0004-systemd-python-use-.hex-instead-of-.get_hex.patch delete mode 100644 0004-systemd-return-the-first-error-from-manager_startup.patch delete mode 100644 0004-util-ignore_file-should-not-allow-files-ending-with.patch delete mode 100644 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch delete mode 100644 0005-Replace-var-run-with-run-in-remaining-places.patch delete mode 100644 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch delete mode 100644 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch delete mode 100644 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch delete mode 100644 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch delete mode 100644 0005-bus-close-a-bus-that-failed-to-connect.patch delete mode 100644 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch delete mode 100644 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch delete mode 100644 0005-cryptsetup-fix-an-OOM-check.patch delete mode 100644 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0005-hwdb-update.patch delete mode 100644 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch delete mode 100644 0005-journalctl-correct-help-text-for-until.patch delete mode 100644 0005-login-fix-mem-leak.patch delete mode 100644 0005-logind-fix-policykit-checks.patch delete mode 100644 0005-logind-fix-typo.patch delete mode 100644 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch delete mode 100644 0005-man-fix-path-in-crypttab-5.patch delete mode 100644 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch delete mode 100644 0005-po-add-Greek-translation.patch delete mode 100644 0005-sd-daemon-fix-incorrect-variable-access.patch delete mode 100644 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch delete mode 100644 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch delete mode 100644 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch delete mode 100644 0005-shared-label.h-add-missing-stdio.h-include.patch delete mode 100644 0005-systemd-python-fix-failing-assert.patch delete mode 100644 0005-systemd-run-add-some-extra-safety-checks.patch delete mode 100644 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch delete mode 100644 0005-util-avoid-double-close-of-fd.patch delete mode 100644 0006-Do-not-return-1-EINVAL-on-allocation-error.patch delete mode 100644 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch delete mode 100644 0006-bus-unref-buscreds-on-failure.patch delete mode 100644 0006-calendarspec-fix-typo-in-annually.patch delete mode 100644 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0006-hwdb-update.patch delete mode 100644 0006-journal-assume-that-next-entry-is-after-previous-ent.patch delete mode 100644 0006-journald-fix-minor-memory-leak.patch delete mode 100644 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch delete mode 100644 0006-login-add-mir-to-the-list-of-session-types.patch delete mode 100644 0006-login-share-VT-signal-handler-between-sessions.patch delete mode 100644 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch delete mode 100644 0006-parse_boolean-require-exact-matches.patch delete mode 100644 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch delete mode 100644 0006-sd-event-initialization-perturbation-value-right-bef.patch delete mode 100644 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch delete mode 100644 0006-systemctl-fix-resource-leak-CID-1237747.patch delete mode 100644 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch delete mode 100644 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch delete mode 100644 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch delete mode 100644 0007-README-document-that-var-run-must-be-a-symlink-run.patch delete mode 100644 0007-core-fix-a-potential-mem-leak.patch delete mode 100644 0007-dbus-suppress-duplicate-and-misleading-messages.patch delete mode 100644 0007-drop_duplicates-copy-full-BindMount-struct.patch delete mode 100644 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0007-hwdb-update.patch delete mode 100644 0007-journal-forget-file-after-encountering-an-error.patch delete mode 100644 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch delete mode 100644 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch delete mode 100644 0007-keyboard-add-Plantronics-.Audio-mute-button.patch delete mode 100644 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch delete mode 100644 0007-logind-fix-Display-property-of-user-objects.patch delete mode 100644 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch delete mode 100644 0007-networkd-fix-typo.patch delete mode 100644 0007-po-add-German-translation.patch delete mode 100644 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch delete mode 100644 0007-service-flush-status-text-and-errno-values-each-time.patch delete mode 100644 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch delete mode 100644 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch delete mode 100644 0008-Reset-signal-mask-on-re-exec-to-init.patch delete mode 100644 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch delete mode 100644 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch delete mode 100644 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch delete mode 100644 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0008-hwdb-update.patch delete mode 100644 0008-journald-fix-memory-leak-on-error-path.patch delete mode 100644 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch delete mode 100644 0008-man-update-journald-rate-limit-defaults.patch delete mode 100644 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch delete mode 100644 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch delete mode 100644 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch delete mode 100644 0008-shell-completion-prevent-mangling-unit-names-bash.patch delete mode 100644 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch delete mode 100644 0008-util-introduce-sethostname_idempotent.patch delete mode 100644 0009-ask-password-when-the-user-types-a-overly-long-passw.patch delete mode 100644 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch delete mode 100644 0009-core-clean-up-signal-reset-logic-when-reexec.patch delete mode 100644 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0009-hwdb-update.patch delete mode 100644 0009-journal-do-not-leak-mmaps-on-OOM.patch delete mode 100644 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch delete mode 100644 0009-journald-always-add-syslog-facility-for-messages-com.patch delete mode 100644 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch delete mode 100644 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch delete mode 100644 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch delete mode 100644 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch delete mode 100644 0009-units-make-systemd-journald.service-Type-notify.patch delete mode 100644 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch delete mode 100644 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch delete mode 100644 0010-logind-allow-suspending-if-there-are-no-displays.patch delete mode 100644 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch delete mode 100644 0010-man-update-link-to-LSB.patch delete mode 100644 0010-manager-use-correct-cleanup-function.patch delete mode 100644 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch delete mode 100644 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch delete mode 100644 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch delete mode 100644 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch delete mode 100644 0011-logs-show-fix-corrupt-output-with-empty-messages.patch delete mode 100644 0011-man-systemd-bootchart-fix-spacing-in-command.patch delete mode 100644 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch delete mode 100644 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch delete mode 100644 0012-core-transaction-avoid-misleading-error-message-when.patch delete mode 100644 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch delete mode 100644 0012-journald-remove-stray-reset-of-error-return-value.patch delete mode 100644 0012-man-add-missing-comma.patch delete mode 100644 0012-manager-do-not-print-anything-while-passwords-are-be.patch delete mode 100644 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch delete mode 100644 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch delete mode 100644 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch delete mode 100644 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch delete mode 100644 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch delete mode 100644 1008-add-msft-compability-rules.patch delete mode 100644 1009-cdrom_id-use-the-old-MMC-fallback.patch delete mode 100644 1010-udev-increase-result-size-for-programs.patch delete mode 100644 1014-udev-update-net_id-comments.patch delete mode 100644 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch delete mode 100644 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch delete mode 100644 1017-udev-serialize-synchronize-block-device-event-handli.patch delete mode 100644 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch delete mode 100644 1019-udev-avoid-use-of-uninitialized-err.patch delete mode 100644 1020-udev-keyboard-also-hook-into-change-events.patch delete mode 100644 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch delete mode 100644 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch delete mode 100644 1024-udev-always-close-lock-file-descriptor.patch delete mode 100644 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch delete mode 100644 1026-udevd-inotify-modernizations.patch delete mode 100644 1027-udev-synthesize-change-events-for-partitions-when-to.patch delete mode 100644 1028-udev-link-config-fix-mem-leak.patch delete mode 100644 1029-udev-try-first-re-reading-the-partition-table.patch delete mode 100644 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch delete mode 100644 1031-udev-make-sure-we-always-get-change-for-the-disk.patch delete mode 100644 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch delete mode 100644 1033-udev-really-exclude-device-mapper-from-block-device.patch delete mode 100644 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch delete mode 100644 1038-udev-fix-invalid-free-in-enable_name_policy.patch delete mode 100644 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch delete mode 100644 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch delete mode 100644 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch delete mode 100644 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch delete mode 100644 1044-rules-update-qemu-hid-rules.patch delete mode 100644 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch delete mode 100644 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch delete mode 100644 1048-udev-net_setup_link-add-a-bit-more-logging.patch delete mode 100644 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch delete mode 100644 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch delete mode 100644 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch delete mode 100644 1056-udevd-add-event-timeout-commandline-option.patch delete mode 100644 1057-udev-unify-event-timeout-handling.patch delete mode 100644 1058-udev-unify-event-timeout-handling.patch delete mode 100644 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch delete mode 100644 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch delete mode 100644 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch delete mode 100644 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch delete mode 100644 1065-udev-bump-event-timeout-to-60-seconds.patch delete mode 100644 1067-udev-always-resolve-correctly-database-names-on-chan.patch delete mode 100644 1068-udev-net_setup_link-export-the-.link-filename-applie.patch delete mode 100644 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch delete mode 100644 1070-rules-net-setup-link-remove-stray-linebreak.patch delete mode 100644 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch delete mode 100644 1072-udev-netif_rename-don-t-log-to-kmsg.patch delete mode 100644 1073-udev-drop-print_kmsg.patch delete mode 100644 1074-udev-fix-copy-paste-error-in-log-message.patch delete mode 100644 1075-udev-timeout-increase-timeout.patch delete mode 100644 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch delete mode 100644 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch delete mode 100644 1078-udev-remove-userspace-firmware-loading-support.patch delete mode 100644 1079-udev-remove-userspace-firmware-loading-support.patch delete mode 100644 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch delete mode 100644 1081-udevd-check-return-of-various-functions.patch delete mode 100644 1082-udevadm-hwdb-check-return-value-of-fseeko.patch delete mode 100644 1083-udev-node-warn-if-chmod-chown-fails.patch delete mode 100644 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch delete mode 100644 1085-udev-fix-typos.patch delete mode 100644 1086-udevd-don-t-fail-if-run-udev-exists.patch delete mode 100644 1087-infinit-timeout-for-kmod-loaded-modules.patch delete mode 100644 1089-fix-cgroup-device-controller.patch delete mode 100644 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch delete mode 100644 1091-udev-path_id-update-comments.patch delete mode 100644 1092-libudev-do-not-accept-invalid-log-levels.patch delete mode 100644 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch delete mode 100644 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch delete mode 100644 1098-udev-link_setup-respect-kernel-name-assign-policy.patch delete mode 100644 513-nspawn-veth.patch delete mode 100644 Revert-service-drop-support-for-SysV-scripts-for-the-early.patch delete mode 100644 avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch delete mode 100644 avoid-leaking-socket-descriptors.patch delete mode 100644 boot.udev delete mode 100644 disable-nss-myhostname-warning-bnc-783841.patch delete mode 100644 fix-owner-of-var-log-btmp.patch delete mode 100644 handle-SYSTEMCTL_OPTIONS-environment-variable.patch delete mode 100644 handle-etc-HOSTNAME.patch delete mode 100644 localfs.service delete mode 100644 log-target-null-instead-kmsg.patch delete mode 100644 module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch delete mode 100644 optionally-warn-if-nss-myhostname-is-called.patch delete mode 100644 prepare-suspend-to-disk.patch delete mode 100644 remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch delete mode 100644 service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch delete mode 100644 shut-up-annoying-assertion-monotonic-clock-message.patch create mode 100644 suse-sysv-bootd-support.diff delete mode 100644 systemd-210.tar.xz create mode 100644 systemd-219.tar.xz delete mode 100644 systemd-journald.init delete mode 100644 systemd-sleep-grub delete mode 100644 timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch delete mode 100644 tmpfiles-do-not-clean-for-mandb-index-files.patch delete mode 100644 use-usr-sbin-sulogin-for-emergency-service.patch diff --git a/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch b/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch deleted file mode 100644 index 53ccbcf5..00000000 --- a/0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch +++ /dev/null @@ -1,110 +0,0 @@ -Based on 874bc134ac6504c45e94174e37af13ff21a6bfe2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 14 Jul 2014 16:53:23 -0400 -Subject: [PATCH] Clear up confusion wrt. ENTRY_SIZE_MAX and DATA_SIZE_MAX - -Define DATA_SIZE_MAX to mean the maximum size of a single -field, and ENTRY_SIZE_MAX to mean the size of the whole -entry, with some rough calculation of overhead over the payload. - -Check if entries are not too big when processing native journal -messages. ---- - src/journal/coredump.c | 6 +++--- - src/journal/journald-native.c | 25 +++++++++++++++++++++---- - 2 files changed, 24 insertions(+), 7 deletions(-) ---- src/journal/coredump.c -+++ src/journal/coredump.c 2014-07-16 13:02:54.438235659 +0000 -@@ -38,10 +38,10 @@ - #include "cgroup-util.h" - - /* Few programs have less than 3MiB resident */ --#define COREDUMP_MIN_START (3*1024*1024) -+#define COREDUMP_MIN_START (3*1024*1024u) - /* Make sure to not make this larger than the maximum journal entry -- * size. See ENTRY_SIZE_MAX in journald-native.c. */ --#define COREDUMP_MAX (767*1024*1024) -+ * size. See DATA_SIZE_MAX in journald-native.c. */ -+#define COREDUMP_MAX (1024*1024*767u) - - enum { - ARG_PID = 1, ---- src/journal/journald-native.c -+++ src/journal/journald-native.c 2014-07-16 12:50:45.000000000 +0000 -@@ -34,8 +34,8 @@ - - /* Make sure not to make this smaller than the maximum coredump - * size. See COREDUMP_MAX in coredump.c */ --#define ENTRY_SIZE_MAX (1024*1024*768) --#define DATA_SIZE_MAX (1024*1024*768) -+#define ENTRY_SIZE_MAX (1024*1024*770u) -+#define DATA_SIZE_MAX (1024*1024*768u) - - static bool valid_user_field(const char *p, size_t l) { - const char *a; -@@ -86,7 +86,7 @@ void server_process_native_message( - struct iovec *iovec = NULL; - unsigned n = 0, j, tn = (unsigned) -1; - const char *p; -- size_t remaining, m = 0; -+ size_t remaining, m = 0, entry_size = 0; - int priority = LOG_INFO; - char *identifier = NULL, *message = NULL; - pid_t object_pid = 0; -@@ -110,9 +110,17 @@ void server_process_native_message( - - if (e == p) { - /* Entry separator */ -+ -+ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ -+ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", -+ n, entry_size); -+ continue; -+ } -+ - server_dispatch_message(s, iovec, n, m, ucred, tv, label, label_len, NULL, priority, object_pid); - n = 0; - priority = LOG_INFO; -+ entry_size = 0; - - p++; - remaining--; -@@ -150,6 +158,7 @@ void server_process_native_message( - iovec[n].iov_base = (char*) p; - iovec[n].iov_len = l; - n++; -+ entry_size += iovec[n].iov_len; - - /* We need to determine the priority - * of this entry for the rate limiting -@@ -218,7 +227,7 @@ void server_process_native_message( - l = le64toh(l_le); - - if (l > DATA_SIZE_MAX) { -- log_debug("Received binary data block too large, ignoring."); -+ log_debug("Received binary data block of %zu bytes is too large, ignoring.", l); - break; - } - -@@ -242,6 +251,7 @@ void server_process_native_message( - iovec[n].iov_base = k; - iovec[n].iov_len = (e - p) + 1 + l; - n++; -+ entry_size += iovec[n].iov_len; - } else - free(k); - -@@ -255,6 +265,13 @@ void server_process_native_message( - - tn = n++; - IOVEC_SET_STRING(iovec[tn], "_TRANSPORT=journal"); -+ entry_size += strlen("_TRANSPORT=journal"); -+ -+ if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */ -+ log_debug("Entry is too big with %u properties and %zu bytes, ignoring.", -+ n, entry_size); -+ goto finish; -+ } - - if (message) { - if (s->forward_to_syslog) diff --git a/0001-Do-not-unescape-unit-names-in-Install-section.patch b/0001-Do-not-unescape-unit-names-in-Install-section.patch deleted file mode 100644 index 18e4aaa1..00000000 --- a/0001-Do-not-unescape-unit-names-in-Install-section.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on 000f6e5667eb4f73e137cbd0d7395a9f9db7728a Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Mon, 26 May 2014 20:09:45 +0200 -Subject: [PATCH] Do not unescape unit names in [Install] section - -https://bugs.freedesktop.org/show_bug.cgi?id=49316 ---- - src/shared/conf-parser.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c 2014-05-27 07:36:20.478236631 +0000 -@@ -723,7 +723,7 @@ int config_parse_strv(const char *unit, - FOREACH_WORD_QUOTED(w, l, rvalue, state) { - _cleanup_free_ char *n; - -- n = cunescape_length(w, l); -+ n = strndup(w, l); - if (!n) - return log_oom(); - diff --git a/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch b/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch deleted file mode 100644 index 7f0f7b9c..00000000 --- a/0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5effdfa831d75306fc0ff9b47d39997e4ae87f16 Mon Sep 17 00:00:00 2001 -From: Michael Meeks -Date: Tue, 11 Feb 2014 14:42:26 +0000 -Subject: [PATCH] Don't snprintf a potentially NULL pointer. - ---- - src/shared/log.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/log.c b/src/shared/log.c -index 2a075ff..d6b138f 100644 ---- a/src/shared/log.c -+++ b/src/shared/log.c -@@ -479,7 +479,7 @@ static int log_do_header(char *header, size_t size, - func ? "CODE_FUNCTION=" : "", - func ? LINE_MAX : 0, func, - func ? "\n" : "", -- object ? object_name : "", -+ object_name ? object_name : "", - object ? LINE_MAX : 0, object, /* %.0s means no output */ - object ? "\n" : "", - program_invocation_short_name); --- -1.8.4.5 - diff --git a/0001-Fix-systemd-stdio-bridge-symlink.patch b/0001-Fix-systemd-stdio-bridge-symlink.patch deleted file mode 100644 index 02e7e1cc..00000000 --- a/0001-Fix-systemd-stdio-bridge-symlink.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Sun, 2 Mar 2014 23:37:39 -0500 -Subject: [PATCH] Fix systemd-stdio-bridge symlink - -The symlink is created in bindir (/usr/bin), and points to a binary -which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A -relative symlink does not work here. ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git Makefile.am Makefile.am -index 38445fb..e7134a2 100644 ---- Makefile.am -+++ Makefile.am -@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ - - bus-proxyd-install-hook: - $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) -- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge -+ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge - - bus-proxyd-uninstall-hook: - rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge --- -1.7.9.2 - diff --git a/0001-Fix-warning-about-unused-variable-with-SELINUX.patch b/0001-Fix-warning-about-unused-variable-with-SELINUX.patch deleted file mode 100644 index f1fb4ea9..00000000 --- a/0001-Fix-warning-about-unused-variable-with-SELINUX.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 493d521d9ffe706741665a88ea14929913ea2eaf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 23 Sep 2014 09:22:40 -0400 -Subject: [PATCH] Fix warning about unused variable with !SELINUX - -src/shared/label.c:255:15: warning: unused variable 'l' [-Wunused-variable] - char *l = NULL; - ^ ---- - src/shared/label.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/shared/label.c src/shared/label.c -index 02b41f0..b6af38d 100644 ---- src/shared/label.c -+++ src/shared/label.c -@@ -252,9 +252,10 @@ fail: - - int label_get_our_label(char **label) { - int r = -EOPNOTSUPP; -- char *l = NULL; - - #ifdef HAVE_SELINUX -+ char *l = NULL; -+ - r = getcon(&l); - if (r < 0) - return r; --- -1.7.9.2 - diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index f09e8270..ef656b99 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,25 +1,29 @@ --- rules/99-systemd.rules.in | 2 - src/core/manager.c | 24 ++++++++-- - src/shared/util.c | 101 ++++++++++++++++++++++++++++++++++++++++++++-- + src/core/manager.c | 24 ++++++++--- + src/shared/util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- src/shared/util.h | 1 - 4 files changed, 118 insertions(+), 10 deletions(-) + 4 files changed, 116 insertions(+), 10 deletions(-) ---- systemd-208/rules/99-systemd.rules.in -+++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 +Index: systemd/rules/99-systemd.rules.in +=================================================================== +--- systemd.orig/rules/99-systemd.rules.in ++++ systemd/rules/99-systemd.rules.in @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="systemd_end" --SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*", TAG+="systemd" +-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd" +SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" KERNEL=="vport*", TAG+="systemd" ---- systemd-210/src/core/manager.c -+++ systemd-210/src/core/manager.c 2014-04-30 10:51:43.398735332 +0000 -@@ -110,7 +110,7 @@ static int manager_watch_jobs_in_progres +Index: systemd/src/core/manager.c +=================================================================== +--- systemd.orig/src/core/manager.c ++++ systemd/src/core/manager.c +@@ -113,7 +113,7 @@ static int manager_watch_jobs_in_progres #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) @@ -28,7 +32,7 @@ char *p = buffer; assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); -@@ -119,12 +119,14 @@ static void draw_cylon(char buffer[], si +@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si if (pos > 1) { if (pos > 2) p = mempset(p, ' ', pos-2); @@ -45,7 +49,7 @@ *p++ = '*'; } -@@ -135,7 +137,8 @@ static void draw_cylon(char buffer[], si +@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si *p++ = '*'; if (pos < width-1) p = mempset(p, ' ', width-1-pos); @@ -55,7 +59,7 @@ } } -@@ -150,6 +153,7 @@ void manager_flip_auto_status(Manager *m +@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m } static void manager_print_jobs_in_progress(Manager *m) { @@ -63,7 +67,7 @@ _cleanup_free_ char *job_of_n = NULL; Iterator i; Job *j; -@@ -174,10 +178,20 @@ static void manager_print_jobs_in_progre +@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre assert(counter == print_nr + 1); assert(j); @@ -85,9 +89,11 @@ m->jobs_in_progress_iteration++; ---- systemd-210/src/shared/util.c -+++ systemd-210/src/shared/util.c 2014-04-30 10:39:17.154736438 +0000 -@@ -2886,6 +2886,7 @@ int status_vprintf(const char *status, b +Index: systemd/src/shared/util.c +=================================================================== +--- systemd.orig/src/shared/util.c ++++ systemd/src/shared/util.c +@@ -3212,6 +3212,7 @@ int status_vprintf(const char *status, b struct iovec iovec[6] = {}; int n = 0; static bool prev_ephemeral; @@ -95,12 +101,12 @@ assert(format); -@@ -2899,6 +2900,41 @@ int status_vprintf(const char *status, b +@@ -3225,6 +3226,41 @@ int status_vprintf(const char *status, b if (fd < 0) return fd; + if (_unlikely_(is_ansi_console < 0)) -+ is_ansi_console = (int)ansi_console(fd); ++ is_ansi_console = ansi_console(fd); + + if (status && !is_ansi_console) { + const char *esc, *ptr; @@ -137,7 +143,7 @@ if (ellipse) { char *e; size_t emax, sl; -@@ -2921,8 +2957,12 @@ int status_vprintf(const char *status, b +@@ -3247,8 +3283,12 @@ int status_vprintf(const char *status, b } } @@ -152,7 +158,7 @@ prev_ephemeral = ephemeral; if (status) { -@@ -3169,12 +3209,47 @@ void columns_lines_cache_reset(int signu +@@ -3504,8 +3544,22 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; @@ -176,6 +182,9 @@ return cached_on_tty; } +@@ -3523,6 +3577,27 @@ int files_same(const char *filea, const + a.st_ino == b.st_ino; + } +bool ansi_console(int fd) { + static int cached_ansi_console = -1; @@ -199,13 +208,13 @@ +} + int running_in_chroot(void) { - struct stat a = {}, b = {}; + int ret; -@@ -3630,7 +3705,25 @@ bool tty_is_vc_resolve(const char *tty) +@@ -4006,7 +4081,23 @@ bool tty_is_vc_resolve(const char *tty) const char *default_term_for_tty(const char *tty) { assert(tty); -- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102"; +- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220"; + if (tty_is_vc_resolve(tty)) + return "TERM=linux"; + @@ -221,16 +230,16 @@ + if (streq(mode, "3270")) + return "TERM=ibm327x"; + } -+ if (streq(tty, "ttyS1")) -+ return "TERM=vt220"; +#endif -+ return "TERM=vt102"; ++ return "TERM=vt220"; } bool dirent_is_file(const struct dirent *de) { ---- systemd-210/src/shared/util.h -+++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000 -@@ -418,6 +418,7 @@ unsigned lines(void); +Index: systemd/src/shared/util.h +=================================================================== +--- systemd.orig/src/shared/util.h ++++ systemd/src/shared/util.h +@@ -475,6 +475,7 @@ unsigned lines(void); void columns_lines_cache_reset(int _unused_ signum); bool on_tty(void); diff --git a/0001-activate-fix-fd-leak-in-do_accept.patch b/0001-activate-fix-fd-leak-in-do_accept.patch deleted file mode 100644 index 14104a34..00000000 --- a/0001-activate-fix-fd-leak-in-do_accept.patch +++ /dev/null @@ -1,26 +0,0 @@ -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-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index b4aeb6f4..d6b6fa3a 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -1,11 +1,13 @@ --- - systemd-209/src/core/shutdown.c | 4 ++++ - systemd-209/src/systemctl/systemctl.c | 22 +++++++++++++++------- - 2 files changed, 19 insertions(+), 7 deletions(-) + src/core/shutdown.c | 4 ++++ + src/systemctl/systemctl.c | 18 ++++++++++++------ + 2 files changed, 16 insertions(+), 6 deletions(-) ---- systemd-209/src/core/shutdown.c -+++ systemd-209/src/core/shutdown.c 2014-02-28 11:17:22.000000000 +0000 -@@ -449,6 +449,10 @@ int main(int argc, char *argv[]) { +Index: systemd-218/src/core/shutdown.c +=================================================================== +--- systemd-218.orig/src/core/shutdown.c ++++ systemd-218/src/core/shutdown.c +@@ -400,6 +400,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); @@ -16,9 +18,11 @@ if (errno == EPERM && in_container) { /* If we are in a container, and we lacked * CAP_SYS_BOOT just exit, this will kill our ---- systemd-209/src/systemctl/systemctl.c -+++ systemd-209/src/systemctl/systemctl.c 2014-02-28 11:19:35.000000000 +0000 -@@ -93,6 +93,7 @@ static bool arg_no_pager = false; +Index: systemd-218/src/systemctl/systemctl.c +=================================================================== +--- systemd-218.orig/src/systemctl/systemctl.c ++++ systemd-218/src/systemctl/systemctl.c +@@ -94,6 +94,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -26,7 +30,7 @@ static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -5578,6 +5579,7 @@ static int halt_parse_argv(int argc, cha +@@ -6813,6 +6814,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -34,7 +38,7 @@ { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -5629,10 +5631,13 @@ static int halt_parse_argv(int argc, cha +@@ -6865,10 +6867,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -49,17 +53,17 @@ case '?': return -EINVAL; -@@ -6274,20 +6279,23 @@ done: - - static int halt_now(enum action a) { - --/* Make sure C-A-D is handled by the kernel from this +@@ -7511,7 +7516,8 @@ static int halt_now(enum action a) { + /* The kernel will automaticall flush ATA disks and suchlike + * on reboot(), but the file systems need to be synce'd + * explicitly in advance. */ +- sync(); + if (!arg_no_sync) + sync(); -+ -+ /* Make sure C-A-D is handled by the kernel from this - * point on... */ - reboot(RB_ENABLE_CAD); + + /* Make sure C-A-D is handled by the kernel from this point + * on... */ +@@ -7519,14 +7525,14 @@ static int halt_now(enum action a) { switch (a) { @@ -67,12 +71,11 @@ - log_info("Halting."); - reboot(RB_HALT_SYSTEM); - return -errno; -- + case ACTION_POWEROFF: log_info("Powering off."); reboot(RB_POWER_OFF); -+ /* Fall through */ -+ ++ /* fall-through */ + case ACTION_HALT: + log_info("Halting."); + reboot(RB_HALT_SYSTEM); diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index 57a87c73..eb070d64 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -11,19 +11,23 @@ NFS share is added as "After=" dependency to the .mount. src/shared/util.c | 1 5 files changed, 234 insertions(+), 2 deletions(-) ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am 2014-02-26 12:44:20.000000000 +0000 -@@ -994,6 +994,8 @@ libsystemd_core_la_SOURCES = \ +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -1134,6 +1134,8 @@ libsystemd_core_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ + src/core/mount-iface.c \ + src/core/mount-iface.h \ + src/core/kmod-setup.c \ + src/core/kmod-setup.h \ src/core/loopback-setup.h \ - src/core/loopback-setup.c \ - src/core/condition.c \ ---- systemd-210/src/core/mount-iface.c -+++ systemd-210/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 +Index: systemd-218/src/core/mount-iface.c +=================================================================== +--- /dev/null ++++ systemd-218/src/core/mount-iface.c @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -166,7 +170,7 @@ NFS share is added as "After=" dependency to the .mount. + continue; + + ret = ifa->ifa_name; -+ break; ++ break; + } else if (ifa->ifa_addr->sa_family == AF_INET6) { + struct in6_addr *addr, *mask, dest, ip6; + unsigned int prefix; @@ -198,8 +202,10 @@ NFS share is added as "After=" dependency to the .mount. + freeifaddrs(ifa_list); + ifa_list = NULL; +} ---- systemd-210/src/core/mount-iface.h -+++ systemd-210/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 +Index: systemd-218/src/core/mount-iface.h +=================================================================== +--- /dev/null ++++ systemd-218/src/core/mount-iface.h @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -226,9 +232,11 @@ NFS share is added as "After=" dependency to the .mount. + +char *host2iface(const char *ip); +void freeroutes(void); ---- systemd-210/src/core/mount.c -+++ systemd-210/src/core/mount.c 2014-03-03 12:13:23.406246117 +0000 -@@ -36,6 +36,7 @@ +Index: systemd-218/src/core/mount.c +=================================================================== +--- systemd-218.orig/src/core/mount.c ++++ systemd-218/src/core/mount.c +@@ -38,6 +38,7 @@ #include "mkdir.h" #include "path-util.h" #include "mount-setup.h" @@ -236,7 +244,7 @@ NFS share is added as "After=" dependency to the .mount. #include "unit-name.h" #include "dbus-mount.h" #include "special.h" -@@ -1388,8 +1389,9 @@ static int mount_add_one( +@@ -1365,8 +1366,9 @@ static int mount_add_one( _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; @@ -247,7 +255,7 @@ NFS share is added as "After=" dependency to the .mount. int r; assert(m); -@@ -1414,6 +1416,8 @@ static int mount_add_one( +@@ -1391,6 +1393,8 @@ static int mount_add_one( if (!e) return -ENOMEM; @@ -256,16 +264,16 @@ NFS share is added as "After=" dependency to the .mount. u = manager_get_unit(m, e); if (!u) { delete = true; -@@ -1442,7 +1446,7 @@ static int mount_add_one( +@@ -1419,7 +1423,7 @@ static int mount_add_one( if (m->running_as == SYSTEMD_SYSTEM) { const char* target; -- target = fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; +- target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; - r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) -@@ -1519,6 +1523,32 @@ static int mount_add_one( + goto fail; +@@ -1505,6 +1509,32 @@ static int mount_add_one( goto fail; } @@ -288,7 +296,7 @@ NFS share is added as "After=" dependency to the .mount. + else { + r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); + if (r < 0) -+ log_error_unit(u->id, "Failed to add dependency on %s, ignoring: %s", ++ log_unit_error(u->id, "Failed to add dependency on %s, ignoring: %s", + target, strerror(-r)); + } + } @@ -298,21 +306,23 @@ NFS share is added as "After=" dependency to the .mount. if (changed) unit_add_to_dbus_queue(u); -@@ -1583,6 +1613,7 @@ static int mount_load_proc_self_mountinf - if (k < 0) +@@ -1560,6 +1590,7 @@ static int mount_load_proc_self_mountinf + if (r == 0 && k < 0) r = k; } + freeroutes(); /* Just in case of using the routing table with host2iface() */ return r; } ---- systemd-210/src/shared/util.c -+++ systemd-210/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 -@@ -1502,6 +1502,7 @@ bool fstype_is_network(const char *fstyp +Index: systemd-218/src/shared/util.c +=================================================================== +--- systemd-218.orig/src/shared/util.c ++++ systemd-218/src/shared/util.c +@@ -1667,6 +1667,7 @@ bool fstype_is_network(const char *fstyp "ncp\0" "nfs\0" "nfs4\0" + "afs\0" "gfs\0" - "gfs2\0"; - + "gfs2\0" + "glusterfs\0"; diff --git a/0001-architecture-Add-tilegx.patch b/0001-architecture-Add-tilegx.patch deleted file mode 100644 index 277587c3..00000000 --- a/0001-architecture-Add-tilegx.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 46eea341c36f0caf0bdd5b2274a1ef7cb4e83e97 Mon Sep 17 00:00:00 2001 -From: Henrik Grindal Bakken -Date: Thu, 27 Feb 2014 21:19:13 +0100 -Subject: [PATCH] architecture: Add tilegx - -Add Tilera's TILE-GX processor family support. ---- - src/shared/architecture.c | 3 +++ - src/shared/architecture.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index ceba492..fcdb3d5 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -112,6 +112,8 @@ Architecture uname_architecture(void) { - { "sh", ARCHITECTURE_SH }, - #elif defined(__m68k__) - { "m68k", ARCHITECTURE_M68K }, -+#elif defined(__tilegx__) -+ { "tilegx", ARCHITECTURE_TILEGX }, - #else - #error "Please register your architecture here!" - #endif -@@ -158,6 +160,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SH] = "sh", - [ARCHITECTURE_SH64] = "sh64", - [ARCHITECTURE_M68K] = "m68k", -+ [ARCHITECTURE_TILEGX] = "tilegx", - }; - - DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); -diff --git src/shared/architecture.h src/shared/architecture.h -index 3183645..e589a91 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -47,6 +47,7 @@ typedef enum Architecture { - ARCHITECTURE_SH, - ARCHITECTURE_SH64, - ARCHITECTURE_M68K, -+ ARCHITECTURE_TILEGX, - _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 - } Architecture; -@@ -107,6 +108,8 @@ Architecture uname_architecture(void); - # define native_architecture() ARCHITECTURE_SH - #elif defined(__m68k__) - # define native_architecture() ARCHITECTURE_M68K -+#elif defined(__tilegx__) -+# define native_architecture() ARCHITECTURE_TILEGX - #else - #error "Please register your architecture here!" - #endif --- -1.7.9.2 - diff --git a/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch b/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch deleted file mode 100644 index 3b20a7e0..00000000 --- a/0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 7b909d7407965c03caaba30daae7aee113627a83 Mon Sep 17 00:00:00 2001 -From: Josh Triplett -Date: Tue, 11 Mar 2014 21:16:33 -0700 -Subject: [PATCH] backlight: Avoid restoring brightness to an unreadably dim - level - -Some systems turn the backlight all the way off at the lowest levels. -Clamp saved brightness to at least 1 or 5% of max_brightness. This -avoids preserving an unreadably dim screen, which would otherwise force -the user to disable state restoration. ---- - src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 44 insertions(+) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index 81470b3..abf8bcf 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -192,6 +192,48 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { - return true; - } - -+/* Some systems turn the backlight all the way off at the lowest levels. -+ * clamp_brightness clamps the saved brightness to at least 1 or 5% of -+ * max_brightness. This avoids preserving an unreadably dim screen, which -+ * would otherwise force the user to disable state restoration. */ -+static void clamp_brightness(struct udev_device *device, char **value) { -+ int r; -+ const char *max_brightness_str; -+ unsigned brightness, max_brightness, new_brightness; -+ -+ max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); -+ if (!max_brightness_str) { -+ log_warning("Failed to read max_brightness attribute; not checking saved brightness"); -+ return; -+ } -+ -+ r = safe_atou(*value, &brightness); -+ if (r < 0) { -+ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); -+ return; -+ } -+ -+ r = safe_atou(max_brightness_str, &max_brightness); -+ if (r < 0) { -+ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ return; -+ } -+ -+ new_brightness = MAX3(brightness, 1U, max_brightness/20); -+ if (new_brightness != brightness) { -+ char *old_value = *value; -+ -+ r = asprintf(value, "%u", new_brightness); -+ if (r < 0) { -+ log_oom(); -+ return; -+ } -+ -+ log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); -+ free(old_value); -+ } -+} -+ - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_device_unref_ struct udev_device *device = NULL; -@@ -306,6 +348,8 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -+ clamp_brightness(device, &value); -+ - r = udev_device_set_sysattr_value(device, "brightness", value); - if (r < 0) { - log_error("Failed to write system attribute: %s", strerror(-r)); --- -1.7.9.2 - diff --git a/0001-bash-completion-fix-__get_startable_units.patch b/0001-bash-completion-fix-__get_startable_units.patch deleted file mode 100644 index 815e6abd..00000000 --- a/0001-bash-completion-fix-__get_startable_units.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a163b64c4b08e8a4ad39a9a295acf3d1634024a3 Mon Sep 17 00:00:00 2001 -From: Dan Kilman -Date: Sun, 13 Apr 2014 18:06:13 +0300 -Subject: [PATCH] bash completion: fix __get_startable_units - ---- - shell-completion/bash/systemctl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl -index 992e52d..e1c8420 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -56,7 +56,7 @@ __get_all_units () { __systemctl $1 list-units --all \ - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } - __get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ -- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed " ]] && echo " $a"; done; }; } -+ | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } - __get_failed_units () { __systemctl $1 list-units \ - | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } - __get_enabled_units () { __systemctl $1 list-unit-files \ --- -1.7.9.2 - diff --git a/0001-bash-completion-p-option-for-journalctl.patch b/0001-bash-completion-p-option-for-journalctl.patch deleted file mode 100644 index f41318f5..00000000 --- a/0001-bash-completion-p-option-for-journalctl.patch +++ /dev/null @@ -1,46 +0,0 @@ -From be8f4a9fa732d61e845e1ab1a62ac3a6b368d3a7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 19 Jul 2014 19:46:04 -0400 -Subject: [PATCH] bash-completion: -p option for journalctl - ---- - shell-completion/bash/journalctl | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git shell-completion/bash/journalctl shell-completion/bash/journalctl -index e4b2f4a..14dcd22 100644 ---- shell-completion/bash/journalctl -+++ shell-completion/bash/journalctl -@@ -35,6 +35,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} - _UDEV_{SYSNAME,DEVNODE,DEVLINK} - __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) - -+__syslog_priorities=(emerg alert crit err warning notice info debug) -+ - _journalctl() { - local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} - local -A OPTS=( -@@ -44,8 +46,8 @@ _journalctl() { - --no-tail -q --quiet --setup-keys --this-boot --verify - --version --list-catalog --update-catalog --list-boots' - [ARG]='-b --boot --this-boot -D --directory --file -F --field -- -o --output -u --unit --user-unit' -- [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until -+ -o --output -u --unit --user-unit -p --priority' -+ [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until - --verify-key' - ) - -@@ -68,6 +70,9 @@ _journalctl() { - --field|-F) - comps=${__journal_fields[*]} - ;; -+ --priority|-p) -+ comps=${__syslog_priorities[*]} -+ ;; - --unit|-u) - comps=$(journalctl -F '_SYSTEMD_UNIT' 2>/dev/null) - ;; --- -1.7.9.2 - diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index a7021400..104339e0 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -3,11 +3,11 @@ src/login/logind-dbus.c | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) -Index: systemd-210/src/login/logind-action.c +Index: systemd-218/src/login/logind-action.c =================================================================== ---- systemd-210.orig/src/login/logind-action.c -+++ systemd-210/src/login/logind-action.c -@@ -101,6 +101,11 @@ int manager_handle_action( +--- systemd-218.orig/src/login/logind-action.c ++++ systemd-218/src/login/logind-action.c +@@ -83,6 +83,11 @@ int manager_handle_action( /* If the key handling is inhibited, don't do anything */ if (inhibit_key > 0) { @@ -19,11 +19,11 @@ Index: systemd-210/src/login/logind-action.c if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); return 0; -Index: systemd-210/src/login/logind-dbus.c +Index: systemd-218/src/login/logind-dbus.c =================================================================== ---- systemd-210.orig/src/login/logind-dbus.c -+++ systemd-210/src/login/logind-dbus.c -@@ -1469,9 +1469,11 @@ static int method_do_shutdown_or_sleep( +--- systemd-218.orig/src/login/logind-dbus.c ++++ systemd-218/src/login/logind-dbus.c +@@ -1487,9 +1487,11 @@ static int method_do_shutdown_or_sleep( sd_bus_error *error) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; @@ -36,7 +36,7 @@ Index: systemd-210/src/login/logind-dbus.c assert(m); assert(message); -@@ -1515,7 +1517,17 @@ static int method_do_shutdown_or_sleep( +@@ -1533,7 +1535,17 @@ static int method_do_shutdown_or_sleep( multiple_sessions = r > 0; blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); @@ -52,24 +52,24 @@ Index: systemd-210/src/login/logind-dbus.c + + + if (multiple_sessions && !shutdown_through_acpi) { - r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, - action_multiple_sessions, interactive, error, method, m); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, &m->polkit_registry, error); if (r < 0) -@@ -1524,7 +1536,7 @@ static int method_do_shutdown_or_sleep( + return r; +@@ -1541,7 +1553,7 @@ static int method_do_shutdown_or_sleep( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (blocked) { + if (blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, - action_ignore_inhibit, interactive, error, method, m); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, &m->polkit_registry, error); if (r < 0) -@@ -1533,7 +1545,7 @@ static int method_do_shutdown_or_sleep( + return r; +@@ -1549,7 +1561,7 @@ static int method_do_shutdown_or_sleep( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (!multiple_sessions && !blocked) { + if (!multiple_sessions && !blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(m->bus, &m->polkit_registry, message, - action, interactive, error, method, m); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, &m->polkit_registry, error); if (r < 0) + return r; diff --git a/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch b/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch deleted file mode 100644 index f8632b99..00000000 --- a/0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +++ /dev/null @@ -1,215 +0,0 @@ -Based on d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 28 May 2014 17:36:40 +0800 -Subject: [PATCH] build-sys: use glibc's xattr support instead of requiring - libattr - ---- - configure.ac | 53 ++----------------------------------------- - src/core/mount-setup.c | 2 - - src/core/socket.c | 4 --- - src/journal/journal-file.c | 7 ----- - src/journal/journal-vacuum.c | 10 -------- - src/shared/label.c | 2 - - src/shared/smack-util.c | 4 --- - 7 files changed, 7 insertions(+), 75 deletions(-) - ---- configure.ac -+++ configure.ac 2014-06-03 00:00:00.000000000 +0000 -@@ -526,44 +526,6 @@ AC_SUBST(ACL_LIBS) - AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno]) - - # ------------------------------------------------------------------------------ --AC_ARG_ENABLE([xattr], -- AS_HELP_STRING([--disable-xattr],[Disable optional XATTR support]), -- [case "${enableval}" in -- yes) have_xattr=yes ;; -- no) have_xattr=no ;; -- *) AC_MSG_ERROR(bad value ${enableval} for --disable-xattr) ;; -- esac], -- [have_xattr=auto]) -- --if test "x${have_xattr}" != xno ; then -- AC_CHECK_HEADERS( -- [attr/xattr.h], -- [have_xattr=yes], -- [if test "x$have_xattr" = xyes ; then -- AC_MSG_ERROR([*** XATTR headers not found.]) -- fi]) -- -- AC_CHECK_LIB( -- [attr], -- [fsetxattr], -- [have_xattr=yes], -- [if test "x$have_xattr" = xyes ; then -- AC_MSG_ERROR([*** libattr not found.]) -- fi]) -- -- if test "x$have_xattr" = xyes ; then -- XATTR_LIBS="-lattr" -- AC_DEFINE(HAVE_XATTR, 1, [XATTR available]) -- else -- have_xattr=no -- fi --else -- XATTR_LIBS= --fi --AC_SUBST(XATTR_LIBS) --AM_CONDITIONAL([HAVE_XATTR], [test "x$have_xattr" != xno]) -- --# ------------------------------------------------------------------------------ - AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[Disable optional SMACK support]), - [case "${enableval}" in - yes) have_smack=yes ;; -@@ -572,17 +534,9 @@ AC_ARG_ENABLE([smack], AS_HELP_STRING([- - esac], - [have_smack=auto]) - --if test "x${have_xattr}" = xno; then -- if test "x${have_smack}" = xyes; then -- AC_MSG_ERROR(SMACK requires xattr support) -- else -- have_smack=no -- fi --else -- if test "x${have_smack}" = xauto; then -- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" -- have_smack=yes -- fi -+if test "x${have_smack}" = xauto; then -+ M4_DEFINES="$M4_DEFINES -DHAVE_SMACK" -+ have_smack=yes - fi - - AC_ARG_WITH(smack-run-label, -@@ -1131,7 +1085,6 @@ AC_MSG_RESULT([ - SMACK: ${have_smack} - XZ: ${have_xz} - ACL: ${have_acl} -- XATTR: ${have_xattr} - GCRYPT: ${have_gcrypt} - QRENCODE: ${have_qrencode} - MICROHTTPD: ${have_microhttpd} ---- src/core/mount-setup.c -+++ src/core/mount-setup.c 2014-06-03 00:00:00.000000000 +0000 -@@ -93,10 +93,8 @@ static const MountPoint mount_table[] = - NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, - NULL, MNT_IN_CONTAINER }, --#ifdef HAVE_XATTR - { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV, - NULL, MNT_IN_CONTAINER }, --#endif - { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, - NULL, MNT_IN_CONTAINER }, - { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, ---- src/core/socket.c -+++ src/core/socket.c 2014-06-03 00:00:00.000000000 +0000 -@@ -29,9 +29,7 @@ - #include - #include - #include --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "sd-event.h" - #include "log.h" ---- src/journal/journal-file.c -+++ src/journal/journal-file.c 2014-06-03 00:00:00.000000000 +0000 -@@ -26,10 +26,7 @@ - #include - #include - #include -- --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "journal-def.h" - #include "journal-file.h" -@@ -2515,7 +2512,6 @@ int journal_file_open( - } - - if (f->last_stat.st_size == 0 && f->writable) { --#ifdef HAVE_XATTR - uint64_t crtime; - - /* Let's attach the creation time to the journal file, -@@ -2530,7 +2526,6 @@ int journal_file_open( - - crtime = htole64((uint64_t) now(CLOCK_REALTIME)); - fsetxattr(f->fd, "user.crtime_usec", &crtime, sizeof(crtime), XATTR_CREATE); --#endif - - #ifdef HAVE_GCRYPT - /* Try to load the FSPRG state, and if we can't, then ---- src/journal/journal-vacuum.c -+++ src/journal/journal-vacuum.c 2014-06-03 00:00:00.000000000 +0000 -@@ -24,10 +24,7 @@ - #include - #include - #include -- --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "journal-def.h" - #include "journal-file.h" -@@ -79,11 +76,8 @@ static void patch_realtime( - unsigned long long *realtime) { - - usec_t x; -- --#ifdef HAVE_XATTR - uint64_t crtime; - _cleanup_free_ const char *path = NULL; --#endif - - /* The timestamp was determined by the file name, but let's - * see if the file might actually be older than the file name -@@ -106,7 +100,6 @@ static void patch_realtime( - if (x > 0 && x != (usec_t) -1 && x < *realtime) - *realtime = x; - --#ifdef HAVE_XATTR - /* Let's read the original creation time, if possible. Ideally - * we'd just query the creation time the FS might provide, but - * unfortunately there's currently no sane API to query -@@ -125,7 +118,6 @@ static void patch_realtime( - if (crtime > 0 && crtime != (uint64_t) -1 && crtime < *realtime) - *realtime = crtime; - } --#endif - } - - static int journal_file_empty(int dir_fd, const char *name) { ---- src/shared/label.c -+++ src/shared/label.c 2014-06-03 00:00:00.000000000 +0000 -@@ -27,9 +27,7 @@ - #include - #include - #include --#ifdef HAVE_XATTR - #include --#endif - #ifdef HAVE_SELINUX - #include - #include ---- src/shared/smack-util.c -+++ src/shared/smack-util.c 2014-06-03 00:00:00.000000000 +0000 -@@ -23,9 +23,7 @@ - - #include - #include --#ifdef HAVE_XATTR --#include --#endif -+#include - - #include "smack-util.h" - diff --git a/0001-bus-proxyd-fix-incorrect-comparison.patch b/0001-bus-proxyd-fix-incorrect-comparison.patch deleted file mode 100644 index 404e4c8d..00000000 --- a/0001-bus-proxyd-fix-incorrect-comparison.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on e05aa2e02ba35d8b3741dddb79af3c802308414b Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 25 Jul 2014 10:25:06 +0200 -Subject: [PATCH] bus-proxyd: fix incorrect comparison - -We should be interested in k variable. ---- - src/bus-proxyd/bus-proxyd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/bus-proxyd/bus-proxyd.c -+++ src/bus-proxyd/bus-proxyd.c 2014-07-28 09:37:29.274735818 +0000 -@@ -698,7 +698,7 @@ int main(int argc, char *argv[]) { - - k = sd_bus_send(a, m, NULL); - if (k < 0) { -- if (r == -ECONNRESET) -+ if (k == -ECONNRESET) - r = 0; - else { - r = k; diff --git a/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch b/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch deleted file mode 100644 index 06845364..00000000 --- a/0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a641dcd9bf05418d6a6c165e1c0cff615b4a0f47 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 18 Mar 2014 04:06:36 +0100 -Subject: [PATCH] cgroup: it's not OK to invoke alloca() in loops - ---- - src/core/mount-setup.c | 20 ++++++++++++++------ - 1 file changed, 14 insertions(+), 6 deletions(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index 387030a..c6d3f4b 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -216,10 +216,10 @@ int mount_setup_early(void) { - } - - int mount_cgroup_controllers(char ***join_controllers) { -- int r; -- char buf[LINE_MAX]; - _cleanup_set_free_free_ Set *controllers = NULL; - _cleanup_fclose_ FILE *f; -+ char buf[LINE_MAX]; -+ int r; - - /* Mount all available cgroup controllers that are built into the kernel. */ - -@@ -262,6 +262,7 @@ int mount_cgroup_controllers(char ***join_controllers) { - } - - for (;;) { -+ _cleanup_free_ char *options = NULL, *controller = NULL, *where = NULL; - MountPoint p = { - .what = "cgroup", - .type = "cgroup", -@@ -269,7 +270,6 @@ int mount_cgroup_controllers(char ***join_controllers) { - .mode = MNT_IN_CONTAINER, - }; - char ***k = NULL; -- _cleanup_free_ char *options = NULL, *controller; - - controller = set_steal_first(controllers); - if (!controller) -@@ -286,7 +286,7 @@ int mount_cgroup_controllers(char ***join_controllers) { - for (i = *k, j = *k; *i; i++) { - - if (!streq(*i, controller)) { -- char _cleanup_free_ *t; -+ _cleanup_free_ char *t; - - t = set_remove(controllers, *i); - if (!t) { -@@ -308,7 +308,11 @@ int mount_cgroup_controllers(char ***join_controllers) { - controller = NULL; - } - -- p.where = strappenda("/sys/fs/cgroup/", options); -+ where = strappend("/sys/fs/cgroup/", options); -+ if (!where) -+ return log_oom(); -+ -+ p.where = where; - p.options = options; - - r = mount_one(&p, true); -@@ -319,7 +323,11 @@ int mount_cgroup_controllers(char ***join_controllers) { - char **i; - - for (i = *k; *i; i++) { -- char *t = strappenda("/sys/fs/cgroup/", *i); -+ _cleanup_free_ char *t = NULL; -+ -+ t = strappend("/sys/fs/cgroup/", *i); -+ if (!t) -+ return log_oom(); - - r = symlink(options, t); - if (r < 0 && errno != EEXIST) { --- -1.7.9.2 - diff --git a/0001-completion-filter-templates-from-restartable-units.patch b/0001-completion-filter-templates-from-restartable-units.patch deleted file mode 100644 index 13e03e03..00000000 --- a/0001-completion-filter-templates-from-restartable-units.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on ec15977a3cd82eff6c94bb13db72195f7cd512e8 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Fri, 29 Aug 2014 20:35:15 -0400 -Subject: [PATCH] completion: filter templates from restartable units - -Since c6a373a2634854, we might encounter unit templates via the -'list-units' verb. These aren't restartable (and we throw errors), so -make sure they're filtered out of the completion options. - -fixes downstream bug: https://bugs.archlinux.org/task/41719 ---- - shell-completion/bash/systemctl.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in -index 64b15df..0150018 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -182,7 +182,7 @@ _systemctl () { - comps=$( __filter_units_by_property $mode CanStart yes \ - $( __get_all_units $mode \ - | while read -r line; do \ -- [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ -+ [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ - done )) - compopt -o filenames - --- -1.7.9.2 - diff --git a/0001-conf-parser-silently-ignore-sections-starting-with-X.patch b/0001-conf-parser-silently-ignore-sections-starting-with-X.patch deleted file mode 100644 index 8ae66062..00000000 --- a/0001-conf-parser-silently-ignore-sections-starting-with-X.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 342aea195051633c69ba7b8c02c82a0e5f8cbde4 Mon Sep 17 00:00:00 2001 -From: Michael Marineau -Date: Fri, 16 May 2014 16:58:31 -0700 -Subject: [PATCH] conf-parser: silently ignore sections starting with "X-" - -This allows external tools to keep additional unit information in a -separate section without scaring users with a big warning. ---- - src/shared/conf-parser.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git src/shared/conf-parser.c src/shared/conf-parser.c -index d27b1b7..062b15b 100644 ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c -@@ -204,6 +204,7 @@ static int parse_line(const char* unit, - bool allow_include, - char **section, - unsigned *section_line, -+ bool *section_ignored, - char *l, - void *userdata) { - -@@ -266,7 +267,7 @@ static int parse_line(const char* unit, - - if (sections && !nulstr_contains(sections, n)) { - -- if (!relaxed) -+ if (!relaxed && !startswith(n, "X-")) - log_syntax(unit, LOG_WARNING, filename, line, EINVAL, - "Unknown section '%s'. Ignoring.", n); - -@@ -274,10 +275,12 @@ static int parse_line(const char* unit, - free(*section); - *section = NULL; - *section_line = 0; -+ *section_ignored = true; - } else { - free(*section); - *section = n; - *section_line = line; -+ *section_ignored = false; - } - - return 0; -@@ -285,7 +288,7 @@ static int parse_line(const char* unit, - - if (sections && !*section) { - -- if (!relaxed) -+ if (!relaxed && !*section_ignored) - log_syntax(unit, LOG_WARNING, filename, line, EINVAL, - "Assignment outside of section. Ignoring."); - -@@ -328,6 +331,7 @@ int config_parse(const char *unit, - _cleanup_free_ char *section = NULL, *continuation = NULL; - _cleanup_fclose_ FILE *ours = NULL; - unsigned line = 0, section_line = 0; -+ bool section_ignored = false; - int r; - - assert(filename); -@@ -399,6 +403,7 @@ int config_parse(const char *unit, - allow_include, - §ion, - §ion_line, -+ §ion_ignored, - p, - userdata); - free(c); --- -1.7.9.2 - diff --git a/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch b/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch deleted file mode 100644 index b8989aef..00000000 --- a/0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 36d239dbdaf94ba2d96bb60ac45ecfc58624b1eb Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 7 Mar 2014 11:41:18 +0100 -Subject: [PATCH] core/busname: add lookup string for - BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT - -When a busname unit enters BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT, the -serialization will not be able to look up the result as string via -busname_result_to_string(). This leads to an assertion trap during -daemon-reexec. ---- - src/core/busname.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/core/busname.c src/core/busname.c -index 4c34538..237011a 100644 ---- src/core/busname.c -+++ src/core/busname.c -@@ -548,6 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); - static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { - [BUSNAME_SUCCESS] = "success", - [BUSNAME_FAILURE_RESOURCES] = "resources", -+ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", - }; - - DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); --- -1.7.9.2 - diff --git a/0001-core-close-socket-fds-asynchronously.patch b/0001-core-close-socket-fds-asynchronously.patch deleted file mode 100644 index 90649f90..00000000 --- a/0001-core-close-socket-fds-asynchronously.patch +++ /dev/null @@ -1,89 +0,0 @@ -Based on 574634bcacb01efe15ca2742effd461a5b7afb5f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 13 May 2014 23:22:13 +0200 -Subject: [PATCH] core: close socket fds asynchronously - -http://lists.freedesktop.org/archives/systemd-devel/2014-April/018928.html ---- - src/core/async.c | 24 ++++++++++++++++++++++++ - src/core/service.c | 5 +++-- - 2 files changed, 27 insertions(+), 2 deletions(-) - -Index: src/core/service.c -=================================================================== ---- src/core/service.c.orig -+++ src/core/service.c -@@ -25,6 +25,7 @@ - #include - #include - -+#include "async.h" - #include "manager.h" - #include "unit.h" - #include "service.h" -@@ -240,7 +241,7 @@ static void service_close_socket_fd(Serv - if (s->socket_fd < 0) - return; - -- close_nointr_nofail(s->socket_fd); -+ asynchronous_close(s->socket_fd); - s->socket_fd = -1; - } - -@@ -2767,7 +2768,7 @@ static int service_deserialize_item(Unit - else { - - if (s->socket_fd >= 0) -- close_nointr_nofail(s->socket_fd); -+ asynchronous_close(s->socket_fd); - s->socket_fd = fdset_remove(fds, fd); - } - } else if (streq(key, "main-exec-status-pid")) { -Index: src/core/async.c -=================================================================== ---- src/core/async.c.orig -+++ src/core/async.c -@@ -24,6 +24,7 @@ - - #include "async.h" - #include "log.h" -+#include "util.h" - - int asynchronous_job(void* (*func)(void *p), void *arg) { - pthread_attr_t a; -@@ -70,3 +71,26 @@ int asynchronous_sync(void) { - - return asynchronous_job(sync_thread, NULL); - } -+ -+static void *close_thread(void *p) { -+ int fd = PTR_TO_INT(p); -+ if (fd >= 0) -+ close_nointr_nofail(fd); -+ return NULL; -+} -+ -+int asynchronous_close(int fd) { -+ int r; -+ -+ /* This is supposed to behave similar to safe_close(), but -+ * actually invoke close() asynchronously, so that it will -+ * never block. Ideally the kernel would have an API for this, -+ * but it doesn't, so we work around it, and hide this as a -+ * far away as we can. */ -+ -+ r = asynchronous_job(close_thread, INT_TO_PTR(fd)); -+ if (r < 0 && fd >= 0) -+ close_nointr_nofail(fd); -+ -+ return -1; -+} -Index: src/core/async.h -=================================================================== ---- src/core/async.h.orig -+++ src/core/async.h -@@ -23,3 +23,4 @@ - - int asynchronous_job(void* (*func)(void *p), void *arg); - int asynchronous_sync(void); -+int asynchronous_close(int fd); diff --git a/0001-core-don-t-allow-enabling-if-unit-is-masked.patch b/0001-core-don-t-allow-enabling-if-unit-is-masked.patch deleted file mode 100644 index 7e193738..00000000 --- a/0001-core-don-t-allow-enabling-if-unit-is-masked.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f7101b7368dfe41dbc8b7203e06133cccb589c01 Mon Sep 17 00:00:00 2001 -From: Jan Synacek -Date: Tue, 7 Oct 2014 13:35:41 +0200 -Subject: [PATCH] core: don't allow enabling if unit is masked - ---- - src/shared/install.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git src/shared/install.c src/shared/install.c -index fa064c2..945bb27 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -1516,6 +1516,19 @@ int unit_file_enable( - return r; - - STRV_FOREACH(i, files) { -+ UnitFileState state; -+ -+ state = unit_file_get_state(scope, root_dir, *i); -+ if (state < 0) { -+ log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); -+ return state; -+ } -+ -+ if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { -+ log_error("Failed to enable unit: Unit %s is masked", *i); -+ return -ENOTSUP; -+ } -+ - r = install_info_add_auto(&c, *i); - if (r < 0) - return r; --- -1.7.9.2 - diff --git a/0001-core-fix-invalid-free-in-killall.patch b/0001-core-fix-invalid-free-in-killall.patch deleted file mode 100644 index 23d527e8..00000000 --- a/0001-core-fix-invalid-free-in-killall.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3e09eb5c83e56bc0184bd9d9c44f76047464f77c Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Fri, 13 Jun 2014 18:48:19 +0200 -Subject: [PATCH] core: fix invalid free() in killall() - -static int killall(....) in ./src/core/killall.c tries to get "s" -initialized by calling get_process_comm(...) which calls -read_one_line_file(...) which if it fails will mean it is left -uninitialized. -It is then used in argument to strna(s) call where it is -dereferenced(!), in addition to nothing else initializing it before -the scope it is in finishes. ---- - src/core/killall.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/killall.c src/core/killall.c -index 57ed41c..eab48f7 100644 ---- src/core/killall.c -+++ src/core/killall.c -@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) { - continue; - - if (sig == SIGKILL) { -- _cleanup_free_ char *s; -+ _cleanup_free_ char *s = NULL; - - get_process_comm(pid, &s); - log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s)); --- -1.7.9.2 - diff --git a/0001-core-fix-resource-leak-in-manager_environment_add.patch b/0001-core-fix-resource-leak-in-manager_environment_add.patch deleted file mode 100644 index 7991b3be..00000000 --- a/0001-core-fix-resource-leak-in-manager_environment_add.patch +++ /dev/null @@ -1,32 +0,0 @@ -From aa9f8a30fd7dc7aa3aa2575b75b3f9a0ab3f02db Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Tue, 16 Sep 2014 21:11:02 +0200 -Subject: [PATCH] core: fix resource leak in manager_environment_add - -Second error path must free the (potentially) allocated memory in the -first code chunk before returning. - -Found by coverity. Fixes: CID#1237750 ---- - src/core/manager.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git src/core/manager.c src/core/manager.c -index 0770727..e0c1cd1 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -2751,8 +2751,10 @@ int manager_environment_add(Manager *m, char **minus, char **plus) { - - if (!strv_isempty(plus)) { - b = strv_env_merge(2, l, plus); -- if (!b) -+ if (!b) { -+ strv_free(a); - return -ENOMEM; -+ } - - l = b; - } --- -1.7.9.2 - diff --git a/0001-core-rework-device-state-logic.patch b/0001-core-rework-device-state-logic.patch new file mode 100644 index 00000000..0234602c --- /dev/null +++ b/0001-core-rework-device-state-logic.patch @@ -0,0 +1,917 @@ +From 628c89cc68ab96fce2de7ebba5933725d147aecc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 27 Feb 2015 21:55:08 +0100 +Subject: [PATCH] core: rework device state logic +References: https://bugzilla.redhat.com/show_bug.cgi?id=1196452 + +This change introduces a new state "tentative" for device units. Device +units are considered "plugged" when udev announced them, "dead" when +they are not available in the kernel, and "tentative" when they are +referenced in /proc/self/mountinfo or /proc/swaps but not (yet) +announced via udev. + +This should fix a race when device nodes (like loop devices) are created +and immediately mounted. Previously, systemd might end up seeing the +mount unit before the device, and would thus pull down the mount because +its BindTo dependency on the device would not be fulfilled. +=== +[The bug can be triggered by + cp -a /dev/sda1 (pick any source) /dev/xxx; mount /dev/xxx /mnt; + since "xxx" is a device udev does not know about even if it runs + and is race-free in the moment you are trying. + -jengelh] +--- + src/core/device.c | 368 +++++++++++++++++++++++++++++++++--------------------- + src/core/device.h | 14 ++- + src/core/mount.c | 46 ++++--- + src/core/swap.c | 32 +++-- + src/core/swap.h | 4 +- + src/core/unit.c | 1 - + 6 files changed, 285 insertions(+), 180 deletions(-) + +diff --git a/src/core/device.c b/src/core/device.c +index 2d983cc..e41ed41 100644 +--- a/src/core/device.c ++++ b/src/core/device.c +@@ -34,7 +34,8 @@ + + static const UnitActiveState state_translation_table[_DEVICE_STATE_MAX] = { + [DEVICE_DEAD] = UNIT_INACTIVE, +- [DEVICE_PLUGGED] = UNIT_ACTIVE ++ [DEVICE_TENTATIVE] = UNIT_ACTIVATING, ++ [DEVICE_PLUGGED] = UNIT_ACTIVE, + }; + + static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata); +@@ -63,6 +64,41 @@ static void device_unset_sysfs(Device *d) { + d->sysfs = NULL; + } + ++static int device_set_sysfs(Device *d, const char *sysfs) { ++ Device *first; ++ char *copy; ++ int r; ++ ++ assert(d); ++ ++ if (streq_ptr(d->sysfs, sysfs)) ++ return 0; ++ ++ r = hashmap_ensure_allocated(&UNIT(d)->manager->devices_by_sysfs, &string_hash_ops); ++ if (r < 0) ++ return r; ++ ++ copy = strdup(sysfs); ++ if (!copy) ++ return -ENOMEM; ++ ++ device_unset_sysfs(d); ++ ++ first = hashmap_get(UNIT(d)->manager->devices_by_sysfs, sysfs); ++ LIST_PREPEND(same_sysfs, first, d); ++ ++ r = hashmap_replace(UNIT(d)->manager->devices_by_sysfs, copy, first); ++ if (r < 0) { ++ LIST_REMOVE(same_sysfs, first, d); ++ free(copy); ++ return r; ++ } ++ ++ d->sysfs = copy; ++ ++ return 0; ++} ++ + static void device_init(Unit *u) { + Device *d = DEVICE(u); + +@@ -110,8 +146,13 @@ static int device_coldplug(Unit *u) { + assert(d); + assert(d->state == DEVICE_DEAD); + +- if (d->sysfs) ++ if (d->found & DEVICE_FOUND_UDEV) ++ /* If udev says the device is around, it's around */ + device_set_state(d, DEVICE_PLUGGED); ++ else if (d->found != DEVICE_NOT_FOUND) ++ /* If a device is found in /proc/self/mountinfo or ++ * /proc/swaps, it's "tentatively" around. */ ++ device_set_state(d, DEVICE_TENTATIVE); + + return 0; + } +@@ -140,49 +181,9 @@ _pure_ static const char *device_sub_state_to_string(Unit *u) { + return device_state_to_string(DEVICE(u)->state); + } + +-static int device_add_escaped_name(Unit *u, const char *dn) { +- _cleanup_free_ char *e = NULL; +- int r; +- +- assert(u); +- assert(dn); +- assert(dn[0] == '/'); +- +- e = unit_name_from_path(dn, ".device"); +- if (!e) +- return -ENOMEM; +- +- r = unit_add_name(u, e); +- if (r < 0 && r != -EEXIST) +- return r; +- +- return 0; +-} +- +-static int device_find_escape_name(Manager *m, const char *dn, Unit **_u) { +- _cleanup_free_ char *e = NULL; +- Unit *u; +- +- assert(m); +- assert(dn); +- assert(dn[0] == '/'); +- assert(_u); +- +- e = unit_name_from_path(dn, ".device"); +- if (!e) +- return -ENOMEM; +- +- u = manager_get_unit(m, e); +- if (u) { +- *_u = u; +- return 1; +- } +- +- return 0; +-} +- +-static int device_make_description(Unit *u, struct udev_device *dev, const char *path) { ++static int device_update_description(Unit *u, struct udev_device *dev, const char *path) { + const char *model; ++ int r; + + assert(u); + assert(dev); +@@ -207,13 +208,16 @@ static int device_make_description(Unit *u, struct udev_device *dev, const char + + j = strjoin(model, " ", label, NULL); + if (j) +- return unit_set_description(u, j); +- } ++ r = unit_set_description(u, j); ++ } else ++ r = unit_set_description(u, model); ++ } else ++ r = unit_set_description(u, path); + +- return unit_set_description(u, model); +- } ++ if (r < 0) ++ log_unit_error_errno(u->id, r, "Failed to set device description: %m"); + +- return unit_set_description(u, path); ++ return r; + } + + static int device_add_udev_wants(Unit *u, struct udev_device *dev) { +@@ -240,20 +244,20 @@ static int device_add_udev_wants(Unit *u, struct udev_device *dev) { + + n = unit_name_mangle(e, MANGLE_NOGLOB); + if (!n) +- return -ENOMEM; ++ return log_oom(); + + r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true); + if (r < 0) +- return r; ++ return log_unit_error_errno(u->id, r, "Failed to add wants dependency: %m"); + } + if (!isempty(state)) +- log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", +- property, strna(udev_device_get_syspath(dev))); ++ log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", property, strna(udev_device_get_syspath(dev))); + + return 0; + } + +-static int device_update_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { ++static int device_setup_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { ++ _cleanup_free_ char *e = NULL; + const char *sysfs; + Unit *u = NULL; + bool delete; +@@ -267,12 +271,18 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + if (!sysfs) + return 0; + +- r = device_find_escape_name(m, path, &u); +- if (r < 0) +- return r; ++ e = unit_name_from_path(path, ".device"); ++ if (!e) ++ return log_oom(); ++ ++ u = manager_get_unit(m, e); + +- if (u && DEVICE(u)->sysfs && !path_equal(DEVICE(u)->sysfs, sysfs)) ++ if (u && ++ DEVICE(u)->sysfs && ++ !path_equal(DEVICE(u)->sysfs, sysfs)) { ++ log_unit_error(u->id, "Device %s appeared twice with different sysfs paths %s and %s", e, DEVICE(u)->sysfs, sysfs); + return -EEXIST; ++ } + + if (!u) { + delete = true; +@@ -281,7 +291,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + if (!u) + return log_oom(); + +- r = device_add_escaped_name(u, path); ++ r = unit_add_name(u, e); + if (r < 0) + goto fail; + +@@ -293,37 +303,16 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + * actually been seen yet ->sysfs will not be + * initialized. Hence initialize it if necessary. */ + +- if (!DEVICE(u)->sysfs) { +- Device *first; +- +- DEVICE(u)->sysfs = strdup(sysfs); +- if (!DEVICE(u)->sysfs) { +- r = -ENOMEM; +- goto fail; +- } +- +- r = hashmap_ensure_allocated(&m->devices_by_sysfs, &string_hash_ops); +- if (r < 0) +- goto fail; +- +- first = hashmap_get(m->devices_by_sysfs, sysfs); +- LIST_PREPEND(same_sysfs, first, DEVICE(u)); +- +- r = hashmap_replace(m->devices_by_sysfs, DEVICE(u)->sysfs, first); +- if (r < 0) +- goto fail; +- } +- +- device_make_description(u, dev, path); ++ r = device_set_sysfs(DEVICE(u), sysfs); ++ if (r < 0) ++ goto fail; + +- if (main) { +- /* The additional systemd udev properties we only +- * interpret for the main object */ ++ (void) device_update_description(u, dev, path); + +- r = device_add_udev_wants(u, dev); +- if (r < 0) +- goto fail; +- } ++ /* The additional systemd udev properties we only interpret ++ * for the main object */ ++ if (main) ++ (void) device_add_udev_wants(u, dev); + + /* Note that this won't dispatch the load queue, the caller + * has to do that if needed and appropriate */ +@@ -332,7 +321,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p + return 0; + + fail: +- log_warning_errno(r, "Failed to load device unit: %m"); ++ log_unit_warning_errno(u->id, r, "Failed to set up device unit: %m"); + + if (delete && u) + unit_free(u); +@@ -340,7 +329,7 @@ fail: + return r; + } + +-static int device_process_new_device(Manager *m, struct udev_device *dev) { ++static int device_process_new(Manager *m, struct udev_device *dev) { + const char *sysfs, *dn, *alias; + struct udev_list_entry *item = NULL, *first = NULL; + int r; +@@ -352,14 +341,14 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + return 0; + + /* Add the main unit named after the sysfs path */ +- r = device_update_unit(m, dev, sysfs, true); ++ r = device_setup_unit(m, dev, sysfs, true); + if (r < 0) + return r; + + /* Add an additional unit for the device node */ + dn = udev_device_get_devnode(dev); + if (dn) +- device_update_unit(m, dev, dn, false); ++ (void) device_setup_unit(m, dev, dn, false); + + /* Add additional units for all symlinks */ + first = udev_device_get_devlinks_list_entry(dev); +@@ -386,7 +375,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + st.st_rdev != udev_device_get_devnum(dev)) + continue; + +- device_update_unit(m, dev, p, false); ++ (void) device_setup_unit(m, dev, p, false); + } + + /* Add additional units for all explicitly configured +@@ -403,7 +392,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + e[l] = 0; + + if (path_is_absolute(e)) +- device_update_unit(m, dev, e, false); ++ (void) device_setup_unit(m, dev, e, false); + else + log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e); + } +@@ -414,39 +403,62 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { + return 0; + } + +-static void device_set_path_plugged(Manager *m, struct udev_device *dev) { +- const char *sysfs; ++static void device_update_found_one(Device *d, bool add, DeviceFound found, bool now) { ++ DeviceFound n; ++ ++ assert(d); ++ ++ n = add ? (d->found | found) : (d->found & ~found); ++ if (n == d->found) ++ return; ++ ++ d->found = n; ++ ++ if (now) { ++ if (d->found & DEVICE_FOUND_UDEV) ++ device_set_state(d, DEVICE_PLUGGED); ++ else if (d->found != DEVICE_NOT_FOUND) ++ device_set_state(d, DEVICE_TENTATIVE); ++ else ++ device_set_state(d, DEVICE_DEAD); ++ } ++} ++ ++static int device_update_found_by_sysfs(Manager *m, const char *sysfs, bool add, DeviceFound found, bool now) { + Device *d, *l; + + assert(m); +- assert(dev); ++ assert(sysfs); + +- sysfs = udev_device_get_syspath(dev); +- if (!sysfs) +- return; ++ if (found == DEVICE_NOT_FOUND) ++ return 0; + + l = hashmap_get(m->devices_by_sysfs, sysfs); + LIST_FOREACH(same_sysfs, d, l) +- device_set_state(d, DEVICE_PLUGGED); ++ device_update_found_one(d, add, found, now); ++ ++ return 0; + } + +-static int device_process_removed_device(Manager *m, struct udev_device *dev) { +- const char *sysfs; +- Device *d; ++static int device_update_found_by_name(Manager *m, const char *path, bool add, DeviceFound found, bool now) { ++ _cleanup_free_ char *e = NULL; ++ Unit *u; + + assert(m); +- assert(dev); ++ assert(path); + +- sysfs = udev_device_get_syspath(dev); +- if (!sysfs) +- return -ENOMEM; ++ if (found == DEVICE_NOT_FOUND) ++ return 0; + +- /* Remove all units of this sysfs path */ +- while ((d = hashmap_get(m->devices_by_sysfs, sysfs))) { +- device_unset_sysfs(d); +- device_set_state(d, DEVICE_DEAD); +- } ++ e = unit_name_from_path(path, ".device"); ++ if (!e) ++ return log_oom(); + ++ u = manager_get_unit(m, e); ++ if (!u) ++ return 0; ++ ++ device_update_found_one(DEVICE(u), add, found, now); + return 0; + } + +@@ -462,22 +474,6 @@ static bool device_is_ready(struct udev_device *dev) { + return parse_boolean(ready) != 0; + } + +-static int device_process_new_path(Manager *m, const char *path) { +- _cleanup_udev_device_unref_ struct udev_device *dev = NULL; +- +- assert(m); +- assert(path); +- +- dev = udev_device_new_from_syspath(m->udev, path); +- if (!dev) +- return log_oom(); +- +- if (!device_is_ready(dev)) +- return 0; +- +- return device_process_new_device(m, dev); +-} +- + static Unit *device_following(Unit *u) { + Device *d = DEVICE(u); + Device *other, *first = NULL; +@@ -604,12 +600,31 @@ static int device_enumerate(Manager *m) { + goto fail; + + first = udev_enumerate_get_list_entry(e); +- udev_list_entry_foreach(item, first) +- device_process_new_path(m, udev_list_entry_get_name(item)); ++ udev_list_entry_foreach(item, first) { ++ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; ++ const char *sysfs; ++ ++ sysfs = udev_list_entry_get_name(item); ++ ++ dev = udev_device_new_from_syspath(m->udev, sysfs); ++ if (!dev) { ++ log_oom(); ++ continue; ++ } ++ ++ if (!device_is_ready(dev)) ++ continue; ++ ++ (void) device_process_new(m, dev); ++ ++ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, false); ++ } + + return 0; + + fail: ++ log_error_errno(r, "Failed to enumerate devices: %m"); ++ + device_shutdown(m); + return r; + } +@@ -617,7 +632,7 @@ fail: + static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata) { + _cleanup_udev_device_unref_ struct udev_device *dev = NULL; + Manager *m = userdata; +- const char *action; ++ const char *action, *sysfs; + int r; + + assert(m); +@@ -639,33 +654,47 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + if (!dev) + return 0; + ++ sysfs = udev_device_get_syspath(dev); ++ if (!sysfs) { ++ log_error("Failed to get udev sys path."); ++ return 0; ++ } ++ + action = udev_device_get_action(dev); + if (!action) { + log_error("Failed to get udev action string."); + return 0; + } + +- if (streq(action, "remove") || !device_is_ready(dev)) { +- r = device_process_removed_device(m, dev); +- if (r < 0) +- log_error_errno(r, "Failed to process device remove event: %m"); +- +- r = swap_process_removed_device(m, dev); ++ if (streq(action, "remove")) { ++ r = swap_process_device_remove(m, dev); + if (r < 0) + log_error_errno(r, "Failed to process swap device remove event: %m"); + +- } else { +- r = device_process_new_device(m, dev); +- if (r < 0) +- log_error_errno(r, "Failed to process device new event: %m"); ++ /* If we get notified that a device was removed by ++ * udev, then it's completely gone, hence unset all ++ * found bits */ ++ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV|DEVICE_FOUND_MOUNT|DEVICE_FOUND_SWAP, true); + +- r = swap_process_new_device(m, dev); ++ } else if (device_is_ready(dev)) { ++ ++ (void) device_process_new(m, dev); ++ ++ r = swap_process_device_new(m, dev); + if (r < 0) + log_error_errno(r, "Failed to process swap device new event: %m"); + + manager_dispatch_load_queue(m); + +- device_set_path_plugged(m, dev); ++ /* The device is found now, set the udev found bit */ ++ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, true); ++ ++ } else { ++ /* The device is nominally around, but not ready for ++ * us. Hence unset the udev bit, but leave the rest ++ * around. */ ++ ++ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV, true); + } + + return 0; +@@ -684,9 +713,58 @@ static bool device_supported(Manager *m) { + return read_only <= 0; + } + ++int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now) { ++ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; ++ struct stat st; ++ ++ assert(m); ++ assert(node); ++ ++ /* This is called whenever we find a device referenced in ++ * /proc/swaps or /proc/self/mounts. Such a device might be ++ * mounted/enabled at a time where udev has not finished ++ * probing it yet, and we thus haven't learned about it ++ * yet. In this case we will set the device unit to ++ * "tentative" state. */ ++ ++ if (add) { ++ if (!path_startswith(node, "/dev")) ++ return 0; ++ ++ if (stat(node, &st) < 0) { ++ if (errno == ENOENT) ++ return 0; ++ ++ return log_error_errno(errno, "Failed to stat device node file %s: %m", node); ++ } ++ ++ if (!S_ISBLK(st.st_mode) && !S_ISCHR(st.st_mode)) ++ return 0; ++ ++ dev = udev_device_new_from_devnum(m->udev, S_ISBLK(st.st_mode) ? 'b' : 'c', st.st_rdev); ++ if (!dev) { ++ if (errno == ENOENT) ++ return 0; ++ ++ return log_oom(); ++ } ++ ++ /* If the device is known in the kernel and newly ++ * appeared, then we'll create a device unit for it, ++ * under the name referenced in /proc/swaps or ++ * /proc/self/mountinfo. */ ++ ++ (void) device_setup_unit(m, dev, node, false); ++ } ++ ++ /* Update the device unit's state, should it exist */ ++ return device_update_found_by_name(m, node, add, found, now); ++} ++ + static const char* const device_state_table[_DEVICE_STATE_MAX] = { + [DEVICE_DEAD] = "dead", +- [DEVICE_PLUGGED] = "plugged" ++ [DEVICE_TENTATIVE] = "tentative", ++ [DEVICE_PLUGGED] = "plugged", + }; + + DEFINE_STRING_TABLE_LOOKUP(device_state, DeviceState); +diff --git a/src/core/device.h b/src/core/device.h +index 9065085..9f46e08 100644 +--- a/src/core/device.h ++++ b/src/core/device.h +@@ -28,20 +28,28 @@ typedef struct Device Device; + * simplifies the state engine greatly */ + typedef enum DeviceState { + DEVICE_DEAD, +- DEVICE_PLUGGED, ++ DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ ++ DEVICE_PLUGGED, /* announced by udev */ + _DEVICE_STATE_MAX, + _DEVICE_STATE_INVALID = -1 + } DeviceState; + ++typedef enum DeviceFound { ++ DEVICE_NOT_FOUND = 0, ++ DEVICE_FOUND_UDEV = 1, ++ DEVICE_FOUND_MOUNT = 2, ++ DEVICE_FOUND_SWAP = 4, ++} DeviceFound; ++ + struct Device { + Unit meta; + + char *sysfs; ++ DeviceFound found; + + /* In order to be able to distinguish dependencies on + different device nodes we might end up creating multiple + devices for the same sysfs path. We chain them up here. */ +- + LIST_FIELDS(struct Device, same_sysfs); + + DeviceState state; +@@ -51,3 +59,5 @@ extern const UnitVTable device_vtable; + + const char* device_state_to_string(DeviceState i) _const_; + DeviceState device_state_from_string(const char *s) _pure_; ++ ++int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now); +diff --git a/src/core/mount.c b/src/core/mount.c +index 40037e7..8e4a376 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -1386,7 +1386,7 @@ static int mount_dispatch_timer(sd_event_source *source, usec_t usec, void *user + return 0; + } + +-static int mount_add_one( ++static int mount_setup_unit( + Manager *m, + const char *what, + const char *where, +@@ -1429,7 +1429,7 @@ static int mount_add_one( + + u = unit_new(m, sizeof(Mount)); + if (!u) +- return -ENOMEM; ++ return log_oom(); + + r = unit_add_name(u, e); + if (r < 0) +@@ -1542,6 +1542,8 @@ static int mount_add_one( + return 0; + + fail: ++ log_warning_errno(r, "Failed to set up mount unit: %m"); ++ + if (delete && u) + unit_free(u); + +@@ -1549,33 +1551,36 @@ fail: + } + + static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { +- _cleanup_(mnt_free_tablep) struct libmnt_table *tb = NULL; +- _cleanup_(mnt_free_iterp) struct libmnt_iter *itr = NULL; +- struct libmnt_fs *fs; ++ _cleanup_(mnt_free_tablep) struct libmnt_table *t = NULL; ++ _cleanup_(mnt_free_iterp) struct libmnt_iter *i = NULL; + int r = 0; + + assert(m); + +- tb = mnt_new_table(); +- itr = mnt_new_iter(MNT_ITER_FORWARD); +- if (!tb || !itr) ++ t = mnt_new_table(); ++ if (!t) + return log_oom(); + +- r = mnt_table_parse_mtab(tb, NULL); ++ i = mnt_new_iter(MNT_ITER_FORWARD); ++ if (!i) ++ return log_oom(); ++ ++ r = mnt_table_parse_mtab(t, NULL); + if (r < 0) +- return r; ++ return log_error_errno(r, "Failed to parse /proc/self/mountinfo: %m"); + + r = 0; + for (;;) { + const char *device, *path, *options, *fstype; + _cleanup_free_ const char *d = NULL, *p = NULL; ++ struct libmnt_fs *fs; + int k; + +- k = mnt_table_next_fs(tb, itr, &fs); ++ k = mnt_table_next_fs(t, i, &fs); + if (k == 1) + break; +- else if (k < 0) +- return log_error_errno(k, "Failed to get next entry from /etc/fstab: %m"); ++ if (k < 0) ++ return log_error_errno(k, "Failed to get next entry from /proc/self/mountinfo: %m"); + + device = mnt_fs_get_source(fs); + path = mnt_fs_get_target(fs); +@@ -1583,11 +1588,16 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { + fstype = mnt_fs_get_fstype(fs); + + d = cunescape(device); ++ if (!d) ++ return log_oom(); ++ + p = cunescape(path); +- if (!d || !p) ++ if (!p) + return log_oom(); + +- k = mount_add_one(m, d, p, options, fstype, set_flags); ++ (void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags); ++ ++ k = mount_setup_unit(m, d, p, options, fstype, set_flags); + if (r == 0 && k < 0) + r = k; + } +@@ -1731,8 +1741,6 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + + r = mount_load_proc_self_mountinfo(m, true); + if (r < 0) { +- log_error_errno(r, "Failed to reread /proc/self/mountinfo: %m"); +- + /* Reset flags, just in case, for later calls */ + LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_MOUNT]) { + Mount *mount = MOUNT(u); +@@ -1765,6 +1773,10 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + break; + } + ++ if (mount->parameters_proc_self_mountinfo.what) ++ (void) device_found_node(m, mount->parameters_proc_self_mountinfo.what, false, DEVICE_FOUND_MOUNT, true); ++ ++ + } else if (mount->just_mounted || mount->just_changed) { + + /* New or changed mount entry */ +diff --git a/src/core/swap.c b/src/core/swap.c +index f73a8e6..de3a5d8 100644 +--- a/src/core/swap.c ++++ b/src/core/swap.c +@@ -331,7 +331,7 @@ static int swap_load(Unit *u) { + return swap_verify(s); + } + +-static int swap_add_one( ++static int swap_setup_unit( + Manager *m, + const char *what, + const char *what_proc_swaps, +@@ -356,8 +356,10 @@ static int swap_add_one( + + if (u && + SWAP(u)->from_proc_swaps && +- !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) ++ !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) { ++ log_error("Swap %s appeared twice with different device paths %s and %s", e, SWAP(u)->parameters_proc_swaps.what, what_proc_swaps); + return -EEXIST; ++ } + + if (!u) { + delete = true; +@@ -372,7 +374,7 @@ static int swap_add_one( + + SWAP(u)->what = strdup(what); + if (!SWAP(u)->what) { +- r = log_oom(); ++ r = -ENOMEM; + goto fail; + } + +@@ -400,7 +402,6 @@ static int swap_add_one( + p->priority = priority; + + unit_add_to_dbus_queue(u); +- + return 0; + + fail: +@@ -412,7 +413,7 @@ fail: + return r; + } + +-static int swap_process_new_swap(Manager *m, const char *device, int prio, bool set_flags) { ++static int swap_process_new(Manager *m, const char *device, int prio, bool set_flags) { + _cleanup_udev_device_unref_ struct udev_device *d = NULL; + struct udev_list_entry *item = NULL, *first = NULL; + const char *dn; +@@ -421,7 +422,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool + + assert(m); + +- r = swap_add_one(m, device, device, prio, set_flags); ++ r = swap_setup_unit(m, device, device, prio, set_flags); + if (r < 0) + return r; + +@@ -437,7 +438,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool + /* Add the main device node */ + dn = udev_device_get_devnode(d); + if (dn && !streq(dn, device)) +- swap_add_one(m, dn, device, prio, set_flags); ++ swap_setup_unit(m, dn, device, prio, set_flags); + + /* Add additional units for all symlinks */ + first = udev_device_get_devlinks_list_entry(d); +@@ -458,7 +459,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool + st.st_rdev != udev_device_get_devnum(d)) + continue; + +- swap_add_one(m, p, device, prio, set_flags); ++ swap_setup_unit(m, p, device, prio, set_flags); + } + + return r; +@@ -1084,15 +1085,17 @@ static int swap_load_proc_swaps(Manager *m, bool set_flags) { + if (k == EOF) + break; + +- log_warning("Failed to parse /proc/swaps:%u", i); ++ log_warning("Failed to parse /proc/swaps:%u.", i); + continue; + } + + d = cunescape(dev); + if (!d) +- return -ENOMEM; ++ return log_oom(); ++ ++ device_found_node(m, d, true, DEVICE_FOUND_SWAP, set_flags); + +- k = swap_process_new_swap(m, d, prio, set_flags); ++ k = swap_process_new(m, d, prio, set_flags); + if (k < 0) + r = k; + } +@@ -1144,6 +1147,9 @@ static int swap_dispatch_io(sd_event_source *source, int fd, uint32_t revents, v + break; + } + ++ if (swap->what) ++ device_found_node(m, swap->what, false, DEVICE_FOUND_SWAP, true); ++ + } else if (swap->just_activated) { + + /* New swap entry */ +@@ -1291,7 +1297,7 @@ fail: + return r; + } + +-int swap_process_new_device(Manager *m, struct udev_device *dev) { ++int swap_process_device_new(Manager *m, struct udev_device *dev) { + struct udev_list_entry *item = NULL, *first = NULL; + _cleanup_free_ char *e = NULL; + const char *dn; +@@ -1334,7 +1340,7 @@ int swap_process_new_device(Manager *m, struct udev_device *dev) { + return r; + } + +-int swap_process_removed_device(Manager *m, struct udev_device *dev) { ++int swap_process_device_remove(Manager *m, struct udev_device *dev) { + const char *dn; + int r = 0; + Swap *s; +diff --git a/src/core/swap.h b/src/core/swap.h +index c36c6f2..5de8c20 100644 +--- a/src/core/swap.h ++++ b/src/core/swap.h +@@ -115,8 +115,8 @@ struct Swap { + + extern const UnitVTable swap_vtable; + +-int swap_process_new_device(Manager *m, struct udev_device *dev); +-int swap_process_removed_device(Manager *m, struct udev_device *dev); ++int swap_process_device_new(Manager *m, struct udev_device *dev); ++int swap_process_device_remove(Manager *m, struct udev_device *dev); + + const char* swap_state_to_string(SwapState i) _const_; + SwapState swap_state_from_string(const char *s) _pure_; +diff --git a/src/core/unit.c b/src/core/unit.c +index 63ccd67..7cd7043 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -2834,7 +2834,6 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { + return -ENOMEM; + + r = manager_load_unit(u->manager, e, NULL, NULL, &device); +- + if (r < 0) + return r; + +-- +2.1.4 + diff --git a/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch b/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch deleted file mode 100644 index 18e76f4f..00000000 --- a/0001-core-swap-only-make-configured-units-part-of-swap.ta.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 3018d31238caabc2e204aa161e647dc1c1b5d1c6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 2 Oct 2014 00:11:36 -0400 -Subject: [PATCH] core/swap: only make configured units part of swap.target - -We used to make all .swap units either RequiredBy=swap.target or -WantedBy=swap.target. But swap.target should be the "configured swap -units", either through /etc/fstab or non-generated .swap units. It -is surprising when systemd starts treating a swap device that was -possibly temporarily enabled as a hard dependency for other units. -So do not add dependencies with swap.target for units gleaned from -/proc/swaps. - -Similarly, we added dependencies for all aliases of the device name, -which clutters up the dependency graph but does not seem to bring any -value, since the status of those following units is consistent with -the main one anyway. - -This should be a fix for [1], and it seems the right thing to do -anyway. - -[1] https://bugzilla.redhat.com/show_bug.cgi?id=1114786 ---- - src/core/swap.c | 20 +++++++++++--------- - 1 file changed, 11 insertions(+), 9 deletions(-) - -diff --git src/core/swap.c src/core/swap.c -index ef90d0e..b2ca048 100644 ---- src/core/swap.c -+++ src/core/swap.c -@@ -213,7 +213,7 @@ static int swap_add_device_links(Swap *s) { - } - - static int swap_add_default_dependencies(Swap *s) { -- bool nofail = false, noauto = false; -+ bool nofail, noauto; - int r; - - assert(s); -@@ -228,23 +228,25 @@ static int swap_add_default_dependencies(Swap *s) { - if (r < 0) - return r; - -- if (s->from_fragment) { -- SwapParameters *p = &s->parameters_fragment; -+ if (!s->from_fragment) -+ /* The swap unit can either be for an alternative device name, in which -+ * case we don't need to add the dependency on swap.target because this unit -+ * is following a different unit which will have this dependency added, -+ * or it can be derived from /proc/swaps, in which case it was started -+ * manually, and should not become a dependency of swap.target. */ -+ return 0; - -- nofail = p->nofail; -- noauto = p->noauto; -- } -+ nofail = s->parameters_fragment.nofail; -+ noauto = s->parameters_fragment.noauto; - - if (!noauto) { - if (nofail) - r = unit_add_dependency_by_name_inverse(UNIT(s), UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); - else - r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); -- if (r < 0) -- return r; - } - -- return 0; -+ return r < 0 ? r : 0; - } - - static int swap_verify(Swap *s) { --- -1.7.9.2 - diff --git a/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch b/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch deleted file mode 100644 index 06371697..00000000 --- a/0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 0404c609f399b2092a3de52eef9d75b0dc12e94c Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 12 May 2014 21:26:54 +0200 -Subject: [PATCH] core: sysvcompat - $network should be equivalent to - network-online, rather than network target -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Most likely the facility needed is actual connectivity, rather than whether or not the -network managment daemon is running. - -We also need to explicitly pull in the network-online.target, as it is not active by -default. - -This means {systemd-networkd,NetworkManager}-wait-online.service, can be enabled by default -as part of network-online.target, and only delay boot when some service actively pulls it in. - -See: - -Cc: Pavel Šimerda -Cc: Michal Sekletar ---- - TODO | 4 ---- - src/core/service.c | 8 ++++++-- - 2 files changed, 6 insertions(+), 6 deletions(-) - -Modified by Andrey Borzenkov for openSUSE. -Index: systemd-210/src/core/service.c -=================================================================== ---- systemd-210.orig/src/core/service.c -+++ systemd-210/src/core/service.c -@@ -404,7 +404,7 @@ static int sysv_translate_facility(const - static const char * const table[] = { - /* LSB defined facilities */ - "local_fs", NULL, -- "network", SPECIAL_NETWORK_TARGET, -+ "network", SPECIAL_NETWORK_ONLINE_TARGET, - "named", SPECIAL_NSS_LOOKUP_TARGET, - "portmap", SPECIAL_RPCBIND_TARGET, - "remote_fs", SPECIAL_REMOTE_FS_TARGET, -@@ -881,6 +881,9 @@ static int service_load_sysv_path(Servic - if (r == 0) - continue; - -+ if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && d == UNIT_AFTER && e == _UNIT_DEPENDENCY_INVALID) -+ e = UNIT_WANTS; -+ - if (e != _UNIT_DEPENDENCY_INVALID) - r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); - else diff --git a/0001-core-use-correct-format-string-for-UIDs.patch b/0001-core-use-correct-format-string-for-UIDs.patch deleted file mode 100644 index f0906df0..00000000 --- a/0001-core-use-correct-format-string-for-UIDs.patch +++ /dev/null @@ -1,20 +0,0 @@ -Based on d6239dc4b0cf55a953d6c40890859b85d504ef19 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= -Date: Wed, 25 Jun 2014 14:54:48 +0200 -Subject: [PATCH] core: use correct format string for UIDs - ---- - src/core/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/main.c -+++ src/core/main.c 2014-06-26 09:29:28.182235325 +0000 -@@ -1526,7 +1526,7 @@ int main(int argc, char *argv[]) { - - } else { - _cleanup_free_ char *t = uid_to_name(getuid()); -- log_debug(PACKAGE_STRING " running in user mode for user "PID_FMT"/%s. (" SYSTEMD_FEATURES ")", -+ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", - getuid(), t); - } - diff --git a/0001-detect-virt-Fix-Xen-domU-discovery.patch b/0001-detect-virt-Fix-Xen-domU-discovery.patch deleted file mode 100644 index 8582f560..00000000 --- a/0001-detect-virt-Fix-Xen-domU-discovery.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a71516dfd1858f37712ef52a288bf5fb274383e0 Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Thu, 17 Jul 2014 11:25:37 +0200 -Subject: [PATCH] detect-virt: Fix Xen domU discovery - -The conditional for detection xen virtualization contained a little mistake. -It is checking for i to be empty: 'if (!i) {', but it must check for cap instead, -because: 'cap = strsep(&i, ",")' will set cap to the discovered value and i to -the next value after the separator. -Hence, i would be empty, if there is only control_d in domcap, leading to a wrong -domU detection. - -https://bugs.freedesktop.org/show_bug.cgi?id=77271 ---- - src/shared/virt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/virt.c src/shared/virt.c -index 774915f..20a8d7c 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -173,7 +173,7 @@ int detect_vm(const char **id) { - if (streq(cap, "control_d")) - break; - -- if (!i) { -+ if (!cap) { - _id = "xen"; - r = 1; - } --- -1.7.9.2 - diff --git a/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch b/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch deleted file mode 100644 index d087eeb6..00000000 --- a/0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on 0d522a7a0547982eae9ab1b5971e4bed9c2fbc7c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 24 Apr 2014 08:11:39 +0200 -Subject: [PATCH] errno: make sure to handle the 3 errnos that are aliases for - others properly - ---- - Makefile.am | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- Makefile.am -+++ Makefile.am 2014-05-12 00:00:00.000000000 +0000 -@@ -1078,7 +1078,7 @@ BUILT_SOURCES += \ - - src/shared/errno-list.txt: - $(AM_V_at)$(MKDIR_P) $(dir $@) -- $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+[0-9]/ { print $$2; }' > $@ -+ $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - < /dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' > $@ - - src/shared/errno-from-name.gperf: src/shared/errno-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) -@@ -1090,7 +1090,7 @@ src/shared/errno-from-name.h: src/shared - - src/shared/errno-to-name.h: src/shared/errno-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) -- $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ -+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@ - - # ------------------------------------------------------------------------------ - systemd_SOURCES = \ diff --git a/0001-event-pull-in-sd-event.h-from-event-util.h.patch b/0001-event-pull-in-sd-event.h-from-event-util.h.patch deleted file mode 100644 index e9fc98ce..00000000 --- a/0001-event-pull-in-sd-event.h-from-event-util.h.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 138992534878483de28417dfc61c546bba5cb8ad Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 10 Jul 2014 18:25:08 +0200 -Subject: [PATCH] event: pull in sd-event.h from event-util.h - ---- - src/libsystemd/sd-event/event-util.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/libsystemd/sd-event/event-util.h src/libsystemd/sd-event/event-util.h -index e58020d..e7cad9b 100644 ---- src/libsystemd/sd-event/event-util.h -+++ src/libsystemd/sd-event/event-util.h -@@ -22,6 +22,7 @@ - ***/ - - #include "util.h" -+#include "sd-event.h" - - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event*, sd_event_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event_source*, sd_event_source_unref); --- -1.7.9.2 - diff --git a/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch b/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch deleted file mode 100644 index be9add48..00000000 --- a/0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 9c4495ca561624c2f0085507dd1288ed5f1247c5 Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz -Date: Wed, 12 Mar 2014 19:25:11 +0100 -Subject: [PATCH] gpt-auto-generator: don't return OOM on parentless devices - ---- - src/gpt-auto-generator/gpt-auto-generator.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/gpt-auto-generator/gpt-auto-generator.c -+++ src/gpt-auto-generator/gpt-auto-generator.c 2014-03-18 13:35:11.438235125 +0000 -@@ -254,7 +254,7 @@ static int enumerate_partitions(struct u - - parent = udev_device_get_parent(d); - if (!parent) -- return log_oom(); -+ return 0; - - r = udev_enumerate_add_match_parent(e, parent); - if (r < 0) diff --git a/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 15de6363..00000000 --- a/0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e525326bd07ebf3cabcfd730bc479166723f2d44 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Sun, 2 Mar 2014 10:02:10 -0800 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index db3bc24..0335a71 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -902,3 +902,12 @@ bluetooth:v0129* - - bluetooth:v012A* - ID_VENDOR_FROM_DATABASE=Changzhou Yongse Infotech Co., Ltd -+ -+bluetooth:v012B* -+ ID_VENDOR_FROM_DATABASE=SportIQ -+ -+bluetooth:v012C* -+ ID_VENDOR_FROM_DATABASE=TEMEC Instruments B.V. -+ -+bluetooth:v012D* -+ ID_VENDOR_FROM_DATABASE=Sony Corporation --- -1.7.9.2 - diff --git a/0001-hwdb-fix-case-sensitive-match.patch b/0001-hwdb-fix-case-sensitive-match.patch deleted file mode 100644 index 64642714..00000000 --- a/0001-hwdb-fix-case-sensitive-match.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4c02dd7153f970244950b5e00f7bdfea8d2ff0be Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 17:55:14 +0200 -Subject: [PATCH] hwdb: fix case-sensitive match - ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index d053766..c7ff4e4 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -870,7 +870,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* - ########################################################### - - # Plantronics .Audio 626 DSP --keyboard:usb:v047fpC006* -+keyboard:usb:v047FpC006* - KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute - - ########################################################### --- -1.7.9.2 - diff --git a/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch b/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch deleted file mode 100644 index d3acf899..00000000 --- a/0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 77e8ff6974ffaa6c9954e3d2264d9aa75ef25233 Mon Sep 17 00:00:00 2001 -From: Kieran Clancy -Date: Thu, 27 Feb 2014 16:02:57 +1030 -Subject: [PATCH] hwdb: keymaps for Samsung 900X3E/900X3F - -Keymaps for Samsung 900X3E and 900X3F should be the same as for other -models in the series. - -I have also moved the comment for '# Series 9' to the right place ---- - hwdb/60-keyboard.hwdb | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index edfa842..bd8fd10 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -897,9 +897,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* - KEYBOARD_KEY_a8=! # Fn Lock - Function lock on - KEYBOARD_KEY_a9=! # Fn Lock - Function lock off - -+# Series 7 / 9 - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* --keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDG]*:pvr* -+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* - KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings - KEYBOARD_KEY_a0=!mute # Fn+F6 mute -@@ -909,7 +910,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* - KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up - KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer - --# Series 9 - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr* - KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up - KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down --- -1.7.9.2 - diff --git a/0001-hwdb-update.patch b/0001-hwdb-update.patch deleted file mode 100644 index f487f680..00000000 --- a/0001-hwdb-update.patch +++ /dev/null @@ -1,6590 +0,0 @@ -From 6080625dc833144aca0817d1b9fd23f2fbcdf5c2 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 18 Mar 2014 16:17:51 +0100 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 779 +++++++++++++++++-- - hwdb/20-pci-vendor-model.hwdb | 1671 ++++++++++++++++++++++++++++++++++++----- - hwdb/20-usb-vendor-model.hwdb | 119 ++- - 3 files changed, 2330 insertions(+), 239 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index a51a00a..209b89e 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -13558,6 +13558,9 @@ OUI:40D8551CA* - OUI:40D8551CB* - ID_OUI_FROM_DATABASE=MG S.r.l. - -+OUI:40D8551CC* -+ ID_OUI_FROM_DATABASE=NKT Photonics A/S -+ - OUI:40D8551CD* - ID_OUI_FROM_DATABASE=YXLON International A/S - -@@ -13630,6 +13633,9 @@ OUI:40D8551E3* - OUI:40D8551E4* - ID_OUI_FROM_DATABASE=STEK Ltd - -+OUI:40D85550D* -+ ID_OUI_FROM_DATABASE=Shenzhen MaiWei Cable TV Equipment CO.,LTD. -+ - OUI:40D855EE6* - ID_OUI_FROM_DATABASE=Narinet, Inc. - -@@ -13703,7 +13709,7 @@ OUI:000016* - ID_OUI_FROM_DATABASE=DU PONT PIXEL SYSTEMS . - - OUI:000017* -- ID_OUI_FROM_DATABASE=TEKELEC -+ ID_OUI_FROM_DATABASE=Oracle - - OUI:000018* - ID_OUI_FROM_DATABASE=WEBSTER COMPUTER CORPORATION -@@ -18029,7 +18035,7 @@ OUI:0005BB* - ID_OUI_FROM_DATABASE=Myspace AB - - OUI:0005BC* -- ID_OUI_FROM_DATABASE=Resorsys Ltd. -+ ID_OUI_FROM_DATABASE=Resource Data Management Ltd - - OUI:0005BD* - ID_OUI_FROM_DATABASE=ROAX BV -@@ -18977,7 +18983,7 @@ OUI:0006F7* - ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. - - OUI:0006F8* -- ID_OUI_FROM_DATABASE=CPU Technology, Inc. -+ ID_OUI_FROM_DATABASE=The Boeing Company - - OUI:0006F9* - ID_OUI_FROM_DATABASE=Mitsui Zosen Systems Research Inc. -@@ -19337,7 +19343,7 @@ OUI:00076F* - ID_OUI_FROM_DATABASE=Synoptics Limited - - OUI:000770* -- ID_OUI_FROM_DATABASE=Locusnetworks Corporation -+ ID_OUI_FROM_DATABASE=Ubiquoss Inc - - OUI:000771* - ID_OUI_FROM_DATABASE=Embedded System Corporation -@@ -19616,7 +19622,7 @@ OUI:0007CC* - ID_OUI_FROM_DATABASE=Kaba Benzing GmbH - - OUI:0007CD* -- ID_OUI_FROM_DATABASE=NMTEL Co., Ltd. -+ ID_OUI_FROM_DATABASE=Kumoh Electronic Co, Ltd - - OUI:0007CE* - ID_OUI_FROM_DATABASE=Cabletime Limited -@@ -21584,7 +21590,7 @@ OUI:000A78* - ID_OUI_FROM_DATABASE=OLITEC - - OUI:000A79* -- ID_OUI_FROM_DATABASE=Allied Telesis K.K. corega division -+ ID_OUI_FROM_DATABASE=corega K.K - - OUI:000A7A* - ID_OUI_FROM_DATABASE=Kyoritsu Electric Co., Ltd. -@@ -22643,7 +22649,7 @@ OUI:000BDA* - ID_OUI_FROM_DATABASE=EyeCross Co.,Inc. - - OUI:000BDB* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:000BDC* - ID_OUI_FROM_DATABASE=AKCP -@@ -23774,7 +23780,7 @@ OUI:000D55* - ID_OUI_FROM_DATABASE=SANYCOM Technology Co.,Ltd - - OUI:000D56* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:000D57* - ID_OUI_FROM_DATABASE=Fujitsu I-Network Systems Limited. -@@ -25118,7 +25124,7 @@ OUI:000F1E* - ID_OUI_FROM_DATABASE=Chengdu KT Electric Co.of High & New Technology - - OUI:000F1F* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:000F20* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company -@@ -26435,7 +26441,7 @@ OUI:0010D5* - ID_OUI_FROM_DATABASE=IMASDE CANARIAS, S.A. - - OUI:0010D6* -- ID_OUI_FROM_DATABASE=ITT - A/CD -+ ID_OUI_FROM_DATABASE=Exelis - - OUI:0010D7* - ID_OUI_FROM_DATABASE=ARGOSY RESEARCH INC. -@@ -26762,7 +26768,7 @@ OUI:001142* - ID_OUI_FROM_DATABASE=e-SMARTCOM INC. - - OUI:001143* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001144* - ID_OUI_FROM_DATABASE=Assurance Technology Corp -@@ -27518,7 +27524,7 @@ OUI:00123E* - ID_OUI_FROM_DATABASE=ERUNE technology Co., Ltd. - - OUI:00123F* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001240* - ID_OUI_FROM_DATABASE=AMOI ELECTRONICS CO.,LTD -@@ -28439,7 +28445,7 @@ OUI:001371* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - - OUI:001372* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001373* - ID_OUI_FROM_DATABASE=BLwave Electronics Co., Ltd -@@ -28967,7 +28973,7 @@ OUI:001421* - ID_OUI_FROM_DATABASE=Total Wireless Technologies Pte. Ltd. - - OUI:001422* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001423* - ID_OUI_FROM_DATABASE=J-S Co. NEUROCOM -@@ -30104,7 +30110,7 @@ OUI:00159C* - ID_OUI_FROM_DATABASE=B-KYUNG SYSTEM Co.,Ltd. - - OUI:00159D* -- ID_OUI_FROM_DATABASE=Minicom Advanced Systems ltd -+ ID_OUI_FROM_DATABASE=Tripp Lite - - OUI:00159E* - ID_OUI_FROM_DATABASE=Mad Catz Interactive Inc -@@ -30224,7 +30230,7 @@ OUI:0015C4* - ID_OUI_FROM_DATABASE=FLOVEL CO., LTD. - - OUI:0015C5* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:0015C6* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. -@@ -30914,7 +30920,7 @@ OUI:0016AA* - ID_OUI_FROM_DATABASE=Kei Communication Technology Inc. - - OUI:0016AB* -- ID_OUI_FROM_DATABASE=PBI-Dansensor A/S -+ ID_OUI_FROM_DATABASE=Dansensor A/S - - OUI:0016AC* - ID_OUI_FROM_DATABASE=Toho Technology Corp. -@@ -32342,7 +32348,7 @@ OUI:00188A* - ID_OUI_FROM_DATABASE=Infinova LLC - - OUI:00188B* -- ID_OUI_FROM_DATABASE=Dell ESG PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:00188C* - ID_OUI_FROM_DATABASE=Mobile Action Technology Inc. -@@ -35348,7 +35354,7 @@ OUI:001C74* - ID_OUI_FROM_DATABASE=Syswan Technologies Inc. - - OUI:001C75* -- ID_OUI_FROM_DATABASE=RF Systems GmbH -+ ID_OUI_FROM_DATABASE=Segnet Ltd. - - OUI:001C76* - ID_OUI_FROM_DATABASE=The Wandsworth Group Ltd -@@ -35831,7 +35837,7 @@ OUI:001D15* - ID_OUI_FROM_DATABASE=Shenzhen Dolphin Electronic Co., Ltd - - OUI:001D16* -- ID_OUI_FROM_DATABASE=Efixo -+ ID_OUI_FROM_DATABASE=SFR - - OUI:001D17* - ID_OUI_FROM_DATABASE=Digital Sky Corporation -@@ -35957,7 +35963,7 @@ OUI:001D3F* - ID_OUI_FROM_DATABASE=Mitron Pty Ltd - - OUI:001D40* -- ID_OUI_FROM_DATABASE=Living Independently Group, Inc. -+ ID_OUI_FROM_DATABASE=Intel – GE Care Innovations LLC - - OUI:001D41* - ID_OUI_FROM_DATABASE=Hardy Instruments -@@ -35969,7 +35975,7 @@ OUI:001D43* - ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. - - OUI:001D44* -- ID_OUI_FROM_DATABASE=Krohne -+ ID_OUI_FROM_DATABASE=KROHNE - - OUI:001D45* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. -@@ -40316,7 +40322,7 @@ OUI:0022EE* - ID_OUI_FROM_DATABASE=Algo Communication Products Ltd - - OUI:0022EF* -- ID_OUI_FROM_DATABASE=Ibis Tek, LLC -+ ID_OUI_FROM_DATABASE=iWDL Technologies - - OUI:0022F0* - ID_OUI_FROM_DATABASE=3 Greens Aviation Limited -@@ -40361,7 +40367,7 @@ OUI:0022FE* - ID_OUI_FROM_DATABASE=Microprocessor Designs Inc - - OUI:0022FF* -- ID_OUI_FROM_DATABASE=NIVIS LLC -+ ID_OUI_FROM_DATABASE=iWDL Technologies - - OUI:002300* - ID_OUI_FROM_DATABASE=Cayee Computer Ltd. -@@ -41258,7 +41264,7 @@ OUI:00242E* - ID_OUI_FROM_DATABASE=Datastrip Inc. - - OUI:00242F* -- ID_OUI_FROM_DATABASE=VirtenSys Inc -+ ID_OUI_FROM_DATABASE=Micron - - OUI:002430* - ID_OUI_FROM_DATABASE=Ruby Tech Corp. -@@ -43028,7 +43034,7 @@ OUI:002686* - ID_OUI_FROM_DATABASE=Quantenna Communcations, Inc. - - OUI:002687* -- ID_OUI_FROM_DATABASE=ALLIED TELESIS, K.K corega division. -+ ID_OUI_FROM_DATABASE=Corega K.K - - OUI:002688* - ID_OUI_FROM_DATABASE=Juniper Networks -@@ -46118,7 +46124,7 @@ OUI:00605F* - ID_OUI_FROM_DATABASE=NIPPON UNISOFT CORPORATION - - OUI:006060* -- ID_OUI_FROM_DATABASE=DAWNING TECHNOLOGIES, INC. -+ ID_OUI_FROM_DATABASE=Data Innovations North America - - OUI:006061* - ID_OUI_FROM_DATABASE=WHISTLE COMMUNICATIONS CORP. -@@ -46621,12 +46627,18 @@ OUI:0070B0* - OUI:0070B3* - ID_OUI_FROM_DATABASE=DATA RECALL LTD. - -+OUI:0071CC* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:00738D* - ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp - - OUI:0073E0* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:007532* -+ ID_OUI_FROM_DATABASE=INID BV -+ - OUI:0075E1* - ID_OUI_FROM_DATABASE=Ampt, LLC - -@@ -48623,7 +48635,7 @@ OUI:00A086* - ID_OUI_FROM_DATABASE=AMBER WAVE SYSTEMS, INC. - - OUI:00A087* -- ID_OUI_FROM_DATABASE=Zarlink Semiconductor Ltd. -+ ID_OUI_FROM_DATABASE=Microsemi Corporation - - OUI:00A088* - ID_OUI_FROM_DATABASE=ESSENTIAL COMMUNICATIONS -@@ -49009,6 +49021,9 @@ OUI:00AA3C* - OUI:00AA70* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:00ACE0* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:00B009* - ID_OUI_FROM_DATABASE=Grass Valley Group - -@@ -51550,6 +51565,9 @@ OUI:00E0FE* - OUI:00E0FF* - ID_OUI_FROM_DATABASE=SECURITY DYNAMICS TECHNOLOGIES, Inc. - -+OUI:00E16D* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:00E175* - ID_OUI_FROM_DATABASE=AK-Systems Ltd - -@@ -51703,6 +51721,9 @@ OUI:0444A1* - OUI:044665* - ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. - -+OUI:04489A* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:044A50* - ID_OUI_FROM_DATABASE=Ramaxel Technology (Shenzhen) limited company - -@@ -51727,6 +51748,9 @@ OUI:045453* - OUI:0455CA* - ID_OUI_FROM_DATABASE=BriView (Xiamen) Corp. - -+OUI:04572F* -+ ID_OUI_FROM_DATABASE=Sertel Electronics UK Ltd -+ - OUI:04586F* - ID_OUI_FROM_DATABASE=Sichuan Whayer information industry Co.,LTD - -@@ -51892,6 +51916,9 @@ OUI:04E548* - OUI:04E662* - ID_OUI_FROM_DATABASE=Acroname Inc. - -+OUI:04E676* -+ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. -+ - OUI:04E9E5* - ID_OUI_FROM_DATABASE=PJRC.COM, LLC - -@@ -52486,6 +52513,9 @@ OUI:085AE0* - OUI:085B0E* - ID_OUI_FROM_DATABASE=Fortinet, Inc. - -+OUI:085DDD* -+ ID_OUI_FROM_DATABASE=Mercury Corporation -+ - OUI:08606E* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -@@ -52504,6 +52534,9 @@ OUI:086DF2* - OUI:087045* - ID_OUI_FROM_DATABASE=Apple - -+OUI:0874F6* -+ ID_OUI_FROM_DATABASE=Winterhalter Gastronom GmbH -+ - OUI:087572* - ID_OUI_FROM_DATABASE=Obelux Oy - -@@ -52573,6 +52606,9 @@ OUI:08ACA5* - OUI:08AF78* - ID_OUI_FROM_DATABASE=Totus Solutions, Inc. - -+OUI:08B2A3* -+ ID_OUI_FROM_DATABASE=Cynny Italia S.r.L. -+ - OUI:08B4CF* - ID_OUI_FROM_DATABASE=Abicom International - -@@ -52615,6 +52651,9 @@ OUI:08D5C0* - OUI:08D833* - ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co,.Ltd - -+OUI:08DF1F* -+ ID_OUI_FROM_DATABASE=Bose Corporation -+ - OUI:08E5DA* - ID_OUI_FROM_DATABASE=NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD. - -@@ -52687,6 +52726,9 @@ OUI:0C191F* - OUI:0C1DC2* - ID_OUI_FROM_DATABASE=SeAH Networks - -+OUI:0C2026* -+ ID_OUI_FROM_DATABASE=noax Technologies AG -+ - OUI:0C2724* - ID_OUI_FROM_DATABASE=Cisco - -@@ -52756,6 +52798,9 @@ OUI:0C5CD8* - OUI:0C6076* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:0C63FC* -+ ID_OUI_FROM_DATABASE=Nanjing Signway Technology Co., Ltd -+ - OUI:0C6803* - ID_OUI_FROM_DATABASE=Cisco - -@@ -52984,6 +53029,9 @@ OUI:1000FD* - OUI:1001CA* - ID_OUI_FROM_DATABASE=Ashley Butterworth - -+OUI:1005CA* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:10090C* - ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. - -@@ -53008,6 +53056,9 @@ OUI:100E2B* - OUI:100E7E* - ID_OUI_FROM_DATABASE=Juniper networks - -+OUI:100F18* -+ ID_OUI_FROM_DATABASE=Fu Gang Electronic(KunShan)CO.,LTD -+ - OUI:1010B6* - ID_OUI_FROM_DATABASE=McCain Inc - -@@ -53158,6 +53209,9 @@ OUI:1083D2* - OUI:10880F* - ID_OUI_FROM_DATABASE=Daruma Telecomunicações e Informática S.A. - -+OUI:1088CE* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:108CCF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -53317,6 +53371,9 @@ OUI:1423D7* - OUI:142BD2* - ID_OUI_FROM_DATABASE=Armtel Ltd. - -+OUI:142BD6* -+ ID_OUI_FROM_DATABASE=Guangdong Appscomm Co.,Ltd -+ - OUI:142D27* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -53329,6 +53386,9 @@ OUI:142DF5* - OUI:14307A* - ID_OUI_FROM_DATABASE=Avermetrics - -+OUI:1430C6* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:14358B* - ID_OUI_FROM_DATABASE=Mediabridge Products, LLC. - -@@ -53344,6 +53404,9 @@ OUI:14373B* - OUI:143AEA* - ID_OUI_FROM_DATABASE=Dynapower Company LLC - -+OUI:143DF2* -+ ID_OUI_FROM_DATABASE=Beijing Shidai Hongyuan Network Communication Co.,Ltd -+ - OUI:143E60* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -53368,6 +53431,9 @@ OUI:144C1A* - OUI:145412* - ID_OUI_FROM_DATABASE=Entis Co., Ltd. - -+OUI:145645* -+ ID_OUI_FROM_DATABASE=Savitech Corp. -+ - OUI:145A05* - ID_OUI_FROM_DATABASE=Apple - -@@ -53440,6 +53506,9 @@ OUI:14B126* - OUI:14B1C8* - ID_OUI_FROM_DATABASE=InfiniWing, Inc. - -+OUI:14B484* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:14B73D* - ID_OUI_FROM_DATABASE=ARCHEAN Technologies - -@@ -53489,7 +53558,7 @@ OUI:14EB33* - ID_OUI_FROM_DATABASE=BSMediasoft Co., Ltd. - - OUI:14EDA5* -- ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme -+ ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme - - OUI:14EE9D* - ID_OUI_FROM_DATABASE=AirNav Systems LLC -@@ -53572,6 +53641,9 @@ OUI:182032* - OUI:1820A6* - ID_OUI_FROM_DATABASE=Sage Co., Ltd. - -+OUI:18227E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:182666* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -53726,7 +53798,7 @@ OUI:18A905* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - - OUI:18A99B* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:18AA45* - ID_OUI_FROM_DATABASE=Fon Technology -@@ -53779,6 +53851,9 @@ OUI:18CC23* - OUI:18D071* - ID_OUI_FROM_DATABASE=DASAN SMC, Inc. - -+OUI:18D5B6* -+ ID_OUI_FROM_DATABASE=SMG Holdings LLC -+ - OUI:18D66A* - ID_OUI_FROM_DATABASE=Inmarsat - -@@ -53824,6 +53899,9 @@ OUI:18F87A* - OUI:18FA6F* - ID_OUI_FROM_DATABASE=ISC applied systems corp - -+OUI:18FB7B* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:18FC9F* - ID_OUI_FROM_DATABASE=Changhe Electronics Co., Ltd. - -@@ -53863,9 +53941,15 @@ OUI:1C184A* - OUI:1C19DE* - ID_OUI_FROM_DATABASE=eyevis GmbH - -+OUI:1C1AC0* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:1C1B68* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:1C1CFD* -+ ID_OUI_FROM_DATABASE=Dalian Hi-Think Computer Technology, Corp -+ - OUI:1C1D67* - ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd - -@@ -54157,6 +54241,9 @@ OUI:201D03* - OUI:2021A5* - ID_OUI_FROM_DATABASE=LG Electronics Inc - -+OUI:202564* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:202598* - ID_OUI_FROM_DATABASE=Teleview - -@@ -54202,6 +54289,9 @@ OUI:204E6B* - OUI:204E7F* - ID_OUI_FROM_DATABASE=NETGEAR - -+OUI:2053CA* -+ ID_OUI_FROM_DATABASE=Risk Technology Ltd -+ - OUI:205476* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -@@ -54211,6 +54301,9 @@ OUI:205721* - OUI:2059A0* - ID_OUI_FROM_DATABASE=Paragon Technologies Inc. - -+OUI:205A00* -+ ID_OUI_FROM_DATABASE=Coval -+ - OUI:205B5E* - ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd - -@@ -54265,12 +54358,18 @@ OUI:20918A* - OUI:2091D9* - ID_OUI_FROM_DATABASE=I'M SPA - -+OUI:209AE9* -+ ID_OUI_FROM_DATABASE=Volacomm Co., Ltd -+ - OUI:209BA5* - ID_OUI_FROM_DATABASE=JIAXING GLEAD Electronics Co.,Ltd - - OUI:20A2E7* - ID_OUI_FROM_DATABASE=Lee-Dickens Ltd - -+OUI:20A787* -+ ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited -+ - OUI:20AA25* - ID_OUI_FROM_DATABASE=IP-NET LLC - -@@ -54394,6 +54493,9 @@ OUI:24050F* - OUI:240917* - ID_OUI_FROM_DATABASE=Devlin Electronics Limited - -+OUI:240A11* -+ ID_OUI_FROM_DATABASE=TCT Mobile Limited -+ - OUI:240A64* - ID_OUI_FROM_DATABASE=AzureWaveTechnologies,Inc - -@@ -54691,9 +54793,15 @@ OUI:282CB2* - OUI:283152* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:2832C5* -+ ID_OUI_FROM_DATABASE=Humax.co.,ltd -+ - OUI:283410* - ID_OUI_FROM_DATABASE=Enigma Diagnostics Limited - -+OUI:2834A2* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:283737* - ID_OUI_FROM_DATABASE=Apple - -@@ -54778,6 +54886,9 @@ OUI:2872F0* - OUI:287994* - ID_OUI_FROM_DATABASE=Realplay Digital Technology(Shenzhen) Co.,Ltd - -+OUI:288023* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:28852D* - ID_OUI_FROM_DATABASE=Touch Networks - -@@ -55024,6 +55135,9 @@ OUI:2C3731* - OUI:2C3996* - ID_OUI_FROM_DATABASE=SAGEMCOM - -+OUI:2C39C1* -+ ID_OUI_FROM_DATABASE=Ciena Corporation -+ - OUI:2C3A28* - ID_OUI_FROM_DATABASE=Fagor Electrónica - -@@ -55069,6 +55183,9 @@ OUI:2C5A05* - OUI:2C5AA3* - ID_OUI_FROM_DATABASE=PROMATE ELECTRONIC CO.LTD - -+OUI:2C5BE1* -+ ID_OUI_FROM_DATABASE=Centripetal Networks, Inc -+ - OUI:2C5D93* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -@@ -55117,6 +55234,9 @@ OUI:2C8065* - OUI:2C8158* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd - -+OUI:2C8A72* -+ ID_OUI_FROM_DATABASE=HTC Corporation -+ - OUI:2C8BF2* - ID_OUI_FROM_DATABASE=Hitachi Metals America Ltd - -@@ -55135,6 +55255,9 @@ OUI:2C957F* - OUI:2C9717* - ID_OUI_FROM_DATABASE=I.C.Y. B.V. - -+OUI:2C9AA4* -+ ID_OUI_FROM_DATABASE=NGI SpA -+ - OUI:2C9E5F* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -55327,6 +55450,9 @@ OUI:3055ED* - OUI:3057AC* - ID_OUI_FROM_DATABASE=IRLAB LTD. - -+OUI:3059B7* -+ ID_OUI_FROM_DATABASE=Microsoft -+ - OUI:305D38* - ID_OUI_FROM_DATABASE=Beissbarth - -@@ -55387,6 +55513,9 @@ OUI:308CFB* - OUI:3090AB* - ID_OUI_FROM_DATABASE=Apple - -+OUI:30918F* -+ ID_OUI_FROM_DATABASE=Technicolor -+ - OUI:3092F6* - ID_OUI_FROM_DATABASE=SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD - -@@ -55417,12 +55546,18 @@ OUI:30B5C2* - OUI:30C750* - ID_OUI_FROM_DATABASE=MIC Technology Group - -+OUI:30C7AE* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:30C82A* - ID_OUI_FROM_DATABASE=Wi-Next s.r.l. - - OUI:30CDA7* - ID_OUI_FROM_DATABASE=Samsung Electronics ITS, Printer division - -+OUI:30D17E* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:30D357* - ID_OUI_FROM_DATABASE=Logosol, Inc. - -@@ -55462,6 +55597,9 @@ OUI:30F70D* - OUI:30F7C5* - ID_OUI_FROM_DATABASE=Apple - -+OUI:30F7D7* -+ ID_OUI_FROM_DATABASE=Thread Technology Co., Ltd -+ - OUI:30F9ED* - ID_OUI_FROM_DATABASE=Sony Corporation - -@@ -55474,6 +55612,9 @@ OUI:3407FB* - OUI:340804* - ID_OUI_FROM_DATABASE=D-Link Corporation - -+OUI:340AFF* -+ ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd -+ - OUI:3413A8* - ID_OUI_FROM_DATABASE=Mediplan Limited - -@@ -55484,7 +55625,7 @@ OUI:34159E* - ID_OUI_FROM_DATABASE=Apple - - OUI:3417EB* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:341A4C* - ID_OUI_FROM_DATABASE=SHENZHEN WEIBU ELECTRONICS CO.,LTD. -@@ -55534,6 +55675,9 @@ OUI:344F5C* - OUI:344F69* - ID_OUI_FROM_DATABASE=EKINOPS SAS - -+OUI:3451AA* -+ ID_OUI_FROM_DATABASE=JID GLOBAL -+ - OUI:3451C9* - ID_OUI_FROM_DATABASE=Apple - -@@ -55543,6 +55687,9 @@ OUI:345B11* - OUI:345C40* - ID_OUI_FROM_DATABASE=Cargt Holdings LLC - -+OUI:345D10* -+ ID_OUI_FROM_DATABASE=Wytek -+ - OUI:346178* - ID_OUI_FROM_DATABASE=The Boeing Company - -@@ -55573,6 +55720,9 @@ OUI:347E39* - OUI:348137* - ID_OUI_FROM_DATABASE=UNICARD SA - -+OUI:3481C4* -+ ID_OUI_FROM_DATABASE=AVM GmbH -+ - OUI:3482DE* - ID_OUI_FROM_DATABASE=Kayo Technology, Inc. - -@@ -55741,6 +55891,9 @@ OUI:34E0D7* - OUI:34E2FD* - ID_OUI_FROM_DATABASE=Apple - -+OUI:34E42A* -+ ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. -+ - OUI:34EF44* - ID_OUI_FROM_DATABASE=2Wire - -@@ -55933,6 +56086,9 @@ OUI:38B74D* - OUI:38BB23* - ID_OUI_FROM_DATABASE=OzVision America LLC - -+OUI:38BB3C* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:38BC1A* - ID_OUI_FROM_DATABASE=Meizu technology co.,ltd - -@@ -56224,6 +56380,9 @@ OUI:3CA72B* - OUI:3CA9F4* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:3CAB8E* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:3CB15B* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -56311,6 +56470,9 @@ OUI:3CF72A* - OUI:3CF748* - ID_OUI_FROM_DATABASE=Shenzhen Linsn Technology Development Co.,Ltd - -+OUI:3CF808* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:3CFB96* - ID_OUI_FROM_DATABASE=Emcraft Systems LLC - -@@ -56341,6 +56503,9 @@ OUI:4013D9* - OUI:401597* - ID_OUI_FROM_DATABASE=Protect America, Inc. - -+OUI:40167E* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:40169F* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO., LTD. - -@@ -56392,6 +56557,9 @@ OUI:404022* - OUI:40406B* - ID_OUI_FROM_DATABASE=Icomera - -+OUI:4045DA* -+ ID_OUI_FROM_DATABASE=Spreadtrum Communications (Shanghai) Co., Ltd. -+ - OUI:404A03* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -@@ -56527,6 +56695,9 @@ OUI:40B2C8* - OUI:40B395* - ID_OUI_FROM_DATABASE=Apple - -+OUI:40B3CD* -+ ID_OUI_FROM_DATABASE=Chiyoda Electronics Co.,Ltd. -+ - OUI:40B3FC* - ID_OUI_FROM_DATABASE=Logital Co. Limited - -@@ -56596,6 +56767,9 @@ OUI:40F02F* - OUI:40F14C* - ID_OUI_FROM_DATABASE=ISE Europe SPRL - -+OUI:40F201* -+ ID_OUI_FROM_DATABASE=SAGEMCOM -+ - OUI:40F2E9* - ID_OUI_FROM_DATABASE=IBM - -@@ -56632,6 +56806,9 @@ OUI:44184F* - OUI:4419B6* - ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. - -+OUI:441E91* -+ ID_OUI_FROM_DATABASE=ARVIDA Intelligent Electronics Technology Co.,Ltd. -+ - OUI:441EA1* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -@@ -56776,6 +56953,9 @@ OUI:448312* - OUI:448500* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:4486C1* -+ ID_OUI_FROM_DATABASE=Siemens Low Voltage & Products -+ - OUI:4487FC* - ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. - -@@ -56860,6 +57040,9 @@ OUI:44D2CA* - OUI:44D3CA* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:44D4E0* -+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB -+ - OUI:44D63D* - ID_OUI_FROM_DATABASE=Talari Networks - -@@ -56920,6 +57103,9 @@ OUI:48174C* - OUI:481842* - ID_OUI_FROM_DATABASE=Shanghai Winaas Co. Equipment Co. Ltd. - -+OUI:481A84* -+ ID_OUI_FROM_DATABASE=Pointer Telocation Ltd -+ - OUI:481BD2* - ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. - -@@ -56950,9 +57136,15 @@ OUI:4846F1* - OUI:4846FB* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:4851B7* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:485261* - ID_OUI_FROM_DATABASE=SOREEL - -+OUI:485929* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:485A3F* - ID_OUI_FROM_DATABASE=WISOL - -@@ -56971,6 +57163,9 @@ OUI:4860BC* - OUI:4861A3* - ID_OUI_FROM_DATABASE=Concern "Axion" JSC - -+OUI:486276* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:486B91* - ID_OUI_FROM_DATABASE=Fleetwood Group Inc. - -@@ -56986,6 +57181,9 @@ OUI:487119* - OUI:48746E* - ID_OUI_FROM_DATABASE=Apple - -+OUI:488244* -+ ID_OUI_FROM_DATABASE=Life Fitness / Div. of Brunswick -+ - OUI:488E42* - ID_OUI_FROM_DATABASE=DIGALOG GmbH - -@@ -57046,15 +57244,24 @@ OUI:48CB6E* - OUI:48D0CF* - ID_OUI_FROM_DATABASE=Universal Electronics, Inc. - -+OUI:48D18E* -+ ID_OUI_FROM_DATABASE=Metis Communication Co.,Ltd -+ - OUI:48D224* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - - OUI:48D54C* - ID_OUI_FROM_DATABASE=Jeda Networks - -+OUI:48D705* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:48D7FF* - ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH - -+OUI:48D855* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY -+ - OUI:48D8FE* - ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. - -@@ -57136,6 +57343,9 @@ OUI:4C0F6E* - OUI:4C0FC7* - ID_OUI_FROM_DATABASE=Earda Electronics Co.,Ltd - -+OUI:4C11BF* -+ ID_OUI_FROM_DATABASE=ZHEJIANG DAHUA TECHNOLOGY CO.,LTD. -+ - OUI:4C1480* - ID_OUI_FROM_DATABASE=NOREGON SYSTEMS, INC - -@@ -57178,6 +57388,9 @@ OUI:4C322D* - OUI:4C32D9* - ID_OUI_FROM_DATABASE=M Rutty Holdings Pty. Ltd. - -+OUI:4C3909* -+ ID_OUI_FROM_DATABASE=HPL Electric & Power Private Limited -+ - OUI:4C3910* - ID_OUI_FROM_DATABASE=Newtek Electronics co., Ltd. - -@@ -57478,9 +57691,15 @@ OUI:505663* - OUI:5056A8* - ID_OUI_FROM_DATABASE=Jolla Ltd - -+OUI:5056BF* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD -+ - OUI:5057A8* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:505800* -+ ID_OUI_FROM_DATABASE=WyTec International, Inc. -+ - OUI:505AC6* - ID_OUI_FROM_DATABASE=GUANGDONG SUPER TELECOM CO.,LTD. - -@@ -57601,6 +57820,9 @@ OUI:50C271* - OUI:50C58D* - ID_OUI_FROM_DATABASE=Juniper Networks - -+OUI:50C7BF* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:50C971* - ID_OUI_FROM_DATABASE=GN Netcom A/S - -@@ -57706,6 +57928,9 @@ OUI:54271E* - OUI:542A9C* - ID_OUI_FROM_DATABASE=LSY Defense, LLC. - -+OUI:542AA2* -+ ID_OUI_FROM_DATABASE=Alpha Networks Inc. -+ - OUI:542CEA* - ID_OUI_FROM_DATABASE=PROTECTRON - -@@ -57739,9 +57964,15 @@ OUI:544408* - OUI:54466B* - ID_OUI_FROM_DATABASE=Shenzhen CZTIC Electronic Technology Co., Ltd - -+OUI:544A00* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:544A05* - ID_OUI_FROM_DATABASE=wenglor sensoric gmbh - -+OUI:544A16* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:5453ED* - ID_OUI_FROM_DATABASE=Sony Corporation - -@@ -57844,6 +58075,9 @@ OUI:54B620* - OUI:54BEF7* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -+OUI:54C80F* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:54CDA7* - ID_OUI_FROM_DATABASE=Fujian Shenzhou Electronic Co.,Ltd - -@@ -57886,6 +58120,12 @@ OUI:54E6FC* - OUI:54EAA8* - ID_OUI_FROM_DATABASE=Apple, Inc. - -+OUI:54EE75* -+ ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. -+ -+OUI:54EF92* -+ ID_OUI_FROM_DATABASE=Shenzhen Elink Technology Co., LTD -+ - OUI:54F5B6* - ID_OUI_FROM_DATABASE=ORIENTAL PACIFIC INTERNATIONAL LIMITED - -@@ -57928,12 +58168,18 @@ OUI:581CBD* - OUI:581D91* - ID_OUI_FROM_DATABASE=Advanced Mobile Telecom co.,ltd. - -+OUI:581F67* -+ ID_OUI_FROM_DATABASE=Open-m technology limited -+ - OUI:581FAA* - ID_OUI_FROM_DATABASE=Apple - - OUI:581FEF* - ID_OUI_FROM_DATABASE=Tuttnaer LTD - -+OUI:58238C* -+ ID_OUI_FROM_DATABASE=Technicolor CH USA -+ - OUI:582EFE* - ID_OUI_FROM_DATABASE=Lighting Science Group - -@@ -58123,6 +58369,9 @@ OUI:58DB8D* - OUI:58E02C* - ID_OUI_FROM_DATABASE=Micro Technic A/S - -+OUI:58E326* -+ ID_OUI_FROM_DATABASE=Compass Technologies Inc. -+ - OUI:58E476* - ID_OUI_FROM_DATABASE=CENTRON COMMUNICATIONS TECHNOLOGIES FUJIAN CO.,LTD - -@@ -58213,6 +58462,9 @@ OUI:5C260A* - OUI:5C2AEF* - ID_OUI_FROM_DATABASE=Open Access Pty Ltd - -+OUI:5C313E* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:5C3327* - ID_OUI_FROM_DATABASE=Spazio Italia srl - -@@ -58411,6 +58663,9 @@ OUI:5CF370* - OUI:5CF3FC* - ID_OUI_FROM_DATABASE=IBM Corp - -+OUI:5CF4AB* -+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp -+ - OUI:5CF50D* - ID_OUI_FROM_DATABASE=Institute of microelectronic applications - -@@ -58561,6 +58816,9 @@ OUI:60748D* - OUI:607688* - ID_OUI_FROM_DATABASE=Velodyne - -+OUI:60812B* -+ ID_OUI_FROM_DATABASE=Custom Control Concepts -+ - OUI:6083B2* - ID_OUI_FROM_DATABASE=GkWare e.K. - -@@ -58585,9 +58843,15 @@ OUI:608C2B* - OUI:608D17* - ID_OUI_FROM_DATABASE=Sentrus Government Systems Division, Inc - -+OUI:608F5C* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:609084* - ID_OUI_FROM_DATABASE=DSSD Inc - -+OUI:609217* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:609AA4* - ID_OUI_FROM_DATABASE=GVI SECURITY INC. - -@@ -58615,6 +58879,9 @@ OUI:60B3C4* - OUI:60B606* - ID_OUI_FROM_DATABASE=Phorus - -+OUI:60B617* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:60B933* - ID_OUI_FROM_DATABASE=Deutron Electronics Corp. - -@@ -58633,6 +58900,9 @@ OUI:60BD91* - OUI:60BEB5* - ID_OUI_FROM_DATABASE=Motorola Mobility LLC - -+OUI:60C1CB* -+ ID_OUI_FROM_DATABASE=Fujian Great Power PLC Equipment Co.,Ltd -+ - OUI:60C397* - ID_OUI_FROM_DATABASE=2Wire Inc - -@@ -58681,6 +58951,9 @@ OUI:60DE44* - OUI:60E00E* - ID_OUI_FROM_DATABASE=SHINSEI ELECTRONICS CO LTD - -+OUI:60E327* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:60E956* - ID_OUI_FROM_DATABASE=Ayla Networks, Inc - -@@ -58753,6 +59026,9 @@ OUI:640F28* - OUI:641084* - ID_OUI_FROM_DATABASE=HEXIUM Technical Development Co., Ltd. - -+OUI:641225* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:64168D* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -58966,6 +59242,9 @@ OUI:64A3CB* - OUI:64A769* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:64A7DD* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:64A837* - ID_OUI_FROM_DATABASE=Juni Korea Co., Ltd - -@@ -59062,6 +59341,9 @@ OUI:64E8E6* - OUI:64E950* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:64EAC5* -+ ID_OUI_FROM_DATABASE=SiboTech Automation Co., Ltd. -+ - OUI:64EB8C* - ID_OUI_FROM_DATABASE=Seiko Epson Corporation - -@@ -59131,6 +59413,9 @@ OUI:681FD8* - OUI:68234B* - ID_OUI_FROM_DATABASE=Nihon Dengyo Kousaku - -+OUI:6828BA* -+ ID_OUI_FROM_DATABASE=Dejai -+ - OUI:682DDC* - ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD - -@@ -59188,6 +59473,9 @@ OUI:6869F2* - OUI:686E23* - ID_OUI_FROM_DATABASE=Wi3 Inc. - -+OUI:686E48* -+ ID_OUI_FROM_DATABASE=Prophet Electronic Technology Corp.,Ltd -+ - OUI:687251* - ID_OUI_FROM_DATABASE=Ubiquiti Networks - -@@ -59332,6 +59620,9 @@ OUI:68DB96* - OUI:68DCE8* - ID_OUI_FROM_DATABASE=PacketStorm Communications - -+OUI:68DFDD* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:68E41F* - ID_OUI_FROM_DATABASE=Unglaube Identech GmbH - -@@ -59377,12 +59668,18 @@ OUI:6C0E0D* - OUI:6C0F6A* - ID_OUI_FROM_DATABASE=JDC Tech Co., Ltd. - -+OUI:6C14F7* -+ ID_OUI_FROM_DATABASE=Erhardt+Leimer GmbH -+ - OUI:6C15F9* - ID_OUI_FROM_DATABASE=Nautronix Limited - - OUI:6C1811* - ID_OUI_FROM_DATABASE=Decatur Electronics - -+OUI:6C198F* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:6C2056* - ID_OUI_FROM_DATABASE=Cisco - -@@ -59395,6 +59692,9 @@ OUI:6C23B9* - OUI:6C2995* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:6C2C06* -+ ID_OUI_FROM_DATABASE=OOO NPP Systemotechnika-NN -+ - OUI:6C2E33* - ID_OUI_FROM_DATABASE=Accelink Technologies Co.,Ltd. - -@@ -59539,6 +59839,9 @@ OUI:6CA906* - OUI:6CA96F* - ID_OUI_FROM_DATABASE=TransPacket AS - -+OUI:6CAAB3* -+ ID_OUI_FROM_DATABASE=Ruckus Wireless -+ - OUI:6CAB4D* - ID_OUI_FROM_DATABASE=Digital Payment Technologies - -@@ -59608,6 +59911,9 @@ OUI:6CE983* - OUI:6CECA1* - ID_OUI_FROM_DATABASE=SHENZHEN CLOU ELECTRONICS CO. LTD. - -+OUI:6CECEB* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:6CF049* - ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. - -@@ -59623,6 +59929,9 @@ OUI:6CF97C* - OUI:6CFA58* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:6CFAA7* -+ ID_OUI_FROM_DATABASE=AMPAK Technology Inc. -+ - OUI:6CFDB9* - ID_OUI_FROM_DATABASE=Proware Technologies Co Ltd. - -@@ -59686,6 +59995,9 @@ OUI:702F97* - OUI:703018* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:70305D* -+ ID_OUI_FROM_DATABASE=Ubiquoss Inc -+ - OUI:70305E* - ID_OUI_FROM_DATABASE=Nanjing Zhongke Menglian Information Technology Co.,LTD - -@@ -59767,6 +60079,9 @@ OUI:7060DE* - OUI:706173* - ID_OUI_FROM_DATABASE=Calantec GmbH - -+OUI:7062B8* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:706417* - ID_OUI_FROM_DATABASE=ORBIS TECNOLOGIA ELECTRICA S.A. - -@@ -59881,6 +60196,9 @@ OUI:70B14E* - OUI:70B265* - ID_OUI_FROM_DATABASE=Hiltron s.r.l. - -+OUI:70B3D5* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see OUI36 public listing for more information. -+ - OUI:70B599* - ID_OUI_FROM_DATABASE=Embedded Technologies s.r.o. - -@@ -59950,6 +60268,9 @@ OUI:70F395* - OUI:70F927* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:70F96D* -+ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited -+ - OUI:70FF76* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -59965,12 +60286,18 @@ OUI:741489* - OUI:7415E2* - ID_OUI_FROM_DATABASE=Tri-Sen Systems Corporation - -+OUI:7419F8* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:741E93* - ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. - - OUI:74258A* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -+OUI:7426AC* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:74273C* - ID_OUI_FROM_DATABASE=ChangYang Technology (Nanjing) Co., LTD - -@@ -60077,7 +60404,7 @@ OUI:747E2D* - ID_OUI_FROM_DATABASE=Beijing Thomson CITIC Digital Technology Co. LTD. - - OUI:74867A* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:74882A* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -@@ -60172,6 +60499,9 @@ OUI:74D675* - OUI:74D850* - ID_OUI_FROM_DATABASE=Evrisko Systems - -+OUI:74DA38* -+ ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. -+ - OUI:74DE2B* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -60292,6 +60622,9 @@ OUI:7831C1* - OUI:78324F* - ID_OUI_FROM_DATABASE=Millennium Group, Inc. - -+OUI:783A84* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:783CE3* - ID_OUI_FROM_DATABASE=Kai-EE - -@@ -60319,6 +60652,9 @@ OUI:7846C4* - OUI:78471D* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:784859* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:78491D* - ID_OUI_FROM_DATABASE=The Will-Burt Company - -@@ -60391,6 +60727,9 @@ OUI:788C54* - OUI:788DF7* - ID_OUI_FROM_DATABASE=Hitron Technologies. Inc - -+OUI:78923E* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:78929C* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -60523,6 +60862,9 @@ OUI:78D38D* - OUI:78D5B5* - ID_OUI_FROM_DATABASE=NAVIELEKTRO KY - -+OUI:78D66F* -+ ID_OUI_FROM_DATABASE=Aristocrat Technologies Australia Pty. Ltd. -+ - OUI:78D6F0* - ID_OUI_FROM_DATABASE=Samsung Electro Mechanics - -@@ -60736,6 +61078,9 @@ OUI:7C6C8F* - OUI:7C6D62* - ID_OUI_FROM_DATABASE=Apple - -+OUI:7C6DF8* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:7C6F06* - ID_OUI_FROM_DATABASE=Caterpillar Trimble Control Technologies - -@@ -60856,6 +61201,9 @@ OUI:7CCFCF* - OUI:7CD1C3* - ID_OUI_FROM_DATABASE=Apple - -+OUI:7CD30A* -+ ID_OUI_FROM_DATABASE=INVENTEC Corporation -+ - OUI:7CD762* - ID_OUI_FROM_DATABASE=Freestyle Technology Pty Ltd - -@@ -60919,6 +61267,9 @@ OUI:7CFADF* - OUI:7CFE28* - ID_OUI_FROM_DATABASE=Salutron Inc. - -+OUI:7CFE4E* -+ ID_OUI_FROM_DATABASE=Shenzhen Safe vision Technology Co.,LTD -+ - OUI:7CFF62* - ID_OUI_FROM_DATABASE=Huizhou Super Electron Technology Co.,Ltd. - -@@ -60940,9 +61291,15 @@ OUI:8007A2* - OUI:800A06* - ID_OUI_FROM_DATABASE=COMTEC co.,ltd - -+OUI:800E24* -+ ID_OUI_FROM_DATABASE=ForgetBox -+ - OUI:801440* - ID_OUI_FROM_DATABASE=Sunlit System Technology Corp - -+OUI:8014A8* -+ ID_OUI_FROM_DATABASE=Guangzhou V-SOLUTION Electronic Technology Co., Ltd. -+ - OUI:8016B7* - ID_OUI_FROM_DATABASE=Brunel University - -@@ -60952,6 +61309,9 @@ OUI:80177D* - OUI:8018A7* - ID_OUI_FROM_DATABASE=Samsung Eletronics Co., Ltd - -+OUI:801934* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:801DAA* - ID_OUI_FROM_DATABASE=Avaya Inc - -@@ -60994,6 +61354,9 @@ OUI:803F5D* - OUI:803FD6* - ID_OUI_FROM_DATABASE=bytes at work AG - -+OUI:80414E* -+ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., -+ - OUI:80427C* - ID_OUI_FROM_DATABASE=Adolf Tedsen GmbH & Co. KG - -@@ -61279,6 +61642,9 @@ OUI:843611* - OUI:843835* - ID_OUI_FROM_DATABASE=Apple - -+OUI:843838* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ - OUI:843A4B* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -61360,6 +61726,9 @@ OUI:848506* - OUI:848D84* - ID_OUI_FROM_DATABASE=Rajant Corporation - -+OUI:848DC7* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:848E0C* - ID_OUI_FROM_DATABASE=Apple - -@@ -61372,6 +61741,12 @@ OUI:848F69* - OUI:849000* - ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik - -+OUI:84948C* -+ ID_OUI_FROM_DATABASE=Hitron Technologies. Inc -+ -+OUI:8496D8* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:8497B8* - ID_OUI_FROM_DATABASE=Memjet Inc. - -@@ -61399,6 +61774,9 @@ OUI:84ACA4* - OUI:84AF1F* - ID_OUI_FROM_DATABASE=Beat System Service Co,. Ltd. - -+OUI:84B153* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:84B59C* - ID_OUI_FROM_DATABASE=Juniper networks - -@@ -61468,6 +61846,9 @@ OUI:880355* - OUI:880905* - ID_OUI_FROM_DATABASE=MTMCommunications - -+OUI:880F10* -+ ID_OUI_FROM_DATABASE=Huami Information Technology Co.,Ltd. -+ - OUI:880FB6* - ID_OUI_FROM_DATABASE=Jabil Circuits India Pvt Ltd,-EHTP unit - -@@ -61558,7 +61939,10 @@ OUI:88576D* - OUI:885A92* - ID_OUI_FROM_DATABASE=Cisco - --OUI:885C4F* -+OUI:885BDD* -+ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. -+ -+OUI:885C47* - ID_OUI_FROM_DATABASE=Alcatel Lucent - - OUI:88615A* -@@ -61654,6 +62038,9 @@ OUI:88AE1D* - OUI:88B168* - ID_OUI_FROM_DATABASE=Delta Control GmbH - -+OUI:88B1E1* -+ ID_OUI_FROM_DATABASE=AirTight Networks, Inc. -+ - OUI:88B627* - ID_OUI_FROM_DATABASE=Gembird Europe BV - -@@ -62107,6 +62494,9 @@ OUI:9046B7* - OUI:904716* - ID_OUI_FROM_DATABASE=RORZE CORPORATION - -+OUI:90489A* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:9049FA* - ID_OUI_FROM_DATABASE=Intel Corporation - -@@ -62179,6 +62569,9 @@ OUI:907A28* - OUI:907AF1* - ID_OUI_FROM_DATABASE=SNUPI Technologies - -+OUI:907EBA* -+ ID_OUI_FROM_DATABASE=UTEK TECHNOLOGY (SHENZHEN) CO.,LTD -+ - OUI:907F61* - ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. - -@@ -62197,12 +62590,12 @@ OUI:9088A2* - OUI:908C44* - ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. - -+OUI:908C63* -+ ID_OUI_FROM_DATABASE=GZ Weedong Networks Technology Co. , Ltd -+ - OUI:908D1D* - ID_OUI_FROM_DATABASE=GH Technologies - --OUI:908F93* -- ID_OUI_FROM_DATABASE=MakerBot Industries -- - OUI:908FCF* - ID_OUI_FROM_DATABASE=UNO System Co., Ltd - -@@ -62245,6 +62638,9 @@ OUI:90A7C1* - OUI:90AC3F* - ID_OUI_FROM_DATABASE=BrightSign LLC - -+OUI:90AE1B* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:90B11C* - ID_OUI_FROM_DATABASE=Dell Inc. - -@@ -62303,7 +62699,7 @@ OUI:90DFB7* - ID_OUI_FROM_DATABASE=s.m.s smart microwave sensors GmbH - - OUI:90E0F0* -- ID_OUI_FROM_DATABASE=Harman International -+ ID_OUI_FROM_DATABASE=IEEE 1722a Working Group - - OUI:90E2BA* - ID_OUI_FROM_DATABASE=Intel Corporate -@@ -62683,6 +63079,9 @@ OUI:983571* - OUI:9835B8* - ID_OUI_FROM_DATABASE=Assembled Products Corporation - -+OUI:983713* -+ ID_OUI_FROM_DATABASE=PT.Navicom Indonesia -+ - OUI:983B16* - ID_OUI_FROM_DATABASE=AMPAK Technology Inc - -@@ -62746,6 +63145,9 @@ OUI:986022* - OUI:9866EA* - ID_OUI_FROM_DATABASE=Industrial Control Communications, Inc. - -+OUI:986B3D* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:986CF5* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -62812,6 +63214,9 @@ OUI:98BC57* - OUI:98BC99* - ID_OUI_FROM_DATABASE=Edeltech Co.,Ltd. - -+OUI:98BE94* -+ ID_OUI_FROM_DATABASE=IBM -+ - OUI:98C0EB* - ID_OUI_FROM_DATABASE=Global Regency Ltd - -@@ -62929,6 +63334,9 @@ OUI:9C2840* - OUI:9C28BF* - ID_OUI_FROM_DATABASE=Continental Automotive Czech Republic s.r.o. - -+OUI:9C28EF* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:9C2A70* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -63184,6 +63592,9 @@ OUI:9CFBF1* - OUI:9CFFBE* - ID_OUI_FROM_DATABASE=OTSL Inc. - -+OUI:A002DC* -+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. -+ - OUI:A00363* - ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH - -@@ -63205,6 +63616,9 @@ OUI:A00CA1* - OUI:A01290* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:A012DB* -+ ID_OUI_FROM_DATABASE=TABUCHI ELECTRIC CO.,LTD -+ - OUI:A0133B* - ID_OUI_FROM_DATABASE=Copyright © HiTi Digital, Inc. - -@@ -63235,6 +63649,9 @@ OUI:A021B7* - OUI:A0231B* - ID_OUI_FROM_DATABASE=TeleComp R&D Corp. - -+OUI:A02BB8* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:A02EF3* - ID_OUI_FROM_DATABASE=United Integrated Services Co., Led. - -@@ -63439,6 +63856,9 @@ OUI:A0D12A* - OUI:A0D3C1* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A0DA92* -+ ID_OUI_FROM_DATABASE=Nanjing Glarun Atten Technology Co. Ltd. -+ - OUI:A0DC04* - ID_OUI_FROM_DATABASE=Becker-Antriebe GmbH - -@@ -63502,6 +63922,9 @@ OUI:A0F450* - OUI:A0F459* - ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED - -+OUI:A0FC6E* -+ ID_OUI_FROM_DATABASE=Telegrafia a.s. -+ - OUI:A0FE91* - ID_OUI_FROM_DATABASE=AVAT Automation GmbH - -@@ -63565,6 +63988,12 @@ OUI:A438FC* - OUI:A43A69* - ID_OUI_FROM_DATABASE=Vers Inc - -+OUI:A43BFA* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ -+OUI:A43D78* -+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD -+ - OUI:A4466B* - ID_OUI_FROM_DATABASE=EOC Technology - -@@ -63604,6 +64033,9 @@ OUI:A45C27* - OUI:A45D36* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A46032* -+ ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD -+ - OUI:A46706* - ID_OUI_FROM_DATABASE=Apple - -@@ -63632,7 +64064,13 @@ OUI:A47C14* - ID_OUI_FROM_DATABASE=ChargeStorm AB - - OUI:A47C1F* -- ID_OUI_FROM_DATABASE=Global Microwave Systems Inc. -+ ID_OUI_FROM_DATABASE=Cobham plc -+ -+OUI:A47E39* -+ ID_OUI_FROM_DATABASE=zte corporation -+ -+OUI:A481EE* -+ ID_OUI_FROM_DATABASE=Nokia Corporation - - OUI:A4856B* - ID_OUI_FROM_DATABASE=Q Electronics Ltd -@@ -63664,6 +64102,9 @@ OUI:A49B13* - OUI:A49EDB* - ID_OUI_FROM_DATABASE=AutoCrib, Inc. - -+OUI:A49F85* -+ ID_OUI_FROM_DATABASE=Lyve Minds, Inc -+ - OUI:A49F89* - ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. - -@@ -63964,6 +64405,9 @@ OUI:A8995C* - OUI:A89B10* - ID_OUI_FROM_DATABASE=inMotion Ltd. - -+OUI:A8A668* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:A8AD3D* - ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd - -@@ -64021,6 +64465,9 @@ OUI:A8F274* - OUI:A8F470* - ID_OUI_FROM_DATABASE=Fujian Newland Communication Science Technologies Co.,Ltd. - -+OUI:A8F7E0* -+ ID_OUI_FROM_DATABASE=PLANET Technology Corporation -+ - OUI:A8F94B* - ID_OUI_FROM_DATABASE=Eltex Enterprise Ltd. - -@@ -64258,12 +64705,21 @@ OUI:ACA22C* - OUI:ACA430* - ID_OUI_FROM_DATABASE=Peerless AV - -+OUI:ACA919* -+ ID_OUI_FROM_DATABASE=TrekStor GmbH -+ -+OUI:ACA9A0* -+ ID_OUI_FROM_DATABASE=Audioengine, Ltd. -+ - OUI:ACAB8D* - ID_OUI_FROM_DATABASE=Lyngso Marine A/S - - OUI:ACB313* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:ACB859* -+ ID_OUI_FROM_DATABASE=Uniband Electronic Corp, -+ - OUI:ACBD0B* - ID_OUI_FROM_DATABASE=IMAC CO.,LTD - -@@ -64375,6 +64831,9 @@ OUI:ACF97E* - OUI:ACFDEC* - ID_OUI_FROM_DATABASE=Apple, Inc - -+OUI:B000B4* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:B00594* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -64465,6 +64924,9 @@ OUI:B06CBF* - OUI:B0750C* - ID_OUI_FROM_DATABASE=QA Cafe - -+OUI:B0754D* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:B075D5* - ID_OUI_FROM_DATABASE=ZTE Corporation - -@@ -64528,9 +64990,15 @@ OUI:B09FBA* - OUI:B0A10A* - ID_OUI_FROM_DATABASE=Pivotal Systems Corporation - -+OUI:B0A37E* -+ ID_OUI_FROM_DATABASE=Qingdao Haier Electronics Co.,Ltd -+ - OUI:B0A72A* - ID_OUI_FROM_DATABASE=Ensemble Designs, Inc. - -+OUI:B0A737* -+ ID_OUI_FROM_DATABASE=Roku, Inc. -+ - OUI:B0A86E* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -64597,6 +65065,9 @@ OUI:B0D09C* - OUI:B0D2F5* - ID_OUI_FROM_DATABASE=Vello Systems, Inc. - -+OUI:B0D59D* -+ ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd -+ - OUI:B0D7C5* - ID_OUI_FROM_DATABASE=STP KFT - -@@ -64813,6 +65284,9 @@ OUI:B499BA* - OUI:B49DB4* - ID_OUI_FROM_DATABASE=Axion Technologies Inc. - -+OUI:B49EAC* -+ ID_OUI_FROM_DATABASE=Imagik Int'l Corp -+ - OUI:B49EE6* - ID_OUI_FROM_DATABASE=SHENZHEN TECHNOLOGY CO LTD - -@@ -64900,6 +65374,9 @@ OUI:B4ED19* - OUI:B4ED54* - ID_OUI_FROM_DATABASE=Wohler Technologies - -+OUI:B4EEB4* -+ ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP -+ - OUI:B4EED4* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -64963,6 +65440,9 @@ OUI:B8288B* - OUI:B829F7* - ID_OUI_FROM_DATABASE=Blaster Tech - -+OUI:B82A72* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:B82ADC* - ID_OUI_FROM_DATABASE=EFR Europäische Funk-Rundsteuerung GmbH - -@@ -65047,6 +65527,9 @@ OUI:B87424* - OUI:B87447* - ID_OUI_FROM_DATABASE=Convergence Technologies - -+OUI:B875C0* -+ ID_OUI_FROM_DATABASE=PayPal, Inc. -+ - OUI:B8763F* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -65062,6 +65545,9 @@ OUI:B8797E* - OUI:B87AC9* - ID_OUI_FROM_DATABASE=Siemens Ltd. - -+OUI:B87CF2* -+ ID_OUI_FROM_DATABASE=Aerohive Networks Inc. -+ - OUI:B8871E* - ID_OUI_FROM_DATABASE=Good Mind Industries Co., Ltd. - -@@ -65152,6 +65638,9 @@ OUI:B8BB6D* - OUI:B8BEBF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:B8BF83* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:B8C1A2* - ID_OUI_FROM_DATABASE=Dragon Path Technologies Co., Limited - -@@ -65171,7 +65660,7 @@ OUI:B8C855* - ID_OUI_FROM_DATABASE=Shanghai GBCOM Communication Technology Co.,Ltd. - - OUI:B8CA3A* -- ID_OUI_FROM_DATABASE=Dell PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:B8CD93* - ID_OUI_FROM_DATABASE=Penetek, Inc -@@ -65215,6 +65704,9 @@ OUI:B8E856* - OUI:B8E937* - ID_OUI_FROM_DATABASE=Sonos, Inc. - -+OUI:B8EE65* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:B8EE79* - ID_OUI_FROM_DATABASE=YWire Technologies, Inc. - -@@ -65284,6 +65776,9 @@ OUI:BC20A4* - OUI:BC20BA* - ID_OUI_FROM_DATABASE=Inspur (Shandong) Electronic Information Co., Ltd - -+OUI:BC25F0* -+ ID_OUI_FROM_DATABASE=3D Display Technologies Co., Ltd. -+ - OUI:BC261D* - ID_OUI_FROM_DATABASE=HONG KONG TECON TECHNOLOGY - -@@ -65311,6 +65806,9 @@ OUI:BC305B* - OUI:BC307D* - ID_OUI_FROM_DATABASE=Wistron Neweb Corp. - -+OUI:BC3400* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:BC35E5* - ID_OUI_FROM_DATABASE=Hydro Systems Company - -@@ -65419,6 +65917,9 @@ OUI:BC8B55* - OUI:BC8CCD* - ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. - -+OUI:BC8D0E* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:BC926B* - ID_OUI_FROM_DATABASE=Apple - -@@ -65572,6 +66073,9 @@ OUI:C038F9* - OUI:C03B8F* - ID_OUI_FROM_DATABASE=Minicom Digital Signage - -+OUI:C03D46* -+ ID_OUI_FROM_DATABASE=Shanghai Mochui Network Technology Co., Ltd -+ - OUI:C03E0F* - ID_OUI_FROM_DATABASE=BSkyB Ltd - -@@ -65602,6 +66106,9 @@ OUI:C04A00* - OUI:C04DF7* - ID_OUI_FROM_DATABASE=SERELEC - -+OUI:C056E3* -+ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd. -+ - OUI:C057BC* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -65614,6 +66121,9 @@ OUI:C05E6F* - OUI:C05E79* - ID_OUI_FROM_DATABASE=SHENZHEN HUAXUN ARK TECHNOLOGIES CO.,LTD - -+OUI:C06118* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:C0626B* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -65794,6 +66304,9 @@ OUI:C40415* - OUI:C40528* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:C4084A* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:C40938* - ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd - -@@ -65848,6 +66361,9 @@ OUI:C4291D* - OUI:C42C03* - ID_OUI_FROM_DATABASE=Apple - -+OUI:C4346B* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:C436DA* - ID_OUI_FROM_DATABASE=Rusteletech Ltd. - -@@ -65938,6 +66454,9 @@ OUI:C467B5* - OUI:C46AB7* - ID_OUI_FROM_DATABASE=Xiaomi Technology,Inc. - -+OUI:C46BB4* -+ ID_OUI_FROM_DATABASE=myIDkey -+ - OUI:C46DF1* - ID_OUI_FROM_DATABASE=DataGravity - -@@ -65983,6 +66502,9 @@ OUI:C48508* - OUI:C488E5* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:C4913A* -+ ID_OUI_FROM_DATABASE=Shenzhen Sanland Electronic Co., ltd. -+ - OUI:C49300* - ID_OUI_FROM_DATABASE=8Devices - -@@ -66025,6 +66547,9 @@ OUI:C4C755* - OUI:C4C919* - ID_OUI_FROM_DATABASE=Energy Imports Ltd - -+OUI:C4C9EC* -+ ID_OUI_FROM_DATABASE=D&D GROUP sp. z o.o. -+ - OUI:C4CAD9* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -@@ -66113,7 +66638,7 @@ OUI:C81E8E* - ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd - - OUI:C81F66* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:C8208E* - ID_OUI_FROM_DATABASE=Storagedata -@@ -66127,6 +66652,9 @@ OUI:C82A14* - OUI:C82E94* - ID_OUI_FROM_DATABASE=Halfa Enterprise Co., Ltd. - -+OUI:C83168* -+ ID_OUI_FROM_DATABASE=eZEX corporation -+ - OUI:C83232* - ID_OUI_FROM_DATABASE=Hunting Innova - -@@ -66238,6 +66766,9 @@ OUI:C89C1D* - OUI:C89CDC* - ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. - -+OUI:C89F1D* -+ ID_OUI_FROM_DATABASE=SHENZHEN COMMUNICATION TECHNOLOGIES CO.,LTD -+ - OUI:C89F42* - ID_OUI_FROM_DATABASE=VDII Innovation AB - -@@ -66274,6 +66805,9 @@ OUI:C8B373* - OUI:C8B5B7* - ID_OUI_FROM_DATABASE=Apple - -+OUI:C8BA94* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ - OUI:C8BBD3* - ID_OUI_FROM_DATABASE=Embrane - -@@ -66316,6 +66850,9 @@ OUI:C8D3A3* - OUI:C8D429* - ID_OUI_FROM_DATABASE=Muehlbauer AG - -+OUI:C8D590* -+ ID_OUI_FROM_DATABASE=FLIGHT DATA SYSTEMS -+ - OUI:C8D5FE* - ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd - -@@ -66337,6 +66874,9 @@ OUI:C8E0EB* - OUI:C8E1A7* - ID_OUI_FROM_DATABASE=Vertu Corporation Limited - -+OUI:C8E42F* -+ ID_OUI_FROM_DATABASE=Technical Research Design and Development -+ - OUI:C8EE08* - ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD - -@@ -66358,6 +66898,9 @@ OUI:C8F386* - OUI:C8F406* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:C8F650* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:C8F68D* - ID_OUI_FROM_DATABASE=S.E.TECHNOLOGIES LIMITED - -@@ -66379,6 +66922,9 @@ OUI:C8FB26* - OUI:C8FE30* - ID_OUI_FROM_DATABASE=Bejing DAYO Mobile Communication Technology Ltd. - -+OUI:C8FF77* -+ ID_OUI_FROM_DATABASE=Dyson Limited -+ - OUI:CC0080* - ID_OUI_FROM_DATABASE=BETTINI SRL - -@@ -66394,6 +66940,9 @@ OUI:CC051B* - OUI:CC07AB* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:CC07E4* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:CC08E0* - ID_OUI_FROM_DATABASE=Apple - -@@ -66574,6 +67123,9 @@ OUI:CC9E00* - OUI:CC9F35* - ID_OUI_FROM_DATABASE=Transbit Sp. z o.o. - -+OUI:CCA0E5* -+ ID_OUI_FROM_DATABASE=DZG Metering GmbH -+ - OUI:CCA374* - ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd - -@@ -66595,6 +67147,9 @@ OUI:CCB3F8* - OUI:CCB55A* - ID_OUI_FROM_DATABASE=Fraunhofer ITWM - -+OUI:CCB691* -+ ID_OUI_FROM_DATABASE=NECMagnusCommunications -+ - OUI:CCB888* - ID_OUI_FROM_DATABASE=AnB Securite s.a. - -@@ -66610,6 +67165,9 @@ OUI:CCBE71* - OUI:CCC104* - ID_OUI_FROM_DATABASE=Applied Technical Systems - -+OUI:CCC3EA* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:CCC50A* - ID_OUI_FROM_DATABASE=SHENZHEN DAJIAHAO TECHNOLOGY CO.,LTD - -@@ -66643,6 +67201,9 @@ OUI:CCD811* - OUI:CCD9E9* - ID_OUI_FROM_DATABASE=SCR Engineers Ltd. - -+OUI:CCE1D5* -+ ID_OUI_FROM_DATABASE=Buffalo Inc. -+ - OUI:CCE798* - ID_OUI_FROM_DATABASE=My Social Stuff - -@@ -66778,6 +67339,12 @@ OUI:D059C3* - OUI:D05A0F* - ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD - -+OUI:D05AF1* -+ ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd -+ -+OUI:D05FB8* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:D05FCE* - ID_OUI_FROM_DATABASE=Hitachi Data Systems - -@@ -66799,6 +67366,9 @@ OUI:D0699E* - OUI:D069D0* - ID_OUI_FROM_DATABASE=Verto Medical Solutions, LLC - -+OUI:D072DC* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:D0737F* - ID_OUI_FROM_DATABASE=Mini-Circuits - -@@ -66811,6 +67381,9 @@ OUI:D073D5* - OUI:D075BE* - ID_OUI_FROM_DATABASE=Reno A&E - -+OUI:D07650* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:D07AB5* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -66895,6 +67468,9 @@ OUI:D0C42F* - OUI:D0C789* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:D0C7C0* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:D0CDE1* - ID_OUI_FROM_DATABASE=Scientech Electronics - -@@ -67018,6 +67594,9 @@ OUI:D41F0C* - OUI:D4206D* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:D42122* -+ ID_OUI_FROM_DATABASE=Sercomm Corporation -+ - OUI:D4223F* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -@@ -67099,6 +67678,9 @@ OUI:D464F7* - OUI:D466A8* - ID_OUI_FROM_DATABASE=Riedo Networks GmbH - -+OUI:D46761* -+ ID_OUI_FROM_DATABASE=SAHAB TECHNOLOGY -+ - OUI:D467E7* - ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. - -@@ -67168,6 +67750,9 @@ OUI:D49524* - OUI:D496DF* - ID_OUI_FROM_DATABASE=SUNGJIN C&T CO.,LTD - -+OUI:D4970B* -+ ID_OUI_FROM_DATABASE=XIAOMI CORPORATION -+ - OUI:D49A20* - ID_OUI_FROM_DATABASE=Apple - -@@ -67207,6 +67792,9 @@ OUI:D4AE52* - OUI:D4B110* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:D4B43E* -+ ID_OUI_FROM_DATABASE=Messcomp Datentechnik GmbH -+ - OUI:D4BED9* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -67237,6 +67825,9 @@ OUI:D4CBAF* - OUI:D4CEB8* - ID_OUI_FROM_DATABASE=Enatel LTD - -+OUI:D4CFF9* -+ ID_OUI_FROM_DATABASE=Shenzhen Sen5 Technology Co., Ltd. -+ - OUI:D4D184* - ID_OUI_FROM_DATABASE=ADB Broadband Italia - -@@ -67258,6 +67849,9 @@ OUI:D4D919* - OUI:D4DF57* - ID_OUI_FROM_DATABASE=Alpinion Medical Systems - -+OUI:D4E08E* -+ ID_OUI_FROM_DATABASE=ValueHD Corporation -+ - OUI:D4E32C* - ID_OUI_FROM_DATABASE=S. Siedle & Sohne - -@@ -67375,6 +67969,9 @@ OUI:D84606* - OUI:D8490B* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:D8492F* -+ ID_OUI_FROM_DATABASE=CANON INC. -+ - OUI:D84B2A* - ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. - -@@ -67397,7 +67994,7 @@ OUI:D85D84* - ID_OUI_FROM_DATABASE=CAx soft GmbH - - OUI:D86194* -- ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido -+ ID_OUI_FROM_DATABASE=Objetivos y Sevicios de Valor Añadido - - OUI:D862DB* - ID_OUI_FROM_DATABASE=Eno Inc. -@@ -67438,6 +68035,9 @@ OUI:D87988* - OUI:D87CDD* - ID_OUI_FROM_DATABASE=SANIX INCORPORATED - -+OUI:D87EB1* -+ ID_OUI_FROM_DATABASE=x.o.ware, inc. -+ - OUI:D881CE* - ID_OUI_FROM_DATABASE=AHN INC. - -@@ -67462,6 +68062,9 @@ OUI:D8973B* - OUI:D89760* - ID_OUI_FROM_DATABASE=C2 Development, Inc. - -+OUI:D8977C* -+ ID_OUI_FROM_DATABASE=Grey Innovation -+ - OUI:D89D67* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -67525,6 +68128,9 @@ OUI:D8C7C8* - OUI:D8C99D* - ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED - -+OUI:D8CF9C* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:D8D1CB* - ID_OUI_FROM_DATABASE=Apple - -@@ -67555,6 +68161,9 @@ OUI:D8DD5F* - OUI:D8DDFD* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:D8DECE* -+ ID_OUI_FROM_DATABASE=ISUNG CO.,LTD -+ - OUI:D8DF0D* - ID_OUI_FROM_DATABASE=beroNet GmbH - -@@ -67660,6 +68269,9 @@ OUI:DC3350* - OUI:DC37D2* - ID_OUI_FROM_DATABASE=Hunan HKT Electronic Technology Co., Ltd - -+OUI:DC38E1* -+ ID_OUI_FROM_DATABASE=Juniper networks -+ - OUI:DC3A5E* - ID_OUI_FROM_DATABASE=Roku, Inc - -@@ -67693,6 +68305,9 @@ OUI:DC5E36* - OUI:DC647C* - ID_OUI_FROM_DATABASE=C.R.S. iiMotion GmbH - -+OUI:DC663A* -+ ID_OUI_FROM_DATABASE=Apacer Technology Inc. -+ - OUI:DC6F00* - ID_OUI_FROM_DATABASE=Livescribe, Inc. - -@@ -67816,6 +68431,9 @@ OUI:DCE71C* - OUI:DCF05D* - ID_OUI_FROM_DATABASE=Letta Teknoloji - -+OUI:DCF110* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:DCF755* - ID_OUI_FROM_DATABASE=SITRONIK - -@@ -67939,6 +68557,9 @@ OUI:E063E5* - OUI:E064BB* - ID_OUI_FROM_DATABASE=DigiView S.r.l. - -+OUI:E06678* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:E067B3* - ID_OUI_FROM_DATABASE=C-Data Technology Co., Ltd - -@@ -68071,6 +68692,9 @@ OUI:E0CA94* - OUI:E0CB4E* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -+OUI:E0CBEE* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:E0CEC3* - ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP - -@@ -68152,6 +68776,9 @@ OUI:E40439* - OUI:E4115B* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:E41218* -+ ID_OUI_FROM_DATABASE=ShenZhen Rapoo Technology Co., Ltd. -+ - OUI:E4121D* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -68341,6 +68968,9 @@ OUI:E4C806* - OUI:E4CE8F* - ID_OUI_FROM_DATABASE=Apple - -+OUI:E4D332* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:E4D3F1* - ID_OUI_FROM_DATABASE=Cisco - -@@ -68371,6 +69001,9 @@ OUI:E4F365* - OUI:E4F3E3* - ID_OUI_FROM_DATABASE=Shanghai iComhome Co.,Ltd. - -+OUI:E4F4C6* -+ ID_OUI_FROM_DATABASE=NETGEAR -+ - OUI:E4F7A1* - ID_OUI_FROM_DATABASE=Datafox GmbH - -@@ -68671,6 +69304,9 @@ OUI:E8EADA* - OUI:E8EDF3* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:E8EF89* -+ ID_OUI_FROM_DATABASE=OPMEX Tech. -+ - OUI:E8F1B0* - ID_OUI_FROM_DATABASE=SAGEMCOM SAS - -@@ -68719,6 +69355,9 @@ OUI:EC2AF0* - OUI:EC2C49* - ID_OUI_FROM_DATABASE=University of Tokyo - -+OUI:EC2E4E* -+ ID_OUI_FROM_DATABASE=HITACHI-LG DATA STORAGE INC -+ - OUI:EC3091* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -68881,6 +69520,9 @@ OUI:ECE09B* - OUI:ECE1A9* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:ECE512* -+ ID_OUI_FROM_DATABASE=tado GmbH -+ - OUI:ECE555* - ID_OUI_FROM_DATABASE=Hirschmann Automation - -@@ -68909,7 +69551,7 @@ OUI:ECF35B* - ID_OUI_FROM_DATABASE=Nokia Corporation - - OUI:ECF4BB* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:ECF72B* - ID_OUI_FROM_DATABASE=HD DIGITAL TECH CO., LTD. -@@ -68948,7 +69590,7 @@ OUI:F01C13* - ID_OUI_FROM_DATABASE=LG Electronics - - OUI:F01FAF* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F0219D* - ID_OUI_FROM_DATABASE=Cal-Comp Electronics & Communications Company Ltd. -@@ -69085,6 +69727,9 @@ OUI:F08A28* - OUI:F08BFE* - ID_OUI_FROM_DATABASE=COSTEL.,CO.LTD - -+OUI:F08CFB* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:F08EDB* - ID_OUI_FROM_DATABASE=VeloCloud Networks - -@@ -69241,6 +69886,9 @@ OUI:F4044C* - OUI:F4068D* - ID_OUI_FROM_DATABASE=devolo AG - -+OUI:F406A5* -+ ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. -+ - OUI:F40B93* - ID_OUI_FROM_DATABASE=Research In Motion - -@@ -69427,6 +70075,9 @@ OUI:F4B7E2* - OUI:F4BD7C* - ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD - -+OUI:F4C447* -+ ID_OUI_FROM_DATABASE=Coagent International Enterprise Limited -+ - OUI:F4C6D7* - ID_OUI_FROM_DATABASE=blackned GmbH - -@@ -69478,6 +70129,9 @@ OUI:F4F15A* - OUI:F4F5A5* - ID_OUI_FROM_DATABASE=Nokia corporation - -+OUI:F4F5E8* -+ ID_OUI_FROM_DATABASE=Google -+ - OUI:F4F951* - ID_OUI_FROM_DATABASE=Apple - -@@ -69502,6 +70156,9 @@ OUI:F80BD0* - OUI:F80CF3* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:F80D43* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. -+ - OUI:F80DEA* - ID_OUI_FROM_DATABASE=ZyCast Technology Inc. - -@@ -69586,6 +70243,9 @@ OUI:F8472D* - OUI:F84897* - ID_OUI_FROM_DATABASE=Hitachi, Ltd. - -+OUI:F84A73* -+ ID_OUI_FROM_DATABASE=EUMTECH CO., LTD -+ - OUI:F84A7F* - ID_OUI_FROM_DATABASE=Innometriks Inc - -@@ -69622,6 +70282,12 @@ OUI:F85F2A* - OUI:F862AA* - ID_OUI_FROM_DATABASE=xn systems - -+OUI:F86601* -+ ID_OUI_FROM_DATABASE=Suzhou Chi-tek information technology Co., Ltd -+ -+OUI:F866D1* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd. -+ - OUI:F866F2* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -69710,13 +70376,13 @@ OUI:F8AC6D* - ID_OUI_FROM_DATABASE=Deltenna Ltd - - OUI:F8B156* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F8B599* - ID_OUI_FROM_DATABASE=Guangzhou CHNAVS Digital Technology Co.,Ltd - - OUI:F8BC12* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F8C001* - ID_OUI_FROM_DATABASE=Juniper Networks -@@ -69764,7 +70430,7 @@ OUI:F8DB7F* - ID_OUI_FROM_DATABASE=HTC Corporation - - OUI:F8DB88* -- ID_OUI_FROM_DATABASE=Dell Inc PCBA Test -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:F8DC7A* - ID_OUI_FROM_DATABASE=Variscite LTD -@@ -69892,6 +70558,9 @@ OUI:FC1FC0* - OUI:FC229C* - ID_OUI_FROM_DATABASE=Han Kyung I Net Co.,Ltd. - -+OUI:FC2325* -+ ID_OUI_FROM_DATABASE=EosTek (Shenzhen) Co., Ltd. -+ - OUI:FC253F* - ID_OUI_FROM_DATABASE=Apple - -@@ -69928,6 +70597,9 @@ OUI:FC455F* - OUI:FC48EF* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:FC4AE9* -+ ID_OUI_FROM_DATABASE=Castlenet Technology Inc. -+ - OUI:FC4B1C* - ID_OUI_FROM_DATABASE=INTERSENSOR S.R.L. - -@@ -70030,6 +70702,9 @@ OUI:FCBBA1* - OUI:FCC23D* - ID_OUI_FROM_DATABASE=Atmel Corporation - -+OUI:FCC2DE* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:FCC734* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -70048,6 +70723,9 @@ OUI:FCD4F2* - OUI:FCD4F6* - ID_OUI_FROM_DATABASE=Messana Air.Ray Conditioning s.r.l. - -+OUI:FCD5D9* -+ ID_OUI_FROM_DATABASE=Shenzhen SDMC Technology Co., Ltd. -+ - OUI:FCD6BD* - ID_OUI_FROM_DATABASE=Robert Bosch GmbH - -@@ -70060,6 +70738,9 @@ OUI:FCDB96* - OUI:FCDD55* - ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd - -+OUI:FCE186* -+ ID_OUI_FROM_DATABASE=A3M Co., LTD -+ - OUI:FCE192* - ID_OUI_FROM_DATABASE=Sichuan Jinwangtong Electronic Science&Technology Co,.Ltd - -@@ -70078,12 +70759,18 @@ OUI:FCE892* - OUI:FCEDB9* - ID_OUI_FROM_DATABASE=Arrayent - -+OUI:FCF152* -+ ID_OUI_FROM_DATABASE=Sony Corporation -+ - OUI:FCF1CD* - ID_OUI_FROM_DATABASE=OPTEX-FA CO.,LTD. - - OUI:FCF528* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -+OUI:FCF647* -+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. -+ - OUI:FCF8AE* - ID_OUI_FROM_DATABASE=Intel Corporate - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 7f833e3..371a685 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -890,6 +890,9 @@ pci:v00001000d0000005Bsv00001000sd00009295* - pci:v00001000d0000005Bsv00001014sd0000040B* - ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller - -+pci:v00001000d0000005Bsv00001014sd0000040C* -+ ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller -+ - pci:v00001000d0000005Bsv00001014sd00000412* - ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller - -@@ -917,6 +920,9 @@ pci:v00001000d0000005Bsv00001028sd00001F37* - pci:v00001000d0000005Bsv00001028sd00001F38* - ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) - -+pci:v00001000d0000005Bsv000015D9sd00000690* -+ ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB -+ - pci:v00001000d0000005Bsv00008086sd00003510* - ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller - -@@ -950,6 +956,12 @@ pci:v00001000d0000005Dsv00001028sd00001F49* - pci:v00001000d0000005Dsv00001028sd00001F4A* - ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) - -+pci:v00001000d0000005Dsv000017AAsd00001052* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i -+ -+pci:v00001000d0000005Dsv000017AAsd00001053* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix -+ - pci:v00001000d0000005E* - ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS - -@@ -1163,6 +1175,9 @@ pci:v00001000d00000073sv000015D9sd00000400* - pci:v00001000d00000073sv00001734sd00001177* - ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) - -+pci:v00001000d00000073sv000017AAsd00001051* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i -+ - pci:v00001000d00000073sv00008086sd0000350D* - ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller - -@@ -1598,6 +1613,9 @@ pci:v00001000d00001960sv00008086sd00000520* - pci:v00001000d00001960sv00008086sd00000523* - ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 - -+pci:v00001000d00003050* -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 -+ - pci:v00001000d00006001* - ID_MODEL_FROM_DATABASE=DX1 Multiformat Broadcast HD/SD Encoder/Decoder - -@@ -1665,7 +1683,7 @@ pci:v00001002d0000130E* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d0000130F* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] - - pci:v00001002d00001310* - ID_MODEL_FROM_DATABASE=Kaveri -@@ -1673,9 +1691,12 @@ pci:v00001002d00001310* - pci:v00001002d00001311* - ID_MODEL_FROM_DATABASE=Kaveri - --pci:v00001002d00001313* -+pci:v00001002d00001312* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d00001313* -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] -+ - pci:v00001002d00001314* - ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio - -@@ -1686,6 +1707,9 @@ pci:v00001002d00001315* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d00001316* -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] -+ -+pci:v00001002d00001317* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d0000131B* -@@ -1694,6 +1718,9 @@ pci:v00001002d0000131B* - pci:v00001002d0000131C* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d0000131D* -+ ID_MODEL_FROM_DATABASE=Kaveri -+ - pci:v00001002d00001714* - ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] - -@@ -4176,20 +4203,41 @@ pci:v00001002d00006603* - ID_MODEL_FROM_DATABASE=Mars - - pci:v00001002d00006604* -- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M265] -+ ID_MODEL_FROM_DATABASE=Opal XT [Radeon R7 M265] - - pci:v00001002d00006605* -- ID_MODEL_FROM_DATABASE=Mars [Radeon R7 M260] -+ ID_MODEL_FROM_DATABASE=Opal PRO [Radeon R7 M260] - - pci:v00001002d00006606* - ID_MODEL_FROM_DATABASE=Mars XTX [Radeon HD 8790M] - - pci:v00001002d00006607* -- ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M] -+ ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M / R5 M240] - - pci:v00001002d00006610* - ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] - -+pci:v00001002d00006610sv00001019sd00000030* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001028sd00002120* -+ ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ -+pci:v00001002d00006610sv00001028sd00002322* -+ ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ -+pci:v00001002d00006610sv00001462sd00002910* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001462sd00002911* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001642sd00003C81* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ -+pci:v00001002d00006610sv00001642sd00003C91* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ - pci:v00001002d00006611* - ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] - -@@ -4278,13 +4326,13 @@ pci:v00001002d00006663sv00001025sd00000846* - ID_MODEL_FROM_DATABASE=Radeon HD 8570A - - pci:v00001002d00006664* -- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M200 Series] -+ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] - - pci:v00001002d00006665* -- ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M200 Series] -+ ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] - - pci:v00001002d00006667* -- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M200 Series] -+ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] - - pci:v00001002d0000666F* - ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] -@@ -5003,6 +5051,9 @@ pci:v00001002d00006759sv00001B0Asd000090B5* - pci:v00001002d00006759sv00001B0Asd000090B6* - ID_MODEL_FROM_DATABASE=Radeon HD 7570 - -+pci:v00001002d0000675B* -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] -+ - pci:v00001002d0000675D* - ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 7570] - -@@ -5801,6 +5852,9 @@ pci:v00001002d00006798sv00001092sd00003000* - pci:v00001002d00006798sv00001458sd00002261* - ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] - -+pci:v00001002d00006798sv00001462sd00002774* -+ ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE -+ - pci:v00001002d00006798sv00001682sd00003211* - ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition - -@@ -5823,7 +5877,7 @@ pci:v00001002d00006799* - ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] - - pci:v00001002d0000679A* -- ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950] -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] - - pci:v00001002d0000679Asv00001002sd00000B01* - ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM -@@ -5903,6 +5957,9 @@ pci:v00001002d00006801* - pci:v00001002d00006801sv00001002sd00000124* - ID_MODEL_FROM_DATABASE=Radeon HD 8970M - -+pci:v00001002d00006801sv00001462sd00001117* -+ ID_MODEL_FROM_DATABASE=Radeon R9 M290X -+ - pci:v00001002d00006801sv00008086sd00002110* - ID_MODEL_FROM_DATABASE=Radeon HD 8970M - -@@ -5966,6 +6023,12 @@ pci:v00001002d00006821* - pci:v00001002d00006821sv00001002sd0000031E* - ID_MODEL_FROM_DATABASE=FirePro SX4000 - -+pci:v00001002d00006821sv00001028sd000005CC* -+ ID_MODEL_FROM_DATABASE=FirePro M5100 -+ -+pci:v00001002d00006821sv00001028sd000015CC* -+ ID_MODEL_FROM_DATABASE=FirePro M5100 -+ - pci:v00001002d00006822* - ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] - -@@ -6039,7 +6102,7 @@ pci:v00001002d0000683B* - ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7700 Series] - - pci:v00001002d0000683D* -- ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] - - pci:v00001002d0000683Dsv00001002sd00000030* - ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -@@ -6050,8 +6113,14 @@ pci:v00001002d0000683Dsv00001019sd00000030* - pci:v00001002d0000683Dsv0000103Csd00006890* - ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM - -+pci:v00001002d0000683Dsv00001043sd00008760* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ -+pci:v00001002d0000683Dsv0000174Bsd00008304* -+ ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ - pci:v00001002d0000683F* -- ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750] -+ ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] - - pci:v00001002d00006840* - ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] -@@ -8891,6 +8960,9 @@ pci:v00001002d0000985E* - pci:v00001002d0000985F* - ID_MODEL_FROM_DATABASE=Mullins - -+pci:v00001002d00009900* -+ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660G] -+ - pci:v00001002d00009901* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660D] - -@@ -9498,7 +9570,7 @@ pci:v00001011d0000000D* - ID_MODEL_FROM_DATABASE=PBXGB [TGA2] - - pci:v00001011d0000000F* -- ID_MODEL_FROM_DATABASE=PCI-to-PDQ Interface Chip [PFI] -+ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] - - pci:v00001011d0000000Fsv00001011sd0000DEF1* - ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) -@@ -9596,6 +9668,9 @@ pci:v00001011d00000019sv00001186sd00001102* - pci:v00001011d00000019sv00001186sd00001112* - ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet - -+pci:v00001011d00000019sv000011F0sd00004235* -+ ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] -+ - pci:v00001011d00000019sv00001259sd00002800* - ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet - -@@ -9761,6 +9836,9 @@ pci:v00001013d000000B0* - pci:v00001013d000000B8* - ID_MODEL_FROM_DATABASE=GD 5446 - -+pci:v00001013d000000B8sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001013d000000BC* - ID_MODEL_FROM_DATABASE=GD 5480 - -@@ -10487,6 +10565,9 @@ pci:v0000101Ed00001960sv00001028sd00000511* - pci:v0000101Ed00001960sv0000103Csd000060E7* - ID_MODEL_FROM_DATABASE=NetRAID-1M - -+pci:v0000101Ed00001960sv0000103Csd000060E8* -+ ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] -+ - pci:v0000101Ed00009010* - ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller - -@@ -10811,6 +10892,9 @@ pci:v00001022d00002003* - pci:v00001022d00002020* - ID_MODEL_FROM_DATABASE=53c974 [PCscsi] - -+pci:v00001022d00002020sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001022d00002040* - ID_MODEL_FROM_DATABASE=79c974 - -@@ -12263,6 +12347,9 @@ pci:v0000102Bd00002007* - pci:v0000102Bd00002527* - ID_MODEL_FROM_DATABASE=Millennium G550 - -+pci:v0000102Bd00002527sv0000102Bsd00000F42* -+ ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI -+ - pci:v0000102Bd00002527sv0000102Bsd00000F83* - ID_MODEL_FROM_DATABASE=Millennium G550 - -@@ -12515,6 +12602,9 @@ pci:v0000102Bd00004949* - pci:v0000102Bd00004949sv0000102Bsd00000010* - ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber - -+pci:v0000102Bd00004949sv0000102Bsd00000011* -+ ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber -+ - pci:v0000102Bd00004949sv0000102Bsd00000020* - ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber - -@@ -12527,6 +12617,18 @@ pci:v0000102Bd00004949sv0000102Bsd00000040* - pci:v0000102Bd00004949sv0000102Bsd00000050* - ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber - -+pci:v0000102Bd00004949sv0000102Bsd00001010* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber -+ -+pci:v0000102Bd00004949sv0000102Bsd00001015* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber -+ -+pci:v0000102Bd00004949sv0000102Bsd00001020* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber -+ -+pci:v0000102Bd00004949sv0000102Bsd00001050* -+ ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber -+ - pci:v0000102Bd00004CDC* - ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator - -@@ -12911,6 +13013,9 @@ pci:v00001033d00000194sv00001028sd000004DA* - pci:v00001033d00000194sv00001043sd00008413* - ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard - -+pci:v00001033d00000194sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001033d00000194sv00001B96sd00000001* - ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card - -@@ -13853,9 +13958,6 @@ pci:v0000103Cd00004037* - pci:v0000103Cd0000403B* - ID_MODEL_FROM_DATABASE=PCIe Root Port - --pci:v0000103Cd000060E8* -- ID_MODEL_FROM_DATABASE=NetRAID-2M : ZX1/M (OEM AMI MegaRAID 493) -- - pci:v0000103E* - ID_VENDOR_FROM_DATABASE=Solliday Engineering - -@@ -14159,6 +14261,9 @@ pci:v0000104Ad00000010* - pci:v0000104Ad00000010sv0000104Asd00004018* - ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) - -+pci:v0000104Ad00000010sv00001681sd00000010* -+ ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] -+ - pci:v0000104Ad00000010sv00001681sd00000028* - ID_MODEL_FROM_DATABASE=3D Prophet 4000XT - -@@ -14426,6 +14531,9 @@ pci:v0000104Cd00008022sv0000104Csd00008023* - pci:v0000104Cd00008023* - ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] - -+pci:v0000104Cd00008023sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v0000104Cd00008023sv0000103Csd0000088C* - ID_MODEL_FROM_DATABASE=NC8000 laptop - -@@ -15233,6 +15341,9 @@ pci:v00001054d0000302C* - pci:v00001054d0000302D* - ID_MODEL_FROM_DATABASE=M001 PCI Express Switch Downstream Port - -+pci:v00001054d00003070* -+ ID_MODEL_FROM_DATABASE=Hitachi FIVE-FX Fibre Channel to PCIe HBA -+ - pci:v00001054d00003505* - ID_MODEL_FROM_DATABASE=SH7751 PCI Controller (PCIC) - -@@ -16208,6 +16319,9 @@ pci:v0000106Bd0000003E* - pci:v0000106Bd0000003F* - ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB - -+pci:v0000106Bd0000003Fsv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v0000106Bd00000040* - ID_MODEL_FROM_DATABASE=K2 KeyLargo USB - -@@ -16517,6 +16631,9 @@ pci:v00001077d00002422sv0000103Csd000012DD* - pci:v00001077d00002432* - ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA - -+pci:v00001077d00002432sv0000103Csd00007040* -+ ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] -+ - pci:v00001077d00002532* - ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA - -@@ -16815,7 +16932,7 @@ pci:v0000108Dd00000002* - ID_MODEL_FROM_DATABASE=16/4 Token Ring - - pci:v0000108Dd00000004* -- ID_MODEL_FROM_DATABASE=RapidFire 3139 Token-Ring 16/4 PCI Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter - - pci:v0000108Dd00000004sv0000108Dsd00000004* - ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter -@@ -17294,6 +17411,30 @@ pci:v00001093d00002CC0* - pci:v00001093d00002DB0* - ID_MODEL_FROM_DATABASE=PCI-6608 - -+pci:v00001093d0000702C* -+ ID_MODEL_FROM_DATABASE=PXI-7831R -+ -+pci:v00001093d0000702D* -+ ID_MODEL_FROM_DATABASE=PCI-7831R -+ -+pci:v00001093d0000702E* -+ ID_MODEL_FROM_DATABASE=PXI-7811R -+ -+pci:v00001093d0000702F* -+ ID_MODEL_FROM_DATABASE=PCI-7811R -+ -+pci:v00001093d00007055* -+ ID_MODEL_FROM_DATABASE=PXI-7830R -+ -+pci:v00001093d00007056* -+ ID_MODEL_FROM_DATABASE=PCI-7830R -+ -+pci:v00001093d00007074* -+ ID_MODEL_FROM_DATABASE=PXI-7833R -+ -+pci:v00001093d00007083* -+ ID_MODEL_FROM_DATABASE=PCI-7833R -+ - pci:v00001093d00007085* - ID_MODEL_FROM_DATABASE=PCI-6509 - -@@ -17369,6 +17510,9 @@ pci:v00001093d0000714C* - pci:v00001093d0000714D* - ID_MODEL_FROM_DATABASE=PCI-5114 - -+pci:v00001093d00007152* -+ ID_MODEL_FROM_DATABASE=PCI-5640R -+ - pci:v00001093d0000716C* - ID_MODEL_FROM_DATABASE=PCI-6225 - -@@ -17378,6 +17522,12 @@ pci:v00001093d0000717D* - pci:v00001093d0000717F* - ID_MODEL_FROM_DATABASE=PCIe-6259 - -+pci:v00001093d00007193* -+ ID_MODEL_FROM_DATABASE=PXI-7813R -+ -+pci:v00001093d00007194* -+ ID_MODEL_FROM_DATABASE=PCI-7813R -+ - pci:v00001093d000071BC* - ID_MODEL_FROM_DATABASE=PCI-6221 (37pin) - -@@ -17420,6 +17570,51 @@ pci:v00001093d0000734A* - pci:v00001093d0000737D* - ID_MODEL_FROM_DATABASE=PXI-5124EX - -+pci:v00001093d00007384* -+ ID_MODEL_FROM_DATABASE=PXI-7851R -+ -+pci:v00001093d00007385* -+ ID_MODEL_FROM_DATABASE=PXI-7852R -+ -+pci:v00001093d00007386* -+ ID_MODEL_FROM_DATABASE=PCIe-7851R -+ -+pci:v00001093d00007387* -+ ID_MODEL_FROM_DATABASE=PCIe-7852R -+ -+pci:v00001093d00007390* -+ ID_MODEL_FROM_DATABASE=PXI-7841R -+ -+pci:v00001093d00007391* -+ ID_MODEL_FROM_DATABASE=PXI-7842R -+ -+pci:v00001093d00007392* -+ ID_MODEL_FROM_DATABASE=PXI-7853R -+ -+pci:v00001093d00007393* -+ ID_MODEL_FROM_DATABASE=PCIe-7841R -+ -+pci:v00001093d00007394* -+ ID_MODEL_FROM_DATABASE=PCIe-7842R -+ -+pci:v00001093d000073A5* -+ ID_MODEL_FROM_DATABASE=PXIe-5641R -+ -+pci:v00001093d000073D5* -+ ID_MODEL_FROM_DATABASE=PXI-7951R -+ -+pci:v00001093d000073D6* -+ ID_MODEL_FROM_DATABASE=PXI-7952R -+ -+pci:v00001093d000073D7* -+ ID_MODEL_FROM_DATABASE=PXI-7953R -+ -+pci:v00001093d000073E1* -+ ID_MODEL_FROM_DATABASE=PXI-7854R -+ -+pci:v00001093d000073EC* -+ ID_MODEL_FROM_DATABASE=PXI-7954R -+ - pci:v00001093d000073F0* - ID_MODEL_FROM_DATABASE=PXI-5153 - -@@ -17438,6 +17633,18 @@ pci:v00001093d00007460* - pci:v00001093d00007461* - ID_MODEL_FROM_DATABASE=PCI-5154EX - -+pci:v00001093d00007539* -+ ID_MODEL_FROM_DATABASE=NI 9157 -+ -+pci:v00001093d0000753A* -+ ID_MODEL_FROM_DATABASE=NI 9159 -+ -+pci:v00001093d00007626* -+ ID_MODEL_FROM_DATABASE=NI 9154 -+ -+pci:v00001093d00007627* -+ ID_MODEL_FROM_DATABASE=NI 9155 -+ - pci:v00001093d0000B001* - ID_MODEL_FROM_DATABASE=IMAQ-PCI-1408 - -@@ -17469,7 +17676,28 @@ pci:v00001093d0000B091* - ID_MODEL_FROM_DATABASE=IMAQ-PXI-1411 - - pci:v00001093d0000C4C4* -- ID_MODEL_FROM_DATABASE=PXIe-4353/5160 -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device -+ -+pci:v00001093d0000C4C4sv00001093sd000074B2* -+ ID_MODEL_FROM_DATABASE=PXIe-4353 -+ -+pci:v00001093d0000C4C4sv00001093sd000074D0* -+ ID_MODEL_FROM_DATABASE=PXIe-7961R -+ -+pci:v00001093d0000C4C4sv00001093sd000074E2* -+ ID_MODEL_FROM_DATABASE=PXIe-7962R -+ -+pci:v00001093d0000C4C4sv00001093sd000074E3* -+ ID_MODEL_FROM_DATABASE=PXIe-7965R -+ -+pci:v00001093d0000C4C4sv00001093sd00007553* -+ ID_MODEL_FROM_DATABASE=PCIe-1473R -+ -+pci:v00001093d0000C4C4sv00001093sd000075CE* -+ ID_MODEL_FROM_DATABASE=PXIe-7966R -+ -+pci:v00001093d0000C4C4sv00001093sd000076B7* -+ ID_MODEL_FROM_DATABASE=PXIe-7975R - - pci:v00001093d0000C4C4sv00001093sd000076D0* - ID_MODEL_FROM_DATABASE=PXIe-5160 -@@ -17696,9 +17924,6 @@ pci:v0000109Ed0000036Esv00001461sd00000761* - pci:v0000109Ed0000036Esv00001461sd00000771* - ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 - --pci:v0000109Ed0000036Esv00001464sd0000AA00* -- ID_MODEL_FROM_DATABASE=iTuner Spectra8 -- - pci:v0000109Ed0000036Esv000014F1sd00000001* - ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC - -@@ -18152,6 +18377,9 @@ pci:v000010A9d00008001* - pci:v000010A9d00008002* - ID_MODEL_FROM_DATABASE=G-net NT - -+pci:v000010A9d0000802B* -+ ID_MODEL_FROM_DATABASE=REACT external interrupt controller -+ - pci:v000010AA* - ID_VENDOR_FROM_DATABASE=ACC Microelectronics - -@@ -18485,6 +18713,9 @@ pci:v000010B5d00008732* - pci:v000010B5d00008734* - ID_MODEL_FROM_DATABASE=PEX 8734 32-lane, 8-Port PCI Express Gen 3 (8.0GT/s) Switch - -+pci:v000010B5d00008747* -+ ID_MODEL_FROM_DATABASE=PEX 8747 48-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch -+ - pci:v000010B5d000087B0* - ID_MODEL_FROM_DATABASE=PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch - -@@ -18969,10 +19200,10 @@ pci:v000010B6d00000009sv000010B6sd00000009* - ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode - - pci:v000010B6d0000000A* -- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode -+ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner - - pci:v000010B6d0000000Asv000010B6sd0000000A* -- ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI Ringnode -+ ID_MODEL_FROM_DATABASE=Token Ring 100/16/4 Ringnode/Ringrunner - - pci:v000010B6d0000000B* - ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 -@@ -19001,6 +19232,9 @@ pci:v000010B7* - pci:v000010B7d00000001* - ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) - -+pci:v000010B7d00000001sv00009850sd00000001* -+ ID_MODEL_FROM_DATABASE=3c985B-SX -+ - pci:v000010B7d00000013* - ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) - -@@ -21042,10 +21276,7 @@ pci:v000010DEd000000CC* - ID_MODEL_FROM_DATABASE=NV41GLM [Quadro FX Go1400] - - pci:v000010DEd000000CD* -- ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 3450/4000 SDI] -- --pci:v000010DEd000000CDsv000010DEsd0000029B* -- ID_MODEL_FROM_DATABASE=wx4300 Workstation -+ ID_MODEL_FROM_DATABASE=NV42GL [Quadro FX 3450/4000 SDI] - - pci:v000010DEd000000CE* - ID_MODEL_FROM_DATABASE=NV41GL [Quadro FX 1400] -@@ -24858,7 +25089,7 @@ pci:v000010DEd0000086E* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9100M G] - - pci:v000010DEd0000086F* -- ID_MODEL_FROM_DATABASE=C79 [GeForce 9200M G] -+ ID_MODEL_FROM_DATABASE=MCP79 [GeForce 8200M G] - - pci:v000010DEd00000870* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] -@@ -26006,6 +26237,9 @@ pci:v000010DEd00001005sv00003842sd00002795* - pci:v000010DEd0000100A* - ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] - -+pci:v000010DEd0000100C* -+ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX Titan Black] -+ - pci:v000010DEd0000101F* - ID_MODEL_FROM_DATABASE=GK110GL [Tesla K20] - -@@ -26582,6 +26816,9 @@ pci:v000010DEd00001140sv00001462sd000010B8* - pci:v000010DEd00001140sv00001462sd000010E9* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -+pci:v000010DEd00001140sv00001462sd00001116* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ - pci:v000010DEd00001140sv00001462sd0000AA33* - ID_MODEL_FROM_DATABASE=GeForce 720M - -@@ -26750,6 +26987,9 @@ pci:v000010DEd00001140sv00001B0Asd00002202* - pci:v000010DEd00001180* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] - -+pci:v000010DEd00001180sv00001043sd000083F1* -+ ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 -+ - pci:v000010DEd00001180sv00003842sd00003682* - ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition - -@@ -26804,6 +27044,15 @@ pci:v000010DEd0000118F* - pci:v000010DEd00001193* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] - -+pci:v000010DEd00001198* -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] -+ -+pci:v000010DEd00001199* -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 870M] -+ -+pci:v000010DEd0000119A* -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 860M] -+ - pci:v000010DEd0000119D* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 775M Mac Edition] - -@@ -27065,6 +27314,9 @@ pci:v000010DEd00001251* - pci:v000010DEd00001280* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 635] - -+pci:v000010DEd00001281* -+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 710] -+ - pci:v000010DEd00001282* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 640 Rev. 2] - -@@ -27107,6 +27359,9 @@ pci:v000010DEd00001294* - pci:v000010DEd00001295* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] - -+pci:v000010DEd00001296* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] -+ - pci:v000010DEd00001298* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 720M] - -@@ -27119,12 +27374,48 @@ pci:v000010DEd000012B9* - pci:v000010DEd000012BA* - ID_MODEL_FROM_DATABASE=GK208GLM [Quadro K510M] - -+pci:v000010DEd00001340* -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] -+ -+pci:v000010DEd00001341* -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] -+ -+pci:v000010DEd00001380* -+ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] -+ -+pci:v000010DEd00001381* -+ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750] -+ -+pci:v000010DEd00001382* -+ ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 745] -+ -+pci:v000010DEd00001390* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce 845M] -+ -+pci:v000010DEd00001391* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] -+ -+pci:v000010DEd00001392* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] -+ -+pci:v000010DEd00001393* -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] -+ - pci:v000010DF* - ID_VENDOR_FROM_DATABASE=Emulex Corporation - - pci:v000010DFd00000720* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) - -+pci:v000010DFd00000720sv000017AAsd00001056* -+ ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric -+ -+pci:v000010DFd00000720sv000017AAsd00001057* -+ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric -+ -+pci:v000010DFd00000720sv000017AAsd00001059* -+ ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric -+ - pci:v000010DFd00000722* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) - -@@ -27167,6 +27458,12 @@ pci:v000010DFd0000E208* - pci:v000010DFd0000E220* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) - -+pci:v000010DFd0000E220sv000017AAsd00001054* -+ ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric -+ -+pci:v000010DFd0000E220sv000017AAsd00001055* -+ ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric -+ - pci:v000010DFd0000E240* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) - -@@ -27573,7 +27870,7 @@ pci:v000010ECd00008029sv00001259sd00002400* - ID_MODEL_FROM_DATABASE=AT-2400 - - pci:v000010ECd00008029sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine - - pci:v000010ECd00008129* - ID_MODEL_FROM_DATABASE=RTL-8129 -@@ -27603,7 +27900,7 @@ pci:v000010ECd00008138sv000010ECsd00008138* - ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter - - pci:v000010ECd00008139* -- ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - - pci:v000010ECd00008139sv00000357sd0000000A* - ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 -@@ -27638,11 +27935,14 @@ pci:v000010ECd00008139sv00001071sd00008160* - pci:v000010ECd00008139sv000010BDsd00000320* - ID_MODEL_FROM_DATABASE=EP-320X-R - -+pci:v000010ECd00008139sv000010ECsd00008139* -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter -+ - pci:v000010ECd00008139sv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop - - pci:v000010ECd00008139sv00001113sd0000EC01* -- ID_MODEL_FROM_DATABASE=FNC-0107TX -+ ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX - - pci:v000010ECd00008139sv00001186sd00001300* - ID_MODEL_FROM_DATABASE=DFE-538TX -@@ -27734,6 +28034,9 @@ pci:v000010ECd00008139sv0000187Esd00003303* - pci:v000010ECd00008139sv00001904sd00008139* - ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter - -+pci:v000010ECd00008139sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v000010ECd00008139sv00002646sd00000001* - ID_MODEL_FROM_DATABASE=KNE120TX - -@@ -27779,6 +28082,9 @@ pci:v000010ECd00008168sv0000103Csd00001611* - pci:v000010ECd00008168sv0000103Csd00001950* - ID_MODEL_FROM_DATABASE=ProBook 450/455 - -+pci:v000010ECd00008168sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v000010ECd00008168sv00001043sd000011F5* - ID_MODEL_FROM_DATABASE=A6J-Q008 - -@@ -27815,6 +28121,9 @@ pci:v000010ECd00008168sv00001462sd0000238C* - pci:v000010ECd00008168sv00001462sd0000368C* - ID_MODEL_FROM_DATABASE=K9AG Neo2 - -+pci:v000010ECd00008168sv00001462sd00004180* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v000010ECd00008168sv00001462sd00007522* - ID_MODEL_FROM_DATABASE=X58 Pro-E - -@@ -27894,10 +28203,10 @@ pci:v000010ECd00008176sv00001A3Bsd00001139* - ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card - - pci:v000010ECd00008177* -- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter -+ ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter - - pci:v000010ECd00008178* -- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter -+ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter - - pci:v000010ECd00008179* - ID_MODEL_FROM_DATABASE=RTL8188EE Wireless Network Adapter -@@ -27914,11 +28223,14 @@ pci:v000010ECd00008180sv00001737sd00000019* - pci:v000010ECd00008185* - ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller - -+pci:v000010ECd0000818B* -+ ID_MODEL_FROM_DATABASE=RTL8192EE PCIe Wireless Network Adapter -+ - pci:v000010ECd00008190* -- ID_MODEL_FROM_DATABASE=RTL8190 802.11n Wireless LAN -+ ID_MODEL_FROM_DATABASE=RTL8190 802.11n PCI Wireless Network Adapter - - pci:v000010ECd00008191* -- ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter -+ ID_MODEL_FROM_DATABASE=RTL8192CE PCIe Wireless Network Adapter - - pci:v000010ECd00008192* - ID_MODEL_FROM_DATABASE=RTL8192E/RTL8192SE Wireless LAN Controller -@@ -27938,6 +28250,15 @@ pci:v000010ECd00008199sv00001462sd00006894* - pci:v000010ECd00008723* - ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter - -+pci:v000010ECd00008812* -+ ID_MODEL_FROM_DATABASE=RTL8812AE 802.11ac PCIe Wireless Network Adapter -+ -+pci:v000010ECd00008813* -+ ID_MODEL_FROM_DATABASE=RTL8813AE 802.11ac PCIe Wireless Network Adapter -+ -+pci:v000010ECd00008821* -+ ID_MODEL_FROM_DATABASE=RTL8821AE 802.11ac PCIe Wireless Network Adapter -+ - pci:v000010ECd0000B723* - ID_MODEL_FROM_DATABASE=RTL8723BE PCIe Wireless Network Adapter - -@@ -28211,6 +28532,9 @@ pci:v00001102d00000004sv00001102sd00000058* - pci:v00001102d00000004sv00001102sd00001002* - ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum - -+pci:v00001102d00000004sv00001102sd00001003* -+ ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 -+ - pci:v00001102d00000004sv00001102sd00001007* - ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 - -@@ -28436,6 +28760,9 @@ pci:v00001103d00001742* - pci:v00001103d00002210* - ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller - -+pci:v00001103d00002210sv000011ABsd000011AB* -+ ID_MODEL_FROM_DATABASE=88SX6042 -+ - pci:v00001103d00002300* - ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller - -@@ -28635,7 +28962,7 @@ pci:v00001106d00000415* - ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller - - pci:v00001106d00000415sv00001043sd0000838F* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=Motherboard - - pci:v00001106d00000501* - ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] -@@ -29033,6 +29360,9 @@ pci:v00001106d00003038sv00001849sd00003038* - pci:v00001106d00003038sv000019DAsd0000A179* - ID_MODEL_FROM_DATABASE=ZBOX nano VD01 - -+pci:v00001106d00003038sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001106d00003040* - ID_MODEL_FROM_DATABASE=VT82C586B ACPI - -@@ -29591,6 +29921,9 @@ pci:v00001106d00003238* - pci:v00001106d00003249* - ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller - -+pci:v00001106d00003249sv00001106sd00003249* -+ ID_MODEL_FROM_DATABASE=VT6421 IDE/SATA Controller -+ - pci:v00001106d0000324A* - ID_MODEL_FROM_DATABASE=CX700/VX700 PCI to PCI Bridge - -@@ -30180,7 +30513,7 @@ pci:v00001109d00001400* - ID_MODEL_FROM_DATABASE=EM110TX [EX110TX] - - pci:v0000110A* -- ID_VENDOR_FROM_DATABASE=Siemens Nixdorf AG -+ ID_VENDOR_FROM_DATABASE=Siemens AG - - pci:v0000110Ad00000002* - ID_MODEL_FROM_DATABASE=Pirahna 2-port -@@ -30216,20 +30549,56 @@ pci:v0000110Ad00002104* - ID_MODEL_FROM_DATABASE=Eicon Diva 2.02 compatible passive ISDN card - - pci:v0000110Ad00003141* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 (Profibus Adapter) -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5611 / 5621 - - pci:v0000110Ad00003142* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A1 (Profibus Adapter) -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 / 5614 -+ -+pci:v0000110Ad00003143* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 - - pci:v0000110Ad00004021* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) - - pci:v0000110Ad00004029* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613A2 (Profibus Adapter) -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 -+ -+pci:v0000110Ad00004029sv0000110Asd00004029* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 -+ -+pci:v0000110Ad00004029sv0000110Asd0000C029* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 - - pci:v0000110Ad00004035* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 - -+pci:v0000110Ad00004036* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1616 -+ -+pci:v0000110Ad00004038* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1604 -+ -+pci:v0000110Ad00004069* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 -+ -+pci:v0000110Ad00004069sv0000110Asd0000C069* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 -+ -+pci:v0000110Ad0000407C* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 -+ -+pci:v0000110Ad0000407D* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A3 -+ -+pci:v0000110Ad0000407E* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5622 -+ -+pci:v0000110Ad00004083* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A3 -+ -+pci:v0000110Ad00004084* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1626 -+ - pci:v0000110Ad00004942* - ID_MODEL_FROM_DATABASE=FPGA I-Bus Tracer for MBD - -@@ -31244,9 +31613,24 @@ pci:v00001131d00007133sv00005ACEsd00006290* - pci:v00001131d00007133sv00005ACEsd00007090* - ID_MODEL_FROM_DATABASE=Behold TV A7 - -+pci:v00001131d00007133sv00005ACEsd00007150* -+ ID_MODEL_FROM_DATABASE=Behold TV H75 -+ -+pci:v00001131d00007133sv00005ACEsd00007151* -+ ID_MODEL_FROM_DATABASE=Behold TV H75 -+ - pci:v00001131d00007133sv00005ACEsd00007190* - ID_MODEL_FROM_DATABASE=Behold TV H7 - -+pci:v00001131d00007133sv00005ACEsd00007191* -+ ID_MODEL_FROM_DATABASE=Behold TV H7 -+ -+pci:v00001131d00007133sv00005ACEsd00007290* -+ ID_MODEL_FROM_DATABASE=Behold TV T7 -+ -+pci:v00001131d00007133sv00005ACEsd00007591* -+ ID_MODEL_FROM_DATABASE=Behold TV X7 -+ - pci:v00001131d00007133sv00005ACEsd00007595* - ID_MODEL_FROM_DATABASE=Behold TV X7 - -@@ -31553,9 +31937,30 @@ pci:v00001131d00007231* - pci:v00001131d00007231sv00005ACEsd00008000* - ID_MODEL_FROM_DATABASE=Behold TV H8 - -+pci:v00001131d00007231sv00005ACEsd00008001* -+ ID_MODEL_FROM_DATABASE=Behold TV H8 -+ -+pci:v00001131d00007231sv00005ACEsd00008050* -+ ID_MODEL_FROM_DATABASE=Behold TV H85 -+ -+pci:v00001131d00007231sv00005ACEsd00008051* -+ ID_MODEL_FROM_DATABASE=Behold TV H85 -+ - pci:v00001131d00007231sv00005ACEsd00008100* - ID_MODEL_FROM_DATABASE=Behold TV A8 - -+pci:v00001131d00007231sv00005ACEsd00008101* -+ ID_MODEL_FROM_DATABASE=Behold TV A8 -+ -+pci:v00001131d00007231sv00005ACEsd00008150* -+ ID_MODEL_FROM_DATABASE=Behold TV A85 -+ -+pci:v00001131d00007231sv00005ACEsd00008151* -+ ID_MODEL_FROM_DATABASE=Behold TV A85 -+ -+pci:v00001131d00007231sv00005ACEsd00008201* -+ ID_MODEL_FROM_DATABASE=Behold TV T8 -+ - pci:v00001131d00009730* - ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller - -@@ -35042,6 +35447,9 @@ pci:v000011C1d00005811* - pci:v000011C1d00005811sv0000103Csd00002A34* - ID_MODEL_FROM_DATABASE=Pavilion a1677c - -+pci:v000011C1d00005811sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v000011C1d00005811sv0000103Csd00002A9E* - ID_MODEL_FROM_DATABASE=Pavilion p6310f - -@@ -35858,6 +36266,9 @@ pci:v00001217d00008330sv00001028sd000004A3* - pci:v00001217d00008331* - ID_MODEL_FROM_DATABASE=O2 Flash Memory Card - -+pci:v00001217d00008520* -+ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller -+ - pci:v00001218* - ID_VENDOR_FROM_DATABASE=Hybricon Corp. - -@@ -36852,7 +37263,7 @@ pci:v00001274d00001171* - ID_MODEL_FROM_DATABASE=ES1373 [AudioPCI] (also Creative Labs CT5803) - - pci:v00001274d00001371* -- ID_MODEL_FROM_DATABASE=ES1371 [AudioPCI-97] -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] - - pci:v00001274d00001371sv00000E11sd00000024* - ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro -@@ -36870,7 +37281,7 @@ pci:v00001274d00001371sv0000107Bsd00008054* - ID_MODEL_FROM_DATABASE=Tabor2 - - pci:v00001274d00001371sv00001274sd00001371* -- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI64V, AudioPCI128 -+ ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 - - pci:v00001274d00001371sv00001274sd00008001* - ID_MODEL_FROM_DATABASE=CT4751 board -@@ -41858,12 +42269,24 @@ pci:v00001425d00005013* - pci:v00001425d00005014* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005015* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005080* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005081* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005083* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005084* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005085* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d00005401* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -41924,12 +42347,24 @@ pci:v00001425d00005413* - pci:v00001425d00005414* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005415* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005480* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005481* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005483* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005484* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005485* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d00005501* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller - -@@ -41990,12 +42425,24 @@ pci:v00001425d00005513* - pci:v00001425d00005514* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller - -+pci:v00001425d00005515* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller -+ - pci:v00001425d00005580* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller - - pci:v00001425d00005581* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller - -+pci:v00001425d00005583* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller -+ -+pci:v00001425d00005584* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller -+ -+pci:v00001425d00005585* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller -+ - pci:v00001425d00005601* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller - -@@ -42056,12 +42503,24 @@ pci:v00001425d00005613* - pci:v00001425d00005614* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller - -+pci:v00001425d00005615* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Storage Controller -+ - pci:v00001425d00005680* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Storage Controller - - pci:v00001425d00005681* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Storage Controller - -+pci:v00001425d00005683* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Storage Controller -+ -+pci:v00001425d00005684* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Storage Controller -+ -+pci:v00001425d00005685* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller -+ - pci:v00001425d00005701* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -42122,12 +42581,24 @@ pci:v00001425d00005713* - pci:v00001425d00005714* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005715* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005780* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005781* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005783* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005784* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005785* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d00005801* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -42188,12 +42659,24 @@ pci:v00001425d00005813* - pci:v00001425d00005814* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller - -+pci:v00001425d00005815* -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ - pci:v00001425d00005880* - ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller - - pci:v00001425d00005881* - ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller - -+pci:v00001425d00005883* -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005884* -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ -+pci:v00001425d00005885* -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ - pci:v00001425d0000A000* - ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller - -@@ -42483,7 +42966,7 @@ pci:v00001461d0000F436* - ID_MODEL_FROM_DATABASE=AVerTV Hybrid+FM - - pci:v00001462* -- ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. -+ ID_VENDOR_FROM_DATABASE=Micro-Star International Co., Ltd. [MSI] - - pci:v00001463* - ID_VENDOR_FROM_DATABASE=Fast Corporation -@@ -43847,6 +44330,33 @@ pci:v000014E4d0000168E* - pci:v000014E4d0000168Esv0000103Csd00001798* - ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] - -+pci:v000014E4d0000168Esv0000103Csd000017A5* -+ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd000018D3* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001930* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001931* -+ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001932* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00001933* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd0000193A* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd00003382* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ -+pci:v000014E4d0000168Esv0000103Csd0000339D* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ - pci:v000014E4d00001690* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe - -@@ -43922,9 +44432,21 @@ pci:v000014E4d000016A1* - pci:v000014E4d000016A2* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet - -+pci:v000014E4d000016A2sv0000103Csd00001916* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ -+pci:v000014E4d000016A2sv0000103Csd00001917* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ - pci:v000014E4d000016A4* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function - -+pci:v000014E4d000016A4sv0000103Csd00001916* -+ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter -+ -+pci:v000014E4d000016A4sv0000103Csd00001917* -+ ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter -+ - pci:v000014E4d000016A5* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function - -@@ -44048,12 +44570,78 @@ pci:v000014E4d000016ACsv0000103Csd0000703D* - pci:v000014E4d000016AD* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function - -+pci:v000014E4d000016ADsv0000103Csd00001916* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ -+pci:v000014E4d000016ADsv0000103Csd00001917* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ - pci:v000014E4d000016AE* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function - -+pci:v000014E4d000016AEsv0000103Csd00001798* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd000017A5* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd000018D3* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001930* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001931* -+ ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001932* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00001933* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd0000193A* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd00003382* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AEsv0000103Csd0000339D* -+ ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter -+ - pci:v000014E4d000016AF* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function - -+pci:v000014E4d000016AFsv0000103Csd00001798* -+ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd000017A5* -+ ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd000018D3* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001930* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001931* -+ ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001932* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00001933* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd0000193A* -+ ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd00003382* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ -+pci:v000014E4d000016AFsv0000103Csd0000339D* -+ ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ - pci:v000014E4d000016B0* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe - -@@ -49484,6 +50072,9 @@ pci:v00001814d0000539F* - pci:v00001814d0000539Fsv0000103Csd00001637* - ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card - -+pci:v00001814d00005592* -+ ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter -+ - pci:v00001814d0000E932* - ID_MODEL_FROM_DATABASE=RT2560F 802.11 b/g PCI - -@@ -50480,6 +51071,12 @@ pci:v0000193Fd00000367* - pci:v0000193Fd00000370* - ID_MODEL_FROM_DATABASE=AHA370-PCIe - -+pci:v0000193Fd00003641* -+ ID_MODEL_FROM_DATABASE=AHA3641 -+ -+pci:v0000193Fd00003642* -+ ID_MODEL_FROM_DATABASE=AHA3642 -+ - pci:v00001942* - ID_VENDOR_FROM_DATABASE=ClearSpeed Technology plc - -@@ -50633,6 +51230,9 @@ pci:v00001957d00000084* - pci:v00001957d00000085* - ID_MODEL_FROM_DATABASE=MPC8347 PBGA - -+pci:v00001957d00000085sv0000110Asd00004046* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 -+ - pci:v00001957d00000086* - ID_MODEL_FROM_DATABASE=MPC8343E - -@@ -51095,6 +51695,9 @@ pci:v000019A2d00000710sv0000103Csd00003341* - pci:v000019A2d00000710sv0000103Csd00003345* - ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter - -+pci:v000019A2d00000710sv0000103Csd0000337B* -+ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ - pci:v000019A2d00000712* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) - -@@ -51104,6 +51707,9 @@ pci:v000019A2d00000714* - pci:v000019A2d00000714sv0000103Csd00003315* - ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter - -+pci:v000019A2d00000714sv0000103Csd0000337B* -+ ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ - pci:v000019A8* - ID_VENDOR_FROM_DATABASE=DAQDATA GmbH - -@@ -51236,6 +51842,9 @@ pci:v00001A22* - pci:v00001A29* - ID_VENDOR_FROM_DATABASE=Fortinet, Inc. - -+pci:v00001A29d00004338* -+ ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC -+ - pci:v00001A2B* - ID_VENDOR_FROM_DATABASE=Ascom AG - -@@ -51605,6 +52214,12 @@ pci:v00001AF4d00001005* - pci:v00001AF4d00001009* - ID_MODEL_FROM_DATABASE=Virtio filesystem - -+pci:v00001AF4d00001110* -+ ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory -+ -+pci:v00001AF4d00001110sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001AF5* - ID_VENDOR_FROM_DATABASE=Netezza Corp. - -@@ -51647,6 +52262,9 @@ pci:v00001B21d00000612sv00001849sd00000612* - pci:v00001B21d00001042* - ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller - -+pci:v00001B21d00001042sv00001043sd00008488* -+ ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ - pci:v00001B21d00001042sv00001849sd00001042* - ID_MODEL_FROM_DATABASE=Motherboard - -@@ -51662,6 +52280,39 @@ pci:v00001B2C* - pci:v00001B36* - ID_VENDOR_FROM_DATABASE=Red Hat, Inc. - -+pci:v00001B36d00000001* -+ ID_MODEL_FROM_DATABASE=QEMU PCI-PCI bridge -+ -+pci:v00001B36d00000002* -+ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter -+ -+pci:v00001B36d00000002sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000003* -+ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter -+ -+pci:v00001B36d00000003sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000004* -+ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter -+ -+pci:v00001B36d00000004sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000005* -+ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device -+ -+pci:v00001B36d00000005sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ -+pci:v00001B36d00000100* -+ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card -+ -+pci:v00001B36d00000100sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00001B37* - ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB - -@@ -51725,6 +52376,9 @@ pci:v00001B4Bd00009130sv00001043sd00008438* - pci:v00001B4Bd00009172* - ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller - -+pci:v00001B4Bd00009178* -+ ID_MODEL_FROM_DATABASE=88SE9170 PCIe SATA 6Gb/s Controller -+ - pci:v00001B4Bd0000917A* - ID_MODEL_FROM_DATABASE=88SE9172 SATA III 6Gb/s RAID Controller - -@@ -51875,6 +52529,9 @@ pci:v00001BBFd00000004* - pci:v00001BF4* - ID_VENDOR_FROM_DATABASE=VTI Instruments Corporation - -+pci:v00001BF4d00000001* -+ ID_MODEL_FROM_DATABASE=SentinelEX -+ - pci:v00001BFD* - ID_VENDOR_FROM_DATABASE=EeeTOP - -@@ -51902,6 +52559,18 @@ pci:v00001C2Cd000000A1* - pci:v00001C2Cd000000A2* - ID_MODEL_FROM_DATABASE=FBC8XG Capture 8x10Gb - -+pci:v00001C2Cd000000A3* -+ ID_MODEL_FROM_DATABASE=FBC2XG Capture 2x10Gb -+ -+pci:v00001C2Cd000000A4* -+ ID_MODEL_FROM_DATABASE=FBC4XGG3 Capture 4x10Gb -+ -+pci:v00001C2Cd000000A5* -+ ID_MODEL_FROM_DATABASE=FBC2XLG Capture 2x40Gb -+ -+pci:v00001C2Cd000000A6* -+ ID_MODEL_FROM_DATABASE=FBC1CG Capture 1x100Gb -+ - pci:v00001C32* - ID_VENDOR_FROM_DATABASE=Highland Technology, Inc. - -@@ -53970,7 +54639,7 @@ pci:v00008086d00000100sv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - - pci:v00008086d00000100sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard - - pci:v00008086d00000101* - ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port -@@ -53987,6 +54656,9 @@ pci:v00008086d00000102* - pci:v00008086d00000102sv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - -+pci:v00008086d00000102sv00001043sd00000102* -+ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ - pci:v00008086d00000104* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller - -@@ -54065,9 +54737,15 @@ pci:v00008086d00000151* - pci:v00008086d00000151sv00001043sd00001477* - ID_MODEL_FROM_DATABASE=N56VZ - -+pci:v00008086d00000151sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00000151sv00001043sd000084CA* - ID_MODEL_FROM_DATABASE=P8H77-I Motherboard - -+pci:v00008086d00000151sv00008086sd00002010* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00000152* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -@@ -54098,12 +54776,21 @@ pci:v00008086d00000154sv00001043sd00001517* - pci:v00008086d00000155* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - -+pci:v00008086d00000155sv00008086sd00002010* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00000156* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller - - pci:v00008086d00000158* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller - -+pci:v00008086d00000158sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ -+pci:v00008086d00000158sv00008086sd00002010* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00000159* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - -@@ -54116,6 +54803,9 @@ pci:v00008086d0000015C* - pci:v00008086d0000015D* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - -+pci:v00008086d0000015Dsv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d0000015E* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -@@ -54137,6 +54827,9 @@ pci:v00008086d00000166sv00001043sd00002103* - pci:v00008086d0000016A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -+pci:v00008086d0000016Asv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ - pci:v00008086d00000172* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -@@ -54753,7 +55446,7 @@ pci:v00008086d0000095Asv00008086sd00005002* - ID_MODEL_FROM_DATABASE=Wireless-N 7265 - - pci:v00008086d0000095Asv00008086sd0000500A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 - - pci:v00008086d0000095Asv00008086sd00005010* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -@@ -54770,9 +55463,18 @@ pci:v00008086d0000095Asv00008086sd0000502A* - pci:v00008086d0000095Asv00008086sd00005090* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00005100* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ -+pci:v00008086d0000095Asv00008086sd0000510A* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00005110* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00005112* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00005190* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -@@ -54794,9 +55496,15 @@ pci:v00008086d0000095Asv00008086sd00005590* - pci:v00008086d0000095Asv00008086sd00009010* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00009012* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00009110* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -+pci:v00008086d0000095Asv00008086sd00009112* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ - pci:v00008086d0000095Asv00008086sd00009210* - ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 - -@@ -55089,397 +55797,409 @@ pci:v00008086d00000D36* - ID_MODEL_FROM_DATABASE=Crystal Well Integrated Graphics Controller - - pci:v00008086d00000E00* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DMI2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DMI2 - - pci:v00008086d00000E01* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode - - pci:v00008086d00000E02* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1a -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a - - pci:v00008086d00000E03* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 1b -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1b - - pci:v00008086d00000E04* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2a -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a - - pci:v00008086d00000E05* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2b -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2b - - pci:v00008086d00000E06* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2c -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2c - - pci:v00008086d00000E07* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 2d -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2d - - pci:v00008086d00000E08* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3a -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a - - pci:v00008086d00000E09* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3b -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3b - - pci:v00008086d00000E0A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3c -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3c - - pci:v00008086d00000E0B* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 PCI Express Root Port 3d -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3d - - pci:v00008086d00000E10* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E13* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E17* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E18* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E1C* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO Configuration Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers - - pci:v00008086d00000E1D* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E1E* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers - - pci:v00008086d00000E1F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers - - pci:v00008086d00000E20* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0 - - pci:v00008086d00000E21* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1 - - pci:v00008086d00000E22* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2 - - pci:v00008086d00000E23* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3 - - pci:v00008086d00000E24* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4 - - pci:v00008086d00000E25* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5 - - pci:v00008086d00000E26* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6 - - pci:v00008086d00000E27* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7 - - pci:v00008086d00000E28* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 VTd/Memory Map/Misc -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 VTd/Memory Map/Misc - - pci:v00008086d00000E29* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Memory Hotplug -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Memory Hotplug - - pci:v00008086d00000E2A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IIO RAS -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IIO RAS - - pci:v00008086d00000E2C* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 IOAPIC -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 IOAPIC - - pci:v00008086d00000E2E* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA - - pci:v00008086d00000E2F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 CBDMA -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA - - pci:v00008086d00000E30* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 - - pci:v00008086d00000E32* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 - - pci:v00008086d00000E33* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 - - pci:v00008086d00000E34* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E36* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E37* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E38* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 - - pci:v00008086d00000E3A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 - - pci:v00008086d00000E3E* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E3F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring - - pci:v00008086d00000E40* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2 - - pci:v00008086d00000E41* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E43* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 - - pci:v00008086d00000E44* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2 -+ -+pci:v00008086d00000E45* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register -+ -+pci:v00008086d00000E47* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register - - pci:v00008086d00000E60* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1 - - pci:v00008086d00000E68* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers - - pci:v00008086d00000E6A* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E6B* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E6C* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E6D* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers - - pci:v00008086d00000E71* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers - - pci:v00008086d00000E74* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E75* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 R2PCIe -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe - - pci:v00008086d00000E77* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E79* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers - - pci:v00008086d00000E7D* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 UBOX Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers - - pci:v00008086d00000E7F* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E80* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0 - - pci:v00008086d00000E81* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Ring Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers - - pci:v00008086d00000E83* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 - - pci:v00008086d00000E84* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0 -+ -+pci:v00008086d00000E85* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register - - pci:v00008086d00000E87* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Registers - - pci:v00008086d00000E90* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 - - pci:v00008086d00000E93* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1 - - pci:v00008086d00000E94* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 QPI Link Reut 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 1 -+ -+pci:v00008086d00000E95* -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register - - pci:v00008086d00000EA0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Home Agent 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0 - - pci:v00008086d00000EA8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers - - pci:v00008086d00000EAA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAB* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAD* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers - - pci:v00008086d00000EAE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EAF* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EB0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 - - pci:v00008086d00000EB1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 - - pci:v00008086d00000EB2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 - - pci:v00008086d00000EB3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 - - pci:v00008086d00000EB4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 - - pci:v00008086d00000EB5* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 - - pci:v00008086d00000EB6* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 - - pci:v00008086d00000EB7* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3 - - pci:v00008086d00000EBC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EBE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EBF* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers - - pci:v00008086d00000EC0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 0 - - pci:v00008086d00000EC1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 1 - - pci:v00008086d00000EC2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 2 - - pci:v00008086d00000EC3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 3 - - pci:v00008086d00000EC4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Power Control Unit 4 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 4 - - pci:v00008086d00000EC8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 System Address Decoder -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 System Address Decoder - - pci:v00008086d00000EC9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers - - pci:v00008086d00000ECA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Broadcast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers - - pci:v00008086d00000ED8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000ED9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDD* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EDF* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EE0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE5* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE6* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE7* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EE9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEB* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EED* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EEE* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Unicast Registers -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers - - pci:v00008086d00000EF0* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 - - pci:v00008086d00000EF1* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 - - pci:v00008086d00000EF2* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 - - pci:v00008086d00000EF3* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1 - - pci:v00008086d00000EF4* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 - - pci:v00008086d00000EF5* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 - - pci:v00008086d00000EF6* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 - - pci:v00008086d00000EF7* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 - - pci:v00008086d00000EF8* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EF9* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFA* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFB* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFC* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000EFD* -- ID_MODEL_FROM_DATABASE=Xeon E5 v2/Core i7 DDRIO -+ ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000F00* - ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -@@ -55868,6 +56588,9 @@ pci:v00008086d0000100Esv00001028sd00000151* - pci:v00008086d0000100Esv0000107Bsd00008920* - ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter - -+pci:v00008086d0000100Esv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000100Esv00008086sd0000001E* - ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter - -@@ -56057,6 +56780,9 @@ pci:v00008086d0000101Esv00008086sd0000101E* - pci:v00008086d00001026* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - -+pci:v00008086d00001026sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d00001026sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -56867,15 +57593,24 @@ pci:v00008086d000010D3* - pci:v00008086d000010D3sv0000103Csd00003250* - ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter - -+pci:v00008086d000010D3sv00001043sd00008369* -+ ID_MODEL_FROM_DATABASE=Motherboard -+ - pci:v00008086d000010D3sv000010A9sd00008029* - ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet - - pci:v00008086d000010D3sv000015D9sd0000060A* - ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard - -+pci:v00008086d000010D3sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d000010D3sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter - -+pci:v00008086d000010D3sv00008086sd0000357A* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d000010D3sv00008086sd0000A01F* - ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter - -@@ -57002,6 +57737,9 @@ pci:v00008086d000010EF* - pci:v00008086d000010EFsv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d000010EFsv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d000010F0* - ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection - -@@ -57086,6 +57824,9 @@ pci:v00008086d000010FBsv0000108Esd00007B11* - pci:v00008086d000010FBsv00001734sd000011A9* - ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection - -+pci:v00008086d000010FBsv000017AAsd00001071* -+ ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric -+ - pci:v00008086d000010FBsv00008086sd00000002* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 - -@@ -57182,6 +57923,9 @@ pci:v00008086d00001209* - pci:v00008086d00001209sv0000140Bsd00000610* - ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board - -+pci:v00008086d00001209sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00001209sv00004C53sd00001050* - ID_MODEL_FROM_DATABASE=CT7 mainboard - -@@ -57428,6 +58172,9 @@ pci:v00008086d00001229sv00001775sd00001100* - pci:v00008086d00001229sv00001775sd0000CE90* - ID_MODEL_FROM_DATABASE=CE9 - -+pci:v00008086d00001229sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00001229sv00004C53sd00001080* - ID_MODEL_FROM_DATABASE=CT8 mainboard - -@@ -57782,6 +58529,9 @@ pci:v00008086d00001502* - pci:v00008086d00001502sv00001028sd000004A3* - ID_MODEL_FROM_DATABASE=Precision M4600 - -+pci:v00008086d00001502sv00008086sd0000357A* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00001503* - ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection - -@@ -57878,12 +58628,18 @@ pci:v00008086d00001520* - pci:v00008086d00001521* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection - -+pci:v00008086d00001521sv00001028sd00000602* -+ ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM -+ - pci:v00008086d00001521sv00001028sd00001F60* - ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC - - pci:v00008086d00001521sv00001028sd00001F62* - ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC - -+pci:v00008086d00001521sv00001028sd0000FF9A* -+ ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC -+ - pci:v00008086d00001521sv0000103Csd000017D1* - ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter - -@@ -57911,6 +58667,9 @@ pci:v00008086d00001521sv0000108Esd00007B18* - pci:v00008086d00001521sv000010A9sd0000802A* - ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE - -+pci:v00008086d00001521sv000017AAsd00001074* -+ ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric -+ - pci:v00008086d00001521sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 - -@@ -57962,6 +58721,9 @@ pci:v00008086d00001522sv00008086sd000000A4* - pci:v00008086d00001523* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection - -+pci:v00008086d00001523sv00001028sd00001F9B* -+ ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC -+ - pci:v00008086d00001523sv0000103Csd00001784* - ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter - -@@ -58025,6 +58787,9 @@ pci:v00008086d00001528sv0000108Esd00007B15* - pci:v00008086d00001528sv00001137sd000000BF* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 - -+pci:v00008086d00001528sv000017AAsd00001073* -+ ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric -+ - pci:v00008086d00001528sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 - -@@ -58055,6 +58820,9 @@ pci:v00008086d00001533* - pci:v00008086d00001533sv0000103Csd00000003* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 - -+pci:v00008086d00001533sv000017AAsd00001100* -+ ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter -+ - pci:v00008086d00001533sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 - -@@ -58103,6 +58871,9 @@ pci:v00008086d0000154Asv00008086sd0000011B* - pci:v00008086d0000154Asv00008086sd0000011C* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 - -+pci:v00008086d0000154C* -+ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ - pci:v00008086d0000154D* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter - -@@ -58148,12 +58919,78 @@ pci:v00008086d0000155Dsv00008086sd00000002* - pci:v00008086d00001560* - ID_MODEL_FROM_DATABASE=Ethernet Controller X540 - -+pci:v00008086d00001571* -+ ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ -+pci:v00008086d00001572* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter -+ -+pci:v00008086d00001572sv00001028sd00001F99* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC -+ -+pci:v00008086d00001572sv00008086sd00000001* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ -+pci:v00008086d00001572sv00008086sd00000002* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ -+pci:v00008086d00001572sv00008086sd00000004* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ -+pci:v00008086d00001572sv00008086sd00000005* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter -+ -+pci:v00008086d00001572sv00008086sd00000006* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter -+ -+pci:v00008086d00001572sv00008086sd00000007* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ -+pci:v00008086d00001572sv00008086sd00000008* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ - pci:v00008086d0000157B* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection - - pci:v00008086d0000157C* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - -+pci:v00008086d00001580* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane -+ -+pci:v00008086d00001581* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane -+ -+pci:v00008086d00001581sv00001028sd00001F98* -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC -+ -+pci:v00008086d00001583* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ -+ -+pci:v00008086d00001583sv00008086sd00000001* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ -+pci:v00008086d00001583sv00008086sd00000002* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ -+pci:v00008086d00001583sv00008086sd00000003* -+ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 -+ -+pci:v00008086d00001584* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ -+ -+pci:v00008086d00001584sv00008086sd00000001* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ -+pci:v00008086d00001584sv00008086sd00000002* -+ ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ -+pci:v00008086d00001584sv00008086sd00000003* -+ ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 -+ -+pci:v00008086d00001585* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ -+ - pci:v00008086d000015A0* - ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I218-LM - -@@ -58166,6 +59003,117 @@ pci:v00008086d000015A2* - pci:v00008086d000015A3* - ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V - -+pci:v00008086d00001600* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI -+ -+pci:v00008086d00001601* -+ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x16 Controller -+ -+pci:v00008086d00001602* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001603* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Camarillo Device -+ -+pci:v00008086d00001604* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI -+ -+pci:v00008086d00001605* -+ ID_MODEL_FROM_DATABASE=Broadwell-U PCI Express x8 Controller -+ -+pci:v00008086d00001606* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001607* -+ ID_MODEL_FROM_DATABASE=Broadwell-U CHAPS Device -+ -+pci:v00008086d00001608* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI -+ -+pci:v00008086d00001609* -+ ID_MODEL_FROM_DATABASE=Broadwell-U x4 PCIe -+ -+pci:v00008086d0000160A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160C* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Audio Controller -+ -+pci:v00008086d0000160D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000160F* -+ ID_MODEL_FROM_DATABASE=Broadwell-U SoftSKU -+ -+pci:v00008086d00001610* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI -+ -+pci:v00008086d00001612* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001614* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI -+ -+pci:v00008086d00001616* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001618* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge - DMI -+ -+pci:v00008086d0000161A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000161B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000161D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000161E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001622* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001626* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000162E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001632* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d00001636* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163A* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163B* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163D* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ -+pci:v00008086d0000163E* -+ ID_MODEL_FROM_DATABASE=Broadwell-U Integrated Graphics -+ - pci:v00008086d00001960* - ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor - -@@ -58308,7 +59256,10 @@ pci:v00008086d00001C02sv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - - pci:v00008086d00001C02sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ -+pci:v00008086d00001C02sv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS - - pci:v00008086d00001C03* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller -@@ -58346,8 +59297,11 @@ pci:v00008086d00001C10sv00001028sd000004AA* - pci:v00008086d00001C10sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - -+pci:v00008086d00001C10sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00001C10sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C12* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 -@@ -58379,18 +59333,27 @@ pci:v00008086d00001C18* - pci:v00008086d00001C18sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - -+pci:v00008086d00001C18sv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00001C1A* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 - - pci:v00008086d00001C1Asv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - -+pci:v00008086d00001C1Asv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00001C1C* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 - - pci:v00008086d00001C1E* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 - -+pci:v00008086d00001C1Esv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d00001C20* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller - -@@ -58412,6 +59375,9 @@ pci:v00008086d00001C20sv00001028sd000004DA* - pci:v00008086d00001C20sv00001043sd00008418* - ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard - -+pci:v00008086d00001C20sv00001043sd0000841B* -+ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ - pci:v00008086d00001C20sv00008086sd00002008* - ID_MODEL_FROM_DATABASE=DQ67SW board - -@@ -58434,10 +59400,10 @@ pci:v00008086d00001C22sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C22sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C22sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C24* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller -@@ -58461,10 +59427,10 @@ pci:v00008086d00001C26sv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C26sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C26sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C27* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 -@@ -58494,10 +59460,10 @@ pci:v00008086d00001C2Dsv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C2Dsv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C2Dsv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 - - pci:v00008086d00001C33* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller -@@ -58521,7 +59487,7 @@ pci:v00008086d00001C3Asv00001028sd000004DA* - ID_MODEL_FROM_DATABASE=Vostro 3750 - - pci:v00008086d00001C3Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P8 series motherboard - - pci:v00008086d00001C3Asv00008086sd00007270* - ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -@@ -58577,6 +59543,9 @@ pci:v00008086d00001C4A* - pci:v00008086d00001C4Asv00001028sd000004AA* - ID_MODEL_FROM_DATABASE=XPS 8300 - -+pci:v00008086d00001C4Asv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ - pci:v00008086d00001C4B* - ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller - -@@ -58610,6 +59579,9 @@ pci:v00008086d00001C51* - pci:v00008086d00001C52* - ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller - -+pci:v00008086d00001C52sv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00001C53* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller - -@@ -58622,6 +59594,9 @@ pci:v00008086d00001C55* - pci:v00008086d00001C56* - ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller - -+pci:v00008086d00001C56sv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ - pci:v00008086d00001C57* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller - -@@ -59345,6 +60320,9 @@ pci:v00008086d0000225C* - pci:v00008086d0000225D* - ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 3120 series - -+pci:v00008086d0000225E* -+ ID_MODEL_FROM_DATABASE=Xeon Phi coprocessor 31S1 -+ - pci:v00008086d00002310* - ID_MODEL_FROM_DATABASE=DH89xxCC LPC Controller - -@@ -59495,6 +60473,9 @@ pci:v00008086d00002415sv000011D4sd00005340* - pci:v00008086d00002415sv00001734sd00001025* - ID_MODEL_FROM_DATABASE=Activy 3xx - -+pci:v00008086d00002415sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002416* - ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller - -@@ -59804,6 +60785,9 @@ pci:v00008086d00002449sv00001186sd00007801* - pci:v00008086d00002449sv0000144Dsd00002602* - ID_MODEL_FROM_DATABASE=HomePNA 1M CNR - -+pci:v00008086d00002449sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002449sv00008086sd00003010* - ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE - -@@ -59897,6 +60881,9 @@ pci:v00008086d0000244Esv00001028sd000002DA* - pci:v00008086d0000244Esv0000103Csd00002A3B* - ID_MODEL_FROM_DATABASE=Pavilion A1512X - -+pci:v00008086d0000244Esv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000244Esv0000103Csd000031FE* - ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 - -@@ -59906,15 +60893,27 @@ pci:v00008086d0000244Esv0000103Csd0000330B* - pci:v00008086d0000244Esv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -+pci:v00008086d0000244Esv00001043sd0000844D* -+ ID_MODEL_FROM_DATABASE=P8 series motherboard -+ - pci:v00008086d0000244Esv00001458sd00005000* - ID_MODEL_FROM_DATABASE=Motherboard - -+pci:v00008086d0000244Esv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ -+pci:v00008086d0000244Esv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d0000244Esv000015D9sd00009680* - ID_MODEL_FROM_DATABASE=X7DBN Motherboard - - pci:v00008086d0000244Esv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -+pci:v00008086d0000244Esv00008086sd00007270* -+ ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ - pci:v00008086d00002450* - ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) - -@@ -60671,6 +61670,9 @@ pci:v00008086d000024CDsv00001734sd00001004* - pci:v00008086d000024CDsv00001734sd00001055* - ID_MODEL_FROM_DATABASE=Amilo M1420 - -+pci:v00008086d000024CDsv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000024CDsv00004C53sd00001090* - ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard - -@@ -60689,6 +61691,9 @@ pci:v00008086d000024D0* - pci:v00008086d000024D1* - ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller - -+pci:v00008086d000024D1sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D1sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60740,6 +61745,9 @@ pci:v00008086d000024D2sv00001014sd000002DD* - pci:v00008086d000024D2sv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024D2sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D2sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60809,6 +61817,9 @@ pci:v00008086d000024D3sv00001014sd000002ED* - pci:v00008086d000024D3sv00001028sd00000156* - ID_MODEL_FROM_DATABASE=Precision 360 - -+pci:v00008086d000024D3sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D3sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60860,6 +61871,9 @@ pci:v00008086d000024D4sv00001014sd000002DD* - pci:v00008086d000024D4sv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024D4sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D4sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60926,6 +61940,9 @@ pci:v00008086d000024D5* - pci:v00008086d000024D5sv0000100Asd0000147B* - ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard - -+pci:v00008086d000024D5sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D5sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -60977,6 +61994,9 @@ pci:v00008086d000024D7* - pci:v00008086d000024D7sv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=xSeries server mainboard - -+pci:v00008086d000024D7sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024D7sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61040,6 +62060,9 @@ pci:v00008086d000024DBsv00001014sd000002DD* - pci:v00008086d000024DBsv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024DBsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024DBsv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61112,6 +62135,9 @@ pci:v00008086d000024DDsv00001014sd000002DD* - pci:v00008086d000024DDsv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d000024DDsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024DDsv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61169,6 +62195,9 @@ pci:v00008086d000024DE* - pci:v00008086d000024DEsv00001014sd000002ED* - ID_MODEL_FROM_DATABASE=xSeries server mainboard - -+pci:v00008086d000024DEsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d000024DEsv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -61208,6 +62237,21 @@ pci:v00008086d000024DEsv00008086sd0000524C* - pci:v00008086d000024DF* - ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller - -+pci:v00008086d000024DFsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ -+pci:v00008086d000024F3* -+ ID_MODEL_FROM_DATABASE=Wireless 8260 -+ -+pci:v00008086d000024F3sv00008086sd00000010* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ -+pci:v00008086d000024F4* -+ ID_MODEL_FROM_DATABASE=Wireless 8260 -+ -+pci:v00008086d000024F4sv00008086sd00000030* -+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ - pci:v00008086d00002500* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) - -@@ -61679,6 +62723,9 @@ pci:v00008086d000025ABsv00001775sd00001100* - pci:v00008086d000025ABsv00001775sd0000CE90* - ID_MODEL_FROM_DATABASE=CE9 - -+pci:v00008086d000025ABsv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000025ABsv00004C53sd000010B0* - ID_MODEL_FROM_DATABASE=CL9 mainboard - -@@ -62330,6 +63377,9 @@ pci:v00008086d00002668sv00001043sd0000814E* - pci:v00008086d00002668sv00001462sd00007028* - ID_MODEL_FROM_DATABASE=915P/G Neo2 - -+pci:v00008086d00002668sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000266A* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller - -@@ -62657,6 +63707,9 @@ pci:v00008086d00002770sv00001043sd0000817A* - pci:v00008086d00002770sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=E4500 - -+pci:v00008086d00002770sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d00002770sv00008086sd0000544E* - ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP - -@@ -62669,6 +63722,9 @@ pci:v00008086d00002772* - pci:v00008086d00002772sv0000103Csd00002A3B* - ID_MODEL_FROM_DATABASE=Pavilion A1512X - -+pci:v00008086d00002772sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d00002772sv00008086sd0000544E* - ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP - -@@ -62831,6 +63887,9 @@ pci:v00008086d000027B8sv00001043sd00008179* - pci:v00008086d000027B8sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=E4500 - -+pci:v00008086d000027B8sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027B8sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -62906,6 +63965,9 @@ pci:v00008086d000027C0sv00001462sd00002310* - pci:v00008086d000027C0sv00001462sd00007236* - ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard - -+pci:v00008086d000027C0sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027C0sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -62961,7 +64023,7 @@ pci:v00008086d000027C4sv00001028sd000001D7* - ID_MODEL_FROM_DATABASE=XPS M1210 - - pci:v00008086d000027C4sv000017AAsd0000200E* -- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 -+ ID_MODEL_FROM_DATABASE=ThinkPad T60 - - pci:v00008086d000027C5* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] -@@ -63026,6 +64088,9 @@ pci:v00008086d000027C8sv0000144Dsd0000C072* - pci:v00008086d000027C8sv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027C8sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027C8sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63089,6 +64154,9 @@ pci:v00008086d000027C9sv0000144Dsd0000C072* - pci:v00008086d000027C9sv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027C9sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027C9sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63152,6 +64220,9 @@ pci:v00008086d000027CAsv0000144Dsd0000C072* - pci:v00008086d000027CAsv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027CAsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027CAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63209,6 +64280,9 @@ pci:v00008086d000027CBsv0000144Dsd0000C072* - pci:v00008086d000027CBsv00001458sd00005004* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027CBsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027CBsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63266,6 +64340,9 @@ pci:v00008086d000027CCsv0000144Dsd0000C072* - pci:v00008086d000027CCsv00001458sd00005006* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027CCsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027CCsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63296,6 +64373,9 @@ pci:v00008086d000027D0sv0000144Dsd0000C072* - pci:v00008086d000027D0sv00001458sd00005001* - ID_MODEL_FROM_DATABASE=GA-D525TUD - -+pci:v00008086d000027D0sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D0sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63314,6 +64394,9 @@ pci:v00008086d000027D2sv0000103Csd000030A3* - pci:v00008086d000027D2sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=Notebook N150P - -+pci:v00008086d000027D2sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D2sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63326,6 +64409,9 @@ pci:v00008086d000027D4* - pci:v00008086d000027D4sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=Notebook N150P - -+pci:v00008086d000027D4sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D4sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63341,6 +64427,9 @@ pci:v00008086d000027D6sv0000103Csd000030A3* - pci:v00008086d000027D6sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=Notebook N150P - -+pci:v00008086d000027D6sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D6sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63410,6 +64499,9 @@ pci:v00008086d000027D8sv00001458sd0000A002* - pci:v00008086d000027D8sv00001458sd0000A102* - ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard - -+pci:v00008086d000027D8sv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027D8sv0000152Dsd00000753* - ID_MODEL_FROM_DATABASE=Softmodem - -@@ -63470,6 +64562,9 @@ pci:v00008086d000027DAsv0000144Dsd0000C072* - pci:v00008086d000027DAsv00001458sd00005001* - ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard - -+pci:v00008086d000027DAsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027DAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63545,6 +64640,9 @@ pci:v00008086d000027DFsv0000107Bsd00005048* - pci:v00008086d000027DFsv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop - -+pci:v00008086d000027DFsv00001462sd00007418* -+ ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ - pci:v00008086d000027DFsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - -@@ -63632,6 +64730,9 @@ pci:v00008086d00002822* - pci:v00008086d00002822sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d00002822sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002823* - ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller - -@@ -64202,6 +65303,9 @@ pci:v00008086d00002916* - pci:v00008086d00002916sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d00002916sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002916sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -@@ -64223,6 +65327,9 @@ pci:v00008086d00002918sv00001028sd00000236* - pci:v00008086d00002918sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002918sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002919* - ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller - -@@ -64265,6 +65372,9 @@ pci:v00008086d00002921sv00001462sd00007360* - pci:v00008086d00002922* - ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] - -+pci:v00008086d00002922sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002922sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64331,6 +65441,9 @@ pci:v00008086d00002930sv00001028sd0000020D* - pci:v00008086d00002930sv00001028sd00000211* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002930sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002930sv0000103Csd00003628* - ID_MODEL_FROM_DATABASE=dv6-1190en - -@@ -64340,6 +65453,9 @@ pci:v00008086d00002930sv00001043sd00008277* - pci:v00008086d00002930sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002930sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002930sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64388,12 +65504,18 @@ pci:v00008086d00002934sv00001028sd0000029C* - pci:v00008086d00002934sv00001028sd00002011* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002934sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002934sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002934sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002934sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002934sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64433,12 +65555,18 @@ pci:v00008086d00002935sv00001028sd00000287* - pci:v00008086d00002935sv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller - -+pci:v00008086d00002935sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002935sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002935sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002935sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002935sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64472,12 +65600,18 @@ pci:v00008086d00002936sv00001028sd00000287* - pci:v00008086d00002936sv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller - -+pci:v00008086d00002936sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002936sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002936sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002936sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002936sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64511,12 +65645,18 @@ pci:v00008086d00002937sv00001028sd0000029C* - pci:v00008086d00002937sv00001028sd00002011* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002937sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002937sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002937sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002937sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002937sv00008086sd00002937* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64553,12 +65693,18 @@ pci:v00008086d00002938sv00001028sd00000287* - pci:v00008086d00002938sv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller - -+pci:v00008086d00002938sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002938sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002938sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002938sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002938sv00008086sd00002938* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64580,12 +65726,18 @@ pci:v00008086d00002939sv00001028sd00000210* - pci:v00008086d00002939sv00001028sd00000237* - ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller - -+pci:v00008086d00002939sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002939sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d00002939sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d00002939sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00002939sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64625,12 +65777,18 @@ pci:v00008086d0000293Asv00001028sd00000287* - pci:v00008086d0000293Asv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller - -+pci:v00008086d0000293Asv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000293Asv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d0000293Asv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d0000293Asv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000293Asv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -64661,12 +65819,18 @@ pci:v00008086d0000293Csv00001028sd00000287* - pci:v00008086d0000293Csv00001028sd0000029C* - ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller - -+pci:v00008086d0000293Csv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000293Csv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - - pci:v00008086d0000293Csv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d0000293Csv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000293Csv00008086sd0000293C* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64685,6 +65849,9 @@ pci:v00008086d0000293Esv00001028sd0000020D* - pci:v00008086d0000293Esv00001028sd00000211* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d0000293Esv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d0000293Esv0000103Csd00003628* - ID_MODEL_FROM_DATABASE=dv6-1190en - -@@ -64694,6 +65861,9 @@ pci:v00008086d0000293Esv00001043sd0000829F* - pci:v00008086d0000293Esv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d0000293Esv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d0000293Esv00008086sd0000293E* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -@@ -64712,6 +65882,9 @@ pci:v00008086d00002940sv00001028sd0000020D* - pci:v00008086d00002940sv00001028sd00000211* - ID_MODEL_FROM_DATABASE=Optiplex 755 - -+pci:v00008086d00002940sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002940sv00001043sd00008277* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -@@ -64730,6 +65903,9 @@ pci:v00008086d00002944* - pci:v00008086d00002944sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d00002944sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d00002946* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 - -@@ -64910,6 +66086,9 @@ pci:v00008086d000029C0* - pci:v00008086d000029C0sv00001028sd0000020D* - ID_MODEL_FROM_DATABASE=Inspiron 530 - -+pci:v00008086d000029C0sv0000103Csd00002A6F* -+ ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ - pci:v00008086d000029C0sv00001043sd00008276* - ID_MODEL_FROM_DATABASE=P5K PRO Motherboard - -@@ -64919,6 +66098,9 @@ pci:v00008086d000029C0sv00001043sd000082B0* - pci:v00008086d000029C0sv00001462sd00007360* - ID_MODEL_FROM_DATABASE=G33/P35 Neo - -+pci:v00008086d000029C0sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000029C0sv00008086sd00005044* - ID_MODEL_FROM_DATABASE=Desktop Board DP35DP - -@@ -66050,6 +67232,9 @@ pci:v00008086d00002F37* - pci:v00008086d00002F38* - ID_MODEL_FROM_DATABASE=Haswell-E Home Agent 1 - -+pci:v00008086d00002F39* -+ ID_MODEL_FROM_DATABASE=Haswell-E I/O Performance Monitoring -+ - pci:v00008086d00002F3A* - ID_MODEL_FROM_DATABASE=Haswell-E QPI Link 2 - -@@ -66899,6 +68084,9 @@ pci:v00008086d00003591* - pci:v00008086d00003591sv00001014sd000002DD* - ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard - -+pci:v00008086d00003591sv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d00003591sv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -66968,6 +68156,9 @@ pci:v00008086d0000359Bsv00001014sd000002DD* - pci:v00008086d0000359E* - ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub - -+pci:v00008086d0000359Esv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00008086d0000359Esv00001028sd00000169* - ID_MODEL_FROM_DATABASE=Precision 470 - -@@ -67586,6 +68777,9 @@ pci:v00008086d00003B0A* - pci:v00008086d00003B0Asv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d00003B0Asv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B0B* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller - -@@ -67661,6 +68855,9 @@ pci:v00008086d00003B22* - pci:v00008086d00003B22sv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d00003B22sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B23* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller - -@@ -67715,6 +68912,9 @@ pci:v00008086d00003B30sv00001028sd000002DA* - pci:v00008086d00003B30sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B30sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B30sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67736,6 +68936,9 @@ pci:v00008086d00003B34sv00001028sd000002DA* - pci:v00008086d00003B34sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B34sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B34sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67769,6 +68972,9 @@ pci:v00008086d00003B3Csv00001028sd000002DA* - pci:v00008086d00003B3Csv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B3Csv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B3Csv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67793,12 +68999,18 @@ pci:v00008086d00003B42sv00001028sd000002DA* - pci:v00008086d00003B42sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B42sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B44* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 - - pci:v00008086d00003B44sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B44sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B46* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 - -@@ -67841,6 +69053,9 @@ pci:v00008086d00003B56sv00001028sd000002DA* - pci:v00008086d00003B56sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d00003B56sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B56sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -67853,6 +69068,9 @@ pci:v00008086d00003B64* - pci:v00008086d00003B64sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=Aspire 7740G - -+pci:v00008086d00003B64sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d00003B64sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=PC1-GROOVE - -@@ -68601,10 +69819,10 @@ pci:v00008086d0000504C* - ID_MODEL_FROM_DATABASE=EP80579 Integrated Processor with QuickAssist TDM - - pci:v00008086d00005200* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server -+ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server PCI Bridge - - pci:v00008086d00005201* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server -+ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller - - pci:v00008086d00005201sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter -@@ -68612,6 +69830,12 @@ pci:v00008086d00005201sv00008086sd00000001* - pci:v00008086d0000530D* - ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor - -+pci:v00008086d00005845* -+ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller -+ -+pci:v00008086d00005845sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d000065C0* - ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub - -@@ -68688,7 +69912,7 @@ pci:v00008086d00007020* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] - - pci:v00008086d00007020sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine - - pci:v00008086d00007030* - ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] -@@ -68720,6 +69944,9 @@ pci:v00008086d00007112* - pci:v00008086d00007112sv000015ADsd00001976* - ID_MODEL_FROM_DATABASE=Virtual Machine Chipset - -+pci:v00008086d00007112sv00001AF4sd00001100* -+ ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ - pci:v00008086d00007113* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI - -@@ -69383,6 +70610,9 @@ pci:v00008086d00008D04* - pci:v00008086d00008D06* - ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] - -+pci:v00008086d00008D06sv000017AAsd00001031* -+ ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i -+ - pci:v00008086d00008D08* - ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] - -@@ -69959,6 +71189,9 @@ pci:v00008086d0000D131* - pci:v00008086d0000D131sv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=OptiPlex 980 - -+pci:v00008086d0000D131sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d0000D132* - ID_MODEL_FROM_DATABASE=Core Processor DMI - -@@ -69989,6 +71222,9 @@ pci:v00008086d0000D138sv00001028sd000002DA* - pci:v00008086d0000D138sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=Latitude E6510 - -+pci:v00008086d0000D138sv000015D9sd0000060D* -+ ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ - pci:v00008086d0000D139* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 - -@@ -71144,6 +72380,9 @@ pci:v00009005d00008089* - pci:v00009005d0000808F* - ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID - -+pci:v00009005d0000808Fsv00001028sd00000168* -+ ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ - pci:v00009005d00008090* - ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID - -@@ -71271,11 +72510,14 @@ pci:v00009710d00009912* - ID_MODEL_FROM_DATABASE=PCIe 9912 Multi-I/O Controller - - pci:v00009710d00009922* -- ID_MODEL_FROM_DATABASE=PCIe 9922 Multi-I/O Controller -+ ID_MODEL_FROM_DATABASE=MCS9922 PCIe Multi-I/O Controller - - pci:v00009710d00009990* - ID_MODEL_FROM_DATABASE=MCS9990 PCIe to 4‐Port USB 2.0 Host Controller - -+pci:v00009850* -+ ID_VENDOR_FROM_DATABASE=3Com (wrong ID) -+ - pci:v00009902* - ID_VENDOR_FROM_DATABASE=Stargen Inc. - -@@ -71381,6 +72623,9 @@ pci:v0000BD11* - pci:v0000BDBD* - ID_VENDOR_FROM_DATABASE=Blackmagic Design - -+pci:v0000BDBDd0000A106* -+ ID_MODEL_FROM_DATABASE=Multibridge Extreme -+ - pci:v0000BDBDd0000A117* - ID_MODEL_FROM_DATABASE=Intensity Pro - -@@ -71585,6 +72830,51 @@ pci:v0000D84D* - pci:v0000DADA* - ID_VENDOR_FROM_DATABASE=Datapath Limited - -+pci:v0000DADAd00000133* -+ ID_MODEL_FROM_DATABASE=VisionRGB-X2 -+ -+pci:v0000DADAd00000139* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E1 -+ -+pci:v0000DADAd00000144* -+ ID_MODEL_FROM_DATABASE=VisionSD8 -+ -+pci:v0000DADAd00000150* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E2 -+ -+pci:v0000DADAd00000151* -+ ID_MODEL_FROM_DATABASE=VisionSD4+1 -+ -+pci:v0000DADAd00000159* -+ ID_MODEL_FROM_DATABASE=VisionAV -+ -+pci:v0000DADAd00000161* -+ ID_MODEL_FROM_DATABASE=DGC161 -+ -+pci:v0000DADAd00000165* -+ ID_MODEL_FROM_DATABASE=DGC165 -+ -+pci:v0000DADAd00000167* -+ ID_MODEL_FROM_DATABASE=DGC167 -+ -+pci:v0000DADAd00000168* -+ ID_MODEL_FROM_DATABASE=DGC168 -+ -+pci:v0000DADAd00001139* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E1S -+ -+pci:v0000DADAd00001150* -+ ID_MODEL_FROM_DATABASE=VisionRGB-E2S -+ -+pci:v0000DADAd00001151* -+ ID_MODEL_FROM_DATABASE=VisionSD4+1S -+ -+pci:v0000DADAd00001153* -+ ID_MODEL_FROM_DATABASE=VisionDVI-DL -+ -+pci:v0000DADAd00001154* -+ ID_MODEL_FROM_DATABASE=VisionSDI2 -+ - pci:v0000DB10* - ID_VENDOR_FROM_DATABASE=Diablo Technologies - -@@ -71735,6 +73025,9 @@ pci:v0000E4BFd0000CC47* - pci:v0000E4BFd0000CC4D* - ID_MODEL_FROM_DATABASE=CCM-BOOGIE - -+pci:v0000E4E4* -+ ID_VENDOR_FROM_DATABASE=Xorcom -+ - pci:v0000E55E* - ID_VENDOR_FROM_DATABASE=Essence Technology, Inc. - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 60dbcd2..014c628 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -20,6 +20,12 @@ usb:v0003* - usb:v0004* - ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart - -+usb:v0011* -+ ID_VENDOR_FROM_DATABASE=Unknown manufacturer -+ -+usb:v0011p7788* -+ ID_MODEL_FROM_DATABASE=Flash mass storage drive -+ - usb:v0053* - ID_VENDOR_FROM_DATABASE=Planex - -@@ -30,7 +36,7 @@ usb:v0079* - ID_VENDOR_FROM_DATABASE=DragonRise Inc. - - usb:v0079p0006* -- ID_MODEL_FROM_DATABASE=Generic USB Joystick -+ ID_MODEL_FROM_DATABASE=PC TWIN SHOCK Gamepad - - usb:v0079p0011* - ID_MODEL_FROM_DATABASE=Gamepad -@@ -63,7 +69,7 @@ usb:v0204* - ID_VENDOR_FROM_DATABASE=Chipsbank Microelectronics Co., Ltd - - usb:v0204p6025* -- ID_MODEL_FROM_DATABASE=CBM2080 Flash drive controller -+ ID_MODEL_FROM_DATABASE=CBM2080 / CBM2090 Flash drive controller - - usb:v0204p6026* - ID_MODEL_FROM_DATABASE=CBM1180 Flash drive controller -@@ -263,6 +269,9 @@ usb:v03EBp2109* - usb:v03EBp210D* - ID_MODEL_FROM_DATABASE=XPLAIN evaluation kit (CDC ACM) - -+usb:v03EBp2110* -+ ID_MODEL_FROM_DATABASE=AVR JTAGICE3 Debugger and Programmer -+ - usb:v03EBp2122* - ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit - -@@ -1001,6 +1010,9 @@ usb:v03F0p2505* - usb:v03F0p2512* - ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 - -+usb:v03F0p2514* -+ ID_MODEL_FROM_DATABASE=4-port hub -+ - usb:v03F0p2517* - ID_MODEL_FROM_DATABASE=LaserJet 2410 - -@@ -1376,6 +1388,9 @@ usb:v03F0p5111* - usb:v03F0p5211* - ID_MODEL_FROM_DATABASE=PhotoSmart 3300 series - -+usb:v03F0p5307* -+ ID_MODEL_FROM_DATABASE=v165w Stick -+ - usb:v03F0p5311* - ID_MODEL_FROM_DATABASE=OfficeJet 6300 - -@@ -2054,6 +2069,21 @@ usb:v0403p8A28* - usb:v0403p8A98* - ID_MODEL_FROM_DATABASE=TIAO Multi-Protocol Adapter - -+usb:v0403p8B28* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCI70 -+ -+usb:v0403p8B29* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 CLS -+ -+usb:v0403p8B2A* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium Q1 -+ -+usb:v0403p8B2B* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCD -+ -+usb:v0403p8B2C* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 -+ - usb:v0403p9133* - ID_MODEL_FROM_DATABASE=CallerID - -@@ -2156,6 +2186,9 @@ usb:v0403pC8BD* - usb:v0403pC8BE* - ID_MODEL_FROM_DATABASE=Alpermann+Velte Rubidium D1 - -+usb:v0403pC8BF* -+ ID_MODEL_FROM_DATABASE=Alpermann+Velte TC60 RLV -+ - usb:v0403pCC48* - ID_MODEL_FROM_DATABASE=Tactrix OpenPort 1.3 Mitsubishi - -@@ -2966,6 +2999,9 @@ usb:v040Ap4021* - usb:v040Ap4022* - ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer - -+usb:v040Ap402E* -+ ID_MODEL_FROM_DATABASE=605 Photo Printer -+ - usb:v040Ap4034* - ID_MODEL_FROM_DATABASE=805 Photo Printer - -@@ -4949,6 +4985,9 @@ usb:v043Ep7001* - usb:v043Ep7013* - ID_MODEL_FROM_DATABASE=MP3 Player - -+usb:v043Ep70D7* -+ ID_MODEL_FROM_DATABASE=Mouse Scanner LSM-150 [LG Smart Scan Mouse] -+ - usb:v043Ep70F5* - ID_MODEL_FROM_DATABASE=External HDD - -@@ -5114,6 +5153,9 @@ usb:v044FpB203* - usb:v044FpB300* - ID_MODEL_FROM_DATABASE=Firestorm Dual Power - -+usb:v044FpB303* -+ ID_MODEL_FROM_DATABASE=FireStorm Dual Analog 2 -+ - usb:v044FpB304* - ID_MODEL_FROM_DATABASE=Firestorm Dual Power - -@@ -6437,6 +6479,9 @@ usb:v045Ep0772* - usb:v045Ep0779* - ID_MODEL_FROM_DATABASE=LifeCam HD-3000 - -+usb:v045Ep0780* -+ ID_MODEL_FROM_DATABASE=Comfort Curve Keyboard 3000 -+ - usb:v045Ep0797* - ID_MODEL_FROM_DATABASE=Optical Mouse 200 - -@@ -7313,6 +7358,9 @@ usb:v046DpC062* - usb:v046DpC063* - ID_MODEL_FROM_DATABASE=DELL Laser Mouse - -+usb:v046DpC064* -+ ID_MODEL_FROM_DATABASE=M110 corded optical mouse (M-B0001) -+ - usb:v046DpC066* - ID_MODEL_FROM_DATABASE=G9x Laser Mouse - -@@ -7331,6 +7379,9 @@ usb:v046DpC06B* - usb:v046DpC06C* - ID_MODEL_FROM_DATABASE=Optical Mouse - -+usb:v046DpC077* -+ ID_MODEL_FROM_DATABASE=M105 Optical Mouse -+ - usb:v046DpC101* - ID_MODEL_FROM_DATABASE=UltraX Media Remote - -@@ -7361,6 +7412,9 @@ usb:v046DpC125* - usb:v046DpC126* - ID_MODEL_FROM_DATABASE=Harmony Link - -+usb:v046DpC12B* -+ ID_MODEL_FROM_DATABASE=Harmony Touch Remote -+ - usb:v046DpC201* - ID_MODEL_FROM_DATABASE=WingMan Extreme Joystick with Throttle - -@@ -7448,6 +7502,12 @@ usb:v046DpC226* - usb:v046DpC227* - ID_MODEL_FROM_DATABASE=G15 Refresh Keyboard - -+usb:v046DpC228* -+ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard -+ -+usb:v046DpC229* -+ ID_MODEL_FROM_DATABASE=G19 Gaming Keyboard Macro Interface -+ - usb:v046DpC22A* - ID_MODEL_FROM_DATABASE=Gaming Keyboard G110 - -@@ -7466,6 +7526,18 @@ usb:v046DpC245* - usb:v046DpC246* - ID_MODEL_FROM_DATABASE=Gaming Mouse G300 - -+usb:v046DpC248* -+ ID_MODEL_FROM_DATABASE=G105 Gaming Keyboard -+ -+usb:v046DpC24A* -+ ID_MODEL_FROM_DATABASE=G600 Gaming Mouse -+ -+usb:v046DpC24D* -+ ID_MODEL_FROM_DATABASE=G710 Gaming Keyboard -+ -+usb:v046DpC24E* -+ ID_MODEL_FROM_DATABASE=G500s Laser Gaming Mouse -+ - usb:v046DpC281* - ID_MODEL_FROM_DATABASE=WingMan Force - -@@ -8543,6 +8615,9 @@ usb:v0480pA006* - usb:v0480pA007* - ID_MODEL_FROM_DATABASE=External Disk USB 3.0 - -+usb:v0480pA009* -+ ID_MODEL_FROM_DATABASE=Stor.E Basics -+ - usb:v0480pD010* - ID_MODEL_FROM_DATABASE=External Disk 3TB - -@@ -10814,6 +10889,9 @@ usb:v04A9p31E5* - usb:v04A9p31E6* - ID_MODEL_FROM_DATABASE=PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS - -+usb:v04A9p31E7* -+ ID_MODEL_FROM_DATABASE=SELPHY CP790 -+ - usb:v04A9p31EA* - ID_MODEL_FROM_DATABASE=EOS Rebel T2i / EOS 550D / EOS Kiss X4 - -@@ -10985,6 +11063,9 @@ usb:v04A9p325F* - usb:v04A9p3260* - ID_MODEL_FROM_DATABASE=PowerShot SX270 HS - -+usb:v04A9p3262* -+ ID_MODEL_FROM_DATABASE=PowerShot A2600 -+ - usb:v04A9p3264* - ID_MODEL_FROM_DATABASE=PowerShot A1400 - -@@ -11000,6 +11081,9 @@ usb:v04A9p3271* - usb:v04A9p3276* - ID_MODEL_FROM_DATABASE=PowerShot SX170 IS - -+usb:v04A9p3277* -+ ID_MODEL_FROM_DATABASE=PowerShot SX510 HS -+ - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -@@ -11312,6 +11396,9 @@ usb:v04B3p4482* - usb:v04B3p4485* - ID_MODEL_FROM_DATABASE=Serial Converter - -+usb:v04B3p4524* -+ ID_MODEL_FROM_DATABASE=40 Character Vacuum Fluorescent Display -+ - usb:v04B3p4525* - ID_MODEL_FROM_DATABASE=Double sided CRT - -@@ -12335,6 +12422,9 @@ usb:v04C5p10FE* - usb:v04C5p1150* - ID_MODEL_FROM_DATABASE=fi-6230 - -+usb:v04C5p201D* -+ ID_MODEL_FROM_DATABASE=SATA 3.0 6Gbit/s Adaptor [GROOVY] -+ - usb:v04C6* - ID_VENDOR_FROM_DATABASE=Toshiba America Electronic Components - -@@ -12374,6 +12464,9 @@ usb:v04C8p072D* - usb:v04CA* - ID_VENDOR_FROM_DATABASE=Lite-On Technology Corp. - -+usb:v04CAp004F* -+ ID_MODEL_FROM_DATABASE=SK-9020 keyboard -+ - usb:v04CAp1766* - ID_MODEL_FROM_DATABASE=HID Monitor Controls - -@@ -13346,6 +13439,9 @@ usb:v04E6p5292* - usb:v04E6p5410* - ID_MODEL_FROM_DATABASE=SCR35xx Smart Card Reader - -+usb:v04E6p5591* -+ ID_MODEL_FROM_DATABASE=SCL3711-NFC&RW -+ - usb:v04E6pE000* - ID_MODEL_FROM_DATABASE=SCRx31 Reader - -@@ -14138,6 +14234,9 @@ usb:v04F2p0841* - usb:v04F2p0860* - ID_MODEL_FROM_DATABASE=2.4G Multimedia Wireless Kit - -+usb:v04F2p1121* -+ ID_MODEL_FROM_DATABASE=Periboard 717 Mini Wireless Keyboard -+ - usb:v04F2pA001* - ID_MODEL_FROM_DATABASE=E-Video DC-100 Camera - -@@ -28935,10 +29034,10 @@ usb:v0906* - ID_VENDOR_FROM_DATABASE=Faraday Technology Corp. - - usb:v0908* -- ID_VENDOR_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd -+ ID_VENDOR_FROM_DATABASE=Siemens AG - - usb:v0908p2701* -- ID_MODEL_FROM_DATABASE=Spy Pen VGA -+ ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA - - usb:v0909* - ID_VENDOR_FROM_DATABASE=Audio-Technica Corp. -@@ -38360,6 +38459,12 @@ usb:v0FFC* - usb:v0FFCp0021* - ID_MODEL_FROM_DATABASE=Nord Stage 2 - -+usb:v0FFD* -+ ID_VENDOR_FROM_DATABASE=EarlySense -+ -+usb:v0FFDpFF00* -+ ID_MODEL_FROM_DATABASE=OEM -+ - usb:v0FFF* - ID_VENDOR_FROM_DATABASE=Aopen, Inc. - -@@ -47762,6 +47867,12 @@ usb:v2237* - usb:v2237p4161* - ID_MODEL_FROM_DATABASE=eReader White - -+usb:v228D* -+ ID_VENDOR_FROM_DATABASE=8D Technologies inc. -+ -+usb:v228Dp0001* -+ ID_MODEL_FROM_DATABASE=Terminal Bike Key Reader -+ - usb:v22A6* - ID_VENDOR_FROM_DATABASE=Pie Digital, Inc. - --- -1.7.9.2 - diff --git a/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch b/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch deleted file mode 100644 index 722f7382..00000000 --- a/0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f3b8fbb1da6519e14985ea444f8304673d20ad3f Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Wed, 3 Sep 2014 13:28:31 +0200 -Subject: [PATCH] initrd-parse-etc.service: ignore return code of - daemon-reload - -It seems the return code of systemctl daemon-reload can be !=0 in some -circumstances, which causes a failure of the unit and breaks booting in -the initrd. ---- - units/initrd-parse-etc.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git units/initrd-parse-etc.service.in units/initrd-parse-etc.service.in -index c0b2543..42c059b 100644 ---- units/initrd-parse-etc.service.in -+++ units/initrd-parse-etc.service.in -@@ -16,7 +16,7 @@ ConditionPathExists=/etc/initrd-release - - [Service] - Type=oneshot --ExecStartPre=@rootbindir@/systemctl daemon-reload -+ExecStartPre=-@rootbindir@/systemctl daemon-reload - # we have to retrigger initrd-fs.target after daemon-reload - ExecStart=-@rootbindir@/systemctl --no-block start initrd-fs.target - ExecStart=@rootbindir@/systemctl --no-block start initrd-cleanup.service --- -1.7.9.2 - diff --git a/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch b/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch deleted file mode 100644 index 1cf00ff0..00000000 --- a/0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e8c108ca9f11a382742f212f5b42a02536b3d40f Mon Sep 17 00:00:00 2001 -From: Philippe De Swert -Date: Wed, 17 Sep 2014 00:27:16 +0300 -Subject: [PATCH] journal: Do not count on the compiler initializing - found_last to false - -There is a very unlikely case where this can happen since gcc usually -does the sane thing. But let's make sure found_last is initialized anyway. - -Fixes: CID#996386 ---- - src/journal/journal-verify.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journal-verify.c src/journal/journal-verify.c -index 6c8ca8c..b4e8f73 100644 ---- src/journal/journal-verify.c -+++ src/journal/journal-verify.c -@@ -804,7 +804,7 @@ int journal_file_verify( - usec_t last_usec = 0; - int data_fd = -1, entry_fd = -1, entry_array_fd = -1; - unsigned i; -- bool found_last; -+ bool found_last = false; - #ifdef HAVE_GCRYPT - uint64_t last_tag = 0; - #endif --- -1.7.9.2 - diff --git a/0001-journal-cleanup-up-error-handling-in-update_catalog.patch b/0001-journal-cleanup-up-error-handling-in-update_catalog.patch deleted file mode 100644 index 2062149b..00000000 --- a/0001-journal-cleanup-up-error-handling-in-update_catalog.patch +++ /dev/null @@ -1,104 +0,0 @@ -From e3b9d9c8027a7c4c55cf1614e0fe9423fad69e8f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Apr 2014 08:44:55 -0400 -Subject: [PATCH] journal: cleanup up error handling in update_catalog() - -- Negative/positive errno mixup caused duplicates not to be detected properly. - Now we get a warning about some duplicate entries in our own catalogs... -- Errors in update_catalog would be ignored, but they should not be. ---- - src/journal/catalog.c | 25 +++++++++++++------------ - src/journal/test-catalog.c | 3 ++- - 2 files changed, 15 insertions(+), 13 deletions(-) - -diff --git src/journal/catalog.c src/journal/catalog.c -index 3ed0b7e..02dedc4 100644 ---- src/journal/catalog.c -+++ src/journal/catalog.c -@@ -103,7 +103,7 @@ static int finish_item( - const char *payload) { - - ssize_t offset; -- CatalogItem *i; -+ _cleanup_free_ CatalogItem *i = NULL; - int r; - - assert(h); -@@ -126,13 +126,14 @@ static int finish_item( - i->offset = htole64((uint64_t) offset); - - r = hashmap_put(h, i, i); -- if (r == EEXIST) { -+ if (r == -EEXIST) { - log_warning("Duplicate entry for " SD_ID128_FORMAT_STR ".%s, ignoring.", - SD_ID128_FORMAT_VAL(id), language ? language : "C"); -- free(i); - return 0; -- } -+ } else if (r < 0) -+ return r; - -+ i = NULL; - return 0; - } - -@@ -383,8 +384,8 @@ error: - int catalog_update(const char* database, const char* root, const char* const* dirs) { - _cleanup_strv_free_ char **files = NULL; - char **f; -- Hashmap *h; - struct strbuf *sb = NULL; -+ _cleanup_hashmap_free_free_ Hashmap *h = NULL; - _cleanup_free_ CatalogItem *items = NULL; - CatalogItem *i; - Iterator j; -@@ -406,13 +407,17 @@ int catalog_update(const char* database, const char* root, const char* const* di - } - - STRV_FOREACH(f, files) { -- log_debug("reading file '%s'", *f); -- catalog_import_file(h, sb, *f); -+ log_debug("Reading file '%s'", *f); -+ r = catalog_import_file(h, sb, *f); -+ if (r < 0) { -+ log_error("Failed to import file '%s': %s.", -+ *f, strerror(-r)); -+ goto finish; -+ } - } - - if (hashmap_size(h) <= 0) { - log_info("No items in catalog."); -- r = 0; - goto finish; - } else - log_debug("Found %u items in catalog.", hashmap_size(h)); -@@ -443,11 +448,7 @@ int catalog_update(const char* database, const char* root, const char* const* di - log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.", - database, n, sb->len, r); - -- r = 0; -- - finish: -- if (h) -- hashmap_free_free(h); - if (sb) - strbuf_cleanup(sb); - -diff --git src/journal/test-catalog.c src/journal/test-catalog.c -index b087a8b..967ab67 100644 ---- src/journal/test-catalog.c -+++ src/journal/test-catalog.c -@@ -157,7 +157,8 @@ int main(int argc, char *argv[]) { - - setlocale(LC_ALL, "de_DE.UTF-8"); - -- log_set_max_level(LOG_DEBUG); -+ log_parse_environment(); -+ log_open(); - - test_catalog_file_lang(); - --- -1.7.9.2 - diff --git a/0001-journal-compress-return-early-in-uncompress_startswi.patch b/0001-journal-compress-return-early-in-uncompress_startswi.patch deleted file mode 100644 index 74777205..00000000 --- a/0001-journal-compress-return-early-in-uncompress_startswi.patch +++ /dev/null @@ -1,186 +0,0 @@ -Based on 5e592c66bdf76dfc8445b332f7a5088ca504ee90 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 4 Jul 2014 19:53:58 -0400 -Subject: [PATCH] journal/compress: return early in uncompress_startswith - -uncompress_startswith would always decode the whole stream, even -if it did not start with the given prefix. - -Reallocation policy was also strange. ---- - src/journal/compress.c | 91 ++++++++++++++----------------------------------- - 1 file changed, 27 insertions(+), 64 deletions(-) - -Index: src/journal/compress.c -=================================================================== ---- src/journal/compress.c.orig -+++ src/journal/compress.c -@@ -25,6 +25,7 @@ - #include - - #include "macro.h" -+#include "util.h" - #include "compress.h" - - bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { -@@ -69,10 +70,9 @@ fail: - bool uncompress_blob(const void *src, uint64_t src_size, - void **dst, uint64_t *dst_alloc_size, uint64_t* dst_size, uint64_t dst_max) { - -- lzma_stream s = LZMA_STREAM_INIT; -+ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; - lzma_ret ret; - uint64_t space; -- bool b = false; - - assert(src); - assert(src_size > 0); -@@ -85,26 +85,18 @@ bool uncompress_blob(const void *src, ui - if (ret != LZMA_OK) - return false; - -- if (*dst_alloc_size <= src_size) { -- void *p; -- -- p = realloc(*dst, src_size*2); -- if (!p) -- return false; -- -- *dst = p; -- *dst_alloc_size = src_size*2; -- } -+ space = MIN(src_size * 2, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space)) -+ return false; - - s.next_in = src; - s.avail_in = src_size; - - s.next_out = *dst; -- space = dst_max > 0 ? MIN(*dst_alloc_size, dst_max) : *dst_alloc_size; - s.avail_out = space; - - for (;;) { -- void *p; -+ uint64_t used; - - ret = lzma_code(&s, LZMA_FINISH); - -@@ -112,31 +104,25 @@ bool uncompress_blob(const void *src, ui - break; - - if (ret != LZMA_OK) -- goto fail; -+ return false; - - if (dst_max > 0 && (space - s.avail_out) >= dst_max) - break; - -- p = realloc(*dst, space*2); -- if (!p) -- goto fail; -- -- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *dst); -- s.avail_out += space; -+ if (dst_max > 0 && space == dst_max) -+ return false; - -- space *= 2; -+ used = space - s.avail_out; -+ space = MIN(2 * space, dst_max ?: (uint64_t) -1); -+ if (!greedy_realloc(dst, dst_alloc_size, space)) -+ return false; - -- *dst = p; -- *dst_alloc_size = space; -+ s.avail_out = space - used; -+ s.next_out = *dst + used; - } - - *dst_size = space - s.avail_out; -- b = true; -- --fail: -- lzma_end(&s); -- -- return b; -+ return true; - } - - bool uncompress_startswith(const void *src, uint64_t src_size, -@@ -144,9 +130,8 @@ bool uncompress_startswith(const void *s - const void *prefix, uint64_t prefix_len, - uint8_t extra) { - -- lzma_stream s = LZMA_STREAM_INIT; -+ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT; - lzma_ret ret; -- bool b = false; - - /* Checks whether the uncompressed blob starts with the - * mentioned prefix. The byte extra needs to follow the -@@ -163,16 +148,8 @@ bool uncompress_startswith(const void *s - if (ret != LZMA_OK) - return false; - -- if (*buffer_size <= prefix_len) { -- void *p; -- -- p = realloc(*buffer, prefix_len*2); -- if (!p) -- return false; -- -- *buffer = p; -- *buffer_size = prefix_len*2; -- } -+ if (!(greedy_realloc(buffer, buffer_size, prefix_len + 1))) -+ return false; - - s.next_in = src; - s.avail_in = src_size; -@@ -181,36 +158,23 @@ bool uncompress_startswith(const void *s - s.avail_out = *buffer_size; - - for (;;) { -- void *p; -- - ret = lzma_code(&s, LZMA_FINISH); - - if (ret != LZMA_STREAM_END && ret != LZMA_OK) -- goto fail; -+ return false; - -- if ((*buffer_size - s.avail_out > prefix_len) && -- memcmp(*buffer, prefix, prefix_len) == 0 && -- ((const uint8_t*) *buffer)[prefix_len] == extra) -- break; -+ if (*buffer_size - s.avail_out >= prefix_len + 1) -+ return memcmp(*buffer, prefix, prefix_len) == 0 && -+ ((const uint8_t*) *buffer)[prefix_len] == extra; - - if (ret == LZMA_STREAM_END) -- goto fail; -- -- p = realloc(*buffer, *buffer_size*2); -- if (!p) -- goto fail; -+ return false; - -- s.next_out = (uint8_t*) p + ((uint8_t*) s.next_out - (uint8_t*) *buffer); - s.avail_out += *buffer_size; - -- *buffer = p; -- *buffer_size *= 2; -- } -- -- b = true; -- --fail: -- lzma_end(&s); -+ if (!(greedy_realloc(buffer, buffer_size, *buffer_size * 2))) -+ return false; - -- return b; -+ s.next_out = *buffer + *buffer_size - s.avail_out; -+ } - } diff --git a/0001-journal-fix-export-of-messages-containing-newlines.patch b/0001-journal-fix-export-of-messages-containing-newlines.patch deleted file mode 100644 index 75cdd023..00000000 --- a/0001-journal-fix-export-of-messages-containing-newlines.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 0ade5ffe2778e7b238bba8d979ca4d53dee1e702 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 31 Mar 2014 08:57:28 -0400 -Subject: [PATCH] journal: fix export of messages containing newlines - -In "export" format, newlines are significant, and messages containing -newlines must be exported as "binary". ---- - src/shared/logs-show.c | 7 ++++--- - src/shared/utf8.c | 5 +++-- - src/shared/utf8.h | 5 ++++- - 3 files changed, 11 insertions(+), 6 deletions(-) - -diff --git src/shared/logs-show.c src/shared/logs-show.c -index 9d14933..b0b66f6 100644 ---- src/shared/logs-show.c -+++ src/shared/logs-show.c -@@ -547,7 +547,9 @@ static int output_export( - startswith(data, "_BOOT_ID=")) - continue; - -- if (!utf8_is_printable(data, length)) { -+ if (utf8_is_printable_newline(data, length, false)) -+ fwrite(data, length, 1, f); -+ else { - const char *c; - uint64_t le64; - -@@ -562,8 +564,7 @@ static int output_export( - le64 = htole64(length - (c - (const char*) data) - 1); - fwrite(&le64, sizeof(le64), 1, f); - fwrite(c + 1, length - (c - (const char*) data) - 1, 1, f); -- } else -- fwrite(data, length, 1, f); -+ } - - fputc('\n', f); - } -diff --git src/shared/utf8.c src/shared/utf8.c -index 0b524d8..c559c13 100644 ---- src/shared/utf8.c -+++ src/shared/utf8.c -@@ -136,7 +136,7 @@ int utf8_encoded_to_unichar(const char *str) { - return unichar; - } - --bool utf8_is_printable(const char* str, size_t length) { -+bool utf8_is_printable_newline(const char* str, size_t length, bool newline) { - const uint8_t *p; - - assert(str); -@@ -145,7 +145,8 @@ bool utf8_is_printable(const char* str, size_t length) { - int encoded_len = utf8_encoded_valid_unichar((const char *)p); - int val = utf8_encoded_to_unichar((const char*)p); - -- if (encoded_len < 0 || val < 0 || is_unicode_control(val)) -+ if (encoded_len < 0 || val < 0 || is_unicode_control(val) || -+ (!newline && val == '\n')) - return false; - - length -= encoded_len; -diff --git src/shared/utf8.h src/shared/utf8.h -index c0eb73a..c087995 100644 ---- src/shared/utf8.h -+++ src/shared/utf8.h -@@ -31,7 +31,10 @@ const char *utf8_is_valid(const char *s) _pure_; - char *ascii_is_valid(const char *s) _pure_; - char *utf8_escape_invalid(const char *s); - --bool utf8_is_printable(const char* str, size_t length) _pure_; -+bool utf8_is_printable_newline(const char* str, size_t length, bool newline) _pure_; -+_pure_ static inline bool utf8_is_printable(const char* str, size_t length) { -+ return utf8_is_printable_newline(str, length, true); -+} - - char *utf16_to_utf8(const void *s, size_t length); - --- -1.7.9.2 - diff --git a/0001-journalctl-do-not-output-reboot-markers-when-running.patch b/0001-journalctl-do-not-output-reboot-markers-when-running.patch deleted file mode 100644 index b2aed874..00000000 --- a/0001-journalctl-do-not-output-reboot-markers-when-running.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4bed248505da4da94d82078fe60326a374970e97 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 26 Sep 2014 10:49:55 -0400 -Subject: [PATCH] journalctl: do not output --reboot-- markers when running - non-interactively - -They are not legal in the export format. ---- - src/journal/journalctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journalctl.c src/journal/journalctl.c -index 47206d3..89a922c 100644 ---- src/journal/journalctl.c -+++ src/journal/journalctl.c -@@ -1939,7 +1939,7 @@ int main(int argc, char *argv[]) { - goto finish; - } - -- if (!arg_merge) { -+ if (!arg_merge && !arg_quiet) { - sd_id128_t boot_id; - - r = sd_journal_get_monotonic_usec(j, NULL, &boot_id); --- -1.7.9.2 - diff --git a/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch b/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch deleted file mode 100644 index 09bd55ef..00000000 --- a/0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch +++ /dev/null @@ -1,36 +0,0 @@ -From d258d4967eb24122c2b1014d4e873f61b633f1d2 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Sun, 25 May 2014 11:57:22 +0200 -Subject: [PATCH] keymap: Add Lenovo Enhanced USB Keyboard - -https://bugs.freedesktop.org/show_bug.cgi?id=77234 ---- - hwdb/60-keyboard.hwdb | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 832c686..fe5b3ee 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -579,6 +579,18 @@ keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr* - KEYBOARD_KEY_f1=f21 - -+# enhanced USB keyboard -+keyboard:usb:v04B3p301B* -+ KEYBOARD_KEY_90001=prog1 # ThinkVantage -+ KEYBOARD_KEY_90002=screenlock -+ KEYBOARD_KEY_90003=file -+ KEYBOARD_KEY_90004=wordprocessor -+ KEYBOARD_KEY_90005=spreadsheet -+ KEYBOARD_KEY_90006=calc -+ KEYBOARD_KEY_90007=mail -+ KEYBOARD_KEY_90008=www -+ -+ - ########################################################### - # Logitech - ########################################################### --- -1.7.9.2 - diff --git a/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch b/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch deleted file mode 100644 index 67fb3061..00000000 --- a/0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 71ed2d38711e345f22e2200bc7bb156aed98972a Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Wed, 12 Nov 2014 23:30:46 +0100 -Subject: [PATCH] keymap: Add support for IBM ThinkPad X41 Tablet - -Scancode taken from: -http://www.thinkwiki.org/wiki/Tablet_Hardware_Buttons#Linux_Support - -William Jon McCann provided the DMI match. IBM seems to have -swapped the version and model of the system: - Manufacturer: IBM - Product Name: 18666TU - Version: ThinkPad X41 Tablet ---- - hwdb/60-keyboard.hwdb | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index d2ca965..56a4009 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -594,6 +594,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* - KEYBOARD_KEY_6f=down # down on d-pad - KEYBOARD_KEY_69=enter # enter on d-pad - -+# ThinkPad X41 Tablet -+keyboard:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:pvr* -+ KEYBOARD_KEY_6c=direction # rotate -+ KEYBOARD_KEY_68=f13 # toolbox -+ KEYBOARD_KEY_6b=esc # escape -+ KEYBOARD_KEY_69=enter # enter on d-pad -+ - # IdeaPad - keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* - KEYBOARD_KEY_42=f23 --- -1.7.9.2 - diff --git a/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch b/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch deleted file mode 100644 index 29bbbcd1..00000000 --- a/0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a046659f8551e1c8f79ba4b66472444e285255df Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 7 Oct 2014 11:20:04 +0200 -Subject: [PATCH] keymap: Fix touchpad toggle on Toshiba Satellite P75-A7200 - -Just like everywhere else we use KEY_F21 instead of KEY_TOUCHPAD_TOGGLE for X -friendliness. ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 8a1baa7..1fea32a 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -1094,7 +1094,7 @@ keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75 - KEYBOARD_KEY_13c=brightnessdown - KEYBOARD_KEY_13d=brightnessup - KEYBOARD_KEY_13e=switchvideomode -- KEYBOARD_KEY_13f=touchpad_toggle -+ KEYBOARD_KEY_13f=f21 # Touchpad toggle - KEYBOARD_KEY_9e=wlan - - ########################################################### --- -1.7.9.2 - diff --git a/0001-let-systemctl-completion-ignore-at-names.patch b/0001-let-systemctl-completion-ignore-at-names.patch index ea89c56a..4763dcaf 100644 --- a/0001-let-systemctl-completion-ignore-at-names.patch +++ b/0001-let-systemctl-completion-ignore-at-names.patch @@ -1,5 +1,5 @@ ---- systemd-210/shell-completion/bash/systemctl -+++ systemd-210/shell-completion/bash/systemctl 2014-08-20 15:01:04.502736981 +0000 +--- systemd-210/shell-completion/bash/systemctl.in ++++ systemd-210/shell-completion/bash/systemctl.in 2014-08-20 15:01:04.502736981 +0000 @@ -43,7 +43,7 @@ __filter_units_by_property () { local units=("$@") local props diff --git a/0001-login-fix-memory-leak-on-DropController.patch b/0001-login-fix-memory-leak-on-DropController.patch deleted file mode 100644 index ba5ed744..00000000 --- a/0001-login-fix-memory-leak-on-DropController.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 60240797a4ce464ec7a0537ccbec4c83f599251c Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Fri, 22 Aug 2014 14:57:11 +0200 -Subject: [PATCH] login: fix memory-leak on DropController() - -Our bus-name watch helpers only remove a bus-name if it's not a -controller, anymore. If we call manager_drop_busname() before -unregistering the controller, the busname will not be dropped. Therefore, -first drop the controller, then drop the bus-name. ---- - src/login/logind-session.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 136bbce..0c6e425 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -1061,11 +1061,13 @@ bool session_is_controller(Session *s, const char *sender) { - - static void session_swap_controller(Session *s, char *name) { - SessionDevice *sd; -+ char *c; - - if (s->controller) { -- manager_drop_busname(s->manager, s->controller); -- free(s->controller); -+ c = s->controller; - s->controller = NULL; -+ manager_drop_busname(s->manager, c); -+ free(c); - - /* Drop all devices as they're now unused. Do that after the - * controller is released to avoid sending out useles --- -1.7.9.2 - diff --git a/0001-login-fix-pos-array-allocation.patch b/0001-login-fix-pos-array-allocation.patch deleted file mode 100644 index 2549d220..00000000 --- a/0001-login-fix-pos-array-allocation.patch +++ /dev/null @@ -1,52 +0,0 @@ -From a1937e679f76758635d295287398abe526de2522 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 25 Feb 2014 12:20:25 +0100 -Subject: [PATCH] login: fix pos-array allocation - -GREEDY_REALLOC takes a pointer to the real size, not the array-width as -argument. Therefore, our array is currently way to small to keep the seat -positions. - -Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store -the array-width instead of array-size. ---- - src/login/logind-seat.c | 2 +- - src/shared/util.h | 9 +++++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git src/login/logind-seat.c src/login/logind-seat.c -index 631be5f..36ec7ed 100644 ---- src/login/logind-seat.c -+++ src/login/logind-seat.c -@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { - if (seat_has_vts(s)) - pos = session->vtnr; - -- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) -+ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) - return; - - seat_evict_position(s, session); -diff --git src/shared/util.h src/shared/util.h -index 9913fce..78b1444 100644 ---- src/shared/util.h -+++ src/shared/util.h -@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); - #define GREEDY_REALLOC0(array, allocated, need) \ - greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) - -+#define GREEDY_REALLOC0_T(array, count, need) \ -+ ({ \ -+ size_t _size = (count) * sizeof((array)[0]); \ -+ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ -+ if (_ptr) \ -+ (count) = _size / sizeof((array)[0]); \ -+ _ptr; \ -+ }) -+ - static inline void _reset_errno_(int *saved_errno) { - errno = *saved_errno; - } --- -1.7.9.2 - diff --git a/0001-login-pause-devices-before-acknowledging-VT-switches.patch b/0001-login-pause-devices-before-acknowledging-VT-switches.patch deleted file mode 100644 index 0a335de2..00000000 --- a/0001-login-pause-devices-before-acknowledging-VT-switches.patch +++ /dev/null @@ -1,82 +0,0 @@ -Based on 2ec3ff668ff03410e94cfef8e3ee9384a8222211 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Fri, 19 Sep 2014 13:26:39 +0200 -Subject: [PATCH] login: pause devices before acknowledging VT switches - -If a session controller does not need synchronous VT switches, we allow -them to pass VT control to logind, which acknowledges all VT switches -unconditionally. This works fine with all sessions using the dbus API, -but causes out-of-sync device use if we switch to legacy sessions that -are notified via VT signals. Those are processed before logind notices -the session-switch via sysfs. Therefore, leaving the old session still -active for a short amount of time. - -This, in fact, may cause the legacy session to prepare graphics devices -before the old session was deactivated, and thus, maybe causing the old -session to interfer with graphics device usage. - -Fix this by releasing devices immediately before acknowledging VT -switches. This way, sessions without VT handlers are required to support -async session switching (which they do in that case, anyway). ---- - src/login/logind-session.c | 21 +++++++++++++++++++++ - src/login/logind-session.h | 1 + - src/login/logind.c | 4 ++-- - 3 files changed, 24 insertions(+), 2 deletions(-) - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-09-24 07:40:45.786639180 +0000 -@@ -1040,6 +1040,27 @@ void session_restore_vt(Session *s) { - s->vtfd = -1; - } - -+void session_leave_vt(Session *s) { -+ assert(s); -+ -+ /* This is called whenever we get a VT-switch signal from the kernel. -+ * We acknowledge all of them unconditionally. Note that session are -+ * free to overwrite those handlers and we only register them for -+ * sessions with controllers. Legacy sessions are not affected. -+ * However, if we switch from a non-legacy to a legacy session, we must -+ * make sure to pause all device before acknowledging the switch. We -+ * process the real switch only after we are notified via sysfs, so the -+ * legacy session might have already started using the devices. If we -+ * don't pause the devices before the switch, we might confuse the -+ * session we switch to. */ -+ -+ if (s->vtfd < 0) -+ return; -+ -+ session_device_pause_all(s); -+ ioctl(s->vtfd, VT_RELDISP, 1); -+} -+ - bool session_is_controller(Session *s, const char *sender) { - assert(s); - ---- src/login/logind-session.h -+++ src/login/logind-session.h 2014-09-24 07:41:50.290236363 +0000 -@@ -173,6 +173,7 @@ KillWho kill_who_from_string(const char - - int session_mute_vt(Session *s); - void session_restore_vt(Session *s); -+void session_leave_vt(Session *s); - - bool session_is_controller(Session *s, const char *sender); - int session_set_controller(Session *s, const char *sender, bool force); ---- src/login/logind.c -+++ src/login/logind.c 2014-09-24 00:00:00.000000000 +0000 -@@ -743,11 +743,11 @@ static int manager_vt_switch(sd_event_so - } - - if (active->vtfd >= 0) { -- ioctl(active->vtfd, VT_RELDISP, 1); -+ session_leave_vt(active); - } else { - LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { - if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { -- ioctl(iter->vtfd, VT_RELDISP, 1); -+ session_leave_vt(iter); - break; - } - } diff --git a/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch b/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch deleted file mode 100644 index ba00c036..00000000 --- a/0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch +++ /dev/null @@ -1,60 +0,0 @@ -From f6ba8671d83f9fce9a00045d8fa399a1c07ba7fc Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Wed, 5 Nov 2014 08:30:52 -0500 -Subject: [PATCH] login: rerun vconsole-setup when switching from vgacon to - fbcon - -The initialization performed by systemd-vconsole-setup is reset -when changing console drivers (say from vgacon to fbcon), so we -need to run it in that case. - -See -http://lists.freedesktop.org/archives/systemd-devel/2014-October/023919.html -http://lists.freedesktop.org/archives/systemd-devel/2014-October/024423.html -http://lists.freedesktop.org/archives/systemd-devel/2014-November/024881.html - -This commit adds a udev rule to make systemd-vconsole-setup get run when -the fbcon device becomes available. - -(david: moved into new file 90-vconsole.rules instead of 71-seats.rules; - build-failures are on me, not on Ray) ---- - Makefile.am | 3 +++ - src/vconsole/90-vconsole.rules | 11 +++++++++++ - 2 files changed, 14 insertions(+) - create mode 100644 src/vconsole/90-vconsole.rules - -diff --git Makefile.am Makefile.am -index 3686103..f614b86 100644 ---- Makefile.am -+++ Makefile.am -@@ -4439,6 +4439,9 @@ rootlibexec_PROGRAMS += \ - nodist_systemunit_DATA += \ - units/systemd-vconsole-setup.service - -+dist_udevrules_DATA += \ -+ src/vconsole/90-vconsole.rules -+ - SYSINIT_TARGET_WANTS += \ - systemd-vconsole-setup.service - endif -diff --git src/vconsole/90-vconsole.rules src/vconsole/90-vconsole.rules -new file mode 100644 -index 0000000..bf6a9ef ---- /dev/null -+++ src/vconsole/90-vconsole.rules -@@ -0,0 +1,11 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+ -+# Kernel resets vconsole state when changing console drivers so run -+# systemd-vconsole-setup when fbcon loads -+ -+ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="/usr/lib/systemd/systemd-vconsole-setup" --- -1.7.9.2 - diff --git a/0001-login-simplify-controller-handling.patch b/0001-login-simplify-controller-handling.patch deleted file mode 100644 index 0ca9ec52..00000000 --- a/0001-login-simplify-controller-handling.patch +++ /dev/null @@ -1,118 +0,0 @@ -Based on b12e56156e5f363ebb8dc4ea5c10f5fd0665dc9d Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Mon, 1 Sep 2014 14:04:44 +0200 -Subject: [PATCH] login: simplify controller handling - -Simplify the way we handler session-controllers and fix several -shortcomings: - * send ReleaseDevice() signals on forced session takeover - * fix mem-leaks for busnames in case VT preparation fails (non-critical) - * avoid passing pre-allocated names to helpers ---- - src/login/logind-session.c | 55 ++++++++++++++++++++++---------------------- - 1 file changed, 28 insertions(+), 27 deletions(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 58453b5..10a43a4 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -1059,32 +1059,30 @@ bool session_is_controller(Session *s, const char *sender) { - return streq_ptr(s->controller, sender); - } - --static void session_swap_controller(Session *s, char *name) { -+static void session_release_controller(Session *s, bool notify) { -+ _cleanup_free_ char *name = NULL; - SessionDevice *sd; -- char *c; - -- if (s->controller) { -- c = s->controller; -- s->controller = NULL; -- manager_drop_busname(s->manager, c); -- free(c); -+ if (!s->controller) -+ return; - -- /* Drop all devices as they're now unused. Do that after the -- * controller is released to avoid sending out useles -- * dbus signals. */ -- while ((sd = hashmap_first(s->devices))) -- session_device_free(sd); -+ name = s->controller; - -- if (!name) -- session_restore_vt(s); -- } -+ /* By resetting the controller before releasing the devices, we won't -+ * send notification signals. This avoids sending useless notifications -+ * if the controller is released on disconnects. */ -+ if (!notify) -+ s->controller = NULL; - -- s->controller = name; -- session_save(s); -+ while ((sd = hashmap_first(s->devices))) -+ session_device_free(sd); -+ -+ s->controller = NULL; -+ manager_drop_busname(s->manager, name); - } - - int session_set_controller(Session *s, const char *sender, bool force) { -- char *t; -+ _cleanup_free_ char *name = NULL; - int r; - - assert(s); -@@ -1095,15 +1093,13 @@ int session_set_controller(Session *s, const char *sender, bool force) { - if (s->controller && !force) - return -EBUSY; - -- t = strdup(sender); -- if (!t) -+ name = strdup(sender); -+ if (!name) - return -ENOMEM; - -- r = manager_watch_busname(s->manager, sender); -- if (r) { -- free(t); -+ r = manager_watch_busname(s->manager, name); -+ if (r) - return r; -- } - - /* When setting a session controller, we forcibly mute the VT and set - * it into graphics-mode. Applications can override that by changing -@@ -1115,11 +1111,14 @@ int session_set_controller(Session *s, const char *sender, bool force) { - * or reset the VT in case it crashed/exited, too. */ - r = session_mute_vt(s); - if (r < 0) { -- free(t); -+ manager_drop_busname(s->manager, name); - return r; - } - -- session_swap_controller(s, t); -+ session_release_controller(s, true); -+ s->controller = name; -+ name = NULL; -+ session_save(s); - - return 0; - } -@@ -1130,7 +1129,9 @@ void session_drop_controller(Session *s) { - if (!s->controller) - return; - -- session_swap_controller(s, NULL); -+ session_release_controller(s, false); -+ session_save(s); -+ session_restore_vt(s); - } - - static const char* const session_state_table[_SESSION_STATE_MAX] = { --- -1.7.9.2 - diff --git a/0001-logind-add-support-for-Triton2-Power-Button.patch b/0001-logind-add-support-for-Triton2-Power-Button.patch deleted file mode 100644 index dbd0047c..00000000 --- a/0001-logind-add-support-for-Triton2-Power-Button.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 58d4aabedd415a735efeb8c2608ee73618c07f78 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 22 Sep 2014 22:14:39 -0400 -Subject: [PATCH] logind: add support for Triton2 Power Button - -https://bugs.freedesktop.org/show_bug.cgi?id=84201 ---- - src/login/70-power-switch.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules -index 36fb827..a6997f7 100644 ---- src/login/70-power-switch.rules -+++ src/login/70-power-switch.rules -@@ -9,5 +9,6 @@ ACTION=="remove", GOTO="power_switch_end" - - SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" -+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" - - LABEL="power_switch_end" --- -1.7.9.2 - diff --git a/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch b/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch deleted file mode 100644 index 269adaba..00000000 --- a/0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 154034270c4643b7cfe61c0be1676d78bb1b7b07 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 8 Jul 2014 12:56:55 +0200 -Subject: [PATCH] logind: allow switching to unused VTs via SwitchTo() - -If compositors use the new SwitchTo() logic to map F1-F12, we should allow -them to switch to unregistered VTs, too. Otherwise, the auto-spawn logic -of gettys won't trigger. - -Reported-by: Jasper St. Pierre -Signed-off-by: David Herrmann ---- - src/login/logind-seat.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git src/login/logind-seat.c src/login/logind-seat.c -index 3114de8..9992195 100644 ---- src/login/logind-seat.c -+++ src/login/logind-seat.c -@@ -275,8 +275,13 @@ int seat_switch_to(Seat *s, unsigned int num) { - if (!num) - return -EINVAL; - -- if (num >= s->position_count || !s->positions[num]) -+ if (num >= s->position_count || !s->positions[num]) { -+ /* allow switching to unused VTs to trigger auto-activate */ -+ if (seat_has_vts(s) && num < 64) -+ return chvt(num); -+ - return -EINVAL; -+ } - - return session_activate(s->positions[num]); - } --- -1.7.9.2 - diff --git a/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch b/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch deleted file mode 100644 index 382d4bf1..00000000 --- a/0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 6a79c58603ea816a1b4fa1520397b4e138bc1ca0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 19:30:16 +0100 -Subject: [PATCH] logind: ignore lid switch if more than 1 display is - connected - -Previously we expected the desktop environment to take an inhibitor -lock, but this opened a race on boot-up where logind might already be -running but no DE is active. - -Hence, let's move checking for additional displays into logind. This -also opens up this logic for other DEs, given that only GNOME -implemented the inhibitor logic so far. ---- - man/logind.conf.xml | 14 +++++++----- - src/login/logind-action.c | 8 +++++++ - src/login/logind-core.c | 55 +++++++++++++++++++++++++++++++++++++++++++-- - src/login/logind.h | 1 + - 4 files changed, 71 insertions(+), 7 deletions(-) - -diff --git man/logind.conf.xml man/logind.conf.xml -index 54cc379..7673201 100644 ---- man/logind.conf.xml -+++ man/logind.conf.xml -@@ -242,10 +242,10 @@ - ignore, logind will - never handle these keys. If - lock, all running -- sessions will be screen-locked; otherwise, -- the specified action -- will be taken in the respective -- event. Only input devices with the -+ sessions will be screen-locked; -+ otherwise, the specified action will -+ be taken in the respective event. Only -+ input devices with the - power-switch udev - tag will be watched for key/lid switch - events. HandlePowerKey= -@@ -257,7 +257,11 @@ - default to suspend. - HandleHibernateKey= - defaults to -- hibernate. -+ hibernate. Note -+ that the lid switch is ignored if the -+ system is inserted in a docking -+ station, or if more than one display -+ is connected. - - - -diff --git src/login/logind-action.c src/login/logind-action.c -index c04f210..da5a830 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -72,10 +72,18 @@ int manager_handle_action( - - /* If we are docked don't react to lid closing */ - if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { -+ int n; -+ - if (manager_is_docked(m)) { - log_debug("Ignoring lid switch request, system is docked."); - return 0; - } -+ -+ n = manager_count_displays(m); -+ if (n != 1) { -+ log_debug("Ignoring lid switch request, %s displays connected."); -+ return 0; -+ } - } - - /* If the key handling is inhibited, don't do anything */ -diff --git src/login/logind-core.c src/login/logind-core.c -index e4e593f..b8d03c3 100644 ---- src/login/logind-core.c -+++ src/login/logind-core.c -@@ -32,6 +32,7 @@ - #include "audit.h" - #include "bus-util.h" - #include "bus-error.h" -+#include "udev-util.h" - #include "logind.h" - - int manager_add_device(Manager *m, const char *sysfs, bool master, Device **_device) { -@@ -276,9 +277,11 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) { - return 0; - } - -- /* ignore non-master devices for unknown seats */ -+ seat = hashmap_get(m->seats, sn); - master = udev_device_has_tag(d, "master-of-seat"); -- if (!master && !(seat = hashmap_get(m->seats, sn))) -+ -+ /* Ignore non-master devices for unknown seats */ -+ if (!master && !seat) - return 0; - - r = manager_add_device(m, udev_device_get_syspath(d), master, &device); -@@ -514,3 +517,51 @@ bool manager_is_docked(Manager *m) { - - return false; - } -+ -+int manager_count_displays(Manager *m) { -+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; -+ struct udev_list_entry *item = NULL, *first = NULL; -+ int r; -+ int n = 0; -+ -+ e = udev_enumerate_new(m->udev); -+ if (!e) -+ return -ENOMEM; -+ -+ r = udev_enumerate_add_match_subsystem(e, "drm"); -+ if (r < 0) -+ return r; -+ -+ r = udev_enumerate_scan_devices(e); -+ if (r < 0) -+ return r; -+ -+ first = udev_enumerate_get_list_entry(e); -+ udev_list_entry_foreach(item, first) { -+ _cleanup_udev_device_unref_ struct udev_device *d = NULL; -+ struct udev_device *p; -+ const char *status; -+ -+ d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item)); -+ if (!d) -+ return -ENOMEM; -+ -+ p = udev_device_get_parent(d); -+ if (!p) -+ return -ENOMEM; -+ -+ /* If the parent shares the same subsystem as the -+ * device we are looking at then it is a connector, -+ * which is what we are interested in. */ -+ if (!streq_ptr(udev_device_get_subsystem(p), "drm")) -+ continue; -+ -+ /* We count any connector which is not explicitly -+ * "disconnected" as connected. */ -+ status = udev_device_get_sysattr_value(d, "status"); -+ if (!streq_ptr(status, "disconnected")) -+ n++; -+ } -+ -+ return n; -+} -diff --git src/login/logind.h src/login/logind.h -index 0344acc..74d6641 100644 ---- src/login/logind.h -+++ src/login/logind.h -@@ -149,6 +149,7 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); - int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); - - bool manager_is_docked(Manager *m); -+int manager_count_displays(Manager *m); - - extern const sd_bus_vtable manager_vtable[]; - --- -1.7.9.2 - diff --git a/0001-machine-don-t-return-uninitialized-variable.patch b/0001-machine-don-t-return-uninitialized-variable.patch deleted file mode 100644 index 5c1bfd05..00000000 --- a/0001-machine-don-t-return-uninitialized-variable.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f14aa1f1b2e4e99ee20393871b5f64f1378ed6c3 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Sun, 6 Jul 2014 14:12:28 +0200 -Subject: [PATCH] machine: don't return uninitialized variable - -Repotred by Ronny Chevalier ---- - src/machine/machine.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/machine/machine.c src/machine/machine.c -index c0fa1b2..cf38e3f 100644 ---- src/machine/machine.c -+++ src/machine/machine.c -@@ -371,7 +371,7 @@ static int machine_stop_scope(Machine *m) { - free(m->scope_job); - m->scope_job = job; - -- return r; -+ return 0; - } - - int machine_stop(Machine *m) { --- -1.7.9.2 - diff --git a/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch b/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch deleted file mode 100644 index df04192f..00000000 --- a/0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 1f97091d3cb0887c264176b47b0a86c269acf0b5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 27 Jun 2014 18:34:37 +0200 -Subject: [PATCH] main: uid_to_name() might fail due to OOM, protect against - that - ---- - src/core/main.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-07-01 12:25:17.906235000 +0000 -@@ -1525,9 +1525,10 @@ int main(int argc, char *argv[]) { - log_info("Running in initial RAM disk."); - - } else { -- _cleanup_free_ char *t = uid_to_name(getuid()); -- log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", -- getuid(), t); -+ _cleanup_free_ char *t; -+ -+ t = uid_to_name(getuid()); -+ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", getuid(), strna(t)); - } - - if (arg_running_as == SYSTEMD_SYSTEM && !skip_setup) { diff --git a/0001-make-209-working-on-older-dist.patch b/0001-make-209-working-on-older-dist.patch deleted file mode 100644 index 63fbd03b..00000000 --- a/0001-make-209-working-on-older-dist.patch +++ /dev/null @@ -1,79 +0,0 @@ ---- systemd-209/units/kmod-static-nodes.service.in -+++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 -@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu - [Service] - Type=oneshot - RemainAfterExit=yes -+ExecStartPre=@MKDIR_P@ /run/tmpfiles.d - ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf ---- systemd-209/configure.ac -+++ systemd-209/configure.ac 2014-02-28 17:14:14.866235643 +0000 -@@ -300,9 +300,9 @@ AC_ARG_ENABLE(kmod, AS_HELP_STRING([--di - if test "x$enable_kmod" != "xno"; then - PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no) - if test "x$have_kmod" = "xyes"; then -- PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ], -+ PKG_CHECK_MODULES(KMOD, [ libkmod >= 14 ], - [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])], -- AC_MSG_ERROR([*** kmod version >= 15 not found])) -+ AC_MSG_ERROR([*** kmod version >= 14 not found])) - fi - if test "x$have_kmod" = xno -a "x$enable_kmod" = xyes; then - AC_MSG_ERROR([*** kmod support requested, but libraries not found]) ---- systemd-209/configure -+++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 -@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then - pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 -- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 -+ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` -+ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then - pkg_cv_KMOD_LIBS="$KMOD_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 -- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 -+ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` -+ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -16042,18 +16042,18 @@ else - _pkg_short_errors_supported=no - fi - if test $_pkg_short_errors_supported = yes; then -- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` -+ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` - else -- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` -+ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$KMOD_PKG_ERRORS" >&5 - -- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 -+ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 - elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } -- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 -+ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 - else - KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS - KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/0001-make-fortify-happy-with-ppoll.patch b/0001-make-fortify-happy-with-ppoll.patch deleted file mode 100644 index ed27a725..00000000 --- a/0001-make-fortify-happy-with-ppoll.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- systemd-209/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-209/src/libsystemd/sd-bus/sd-bus.c 2014-02-28 11:08:21.354235373 +0000 -@@ -2548,7 +2548,7 @@ static int bus_poll(sd_bus *bus, bool ne - n = 2; - } - -- r = ppoll(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); -+ r = __ppoll_alias(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); - if (r < 0) - return -errno; - ---- systemd-209/src/core/hostname-setup.c -+++ systemd-209/src/core/hostname-setup.c 2014-02-28 11:14:51.594832792 +0000 -@@ -50,8 +50,8 @@ static int read_and_strip_hostname(const - } - - /* strip any leftover of a domain name */ -- if (domain = strchr(s, '.')) { -- *domain = NULL; -+ if ((domain = strchr(s, '.'))) { -+ *domain = '\0'; - } - - *hn = s; ---- systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-02-28 11:41:42.254735820 +0000 -@@ -142,7 +142,7 @@ static int ask_password_plymouth( - goto finish; - } - -- if ((j = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { -+ if ((j = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { - - if (errno == EINTR) - continue; -@@ -595,7 +595,7 @@ static int watch_passwords(void) { - if ((r = show_passwords()) < 0) - log_error("Failed to show password: %s", strerror(-r)); - -- if (poll(pollfd, _FD_MAX, -1) < 0) { -+ if (__poll_alias(pollfd, _FD_MAX, -1) < 0) { - - if (errno == EINTR) - continue; ---- systemd-209/src/shared/ask-password-api.c -+++ systemd-209/src/shared/ask-password-api.c 2014-02-28 11:47:21.754234675 +0000 -@@ -138,7 +138,7 @@ int ask_password_tty( - goto finish; - } - -- if ((k = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { -+ if ((k = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { - - if (errno == EINTR) - continue; diff --git a/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch b/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch deleted file mode 100644 index f71e16bd..00000000 --- a/0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch +++ /dev/null @@ -1,79 +0,0 @@ -Based on 4dffec1459f50ac9f8f67ccfcb79836b4ed5a50e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 13:44:45 +0200 -Subject: [PATCH] manager: Linux on hppa has fewer rtsigs, hence avoid using - the higher ones there - -https://bugs.freedesktop.org/show_bug.cgi?id=84931 ---- - src/core/manager.c | 29 +++++++++++++++++++++++++++-- - 1 file changed, 27 insertions(+), 2 deletions(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-10-29 14:02:28.635837997 +0000 -@@ -340,11 +340,14 @@ static int manager_setup_signals(Manager - - assert(m); - -- /* We are not interested in SIGSTOP and friends. */ - assert_se(sigaction(SIGCHLD, &sa, NULL) == 0); - -- assert_se(sigemptyset(&mask) == 0); -+ /* We make liberal use of realtime signals here. On -+ * Linux/glibc we have 30 of them (with the exception of Linux -+ * on hppa, see below), between SIGRTMIN+0 ... SIGRTMIN+30 -+ * (aka SIGRTMAX). */ - -+ assert_se(sigemptyset(&mask) == 0); - sigset_add_many(&mask, - SIGCHLD, /* Child died */ - SIGTERM, /* Reexecute daemon */ -@@ -354,6 +357,7 @@ static int manager_setup_signals(Manager - SIGINT, /* Kernel sends us this on control-alt-del */ - SIGWINCH, /* Kernel sends us this on kbrequest (alt-arrowup) */ - SIGPWR, /* Some kernel drivers and upsd send us this on power failure */ -+ - SIGRTMIN+0, /* systemd: start default.target */ - SIGRTMIN+1, /* systemd: isolate rescue.target */ - SIGRTMIN+2, /* systemd: isolate emergency.target */ -@@ -361,19 +365,40 @@ static int manager_setup_signals(Manager - SIGRTMIN+4, /* systemd: start poweroff.target */ - SIGRTMIN+5, /* systemd: start reboot.target */ - SIGRTMIN+6, /* systemd: start kexec.target */ -+ -+ /* ... space for more special targets ... */ -+ - SIGRTMIN+13, /* systemd: Immediate halt */ - SIGRTMIN+14, /* systemd: Immediate poweroff */ - SIGRTMIN+15, /* systemd: Immediate reboot */ - SIGRTMIN+16, /* systemd: Immediate kexec */ -+ -+ /* ... space for more immediate system state changes ... */ -+ - SIGRTMIN+20, /* systemd: enable status messages */ - SIGRTMIN+21, /* systemd: disable status messages */ - SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */ - SIGRTMIN+23, /* systemd: set log level to LOG_INFO */ - SIGRTMIN+24, /* systemd: Immediate exit (--user only) */ -+ -+ /* .. one free signal here ... */ -+ -+#if !defined(__hppa64__) && !defined(__hppa__) -+ /* Apparently Linux on hppa has fewer RT -+ * signals (SIGRTMAX is SIGRTMIN+25 there), -+ * hence let's not try to make use of them -+ * here. Since these commands are accessible -+ * by different means and only really a safety -+ * net, the missing functionality on hppa -+ * shouldn't matter. */ -+ - SIGRTMIN+26, /* systemd: set log target to journal-or-kmsg */ - SIGRTMIN+27, /* systemd: set log target to console */ - SIGRTMIN+28, /* systemd: set log target to kmsg */ - SIGRTMIN+29, /* systemd: set log target to syslog-or-kmsg */ -+ -+ /* ... one free signal here SIGRTMIN+30 ... */ -+#endif - -1); - assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0); - diff --git a/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch b/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch deleted file mode 100644 index 7d5b066f..00000000 --- a/0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch +++ /dev/null @@ -1,45 +0,0 @@ -From e6a4a517befe559adf6d1dbbadf425c3538849c9 Mon Sep 17 00:00:00 2001 -From: Djalal Harouni -Date: Fri, 11 Apr 2014 01:45:52 +0100 -Subject: [PATCH] nspawn: allow to bind mount journal on top of a non empty - container journal dentry - -Currently if nspawn was called with --link-journal=host or ---link-journal=auto and the right /var/log/journal/machine-id/ exists -then the bind mount the subdirectory into the container might fail due -to the ~/mycontainer/var/log/journal/machine-id/ of the container not -being empty. - -There is no reason to check if the container journal subdir is empty -since there will be a bind mount on top of it. The user asked for a bind -mount so give it. - -Note: a next call with --link-journal=guest may fail due to the -/var/log/journal/machine-id/ on the host not being empty. - -https://bugs.freedesktop.org/show_bug.cgi?id=76193 - -Reported-by: Tobias Hunger ---- - src/nspawn/nspawn.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 9d9238f..ef84664 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1143,11 +1143,6 @@ static int setup_journal(const char *directory) { - } else if (access(p, F_OK) < 0) - return 0; - -- if (dir_is_empty(q) == 0) { -- log_error("%s not empty.", q); -- return -ENOTEMPTY; -- } -- - r = mkdir_p(q, 0755); - if (r < 0) { - log_error("Failed to create %s: %m", q); --- -1.7.9.2 - diff --git a/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch b/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch deleted file mode 100644 index ee7cea2a..00000000 --- a/0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on c00524c9cc7fb498c7244350e25823b8352f078c Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 19 Sep 2014 23:02:00 +0200 -Subject: [PATCH] nspawn: don't try to create veth link with too long ifname - -Reported by: James Lott ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-09-23 15:33:06.766236272 +0000 -@@ -1383,7 +1383,7 @@ static int setup_veth(pid_t pid, char if - - /* Use two different interface name prefixes depending whether - * we are in bridge mode or not. */ -- snprintf(iface_name, IFNAMSIZ, "%s-%s", -+ snprintf(iface_name, IFNAMSIZ - 1, "%s-%s", - arg_network_bridge ? "vb" : "ve", arg_machine); - - r = sd_rtnl_open(&rtnl, 0); diff --git a/0001-nspawn-fix-network-interface.patch b/0001-nspawn-fix-network-interface.patch deleted file mode 100644 index 6e9fce7c..00000000 --- a/0001-nspawn-fix-network-interface.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on 3125b3ef5db70d45882c7d6f617705802c5f939e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 28 Aug 2014 12:15:51 +0200 -Subject: [PATCH] nspawn: fix --network-interface - -Use SETLINK when modifying an existing link. ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-08-29 14:11:25.866235309 +0000 -@@ -1568,7 +1568,7 @@ static int move_network_interfaces(pid_t - return -EBUSY; - } - -- r = sd_rtnl_message_new_link(rtnl, &m, RTM_NEWLINK, ifi); -+ r = sd_rtnl_message_new_link(rtnl, &m, RTM_SETLINK, ifi); - if (r < 0) { - log_error("Failed to allocate netlink message: %s", strerror(-r)); - return r; diff --git a/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch b/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch deleted file mode 100644 index 4378b91f..00000000 --- a/0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch +++ /dev/null @@ -1,31 +0,0 @@ -Based on 4212a3375e03fd12cb407b34cab59dbe4ed9f4eb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 3 Aug 2014 01:28:21 -0400 -Subject: [PATCH] nspawn: fix truncation of machine names in interface names - -Based on patch by Michael Marineau : - -When deriving the network interface name from machine name strncpy was -not properly null terminating the string and the maximum string size as -returned by strlen() is actually IFNAMSIZ-1, not IFNAMSIZ. ---- - src/nspawn/nspawn.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-08-22 10:18:20.390235611 +0000 -@@ -1383,12 +1383,8 @@ static int setup_veth(pid_t pid, char if - - /* Use two different interface name prefixes depending whether - * we are in bridge mode or not. */ -- if (arg_network_bridge) -- memcpy(iface_name, "vb-", 3); -- else -- memcpy(iface_name, "ve-", 3); -- -- strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3); -+ snprintf(iface_name, IFNAMSIZ, "%s-%s", -+ arg_network_bridge ? "vb" : "ve", arg_machine); - - r = sd_rtnl_open(&rtnl, 0); - if (r < 0) { diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch index 4dcfb70f..291de476 100644 --- a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -8,11 +8,11 @@ is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. This belongs to BNC#852015 and also to BNC#855160 --- - pam-module.c | 19 +++++++++++++++++++ + pam_systemd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---- systemd-209/src/login/pam-module.c -+++ systemd-209/src/login/pam-module.c 2014-02-26 14:31:30.158235525 +0000 +--- systemd-209/src/login/pam_systemd.c ++++ systemd-209/src/login/pam_systemd.c 2014-02-26 14:31:30.158235525 +0000 @@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); if (r != PAM_SUCCESS) diff --git a/0001-parse_uid-return-ENXIO-for-1-uids.patch b/0001-parse_uid-return-ENXIO-for-1-uids.patch deleted file mode 100644 index bc23d1a9..00000000 --- a/0001-parse_uid-return-ENXIO-for-1-uids.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f841a154efbb3162d2a732936f031ac7a6b0d4cf Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 1 Jul 2014 16:00:05 +0200 -Subject: [PATCH] parse_uid: return -ENXIO for -1 uids - ---- - src/shared/audit.c | 3 --- - src/shared/util.c | 4 ++-- - 2 files changed, 2 insertions(+), 5 deletions(-) - -diff --git src/shared/audit.c src/shared/audit.c -index 5466447..f101050 100644 ---- src/shared/audit.c -+++ src/shared/audit.c -@@ -77,9 +77,6 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) { - if (r < 0) - return r; - -- if (u == (uid_t) -1) -- return -ENXIO; -- - *uid = (uid_t) u; - return 0; - } -diff --git src/shared/util.c src/shared/util.c -index e75f6c9..9b5a47a 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -282,11 +282,11 @@ int parse_uid(const char *s, uid_t* ret_uid) { - - /* Some libc APIs use (uid_t) -1 as special placeholder */ - if (uid == (uid_t) 0xFFFFFFFF) -- return -EINVAL; -+ return -ENXIO; - - /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ - if (uid == (uid_t) 0xFFFF) -- return -EINVAL; -+ return -ENXIO; - - *ret_uid = uid; - return 0; --- -1.7.9.2 - diff --git a/0001-po-add-Ukrainian-translation.patch b/0001-po-add-Ukrainian-translation.patch deleted file mode 100644 index b7dba0ee..00000000 --- a/0001-po-add-Ukrainian-translation.patch +++ /dev/null @@ -1,406 +0,0 @@ -From 260b6323cc2aebe722d5b8e43fa63a502f906774 Mon Sep 17 00:00:00 2001 -From: Daniel Korostil -Date: Thu, 17 Jul 2014 02:07:29 +0300 -Subject: [PATCH] po: add Ukrainian translation - ---- - po/LINGUAS | 1 + - po/uk.po | 377 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 378 insertions(+) - create mode 100644 po/uk.po - -diff --git po/LINGUAS po/LINGUAS -index 2cb0f30..f214ece 100644 ---- po/LINGUAS -+++ po/LINGUAS -@@ -4,3 +4,4 @@ fr - it - pl - ru -+uk -diff --git po/uk.po po/uk.po -new file mode 100644 -index 0000000..7a5212a ---- /dev/null -+++ po/uk.po -@@ -0,0 +1,377 @@ -+# Ukrainian translation for systemd. -+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER -+# This file is distributed under the same license as the systemd package. -+# Eugene Melnik , 2014. -+# Daniel Korostil , 2014. -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd master\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" -+"temd&keywords=I18N+L10N&component=general\n" -+"POT-Creation-Date: 2014-06-06 22:16+0000\n" -+"PO-Revision-Date: 2014-07-16 19:13+0300\n" -+"Last-Translator: Daniel Korostil \n" -+"Language-Team: linux.org.ua\n" -+"Language: uk\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"X-Generator: Virtaal 0.7.1\n" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Set host name" -+msgstr "Встановити назву вузла" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Засвідчення потрібне, щоб встановити назву локального вузла." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 -+msgid "Set static host name" -+msgstr "Встановити статичну назву вузла" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Засвідчення потрібне, щоб вказати статично налаштовану назву локального " -+"вузла, так само й форматовану." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Встановити інформацію про машину" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Authentication is required to set local machine information." -+msgstr "Засвідчення потрібно, щоб вказати локальну інформацію про машини." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 -+msgid "Set system locale" -+msgstr "Вказати системну локаль" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "Засвідчення потрібно, щоб встановити системну локаль." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Вказати налаштування системної клавіатури" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "Засвідчення потрібно, щоб вказати налаштування системної клавіатури." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow applications to inhibit system shutdown" -+msgstr "Дозволити програмам перешкоджати вимкненню системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:2 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"shutdown." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати вимкненню системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:3 -+msgid "Allow applications to delay system shutdown" -+msgstr "Дозволити програмам затримувати вимкнення системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:4 -+msgid "" -+"Authentication is required to allow an application to delay system shutdown." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам затримувати вимкнення системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:5 -+msgid "Allow applications to inhibit system sleep" -+msgstr "Дозволити програмам перешкоджати засинанню системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow an application to inhibit system sleep." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати засинанню системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:7 -+msgid "Allow applications to delay system sleep" -+msgstr "Дозволити програмами затримувати засинання системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow an application to delay system sleep." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам затримувати засинання системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:9 -+msgid "Allow applications to inhibit automatic system suspend" -+msgstr "Дозволити програмам перешкоджати автоматичному призупиненню системи" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:10 -+msgid "" -+"Authentication is required to allow an application to inhibit automatic " -+"system suspend." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати автоматичному " -+"призупиненню системи." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:11 -+msgid "Allow applications to inhibit system handling of the power key" -+msgstr "Дозволити програмам перешкоджати обробленню системою клавіші живлення" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:12 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the power key." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші живлення." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:13 -+msgid "Allow applications to inhibit system handling of the suspend key" -+msgstr "" -+"Дозволити програмам перешкоджати обробленню системою клавіші призупинення" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:14 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the suspend key." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші призупинення." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:15 -+msgid "Allow applications to inhibit system handling of the hibernate key" -+msgstr "Дозволити програмам перешкоджати обробленню системою клавіші присипання" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:16 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the hibernate key." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші присипання." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:17 -+msgid "Allow applications to inhibit system handling of the lid switch" -+msgstr "" -+"Дозволити програмам перешкоджати обробленню системою клавіші перемикання " -+"кришки" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:18 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the lid switch." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити програмам перешкоджати обробленню " -+"системою клавіші перемикання кришки." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:19 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Дозволити незареєстрованим користувачам запускати програми" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:20 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs." -+msgstr "" -+"Засвідчення потрібно, щоб дозволити незареєстрованим користувачам запускати " -+"програми." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:21 -+msgid "Allow attaching devices to seats" -+msgstr "Дозволити під'єднання пристроїв до місць" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:22 -+msgid "Authentication is required for attaching a device to a seat." -+msgstr "Засвідчення потрібно, щоб під'єднувати пристрої до місць." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:23 -+msgid "Flush device to seat attachments" -+msgstr "Очисний пристрій для під'єднань до місця" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:24 -+msgid "" -+"Authentication is required for resetting how devices are attached to seats." -+msgstr "Засвідчення потрібно, щоб перезапустити спосіб під'єднання до місць." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:25 -+msgid "Power off the system" -+msgstr "Вимкнути систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:26 -+msgid "Authentication is required for powering off the system." -+msgstr "Засвідчення потрібно, щоб вимкнути систему." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:27 -+msgid "Power off the system while other users are logged in" -+msgstr "Вимикнути систему, коли інші користувачі ще в ній" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:28 -+msgid "" -+"Authentication is required for powering off the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб вимкнути систему, коли інші користувачі в ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:29 -+msgid "Power off the system while an application asked to inhibit it" -+msgstr "Вимкнути систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:30 -+msgid "" -+"Authentication is required for powering off the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб вимкнути систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:31 -+msgid "Reboot the system" -+msgstr "Перезавантажити систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:32 -+msgid "Authentication is required for rebooting the system." -+msgstr "Для перезавантаження системи необхідна ідентифікація." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:33 -+msgid "Reboot the system while other users are logged in" -+msgstr "Перезавантажити, якщо інщі користувачі в системі" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:34 -+msgid "" -+"Authentication is required for rebooting the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб перезапустити систему, коли інші користувачі в " -+"ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:35 -+msgid "Reboot the system while an application asked to inhibit it" -+msgstr "Перезапустити систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:36 -+msgid "" -+"Authentication is required for rebooting the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб перезапустити систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:37 -+msgid "Suspend the system" -+msgstr "Призупинити систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:38 -+msgid "Authentication is required for suspending the system." -+msgstr "Засвідчення потрібно, щоб призупинити систему." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:39 -+msgid "Suspend the system while other users are logged in" -+msgstr "Призупинити систему, коли інші користувачі в ній" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:40 -+msgid "" -+"Authentication is required for suspending the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб призупинити систему, коли інші користувачі в ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:41 -+msgid "Suspend the system while an application asked to inhibit it" -+msgstr "Призупинити систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:42 -+msgid "" -+"Authentication is required for suspending the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб призупнити систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:43 -+msgid "Hibernate the system" -+msgstr "Приспати систему" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:44 -+msgid "Authentication is required for hibernating the system." -+msgstr "Засвідчення потрібно, щоб приспати систему." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:45 -+msgid "Hibernate the system while other users are logged in" -+msgstr "Приспати систему, коли інші користувачі в ній" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:46 -+msgid "" -+"Authentication is required for hibernating the system while other users are " -+"logged in." -+msgstr "" -+"Засвідчення потрібно, щоб присипання систему, коли інші користувачі в ній." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:47 -+msgid "Hibernate the system while an application asked to inhibit it" -+msgstr "Приспати систему, коли програми намагаються першкодити цьому" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:48 -+msgid "" -+"Authentication is required for hibernating the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Засвідчення потрібно, щоб приспати систему, коли програми намагаються " -+"першкодити цьому." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 -+msgid "Set system time" -+msgstr "Вказати системний час" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 -+msgid "Authentication is required to set the system time." -+msgstr "Засвідчення потрібно, щоб вказати системний час." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Set system timezone" -+msgstr "Вказати системний часовий пояс" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Засвідчення потрібно, щоб вказати системний часовий пояс." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Вкажіть RTC для локального часового поясу або UTC" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "Засвідчення потрібно, щоб контролювати, чи RTC зберігає час, чи UTC." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Turn network time synchronization on or off" -+msgstr "Увімкнути або вимкнути синхронізування через мережу" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Засвідчення потрібно, щоб контролювати, чи синхронізування часу через мережу " -+"запущено." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 -+msgid "Send passphrase back to system" -+msgstr "Надіслати пароль назад у систему" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 -+msgid "" -+"Authentication is required to send the entered passphrase back to the system." -+msgstr "Засвідчення потрібно, щоб надіслати введений пароль назад у систему." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -+msgid "Privileged system and service manager access" -+msgstr "Привілейований доступ до менеджера системи і служб" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -+msgid "Authentication is required to access the system and service manager." -+msgstr "Засвідчення потрібно, щоб доступитись до менеджера системи і служб." --- -1.7.9.2 - diff --git a/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch b/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch deleted file mode 100644 index 9d10cced..00000000 --- a/0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on b2103dccb354de3f38c49c14ccb637bdf665e40f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 5 Apr 2014 13:59:01 -0400 -Subject: [PATCH] reduce the amount of messages logged to /dev/kmsg when - "debug" is specified - ---- - src/core/main.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-04-14 13:50:48.490814738 +0000 -@@ -412,12 +412,8 @@ static int parse_proc_cmdline_word(const - if (arg_show_status == _SHOW_STATUS_UNSET) - arg_show_status = SHOW_STATUS_AUTO; - } else if (streq(word, "debug")) { -- /* Log to kmsg, the journal socket will fill up before the -- * journal is started and tools running during that time -- * will block with every log message for for 60 seconds, -- * before they give up. */ -- log_set_max_level(LOG_DEBUG); -- log_set_target(detect_container(NULL) > 0 ? LOG_TARGET_CONSOLE : LOG_TARGET_KMSG); -+ if (detect_container(NULL) > 0) -+ log_set_target(LOG_TARGET_CONSOLE); - } else if (!in_initrd()) { - unsigned i; - diff --git a/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch b/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch deleted file mode 100644 index 0438c3ee..00000000 --- a/0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ead349509e325aad720bb0349521a9e56e2ac7c0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 13 May 2014 16:40:53 +0200 -Subject: [PATCH] replace more dup() by F_DUPFD_CLOEXEC - ---- - src/login/inhibit.c | 2 +- - src/shared/install.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/login/inhibit.c src/login/inhibit.c -index 48c2ec4..ae3afdf 100644 ---- src/login/inhibit.c -+++ src/login/inhibit.c -@@ -64,7 +64,7 @@ static int inhibit(sd_bus *bus, sd_bus_error *error) { - if (r < 0) - return r; - -- r = dup(fd); -+ r = fcntl(fd, F_DUPFD_CLOEXEC, 3); - if (r < 0) - return -errno; - -diff --git src/shared/install.c src/shared/install.c -index acfba25..9ce9403 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -332,7 +332,7 @@ static int remove_marked_symlinks( - int q, cfd; - deleted = false; - -- cfd = dup(fd); -+ cfd = fcntl(fd, F_DUPFD_CLOEXEC, 3); - if (cfd < 0) { - r = -errno; - break; --- -1.7.9.2 - diff --git a/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch b/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch deleted file mode 100644 index 47dbcce3..00000000 --- a/0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch +++ /dev/null @@ -1,181 +0,0 @@ -From 42c4ebcbd4cbd7b27667eb8081ee4dc46f9ece17 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 13 Mar 2014 20:33:22 +0100 -Subject: [PATCH] sd-bus: don't look for a 64bit value when we only have 32bit - value on reply cookie hash table access - -This broke hashtable lookups for the message cookies on s390x, which is -a 64bit BE machine where accessing 32bit values as 64bit and vice versa -will explode. - -Also, while we are at it, be a bit more careful when dealing with the -64bit cookies we expose and the 32bit serial numbers dbus uses in its -payload. - -Problem identified by Fridrich Strba. ---- - src/libsystemd/sd-bus/bus-dump.c | 4 ++-- - src/libsystemd/sd-bus/bus-kernel.c | 2 +- - src/libsystemd/sd-bus/bus-message.c | 15 ++++++++++----- - src/libsystemd/sd-bus/bus-message.h | 5 +++-- - src/libsystemd/sd-bus/sd-bus.c | 12 ++++++------ - 5 files changed, 22 insertions(+), 16 deletions(-) - -diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c -index 0e41549..ea81644 100644 ---- a/src/libsystemd/sd-bus/bus-dump.c -+++ b/src/libsystemd/sd-bus/bus-dump.c -@@ -69,10 +69,10 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { - if (BUS_MESSAGE_COOKIE(m) == 0xFFFFFFFFULL) - fprintf(f, " Cookie=-1"); - else -- fprintf(f, " Cookie=%lu", (unsigned long) BUS_MESSAGE_COOKIE(m)); -+ fprintf(f, " Cookie=%" PRIu64, BUS_MESSAGE_COOKIE(m)); - - if (m->reply_cookie != 0) -- fprintf(f, " ReplyCookie=%lu", (unsigned long) m->reply_cookie); -+ fprintf(f, " ReplyCookie=%" PRIu64, m->reply_cookie); - - fputs("\n", f); - -diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c -index 8a2ca02..80ef15b 100644 ---- a/src/libsystemd/sd-bus/bus-kernel.c -+++ b/src/libsystemd/sd-bus/bus-kernel.c -@@ -266,7 +266,7 @@ static int bus_message_setup_kmsg(sd_bus *b, sd_bus_message *m) { - well_known ? 0 : - m->destination ? unique : KDBUS_DST_ID_BROADCAST; - m->kdbus->payload_type = KDBUS_PAYLOAD_DBUS; -- m->kdbus->cookie = m->header->serial; -+ m->kdbus->cookie = (uint64_t) m->header->serial; - m->kdbus->priority = m->priority; - - if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) -diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c -index fb894ef..97ab0e3 100644 ---- a/src/libsystemd/sd-bus/bus-message.c -+++ b/src/libsystemd/sd-bus/bus-message.c -@@ -617,7 +617,7 @@ static int message_new_reply( - t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; - t->reply_cookie = BUS_MESSAGE_COOKIE(call); - -- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); -+ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); - if (r < 0) - goto fail; - -@@ -752,7 +752,7 @@ int bus_message_new_synthetic_error( - t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; - t->reply_cookie = cookie; - -- r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, t->reply_cookie); -+ r = message_append_field_uint32(t, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) t->reply_cookie); - if (r < 0) - goto fail; - -@@ -5075,21 +5075,26 @@ int bus_message_parse_fields(sd_bus_message *m) { - break; - } - -- case BUS_MESSAGE_HEADER_REPLY_SERIAL: -+ case BUS_MESSAGE_HEADER_REPLY_SERIAL: { -+ uint32_t serial; -+ - if (m->reply_cookie != 0) - return -EBADMSG; - - if (!streq(signature, "u")) - return -EBADMSG; - -- r = message_peek_field_uint32(m, &ri, item_size, &m->reply_cookie); -+ r = message_peek_field_uint32(m, &ri, item_size, &serial); - if (r < 0) - return r; - -+ m->reply_cookie = serial; -+ - if (m->reply_cookie == 0) - return -EBADMSG; - - break; -+ } - - case BUS_MESSAGE_HEADER_UNIX_FDS: - if (unix_fds != 0) -@@ -5489,7 +5494,7 @@ int bus_message_remarshal(sd_bus *bus, sd_bus_message **m) { - return -ENOMEM; - - n->reply_cookie = (*m)->reply_cookie; -- r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, n->reply_cookie); -+ r = message_append_field_uint32(n, BUS_MESSAGE_HEADER_REPLY_SERIAL, (uint32_t) n->reply_cookie); - if (r < 0) - return r; - -diff --git a/src/libsystemd/sd-bus/bus-message.h b/src/libsystemd/sd-bus/bus-message.h -index 5fbe3e6..df79294 100644 ---- a/src/libsystemd/sd-bus/bus-message.h -+++ b/src/libsystemd/sd-bus/bus-message.h -@@ -84,7 +84,7 @@ struct sd_bus_message { - - sd_bus *bus; - -- uint32_t reply_cookie; -+ uint64_t reply_cookie; - - const char *path; - const char *interface; -@@ -162,7 +162,8 @@ static inline uint64_t BUS_MESSAGE_BSWAP64(sd_bus_message *m, uint64_t u) { - return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_64(u) : u; - } - --static inline uint32_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { -+static inline uint64_t BUS_MESSAGE_COOKIE(sd_bus_message *m) { -+ /* Note that we return the serial converted to a 64bit value here */ - return BUS_MESSAGE_BSWAP32(m, m->header->serial); - } - -diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c -index ca7c428..8e44e50 100644 ---- a/src/libsystemd/sd-bus/sd-bus.c -+++ b/src/libsystemd/sd-bus/sd-bus.c -@@ -1486,15 +1486,15 @@ static int bus_write_message(sd_bus *bus, sd_bus_message *m, bool hint_sync_call - return r; - - if (bus->is_kernel || *idx >= BUS_MESSAGE_SIZE(m)) -- log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", -+ log_debug("Sent message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", - bus_message_type_to_string(m->header->type), - strna(sd_bus_message_get_sender(m)), - strna(sd_bus_message_get_destination(m)), - strna(sd_bus_message_get_path(m)), - strna(sd_bus_message_get_interface(m)), - strna(sd_bus_message_get_member(m)), -- (unsigned long) BUS_MESSAGE_COOKIE(m), -- (unsigned long) m->reply_cookie, -+ BUS_MESSAGE_COOKIE(m), -+ m->reply_cookie, - strna(m->error.message)); - - return r; -@@ -2253,15 +2253,15 @@ static int process_message(sd_bus *bus, sd_bus_message *m) { - bus->current = m; - bus->iteration_counter++; - -- log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%lu reply_cookie=%lu error=%s", -+ log_debug("Got message type=%s sender=%s destination=%s object=%s interface=%s member=%s cookie=%" PRIu64 " reply_cookie=%" PRIu64 " error=%s", - bus_message_type_to_string(m->header->type), - strna(sd_bus_message_get_sender(m)), - strna(sd_bus_message_get_destination(m)), - strna(sd_bus_message_get_path(m)), - strna(sd_bus_message_get_interface(m)), - strna(sd_bus_message_get_member(m)), -- (unsigned long) BUS_MESSAGE_COOKIE(m), -- (unsigned long) m->reply_cookie, -+ BUS_MESSAGE_COOKIE(m), -+ m->reply_cookie, - strna(m->error.message)); - - r = process_hello(bus, m); --- -1.9.0 - diff --git a/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch b/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch deleted file mode 100644 index c1326c50..00000000 --- a/0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ef7b6c0190fefaacf6d8f8e1a6dda4ba8b98091b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Oct 2014 17:58:43 +0100 -Subject: [PATCH] sd-bus: properly handle removals of non-existing matches - ---- - src/libsystemd/sd-bus/bus-match.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c -index 18afe0f..5658c61 100644 ---- src/libsystemd/sd-bus/bus-match.c -+++ src/libsystemd/sd-bus/bus-match.c -@@ -537,7 +537,7 @@ static int bus_match_find_compare_value( - else if (BUS_MATCH_CAN_HASH(t)) - n = hashmap_get(c->compare.children, value_str); - else { -- for (n = c->child; !value_node_same(n, t, value_u8, value_str); n = n->next) -+ for (n = c->child; n && !value_node_same(n, t, value_u8, value_str); n = n->next) - ; - } - --- -1.7.9.2 - diff --git a/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch b/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch deleted file mode 100644 index 4b9e6e87..00000000 --- a/0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 92daebc0d0268c35f416c1665e0da3d4be5dd69f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 11 Jul 2014 16:48:35 +0200 -Subject: [PATCH] sd-event: don't require a signal event source to be enabled - for the child event source to work - ---- - src/libsystemd/sd-event/sd-event.c | 16 +++++++++------- - 1 file changed, 9 insertions(+), 7 deletions(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index a21f7db..9a9664c 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -1919,14 +1919,13 @@ static int process_signal(sd_event *e, uint32_t events) { - int r; - - assert(e); -- assert(e->signal_sources); - - assert_return(events == EPOLLIN, -EIO); - - for (;;) { - struct signalfd_siginfo si; - ssize_t ss; -- sd_event_source *s; -+ sd_event_source *s = NULL; - - ss = read(e->signal_fd, &si, sizeof(si)); - if (ss < 0) { -@@ -1941,16 +1940,19 @@ static int process_signal(sd_event *e, uint32_t events) { - - read_one = true; - -- s = e->signal_sources[si.ssi_signo]; - if (si.ssi_signo == SIGCHLD) { - r = process_child(e); - if (r < 0) - return r; -- if (r > 0 || !s) -+ if (r > 0) - continue; -- } else -- if (!s) -- return -EIO; -+ } -+ -+ if (e->signal_sources) -+ s = e->signal_sources[si.ssi_signo]; -+ -+ if (!s) -+ continue; - - s->signal.siginfo = si; - r = source_set_pending(s, true); --- -1.7.9.2 - diff --git a/0001-sd-event-restore-correct-timeout-behaviour.patch b/0001-sd-event-restore-correct-timeout-behaviour.patch deleted file mode 100644 index 8787f3f3..00000000 --- a/0001-sd-event-restore-correct-timeout-behaviour.patch +++ /dev/null @@ -1,37 +0,0 @@ -Based on eec6022cf039e62233139000b9e95db943959e48 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 13:43:30 +0200 -Subject: [PATCH] sd-event: restore correct timeout behaviour - ---- - src/libsystemd/sd-event/sd-event.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c 2014-06-06 10:26:51.422235695 +0000 -@@ -2047,6 +2047,7 @@ _public_ int sd_event_run(sd_event *e, u - unsigned ev_queue_max; - sd_event_source *p; - int r, i, m; -+ bool timedout; - - assert_return(e, -EINVAL); - assert_return(!event_pid_changed(e), -ECHILD); -@@ -2084,6 +2085,8 @@ _public_ int sd_event_run(sd_event *e, u - goto finish; - } - -+ timedout = m == 0; -+ - dual_timestamp_get(&e->timestamp); - - for (i = 0; i < m; i++) { -@@ -2123,7 +2126,7 @@ _public_ int sd_event_run(sd_event *e, u - - p = event_next_pending(e); - if (!p) { -- r = 1; -+ r = !timedout; - goto finish; - } - diff --git a/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch b/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch deleted file mode 100644 index cde6a3da..00000000 --- a/0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +++ /dev/null @@ -1,111 +0,0 @@ -Backport of 7ca1d31964a2553f7bd011bc10ac42e0ebc1f975 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 2 May 2014 22:29:18 +0200 -Subject: [PATCH] sd-rtnl-message: append - fix uninitialized memory - -We were not properly clearing the padding at the front of some containers. ---- - src/libsystemd/sd-rtnl/rtnl-message.c | 42 +++++++++++++++++++++------------- - 1 file changed, 27 insertions(+), 15 deletions(-) - ---- src/libsystemd/sd-rtnl/rtnl-message.c -+++ src/libsystemd/sd-rtnl/rtnl-message.c 2014-05-05 13:33:01.998235340 +0000 -@@ -314,24 +314,28 @@ int sd_rtnl_message_link_get_flags(sd_rt - /* If successful the updated message will be correctly aligned, if - unsuccessful the old message is untouched. */ - static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void *data, size_t data_length) { -- uint32_t rta_length, message_length; -+ uint32_t rta_length; -+ size_t message_length, padding_length; - struct nlmsghdr *new_hdr; - struct rtattr *rta; - char *padding; - unsigned i; -+ int offset; - - assert(m); - assert(m->hdr); - assert(!m->sealed); - assert(NLMSG_ALIGN(m->hdr->nlmsg_len) == m->hdr->nlmsg_len); -- assert(!data || data_length > 0); -- assert(data || m->n_containers < RTNL_CONTAINER_DEPTH); -+ assert(!data || data_length); -+ -+ /* get offset of the new attribute */ -+ offset = m->hdr->nlmsg_len; - - /* get the size of the new rta attribute (with padding at the end) */ - rta_length = RTA_LENGTH(data_length); - - /* get the new message size (with padding at the end) */ -- message_length = m->hdr->nlmsg_len + RTA_ALIGN(rta_length); -+ message_length = offset + RTA_ALIGN(rta_length); - - /* realloc to fit the new attribute */ - new_hdr = realloc(m->hdr, message_length); -@@ -340,32 +344,35 @@ static int add_rtattr(sd_rtnl_message *m - m->hdr = new_hdr; - - /* get pointer to the attribute we are about to add */ -- rta = (struct rtattr *) ((uint8_t *) m->hdr + m->hdr->nlmsg_len); -+ rta = (struct rtattr *) ((uint8_t *) m->hdr + offset); - - /* if we are inside containers, extend them */ - for (i = 0; i < m->n_containers; i++) -- GET_CONTAINER(m, i)->rta_len += message_length - m->hdr->nlmsg_len; -+ GET_CONTAINER(m, i)->rta_len += message_length - offset; - - /* fill in the attribute */ - rta->rta_type = type; - rta->rta_len = rta_length; -- if (!data) { -- /* this is the start of a new container */ -- m->container_offsets[m->n_containers ++] = m->hdr->nlmsg_len; -- } else { -+ if (data) - /* we don't deal with the case where the user lies about the type - * and gives us too little data (so don't do that) -- */ -+ */ - padding = mempcpy(RTA_DATA(rta), data, data_length); -- /* make sure also the padding at the end of the message is initialized */ -- memzero(padding, -- (uint8_t *) m->hdr + message_length - (uint8_t *) padding); -+ else { -+ /* if no data was passed, make sure we still initialize the padding -+ note that we can have data_length > 0 (used by some containers) */ -+ padding = RTA_DATA(rta); -+ data_length = 0; - } - -+ /* make sure also the padding at the end of the message is initialized */ -+ padding_length = (uint8_t*)m->hdr + message_length - (uint8_t*)padding; -+ memzero(padding, padding_length); -+ - /* update message size */ - m->hdr->nlmsg_len = message_length; - -- return 0; -+ return offset; - } - - int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const char *data) { -@@ -498,6 +505,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_m - - assert_return(m, -EINVAL); - assert_return(!m->sealed, -EPERM); -+ assert_return(m->n_containers < RTNL_CONTAINER_DEPTH, -ERANGE); - - r = sd_rtnl_message_get_type(m, &rtm_type); - if (r < 0) -@@ -548,6 +556,10 @@ int sd_rtnl_message_append_u32(sd_rtnl_m - if (r < 0) - return r; - -+ m->container_offsets[m->n_containers ++] = r; -+ -+ m->container_offsets[m->n_containers ++] = r; -+ - return 0; - } - diff --git a/0001-selinux-access-fix-broken-ternary-operator.patch b/0001-selinux-access-fix-broken-ternary-operator.patch deleted file mode 100644 index b94de819..00000000 --- a/0001-selinux-access-fix-broken-ternary-operator.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 1e648011b20c8126412d3cf2699d575d9ba9e0fe Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Fri, 21 Nov 2014 17:02:15 +0100 -Subject: [PATCH] selinux-access: fix broken ternary operator - -it seems to be a typo introduced by ebcf1f97de4f6b1580ae55eb56b1a3939fe6b602 -- _r = selinux_access_check(_b, _m, _u->source_path ?:_u->fragment_path, (permission), &_error); \ -+ ({ Unit *_unit = (unit); selinux_generic_access_check(bus,message, _unit->fragment_path ?: _unit->fragment_path, permission,error); }) ---- - src/core/selinux-access.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/selinux-access.h -+++ src/core/selinux-access.h 2014-12-15 11:49:54.521518349 +0000 -@@ -34,7 +34,7 @@ int selinux_generic_access_check(sd_bus - #define selinux_access_check(bus, message, permission, error) \ - selinux_generic_access_check(bus, message, NULL, permission, error) - #define selinux_unit_access_check(unit, bus, message, permission, error) \ -- ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->fragment_path ?: _unit->fragment_path, permission, error); }) -+ ({ Unit *_unit = (unit); selinux_generic_access_check(bus, message, _unit->source_path ?: _unit->fragment_path, permission, error); }) - - #else - diff --git a/0001-shell-completion-fix-completion-of-inactive-units.patch b/0001-shell-completion-fix-completion-of-inactive-units.patch deleted file mode 100644 index 563d9828..00000000 --- a/0001-shell-completion-fix-completion-of-inactive-units.patch +++ /dev/null @@ -1,95 +0,0 @@ -Based on f29c77bc0179b0fa57407dbe30b495be9f5ad2e8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 14 Oct 2014 20:20:07 -0400 -Subject: [PATCH] shell-completion: fix completion of inactive units - -Units which not loaded were not proposed properly. OTOH, we should -filter units from get-unit-files by their state if they are currently -loaded. Bring zsh completions in line with bash completion, the same -logic should be used in both implementations. - -https://bugzilla.redhat.com/show_bug.cgi?id=1024379 -https://bugzilla.redhat.com/show_bug.cgi?id=790768 -https://bugs.freedesktop.org/show_bug.cgi?id=84720 ---- - shell-completion/bash/systemctl | 17 +++++++++-------- - shell-completion/zsh/_systemctl | 16 +++++++++------- - 2 files changed, 18 insertions(+), 15 deletions(-) - ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -55,10 +55,14 @@ __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list- - | { while read -r a b; do echo " $a"; done; }; } - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } --__get_startable_units () { { -- __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap -- __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ -- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } -+__get_startable_units () { -+ # find inactive or failed units, filter out masked and not-found -+ __systemctl $1 list-units --state inactive,failed -- $( __get_all_units ) | \ -+ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } -+__get_restartable_units () { -+ # find !masked, filter out masked and not-found -+ __systemctl $1 list-units --state active,inactive,failed -- $( __get_all_units ) | \ -+ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; } - __get_failed_units () { __systemctl $1 list-units \ - | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } - __get_enabled_units () { __systemctl $1 list-unit-files \ -@@ -180,10 +184,7 @@ _systemctl () { - - elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -- $( __get_all_units $mode \ -- | while read -r line; do \ -- [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ -- done )) -+ $( __get_restartable_units $mode)) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then ---- shell-completion/zsh/_systemctl -+++ shell-completion/zsh/_systemctl -@@ -138,8 +138,11 @@ _filter_units_by_property() { - done - } - -+_systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } -+ - _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} --_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} -+_systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} -+_systemctl_restartable_units(){_sys_restartable_units=($(__systemctl list-units --state inactive,failed,active -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} - _systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} - _systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} - _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} -@@ -181,8 +184,9 @@ done - # Completion functions for STARTABLE_UNITS - (( $+functions[_systemctl_start] )) || _systemctl_start() - { -- _systemctl_inactive_units -- compadd "$@" -a - _sys_inactive_units -+ _systemctl_startable_units -+ compadd "$@" - $( _filter_units_by_property CanStart yes \ -+ ${_sys_startable_units[*]} ) - } - - # Completion functions for STOPPABLE_UNITS -@@ -217,11 +221,9 @@ done - for fun in restart reload-or-restart ; do - (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() - { -- _systemctl_all_units -+ _systemctl_restartable_units - compadd "$@" - $( _filter_units_by_property CanStart yes \ -- ${_sys_all_units[*]} | while read -r line; do \ -- [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ -- done ) -+ ${_sys_restartable_units[*]} ) - } - done - --- -1.7.9.2 - diff --git a/0001-shutdownd-clean-up-initialization-of-struct.patch b/0001-shutdownd-clean-up-initialization-of-struct.patch deleted file mode 100644 index 3f2fb4ea..00000000 --- a/0001-shutdownd-clean-up-initialization-of-struct.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b748c7596f79945be5263a0d1c88de64eb0c5146 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 27 Sep 2014 00:25:09 +0200 -Subject: [PATCH] shutdownd: clean up initialization of struct - -No functional change. We just don't assign the value twice. - -Found by coverity. Fixes: CID#1237616 and #1237617 ---- - src/shutdownd/shutdownd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/shutdownd/shutdownd.c src/shutdownd/shutdownd.c -index 99aa4b3..0f008a6 100644 ---- src/shutdownd/shutdownd.c -+++ src/shutdownd/shutdownd.c -@@ -52,8 +52,8 @@ static int read_packet(int fd, union shutdown_buffer *_b) { - union shutdown_buffer b; /* We maintain our own copy here, in - * order not to corrupt the last message */ - struct iovec iovec = { -- iovec.iov_base = &b, -- iovec.iov_len = sizeof(b) - 1, -+ .iov_base = &b, -+ .iov_len = sizeof(b) - 1, - }; - union { - struct cmsghdr cmsghdr; --- -1.7.9.2 - diff --git a/0001-socket-introduce-SELinuxContextFromNet-option.patch b/0001-socket-introduce-SELinuxContextFromNet-option.patch deleted file mode 100644 index f437c7be..00000000 --- a/0001-socket-introduce-SELinuxContextFromNet-option.patch +++ /dev/null @@ -1,414 +0,0 @@ -Based on 16115b0a7b7cdf08fb38084d857d572d8a9088dc Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Thu, 24 Jul 2014 10:40:28 +0200 -Subject: [PATCH] socket: introduce SELinuxContextFromNet option - -This makes possible to spawn service instances triggered by socket with -MLS/MCS SELinux labels which are created based on information provided by -connected peer. - -Implementation of label_get_child_mls_label derived from xinetd. - -Reviewed-by: Paul Moore ---- - man/systemd.socket.xml | 26 +++++++ - src/core/execute.c | 30 +++++++-- - src/core/execute.h | 1 - src/core/load-fragment-gperf.gperf.m4 | 3 - src/core/mount.c | 1 - src/core/service.c | 4 - - src/core/service.h | 3 - src/core/socket.c | 16 +++- - src/core/socket.h | 2 - src/core/swap.c | 1 - src/shared/label.c | 113 ++++++++++++++++++++++++++++++++++ - src/shared/label.h | 2 - 12 files changed, 191 insertions(+), 11 deletions(-) - ---- man/systemd.socket.xml -+++ man/systemd.socket.xml 2014-09-23 15:36:49.000000000 +0000 -@@ -570,6 +570,32 @@ - - - -+ SELinuxContextFromNet= -+ Takes a boolean -+ argument. When true systemd will attempt -+ to figure out the SELinux label used -+ for the instantiated service from the -+ information handed by the peer over the -+ network. Note that only the security -+ level is used from the information -+ provided by the peer. Other parts of -+ the resulting SELinux context originate -+ from either the target binary that is -+ effectively triggered by socket unit -+ are taken from the value of the -+ SELinuxContext= -+ option.This configuration option only -+ affects sockets with -+ Accept= mode set to -+ true. Also note that -+ this option is useful only when -+ MLS/MCS SELinux policy is -+ deployed. Defaults to -+ false. -+ -+ -+ -+ - PipeSize= - Takes an size in - bytes. Controls the pipe buffer size ---- src/core/execute.c -+++ src/core/execute.c 2014-09-24 09:22:08.882735864 +0000 -@@ -82,6 +82,7 @@ - #include "selinux-util.h" - #include "errno-list.h" - #include "apparmor-util.h" -+#include "label.h" - - #ifdef HAVE_SECCOMP - #include "seccomp-util.h" -@@ -1123,6 +1124,7 @@ int exec_spawn(ExecCommand *command, - bool apply_chroot, - bool apply_tty_stdin, - bool confirm_spawn, -+ bool selinux_context_net, - CGroupControllerMask cgroup_supported, - const char *cgroup_path, - const char *unit_id, -@@ -1594,11 +1596,29 @@ int exec_spawn(ExecCommand *command, - #endif - - #ifdef HAVE_SELINUX -- if (context->selinux_context && use_selinux()) { -- err = setexeccon(context->selinux_context); -- if (err < 0 && !context->selinux_context_ignore) { -- r = EXIT_SELINUX_CONTEXT; -- goto fail_child; -+ if (use_selinux()) { -+ if (context->selinux_context) { -+ err = setexeccon(context->selinux_context); -+ if (err < 0 && !context->selinux_context_ignore) { -+ r = EXIT_SELINUX_CONTEXT; -+ goto fail_child; -+ } -+ } -+ -+ if (selinux_context_net && socket_fd >= 0) { -+ _cleanup_free_ char *label = NULL; -+ -+ err = label_get_child_mls_label(socket_fd, command->path, &label); -+ if (err < 0) { -+ r = EXIT_SELINUX_CONTEXT; -+ goto fail_child; -+ } -+ -+ err = setexeccon(label); -+ if (err < 0) { -+ r = EXIT_SELINUX_CONTEXT; -+ goto fail_child; -+ } - } - } - #endif ---- src/core/execute.h -+++ src/core/execute.h 2014-09-23 15:46:26.000000000 +0000 -@@ -195,6 +195,7 @@ int exec_spawn(ExecCommand *command, - bool apply_chroot, - bool apply_tty_stdin, - bool confirm_spawn, -+ bool selinux_context_net, - CGroupControllerMask cgroup_mask, - const char *cgroup_path, - const char *unit_id, ---- src/core/load-fragment-gperf.gperf.m4 -+++ src/core/load-fragment-gperf.gperf.m4 2014-09-23 00:00:00.000000000 +0000 -@@ -242,6 +242,9 @@ Socket.SmackLabelIPOut, config_ - `Socket.SmackLabel, config_parse_warn_compat, 0, 0 - Socket.SmackLabelIPIn, config_parse_warn_compat, 0, 0 - Socket.SmackLabelIPOut, config_parse_warn_compat, 0, 0') -+m4_ifdef(`HAVE_SELINUX', -+`Socket.SELinuxContextFromNet, config_parse_bool, 0, offsetof(Socket, selinux_context_from_net)', -+`Socket.SELinuxContextFromNet, config_parse_warn_compat, 0, 0') - EXEC_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl - CGROUP_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl - KILL_CONTEXT_CONFIG_ITEMS(Socket)m4_dnl ---- src/core/mount.c -+++ src/core/mount.c 2014-09-24 09:16:26.234235379 +0000 -@@ -785,6 +785,7 @@ static int mount_spawn(Mount *m, ExecCom - true, - true, - UNIT(m)->manager->confirm_spawn, -+ false, - UNIT(m)->manager->cgroup_supported, - UNIT(m)->cgroup_path, - UNIT(m)->id, ---- src/core/service.c -+++ src/core/service.c 2014-09-23 15:49:24.000000000 +0000 -@@ -1856,6 +1856,7 @@ static int service_spawn( - apply_chroot, - apply_tty_stdin, - UNIT(s)->manager->confirm_spawn, -+ s->socket_fd_selinux_context_net, - UNIT(s)->manager->cgroup_supported, - path, - UNIT(s)->id, -@@ -3787,7 +3788,7 @@ static void service_bus_name_owner_chang - } - } - --int service_set_socket_fd(Service *s, int fd, Socket *sock) { -+int service_set_socket_fd(Service *s, int fd, Socket *sock, bool selinux_context_net) { - _cleanup_free_ char *peer = NULL; - int r; - -@@ -3825,6 +3826,7 @@ int service_set_socket_fd(Service *s, in - } - - s->socket_fd = fd; -+ s->socket_fd_selinux_context_net = selinux_context_net; - - unit_ref_set(&s->accept_socket, UNIT(sock)); - ---- src/core/service.h -+++ src/core/service.h 2014-09-23 15:51:13.000000000 +0000 -@@ -159,6 +159,7 @@ struct Service { - pid_t main_pid, control_pid; - int socket_fd; - -+ bool socket_fd_selinux_context_net; - bool permissions_start_only; - bool root_directory_start_only; - bool remain_after_exit; -@@ -204,7 +205,7 @@ extern const UnitVTable service_vtable; - - struct Socket; - --int service_set_socket_fd(Service *s, int fd, struct Socket *socket); -+int service_set_socket_fd(Service *s, int fd, struct Socket *socket, bool selinux_context_net); - - const char* service_state_to_string(ServiceState i) _const_; - ServiceState service_state_from_string(const char *s) _pure_; ---- src/core/socket.c -+++ src/core/socket.c 2014-09-24 09:13:29.698735735 +0000 -@@ -453,7 +453,8 @@ static void socket_dump(Unit *u, FILE *f - "%sBroadcast: %s\n" - "%sPassCredentials: %s\n" - "%sPassSecurity: %s\n" -- "%sTCPCongestion: %s\n", -+ "%sTCPCongestion: %s\n" -+ "%sSELinuxContextFromNet: %s\n", - prefix, socket_state_to_string(s->state), - prefix, socket_result_to_string(s->result), - prefix, socket_address_bind_ipv6_only_to_string(s->bind_ipv6_only), -@@ -466,7 +467,8 @@ static void socket_dump(Unit *u, FILE *f - prefix, yes_no(s->broadcast), - prefix, yes_no(s->pass_cred), - prefix, yes_no(s->pass_sec), -- prefix, strna(s->tcp_congestion)); -+ prefix, strna(s->tcp_congestion), -+ prefix, yes_no(s->selinux_context_from_net)); - - if (s->control_pid > 0) - fprintf(f, -@@ -1000,7 +1002,12 @@ static int socket_open_fds(Socket *s) { - - if (p->type == SOCKET_SOCKET) { - -- if (!know_label) { -+ if (!know_label && s->selinux_context_from_net) { -+ r = label_get_our_label(&label); -+ if (r < 0) -+ return r; -+ know_label = true; -+ } else if (!know_label) { - - if ((r = socket_instantiate_service(s)) < 0) - return r; -@@ -1247,6 +1254,7 @@ static int socket_spawn(Socket *s, ExecC - true, - true, - UNIT(s)->manager->confirm_spawn, -+ s->selinux_context_from_net, - UNIT(s)->manager->cgroup_supported, - UNIT(s)->cgroup_path, - UNIT(s)->id, -@@ -1568,7 +1576,7 @@ static void socket_enter_running(Socket - - unit_choose_id(UNIT(service), name); - -- r = service_set_socket_fd(service, cfd, s); -+ r = service_set_socket_fd(service, cfd, s, s->selinux_context_from_net); - if (r < 0) - goto fail; - ---- src/core/socket.h -+++ src/core/socket.h 2014-09-23 15:55:17.000000000 +0000 -@@ -154,6 +154,8 @@ struct Socket { - char *smack; - char *smack_ip_in; - char *smack_ip_out; -+ -+ bool selinux_context_from_net; - }; - - /* Called from the service code when collecting fds */ ---- src/core/swap.c -+++ src/core/swap.c 2014-09-24 09:17:18.438735618 +0000 -@@ -642,6 +642,7 @@ static int swap_spawn(Swap *s, ExecComma - true, - true, - UNIT(s)->manager->confirm_spawn, -+ false, - UNIT(s)->manager->cgroup_supported, - UNIT(s)->cgroup_path, - UNIT(s)->id, ---- src/shared/label.c -+++ src/shared/label.c 2014-09-23 00:00:00.000000000 +0000 -@@ -31,6 +31,7 @@ - #ifdef HAVE_SELINUX - #include - #include -+#include - #endif - - #include "label.h" -@@ -41,6 +42,12 @@ - #include "smack-util.h" - - #ifdef HAVE_SELINUX -+DEFINE_TRIVIAL_CLEANUP_FUNC(security_context_t, freecon); -+DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free); -+ -+#define _cleanup_security_context_free_ _cleanup_(freeconp) -+#define _cleanup_context_free_ _cleanup_(context_freep) -+ - static struct selabel_handle *label_hnd = NULL; - #endif - -@@ -243,6 +250,112 @@ fail: - return r; - } - -+int label_get_our_label(char **label) { -+ int r = -EOPNOTSUPP; -+ char *l = NULL; -+ -+#ifdef HAVE_SELINUX -+ r = getcon(&l); -+ if (r < 0) -+ return r; -+ -+ *label = l; -+#endif -+ -+ return r; -+} -+ -+int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { -+ int r = -EOPNOTSUPP; -+ -+#ifdef HAVE_SELINUX -+ -+ _cleanup_security_context_free_ security_context_t mycon = NULL, peercon = NULL, fcon = NULL, ret = NULL; -+ _cleanup_context_free_ context_t pcon = NULL, bcon = NULL; -+ security_class_t sclass; -+ -+ const char *range = NULL; -+ -+ assert(socket_fd >= 0); -+ assert(exe); -+ assert(label); -+ -+ r = getcon(&mycon); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ r = getpeercon(socket_fd, &peercon); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ r = getexeccon(&fcon); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ if (!fcon) { -+ /* If there is no context set for next exec let's use context -+ of target executable */ -+ r = getfilecon(exe, &fcon); -+ if (r < 0) { -+ r = -errno; -+ goto out; -+ } -+ } -+ -+ bcon = context_new(mycon); -+ if (!bcon) { -+ r = -ENOMEM; -+ goto out; -+ } -+ -+ pcon = context_new(peercon); -+ if (!pcon) { -+ r = -ENOMEM; -+ goto out; -+ } -+ -+ range = context_range_get(pcon); -+ if (!range) { -+ r = -errno; -+ goto out; -+ } -+ -+ r = context_range_set(bcon, range); -+ if (r) { -+ r = -errno; -+ goto out; -+ } -+ -+ freecon(mycon); -+ mycon = context_str(bcon); -+ if (!mycon) { -+ r = -errno; -+ goto out; -+ } -+ -+ sclass = string_to_security_class("process"); -+ r = security_compute_create(mycon, fcon, sclass, &ret); -+ if (r < 0) { -+ r = -EINVAL; -+ goto out; -+ } -+ -+ *label = ret; -+ r = 0; -+ -+out: -+ if (r < 0 && security_getenforce() == 1) -+ return r; -+#endif -+ return r; -+} -+ - int label_context_set(const char *path, mode_t mode) { - int r = 0; - ---- src/shared/label.h -+++ src/shared/label.h 2014-09-23 00:00:00.000000000 +0000 -@@ -40,6 +40,8 @@ void label_context_clear(void); - void label_free(const char *label); - - int label_get_create_label_from_exe(const char *exe, char **label); -+int label_get_our_label(char **label); -+int label_get_child_mls_label(int socket_fd, const char *exec, char **label); - - int label_mkdir(const char *path, mode_t mode); - diff --git a/0001-strv-add-an-additional-overflow-check-when-enlarging.patch b/0001-strv-add-an-additional-overflow-check-when-enlarging.patch deleted file mode 100644 index 3f953f4f..00000000 --- a/0001-strv-add-an-additional-overflow-check-when-enlarging.patch +++ /dev/null @@ -1,35 +0,0 @@ -Based on 97569e154b80541cbad39d78231b7f360d4ff058 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 21 Oct 2014 14:01:28 +0200 -Subject: [PATCH] strv: add an additional overflow check when enlarging - strv()s - -https://bugs.freedesktop.org/show_bug.cgi?id=76745 ---- - src/shared/strv.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- src/shared/strv.c -+++ src/shared/strv.c 2014-10-23 00:00:00.000000000 +0000 -@@ -361,13 +361,19 @@ char *strv_join_quoted(char **l) { - - int strv_push(char ***l, char *value) { - char **c; -- unsigned n; -+ unsigned n, m; - - if (!value) - return 0; - - n = strv_length(*l); -- c = realloc(*l, sizeof(char*) * (n + 2)); -+ -+ /* increase and check for overflow */ -+ m = n + 2; -+ if (m < n) -+ return -ENOMEM; -+ -+ c = realloc(*l, sizeof(char*) * (size_t) m); - if (!c) - return -ENOMEM; - diff --git a/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch b/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch deleted file mode 100644 index 917c8ec2..00000000 --- a/0001-systemctl-Correct-error-message-printed-when-bus_pro.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 498cfc230af8f83675be2e92057956f1792969e4 Mon Sep 17 00:00:00 2001 -From: Sjoerd Simons -Date: Sat, 23 Aug 2014 21:11:44 +0200 -Subject: [PATCH] systemctl: Correct error message printed when - bus_process_wait fails - -Actually use the variable containing the return code of bus_process_wait when -printing the error message as a result of it failing. ---- - src/systemctl/systemctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index d9b8bee..6534819 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -2382,7 +2382,7 @@ static int wait_for_jobs(sd_bus *bus, Set *s) { - while (!set_isempty(s)) { - q = bus_process_wait(bus); - if (q < 0) { -- log_error("Failed to wait for response: %s", strerror(-r)); -+ log_error("Failed to wait for response: %s", strerror(-q)); - return q; - } - --- -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 deleted file mode 100644 index 8e78fe01..00000000 --- a/0001-systemctl-allow-to-change-the-default-target-without.patch +++ /dev/null @@ -1,51 +0,0 @@ -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/0001-systemctl-let-list-units-unit-files-honour-type.patch b/0001-systemctl-let-list-units-unit-files-honour-type.patch deleted file mode 100644 index 1548d84f..00000000 --- a/0001-systemctl-let-list-units-unit-files-honour-type.patch +++ /dev/null @@ -1,94 +0,0 @@ -Based on 6c71341aeecc3d092ed90f66e1b2c481b8e260ff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 29 Oct 2014 22:46:30 -0400 -Subject: [PATCH] systemctl: let list-{units,unit-files } honour --type - -The docs don't clarify what is expected, but I don't see any reason -why --type should be ignored. - -Also restucture the compund conditions into separate clauses for -easier reading. ---- - src/systemctl/systemctl.c | 48 ++++++++++++++++++++++++++++++++++----------- - 1 file changed, 37 insertions(+), 11 deletions(-) - ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-11-18 00:00:00.000000000 +0000 -@@ -305,21 +305,37 @@ static int compare_unit_info(const void - } - - static bool output_show_unit(const UnitInfo *u, char **patterns) { -- const char *dot; -- - if (!strv_isempty(patterns)) { - char **pattern; - - STRV_FOREACH(pattern, patterns) - if (fnmatch(*pattern, u->id, FNM_NOESCAPE) == 0) -- return true; -+ goto next; - return false; - } - -- return (!arg_types || ((dot = strrchr(u->id, '.')) && -- strv_find(arg_types, dot+1))) && -- (arg_all || !(streq(u->active_state, "inactive") -- || u->following[0]) || u->job_id > 0); -+next: -+ if (arg_types) { -+ const char *dot; -+ -+ dot = strrchr(u->id, '.'); -+ if (!dot) -+ return false; -+ -+ if (!strv_find(arg_types, dot+1)) -+ return false; -+ } -+ -+ if (arg_all) -+ return true; -+ -+ if (u->job_id > 0) -+ return true; -+ -+ if (streq(u->active_state, "inactive") || u->following[0]) -+ return false; -+ -+ return true; - } - - static void output_units_list(const UnitInfo *unit_infos, unsigned c) { -@@ -1019,18 +1035,28 @@ static int compare_unit_file_list(const - } - - static bool output_show_unit_file(const UnitFileList *u, char **patterns) { -- const char *dot; -- - if (!strv_isempty(patterns)) { - char **pattern; - - STRV_FOREACH(pattern, patterns) - if (fnmatch(*pattern, basename(u->path), FNM_NOESCAPE) == 0) -- return true; -+ goto next; - return false; - } - -- return !arg_types || ((dot = strrchr(u->path, '.')) && strv_find(arg_types, dot+1)); -+next: -+ if (!strv_isempty(arg_types)) { -+ const char *dot; -+ -+ dot = strrchr(u->path, '.'); -+ if (!dot) -+ return false; -+ -+ if (!strv_find(arg_types, dot+1)) -+ return false; -+ } -+ -+ return true; - } - - static void output_unit_file_list(const UnitFileList *units, unsigned c) { diff --git a/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch b/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch deleted file mode 100644 index 544be067..00000000 --- a/0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 08073121d8171f8e6be27b0c80e2ec283064760e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 13 Oct 2014 15:43:09 +0200 -Subject: [PATCH] systemctl: when mangle unit names for the "isolate", suffix - with ".target" rather than ".service" by default - -After all, we set AllowIsolate exclusively for target units so far, and -this is more or less the only thing tht makes sense, hence also use -".target" as completion suffix by default. ---- - src/systemctl/systemctl.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 842ca6c..af3cc97 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -2704,7 +2704,7 @@ static enum action verb_to_action(const char *verb) { - static int start_unit(sd_bus *bus, char **args) { - _cleanup_set_free_free_ Set *s = NULL; - _cleanup_strv_free_ char **names = NULL; -- const char *method, *mode, *one_name; -+ const char *method, *mode, *one_name, *suffix = NULL; - char **name; - int r = 0; - -@@ -2717,8 +2717,11 @@ static int start_unit(sd_bus *bus, char **args) { - method = verb_to_method(args[0]); - action = verb_to_action(args[0]); - -- mode = streq(args[0], "isolate") ? "isolate" : -- action_table[action].mode ?: arg_job_mode; -+ if (streq(args[0], "isolate")) { -+ mode = "isolate"; -+ suffix = ".target"; -+ } else -+ mode = action_table[action].mode ?: arg_job_mode; - - one_name = action_table[action].target; - } else { -@@ -2734,7 +2737,7 @@ static int start_unit(sd_bus *bus, char **args) { - if (one_name) - names = strv_new(one_name, NULL); - else { -- r = expand_names(bus, args + 1, NULL, &names); -+ r = expand_names(bus, args + 1, suffix, &names); - if (r < 0) - log_error("Failed to expand names: %s", strerror(-r)); - } --- -1.7.9.2 - diff --git a/0001-systemd-continue-switch-root-even-if-umount-fails.patch b/0001-systemd-continue-switch-root-even-if-umount-fails.patch deleted file mode 100644 index e8b3ee9f..00000000 --- a/0001-systemd-continue-switch-root-even-if-umount-fails.patch +++ /dev/null @@ -1,50 +0,0 @@ -Based on d677d4df80e0ea1c66c691f50867fedd63c6770a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 16 Oct 2014 19:12:55 -0500 -Subject: [PATCH] systemd: continue switch-root even if umount fails - -Leaving the old root around seems better than aborting the -switch. ---- - src/core/main.c | 2 +- - src/core/switch-root.c | 11 +++++------ - 2 files changed, 6 insertions(+), 7 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-10-20 13:35:35.915837828 +0000 -@@ -1848,7 +1848,7 @@ finish: - /* And switch root */ - r = switch_root(switch_root_dir); - if (r < 0) -- log_error("Failed to switch root, ignoring: %s", strerror(-r)); -+ log_error("Failed to switch root, trying to continue: %s", strerror(-r)); - } - - args_size = MAX(6, argc+1); ---- src/core/switch-root.c -+++ src/core/switch-root.c 2014-10-20 13:39:58.167121460 +0000 -@@ -68,10 +68,9 @@ int switch_root(const char *new_root) { - goto fail; - } - -- /* Work-around for a kernel bug: for some reason the kernel -- * refuses switching root if any file systems are mounted -- * MS_SHARED. Hence remount them MS_PRIVATE here as a -- * work-around. -+ /* Work-around for kernel design: the kernel refuses switching -+ * root if any file systems are mounted MS_SHARED. Hence -+ * remount them MS_PRIVATE here as a work-around. - * - * https://bugzilla.redhat.com/show_bug.cgi?id=847418 */ - if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) -@@ -124,8 +123,8 @@ int switch_root(const char *new_root) { - * running off it we need to do this lazily. */ - if (umount2("/mnt", MNT_DETACH) < 0) { - r = -errno; -- log_error("Failed to umount old root dir /mnt: %m"); -- goto fail; -+ log_error("Failed to lazily umount old root dir /mnt, %s: %m", -+ errno == ENOENT ? "ignoring" : "leaving it around"); - } - - } else if (mount(new_root, "/", NULL, MS_MOVE, NULL) < 0) { diff --git a/0001-systemd-detect-virt-detect-s390-virtualization.patch b/0001-systemd-detect-virt-detect-s390-virtualization.patch deleted file mode 100644 index 300258fb..00000000 --- a/0001-systemd-detect-virt-detect-s390-virtualization.patch +++ /dev/null @@ -1,72 +0,0 @@ -From f41925b4e442a34c93ad120ef1426c974a047ed1 Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Fri, 18 Jul 2014 09:13:36 -0400 -Subject: [PATCH] systemd-detect-virt: detect s390 virtualization - -A system that is running on a logical partition (LPAR) provided by -PR/SM has access to physical hardware (except CPU). It is true that -PR/SM abstracts the hardware, but only for sharing purposes. - -Details are statet at: - -http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm - --->-- -In other words, PR/SM transforms physical resources into virtual resources so -that many logical partitions can share the same physical resources. ---<-- - -Still, from the OS point of view, the shared virtual resource is real -hardware. ConditionVirtualization must be set to false if the OS runs -directly on PR/SM (e.g. in an LPAR). - -[zj: reorder code so that variables are not allocated when #if-def is -false. Add commit message.] ---- - man/systemd.unit.xml | 1 + - src/shared/virt.c | 17 +++++++++++++++++ - 2 files changed, 18 insertions(+) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 6447584..86a8cbb 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -996,6 +996,7 @@ - virtualization solution, or one of - qemu, - kvm, -+ zvm, - vmware, - microsoft, - oracle, -diff --git src/shared/virt.c src/shared/virt.c -index 20a8d7c..b436895 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -220,6 +220,23 @@ int detect_vm(const char **id) { - goto finish; - } - -+#if defined(__s390__) -+ { -+ _cleanup_free_ char *t = NULL; -+ -+ r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t); -+ if (r >= 0) { -+ if (streq(t, "z/VM")) -+ _id = "zvm"; -+ else -+ _id = "kvm"; -+ r = 1; -+ -+ goto finish; -+ } -+ } -+#endif -+ - r = 0; - - finish: --- -1.7.9.2 - diff --git a/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch b/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch deleted file mode 100644 index 9f1a8dcb..00000000 --- a/0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 9ed2a35e93f4a9e82585f860f54cdcbbdf3e1f86 Mon Sep 17 00:00:00 2001 -From: Richard Weinberger -Date: Tue, 9 Sep 2014 11:09:37 +0200 -Subject: [PATCH] systemd-tmpfiles: Fix IGNORE_DIRECTORY_PATH age handling - -If one has a config like: -d /tmp 1777 root root - -X /tmp/important_mount - -All files below /tmp/important_mount will be deleted as the -/tmp/important_mount item will spuriously inherit a max age of 0 -from /tmp. -/tmp has a max age of 0 but age_set is (of course) false. - -This affects also the PrivateTmp feature of systemd. -All tmp files of such services will be deleted unconditionally -and can cause service failures and data loss. - -Fix this by checking ->age_set in the IGNORE_DIRECTORY_PATH logic. ---- - src/tmpfiles/tmpfiles.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index f9830c4..7eafd6b 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -1576,7 +1576,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { - candidate_item = j; - } - -- if (candidate_item) { -+ if (candidate_item && candidate_item->age_set) { - i->age = candidate_item->age; - i->age_set = true; - } --- -1.7.9.2 - diff --git a/0001-sysv-order-initscripts-which-provide-network-before-.patch b/0001-sysv-order-initscripts-which-provide-network-before-.patch deleted file mode 100644 index 944b9158..00000000 --- a/0001-sysv-order-initscripts-which-provide-network-before-.patch +++ /dev/null @@ -1,34 +0,0 @@ -Based on 805b573fad06b845502e76f3db3a0efa7583149d Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 23 Jul 2014 12:49:14 +0200 -Subject: [PATCH] sysv: order initscripts which provide $network before - network.target - -Due to recent changes where $network "maps" to network-online.target -it is not guaranteed that initscript which provides networking will -be terminated after network.target during shutdown which is against LSB. ---- - src/core/service.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- src/core/service.c -+++ src/core/service.c 2014-07-30 11:27:16.074235995 +0000 -@@ -820,7 +820,7 @@ static int service_load_sysv_path(Servic - - if (unit_name_to_type(m) == UNIT_SERVICE) - r = unit_merge_by_name(u, m); -- else -+ else { - /* NB: SysV targets - * which are provided - * by a service are -@@ -835,6 +835,9 @@ static int service_load_sysv_path(Servic - * in the SysV - * services! */ - r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, UNIT_WANTS, m, NULL, true); -+ if (r >= 0 && streq(m, SPECIAL_NETWORK_ONLINE_TARGET)) -+ r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_NETWORK_TARGET, NULL, true); -+ } - - if (r < 0) - log_error_unit(u->id, diff --git a/0001-tmpfiles-compare-return-against-correct-errno.patch b/0001-tmpfiles-compare-return-against-correct-errno.patch deleted file mode 100644 index 10c2e214..00000000 --- a/0001-tmpfiles-compare-return-against-correct-errno.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e7aab5412829ed6b50d109f670bd0b1b365838a7 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 11 Oct 2014 20:35:06 -0400 -Subject: [PATCH] tmpfiles: compare return against correct errno - -name_to_handle_at returns -EOPNOTSUPP, not -ENOTSUP. ---- - src/tmpfiles/tmpfiles.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index dafb9ae..8108b43 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -259,7 +259,7 @@ static int dir_is_mount_point(DIR *d, const char *subdir) { - - /* got only one handle; assume different mount points if one - * of both queries was not supported by the filesystem */ -- if (r_p == -ENOSYS || r_p == -ENOTSUP || r == -ENOSYS || r == -ENOTSUP) -+ if (r_p == -ENOSYS || r_p == -EOPNOTSUPP || r == -ENOSYS || r == -EOPNOTSUPP) - return true; - - /* return error */ --- -1.7.9.2 - diff --git a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch deleted file mode 100644 index de54a2e5..00000000 --- a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a606871da508995f5ede113a8fc6538afd98966c Mon Sep 17 00:00:00 2001 -From: Greg KH -Date: Tue, 15 Apr 2014 14:12:01 -0700 -Subject: [PATCH] tmpfiles: fix permissions on new journal files - -When starting up journald on a new system, set the proper permissions on -the system.journal files, not only on the journal directory. ---- - tmpfiles.d/systemd.conf | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git tmpfiles.d/systemd.conf tmpfiles.d/systemd.conf -index 7c6d6b9..c470045 100644 ---- tmpfiles.d/systemd.conf -+++ tmpfiles.d/systemd.conf -@@ -23,6 +23,6 @@ d /run/systemd/machines 0755 root root - - d /run/systemd/shutdown 0755 root root - - - m /var/log/journal 2755 root systemd-journal - - --m /var/log/journal/%m 2755 root systemd-journal - - -+Z /var/log/journal/%m 2755 root systemd-journal - - - m /run/log/journal 2755 root systemd-journal - - --m /run/log/journal/%m 2755 root systemd-journal - - -+Z /run/log/journal/%m 2755 root systemd-journal - - --- -1.7.9.2 - diff --git a/0001-umount-modernizations.patch b/0001-umount-modernizations.patch deleted file mode 100644 index 1397d155..00000000 --- a/0001-umount-modernizations.patch +++ /dev/null @@ -1,119 +0,0 @@ -From c3544e8d2c2d870a2aff0944aff4ab7824b9ae6b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 21:35:15 +0200 -Subject: [PATCH] umount: modernizations - ---- - src/core/umount.c | 65 ++++++++++++++++++++++------------------------------- - 1 file changed, 27 insertions(+), 38 deletions(-) - -diff --git src/core/umount.c src/core/umount.c -index d1258f0..a30f674 100644 ---- src/core/umount.c -+++ src/core/umount.c -@@ -61,52 +61,46 @@ static void mount_points_list_free(MountPoint **head) { - } - - static int mount_points_list_get(MountPoint **head) { -- FILE *proc_self_mountinfo; -- char *path, *p; -+ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; - unsigned int i; -- int r; - - assert(head); - -- if (!(proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"))) -+ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); -+ if (!proc_self_mountinfo) - return -errno; - - for (i = 1;; i++) { -- int k; -+ _cleanup_free_ char *path = NULL; -+ char *p = NULL; - MountPoint *m; -+ int k; - -- path = p = NULL; -- -- if ((k = fscanf(proc_self_mountinfo, -- "%*s " /* (1) mount id */ -- "%*s " /* (2) parent id */ -- "%*s " /* (3) major:minor */ -- "%*s " /* (4) root */ -- "%ms " /* (5) mount point */ -- "%*s" /* (6) mount options */ -- "%*[^-]" /* (7) optional fields */ -- "- " /* (8) separator */ -- "%*s " /* (9) file system type */ -- "%*s" /* (10) mount source */ -- "%*s" /* (11) mount options 2 */ -- "%*[^\n]", /* some rubbish at the end */ -- &path)) != 1) { -+ k = fscanf(proc_self_mountinfo, -+ "%*s " /* (1) mount id */ -+ "%*s " /* (2) parent id */ -+ "%*s " /* (3) major:minor */ -+ "%*s " /* (4) root */ -+ "%ms " /* (5) mount point */ -+ "%*s" /* (6) mount options */ -+ "%*[^-]" /* (7) optional fields */ -+ "- " /* (8) separator */ -+ "%*s " /* (9) file system type */ -+ "%*s" /* (10) mount source */ -+ "%*s" /* (11) mount options 2 */ -+ "%*[^\n]", /* some rubbish at the end */ -+ &path); -+ if (k != 1) { - if (k == EOF) - break; - - log_warning("Failed to parse /proc/self/mountinfo:%u.", i); -- -- free(path); - continue; - } - - p = cunescape(path); -- free(path); -- -- if (!p) { -- r = -ENOMEM; -- goto finish; -- } -+ if (!p) -+ return -ENOMEM; - - /* Ignore mount points we can't unmount because they - * are API or because we are keeping them open (like -@@ -118,22 +112,17 @@ static int mount_points_list_get(MountPoint **head) { - continue; - } - -- if (!(m = new0(MountPoint, 1))) { -+ m = new0(MountPoint, 1); -+ if (!m) { - free(p); -- r = -ENOMEM; -- goto finish; -+ return -ENOMEM; - } - - m->path = p; - LIST_PREPEND(mount_point, *head, m); - } - -- r = 0; -- --finish: -- fclose(proc_self_mountinfo); -- -- return r; -+ return 0; - } - - static int swap_list_get(MountPoint **head) { --- -1.7.9.2 - diff --git a/0001-units-introduce-network-pre.target-as-place-to-hook-.patch b/0001-units-introduce-network-pre.target-as-place-to-hook-.patch deleted file mode 100644 index ffbc0569..00000000 --- a/0001-units-introduce-network-pre.target-as-place-to-hook-.patch +++ /dev/null @@ -1,126 +0,0 @@ -From a4a878d04045b46fa9783664e3643a890b356790 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 11 Jun 2014 11:33:02 +0200 -Subject: [PATCH] units: introduce network-pre.target as place to hook in - firewalls - -network-pre.target is a passive target that should be pulled in by -services that want to be executed before any network is configured (for -example: firewall scrips). - -network-pre.target should be ordered before all network managemet -services (but not be pulled in by them). - -network-pre.target should be order after all services that want to be -executed before any network is configured (and be pulled in by them). ---- - Makefile.am | 1 + - man/systemd.special.xml | 15 +++++++++++++++ - units/local-fs.target | 2 -- - units/network-pre.target | 12 ++++++++++++ - units/network.target | 2 ++ - units/systemd-networkd.service.in | 2 +- - 6 files changed, 31 insertions(+), 3 deletions(-) - create mode 100644 units/network-pre.target - -diff --git Makefile.am Makefile.am -index 3ea95e9..8514ec9 100644 ---- Makefile.am -+++ Makefile.am -@@ -413,6 +413,7 @@ dist_systemunit_DATA = \ - units/remote-fs.target \ - units/remote-fs-pre.target \ - units/network.target \ -+ units/network-pre.target \ - units/network-online.target \ - units/nss-lookup.target \ - units/nss-user-lookup.target \ -diff --git man/systemd.special.xml man/systemd.special.xml -index 38b94a7..cda6edd 100644 ---- man/systemd.special.xml -+++ man/systemd.special.xml -@@ -72,6 +72,7 @@ - multi-user.target, - network.target, - network-online.target, -+ network-pre.target, - nss-lookup.target, - nss-user-lookup.target, - paths.target, -@@ -891,6 +892,20 @@ - - - -+ network-pre.target -+ -+ This passive target unit -+ may be pulled in by services -+ that want to run before any -+ network is set up, for example -+ for the purpose of setting up a -+ firewall. All network -+ management software orders -+ itself after this target, but -+ does not pull it in. -+ -+ -+ - nss-lookup.target - - A target that should be -diff --git units/local-fs.target units/local-fs.target -index ae3cedc..70cb13f 100644 ---- units/local-fs.target -+++ units/local-fs.target -@@ -9,7 +9,5 @@ - Description=Local File Systems - Documentation=man:systemd.special(7) - After=local-fs-pre.target --DefaultDependencies=no --Conflicts=shutdown.target - OnFailure=emergency.target - OnFailureJobMode=replace-irreversibly -diff --git units/network-pre.target units/network-pre.target -new file mode 100644 -index 0000000..0ea4bc7 ---- /dev/null -+++ units/network-pre.target -@@ -0,0 +1,12 @@ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU Lesser General Public License as published by -+# the Free Software Foundation; either version 2.1 of the License, or -+# (at your option) any later version. -+ -+[Unit] -+Description=Network (Pre) -+Documentation=man:systemd.special(7) -+Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -+RefuseManualStart=yes -diff --git units/network.target units/network.target -index 65fc64b..61ebdca 100644 ---- units/network.target -+++ units/network.target -@@ -9,3 +9,5 @@ - Description=Network - Documentation=man:systemd.special(7) - Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -+After=network-pre.target -+RefuseManualStart=yes -diff --git units/systemd-networkd.service.in units/systemd-networkd.service.in -index 373ac4e..48f4d63 100644 ---- units/systemd-networkd.service.in -+++ units/systemd-networkd.service.in -@@ -9,7 +9,7 @@ - Description=Network Service - Documentation=man:systemd-networkd.service(8) - DefaultDependencies=no --After=dbus.service -+After=dbus.service network-pre.target - Before=network.target - Wants=network.target - ConditionCapability=CAP_NET_ADMIN --- -1.7.9.2 - diff --git a/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch b/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch deleted file mode 100644 index bb9010bd..00000000 --- a/0001-units-make-ExecStopPost-action-part-of-ExecStart.patch +++ /dev/null @@ -1,46 +0,0 @@ -Based on d3381512282f2ca1c7669f77fb736a90fdce6982 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 8 Jul 2014 17:42:23 +0200 -Subject: [PATCH] units: make ExecStopPost action part of ExecStart - -Currently after exiting rescue shell we isolate default target. User -might want to isolate to some other target than default one. However -issuing systemctl isolate command to desired target would bring system -to default target as a consequence of running ExecStopPost action. - -Having common ancestor for rescue shell and possible followup systemctl -default command should fix this. If user exits rescue shell we will -proceed with isolating default target, otherwise, on manual isolate, -parent shell process is terminated and we don't isolate default target, -but target chosen by user. - -Suggested-by: Michal Schmidt ---- - units/emergency.service.in | 3 +-- - units/rescue.service.m4.in | 3 +-- - 2 files changed, 2 insertions(+), 4 deletions(-) - ---- units/emergency.service.in -+++ units/emergency.service.in 2014-07-10 13:31:50.662235825 +0000 -@@ -18,8 +18,7 @@ WorkingDirectory=/root - ExecStartPre=-/usr/bin/plymouth quit - ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' --ExecStart=-/usr/sbin/sulogin --ExecStopPost=@SYSTEMCTL@ --fail --no-block default -+ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" - Type=idle - StandardInput=tty-force - StandardOutput=inherit ---- units/rescue.service.m4.in -+++ units/rescue.service.m4.in 2014-07-10 13:32:15.678235509 +0000 -@@ -19,8 +19,7 @@ WorkingDirectory=/root - ExecStartPre=-/usr/bin/plymouth quit - ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' --ExecStart=-/usr/sbin/sulogin --ExecStopPost=-@SYSTEMCTL@ --fail --no-block default -+ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" - Type=idle - StandardInput=tty-force - StandardOutput=inherit diff --git a/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch b/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch deleted file mode 100644 index 052eeca6..00000000 --- a/0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch +++ /dev/null @@ -1,32 +0,0 @@ -Based on 812bd1e6ab4c463507557f2bdbb8875fedd92ade Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 21 Nov 2014 01:20:57 +0100 -Subject: [PATCH] units: make sure rfkill service is bount to the actual - hardware - ---- - rules/99-systemd.rules.in | 2 +- - units/systemd-rfkill@.service.in | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in -@@ -62,7 +62,7 @@ SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="pa - - # Pull in rfkill save/restore for all rfkill devices - --SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" -+SUBSYSTEM=="rfkill", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/rfkill/devices/%k", ENV{SYSTEMD_WANTS}+="systemd-rfkill@$name.service" - - # Asynchronously mount file systems implemented by these modules as - # soon as they are loaded. ---- units/systemd-rfkill@.service.in -+++ units/systemd-rfkill@.service.in 2014-12-05 11:52:59.433518948 +0000 -@@ -9,6 +9,7 @@ - Description=Load/Save RF Kill Switch Status of %I - Documentation=man:systemd-rfkill@.service(8) - DefaultDependencies=no -+BindsTo=sys-subsystem-rfkill-devices-%i.device - RequiresMountsFor=/var/lib/systemd/rfkill - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service diff --git a/0001-units-order-network-online.target-after-network.targ.patch b/0001-units-order-network-online.target-after-network.targ.patch deleted file mode 100644 index d09fa29e..00000000 --- a/0001-units-order-network-online.target-after-network.targ.patch +++ /dev/null @@ -1,20 +0,0 @@ -Based on 58e027023b47b32e42cf93dd4a629b869ee1ef25 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 11 Jun 2014 14:58:32 +0200 -Subject: [PATCH] units: order network-online.target after network.target - -There might be implementations around where the network-online logic -might not talk to any network configuration service (and thus not have -to wait for it), hence let's explicitly order network-online.target -after network.target to avoid any ambiguities. ---- - units/network-online.target | 1 + - 1 file changed, 1 insertion(+) - ---- units/network-online.target -+++ units/network-online.target 2014-06-26 00:00:00.000000000 +0000 -@@ -9,3 +9,4 @@ - Description=Network is Online - Documentation=man:systemd.special(7) - Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -+After=network.target diff --git a/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch b/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch deleted file mode 100644 index 6c60f8b7..00000000 --- a/0001-units-systemd-sysctl.service.in-run-after-load-modul.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 0b73eab7a2185ae0377650e3fdb8208347a8a575 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Sat, 23 Mar 2013 03:54:16 +0100 -Subject: [PATCH] units/systemd-sysctl.service.in: run after load-modules - -Modules might or will register new sysctl options. - -[zj: This mechanism of adding modules just to reliably set sysctl -attributes is not ideal. Nevertheless, sysctl for dynamically created -attributes is simply broken, and this is the easiest workaround.] - -https://bugzilla.redhat.com/show_bug.cgi?id=1022977 -https://bugzilla.novell.com/show_bug.cgi?id=725412 ---- - units/systemd-sysctl.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git units/systemd-sysctl.service.in units/systemd-sysctl.service.in -index 5c7c5d7..ade9dc3 100644 ---- units/systemd-sysctl.service.in -+++ units/systemd-sysctl.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service - DefaultDependencies=no - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service -+After=systemd-modules-load.service - Before=sysinit.target shutdown.target - ConditionPathIsReadWrite=/proc/sys/ - ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch b/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch deleted file mode 100644 index 8aa6da5f..00000000 --- a/0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8c94052ee543c3598a3c7b0c46688150aa2c6168 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 27 Oct 2014 17:15:42 +0100 -Subject: [PATCH 1/2] units: tmpfiles-setup-dev - allow unsafe file creation to - happen in /dev at boot - -This will allow us to mark static device nodes with '!' to indicate that they should only be created at early boot. ---- - units/systemd-tmpfiles-setup-dev.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in -index f3833fd..0123a03 100644 ---- a/units/systemd-tmpfiles-setup-dev.service.in -+++ b/units/systemd-tmpfiles-setup-dev.service.in -@@ -17,4 +17,4 @@ ConditionCapability=CAP_SYS_MODULE - [Service] - Type=oneshot - RemainAfterExit=yes --ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create -+ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create --boot --- -2.1.2 - diff --git a/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch b/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch deleted file mode 100644 index 9a6c97a5..00000000 --- a/0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3a8a916338d8446b938f3cf40f6aae0c611892e3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 11:47:10 +0200 -Subject: [PATCH] util: consider 0x7F a control chracter (which it is: DEL) - -Let's better be safe than sorry. ---- - src/shared/util.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git src/shared/util.c src/shared/util.c -index 3d875c7..d25ee66 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1608,8 +1608,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - return -ETIMEDOUT; - } - -+ errno = 0; - if (!fgets(line, sizeof(line), f)) -- return -EIO; -+ return errno ? -errno : -EIO; - - truncate_nl(line); - -@@ -5355,6 +5356,9 @@ bool string_is_safe(const char *p) { - if (*t > 0 && *t < ' ') - return false; - -+ if (*t == 127) -+ return false; -+ - if (strchr("\\\"\'", *t)) - return false; - } -@@ -5371,10 +5375,14 @@ bool string_has_cc(const char *p) { - - assert(p); - -- for (t = p; *t; t++) -+ for (t = p; *t; t++) { - if (*t > 0 && *t < ' ' && *t != '\t') - return true; - -+ if (*t == 127) -+ return true; -+ } -+ - return false; - } - --- -1.7.9.2 - diff --git a/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch b/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch deleted file mode 100644 index bf379908..00000000 --- a/0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch +++ /dev/null @@ -1,56 +0,0 @@ -From ff452e76e2c0f89a32542b7179bb2fd538335933 Mon Sep 17 00:00:00 2001 -From: Carl Schaefer -Date: Mon, 23 Jun 2014 18:23:48 +0200 -Subject: [PATCH] vconsole: also copy character maps (not just fonts) from vt1 - to vt2, vt3, ... - -https://bugs.freedesktop.org/show_bug.cgi?id=78796 ---- - src/vconsole/vconsole-setup.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git src/vconsole/vconsole-setup.c src/vconsole/vconsole-setup.c -index 0f2b706..e0c4050 100644 ---- src/vconsole/vconsole-setup.c -+++ src/vconsole/vconsole-setup.c -@@ -180,6 +180,10 @@ static int font_load(const char *vc, const char *font, const char *map, const ch - */ - static void font_copy_to_all_vcs(int fd) { - struct vt_stat vcs = {}; -+ unsigned char map8[E_TABSZ]; -+ unsigned short map16[E_TABSZ]; -+ struct unimapdesc unimapd; -+ struct unipair unipairs[USHRT_MAX]; - int i, r; - - /* get active, and 16 bit mask of used VT numbers */ -@@ -209,6 +213,26 @@ static void font_copy_to_all_vcs(int fd) { - cfo.op = KD_FONT_OP_COPY; - cfo.height = vcs.v_active-1; /* tty1 == index 0 */ - ioctl(vcfd, KDFONTOP, &cfo); -+ -+ /* copy map of 8bit chars */ -+ if (ioctl(fd, GIO_SCRNMAP, map8) >= 0) -+ ioctl(vcfd, PIO_SCRNMAP, map8); -+ -+ /* copy map of 8bit chars -> 16bit Unicode values */ -+ if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0) -+ ioctl(vcfd, PIO_UNISCRNMAP, map16); -+ -+ /* copy unicode translation table */ -+ /* unimapd is a ushort count and a pointer to an -+ array of struct unipair { ushort, ushort } */ -+ unimapd.entries = unipairs; -+ unimapd.entry_ct = USHRT_MAX; -+ if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) { -+ struct unimapinit adv = { 0, 0, 0 }; -+ -+ ioctl(vcfd, PIO_UNIMAPCLR, &adv); -+ ioctl(vcfd, PIO_UNIMAP, &unimapd); -+ } - } - } - --- -1.7.9.2 - diff --git a/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch b/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch deleted file mode 100644 index a5358cc9..00000000 --- a/0001-virt-detect-that-we-are-running-inside-the-docker-co.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 893e72da6b27c21b102e1589276e651e9e4f591c Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 9 Sep 2014 18:14:25 +0200 -Subject: [PATCH] virt: detect that we are running inside the docker container - ---- - src/shared/virt.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git src/shared/virt.c src/shared/virt.c -index b436895..f9c4e67 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -310,6 +310,8 @@ int detect_container(const char **id) { - _id = "lxc-libvirt"; - else if (streq(e, "systemd-nspawn")) - _id = "systemd-nspawn"; -+ else if (streq(e, "docker")) -+ _id = "docker"; - else - _id = "other"; - --- -1.7.9.2 - diff --git a/0001-virt-rework-container-detection-logic.patch b/0001-virt-rework-container-detection-logic.patch deleted file mode 100644 index 4adc20a2..00000000 --- a/0001-virt-rework-container-detection-logic.patch +++ /dev/null @@ -1,159 +0,0 @@ -Based on fdd25311706bd32580ec4d43211cdf4665d2f9de Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 28 May 2014 18:37:11 +0800 -Subject: [PATCH] virt: rework container detection logic - -Instead of accessing /proc/1/environ directly, trying to read the -$container variable from it, let's make PID 1 save the contents of that -variable to /run/systemd/container. This allows us to detect containers -without the need for CAP_SYS_PTRACE, which allows us to drop it from a -number of daemons and from the file capabilities of systemd-detect-virt. - -Also, don't consider chroot a container technology anymore. After all, -we don't consider file system namespaces container technology anymore, -and hence chroot() should be considered a container even less. ---- - Makefile.am | 3 --- - configure.ac | 2 -- - src/core/main.c | 12 ++++++++++++ - src/shared/virt.c | 48 ++++++++++++++++++++++++++++++------------------ - 4 files changed, 42 insertions(+), 23 deletions(-) - -diff --git Makefile.am Makefile.am -index 5b26bc3..f66ef42 100644 ---- Makefile.am -+++ Makefile.am -@@ -1798,9 +1798,6 @@ systemd_detect_virt_SOURCES = \ - systemd_detect_virt_LDADD = \ - libsystemd-shared.la - --systemd-detect-virt-install-hook: -- -$(SETCAP) cap_dac_override,cap_sys_ptrace=ep $(DESTDIR)$(bindir)/systemd-detect-virt -- - INSTALL_EXEC_HOOKS += \ - systemd-detect-virt-install-hook - ---- configure.ac -+++ configure.ac 2014-06-03 14:16:45.046237826 +0000 -@@ -68,8 +68,6 @@ AC_PATH_PROG([XSLTPROC], [xsltproc]) - AC_PATH_PROG([QUOTAON], [quotaon], [/usr/sbin/quotaon]) - AC_PATH_PROG([QUOTACHECK], [quotacheck], [/usr/sbin/quotacheck]) - --AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap]) -- - AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) - - AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod]) -diff --git src/core/main.c src/core/main.c -index 77cc2fb..d5d1ee2 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1261,6 +1261,16 @@ static int status_welcome(void) { - isempty(pretty_name) ? "Linux" : pretty_name); - } - -+static int write_container_id(void) { -+ const char *c; -+ -+ c = getenv("container"); -+ if (isempty(c)) -+ return 0; -+ -+ return write_string_file("/run/systemd/container", c); -+} -+ - int main(int argc, char *argv[]) { - Manager *m = NULL; - int r, retval = EXIT_FAILURE; -@@ -1544,6 +1554,8 @@ int main(int argc, char *argv[]) { - if (virtualization) - log_info("Detected virtualization '%s'.", virtualization); - -+ write_container_id(); -+ - log_info("Detected architecture '%s'.", architecture_to_string(uname_architecture())); - - if (in_initrd()) -diff --git src/shared/virt.c src/shared/virt.c -index 0db0514..1e227c5 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -217,8 +217,8 @@ int detect_container(const char **id) { - static thread_local int cached_found = -1; - static thread_local const char *cached_id = NULL; - -- _cleanup_free_ char *e = NULL; -- const char *_id = NULL; -+ _cleanup_free_ char *m = NULL; -+ const char *_id = NULL, *e = NULL; - int r; - - if (_likely_(cached_found >= 0)) { -@@ -229,17 +229,6 @@ int detect_container(const char **id) { - return cached_found; - } - -- /* Unfortunately many of these operations require root access -- * in one way or another */ -- -- r = running_in_chroot(); -- if (r < 0) -- return r; -- if (r > 0) { -- _id = "chroot"; -- goto finish; -- } -- - /* /proc/vz exists in container and outside of the container, - * /proc/bc only outside of the container. */ - if (access("/proc/vz", F_OK) >= 0 && -@@ -249,11 +238,32 @@ int detect_container(const char **id) { - goto finish; - } - -- r = getenv_for_pid(1, "container", &e); -- if (r < 0) -- return r; -- if (r == 0) -- goto finish; -+ if (getpid() == 1) { -+ /* If we are PID 1 we can just check our own -+ * environment variable */ -+ -+ e = getenv("container"); -+ if (isempty(e)) { -+ r = 0; -+ goto finish; -+ } -+ } else { -+ -+ /* Otherwise, PID 1 dropped this information into a -+ * file in /run. This is better than accessing -+ * /proc/1/environ, since we don't need CAP_SYS_PTRACE -+ * for that. */ -+ -+ r = read_one_line_file("/run/systemd/container", &m); -+ if (r == -ENOENT) { -+ r = 0; -+ goto finish; -+ } -+ if (r < 0) -+ return r; -+ -+ e = m; -+ } - - /* We only recognize a selected few here, since we want to - * enforce a redacted namespace */ -@@ -266,6 +276,8 @@ int detect_container(const char **id) { - else - _id = "other"; - -+ r = 1; -+ - finish: - cached_found = r; - --- -1.7.9.2 - diff --git a/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch b/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch deleted file mode 100644 index 30dc17d0..00000000 --- a/0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 15f392394e75ffb7f318920008fd1bbe4e82b488 Mon Sep 17 00:00:00 2001 -From: Scott Thrasher -Date: Wed, 26 Mar 2014 18:48:13 -0700 -Subject: [PATCH] Add hwdb entry for Samsung Series 7 Ultra - ---- - hwdb/60-keyboard.hwdb | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index bd8fd10..832c686 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -924,6 +924,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr* - KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up - KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle - -+# Series 7 Ultra -+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* -+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings -+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down -+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up -+ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer -+ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch -+ - # SQ1US - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* - KEYBOARD_KEY_d4=menu --- -1.7.9.2 - diff --git a/0002-Be-more-verbose-when-bind-or-listen-fails.patch b/0002-Be-more-verbose-when-bind-or-listen-fails.patch deleted file mode 100644 index 0a8e80e6..00000000 --- a/0002-Be-more-verbose-when-bind-or-listen-fails.patch +++ /dev/null @@ -1,92 +0,0 @@ -Based on 6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 3 Mar 2014 19:49:40 -0500 -Subject: [PATCH] Be more verbose when bind or listen fails - -Also be more verbose in devnode_acl_all(). ---- - src/core/manager.c | 2 +- - src/journal/journald-native.c | 2 +- - src/journal/journald-stream.c | 4 ++-- - src/journal/journald-syslog.c | 2 +- - src/login/logind-acl.c | 5 ++++- - src/shared/ask-password-api.c | 2 +- - 6 files changed, 10 insertions(+), 7 deletions(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-07-21 10:57:20.286367050 +0000 -@@ -571,7 +571,7 @@ static int manager_setup_notify(Manager - - r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); - return -errno; - } - ---- src/journal/journald-native.c -+++ src/journal/journald-native.c 2014-07-21 00:00:00.000000000 +0000 -@@ -405,7 +405,7 @@ int server_open_native_socket(Server*s) - - r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } - ---- src/journal/journald-stream.c -+++ src/journal/journald-stream.c 2014-07-21 00:00:00.000000000 +0000 -@@ -447,14 +447,14 @@ int server_open_stdout_socket(Server *s) - - r = bind(s->stdout_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } - - chmod(sa.un.sun_path, 0666); - - if (listen(s->stdout_fd, SOMAXCONN) < 0) { -- log_error("listen() failed: %m"); -+ log_error("listen(%s) failed: %m", sa.un.sun_path); - return -errno; - } - } else ---- src/journal/journald-syslog.c -+++ src/journal/journald-syslog.c 2014-07-21 00:00:00.000000000 +0000 -@@ -437,7 +437,7 @@ int server_open_syslog_socket(Server *s) - - r = bind(s->syslog_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } - ---- src/login/logind-acl.c -+++ src/login/logind-acl.c 2014-07-21 10:59:04.986235573 +0000 -@@ -277,7 +277,10 @@ int devnode_acl_all(struct udev *udev, - SET_FOREACH(n, nodes, i) { - int k; - -- log_debug("Fixing up ACLs at %s for seat %s", n, seat); -+ log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"→"UID_FMT"%s%s)", -+ n, seat, old_uid, new_uid, -+ del ? " del" : "", add ? " add" : ""); -+ - k = devnode_acl(n, flush, del, old_uid, add, new_uid); - if (k < 0) - r = k; ---- src/shared/ask-password-api.c -+++ src/shared/ask-password-api.c 2014-07-21 00:00:00.000000000 +0000 -@@ -275,7 +275,7 @@ static int create_socket(char **name) { - - if (r < 0) { - r = -errno; -- log_error("bind() failed: %m"); -+ log_error("bind(%s) failed: %m", sa.un.sun_path); - goto fail; - } - diff --git a/0002-analyze-avoid-a-null-dereference.patch b/0002-analyze-avoid-a-null-dereference.patch deleted file mode 100644 index b7662371..00000000 --- a/0002-analyze-avoid-a-null-dereference.patch +++ /dev/null @@ -1,30 +0,0 @@ -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/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch b/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch deleted file mode 100644 index c18fcb9e..00000000 --- a/0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 1f89214e6e990a0b552f6854f87f8514ca384956 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Fri, 21 Feb 2014 11:55:24 +0100 -Subject: [PATCH] analyze/run: use bus_open_transport_systemd instead of - bus_open_transport - -Both systemd-analyze and systemd-run only access org.freedesktop.systemd1 -on the bus. This patch allows using systemd-run --user and systemd-analyze ---user even if the user session's bus is not properly integrated with the -systemd user unit. - -https://bugs.freedesktop.org/show_bug.cgi?id=79252 and other reports... ---- - src/analyze/analyze.c | 2 +- - src/run/run.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/analyze/analyze.c src/analyze/analyze.c -index 4c5fcfe..0a4190c 100644 ---- src/analyze/analyze.c -+++ src/analyze/analyze.c -@@ -1335,7 +1335,7 @@ int main(int argc, char *argv[]) { - if (r <= 0) - goto finish; - -- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); -+ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); - if (r < 0) { - log_error("Failed to create bus connection: %s", strerror(-r)); - goto finish; -diff --git src/run/run.c src/run/run.c -index e4c695c..9d5527b 100644 ---- src/run/run.c -+++ src/run/run.c -@@ -593,7 +593,7 @@ int main(int argc, char* argv[]) { - arg_description = description; - } - -- r = bus_open_transport(arg_transport, arg_host, arg_user, &bus); -+ r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); - if (r < 0) { - log_error("Failed to create bus connection: %s", strerror(-r)); - goto finish; --- -1.7.9.2 - diff --git a/0002-architecture-Add-cris.patch b/0002-architecture-Add-cris.patch deleted file mode 100644 index a93d29d9..00000000 --- a/0002-architecture-Add-cris.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 86bafac9540ba9e111ccba2fdf4161fe3a67cd3b Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Tue, 4 Mar 2014 13:58:35 +0100 -Subject: [PATCH] architecture: Add cris - ---- - src/shared/architecture.c | 3 +++ - src/shared/architecture.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index fcdb3d5..9e0c3ef 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -114,6 +114,8 @@ Architecture uname_architecture(void) { - { "m68k", ARCHITECTURE_M68K }, - #elif defined(__tilegx__) - { "tilegx", ARCHITECTURE_TILEGX }, -+#elif defined(__cris__) -+ { "cris", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" - #endif -@@ -161,6 +163,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SH64] = "sh64", - [ARCHITECTURE_M68K] = "m68k", - [ARCHITECTURE_TILEGX] = "tilegx", -+ [ARCHITECTURE_CRIS] = "cris", - }; - - DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); -diff --git src/shared/architecture.h src/shared/architecture.h -index e589a91..20e848b 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -48,6 +48,7 @@ typedef enum Architecture { - ARCHITECTURE_SH64, - ARCHITECTURE_M68K, - ARCHITECTURE_TILEGX, -+ ARCHITECTURE_CRIS, - _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 - } Architecture; -@@ -110,6 +111,8 @@ Architecture uname_architecture(void); - # define native_architecture() ARCHITECTURE_M68K - #elif defined(__tilegx__) - # define native_architecture() ARCHITECTURE_TILEGX -+#elif defined(__cris__) -+# define native_architecture() ARCHITECTURE_CRIS - #else - #error "Please register your architecture here!" - #endif --- -1.7.9.2 - diff --git a/0002-backlight-do-nothing-if-max_brightness-is-0.patch b/0002-backlight-do-nothing-if-max_brightness-is-0.patch deleted file mode 100644 index 8ca31e28..00000000 --- a/0002-backlight-do-nothing-if-max_brightness-is-0.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 3cadce7d33e263ec7a6a83c00c11144930258b22 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Thu, 27 Mar 2014 23:41:59 +0100 -Subject: [PATCH] backlight: do nothing if max_brightness is 0 - -On virtually any newer Asus mainboard, the eeepc-wmi driver is loaded. -It exposes a backlight device despite the lack of any physical backlight -devices. This fake backlight device has max_brightness set to 0. Since -the introduction of the clamp_brightness function, systemd-backlight -tries to write '1' to brightness and fails. - -This patch changes systemd-backlight to exit gracefully when -max_brightness is 0 before performing any action. This affects -both the load and save actions. ---- - src/backlight/backlight.c | 44 ++++++++++++++++++++++++++++++-------------- - 1 file changed, 30 insertions(+), 14 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index abf8bcf..ce0385b 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -192,30 +192,37 @@ static bool validate_device(struct udev *udev, struct udev_device *device) { - return true; - } - --/* Some systems turn the backlight all the way off at the lowest levels. -- * clamp_brightness clamps the saved brightness to at least 1 or 5% of -- * max_brightness. This avoids preserving an unreadably dim screen, which -- * would otherwise force the user to disable state restoration. */ --static void clamp_brightness(struct udev_device *device, char **value) { -+static unsigned get_max_brightness(struct udev_device *device) { - int r; - const char *max_brightness_str; -- unsigned brightness, max_brightness, new_brightness; -+ unsigned max_brightness; - - max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); - if (!max_brightness_str) { -- log_warning("Failed to read max_brightness attribute; not checking saved brightness"); -- return; -+ log_warning("Failed to read max_brightness attribute"); -+ return 0; - } - -- r = safe_atou(*value, &brightness); -+ r = safe_atou(max_brightness_str, &max_brightness); - if (r < 0) { -- log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); -- return; -+ log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ return 0; - } - -- r = safe_atou(max_brightness_str, &max_brightness); -+ return max_brightness; -+} -+ -+/* Some systems turn the backlight all the way off at the lowest levels. -+ * clamp_brightness clamps the saved brightness to at least 1 or 5% of -+ * max_brightness. This avoids preserving an unreadably dim screen, which -+ * would otherwise force the user to disable state restoration. */ -+static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { -+ int r; -+ unsigned brightness, new_brightness; -+ -+ r = safe_atou(*value, &brightness); - if (r < 0) { -- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r)); - return; - } - -@@ -239,6 +246,7 @@ int main(int argc, char *argv[]) { - _cleanup_udev_device_unref_ struct udev_device *device = NULL; - _cleanup_free_ char *saved = NULL, *ss = NULL, *escaped_ss = NULL, *escaped_sysname = NULL, *escaped_path_id = NULL; - const char *sysname, *path_id; -+ unsigned max_brightness; - int r; - - if (argc != 3) { -@@ -294,6 +302,14 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -+ /* If max_brightness is 0, then there is no actual backlight -+ * device. This happens on desktops with Asus mainboards -+ * that load the eeepc-wmi module. -+ */ -+ max_brightness = get_max_brightness(device); -+ if (max_brightness == 0) -+ return EXIT_SUCCESS; -+ - escaped_ss = cescape(ss); - if (!escaped_ss) { - log_oom(); -@@ -348,7 +364,7 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- clamp_brightness(device, &value); -+ clamp_brightness(device, &value, max_brightness); - - r = udev_device_set_sysattr_value(device, "brightness", value); - if (r < 0) { --- -1.7.9.2 - diff --git a/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch b/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch deleted file mode 100644 index 8c1b12e2..00000000 --- a/0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1c92ff85b786c423f4436ec26007e79369c9ac05 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 26 Sep 2014 22:01:32 +0200 -Subject: [PATCH] bootchart: use 'n/a' if PRETTY_NAME is not found - -Spotted with coverity. If parsing both /etc/os-release and -/usr/lib/os-release fails then null would be passed on. The calls -to parse the two files are allowed to fail. A empty /etc may not -have had the /etc/os-release symlink restored yet and we just -try again in the loop. If for whatever reason that does not happen -then we now pass on 'n/a' instead of null. ---- - src/bootchart/bootchart.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c -index 366a5ab..813e38d 100644 ---- src/bootchart/bootchart.c -+++ src/bootchart/bootchart.c -@@ -471,7 +471,7 @@ int main(int argc, char *argv[]) { - exit (EXIT_FAILURE); - } - -- svg_do(build); -+ svg_do(strna(build)); - - fprintf(stderr, "systemd-bootchart wrote %s\n", output_file); - --- -1.7.9.2 - diff --git a/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch b/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch deleted file mode 100644 index 718f6862..00000000 --- a/0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 82923adfe5c4fa09cc91fd2a2e374c936cd4a186 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 13 Mar 2014 20:00:50 +0100 -Subject: [PATCH] bus: fix memory leak when kdbus is not enabled - ---- - src/libsystemd/sd-bus/sd-bus.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index ffa3369..ca7c428 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -1189,7 +1189,8 @@ _public_ int sd_bus_open_user(sd_bus **ret) { - #ifdef ENABLE_KDBUS - asprintf(&b->address, KERNEL_USER_BUS_FMT, (unsigned long) getuid()); - #else -- return -ECONNREFUSED; -+ r = -ECONNREFUSED; -+ goto fail; - #endif - } - --- -1.7.9.2 - diff --git a/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch b/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch deleted file mode 100644 index 3961c020..00000000 --- a/0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch +++ /dev/null @@ -1,59 +0,0 @@ -From b27adf354a83ad25f4a209c0a6f7989ecab7b4e2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 13:31:25 +0200 -Subject: [PATCH] bus: make use of sd_bus_try_close() in exit-on-idle services - ---- - src/libsystemd/sd-bus/bus-util.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c -index 6bd21cc..6441c5b 100644 ---- src/libsystemd/sd-bus/bus-util.c -+++ src/libsystemd/sd-bus/bus-util.c -@@ -43,7 +43,9 @@ static int name_owner_change_callback(sd_bus *bus, sd_bus_message *m, void *user - assert(m); - assert(e); - -+ sd_bus_close(bus); - sd_event_exit(e, 0); -+ - return 1; - } - -@@ -121,11 +123,30 @@ int bus_event_loop_with_idle( - return r; - - if (r == 0 && !exiting) { -- r = bus_async_unregister_and_exit(e, bus, name); -+ -+ r = sd_bus_try_close(bus); -+ if (r == -EBUSY) -+ continue; -+ -+ if (r == -ENOTSUP) { -+ /* Fallback for dbus1 connections: we -+ * unregister the name and wait for -+ * the response to come through for -+ * it */ -+ -+ r = bus_async_unregister_and_exit(e, bus, name); -+ if (r < 0) -+ return r; -+ -+ exiting = true; -+ continue; -+ } -+ - if (r < 0) - return r; - -- exiting = true; -+ sd_event_exit(e, 0); -+ break; - } - } - --- -1.7.9.2 - diff --git a/0002-bus-remove-unused-check.patch b/0002-bus-remove-unused-check.patch deleted file mode 100644 index 32c35276..00000000 --- a/0002-bus-remove-unused-check.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 04c553e322680b6fcdf5b271e84b0b4b0ad8d5f9 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 23 Sep 2014 21:34:21 +0200 -Subject: [PATCH] bus: remove unused check - -strerror_r does not return null here and even if it did we would have -problems already at the preceding strlen call. - -Found by coverity. Fixes: CID#1237770 ---- - src/libsystemd/sd-bus/bus-error.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c -index c2e41fb..abdfd73 100644 ---- src/libsystemd/sd-bus/bus-error.c -+++ src/libsystemd/sd-bus/bus-error.c -@@ -312,7 +312,7 @@ static void bus_error_strerror(sd_bus_error *e, int error) { - continue; - } - -- if (!x || errno) { -+ if (errno) { - free(m); - return; - } --- -1.7.9.2 - diff --git a/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch b/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch deleted file mode 100644 index ec455770..00000000 --- a/0002-core-make-sure-Environment-fields-passed-in-for-tran.patch +++ /dev/null @@ -1,27 +0,0 @@ -From cdd7b7dfd44649b204c43e907f03d4294de4f28a Mon Sep 17 00:00:00 2001 -From: Hristo Venev -Date: Mon, 23 Jun 2014 18:53:04 +0200 -Subject: [PATCH] core: make sure Environment fields passed in for transient - units are properly written to unit files - -https://bugs.freedesktop.org/show_bug.cgi?id=76744 ---- - src/core/dbus-execute.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/dbus-execute.c src/core/dbus-execute.c -index cb9a077..ecbadd7 100644 ---- src/core/dbus-execute.c -+++ src/core/dbus-execute.c -@@ -848,7 +848,7 @@ int bus_exec_context_set_transient_property( - strv_free(c->environment); - c->environment = e; - -- joined = strv_join(c->environment, " "); -+ joined = strv_join_quoted(c->environment); - if (!joined) - return -ENOMEM; - --- -1.7.9.2 - diff --git a/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch b/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch deleted file mode 100644 index 61888e5f..00000000 --- a/0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 375ae4aa4d2f89ae8afdd27e9f2b8336fcc2a046 Mon Sep 17 00:00:00 2001 -From: Uoti Urpala -Date: Mon, 23 Jun 2014 16:50:03 +0300 -Subject: [PATCH] core/transaction: fix cycle break attempts outside - transaction - -Patch fixes some incorrect-looking code in transaction.c. -It could fix cases where Debian users with bad package configurations -had systemd go into an infinite loop printing messages about breaking an -ordering cycle, though I have not reproduced that problem myself. - -transaction_verify_order_one() considers jobs/units outside current -transaction when checking whether ordering dependencies cause cycles. -It would also incorrectly try to break cycles at these jobs; this -cannot work, as the break action is to remove the job from the -transaction, which is a no-op if the job isn't part of the transaction -to begin with. The unit_matters_to_anchor() test also looks like it -would not work correctly for non-transaction jobs. Add a check to -verify that the unit is part of the transaction before considering a -job a candidate for deletion. - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752259 ---- - src/core/transaction.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/transaction.c src/core/transaction.c -index d23a45c..805d40a 100644 ---- src/core/transaction.c -+++ src/core/transaction.c -@@ -381,7 +381,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi - "Found dependency on %s/%s", - k->unit->id, job_type_to_string(k->type)); - -- if (!delete && -+ if (!delete && hashmap_get(tr->jobs, k->unit) && - !unit_matters_to_anchor(k->unit, k)) { - /* Ok, we can drop this one, so let's - * do so. */ --- -1.7.9.2 - diff --git a/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch b/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch deleted file mode 100644 index 3a136da5..00000000 --- a/0002-core-watchdog-bus-properties-cannot-be-both-writable.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 4c3f1641f13b7687a0dc234d3ae387b7c40494ff Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 19 Nov 2014 20:52:23 +0100 -Subject: [PATCH] core: watchdog bus properties cannot be both writable and - constant - ---- - src/core/dbus-manager.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c 2014-11-20 13:43:06.781518488 +0000 -@@ -1599,8 +1599,8 @@ const sd_bus_vtable bus_manager_vtable[] - SD_BUS_PROPERTY("UnitPath", "as", NULL, offsetof(Manager, lookup_paths.unit_path), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("DefaultStandardOutput", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("DefaultStandardError", "s", bus_property_get_exec_output, offsetof(Manager, default_std_output), SD_BUS_VTABLE_PROPERTY_CONST), -- SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), -- SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), SD_BUS_VTABLE_PROPERTY_CONST), -+ SD_BUS_WRITABLE_PROPERTY("RuntimeWatchdogUSec", "t", bus_property_get_usec, property_set_runtime_watchdog, offsetof(Manager, runtime_watchdog), 0), -+ SD_BUS_WRITABLE_PROPERTY("ShutdownWatchdogUSec", "t", bus_property_get_usec, bus_property_set_usec, offsetof(Manager, shutdown_watchdog), 0), - SD_BUS_PROPERTY("ControlGroup", "s", NULL, offsetof(Manager, cgroup_root), 0), - - SD_BUS_METHOD("GetUnit", "s", "o", method_get_unit, SD_BUS_VTABLE_UNPRIVILEGED), diff --git a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch deleted file mode 100644 index 67454ead..00000000 --- a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 17:11:39 +0100 -Subject: [PATCH] execute: free directory path if we fail to remove it because - we cannot allocate a thread - ---- - src/core/execute.c | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git src/core/execute.c src/core/execute.c -index 9de6e87..3312885 100644 ---- src/core/execute.c -+++ src/core/execute.c -@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { - } - - void exec_runtime_destroy(ExecRuntime *rt) { -+ int r; -+ - if (!rt) - return; - -@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { - - if (rt->tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); -+ free(rt->tmp_dir); -+ } -+ - rt->tmp_dir = NULL; - } - - if (rt->var_tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); -+ free(rt->var_tmp_dir); -+ } -+ - rt->var_tmp_dir = NULL; - } - --- -1.7.9.2 - diff --git a/0002-fsck-include-device-name-in-the-message-about-missin.patch b/0002-fsck-include-device-name-in-the-message-about-missin.patch deleted file mode 100644 index 7ec3506f..00000000 --- a/0002-fsck-include-device-name-in-the-message-about-missin.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 8d2a6145334257c8a9ceabc9dd52dff06cca818e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 26 May 2014 23:03:11 -0400 -Subject: [PATCH] fsck: include device name in the message about missing fsck - ---- - src/fsck/fsck.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- src/fsck/fsck.c -+++ src/fsck/fsck.c 2014-06-03 14:15:15.746235301 +0000 -@@ -284,10 +284,12 @@ int main(int argc, char *argv[]) { - r = access(checker, X_OK); - if (r < 0) { - if (errno == ENOENT) { -- log_info("%s doesn't exist, not checking file system.", checker); -+ log_info("%s doesn't exist, not checking file system on %s", -+ checker, device); - return EXIT_SUCCESS; - } else -- log_warning("%s cannot be used: %m", checker); -+ log_warning("%s cannot be used for %s: %m", -+ checker, device); - } - } - diff --git a/0002-hostnamed-add-a-new-chassis-type-for-watches.patch b/0002-hostnamed-add-a-new-chassis-type-for-watches.patch deleted file mode 100644 index a20c11c6..00000000 --- a/0002-hostnamed-add-a-new-chassis-type-for-watches.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c49e59c1831f20fe02276d7bc6ba7d23d24c4ab3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 9 Jul 2014 13:20:05 +0200 -Subject: [PATCH] hostnamed: add a new chassis type for watches - ---- - src/hostname/hostnamed.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/hostname/hostnamed.c src/hostname/hostnamed.c -index 514554d..eaae113 100644 ---- src/hostname/hostnamed.c -+++ src/hostname/hostnamed.c -@@ -144,7 +144,8 @@ static bool valid_chassis(const char *chassis) { - "laptop\0" - "server\0" - "tablet\0" -- "handset\0", -+ "handset\0" -+ "watch\0", - chassis); - } - --- -1.7.9.2 - diff --git a/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch b/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch deleted file mode 100644 index 8304b2d4..00000000 --- a/0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From fc1ae82cae69d8dbbd9e7a31938810a486fac782 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 22 Oct 2014 14:09:21 +0200 -Subject: [PATCH] hwdb: Add mapping for special keys on compaq ku 0133 - keyboards - -The compaq ku 0133 keyboard has 8 special keys at the top: -http://lackof.org/taggart/hacking/keyboard/cpqwireless.jpg - -3 of these use standard HID usage codes from the consumer page, the 5 -others use part of the reserved 0x07 - 0x1f range. - -This commit adds mapping for this keyboard for these reserved codes, making -the other 5 keys work. - -Cc: Hans de Goede -Signed-off-by: Hans de Goede ---- - hwdb/60-keyboard.hwdb | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 59f467b..06caba9 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -181,6 +181,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:pvr* - KEYBOARD_KEY_9e=email - KEYBOARD_KEY_9f=homepage - -+keyboard:usb:v049Fp0051d*dc*dsc*dp*ic*isc*ip*in01* -+ KEYBOARD_KEY_0c0011=presentation -+ KEYBOARD_KEY_0c0012=addressbook -+ KEYBOARD_KEY_0c0013=info -+ KEYBOARD_KEY_0c0014=prog1 -+ KEYBOARD_KEY_0c0015=messenger -+ - ########################################################### - # Dell - ########################################################### --- -1.7.9.2 - diff --git a/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index a386c649..00000000 --- a/0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f401e2b24ba17452f9655993a6dedefdffe06d23 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Tue, 11 Mar 2014 09:33:31 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 0335a71..7d86f10 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -911,3 +911,15 @@ bluetooth:v012C* - - bluetooth:v012D* - ID_VENDOR_FROM_DATABASE=Sony Corporation -+ -+bluetooth:v012E* -+ ID_VENDOR_FROM_DATABASE=ASSA ABLOY -+ -+bluetooth:v012F* -+ ID_VENDOR_FROM_DATABASE=Clarion Co., Ltd. -+ -+bluetooth:v0130* -+ ID_VENDOR_FROM_DATABASE=Warehouse Innovations -+ -+bluetooth:v0131* -+ ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation --- -1.7.9.2 - diff --git a/0002-hwdb-update.patch b/0002-hwdb-update.patch deleted file mode 100644 index 1d3abc28..00000000 --- a/0002-hwdb-update.patch +++ /dev/null @@ -1,2058 +0,0 @@ -From dbe633cc027e31a0d4fb488a3c68b7762ef0e7b3 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 13 Apr 2014 23:46:27 -0700 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 275 +++++++++++++++++++++- - hwdb/20-pci-vendor-model.hwdb | 522 ++++++++++++++++++++++++++++++++++++++--- - 2 files changed, 751 insertions(+), 46 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 209b89e..17794ed 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -6929,7 +6929,7 @@ OUI:0050C2912* - ID_OUI_FROM_DATABASE=ASSET InterTech, Inc. - - OUI:0050C2913* -- ID_OUI_FROM_DATABASE=Selex Sensors & Airborne Systems -+ ID_OUI_FROM_DATABASE=Selex Ex Ltd - - OUI:0050C2914* - ID_OUI_FROM_DATABASE=IO-Connect -@@ -15944,7 +15944,7 @@ OUI:000300* - ID_OUI_FROM_DATABASE=Barracuda Networks, Inc. - - OUI:000301* -- ID_OUI_FROM_DATABASE=Avantas Networks Corporation -+ ID_OUI_FROM_DATABASE=EXFO - - OUI:000302* - ID_OUI_FROM_DATABASE=Charles Industries, Ltd. -@@ -24575,7 +24575,7 @@ OUI:000E65* - ID_OUI_FROM_DATABASE=TransCore - - OUI:000E66* -- ID_OUI_FROM_DATABASE=Hitachi Advanced Digital, Inc. -+ ID_OUI_FROM_DATABASE=Hitachi Industry & Control Solutions, Ltd. - - OUI:000E67* - ID_OUI_FROM_DATABASE=Eltis Microelectronics Ltd. -@@ -24947,7 +24947,7 @@ OUI:000EE1* - ID_OUI_FROM_DATABASE=ExtremeSpeed Inc. - - OUI:000EE2* -- ID_OUI_FROM_DATABASE=Custom Engineering S.p.A. -+ ID_OUI_FROM_DATABASE=Custom Engineering - - OUI:000EE3* - ID_OUI_FROM_DATABASE=Chiyu Technology Co.,Ltd -@@ -51760,6 +51760,9 @@ OUI:045A95* - OUI:045C06* - ID_OUI_FROM_DATABASE=Zmodo Technology Corporation - -+OUI:045C8E* -+ ID_OUI_FROM_DATABASE=gosund GROUP CO.,LTD -+ - OUI:045D56* - ID_OUI_FROM_DATABASE=camtron industrial inc. - -@@ -51865,6 +51868,9 @@ OUI:04C5A4* - OUI:04C880* - ID_OUI_FROM_DATABASE=Samtec Inc - -+OUI:04C991* -+ ID_OUI_FROM_DATABASE=Phistek INC. -+ - OUI:04CB1D* - ID_OUI_FROM_DATABASE=Traka plc - -@@ -52633,6 +52639,9 @@ OUI:08CA45* - OUI:08CC68* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:08CD9B* -+ ID_OUI_FROM_DATABASE=samtec automotive electronics & software GmbH -+ - OUI:08D09F* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -52684,6 +52693,9 @@ OUI:08F2F4* - OUI:08F6F8* - ID_OUI_FROM_DATABASE=GET Engineering - -+OUI:08F728* -+ ID_OUI_FROM_DATABASE=GLOBO Multimedia Sp. z o.o. Sp.k. -+ - OUI:08FAE0* - ID_OUI_FROM_DATABASE=Fohhn Audio AG - -@@ -52750,6 +52762,9 @@ OUI:0C3021* - OUI:0C37DC* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:0C383E* -+ ID_OUI_FROM_DATABASE=Fanvil Technology Co., Ltd. -+ - OUI:0C3956* - ID_OUI_FROM_DATABASE=Observator instruments - -@@ -53104,6 +53119,9 @@ OUI:102D96* - OUI:102EAF* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:103047* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:103378* - ID_OUI_FROM_DATABASE=FLECTRON Co., LTD - -@@ -53215,6 +53233,9 @@ OUI:1088CE* - OUI:108CCF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:109266* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:1093E9* - ID_OUI_FROM_DATABASE=Apple - -@@ -53260,6 +53281,9 @@ OUI:10BF48* - OUI:10C2BA* - ID_OUI_FROM_DATABASE=UTT Co., Ltd. - -+OUI:10C37B* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:10C586* - ID_OUI_FROM_DATABASE=BIO SOUND LAB CO., LTD. - -@@ -53365,6 +53389,9 @@ OUI:141BBD* - OUI:141BF0* - ID_OUI_FROM_DATABASE=Intellimedia Systems Ltd - -+OUI:141FBA* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:1423D7* - ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD. - -@@ -53518,6 +53545,9 @@ OUI:14B968* - OUI:14C089* - ID_OUI_FROM_DATABASE=DUNE HD LTD - -+OUI:14C126* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:14C21D* - ID_OUI_FROM_DATABASE=Sabtech Industries - -@@ -53572,6 +53602,9 @@ OUI:14F28E* - OUI:14F42A* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:14F65A* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:14FEAF* - ID_OUI_FROM_DATABASE=SAGITTAR LIMITED - -@@ -53659,6 +53692,9 @@ OUI:182B05* - OUI:182C91* - ID_OUI_FROM_DATABASE=Concept Development, Inc. - -+OUI:183009* -+ ID_OUI_FROM_DATABASE=Woojin Industrial Systems Co., Ltd. -+ - OUI:1832A2* - ID_OUI_FROM_DATABASE=LAON TECHNOLOGY CO., LTD. - -@@ -53698,6 +53734,9 @@ OUI:184617* - OUI:1848D8* - ID_OUI_FROM_DATABASE=Fastback Networks - -+OUI:184A6F* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd -+ - OUI:184E94* - ID_OUI_FROM_DATABASE=MESSOA TECHNOLOGIES INC. - -@@ -53758,6 +53797,9 @@ OUI:1880F5* - OUI:188331* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:1883BF* -+ ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation -+ - OUI:188410* - ID_OUI_FROM_DATABASE=CoreTrust Inc. - -@@ -54322,6 +54364,9 @@ OUI:206A8A* - OUI:206AFF* - ID_OUI_FROM_DATABASE=Atlas Elektronik UK Limited - -+OUI:206E9C* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:206FEC* - ID_OUI_FROM_DATABASE=Braemac CA LLC - -@@ -54838,6 +54883,9 @@ OUI:284C53* - OUI:284D92* - ID_OUI_FROM_DATABASE=Luminator - -+OUI:284ED7* -+ ID_OUI_FROM_DATABASE=OutSmart Power Systems, Inc. -+ - OUI:284FCE* - ID_OUI_FROM_DATABASE=Liaoning Wontel Science and Technology Development Co.,Ltd. - -@@ -54976,6 +55024,9 @@ OUI:28C68E* - OUI:28C718* - ID_OUI_FROM_DATABASE=Altierre - -+OUI:28C7CE* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:28C825* - ID_OUI_FROM_DATABASE=DellKing Industrial Co., Ltd - -@@ -55069,6 +55120,9 @@ OUI:28FBD3* - OUI:28FC51* - ID_OUI_FROM_DATABASE=The Electric Controller and Manufacturing Co., LLC - -+OUI:28FCF6* -+ ID_OUI_FROM_DATABASE=Shenzhen Xin KingBrand enterprises Co.,Ltd -+ - OUI:2C002C* - ID_OUI_FROM_DATABASE=UNOWHY - -@@ -55291,6 +55345,9 @@ OUI:2CB693* - OUI:2CB69D* - ID_OUI_FROM_DATABASE=RED Digital Cinema - -+OUI:2CBE08* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:2CBE97* - ID_OUI_FROM_DATABASE=Ingenieurbuero Bickele und Buehler GmbH - -@@ -55354,6 +55411,9 @@ OUI:30055C* - OUI:300B9C* - ID_OUI_FROM_DATABASE=Delta Mobile Systems, Inc. - -+OUI:300D2A* -+ ID_OUI_FROM_DATABASE=Zhejiang Wellcom Technology Co.,Ltd. -+ - OUI:300ED5* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -@@ -55450,6 +55510,9 @@ OUI:3055ED* - OUI:3057AC* - ID_OUI_FROM_DATABASE=IRLAB LTD. - -+OUI:30595B* -+ ID_OUI_FROM_DATABASE=streamnow AG -+ - OUI:3059B7* - ID_OUI_FROM_DATABASE=Microsoft - -@@ -55543,6 +55606,9 @@ OUI:30B3A2* - OUI:30B5C2* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:30B5F1* -+ ID_OUI_FROM_DATABASE=Aitexin Technology Co., Ltd -+ - OUI:30C750* - ID_OUI_FROM_DATABASE=MIC Technology Group - -@@ -55606,6 +55672,9 @@ OUI:30F9ED* - OUI:30FD11* - ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. - -+OUI:340286* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:3407FB* - ID_OUI_FROM_DATABASE=Ericsson AB - -@@ -55654,6 +55723,9 @@ OUI:342F6E* - OUI:343111* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:3431C4* -+ ID_OUI_FROM_DATABASE=AVM GmbH -+ - OUI:3440B5* - ID_OUI_FROM_DATABASE=IBM - -@@ -55840,6 +55912,9 @@ OUI:34C059* - OUI:34C3AC* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:34C5D0* -+ ID_OUI_FROM_DATABASE=Hagleitner Hygiene International GmbH -+ - OUI:34C69A* - ID_OUI_FROM_DATABASE=Enecsys Ltd - -@@ -55963,6 +56038,9 @@ OUI:3826CD* - OUI:3828EA* - ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD - -+OUI:382DD1* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:3831AC* - ID_OUI_FROM_DATABASE=WEG - -@@ -56371,6 +56449,9 @@ OUI:3C99F7* - OUI:3C9F81* - ID_OUI_FROM_DATABASE=Shenzhen CATIC Bit Communications Technology Co.,Ltd - -+OUI:3CA10D* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:3CA315* - ID_OUI_FROM_DATABASE=Bless Information & Communications Co., Ltd - -@@ -56380,6 +56461,9 @@ OUI:3CA72B* - OUI:3CA9F4* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:3CAA3F* -+ ID_OUI_FROM_DATABASE=iKey, Ltd. -+ - OUI:3CAB8E* - ID_OUI_FROM_DATABASE=Apple - -@@ -56413,6 +56497,9 @@ OUI:3CC99E* - OUI:3CCA87* - ID_OUI_FROM_DATABASE=Iders Incorporated - -+OUI:3CCD5A* -+ ID_OUI_FROM_DATABASE=Technische Alternative GmbH -+ - OUI:3CCD93* - ID_OUI_FROM_DATABASE=LG ELECTRONICS INC - -@@ -57109,6 +57196,9 @@ OUI:481A84* - OUI:481BD2* - ID_OUI_FROM_DATABASE=Intron Scientific co., ltd. - -+OUI:4826E8* -+ ID_OUI_FROM_DATABASE=Tek-Air Systems, Inc. -+ - OUI:48282F* - ID_OUI_FROM_DATABASE=ZTE Corporation - -@@ -57260,7 +57350,7 @@ OUI:48D7FF* - ID_OUI_FROM_DATABASE=BLANKOM Antennentechnik GmbH - - OUI:48D855* -- ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY -+ ID_OUI_FROM_DATABASE=Telvent - - OUI:48D8FE* - ID_OUI_FROM_DATABASE=ClarIDy Solutions, Inc. -@@ -57748,6 +57838,9 @@ OUI:507E5D* - OUI:508569* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD - -+OUI:508789* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:5087B8* - ID_OUI_FROM_DATABASE=Nuvyyo Inc - -@@ -57880,6 +57973,9 @@ OUI:50FC30* - OUI:50FC9F* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:50FEF2* -+ ID_OUI_FROM_DATABASE=Sify Technologies Ltd -+ - OUI:5403F5* - ID_OUI_FROM_DATABASE=EBN Technology Corp. - -@@ -58072,6 +58168,9 @@ OUI:54AE27* - OUI:54B620* - ID_OUI_FROM_DATABASE=SUHDOL E&C Co.Ltd. - -+OUI:54B753* -+ ID_OUI_FROM_DATABASE=Hunan Fenghui Yinjia Science And Technology Co.,Ltd -+ - OUI:54BEF7* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -@@ -58132,6 +58231,9 @@ OUI:54F5B6* - OUI:54F666* - ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG - -+OUI:54FA3E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD -+ - OUI:54FB58* - ID_OUI_FROM_DATABASE=WISEWARE, Lda - -@@ -58462,6 +58564,9 @@ OUI:5C260A* - OUI:5C2AEF* - ID_OUI_FROM_DATABASE=Open Access Pty Ltd - -+OUI:5C2E59* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:5C313E* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -58519,6 +58624,9 @@ OUI:5C57C8* - OUI:5C5948* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C5BC2* -+ ID_OUI_FROM_DATABASE=YIK Corporation -+ - OUI:5C5EAB* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -58558,6 +58666,9 @@ OUI:5C8778* - OUI:5C89D4* - ID_OUI_FROM_DATABASE=Beijing Banner Electric Co.,Ltd - -+OUI:5C8D4E* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:5C95AE* - ID_OUI_FROM_DATABASE=Apple - -@@ -58819,6 +58930,9 @@ OUI:607688* - OUI:60812B* - ID_OUI_FROM_DATABASE=Custom Control Concepts - -+OUI:6081F9* -+ ID_OUI_FROM_DATABASE=Helium Systems, Inc -+ - OUI:6083B2* - ID_OUI_FROM_DATABASE=GkWare e.K. - -@@ -58867,6 +58981,9 @@ OUI:60A10A* - OUI:60A44C* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -+OUI:60A8FE* -+ ID_OUI_FROM_DATABASE=Nokia Solutions and Networks -+ - OUI:60A9B0* - ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc - -@@ -58918,6 +59035,9 @@ OUI:60C980* - OUI:60CBFB* - ID_OUI_FROM_DATABASE=AirScape Inc. - -+OUI:60CDA9* -+ ID_OUI_FROM_DATABASE=Abloomy -+ - OUI:60CDC5* - ID_OUI_FROM_DATABASE=Taiwan Carol Electronics., Ltd - -@@ -59092,6 +59212,9 @@ OUI:644D70* - OUI:644F74* - ID_OUI_FROM_DATABASE=LENUS Co., Ltd. - -+OUI:644FB0* -+ ID_OUI_FROM_DATABASE=Hyunjin.com -+ - OUI:64517E* - ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. - -@@ -59146,6 +59269,9 @@ OUI:64680C* - OUI:6469BC* - ID_OUI_FROM_DATABASE=Hytera Communications Co .,ltd - -+OUI:646CB2* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:646E6C* - ID_OUI_FROM_DATABASE=Radio Datacom LLC - -@@ -59305,6 +59431,9 @@ OUI:64D814* - OUI:64D912* - ID_OUI_FROM_DATABASE=Solidica, Inc. - -+OUI:64D954* -+ ID_OUI_FROM_DATABASE=TAICANG AND W ELECTRONICS CO LTD -+ - OUI:64D989* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -59368,6 +59497,9 @@ OUI:64F987* - OUI:64FC8C* - ID_OUI_FROM_DATABASE=Zonar Systems - -+OUI:680571* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:6805CA* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -59701,6 +59833,9 @@ OUI:6C2E33* - OUI:6C2E85* - ID_OUI_FROM_DATABASE=SAGEMCOM - -+OUI:6C2F2C* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:6C32DE* - ID_OUI_FROM_DATABASE=Indieon Technologies Pvt. Ltd. - -@@ -59860,6 +59995,9 @@ OUI:6CADF8* - OUI:6CAE8B* - ID_OUI_FROM_DATABASE=IBM Corporation - -+OUI:6CB0CE* -+ ID_OUI_FROM_DATABASE=NETGEAR -+ - OUI:6CB311* - ID_OUI_FROM_DATABASE=Shenzhen Lianrui Electronics Co.,Ltd - -@@ -59875,6 +60013,9 @@ OUI:6CBEE9* - OUI:6CC1D2* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:6CC217* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:6CC26B* - ID_OUI_FROM_DATABASE=Apple - -@@ -59929,6 +60070,9 @@ OUI:6CF97C* - OUI:6CFA58* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:6CFA89* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:6CFAA7* - ID_OUI_FROM_DATABASE=AMPAK Technology Inc. - -@@ -60097,6 +60241,9 @@ OUI:7071B3* - OUI:7071BC* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -+OUI:70720D* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:70723C* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -60502,6 +60649,9 @@ OUI:74D850* - OUI:74DA38* - ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd. - -+OUI:74DBD1* -+ ID_OUI_FROM_DATABASE=Ebay Inc -+ - OUI:74DE2B* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -60733,6 +60883,9 @@ OUI:78923E* - OUI:78929C* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:789684* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:7898FD* - ID_OUI_FROM_DATABASE=Q9 Networks Inc. - -@@ -60922,6 +61075,9 @@ OUI:78F7BE* - OUI:78F7D0* - ID_OUI_FROM_DATABASE=Silverbrook Research - -+OUI:78FD94* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:78FE3D* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -61060,6 +61216,9 @@ OUI:7C69F6* - OUI:7C6AB3* - ID_OUI_FROM_DATABASE=IBC TECHNOLOGIES INC. - -+OUI:7C6AC3* -+ ID_OUI_FROM_DATABASE=GatesAir, Inc -+ - OUI:7C6ADB* - ID_OUI_FROM_DATABASE=SafeTone Technology Co.,Ltd - -@@ -61087,6 +61246,9 @@ OUI:7C6F06* - OUI:7C6FF8* - ID_OUI_FROM_DATABASE=ShenZhen ACTO Digital Video Technology Co.,Ltd. - -+OUI:7C70BC* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:7C72E4* - ID_OUI_FROM_DATABASE=Unikey Technologies - -@@ -61174,6 +61336,9 @@ OUI:7CBFB1* - OUI:7CC3A1* - ID_OUI_FROM_DATABASE=Apple - -+OUI:7CC4EF* -+ ID_OUI_FROM_DATABASE=Devialet -+ - OUI:7CC537* - ID_OUI_FROM_DATABASE=Apple - -@@ -61231,6 +61396,9 @@ OUI:7CE044* - OUI:7CE1FF* - ID_OUI_FROM_DATABASE=Computer Performance, Inc. DBA Digital Loggers, Inc. - -+OUI:7CE524* -+ ID_OUI_FROM_DATABASE=Quirky, Inc. -+ - OUI:7CE56B* - ID_OUI_FROM_DATABASE=ESEN Optoelectronics Technology Co.,Ltd. - -@@ -61477,6 +61645,9 @@ OUI:80A1D7* - OUI:80AAA4* - ID_OUI_FROM_DATABASE=USAG - -+OUI:80AD67* -+ ID_OUI_FROM_DATABASE=Kasda Digital Technology Co.,Ltd -+ - OUI:80B219* - ID_OUI_FROM_DATABASE=ELEKTRON TECHNOLOGY UK LIMITED - -@@ -61564,6 +61735,9 @@ OUI:80FFA8* - OUI:8400D2* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -+OUI:8401A7* -+ ID_OUI_FROM_DATABASE=Greyware Automation Products, Inc -+ - OUI:840B2D* - ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS CO., LTD - -@@ -61576,6 +61750,9 @@ OUI:841715* - OUI:841766* - ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd - -+OUI:84183A* -+ ID_OUI_FROM_DATABASE=Ruckus Wireless -+ - OUI:841888* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -61723,6 +61900,9 @@ OUI:848433* - OUI:848506* - ID_OUI_FROM_DATABASE=Apple - -+OUI:84850A* -+ ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH -+ - OUI:848D84* - ID_OUI_FROM_DATABASE=Rajant Corporation - -@@ -61885,6 +62065,9 @@ OUI:8823FE* - OUI:88252C* - ID_OUI_FROM_DATABASE=Arcadyan Technology Corporation - -+OUI:882950* -+ ID_OUI_FROM_DATABASE=Dalian Netmoon Tech Develop Co.,Ltd -+ - OUI:882E5A* - ID_OUI_FROM_DATABASE=storONE - -@@ -61948,6 +62131,9 @@ OUI:885C47* - OUI:88615A* - ID_OUI_FROM_DATABASE=Siano Mobile Silicon Ltd. - -+OUI:8863DF* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:88685C* - ID_OUI_FROM_DATABASE=Shenzhen ChuangDao & Perpetual Eternal Technology Co.,Ltd - -@@ -62098,6 +62284,9 @@ OUI:88E917* - OUI:88ED1C* - ID_OUI_FROM_DATABASE=Cudo Communication Co., Ltd. - -+OUI:88F031* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:88F077* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -62326,6 +62515,9 @@ OUI:8CB864* - OUI:8CBEBE* - ID_OUI_FROM_DATABASE=Xiaomi Technology Co.,Ltd - -+OUI:8CBF9D* -+ ID_OUI_FROM_DATABASE=Shanghai Xinyou Information Technology Ltd. Co. -+ - OUI:8CC121* - ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company - -@@ -62662,6 +62854,9 @@ OUI:90B97D* - OUI:90C115* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -+OUI:90C792* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:90CC24* - ID_OUI_FROM_DATABASE=Synaptics, Inc - -@@ -63259,6 +63454,9 @@ OUI:98EC65* - OUI:98F0AB* - ID_OUI_FROM_DATABASE=Apple - -+OUI:98F170* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:98F537* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -63496,6 +63694,9 @@ OUI:9CA577* - OUI:9CA9E4* - ID_OUI_FROM_DATABASE=zte corporation - -+OUI:9CAD97* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:9CADEF* - ID_OUI_FROM_DATABASE=Obihai Technology, Inc. - -@@ -64456,6 +64657,9 @@ OUI:A8E018* - OUI:A8E3EE* - ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. - -+OUI:A8E539* -+ ID_OUI_FROM_DATABASE=Moimstone Co.,Ltd -+ - OUI:A8EF26* - ID_OUI_FROM_DATABASE=Tritonwave - -@@ -64702,6 +64906,9 @@ OUI:ACA016* - OUI:ACA22C* - ID_OUI_FROM_DATABASE=Baycity Technologies Ltd - -+OUI:ACA31E* -+ ID_OUI_FROM_DATABASE=Aruba Networks -+ - OUI:ACA430* - ID_OUI_FROM_DATABASE=Peerless AV - -@@ -64837,6 +65044,12 @@ OUI:B000B4* - OUI:B00594* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -+OUI:B009D3* -+ ID_OUI_FROM_DATABASE=Avizia -+ -+OUI:B01041* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:B01203* - ID_OUI_FROM_DATABASE=Dynamics Hong Kong Limited - -@@ -64951,6 +65164,9 @@ OUI:B0808C* - OUI:B081D8* - ID_OUI_FROM_DATABASE=I-sys Corp - -+OUI:B083FE* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:B0869E* - ID_OUI_FROM_DATABASE=Chloride S.r.L - -@@ -65122,6 +65338,9 @@ OUI:B407F9* - OUI:B40832* - ID_OUI_FROM_DATABASE=TC Communications - -+OUI:B40B44* -+ ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. -+ - OUI:B40B7A* - ID_OUI_FROM_DATABASE=Brusa Elektronik AG - -@@ -65200,6 +65419,9 @@ OUI:B4417A* - OUI:B4430D* - ID_OUI_FROM_DATABASE=Broadlink Pty Ltd - -+OUI:B4475E* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:B44CC2* - ID_OUI_FROM_DATABASE=NR ELECTRIC CO., LTD - -@@ -65608,6 +65830,9 @@ OUI:B8A8AF* - OUI:B8AC6F* - ID_OUI_FROM_DATABASE=Dell Inc - -+OUI:B8AD3E* -+ ID_OUI_FROM_DATABASE=BLUECOM -+ - OUI:B8AE6E* - ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. - -@@ -65842,6 +66067,9 @@ OUI:BC4B79* - OUI:BC4E3C* - ID_OUI_FROM_DATABASE=CORE STAFF CO., LTD. - -+OUI:BC4E5D* -+ ID_OUI_FROM_DATABASE=ZhongMiao Technology Co., Ltd. -+ - OUI:BC51FE* - ID_OUI_FROM_DATABASE=Swann Communications Pty Ltd - -@@ -65974,6 +66202,9 @@ OUI:BCC6DB* - OUI:BCC810* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:BCCAB5* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:BCCD45* - ID_OUI_FROM_DATABASE=VOISMART - -@@ -66748,6 +66979,9 @@ OUI:C88B47* - OUI:C8903E* - ID_OUI_FROM_DATABASE=Pakton Technologies - -+OUI:C891F9* -+ ID_OUI_FROM_DATABASE=SAGEMCOM -+ - OUI:C89346* - ID_OUI_FROM_DATABASE=MXCHIP Company Limited - -@@ -67000,6 +67234,9 @@ OUI:CC3A61* - OUI:CC3C3F* - ID_OUI_FROM_DATABASE=SA.S.S. Datentechnik AG - -+OUI:CC3D82* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:CC3E5F* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -67303,6 +67540,9 @@ OUI:D03761* - OUI:D03972* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:D039B3* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:D046DC* - ID_OUI_FROM_DATABASE=Southwest Research Institute - -@@ -67735,6 +67975,9 @@ OUI:D48FAA* - OUI:D491AF* - ID_OUI_FROM_DATABASE=Electroacustica General Iberica, S.A. - -+OUI:D49398* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:D493A0* - ID_OUI_FROM_DATABASE=Fidelix Oy - -@@ -68057,7 +68300,7 @@ OUI:D89695* - ID_OUI_FROM_DATABASE=Apple - - OUI:D8973B* -- ID_OUI_FROM_DATABASE=Emerson Network Power Embedded Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:D89760* - ID_OUI_FROM_DATABASE=C2 Development, Inc. -@@ -68170,6 +68413,9 @@ OUI:D8DF0D* - OUI:D8E3AE* - ID_OUI_FROM_DATABASE=CIRTEC MEDICAL SYSTEMS - -+OUI:D8E56D* -+ ID_OUI_FROM_DATABASE=TCT Mobile Limited -+ - OUI:D8E72B* - ID_OUI_FROM_DATABASE=OnPATH Technologies - -@@ -69319,6 +69565,9 @@ OUI:E8F928* - OUI:E8FC60* - ID_OUI_FROM_DATABASE=ELCOM Innovations Private Limited - -+OUI:E8FCAF* -+ ID_OUI_FROM_DATABASE=NETGEAR INC., -+ - OUI:EC0ED6* - ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS - -@@ -69442,6 +69691,9 @@ OUI:EC888F* - OUI:EC89F5* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:EC8A4C* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:EC8EAD* - ID_OUI_FROM_DATABASE=DLX - -@@ -70099,6 +70351,9 @@ OUI:F4CE46* - OUI:F4CFE2* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:F4D261* -+ ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd -+ - OUI:F4D9FB* - ID_OUI_FROM_DATABASE=Samsung Electronics CO., LTD - -@@ -70111,6 +70366,9 @@ OUI:F4DCDA* - OUI:F4DCF9* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:F4DD9E* -+ ID_OUI_FROM_DATABASE=GoPro -+ - OUI:F4E142* - ID_OUI_FROM_DATABASE=Delta Elektronika BV - -@@ -70318,6 +70576,9 @@ OUI:F87B8C* - OUI:F8811A* - ID_OUI_FROM_DATABASE=OVERKIZ - -+OUI:F884F2* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:F88C1C* - ID_OUI_FROM_DATABASE=KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING - -@@ -70586,7 +70847,7 @@ OUI:FC3FAB* - ID_OUI_FROM_DATABASE=Henan Lanxin Technology Co., Ltd - - OUI:FC4463* -- ID_OUI_FROM_DATABASE=Universal Audio -+ ID_OUI_FROM_DATABASE=Universal Audio, Inc - - OUI:FC4499* - ID_OUI_FROM_DATABASE=Swarco LEA d.o.o. -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 371a685..d54cb2a 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -497,6 +497,9 @@ pci:v00000E11d0000F130* - pci:v00000E11d0000F150* - ID_MODEL_FROM_DATABASE=NetFlex-3/P ThunderLAN 2.3 - -+pci:v00000E55* -+ ID_VENDOR_FROM_DATABASE=HaSoTec GmbH -+ - pci:v00000EAC* - ID_VENDOR_FROM_DATABASE=SHF Communication Technologies AG - -@@ -1169,6 +1172,12 @@ pci:v00001000d00000073sv00001137sd000000B0* - pci:v00001000d00000073sv00001137sd000000B1* - ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i - -+pci:v00001000d00000073sv00001137sd000000C2* -+ ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide -+ -+pci:v00001000d00000073sv00001137sd000000C3* -+ ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide -+ - pci:v00001000d00000073sv000015D9sd00000400* - ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR - -@@ -1665,25 +1674,25 @@ pci:v00001002d00001307* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d00001309* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d0000130A* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] - - pci:v00001002d0000130B* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] - - pci:v00001002d0000130C* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d0000130D* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] - - pci:v00001002d0000130E* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] - - pci:v00001002d0000130F* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d00001310* - ID_MODEL_FROM_DATABASE=Kaveri -@@ -1695,7 +1704,7 @@ pci:v00001002d00001312* - ID_MODEL_FROM_DATABASE=Kaveri - - pci:v00001002d00001313* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 200 Series] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d00001314* - ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio -@@ -1704,22 +1713,25 @@ pci:v00001002d00001314sv0000174Bsd00001001* - ID_MODEL_FROM_DATABASE=PURE Fusion Mini - - pci:v00001002d00001315* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] - - pci:v00001002d00001316* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 200 Series] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] - - pci:v00001002d00001317* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d00001318* -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] -+ - pci:v00001002d0000131B* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R4 Graphics] - - pci:v00001002d0000131C* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - - pci:v00001002d0000131D* -- ID_MODEL_FROM_DATABASE=Kaveri -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] - - pci:v00001002d00001714* - ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] -@@ -4275,7 +4287,7 @@ pci:v00001002d00006641* - ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] - - pci:v00001002d00006649* -- ID_MODEL_FROM_DATABASE=Bonaire -+ ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] - - pci:v00001002d00006650* - ID_MODEL_FROM_DATABASE=Bonaire -@@ -4326,13 +4338,13 @@ pci:v00001002d00006663sv00001025sd00000846* - ID_MODEL_FROM_DATABASE=Radeon HD 8570A - - pci:v00001002d00006664* -- ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M250] -+ ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] - - pci:v00001002d00006665* - ID_MODEL_FROM_DATABASE=Jet PRO [Radeon R5 M230] - - pci:v00001002d00006667* -- ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M240] -+ ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] - - pci:v00001002d0000666F* - ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] -@@ -5808,7 +5820,7 @@ pci:v00001002d00006792* - ID_MODEL_FROM_DATABASE=Tahiti - - pci:v00001002d00006798* -- ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/R9 280X] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] - - pci:v00001002d00006798sv00001002sd00003000* - ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -@@ -5934,7 +5946,7 @@ pci:v00001002d000067B1* - ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] - - pci:v00001002d000067B9* -- ID_MODEL_FROM_DATABASE=Vesuvius -+ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] - - pci:v00001002d000067BE* - ID_MODEL_FROM_DATABASE=Hawaii LE -@@ -5952,7 +5964,7 @@ pci:v00001002d00006800sv00008086sd00002111* - ID_MODEL_FROM_DATABASE=Radeon HD 7970M - - pci:v00001002d00006801* -- ID_MODEL_FROM_DATABASE=Neptune [Radeon HD 8970M] -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] - - pci:v00001002d00006801sv00001002sd00000124* - ID_MODEL_FROM_DATABASE=Radeon HD 8970M -@@ -6017,6 +6029,9 @@ pci:v00001002d00006820* - pci:v00001002d00006820sv0000103Csd00001851* - ID_MODEL_FROM_DATABASE=Radeon HD 7750M - -+pci:v00001002d00006820sv000017AAsd00003801* -+ ID_MODEL_FROM_DATABASE=Radeon R9 M275 -+ - pci:v00001002d00006821* - ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] - -@@ -7817,6 +7832,12 @@ pci:v00001002d000068FAsv000017AFsd00003015* - pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE - -+pci:v00001002d00006900* -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] -+ -+pci:v00001002d00006901* -+ ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] -+ - pci:v00001002d00006920* - ID_MODEL_FROM_DATABASE=Tonga - -@@ -10391,6 +10412,15 @@ pci:v00001014d0000034Asv00001014sd00000499* - pci:v00001014d0000034Asv00001014sd0000049A* - ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) - -+pci:v00001014d0000034Asv00001014sd000004C7* -+ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) -+ -+pci:v00001014d0000034Asv00001014sd000004C8* -+ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) -+ -+pci:v00001014d0000034Asv00001014sd00000C49* -+ ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) -+ - pci:v00001014d000004AA* - ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) - -@@ -13793,6 +13823,63 @@ pci:v0000103Cd00003238sv0000103Csd00003211* - pci:v0000103Cd00003238sv0000103Csd00003212* - ID_MODEL_FROM_DATABASE=Smart Array E200 - -+pci:v0000103Cd00003239* -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers -+ -+pci:v0000103Cd00003239sv0000103Csd000021BD* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021BE* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021BF* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C0* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C1* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C2* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C3* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C4* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C5* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C6* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C7* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C8* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021C9* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CA* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CB* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CC* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CD* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ -+pci:v0000103Cd00003239sv0000103Csd000021CE* -+ ID_MODEL_FROM_DATABASE=Smart Array -+ - pci:v0000103Cd0000323A* - ID_MODEL_FROM_DATABASE=Smart Array G6 controllers - -@@ -17954,6 +18041,54 @@ pci:v0000109Ed0000036Esv000018ACsd0000D500* - pci:v0000109Ed0000036Esv0000270Fsd0000FC00* - ID_MODEL_FROM_DATABASE=Digitop DTT-1000 - -+pci:v0000109Ed0000036Esv0000AA00sd00001460* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 -+ -+pci:v0000109Ed0000036Esv0000AA01sd00001461* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 -+ -+pci:v0000109Ed0000036Esv0000AA02sd00001462* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 -+ -+pci:v0000109Ed0000036Esv0000AA03sd00001463* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 -+ -+pci:v0000109Ed0000036Esv0000AA04sd00001464* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 -+ -+pci:v0000109Ed0000036Esv0000AA05sd00001465* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 -+ -+pci:v0000109Ed0000036Esv0000AA06sd00001466* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 -+ -+pci:v0000109Ed0000036Esv0000AA07sd00001467* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 -+ -+pci:v0000109Ed0000036Esv0000AA08sd00001468* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 -+ -+pci:v0000109Ed0000036Esv0000AA09sd00001469* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 -+ -+pci:v0000109Ed0000036Esv0000AA0Asd0000146A* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 -+ -+pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 -+ -+pci:v0000109Ed0000036Esv0000AA0Csd0000146C* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 -+ -+pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 -+ -+pci:v0000109Ed0000036Esv0000AA0Esd0000146E* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 -+ -+pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* -+ ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 -+ - pci:v0000109Ed0000036Esv0000BD11sd00001200* - ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) - -@@ -26009,6 +26144,9 @@ pci:v000010DEd00000E1A* - pci:v000010DEd00000E1B* - ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller - -+pci:v000010DEd00000E1Bsv0000103Csd0000197B* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v000010DEd00000E1Bsv00001043sd00008428* - ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 - -@@ -26165,6 +26303,9 @@ pci:v000010DEd00000FF5* - pci:v000010DEd00000FF6* - ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] - -+pci:v000010DEd00000FF6sv0000103Csd0000197B* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v000010DEd00000FF7* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] - -@@ -26234,6 +26375,12 @@ pci:v000010DEd00001005sv00003842sd00002794* - pci:v000010DEd00001005sv00003842sd00002795* - ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature - -+pci:v000010DEd00001007* -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] -+ -+pci:v000010DEd00001008* -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Ti Rev. 2] -+ - pci:v000010DEd0000100A* - ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Ti] - -@@ -26294,6 +26441,9 @@ pci:v000010DEd0000104Asv000010B0sd0000104A* - pci:v000010DEd0000104B* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] - -+pci:v000010DEd0000104C* -+ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 705] -+ - pci:v000010DEd00001050* - ID_MODEL_FROM_DATABASE=GF119M [GeForce GT 520M] - -@@ -26333,6 +26483,24 @@ pci:v000010DEd00001058sv00001043sd000010BC* - pci:v000010DEd00001058sv00001043sd00001652* - ID_MODEL_FROM_DATABASE=GeForce GT 610M - -+pci:v000010DEd00001058sv000017AAsd0000367A* -+ ID_MODEL_FROM_DATABASE=GeForce 610M -+ -+pci:v000010DEd00001058sv000017AAsd00003682* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd00001058sv000017AAsd00003687* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd00001058sv000017AAsd00003692* -+ ID_MODEL_FROM_DATABASE=GeForce 705A -+ -+pci:v000010DEd00001058sv000017AAsd00003695* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd00001058sv000017AAsd0000A117* -+ ID_MODEL_FROM_DATABASE=GeForce 610M -+ - pci:v000010DEd00001059* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] - -@@ -26351,6 +26519,15 @@ pci:v000010DEd0000105B* - pci:v000010DEd0000105Bsv0000103Csd00002AFB* - ID_MODEL_FROM_DATABASE=GeForce 705A - -+pci:v000010DEd0000105Bsv000017AAsd0000309D* -+ ID_MODEL_FROM_DATABASE=GeForce 705A -+ -+pci:v000010DEd0000105Bsv000017AAsd000030B1* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ -+pci:v000010DEd0000105Bsv000017AAsd000036A1* -+ ID_MODEL_FROM_DATABASE=GeForce 800A -+ - pci:v000010DEd0000107C* - ID_MODEL_FROM_DATABASE=GF119 [NVS 315] - -@@ -26675,6 +26852,30 @@ pci:v000010DEd00001140sv00001043sd000014C7* - pci:v000010DEd00001140sv00001043sd00001507* - ID_MODEL_FROM_DATABASE=GeForce GT 620M - -+pci:v000010DEd00001140sv00001043sd000015AD* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd000015ED* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000160D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000163D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000166D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd000016CD* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd000016DD* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000170D* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ - pci:v000010DEd00001140sv00001043sd00002132* - ID_MODEL_FROM_DATABASE=GeForce GT 620M - -@@ -26699,6 +26900,12 @@ pci:v000010DEd00001140sv00001043sd0000223A* - pci:v000010DEd00001140sv00001043sd0000224A* - ID_MODEL_FROM_DATABASE=GeForce GT 710M - -+pci:v000010DEd00001140sv00001043sd0000227A* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ -+pci:v000010DEd00001140sv00001043sd0000228A* -+ ID_MODEL_FROM_DATABASE=GeForce 820M -+ - pci:v000010DEd00001140sv00001043sd00008595* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -@@ -26864,9 +27071,48 @@ pci:v000010DEd00001140sv000017AAsd00002213* - pci:v000010DEd00001140sv000017AAsd00002220* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -+pci:v000010DEd00001140sv000017AAsd0000309C* -+ ID_MODEL_FROM_DATABASE=GeForce GT 720A -+ -+pci:v000010DEd00001140sv000017AAsd000030B4* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ - pci:v000010DEd00001140sv000017AAsd00003656* - ID_MODEL_FROM_DATABASE=GeForce GT 620M - -+pci:v000010DEd00001140sv000017AAsd0000365A* -+ ID_MODEL_FROM_DATABASE=GeForce 705M -+ -+pci:v000010DEd00001140sv000017AAsd0000365E* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd0000366C* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd00003685* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd00003686* -+ ID_MODEL_FROM_DATABASE=GeForce 800M -+ -+pci:v000010DEd00001140sv000017AAsd00003687* -+ ID_MODEL_FROM_DATABASE=GeForce 705A -+ -+pci:v000010DEd00001140sv000017AAsd00003696* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369B* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369C* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369D* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ -+pci:v000010DEd00001140sv000017AAsd0000369E* -+ ID_MODEL_FROM_DATABASE=GeForce 820A -+ - pci:v000010DEd00001140sv000017AAsd00003800* - ID_MODEL_FROM_DATABASE=GeForce GT 720M - -@@ -27044,6 +27290,9 @@ pci:v000010DEd0000118F* - pci:v000010DEd00001193* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] - -+pci:v000010DEd00001195* -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 Rev. 2] -+ - pci:v000010DEd00001198* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 880M] - -@@ -27173,6 +27422,9 @@ pci:v000010DEd000011E2* - pci:v000010DEd000011E3* - ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] - -+pci:v000010DEd000011E3sv000017AAsd00003683* -+ ID_MODEL_FROM_DATABASE=GeForce GTX 760A -+ - pci:v000010DEd000011FA* - ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] - -@@ -27323,6 +27575,9 @@ pci:v000010DEd00001282* - pci:v000010DEd00001284* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 630 Rev. 2] - -+pci:v000010DEd00001286* -+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] -+ - pci:v000010DEd00001290* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] - -@@ -27380,6 +27635,15 @@ pci:v000010DEd00001340* - pci:v000010DEd00001341* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] - -+pci:v000010DEd00001341sv000017AAsd00003697* -+ ID_MODEL_FROM_DATABASE=GeForce 840A -+ -+pci:v000010DEd00001341sv000017AAsd00003699* -+ ID_MODEL_FROM_DATABASE=GeForce 840A -+ -+pci:v000010DEd00001341sv000017AAsd0000369C* -+ ID_MODEL_FROM_DATABASE=GeForce 840A -+ - pci:v000010DEd00001380* - ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] - -@@ -27395,6 +27659,12 @@ pci:v000010DEd00001390* - pci:v000010DEd00001391* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] - -+pci:v000010DEd00001391sv000017AAsd00003697* -+ ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ -+pci:v000010DEd00001391sv000017AAsd0000A125* -+ ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ - pci:v000010DEd00001392* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] - -@@ -27839,6 +28109,9 @@ pci:v000010ECd00005227* - pci:v000010ECd00005227sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -+pci:v000010ECd00005227sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v000010ECd00005229* - ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader - -@@ -27848,6 +28121,12 @@ pci:v000010ECd00005229sv00001025sd00000813* - pci:v000010ECd00005229sv0000103Csd0000194E* - ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook - -+pci:v000010ECd00005249* -+ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader -+ -+pci:v000010ECd00005249sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v000010ECd00005288* - ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader - -@@ -30561,7 +30840,7 @@ pci:v0000110Ad00004021* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter) - - pci:v0000110Ad00004029* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 - - pci:v0000110Ad00004029sv0000110Asd00004029* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 -@@ -30581,6 +30860,9 @@ pci:v0000110Ad00004038* - pci:v0000110Ad00004069* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 - -+pci:v0000110Ad00004069sv0000110Asd00004069* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 -+ - pci:v0000110Ad00004069sv0000110Asd0000C069* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 - -@@ -31541,6 +31823,9 @@ pci:v00001131d00007133sv0000153Bsd00001160* - pci:v00001131d00007133sv0000153Bsd00001162* - ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile - -+pci:v00001131d00007133sv000017DEsd00007256* -+ ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card -+ - pci:v00001131d00007133sv000017DEsd00007350* - ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner - -@@ -33651,7 +33936,7 @@ pci:v00001180d00000476sv000014EFsd00000220* - ID_MODEL_FROM_DATABASE=PCD-RP-220S - - pci:v00001180d00000476sv000017AAsd0000201C* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00001180d00000476sv000017AAsd000020C4* - ID_MODEL_FROM_DATABASE=ThinkPad T61 -@@ -33711,7 +33996,7 @@ pci:v00001180d00000552sv0000144Dsd0000C00C* - ID_MODEL_FROM_DATABASE=P30/P35 notebook - - pci:v00001180d00000552sv000017AAsd0000201E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00001180d00000554* - ID_MODEL_FROM_DATABASE=R5C554 -@@ -33813,7 +34098,7 @@ pci:v00001180d00000822sv0000144Dsd0000C018* - ID_MODEL_FROM_DATABASE=X20 IV - - pci:v00001180d00000822sv000017AAsd0000201D* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00001180d00000822sv000017AAsd000020C7* - ID_MODEL_FROM_DATABASE=ThinkPad T61 -@@ -33833,6 +34118,9 @@ pci:v00001180d00000832sv00001028sd000001D7* - pci:v00001180d00000832sv00001028sd000001F3* - ID_MODEL_FROM_DATABASE=Inspiron 1420 - -+pci:v00001180d00000832sv00001028sd0000024D* -+ ID_MODEL_FROM_DATABASE=Latitude E4300 -+ - pci:v00001180d00000832sv0000103Csd000030B5* - ID_MODEL_FROM_DATABASE=Presario V3242AU - -@@ -49442,6 +49730,18 @@ pci:v00001797d00006812* - pci:v00001797d00006813* - ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller - -+pci:v00001797d00006814* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ -+pci:v00001797d00006815* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ -+pci:v00001797d00006816* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ -+pci:v00001797d00006817* -+ ID_MODEL_FROM_DATABASE=TW6816 multimedia video controller -+ - pci:v00001799* - ID_VENDOR_FROM_DATABASE=Belkin - -@@ -50978,12 +51278,33 @@ pci:v00001924d00000813sv00001924sd00007904* - pci:v00001924d00000903* - ID_MODEL_FROM_DATABASE=SFC9120 - -+pci:v00001924d00000903sv00001014sd000004CC* -+ ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra -+ - pci:v00001924d00000903sv00001924sd00008002* - ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter - -+pci:v00001924d00000903sv00001924sd00008003* -+ ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ - pci:v00001924d00000903sv00001924sd00008006* - ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter - -+pci:v00001924d00000903sv00001924sd00008007* -+ ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter -+ -+pci:v00001924d00000903sv00001924sd00008009* -+ ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter -+ -+pci:v00001924d00000903sv00001924sd0000800A* -+ ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter -+ -+pci:v00001924d00000923* -+ ID_MODEL_FROM_DATABASE=SFC9140 -+ -+pci:v00001924d00000923sv00001924sd0000800B* -+ ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ - pci:v00001924d00001803* - ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] - -@@ -51227,6 +51548,9 @@ pci:v00001957d00000083* - pci:v00001957d00000084* - ID_MODEL_FROM_DATABASE=MPC8347E PBGA - -+pci:v00001957d00000084sv0000110Asd00004074* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 -+ - pci:v00001957d00000085* - ID_MODEL_FROM_DATABASE=MPC8347 PBGA - -@@ -51456,7 +51780,7 @@ pci:v00001969d00002062* - ID_MODEL_FROM_DATABASE=AR8152 v2.0 Fast Ethernet - - pci:v00001969d0000E091* -- ID_MODEL_FROM_DATABASE=Killer E2200 Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=Killer E220x Gigabit Ethernet Controller - - pci:v0000196A* - ID_VENDOR_FROM_DATABASE=Sensory Networks Inc. -@@ -52214,8 +52538,14 @@ pci:v00001AF4d00001005* - pci:v00001AF4d00001009* - ID_MODEL_FROM_DATABASE=Virtio filesystem - -+pci:v00001AF4d00001010* -+ ID_MODEL_FROM_DATABASE=Virtio GPU -+ -+pci:v00001AF4d00001012* -+ ID_MODEL_FROM_DATABASE=Virtio input device -+ - pci:v00001AF4d00001110* -- ID_MODEL_FROM_DATABASE=Virtio Inter-VM shared memory -+ ID_MODEL_FROM_DATABASE=Inter-VM shared memory - - pci:v00001AF4d00001110sv00001AF4sd00001100* - ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -@@ -52397,6 +52727,9 @@ pci:v00001B4Bd000091A4* - pci:v00001B4Bd00009230* - ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller - -+pci:v00001B4Bd00009445* -+ ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller -+ - pci:v00001B4Bd00009480* - ID_MODEL_FROM_DATABASE=88SE9480 SAS/SATA 6Gb/s RAID controller - -@@ -55550,15 +55883,24 @@ pci:v00008086d00000964* - pci:v00008086d00000A04* - ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller - -+pci:v00008086d00000A04sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00000A06* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - - pci:v00008086d00000A0C* - ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller - -+pci:v00008086d00000A0Csv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00000A16* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - -+pci:v00008086d00000A16sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00000A22* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - -@@ -55655,6 +55997,9 @@ pci:v00008086d00000C01* - pci:v00008086d00000C04* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller - -+pci:v00008086d00000C04sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00000C04sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -57360,7 +57705,7 @@ pci:v00008086d0000109Asv000017AAsd00002001* - ID_MODEL_FROM_DATABASE=ThinkPad T60 - - pci:v00008086d0000109Asv000017AAsd0000207E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s -+ ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s - - pci:v00008086d0000109Asv00008086sd0000109A* - ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection -@@ -58847,6 +59192,9 @@ pci:v00008086d00001539* - pci:v00008086d0000153A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM - -+pci:v00008086d0000153Asv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d0000153Asv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -58901,6 +59249,9 @@ pci:v00008086d00001559* - pci:v00008086d0000155A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM - -+pci:v00008086d0000155Asv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d0000155C* - ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter - -@@ -63816,7 +64167,7 @@ pci:v00008086d000027A0sv000017AAsd00002015* - ID_MODEL_FROM_DATABASE=ThinkPad T60 - - pci:v00008086d000027A0sv000017AAsd00002017* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027A1* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port -@@ -63834,7 +64185,7 @@ pci:v00008086d000027A2sv0000103Csd000030A1* - ID_MODEL_FROM_DATABASE=NC2400 - - pci:v00008086d000027A2sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027A2sv00009902sd00001584* - ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F -@@ -63849,7 +64200,7 @@ pci:v00008086d000027A6sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) - - pci:v00008086d000027A6sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027AC* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub -@@ -63915,7 +64266,7 @@ pci:v00008086d000027B9sv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop - - pci:v00008086d000027B9sv000017AAsd00002009* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027BC* - ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller -@@ -64035,7 +64386,7 @@ pci:v00008086d000027C5sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=Compaq nw8440 - - pci:v00008086d000027C5sv000017AAsd0000200D* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027C6* - ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] -@@ -64095,7 +64446,7 @@ pci:v00008086d000027C8sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027C8sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027C8sv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64161,7 +64512,7 @@ pci:v00008086d000027C9sv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027C9sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027C9sv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64227,7 +64578,7 @@ pci:v00008086d000027CAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027CAsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027CAsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64287,7 +64638,7 @@ pci:v00008086d000027CBsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027CBsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027CBsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64347,7 +64698,7 @@ pci:v00008086d000027CCsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027CCsv000017AAsd0000200B* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027CCsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64509,7 +64860,7 @@ pci:v00008086d000027D8sv00001734sd000010AD* - ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP - - pci:v00008086d000027D8sv000017AAsd00002010* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027D8sv000017AAsd00003802* - ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] -@@ -64569,7 +64920,7 @@ pci:v00008086d000027DAsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027DAsv000017AAsd0000200F* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027DAsv00008086sd00004F4D* - ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -@@ -64647,7 +64998,7 @@ pci:v00008086d000027DFsv00001775sd000011CC* - ID_MODEL_FROM_DATABASE=CC11/CL11 - - pci:v00008086d000027DFsv000017AAsd0000200C* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series - - pci:v00008086d000027DFsv00008086sd0000544E* - ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -@@ -70358,6 +70709,9 @@ pci:v00008086d00008C02* - pci:v00008086d00008C03* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] - -+pci:v00008086d00008C03sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C03sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70442,6 +70796,9 @@ pci:v00008086d00008C1F* - pci:v00008086d00008C20* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller - -+pci:v00008086d00008C20sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C20sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70451,6 +70808,9 @@ pci:v00008086d00008C21* - pci:v00008086d00008C22* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller - -+pci:v00008086d00008C22sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C22sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70463,18 +70823,27 @@ pci:v00008086d00008C24* - pci:v00008086d00008C26* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 - -+pci:v00008086d00008C26sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C26sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - - pci:v00008086d00008C2D* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 - -+pci:v00008086d00008C2Dsv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C2Dsv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - - pci:v00008086d00008C31* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI - -+pci:v00008086d00008C31sv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C31sv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70487,6 +70856,9 @@ pci:v00008086d00008C34* - pci:v00008086d00008C3A* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 - -+pci:v00008086d00008C3Asv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C3Asv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70547,6 +70919,9 @@ pci:v00008086d00008C4E* - pci:v00008086d00008C4F* - ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller - -+pci:v00008086d00008C4Fsv0000103Csd00001909* -+ ID_MODEL_FROM_DATABASE=ZBook 15 -+ - pci:v00008086d00008C4Fsv000017AAsd0000220E* - ID_MODEL_FROM_DATABASE=ThinkPad T440p - -@@ -70820,6 +71195,9 @@ pci:v00008086d00009C02* - pci:v00008086d00009C03* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] - -+pci:v00008086d00009C03sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C04* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] - -@@ -70907,12 +71285,18 @@ pci:v00008086d00009C1F* - pci:v00008086d00009C20* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller - -+pci:v00008086d00009C20sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C21* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller - - pci:v00008086d00009C22* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller - -+pci:v00008086d00009C22sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C23* - ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters - -@@ -70922,12 +71306,18 @@ pci:v00008086d00009C24* - pci:v00008086d00009C26* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 - -+pci:v00008086d00009C26sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C2D* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 - - pci:v00008086d00009C31* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC - -+pci:v00008086d00009C31sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C35* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller - -@@ -70937,6 +71327,9 @@ pci:v00008086d00009C36* - pci:v00008086d00009C3A* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 - -+pci:v00008086d00009C3Asv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C3B* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 - -@@ -70958,6 +71351,9 @@ pci:v00008086d00009C42* - pci:v00008086d00009C43* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller - -+pci:v00008086d00009C43sv000017AAsd00002214* -+ ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ - pci:v00008086d00009C44* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller - -@@ -72557,6 +72953,54 @@ pci:v0000A727d00000013* - pci:v0000A727d00006803* - ID_MODEL_FROM_DATABASE=3CRDAG675B Wireless 11a/b/g Adapter - -+pci:v0000AA00* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA01* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA02* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA03* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA04* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA05* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA06* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA07* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA08* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA09* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0A* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0B* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0C* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0D* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0E* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ -+pci:v0000AA0F* -+ ID_VENDOR_FROM_DATABASE=iTuner -+ - pci:v0000AA42* - ID_VENDOR_FROM_DATABASE=Scitex Digital Video - --- -1.7.9.2 - diff --git a/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch b/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch deleted file mode 100644 index 17cd4197..00000000 --- a/0002-include-fcntl.h-rather-than-sys-fcntl.h.patch +++ /dev/null @@ -1,25 +0,0 @@ -From fdb8bd0fe7244b72ddc1c08e401ebddefdaf4f46 Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:38 +0200 -Subject: [PATCH] include fcntl.h rather than sys/fcntl.h - ---- - src/socket-proxy/socket-proxyd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/socket-proxy/socket-proxyd.c src/socket-proxy/socket-proxyd.c -index 81d8457..ff2b24f 100644 ---- src/socket-proxy/socket-proxyd.c -+++ src/socket-proxy/socket-proxyd.c -@@ -26,7 +26,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include --- -1.7.9.2 - diff --git a/0002-journal-compress-improve-xz-compression-performance.patch b/0002-journal-compress-improve-xz-compression-performance.patch deleted file mode 100644 index adccdaad..00000000 --- a/0002-journal-compress-improve-xz-compression-performance.patch +++ /dev/null @@ -1,82 +0,0 @@ -Based on 1930eed2a7855d2df06ccf51f9e394428bf547e2 Mon Sep 17 00:00:00 2001 -From: Jon Severinsson -Date: Tue, 8 Jul 2014 18:29:46 +0200 -Subject: [PATCH] journal/compress: improve xz compression performance - -The new lzma2 compression options at the top of compress_blob_xz are -equivalent to using preset "0", exept for using a 1 MiB dictionary -(the same as preset "1"). This makes the memory usage at most 7.5 MiB -in the compressor, and 1 MiB in the decompressor, instead of the -previous 92 MiB in the compressor and 8 MiB in the decompressor. - -According to test-compress-benchmark this commit makes XZ compression -20 times faster, with no increase in compressed data size. -Using more realistic test data (an ELF binary rather than repeating -ASCII letters 'a' through 'z' in order) it only provides a factor 10 -speedup, and at a cost if a 10% increase in compressed data size. -But that is still a worthwhile trade-off. - -According to test-compress-benchmark XZ compression is still 25 times -slower than LZ4, but the compressed data is one eighth the size. -Using more realistic test data XZ compression is only 18 times slower -than LZ4, and the compressed data is only one quarter the size. - ---- - src/journal/compress.c | 33 ++++++++++++++------------------- - 1 file changed, 14 insertions(+), 19 deletions(-) - ---- src/journal/compress.c -+++ src/journal/compress.c 2014-07-09 12:09:45.814235274 +0000 -@@ -28,8 +28,15 @@ - #include "compress.h" - - bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { -- lzma_stream s = LZMA_STREAM_INIT; -+ static const lzma_options_lzma opt = { -+ 1u << 20u, NULL, 0, LZMA_LC_DEFAULT, LZMA_LP_DEFAULT, -+ LZMA_PB_DEFAULT, LZMA_MODE_FAST, 128, LZMA_MF_HC3, 4}; -+ static const lzma_filter filters[2] = { -+ {LZMA_FILTER_LZMA2, (lzma_options_lzma*) &opt}, -+ {LZMA_VLI_UNKNOWN, NULL} -+ }; - lzma_ret ret; -+ size_t out_pos = 0; - bool b = false; - - assert(src); -@@ -40,29 +47,17 @@ bool compress_blob(const void *src, uint - /* Returns false if we couldn't compress the data or the - * compressed result is longer than the original */ - -- ret = lzma_easy_encoder(&s, LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE); -- if (ret != LZMA_OK) -+ if (src_size < 80) - return false; - -- s.next_in = src; -- s.avail_in = src_size; -- s.next_out = dst; -- s.avail_out = src_size; -- -- /* Does it fit? */ -- if (lzma_code(&s, LZMA_FINISH) != LZMA_STREAM_END) -- goto fail; -- -- /* Is it actually shorter? */ -- if (s.avail_out == 0) -- goto fail; -+ ret = lzma_stream_buffer_encode((lzma_filter*) filters, LZMA_CHECK_NONE, NULL, -+ src, src_size, dst, &out_pos, src_size - 1); -+ if (ret != LZMA_OK) -+ return false; - -- *dst_size = src_size - s.avail_out; -+ *dst_size = out_pos; - b = true; - --fail: -- lzma_end(&s); -- - return b; - } - diff --git a/0002-journal-properly-detect-language-specified-in-line.patch b/0002-journal-properly-detect-language-specified-in-line.patch deleted file mode 100644 index 361518a2..00000000 --- a/0002-journal-properly-detect-language-specified-in-line.patch +++ /dev/null @@ -1,99 +0,0 @@ -From baf167ee0a2953f98e4e7d4c35752ef737832674 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Apr 2014 20:57:27 -0400 -Subject: [PATCH] journal: properly detect language specified in line - -... it turns out that the duplicates in our own catalog were not real -duplicates, but translations. ---- - TODO | 2 ++ - src/journal/catalog.c | 53 +++++++++++++++++++++++++++++++------------------ - 2 files changed, 36 insertions(+), 19 deletions(-) - -diff --git TODO TODO -index 0343b94..a7307f7 100644 ---- TODO -+++ TODO -@@ -709,6 +709,8 @@ External: - - * fedora: update policy to declare access mode and ownership of unit files to root:root 0644, and add an rpmlint check for it - -+* register catalog database signature as file magic -+ - Regularly: - - * look for close() vs. close_nointr() vs. close_nointr_nofail() -diff --git src/journal/catalog.c src/journal/catalog.c -index 02dedc4..f03357d 100644 ---- src/journal/catalog.c -+++ src/journal/catalog.c -@@ -159,6 +159,37 @@ int catalog_file_lang(const char* filename, char **lang) { - return 1; - } - -+static int catalog_entry_lang(const char* filename, int line, -+ const char* t, const char* deflang, char **lang) { -+ size_t c; -+ -+ c = strlen(t); -+ if (c == 0) { -+ log_error("[%s:%u] Language too short.", filename, line); -+ return -EINVAL; -+ } -+ if (c > 31) { -+ log_error("[%s:%u] language too long.", filename, line); -+ return -EINVAL; -+ } -+ -+ if (deflang) { -+ if (streq(t, deflang)) { -+ log_warning("[%s:%u] language specified unnecessarily", -+ filename, line); -+ return 0; -+ } else -+ log_warning("[%s:%u] language differs from default for file", -+ filename, line); -+ } -+ -+ *lang = strdup(t); -+ if (!*lang) -+ return -ENOMEM; -+ -+ return 0; -+} -+ - int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { - _cleanup_fclose_ FILE *f = NULL; - _cleanup_free_ char *payload = NULL; -@@ -238,25 +269,9 @@ int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) { - if (with_language) { - t = strstrip(line + 2 + 1 + 32 + 1); - -- c = strlen(t); -- if (c <= 0) { -- log_error("[%s:%u] Language too short.", path, n); -- return -EINVAL; -- } -- if (c > 31) { -- log_error("[%s:%u] language too long.", path, n); -- return -EINVAL; -- } -- -- if (deflang) { -- log_warning("[%s:%u] language %s", path, n, -- streq(t, deflang) ? -- "specified unnecessarily" : -- "differs from default for file"); -- lang = strdup(t); -- if (!lang) -- return -ENOMEM; -- } -+ r = catalog_entry_lang(path, n, t, deflang, &lang); -+ if (r < 0) -+ return r; - } - - got_id = true; --- -1.7.9.2 - diff --git a/0002-journalctl-man-allow-only-between-terms.patch b/0002-journalctl-man-allow-only-between-terms.patch deleted file mode 100644 index c29bdf6f..00000000 --- a/0002-journalctl-man-allow-only-between-terms.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 4e6029435111adcad71489aca2dd68bc65aeffd4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 19 Jul 2014 21:05:07 -0400 -Subject: [PATCH] journalctl,man: allow + only between terms - -https://bugzilla.redhat.com/show_bug.cgi?id=1110712 ---- - man/journalctl.xml | 19 +++++++++++++++---- - src/journal/journalctl.c | 20 +++++++++++++++++--- - 2 files changed, 32 insertions(+), 7 deletions(-) - -diff --git man/journalctl.xml man/journalctl.xml -index 47b5a05..df9c794 100644 ---- man/journalctl.xml -+++ man/journalctl.xml -@@ -84,10 +84,11 @@ - field, then they are automatically matched as - alternatives, i.e. the resulting output will show - entries matching any of the specified matches for the -- same field. Finally, if the character -- + appears as a separate word on the -- command line, all matches before and after are combined -- in a disjunction (i.e. logical OR). -+ same field. Finally, the character -+ + may appears as a separate word -+ between other terms on the command line. This causes -+ all matches before and after to be combined in a -+ disjunction (i.e. logical OR). - - As shortcuts for a few types of field/value - matches, file paths may be specified. If a file path -@@ -98,11 +99,21 @@ - _KERNEL_DEVICE= match for the - device. - -+ Additional contraints may be added using options -+ , , -+ etc, to futher limit what entries will be shown -+ (logical AND). -+ - Output is interleaved from all accessible - journal files, whether they are rotated or currently - being written, and regardless of whether they belong to the - system itself or are accessible user journals. - -+ The set of journal files which will be used -+ can be modified using the , -+ , , -+ and options, see below. -+ - All users are granted access to their private - per-user journals. However, by default, only root and - users who are members of the systemd-journal -diff --git src/journal/journalctl.c src/journal/journalctl.c -index 92e8286..7aedbf0 100644 ---- src/journal/journalctl.c -+++ src/journal/journalctl.c -@@ -699,15 +699,20 @@ static int generate_new_id128(void) { - - static int add_matches(sd_journal *j, char **args) { - char **i; -+ bool have_term = false; - - assert(j); - - STRV_FOREACH(i, args) { - int r; - -- if (streq(*i, "+")) -+ if (streq(*i, "+")) { -+ if (!have_term) -+ break; - r = sd_journal_add_disjunction(j); -- else if (path_is_absolute(*i)) { -+ have_term = false; -+ -+ } else if (path_is_absolute(*i)) { - _cleanup_free_ char *p, *t = NULL, *t2 = NULL; - const char *path; - _cleanup_free_ char *interpreter = NULL; -@@ -756,8 +761,12 @@ static int add_matches(sd_journal *j, char **args) { - r = sd_journal_add_match(j, t, 0); - if (t2) - r = sd_journal_add_match(j, t2, 0); -- } else -+ have_term = true; -+ -+ } else { - r = sd_journal_add_match(j, *i, 0); -+ have_term = true; -+ } - - if (r < 0) { - log_error("Failed to add match '%s': %s", *i, strerror(-r)); -@@ -765,6 +774,11 @@ static int add_matches(sd_journal *j, char **args) { - } - } - -+ if (!strv_isempty(args) && !have_term) { -+ log_error("\"+\" can only be used between terms"); -+ return -EINVAL; -+ } -+ - return 0; - } - --- -1.7.9.2 - diff --git a/0002-journald-make-MaxFileSec-really-default-to-1month.patch b/0002-journald-make-MaxFileSec-really-default-to-1month.patch deleted file mode 100644 index 9b48fcae..00000000 --- a/0002-journald-make-MaxFileSec-really-default-to-1month.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on e150e82097211f09b911c7784a89ef9efed713ca Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20Bartoszkiewicz?= -Date: Thu, 26 Jun 2014 22:11:35 +0200 -Subject: [PATCH] journald: make MaxFileSec really default to 1month - -journald.conf(5) states that the default for MaxFileSec is one month, -but the code didn't respect that. ---- - src/journal/journald-server.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- src/journal/journald-server.c -+++ src/journal/journald-server.c 2014-07-01 12:28:25.506735287 +0000 -@@ -68,6 +68,7 @@ - #define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE) - #define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC) - #define DEFAULT_RATE_LIMIT_BURST 1000 -+#define DEFAULT_MAX_FILE_USEC USEC_PER_MONTH - - #define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC) - -@@ -1496,6 +1497,8 @@ int server_init(Server *s) { - - s->forward_to_syslog = true; - -+ s->max_file_usec = DEFAULT_MAX_FILE_USEC; -+ - s->max_level_store = LOG_DEBUG; - s->max_level_syslog = LOG_DEBUG; - s->max_level_kmsg = LOG_NOTICE; diff --git a/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch b/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch deleted file mode 100644 index 7ba1dc4d..00000000 --- a/0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1f6d36f267186c0e3184bab4c7eca48481c6faab Mon Sep 17 00:00:00 2001 -From: Hui Wang -Date: Wed, 30 Jul 2014 16:09:08 +0800 -Subject: [PATCH] keymap: Add microphone mute keymap for Dell Latitude - -On the Dell Latitude, the mic mute key event is generated by wmi -driver, the keycode assigned to this hotkey from kernel is -KEY_MICMUTE (248), this keycode is too big for xorg to handle, -in the xorg, the XF86AudioMicMute is assigned to F20. - -Please refer to 4e648ea0 of xkeyboard-config. - -BugLink: https://bugs.launchpad.net/bugs/1326684 -BugLink: https://bugs.launchpad.net/bugs/1339998 -Signed-off-by: Hui Wang -Signed-off-by: Martin Pitt ---- - hwdb/60-keyboard.hwdb | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index c7ff4e4..70e372b 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -229,6 +229,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - KEYBOARD_KEY_8c=!unknown - -+# Dell Latitude microphone mute -+keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* -+ KEYBOARD_KEY_150=f20 # Mic mute toggle -+ - ########################################################### - # Everex - ########################################################### --- -1.7.9.2 - diff --git a/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch b/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch deleted file mode 100644 index e921c60b..00000000 --- a/0002-keymap-Asus-EeePC-touchpad-toggle-key.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e55edb22a71e67f01534d28f91c6aa27bba48fc1 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Sun, 25 May 2014 12:16:35 +0200 -Subject: [PATCH] keymap: Asus EeePC touchpad toggle key - -Originally is KEY_TOUCHPAD_TOGGLE, but X.org can't handle the big key events, -so use the F21 convention. - -https://bugs.freedesktop.org/show_bug.cgi?id=72807 ---- - hwdb/60-keyboard.hwdb | 1 + - 1 file changed, 1 insertion(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index fe5b3ee..05e6a04 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -138,6 +138,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* - KEYBOARD_KEY_ef=mute - - keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* -+keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* - KEYBOARD_KEY_6b=f21 # Touchpad Toggle - - ########################################################### --- -1.7.9.2 - diff --git a/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch b/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch deleted file mode 100644 index 28f7bb2a..00000000 --- a/0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b4c72e52d2109fe7f0ac3440c81ae3e1ce64a143 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Wed, 12 Nov 2014 23:31:08 +0100 -Subject: [PATCH] keymap: Fix special keys on ThinkPad X60/X61 Tablet - -KEY_DIRECTION is mapped to XF86RotateWindows, to rotate the display: -http://cgit.freedesktop.org/xkeyboard-config/commit/symbols/inet?id=ec875f6f9b7c4028e11d32b071989c682e6502bd - -And F13 is mapped to XF86Tools, which is closest to the original toolbox -usage: -http://cgit.freedesktop.org/xkeyboard-config/tree/symbols/inet?id=7a2c4bed212ebbcc05f3c959aef659ce7dd31fd8#n221 ---- - hwdb/60-keyboard.hwdb | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 56a4009..533ad5b 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -585,8 +585,8 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* - - # ThinkPad X6 Tablet - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* -- KEYBOARD_KEY_6c=f21 # rotate -- KEYBOARD_KEY_68=screenlock # screenlock -+ KEYBOARD_KEY_6c=direction # rotate -+ KEYBOARD_KEY_68=f13 # toolbox - KEYBOARD_KEY_6b=esc # escape - KEYBOARD_KEY_6d=right # right on d-pad - KEYBOARD_KEY_6e=left # left on d-pad --- -1.7.9.2 - diff --git a/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch b/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch deleted file mode 100644 index 45af9018..00000000 --- a/0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4e3deeedc15b03197d591850061316289245c9a9 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 7 Oct 2014 11:22:31 +0200 -Subject: [PATCH] keymap: Fix touchpad toggle key on Asus laptops - -https://launchpad.net/bugs/1377352 ---- - hwdb/60-keyboard.hwdb | 1 + - 1 file changed, 1 insertion(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 1fea32a..59f467b 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -153,6 +153,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* - - keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* - keyboard:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* -+keyboard:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* - KEYBOARD_KEY_6b=f21 # Touchpad Toggle - - ########################################################### --- -1.7.9.2 - diff --git a/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch b/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch deleted file mode 100644 index e29c01d9..00000000 --- a/0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From aba248ee6b1eb10baf3d89eca2ad7569459af6ab Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 30 Oct 2014 10:15:54 +0100 -Subject: [PATCH] keymap: Ignore brightness keys on Dell Inspiron 1520 to - avoid double events - -On the Dell Inspiron 1520 both the atkbd and acpi-video input devices report -an event for pressing the brightness up / down key-combos, resulting in user -space seeing double events and increasing / decreasing the brightness 2 steps -for each keypress. - -This hwdb snippet suppresses the atkbd events, making the Inspiron 1520 work -like most modern laptops which emit brightness up / down events through -acpi-video only. - -Reported by Pavel Malyshev - -https://bugzilla.redhat.com/show_bug.cgi?id=1141525 ---- - hwdb/60-keyboard.hwdb | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 06caba9..d2ca965 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -230,6 +230,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:pvr* - KEYBOARD_KEY_84=wlan - -+# Dell Inspiron 1520 -+keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:pvr* -+ KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore -+ KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore -+ - # Latitude XT2 - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*XT2:pvr* - KEYBOARD_KEY_9b=up # tablet rocker up --- -1.7.9.2 - diff --git a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch deleted file mode 100644 index a1934486..00000000 --- a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 25 Feb 2014 13:08:24 +0100 -Subject: [PATCH] login: set pos-slot to fallback on pos-eviction - -If we evict a session position, we open the position slot for future -sessions. However, there might already be another session on the same -position if both were started on the same VT. This is currently done if -gdm spawns the session on its own Xserver. - -Hence, look for such a session on pos-eviction and claim the new slot -immediately. ---- - src/login/logind-seat.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git src/login/logind-seat.c src/login/logind-seat.c -index 36ec7ed..96cf08e 100644 ---- src/login/logind-seat.c -+++ src/login/logind-seat.c -@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { - } - - void seat_evict_position(Seat *s, Session *session) { -+ Session *iter; - unsigned int pos = session->pos; - - session->pos = 0; -@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { - if (!pos) - return; - -- if (pos < s->position_count && s->positions[pos] == session) -+ if (pos < s->position_count && s->positions[pos] == session) { - s->positions[pos] = NULL; -+ -+ /* There might be another session claiming the same -+ * position (eg., during gdm->session transition), so lets look -+ * for it and set it on the free slot. */ -+ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { -+ if (iter->pos == pos) { -+ s->positions[pos] = iter; -+ break; -+ } -+ } -+ } - } - - void seat_claim_position(Seat *s, Session *session, unsigned int pos) { --- -1.7.9.2 - diff --git a/0002-logind-add-support-for-TPS65217-Power-Button.patch b/0002-logind-add-support-for-TPS65217-Power-Button.patch deleted file mode 100644 index 17a576de..00000000 --- a/0002-logind-add-support-for-TPS65217-Power-Button.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 492d7a3038b154e1813a1ece913a5a27148fec19 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Sat, 27 Sep 2014 09:55:44 +0200 -Subject: [PATCH] logind: add support for TPS65217 Power Button - -This PMIC is found on TI AM335x based boards like the beaglebone and -beaglebone black. - -root@beaglebone-white:~# udevadm info -a /dev/input/event0 - -Udevadm info starts with the device specified by the devpath and then -walks up the chain of parent devices. It prints for every device -found, all possible attributes in the udev rules key format. -A rule to match, can be composed by the attributes of the device -and the attributes from one single parent device. - - looking at device -'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0/event0': - KERNEL=="event0" - SUBSYSTEM=="input" - DRIVER=="" - - looking at parent device -'/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0': - KERNELS=="input0" - SUBSYSTEMS=="input" - DRIVERS=="" - ATTRS{name}=="tps65217_pwr_but" - ATTRS{phys}=="" - ATTRS{uniq}=="" - ATTRS{properties}=="0" - - looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0/0-0024': - KERNELS=="0-0024" - SUBSYSTEMS=="i2c" - DRIVERS=="tps65217" - ATTRS{name}=="tps65217" - - looking at parent device '/devices/ocp.3/44e0b000.i2c/i2c-0': - KERNELS=="i2c-0" - SUBSYSTEMS=="i2c" - DRIVERS=="" - ATTRS{name}=="OMAP I2C adapter" - - looking at parent device '/devices/ocp.3/44e0b000.i2c': - KERNELS=="44e0b000.i2c" - SUBSYSTEMS=="platform" - DRIVERS=="omap_i2c" - - looking at parent device '/devices/ocp.3': - KERNELS=="ocp.3" - SUBSYSTEMS=="platform" - DRIVERS=="" ---- - src/login/70-power-switch.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/login/70-power-switch.rules src/login/70-power-switch.rules -index a6997f7..695d246 100644 ---- src/login/70-power-switch.rules -+++ src/login/70-power-switch.rules -@@ -10,5 +10,6 @@ ACTION=="remove", GOTO="power_switch_end" - SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" -+SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" - - LABEL="power_switch_end" --- -1.7.9.2 - diff --git a/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch b/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch deleted file mode 100644 index 73ffb867..00000000 --- a/0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 301f9684e6465df5d0590f6c571fe3229ded966d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 15 May 2014 18:30:07 +0200 -Subject: [PATCH] logind: bring polkit policy for hibernate in line with - suspend/poweroff/reboot - -THere's no reason why hibernate should be better protected then -suspendor poweroff, so sync the policies. ---- - src/login/org.freedesktop.login1.policy.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/org.freedesktop.login1.policy.in src/login/org.freedesktop.login1.policy.in -index b96d32d..b8e90f1 100644 ---- src/login/org.freedesktop.login1.policy.in -+++ src/login/org.freedesktop.login1.policy.in -@@ -254,7 +254,7 @@ - - auth_admin_keep - auth_admin_keep -- auth_admin_keep -+ yes - - org.freedesktop.login1.hibernate - --- -1.7.9.2 - diff --git a/0002-logind-fix-printf-format.patch b/0002-logind-fix-printf-format.patch deleted file mode 100644 index 61bbc9aa..00000000 --- a/0002-logind-fix-printf-format.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7e9110a29d90041b0364cb93a84aec9dd72363b6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 19:39:51 +0100 -Subject: [PATCH] logind: fix printf format - ---- - src/login/logind-action.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index da5a830..c9d8bc5 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -81,7 +81,7 @@ int manager_handle_action( - - n = manager_count_displays(m); - if (n != 1) { -- log_debug("Ignoring lid switch request, %s displays connected."); -+ log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } - } --- -1.7.9.2 - diff --git a/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch b/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch deleted file mode 100644 index c3381ef7..00000000 --- a/0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch +++ /dev/null @@ -1,70 +0,0 @@ -From de58a50e24a0d55e3bbcc77f8f6170a7322acf52 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 18 Mar 2014 04:43:08 +0100 -Subject: [PATCH] machined: fix Kill() bus call on machine objects when "what" - is specified as "leader" - ---- - src/machine/machine.c | 10 +++++++++- - src/machine/machined-dbus.c | 4 ++-- - src/machine/machined.h | 2 +- - 3 files changed, 12 insertions(+), 4 deletions(-) - -diff --git src/machine/machine.c src/machine/machine.c -index 4596a80..9a5cc9a 100644 ---- src/machine/machine.c -+++ src/machine/machine.c -@@ -410,7 +410,15 @@ int machine_kill(Machine *m, KillWho who, int signo) { - if (!m->unit) - return -ESRCH; - -- return manager_kill_unit(m->manager, m->unit, who, signo, NULL); -+ if (who == KILL_LEADER) { -+ /* If we shall simply kill the leader, do so directly */ -+ -+ if (kill(m->leader, signo) < 0) -+ return -errno; -+ } -+ -+ /* Otherwise make PID 1 do it for us, for the entire cgroup */ -+ return manager_kill_unit(m->manager, m->unit, signo, NULL); - } - - static const char* const machine_class_table[_MACHINE_CLASS_MAX] = { -diff --git src/machine/machined-dbus.c src/machine/machined-dbus.c -index 09d28bb..9473105 100644 ---- src/machine/machined-dbus.c -+++ src/machine/machined-dbus.c -@@ -655,7 +655,7 @@ int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, c - return 1; - } - --int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error) { -+int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error) { - assert(manager); - assert(unit); - -@@ -667,7 +667,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo - "KillUnit", - error, - NULL, -- "ssi", unit, who == KILL_LEADER ? "main" : "all", signo); -+ "ssi", unit, "all", signo); - } - - int manager_unit_is_active(Manager *manager, const char *unit) { -diff --git src/machine/machined.h src/machine/machined.h -index d4b581b..2dba303 100644 ---- src/machine/machined.h -+++ src/machine/machined.h -@@ -67,6 +67,6 @@ int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_b - - int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, sd_bus_message *more_properties, sd_bus_error *error, char **job); - int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); --int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); -+int manager_kill_unit(Manager *manager, const char *unit, int signo, sd_bus_error *error); - int manager_unit_is_active(Manager *manager, const char *unit); - int manager_job_is_active(Manager *manager, const char *path); --- -1.7.9.2 - diff --git a/0002-man-document-yearly-and-annually-in-systemd.time-7.patch b/0002-man-document-yearly-and-annually-in-systemd.time-7.patch deleted file mode 100644 index 521b22cc..00000000 --- a/0002-man-document-yearly-and-annually-in-systemd.time-7.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 8c275eef38bf7e3e592e4cb35a497522d1f15bb6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Jul 2014 22:17:29 -0400 -Subject: [PATCH] man: document yearly and annually in systemd.time(7) - -https://bugs.freedesktop.org/show_bug.cgi?id=81158 ---- - man/systemd.time.xml | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git man/systemd.time.xml man/systemd.time.xml -index 0706cdf..02431a5 100644 ---- man/systemd.time.xml -+++ man/systemd.time.xml -@@ -243,12 +243,16 @@ - - The special expressions - hourly, daily, -- monthly and weekly -- may be used as calendar events which refer to -- *-*-* *:00:00, *-*-* -- 00:00:00, *-*-01 00:00:00 and -- Mon *-*-* 00:00:00, -- respectively. -+ monthly, weekly, -+ and yearly or -+ annually may be used as calendar -+ events which refer to -+ *-*-* *:00:00, -+ *-*-* 00:00:00, -+ *-*-01 00:00:00, -+ Mon *-*-* 00:00:00, and -+ *-01-01 00:00:00 respectively. -+ - - Examples for valid timestamps and their - normalized form: -@@ -277,6 +281,8 @@ Wed-Sat,Tue 12-10-15 1:2:3 → Tue-Sat 2012-10-15 01:02:03 - daily → *-*-* 00:00:00 - monthly → *-*-01 00:00:00 - weekly → Mon *-*-* 00:00:00 -+ yearly → *-01-01 00:00:00 -+ annually → *-01-01 00:00:00 - *:2/3 → *-*-* *:02/3:00 - - Calendar events are used by timer units, see --- -1.7.9.2 - diff --git a/0002-man-note-that-entire-sections-can-now-be-ignored.patch b/0002-man-note-that-entire-sections-can-now-be-ignored.patch deleted file mode 100644 index 2db35728..00000000 --- a/0002-man-note-that-entire-sections-can-now-be-ignored.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 2bcc2523711e69e6daa744641e56ed8b78646676 Mon Sep 17 00:00:00 2001 -From: Michael Marineau -Date: Sat, 17 May 2014 16:09:08 -0700 -Subject: [PATCH] man: note that entire sections can now be ignored - -Prefixing a section name with "X-" will cause it and all of its contents -to be silently ignored as of commit 342aea19. ---- - man/systemd.unit.xml | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 157530b..e903156 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -139,10 +139,12 @@ - Unit files may contain additional options on top - of those listed here. If systemd encounters an unknown - option, it will write a warning log message but -- continue loading the unit. If an option is prefixed -- with , it is ignored completely by -- systemd. Applications may use this to include -- additional information in the unit files. -+ continue loading the unit. If an option or section name -+ is prefixed with , it is ignored -+ completely by systemd. Options within an ignored -+ section do not need the prefix. Applications may use -+ this to include additional information in the unit -+ files. - - Boolean arguments used in unit files can be - written in various formats. For positive settings the --- -1.7.9.2 - diff --git a/0002-man-tmpfiles.d-recommend-using-b-and-c.patch b/0002-man-tmpfiles.d-recommend-using-b-and-c.patch deleted file mode 100644 index bb6c70d2..00000000 --- a/0002-man-tmpfiles.d-recommend-using-b-and-c.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210-mod/man/tmpfiles.d.xml ---- systemd-210/man/tmpfiles.d.xml 2014-12-16 10:16:51.269189374 +0100 -+++ systemd-210-mod/man/tmpfiles.d.xml 2014-12-16 10:39:49.937552189 +0100 -@@ -158,12 +158,18 @@ - - - c -- Create a character device node if it does not exist yet. -+ Create a character device node if it does not exist yet. -+ It is recommended to suffix this entry with an exclamation mark to only -+ create static device nodes at boot, as udev will not manage static device -+ nodes that are created at runtime. - - - - b -- Create a block device node if it does not exist yet. -+ Create a block device node if it does not exist yet. -+ It is recommended to suffix this entry with an exclamation mark to only -+ create static device nodes at boot, as udev will not manage static device -+ nodes that re created at runtime. - - - diff --git a/0002-manager-flush-memory-stream-before-using-the-buffer.patch b/0002-manager-flush-memory-stream-before-using-the-buffer.patch deleted file mode 100644 index 39ca371c..00000000 --- a/0002-manager-flush-memory-stream-before-using-the-buffer.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b2cdc6664ef6b56e47d38649d69b9943d9f9f5d0 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 7 Mar 2014 14:43:59 +0100 -Subject: [PATCH] manager: flush memory stream before using the buffer - -When the manager receives a SIGUSR2 signal, it opens a memory stream -with open_memstream(), uses the returned file handle for logging, and -dumps the logged content with log_dump(). - -However, the char* buffer is only safe to use after the file handle has -been flushed with fflush, as the man pages states: - - When the stream is closed (fclose(3)) or flushed (fflush(3)), the - locations pointed to by ptr and sizeloc are updated to contain, - respectively, a pointer to the buffer and the current size of the - buffer. - These values remain valid only as long as the caller performs no - further output on the stream. If further output is performed, then the - stream must again be flushed before trying to access these variables. - -Without that call, dump remains NULL and the daemon crashes in -log_dump(). ---- - src/core/manager.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/core/manager.c src/core/manager.c -index 27a1cc6..78f4f3d 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -1621,6 +1621,11 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t - break; - } - -+ if (fflush(f)) { -+ log_warning("Failed to flush status stream"); -+ break; -+ } -+ - log_dump(LOG_INFO, dump); - break; - } --- -1.7.9.2 - diff --git a/0002-namespace-fix-uninitialized-memory-access.patch b/0002-namespace-fix-uninitialized-memory-access.patch deleted file mode 100644 index bb6ea8ea..00000000 --- a/0002-namespace-fix-uninitialized-memory-access.patch +++ /dev/null @@ -1,28 +0,0 @@ -Based on 002b226843e77630128da580225f9c3ef8474db2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 16:27:53 +0200 -Subject: [PATCH] namespace: fix uninitialized memory access - ---- - src/core/namespace.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- src/core/namespace.c -+++ src/core/namespace.c 2014-07-04 00:00:00.000000000 +0000 -@@ -68,6 +68,7 @@ static int append_mounts(BindMount **p, - STRV_FOREACH(i, strv) { - - (*p)->ignore = false; -+ (*p)->done = false; - - if ((mode == INACCESSIBLE || mode == READONLY) && (*i)[0] == '-') { - (*p)->ignore = true; -@@ -298,7 +299,7 @@ int setup_namespace( - private_dev; - - if (n > 0) { -- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); -+ m = mounts = (BindMount *) alloca0(n * sizeof(BindMount)); - r = append_mounts(&m, read_write_dirs, READWRITE); - if (r < 0) - return r; diff --git a/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch b/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch deleted file mode 100644 index dfbf403c..00000000 --- a/0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch +++ /dev/null @@ -1,122 +0,0 @@ -Based on 6d313367d9ef780560e117e886502a99fa220eac Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 5 Jun 2014 21:35:35 +0200 -Subject: [PATCH] namespace: when setting up an inaccessible mount point, - unmounting everything below - -This has the benefit of not triggering any autofs mount points -unnecessarily. - ---- - src/core/namespace.c | 6 ++++ - src/shared/util.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ - src/shared/util.h | 2 + - 3 files changed, 76 insertions(+) - ---- src/core/namespace.c -+++ src/core/namespace.c 2014-06-11 00:00:00.000000000 +0000 -@@ -220,6 +220,12 @@ static int apply_mount( - return mount_dev(m); - - case INACCESSIBLE: -+ -+ /* First, get rid of everything that is below if there -+ * is anything... Then, overmount it with an -+ * inaccessible directory. */ -+ umount_recursive(m->path, 0); -+ - what = "/run/systemd/inaccessible"; - break; - ---- src/shared/util.c -+++ src/shared/util.c 2014-06-11 00:00:00.000000000 +0000 -@@ -54,6 +54,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -4635,6 +4636,73 @@ char *strjoin(const char *x, ...) { - return r; - } - -+int umount_recursive(const char *prefix, int flags) { -+ bool again; -+ int n = 0, r; -+ -+ /* Try to umount everything recursively below a -+ * directory. Also, take care of stacked mounts, and keep -+ * unmounting them until they are gone. */ -+ -+ do { -+ _cleanup_fclose_ FILE *proc_self_mountinfo = NULL; -+ -+ again = false; -+ r = 0; -+ -+ proc_self_mountinfo = fopen("/proc/self/mountinfo", "re"); -+ if (!proc_self_mountinfo) -+ return -errno; -+ -+ for (;;) { -+ _cleanup_free_ char *path = NULL, *p = NULL; -+ int k; -+ -+ k = fscanf(proc_self_mountinfo, -+ "%*s " /* (1) mount id */ -+ "%*s " /* (2) parent id */ -+ "%*s " /* (3) major:minor */ -+ "%*s " /* (4) root */ -+ "%ms " /* (5) mount point */ -+ "%*s" /* (6) mount options */ -+ "%*[^-]" /* (7) optional fields */ -+ "- " /* (8) separator */ -+ "%*s " /* (9) file system type */ -+ "%*s" /* (10) mount source */ -+ "%*s" /* (11) mount options 2 */ -+ "%*[^\n]", /* some rubbish at the end */ -+ &path); -+ -+ if (k != 1) { -+ if (k == EOF) -+ break; -+ -+ continue; -+ } -+ -+ p = cunescape(path); -+ if (!p) -+ return -ENOMEM; -+ -+ if (!path_startswith(p, prefix)) -+ continue; -+ -+ if (umount2(p, flags) < 0) { -+ r = -errno; -+ continue; -+ } -+ -+ again = true; -+ n++; -+ -+ break; -+ } -+ -+ } while (again); -+ -+ return r ? r : n; -+} -+ - bool is_main_thread(void) { - static thread_local int cached = 0; - ---- src/shared/util.h -+++ src/shared/util.h 2014-06-11 10:10:08.000000000 +0000 -@@ -890,3 +890,5 @@ union file_handle_union { - struct file_handle handle; - char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; - }; -+ -+int umount_recursive(const char *target, int flags); diff --git a/0002-nspawn-restore-journal-directory-is-empty-check.patch b/0002-nspawn-restore-journal-directory-is-empty-check.patch deleted file mode 100644 index c3d60bd4..00000000 --- a/0002-nspawn-restore-journal-directory-is-empty-check.patch +++ /dev/null @@ -1,30 +0,0 @@ -From cdb2b9d05a2f3d649f47bd2ba24eb3fe30b52e92 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 May 2014 15:19:46 +0900 -Subject: [PATCH] nspawn: restore journal directory is empty check - -This undoes part of commit e6a4a517befe559adf6d1dbbadf425c3538849c9. - -Instead of removing the error message about non-empty journal bind mount -directories, simply downgrade the message to a warning and proceed. ---- - src/nspawn/nspawn.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index ef84664..eb9c5e0 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1143,6 +1143,9 @@ static int setup_journal(const char *directory) { - } else if (access(p, F_OK) < 0) - return 0; - -+ if (dir_is_empty(q) == 0) -+ log_warning("%s is not empty, proceeding anyway.", q); -+ - r = mkdir_p(q, 0755); - if (r < 0) { - log_error("Failed to create %s: %m", q); --- -1.7.9.2 - diff --git a/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch b/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch deleted file mode 100644 index 06a4521c..00000000 --- a/0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 85c08dc013f9f99b58bc9b79284af0b35304237b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 13 May 2014 16:35:34 +0200 -Subject: [PATCH] pam_systemd: use F_DUPFD_CLOEXEC when dupping session fds - -http://lists.freedesktop.org/archives/systemd-devel/2014-May/019034.html ---- - src/login/pam-module.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/pam-module.c src/login/pam-module.c -index 9873dd5..1259457 100644 ---- src/login/pam-module.c -+++ src/login/pam-module.c -@@ -475,7 +475,7 @@ _public_ PAM_EXTERN int pam_sm_open_session( - } - - if (session_fd >= 0) { -- session_fd = dup(session_fd); -+ session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3); - if (session_fd < 0) { - pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m"); - return PAM_SESSION_ERR; --- -1.7.9.2 - diff --git a/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch b/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch deleted file mode 100644 index 67ad0284..00000000 --- a/0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch +++ /dev/null @@ -1,116 +0,0 @@ -Based on 4844262f25a3ff6bd23de05a0a6f84a8e2983d74 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 3 Dec 2014 02:02:11 +0100 -Subject: [PATCH] rfkill: rework how we generate file names from rfkill - devices - -Generate the file name from ID_PATH plus the rfkill type (wlan, -bluetooth, ...) and ignore the rfkill device name, since it apparently -is not a stable identifier. - -Also, ensure that devices disappearing don't result in broken services, -simply exit cleanly. ---- - src/rfkill/rfkill.c | 47 ++++++++++++++++++++++++----------------------- - 1 file changed, 24 insertions(+), 23 deletions(-) - ---- src/rfkill/rfkill.c -+++ src/rfkill/rfkill.c 2014-12-05 12:05:59.053518122 +0000 -@@ -28,8 +28,8 @@ - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_device_unref_ struct udev_device *device = NULL; -- _cleanup_free_ char *saved = NULL, *escaped_name = NULL, *escaped_path_id = NULL; -- const char *name, *path_id; -+ _cleanup_free_ char *saved = NULL, *escaped_type = NULL, *escaped_path_id = NULL; -+ const char *name, *type, *path_id; - int r; - - if (argc != 3) { -@@ -55,25 +55,28 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- errno = 0; - device = udev_device_new_from_subsystem_sysname(udev, "rfkill", argv[2]); - if (!device) { -- if (errno != 0) -- log_error("Failed to get rfkill device '%s': %m", argv[2]); -- else -- log_oom(); -- -- return EXIT_FAILURE; -+ log_debug("Failed to get rfkill device '%s', ignoring: %m", argv[2]); -+ return EXIT_SUCCESS; - } - - name = udev_device_get_sysattr_value(device, "name"); - if (!name) { -- log_error("rfkill device has no name?"); -- return EXIT_FAILURE; -+ log_error("rfkill device has no name? Ignoring device."); -+ return EXIT_SUCCESS; -+ } -+ -+ log_debug("Operating on rfkill device '%s'.", name); -+ -+ type = udev_device_get_sysattr_value(device, "type"); -+ if (!type) { -+ log_error("rfkill device has no type? Ignoring device."); -+ return EXIT_SUCCESS; - } - -- escaped_name = cescape(name); -- if (!escaped_name) { -+ escaped_type = cescape(type); -+ if (!escaped_type) { - log_oom(); - return EXIT_FAILURE; - } -@@ -86,9 +89,9 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_name, NULL); -+ saved = strjoin("/var/lib/systemd/rfkill/", escaped_path_id, ":", escaped_type, NULL); - } else -- saved = strjoin("/var/lib/systemd/rfkill/", escaped_name, NULL); -+ saved = strjoin("/var/lib/systemd/rfkill/", escaped_type, NULL); - - if (!saved) { - log_oom(); -@@ -102,19 +105,17 @@ int main(int argc, char *argv[]) { - return EXIT_SUCCESS; - - r = read_one_line_file(saved, &value); -+ if (r == -ENOENT) -+ return EXIT_SUCCESS; - if (r < 0) { -- -- if (r == -ENOENT) -- return EXIT_SUCCESS; -- - log_error("Failed to read %s: %s", saved, strerror(-r)); - return EXIT_FAILURE; - } - - r = udev_device_set_sysattr_value(device, "soft", value); - if (r < 0) { -- log_error("Failed to write system attribute: %s", strerror(-r)); -- return EXIT_FAILURE; -+ log_debug("Failed to write 'soft' attribute on rfkill device, ignoring: %s", strerror(-r)); -+ return EXIT_SUCCESS; - } - - } else if (streq(argv[1], "save")) { -@@ -122,8 +123,8 @@ int main(int argc, char *argv[]) { - - value = udev_device_get_sysattr_value(device, "soft"); - if (!value) { -- log_error("Failed to read system attribute: %s", strerror(-r)); -- return EXIT_FAILURE; -+ log_debug("Failed to read system attribute, ignoring device: %s", strerror(-r)); -+ return EXIT_SUCCESS; - } - - r = write_string_file(saved, value); diff --git a/0002-shell-completion-prevent-mangling-unit-names.patch b/0002-shell-completion-prevent-mangling-unit-names.patch deleted file mode 100644 index 9d8b1324..00000000 --- a/0002-shell-completion-prevent-mangling-unit-names.patch +++ /dev/null @@ -1,67 +0,0 @@ -Based on 6d314eca15f6cbda38d82774b210f784d3d4f52a Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Sat, 26 Jul 2014 11:15:52 -0400 -Subject: [PATCH] shell-completion: prevent mangling unit names - -Units with literal hex '\xFF' in their names has to be read -and printed properly. -dev-disk-byx2dlabel-root.device != dev-disk-by\x2dlabel-root.device ---- - shell-completion/zsh/_systemctl.in | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git shell-completion/zsh/_systemctl.in shell-completion/zsh/_systemctl.in -index d364d17..e681ec6 100644 ---- shell-completion/zsh/_systemctl -+++ shell-completion/zsh/_systemctl -@@ -100,7 +100,7 @@ _systemctl_all_units() - if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) && - ! _retrieve_cache SYS_ALL_UNITS; - then -- _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo " $a"; done; }) ) -+ _sys_all_units=( $(__systemctl list-units --all | { while read -r a b; do echo -E - " $a"; done; }) ) - _store_cache SYS_ALL_UNITS _sys_all_units - fi - } -@@ -113,7 +113,7 @@ _systemctl_really_all_units() - if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) && - ! _retrieve_cache SYS_REALLY_ALL_UNITS; - then -- all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo " $a"; done; }) ) -+ all_unit_files=( $(__systemctl list-unit-files | { while read -r a b; do echo -E - " $a"; done; }) ) - _systemctl_all_units - really_all_units=($_sys_all_units $all_unit_files) - _sys_really_all_units=(${(u)really_all_units}) -@@ -138,12 +138,12 @@ _filter_units_by_property() { - done - } - --_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo " $a"; done; }) )} --_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )} --_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )} --_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )} --_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )} --_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )} -+_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} -+_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )} -+_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} -+_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} -+_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} -+_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )} - - # Completion functions for ALL_UNITS - for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies ; do -@@ -219,8 +219,8 @@ for fun in restart reload-or-restart ; do - { - _systemctl_all_units - compadd "$@" - $( _filter_units_by_property CanStart yes \ -- ${_sys_all_units[*]} | while read line; do \ -- [[ "$line" =~ \.device$ ]] || echo " $line"; \ -+ ${_sys_all_units[*]} | while read -r line; do \ -+ [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \ - done ) - } - done --- -1.7.9.2 - diff --git a/0002-shell-completion-propose-templates-for-disable-re-en.patch b/0002-shell-completion-propose-templates-for-disable-re-en.patch deleted file mode 100644 index 3a58e013..00000000 --- a/0002-shell-completion-propose-templates-for-disable-re-en.patch +++ /dev/null @@ -1,111 +0,0 @@ -Based on e9a19bd882ff8a2c8aef5c63b39525ea231e5fb9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 14 Oct 2014 21:10:02 -0400 -Subject: [PATCH] shell-completion: propose templates for - disable/[re]enable/[re]start - -Templates can be [re]enabled, on their own if the have DefaultInstance set, -and with an instance suffix in all cases. Propose just the template name -ending in @, to underline the instance suffix may have to be appended. - -Likewise for start/restart. - -This means that sometimes superflous units that one will not really -want to operate on will be proposed, but this seems better than -proposing a very incomplete set of names. - -https://bugs.freedesktop.org/show_bug.cgi?id=66912 ---- - shell-completion/bash/systemctl | 15 +++++++++++---- - shell-completion/zsh/_systemctl | 20 +++++++++++++------- - 2 files changed, 24 insertions(+), 11 deletions(-) - ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -53,6 +53,9 @@ __filter_units_by_property () { - - __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ - | { while read -r a b; do echo " $a"; done; }; } -+__get_template_names () { __systemctl $1 list-unit-files \ -+ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; } -+ - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } - __get_startable_units () { -@@ -169,22 +172,26 @@ _systemctl () { - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then -- comps=$( __get_disabled_units $mode ) -+ comps=$( __get_disabled_units $mode; -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then - comps=$( __get_disabled_units $mode; -- __get_enabled_units $mode ) -+ __get_enabled_units $mode; -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -- $( __get_startable_units $mode)) -+ $( __get_startable_units $mode); -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -- $( __get_restartable_units $mode)) -+ $( __get_restartable_units $mode); \ -+ __get_template_names $mode) - compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then ---- shell-completion/zsh/_systemctl -+++ shell-completion/zsh/_systemctl -@@ -139,6 +139,8 @@ _filter_units_by_property() { - } - - _systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } } -+_systemctl_get_template_names() { __systemctl list-unit-files | { while read -r a b; do [[ $a =~ @\. ]] && echo -E - " ${a%%@.*}@"; done; } } -+ - - _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} - _systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )} -@@ -158,20 +160,24 @@ for fun in is-active is-failed is-enabled status show cat mask preset help list- - done - - # Completion functions for ENABLED_UNITS --for fun in disable reenable ; do -- (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() -- { -+(( $+functions[_systemctl_disable] )) || _systemctl_disable() -+{ -+ _systemctl_enabled_units -+ compadd "$@" -a - _sys_enabled_units -+} -+ -+(( $+functions[_systemctl_reenable] )) || _systemctl_reenable() -+{ - _systemctl_enabled_units - _systemctl_disabled_units -- compadd "$@" -a - _sys_enabled_units _sys_disabled_units -- } --done -+ compadd "$@" -a - _sys_enabled_units _sys_disabled_units $(_systemctl_get_template_names) -+} - - # Completion functions for DISABLED_UNITS - (( $+functions[_systemctl_enable] )) || _systemctl_enable() - { - _systemctl_disabled_units -- compadd "$@" -a - _sys_disabled_units -+ compadd "$@" -a - _sys_disabled_units $(_systemctl_get_template_names) - } - - # Completion functions for FAILED_UNITS --- -1.7.9.2 - diff --git a/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch b/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch deleted file mode 100644 index 12ad7d2d..00000000 --- a/0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch +++ /dev/null @@ -1,70 +0,0 @@ -Based on 4b5d8d0f22ae61ceb45a25391354ba53b43ee992 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 6 Nov 2014 22:24:13 +0100 -Subject: [PATCH] shutdown: fix arguments to /run/initramfs/shutdown - -Our initrd interface specifies that the verb is in argv[1]. -This is where systemd passes it to systemd-shutdown, but getopt -permutes argv[]. This confuses dracut's shutdown script: - Shutdown called with argument '--log-level'. Rebooting! - -getopt can be convinced to not permute argv[] by having '-' as the first -character of optstring. Let's use it. This requires changing the way -non-option arguments (in our case, the verb) are processed. - -This fixes a bug where the system would reboot instead of powering off. ---- - src/core/shutdown.c | 24 +++++++++++------------- - 1 file changed, 11 insertions(+), 13 deletions(-) - ---- src/core/shutdown.c -+++ src/core/shutdown.c 2014-11-10 14:14:20.869519112 +0000 -@@ -75,9 +75,9 @@ static int parse_argv(int argc, char *ar - assert(argc >= 1); - assert(argv); - -- opterr = 0; -- -- while ((c = getopt_long(argc, argv, ":", options, NULL)) >= 0) -+ /* "-" prevents getopt from permuting argv[] and moving the verb away -+ * from argv[1]. Our interface to initrd promises it'll be there. */ -+ while ((c = getopt_long(argc, argv, "-", options, NULL)) >= 0) - switch (c) { - - case ARG_LOG_LEVEL: -@@ -115,27 +115,25 @@ static int parse_argv(int argc, char *ar - - break; - -- case '?': -- log_error("Unknown option %s.", argv[optind-1]); -- return -EINVAL; -+ case '\001': -+ if (!arg_verb) -+ arg_verb = optarg; -+ else -+ log_error("Excess arguments, ignoring"); -+ break; - -- case ':': -- log_error("Missing argument to %s.", argv[optind-1]); -+ case '?': - return -EINVAL; - - default: - assert_not_reached("Unhandled option code."); - } - -- if (optind >= argc) { -+ if (!arg_verb) { - log_error("Verb argument missing."); - return -EINVAL; - } - -- arg_verb = argv[optind]; -- -- if (optind + 1 < argc) -- log_error("Excess arguments, ignoring"); - return 0; - } - diff --git a/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch b/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch deleted file mode 100644 index 73a98020..00000000 --- a/0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch +++ /dev/null @@ -1,36 +0,0 @@ -Based on a2726e5cedfa5edeabd7e0784be11bc578555ac5 Mon Sep 17 00:00:00 2001 -From: Marius Tessmann -Date: Fri, 29 Aug 2014 17:51:45 +0200 -Subject: [PATCH] shutdown: pass own argv to /run/initramfs/shutdown - -Since commit b1e90ec515408aec2702522f6f68c4920b56375b systemd passes -its log settings to systemd-shutdown via command line parameters. -However, systemd-shutdown doesn't pass these parameters to -/run/initramfs/shutdown, causing it to fall back to the default log -settings. - -This fixes the following bugs about the shutdown not being quiet -despite "quiet" being in the kernel parameters: - -https://bugs.freedesktop.org/show_bug.cgi?id=79582 -https://bugs.freedesktop.org/show_bug.cgi?id=57216 ---- - src/core/shutdown.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/shutdown.c -+++ src/core/shutdown.c 2014-10-24 12:32:44.704337960 +0000 -@@ -377,11 +377,11 @@ int main(int argc, char *argv[]) { - - if (prepare_new_root() >= 0 && - pivot_to_new_root() >= 0) { -- arguments[0] = (char*) "/shutdown"; -+ argv[0] = (char*) "/shutdown"; - - log_info("Returning to initrd..."); - -- execv("/shutdown", arguments); -+ execv("/shutdown", argv); - log_error("Failed to execute shutdown binary: %m"); - } - } diff --git a/0002-snapshot-return-error-when-snapshot-exists.patch b/0002-snapshot-return-error-when-snapshot-exists.patch deleted file mode 100644 index 4a7fcfb3..00000000 --- a/0002-snapshot-return-error-when-snapshot-exists.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7cabba07745b388497e8c0fc19b61984167fd474 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 28 Oct 2014 12:36:17 -0400 -Subject: [PATCH] snapshot: return error when snapshot exists - ---- - src/core/snapshot.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/snapshot.c src/core/snapshot.c -index 5eed615..c2678cb 100644 ---- src/core/snapshot.c -+++ src/core/snapshot.c -@@ -208,7 +208,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, sd_bus_error *e, - return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Unit name %s lacks snapshot suffix.", name); - - if (manager_get_unit(m, name)) -- sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); -+ return sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); - - } else { - --- -1.7.9.2 - diff --git a/0002-switch-root-umount-the-old-root-correctly.patch b/0002-switch-root-umount-the-old-root-correctly.patch deleted file mode 100644 index df79c8f0..00000000 --- a/0002-switch-root-umount-the-old-root-correctly.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 23f25b1496c31ef4c20b8f3ee8328f7b1d5f3a54 Mon Sep 17 00:00:00 2001 -From: Dan Dedrick -Date: Tue, 29 Jul 2014 15:31:23 -0400 -Subject: [PATCH] switch-root: umount the old root correctly - -The unmount occurs after the pivot_root, so the path used to unmount -should take into account the new root directory. This will allow the -umount to actually succeed. ---- - src/core/switch-root.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/switch-root.c -+++ src/core/switch-root.c 2014-08-22 11:22:50.230735231 +0000 -@@ -122,9 +122,9 @@ int switch_root(const char *new_root) { - - /* Immediately get rid of the old root. Since we are - * running off it we need to do this lazily. */ -- if (umount2(temporary_old_root, MNT_DETACH) < 0) { -+ if (umount2("/mnt", MNT_DETACH) < 0) { - r = -errno; -- log_error("Failed to umount old root dir %s: %m", temporary_old_root); -+ log_error("Failed to umount old root dir /mnt: %m"); - goto fail; - } - diff --git a/0002-sysctl-replaces-some-slashes-with-dots.patch b/0002-sysctl-replaces-some-slashes-with-dots.patch deleted file mode 100644 index d46fd449..00000000 --- a/0002-sysctl-replaces-some-slashes-with-dots.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 2e573fcf8754fdfe0db0a783b1631ec1679b063a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Apr 2014 21:33:46 -0400 -Subject: [PATCH] sysctl: replaces some slashes with dots - -It turns out that plain sysctl understands a.b/c syntax to write to -/proc/sys/a/b.c. Support this for compatibility. - -https://bugs.freedesktop.org/show_bug.cgi?id=77466 ---- - man/sysctl.d.xml | 29 +++++++++++++++++++++-------- - src/sysctl/sysctl.c | 18 ++++++++++++++++-- - 2 files changed, 37 insertions(+), 10 deletions(-) - -diff --git man/sysctl.d.xml man/sysctl.d.xml -index 00a857b..db53b49 100644 ---- man/sysctl.d.xml -+++ man/sysctl.d.xml -@@ -68,13 +68,26 @@ - The configuration files contain a list of - variable assignments, separated by newlines. Empty - lines and lines whose first non-whitespace character -- is # or ; are ignored. -- -- Note that both / and . are accepted as label -- separators within sysctl variable -- names. kernel.domainname=foo and -- kernel/domainname=foo hence are -- entirely equivalent. -+ is # or ; are -+ ignored. -+ -+ Note that either / or -+ . may be used as separators within -+ sysctl variable names. If the first separator is a -+ slash, remaining slashes and dots are left intact. If -+ the first separator is a dot, dots and slashes are -+ interchanged. kernel.domainname=foo -+ and kernel/domainname=foo are -+ equivalent and will cause foo to -+ be written to -+ /proc/sys/kernel/domainname. -+ Either -+ net.ipv4.conf.enp3s0/200.forwarding -+ or -+ net/ipv4/conf/enp3s0.200/forwarding -+ may be used to refer to -+ /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. -+ - - Each configuration file shall be named in the - style of program.conf. -@@ -109,7 +122,7 @@ - early on boot. The network interface-specific options - will also be applied individually for each network - interface as it shows up in the system. (More -- specifically, that is -+ specifically, - net.ipv4.conf.*, - net.ipv6.conf.*, - net.ipv4.neigh.* and net.ipv6.neigh.*) -diff --git src/sysctl/sysctl.c src/sysctl/sysctl.c -index 283eefe..06defa5 100644 ---- src/sysctl/sysctl.c -+++ src/sysctl/sysctl.c -@@ -48,12 +48,26 @@ static const char conf_file_dirs[] = - #endif - ; - --static char *normalize_sysctl(char *s) { -+static char* normalize_sysctl(char *s) { - char *n; - -- for (n = s; *n; n++) -+ n = strpbrk(s, "/."); -+ /* If the first separator is a slash, the path is -+ * assumed to be normalized and slashes remain slashes -+ * and dots remains dots. */ -+ if (!n || *n == '/') -+ return s; -+ -+ /* Otherwise, dots become slashes and slashes become -+ * dots. Fun. */ -+ while (n) { - if (*n == '.') - *n = '/'; -+ else -+ *n = '.'; -+ -+ n = strpbrk(n + 1, "/."); -+ } - - return s; - } --- -1.7.9.2 - diff --git a/0002-systemctl-obey-state-in-list-unit-files.patch b/0002-systemctl-obey-state-in-list-unit-files.patch deleted file mode 100644 index aaa1cbf3..00000000 --- a/0002-systemctl-obey-state-in-list-unit-files.patch +++ /dev/null @@ -1,28 +0,0 @@ -From fec1530e6b5b8d6dc352c7338010357126e84621 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 29 Oct 2014 22:51:00 -0400 -Subject: [PATCH] systemctl: obey --state in list-unit-files - ---- - src/systemctl/systemctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index b71040b..8481a9b 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -1268,6 +1268,11 @@ next: - return false; - } - -+ if (!strv_isempty(arg_states)) { -+ if (!strv_find(arg_states, unit_file_state_to_string(u->state))) -+ return false; -+ } -+ - return true; - } - --- -1.7.9.2 - diff --git a/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch b/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch deleted file mode 100644 index 6a9cd2ac..00000000 --- a/0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c469089cf647ac740c7dcf09c463d2907b6d00eb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 22 Nov 2014 20:21:56 -0500 -Subject: [PATCH] systemctl: show BindsTo/BoundBy in list-dependencies - -Suggested-by: Peter Mattern - -http://lists.freedesktop.org/archives/systemd-devel/2014-November/025437.html ---- - src/systemctl/systemctl.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 78b7c96..fd69c69 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -1480,11 +1480,13 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha - "RequiresOverridable\0" - "Requisite\0" - "RequisiteOverridable\0" -- "Wants\0", -+ "Wants\0" -+ "BindsTo\0", - [DEPENDENCY_REVERSE] = "RequiredBy\0" - "RequiredByOverridable\0" - "WantedBy\0" -- "PartOf\0", -+ "PartOf\0" -+ "BoundBy\0", - [DEPENDENCY_AFTER] = "After\0", - [DEPENDENCY_BEFORE] = "Before\0", - }; --- -1.7.9.2 - diff --git a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch b/0002-systemctl-update-NAME-to-PATTERN-in-help.patch deleted file mode 100644 index fd9096b9..00000000 --- a/0002-systemctl-update-NAME-to-PATTERN-in-help.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b3ae710c251d0ce5cf2cef63208e325497b5e323 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Apr 2014 20:43:15 -0400 -Subject: [PATCH] systemctl: update NAME to PATTERN in help() - -Previously the man page was modified, but not help(). ---- - TODO | 2 ++ - src/systemctl/systemctl.c | 14 +++++++------- - 2 files changed, 9 insertions(+), 7 deletions(-) - -diff --git TODO TODO -index 4ff69ff..0343b94 100644 ---- TODO -+++ TODO -@@ -1,4 +1,6 @@ - Bugfixes: -+* Should systemctl status \* work on all unit types, not just .service? -+ - * enabling an instance unit creates a pointless link, and - the unit will be started with getty@getty.service: - $ systemctl enable getty@.service -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 6b88f85..653a324 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -5403,15 +5403,15 @@ static int systemctl_help(void) { - " otherwise restart if active\n" - " isolate NAME Start one unit and stop all others\n" - " kill NAME... Send signal to processes of a unit\n" -- " is-active NAME... Check whether units are active\n" -- " is-failed NAME... Check whether units are failed\n" -- " status [NAME...|PID...] Show runtime status of one or more units\n" -- " show [NAME...|JOB...] Show properties of one or more\n" -+ " is-active PATTERN... Check whether units are active\n" -+ " is-failed PATTERN... Check whether units are failed\n" -+ " status [PATTERN...|PID...] Show runtime status of one or more units\n" -+ " show [PATTERN...|JOB...] Show properties of one or more\n" - " units/jobs or the manager\n" -- " cat NAME... Show files and drop-ins of one or more units\n" -+ " cat PATTERN... Show files and drop-ins of one or more units\n" - " set-property NAME ASSIGNMENT... Sets one or more properties of a unit\n" -- " help NAME...|PID... Show manual for one or more units\n" -- " reset-failed [NAME...] Reset failed state for all, one, or more\n" -+ " help PATTERN...|PID... Show manual for one or more units\n" -+ " reset-failed [PATTERN...] Reset failed state for all, one, or more\n" - " units\n" - " list-dependencies [NAME] Recursively show units which are required\n" - " or wanted by this unit or by which this\n" --- -1.7.9.2 - diff --git a/0002-systemd-fix-error-message.patch b/0002-systemd-fix-error-message.patch deleted file mode 100644 index 778444a8..00000000 --- a/0002-systemd-fix-error-message.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 6ad3b2b62cbe34cc02ee98deb5f48047f5e42d26 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 30 Aug 2014 17:22:42 -0400 -Subject: [PATCH] systemd: fix error message - ---- - src/core/dbus-manager.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c 2014-09-01 12:51:33.266735961 +0000 -@@ -1114,7 +1114,7 @@ static int method_switch_root(sd_bus *bu - return r; - - if (m->running_as != SYSTEMD_SYSTEM) -- return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "KExec is only supported for system managers."); -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "Root switching is only supported by system manager."); - - r = sd_bus_message_read(message, "ss", &root, &init); - if (r < 0) -@@ -1125,7 +1125,7 @@ static int method_switch_root(sd_bus *bu - - /* Safety check */ - if (isempty(init)) { -- if (! path_is_os_tree(root)) -+ if (!path_is_os_tree(root)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified switch root path %s does not seem to be an OS tree. /etc/os-release is missing.", root); - } else { - _cleanup_free_ char *p = NULL; diff --git a/0002-systemd-try-harder-to-bind-to-notify-socket.patch b/0002-systemd-try-harder-to-bind-to-notify-socket.patch deleted file mode 100644 index d0277386..00000000 --- a/0002-systemd-try-harder-to-bind-to-notify-socket.patch +++ /dev/null @@ -1,44 +0,0 @@ -Based on e7bc519620cb7bcdbe2166fc2a446453769d827e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 16 Oct 2014 19:15:38 -0500 -Subject: [PATCH] systemd: try harder to bind to notify socket - -Without the socket open we are going to crash and burn. If for -whatever reason we fail during deserialization we will fail when -trying to open the socket. In this case it is better to unlink the old -socket and maybe lose some messages, than to continue without the -notification socket. - -Of course this situation should not happen, but we should handle -it as gracefully as possible anyway. - -https://bugzilla.redhat.com/show_bug.cgi?id=1099299 ---- - src/core/manager.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-10-20 13:47:21.035837897 +0000 -@@ -572,7 +572,21 @@ static int manager_setup_notify(Manager - r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)); - if (r < 0) { - log_error("bind(@%s) failed: %m", sa.un.sun_path+1); -- return -errno; -+ if (errno == EADDRINUSE) { -+ log_notice("Removing %s socket and trying again.", m->notify_socket); -+ r = unlink(m->notify_socket); -+ if (r < 0) { -+ log_error("Failed to remove %s: %m", m->notify_socket); -+ return -EADDRINUSE; -+ } -+ -+ r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)); -+ if (r < 0) { -+ log_error("bind(@%s) failed: %m", sa.un.sun_path+1); -+ return -errno; -+ } -+ } else -+ return -errno; - } - - r = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); diff --git a/0002-time-also-support-infinity-syntax-in-parse_nsec.patch b/0002-time-also-support-infinity-syntax-in-parse_nsec.patch deleted file mode 100644 index c1f4884c..00000000 --- a/0002-time-also-support-infinity-syntax-in-parse_nsec.patch +++ /dev/null @@ -1,40 +0,0 @@ -Based on e73c78c27511b03c7abc55aed87896092c0de699 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 19:07:26 +0200 -Subject: [PATCH] time: also support 'infinity' syntax in parse_nsec() - -Let's make parse_usec() and parse_nsec() work similar ---- - src/shared/time-util.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - ---- src/shared/time-util.c -+++ src/shared/time-util.c -@@ -773,7 +773,7 @@ int parse_nsec(const char *t, nsec_t *nsec) { - { "", 1ULL }, /* default is nsec */ - }; - -- const char *p; -+ const char *p, *s; - nsec_t r = 0; - bool something = false; - -@@ -781,6 +781,18 @@ int parse_nsec(const char *t, nsec_t *nsec) { - assert(nsec); - - p = t; -+ -+ p += strspn(p, WHITESPACE); -+ s = startswith(p, "infinity"); -+ if (s) { -+ s += strspn(s, WHITESPACE); -+ if (!*s != 0) -+ return -EINVAL; -+ -+ *nsec = ((nsec_t) -1); -+ return 0; -+ } -+ - for (;;) { - long long l, z = 0; - char *e; diff --git a/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch b/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch deleted file mode 100644 index 7fab49e6..00000000 --- a/0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 24119cf10c7ed58a8fc0851745149dcc6dd5757f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Mon, 29 Sep 2014 22:32:10 -0400 -Subject: [PATCH] udev/hwdb: New Entry for Dell XPS12 9Q33 keyboard - -https://bugs.freedesktop.org/show_bug.cgi?id=84437 ---- - hwdb/60-keyboard.hwdb | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 0ffcb83..8a1baa7 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -243,6 +243,11 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - KEYBOARD_KEY_8c=!unknown - -+# Dell XPS12 9Q33 -+keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* -+ KEYBOARD_KEY_88=wlan -+ KEYBOARD_KEY_65=switchvideomode # Screen Rotate -+ - # Dell Latitude microphone mute - keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* - KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute --- -1.7.9.2 - diff --git a/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch b/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch deleted file mode 100644 index 58189d0f..00000000 --- a/0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch +++ /dev/null @@ -1,18 +0,0 @@ -Basedo n a55954297dade7b432fd3a4f328f23261621ff79 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 19 Jun 2014 19:53:16 +0200 -Subject: [PATCH] units: add missing caps so that GetAddresses() can work - ---- - units/systemd-machined.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- units/systemd-machined.service.in -+++ units/systemd-machined.service.in 2014-06-24 11:26:19.554235869 +0000 -@@ -15,5 +15,5 @@ After=machine.slice - [Service] - ExecStart=@rootlibexecdir@/systemd-machined - BusName=org.freedesktop.machine1 --CapabilityBoundingSet=CAP_KILL -+CapabilityBoundingSet=CAP_KILL CAP_SYS_PTRACE CAP_SYS_ADMIN CAP_SETGID - WatchdogSec=1min diff --git a/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch b/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch deleted file mode 100644 index 6bc06d23..00000000 --- a/0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 66f311206e908a5b6f21e66fad73e1e5ea3e31d6 Mon Sep 17 00:00:00 2001 -From: Ivan Shapovalov -Date: Wed, 27 Aug 2014 00:17:43 +0400 -Subject: [PATCH] units: order systemd-fsck@.service after - local-fs-pre.target. - -With this change, it becomes possible to order a unit to activate before any -modifications to the file systems. This is especially useful for supporting -resume from hibernation. ---- - units/systemd-fsck@.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git units/systemd-fsck@.service.in units/systemd-fsck@.service.in -index c12efa8..d2cda6a 100644 ---- units/systemd-fsck@.service.in -+++ units/systemd-fsck@.service.in -@@ -10,7 +10,7 @@ Description=File System Check on %f - Documentation=man:systemd-fsck@.service(8) - DefaultDependencies=no - BindsTo=%i.device --After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service local-fs-pre.target - Before=shutdown.target - - [Service] --- -1.7.9.2 - diff --git a/0002-units-serial-getty-.service-use-the-default-RestartS.patch b/0002-units-serial-getty-.service-use-the-default-RestartS.patch deleted file mode 100644 index 3945e4cd..00000000 --- a/0002-units-serial-getty-.service-use-the-default-RestartS.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 4bf04322b8b7ecca4f3d65cfc642d0ac16356129 Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Tue, 15 Jul 2014 18:28:10 +0200 -Subject: [PATCH] units/serial-getty@.service: use the default RestartSec - -For pluggable ttys such as USB serial devices, the getty is restarted -and exits in a loop until the remove event reaches systemd. Under -certain circumstances the restart loop can overload the system in a -way that prevents the remove event from reaching systemd for a long -time (e.g. at least several minutes on a small embedded system). - -Use the default RestartSec to prevent the restart loop from -overloading the system. Serial gettys are interactive units, so -waiting an extra 100ms really doesn't make a difference anyways -compared to the time it takes the user to log in. ---- - units/serial-getty@.service.m4 | 1 - - 1 file changed, 1 deletion(-) - ---- units/serial-getty@.service.m4 -+++ units/serial-getty@.service.m4 2014-07-16 00:00:00.000000000 +0000 -@@ -27,7 +27,6 @@ ExecStart=-/sbin/agetty --keep-baud %I 1 - ExecStopPost=-/sbin/vhangup /dev/%I - Type=idle - Restart=always --RestartSec=0 - UtmpIdentifier=%I - TTYPath=/dev/%I - TTYReset=yes diff --git a/0002-util-avoid-non-portable-__WORDSIZE.patch b/0002-util-avoid-non-portable-__WORDSIZE.patch deleted file mode 100644 index 7c82d91c..00000000 --- a/0002-util-avoid-non-portable-__WORDSIZE.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 8507eb20b64010b26f23822cbf442bb0bf96511c Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Fri, 19 Sep 2014 20:26:53 +0200 -Subject: [PATCH] util: avoid non-portable __WORDSIZE - -Lets not unnecessarily rely on __WORDSIZE, which is not clearly specified -by any spec. Use explicit size comparisons if we're not interested in the -WORDSIZE, anyway. - -(David: adjust commit message to explain why we do this) ---- - src/shared/util.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/shared/util.h -+++ src/shared/util.h 2014-09-24 06:58:11.378235669 +0000 -@@ -166,7 +166,7 @@ int safe_atolli(const char *s, long long - - int safe_atod(const char *s, double *ret_d); - --#if __WORDSIZE == 32 -+#if LONG_MAX == INT_MAX - static inline int safe_atolu(const char *s, unsigned long *ret_u) { - assert_cc(sizeof(unsigned long) == sizeof(unsigned)); - return safe_atou(s, (unsigned*) ret_u); diff --git a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch b/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch deleted file mode 100644 index 7dd59ed5..00000000 --- a/0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 6294aa76d818e831de4592b41a37e225fd0871f9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 12:04:55 +0200 -Subject: [PATCH] util: don't consider tabs special in string_has_cc() anymore - -Instead, take a list of exceptions to our usual CC check ---- - src/hostname/hostnamed.c | 3 +-- - src/shared/env-util.c | 4 +++- - src/shared/fileio.c | 2 +- - src/shared/util.c | 19 ++++++++++--------- - src/shared/util.h | 5 +++-- - 5 files changed, 18 insertions(+), 15 deletions(-) - -Index: src/hostname/hostnamed.c -=================================================================== ---- src/hostname/hostnamed.c.orig -+++ src/hostname/hostnamed.c -@@ -507,8 +507,7 @@ static int set_machine_info(Context *c, - - if (prop == PROP_ICON_NAME && !filename_is_safe(name)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); -- if (prop == PROP_PRETTY_HOSTNAME && -- (string_has_cc(name) || chars_intersect(name, "\t"))) -+ if (prop == PROP_PRETTY_HOSTNAME && string_has_cc(name, NULL)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); - if (prop == PROP_CHASSIS && !valid_chassis(name)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name); -Index: src/shared/env-util.c -=================================================================== ---- src/shared/env-util.c.orig -+++ src/shared/env-util.c -@@ -78,7 +78,9 @@ bool env_value_is_valid(const char *e) { - if (!utf8_is_valid(e)) - return false; - -- if (string_has_cc(e)) -+ /* bash allows tabs in environment variables, and so should -+ * we */ -+ if (string_has_cc(e, "\t")) - return false; - - /* POSIX says the overall size of the environment block cannot -Index: src/shared/fileio.c -=================================================================== ---- src/shared/fileio.c.orig -+++ src/shared/fileio.c -@@ -658,7 +658,7 @@ static void write_env_var(FILE *f, const - p++; - fwrite(v, 1, p-v, f); - -- if (string_has_cc(p) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { -+ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { - fputc('\"', f); - - for (; *p; p++) { -Index: src/shared/util.c -=================================================================== ---- src/shared/util.c.orig -+++ src/shared/util.c -@@ -5466,16 +5466,14 @@ bool filename_is_safe(const char *p) { - bool string_is_safe(const char *p) { - const char *t; - -- assert(p); -+ if (!p) -+ return false; - - for (t = p; *t; t++) { - if (*t > 0 && *t < ' ') - return false; - -- if (*t == 127) -- return false; -- -- if (strchr("\\\"\'", *t)) -+ if (strchr("\\\"\'\0x7f", *t)) - return false; - } - -@@ -5483,16 +5481,19 @@ bool string_is_safe(const char *p) { - } - - /** -- * Check if a string contains control characters. -- * Spaces and tabs are not considered control characters. -+ * Check if a string contains control characters. If 'ok' is non-NULL -+ * it may be a string containing additional CCs to be considered OK. - */ --bool string_has_cc(const char *p) { -+bool string_has_cc(const char *p, const char *ok) { - const char *t; - - assert(p); - - for (t = p; *t; t++) { -- if (*t > 0 && *t < ' ' && *t != '\t') -+ if (ok && strchr(ok, *t)) -+ return false; -+ -+ if (*t > 0 && *t < ' ') - return true; - - if (*t == 127) -Index: src/shared/util.h -=================================================================== ---- src/shared/util.h.orig -+++ src/shared/util.h -@@ -652,7 +652,7 @@ _alloc_(2, 3) static inline void *memdup - bool filename_is_safe(const char *p) _pure_; - bool path_is_safe(const char *p) _pure_; - bool string_is_safe(const char *p) _pure_; --bool string_has_cc(const char *p) _pure_; -+bool string_has_cc(const char *p, const char *ok) _pure_; - - /** - * Check if a string contains any glob patterns. diff --git a/0002-util-fix-has-cc-check-and-add-test.patch b/0002-util-fix-has-cc-check-and-add-test.patch deleted file mode 100644 index f39ad16c..00000000 --- a/0002-util-fix-has-cc-check-and-add-test.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 1cb1767a29458b3d16d6b161b4ee34dd496ff60d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Jul 2014 09:21:15 -0400 -Subject: [PATCH] util: fix has cc check and add test - ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 3342798..75dc58b 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -5419,7 +5419,7 @@ bool string_has_cc(const char *p, const char *ok) { - - for (t = p; *t; t++) { - if (ok && strchr(ok, *t)) -- return false; -+ continue; - - if (*t > 0 && *t < ' ') - return true; --- -1.7.9.2 - diff --git a/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch b/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch deleted file mode 100644 index 9cd13c2d..00000000 --- a/0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch +++ /dev/null @@ -1,96 +0,0 @@ -Based on 8a7c93d858c342744adf481565d8bb03b9713dcf Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Aug 2014 21:42:20 +0200 -Subject: [PATCH] util: fix minimal race where we might miss SIGTERMs when - forking off an agent - -Before forking, block all signals, and unblock them afterwards. This way -the child will have them blocked, and we won't lose them. ---- - src/shared/util.c | 39 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 34 insertions(+), 5 deletions(-) - ---- src/shared/util.c -+++ src/shared/util.c 2014-08-28 10:32:06.442693437 +0000 -@@ -894,6 +894,18 @@ int reset_all_signal_handlers(void) { - return 0; - } - -+static int reset_signal_mask(void) { -+ sigset_t ss; -+ -+ if (sigemptyset(&ss) < 0) -+ return -errno; -+ -+ if (sigprocmask(SIG_SETMASK, &ss, NULL) < 0) -+ return -errno; -+ -+ return 0; -+} -+ - char *strstrip(char *s) { - char *e; - -@@ -5119,9 +5131,9 @@ int fd_inc_rcvbuf(int fd, size_t n) { - } - - int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *path, ...) { -- pid_t parent_pid, agent_pid; -- int fd; - bool stdout_is_tty, stderr_is_tty; -+ pid_t parent_pid, agent_pid; -+ sigset_t ss, saved_ss; - unsigned n, i; - va_list ap; - char **l; -@@ -5129,16 +5141,25 @@ int fork_agent(pid_t *pid, const int exc - assert(pid); - assert(path); - -- parent_pid = getpid(); -- - /* Spawns a temporary TTY agent, making sure it goes away when - * we go away */ - -+ parent_pid = getpid(); -+ -+ /* First we temporarily block all signals, so that the new -+ * child has them blocked initially. This way, we can be sure -+ * that SIGTERMs are not lost we might send to the agent. */ -+ assert_se(sigfillset(&ss) >= 0); -+ assert_se(sigprocmask(SIG_SETMASK, &ss, &saved_ss) >= 0); -+ - agent_pid = fork(); -- if (agent_pid < 0) -+ if (agent_pid < 0) { -+ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); - return -errno; -+ } - - if (agent_pid != 0) { -+ assert_se(sigprocmask(SIG_SETMASK, &saved_ss, NULL) >= 0); - *pid = agent_pid; - return 0; - } -@@ -5149,6 +5170,12 @@ int fork_agent(pid_t *pid, const int exc - if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) - _exit(EXIT_FAILURE); - -+ /* Make sure we actually can kill the agent, if we need to, in -+ * case somebody invoked us from a shell script that trapped -+ * SIGTERM or so... */ -+ reset_all_signal_handlers(); -+ reset_signal_mask(); -+ - /* Check whether our parent died before we were able - * to set the death signal */ - if (getppid() != parent_pid) -@@ -5161,6 +5188,8 @@ int fork_agent(pid_t *pid, const int exc - stderr_is_tty = isatty(STDERR_FILENO); - - if (!stdout_is_tty || !stderr_is_tty) { -+ int fd; -+ - /* Detach from stdout/stderr. and reopen - * /dev/tty for them. This is important to - * ensure that when systemctl is started via diff --git a/0002-util-remove-a-unnecessary-check.patch b/0002-util-remove-a-unnecessary-check.patch deleted file mode 100644 index ac7cdfb8..00000000 --- a/0002-util-remove-a-unnecessary-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 42646a8bf24be2c9280554c9d8540c67c835b3c4 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 16 Sep 2014 22:58:35 +0200 -Subject: [PATCH] util: remove a unnecessary check - -We only break out of the previous loop if fd >= 0 so there is no -use in checking it again. - -Found by coverity. Fixes: CID#1237577 ---- - src/shared/util.c | 3 --- - 1 file changed, 3 deletions(-) - ---- src/shared/util.c -+++ src/shared/util.c 2014-09-18 13:05:08.218236754 +0000 -@@ -1772,9 +1772,6 @@ int open_terminal(const char *name, int - c++; - } - -- if (fd < 0) -- return -errno; -- - r = isatty(fd); - if (r < 0) { - close_nointr_nofail(fd); diff --git a/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch b/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch deleted file mode 100644 index b202ce37..00000000 --- a/0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch +++ /dev/null @@ -1,74 +0,0 @@ -Based on e0a33e7ba619eb44f732aaf23cb249fa43d0ce8d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Jul 2014 13:42:25 +0200 -Subject: [PATCH] util: when unescaping strings, don't allow smuggling in of - additional NUL bytes - -Better safe than sorry. ---- - src/shared/util.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git src/shared/util.c src/shared/util.c -index ceafa01..4ad3f20 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1256,7 +1256,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre - a = unhexchar(f[1]); - b = unhexchar(f[2]); - -- if (a < 0 || b < 0) { -+ if (a < 0 || b < 0 || (a == 0 && b == 0)) { - /* Invalid escape code, let's take it literal then */ - *(t++) = '\\'; - *(t++) = 'x'; -@@ -1283,7 +1283,7 @@ char *cunescape_length_with_prefix(const char *s, size_t length, const char *pre - b = unoctchar(f[1]); - c = unoctchar(f[2]); - -- if (a < 0 || b < 0 || c < 0) { -+ if (a < 0 || b < 0 || c < 0 || (a == 0 && b == 0 && c == 0)) { - /* Invalid escape code, let's take it literal then */ - *(t++) = '\\'; - *(t++) = f[0]; -@@ -1566,8 +1566,7 @@ int chvt(int vt) { - - int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - struct termios old_termios, new_termios; -- char c; -- char line[LINE_MAX]; -+ char c, line[LINE_MAX]; - - assert(f); - assert(ret); -@@ -1604,9 +1603,10 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - } - } - -- if (t != (usec_t) -1) -+ if (t != (usec_t) -1) { - if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0) - return -ETIMEDOUT; -+ } - - if (!fgets(line, sizeof(line), f)) - return -EIO; -@@ -1624,6 +1624,7 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { - } - - int ask(char *ret, const char *replies, const char *text, ...) { -+ int r; - - assert(ret); - assert(replies); -@@ -1632,7 +1633,6 @@ int ask(char *ret, const char *replies, const char *text, ...) { - for (;;) { - va_list ap; - char c; -- int r; - bool need_nl = true; - - if (on_tty()) --- -1.7.9.2 - diff --git a/0002-vconsole-setup-run-setfont-before-loadkeys.patch b/0002-vconsole-setup-run-setfont-before-loadkeys.patch deleted file mode 100644 index 7ef05c2d..00000000 --- a/0002-vconsole-setup-run-setfont-before-loadkeys.patch +++ /dev/null @@ -1,167 +0,0 @@ -Based on abee28c56d523e55751b0c007d0bf812cc285c00 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Jul 2014 22:20:11 -0400 -Subject: [PATCH] vconsole-setup: run setfont before loadkeys - -https://bugs.freedesktop.org/show_bug.cgi?id=80685 - -For SUSE please note that this had been ported on top of the patches - * handle-disable_caplock-and-compose_table-and-kbd_rate.patch - * handle-numlock-value-in-etc-sysconfig-keyboard.patch -that is that now set_kbd_rate() will be called first before font_load(). -Then font_load() is followed by load_compose_table() and afterwards as -in the original commit the keymap_load() follows. - ---- - src/vconsole/vconsole-setup.c | 93 +++++++++++++++++++++--------------------- - 1 file changed, 47 insertions(+), 46 deletions(-) - -Index: src/vconsole/vconsole-setup.c -=================================================================== ---- src/vconsole/vconsole-setup.c.orig -+++ src/vconsole/vconsole-setup.c -@@ -340,23 +340,20 @@ static int set_kbd_rate(const char *vc, - - int main(int argc, char **argv) { - const char *vc; -- char *vc_keymap = NULL; -- char *vc_keymap_toggle = NULL; -- char *vc_font = NULL; -- char *vc_font_map = NULL; -- char *vc_font_unimap = NULL; -+ _cleanup_free_ char -+ *vc_keymap = NULL, *vc_keymap_toggle = NULL, -+ *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; -+ _cleanup_close_ int fd = -1; - #ifdef HAVE_SYSV_COMPAT -- char *vc_kbd_delay = NULL; -- char *vc_kbd_rate = NULL; -- char *vc_kbd_disable_caps_lock = NULL; -- char *vc_kbd_numlock = NULL; -- char *vc_compose_table = NULL; -+ _cleanup_free_ char -+ *vc_kbd_numlock = NULL, *vc_kbd_delay = NULL, -+ *vc_kbd_rate = NULL, * vc_kbd_disable_caps_lock = NULL, -+ *vc_compose_table = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; -+ bool numlock = false; - #endif -- int fd = -1; - bool utf8; - bool disable_capslock = false; -- bool numlock = false; - pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -377,12 +374,12 @@ int main(int argc, char **argv) { - fd = open_terminal(vc, O_RDWR|O_CLOEXEC); - if (fd < 0) { - log_error("Failed to open %s: %m", vc); -- goto finish; -+ return EXIT_FAILURE; - } - - if (!is_vconsole(fd)) { - log_error("Device %s is not a virtual console.", vc); -- goto finish; -+ return EXIT_FAILURE; - } - - utf8 = is_locale_utf8(); -@@ -464,58 +461,62 @@ int main(int argc, char **argv) { - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); - } -+#ifdef HAVE_SYSV_COMPAT -+finish: -+ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); -+ if (r < 0) { -+ log_error("Failed to start /bin/kbdrate: %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } -+ -+ if (kbd_rate_pid > 0) -+ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); -+#endif - - if (utf8) - enable_utf8(fd); - else - disable_utf8(fd); - -- r = EXIT_FAILURE; -- -- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && --#ifdef HAVE_SYSV_COMPAT -- load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && -- set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && --#endif -- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) -- r = EXIT_SUCCESS; -+ r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); -+ if (r < 0) { -+ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } - --finish: -- if (keymap_pid > 0) -- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -- if (numlock) -- touch("/run/numlock-on"); -- else -- unlink("/run/numlock-on"); -+ if (font_pid > 0) -+ wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - - #ifdef HAVE_SYSV_COMPAT -+ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); -+ if (r < 0) { -+ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); -+ return EXIT_FAILURE; -+ } -+ - if (compose_table_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); -- -- if (kbd_rate_pid > 0) -- wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); - #endif - -- if (font_pid > 0) { -- wait_for_terminate_and_warn(KBD_SETFONT, font_pid); -- if (font_copy) -- font_copy_to_all_vcs(fd); -+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); -+ if (r < 0) { -+ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); -+ return EXIT_FAILURE; - } - -- free(vc_keymap); -- free(vc_font); -- free(vc_font_map); -- free(vc_font_unimap); -- free(vc_kbd_numlock); -+ if (keymap_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ - #ifdef HAVE_SYSV_COMPAT -- free(vc_kbd_delay); -- free(vc_kbd_rate); -- free(vc_kbd_disable_caps_lock); -- free(vc_compose_table); -+ if (numlock) -+ touch("/run/numlock-on"); -+ else -+ unlink("/run/numlock-on"); - #endif - -- if (fd >= 0) -- close_nointr_nofail(fd); -+ /* Only copy the font when we started setfont successfully */ -+ if (font_copy && font_pid > 0) -+ font_copy_to_all_vcs(fd); - - return r; - } diff --git a/0003-Add-quotes-to-warning-message.patch b/0003-Add-quotes-to-warning-message.patch deleted file mode 100644 index 3a742bac..00000000 --- a/0003-Add-quotes-to-warning-message.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f0ea29eaeb3449822bfbdfa839b00e323dfc523e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 20 Jul 2014 19:47:42 -0400 -Subject: [PATCH] Add quotes to warning message - -The message for SYSTEMD_LOG_LEVEL= looked a bit strange. ---- - src/shared/log.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git src/shared/log.c src/shared/log.c -index 9039db3..3941e3e 100644 ---- src/shared/log.c -+++ src/shared/log.c -@@ -884,19 +884,19 @@ void log_parse_environment(void) { - - e = secure_getenv("SYSTEMD_LOG_TARGET"); - if (e && log_set_target_from_string(e) < 0) -- log_warning("Failed to parse log target %s. Ignoring.", e); -+ log_warning("Failed to parse log target '%s'. Ignoring.", e); - - e = secure_getenv("SYSTEMD_LOG_LEVEL"); - if (e && log_set_max_level_from_string(e) < 0) -- log_warning("Failed to parse log level %s. Ignoring.", e); -+ log_warning("Failed to parse log level '%s'. Ignoring.", e); - - e = secure_getenv("SYSTEMD_LOG_COLOR"); - if (e && log_show_color_from_string(e) < 0) -- log_warning("Failed to parse bool %s. Ignoring.", e); -+ log_warning("Failed to parse bool '%s'. Ignoring.", e); - - e = secure_getenv("SYSTEMD_LOG_LOCATION"); - if (e && log_show_location_from_string(e) < 0) -- log_warning("Failed to parse bool %s. Ignoring.", e); -+ log_warning("Failed to parse bool '%s'. Ignoring.", e); - } - - LogTarget log_get_target(void) { --- -1.7.9.2 - diff --git a/0003-Always-check-asprintf-return-code.patch b/0003-Always-check-asprintf-return-code.patch deleted file mode 100644 index 00d873f7..00000000 --- a/0003-Always-check-asprintf-return-code.patch +++ /dev/null @@ -1,223 +0,0 @@ -Based on 7de80bfe2e61d5818601ccfddbadad3b7703ed70 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Fri, 25 Jul 2014 15:38:31 +0200 -Subject: [PATCH] Always check asprintf return code - -There is a small number of the places in sources where we don't check -asprintf() return code and assume that after error the function -returns NULL pointer via the first argument. That's wrong, after -error the content of pointer is undefined. ---- - src/core/unit-printf.c | 8 ++++---- - src/cryptsetup/cryptsetup.c | 11 ++++++++--- - src/journal/journalctl.c | 16 +++++++++++----- - src/run/run.c | 20 ++++++++++---------- - src/shared/install.c | 15 +++++++++------ - src/systemctl/systemctl.c | 18 +++++++++--------- - src/tty-ask-password-agent/tty-ask-password-agent.c | 5 +++-- - 7 files changed, 54 insertions(+), 39 deletions(-) - ---- src/core/unit-printf.c -+++ src/core/unit-printf.c 2014-07-28 09:42:20.726235696 +0000 -@@ -182,7 +182,7 @@ static int specifier_user_name(char spec - char *printed = NULL; - Unit *u = userdata; - ExecContext *c; -- int r; -+ int r = 0; - - assert(u); - -@@ -208,7 +208,7 @@ static int specifier_user_name(char spec - if (r < 0) - return -ENODATA; - -- asprintf(&printed, "%lu", (unsigned long) uid); -+ r = asprintf(&printed, "%lu", (unsigned long) uid); - } - } - -@@ -231,10 +231,10 @@ static int specifier_user_name(char spec - if (specifier == 'u') - printed = strdup(username); - else -- asprintf(&printed, "%lu", (unsigned long) uid); -+ r = asprintf(&printed, "%lu", (unsigned long) uid); - } - -- if (!printed) -+ if (r < 0 || !printed) - return -ENOMEM; - - *ret = printed; ---- src/cryptsetup/cryptsetup.c -+++ src/cryptsetup/cryptsetup.c 2014-07-28 00:00:00.000000000 +0000 -@@ -535,13 +535,18 @@ int main(int argc, char *argv[]) { - description = NULL; - } - -+ k = 0; - if (mount_point && description) -- asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); -+ k = asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point); - else if (mount_point) -- asprintf(&name_buffer, "%s on %s", argv[2], mount_point); -+ k = asprintf(&name_buffer, "%s on %s", argv[2], mount_point); - else if (description) -- asprintf(&name_buffer, "%s (%s)", description, argv[2]); -+ k = asprintf(&name_buffer, "%s (%s)", description, argv[2]); - -+ if (k < 0) { -+ log_oom(); -+ goto finish; -+ } - name = name_buffer ? name_buffer : argv[2]; - - k = crypt_init(&cd, argv[3]); ---- src/journal/journalctl.c -+++ src/journal/journalctl.c 2014-07-28 00:00:00.000000000 +0000 -@@ -746,11 +746,17 @@ static int add_matches(sd_journal *j, ch - } - } else - t = strappend("_EXE=", path); -- } else if (S_ISCHR(st.st_mode)) -- asprintf(&t, "_KERNEL_DEVICE=c%u:%u", major(st.st_rdev), minor(st.st_rdev)); -- else if (S_ISBLK(st.st_mode)) -- asprintf(&t, "_KERNEL_DEVICE=b%u:%u", major(st.st_rdev), minor(st.st_rdev)); -- else { -+ } else if (S_ISCHR(st.st_mode)) { -+ if (asprintf(&t, "_KERNEL_DEVICE=c%u:%u", -+ major(st.st_rdev), -+ minor(st.st_rdev)) < 0) -+ return -ENOMEM; -+ } else if (S_ISBLK(st.st_mode)) { -+ if (asprintf(&t, "_KERNEL_DEVICE=b%u:%u", -+ major(st.st_rdev), -+ minor(st.st_rdev)) < 0) -+ return -ENOMEM; -+ } else { - log_error("File is neither a device node, nor regular file, nor executable: %s", *i); - return -EINVAL; - } ---- src/run/run.c -+++ src/run/run.c 2014-07-28 09:46:36.846235596 +0000 -@@ -309,12 +309,12 @@ static int start_transient_service( - _cleanup_free_ char *name = NULL; - int r; - -- if (arg_unit) -+ if (arg_unit) { - name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".service"); -- else -- asprintf(&name, "run-%lu.service", (unsigned long) getpid()); -- if (!name) -- return -ENOMEM; -+ if (!name) -+ return log_oom(); -+ } else if (asprintf(&name, "run-%lu.service", (unsigned long) getpid()) < 0) -+ return log_oom(); - - r = message_start_transient_unit_new(bus, name, &m); - if (r < 0) -@@ -436,12 +436,12 @@ static int start_transient_scope( - - assert(bus); - -- if (arg_unit) -+ if (arg_unit) { - name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope"); -- else -- asprintf(&name, "run-%lu.scope", (unsigned long) getpid()); -- if (!name) -- return -ENOMEM; -+ if (!name) -+ return log_oom(); -+ } else if (asprintf(&name, "run-%lu.scope", (unsigned long) getpid()) < 0) -+ return log_oom(); - - r = message_start_transient_unit_new(bus, name, &m); - if (r < 0) ---- src/shared/install.c -+++ src/shared/install.c 2014-07-28 00:00:00.000000000 +0000 -@@ -72,13 +72,16 @@ static int get_config_path(UnitFileScope - - case UNIT_FILE_SYSTEM: - -- if (root_dir && runtime) -- asprintf(&p, "%s/run/systemd/system", root_dir); -- else if (runtime) -+ if (root_dir && runtime) { -+ if (asprintf(&p, "%s/run/systemd/system", root_dir) < 0) -+ return -ENOMEM; -+ } else if (runtime) - p = strdup("/run/systemd/system"); -- else if (root_dir) -- asprintf(&p, "%s/%s", root_dir, SYSTEM_CONFIG_UNIT_PATH); -- else -+ else if (root_dir) { -+ if (asprintf(&p, "%s/%s", root_dir, -+ SYSTEM_CONFIG_UNIT_PATH) < 0) -+ return -ENOMEM; -+ } else - p = strdup(SYSTEM_CONFIG_UNIT_PATH); - - break; ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-07-28 09:51:40.894735541 +0000 -@@ -4639,11 +4639,11 @@ static int enable_sysv_units(const char - - STRV_FOREACH(k, paths.unit_path) { - if (!isempty(arg_root)) -- asprintf(&p, "%s/%s/%s", arg_root, *k, name); -+ j = asprintf(&p, "%s/%s/%s", arg_root, *k, name); - else -- asprintf(&p, "%s/%s", *k, name); -+ j = asprintf(&p, "%s/%s", *k, name); - -- if (!p) { -+ if (j < 0) { - r = log_oom(); - goto finish; - } -@@ -4660,10 +4660,10 @@ static int enable_sysv_units(const char - continue; - - if (!isempty(arg_root)) -- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); -+ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); - else -- asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); -- if (!p) { -+ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); -+ if (j < 0) { - r = log_oom(); - goto finish; - } -@@ -4676,10 +4676,10 @@ static int enable_sysv_units(const char - free(p); - p = NULL; - if (!isempty(arg_root)) -- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); -+ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); - else -- asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -- if (!p) { -+ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -+ if (j < 0) { - r = log_oom(); - goto finish; - } ---- src/tty-ask-password-agent/tty-ask-password-agent.c -+++ src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-28 00:00:00.000000000 +0000 -@@ -102,8 +102,9 @@ static int ask_password_plymouth( - if (accept_cached) { - packet = strdup("c"); - n = 1; -- } else -- asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), message, &n); -+ } else if (asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), -+ message, &n) < 0) -+ packet = NULL; - - if (!packet) { - r = -ENOMEM; diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch deleted file mode 100644 index 7f485448..00000000 --- a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +++ /dev/null @@ -1,130 +0,0 @@ -From b5d742138f71e87312541a89aac5657015f50f48 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 4 Mar 2014 09:50:26 -0500 -Subject: [PATCH] Do not print invalid UTF-8 in error messages - -Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error -messages') only fixed two paths. Convert all of them now. ---- - src/core/load-fragment.c | 13 ++++--------- - src/shared/conf-parser.c | 7 +++---- - src/shared/conf-parser.h | 6 ++++++ - src/shared/fileio.c | 9 ++++++--- - 4 files changed, 19 insertions(+), 16 deletions(-) - -diff --git src/core/load-fragment.c src/core/load-fragment.c -index d77bf5c..5628d8c 100644 ---- src/core/load-fragment.c -+++ src/core/load-fragment.c -@@ -536,9 +536,7 @@ int config_parse_exec(const char *unit, - } - - if (!utf8_is_valid(path)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", -- rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - r = 0; - goto fail; - } -@@ -553,9 +551,7 @@ int config_parse_exec(const char *unit, - } - - if (!utf8_is_valid(c)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", -- rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - r = 0; - goto fail; - } -@@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for( - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - continue; - } - -diff --git src/shared/conf-parser.c src/shared/conf-parser.c -index 0a87a71..d27b1b7 100644 ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c -@@ -618,8 +618,7 @@ int config_parse_string(const char *unit - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "String is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - free(n); - return 0; - } -@@ -656,8 +655,7 @@ int config_parse_path(const char *unit, - assert(data); - - if (!utf8_is_valid(rvalue)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - return 0; - } - -@@ -725,8 +723,7 @@ int config_parse_strv(const char *unit, - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "String is not UTF-8 clean, ignoring: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - continue; - } - -diff --git src/shared/conf-parser.h src/shared/conf-parser.h -index e1c7ab4..ba0e58d 100644 ---- src/shared/conf-parser.h -+++ src/shared/conf-parser.h -@@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level, - config_file, config_line, \ - error, __VA_ARGS__) - -+#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ -+ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ -+ log_syntax(unit, level, config_file, config_line, error, \ -+ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ -+ } -+ - #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ - int function(const char *unit, \ - const char *filename, \ -diff --git src/shared/fileio.c src/shared/fileio.c -index d591567..f101269 100644 ---- src/shared/fileio.c -+++ src/shared/fileio.c -@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, - int r; - - if (!utf8_is_valid(key)) { -+ _cleanup_free_ char *t = utf8_escape_invalid(key); -+ - log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", -- filename, line, key); -+ filename, line, t); - return -EINVAL; - } - - if (value && !utf8_is_valid(value)) { -- /* FIXME: filter UTF-8 */ -+ _cleanup_free_ char *t = utf8_escape_invalid(value); -+ - log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", -- filename, line, key, value); -+ filename, line, key, t); - return -EINVAL; - } - --- -1.7.9.2 - diff --git a/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch b/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch deleted file mode 100644 index 38b777fe..00000000 --- a/0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 8e07fc41f86d41e68c5663b2a3c620a0adedcc11 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 31 Aug 2014 00:42:27 -0400 -Subject: [PATCH] Quote unit names in suggested systemctl commandlines - -The fact that unit names have to be quoted can be a bit surprising. -Show quotes in the hint commandline, but only after checking that this -is necessary, since quotes are visually heavy and usually not needed. - -https://bugs.freedesktop.org/show_bug.cgi?id=82832 ---- - src/core/job.c | 11 +++++++++-- - src/systemctl/systemctl.c | 14 ++++++++++++-- - 2 files changed, 21 insertions(+), 4 deletions(-) - -diff --git src/core/job.c src/core/job.c -index 5e4987f..ef5dbce 100644 ---- src/core/job.c -+++ src/core/job.c -@@ -632,11 +632,18 @@ static void job_print_status_message(Unit *u, JobType t, JobResult result) { - unit_status_printf(u, ANSI_GREEN_ON " OK " ANSI_HIGHLIGHT_OFF, format); - break; - -- case JOB_FAILED: -+ case JOB_FAILED: { -+ bool quotes; -+ -+ quotes = chars_intersect(u->id, SHELL_NEED_QUOTES); -+ - manager_flip_auto_status(u->manager, true); - unit_status_printf(u, ANSI_HIGHLIGHT_RED_ON "FAILED" ANSI_HIGHLIGHT_OFF, format); -- manager_status_printf(u->manager, false, NULL, "See 'systemctl status %s' for details.", u->id); -+ manager_status_printf(u->manager, false, NULL, -+ "See \"systemctl status %s%s%s\" for details.", -+ quotes ? "'" : "", u->id, quotes ? "'" : ""); - break; -+ } - - case JOB_DEPENDENCY: - manager_flip_auto_status(u->manager, true); -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 6534819..de43c87 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -2351,8 +2351,18 @@ static int check_wait_response(WaitData *d) { - log_error("Job for %s canceled.", strna(d->name)); - else if (streq(d->result, "dependency")) - log_error("A dependency job for %s failed. See 'journalctl -xn' for details.", strna(d->name)); -- else if (!streq(d->result, "done") && !streq(d->result, "skipped")) -- log_error("Job for %s failed. See 'systemctl status %s' and 'journalctl -xn' for details.", strna(d->name), strna(d->name)); -+ else if (!streq(d->result, "done") && !streq(d->result, "skipped")) { -+ if (d->name) { -+ bool quotes; -+ -+ quotes = chars_intersect(d->name, SHELL_NEED_QUOTES); -+ -+ log_error("Job for %s failed. See \"systemctl status %s%s%s\" and \"journalctl -xn\" for details.", -+ d->name, -+ quotes ? "'" : "", d->name, quotes ? "'" : ""); -+ } else -+ log_error("Job failed. See \"journalctl -xn\" for details."); -+ } - } - - if (streq(d->result, "timeout")) --- -1.7.9.2 - diff --git a/0003-analyze-fix-mem-leak.patch b/0003-analyze-fix-mem-leak.patch deleted file mode 100644 index 10ecbcfc..00000000 --- a/0003-analyze-fix-mem-leak.patch +++ /dev/null @@ -1,27 +0,0 @@ -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/0003-analyze-fix-plot-with-bad-y-size.patch b/0003-analyze-fix-plot-with-bad-y-size.patch deleted file mode 100644 index 07761449..00000000 --- a/0003-analyze-fix-plot-with-bad-y-size.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a213b7e977221ca96bbc1b19a5a879c912ba2488 Mon Sep 17 00:00:00 2001 -From: Jeffrey Clark -Date: Wed, 23 Apr 2014 22:37:43 +0200 -Subject: [PATCH] analyze: fix plot with bad y size - -systemd-analyze plot > test.svg produces output with all y and height -element attributes equal to zero. This of course causes the resulting -svg to appear blank (zero height). Bug does not affect x86. Looks like -a compiler optimization may be the culprit. - -https://github.com/archlinuxarm/PKGBUILDs/issues/815 ---- - src/analyze/analyze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/analyze/analyze.c src/analyze/analyze.c -index ba236d9..ebaa9d0 100644 ---- src/analyze/analyze.c -+++ src/analyze/analyze.c -@@ -43,7 +43,7 @@ - #include "pager.h" - - #define SCALE_X (0.1 / 1000.0) /* pixels per us */ --#define SCALE_Y 20.0 -+#define SCALE_Y (20.0) - - #define compare(a, b) (((a) > (b))? 1 : (((b) > (a))? -1 : 0)) - --- -1.7.9.2 - diff --git a/0003-arch-add-crisv32-to-uname-check.patch b/0003-arch-add-crisv32-to-uname-check.patch deleted file mode 100644 index c8a9e7f3..00000000 --- a/0003-arch-add-crisv32-to-uname-check.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9b3a0ba3e9e28382a1072bf0e2c07a3661432743 Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Thu, 3 Jul 2014 09:54:45 +0200 -Subject: [PATCH] arch: add crisv32 to uname check - ---- - src/shared/architecture.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index 9e0c3ef..7dd049a 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -116,6 +116,7 @@ Architecture uname_architecture(void) { - { "tilegx", ARCHITECTURE_TILEGX }, - #elif defined(__cris__) - { "cris", ARCHITECTURE_CRIS }, -+ { "crisv32", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" - #endif --- -1.7.9.2 - diff --git a/0003-architecture-add-string-table-entries-for-mips-le-ar.patch b/0003-architecture-add-string-table-entries-for-mips-le-ar.patch deleted file mode 100644 index c3944702..00000000 --- a/0003-architecture-add-string-table-entries-for-mips-le-ar.patch +++ /dev/null @@ -1,52 +0,0 @@ -Based on 037c26d0aeb750ca9c8d605884ea1db7baecfea8 Mon Sep 17 00:00:00 2001 -Based on 9a00f57a5ba7ed431e6bac8d8b36518708503b4e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 14:59:06 +0200 -Subject: [PATCH] architecture: add string table entries for mips-le archs - which were missing - ---- - src/shared/architecture.c | 2 ++ - src/shared/architecture.h | 4 ++++ - 2 files changed, 6 insertions(+) - -diff --git src/shared/architecture.c src/shared/architecture.c -index 6cdca4e..dc45f35 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -153,7 +153,9 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SPARC] = "sparc", - [ARCHITECTURE_SPARC64] = "sparc64", - [ARCHITECTURE_MIPS] = "mips", -+ [ARCHITECTURE_MIPS_LE] = "mips-le", - [ARCHITECTURE_MIPS64] = "mips64", -+ [ARCHITECTURE_MIPS64_LE] = "mips64-le", - [ARCHITECTURE_ALPHA] = "alpha", - [ARCHITECTURE_ARM] = "arm", - [ARCHITECTURE_ARM_BE] = "arm-be", -diff --git src/shared/architecture.h src/shared/architecture.h -index 20e848b..0807924 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -23,6 +23,8 @@ - - #include "util.h" - -+/* A cleaned up architecture definition */ -+ - typedef enum Architecture { - ARCHITECTURE_X86 = 0, - ARCHITECTURE_X86_64, -@@ -38,7 +40,9 @@ typedef enum Architecture { - ARCHITECTURE_SPARC, - ARCHITECTURE_SPARC64, - ARCHITECTURE_MIPS, -+ ARCHITECTURE_MIPS_LE, - ARCHITECTURE_MIPS64, -+ ARCHITECTURE_MIPS64_LE, - ARCHITECTURE_ALPHA, - ARCHITECTURE_ARM, - ARCHITECTURE_ARM_BE, --- -1.7.9.2 - diff --git a/0003-backlight-unify-error-messages.patch b/0003-backlight-unify-error-messages.patch deleted file mode 100644 index 452de616..00000000 --- a/0003-backlight-unify-error-messages.patch +++ /dev/null @@ -1,115 +0,0 @@ -Based on 938d2699d2e818bd996614e89ea3d668200ad2a8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 7 Apr 2014 20:57:22 -0400 -Subject: [PATCH] backlight: unify error messages - ---- - src/backlight/backlight.c | 29 +++++++++++++++++++---------- - 1 file changed, 19 insertions(+), 10 deletions(-) - ---- src/backlight/backlight.c -+++ src/backlight/backlight.c 2014-05-12 13:31:50.502235843 +0000 -@@ -24,6 +24,7 @@ - #include "fileio.h" - #include "libudev.h" - #include "udev-util.h" -+#include "def.h" - - static struct udev_device *find_pci_or_platform_parent(struct udev_device *device) { - struct udev_device *parent; -@@ -50,7 +51,7 @@ static struct udev_device *find_pci_or_p - if (!c) - return NULL; - -- c += strspn(c, "0123456789"); -+ c += strspn(c, DIGITS); - if (*c == '-') { - /* A connector DRM device, let's ignore all but LVDS and eDP! */ - -@@ -67,7 +68,8 @@ static struct udev_device *find_pci_or_p - unsigned long class = 0; - - if (safe_atolu(value, &class) < 0) { -- log_warning("Cannot parse PCI class %s of device %s:%s.", value, subsystem, sysname); -+ log_warning("Cannot parse PCI class %s of device %s:%s.", -+ value, subsystem, sysname); - return NULL; - } - -@@ -175,7 +177,9 @@ static bool validate_device(struct udev - if (same_device(parent, other_parent)) { - /* Both have the same PCI parent, that means - * we are out. */ -- log_debug("Skipping backlight device %s, since backlight device %s is on same PCI device and, takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); -+ log_debug("Skipping backlight device %s, since device %s is on same PCI device and takes precedence.", -+ udev_device_get_sysname(device), -+ udev_device_get_sysname(other)); - return false; - } - -@@ -184,7 +188,9 @@ static bool validate_device(struct udev - /* The other is connected to the platform bus - * and we are a PCI device, that also means we - * are out. */ -- log_debug("Skipping backlight device %s, since backlight device %s is a platform device and takes precedence.", udev_device_get_sysname(device), udev_device_get_sysname(other)); -+ log_debug("Skipping backlight device %s, since device %s is a platform device and takes precedence.", -+ udev_device_get_sysname(device), -+ udev_device_get_sysname(other)); - return false; - } - } -@@ -199,13 +205,14 @@ static unsigned get_max_brightness(struc - - max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); - if (!max_brightness_str) { -- log_warning("Failed to read max_brightness attribute"); -+ log_warning("Failed to read 'max_brightness' attribute"); - return 0; - } - - r = safe_atou(max_brightness_str, &max_brightness); - if (r < 0) { -- log_warning("Failed to parse max_brightness \"%s\": %s", max_brightness_str, strerror(-r)); -+ log_warning("Failed to parse 'max_brightness' \"%s\": %s", -+ max_brightness_str, strerror(-r)); - return 0; - } - -@@ -262,7 +269,8 @@ int main(int argc, char *argv[]) { - - r = mkdir_p("/var/lib/systemd/backlight", 0755); - if (r < 0) { -- log_error("Failed to create backlight directory: %s", strerror(-r)); -+ log_error("Failed to create backlight directory /var/lib/systemd/backlight: %s", -+ strerror(-r)); - return EXIT_FAILURE; - } - -@@ -274,7 +282,7 @@ int main(int argc, char *argv[]) { - - sysname = strchr(argv[2], ':'); - if (!sysname) { -- log_error("Requires pair of subsystem and sysname for specifying backlight device."); -+ log_error("Requires a subsystem and sysname pair specifying a backlight device."); - return EXIT_FAILURE; - } - -@@ -368,7 +376,8 @@ int main(int argc, char *argv[]) { - - r = udev_device_set_sysattr_value(device, "brightness", value); - if (r < 0) { -- log_error("Failed to write system attribute: %s", strerror(-r)); -+ log_error("Failed to write system 'brightness' attribute: %s", -+ strerror(-r)); - return EXIT_FAILURE; - } - -@@ -382,7 +391,7 @@ int main(int argc, char *argv[]) { - - value = udev_device_get_sysattr_value(device, "brightness"); - if (!value) { -- log_error("Failed to read system attribute: %s", strerror(-r)); -+ log_error("Failed to read system 'brightness' attribute: %s", strerror(-r)); - return EXIT_FAILURE; - } - diff --git a/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch b/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch deleted file mode 100644 index 9796af4f..00000000 --- a/0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4155f7d4be5053d5f34a26e5437fd85e1fe00fa3 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 11 Aug 2014 18:23:47 +0200 -Subject: [PATCH] bootchart: it's not OK to return -1 from a main program - ---- - src/bootchart/bootchart.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c -index c0e176d..8ef5ad1 100644 ---- src/bootchart/bootchart.c -+++ src/bootchart/bootchart.c -@@ -380,8 +380,8 @@ int main(int argc, char *argv[]) { - - sampledata = new0(struct list_sample_data, 1); - if (sampledata == NULL) { -- log_error("Failed to allocate memory for a node: %m"); -- return -1; -+ log_oom(); -+ return EXIT_FAILURE; - } - - sampledata->sampletime = gettime_ns(); --- -1.7.9.2 - diff --git a/0003-bootchart-parse-userinput-with-safe_atoi.patch b/0003-bootchart-parse-userinput-with-safe_atoi.patch deleted file mode 100644 index 16378405..00000000 --- a/0003-bootchart-parse-userinput-with-safe_atoi.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 9bcf7507fab6e6b022ae3cc7178237e6e0a09e9a Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 26 Sep 2014 21:41:02 +0200 -Subject: [PATCH] bootchart: parse userinput with safe_atoi - -Found by coverity. Fixes: CID#996409 ---- - src/bootchart/store.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git src/bootchart/store.c src/bootchart/store.c -index ed683e8..3099ff1 100644 ---- src/bootchart/store.c -+++ src/bootchart/store.c -@@ -192,12 +192,14 @@ vmstat_next: - - m = buf; - while (m) { -+ int r; -+ - if (sscanf(m, "%s %*s %*s %*s %*s %*s %*s %s %s", key, rt, wt) < 3) - goto schedstat_next; - - if (strstr(key, "cpu")) { -- c = atoi((const char*)(key+3)); -- if (c > MAXCPUS) -+ r = safe_atoi((const char*)(key+3), &c); -+ if (r < 0 || c > MAXCPUS) - /* Oops, we only have room for MAXCPUS data */ - break; - sampledata->runtime[c] = atoll(rt); --- -1.7.9.2 - diff --git a/0003-busname-don-t-drop-service-from-the-result-string.patch b/0003-busname-don-t-drop-service-from-the-result-string.patch deleted file mode 100644 index 37b7bd5c..00000000 --- a/0003-busname-don-t-drop-service-from-the-result-string.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 700ff4d97311902a440109a2c081731ab6ae8a20 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 7 Mar 2014 17:29:16 +0100 -Subject: [PATCH] busname: don't drop 'service' from the result string - ---- - src/core/busname.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/busname.c src/core/busname.c -index 237011a..bca2145 100644 ---- src/core/busname.c -+++ src/core/busname.c -@@ -548,7 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); - static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { - [BUSNAME_SUCCESS] = "success", - [BUSNAME_FAILURE_RESOURCES] = "resources", -- [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", -+ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "service-failed-permanent", - }; - - DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); --- -1.7.9.2 - diff --git a/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch b/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch deleted file mode 100644 index 8305035f..00000000 --- a/0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f Mon Sep 17 00:00:00 2001 -From: Ronan Le Martret -Date: Tue, 22 Apr 2014 10:33:25 +0200 -Subject: [PATCH] core: You can not put the cached result of use_smack fct, as - we are not sure the "/sys" is mounted. So we should mount - "sys" before "/proc" - -https://bugs.freedesktop.org/show_bug.cgi?id=77646 ---- - src/core/mount-setup.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index ae8447c..991bfdf 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -67,10 +67,10 @@ typedef struct MountPoint { - #define N_EARLY_MOUNT 5 - - static const MountPoint mount_table[] = { -- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -- NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, - NULL, MNT_FATAL|MNT_IN_CONTAINER }, -+ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, -+ NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, - NULL, MNT_FATAL|MNT_IN_CONTAINER }, - { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, --- -1.7.9.2 - diff --git a/0003-core-allow-transient-mount-units.patch b/0003-core-allow-transient-mount-units.patch deleted file mode 100644 index 607bdaea..00000000 --- a/0003-core-allow-transient-mount-units.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 0e252f6b375af59eac9bd6d2fe8dd6ee2f51998d Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 6 Jun 2014 15:10:20 +0200 -Subject: [PATCH] core: allow transient mount units - -For now only What=, Options=, Type= are supported, and Where= is deduced -from the unit name. ---- - src/core/dbus-mount.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++- - src/core/mount.c | 2 ++ - 2 files changed, 65 insertions(+), 1 deletion(-) - -diff --git src/core/dbus-mount.c src/core/dbus-mount.c -index e64d3ea..e27019d 100644 ---- src/core/dbus-mount.c -+++ src/core/dbus-mount.c -@@ -124,6 +124,47 @@ const sd_bus_vtable bus_mount_vtable[] = { - SD_BUS_VTABLE_END - }; - -+static int bus_mount_set_transient_property( -+ Mount *m, -+ const char *name, -+ sd_bus_message *message, -+ UnitSetPropertiesMode mode, -+ sd_bus_error *error) { -+ -+ const char *new_property; -+ char **property; -+ char *p; -+ int r; -+ -+ assert(m); -+ assert(name); -+ assert(message); -+ -+ if (streq(name, "What")) -+ property = &m->parameters_fragment.what; -+ else if (streq(name, "Options")) -+ property = &m->parameters_fragment.options; -+ else if (streq(name, "Type")) -+ property = &m->parameters_fragment.fstype; -+ else -+ return 0; -+ -+ r = sd_bus_message_read(message, "s", &new_property); -+ if (r < 0) -+ return r; -+ -+ if (mode != UNIT_CHECK) { -+ p = strdup(new_property); -+ if (!p) -+ return -ENOMEM; -+ -+ free(*property); -+ *property = p; -+ } -+ -+ return 1; -+} -+ - int bus_mount_set_property( - Unit *u, - const char *name, -@@ -132,12 +173,33 @@ int bus_mount_set_property( - sd_bus_error *error) { - - Mount *m = MOUNT(u); -+ int r; - - assert(m); - assert(name); - assert(message); - -- return bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); -+ r = bus_cgroup_set_property(u, &m->cgroup_context, name, message, mode, error); -+ if (r != 0) -+ return r; -+ -+ if (u->transient && u->load_state == UNIT_STUB) { -+ /* This is a transient unit, let's load a little more */ -+ -+ r = bus_mount_set_transient_property(m, name, message, mode, error); -+ if (r != 0) -+ return r; -+ -+ r = bus_exec_context_set_transient_property(u, &m->exec_context, name, message, mode, error); -+ if (r != 0) -+ return r; -+ -+ r = bus_kill_context_set_transient_property(u, &m->kill_context, name, message, mode, error); -+ if (r != 0) -+ return r; -+ } -+ -+ return 0; - } - - int bus_mount_commit_properties(Unit *u) { -diff --git src/core/mount.c src/core/mount.c -index a979837..14ac0a0 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -1819,6 +1819,8 @@ const UnitVTable mount_vtable = { - - .get_timeout = mount_get_timeout, - -+ .can_transient = true, -+ - .enumerate = mount_enumerate, - .shutdown = mount_shutdown, - --- -1.7.9.2 - diff --git a/0003-core-make-sure-to-serialize-jobs-for-all-units.patch b/0003-core-make-sure-to-serialize-jobs-for-all-units.patch deleted file mode 100644 index 30c4615f..00000000 --- a/0003-core-make-sure-to-serialize-jobs-for-all-units.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 9bdb98c59451ed090f8d35d470a54710f389ce71 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 May 2014 01:15:03 +0200 -Subject: [PATCH] core: make sure to serialize jobs for all units - -Previously we wouldn't serialize jobs for units that themselves have -nothing to serialize. - -http://lists.freedesktop.org/archives/systemd-devel/2014-May/019051.html ---- - src/core/manager.c | 3 --- - src/core/unit.c | 43 +++++++++++++++++++++---------------------- - 2 files changed, 21 insertions(+), 25 deletions(-) - -diff --git src/core/manager.c src/core/manager.c -index 1e3e127..d0af674 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -2131,9 +2131,6 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) { - if (u->id != t) - continue; - -- if (!unit_can_serialize(u)) -- continue; -- - /* Start marker */ - fputs(u->id, f); - fputc('\n', f); -diff --git src/core/unit.c src/core/unit.c -index c4ed923..41651ba 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -2288,25 +2288,25 @@ bool unit_can_serialize(Unit *u) { - } - - int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs) { -- ExecRuntime *rt; - int r; - - assert(u); - assert(f); - assert(fds); - -- if (!unit_can_serialize(u)) -- return 0; -- -- r = UNIT_VTABLE(u)->serialize(u, f, fds); -- if (r < 0) -- return r; -+ if (unit_can_serialize(u)) { -+ ExecRuntime *rt; - -- rt = unit_get_exec_runtime(u); -- if (rt) { -- r = exec_runtime_serialize(rt, u, f, fds); -+ r = UNIT_VTABLE(u)->serialize(u, f, fds); - if (r < 0) - return r; -+ -+ rt = unit_get_exec_runtime(u); -+ if (rt) { -+ r = exec_runtime_serialize(rt, u, f, fds); -+ if (r < 0) -+ return r; -+ } - } - - dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); -@@ -2368,17 +2368,14 @@ void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value) { - } - - int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { -- size_t offset; - ExecRuntime **rt = NULL; -+ size_t offset; - int r; - - assert(u); - assert(f); - assert(fds); - -- if (!unit_can_serialize(u)) -- return 0; -- - offset = UNIT_VTABLE(u)->exec_runtime_offset; - if (offset > 0) - rt = (ExecRuntime**) ((uint8_t*) u + offset); -@@ -2503,17 +2500,19 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - continue; - } - -- if (rt) { -- r = exec_runtime_deserialize_item(rt, u, l, v, fds); -+ if (unit_can_serialize(u)) { -+ if (rt) { -+ r = exec_runtime_deserialize_item(rt, u, l, v, fds); -+ if (r < 0) -+ return r; -+ if (r > 0) -+ continue; -+ } -+ -+ r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); - if (r < 0) - return r; -- if (r > 0) -- continue; - } -- -- r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); -- if (r < 0) -- return r; - } - } - --- -1.7.9.2 - diff --git a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch b/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch deleted file mode 100644 index 74a3f0e8..00000000 --- a/0003-core-never-consider-failure-when-reading-drop-ins-fa.patch +++ /dev/null @@ -1,113 +0,0 @@ -From bcd816bd349241bcd9c0bfbfd9cfe7b034ba351b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 May 2014 16:49:12 +0900 -Subject: [PATCH] core: never consider failure when reading drop-ins fatal - -drop-ins don't carry the main configuration of a unit, hence read them -if we can't, complain if we cannot, but don't fail. ---- - src/core/load-dropin.c | 42 +++++++++++++----------------------------- - 1 file changed, 13 insertions(+), 29 deletions(-) - -Index: src/core/load-dropin.c -=================================================================== ---- src/core/load-dropin.c.orig -+++ src/core/load-dropin.c -@@ -58,6 +58,7 @@ static int iterate_dir( - if (errno == ENOENT) - return 0; - -+ log_error("Failed to open directory %s: %m", path); - return -errno; - } - -@@ -101,7 +102,6 @@ static int process_dir( - char ***strv) { - - _cleanup_free_ char *path = NULL; -- int r; - - assert(u); - assert(unit_path); -@@ -112,11 +112,8 @@ static int process_dir( - if (!path) - return log_oom(); - -- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) { -- r = iterate_dir(u, path, dependency, strv); -- if (r < 0) -- return r; -- } -+ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) -+ iterate_dir(u, path, dependency, strv); - - if (u->instance) { - _cleanup_free_ char *template = NULL, *p = NULL; -@@ -130,11 +127,8 @@ static int process_dir( - if (!p) - return log_oom(); - -- if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) { -- r = iterate_dir(u, p, dependency, strv); -- if (r < 0) -- return r; -- } -+ if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) -+ iterate_dir(u, p, dependency, strv); - } - - return 0; -@@ -152,12 +146,8 @@ char **unit_find_dropin_paths(Unit *u) { - SET_FOREACH(t, u->names, i) { - char **p; - -- STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { -- /* This loads the drop-in config snippets */ -- r = process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); -- if (r < 0) -- return NULL; -- } -+ STRV_FOREACH(p, u->manager->lookup_paths.unit_path) -+ process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); - } - - if (strv_isempty(strv)) -@@ -176,7 +166,6 @@ char **unit_find_dropin_paths(Unit *u) { - int unit_load_dropin(Unit *u) { - Iterator i; - char *t, **f; -- int r; - - assert(u); - -@@ -186,13 +175,8 @@ int unit_load_dropin(Unit *u) { - char **p; - - STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { -- r = process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); -- if (r < 0) -- return r; -- -- r = process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); -- if (r < 0) -- return r; -+ process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); -+ process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); - } - } - -@@ -201,11 +185,9 @@ int unit_load_dropin(Unit *u) { - return 0; - - STRV_FOREACH(f, u->dropin_paths) { -- r = config_parse(u->id, *f, NULL, -- UNIT_VTABLE(u)->sections, config_item_perf_lookup, -- (void*) load_fragment_gperf_lookup, false, false, u); -- if (r < 0) -- return r; -+ config_parse(u->id, *f, NULL, -+ UNIT_VTABLE(u)->sections, config_item_perf_lookup, -+ (void*) load_fragment_gperf_lookup, false, false, u); - } - - u->dropin_mtime = now(CLOCK_REALTIME); diff --git a/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch b/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch deleted file mode 100644 index 5a60b86b..00000000 --- a/0003-core-nicer-message-when-inotify-watches-are-exhauste.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 18abe7bd3e13525b257da69ac49ff7841c289567 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Jul 2014 22:52:53 -0400 -Subject: [PATCH] core: nicer message when inotify watches are exhausted - -inotify_add_watch returns ENOSPC, which translates to -"No space left on device", which is misleading. - -https://bugs.freedesktop.org/show_bug.cgi?id=73628 ---- - src/core/path.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/core/path.c src/core/path.c -index 20e454d..f54c77f 100644 ---- src/core/path.c -+++ src/core/path.c -@@ -99,7 +99,8 @@ int path_spec_watch(PathSpec *s, sd_event_io_handler_t handler) { - break; - } - -- log_warning("Failed to add watch on %s: %m", s->path); -+ log_warning("Failed to add watch on %s: %s", s->path, -+ errno == ENOSPC ? "too many watches" : strerror(-r)); - r = -errno; - if (cut) - *cut = tmp; --- -1.7.9.2 - diff --git a/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch b/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch deleted file mode 100644 index 5424ff1c..00000000 --- a/0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch +++ /dev/null @@ -1,28 +0,0 @@ -Based on 8a52210c9392887a31fdb2845f65b4c5869e8e66 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 24 Nov 2014 09:11:12 -0500 -Subject: [PATCH] cryptsetup: default to no hash when keyfile is specified - -For plain dm-crypt devices, the behavior of cryptsetup package is to -ignore the hash algorithm when a key file is provided. It seems wrong -to ignore a hash when it is explicitly specified, but we should default -to no hash if the keyfile is specified. - -https://bugs.freedesktop.org/show_bug.cgi?id=52630 ---- - src/cryptsetup/cryptsetup.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- src/cryptsetup/cryptsetup.c -+++ src/cryptsetup/cryptsetup.c 2014-12-15 12:00:17.554019752 +0000 -@@ -386,7 +386,9 @@ static int attach_luks_or_plain(struct c - /* plain isn't a real hash type. it just means "use no hash" */ - if (!streq(opt_hash, "plain")) - params.hash = opt_hash; -- } else -+ } else if (!key_file) -+ /* for CRYPT_PLAIN, the behaviour of cryptsetup -+ * package is to not hash when a key file is provided */ - params.hash = "ripemd160"; - - if (opt_cipher) { diff --git a/0003-delta-do-not-use-unicode-chars-in-C-locale.patch b/0003-delta-do-not-use-unicode-chars-in-C-locale.patch deleted file mode 100644 index f7360178..00000000 --- a/0003-delta-do-not-use-unicode-chars-in-C-locale.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 00a5cc3a63c125633e822f39efd9c32223169f62 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 16 Apr 2014 23:33:41 -0400 -Subject: [PATCH] delta: do not use unicode chars in C locale - -https://bugzilla.redhat.com/show_bug.cgi?id=1088418 ---- - src/delta/delta.c | 40 +++++++++++++++++++++++++--------------- - 1 file changed, 25 insertions(+), 15 deletions(-) - -diff --git src/delta/delta.c src/delta/delta.c -index 369f8f8..8fc37c5 100644 ---- src/delta/delta.c -+++ src/delta/delta.c -@@ -85,6 +85,10 @@ static void pager_open_if_enabled(void) { - pager_open(false); - } - -+static inline const char* arrow(void) { -+ return is_locale_utf8() ? "→" : "->"; -+} -+ - static int equivalent(const char *a, const char *b) { - _cleanup_free_ char *x = NULL, *y = NULL; - -@@ -103,8 +107,9 @@ static int notify_override_masked(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_MASKED)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -112,8 +117,9 @@ static int notify_override_equivalent(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_EQUIVALENT)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -121,8 +127,9 @@ static int notify_override_redirected(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_REDIRECTED)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -130,8 +137,9 @@ static int notify_override_overridden(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_OVERRIDDEN)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -139,8 +147,9 @@ static int notify_override_extended(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_EXTENDED)) - return 0; - -- printf("%s%s%s %s → %s\n", -- ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom); -+ printf("%s%s%s %s %s %s\n", -+ ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), -+ top, arrow(), bottom); - return 1; - } - -@@ -241,7 +250,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const - return -ENOMEM; - d = p + strlen(toppath) + 1; - -- log_debug("Adding at top: %s → %s", d, p); -+ log_debug("Adding at top: %s %s %s", d, arrow(), p); - k = hashmap_put(top, d, p); - if (k >= 0) { - p = strdup(p); -@@ -253,7 +262,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const - return k; - } - -- log_debug("Adding at bottom: %s → %s", d, p); -+ log_debug("Adding at bottom: %s %s %s", d, arrow(), p); - free(hashmap_remove(bottom, d)); - k = hashmap_put(bottom, d, p); - if (k < 0) { -@@ -276,7 +285,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const - if (!p) - return -ENOMEM; - -- log_debug("Adding to drops: %s → %s → %s", unit, basename(p), p); -+ log_debug("Adding to drops: %s %s %s %s %s", -+ unit, arrow(), basename(p), arrow(), p); - k = hashmap_put(h, basename(p), p); - if (k < 0) { - free(p); -@@ -328,7 +338,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch - if (!p) - return -ENOMEM; - -- log_debug("Adding at top: %s → %s", basename(p), p); -+ log_debug("Adding at top: %s %s %s", basename(p), arrow(), p); - k = hashmap_put(top, basename(p), p); - if (k >= 0) { - p = strdup(p); -@@ -339,7 +349,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch - return k; - } - -- log_debug("Adding at bottom: %s → %s", basename(p), p); -+ log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p); - free(hashmap_remove(bottom, basename(p))); - k = hashmap_put(bottom, basename(p), p); - if (k < 0) { --- -1.7.9.2 - diff --git a/0003-fileio-label-return-error-when-writing-fails.patch b/0003-fileio-label-return-error-when-writing-fails.patch deleted file mode 100644 index 91ea97d9..00000000 --- a/0003-fileio-label-return-error-when-writing-fails.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on 754fc0c720eb998b8e47e695c12807ced0ff3602 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Oct 2014 08:58:40 -0400 -Subject: [PATCH] fileio-label: return error when writing fails - -The status of actually writing the file was totally ignored. ---- - src/shared/fileio-label.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/shared/fileio-label.c -+++ src/shared/fileio-label.c 2014-10-14 14:52:50.883837740 +0000 -@@ -33,7 +33,7 @@ int write_string_file_atomic_label(const - if (r < 0) - return r; - -- write_string_file_atomic(fn, line); -+ r = write_string_file_atomic(fn, line); - - label_context_clear(); - -@@ -47,7 +47,7 @@ int write_env_file_label(const char *fna - if (r < 0) - return r; - -- write_env_file(fname, l); -+ r = write_env_file(fname, l); - - label_context_clear(); - diff --git a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch b/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch deleted file mode 100644 index 27bfc4e6..00000000 --- a/0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch +++ /dev/null @@ -1,110 +0,0 @@ -Based on 571d0134bd464444567cf4eb0d2ed8df40045f36 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 24 Jun 2014 19:37:22 +0200 -Subject: [PATCH] fsck: consider a fsck implementation linked to /bin/true - non-existant - ---- - src/fsck/fsck.c | 32 ++++++++++++++++++++++---------- - src/shared/path-util.c | 26 +++++++++++++++----------- - 2 files changed, 37 insertions(+), 21 deletions(-) - -Index: src/fsck/fsck.c -=================================================================== ---- src/fsck/fsck.c.orig -+++ src/fsck/fsck.c -@@ -37,6 +37,7 @@ - #include "bus-errors.h" - #include "fileio.h" - #include "udev-util.h" -+#include "path-util.h" - - static bool arg_skip = false; - static bool arg_force = false; -@@ -280,16 +281,28 @@ int main(int argc, char *argv[]) { - - type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); - if (type) { -- const char *checker = strappenda("/sbin/fsck.", type); -- r = access(checker, X_OK); -- if (r < 0) { -- if (errno == ENOENT) { -- log_info("%s doesn't exist, not checking file system on %s", -- checker, device); -- return EXIT_SUCCESS; -- } else -- log_warning("%s cannot be used for %s: %m", -- checker, device); -+ _cleanup_free_ char *p = NULL, *d = NULL; -+ const char *checker = strappenda("fsck.", type); -+ r = find_binary(checker, &p); -+ if (r == -ENOENT) { -+ log_info("fsck.%s doesn't exist, not checking file system on %s", -+ type, device); -+ return EXIT_SUCCESS; -+ } else if (r < 0) { -+ log_warning("fsck.%s cannot be used for %s: %m", -+ type, device); -+ return r; -+ } -+ -+ /* An fsck that is linked to /bin/true is a non-existant fsck */ -+ r = readlink_malloc(p, &d); -+ if (r >= 0 && -+ (path_equal(d, "/bin/true") || -+ path_equal(d, "/usr/bin/true") || -+ path_equal(d, "/dev/null"))) { -+ log_info("fsck.%s doesn't exist, not checking file system on %s", -+ type, device); -+ return EXIT_SUCCESS; - } - } - -Index: src/shared/path-util.c -=================================================================== ---- src/shared/path-util.c.orig -+++ src/shared/path-util.c -@@ -425,19 +425,21 @@ int path_is_os_tree(const char *path) { - - int find_binary(const char *name, char **filename) { - assert(name); -- assert(filename); - -- if (strchr(name, '/')) { -- char *p; -+ if (is_path(name)) { -+ if (access(name, X_OK) < 0) -+ return -errno; -+ -+ if (filename) { -+ char *p; - -- if (path_is_absolute(name)) -- p = strdup(name); -- else - p = path_make_absolute_cwd(name); -- if (!p) -- return -ENOMEM; -+ if (!p) -+ return -ENOMEM; -+ -+ *filename = p; -+ } - -- *filename = p; - return 0; - } else { - const char *path; -@@ -463,8 +465,10 @@ int find_binary(const char *name, char * - continue; - } - -- path_kill_slashes(p); -- *filename = p; -+ if (filename) { -+ path_kill_slashes(p); -+ *filename = p; -+ } - - return 0; - } diff --git a/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch b/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch deleted file mode 100644 index 6515929b..00000000 --- a/0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch +++ /dev/null @@ -1,51583 +0,0 @@ -Based on d060b62fcb4746d3758c567e9379c6728a035b66 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 14 Apr 2014 07:54:35 -0700 -Subject: [PATCH] hwdb: PCI - include "primary" model string in subsystem - model string - -The data in the PCI ids file is randomly inconsistent. Many -subvendor model strings just describe the "product" where the -hardware is built into, not the hardware itself. This causes -some "Network Card Model Foo" to show up as "Laptop Model Bar". - -Try to make the best out of this mess and concatenate both -strings to describe the hardware. ---- - hwdb/20-pci-vendor-model.hwdb |21356 +++++++++++++++++++++--------------------- - 1 file changed, 10678 insertions(+), 10678 deletions(-) - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index d54cb2a..14637d3 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -15,10 +15,10 @@ pci:v0000001Cd00000001* - ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller - - pci:v0000001Cd00000001sv0000001Csd00000004* -- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 -+ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000) - - pci:v0000001Cd00000001sv0000001Csd00000005* -- ID_MODEL_FROM_DATABASE=2 Channel CAN Bus SJC1000 (Optically Isolated) -+ ID_MODEL_FROM_DATABASE=PCAN-PCI CAN-Bus controller (2 Channel CAN Bus SJC1000 (Optically Isolated)) - - pci:v0000003D* - ID_VENDOR_FROM_DATABASE=Lockheed Martin-Marietta Corp -@@ -189,19 +189,19 @@ pci:v00000E11d00000046* - ID_MODEL_FROM_DATABASE=Smart Array 64xx - - pci:v00000E11d00000046sv00000E11sd00004091* -- ID_MODEL_FROM_DATABASE=Smart Array 6i -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6i) - - pci:v00000E11d00000046sv00000E11sd0000409A* -- ID_MODEL_FROM_DATABASE=Smart Array 641 -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 641) - - pci:v00000E11d00000046sv00000E11sd0000409B* -- ID_MODEL_FROM_DATABASE=Smart Array 642 -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 642) - - pci:v00000E11d00000046sv00000E11sd0000409C* -- ID_MODEL_FROM_DATABASE=Smart Array 6400 -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400) - - pci:v00000E11d00000046sv00000E11sd0000409D* -- ID_MODEL_FROM_DATABASE=Smart Array 6400 EM -+ ID_MODEL_FROM_DATABASE=Smart Array 64xx (Smart Array 6400 EM) - - pci:v00000E11d00000049* - ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module -@@ -321,7 +321,7 @@ pci:v00000E11d0000A0F0* - ID_MODEL_FROM_DATABASE=Advanced System Management Controller - - pci:v00000E11d0000A0F0sv00000E11sd0000B0F3* -- ID_MODEL_FROM_DATABASE=ProLiant DL360 -+ ID_MODEL_FROM_DATABASE=Advanced System Management Controller (ProLiant DL360) - - pci:v00000E11d0000A0F3* - ID_MODEL_FROM_DATABASE=Triflex PCI to ISA Bridge -@@ -330,10 +330,10 @@ pci:v00000E11d0000A0F7* - ID_MODEL_FROM_DATABASE=PCI Hotplug Controller - - pci:v00000E11d0000A0F7sv00008086sd0000002A* -- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller A -+ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (A) - - pci:v00000E11d0000A0F7sv00008086sd0000002B* -- ID_MODEL_FROM_DATABASE=PCI Hotplug Controller B -+ ID_MODEL_FROM_DATABASE=PCI Hotplug Controller (B) - - pci:v00000E11d0000A0F8* - ID_MODEL_FROM_DATABASE=ZFMicro Chipset USB -@@ -345,19 +345,19 @@ pci:v00000E11d0000AE10* - ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller - - pci:v00000E11d0000AE10sv00000E11sd00004030* -- ID_MODEL_FROM_DATABASE=Smart-2/P Array Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2/P Array Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004031* -- ID_MODEL_FROM_DATABASE=Smart-2SL Array Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart-2SL Array Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004032* -- ID_MODEL_FROM_DATABASE=Smart Array 3200 Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3200 Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004033* -- ID_MODEL_FROM_DATABASE=Smart Array 3100ES Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 3100ES Controller) - - pci:v00000E11d0000AE10sv00000E11sd00004034* -- ID_MODEL_FROM_DATABASE=Smart Array 221 Controller -+ ID_MODEL_FROM_DATABASE=Smart-2/P RAID Controller (Smart Array 221 Controller) - - pci:v00000E11d0000AE29* - ID_MODEL_FROM_DATABASE=MIS-L -@@ -468,13 +468,13 @@ pci:v00000E11d0000B178* - ID_MODEL_FROM_DATABASE=Smart Array 5i/532 - - pci:v00000E11d0000B178sv00000E11sd00004080* -- ID_MODEL_FROM_DATABASE=Smart Array 5i -+ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5i) - - pci:v00000E11d0000B178sv00000E11sd00004082* -- ID_MODEL_FROM_DATABASE=Smart Array 532 -+ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 532) - - pci:v00000E11d0000B178sv00000E11sd00004083* -- ID_MODEL_FROM_DATABASE=Smart Array 5312 -+ ID_MODEL_FROM_DATABASE=Smart Array 5i/532 (Smart Array 5312) - - pci:v00000E11d0000B1A4* - ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter -@@ -516,7 +516,7 @@ pci:v00001000d00000001* - ID_MODEL_FROM_DATABASE=53c810 - - pci:v00001000d00000001sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C810AE PCI to SCSI I/O Processor -+ ID_MODEL_FROM_DATABASE=53c810 (LSI53C810AE PCI to SCSI I/O Processor) - - pci:v00001000d00000002* - ID_MODEL_FROM_DATABASE=53c820 -@@ -525,7 +525,7 @@ pci:v00001000d00000003* - ID_MODEL_FROM_DATABASE=53c825 - - pci:v00001000d00000003sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide) -+ ID_MODEL_FROM_DATABASE=53c825 (LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide)) - - pci:v00001000d00000004* - ID_MODEL_FROM_DATABASE=53c815 -@@ -537,49 +537,49 @@ pci:v00001000d00000006* - ID_MODEL_FROM_DATABASE=53c860 - - pci:v00001000d00000006sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C860E PCI to Ultra SCSI I/O Processor -+ ID_MODEL_FROM_DATABASE=53c860 (LSI53C860E PCI to Ultra SCSI I/O Processor) - - pci:v00001000d0000000A* - ID_MODEL_FROM_DATABASE=53c1510 - - pci:v00001000d0000000Asv00000E11sd0000B143* -- ID_MODEL_FROM_DATABASE=Integrated Dual Channel Wide Ultra2 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1510 (Integrated Dual Channel Wide Ultra2 SCSI Controller) - - pci:v00001000d0000000Asv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode) -+ ID_MODEL_FROM_DATABASE=53c1510 (LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode)) - - pci:v00001000d0000000B* - ID_MODEL_FROM_DATABASE=53C896/897 - - pci:v00001000d0000000Bsv00000E11sd00006004* -- ID_MODEL_FROM_DATABASE=EOB003 Series SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53C896/897 (EOB003 Series SCSI host adapter) - - pci:v00001000d0000000Bsv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller -+ ID_MODEL_FROM_DATABASE=53C896/897 (LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller) - - pci:v00001000d0000000Bsv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53C896/897 (LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter) - - pci:v00001000d0000000Bsv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53C896/897 (LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter) - - pci:v00001000d0000000Bsv000013E9sd00001000* -- ID_MODEL_FROM_DATABASE=6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics) -+ ID_MODEL_FROM_DATABASE=53C896/897 (6221L-4U (Dual U2W SCSI, dual 10/100TX, graphics)) - - pci:v00001000d0000000C* - ID_MODEL_FROM_DATABASE=53c895 - - pci:v00001000d0000000Csv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=LSI8951U PCI to Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c895 (LSI8951U PCI to Ultra2 SCSI host adapter) - - pci:v00001000d0000000Csv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=LSI8952U PCI to Ultra2 SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c895 (LSI8952U PCI to Ultra2 SCSI host adapter) - - pci:v00001000d0000000Csv00001DE1sd00003906* -- ID_MODEL_FROM_DATABASE=DC-390U2B SCSI adapter -+ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2B SCSI adapter) - - pci:v00001000d0000000Csv00001DE1sd00003907* -- ID_MODEL_FROM_DATABASE=DC-390U2W -+ ID_MODEL_FROM_DATABASE=53c895 (DC-390U2W) - - pci:v00001000d0000000D* - ID_MODEL_FROM_DATABASE=53c885 -@@ -588,151 +588,151 @@ pci:v00001000d0000000F* - ID_MODEL_FROM_DATABASE=53c875 - - pci:v00001000d0000000Fsv00000E11sd00007004* -- ID_MODEL_FROM_DATABASE=Embedded Ultra Wide SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875 (Embedded Ultra Wide SCSI Controller) - - pci:v00001000d0000000Fsv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C876/E PCI to Dual Channel SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875 (LSI53C876/E PCI to Dual Channel SCSI Controller) - - pci:v00001000d0000000Fsv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=LSI22801 PCI to Dual Channel Ultra SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c875 (LSI22801 PCI to Dual Channel Ultra SCSI host adapter) - - pci:v00001000d0000000Fsv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=LSI22802 PCI to Dual Channel Ultra SCSI host adapter -+ ID_MODEL_FROM_DATABASE=53c875 (LSI22802 PCI to Dual Channel Ultra SCSI host adapter) - - pci:v00001000d0000000Fsv00001092sd00008760* -- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875 (FirePort 40 Dual SCSI Controller) - - pci:v00001000d0000000Fsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Wide Ultra SCSI -+ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Wide Ultra SCSI) - - pci:v00001000d0000000Fsv00001775sd000010D1* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Ultra SCSI -+ ID_MODEL_FROM_DATABASE=53c875 (V5D Single Board Computer Ultra SCSI) - - pci:v00001000d0000000Fsv00001DE1sd00003904* -- ID_MODEL_FROM_DATABASE=DC390F/U Ultra Wide SCSI Adapter -+ ID_MODEL_FROM_DATABASE=53c875 (DC390F/U Ultra Wide SCSI Adapter) - - pci:v00001000d0000000Fsv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=53c875 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00001000d0000000Fsv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=53c875 (CT7 mainboard) - - pci:v00001000d00000010* - ID_MODEL_FROM_DATABASE=53C1510 - - pci:v00001000d00000010sv00000E11sd00004040* -- ID_MODEL_FROM_DATABASE=Integrated Smart Array Controller -+ ID_MODEL_FROM_DATABASE=53C1510 (Integrated Smart Array Controller) - - pci:v00001000d00000010sv00000E11sd00004048* -- ID_MODEL_FROM_DATABASE=RAID LC2 Controller -+ ID_MODEL_FROM_DATABASE=53C1510 (RAID LC2 Controller) - - pci:v00001000d00000010sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode) -+ ID_MODEL_FROM_DATABASE=53C1510 (PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)) - - pci:v00001000d00000012* - ID_MODEL_FROM_DATABASE=53c895a - - pci:v00001000d00000012sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C895A PCI to Ultra2 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c895a (LSI53C895A PCI to Ultra2 SCSI Controller) - - pci:v00001000d00000013* - ID_MODEL_FROM_DATABASE=53c875a - - pci:v00001000d00000013sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C875A PCI to Ultra SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875a (LSI53C875A PCI to Ultra SCSI Controller) - - pci:v00001000d00000020* - ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter - - pci:v00001000d00000020sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller) - - pci:v00001000d00000020sv0000107Bsd00001040* -- ID_MODEL_FROM_DATABASE=Server Onboard 53C1010-33 -+ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (Server Onboard 53C1010-33) - - pci:v00001000d00000020sv00001DE1sd00001020* -- ID_MODEL_FROM_DATABASE=DC-390U3W -+ ID_MODEL_FROM_DATABASE=53c1010 Ultra3 SCSI Adapter (DC-390U3W) - - pci:v00001000d00000021* - ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter - - pci:v00001000d00000021sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller) - - pci:v00001000d00000021sv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=Asus TR-DLS onboard 53C1010-66 -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Asus TR-DLS onboard 53C1010-66) - - pci:v00001000d00000021sv0000103Csd00001300* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [AB306A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [AB306A]) - - pci:v00001000d00000021sv0000103Csd00001310* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A9918A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A9918A]) - - pci:v00001000d00000021sv0000103Csd00001330* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7059A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7059A]) - - pci:v00001000d00000021sv0000103Csd00001340* -- ID_MODEL_FROM_DATABASE=Ultra160 SCSI [A7060A] -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (Ultra160 SCSI [A7060A]) - - pci:v00001000d00000021sv0000124Bsd00001070* -- ID_MODEL_FROM_DATABASE=PMC-USCSI3 -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (PMC-USCSI3) - - pci:v00001000d00000021sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (CT8 mainboard) - - pci:v00001000d00000021sv00004C53sd00001300* -- ID_MODEL_FROM_DATABASE=P017 mezzanine (32-bit PMC) -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (32-bit PMC)) - - pci:v00001000d00000021sv00004C53sd00001310* -- ID_MODEL_FROM_DATABASE=P017 mezzanine (64-bit PMC) -+ ID_MODEL_FROM_DATABASE=53c1010 66MHz Ultra3 SCSI Adapter (P017 mezzanine (64-bit PMC)) - - pci:v00001000d0000002F* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] - - pci:v00001000d0000002Fsv00001028sd00001F3E* -- ID_MODEL_FROM_DATABASE=SPERC 8 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 IOV [Thunderbolt] (SPERC 8) - - pci:v00001000d00000030* - ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI - - pci:v00001000d00000030sv00000E11sd000000DA* -- ID_MODEL_FROM_DATABASE=ProLiant ML 350 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (ProLiant ML 350) - - pci:v00001000d00000030sv00001028sd00000123* -- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) - - pci:v00001000d00000030sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) - - pci:v00001000d00000030sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4) -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4)) - - pci:v00001000d00000030sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=LSI Logic 1020/1030 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic 1020/1030) - - pci:v00001000d00000030sv00001028sd0000018A* -- ID_MODEL_FROM_DATABASE=PERC 4/IM -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PERC 4/IM) - - pci:v00001000d00000030sv00001028sd00001010* -- ID_MODEL_FROM_DATABASE=LSI U320 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI U320 SCSI Controller) - - pci:v00001000d00000030sv0000103Csd000012C5* -- ID_MODEL_FROM_DATABASE=Ultra320 SCSI [A7173A] -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Ultra320 SCSI [A7173A]) - - pci:v00001000d00000030sv0000103Csd00001323* -- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Core I/O LAN/SCSI Combo [AB314A]) - - pci:v00001000d00000030sv0000103Csd00003108* -- ID_MODEL_FROM_DATABASE=Single Channel Ultra320 SCSI HBA G2 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (Single Channel Ultra320 SCSI HBA G2) - - pci:v00001000d00000030sv0000124Bsd00001170* -- ID_MODEL_FROM_DATABASE=PMC-USCSI320 -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PMC-USCSI320) - - pci:v00001000d00000030sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=LSI Logic Parallel SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI Logic Parallel SCSI Controller) - - pci:v00001000d00000030sv00001734sd00001052* -- ID_MODEL_FROM_DATABASE=PRIMERGY BX/RX/TX S2 series onboard SCSI(IME) -+ ID_MODEL_FROM_DATABASE=53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (PRIMERGY BX/RX/TX S2 series onboard SCSI(IME)) - - pci:v00001000d00000031* - ID_MODEL_FROM_DATABASE=53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI -@@ -741,7 +741,7 @@ pci:v00001000d00000032* - ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI - - pci:v00001000d00000032sv00001000sd00001000* -- ID_MODEL_FROM_DATABASE=LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller) - - pci:v00001000d00000033* - ID_MODEL_FROM_DATABASE=1030ZC_53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI -@@ -750,10 +750,10 @@ pci:v00001000d00000040* - ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI - - pci:v00001000d00000040sv00001000sd00000033* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XR -+ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XR) - - pci:v00001000d00000040sv00001000sd00000066* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2XRWS -+ ID_MODEL_FROM_DATABASE=53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI (MegaRAID SCSI 320-2XRWS) - - pci:v00001000d00000041* - ID_MODEL_FROM_DATABASE=53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI -@@ -762,73 +762,73 @@ pci:v00001000d00000050* - ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS - - pci:v00001000d00000050sv00001028sd00001F04* -- ID_MODEL_FROM_DATABASE=SAS 5/E -+ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5/E) - - pci:v00001000d00000050sv00001028sd00001F09* -- ID_MODEL_FROM_DATABASE=SAS 5i/R -+ ID_MODEL_FROM_DATABASE=SAS1064 PCI-X Fusion-MPT SAS (SAS 5i/R) - - pci:v00001000d00000054* - ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS - - pci:v00001000d00000054sv00001028sd00001F04* -- ID_MODEL_FROM_DATABASE=SAS 5/E Adapter Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/E Adapter Controller) - - pci:v00001000d00000054sv00001028sd00001F05* -- ID_MODEL_FROM_DATABASE=SAS 5/i Adapter Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Adapter Controller) - - pci:v00001000d00000054sv00001028sd00001F06* -- ID_MODEL_FROM_DATABASE=SAS 5/i Integrated Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/i Integrated Controller) - - pci:v00001000d00000054sv00001028sd00001F07* -- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) - - pci:v00001000d00000054sv00001028sd00001F08* -- ID_MODEL_FROM_DATABASE=SAS 5/iR Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Integrated RAID Controller) - - pci:v00001000d00000054sv00001028sd00001F09* -- ID_MODEL_FROM_DATABASE=SAS 5/iR Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS 5/iR Adapter RAID Controller) - - pci:v00001000d00000054sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=SAS Controller -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS Controller) - - pci:v00001000d00000055* - ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS - - pci:v00001000d00000055sv00001033sd00008336* -- ID_MODEL_FROM_DATABASE=SAS1068 -+ ID_MODEL_FROM_DATABASE=SAS1068 PCI-X Fusion-MPT SAS (SAS1068) - - pci:v00001000d00000056* - ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS - - pci:v00001000d00000056sv00001014sd000003BB* -- ID_MODEL_FROM_DATABASE=ServeRAID BR10il SAS/SATA Controller v2 -+ ID_MODEL_FROM_DATABASE=SAS1064ET PCI-Express Fusion-MPT SAS (ServeRAID BR10il SAS/SATA Controller v2) - - pci:v00001000d00000057* - ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS - - pci:v00001000d00000057sv00008086sd0000346C* -- ID_MODEL_FROM_DATABASE=Embedded Software RAID Technology II (ESTRII) -+ ID_MODEL_FROM_DATABASE=M1064E MegaRAID SAS (Embedded Software RAID Technology II (ESTRII)) - - pci:v00001000d00000058* - ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS - - pci:v00001000d00000058sv00001000sd00003140* -- ID_MODEL_FROM_DATABASE=SAS3081E-R 8-Port SAS/SATA Host Bus Adapter -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS3081E-R 8-Port SAS/SATA Host Bus Adapter) - - pci:v00001000d00000058sv00001028sd0000021D* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Workstations RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Workstations RAID Controller) - - pci:v00001000d00000058sv00001028sd00001F0E* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Adapter RAID Controller) - - pci:v00001000d00000058sv00001028sd00001F0F* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated Blades RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated Blades RAID Controller) - - pci:v00001000d00000058sv00001028sd00001F10* -- ID_MODEL_FROM_DATABASE=SAS 6/iR Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SAS 6/iR Integrated RAID Controller) - - pci:v00001000d00000058sv0000103Csd00003229* -- ID_MODEL_FROM_DATABASE=SC44Ge Host Bus Adapter -+ ID_MODEL_FROM_DATABASE=SAS1068E PCI-Express Fusion-MPT SAS (SC44Ge Host Bus Adapter) - - pci:v00001000d00000059* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 8208ELP/8208ELP -@@ -840,97 +840,97 @@ pci:v00001000d0000005B* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] - - pci:v00001000d0000005Bsv00001000sd00009265* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265-8i) - - pci:v00001000d0000005Bsv00001000sd00009266* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-8i) - - pci:v00001000d0000005Bsv00001000sd00009267* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9267-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9267-8i) - - pci:v00001000d0000005Bsv00001000sd00009268* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9265CV-8i / 9270CV-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9265CV-8i / 9270CV-8i) - - pci:v00001000d0000005Bsv00001000sd00009269* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9266-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9266-4i) - - pci:v00001000d0000005Bsv00001000sd00009270* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-8i) - - pci:v00001000d0000005Bsv00001000sd00009271* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8i) - - pci:v00001000d0000005Bsv00001000sd00009272* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9272-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9272-8i) - - pci:v00001000d0000005Bsv00001000sd00009273* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270CV-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270CV-8i) - - pci:v00001000d0000005Bsv00001000sd00009274* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9270-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9270-4i) - - pci:v00001000d0000005Bsv00001000sd00009275* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-8iCC -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-8iCC) - - pci:v00001000d0000005Bsv00001000sd00009276* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9271-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9271-4i) - - pci:v00001000d0000005Bsv00001000sd00009285* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285-8e) - - pci:v00001000d0000005Bsv00001000sd00009288* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9285CV-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9285CV-8e) - - pci:v00001000d0000005Bsv00001000sd00009290* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286-8e) - - pci:v00001000d0000005Bsv00001000sd00009291* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8e) - - pci:v00001000d0000005Bsv00001000sd00009295* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9286CV-8eCC -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (MegaRAID SAS 9286CV-8eCC) - - pci:v00001000d0000005Bsv00001014sd0000040B* -- ID_MODEL_FROM_DATABASE=ServeRAID M5110 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110 SAS/SATA Controller) - - pci:v00001000d0000005Bsv00001014sd0000040C* -- ID_MODEL_FROM_DATABASE=ServeRAID M5120 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5120 SAS/SATA Controller) - - pci:v00001000d0000005Bsv00001014sd00000412* -- ID_MODEL_FROM_DATABASE=ServeRAID M5110e SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (ServeRAID M5110e SAS/SATA Controller) - - pci:v00001000d0000005Bsv00001028sd00001F2D* -- ID_MODEL_FROM_DATABASE=PERC H810 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H810 Adapter) - - pci:v00001000d0000005Bsv00001028sd00001F30* -- ID_MODEL_FROM_DATABASE=PERC H710 Embedded -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Embedded) - - pci:v00001000d0000005Bsv00001028sd00001F31* -- ID_MODEL_FROM_DATABASE=PERC H710P Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Adapter) - - pci:v00001000d0000005Bsv00001028sd00001F33* -- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for blades)) - - pci:v00001000d0000005Bsv00001028sd00001F34* -- ID_MODEL_FROM_DATABASE=PERC H710P Mini (for monolithics) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710P Mini (for monolithics)) - - pci:v00001000d0000005Bsv00001028sd00001F35* -- ID_MODEL_FROM_DATABASE=PERC H710 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Adapter) - - pci:v00001000d0000005Bsv00001028sd00001F37* -- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for blades)) - - pci:v00001000d0000005Bsv00001028sd00001F38* -- ID_MODEL_FROM_DATABASE=PERC H710 Mini (for monolithics) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (PERC H710 Mini (for monolithics)) - - pci:v00001000d0000005Bsv000015D9sd00000690* -- ID_MODEL_FROM_DATABASE=LSI MegaRAID ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (LSI MegaRAID ROMB) - - pci:v00001000d0000005Bsv00008086sd00003510* -- ID_MODEL_FROM_DATABASE=RMS25PB080 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25PB080 RAID Controller) - - pci:v00001000d0000005Bsv00008086sd00003513* -- ID_MODEL_FROM_DATABASE=RMS25CB080 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2208 [Thunderbolt] (RMS25CB080 RAID Controller) - - pci:v00001000d0000005C* - ID_MODEL_FROM_DATABASE=SAS1064A PCI-X Fusion-MPT SAS -@@ -939,31 +939,31 @@ pci:v00001000d0000005D* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] - - pci:v00001000d0000005Dsv00001028sd00001F41* -- ID_MODEL_FROM_DATABASE=PERC H830 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H830 Adapter) - - pci:v00001000d0000005Dsv00001028sd00001F42* -- ID_MODEL_FROM_DATABASE=PERC H730P Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Adapter) - - pci:v00001000d0000005Dsv00001028sd00001F43* -- ID_MODEL_FROM_DATABASE=PERC H730 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Adapter) - - pci:v00001000d0000005Dsv00001028sd00001F47* -- ID_MODEL_FROM_DATABASE=PERC H730P Mini -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini) - - pci:v00001000d0000005Dsv00001028sd00001F48* -- ID_MODEL_FROM_DATABASE=PERC H730P Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Mini (for blades)) - - pci:v00001000d0000005Dsv00001028sd00001F49* -- ID_MODEL_FROM_DATABASE=PERC H730 Mini -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini) - - pci:v00001000d0000005Dsv00001028sd00001F4A* -- ID_MODEL_FROM_DATABASE=PERC H730 Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) - - pci:v00001000d0000005Dsv000017AAsd00001052* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) - - pci:v00001000d0000005Dsv000017AAsd00001053* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 720ix -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720ix) - - pci:v00001000d0000005E* - ID_MODEL_FROM_DATABASE=SAS1066 PCI-X Fusion-MPT SAS -@@ -972,109 +972,109 @@ pci:v00001000d0000005F* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] - - pci:v00001000d0000005Fsv00001028sd00001F44* -- ID_MODEL_FROM_DATABASE=PERC H330 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Adapter) - - pci:v00001000d0000005Fsv00001028sd00001F4B* -- ID_MODEL_FROM_DATABASE=PERC H330 Mini -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini) - - pci:v00001000d0000005Fsv00001028sd00001F4C* -- ID_MODEL_FROM_DATABASE=PERC H330 Mini (for blades) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Mini (for blades)) - - pci:v00001000d0000005Fsv00001028sd00001F4D* -- ID_MODEL_FROM_DATABASE=PERC H330 Embedded (for monolithic) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3008 [Fury] (PERC H330 Embedded (for monolithic)) - - pci:v00001000d00000060* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 - - pci:v00001000d00000060sv00001000sd00001006* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8888ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8888ELP) - - pci:v00001000d00000060sv00001000sd0000100A* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708ELP) - - pci:v00001000d00000060sv00001000sd0000100E* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8884E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8884E) - - pci:v00001000d00000060sv00001000sd0000100F* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8708E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8708E) - - pci:v00001000d00000060sv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-8ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-8ELP) - - pci:v00001000d00000060sv00001000sd00001011* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 350-4ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SATA 350-4ELP) - - pci:v00001000d00000060sv00001000sd00001012* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8704ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8704ELP) - - pci:v00001000d00000060sv00001000sd00001016* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8880EM2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS 8880EM2) - - pci:v00001000d00000060sv00001014sd00000363* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001014sd00000364* -- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8808E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8808E) - - pci:v00001000d00000060sv00001014sd00000365* -- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8884E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8884E) - - pci:v00001000d00000060sv00001014sd00000379* -- ID_MODEL_FROM_DATABASE=SystemX MegaRAID SAS 8880EM2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (SystemX MegaRAID SAS 8880EM2) - - pci:v00001000d00000060sv00001028sd00001F0A* -- ID_MODEL_FROM_DATABASE=PERC 6/E Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/E Adapter RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F0B* -- ID_MODEL_FROM_DATABASE=PERC 6/i Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Adapter RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F0C* -- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F0D* -- ID_MODEL_FROM_DATABASE=PERC 6/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (PERC 6/i Integrated RAID Controller) - - pci:v00001000d00000060sv00001028sd00001F11* -- ID_MODEL_FROM_DATABASE=CERC 6/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (CERC 6/i Integrated RAID Controller) - - pci:v00001000d00000060sv00001033sd0000835A* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001043sd0000824D* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001170sd0000002F* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00001170sd00000036* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv000015D9sd0000C080* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv000017AAsd00006B7C* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv000018A1sd00000003* -- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (LSI MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000060sv00008086sd00001006* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EP) - - pci:v00001000d00000060sv00008086sd0000100A* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS28EV -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSAS28EV) - - pci:v00001000d00000060sv00008086sd00001010* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSATA28E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (RAID Controller SRCSATA28E) - - pci:v00001000d00000060sv00008086sd000034CC* -- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) - - pci:v00001000d00000060sv00008086sd000034CD* -- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSAS28E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSAS28E) - - pci:v00001000d00000060sv00008086sd00003505* -- ID_MODEL_FROM_DATABASE=Integrated RAID Controller SROMBSASMP2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078 (Integrated RAID Controller SROMBSASMP2) - - pci:v00001000d00000062* - ID_MODEL_FROM_DATABASE=SAS1078 PCI-Express Fusion-MPT SAS -@@ -1101,100 +1101,100 @@ pci:v00001000d00000072* - ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] - - pci:v00001000d00000072sv00001028sd00001F1C* -- ID_MODEL_FROM_DATABASE=6Gbps SAS HBA Adapter -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (6Gbps SAS HBA Adapter) - - pci:v00001000d00000072sv00001028sd00001F1D* -- ID_MODEL_FROM_DATABASE=PERC H200 Adapter -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Adapter) - - pci:v00001000d00000072sv00001028sd00001F1E* -- ID_MODEL_FROM_DATABASE=PERC H200 Integrated -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Integrated) - - pci:v00001000d00000072sv00001028sd00001F1F* -- ID_MODEL_FROM_DATABASE=PERC H200 Modular -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Modular) - - pci:v00001000d00000072sv00001028sd00001F20* -- ID_MODEL_FROM_DATABASE=PERC H200 Embedded -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (PERC H200 Embedded) - - pci:v00001000d00000072sv00001028sd00001F22* -- ID_MODEL_FROM_DATABASE=Internal Tape Adapter -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (Internal Tape Adapter) - - pci:v00001000d00000072sv00008086sd0000350F* -- ID_MODEL_FROM_DATABASE=RMS2LL040 RAID Controller -+ ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (RMS2LL040 RAID Controller) - - pci:v00001000d00000073* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] - - pci:v00001000d00000073sv00001000sd00009240* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-8i) - - pci:v00001000d00000073sv00001000sd00009241* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9240-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9240-4i) - - pci:v00001000d00000073sv00001000sd000092A0* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9220-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (MegaRAID SAS 9220-8i) - - pci:v00001000d00000073sv00001014sd000003B1* -- ID_MODEL_FROM_DATABASE=ServeRAID M1015 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ServeRAID M1015 SAS/SATA Controller) - - pci:v00001000d00000073sv00001028sd00001F4E* -- ID_MODEL_FROM_DATABASE=PERC H310 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Adapter) - - pci:v00001000d00000073sv00001028sd00001F4F* -- ID_MODEL_FROM_DATABASE=PERC H310 Integrated -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Integrated) - - pci:v00001000d00000073sv00001028sd00001F50* -- ID_MODEL_FROM_DATABASE=PERC H310 Mini Blades -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Blades) - - pci:v00001000d00000073sv00001028sd00001F51* -- ID_MODEL_FROM_DATABASE=PERC H310 Mini Monolithics -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Mini Monolithics) - - pci:v00001000d00000073sv00001028sd00001F52* -- ID_MODEL_FROM_DATABASE=PERC H310 Embedded1 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded1) - - pci:v00001000d00000073sv00001028sd00001F53* -- ID_MODEL_FROM_DATABASE=PERC H310 Embedded2 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Embedded2) - - pci:v00001000d00000073sv00001028sd00001F54* -- ID_MODEL_FROM_DATABASE=PERC H310 Reserved -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (PERC H310 Reserved) - - pci:v00001000d00000073sv00001054sd00003035* -- ID_MODEL_FROM_DATABASE=LSI MegaRAID SAS 9240-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (LSI MegaRAID SAS 9240-8i) - - pci:v00001000d00000073sv00001137sd00000072* -- ID_MODEL_FROM_DATABASE=2004 iMR ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2004 iMR ROMB) - - pci:v00001000d00000073sv00001137sd00000073* -- ID_MODEL_FROM_DATABASE=2008 ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (2008 ROMB) - - pci:v00001000d00000073sv00001137sd000000B0* -- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) - - pci:v00001000d00000073sv00001137sd000000B1* -- ID_MODEL_FROM_DATABASE=UCSC RAID SAS 2008M-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCSC RAID SAS 2008M-8i) - - pci:v00001000d00000073sv00001137sd000000C2* -- ID_MODEL_FROM_DATABASE=UCS E-Series Double Wide -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Double Wide) - - pci:v00001000d00000073sv00001137sd000000C3* -- ID_MODEL_FROM_DATABASE=UCS E-Series Single Wide -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (UCS E-Series Single Wide) - - pci:v00001000d00000073sv000015D9sd00000400* -- ID_MODEL_FROM_DATABASE=Supermicro SMC2008-iMR -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (Supermicro SMC2008-iMR) - - pci:v00001000d00000073sv00001734sd00001177* -- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Ctrl SAS 6G 0/1 (D2607)) - - pci:v00001000d00000073sv000017AAsd00001051* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 510i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (ThinkServer RAID 510i) - - pci:v00001000d00000073sv00008086sd0000350D* -- ID_MODEL_FROM_DATABASE=RMS2AF040 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RMS2AF040 RAID Controller) - - pci:v00001000d00000073sv00008086sd00009240* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC080 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC080) - - pci:v00001000d00000073sv00008086sd00009241* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2WC040 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2008 [Falcon] (RAID Controller RS2WC040) - - pci:v00001000d00000074* - ID_MODEL_FROM_DATABASE=SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] -@@ -1209,106 +1209,106 @@ pci:v00001000d00000079* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] - - pci:v00001000d00000079sv00001000sd00009251* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4ix -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4ix) - - pci:v00001000d00000079sv00001000sd00009256* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8ix -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8ix) - - pci:v00001000d00000079sv00001000sd00009260* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-4i) - - pci:v00001000d00000079sv00001000sd00009261* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260-8i) - - pci:v00001000d00000079sv00001000sd00009262* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9262-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9262-8i) - - pci:v00001000d00000079sv00001000sd00009263* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9261-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9261-8i) - - pci:v00001000d00000079sv00001000sd00009264* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9264-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9264-8i) - - pci:v00001000d00000079sv00001000sd00009267* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-4i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-4i) - - pci:v00001000d00000079sv00001000sd00009268* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260CV-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260CV-8i) - - pci:v00001000d00000079sv00001000sd00009275* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8ex -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8ex) - - pci:v00001000d00000079sv00001000sd00009276* -- ID_MODEL_FROM_DATABASE=MR9260-16i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MR9260-16i) - - pci:v00001000d00000079sv00001000sd00009280* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-8e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-8e) - - pci:v00001000d00000079sv00001000sd00009281* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9281-8E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9281-8E) - - pci:v00001000d00000079sv00001000sd00009282* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280-4i4e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280-4i4e) - - pci:v00001000d00000079sv00001000sd00009290* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9280DE-24i4e -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9280DE-24i4e) - - pci:v00001000d00000079sv00001014sd000003B2* -- ID_MODEL_FROM_DATABASE=ServeRAID M5015 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5015 SAS/SATA Controller) - - pci:v00001000d00000079sv00001014sd000003B3* -- ID_MODEL_FROM_DATABASE=ServeRAID M5025 SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (ServeRAID M5025 SAS/SATA Controller) - - pci:v00001000d00000079sv00001028sd00001F15* -- ID_MODEL_FROM_DATABASE=PERC H800 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Adapter) - - pci:v00001000d00000079sv00001028sd00001F16* -- ID_MODEL_FROM_DATABASE=PERC H700 Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Adapter) - - pci:v00001000d00000079sv00001028sd00001F17* -- ID_MODEL_FROM_DATABASE=PERC H700 Integrated -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) - - pci:v00001000d00000079sv00001028sd00001F18* -- ID_MODEL_FROM_DATABASE=PERC H700 Modular -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Modular) - - pci:v00001000d00000079sv00001028sd00001F1A* -- ID_MODEL_FROM_DATABASE=PERC H800 Proto Adapter -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H800 Proto Adapter) - - pci:v00001000d00000079sv00001028sd00001F1B* -- ID_MODEL_FROM_DATABASE=PERC H700 Integrated -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PERC H700 Integrated) - - pci:v00001000d00000079sv00001043sd00008480* -- ID_MODEL_FROM_DATABASE=PIKE-2108 16PD -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (PIKE-2108 16PD) - - pci:v00001000d00000079sv00001734sd00001176* -- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 5/6 512MB (D2616) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 5/6 512MB (D2616)) - - pci:v00001000d00000079sv00001734sd00001177* -- ID_MODEL_FROM_DATABASE=RAID Ctrl SAS 6G 0/1 (D2607) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Ctrl SAS 6G 0/1 (D2607)) - - pci:v00001000d00000079sv00008086sd00009256* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 9260DE-8i -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (MegaRAID SAS 9260DE-8i) - - pci:v00001000d00000079sv00008086sd00009260* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL040 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL040) - - pci:v00001000d00000079sv00008086sd00009261* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2BL080 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2BL080) - - pci:v00001000d00000079sv00008086sd00009264* -- ID_MODEL_FROM_DATABASE=Warm Beach (Caster Lite) -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (Warm Beach (Caster Lite)) - - pci:v00001000d00000079sv00008086sd00009267* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB040 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB040) - - pci:v00001000d00000079sv00008086sd00009268* -- ID_MODEL_FROM_DATABASE=RAID Controller RS2VB080 -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 2108 [Liberator] (RAID Controller RS2VB080) - - pci:v00001000d0000007C* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE - - pci:v00001000d0000007Csv00001014sd00000395* -- ID_MODEL_FROM_DATABASE=ServeRAID-AR10is SAS/SATA Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1078DE (ServeRAID-AR10is SAS/SATA Controller) - - pci:v00001000d0000007E* - ID_MODEL_FROM_DATABASE=SSS6200 PCI-Express Flash SSD -@@ -1338,16 +1338,16 @@ pci:v00001000d00000087* - ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 - - pci:v00001000d00000087sv00001590sd00000044* -- ID_MODEL_FROM_DATABASE=H220i -+ ID_MODEL_FROM_DATABASE=SAS2308 PCI-Express Fusion-MPT SAS-2 (H220i) - - pci:v00001000d0000008F* - ID_MODEL_FROM_DATABASE=53c875J - - pci:v00001000d0000008Fsv00001092sd00008000* -- ID_MODEL_FROM_DATABASE=FirePort 40 SCSI Controller -+ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 SCSI Controller) - - pci:v00001000d0000008Fsv00001092sd00008760* -- ID_MODEL_FROM_DATABASE=FirePort 40 Dual SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=53c875J (FirePort 40 Dual SCSI Host Adapter) - - pci:v00001000d00000090* - ID_MODEL_FROM_DATABASE=SAS3108 PCI-Express Fusion-MPT SAS-3 -@@ -1368,151 +1368,151 @@ pci:v00001000d00000097* - ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 - - pci:v00001000d00000097sv00001028sd00001F45* -- ID_MODEL_FROM_DATABASE=12GB/s HBA internal -+ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA internal) - - pci:v00001000d00000097sv00001028sd00001F46* -- ID_MODEL_FROM_DATABASE=12GB/s HBA external -+ ID_MODEL_FROM_DATABASE=SAS3008 PCI-Express Fusion-MPT SAS-3 (12GB/s HBA external) - - pci:v00001000d00000407* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00000407sv00001000sd00000530* -- ID_MODEL_FROM_DATABASE=MegaRAID 530 SCSI 320-0X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (530 SCSI 320-0X RAID Controller) - - pci:v00001000d00000407sv00001000sd00000531* -- ID_MODEL_FROM_DATABASE=MegaRAID 531 SCSI 320-4X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (531 SCSI 320-4X RAID Controller) - - pci:v00001000d00000407sv00001000sd00000532* -- ID_MODEL_FROM_DATABASE=MegaRAID 532 SCSI 320-2X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (532 SCSI 320-2X RAID Controller) - - pci:v00001000d00000407sv00001028sd00000531* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00000407sv00001028sd00000533* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00000407sv00008086sd00000530* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCZCRX -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCZCRX) - - pci:v00001000d00000407sv00008086sd00000532* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42X -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42X) - - pci:v00001000d00000408* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00000408sv00001000sd00000001* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-1E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-1E RAID Controller) - - pci:v00001000d00000408sv00001000sd00000002* -- ID_MODEL_FROM_DATABASE=MegaRAID SCSI 320-2E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SCSI 320-2E RAID Controller) - - pci:v00001000d00000408sv00001025sd0000004D* -- ID_MODEL_FROM_DATABASE=MegaRAID ACER ROMB-2E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (ACER ROMB-2E RAID Controller) - - pci:v00001000d00000408sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/SC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/SC) - - pci:v00001000d00000408sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC4e/DC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC4e/DC) - - pci:v00001000d00000408sv00001028sd00000012* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller RAC4 -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller RAC4) - - pci:v00001000d00000408sv00001028sd00000015* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) - - pci:v00001000d00000408sv00001028sd00001F03* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller PERC5 -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller PERC5) - - pci:v00001000d00000408sv00001734sd00001065* -- ID_MODEL_FROM_DATABASE=FSC MegaRAID PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID (FSC MegaRAID PCI Express ROMB) - - pci:v00001000d00000408sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SRCU42E -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SRCU42E) - - pci:v00001000d00000408sv00008086sd00003449* -- ID_MODEL_FROM_DATABASE=MegaRAID Intel RAID Controller SROMBU -+ ID_MODEL_FROM_DATABASE=MegaRAID (Intel RAID Controller SROMBU) - - pci:v00001000d00000409* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00000409sv00001000sd00003004* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-4X RAID Controller) - - pci:v00001000d00000409sv00001000sd00003008* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8X RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 300-8X RAID Controller) - - pci:v00001000d00000409sv00008086sd00003008* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS28X -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS28X) - - pci:v00001000d00000409sv00008086sd00003431* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Alief SROMBU42E -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Alief SROMBU42E) - - pci:v00001000d00000409sv00008086sd00003499* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller Harwich SROMBU42E -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller Harwich SROMBU42E) - - pci:v00001000d00000411* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 - - pci:v00001000d00000411sv00001000sd00001001* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8408E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8408E) - - pci:v00001000d00000411sv00001000sd00001002* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8480E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8480E) - - pci:v00001000d00000411sv00001000sd00001003* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8344ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8344ELP) - - pci:v00001000d00000411sv00001000sd00001004* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8308ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 8308ELP) - - pci:v00001000d00000411sv00001000sd00001008* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 84016E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS 84016E) - - pci:v00001000d00000411sv00001000sd0000100C* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-12E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-12E) - - pci:v00001000d00000411sv00001000sd0000100D* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-16E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-16E) - - pci:v00001000d00000411sv00001000sd00002004* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-8ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-8ELP) - - pci:v00001000d00000411sv00001000sd00002005* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 300-4ELP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SATA 300-4ELP) - - pci:v00001000d00000411sv00001033sd00008287* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000411sv00001054sd00003016* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS RoMB Server -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS RoMB Server) - - pci:v00001000d00000411sv00001734sd00001081* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000411sv00001734sd000010A3* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS PCI Express ROMB -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (MegaRAID SAS PCI Express ROMB) - - pci:v00001000d00000411sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS18E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS18E) - - pci:v00001000d00000411sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=RAID Controller SRCSAS144E -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (RAID Controller SRCSAS144E) - - pci:v00001000d00000411sv00008086sd00003500* -- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) - - pci:v00001000d00000411sv00008086sd00003501* -- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) - - pci:v00001000d00000411sv00008086sd00003504* -- ID_MODEL_FROM_DATABASE=SROMBSAS18E RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 (SROMBSAS18E RAID Controller) - - pci:v00001000d00000413* - ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] - - pci:v00001000d00000413sv00001000sd00001005* -- ID_MODEL_FROM_DATABASE=MegaRAID SAS 8300XLP -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS 1068 [Verde ZCR] (MegaRAID SAS 8300XLP) - - pci:v00001000d00000621* - ID_MODEL_FROM_DATABASE=FC909 Fibre Channel Adapter -@@ -1521,7 +1521,7 @@ pci:v00001000d00000622* - ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter - - pci:v00001000d00000622sv00001000sd00001020* -- ID_MODEL_FROM_DATABASE=44929 O Dual Fibre Channel card -+ ID_MODEL_FROM_DATABASE=FC929 Fibre Channel Adapter (44929 O Dual Fibre Channel card) - - pci:v00001000d00000623* - ID_MODEL_FROM_DATABASE=FC929 LAN -@@ -1536,7 +1536,7 @@ pci:v00001000d00000626* - ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter - - pci:v00001000d00000626sv00001000sd00001010* -- ID_MODEL_FROM_DATABASE=7202-XP-LC Dual Fibre Channel card -+ ID_MODEL_FROM_DATABASE=FC929X Fibre Channel Adapter (7202-XP-LC Dual Fibre Channel card) - - pci:v00001000d00000627* - ID_MODEL_FROM_DATABASE=FC929X LAN -@@ -1563,7 +1563,7 @@ pci:v00001000d00000702* - ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet - - pci:v00001000d00000702sv00001318sd00000000* -- ID_MODEL_FROM_DATABASE=PEI100X -+ ID_MODEL_FROM_DATABASE=Yellowfin G-NIC gigabit ethernet (PEI100X) - - pci:v00001000d00000804* - ID_MODEL_FROM_DATABASE=SA2010 -@@ -1587,40 +1587,40 @@ pci:v00001000d00001960* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v00001000d00001960sv00001000sd00000518* -- ID_MODEL_FROM_DATABASE=MegaRAID 518 SCSI 320-2 Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (518 SCSI 320-2 Controller) - - pci:v00001000d00001960sv00001000sd00000520* -- ID_MODEL_FROM_DATABASE=MegaRAID 520 SCSI 320-1 Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (520 SCSI 320-1 Controller) - - pci:v00001000d00001960sv00001000sd00000522* -- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4 133 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4 133 RAID Controller) - - pci:v00001000d00001960sv00001000sd00000523* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-6 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-6 RAID Controller) - - pci:v00001000d00001960sv00001000sd00004523* -- ID_MODEL_FROM_DATABASE=MegaRAID SATA 150-4 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (SATA 150-4 RAID Controller) - - pci:v00001000d00001960sv00001000sd0000A520* -- ID_MODEL_FROM_DATABASE=MegaRAID ZCR SCSI 320-0 Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (ZCR SCSI 320-0 Controller) - - pci:v00001000d00001960sv00001028sd00000518* -- ID_MODEL_FROM_DATABASE=MegaRAID 518 DELL PERC 4/DC RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (518 DELL PERC 4/DC RAID Controller) - - pci:v00001000d00001960sv00001028sd00000520* -- ID_MODEL_FROM_DATABASE=MegaRAID 520 DELL PERC 4/SC RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (520 DELL PERC 4/SC RAID Controller) - - pci:v00001000d00001960sv00001028sd00000531* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00001960sv00001028sd00000533* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Expandable RAID Controller 4/QC) - - pci:v00001000d00001960sv00008086sd00000520* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCU41L -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCU41L) - - pci:v00001000d00001960sv00008086sd00000523* -- ID_MODEL_FROM_DATABASE=MegaRAID RAID Controller SRCS16 -+ ID_MODEL_FROM_DATABASE=MegaRAID (RAID Controller SRCS16) - - pci:v00001000d00003050* - ID_MODEL_FROM_DATABASE=SAS2008 PCI-Express Fusion-MPT SAS-2 -@@ -1710,7 +1710,7 @@ pci:v00001002d00001314* - ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio - - pci:v00001002d00001314sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=Wrestler HDMI Audio (PURE Fusion Mini) - - pci:v00001002d00001315* - ID_MODEL_FROM_DATABASE=Kaveri [Radeon R5 Graphics] -@@ -1737,13 +1737,13 @@ pci:v00001002d00001714* - ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] - - pci:v00001002d00001714sv0000103Csd0000168B* -- ID_MODEL_FROM_DATABASE=ProBook 4535s -+ ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] (ProBook 4535s) - - pci:v00001002d00003150* - ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] - - pci:v00001002d00003150sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=nx8220 -+ ID_MODEL_FROM_DATABASE=RV380/M24 [Mobility Radeon X600] (nx8220) - - pci:v00001002d00003151* - ID_MODEL_FROM_DATABASE=RV380 GL [FireMV 2400] -@@ -1791,73 +1791,73 @@ pci:v00001002d00004150* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] - - pci:v00001002d00004150sv00001002sd00000002* -- ID_MODEL_FROM_DATABASE=R9600 Pro primary (Asus OEM for HP) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro primary (Asus OEM for HP)) - - pci:v00001002d00004150sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R9600 Pro secondary (Asus OEM for HP)) - - pci:v00001002d00004150sv00001002sd00004722* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (All-in-Wonder 2006 AGP Edition) - - pci:v00001002d00004150sv00001458sd00004024* -- ID_MODEL_FROM_DATABASE=GV-R96128D -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GV-R96128D) - - pci:v00001002d00004150sv0000148Csd00002064* -- ID_MODEL_FROM_DATABASE=R96A-C3N -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) - - pci:v00001002d00004150sv0000148Csd00002066* -- ID_MODEL_FROM_DATABASE=R96A-C3N -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (R96A-C3N) - - pci:v00001002d00004150sv0000174Bsd00007C19* -- ID_MODEL_FROM_DATABASE=Atlantis Radeon 9600 Pro -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Atlantis Radeon 9600 Pro) - - pci:v00001002d00004150sv0000174Bsd00007C29* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO) - - pci:v00001002d00004150sv000017EEsd00002002* -- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb Primary -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Radeon 9600 256Mb Primary) - - pci:v00001002d00004150sv000018BCsd00000101* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Primary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (GC-R9600PRO (Primary)) - - pci:v00001002d00004151* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] - - pci:v00001002d00004151sv00001043sd0000C004* -- ID_MODEL_FROM_DATABASE=A9600SE -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600 Series] (A9600SE) - - pci:v00001002d00004152* - ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] - - pci:v00001002d00004152sv00001002sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) - - pci:v00001002d00004152sv00001002sd00004772* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (All-in-Wonder 9600 XT) - - pci:v00001002d00004152sv00001043sd0000C002* -- ID_MODEL_FROM_DATABASE=Radeon 9600 XT TVD -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT TVD) - - pci:v00001002d00004152sv00001043sd0000C01A* -- ID_MODEL_FROM_DATABASE=A9600XT/TD -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (A9600XT/TD) - - pci:v00001002d00004152sv00001462sd00009510* -- ID_MODEL_FROM_DATABASE=RX9600XT (MS-8951) -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (RX9600XT (MS-8951)) - - pci:v00001002d00004152sv0000174Bsd00007C29* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600XT) - - pci:v00001002d00004152sv00001787sd00004002* -- ID_MODEL_FROM_DATABASE=Radeon 9600 XT -+ ID_MODEL_FROM_DATABASE=RV360 [Radeon 9600/X1050 Series] (Radeon 9600 XT) - - pci:v00001002d00004153* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] - - pci:v00001002d00004153sv00001043sd0000010C* -- ID_MODEL_FROM_DATABASE=A9550GE/TD -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (A9550GE/TD) - - pci:v00001002d00004153sv00001462sd0000932C* -- ID_MODEL_FROM_DATABASE=RX9550SE-TD128 (MS-8932) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (RX9550SE-TD128 (MS-8932)) - - pci:v00001002d00004154* - ID_MODEL_FROM_DATABASE=RV350 GL [FireGL T2] -@@ -1887,64 +1887,64 @@ pci:v00001002d00004170* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) - - pci:v00001002d00004170sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=R9600 Pro secondary (Asus OEM for HP) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R9600 Pro secondary (Asus OEM for HP)) - - pci:v00001002d00004170sv00001002sd00004723* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 AGP Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (All-in-Wonder 2006 AGP Edition (Secondary)) - - pci:v00001002d00004170sv00001458sd00004025* -- ID_MODEL_FROM_DATABASE=GV-R96128D (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GV-R96128D (Secondary)) - - pci:v00001002d00004170sv0000148Csd00002067* -- ID_MODEL_FROM_DATABASE=R96A-C3N (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (R96A-C3N (Secondary)) - - pci:v00001002d00004170sv0000174Bsd00007C28* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) - - pci:v00001002d00004170sv000017EEsd00002003* -- ID_MODEL_FROM_DATABASE=Radeon 9600 256Mb (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (Radeon 9600 256Mb (Secondary)) - - pci:v00001002d00004170sv000018BCsd00000100* -- ID_MODEL_FROM_DATABASE=GC-R9600PRO (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] (Secondary) (GC-R9600PRO (Secondary)) - - pci:v00001002d00004171* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) - - pci:v00001002d00004171sv00001043sd0000C005* -- ID_MODEL_FROM_DATABASE=A9600SE (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) (A9600SE (Secondary)) - - pci:v00001002d00004172* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) - - pci:v00001002d00004172sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) - - pci:v00001002d00004172sv00001002sd00004773* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 9600 XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (All-in-Wonder 9600 XT (Secondary)) - - pci:v00001002d00004172sv00001043sd0000C003* -- ID_MODEL_FROM_DATABASE=A9600XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT (Secondary)) - - pci:v00001002d00004172sv00001043sd0000C01B* -- ID_MODEL_FROM_DATABASE=A9600XT/TD (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (A9600XT/TD (Secondary)) - - pci:v00001002d00004172sv0000174Bsd00007C28* -- ID_MODEL_FROM_DATABASE=Radeon 9600XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600XT (Secondary)) - - pci:v00001002d00004172sv00001787sd00004003* -- ID_MODEL_FROM_DATABASE=Radeon 9600 XT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600/X1050 Series] (Secondary) (Radeon 9600 XT (Secondary)) - - pci:v00001002d00004173* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) - - pci:v00001002d00004173sv00001043sd0000010D* -- ID_MODEL_FROM_DATABASE=A9550GE/TD (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550] (Secondary) (A9550GE/TD (Secondary)) - - pci:v00001002d00004242* - ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] - - pci:v00001002d00004242sv00001002sd000002AA* -- ID_MODEL_FROM_DATABASE=Radeon 8500 AIW DV Edition -+ ID_MODEL_FROM_DATABASE=R200 [All-In-Wonder Radeon 8500 DV] (Radeon 8500 AIW DV Edition) - - pci:v00001002d00004243* - ID_MODEL_FROM_DATABASE=R200 PCI Bridge [All-in-Wonder Radeon 8500DV] -@@ -1953,22 +1953,22 @@ pci:v00001002d00004336* - ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] - - pci:v00001002d00004336sv00001002sd00004336* -- ID_MODEL_FROM_DATABASE=Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M) -+ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M)) - - pci:v00001002d00004336sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Video -+ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (Pavilion ze4400 builtin Video) - - pci:v00001002d00004336sv0000161Fsd00002029* -- ID_MODEL_FROM_DATABASE=eMachines M5312 builtin Video -+ ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] (eMachines M5312 builtin Video) - - pci:v00001002d00004337* - ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] - - pci:v00001002d00004337sv00001014sd0000053A* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (ThinkPad R40e) - - pci:v00001002d00004337sv0000103Csd00000850* -- ID_MODEL_FROM_DATABASE=Radeon IGP 345M -+ ID_MODEL_FROM_DATABASE=RS200M [Radeon IGP 330M/340M/345M/350M] (Radeon IGP 345M) - - pci:v00001002d00004341* - ID_MODEL_FROM_DATABASE=IXP150 AC'97 Audio Controller -@@ -2013,160 +2013,160 @@ pci:v00001002d00004370* - ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller - - pci:v00001002d00004370sv00001025sd00000079* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5024WLMMi) - - pci:v00001002d00004370sv00001025sd00000091* -- ID_MODEL_FROM_DATABASE=Aspire 5032WXMi -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Aspire 5032WXMi) - - pci:v00001002d00004370sv0000103Csd00002A05* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004370sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6125) - - pci:v00001002d00004370sv0000105Bsd00000C81* -- ID_MODEL_FROM_DATABASE=Realtek ALC 653 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (Realtek ALC 653) - - pci:v00001002d00004370sv0000107Bsd00000300* -- ID_MODEL_FROM_DATABASE=MX6421 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MX6421) - - pci:v00001002d00004370sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Audio Controller (MS-1013 Notebook) - - pci:v00001002d00004371* - ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge - - pci:v00001002d00004371sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (MX6125) - - pci:v00001002d00004371sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-PCI Bridge (Aspire L250) - - pci:v00001002d00004372* - ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller - - pci:v00001002d00004372sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire 5024WLMMi) - - pci:v00001002d00004372sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004372sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MX6125) - - pci:v00001002d00004372sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (MS-1013 Notebook) - - pci:v00001002d00004372sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 SMBus Controller (Aspire L250) - - pci:v00001002d00004373* - ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller - - pci:v00001002d00004373sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire 5024WLMMi) - - pci:v00001002d00004373sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004373sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (MX6125) - - pci:v00001002d00004373sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB2 Host Controller (Aspire L250) - - pci:v00001002d00004374* - ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller - - pci:v00001002d00004374sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004374sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) - - pci:v00001002d00004374sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) - - pci:v00001002d00004375* - ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller - - pci:v00001002d00004375sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire 5024WLMMi) - - pci:v00001002d00004375sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004375sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (MX6125) - - pci:v00001002d00004375sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 USB Host Controller (Aspire L250) - - pci:v00001002d00004376* - ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller - - pci:v00001002d00004376sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire 5024WLMMi) - - pci:v00001002d00004376sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004376sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MX6125) - - pci:v00001002d00004376sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (MS-1013 Notebook) - - pci:v00001002d00004376sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 IDE Controller (Aspire L250) - - pci:v00001002d00004377* - ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge - - pci:v00001002d00004377sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire 5024WLMi) - - pci:v00001002d00004377sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Pavilion t3030.de Desktop PC) - - pci:v00001002d00004377sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (MX6125) - - pci:v00001002d00004377sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 PCI-ISA Bridge (Aspire L250) - - pci:v00001002d00004378* - ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller - - pci:v00001002d00004378sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (Aspire 5024WLMMi) - - pci:v00001002d00004378sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MX6125) - - pci:v00001002d00004378sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=IXP SB400 AC'97 Modem Controller (MS-1013 Notebook) - - pci:v00001002d00004379* - ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller - - pci:v00001002d00004379sv00001462sd00007141* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 Serial ATA Controller (Aspire L250) - - pci:v00001002d0000437A* - ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller - - pci:v00001002d0000437Asv00001002sd00004379* -- ID_MODEL_FROM_DATABASE=4379 Serial ATA Controller -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (4379 Serial ATA Controller) - - pci:v00001002d0000437Asv00001002sd0000437A* -- ID_MODEL_FROM_DATABASE=437A Serial ATA Controller -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (437A Serial ATA Controller) - - pci:v00001002d0000437Asv00001462sd00007141* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Aspire L250) - - pci:v00001002d0000437Asv000014F1sd00008800* -- ID_MODEL_FROM_DATABASE=Leadtek WinFast TV2000XP Expert -+ ID_MODEL_FROM_DATABASE=IXP SB400 Serial ATA Controller (Leadtek WinFast TV2000XP Expert) - - pci:v00001002d0000437B* - ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller -@@ -2175,31 +2175,31 @@ pci:v00001002d0000437Bsv00001002sd0000437B* - ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller - - pci:v00001002d0000437Bsv000010CFsd00001326* -- ID_MODEL_FROM_DATABASE=Fujitsu Lifebook A3040 -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Fujitsu Lifebook A3040) - - pci:v00001002d0000437Bsv00001734sd000010B8* -- ID_MODEL_FROM_DATABASE=Realtek High Definition Audio -+ ID_MODEL_FROM_DATABASE=IXP SB4x0 High Definition Audio Controller (Realtek High Definition Audio) - - pci:v00001002d00004380* - ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA - - pci:v00001002d00004380sv0000103Csd00002813* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (DC5750 Microtower) - - pci:v00001002d00004380sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Satellite P305D-S8995E) - - pci:v00001002d00004380sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-MA790FX-DS5 (rev. 1.0) -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (GA-MA790FX-DS5 (rev. 1.0)) - - pci:v00001002d00004380sv00001458sd0000B005* -- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (Gigabyte GA-MA69G-S3H Motherboard) - - pci:v00001002d00004380sv00001462sd00007327* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (K9AG Neo2) - - pci:v00001002d00004380sv000017F2sd00005999* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 Non-Raid-5 SATA (KI690-AM2 Motherboard) - - pci:v00001002d00004381* - ID_MODEL_FROM_DATABASE=SB600 SATA Controller (RAID 5 mode) -@@ -2211,34 +2211,34 @@ pci:v00001002d00004383* - ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) - - pci:v00001002d00004383sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (A785GM-M) - - pci:v00001002d00004383sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Pavilion DM1Z-3000) - - pci:v00001002d00004383sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (DC5750 Microtower) - - pci:v00001002d00004383sv00001043sd00008230* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M3A78-EH Motherboard) - - pci:v00001002d00004383sv00001043sd0000836C* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A785TD Motherboard) - - pci:v00001002d00004383sv00001043sd00008410* -- ID_MODEL_FROM_DATABASE=M4A89GTD PRO/USB3 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M4A89GTD PRO/USB3 Motherboard) - - pci:v00001002d00004383sv00001043sd0000841B* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M5A88-V EVO) - - pci:v00001002d00004383sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Satellite P305D-S8995E) - - pci:v00001002d00004383sv00001458sd0000A022* -- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (GA-MA770-DS3rev2.0 Motherboard) - - pci:v00001002d00004383sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (KI690-AM2 Motherboard) - - pci:v00001002d00004384* - ID_MODEL_FROM_DATABASE=SBx00 PCI to PCI Bridge -@@ -2247,160 +2247,160 @@ pci:v00001002d00004385* - ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller - - pci:v00001002d00004385sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (A785GM-M) - - pci:v00001002d00004385sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Pavilion DM1Z-3000) - - pci:v00001002d00004385sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (DC5750 Microtower) - - pci:v00001002d00004385sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M3A78-EH Motherboard) - - pci:v00001002d00004385sv00001043sd00008389* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M4A785TD Motherboard) - - pci:v00001002d00004385sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Satellite P305D-S8995E) - - pci:v00001002d00004385sv00001458sd00004385* -- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (GA-MA770-DS3rev2.0 Motherboard) - - pci:v00001002d00004385sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (K9AG Neo2) - - pci:v00001002d00004385sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (H8DGU) - - pci:v00001002d00004385sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (PURE Fusion Mini) - - pci:v00001002d00004385sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (KI690-AM2 Motherboard) - - pci:v00001002d00004386* - ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) - - pci:v00001002d00004386sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (DC5750 Microtower) - - pci:v00001002d00004386sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (Satellite P305D-S8995E) - - pci:v00001002d00004386sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (K9AG Neo2) - - pci:v00001002d00004386sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB Controller (EHCI) (KI690-AM2 Motherboard) - - pci:v00001002d00004387* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) - - pci:v00001002d00004387sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (DC5750 Microtower) - - pci:v00001002d00004387sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (Satellite P305D-S8995E) - - pci:v00001002d00004387sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (K9AG Neo2) - - pci:v00001002d00004387sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI0) (KI690-AM2 Motherboard) - - pci:v00001002d00004388* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) - - pci:v00001002d00004388sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (DC5750 Microtower) - - pci:v00001002d00004388sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (Satellite P305D-S8995E) - - pci:v00001002d00004388sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (K9AG Neo2) - - pci:v00001002d00004388sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI1) (KI690-AM2 Motherboard) - - pci:v00001002d00004389* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) - - pci:v00001002d00004389sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (DC5750 Microtower) - - pci:v00001002d00004389sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (Satellite P305D-S8995E) - - pci:v00001002d00004389sv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (K9AG Neo2) - - pci:v00001002d00004389sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI2) (KI690-AM2 Motherboard) - - pci:v00001002d0000438A* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) - - pci:v00001002d0000438Asv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (DC5750 Microtower) - - pci:v00001002d0000438Asv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (Satellite P305D-S8995E) - - pci:v00001002d0000438Asv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (K9AG Neo2) - - pci:v00001002d0000438Asv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI3) (KI690-AM2 Motherboard) - - pci:v00001002d0000438B* - ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) - - pci:v00001002d0000438Bsv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (DC5750 Microtower) - - pci:v00001002d0000438Bsv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (Satellite P305D-S8995E) - - pci:v00001002d0000438Bsv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (K9AG Neo2) - - pci:v00001002d0000438Bsv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 USB (OHCI4) (KI690-AM2 Motherboard) - - pci:v00001002d0000438C* - ID_MODEL_FROM_DATABASE=SB600 IDE - - pci:v00001002d0000438Csv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 IDE (DC5750 Microtower) - - pci:v00001002d0000438Csv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 IDE (Satellite P305D-S8995E) - - pci:v00001002d0000438Csv00001458sd00005002* -- ID_MODEL_FROM_DATABASE=Gigabyte GA-MA69G-S3H Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 IDE (Gigabyte GA-MA69G-S3H Motherboard) - - pci:v00001002d0000438Csv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 IDE (K9AG Neo2) - - pci:v00001002d0000438Csv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 IDE (KI690-AM2 Motherboard) - - pci:v00001002d0000438D* - ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge - - pci:v00001002d0000438Dsv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (DC5750 Microtower) - - pci:v00001002d0000438Dsv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (Satellite P305D-S8995E) - - pci:v00001002d0000438Dsv00001462sd00007368* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (K9AG Neo2) - - pci:v00001002d0000438Dsv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=SB600 PCI to LPC Bridge (KI690-AM2 Motherboard) - - pci:v00001002d0000438E* - ID_MODEL_FROM_DATABASE=SB600 AC97 Modem -@@ -2409,31 +2409,31 @@ pci:v00001002d00004390* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] - - pci:v00001002d00004390sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M3A78-EH Motherboard) - - pci:v00001002d00004390sv00001043sd00008389* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M4A785TD Motherboard) - - pci:v00001002d00004390sv00001458sd0000B002* -- ID_MODEL_FROM_DATABASE=GA-MA770-DS3rev2.0 Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (GA-MA770-DS3rev2.0 Motherboard) - - pci:v00001002d00004390sv00001849sd00004390* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (Motherboard (one of many)) - - pci:v00001002d00004391* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] - - pci:v00001002d00004391sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (Pavilion DM1Z-3000) - - pci:v00001002d00004391sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M3A78-EH Motherboard) - - pci:v00001002d00004391sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M5A88-V EVO) - - pci:v00001002d00004391sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (PURE Fusion Mini) - - pci:v00001002d00004392* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] -@@ -2451,97 +2451,97 @@ pci:v00001002d00004396* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller - - pci:v00001002d00004396sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (A785GM-M) - - pci:v00001002d00004396sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (Pavilion DM1Z-3000) - - pci:v00001002d00004396sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M3A78-EH Motherboard) - - pci:v00001002d00004396sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M5A88-V EVO) - - pci:v00001002d00004396sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (H8DGU) - - pci:v00001002d00004396sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (PURE Fusion Mini) - - pci:v00001002d00004397* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller - - pci:v00001002d00004397sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (A785GM-M) - - pci:v00001002d00004397sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (Pavilion DM1Z-3000) - - pci:v00001002d00004397sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M3A78-EH Motherboard) - - pci:v00001002d00004397sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M5A88-V EVO) - - pci:v00001002d00004397sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (H8DGU) - - pci:v00001002d00004397sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (PURE Fusion Mini) - - pci:v00001002d00004398* - ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller - - pci:v00001002d00004398sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (A785GM-M) - - pci:v00001002d00004398sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (M3A78-EH Motherboard) - - pci:v00001002d00004398sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (H8DGU) - - pci:v00001002d00004399* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller - - pci:v00001002d00004399sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (A785GM-M) - - pci:v00001002d00004399sv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M3A78-EH Motherboard) - - pci:v00001002d00004399sv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M5A88-V EVO) - - pci:v00001002d00004399sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (PURE Fusion Mini) - - pci:v00001002d0000439C* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller - - pci:v00001002d0000439Csv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (A785GM-M) - - pci:v00001002d0000439Csv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (M3A78-EH Motherboard) - - pci:v00001002d0000439D* - ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller - - pci:v00001002d0000439Dsv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (A785GM-M) - - pci:v00001002d0000439Dsv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (Pavilion DM1Z-3000) - - pci:v00001002d0000439Dsv00001043sd000082EF* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M3A78-EH Motherboard) - - pci:v00001002d0000439Dsv00001043sd00008443* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M5A88-V EVO) - - pci:v00001002d0000439Dsv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (PURE Fusion Mini) - - pci:v00001002d000043A0* - ID_MODEL_FROM_DATABASE=SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) -@@ -2568,88 +2568,88 @@ pci:v00001002d00004742* - ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X - - pci:v00001002d00004742sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00000061* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) - - pci:v00001002d00004742sv00001002sd00000062* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) - - pci:v00001002d00004742sv00001002sd00000063* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro AIW AGP 2X) - - pci:v00001002d00004742sv00001002sd00000080* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00004742* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001002sd00008001* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001028sd00000082* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001028sd00004082* -- ID_MODEL_FROM_DATABASE=Optiplex GX1 Onboard Display Adapter -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Optiplex GX1 Onboard Display Adapter) - - pci:v00001002d00004742sv00001028sd00008082* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00001028sd0000C082* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004742sv00008086sd00004152* -- ID_MODEL_FROM_DATABASE=Xpert 98D AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Xpert 98D AGP 2X) - - pci:v00001002d00004742sv00008086sd0000464A* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 2X (Rage Pro Turbo AGP 2X) - - pci:v00001002d00004744* - ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X - - pci:v00001002d00004744sv00001002sd00004744* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo AGP -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage Pro Turbo AGP) - - pci:v00001002d00004744sv00008086sd00004D55* -- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 1X [Intel MU440EX] -+ ID_MODEL_FROM_DATABASE=3D Rage PRO AGP 1X (Rage 3D Pro AGP 1X [Intel MU440EX]) - - pci:v00001002d00004749* - ID_MODEL_FROM_DATABASE=3D Rage PRO PCI - - pci:v00001002d00004749sv00001002sd00000061* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW -+ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) - - pci:v00001002d00004749sv00001002sd00000062* -- ID_MODEL_FROM_DATABASE=Rage Pro AIW -+ ID_MODEL_FROM_DATABASE=3D Rage PRO PCI (Rage Pro AIW) - - pci:v00001002d0000474D* - ID_MODEL_FROM_DATABASE=Rage XL AGP 2X - - pci:v00001002d0000474Dsv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) - - pci:v00001002d0000474Dsv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 98 RXL AGP 2X -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 RXL AGP 2X) - - pci:v00001002d0000474Dsv00001002sd00000080* - ID_MODEL_FROM_DATABASE=Rage XL AGP 2X - - pci:v00001002d0000474Dsv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Xpert 98 AGP 2X) - - pci:v00001002d0000474Dsv00001002sd0000474D* -- ID_MODEL_FROM_DATABASE=Rage XL AGP -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) - - pci:v00001002d0000474Dsv00001033sd0000806A* -- ID_MODEL_FROM_DATABASE=Rage XL AGP -+ ID_MODEL_FROM_DATABASE=Rage XL AGP 2X (Rage XL AGP) - - pci:v00001002d0000474E* - ID_MODEL_FROM_DATABASE=Rage XC AGP -@@ -2670,79 +2670,79 @@ pci:v00001002d00004750* - ID_MODEL_FROM_DATABASE=3D Rage Pro PCI - - pci:v00001002d00004750sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00000080* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004750sv00001002sd00004750* -- ID_MODEL_FROM_DATABASE=Rage Pro Turbo -+ ID_MODEL_FROM_DATABASE=3D Rage Pro PCI (Rage Pro Turbo) - - pci:v00001002d00004752* - ID_MODEL_FROM_DATABASE=Rage XL PCI - - pci:v00001002d00004752sv00000E11sd0000001E* -- ID_MODEL_FROM_DATABASE=Proliant Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) - - pci:v00001002d00004752sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) - - pci:v00001002d00004752sv00001002sd00004752* -- ID_MODEL_FROM_DATABASE=Proliant Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Proliant Rage XL) - - pci:v00001002d00004752sv00001002sd00008008* -- ID_MODEL_FROM_DATABASE=Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Rage XL) - - pci:v00001002d00004752sv00001014sd00000240* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (eServer xSeries server mainboard) - - pci:v00001002d00004752sv00001028sd000000CE* -- ID_MODEL_FROM_DATABASE=PowerEdge 1400 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1400) - - pci:v00001002d00004752sv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=PowerEdge 2550 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2550) - - pci:v00001002d00004752sv00001028sd000000D9* -- ID_MODEL_FROM_DATABASE=PowerEdge 2500 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 2500) - - pci:v00001002d00004752sv00001028sd00000134* -- ID_MODEL_FROM_DATABASE=PowerEdge 600SC -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 600SC) - - pci:v00001002d00004752sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 1750) - - pci:v00001002d00004752sv00001028sd00000165* -- ID_MODEL_FROM_DATABASE=PowerEdge 750 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PowerEdge 750) - - pci:v00001002d00004752sv0000103Csd000010E1* -- ID_MODEL_FROM_DATABASE=NetServer Rage XL -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (NetServer Rage XL) - - pci:v00001002d00004752sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (ProLiant DL140 G2) - - pci:v00001002d00004752sv0000107Bsd00006400* -- ID_MODEL_FROM_DATABASE=6400 Server -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (6400 Server) - - pci:v00001002d00004752sv00001734sd0000007A* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard VGA -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (PRIMERGY RX/TX series onboard VGA) - - pci:v00001002d00004752sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (Primergy Econel 200 D2020 mainboard) - - pci:v00001002d00004752sv00008086sd00003411* -- ID_MODEL_FROM_DATABASE=SDS2 Mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (SDS2 Mainboard) - - pci:v00001002d00004752sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (S875WP1-E mainboard) - - pci:v00001002d00004752sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=Rage XL PCI (S845WD1-E mainboard) - - pci:v00001002d00004753* - ID_MODEL_FROM_DATABASE=Rage XC -@@ -2760,28 +2760,28 @@ pci:v00001002d00004756* - ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] - - pci:v00001002d00004756sv00001002sd00004756* -- ID_MODEL_FROM_DATABASE=Rage IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC PCI [Mach64 GT IIC] (Rage IIC) - - pci:v00001002d00004757* - ID_MODEL_FROM_DATABASE=3D Rage IIC AGP - - pci:v00001002d00004757sv00001002sd00004757* -- ID_MODEL_FROM_DATABASE=Rage IIC AGP -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) - - pci:v00001002d00004757sv00001028sd00000089* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004757sv00001028sd0000008E* -- ID_MODEL_FROM_DATABASE=PowerEdge 1300 onboard video -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (PowerEdge 1300 onboard video) - - pci:v00001002d00004757sv00001028sd00004082* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004757sv00001028sd00008082* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004757sv00001028sd0000C082* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d00004758* - ID_MODEL_FROM_DATABASE=210888GX [Mach64 GX PCI] -@@ -2793,40 +2793,40 @@ pci:v00001002d0000475A* - ID_MODEL_FROM_DATABASE=3D Rage IIC AGP - - pci:v00001002d0000475Asv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Rage 3D Pro AGP 2x XPERT 98 -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D Pro AGP 2x XPERT 98) - - pci:v00001002d0000475Asv00001002sd00000087* -- ID_MODEL_FROM_DATABASE=Rage 3D IIC -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage 3D IIC) - - pci:v00001002d0000475Asv00001002sd0000475A* -- ID_MODEL_FROM_DATABASE=Rage IIC AGP -+ ID_MODEL_FROM_DATABASE=3D Rage IIC AGP (Rage IIC AGP) - - pci:v00001002d00004966* - ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] - - pci:v00001002d00004966sv000010F1sd00000002* -- ID_MODEL_FROM_DATABASE=RV250 If [Tachyon G9000 PRO] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Tachyon G9000 PRO]) - - pci:v00001002d00004966sv0000148Csd00002039* -- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 Pro "Evil Commando"] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 Pro "Evil Commando"]) - - pci:v00001002d00004966sv00001509sd00009A00* -- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "AT009"] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "AT009"]) - - pci:v00001002d00004966sv00001681sd00000040* -- ID_MODEL_FROM_DATABASE=RV250 If [3D prophet 9000] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [3D prophet 9000]) - - pci:v00001002d00004966sv0000174Bsd00007176* -- ID_MODEL_FROM_DATABASE=Radeon 9000 Pro -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (Radeon 9000 Pro) - - pci:v00001002d00004966sv0000174Bsd00007192* -- ID_MODEL_FROM_DATABASE=RV250 If [Radeon 9000 "Atlantis"] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Radeon 9000 "Atlantis"]) - - pci:v00001002d00004966sv000017AFsd00002005* -- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000 Pro] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000 Pro]) - - pci:v00001002d00004966sv000017AFsd00002006* -- ID_MODEL_FROM_DATABASE=RV250 If [Excalibur Radeon 9000] -+ ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000 Series] (RV250 If [Excalibur Radeon 9000]) - - pci:v00001002d0000496E* - ID_MODEL_FROM_DATABASE=RV250 [Radeon 9000] (Secondary) -@@ -2835,7 +2835,7 @@ pci:v00001002d00004A49* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] - - pci:v00001002d00004A49sv0000174Bsd00002620* -- ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GTO AGP] -+ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO AGP] (R420 [Radeon X800 GTO AGP]) - - pci:v00001002d00004A4A* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 GT AGP] -@@ -2859,7 +2859,7 @@ pci:v00001002d00004A54* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] - - pci:v00001002d00004A54sv00001002sd00004422* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 VE AGP -+ ID_MODEL_FROM_DATABASE=R420 [Radeon X800 VE AGP] (All-In-Wonder X800 VE AGP) - - pci:v00001002d00004A69* - ID_MODEL_FROM_DATABASE=R420 [Radeon X800 PRO/GTO] (Secondary) -@@ -2898,40 +2898,40 @@ pci:v00001002d00004C42* - ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X - - pci:v00001002d00004C42sv00000E11sd0000B0E7* -- ID_MODEL_FROM_DATABASE=Rage LT Pro (Compaq Presario 5240) -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro (Compaq Presario 5240)) - - pci:v00001002d00004C42sv00000E11sd0000B0E8* -- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) - - pci:v00001002d00004C42sv00000E11sd0000B10E* -- ID_MODEL_FROM_DATABASE=3D Rage LT Pro (Compaq Armada 1750) -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (3D Rage LT Pro (Compaq Armada 1750)) - - pci:v00001002d00004C42sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001002sd00004C42* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001002sd00008001* -- ID_MODEL_FROM_DATABASE=Rage LT Pro AGP 2X -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage LT Pro AGP 2X) - - pci:v00001002d00004C42sv00001028sd00000085* -- ID_MODEL_FROM_DATABASE=Rage 3D LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO AGP 2X (Rage 3D LT Pro) - - pci:v00001002d00004C46* - ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 - - pci:v00001002d00004C46sv00001002sd00000155* -- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p -+ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) - - pci:v00001002d00004C46sv00001014sd00000155* -- ID_MODEL_FROM_DATABASE=IBM Thinkpad A22p -+ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (IBM Thinkpad A22p) - - pci:v00001002d00004C46sv00001028sd000000B1* -- ID_MODEL_FROM_DATABASE=Latitude C600 -+ ID_MODEL_FROM_DATABASE=Rage Mobility 128 AGP 2X/Mobility M3 (Latitude C600) - - pci:v00001002d00004C47* - ID_MODEL_FROM_DATABASE=3D Rage IIC PCI / Mobility Radeon 7500/7500C -@@ -2940,55 +2940,55 @@ pci:v00001002d00004C49* - ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI - - pci:v00001002d00004C49sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C49sv00001002sd00000040* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C49sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C49sv00001002sd00004C49* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C4D* - ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series - - pci:v00001002d00004C4Dsv00000E11sd0000B111* -- ID_MODEL_FROM_DATABASE=Armada M700 -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada M700) - - pci:v00001002d00004C4Dsv00000E11sd0000B160* -- ID_MODEL_FROM_DATABASE=Armada E500 -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Armada E500) - - pci:v00001002d00004C4Dsv00001002sd00000084* -- ID_MODEL_FROM_DATABASE=Xpert 98 AGP 2X (Mobility) -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Xpert 98 AGP 2X (Mobility)) - - pci:v00001002d00004C4Dsv00001014sd00000154* -- ID_MODEL_FROM_DATABASE=ThinkPad A20m/A21m -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (ThinkPad A20m/A21m) - - pci:v00001002d00004C4Dsv00001028sd000000AA* -- ID_MODEL_FROM_DATABASE=Latitude CPt -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPt) - - pci:v00001002d00004C4Dsv00001028sd000000BB* -- ID_MODEL_FROM_DATABASE=Latitude CPx -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Latitude CPx) - - pci:v00001002d00004C4Dsv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Satellite 1715XCDS laptop -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (Satellite 1715XCDS laptop) - - pci:v00001002d00004C4Dsv000013BDsd00001019* -- ID_MODEL_FROM_DATABASE=PC-AR10 -+ ID_MODEL_FROM_DATABASE=Rage Mobility AGP 2x Series (PC-AR10) - - pci:v00001002d00004C50* - ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI - - pci:v00001002d00004C50sv00001002sd00004C50* -- ID_MODEL_FROM_DATABASE=Rage LT Pro -+ ID_MODEL_FROM_DATABASE=3D Rage LT PRO PCI (Rage LT Pro) - - pci:v00001002d00004C52* - ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI - - pci:v00001002d00004C52sv00001033sd00008112* -- ID_MODEL_FROM_DATABASE=Versa Note VXi -+ ID_MODEL_FROM_DATABASE=Rage Mobility-M1 PCI (Versa Note VXi) - - pci:v00001002d00004C54* - ID_MODEL_FROM_DATABASE=264LT [Mach64 LT] -@@ -2997,22 +2997,22 @@ pci:v00001002d00004C57* - ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] - - pci:v00001002d00004C57sv00001014sd00000517* -- ID_MODEL_FROM_DATABASE=ThinkPad T30 -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) - - pci:v00001002d00004C57sv00001014sd00000530* -- ID_MODEL_FROM_DATABASE=ThinkPad T42 2373-4WU -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) - - pci:v00001002d00004C57sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW (Dell Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) - - pci:v00001002d00004C57sv00001028sd0000012A* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Latitude C640) - - pci:v00001002d00004C57sv00001043sd00001622* -- ID_MODEL_FROM_DATABASE=Mobility Radeon M7 (L3C/S) -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Mobility Radeon M7 (L3C/S)) - - pci:v00001002d00004C57sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=Radeon Mobility M7 LW in vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW in vpr Matrix 170B4) - - pci:v00001002d00004C58* - ID_MODEL_FROM_DATABASE=RV200/M7 GL [Mobility FireGL 7800] -@@ -3021,31 +3021,31 @@ pci:v00001002d00004C59* - ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] - - pci:v00001002d00004C59sv00000E11sd0000B111* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Evo N600c) - - pci:v00001002d00004C59sv00001014sd00000235* -- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p (2652/2653) -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad A30/A30p (2652/2653)) - - pci:v00001002d00004C59sv00001014sd00000239* -- ID_MODEL_FROM_DATABASE=ThinkPad X22/X23/X24 -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (ThinkPad X22/X23/X24) - - pci:v00001002d00004C59sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (XE4500 Notebook) - - pci:v00001002d00004C59sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00001002d00004C59sv0000104Dsd00008140* -- ID_MODEL_FROM_DATABASE=PCG-Z1SP laptop -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (PCG-Z1SP laptop) - - pci:v00001002d00004C59sv00001509sd00001930* -- ID_MODEL_FROM_DATABASE=Medion MD9703 -+ ID_MODEL_FROM_DATABASE=RV100/M6 [Rage/Radeon Mobility Series] (Medion MD9703) - - pci:v00001002d00004C66* - ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] - - pci:v00001002d00004C66sv00001014sd0000054D* -- ID_MODEL_FROM_DATABASE=ThinkPad T41 -+ ID_MODEL_FROM_DATABASE=RV250/M9 GL [Mobility FireGL 9000/Radeon 9000] (ThinkPad T41) - - pci:v00001002d00004C6E* - ID_MODEL_FROM_DATABASE=RV250/M9 [Mobility Radeon 9000] (Secondary) -@@ -3063,19 +3063,19 @@ pci:v00001002d00004E44* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] - - pci:v00001002d00004E44sv00001002sd0000515E* -- ID_MODEL_FROM_DATABASE=Radeon ES1000 -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) - - pci:v00001002d00004E44sv00001002sd00005965* -- ID_MODEL_FROM_DATABASE=Radeon ES1000 -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9700/9700 PRO] (Radeon ES1000) - - pci:v00001002d00004E45* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] - - pci:v00001002d00004E45sv00001002sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Radeon R300 NE [Radeon 9500 Pro]) - - pci:v00001002d00004E45sv00001681sd00000002* -- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO/9700] (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro]) - - pci:v00001002d00004E46* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9600 TX] -@@ -3093,7 +3093,7 @@ pci:v00001002d00004E4A* - ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] - - pci:v00001002d00004E4Asv00001002sd00004E4A* -- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] -+ ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XXL/XT] (R360 [Radeon 9800 XT]) - - pci:v00001002d00004E4B* - ID_MODEL_FROM_DATABASE=R350 GL [FireGL X2 AGP Pro] -@@ -3102,22 +3102,22 @@ pci:v00001002d00004E50* - ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] - - pci:v00001002d00004E50sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (TravelMate 290) - - pci:v00001002d00004E50sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC8000 laptop) - - pci:v00001002d00004E50sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (NC6000 laptop) - - pci:v00001002d00004E50sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P35 notebook -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (P35 notebook) - - pci:v00001002d00004E50sv00001462sd00000311* -- ID_MODEL_FROM_DATABASE=MSI M510A -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (MSI M510A) - - pci:v00001002d00004E50sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420W -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600 PRO Turbo] (Amilo M1420W) - - pci:v00001002d00004E51* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9550/9600/X1050 Series] -@@ -3126,7 +3126,7 @@ pci:v00001002d00004E52* - ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] - - pci:v00001002d00004E52sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P35 notebook -+ ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9500/9700 SE] (P35 notebook) - - pci:v00001002d00004E54* - ID_MODEL_FROM_DATABASE=RV350/M10 GL [Mobility FireGL T2] -@@ -3141,10 +3141,10 @@ pci:v00001002d00004E65* - ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) - - pci:v00001002d00004E65sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=Radeon R300 NE [Radeon 9500 Pro] -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Radeon R300 NE [Radeon 9500 Pro]) - - pci:v00001002d00004E65sv00001681sd00000003* -- ID_MODEL_FROM_DATABASE=Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary) -+ ID_MODEL_FROM_DATABASE=R300 [Radeon 9500 PRO] (Secondary) (Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary)) - - pci:v00001002d00004E66* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9600] (Secondary) -@@ -3162,10 +3162,10 @@ pci:v00001002d00004E6A* - ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) - - pci:v00001002d00004E6Asv00001002sd00004E6A* -- ID_MODEL_FROM_DATABASE=R360 [Radeon 9800 XT] (Secondary) -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (R360 [Radeon 9800 XT] (Secondary)) - - pci:v00001002d00004E6Asv00001002sd00004E71* -- ID_MODEL_FROM_DATABASE=M10 NQ [Radeon Mobility 9600] -+ ID_MODEL_FROM_DATABASE=RV350 [Radeon 9800 XT] (Secondary) (M10 NQ [Radeon Mobility 9600]) - - pci:v00001002d00004E71* - ID_MODEL_FROM_DATABASE=RV350/M10 [Mobility Radeon 9600] (Secondary) -@@ -3180,46 +3180,46 @@ pci:v00001002d00005044* - ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI - - pci:v00001002d00005044sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) - - pci:v00001002d00005044sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=All-In-Wonder 128 PCI (Rage 128 AIW) - - pci:v00001002d00005046* - ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS - - pci:v00001002d00005046sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) - - pci:v00001002d00005046sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005046sv00001002sd00000014* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) - - pci:v00001002d00005046sv00001002sd00000018* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005046sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) - - pci:v00001002d00005046sv00001002sd0000002A* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage 128 Pro AIW AGP) - - pci:v00001002d00005046sv00001002sd00000048* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury Pro) - - pci:v00001002d00005046sv00001002sd00002000* -- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (VGA device) -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (VGA device)) - - pci:v00001002d00005046sv00001002sd00002001* -- ID_MODEL_FROM_DATABASE=Rage Fury MAXX AGP 4x (TMDS) (Extra device?!) -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4x TMDS (Rage Fury MAXX AGP 4x (TMDS) (Extra device?!)) - - pci:v00001002d00005050* - ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] - - pci:v00001002d00005050sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 128 -+ ID_MODEL_FROM_DATABASE=Rage128 [Xpert 128 PCI] (Xpert 128) - - pci:v00001002d00005052* - ID_MODEL_FROM_DATABASE=Rage 128 PRO AGP 4X TMDS -@@ -3228,79 +3228,79 @@ pci:v00001002d00005144* - ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] - - pci:v00001002d00005144sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon VE) - - pci:v00001002d00005144sv00001002sd00000009* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000000A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000001A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Radeon AIW -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) - - pci:v00001002d00005144sv00001002sd00000038* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd00000039* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000008A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd000000BA* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd00000139* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd0000028A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005144sv00001002sd000002AA* -- ID_MODEL_FROM_DATABASE=Radeon AIW -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon AIW) - - pci:v00001002d00005144sv00001002sd0000053A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon -+ ID_MODEL_FROM_DATABASE=R100 [Radeon 7200 / All-In-Wonder Radeon] (Radeon 7000/Radeon) - - pci:v00001002d00005148* - ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] - - pci:v00001002d00005148sv00001002sd0000010A* -- ID_MODEL_FROM_DATABASE=FireGL 8800 64Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 64Mb) - - pci:v00001002d00005148sv00001002sd00000152* -- ID_MODEL_FROM_DATABASE=FireGL 8800 128Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8800 128Mb) - - pci:v00001002d00005148sv00001002sd00000162* -- ID_MODEL_FROM_DATABASE=FireGL 8700 32Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 32Mb) - - pci:v00001002d00005148sv00001002sd00000172* -- ID_MODEL_FROM_DATABASE=FireGL 8700 64Mb -+ ID_MODEL_FROM_DATABASE=R200 GL [FireGL 8800] (FireGL 8700 64Mb) - - pci:v00001002d0000514C* - ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] - - pci:v00001002d0000514Csv00001002sd0000003A* -- ID_MODEL_FROM_DATABASE=Radeon R200 QL [Radeon 8500 LE] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [Radeon 8500 LE]) - - pci:v00001002d0000514Csv00001002sd0000013A* -- ID_MODEL_FROM_DATABASE=Radeon 8500 -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500) - - pci:v00001002d0000514Csv0000148Csd00002026* -- ID_MODEL_FROM_DATABASE=R200 QL [Radeon 8500 Evil Master II Multi Display Edition] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (R200 QL [Radeon 8500 Evil Master II Multi Display Edition]) - - pci:v00001002d0000514Csv00001681sd00000010* -- ID_MODEL_FROM_DATABASE=Radeon 8500 [3D Prophet 8500 128Mb] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 [3D Prophet 8500 128Mb]) - - pci:v00001002d0000514Csv0000174Bsd00007149* -- ID_MODEL_FROM_DATABASE=Radeon 8500 LE -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon 8500 LE) - - pci:v00001002d0000514Csv00001787sd00000F08* -- ID_MODEL_FROM_DATABASE=Radeon R200 QL [PowerMagic Radeon 8500] -+ ID_MODEL_FROM_DATABASE=R200 [Radeon 8500/8500 LE] (Radeon R200 QL [PowerMagic Radeon 8500]) - - pci:v00001002d0000514D* - ID_MODEL_FROM_DATABASE=R200 [Radeon 9100] -@@ -3309,196 +3309,196 @@ pci:v00001002d00005157* - ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] - - pci:v00001002d00005157sv00001002sd0000013A* -- ID_MODEL_FROM_DATABASE=Radeon 7500 -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500) - - pci:v00001002d00005157sv00001002sd00000F2B* -- ID_MODEL_FROM_DATABASE=ALL-IN-WONDER VE PCI -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (ALL-IN-WONDER VE PCI) - - pci:v00001002d00005157sv00001002sd0000103A* -- ID_MODEL_FROM_DATABASE=Dell Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Dell Optiplex GX260) - - pci:v00001002d00005157sv00001458sd00004000* -- ID_MODEL_FROM_DATABASE=RV200 QW [RADEON 7500 PRO MAYA AR] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [RADEON 7500 PRO MAYA AR]) - - pci:v00001002d00005157sv0000148Csd00002024* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500LE Dual Display] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500LE Dual Display]) - - pci:v00001002d00005157sv0000148Csd00002025* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 Evil Master Multi Display Edition] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 Evil Master Multi Display Edition]) - - pci:v00001002d00005157sv0000148Csd00002036* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 PCI Dual Display] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 PCI Dual Display]) - - pci:v00001002d00005157sv0000174Bsd00007146* -- ID_MODEL_FROM_DATABASE=RV200 QW [Radeon 7500 LE] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Radeon 7500 LE]) - - pci:v00001002d00005157sv0000174Bsd00007147* -- ID_MODEL_FROM_DATABASE=Radeon 7500 LE -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon 7500 LE) - - pci:v00001002d00005157sv0000174Bsd00007161* -- ID_MODEL_FROM_DATABASE=Radeon RV200 QW [Radeon 7500 LE] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (Radeon RV200 QW [Radeon 7500 LE]) - - pci:v00001002d00005157sv000017AFsd00000202* -- ID_MODEL_FROM_DATABASE=RV200 QW [Excalibur Radeon 7500LE] -+ ID_MODEL_FROM_DATABASE=RV200 [Radeon 7500/7500 LE] (RV200 QW [Excalibur Radeon 7500LE]) - - pci:v00001002d00005159* - ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] - - pci:v00001002d00005159sv00001002sd0000000A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd0000000B* -- ID_MODEL_FROM_DATABASE=Radeon 7000 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) - - pci:v00001002d00005159sv00001002sd00000038* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd0000003A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd000000BA* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd0000013A* -- ID_MODEL_FROM_DATABASE=Radeon 7000/Radeon VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000/Radeon VE) - - pci:v00001002d00005159sv00001002sd00000908* -- ID_MODEL_FROM_DATABASE=XVR-100 (supplied by Sun) -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (XVR-100 (supplied by Sun)) - - pci:v00001002d00005159sv00001014sd0000029A* -- ID_MODEL_FROM_DATABASE=Remote Supervisor Adapter II (RSA2) -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Remote Supervisor Adapter II (RSA2)) - - pci:v00001002d00005159sv00001014sd000002C8* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (eServer xSeries server mainboard) - - pci:v00001002d00005159sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Embedded Radeon 7000/VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 1850 Embedded Radeon 7000/VE) - - pci:v00001002d00005159sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Embedded Radeon 7000-M -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 2850 Embedded Radeon 7000-M) - - pci:v00001002d00005159sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Embedded Radeon 7000/VE -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge 6850 Embedded Radeon 7000/VE) - - pci:v00001002d00005159sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (PowerEdge SC1425) - - pci:v00001002d00005159sv0000103Csd00001292* -- ID_MODEL_FROM_DATABASE=Radeon 7000 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000) - - pci:v00001002d00005159sv00001043sd0000C00A* -- ID_MODEL_FROM_DATABASE=A7000/T/64M -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (A7000/T/64M) - - pci:v00001002d00005159sv00001458sd00004002* -- ID_MODEL_FROM_DATABASE=RV100 QY [RADEON 7000 PRO MAYA AV Series] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [RADEON 7000 PRO MAYA AV Series]) - - pci:v00001002d00005159sv0000148Csd00002003* -- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Multi-Display Edition] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Multi-Display Edition]) - - pci:v00001002d00005159sv0000148Csd00002023* -- ID_MODEL_FROM_DATABASE=RV100 QY [Radeon 7000 Evil Master Multi-Display] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Radeon 7000 Evil Master Multi-Display]) - - pci:v00001002d00005159sv0000174Bsd00000280* -- ID_MODEL_FROM_DATABASE=Radeon RV100 QY [Radeon 7000/VE] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon RV100 QY [Radeon 7000/VE]) - - pci:v00001002d00005159sv0000174Bsd00007112* -- ID_MODEL_FROM_DATABASE=Radeon VE 7000 -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000) - - pci:v00001002d00005159sv0000174Bsd00007C28* -- ID_MODEL_FROM_DATABASE=Radeon VE 7000 DDR -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon VE 7000 DDR) - - pci:v00001002d00005159sv00001787sd00000202* -- ID_MODEL_FROM_DATABASE=RV100 QY [Excalibur Radeon 7000] -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (RV100 QY [Excalibur Radeon 7000]) - - pci:v00001002d00005159sv000017EEsd00001001* -- ID_MODEL_FROM_DATABASE=Radeon 7000 64MB DDR + DVI -+ ID_MODEL_FROM_DATABASE=RV100 [Radeon 7000 / Radeon VE] (Radeon 7000 64MB DDR + DVI) - - pci:v00001002d0000515E* - ID_MODEL_FROM_DATABASE=ES1000 - - pci:v00001002d0000515Esv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 1955 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge SC440) - - pci:v00001002d0000515Esv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 860) - - pci:v00001002d0000515Esv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R900 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge 2970 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T605 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R300 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T300 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R805 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000223* -- ID_MODEL_FROM_DATABASE=PowerEdge R905 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R905 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge T105 Embedded ATI ES1000) - - pci:v00001002d0000515Esv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 Embedded ATI ES1000 -+ ID_MODEL_FROM_DATABASE=ES1000 (PowerEdge R200 Embedded ATI ES1000) - - pci:v00001002d0000515Esv0000103Csd00001304* -- ID_MODEL_FROM_DATABASE=Integrity iLO2 Advanced KVM VGA [AD307A] -+ ID_MODEL_FROM_DATABASE=ES1000 (Integrity iLO2 Advanced KVM VGA [AD307A]) - - pci:v00001002d0000515Esv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=ES1000 (X7DVL-E-O motherboard) - - pci:v00001002d0000515Esv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=ES1000 (X7DBN Motherboard) - - pci:v00001002d0000515Esv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=ES1000 (S5000PSLSATA Server Board) - - pci:v00001002d00005245* - ID_MODEL_FROM_DATABASE=Rage 128 GL PCI - - pci:v00001002d00005245sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 128 -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Xpert 128) - - pci:v00001002d00005245sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) - - pci:v00001002d00005245sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) - - pci:v00001002d00005245sv00001002sd00000068* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 GL PCI (Rage 128 AIW) - - pci:v00001002d00005246* - ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x - - pci:v00001002d00005246sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Magnum/Xpert 128/Xpert 99 -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert 128/Xpert 99) - - pci:v00001002d00005246sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Magnum/Xpert128/X99/Xpert2000 -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Magnum/Xpert128/X99/Xpert2000) - - pci:v00001002d00005246sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) - - pci:v00001002d00005246sv00001002sd00000044* -- ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury/Xpert 128/Xpert 2000) - - pci:v00001002d00005246sv00001002sd00000068* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW AGP -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage 128 AIW AGP) - - pci:v00001002d00005246sv00001002sd00000448* -- ID_MODEL_FROM_DATABASE=Rage Fury -+ ID_MODEL_FROM_DATABASE=Rage Fury/Xpert 128/Xpert 2000 AGP 2x (Rage Fury) - - pci:v00001002d0000524B* - ID_MODEL_FROM_DATABASE=Rage 128 VR PCI -@@ -3507,73 +3507,73 @@ pci:v00001002d0000524C* - ID_MODEL_FROM_DATABASE=Rage 128 VR AGP - - pci:v00001002d0000524Csv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99/Xpert 2000) - - pci:v00001002d0000524Csv00001002sd00000088* -- ID_MODEL_FROM_DATABASE=Xpert 99 -+ ID_MODEL_FROM_DATABASE=Rage 128 VR AGP (Xpert 99) - - pci:v00001002d00005346* - ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x - - pci:v00001002d00005346sv00001002sd00000048* -- ID_MODEL_FROM_DATABASE=RAGE 128 16MB VGA TVOUT AMC PAL -+ ID_MODEL_FROM_DATABASE=Rage 128 SF/4x AGP 2x (RAGE 128 16MB VGA TVOUT AMC PAL) - - pci:v00001002d0000534D* - ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x - - pci:v00001002d0000534Dsv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Xpert 99/Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 99/Xpert 2000) - - pci:v00001002d0000534Dsv00001002sd00000018* -- ID_MODEL_FROM_DATABASE=Xpert 2000 -+ ID_MODEL_FROM_DATABASE=Rage 128 4X AGP 4x (Xpert 2000) - - pci:v00001002d00005354* - ID_MODEL_FROM_DATABASE=Mach 64 VT - - pci:v00001002d00005354sv00001002sd00005654* -- ID_MODEL_FROM_DATABASE=Mach 64 reference -+ ID_MODEL_FROM_DATABASE=Mach 64 VT (Mach 64 reference) - - pci:v00001002d00005446* - ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x - - pci:v00001002d00005446sv00001002sd00000004* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro) - - pci:v00001002d00005446sv00001002sd00000008* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005446sv00001002sd00000018* -- ID_MODEL_FROM_DATABASE=Rage Fury Pro/Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage Fury Pro/Xpert 2000 Pro) - - pci:v00001002d00005446sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) - - pci:v00001002d00005446sv00001002sd00000029* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) - - pci:v00001002d00005446sv00001002sd0000002A* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW Pro AGP -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW Pro AGP) - - pci:v00001002d00005446sv00001002sd0000002B* -- ID_MODEL_FROM_DATABASE=Rage 128 AIW -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Rage 128 AIW) - - pci:v00001002d00005446sv00001002sd00000048* -- ID_MODEL_FROM_DATABASE=Xpert 2000 Pro -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra AGP 4x (Xpert 2000 Pro) - - pci:v00001002d00005452* - ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP - - pci:v00001002d00005452sv00001002sd0000001C* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) - - pci:v00001002d00005452sv0000103Csd00001279* -- ID_MODEL_FROM_DATABASE=Rage 128 Pro 4XL -+ ID_MODEL_FROM_DATABASE=Rage 128 PRO Ultra4XL VR-R AGP (Rage 128 Pro 4XL) - - pci:v00001002d00005460* - ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] - - pci:v00001002d00005460sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] (CR11/VR11 Single Board Computer) - - pci:v00001002d00005461* - ID_MODEL_FROM_DATABASE=RV370/M22 [Mobility Radeon X300] -@@ -3594,16 +3594,16 @@ pci:v00001002d0000554B* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] - - pci:v00001002d0000554Bsv00001002sd00000302* -- ID_MODEL_FROM_DATABASE=Radeon X800 SE -+ ID_MODEL_FROM_DATABASE=R423 [Radeon X800 GT/SE] (Radeon X800 SE) - - pci:v00001002d0000554D* - ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] - - pci:v00001002d0000554Dsv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X800 XL -+ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (All-In-Wonder X800 XL) - - pci:v00001002d0000554Dsv00001458sd00002124* -- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) -+ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (GV-R80L256V-B (AGP)) - - pci:v00001002d0000554E* - ID_MODEL_FROM_DATABASE=R430 [All-In-Wonder X800 GT] -@@ -3627,7 +3627,7 @@ pci:v00001002d0000556D* - ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) - - pci:v00001002d0000556Dsv00001458sd00002125* -- ID_MODEL_FROM_DATABASE=GV-R80L256V-B (AGP) -+ ID_MODEL_FROM_DATABASE=R430 [Radeon X800 XL] (Secondary) (GV-R80L256V-B (AGP)) - - pci:v00001002d0000556F* - ID_MODEL_FROM_DATABASE=R430 [Radeon X800] (Secondary) -@@ -3648,16 +3648,16 @@ pci:v00001002d00005653* - ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] - - pci:v00001002d00005653sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (Aspire 5024WLMi) - - pci:v00001002d00005653sv0000103Csd00000940* -- ID_MODEL_FROM_DATABASE=HP Compaq NW8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=RV410/M26 [Mobility Radeon X700] (HP Compaq NW8240 Mobile Workstation) - - pci:v00001002d00005654* - ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] - - pci:v00001002d00005654sv00001002sd00005654* -- ID_MODEL_FROM_DATABASE=Mach64VT Reference -+ ID_MODEL_FROM_DATABASE=264VT [Mach64 VT] (Mach64VT Reference) - - pci:v00001002d00005655* - ID_MODEL_FROM_DATABASE=264VT3 [Mach64 VT3] -@@ -3699,22 +3699,22 @@ pci:v00001002d00005940* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) - - pci:v00001002d00005940sv000017AFsd00002021* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Secondary) (Excalibur Radeon 9250 (Secondary)) - - pci:v00001002d00005941* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) - - pci:v00001002d00005941sv00001458sd00004019* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) - - pci:v00001002d00005941sv0000174Bsd00007C12* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Radeon 9200) - - pci:v00001002d00005941sv000017AFsd0000200D* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (Excalibur Radeon 9200) - - pci:v00001002d00005941sv000018BCsd00000050* -- ID_MODEL_FROM_DATABASE=GC-R9200-C3 (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Secondary) (GC-R9200-C3 (Secondary)) - - pci:v00001002d00005944* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE PCI] -@@ -3723,22 +3723,22 @@ pci:v00001002d00005950* - ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge - - pci:v00001002d00005950sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMMi -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire 5024WLMMi) - - pci:v00001002d00005950sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (DC5750 Microtower) - - pci:v00001002d00005950sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Pavilion t3030.de Desktop PC) - - pci:v00001002d00005950sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MX6125) - - pci:v00001002d00005950sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (MS-1013 Notebook) - - pci:v00001002d00005950sv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RS480/RS482/RS485 Host Bridge (Aspire L250) - - pci:v00001002d00005951* - ID_MODEL_FROM_DATABASE=RX480/RX482 Host Bridge -@@ -3750,19 +3750,19 @@ pci:v00001002d00005954* - ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] - - pci:v00001002d00005954sv00001002sd00005954* -- ID_MODEL_FROM_DATABASE=RV370 [Radeon Xpress 200G Series] -+ ID_MODEL_FROM_DATABASE=RS480 [Radeon Xpress 200 Series] (RV370 [Radeon Xpress 200G Series]) - - pci:v00001002d00005955* - ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] - - pci:v00001002d00005955sv00001002sd00005955* -- ID_MODEL_FROM_DATABASE=RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)] -+ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (RS480 0x5955 [Radeon XPRESS 200M 5955 (PCIE)]) - - pci:v00001002d00005955sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MX6125) - - pci:v00001002d00005955sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=RS480M [Mobility Radeon Xpress 200] (MS-1013 Notebook) - - pci:v00001002d00005956* - ID_MODEL_FROM_DATABASE=RD790 Host Bridge -@@ -3771,7 +3771,7 @@ pci:v00001002d00005957* - ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge - - pci:v00001002d00005957sv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RX780/RX790 Host Bridge (A770CrossFire Motherboard) - - pci:v00001002d00005958* - ID_MODEL_FROM_DATABASE=RD780 Host Bridge -@@ -3780,37 +3780,37 @@ pci:v00001002d00005960* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] - - pci:v00001002d00005960sv000017AFsd00002020* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9250 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 PRO] (Excalibur Radeon 9250) - - pci:v00001002d00005961* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] - - pci:v00001002d00005961sv00001002sd00002F72* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 9200 Series -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (All-in-Wonder 9200 Series) - - pci:v00001002d00005961sv00001019sd00004C30* -- ID_MODEL_FROM_DATABASE=Radeon 9200 VIVO -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 VIVO) - - pci:v00001002d00005961sv000012ABsd00005961* -- ID_MODEL_FROM_DATABASE=YUAN SMARTVGA Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (YUAN SMARTVGA Radeon 9200) - - pci:v00001002d00005961sv00001458sd00004018* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) - - pci:v00001002d00005961sv0000174Bsd00007C13* -- ID_MODEL_FROM_DATABASE=Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200) - - pci:v00001002d00005961sv000017AFsd0000200C* -- ID_MODEL_FROM_DATABASE=Excalibur Radeon 9200 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Excalibur Radeon 9200) - - pci:v00001002d00005961sv000018BCsd00000050* -- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster) - - pci:v00001002d00005961sv000018BCsd00000051* -- ID_MODEL_FROM_DATABASE=GC-R9200-C3 -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (GC-R9200-C3) - - pci:v00001002d00005961sv000018BCsd00000053* -- ID_MODEL_FROM_DATABASE=Radeon 9200 Game Buster VIVO -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] (Radeon 9200 Game Buster VIVO) - - pci:v00001002d00005962* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200] -@@ -3819,37 +3819,37 @@ pci:v00001002d00005964* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] - - pci:v00001002d00005964sv00001002sd00005964* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz) - - pci:v00001002d00005964sv00001043sd0000C006* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE / TD / 128M -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE / TD / 128M) - - pci:v00001002d00005964sv00001458sd00004018* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) - - pci:v00001002d00005964sv00001458sd00004032* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE 128MB) - - pci:v00001002d00005964sv0000147Bsd00006191* -- ID_MODEL_FROM_DATABASE=R9200SE-DT -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (R9200SE-DT) - - pci:v00001002d00005964sv0000148Csd00002073* -- ID_MODEL_FROM_DATABASE=CN-AG92E -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (CN-AG92E) - - pci:v00001002d00005964sv0000174Bsd00007C13* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE) - - pci:v00001002d00005964sv00001787sd00005964* -- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Excalibur 9200SE VIVO 128M) - - pci:v00001002d00005964sv000017AFsd00002012* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Radeon 9200 SE Excalibur) - - pci:v00001002d00005964sv000018BCsd00000170* -- ID_MODEL_FROM_DATABASE=Sapphire Radeon 9200 SE 128MB Game Buster -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Sapphire Radeon 9200 SE 128MB Game Buster) - - pci:v00001002d00005964sv000018BCsd00000173* -- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) - - pci:v00001002d00005965* - ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] -@@ -3858,10 +3858,10 @@ pci:v00001002d00005974* - ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] - - pci:v00001002d00005974sv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (DC5750 Microtower) - - pci:v00001002d00005974sv00001462sd00007141* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RS482/RS485 [Radeon Xpress 1100/1150] (Aspire L250) - - pci:v00001002d00005975* - ID_MODEL_FROM_DATABASE=RS482M [Mobility Radeon Xpress 200] -@@ -3870,7 +3870,7 @@ pci:v00001002d00005978* - ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) - - pci:v00001002d00005978sv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RX780/RD790 PCI to PCI bridge (external gfx0 port A) (A770CrossFire Motherboard) - - pci:v00001002d00005979* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx0 port B) -@@ -3891,13 +3891,13 @@ pci:v00001002d0000597E* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) - - pci:v00001002d0000597Esv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port E) (A770CrossFire Motherboard) - - pci:v00001002d0000597F* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) - - pci:v00001002d0000597Fsv00001849sd00005957* -- ID_MODEL_FROM_DATABASE=A770CrossFire Motherboard -+ ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (PCI express gpp port F) (A770CrossFire Motherboard) - - pci:v00001002d00005980* - ID_MODEL_FROM_DATABASE=RD790 PCI to PCI bridge (external gfx1 port A) -@@ -3918,7 +3918,7 @@ pci:v00001002d00005A12* - ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part - - pci:v00001002d00005A12sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part (H8DGU) - - pci:v00001002d00005A13* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (external gfx0 port A) -@@ -3939,7 +3939,7 @@ pci:v00001002d00005A18* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) - - pci:v00001002d00005A18sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port D) (H8DGU) - - pci:v00001002d00005A19* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (PCI express gpp port E) -@@ -3963,7 +3963,7 @@ pci:v00001002d00005A1F* - ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) - - pci:v00001002d00005A1Fsv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=RD890 PCI to PCI bridge (NB-SB link) (H8DGU) - - pci:v00001002d00005A20* - ID_MODEL_FROM_DATABASE=RD890S PCI Express bridge for GPP2 port 1 -@@ -3996,7 +3996,7 @@ pci:v00001002d00005A3F* - ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] - - pci:v00001002d00005A3Fsv00001462sd00007217* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RC4xx/RS4xx PCI Bridge [int gfx] (Aspire L250) - - pci:v00001002d00005A41* - ID_MODEL_FROM_DATABASE=RS400 [Radeon Xpress 200] -@@ -4014,25 +4014,25 @@ pci:v00001002d00005B60* - ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] - - pci:v00001002d00005B60sv00001043sd0000002A* -- ID_MODEL_FROM_DATABASE=Extreme AX300SE-X -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300SE-X) - - pci:v00001002d00005B60sv00001043sd0000032E* -- ID_MODEL_FROM_DATABASE=Extreme AX300/TD -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Extreme AX300/TD) - - pci:v00001002d00005B60sv00001458sd00002102* -- ID_MODEL_FROM_DATABASE=GV-RX30S128D (X300SE) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (GV-RX30S128D (X300SE)) - - pci:v00001002d00005B60sv00001462sd00000400* -- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940 REV:200) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940 REV:200)) - - pci:v00001002d00005B60sv00001462sd00000402* -- ID_MODEL_FROM_DATABASE=RX300SE-TD128E (MS-8940) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (RX300SE-TD128E (MS-8940)) - - pci:v00001002d00005B60sv0000174Bsd00000500* -- ID_MODEL_FROM_DATABASE=Radeon X300 (PCIE) -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (Radeon X300 (PCIE)) - - pci:v00001002d00005B60sv0000196Dsd00001086* -- ID_MODEL_FROM_DATABASE=X300SE HM -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300] (X300SE HM) - - pci:v00001002d00005B62* - ID_MODEL_FROM_DATABASE=RV370 [Radeon X600/X600 SE] -@@ -4053,13 +4053,13 @@ pci:v00001002d00005B70* - ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] - - pci:v00001002d00005B70sv00001462sd00000403* -- ID_MODEL_FROM_DATABASE=Radeon X300 SE 128MB DDR -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE 128MB DDR) - - pci:v00001002d00005B70sv0000174Bsd00000501* -- ID_MODEL_FROM_DATABASE=Radeon X300 SE -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE) - - pci:v00001002d00005B70sv0000196Dsd00001087* -- ID_MODEL_FROM_DATABASE=Radeon X300 SE HyperMemory -+ ID_MODEL_FROM_DATABASE=RV370 [Radeon X300 SE] (Radeon X300 SE HyperMemory) - - pci:v00001002d00005B72* - ID_MODEL_FROM_DATABASE=RV380 [Radeon X300/X550/X1050 Series] (Secondary) -@@ -4080,37 +4080,37 @@ pci:v00001002d00005C63* - ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] - - pci:v00001002d00005C63sv00001002sd00005C63* -- ID_MODEL_FROM_DATABASE=Apple iBook G4 2004 -+ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (Apple iBook G4 2004) - - pci:v00001002d00005C63sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=RV280/M9+ [Mobility Radeon 9200 AGP] (P30 notebook) - - pci:v00001002d00005D44* - ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) - - pci:v00001002d00005D44sv00001458sd00004019* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) - - pci:v00001002d00005D44sv00001458sd00004032* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB) - - pci:v00001002d00005D44sv0000147Bsd00006190* -- ID_MODEL_FROM_DATABASE=R9200SE-DT (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (R9200SE-DT (Secondary)) - - pci:v00001002d00005D44sv0000174Bsd00007C12* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE (Secondary)) - - pci:v00001002d00005D44sv00001787sd00005965* -- ID_MODEL_FROM_DATABASE=Excalibur 9200SE VIVO 128M (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Excalibur 9200SE VIVO 128M (Secondary)) - - pci:v00001002d00005D44sv000017AFsd00002013* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE Excalibur (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE Excalibur (Secondary)) - - pci:v00001002d00005D44sv000018BCsd00000171* -- ID_MODEL_FROM_DATABASE=Radeon 9200 SE 128MB Game Buster (Secondary) -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (Radeon 9200 SE 128MB Game Buster (Secondary)) - - pci:v00001002d00005D44sv000018BCsd00000172* -- ID_MODEL_FROM_DATABASE=GC-R9200L(SE)-C3H [Radeon 9200 Game Buster] -+ ID_MODEL_FROM_DATABASE=RV280 [Radeon 9200 SE] (Secondary) (GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]) - - pci:v00001002d00005D45* - ID_MODEL_FROM_DATABASE=RV280 GL [FireMV 2200 PCI] (Secondary) -@@ -4140,7 +4140,7 @@ pci:v00001002d00005D52* - ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] - - pci:v00001002d00005D52sv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Primary) -+ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (PowerColor X850XT PCIe (Primary)) - - pci:v00001002d00005D57* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] -@@ -4155,7 +4155,7 @@ pci:v00001002d00005D72* - ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) - - pci:v00001002d00005D72sv00001002sd00000B13* -- ID_MODEL_FROM_DATABASE=PowerColor X850XT PCIe (Secondary) -+ ID_MODEL_FROM_DATABASE=R480 [Radeon X850 XT] (Secondary) (PowerColor X850XT PCIe (Secondary)) - - pci:v00001002d00005D77* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] (Secondary) -@@ -4179,13 +4179,13 @@ pci:v00001002d00005E4D* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] - - pci:v00001002d00005E4Dsv0000148Csd00002116* -- ID_MODEL_FROM_DATABASE=Bravo X700 -+ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Bravo X700) - - pci:v00001002d00005E4F* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] - - pci:v00001002d00005E4Fsv00001569sd00001E4F* -- ID_MODEL_FROM_DATABASE=Radeon X550 XT -+ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Radeon X550 XT) - - pci:v00001002d00005E6B* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700 PRO] (Secondary) -@@ -4194,7 +4194,7 @@ pci:v00001002d00005E6D* - ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) - - pci:v00001002d00005E6Dsv0000148Csd00002117* -- ID_MODEL_FROM_DATABASE=Bravo X700 (Secondary) -+ ID_MODEL_FROM_DATABASE=RV410 [Radeon X700] (Secondary) (Bravo X700 (Secondary)) - - pci:v00001002d00005F57* - ID_MODEL_FROM_DATABASE=R423 [Radeon X800 XT] -@@ -4206,7 +4206,7 @@ pci:v00001002d00006601* - ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] - - pci:v00001002d00006601sv0000103Csd00002100* -- ID_MODEL_FROM_DATABASE=FirePro M4100 -+ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] (FirePro M4100) - - pci:v00001002d00006602* - ID_MODEL_FROM_DATABASE=Mars -@@ -4230,40 +4230,40 @@ pci:v00001002d00006610* - ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] - - pci:v00001002d00006610sv00001019sd00000030* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001028sd00002120* -- ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) - - pci:v00001002d00006610sv00001028sd00002322* -- ID_MODEL_FROM_DATABASE=Radeon R7 250 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon R7 250) - - pci:v00001002d00006610sv00001462sd00002910* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001462sd00002911* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001642sd00003C81* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006610sv00001642sd00003C91* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250] (Radeon HD 8670) - - pci:v00001002d00006611* - ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] - - pci:v00001002d00006611sv00001028sd0000210B* -- ID_MODEL_FROM_DATABASE=Radeon R5 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R5 240 OEM) - - pci:v00001002d00006611sv0000174Bsd00004248* -- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) - - pci:v00001002d00006611sv0000174Bsd0000A240* -- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) - - pci:v00001002d00006611sv00001B0Asd000090D3* -- ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM -+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM] (Radeon R7 240 OEM) - - pci:v00001002d00006613* - ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] -@@ -4302,28 +4302,28 @@ pci:v00001002d0000665C* - ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] - - pci:v00001002d0000665Csv00001043sd00000452* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 DirectCU II OC -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 DirectCU II OC) - - pci:v00001002d0000665Csv00001462sd00002930* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 OC -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 OC) - - pci:v00001002d0000665Csv00001462sd00002932* -- ID_MODEL_FROM_DATABASE=Radeon HD 8770 -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 8770) - - pci:v00001002d0000665Csv00001462sd00002934* -- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) - - pci:v00001002d0000665Csv0000148Csd00009260* -- ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon R9 260 OEM) - - pci:v00001002d0000665Csv00001682sd00003310* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Black Edition 2 GB -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Black Edition 2 GB) - - pci:v00001002d0000665Csv0000174Bsd0000E253* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 Dual-X OC -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 Dual-X OC) - - pci:v00001002d0000665Csv00001787sd00002329* -- ID_MODEL_FROM_DATABASE=Radeon HD 7790 TurboDuo -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM] (Radeon HD 7790 TurboDuo) - - pci:v00001002d0000665D* - ID_MODEL_FROM_DATABASE=Bonaire [Radeon R7 200 Series] -@@ -4335,7 +4335,7 @@ pci:v00001002d00006663* - ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] - - pci:v00001002d00006663sv00001025sd00000846* -- ID_MODEL_FROM_DATABASE=Radeon HD 8570A -+ ID_MODEL_FROM_DATABASE=Sun PRO [Radeon HD 8570A/8570M] (Radeon HD 8570A) - - pci:v00001002d00006664* - ID_MODEL_FROM_DATABASE=Jet XT [Radeon R5 M240] -@@ -4377,34 +4377,34 @@ pci:v00001002d00006720* - ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] - - pci:v00001002d00006720sv00001028sd0000048F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv00001028sd00000490* -- ID_MODEL_FROM_DATABASE=Alienware M17x R3 Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Alienware M17x R3 Radeon HD 6970M) - - pci:v00001002d00006720sv00001028sd000004A4* -- ID_MODEL_FROM_DATABASE=FirePro M8900 -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) - - pci:v00001002d00006720sv00001028sd000004BA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv00001028sd0000053F* -- ID_MODEL_FROM_DATABASE=FirePro M8900 -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (FirePro M8900) - - pci:v00001002d00006720sv0000106Bsd00000B00* -- ID_MODEL_FROM_DATABASE=Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) - - pci:v00001002d00006720sv00001558sd00005102* -- ID_MODEL_FROM_DATABASE=Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) - - pci:v00001002d00006720sv00001558sd00005104* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv00001558sd00007201* -- ID_MODEL_FROM_DATABASE=Radeon HD 6990M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6990M) - - pci:v00001002d00006720sv0000174Bsd0000E188* -- ID_MODEL_FROM_DATABASE=Radeon HD 6970M -+ ID_MODEL_FROM_DATABASE=Blackcomb [Radeon HD 6970M/6990M] (Radeon HD 6970M) - - pci:v00001002d00006724* - ID_MODEL_FROM_DATABASE=Blackcomb [Mobility Radeon HD 6000 series] -@@ -4416,511 +4416,511 @@ pci:v00001002d00006738* - ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] - - pci:v00001002d00006738sv00001682sd00003103* -- ID_MODEL_FROM_DATABASE=Radeon HD 8670 -+ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Radeon HD 8670) - - pci:v00001002d00006738sv00001787sd0000201A* -- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] -+ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) - - pci:v00001002d00006738sv00001787sd0000201B* -- ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870 X2] -+ ID_MODEL_FROM_DATABASE=Barts XT [Radeon HD 6870] (Barts XT [Radeon HD 6870 X2]) - - pci:v00001002d00006739* - ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] - - pci:v00001002d00006739sv00001043sd000003B4* -- ID_MODEL_FROM_DATABASE=EAH6850 [Radeon HD 6850] -+ ID_MODEL_FROM_DATABASE=Barts PRO [Radeon HD 6850] (EAH6850 [Radeon HD 6850]) - - pci:v00001002d0000673E* - ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] - - pci:v00001002d0000673Esv0000148Csd00007720* -- ID_MODEL_FROM_DATABASE=Radeon HD 7720 OEM -+ ID_MODEL_FROM_DATABASE=Barts LE [Radeon HD 6790] (Radeon HD 7720 OEM) - - pci:v00001002d00006740* - ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] - - pci:v00001002d00006740sv00001019sd0000238C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001019sd00002391* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001019sd00002392* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Precision M4600) - - pci:v00001002d00006740sv00001028sd0000053E* -- ID_MODEL_FROM_DATABASE=FirePro M5950 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) - - pci:v00001002d00006740sv0000103Csd00001630* -- ID_MODEL_FROM_DATABASE=FirePro M5950 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) - - pci:v00001002d00006740sv0000103Csd00001631* -- ID_MODEL_FROM_DATABASE=FirePro M5950 -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (FirePro M5950) - - pci:v00001002d00006740sv0000103Csd0000164B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000103Csd0000164E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000103Csd00001657* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00001658* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000165A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000165B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00001688* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00001689* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000168A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000185E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7690M XT -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 7690M XT) - - pci:v00001002d00006740sv0000103Csd00003388* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00003389* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd00003582* -- ID_MODEL_FROM_DATABASE=Radeon HD 6770M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6770M) - - pci:v00001002d00006740sv0000103Csd0000366C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001043sd00001D02* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv00001043sd00001D12* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000104Dsd00009084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000104Dsd00009085* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B074* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B077* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv0000144Dsd0000B088* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006740sv000017AAsd00003982* -- ID_MODEL_FROM_DATABASE=Radeon HD 6730M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6730M/6770M/7690M XT] (Radeon HD 6730M) - - pci:v00001002d00006741* - ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] - - pci:v00001002d00006741sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001019sd0000238F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000379* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000037B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000037E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000382* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000384* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000385* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000386* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000387* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000388* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000442* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000451* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000489* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000048B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000048C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000050F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000513* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000515* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000516* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000051E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000051F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000520* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000521* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000052A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000555* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000556* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000055D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000055E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000056D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd0000059F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000605* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001025sd00000619* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001028sd000004C1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004C5* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004CD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004D7* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd000004D9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001028sd0000052D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000103Csd00001617* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd00001646* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00001647* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd0000164B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd0000164E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000103Csd00001688* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00001689* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd0000168A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00001860* -- ID_MODEL_FROM_DATABASE=Radeon HD 7690M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7690M) - - pci:v00001002d00006741sv0000103Csd00003385* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000103Csd00003560* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd0000358D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00003590* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd00003593* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000103Csd0000366C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00001CD2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002121* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002122* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002123* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001043sd00002125* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) - - pci:v00001002d00006741sv00001043sd00002127* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 7670M) - - pci:v00001002d00006741sv0000104Dsd0000907B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000104Dsd00009080* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000106Bsd000000E2* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", Late 2011] -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (MacBookPro8,2 [Core i7, 15", Late 2011]) - - pci:v00001002d00006741sv00001179sd0000FD63* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv00001179sd0000FD65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000144Dsd0000C093* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000144Dsd0000C0AC* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv0000144Dsd0000C0B3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6750M) - - pci:v00001002d00006741sv0000144Dsd0000C539* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000144Dsd0000C609* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv0000152Dsd00000914* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv000017AAsd000021E1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6630M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6630M) - - pci:v00001002d00006741sv000017AAsd00003970* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv000017AAsd00003976* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006741sv00001854sd00000907* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650M -+ ID_MODEL_FROM_DATABASE=Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (Radeon HD 6650M) - - pci:v00001002d00006742* - ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] - - pci:v00001002d00006742sv00001002sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00001019sd00002393* -- ID_MODEL_FROM_DATABASE=Radeon HD 6610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6610M) - - pci:v00001002d00006742sv00001043sd00001D82* -- ID_MODEL_FROM_DATABASE=K53SK Laptop Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (K53SK Laptop Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB22* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB23* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB27* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB2A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB2C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB30* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB31* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB32* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB38* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB39* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB3A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB3B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB40* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB41* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB47* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB48* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB49* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB51* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB53* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB81* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB82* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FB83* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FC56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FCD4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001179sd0000FCEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7610M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 7610M) - - pci:v00001002d00006742sv00001458sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00001462sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv0000148Csd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00001682sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv0000174Bsd00005570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 5570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 5570]) - - pci:v00001002d00006742sv0000174Bsd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv0000174Bsd00007570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 7570]) - - pci:v00001002d00006742sv0000174Bsd00008510* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8510] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8510]) - - pci:v00001002d00006742sv0000174Bsd00008570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 8570]) - - pci:v00001002d00006742sv00001787sd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv000017AFsd00006570* -- ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570] -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Turks [Radeon HD 6570]) - - pci:v00001002d00006742sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Radeon HD 6625M -+ ID_MODEL_FROM_DATABASE=Whistler LE [Radeon HD 6610M/7610M] (Radeon HD 6625M) - - pci:v00001002d00006743* - ID_MODEL_FROM_DATABASE=Whistler [Radeon E6760] -@@ -4935,133 +4935,133 @@ pci:v00001002d00006750* - ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] - - pci:v00001002d00006750sv00001462sd00002670* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6670A) - - pci:v00001002d00006750sv000017AAsd00003079* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) - - pci:v00001002d00006750sv000017AAsd0000307A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006750sv000017AAsd00003087* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 7650A) - - pci:v00001002d00006750sv000017AAsd00003618* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006750sv000017AAsd00003623* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006750sv000017AAsd00003627* -- ID_MODEL_FROM_DATABASE=Radeon HD 6650A -+ ID_MODEL_FROM_DATABASE=Onega [Radeon HD 6650A/7650A] (Radeon HD 6650A) - - pci:v00001002d00006751* - ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] - - pci:v00001002d00006751sv00001028sd00000548* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006751sv00001462sd00002671* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) - - pci:v00001002d00006751sv00001462sd00002672* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7670A) - - pci:v00001002d00006751sv00001462sd00002680* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006751sv00001462sd00002681* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006751sv000017AAsd00003087* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650A -+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7650A/7670A] (Radeon HD 7650A) - - pci:v00001002d00006758* - ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] - - pci:v00001002d00006758sv00001028sd00000B0E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006758sv0000103Csd00006882* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006758sv00001462sd0000250A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv0000148Csd00007670* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv00001545sd00007670* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv00001682sd00003300* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv0000174Bsd00007670* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 7670) - - pci:v00001002d00006758sv0000174Bsd0000E181* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006758sv00001787sd00002309* -- ID_MODEL_FROM_DATABASE=Radeon HD 6670 -+ ID_MODEL_FROM_DATABASE=Turks XT [Radeon HD 6670/7670] (Radeon HD 6670) - - pci:v00001002d00006759* - ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] - - pci:v00001002d00006759sv0000103Csd00003130* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001043sd00000403* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001462sd00002500* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001462sd00002509* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv0000148Csd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv00001642sd00003A67* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001682sd00003280* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv00001682sd00003530* -- ID_MODEL_FROM_DATABASE=Radeon HD 8550 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 8550) - - pci:v00001002d00006759sv0000174Bsd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv0000174Bsd0000E142* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv0000174Bsd0000E181* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd0000908F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd00009090* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd00009091* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd00009092* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd0000909E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 6570) - - pci:v00001002d00006759sv00001B0Asd000090B5* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d00006759sv00001B0Asd000090B6* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks PRO [Radeon HD 6570/7570/8550] (Radeon HD 7570) - - pci:v00001002d0000675B* - ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7600 Series] -@@ -5073,526 +5073,526 @@ pci:v00001002d0000675F* - ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] - - pci:v00001002d0000675Fsv0000148Csd00006510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) - - pci:v00001002d0000675Fsv0000148Csd00006530* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6530) - - pci:v00001002d0000675Fsv0000148Csd00007510* -- ID_MODEL_FROM_DATABASE=Radeon HD 7510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) - - pci:v00001002d0000675Fsv00001545sd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7570) - - pci:v00001002d0000675Fsv0000174Bsd00006510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 6510) - - pci:v00001002d0000675Fsv0000174Bsd00007510* -- ID_MODEL_FROM_DATABASE=Radeon HD 7510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 7510) - - pci:v00001002d0000675Fsv0000174Bsd00008510* -- ID_MODEL_FROM_DATABASE=Radeon HD 8510 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 8510) - - pci:v00001002d0000675Fsv00001787sd00002012* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 2GB GDDR3 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 2GB GDDR3) - - pci:v00001002d0000675Fsv00001787sd00002314* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 1GB DDR2/GDDR3 -+ ID_MODEL_FROM_DATABASE=Turks LE [Radeon HD 5570/6510/7510/8510] (Radeon HD 5570 1GB DDR2/GDDR3) - - pci:v00001002d00006760* - ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] - - pci:v00001002d00006760sv00001002sd00000124* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001002sd00000134* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd0000238B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd00002390* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001019sd00009985* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004C1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004C3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004CA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004CB* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004CC* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Vostro 3350) - - pci:v00001002d00006760sv00001028sd000004D1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004D3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd000004D7* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000502* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000503* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000506* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000507* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001028sd0000051C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001028sd0000051D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv0000103Csd0000161A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000161B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000161E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000161F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001622* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv0000103Csd00001623* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv0000103Csd0000164A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000164D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001651* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001656* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00001658* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00001659* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000165B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000165D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000165F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001661* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001663* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001665* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001667* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001669* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000166B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000166C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000166E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001670* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001672* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000167A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000167B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000167D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000167F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000168C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000168F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001694* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001696* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00001698* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000169A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000169C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00001855* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd00001859* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd0000185C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd0000185D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000103Csd0000185F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000103Csd00001863* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv0000103Csd0000355C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000355F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003563* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003565* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003567* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003569* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003581* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003584* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd0000358C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000358F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003592* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd00003596* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000103Csd0000366B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000103Csd00003671* -- ID_MODEL_FROM_DATABASE=FirePro M3900 -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (FirePro M3900) - - pci:v00001002d00006760sv0000103Csd00003673* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000100A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000100C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000101B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000101C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000102A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv00001043sd0000102C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd0000104B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000105D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000106B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000106D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000107D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00001CB2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00001D22* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00001D32* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00002001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00002002* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00002107* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00002108* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00002109* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd000084A0* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd000084E9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001043sd00008515* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd00008517* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001043sd0000855A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000104Dsd0000907B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000104Dsd00009084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000104Dsd00009085* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001179sd00000003* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001179sd00000004* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6450M) - - pci:v00001002d00006760sv00001179sd0000FB22* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB23* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB2C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB31* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB32* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB33* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB38* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB39* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB3A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB40* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB41* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB42* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB47* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB48* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB51* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB53* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB81* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB82* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FB83* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FC51* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001179sd0000FC52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FC56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FCD3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FCD4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FCEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv00001179sd0000FDEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000144Dsd0000B074* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000B084* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C095* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C0B3* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6490M) - - pci:v00001002d00006760sv0000144Dsd0000C538* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C581* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C589* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000144Dsd0000C609* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000144Dsd0000C625* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv0000144Dsd0000C636* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv00001462sd000010AC* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv0000152Dsd00000916* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd000021E5* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd00003900* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00003902* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00003969* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd00003970* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00003976* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd0000397B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd0000397D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv000017AAsd00005101* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7470M) - - pci:v00001002d00006760sv000017AAsd00005102* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00005103* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv000017AAsd00005106* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 7450M) - - pci:v00001002d00006760sv00001854sd00000897* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001854sd00000900* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001854sd00000908* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006760sv00001854sd00002015* -- ID_MODEL_FROM_DATABASE=Radeon HD 6470M -+ ID_MODEL_FROM_DATABASE=Seymour [Radeon HD 6400M/7400M Series] (Radeon HD 6470M) - - pci:v00001002d00006761* - ID_MODEL_FROM_DATABASE=Seymour LP [Radeon HD 6430M] -@@ -5619,22 +5619,22 @@ pci:v00001002d00006770* - ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] - - pci:v00001002d00006770sv000017AAsd0000308D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7450A) - - pci:v00001002d00006770sv000017AAsd00003623* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd00003627* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd00003629* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd0000363C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 6450A) - - pci:v00001002d00006770sv000017AAsd00003658* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450A/7450A] (Radeon HD 7470A) - - pci:v00001002d00006771* - ID_MODEL_FROM_DATABASE=Caicos XTX [Radeon HD 8490 / R5 235X OEM] -@@ -5646,133 +5646,133 @@ pci:v00001002d00006778* - ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] - - pci:v00001002d00006778sv00001019sd00000024* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) - - pci:v00001002d00006778sv00001019sd00000027* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001028sd00002120* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) - - pci:v00001002d00006778sv00001462sd0000B491* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001462sd0000B492* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001462sd0000B493* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 OEM -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470 OEM) - - pci:v00001002d00006778sv00001642sd00003C65* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv00001642sd00003C75* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv0000174Bsd00008145* -- ID_MODEL_FROM_DATABASE=Radeon HD 8470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 8470) - - pci:v00001002d00006778sv0000174Bsd0000E145* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM] (Radeon HD 7470) - - pci:v00001002d00006779* - ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] - - pci:v00001002d00006779sv00001019sd00000016* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001019sd00000017* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001019sd00000018* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001028sd00002120* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000103Csd00002128* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000103Csd00002AEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) - - pci:v00001002d00006779sv00001462sd00002125* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001462sd00002346* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv00001462sd00002490* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001462sd00002494* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001462sd00002496* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000148Csd00007450* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000148Csd00008450* -- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) - - pci:v00001002d00006779sv00001545sd00007470* -- ID_MODEL_FROM_DATABASE=Radeon HD 7470 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7470) - - pci:v00001002d00006779sv00001642sd00003A65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001642sd00003A66* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv00001642sd00003A75* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001642sd00003A76* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv00001682sd00003200* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000174Bsd00007450* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450) - - pci:v00001002d00006779sv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000174Bsd0000E164* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1 GB DDR3 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450 1 GB DDR3) - - pci:v00001002d00006779sv0000174Bsd0000E180* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv0000174Bsd0000E201* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv000017AFsd00008450* -- ID_MODEL_FROM_DATABASE=Radeon HD 8450 OEM -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 8450 OEM) - - pci:v00001002d00006779sv00001B0Asd00009096* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001B0Asd00009097* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001B0Asd000090A8* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450A) - - pci:v00001002d00006779sv00001B0Asd000090B1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 6450) - - pci:v00001002d00006779sv00001B0Asd000090B3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) - - pci:v00001002d00006779sv00001B0Asd000090BB* -- ID_MODEL_FROM_DATABASE=Radeon HD 7450A -+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (Radeon HD 7450A) - - pci:v00001002d0000677B* - ID_MODEL_FROM_DATABASE=Caicos PRO [Radeon HD 7450] -@@ -5790,25 +5790,25 @@ pci:v00001002d0000678A* - ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] - - pci:v00001002d0000678Asv00001002sd0000030C* -- ID_MODEL_FROM_DATABASE=FirePro W8000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) - - pci:v00001002d0000678Asv00001002sd00000310* -- ID_MODEL_FROM_DATABASE=FirePro S9000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S9000) - - pci:v00001002d0000678Asv00001002sd00000420* -- ID_MODEL_FROM_DATABASE=Radeon Sky 700 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 700) - - pci:v00001002d0000678Asv00001002sd00000422* -- ID_MODEL_FROM_DATABASE=Radeon Sky 900 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (Radeon Sky 900) - - pci:v00001002d0000678Asv00001002sd00000B0E* -- ID_MODEL_FROM_DATABASE=FirePro S10000 Passive -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000 Passive) - - pci:v00001002d0000678Asv00001002sd00000B2A* -- ID_MODEL_FROM_DATABASE=FirePro S10000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro S10000) - - pci:v00001002d0000678Asv00001028sd0000030C* -- ID_MODEL_FROM_DATABASE=FirePro W8000 -+ ID_MODEL_FROM_DATABASE=Tahiti PRO GL [FirePro Series] (FirePro W8000) - - pci:v00001002d00006790* - ID_MODEL_FROM_DATABASE=Tahiti -@@ -5823,67 +5823,67 @@ pci:v00001002d00006798* - ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] - - pci:v00001002d00006798sv00001002sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) - - pci:v00001002d00006798sv00001002sd00003001* -- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X]) - - pci:v00001002d00006798sv00001002sd00004000* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970 OEM -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 8970 OEM) - - pci:v00001002d00006798sv00001043sd0000041C* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II) - - pci:v00001002d00006798sv00001043sd00000420* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) - - pci:v00001002d00006798sv00001043sd00000444* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) - - pci:v00001002d00006798sv00001043sd00000448* -- ID_MODEL_FROM_DATABASE=HD 7970 DirectCU II TOP -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 DirectCU II TOP) - - pci:v00001002d00006798sv00001043sd0000044A* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970]) - - pci:v00001002d00006798sv00001043sd0000044C* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Matrix HD 7970 Platinum] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Matrix HD 7970 Platinum]) - - pci:v00001002d00006798sv00001043sd00003001* -- ID_MODEL_FROM_DATABASE=Tahiti XTL [ROG Matrix R9 280X] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [ROG Matrix R9 280X]) - - pci:v00001002d00006798sv00001043sd00003006* -- ID_MODEL_FROM_DATABASE=Tahiti XTL [Radeon R9 280X DirectCU II TOP] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XTL [Radeon R9 280X DirectCU II TOP]) - - pci:v00001002d00006798sv00001043sd00009999* -- ID_MODEL_FROM_DATABASE=ARES II -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (ARES II) - - pci:v00001002d00006798sv00001092sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) - - pci:v00001002d00006798sv00001458sd00002261* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition OC] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition OC]) - - pci:v00001002d00006798sv00001462sd00002774* -- ID_MODEL_FROM_DATABASE=MSI R7970 TF 3GD5/OC BE -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (MSI R7970 TF 3GD5/OC BE) - - pci:v00001002d00006798sv00001682sd00003211* -- ID_MODEL_FROM_DATABASE=Double D HD 7970 Black Edition -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970 Black Edition) - - pci:v00001002d00006798sv00001682sd00003213* -- ID_MODEL_FROM_DATABASE=HD 7970 Black Edition -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 Black Edition) - - pci:v00001002d00006798sv00001682sd00003214* -- ID_MODEL_FROM_DATABASE=Double D HD 7970 -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Double D HD 7970) - - pci:v00001002d00006798sv00001787sd0000201C* -- ID_MODEL_FROM_DATABASE=HD 7970 IceQ X² -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (HD 7970 IceQ X²) - - pci:v00001002d00006798sv00001787sd00002317* -- ID_MODEL_FROM_DATABASE=Radeon HD 7990 -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Radeon HD 7990) - - pci:v00001002d00006798sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti XT2 [Radeon HD 7970 GHz Edition] -+ ID_MODEL_FROM_DATABASE=Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (Tahiti XT2 [Radeon HD 7970 GHz Edition]) - - pci:v00001002d00006799* - ID_MODEL_FROM_DATABASE=New Zealand [Radeon HD 7900 Series] -@@ -5892,28 +5892,28 @@ pci:v00001002d0000679A* - ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] - - pci:v00001002d0000679Asv00001002sd00000B01* -- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) - - pci:v00001002d0000679Asv00001002sd00003000* -- ID_MODEL_FROM_DATABASE=Tahiti PRO2 [Radeon HD 7950 Boost] -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Tahiti PRO2 [Radeon HD 7950 Boost]) - - pci:v00001002d0000679Asv00001462sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 8950 OEM -+ ID_MODEL_FROM_DATABASE=Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280] (Radeon HD 8950 OEM) - - pci:v00001002d0000679B* - ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] - - pci:v00001002d0000679Bsv00001002sd00000B28* -- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) - - pci:v00001002d0000679Bsv00001002sd00000B2A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7990 -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 7990) - - pci:v00001002d0000679Bsv00001462sd00008036* -- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) - - pci:v00001002d0000679Bsv0000148Csd00008990* -- ID_MODEL_FROM_DATABASE=Radeon HD 8990 OEM -+ ID_MODEL_FROM_DATABASE=Malta [Radeon HD 7990] (Radeon HD 8990 OEM) - - pci:v00001002d0000679E* - ID_MODEL_FROM_DATABASE=Tahiti LE [Radeon HD 7870 XT] -@@ -5955,28 +5955,28 @@ pci:v00001002d00006800* - ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] - - pci:v00001002d00006800sv00001002sd00000124* -- ID_MODEL_FROM_DATABASE=Radeon HD 7970M -+ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) - - pci:v00001002d00006800sv00008086sd00002110* -- ID_MODEL_FROM_DATABASE=Radeon HD 7970M -+ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) - - pci:v00001002d00006800sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Radeon HD 7970M -+ ID_MODEL_FROM_DATABASE=Wimbledon XT [Radeon HD 7970M] (Radeon HD 7970M) - - pci:v00001002d00006801* - ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] - - pci:v00001002d00006801sv00001002sd00000124* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970M -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) - - pci:v00001002d00006801sv00001462sd00001117* -- ID_MODEL_FROM_DATABASE=Radeon R9 M290X -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon R9 M290X) - - pci:v00001002d00006801sv00008086sd00002110* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970M -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) - - pci:v00001002d00006801sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Radeon HD 8970M -+ ID_MODEL_FROM_DATABASE=Neptune XT [Radeon HD 8970M] (Radeon HD 8970M) - - pci:v00001002d00006802* - ID_MODEL_FROM_DATABASE=Wimbledon -@@ -5988,10 +5988,10 @@ pci:v00001002d00006808* - ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] - - pci:v00001002d00006808sv00001002sd00000310* -- ID_MODEL_FROM_DATABASE=FirePro S7000 -+ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (FirePro S7000) - - pci:v00001002d00006808sv00001002sd00000420* -- ID_MODEL_FROM_DATABASE=Radeon Sky 500 -+ ID_MODEL_FROM_DATABASE=Pitcairn XT GL [FirePro W7000] (Radeon Sky 500) - - pci:v00001002d00006809* - ID_MODEL_FROM_DATABASE=Pitcairn LE GL [FirePro W5000] -@@ -6012,37 +6012,37 @@ pci:v00001002d00006818* - ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] - - pci:v00001002d00006818sv00001002sd00000B05* -- ID_MODEL_FROM_DATABASE=Radeon HD 8870 OEM -+ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8870 OEM) - - pci:v00001002d00006818sv0000174Bsd00008B04* -- ID_MODEL_FROM_DATABASE=Radeon HD 8860 -+ ID_MODEL_FROM_DATABASE=Pitcairn XT [Radeon HD 7870 GHz Edition] (Radeon HD 8860) - - pci:v00001002d00006819* - ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] - - pci:v00001002d00006819sv0000174Bsd0000E221* -- ID_MODEL_FROM_DATABASE=Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP -+ ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) - - pci:v00001002d00006820* - ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] - - pci:v00001002d00006820sv0000103Csd00001851* -- ID_MODEL_FROM_DATABASE=Radeon HD 7750M -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) - - pci:v00001002d00006820sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=Radeon R9 M275 -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) - - pci:v00001002d00006821* - ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] - - pci:v00001002d00006821sv00001002sd0000031E* -- ID_MODEL_FROM_DATABASE=FirePro SX4000 -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) - - pci:v00001002d00006821sv00001028sd000005CC* -- ID_MODEL_FROM_DATABASE=FirePro M5100 -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) - - pci:v00001002d00006821sv00001028sd000015CC* -- ID_MODEL_FROM_DATABASE=FirePro M5100 -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) - - pci:v00001002d00006822* - ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] -@@ -6054,7 +6054,7 @@ pci:v00001002d00006825* - ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] - - pci:v00001002d00006825sv00008086sd00002111* -- ID_MODEL_FROM_DATABASE=Chelsea PRO -+ ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] (Chelsea PRO) - - pci:v00001002d00006826* - ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7700M Series] -@@ -6081,7 +6081,7 @@ pci:v00001002d0000682F* - ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] - - pci:v00001002d0000682Fsv0000103Csd00001851* -- ID_MODEL_FROM_DATABASE=Radeon HD 7750M -+ ID_MODEL_FROM_DATABASE=Chelsea LP [Radeon HD 7730M] (Radeon HD 7750M) - - pci:v00001002d00006830* - ID_MODEL_FROM_DATABASE=Cape Verde [Radeon HD 7800M Series] -@@ -6096,16 +6096,16 @@ pci:v00001002d00006837* - ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] - - pci:v00001002d00006837sv00001462sd00002796* -- ID_MODEL_FROM_DATABASE=Radeon HD 8730 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) - - pci:v00001002d00006837sv00001462sd00008092* -- ID_MODEL_FROM_DATABASE=Radeon HD 8730 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) - - pci:v00001002d00006837sv0000148Csd00008730* -- ID_MODEL_FROM_DATABASE=Radeon HD 8730 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 8730) - - pci:v00001002d00006837sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730] (Radeon HD 6570) - - pci:v00001002d00006838* - ID_MODEL_FROM_DATABASE=Cape Verde -@@ -6120,19 +6120,19 @@ pci:v00001002d0000683D* - ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] - - pci:v00001002d0000683Dsv00001002sd00000030* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv00001019sd00000030* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv0000103Csd00006890* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv00001043sd00008760* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683Dsv0000174Bsd00008304* -- ID_MODEL_FROM_DATABASE=Radeon HD 8760 OEM -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - - pci:v00001002d0000683F* - ID_MODEL_FROM_DATABASE=Cape Verde PRO [Radeon HD 7750 / R7 250E] -@@ -6141,322 +6141,322 @@ pci:v00001002d00006840* - ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] - - pci:v00001002d00006840sv00001025sd0000050E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000050F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000513* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000056D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000059A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000059B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd0000059E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001025sd00000696* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000697* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000698* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000699* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv00001025sd00000757* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd0000056A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd0000056E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd00000598* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd0000059D* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd000005A3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd000005B9* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001028sd000005BB* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000017F1* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7570M) - - pci:v00001002d00006840sv0000103Csd000017F4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7650M) - - pci:v00001002d00006840sv0000103Csd00001813* -- ID_MODEL_FROM_DATABASE=Radeon HD 7590M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7590M) - - pci:v00001002d00006840sv0000103Csd0000182F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001830* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001835* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000183A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000183C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000183E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001840* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001842* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001844* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001848* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000184A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd0000184C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001895* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd00001897* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000018A5* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000018A7* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000103Csd000018F4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd0000100A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd0000104B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd000010DC* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002121* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002122* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002123* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002125* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001043sd00002127* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB11* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB22* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB23* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB2C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB31* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB32* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB38* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB39* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB3A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB40* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB41* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB47* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB48* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB51* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB52* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB53* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB81* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB82* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FB83* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FC56* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FCD4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv00001179sd0000FCEE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000144Dsd0000C0C5* -- ID_MODEL_FROM_DATABASE=Radeon HD 7690M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7690M) - - pci:v00001002d00006840sv0000144Dsd0000C0CE* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv0000144Dsd0000C0DA* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00003970* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd0000397B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00005101* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00005102* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006840sv000017AAsd00005103* -- ID_MODEL_FROM_DATABASE=Radeon HD 7670M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7500M/7600M Series] (Radeon HD 7670M) - - pci:v00001002d00006841* - ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] - - pci:v00001002d00006841sv00001028sd00000561* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001028sd0000056C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001028sd0000057F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv0000103Csd000017F1* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv0000103Csd000017F4* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001813* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv0000103Csd0000183A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd0000183C* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd0000183E* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001840* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001842* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv0000103Csd00001844* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd0000100A* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd0000104B* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd000010DC* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001043sd00002134* -- ID_MODEL_FROM_DATABASE=Radeon HD 7650M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7650M) - - pci:v00001002d00006841sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv00001179sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) - - pci:v00001002d00006841sv00001179sd0000FB43* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FB91* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FB92* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FB93* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FBA2* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv00001179sd0000FBA3* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006841sv0000144Dsd0000C0C7* -- ID_MODEL_FROM_DATABASE=Radeon HD 7550M -+ ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7550M) - - pci:v00001002d00006842* - ID_MODEL_FROM_DATABASE=Thames LE [Radeon HD 7000M Series] -@@ -6471,13 +6471,13 @@ pci:v00001002d00006889* - ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] - - pci:v00001002d00006889sv00001002sd00000301* -- ID_MODEL_FROM_DATABASE=FirePro V7800P -+ ID_MODEL_FROM_DATABASE=Cypress PRO [FirePro V7800] (FirePro V7800P) - - pci:v00001002d0000688A* - ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] - - pci:v00001002d0000688Asv00001002sd0000030C* -- ID_MODEL_FROM_DATABASE=FirePro V9800P -+ ID_MODEL_FROM_DATABASE=Cypress XT [FirePro V9800] (FirePro V9800P) - - pci:v00001002d0000688C* - ID_MODEL_FROM_DATABASE=Cypress XT GL [FireStream 9370] -@@ -6489,28 +6489,28 @@ pci:v00001002d00006898* - ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] - - pci:v00001002d00006898sv00001002sd00000B00* -- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Eyefinity⁶ Edition -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Eyefinity⁶ Edition) - - pci:v00001002d00006898sv0000106Bsd000000D0* -- ID_MODEL_FROM_DATABASE=Radeon HD 5870 Mac Edition -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 Mac Edition) - - pci:v00001002d00006898sv00001462sd00008032* -- ID_MODEL_FROM_DATABASE=Radeon HD 5870 1 GB GDDR5 -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 5870 1 GB GDDR5) - - pci:v00001002d00006898sv0000174Bsd00006870* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870 1600SP Edition -+ ID_MODEL_FROM_DATABASE=Cypress XT [Radeon HD 5870] (Radeon HD 6870 1600SP Edition) - - pci:v00001002d00006899* - ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] - - pci:v00001002d00006899sv00001043sd00000330* -- ID_MODEL_FROM_DATABASE=Radeon HD 5850 -+ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850) - - pci:v00001002d00006899sv0000174Bsd0000237B* -- ID_MODEL_FROM_DATABASE=Radeon HD 5850 X2 -+ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 5850 X2) - - pci:v00001002d00006899sv0000174Bsd00006850* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850 1440SP Edition -+ ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 5850] (Radeon HD 6850 1440SP Edition) - - pci:v00001002d0000689B* - ID_MODEL_FROM_DATABASE=Cypress PRO [Radeon HD 6800 Series] -@@ -6519,7 +6519,7 @@ pci:v00001002d0000689C* - ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] - - pci:v00001002d0000689Csv00001043sd00000352* -- ID_MODEL_FROM_DATABASE=ARES -+ ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] (ARES) - - pci:v00001002d0000689D* - ID_MODEL_FROM_DATABASE=Hemlock [Radeon HD 5970] -@@ -6531,79 +6531,79 @@ pci:v00001002d000068A0* - ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] - - pci:v00001002d000068A0sv00001028sd000012EF* -- ID_MODEL_FROM_DATABASE=FirePro M7820 -+ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) - - pci:v00001002d000068A0sv0000103Csd00001520* -- ID_MODEL_FROM_DATABASE=FirePro M7820 -+ ID_MODEL_FROM_DATABASE=Broadway XT [Mobility Radeon HD 5870] (FirePro M7820) - - pci:v00001002d000068A1* - ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] - - pci:v00001002d000068A1sv0000106Bsd000000CC* -- ID_MODEL_FROM_DATABASE=iMac MC511 Mobility Radeon HD 5850 MXM Module -+ ID_MODEL_FROM_DATABASE=Broadway PRO [Mobility Radeon HD 5850] (iMac MC511 Mobility Radeon HD 5850 MXM Module) - - pci:v00001002d000068A8* - ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] - - pci:v00001002d000068A8sv00001025sd00000442* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000451* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000050F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000513* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000514* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000515* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000516* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000525* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd00000526* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001025sd0000056D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv00001028sd0000048F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv00001028sd00000490* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv00001028sd000004B9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv00001028sd000004BA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6870M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6870M) - - pci:v00001002d000068A8sv0000103Csd0000159B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A8sv0000144Dsd0000C0AD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6850M -+ ID_MODEL_FROM_DATABASE=Granville [Radeon HD 6850M/6870M] (Radeon HD 6850M) - - pci:v00001002d000068A9* - ID_MODEL_FROM_DATABASE=Juniper XT [FirePro V5800] -@@ -6612,7 +6612,7 @@ pci:v00001002d000068B8* - ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] - - pci:v00001002d000068B8sv0000106Bsd000000CF* -- ID_MODEL_FROM_DATABASE=MacPro5,1 [Mac Pro 2.8GHz DDR3] -+ ID_MODEL_FROM_DATABASE=Juniper XT [Radeon HD 5770] (MacPro5,1 [Mac Pro 2.8GHz DDR3]) - - pci:v00001002d000068B9* - ID_MODEL_FROM_DATABASE=Juniper LE [Radeon HD 5670 640SP Edition] -@@ -6624,466 +6624,466 @@ pci:v00001002d000068BE* - ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] - - pci:v00001002d000068BEsv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750 -+ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 5750] (Radeon HD 6750) - - pci:v00001002d000068BF* - ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] - - pci:v00001002d000068BFsv0000174Bsd00006750* -- ID_MODEL_FROM_DATABASE=Radeon HD 6750 -+ ID_MODEL_FROM_DATABASE=Juniper PRO [Radeon HD 6750] (Radeon HD 6750) - - pci:v00001002d000068C0* - ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] - - pci:v00001002d000068C0sv00001019sd00002383* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv00001028sd000002A2* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv00001028sd000002FE* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv00001028sd00000419* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv0000103Csd0000147D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv0000103Csd00001521* -- ID_MODEL_FROM_DATABASE=Madison XT [FirePro M5800] -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Madison XT [FirePro M5800]) - - pci:v00001002d000068C0sv0000103Csd00001593* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) - - pci:v00001002d000068C0sv0000103Csd00001596* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) - - pci:v00001002d000068C0sv0000103Csd00001599* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 6570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 6570) - - pci:v00001002d000068C0sv00001043sd00001C22* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv000017AAsd00003927* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv000017AAsd00003952* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Mobility Radeon HD 5730) - - pci:v00001002d000068C0sv000017AAsd00003978* -- ID_MODEL_FROM_DATABASE=Radeon HD 6570M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5730 / 6570M] (Radeon HD 6570M) - - pci:v00001002d000068C1* - ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] - - pci:v00001002d000068C1sv00001025sd00000205* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000293* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000294* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000296* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000308* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000030A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000311* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000312* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000031C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000031D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000033D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000033E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000033F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000346* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Aspire 7740G) - - pci:v00001002d000068C1sv00001025sd00000348* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000356* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000357* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000358* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000359* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000035E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000360* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000362* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000364* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000365* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000366* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000367* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000368* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000036F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000372* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000373* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000377* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000378* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000379* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000037F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000382* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000383* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000384* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000385* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000386* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000387* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000388* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000038B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000038C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000039A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000411* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000412* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000418* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000419* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000420* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000421* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000425* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000042A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000042E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000042F* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000432* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000433* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000442* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000044C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd0000044E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000451* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000454* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000455* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000475* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000476* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000487* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000489* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000498* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001025sd00000517* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000051D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd00000525* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd00000526* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000052B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000052C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd0000053F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001025sd00000607* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C1sv00001028sd0000041B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000447* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000448* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000456* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001028sd00000457* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001436* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001437* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001440* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001448* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001449* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000144A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000144B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000147B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000149C* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd0000149E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000103Csd00001521* -- ID_MODEL_FROM_DATABASE=Madison Pro [FirePro M5800] -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Madison Pro [FirePro M5800]) - - pci:v00001002d000068C1sv00001043sd00001BC2* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000104Dsd00009071* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000104Dsd00009077* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD00* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD12* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD1A* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD30* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD31* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD50* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FD52* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv00001179sd0000FD63* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv00001179sd0000FD65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv00001179sd0000FDD0* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv00001179sd0000FDD2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6530M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6530M) - - pci:v00001002d000068C1sv0000144Dsd0000C07E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv0000144Dsd0000C085* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000014C0sd00000043* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000014C0sd0000004D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000017AAsd00003928* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000017AAsd00003951* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Mobility Radeon HD 5650) - - pci:v00001002d000068C1sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550M -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (Radeon HD 6550M) - - pci:v00001002d000068C7* - ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] - - pci:v00001002d000068C7sv00001462sd00002241* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) - - pci:v00001002d000068C7sv00001462sd00002243* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) - - pci:v00001002d000068C7sv00001462sd00002244* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Mobility Radeon HD 5570) - - pci:v00001002d000068C7sv00001462sd00002245* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550A -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) - - pci:v00001002d000068C7sv00001462sd00002246* -- ID_MODEL_FROM_DATABASE=Radeon HD 6550A -+ ID_MODEL_FROM_DATABASE=Madison [Mobility Radeon HD 5570/6550A] (Radeon HD 6550A) - - pci:v00001002d000068C8* - ID_MODEL_FROM_DATABASE=Redwood XT GL [FirePro V4800] -@@ -7095,115 +7095,115 @@ pci:v00001002d000068D8* - ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] - - pci:v00001002d000068D8sv00001028sd000068E0* -- ID_MODEL_FROM_DATABASE=Radeon HD 5670 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) - - pci:v00001002d000068D8sv0000174Bsd00005690* -- ID_MODEL_FROM_DATABASE=Radeon HD 5690 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) - - pci:v00001002d000068D8sv0000174Bsd00005730* -- ID_MODEL_FROM_DATABASE=Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) - - pci:v00001002d000068D8sv0000174Bsd0000E151* -- ID_MODEL_FROM_DATABASE=Radeon HD 5670 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5670) - - pci:v00001002d000068D8sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) - - pci:v00001002d000068D8sv000017AFsd00003010* -- ID_MODEL_FROM_DATABASE=Radeon HD 5730 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5730) - - pci:v00001002d000068D8sv000017AFsd00003011* -- ID_MODEL_FROM_DATABASE=Radeon HD 5690 -+ ID_MODEL_FROM_DATABASE=Redwood XT [Radeon HD 5670/5690/5730] (Radeon HD 5690) - - pci:v00001002d000068D9* - ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] - - pci:v00001002d000068D9sv0000103Csd00006870* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv0000103Csd00006872* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001043sd000003CE* -- ID_MODEL_FROM_DATABASE=Radeon HD 5550 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) - - pci:v00001002d000068D9sv00001462sd00002151* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001462sd00002240* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6610 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) - - pci:v00001002d000068D9sv00001545sd00005550* -- ID_MODEL_FROM_DATABASE=Radeon HD 5550 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5550) - - pci:v00001002d000068D9sv00001545sd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 7570) - - pci:v00001002d000068D9sv00001642sd00003985* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001642sd00003996* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv0000174Bsd00006510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv0000174Bsd00006610* -- ID_MODEL_FROM_DATABASE=Radeon HD 6610 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6610) - - pci:v00001002d000068D9sv0000174Bsd0000E142* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5570) - - pci:v00001002d000068D9sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6510 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 6510) - - pci:v00001002d000068D9sv000017AFsd00003010* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood PRO [Radeon HD 5550/5570/5630/6510/6610/7570] (Radeon HD 5630) - - pci:v00001002d000068DA* - ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] - - pci:v00001002d000068DAsv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6390 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) - - pci:v00001002d000068DAsv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) - - pci:v00001002d000068DAsv00001545sd00007570* -- ID_MODEL_FROM_DATABASE=Radeon HD 7570 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 7570) - - pci:v00001002d000068DAsv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6390 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) - - pci:v00001002d000068DAsv0000174Bsd00005570* -- ID_MODEL_FROM_DATABASE=Radeon HD 5570 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5570) - - pci:v00001002d000068DAsv0000174Bsd00005630* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) - - pci:v00001002d000068DAsv0000174Bsd00006490* -- ID_MODEL_FROM_DATABASE=Radeon HD 6490 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6490) - - pci:v00001002d000068DAsv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) - - pci:v00001002d000068DAsv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6390 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 6390) - - pci:v00001002d000068DAsv000017AFsd00003010* -- ID_MODEL_FROM_DATABASE=Radeon HD 5630 -+ ID_MODEL_FROM_DATABASE=Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] (Radeon HD 5630) - - pci:v00001002d000068DE* - ID_MODEL_FROM_DATABASE=Redwood -@@ -7212,349 +7212,349 @@ pci:v00001002d000068E0* - ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] - - pci:v00001002d000068E0sv00001028sd00000404* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv00001028sd00000414* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv00001028sd00000434* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001433* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001434* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001469* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd0000146B* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001486* -- ID_MODEL_FROM_DATABASE=TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450) -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (TouchSmart tm2-2050er discrete GPU (Mobility Radeon HD 5450)) - - pci:v00001002d000068E0sv0000103Csd00001622* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd00001623* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000103Csd0000EEEE* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv0000104Dsd00009076* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Mobility Radeon HD 5450) - - pci:v00001002d000068E0sv00001682sd0000304E* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E0sv00001682sd00006000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E0sv000017AAsd00009E52* -- ID_MODEL_FROM_DATABASE=FirePro M3800 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) - - pci:v00001002d000068E0sv000017AAsd00009E53* -- ID_MODEL_FROM_DATABASE=FirePro M3800 -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430/5450/5470] (FirePro M3800) - - pci:v00001002d000068E1* - ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] - - pci:v00001002d000068E1sv00001043sd0000041F* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv00001043sd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) - - pci:v00001002d000068E1sv0000148Csd00003002* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6250] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6250]) - - pci:v00001002d000068E1sv0000148Csd00003003* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) - - pci:v00001002d000068E1sv0000148Csd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv0000148Csd00008350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350]) - - pci:v00001002d000068E1sv00001545sd00005450* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv00001682sd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv00001682sd00006000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv00001682sd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000174Bsd00005470* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5470] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5470]) - - pci:v00001002d000068E1sv0000174Bsd00006000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv0000174Bsd00006230* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) - - pci:v00001002d000068E1sv0000174Bsd00006350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) - - pci:v00001002d000068E1sv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 5450]) - - pci:v00001002d000068E1sv000017AFsd00003001* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6230] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6230]) - - pci:v00001002d000068E1sv000017AFsd00003014* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 6350]) - - pci:v00001002d000068E1sv000017AFsd00003015* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 7350]) - - pci:v00001002d000068E1sv000017AFsd00008350* -- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 8350 OEM] -+ ID_MODEL_FROM_DATABASE=Park [Mobility Radeon HD 5430] (Caicos [Radeon HD 8350 OEM]) - - pci:v00001002d000068E4* - ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] - - pci:v00001002d000068E4sv00001019sd00002386* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) - - pci:v00001002d000068E4sv00001019sd00002387* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6350M) - - pci:v00001002d000068E4sv00001019sd0000238D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001019sd0000238E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd00000382* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd00000489* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd0000048A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd0000048B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001025sd0000048C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004C1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004CA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004CC* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004CD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001028sd000004D7* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001411* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001421* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001426* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001428* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000142A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000142B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000143A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000143C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001445* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000162F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001639* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163D* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163E* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000163F* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001641* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00001643* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00003578* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd0000357A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00003673* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000103Csd00003675* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001043sd00001C92* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001043sd000084A1* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001043sd000084AD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000104Dsd00009081* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 7350]) - - pci:v00001002d000068E4sv00001558sd00004510* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv00001558sd00005505* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv0000174Bsd00005450* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Cedar [Radeon HD 5450]) - - pci:v00001002d000068E4sv000017AAsd000021DD* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv000017AAsd000021E9* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv000017AAsd00003971* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M) - - pci:v00001002d000068E4sv000017AAsd00003972* -- ID_MODEL_FROM_DATABASE=Radeon HD 7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) - - pci:v00001002d000068E4sv000017AAsd0000397A* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) - - pci:v00001002d000068E4sv000017AAsd0000397B* -- ID_MODEL_FROM_DATABASE=Radeon HD 6370M/7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 6370M/7370M) - - pci:v00001002d000068E4sv000017AAsd0000397F* -- ID_MODEL_FROM_DATABASE=Radeon HD 7370M -+ ID_MODEL_FROM_DATABASE=Robson CE [Radeon HD 6370M/7370M] (Radeon HD 7370M) - - pci:v00001002d000068E5* - ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] - - pci:v00001002d000068E5sv00001179sd0000FD3C* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD50* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD52* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD63* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD65* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD73* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FD75* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDD0* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDD2* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDEA* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv00001179sd0000FDF8* -- ID_MODEL_FROM_DATABASE=Radeon HD 6330M -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Radeon HD 6330M) - - pci:v00001002d000068E5sv0000148Csd00005450* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5450] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 5450]) - - pci:v00001002d000068E5sv0000148Csd00006350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 6350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 6350]) - - pci:v00001002d000068E5sv0000148Csd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) - - pci:v00001002d000068E5sv0000148Csd00008350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 8350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 8350]) - - pci:v00001002d000068E5sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350] -+ ID_MODEL_FROM_DATABASE=Robson LE [Radeon HD 6330M] (Cedar [Radeon HD 7350]) - - pci:v00001002d000068E8* - ID_MODEL_FROM_DATABASE=Cedar -@@ -7575,259 +7575,259 @@ pci:v00001002d000068F9* - ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] - - pci:v00001002d000068F9sv00001019sd00000001* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001019sd00000002* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001019sd00000019* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001025sd00000518* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001025sd00000519* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (XPS 8300) - - pci:v00001002d000068F9sv00001028sd00002126* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000103Csd00002126* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000103Csd00002AAC* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000103Csd00002AAE* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000103Csd00003580* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001043sd00000386* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001043sd000003C2* -- ID_MODEL_FROM_DATABASE=EAH5450 SILENT/DI/512MD2 (LP) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (EAH5450 SILENT/DI/512MD2 (LP)) - - pci:v00001002d000068F9sv00001462sd00002130* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002131* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002133* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001462sd00002180* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002181* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002182* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001462sd00002183* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001462sd00002230* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002231* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001462sd00002495* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000148Csd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 5530/6250 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530/6250) - - pci:v00001002d000068F9sv0000148Csd00003002* -- ID_MODEL_FROM_DATABASE=Radeon HD 6290 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) - - pci:v00001002d000068F9sv0000148Csd00003003* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv0000148Csd00003004* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000148Csd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv0000148Csd00008350* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) - - pci:v00001002d000068F9sv00001545sd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv00001642sd00003983* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001642sd00003984* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001642sd00003987* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv00001642sd00003997* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001642sd00003A05* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001642sd00003B31* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350A -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350A) - - pci:v00001002d000068F9sv00001682sd00003270* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv0000174Bsd00003987* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000174Bsd00005470* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv0000174Bsd00005490* -- ID_MODEL_FROM_DATABASE=Radeon HD 5490 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) - - pci:v00001002d000068F9sv0000174Bsd00005530* -- ID_MODEL_FROM_DATABASE=Radeon HD 5530 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) - - pci:v00001002d000068F9sv0000174Bsd00006230* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv0000174Bsd00006250* -- ID_MODEL_FROM_DATABASE=Radeon HD 6250 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) - - pci:v00001002d000068F9sv0000174Bsd00006290* -- ID_MODEL_FROM_DATABASE=Radeon HD 6290 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) - - pci:v00001002d000068F9sv0000174Bsd00006350* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068F9sv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 7350) - - pci:v00001002d000068F9sv0000174Bsd00008350* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 8350) - - pci:v00001002d000068F9sv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000174Bsd0000E145* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv00001787sd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 5530 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5530) - - pci:v00001002d000068F9sv00001787sd00003002* -- ID_MODEL_FROM_DATABASE=Radeon HD 5490 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) - - pci:v00001002d000068F9sv000017AAsd00003602* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AAsd00003603* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AAsd0000360F* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AAsd00003619* -- ID_MODEL_FROM_DATABASE=Radeon HD 5450 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5450) - - pci:v00001002d000068F9sv000017AFsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 6250 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6250) - - pci:v00001002d000068F9sv000017AFsd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 6230 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6230) - - pci:v00001002d000068F9sv000017AFsd00003002* -- ID_MODEL_FROM_DATABASE=Radeon HD 6290 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6290) - - pci:v00001002d000068F9sv000017AFsd00003011* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv000017AFsd00003012* -- ID_MODEL_FROM_DATABASE=Radeon HD 5490 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5490) - - pci:v00001002d000068F9sv000017AFsd00003013* -- ID_MODEL_FROM_DATABASE=Radeon HD 5470 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 5470) - - pci:v00001002d000068F9sv000017AFsd00003014* -- ID_MODEL_FROM_DATABASE=Radeon HD 6350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068FA* - ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] - - pci:v00001002d000068FAsv00001019sd00000019* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000021* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000022* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000026* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000103Csd00002ADF* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350A -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) - - pci:v00001002d000068FAsv0000103Csd00002AE8* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350A -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) - - pci:v00001002d000068FAsv00001043sd00008350* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) - - pci:v00001002d000068FAsv00001462sd00002128* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002184* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002186* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002495* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd0000B490* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001642sd00003985* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd00008153* -- ID_MODEL_FROM_DATABASE=Radeon HD 8350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E180* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FAsv000017AFsd00003015* -- ID_MODEL_FROM_DATABASE=Radeon HD 7350 -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) - - pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE -@@ -7863,16 +7863,16 @@ pci:v00001002d00007109* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] - - pci:v00001002d00007109sv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-in-Wonder X1800XL -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (All-in-Wonder X1800XL) - - pci:v00001002d00007109sv00001002sd00000D02* -- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 XL] (Radeon X1800 CrossFire Edition) - - pci:v00001002d0000710A* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] - - pci:v00001002d0000710Asv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=Radeon X1800 GTO² -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] (Radeon X1800 GTO²) - - pci:v00001002d0000710B* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800 GTO] -@@ -7887,10 +7887,10 @@ pci:v00001002d00007129* - ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) - - pci:v00001002d00007129sv00001002sd00000323* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X1800 XL (Secondary) -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (All-In-Wonder X1800 XL (Secondary)) - - pci:v00001002d00007129sv00001002sd00000D03* -- ID_MODEL_FROM_DATABASE=Radeon X1800 CrossFire Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=R520 [Radeon X1800] (Secondary) (Radeon X1800 CrossFire Edition (Secondary)) - - pci:v00001002d00007140* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550/X1600 Series] -@@ -7899,10 +7899,10 @@ pci:v00001002d00007142* - ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] - - pci:v00001002d00007142sv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition -+ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (All-in-Wonder 2006 PCI-E Edition) - - pci:v00001002d00007142sv00001043sd00000142* -- ID_MODEL_FROM_DATABASE=EAX1300PRO/TD/256M -+ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (EAX1300PRO/TD/256M) - - pci:v00001002d00007143* - ID_MODEL_FROM_DATABASE=RV505 [Radeon X1300/X1550 Series] -@@ -7911,16 +7911,16 @@ pci:v00001002d00007145* - ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] - - pci:v00001002d00007145sv000017AAsd00002006* -- ID_MODEL_FROM_DATABASE=Thinkpad T60 model 2007 -+ ID_MODEL_FROM_DATABASE=RV515/M54 [Mobility Radeon X1400] (Thinkpad T60 model 2007) - - pci:v00001002d00007146* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] - - pci:v00001002d00007146sv00001002sd00000322* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (All-in-Wonder 2006 PCI-E Edition) - - pci:v00001002d00007146sv00001545sd00001996* -- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550] (Radeon X1300 512MB PCI-e) - - pci:v00001002d00007147* - ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 64-bit] -@@ -7944,7 +7944,7 @@ pci:v00001002d00007162* - ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) - - pci:v00001002d00007162sv00001002sd00000323* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=RV515 PRO [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) - - pci:v00001002d00007163* - ID_MODEL_FROM_DATABASE=RV505 [Radeon X1550 Series] (Secondary) -@@ -7953,10 +7953,10 @@ pci:v00001002d00007166* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) - - pci:v00001002d00007166sv00001002sd00000323* -- ID_MODEL_FROM_DATABASE=All-in-Wonder 2006 PCI-E Edition (Secondary) -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (All-in-Wonder 2006 PCI-E Edition (Secondary)) - - pci:v00001002d00007166sv00001545sd00001997* -- ID_MODEL_FROM_DATABASE=Radeon X1300 512MB PCI-e (Secondary) -+ ID_MODEL_FROM_DATABASE=RV515 [Radeon X1300/X1550 Series] (Secondary) (Radeon X1300 512MB PCI-e (Secondary)) - - pci:v00001002d00007167* - ID_MODEL_FROM_DATABASE=RV515 [Radeon X1550 64-bit] (Secondary) -@@ -7983,7 +7983,7 @@ pci:v00001002d00007188* - ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] - - pci:v00001002d00007188sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=6910p -+ ID_MODEL_FROM_DATABASE=RV516/M64-S [Mobility Radeon X2300] (6910p) - - pci:v00001002d0000718A* - ID_MODEL_FROM_DATABASE=RV516/M64 [Mobility Radeon X2300] -@@ -8028,16 +8028,16 @@ pci:v00001002d000071C0* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] - - pci:v00001002d000071C0sv00001002sd0000E160* -- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO -+ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) - - pci:v00001002d000071C0sv0000174Bsd0000E160* -- ID_MODEL_FROM_DATABASE=Radeon X1650 GTO -+ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 XT/X1650 GTO] (Radeon X1650 GTO) - - pci:v00001002d000071C1* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] - - pci:v00001002d000071C1sv0000174Bsd00000880* -- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Radeon X1700 FSC) - - pci:v00001002d000071C2* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600 PRO] -@@ -8046,22 +8046,22 @@ pci:v00001002d000071C4* - ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] - - pci:v00001002d000071C4sv000017AAsd00002007* -- ID_MODEL_FROM_DATABASE=ThinkPad T60p -+ ID_MODEL_FROM_DATABASE=RV530/M56 GL [Mobility FireGL V5200] (ThinkPad T60p) - - pci:v00001002d000071C5* - ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] - - pci:v00001002d000071C5sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq nx9420 Notebook) - - pci:v00001002d000071C5sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq NW8440 -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (Compaq NW8440) - - pci:v00001002d000071C5sv00001043sd000010B2* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (A6J-Q008) - - pci:v00001002d000071C5sv0000106Bsd00000080* -- ID_MODEL_FROM_DATABASE=MacBook Pro -+ ID_MODEL_FROM_DATABASE=RV530/M56-P [Mobility Radeon X1600] (MacBook Pro) - - pci:v00001002d000071C6* - ID_MODEL_FROM_DATABASE=RV530LE [Radeon X1600/X1650 PRO] -@@ -8070,7 +8070,7 @@ pci:v00001002d000071C7* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] - - pci:v00001002d000071C7sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=PowerColor X1650 PRO AGP -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (PowerColor X1650 PRO AGP) - - pci:v00001002d000071CE* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1300 XT/X1600 PRO] -@@ -8094,13 +8094,13 @@ pci:v00001002d000071E0* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) - - pci:v00001002d000071E0sv0000174Bsd0000E161* -- ID_MODEL_FROM_DATABASE=Radeon X1600 GTO (Secondary) -+ ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) (Radeon X1600 GTO (Secondary)) - - pci:v00001002d000071E1* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) - - pci:v00001002d000071E1sv0000174Bsd00000881* -- ID_MODEL_FROM_DATABASE=Radeon X1700 FSC (Secondary) -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1700 FSC (Secondary)) - - pci:v00001002d000071E2* - ID_MODEL_FROM_DATABASE=RV530 [Radeon X1600] (Secondary) -@@ -8112,7 +8112,7 @@ pci:v00001002d000071E7* - ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) - - pci:v00001002d000071E7sv00001787sd00003001* -- ID_MODEL_FROM_DATABASE=Radeon X1650 PRO AGP -+ ID_MODEL_FROM_DATABASE=RV535 [Radeon X1650 PRO] (Secondary) (Radeon X1650 PRO AGP) - - pci:v00001002d000071F2* - ID_MODEL_FROM_DATABASE=RV530 GL [FireGL V3400] (Secondary) -@@ -8127,7 +8127,7 @@ pci:v00001002d00007240* - ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] - - pci:v00001002d00007240sv00001002sd00000D02* -- ID_MODEL_FROM_DATABASE=Radeon X1950 CrossFire Edition -+ ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XTX] (Radeon X1950 CrossFire Edition) - - pci:v00001002d00007244* - ID_MODEL_FROM_DATABASE=R580+ [Radeon X1950 XT] -@@ -8139,25 +8139,25 @@ pci:v00001002d00007249* - ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] - - pci:v00001002d00007249sv00001002sd00000412* -- ID_MODEL_FROM_DATABASE=All-In-Wonder X1900 -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (All-In-Wonder X1900) - - pci:v00001002d00007249sv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=Radeon X1900 XT/XTX -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XT/XTX) - - pci:v00001002d00007249sv00001002sd00000D02* -- ID_MODEL_FROM_DATABASE=Radeon X1900 CrossFire Edition -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 CrossFire Edition) - - pci:v00001002d00007249sv00001043sd00000160* -- ID_MODEL_FROM_DATABASE=Radeon X1900 XTX 512 MB GDDR3 -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 XT] (Radeon X1900 XTX 512 MB GDDR3) - - pci:v00001002d0000724B* - ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] - - pci:v00001002d0000724Bsv00001002sd00000B12* -- ID_MODEL_FROM_DATABASE=Radeon X1900 (Primary) -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Primary)) - - pci:v00001002d0000724Bsv00001002sd00000B13* -- ID_MODEL_FROM_DATABASE=Radeon X1900 (Secondary) -+ ID_MODEL_FROM_DATABASE=R580 [Radeon X1900 GT] (Radeon X1900 (Secondary)) - - pci:v00001002d0000724E* - ID_MODEL_FROM_DATABASE=R580 GL [FireGL V7350] -@@ -8181,7 +8181,7 @@ pci:v00001002d00007291* - ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] - - pci:v00001002d00007291sv00001462sd00000810* -- ID_MODEL_FROM_DATABASE=Radeon X1700 SE -+ ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 XT] (Radeon X1700 SE) - - pci:v00001002d00007293* - ID_MODEL_FROM_DATABASE=RV560 [Radeon X1650 GT] -@@ -8214,10 +8214,10 @@ pci:v00001002d00007910* - ID_MODEL_FROM_DATABASE=RS690 Host Bridge - - pci:v00001002d00007910sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (Satellite P305D-S8995E) - - pci:v00001002d00007910sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=RS690 Host Bridge (KI690-AM2 Motherboard) - - pci:v00001002d00007911* - ID_MODEL_FROM_DATABASE=RS690 Host Bridge -@@ -8238,31 +8238,31 @@ pci:v00001002d00007917* - ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) - - pci:v00001002d00007917sv00001002sd00007910* -- ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge -+ ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Port 3) (RS690 PCI to PCI Bridge) - - pci:v00001002d00007919* - ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] - - pci:v00001002d00007919sv00001179sd00007919* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (Satellite P305D-S8995E) - - pci:v00001002d00007919sv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=RS690 HDMI Audio [Radeon Xpress 1200 Series] (KI690-AM2 Motherboard) - - pci:v00001002d0000791E* - ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] - - pci:v00001002d0000791Esv00001462sd00007327* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (K9AG Neo2) - - pci:v00001002d0000791Esv000017F2sd00005000* -- ID_MODEL_FROM_DATABASE=KI690-AM2 Motherboard -+ ID_MODEL_FROM_DATABASE=RS690 [Radeon X1200] (KI690-AM2 Motherboard) - - pci:v00001002d0000791F* - ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] - - pci:v00001002d0000791Fsv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=RS690M [Radeon Xpress 1200/1250/1270] (Satellite P305D-S8995E) - - pci:v00001002d00007930* - ID_MODEL_FROM_DATABASE=RS600 Host Bridge -@@ -8301,13 +8301,13 @@ pci:v00001002d00009400* - ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] - - pci:v00001002d00009400sv00001002sd00002552* -- ID_MODEL_FROM_DATABASE=Radeon HD 2900 XT -+ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 XT) - - pci:v00001002d00009400sv00001002sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 2900 PRO -+ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (Radeon HD 2900 PRO) - - pci:v00001002d00009400sv00001002sd00003142* -- ID_MODEL_FROM_DATABASE=HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe -+ ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT] (HIS Radeon HD 2900XT 512MB GDDR3 VIVO PCIe) - - pci:v00001002d00009401* - ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 XT] -@@ -8337,10 +8337,10 @@ pci:v00001002d00009442* - ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] - - pci:v00001002d00009442sv00001002sd00000502* -- ID_MODEL_FROM_DATABASE=MSI Radeon HD 4850 512MB GDDR3 -+ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (MSI Radeon HD 4850 512MB GDDR3) - - pci:v00001002d00009442sv0000174Bsd0000E810* -- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 -+ ID_MODEL_FROM_DATABASE=RV770 [Radeon HD 4850] (Radeon HD 4850 512MB GDDR3) - - pci:v00001002d00009443* - ID_MODEL_FROM_DATABASE=R700 [Radeon HD 4850 X2] -@@ -8364,7 +8364,7 @@ pci:v00001002d0000944E* - ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] - - pci:v00001002d0000944Esv0000174Bsd00003261* -- ID_MODEL_FROM_DATABASE=Radeon HD 4810 -+ ID_MODEL_FROM_DATABASE=RV770 CE [Radeon HD 4710] (Radeon HD 4810) - - pci:v00001002d00009450* - ID_MODEL_FROM_DATABASE=RV770 GL [FireStream 9270] -@@ -8391,7 +8391,7 @@ pci:v00001002d00009480* - ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] - - pci:v00001002d00009480sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4650 [dv6-1190en] -+ ID_MODEL_FROM_DATABASE=RV730/M96 [Mobility Radeon HD 4650/5165] (Mobility Radeon HD 4650 [dv6-1190en]) - - pci:v00001002d00009488* - ID_MODEL_FROM_DATABASE=RV730/M96-XT [Mobility Radeon HD 4670] -@@ -8403,7 +8403,7 @@ pci:v00001002d00009490* - ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] - - pci:v00001002d00009490sv0000174Bsd0000E880* -- ID_MODEL_FROM_DATABASE=Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO -+ ID_MODEL_FROM_DATABASE=RV730 XT [Radeon HD 4670] (Radeon HD 4670 512MB GDDR3 Dual DVI-I/TVO) - - pci:v00001002d00009491* - ID_MODEL_FROM_DATABASE=RV730/M96-CSP [Radeon E4690] -@@ -8412,19 +8412,19 @@ pci:v00001002d00009495* - ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] - - pci:v00001002d00009495sv00001002sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650/4670 AGP -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650/4670 AGP) - - pci:v00001002d00009495sv00001092sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4670 AGP 512MB DDR2 -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4670 AGP 512MB DDR2) - - pci:v00001002d00009495sv00001458sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) - - pci:v00001002d00009495sv00001682sd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP) - - pci:v00001002d00009495sv0000174Bsd00000028* -- ID_MODEL_FROM_DATABASE=Radeon HD 4650 AGP DDR2 -+ ID_MODEL_FROM_DATABASE=RV730 [Radeon HD 4600 AGP Series] (Radeon HD 4650 AGP DDR2) - - pci:v00001002d00009498* - ID_MODEL_FROM_DATABASE=RV730 PRO [Radeon HD 4650] -@@ -8457,22 +8457,22 @@ pci:v00001002d000094C1* - ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] - - pci:v00001002d000094C1sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) - - pci:v00001002d000094C1sv00001028sd00000D02* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO/XT] (Optiplex 755) - - pci:v00001002d000094C3* - ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] - - pci:v00001002d000094C3sv00001028sd00000302* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 Pro -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 Pro) - - pci:v00001002d000094C3sv0000174Bsd0000E400* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) - - pci:v00001002d000094C3sv000018BCsd00003550* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 [Radeon HD 2400 PRO] (Radeon HD 2400 PRO) - - pci:v00001002d000094C4* - ID_MODEL_FROM_DATABASE=RV610 LE [Radeon HD 2400 PRO AGP] -@@ -8490,7 +8490,7 @@ pci:v00001002d000094C9* - ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] - - pci:v00001002d000094C9sv00001002sd000094C9* -- ID_MODEL_FROM_DATABASE=Radeon HD2400 -+ ID_MODEL_FROM_DATABASE=RV610/M72-S [Mobility Radeon HD 2400] (Radeon HD2400) - - pci:v00001002d000094CB* - ID_MODEL_FROM_DATABASE=RV610 [Radeon E2400] -@@ -8505,7 +8505,7 @@ pci:v00001002d00009501* - ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] - - pci:v00001002d00009501sv0000174Bsd0000E620* -- ID_MODEL_FROM_DATABASE=Radeon HD 3870 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3870] (Radeon HD 3870) - - pci:v00001002d00009504* - ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850] -@@ -8514,13 +8514,13 @@ pci:v00001002d00009505* - ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] - - pci:v00001002d00009505sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3850 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3850) - - pci:v00001002d00009505sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3690/3850 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690/3850) - - pci:v00001002d00009505sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3690 -+ ID_MODEL_FROM_DATABASE=RV670 [Radeon HD 3690/3850] (Radeon HD 3690) - - pci:v00001002d00009506* - ID_MODEL_FROM_DATABASE=RV670/M88 [Mobility Radeon HD 3850 X2] -@@ -8556,76 +8556,76 @@ pci:v00001002d0000954F* - ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] - - pci:v00001002d0000954Fsv00001462sd00001618* -- ID_MODEL_FROM_DATABASE=R4350 MD512H (MS-V161) -+ ID_MODEL_FROM_DATABASE=RV710 [Radeon HD 4350/4550] (R4350 MD512H (MS-V161)) - - pci:v00001002d00009552* - ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] - - pci:v00001002d00009552sv00001028sd00001103* -- ID_MODEL_FROM_DATABASE=M92 [Mobility Radeon HD 4330] -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (M92 [Mobility Radeon HD 4330]) - - pci:v00001002d00009552sv00001458sd000021AC* -- ID_MODEL_FROM_DATABASE=Radeon HD 4350 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350) - - pci:v00001002d00009552sv00001458sd000021ED* -- ID_MODEL_FROM_DATABASE=Radeon HD 4550 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4550) - - pci:v00001002d00009552sv0000148Csd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 4350 Go! Green 512MB GDDR3 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350 Go! Green 512MB GDDR3) - - pci:v00001002d00009552sv0000174Bsd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 4350/4550 HyperMemory DDR2 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4330/4350/4550] (Radeon HD 4350/4550 HyperMemory DDR2) - - pci:v00001002d00009553* - ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] - - pci:v00001002d00009553sv00001025sd0000015E* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd0000017D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd00000205* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd00000206* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001025sd00000237* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001028sd000002BE* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001028sd000002E8* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv0000103Csd00003624* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv0000103Csd00003636* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4530) - - pci:v00001002d00009553sv00001043sd00001B32* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001043sd00001B42* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv0000104Dsd00009056* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Mobility Radeon HD 4570) - - pci:v00001002d00009553sv00001179sd0000FF82* -- ID_MODEL_FROM_DATABASE=Satellite L505-13T GPU (Mobility Radeon HD 5145) -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] (Satellite L505-13T GPU (Mobility Radeon HD 5145)) - - pci:v00001002d00009555* - ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] - - pci:v00001002d00009555sv0000103Csd00001411* -- ID_MODEL_FROM_DATABASE=ProBook 4720s GPU (Mobility Radeon HD 4350) -+ ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4350/4550] (ProBook 4720s GPU (Mobility Radeon HD 4350)) - - pci:v00001002d00009557* - ID_MODEL_FROM_DATABASE=RV711 GL [FirePro RG220] -@@ -8643,10 +8643,10 @@ pci:v00001002d00009583* - ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] - - pci:v00001002d00009583sv0000106Bsd00000083* -- ID_MODEL_FROM_DATABASE=iMac 7,1 -+ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (iMac 7,1) - - pci:v00001002d00009583sv00001734sd00001107* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 2700 -+ ID_MODEL_FROM_DATABASE=RV630/M76 [Mobility Radeon HD 2600 XT/2700] (Mobility Radeon HD 2700) - - pci:v00001002d00009586* - ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT AGP] -@@ -8658,13 +8658,13 @@ pci:v00001002d00009588* - ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] - - pci:v00001002d00009588sv00001458sd0000216C* -- ID_MODEL_FROM_DATABASE=Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H) -+ ID_MODEL_FROM_DATABASE=RV630 XT [Radeon HD 2600 XT] (Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H)) - - pci:v00001002d00009589* - ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] - - pci:v00001002d00009589sv00001787sd00003000* -- ID_MODEL_FROM_DATABASE=Radeon HD 3610 -+ ID_MODEL_FROM_DATABASE=RV630 PRO [Radeon HD 2600 PRO] (Radeon HD 3610) - - pci:v00001002d0000958A* - ID_MODEL_FROM_DATABASE=RV630 [Radeon HD 2600 X2] -@@ -8682,7 +8682,7 @@ pci:v00001002d00009591* - ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] - - pci:v00001002d00009591sv00001002sd00009591* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3650 -+ ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3650] (Mobility Radeon HD 3650) - - pci:v00001002d00009593* - ID_MODEL_FROM_DATABASE=RV635/M86 [Mobility Radeon HD 3670] -@@ -8694,7 +8694,7 @@ pci:v00001002d00009596* - ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] - - pci:v00001002d00009596sv00001043sd00000028* -- ID_MODEL_FROM_DATABASE=EAH3650 SILENT/HTDI/512M/A -+ ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] (EAH3650 SILENT/HTDI/512M/A) - - pci:v00001002d00009597* - ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] -@@ -8703,19 +8703,19 @@ pci:v00001002d00009598* - ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] - - pci:v00001002d00009598sv00001002sd00009598* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3600 -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Mobility Radeon HD 3600) - - pci:v00001002d00009598sv00001043sd000001D6* -- ID_MODEL_FROM_DATABASE=EAH3650 Silent -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (EAH3650 Silent) - - pci:v00001002d00009598sv00001043sd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 4570 -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 4570) - - pci:v00001002d00009598sv0000174Bsd00003001* -- ID_MODEL_FROM_DATABASE=Radeon HD 3750 -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (Radeon HD 3750) - - pci:v00001002d00009598sv0000174Bsd00004580* -- ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 4580] -+ ID_MODEL_FROM_DATABASE=RV635 [Radeon HD 3650/3750/4570/4580] (RV635 PRO [Radeon HD 4580]) - - pci:v00001002d00009599* - ID_MODEL_FROM_DATABASE=RV635 PRO [Radeon HD 3650 AGP] -@@ -8724,7 +8724,7 @@ pci:v00001002d000095C0* - ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] - - pci:v00001002d000095C0sv00001002sd000095C0* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3470 -+ ID_MODEL_FROM_DATABASE=RV620 PRO [Radeon HD 3470] (Mobility Radeon HD 3470) - - pci:v00001002d000095C2* - ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3410/3430] -@@ -8733,13 +8733,13 @@ pci:v00001002d000095C4* - ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] - - pci:v00001002d000095C4sv00001002sd000095C4* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 3400 -+ ID_MODEL_FROM_DATABASE=RV620/M82 [Mobility Radeon HD 3450/3470] (Mobility Radeon HD 3400) - - pci:v00001002d000095C5* - ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] - - pci:v00001002d000095C5sv00001028sd00000342* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450] (OptiPlex 980) - - pci:v00001002d000095C6* - ID_MODEL_FROM_DATABASE=RV620 LE [Radeon HD 3450 AGP] -@@ -8760,7 +8760,7 @@ pci:v00001002d00009610* - ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] - - pci:v00001002d00009610sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-MA78GM-S2H Motherboard -+ ID_MODEL_FROM_DATABASE=RS780 [Radeon HD 3200] (GA-MA78GM-S2H Motherboard) - - pci:v00001002d00009611* - ID_MODEL_FROM_DATABASE=RS780C [Radeon 3100] -@@ -8823,22 +8823,22 @@ pci:v00001002d0000970F* - ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] - - pci:v00001002d0000970Fsv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (A785GM-M) - - pci:v00001002d0000970Fsv00001043sd000083A2* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M4A785TD Motherboard) - - pci:v00001002d0000970Fsv00001043sd0000843E* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=RS880 HDMI Audio [Radeon HD 4200 Series] (M5A88-V EVO) - - pci:v00001002d00009710* - ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] - - pci:v00001002d00009710sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (A785GM-M) - - pci:v00001002d00009710sv00001043sd000083A2* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4200] (M4A785TD Motherboard) - - pci:v00001002d00009712* - ID_MODEL_FROM_DATABASE=RS880M [Mobility Radeon HD 4225/4250] -@@ -8853,13 +8853,13 @@ pci:v00001002d00009715* - ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] - - pci:v00001002d00009715sv00001043sd0000843E* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=RS880 [Radeon HD 4250] (M5A88-V EVO) - - pci:v00001002d00009802* - ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] - - pci:v00001002d00009802sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] (PURE Fusion Mini) - - pci:v00001002d00009803* - ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 6310] -@@ -8991,16 +8991,16 @@ pci:v00001002d00009902* - ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller - - pci:v00001002d00009902sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=Trinity HDMI Audio Controller (ProBook 455 G1 Notebook) - - pci:v00001002d00009903* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] - - pci:v00001002d00009903sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) - - pci:v00001002d00009903sv0000103Csd00001952* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7640G] (ProBook 455 G1 Notebook) - - pci:v00001002d00009904* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7560D] -@@ -9114,10 +9114,10 @@ pci:v00001002d0000AA10* - ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] - - pci:v00001002d0000AA10sv0000174Bsd0000AA10* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) - - pci:v00001002d0000AA10sv000018BCsd0000AA10* -- ID_MODEL_FROM_DATABASE=Radeon HD 2400 PRO -+ ID_MODEL_FROM_DATABASE=RV610 HDMI Audio [Radeon HD 2350/2400 Series] (Radeon HD 2400 PRO) - - pci:v00001002d0000AA18* - ID_MODEL_FROM_DATABASE=RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] -@@ -9132,13 +9132,13 @@ pci:v00001002d0000AA30* - ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] - - pci:v00001002d0000AA30sv0000174Bsd0000AA30* -- ID_MODEL_FROM_DATABASE=Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink -+ ID_MODEL_FROM_DATABASE=RV770 HDMI Audio [Radeon HD 4850/4870] (Radeon HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink) - - pci:v00001002d0000AA38* - ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] - - pci:v00001002d0000AA38sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=RV710/730 HDMI Audio [Radeon HD 4000 series] (dv6-1190en) - - pci:v00001002d0000AA50* - ID_MODEL_FROM_DATABASE=Cypress HDMI Audio [Radeon HD 5800 Series] -@@ -9150,16 +9150,16 @@ pci:v00001002d0000AA60* - ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] - - pci:v00001002d0000AA60sv00001025sd0000033D* -- ID_MODEL_FROM_DATABASE=Mobility Radeon HD 5650 -+ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Mobility Radeon HD 5650) - - pci:v00001002d0000AA60sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Redwood HDMI Audio [Radeon HD 5000 Series] (Aspire 7740G) - - pci:v00001002d0000AA68* - ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] - - pci:v00001002d0000AA68sv00001028sd0000AA68* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=Cedar HDMI Audio [Radeon HD 5400/6300 Series] (XPS 8300) - - pci:v00001002d0000AA80* - ID_MODEL_FROM_DATABASE=Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] -@@ -9171,13 +9171,13 @@ pci:v00001002d0000AA90* - ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] - - pci:v00001002d0000AA90sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=Turks/Whistler HDMI Audio [Radeon HD 6000 Series] (Precision M4600) - - pci:v00001002d0000AA98* - ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] - - pci:v00001002d0000AA98sv0000174Bsd0000AA98* -- ID_MODEL_FROM_DATABASE=Radeon HD 6450 1GB DDR3 -+ ID_MODEL_FROM_DATABASE=Caicos HDMI Audio [Radeon HD 6400 Series] (Radeon HD 6450 1GB DDR3) - - pci:v00001002d0000AAA0* - ID_MODEL_FROM_DATABASE=Tahiti XT HDMI Audio [Radeon HD 7970 Series] -@@ -9264,10 +9264,10 @@ pci:v00001004d00000304sv00001004sd00000304* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio - - pci:v00001004d00000304sv0000122Dsd00001206* -- ID_MODEL_FROM_DATABASE=DSP368 Audio -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (DSP368 Audio) - - pci:v00001004d00000304sv00001483sd00005020* -- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio (XWave Thunder 3D Audio) - - pci:v00001004d00000305* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport -@@ -9276,10 +9276,10 @@ pci:v00001004d00000305sv00001004sd00000305* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport - - pci:v00001004d00000305sv0000122Dsd00001207* -- ID_MODEL_FROM_DATABASE=DSP368 Audio Gameport -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (DSP368 Audio Gameport) - - pci:v00001004d00000305sv00001483sd00005021* -- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Gameport -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Gameport (XWave Thunder 3D Audio Gameport) - - pci:v00001004d00000306* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers -@@ -9288,22 +9288,22 @@ pci:v00001004d00000306sv00001004sd00000306* - ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers - - pci:v00001004d00000306sv0000122Dsd00001208* -- ID_MODEL_FROM_DATABASE=DSP368 Audio Support Registers -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (DSP368 Audio Support Registers) - - pci:v00001004d00000306sv00001483sd00005022* -- ID_MODEL_FROM_DATABASE=XWave Thunder 3D Audio Support Registers -+ ID_MODEL_FROM_DATABASE=QSound ThunderBird PCI Audio Support Registers (XWave Thunder 3D Audio Support Registers) - - pci:v00001004d00000307* - ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio - - pci:v00001004d00000307sv00001004sd00000703* -- ID_MODEL_FROM_DATABASE=Philips Rhythmic Edge PSC703 -+ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Rhythmic Edge PSC703) - - pci:v00001004d00000307sv00001004sd00000705* -- ID_MODEL_FROM_DATABASE=Philips Seismic Edge PSC705 -+ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Seismic Edge PSC705) - - pci:v00001004d00000307sv00001004sd00000706* -- ID_MODEL_FROM_DATABASE=Philips Acoustic Edge PSC706 -+ ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio (Philips Acoustic Edge PSC706) - - pci:v00001004d00000308* - ID_MODEL_FROM_DATABASE=SAA7785 ThunderBird PCI Audio Gameport -@@ -9375,16 +9375,16 @@ pci:v0000100Bd00000020* - ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller - - pci:v0000100Bd00000020sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Network -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Pavilion ze4400 builtin Network) - - pci:v0000100Bd00000020sv000012D9sd0000000C* -- ID_MODEL_FROM_DATABASE=Aculab E1/T1 PMXc cPCI carrier card -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (Aculab E1/T1 PMXc cPCI carrier card) - - pci:v0000100Bd00000020sv00001385sd0000F311* -- ID_MODEL_FROM_DATABASE=FA311 / FA312 (FA311 with WoL HW) -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA311 / FA312 (FA311 with WoL HW)) - - pci:v0000100Bd00000020sv00001385sd0000F312* -- ID_MODEL_FROM_DATABASE=FA312 (rev. A1) Fast Ethernet PCI Adapter -+ ID_MODEL_FROM_DATABASE=DP83815 (MacPhyter) Ethernet Controller (FA312 (rev. A1) Fast Ethernet PCI Adapter) - - pci:v0000100Bd00000021* - ID_MODEL_FROM_DATABASE=PC87200 PCI to ISA Bridge -@@ -9393,13 +9393,13 @@ pci:v0000100Bd00000022* - ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller - - pci:v0000100Bd00000022sv00001186sd00004900* -- ID_MODEL_FROM_DATABASE=DGE-500T -+ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (DGE-500T) - - pci:v0000100Bd00000022sv00001385sd0000621A* -- ID_MODEL_FROM_DATABASE=GA621 -+ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA621) - - pci:v0000100Bd00000022sv00001385sd0000622A* -- ID_MODEL_FROM_DATABASE=GA622T -+ ID_MODEL_FROM_DATABASE=DP83820 10/100/1000 Ethernet Controller (GA622T) - - pci:v0000100Bd00000028* - ID_MODEL_FROM_DATABASE=Geode GX2 Host Bridge -@@ -9435,13 +9435,13 @@ pci:v0000100Bd00000502* - ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller - - pci:v0000100Bd00000502sv0000100Bsd00000502* -- ID_MODEL_FROM_DATABASE=IDE Controller -+ ID_MODEL_FROM_DATABASE=SCx200, SC1100 IDE controller (IDE Controller) - - pci:v0000100Bd00000503* - ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller - - pci:v0000100Bd00000503sv0000100Bsd00000503* -- ID_MODEL_FROM_DATABASE=XpressAudio controller -+ ID_MODEL_FROM_DATABASE=SCx200, SC1100 Audio Controller (XpressAudio controller) - - pci:v0000100Bd00000504* - ID_MODEL_FROM_DATABASE=SCx200 Video -@@ -9453,19 +9453,19 @@ pci:v0000100Bd00000510* - ID_MODEL_FROM_DATABASE=SC1100 Bridge - - pci:v0000100Bd00000510sv0000100Bsd00000500* -- ID_MODEL_FROM_DATABASE=GPIO and LPC support bridge -+ ID_MODEL_FROM_DATABASE=SC1100 Bridge (GPIO and LPC support bridge) - - pci:v0000100Bd00000511* - ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI - - pci:v0000100Bd00000511sv0000100Bsd00000501* -- ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI bridge -+ ID_MODEL_FROM_DATABASE=SC1100 SMI & ACPI (bridge) - - pci:v0000100Bd00000515* - ID_MODEL_FROM_DATABASE=SC1100 XBus - - pci:v0000100Bd00000515sv0000100Bsd00000505* -- ID_MODEL_FROM_DATABASE=SC1100 PCI to XBus bridge -+ ID_MODEL_FROM_DATABASE=SC1100 XBus (SC1100 PCI to XBus bridge) - - pci:v0000100Bd0000D001* - ID_MODEL_FROM_DATABASE=87410 IDE -@@ -9534,55 +9534,55 @@ pci:v00001011d00000009* - ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] - - pci:v00001011d00000009sv00001025sd00000310* -- ID_MODEL_FROM_DATABASE=21140 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (21140 Fast Ethernet) - - pci:v00001011d00000009sv000010B8sd00002001* -- ID_MODEL_FROM_DATABASE=SMC9332BDT EtherPower 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BDT EtherPower 10/100) - - pci:v00001011d00000009sv000010B8sd00002002* -- ID_MODEL_FROM_DATABASE=SMC9332BVT EtherPower T4 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9332BVT EtherPower T4 10/100) - - pci:v00001011d00000009sv000010B8sd00002003* -- ID_MODEL_FROM_DATABASE=SMC9334BDT EtherPower 10/100 (1-port) -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (SMC9334BDT EtherPower 10/100 (1-port)) - - pci:v00001011d00000009sv00001109sd00002400* -- ID_MODEL_FROM_DATABASE=ANA-6944A/TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (ANA-6944A/TX Fast Ethernet) - - pci:v00001011d00000009sv00001112sd00002300* -- ID_MODEL_FROM_DATABASE=RNS2300 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2300 Fast Ethernet) - - pci:v00001011d00000009sv00001112sd00002320* -- ID_MODEL_FROM_DATABASE=RNS2320 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2320 Fast Ethernet) - - pci:v00001011d00000009sv00001112sd00002340* -- ID_MODEL_FROM_DATABASE=RNS2340 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (RNS2340 Fast Ethernet) - - pci:v00001011d00000009sv00001113sd00001207* -- ID_MODEL_FROM_DATABASE=EN-1207-TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (EN-1207-TX Fast Ethernet) - - pci:v00001011d00000009sv00001186sd00001100* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-500TX Fast Ethernet) - - pci:v00001011d00000009sv00001186sd00001112* -- ID_MODEL_FROM_DATABASE=DFE-570TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-570TX Fast Ethernet) - - pci:v00001011d00000009sv00001186sd00001140* -- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) - - pci:v00001011d00000009sv00001186sd00001142* -- ID_MODEL_FROM_DATABASE=DFE-660 Cardbus Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (DFE-660 Cardbus Ethernet 10/100) - - pci:v00001011d00000009sv000011F6sd00000503* -- ID_MODEL_FROM_DATABASE=Freedomline Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (Freedomline Fast Ethernet) - - pci:v00001011d00000009sv00001282sd00009100* -- ID_MODEL_FROM_DATABASE=AEF-380TXD Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (AEF-380TXD Fast Ethernet) - - pci:v00001011d00000009sv00001385sd00001100* -- ID_MODEL_FROM_DATABASE=FA310TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (FA310TX Fast Ethernet) - - pci:v00001011d00000009sv00002646sd00000001* -- ID_MODEL_FROM_DATABASE=KNE100TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21140 [FasterNet] (KNE100TX Fast Ethernet) - - pci:v00001011d0000000A* - ID_MODEL_FROM_DATABASE=21230 Video Codec -@@ -9594,16 +9594,16 @@ pci:v00001011d0000000F* - ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] - - pci:v00001011d0000000Fsv00001011sd0000DEF1* -- ID_MODEL_FROM_DATABASE=FDDI controller (DEFPA) -+ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (DEFPA)) - - pci:v00001011d0000000Fsv0000103Csd0000DEF1* -- ID_MODEL_FROM_DATABASE=FDDI controller (3X-DEFPA) -+ ID_MODEL_FROM_DATABASE=DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] (FDDI controller (3X-DEFPA)) - - pci:v00001011d00000014* - ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] - - pci:v00001011d00000014sv00001186sd00000100* -- ID_MODEL_FROM_DATABASE=DE-530+ -+ ID_MODEL_FROM_DATABASE=DECchip 21041 [Tulip Pass 3] (DE-530+) - - pci:v00001011d00000016* - ID_MODEL_FROM_DATABASE=DGLPB [OPPO] -@@ -9618,133 +9618,133 @@ pci:v00001011d00000019* - ID_MODEL_FROM_DATABASE=DECchip 21142/43 - - pci:v00001011d00000019sv00001011sd0000500A* -- ID_MODEL_FROM_DATABASE=DE500A Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500A Fast Ethernet) - - pci:v00001011d00000019sv00001011sd0000500B* -- ID_MODEL_FROM_DATABASE=DE500B Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DE500B Fast Ethernet) - - pci:v00001011d00000019sv00001014sd00000001* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 EtherJet Cardbus) - - pci:v00001011d00000019sv00001025sd00000315* -- ID_MODEL_FROM_DATABASE=ALN315 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ALN315 Fast Ethernet) - - pci:v00001011d00000019sv00001033sd0000800C* -- ID_MODEL_FROM_DATABASE=PC-9821-CS01 100BASE-TX Interface Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821-CS01 100BASE-TX Interface Card) - - pci:v00001011d00000019sv00001033sd0000800D* -- ID_MODEL_FROM_DATABASE=PC-9821NR-B06 100BASE-TX Interface Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (PC-9821NR-B06 100BASE-TX Interface Card) - - pci:v00001011d00000019sv0000103Csd0000125A* -- ID_MODEL_FROM_DATABASE=10/100Base-TX (PCI) [A5506B] -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100Base-TX (PCI) [A5506B]) - - pci:v00001011d00000019sv0000108Dsd00000016* -- ID_MODEL_FROM_DATABASE=Rapidfire 2327 10/100 Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Rapidfire 2327 10/100 Ethernet) - - pci:v00001011d00000019sv0000108Dsd00000017* -- ID_MODEL_FROM_DATABASE=GoCard 2250 Ethernet 10/100 Cardbus -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (GoCard 2250 Ethernet 10/100 Cardbus) - - pci:v00001011d00000019sv000010B8sd00002005* -- ID_MODEL_FROM_DATABASE=SMC8032DT Extreme Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8032DT Extreme Ethernet 10/100) - - pci:v00001011d00000019sv000010B8sd00008034* -- ID_MODEL_FROM_DATABASE=SMC8034 Extreme Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (SMC8034 Extreme Ethernet 10/100) - - pci:v00001011d00000019sv000010EFsd00008169* -- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) - - pci:v00001011d00000019sv00001109sd00002A00* -- ID_MODEL_FROM_DATABASE=ANA-6911A/TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TX Fast Ethernet) - - pci:v00001011d00000019sv00001109sd00002B00* -- ID_MODEL_FROM_DATABASE=ANA-6911A/TXC Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6911A/TXC Fast Ethernet) - - pci:v00001011d00000019sv00001109sd00003000* -- ID_MODEL_FROM_DATABASE=ANA-6922/TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (ANA-6922/TX Fast Ethernet) - - pci:v00001011d00000019sv00001113sd00001207* -- ID_MODEL_FROM_DATABASE=Cheetah Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cheetah Fast Ethernet) - - pci:v00001011d00000019sv00001113sd00002220* -- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) - - pci:v00001011d00000019sv0000115Dsd00000002* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet 10/100) - - pci:v00001011d00000019sv00001179sd00000203* -- ID_MODEL_FROM_DATABASE=Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Fast Ethernet) - - pci:v00001011d00000019sv00001179sd00000204* -- ID_MODEL_FROM_DATABASE=Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001100* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001101* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001102* -- ID_MODEL_FROM_DATABASE=DFE-500TX Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-500TX Fast Ethernet) - - pci:v00001011d00000019sv00001186sd00001112* -- ID_MODEL_FROM_DATABASE=DFE-570TX Quad Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (DFE-570TX Quad Fast Ethernet) - - pci:v00001011d00000019sv000011F0sd00004235* -- ID_MODEL_FROM_DATABASE=21143 [FASTLine-II UTP 10/100] -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (21143 [FASTLine-II UTP 10/100]) - - pci:v00001011d00000019sv00001259sd00002800* -- ID_MODEL_FROM_DATABASE=AT-2800Tx Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (AT-2800Tx Fast Ethernet) - - pci:v00001011d00000019sv00001266sd00000004* -- ID_MODEL_FROM_DATABASE=Eagle Fast EtherMAX -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Eagle Fast EtherMAX) - - pci:v00001011d00000019sv000012AFsd00000019* -- ID_MODEL_FROM_DATABASE=NetFlyer Cardbus Fast Ethernet -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (NetFlyer Cardbus Fast Ethernet) - - pci:v00001011d00000019sv00001374sd00000001* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001374sd00000002* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001374sd00000007* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001374sd00000008* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet Card 10/100 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (Cardbus Ethernet Card 10/100) - - pci:v00001011d00000019sv00001385sd00002100* -- ID_MODEL_FROM_DATABASE=FA510 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FA510) - - pci:v00001011d00000019sv00001395sd00000001* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet CardBus PC Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (10/100 Ethernet CardBus PC Card) - - pci:v00001011d00000019sv000013D1sd0000AB01* -- ID_MODEL_FROM_DATABASE=EtherFast 10/100 Cardbus (PCMPC200) -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherFast 10/100 Cardbus (PCMPC200)) - - pci:v00001011d00000019sv00001498sd0000000A* -- ID_MODEL_FROM_DATABASE=TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-10 10/100Base-T and 10Base2 PMC Ethernet Adapter) - - pci:v00001011d00000019sv00001498sd0000000B* -- ID_MODEL_FROM_DATABASE=TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-11 Single 10/100Base-T PMC Ethernet Adapter) - - pci:v00001011d00000019sv00001498sd0000000C* -- ID_MODEL_FROM_DATABASE=TPMC880-12 Single 10Base2 PMC Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (TPMC880-12 Single 10Base2 PMC Ethernet Adapter) - - pci:v00001011d00000019sv000014CBsd00000100* -- ID_MODEL_FROM_DATABASE=LNDL-100N 100Base-TX Ethernet PC Card -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (LNDL-100N 100Base-TX Ethernet PC Card) - - pci:v00001011d00000019sv00001668sd00002000* -- ID_MODEL_FROM_DATABASE=FastNet Pro (PE2000) -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (FastNet Pro (PE2000)) - - pci:v00001011d00000019sv00002646sd00000001* -- ID_MODEL_FROM_DATABASE=KNE100TX -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE100TX) - - pci:v00001011d00000019sv00002646sd00000002* -- ID_MODEL_FROM_DATABASE=KNE-CB4TX -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (KNE-CB4TX) - - pci:v00001011d00000019sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 -+ ID_MODEL_FROM_DATABASE=DECchip 21142/43 (EtherExpress PRO/100 Mobile CardBus 32) - - pci:v00001011d0000001A* - ID_MODEL_FROM_DATABASE=Farallon PN9000SX Gigabit Ethernet -@@ -9780,46 +9780,46 @@ pci:v00001011d00000046* - ID_MODEL_FROM_DATABASE=DECchip 21554 - - pci:v00001011d00000046sv00000E11sd00004050* -- ID_MODEL_FROM_DATABASE=Smart Array 4200 Controller -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4200 Controller) - - pci:v00001011d00000046sv00000E11sd00004051* -- ID_MODEL_FROM_DATABASE=Smart Array 4250ES Controller -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 4250ES Controller) - - pci:v00001011d00000046sv00000E11sd00004058* -- ID_MODEL_FROM_DATABASE=Smart Array 431 Controller -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Smart Array 431 Controller) - - pci:v00001011d00000046sv0000103Csd000010C2* -- ID_MODEL_FROM_DATABASE=NetRAID-4M -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (NetRAID-4M) - - pci:v00001011d00000046sv000012D9sd0000000A* -- ID_MODEL_FROM_DATABASE=IP Telephony card -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (IP Telephony card) - - pci:v00001011d00000046sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (CT7 mainboard) - - pci:v00001011d00000046sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (CE7 mainboard) - - pci:v00001011d00000046sv00009005sd00000364* -- ID_MODEL_FROM_DATABASE=5400S (Mustang) -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) - - pci:v00001011d00000046sv00009005sd00000365* -- ID_MODEL_FROM_DATABASE=5400S (Mustang) -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (5400S (Mustang)) - - pci:v00001011d00000046sv00009005sd00001364* -- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) - - pci:v00001011d00000046sv00009005sd00001365* -- ID_MODEL_FROM_DATABASE=Dell PowerEdge RAID Controller 2 -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (Dell PowerEdge RAID Controller 2) - - pci:v00001011d00000046sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CC8-1-BLUES -+ ID_MODEL_FROM_DATABASE=DECchip 21554 (CC8-1-BLUES) - - pci:v00001011d00001065* - ID_MODEL_FROM_DATABASE=StrongARM DC21285 - - pci:v00001011d00001065sv00001069sd00000020* -- ID_MODEL_FROM_DATABASE=DAC960P / DAC1164P -+ ID_MODEL_FROM_DATABASE=StrongARM DC21285 (DAC960P / DAC1164P) - - pci:v00001012* - ID_VENDOR_FROM_DATABASE=Micronics Computers Inc -@@ -9858,13 +9858,13 @@ pci:v00001013d000000B8* - ID_MODEL_FROM_DATABASE=GD 5446 - - pci:v00001013d000000B8sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=GD 5446 (QEMU Virtual Machine) - - pci:v00001013d000000BC* - ID_MODEL_FROM_DATABASE=GD 5480 - - pci:v00001013d000000BCsv00001013sd000000BC* -- ID_MODEL_FROM_DATABASE=CL-GD5480 -+ ID_MODEL_FROM_DATABASE=GD 5480 (CL-GD5480) - - pci:v00001013d000000D0* - ID_MODEL_FROM_DATABASE=GD 5462 -@@ -9882,10 +9882,10 @@ pci:v00001013d000000D6* - ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] - - pci:v00001013d000000D6sv000013CEsd00008031* -- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) - - pci:v00001013d000000D6sv000013CFsd00008031* -- ID_MODEL_FROM_DATABASE=Barco Metheus 2 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=GD 5465 [Laguna] (Barco Metheus 2 Megapixel, Dual Head) - - pci:v00001013d000000E8* - ID_MODEL_FROM_DATABASE=GD 5436U -@@ -9921,34 +9921,34 @@ pci:v00001013d00006001* - ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] - - pci:v00001013d00006001sv00001014sd00001010* -- ID_MODEL_FROM_DATABASE=CS4610 SoundFusion Audio Accelerator -+ ID_MODEL_FROM_DATABASE=CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] (CS4610 SoundFusion Audio Accelerator) - - pci:v00001013d00006003* - ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] - - pci:v00001013d00006003sv00001013sd00004280* -- ID_MODEL_FROM_DATABASE=Crystal SoundFusion PCI Audio Accelerator -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Crystal SoundFusion PCI Audio Accelerator) - - pci:v00001013d00006003sv00001014sd00000153* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A20m -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (ThinkPad 600X/A20m) - - pci:v00001013d00006003sv0000153Bsd0000112E* -- ID_MODEL_FROM_DATABASE=DMX XFire 1024 -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (DMX XFire 1024) - - pci:v00001013d00006003sv0000153Bsd00001136* -- ID_MODEL_FROM_DATABASE=SiXPack 5.1+ -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (SiXPack 5.1+) - - pci:v00001013d00006003sv00001681sd00000050* -- ID_MODEL_FROM_DATABASE=Game Theater XP -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Game Theater XP) - - pci:v00001013d00006003sv00001681sd0000A010* -- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo II -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo II) - - pci:v00001013d00006003sv00001681sd0000A011* -- ID_MODEL_FROM_DATABASE=Gamesurround Fortissimo III 7.1 -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Gamesurround Fortissimo III 7.1) - - pci:v00001013d00006003sv00005053sd00003357* -- ID_MODEL_FROM_DATABASE=Santa Cruz -+ ID_MODEL_FROM_DATABASE=CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (Santa Cruz) - - pci:v00001013d00006004* - ID_MODEL_FROM_DATABASE=CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] -@@ -10029,16 +10029,16 @@ pci:v00001014d0000002E* - ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] - - pci:v00001014d0000002Esv00001014sd0000002E* -- ID_MODEL_FROM_DATABASE=ServeRAID-3x -+ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-3x) - - pci:v00001014d0000002Esv00001014sd0000022E* -- ID_MODEL_FROM_DATABASE=ServeRAID-4H -+ ID_MODEL_FROM_DATABASE=SCSI RAID Adapter [ServeRAID] (ServeRAID-4H) - - pci:v00001014d00000031* - ID_MODEL_FROM_DATABASE=2 Port Serial Adapter - - pci:v00001014d00000031sv00001014sd00000031* -- ID_MODEL_FROM_DATABASE=2721 WAN IOA - 2 Port Sync Serial Adapter -+ ID_MODEL_FROM_DATABASE=2 Port Serial Adapter (2721 WAN IOA - 2 Port Sync Serial Adapter) - - pci:v00001014d00000036* - ID_MODEL_FROM_DATABASE=PCI to 32-bit LocalBus Bridge [Miami] -@@ -10056,25 +10056,25 @@ pci:v00001014d0000003E* - ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller - - pci:v00001014d0000003Esv00001014sd0000003E* -- ID_MODEL_FROM_DATABASE=Token-Ring Adapter -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter) - - pci:v00001014d0000003Esv00001014sd000000CD* -- ID_MODEL_FROM_DATABASE=Token-Ring Adapter + Wake-On-LAN -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (Token-Ring Adapter + Wake-On-LAN) - - pci:v00001014d0000003Esv00001014sd000000CE* -- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2) - - pci:v00001014d0000003Esv00001014sd000000CF* -- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter Special -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter Special) - - pci:v00001014d0000003Esv00001014sd000000E4* -- ID_MODEL_FROM_DATABASE=High-Speed 100/16/4 Token-Ring Adapter -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (High-Speed 100/16/4 Token-Ring Adapter) - - pci:v00001014d0000003Esv00001014sd000000E5* -- ID_MODEL_FROM_DATABASE=16/4 Token-Ring Adapter 2 + Wake-On-LAN -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (16/4 Token-Ring Adapter 2 + Wake-On-LAN) - - pci:v00001014d0000003Esv00001014sd0000016D* -- ID_MODEL_FROM_DATABASE=iSeries 2744 Card -+ ID_MODEL_FROM_DATABASE=16/4 Token ring UTP/STP controller (iSeries 2744 Card) - - pci:v00001014d00000045* - ID_MODEL_FROM_DATABASE=SSA Adapter -@@ -10131,7 +10131,7 @@ pci:v00001014d00000090* - ID_MODEL_FROM_DATABASE=GXT 3000P - - pci:v00001014d00000090sv00001014sd0000008E* -- ID_MODEL_FROM_DATABASE=GXT-3000P -+ ID_MODEL_FROM_DATABASE=GXT 3000P (GXT-3000P) - - pci:v00001014d00000091* - ID_MODEL_FROM_DATABASE=SSA Adapter -@@ -10143,13 +10143,13 @@ pci:v00001014d00000096* - ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller - - pci:v00001014d00000096sv00001014sd00000097* -- ID_MODEL_FROM_DATABASE=iSeries 2778 DASD IOA -+ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2778 DASD IOA) - - pci:v00001014d00000096sv00001014sd00000098* -- ID_MODEL_FROM_DATABASE=iSeries 2763 DASD IOA -+ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2763 DASD IOA) - - pci:v00001014d00000096sv00001014sd00000099* -- ID_MODEL_FROM_DATABASE=iSeries 2748 DASD IOA -+ ID_MODEL_FROM_DATABASE=Chukar chipset SCSI controller (iSeries 2748 DASD IOA) - - pci:v00001014d0000009F* - ID_MODEL_FROM_DATABASE=PCI 4758 Cryptographic Accelerator -@@ -10164,7 +10164,7 @@ pci:v00001014d000000B7* - ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] - - pci:v00001014d000000B7sv00001092sd000000B8* -- ID_MODEL_FROM_DATABASE=FireGL1 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] (FireGL1 AGP 32Mb) - - pci:v00001014d000000B8* - ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter -@@ -10188,13 +10188,13 @@ pci:v00001014d00000142* - ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input - - pci:v00001014d00000142sv00001014sd00000143* -- ID_MODEL_FROM_DATABASE=Yotta Input Controller (ytin) -+ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Input (Yotta Input Controller (ytin)) - - pci:v00001014d00000144* - ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output - - pci:v00001014d00000144sv00001014sd00000145* -- ID_MODEL_FROM_DATABASE=Yotta Output Controller (ytout) -+ ID_MODEL_FROM_DATABASE=Yotta Video Compositor Output (Yotta Output Controller (ytout)) - - pci:v00001014d00000156* - ID_MODEL_FROM_DATABASE=405GP PLB to PCI Bridge -@@ -10218,10 +10218,10 @@ pci:v00001014d00000180* - ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller - - pci:v00001014d00000180sv00001014sd00000241* -- ID_MODEL_FROM_DATABASE=iSeries 2757 DASD IOA -+ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (iSeries 2757 DASD IOA) - - pci:v00001014d00000180sv00001014sd00000264* -- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X U320 SCSI RAID Adapter (2780) -+ ID_MODEL_FROM_DATABASE=Snipe chipset SCSI controller (Quad Channel PCI-X U320 SCSI RAID Adapter (2780)) - - pci:v00001014d00000188* - ID_MODEL_FROM_DATABASE=EADS-X PCI-X to PCI-X Bridge -@@ -10233,28 +10233,28 @@ pci:v00001014d000001BD* - ID_MODEL_FROM_DATABASE=ServeRAID Controller - - pci:v00001014d000001BDsv00001014sd000001BD* -- ID_MODEL_FROM_DATABASE=ServeRAID 4Lx -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 4Lx) - - pci:v00001014d000001BDsv00001014sd000001BE* -- ID_MODEL_FROM_DATABASE=ServeRAID-4M -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4M) - - pci:v00001014d000001BDsv00001014sd000001BF* -- ID_MODEL_FROM_DATABASE=ServeRAID-4L -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4L) - - pci:v00001014d000001BDsv00001014sd00000208* -- ID_MODEL_FROM_DATABASE=ServeRAID-4Mx -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Mx) - - pci:v00001014d000001BDsv00001014sd0000020E* -- ID_MODEL_FROM_DATABASE=ServeRAID-4Lx -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4Lx) - - pci:v00001014d000001BDsv00001014sd0000022E* -- ID_MODEL_FROM_DATABASE=ServeRAID-4H -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-4H) - - pci:v00001014d000001BDsv00001014sd00000258* -- ID_MODEL_FROM_DATABASE=ServeRAID-5i -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) - - pci:v00001014d000001BDsv00001014sd00000259* -- ID_MODEL_FROM_DATABASE=ServeRAID-5i -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID-5i) - - pci:v00001014d000001C1* - ID_MODEL_FROM_DATABASE=64bit/66MHz PCI ATM 155 UTP -@@ -10266,10 +10266,10 @@ pci:v00001014d000001EF* - ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge - - pci:v00001014d000001EFsv00001734sd0000102B* -- ID_MODEL_FROM_DATABASE=PCEAS PCI-X Dual Port ESCON Adapter -+ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAS PCI-X Dual Port ESCON Adapter) - - pci:v00001014d000001EFsv00001734sd000010F8* -- ID_MODEL_FROM_DATABASE=PCEAT PCI-Express Dual Port ESCON Adapter -+ ID_MODEL_FROM_DATABASE=PowerPC 440GP PCI Bridge (PCEAT PCI-Express Dual Port ESCON Adapter) - - pci:v00001014d000001FF* - ID_MODEL_FROM_DATABASE=10/100 Mbps Ethernet -@@ -10278,13 +10278,13 @@ pci:v00001014d00000219* - ID_MODEL_FROM_DATABASE=Multiport Serial Adapter - - pci:v00001014d00000219sv00001014sd0000021A* -- ID_MODEL_FROM_DATABASE=Dual RVX -+ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Dual RVX) - - pci:v00001014d00000219sv00001014sd00000251* -- ID_MODEL_FROM_DATABASE=Internal Modem/RVX -+ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Internal Modem/RVX) - - pci:v00001014d00000219sv00001014sd00000252* -- ID_MODEL_FROM_DATABASE=Quad Internal Modem -+ ID_MODEL_FROM_DATABASE=Multiport Serial Adapter (Quad Internal Modem) - - pci:v00001014d0000021B* - ID_MODEL_FROM_DATABASE=GXT6500P Graphics Adapter -@@ -10299,16 +10299,16 @@ pci:v00001014d0000028C* - ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller - - pci:v00001014d0000028Csv00001014sd0000028D* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR SAS RAID Adapter (572E) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR SAS RAID Adapter (572E)) - - pci:v00001014d0000028Csv00001014sd000002BE* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI RAID Adapter (571B)) - - pci:v00001014d0000028Csv00001014sd000002C0* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X DDR U320 SCSI Adapter (571A) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (Dual Channel PCI-X DDR U320 SCSI Adapter (571A)) - - pci:v00001014d0000028Csv00001014sd0000030D* -- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575B) -+ ID_MODEL_FROM_DATABASE=Citrine chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575B)) - - pci:v00001014d000002A1* - ID_MODEL_FROM_DATABASE=Calgary PCI-X Host Bridge -@@ -10317,13 +10317,13 @@ pci:v00001014d000002BD* - ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller - - pci:v00001014d000002BDsv00001014sd000002C1* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) - - pci:v00001014d000002BDsv00001014sd000002C2* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/571D) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/571D)) - - pci:v00001014d000002BDsv00001014sd00000338* -- ID_MODEL_FROM_DATABASE=PCI-X DDR Auxiliary Cache Adapter (575C) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR Auxiliary Cache Adapter (575C)) - - pci:v00001014d00000302* - ID_MODEL_FROM_DATABASE=Winnipeg PCI-X Host Bridge -@@ -10338,88 +10338,88 @@ pci:v00001014d0000032D* - ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip - - pci:v00001014d0000032Dsv00001014sd000003A1* -- ID_MODEL_FROM_DATABASE=PCIe PowerXCell 8i Cell Accelerator Board -+ ID_MODEL_FROM_DATABASE=Axon - Cell Companion Chip (PCIe PowerXCell 8i Cell Accelerator Board) - - pci:v00001014d00000339* - ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller - - pci:v00001014d00000339sv00001014sd0000030A* -- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS RAID Adapter (574E) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS RAID Adapter (574E)) - - pci:v00001014d00000339sv00001014sd0000033A* -- ID_MODEL_FROM_DATABASE=PCIe 3Gb SAS Adapter (57B3) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe 3Gb SAS Adapter (57B3)) - - pci:v00001014d00000339sv00001014sd0000035C* -- ID_MODEL_FROM_DATABASE=PCIe x8 Internal 3Gb SAS adapter (57CC) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCIe x8 Internal 3Gb SAS adapter (57CC)) - - pci:v00001014d00000339sv00001014sd00000360* -- ID_MODEL_FROM_DATABASE=PCI-E Auxiliary Cache Adapter (57B7) -+ ID_MODEL_FROM_DATABASE=Obsidian-E PCI-E SCSI controller (PCI-E Auxiliary Cache Adapter (57B7)) - - pci:v00001014d0000033D* - ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) - - pci:v00001014d0000033Dsv00001014sd0000033C* -- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5)) - - pci:v00001014d0000033Dsv00001014sd00000353* -- ID_MODEL_FROM_DATABASE=PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3)) - - pci:v00001014d0000033Dsv00001014sd00000354* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Dual-port (57C4) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Dual-port (57C4)) - - pci:v00001014d0000033Dsv00001014sd00000356* -- ID_MODEL_FROM_DATABASE=PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D)) - - pci:v00001014d0000033Dsv00001014sd0000035F* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57B2) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (FPGA) (PCIe2 6Gb SAS Adapter Quad-port (57B2)) - - pci:v00001014d0000034A* - ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) - - pci:v00001014d0000034Asv00001014sd0000033B* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS RAID Adapter Quad-port (57B4) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS RAID Adapter Quad-port (57B4)) - - pci:v00001014d0000034Asv00001014sd00000355* -- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1)) - - pci:v00001014d0000034Asv00001014sd00000357* -- ID_MODEL_FROM_DATABASE=PCIe2 6Gb SAS Adapter Quad-port (57C6) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 6Gb SAS Adapter Quad-port (57C6)) - - pci:v00001014d0000034Asv00001014sd0000035D* -- ID_MODEL_FROM_DATABASE=PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8)) - - pci:v00001014d0000034Asv00001014sd0000035E* -- ID_MODEL_FROM_DATABASE=PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE)) - - pci:v00001014d0000034Asv00001014sd000003FB* -- ID_MODEL_FROM_DATABASE=PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 28GB Cache RAID SAS Enclosure 6Gb x 16 (57D5)) - - pci:v00001014d0000034Asv00001014sd000003FE* -- ID_MODEL_FROM_DATABASE=PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 Cache SAS RAID Internal Adapter 6Gb (57D8)) - - pci:v00001014d0000034Asv00001014sd000003FF* -- ID_MODEL_FROM_DATABASE=PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x8 SAS RAID Internal Adapter 6Gb (57D7)) - - pci:v00001014d0000034Asv00001014sd00000474* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57EB)) - - pci:v00001014d0000034Asv00001014sd00000475* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC)) - - pci:v00001014d0000034Asv00001014sd00000499* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED)) - - pci:v00001014d0000034Asv00001014sd0000049A* -- ID_MODEL_FROM_DATABASE=PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE)) - - pci:v00001014d0000034Asv00001014sd000004C7* -- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA)) - - pci:v00001014d0000034Asv00001014sd000004C8* -- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2)) - - pci:v00001014d0000034Asv00001014sd00000C49* -- ID_MODEL_FROM_DATABASE=PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD) -+ ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) - - pci:v00001014d000004AA* - ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) -@@ -10461,13 +10461,13 @@ pci:v0000101Ad00000007* - ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G - - pci:v0000101Ad00000007sv0000101Asd00000019* -- ID_MODEL_FROM_DATABASE=BYNET BIC2C -+ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2C) - - pci:v0000101Ad00000007sv0000101Asd0000001C* -- ID_MODEL_FROM_DATABASE=BYNET BIC2G -+ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC2G) - - pci:v0000101Ad00000007sv0000101Asd0000001F* -- ID_MODEL_FROM_DATABASE=BYNET BIC4G -+ ID_MODEL_FROM_DATABASE=BYNET BIC4G/2C/2G (BYNET BIC4G) - - pci:v0000101Ad00000009* - ID_MODEL_FROM_DATABASE=PQS Memory Controller -@@ -10488,19 +10488,19 @@ pci:v0000101Ad00001DC1* - ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M - - pci:v0000101Ad00001DC1sv0000101Asd00000019* -- ID_MODEL_FROM_DATABASE=BIC2M -+ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC2M) - - pci:v0000101Ad00001DC1sv0000101Asd0000001F* -- ID_MODEL_FROM_DATABASE=BIC4M -+ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BIC4M) - - pci:v0000101Ad00001DC1sv0000101Asd00000ECE* -- ID_MODEL_FROM_DATABASE=BYA4M -+ ID_MODEL_FROM_DATABASE=BYNET BIC2M/BIC4M/BYA4M (BYA4M) - - pci:v0000101Ad00001FA8* - ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) - - pci:v0000101Ad00001FA8sv0000101Asd000000C3* -- ID_MODEL_FROM_DATABASE=BYNET BIC2SE -+ ID_MODEL_FROM_DATABASE=BYNET Multi-port BIC Adapter (XBIC Based) (BYNET BIC2SE) - - pci:v0000101B* - ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor -@@ -10557,46 +10557,46 @@ pci:v0000101Ed00001960* - ID_MODEL_FROM_DATABASE=MegaRAID - - pci:v0000101Ed00001960sv0000101Esd00000471* -- ID_MODEL_FROM_DATABASE=MegaRAID 471 Enterprise 1600 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (471 Enterprise 1600 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000475* -- ID_MODEL_FROM_DATABASE=MegaRAID 475 Express 500/500LC RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (475 Express 500/500LC RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000477* -- ID_MODEL_FROM_DATABASE=MegaRAID 477 Elite 3100 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (477 Elite 3100 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000493* -- ID_MODEL_FROM_DATABASE=MegaRAID 493 Elite 1600 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (493 Elite 1600 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000494* -- ID_MODEL_FROM_DATABASE=MegaRAID 494 Elite 1650 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (494 Elite 1650 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000503* -- ID_MODEL_FROM_DATABASE=MegaRAID 503 Enterprise 1650 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (503 Enterprise 1650 RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000511* -- ID_MODEL_FROM_DATABASE=MegaRAID 511 i4 IDE RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (511 i4 IDE RAID Controller) - - pci:v0000101Ed00001960sv0000101Esd00000522* -- ID_MODEL_FROM_DATABASE=MegaRAID 522 i4133 RAID Controller -+ ID_MODEL_FROM_DATABASE=MegaRAID (522 i4133 RAID Controller) - - pci:v0000101Ed00001960sv00001028sd00000471* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/QC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/QC) - - pci:v0000101Ed00001960sv00001028sd00000475* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/SC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/SC) - - pci:v0000101Ed00001960sv00001028sd00000493* -- ID_MODEL_FROM_DATABASE=PowerEdge RAID Controller 3/DC -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge RAID Controller 3/DC) - - pci:v0000101Ed00001960sv00001028sd00000511* -- ID_MODEL_FROM_DATABASE=PowerEdge Cost Effective RAID Controller ATA100/4Ch -+ ID_MODEL_FROM_DATABASE=MegaRAID (PowerEdge Cost Effective RAID Controller ATA100/4Ch) - - pci:v0000101Ed00001960sv0000103Csd000060E7* -- ID_MODEL_FROM_DATABASE=NetRAID-1M -+ ID_MODEL_FROM_DATABASE=MegaRAID (NetRAID-1M) - - pci:v0000101Ed00001960sv0000103Csd000060E8* -- ID_MODEL_FROM_DATABASE=NetRaid 2M [AMI MegaRaid 493] -+ ID_MODEL_FROM_DATABASE=MegaRAID (NetRaid 2M [AMI MegaRaid 493]) - - pci:v0000101Ed00009010* - ID_MODEL_FROM_DATABASE=MegaRAID 428 Ultra RAID Controller -@@ -10623,7 +10623,7 @@ pci:v0000101Ed00009063* - ID_MODEL_FROM_DATABASE=MegaRAC - - pci:v0000101Ed00009063sv0000101Esd00000767* -- ID_MODEL_FROM_DATABASE=Dell Remote Assistant Card 2 -+ ID_MODEL_FROM_DATABASE=MegaRAC (Dell Remote Assistant Card 2) - - pci:v0000101F* - ID_VENDOR_FROM_DATABASE=PictureTel -@@ -10731,7 +10731,7 @@ pci:v00001022d00001510* - ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex - - pci:v00001022d00001510sv0000174Bsd00001001* -- ID_MODEL_FROM_DATABASE=PURE Fusion Mini -+ ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex (PURE Fusion Mini) - - pci:v00001022d00001512* - ID_MODEL_FROM_DATABASE=Family 14h Processor Root Port -@@ -10842,79 +10842,79 @@ pci:v00001022d00002000* - ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] - - pci:v00001022d00002000sv00001014sd00002000* -- ID_MODEL_FROM_DATABASE=NetFinity 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (NetFinity 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001022sd00002000* -- ID_MODEL_FROM_DATABASE=PCnet - Fast 79C971 -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PCnet - Fast 79C971) - - pci:v00001022d00002000sv0000103Csd0000104C* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd00001064* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd00001065* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd0000106C* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd0000106E* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv0000103Csd000010EA* -- ID_MODEL_FROM_DATABASE=Ethernet with LAN remote power Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (Ethernet with LAN remote power Adapter) - - pci:v00001022d00002000sv00001113sd00001220* -- ID_MODEL_FROM_DATABASE=EN1220 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (EN1220 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002450* -- ID_MODEL_FROM_DATABASE=AT-2450 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002454* -- ID_MODEL_FROM_DATABASE=AT-2450v4 10Mb Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2450v4 10Mb Ethernet Adapter) - - pci:v00001022d00002000sv00001259sd00002700* -- ID_MODEL_FROM_DATABASE=AT-2700TX 10/100 Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700TX 10/100 Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002701* -- ID_MODEL_FROM_DATABASE=AT-2700FX 100Mb Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FX 100Mb Ethernet) - - pci:v00001022d00002000sv00001259sd00002702* -- ID_MODEL_FROM_DATABASE=AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet) - - pci:v00001022d00002000sv00001259sd00002703* -- ID_MODEL_FROM_DATABASE=AT-2701FX -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FX) - - pci:v00001022d00002000sv00001259sd00002704* -- ID_MODEL_FROM_DATABASE=AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet) - - pci:v00001022d00002000sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00001022d00002000sv00004C53sd00001010* -- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CP5/CR6 mainboard) - - pci:v00001022d00002000sv00004C53sd00001020* -- ID_MODEL_FROM_DATABASE=VR6 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (VR6 mainboard) - - pci:v00001022d00002000sv00004C53sd00001030* -- ID_MODEL_FROM_DATABASE=PC5 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC5 mainboard) - - pci:v00001022d00002000sv00004C53sd00001040* -- ID_MODEL_FROM_DATABASE=CL7 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (CL7 mainboard) - - pci:v00001022d00002000sv00004C53sd00001060* -- ID_MODEL_FROM_DATABASE=PC7 mainboard -+ ID_MODEL_FROM_DATABASE=79c970 [PCnet32 LANCE] (PC7 mainboard) - - pci:v00001022d00002001* - ID_MODEL_FROM_DATABASE=79c978 [HomePNA] - - pci:v00001022d00002001sv00001092sd00000A78* -- ID_MODEL_FROM_DATABASE=Multimedia Home Network Adapter -+ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (Multimedia Home Network Adapter) - - pci:v00001022d00002001sv00001668sd00000299* -- ID_MODEL_FROM_DATABASE=ActionLink Home Network Adapter -+ ID_MODEL_FROM_DATABASE=79c978 [HomePNA] (ActionLink Home Network Adapter) - - pci:v00001022d00002003* - ID_MODEL_FROM_DATABASE=Am 1771 MBW [Alchemy] -@@ -10923,7 +10923,7 @@ pci:v00001022d00002020* - ID_MODEL_FROM_DATABASE=53c974 [PCscsi] - - pci:v00001022d00002020sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=53c974 [PCscsi] (QEMU Virtual Machine) - - pci:v00001022d00002040* - ID_MODEL_FROM_DATABASE=79c974 -@@ -11043,7 +11043,7 @@ pci:v00001022d00007440* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA - - pci:v00001022d00007440sv00001043sd00008044* -- ID_MODEL_FROM_DATABASE=A7M-D Mainboard -+ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ISA (A7M-D Mainboard) - - pci:v00001022d00007441* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] IDE -@@ -11052,7 +11052,7 @@ pci:v00001022d00007443* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI - - pci:v00001022d00007443sv00001043sd00008044* -- ID_MODEL_FROM_DATABASE=A7M-D Mainboard -+ ID_MODEL_FROM_DATABASE=AMD-768 [Opus] ACPI (A7M-D Mainboard) - - pci:v00001022d00007445* - ID_MODEL_FROM_DATABASE=AMD-768 [Opus] Audio -@@ -11088,7 +11088,7 @@ pci:v00001022d00007460* - ID_MODEL_FROM_DATABASE=AMD-8111 PCI - - pci:v00001022d00007460sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 PCI (HDAMB) - - pci:v00001022d00007461* - ID_MODEL_FROM_DATABASE=AMD-8111 USB -@@ -11103,22 +11103,22 @@ pci:v00001022d00007464* - ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI - - pci:v00001022d00007464sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 USB OHCI (HDAMB) - - pci:v00001022d00007468* - ID_MODEL_FROM_DATABASE=AMD-8111 LPC - - pci:v00001022d00007468sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 LPC (HDAMB) - - pci:v00001022d00007469* - ID_MODEL_FROM_DATABASE=AMD-8111 IDE - - pci:v00001022d00007469sv00001022sd00002B80* -- ID_MODEL_FROM_DATABASE=AMD-8111 IDE [Quartet] -+ ID_MODEL_FROM_DATABASE=AMD-8111 IDE ([Quartet]) - - pci:v00001022d00007469sv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 IDE (HDAMB) - - pci:v00001022d0000746A* - ID_MODEL_FROM_DATABASE=AMD-8111 SMBus 2.0 -@@ -11127,13 +11127,13 @@ pci:v00001022d0000746B* - ID_MODEL_FROM_DATABASE=AMD-8111 ACPI - - pci:v00001022d0000746Bsv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 ACPI (HDAMB) - - pci:v00001022d0000746D* - ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio - - pci:v00001022d0000746Dsv0000161Fsd00003017* -- ID_MODEL_FROM_DATABASE=HDAMB -+ ID_MODEL_FROM_DATABASE=AMD-8111 AC97 Audio (HDAMB) - - pci:v00001022d0000746E* - ID_MODEL_FROM_DATABASE=AMD-8111 MC97 Modem -@@ -11148,10 +11148,10 @@ pci:v00001022d00007801* - ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] - - pci:v00001022d00007801sv0000103Csd0000168B* -- ID_MODEL_FROM_DATABASE=ProBook 4535s Notebook -+ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 4535s Notebook) - - pci:v00001022d00007801sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH SATA Controller [AHCI mode] (ProBook 455 G1 Notebook) - - pci:v00001022d00007802* - ID_MODEL_FROM_DATABASE=FCH SATA Controller [RAID mode] -@@ -11172,25 +11172,25 @@ pci:v00001022d00007807* - ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller - - pci:v00001022d00007807sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d00007808* - ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller - - pci:v00001022d00007808sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB EHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d00007809* - ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller - - pci:v00001022d00007809sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB OHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d0000780B* - ID_MODEL_FROM_DATABASE=FCH SMBus Controller - - pci:v00001022d0000780Bsv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH SMBus Controller (ProBook 455 G1 Notebook) - - pci:v00001022d0000780C* - ID_MODEL_FROM_DATABASE=FCH IDE Controller -@@ -11199,16 +11199,16 @@ pci:v00001022d0000780D* - ID_MODEL_FROM_DATABASE=FCH Azalia Controller - - pci:v00001022d0000780Dsv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (ProBook 455 G1 Notebook) - - pci:v00001022d0000780Dsv00001043sd00008444* -- ID_MODEL_FROM_DATABASE=F2A85-M Series -+ ID_MODEL_FROM_DATABASE=FCH Azalia Controller (F2A85-M Series) - - pci:v00001022d0000780E* - ID_MODEL_FROM_DATABASE=FCH LPC Bridge - - pci:v00001022d0000780Esv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH LPC Bridge (ProBook 455 G1 Notebook) - - pci:v00001022d0000780F* - ID_MODEL_FROM_DATABASE=FCH PCI Bridge -@@ -11223,7 +11223,7 @@ pci:v00001022d00007814* - ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller - - pci:v00001022d00007814sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller (ProBook 455 G1 Notebook) - - pci:v00001022d00007900* - ID_MODEL_FROM_DATABASE=FCH SATA Controller [IDE mode] -@@ -11262,16 +11262,16 @@ pci:v00001022d00009600* - ID_MODEL_FROM_DATABASE=RS780 Host Bridge - - pci:v00001022d00009600sv00001043sd000082F1* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=RS780 Host Bridge (M3A78-EH Motherboard) - - pci:v00001022d00009601* - ID_MODEL_FROM_DATABASE=RS880 Host Bridge - - pci:v00001022d00009601sv00001019sd00002120* -- ID_MODEL_FROM_DATABASE=A785GM-M -+ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (A785GM-M) - - pci:v00001022d00009601sv00001043sd0000843E* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=RS880 Host Bridge (M5A88-V EVO) - - pci:v00001022d00009602* - ID_MODEL_FROM_DATABASE=RS780/RS880 PCI to PCI bridge (int gfx) -@@ -11316,7 +11316,7 @@ pci:v00001023d00002001* - ID_MODEL_FROM_DATABASE=4DWave NX - - pci:v00001023d00002001sv0000122Dsd00001400* -- ID_MODEL_FROM_DATABASE=Trident PCI288-Q3DII (NX) -+ ID_MODEL_FROM_DATABASE=4DWave NX (Trident PCI288-Q3DII (NX)) - - pci:v00001023d00002100* - ID_MODEL_FROM_DATABASE=CyberBlade XP4m32 -@@ -11328,13 +11328,13 @@ pci:v00001023d00008400* - ID_MODEL_FROM_DATABASE=CyberBlade/i7 - - pci:v00001023d00008400sv00001023sd00008400* -- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade/i7 (CyberBlade i7 AGP) - - pci:v00001023d00008420* - ID_MODEL_FROM_DATABASE=CyberBlade/i7d - - pci:v00001023d00008420sv00000E11sd0000B15A* -- ID_MODEL_FROM_DATABASE=CyberBlade i7 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade/i7d (CyberBlade i7 AGP) - - pci:v00001023d00008500* - ID_MODEL_FROM_DATABASE=CyberBlade/i1 -@@ -11343,19 +11343,19 @@ pci:v00001023d00008520* - ID_MODEL_FROM_DATABASE=CyberBlade i1 - - pci:v00001023d00008520sv00000E11sd0000B16E* -- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) - - pci:v00001023d00008520sv00001023sd00008520* -- ID_MODEL_FROM_DATABASE=CyberBlade i1 AGP -+ ID_MODEL_FROM_DATABASE=CyberBlade i1 (AGP) - - pci:v00001023d00008620* - ID_MODEL_FROM_DATABASE=CyberBlade/i1 - - pci:v00001023d00008620sv00001014sd00000502* -- ID_MODEL_FROM_DATABASE=ThinkPad R30/T30 -+ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (ThinkPad R30/T30) - - pci:v00001023d00008620sv00001014sd00001025* -- ID_MODEL_FROM_DATABASE=Travelmate 352TE -+ ID_MODEL_FROM_DATABASE=CyberBlade/i1 (Travelmate 352TE) - - pci:v00001023d00008820* - ID_MODEL_FROM_DATABASE=CyberBlade XPAi1 -@@ -11460,7 +11460,7 @@ pci:v00001023d00009880* - ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP - - pci:v00001023d00009880sv00001023sd00009880* -- ID_MODEL_FROM_DATABASE=Blade 3D -+ ID_MODEL_FROM_DATABASE=Blade 3D PCI/AGP (Blade 3D) - - pci:v00001023d00009910* - ID_MODEL_FROM_DATABASE=CyberBlade/XP -@@ -11523,7 +11523,7 @@ pci:v00001025d00001533* - ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge - - pci:v00001025d00001533sv000010B9sd00001533* -- ID_MODEL_FROM_DATABASE=ALI M1533 Aladdin IV/V ISA South Bridge -+ ID_MODEL_FROM_DATABASE=M1533 PCI-to-ISA Bridge (ALI M1533 Aladdin IV/V ISA South Bridge) - - pci:v00001025d00001535* - ID_MODEL_FROM_DATABASE=M1535 PCI Bridge + Super I/O + FIR -@@ -11532,7 +11532,7 @@ pci:v00001025d00001541* - ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] - - pci:v00001025d00001541sv000010B9sd00001541* -- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP+PCI North Bridge -+ ID_MODEL_FROM_DATABASE=M1541 Northbridge [Aladdin V] (ALI M1541 Aladdin V/V+ AGP+PCI North Bridge) - - pci:v00001025d00001542* - ID_MODEL_FROM_DATABASE=M1542 Northbridge [Aladdin V] -@@ -11658,31 +11658,31 @@ pci:v00001028d00000001* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si - - pci:v00001028d00000001sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=PowerEdge 2400 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/Si (PowerEdge 2400) - - pci:v00001028d00000002* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di - - pci:v00001028d00000002sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=PowerEdge 4400 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PowerEdge 4400) - - pci:v00001028d00000002sv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=PERC 3/DiV [Viper] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiV [Viper]) - - pci:v00001028d00000002sv00001028sd000000D9* -- ID_MODEL_FROM_DATABASE=PERC 3/DiL [Lexus] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiL [Lexus]) - - pci:v00001028d00000003* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si - - pci:v00001028d00000003sv00001028sd00000003* -- ID_MODEL_FROM_DATABASE=PowerEdge 2450 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Si (PowerEdge 2450) - - pci:v00001028d00000004* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] - - pci:v00001028d00000004sv00001028sd00000004* -- ID_MODEL_FROM_DATABASE=PERC 3/DiF [Iguana] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di [Iguana] (PERC 3/DiF [Iguana]) - - pci:v00001028d00000006* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di -@@ -11700,13 +11700,13 @@ pci:v00001028d0000000A* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di - - pci:v00001028d0000000Asv00001028sd00000106* -- ID_MODEL_FROM_DATABASE=PERC 3/DiJ [Jaguar] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiJ [Jaguar]) - - pci:v00001028d0000000Asv00001028sd0000011B* -- ID_MODEL_FROM_DATABASE=PERC 3/DiD [Dagger] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiD [Dagger]) - - pci:v00001028d0000000Asv00001028sd00000121* -- ID_MODEL_FROM_DATABASE=PERC 3/DiB [Boxster] -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 3/Di (PERC 3/DiB [Boxster]) - - pci:v00001028d0000000C* - ID_MODEL_FROM_DATABASE=Embedded Remote Access or ERA/O -@@ -11721,7 +11721,7 @@ pci:v00001028d0000000F* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di - - pci:v00001028d0000000Fsv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4/Di (PowerEdge 1750) - - pci:v00001028d00000010* - ID_MODEL_FROM_DATABASE=Remote Access Card 4 -@@ -11736,19 +11736,19 @@ pci:v00001028d00000013* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 - - pci:v00001028d00000013sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Si -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Si) - - pci:v00001028d00000013sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000013sv00001028sd0000016E* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000013sv00001028sd0000016F* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000013sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 4e/Di -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 4 (PowerEdge Expandable RAID Controller 4e/Di) - - pci:v00001028d00000014* - ID_MODEL_FROM_DATABASE=Remote Access Card 4 Daughter Card SMIC interface -@@ -11757,19 +11757,19 @@ pci:v00001028d00000015* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 - - pci:v00001028d00000015sv00001028sd00001F01* -- ID_MODEL_FROM_DATABASE=PERC 5/E Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/E Adapter RAID Controller) - - pci:v00001028d00000015sv00001028sd00001F02* -- ID_MODEL_FROM_DATABASE=PERC 5/i Adapter RAID Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Adapter RAID Controller) - - pci:v00001028d00000015sv00001028sd00001F03* -- ID_MODEL_FROM_DATABASE=PERC 5/i Integrated RAID Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller 5 (PERC 5/i Integrated RAID Controller) - - pci:v00001028d00000016* - ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 - - pci:v00001028d00000016sv00001028sd00001F24* -- ID_MODEL_FROM_DATABASE=PERC S300 Controller -+ ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID controller S300 (PERC S300 Controller) - - pci:v00001029* - ID_VENDOR_FROM_DATABASE=Siemens Nixdorf IS -@@ -11787,28 +11787,28 @@ pci:v0000102Ad0000001F* - ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers - - pci:v0000102Ad0000001Fsv00009005sd0000000F* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) - - pci:v0000102Ad0000001Fsv00009005sd00000106* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) - - pci:v0000102Ad0000001Fsv00009005sd0000A180* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W /7890/7891 SCSI Controllers (2940U2W SCSI Controller) - - pci:v0000102Ad000000C5* - ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller - - pci:v0000102Ad000000C5sv00001028sd000000C5* -- ID_MODEL_FROM_DATABASE=PowerEdge 2550/2650/4600 -+ ID_MODEL_FROM_DATABASE=AIC-7899 U160/m SCSI Controller (PowerEdge 2550/2650/4600) - - pci:v0000102Ad000000CF* - ID_MODEL_FROM_DATABASE=AIC-7899P U160/m - - pci:v0000102Ad000000CFsv00001028sd00000106* -- ID_MODEL_FROM_DATABASE=PowerEdge 4600 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 4600) - - pci:v0000102Ad000000CFsv00001028sd00000121* -- ID_MODEL_FROM_DATABASE=PowerEdge 2650 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2650) - - pci:v0000102B* - ID_VENDOR_FROM_DATABASE=Matrox Electronics Systems Ltd. -@@ -11829,34 +11829,34 @@ pci:v0000102Bd0000051A* - ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] - - pci:v0000102Bd0000051Asv0000102Bsd00000100* -- ID_MODEL_FROM_DATABASE=MGA-1064SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1064SG Mystique) - - pci:v0000102Bd0000051Asv0000102Bsd00001100* -- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) - - pci:v0000102Bd0000051Asv0000102Bsd00001200* -- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) - - pci:v0000102Bd0000051Asv00001100sd0000102B* -- ID_MODEL_FROM_DATABASE=MGA-1084SG Mystique -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (MGA-1084SG Mystique) - - pci:v0000102Bd0000051Asv0000110Asd00000018* -- ID_MODEL_FROM_DATABASE=Scenic Pro C5 (D1025) -+ ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] (Scenic Pro C5 (D1025)) - - pci:v0000102Bd0000051B* - ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] - - pci:v0000102Bd0000051Bsv0000102Bsd0000051B* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051Bsv0000102Bsd00001100* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051Bsv0000102Bsd00001200* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051Bsv0000102Bsd00002100* -- ID_MODEL_FROM_DATABASE=MGA-2164W Millennium II -+ ID_MODEL_FROM_DATABASE=MGA 2164W [Millennium II] (MGA-2164W Millennium II) - - pci:v0000102Bd0000051E* - ID_MODEL_FROM_DATABASE=MGA 1064SG [Mystique] AGP -@@ -11868,391 +11868,391 @@ pci:v0000102Bd00000520* - ID_MODEL_FROM_DATABASE=MGA G200 - - pci:v0000102Bd00000520sv0000102Bsd0000DBC2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000DBC8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000DBE2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000DBE8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 (G200 Multi-Monitor) - - pci:v0000102Bd00000520sv0000102Bsd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G200 SD -+ ID_MODEL_FROM_DATABASE=MGA G200 (Millennium G200 SD) - - pci:v0000102Bd00000520sv0000102Bsd0000FF04* -- ID_MODEL_FROM_DATABASE=Marvel G200 -+ ID_MODEL_FROM_DATABASE=MGA G200 (Marvel G200) - - pci:v0000102Bd00000521* - ID_MODEL_FROM_DATABASE=MGA G200 AGP - - pci:v0000102Bd00000521sv00001014sd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd000048E9* -- ID_MODEL_FROM_DATABASE=Mystique G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd000048F8* -- ID_MODEL_FROM_DATABASE=Millennium G200 SD AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 SD AGP) - - pci:v0000102Bd00000521sv0000102Bsd00004A60* -- ID_MODEL_FROM_DATABASE=Millennium G200 LE AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 LE AGP) - - pci:v0000102Bd00000521sv0000102Bsd00004A64* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000C93C* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000C9B0* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000C9BC* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000CA60* -- ID_MODEL_FROM_DATABASE=Millennium G250 LE AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 LE AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000CA6C* -- ID_MODEL_FROM_DATABASE=Millennium G250 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G250 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000DBBC* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000DBC2* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBC3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBC8* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Dual G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Dual G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD4* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD5* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBD9* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBE2* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBE3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBE8* -- ID_MODEL_FROM_DATABASE=Millennium G200 MMS (Quad G200) -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 MMS (Quad G200)) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF2* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF3* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF4* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF5* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF8* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000DBF9* -- ID_MODEL_FROM_DATABASE=G200 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (G200 Multi-Monitor) - - pci:v0000102Bd00000521sv0000102Bsd0000F806* -- ID_MODEL_FROM_DATABASE=Mystique G200 Video AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 Video AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF00* -- ID_MODEL_FROM_DATABASE=MGA-G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF02* -- ID_MODEL_FROM_DATABASE=Mystique G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Mystique G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Millennium G200 AGP) - - pci:v0000102Bd00000521sv0000102Bsd0000FF04* -- ID_MODEL_FROM_DATABASE=Marvel G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (Marvel G200 AGP) - - pci:v0000102Bd00000521sv0000110Asd00000032* -- ID_MODEL_FROM_DATABASE=MGA-G200 AGP -+ ID_MODEL_FROM_DATABASE=MGA G200 AGP (MGA-G200 AGP) - - pci:v0000102Bd00000522* - ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) - - pci:v0000102Bd00000522sv0000103Csd000031FA* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=MGA G200e [Pilot] ServerEngines (SEP1) (ProLiant DL140 G3) - - pci:v0000102Bd00000525* - ID_MODEL_FROM_DATABASE=MGA G400/G450 - - pci:v0000102Bd00000525sv00000E11sd0000B16F* -- ID_MODEL_FROM_DATABASE=MGA-G400 AGP -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (MGA-G400 AGP) - - pci:v0000102Bd00000525sv0000102Bsd00000328* -- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) - - pci:v0000102Bd00000525sv0000102Bsd00000338* -- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SDRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SDRAM) - - pci:v0000102Bd00000525sv0000102Bsd00000378* -- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SDRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SDRAM) - - pci:v0000102Bd00000525sv0000102Bsd00000541* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head) - - pci:v0000102Bd00000525sv0000102Bsd00000542* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX) - - pci:v0000102Bd00000525sv0000102Bsd00000543* -- ID_MODEL_FROM_DATABASE=Millennium G450 Single Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Single Head LX) - - pci:v0000102Bd00000525sv0000102Bsd00000641* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head) - - pci:v0000102Bd00000525sv0000102Bsd00000642* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Dual Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Dual Head LX) - - pci:v0000102Bd00000525sv0000102Bsd00000643* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb SDRAM Single Head LX -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb SDRAM Single Head LX) - - pci:v0000102Bd00000525sv0000102Bsd000007C0* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LE -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LE) - - pci:v0000102Bd00000525sv0000102Bsd000007C1* -- ID_MODEL_FROM_DATABASE=Millennium G450 SDR Dual Head LE -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 SDR Dual Head LE) - - pci:v0000102Bd00000525sv0000102Bsd00000D41* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head PCI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head PCI) - - pci:v0000102Bd00000525sv0000102Bsd00000D42* -- ID_MODEL_FROM_DATABASE=Millennium G450 Dual Head LX PCI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Dual Head LX PCI) - - pci:v0000102Bd00000525sv0000102Bsd00000D43* -- ID_MODEL_FROM_DATABASE=Millennium G450 32Mb Dual Head PCI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32Mb Dual Head PCI) - - pci:v0000102Bd00000525sv0000102Bsd00000E00* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000E01* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000E02* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000E03* -- ID_MODEL_FROM_DATABASE=Marvel G450 eTV -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G450 eTV) - - pci:v0000102Bd00000525sv0000102Bsd00000F80* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) - - pci:v0000102Bd00000525sv0000102Bsd00000F81* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile) - - pci:v0000102Bd00000525sv0000102Bsd00000F82* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) - - pci:v0000102Bd00000525sv0000102Bsd00000F83* -- ID_MODEL_FROM_DATABASE=Millennium G450 Low Profile DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 Low Profile DVI) - - pci:v0000102Bd00000525sv0000102Bsd000019D8* -- ID_MODEL_FROM_DATABASE=Millennium G400 16Mb SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 16Mb SGRAM) - - pci:v0000102Bd00000525sv0000102Bsd000019F8* -- ID_MODEL_FROM_DATABASE=Millennium G400 32Mb SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 32Mb SGRAM) - - pci:v0000102Bd00000525sv0000102Bsd00002159* -- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head 16Mb -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head 16Mb) - - pci:v0000102Bd00000525sv0000102Bsd00002179* -- ID_MODEL_FROM_DATABASE=Millennium G400 MAX/Dual Head 32Mb -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 MAX/Dual Head 32Mb) - - pci:v0000102Bd00000525sv0000102Bsd0000217D* -- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head Max -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head Max) - - pci:v0000102Bd00000525sv0000102Bsd000023C0* -- ID_MODEL_FROM_DATABASE=Millennium G450 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) - - pci:v0000102Bd00000525sv0000102Bsd000023C1* -- ID_MODEL_FROM_DATABASE=Millennium G450 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450) - - pci:v0000102Bd00000525sv0000102Bsd000023C2* -- ID_MODEL_FROM_DATABASE=Millennium G450 DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) - - pci:v0000102Bd00000525sv0000102Bsd000023C3* -- ID_MODEL_FROM_DATABASE=Millennium G450 DVI -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 DVI) - - pci:v0000102Bd00000525sv0000102Bsd00002F58* -- ID_MODEL_FROM_DATABASE=Millennium G400 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) - - pci:v0000102Bd00000525sv0000102Bsd00002F78* -- ID_MODEL_FROM_DATABASE=Millennium G400 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400) - - pci:v0000102Bd00000525sv0000102Bsd00003693* -- ID_MODEL_FROM_DATABASE=Marvel G400 AGP -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Marvel G400 AGP) - - pci:v0000102Bd00000525sv0000102Bsd00005DD0* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00005F50* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00005F51* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00005F52* -- ID_MODEL_FROM_DATABASE=4Sight II -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (4Sight II) - - pci:v0000102Bd00000525sv0000102Bsd00009010* -- ID_MODEL_FROM_DATABASE=Millennium G400 Dual Head -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G400 Dual Head) - - pci:v0000102Bd00000525sv00001458sd00000400* -- ID_MODEL_FROM_DATABASE=GA-G400 -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (GA-G400) - - pci:v0000102Bd00000525sv00001705sd00000001* -- ID_MODEL_FROM_DATABASE=Millennium G450 32MB SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB SGRAM) - - pci:v0000102Bd00000525sv00001705sd00000002* -- ID_MODEL_FROM_DATABASE=Millennium G450 16MB SGRAM -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB SGRAM) - - pci:v0000102Bd00000525sv00001705sd00000003* -- ID_MODEL_FROM_DATABASE=Millennium G450 32MB -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 32MB) - - pci:v0000102Bd00000525sv00001705sd00000004* -- ID_MODEL_FROM_DATABASE=Millennium G450 16MB -+ ID_MODEL_FROM_DATABASE=MGA G400/G450 (Millennium G450 16MB) - - pci:v0000102Bd00000527* - ID_MODEL_FROM_DATABASE=Parhelia - - pci:v0000102Bd00000527sv0000102Bsd00000840* -- ID_MODEL_FROM_DATABASE=Parhelia 128Mb -+ ID_MODEL_FROM_DATABASE=Parhelia (128Mb) - - pci:v0000102Bd00000527sv0000102Bsd00000850* -- ID_MODEL_FROM_DATABASE=Parhelia 256MB -+ ID_MODEL_FROM_DATABASE=Parhelia (256MB) - - pci:v0000102Bd00000527sv0000102Bsd00000870* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000527sv0000102Bsd00000880* -- ID_MODEL_FROM_DATABASE=P-256 Edge Overlap Controller -+ ID_MODEL_FROM_DATABASE=Parhelia (P-256 Edge Overlap Controller) - - pci:v0000102Bd00000528* - ID_MODEL_FROM_DATABASE=Parhelia - - pci:v0000102Bd00000528sv0000102Bsd00001020* -- ID_MODEL_FROM_DATABASE=Parhelia 128MB -+ ID_MODEL_FROM_DATABASE=Parhelia (128MB) - - pci:v0000102Bd00000528sv0000102Bsd00001030* -- ID_MODEL_FROM_DATABASE=Parhelia 256 MB Dual DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (256 MB Dual DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001040* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001050* -- ID_MODEL_FROM_DATABASE=Sono S20 -+ ID_MODEL_FROM_DATABASE=Parhelia (Sono S20) - - pci:v0000102Bd00000528sv0000102Bsd00001060* -- ID_MODEL_FROM_DATABASE=PJ-30L -+ ID_MODEL_FROM_DATABASE=Parhelia (PJ-30L) - - pci:v0000102Bd00000528sv0000102Bsd00001070* -- ID_MODEL_FROM_DATABASE=PJ-40L -+ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40L) - - pci:v0000102Bd00000528sv0000102Bsd00001421* -- ID_MODEL_FROM_DATABASE=MED5mp -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp) - - pci:v0000102Bd00000528sv0000102Bsd00001431* -- ID_MODEL_FROM_DATABASE=MED3mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001451* -- ID_MODEL_FROM_DATABASE=MED5mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001491* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd000014B1* -- ID_MODEL_FROM_DATABASE=MED3mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd000014C1* -- ID_MODEL_FROM_DATABASE=MED5mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd000014E1* -- ID_MODEL_FROM_DATABASE=Parhelia PCI 256MB -+ ID_MODEL_FROM_DATABASE=Parhelia (PCI 256MB) - - pci:v0000102Bd00000528sv0000102Bsd000014F1* -- ID_MODEL_FROM_DATABASE=Parhelia Precision SGT -+ ID_MODEL_FROM_DATABASE=Parhelia (Precision SGT) - - pci:v0000102Bd00000528sv0000102Bsd00001501* -- ID_MODEL_FROM_DATABASE=ATC-4MP -+ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) - - pci:v0000102Bd00000528sv0000102Bsd00001511* -- ID_MODEL_FROM_DATABASE=ATC-4MP -+ ID_MODEL_FROM_DATABASE=Parhelia (ATC-4MP) - - pci:v0000102Bd00000528sv0000102Bsd00001521* -- ID_MODEL_FROM_DATABASE=TheatreVUE T30 -+ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T30) - - pci:v0000102Bd00000528sv0000102Bsd00001531* -- ID_MODEL_FROM_DATABASE=TheatreVUE T20 -+ ID_MODEL_FROM_DATABASE=Parhelia (TheatreVUE T20) - - pci:v0000102Bd00000528sv0000102Bsd00001541* -- ID_MODEL_FROM_DATABASE=MED2mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED2mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001551* -- ID_MODEL_FROM_DATABASE=MED3mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED3mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001561* -- ID_MODEL_FROM_DATABASE=MED5mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED5mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00001571* -- ID_MODEL_FROM_DATABASE=Parhelia DL256 PCI -+ ID_MODEL_FROM_DATABASE=Parhelia (DL256 PCI) - - pci:v0000102Bd00000528sv0000102Bsd00001591* -- ID_MODEL_FROM_DATABASE=Parhelia Precision SDT -+ ID_MODEL_FROM_DATABASE=Parhelia (Precision SDT) - - pci:v0000102Bd00000528sv0000102Bsd000015A1* -- ID_MODEL_FROM_DATABASE=MED4mp-DVI -+ ID_MODEL_FROM_DATABASE=Parhelia (MED4mp-DVI) - - pci:v0000102Bd00000528sv0000102Bsd00002011* -- ID_MODEL_FROM_DATABASE=Parhelia HR256 -+ ID_MODEL_FROM_DATABASE=Parhelia (HR256) - - pci:v0000102Bd00000528sv0000102Bsd00002021* -- ID_MODEL_FROM_DATABASE=QID Pro -+ ID_MODEL_FROM_DATABASE=Parhelia (QID Pro) - - pci:v0000102Bd00000528sv0000102Bsd00002061* -- ID_MODEL_FROM_DATABASE=PJ-40LP -+ ID_MODEL_FROM_DATABASE=Parhelia (PJ-40LP) - - pci:v0000102Bd00000528sv0000102Bsd00002081* -- ID_MODEL_FROM_DATABASE=EWS Quad -+ ID_MODEL_FROM_DATABASE=Parhelia (EWS Quad) - - pci:v0000102Bd00000528sv0000102Bsd00002411* -- ID_MODEL_FROM_DATABASE=PPX-OUT8 -+ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT8) - - pci:v0000102Bd00000528sv0000102Bsd00002421* -- ID_MODEL_FROM_DATABASE=VPX-OUT8 -+ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT8) - - pci:v0000102Bd00000528sv0000102Bsd00002441* -- ID_MODEL_FROM_DATABASE=PPX-OUT4 -+ ID_MODEL_FROM_DATABASE=Parhelia (PPX-OUT4) - - pci:v0000102Bd00000528sv0000102Bsd00002451* -- ID_MODEL_FROM_DATABASE=VPX-OUT4 -+ ID_MODEL_FROM_DATABASE=Parhelia (VPX-OUT4) - - pci:v0000102Bd00000528sv0000102Bsd00002491* -- ID_MODEL_FROM_DATABASE=LPX-OUT4 -+ ID_MODEL_FROM_DATABASE=Parhelia (LPX-OUT4) - - pci:v0000102Bd00000530* - ID_MODEL_FROM_DATABASE=MGA G200EV -@@ -12261,37 +12261,37 @@ pci:v0000102Bd00000532* - ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 - - pci:v0000102Bd00000532sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R710 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R610 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T610 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M610 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge R410 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T410 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge M710 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv00001028sd000002A4* -- ID_MODEL_FROM_DATABASE=PowerEdge T310 MGA G200eW WPCM450 -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) - - pci:v0000102Bd00000532sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) - - pci:v0000102Bd00000533* - ID_MODEL_FROM_DATABASE=MGA G200EH - - pci:v0000102Bd00000533sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=MGA G200EH (iLO4) - - pci:v0000102Bd00000534* - ID_MODEL_FROM_DATABASE=G200eR2 -@@ -12300,40 +12300,40 @@ pci:v0000102Bd00000540* - ID_MODEL_FROM_DATABASE=M91XX - - pci:v0000102Bd00000540sv0000102Bsd00002080* -- ID_MODEL_FROM_DATABASE=M9140 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9140 LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd000020C0* -- ID_MODEL_FROM_DATABASE=Xenia -+ ID_MODEL_FROM_DATABASE=M91XX (Xenia) - - pci:v0000102Bd00000540sv0000102Bsd000020C1* -- ID_MODEL_FROM_DATABASE=Xenia Pro -+ ID_MODEL_FROM_DATABASE=M91XX (Xenia Pro) - - pci:v0000102Bd00000540sv0000102Bsd00002100* -- ID_MODEL_FROM_DATABASE=M9120 PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9120 PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002140* -- ID_MODEL_FROM_DATABASE=M9125 PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9125 PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002180* -- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd000021C0* -- ID_MODEL_FROM_DATABASE=M9120 Plus LP PCIe x1 -+ ID_MODEL_FROM_DATABASE=M91XX (M9120 Plus LP PCIe x1) - - pci:v0000102Bd00000540sv0000102Bsd00002200* -- ID_MODEL_FROM_DATABASE=VDA1164 Output Board -+ ID_MODEL_FROM_DATABASE=M91XX (VDA1164 Output Board) - - pci:v0000102Bd00000540sv0000102Bsd00002240* -- ID_MODEL_FROM_DATABASE=M9148 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9148 LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002241* -- ID_MODEL_FROM_DATABASE=M9138 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9138 LP PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd00002280* -- ID_MODEL_FROM_DATABASE=M9188 ATX PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9188 ATX PCIe x16) - - pci:v0000102Bd00000540sv0000102Bsd000022C0* -- ID_MODEL_FROM_DATABASE=M9128 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=M91XX (M9128 LP PCIe x16) - - pci:v0000102Bd00000D10* - ID_MODEL_FROM_DATABASE=MGA Ultima/Impression -@@ -12342,34 +12342,34 @@ pci:v0000102Bd00001000* - ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] - - pci:v0000102Bd00001000sv0000102Bsd0000FF01* -- ID_MODEL_FROM_DATABASE=Productiva G100 -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100) - - pci:v0000102Bd00001000sv0000102Bsd0000FF05* -- ID_MODEL_FROM_DATABASE=Productiva G100 Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] (Productiva G100 Multi-Monitor) - - pci:v0000102Bd00001001* - ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP - - pci:v0000102Bd00001001sv0000102Bsd00001001* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF00* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF01* -- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF03* -- ID_MODEL_FROM_DATABASE=Millennium G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (Millennium G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF04* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00001001sv0000102Bsd0000FF05* -- ID_MODEL_FROM_DATABASE=MGA-G100 Productiva AGP Multi-Monitor -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 Productiva AGP Multi-Monitor) - - pci:v0000102Bd00001001sv0000110Asd0000001E* -- ID_MODEL_FROM_DATABASE=MGA-G100 AGP -+ ID_MODEL_FROM_DATABASE=MGA G100 [Productiva] AGP (MGA-G100 AGP) - - pci:v0000102Bd00002007* - ID_MODEL_FROM_DATABASE=MGA Mistral -@@ -12378,163 +12378,163 @@ pci:v0000102Bd00002527* - ID_MODEL_FROM_DATABASE=Millennium G550 - - pci:v0000102Bd00002527sv0000102Bsd00000F42* -- ID_MODEL_FROM_DATABASE=Matrox G550 Low Profile PCI -+ ID_MODEL_FROM_DATABASE=Millennium G550 (Matrox G550 Low Profile PCI) - - pci:v0000102Bd00002527sv0000102Bsd00000F83* - ID_MODEL_FROM_DATABASE=Millennium G550 - - pci:v0000102Bd00002527sv0000102Bsd00000F84* -- ID_MODEL_FROM_DATABASE=Millennium G550 Dual Head DDR 32Mb -+ ID_MODEL_FROM_DATABASE=Millennium G550 (Dual Head DDR 32Mb) - - pci:v0000102Bd00002527sv0000102Bsd00001E41* - ID_MODEL_FROM_DATABASE=Millennium G550 - - pci:v0000102Bd00002527sv0000102Bsd00002300* -- ID_MODEL_FROM_DATABASE=Millennium G550 LP PCIE -+ ID_MODEL_FROM_DATABASE=Millennium G550 (LP PCIE) - - pci:v0000102Bd00002537* - ID_MODEL_FROM_DATABASE=Millenium P650/P750 - - pci:v0000102Bd00002537sv0000102Bsd00001820* -- ID_MODEL_FROM_DATABASE=Millennium P750 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P750 64MB) - - pci:v0000102Bd00002537sv0000102Bsd00001830* -- ID_MODEL_FROM_DATABASE=Millennium P650 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 64MB) - - pci:v0000102Bd00002537sv0000102Bsd00001850* -- ID_MODEL_FROM_DATABASE=RAD2mp -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD2mp) - - pci:v0000102Bd00002537sv0000102Bsd00001860* -- ID_MODEL_FROM_DATABASE=RAD3mp -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD3mp) - - pci:v0000102Bd00002537sv0000102Bsd00001880* -- ID_MODEL_FROM_DATABASE=Sono S10 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Sono S10) - - pci:v0000102Bd00002537sv0000102Bsd00001C10* -- ID_MODEL_FROM_DATABASE=QID 128MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID 128MB) - - pci:v0000102Bd00002537sv0000102Bsd00002811* -- ID_MODEL_FROM_DATABASE=Millennium P650 Low-profile PCI 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 Low-profile PCI 64MB) - - pci:v0000102Bd00002537sv0000102Bsd00002821* -- ID_MODEL_FROM_DATABASE=Millenium P650 Low-profile PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millenium P650 Low-profile PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002841* -- ID_MODEL_FROM_DATABASE=RAD PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002851* -- ID_MODEL_FROM_DATABASE=Spectrum PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Spectrum PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002871* -- ID_MODEL_FROM_DATABASE=EpicA TC2 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC2) - - pci:v0000102Bd00002537sv0000102Bsd00002C11* -- ID_MODEL_FROM_DATABASE=QID Low-profile PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID Low-profile PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002C21* -- ID_MODEL_FROM_DATABASE=QID LP PCI LW -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI LW) - - pci:v0000102Bd00002537sv0000102Bsd00002C31* -- ID_MODEL_FROM_DATABASE=QID LP PCI -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI) - - pci:v0000102Bd00002537sv0000102Bsd00002C41* -- ID_MODEL_FROM_DATABASE=EpicA TC4 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC4) - - pci:v0000102Bd00002537sv0000102Bsd00003001* -- ID_MODEL_FROM_DATABASE=Extio F1400 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1400) - - pci:v0000102Bd00002537sv0000102Bsd00003011* -- ID_MODEL_FROM_DATABASE=Extio F1220 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1220) - - pci:v0000102Bd00002537sv0000102Bsd00003041* -- ID_MODEL_FROM_DATABASE=RG-200DL -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-200DL) - - pci:v0000102Bd00002537sv0000102Bsd00003051* -- ID_MODEL_FROM_DATABASE=RG-400SL -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-400SL) - - pci:v0000102Bd00002537sv0000102Bsd00003061* -- ID_MODEL_FROM_DATABASE=Extio F1420 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1420) - - pci:v0000102Bd00002537sv0000102Bsd00003081* -- ID_MODEL_FROM_DATABASE=Extio F1240 -+ ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1240) - - pci:v0000102Bd00002538* - ID_MODEL_FROM_DATABASE=Millenium P650 PCIe - - pci:v0000102Bd00002538sv0000102Bsd00000847* -- ID_MODEL_FROM_DATABASE=RAD PCIe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (RAD PCIe) - - pci:v0000102Bd00002538sv0000102Bsd000008C7* -- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 128MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 128MB) - - pci:v0000102Bd00002538sv0000102Bsd00000907* -- ID_MODEL_FROM_DATABASE=Millennium P650 PCIe 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 64MB) - - pci:v0000102Bd00002538sv0000102Bsd00000947* -- ID_MODEL_FROM_DATABASE=Parhelia APVe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) - - pci:v0000102Bd00002538sv0000102Bsd00000987* -- ID_MODEL_FROM_DATABASE=ATC PCIe 4MP -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (ATC PCIe 4MP) - - pci:v0000102Bd00002538sv0000102Bsd00001047* -- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 128MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 128MB) - - pci:v0000102Bd00002538sv0000102Bsd00001087* -- ID_MODEL_FROM_DATABASE=Millennium P650 LP PCIe 64MB -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 64MB) - - pci:v0000102Bd00002538sv0000102Bsd00001801* -- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe x1 -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (x1) - - pci:v0000102Bd00002538sv0000102Bsd00002538* -- ID_MODEL_FROM_DATABASE=Parhelia APVe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe) - - pci:v0000102Bd00002538sv0000102Bsd00003007* -- ID_MODEL_FROM_DATABASE=QID Low-profile PCIe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID Low-profile PCIe) - - pci:v0000102Bd00002538sv0000102Bsd00003087* -- ID_MODEL_FROM_DATABASE=Aurora VX3mp -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Aurora VX3mp) - - pci:v0000102Bd00002538sv0000102Bsd000030C7* -- ID_MODEL_FROM_DATABASE=QID LP PCIe -+ ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID LP PCIe) - - pci:v0000102Bd00002539* - ID_MODEL_FROM_DATABASE=Millennium P690 - - pci:v0000102Bd00002539sv0000102Bsd00000040* -- ID_MODEL_FROM_DATABASE=Millenium P690 PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd00000042* -- ID_MODEL_FROM_DATABASE=ONYX -+ ID_MODEL_FROM_DATABASE=Millennium P690 (ONYX) - - pci:v0000102Bd00002539sv0000102Bsd00000043* -- ID_MODEL_FROM_DATABASE=SPECTRA -+ ID_MODEL_FROM_DATABASE=Millennium P690 (SPECTRA) - - pci:v0000102Bd00002539sv0000102Bsd00000080* -- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd00000081* -- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd00000082* -- ID_MODEL_FROM_DATABASE=RAD LPX PCIe x16 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCIe x16) - - pci:v0000102Bd00002539sv0000102Bsd000000C0* -- ID_MODEL_FROM_DATABASE=Millenium P690 Plus LP PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCI) - - pci:v0000102Bd00002539sv0000102Bsd000000C2* -- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCI) - - pci:v0000102Bd00002539sv0000102Bsd000000C3* -- ID_MODEL_FROM_DATABASE=RAD LPX PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCI) - - pci:v0000102Bd00002539sv0000102Bsd00000101* -- ID_MODEL_FROM_DATABASE=Millenium P690 PCI -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCI) - - pci:v0000102Bd00002539sv0000102Bsd00000140* -- ID_MODEL_FROM_DATABASE=Millenium P690 LP PCIe x1 -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x1) - - pci:v0000102Bd00002539sv0000102Bsd00000180* -- ID_MODEL_FROM_DATABASE=Display Wall IP Decode 128 MB -+ ID_MODEL_FROM_DATABASE=Millennium P690 (Display Wall IP Decode 128 MB) - - pci:v0000102Bd00004164* - ID_MODEL_FROM_DATABASE=Morphis QxT frame grabber -@@ -12558,43 +12558,43 @@ pci:v0000102Bd0000475D* - ID_MODEL_FROM_DATABASE=Vio frame grabber family - - pci:v0000102Bd0000475Dsv0000102Bsd00004B90* -- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber (single channel) -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber (single channel)) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B91* -- ID_MODEL_FROM_DATABASE=Vio Duo frame grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Duo frame grabber) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B92* -- ID_MODEL_FROM_DATABASE=Vio Analog frame grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio Analog frame grabber) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B93* -- ID_MODEL_FROM_DATABASE=Vio SDI Frame Grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio SDI Frame Grabber) - - pci:v0000102Bd0000475Dsv0000102Bsd00004B94* -- ID_MODEL_FROM_DATABASE=Vio DVI-A frame grabber -+ ID_MODEL_FROM_DATABASE=Vio frame grabber family (Vio DVI-A frame grabber) - - pci:v0000102Bd0000475F* - ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber - - pci:v0000102Bd0000475Fsv0000102Bsd0000475F* -- ID_MODEL_FROM_DATABASE=Solios eCL/XCL-F frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eCL/XCL-F frame grabber) - - pci:v0000102Bd0000475Fsv0000102Bsd00004D5F* -- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Full) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eV-CL (single-Full) frame grabber) - - pci:v0000102Bd0000475Fsv0000102Bsd00004E5F* -- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Full) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (single-Full) CL frame grabber (Solios eM-CL (single-Full) frame grabber) - - pci:v0000102Bd000047A1* - ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber - - pci:v0000102Bd000047A1sv0000102Bsd00004BE0* -- ID_MODEL_FROM_DATABASE=Solios eA/XA (single) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (single) frame grabber) - - pci:v0000102Bd000047A1sv0000102Bsd00004BE1* -- ID_MODEL_FROM_DATABASE=Solios eA/XA (dual) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (dual) frame grabber) - - pci:v0000102Bd000047A1sv0000102Bsd00004BE2* -- ID_MODEL_FROM_DATABASE=Solios eA/XA (quad) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios eA/XA frame grabber (Solios eA/XA (quad) frame grabber) - - pci:v0000102Bd000047A2* - ID_MODEL_FROM_DATABASE=Solios COM port -@@ -12603,25 +12603,25 @@ pci:v0000102Bd000047C1* - ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber - - pci:v0000102Bd000047C1sv0000102Bsd00000000* -- ID_MODEL_FROM_DATABASE=Solios frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004B80* -- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (single-Medium) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (single-Medium) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004B81* -- ID_MODEL_FROM_DATABASE=Solios eCL/XCL (dual-Base) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eCL/XCL (dual-Base) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004D80* -- ID_MODEL_FROM_DATABASE=Solios eV-CL (single-Medium) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (single-Medium) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004D81* -- ID_MODEL_FROM_DATABASE=Solios eV-CL (dual-Base) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eV-CL (dual-Base) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004E80* -- ID_MODEL_FROM_DATABASE=Solios eM-CL (single-Medium) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (single-Medium) frame grabber) - - pci:v0000102Bd000047C1sv0000102Bsd00004E81* -- ID_MODEL_FROM_DATABASE=Solios eM-CL (dual-Base) frame grabber -+ ID_MODEL_FROM_DATABASE=Solios (dual-Base/single-Medium) CL frame grabber (Solios eM-CL (dual-Base) frame grabber) - - pci:v0000102Bd000047C2* - ID_MODEL_FROM_DATABASE=Solios COM port -@@ -12630,34 +12630,34 @@ pci:v0000102Bd00004949* - ID_MODEL_FROM_DATABASE=Radient frame grabber family - - pci:v0000102Bd00004949sv0000102Bsd00000010* -- ID_MODEL_FROM_DATABASE=Radient eCL (Single-full) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Single-full) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000011* -- ID_MODEL_FROM_DATABASE=Radient eCLV (Single-full) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCLV (Single-full) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000020* -- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-base) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-base) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000030* -- ID_MODEL_FROM_DATABASE=Radient eCL (Dual-full) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Dual-full) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000040* -- ID_MODEL_FROM_DATABASE=Radient eCL (Quad-base) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Quad-base) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00000050* -- ID_MODEL_FROM_DATABASE=Radient eCL (Golden) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eCL (Golden) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001010* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-6) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-6) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001015* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (dual CXP-6) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (dual CXP-6) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001020* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (quad CXP-3) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (quad CXP-3) frame grabber) - - pci:v0000102Bd00004949sv0000102Bsd00001050* -- ID_MODEL_FROM_DATABASE=Radient eV-CXP (Golden) frame grabber -+ ID_MODEL_FROM_DATABASE=Radient frame grabber family (Radient eV-CXP (Golden) frame grabber) - - pci:v0000102Bd00004CDC* - ID_MODEL_FROM_DATABASE=Morphis JPEG2000 accelerator -@@ -12687,22 +12687,22 @@ pci:v0000102Cd000000C0sv0000102Csd000000C0* - ID_MODEL_FROM_DATABASE=F69000 HiQVideo - - pci:v0000102Cd000000C0sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001010* -- ID_MODEL_FROM_DATABASE=CP5/CR6 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CP5/CR6 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001020* -- ID_MODEL_FROM_DATABASE=VR6 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (VR6 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001030* -- ID_MODEL_FROM_DATABASE=PC5 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (PC5 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CT7 mainboard) - - pci:v0000102Cd000000C0sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=F69000 HiQVideo (CE7 mainboard) - - pci:v0000102Cd000000D0* - ID_MODEL_FROM_DATABASE=F65545 -@@ -12723,10 +12723,10 @@ pci:v0000102Cd000000E5* - ID_MODEL_FROM_DATABASE=F65555 HiQVPro - - pci:v0000102Cd000000E5sv00000E11sd0000B049* -- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop Display Controller -+ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Armada 1700 Laptop Display Controller) - - pci:v0000102Cd000000E5sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite Pro/Satellite -+ ID_MODEL_FROM_DATABASE=F65555 HiQVPro (Satellite Pro/Satellite) - - pci:v0000102Cd000000F0* - ID_MODEL_FROM_DATABASE=F68554 -@@ -12741,16 +12741,16 @@ pci:v0000102Cd00000C30* - ID_MODEL_FROM_DATABASE=F69030 - - pci:v0000102Cd00000C30sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v0000102Cd00000C30sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CT7 mainboard) - - pci:v0000102Cd00000C30sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CE7 mainboard) - - pci:v0000102Cd00000C30sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=F69030 (CT8 mainboard) - - pci:v0000102D* - ID_VENDOR_FROM_DATABASE=Wyse Technology Inc. -@@ -12894,34 +12894,34 @@ pci:v00001033d00000035* - ID_MODEL_FROM_DATABASE=OHCI USB Controller - - pci:v00001033d00000035sv00001033sd00000035* -- ID_MODEL_FROM_DATABASE=USB Controller -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB Controller) - - pci:v00001033d00000035sv0000103Csd00001293* -- ID_MODEL_FROM_DATABASE=USB add-in card -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB add-in card) - - pci:v00001033d00000035sv0000103Csd00001294* -- ID_MODEL_FROM_DATABASE=USB 2.0 add-in card -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB 2.0 add-in card) - - pci:v00001033d00000035sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=USB -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (USB) - - pci:v00001033d00000035sv000012EEsd00007000* -- ID_MODEL_FROM_DATABASE=Root Hub -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) - - pci:v00001033d00000035sv000014C2sd00000105* -- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PTI-205N USB 2.0 Host Controller) - - pci:v00001033d00000035sv00001799sd00000001* -- ID_MODEL_FROM_DATABASE=Root Hub -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (Root Hub) - - pci:v00001033d00000035sv00001931sd0000000A* -- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (PPP data) -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (PPP data)) - - pci:v00001033d00000035sv00001931sd0000000B* -- ID_MODEL_FROM_DATABASE=GlobeTrotter Fusion Quad Lite (GSM data) -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (GlobeTrotter Fusion Quad Lite (GSM data)) - - pci:v00001033d00000035sv0000807Dsd00000035* -- ID_MODEL_FROM_DATABASE=PCI-USB2 (OHCI subsystem) -+ ID_MODEL_FROM_DATABASE=OHCI USB Controller (PCI-USB2 (OHCI subsystem)) - - pci:v00001033d0000003B* - ID_MODEL_FROM_DATABASE=PCI to C-bus Bridge -@@ -12942,28 +12942,28 @@ pci:v00001033d00000067* - ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset - - pci:v00001033d00000067sv00001010sd00000020* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) - - pci:v00001033d00000067sv00001010sd00000080* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) - - pci:v00001033d00000067sv00001010sd00000088* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) - - pci:v00001033d00000067sv00001010sd00000090* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 16Mb) - - pci:v00001033d00000067sv00001010sd00000098* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 16Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 16Mb) - - pci:v00001033d00000067sv00001010sd000000A0* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) - - pci:v00001033d00000067sv00001010sd000000A8* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 32Mb) - - pci:v00001033d00000067sv00001010sd00000120* -- ID_MODEL_FROM_DATABASE=PowerVR Neon 250 AGP 32Mb -+ ID_MODEL_FROM_DATABASE=PowerVR Neon 250 Chipset (PowerVR Neon 250 AGP 32Mb) - - pci:v00001033d00000072* - ID_MODEL_FROM_DATABASE=uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr -@@ -12972,7 +12972,7 @@ pci:v00001033d00000074* - ID_MODEL_FROM_DATABASE=56k Voice Modem - - pci:v00001033d00000074sv00001033sd00008014* -- ID_MODEL_FROM_DATABASE=RCV56ACF 56k Voice Modem -+ ID_MODEL_FROM_DATABASE=56k Voice Modem (RCV56ACF 56k Voice Modem) - - pci:v00001033d0000009B* - ID_MODEL_FROM_DATABASE=Vrc5476 -@@ -12987,7 +12987,7 @@ pci:v00001033d000000CD* - ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller - - pci:v00001033d000000CDsv000012EEsd00008011* -- ID_MODEL_FROM_DATABASE=Root hub -+ ID_MODEL_FROM_DATABASE=uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller (Root hub) - - pci:v00001033d000000CE* - ID_MODEL_FROM_DATABASE=uPD72871 [Firewarden] IEEE1394a OHCI 1.0 Link/1-port PHY Controller -@@ -12999,16 +12999,16 @@ pci:v00001033d000000E0* - ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller - - pci:v00001033d000000E0sv000012EEsd00007001* -- ID_MODEL_FROM_DATABASE=Root hub -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root hub) - - pci:v00001033d000000E0sv000014C2sd00000205* -- ID_MODEL_FROM_DATABASE=PTI-205N USB 2.0 Host Controller -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PTI-205N USB 2.0 Host Controller) - - pci:v00001033d000000E0sv00001799sd00000002* -- ID_MODEL_FROM_DATABASE=Root Hub -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (Root Hub) - - pci:v00001033d000000E0sv0000807Dsd00001043* -- ID_MODEL_FROM_DATABASE=PCI-USB2 (EHCI subsystem) -+ ID_MODEL_FROM_DATABASE=uPD72010x USB 2.0 Controller (PCI-USB2 (EHCI subsystem)) - - pci:v00001033d000000E7* - ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller -@@ -13032,22 +13032,22 @@ pci:v00001033d00000194* - ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller - - pci:v00001033d00000194sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Precision M4600) - - pci:v00001033d00000194sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3350) - - pci:v00001033d00000194sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (Vostro 3750) - - pci:v00001033d00000194sv00001043sd00008413* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (P8P67 Deluxe Motherboard) - - pci:v00001033d00000194sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (QEMU Virtual Machine) - - pci:v00001033d00000194sv00001B96sd00000001* -- ID_MODEL_FROM_DATABASE=USB 3.0 PCIe Card -+ ID_MODEL_FROM_DATABASE=uPD720200 USB 3.0 Host Controller (USB 3.0 PCIe Card) - - pci:v00001033d000001E7* - ID_MODEL_FROM_DATABASE=uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller -@@ -13116,7 +13116,7 @@ pci:v00001039d00000182* - ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller - - pci:v00001039d00000182sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=182 SATA/RAID Controller (D2030-A1) - - pci:v00001039d00000186* - ID_MODEL_FROM_DATABASE=AHCI Controller (0106) -@@ -13131,7 +13131,7 @@ pci:v00001039d00000200* - ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA - - pci:v00001039d00000200sv00001039sd00000000* -- ID_MODEL_FROM_DATABASE=SiS5597 SVGA (Shared RAM) -+ ID_MODEL_FROM_DATABASE=5597/5598/6326 VGA (SiS5597 SVGA (Shared RAM)) - - pci:v00001039d00000204* - ID_MODEL_FROM_DATABASE=82C204 -@@ -13143,7 +13143,7 @@ pci:v00001039d00000300* - ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter - - pci:v00001039d00000300sv0000107Dsd00002720* -- ID_MODEL_FROM_DATABASE=Leadtek WinFast VR300 -+ ID_MODEL_FROM_DATABASE=300/305 PCI/AGP VGA Display Adapter (Leadtek WinFast VR300) - - pci:v00001039d00000310* - ID_MODEL_FROM_DATABASE=315H PCI/AGP VGA Display Adapter -@@ -13239,7 +13239,7 @@ pci:v00001039d00000741* - ID_MODEL_FROM_DATABASE=741/741GX/M741 Host - - pci:v00001039d00000741sv00001849sd00000741* -- ID_MODEL_FROM_DATABASE=K7S41/K7S41GX motherboard -+ ID_MODEL_FROM_DATABASE=741/741GX/M741 Host (K7S41/K7S41GX motherboard) - - pci:v00001039d00000745* - ID_MODEL_FROM_DATABASE=745 Host -@@ -13257,25 +13257,25 @@ pci:v00001039d00000761* - ID_MODEL_FROM_DATABASE=761/M761 Host - - pci:v00001039d00000761sv00001734sd00001099* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=761/M761 Host (D2030-A1 Motherboard) - - pci:v00001039d00000900* - ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet - - pci:v00001039d00000900sv00001019sd00000A14* -- ID_MODEL_FROM_DATABASE=K7S5A motherboard -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (K7S5A motherboard) - - pci:v00001039d00000900sv00001039sd00000900* -- ID_MODEL_FROM_DATABASE=SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA] -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (SiS900 10/100 Ethernet Adapter onboard [Asus P4SC-EA]) - - pci:v00001039d00000900sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (CUSI-FX motherboard) - - pci:v00001039d00000900sv00001043sd000080A7* -- ID_MODEL_FROM_DATABASE=Motherboard P4S800D-X -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (Motherboard P4S800D-X) - - pci:v00001039d00000900sv00001462sd00000900* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=SiS900 PCI Fast Ethernet (MS-6701 motherboard) - - pci:v00001039d00000961* - ID_MODEL_FROM_DATABASE=SiS961 [MuTIOL Media IO] -@@ -13335,22 +13335,22 @@ pci:v00001039d00005513* - ID_MODEL_FROM_DATABASE=5513 IDE Controller - - pci:v00001039d00005513sv00001019sd00000970* -- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (P6STP-FL motherboard) - - pci:v00001039d00005513sv00001039sd00005513* -- ID_MODEL_FROM_DATABASE=SiS5513 EIDE Controller (A,B step) -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (SiS5513 EIDE Controller (A,B step)) - - pci:v00001039d00005513sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (CUSI-FX motherboard) - - pci:v00001039d00005513sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (MS-6701 motherboard) - - pci:v00001039d00005513sv00001631sd00005513* -- ID_MODEL_FROM_DATABASE=GA-8SIML Rev1.0 Motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (GA-8SIML Rev1.0 Motherboard) - - pci:v00001039d00005513sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=5513 IDE Controller (D2030-A1 Motherboard) - - pci:v00001039d00005517* - ID_MODEL_FROM_DATABASE=5517 -@@ -13389,13 +13389,13 @@ pci:v00001039d00006300* - ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter - - pci:v00001039d00006300sv00001019sd00000970* -- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard -+ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (P6STP-FL motherboard) - - pci:v00001039d00006300sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (CUSI-FX motherboard) - - pci:v00001039d00006300sv0000104Dsd000080E2* -- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 -+ ID_MODEL_FROM_DATABASE=630/730 PCI/AGP VGA Display Adapter (VAIO PCV-J200) - - pci:v00001039d00006306* - ID_MODEL_FROM_DATABASE=530/620 PCI/AGP VGA Display Adapter -@@ -13404,49 +13404,49 @@ pci:v00001039d00006325* - ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter - - pci:v00001039d00006325sv00001039sd00006325* -- ID_MODEL_FROM_DATABASE=SiS 651 onboard [Asus P4SC-EA] -+ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651 onboard [Asus P4SC-EA]) - - pci:v00001039d00006325sv00001631sd00001004* -- ID_MODEL_FROM_DATABASE=SiS 651C onboard [Gigabyte GA-8SIML Rev1.0] -+ ID_MODEL_FROM_DATABASE=65x/M650/740 PCI/AGP VGA Display Adapter (SiS 651C onboard [Gigabyte GA-8SIML Rev1.0]) - - pci:v00001039d00006326* - ID_MODEL_FROM_DATABASE=86C326 5598/6326 - - pci:v00001039d00006326sv00001039sd00006326* -- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) - - pci:v00001039d00006326sv00001092sd00000A50* -- ID_MODEL_FROM_DATABASE=SpeedStar A50 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A50) - - pci:v00001039d00006326sv00001092sd00000A70* -- ID_MODEL_FROM_DATABASE=SpeedStar A70 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) - - pci:v00001039d00006326sv00001092sd00004910* -- ID_MODEL_FROM_DATABASE=SpeedStar A70 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) - - pci:v00001039d00006326sv00001092sd00004920* -- ID_MODEL_FROM_DATABASE=SpeedStar A70 -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SpeedStar A70) - - pci:v00001039d00006326sv000010B0sd00006326* -- ID_MODEL_FROM_DATABASE=S6110-B (AGP) -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (S6110-B (AGP)) - - pci:v00001039d00006326sv00001569sd00006326* -- ID_MODEL_FROM_DATABASE=SiS6326 GUI Accelerator -+ ID_MODEL_FROM_DATABASE=86C326 5598/6326 (SiS6326 GUI Accelerator) - - pci:v00001039d00006330* - ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter - - pci:v00001039d00006330sv00001039sd00006330* -- ID_MODEL_FROM_DATABASE=[M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter ([M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter) - - pci:v00001039d00006330sv00001043sd00008113* -- ID_MODEL_FROM_DATABASE=SiS Real 256E (ASUS P5S800-VM motherboard) -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS Real 256E (ASUS P5S800-VM motherboard)) - - pci:v00001039d00006330sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=SiS661FX GUI 2D/3D Accelerator -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (SiS661FX GUI 2D/3D Accelerator) - - pci:v00001039d00006330sv00001734sd00001099* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter (D2030-A1) - - pci:v00001039d00006350* - ID_MODEL_FROM_DATABASE=770/670 PCIE VGA Display Adapter -@@ -13458,70 +13458,70 @@ pci:v00001039d00007001* - ID_MODEL_FROM_DATABASE=USB 1.1 Controller - - pci:v00001039d00007001sv00001019sd00000A14* -- ID_MODEL_FROM_DATABASE=K7S5A motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (K7S5A motherboard) - - pci:v00001039d00007001sv00001039sd00007000* -- ID_MODEL_FROM_DATABASE=Onboard USB Controller -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Onboard USB Controller) - - pci:v00001039d00007001sv00001462sd00005470* -- ID_MODEL_FROM_DATABASE=ECS K7SOM+ motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ECS K7SOM+ motherboard) - - pci:v00001039d00007001sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (MS-6701 motherboard) - - pci:v00001039d00007001sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (D2030-A1 Motherboard) - - pci:v00001039d00007002* - ID_MODEL_FROM_DATABASE=USB 2.0 Controller - - pci:v00001039d00007002sv00001462sd00005470* -- ID_MODEL_FROM_DATABASE=K7SOM+ 5.2C Motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (K7SOM+ 5.2C Motherboard) - - pci:v00001039d00007002sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (MS-6701 motherboard) - - pci:v00001039d00007002sv00001509sd00007002* -- ID_MODEL_FROM_DATABASE=Onboard USB Controller -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (Onboard USB Controller) - - pci:v00001039d00007002sv00001734sd00001095* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (D2030-A1) - - pci:v00001039d00007007* - ID_MODEL_FROM_DATABASE=FireWire Controller - - pci:v00001039d00007007sv00001462sd0000701D* -- ID_MODEL_FROM_DATABASE=MS-6701 -+ ID_MODEL_FROM_DATABASE=FireWire Controller (MS-6701) - - pci:v00001039d00007012* - ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller - - pci:v00001039d00007012sv00001019sd00000F05* -- ID_MODEL_FROM_DATABASE=A928 (i-Buddie) -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A928 (i-Buddie)) - - pci:v00001039d00007012sv00001039sd00007012* -- ID_MODEL_FROM_DATABASE=SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller) - - pci:v00001039d00007012sv00001043sd0000818F* -- ID_MODEL_FROM_DATABASE=A8S-X Motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (A8S-X Motherboard) - - pci:v00001039d00007012sv000013F6sd00000300* -- ID_MODEL_FROM_DATABASE=CMI9739(A) on ECS K7SOM+ motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (CMI9739(A) on ECS K7SOM+ motherboard) - - pci:v00001039d00007012sv00001462sd00005850* -- ID_MODEL_FROM_DATABASE=MSI 648 Max (MS-6585) -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MSI 648 Max (MS-6585)) - - pci:v00001039d00007012sv00001462sd00007010* -- ID_MODEL_FROM_DATABASE=MS-6701 motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (MS-6701 motherboard) - - pci:v00001039d00007012sv000015BDsd00001001* -- ID_MODEL_FROM_DATABASE=DFI 661FX motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (DFI 661FX motherboard) - - pci:v00001039d00007012sv00001734sd0000109F* -- ID_MODEL_FROM_DATABASE=D2030-A1 Motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (D2030-A1 Motherboard) - - pci:v00001039d00007012sv00001849sd00007012* -- ID_MODEL_FROM_DATABASE=K7S41GX motherboard -+ ID_MODEL_FROM_DATABASE=SiS7012 AC'97 Sound Controller (K7S41GX motherboard) - - pci:v00001039d00007013* - ID_MODEL_FROM_DATABASE=AC'97 Modem Controller -@@ -13530,7 +13530,7 @@ pci:v00001039d00007016* - ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter - - pci:v00001039d00007016sv00001039sd00007016* -- ID_MODEL_FROM_DATABASE=SiS7016 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SiS7016 PCI Fast Ethernet Adapter (SiS7016 10/100 Ethernet Adapter) - - pci:v00001039d00007018* - ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator -@@ -13560,7 +13560,7 @@ pci:v00001039d00007018sv00001043sd0000800B* - ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator - - pci:v00001039d00007018sv0000104Dsd000080E2* -- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 -+ ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator (VAIO PCV-J200) - - pci:v00001039d00007018sv00001054sd00007018* - ID_MODEL_FROM_DATABASE=SiS PCI Audio Accelerator -@@ -13635,25 +13635,25 @@ pci:v0000103Cd00001029* - ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter - - pci:v0000103Cd00001029sv0000107Esd0000000F* -- ID_MODEL_FROM_DATABASE=Interphase 5560 Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (Interphase 5560 Fibre Channel Adapter) - - pci:v0000103Cd00001029sv00009004sd00009210* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd00001029sv00009004sd00009211* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach XL2 Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd0000102A* - ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter - - pci:v0000103Cd0000102Asv0000107Esd0000000E* -- ID_MODEL_FROM_DATABASE=Interphase 5540/5541 Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (Interphase 5540/5541 Fibre Channel Adapter) - - pci:v0000103Cd0000102Asv00009004sd00009110* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd0000102Asv00009004sd00009111* -- ID_MODEL_FROM_DATABASE=1Gb/2Gb Family Fibre Channel Controller -+ ID_MODEL_FROM_DATABASE=Tach TS Fibre Channel Host Adapter (1Gb/2Gb Family Fibre Channel Controller) - - pci:v0000103Cd00001030* - ID_MODEL_FROM_DATABASE=J2585A DeskDirect 10/100VG NIC -@@ -13662,13 +13662,13 @@ pci:v0000103Cd00001031* - ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter - - pci:v0000103Cd00001031sv0000103Csd00001040* -- ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC -+ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2973A DeskDirect 10BaseT NIC) - - pci:v0000103Cd00001031sv0000103Csd00001041* -- ID_MODEL_FROM_DATABASE=J2585B DeskDirect 10/100VG NIC -+ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2585B DeskDirect 10/100VG NIC) - - pci:v0000103Cd00001031sv0000103Csd00001042* -- ID_MODEL_FROM_DATABASE=J2970A DeskDirect 10BaseT/2 NIC -+ ID_MODEL_FROM_DATABASE=J2585B HP 10/100VG PCI LAN Adapter (J2970A DeskDirect 10BaseT/2 NIC) - - pci:v0000103Cd00001040* - ID_MODEL_FROM_DATABASE=J2973A DeskDirect 10BaseT NIC -@@ -13683,28 +13683,28 @@ pci:v0000103Cd00001048* - ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART - - pci:v0000103Cd00001048sv0000103Csd00001049* -- ID_MODEL_FROM_DATABASE=Tosca Console -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Console) - - pci:v0000103Cd00001048sv0000103Csd0000104A* -- ID_MODEL_FROM_DATABASE=Tosca Secondary -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Tosca Secondary) - - pci:v0000103Cd00001048sv0000103Csd0000104B* -- ID_MODEL_FROM_DATABASE=Maestro SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Maestro SP2) - - pci:v0000103Cd00001048sv0000103Csd00001223* -- ID_MODEL_FROM_DATABASE=Superdome Console -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Superdome Console) - - pci:v0000103Cd00001048sv0000103Csd00001226* -- ID_MODEL_FROM_DATABASE=Keystone SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Keystone SP2) - - pci:v0000103Cd00001048sv0000103Csd00001227* -- ID_MODEL_FROM_DATABASE=Powerbar SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Powerbar SP2) - - pci:v0000103Cd00001048sv0000103Csd00001282* -- ID_MODEL_FROM_DATABASE=Everest SP2 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Everest SP2) - - pci:v0000103Cd00001048sv0000103Csd00001301* -- ID_MODEL_FROM_DATABASE=Diva RMP3 -+ ID_MODEL_FROM_DATABASE=Diva Serial [GSP] Multiport UART (Diva RMP3) - - pci:v0000103Cd00001054* - ID_MODEL_FROM_DATABASE=PCI Local Bus Adapter -@@ -13758,7 +13758,7 @@ pci:v0000103Cd00001290* - ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port - - pci:v0000103Cd00001290sv0000103Csd00001291* -- ID_MODEL_FROM_DATABASE=Diva SP2 -+ ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port (Diva SP2) - - pci:v0000103Cd00001291* - ID_MODEL_FROM_DATABASE=Auxiliary Diva Serial Port -@@ -13794,208 +13794,208 @@ pci:v0000103Cd00003220* - ID_MODEL_FROM_DATABASE=Smart Array P600 - - pci:v0000103Cd00003220sv0000103Csd00003225* -- ID_MODEL_FROM_DATABASE=3 Gb/s SAS RAID -+ ID_MODEL_FROM_DATABASE=Smart Array P600 (3 Gb/s SAS RAID) - - pci:v0000103Cd00003230* - ID_MODEL_FROM_DATABASE=Smart Array Controller - - pci:v0000103Cd00003230sv0000103Csd00003223* -- ID_MODEL_FROM_DATABASE=Smart Array P800 -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (Smart Array P800) - - pci:v0000103Cd00003230sv0000103Csd00003234* -- ID_MODEL_FROM_DATABASE=P400 SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400 SAS Controller) - - pci:v0000103Cd00003230sv0000103Csd00003235* -- ID_MODEL_FROM_DATABASE=P400i SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (P400i SAS Controller) - - pci:v0000103Cd00003230sv0000103Csd00003237* -- ID_MODEL_FROM_DATABASE=E500 SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (E500 SAS Controller) - - pci:v0000103Cd00003230sv0000103Csd0000323D* -- ID_MODEL_FROM_DATABASE=P700m SAS Controller -+ ID_MODEL_FROM_DATABASE=Smart Array Controller (P700m SAS Controller) - - pci:v0000103Cd00003238* - ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) - - pci:v0000103Cd00003238sv0000103Csd00003211* -- ID_MODEL_FROM_DATABASE=Smart Array E200i -+ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200i) - - pci:v0000103Cd00003238sv0000103Csd00003212* -- ID_MODEL_FROM_DATABASE=Smart Array E200 -+ ID_MODEL_FROM_DATABASE=Smart Array E200i (SAS Controller) (Smart Array E200) - - pci:v0000103Cd00003239* - ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers - - pci:v0000103Cd00003239sv0000103Csd000021BD* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021BE* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021BF* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C0* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C1* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C2* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C3* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C4* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C5* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C6* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C7* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C8* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021C9* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CA* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CB* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CC* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CD* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd00003239sv0000103Csd000021CE* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen9 Controllers (Smart Array) - - pci:v0000103Cd0000323A* - ID_MODEL_FROM_DATABASE=Smart Array G6 controllers - - pci:v0000103Cd0000323Asv0000103Csd00003241* -- ID_MODEL_FROM_DATABASE=Smart Array P212 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P212) - - pci:v0000103Cd0000323Asv0000103Csd00003243* -- ID_MODEL_FROM_DATABASE=Smart Array P410 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410) - - pci:v0000103Cd0000323Asv0000103Csd00003245* -- ID_MODEL_FROM_DATABASE=Smart Array P410i -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P410i) - - pci:v0000103Cd0000323Asv0000103Csd00003247* -- ID_MODEL_FROM_DATABASE=Smart Array P411 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P411) - - pci:v0000103Cd0000323Asv0000103Csd00003249* -- ID_MODEL_FROM_DATABASE=Smart Array P812 -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P812) - - pci:v0000103Cd0000323Asv0000103Csd0000324A* -- ID_MODEL_FROM_DATABASE=HP Smart Array 712m (Mezzanine RAID controller) -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (HP Smart Array 712m (Mezzanine RAID controller)) - - pci:v0000103Cd0000323Asv0000103Csd0000324B* -- ID_MODEL_FROM_DATABASE=Smart Array P711m (Mezzanine RAID controller) -+ ID_MODEL_FROM_DATABASE=Smart Array G6 controllers (Smart Array P711m (Mezzanine RAID controller)) - - pci:v0000103Cd0000323B* - ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers - - pci:v0000103Cd0000323Bsv0000103Csd00003350* -- ID_MODEL_FROM_DATABASE=P222 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P222) - - pci:v0000103Cd0000323Bsv0000103Csd00003351* -- ID_MODEL_FROM_DATABASE=P420 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420) - - pci:v0000103Cd0000323Bsv0000103Csd00003352* -- ID_MODEL_FROM_DATABASE=P421 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P421) - - pci:v0000103Cd0000323Bsv0000103Csd00003354* -- ID_MODEL_FROM_DATABASE=P420i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P420i) - - pci:v0000103Cd0000323Bsv0000103Csd00003355* -- ID_MODEL_FROM_DATABASE=P220i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8 Controllers (P220i) - - pci:v0000103Cd0000323C* - ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers - - pci:v0000103Cd0000323Csv0000103Csd00001920* -- ID_MODEL_FROM_DATABASE=P430i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430i) - - pci:v0000103Cd0000323Csv0000103Csd00001921* -- ID_MODEL_FROM_DATABASE=P830i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830i) - - pci:v0000103Cd0000323Csv0000103Csd00001922* -- ID_MODEL_FROM_DATABASE=P430 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P430) - - pci:v0000103Cd0000323Csv0000103Csd00001923* -- ID_MODEL_FROM_DATABASE=P431 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P431) - - pci:v0000103Cd0000323Csv0000103Csd00001924* -- ID_MODEL_FROM_DATABASE=P830 -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P830) - - pci:v0000103Cd0000323Csv0000103Csd00001925* -- ID_MODEL_FROM_DATABASE=Smart Array -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (Smart Array) - - pci:v0000103Cd0000323Csv0000103Csd00001926* -- ID_MODEL_FROM_DATABASE=P731m -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P731m) - - pci:v0000103Cd0000323Csv0000103Csd00001928* -- ID_MODEL_FROM_DATABASE=P230i -+ ID_MODEL_FROM_DATABASE=Smart Array Gen8+ Controllers (P230i) - - pci:v0000103Cd00003300* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller - - pci:v0000103Cd00003300sv0000103Csd00003304* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) - - pci:v0000103Cd00003300sv0000103Csd00003305* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2) - - pci:v0000103Cd00003300sv0000103Csd00003309* -- ID_MODEL_FROM_DATABASE=iLO2 GXL/iLO3 GXE -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO2 GXL/iLO3 GXE) - - pci:v0000103Cd00003300sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO3) - - pci:v0000103Cd00003300sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Virtual USB Controller (iLO4) - - pci:v0000103Cd00003301* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port - - pci:v0000103Cd00003301sv0000103Csd00003304* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) - - pci:v0000103Cd00003301sv0000103Csd00003305* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO2) - - pci:v0000103Cd00003301sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO3) - - pci:v0000103Cd00003301sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Serial Port (iLO4) - - pci:v0000103Cd00003302* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface - - pci:v0000103Cd00003302sv0000103Csd00003304* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) - - pci:v0000103Cd00003302sv0000103Csd00003305* -- ID_MODEL_FROM_DATABASE=iLO2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO2) - - pci:v0000103Cd00003302sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO3) - - pci:v0000103Cd00003302sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard KCS Interface (iLO4) - - pci:v0000103Cd00003305* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out (iLO2) Controller -@@ -14004,31 +14004,31 @@ pci:v0000103Cd00003306* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support - - pci:v0000103Cd00003306sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO3) - - pci:v0000103Cd00003306sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Slave Instrumentation & System Support (iLO4) - - pci:v0000103Cd00003307* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging - - pci:v0000103Cd00003307sv0000103Csd00003309* -- ID_MODEL_FROM_DATABASE=iLO 2 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO 2) - - pci:v0000103Cd00003307sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO3) - - pci:v0000103Cd00003307sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard Management Processor Support and Messaging (iLO4) - - pci:v0000103Cd00003308* - ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer - - pci:v0000103Cd00003308sv0000103Csd0000330E* -- ID_MODEL_FROM_DATABASE=iLO3 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO3) - - pci:v0000103Cd00003308sv0000103Csd00003381* -- ID_MODEL_FROM_DATABASE=iLO4 -+ ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO4) - - pci:v0000103Cd0000402F* - ID_MODEL_FROM_DATABASE=PCIe Root Port -@@ -14082,19 +14082,19 @@ pci:v00001043d00000675* - ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D - - pci:v00001043d00000675sv00000675sd00001704* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) -+ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, D, C)) - - pci:v00001043d00000675sv00000675sd00001707* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001043d00000675sv000010CFsd0000105E* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001043d00009602* - ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) - - pci:v00001043d00009602sv00001043sd000083A2* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx) (M4A785TD Motherboard) - - pci:v00001044* - ID_VENDOR_FROM_DATABASE=Adaptec (formerly DPT) -@@ -14112,118 +14112,118 @@ pci:v00001044d0000A501* - ID_MODEL_FROM_DATABASE=SmartRAID V Controller - - pci:v00001044d0000A501sv00001044sd0000C001* -- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C002* -- ID_MODEL_FROM_DATABASE=PM1654U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1654U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C003* -- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C004* -- ID_MODEL_FROM_DATABASE=PM1564U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1564U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C005* -- ID_MODEL_FROM_DATABASE=PM1554U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM1554U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C00A* -- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C00B* -- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C00C* -- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C00D* -- ID_MODEL_FROM_DATABASE=PM2664U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2664U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C00E* -- ID_MODEL_FROM_DATABASE=PM2554U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2554U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C00F* -- ID_MODEL_FROM_DATABASE=PM2654U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2654U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C014* -- ID_MODEL_FROM_DATABASE=PM3754U2 Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3754U2 Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C015* -- ID_MODEL_FROM_DATABASE=PM3755U2B Ultra2 Single Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755U2B Ultra2 Single Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C016* -- ID_MODEL_FROM_DATABASE=PM3755F Fibre Channel (NON ACPI) -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3755F Fibre Channel (NON ACPI)) - - pci:v00001044d0000A501sv00001044sd0000C01E* -- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C01F* -- ID_MODEL_FROM_DATABASE=PM3757U2 Ultra2 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3757U2 Ultra2 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C020* -- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C021* -- ID_MODEL_FROM_DATABASE=PM3767U3 Ultra3 Quad Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM3767U3 Ultra3 Quad Channel) - - pci:v00001044d0000A501sv00001044sd0000C028* -- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C029* -- ID_MODEL_FROM_DATABASE=PM2865U3 Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865U3 Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C02A* -- ID_MODEL_FROM_DATABASE=PM2865F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (PM2865F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C03C* -- ID_MODEL_FROM_DATABASE=2000S Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C03D* -- ID_MODEL_FROM_DATABASE=2000S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C03E* -- ID_MODEL_FROM_DATABASE=2000F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2000F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C046* -- ID_MODEL_FROM_DATABASE=3000S Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C047* -- ID_MODEL_FROM_DATABASE=3000S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C048* -- ID_MODEL_FROM_DATABASE=3000F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3000F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C050* -- ID_MODEL_FROM_DATABASE=5000S Ultra3 Single Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Single Channel) - - pci:v00001044d0000A501sv00001044sd0000C051* -- ID_MODEL_FROM_DATABASE=5000S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C052* -- ID_MODEL_FROM_DATABASE=5000F Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (5000F Fibre Channel) - - pci:v00001044d0000A501sv00001044sd0000C05A* -- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel) - - pci:v00001044d0000A501sv00001044sd0000C05B* -- ID_MODEL_FROM_DATABASE=2400A UDMA Four Channel DAC -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (2400A UDMA Four Channel DAC) - - pci:v00001044d0000A501sv00001044sd0000C064* -- ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Ultra3 Dual Channel) - - pci:v00001044d0000A501sv00001044sd0000C065* -- ID_MODEL_FROM_DATABASE=3410S Ultra160 Four Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3410S Ultra160 Four Channel) - - pci:v00001044d0000A501sv00001044sd0000C066* -- ID_MODEL_FROM_DATABASE=3010S Fibre Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (3010S Fibre Channel) - - pci:v00001044d0000A511* - ID_MODEL_FROM_DATABASE=SmartRAID V Controller - - pci:v00001044d0000A511sv00001044sd0000C032* -- ID_MODEL_FROM_DATABASE=ASR-2005S I2O Zero Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2005S I2O Zero Channel) - - pci:v00001044d0000A511sv00001044sd0000C035* -- ID_MODEL_FROM_DATABASE=ASR-2010S I2O Zero Channel -+ ID_MODEL_FROM_DATABASE=SmartRAID V Controller (ASR-2010S I2O Zero Channel) - - pci:v00001044d0000C066* - ID_MODEL_FROM_DATABASE=3010S Ultra3 Dual Channel -@@ -14325,7 +14325,7 @@ pci:v00001048d00008901* - ID_MODEL_FROM_DATABASE=Gloria XL - - pci:v00001048d00008901sv00001048sd00000935* -- ID_MODEL_FROM_DATABASE=GLoria XL (Virge) -+ ID_MODEL_FROM_DATABASE=Gloria XL (GLoria XL (Virge)) - - pci:v00001049* - ID_VENDOR_FROM_DATABASE=Fountain Technologies, Inc. -@@ -14346,19 +14346,19 @@ pci:v0000104Ad00000010* - ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] - - pci:v0000104Ad00000010sv0000104Asd00004018* -- ID_MODEL_FROM_DATABASE=ST PowerVR Kyro (64MB AGP TVO) -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (ST PowerVR Kyro (64MB AGP TVO)) - - pci:v0000104Ad00000010sv00001681sd00000010* -- ID_MODEL_FROM_DATABASE=PowerVR Kyro II [3D Prophet 4500] -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (PowerVR Kyro II [3D Prophet 4500]) - - pci:v0000104Ad00000010sv00001681sd00000028* -- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) - - pci:v0000104Ad00000010sv00001681sd0000C010* -- ID_MODEL_FROM_DATABASE=3D Prophet 4500 TV-Out -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4500 TV-Out) - - pci:v0000104Ad00000010sv00001681sd0000C069* -- ID_MODEL_FROM_DATABASE=3D Prophet 4000XT -+ ID_MODEL_FROM_DATABASE=STG4000 [3D Prophet Kyro Series] (3D Prophet 4000XT) - - pci:v0000104Ad00000201* - ID_MODEL_FROM_DATABASE=STPC Vega Northbridge -@@ -14400,7 +14400,7 @@ pci:v0000104Ad00000500* - ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver - - pci:v0000104Ad00000500sv0000104Asd00000500* -- ID_MODEL_FROM_DATABASE=BeWAN ADSL PCI st -+ ID_MODEL_FROM_DATABASE=ST70137 [Unicorn] ADSL DMT Transceiver (BeWAN ADSL PCI st) - - pci:v0000104Ad00000564* - ID_MODEL_FROM_DATABASE=STPC Client Northbridge -@@ -14454,115 +14454,115 @@ pci:v0000104Cd00003D07* - ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] - - pci:v0000104Cd00003D07sv00001011sd00004D10* -- ID_MODEL_FROM_DATABASE=Comet -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Comet) - - pci:v0000104Cd00003D07sv00001040sd0000000F* -- ID_MODEL_FROM_DATABASE=AccelStar II -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) - - pci:v0000104Cd00003D07sv00001040sd00000011* -- ID_MODEL_FROM_DATABASE=AccelStar II -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (AccelStar II) - - pci:v0000104Cd00003D07sv00001048sd00000A31* -- ID_MODEL_FROM_DATABASE=WINNER 2000 -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WINNER 2000) - - pci:v0000104Cd00003D07sv00001048sd00000A32* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A34* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A35* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A36* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A43* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv00001048sd00000A44* -- ID_MODEL_FROM_DATABASE=GLoria Synergy -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (GLoria Synergy) - - pci:v0000104Cd00003D07sv0000107Dsd00002633* -- ID_MODEL_FROM_DATABASE=WinFast 3D L2300 -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (WinFast 3D L2300) - - pci:v0000104Cd00003D07sv00001092sd00000126* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000127* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000136* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000141* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000146* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000148* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000149* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000152* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000154* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000155* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000156* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001092sd00000157* -- ID_MODEL_FROM_DATABASE=FIRE GL 1000 PRO -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (FIRE GL 1000 PRO) - - pci:v0000104Cd00003D07sv00001097sd00003D01* -- ID_MODEL_FROM_DATABASE=Jeronimo Pro -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Jeronimo Pro) - - pci:v0000104Cd00003D07sv00001102sd0000100F* -- ID_MODEL_FROM_DATABASE=Graphics Blaster Extreme -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Graphics Blaster Extreme) - - pci:v0000104Cd00003D07sv00003D3Dsd00000100* -- ID_MODEL_FROM_DATABASE=Reference Permedia 2 3D -+ ID_MODEL_FROM_DATABASE=TVP4020 [Permedia 2] (Reference Permedia 2 3D) - - pci:v0000104Cd00008000* - ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller - - pci:v0000104Cd00008000sv0000105Esd00008003* -- ID_MODEL_FROM_DATABASE=FireBoard200 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) - - pci:v0000104Cd00008000sv00001443sd00008003* -- ID_MODEL_FROM_DATABASE=FireBoard200 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard200) - - pci:v0000104Cd00008000sv00001443sd00008005* -- ID_MODEL_FROM_DATABASE=FireBoard400 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) - - pci:v0000104Cd00008000sv00001443sd00008006* -- ID_MODEL_FROM_DATABASE=FireBoard400 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireBoard400) - - pci:v0000104Cd00008000sv0000E4BFsd00001010* -- ID_MODEL_FROM_DATABASE=CF1-1-SNARE -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-1-SNARE) - - pci:v0000104Cd00008000sv0000E4BFsd00001020* -- ID_MODEL_FROM_DATABASE=CF1-2-SNARE -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (CF1-2-SNARE) - - pci:v0000104Cd00008000sv0000E4BFsd00001040* -- ID_MODEL_FROM_DATABASE=FireCompact400 -+ ID_MODEL_FROM_DATABASE=PCILynx/PCILynx2 IEEE 1394 Link Layer Controller (FireCompact400) - - pci:v0000104Cd00008009* - ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller - - pci:v0000104Cd00008009sv0000104Dsd00008032* -- ID_MODEL_FROM_DATABASE=8032 OHCI i.LINK (IEEE 1394) Controller -+ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (8032 OHCI i.LINK (IEEE 1394) Controller) - - pci:v0000104Cd00008009sv00001443sd00008010* -- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI -+ ID_MODEL_FROM_DATABASE=TSB12LV22 IEEE-1394 Controller (FireBoard400-OHCI) - - pci:v0000104Cd00008017* - ID_MODEL_FROM_DATABASE=PCI4410 FireWire Controller -@@ -14571,223 +14571,223 @@ pci:v0000104Cd00008019* - ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller - - pci:v0000104Cd00008019sv000011BDsd0000000A* -- ID_MODEL_FROM_DATABASE=Studio DV500-1394 -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV500-1394) - - pci:v0000104Cd00008019sv000011BDsd0000000E* -- ID_MODEL_FROM_DATABASE=Studio DV -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (Studio DV) - - pci:v0000104Cd00008019sv00001443sd00008010* -- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (FireBoard400-OHCI) - - pci:v0000104Cd00008019sv0000E4BFsd00001010* -- ID_MODEL_FROM_DATABASE=CF2-1-CYMBAL -+ ID_MODEL_FROM_DATABASE=TSB12LV23 IEEE-1394 Controller (CF2-1-CYMBAL) - - pci:v0000104Cd00008020* - ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) - - pci:v0000104Cd00008020sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Precision 530) - - pci:v0000104Cd00008020sv0000104Dsd000080E2* -- ID_MODEL_FROM_DATABASE=VAIO PCV-J200 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (VAIO PCV-J200) - - pci:v0000104Cd00008020sv000011BDsd0000000F* -- ID_MODEL_FROM_DATABASE=Studio DV500-1394 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Studio DV500-1394) - - pci:v0000104Cd00008020sv000011BDsd0000001C* -- ID_MODEL_FROM_DATABASE=Excalibur 4.1 -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (Excalibur 4.1) - - pci:v0000104Cd00008020sv00001443sd00008010* -- ID_MODEL_FROM_DATABASE=FireBoard400-OHCI -+ ID_MODEL_FROM_DATABASE=TSB12LV26 IEEE-1394 Controller (Link) (FireBoard400-OHCI) - - pci:v0000104Cd00008021* - ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) - - pci:v0000104Cd00008021sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (Vaio PCG-FX403) - - pci:v0000104Cd00008021sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v0000104Cd00008022* - ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] - - pci:v0000104Cd00008022sv0000104Csd00008023* -- ID_MODEL_FROM_DATABASE=TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) -+ ID_MODEL_FROM_DATABASE=TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)) - - pci:v0000104Cd00008023* - ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] - - pci:v0000104Cd00008023sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Precision Workstation 670 Mainboard) - - pci:v0000104Cd00008023sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (NC8000 laptop) - - pci:v0000104Cd00008023sv00001043sd0000808B* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (K8N4/A8N Series Mainboard) - - pci:v0000104Cd00008023sv00001043sd0000815B* -- ID_MODEL_FROM_DATABASE=P5W DH Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (P5W DH Deluxe Motherboard) - - pci:v0000104Cd00008023sv00001443sd00008023* -- ID_MODEL_FROM_DATABASE=FireCard400 -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (FireCard400) - - pci:v0000104Cd00008023sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (Desktop Board DP35DP) - - pci:v0000104Cd00008024* - ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) - - pci:v0000104Cd00008024sv0000107Dsd00006620* -- ID_MODEL_FROM_DATABASE=Winfast DV2000 FireWire Controller -+ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Winfast DV2000 FireWire Controller) - - pci:v0000104Cd00008024sv00001443sd00008024* -- ID_MODEL_FROM_DATABASE=FireBoard Blue -+ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (FireBoard Blue) - - pci:v0000104Cd00008024sv00001458sd00001000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (Motherboard) - - pci:v0000104Cd00008025* - ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller - - pci:v0000104Cd00008025sv00001043sd0000813C* -- ID_MODEL_FROM_DATABASE=P5P series mainboard -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (P5P series mainboard) - - pci:v0000104Cd00008025sv00001443sd00008025* -- ID_MODEL_FROM_DATABASE=FireBoard800 -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FireBoard800) - - pci:v0000104Cd00008025sv00001458sd00001000* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GA-K8N Ultra-9 Mainboard) - - pci:v0000104Cd00008025sv00001546sd00008025* -- ID_MODEL_FROM_DATABASE=FWB-PCI01 -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (FWB-PCI01) - - pci:v0000104Cd00008025sv000017FCsd00008025* -- ID_MODEL_FROM_DATABASE=GIC3800 -+ ID_MODEL_FROM_DATABASE=TSB82AA2 IEEE-1394b Link Layer Controller (GIC3800) - - pci:v0000104Cd00008026* - ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) - - pci:v0000104Cd00008026sv00001025sd00000035* -- ID_MODEL_FROM_DATABASE=TravelMate 660 -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (TravelMate 660) - - pci:v0000104Cd00008026sv00001025sd0000003C* -- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compaq CL50 motherboard) -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (Aspire 2001WLCi (Compaq CL50 motherboard)) - - pci:v0000104Cd00008026sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (XE4500 Notebook) - - pci:v0000104Cd00008026sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (NX9500) - - pci:v0000104Cd00008026sv00001043sd0000808D* -- ID_MODEL_FROM_DATABASE=A7V333 mainboard. -+ ID_MODEL_FROM_DATABASE=TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (A7V333 mainboard.) - - pci:v0000104Cd00008027* - ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller - - pci:v0000104Cd00008027sv00001028sd000000E5* -- ID_MODEL_FROM_DATABASE=Latitude C810 -+ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Latitude C810) - - pci:v0000104Cd00008027sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller (Dell Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=PCI4451 IEEE-1394 Controller ((Dell Inspiron 8100)) - - pci:v0000104Cd00008029* - ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller - - pci:v0000104Cd00008029sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Latitude D505) - - pci:v0000104Cd00008029sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (Inspiron 5160) - - pci:v0000104Cd00008029sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2900 -+ ID_MODEL_FROM_DATABASE=PCI4510 IEEE-1394 Controller (MIM2900) - - pci:v0000104Cd0000802B* - ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller - - pci:v0000104Cd0000802Bsv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D400) - - pci:v0000104Cd0000802Bsv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller (Latitude D800) -+ ID_MODEL_FROM_DATABASE=PCI7410,7510,7610 OHCI-Lynx Controller ((Latitude D800)) - - pci:v0000104Cd0000802E* - ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller - - pci:v0000104Cd0000802Esv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller (Inspiron 700m/710m) - - pci:v0000104Cd00008031* - ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller - - pci:v0000104Cd00008031sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008031sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008031sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (NX6110/NC6120) - - pci:v0000104Cd00008031sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=PCIxx21/x515 Cardbus Controller (MX6125) - - pci:v0000104Cd00008032* - ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller - - pci:v0000104Cd00008032sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008032sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008032sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (NX6110/NC6120) - - pci:v0000104Cd00008032sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=OHCI Compliant IEEE 1394 Host Controller (MX6125) - - pci:v0000104Cd00008033* - ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller - - pci:v0000104Cd00008033sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008033sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008033sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (NX6110/NC6120) - - pci:v0000104Cd00008033sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=PCIxx21 Integrated FlashMedia Controller (MX6125) - - pci:v0000104Cd00008034* - ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller - - pci:v0000104Cd00008034sv00001025sd00000080* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Aspire 5024WLMi) - - pci:v0000104Cd00008034sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008034sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (NX6110/NC6120) - - pci:v0000104Cd00008034sv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller (MX6125) - - pci:v0000104Cd00008035* - ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller - - pci:v0000104Cd00008035sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (Compaq nw8240/nx8220) - - pci:v0000104Cd00008035sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=PCI6411/6421/6611/6621/7411/7421/7611/7621 Smart Card Controller (NX6110/NC6120) - - pci:v0000104Cd00008036* - ID_MODEL_FROM_DATABASE=PCI6515 Cardbus Controller -@@ -14799,67 +14799,67 @@ pci:v0000104Cd00008039* - ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller - - pci:v0000104Cd00008039sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nx9420 Notebook) - - pci:v0000104Cd00008039sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (NC2400) - - pci:v0000104Cd00008039sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (Compaq nw8440) - - pci:v0000104Cd00008039sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=PCIxx12 Cardbus Controller (VAIO VGN-NR120E) - - pci:v0000104Cd0000803A* - ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller - - pci:v0000104Cd0000803Asv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=nx9420 -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (nx9420) - - pci:v0000104Cd0000803Asv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (NC2400) - - pci:v0000104Cd0000803Asv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (Compaq nw8440) - - pci:v0000104Cd0000803Asv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=PCIxx12 OHCI Compliant IEEE 1394 Host Controller (VAIO VGN-NR120E) - - pci:v0000104Cd0000803B* - ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) - - pci:v0000104Cd0000803Bsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=nx9420 -+ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (nx9420) - - pci:v0000104Cd0000803Bsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (Compaq nw8440) - - pci:v0000104Cd0000803Bsv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) (VAIO VGN-NR120E) - - pci:v0000104Cd0000803C* - ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller - - pci:v0000104Cd0000803Csv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=nx9420 -+ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (nx9420) - - pci:v0000104Cd0000803Csv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=PCIxx12 SDA Standard Compliant SD Host Controller (Compaq nw8440) - - pci:v0000104Cd0000803D* - ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller - - pci:v0000104Cd0000803Dsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (Compaq nx9420 Notebook) - - pci:v0000104Cd0000803Dsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (NC2400) - - pci:v0000104Cd0000803Dsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=nc8430 -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc8430) - - pci:v0000104Cd0000803Dsv0000103Csd000030AA* -- ID_MODEL_FROM_DATABASE=nc6310 -+ ID_MODEL_FROM_DATABASE=PCIxx12 GemCore based SmartCard controller (nc6310) - - pci:v0000104Cd00008101* - ID_MODEL_FROM_DATABASE=TSB43DB42 IEEE-1394a-2000 Controller (PHY/Link) -@@ -14871,16 +14871,16 @@ pci:v0000104Cd00008204* - ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function - - pci:v0000104Cd00008204sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D400) - - pci:v0000104Cd00008204sv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=Latitude D800 -+ ID_MODEL_FROM_DATABASE=PCI7410/7510/7610 PCI Firmware Loading Function (Latitude D800) - - pci:v0000104Cd00008231* - ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge - - pci:v0000104Cd00008231sv00005678sd00001234* -- ID_MODEL_FROM_DATABASE=DC-1394 PCIe -+ ID_MODEL_FROM_DATABASE=XIO2000(A)/XIO2200A PCI Express-to-PCI Bridge (DC-1394 PCIe) - - pci:v0000104Cd00008232* - ID_MODEL_FROM_DATABASE=XIO3130 PCI Express Switch (Upstream) -@@ -14892,7 +14892,7 @@ pci:v0000104Cd00008235* - ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) - - pci:v0000104Cd00008235sv00005678sd00001234* -- ID_MODEL_FROM_DATABASE=DC-1394 PCIe -+ ID_MODEL_FROM_DATABASE=XIO2200A IEEE-1394a-2000 Controller (PHY/Link) (DC-1394 PCIe) - - pci:v0000104Cd0000823E* - ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] -@@ -14901,7 +14901,7 @@ pci:v0000104Cd0000823F* - ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] - - pci:v0000104Cd0000823Fsv00001546sd0000803C* -- ID_MODEL_FROM_DATABASE=FWB-PCIE1X11B -+ ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (FWB-PCIE1X11B) - - pci:v0000104Cd00008240* - ID_MODEL_FROM_DATABASE=XIO2001 PCI Express-to-PCI Bridge -@@ -14913,16 +14913,16 @@ pci:v0000104Cd00008400* - ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface - - pci:v0000104Cd00008400sv00001186sd00003B00* -- ID_MODEL_FROM_DATABASE=DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus] -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus]) - - pci:v0000104Cd00008400sv00001186sd00003B01* -- ID_MODEL_FROM_DATABASE=DWL-520+ 22Mbps PCI Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (DWL-520+ 22Mbps PCI Wireless Adapter) - - pci:v0000104Cd00008400sv00001395sd00002201* -- ID_MODEL_FROM_DATABASE=WL22-PC -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL22-PC) - - pci:v0000104Cd00008400sv000016ABsd00008501* -- ID_MODEL_FROM_DATABASE=WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface (WL-8305 IEEE802.11b+ Wireless LAN PCI Adapter) - - pci:v0000104Cd00008401* - ID_MODEL_FROM_DATABASE=ACX 100 22Mbps Wireless Interface -@@ -14937,58 +14937,58 @@ pci:v0000104Cd00009066* - ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface - - pci:v0000104Cd00009066sv00000308sd00003404* -- ID_MODEL_FROM_DATABASE=G-102 v1 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-102 v1 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv00000308sd00003406* -- ID_MODEL_FROM_DATABASE=G-162 v2 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v2 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv0000104Csd00009066* -- ID_MODEL_FROM_DATABASE=WL212 Sitecom Wireless Network PCI-Card 100M (Version 1) -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WL212 Sitecom Wireless Network PCI-Card 100M (Version 1)) - - pci:v0000104Cd00009066sv0000104Csd00009067* -- ID_MODEL_FROM_DATABASE=TNETW1130GVF -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (TNETW1130GVF) - - pci:v0000104Cd00009066sv0000104Csd00009096* -- ID_MODEL_FROM_DATABASE=Trendnet TEW-412PC Wireless PCI Adapter (Version A) -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Trendnet TEW-412PC Wireless PCI Adapter (Version A)) - - pci:v0000104Cd00009066sv00001186sd00003B04* -- ID_MODEL_FROM_DATABASE=DWL-G520+ Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G520+ Wireless PCI Adapter) - - pci:v0000104Cd00009066sv00001186sd00003B05* -- ID_MODEL_FROM_DATABASE=DWL-G650+ AirPlusG+ CardBus Wireless LAN -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (DWL-G650+ AirPlusG+ CardBus Wireless LAN) - - pci:v0000104Cd00009066sv00001186sd00003B08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1) -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.B1)) - - pci:v0000104Cd00009066sv00001385sd00004C00* -- ID_MODEL_FROM_DATABASE=WG311v2 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WG311v2 802.11g Wireless PCI Adapter) - - pci:v0000104Cd00009066sv000013D1sd0000ABA0* -- ID_MODEL_FROM_DATABASE=SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+ -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (SWLMP-54108 108Mbps Wireless mini PCI card 802.11g+) - - pci:v0000104Cd00009066sv000014EAsd0000AB07* -- ID_MODEL_FROM_DATABASE=GW-NS54GM Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (GW-NS54GM Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv000016ECsd0000010D* -- ID_MODEL_FROM_DATABASE=USR5416 802.11g Wireless Turbo PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5416 802.11g Wireless Turbo PCI Adapter) - - pci:v0000104Cd00009066sv000016ECsd0000010E* -- ID_MODEL_FROM_DATABASE=USR5410 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (USR5410 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv00001737sd00000033* -- ID_MODEL_FROM_DATABASE=WPC54G v2 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (WPC54G v2 802.11g Wireless-G Notebook Adapter) - - pci:v0000104Cd00009066sv000017CFsd00000032* -- ID_MODEL_FROM_DATABASE=G-162 v1 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-162 v1 802.11g Wireless Cardbus Adapter) - - pci:v0000104Cd00009066sv000017CFsd00000033* -- ID_MODEL_FROM_DATABASE=Z-Com XG650 Wireless miniPCI 802.11b/g -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (Z-Com XG650 Wireless miniPCI 802.11b/g) - - pci:v0000104Cd00009066sv0000187Esd0000340B* -- ID_MODEL_FROM_DATABASE=G-302 v2 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-302 v2 802.11g Wireless PCI Adapter) - - pci:v0000104Cd00009066sv0000187Esd0000340C* -- ID_MODEL_FROM_DATABASE=G-360 v2 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ACX 111 54Mbps Wireless Interface (G-360 v2 802.11g Wireless PCI Adapter) - - pci:v0000104Cd0000A001* - ID_MODEL_FROM_DATABASE=TDC1570 -@@ -15003,13 +15003,13 @@ pci:v0000104Cd0000A106* - ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 - - pci:v0000104Cd0000A106sv0000175Csd00005000* -- ID_MODEL_FROM_DATABASE=ASI50xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI50xx Audio Adapter) - - pci:v0000104Cd0000A106sv0000175Csd00006400* -- ID_MODEL_FROM_DATABASE=ASI6400 Cobranet series -+ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI6400 Cobranet series) - - pci:v0000104Cd0000A106sv0000175Csd00008700* -- ID_MODEL_FROM_DATABASE=ASI87xx Radio Tuner card -+ ID_MODEL_FROM_DATABASE=TMS320C6414 TMS320C6415 TMS320C6416 (ASI87xx Radio Tuner card) - - pci:v0000104Cd0000AC10* - ID_MODEL_FROM_DATABASE=PCI1050 -@@ -15030,7 +15030,7 @@ pci:v0000104Cd0000AC16* - ID_MODEL_FROM_DATABASE=PCI1250 - - pci:v0000104Cd0000AC16sv00001014sd00000092* -- ID_MODEL_FROM_DATABASE=ThinkPad 600 -+ ID_MODEL_FROM_DATABASE=PCI1250 (ThinkPad 600) - - pci:v0000104Cd0000AC17* - ID_MODEL_FROM_DATABASE=PCI1220 -@@ -15048,19 +15048,19 @@ pci:v0000104Cd0000AC1B* - ID_MODEL_FROM_DATABASE=PCI1450 - - pci:v0000104Cd0000AC1Bsv00000E11sd0000B113* -- ID_MODEL_FROM_DATABASE=Armada M700 -+ ID_MODEL_FROM_DATABASE=PCI1450 (Armada M700) - - pci:v0000104Cd0000AC1Bsv00001014sd00000130* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X/A21m/T20/T22 -+ ID_MODEL_FROM_DATABASE=PCI1450 (ThinkPad 600X/A21m/T20/T22) - - pci:v0000104Cd0000AC1C* - ID_MODEL_FROM_DATABASE=PCI1225 - - pci:v0000104Cd0000AC1Csv00000E11sd0000B121* -- ID_MODEL_FROM_DATABASE=Armada E500 -+ ID_MODEL_FROM_DATABASE=PCI1225 (Armada E500) - - pci:v0000104Cd0000AC1Csv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=Latitude CPi A400XT -+ ID_MODEL_FROM_DATABASE=PCI1225 (Latitude CPi A400XT) - - pci:v0000104Cd0000AC1D* - ID_MODEL_FROM_DATABASE=PCI1251A -@@ -15102,40 +15102,40 @@ pci:v0000104Cd0000AC42* - ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller - - pci:v0000104Cd0000AC42sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=PCI4451 PC card CardBus Controller (Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=PCI4451 PC card Cardbus Controller (PCI4451 PC card CardBus Controller (Inspiron 8100)) - - pci:v0000104Cd0000AC44* - ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller - - pci:v0000104Cd0000AC44sv00001028sd00000149* -- ID_MODEL_FROM_DATABASE=Inspiron 5100 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5100) - - pci:v0000104Cd0000AC44sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Latitude D505) - - pci:v0000104Cd0000AC44sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (Inspiron 5160) - - pci:v0000104Cd0000AC44sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=PCI4510 PC card Cardbus Controller (MIM2000) - - pci:v0000104Cd0000AC46* - ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller - - pci:v0000104Cd0000AC46sv00001014sd00000552* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=PCI4520 PC card Cardbus Controller (ThinkPad) - - pci:v0000104Cd0000AC47* - ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller - - pci:v0000104Cd0000AC47sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D400) - - pci:v0000104Cd0000AC47sv00001028sd0000013F* -- ID_MODEL_FROM_DATABASE=Precision M60 -+ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Precision M60) - - pci:v0000104Cd0000AC47sv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=Latitude D800 -+ ID_MODEL_FROM_DATABASE=PCI7510 PC card Cardbus Controller (Latitude D800) - - pci:v0000104Cd0000AC48* - ID_MODEL_FROM_DATABASE=PCI7610 PC Card Cardbus Controller -@@ -15147,10 +15147,10 @@ pci:v0000104Cd0000AC4A* - ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge - - pci:v0000104Cd0000AC4Asv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D400) - - pci:v0000104Cd0000AC4Asv00001028sd0000014E* -- ID_MODEL_FROM_DATABASE=Latitude D800 -+ ID_MODEL_FROM_DATABASE=PCI7510/7610 CardBus Bridge (Latitude D800) - - pci:v0000104Cd0000AC4B* - ID_MODEL_FROM_DATABASE=PCI7610 SD/MMC controller -@@ -15165,28 +15165,28 @@ pci:v0000104Cd0000AC51* - ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller - - pci:v0000104Cd0000AC51sv00000E11sd0000004E* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Evo N600c) - - pci:v0000104Cd0000AC51sv00001014sd00000148* -- ID_MODEL_FROM_DATABASE=ThinkPad A20m -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad A20m) - - pci:v0000104Cd0000AC51sv00001014sd0000023B* -- ID_MODEL_FROM_DATABASE=ThinkPad T23 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (ThinkPad T23) - - pci:v0000104Cd0000AC51sv00001028sd000000B1* -- ID_MODEL_FROM_DATABASE=Latitude C600 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C600) - - pci:v0000104Cd0000AC51sv00001028sd0000012A* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Latitude C640) - - pci:v0000104Cd0000AC51sv00001033sd000080CD* -- ID_MODEL_FROM_DATABASE=Versa Note VXi -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Versa Note VXi) - - pci:v0000104Cd0000AC51sv000010CFsd00001095* -- ID_MODEL_FROM_DATABASE=Lifebook S-4510/C6155 -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (Lifebook S-4510/C6155) - - pci:v0000104Cd0000AC51sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CP2-2-HIPHOP -+ ID_MODEL_FROM_DATABASE=PCI1420 PC card Cardbus Controller (CP2-2-HIPHOP) - - pci:v0000104Cd0000AC52* - ID_MODEL_FROM_DATABASE=PCI1451 PC card Cardbus Controller -@@ -15198,55 +15198,55 @@ pci:v0000104Cd0000AC54* - ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller - - pci:v0000104Cd0000AC54sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=PCI1620 PC Card Controller (tc1100 tablet) - - pci:v0000104Cd0000AC55* - ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller - - pci:v0000104Cd0000AC55sv00001014sd00000512* -- ID_MODEL_FROM_DATABASE=ThinkPad T30/T40 -+ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (ThinkPad T30/T40) - - pci:v0000104Cd0000AC55sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=PCI1520 PC card Cardbus Controller (XE4500 Notebook) - - pci:v0000104Cd0000AC56* - ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller - - pci:v0000104Cd0000AC56sv00001014sd00000512* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R50e) - - pci:v0000104Cd0000AC56sv00001014sd00000528* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad R40e) - - pci:v0000104Cd0000AC56sv000017AAsd00002012* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60 series -+ ID_MODEL_FROM_DATABASE=PCI1510 PC card Cardbus Controller (ThinkPad T60/R60 series) - - pci:v0000104Cd0000AC60* - ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller - - pci:v0000104Cd0000AC60sv0000175Csd00005100* -- ID_MODEL_FROM_DATABASE=ASI51xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI51xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000175Csd00006100* -- ID_MODEL_FROM_DATABASE=ASI61xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI61xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000175Csd00006200* -- ID_MODEL_FROM_DATABASE=ASI62xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI62xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000175Csd00008800* -- ID_MODEL_FROM_DATABASE=ASI88xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (ASI88xx Audio Adapter) - - pci:v0000104Cd0000AC60sv0000186Fsd00003001* -- ID_MODEL_FROM_DATABASE=WR-G303 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G303 PCI radio receiver) - - pci:v0000104Cd0000AC60sv0000186Fsd00003005* -- ID_MODEL_FROM_DATABASE=WR-G305 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G305 PCI radio receiver) - - pci:v0000104Cd0000AC60sv0000186Fsd00003101* -- ID_MODEL_FROM_DATABASE=WR-G313 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G313 PCI radio receiver) - - pci:v0000104Cd0000AC60sv0000186Fsd00003105* -- ID_MODEL_FROM_DATABASE=WR-G315 PCI radio receiver -+ ID_MODEL_FROM_DATABASE=PCI2040 PCI to DSP Bridge Controller (WR-G315 PCI radio receiver) - - pci:v0000104Cd0000AC8D* - ID_MODEL_FROM_DATABASE=PCI 7620 -@@ -15255,13 +15255,13 @@ pci:v0000104Cd0000AC8E* - ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller - - pci:v0000104Cd0000AC8Esv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=PCI7420 CardBus Controller (Inspiron 700m/710m) - - pci:v0000104Cd0000AC8F* - ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller - - pci:v0000104Cd0000AC8Fsv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=PCI7420/7620 SD/MS-Pro Controller (Inspiron 700m/710m) - - pci:v0000104Cd0000B001* - ID_MODEL_FROM_DATABASE=TMS320C6424 -@@ -15336,10 +15336,10 @@ pci:v00001050d00000840* - ID_MODEL_FROM_DATABASE=W89C840 - - pci:v00001050d00000840sv00001050sd00000001* -- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) - - pci:v00001050d00000840sv00001050sd00000840* -- ID_MODEL_FROM_DATABASE=W89C840 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=W89C840 (Ethernet Adapter) - - pci:v00001050d00000940* - ID_MODEL_FROM_DATABASE=W89C940 -@@ -15351,22 +15351,22 @@ pci:v00001050d00006692* - ID_MODEL_FROM_DATABASE=W6692 - - pci:v00001050d00006692sv00001043sd00001702* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) - - pci:v00001050d00006692sv00001043sd00001703* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00006692sv00001043sd00001707* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00006692sv0000144Fsd00001702* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, D, W)) - - pci:v00001050d00006692sv0000144Fsd00001703* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00006692sv0000144Fsd00001707* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, DV, W) -+ ID_MODEL_FROM_DATABASE=W6692 (ISDN Adapter (PCI Bus, DV, W)) - - pci:v00001050d00009921* - ID_MODEL_FROM_DATABASE=W99200F MPEG-1 Video Encoder -@@ -15501,76 +15501,76 @@ pci:v00001057d00001801* - ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor - - pci:v00001057d00001801sv000014FBsd00000101* -- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM]) - - pci:v00001057d00001801sv000014FBsd00000102* -- ID_MODEL_FROM_DATABASE=Transas Radar Imitator Board [RIM-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Imitator Board [RIM-2]) - - pci:v00001057d00001801sv000014FBsd00000202* -- ID_MODEL_FROM_DATABASE=Transas Radar Integrator Board [RIB-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas Radar Integrator Board [RIB-2]) - - pci:v00001057d00001801sv000014FBsd00000611* -- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci-1] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci-1]) - - pci:v00001057d00001801sv000014FBsd00000612* -- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci-2]) - - pci:v00001057d00001801sv000014FBsd00000613* -- ID_MODEL_FROM_DATABASE=3 channels CAN bus Controller [CanPci-3] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (3 channels CAN bus Controller [CanPci-3]) - - pci:v00001057d00001801sv000014FBsd00000614* -- ID_MODEL_FROM_DATABASE=4 channels CAN bus Controller [CanPci-4] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (4 channels CAN bus Controller [CanPci-4]) - - pci:v00001057d00001801sv000014FBsd00000621* -- ID_MODEL_FROM_DATABASE=1 channel CAN bus Controller [CanPci2-1] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (1 channel CAN bus Controller [CanPci2-1]) - - pci:v00001057d00001801sv000014FBsd00000622* -- ID_MODEL_FROM_DATABASE=2 channels CAN bus Controller [CanPci2-2] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (2 channels CAN bus Controller [CanPci2-2]) - - pci:v00001057d00001801sv000014FBsd00000810* -- ID_MODEL_FROM_DATABASE=Transas VTS Radar Integrator Board [RIB-4] -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Transas VTS Radar Integrator Board [RIB-4]) - - pci:v00001057d00001801sv0000175Csd00004200* -- ID_MODEL_FROM_DATABASE=ASI4215 Audio Adapter -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4215 Audio Adapter) - - pci:v00001057d00001801sv0000175Csd00004300* -- ID_MODEL_FROM_DATABASE=ASI43xx Audio Adapter -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI43xx Audio Adapter) - - pci:v00001057d00001801sv0000175Csd00004400* -- ID_MODEL_FROM_DATABASE=ASI4401 Audio Adapter -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (ASI4401 Audio Adapter) - - pci:v00001057d00001801sv0000ECC0sd00000010* -- ID_MODEL_FROM_DATABASE=Darla -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla) - - pci:v00001057d00001801sv0000ECC0sd00000020* -- ID_MODEL_FROM_DATABASE=Gina -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina) - - pci:v00001057d00001801sv0000ECC0sd00000030* -- ID_MODEL_FROM_DATABASE=Layla rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000031* -- ID_MODEL_FROM_DATABASE=Layla rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Layla rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000040* -- ID_MODEL_FROM_DATABASE=Darla24 rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000041* -- ID_MODEL_FROM_DATABASE=Darla24 rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Darla24 rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000050* -- ID_MODEL_FROM_DATABASE=Gina24 rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000051* -- ID_MODEL_FROM_DATABASE=Gina24 rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Gina24 rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000070* -- ID_MODEL_FROM_DATABASE=Mona rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.0) - - pci:v00001057d00001801sv0000ECC0sd00000071* -- ID_MODEL_FROM_DATABASE=Mona rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.1) - - pci:v00001057d00001801sv0000ECC0sd00000072* -- ID_MODEL_FROM_DATABASE=Mona rev.2 -+ ID_MODEL_FROM_DATABASE=DSP56301 Digital Signal Processor (Mona rev.2) - - pci:v00001057d000018C0* - ID_MODEL_FROM_DATABASE=MPC8265A/8266/8272 -@@ -15585,40 +15585,40 @@ pci:v00001057d00003410* - ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor - - pci:v00001057d00003410sv0000ECC0sd00000050* -- ID_MODEL_FROM_DATABASE=Gina24 rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.0) - - pci:v00001057d00003410sv0000ECC0sd00000051* -- ID_MODEL_FROM_DATABASE=Gina24 rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Gina24 rev.1) - - pci:v00001057d00003410sv0000ECC0sd00000060* -- ID_MODEL_FROM_DATABASE=Layla24 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Layla24) - - pci:v00001057d00003410sv0000ECC0sd00000070* -- ID_MODEL_FROM_DATABASE=Mona rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.0) - - pci:v00001057d00003410sv0000ECC0sd00000071* -- ID_MODEL_FROM_DATABASE=Mona rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.1) - - pci:v00001057d00003410sv0000ECC0sd00000072* -- ID_MODEL_FROM_DATABASE=Mona rev.2 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mona rev.2) - - pci:v00001057d00003410sv0000ECC0sd00000080* -- ID_MODEL_FROM_DATABASE=Mia rev.0 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.0) - - pci:v00001057d00003410sv0000ECC0sd00000081* -- ID_MODEL_FROM_DATABASE=Mia rev.1 -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Mia rev.1) - - pci:v00001057d00003410sv0000ECC0sd00000090* -- ID_MODEL_FROM_DATABASE=Indigo -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo) - - pci:v00001057d00003410sv0000ECC0sd000000A0* -- ID_MODEL_FROM_DATABASE=Indigo IO -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo IO) - - pci:v00001057d00003410sv0000ECC0sd000000B0* -- ID_MODEL_FROM_DATABASE=Indigo DJ -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (Indigo DJ) - - pci:v00001057d00003410sv0000ECC0sd00000100* -- ID_MODEL_FROM_DATABASE=3G -+ ID_MODEL_FROM_DATABASE=DSP56361 Digital Signal Processor (3G) - - pci:v00001057d00004801* - ID_MODEL_FROM_DATABASE=Raven -@@ -15639,55 +15639,55 @@ pci:v00001057d00005600* - ID_MODEL_FROM_DATABASE=SM56 PCI Modem - - pci:v00001057d00005600sv00001057sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001057sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice Modem) - - pci:v00001057d00005600sv00001057sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001057sd00005600* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv000013D2sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv000013D2sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv000013D2sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001436sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001436sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv00001436sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv0000144Fsd0000100C* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001494sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001494sd00000301* -- ID_MODEL_FROM_DATABASE=SM56 PCI Voice modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Voice modem) - - pci:v00001057d00005600sv000014C8sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv000014C8sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005600sv00001668sd00000300* -- ID_MODEL_FROM_DATABASE=SM56 PCI Speakerphone Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Speakerphone Modem) - - pci:v00001057d00005600sv00001668sd00000302* -- ID_MODEL_FROM_DATABASE=SM56 PCI Fax Modem -+ ID_MODEL_FROM_DATABASE=SM56 PCI Modem (SM56 PCI Fax Modem) - - pci:v00001057d00005608* - ID_MODEL_FROM_DATABASE=Wildcard X100P -@@ -15723,16 +15723,16 @@ pci:v0000105Ad00000D30* - ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) - - pci:v0000105Ad00000D30sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=AV7266-E South Bridge Promise RAID -+ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (AV7266-E South Bridge Promise RAID) - - pci:v0000105Ad00000D30sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=Ultra100 -+ ID_MODEL_FROM_DATABASE=PDC20265 (FastTrak100 Lite/Ultra100) (Ultra100) - - pci:v0000105Ad00000D38* - ID_MODEL_FROM_DATABASE=20263 - - pci:v0000105Ad00000D38sv0000105Asd00004D39* -- ID_MODEL_FROM_DATABASE=Fasttrak66 -+ ID_MODEL_FROM_DATABASE=20263 (Fasttrak66) - - pci:v0000105Ad00001275* - ID_MODEL_FROM_DATABASE=20275 -@@ -15744,10 +15744,10 @@ pci:v0000105Ad00003319* - ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) - - pci:v0000105Ad00003319sv0000105Asd00003319* -- ID_MODEL_FROM_DATABASE=FastTrak S150 TX4 4 port SATA PCI board -+ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (FastTrak S150 TX4 4 port SATA PCI board) - - pci:v0000105Ad00003319sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=PDC20319 (FastTrak S150 TX4) (S875WP1-E mainboard) - - pci:v0000105Ad00003371* - ID_MODEL_FROM_DATABASE=PDC20371 (FastTrak S150 TX2plus) -@@ -15756,13 +15756,13 @@ pci:v0000105Ad00003373* - ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) - - pci:v0000105Ad00003373sv00001043sd000080F5* -- ID_MODEL_FROM_DATABASE=K8V Deluxe/PC-DL Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8V Deluxe/PC-DL Deluxe motherboard) - - pci:v0000105Ad00003373sv00001462sd0000590D* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (KT6 Delta-FIS2R (MS-6590)) - - pci:v0000105Ad00003373sv00001462sd0000702E* -- ID_MODEL_FROM_DATABASE=K8T NEO FIS2R motherboard -+ ID_MODEL_FROM_DATABASE=PDC20378 (FastTrak 378/SATA 378) (K8T NEO FIS2R motherboard) - - pci:v0000105Ad00003375* - ID_MODEL_FROM_DATABASE=PDC20375 (SATA150 TX2plus) -@@ -15771,7 +15771,7 @@ pci:v0000105Ad00003376* - ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) - - pci:v0000105Ad00003376sv00001043sd0000809E* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=PDC20376 (FastTrak 376) (A7V8X motherboard) - - pci:v0000105Ad00003515* - ID_MODEL_FROM_DATABASE=PDC40719 [FastTrak TX4300/TX4310] -@@ -15813,58 +15813,58 @@ pci:v0000105Ad00004D30* - ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) - - pci:v0000105Ad00004D30sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=Ultra100 -+ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (Ultra100) - - pci:v0000105Ad00004D30sv0000105Asd00004D39* -- ID_MODEL_FROM_DATABASE=FastTrak100 -+ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (FastTrak100) - - pci:v0000105Ad00004D30sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=PDC20267 (FastTrak100/Ultra100) (S845WD1-E mainboard) - - pci:v0000105Ad00004D33* - ID_MODEL_FROM_DATABASE=20246 - - pci:v0000105Ad00004D33sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=20246 IDE Controller -+ ID_MODEL_FROM_DATABASE=20246 (IDE Controller) - - pci:v0000105Ad00004D38* - ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) - - pci:v0000105Ad00004D38sv0000105Asd00004D30* -- ID_MODEL_FROM_DATABASE=Ultra Device on SuperTrak -+ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra Device on SuperTrak) - - pci:v0000105Ad00004D38sv0000105Asd00004D33* -- ID_MODEL_FROM_DATABASE=Ultra66 -+ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (Ultra66) - - pci:v0000105Ad00004D38sv0000105Asd00004D39* -- ID_MODEL_FROM_DATABASE=FastTrak66 -+ ID_MODEL_FROM_DATABASE=PDC20262 (FastTrak66/Ultra66) (FastTrak66) - - pci:v0000105Ad00004D68* - ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] - - pci:v0000105Ad00004D68sv0000105Asd00004D68* -- ID_MODEL_FROM_DATABASE=Ultra100 TX2 -+ ID_MODEL_FROM_DATABASE=PDC20268 [Ultra100 TX2] (Ultra100 TX2) - - pci:v0000105Ad00004D69* - ID_MODEL_FROM_DATABASE=20269 - - pci:v0000105Ad00004D69sv0000105Asd00004D68* -- ID_MODEL_FROM_DATABASE=Ultra133TX2 -+ ID_MODEL_FROM_DATABASE=20269 (Ultra133TX2) - - pci:v0000105Ad00005275* - ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) - - pci:v0000105Ad00005275sv00001043sd0000807E* -- ID_MODEL_FROM_DATABASE=A7V333 motherboard. -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (A7V333 motherboard.) - - pci:v0000105Ad00005275sv0000105Asd00000275* -- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 IDE -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (SuperTrak SX6000 IDE) - - pci:v0000105Ad00005275sv0000105Asd00001275* -- ID_MODEL_FROM_DATABASE=MBFastTrak133 Lite (tm) Controller (RAID mode) -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBFastTrak133 Lite (tm) Controller (RAID mode)) - - pci:v0000105Ad00005275sv00001458sd0000B001* -- ID_MODEL_FROM_DATABASE=MBUltra 133 -+ ID_MODEL_FROM_DATABASE=PDC20276 (MBFastTrak133 Lite) (MBUltra 133) - - pci:v0000105Ad00005300* - ID_MODEL_FROM_DATABASE=DC5300 -@@ -15873,13 +15873,13 @@ pci:v0000105Ad00006268* - ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) - - pci:v0000105Ad00006268sv0000105Asd00004D68* -- ID_MODEL_FROM_DATABASE=FastTrak100 TX2 -+ ID_MODEL_FROM_DATABASE=PDC20270 (FastTrak100 LP/TX2/TX4) (FastTrak100 TX2) - - pci:v0000105Ad00006269* - ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) - - pci:v0000105Ad00006269sv0000105Asd00006269* -- ID_MODEL_FROM_DATABASE=FastTrak TX2/TX2000 -+ ID_MODEL_FROM_DATABASE=PDC20271 (FastTrak TX2000) (FastTrak TX2/TX2000) - - pci:v0000105Ad00006300* - ID_MODEL_FROM_DATABASE=PDC81731 [FastTrak SX8300] -@@ -15912,43 +15912,43 @@ pci:v0000105Ad00008650* - ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] - - pci:v0000105Ad00008650sv0000105Asd00004600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX4650A -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650A) - - pci:v0000105Ad00008650sv0000105Asd00004601* -- ID_MODEL_FROM_DATABASE=SuperTrak EX4650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650) - - pci:v0000105Ad00008650sv0000105Asd00004610* -- ID_MODEL_FROM_DATABASE=SuperTrak EX4650EL -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX4650EL) - - pci:v0000105Ad00008650sv0000105Asd00008600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650EL -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650EL) - - pci:v0000105Ad00008650sv0000105Asd00008601* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650A -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650A) - - pci:v0000105Ad00008650sv0000105Asd00008602* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8654 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8654) - - pci:v0000105Ad00008650sv0000105Asd00008603* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8658 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8658) - - pci:v0000105Ad00008650sv0000105Asd00008604* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650) - - pci:v0000105Ad00008650sv0000105Asd00008610* -- ID_MODEL_FROM_DATABASE=SuperTrak EX8650M -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX8650M) - - pci:v0000105Ad00008650sv0000105Asd0000A600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX12650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX12650) - - pci:v0000105Ad00008650sv0000105Asd0000B600* -- ID_MODEL_FROM_DATABASE=SuperTrak EX16650 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16650) - - pci:v0000105Ad00008650sv0000105Asd0000B601* -- ID_MODEL_FROM_DATABASE=SuperTrak EX16654 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16654) - - pci:v0000105Ad00008650sv0000105Asd0000B602* -- ID_MODEL_FROM_DATABASE=SuperTrak EX16658 -+ ID_MODEL_FROM_DATABASE=81384 [SuperTrak EX SAS and SATA RAID Controller] (SuperTrak EX16658) - - pci:v0000105Ad00008760* - ID_MODEL_FROM_DATABASE=PM8010 [SuperTrak EX SAS and SATA 6G RAID Controller] -@@ -15975,106 +15975,106 @@ pci:v0000105Dd00002339* - ID_MODEL_FROM_DATABASE=Imagine 128-II - - pci:v0000105Dd00002339sv0000105Dsd00000000* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000001* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000002* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000003* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000004* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000005* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000006* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000007* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 4Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 4Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000008* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) - - pci:v0000105Dd00002339sv0000105Dsd00000009* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2e 4Mb DRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2e 4Mb DRAM) - - pci:v0000105Dd00002339sv0000105Dsd0000000A* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb VRAM) - - pci:v0000105Dd00002339sv0000105Dsd0000000B* -- ID_MODEL_FROM_DATABASE=Imagine 128 series 2 8Mb H-VRAM -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Imagine 128 series 2 8Mb H-VRAM) - - pci:v0000105Dd00002339sv000011A4sd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000000* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000004* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000005* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000006* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000008* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd00000009* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd00002339sv000013CCsd0000000C* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel -+ ID_MODEL_FROM_DATABASE=Imagine 128-II (Barco Metheus 5 Megapixel) - - pci:v0000105Dd0000493D* - ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] - - pci:v0000105Dd0000493Dsv000011A4sd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000011A4sd0000000B* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000002* -- ID_MODEL_FROM_DATABASE=Barco Metheus 4 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 4 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000003* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000007* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000008* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd00000009* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd0000493Dsv000013CCsd0000000A* -- ID_MODEL_FROM_DATABASE=Barco Metheus 5 Megapixel, Dual Head -+ ID_MODEL_FROM_DATABASE=Imagine 128 T2R [Ticket to Ride] (Barco Metheus 5 Megapixel, Dual Head) - - pci:v0000105Dd00005348* - ID_MODEL_FROM_DATABASE=Revolution 4 - - pci:v0000105Dd00005348sv0000105Dsd00000037* -- ID_MODEL_FROM_DATABASE=Revolution IV-FP AGP (For SGI 1600SW) -+ ID_MODEL_FROM_DATABASE=Revolution 4 (Revolution IV-FP AGP (For SGI 1600SW)) - - pci:v0000105Dd00005348sv000011A4sd00000028* -- ID_MODEL_FROM_DATABASE=PVS5600M -+ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600M) - - pci:v0000105Dd00005348sv000011A4sd00000038* -- ID_MODEL_FROM_DATABASE=PVS5600D -+ ID_MODEL_FROM_DATABASE=Revolution 4 (PVS5600D) - - pci:v0000105E* - ID_VENDOR_FROM_DATABASE=Vtech Computers Ltd -@@ -16236,43 +16236,43 @@ pci:v00001069d00000050* - ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device - - pci:v00001069d00000050sv00001069sd00000050* -- ID_MODEL_FROM_DATABASE=AcceleRAID 352 support Device -+ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 352 support Device) - - pci:v00001069d00000050sv00001069sd00000052* -- ID_MODEL_FROM_DATABASE=AcceleRAID 170 support Device -+ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 170 support Device) - - pci:v00001069d00000050sv00001069sd00000054* -- ID_MODEL_FROM_DATABASE=AcceleRAID 160 support Device -+ ID_MODEL_FROM_DATABASE=AcceleRAID 352/170/160 support Device (AcceleRAID 160 support Device) - - pci:v00001069d0000B166* - ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device - - pci:v00001069d0000B166sv00001014sd00000242* -- ID_MODEL_FROM_DATABASE=iSeries 2872 DASD IOA -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (iSeries 2872 DASD IOA) - - pci:v00001069d0000B166sv00001014sd00000266* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) - - pci:v00001069d0000B166sv00001014sd00000278* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) - - pci:v00001069d0000B166sv00001014sd000002D3* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI Adapter) - - pci:v00001069d0000B166sv00001014sd000002D4* -- ID_MODEL_FROM_DATABASE=Dual Channel PCI-X U320 SCSI RAID Adapter -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (Dual Channel PCI-X U320 SCSI RAID Adapter) - - pci:v00001069d0000B166sv00001069sd00000200* -- ID_MODEL_FROM_DATABASE=AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 400, Single Channel, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000B166sv00001069sd00000202* -- ID_MODEL_FROM_DATABASE=AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID Sapphire, Dual Channel, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000B166sv00001069sd00000204* -- ID_MODEL_FROM_DATABASE=AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 500, Dual Channel, Low-Profile, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000B166sv00001069sd00000206* -- ID_MODEL_FROM_DATABASE=AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID -+ ID_MODEL_FROM_DATABASE=AcceleRAID 600/500/400/Sapphire support Device (AcceleRAID 600, Dual Channel, PCI-X, U320, SCSI RAID) - - pci:v00001069d0000BA55* - ID_MODEL_FROM_DATABASE=eXtremeRAID 1100 support Device -@@ -16281,16 +16281,16 @@ pci:v00001069d0000BA56* - ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device - - pci:v00001069d0000BA56sv00001069sd00000030* -- ID_MODEL_FROM_DATABASE=eXtremeRAID 3000 support Device -+ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 3000 support Device) - - pci:v00001069d0000BA56sv00001069sd00000040* -- ID_MODEL_FROM_DATABASE=eXtremeRAID 2000 support Device -+ ID_MODEL_FROM_DATABASE=eXtremeRAID 2000/3000 support Device (eXtremeRAID 2000 support Device) - - pci:v00001069d0000BA57* - ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device - - pci:v00001069d0000BA57sv00001069sd00000072* -- ID_MODEL_FROM_DATABASE=eXtremeRAID 5000 support Device -+ ID_MODEL_FROM_DATABASE=eXtremeRAID 4000/5000 support Device (eXtremeRAID 5000 support Device) - - pci:v0000106A* - ID_VENDOR_FROM_DATABASE=Aten Research Inc -@@ -16380,7 +16380,7 @@ pci:v0000106Bd00000031* - ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire - - pci:v0000106Bd00000031sv0000106Bsd00005811* -- ID_MODEL_FROM_DATABASE=iBook G4 2004 -+ ID_MODEL_FROM_DATABASE=UniNorth 2 FireWire (iBook G4 2004) - - pci:v0000106Bd00000032* - ID_MODEL_FROM_DATABASE=UniNorth 2 GMAC (Sun GEM) -@@ -16407,7 +16407,7 @@ pci:v0000106Bd0000003F* - ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB - - pci:v0000106Bd0000003Fsv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB (QEMU Virtual Machine) - - pci:v0000106Bd00000040* - ID_MODEL_FROM_DATABASE=K2 KeyLargo USB -@@ -16563,13 +16563,13 @@ pci:v00001073d00000004* - ID_MODEL_FROM_DATABASE=YMF-724 - - pci:v00001073d00000004sv00001073sd00000004* -- ID_MODEL_FROM_DATABASE=YMF724-Based PCI Audio Adapter -+ ID_MODEL_FROM_DATABASE=YMF-724 (YMF724-Based PCI Audio Adapter) - - pci:v00001073d00000005* - ID_MODEL_FROM_DATABASE=DS1 Audio - - pci:v00001073d00000005sv00001073sd00000005* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d00000006* - ID_MODEL_FROM_DATABASE=DS1 Audio -@@ -16578,46 +16578,46 @@ pci:v00001073d00000008* - ID_MODEL_FROM_DATABASE=DS1 Audio - - pci:v00001073d00000008sv00001073sd00000008* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1 Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000A* - ID_MODEL_FROM_DATABASE=DS1L Audio - - pci:v00001073d0000000Asv00001073sd00000004* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000Asv00001073sd0000000A* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000Asv00008086sd00004D55* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC [Intel MU440EX] -+ ID_MODEL_FROM_DATABASE=DS1L Audio (DS-XG PCI Audio CODEC [Intel MU440EX]) - - pci:v00001073d0000000C* - ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] - - pci:v00001073d0000000Csv0000107Asd0000000C* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-740C [DS-1L Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d0000000D* - ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] - - pci:v00001073d0000000Dsv00001073sd0000000D* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-724F [DS-1 Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d00000010* - ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] - - pci:v00001073d00000010sv00001073sd00000006* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d00000010sv00001073sd00000010* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio CODEC -+ ID_MODEL_FROM_DATABASE=YMF-744B [DS-1S Audio Controller] (DS-XG PCI Audio CODEC) - - pci:v00001073d00000012* - ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] - - pci:v00001073d00000012sv00001073sd00000012* -- ID_MODEL_FROM_DATABASE=DS-XG PCI Audio Codec -+ ID_MODEL_FROM_DATABASE=YMF-754 [DS-1E Audio Controller] (DS-XG PCI Audio Codec) - - pci:v00001073d00000020* - ID_MODEL_FROM_DATABASE=DS-1 Audio -@@ -16662,10 +16662,10 @@ pci:v00001077d00001216* - ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor - - pci:v00001077d00001216sv0000101Esd00008471* -- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID -+ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) - - pci:v00001077d00001216sv0000101Esd00008493* -- ID_MODEL_FROM_DATABASE=QLA12160 on AMI MegaRAID -+ ID_MODEL_FROM_DATABASE=ISP12160 Dual Channel Ultra3 SCSI Processor (QLA12160 on AMI MegaRAID) - - pci:v00001077d00001240* - ID_MODEL_FROM_DATABASE=ISP1240 SCSI Host Adapter -@@ -16689,7 +16689,7 @@ pci:v00001077d00002200* - ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter - - pci:v00001077d00002200sv00001077sd00000002* -- ID_MODEL_FROM_DATABASE=QLA2200 -+ ID_MODEL_FROM_DATABASE=QLA2200 64-bit Fibre Channel Adapter (QLA2200) - - pci:v00001077d00002300* - ID_MODEL_FROM_DATABASE=QLA2300 64-bit Fibre Channel Adapter -@@ -16698,10 +16698,10 @@ pci:v00001077d00002312* - ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA - - pci:v00001077d00002312sv0000103Csd00000131* -- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Single port [A7538A] -+ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Single port [A7538A]) - - pci:v00001077d00002312sv0000103Csd000012BA* -- ID_MODEL_FROM_DATABASE=2Gb Fibre Channel - Dual port [A6826A] -+ ID_MODEL_FROM_DATABASE=ISP2312-based 2Gb Fibre Channel to PCI-X HBA (2Gb Fibre Channel - Dual port [A6826A]) - - pci:v00001077d00002322* - ID_MODEL_FROM_DATABASE=ISP2322-based 2Gb Fibre Channel to PCI-X HBA -@@ -16710,25 +16710,25 @@ pci:v00001077d00002422* - ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA - - pci:v00001077d00002422sv0000103Csd000012D7* -- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB379A] -+ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB379A]) - - pci:v00001077d00002422sv0000103Csd000012DD* -- ID_MODEL_FROM_DATABASE=4Gb Fibre Channel [AB429A] -+ ID_MODEL_FROM_DATABASE=ISP2422-based 4Gb Fibre Channel to PCI-X HBA (4Gb Fibre Channel [AB429A]) - - pci:v00001077d00002432* - ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA - - pci:v00001077d00002432sv0000103Csd00007040* -- ID_MODEL_FROM_DATABASE=FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A] -+ ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA (FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]) - - pci:v00001077d00002532* - ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA - - pci:v00001077d00002532sv0000103Csd00003262* -- ID_MODEL_FROM_DATABASE=StorageWorks 81Q -+ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (StorageWorks 81Q) - - pci:v00001077d00002532sv00001077sd00000167* -- ID_MODEL_FROM_DATABASE=QME2572 Dual Port FC8 HBA Mezzanine -+ ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (QME2572 Dual Port FC8 HBA Mezzanine) - - pci:v00001077d00003022* - ID_MODEL_FROM_DATABASE=ISP4022-based Ethernet NIC -@@ -16770,55 +16770,55 @@ pci:v00001077d00008020* - ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller - - pci:v00001077d00008020sv0000103Csd00003346* -- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (CN1000Q Dual Port Converged Network Adapter) - - pci:v00001077d00008020sv0000103Csd00003733* -- ID_MODEL_FROM_DATABASE=NC523SFP 10Gb 2-port Server Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (NC523SFP 10Gb 2-port Server Adapter) - - pci:v00001077d00008020sv00001077sd00000203* -- ID_MODEL_FROM_DATABASE=8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008020sv00001077sd00000207* -- ID_MODEL_FROM_DATABASE=8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008020sv00001077sd0000020B* -- ID_MODEL_FROM_DATABASE=3200 Series Dual Port 10Gb Intelligent Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Dual Port 10Gb Intelligent Ethernet Adapter) - - pci:v00001077d00008020sv00001077sd0000020C* -- ID_MODEL_FROM_DATABASE=3200 Series Quad Port 1Gb Intelligent Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Quad Port 1Gb Intelligent Ethernet Adapter) - - pci:v00001077d00008020sv00001077sd0000020F* -- ID_MODEL_FROM_DATABASE=3200 Series Single Port 10Gb Intelligent Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (3200 Series Single Port 10Gb Intelligent Ethernet Adapter) - - pci:v00001077d00008020sv00001077sd00000210* -- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card -+ ID_MODEL_FROM_DATABASE=cLOM8214 1/10GbE Controller (QME8242-k 10GbE Dual Port Mezzanine Card) - - pci:v00001077d00008021* - ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) - - pci:v00001077d00008021sv0000103Csd00003348* -- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (CN1000Q Dual Port Converged Network Adapter) - - pci:v00001077d00008021sv00001077sd00000211* -- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, FCoE -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (FCoE) (QME8242-k 10GbE Dual Port Mezzanine Card, FCoE) - - pci:v00001077d00008022* - ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) - - pci:v00001077d00008022sv0000103Csd00003347* -- ID_MODEL_FROM_DATABASE=CN1000Q Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (CN1000Q Dual Port Converged Network Adapter) - - pci:v00001077d00008022sv00001077sd00000212* -- ID_MODEL_FROM_DATABASE=QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI -+ ID_MODEL_FROM_DATABASE=8200 Series 10GbE Converged Network Adapter (iSCSI) (QME8242-k 10GbE Dual Port Mezzanine Card, iSCSI) - - pci:v00001077d00008030* - ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller - - pci:v00001077d00008030sv00001077sd00000243* -- ID_MODEL_FROM_DATABASE=8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008030sv00001077sd00000246* -- ID_MODEL_FROM_DATABASE=8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) -+ ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)) - - pci:v00001077d00008031* - ID_MODEL_FROM_DATABASE=8300 Series 10GbE Converged Network Adapter (FCoE) -@@ -17022,7 +17022,7 @@ pci:v0000108Dd00000004* - ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter - - pci:v0000108Dd00000004sv0000108Dsd00000004* -- ID_MODEL_FROM_DATABASE=OC-3139/3140 RapidFire Token-Ring 16/4 Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter (OC-3139/3140 RapidFire Token-Ring 16/4 Adapter) - - pci:v0000108Dd00000005* - ID_MODEL_FROM_DATABASE=GoCard 3250 Token-Ring 16/4 CardBus PC Card -@@ -17034,13 +17034,13 @@ pci:v0000108Dd00000007* - ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter - - pci:v0000108Dd00000007sv0000108Dsd00000007* -- ID_MODEL_FROM_DATABASE=OC-3141 RapidFire Token-Ring 16/4 Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter (OC-3141 RapidFire Token-Ring 16/4 Adapter) - - pci:v0000108Dd00000008* - ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter - - pci:v0000108Dd00000008sv0000108Dsd00000008* -- ID_MODEL_FROM_DATABASE=OC-3540 RapidFire HSTR 100/16/4 Adapter -+ ID_MODEL_FROM_DATABASE=RapidFire 3540 HSTR 100/16/4 PCI Adapter (OC-3540 RapidFire HSTR 100/16/4 Adapter) - - pci:v0000108Dd00000011* - ID_MODEL_FROM_DATABASE=OC-2315 -@@ -17058,10 +17058,10 @@ pci:v0000108Dd00000019* - ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter - - pci:v0000108Dd00000019sv0000108Dsd00000016* -- ID_MODEL_FROM_DATABASE=OC-2327 Rapidfire 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2327 Rapidfire 10/100 Ethernet Adapter) - - pci:v0000108Dd00000019sv0000108Dsd00000017* -- ID_MODEL_FROM_DATABASE=OC-2250 GoCard 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=OC-2327/2250 10/100 Ethernet Adapter (OC-2250 GoCard 10/100 Ethernet Adapter) - - pci:v0000108Dd00000021* - ID_MODEL_FROM_DATABASE=OC-6151/6152 [RapidFire ATM 155] -@@ -17085,25 +17085,25 @@ pci:v0000108Ed00001100* - ID_MODEL_FROM_DATABASE=RIO EBUS - - pci:v0000108Ed00001100sv0000108Esd00001100* -- ID_MODEL_FROM_DATABASE=RIO EBUS on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO EBUS (on Blade 100 motherboard) - - pci:v0000108Ed00001101* - ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] - - pci:v0000108Ed00001101sv0000108Esd00001101* -- ID_MODEL_FROM_DATABASE=RIO GEM on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO 10/100 Ethernet [eri] (RIO GEM on Blade 100 motherboard) - - pci:v0000108Ed00001102* - ID_MODEL_FROM_DATABASE=RIO 1394 - - pci:v0000108Ed00001102sv0000108Esd00001102* -- ID_MODEL_FROM_DATABASE=RIO 1394 on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO 1394 (on Blade 100 motherboard) - - pci:v0000108Ed00001103* - ID_MODEL_FROM_DATABASE=RIO USB - - pci:v0000108Ed00001103sv0000108Esd00001103* -- ID_MODEL_FROM_DATABASE=RIO USB on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=RIO USB (on Blade 100 motherboard) - - pci:v0000108Ed00001647* - ID_MODEL_FROM_DATABASE=Broadcom 570x 10/100/1000 Ethernet [bge] -@@ -17124,7 +17124,7 @@ pci:v0000108Ed00005000* - ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge - - pci:v0000108Ed00005000sv0000108Esd00005000* -- ID_MODEL_FROM_DATABASE=Netra AX1105-500 -+ ID_MODEL_FROM_DATABASE=Simba Advanced PCI Bridge (Netra AX1105-500) - - pci:v0000108Ed00005043* - ID_MODEL_FROM_DATABASE=SunPCI Co-processor -@@ -17226,7 +17226,7 @@ pci:v0000108Ed0000A001* - ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] - - pci:v0000108Ed0000A001sv0000108Esd0000A001* -- ID_MODEL_FROM_DATABASE=Ultra IIe on Blade 100 motherboard -+ ID_MODEL_FROM_DATABASE=Psycho UPA-PCI Bus Module [pcipsy] (Ultra IIe on Blade 100 motherboard) - - pci:v0000108Ed0000A801* - ID_MODEL_FROM_DATABASE=Schizo Fireplane-PCI bus bridge module [pcisch] -@@ -17295,7 +17295,7 @@ pci:v00001092d00000028* - ID_MODEL_FROM_DATABASE=Viper V770 - - pci:v00001092d00000028sv00001092sd00004A00* -- ID_MODEL_FROM_DATABASE=Viper V770 32MB -+ ID_MODEL_FROM_DATABASE=Viper V770 (32MB) - - pci:v00001092d000000A0* - ID_MODEL_FROM_DATABASE=Speedstar Pro SE -@@ -17766,28 +17766,28 @@ pci:v00001093d0000C4C4* - ID_MODEL_FROM_DATABASE=PXIe/PCIe Device - - pci:v00001093d0000C4C4sv00001093sd000074B2* -- ID_MODEL_FROM_DATABASE=PXIe-4353 -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4353) - - pci:v00001093d0000C4C4sv00001093sd000074D0* -- ID_MODEL_FROM_DATABASE=PXIe-7961R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7961R) - - pci:v00001093d0000C4C4sv00001093sd000074E2* -- ID_MODEL_FROM_DATABASE=PXIe-7962R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7962R) - - pci:v00001093d0000C4C4sv00001093sd000074E3* -- ID_MODEL_FROM_DATABASE=PXIe-7965R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7965R) - - pci:v00001093d0000C4C4sv00001093sd00007553* -- ID_MODEL_FROM_DATABASE=PCIe-1473R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1473R) - - pci:v00001093d0000C4C4sv00001093sd000075CE* -- ID_MODEL_FROM_DATABASE=PXIe-7966R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7966R) - - pci:v00001093d0000C4C4sv00001093sd000076B7* -- ID_MODEL_FROM_DATABASE=PXIe-7975R -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7975R) - - pci:v00001093d0000C4C4sv00001093sd000076D0* -- ID_MODEL_FROM_DATABASE=PXIe-5160 -+ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160) - - pci:v00001093d0000C801* - ID_MODEL_FROM_DATABASE=PCI-GPIB -@@ -17820,19 +17820,19 @@ pci:v00001095d00000648* - ID_MODEL_FROM_DATABASE=PCI0648 - - pci:v00001095d00000648sv00001043sd00008025* -- ID_MODEL_FROM_DATABASE=CUBX motherboard -+ ID_MODEL_FROM_DATABASE=PCI0648 (CUBX motherboard) - - pci:v00001095d00000649* - ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller - - pci:v00001095d00000649sv00000E11sd0000005D* -- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 Dual Channel Controller -+ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 Dual Channel Controller) - - pci:v00001095d00000649sv00000E11sd0000007E* -- ID_MODEL_FROM_DATABASE=Integrated Ultra ATA-100 IDE RAID Controller -+ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (Integrated Ultra ATA-100 IDE RAID Controller) - - pci:v00001095d00000649sv0000101Esd00000649* -- ID_MODEL_FROM_DATABASE=AMI MegaRAID IDE 100 Controller -+ ID_MODEL_FROM_DATABASE=SiI 0649 Ultra ATA/100 PCI to ATA Host Controller (AMI MegaRAID IDE 100 Controller) - - pci:v00001095d00000650* - ID_MODEL_FROM_DATABASE=PBC0650A -@@ -17850,34 +17850,34 @@ pci:v00001095d00000680* - ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller - - pci:v00001095d00000680sv00001095sd00000680* -- ID_MODEL_FROM_DATABASE=SiI 0680 ATA/133 Controller -+ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (SiI 0680 ATA/133 Controller) - - pci:v00001095d00000680sv00001095sd00003680* -- ID_MODEL_FROM_DATABASE=Winic W-680 (Silicon Image 680 based) -+ ID_MODEL_FROM_DATABASE=PCI0680 Ultra ATA-133 Host Controller (Winic W-680 (Silicon Image 680 based)) - - pci:v00001095d00003112* - ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller - - pci:v00001095d00003112sv00001095sd00003112* -- ID_MODEL_FROM_DATABASE=SiI 3112 SATALink Controller -+ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATALink Controller) - - pci:v00001095d00003112sv00001095sd00006112* -- ID_MODEL_FROM_DATABASE=SiI 3112 SATARaid Controller -+ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SiI 3112 SATARaid Controller) - - pci:v00001095d00003112sv00009005sd00000250* -- ID_MODEL_FROM_DATABASE=SATAConnect 1205SA Host Controller -+ ID_MODEL_FROM_DATABASE=SiI 3112 [SATALink/SATARaid] Serial ATA Controller (SATAConnect 1205SA Host Controller) - - pci:v00001095d00003114* - ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller - - pci:v00001095d00003114sv00001043sd00008167* -- ID_MODEL_FROM_DATABASE=A8N-SLI Deluxe/Premium Mainboard -+ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (A8N-SLI Deluxe/Premium Mainboard) - - pci:v00001095d00003114sv00001095sd00003114* -- ID_MODEL_FROM_DATABASE=SiI 3114 SATALink Controller -+ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATALink Controller) - - pci:v00001095d00003114sv00001095sd00006114* -- ID_MODEL_FROM_DATABASE=SiI 3114 SATARaid Controller -+ ID_MODEL_FROM_DATABASE=SiI 3114 [SATALink/SATARaid] Serial ATA Controller (SiI 3114 SATARaid Controller) - - pci:v00001095d00003124* - ID_MODEL_FROM_DATABASE=SiI 3124 PCI-X Serial ATA Controller -@@ -17892,10 +17892,10 @@ pci:v00001095d00003512* - ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller - - pci:v00001095d00003512sv00001095sd00003512* -- ID_MODEL_FROM_DATABASE=SiI 3512 SATALink Controller -+ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATALink Controller) - - pci:v00001095d00003512sv00001095sd00006512* -- ID_MODEL_FROM_DATABASE=SiI 3512 SATARaid Controller -+ ID_MODEL_FROM_DATABASE=SiI 3512 [SATALink/SATARaid] Serial ATA Controller (SiI 3512 SATARaid Controller) - - pci:v00001095d00003531* - ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller -@@ -17949,412 +17949,412 @@ pci:v0000109Ed00000369* - ID_MODEL_FROM_DATABASE=Bt878 Video Capture - - pci:v0000109Ed00000369sv00001002sd00000001* -- ID_MODEL_FROM_DATABASE=TV-Wonder -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder) - - pci:v0000109Ed00000369sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=TV-Wonder/VE -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV-Wonder/VE) - - pci:v0000109Ed0000036C* - ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture - - pci:v0000109Ed0000036Csv000013E9sd00000070* -- ID_MODEL_FROM_DATABASE=Win/TV (Video Section) -+ ID_MODEL_FROM_DATABASE=Bt879(??) Video Capture (Win/TV (Video Section)) - - pci:v0000109Ed0000036E* - ID_MODEL_FROM_DATABASE=Bt878 Video Capture - - pci:v0000109Ed0000036Esv00000070sd000013EB* -- ID_MODEL_FROM_DATABASE=WinTV Series -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinTV Series) - - pci:v0000109Ed0000036Esv00000070sd0000FF01* -- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Viewcast Osprey 200) - - pci:v0000109Ed0000036Esv00000071sd00000101* -- ID_MODEL_FROM_DATABASE=DigiTV PCI -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DigiTV PCI) - - pci:v0000109Ed0000036Esv0000107Dsd00006606* -- ID_MODEL_FROM_DATABASE=WinFast TV 2000 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (WinFast TV 2000) - - pci:v0000109Ed0000036Esv000011BDsd00000012* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) - - pci:v0000109Ed0000036Esv000011BDsd0000001C* -- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV Sat (DBC receiver)) - - pci:v0000109Ed0000036Esv0000127Asd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) - - pci:v0000109Ed0000036Esv0000127Asd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv0000127Asd00000003* -- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv0000127Asd00000048* -- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) - - pci:v0000109Ed0000036Esv0000144Fsd00003000* -- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Video -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (MagicTView CPH060 - Video) - - pci:v0000109Ed0000036Esv00001461sd00000002* -- ID_MODEL_FROM_DATABASE=TV98 Series (TV/No FM/Remote) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (TV98 Series (TV/No FM/Remote)) - - pci:v0000109Ed0000036Esv00001461sd00000003* -- ID_MODEL_FROM_DATABASE=AverMedia UltraTV PCI 350 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia UltraTV PCI 350) - - pci:v0000109Ed0000036Esv00001461sd00000004* -- ID_MODEL_FROM_DATABASE=AVerTV WDM Video Capture -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AVerTV WDM Video Capture) - - pci:v0000109Ed0000036Esv00001461sd00000761* -- ID_MODEL_FROM_DATABASE=AverTV DVB-T -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverTV DVB-T) - - pci:v0000109Ed0000036Esv00001461sd00000771* -- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (AverMedia AVerTV DVB-T 771) - - pci:v0000109Ed0000036Esv000014F1sd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller NTSC) - - pci:v0000109Ed0000036Esv000014F1sd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878 Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv000014F1sd00000003* -- ID_MODEL_FROM_DATABASE=Bt878a Mediastream Controller PAL BG -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878a Mediastream Controller PAL BG) - - pci:v0000109Ed0000036Esv000014F1sd00000048* -- ID_MODEL_FROM_DATABASE=Bt878/832 Mediastream Controller -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Bt878/832 Mediastream Controller) - - pci:v0000109Ed0000036Esv00001822sd00000001* -- ID_MODEL_FROM_DATABASE=VisionPlus DVB card -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (VisionPlus DVB card) - - pci:v0000109Ed0000036Esv00001851sd00001850* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video) - - pci:v0000109Ed0000036Esv00001851sd00001851* -- ID_MODEL_FROM_DATABASE=FlyVideo II -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo II) - - pci:v0000109Ed0000036Esv00001852sd00001852* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (FlyVideo'98 - Video (with FM Tuner)) - - pci:v0000109Ed0000036Esv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (DViCO FusionHDTV5 Lite) - - pci:v0000109Ed0000036Esv0000270Fsd0000FC00* -- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Digitop DTT-1000) - - pci:v0000109Ed0000036Esv0000AA00sd00001460* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input0) - - pci:v0000109Ed0000036Esv0000AA01sd00001461* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input1) - - pci:v0000109Ed0000036Esv0000AA02sd00001462* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input2) - - pci:v0000109Ed0000036Esv0000AA03sd00001463* -- ID_MODEL_FROM_DATABASE=Spectra8 CardA Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardA Input3) - - pci:v0000109Ed0000036Esv0000AA04sd00001464* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input0) - - pci:v0000109Ed0000036Esv0000AA05sd00001465* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input1) - - pci:v0000109Ed0000036Esv0000AA06sd00001466* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input2) - - pci:v0000109Ed0000036Esv0000AA07sd00001467* -- ID_MODEL_FROM_DATABASE=Spectra8 CardB Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardB Input3) - - pci:v0000109Ed0000036Esv0000AA08sd00001468* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input0) - - pci:v0000109Ed0000036Esv0000AA09sd00001469* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input1) - - pci:v0000109Ed0000036Esv0000AA0Asd0000146A* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input2) - - pci:v0000109Ed0000036Esv0000AA0Bsd0000146B* -- ID_MODEL_FROM_DATABASE=Spectra8 CardC Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardC Input3) - - pci:v0000109Ed0000036Esv0000AA0Csd0000146C* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input0 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input0) - - pci:v0000109Ed0000036Esv0000AA0Dsd0000146D* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input1 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input1) - - pci:v0000109Ed0000036Esv0000AA0Esd0000146E* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input2 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input2) - - pci:v0000109Ed0000036Esv0000AA0Fsd0000146F* -- ID_MODEL_FROM_DATABASE=Spectra8 CardD Input3 -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Spectra8 CardD Input3) - - pci:v0000109Ed0000036Esv0000BD11sd00001200* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Video Capture (PCTV pro (TV + FM stereo receiver)) - - pci:v0000109Ed0000036F* - ID_MODEL_FROM_DATABASE=Bt879 Video Capture - - pci:v0000109Ed0000036Fsv0000127Asd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv0000127Asd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv0000127Asd00000244* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv0000127Asd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv0000127Asd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv0000127Asd00001522* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) - - pci:v0000109Ed0000036Fsv0000127Asd00001622* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) - - pci:v0000109Ed0000036Fsv0000127Asd00001722* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv000014F1sd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv000014F1sd00000244* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL I) - - pci:v0000109Ed0000036Fsv000014F1sd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (PAL BG) - - pci:v0000109Ed0000036Fsv000014F1sd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (NTSC) - - pci:v0000109Ed0000036Fsv000014F1sd00001522* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL I -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL I) - - pci:v0000109Ed0000036Fsv000014F1sd00001622* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture PAL BG -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture PAL BG) - - pci:v0000109Ed0000036Fsv000014F1sd00001722* -- ID_MODEL_FROM_DATABASE=Bt879a Video Capture NTSC -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Bt879a Video Capture NTSC) - - pci:v0000109Ed0000036Fsv00001851sd00001850* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video) - - pci:v0000109Ed0000036Fsv00001851sd00001851* -- ID_MODEL_FROM_DATABASE=FlyVideo II -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo II) - - pci:v0000109Ed0000036Fsv00001852sd00001852* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 - Video (with FM Tuner) -+ ID_MODEL_FROM_DATABASE=Bt879 Video Capture (FlyVideo'98 - Video (with FM Tuner)) - - pci:v0000109Ed00000370* - ID_MODEL_FROM_DATABASE=Bt880 Video Capture - - pci:v0000109Ed00000370sv00001851sd00001850* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 -+ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98) - - pci:v0000109Ed00000370sv00001851sd00001851* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 EZ - video -+ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 EZ - video) - - pci:v0000109Ed00000370sv00001852sd00001852* -- ID_MODEL_FROM_DATABASE=FlyVideo'98 (with FM Tuner) -+ ID_MODEL_FROM_DATABASE=Bt880 Video Capture (FlyVideo'98 (with FM Tuner)) - - pci:v0000109Ed00000878* - ID_MODEL_FROM_DATABASE=Bt878 Audio Capture - - pci:v0000109Ed00000878sv00000070sd000013EB* -- ID_MODEL_FROM_DATABASE=WinTV Series -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (WinTV Series) - - pci:v0000109Ed00000878sv00000070sd0000FF01* -- ID_MODEL_FROM_DATABASE=Viewcast Osprey 200 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Viewcast Osprey 200) - - pci:v0000109Ed00000878sv00000071sd00000101* -- ID_MODEL_FROM_DATABASE=DigiTV PCI -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DigiTV PCI) - - pci:v0000109Ed00000878sv00001002sd00000001* -- ID_MODEL_FROM_DATABASE=TV-Wonder -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder) - - pci:v0000109Ed00000878sv00001002sd00000003* -- ID_MODEL_FROM_DATABASE=TV-Wonder/VE -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (TV-Wonder/VE) - - pci:v0000109Ed00000878sv000011BDsd00000012* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) - - pci:v0000109Ed00000878sv000011BDsd0000001C* -- ID_MODEL_FROM_DATABASE=PCTV Sat (DBC receiver) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV Sat (DBC receiver)) - - pci:v0000109Ed00000878sv0000127Asd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv0000127Asd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv0000127Asd00000003* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv0000127Asd00000048* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000013E9sd00000070* -- ID_MODEL_FROM_DATABASE=Win/TV (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Win/TV (Audio Section)) - - pci:v0000109Ed00000878sv0000144Fsd00003000* -- ID_MODEL_FROM_DATABASE=MagicTView CPH060 - Audio -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (MagicTView CPH060 - Audio) - - pci:v0000109Ed00000878sv00001461sd00000002* -- ID_MODEL_FROM_DATABASE=Avermedia PCTV98 Audio Capture -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Avermedia PCTV98 Audio Capture) - - pci:v0000109Ed00000878sv00001461sd00000003* -- ID_MODEL_FROM_DATABASE=UltraTV PCI 350 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (UltraTV PCI 350) - - pci:v0000109Ed00000878sv00001461sd00000004* -- ID_MODEL_FROM_DATABASE=AVerTV WDM Audio Capture -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV WDM Audio Capture) - - pci:v0000109Ed00000878sv00001461sd00000761* -- ID_MODEL_FROM_DATABASE=AVerTV DVB-T -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AVerTV DVB-T) - - pci:v0000109Ed00000878sv00001461sd00000771* -- ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (AverMedia AVerTV DVB-T 771) - - pci:v0000109Ed00000878sv000014F1sd00000001* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000014F1sd00000002* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000014F1sd00000003* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv000014F1sd00000048* -- ID_MODEL_FROM_DATABASE=Bt878 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Bt878 Video Capture (Audio Section)) - - pci:v0000109Ed00000878sv00001822sd00000001* -- ID_MODEL_FROM_DATABASE=VisionPlus DVB Card -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (VisionPlus DVB Card) - - pci:v0000109Ed00000878sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Lite -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (DViCO FusionHDTV5 Lite) - - pci:v0000109Ed00000878sv0000270Fsd0000FC00* -- ID_MODEL_FROM_DATABASE=Digitop DTT-1000 -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (Digitop DTT-1000) - - pci:v0000109Ed00000878sv0000BD11sd00001200* -- ID_MODEL_FROM_DATABASE=PCTV pro (TV + FM stereo receiver, audio section) -+ ID_MODEL_FROM_DATABASE=Bt878 Audio Capture (PCTV pro (TV + FM stereo receiver, audio section)) - - pci:v0000109Ed00000879* - ID_MODEL_FROM_DATABASE=Bt879 Audio Capture - - pci:v0000109Ed00000879sv0000127Asd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000244* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001522* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001622* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv0000127Asd00001722* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000044* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000144* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000244* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00000422* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001122* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001222* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001322* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001522* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001622* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000879sv000014F1sd00001722* -- ID_MODEL_FROM_DATABASE=Bt879 Video Capture (Audio Section) -+ ID_MODEL_FROM_DATABASE=Bt879 Audio Capture (Bt879 Video Capture (Audio Section)) - - pci:v0000109Ed00000880* - ID_MODEL_FROM_DATABASE=Bt880 Audio Capture -@@ -18585,7 +18585,7 @@ pci:v000010B4d00001B1D* - ID_MODEL_FROM_DATABASE=Velocity 128 3D - - pci:v000010B4d00001B1Dsv000010B4sd0000237E* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=Velocity 128 3D (Velocity 4400) - - pci:v000010B5* - ID_VENDOR_FROM_DATABASE=PLX Technology, Inc. -@@ -18597,13 +18597,13 @@ pci:v000010B5d00000557* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00000557sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P-SS7 or E400P-SS7 Quad T1 or E1 PCI card) - - pci:v000010B5d00001000* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00001000sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM AT400P Quad T1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AT400P Quad T1 PCI card) - - pci:v000010B5d00001024* - ID_MODEL_FROM_DATABASE=Acromag, Inc. IndustryPack Carrier Card -@@ -18636,7 +18636,7 @@ pci:v000010B5d00002000* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00002000sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM AE400P Quad E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM AE400P Quad E1 PCI card) - - pci:v000010B5d00002540* - ID_MODEL_FROM_DATABASE=IXXAT CAN-Interface PC-I 04/PCI -@@ -18651,19 +18651,19 @@ pci:v000010B5d00004000* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00004000sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V400P/ATCOM TE400P Quad E1/T1/J1 PCI card) - - pci:v000010B5d00004001* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00004001sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM A400PE Quad E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PE Quad E1 PCI card) - - pci:v000010B5d00004002* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00004002sv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=ATCOM A400PT Quad T1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (ATCOM A400PT Quad T1 PCI card) - - pci:v000010B5d00006140* - ID_MODEL_FROM_DATABASE=PCI6140 32-bit 33MHz PCI-to-PCI Bridge -@@ -18690,28 +18690,28 @@ pci:v000010B5d00006540* - ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge - - pci:v000010B5d00006540sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (CR11 Single Board Computer) - - pci:v000010B5d00006540sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=PCI6540 64-bit 133MHz PCI-X-to-PCI-X Bridge (PSL09 PrPMC) - - pci:v000010B5d00006541* - ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) - - pci:v000010B5d00006541sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (CR11 Single Board Computer) - - pci:v000010B5d00006541sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, primary side) (PSL09 PrPMC) - - pci:v000010B5d00006542* - ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) - - pci:v000010B5d00006542sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (CR11 Single Board Computer) - - pci:v000010B5d00006542sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=PCI6540/6466 PCI-PCI bridge (non-transparent mode, secondary side) (PSL09 PrPMC) - - pci:v000010B5d00008111* - ID_MODEL_FROM_DATABASE=PEX 8111 PCI Express-to-PCI Bridge -@@ -18807,7 +18807,7 @@ pci:v000010B5d00008624* - ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] - - pci:v000010B5d00008624sv000013A3sd00001845* -- ID_MODEL_FROM_DATABASE=DX1845 Acceleration Card -+ ID_MODEL_FROM_DATABASE=PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] (DX1845 Acceleration Card) - - pci:v000010B5d00008625* - ID_MODEL_FROM_DATABASE=PEX 8625 24-lane, 24-Port PCI Express Gen 2 (5.0 GT/s) Switch -@@ -18861,85 +18861,85 @@ pci:v000010B5d00009030* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009030sv000010B5sd00002695* -- ID_MODEL_FROM_DATABASE=Hilscher CIF50-PB/DPS Profibus -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Hilscher CIF50-PB/DPS Profibus) - - pci:v000010B5d00009030sv000010B5sd00002862* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00002906* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board) - - pci:v000010B5d00009030sv000010B5sd00002940* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00002977* -- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCI CAN Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCI CAN Board) - - pci:v000010B5d00009030sv000010B5sd00002978* -- ID_MODEL_FROM_DATABASE=SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (SH ARC-PCIu/SH ARC-PCI104/SH ARC-PCIe SOHARD ARCNET card) - - pci:v000010B5d00009030sv000010B5sd00003025* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI L (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00003068* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI HD (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000010B5sd00003463* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D (v2) (3V/5V): Timecode Reader Board) - - pci:v000010B5d00009030sv000012FEsd00000111* -- ID_MODEL_FROM_DATABASE=CPCI-ASIO4 (ESD 4-port Serial Interface Board) -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (CPCI-ASIO4 (ESD 4-port Serial Interface Board)) - - pci:v000010B5d00009030sv00001369sd00009C01* -- ID_MODEL_FROM_DATABASE=VX222v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222v2) - - pci:v000010B5d00009030sv00001369sd00009D01* -- ID_MODEL_FROM_DATABASE=VX222-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) - - pci:v000010B5d00009030sv00001369sd00009D02* -- ID_MODEL_FROM_DATABASE=VX222-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (VX222-Mic) - - pci:v000010B5d00009030sv00001369sd00009E01* -- ID_MODEL_FROM_DATABASE=PCX924v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924v2) - - pci:v000010B5d00009030sv00001369sd00009F01* -- ID_MODEL_FROM_DATABASE=PCX924-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) - - pci:v000010B5d00009030sv00001369sd00009F02* -- ID_MODEL_FROM_DATABASE=PCX924-Mic -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX924-Mic) - - pci:v000010B5d00009030sv00001369sd0000A001* -- ID_MODEL_FROM_DATABASE=PCX22v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (PCX22v2) - - pci:v000010B5d00009030sv00001369sd0000A701* -- ID_MODEL_FROM_DATABASE=LCM220v2 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM220v2) - - pci:v000010B5d00009030sv00001369sd0000A801* -- ID_MODEL_FROM_DATABASE=LCM200 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (LCM200) - - pci:v000010B5d00009030sv00001397sd00003136* -- ID_MODEL_FROM_DATABASE=4xS0-ISDN PCI Adapter -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (4xS0-ISDN PCI Adapter) - - pci:v000010B5d00009030sv00001397sd00003137* -- ID_MODEL_FROM_DATABASE=S2M-E1-ISDN PCI Adapter -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (S2M-E1-ISDN PCI Adapter) - - pci:v000010B5d00009030sv00001518sd00000200* -- ID_MODEL_FROM_DATABASE=Kontron ThinkIO-C -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Kontron ThinkIO-C) - - pci:v000010B5d00009030sv000015EDsd00001002* -- ID_MODEL_FROM_DATABASE=MCCS 8-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 8-port Serial Hot Swap) - - pci:v000010B5d00009030sv000015EDsd00001003* -- ID_MODEL_FROM_DATABASE=MCCS 16-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (MCCS 16-port Serial Hot Swap) - - pci:v000010B5d00009030sv0000E1C5sd00000001* -- ID_MODEL_FROM_DATABASE=TE1-PCI -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TE1-PCI) - - pci:v000010B5d00009030sv0000E1C5sd00000005* -- ID_MODEL_FROM_DATABASE=TA1-PCI -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI) - - pci:v000010B5d00009030sv0000E1C5sd00000006* -- ID_MODEL_FROM_DATABASE=TA1-PCI4 -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (TA1-PCI4) - - pci:v000010B5d00009036* - ID_MODEL_FROM_DATABASE=9036 -@@ -18948,145 +18948,145 @@ pci:v000010B5d00009050* - ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge - - pci:v000010B5d00009050sv000010B5sd00001067* -- ID_MODEL_FROM_DATABASE=IXXAT CAN i165 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IXXAT CAN i165) - - pci:v000010B5d00009050sv000010B5sd0000114E* -- ID_MODEL_FROM_DATABASE=Wasco WITIO PCI168extended -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco WITIO PCI168extended) - - pci:v000010B5d00009050sv000010B5sd00001169* -- ID_MODEL_FROM_DATABASE=Wasco OPTOIO32standard 32 digital in, 32 digital out -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Wasco OPTOIO32standard 32 digital in, 32 digital out) - - pci:v000010B5d00009050sv000010B5sd00001172* -- ID_MODEL_FROM_DATABASE=IK220 (Heidenhain) -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IK220 (Heidenhain)) - - pci:v000010B5d00009050sv000010B5sd00002036* -- ID_MODEL_FROM_DATABASE=SatPak GPS -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SatPak GPS) - - pci:v000010B5d00009050sv000010B5sd00002221* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI LV: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI LV: Timecode Reader Board) - - pci:v000010B5d00009050sv000010B5sd00002273* -- ID_MODEL_FROM_DATABASE=SH ARC-PCI SOHARD ARCNET card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (SH ARC-PCI SOHARD ARCNET card) - - pci:v000010B5d00009050sv000010B5sd00002431* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCI D: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCL PCI D: Timecode Reader Board) - - pci:v000010B5d00009050sv000010B5sd00002905* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCI TS: Time Synchronisation Board -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Alpermann+Velte PCI TS: Time Synchronisation Board) - - pci:v000010B5d00009050sv000010B5sd00003196* -- ID_MODEL_FROM_DATABASE=Goramo PLX200SYN sync serial card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Goramo PLX200SYN sync serial card) - - pci:v000010B5d00009050sv000010B5sd00009050* -- ID_MODEL_FROM_DATABASE=PCI-I04 PCI Passive PC/CAN Interface -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCI-I04 PCI Passive PC/CAN Interface) - - pci:v000010B5d00009050sv00001369sd00008901* -- ID_MODEL_FROM_DATABASE=PCX11+ PCI -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX11+ PCI) - - pci:v000010B5d00009050sv00001369sd00008F01* -- ID_MODEL_FROM_DATABASE=VX222 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (VX222) - - pci:v000010B5d00009050sv00001369sd00009401* -- ID_MODEL_FROM_DATABASE=PCX924 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX924) - - pci:v000010B5d00009050sv00001369sd00009501* -- ID_MODEL_FROM_DATABASE=PCX22 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCX22) - - pci:v000010B5d00009050sv00001498sd00000362* -- ID_MODEL_FROM_DATABASE=TPMC866 8 Channel Serial Card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (TPMC866 8 Channel Serial Card) - - pci:v000010B5d00009050sv00001522sd00000001* -- ID_MODEL_FROM_DATABASE=RockForce 4 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 4 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000002* -- ID_MODEL_FROM_DATABASE=RockForce 2 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 2 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000003* -- ID_MODEL_FROM_DATABASE=RockForce 6 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 6 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000004* -- ID_MODEL_FROM_DATABASE=RockForce 8 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce 8 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000010* -- ID_MODEL_FROM_DATABASE=RockForce2000 4 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 4 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv00001522sd00000020* -- ID_MODEL_FROM_DATABASE=RockForce2000 2 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce2000 2 Port V.90 Data/Fax/Voice Modem) - - pci:v000010B5d00009050sv000015EDsd00001000* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial) - - pci:v000010B5d00009050sv000015EDsd00001001* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial) - - pci:v000010B5d00009050sv000015EDsd00001002* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 8-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 8-port Serial Hot Swap) - - pci:v000010B5d00009050sv000015EDsd00001003* -- ID_MODEL_FROM_DATABASE=Macrolink MCCS 16-port Serial Hot Swap -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (Macrolink MCCS 16-port Serial Hot Swap) - - pci:v000010B5d00009050sv00005654sd00002036* -- ID_MODEL_FROM_DATABASE=OpenSwitch 6 Telephony card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 6 Telephony card) - - pci:v000010B5d00009050sv00005654sd00003132* -- ID_MODEL_FROM_DATABASE=OpenSwitch 12 Telephony card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenSwitch 12 Telephony card) - - pci:v000010B5d00009050sv00005654sd00005634* -- ID_MODEL_FROM_DATABASE=OpenLine4 Telephony Card -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (OpenLine4 Telephony Card) - - pci:v000010B5d00009050sv0000D531sd0000C002* -- ID_MODEL_FROM_DATABASE=PCIntelliCAN 2xSJA1000 CAN bus -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (PCIntelliCAN 2xSJA1000 CAN bus) - - pci:v000010B5d00009050sv0000D84Dsd00004006* -- ID_MODEL_FROM_DATABASE=EX-4006 1P -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4006 1P) - - pci:v000010B5d00009050sv0000D84Dsd00004008* -- ID_MODEL_FROM_DATABASE=EX-4008 1P EPP/ECP -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4008 1P EPP/ECP) - - pci:v000010B5d00009050sv0000D84Dsd00004014* -- ID_MODEL_FROM_DATABASE=EX-4014 2P -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4014 2P) - - pci:v000010B5d00009050sv0000D84Dsd00004018* -- ID_MODEL_FROM_DATABASE=EX-4018 3P EPP/ECP -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4018 3P EPP/ECP) - - pci:v000010B5d00009050sv0000D84Dsd00004025* -- ID_MODEL_FROM_DATABASE=EX-4025 1S(16C550) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4025 1S(16C550) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004027* -- ID_MODEL_FROM_DATABASE=EX-4027 1S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4027 1S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004028* -- ID_MODEL_FROM_DATABASE=EX-4028 1S(16C850) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4028 1S(16C850) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004036* -- ID_MODEL_FROM_DATABASE=EX-4036 2S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4036 2S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004037* -- ID_MODEL_FROM_DATABASE=EX-4037 2S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4037 2S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004038* -- ID_MODEL_FROM_DATABASE=EX-4038 2S(16C850) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4038 2S(16C850) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004052* -- ID_MODEL_FROM_DATABASE=EX-4052 1S(16C550) RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4052 1S(16C550) RS-422/485) - - pci:v000010B5d00009050sv0000D84Dsd00004053* -- ID_MODEL_FROM_DATABASE=EX-4053 2S(16C550) RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4053 2S(16C550) RS-422/485) - - pci:v000010B5d00009050sv0000D84Dsd00004055* -- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C550) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C550) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004058* -- ID_MODEL_FROM_DATABASE=EX-4055 4S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4055 4S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004065* -- ID_MODEL_FROM_DATABASE=EX-4065 8S(16C550) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4065 8S(16C550) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004068* -- ID_MODEL_FROM_DATABASE=EX-4068 8S(16C650) RS-232 -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4068 8S(16C650) RS-232) - - pci:v000010B5d00009050sv0000D84Dsd00004078* -- ID_MODEL_FROM_DATABASE=EX-4078 2S(16C552) RS-232+1P -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (EX-4078 2S(16C552) RS-232+1P) - - pci:v000010B5d00009052* - ID_MODEL_FROM_DATABASE=PCI9052 PCI <-> IOBus Bridge -@@ -19095,88 +19095,88 @@ pci:v000010B5d00009054* - ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009054sv000010B5sd00002455* -- ID_MODEL_FROM_DATABASE=Wessex Techology PHIL-PCI -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Wessex Techology PHIL-PCI) - - pci:v000010B5d00009054sv000010B5sd00002696* -- ID_MODEL_FROM_DATABASE=Innes Corp AM Radcap card -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp AM Radcap card) - - pci:v000010B5d00009054sv000010B5sd00002717* -- ID_MODEL_FROM_DATABASE=Innes Corp Auricon card -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp Auricon card) - - pci:v000010B5d00009054sv000010B5sd00002844* -- ID_MODEL_FROM_DATABASE=Innes Corp TVS Encoder card -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Innes Corp TVS Encoder card) - - pci:v000010B5d00009054sv000012C7sd00004001* -- ID_MODEL_FROM_DATABASE=Intel Dialogic DM/V960-4T1 PCI -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Intel Dialogic DM/V960-4T1 PCI) - - pci:v000010B5d00009054sv000012D9sd00000002* -- ID_MODEL_FROM_DATABASE=PCI Prosody Card rev 1.5 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PCI Prosody Card rev 1.5) - - pci:v000010B5d00009054sv000014B4sd0000D100* -- ID_MODEL_FROM_DATABASE=Dektec DTA-100 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-100) - - pci:v000010B5d00009054sv000014B4sd0000D114* -- ID_MODEL_FROM_DATABASE=Dektec DTA-120 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (Dektec DTA-120) - - pci:v000010B5d00009054sv000016DFsd00000011* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM PCI -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM PCI) - - pci:v000010B5d00009054sv000016DFsd00000012* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8) - - pci:v000010B5d00009054sv000016DFsd00000013* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 8 (without CAS Signaling) -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 8 (without CAS Signaling)) - - pci:v000010B5d00009054sv000016DFsd00000014* -- ID_MODEL_FROM_DATABASE=PIKA PrimeNet MM cPCI 4 -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA PrimeNet MM cPCI 4) - - pci:v000010B5d00009054sv000016DFsd00000015* -- ID_MODEL_FROM_DATABASE=PIKA Daytona MM -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA Daytona MM) - - pci:v000010B5d00009054sv000016DFsd00000016* -- ID_MODEL_FROM_DATABASE=PIKA InLine MM -+ ID_MODEL_FROM_DATABASE=PCI9054 32-bit 33MHz PCI <-> IOBus Bridge (PIKA InLine MM) - - pci:v000010B5d00009056* - ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009056sv000010B5sd00002979* -- ID_MODEL_FROM_DATABASE=CellinkBlade 11 - CPCI board VoATM AAL1 -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (CellinkBlade 11 - CPCI board VoATM AAL1) - - pci:v000010B5d00009056sv000010B5sd00003268* -- ID_MODEL_FROM_DATABASE=IXXAT iPC-I XC16/PCIe CAN Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (IXXAT iPC-I XC16/PCIe CAN Board) - - pci:v000010B5d00009056sv000010B5sd00003352* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe HD: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe HD: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003353* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe D: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe D: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003354* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe LV: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe LV: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003355* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe L: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe L: Timecode Reader Board) - - pci:v000010B5d00009056sv000010B5sd00003415* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCIe TS: Time Synchronisation Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCIe TS: Time Synchronisation Board) - - pci:v000010B5d00009056sv000010B5sd00003493* -- ID_MODEL_FROM_DATABASE=Alpermann+Velte PCL PCIe 3G: Timecode Reader Board -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Alpermann+Velte PCL PCIe 3G: Timecode Reader Board) - - pci:v000010B5d00009056sv00001369sd0000C001* -- ID_MODEL_FROM_DATABASE=LX6464ES -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX6464ES) - - pci:v000010B5d00009056sv00001369sd0000C201* -- ID_MODEL_FROM_DATABASE=LX1616ES -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (LX1616ES) - - pci:v000010B5d00009056sv000014B4sd0000D10A* -- ID_MODEL_FROM_DATABASE=DekTec DTA-110T -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (DekTec DTA-110T) - - pci:v000010B5d00009056sv000014B4sd0000D140* -- ID_MODEL_FROM_DATABASE=Dektec DTA-140 -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-140) - - pci:v000010B5d00009056sv00001A0Esd0000006F* -- ID_MODEL_FROM_DATABASE=Dektec DTA-111 -+ ID_MODEL_FROM_DATABASE=PCI9056 32-bit 66MHz PCI <-> IOBus Bridge (Dektec DTA-111) - - pci:v000010B5d00009060* - ID_MODEL_FROM_DATABASE=PCI9060 32-bit 33MHz PCI <-> IOBus Bridge -@@ -19185,7 +19185,7 @@ pci:v000010B5d0000906D* - ID_MODEL_FROM_DATABASE=9060SD - - pci:v000010B5d0000906Dsv0000125Csd00000640* -- ID_MODEL_FROM_DATABASE=Aries 16000P -+ ID_MODEL_FROM_DATABASE=9060SD (Aries 16000P) - - pci:v000010B5d0000906E* - ID_MODEL_FROM_DATABASE=9060ES -@@ -19194,61 +19194,61 @@ pci:v000010B5d00009080* - ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d00009080sv0000103Csd000010EB* -- ID_MODEL_FROM_DATABASE=(Agilent) E2777B 83K Series Optical Communication Interface -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E2777B 83K Series Optical Communication Interface) - - pci:v000010B5d00009080sv0000103Csd000010EC* -- ID_MODEL_FROM_DATABASE=(Agilent) E6978-66442 PCI CIC -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge ((Agilent) E6978-66442 PCI CIC) - - pci:v000010B5d00009080sv000010B5sd00001123* -- ID_MODEL_FROM_DATABASE=Sectra KK631 encryption board -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (Sectra KK631 encryption board) - - pci:v000010B5d00009080sv000010B5sd00009080* -- ID_MODEL_FROM_DATABASE=9080 [real subsystem ID not set] -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (9080 [real subsystem ID not set]) - - pci:v000010B5d00009080sv000012D9sd00000002* -- ID_MODEL_FROM_DATABASE=PCI Prosody Card -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCI Prosody Card) - - pci:v000010B5d00009080sv000012DFsd00004422* -- ID_MODEL_FROM_DATABASE=4422PCI ["Do-All" Telemetry Data Aquisition System] -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (4422PCI ["Do-All" Telemetry Data Aquisition System]) - - pci:v000010B5d00009080sv00001369sd00009601* -- ID_MODEL_FROM_DATABASE=PCX822np -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822np) - - pci:v000010B5d00009080sv00001369sd0000A102* -- ID_MODEL_FROM_DATABASE=PCX822v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX822v2) - - pci:v000010B5d00009080sv00001369sd0000A201* -- ID_MODEL_FROM_DATABASE=PCX442 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (PCX442) - - pci:v000010B5d00009080sv00001369sd0000A301* -- ID_MODEL_FROM_DATABASE=LCM440v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM440v2) - - pci:v000010B5d00009080sv00001369sd0000A401* -- ID_MODEL_FROM_DATABASE=VX822 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822) - - pci:v000010B5d00009080sv00001369sd0000A402* -- ID_MODEL_FROM_DATABASE=VX822v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX822v2) - - pci:v000010B5d00009080sv00001369sd0000A901* -- ID_MODEL_FROM_DATABASE=LCM420 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (LCM420) - - pci:v000010B5d00009080sv00001369sd0000AA01* -- ID_MODEL_FROM_DATABASE=VX820v2 -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (VX820v2) - - pci:v000010B5d00009080sv00001517sd0000000B* -- ID_MODEL_FROM_DATABASE=ECSG-1R3ADC-PMC Clock synthesizer -+ ID_MODEL_FROM_DATABASE=PCI9080 32-bit; 33MHz PCI <-> IOBus Bridge (ECSG-1R3ADC-PMC Clock synthesizer) - - pci:v000010B5d00009656* - ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge - - pci:v000010B5d00009656sv00001517sd0000000F* -- ID_MODEL_FROM_DATABASE=ECDR-GC314-PMC Receiver -+ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (ECDR-GC314-PMC Receiver) - - pci:v000010B5d00009656sv00001885sd00000700* -- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S40 -+ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S40) - - pci:v000010B5d00009656sv00001885sd00000701* -- ID_MODEL_FROM_DATABASE=Tsunami FPGA PMC with Altera Stratix S30 -+ ID_MODEL_FROM_DATABASE=PCI9656 PCI <-> IOBus Bridge (Tsunami FPGA PMC with Altera Stratix S30) - - pci:v000010B5d0000A100* - ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink -@@ -19263,28 +19263,28 @@ pci:v000010B5d0000D00D* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d0000D00Dsv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Digium Tormenta 2 T400P or E400P Quad T1 or E1 PCI card) - - pci:v000010B5d0000D33D* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d0000D33Dsv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PT Quad T1/J1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PT Quad T1/J1 PCI card) - - pci:v000010B5d0000D44D* - ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - - pci:v000010B5d0000D44Dsv000010B5sd000017F6* -- ID_MODEL_FROM_DATABASE=Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP100P/E 1-port E1/T1/J1 PCI/PCIe card) - - pci:v000010B5d0000D44Dsv000010B5sd000017F7* -- ID_MODEL_FROM_DATABASE=Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP400P/E 4-port E1/T1/J1 PCI/PCIe card) - - pci:v000010B5d0000D44Dsv000010B5sd000017F8* -- ID_MODEL_FROM_DATABASE=Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Allo CP200P/E 2-port E1/T1/J1 PCI/PCIe card) - - pci:v000010B5d0000D44Dsv000010B5sd00009030* -- ID_MODEL_FROM_DATABASE=Tormenta 3 Varion V401PE Quad E1 PCI card -+ ID_MODEL_FROM_DATABASE=PCI9030 32-bit 33MHz PCI <-> IOBus Bridge (Tormenta 3 Varion V401PE Quad E1 PCI card) - - pci:v000010B6* - ID_VENDOR_FROM_DATABASE=Madge Networks -@@ -19299,19 +19299,19 @@ pci:v000010B6d00000002sv000010B6sd00000002* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 - - pci:v000010B6d00000002sv000010B6sd00000006* -- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter -+ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk2 (16/4 CardBus Adapter) - - pci:v000010B6d00000003* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 - - pci:v000010B6d00000003sv00000E11sd0000B0FD* -- ID_MODEL_FROM_DATABASE=Compaq NC4621 PCI, 4/16, WOL -+ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Compaq NC4621 PCI, 4/16, WOL) - - pci:v000010B6d00000003sv000010B6sd00000003* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 - - pci:v000010B6d00000003sv000010B6sd00000007* -- ID_MODEL_FROM_DATABASE=Presto PCI Plus Adapter -+ ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk3 (Presto PCI Plus Adapter) - - pci:v000010B6d00000004* - ID_MODEL_FROM_DATABASE=Smart 16/4 PCI Ringnode Mk1 -@@ -19320,13 +19320,13 @@ pci:v000010B6d00000006* - ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter - - pci:v000010B6d00000006sv000010B6sd00000006* -- ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter -+ ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter (16/4 CardBus Adapter) - - pci:v000010B6d00000007* - ID_MODEL_FROM_DATABASE=Presto PCI Adapter - - pci:v000010B6d00000007sv000010B6sd00000007* -- ID_MODEL_FROM_DATABASE=Presto PCI -+ ID_MODEL_FROM_DATABASE=Presto PCI Adapter (Presto PCI) - - pci:v000010B6d00000009* - ID_MODEL_FROM_DATABASE=Smart 100/16/4 PCI-HS Ringnode -@@ -19347,7 +19347,7 @@ pci:v000010B6d0000000Bsv000010B6sd00000008* - ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 - - pci:v000010B6d0000000Bsv000010B6sd0000000B* -- ID_MODEL_FROM_DATABASE=16/4 Cardbus Adapter Mk2 -+ ID_MODEL_FROM_DATABASE=16/4 CardBus Adapter Mk2 (16/4 Cardbus Adapter Mk2) - - pci:v000010B6d0000000C* - ID_MODEL_FROM_DATABASE=RapidFire 3140V2 16/4 TR Adapter -@@ -19368,13 +19368,13 @@ pci:v000010B7d00000001* - ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) - - pci:v000010B7d00000001sv00009850sd00000001* -- ID_MODEL_FROM_DATABASE=3c985B-SX -+ ID_MODEL_FROM_DATABASE=3c985 1000BaseSX (SX/TX) (3c985B-SX) - - pci:v000010B7d00000013* - ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) - - pci:v000010B7d00000013sv000010B7sd00002031* -- ID_MODEL_FROM_DATABASE=3CRDAG675 11a/b/g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (3CRDAG675) (3CRDAG675 11a/b/g Wireless PCI Adapter) - - pci:v000010B7d00000910* - ID_MODEL_FROM_DATABASE=3C910-A01 -@@ -19386,10 +19386,10 @@ pci:v000010B7d00001007* - ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem - - pci:v000010B7d00001007sv000010B7sd0000615B* -- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem -+ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) - - pci:v000010B7d00001007sv000010B7sd0000615C* -- ID_MODEL_FROM_DATABASE=Mini PCI 56K Modem -+ ID_MODEL_FROM_DATABASE=Mini PCI 56k Winmodem (Mini PCI 56K Modem) - - pci:v000010B7d00001201* - ID_MODEL_FROM_DATABASE=3c982-TXM 10/100baseTX Dual Port A [Hydra] -@@ -19401,16 +19401,16 @@ pci:v000010B7d00001700* - ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] - - pci:v000010B7d00001700sv00001043sd000080EB* -- ID_MODEL_FROM_DATABASE=A7V600/P4P800/K8V motherboard -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (A7V600/P4P800/K8V motherboard) - - pci:v000010B7d00001700sv000010B7sd00000010* -- ID_MODEL_FROM_DATABASE=3C940 Gigabit LOM Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C940 Gigabit LOM Ethernet Adapter) - - pci:v000010B7d00001700sv000010B7sd00000020* -- ID_MODEL_FROM_DATABASE=3C941 Gigabit LOM Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (3C941 Gigabit LOM Ethernet Adapter) - - pci:v000010B7d00001700sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=3c940 10/100/1000Base-T [Marvell] (KV8-MAX3 motherboard) - - pci:v000010B7d00003390* - ID_MODEL_FROM_DATABASE=3c339 TokenLink Velocity -@@ -19419,7 +19419,7 @@ pci:v000010B7d00003590* - ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL - - pci:v000010B7d00003590sv000010B7sd00003590* -- ID_MODEL_FROM_DATABASE=TokenLink Velocity XL Adapter (3C359/359B) -+ ID_MODEL_FROM_DATABASE=3c359 TokenLink Velocity XL (TokenLink Velocity XL Adapter (3C359/359B)) - - pci:v000010B7d00004500* - ID_MODEL_FROM_DATABASE=3c450 HomePNA [Tornado] -@@ -19431,19 +19431,19 @@ pci:v000010B7d00005057* - ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] - - pci:v000010B7d00005057sv000010B7sd00005A57* -- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card -+ ID_MODEL_FROM_DATABASE=3c575 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) - - pci:v000010B7d00005157* - ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] - - pci:v000010B7d00005157sv000010B7sd00005B57* -- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card -+ ID_MODEL_FROM_DATABASE=3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone] (3C575 Megahertz 10/100 LAN Cardbus PC Card) - - pci:v000010B7d00005257* - ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] - - pci:v000010B7d00005257sv000010B7sd00005C57* -- ID_MODEL_FROM_DATABASE=FE575C-3Com 10/100 LAN CardBus-Fast Ethernet -+ ID_MODEL_FROM_DATABASE=3cCFE575CT CardBus [Cyclone] (FE575C-3Com 10/100 LAN CardBus-Fast Ethernet) - - pci:v000010B7d00005900* - ID_MODEL_FROM_DATABASE=3c590 10BaseT [Vortex] -@@ -19467,7 +19467,7 @@ pci:v000010B7d00005B57* - ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] - - pci:v000010B7d00005B57sv000010B7sd00005B57* -- ID_MODEL_FROM_DATABASE=3C575 Megahertz 10/100 LAN Cardbus PC Card -+ ID_MODEL_FROM_DATABASE=3c595 Megahertz 10/100 LAN CardBus [Boomerang] (3C575 Megahertz 10/100 LAN Cardbus PC Card) - - pci:v000010B7d00006000* - ID_MODEL_FROM_DATABASE=3CRSHPW796 [OfficeConnect Wireless CardBus] -@@ -19482,31 +19482,31 @@ pci:v000010B7d00006056* - ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] - - pci:v000010B7d00006056sv000010B7sd00006556* -- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c556B CardBus [Tornado] (10/100 Mini PCI Ethernet Adapter) - - pci:v000010B7d00006560* - ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] - - pci:v000010B7d00006560sv000010B7sd0000656A* -- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFE656 CardBus [Cyclone] (3CCFEM656 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006561* - ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus - - pci:v000010B7d00006561sv000010B7sd0000656B* -- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFEM656 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006562* - ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] - - pci:v000010B7d00006562sv000010B7sd0000656B* -- ID_MODEL_FROM_DATABASE=3CCFEM656B 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone] (3CCFEM656B 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006563* - ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus - - pci:v000010B7d00006563sv000010B7sd0000656B* -- ID_MODEL_FROM_DATABASE=3CCFEM656 10/100 LAN+56K Modem CardBus -+ ID_MODEL_FROM_DATABASE=3cCFEM656B 10/100 LAN+56K Modem CardBus (3CCFEM656 10/100 LAN+56K Modem CardBus) - - pci:v000010B7d00006564* - ID_MODEL_FROM_DATABASE=3cXFEM656C 10/100 LAN+Winmodem CardBus [Tornado] -@@ -19542,13 +19542,13 @@ pci:v000010B7d00009004* - ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] - - pci:v000010B7d00009004sv000010B7sd00009004* -- ID_MODEL_FROM_DATABASE=3C900B-TPO Etherlink XL TPO 10Mb -+ ID_MODEL_FROM_DATABASE=3c900B-TPO Etherlink XL [Cyclone] (3C900B-TPO Etherlink XL TPO 10Mb) - - pci:v000010B7d00009005* - ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] - - pci:v000010B7d00009005sv000010B7sd00009005* -- ID_MODEL_FROM_DATABASE=3C900B-Combo Etherlink XL Combo -+ ID_MODEL_FROM_DATABASE=3c900B-Combo Etherlink XL [Cyclone] (3C900B-Combo Etherlink XL Combo) - - pci:v000010B7d00009006* - ID_MODEL_FROM_DATABASE=3c900B-TPC Etherlink XL [Cyclone] -@@ -19572,67 +19572,67 @@ pci:v000010B7d00009055* - ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] - - pci:v000010B7d00009055sv00001028sd00000080* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000081* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000082* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000083* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000084* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000085* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000086* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000087* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000089* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000090* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000091* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000092* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000093* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000094* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000096* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000097* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000098* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv00001028sd00000099* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009055sv000010B7sd00009055* -- ID_MODEL_FROM_DATABASE=3C905B Fast Etherlink XL 10/100 -+ ID_MODEL_FROM_DATABASE=3c905B 100BaseTX [Cyclone] (3C905B Fast Etherlink XL 10/100) - - pci:v000010B7d00009056* - ID_MODEL_FROM_DATABASE=3c905B-T4 Fast EtherLink XL [Cyclone] -@@ -19647,40 +19647,40 @@ pci:v000010B7d00009200* - ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] - - pci:v000010B7d00009200sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) - - pci:v000010B7d00009200sv00001028sd00000097* -- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller) - - pci:v000010B7d00009200sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (OptiPlex GX110) - - pci:v000010B7d00009200sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Precision 530) - - pci:v000010B7d00009200sv00001028sd000000FE* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Optiplex GX240) - - pci:v000010B7d00009200sv00001028sd0000012A* -- ID_MODEL_FROM_DATABASE=3C920 Integrated Fast Ethernet Controller [Latitude C640] -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C920 Integrated Fast Ethernet Controller [Latitude C640]) - - pci:v000010B7d00009200sv000010B7sd00001000* -- ID_MODEL_FROM_DATABASE=3C905CX-TX/TX-M Fast Etherlink for PC Management NIC -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (3C905CX-TX/TX-M Fast Etherlink for PC Management NIC) - - pci:v000010B7d00009200sv000010B7sd00007000* -- ID_MODEL_FROM_DATABASE=10/100 Mini PCI Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (10/100 Mini PCI Ethernet Adapter) - - pci:v000010B7d00009200sv000010F1sd00002466* -- ID_MODEL_FROM_DATABASE=Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller) -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)) - - pci:v000010B7d00009200sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=3c905C-TX/TX-M [Tornado] (X10 Laptop) - - pci:v000010B7d00009201* - ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] - - pci:v000010B7d00009201sv00001043sd000080AB* -- ID_MODEL_FROM_DATABASE=A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller -+ ID_MODEL_FROM_DATABASE=3C920B-EMB Integrated Fast Ethernet Controller [Tornado] (A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller) - - pci:v000010B7d00009202* - ID_MODEL_FROM_DATABASE=3Com 3C920B-EMB-WNM Integrated Fast Ethernet Controller -@@ -19695,22 +19695,22 @@ pci:v000010B7d00009800* - ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] - - pci:v000010B7d00009800sv000010B7sd00009800* -- ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter -+ ID_MODEL_FROM_DATABASE=3c980-TX Fast Etherlink XL Server Adapter [Cyclone] (3c980-TX Fast Etherlink XL Server Adapter) - - pci:v000010B7d00009805* - ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] - - pci:v000010B7d00009805sv000010B7sd00001201* -- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port A -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port A) - - pci:v000010B7d00009805sv000010B7sd00001202* -- ID_MODEL_FROM_DATABASE=EtherLink Server 10/100 Dual Port B -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (EtherLink Server 10/100 Dual Port B) - - pci:v000010B7d00009805sv000010B7sd00009805* -- ID_MODEL_FROM_DATABASE=3c980 10/100baseTX NIC [Python-T] -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (3c980 10/100baseTX NIC [Python-T]) - - pci:v000010B7d00009805sv000010F1sd00002462* -- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 -+ ID_MODEL_FROM_DATABASE=3c980-C 10/100baseTX NIC [Python-T] (Thunder K7 S2462) - - pci:v000010B7d00009900* - ID_MODEL_FROM_DATABASE=3C990-TX [Typhoon] -@@ -19725,25 +19725,25 @@ pci:v000010B7d00009904* - ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] - - pci:v000010B7d00009904sv000010B7sd00001000* -- ID_MODEL_FROM_DATABASE=3CR990B-TX-M [Typhoon2] -+ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990B-TX-M [Typhoon2]) - - pci:v000010B7d00009904sv000010B7sd00002000* -- ID_MODEL_FROM_DATABASE=3CR990BSVR [Typhoon2 Server] -+ ID_MODEL_FROM_DATABASE=3C990B-TX-M/3C990BSVR [Typhoon2] (3CR990BSVR [Typhoon2 Server]) - - pci:v000010B7d00009905* - ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] - - pci:v000010B7d00009905sv000010B7sd00001101* -- ID_MODEL_FROM_DATABASE=3CR990-FX-95 [Typhoon Fiber 56-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 [Typhoon Fiber 56-bit]) - - pci:v000010B7d00009905sv000010B7sd00001102* -- ID_MODEL_FROM_DATABASE=3CR990-FX-97 [Typhoon Fiber 168-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 [Typhoon Fiber 168-bit]) - - pci:v000010B7d00009905sv000010B7sd00002101* -- ID_MODEL_FROM_DATABASE=3CR990-FX-95 Server [Typhoon Fiber 56-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-95 Server [Typhoon Fiber 56-bit]) - - pci:v000010B7d00009905sv000010B7sd00002102* -- ID_MODEL_FROM_DATABASE=3CR990-FX-97 Server [Typhoon Fiber 168-bit] -+ ID_MODEL_FROM_DATABASE=3CR990-FX-95/97/95 [Typhon Fiber] (3CR990-FX-97 Server [Typhoon Fiber 168-bit]) - - pci:v000010B7d00009908* - ID_MODEL_FROM_DATABASE=3CR990SVR95 [Typhoon Server 56-bit] -@@ -19764,49 +19764,49 @@ pci:v000010B8d00000005* - ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter - - pci:v000010B8d00000005sv00001055sd0000E000* -- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171Q-PCI] -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171Q-PCI]) - - pci:v000010B8d00000005sv00001055sd0000E002* -- ID_MODEL_FROM_DATABASE=LANEPIC 10/100 [EVB171G-PCI] -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (LANEPIC 10/100 [EVB171G-PCI]) - - pci:v000010B8d00000005sv000010B8sd0000A011* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A014* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A015* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A016* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000005sv000010B8sd0000A017* -- ID_MODEL_FROM_DATABASE=EtherPower II 10/100 -+ ID_MODEL_FROM_DATABASE=83c170 EPIC/100 Fast Ethernet Adapter (EtherPower II 10/100) - - pci:v000010B8d00000006* - ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter - - pci:v000010B8d00000006sv00001055sd0000E100* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv00001055sd0000E102* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv00001055sd0000E300* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv00001055sd0000E302* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv000010B8sd0000A012* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv000013A2sd00008002* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00000006sv000013A2sd00008006* -- ID_MODEL_FROM_DATABASE=LANEPIC Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=83c175 EPIC/100 Fast Ethernet Adapter (LANEPIC Cardbus Fast Ethernet Adapter) - - pci:v000010B8d00001000* - ID_MODEL_FROM_DATABASE=FDC 37c665 -@@ -19869,13 +19869,13 @@ pci:v000010B9d00001521* - ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] - - pci:v000010B9d00001521sv000010B9sd00001521* -- ID_MODEL_FROM_DATABASE=ALI M1521 Aladdin III CPU Bridge -+ ID_MODEL_FROM_DATABASE=M1521 [Aladdin III] (ALI M1521 Aladdin III CPU Bridge) - - pci:v000010B9d00001523* - ID_MODEL_FROM_DATABASE=M1523 - - pci:v000010B9d00001523sv000010B9sd00001523* -- ID_MODEL_FROM_DATABASE=ALI M1523 ISA Bridge -+ ID_MODEL_FROM_DATABASE=M1523 (ALI M1523 ISA Bridge) - - pci:v000010B9d00001531* - ID_MODEL_FROM_DATABASE=M1531 [Aladdin IV] -@@ -19884,16 +19884,16 @@ pci:v000010B9d00001533* - ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] - - pci:v000010B9d00001533sv00001014sd0000053B* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ThinkPad R40e) - - pci:v000010B9d00001533sv000010B9sd00001533* -- ID_MODEL_FROM_DATABASE=ALi M1533 Aladdin IV/V ISA Bridge -+ ID_MODEL_FROM_DATABASE=M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+] (ALi M1533 Aladdin IV/V ISA Bridge) - - pci:v000010B9d00001541* - ID_MODEL_FROM_DATABASE=M1541 - - pci:v000010B9d00001541sv000010B9sd00001541* -- ID_MODEL_FROM_DATABASE=ALI M1541 Aladdin V/V+ AGP System Controller -+ ID_MODEL_FROM_DATABASE=M1541 (ALI M1541 Aladdin V/V+ AGP System Controller) - - pci:v000010B9d00001543* - ID_MODEL_FROM_DATABASE=M1543 -@@ -19902,10 +19902,10 @@ pci:v000010B9d00001563* - ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge - - pci:v000010B9d00001563sv000010B9sd00001563* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00001563sv00001849sd00001563* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M1563 HyperTransport South Bridge (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00001573* - ID_MODEL_FROM_DATABASE=PCI to LPC Controller -@@ -20007,22 +20007,22 @@ pci:v000010B9d00005229* - ID_MODEL_FROM_DATABASE=M5229 IDE - - pci:v000010B9d00005229sv00001014sd0000050F* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R30) - - pci:v000010B9d00005229sv00001014sd0000053D* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M5229 IDE (ThinkPad R40e) - - pci:v000010B9d00005229sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin IDE -+ ID_MODEL_FROM_DATABASE=M5229 IDE (Pavilion ze4400 builtin IDE) - - pci:v000010B9d00005229sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M5229 IDE (XE4500 Notebook) - - pci:v000010B9d00005229sv00001043sd00008053* -- ID_MODEL_FROM_DATABASE=A7A266 Motherboard IDE -+ ID_MODEL_FROM_DATABASE=M5229 IDE (A7A266 Motherboard IDE) - - pci:v000010B9d00005229sv00001849sd00005229* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard IDE (PATA) -+ ID_MODEL_FROM_DATABASE=M5229 IDE (ASRock 939Dual-SATA2 Motherboard IDE (PATA)) - - pci:v000010B9d00005235* - ID_MODEL_FROM_DATABASE=M5225 -@@ -20031,31 +20031,31 @@ pci:v000010B9d00005237* - ID_MODEL_FROM_DATABASE=USB 1.1 Controller - - pci:v000010B9d00005237sv00001014sd00000540* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ThinkPad R40e) - - pci:v000010B9d00005237sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin USB -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (Pavilion ze4400 builtin USB) - - pci:v000010B9d00005237sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (XE4500 Notebook) - - pci:v000010B9d00005237sv0000104Dsd0000810F* -- ID_MODEL_FROM_DATABASE=VAIO PCG-U1 USB/OHCI Revision 1.0 -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (VAIO PCG-U1 USB/OHCI Revision 1.0) - - pci:v000010B9d00005237sv000010B9sd00005237* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005237sv00001849sd00005237* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 1.1 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005239* - ID_MODEL_FROM_DATABASE=USB 2.0 Controller - - pci:v000010B9d00005239sv000010B9sd00005239* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005239sv00001849sd00005239* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 Controller (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005243* - ID_MODEL_FROM_DATABASE=M1541 PCI to AGP Controller -@@ -20103,7 +20103,7 @@ pci:v000010B9d00005288* - ID_MODEL_FROM_DATABASE=ULi M5288 SATA - - pci:v000010B9d00005288sv00001043sd00008056* -- ID_MODEL_FROM_DATABASE=A8R-MVP Mainboard -+ ID_MODEL_FROM_DATABASE=ULi M5288 SATA (A8R-MVP Mainboard) - - pci:v000010B9d00005289* - ID_MODEL_FROM_DATABASE=ULi 5289 SATA -@@ -20115,16 +20115,16 @@ pci:v000010B9d00005451* - ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device - - pci:v000010B9d00005451sv00001014sd00000506* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R30) - - pci:v000010B9d00005451sv00001014sd0000053E* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (ThinkPad R40e) - - pci:v000010B9d00005451sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Audio -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (Pavilion ze4400 builtin Audio) - - pci:v000010B9d00005451sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M5451 PCI AC-Link Controller Audio Device (XE4500 Notebook) - - pci:v000010B9d00005453* - ID_MODEL_FROM_DATABASE=M5453 PCI AC-Link Controller Modem Device -@@ -20133,22 +20133,22 @@ pci:v000010B9d00005455* - ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device - - pci:v000010B9d00005455sv000010B9sd00005455* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005455sv00001849sd00000850* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M5455 PCI AC-Link Controller Audio Device (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010B9d00005457* - ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller - - pci:v000010B9d00005457sv00001014sd00000535* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (ThinkPad R40e) - - pci:v000010B9d00005457sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 builtin Modem Device -+ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (Pavilion ze4400 builtin Modem Device) - - pci:v000010B9d00005457sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M5457 AC'97 Modem Controller (XE4500 Notebook) - - pci:v000010B9d00005459* - ID_MODEL_FROM_DATABASE=SmartLink SmartPCI561 56K Modem -@@ -20169,19 +20169,19 @@ pci:v000010B9d00007101* - ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] - - pci:v000010B9d00007101sv00001014sd00000510* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R30) - - pci:v000010B9d00007101sv00001014sd0000053C* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ThinkPad R40e) - - pci:v000010B9d00007101sv0000103Csd00000024* -- ID_MODEL_FROM_DATABASE=Pavilion ze4400 -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (Pavilion ze4400) - - pci:v000010B9d00007101sv0000103Csd00000025* -- ID_MODEL_FROM_DATABASE=XE4500 Notebook -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (XE4500 Notebook) - - pci:v000010B9d00007101sv00001849sd00007101* -- ID_MODEL_FROM_DATABASE=ASRock 939Dual-SATA2 Motherboard -+ ID_MODEL_FROM_DATABASE=M7101 Power Management Controller [PMU] (ASRock 939Dual-SATA2 Motherboard) - - pci:v000010BA* - ID_VENDOR_FROM_DATABASE=Mitsubishi Electric Corp. -@@ -20196,7 +20196,7 @@ pci:v000010BAd00000308* - ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] - - pci:v000010BAd00000308sv000010DDsd00000024* -- ID_MODEL_FROM_DATABASE=Tornado 3000 -+ ID_MODEL_FROM_DATABASE=Tornado 3000 [OEM Evans & Sutherland] (Tornado 3000) - - pci:v000010BAd00001002* - ID_MODEL_FROM_DATABASE=VG500 [VolumePro Volume Rendering Accelerator] -@@ -20259,79 +20259,79 @@ pci:v000010C8d00000004* - ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] - - pci:v000010C8d00000004sv00001014sd000000BA* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001025sd00001007* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd00000074* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd00000075* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd0000007D* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001028sd0000007E* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv00001033sd0000802F* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv0000104Dsd0000801B* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv0000104Dsd0000802F* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv0000104Dsd0000830B* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010BAsd00000E00* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010C8sd00000004* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010CFsd00001029* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd00008308* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd00008309* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd0000830B* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd0000830D* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000004sv000010F7sd00008312* -- ID_MODEL_FROM_DATABASE=MagicGraph 128XD -+ ID_MODEL_FROM_DATABASE=NM2160 [MagicGraph 128XD] (MagicGraph 128XD) - - pci:v000010C8d00000005* - ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] - - pci:v000010C8d00000005sv00001014sd000000DD* -- ID_MODEL_FROM_DATABASE=ThinkPad 570 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (ThinkPad 570) - - pci:v000010C8d00000005sv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=Latitude CPi A -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicGraph 256AV] (Latitude CPi A) - - pci:v000010C8d00000006* - ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] - - pci:v000010C8d00000006sv00001014sd00000152* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X -+ ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX] (ThinkPad 600X) - - pci:v000010C8d00000016* - ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] - - pci:v000010C8d00000016sv000010C8sd00000016* -- ID_MODEL_FROM_DATABASE=MagicMedia 256XL+ -+ ID_MODEL_FROM_DATABASE=NM2380 [MagicMedia 256XL+] (MagicMedia 256XL+) - - pci:v000010C8d00000025* - ID_MODEL_FROM_DATABASE=NM2230 [MagicGraph 256AV+] -@@ -20343,40 +20343,40 @@ pci:v000010C8d00008005* - ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] - - pci:v000010C8d00008005sv00000E11sd0000B0D1* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Discovery -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Discovery) - - pci:v000010C8d00008005sv00000E11sd0000B126* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Durango -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Durango) - - pci:v000010C8d00008005sv00001014sd000000DD* -- ID_MODEL_FROM_DATABASE=ThinkPad 390/i1720/i1721 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (ThinkPad 390/i1720/i1721) - - pci:v000010C8d00008005sv00001025sd00001003* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on TravelMate 720 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on TravelMate 720) - - pci:v000010C8d00008005sv00001028sd00000088* -- ID_MODEL_FROM_DATABASE=Latitude CPi A -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (Latitude CPi A) - - pci:v000010C8d00008005sv00001028sd0000008F* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Colorado Inspiron -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Colorado Inspiron) - - pci:v000010C8d00008005sv0000103Csd00000007* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager II -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager II) - - pci:v000010C8d00008005sv0000103Csd00000008* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Voyager III -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Voyager III) - - pci:v000010C8d00008005sv0000103Csd0000000D* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on Omnibook 900 -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on Omnibook 900) - - pci:v000010C8d00008005sv000010C8sd00008005* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device on FireAnt -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device on FireAnt) - - pci:v000010C8d00008005sv0000110Asd00008005* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) - - pci:v000010C8d00008005sv000014C0sd00000004* -- ID_MODEL_FROM_DATABASE=MagicMedia 256AV Audio Device -+ ID_MODEL_FROM_DATABASE=NM2200 [MagicMedia 256AV Audio] (MagicMedia 256AV Audio Device) - - pci:v000010C8d00008006* - ID_MODEL_FROM_DATABASE=NM2360 [MagicMedia 256ZX Audio] -@@ -20415,10 +20415,10 @@ pci:v000010CDd00001300* - ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U - - pci:v000010CDd00001300sv000010CDsd00001310* -- ID_MODEL_FROM_DATABASE=ASC1300 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (ASC1300 SCSI Adapter) - - pci:v000010CDd00001300sv00001195sd00001320* -- ID_MODEL_FROM_DATABASE=Ultra-SCSI CardBus PC Card REX CB31 -+ ID_MODEL_FROM_DATABASE=ABP940-U / ABP960-U (Ultra-SCSI CardBus PC Card REX CB31) - - pci:v000010CDd00002300* - ID_MODEL_FROM_DATABASE=ABP940-UW -@@ -20511,7 +20511,7 @@ pci:v000010D9d00000531* - ID_MODEL_FROM_DATABASE=MX987x5 - - pci:v000010D9d00000531sv00001186sd00001200* -- ID_MODEL_FROM_DATABASE=DFE-540TX ProFAST 10/100 Adapter -+ ID_MODEL_FROM_DATABASE=MX987x5 (DFE-540TX ProFAST 10/100 Adapter) - - pci:v000010D9d00008625* - ID_MODEL_FROM_DATABASE=MX86250 -@@ -20559,7 +20559,7 @@ pci:v000010DDd00000100* - ID_MODEL_FROM_DATABASE=Lightning 1200 - - pci:v000010DDd00000100sv000010DDsd00000023* -- ID_MODEL_FROM_DATABASE=Lightning 1200 15+16M -+ ID_MODEL_FROM_DATABASE=Lightning 1200 (15+16M) - - pci:v000010DE* - ID_VENDOR_FROM_DATABASE=NVIDIA Corporation -@@ -20574,193 +20574,193 @@ pci:v000010DEd00000020* - ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] - - pci:v000010DEd00000020sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=V3400 TNT -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (V3400 TNT) - - pci:v000010DEd00000020sv00001048sd00000C18* -- ID_MODEL_FROM_DATABASE=Erazor II SGRAM -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II SGRAM) - - pci:v000010DEd00000020sv00001048sd00000C19* -- ID_MODEL_FROM_DATABASE=Erazor II -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) - - pci:v000010DEd00000020sv00001048sd00000C1B* -- ID_MODEL_FROM_DATABASE=Erazor II -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) - - pci:v000010DEd00000020sv00001048sd00000C1C* -- ID_MODEL_FROM_DATABASE=Erazor II -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Erazor II) - - pci:v000010DEd00000020sv00001092sd00000550* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00000552* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004804* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004808* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004810* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004812* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004815* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004820* -- ID_MODEL_FROM_DATABASE=Viper V550 with TV out -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550 with TV out) - - pci:v000010DEd00000020sv00001092sd00004822* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004904* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00004914* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv00001092sd00008225* -- ID_MODEL_FROM_DATABASE=Viper V550 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Viper V550) - - pci:v000010DEd00000020sv000010B4sd0000273D* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) - - pci:v000010DEd00000020sv000010B4sd0000273E* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) - - pci:v000010DEd00000020sv000010B4sd00002740* -- ID_MODEL_FROM_DATABASE=Velocity 4400 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Velocity 4400) - - pci:v000010DEd00000020sv000010DEsd00000020* -- ID_MODEL_FROM_DATABASE=Riva TNT -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Riva TNT) - - pci:v000010DEd00000020sv00001102sd00001015* -- ID_MODEL_FROM_DATABASE=Graphics Blaster CT6710 -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster CT6710) - - pci:v000010DEd00000020sv00001102sd00001016* -- ID_MODEL_FROM_DATABASE=Graphics Blaster RIVA TNT -+ ID_MODEL_FROM_DATABASE=NV4 [Riva TNT] (Graphics Blaster RIVA TNT) - - pci:v000010DEd00000028* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] - - pci:v000010DEd00000028sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800 SGRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SGRAM) - - pci:v000010DEd00000028sv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800 SDRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800 SDRAM) - - pci:v000010DEd00000028sv00001043sd00000205* -- ID_MODEL_FROM_DATABASE=PCI-V3800 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (PCI-V3800) - - pci:v000010DEd00000028sv00001043sd00004000* -- ID_MODEL_FROM_DATABASE=AGP-V3800PRO -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (AGP-V3800PRO) - - pci:v000010DEd00000028sv00001048sd00000C21* -- ID_MODEL_FROM_DATABASE=Synergy II -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Synergy II) - - pci:v000010DEd00000028sv00001048sd00000C28* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C29* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C2A* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C2B* -- ID_MODEL_FROM_DATABASE=Erazor III -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III) - - pci:v000010DEd00000028sv00001048sd00000C31* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv00001048sd00000C32* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv00001048sd00000C33* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv00001048sd00000C34* -- ID_MODEL_FROM_DATABASE=Erazor III Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Erazor III Pro) - - pci:v000010DEd00000028sv0000107Dsd00002134* -- ID_MODEL_FROM_DATABASE=WinFast 3D S320 II + TV-Out -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (WinFast 3D S320 II + TV-Out) - - pci:v000010DEd00000028sv00001092sd00004804* -- ID_MODEL_FROM_DATABASE=Viper V770 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) - - pci:v000010DEd00000028sv00001092sd00004A00* -- ID_MODEL_FROM_DATABASE=Viper V770 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770) - - pci:v000010DEd00000028sv00001092sd00004A02* -- ID_MODEL_FROM_DATABASE=Viper V770 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) - - pci:v000010DEd00000028sv00001092sd00005A00* -- ID_MODEL_FROM_DATABASE=RIVA TNT2/TNT2 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2/TNT2 Pro) - - pci:v000010DEd00000028sv00001092sd00005A40* -- ID_MODEL_FROM_DATABASE=Viper V770D AGP -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770D AGP) - - pci:v000010DEd00000028sv00001092sd00006A02* -- ID_MODEL_FROM_DATABASE=Viper V770 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) - - pci:v000010DEd00000028sv00001092sd00007A02* -- ID_MODEL_FROM_DATABASE=Viper V770 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Viper V770 Ultra) - - pci:v000010DEd00000028sv000010DEsd00000005* -- ID_MODEL_FROM_DATABASE=RIVA TNT2 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (RIVA TNT2 Pro) - - pci:v000010DEd00000028sv000010DEsd0000000F* -- ID_MODEL_FROM_DATABASE=Compaq NVIDIA TNT2 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Compaq NVIDIA TNT2 Pro) - - pci:v000010DEd00000028sv00001102sd00001020* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2) - - pci:v000010DEd00000028sv00001102sd00001026* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Digital -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (3D Blaster RIVA TNT2 Digital) - - pci:v000010DEd00000028sv00001462sd00008806* -- ID_MODEL_FROM_DATABASE=MS-8806 AGPhantom Graphics Card -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (MS-8806 AGPhantom Graphics Card) - - pci:v000010DEd00000028sv000014AFsd00005810* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 / TNT2 Pro] (Maxi Gamer Xentor) - - pci:v000010DEd00000029* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] - - pci:v000010DEd00000029sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Deluxe -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Deluxe) - - pci:v000010DEd00000029sv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Ultra SDRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (AGP-V3800 Ultra SDRAM) - - pci:v000010DEd00000029sv00001043sd00000205* -- ID_MODEL_FROM_DATABASE=PCI-V3800 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (PCI-V3800 Ultra) - - pci:v000010DEd00000029sv00001048sd00000C2E* -- ID_MODEL_FROM_DATABASE=Erazor III Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) - - pci:v000010DEd00000029sv00001048sd00000C2F* -- ID_MODEL_FROM_DATABASE=Erazor III Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) - - pci:v000010DEd00000029sv00001048sd00000C30* -- ID_MODEL_FROM_DATABASE=Erazor III Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Erazor III Ultra) - - pci:v000010DEd00000029sv00001102sd00001021* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) - - pci:v000010DEd00000029sv00001102sd00001029* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) - - pci:v000010DEd00000029sv00001102sd0000102F* -- ID_MODEL_FROM_DATABASE=3D Blaster RIVA TNT2 Ultra -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (3D Blaster RIVA TNT2 Ultra) - - pci:v000010DEd00000029sv000014AFsd00005820* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor 32 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Maxi Gamer Xentor 32) - - pci:v000010DEd00000029sv00004843sd00004F34* -- ID_MODEL_FROM_DATABASE=Dynamite -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Ultra] (Dynamite) - - pci:v000010DEd0000002A* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2] -@@ -20772,85 +20772,85 @@ pci:v000010DEd0000002C* - ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] - - pci:v000010DEd0000002Csv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat SDRAM -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat SDRAM) - - pci:v000010DEd0000002Csv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800 Combat -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (AGP-V3800 Combat) - - pci:v000010DEd0000002Csv00001048sd00000C20* -- ID_MODEL_FROM_DATABASE=TNT2 Vanta -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) - - pci:v000010DEd0000002Csv00001048sd00000C21* -- ID_MODEL_FROM_DATABASE=TNT2 Vanta -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta) - - pci:v000010DEd0000002Csv00001048sd00000C25* -- ID_MODEL_FROM_DATABASE=TNT2 Vanta 16MB -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (TNT2 Vanta 16MB) - - pci:v000010DEd0000002Csv00001092sd00006820* -- ID_MODEL_FROM_DATABASE=Viper V730 -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Viper V730) - - pci:v000010DEd0000002Csv00001102sd00001031* -- ID_MODEL_FROM_DATABASE=CT6938 VANTA 8MB -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6938 VANTA 8MB) - - pci:v000010DEd0000002Csv00001102sd00001034* -- ID_MODEL_FROM_DATABASE=CT6894 VANTA 16MB -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (CT6894 VANTA 16MB) - - pci:v000010DEd0000002Csv000014AFsd00005008* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix 2 -+ ID_MODEL_FROM_DATABASE=NV5 [Vanta / Vanta LT] (Maxi Gamer Phoenix 2) - - pci:v000010DEd0000002D* - ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] - - pci:v000010DEd0000002Dsv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V3800M -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) - - pci:v000010DEd0000002Dsv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V3800M -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (AGP-V3800M) - - pci:v000010DEd0000002Dsv00001048sd00000C3A* -- ID_MODEL_FROM_DATABASE=Erazor III LT -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) - - pci:v000010DEd0000002Dsv00001048sd00000C3B* -- ID_MODEL_FROM_DATABASE=Erazor III LT -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Erazor III LT) - - pci:v000010DEd0000002Dsv0000107Dsd00002137* -- ID_MODEL_FROM_DATABASE=WinFast 3D S325 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (WinFast 3D S325) - - pci:v000010DEd0000002Dsv000010DEsd00000006* -- ID_MODEL_FROM_DATABASE=RIVA TNT2 Model 64/Model 64 Pro -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (RIVA TNT2 Model 64/Model 64 Pro) - - pci:v000010DEd0000002Dsv000010DEsd0000001E* -- ID_MODEL_FROM_DATABASE=M64 AGP4x -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (M64 AGP4x) - - pci:v000010DEd0000002Dsv00001102sd00001023* -- ID_MODEL_FROM_DATABASE=CT6892 RIVA TNT2 Value -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6892 RIVA TNT2 Value) - - pci:v000010DEd0000002Dsv00001102sd00001024* -- ID_MODEL_FROM_DATABASE=CT6932 RIVA TNT2 Value 32Mb -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6932 RIVA TNT2 Value 32Mb) - - pci:v000010DEd0000002Dsv00001102sd0000102C* -- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value [Jumper] -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value [Jumper]) - - pci:v000010DEd0000002Dsv00001102sd00001030* -- ID_MODEL_FROM_DATABASE=CT6931 RIVA TNT2 Value -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (CT6931 RIVA TNT2 Value) - - pci:v000010DEd0000002Dsv0000110Asd0000006F* -- ID_MODEL_FROM_DATABASE=GM1000-16 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) - - pci:v000010DEd0000002Dsv0000110Asd00000081* -- ID_MODEL_FROM_DATABASE=GM1000-16 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (GM1000-16) - - pci:v000010DEd0000002Dsv00001462sd00008808* -- ID_MODEL_FROM_DATABASE=MSI-8808 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (MSI-8808) - - pci:v000010DEd0000002Dsv000014AFsd00005620* -- ID_MODEL_FROM_DATABASE=Gamer Cougar Video Edition -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Gamer Cougar Video Edition) - - pci:v000010DEd0000002Dsv00001554sd00001041* -- ID_MODEL_FROM_DATABASE=Pixelview RIVA TNT2 M64 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Pixelview RIVA TNT2 M64) - - pci:v000010DEd0000002Dsv00001569sd0000002D* -- ID_MODEL_FROM_DATABASE=Palit Microsystems Daytona TNT2 M64 -+ ID_MODEL_FROM_DATABASE=NV5 [Riva TNT2 Model 64 / Model 64 Pro] (Palit Microsystems Daytona TNT2 M64) - - pci:v000010DEd00000034* - ID_MODEL_FROM_DATABASE=MCP04 SMBus -@@ -20889,19 +20889,19 @@ pci:v000010DEd00000041* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] - - pci:v000010DEd00000041sv00001043sd0000817B* -- ID_MODEL_FROM_DATABASE=V9999 Gamer Edition -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (V9999 Gamer Edition) - - pci:v000010DEd00000041sv0000107Dsd00002992* -- ID_MODEL_FROM_DATABASE=WinFast A400 -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (WinFast A400) - - pci:v000010DEd00000041sv00001458sd0000310F* -- ID_MODEL_FROM_DATABASE=Geforce 6800 GV-N6812 -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800] (Geforce 6800 GV-N6812) - - pci:v000010DEd00000042* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] - - pci:v000010DEd00000042sv0000107Dsd0000299B* -- ID_MODEL_FROM_DATABASE=WinFast A400 LE -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 LE] (WinFast A400 LE) - - pci:v000010DEd00000043* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XE] -@@ -20913,16 +20913,16 @@ pci:v000010DEd00000045* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] - - pci:v000010DEd00000045sv00001043sd0000817D* -- ID_MODEL_FROM_DATABASE=V9999GT -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (V9999GT) - - pci:v000010DEd00000045sv00001458sd00003140* -- ID_MODEL_FROM_DATABASE=GV-N68T256D -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] (GV-N68T256D) - - pci:v000010DEd00000047* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] - - pci:v000010DEd00000047sv00001682sd00002109* -- ID_MODEL_FROM_DATABASE=GeForce 6800 GS -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GS] (GeForce 6800 GS) - - pci:v000010DEd00000048* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 XT] -@@ -20934,133 +20934,133 @@ pci:v000010DEd00000050* - ID_MODEL_FROM_DATABASE=CK804 ISA Bridge - - pci:v000010DEd00000050sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000050sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (Tomcat K8E (S2865)) - - pci:v000010DEd00000050sv00001458sd00000C11* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000050sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (MSI K8N Diamond) - - pci:v000010DEd00000050sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (K8N Neo4-F mainboard) - - pci:v000010DEd00000050sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (KN8-Ultra Mainboard) - - pci:v000010DEd00000050sv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (NF4 AM2L Mainboard) - - pci:v000010DEd00000051* - ID_MODEL_FROM_DATABASE=CK804 ISA Bridge - - pci:v000010DEd00000051sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 ISA Bridge -+ ID_MODEL_FROM_DATABASE=CK804 ISA Bridge (PowerEdge T105 ISA Bridge) - - pci:v000010DEd00000052* - ID_MODEL_FROM_DATABASE=CK804 SMBus - - pci:v000010DEd00000052sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 SMBus -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (PowerEdge T105 SMBus) - - pci:v000010DEd00000052sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000052sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (Tomcat K8E (S2865)) - - pci:v000010DEd00000052sv00001458sd00000C11* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000052sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (MSI K8N Diamond) - - pci:v000010DEd00000052sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (K8N Neo4-F mainboard) - - pci:v000010DEd00000052sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (KN8-Ultra Mainboard) - - pci:v000010DEd00000052sv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 SMBus (NF4 AM2L Mainboard) - - pci:v000010DEd00000053* - ID_MODEL_FROM_DATABASE=CK804 IDE - - pci:v000010DEd00000053sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000053sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 IDE (Tomcat K8E (S2865)) - - pci:v000010DEd00000053sv00001458sd00005002* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000053sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 IDE (MSI K8N Diamond) - - pci:v000010DEd00000053sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (K8N Neo4-F mainboard) - - pci:v000010DEd00000053sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (KN8-Ultra Mainboard) - - pci:v000010DEd00000053sv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 IDE (NF4 AM2L Mainboard) - - pci:v000010DEd00000054* - ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller - - pci:v000010DEd00000054sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) - - pci:v000010DEd00000054sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (A8N Series Mainboard) - - pci:v000010DEd00000054sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000054sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000054sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (MSI K8N Diamond) - - pci:v000010DEd00000054sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000054sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000054sv00001565sd00005401* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) - - pci:v000010DEd00000055* - ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller - - pci:v000010DEd00000055sv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Serial ATA -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (PowerEdge T105 Serial ATA) - - pci:v000010DEd00000055sv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000055sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000055sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000055sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000055sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000055sv00001565sd00005401* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Serial ATA Controller (NF4 AM2L Mainboard) - - pci:v000010DEd00000056* - ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller -@@ -21069,28 +21069,28 @@ pci:v000010DEd00000057* - ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller - - pci:v000010DEd00000057sv00001043sd00008141* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000057sv000010DEsd0000CB84* -- ID_MODEL_FROM_DATABASE=NF4 Lanparty -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 Lanparty) - - pci:v000010DEd00000057sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000057sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd00000057sv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (MSI K8N Diamond) - - pci:v000010DEd00000057sv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000057sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000057sv00001565sd00002501* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Ethernet Controller (NF4 AM2L Mainboard) - - pci:v000010DEd00000058* - ID_MODEL_FROM_DATABASE=CK804 AC'97 Modem -@@ -21099,73 +21099,73 @@ pci:v000010DEd00000059* - ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller - - pci:v000010DEd00000059sv00001043sd0000812A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd00000059sv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (Tomcat K8E (S2865)) - - pci:v000010DEd00000059sv00001462sd00007585* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (K8N Neo4-F mainboard) - - pci:v000010DEd00000059sv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (KN8-Ultra Mainboard) - - pci:v000010DEd00000059sv00001565sd00008211* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 AC'97 Audio Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005A* - ID_MODEL_FROM_DATABASE=CK804 USB Controller - - pci:v000010DEd0000005Asv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) - - pci:v000010DEd0000005Asv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd0000005Asv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) - - pci:v000010DEd0000005Asv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd0000005Asv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) - - pci:v000010DEd0000005Asv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) - - pci:v000010DEd0000005Asv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) - - pci:v000010DEd0000005Asv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005B* - ID_MODEL_FROM_DATABASE=CK804 USB Controller - - pci:v000010DEd0000005Bsv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 onboard USB -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (PowerEdge T105 onboard USB) - - pci:v000010DEd0000005Bsv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=K8N4/A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N4/A8N Series Mainboard) - - pci:v000010DEd0000005Bsv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (Tomcat K8E (S2865)) - - pci:v000010DEd0000005Bsv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd0000005Bsv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=MSI K8N Diamond -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (MSI K8N Diamond) - - pci:v000010DEd0000005Bsv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (K8N Neo4-F mainboard) - - pci:v000010DEd0000005Bsv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (KN8-Ultra Mainboard) - - pci:v000010DEd0000005Bsv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 USB Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005C* - ID_MODEL_FROM_DATABASE=CK804 PCI Bridge -@@ -21177,34 +21177,34 @@ pci:v000010DEd0000005E* - ID_MODEL_FROM_DATABASE=CK804 Memory Controller - - pci:v000010DEd0000005Esv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Memory Controller -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (PowerEdge T105 Memory Controller) - - pci:v000010DEd0000005Esv00001043sd0000815A* -- ID_MODEL_FROM_DATABASE=A8N Series Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (A8N Series Mainboard) - - pci:v000010DEd0000005Esv000010DEsd0000005E* -- ID_MODEL_FROM_DATABASE=ECS Elitegroup NFORCE3-A939 motherboard. -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (ECS Elitegroup NFORCE3-A939 motherboard.) - - pci:v000010DEd0000005Esv000010F1sd00002865* -- ID_MODEL_FROM_DATABASE=Tomcat K8E (S2865) -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Tomcat K8E (S2865)) - - pci:v000010DEd0000005Esv000010F1sd00002891* -- ID_MODEL_FROM_DATABASE=Thunder K8SRE Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (Thunder K8SRE Mainboard) - - pci:v000010DEd0000005Esv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-K8N Ultra-9 Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (GA-K8N Ultra-9 Mainboard) - - pci:v000010DEd0000005Esv00001462sd00007100* -- ID_MODEL_FROM_DATABASE=K8N Diamond Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Diamond Mainboard) - - pci:v000010DEd0000005Esv00001462sd00007125* -- ID_MODEL_FROM_DATABASE=K8N Neo4-F Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (K8N Neo4-F Mainboard) - - pci:v000010DEd0000005Esv0000147Bsd00001C1A* -- ID_MODEL_FROM_DATABASE=KN8-Ultra Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (KN8-Ultra Mainboard) - - pci:v000010DEd0000005Esv00001565sd00003402* -- ID_MODEL_FROM_DATABASE=NF4 AM2L Mainboard -+ ID_MODEL_FROM_DATABASE=CK804 Memory Controller (NF4 AM2L Mainboard) - - pci:v000010DEd0000005F* - ID_MODEL_FROM_DATABASE=CK804 Memory Controller -@@ -21213,61 +21213,61 @@ pci:v000010DEd00000060* - ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge - - pci:v000010DEd00000060sv00001043sd000080AD* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard -+ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (A7N8X Mainboard) - - pci:v000010DEd00000060sv0000147Bsd00001C02* -- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X -+ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (NF7-S/NF7 (nVidia-nForce2) 2.X) - - pci:v000010DEd00000060sv0000A0A0sd000003BA* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 ISA Bridge (UK79G-1394 motherboard) - - pci:v000010DEd00000064* - ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) - - pci:v000010DEd00000064sv0000147Bsd00001C02* -- ID_MODEL_FROM_DATABASE=NF7-S/NF7 (nVidia-nForce2) 2.X -+ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (NF7-S/NF7 (nVidia-nForce2) 2.X) - - pci:v000010DEd00000064sv0000A0A0sd000003BB* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 SMBus (MCP) (UK79G-1394 motherboard) - - pci:v000010DEd00000065* - ID_MODEL_FROM_DATABASE=nForce2 IDE - - pci:v000010DEd00000065sv000010DEsd00000C11* -- ID_MODEL_FROM_DATABASE=nForce 2 EIDE Controller -+ ID_MODEL_FROM_DATABASE=nForce2 IDE (nForce 2 EIDE Controller) - - pci:v000010DEd00000065sv0000A0A0sd000003B2* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 IDE (UK79G-1394 motherboard) - - pci:v000010DEd00000066* - ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller - - pci:v000010DEd00000066sv00001043sd000080A7* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard onboard nForce2 Ethernet -+ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (A7N8X Mainboard onboard nForce2 Ethernet) - - pci:v000010DEd00000066sv000010DEsd00000C11* -- ID_MODEL_FROM_DATABASE=nForce MCP-T Networking Adapter -+ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (nForce MCP-T Networking Adapter) - - pci:v000010DEd00000066sv0000A0A0sd000003B3* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Ethernet Controller (UK79G-1394 motherboard) - - pci:v000010DEd00000067* - ID_MODEL_FROM_DATABASE=nForce2 USB Controller - - pci:v000010DEd00000067sv00001043sd00000C11* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) - - pci:v000010DEd00000067sv0000A0A0sd000003B4* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) - - pci:v000010DEd00000068* - ID_MODEL_FROM_DATABASE=nForce2 USB Controller - - pci:v000010DEd00000068sv00001043sd00000C11* -- ID_MODEL_FROM_DATABASE=A7N8X Mainboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (A7N8X Mainboard) - - pci:v000010DEd00000068sv0000A0A0sd000003B4* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 USB Controller (UK79G-1394 motherboard) - - pci:v000010DEd0000006A* - ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) -@@ -21276,16 +21276,16 @@ pci:v000010DEd0000006Asv00001043sd00008095* - ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) - - pci:v000010DEd0000006Asv0000A0A0sd00000304* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 AC97 Audio Controler (MCP) (UK79G-1394 motherboard) - - pci:v000010DEd0000006B* - ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit - - pci:v000010DEd0000006Bsv000010DEsd0000006B* -- ID_MODEL_FROM_DATABASE=nForce2 MCP Audio Processing Unit -+ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (nForce2 MCP Audio Processing Unit) - - pci:v000010DEd0000006Bsv0000A0A0sd00000304* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce Audio Processing Unit (UK79G-1394 motherboard) - - pci:v000010DEd0000006C* - ID_MODEL_FROM_DATABASE=nForce2 External PCI Bridge -@@ -21297,25 +21297,25 @@ pci:v000010DEd0000006E* - ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller - - pci:v000010DEd0000006Esv0000A0A0sd00000306* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 FireWire (IEEE 1394) Controller (UK79G-1394 motherboard) - - pci:v000010DEd00000080* - ID_MODEL_FROM_DATABASE=MCP2A ISA bridge - - pci:v000010DEd00000080sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A ISA bridge (NV7 Motherboard) - - pci:v000010DEd00000084* - ID_MODEL_FROM_DATABASE=MCP2A SMBus - - pci:v000010DEd00000084sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A SMBus (NV7 Motherboard) - - pci:v000010DEd00000085* - ID_MODEL_FROM_DATABASE=MCP2A IDE - - pci:v000010DEd00000085sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A IDE (NV7 Motherboard) - - pci:v000010DEd00000086* - ID_MODEL_FROM_DATABASE=MCP2A Ethernet Controller -@@ -21324,19 +21324,19 @@ pci:v000010DEd00000087* - ID_MODEL_FROM_DATABASE=MCP2A USB Controller - - pci:v000010DEd00000087sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) - - pci:v000010DEd00000088* - ID_MODEL_FROM_DATABASE=MCP2A USB Controller - - pci:v000010DEd00000088sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2A USB Controller (NV7 Motherboard) - - pci:v000010DEd0000008A* - ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller - - pci:v000010DEd0000008Asv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=MCP2S AC'97 Audio Controller (NV7 Motherboard) - - pci:v000010DEd0000008B* - ID_MODEL_FROM_DATABASE=MCP2A PCI Bridge -@@ -21378,7 +21378,7 @@ pci:v000010DEd000000A0* - ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] - - pci:v000010DEd000000A0sv000014AFsd00005810* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Xentor -+ ID_MODEL_FROM_DATABASE=NV5 [Aladdin TNT2] (Maxi Gamer Xentor) - - pci:v000010DEd000000C0* - ID_MODEL_FROM_DATABASE=NV41 [GeForce 6800 GS] -@@ -21459,46 +21459,46 @@ pci:v000010DEd000000DF* - ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller - - pci:v000010DEd000000DFsv00001043sd000080A7* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (K8N-E) - - pci:v000010DEd000000DFsv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000DFsv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller (NF8 Mainboard) - - pci:v000010DEd000000E0* - ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge - - pci:v000010DEd000000E0sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N-E) - - pci:v000010DEd000000E0sv000010DEsd00000C11* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Winfast NF3250K8AA) - - pci:v000010DEd000000E0sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E0sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (NF8 Mainboard) - - pci:v000010DEd000000E0sv00001849sd000000E0* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb LPC Bridge (Motherboard (one of many)) - - pci:v000010DEd000000E1* - ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge - - pci:v000010DEd000000E1sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N-E) - - pci:v000010DEd000000E1sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E1sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (NF8 Mainboard) - - pci:v000010DEd000000E1sv00001849sd000000E1* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb Host Bridge (Motherboard (one of many)) - - pci:v000010DEd000000E2* - ID_MODEL_FROM_DATABASE=nForce3 250Gb AGP Host to PCI Bridge -@@ -21507,55 +21507,55 @@ pci:v000010DEd000000E3* - ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller - - pci:v000010DEd000000E3sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (K8N-E) - - pci:v000010DEd000000E3sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000E3sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (NF8 Mainboard) - - pci:v000010DEd000000E3sv00001849sd000000E3* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 Serial ATA Controller (Motherboard (one of many)) - - pci:v000010DEd000000E4* - ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management - - pci:v000010DEd000000E4sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N-E) - - pci:v000010DEd000000E4sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Winfast NF3250K8AA) - - pci:v000010DEd000000E4sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E4sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (NF8 Mainboard) - - pci:v000010DEd000000E4sv00001849sd000000E4* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce 250Gb PCI System Management (Motherboard (one of many)) - - pci:v000010DEd000000E5* - ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) - - pci:v000010DEd000000E5sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N-E) - - pci:v000010DEd000000E5sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Winfast NF3250K8AA) - - pci:v000010DEd000000E5sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E5sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (NF8 Mainboard) - - pci:v000010DEd000000E5sv00001849sd000000E5* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) - - pci:v000010DEd000000E5sv0000F849sd000000E5* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=CK8S Parallel ATA Controller (v2.5) (Motherboard (one of many)) - - pci:v000010DEd000000E6* - ID_MODEL_FROM_DATABASE=CK8S Ethernet Controller -@@ -21564,52 +21564,52 @@ pci:v000010DEd000000E7* - ID_MODEL_FROM_DATABASE=CK8S USB Controller - - pci:v000010DEd000000E7sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N-E) - - pci:v000010DEd000000E7sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000E7sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E7sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (NF8 Mainboard) - - pci:v000010DEd000000E7sv00001849sd000000E7* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=CK8S USB Controller (Motherboard (one of many)) - - pci:v000010DEd000000E8* - ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller - - pci:v000010DEd000000E8sv00001043sd0000813F* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N-E) - - pci:v000010DEd000000E8sv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000E8sv00001462sd00007030* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (K8N Neo-FSR v2.0) - - pci:v000010DEd000000E8sv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (NF8 Mainboard) - - pci:v000010DEd000000E8sv00001849sd000000E8* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=nForce3 EHCI USB 2.0 Controller (Motherboard (one of many)) - - pci:v000010DEd000000EA* - ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller - - pci:v000010DEd000000EAsv00001043sd0000819D* -- ID_MODEL_FROM_DATABASE=K8N-E -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N-E) - - pci:v000010DEd000000EAsv0000105Bsd00000C43* -- ID_MODEL_FROM_DATABASE=Winfast NF3250K8AA -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (Winfast NF3250K8AA) - - pci:v000010DEd000000EAsv00001462sd0000B010* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (K8N Neo-FSR v2.0) - - pci:v000010DEd000000EAsv0000147Bsd00001C0B* -- ID_MODEL_FROM_DATABASE=NF8 Mainboard -+ ID_MODEL_FROM_DATABASE=nForce3 250Gb AC'97 Audio Controller (NF8 Mainboard) - - pci:v000010DEd000000ED* - ID_MODEL_FROM_DATABASE=nForce3 250Gb PCI-to-PCI Bridge -@@ -21621,28 +21621,28 @@ pci:v000010DEd000000F1* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] - - pci:v000010DEd000000F1sv00001043sd000081A6* -- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) - - pci:v000010DEd000000F1sv00001043sd000081C6* -- ID_MODEL_FROM_DATABASE=N6600GT TD 128M AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (N6600GT TD 128M AGP) - - pci:v000010DEd000000F1sv00001458sd00003150* -- ID_MODEL_FROM_DATABASE=GV-N66T128VP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-N66T128VP) - - pci:v000010DEd000000F1sv00001554sd00001191* -- ID_MODEL_FROM_DATABASE=PixelView PV-N43UA (128KD) -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (PixelView PV-N43UA (128KD)) - - pci:v000010DEd000000F1sv00001682sd00002119* -- ID_MODEL_FROM_DATABASE=GeForce 6600 GT AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GeForce 6600 GT AGP) - - pci:v000010DEd000000F2* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] - - pci:v000010DEd000000F2sv00001554sd00001194* -- ID_MODEL_FROM_DATABASE=PixelView PV-N43AT (256KD) -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (PixelView PV-N43AT (256KD)) - - pci:v000010DEd000000F2sv00001682sd0000211C* -- ID_MODEL_FROM_DATABASE=GeForce 6600 256MB DDR DUAL DVI TV -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GeForce 6600 256MB DDR DUAL DVI TV) - - pci:v000010DEd000000F3* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6200] -@@ -21657,7 +21657,7 @@ pci:v000010DEd000000F6* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] - - pci:v000010DEd000000F6sv00001682sd0000217E* -- ID_MODEL_FROM_DATABASE=XFX GeForce 6800 XTreme 256MB DDR3 AGP -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6800 GS/XT] (XFX GeForce 6800 XTreme 256MB DDR3 AGP) - - pci:v000010DEd000000F8* - ID_MODEL_FROM_DATABASE=NV40GL [Quadro FX 3400/4400] -@@ -21666,10 +21666,10 @@ pci:v000010DEd000000F9* - ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] - - pci:v000010DEd000000F9sv000010DEsd000000F9* -- ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT] -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (NV40 [GeForce 6800 GT]) - - pci:v000010DEd000000F9sv00001682sd00002120* -- ID_MODEL_FROM_DATABASE=GEFORCE 6800 GT PCI-E -+ ID_MODEL_FROM_DATABASE=NV40 [GeForce 6800 GT/GTO/Ultra] (GEFORCE 6800 GT PCI-E) - - pci:v000010DEd000000FA* - ID_MODEL_FROM_DATABASE=NV36 [GeForce PCX 5750] -@@ -21693,130 +21693,130 @@ pci:v000010DEd00000100* - ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] - - pci:v000010DEd00000100sv00001043sd00000200* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) - - pci:v000010DEd00000100sv00001043sd00000201* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) - - pci:v000010DEd00000100sv00001043sd00004008* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SGRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SGRAM) - - pci:v000010DEd00000100sv00001043sd00004009* -- ID_MODEL_FROM_DATABASE=AGP-V6600 SDRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (AGP-V6600 SDRAM) - - pci:v000010DEd00000100sv00001048sd00000C41* -- ID_MODEL_FROM_DATABASE=Erazor X -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Erazor X) - - pci:v000010DEd00000100sv00001048sd00000C43* -- ID_MODEL_FROM_DATABASE=ERAZOR X PCI -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (ERAZOR X PCI) - - pci:v000010DEd00000100sv00001048sd00000C48* -- ID_MODEL_FROM_DATABASE=Synergy Force -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (Synergy Force) - - pci:v000010DEd00000100sv00001102sd0000102D* -- ID_MODEL_FROM_DATABASE=CT6941 GeForce 256 -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (CT6941 GeForce 256) - - pci:v000010DEd00000100sv000014AFsd00005022* -- ID_MODEL_FROM_DATABASE=3D Prophet SE -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 SDR] (3D Prophet SE) - - pci:v000010DEd00000101* - ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] - - pci:v000010DEd00000101sv00001043sd00000202* -- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR) - - pci:v000010DEd00000101sv00001043sd0000400A* -- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SGRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SGRAM) - - pci:v000010DEd00000101sv00001043sd0000400B* -- ID_MODEL_FROM_DATABASE=AGP-V6800 DDR SDRAM -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (AGP-V6800 DDR SDRAM) - - pci:v000010DEd00000101sv00001048sd00000C42* -- ID_MODEL_FROM_DATABASE=Erazor X -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (Erazor X) - - pci:v000010DEd00000101sv0000107Dsd00002822* -- ID_MODEL_FROM_DATABASE=WinFast GeForce 256 -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (WinFast GeForce 256) - - pci:v000010DEd00000101sv00001102sd0000102E* -- ID_MODEL_FROM_DATABASE=CT6970/CT6971 -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (CT6970/CT6971) - - pci:v000010DEd00000101sv000014AFsd00005021* -- ID_MODEL_FROM_DATABASE=3D Prophet DDR-DVI -+ ID_MODEL_FROM_DATABASE=NV10 [GeForce 256 DDR] (3D Prophet DDR-DVI) - - pci:v000010DEd00000103* - ID_MODEL_FROM_DATABASE=NV10GL [Quadro] - - pci:v000010DEd00000103sv00001048sd00000C40* -- ID_MODEL_FROM_DATABASE=GLoria II-64 -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64) - - pci:v000010DEd00000103sv00001048sd00000C44* -- ID_MODEL_FROM_DATABASE=GLoria II -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) - - pci:v000010DEd00000103sv00001048sd00000C45* -- ID_MODEL_FROM_DATABASE=GLoria II -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II) - - pci:v000010DEd00000103sv00001048sd00000C4A* -- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro) - - pci:v000010DEd00000103sv00001048sd00000C4B* -- ID_MODEL_FROM_DATABASE=GLoria II-64 Pro DVII -+ ID_MODEL_FROM_DATABASE=NV10GL [Quadro] (GLoria II-64 Pro DVII) - - pci:v000010DEd00000110* - ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] - - pci:v000010DEd00000110sv00001043sd00004015* -- ID_MODEL_FROM_DATABASE=AGP-V7100 Pro -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (AGP-V7100 Pro) - - pci:v000010DEd00000110sv00001043sd00004021* -- ID_MODEL_FROM_DATABASE=V7100 Deluxe Combo -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Deluxe Combo) - - pci:v000010DEd00000110sv00001043sd00004031* -- ID_MODEL_FROM_DATABASE=V7100 Pro with TV output -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (V7100 Pro with TV output) - - pci:v000010DEd00000110sv00001048sd00000C60* -- ID_MODEL_FROM_DATABASE=Gladiac MX -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac MX) - - pci:v000010DEd00000110sv00001048sd00000C61* -- ID_MODEL_FROM_DATABASE=Gladiac 511PCI -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511PCI) - - pci:v000010DEd00000110sv00001048sd00000C63* -- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 32MB -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 32MB) - - pci:v000010DEd00000110sv00001048sd00000C64* -- ID_MODEL_FROM_DATABASE=Gladiac 511TV-OUT 64MB -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TV-OUT 64MB) - - pci:v000010DEd00000110sv00001048sd00000C65* -- ID_MODEL_FROM_DATABASE=Gladiac 511TWIN -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 511TWIN) - - pci:v000010DEd00000110sv00001048sd00000C66* -- ID_MODEL_FROM_DATABASE=Gladiac 311 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Gladiac 311) - - pci:v000010DEd00000110sv000010B0sd00000001* -- ID_MODEL_FROM_DATABASE=GeForce2 MX Jumbo TV -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (GeForce2 MX Jumbo TV) - - pci:v000010DEd00000110sv000010DEsd00000091* -- ID_MODEL_FROM_DATABASE=Dell OEM GeForce 2 MX 400 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Dell OEM GeForce 2 MX 400) - - pci:v000010DEd00000110sv000010DEsd000000A1* -- ID_MODEL_FROM_DATABASE=Apple OEM GeForce2 MX -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Apple OEM GeForce2 MX) - - pci:v000010DEd00000110sv00001462sd00008523* -- ID_MODEL_FROM_DATABASE=MS-8852 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MS-8852) - - pci:v000010DEd00000110sv00001462sd00008817* -- ID_MODEL_FROM_DATABASE=MSI GeForce2 MX400 Pro32S [MS-8817] -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MSI GeForce2 MX400 Pro32S [MS-8817]) - - pci:v000010DEd00000110sv000014AFsd00007102* -- ID_MODEL_FROM_DATABASE=3D Prophet II MX -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX) - - pci:v000010DEd00000110sv000014AFsd00007103* -- ID_MODEL_FROM_DATABASE=3D Prophet II MX Dual-Display -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (3D Prophet II MX Dual-Display) - - pci:v000010DEd00000110sv00001545sd00000023* -- ID_MODEL_FROM_DATABASE=Xtasy Rev. B2 -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (Xtasy Rev. B2) - - pci:v000010DEd00000110sv00001554sd00001081* -- ID_MODEL_FROM_DATABASE=MVGA-NVG11AM(400) -+ ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX/MX 400] (MVGA-NVG11AM(400)) - - pci:v000010DEd00000111* - ID_MODEL_FROM_DATABASE=NV11 [GeForce2 MX200] -@@ -21831,28 +21831,28 @@ pci:v000010DEd00000140* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] - - pci:v000010DEd00000140sv00001458sd00003125* -- ID_MODEL_FROM_DATABASE=GV-NX66T128D -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T128D) - - pci:v000010DEd00000140sv00001458sd00003126* -- ID_MODEL_FROM_DATABASE=GV-NX66T256DE -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (GV-NX66T256DE) - - pci:v000010DEd00000140sv00001462sd00008939* -- ID_MODEL_FROM_DATABASE=MS-8983 -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 GT] (MS-8983) - - pci:v000010DEd00000141* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] - - pci:v000010DEd00000141sv00001043sd000081B0* -- ID_MODEL_FROM_DATABASE=EN6600 Silencer -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (EN6600 Silencer) - - pci:v000010DEd00000141sv0000107Dsd0000593A* -- ID_MODEL_FROM_DATABASE=LR2A22 128MB TV OUT -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (LR2A22 128MB TV OUT) - - pci:v000010DEd00000141sv0000107Dsd0000597B* -- ID_MODEL_FROM_DATABASE=WINFAST PX6600 -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (WINFAST PX6600) - - pci:v000010DEd00000141sv00001458sd00003124* -- ID_MODEL_FROM_DATABASE=GV-NX66128DP Turbo Force Edition -+ ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600] (GV-NX66128DP Turbo Force Edition) - - pci:v000010DEd00000142* - ID_MODEL_FROM_DATABASE=NV43 [GeForce 6600 LE] -@@ -21897,49 +21897,49 @@ pci:v000010DEd00000150* - ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] - - pci:v000010DEd00000150sv00001043sd00004016* -- ID_MODEL_FROM_DATABASE=V7700 AGP Video Card -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (V7700 AGP Video Card) - - pci:v000010DEd00000150sv00001043sd0000402A* -- ID_MODEL_FROM_DATABASE=AGP-V7700 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (AGP-V7700) - - pci:v000010DEd00000150sv00001048sd00000C50* -- ID_MODEL_FROM_DATABASE=Gladiac -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac) - - pci:v000010DEd00000150sv00001048sd00000C52* -- ID_MODEL_FROM_DATABASE=Gladiac-64 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Gladiac-64) - - pci:v000010DEd00000150sv0000107Dsd00002840* -- ID_MODEL_FROM_DATABASE=WinFast GeForce2 GTS with TV output -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce2 GTS with TV output) - - pci:v000010DEd00000150sv0000107Dsd00002842* -- ID_MODEL_FROM_DATABASE=WinFast GeForce 2 Pro -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (WinFast GeForce 2 Pro) - - pci:v000010DEd00000150sv000010DEsd0000002E* -- ID_MODEL_FROM_DATABASE=GeForce2 GTS -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (GeForce2 GTS) - - pci:v000010DEd00000150sv00001462sd0000815A* -- ID_MODEL_FROM_DATABASE=MS-8815 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (MS-8815) - - pci:v000010DEd00000150sv00001462sd00008831* -- ID_MODEL_FROM_DATABASE=Creative GeForce2 Pro -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 GTS/Pro] (Creative GeForce2 Pro) - - pci:v000010DEd00000151* - ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] - - pci:v000010DEd00000151sv00001043sd0000405F* -- ID_MODEL_FROM_DATABASE=V7700Ti -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (V7700Ti) - - pci:v000010DEd00000151sv00001462sd00005506* -- ID_MODEL_FROM_DATABASE=Creative 3D Blaster GeForce2 Titanium -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (Creative 3D Blaster GeForce2 Titanium) - - pci:v000010DEd00000151sv00001462sd00008364* -- ID_MODEL_FROM_DATABASE=MS-8836 -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ti] (MS-8836) - - pci:v000010DEd00000152* - ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] - - pci:v000010DEd00000152sv00001048sd00000C56* -- ID_MODEL_FROM_DATABASE=GLADIAC Ultra -+ ID_MODEL_FROM_DATABASE=NV15 [GeForce2 Ultra] (GLADIAC Ultra) - - pci:v000010DEd00000153* - ID_MODEL_FROM_DATABASE=NV15GL [Quadro2 Pro] -@@ -21990,40 +21990,40 @@ pci:v000010DEd00000170* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] - - pci:v000010DEd00000170sv00001462sd00008630* -- ID_MODEL_FROM_DATABASE=MS-8863 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 460] (MS-8863) - - pci:v000010DEd00000171* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] - - pci:v000010DEd00000171sv000010B0sd00000002* -- ID_MODEL_FROM_DATABASE=Gainward Pro/600 TV -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Gainward Pro/600 TV) - - pci:v000010DEd00000171sv000010DEsd00000008* -- ID_MODEL_FROM_DATABASE=Apple OEM GeForce4 MX 440 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Apple OEM GeForce4 MX 440) - - pci:v000010DEd00000171sv00001462sd00008661* -- ID_MODEL_FROM_DATABASE=G4MX440-VTP -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (G4MX440-VTP) - - pci:v000010DEd00000171sv00001462sd00008730* -- ID_MODEL_FROM_DATABASE=MX440SES-T (MS-8873) -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MX440SES-T (MS-8873)) - - pci:v000010DEd00000171sv00001462sd00008743* -- ID_MODEL_FROM_DATABASE=MS-8874 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (MS-8874) - - pci:v000010DEd00000171sv00001462sd00008852* -- ID_MODEL_FROM_DATABASE=GeForce4 MX440 PCI -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (GeForce4 MX440 PCI) - - pci:v000010DEd00000171sv0000147Bsd00008F00* -- ID_MODEL_FROM_DATABASE=Abit Siluro GeForce4MX440 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440] (Abit Siluro GeForce4MX440) - - pci:v000010DEd00000172* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] - - pci:v000010DEd00000172sv00001462sd00008730* -- ID_MODEL_FROM_DATABASE=MS-8873 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8873) - - pci:v000010DEd00000172sv00001462sd00008784* -- ID_MODEL_FROM_DATABASE=MS-8878 -+ ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 420] (MS-8878) - - pci:v000010DEd00000173* - ID_MODEL_FROM_DATABASE=NV17 [GeForce4 MX 440-SE] -@@ -22038,13 +22038,13 @@ pci:v000010DEd00000176* - ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] - - pci:v000010DEd00000176sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (tc1100 tablet) - - pci:v000010DEd00000176sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (X10 Laptop) - - pci:v000010DEd00000176sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 420 Go 32M] (Cx9 / Vx9 mainboard) - - pci:v000010DEd00000177* - ID_MODEL_FROM_DATABASE=NV17M [GeForce4 460 Go] -@@ -22056,7 +22056,7 @@ pci:v000010DEd00000179* - ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] - - pci:v000010DEd00000179sv000010DEsd00000179* -- ID_MODEL_FROM_DATABASE=GeForce4 MX (Mac) -+ ID_MODEL_FROM_DATABASE=NV17M [GeForce4 440 Go 64M] (GeForce4 MX (Mac)) - - pci:v000010DEd0000017A* - ID_MODEL_FROM_DATABASE=NV17GL [Quadro NVS] -@@ -22074,25 +22074,25 @@ pci:v000010DEd00000181* - ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] - - pci:v000010DEd00000181sv00001043sd00008063* -- ID_MODEL_FROM_DATABASE=GeForce4 MX 440 AGP 8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (GeForce4 MX 440 AGP 8X) - - pci:v000010DEd00000181sv00001043sd0000806F* -- ID_MODEL_FROM_DATABASE=V9180 Magic -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (V9180 Magic) - - pci:v000010DEd00000181sv00001462sd00008880* -- ID_MODEL_FROM_DATABASE=MS-StarForce GeForce4 MX 440 with AGP8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-StarForce GeForce4 MX 440 with AGP8X) - - pci:v000010DEd00000181sv00001462sd00008900* -- ID_MODEL_FROM_DATABASE=MS-8890 GeForce 4 MX440 AGP8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MS-8890 GeForce 4 MX440 AGP8X) - - pci:v000010DEd00000181sv00001462sd00009350* -- ID_MODEL_FROM_DATABASE=MSI GeForce4 MX T8X with AGP8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (MSI GeForce4 MX T8X with AGP8X) - - pci:v000010DEd00000181sv0000147Bsd00008F0D* -- ID_MODEL_FROM_DATABASE=Siluro GF4 MX-8X -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (Siluro GF4 MX-8X) - - pci:v000010DEd00000181sv00001554sd00001111* -- ID_MODEL_FROM_DATABASE=PixelView MVGA-NVG18A -+ ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440 AGP 8x] (PixelView MVGA-NVG18A) - - pci:v000010DEd00000182* - ID_MODEL_FROM_DATABASE=NV18 [GeForce4 MX 440SE AGP 8x] -@@ -22146,7 +22146,7 @@ pci:v000010DEd00000193* - ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] - - pci:v000010DEd00000193sv0000107Dsd000020BD* -- ID_MODEL_FROM_DATABASE=WinFast PX 8800 GTS TDH -+ ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 GTS] (WinFast PX 8800 GTS TDH) - - pci:v000010DEd00000194* - ID_MODEL_FROM_DATABASE=G80 [GeForce 8800 Ultra] -@@ -22212,13 +22212,13 @@ pci:v000010DEd000001D1* - ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] - - pci:v000010DEd000001D1sv0000107Dsd00005EFA* -- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD128 -+ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD128) - - pci:v000010DEd000001D1sv0000107Dsd00005EFB* -- ID_MODEL_FROM_DATABASE=WinFast PX7300LE-TD256 -+ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (WinFast PX7300LE-TD256) - - pci:v000010DEd000001D1sv00001462sd00000345* -- ID_MODEL_FROM_DATABASE=7300LE PCI Express Graphics Adapter -+ ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 LE] (7300LE PCI Express Graphics Adapter) - - pci:v000010DEd000001D2* - ID_MODEL_FROM_DATABASE=G72 [GeForce 7550 LE] -@@ -22239,7 +22239,7 @@ pci:v000010DEd000001D8* - ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] - - pci:v000010DEd000001D8sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7400] (XPS M1210) - - pci:v000010DEd000001D9* - ID_MODEL_FROM_DATABASE=G72M [GeForce Go 7450] -@@ -22260,7 +22260,7 @@ pci:v000010DEd000001DE* - ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] - - pci:v000010DEd000001DEsv000010DEsd000001DC* -- ID_MODEL_FROM_DATABASE=Quadro FX Go350M -+ ID_MODEL_FROM_DATABASE=G72GL [Quadro FX 350] (Quadro FX Go350M) - - pci:v000010DEd000001DF* - ID_MODEL_FROM_DATABASE=G72 [GeForce 7300 GS] -@@ -22269,7 +22269,7 @@ pci:v000010DEd000001E0* - ID_MODEL_FROM_DATABASE=nForce2 IGP2 - - pci:v000010DEd000001E0sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 IGP2 (NV7 Motherboard) - - pci:v000010DEd000001E8* - ID_MODEL_FROM_DATABASE=nForce2 AGP -@@ -22278,55 +22278,55 @@ pci:v000010DEd000001EA* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 - - pci:v000010DEd000001EAsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 0 (UK79G-1394 motherboard) - - pci:v000010DEd000001EB* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 - - pci:v000010DEd000001EBsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 1 (UK79G-1394 motherboard) - - pci:v000010DEd000001EC* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 - - pci:v000010DEd000001ECsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 2 (UK79G-1394 motherboard) - - pci:v000010DEd000001ED* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 - - pci:v000010DEd000001EDsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 3 (UK79G-1394 motherboard) - - pci:v000010DEd000001EE* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 - - pci:v000010DEd000001EEsv000010DEsd000001EE* -- ID_MODEL_FROM_DATABASE=MSI Delta-L nForce2 memory controller -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (MSI Delta-L nForce2 memory controller) - - pci:v000010DEd000001EEsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 4 (UK79G-1394 motherboard) - - pci:v000010DEd000001EF* - ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 - - pci:v000010DEd000001EFsv0000A0A0sd000003B9* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=nForce2 Memory Controller 5 (UK79G-1394 motherboard) - - pci:v000010DEd000001F0* - ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] - - pci:v000010DEd000001F0sv0000A0A0sd000003B5* -- ID_MODEL_FROM_DATABASE=UK79G-1394 motherboard -+ ID_MODEL_FROM_DATABASE=C17 [GeForce4 MX IGP] (UK79G-1394 motherboard) - - pci:v000010DEd00000200* - ID_MODEL_FROM_DATABASE=NV20 [GeForce3] - - pci:v000010DEd00000200sv00001043sd0000402F* -- ID_MODEL_FROM_DATABASE=AGP-V8200 DDR -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (AGP-V8200 DDR) - - pci:v000010DEd00000200sv00001048sd00000C70* -- ID_MODEL_FROM_DATABASE=GLADIAC 920 -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3] (GLADIAC 920) - - pci:v000010DEd00000201* - ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 200] -@@ -22335,10 +22335,10 @@ pci:v000010DEd00000202* - ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] - - pci:v000010DEd00000202sv00001043sd0000405B* -- ID_MODEL_FROM_DATABASE=V8200 T5 -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (V8200 T5) - - pci:v000010DEd00000202sv00001545sd0000002F* -- ID_MODEL_FROM_DATABASE=Xtasy 6964 -+ ID_MODEL_FROM_DATABASE=NV20 [GeForce3 Ti 500] (Xtasy 6964) - - pci:v000010DEd00000203* - ID_MODEL_FROM_DATABASE=NV20GL [Quadro DCC] -@@ -22359,10 +22359,10 @@ pci:v000010DEd00000221* - ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] - - pci:v000010DEd00000221sv00001043sd000081E1* -- ID_MODEL_FROM_DATABASE=N6200/TD/256M/A -+ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (N6200/TD/256M/A) - - pci:v000010DEd00000221sv00003842sd0000A341* -- ID_MODEL_FROM_DATABASE=256A8N341DX -+ ID_MODEL_FROM_DATABASE=NV44A [GeForce 6200] (256A8N341DX) - - pci:v000010DEd00000222* - ID_MODEL_FROM_DATABASE=NV44 [GeForce 6200 A-LE] -@@ -22374,10 +22374,10 @@ pci:v000010DEd00000240* - ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] - - pci:v000010DEd00000240sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM -+ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (A8N-VM CSM) - - pci:v000010DEd00000240sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51PV [GeForce 6150] (K8NGM2 series) - - pci:v000010DEd00000241* - ID_MODEL_FROM_DATABASE=C51 [GeForce 6150 LE] -@@ -22386,7 +22386,7 @@ pci:v000010DEd00000242* - ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] - - pci:v000010DEd00000242sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=C51G [GeForce 6100] (Winfast 6100K8MB) - - pci:v000010DEd00000243* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge -@@ -22395,13 +22395,13 @@ pci:v000010DEd00000244* - ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] - - pci:v000010DEd00000244sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V3242AU) - - pci:v000010DEd00000244sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (Presario V6133CL) - - pci:v000010DEd00000244sv000010DEsd00000244* -- ID_MODEL_FROM_DATABASE=GeForce Go 6150 -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6150] (GeForce Go 6150) - - pci:v000010DEd00000245* - ID_MODEL_FROM_DATABASE=C51 [Quadro NVS 210S/GeForce 6150LE] -@@ -22413,7 +22413,7 @@ pci:v000010DEd00000247* - ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] - - pci:v000010DEd00000247sv00001043sd00001382* -- ID_MODEL_FROM_DATABASE=MCP51 PCI-X GeForce Go 6100 -+ ID_MODEL_FROM_DATABASE=C51 [GeForce Go 6100] (MCP51 PCI-X GeForce Go 6100) - - pci:v000010DEd00000248* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge -@@ -22446,13 +22446,13 @@ pci:v000010DEd00000251* - ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] - - pci:v000010DEd00000251sv00001043sd00008023* -- ID_MODEL_FROM_DATABASE=v8440 GeForce 4 Ti4400 -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (v8440 GeForce 4 Ti4400) - - pci:v000010DEd00000251sv000010DEsd00000251* -- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) - - pci:v000010DEd00000251sv00001462sd00008710* -- ID_MODEL_FROM_DATABASE=PNY GeForce4 Ti 4400 -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4400] (PNY GeForce4 Ti 4400) - - pci:v000010DEd00000252* - ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti] -@@ -22461,10 +22461,10 @@ pci:v000010DEd00000253* - ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] - - pci:v000010DEd00000253sv0000107Dsd00002896* -- ID_MODEL_FROM_DATABASE=WinFast A250 LE TD (Dual VGA/TV-out/DVI) -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (WinFast A250 LE TD (Dual VGA/TV-out/DVI)) - - pci:v000010DEd00000253sv0000147Bsd00008F09* -- ID_MODEL_FROM_DATABASE=Siluro (Dual VGA/TV-out/DVI) -+ ID_MODEL_FROM_DATABASE=NV25 [GeForce4 Ti 4200] (Siluro (Dual VGA/TV-out/DVI)) - - pci:v000010DEd00000258* - ID_MODEL_FROM_DATABASE=NV25GL [Quadro4 900 XGL] -@@ -22479,25 +22479,25 @@ pci:v000010DEd00000260* - ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge - - pci:v000010DEd00000260sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Pavilion a1677c) - - pci:v000010DEd00000260sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Presario V6133CL) - - pci:v000010DEd00000260sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd00000260sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (GA-M55plus-S3G) - - pci:v000010DEd00000260sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (K8NGM2 series) - - pci:v000010DEd00000261* - ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge - - pci:v000010DEd00000261sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge (Winfast 6100K8MB) - - pci:v000010DEd00000262* - ID_MODEL_FROM_DATABASE=MCP51 LPC Bridge -@@ -22509,64 +22509,64 @@ pci:v000010DEd00000264* - ID_MODEL_FROM_DATABASE=MCP51 SMBus - - pci:v000010DEd00000264sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Pavilion a1677c) - - pci:v000010DEd00000264sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Presario V6133CL) - - pci:v000010DEd00000264sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (A8N-VM CSM Mainboard) - - pci:v000010DEd00000264sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (Winfast 6100K8MB) - - pci:v000010DEd00000264sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 SMBus (K8NGM2 series) - - pci:v000010DEd00000265* - ID_MODEL_FROM_DATABASE=MCP51 IDE - - pci:v000010DEd00000265sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (Pavilion a1677c) - - pci:v000010DEd00000265sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (Presario V6133CL) - - pci:v000010DEd00000265sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (A8N-VM CSM Mainboard) - - pci:v000010DEd00000265sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (K8NGM2 series) - - pci:v000010DEd00000265sv0000F05Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 IDE (Winfast 6100K8MB) - - pci:v000010DEd00000266* - ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller - - pci:v000010DEd00000266sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) - - pci:v000010DEd00000266sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Presario V6133CL) - - pci:v000010DEd00000266sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd00000266sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) - - pci:v000010DEd00000267* - ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller - - pci:v000010DEd00000267sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (Pavilion a1677c) - - pci:v000010DEd00000267sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd00000267sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Serial ATA Controller (K8NGM2 series) - - pci:v000010DEd00000268* - ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller -@@ -22575,16 +22575,16 @@ pci:v000010DEd00000269* - ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller - - pci:v000010DEd00000269sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Pavilion a1677c) - - pci:v000010DEd00000269sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (Presario V6133CL) - - pci:v000010DEd00000269sv00001043sd00008141* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd00000269sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Ethernet Controller (K8NGM2 series) - - pci:v000010DEd0000026A* - ID_MODEL_FROM_DATABASE=MCP51 MCI -@@ -22593,142 +22593,142 @@ pci:v000010DEd0000026B* - ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller - - pci:v000010DEd0000026Bsv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 AC97 Audio Controller (Winfast 6100K8MB) - - pci:v000010DEd0000026C* - ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio - - pci:v000010DEd0000026Csv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Pavilion a1677c) - - pci:v000010DEd0000026Csv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V3242AU) - - pci:v000010DEd0000026Csv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (Presario V6133CL) - - pci:v000010DEd0000026Csv000010DEsd0000CB84* -- ID_MODEL_FROM_DATABASE=ASUSTeK Computer Inc. A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (ASUSTeK Computer Inc. A8N-VM CSM Mainboard) - - pci:v000010DEd0000026Csv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 High Definition Audio (K8NGM2 series) - - pci:v000010DEd0000026D* - ID_MODEL_FROM_DATABASE=MCP51 USB Controller - - pci:v000010DEd0000026Dsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) - - pci:v000010DEd0000026Dsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) - - pci:v000010DEd0000026Dsv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd0000026Dsv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) - - pci:v000010DEd0000026Dsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) - - pci:v000010DEd0000026E* - ID_MODEL_FROM_DATABASE=MCP51 USB Controller - - pci:v000010DEd0000026Esv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Pavilion a1677c) - - pci:v000010DEd0000026Esv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Presario V6133CL) - - pci:v000010DEd0000026Esv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (A8N-VM CSM Mainboard) - - pci:v000010DEd0000026Esv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (Winfast 6100K8MB) - - pci:v000010DEd0000026Esv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 USB Controller (K8NGM2 series) - - pci:v000010DEd0000026F* - ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge - - pci:v000010DEd0000026Fsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 PCI Bridge (Presario V6133CL) - - pci:v000010DEd00000270* - ID_MODEL_FROM_DATABASE=MCP51 Host Bridge - - pci:v000010DEd00000270sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Pavilion a1677c) - - pci:v000010DEd00000270sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Presario V6133CL) - - pci:v000010DEd00000270sv00001043sd000081BC* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd00000270sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (Winfast 6100K8MB) - - pci:v000010DEd00000270sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (GA-M55plus-S3G) - - pci:v000010DEd00000270sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=MCP51 Host Bridge (K8NGM2 series) - - pci:v000010DEd00000271* - ID_MODEL_FROM_DATABASE=MCP51 PMU - - pci:v000010DEd00000271sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V3242AU) - - pci:v000010DEd00000271sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=MCP51 PMU (Presario V6133CL) - - pci:v000010DEd00000272* - ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 - - pci:v000010DEd00000272sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Pavilion a1677c) - - pci:v000010DEd00000272sv0000105Bsd00000CAD* -- ID_MODEL_FROM_DATABASE=Winfast 6100K8MB -+ ID_MODEL_FROM_DATABASE=MCP51 Memory Controller 0 (Winfast 6100K8MB) - - pci:v000010DEd0000027E* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 - - pci:v000010DEd0000027Esv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Pavilion a1677c) - - pci:v000010DEd0000027Esv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (Presario V6133CL) - - pci:v000010DEd0000027Esv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (A8N-VM CSM Mainboard) - - pci:v000010DEd0000027Esv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (GA-M55plus-S3G) - - pci:v000010DEd0000027Esv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 2 (K8NGM2 series) - - pci:v000010DEd0000027F* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 - - pci:v000010DEd0000027Fsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Pavilion a1677c) - - pci:v000010DEd0000027Fsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (Presario V6133CL) - - pci:v000010DEd0000027Fsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (A8N-VM CSM Mainboard) - - pci:v000010DEd0000027Fsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (GA-M55plus-S3G) - - pci:v000010DEd0000027Fsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 3 (K8NGM2 series) - - pci:v000010DEd00000280* - ID_MODEL_FROM_DATABASE=NV28 [GeForce4 Ti 4800] -@@ -22758,7 +22758,7 @@ pci:v000010DEd00000291* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] - - pci:v000010DEd00000291sv000010DEsd0000042B* -- ID_MODEL_FROM_DATABASE=NX7900GTO-T2D512E [7900 GTO] -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GT/GTO] (NX7900GTO-T2D512E [7900 GTO]) - - pci:v000010DEd00000292* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7900 GS] -@@ -22773,13 +22773,13 @@ pci:v000010DEd00000295* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] - - pci:v000010DEd00000295sv00001043sd00008225* -- ID_MODEL_FROM_DATABASE=GeForce 7950 GT -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (GeForce 7950 GT) - - pci:v000010DEd00000295sv0000107Dsd00002A68* -- ID_MODEL_FROM_DATABASE=WinFast PX7950GT TDH -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (WinFast PX7950GT TDH) - - pci:v000010DEd00000295sv00001462sd00000663* -- ID_MODEL_FROM_DATABASE=NX7950GT-VT2D512EZ-HD -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (NX7950GT-VT2D512EZ-HD) - - pci:v000010DEd00000297* - ID_MODEL_FROM_DATABASE=G71M [GeForce Go 7950 GTX] -@@ -22803,7 +22803,7 @@ pci:v000010DEd0000029D* - ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] - - pci:v000010DEd0000029Dsv00001028sd0000019B* -- ID_MODEL_FROM_DATABASE=G71GLM [Quadro FX 3500M] -+ ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 3500] (G71GLM [Quadro FX 3500M]) - - pci:v000010DEd0000029E* - ID_MODEL_FROM_DATABASE=G71GL [Quadro FX 1500] -@@ -22824,16 +22824,16 @@ pci:v000010DEd000002E0* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] - - pci:v000010DEd000002E0sv000002E0sd00002249* -- ID_MODEL_FROM_DATABASE=GF 7600GT 560M 256MB DDR3 DUAL DVI TV -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GF 7600GT 560M 256MB DDR3 DUAL DVI TV) - - pci:v000010DEd000002E1* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] - - pci:v000010DEd000002E1sv00001682sd0000222B* -- ID_MODEL_FROM_DATABASE=PV-T73K-UAL3 (256MB) -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (PV-T73K-UAL3 (256MB)) - - pci:v000010DEd000002E1sv00001682sd00002247* -- ID_MODEL_FROM_DATABASE=GF 7600GS 512MB DDR2 -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (GF 7600GS 512MB DDR2) - - pci:v000010DEd000002E2* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] -@@ -22845,28 +22845,28 @@ pci:v000010DEd000002E4* - ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] - - pci:v000010DEd000002E4sv00001682sd00002271* -- ID_MODEL_FROM_DATABASE=PV-T71A-YDF7 (512MB) -+ ID_MODEL_FROM_DATABASE=G71 [GeForce 7950 GT] (PV-T71A-YDF7 (512MB)) - - pci:v000010DEd000002F0* - ID_MODEL_FROM_DATABASE=C51 Host Bridge - - pci:v000010DEd000002F0sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) - - pci:v000010DEd000002F0sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) - - pci:v000010DEd000002F0sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd000002F0sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) - - pci:v000010DEd000002F1* - ID_MODEL_FROM_DATABASE=C51 Host Bridge - - pci:v000010DEd000002F1sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) - - pci:v000010DEd000002F2* - ID_MODEL_FROM_DATABASE=C51 Host Bridge -@@ -22890,55 +22890,55 @@ pci:v000010DEd000002F8* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 - - pci:v000010DEd000002F8sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Pavilion a1677c) - - pci:v000010DEd000002F8sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (Presario V6133CL) - - pci:v000010DEd000002F8sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002F8sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (GA-M55plus-S3G) - - pci:v000010DEd000002F8sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 5 (K8NGM2 series) - - pci:v000010DEd000002F9* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 - - pci:v000010DEd000002F9sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Pavilion a1677c) - - pci:v000010DEd000002F9sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (Presario V6133CL) - - pci:v000010DEd000002F9sv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002F9sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (GA-M55plus-S3G) - - pci:v000010DEd000002F9sv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 4 (K8NGM2 series) - - pci:v000010DEd000002FA* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 - - pci:v000010DEd000002FAsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Pavilion a1677c) - - pci:v000010DEd000002FAsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (Presario V6133CL) - - pci:v000010DEd000002FAsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002FAsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (GA-M55plus-S3G) - - pci:v000010DEd000002FAsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 0 (K8NGM2 series) - - pci:v000010DEd000002FB* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge -@@ -22947,49 +22947,49 @@ pci:v000010DEd000002FC* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge - - pci:v000010DEd000002FCsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) - - pci:v000010DEd000002FD* - ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge - - pci:v000010DEd000002FDsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 PCI Express Bridge (Presario V6133CL) - - pci:v000010DEd000002FE* - ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 - - pci:v000010DEd000002FEsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Pavilion a1677c) - - pci:v000010DEd000002FEsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (Presario V6133CL) - - pci:v000010DEd000002FEsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (A8N-VM CSM Mainboard) - - pci:v000010DEd000002FEsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (GA-M55plus-S3G) - - pci:v000010DEd000002FEsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Memory Controller 1 (K8NGM2 series) - - pci:v000010DEd000002FF* - ID_MODEL_FROM_DATABASE=C51 Host Bridge - - pci:v000010DEd000002FFsv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Pavilion a1677c) - - pci:v000010DEd000002FFsv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (Presario V6133CL) - - pci:v000010DEd000002FFsv00001043sd000081CD* -- ID_MODEL_FROM_DATABASE=A8N-VM CSM Mainboard -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (A8N-VM CSM Mainboard) - - pci:v000010DEd000002FFsv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-M55plus-S3G -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (GA-M55plus-S3G) - - pci:v000010DEd000002FFsv00001462sd00007207* -- ID_MODEL_FROM_DATABASE=K8NGM2 series -+ ID_MODEL_FROM_DATABASE=C51 Host Bridge (K8NGM2 series) - - pci:v000010DEd00000300* - ID_MODEL_FROM_DATABASE=NV30 [GeForce FX] -@@ -23016,7 +23016,7 @@ pci:v000010DEd00000314* - ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] - - pci:v000010DEd00000314sv00001043sd0000814A* -- ID_MODEL_FROM_DATABASE=V9560XT/TD -+ ID_MODEL_FROM_DATABASE=NV31 [GeForce FX 5600XT] (V9560XT/TD) - - pci:v000010DEd00000316* - ID_MODEL_FROM_DATABASE=NV31M -@@ -23043,25 +23043,25 @@ pci:v000010DEd00000322* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] - - pci:v000010DEd00000322sv00001043sd000002FB* -- ID_MODEL_FROM_DATABASE=V9250 Magic -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9250 Magic) - - pci:v000010DEd00000322sv00001043sd00008180* -- ID_MODEL_FROM_DATABASE=V9520-X/TD/128M -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (V9520-X/TD/128M) - - pci:v000010DEd00000322sv0000107Dsd00002967* -- ID_MODEL_FROM_DATABASE=WinFast A340T 128MB -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (WinFast A340T 128MB) - - pci:v000010DEd00000322sv00001462sd00009110* -- ID_MODEL_FROM_DATABASE=MS-8911 (FX5200-TD128) -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8911 (FX5200-TD128)) - - pci:v000010DEd00000322sv00001462sd00009171* -- ID_MODEL_FROM_DATABASE=MS-8917 (FX5200-T128) -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8917 (FX5200-T128)) - - pci:v000010DEd00000322sv00001462sd00009360* -- ID_MODEL_FROM_DATABASE=MS-8936 (FX5200-T128) -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (MS-8936 (FX5200-T128)) - - pci:v000010DEd00000322sv00001682sd00001351* -- ID_MODEL_FROM_DATABASE=GeForce FX 5200 -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200] (GeForce FX 5200) - - pci:v000010DEd00000323* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5200LE] -@@ -23070,13 +23070,13 @@ pci:v000010DEd00000324* - ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] - - pci:v000010DEd00000324sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Inspiron 5160) - - pci:v000010DEd00000324sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=Pavilion ZD7000 laptop -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (Pavilion ZD7000 laptop) - - pci:v000010DEd00000324sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200 64M] (MIM2000) - - pci:v000010DEd00000325* - ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5250] -@@ -23085,10 +23085,10 @@ pci:v000010DEd00000326* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] - - pci:v000010DEd00000326sv00001458sd0000310D* -- ID_MODEL_FROM_DATABASE=GeForce FX 5500 128 MB -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce FX 5500 128 MB) - - pci:v000010DEd00000326sv00001682sd00002034* -- ID_MODEL_FROM_DATABASE=GeForce 5500 256 MB -+ ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5500] (GeForce 5500 256 MB) - - pci:v000010DEd00000327* - ID_MODEL_FROM_DATABASE=NV34 [GeForce FX 5100] -@@ -23100,7 +23100,7 @@ pci:v000010DEd00000329* - ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] - - pci:v000010DEd00000329sv000010DEsd00000010* -- ID_MODEL_FROM_DATABASE=Powerbook G4 -+ ID_MODEL_FROM_DATABASE=NV34M [GeForce FX Go5200] (Powerbook G4) - - pci:v000010DEd0000032A* - ID_MODEL_FROM_DATABASE=NV34GL [Quadro NVS 280 PCI] -@@ -23124,13 +23124,13 @@ pci:v000010DEd00000330* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] - - pci:v000010DEd00000330sv00001043sd00008137* -- ID_MODEL_FROM_DATABASE=V9950 Ultra / 256 MB -+ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900 Ultra] (V9950 Ultra / 256 MB) - - pci:v000010DEd00000331* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] - - pci:v000010DEd00000331sv00001043sd00008145* -- ID_MODEL_FROM_DATABASE=V9950GE -+ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900] (V9950GE) - - pci:v000010DEd00000332* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900XT] -@@ -23142,7 +23142,7 @@ pci:v000010DEd00000334* - ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] - - pci:v000010DEd00000334sv00001462sd00009373* -- ID_MODEL_FROM_DATABASE=FX5900ZT-VTD128 (MS-8937) -+ ID_MODEL_FROM_DATABASE=NV35 [GeForce FX 5900ZT] (FX5900ZT-VTD128 (MS-8937)) - - pci:v000010DEd00000338* - ID_MODEL_FROM_DATABASE=NV35GL [Quadro FX 3000] -@@ -23154,7 +23154,7 @@ pci:v000010DEd00000341* - ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] - - pci:v000010DEd00000341sv00001462sd00009380* -- ID_MODEL_FROM_DATABASE=MS-8938 (FX5700U-TD128) -+ ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700 Ultra] (MS-8938 (FX5700U-TD128)) - - pci:v000010DEd00000342* - ID_MODEL_FROM_DATABASE=NV36 [GeForce FX 5700] -@@ -23169,7 +23169,7 @@ pci:v000010DEd00000347* - ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] - - pci:v000010DEd00000347sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] (NX9500) - - pci:v000010DEd00000348* - ID_MODEL_FROM_DATABASE=NV36M [GeForce FX Go5700] -@@ -23190,13 +23190,13 @@ pci:v000010DEd00000361* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge - - pci:v000010DEd00000361sv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge -+ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) - - pci:v000010DEd00000362* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge - - pci:v000010DEd00000362sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (KN9 series mainboard) - - pci:v000010DEd00000363* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge -@@ -23205,7 +23205,7 @@ pci:v000010DEd00000364* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge - - pci:v000010DEd00000364sv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 LPC Bridge -+ ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge (PowerEdge R805 MCP55 LPC Bridge) - - pci:v000010DEd00000365* - ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge -@@ -23220,19 +23220,19 @@ pci:v000010DEd00000368* - ID_MODEL_FROM_DATABASE=MCP55 SMBus - - pci:v000010DEd00000368sv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 SMBus -+ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge M605 MCP55 SMBus) - - pci:v000010DEd00000368sv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SMBus -+ ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge R805 MCP55 SMBus) - - pci:v000010DEd00000368sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 SMBus (KN9 series mainboard) - - pci:v000010DEd00000369* - ID_MODEL_FROM_DATABASE=MCP55 Memory Controller - - pci:v000010DEd00000369sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 Memory Controller (KN9 series mainboard) - - pci:v000010DEd0000036A* - ID_MODEL_FROM_DATABASE=MCP55 Memory Controller -@@ -23244,31 +23244,31 @@ pci:v000010DEd0000036C* - ID_MODEL_FROM_DATABASE=MCP55 USB Controller - - pci:v000010DEd0000036Csv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) - - pci:v000010DEd0000036Csv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) - - pci:v000010DEd0000036Csv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) - - pci:v000010DEd0000036D* - ID_MODEL_FROM_DATABASE=MCP55 USB Controller - - pci:v000010DEd0000036Dsv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge M605 MCP55 USB Controller) - - pci:v000010DEd0000036Dsv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 USB Controller -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (PowerEdge R805 MCP55 USB Controller) - - pci:v000010DEd0000036Dsv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 USB Controller (KN9 series mainboard) - - pci:v000010DEd0000036E* - ID_MODEL_FROM_DATABASE=MCP55 IDE - - pci:v000010DEd0000036Esv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 IDE (KN9 series mainboard) - - pci:v000010DEd00000370* - ID_MODEL_FROM_DATABASE=MCP55 PCI bridge -@@ -23277,7 +23277,7 @@ pci:v000010DEd00000371* - ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio - - pci:v000010DEd00000371sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 High Definition Audio (KN9 series mainboard) - - pci:v000010DEd00000372* - ID_MODEL_FROM_DATABASE=MCP55 Ethernet -@@ -23286,7 +23286,7 @@ pci:v000010DEd00000373* - ID_MODEL_FROM_DATABASE=MCP55 Ethernet - - pci:v000010DEd00000373sv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 Ethernet (KN9 series mainboard) - - pci:v000010DEd00000374* - ID_MODEL_FROM_DATABASE=MCP55 PCI Express bridge -@@ -23313,10 +23313,10 @@ pci:v000010DEd0000037F* - ID_MODEL_FROM_DATABASE=MCP55 SATA Controller - - pci:v000010DEd0000037Fsv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 MCP55 SATA Controller -+ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (PowerEdge R805 MCP55 SATA Controller) - - pci:v000010DEd0000037Fsv0000147Bsd00001C24* -- ID_MODEL_FROM_DATABASE=KN9 series mainboard -+ ID_MODEL_FROM_DATABASE=MCP55 SATA Controller (KN9 series mainboard) - - pci:v000010DEd0000038B* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7650 GS] -@@ -23328,25 +23328,25 @@ pci:v000010DEd00000391* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] - - pci:v000010DEd00000391sv00001458sd00003427* -- ID_MODEL_FROM_DATABASE=GV-NX76T128D-RH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (GV-NX76T128D-RH) - - pci:v000010DEd00000391sv00001462sd00000452* -- ID_MODEL_FROM_DATABASE=NX7600GT-VT2D256E -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GT] (NX7600GT-VT2D256E) - - pci:v000010DEd00000392* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] - - pci:v000010DEd00000392sv00001462sd00000622* -- ID_MODEL_FROM_DATABASE=NX7600GS-T2D256EH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 GS] (NX7600GS-T2D256EH) - - pci:v000010DEd00000393* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] - - pci:v000010DEd00000393sv000010DEsd00000412* -- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) - - pci:v000010DEd00000393sv00001462sd00000412* -- ID_MODEL_FROM_DATABASE=NX7300GT-TD256EH -+ ID_MODEL_FROM_DATABASE=G73 [GeForce 7300 GT] (NX7300GT-TD256EH) - - pci:v000010DEd00000394* - ID_MODEL_FROM_DATABASE=G73 [GeForce 7600 LE] -@@ -23364,7 +23364,7 @@ pci:v000010DEd00000398* - ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] - - pci:v000010DEd00000398sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=Acer 9814 WKMI -+ ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600] (Acer 9814 WKMI) - - pci:v000010DEd00000399* - ID_MODEL_FROM_DATABASE=G73M [GeForce Go 7600 GT] -@@ -23379,7 +23379,7 @@ pci:v000010DEd0000039C* - ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] - - pci:v000010DEd0000039Csv000010DEsd0000039C* -- ID_MODEL_FROM_DATABASE=Quadro FX 560M -+ ID_MODEL_FROM_DATABASE=G73GLM [Quadro FX 550M] (Quadro FX 560M) - - pci:v000010DEd0000039D* - ID_MODEL_FROM_DATABASE=G73 -@@ -23481,7 +23481,7 @@ pci:v000010DEd000003D0* - ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] - - pci:v000010DEd000003D0sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=C61 [GeForce 6150SE nForce 430] (Inspiron 531) - - pci:v000010DEd000003D1* - ID_MODEL_FROM_DATABASE=C61 [GeForce 6100 nForce 405] -@@ -23499,22 +23499,22 @@ pci:v000010DEd000003E0* - ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge - - pci:v000010DEd000003E0sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (Inspiron 531) - - pci:v000010DEd000003E0sv00001849sd000003E0* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003E1* - ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge - - pci:v000010DEd000003E1sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge (M4N68T series motherboard) - - pci:v000010DEd000003E2* - ID_MODEL_FROM_DATABASE=MCP61 Host Bridge - - pci:v000010DEd000003E2sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 Host Bridge (M4N68T series motherboard) - - pci:v000010DEd000003E3* - ID_MODEL_FROM_DATABASE=MCP61 LPC Bridge -@@ -23535,55 +23535,55 @@ pci:v000010DEd000003E8* - ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge - - pci:v000010DEd000003E8sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) - - pci:v000010DEd000003E8sv00001849sd000003E8* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003E9* - ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge - - pci:v000010DEd000003E9sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (Inspiron 531) - - pci:v000010DEd000003E9sv00001849sd000003E9* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 PCI Express bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003EA* - ID_MODEL_FROM_DATABASE=MCP61 Memory Controller - - pci:v000010DEd000003EAsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) - - pci:v000010DEd000003EAsv00001849sd000003EA* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003EB* - ID_MODEL_FROM_DATABASE=MCP61 SMBus - - pci:v000010DEd000003EBsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 SMBus (Inspiron 531) - - pci:v000010DEd000003EBsv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 SMBus (M4N68T series motherboard) - - pci:v000010DEd000003EBsv00001849sd000003EB* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 SMBus (939NF6G-VSTA Board) - - pci:v000010DEd000003EC* - ID_MODEL_FROM_DATABASE=MCP61 IDE - - pci:v000010DEd000003ECsv00001025sd00000392* -- ID_MODEL_FROM_DATABASE=ET1350 -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (ET1350) - - pci:v000010DEd000003ECsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (Inspiron 531) - - pci:v000010DEd000003ECsv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (M4N68T series motherboard) - - pci:v000010DEd000003ECsv00001849sd000003EC* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 IDE (939NF6G-VSTA Board) - - pci:v000010DEd000003EE* - ID_MODEL_FROM_DATABASE=MCP61 Ethernet -@@ -23592,61 +23592,61 @@ pci:v000010DEd000003EF* - ID_MODEL_FROM_DATABASE=MCP61 Ethernet - - pci:v000010DEd000003EFsv00001025sd00008000* -- ID_MODEL_FROM_DATABASE=ET1350 -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (ET1350) - - pci:v000010DEd000003EFsv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (Inspiron 531) - - pci:v000010DEd000003EFsv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (M4N68T series motherboard) - - pci:v000010DEd000003EFsv00001849sd000003EF* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 Ethernet (939NF6G-VSTA Board) - - pci:v000010DEd000003F0* - ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio - - pci:v000010DEd000003F0sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (Inspiron 531) - - pci:v000010DEd000003F0sv00001043sd00008415* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (M4N68T series motherboard) - - pci:v000010DEd000003F0sv00001849sd00000888* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 High Definition Audio (939NF6G-VSTA Board) - - pci:v000010DEd000003F1* - ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller - - pci:v000010DEd000003F1sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (Inspiron 531) - - pci:v000010DEd000003F1sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (M4N68T series motherboard) - - pci:v000010DEd000003F1sv00001849sd000003F1* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 USB 1.1 Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F2* - ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller - - pci:v000010DEd000003F2sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (Inspiron 531) - - pci:v000010DEd000003F2sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (M4N68T series motherboard) - - pci:v000010DEd000003F2sv00001849sd000003F2* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 USB 2.0 Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F3* - ID_MODEL_FROM_DATABASE=MCP61 PCI bridge - - pci:v000010DEd000003F3sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (Inspiron 531) - - pci:v000010DEd000003F3sv00001849sd000003F3* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 PCI bridge (939NF6G-VSTA Board) - - pci:v000010DEd000003F4* - ID_MODEL_FROM_DATABASE=MCP61 SMU -@@ -23655,25 +23655,25 @@ pci:v000010DEd000003F5* - ID_MODEL_FROM_DATABASE=MCP61 Memory Controller - - pci:v000010DEd000003F5sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (Inspiron 531) - - pci:v000010DEd000003F5sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (M4N68T series motherboard) - - pci:v000010DEd000003F5sv00001849sd000003EB* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 Memory Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F6* - ID_MODEL_FROM_DATABASE=MCP61 SATA Controller - - pci:v000010DEd000003F6sv00001028sd0000020E* -- ID_MODEL_FROM_DATABASE=Inspiron 531 -+ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (Inspiron 531) - - pci:v000010DEd000003F6sv00001043sd000083A4* -- ID_MODEL_FROM_DATABASE=M4N68T series motherboard -+ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (M4N68T series motherboard) - - pci:v000010DEd000003F6sv00001849sd000003F6* -- ID_MODEL_FROM_DATABASE=939NF6G-VSTA Board -+ ID_MODEL_FROM_DATABASE=MCP61 SATA Controller (939NF6G-VSTA Board) - - pci:v000010DEd000003F7* - ID_MODEL_FROM_DATABASE=MCP61 SATA Controller -@@ -23682,7 +23682,7 @@ pci:v000010DEd00000400* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] - - pci:v000010DEd00000400sv00001043sd00008241* -- ID_MODEL_FROM_DATABASE=EN8600GTS -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GTS] (EN8600GTS) - - pci:v000010DEd00000401* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] -@@ -23691,10 +23691,10 @@ pci:v000010DEd00000402* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] - - pci:v000010DEd00000402sv00001458sd00003455* -- ID_MODEL_FROM_DATABASE=GV-NX86T512H -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (GV-NX86T512H) - - pci:v000010DEd00000402sv00001462sd00000910* -- ID_MODEL_FROM_DATABASE=NX8600GT-T2D256EZ -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GT] (NX8600GT-T2D256EZ) - - pci:v000010DEd00000403* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8600 GS] -@@ -23703,7 +23703,7 @@ pci:v000010DEd00000404* - ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] - - pci:v000010DEd00000404sv00001462sd00001230* -- ID_MODEL_FROM_DATABASE=NX8400GS-TD256E -+ ID_MODEL_FROM_DATABASE=G84 [GeForce 8400 GS] (NX8400GS-TD256E) - - pci:v000010DEd00000405* - ID_MODEL_FROM_DATABASE=G84M [GeForce 9500M GS] -@@ -23730,7 +23730,7 @@ pci:v000010DEd0000040C* - ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] - - pci:v000010DEd0000040Csv000017AAsd000020D9* -- ID_MODEL_FROM_DATABASE=ThinkPad T61p -+ ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 570M] (ThinkPad T61p) - - pci:v000010DEd0000040D* - ID_MODEL_FROM_DATABASE=G84GLM [Quadro FX 1600M] -@@ -23754,7 +23754,7 @@ pci:v000010DEd00000421* - ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] - - pci:v000010DEd00000421sv00001462sd00000960* -- ID_MODEL_FROM_DATABASE=NX8500GT-TD512EH/M2 -+ ID_MODEL_FROM_DATABASE=G86 [GeForce 8500 GT] (NX8500GT-TD512EH/M2) - - pci:v000010DEd00000422* - ID_MODEL_FROM_DATABASE=G86 [GeForce 8400 GS] -@@ -23769,7 +23769,7 @@ pci:v000010DEd00000425* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] - - pci:v000010DEd00000425sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=G86M [GeForce 8600M GS] (Aspire 5920G) - - pci:v000010DEd00000426* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GT] -@@ -23778,10 +23778,10 @@ pci:v000010DEd00000427* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] - - pci:v000010DEd00000427sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv6700) - - pci:v000010DEd00000427sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M GS] (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000428* - ID_MODEL_FROM_DATABASE=G86M [GeForce 8400M G] -@@ -23790,7 +23790,7 @@ pci:v000010DEd00000429* - ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] - - pci:v000010DEd00000429sv000017AAsd000020D8* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 140M] (ThinkPad T61) - - pci:v000010DEd0000042A* - ID_MODEL_FROM_DATABASE=G86M [Quadro NVS 130M] -@@ -23820,7 +23820,7 @@ pci:v000010DEd00000442* - ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge - - pci:v000010DEd00000442sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000443* - ID_MODEL_FROM_DATABASE=MCP65 LPC Bridge -@@ -23829,7 +23829,7 @@ pci:v000010DEd00000444* - ID_MODEL_FROM_DATABASE=MCP65 Memory Controller - - pci:v000010DEd00000444sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 Memory Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000445* - ID_MODEL_FROM_DATABASE=MCP65 Memory Controller -@@ -23838,31 +23838,31 @@ pci:v000010DEd00000446* - ID_MODEL_FROM_DATABASE=MCP65 SMBus - - pci:v000010DEd00000446sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 SMBus (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000447* - ID_MODEL_FROM_DATABASE=MCP65 SMU - - pci:v000010DEd00000447sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 SMU (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000448* - ID_MODEL_FROM_DATABASE=MCP65 IDE - - pci:v000010DEd00000448sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 IDE (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000449* - ID_MODEL_FROM_DATABASE=MCP65 PCI bridge - - pci:v000010DEd00000449sv000010DEsd0000CB84* -- ID_MODEL_FROM_DATABASE=HP Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 PCI bridge (HP Pavilion dv9668eg Laptop) - - pci:v000010DEd0000044A* - ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio - - pci:v000010DEd0000044Asv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio (Pavilion dv9668eg Laptop) - - pci:v000010DEd0000044B* - ID_MODEL_FROM_DATABASE=MCP65 High Definition Audio -@@ -23883,7 +23883,7 @@ pci:v000010DEd00000450* - ID_MODEL_FROM_DATABASE=MCP65 Ethernet - - pci:v000010DEd00000450sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 Ethernet (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000451* - ID_MODEL_FROM_DATABASE=MCP65 Ethernet -@@ -23898,13 +23898,13 @@ pci:v000010DEd00000454* - ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller - - pci:v000010DEd00000454sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 USB 1.1 OHCI Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000455* - ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller - - pci:v000010DEd00000455sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 USB 2.0 EHCI Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd00000456* - ID_MODEL_FROM_DATABASE=MCP65 USB Controller -@@ -23943,7 +23943,7 @@ pci:v000010DEd0000045D* - ID_MODEL_FROM_DATABASE=MCP65 SATA Controller - - pci:v000010DEd0000045Dsv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=MCP65 SATA Controller (Pavilion dv9668eg Laptop) - - pci:v000010DEd0000045E* - ID_MODEL_FROM_DATABASE=MCP65 SATA Controller -@@ -23964,7 +23964,7 @@ pci:v000010DEd0000053B* - ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] - - pci:v000010DEd0000053Bsv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] (M2N68-AM Motherbord) - - pci:v000010DEd0000053E* - ID_MODEL_FROM_DATABASE=C68 [GeForce 7025 / nForce 630a] -@@ -23976,7 +23976,7 @@ pci:v000010DEd00000542* - ID_MODEL_FROM_DATABASE=MCP67 SMBus - - pci:v000010DEd00000542sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=MCP67 SMBus (M2N68-AM Motherbord) - - pci:v000010DEd00000543* - ID_MODEL_FROM_DATABASE=MCP67 Co-processor -@@ -23985,25 +23985,25 @@ pci:v000010DEd00000547* - ID_MODEL_FROM_DATABASE=MCP67 Memory Controller - - pci:v000010DEd00000547sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (M2N68-AM Motherbord) - - pci:v000010DEd00000547sv00001849sd00000547* -- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready -+ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (ALiveNF7G-HDready) - - pci:v000010DEd00000548* - ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge - - pci:v000010DEd00000548sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 ISA Bridge (M2N68-AM Motherboard) - - pci:v000010DEd0000054C* - ID_MODEL_FROM_DATABASE=MCP67 Ethernet - - pci:v000010DEd0000054Csv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherbord -+ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (M2N68-AM Motherbord) - - pci:v000010DEd0000054Csv00001849sd0000054C* -- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready, MCP67 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (ALiveNF7G-HDready, MCP67 Gigabit Ethernet) - - pci:v000010DEd0000054D* - ID_MODEL_FROM_DATABASE=MCP67 Ethernet -@@ -24018,25 +24018,25 @@ pci:v000010DEd00000550* - ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller - - pci:v000010DEd00000550sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000554* - ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller - - pci:v000010DEd00000554sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 AHCI Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000555* - ID_MODEL_FROM_DATABASE=MCP67 SATA Controller - - pci:v000010DEd00000555sv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 SATA Controller (M2N68-AM Motherboard) - - pci:v000010DEd0000055C* - ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio - - pci:v000010DEd0000055Csv00001043sd00008290* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio (M2N68-AM Motherboard) - - pci:v000010DEd0000055D* - ID_MODEL_FROM_DATABASE=MCP67 High Definition Audio -@@ -24045,19 +24045,19 @@ pci:v000010DEd0000055E* - ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller - - pci:v000010DEd0000055Esv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 OHCI USB 1.1 Controller (M2N68-AM Motherboard) - - pci:v000010DEd0000055F* - ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller - - pci:v000010DEd0000055Fsv00001043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 EHCI USB 2.0 Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000560* - ID_MODEL_FROM_DATABASE=MCP67 IDE Controller - - pci:v000010DEd00000560sv0000F043sd00008308* -- ID_MODEL_FROM_DATABASE=M2N68-AM Motherboard -+ ID_MODEL_FROM_DATABASE=MCP67 IDE Controller (M2N68-AM Motherboard) - - pci:v000010DEd00000561* - ID_MODEL_FROM_DATABASE=MCP67 PCI Bridge -@@ -24066,7 +24066,7 @@ pci:v000010DEd00000562* - ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge - - pci:v000010DEd00000562sv00001849sd00000562* -- ID_MODEL_FROM_DATABASE=ALiveNF7G-HDready -+ ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge (ALiveNF7G-HDready) - - pci:v000010DEd00000563* - ID_MODEL_FROM_DATABASE=MCP67 PCI Express Bridge -@@ -24075,64 +24075,64 @@ pci:v000010DEd00000568* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller - - pci:v000010DEd00000568sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) - - pci:v000010DEd00000568sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) - - pci:v000010DEd00000568sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) - - pci:v000010DEd00000568sv00001849sd00000568* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) - - pci:v000010DEd00000569* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge - - pci:v000010DEd00000569sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) - - pci:v000010DEd00000569sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) - - pci:v000010DEd00000569sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) - - pci:v000010DEd00000569sv00001849sd00000569* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) - - pci:v000010DEd0000056A* - ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) - - pci:v000010DEd0000056Asv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 [nForce 630i] USB 2.0 Controller (EHCI) (MCP73PVT-SM) - - pci:v000010DEd0000056C* - ID_MODEL_FROM_DATABASE=MCP73 IDE - - pci:v000010DEd0000056Csv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 IDE (MCP73PVT-SM) - - pci:v000010DEd0000056Csv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 IDE (JW-IN7150-HD) - - pci:v000010DEd0000056D* - ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge - - pci:v000010DEd0000056Dsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) - - pci:v000010DEd0000056E* - ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge - - pci:v000010DEd0000056Esv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) - - pci:v000010DEd0000056F* - ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge - - pci:v000010DEd0000056Fsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 PCI Express bridge (MCP73PVT-SM) - - pci:v000010DEd000005B1* - ID_MODEL_FROM_DATABASE=NF200 PCIe 2.0 switch -@@ -24156,7 +24156,7 @@ pci:v000010DEd000005E3* - ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] - - pci:v000010DEd000005E3sv00001682sd00002490* -- ID_MODEL_FROM_DATABASE=GX-285N-ZDF -+ ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 285] (GX-285N-ZDF) - - pci:v000010DEd000005E6* - ID_MODEL_FROM_DATABASE=GT200b [GeForce GTX 275] -@@ -24165,19 +24165,19 @@ pci:v000010DEd000005E7* - ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] - - pci:v000010DEd000005E7sv000010DEsd00000595* -- ID_MODEL_FROM_DATABASE=Tesla T10 Processor -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) - - pci:v000010DEd000005E7sv000010DEsd0000068F* -- ID_MODEL_FROM_DATABASE=Tesla T10 Processor -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla T10 Processor) - - pci:v000010DEd000005E7sv000010DEsd00000697* -- ID_MODEL_FROM_DATABASE=Tesla M1060 -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) - - pci:v000010DEd000005E7sv000010DEsd00000714* -- ID_MODEL_FROM_DATABASE=Tesla M1060 -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) - - pci:v000010DEd000005E7sv000010DEsd00000743* -- ID_MODEL_FROM_DATABASE=Tesla M1060 -+ ID_MODEL_FROM_DATABASE=GT200GL [Tesla C1060 / M1060] (Tesla M1060) - - pci:v000010DEd000005EA* - ID_MODEL_FROM_DATABASE=GT200 [GeForce GTX 260] -@@ -24240,7 +24240,7 @@ pci:v000010DEd00000609* - ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] - - pci:v000010DEd00000609sv0000106Bsd000000A7* -- ID_MODEL_FROM_DATABASE=GeForce 8800 GS -+ ID_MODEL_FROM_DATABASE=G92M [GeForce 8800M GTS] (GeForce 8800 GS) - - pci:v000010DEd0000060A* - ID_MODEL_FROM_DATABASE=G92M [GeForce GTX 280M] -@@ -24261,16 +24261,16 @@ pci:v000010DEd00000610* - ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] - - pci:v000010DEd00000610sv00001682sd00002385* -- ID_MODEL_FROM_DATABASE=GeForce 9600 GSO 768mb -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 9600 GSO] (GeForce 9600 GSO 768mb) - - pci:v000010DEd00000611* - ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] - - pci:v000010DEd00000611sv0000107Dsd00002AB0* -- ID_MODEL_FROM_DATABASE=Winfast PX8800 GT PCI-E -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (Winfast PX8800 GT PCI-E) - - pci:v000010DEd00000611sv000019DAsd00001040* -- ID_MODEL_FROM_DATABASE=ZT-88TES2P-FSP -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 8800 GT] (ZT-88TES2P-FSP) - - pci:v000010DEd00000612* - ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GTX / 9800 GTX+] -@@ -24282,22 +24282,22 @@ pci:v000010DEd00000614* - ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] - - pci:v000010DEd00000614sv0000107Dsd00002AB3* -- ID_MODEL_FROM_DATABASE=WinFast PX9800 GT (S-Fanpipe) -+ ID_MODEL_FROM_DATABASE=G92 [GeForce 9800 GT] (WinFast PX9800 GT (S-Fanpipe)) - - pci:v000010DEd00000615* - ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] - - pci:v000010DEd00000615sv00003842sd00001150* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1150-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1150-TR) - - pci:v000010DEd00000615sv00003842sd00001151* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 512-P3-1151-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 512-P3-1151-TR) - - pci:v000010DEd00000615sv00003842sd00001155* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1155-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1155-TR) - - pci:v000010DEd00000615sv00003842sd00001156* -- ID_MODEL_FROM_DATABASE=GeForce GTS 250 P/N 01G-P3-1156-TR -+ ID_MODEL_FROM_DATABASE=G92 [GeForce GTS 250] (GeForce GTS 250 P/N 01G-P3-1156-TR) - - pci:v000010DEd00000617* - ID_MODEL_FROM_DATABASE=G92M [GeForce 9800M GTX] -@@ -24336,10 +24336,10 @@ pci:v000010DEd00000622* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] - - pci:v000010DEd00000622sv0000107Dsd00002AC1* -- ID_MODEL_FROM_DATABASE=WinFast PX9600GT 1024MB -+ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (WinFast PX9600GT 1024MB) - - pci:v000010DEd00000622sv00001458sd00003481* -- ID_MODEL_FROM_DATABASE=GV-NX96T512HP -+ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GV-NX96T512HP) - - pci:v000010DEd00000623* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GS] -@@ -24375,7 +24375,7 @@ pci:v000010DEd0000062E* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] - - pci:v000010DEd0000062Esv0000106Bsd00000605* -- ID_MODEL_FROM_DATABASE=GeForce GT 130 -+ ID_MODEL_FROM_DATABASE=G94 [GeForce 9600 GT] (GeForce GT 130) - - pci:v000010DEd0000062F* - ID_MODEL_FROM_DATABASE=G94 [GeForce 9800 S] -@@ -24435,7 +24435,7 @@ pci:v000010DEd00000649* - ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] - - pci:v000010DEd00000649sv00001043sd0000202D* -- ID_MODEL_FROM_DATABASE=GeForce GT 220M -+ ID_MODEL_FROM_DATABASE=G96M [GeForce 9600M GT] (GeForce GT 220M) - - pci:v000010DEd0000064A* - ID_MODEL_FROM_DATABASE=G96M [GeForce 9700M GT] -@@ -24459,7 +24459,7 @@ pci:v000010DEd00000652* - ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] - - pci:v000010DEd00000652sv0000152Dsd00000850* -- ID_MODEL_FROM_DATABASE=GeForce GT 240M LE -+ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 130M] (GeForce GT 240M LE) - - pci:v000010DEd00000653* - ID_MODEL_FROM_DATABASE=G96M [GeForce GT 120M] -@@ -24468,10 +24468,10 @@ pci:v000010DEd00000654* - ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] - - pci:v000010DEd00000654sv00001043sd000014A2* -- ID_MODEL_FROM_DATABASE=GeForce GT 320M -+ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) - - pci:v000010DEd00000654sv00001043sd000014D2* -- ID_MODEL_FROM_DATABASE=GeForce GT 320M -+ ID_MODEL_FROM_DATABASE=G96M [GeForce GT 220M] (GeForce GT 320M) - - pci:v000010DEd00000655* - ID_MODEL_FROM_DATABASE=G96 [GeForce GT 120] -@@ -24519,28 +24519,28 @@ pci:v000010DEd000006D1* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] - - pci:v000010DEd000006D1sv000010DEsd00000771* -- ID_MODEL_FROM_DATABASE=Tesla C2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2050) - - pci:v000010DEd000006D1sv000010DEsd00000772* -- ID_MODEL_FROM_DATABASE=Tesla C2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla C2050 / C2070] (Tesla C2070) - - pci:v000010DEd000006D2* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] - - pci:v000010DEd000006D2sv000010DEsd00000774* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D2sv000010DEsd00000830* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D2sv000010DEsd00000842* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D2sv000010DEsd0000088F* -- ID_MODEL_FROM_DATABASE=Tesla X2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla X2070) - - pci:v000010DEd000006D2sv000010DEsd00000908* -- ID_MODEL_FROM_DATABASE=Tesla M2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070] (Tesla M2070) - - pci:v000010DEd000006D8* - ID_MODEL_FROM_DATABASE=GF100GL [Quadro 6000] -@@ -24561,37 +24561,37 @@ pci:v000010DEd000006DE* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] - - pci:v000010DEd000006DEsv000010DEsd00000773* -- ID_MODEL_FROM_DATABASE=Tesla S2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla S2050) - - pci:v000010DEd000006DEsv000010DEsd0000082F* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000840* -- ID_MODEL_FROM_DATABASE=Tesla X2070 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla X2070) - - pci:v000010DEd000006DEsv000010DEsd00000842* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000846* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000866* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd00000907* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DEsv000010DEsd0000091E* -- ID_MODEL_FROM_DATABASE=Tesla M2050 -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla T20 Processor] (Tesla M2050) - - pci:v000010DEd000006DF* - ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] - - pci:v000010DEd000006DFsv000010DEsd0000084D* -- ID_MODEL_FROM_DATABASE=Tesla M2070-Q -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) - - pci:v000010DEd000006DFsv000010DEsd0000087F* -- ID_MODEL_FROM_DATABASE=Tesla M2070-Q -+ ID_MODEL_FROM_DATABASE=GF100GL [Tesla M2070-Q] (Tesla M2070-Q) - - pci:v000010DEd000006E0* - ID_MODEL_FROM_DATABASE=G98 [GeForce 9300 GE] -@@ -24609,7 +24609,7 @@ pci:v000010DEd000006E4* - ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] - - pci:v000010DEd000006E4sv00001458sd00003475* -- ID_MODEL_FROM_DATABASE=GV-NX84S256HE [GeForce 8400 GS] -+ ID_MODEL_FROM_DATABASE=G98 [GeForce 8400 GS Rev. 2] (GV-NX84S256HE [GeForce 8400 GS]) - - pci:v000010DEd000006E5* - ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] -@@ -24624,13 +24624,13 @@ pci:v000010DEd000006E8* - ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] - - pci:v000010DEd000006E8sv0000103Csd0000360B* -- ID_MODEL_FROM_DATABASE=GeForce 9200M GE -+ ID_MODEL_FROM_DATABASE=G98M [GeForce 9200M GS] (GeForce 9200M GE) - - pci:v000010DEd000006E9* - ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] - - pci:v000010DEd000006E9sv00001043sd000019B2* -- ID_MODEL_FROM_DATABASE=U6V laptop -+ ID_MODEL_FROM_DATABASE=G98M [GeForce 9300M GS] (U6V laptop) - - pci:v000010DEd000006EA* - ID_MODEL_FROM_DATABASE=G98M [Quadro NVS 150M] -@@ -24672,139 +24672,139 @@ pci:v000010DEd000006FF* - ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] - - pci:v000010DEd000006FFsv000010DEsd00000711* -- ID_MODEL_FROM_DATABASE=HICx8 + Graphics -+ ID_MODEL_FROM_DATABASE=G98 [HICx16 + Graphics] (HICx8 + Graphics) - - pci:v000010DEd00000751* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller - - pci:v000010DEd00000751sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) - - pci:v000010DEd00000751sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) - - pci:v000010DEd00000751sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) - - pci:v000010DEd00000751sv00001849sd00000751* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) - - pci:v000010DEd00000752* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus - - pci:v000010DEd00000752sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (Pavilion p6310f) - - pci:v000010DEd00000752sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (M3N72-D) - - pci:v000010DEd00000752sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K9N2GM-FIH) - - pci:v000010DEd00000752sv00001849sd00000752* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 SMBus -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SMBus (K10N78FullHD-hSLI R3.0 SMBus) - - pci:v000010DEd00000753* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor - - pci:v000010DEd00000753sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (Pavilion p6310f) - - pci:v000010DEd00000753sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (M3N72-D) - - pci:v000010DEd00000753sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K9N2GM-FIH) - - pci:v000010DEd00000753sv00001849sd00000753* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Co-Processor -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Co-Processor (K10N78FullHD-hSLI R3.0 Co-Processor) - - pci:v000010DEd00000754* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller - - pci:v000010DEd00000754sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (Pavilion p6310f) - - pci:v000010DEd00000754sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (M3N72-D) - - pci:v000010DEd00000754sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K9N2GM-FIH) - - pci:v000010DEd00000754sv00001849sd00000754* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Memory Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] Memory Controller (K10N78FullHD-hSLI R3.0 Memory Controller) - - pci:v000010DEd00000759* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE - - pci:v000010DEd00000759sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (M3N72-D) - - pci:v000010DEd00000759sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K9N2GM-FIH) - - pci:v000010DEd00000759sv00001849sd00000759* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] IDE (K10N78FullHD-hSLI R3.0 IDE) - - pci:v000010DEd0000075A* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge - - pci:v000010DEd0000075Asv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) - - pci:v000010DEd0000075Asv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) - - pci:v000010DEd0000075Asv00001849sd0000075A* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) - - pci:v000010DEd0000075B* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge - - pci:v000010DEd0000075Bsv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) - - pci:v000010DEd0000075Bsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) - - pci:v000010DEd0000075Bsv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) - - pci:v000010DEd0000075Bsv00001849sd0000075B* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) - - pci:v000010DEd0000075C* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge - - pci:v000010DEd0000075Csv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (Pavilion p6310f) - - pci:v000010DEd0000075Csv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K9N2GM-FIH) - - pci:v000010DEd0000075Csv00001849sd0000075C* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 LPC Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (K10N78FullHD-hSLI R3.0 LPC Bridge) - - pci:v000010DEd0000075D* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge - - pci:v000010DEd0000075Dsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] LPC Bridge (M3N72-D) - - pci:v000010DEd00000760* - ID_MODEL_FROM_DATABASE=MCP77 Ethernet - - pci:v000010DEd00000760sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (Pavilion p6310f) - - pci:v000010DEd00000760sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (M3N72-D) - - pci:v000010DEd00000760sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K9N2GM-FIH) - - pci:v000010DEd00000760sv00001849sd00000760* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 Ethernet -+ ID_MODEL_FROM_DATABASE=MCP77 Ethernet (K10N78FullHD-hSLI R3.0 Ethernet) - - pci:v000010DEd00000761* - ID_MODEL_FROM_DATABASE=MCP77 Ethernet -@@ -24819,118 +24819,118 @@ pci:v000010DEd00000774* - ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio - - pci:v000010DEd00000774sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (Pavilion p6310f) - - pci:v000010DEd00000774sv00001043sd000082FE* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (M3N72-D) - - pci:v000010DEd00000774sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K9N2GM-FIH) - - pci:v000010DEd00000774sv00001849sd00003662* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 High Definition Audio -+ ID_MODEL_FROM_DATABASE=MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio (K10N78FullHD-hSLI R3.0 High Definition Audio) - - pci:v000010DEd00000778* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge - - pci:v000010DEd00000778sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (Pavilion p6310f) - - pci:v000010DEd00000778sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (M3N72-D) - - pci:v000010DEd00000778sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K9N2GM-FIH) - - pci:v000010DEd00000778sv00001849sd00000778* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Express Bridge (K10N78FullHD-hSLI R3.0 PCI Express Bridge) - - pci:v000010DEd0000077A* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge - - pci:v000010DEd0000077Asv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (Pavilion p6310f) - - pci:v000010DEd0000077Asv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (M3N72-D) - - pci:v000010DEd0000077Asv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K9N2GM-FIH) - - pci:v000010DEd0000077Asv00001849sd0000077A* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 PCI Bridge -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] PCI Bridge (K10N78FullHD-hSLI R3.0 PCI Bridge) - - pci:v000010DEd0000077B* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller - - pci:v000010DEd0000077Bsv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Bsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) - - pci:v000010DEd0000077Bsv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Bsv00001849sd0000077B* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) - - pci:v000010DEd0000077C* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller - - pci:v000010DEd0000077Csv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Csv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) - - pci:v000010DEd0000077Csv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Csv00001849sd0000077C* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) - - pci:v000010DEd0000077D* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller - - pci:v000010DEd0000077Dsv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Dsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (M3N72-D) - - pci:v000010DEd0000077Dsv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Dsv00001849sd0000077D* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] OHCI USB 1.1 Controller (K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller) - - pci:v000010DEd0000077E* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller - - pci:v000010DEd0000077Esv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (Pavilion p6310f) - - pci:v000010DEd0000077Esv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (M3N72-D) - - pci:v000010DEd0000077Esv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K9N2GM-FIH) - - pci:v000010DEd0000077Esv00001849sd0000077E* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] EHCI USB 2.0 Controller (K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller) - - pci:v000010DEd000007C0* - ID_MODEL_FROM_DATABASE=MCP73 Host Bridge - - pci:v000010DEd000007C0sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (JW-IN7150-HD) - - pci:v000010DEd000007C1* - ID_MODEL_FROM_DATABASE=MCP73 Host Bridge - - pci:v000010DEd000007C1sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 Host Bridge (MCP73PVT-SM) - - pci:v000010DEd000007C2* - ID_MODEL_FROM_DATABASE=MCP73 Host Bridge -@@ -24942,124 +24942,124 @@ pci:v000010DEd000007C8* - ID_MODEL_FROM_DATABASE=MCP73 Memory Controller - - pci:v000010DEd000007C8sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) - - pci:v000010DEd000007C8sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) - - pci:v000010DEd000007CB* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CBsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CBsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007CD* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CDsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CDsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007CE* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CEsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CEsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007CF* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007CFsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007CFsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D0* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D0sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D0sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D1* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D1sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D1sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D2* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D2sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D2sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D3* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D3sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D3sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D6* - ID_MODEL_FROM_DATABASE=nForce 630i memory controller - - pci:v000010DEd000007D6sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (MCP73PVT-SM) - - pci:v000010DEd000007D6sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=nForce 630i memory controller (JW-IN7150-HD) - - pci:v000010DEd000007D7* - ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge - - pci:v000010DEd000007D7sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (MCP73PVT-SM) - - pci:v000010DEd000007D7sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 LPC Bridge (JW-IN7150-HD) - - pci:v000010DEd000007D8* - ID_MODEL_FROM_DATABASE=MCP73 SMBus - - pci:v000010DEd000007D8sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 SMBus (MCP73PVT-SM) - - pci:v000010DEd000007D8sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 SMBus (JW-IN7150-HD) - - pci:v000010DEd000007D9* - ID_MODEL_FROM_DATABASE=MCP73 Memory Controller - - pci:v000010DEd000007D9sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (MCP73PVT-SM) - - pci:v000010DEd000007D9sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Memory Controller (JW-IN7150-HD) - - pci:v000010DEd000007DA* - ID_MODEL_FROM_DATABASE=MCP73 Co-processor - - pci:v000010DEd000007DAsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=MCP73 Co-processor (JW-IN7150-HD) - - pci:v000010DEd000007DC* - ID_MODEL_FROM_DATABASE=MCP73 Ethernet -@@ -25077,13 +25077,13 @@ pci:v000010DEd000007E0* - ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] - - pci:v000010DEd000007E0sv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=C73 [GeForce 7150 / nForce 630i] (JW-IN7150-HD) - - pci:v000010DEd000007E1* - ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] - - pci:v000010DEd000007E1sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=C73 [GeForce 7100 / nForce 630i] (MCP73PVT-SM) - - pci:v000010DEd000007E2* - ID_MODEL_FROM_DATABASE=C73 [GeForce 7050 / nForce 630i] -@@ -25101,7 +25101,7 @@ pci:v000010DEd000007F4* - ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA - - pci:v000010DEd000007F4sv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i SATA (MCP73PVT-SM) - - pci:v000010DEd000007F8* - ID_MODEL_FROM_DATABASE=MCP73 SATA RAID Controller -@@ -25110,7 +25110,7 @@ pci:v000010DEd000007FC* - ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio - - pci:v000010DEd000007FCsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio (MCP73PVT-SM) - - pci:v000010DEd000007FCsv000010DEsd000007FC* - ID_MODEL_FROM_DATABASE=MCP73 High Definition Audio -@@ -25119,10 +25119,10 @@ pci:v000010DEd000007FE* - ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB - - pci:v000010DEd000007FEsv00001019sd0000297A* -- ID_MODEL_FROM_DATABASE=MCP73PVT-SM -+ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (MCP73PVT-SM) - - pci:v000010DEd000007FEsv00001AFAsd00007150* -- ID_MODEL_FROM_DATABASE=JW-IN7150-HD -+ ID_MODEL_FROM_DATABASE=GeForce 7100/nForce 630i USB (JW-IN7150-HD) - - pci:v000010DEd00000840* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8200M] -@@ -25140,7 +25140,7 @@ pci:v000010DEd00000847* - ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] - - pci:v000010DEd00000847sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=C78 [GeForce 9100] (Pavilion p6310f) - - pci:v000010DEd00000848* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8300] -@@ -25149,10 +25149,10 @@ pci:v000010DEd00000849* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] - - pci:v000010DEd00000849sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K9N2GM-FIH) - - pci:v000010DEd00000849sv00001849sd00000849* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 GeForce 8200 -+ ID_MODEL_FROM_DATABASE=C77 [GeForce 8200] (K10N78FullHD-hSLI R3.0 GeForce 8200) - - pci:v000010DEd0000084A* - ID_MODEL_FROM_DATABASE=C77 [nForce 730a] -@@ -25167,7 +25167,7 @@ pci:v000010DEd0000084D* - ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] - - pci:v000010DEd0000084Dsv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D mGPU -+ ID_MODEL_FROM_DATABASE=C77 [nForce 750a SLI] (M3N72-D mGPU) - - pci:v000010DEd0000084F* - ID_MODEL_FROM_DATABASE=C77 [GeForce 8100 / nForce 720a] -@@ -25185,7 +25185,7 @@ pci:v000010DEd00000863* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] - - pci:v000010DEd00000863sv0000106Bsd000000AA* -- ID_MODEL_FROM_DATABASE=MacBook5,1 -+ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M] (MacBook5,1) - - pci:v000010DEd00000864* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9300] -@@ -25197,13 +25197,13 @@ pci:v000010DEd00000866* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] - - pci:v000010DEd00000866sv0000106Bsd000000B1* -- ID_MODEL_FROM_DATABASE=GeForce 9400M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400M G] (GeForce 9400M) - - pci:v000010DEd00000867* - ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] - - pci:v000010DEd00000867sv0000106Bsd000000AD* -- ID_MODEL_FROM_DATABASE=iMac 9,1 -+ ID_MODEL_FROM_DATABASE=C79 [GeForce 9400] (iMac 9,1) - - pci:v000010DEd00000868* - ID_MODEL_FROM_DATABASE=C79 [nForce 760i SLI] -@@ -25236,28 +25236,28 @@ pci:v000010DEd00000872* - ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] - - pci:v000010DEd00000872sv00001043sd000019B4* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000872sv00001043sd00001AA2* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000872sv00001043sd00001C02* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000872sv00001043sd00001C42* -- ID_MODEL_FROM_DATABASE=GeForce G205M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) - - pci:v000010DEd00000873* - ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] - - pci:v000010DEd00000873sv00001043sd000019B4* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000873sv00001043sd00001C12* -- ID_MODEL_FROM_DATABASE=GeForce G102M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G102M) - - pci:v000010DEd00000873sv00001043sd00001C52* -- ID_MODEL_FROM_DATABASE=GeForce G205M -+ ID_MODEL_FROM_DATABASE=C79 [GeForce G102M] (GeForce G205M) - - pci:v000010DEd00000874* - ID_MODEL_FROM_DATABASE=C79 [ION] -@@ -25272,7 +25272,7 @@ pci:v000010DEd0000087D* - ID_MODEL_FROM_DATABASE=ION VGA - - pci:v000010DEd0000087Dsv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=ION VGA (IONITX-F-E) - - pci:v000010DEd0000087E* - ID_MODEL_FROM_DATABASE=ION LE VGA -@@ -25299,7 +25299,7 @@ pci:v000010DEd00000A20* - ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] - - pci:v000010DEd00000A20sv00001043sd00008311* -- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 -+ ID_MODEL_FROM_DATABASE=GT216 [GeForce GT 220] (ENGT220/DI/1GD3(LP)/V2) - - pci:v000010DEd00000A21* - ID_MODEL_FROM_DATABASE=GT216M [GeForce GT 330M] -@@ -25368,7 +25368,7 @@ pci:v000010DEd00000A65* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] - - pci:v000010DEd00000A65sv00001043sd00008334* -- ID_MODEL_FROM_DATABASE=EN210 SILENT -+ ID_MODEL_FROM_DATABASE=GT218 [GeForce 210] (EN210 SILENT) - - pci:v000010DEd00000A66* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 310] -@@ -25389,10 +25389,10 @@ pci:v000010DEd00000A6C* - ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] - - pci:v000010DEd00000A6Csv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (Latitude E6510) - - pci:v000010DEd00000A6Csv000017AAsd00002142* -- ID_MODEL_FROM_DATABASE=ThinkPad T410 -+ ID_MODEL_FROM_DATABASE=GT218M [NVS 3100M] (ThinkPad T410) - - pci:v000010DEd00000A6E* - ID_MODEL_FROM_DATABASE=GT218M [GeForce 305M] -@@ -25416,7 +25416,7 @@ pci:v000010DEd00000A74* - ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] - - pci:v000010DEd00000A74sv00001B0Asd0000903A* -- ID_MODEL_FROM_DATABASE=GeForce G210 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce G210M] (GeForce G210) - - pci:v000010DEd00000A75* - ID_MODEL_FROM_DATABASE=GT218M [GeForce 310M] -@@ -25431,127 +25431,127 @@ pci:v000010DEd00000A7A* - ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] - - pci:v000010DEd00000A7Asv0000104Dsd0000907E* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC50* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC61* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC71* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FC90* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCC0* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCD0* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCE2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FCF2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD16* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD40* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD50* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD52* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD61* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD71* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD92* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FD96* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FDD0* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FDD2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001179sd0000FDFE* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C0A2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C0B2* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C581* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C587* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C588* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C597* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv0000144Dsd0000C606* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001462sd0000AA51* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AA58* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AC71* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AC81* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001462sd0000AC82* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001462sd0000AE33* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001642sd00003980* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv000017AAsd00003950* -- ID_MODEL_FROM_DATABASE=GeForce 405M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) - - pci:v000010DEd00000A7Asv000017AAsd0000397D* -- ID_MODEL_FROM_DATABASE=GeForce 405M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405M) - - pci:v000010DEd00000A7Asv00001B0Asd00002091* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7Asv00001B0Asd000090B4* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001BFDsd00000003* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001BFDsd00008006* -- ID_MODEL_FROM_DATABASE=GeForce 405 -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 405) - - pci:v000010DEd00000A7Asv00001BFDsd00008007* -- ID_MODEL_FROM_DATABASE=GeForce 315M -+ ID_MODEL_FROM_DATABASE=GT218M [GeForce 315M] (GeForce 315M) - - pci:v000010DEd00000A7B* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 505] -@@ -25593,64 +25593,64 @@ pci:v000010DEd00000A98* - ID_MODEL_FROM_DATABASE=MCP79 Memory Controller - - pci:v000010DEd00000A98sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (iMac 9,1) - - pci:v000010DEd00000AA0* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AA0sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AA2* - ID_MODEL_FROM_DATABASE=MCP79 SMBus - - pci:v000010DEd00000AA2sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 SMBus (Apple iMac 9,1) - - pci:v000010DEd00000AA2sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 SMBus (IONITX-F-E) - - pci:v000010DEd00000AA3* - ID_MODEL_FROM_DATABASE=MCP79 Co-processor - - pci:v000010DEd00000AA3sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (Apple iMac 9,1) - - pci:v000010DEd00000AA3sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 Co-processor (IONITX-F-E) - - pci:v000010DEd00000AA4* - ID_MODEL_FROM_DATABASE=MCP79 Memory Controller - - pci:v000010DEd00000AA4sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 Memory Controller (IONITX-F-E) - - pci:v000010DEd00000AA5* - ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller - - pci:v000010DEd00000AA5sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA5sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) - - pci:v000010DEd00000AA6* - ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller - - pci:v000010DEd00000AA6sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA6sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) - - pci:v000010DEd00000AA7* - ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller - - pci:v000010DEd00000AA7sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA7sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller (IONITX-F-E) - - pci:v000010DEd00000AA8* - ID_MODEL_FROM_DATABASE=MCP79 OHCI USB 1.1 Controller -@@ -25659,10 +25659,10 @@ pci:v000010DEd00000AA9* - ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller - - pci:v000010DEd00000AA9sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (Apple iMac 9,1) - - pci:v000010DEd00000AA9sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller (IONITX-F-E) - - pci:v000010DEd00000AAA* - ID_MODEL_FROM_DATABASE=MCP79 EHCI USB 2.0 Controller -@@ -25671,7 +25671,7 @@ pci:v000010DEd00000AAB* - ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge - - pci:v000010DEd00000AABsv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AAC* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge -@@ -25680,13 +25680,13 @@ pci:v000010DEd00000AAD* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge - - pci:v000010DEd00000AADsv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (IONITX-F-E) - - pci:v000010DEd00000AAE* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge - - pci:v000010DEd00000AAEsv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AAF* - ID_MODEL_FROM_DATABASE=MCP79 LPC Bridge -@@ -25695,10 +25695,10 @@ pci:v000010DEd00000AB0* - ID_MODEL_FROM_DATABASE=MCP79 Ethernet - - pci:v000010DEd00000AB0sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (Apple iMac 9,1) - - pci:v000010DEd00000AB0sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 Ethernet (IONITX-F-E) - - pci:v000010DEd00000AB1* - ID_MODEL_FROM_DATABASE=MCP79 Ethernet -@@ -25713,7 +25713,7 @@ pci:v000010DEd00000AB4* - ID_MODEL_FROM_DATABASE=MCP79 SATA Controller - - pci:v000010DEd00000AB4sv000019DAsd0000A123* -- ID_MODEL_FROM_DATABASE=IONITX-F-E -+ ID_MODEL_FROM_DATABASE=MCP79 SATA Controller (IONITX-F-E) - - pci:v000010DEd00000AB5* - ID_MODEL_FROM_DATABASE=MCP79 SATA Controller -@@ -25731,7 +25731,7 @@ pci:v000010DEd00000AB9* - ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller - - pci:v000010DEd00000AB9sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller (Apple iMac 9,1) - - pci:v000010DEd00000ABA* - ID_MODEL_FROM_DATABASE=MCP79 AHCI Controller -@@ -25755,7 +25755,7 @@ pci:v000010DEd00000AC0* - ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio - - pci:v000010DEd00000AC0sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio (Apple iMac 9,1) - - pci:v000010DEd00000AC1* - ID_MODEL_FROM_DATABASE=MCP79 High Definition Audio -@@ -25770,7 +25770,7 @@ pci:v000010DEd00000AC4* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AC4sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AC5* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge -@@ -25779,13 +25779,13 @@ pci:v000010DEd00000AC6* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AC6sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AC7* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge - - pci:v000010DEd00000AC7sv000010DEsd0000CB79* -- ID_MODEL_FROM_DATABASE=Apple iMac 9,1 -+ ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge (Apple iMac 9,1) - - pci:v000010DEd00000AC8* - ID_MODEL_FROM_DATABASE=MCP79 PCI Express Bridge -@@ -25794,22 +25794,22 @@ pci:v000010DEd00000AD0* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) - - pci:v000010DEd00000AD0sv00001462sd00007508* -- ID_MODEL_FROM_DATABASE=K9N2GM-FIH -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K9N2GM-FIH) - - pci:v000010DEd00000AD0sv00001849sd00000AD0* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 IDE -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) (K10N78FullHD-hSLI R3.0 IDE) - - pci:v000010DEd00000AD4* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller - - pci:v000010DEd00000AD4sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (Pavilion p6310f) - - pci:v000010DEd00000AD4sv00001043sd000082E8* -- ID_MODEL_FROM_DATABASE=M3N72-D -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (M3N72-D) - - pci:v000010DEd00000AD4sv00001849sd00000AD4* -- ID_MODEL_FROM_DATABASE=K10N78FullHD-hSLI R3.0 AHCI Controller -+ ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] AHCI Controller (K10N78FullHD-hSLI R3.0 AHCI Controller) - - pci:v000010DEd00000AD8* - ID_MODEL_FROM_DATABASE=MCP78S [GeForce 8200] SATA Controller (RAID mode) -@@ -25818,16 +25818,16 @@ pci:v000010DEd00000BE2* - ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller - - pci:v000010DEd00000BE2sv00001043sd00008311* -- ID_MODEL_FROM_DATABASE=ENGT220/DI/1GD3(LP)/V2 -+ ID_MODEL_FROM_DATABASE=GT216 HDMI Audio Controller (ENGT220/DI/1GD3(LP)/V2) - - pci:v000010DEd00000BE3* - ID_MODEL_FROM_DATABASE=High Definition Audio Controller - - pci:v000010DEd00000BE3sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (Latitude E6510) - - pci:v000010DEd00000BE3sv000010DEsd0000066D* -- ID_MODEL_FROM_DATABASE=G98 [GeForce 8400GS] -+ ID_MODEL_FROM_DATABASE=High Definition Audio Controller (G98 [GeForce 8400GS]) - - pci:v000010DEd00000BE4* - ID_MODEL_FROM_DATABASE=High Definition Audio Controller -@@ -25839,22 +25839,22 @@ pci:v000010DEd00000BE9* - ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller - - pci:v000010DEd00000BE9sv00001558sd00008687* -- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU -+ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (CLEVO/KAPOK W860CU) - - pci:v000010DEd00000BE9sv00003842sd00001452* -- ID_MODEL_FROM_DATABASE=GeForce GTS 450 -+ ID_MODEL_FROM_DATABASE=GF106 High Definition Audio Controller (GeForce GTS 450) - - pci:v000010DEd00000BEA* - ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller - - pci:v000010DEd00000BEAsv00003842sd00001430* -- ID_MODEL_FROM_DATABASE=GeForce GT 430 -+ ID_MODEL_FROM_DATABASE=GF108 High Definition Audio Controller (GeForce GT 430) - - pci:v000010DEd00000BEB* - ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller - - pci:v000010DEd00000BEBsv00001462sd00002322* -- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC -+ ID_MODEL_FROM_DATABASE=GF104 High Definition Audio Controller (N460GTX Cyclone 1GD5/OC) - - pci:v000010DEd00000BEE* - ID_MODEL_FROM_DATABASE=GF116 High Definition Audio Controller -@@ -25968,7 +25968,7 @@ pci:v000010DEd00000DD1* - ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] - - pci:v000010DEd00000DD1sv00001558sd00008687* -- ID_MODEL_FROM_DATABASE=CLEVO/KAPOK W860CU -+ ID_MODEL_FROM_DATABASE=GF106M [GeForce GTX 460M] (CLEVO/KAPOK W860CU) - - pci:v000010DEd00000DD2* - ID_MODEL_FROM_DATABASE=GF106M [GeForce GT 445M] -@@ -25983,7 +25983,7 @@ pci:v000010DEd00000DD8* - ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] - - pci:v000010DEd00000DD8sv000010DEsd00000914* -- ID_MODEL_FROM_DATABASE=Quadro 2000D -+ ID_MODEL_FROM_DATABASE=GF106GL [Quadro 2000] (Quadro 2000D) - - pci:v000010DEd00000DDA* - ID_MODEL_FROM_DATABASE=GF106GLM [Quadro 2000M] -@@ -25995,7 +25995,7 @@ pci:v000010DEd00000DE1* - ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] - - pci:v000010DEd00000DE1sv00003842sd00001430* -- ID_MODEL_FROM_DATABASE=GeForce GT 430 -+ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 430] (GeForce GT 430) - - pci:v000010DEd00000DE2* - ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 420] -@@ -26019,49 +26019,49 @@ pci:v000010DEd00000DE9* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] - - pci:v000010DEd00000DE9sv00001025sd00000692* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000725* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000728* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd0000072B* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd0000072E* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000753* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv00001025sd00000754* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 620M) - - pci:v000010DEd00000DE9sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 640M LE) - - pci:v000010DEd00000DE9sv00001B0Asd00002210* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 630M] (GeForce GT 635M) - - pci:v000010DEd00000DEA* - ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] - - pci:v000010DEd00000DEAsv000017AAsd0000365A* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd0000365B* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd0000365E* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd00003660* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEAsv000017AAsd0000366C* -- ID_MODEL_FROM_DATABASE=GeForce 615 -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce 610M] (GeForce 615) - - pci:v000010DEd00000DEB* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 555M] -@@ -26094,10 +26094,10 @@ pci:v000010DEd00000DF4* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] - - pci:v000010DEd00000DF4sv0000152Dsd00000952* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) - - pci:v000010DEd00000DF4sv0000152Dsd00000953* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 540M] (GeForce GT 630M) - - pci:v000010DEd00000DF5* - ID_MODEL_FROM_DATABASE=GF108M [GeForce GT 525M] -@@ -26124,7 +26124,7 @@ pci:v000010DEd00000E08* - ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller - - pci:v000010DEd00000E08sv000010B0sd0000104A* -- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 -+ ID_MODEL_FROM_DATABASE=GF119 HDMI Audio Controller (Gainward GeForce GT 610) - - pci:v000010DEd00000E09* - ID_MODEL_FROM_DATABASE=GF110 High Definition Audio Controller -@@ -26145,16 +26145,16 @@ pci:v000010DEd00000E1B* - ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller - - pci:v000010DEd00000E1Bsv0000103Csd0000197B* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (ZBook 15) - - pci:v000010DEd00000E1Bsv00001043sd00008428* -- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 -+ ID_MODEL_FROM_DATABASE=GK107 HDMI Audio Controller (GTX650-DC-1GD5) - - pci:v000010DEd00000E22* - ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] - - pci:v000010DEd00000E22sv00001462sd00002322* -- ID_MODEL_FROM_DATABASE=N460GTX Cyclone 1GD5/OC -+ ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460] (N460GTX Cyclone 1GD5/OC) - - pci:v000010DEd00000E23* - ID_MODEL_FROM_DATABASE=GF104 [GeForce GTX 460 SE] -@@ -26193,7 +26193,7 @@ pci:v000010DEd00000FC6* - ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] - - pci:v000010DEd00000FC6sv00001043sd00008428* -- ID_MODEL_FROM_DATABASE=GTX650-DC-1GD5 -+ ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) - - pci:v000010DEd00000FCD* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] -@@ -26205,34 +26205,34 @@ pci:v000010DEd00000FD1* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] - - pci:v000010DEd00000FD1sv00001043sd00001597* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD1sv00001043sd000015A7* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD1sv00001043sd00002103* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (N56VZ) - - pci:v000010DEd00000FD1sv00001043sd00002105* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD1sv00001043sd00002141* -- ID_MODEL_FROM_DATABASE=GeForce GT 650M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 650M] (GeForce GT 650M) - - pci:v000010DEd00000FD2* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] - - pci:v000010DEd00000FD2sv00001028sd0000054F* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) - - pci:v000010DEd00000FD2sv00001028sd0000055F* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M) - - pci:v000010DEd00000FD2sv00001028sd00000595* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) - - pci:v000010DEd00000FD2sv00001028sd000005B2* -- ID_MODEL_FROM_DATABASE=GeForce GT 640M LE -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M] (GeForce GT 640M LE) - - pci:v000010DEd00000FD3* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 640M LE] -@@ -26265,7 +26265,7 @@ pci:v000010DEd00000FE3* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] - - pci:v000010DEd00000FE3sv000017AAsd00003675* -- ID_MODEL_FROM_DATABASE=GeForce GT 745A -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) - - pci:v000010DEd00000FE4* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M] -@@ -26280,7 +26280,7 @@ pci:v000010DEd00000FE7* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] - - pci:v000010DEd00000FE7sv000010DEsd0000101E* -- ID_MODEL_FROM_DATABASE=GRID K100 -+ ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] (GRID K100) - - pci:v000010DEd00000FE9* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M Mac Edition] -@@ -26304,13 +26304,13 @@ pci:v000010DEd00000FF6* - ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] - - pci:v000010DEd00000FF6sv0000103Csd0000197B* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K1100M] (ZBook 15) - - pci:v000010DEd00000FF7* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] - - pci:v000010DEd00000FF7sv000010DEsd00001037* -- ID_MODEL_FROM_DATABASE=GRID K140Q -+ ID_MODEL_FROM_DATABASE=GK107GL [GRID K140Q vGPU] (GRID K140Q) - - pci:v000010DEd00000FF8* - ID_MODEL_FROM_DATABASE=GK107GLM [Quadro K500M] -@@ -26343,37 +26343,37 @@ pci:v000010DEd00001004* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] - - pci:v000010DEd00001004sv00003842sd00000784* -- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 SC w/ ACX Cooler] -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 SC w/ ACX Cooler]) - - pci:v000010DEd00001004sv00003842sd00001784* -- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler] -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler]) - - pci:v000010DEd00001004sv00003842sd00001788* -- ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler] -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780] (GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler]) - - pci:v000010DEd00001005* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] - - pci:v000010DEd00001005sv00001043sd00008451* -- ID_MODEL_FROM_DATABASE=GTXTITAN-6GD5 -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GTXTITAN-6GD5) - - pci:v000010DEd00001005sv000010DEsd00001035* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) - - pci:v000010DEd00001005sv00003842sd00002790* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan) - - pci:v000010DEd00001005sv00003842sd00002791* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC) - - pci:v000010DEd00001005sv00003842sd00002793* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Signature -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Signature) - - pci:v000010DEd00001005sv00003842sd00002794* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper) - - pci:v000010DEd00001005sv00003842sd00002795* -- ID_MODEL_FROM_DATABASE=GeForce GTX Titan SC Hydro Copper Signature -+ ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan] (GeForce GTX Titan SC Hydro Copper Signature) - - pci:v000010DEd00001007* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX 780 Rev. 2] -@@ -26436,7 +26436,7 @@ pci:v000010DEd0000104A* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] - - pci:v000010DEd0000104Asv000010B0sd0000104A* -- ID_MODEL_FROM_DATABASE=Gainward GeForce GT 610 -+ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610] (Gainward GeForce GT 610) - - pci:v000010DEd0000104B* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 625 OEM] -@@ -26469,37 +26469,37 @@ pci:v000010DEd00001058* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] - - pci:v000010DEd00001058sv0000103Csd00002AED* -- ID_MODEL_FROM_DATABASE=GeForce 610 -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) - - pci:v000010DEd00001058sv0000103Csd00002AF1* -- ID_MODEL_FROM_DATABASE=GeForce 610 -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610) - - pci:v000010DEd00001058sv00001043sd000010AC* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd00001058sv00001043sd000010BC* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd00001058sv00001043sd00001652* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd00001058sv000017AAsd0000367A* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) - - pci:v000010DEd00001058sv000017AAsd00003682* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) - - pci:v000010DEd00001058sv000017AAsd00003687* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) - - pci:v000010DEd00001058sv000017AAsd00003692* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 705A) - - pci:v000010DEd00001058sv000017AAsd00003695* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 800A) - - pci:v000010DEd00001058sv000017AAsd0000A117* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce 610M) - - pci:v000010DEd00001059* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] -@@ -26508,25 +26508,25 @@ pci:v000010DEd0000105A* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] - - pci:v000010DEd0000105Asv00001043sd00002111* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd0000105Asv00001043sd00002112* -- ID_MODEL_FROM_DATABASE=GeForce GT 610M -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 610M] (GeForce GT 610M) - - pci:v000010DEd0000105B* - ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] - - pci:v000010DEd0000105Bsv0000103Csd00002AFB* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) - - pci:v000010DEd0000105Bsv000017AAsd0000309D* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 705A) - - pci:v000010DEd0000105Bsv000017AAsd000030B1* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) - - pci:v000010DEd0000105Bsv000017AAsd000036A1* -- ID_MODEL_FROM_DATABASE=GeForce 800A -+ ID_MODEL_FROM_DATABASE=GF119M [GeForce 705M] (GeForce 800A) - - pci:v000010DEd0000107C* - ID_MODEL_FROM_DATABASE=GF119 [NVS 315] -@@ -26541,7 +26541,7 @@ pci:v000010DEd00001081* - ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] - - pci:v000010DEd00001081sv000010DEsd0000087E* -- ID_MODEL_FROM_DATABASE=Leadtek WinFast GTX 570 -+ ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 570] (Leadtek WinFast GTX 570) - - pci:v000010DEd00001082* - ID_MODEL_FROM_DATABASE=GF110 [GeForce GTX 560 Ti OEM] -@@ -26571,31 +26571,31 @@ pci:v000010DEd00001091* - ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] - - pci:v000010DEd00001091sv000010DEsd0000088E* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001091sv000010DEsd00000891* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001091sv000010DEsd00000974* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001091sv000010DEsd0000098D* -- ID_MODEL_FROM_DATABASE=Tesla X2090 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2090] (Tesla X2090) - - pci:v000010DEd00001094* - ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] - - pci:v000010DEd00001094sv000010DEsd00000888* -- ID_MODEL_FROM_DATABASE=Tesla M2075 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla M2075] (Tesla M2075) - - pci:v000010DEd00001096* - ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] - - pci:v000010DEd00001096sv000010DEsd00000910* -- ID_MODEL_FROM_DATABASE=Tesla C2075 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2075) - - pci:v000010DEd00001096sv000010DEsd00000911* -- ID_MODEL_FROM_DATABASE=Tesla C2050 -+ ID_MODEL_FROM_DATABASE=GF110GL [Tesla C2050 / C2075] (Tesla C2050) - - pci:v000010DEd0000109A* - ID_MODEL_FROM_DATABASE=GF100GLM [Quadro 5010M] -@@ -26604,7 +26604,7 @@ pci:v000010DEd0000109B* - ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] - - pci:v000010DEd0000109Bsv000010DEsd00000918* -- ID_MODEL_FROM_DATABASE=Quadro 7000 -+ ID_MODEL_FROM_DATABASE=GF100GL [Quadro 7000] (Quadro 7000) - - pci:v000010DEd000010C0* - ID_MODEL_FROM_DATABASE=GT218 [GeForce 9300 GS Rev. 2] -@@ -26622,622 +26622,622 @@ pci:v000010DEd00001140* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] - - pci:v000010DEd00001140sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000064A* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000064C* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000067A* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000680* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000686* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000689* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068B* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068D* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068E* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000691* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000692* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000694* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000702* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000719* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000725* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000728* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000072B* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000072E* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000732* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000763* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000773* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000774* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000776* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000077A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077B* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077C* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077D* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077E* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077F* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000781* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000798* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000799* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000079B* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000079C* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000807* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000821* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000823* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000830* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000837* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000841* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001028sd0000054D* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd0000054E* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000554* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001028sd00000557* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001028sd00000562* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000565* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000568* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000590* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000592* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000594* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000595* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005A2* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005B1* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005B3* -- ID_MODEL_FROM_DATABASE=GeForce GT 625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005DA* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd000005DE* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd000005E0* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd000005E8* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd000005F4* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000103Csd000018EF* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018F9* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FB* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FD* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FF* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd00002AEF* -- ID_MODEL_FROM_DATABASE=GeForce GT 720A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) - - pci:v000010DEd00001140sv0000103Csd00002AF9* -- ID_MODEL_FROM_DATABASE=GeForce 710A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710A) - - pci:v000010DEd00001140sv00001043sd000010DD* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000010ED* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000011FD* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000124D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000126D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000131D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000013FD* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000014C7* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd00001507* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001043sd000015AD* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000015ED* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000160D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000163D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000166D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000016CD* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000016DD* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000170D* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00002132* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001043sd00002136* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000021BA* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000021FA* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000220A* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000221A* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000223A* -- ID_MODEL_FROM_DATABASE=GeForce GT 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001043sd0000224A* -- ID_MODEL_FROM_DATABASE=GeForce GT 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001043sd0000227A* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000228A* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00008595* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001072sd0000152D* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000010CFsd000017F5* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001179sd0000FA01* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA02* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA03* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA05* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA11* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA13* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA18* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA19* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA21* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA23* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA2A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA32* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA33* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA36* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA38* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA42* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA43* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA45* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA47* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA49* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA58* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA59* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA88* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA89* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000B092* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C0D5* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000144Dsd0000C0D7* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E2* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E3* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E4* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C652* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C709* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C711* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C736* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001462sd000010B8* -- ID_MODEL_FROM_DATABASE=GeForce GT 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001462sd000010E9* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd00001116* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000AA33* -- ID_MODEL_FROM_DATABASE=GeForce 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv00001462sd0000AAA2* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd0000AAA3* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000AE71* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000152Dsd00000926* -- ID_MODEL_FROM_DATABASE=GeForce 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 620M) - - pci:v000010DEd00001140sv0000152Dsd00000982* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00000983* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00001012* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000152Dsd00001030* -- ID_MODEL_FROM_DATABASE=GeForce GT 630M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00001055* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000152Dsd00001067* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000152Dsd00001072* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00002200* -- ID_MODEL_FROM_DATABASE=NVS 5200M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv000017AAsd00002213* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00002220* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000309C* -- ID_MODEL_FROM_DATABASE=GeForce GT 720A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) - - pci:v000010DEd00001140sv000017AAsd000030B4* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd00003656* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv000017AAsd0000365A* -- ID_MODEL_FROM_DATABASE=GeForce 705M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd0000365E* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd0000366C* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003685* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003686* -- ID_MODEL_FROM_DATABASE=GeForce 800M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003687* -- ID_MODEL_FROM_DATABASE=GeForce 705A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705A) - - pci:v000010DEd00001140sv000017AAsd00003696* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369B* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369C* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369D* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369E* -- ID_MODEL_FROM_DATABASE=GeForce 820A -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd00003800* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003802* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003803* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003804* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003901* -- ID_MODEL_FROM_DATABASE=GeForce 610M / GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) - - pci:v000010DEd00001140sv000017AAsd00003902* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00003903* -- ID_MODEL_FROM_DATABASE=GeForce 610M/710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M/710M) - - pci:v000010DEd00001140sv000017AAsd00003904* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M/625M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M/625M) - - pci:v000010DEd00001140sv000017AAsd00003905* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003910* -- ID_MODEL_FROM_DATABASE=GeForce 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv000017AAsd00003912* -- ID_MODEL_FROM_DATABASE=GeForce 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003983* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) - - pci:v000010DEd00001140sv000017AAsd00005001* -- ID_MODEL_FROM_DATABASE=GeForce 610M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) - - pci:v000010DEd00001140sv000017AAsd00005003* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005005* -- ID_MODEL_FROM_DATABASE=GeForce 705M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd0000500D* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv000017AAsd00005014* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005017* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005019* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000501A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000501F* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005025* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005027* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502A* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502B* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000502D* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502E* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000502F* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000503E* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000503F* -- ID_MODEL_FROM_DATABASE=GeForce 820M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001854sd00000177* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001854sd00000180* -- ID_MODEL_FROM_DATABASE=GeForce 710M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001854sd00000190* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001854sd00000192* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001B0Asd000020DD* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001B0Asd000020DF* -- ID_MODEL_FROM_DATABASE=GeForce GT 620M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001B0Asd00002202* -- ID_MODEL_FROM_DATABASE=GeForce GT 720M -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001180* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] - - pci:v000010DEd00001180sv00001043sd000083F1* -- ID_MODEL_FROM_DATABASE=GTX680-DC2-2GD5 -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GTX680-DC2-2GD5) - - pci:v000010DEd00001180sv00003842sd00003682* -- ID_MODEL_FROM_DATABASE=GeForce GTX 680 Mac Edition -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] (GeForce GTX 680 Mac Edition) - - pci:v000010DEd00001182* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti] -@@ -27252,7 +27252,7 @@ pci:v000010DEd00001185* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] - - pci:v000010DEd00001185sv000010DEsd0000106F* -- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 OEM] (GK104 [GeForce GTX 760 OEM]) - - pci:v000010DEd00001187* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760] -@@ -27264,7 +27264,7 @@ pci:v000010DEd00001189* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] - - pci:v000010DEd00001189sv000010DEsd00001074* -- ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] -+ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 670] (GK104 [GeForce GTX 760 Ti OEM]) - - pci:v000010DEd0000118A* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K520] -@@ -27279,7 +27279,7 @@ pci:v000010DEd0000118D* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] - - pci:v000010DEd0000118Dsv000010DEsd0000101D* -- ID_MODEL_FROM_DATABASE=GRID K200 -+ ID_MODEL_FROM_DATABASE=GK104GL [GRID K200 vGPU] (GRID K200) - - pci:v000010DEd0000118E* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 OEM] -@@ -27324,7 +27324,7 @@ pci:v000010DEd000011A3* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] - - pci:v000010DEd000011A3sv0000106Bsd0000010D* -- ID_MODEL_FROM_DATABASE=iMac 13,2 -+ ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 680MX] (iMac 13,2) - - pci:v000010DEd000011A7* - ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 675MX] -@@ -27333,10 +27333,10 @@ pci:v000010DEd000011B0* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] - - pci:v000010DEd000011B0sv000010DEsd0000101A* -- ID_MODEL_FROM_DATABASE=GRID K240Q -+ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K240Q) - - pci:v000010DEd000011B0sv000010DEsd0000101B* -- ID_MODEL_FROM_DATABASE=GRID K260Q -+ ID_MODEL_FROM_DATABASE=GK104GL [GRID K240Q\K260Q vGPU] (GRID K260Q) - - pci:v000010DEd000011B1* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] -@@ -27375,28 +27375,28 @@ pci:v000010DEd000011C2* - ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] - - pci:v000010DEd000011C2sv00001043sd0000845B* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost DirectCU II OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost DirectCU II OC) - - pci:v000010DEd000011C2sv00001462sd00002874* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost TwinFrozr II OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost TwinFrozr II OC) - - pci:v000010DEd000011C2sv00001569sd000011C2* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) - - pci:v000010DEd000011C2sv000019DAsd00001281* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost OC -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost OC) - - pci:v000010DEd000011C2sv00003842sd00003657* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost) - - pci:v000010DEd000011C2sv00003842sd00003658* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti Boost Superclocked -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost Superclocked) - - pci:v000010DEd000011C3* - ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] - - pci:v000010DEd000011C3sv000010DEsd00001030* -- ID_MODEL_FROM_DATABASE=GeForce GTX 650 Ti OEM -+ ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti OEM] (GeForce GTX 650 Ti OEM) - - pci:v000010DEd000011C4* - ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 645 OEM] -@@ -27423,7 +27423,7 @@ pci:v000010DEd000011E3* - ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] - - pci:v000010DEd000011E3sv000017AAsd00003683* -- ID_MODEL_FROM_DATABASE=GeForce GTX 760A -+ ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] (GeForce GTX 760A) - - pci:v000010DEd000011FA* - ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] -@@ -27486,55 +27486,55 @@ pci:v000010DEd00001247* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] - - pci:v000010DEd00001247sv00001043sd00001752* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001247sv00001043sd00002050* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001247sv00001043sd00002051* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001247sv00001043sd0000212A* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001247sv00001043sd0000212B* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001247sv00001043sd0000212C* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001247sv0000152Dsd00000930* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001248* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] - - pci:v000010DEd00001248sv0000152Dsd00000930* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001248sv000017C0sd000010E7* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv000017C0sd000010E8* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv000017C0sd000010EA* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00000890* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00000891* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00001795* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00001796* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001248sv00001854sd00003005* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd00001249* - ID_MODEL_FROM_DATABASE=GF116 [GeForce GTS 450 Rev. 3] -@@ -27546,19 +27546,19 @@ pci:v000010DEd0000124D* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] - - pci:v000010DEd0000124Dsv00001028sd00000491* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001028sd00000570* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001028sd00000571* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001462sd0000108D* -- ID_MODEL_FROM_DATABASE=GeForce GT 555M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 555M) - - pci:v000010DEd0000124Dsv00001462sd000010CC* -- ID_MODEL_FROM_DATABASE=GeForce GT 635M -+ ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 555M/635M] (GeForce GT 635M) - - pci:v000010DEd00001251* - ID_MODEL_FROM_DATABASE=GF116M [GeForce GT 560M] -@@ -27582,16 +27582,16 @@ pci:v000010DEd00001290* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] - - pci:v000010DEd00001290sv0000103Csd00002AFA* -- ID_MODEL_FROM_DATABASE=GeForce GT 730A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) - - pci:v000010DEd00001290sv0000103Csd00002B04* -- ID_MODEL_FROM_DATABASE=GeForce GT 730A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730A) - - pci:v000010DEd00001290sv00001043sd000013AD* -- ID_MODEL_FROM_DATABASE=GeForce GT 730M -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) - - pci:v000010DEd00001290sv00001043sd000013CD* -- ID_MODEL_FROM_DATABASE=GeForce GT 730M -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] (GeForce GT 730M) - - pci:v000010DEd00001291* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 735M] -@@ -27600,10 +27600,10 @@ pci:v000010DEd00001292* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] - - pci:v000010DEd00001292sv000017AAsd00003675* -- ID_MODEL_FROM_DATABASE=GeForce GT 740A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) - - pci:v000010DEd00001292sv000017AAsd00003684* -- ID_MODEL_FROM_DATABASE=GeForce GT 740A -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 740M] (GeForce GT 740A) - - pci:v000010DEd00001293* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] -@@ -27636,13 +27636,13 @@ pci:v000010DEd00001341* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] - - pci:v000010DEd00001341sv000017AAsd00003697* -- ID_MODEL_FROM_DATABASE=GeForce 840A -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) - - pci:v000010DEd00001341sv000017AAsd00003699* -- ID_MODEL_FROM_DATABASE=GeForce 840A -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) - - pci:v000010DEd00001341sv000017AAsd0000369C* -- ID_MODEL_FROM_DATABASE=GeForce 840A -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] (GeForce 840A) - - pci:v000010DEd00001380* - ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 750 Ti] -@@ -27660,10 +27660,10 @@ pci:v000010DEd00001391* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] - - pci:v000010DEd00001391sv000017AAsd00003697* -- ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) - - pci:v000010DEd00001391sv000017AAsd0000A125* -- ID_MODEL_FROM_DATABASE=GeForce GTX 850A -+ ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 850M] (GeForce GTX 850A) - - pci:v000010DEd00001392* - ID_MODEL_FROM_DATABASE=GM107M [GeForce GTX 860M] -@@ -27678,13 +27678,13 @@ pci:v000010DFd00000720* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) - - pci:v000010DFd00000720sv000017AAsd00001056* -- ID_MODEL_FROM_DATABASE=ThinkServer OCm14102-UX-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14102-UX-L AnyFabric) - - pci:v000010DFd00000720sv000017AAsd00001057* -- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UX-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UX-L AnyFabric) - - pci:v000010DFd00000720sv000017AAsd00001059* -- ID_MODEL_FROM_DATABASE=ThinkServer OCm14104-UT-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UT-L AnyFabric) - - pci:v000010DFd00000722* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) -@@ -27729,10 +27729,10 @@ pci:v000010DFd0000E220* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) - - pci:v000010DFd0000E220sv000017AAsd00001054* -- ID_MODEL_FROM_DATABASE=ThinkServer LPm16002B-M6-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16002B-M6-L AnyFabric) - - pci:v000010DFd0000E220sv000017AAsd00001055* -- ID_MODEL_FROM_DATABASE=ThinkServer LPm16004B-M8-L AnyFabric -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Lancer) (ThinkServer LPm16004B-M8-L AnyFabric) - - pci:v000010DFd0000E240* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Lancer) -@@ -27831,7 +27831,7 @@ pci:v000010DFd0000FC00* - ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter - - pci:v000010DFd0000FC00sv000010DFsd0000FC00* -- ID_MODEL_FROM_DATABASE=LP10000 LightPulse Fibre Channel Host Adapter -+ ID_MODEL_FROM_DATABASE=Thor-X LightPulse Fibre Channel Host Adapter (LP10000 LightPulse Fibre Channel Host Adapter) - - pci:v000010DFd0000FC10* - ID_MODEL_FROM_DATABASE=Helios-X LightPulse Fibre Channel Host Adapter -@@ -27897,7 +27897,7 @@ pci:v000010E1d00000391* - ID_MODEL_FROM_DATABASE=TRM-S1040 - - pci:v000010E1d00000391sv000010E1sd00000391* -- ID_MODEL_FROM_DATABASE=DC-315U SCSI-3 Host Adapter -+ ID_MODEL_FROM_DATABASE=TRM-S1040 (DC-315U SCSI-3 Host Adapter) - - pci:v000010E1d0000690C* - ID_MODEL_FROM_DATABASE=DC-690c -@@ -27921,7 +27921,7 @@ pci:v000010E3d00000148* - ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] - - pci:v000010E3d00000148sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=Tsi148 [Tempe] (VR11 Single Board Computer) - - pci:v000010E3d00000860* - ID_MODEL_FROM_DATABASE=CA91C860 [QSpan] -@@ -28107,25 +28107,25 @@ pci:v000010ECd00005227* - ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader - - pci:v000010ECd00005227sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad T440p) - - pci:v000010ECd00005227sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader (ThinkPad X240) - - pci:v000010ECd00005229* - ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader - - pci:v000010ECd00005229sv00001025sd00000813* -- ID_MODEL_FROM_DATABASE=Aspire R7-571 -+ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (Aspire R7-571) - - pci:v000010ECd00005229sv0000103Csd0000194E* -- ID_MODEL_FROM_DATABASE=ProBook 455 G1 Notebook -+ ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader (ProBook 455 G1 Notebook) - - pci:v000010ECd00005249* - ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader - - pci:v000010ECd00005249sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) - - pci:v000010ECd00005288* - ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader -@@ -28134,334 +28134,334 @@ pci:v000010ECd00008029* - ID_MODEL_FROM_DATABASE=RTL-8029(AS) - - pci:v000010ECd00008029sv000010B8sd00002011* -- ID_MODEL_FROM_DATABASE=EZ-Card (SMC1208) -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EZ-Card (SMC1208)) - - pci:v000010ECd00008029sv000010ECsd00008029* - ID_MODEL_FROM_DATABASE=RTL-8029(AS) - - pci:v000010ECd00008029sv00001113sd00001208* -- ID_MODEL_FROM_DATABASE=EN1208 -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (EN1208) - - pci:v000010ECd00008029sv00001186sd00000300* -- ID_MODEL_FROM_DATABASE=DE-528 -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (DE-528) - - pci:v000010ECd00008029sv00001259sd00002400* -- ID_MODEL_FROM_DATABASE=AT-2400 -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (AT-2400) - - pci:v000010ECd00008029sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=RTL-8029(AS) (QEMU Virtual Machine) - - pci:v000010ECd00008129* - ID_MODEL_FROM_DATABASE=RTL-8129 - - pci:v000010ECd00008129sv000010ECsd00008129* -- ID_MODEL_FROM_DATABASE=RT8129 Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL-8129 (RT8129 Fast Ethernet Adapter) - - pci:v000010ECd00008129sv000011ECsd00008129* -- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCIe Gigabit Ethernet (misconfigured) -+ ID_MODEL_FROM_DATABASE=RTL-8129 (RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)) - - pci:v000010ECd00008136* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller - - pci:v000010ECd00008136sv0000103Csd00002AB1* -- ID_MODEL_FROM_DATABASE=Pavillion p6774 -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) - - pci:v000010ECd00008136sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) - - pci:v000010ECd00008136sv00001179sd0000FF64* -- ID_MODEL_FROM_DATABASE=RTL8102E PCI-E Fast Ethernet NIC -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) - - pci:v000010ECd00008138* - ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter - - pci:v000010ECd00008138sv000010ECsd00008138* -- ID_MODEL_FROM_DATABASE=RT8139 (B/C) Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter (RT8139 (B/C) Fast Ethernet Adapter) - - pci:v000010ECd00008139* - ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - - pci:v000010ECd00008139sv00000357sd0000000A* -- ID_MODEL_FROM_DATABASE=TTP-Monitoring Card V2.0 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TTP-Monitoring Card V2.0) - - pci:v000010ECd00008139sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (TravelMate 290) - - pci:v000010ECd00008139sv00001025sd00008920* -- ID_MODEL_FROM_DATABASE=ALN-325 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) - - pci:v000010ECd00008139sv00001025sd00008921* -- ID_MODEL_FROM_DATABASE=ALN-325 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325) - - pci:v000010ECd00008139sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (NX9500) - - pci:v000010ECd00008139sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Pavilion t3030.de Desktop PC) - - pci:v000010ECd00008139sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Presario C700) - - pci:v000010ECd00008139sv00001043sd00001045* -- ID_MODEL_FROM_DATABASE=L8400B or L3C/S notebook -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (L8400B or L3C/S notebook) - - pci:v000010ECd00008139sv00001043sd00008109* -- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P5P800-MX Mainboard) - - pci:v000010ECd00008139sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MIM2000) - - pci:v000010ECd00008139sv000010BDsd00000320* -- ID_MODEL_FROM_DATABASE=EP-320X-R -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EP-320X-R) - - pci:v000010ECd00008139sv000010ECsd00008139* - ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter - - pci:v000010ECd00008139sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Panasonic CF-Y5 laptop) - - pci:v000010ECd00008139sv00001113sd0000EC01* -- ID_MODEL_FROM_DATABASE=LevelOne FNC-0107TX/FNC-0109TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LevelOne FNC-0107TX/FNC-0109TX) - - pci:v000010ECd00008139sv00001186sd00001300* -- ID_MODEL_FROM_DATABASE=DFE-538TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DFE-538TX) - - pci:v000010ECd00008139sv00001186sd00001320* -- ID_MODEL_FROM_DATABASE=SN5200 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (SN5200) - - pci:v000010ECd00008139sv00001186sd00008139* -- ID_MODEL_FROM_DATABASE=DRN-32TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (DRN-32TX) - - pci:v000010ECd00008139sv000011F6sd00008139* -- ID_MODEL_FROM_DATABASE=FN22-3(A) LinxPRO Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN22-3(A) LinxPRO Ethernet Adapter) - - pci:v000010ECd00008139sv00001259sd00002500* -- ID_MODEL_FROM_DATABASE=AT-2500TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX) - - pci:v000010ECd00008139sv00001259sd00002503* -- ID_MODEL_FROM_DATABASE=AT-2500TX/ACPI -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AT-2500TX/ACPI) - - pci:v000010ECd00008139sv00001385sd0000F31D* -- ID_MODEL_FROM_DATABASE=FA311 v2 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FA311 v2) - - pci:v000010ECd00008139sv00001395sd00002100* -- ID_MODEL_FROM_DATABASE=AMB2100 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (AMB2100) - - pci:v000010ECd00008139sv00001429sd0000D010* -- ID_MODEL_FROM_DATABASE=ND010/ND012 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ND010/ND012) - - pci:v000010ECd00008139sv00001432sd00009130* -- ID_MODEL_FROM_DATABASE=EN-9130TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (EN-9130TX) - - pci:v000010ECd00008139sv00001436sd00008139* -- ID_MODEL_FROM_DATABASE=RT8139 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RT8139) - - pci:v000010ECd00008139sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P30/P35 notebook) - - pci:v000010ECd00008139sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-7VM400M/7VT600 Motherboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GA-7VM400M/7VT600 Motherboard) - - pci:v000010ECd00008139sv00001462sd00000131* -- ID_MODEL_FROM_DATABASE=MS-1013 Notebook -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (MS-1013 Notebook) - - pci:v000010ECd00008139sv00001462sd0000217C* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Aspire L250) - - pci:v000010ECd00008139sv00001462sd0000788C* -- ID_MODEL_FROM_DATABASE=865PE Neo2-V Mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (865PE Neo2-V Mainboard) - - pci:v000010ECd00008139sv0000146Csd00001439* -- ID_MODEL_FROM_DATABASE=FE-1439TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FE-1439TX) - - pci:v000010ECd00008139sv00001489sd00006001* -- ID_MODEL_FROM_DATABASE=GF100TXRII -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRII) - - pci:v000010ECd00008139sv00001489sd00006002* -- ID_MODEL_FROM_DATABASE=GF100TXRA -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (GF100TXRA) - - pci:v000010ECd00008139sv0000149Csd0000139A* -- ID_MODEL_FROM_DATABASE=LFE-8139ATX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139ATX) - - pci:v000010ECd00008139sv0000149Csd00008139* -- ID_MODEL_FROM_DATABASE=LFE-8139TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LFE-8139TX) - - pci:v000010ECd00008139sv000014CBsd00000200* -- ID_MODEL_FROM_DATABASE=LNR-100 Family 10/100 Base-TX Ethernet -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (LNR-100 Family 10/100 Base-TX Ethernet) - - pci:v000010ECd00008139sv00001565sd00002300* -- ID_MODEL_FROM_DATABASE=P4TSV Onboard LAN (RTL8100B) -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (P4TSV Onboard LAN (RTL8100B)) - - pci:v000010ECd00008139sv00001631sd00007003* -- ID_MODEL_FROM_DATABASE=Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8111 on GA-8SIML Rev1.0 Mainboard) - - pci:v000010ECd00008139sv00001695sd00009001* -- ID_MODEL_FROM_DATABASE=Onboard RTL8101L 10/100 MBit -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (Onboard RTL8101L 10/100 MBit) - - pci:v000010ECd00008139sv000016ECsd000000FF* -- ID_MODEL_FROM_DATABASE=USR997900A -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (USR997900A) - - pci:v000010ECd00008139sv00001799sd00005000* -- ID_MODEL_FROM_DATABASE=F5D5000 PCI Card/Desktop Network PCI Card -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5000 PCI Card/Desktop Network PCI Card) - - pci:v000010ECd00008139sv00001799sd00005010* -- ID_MODEL_FROM_DATABASE=F5D5010 CardBus Notebook Network Card -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (F5D5010 CardBus Notebook Network Card) - - pci:v000010ECd00008139sv0000187Esd00003303* -- ID_MODEL_FROM_DATABASE=FN312 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (FN312) - - pci:v000010ECd00008139sv00001904sd00008139* -- ID_MODEL_FROM_DATABASE=RTL8139D Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (RTL8139D Fast Ethernet Adapter) - - pci:v000010ECd00008139sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (QEMU Virtual Machine) - - pci:v000010ECd00008139sv00002646sd00000001* -- ID_MODEL_FROM_DATABASE=KNE120TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KNE120TX) - - pci:v000010ECd00008139sv00008E2Esd00007000* -- ID_MODEL_FROM_DATABASE=KF-230TX -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX) - - pci:v000010ECd00008139sv00008E2Esd00007100* -- ID_MODEL_FROM_DATABASE=KF-230TX/2 -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (KF-230TX/2) - - pci:v000010ECd00008139sv0000A0A0sd00000007* -- ID_MODEL_FROM_DATABASE=ALN-325C -+ ID_MODEL_FROM_DATABASE=RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (ALN-325C) - - pci:v000010ECd00008167* - ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet - - pci:v000010ECd00008167sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-MA69G-S3H Motherboard -+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (GA-MA69G-S3H Motherboard) - - pci:v000010ECd00008167sv00001462sd0000235C* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (P965 Neo MS-7235 mainboard) - - pci:v000010ECd00008167sv00001462sd0000236C* -- ID_MODEL_FROM_DATABASE=945P Neo3-F motherboard -+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (945P Neo3-F motherboard) - - pci:v000010ECd00008168* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller - - pci:v000010ECd00008168sv00001019sd00008168* -- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) - - pci:v000010ECd00008168sv00001028sd00000283* -- ID_MODEL_FROM_DATABASE=Vostro 220 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 220) - - pci:v000010ECd00008168sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3350) - - pci:v000010ECd00008168sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Vostro 3750) - - pci:v000010ECd00008168sv0000103Csd00001611* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Pavilion DM1Z-3000) - - pci:v000010ECd00008168sv0000103Csd00001950* -- ID_MODEL_FROM_DATABASE=ProBook 450/455 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (ProBook 450/455) - - pci:v000010ECd00008168sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Asus IPIBL-LB Motherboard) - - pci:v000010ECd00008168sv00001043sd000011F5* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (A6J-Q008) - - pci:v000010ECd00008168sv00001043sd000016D5* -- ID_MODEL_FROM_DATABASE=U6V/U31J laptop -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (U6V/U31J laptop) - - pci:v000010ECd00008168sv00001043sd000081AA* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P5B) - - pci:v000010ECd00008168sv00001043sd000082C6* -- ID_MODEL_FROM_DATABASE=M3A78-EH Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M3A78-EH Motherboard) - - pci:v000010ECd00008168sv00001043sd000083A3* -- ID_MODEL_FROM_DATABASE=M4A785TD Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (M4A785TD Motherboard) - - pci:v000010ECd00008168sv00001043sd00008432* -- ID_MODEL_FROM_DATABASE=P8P67 and other motherboards -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) - - pci:v000010ECd00008168sv00001043sd00008505* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) - - pci:v000010ECd00008168sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) - - pci:v000010ECd00008168sv000010ECsd00008168* -- ID_MODEL_FROM_DATABASE=RTL8111/8168 PCI Express Gigabit Ethernet controller -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (RTL8111/8168 PCI Express Gigabit Ethernet controller) - - pci:v000010ECd00008168sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard) - - pci:v000010ECd00008168sv00001462sd0000238C* -- ID_MODEL_FROM_DATABASE=Onboard RTL8111b on MSI P965 Platinum Mainboard -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Onboard RTL8111b on MSI P965 Platinum Mainboard) - - pci:v000010ECd00008168sv00001462sd0000368C* -- ID_MODEL_FROM_DATABASE=K9AG Neo2 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (K9AG Neo2) - - pci:v000010ECd00008168sv00001462sd00004180* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Wind PC MS-7418) - - pci:v000010ECd00008168sv00001462sd00007522* -- ID_MODEL_FROM_DATABASE=X58 Pro-E -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (X58 Pro-E) - - pci:v000010ECd00008168sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (CC11/CL11) - - pci:v000010ECd00008168sv00001849sd00008168* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard (one of many)) - - pci:v000010ECd00008168sv00008086sd0000D615* -- ID_MODEL_FROM_DATABASE=Desktop Board D510MO/D525MW -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Desktop Board D510MO/D525MW) - - pci:v000010ECd00008169* - ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller - - pci:v000010ECd00008169sv00001025sd00000079* -- ID_MODEL_FROM_DATABASE=Aspire 5024WLMi -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Aspire 5024WLMi) - - pci:v000010ECd00008169sv000010BDsd00003202* -- ID_MODEL_FROM_DATABASE=EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter) - - pci:v000010ECd00008169sv000010ECsd00008169* -- ID_MODEL_FROM_DATABASE=RTL8169/8110 Family PCI Gigabit Ethernet NIC -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (RTL8169/8110 Family PCI Gigabit Ethernet NIC) - - pci:v000010ECd00008169sv00001259sd0000C107* -- ID_MODEL_FROM_DATABASE=CG-LAPCIGT -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (CG-LAPCIGT) - - pci:v000010ECd00008169sv00001371sd0000434E* -- ID_MODEL_FROM_DATABASE=ProG-2000L -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (ProG-2000L) - - pci:v000010ECd00008169sv00001385sd0000311A* -- ID_MODEL_FROM_DATABASE=GA311 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA311) - - pci:v000010ECd00008169sv00001385sd00005200* -- ID_MODEL_FROM_DATABASE=GA511 Gigabit PC Card -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA511 Gigabit PC Card) - - pci:v000010ECd00008169sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (GA-8I915ME-G Mainboard) - - pci:v000010ECd00008169sv00001462sd0000030C* -- ID_MODEL_FROM_DATABASE=K8N Neo-FSR v2.0 mainboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8N Neo-FSR v2.0 mainboard) - - pci:v000010ECd00008169sv00001462sd0000065C* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (Hetis 865GV-E (MS-7065)) - - pci:v000010ECd00008169sv00001462sd0000702C* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T NEO 2 motherboard) - - pci:v000010ECd00008169sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (K8T Neo2-F V2.0) - - pci:v000010ECd00008169sv000016ECsd0000011F* -- ID_MODEL_FROM_DATABASE=USR997903 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (USR997903) - - pci:v000010ECd00008169sv00001734sd00001091* -- ID_MODEL_FROM_DATABASE=D2030-A1 -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (D2030-A1) - - pci:v000010ECd00008169sv0000A0A0sd00000449* -- ID_MODEL_FROM_DATABASE=AK86-L motherboard -+ ID_MODEL_FROM_DATABASE=RTL8169 PCI Gigabit Ethernet Controller (AK86-L motherboard) - - pci:v000010ECd00008171* - ID_MODEL_FROM_DATABASE=RTL8191SEvA Wireless LAN Controller -@@ -28479,7 +28479,7 @@ pci:v000010ECd00008176* - ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter - - pci:v000010ECd00008176sv00001A3Bsd00001139* -- ID_MODEL_FROM_DATABASE=AW-NE139H Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RTL8188CE 802.11b/g/n WiFi Adapter (AW-NE139H Half-size Mini PCIe Card) - - pci:v000010ECd00008177* - ID_MODEL_FROM_DATABASE=RTL8191CE PCIe Wireless Network Adapter -@@ -28494,10 +28494,10 @@ pci:v000010ECd00008180* - ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC - - pci:v000010ECd00008180sv00001385sd00004700* -- ID_MODEL_FROM_DATABASE=MA521 802.11b Wireless PC Card -+ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (MA521 802.11b Wireless PC Card) - - pci:v000010ECd00008180sv00001737sd00000019* -- ID_MODEL_FROM_DATABASE=WPC11v4 802.11b Wireless-B Notebook Adapter -+ ID_MODEL_FROM_DATABASE=RTL8180L 802.11b MAC (WPC11v4 802.11b Wireless-B Notebook Adapter) - - pci:v000010ECd00008185* - ID_MODEL_FROM_DATABASE=RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller -@@ -28524,7 +28524,7 @@ pci:v000010ECd00008199* - ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller - - pci:v000010ECd00008199sv00001462sd00006894* -- ID_MODEL_FROM_DATABASE=MN54G2 / MS-6894 Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RTL8187SE Wireless LAN Controller (MN54G2 / MS-6894 Wireless Mini PCIe Card) - - pci:v000010ECd00008723* - ID_MODEL_FROM_DATABASE=RTL8723AE PCIe Wireless Network Adapter -@@ -28734,115 +28734,115 @@ pci:v00001102d00000002* - ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 - - pci:v00001102d00000002sv0000100Asd00001102* -- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF) - - pci:v00001102d00000002sv00001102sd00000020* -- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00000021* -- ID_MODEL_FROM_DATABASE=CT4620 SBLive! -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4620 SBLive!) - - pci:v00001102d00000002sv00001102sd0000002F* -- ID_MODEL_FROM_DATABASE=SBLive! mainboard implementation -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! mainboard implementation) - - pci:v00001102d00000002sv00001102sd0000100A* -- ID_MODEL_FROM_DATABASE=SB Live! 5.1 Digital OEM [SB0220] -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SB Live! 5.1 Digital OEM [SB0220]) - - pci:v00001102d00000002sv00001102sd00004001* -- ID_MODEL_FROM_DATABASE=E-mu APS -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (E-mu APS) - - pci:v00001102d00000002sv00001102sd00008022* -- ID_MODEL_FROM_DATABASE=CT4780 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4780 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008023* -- ID_MODEL_FROM_DATABASE=CT4790 SoundBlaster PCI512 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4790 SoundBlaster PCI512) - - pci:v00001102d00000002sv00001102sd00008024* -- ID_MODEL_FROM_DATABASE=CT4760 SBLive! -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) - - pci:v00001102d00000002sv00001102sd00008025* -- ID_MODEL_FROM_DATABASE=SBLive! Mainboard Implementation -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Mainboard Implementation) - - pci:v00001102d00000002sv00001102sd00008026* -- ID_MODEL_FROM_DATABASE=CT4830 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4830 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008027* -- ID_MODEL_FROM_DATABASE=CT4832 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4832 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008028* -- ID_MODEL_FROM_DATABASE=CT4760 SBLive! OEM version -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive! OEM version) - - pci:v00001102d00000002sv00001102sd00008031* -- ID_MODEL_FROM_DATABASE=CT4831 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4831 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008040* -- ID_MODEL_FROM_DATABASE=CT4760 SBLive! -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4760 SBLive!) - - pci:v00001102d00000002sv00001102sd00008051* -- ID_MODEL_FROM_DATABASE=CT4850 SBLive! Value -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (CT4850 SBLive! Value) - - pci:v00001102d00000002sv00001102sd00008061* -- ID_MODEL_FROM_DATABASE=SBLive! Player 5.1 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! Player 5.1) - - pci:v00001102d00000002sv00001102sd00008064* -- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Model SB0100 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Model SB0100) - - pci:v00001102d00000002sv00001102sd00008065* -- ID_MODEL_FROM_DATABASE=SBLive! 5.1 Digital Model SB0220 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 Digital Model SB0220) - - pci:v00001102d00000002sv00001102sd00008066* -- ID_MODEL_FROM_DATABASE=Live! 5.1 Digital [SB0228] -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (Live! 5.1 Digital [SB0228]) - - pci:v00001102d00000002sv00001102sd00008067* -- ID_MODEL_FROM_DATABASE=SBLive! 5.1 eMicro 28028 -+ ID_MODEL_FROM_DATABASE=SB Live! EMU10k1 (SBLive! 5.1 eMicro 28028) - - pci:v00001102d00000004* - ID_MODEL_FROM_DATABASE=SB Audigy - - pci:v00001102d00000004sv00001102sd00000051* -- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player) - - pci:v00001102d00000004sv00001102sd00000053* -- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) - - pci:v00001102d00000004sv00001102sd00000058* -- ID_MODEL_FROM_DATABASE=SB0090 Audigy Player/OEM -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0090 Audigy Player/OEM) - - pci:v00001102d00000004sv00001102sd00001002* -- ID_MODEL_FROM_DATABASE=SB Audigy2 Platinum -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 Platinum) - - pci:v00001102d00000004sv00001102sd00001003* -- ID_MODEL_FROM_DATABASE=SB0350 Audigy 2 -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0350 Audigy 2) - - pci:v00001102d00000004sv00001102sd00001007* -- ID_MODEL_FROM_DATABASE=SB0240 Audigy 2 Platinum 6.1 -+ ID_MODEL_FROM_DATABASE=SB Audigy (SB0240 Audigy 2 Platinum 6.1) - - pci:v00001102d00000004sv00001102sd00001009* -- ID_MODEL_FROM_DATABASE=SB Audigy2 OEM HP -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 OEM HP) - - pci:v00001102d00000004sv00001102sd00002001* -- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS Platinum Pro -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS Platinum Pro) - - pci:v00001102d00000004sv00001102sd00002002* -- ID_MODEL_FROM_DATABASE=SB Audigy 2 ZS (SB0350) -+ ID_MODEL_FROM_DATABASE=SB Audigy (2 ZS (SB0350)) - - pci:v00001102d00000004sv00001102sd00004001* -- ID_MODEL_FROM_DATABASE=E-MU 1010 -+ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 1010) - - pci:v00001102d00000004sv00001102sd00004002* -- ID_MODEL_FROM_DATABASE=E-MU 0404 -+ ID_MODEL_FROM_DATABASE=SB Audigy (E-MU 0404) - - pci:v00001102d00000005* - ID_MODEL_FROM_DATABASE=SB X-Fi - - pci:v00001102d00000005sv00001102sd00000021* -- ID_MODEL_FROM_DATABASE=X-Fi Platinum -+ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi Platinum) - - pci:v00001102d00000005sv00001102sd0000002C* -- ID_MODEL_FROM_DATABASE=X-Fi XtremeGamer FATAL1TY PRO -+ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeGamer FATAL1TY PRO) - - pci:v00001102d00000005sv00001102sd00001003* -- ID_MODEL_FROM_DATABASE=X-Fi XtremeMusic -+ ID_MODEL_FROM_DATABASE=SB X-Fi (X-Fi XtremeMusic) - - pci:v00001102d00000006* - ID_MODEL_FROM_DATABASE=[SB Live! Value] EMU10k1X -@@ -28851,37 +28851,37 @@ pci:v00001102d00000007* - ID_MODEL_FROM_DATABASE=CA0106 Soundblaster - - pci:v00001102d00000007sv00001102sd00000007* -- ID_MODEL_FROM_DATABASE=SBLive! 24bit -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SBLive! 24bit) - - pci:v00001102d00000007sv00001102sd00001001* -- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0310 Audigy LS) - - pci:v00001102d00000007sv00001102sd00001002* -- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0312 Audigy LS) - - pci:v00001102d00000007sv00001102sd00001006* -- ID_MODEL_FROM_DATABASE=SB0410 SBLive! 24-bit -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0410 SBLive! 24-bit) - - pci:v00001102d00000007sv00001102sd0000100A* -- ID_MODEL_FROM_DATABASE=SB0570 [SB Audigy SE] -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0570 [SB Audigy SE]) - - pci:v00001102d00000007sv00001102sd00001012* -- ID_MODEL_FROM_DATABASE=SB0790 X-Fi XA -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (SB0790 X-Fi XA) - - pci:v00001102d00000007sv00001102sd00001013* -- ID_MODEL_FROM_DATABASE=Soundblaster X-Fi Xtreme Audio -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (Soundblaster X-Fi Xtreme Audio) - - pci:v00001102d00000007sv00001462sd00001009* -- ID_MODEL_FROM_DATABASE=K8N Diamond -+ ID_MODEL_FROM_DATABASE=CA0106 Soundblaster (K8N Diamond) - - pci:v00001102d00000008* - ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value - - pci:v00001102d00000008sv00001102sd00000008* -- ID_MODEL_FROM_DATABASE=EMU0404 Digital Audio System -+ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU0404 Digital Audio System) - - pci:v00001102d00000008sv00001102sd00004004* -- ID_MODEL_FROM_DATABASE=EMU1010 Digital Audio System [MAEM8960] -+ ID_MODEL_FROM_DATABASE=SB0400 Audigy2 Value (EMU1010 Digital Audio System [MAEM8960]) - - pci:v00001102d00000009* - ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG -@@ -28890,13 +28890,13 @@ pci:v00001102d00000009sv00001102sd00000010* - ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG - - pci:v00001102d00000009sv00001102sd00000018* -- ID_MODEL_FROM_DATABASE=SB1040 -+ ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG (SB1040) - - pci:v00001102d0000000B* - ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] - - pci:v00001102d0000000Bsv00001102sd00000041* -- ID_MODEL_FROM_DATABASE=SB0880 [SoundBlaster X-Fi Titanium PCI-e] -+ ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) - - pci:v00001102d00004001* - ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port -@@ -28908,7 +28908,7 @@ pci:v00001102d00007002* - ID_MODEL_FROM_DATABASE=SB Live! Game Port - - pci:v00001102d00007002sv00001102sd00000020* -- ID_MODEL_FROM_DATABASE=Gameport Joystick -+ ID_MODEL_FROM_DATABASE=SB Live! Game Port (Gameport Joystick) - - pci:v00001102d00007003* - ID_MODEL_FROM_DATABASE=SB Audigy Game Port -@@ -28917,7 +28917,7 @@ pci:v00001102d00007003sv00001102sd00000040* - ID_MODEL_FROM_DATABASE=SB Audigy Game Port - - pci:v00001102d00007003sv00001102sd00000060* -- ID_MODEL_FROM_DATABASE=SB Audigy2 MIDI/Game Port -+ ID_MODEL_FROM_DATABASE=SB Audigy Game Port (SB Audigy2 MIDI/Game Port) - - pci:v00001102d00007004* - ID_MODEL_FROM_DATABASE=[SB Live! Value] Input device controller -@@ -28926,10 +28926,10 @@ pci:v00001102d00007005* - ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port - - pci:v00001102d00007005sv00001102sd00001001* -- ID_MODEL_FROM_DATABASE=SB0310 Audigy LS MIDI/Game port -+ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0310 Audigy LS MIDI/Game port) - - pci:v00001102d00007005sv00001102sd00001002* -- ID_MODEL_FROM_DATABASE=SB0312 Audigy LS MIDI/Game port -+ ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0312 Audigy LS MIDI/Game port) - - pci:v00001102d00007006* - ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG PCI to PCIe Bridge -@@ -28938,49 +28938,49 @@ pci:v00001102d00008938* - ID_MODEL_FROM_DATABASE=Ectiva EV1938 - - pci:v00001102d00008938sv00001033sd000080E5* -- ID_MODEL_FROM_DATABASE=SlimTower-Jim (NEC) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (SlimTower-Jim (NEC)) - - pci:v00001102d00008938sv00001071sd00007150* -- ID_MODEL_FROM_DATABASE=Mitac 7150 -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Mitac 7150) - - pci:v00001102d00008938sv0000110Asd00005938* -- ID_MODEL_FROM_DATABASE=Siemens Scenic Mobile 510PIII -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Siemens Scenic Mobile 510PIII) - - pci:v00001102d00008938sv000013BDsd0000100C* -- ID_MODEL_FROM_DATABASE=Ceres-C (Sharp, Intel BX) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Ceres-C (Sharp, Intel BX)) - - pci:v00001102d00008938sv000013BDsd0000100D* -- ID_MODEL_FROM_DATABASE=Sharp, Intel Banister -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Sharp, Intel Banister) - - pci:v00001102d00008938sv000013BDsd0000100E* -- ID_MODEL_FROM_DATABASE=TwinHead P09S/P09S3 (Sharp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (TwinHead P09S/P09S3 (Sharp)) - - pci:v00001102d00008938sv000013BDsd0000F6F1* -- ID_MODEL_FROM_DATABASE=Marlin (Sharp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Marlin (Sharp)) - - pci:v00001102d00008938sv000014FFsd00000E70* -- ID_MODEL_FROM_DATABASE=P88TE (TWINHEAD INTERNATIONAL Corp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (P88TE (TWINHEAD INTERNATIONAL Corp)) - - pci:v00001102d00008938sv000014FFsd0000C401* -- ID_MODEL_FROM_DATABASE=Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (Notebook 9100/9200/2000 (TWINHEAD INTERNATIONAL Corp)) - - pci:v00001102d00008938sv0000156Dsd0000B400* -- ID_MODEL_FROM_DATABASE=G400 - Geo (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G400 - Geo (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B550* -- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B560* -- ID_MODEL_FROM_DATABASE=G560 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G560 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B700* -- ID_MODEL_FROM_DATABASE=G700/U700 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G700/U700 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B795* -- ID_MODEL_FROM_DATABASE=G795 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G795 (AlphaTop (Taiwan))) - - pci:v00001102d00008938sv0000156Dsd0000B797* -- ID_MODEL_FROM_DATABASE=G797 (AlphaTop (Taiwan)) -+ ID_MODEL_FROM_DATABASE=Ectiva EV1938 (G797 (AlphaTop (Taiwan))) - - pci:v00001103* - ID_VENDOR_FROM_DATABASE=HighPoint Technologies, Inc. -@@ -28992,16 +28992,16 @@ pci:v00001103d00000004* - ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N - - pci:v00001103d00000004sv00001103sd00000001* -- ID_MODEL_FROM_DATABASE=HPT370A -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370A) - - pci:v00001103d00000004sv00001103sd00000004* -- ID_MODEL_FROM_DATABASE=HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4) -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)) - - pci:v00001103d00000004sv00001103sd00000005* -- ID_MODEL_FROM_DATABASE=HPT370 UDMA100 -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT370 UDMA100) - - pci:v00001103d00000004sv00001103sd00000006* -- ID_MODEL_FROM_DATABASE=HPT302/302N -+ ID_MODEL_FROM_DATABASE=HPT366/368/370/370A/372/372N (HPT302/302N) - - pci:v00001103d00000005* - ID_MODEL_FROM_DATABASE=HPT372A/372N -@@ -29040,7 +29040,7 @@ pci:v00001103d00002210* - ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller - - pci:v00001103d00002210sv000011ABsd000011AB* -- ID_MODEL_FROM_DATABASE=88SX6042 -+ ID_MODEL_FROM_DATABASE=RocketRAID 2210 SATA-II Controller (88SX6042) - - pci:v00001103d00002300* - ID_MODEL_FROM_DATABASE=RocketRAID 230x 4 Port SATA-II Controller -@@ -29112,13 +29112,13 @@ pci:v00001105d00008475* - ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder - - pci:v00001105d00008475sv00001105sd00000001* -- ID_MODEL_FROM_DATABASE=REALmagic X-Card -+ ID_MODEL_FROM_DATABASE=EM8475 REALmagic DVD/MPEG-4 A/V Decoder (REALmagic X-Card) - - pci:v00001105d00008476* - ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder - - pci:v00001105d00008476sv0000127Dsd00000000* -- ID_MODEL_FROM_DATABASE=CineView II -+ ID_MODEL_FROM_DATABASE=EM8476 REALmagic DVD/MPEG-4 A/V Decoder (CineView II) - - pci:v00001105d00008485* - ID_MODEL_FROM_DATABASE=EM8485 REALmagic DVD/MPEG-4 A/V Decoder -@@ -29163,7 +29163,7 @@ pci:v00001106d00000282* - ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge - - pci:v00001106d00000282sv00001043sd000080A3* -- ID_MODEL_FROM_DATABASE=A8V Deluxe -+ ID_MODEL_FROM_DATABASE=K8T800Pro Host Bridge (A8V Deluxe) - - pci:v00001106d00000290* - ID_MODEL_FROM_DATABASE=K8M890 Host Bridge -@@ -29178,28 +29178,28 @@ pci:v00001106d00000305* - ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] - - pci:v00001106d00000305sv00001019sd00000987* -- ID_MODEL_FROM_DATABASE=K7VZA Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (K7VZA Mainboard) - - pci:v00001106d00000305sv00001043sd00008033* -- ID_MODEL_FROM_DATABASE=A7V Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V Mainboard) - - pci:v00001106d00000305sv00001043sd0000803E* -- ID_MODEL_FROM_DATABASE=A7V-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V-E Mainboard) - - pci:v00001106d00000305sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (A7V133/A7V133-C Mainboard) - - pci:v00001106d00000305sv0000147Bsd0000A401* -- ID_MODEL_FROM_DATABASE=KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard -+ ID_MODEL_FROM_DATABASE=VT8363/8365 [KT133/KM133] (KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard) - - pci:v00001106d00000308* - ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge - - pci:v00001106d00000308sv00001043sd00008199* -- ID_MODEL_FROM_DATABASE=P4V800D-X Mainboard -+ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (P4V800D-X Mainboard) - - pci:v00001106d00000308sv00001849sd00000308* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=PT880 Ultra/PT894 Host Bridge (Motherboard) - - pci:v00001106d00000314* - ID_MODEL_FROM_DATABASE=CN700/VN800/P4M800CE/Pro Host Bridge -@@ -29226,7 +29226,7 @@ pci:v00001106d00000364* - ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge - - pci:v00001106d00000364sv00001043sd000081CE* -- ID_MODEL_FROM_DATABASE=P5VD2-VM mothervoard -+ ID_MODEL_FROM_DATABASE=CN896/VN896/P4M900 Host Bridge (P5VD2-VM mothervoard) - - pci:v00001106d00000391* - ID_MODEL_FROM_DATABASE=VT8371 [KX133] -@@ -29241,7 +29241,7 @@ pci:v00001106d00000415* - ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller - - pci:v00001106d00000415sv00001043sd0000838F* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=VT6415 PATA IDE Host Controller (Motherboard) - - pci:v00001106d00000501* - ID_MODEL_FROM_DATABASE=VT8501 [Apollo MVP4] -@@ -29256,55 +29256,55 @@ pci:v00001106d00000571* - ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE - - pci:v00001106d00000571sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (P6VXA Motherboard) - - pci:v00001106d00000571sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00000571sv00001043sd00008052* -- ID_MODEL_FROM_DATABASE=VT8233A Bus Master ATA100/66/33 IDE -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT8233A Bus Master ATA100/66/33 IDE) - - pci:v00001106d00000571sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V8X / A7V333 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X / A7V333 motherboard) - - pci:v00001106d00000571sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev. 1.01 -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V8X-X motherboard rev. 1.01) - - pci:v00001106d00000571sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00000571sv00001106sd00000571* -- ID_MODEL_FROM_DATABASE=VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE) - - pci:v00001106d00000571sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (Magnia Z310) - - pci:v00001106d00000571sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (FX41 motherboard) - - pci:v00001106d00000571sv00001458sd00005002* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (GA-7VAX Mainboard) - - pci:v00001106d00000571sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00000571sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T NEO 2 motherboard) - - pci:v00001106d00000571sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8T Neo2-F V2.0) - - pci:v00001106d00000571sv00001462sd00007120* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KT4AV motherboard) - - pci:v00001106d00000571sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K8MM3-V mainboard) - - pci:v00001106d00000571sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (KV8-MAX3 motherboard) - - pci:v00001106d00000571sv00001849sd00000571* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (K7VT series Motherboards) - - pci:v00001106d00000576* - ID_MODEL_FROM_DATABASE=VT82C576 3V [Apollo Master] -@@ -29313,7 +29313,7 @@ pci:v00001106d00000581* - ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller - - pci:v00001106d00000581sv00001106sd00000581* -- ID_MODEL_FROM_DATABASE=Wrong IDE ID -+ ID_MODEL_FROM_DATABASE=CX700/VX700 RAID Controller (Wrong IDE ID) - - pci:v00001106d00000585* - ID_MODEL_FROM_DATABASE=VT82C585VP [Apollo VP1/VPX] -@@ -29322,7 +29322,7 @@ pci:v00001106d00000586* - ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] - - pci:v00001106d00000586sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=MVP3 ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C586/A/B PCI-to-ISA [Apollo VP] (MVP3 ISA Bridge) - - pci:v00001106d00000591* - ID_MODEL_FROM_DATABASE=VT8237A SATA 2-Port Controller -@@ -29334,10 +29334,10 @@ pci:v00001106d00000596* - ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] - - pci:v00001106d00000596sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) - - pci:v00001106d00000596sv00001458sd00000596* -- ID_MODEL_FROM_DATABASE=VT82C596/A/B PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C596 ISA [Mobile South] (VT82C596/A/B PCI to ISA Bridge) - - pci:v00001106d00000597* - ID_MODEL_FROM_DATABASE=VT82C597 [Apollo VP3] -@@ -29352,10 +29352,10 @@ pci:v00001106d00000605* - ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] - - pci:v00001106d00000605sv0000103Csd00001254* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00001106d00000605sv00001043sd0000802C* -- ID_MODEL_FROM_DATABASE=CUV4X mainboard -+ ID_MODEL_FROM_DATABASE=VT8605 [ProSavage PM133] (CUV4X mainboard) - - pci:v00001106d00000680* - ID_MODEL_FROM_DATABASE=VT82C680 [Apollo P6] -@@ -29364,49 +29364,49 @@ pci:v00001106d00000686* - ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] - - pci:v00001106d00000686sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (P6VXA Motherboard) - - pci:v00001106d00000686sv0000103Csd00001256* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00001106d00000686sv00001043sd0000802C* -- ID_MODEL_FROM_DATABASE=CUV4X mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (CUV4X mainboard) - - pci:v00001106d00000686sv00001043sd00008033* -- ID_MODEL_FROM_DATABASE=A7V Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V Mainboard) - - pci:v00001106d00000686sv00001043sd0000803E* -- ID_MODEL_FROM_DATABASE=A7V-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V-E Mainboard) - - pci:v00001106d00000686sv00001043sd00008040* -- ID_MODEL_FROM_DATABASE=A7M266 Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7M266 Mainboard) - - pci:v00001106d00000686sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (A7V133/A7V133-C Mainboard) - - pci:v00001106d00000686sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) - - pci:v00001106d00000686sv00001106sd00000686* -- ID_MODEL_FROM_DATABASE=VT82C686/A PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (VT82C686/A PCI to ISA Bridge) - - pci:v00001106d00000686sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (Magnia Z310) - - pci:v00001106d00000686sv0000147Bsd0000A702* -- ID_MODEL_FROM_DATABASE=KG7-Lite Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super South] (KG7-Lite Mainboard) - - pci:v00001106d00000691* - ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] - - pci:v00001106d00000691sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (P6VXA Motherboard) - - pci:v00001106d00000691sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (Magnia Z310) - - pci:v00001106d00000691sv00001458sd00000691* -- ID_MODEL_FROM_DATABASE=VT82C691 Apollo Pro System Controller -+ ID_MODEL_FROM_DATABASE=VT82C693A/694x [Apollo PRO133x] (VT82C691 Apollo Pro System Controller) - - pci:v00001106d00000693* - ID_MODEL_FROM_DATABASE=VT82C693 [Apollo Pro Plus] -@@ -29586,61 +29586,61 @@ pci:v00001106d00003038* - ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller - - pci:v00001106d00003038sv00000925sd00001234* -- ID_MODEL_FROM_DATABASE=VA-502 Mainboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VA-502 Mainboard) - - pci:v00001106d00003038sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (P6VXA Motherboard) - - pci:v00001106d00003038sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003038sv00001043sd00008080* -- ID_MODEL_FROM_DATABASE=A7V333 motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V333 motherboard) - - pci:v00001106d00003038sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=VT6202 USB2.0 4 port controller -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (VT6202 USB2.0 4 port controller) - - pci:v00001106d00003038sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V8X-X motherboard) - - pci:v00001106d00003038sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003038sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (Magnia Z310) - - pci:v00001106d00003038sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (GA-7VAX Mainboard) - - pci:v00001106d00003038sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003038sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T NEO 2 motherboard) - - pci:v00001106d00003038sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8T Neo2-F V2.0) - - pci:v00001106d00003038sv00001462sd00007120* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KT4AV motherboard) - - pci:v00001106d00003038sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K8MM3-V mainboard) - - pci:v00001106d00003038sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (KV8-MAX3 motherboard) - - pci:v00001106d00003038sv0000182Dsd0000201D* -- ID_MODEL_FROM_DATABASE=CN-029 USB2.0 4 port PCI Card -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (CN-029 USB2.0 4 port PCI Card) - - pci:v00001106d00003038sv00001849sd00003038* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (K7VT series Motherboards) - - pci:v00001106d00003038sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (ZBOX nano VD01) - - pci:v00001106d00003038sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=VT82xxxxx UHCI USB 1.1 Controller (QEMU Virtual Machine) - - pci:v00001106d00003040* - ID_MODEL_FROM_DATABASE=VT82C586B ACPI -@@ -29649,52 +29649,52 @@ pci:v00001106d00003043* - ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] - - pci:v00001106d00003043sv000010BDsd00000000* -- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) - - pci:v00001106d00003043sv00001106sd00000100* -- ID_MODEL_FROM_DATABASE=VT86C100A Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (VT86C100A Fast Ethernet Adapter) - - pci:v00001106d00003043sv00001186sd00001400* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev A -+ ID_MODEL_FROM_DATABASE=VT86C100A [Rhine] (DFE-530TX rev A) - - pci:v00001106d00003044* - ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller - - pci:v00001106d00003044sv00000010sd00000001* -- ID_MODEL_FROM_DATABASE=IEEE 1394 4port DCST 1394-3+1B -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (IEEE 1394 4port DCST 1394-3+1B) - - pci:v00001106d00003044sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (TravelMate 290) - - pci:v00001106d00003044sv0000103Csd00002A20* -- ID_MODEL_FROM_DATABASE=Pavilion t3030.de Desktop PC -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Pavilion t3030.de Desktop PC) - - pci:v00001106d00003044sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Media Center PC m7590n -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Media Center PC m7590n) - - pci:v00001106d00003044sv00001043sd0000808A* -- ID_MODEL_FROM_DATABASE=A8V/A8N/P4P800 series motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (A8V/A8N/P4P800 series motherboard) - - pci:v00001106d00003044sv00001043sd000081FE* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Motherboard) - - pci:v00001106d00003044sv00001458sd00001000* -- ID_MODEL_FROM_DATABASE=GA-7VT600-1394 Motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (GA-7VT600-1394 Motherboard) - - pci:v00001106d00003044sv00001462sd0000207D* -- ID_MODEL_FROM_DATABASE=K8NGM2 series motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8NGM2 series motherboard) - - pci:v00001106d00003044sv00001462sd0000217D* -- ID_MODEL_FROM_DATABASE=Aspire L250 -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (Aspire L250) - - pci:v00001106d00003044sv00001462sd0000590D* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003044sv00001462sd0000702D* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (K8T NEO 2 motherboard) - - pci:v00001106d00003044sv00001462sd0000971D* -- ID_MODEL_FROM_DATABASE=MS-6917 -+ ID_MODEL_FROM_DATABASE=VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (MS-6917) - - pci:v00001106d00003050* - ID_MODEL_FROM_DATABASE=VT82C596 Power Management -@@ -29709,205 +29709,205 @@ pci:v00001106d00003057* - ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] - - pci:v00001106d00003057sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (P6VXA Motherboard) - - pci:v00001106d00003057sv00001019sd00000987* -- ID_MODEL_FROM_DATABASE=K7VZA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (K7VZA Motherboard) - - pci:v00001106d00003057sv00001043sd00008033* -- ID_MODEL_FROM_DATABASE=A7V Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V Mainboard) - - pci:v00001106d00003057sv00001043sd0000803E* -- ID_MODEL_FROM_DATABASE=A7V-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V-E Mainboard) - - pci:v00001106d00003057sv00001043sd00008040* -- ID_MODEL_FROM_DATABASE=A7M266 Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7M266 Mainboard) - - pci:v00001106d00003057sv00001043sd00008042* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (A7V133/A7V133-C Mainboard) - - pci:v00001106d00003057sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=VT82C686 [Apollo Super ACPI] (Magnia Z310) - - pci:v00001106d00003058* - ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller - - pci:v00001106d00003058sv00000E11sd00000097* -- ID_MODEL_FROM_DATABASE=SoundMax Digital Integrated Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (SoundMax Digital Integrated Audio) - - pci:v00001106d00003058sv00000E11sd0000B194* -- ID_MODEL_FROM_DATABASE=Soundmax integrated digital audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Soundmax integrated digital audio) - - pci:v00001106d00003058sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (P6VXA Motherboard) - - pci:v00001106d00003058sv00001019sd00000987* -- ID_MODEL_FROM_DATABASE=K7VZA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (K7VZA Motherboard) - - pci:v00001106d00003058sv0000103Csd00001251* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00001106d00003058sv00001043sd00001106* -- ID_MODEL_FROM_DATABASE=A7V133/A7V133-C Mainboard -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (A7V133/A7V133-C Mainboard) - - pci:v00001106d00003058sv00001106sd00004511* -- ID_MODEL_FROM_DATABASE=Onboard Audio on EP7KXA -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio on EP7KXA) - - pci:v00001106d00003058sv00001106sd0000AA03* -- ID_MODEL_FROM_DATABASE=VT1612A AC'97 Audio Controller -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (VT1612A AC'97 Audio Controller) - - pci:v00001106d00003058sv000011D4sd00005348* -- ID_MODEL_FROM_DATABASE=AD1881A audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (AD1881A audio) - - pci:v00001106d00003058sv00001458sd00007600* -- ID_MODEL_FROM_DATABASE=Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) - - pci:v00001106d00003058sv00001462sd00003091* -- ID_MODEL_FROM_DATABASE=MS-6309 Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 Onboard Audio) - - pci:v00001106d00003058sv00001462sd00003092* -- ID_MODEL_FROM_DATABASE=MS-6309 v2.x Mainboard (VIA VT1611A codec) -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6309 v2.x Mainboard (VIA VT1611A codec)) - - pci:v00001106d00003058sv00001462sd00003300* -- ID_MODEL_FROM_DATABASE=MS-6330 Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (MS-6330 Onboard Audio) - - pci:v00001106d00003058sv000015DDsd00007609* -- ID_MODEL_FROM_DATABASE=Onboard Audio -+ ID_MODEL_FROM_DATABASE=VT82C686 AC97 Audio Controller (Onboard Audio) - - pci:v00001106d00003059* - ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller - - pci:v00001106d00003059sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003059sv00001019sd00001877* -- ID_MODEL_FROM_DATABASE=K8M800-M2 (V2.0) onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8M800-M2 (V2.0) onboard audio) - - pci:v00001106d00003059sv00001043sd00008095* -- ID_MODEL_FROM_DATABASE=A7V8X Motherboard (Realtek ALC650 codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X Motherboard (Realtek ALC650 codec)) - - pci:v00001106d00003059sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V8X-X Motherboard) - - pci:v00001106d00003059sv00001043sd000080B0* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX]) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A7V600/K8V-X/K8V Deluxe motherboard (ADI AD1980 codec [SoundMAX])) - - pci:v00001106d00003059sv00001043sd0000810D* -- ID_MODEL_FROM_DATABASE=Asus P5VD1-X (AD1888 codec [SoundMax]) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Asus P5VD1-X (AD1888 codec [SoundMax])) - - pci:v00001106d00003059sv00001043sd0000812A* -- ID_MODEL_FROM_DATABASE=A8V Deluxe motherboard (Realtek ALC850 codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (A8V Deluxe motherboard (Realtek ALC850 codec)) - - pci:v00001106d00003059sv000010ECsd00008168* -- ID_MODEL_FROM_DATABASE=High Definition Audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (High Definition Audio) - - pci:v00001106d00003059sv00001106sd00003059* -- ID_MODEL_FROM_DATABASE=L7VMM2 Motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (L7VMM2 Motherboard) - - pci:v00001106d00003059sv00001106sd00004161* -- ID_MODEL_FROM_DATABASE=K7VT2 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT2 motherboard) - - pci:v00001106d00003059sv00001106sd00004170* -- ID_MODEL_FROM_DATABASE=PCPartner P4M800-8237R Motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (PCPartner P4M800-8237R Motherboard) - - pci:v00001106d00003059sv00001106sd00004552* -- ID_MODEL_FROM_DATABASE=Soyo KT-600 Dragon Plus (Realtek ALC 650) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (Soyo KT-600 Dragon Plus (Realtek ALC 650)) - - pci:v00001106d00003059sv00001297sd0000C160* -- ID_MODEL_FROM_DATABASE=FX41 motherboard (Realtek ALC650 codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (FX41 motherboard (Realtek ALC650 codec)) - - pci:v00001106d00003059sv00001413sd0000147B* -- ID_MODEL_FROM_DATABASE=KV8 Pro motherboard onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8 Pro motherboard onboard audio) - - pci:v00001106d00003059sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-7VAX Onboard Audio (Realtek ALC650) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (GA-7VAX Onboard Audio (Realtek ALC650)) - - pci:v00001106d00003059sv00001462sd00000080* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8T NEO 2 motherboard) - - pci:v00001106d00003059sv00001462sd00003800* -- ID_MODEL_FROM_DATABASE=KT266 onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT266 onboard audio) - - pci:v00001106d00003059sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003059sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K8MM3-V mainboard) - - pci:v00001106d00003059sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (KV8-MAX3 motherboard) - - pci:v00001106d00003059sv00001695sd0000300C* -- ID_MODEL_FROM_DATABASE=EP-8KRA2+ Mainboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (EP-8KRA2+ Mainboard) - - pci:v00001106d00003059sv00001849sd00000850* -- ID_MODEL_FROM_DATABASE=ASRock 775Dual-880 Pro onboard audio (Realtek ALC850) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (ASRock 775Dual-880 Pro onboard audio (Realtek ALC850)) - - pci:v00001106d00003059sv00001849sd00009739* -- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard (C-Media CMI9739A codec) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (P4VT8 Mainboard (C-Media CMI9739A codec)) - - pci:v00001106d00003059sv00001849sd00009761* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (K7VT series Motherboards) - - pci:v00001106d00003059sv00004005sd00004710* -- ID_MODEL_FROM_DATABASE=MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P) -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (MSI K7T266 Pro2-RU (MSI-6380 v2) onboard audio (Realtek/ALC 200/200P)) - - pci:v00001106d00003059sv0000A0A0sd000001B6* -- ID_MODEL_FROM_DATABASE=AK77-8XN onboard audio -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK77-8XN onboard audio) - - pci:v00001106d00003059sv0000A0A0sd00000342* -- ID_MODEL_FROM_DATABASE=AK86-L motherboard -+ ID_MODEL_FROM_DATABASE=VT8233/A/8235/8237 AC97 Audio Controller (AK86-L motherboard) - - pci:v00001106d00003065* - ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] - - pci:v00001106d00003065sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X Motherboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V8X-X Motherboard) - - pci:v00001106d00003065sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600-X Motherboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (A7V600-X Motherboard) - - pci:v00001106d00003065sv00001106sd00000102* -- ID_MODEL_FROM_DATABASE=VT6102 [Rhine II] Embeded Ethernet Controller on VT8235 -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6102 [Rhine II] Embeded Ethernet Controller on VT8235) - - pci:v00001106d00003065sv00001186sd00001400* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev A -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev A) - - pci:v00001106d00003065sv00001186sd00001401* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev B -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (DFE-530TX rev B) - - pci:v00001106d00003065sv000013B9sd00001421* -- ID_MODEL_FROM_DATABASE=LD-10/100AL PCI Fast Ethernet Adapter (rev.B) -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (LD-10/100AL PCI Fast Ethernet Adapter (rev.B)) - - pci:v00001106d00003065sv00001462sd00007061* -- ID_MODEL_FROM_DATABASE=MS-7061 -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (MS-7061) - - pci:v00001106d00003065sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K8MM3-V mainboard) - - pci:v00001106d00003065sv0000147Bsd00001C09* -- ID_MODEL_FROM_DATABASE=NV7 Motherboard -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (NV7 Motherboard) - - pci:v00001106d00003065sv00001695sd00003005* -- ID_MODEL_FROM_DATABASE=VT6103 -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (VT6103) - - pci:v00001106d00003065sv00001695sd0000300C* -- ID_MODEL_FROM_DATABASE=Realtek ALC655 sound chip -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (Realtek ALC655 sound chip) - - pci:v00001106d00003065sv00001849sd00003065* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT6102 [Rhine-II] (K7VT series Motherboards) - - pci:v00001106d00003068* - ID_MODEL_FROM_DATABASE=AC'97 Modem Controller - - pci:v00001106d00003068sv00001462sd0000309E* -- ID_MODEL_FROM_DATABASE=MS-6309 Saturn Motherboard -+ ID_MODEL_FROM_DATABASE=AC'97 Modem Controller (MS-6309 Saturn Motherboard) - - pci:v00001106d00003074* - ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge - - pci:v00001106d00003074sv00001043sd00008052* -- ID_MODEL_FROM_DATABASE=VT8233A -+ ID_MODEL_FROM_DATABASE=VT8233 PCI to ISA Bridge (VT8233A) - - pci:v00001106d00003091* - ID_MODEL_FROM_DATABASE=VT8633 [Apollo Pro266] -@@ -29916,13 +29916,13 @@ pci:v00001106d00003099* - ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] - - pci:v00001106d00003099sv00001043sd00008064* -- ID_MODEL_FROM_DATABASE=A7V266-E Mainboard -+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V266-E Mainboard) - - pci:v00001106d00003099sv00001043sd0000807F* -- ID_MODEL_FROM_DATABASE=A7V333 Mainboard -+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (A7V333 Mainboard) - - pci:v00001106d00003099sv00001849sd00003099* -- ID_MODEL_FROM_DATABASE=K7VT2 motherboard -+ ID_MODEL_FROM_DATABASE=VT8366/A/7 [Apollo KT266/A/333] (K7VT2 motherboard) - - pci:v00001106d00003101* - ID_MODEL_FROM_DATABASE=VT8653 Host Bridge -@@ -29937,70 +29937,70 @@ pci:v00001106d00003104* - ID_MODEL_FROM_DATABASE=USB 2.0 - - pci:v00001106d00003104sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=USB 2.0 (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003104sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X motherboard) - - pci:v00001106d00003104sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard rev 1.01 -+ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V8X-X motherboard rev 1.01) - - pci:v00001106d00003104sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003104sv00001106sd00003104* -- ID_MODEL_FROM_DATABASE=USB 2.0 Controller -+ ID_MODEL_FROM_DATABASE=USB 2.0 (Controller) - - pci:v00001106d00003104sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (FX41 motherboard) - - pci:v00001106d00003104sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (GA-7VAX Mainboard) - - pci:v00001106d00003104sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=USB 2.0 (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003104sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T NEO 2 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T NEO 2 motherboard) - - pci:v00001106d00003104sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K8T Neo2-F V2.0) - - pci:v00001106d00003104sv00001462sd00007120* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (KT4AV motherboard) - - pci:v00001106d00003104sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K8MM3-V mainboard) - - pci:v00001106d00003104sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=USB 2.0 (KV8-MAX3 motherboard) - - pci:v00001106d00003104sv0000182Dsd0000201D* -- ID_MODEL_FROM_DATABASE=CN-029 USB 2.0 4 port PCI Card -+ ID_MODEL_FROM_DATABASE=USB 2.0 (CN-029 USB 2.0 4 port PCI Card) - - pci:v00001106d00003104sv00001849sd00003104* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=USB 2.0 (K7VT series Motherboards) - - pci:v00001106d00003104sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=USB 2.0 (ZBOX nano VD01) - - pci:v00001106d00003106* - ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] - - pci:v00001106d00003106sv00001106sd00000105* -- ID_MODEL_FROM_DATABASE=VT6106S [Rhine-III] -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (VT6106S [Rhine-III]) - - pci:v00001106d00003106sv00001186sd00001403* -- ID_MODEL_FROM_DATABASE=DFE-530TX rev C -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX rev C) - - pci:v00001106d00003106sv00001186sd00001405* -- ID_MODEL_FROM_DATABASE=DFE-520TX Fast Ethernet PCI Adapter -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-520TX Fast Ethernet PCI Adapter) - - pci:v00001106d00003106sv00001186sd00001406* -- ID_MODEL_FROM_DATABASE=DFE-530TX+ rev F2 -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-530TX+ rev F2) - - pci:v00001106d00003106sv00001186sd00001407* -- ID_MODEL_FROM_DATABASE=DFE-538TX -+ ID_MODEL_FROM_DATABASE=VT6105/VT6106S [Rhine-III] (DFE-538TX) - - pci:v00001106d00003108* - ID_MODEL_FROM_DATABASE=K8M800/K8N800/K8N800A [S3 UniChrome Pro] -@@ -30018,7 +30018,7 @@ pci:v00001106d00003116* - ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge - - pci:v00001106d00003116sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=VT8375 [KM266/KL266] Host Bridge (FX41 motherboard) - - pci:v00001106d00003118* - ID_MODEL_FROM_DATABASE=CN400/PM800/PM880/PN800/PN880 [S3 UniChrome Pro] -@@ -30045,7 +30045,7 @@ pci:v00001106d00003147* - ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge - - pci:v00001106d00003147sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V333 motherboard -+ ID_MODEL_FROM_DATABASE=VT8233A ISA Bridge (A7V333 motherboard) - - pci:v00001106d00003148* - ID_MODEL_FROM_DATABASE=P4M266 Host Bridge -@@ -30054,34 +30054,34 @@ pci:v00001106d00003149* - ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller - - pci:v00001106d00003149sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (A7V600/K8V Deluxe/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003149sv00001458sd0000B003* -- ID_MODEL_FROM_DATABASE=GA-7VM400AM(F) Motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (GA-7VM400AM(F) Motherboard) - - pci:v00001106d00003149sv00001462sd00005901* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KT6 Delta-FIS2R (MS-6590)) - - pci:v00001106d00003149sv00001462sd00007020* -- ID_MODEL_FROM_DATABASE=K8T Neo 2 Motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo 2 Motherboard) - - pci:v00001106d00003149sv00001462sd00007094* -- ID_MODEL_FROM_DATABASE=K8T Neo2-F V2.0 -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8T Neo2-F V2.0) - - pci:v00001106d00003149sv00001462sd00007181* -- ID_MODEL_FROM_DATABASE=K8MM3-V mainboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K8MM3-V mainboard) - - pci:v00001106d00003149sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV8-MAX3 motherboard) - - pci:v00001106d00003149sv0000147Bsd00001408* -- ID_MODEL_FROM_DATABASE=KV7 -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (KV7) - - pci:v00001106d00003149sv00001849sd00003149* -- ID_MODEL_FROM_DATABASE=K7VT6 motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (K7VT6 motherboard) - - pci:v00001106d00003149sv0000A0A0sd000004AD* -- ID_MODEL_FROM_DATABASE=AK86-L motherboard -+ ID_MODEL_FROM_DATABASE=VIA VT6420 SATA RAID Controller (AK86-L motherboard) - - pci:v00001106d00003156* - ID_MODEL_FROM_DATABASE=P/KN266 Host Bridge -@@ -30093,40 +30093,40 @@ pci:v00001106d00003164* - ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller - - pci:v00001106d00003164sv00001043sd000080F4* -- ID_MODEL_FROM_DATABASE=P4P800 Mainboard Deluxe ATX -+ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (P4P800 Mainboard Deluxe ATX) - - pci:v00001106d00003164sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=VT6410 ATA133 RAID controller (915P/G Neo2) - - pci:v00001106d00003168* - ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge - - pci:v00001106d00003168sv00001849sd00003168* -- ID_MODEL_FROM_DATABASE=P4VT8 Mainboard -+ ID_MODEL_FROM_DATABASE=P4X333/P4X400/PT800 AGP Bridge (P4VT8 Mainboard) - - pci:v00001106d00003177* - ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge - - pci:v00001106d00003177sv00001019sd00000A81* -- ID_MODEL_FROM_DATABASE=L7VTA v1.0 Motherboard (KT400-8235) -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (L7VTA v1.0 Motherboard (KT400-8235)) - - pci:v00001106d00003177sv00001043sd0000808C* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X motherboard) - - pci:v00001106d00003177sv00001043sd000080A1* -- ID_MODEL_FROM_DATABASE=A7V8X-X motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (A7V8X-X motherboard) - - pci:v00001106d00003177sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (KT4AV motherboard) - - pci:v00001106d00003177sv00001297sd0000F641* -- ID_MODEL_FROM_DATABASE=FX41 motherboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (FX41 motherboard) - - pci:v00001106d00003177sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (GA-7VAX Mainboard) - - pci:v00001106d00003177sv00001849sd00003177* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT8235 ISA Bridge (K7VT series Motherboards) - - pci:v00001106d00003178* - ID_MODEL_FROM_DATABASE=ProSavageDDR P4N333 Host Bridge -@@ -30135,25 +30135,25 @@ pci:v00001106d00003188* - ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge - - pci:v00001106d00003188sv00001043sd000080A3* -- ID_MODEL_FROM_DATABASE=K8V Deluxe/K8V-X motherboard -+ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (K8V Deluxe/K8V-X motherboard) - - pci:v00001106d00003188sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8385 [K8T800 AGP] Host Bridge (KV8-MAX3 motherboard) - - pci:v00001106d00003189* - ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge - - pci:v00001106d00003189sv00001043sd0000807F* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (A7V8X motherboard) - - pci:v00001106d00003189sv00001106sd00000000* -- ID_MODEL_FROM_DATABASE=KT4AV motherboard (KT400A) -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (KT4AV motherboard (KT400A)) - - pci:v00001106d00003189sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-7VAX Mainboard -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (GA-7VAX Mainboard) - - pci:v00001106d00003189sv00001849sd00003189* -- ID_MODEL_FROM_DATABASE=K7VT series Motherboards -+ ID_MODEL_FROM_DATABASE=VT8377 [KT400/KT600 AGP] Host Bridge (K7VT series Motherboards) - - pci:v00001106d00003204* - ID_MODEL_FROM_DATABASE=K8M800 Host Bridge -@@ -30162,7 +30162,7 @@ pci:v00001106d00003205* - ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge - - pci:v00001106d00003205sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-7VM400M Motherboard -+ ID_MODEL_FROM_DATABASE=VT8378 [KM400/A] Chipset Host Bridge (GA-7VM400M Motherboard) - - pci:v00001106d00003208* - ID_MODEL_FROM_DATABASE=PT890 Host Bridge -@@ -30177,19 +30177,19 @@ pci:v00001106d00003227* - ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] - - pci:v00001106d00003227sv00001043sd000080ED* -- ID_MODEL_FROM_DATABASE=A7V600/K8V-X/A8V Deluxe motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (A7V600/K8V-X/A8V Deluxe motherboard) - - pci:v00001106d00003227sv00001106sd00003227* -- ID_MODEL_FROM_DATABASE=DFI KT600-AL / Soltek SL-B9D-FGR Motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (DFI KT600-AL / Soltek SL-B9D-FGR Motherboard) - - pci:v00001106d00003227sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-7VT600 Motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (GA-7VT600 Motherboard) - - pci:v00001106d00003227sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (KV8-MAX3 motherboard) - - pci:v00001106d00003227sv00001849sd00003227* -- ID_MODEL_FROM_DATABASE=K7VT4 motherboard -+ ID_MODEL_FROM_DATABASE=VT8237 ISA bridge [KT600/K8T800/K8T890 South] (K7VT4 motherboard) - - pci:v00001106d00003230* - ID_MODEL_FROM_DATABASE=K8M890CE/K8N890CE [Chrome 9] -@@ -30237,7 +30237,7 @@ pci:v00001106d00003288* - ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller - - pci:v00001106d00003288sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX VD01 -+ ID_MODEL_FROM_DATABASE=VT8237A/VT8251 HDA Controller (ZBOX VD01) - - pci:v00001106d00003290* - ID_MODEL_FROM_DATABASE=K8M890 Host Bridge -@@ -30294,10 +30294,10 @@ pci:v00001106d00003403* - ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller - - pci:v00001106d00003403sv00001043sd00008374* -- ID_MODEL_FROM_DATABASE=M5A88-V EVO -+ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (M5A88-V EVO) - - pci:v00001106d00003403sv00001043sd00008384* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=VT6315 Series Firewire Controller (P8P67 Deluxe Motherboard) - - pci:v00001106d00003409* - ID_MODEL_FROM_DATABASE=VX855/VX875 DRAM Bus Control -@@ -30306,7 +30306,7 @@ pci:v00001106d00003410* - ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control - - pci:v00001106d00003410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 DRAM Bus Control (ZBOX nano VD01) - - pci:v00001106d00003432* - ID_MODEL_FROM_DATABASE=VL80x xHCI USB 3.0 Controller -@@ -30378,7 +30378,7 @@ pci:v00001106d00004410* - ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control - - pci:v00001106d00004410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 Power Management and Chip Testing Control (ZBOX nano VD01) - - pci:v00001106d00005030* - ID_MODEL_FROM_DATABASE=VT82C596 ACPI [Apollo PRO] -@@ -30456,7 +30456,7 @@ pci:v00001106d00006410* - ID_MODEL_FROM_DATABASE=VX900 Scratch Registers - - pci:v00001106d00006410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 Scratch Registers (ZBOX nano VD01) - - pci:v00001106d00007122* - ID_MODEL_FROM_DATABASE=VX900 Graphics [Chrome9 HD] -@@ -30468,10 +30468,10 @@ pci:v00001106d00007205* - ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] - - pci:v00001106d00007205sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=Gigabyte GA-7VM400(A)M(F) Motherboard -+ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (Gigabyte GA-7VM400(A)M(F) Motherboard) - - pci:v00001106d00007205sv00001462sd00007061* -- ID_MODEL_FROM_DATABASE=MS-7061 -+ ID_MODEL_FROM_DATABASE=KM400/KN400/P4M800 [S3 UniChrome] (MS-7061) - - pci:v00001106d00007208* - ID_MODEL_FROM_DATABASE=PT890 Host Bridge -@@ -30534,7 +30534,7 @@ pci:v00001106d00007410* - ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control - - pci:v00001106d00007410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX nano VD01 -+ ID_MODEL_FROM_DATABASE=VX900 North-South Module Interface Control (ZBOX nano VD01) - - pci:v00001106d00008231* - ID_MODEL_FROM_DATABASE=VT8231 [PCI-to-ISA Bridge] -@@ -30564,7 +30564,7 @@ pci:v00001106d00008410* - ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management - - pci:v00001106d00008410sv000019DAsd0000A179* -- ID_MODEL_FROM_DATABASE=ZBOX VD01 -+ ID_MODEL_FROM_DATABASE=VX900 Bus Control and Power Management (ZBOX VD01) - - pci:v00001106d00008500* - ID_MODEL_FROM_DATABASE=KLE133/PLE133/PLE133T -@@ -30582,7 +30582,7 @@ pci:v00001106d00008598* - ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] - - pci:v00001106d00008598sv00001019sd00000985* -- ID_MODEL_FROM_DATABASE=P6VXA Motherboard -+ ID_MODEL_FROM_DATABASE=VT82C598/694x [Apollo MVP3/Pro133x AGP] (P6VXA Motherboard) - - pci:v00001106d00008601* - ID_MODEL_FROM_DATABASE=VT8601 [Apollo ProMedia AGP] -@@ -30669,7 +30669,7 @@ pci:v00001106d0000B188* - ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] - - pci:v00001106d0000B188sv0000147Bsd00001407* -- ID_MODEL_FROM_DATABASE=KV8-MAX3 motherboard -+ ID_MODEL_FROM_DATABASE=VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] (KV8-MAX3 motherboard) - - pci:v00001106d0000B198* - ID_MODEL_FROM_DATABASE=VT8237/VX700 PCI Bridge -@@ -30846,7 +30846,7 @@ pci:v0000110Ad00004029sv0000110Asd00004029* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 - - pci:v0000110Ad00004029sv0000110Asd0000C029* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5614 A2 -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5613 A2 (SIMATIC NET CP 5614 A2) - - pci:v0000110Ad00004035* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1613 A2 -@@ -30864,7 +30864,7 @@ pci:v0000110Ad00004069sv0000110Asd00004069* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 - - pci:v0000110Ad00004069sv0000110Asd0000C069* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5624 -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5623 (SIMATIC NET CP 5624) - - pci:v0000110Ad0000407C* - ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5612 -@@ -30942,25 +30942,25 @@ pci:v00001113d00001211* - ID_MODEL_FROM_DATABASE=SMC2-1211TX - - pci:v00001113d00001211sv0000103Csd00001207* -- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) - - pci:v00001113d00001211sv00001113sd00001211* -- ID_MODEL_FROM_DATABASE=EN-1207D Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SMC2-1211TX (EN-1207D Fast Ethernet Adapter) - - pci:v00001113d00001216* - ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter - - pci:v00001113d00001216sv00001113sd00001216* -- ID_MODEL_FROM_DATABASE=EN1207F series PCI Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN1207F series PCI Fast Ethernet Adapter) - - pci:v00001113d00001216sv00001113sd00002220* -- ID_MODEL_FROM_DATABASE=EN2220A Cardbus Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2220A Cardbus Fast Ethernet Adapter) - - pci:v00001113d00001216sv00001113sd00002242* -- ID_MODEL_FROM_DATABASE=EN2242 10/100 Ethernet Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (EN2242 10/100 Ethernet Mini-PCI Card) - - pci:v00001113d00001216sv0000111Asd00001020* -- ID_MODEL_FROM_DATABASE=SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?] -+ ID_MODEL_FROM_DATABASE=EN-1216 Ethernet Adapter (SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?]) - - pci:v00001113d00001217* - ID_MODEL_FROM_DATABASE=EN-1217 Ethernet Adapter -@@ -31272,37 +31272,37 @@ pci:v0000111Ad00000003* - ID_MODEL_FROM_DATABASE=ENI-25P ATM - - pci:v0000111Ad00000003sv0000111Asd00000000* -- ID_MODEL_FROM_DATABASE=ENI-25p Miniport ATM Adapter -+ ID_MODEL_FROM_DATABASE=ENI-25P ATM (ENI-25p Miniport ATM Adapter) - - pci:v0000111Ad00000005* - ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) - - pci:v0000111Ad00000005sv0000111Asd00000001* -- ID_MODEL_FROM_DATABASE=ENI-3010 ATM -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) - - pci:v0000111Ad00000005sv0000111Asd00000009* -- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0)) - - pci:v0000111Ad00000005sv0000111Asd00000101* -- ID_MODEL_FROM_DATABASE=ENI-3010 ATM -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3010 ATM) - - pci:v0000111Ad00000005sv0000111Asd00000109* -- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0)) - - pci:v0000111Ad00000005sv0000111Asd00000809* -- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=0 or 8) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=0 or 8)) - - pci:v0000111Ad00000005sv0000111Asd00000909* -- ID_MODEL_FROM_DATABASE=ENI-3060CO ADSL (VPI=0 or 8) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060CO ADSL (VPI=0 or 8)) - - pci:v0000111Ad00000005sv0000111Asd00000A09* -- ID_MODEL_FROM_DATABASE=ENI-3060 ADSL (VPI=<0..15>) -+ ID_MODEL_FROM_DATABASE=SpeedStream (LANAI) (ENI-3060 ADSL (VPI=<0..15>)) - - pci:v0000111Ad00000007* - ID_MODEL_FROM_DATABASE=SpeedStream ADSL - - pci:v0000111Ad00000007sv0000111Asd00001001* -- ID_MODEL_FROM_DATABASE=ENI-3061 ADSL [ASIC] -+ ID_MODEL_FROM_DATABASE=SpeedStream ADSL (ENI-3061 ADSL [ASIC]) - - pci:v0000111Ad00001020* - ID_MODEL_FROM_DATABASE=SpeedStream PCI 10/100 Network Card -@@ -31446,7 +31446,7 @@ pci:v0000111Dd0000806A* - ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch - - pci:v0000111Dd0000806Asv000014C1sd0000000C* -- ID_MODEL_FROM_DATABASE=10G-PCIE2-8B2 -+ ID_MODEL_FROM_DATABASE=PES24T3G2 PCI Express Gen2 Switch (10G-PCIE2-8B2) - - pci:v0000111Dd0000806C* - ID_MODEL_FROM_DATABASE=PES16T4A/4T4G2 PCI Express Gen2 Switch -@@ -31515,7 +31515,7 @@ pci:v00001127d00000400* - ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter - - pci:v00001127d00000400sv00001127sd00000400* -- ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM -+ ID_MODEL_FROM_DATABASE=ForeRunnerHE ATM Adapter (ForeRunnerHE ATM) - - pci:v00001129* - ID_VENDOR_FROM_DATABASE=Firmworks -@@ -31557,13 +31557,13 @@ pci:v00001131d00001561* - ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller - - pci:v00001131d00001561sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K onboard USB 1.1 host controller -+ ID_MODEL_FROM_DATABASE=USB 1.1 Host Controller (C2K onboard USB 1.1 host controller) - - pci:v00001131d00001562* - ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller - - pci:v00001131d00001562sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K onboard USB 2.0 host controller -+ ID_MODEL_FROM_DATABASE=USB 2.0 Host Controller (C2K onboard USB 2.0 host controller) - - pci:v00001131d00003400* - ID_MODEL_FROM_DATABASE=SmartPCI56(UCB1500) 56K Modem -@@ -31572,49 +31572,49 @@ pci:v00001131d00005400* - ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 - - pci:v00001131d00005400sv000012CAsd00000000* -- ID_MODEL_FROM_DATABASE=BlueICE -+ ID_MODEL_FROM_DATABASE=TriMedia TM1000/1100 (BlueICE) - - pci:v00001131d00005402* - ID_MODEL_FROM_DATABASE=TriMedia TM1300 - - pci:v00001131d00005402sv00001244sd00000F00* -- ID_MODEL_FROM_DATABASE=Fritz!Card DSL -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (Fritz!Card DSL) - - pci:v00001131d00005402sv000015EBsd00001300* -- ID_MODEL_FROM_DATABASE=DT1300 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1300) - - pci:v00001131d00005402sv000015EBsd00001302* -- ID_MODEL_FROM_DATABASE=DT1302 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1302) - - pci:v00001131d00005402sv000015EBsd00001304* -- ID_MODEL_FROM_DATABASE=DT1304 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1304) - - pci:v00001131d00005402sv000015EBsd00001305* -- ID_MODEL_FROM_DATABASE=DT1305 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1305) - - pci:v00001131d00005402sv000015EBsd00001306* -- ID_MODEL_FROM_DATABASE=PMCDT1306 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PMCDT1306) - - pci:v00001131d00005402sv000015EBsd00001308* -- ID_MODEL_FROM_DATABASE=DT1308 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1308) - - pci:v00001131d00005402sv000015EBsd00001331* -- ID_MODEL_FROM_DATABASE=DT1301 with SAA7121 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7121) - - pci:v00001131d00005402sv000015EBsd00001337* -- ID_MODEL_FROM_DATABASE=DT1301 with SAA7127 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (DT1301 with SAA7127) - - pci:v00001131d00005402sv000015EBsd00002D3D* -- ID_MODEL_FROM_DATABASE=X3D -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (X3D) - - pci:v00001131d00005402sv000015EBsd00007022* -- ID_MODEL_FROM_DATABASE=PTM1300 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1300 (PTM1300) - - pci:v00001131d00005405* - ID_MODEL_FROM_DATABASE=TriMedia TM1500 - - pci:v00001131d00005405sv00001136sd00000005* -- ID_MODEL_FROM_DATABASE=LCP-1500 -+ ID_MODEL_FROM_DATABASE=TriMedia TM1500 (LCP-1500) - - pci:v00001131d00005406* - ID_MODEL_FROM_DATABASE=TriMedia TM1700 -@@ -31623,409 +31623,409 @@ pci:v00001131d0000540B* - ID_MODEL_FROM_DATABASE=PNX1005 Media Processor - - pci:v00001131d0000540Bsv00001131sd00000020* -- ID_MODEL_FROM_DATABASE=PNXLite PCI Demo Board -+ ID_MODEL_FROM_DATABASE=PNX1005 Media Processor (PNXLite PCI Demo Board) - - pci:v00001131d00007130* - ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder - - pci:v00001131d00007130sv00000000sd00004016* -- ID_MODEL_FROM_DATABASE=Behold TV 401 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 401) - - pci:v00001131d00007130sv00000000sd00004051* -- ID_MODEL_FROM_DATABASE=Behold TV 405 FM -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 405 FM) - - pci:v00001131d00007130sv00000000sd00005051* -- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) - - pci:v00001131d00007130sv00000000sd0000505B* -- ID_MODEL_FROM_DATABASE=Behold TV 505 RDS -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 RDS) - - pci:v00001131d00007130sv0000102Bsd000048D0* -- ID_MODEL_FROM_DATABASE=Matrox CronosPlus -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Matrox CronosPlus) - - pci:v00001131d00007130sv00001048sd0000226B* -- ID_MODEL_FROM_DATABASE=ELSA EX-VISION 300TV -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (ELSA EX-VISION 300TV) - - pci:v00001131d00007130sv0000107Dsd00006655* -- ID_MODEL_FROM_DATABASE=WinFast DTV1000S -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (WinFast DTV1000S) - - pci:v00001131d00007130sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=SAA7130-based TV tuner card -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (SAA7130-based TV tuner card) - - pci:v00001131d00007130sv00001131sd00002001* -- ID_MODEL_FROM_DATABASE=10MOONS PCI TV CAPTURE CARD -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (10MOONS PCI TV CAPTURE CARD) - - pci:v00001131d00007130sv00001131sd00002005* -- ID_MODEL_FROM_DATABASE=Techcom (India) TV Tuner Card (SSD-TV-670) -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Techcom (India) TV Tuner Card (SSD-TV-670)) - - pci:v00001131d00007130sv00001458sd00009006* -- ID_MODEL_FROM_DATABASE=GT-PS700 DVB-S tuner -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (GT-PS700 DVB-S tuner) - - pci:v00001131d00007130sv00001461sd0000050C* -- ID_MODEL_FROM_DATABASE=Nagase Sangyo TransGear 3000TV -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Nagase Sangyo TransGear 3000TV) - - pci:v00001131d00007130sv00001461sd000010FF* -- ID_MODEL_FROM_DATABASE=AVerMedia DVD EZMaker -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AVerMedia DVD EZMaker) - - pci:v00001131d00007130sv00001461sd00002108* -- ID_MODEL_FROM_DATABASE=AverMedia AverTV/305 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV/305) - - pci:v00001131d00007130sv00001461sd00002115* -- ID_MODEL_FROM_DATABASE=AverMedia AverTV Studio 305 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (AverMedia AverTV Studio 305) - - pci:v00001131d00007130sv0000153Bsd00001152* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 200 TV -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Terratec Cinergy 200 TV) - - pci:v00001131d00007130sv0000185Bsd0000C100* -- ID_MODEL_FROM_DATABASE=Compro VideoMate TV PVR/FM -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Compro VideoMate TV PVR/FM) - - pci:v00001131d00007130sv0000185Bsd0000C901* -- ID_MODEL_FROM_DATABASE=Videomate DVB-T200 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Videomate DVB-T200) - - pci:v00001131d00007130sv00005168sd00000138* -- ID_MODEL_FROM_DATABASE=LifeView FlyVIDEO2000 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (LifeView FlyVIDEO2000) - - pci:v00001131d00007130sv00005ACEsd00005010* -- ID_MODEL_FROM_DATABASE=Behold TV 501 -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 501) - - pci:v00001131d00007130sv00005ACEsd00005050* -- ID_MODEL_FROM_DATABASE=Behold TV 505 FM -+ ID_MODEL_FROM_DATABASE=SAA7130 Video Broadcast Decoder (Behold TV 505 FM) - - pci:v00001131d00007133* - ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder - - pci:v00001131d00007133sv00000000sd00004091* -- ID_MODEL_FROM_DATABASE=Beholder BeholdTV 409 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Beholder BeholdTV 409 FM) - - pci:v00001131d00007133sv00000000sd00005071* -- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) - - pci:v00001131d00007133sv00000000sd0000507B* -- ID_MODEL_FROM_DATABASE=Behold TV 507 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 507 RDS) - - pci:v00001131d00007133sv00000000sd00005201* -- ID_MODEL_FROM_DATABASE=Behold TV Columbus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV Columbus) - - pci:v00001131d00007133sv00000070sd00006701* -- ID_MODEL_FROM_DATABASE=WinTV HVR-1110 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (WinTV HVR-1110) - - pci:v00001131d00007133sv00001019sd00004CB5* -- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)) - - pci:v00001131d00007133sv00001043sd00000210* -- ID_MODEL_FROM_DATABASE=FlyTV mini Asus Digimatrix -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (FlyTV mini Asus Digimatrix) - - pci:v00001131d00007133sv00001043sd00004843* -- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7133 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ASUS TV-FM 7133) - - pci:v00001131d00007133sv00001043sd00004845* -- ID_MODEL_FROM_DATABASE=TV-FM 7135 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV-FM 7135) - - pci:v00001131d00007133sv00001043sd00004862* -- ID_MODEL_FROM_DATABASE=P7131 Dual -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (P7131 Dual) - - pci:v00001131d00007133sv00001043sd00004876* -- ID_MODEL_FROM_DATABASE=My Cinema-P7131 Hybrid -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (My Cinema-P7131 Hybrid) - - pci:v00001131d00007133sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (SAA713x-based TV tuner card) - - pci:v00001131d00007133sv00001131sd00002001* -- ID_MODEL_FROM_DATABASE=Proteus Pro [philips reference design] -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Proteus Pro [philips reference design]) - - pci:v00001131d00007133sv00001131sd00002018* -- ID_MODEL_FROM_DATABASE=Tiger reference design -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Tiger reference design) - - pci:v00001131d00007133sv00001131sd00004EE9* -- ID_MODEL_FROM_DATABASE=MonsterTV Mobile -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (MonsterTV Mobile) - - pci:v00001131d00007133sv00001131sd00007133* -- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 301i -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Pinnacle PCTV 301i) - - pci:v00001131d00007133sv000011BDsd0000002B* -- ID_MODEL_FROM_DATABASE=PCTV Stereo -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV Stereo) - - pci:v00001131d00007133sv000011BDsd0000002E* -- ID_MODEL_FROM_DATABASE=PCTV 110i (saa7133) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PCTV 110i (saa7133)) - - pci:v00001131d00007133sv000012ABsd00000800* -- ID_MODEL_FROM_DATABASE=PURPLE TV -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PURPLE TV) - - pci:v00001131d00007133sv000013C2sd00002804* -- ID_MODEL_FROM_DATABASE=Technotrend Budget T-3000 Hybrid -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Technotrend Budget T-3000 Hybrid) - - pci:v00001131d00007133sv00001421sd00000335* -- ID_MODEL_FROM_DATABASE=Instant TV DVB-T Cardbus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV DVB-T Cardbus) - - pci:v00001131d00007133sv00001421sd00001370* -- ID_MODEL_FROM_DATABASE=Instant TV (saa7135) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Instant TV (saa7135)) - - pci:v00001131d00007133sv00001435sd00007330* -- ID_MODEL_FROM_DATABASE=VFG7330 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7330) - - pci:v00001131d00007133sv00001435sd00007350* -- ID_MODEL_FROM_DATABASE=VFG7350 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VFG7350) - - pci:v00001131d00007133sv00001458sd00009001* -- ID_MODEL_FROM_DATABASE=GC-PTV-TAF Hybrid TV card -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GC-PTV-TAF Hybrid TV card) - - pci:v00001131d00007133sv00001458sd00009002* -- ID_MODEL_FROM_DATABASE=GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-TAF-RH DVB-T/Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009003* -- ID_MODEL_FROM_DATABASE=GT-PTV-AF-RH Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-PTV-AF-RH Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009004* -- ID_MODEL_FROM_DATABASE=GT-P8000 DVB-T/Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P8000 DVB-T/Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009005* -- ID_MODEL_FROM_DATABASE=GT-P6000 Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P6000 Analog TV/FM tuner) - - pci:v00001131d00007133sv00001458sd00009008* -- ID_MODEL_FROM_DATABASE=GT-P5100 Analog TV tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (GT-P5100 Analog TV tuner) - - pci:v00001131d00007133sv00001461sd00001044* -- ID_MODEL_FROM_DATABASE=AVerTVHD MCE A180 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTVHD MCE A180) - - pci:v00001131d00007133sv00001461sd00004836* -- ID_MODEL_FROM_DATABASE=M10D Hybrid DVBT -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M10D Hybrid DVBT) - - pci:v00001131d00007133sv00001461sd0000861E* -- ID_MODEL_FROM_DATABASE=M105 PAL/SECAM/NTSC/FM Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M105 PAL/SECAM/NTSC/FM Tuner) - - pci:v00001131d00007133sv00001461sd0000A14B* -- ID_MODEL_FROM_DATABASE=AVerTV Studio 509 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (AVerTV Studio 509) - - pci:v00001131d00007133sv00001461sd0000A836* -- ID_MODEL_FROM_DATABASE=M115 DVB-T, PAL/SECAM/NTSC Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (M115 DVB-T, PAL/SECAM/NTSC Tuner) - - pci:v00001131d00007133sv00001461sd0000F01D* -- ID_MODEL_FROM_DATABASE=DVB-T Super 007 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (DVB-T Super 007) - - pci:v00001131d00007133sv00001461sd0000F31F* -- ID_MODEL_FROM_DATABASE=Avermedia AVerTV GO 007 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Avermedia AVerTV GO 007 FM) - - pci:v00001131d00007133sv00001461sd0000F936* -- ID_MODEL_FROM_DATABASE=Hybrid+FM PCI (rev A16D) -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Hybrid+FM PCI (rev A16D)) - - pci:v00001131d00007133sv00001462sd00006231* -- ID_MODEL_FROM_DATABASE=TV@nywhere Plus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (TV@nywhere Plus) - - pci:v00001131d00007133sv00001489sd00000214* -- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum FM) - - pci:v00001131d00007133sv000014C0sd00001212* -- ID_MODEL_FROM_DATABASE=LifeView FlyTV Platinum Mini2 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV Platinum Mini2) - - pci:v00001131d00007133sv0000153Bsd00001160* -- ID_MODEL_FROM_DATABASE=Cinergy 250 PCI TV -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Cinergy 250 PCI TV) - - pci:v00001131d00007133sv0000153Bsd00001162* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 mobile -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Terratec Cinergy 400 mobile) - - pci:v00001131d00007133sv000017DEsd00007256* -- ID_MODEL_FROM_DATABASE=PlusTV All In One PI610 card -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (PlusTV All In One PI610 card) - - pci:v00001131d00007133sv000017DEsd00007350* -- ID_MODEL_FROM_DATABASE=ATSC 110 Digital / Analog HDTV Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 110 Digital / Analog HDTV Tuner) - - pci:v00001131d00007133sv000017DEsd00007352* -- ID_MODEL_FROM_DATABASE=ATSC 115 Digital / Analog HDTV Tuner -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (ATSC 115 Digital / Analog HDTV Tuner) - - pci:v00001131d00007133sv0000185Bsd0000C100* -- ID_MODEL_FROM_DATABASE=VideoMate TV -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate TV) - - pci:v00001131d00007133sv0000185Bsd0000C900* -- ID_MODEL_FROM_DATABASE=VideoMate T750 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (VideoMate T750) - - pci:v00001131d00007133sv00005168sd00000306* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T DUO -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T DUO) - - pci:v00001131d00007133sv00005168sd00000319* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio) - - pci:v00001131d00007133sv00005168sd00000502* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Duo CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Duo CardBus) - - pci:v00001131d00007133sv00005168sd00000520* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio CardBus) - - pci:v00001131d00007133sv00005168sd00001502* -- ID_MODEL_FROM_DATABASE=LifeView FlyTV CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyTV CardBus) - - pci:v00001131d00007133sv00005168sd00002502* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T CardBus) - - pci:v00001131d00007133sv00005168sd00002520* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-S Duo CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-S Duo CardBus) - - pci:v00001131d00007133sv00005168sd00003502* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB-T Hybrid CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB-T Hybrid CardBus) - - pci:v00001131d00007133sv00005168sd00003520* -- ID_MODEL_FROM_DATABASE=LifeView FlyDVB Trio N CardBus -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (LifeView FlyDVB Trio N CardBus) - - pci:v00001131d00007133sv00005ACEsd00005030* -- ID_MODEL_FROM_DATABASE=Behold TV 503 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 503 FM) - - pci:v00001131d00007133sv00005ACEsd00005090* -- ID_MODEL_FROM_DATABASE=Behold TV 509 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 509 FM) - - pci:v00001131d00007133sv00005ACEsd00006090* -- ID_MODEL_FROM_DATABASE=Behold TV 609 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) - - pci:v00001131d00007133sv00005ACEsd00006091* -- ID_MODEL_FROM_DATABASE=Behold TV 609 FM -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 FM) - - pci:v00001131d00007133sv00005ACEsd00006092* -- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) - - pci:v00001131d00007133sv00005ACEsd00006093* -- ID_MODEL_FROM_DATABASE=Behold TV 609 RDS -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV 609 RDS) - - pci:v00001131d00007133sv00005ACEsd00006190* -- ID_MODEL_FROM_DATABASE=Behold TV M6 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6) - - pci:v00001131d00007133sv00005ACEsd00006191* -- ID_MODEL_FROM_DATABASE=Behold TV M63 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M63) - - pci:v00001131d00007133sv00005ACEsd00006193* -- ID_MODEL_FROM_DATABASE=Behold TV M6 Extra -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV M6 Extra) - - pci:v00001131d00007133sv00005ACEsd00006290* -- ID_MODEL_FROM_DATABASE=Behold TV H6 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H6) - - pci:v00001131d00007133sv00005ACEsd00007090* -- ID_MODEL_FROM_DATABASE=Behold TV A7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV A7) - - pci:v00001131d00007133sv00005ACEsd00007150* -- ID_MODEL_FROM_DATABASE=Behold TV H75 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) - - pci:v00001131d00007133sv00005ACEsd00007151* -- ID_MODEL_FROM_DATABASE=Behold TV H75 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H75) - - pci:v00001131d00007133sv00005ACEsd00007190* -- ID_MODEL_FROM_DATABASE=Behold TV H7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) - - pci:v00001131d00007133sv00005ACEsd00007191* -- ID_MODEL_FROM_DATABASE=Behold TV H7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV H7) - - pci:v00001131d00007133sv00005ACEsd00007290* -- ID_MODEL_FROM_DATABASE=Behold TV T7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV T7) - - pci:v00001131d00007133sv00005ACEsd00007591* -- ID_MODEL_FROM_DATABASE=Behold TV X7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) - - pci:v00001131d00007133sv00005ACEsd00007595* -- ID_MODEL_FROM_DATABASE=Behold TV X7 -+ ID_MODEL_FROM_DATABASE=SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (Behold TV X7) - - pci:v00001131d00007134* - ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder - - pci:v00001131d00007134sv00000000sd00004036* -- ID_MODEL_FROM_DATABASE=Behold TV 403 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403) - - pci:v00001131d00007134sv00000000sd00004037* -- ID_MODEL_FROM_DATABASE=Behold TV 403 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 403 FM) - - pci:v00001131d00007134sv00000000sd00004071* -- ID_MODEL_FROM_DATABASE=Behold TV 407 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 407 FM) - - pci:v00001131d00007134sv00001019sd00004CB4* -- ID_MODEL_FROM_DATABASE=Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM)) - - pci:v00001131d00007134sv00001043sd00000210* -- ID_MODEL_FROM_DATABASE=Digimatrix TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Digimatrix TV) - - pci:v00001131d00007134sv00001043sd00004840* -- ID_MODEL_FROM_DATABASE=ASUS TV-FM 7134 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ASUS TV-FM 7134) - - pci:v00001131d00007134sv00001043sd00004842* -- ID_MODEL_FROM_DATABASE=TV-FM 7134 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (TV-FM 7134) - - pci:v00001131d00007134sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=SAA713x-based TV tuner card -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SAA713x-based TV tuner card) - - pci:v00001131d00007134sv00001131sd00002004* -- ID_MODEL_FROM_DATABASE=EUROPA V3 reference design -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EUROPA V3 reference design) - - pci:v00001131d00007134sv00001131sd00004E85* -- ID_MODEL_FROM_DATABASE=SKNet Monster TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (SKNet Monster TV) - - pci:v00001131d00007134sv00001131sd00006752* -- ID_MODEL_FROM_DATABASE=EMPRESS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (EMPRESS) - - pci:v00001131d00007134sv000011BDsd0000002B* -- ID_MODEL_FROM_DATABASE=PCTV Stereo -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV Stereo) - - pci:v00001131d00007134sv000011BDsd0000002D* -- ID_MODEL_FROM_DATABASE=PCTV 300i DVB-T + PAL -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (PCTV 300i DVB-T + PAL) - - pci:v00001131d00007134sv00001461sd00002C00* -- ID_MODEL_FROM_DATABASE=AverTV Hybrid+FM PCI -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverTV Hybrid+FM PCI) - - pci:v00001131d00007134sv00001461sd00009715* -- ID_MODEL_FROM_DATABASE=AVerTV Studio 307 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Studio 307) - - pci:v00001131d00007134sv00001461sd0000A70A* -- ID_MODEL_FROM_DATABASE=Avermedia AVerTV 307 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Avermedia AVerTV 307) - - pci:v00001131d00007134sv00001461sd0000A70B* -- ID_MODEL_FROM_DATABASE=AverMedia M156 / Medion 2819 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AverMedia M156 / Medion 2819) - - pci:v00001131d00007134sv00001461sd0000D6EE* -- ID_MODEL_FROM_DATABASE=Cardbus TV/Radio (E500) -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Cardbus TV/Radio (E500)) - - pci:v00001131d00007134sv00001471sd0000B7E9* -- ID_MODEL_FROM_DATABASE=AVerTV Cardbus plus -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (AVerTV Cardbus plus) - - pci:v00001131d00007134sv0000153Bsd00001142* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 400 TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 400 TV) - - pci:v00001131d00007134sv0000153Bsd00001143* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV) - - pci:v00001131d00007134sv0000153Bsd00001158* -- ID_MODEL_FROM_DATABASE=Terratec Cinergy 600 TV MK3 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Terratec Cinergy 600 TV MK3) - - pci:v00001131d00007134sv00001540sd00009524* -- ID_MODEL_FROM_DATABASE=ProVideo PV952 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (ProVideo PV952) - - pci:v00001131d00007134sv000016BEsd00000003* -- ID_MODEL_FROM_DATABASE=Medion 7134 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Medion 7134) - - pci:v00001131d00007134sv0000185Bsd0000C200* -- ID_MODEL_FROM_DATABASE=Compro VideoMate Gold+ Pal -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Compro VideoMate Gold+ Pal) - - pci:v00001131d00007134sv0000185Bsd0000C900* -- ID_MODEL_FROM_DATABASE=Videomate DVB-T300 -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Videomate DVB-T300) - - pci:v00001131d00007134sv00001894sd0000A006* -- ID_MODEL_FROM_DATABASE=KNC One TV-Station DVR -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station DVR) - - pci:v00001131d00007134sv00001894sd0000FE01* -- ID_MODEL_FROM_DATABASE=KNC One TV-Station RDS / Typhoon TV Tuner RDS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (KNC One TV-Station RDS / Typhoon TV Tuner RDS) - - pci:v00001131d00007134sv00005168sd00000138* -- ID_MODEL_FROM_DATABASE=FLY TV PRIME 34FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FLY TV PRIME 34FM) - - pci:v00001131d00007134sv00005168sd00000300* -- ID_MODEL_FROM_DATABASE=FlyDVB-S -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (FlyDVB-S) - - pci:v00001131d00007134sv00005ACEsd00005070* -- ID_MODEL_FROM_DATABASE=Behold TV 507 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 507 FM) - - pci:v00001131d00007134sv00005ACEsd00006070* -- ID_MODEL_FROM_DATABASE=Behold TV 607 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) - - pci:v00001131d00007134sv00005ACEsd00006071* -- ID_MODEL_FROM_DATABASE=Behold TV 607 FM -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 FM) - - pci:v00001131d00007134sv00005ACEsd00006072* -- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) - - pci:v00001131d00007134sv00005ACEsd00006073* -- ID_MODEL_FROM_DATABASE=Behold TV 607 RDS -+ ID_MODEL_FROM_DATABASE=SAA7134/SAA7135HL Video Broadcast Decoder (Behold TV 607 RDS) - - pci:v00001131d00007145* - ID_MODEL_FROM_DATABASE=SAA7145 -@@ -32034,223 +32034,223 @@ pci:v00001131d00007146* - ID_MODEL_FROM_DATABASE=SAA7146 - - pci:v00001131d00007146sv0000110Asd00000000* -- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) - - pci:v00001131d00007146sv0000110Asd0000FFFF* -- ID_MODEL_FROM_DATABASE=Fujitsu/Siemens DVB-C card rev1.5 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu/Siemens DVB-C card rev1.5) - - pci:v00001131d00007146sv00001124sd00002581* -- ID_MODEL_FROM_DATABASE=Leutron Vision PicPort -+ ID_MODEL_FROM_DATABASE=SAA7146 (Leutron Vision PicPort) - - pci:v00001131d00007146sv00001131sd00004F56* -- ID_MODEL_FROM_DATABASE=KNC1 DVB-S Budget -+ ID_MODEL_FROM_DATABASE=SAA7146 (KNC1 DVB-S Budget) - - pci:v00001131d00007146sv00001131sd00004F60* -- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Activy DVB-S Budget Rev AL -+ ID_MODEL_FROM_DATABASE=SAA7146 (Fujitsu-Siemens Activy DVB-S Budget Rev AL) - - pci:v00001131d00007146sv00001131sd00004F61* -- ID_MODEL_FROM_DATABASE=Activy DVB-S Budget Rev GR -+ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-S Budget Rev GR) - - pci:v00001131d00007146sv00001131sd00005F61* -- ID_MODEL_FROM_DATABASE=Activy DVB-T Budget -+ ID_MODEL_FROM_DATABASE=SAA7146 (Activy DVB-T Budget) - - pci:v00001131d00007146sv0000114Bsd00002003* -- ID_MODEL_FROM_DATABASE=DVRaptor Video Edit/Capture Card -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVRaptor Video Edit/Capture Card) - - pci:v00001131d00007146sv000011BDsd00000006* -- ID_MODEL_FROM_DATABASE=DV500 Overlay -+ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) - - pci:v00001131d00007146sv000011BDsd0000000A* -- ID_MODEL_FROM_DATABASE=DV500 Overlay -+ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) - - pci:v00001131d00007146sv000011BDsd0000000F* -- ID_MODEL_FROM_DATABASE=DV500 Overlay -+ ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay) - - pci:v00001131d00007146sv000013C2sd00000000* -- ID_MODEL_FROM_DATABASE=Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5) - - pci:v00001131d00007146sv000013C2sd00000001* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) - - pci:v00001131d00007146sv000013C2sd00000002* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv000013C2sd00000003* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv000013C2sd00000004* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv000013C2sd00000006* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev1.3 or rev1.6 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev1.3 or rev1.6) - - pci:v00001131d00007146sv000013C2sd00000008* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB-T -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB-T) - - pci:v00001131d00007146sv000013C2sd0000000A* -- ID_MODEL_FROM_DATABASE=Octal/Technotrend DVB-C for iTV -+ ID_MODEL_FROM_DATABASE=SAA7146 (Octal/Technotrend DVB-C for iTV) - - pci:v00001131d00007146sv000013C2sd0000000E* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.3 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.3) - - pci:v00001131d00007146sv000013C2sd00001003* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-S DVB card) - - pci:v00001131d00007146sv000013C2sd00001004* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-C DVB card) - - pci:v00001131d00007146sv000013C2sd00001005* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) - - pci:v00001131d00007146sv000013C2sd0000100C* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) - - pci:v00001131d00007146sv000013C2sd0000100F* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card) - - pci:v00001131d00007146sv000013C2sd00001010* -- ID_MODEL_FROM_DATABASE=DVB C-1500 -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVB C-1500) - - pci:v00001131d00007146sv000013C2sd00001011* -- ID_MODEL_FROM_DATABASE=Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend-Budget/Hauppauge WinTV-NOVA-T DVB card) - - pci:v00001131d00007146sv000013C2sd00001012* -- ID_MODEL_FROM_DATABASE=DVB T-1500 -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVB T-1500) - - pci:v00001131d00007146sv000013C2sd00001013* -- ID_MODEL_FROM_DATABASE=SATELCO Multimedia DVB -+ ID_MODEL_FROM_DATABASE=SAA7146 (SATELCO Multimedia DVB) - - pci:v00001131d00007146sv000013C2sd00001016* -- ID_MODEL_FROM_DATABASE=WinTV-NOVA-SE DVB card -+ ID_MODEL_FROM_DATABASE=SAA7146 (WinTV-NOVA-SE DVB card) - - pci:v00001131d00007146sv000013C2sd00001018* -- ID_MODEL_FROM_DATABASE=DVB S-1401 -+ ID_MODEL_FROM_DATABASE=SAA7146 (DVB S-1401) - - pci:v00001131d00007146sv000013C2sd00001019* -- ID_MODEL_FROM_DATABASE=S2-3200 -+ ID_MODEL_FROM_DATABASE=SAA7146 (S2-3200) - - pci:v00001131d00007146sv000013C2sd00001102* -- ID_MODEL_FROM_DATABASE=Technotrend/Hauppauge DVB card rev2.1 -+ ID_MODEL_FROM_DATABASE=SAA7146 (Technotrend/Hauppauge DVB card rev2.1) - - pci:v00001131d00007146sv0000153Bsd00001155* -- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-S -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) - - pci:v00001131d00007146sv0000153Bsd00001156* -- ID_MODEL_FROM_DATABASE=Terratec Cynergy 1200C -+ ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) - - pci:v00001131d00007146sv0000153Bsd00001157* -- ID_MODEL_FROM_DATABASE=Cinergy 1200 DVB-T -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) - - pci:v00001131d00007146sv00001894sd00000020* -- ID_MODEL_FROM_DATABASE=KNC One DVB-C V1.0 -+ ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) - - pci:v00001131d00007146sv00001894sd00000023* -- ID_MODEL_FROM_DATABASE=TVStation DVB-C plus -+ ID_MODEL_FROM_DATABASE=SAA7146 (TVStation DVB-C plus) - - pci:v00001131d00007160* - ID_MODEL_FROM_DATABASE=SAA7160 - - pci:v00001131d00007160sv00001458sd00009009* -- ID_MODEL_FROM_DATABASE=E8000 DVB-T/Analog TV/FM tuner -+ ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) - - pci:v00001131d00007162* - ID_MODEL_FROM_DATABASE=SAA7162 - - pci:v00001131d00007162sv000011BDsd00000101* -- ID_MODEL_FROM_DATABASE=Pinnacle PCTV 7010iX TV Card -+ ID_MODEL_FROM_DATABASE=SAA7162 (Pinnacle PCTV 7010iX TV Card) - - pci:v00001131d00007164* - ID_MODEL_FROM_DATABASE=SAA7164 - - pci:v00001131d00007164sv00000070sd00008800* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008810* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008851* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008853* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008880* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008891* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd000088A0* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd000088A1* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2250 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2250) - - pci:v00001131d00007164sv00000070sd00008900* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008901* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008940* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 (submodel 89619) -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200 (submodel 89619)) - - pci:v00001131d00007164sv00000070sd00008951* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008953* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008980* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008991* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd00008993* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd000089A0* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007164sv00000070sd000089A1* -- ID_MODEL_FROM_DATABASE=WinTV HVR-2200 -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - - pci:v00001131d00007231* - ID_MODEL_FROM_DATABASE=SAA7231 - - pci:v00001131d00007231sv00005ACEsd00008000* -- ID_MODEL_FROM_DATABASE=Behold TV H8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) - - pci:v00001131d00007231sv00005ACEsd00008001* -- ID_MODEL_FROM_DATABASE=Behold TV H8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H8) - - pci:v00001131d00007231sv00005ACEsd00008050* -- ID_MODEL_FROM_DATABASE=Behold TV H85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) - - pci:v00001131d00007231sv00005ACEsd00008051* -- ID_MODEL_FROM_DATABASE=Behold TV H85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV H85) - - pci:v00001131d00007231sv00005ACEsd00008100* -- ID_MODEL_FROM_DATABASE=Behold TV A8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) - - pci:v00001131d00007231sv00005ACEsd00008101* -- ID_MODEL_FROM_DATABASE=Behold TV A8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A8) - - pci:v00001131d00007231sv00005ACEsd00008150* -- ID_MODEL_FROM_DATABASE=Behold TV A85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) - - pci:v00001131d00007231sv00005ACEsd00008151* -- ID_MODEL_FROM_DATABASE=Behold TV A85 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV A85) - - pci:v00001131d00007231sv00005ACEsd00008201* -- ID_MODEL_FROM_DATABASE=Behold TV T8 -+ ID_MODEL_FROM_DATABASE=SAA7231 (Behold TV T8) - - pci:v00001131d00009730* - ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller - - pci:v00001131d00009730sv00001131sd00000000* -- ID_MODEL_FROM_DATABASE=Integrated Multimedia and Peripheral Controller -+ ID_MODEL_FROM_DATABASE=SAA9730 Integrated Multimedia and Peripheral Controller (Integrated Multimedia and Peripheral Controller) - - pci:v00001132* - ID_VENDOR_FROM_DATABASE=Mitel Corp. -@@ -32364,7 +32364,7 @@ pci:v00001133d0000E010* - ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI - - pci:v00001133d0000E010sv0000110Asd00000021* -- ID_MODEL_FROM_DATABASE=Fujitsu Siemens ISDN S0 -+ ID_MODEL_FROM_DATABASE=Diva Server BRI-2M PCI (Fujitsu Siemens ISDN S0) - - pci:v00001133d0000E011* - ID_MODEL_FROM_DATABASE=Diva Server BRI S/T Rev 2 -@@ -32376,10 +32376,10 @@ pci:v00001133d0000E013* - ID_MODEL_FROM_DATABASE=4BRI - - pci:v00001133d0000E013sv00001133sd00001300* -- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCI v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCI v2) - - pci:v00001133d0000E013sv00001133sd0000E013* -- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCI v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCI v2) - - pci:v00001133d0000E014* - ID_MODEL_FROM_DATABASE=Diva Server PRI-30M PCI -@@ -32394,22 +32394,22 @@ pci:v00001133d0000E017* - ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 - - pci:v00001133d0000E017sv00001133sd0000E017* -- ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI-8M 2.0 PCI -+ ID_MODEL_FROM_DATABASE=Diva Server Voice 4BRI Rev 2 (Diva Server Voice 4BRI-8M 2.0 PCI) - - pci:v00001133d0000E018* - ID_MODEL_FROM_DATABASE=BRI - - pci:v00001133d0000E018sv00001133sd00001800* -- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCI v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCI v2) - - pci:v00001133d0000E018sv00001133sd0000E018* -- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCI v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCI v2) - - pci:v00001133d0000E019* - ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 - - pci:v00001133d0000E019sv00001133sd0000E019* -- ID_MODEL_FROM_DATABASE=Diva Server Voice PRI 2.0 PCI -+ ID_MODEL_FROM_DATABASE=Diva Server Voice PRI Rev 2 (Diva Server Voice PRI 2.0 PCI) - - pci:v00001133d0000E01A* - ID_MODEL_FROM_DATABASE=Diva BRI-2FX PCI v2 -@@ -32424,85 +32424,85 @@ pci:v00001133d0000E01C* - ID_MODEL_FROM_DATABASE=PRI - - pci:v00001133d0000E01Csv00001133sd00001C01* -- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-8 PCI v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-8 PCI v3) - - pci:v00001133d0000E01Csv00001133sd00001C02* -- ID_MODEL_FROM_DATABASE=Diva PRI/T1-24 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/T1-24 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C03* -- ID_MODEL_FROM_DATABASE=Diva PRI/E1-30 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1-30 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C04* -- ID_MODEL_FROM_DATABASE=Diva PRI/E1/T1-CTI PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva PRI/E1/T1-CTI PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C05* -- ID_MODEL_FROM_DATABASE=Diva V-PRI/T1-24 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/T1-24 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C06* -- ID_MODEL_FROM_DATABASE=Diva V-PRI/E1-30 PCI(e) v3 -+ ID_MODEL_FROM_DATABASE=PRI (Diva V-PRI/E1-30 PCI(e) v3) - - pci:v00001133d0000E01Csv00001133sd00001C07* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1-8 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1-8 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C08* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/T1-24 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/T1-24 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C09* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1-30 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1-30 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C0A* -- ID_MODEL_FROM_DATABASE=Diva Server PRI/E1/T1 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server PRI/E1/T1 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C0B* -- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/T1-24 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/T1-24 Cornet NQ) - - pci:v00001133d0000E01Csv00001133sd00001C0C* -- ID_MODEL_FROM_DATABASE=Diva Server V-PRI/E1-30 Cornet NQ -+ ID_MODEL_FROM_DATABASE=PRI (Diva Server V-PRI/E1-30 Cornet NQ) - - pci:v00001133d0000E01E* - ID_MODEL_FROM_DATABASE=2PRI - - pci:v00001133d0000E01Esv00001133sd00001E01* -- ID_MODEL_FROM_DATABASE=Diva 2PRI/E1/T1-60 PCI v1 -+ ID_MODEL_FROM_DATABASE=2PRI (Diva 2PRI/E1/T1-60 PCI v1) - - pci:v00001133d0000E01Esv00001133sd0000E01E* -- ID_MODEL_FROM_DATABASE=Diva V-2PRI/E1/T1-60 PCI v1 -+ ID_MODEL_FROM_DATABASE=2PRI (Diva V-2PRI/E1/T1-60 PCI v1) - - pci:v00001133d0000E020* - ID_MODEL_FROM_DATABASE=4PRI - - pci:v00001133d0000E020sv00001133sd00002001* -- ID_MODEL_FROM_DATABASE=Diva 4PRI/E1/T1-120 PCI v1 -+ ID_MODEL_FROM_DATABASE=4PRI (Diva 4PRI/E1/T1-120 PCI v1) - - pci:v00001133d0000E020sv00001133sd0000E020* -- ID_MODEL_FROM_DATABASE=Diva V-4PRI/E1/T1-120 PCI v1 -+ ID_MODEL_FROM_DATABASE=4PRI (Diva V-4PRI/E1/T1-120 PCI v1) - - pci:v00001133d0000E022* - ID_MODEL_FROM_DATABASE=Analog-2 - - pci:v00001133d0000E022sv00001133sd00002200* -- ID_MODEL_FROM_DATABASE=Diva V-Analog-2 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-2 (Diva V-Analog-2 PCI v1) - - pci:v00001133d0000E022sv00001133sd0000E022* -- ID_MODEL_FROM_DATABASE=Diva Analog-2 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-2 (Diva Analog-2 PCI v1) - - pci:v00001133d0000E024* - ID_MODEL_FROM_DATABASE=Analog-4 - - pci:v00001133d0000E024sv00001133sd00002400* -- ID_MODEL_FROM_DATABASE=Diva V-Analog-4 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-4 (Diva V-Analog-4 PCI v1) - - pci:v00001133d0000E024sv00001133sd0000E024* -- ID_MODEL_FROM_DATABASE=Diva Analog-4 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-4 (Diva Analog-4 PCI v1) - - pci:v00001133d0000E028* - ID_MODEL_FROM_DATABASE=Analog-8 - - pci:v00001133d0000E028sv00001133sd00002800* -- ID_MODEL_FROM_DATABASE=Diva V-Analog-8 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-8 (Diva V-Analog-8 PCI v1) - - pci:v00001133d0000E028sv00001133sd0000E028* -- ID_MODEL_FROM_DATABASE=Diva Analog-8 PCI v1 -+ ID_MODEL_FROM_DATABASE=Analog-8 (Diva Analog-8 PCI v1) - - pci:v00001133d0000E02A* - ID_MODEL_FROM_DATABASE=Diva IPM-300 PCI v1 -@@ -32514,19 +32514,19 @@ pci:v00001133d0000E02E* - ID_MODEL_FROM_DATABASE=4BRI - - pci:v00001133d0000E02Esv00001133sd00002E01* -- ID_MODEL_FROM_DATABASE=Diva V-4BRI-8 PCIe v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva V-4BRI-8 PCIe v2) - - pci:v00001133d0000E02Esv00001133sd0000E02E* -- ID_MODEL_FROM_DATABASE=Diva 4BRI-8 PCIe v2 -+ ID_MODEL_FROM_DATABASE=4BRI (Diva 4BRI-8 PCIe v2) - - pci:v00001133d0000E032* - ID_MODEL_FROM_DATABASE=BRI - - pci:v00001133d0000E032sv00001133sd00003201* -- ID_MODEL_FROM_DATABASE=Diva V-BRI-2 PCIe v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva V-BRI-2 PCIe v2) - - pci:v00001133d0000E032sv00001133sd0000E032* -- ID_MODEL_FROM_DATABASE=Diva BRI-2 PCIe v2 -+ ID_MODEL_FROM_DATABASE=BRI (Diva BRI-2 PCIe v2) - - pci:v00001133d0000E034* - ID_MODEL_FROM_DATABASE=Diva BRI-CTI PCI v2 -@@ -32574,88 +32574,88 @@ pci:v00001137d00000042* - ID_MODEL_FROM_DATABASE=VIC Management Controller - - pci:v00001137d00000042sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC P81E PCIe Management Controller) - - pci:v00001137d00000042sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225 PCIe Management Controller) - - pci:v00001137d00000042sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1285 PCIe Management Controller) - - pci:v00001137d00000042sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Management Controller -+ ID_MODEL_FROM_DATABASE=VIC Management Controller (VIC 1225T PCIe Management Controller) - - pci:v00001137d00000043* - ID_MODEL_FROM_DATABASE=VIC Ethernet NIC - - pci:v00001137d00000043sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC P81E PCIe Ethernet NIC) - - pci:v00001137d00000043sv00001137sd00000048* -- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC M81KR Mezzanine Ethernet NIC) - - pci:v00001137d00000043sv00001137sd0000004F* -- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1280 Mezzanine Ethernet NIC) - - pci:v00001137d00000043sv00001137sd00000084* -- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1240 MLOM Ethernet NIC) - - pci:v00001137d00000043sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225 PCIe Ethernet NIC) - - pci:v00001137d00000043sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1285 PCIe Ethernet NIC) - - pci:v00001137d00000043sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC (VIC 1225T PCIe Ethernet NIC) - - pci:v00001137d00000044* - ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic - - pci:v00001137d00000044sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC P81E PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd00000048* -- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC M81KR Mezzanine Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd0000004F* -- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1280 Mezzanine Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd00000084* -- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1240 MLOM Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225 PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1285 PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000044sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe Ethernet NIC Dynamic -+ ID_MODEL_FROM_DATABASE=VIC Ethernet NIC Dynamic (VIC 1225T PCIe Ethernet NIC Dynamic) - - pci:v00001137d00000045* - ID_MODEL_FROM_DATABASE=VIC FCoE HBA - - pci:v00001137d00000045sv00001137sd00000047* -- ID_MODEL_FROM_DATABASE=VIC P81E PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC P81E PCIe FCoE HBA) - - pci:v00001137d00000045sv00001137sd00000048* -- ID_MODEL_FROM_DATABASE=VIC M81KR Mezzanine FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC M81KR Mezzanine FCoE HBA) - - pci:v00001137d00000045sv00001137sd0000004F* -- ID_MODEL_FROM_DATABASE=VIC 1280 Mezzanine FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1280 Mezzanine FCoE HBA) - - pci:v00001137d00000045sv00001137sd00000084* -- ID_MODEL_FROM_DATABASE=VIC 1240 MLOM FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1240 MLOM FCoE HBA) - - pci:v00001137d00000045sv00001137sd00000085* -- ID_MODEL_FROM_DATABASE=VIC 1225 PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225 PCIe FCoE HBA) - - pci:v00001137d00000045sv00001137sd000000CD* -- ID_MODEL_FROM_DATABASE=VIC 1285 PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1285 PCIe FCoE HBA) - - pci:v00001137d00000045sv00001137sd000000CE* -- ID_MODEL_FROM_DATABASE=VIC 1225T PCIe FCoE HBA -+ ID_MODEL_FROM_DATABASE=VIC FCoE HBA (VIC 1225T PCIe FCoE HBA) - - pci:v00001137d0000004E* - ID_MODEL_FROM_DATABASE=VIC 82 PCIe Upstream Port -@@ -32814,49 +32814,49 @@ pci:v00001148d00004000* - ID_MODEL_FROM_DATABASE=FDDI Adapter - - pci:v00001148d00004000sv00000E11sd0000B03B* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS Fibre SC -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS Fibre SC) - - pci:v00001148d00004000sv00000E11sd0000B03C* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre SC -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre SC) - - pci:v00001148d00004000sv00000E11sd0000B03D* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI DAS UTP -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI DAS UTP) - - pci:v00001148d00004000sv00000E11sd0000B03E* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS UTP -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS UTP) - - pci:v00001148d00004000sv00000E11sd0000B03F* -- ID_MODEL_FROM_DATABASE=Netelligent 100 FDDI SAS Fibre MIC -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (Netelligent 100 FDDI SAS Fibre MIC) - - pci:v00001148d00004000sv00001148sd00005521* -- ID_MODEL_FROM_DATABASE=FDDI SK-5521 (SK-NET FDDI-UP) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5521 (SK-NET FDDI-UP)) - - pci:v00001148d00004000sv00001148sd00005522* -- ID_MODEL_FROM_DATABASE=FDDI SK-5522 (SK-NET FDDI-UP DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5522 (SK-NET FDDI-UP DAS)) - - pci:v00001148d00004000sv00001148sd00005541* -- ID_MODEL_FROM_DATABASE=FDDI SK-5541 (SK-NET FDDI-FP) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5541 (SK-NET FDDI-FP)) - - pci:v00001148d00004000sv00001148sd00005543* -- ID_MODEL_FROM_DATABASE=FDDI SK-5543 (SK-NET FDDI-LP) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5543 (SK-NET FDDI-LP)) - - pci:v00001148d00004000sv00001148sd00005544* -- ID_MODEL_FROM_DATABASE=FDDI SK-5544 (SK-NET FDDI-LP DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5544 (SK-NET FDDI-LP DAS)) - - pci:v00001148d00004000sv00001148sd00005821* -- ID_MODEL_FROM_DATABASE=FDDI SK-5821 (SK-NET FDDI-UP64) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5821 (SK-NET FDDI-UP64)) - - pci:v00001148d00004000sv00001148sd00005822* -- ID_MODEL_FROM_DATABASE=FDDI SK-5822 (SK-NET FDDI-UP64 DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5822 (SK-NET FDDI-UP64 DAS)) - - pci:v00001148d00004000sv00001148sd00005841* -- ID_MODEL_FROM_DATABASE=FDDI SK-5841 (SK-NET FDDI-FP64) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5841 (SK-NET FDDI-FP64)) - - pci:v00001148d00004000sv00001148sd00005843* -- ID_MODEL_FROM_DATABASE=FDDI SK-5843 (SK-NET FDDI-LP64) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5843 (SK-NET FDDI-LP64)) - - pci:v00001148d00004000sv00001148sd00005844* -- ID_MODEL_FROM_DATABASE=FDDI SK-5844 (SK-NET FDDI-LP64 DAS) -+ ID_MODEL_FROM_DATABASE=FDDI Adapter (FDDI SK-5844 (SK-NET FDDI-LP64 DAS)) - - pci:v00001148d00004200* - ID_MODEL_FROM_DATABASE=Token Ring adapter -@@ -32865,115 +32865,115 @@ pci:v00001148d00004300* - ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) - - pci:v00001148d00004300sv00001148sd00009821* -- ID_MODEL_FROM_DATABASE=SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T)) - - pci:v00001148d00004300sv00001148sd00009822* -- ID_MODEL_FROM_DATABASE=SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link)) - - pci:v00001148d00004300sv00001148sd00009841* -- ID_MODEL_FROM_DATABASE=SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX)) - - pci:v00001148d00004300sv00001148sd00009842* -- ID_MODEL_FROM_DATABASE=SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link)) - - pci:v00001148d00004300sv00001148sd00009843* -- ID_MODEL_FROM_DATABASE=SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX)) - - pci:v00001148d00004300sv00001148sd00009844* -- ID_MODEL_FROM_DATABASE=SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link)) - - pci:v00001148d00004300sv00001148sd00009861* -- ID_MODEL_FROM_DATABASE=SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition)) - - pci:v00001148d00004300sv00001148sd00009862* -- ID_MODEL_FROM_DATABASE=SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link)) - - pci:v00001148d00004300sv00001148sd00009871* -- ID_MODEL_FROM_DATABASE=SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX) -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX)) - - pci:v00001148d00004300sv00001148sd00009872* - ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) - - pci:v00001148d00004300sv00001259sd00002970* -- ID_MODEL_FROM_DATABASE=AT-2970SX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002971* -- ID_MODEL_FROM_DATABASE=AT-2970LX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002972* -- ID_MODEL_FROM_DATABASE=AT-2970TX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002973* -- ID_MODEL_FROM_DATABASE=AT-2971SX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971SX Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002974* -- ID_MODEL_FROM_DATABASE=AT-2971T Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2971T Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002975* -- ID_MODEL_FROM_DATABASE=AT-2970SX/2SC Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970SX/2SC Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002976* -- ID_MODEL_FROM_DATABASE=AT-2970LX/2SC Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970LX/2SC Gigabit Ethernet Adapter) - - pci:v00001148d00004300sv00001259sd00002977* -- ID_MODEL_FROM_DATABASE=AT-2970TX/2TX Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link) (AT-2970TX/2TX Gigabit Ethernet Adapter) - - pci:v00001148d00004320* - ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC - - pci:v00001148d00004320sv00001148sd00000121* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8001 Adapter) - - pci:v00001148d00004320sv00001148sd00000221* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8002 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8002 Adapter) - - pci:v00001148d00004320sv00001148sd00000321* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8003 Adapter) - - pci:v00001148d00004320sv00001148sd00000421* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8004 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8004 Adapter) - - pci:v00001148d00004320sv00001148sd00000621* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8006 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8006 Adapter) - - pci:v00001148d00004320sv00001148sd00000721* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8007 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8007 Adapter) - - pci:v00001148d00004320sv00001148sd00000821* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8008 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8008 Adapter) - - pci:v00001148d00004320sv00001148sd00000921* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8009 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8009 Adapter) - - pci:v00001148d00004320sv00001148sd00001121* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8011 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8011 Adapter) - - pci:v00001148d00004320sv00001148sd00001221* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8012 Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (Marvell RDK-8012 Adapter) - - pci:v00001148d00004320sv00001148sd00003221* -- ID_MODEL_FROM_DATABASE=SK-9521 V2.0 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 V2.0 10/100/1000Base-T Adapter) - - pci:v00001148d00004320sv00001148sd00005021* -- ID_MODEL_FROM_DATABASE=SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter) - - pci:v00001148d00004320sv00001148sd00005041* -- ID_MODEL_FROM_DATABASE=SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter) - - pci:v00001148d00004320sv00001148sd00005043* -- ID_MODEL_FROM_DATABASE=SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter) - - pci:v00001148d00004320sv00001148sd00005051* -- ID_MODEL_FROM_DATABASE=SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter) - - pci:v00001148d00004320sv00001148sd00005061* -- ID_MODEL_FROM_DATABASE=SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter) - - pci:v00001148d00004320sv00001148sd00005071* -- ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter) - - pci:v00001148d00004320sv00001148sd00009521* -- ID_MODEL_FROM_DATABASE=SK-9521 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter, PCI64, Fiber ZX/SC (SK-9521 10/100/1000Base-T Adapter) - - pci:v00001148d00004400* - ID_MODEL_FROM_DATABASE=SK-9Dxx Gigabit Ethernet Adapter -@@ -32991,25 +32991,25 @@ pci:v00001148d00009E00* - ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 - - pci:v00001148d00009E00sv00001148sd00002100* -- ID_MODEL_FROM_DATABASE=SK-9E21 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21 Server Adapter) - - pci:v00001148d00009E00sv00001148sd000021D0* -- ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E21D 10/100/1000Base-T Adapter) - - pci:v00001148d00009E00sv00001148sd00002200* -- ID_MODEL_FROM_DATABASE=SK-9E22 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E22 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00008100* -- ID_MODEL_FROM_DATABASE=SK-9E81 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E81 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00008200* -- ID_MODEL_FROM_DATABASE=SK-9E82 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E82 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00009100* -- ID_MODEL_FROM_DATABASE=SK-9E91 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E91 Server Adapter) - - pci:v00001148d00009E00sv00001148sd00009200* -- ID_MODEL_FROM_DATABASE=SK-9E92 Server Adapter -+ ID_MODEL_FROM_DATABASE=SK-9E21D 10/100/1000Base-T Adapter, Copper RJ-45 (SK-9E92 Server Adapter) - - pci:v00001148d00009E01* - ID_MODEL_FROM_DATABASE=SK-9E21M 10/100/1000Base-T Adapter -@@ -33111,16 +33111,16 @@ pci:v0000114Fd0000001D* - ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI - - pci:v0000114Fd0000001Dsv0000114Fsd00000050* -- ID_MODEL_FROM_DATABASE=DataFire RAS E1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS E1 Adapter) - - pci:v0000114Fd0000001Dsv0000114Fsd00000051* -- ID_MODEL_FROM_DATABASE=DataFire RAS Dual E1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual E1 Adapter) - - pci:v0000114Fd0000001Dsv0000114Fsd00000052* -- ID_MODEL_FROM_DATABASE=DataFire RAS T1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS T1 Adapter) - - pci:v0000114Fd0000001Dsv0000114Fsd00000053* -- ID_MODEL_FROM_DATABASE=DataFire RAS Dual T1 Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS T1/E1/PRI (DataFire RAS Dual T1 Adapter) - - pci:v0000114Fd00000023* - ID_MODEL_FROM_DATABASE=AccelePort RAS -@@ -33129,10 +33129,10 @@ pci:v0000114Fd00000024* - ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U - - pci:v0000114Fd00000024sv0000114Fsd00000030* -- ID_MODEL_FROM_DATABASE=DataFire RAS BRI U Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI U Adapter) - - pci:v0000114Fd00000024sv0000114Fsd00000031* -- ID_MODEL_FROM_DATABASE=DataFire RAS BRI S/T Adapter -+ ID_MODEL_FROM_DATABASE=DataFire RAS B4 ST/U (DataFire RAS BRI S/T Adapter) - - pci:v0000114Fd00000026* - ID_MODEL_FROM_DATABASE=AccelePort 4r 920 -@@ -33156,19 +33156,19 @@ pci:v0000114Fd00000040* - ID_MODEL_FROM_DATABASE=AccelePort Xp - - pci:v0000114Fd00000040sv0000114Fsd00000042* -- ID_MODEL_FROM_DATABASE=AccelePort 2p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 2p PCI) - - pci:v0000114Fd00000040sv0000114Fsd00000043* -- ID_MODEL_FROM_DATABASE=AccelePort 4p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 4p PCI) - - pci:v0000114Fd00000040sv0000114Fsd00000044* -- ID_MODEL_FROM_DATABASE=AccelePort 8p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 8p PCI) - - pci:v0000114Fd00000040sv0000114Fsd00000045* -- ID_MODEL_FROM_DATABASE=AccelePort 16p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 16p PCI) - - pci:v0000114Fd00000040sv0000114Fsd0000004E* -- ID_MODEL_FROM_DATABASE=AccelePort 32p PCI -+ ID_MODEL_FROM_DATABASE=AccelePort Xp (AccelePort 32p PCI) - - pci:v0000114Fd00000042* - ID_MODEL_FROM_DATABASE=AccelePort 2p -@@ -33300,22 +33300,22 @@ pci:v0000115Dd00000003* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000003sv00001014sd00000181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv00001014sd00001181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv00001014sd00008181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv00001014sd00009181* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000003sv0000115Dsd00000181* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000003sv0000115Dsd00000182* -- ID_MODEL_FROM_DATABASE=RealPort2 CardBus Ethernet 10/100 (R2BE-100) -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (RealPort2 CardBus Ethernet 10/100 (R2BE-100)) - - pci:v0000115Dd00000003sv0000115Dsd00001181* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33324,19 +33324,19 @@ pci:v0000115Dd00000003sv00001179sd00000181* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000003sv00008086sd00008181* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) - - pci:v0000115Dd00000003sv00008086sd00009181* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Mobile CardBus 32 Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (EtherExpress PRO/100 Mobile CardBus 32 Adapter) - - pci:v0000115Dd00000005* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000005sv00001014sd00000182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000005sv00001014sd00001182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000005sv0000115Dsd00000182* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33348,10 +33348,10 @@ pci:v0000115Dd00000007* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd00000007sv00001014sd00000182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000007sv00001014sd00001182* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd00000007sv0000115Dsd00000182* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33363,7 +33363,7 @@ pci:v0000115Dd0000000B* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd0000000Bsv00001014sd00000183* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd0000000Bsv0000115Dsd00000183* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33375,7 +33375,7 @@ pci:v0000115Dd0000000F* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 - - pci:v0000115Dd0000000Fsv00001014sd00000183* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 (10/100 EtherJet Cardbus Adapter) - - pci:v0000115Dd0000000Fsv0000115Dsd00000183* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet 10/100 -@@ -33387,22 +33387,22 @@ pci:v0000115Dd00000101* - ID_MODEL_FROM_DATABASE=Cardbus 56k modem - - pci:v0000115Dd00000101sv0000115Dsd00001081* -- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus 56k modem (Cardbus 56k Modem) - - pci:v0000115Dd00000103* - ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem - - pci:v0000115Dd00000103sv00001014sd00009181* -- ID_MODEL_FROM_DATABASE=Cardbus 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus 56k Modem) - - pci:v0000115Dd00000103sv00001115sd00001181* -- ID_MODEL_FROM_DATABASE=Cardbus Ethernet 100 + 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (Cardbus Ethernet 100 + 56k Modem) - - pci:v0000115Dd00000103sv0000115Dsd00001181* -- ID_MODEL_FROM_DATABASE=CBEM56G-100 Ethernet + 56k Modem -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (CBEM56G-100 Ethernet + 56k Modem) - - pci:v0000115Dd00000103sv00008086sd00009181* -- ID_MODEL_FROM_DATABASE=PRO/100 LAN + Modem56 CardBus -+ ID_MODEL_FROM_DATABASE=Cardbus Ethernet + 56k Modem (PRO/100 LAN + Modem56 CardBus) - - pci:v0000115E* - ID_VENDOR_FROM_DATABASE=Peer Protocols Inc -@@ -33429,7 +33429,7 @@ pci:v00001163d00002000* - ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 - - pci:v00001163d00002000sv00001092sd00002000* -- ID_MODEL_FROM_DATABASE=Stealth II S220 -+ ID_MODEL_FROM_DATABASE=Verite V2000/V2100/V2200 (Stealth II S220) - - pci:v00001164* - ID_VENDOR_FROM_DATABASE=Advanced Peripherals Technologies -@@ -33510,7 +33510,7 @@ pci:v00001166d00000132* - ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge - - pci:v00001166d00000132sv00001166sd00000132* -- ID_MODEL_FROM_DATABASE=HT2000 PCI-Express bridge -+ ID_MODEL_FROM_DATABASE=BCM5780 [HT2000] PCI-Express Bridge (HT2000 PCI-Express bridge) - - pci:v00001166d00000140* - ID_MODEL_FROM_DATABASE=HT2100 PCI-Express Bridge -@@ -33531,13 +33531,13 @@ pci:v00001166d00000201* - ID_MODEL_FROM_DATABASE=CSB5 South Bridge - - pci:v00001166d00000201sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=CSB5 South Bridge (CT8 mainboard) - - pci:v00001166d00000203* - ID_MODEL_FROM_DATABASE=CSB6 South Bridge - - pci:v00001166d00000203sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series -+ ID_MODEL_FROM_DATABASE=CSB6 South Bridge (PRIMERGY RX/TX series) - - pci:v00001166d00000205* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] Legacy South Bridge -@@ -33549,37 +33549,37 @@ pci:v00001166d00000212* - ID_MODEL_FROM_DATABASE=CSB5 IDE Controller - - pci:v00001166d00000212sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1750) - - pci:v00001166d00000212sv00001028sd0000810B* -- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 -+ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (PowerEdge 1650/2550) - - pci:v00001166d00000212sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=CSB5 IDE Controller (CT8 mainboard) - - pci:v00001166d00000213* - ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller - - pci:v00001166d00000213sv00001028sd00004134* -- ID_MODEL_FROM_DATABASE=PowerEdge 600SC -+ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PowerEdge 600SC) - - pci:v00001166d00000213sv00001028sd0000C134* -- ID_MODEL_FROM_DATABASE=Poweredge SC600 -+ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (Poweredge SC600) - - pci:v00001166d00000213sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard IDE -+ ID_MODEL_FROM_DATABASE=CSB6 RAID/IDE Controller (PRIMERGY RX/TX series onboard IDE) - - pci:v00001166d00000214* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE - - pci:v00001166d00000214sv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 IDE -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] IDE (PowerEdge 2970 HT1000 IDE) - - pci:v00001166d00000217* - ID_MODEL_FROM_DATABASE=CSB6 IDE Controller - - pci:v00001166d00000217sv00001028sd00004134* -- ID_MODEL_FROM_DATABASE=Poweredge SC600 -+ ID_MODEL_FROM_DATABASE=CSB6 IDE Controller (Poweredge SC600) - - pci:v00001166d0000021B* - ID_MODEL_FROM_DATABASE=HT1100 HD Audio -@@ -33588,22 +33588,22 @@ pci:v00001166d00000220* - ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller - - pci:v00001166d00000220sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=OSB4/CSB5 OHCI USB Controller (CT8 mainboard) - - pci:v00001166d00000221* - ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller - - pci:v00001166d00000221sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard OHCI -+ ID_MODEL_FROM_DATABASE=CSB6 OHCI USB Controller (PRIMERGY RX/TX series onboard OHCI) - - pci:v00001166d00000223* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB - - pci:v00001166d00000223sv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 USB Controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge 2970 HT1000 USB Controller) - - pci:v00001166d00000223sv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 USB Controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] USB (PowerEdge T605 HT1000 USB Controller) - - pci:v00001166d00000225* - ID_MODEL_FROM_DATABASE=CSB5 LPC bridge -@@ -33612,22 +33612,22 @@ pci:v00001166d00000227* - ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge - - pci:v00001166d00000227sv00001734sd00001012* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series -+ ID_MODEL_FROM_DATABASE=GCLE-2 Host Bridge (PRIMERGY RX/TX series) - - pci:v00001166d00000230* - ID_MODEL_FROM_DATABASE=CSB5 LPC bridge - - pci:v00001166d00000230sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=CSB5 LPC bridge (CT8 mainboard) - - pci:v00001166d00000234* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC - - pci:v00001166d00000234sv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 LPC -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge 2970 HT1000 LPC) - - pci:v00001166d00000234sv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 HT1000 LPC -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] LPC (PowerEdge T605 HT1000 LPC) - - pci:v00001166d00000235* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] XIOAPIC0-2 -@@ -33648,13 +33648,13 @@ pci:v00001166d0000024A* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) - - pci:v00001166d0000024Asv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (Native SATA Mode) (PowerEdge T605 onboard SATA Controller) - - pci:v00001166d0000024B* - ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) - - pci:v00001166d0000024Bsv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 HT1000 SATA controller -+ ID_MODEL_FROM_DATABASE=BCM5785 [HT1000] SATA (PATA/IDE Mode) (PowerEdge 2970 HT1000 SATA controller) - - pci:v00001166d00000406* - ID_MODEL_FROM_DATABASE=HT1100 PCI-X Bridge -@@ -33666,7 +33666,7 @@ pci:v00001166d0000040A* - ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge - - pci:v00001166d0000040Asv00001028sd00000223* -- ID_MODEL_FROM_DATABASE=PowerEdge R905 HT1100 ISA-LPC Bridge -+ ID_MODEL_FROM_DATABASE=HT1100 ISA-LPC Bridge (PowerEdge R905 HT1100 ISA-LPC Bridge) - - pci:v00001166d00000410* - ID_MODEL_FROM_DATABASE=HT1100 SATA Controller (Native SATA Mode) -@@ -33783,7 +33783,7 @@ pci:v00001179d00000601* - ID_MODEL_FROM_DATABASE=CPU to PCI bridge - - pci:v00001179d00000601sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite Pro -+ ID_MODEL_FROM_DATABASE=CPU to PCI bridge (Satellite Pro) - - pci:v00001179d00000602* - ID_MODEL_FROM_DATABASE=PCI to ISA bridge -@@ -33798,13 +33798,13 @@ pci:v00001179d0000060A* - ID_MODEL_FROM_DATABASE=ToPIC95 - - pci:v00001179d0000060Asv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite Pro -+ ID_MODEL_FROM_DATABASE=ToPIC95 (Satellite Pro) - - pci:v00001179d0000060F* - ID_MODEL_FROM_DATABASE=ToPIC97 - - pci:v00001179d0000060Fsv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite 4010 -+ ID_MODEL_FROM_DATABASE=ToPIC97 (Satellite 4010) - - pci:v00001179d00000617* - ID_MODEL_FROM_DATABASE=ToPIC100 PCI to Cardbus Bridge with ZV Support -@@ -33846,16 +33846,16 @@ pci:v0000117Cd00000030* - ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter - - pci:v0000117Cd00000030sv0000117Csd00008013* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL4D -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4D) - - pci:v0000117Cd00000030sv0000117Csd00008014* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL4S -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL4S) - - pci:v0000117Cd00000030sv0000117Csd00008027* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D) - - pci:v0000117Cd00000030sv0000117Csd0000802F* -- ID_MODEL_FROM_DATABASE=ExpressPCI UL5D Low Profile -+ ID_MODEL_FROM_DATABASE=Ultra320 SCSI Host Adapter (ExpressPCI UL5D Low Profile) - - pci:v0000117Cd00000033* - ID_MODEL_FROM_DATABASE=SAS Adapter -@@ -33882,67 +33882,67 @@ pci:v00001180d00000475* - ID_MODEL_FROM_DATABASE=RL5c475 - - pci:v00001180d00000475sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 CardBus bridge -+ ID_MODEL_FROM_DATABASE=RL5c475 (vpr Matrix 170B4 CardBus bridge) - - pci:v00001180d00000476* - ID_MODEL_FROM_DATABASE=RL5c476 II - - pci:v00001180d00000476sv00001014sd00000185* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad A/T/X Series) - - pci:v00001180d00000476sv00001014sd0000056C* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad Z60t) - - pci:v00001180d00000476sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Latitude X300 laptop) - - pci:v00001180d00000476sv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Inspiron 6000 laptop) - - pci:v00001180d00000476sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6710b) - - pci:v00001180d00000476sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Compaq 6910p) - - pci:v00001180d00000476sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (A6J-Q008) - - pci:v00001180d00000476sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=RL5c476 II (V6800V) - - pci:v00001180d00000476sv00001043sd00001987* -- ID_MODEL_FROM_DATABASE=Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines ) -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Asus A4K and Z81K notebooks, possibly others ( mid-2005 machines )) - - pci:v00001180d00000476sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Vaio PCG-FX403) - - pci:v00001180d00000476sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00001180d00000476sv0000104Dsd0000814E* -- ID_MODEL_FROM_DATABASE=VAIO GRZ390Z -+ ID_MODEL_FROM_DATABASE=RL5c476 II (VAIO GRZ390Z) - - pci:v00001180d00000476sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (Panasonic CF-Y5 laptop) - - pci:v00001180d00000476sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=RL5c476 II (X10 Laptop) - - pci:v00001180d00000476sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=RL5c476 II (P30/P35 notebook) - - pci:v00001180d00000476sv000014EFsd00000220* -- ID_MODEL_FROM_DATABASE=PCD-RP-220S -+ ID_MODEL_FROM_DATABASE=RL5c476 II (PCD-RP-220S) - - pci:v00001180d00000476sv000017AAsd0000201C* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad X60/X60s) - - pci:v00001180d00000476sv000017AAsd000020C4* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad T61) - - pci:v00001180d00000476sv000017AAsd000020C6* -- ID_MODEL_FROM_DATABASE=ThinkPad R61 -+ ID_MODEL_FROM_DATABASE=RL5c476 II (ThinkPad R61) - - pci:v00001180d00000477* - ID_MODEL_FROM_DATABASE=RL5c477 -@@ -33951,7 +33951,7 @@ pci:v00001180d00000478* - ID_MODEL_FROM_DATABASE=RL5c478 - - pci:v00001180d00000478sv00001014sd00000184* -- ID_MODEL_FROM_DATABASE=ThinkPad A30p -+ ID_MODEL_FROM_DATABASE=RL5c478 (ThinkPad A30p) - - pci:v00001180d00000511* - ID_MODEL_FROM_DATABASE=R5C511 -@@ -33960,43 +33960,43 @@ pci:v00001180d00000522* - ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller - - pci:v00001180d00000522sv00001014sd000001CF* -- ID_MODEL_FROM_DATABASE=ThinkPad A30p -+ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (ThinkPad A30p) - - pci:v00001180d00000522sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=R5C522 IEEE 1394 Controller (V6800V) - - pci:v00001180d00000551* - ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller - - pci:v00001180d00000551sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=R5C551 IEEE 1394 Controller (vpr Matrix 170B4) - - pci:v00001180d00000552* - ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller - - pci:v00001180d00000552sv00001014sd00000511* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad A/T/X Series) - - pci:v00001180d00000552sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Latitude X300 laptop) - - pci:v00001180d00000552sv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (Inspiron 6000 laptop) - - pci:v00001180d00000552sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (A6J-Q008) - - pci:v00001180d00000552sv00001043sd00001757* -- ID_MODEL_FROM_DATABASE=M2400N laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (M2400N laptop) - - pci:v00001180d00000552sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (X10 Laptop) - - pci:v00001180d00000552sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (P30/P35 notebook) - - pci:v00001180d00000552sv000017AAsd0000201E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=R5C552 IEEE 1394 Controller (ThinkPad X60/X60s) - - pci:v00001180d00000554* - ID_MODEL_FROM_DATABASE=R5C554 -@@ -34011,37 +34011,37 @@ pci:v00001180d00000592* - ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter - - pci:v00001180d00000592sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Aspire 5920G) - - pci:v00001180d00000592sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (XPS M1210) - - pci:v00001180d00000592sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Inspiron 1420) - - pci:v00001180d00000592sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V3242AU) - - pci:v00001180d00000592sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Presario V6133CL) - - pci:v00001180d00000592sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv6700) - - pci:v00001180d00000592sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (Pavilion dv9668eg Laptop) - - pci:v00001180d00000592sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (A6J-Q008) - - pci:v00001180d00000592sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (V6800V) - - pci:v00001180d00000592sv0000144Dsd0000C018* -- ID_MODEL_FROM_DATABASE=X20 IV -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (X20 IV) - - pci:v00001180d00000592sv000017AAsd000020CA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=R5C592 Memory Stick Bus Host Adapter (ThinkPad T61) - - pci:v00001180d00000811* - ID_MODEL_FROM_DATABASE=R5C811 -@@ -34050,94 +34050,94 @@ pci:v00001180d00000822* - ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter - - pci:v00001180d00000822sv00001014sd00000556* -- ID_MODEL_FROM_DATABASE=ThinkPad X60s / Z60t -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60s / Z60t) - - pci:v00001180d00000822sv00001014sd00000598* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60m -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad Z60m) - - pci:v00001180d00000822sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Aspire 5920G) - - pci:v00001180d00000822sv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 6000 laptop) - - pci:v00001180d00000822sv00001028sd000001A2* -- ID_MODEL_FROM_DATABASE=Inspiron 9200 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 9200) - - pci:v00001180d00000822sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (XPS M1210) - - pci:v00001180d00000822sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Inspiron 1420) - - pci:v00001180d00000822sv0000103Csd000003B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V3242AU) - - pci:v00001180d00000822sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Presario V6133CL) - - pci:v00001180d00000822sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Compaq 6910p) - - pci:v00001180d00000822sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv6700) - - pci:v00001180d00000822sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Pavilion dv9668eg Laptop) - - pci:v00001180d00000822sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (A6J-Q008) - - pci:v00001180d00000822sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=ASUS V6800V -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ASUS V6800V) - - pci:v00001180d00000822sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (Panasonic CF-Y5 laptop) - - pci:v00001180d00000822sv0000144Dsd0000C018* -- ID_MODEL_FROM_DATABASE=X20 IV -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (X20 IV) - - pci:v00001180d00000822sv000017AAsd0000201D* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad X60/X60s) - - pci:v00001180d00000822sv000017AAsd000020C7* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad T61) - - pci:v00001180d00000822sv000017AAsd000020C8* -- ID_MODEL_FROM_DATABASE=ThinkPad W500 -+ ID_MODEL_FROM_DATABASE=R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (ThinkPad W500) - - pci:v00001180d00000832* - ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller - - pci:v00001180d00000832sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Aspire 5920G) - - pci:v00001180d00000832sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (XPS M1210) - - pci:v00001180d00000832sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Inspiron 1420) - - pci:v00001180d00000832sv00001028sd0000024D* -- ID_MODEL_FROM_DATABASE=Latitude E4300 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Latitude E4300) - - pci:v00001180d00000832sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V3242AU) - - pci:v00001180d00000832sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Presario V6133CL) - - pci:v00001180d00000832sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Compaq 6910p) - - pci:v00001180d00000832sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv6700) - - pci:v00001180d00000832sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (Pavilion dv9668eg Laptop) - - pci:v00001180d00000832sv000017AAsd000020C7* -- ID_MODEL_FROM_DATABASE=ThinkPad R61 -+ ID_MODEL_FROM_DATABASE=R5C832 IEEE 1394 Controller (ThinkPad R61) - - pci:v00001180d00000841* - ID_MODEL_FROM_DATABASE=R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394 -@@ -34146,58 +34146,58 @@ pci:v00001180d00000843* - ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller - - pci:v00001180d00000843sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Aspire 5920G) - - pci:v00001180d00000843sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (XPS M1210) - - pci:v00001180d00000843sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Inspiron 1420) - - pci:v00001180d00000843sv00001028sd000001F5* -- ID_MODEL_FROM_DATABASE=Dell Inspiron 1501 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Inspiron 1501) - - pci:v00001180d00000843sv00001028sd0000024F* -- ID_MODEL_FROM_DATABASE=Dell Latitude e6500 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Dell Latitude e6500) - - pci:v00001180d00000843sv0000103Csd000003B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V3242AU) - - pci:v00001180d00000843sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Presario V6133CL) - - pci:v00001180d00000843sv00001183sd00000843* -- ID_MODEL_FROM_DATABASE=Alienware Aurora m9700 -+ ID_MODEL_FROM_DATABASE=R5C843 MMC Host Controller (Alienware Aurora m9700) - - pci:v00001180d00000852* - ID_MODEL_FROM_DATABASE=xD-Picture Card Controller - - pci:v00001180d00000852sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Aspire 5920G) - - pci:v00001180d00000852sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Inspiron 1420) - - pci:v00001180d00000852sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V3242AU) - - pci:v00001180d00000852sv0000103Csd000030B7* -- ID_MODEL_FROM_DATABASE=Presario V6133CL -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Presario V6133CL) - - pci:v00001180d00000852sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv6700) - - pci:v00001180d00000852sv0000103Csd000030CF* -- ID_MODEL_FROM_DATABASE=Pavilion dv9668eg Laptop -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion dv9668eg Laptop) - - pci:v00001180d00000852sv00001043sd00001967* -- ID_MODEL_FROM_DATABASE=V6800V -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (V6800V) - - pci:v00001180d00000852sv00001180sd00000852* -- ID_MODEL_FROM_DATABASE=Pavilion 2410us -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (Pavilion 2410us) - - pci:v00001180d00000852sv00001324sd000010CF* -- ID_MODEL_FROM_DATABASE=P7120 -+ ID_MODEL_FROM_DATABASE=xD-Picture Card Controller (P7120) - - pci:v00001180d0000E230* - ID_MODEL_FROM_DATABASE=R5U2xx (R5U230 / R5U231 / R5U241) [Memory Stick Host Controller] -@@ -34206,19 +34206,19 @@ pci:v00001180d0000E476* - ID_MODEL_FROM_DATABASE=CardBus bridge - - pci:v00001180d0000E476sv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6410) - - pci:v00001180d0000E476sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=CardBus bridge (Latitude E6510) - - pci:v00001180d0000E822* - ID_MODEL_FROM_DATABASE=MMC/SD Host Controller - - pci:v00001180d0000E822sv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6410) - - pci:v00001180d0000E822sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=MMC/SD Host Controller (Latitude E6510) - - pci:v00001180d0000E823* - ID_MODEL_FROM_DATABASE=PCIe SDXC/MMC Host Controller -@@ -34227,10 +34227,10 @@ pci:v00001180d0000E832* - ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller - - pci:v00001180d0000E832sv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6410) - - pci:v00001180d0000E832sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=R5C832 PCIe IEEE 1394 Controller (Latitude E6510) - - pci:v00001180d0000E852* - ID_MODEL_FROM_DATABASE=PCIe xD-Picture Card Controller -@@ -34254,10 +34254,10 @@ pci:v00001186d00001002* - ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet - - pci:v00001186d00001002sv00001186sd00001002* -- ID_MODEL_FROM_DATABASE=DFE-550TX/FX -+ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-550TX/FX) - - pci:v00001186d00001002sv00001186sd00001012* -- ID_MODEL_FROM_DATABASE=DFE-580TX -+ ID_MODEL_FROM_DATABASE=DL10050 Sundance Ethernet (DFE-580TX) - - pci:v00001186d00001025* - ID_MODEL_FROM_DATABASE=AirPlus Xtreme G DWL-G650 Adapter -@@ -34272,13 +34272,13 @@ pci:v00001186d00001300* - ID_MODEL_FROM_DATABASE=RTL8139 Ethernet - - pci:v00001186d00001300sv00001186sd00001300* -- ID_MODEL_FROM_DATABASE=DFE-538TX 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-538TX 10/100 Ethernet Adapter) - - pci:v00001186d00001300sv00001186sd00001301* -- ID_MODEL_FROM_DATABASE=DFE-530TX+ 10/100 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-530TX+ 10/100 Ethernet Adapter) - - pci:v00001186d00001300sv00001186sd00001303* -- ID_MODEL_FROM_DATABASE=DFE-528TX 10/100 Fast Ethernet PCI Adapter -+ ID_MODEL_FROM_DATABASE=RTL8139 Ethernet (DFE-528TX 10/100 Fast Ethernet PCI Adapter) - - pci:v00001186d00001340* - ID_MODEL_FROM_DATABASE=DFE-690TXD CardBus PC Card -@@ -34296,10 +34296,10 @@ pci:v00001186d00003300* - ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] - - pci:v00001186d00003300sv00001186sd00003300* -- ID_MODEL_FROM_DATABASE=DWL-610 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-610 Wireless Cardbus Adapter) - - pci:v00001186d00003300sv00001186sd00003301* -- ID_MODEL_FROM_DATABASE=DWL-510 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=DWL-510 / DWL-610 802.11b [Realtek RTL8180L] (DWL-510 Wireless PCI Adapter) - - pci:v00001186d00003A10* - ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter(rev.B) -@@ -34317,7 +34317,7 @@ pci:v00001186d00004300* - ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter - - pci:v00001186d00004300sv00001186sd00004B10* -- ID_MODEL_FROM_DATABASE=DGE-560T PCI Express (x1) Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=DGE-528T Gigabit Ethernet Adapter (DGE-560T PCI Express (x1) Gigabit Ethernet Adapter) - - pci:v00001186d00004302* - ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter (rev.C1) [Realtek RTL8169] -@@ -34338,7 +34338,7 @@ pci:v00001186d00004C00* - ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter - - pci:v00001186d00004C00sv00001186sd00004C00* -- ID_MODEL_FROM_DATABASE=DGE-530T Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (DGE-530T Gigabit Ethernet Adapter) - - pci:v00001186d00008400* - ID_MODEL_FROM_DATABASE=D-Link DWL-650+ CardBus PC Card -@@ -34620,7 +34620,7 @@ pci:v000011ABd00001FA6* - ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter - - pci:v000011ABd00001FA6sv00001186sd00003B08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1) -+ ID_MODEL_FROM_DATABASE=Marvell W8300 802.11 Adapter (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.A1)) - - pci:v000011ABd00001FA7* - ID_MODEL_FROM_DATABASE=88W8310 and 88W8000G [Libertas] 802.11g client chipset -@@ -34629,13 +34629,13 @@ pci:v000011ABd00001FAA* - ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless - - pci:v000011ABd00001FAAsv00001385sd00004E00* -- ID_MODEL_FROM_DATABASE=WG511v2 54 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG511v2 54 Mbps Wireless PC Card) - - pci:v000011ABd00001FAAsv00001385sd00006B00* -- ID_MODEL_FROM_DATABASE=WG311v3 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WG311v3 802.11g Wireless PCI Adapter) - - pci:v000011ABd00001FAAsv00001737sd00000040* -- ID_MODEL_FROM_DATABASE=WPC54G v5 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=88w8335 [Libertas] 802.11b/g Wireless (WPC54G v5 802.11g Wireless-G Notebook Adapter) - - pci:v000011ABd00002211* - ID_MODEL_FROM_DATABASE=88SB2211 PCI Express to PCI Bridge -@@ -34647,19 +34647,19 @@ pci:v000011ABd00002A02* - ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless - - pci:v000011ABd00002A02sv000007D1sd00003B02* -- ID_MODEL_FROM_DATABASE=DIR-615 rev. A1 Mini PCI Wireless Module -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (DIR-615 rev. A1 Mini PCI Wireless Module) - - pci:v000011ABd00002A02sv00001385sd00007C00* -- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless PC Card) - - pci:v000011ABd00002A02sv00001385sd00007C01* -- ID_MODEL_FROM_DATABASE=WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter) - - pci:v000011ABd00002A02sv00001385sd00007E00* -- ID_MODEL_FROM_DATABASE=WN311T RangeMax Next 300 Mbps Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (WN311T RangeMax Next 300 Mbps Wireless PCI Adapter) - - pci:v000011ABd00002A02sv00001799sd0000801B* -- ID_MODEL_FROM_DATABASE=F5D8011 v2 802.11n N1 Wireless Notebook Card -+ ID_MODEL_FROM_DATABASE=88W8361 [TopDog] 802.11n Wireless (F5D8011 v2 802.11n N1 Wireless Notebook Card) - - pci:v000011ABd00002A08* - ID_MODEL_FROM_DATABASE=88W8362e [TopDog] 802.11a/b/g/n Wireless -@@ -34701,58 +34701,58 @@ pci:v000011ABd00004320* - ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller - - pci:v000011ABd00004320sv00001019sd00000F38* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) - - pci:v000011ABd00004320sv00001019sd00008001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (ECS) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (ECS)) - - pci:v000011ABd00004320sv00001043sd0000173C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004320sv00001043sd0000811A* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004320sv0000105Bsd00000C19* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Foxconn) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Foxconn)) - - pci:v000011ABd00004320sv000010B8sd0000B452* -- ID_MODEL_FROM_DATABASE=EZ Card 1000 (SMC9452TXV.2) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (EZ Card 1000 (SMC9452TXV.2)) - - pci:v000011ABd00004320sv000011ABsd00000121* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8001 -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8001) - - pci:v000011ABd00004320sv000011ABsd00000321* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8003 -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8003) - - pci:v000011ABd00004320sv000011ABsd00001021* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8010 -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell RDK-8010) - - pci:v000011ABd00004320sv000011ABsd00004320* -- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Baset-T Constroller (Asus)) - - pci:v000011ABd00004320sv000011ABsd00005021* -- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit)) - - pci:v000011ABd00004320sv000011ABsd00009521* -- ID_MODEL_FROM_DATABASE=Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit)) - - pci:v000011ABd00004320sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte)) - - pci:v000011ABd00004320sv0000147Bsd00001406* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Abit) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Abit)) - - pci:v000011ABd00004320sv000015D4sd00000047* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Iwill) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Iwill)) - - pci:v000011ABd00004320sv00001695sd00009025* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Epox) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Epox)) - - pci:v000011ABd00004320sv000017F2sd00001C03* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Albatron) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Albatron)) - - pci:v000011ABd00004320sv0000270Fsd00002803* -- ID_MODEL_FROM_DATABASE=Marvell 88E8001 Gigabit Ethernet Controller (Chaintech) -+ ID_MODEL_FROM_DATABASE=88E8001 Gigabit Ethernet Controller (Marvell 88E8001 Gigabit Ethernet Controller (Chaintech)) - - pci:v000011ABd00004340* - ID_MODEL_FROM_DATABASE=88E8021 PCI-X IPMI Gigabit Ethernet Controller -@@ -34779,115 +34779,115 @@ pci:v000011ABd00004347* - ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller - - pci:v000011ABd00004347sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 PrAMC Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=88E8062 PCI-E IPMI Gigabit Ethernet Controller (Telum ASLP10 PrAMC Gigabit Ethernet) - - pci:v000011ABd00004350* - ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004350sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (Toshiba) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (Toshiba)) - - pci:v000011ABd00004350sv000011ABsd00003521* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8035 -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell RDK-8035) - - pci:v000011ABd00004350sv00001854sd0000000D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000000E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000000F* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000011* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000012* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000016* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000017* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000018* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000019* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000001C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd0000001E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004350sv00001854sd00000020* -- ID_MODEL_FROM_DATABASE=Marvell 88E8035 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8035 PCI-E Fast Ethernet Controller (Marvell 88E8035 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351* - ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004351sv0000107Bsd00004009* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Wistron) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Wistron)) - - pci:v000011ABd00004351sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Panasonic) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Panasonic)) - - pci:v000011ABd00004351sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Toshiba) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Toshiba)) - - pci:v000011ABd00004351sv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Compal) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Compal)) - - pci:v000011ABd00004351sv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Inventec) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Inventec)) - - pci:v000011ABd00004351sv000011ABsd00003621* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8036 -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell RDK-8036) - - pci:v000011ABd00004351sv000013D1sd0000AC12* -- ID_MODEL_FROM_DATABASE=Abocom EFE3K - 10/100 Ethernet Expresscard -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Abocom EFE3K - 10/100 Ethernet Expresscard) - - pci:v000011ABd00004351sv0000161Fsd0000203D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (Arima) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (Arima)) - - pci:v000011ABd00004351sv00001854sd0000000D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000000E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000000F* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000011* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000012* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000016* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000017* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000018* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000019* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000001C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd0000001E* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004351sv00001854sd00000020* -- ID_MODEL_FROM_DATABASE=Marvell 88E8036 Fast Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8036 PCI-E Fast Ethernet Controller (Marvell 88E8036 Fast Ethernet Controller (LGE)) - - pci:v000011ABd00004352* - ID_MODEL_FROM_DATABASE=88E8038 PCI-E Fast Ethernet Controller -@@ -34896,19 +34896,19 @@ pci:v000011ABd00004353* - ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004353sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=88E8039 PCI-E Fast Ethernet Controller (VAIO VGN-NR120E) - - pci:v000011ABd00004354* - ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller - - pci:v000011ABd00004354sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) - - pci:v000011ABd00004355* - ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller - - pci:v000011ABd00004355sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=88E8040T PCI-E Fast Ethernet Controller (Satellite P305D-S8995E) - - pci:v000011ABd00004356* - ID_MODEL_FROM_DATABASE=88EC033 PCI-E Fast Ethernet Controller -@@ -34923,163 +34923,163 @@ pci:v000011ABd00004360* - ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller - - pci:v000011ABd00004360sv00001043sd00008134* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004360sv0000107Bsd00004009* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Wistron) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Wistron)) - - pci:v000011ABd00004360sv000011ABsd00005221* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8052 -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell RDK-8052) - - pci:v000011ABd00004360sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte)) - - pci:v000011ABd00004360sv00001462sd0000052C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (MSI) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (MSI)) - - pci:v000011ABd00004360sv00001849sd00008052* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (ASRock) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (ASRock)) - - pci:v000011ABd00004360sv0000A0A0sd00000509* -- ID_MODEL_FROM_DATABASE=Marvell 88E8052 Gigabit Ethernet Controller (Aopen) -+ ID_MODEL_FROM_DATABASE=88E8052 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8052 Gigabit Ethernet Controller (Aopen)) - - pci:v000011ABd00004361* - ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller - - pci:v000011ABd00004361sv0000107Bsd00003015* -- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Gateway) -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Gateway)) - - pci:v000011ABd00004361sv000011ABsd00005021* -- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) - - pci:v000011ABd00004361sv00008086sd00003063* -- ID_MODEL_FROM_DATABASE=D925XCVLK mainboard -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (D925XCVLK mainboard) - - pci:v000011ABd00004361sv00008086sd00003439* -- ID_MODEL_FROM_DATABASE=Marvell 88E8050 Gigabit Ethernet Controller (Intel) -+ ID_MODEL_FROM_DATABASE=88E8050 PCI-E ASF Gigabit Ethernet Controller (Marvell 88E8050 Gigabit Ethernet Controller (Intel)) - - pci:v000011ABd00004362* - ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller - - pci:v000011ABd00004362sv0000103Csd00002A0D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Asus) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Asus)) - - pci:v000011ABd00004362sv00001043sd00008142* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet controller PCIe (Asus)) - - pci:v000011ABd00004362sv0000109Fsd00003197* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Trigem) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Trigem)) - - pci:v000011ABd00004362sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Panasonic) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Panasonic)) - - pci:v000011ABd00004362sv000010FDsd0000A430* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (SOYO) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (SOYO)) - - pci:v000011ABd00004362sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Toshiba) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Toshiba)) - - pci:v000011ABd00004362sv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) - - pci:v000011ABd00004362sv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Inventec) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Inventec)) - - pci:v000011ABd00004362sv000011ABsd00005321* -- ID_MODEL_FROM_DATABASE=Marvell RDK-8053 -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell RDK-8053) - - pci:v000011ABd00004362sv00001297sd0000C240* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C241* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C242* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C243* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv00001297sd0000C244* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Shuttle) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)) - - pci:v000011ABd00004362sv000013D1sd0000AC11* -- ID_MODEL_FROM_DATABASE=EGE5K - Giga Ethernet Expresscard -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (EGE5K - Giga Ethernet Expresscard) - - pci:v000011ABd00004362sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte)) - - pci:v000011ABd00004362sv00001462sd0000058C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (MSI) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (MSI)) - - pci:v000011ABd00004362sv000014C0sd00000012* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Compal) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Compal)) - - pci:v000011ABd00004362sv00001558sd000004A0* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Clevo) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Clevo)) - - pci:v000011ABd00004362sv000015BDsd00001003* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (DFI) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (DFI)) - - pci:v000011ABd00004362sv0000161Fsd0000203C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) - - pci:v000011ABd00004362sv0000161Fsd0000203D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Arima) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Arima)) - - pci:v000011ABd00004362sv00001695sd00009029* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Epox) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Epox)) - - pci:v000011ABd00004362sv000017F2sd00002C08* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Albatron) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Albatron)) - - pci:v000011ABd00004362sv000017FFsd00000585* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Quanta) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Quanta)) - - pci:v000011ABd00004362sv00001849sd00008053* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (ASRock) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (ASRock)) - - pci:v000011ABd00004362sv00001854sd0000000B* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000000C* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000010* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000013* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000014* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000015* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001A* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001B* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001D* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd0000001F* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000021* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv00001854sd00000022* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (LGE) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (LGE)) - - pci:v000011ABd00004362sv0000270Fsd00002801* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Chaintech) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Chaintech)) - - pci:v000011ABd00004362sv0000A0A0sd00000506* -- ID_MODEL_FROM_DATABASE=Marvell 88E8053 Gigabit Ethernet Controller (Aopen) -+ ID_MODEL_FROM_DATABASE=88E8053 PCI-E Gigabit Ethernet Controller (Marvell 88E8053 Gigabit Ethernet Controller (Aopen)) - - pci:v000011ABd00004363* - ID_MODEL_FROM_DATABASE=88E8055 PCI-E Gigabit Ethernet Controller -@@ -35088,10 +35088,10 @@ pci:v000011ABd00004364* - ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller - - pci:v000011ABd00004364sv00001043sd000081F8* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (Motherboard) - - pci:v000011ABd00004364sv000011BAsd000000BA* -- ID_MODEL_FROM_DATABASE=8056 Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=88E8056 PCI-E Gigabit Ethernet Controller (8056 Gigabit Ethernet Controller) - - pci:v000011ABd00004365* - ID_MODEL_FROM_DATABASE=88E8070 based Ethernet Controller -@@ -35112,7 +35112,7 @@ pci:v000011ABd0000436A* - ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller - - pci:v000011ABd0000436Asv000011ABsd000000BA* -- ID_MODEL_FROM_DATABASE=Imac 8,1 Wired Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=88E8058 PCI-E Gigabit Ethernet Controller (Imac 8,1 Wired Ethernet Adapter) - - pci:v000011ABd0000436B* - ID_MODEL_FROM_DATABASE=88E8071 PCI-E Gigabit Ethernet Controller -@@ -35178,7 +35178,7 @@ pci:v000011ABd00006101* - ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface - - pci:v000011ABd00006101sv00001043sd000082E0* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=88SE6101/6102 single-port PATA133 interface (P5K PRO Motherboard) - - pci:v000011ABd00006111* - ID_MODEL_FROM_DATABASE=88SE6111 1-port PATA133(IDE) and 1-port SATA II Controllers -@@ -35217,7 +35217,7 @@ pci:v000011ABd00006480* - ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller - - pci:v000011ABd00006480sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K CompactPCI single board computer -+ ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller (C2K CompactPCI single board computer) - - pci:v000011ABd00006485* - ID_MODEL_FROM_DATABASE=MV64460/64461/64462 System Controller, Revision B -@@ -35226,7 +35226,7 @@ pci:v000011ABd00007042* - ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II - - pci:v000011ABd00007042sv000016B8sd0000434B* -- ID_MODEL_FROM_DATABASE=Tempo SATA E4P -+ ID_MODEL_FROM_DATABASE=88SX7042 PCI-e 4-port SATA-II (Tempo SATA E4P) - - pci:v000011ABd00007810* - ID_MODEL_FROM_DATABASE=MV78100 [Discovery Innovation] ARM SoC -@@ -35259,19 +35259,19 @@ pci:v000011ADd00000002sv000011ADsd0000FFFF* - ID_MODEL_FROM_DATABASE=LNE100TX - - pci:v000011ADd00000002sv00001385sd0000F004* -- ID_MODEL_FROM_DATABASE=FA310TX -+ ID_MODEL_FROM_DATABASE=LNE100TX (FA310TX) - - pci:v000011ADd00000002sv00002646sd0000F002* -- ID_MODEL_FROM_DATABASE=KNE110TX EtheRx Fast Ethernet -+ ID_MODEL_FROM_DATABASE=LNE100TX (KNE110TX EtheRx Fast Ethernet) - - pci:v000011ADd0000C115* - ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] - - pci:v000011ADd0000C115sv000011ADsd0000C001* -- ID_MODEL_FROM_DATABASE=LNE100TX [ver 2.0] -+ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (LNE100TX [ver 2.0]) - - pci:v000011ADd0000C115sv00002646sd0000000B* -- ID_MODEL_FROM_DATABASE=KNE111TX -+ ID_MODEL_FROM_DATABASE=LNE100TX [Linksys EtherFast 10/100] (KNE111TX) - - pci:v000011AE* - ID_VENDOR_FROM_DATABASE=Aztech System Ltd -@@ -35355,28 +35355,28 @@ pci:v000011BDd00000040* - ID_MODEL_FROM_DATABASE=Royal TS Function 1 - - pci:v000011BDd00000040sv000011BDsd00000044* -- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 1 -+ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV 2000i Dual DVB-T Pro PCI Tuner 1) - - pci:v000011BDd00000040sv000011BDsd00000045* -- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 1 -+ ID_MODEL_FROM_DATABASE=Royal TS Function 1 (PCTV Dual Sat Pro PCI 4000i Tuner 1) - - pci:v000011BDd00000041* - ID_MODEL_FROM_DATABASE=RoyalTS Function 2 - - pci:v000011BDd00000041sv000011BDsd00000044* -- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Tuner 2 -+ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV 2000i Dual DVB-T Pro PCI Tuner 2) - - pci:v000011BDd00000041sv000011BDsd00000045* -- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Tuner 2 -+ ID_MODEL_FROM_DATABASE=RoyalTS Function 2 (PCTV Dual Sat Pro PCI 4000i Tuner 2) - - pci:v000011BDd00000042* - ID_MODEL_FROM_DATABASE=Royal TS Function 3 - - pci:v000011BDd00000042sv000011BDsd00000044* -- ID_MODEL_FROM_DATABASE=PCTV 2000i Dual DVB-T Pro PCI Common -+ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV 2000i Dual DVB-T Pro PCI Common) - - pci:v000011BDd00000042sv000011BDsd00000045* -- ID_MODEL_FROM_DATABASE=PCTV Dual Sat Pro PCI 4000i Common -+ ID_MODEL_FROM_DATABASE=Royal TS Function 3 (PCTV Dual Sat Pro PCI 4000i Common) - - pci:v000011BDd00000051* - ID_MODEL_FROM_DATABASE=PCTV HD 800i -@@ -35400,154 +35400,154 @@ pci:v000011C1d00000440* - ID_MODEL_FROM_DATABASE=56k WinModem - - pci:v000011C1d00000440sv00001033sd00008015* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv00001033sd00008047* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv00001033sd0000804F* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000010CFsd0000102C* -- ID_MODEL_FROM_DATABASE=LB LT Modem V.90 56k -+ ID_MODEL_FROM_DATABASE=56k WinModem (LB LT Modem V.90 56k) - - pci:v000011C1d00000440sv000010CFsd0000104A* -- ID_MODEL_FROM_DATABASE=BIBLO LT Modem 56k -+ ID_MODEL_FROM_DATABASE=56k WinModem (BIBLO LT Modem 56k) - - pci:v000011C1d00000440sv000010CFsd0000105F* -- ID_MODEL_FROM_DATABASE=LB2 LT Modem V.90 56k -+ ID_MODEL_FROM_DATABASE=56k WinModem (LB2 LT Modem V.90 56k) - - pci:v000011C1d00000440sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Internal V.90 Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) - - pci:v000011C1d00000440sv000011C1sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv0000122Dsd00004101* -- ID_MODEL_FROM_DATABASE=MDP7800-U Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) - - pci:v000011C1d00000440sv0000122Dsd00004102* -- ID_MODEL_FROM_DATABASE=MDP7800SP-U Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800SP-U Modem) - - pci:v000011C1d00000440sv000013E0sd00000040* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd00000441* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd00000450* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd0000F100* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv000013E0sd0000F101* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000440sv0000144Dsd00002101* -- ID_MODEL_FROM_DATABASE=LT56PV Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PV Modem) - - pci:v000011C1d00000440sv0000149Fsd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000441* - ID_MODEL_FROM_DATABASE=56k WinModem - - pci:v000011C1d00000441sv00001033sd0000804D* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv00001033sd00008065* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv00001092sd00000440* -- ID_MODEL_FROM_DATABASE=Supra 56i -+ ID_MODEL_FROM_DATABASE=56k WinModem (Supra 56i) - - pci:v000011C1d00000441sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Internal V.90 Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Internal V.90 Modem) - - pci:v000011C1d00000441sv000011C1sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000011C1sd00000441* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv0000122Dsd00004100* -- ID_MODEL_FROM_DATABASE=MDP7800-U Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (MDP7800-U Modem) - - pci:v000011C1d00000441sv000013E0sd00000040* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000100* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000410* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000420* -- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem -+ ID_MODEL_FROM_DATABASE=56k WinModem (TelePath Internet 56k WinModem) - - pci:v000011C1d00000441sv000013E0sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd00000443* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv000013E0sd0000F102* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv00001416sd00009804* -- ID_MODEL_FROM_DATABASE=CommWave 56k Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (CommWave 56k Modem) - - pci:v000011C1d00000441sv0000141Dsd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000441sv0000144Fsd00000441* -- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) - - pci:v000011C1d00000441sv0000144Fsd00000449* -- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DF Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent 56k V.90 DF Modem) - - pci:v000011C1d00000441sv0000144Fsd0000110D* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) - - pci:v000011C1d00000441sv00001468sd00000441* -- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DF Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Presario 56k V.90 DF Modem) - - pci:v000011C1d00000441sv00001668sd00000440* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (Lucent Win Modem) - - pci:v000011C1d00000442* - ID_MODEL_FROM_DATABASE=56k WinModem - - pci:v000011C1d00000442sv000011C1sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000011C1sd00000442* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000013E0sd00000412* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000013E0sd00000442* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv000013FCsd00002471* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv0000144Dsd00002104* -- ID_MODEL_FROM_DATABASE=LT56PT Modem -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT56PT Modem) - - pci:v000011C1d00000442sv0000144Fsd00001104* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv0000149Fsd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000442sv00001668sd00000440* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=56k WinModem (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d00000443* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35559,10 +35559,10 @@ pci:v000011C1d00000445* - ID_MODEL_FROM_DATABASE=LT WinModem - - pci:v000011C1d00000445sv00008086sd00002203* -- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card) -+ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card)) - - pci:v000011C1d00000445sv00008086sd00002204* -- ID_MODEL_FROM_DATABASE=PRO/100+ MiniPCI on Armada E500 -+ ID_MODEL_FROM_DATABASE=LT WinModem (PRO/100+ MiniPCI on Armada E500) - - pci:v000011C1d00000446* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35574,64 +35574,64 @@ pci:v000011C1d00000448* - ID_MODEL_FROM_DATABASE=WinModem 56k - - pci:v000011C1d00000448sv00001014sd00000131* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=WinModem 56k (Lucent Win Modem) - - pci:v000011C1d00000448sv00001033sd00008066* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000448sv000013E0sd00000030* -- ID_MODEL_FROM_DATABASE=56k Voice Modem -+ ID_MODEL_FROM_DATABASE=WinModem 56k (56k Voice Modem) - - pci:v000011C1d00000448sv000013E0sd00000040* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+Dsvd -+ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k Data+Fax+Voice+Dsvd) - - pci:v000011C1d00000448sv00001668sd00002400* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k (MiniPCI Ethernet+Modem) -+ ID_MODEL_FROM_DATABASE=WinModem 56k (LT WinModem 56k (MiniPCI Ethernet+Modem)) - - pci:v000011C1d00000449* - ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k - - pci:v000011C1d00000449sv00000E11sd0000B14D* -- ID_MODEL_FROM_DATABASE=56k V.90 Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (56k V.90 Modem) - - pci:v000011C1d00000449sv00001014sd0000018C* -- ID_MODEL_FROM_DATABASE=ThinkPad 600X -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (ThinkPad 600X) - - pci:v000011C1d00000449sv000013E0sd00000020* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (LT WinModem 56k Data+Fax) - - pci:v000011C1d00000449sv000013E0sd00000041* -- ID_MODEL_FROM_DATABASE=TelePath Internet 56k WinModem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (TelePath Internet 56k WinModem) - - pci:v000011C1d00000449sv00001436sd00000440* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) - - pci:v000011C1d00000449sv0000144Fsd00000449* -- ID_MODEL_FROM_DATABASE=Lucent 56k V.90 DFi Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent 56k V.90 DFi Modem) - - pci:v000011C1d00000449sv00001468sd00000410* -- ID_MODEL_FROM_DATABASE=IBM ThinkPad T23 -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (IBM ThinkPad T23) - - pci:v000011C1d00000449sv00001468sd00000440* -- ID_MODEL_FROM_DATABASE=Lucent Win Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Lucent Win Modem) - - pci:v000011C1d00000449sv00001468sd00000449* -- ID_MODEL_FROM_DATABASE=Presario 56k V.90 DFi Modem -+ ID_MODEL_FROM_DATABASE=L56xM+S [Mars-2] WinModem 56k (Presario 56k V.90 DFi Modem) - - pci:v000011C1d0000044A* - ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) - - pci:v000011C1d0000044Asv000010CFsd00001072* -- ID_MODEL_FROM_DATABASE=LB Global LT Modem -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LB Global LT Modem) - - pci:v000011C1d0000044Asv000013E0sd00000012* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d0000044Asv000013E0sd00000042* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d0000044Asv0000144Fsd00001005* -- ID_MODEL_FROM_DATABASE=LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd -+ ID_MODEL_FROM_DATABASE=F-1156IV WinModem (V90, 56KFlex) (LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd) - - pci:v000011C1d0000044B* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35652,13 +35652,13 @@ pci:v000011C1d00000450* - ID_MODEL_FROM_DATABASE=LT WinModem - - pci:v000011C1d00000450sv00001033sd000080A8* -- ID_MODEL_FROM_DATABASE=Versa Note Vxi -+ ID_MODEL_FROM_DATABASE=LT WinModem (Versa Note Vxi) - - pci:v000011C1d00000450sv0000144Fsd00004005* -- ID_MODEL_FROM_DATABASE=Magnia SG20 -+ ID_MODEL_FROM_DATABASE=LT WinModem (Magnia SG20) - - pci:v000011C1d00000450sv00001468sd00000450* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=LT WinModem (Evo N600c) - - pci:v000011C1d00000451* - ID_MODEL_FROM_DATABASE=LT WinModem -@@ -35733,22 +35733,22 @@ pci:v000011C1d00005811* - ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller - - pci:v000011C1d00005811sv0000103Csd00002A34* -- ID_MODEL_FROM_DATABASE=Pavilion a1677c -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion a1677c) - - pci:v000011C1d00005811sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Asus IPIBL-LB Motherboard) - - pci:v000011C1d00005811sv0000103Csd00002A9E* -- ID_MODEL_FROM_DATABASE=Pavilion p6310f -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (Pavilion p6310f) - - pci:v000011C1d00005811sv00001043sd00008294* -- ID_MODEL_FROM_DATABASE=LSI FW322/323 IEEE 1394a FireWire Controller -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (LSI FW322/323 IEEE 1394a FireWire Controller) - - pci:v000011C1d00005811sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (D865PERL mainboard) - - pci:v000011C1d00005811sv0000DEADsd00000800* -- ID_MODEL_FROM_DATABASE=FireWire Host Bus Adapter -+ ID_MODEL_FROM_DATABASE=FW322/323 [TrueFire] 1394a Controller (FireWire Host Bus Adapter) - - pci:v000011C1d00005901* - ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller -@@ -35757,10 +35757,10 @@ pci:v000011C1d00005901sv000011C1sd00005900* - ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller - - pci:v000011C1d00005901sv00001443sd00000643* -- ID_MODEL_FROM_DATABASE=FireBoard800-e V.2 -+ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FireBoard800-e V.2) - - pci:v000011C1d00005901sv00001546sd00000643* -- ID_MODEL_FROM_DATABASE=FWB-PCIE1X2x -+ ID_MODEL_FROM_DATABASE=FW643 [TrueFire] PCIe 1394b Controller (FWB-PCIE1X2x) - - pci:v000011C1d00005903* - ID_MODEL_FROM_DATABASE=FW533 [TrueFire] PCIe 1394a Controller -@@ -35769,7 +35769,7 @@ pci:v000011C1d00008110* - ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch - - pci:v000011C1d00008110sv000012D9sd0000000C* -- ID_MODEL_FROM_DATABASE=E1/T1 PMXc cPCI carrier card -+ ID_MODEL_FROM_DATABASE=T8110 H.100/H.110 TDM switch (E1/T1 PMXc cPCI carrier card) - - pci:v000011C1d0000AB10* - ID_MODEL_FROM_DATABASE=WL60010 Wireless LAN MAC -@@ -35778,16 +35778,16 @@ pci:v000011C1d0000AB11* - ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC - - pci:v000011C1d0000AB11sv000011C1sd0000AB12* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1102) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1102)) - - pci:v000011C1d0000AB11sv000011C1sd0000AB13* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0512) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0512)) - - pci:v000011C1d0000AB11sv000011C1sd0000AB15* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg Cardbus card (Model 1106) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg Cardbus card (Model 1106)) - - pci:v000011C1d0000AB11sv000011C1sd0000AB16* -- ID_MODEL_FROM_DATABASE=WaveLAN 11abg MiniPCI card (Model 0516) -+ ID_MODEL_FROM_DATABASE=WL60040 Multimode Wireles LAN MAC (WaveLAN 11abg MiniPCI card (Model 0516)) - - pci:v000011C1d0000AB20* - ID_MODEL_FROM_DATABASE=ORiNOCO PCI Adapter -@@ -35856,10 +35856,10 @@ pci:v000011CBd00002000* - ID_MODEL_FROM_DATABASE=PCI_9050 - - pci:v000011CBd00002000sv000011CBsd00000200* -- ID_MODEL_FROM_DATABASE=SX -+ ID_MODEL_FROM_DATABASE=PCI_9050 (SX) - - pci:v000011CBd00002000sv000011CBsd0000B008* -- ID_MODEL_FROM_DATABASE=I/O8+ -+ ID_MODEL_FROM_DATABASE=PCI_9050 (I/O8+) - - pci:v000011CBd00004000* - ID_MODEL_FROM_DATABASE=SUPI_1 -@@ -35949,28 +35949,28 @@ pci:v000011DEd00006057* - ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset - - pci:v000011DEd00006057sv00001031sd00007EFE* -- ID_MODEL_FROM_DATABASE=DC10 Plus -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (DC10 Plus) - - pci:v000011DEd00006057sv00001031sd0000FC00* -- ID_MODEL_FROM_DATABASE=MiroVIDEO DC50, Motion JPEG Capture/CODEC Board -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (MiroVIDEO DC50, Motion JPEG Capture/CODEC Board) - - pci:v000011DEd00006057sv000012F8sd00008A02* -- ID_MODEL_FROM_DATABASE=Tekram Video Kit -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (Tekram Video Kit) - - pci:v000011DEd00006057sv000013CAsd00004231* -- ID_MODEL_FROM_DATABASE=JPEG/TV Card -+ ID_MODEL_FROM_DATABASE=ZR36057PQC Video cutting chipset (JPEG/TV Card) - - pci:v000011DEd00006120* - ID_MODEL_FROM_DATABASE=ZR36120 - - pci:v000011DEd00006120sv00001328sd0000F001* -- ID_MODEL_FROM_DATABASE=Cinemaster C DVD Decoder -+ ID_MODEL_FROM_DATABASE=ZR36120 (Cinemaster C DVD Decoder) - - pci:v000011DEd00006120sv000013C2sd00000000* -- ID_MODEL_FROM_DATABASE=MediaFocus Satellite TV Card -+ ID_MODEL_FROM_DATABASE=ZR36120 (MediaFocus Satellite TV Card) - - pci:v000011DEd00006120sv00001DE1sd00009FFF* -- ID_MODEL_FROM_DATABASE=Video Kit C210 -+ ID_MODEL_FROM_DATABASE=ZR36120 (Video Kit C210) - - pci:v000011DF* - ID_VENDOR_FROM_DATABASE=New Wave PDG -@@ -36102,13 +36102,13 @@ pci:v000011F6d00002011* - ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 - - pci:v000011F6d00002011sv000011F6sd00002011* -- ID_MODEL_FROM_DATABASE=RL100-ATX -+ ID_MODEL_FROM_DATABASE=RL100-ATX 10/100 (RL100-ATX) - - pci:v000011F6d00002201* - ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) - - pci:v000011F6d00002201sv000011F6sd00002011* -- ID_MODEL_FROM_DATABASE=ReadyLink 100TX -+ ID_MODEL_FROM_DATABASE=ReadyLink 100TX (Winbond W89C840) (ReadyLink 100TX) - - pci:v000011F6d00009881* - ID_MODEL_FROM_DATABASE=RL100TX Fast Ethernet -@@ -36138,10 +36138,10 @@ pci:v000011F8d00008032* - ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN - - pci:v000011F8d00008032sv0000117Csd0000003B* -- ID_MODEL_FROM_DATABASE=Celerity FC-82EN Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-82EN Fibre Channel Adapter) - - pci:v000011F8d00008032sv0000117Csd0000003C* -- ID_MODEL_FROM_DATABASE=Celerity FC-84EN Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=ATTO Celerity FC8xEN (Celerity FC-84EN Fibre Channel Adapter) - - pci:v000011F9* - ID_VENDOR_FROM_DATABASE=I-Cube Inc -@@ -36285,16 +36285,16 @@ pci:v00001202d00004300* - ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter - - pci:v00001202d00004300sv00001202sd00009841* -- ID_MODEL_FROM_DATABASE=SK-9841 LX -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX) - - pci:v00001202d00004300sv00001202sd00009842* -- ID_MODEL_FROM_DATABASE=SK-9841 LX dual link -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9841 LX dual link) - - pci:v00001202d00004300sv00001202sd00009843* -- ID_MODEL_FROM_DATABASE=SK-9843 SX -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX) - - pci:v00001202d00004300sv00001202sd00009844* -- ID_MODEL_FROM_DATABASE=SK-9843 SX dual link -+ ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter (SK-9843 SX dual link) - - pci:v00001203* - ID_VENDOR_FROM_DATABASE=Bayer Corporation, Agfa Division -@@ -36411,7 +36411,7 @@ pci:v00001217d000000F7* - ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) - - pci:v00001217d000000F7sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) - - pci:v00001217d000010F7* - ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller -@@ -36420,7 +36420,7 @@ pci:v00001217d000011F7* - ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller - - pci:v00001217d000011F7sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=OZ600 1394a-2000 Controller (Precision M4600) - - pci:v00001217d000013F7* - ID_MODEL_FROM_DATABASE=1394 OHCI Compliant Host Controller -@@ -36447,31 +36447,31 @@ pci:v00001217d00006933* - ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller - - pci:v00001217d00006933sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=OZ6933/711E1 CardBus/SmartCardBus Controller (Travelmate 612 TX) - - pci:v00001217d00006972* - ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller - - pci:v00001217d00006972sv00001014sd0000020C* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (ThinkPad R30) - - pci:v00001217d00006972sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Latitude D500) - - pci:v00001217d00006972sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=OZ601/6912/711E0 CardBus/SmartCardBus Controller (Magnia Z310) - - pci:v00001217d00007110* - ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator - - pci:v00001217d00007110sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC8000 laptop) - - pci:v00001217d00007110sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (NC6000 laptop) - - pci:v00001217d00007110sv00001734sd0000106C* -- ID_MODEL_FROM_DATABASE=Amilo A1645 -+ ID_MODEL_FROM_DATABASE=OZ711Mx 4-in-1 MemoryCardBus Accelerator (Amilo A1645) - - pci:v00001217d00007112* - ID_MODEL_FROM_DATABASE=OZ711EC1/M1 SmartCardBus/MemoryCardBus Controller -@@ -36480,7 +36480,7 @@ pci:v00001217d00007113* - ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller - - pci:v00001217d00007113sv00001025sd00000035* -- ID_MODEL_FROM_DATABASE=TravelMate 660 -+ ID_MODEL_FROM_DATABASE=OZ711EC1 SmartCardBus Controller (TravelMate 660) - - pci:v00001217d00007114* - ID_MODEL_FROM_DATABASE=OZ711M1/MC1 4-in-1 MemoryCardBus Controller -@@ -36489,13 +36489,13 @@ pci:v00001217d00007120* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller - - pci:v00001217d00007120sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) - - pci:v00001217d00007130* - ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller - - pci:v00001217d00007130sv00001179sd0000FF50* -- ID_MODEL_FROM_DATABASE=Satellite P305D-S8995E -+ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) - - pci:v00001217d00007134* - ID_MODEL_FROM_DATABASE=OZ711MP1/MS1 MemoryCardBus Controller -@@ -36519,13 +36519,13 @@ pci:v00001217d00007223* - ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller - - pci:v00001217d00007223sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC8000 laptop) - - pci:v00001217d00007223sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (NC6000 laptop) - - pci:v00001217d00007223sv000010CFsd000011C4* -- ID_MODEL_FROM_DATABASE=Lifebook P5020D Laptop -+ ID_MODEL_FROM_DATABASE=OZ711M3/MC3 4-in-1 MemoryCardBus Controller (Lifebook P5020D Laptop) - - pci:v00001217d00007233* - ID_MODEL_FROM_DATABASE=OZ711MP3/MS3 4-in-1 MemoryCardBus Controller -@@ -36540,7 +36540,7 @@ pci:v00001217d00008320* - ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller - - pci:v00001217d00008320sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) - - pci:v00001217d00008321* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller -@@ -36549,7 +36549,7 @@ pci:v00001217d00008330* - ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller - - pci:v00001217d00008330sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller (Precision M4600) - - pci:v00001217d00008331* - ID_MODEL_FROM_DATABASE=O2 Flash Memory Card -@@ -36576,52 +36576,52 @@ pci:v0000121Ad00000003* - ID_MODEL_FROM_DATABASE=Voodoo Banshee - - pci:v0000121Ad00000003sv00001092sd00000003* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00004000* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00004002* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00004801* -- ID_MODEL_FROM_DATABASE=Monster Fusion AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) - - pci:v0000121Ad00000003sv00001092sd00004803* -- ID_MODEL_FROM_DATABASE=Monster Fusion AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) - - pci:v0000121Ad00000003sv00001092sd00008030* -- ID_MODEL_FROM_DATABASE=Monster Fusion -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion) - - pci:v0000121Ad00000003sv00001092sd00008035* -- ID_MODEL_FROM_DATABASE=Monster Fusion AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Monster Fusion AGP) - - pci:v0000121Ad00000003sv000010B0sd00000001* -- ID_MODEL_FROM_DATABASE=Dragon 4000 -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Dragon 4000) - - pci:v0000121Ad00000003sv00001102sd00001017* -- ID_MODEL_FROM_DATABASE=3D Blaster Banshee PCI (CT6760) -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee PCI (CT6760)) - - pci:v0000121Ad00000003sv00001102sd00001018* -- ID_MODEL_FROM_DATABASE=3D Blaster Banshee VE -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (3D Blaster Banshee VE) - - pci:v0000121Ad00000003sv0000121Asd00000001* -- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP) - - pci:v0000121Ad00000003sv0000121Asd00000003* -- ID_MODEL_FROM_DATABASE=Voodoo Banshee AGP SGRAM -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (AGP SGRAM) - - pci:v0000121Ad00000003sv0000121Asd00000004* - ID_MODEL_FROM_DATABASE=Voodoo Banshee - - pci:v0000121Ad00000003sv0000139Csd00000016* -- ID_MODEL_FROM_DATABASE=Raven -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) - - pci:v0000121Ad00000003sv0000139Csd00000017* -- ID_MODEL_FROM_DATABASE=Raven -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Raven) - - pci:v0000121Ad00000003sv000014AFsd00000002* -- ID_MODEL_FROM_DATABASE=Maxi Gamer Phoenix -+ ID_MODEL_FROM_DATABASE=Voodoo Banshee (Maxi Gamer Phoenix) - - pci:v0000121Ad00000004* - ID_MODEL_FROM_DATABASE=Voodoo Banshee [Velocity 100] -@@ -36630,70 +36630,70 @@ pci:v0000121Ad00000005* - ID_MODEL_FROM_DATABASE=Voodoo 3 - - pci:v0000121Ad00000005sv0000121Asd00000004* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000030* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000031* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000034* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000036* -- ID_MODEL_FROM_DATABASE=Voodoo3 2000 PCI -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 2000 PCI) - - pci:v0000121Ad00000005sv0000121Asd00000037* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000038* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd0000003A* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000044* -- ID_MODEL_FROM_DATABASE=Voodoo3 -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3) - - pci:v0000121Ad00000005sv0000121Asd0000004B* -- ID_MODEL_FROM_DATABASE=Velocity 100 -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 100) - - pci:v0000121Ad00000005sv0000121Asd0000004C* -- ID_MODEL_FROM_DATABASE=Velocity 200 -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Velocity 200) - - pci:v0000121Ad00000005sv0000121Asd0000004D* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd0000004E* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000051* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000052* -- ID_MODEL_FROM_DATABASE=Voodoo3 AGP -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 AGP) - - pci:v0000121Ad00000005sv0000121Asd00000057* -- ID_MODEL_FROM_DATABASE=Voodoo3 3000 PCI -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3000 PCI) - - pci:v0000121Ad00000005sv0000121Asd00000060* -- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (NTSC) -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (NTSC)) - - pci:v0000121Ad00000005sv0000121Asd00000061* -- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (PAL) -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (PAL)) - - pci:v0000121Ad00000005sv0000121Asd00000062* -- ID_MODEL_FROM_DATABASE=Voodoo3 3500 TV (SECAM) -+ ID_MODEL_FROM_DATABASE=Voodoo 3 (Voodoo3 3500 TV (SECAM)) - - pci:v0000121Ad00000009* - ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 - - pci:v0000121Ad00000009sv0000121Asd00000003* -- ID_MODEL_FROM_DATABASE=Voodoo5 PCI 5500 -+ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 PCI 5500) - - pci:v0000121Ad00000009sv0000121Asd00000009* -- ID_MODEL_FROM_DATABASE=Voodoo5 AGP 5500/6000 -+ ID_MODEL_FROM_DATABASE=Voodoo 4 / Voodoo 5 (Voodoo5 AGP 5500/6000) - - pci:v0000121Ad00000057* - ID_MODEL_FROM_DATABASE=Voodoo 3/3000 [Avenger] -@@ -36930,31 +36930,31 @@ pci:v0000123Fd00008120* - ID_MODEL_FROM_DATABASE=DVxplore Codec - - pci:v0000123Fd00008120sv000010DEsd000001E1* -- ID_MODEL_FROM_DATABASE=NVTV PAL -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) - - pci:v0000123Fd00008120sv000010DEsd000001E2* -- ID_MODEL_FROM_DATABASE=NVTV NTSC -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) - - pci:v0000123Fd00008120sv000010DEsd000001E3* -- ID_MODEL_FROM_DATABASE=NVTV PAL -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) - - pci:v0000123Fd00008120sv000010DEsd00000248* -- ID_MODEL_FROM_DATABASE=NVTV NTSC -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV NTSC) - - pci:v0000123Fd00008120sv000010DEsd00000249* -- ID_MODEL_FROM_DATABASE=NVTV PAL -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (NVTV PAL) - - pci:v0000123Fd00008120sv000011BDsd00000006* -- ID_MODEL_FROM_DATABASE=DV500 E4 -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) - - pci:v0000123Fd00008120sv000011BDsd0000000A* -- ID_MODEL_FROM_DATABASE=DV500 E4 -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) - - pci:v0000123Fd00008120sv000011BDsd0000000F* -- ID_MODEL_FROM_DATABASE=DV500 E4 -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (DV500 E4) - - pci:v0000123Fd00008120sv00001809sd00000016* -- ID_MODEL_FROM_DATABASE=Emuzed MAUI-III PCI PVR FM TV -+ ID_MODEL_FROM_DATABASE=DVxplore Codec (Emuzed MAUI-III PCI PVR FM TV) - - pci:v0000123Fd00008888* - ID_MODEL_FROM_DATABASE=Cinemaster C 3.0 DVD Decoder -@@ -36981,10 +36981,10 @@ pci:v00001242d00001560* - ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller - - pci:v00001242d00001560sv00001242sd00006562* -- ID_MODEL_FROM_DATABASE=FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter) - - pci:v00001242d00001560sv00001242sd0000656A* -- ID_MODEL_FROM_DATABASE=FCX-6562 PCI-X Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=JNIC-1560 PCI-X Fibre Channel Controller (FCX-6562 PCI-X Fibre Channel Adapter) - - pci:v00001242d00004643* - ID_MODEL_FROM_DATABASE=FCI-1063 Fibre Channel Adapter -@@ -37011,7 +37011,7 @@ pci:v00001244d00000A00* - ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] - - pci:v00001244d00000A00sv00001244sd00000A00* -- ID_MODEL_FROM_DATABASE=FRITZ!Card ISDN Controller -+ ID_MODEL_FROM_DATABASE=A1 ISDN [Fritz] (FRITZ!Card ISDN Controller) - - pci:v00001244d00000E00* - ID_MODEL_FROM_DATABASE=Fritz!PCI v2.0 ISDN -@@ -37053,7 +37053,7 @@ pci:v0000124Bd00000040* - ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier - - pci:v0000124Bd00000040sv0000124Bsd00009080* -- ID_MODEL_FROM_DATABASE=PCI9080 Bridge -+ ID_MODEL_FROM_DATABASE=PCI-40A or cPCI-200 Quad IndustryPack carrier (PCI9080 Bridge) - - pci:v0000124C* - ID_VENDOR_FROM_DATABASE=Solitron Technologies, Inc. -@@ -37164,7 +37164,7 @@ pci:v0000125Bd00001400* - ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller - - pci:v0000125Bd00001400sv00001186sd00001100* -- ID_MODEL_FROM_DATABASE=AX8814X Based PCI Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=AX88141 Fast Ethernet Controller (AX8814X Based PCI Fast Ethernet Adapter) - - pci:v0000125C* - ID_VENDOR_FROM_DATABASE=Aurora Technologies, Inc. -@@ -37188,61 +37188,61 @@ pci:v0000125Dd00001968* - ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 - - pci:v0000125Dd00001968sv00001028sd00000085* -- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 PCI -+ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 PCI) - - pci:v0000125Dd00001968sv00001033sd00008051* -- ID_MODEL_FROM_DATABASE=ES1968 Maestro-2 Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1968 Maestro 2 (ES1968 Maestro-2 Audiodrive) - - pci:v0000125Dd00001969* - ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive - - pci:v0000125Dd00001969sv00001014sd00000166* -- ID_MODEL_FROM_DATABASE=ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard -+ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard) - - pci:v0000125Dd00001969sv0000125Dsd00008888* -- ID_MODEL_FROM_DATABASE=Solo-1 Audio Adapter -+ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Solo-1 Audio Adapter) - - pci:v0000125Dd00001969sv0000153Bsd0000111B* -- ID_MODEL_FROM_DATABASE=Terratec 128i PCI -+ ID_MODEL_FROM_DATABASE=ES1938/ES1946/ES1969 Solo-1 Audiodrive (Terratec 128i PCI) - - pci:v0000125Dd00001978* - ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E - - pci:v0000125Dd00001978sv00000E11sd0000B112* -- ID_MODEL_FROM_DATABASE=Armada M700/E500 -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Armada M700/E500) - - pci:v0000125Dd00001978sv00001033sd0000803C* -- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) - - pci:v0000125Dd00001978sv00001033sd00008058* -- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) - - pci:v0000125Dd00001978sv00001092sd00004000* -- ID_MODEL_FROM_DATABASE=Monster Sound MX400 -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (Monster Sound MX400) - - pci:v0000125Dd00001978sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=ES1978 Maestro-2E Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1978 Maestro 2E (ES1978 Maestro-2E Audiodrive) - - pci:v0000125Dd00001988* - ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 - - pci:v0000125Dd00001988sv00000E11sd00000098* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Evo N600c) - - pci:v0000125Dd00001988sv00001092sd00004100* -- ID_MODEL_FROM_DATABASE=Sonic Impact S100 -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Sonic Impact S100) - - pci:v0000125Dd00001988sv0000125Dsd00000431* -- ID_MODEL_FROM_DATABASE=Allegro AudioDrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) - - pci:v0000125Dd00001988sv0000125Dsd00001988* -- ID_MODEL_FROM_DATABASE=ESS Allegro-1 Audiodrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (ESS Allegro-1 Audiodrive) - - pci:v0000125Dd00001988sv0000125Dsd00001998* -- ID_MODEL_FROM_DATABASE=Allegro AudioDrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro AudioDrive) - - pci:v0000125Dd00001988sv0000125Dsd00001999* -- ID_MODEL_FROM_DATABASE=Allegro-1 AudioDrive -+ ID_MODEL_FROM_DATABASE=ES1988 Allegro-1 (Allegro-1 AudioDrive) - - pci:v0000125Dd00001989* - ID_MODEL_FROM_DATABASE=ESS Modem -@@ -37254,13 +37254,13 @@ pci:v0000125Dd00001998* - ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator - - pci:v0000125Dd00001998sv00001028sd000000B1* -- ID_MODEL_FROM_DATABASE=Latitude C600 -+ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C600) - - pci:v0000125Dd00001998sv00001028sd000000E5* -- ID_MODEL_FROM_DATABASE=Latitude C810 -+ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (Latitude C810) - - pci:v0000125Dd00001998sv00001028sd000000E6* -- ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i (Dell Inspiron 8100) -+ ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Audio Accelerator (ES1983S Maestro-3i (Dell Inspiron 8100)) - - pci:v0000125Dd00001999* - ID_MODEL_FROM_DATABASE=ES1983S Maestro-3i PCI Modem Accelerator -@@ -37281,34 +37281,34 @@ pci:v0000125Dd00002898* - ID_MODEL_FROM_DATABASE=ES2898 Modem - - pci:v0000125Dd00002898sv0000125Dsd00000424* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000425* -- ID_MODEL_FROM_DATABASE=ES56T-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56T-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000426* -- ID_MODEL_FROM_DATABASE=ES56V-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56V-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000427* -- ID_MODEL_FROM_DATABASE=VW-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (VW-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000428* -- ID_MODEL_FROM_DATABASE=ES56ST-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56ST-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000125Dsd00000429* -- ID_MODEL_FROM_DATABASE=ES56SV-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56SV-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000147Asd0000C001* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125Dd00002898sv0000148Dsd00001030* -- ID_MODEL_FROM_DATABASE=HCF WV-PI56 [ESS ES56-PI Data Fax Modem] -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (HCF WV-PI56 [ESS ES56-PI Data Fax Modem]) - - pci:v0000125Dd00002898sv000014FEsd00000428* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125Dd00002898sv000014FEsd00000429* -- ID_MODEL_FROM_DATABASE=ES56-PI Data Fax Modem -+ ID_MODEL_FROM_DATABASE=ES2898 Modem (ES56-PI Data Fax Modem) - - pci:v0000125E* - ID_VENDOR_FROM_DATABASE=Specialvideo Engineering SRL -@@ -37323,40 +37323,40 @@ pci:v00001260d00003872* - ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] - - pci:v00001260d00003872sv00001468sd00000202* -- ID_MODEL_FROM_DATABASE=LAN-Express IEEE 802.11b Wireless LAN -+ ID_MODEL_FROM_DATABASE=ISL3872 [Prism 3] (LAN-Express IEEE 802.11b Wireless LAN) - - pci:v00001260d00003873* - ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] - - pci:v00001260d00003873sv000010CFsd00001169* -- ID_MODEL_FROM_DATABASE=MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874]) - - pci:v00001260d00003873sv00001186sd00003501* -- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874]) - - pci:v00001260d00003873sv00001186sd00003700* -- ID_MODEL_FROM_DATABASE=DWL-520 Wireless PCI Adapter (rev E1) [ISL3872] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (DWL-520 Wireless PCI Adapter (rev E1) [ISL3872]) - - pci:v00001260d00003873sv00001385sd00004105* -- ID_MODEL_FROM_DATABASE=MA311 802.11b wireless adapter [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (MA311 802.11b wireless adapter [ISL3874]) - - pci:v00001260d00003873sv00001668sd00000414* -- ID_MODEL_FROM_DATABASE=HWP01170-01 802.11b PCI Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (HWP01170-01 802.11b PCI Wireless Adapter) - - pci:v00001260d00003873sv000016A5sd00001601* -- ID_MODEL_FROM_DATABASE=AIR.mate PC-400 PCI Wireless LAN Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (AIR.mate PC-400 PCI Wireless LAN Adapter) - - pci:v00001260d00003873sv00001737sd00003874* -- ID_MODEL_FROM_DATABASE=WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874]) - - pci:v00001260d00003873sv00004033sd00007033* -- ID_MODEL_FROM_DATABASE=PCW200 802.11b Wireless PCI Adapter [ISL3874] -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (PCW200 802.11b Wireless PCI Adapter [ISL3874]) - - pci:v00001260d00003873sv00008086sd00002510* -- ID_MODEL_FROM_DATABASE=M3AWEB Wireless 802.11b MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (M3AWEB Wireless 802.11b MiniPCI Adapter) - - pci:v00001260d00003873sv00008086sd00002513* -- ID_MODEL_FROM_DATABASE=Wireless 802.11b MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3874 [Prism 2.5]/ISL3872 [Prism 3] (Wireless 802.11b MiniPCI Adapter) - - pci:v00001260d00003877* - ID_MODEL_FROM_DATABASE=ISL3877 [Prism Indigo] -@@ -37365,58 +37365,58 @@ pci:v00001260d00003886* - ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] - - pci:v00001260d00003886sv000017CFsd00000037* -- ID_MODEL_FROM_DATABASE=XG-901 and clones Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3886 [Prism Javelin/Prism Xbow] (XG-901 and clones Wireless Adapter) - - pci:v00001260d00003890* - ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] - - pci:v00001260d00003890sv000010B8sd00002802* -- ID_MODEL_FROM_DATABASE=SMC2802W V1 Wireless PCI Adapter [ISL3890] -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V1 Wireless PCI Adapter [ISL3890]) - - pci:v00001260d00003890sv000010B8sd00002835* -- ID_MODEL_FROM_DATABASE=SMC2835W Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W Wireless Cardbus Adapter) - - pci:v00001260d00003890sv000010B8sd0000A835* -- ID_MODEL_FROM_DATABASE=SMC2835W V2 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V2 Wireless Cardbus Adapter) - - pci:v00001260d00003890sv00001113sd00004203* -- ID_MODEL_FROM_DATABASE=WN4201B -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WN4201B) - - pci:v00001260d00003890sv00001113sd00008201* -- ID_MODEL_FROM_DATABASE=T-Com T-Sinus 154pcicard Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Com T-Sinus 154pcicard Wireless PCI Adapter) - - pci:v00001260d00003890sv00001113sd0000B301* -- ID_MODEL_FROM_DATABASE=T-Sinus 154card Cardbus -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (T-Sinus 154card Cardbus) - - pci:v00001260d00003890sv00001113sd0000EE03* -- ID_MODEL_FROM_DATABASE=SMC2802W V2 Wireless PCI Adapter [ISL3886] -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2802W V2 Wireless PCI Adapter [ISL3886]) - - pci:v00001260d00003890sv00001113sd0000EE08* -- ID_MODEL_FROM_DATABASE=SMC2835W V3 EU Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (SMC2835W V3 EU Wireless Cardbus Adapter) - - pci:v00001260d00003890sv00001186sd00003202* -- ID_MODEL_FROM_DATABASE=DWL-G650 A1 Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (DWL-G650 A1 Wireless Adapter) - - pci:v00001260d00003890sv00001259sd0000C104* -- ID_MODEL_FROM_DATABASE=CG-WLCB54GT Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (CG-WLCB54GT Wireless Adapter) - - pci:v00001260d00003890sv00001260sd00000000* -- ID_MODEL_FROM_DATABASE=WG511 v1 54 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v1 54 Mbps Wireless PC Card) - - pci:v00001260d00003890sv00001385sd00004800* -- ID_MODEL_FROM_DATABASE=WG511 v2/v3 54 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (WG511 v2/v3 54 Mbps Wireless PC Card) - - pci:v00001260d00003890sv000016A5sd00001605* -- ID_MODEL_FROM_DATABASE=ALLNET ALL0271 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (ALLNET ALL0271 Wireless PCI Adapter) - - pci:v00001260d00003890sv000017CFsd00000014* -- ID_MODEL_FROM_DATABASE=XG-600 and clones Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-600 and clones Wireless Adapter) - - pci:v00001260d00003890sv000017CFsd00000020* -- ID_MODEL_FROM_DATABASE=XG-900 and clones Wireless Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (XG-900 and clones Wireless Adapter) - - pci:v00001260d00003890sv0000187Esd00003403* -- ID_MODEL_FROM_DATABASE=G-110 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ISL3890 [Prism GT/Prism Duette]/ISL3886 [Prism Javelin/Prism Xbow] (G-110 802.11g Wireless Cardbus Adapter) - - pci:v00001260d00008130* - ID_MODEL_FROM_DATABASE=HMP8130 NTSC/PAL Video Decoder -@@ -37428,7 +37428,7 @@ pci:v00001260d0000FFFF* - ID_MODEL_FROM_DATABASE=ISL3886IK - - pci:v00001260d0000FFFFsv00001260sd00000000* -- ID_MODEL_FROM_DATABASE=Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter -+ ID_MODEL_FROM_DATABASE=ISL3886IK (Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter) - - pci:v00001261* - ID_VENDOR_FROM_DATABASE=Matsushita-Kotobuki Electronics Industries, Ltd. -@@ -37455,7 +37455,7 @@ pci:v00001266d00001910* - ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter - - pci:v00001266d00001910sv00001266sd00001910* -- ID_MODEL_FROM_DATABASE=NE2000Plus Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=NE2000Plus (RT8029) Ethernet Adapter (NE2000Plus Ethernet Adapter) - - pci:v00001267* - ID_VENDOR_FROM_DATABASE=S. A. Telecommunications -@@ -37554,169 +37554,169 @@ pci:v00001274d00001371* - ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] - - pci:v00001274d00001371sv00000E11sd00000024* -- ID_MODEL_FROM_DATABASE=AudioPCI on Motherboard Compaq Deskpro -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI on Motherboard Compaq Deskpro) - - pci:v00001274d00001371sv00000E11sd0000B1A7* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) - - pci:v00001274d00001371sv00001033sd000080AC* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI) - - pci:v00001274d00001371sv00001042sd00001854* -- ID_MODEL_FROM_DATABASE=Tazer -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tazer) - - pci:v00001274d00001371sv0000107Bsd00008054* -- ID_MODEL_FROM_DATABASE=Tabor2 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (Tabor2) - - pci:v00001274d00001371sv00001274sd00001371* -- ID_MODEL_FROM_DATABASE=AudioPCI 64V/128 / Creative Sound Blaster CT4810 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (AudioPCI 64V/128 / Creative Sound Blaster CT4810) - - pci:v00001274d00001371sv00001274sd00008001* -- ID_MODEL_FROM_DATABASE=CT4751 board -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (CT4751 board) - - pci:v00001274d00001371sv00001462sd00006470* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A) - - pci:v00001274d00001371sv00001462sd00006560* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10) - - pci:v00001274d00001371sv00001462sd00006630* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A) - - pci:v00001274d00001371sv00001462sd00006631* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A) - - pci:v00001274d00001371sv00001462sd00006632* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A) - - pci:v00001274d00001371sv00001462sd00006633* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A) - - pci:v00001274d00001371sv00001462sd00006820* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00) - - pci:v00001274d00001371sv00001462sd00006822* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A) - - pci:v00001274d00001371sv00001462sd00006830* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00) - - pci:v00001274d00001371sv00001462sd00006880* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00) - - pci:v00001274d00001371sv00001462sd00006900* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00) - - pci:v00001274d00001371sv00001462sd00006910* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6191 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6191) - - pci:v00001274d00001371sv00001462sd00006930* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6193 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6193) - - pci:v00001274d00001371sv00001462sd00006990* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A) - - pci:v00001274d00001371sv00001462sd00006991* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A) - - pci:v00001274d00001371sv000014A4sd00002077* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KR639 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KR639) - - pci:v00001274d00001371sv000014A4sd00002105* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR800 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR800) - - pci:v00001274d00001371sv000014A4sd00002107* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard MR801 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard MR801) - - pci:v00001274d00001371sv000014A4sd00002172* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard DR739 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard DR739) - - pci:v00001274d00001371sv00001509sd00009902* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW11 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW11) - - pci:v00001274d00001371sv00001509sd00009903* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KW31 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KW31) - - pci:v00001274d00001371sv00001509sd00009904* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KA11 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KA11) - - pci:v00001274d00001371sv00001509sd00009905* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard KC13 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard KC13) - - pci:v00001274d00001371sv0000152Dsd00008801* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810E -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810E) - - pci:v00001274d00001371sv0000152Dsd00008802* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard CP810 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard CP810) - - pci:v00001274d00001371sv0000152Dsd00008803* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810E -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810E) - - pci:v00001274d00001371sv0000152Dsd00008804* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3810-S -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3810-S) - - pci:v00001274d00001371sv0000152Dsd00008805* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard P3820-S -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard P3820-S) - - pci:v00001274d00001371sv0000270Fsd00002001* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6CTR -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6CTR) - - pci:v00001274d00001371sv0000270Fsd00002200* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WTX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WTX) - - pci:v00001274d00001371sv0000270Fsd00003000* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WSV -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WSV) - - pci:v00001274d00001371sv0000270Fsd00003100* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV2 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV2) - - pci:v00001274d00001371sv0000270Fsd00003102* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6WIV -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6WIV) - - pci:v00001274d00001371sv0000270Fsd00007060* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard 6ASA2 -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard 6ASA2) - - pci:v00001274d00001371sv00008086sd00004249* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BI440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BI440ZX) - - pci:v00001274d00001371sv00008086sd0000424C* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BL440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BL440ZX) - - pci:v00001274d00001371sv00008086sd0000425A* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard BZ440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard BZ440ZX) - - pci:v00001274d00001371sv00008086sd00004341* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cayman -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cayman) - - pci:v00001274d00001371sv00008086sd00004343* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Cape Cod -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Cape Cod) - - pci:v00001274d00001371sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=D815EEA Motherboard -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (D815EEA Motherboard) - - pci:v00001274d00001371sv00008086sd00004649* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Fire Island -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Fire Island) - - pci:v00001274d00001371sv00008086sd0000464A* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard FJ440ZX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard FJ440ZX) - - pci:v00001274d00001371sv00008086sd00004D4F* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Montreal -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Montreal) - - pci:v00001274d00001371sv00008086sd00004F43* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard OC440LX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard OC440LX) - - pci:v00001274d00001371sv00008086sd00005243* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard RC440BX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard RC440BX) - - pci:v00001274d00001371sv00008086sd00005352* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard SunRiver -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard SunRiver) - - pci:v00001274d00001371sv00008086sd00005643* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard Vancouver -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard Vancouver) - - pci:v00001274d00001371sv00008086sd00005753* -- ID_MODEL_FROM_DATABASE=ES1371, ES1373 AudioPCI On Motherboard WS440BX -+ ID_MODEL_FROM_DATABASE=ES1371 / Creative Labs CT2518 [AudioPCI-97] (ES1371, ES1373 AudioPCI On Motherboard WS440BX) - - pci:v00001274d00005000* - ID_MODEL_FROM_DATABASE=ES1370 [AudioPCI] -@@ -37725,31 +37725,31 @@ pci:v00001274d00005880* - ID_MODEL_FROM_DATABASE=5880B [AudioPCI] - - pci:v00001274d00005880sv00001274sd00002000* -- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) - - pci:v00001274d00005880sv00001274sd00002003* -- ID_MODEL_FROM_DATABASE=Creative SoundBlaster AudioPCI 128 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative SoundBlaster AudioPCI 128) - - pci:v00001274d00005880sv00001274sd00005880* -- ID_MODEL_FROM_DATABASE=Creative Sound Blaster AudioPCI128 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Creative Sound Blaster AudioPCI128) - - pci:v00001274d00005880sv00001274sd00008001* -- ID_MODEL_FROM_DATABASE=Sound Blaster 16PCI 4.1ch -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (Sound Blaster 16PCI 4.1ch) - - pci:v00001274d00005880sv00001458sd0000A000* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6OXET -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6OXET) - - pci:v00001274d00005880sv00001462sd00006880* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard MS-6188 1.00 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard MS-6188 1.00) - - pci:v00001274d00005880sv0000270Fsd00002001* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6CTR -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6CTR) - - pci:v00001274d00005880sv0000270Fsd00002200* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6WTX -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6WTX) - - pci:v00001274d00005880sv0000270Fsd00007040* -- ID_MODEL_FROM_DATABASE=5880 AudioPCI On Motherboard 6ATA4 -+ ID_MODEL_FROM_DATABASE=5880B [AudioPCI] (5880 AudioPCI On Motherboard 6ATA4) - - pci:v00001274d00008001* - ID_MODEL_FROM_DATABASE=CT5880 [AudioPCI] -@@ -37809,181 +37809,181 @@ pci:v0000127Ad00001002* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00001002sv00001092sd0000094C* -- ID_MODEL_FROM_DATABASE=SupraExpress 56i PRO [Diamond SUP2380] -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (SupraExpress 56i PRO [Diamond SUP2380]) - - pci:v0000127Ad00001002sv0000122Dsd00004002* -- ID_MODEL_FROM_DATABASE=HPG / MDP3858-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (HPG / MDP3858-U) - - pci:v0000127Ad00001002sv0000122Dsd00004005* -- ID_MODEL_FROM_DATABASE=MDP3858-E -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-E) - - pci:v0000127Ad00001002sv0000122Dsd00004007* -- ID_MODEL_FROM_DATABASE=MDP3858-A/-NZ -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-A/-NZ) - - pci:v0000127Ad00001002sv0000122Dsd00004012* -- ID_MODEL_FROM_DATABASE=MDP3858-SA -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-SA) - - pci:v0000127Ad00001002sv0000122Dsd00004017* -- ID_MODEL_FROM_DATABASE=MDP3858-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) - - pci:v0000127Ad00001002sv0000122Dsd00004018* -- ID_MODEL_FROM_DATABASE=MDP3858-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-W) - - pci:v0000127Ad00001002sv0000127Asd00001002* -- ID_MODEL_FROM_DATABASE=Rockwell 56K D/F HCF Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Rockwell 56K D/F HCF Modem) - - pci:v0000127Ad00001003* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00001003sv00000E11sd0000B0BC* -- ID_MODEL_FROM_DATABASE=229-DF Zephyr -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Zephyr) - - pci:v0000127Ad00001003sv00000E11sd0000B114* -- ID_MODEL_FROM_DATABASE=229-DF Cheetah -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF Cheetah) - - pci:v0000127Ad00001003sv00001033sd0000802B* -- ID_MODEL_FROM_DATABASE=229-DF -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DF) - - pci:v0000127Ad00001003sv000013DFsd00001003* -- ID_MODEL_FROM_DATABASE=PCI56RX Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PCI56RX Modem) - - pci:v0000127Ad00001003sv000013E0sd00000117* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv000013E0sd00000147* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 Spain V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 Spain V.90 Modem) - - pci:v0000127Ad00001003sv000013E0sd00000197* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv000013E0sd000001C7* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R3 WW V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R3 WW V.90 Modem) - - pci:v0000127Ad00001003sv000013E0sd000001F7* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv00001436sd00001003* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001003sv00001436sd00001103* -- ID_MODEL_FROM_DATABASE=IBM 5614PM3G V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM 5614PM3G V.90 Modem) - - pci:v0000127Ad00001003sv00001436sd00001602* -- ID_MODEL_FROM_DATABASE=Compaq 229-DF Ducati -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq 229-DF Ducati) - - pci:v0000127Ad00001004* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem - - pci:v0000127Ad00001004sv00001048sd00001500* -- ID_MODEL_FROM_DATABASE=MicroLink 56k Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (MicroLink 56k Modem) - - pci:v0000127Ad00001004sv000010CFsd00001059* -- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFRT -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem (Fujitsu 229-DFRT) - - pci:v0000127Ad00001005* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v0000127Ad00001005sv00001005sd0000127A* -- ID_MODEL_FROM_DATABASE=AOpen FM56-P -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (AOpen FM56-P) - - pci:v0000127Ad00001005sv00001033sd00008029* -- ID_MODEL_FROM_DATABASE=229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (229-DFSV) - - pci:v0000127Ad00001005sv00001033sd00008054* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Modem) - - pci:v0000127Ad00001005sv000010CFsd0000103C* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00001005sv000010CFsd00001055* -- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) - - pci:v0000127Ad00001005sv000010CFsd00001056* -- ID_MODEL_FROM_DATABASE=Fujitsu 229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 229-DFSV) - - pci:v0000127Ad00001005sv0000122Dsd00004003* -- ID_MODEL_FROM_DATABASE=MDP3858SP-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-U) - - pci:v0000127Ad00001005sv0000122Dsd00004006* -- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-E -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-E) - - pci:v0000127Ad00001005sv0000122Dsd00004008* -- ID_MODEL_FROM_DATABASE=MDP3858SP-A/SP-NZ -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-A/SP-NZ) - - pci:v0000127Ad00001005sv0000122Dsd00004009* -- ID_MODEL_FROM_DATABASE=MDP3858SP-E -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-E) - - pci:v0000127Ad00001005sv0000122Dsd00004010* -- ID_MODEL_FROM_DATABASE=MDP3858V-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-U) - - pci:v0000127Ad00001005sv0000122Dsd00004011* -- ID_MODEL_FROM_DATABASE=MDP3858SP-SA -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-SA) - - pci:v0000127Ad00001005sv0000122Dsd00004013* -- ID_MODEL_FROM_DATABASE=MDP3858V-A/V-NZ -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-A/V-NZ) - - pci:v0000127Ad00001005sv0000122Dsd00004015* -- ID_MODEL_FROM_DATABASE=MDP3858SP-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-W) - - pci:v0000127Ad00001005sv0000122Dsd00004016* -- ID_MODEL_FROM_DATABASE=MDP3858V-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-W) - - pci:v0000127Ad00001005sv0000122Dsd00004019* -- ID_MODEL_FROM_DATABASE=MDP3858V-SA -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-SA) - - pci:v0000127Ad00001005sv000013DFsd00001005* -- ID_MODEL_FROM_DATABASE=PCI56RVP Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (PCI56RVP Modem) - - pci:v0000127Ad00001005sv000013E0sd00000187* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv000013E0sd000001A7* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv000013E0sd000001B7* -- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 Spain V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 Spain V.90 Modem) - - pci:v0000127Ad00001005sv000013E0sd000001D7* -- ID_MODEL_FROM_DATABASE=IBM DF-1156IV+/R3 WW V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM DF-1156IV+/R3 WW V.90 Modem) - - pci:v0000127Ad00001005sv00001436sd00001005* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv00001436sd00001105* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM) - - pci:v0000127Ad00001005sv00001437sd00001105* -- ID_MODEL_FROM_DATABASE=IBM 5614PS3G V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (IBM 5614PS3G V.90 Modem) - - pci:v0000127Ad00001022* - ID_MODEL_FROM_DATABASE=HCF 56k Modem - - pci:v0000127Ad00001022sv00001436sd00001303* -- ID_MODEL_FROM_DATABASE=M3-5614PM3G V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (M3-5614PM3G V.90 Modem) - - pci:v0000127Ad00001023* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00001023sv0000122Dsd00004020* -- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858-WE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Packard Bell MDP3858-WE) - - pci:v0000127Ad00001023sv0000122Dsd00004023* -- ID_MODEL_FROM_DATABASE=MDP3858-UE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (MDP3858-UE) - - pci:v0000127Ad00001023sv000013E0sd00000247* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 Spain V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 Spain V.90 Modem) - - pci:v0000127Ad00001023sv000013E0sd00000297* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001023sv000013E0sd000002C7* -- ID_MODEL_FROM_DATABASE=IBM F-1156IV+/R6 WW V.90 Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM F-1156IV+/R6 WW V.90 Modem) - - pci:v0000127Ad00001023sv00001436sd00001203* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001023sv00001436sd00001303* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v0000127Ad00001024* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem -@@ -37992,19 +37992,19 @@ pci:v0000127Ad00001025* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v0000127Ad00001025sv000010CFsd0000106A* -- ID_MODEL_FROM_DATABASE=Fujitsu 235-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu 235-DFSV) - - pci:v0000127Ad00001025sv0000122Dsd00004021* -- ID_MODEL_FROM_DATABASE=Packard Bell MDP3858V-WE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Packard Bell MDP3858V-WE) - - pci:v0000127Ad00001025sv0000122Dsd00004022* -- ID_MODEL_FROM_DATABASE=MDP3858SP-WE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-WE) - - pci:v0000127Ad00001025sv0000122Dsd00004024* -- ID_MODEL_FROM_DATABASE=MDP3858V-UE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858V-UE) - - pci:v0000127Ad00001025sv0000122Dsd00004025* -- ID_MODEL_FROM_DATABASE=MDP3858SP-UE -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (MDP3858SP-UE) - - pci:v0000127Ad00001026* - ID_MODEL_FROM_DATABASE=HCF 56k PCI Speakerphone Modem -@@ -38034,85 +38034,85 @@ pci:v0000127Ad00002005* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v0000127Ad00002005sv0000104Dsd00008044* -- ID_MODEL_FROM_DATABASE=229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd00008045* -- ID_MODEL_FROM_DATABASE=229-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (229-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd00008055* -- ID_MODEL_FROM_DATABASE=PBE/Aztech 235W-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (PBE/Aztech 235W-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd00008056* -- ID_MODEL_FROM_DATABASE=235-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (235-DFSV) - - pci:v0000127Ad00002005sv0000104Dsd0000805A* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002005sv0000104Dsd0000805F* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002005sv0000104Dsd00008074* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002013* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem - - pci:v0000127Ad00002013sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002013sv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Modem) - - pci:v0000127Ad00002014* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem - - pci:v0000127Ad00002014sv000010CFsd00001057* -- ID_MODEL_FROM_DATABASE=Fujitsu Citicorp III -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Fujitsu Citicorp III) - - pci:v0000127Ad00002014sv0000122Dsd00004050* -- ID_MODEL_FROM_DATABASE=MSP3880-U -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-U) - - pci:v0000127Ad00002014sv0000122Dsd00004055* -- ID_MODEL_FROM_DATABASE=MSP3880-W -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (MSP3880-W) - - pci:v0000127Ad00002015* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v0000127Ad00002015sv000010CFsd00001063* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00002015sv000010CFsd00001064* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00002015sv00001468sd00002015* -- ID_MODEL_FROM_DATABASE=Fujitsu -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu) - - pci:v0000127Ad00002016* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem - - pci:v0000127Ad00002016sv0000122Dsd00004051* -- ID_MODEL_FROM_DATABASE=MSP3880V-W -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-W) - - pci:v0000127Ad00002016sv0000122Dsd00004052* -- ID_MODEL_FROM_DATABASE=MSP3880SP-W -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-W) - - pci:v0000127Ad00002016sv0000122Dsd00004054* -- ID_MODEL_FROM_DATABASE=MSP3880V-U -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880V-U) - - pci:v0000127Ad00002016sv0000122Dsd00004056* -- ID_MODEL_FROM_DATABASE=MSP3880SP-U -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-U) - - pci:v0000127Ad00002016sv0000122Dsd00004057* -- ID_MODEL_FROM_DATABASE=MSP3880SP-A -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (MSP3880SP-A) - - pci:v0000127Ad00004311* - ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem - - pci:v0000127Ad00004311sv0000127Asd00004311* -- ID_MODEL_FROM_DATABASE=Ring Modular? Riptide HSF RT HP Dom -+ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (Ring Modular? Riptide HSF RT HP Dom) - - pci:v0000127Ad00004311sv000013E0sd00000210* -- ID_MODEL_FROM_DATABASE=HP-GVC -+ ID_MODEL_FROM_DATABASE=Riptide HSF 56k PCI Modem (HP-GVC) - - pci:v0000127Ad00004320* - ID_MODEL_FROM_DATABASE=Riptide PCI Audio Controller -@@ -38124,16 +38124,16 @@ pci:v0000127Ad00004321* - ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem - - pci:v0000127Ad00004321sv00001235sd00004321* -- ID_MODEL_FROM_DATABASE=Hewlett Packard DF -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) - - pci:v0000127Ad00004321sv00001235sd00004324* -- ID_MODEL_FROM_DATABASE=Hewlett Packard DF -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) - - pci:v0000127Ad00004321sv000013E0sd00000210* -- ID_MODEL_FROM_DATABASE=Hewlett Packard DF -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Hewlett Packard DF) - - pci:v0000127Ad00004321sv0000144Dsd00002321* -- ID_MODEL_FROM_DATABASE=Riptide -+ ID_MODEL_FROM_DATABASE=Riptide HCF 56k PCI Modem (Riptide) - - pci:v0000127Ad00004322* - ID_MODEL_FROM_DATABASE=Riptide PCI Game Controller -@@ -38190,7 +38190,7 @@ pci:v00001282d00009102* - ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet - - pci:v00001282d00009102sv00000291sd00008212* -- ID_MODEL_FROM_DATABASE=DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit -+ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit) - - pci:v00001282d00009132* - ID_MODEL_FROM_DATABASE=Ethernet 100/10 MBit -@@ -38208,19 +38208,19 @@ pci:v00001283d00008211* - ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 - - pci:v00001283d00008211sv00001043sd00008138* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=ITE 8211F Single Channel UDMA 133 (P5GD1-VW Mainboard) - - pci:v00001283d00008212* - ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller - - pci:v00001283d00008212sv00001283sd00000001* -- ID_MODEL_FROM_DATABASE=IT/ITE8212 Dual channel ATA RAID controller -+ ID_MODEL_FROM_DATABASE=IT8212 Dual channel ATA RAID controller (IT/ITE8212 Dual channel ATA RAID controller) - - pci:v00001283d00008213* - ID_MODEL_FROM_DATABASE=IT8213 IDE Controller - - pci:v00001283d00008213sv00001458sd0000B000* -- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard -+ ID_MODEL_FROM_DATABASE=IT8213 IDE Controller (GA-EG45M-DS2H Mainboard) - - pci:v00001283d00008330* - ID_MODEL_FROM_DATABASE=IT8330G -@@ -38451,19 +38451,19 @@ pci:v000012AEd00000001* - ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet - - pci:v000012AEd00000001sv00001014sd00000104* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX PCI Adapter -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX PCI Adapter) - - pci:v000012AEd00000001sv000012AEsd00000001* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-SX (Universal) -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Gigabit Ethernet-SX (Universal)) - - pci:v000012AEd00000002* - ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) - - pci:v000012AEd00000002sv000010A9sd00008002* -- ID_MODEL_FROM_DATABASE=Acenic Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Acenic Gigabit Ethernet) - - pci:v000012AEd00000002sv000012AEsd00000002* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet-T (3C986-T) -+ ID_MODEL_FROM_DATABASE=AceNIC Gigabit Ethernet (Copper) (Gigabit Ethernet-T (3C986-T)) - - pci:v000012AEd000000FA* - ID_MODEL_FROM_DATABASE=Farallon PN9100-T Gigabit Ethernet -@@ -38505,64 +38505,64 @@ pci:v000012B9d00001006* - ID_MODEL_FROM_DATABASE=WinModem - - pci:v000012B9d00001006sv000012B9sd0000005C* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 3472) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 3472)) - - pci:v000012B9d00001006sv000012B9sd0000005E* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 662975) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 662975)) - - pci:v000012B9d00001006sv000012B9sd00000062* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662978) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662978)) - - pci:v000012B9d00001006sv000012B9sd00000068* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 5690) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 5690)) - - pci:v000012B9d00001006sv000012B9sd0000007A* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 662974) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 662974)) - - pci:v000012B9d00001006sv000012B9sd0000007F* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 5698, 5699) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 5698, 5699)) - - pci:v000012B9d00001006sv000012B9sd00000080* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Models 2975, 3528) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal WinModem (Models 2975, 3528)) - - pci:v000012B9d00001006sv000012B9sd00000081* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Models 2974, 3529) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Models 2974, 3529)) - - pci:v000012B9d00001006sv000012B9sd00000091* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice WinModem (Model 2978) -+ ID_MODEL_FROM_DATABASE=WinModem (USR 56k Internal Voice WinModem (Model 2978)) - - pci:v000012B9d00001007* - ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem - - pci:v000012B9d00001007sv000012B9sd000000A3* -- ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (Model 3595) -+ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem ((Model 3595)) - - pci:v000012B9d00001007sv000012B9sd000000C4* -- ID_MODEL_FROM_DATABASE=U.S. Robotics V.92 Voice Faxmodem (2884A/B/C) -+ ID_MODEL_FROM_DATABASE=USR 56k Internal WinModem (U.S. Robotics V.92 Voice Faxmodem (2884A/B/C)) - - pci:v000012B9d00001008* - ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 - - pci:v000012B9d00001008sv000012B9sd000000A2* -- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 2977) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 2977)) - - pci:v000012B9d00001008sv000012B9sd000000AA* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 2976) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 2976)) - - pci:v000012B9d00001008sv000012B9sd000000AB* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 5609) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 5609)) - - pci:v000012B9d00001008sv000012B9sd000000AC* -- ID_MODEL_FROM_DATABASE=USR 56k Internal Voice Modem (Model 3298) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal Voice Modem (Model 3298)) - - pci:v000012B9d00001008sv000012B9sd000000AD* -- ID_MODEL_FROM_DATABASE=USR 56k Internal FAX Modem (Model 5610) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56k Internal FAX Modem (Model 5610)) - - pci:v000012B9d00001008sv000012B9sd000000D3* -- ID_MODEL_FROM_DATABASE=USR 56K Internal V92 FAX Modem (Model 5610) -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal V92 FAX Modem (Model 5610)) - - pci:v000012B9d00001008sv000012B9sd0000BABA* -- ID_MODEL_FROM_DATABASE=USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk] -+ ID_MODEL_FROM_DATABASE=56K FaxModem Model 5610 (USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk]) - - pci:v000012BA* - ID_VENDOR_FROM_DATABASE=BittWare, Inc. -@@ -38586,7 +38586,7 @@ pci:v000012BEd00003042* - ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite - - pci:v000012BEd00003042sv000012BEsd00003042* -- ID_MODEL_FROM_DATABASE=Anchor Chips Lite Evaluation Board -+ ID_MODEL_FROM_DATABASE=AN3042Q CO-MEM Lite (Anchor Chips Lite Evaluation Board) - - pci:v000012BF* - ID_VENDOR_FROM_DATABASE=Fujifilm Microdevices -@@ -38781,58 +38781,58 @@ pci:v000012D2d00000018* - ID_MODEL_FROM_DATABASE=Riva128 - - pci:v000012D2d00000018sv00001048sd00000C10* -- ID_MODEL_FROM_DATABASE=VICTORY Erazor -+ ID_MODEL_FROM_DATABASE=Riva128 (VICTORY Erazor) - - pci:v000012D2d00000018sv0000107Bsd00008030* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv00001092sd00000350* -- ID_MODEL_FROM_DATABASE=Viper V330 -+ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) - - pci:v000012D2d00000018sv00001092sd00001092* -- ID_MODEL_FROM_DATABASE=Viper V330 -+ ID_MODEL_FROM_DATABASE=Riva128 (Viper V330) - - pci:v000012D2d00000018sv000010B4sd00001B1B* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00001B1D* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00001B1E* -- ID_MODEL_FROM_DATABASE=STB Velocity 128, PAL TV-Out -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128, PAL TV-Out) - - pci:v000012D2d00000018sv000010B4sd00001B20* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 Sapphire -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 Sapphire) - - pci:v000012D2d00000018sv000010B4sd00001B21* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00001B22* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, NTSC TV-Out -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, NTSC TV-Out) - - pci:v000012D2d00000018sv000010B4sd00001B23* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP, PAL TV-Out -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP, PAL TV-Out) - - pci:v000012D2d00000018sv000010B4sd00001B27* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 DVD -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 DVD) - - pci:v000012D2d00000018sv000010B4sd00001B88* -- ID_MODEL_FROM_DATABASE=MVP Pro 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (MVP Pro 128) - - pci:v000012D2d00000018sv000010B4sd0000222A* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) - - pci:v000012D2d00000018sv000010B4sd00002230* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00002232* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128) - - pci:v000012D2d00000018sv000010B4sd00002235* -- ID_MODEL_FROM_DATABASE=STB Velocity 128 AGP -+ ID_MODEL_FROM_DATABASE=Riva128 (STB Velocity 128 AGP) - - pci:v000012D2d00000018sv00002A15sd000054A3* -- ID_MODEL_FROM_DATABASE=3DVision-SAGP / 3DexPlorer 3000 -+ ID_MODEL_FROM_DATABASE=Riva128 (3DVision-SAGP / 3DexPlorer 3000) - - pci:v000012D2d00000019* - ID_MODEL_FROM_DATABASE=Riva128ZX -@@ -38916,7 +38916,7 @@ pci:v000012D8d0000E110* - ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge - - pci:v000012D8d0000E110sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 CompactPCI Bridge -+ ID_MODEL_FROM_DATABASE=PI7C9X110 PCI Express to PCI bridge (CC11/CL11 CompactPCI Bridge) - - pci:v000012D8d0000E111* - ID_MODEL_FROM_DATABASE=PI7C9X111SL PCIe-to-PCI Reversible Bridge -@@ -38940,10 +38940,10 @@ pci:v000012D9d00001078* - ID_MODEL_FROM_DATABASE=Prosody X class e1000 device - - pci:v000012D9d00001078sv000012D9sd0000000D* -- ID_MODEL_FROM_DATABASE=Prosody X PCI -+ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X PCI) - - pci:v000012D9d00001078sv000012D9sd0000000E* -- ID_MODEL_FROM_DATABASE=Prosody X cPCI -+ ID_MODEL_FROM_DATABASE=Prosody X class e1000 device (Prosody X cPCI) - - pci:v000012DA* - ID_VENDOR_FROM_DATABASE=True Time Inc. -@@ -39015,67 +39015,67 @@ pci:v000012EBd00000001* - ID_MODEL_FROM_DATABASE=Vortex 1 - - pci:v000012EBd00000001sv0000104Dsd00008036* -- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) - - pci:v000012EBd00000001sv00001092sd00002000* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv00001092sd00002100* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv00001092sd00002110* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv00001092sd00002200* -- ID_MODEL_FROM_DATABASE=Sonic Impact A3D -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Sonic Impact A3D) - - pci:v000012EBd00000001sv0000122Dsd00001002* -- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) - - pci:v000012EBd00000001sv000012EBsd00000001* -- ID_MODEL_FROM_DATABASE=AU8820 Vortex Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 1 (AU8820 Vortex Digital Audio Processor) - - pci:v000012EBd00000001sv00005053sd00003355* -- ID_MODEL_FROM_DATABASE=Montego -+ ID_MODEL_FROM_DATABASE=Vortex 1 (Montego) - - pci:v000012EBd00000001sv000050B2sd00001111* -- ID_MODEL_FROM_DATABASE=XLerate -+ ID_MODEL_FROM_DATABASE=Vortex 1 (XLerate) - - pci:v000012EBd00000002* - ID_MODEL_FROM_DATABASE=Vortex 2 - - pci:v000012EBd00000002sv0000104Dsd00008049* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv0000104Dsd0000807B* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv00001092sd00003000* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003001* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003002* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003003* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv00001092sd00003004* -- ID_MODEL_FROM_DATABASE=Monster Sound II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Monster Sound II) - - pci:v000012EBd00000002sv000012EBsd00000002* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv000012EBsd00000088* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv0000144Dsd00003510* -- ID_MODEL_FROM_DATABASE=AU8830 Vortex 3D Digital Audio Processor -+ ID_MODEL_FROM_DATABASE=Vortex 2 (AU8830 Vortex 3D Digital Audio Processor) - - pci:v000012EBd00000002sv00005053sd00003356* -- ID_MODEL_FROM_DATABASE=Montego II -+ ID_MODEL_FROM_DATABASE=Vortex 2 (Montego II) - - pci:v000012EBd00000003* - ID_MODEL_FROM_DATABASE=AU8810 Vortex Digital Audio Processor -@@ -39465,16 +39465,16 @@ pci:v00001317d00000985* - ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 - - pci:v00001317d00000985sv00001734sd0000100C* -- ID_MODEL_FROM_DATABASE=Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter -+ ID_MODEL_FROM_DATABASE=NC100 Network Everywhere Fast Ethernet 10/100 (Scenic N300 ADMtek AN983 10/100 Mbps PCI Adapter) - - pci:v00001317d00001985* - ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet - - pci:v00001317d00001985sv00001385sd0000511A* -- ID_MODEL_FROM_DATABASE=FA511 -+ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (FA511) - - pci:v00001317d00001985sv00001395sd00002103* -- ID_MODEL_FROM_DATABASE=CB100-EZ (4-LED version) -+ ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet (CB100-EZ (4-LED version)) - - pci:v00001317d00002850* - ID_MODEL_FROM_DATABASE=HSP MicroModem 56 -@@ -39486,10 +39486,10 @@ pci:v00001317d00008201* - ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface - - pci:v00001317d00008201sv000010B8sd00002635* -- ID_MODEL_FROM_DATABASE=SMC2635W v1 802.11b Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v1 802.11b Wireless Cardbus Adapter) - - pci:v00001317d00008201sv00001317sd00008201* -- ID_MODEL_FROM_DATABASE=SMC2635W v2 802.11b Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface (SMC2635W v2 802.11b Wireless Cardbus Adapter) - - pci:v00001317d00008211* - ID_MODEL_FROM_DATABASE=ADM8211 802.11b Wireless Interface -@@ -39510,13 +39510,13 @@ pci:v00001319d00000801* - ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] - - pci:v00001319d00000801sv00001319sd00001319* -- ID_MODEL_FROM_DATABASE=FM801 PCI Audio -+ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801] (FM801 PCI Audio) - - pci:v00001319d00000802* - ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] - - pci:v00001319d00000802sv00001319sd00001319* -- ID_MODEL_FROM_DATABASE=FM801 PCI Joystick -+ ID_MODEL_FROM_DATABASE=Xwave QS3000A [FM801 game port] (FM801 PCI Joystick) - - pci:v00001319d00001000* - ID_MODEL_FROM_DATABASE=FM801 PCI Audio -@@ -39618,7 +39618,7 @@ pci:v0000131Fd00002030* - ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 - - pci:v0000131Fd00002030sv0000131Fsd00002030* -- ID_MODEL_FROM_DATABASE=PCI Serial Card -+ ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16550 (PCI Serial Card) - - pci:v0000131Fd00002031* - ID_MODEL_FROM_DATABASE=CyberSerial (2-port) 16650 -@@ -39834,7 +39834,7 @@ pci:v0000134Dd00007890* - ID_MODEL_FROM_DATABASE=HSP MicroModem 56 - - pci:v0000134Dd00007890sv0000134Dsd00000001* -- ID_MODEL_FROM_DATABASE=PCT789 adapter -+ ID_MODEL_FROM_DATABASE=HSP MicroModem 56 (PCT789 adapter) - - pci:v0000134Dd00007891* - ID_MODEL_FROM_DATABASE=HSP MicroModem 56 -@@ -40119,7 +40119,7 @@ pci:v00001371d0000434E* - ID_MODEL_FROM_DATABASE=GigaCard Network Adapter - - pci:v00001371d0000434Esv00001371sd0000434E* -- ID_MODEL_FROM_DATABASE=N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L) -+ ID_MODEL_FROM_DATABASE=GigaCard Network Adapter (N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)) - - pci:v00001373* - ID_VENDOR_FROM_DATABASE=Silicon Vision Inc -@@ -40515,10 +40515,10 @@ pci:v00001394d00000001* - ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet - - pci:v00001394d00000001sv00001186sd00004800* -- ID_MODEL_FROM_DATABASE=DGE-500SX -+ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (DGE-500SX) - - pci:v00001394d00000001sv00001394sd00000001* -- ID_MODEL_FROM_DATABASE=NetCelerator Adapter -+ ID_MODEL_FROM_DATABASE=LXT1001 Gigabit Ethernet (NetCelerator Adapter) - - pci:v00001395* - ID_VENDOR_FROM_DATABASE=Ambicom Inc -@@ -40533,40 +40533,40 @@ pci:v00001397d000008B4* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] - - pci:v00001397d000008B4sv00001397sd0000B520* -- ID_MODEL_FROM_DATABASE=HFC-4S [IOB4ST] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [IOB4ST]) - - pci:v00001397d000008B4sv00001397sd0000B540* -- ID_MODEL_FROM_DATABASE=HFC-4S [Swyx 4xS0 SX2 QuadBri] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Swyx 4xS0 SX2 QuadBri]) - - pci:v00001397d000008B4sv00001397sd0000B550* -- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns quadBRI] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns quadBRI]) - - pci:v00001397d000008B4sv00001397sd0000B556* -- ID_MODEL_FROM_DATABASE=HFC-4S [Junghanns DuoDBRI] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns DuoDBRI]) - - pci:v00001397d000008B4sv00001397sd0000E888* -- ID_MODEL_FROM_DATABASE=HFC-4S [OpenVox B200P / B400P] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [OpenVox B200P / B400P]) - - pci:v00001397d000016B8* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] - - pci:v00001397d000016B8sv00001397sd0000B562* -- ID_MODEL_FROM_DATABASE=HFC-8S [IOB8ST] -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [IOB8ST]) - - pci:v00001397d00002BD0* - ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] - - pci:v00001397d00002BD0sv00000675sd00001704* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C) -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C)) - - pci:v00001397d00002BD0sv00000675sd00001708* -- ID_MODEL_FROM_DATABASE=ISDN Adapter (PCI Bus, D, C, ACPI) -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Adapter (PCI Bus, D, C, ACPI)) - - pci:v00001397d00002BD0sv00001397sd00002BD0* -- ID_MODEL_FROM_DATABASE=ISDN Board -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (ISDN Board) - - pci:v00001397d00002BD0sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CI1-1-Harp -+ ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] (CI1-1-Harp) - - pci:v00001397d000030B1* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] -@@ -40665,46 +40665,46 @@ pci:v000013A3d0000002F* - ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor - - pci:v000013A3d0000002Fsv000013A3sd00001600* -- ID_MODEL_FROM_DATABASE=DR1600 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1600 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001605* -- ID_MODEL_FROM_DATABASE=DR1605 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1605 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001610* -- ID_MODEL_FROM_DATABASE=DR1610 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1610 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001615* -- ID_MODEL_FROM_DATABASE=DR1615 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1615 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001620* -- ID_MODEL_FROM_DATABASE=DR1620 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1620 Acceleration Card) - - pci:v000013A3d0000002Fsv000013A3sd00001625* -- ID_MODEL_FROM_DATABASE=DR1625 Acceleration Card -+ ID_MODEL_FROM_DATABASE=9725 Compression and Security Processor (DR1625 Acceleration Card) - - pci:v000013A3d00000033* - ID_MODEL_FROM_DATABASE=8201 Acceleration Processor - - pci:v000013A3d00000033sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1710 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8201 Acceleration Processor (DX1710 Acceleration Card) - - pci:v000013A3d00000034* - ID_MODEL_FROM_DATABASE=8202 Acceleration Processor - - pci:v000013A3d00000034sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1720 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8202 Acceleration Processor (DX1720 Acceleration Card) - - pci:v000013A3d00000035* - ID_MODEL_FROM_DATABASE=8203 Acceleration Processor - - pci:v000013A3d00000035sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1730 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8203 Acceleration Processor (DX1730 Acceleration Card) - - pci:v000013A3d00000037* - ID_MODEL_FROM_DATABASE=8204 Acceleration Processor - - pci:v000013A3d00000037sv000013A3sd00000036* -- ID_MODEL_FROM_DATABASE=DX1740 Acceleration Card -+ ID_MODEL_FROM_DATABASE=8204 Acceleration Processor (DX1740 Acceleration Card) - - pci:v000013A4* - ID_VENDOR_FROM_DATABASE=Rascom Inc -@@ -41067,7 +41067,7 @@ pci:v000013F0d00000200* - ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY - - pci:v000013F0d00000200sv00001043sd00008213* -- ID_MODEL_FROM_DATABASE=NX1001 -+ ID_MODEL_FROM_DATABASE=IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (NX1001) - - pci:v000013F0d00000201* - ID_MODEL_FROM_DATABASE=ST201 Sundance Ethernet -@@ -41079,7 +41079,7 @@ pci:v000013F0d00001023* - ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet - - pci:v000013F0d00001023sv00001043sd00008180* -- ID_MODEL_FROM_DATABASE=NX1101 -+ ID_MODEL_FROM_DATABASE=IP1000 Family Gigabit Ethernet (NX1101) - - pci:v000013F1* - ID_VENDOR_FROM_DATABASE=Oce' - Technologies B.V. -@@ -41109,76 +41109,76 @@ pci:v000013F6d00000100* - ID_MODEL_FROM_DATABASE=CM8338A - - pci:v000013F6d00000100sv000013F6sd0000FFFF* -- ID_MODEL_FROM_DATABASE=CMI8338/C3DX PCI Audio Device -+ ID_MODEL_FROM_DATABASE=CM8338A (CMI8338/C3DX PCI Audio Device) - - pci:v000013F6d00000101* - ID_MODEL_FROM_DATABASE=CM8338B - - pci:v000013F6d00000101sv000013F6sd00000101* -- ID_MODEL_FROM_DATABASE=CMI8338-031 PCI Audio Device -+ ID_MODEL_FROM_DATABASE=CM8338B (CMI8338-031 PCI Audio Device) - - pci:v000013F6d00000111* - ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio - - pci:v000013F6d00000111sv00001019sd00000970* -- ID_MODEL_FROM_DATABASE=P6STP-FL motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (P6STP-FL motherboard) - - pci:v000013F6d00000111sv00001043sd00008035* -- ID_MODEL_FROM_DATABASE=CUSI-FX motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CUSI-FX motherboard) - - pci:v000013F6d00000111sv00001043sd00008077* -- ID_MODEL_FROM_DATABASE=CMI8738 6-channel audio controller -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6-channel audio controller) - - pci:v000013F6d00000111sv00001043sd000080E2* -- ID_MODEL_FROM_DATABASE=CMI8738 6ch-MX -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738 6ch-MX) - - pci:v000013F6d00000111sv000013F6sd00000111* -- ID_MODEL_FROM_DATABASE=CMI8738/C3DX PCI Audio Device -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CMI8738/C3DX PCI Audio Device) - - pci:v000013F6d00000111sv000013F6sd00009761* -- ID_MODEL_FROM_DATABASE=Theatron Agrippa -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Theatron Agrippa) - - pci:v000013F6d00000111sv0000153Bsd00001144* -- ID_MODEL_FROM_DATABASE=Aureon 5.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 5.1) - - pci:v000013F6d00000111sv0000153Bsd00001170* -- ID_MODEL_FROM_DATABASE=Aureon 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Aureon 7.1) - - pci:v000013F6d00000111sv00001681sd0000A000* -- ID_MODEL_FROM_DATABASE=Gamesurround MUSE XL -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Gamesurround MUSE XL) - - pci:v000013F6d00000111sv000017ABsd00000604* -- ID_MODEL_FROM_DATABASE=PSC604 Dynamic Edge -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC604 Dynamic Edge) - - pci:v000013F6d00000111sv000017ABsd00000605* -- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) - - pci:v000013F6d00000111sv000017ABsd00007777* -- ID_MODEL_FROM_DATABASE=PSC605 Sonic Edge -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (PSC605 Sonic Edge) - - pci:v000013F6d00000111sv0000270Fsd00001103* -- ID_MODEL_FROM_DATABASE=CT-7NJS Ultra motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (CT-7NJS Ultra motherboard) - - pci:v000013F6d00000111sv0000270Fsd0000F462* -- ID_MODEL_FROM_DATABASE=7NJL1 motherboard -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (7NJL1 motherboard) - - pci:v000013F6d00000111sv0000584Dsd00003731* -- ID_MODEL_FROM_DATABASE=Digital X-Mystique -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Digital X-Mystique) - - pci:v000013F6d00000111sv0000584Dsd00003741* -- ID_MODEL_FROM_DATABASE=X-Plosion 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Plosion 7.1) - - pci:v000013F6d00000111sv0000584Dsd00003751* -- ID_MODEL_FROM_DATABASE=X-Raider 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Raider 7.1) - - pci:v000013F6d00000111sv0000584Dsd00003761* -- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP) - - pci:v000013F6d00000111sv0000584Dsd00003771* -- ID_MODEL_FROM_DATABASE=X-Mystique 7.1 LP Value -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (X-Mystique 7.1 LP Value) - - pci:v000013F6d00000111sv00007284sd00008384* -- ID_MODEL_FROM_DATABASE=Striker 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8738/CMI8768 PCI Audio (Striker 7.1) - - pci:v000013F6d00000211* - ID_MODEL_FROM_DATABASE=CM8738 -@@ -41187,85 +41187,85 @@ pci:v000013F6d00005011* - ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] - - pci:v000013F6d00005011sv000013F6sd00005011* -- ID_MODEL_FROM_DATABASE=HDA Controller -+ ID_MODEL_FROM_DATABASE=CM8888 [Oxygen Express] (HDA Controller) - - pci:v000013F6d00008788* - ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] - - pci:v000013F6d00008788sv00001043sd00008269* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2)) - - pci:v000013F6d00008788sv00001043sd00008275* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) - - pci:v000013F6d00008788sv00001043sd000082B7* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar D2X) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar D2X)) - - pci:v000013F6d00008788sv00001043sd00008314* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3)) - - pci:v000013F6d00008788sv00001043sd00008327* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar DX) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) - - pci:v000013F6d00008788sv00001043sd0000834F* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar D1) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar D1)) - - pci:v000013F6d00008788sv00001043sd0000835C* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Essence STX) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX)) - - pci:v000013F6d00008788sv00001043sd0000835D* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar ST) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar ST)) - - pci:v000013F6d00008788sv00001043sd0000835E* -- ID_MODEL_FROM_DATABASE=Virtuoso 200 (Xonar HDAV1.3 Slim) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 200 (Xonar HDAV1.3 Slim)) - - pci:v000013F6d00008788sv00001043sd0000838E* -- ID_MODEL_FROM_DATABASE=Virtuoso 66 (Xonar DS) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 66 (Xonar DS)) - - pci:v000013F6d00008788sv00001043sd00008428* -- ID_MODEL_FROM_DATABASE=Virtuoso 100 (Xonar Xense) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Xense)) - - pci:v000013F6d00008788sv00001043sd00008467* -- ID_MODEL_FROM_DATABASE=CMI8786 (Xonar DG) -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) - - pci:v000013F6d00008788sv000013F6sd00008782* -- ID_MODEL_FROM_DATABASE=PCI 2.0 HD Audio -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) - - pci:v000013F6d00008788sv000013F6sd0000FFFF* -- ID_MODEL_FROM_DATABASE=CMI8787-HG2PCI -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8787-HG2PCI) - - pci:v000013F6d00008788sv000014C3sd00001710* -- ID_MODEL_FROM_DATABASE=HiFier Fantasia -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Fantasia) - - pci:v000013F6d00008788sv000014C3sd00001711* -- ID_MODEL_FROM_DATABASE=HiFier Serenade -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade) - - pci:v000013F6d00008788sv000014C3sd00001713* -- ID_MODEL_FROM_DATABASE=HiFier Serenade III -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HiFier Serenade III) - - pci:v000013F6d00008788sv00001A58sd00000910* -- ID_MODEL_FROM_DATABASE=Barracuda AC-1 -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Barracuda AC-1) - - pci:v000013F6d00008788sv0000415Asd00005431* -- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1) - - pci:v000013F6d00008788sv00005431sd0000017A* -- ID_MODEL_FROM_DATABASE=X-Meridian 7.1 2G -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (X-Meridian 7.1 2G) - - pci:v000013F6d00008788sv0000584Dsd00003781* -- ID_MODEL_FROM_DATABASE=HDA X-Purity 7.1 Platinum -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (HDA X-Purity 7.1 Platinum) - - pci:v000013F6d00008788sv00007284sd00009761* -- ID_MODEL_FROM_DATABASE=CLARO -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO) - - pci:v000013F6d00008788sv00007284sd00009781* -- ID_MODEL_FROM_DATABASE=CLARO halo -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO halo) - - pci:v000013F6d00008788sv00007284sd00009783* -- ID_MODEL_FROM_DATABASE=eCLARO -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (eCLARO) - - pci:v000013F6d00008788sv00007284sd00009787* -- ID_MODEL_FROM_DATABASE=CLARO II -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CLARO II) - - pci:v000013F7* - ID_VENDOR_FROM_DATABASE=Wildfire Communications -@@ -41298,13 +41298,13 @@ pci:v000013FEd00001600* - ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) - - pci:v000013FEd00001600sv00001601sd00000002* -- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1601 2-port unisolated RS-422/485) - - pci:v000013FEd00001600sv00001602sd00000002* -- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1602 2-port isolated RS-422/485) - - pci:v000013FEd00001600sv00001612sd00000004* -- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 0) (PCI-1612 4-port RS-232/422/485) - - pci:v000013FEd00001603* - ID_MODEL_FROM_DATABASE=PCI-1603 2-port isolated RS-232/current loop -@@ -41316,13 +41316,13 @@ pci:v000013FEd000016FF* - ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) - - pci:v000013FEd000016FFsv00001601sd00000000* -- ID_MODEL_FROM_DATABASE=PCI-1601 2-port unisolated RS-422/485 PCI communications card -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1601 2-port unisolated RS-422/485 PCI communications card) - - pci:v000013FEd000016FFsv00001602sd00000000* -- ID_MODEL_FROM_DATABASE=PCI-1602 2-port isolated RS-422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1602 2-port isolated RS-422/485) - - pci:v000013FEd000016FFsv00001612sd00000000* -- ID_MODEL_FROM_DATABASE=PCI-1612 4-port RS-232/422/485 -+ ID_MODEL_FROM_DATABASE=PCI-16xx series PCI multiport serial board (function 1: RX/TX steering CPLD) (PCI-1612 4-port RS-232/422/485) - - pci:v000013FEd00001711* - ID_MODEL_FROM_DATABASE=PCI-1711 16-channel data acquisition card 12-bit, 100kS/s -@@ -41676,37 +41676,37 @@ pci:v00001409d00007168* - ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) - - pci:v00001409d00007168sv00001409sd00000002* -- ID_MODEL_FROM_DATABASE=SER4036A3V (2x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4036A3V (2x RS232 port)) - - pci:v00001409d00007168sv00001409sd00004027* -- ID_MODEL_FROM_DATABASE=SER4027A (1x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027A (1x RS232 port)) - - pci:v00001409d00007168sv00001409sd00004037* -- ID_MODEL_FROM_DATABASE=SER4037A (2x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037A (2x RS232 port)) - - pci:v00001409d00007168sv00001409sd00004056* -- ID_MODEL_FROM_DATABASE=SER4056A (4x RS232) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056A (4x RS232)) - - pci:v00001409d00007168sv00001409sd00005027* -- ID_MODEL_FROM_DATABASE=SER4027D -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4027D) - - pci:v00001409d00007168sv00001409sd00005037* -- ID_MODEL_FROM_DATABASE=SER4037D (2x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4037D (2x RS232 port)) - - pci:v00001409d00007168sv00001409sd00005066* -- ID_MODEL_FROM_DATABASE=SER4066R (8x RS232) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4066R (8x RS232)) - - pci:v00001409d00007168sv00001409sd00006056* -- ID_MODEL_FROM_DATABASE=SER4056D (4x RS232 port) -+ ID_MODEL_FROM_DATABASE=PCI2S550 (Dual 16550 UART) (SER4056D (4x RS232 port)) - - pci:v00001409d00007268* - ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) - - pci:v00001409d00007268sv00001409sd00000103* -- ID_MODEL_FROM_DATABASE=PAR4008A -+ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4008A) - - pci:v00001409d00007268sv00001409sd00000104* -- ID_MODEL_FROM_DATABASE=PAR4018A -+ ID_MODEL_FROM_DATABASE=SUN1888 (Dual IEEE1284 parallel port) (PAR4018A) - - pci:v0000140A* - ID_VENDOR_FROM_DATABASE=DSP Research Inc -@@ -41739,106 +41739,106 @@ pci:v00001412d00001712* - ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller - - pci:v00001412d00001712sv00001412sd00001712* -- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24) - - pci:v00001412d00001712sv00001412sd00003632* -- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 192 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 192) - - pci:v00001412d00001712sv00001412sd0000D630* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010) - - pci:v00001412d00001712sv00001412sd0000D631* -- ID_MODEL_FROM_DATABASE=M-Audio Delta DiO -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta DiO) - - pci:v00001412d00001712sv00001412sd0000D632* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 66 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 66) - - pci:v00001412d00001712sv00001412sd0000D633* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 44 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 44) - - pci:v00001412d00001712sv00001412sd0000D634* -- ID_MODEL_FROM_DATABASE=M-Audio Delta Audiophile 2496 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta Audiophile 2496) - - pci:v00001412d00001712sv00001412sd0000D635* -- ID_MODEL_FROM_DATABASE=M-Audio Delta TDIF -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta TDIF) - - pci:v00001412d00001712sv00001412sd0000D637* -- ID_MODEL_FROM_DATABASE=M-Audio Delta RBUS -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta RBUS) - - pci:v00001412d00001712sv00001412sd0000D638* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 410 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 410) - - pci:v00001412d00001712sv00001412sd0000D63B* -- ID_MODEL_FROM_DATABASE=M-Audio Delta 1010LT -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (M-Audio Delta 1010LT) - - pci:v00001412d00001712sv00001412sd0000D63C* -- ID_MODEL_FROM_DATABASE=Digigram VX442 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Digigram VX442) - - pci:v00001412d00001712sv00001416sd00001712* -- ID_MODEL_FROM_DATABASE=Hoontech ST Audio DSP 24 Media 7.1 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Hoontech ST Audio DSP 24 Media 7.1) - - pci:v00001412d00001712sv0000153Bsd00001115* -- ID_MODEL_FROM_DATABASE=EWS88 MT -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT) - - pci:v00001412d00001712sv0000153Bsd00001125* -- ID_MODEL_FROM_DATABASE=EWS88 MT (Master) -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 MT (Master)) - - pci:v00001412d00001712sv0000153Bsd0000112B* -- ID_MODEL_FROM_DATABASE=EWS88 D -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D) - - pci:v00001412d00001712sv0000153Bsd0000112C* -- ID_MODEL_FROM_DATABASE=EWS88 D (Master) -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWS88 D (Master)) - - pci:v00001412d00001712sv0000153Bsd00001130* -- ID_MODEL_FROM_DATABASE=EWX 24/96 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (EWX 24/96) - - pci:v00001412d00001712sv0000153Bsd00001138* -- ID_MODEL_FROM_DATABASE=DMX 6fire 24/96 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (DMX 6fire 24/96) - - pci:v00001412d00001712sv0000153Bsd00001151* -- ID_MODEL_FROM_DATABASE=PHASE88 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (PHASE88) - - pci:v00001412d00001712sv000016CEsd00001040* -- ID_MODEL_FROM_DATABASE=Edirol DA-2496 -+ ID_MODEL_FROM_DATABASE=ICE1712 [Envy24] PCI Multi-Channel I/O Controller (Edirol DA-2496) - - pci:v00001412d00001724* - ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller - - pci:v00001412d00001724sv000010B0sd00000200* -- ID_MODEL_FROM_DATABASE=Hollywood@Home 7.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Hollywood@Home 7.1) - - pci:v00001412d00001724sv00001412sd00001724* -- ID_MODEL_FROM_DATABASE=Albatron PX865PE 7.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Albatron PX865PE 7.1) - - pci:v00001412d00001724sv00001412sd00003630* -- ID_MODEL_FROM_DATABASE=M-Audio Revolution 7.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 7.1) - - pci:v00001412d00001724sv00001412sd00003631* -- ID_MODEL_FROM_DATABASE=M-Audio Revolution 5.1 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (M-Audio Revolution 5.1) - - pci:v00001412d00001724sv0000153Bsd00001145* -- ID_MODEL_FROM_DATABASE=Aureon 7.1 Space -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Space) - - pci:v00001412d00001724sv0000153Bsd00001147* -- ID_MODEL_FROM_DATABASE=Aureon 5.1 Sky -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 5.1 Sky) - - pci:v00001412d00001724sv0000153Bsd00001150* -- ID_MODEL_FROM_DATABASE=PHASE 22 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PHASE 22) - - pci:v00001412d00001724sv0000153Bsd00001153* -- ID_MODEL_FROM_DATABASE=Aureon 7.1 Universe -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (Aureon 7.1 Universe) - - pci:v00001412d00001724sv000017ABsd00001906* -- ID_MODEL_FROM_DATABASE=PSC 724 [Ultimate Edge] -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (PSC 724 [Ultimate Edge]) - - pci:v00001412d00001724sv0000270Fsd0000F641* -- ID_MODEL_FROM_DATABASE=ZNF3-150 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-150) - - pci:v00001412d00001724sv0000270Fsd0000F645* -- ID_MODEL_FROM_DATABASE=ZNF3-250 -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (ZNF3-250) - - pci:v00001412d00001724sv00003130sd00004154* -- ID_MODEL_FROM_DATABASE=MAYA 44 MKII -+ ID_MODEL_FROM_DATABASE=VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (MAYA 44 MKII) - - pci:v00001413* - ID_VENDOR_FROM_DATABASE=Addonics -@@ -41904,28 +41904,28 @@ pci:v00001415d00009501* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) - - pci:v00001415d00009501sv000012C4sd00000201* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (2 port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (2 port)) - - pci:v00001415d00009501sv000012C4sd00000202* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (4 port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (4 port)) - - pci:v00001415d00009501sv000012C4sd00000203* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (8 port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/cPCI (8 port)) - - pci:v00001415d00009501sv000012C4sd00000210* -- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p1-4) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (Titan/104-Plus (8 port, p1-4)) - - pci:v00001415d00009501sv0000131Fsd00002050* -- ID_MODEL_FROM_DATABASE=CyberPro (4-port) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberPro (4-port)) - - pci:v00001415d00009501sv0000131Fsd00002051* -- ID_MODEL_FROM_DATABASE=CyberSerial 4S Plus -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (CyberSerial 4S Plus) - - pci:v00001415d00009501sv000015EDsd00002000* -- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 8 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 8) - - pci:v00001415d00009501sv000015EDsd00002001* -- ID_MODEL_FROM_DATABASE=MCCR Serial p0-3 of 16 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 0 (Uart) (MCCR Serial p0-3 of 16) - - pci:v00001415d00009505* - ID_MODEL_FROM_DATABASE=OXuPCI952 (Dual 16C950 UART) -@@ -41940,19 +41940,19 @@ pci:v00001415d00009510* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) - - pci:v00001415d00009510sv000012C4sd00000200* -- ID_MODEL_FROM_DATABASE=Titan/cPCI (Unused) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (Disabled) (Titan/cPCI (Unused)) - - pci:v00001415d00009511* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) - - pci:v00001415d00009511sv000012C4sd00000211* -- ID_MODEL_FROM_DATABASE=Titan/104-Plus (8 port, p5-8) -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (Titan/104-Plus (8 port, p5-8)) - - pci:v00001415d00009511sv000015EDsd00002000* -- ID_MODEL_FROM_DATABASE=MCCR Serial p4-7 of 8 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-7 of 8) - - pci:v00001415d00009511sv000015EDsd00002001* -- ID_MODEL_FROM_DATABASE=MCCR Serial p4-15 of 16 -+ ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (8bit bus) (MCCR Serial p4-15 of 16) - - pci:v00001415d00009512* - ID_MODEL_FROM_DATABASE=OX16PCI954 (Quad 16950 UART) function 1 (32bit bus) -@@ -41970,10 +41970,10 @@ pci:v00001415d0000C158* - ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART - - pci:v00001415d0000C158sv0000E4BFsd0000C504* -- ID_MODEL_FROM_DATABASE=CP4-SCAT Wireless Technologies Carrier Board -+ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (CP4-SCAT Wireless Technologies Carrier Board) - - pci:v00001415d0000C158sv0000E4BFsd0000D551* -- ID_MODEL_FROM_DATABASE=DU1-MUSTANG Dual-Port RS-485 Interface -+ ID_MODEL_FROM_DATABASE=OXPCIe952 Dual 16C950 UART (DU1-MUSTANG Dual-Port RS-485 Interface) - - pci:v00001415d0000C308* - ID_MODEL_FROM_DATABASE=EX-44016 16-port serial -@@ -42042,7 +42042,7 @@ pci:v00001425d00000030* - ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter - - pci:v00001425d00000030sv0000103Csd0000705E* -- ID_MODEL_FROM_DATABASE=PCIe 10GBase-SR [AD386A] -+ ID_MODEL_FROM_DATABASE=T310 10GbE Single Port Adapter (PCIe 10GBase-SR [AD386A]) - - pci:v00001425d00000031* - ID_MODEL_FROM_DATABASE=T320 10GbE Dual Port Adapter -@@ -43170,13 +43170,13 @@ pci:v0000144Dd0000A820* - ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X - - pci:v0000144Dd0000A820sv00001028sd00001F95* -- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 400GB -+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 400GB) - - pci:v0000144Dd0000A820sv00001028sd00001F96* -- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 800GB -+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 800GB) - - pci:v0000144Dd0000A820sv00001028sd00001F97* -- ID_MODEL_FROM_DATABASE=Express Flash NVMe XS1715 SSD 1600GB -+ ID_MODEL_FROM_DATABASE=NVMe SSD Controller 171X (Express Flash NVMe XS1715 SSD 1600GB) - - pci:v0000144E* - ID_VENDOR_FROM_DATABASE=OLITEC -@@ -43656,19 +43656,19 @@ pci:v000014C1d00000008* - ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC - - pci:v000014C1d00000008sv000014C1sd00000008* -- ID_MODEL_FROM_DATABASE=10G-PCIE-8A -+ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A) - - pci:v000014C1d00000008sv000014C1sd00000009* -- ID_MODEL_FROM_DATABASE=10G-PCIE-8A (MSI-X firmware) -+ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8A (MSI-X firmware)) - - pci:v000014C1d00000008sv000014C1sd0000000A* -- ID_MODEL_FROM_DATABASE=10G-PCIE-8B -+ ID_MODEL_FROM_DATABASE=Myri-10G Dual-Protocol NIC (10G-PCIE-8B) - - pci:v000014C1d00008043* - ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect - - pci:v000014C1d00008043sv0000103Csd00001240* -- ID_MODEL_FROM_DATABASE=Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) -+ ID_MODEL_FROM_DATABASE=Myrinet 2000 Scalable Cluster Interconnect (Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)) - - pci:v000014C2* - ID_VENDOR_FROM_DATABASE=DTK Computer -@@ -43929,19 +43929,19 @@ pci:v000014E4d00001600* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express - - pci:v000014E4d00001600sv00001028sd000001C1* -- ID_MODEL_FROM_DATABASE=Precision 490 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Precision 490) - - pci:v000014E4d00001600sv00001028sd000001C2* -- ID_MODEL_FROM_DATABASE=Latitude D620 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (Latitude D620) - - pci:v000014E4d00001600sv0000103Csd00003015* -- ID_MODEL_FROM_DATABASE=PCIe LAN on Motherboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (PCIe LAN on Motherboard) - - pci:v000014E4d00001600sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 Onboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (E4500 Onboard) - - pci:v000014E4d00001600sv00001259sd00002705* -- ID_MODEL_FROM_DATABASE=AT-2711FX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5752 Gigabit Ethernet PCI Express (AT-2711FX) - - pci:v000014E4d00001601* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5752M Gigabit Ethernet PCI Express -@@ -43956,52 +43956,52 @@ pci:v000014E4d00001639* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet - - pci:v000014E4d00001639sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 BCM5709 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R710 BCM5709 Gigabit Ethernet) - - pci:v000014E4d00001639sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 BCM5709 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge R610 BCM5709 Gigabit Ethernet) - - pci:v000014E4d00001639sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 BCM5709 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (PowerEdge T610 BCM5709 Gigabit Ethernet) - - pci:v000014E4d00001639sv0000103Csd00007055* -- ID_MODEL_FROM_DATABASE=NC382i Integrated Multi-port PCI Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382i Integrated Multi-port PCI Express Gigabit Server Adapter) - - pci:v000014E4d00001639sv0000103Csd00007059* -- ID_MODEL_FROM_DATABASE=NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter) - - pci:v000014E4d00001639sv000010A9sd00008027* -- ID_MODEL_FROM_DATABASE=Quad port Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709 Gigabit Ethernet (Quad port Gigabit Ethernet Controller) - - pci:v000014E4d0000163A* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet - - pci:v000014E4d0000163Asv00001028sd0000027B* -- ID_MODEL_FROM_DATABASE=PowerEdge M805 Broadcom NetXtreme II BCM5709S -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M805 Broadcom NetXtreme II BCM5709S) - - pci:v000014E4d0000163Asv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 BCM5709S Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (PowerEdge M710 BCM5709S Gigabit Ethernet) - - pci:v000014E4d0000163Asv0000103Csd0000171D* -- ID_MODEL_FROM_DATABASE=NC382m Dual Port 1GbE Multifunction BL-c Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382m Dual Port 1GbE Multifunction BL-c Adapter) - - pci:v000014E4d0000163Asv0000103Csd00007056* -- ID_MODEL_FROM_DATABASE=NC382i Integrated Quad Port PCI Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (NC382i Integrated Quad Port PCI Express Gigabit Server Adapter) - - pci:v000014E4d0000163Asv00001259sd00002984* -- ID_MODEL_FROM_DATABASE=AT-2973SX -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5709S Gigabit Ethernet (AT-2973SX) - - pci:v000014E4d0000163B* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet - - pci:v000014E4d0000163Bsv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 BCM5716 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R410 BCM5716 Gigabit Ethernet) - - pci:v000014E4d0000163Bsv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 BCM5716 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge T410 BCM5716 Gigabit Ethernet) - - pci:v000014E4d0000163Bsv00001028sd000002F1* -- ID_MODEL_FROM_DATABASE=PowerEdge R510 BCM5716 Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716 Gigabit Ethernet (PowerEdge R510 BCM5716 Gigabit Ethernet) - - pci:v000014E4d0000163C* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5716S Gigabit Ethernet -@@ -44028,220 +44028,220 @@ pci:v000014E4d00001644* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet - - pci:v000014E4d00001644sv00001014sd00000277* -- ID_MODEL_FROM_DATABASE=Broadcom Vigil B5700 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom Vigil B5700 1000Base-T) - - pci:v000014E4d00001644sv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) - - pci:v000014E4d00001644sv00001028sd00000106* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700) - - pci:v000014E4d00001644sv00001028sd00000109* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000Base-T) - - pci:v000014E4d00001644sv00001028sd0000010A* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5700 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (Broadcom BCM5700 1000BaseTX) - - pci:v000014E4d00001644sv000010B7sd00001000* -- ID_MODEL_FROM_DATABASE=3C996-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-T 1000Base-T) - - pci:v000014E4d00001644sv000010B7sd00001001* -- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996B-T 1000Base-T) - - pci:v000014E4d00001644sv000010B7sd00001002* -- ID_MODEL_FROM_DATABASE=3C996C-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996C-T 1000Base-T) - - pci:v000014E4d00001644sv000010B7sd00001003* -- ID_MODEL_FROM_DATABASE=3C997-T 1000Base-T Dual Port -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-T 1000Base-T Dual Port) - - pci:v000014E4d00001644sv000010B7sd00001004* -- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C996-SX 1000Base-SX) - - pci:v000014E4d00001644sv000010B7sd00001005* -- ID_MODEL_FROM_DATABASE=3C997-SX 1000Base-SX Dual Port -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C997-SX 1000Base-SX Dual Port) - - pci:v000014E4d00001644sv000010B7sd00001008* -- ID_MODEL_FROM_DATABASE=3C942 Gigabit LOM (31X31) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (3C942 Gigabit LOM (31X31)) - - pci:v000014E4d00001644sv000014E4sd00000002* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) - - pci:v000014E4d00001644sv000014E4sd00000003* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-SX) - - pci:v000014E4d00001644sv000014E4sd00000004* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000Base-T) - - pci:v000014E4d00001644sv000014E4sd00001028* -- ID_MODEL_FROM_DATABASE=NetXtreme 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (NetXtreme 1000BaseTX) - - pci:v000014E4d00001644sv000014E4sd00001644* -- ID_MODEL_FROM_DATABASE=BCM5700 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5700 Gigabit Ethernet (BCM5700 1000Base-T) - - pci:v000014E4d00001645* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet - - pci:v000014E4d00001645sv00000E11sd0000007C* -- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) - - pci:v000014E4d00001645sv00000E11sd0000007D* -- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) - - pci:v000014E4d00001645sv00000E11sd00000085* -- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) - - pci:v000014E4d00001645sv00000E11sd00000099* -- ID_MODEL_FROM_DATABASE=NC7780 Gigabit Server Adapter (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7780 Gigabit Server Adapter (embedded, WOL)) - - pci:v000014E4d00001645sv00000E11sd0000009A* -- ID_MODEL_FROM_DATABASE=NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) - - pci:v000014E4d00001645sv00000E11sd000000C1* -- ID_MODEL_FROM_DATABASE=NC6770 Gigabit Server Adapter (PCI-X, 1000-SX) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)) - - pci:v000014E4d00001645sv00001028sd00000121* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Broadcom BCM5701 1000Base-T) - - pci:v000014E4d00001645sv0000103Csd0000128A* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T (HP, OEM 3COM) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T (HP, OEM 3COM)) - - pci:v000014E4d00001645sv0000103Csd0000128B* -- ID_MODEL_FROM_DATABASE=1000Base-SX (PCI) [A7073A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (1000Base-SX (PCI) [A7073A]) - - pci:v000014E4d00001645sv0000103Csd000012A4* -- ID_MODEL_FROM_DATABASE=Core Lan 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core Lan 1000Base-T) - - pci:v000014E4d00001645sv0000103Csd000012C1* -- ID_MODEL_FROM_DATABASE=IOX Core Lan 1000Base-T [A7109AX] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IOX Core Lan 1000Base-T [A7109AX]) - - pci:v000014E4d00001645sv0000103Csd00001300* -- ID_MODEL_FROM_DATABASE=Core LAN/SCSI Combo [A6794A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Core LAN/SCSI Combo [A6794A]) - - pci:v000014E4d00001645sv000010A9sd00008010* -- ID_MODEL_FROM_DATABASE=IO9/IO10 Gigabit Ethernet (Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (IO9/IO10 Gigabit Ethernet (Copper)) - - pci:v000014E4d00001645sv000010A9sd00008011* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Copper)) - - pci:v000014E4d00001645sv000010A9sd00008012* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet (Fiber) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (Gigabit Ethernet (Fiber)) - - pci:v000014E4d00001645sv000010B7sd00001004* -- ID_MODEL_FROM_DATABASE=3C996-SX 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996-SX 1000Base-SX) - - pci:v000014E4d00001645sv000010B7sd00001006* -- ID_MODEL_FROM_DATABASE=3C996B-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C996B-T 1000Base-T) - - pci:v000014E4d00001645sv000010B7sd00001007* -- ID_MODEL_FROM_DATABASE=3C1000-T 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C1000-T 1000Base-T) - - pci:v000014E4d00001645sv000010B7sd00001008* -- ID_MODEL_FROM_DATABASE=3C940-BR01 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (3C940-BR01 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000001* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000005* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000006* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00000007* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-SX) - - pci:v000014E4d00001645sv000014E4sd00000008* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001645sv000014E4sd00001645* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet - - pci:v000014E4d00001645sv000014E4sd00008008* -- ID_MODEL_FROM_DATABASE=BCM5701 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5701 Gigabit Ethernet (BCM5701 1000Base-T) - - pci:v000014E4d00001646* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet - - pci:v000014E4d00001646sv00000E11sd000000BB* -- ID_MODEL_FROM_DATABASE=NC7760 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (NC7760 1000BaseTX) - - pci:v000014E4d00001646sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Broadcom BCM5702 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (Broadcom BCM5702 1000BaseTX) - - pci:v000014E4d00001646sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5702 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702 Gigabit Ethernet (BCM5702 1000BaseTX) - - pci:v000014E4d00001647* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet - - pci:v000014E4d00001647sv00000E11sd00000099* -- ID_MODEL_FROM_DATABASE=NC7780 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7780 1000BaseTX) - - pci:v000014E4d00001647sv00000E11sd0000009A* -- ID_MODEL_FROM_DATABASE=NC7770 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7770 1000BaseTX) - - pci:v000014E4d00001647sv000010A9sd00008010* -- ID_MODEL_FROM_DATABASE=SGI IO9 Gigabit Ethernet (Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (SGI IO9 Gigabit Ethernet (Copper)) - - pci:v000014E4d00001647sv000014E4sd00000009* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001647sv000014E4sd0000000A* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseSX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseSX) - - pci:v000014E4d00001647sv000014E4sd0000000B* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001647sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001647sv000014E4sd0000800A* -- ID_MODEL_FROM_DATABASE=BCM5703 1000BaseTX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (BCM5703 1000BaseTX) - - pci:v000014E4d00001648* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet - - pci:v000014E4d00001648sv00000E11sd000000CF* -- ID_MODEL_FROM_DATABASE=NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv00000E11sd000000D0* -- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv00000E11sd000000D1* -- ID_MODEL_FROM_DATABASE=NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv00001028sd0000014A* -- ID_MODEL_FROM_DATABASE=PowerEdge 1750 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 1750) - - pci:v000014E4d00001648sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Broadcom NetXtreme BCM5704 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PowerEdge 6850 Broadcom NetXtreme BCM5704) - - pci:v000014E4d00001648sv0000103Csd0000310F* -- ID_MODEL_FROM_DATABASE=NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d00001648sv000010A9sd00008013* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Copper)) - - pci:v000014E4d00001648sv000010A9sd00008018* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (A330) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (A330)) - - pci:v000014E4d00001648sv000010A9sd0000801A* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (IA-blade) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Dual Port Gigabit Ethernet (IA-blade)) - - pci:v000014E4d00001648sv000010A9sd0000801B* -- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Copper) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Copper)) - - pci:v000014E4d00001648sv000010B7sd00002000* -- ID_MODEL_FROM_DATABASE=3C998-T Dual Port 10/100/1000 PCI-X -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C998-T Dual Port 10/100/1000 PCI-X) - - pci:v000014E4d00001648sv000010B7sd00003000* -- ID_MODEL_FROM_DATABASE=3C999-T Quad Port 10/100/1000 PCI-X -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (3C999-T Quad Port 10/100/1000 PCI-X) - - pci:v000014E4d00001648sv00001166sd00001648* -- ID_MODEL_FROM_DATABASE=NetXtreme CIOB-E 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (NetXtreme CIOB-E 1000Base-T) - - pci:v000014E4d00001648sv00001734sd0000100B* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard LAN -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704 Gigabit Ethernet (PRIMERGY RX/TX series onboard LAN) - - pci:v000014E4d00001649* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S_2 Gigabit Ethernet -@@ -44250,46 +44250,46 @@ pci:v000014E4d0000164A* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet - - pci:v000014E4d0000164Asv0000103Csd00001709* -- ID_MODEL_FROM_DATABASE=NC371i Integrated PCI-X Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC371i Integrated PCI-X Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Asv0000103Csd00003070* -- ID_MODEL_FROM_DATABASE=NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC380T PCI Express Dual Port Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Asv0000103Csd00003101* -- ID_MODEL_FROM_DATABASE=NC370T MultifuNCtion Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370T MultifuNCtion Gigabit Server Adapter) - - pci:v000014E4d0000164Asv0000103Csd00003106* -- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706 Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164C* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet - - pci:v000014E4d0000164Csv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R900 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=PowerEdge 2970 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge 2970 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd0000020B* -- ID_MODEL_FROM_DATABASE=PowerEdge T605 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge T605 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00000221* -- ID_MODEL_FROM_DATABASE=PowerEdge R805 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00000223* -- ID_MODEL_FROM_DATABASE=PowerEdge R905 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R905 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv00001028sd00001F12* -- ID_MODEL_FROM_DATABASE=PowerEdge R805/R905 Broadcom NetXtreme II BCM5708 -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (PowerEdge R805/R905 Broadcom NetXtreme II BCM5708) - - pci:v000014E4d0000164Csv0000103Csd00007037* -- ID_MODEL_FROM_DATABASE=NC373T PCI Express Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373T PCI Express Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Csv0000103Csd00007038* -- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164Csv0000103Csd00007045* -- ID_MODEL_FROM_DATABASE=NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708 Gigabit Ethernet (NC374m PCI Express Dual Port Multifunction Gigabit Server Adapter) - - pci:v000014E4d0000164D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702FE Gigabit Ethernet -@@ -44298,10 +44298,10 @@ pci:v000014E4d0000164E* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] - - pci:v000014E4d0000164Esv0000103Csd0000171C* -- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532m Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d0000164Esv0000103Csd00007058* -- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57710 10-Gigabit PCIe [Everest] (NC532i Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d0000164F* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711 10-Gigabit PCIe -@@ -44310,31 +44310,31 @@ pci:v000014E4d00001650* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe - - pci:v000014E4d00001650sv0000103Csd0000171C* -- ID_MODEL_FROM_DATABASE=NC532m Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532m Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d00001650sv0000103Csd00007058* -- ID_MODEL_FROM_DATABASE=NC532i Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57711E 10-Gigabit PCIe (NC532i Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v000014E4d00001653* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet - - pci:v000014E4d00001653sv00000E11sd000000E3* -- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (NC7761 Gigabit Server Adapter) - - pci:v000014E4d00001653sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705 Gigabit Ethernet (Primergy Econel 200 D2020 mainboard) - - pci:v000014E4d00001654* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet - - pci:v000014E4d00001654sv00000E11sd000000E3* -- ID_MODEL_FROM_DATABASE=NC7761 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC7761 Gigabit Server Adapter) - - pci:v000014E4d00001654sv0000103Csd00003100* -- ID_MODEL_FROM_DATABASE=NC1020 ProLiant Gigabit Server Adapter 32 PCI -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC1020 ProLiant Gigabit Server Adapter 32 PCI) - - pci:v000014E4d00001654sv0000103Csd00003226* -- ID_MODEL_FROM_DATABASE=NC150T 4-port Gigabit Combo Switch & Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705_2 Gigabit Ethernet (NC150T 4-port Gigabit Combo Switch & Adapter) - - pci:v000014E4d00001655* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5717 Gigabit Ethernet PCIe -@@ -44349,52 +44349,52 @@ pci:v000014E4d00001659* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express - - pci:v000014E4d00001659sv00001014sd000002C6* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (eServer xSeries server mainboard) - - pci:v000014E4d00001659sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge 860) - - pci:v000014E4d00001659sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 Broadcom NetXtreme BCM5721 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PowerEdge R200 Broadcom NetXtreme BCM5721) - - pci:v000014E4d00001659sv0000103Csd0000170B* -- ID_MODEL_FROM_DATABASE=NC320m PCI Express Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320m PCI Express Dual Port Gigabit Server Adapter) - - pci:v000014E4d00001659sv0000103Csd00007031* -- ID_MODEL_FROM_DATABASE=NC320T PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320T PCIe Gigabit Server Adapter) - - pci:v000014E4d00001659sv0000103Csd00007032* -- ID_MODEL_FROM_DATABASE=NC320i PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (NC320i PCIe Gigabit Server Adapter) - - pci:v000014E4d00001659sv00001734sd00001061* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard LAN -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5721 Gigabit Ethernet PCI Express (PRIMERGY RX/TX S2 series onboard LAN) - - pci:v000014E4d0000165A* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express - - pci:v000014E4d0000165Asv00001014sd00000378* -- ID_MODEL_FROM_DATABASE=IBM System x3350 (Machine type 4192) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (IBM System x3350 (Machine type 4192)) - - pci:v000014E4d0000165Asv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 Broadcom NetXtreme 5722 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge R300 Broadcom NetXtreme 5722) - - pci:v000014E4d0000165Asv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 Broadcom NetXtreme 5722 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T300 Broadcom NetXtreme 5722) - - pci:v000014E4d0000165Asv00001028sd00000225* -- ID_MODEL_FROM_DATABASE=PowerEdge T105 Broadcom NetXtreme 5722 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (PowerEdge T105 Broadcom NetXtreme 5722) - - pci:v000014E4d0000165Asv0000103Csd00007051* -- ID_MODEL_FROM_DATABASE=NC105i PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105i PCIe Gigabit Server Adapter) - - pci:v000014E4d0000165Asv0000103Csd00007052* -- ID_MODEL_FROM_DATABASE=NC105T PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5722 Gigabit Ethernet PCI Express (NC105T PCIe Gigabit Server Adapter) - - pci:v000014E4d0000165B* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe - - pci:v000014E4d0000165Bsv0000103Csd0000705D* -- ID_MODEL_FROM_DATABASE=NC107i Integrated PCI Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5723 Gigabit Ethernet PCIe (NC107i Integrated PCI Express Gigabit Server Adapter) - - pci:v000014E4d0000165C* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5724 Gigabit Ethernet PCIe -@@ -44403,25 +44403,25 @@ pci:v000014E4d0000165D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet - - pci:v000014E4d0000165Dsv00001028sd0000865D* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Latitude D400) - - pci:v000014E4d0000165Dsv000014E4sd0000165D* -- ID_MODEL_FROM_DATABASE=Dell Latitude D600 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M Gigabit Ethernet (Dell Latitude D600) - - pci:v000014E4d0000165E* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet - - pci:v000014E4d0000165Esv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC8000 laptop) - - pci:v000014E4d0000165Esv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NC6000 laptop) - - pci:v000014E4d0000165Esv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (NX6110/NC6120) - - pci:v000014E4d0000165Esv000010CFsd00001279* -- ID_MODEL_FROM_DATABASE=LifeBook E8010D -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5705M_2 Gigabit Ethernet (LifeBook E8010D) - - pci:v000014E4d0000165F* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5720 Gigabit Ethernet PCIe -@@ -44439,7 +44439,7 @@ pci:v000014E4d00001668* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet - - pci:v000014E4d00001668sv0000103Csd00007039* -- ID_MODEL_FROM_DATABASE=NC324i PCIe Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5714 Gigabit Ethernet (NC324i PCIe Dual Port Gigabit Server Adapter) - - pci:v000014E4d00001669* - ID_MODEL_FROM_DATABASE=NetXtreme 5714S Gigabit Ethernet -@@ -44448,7 +44448,7 @@ pci:v000014E4d0000166A* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet - - pci:v000014E4d0000166Asv0000103Csd00007035* -- ID_MODEL_FROM_DATABASE=NC325i Integrated Dual port PCIe Express Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5780 Gigabit Ethernet (NC325i Integrated Dual port PCIe Express Gigabit Server Adapter) - - pci:v000014E4d0000166B* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5780S Gigabit Ethernet -@@ -44472,91 +44472,91 @@ pci:v000014E4d00001677* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express - - pci:v000014E4d00001677sv00001028sd00000176* -- ID_MODEL_FROM_DATABASE=Dimension XPS Gen 4 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension XPS Gen 4) - - pci:v000014E4d00001677sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Dimension 8400) - - pci:v000014E4d00001677sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Optiplex GX280) - - pci:v000014E4d00001677sv00001028sd00000182* -- ID_MODEL_FROM_DATABASE=Latitude D610 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Latitude D610) - - pci:v000014E4d00001677sv00001028sd00000187* -- ID_MODEL_FROM_DATABASE=Precision M70 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision M70) - - pci:v000014E4d00001677sv00001028sd000001A8* -- ID_MODEL_FROM_DATABASE=Precision 380 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Precision 380) - - pci:v000014E4d00001677sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (OptiPlex GX620) - - pci:v000014E4d00001677sv0000103Csd00003006* -- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (DC7100 SFF(DX878AV)) - - pci:v000014E4d00001677sv00001462sd0000028C* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (915P/G Neo2) - - pci:v000014E4d00001677sv00001734sd0000105D* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751 Gigabit Ethernet PCI Express (Scenic W620) - - pci:v000014E4d00001678* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet - - pci:v000014E4d00001678sv0000103Csd0000703E* -- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715 Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) - - pci:v000014E4d00001679* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet - - pci:v000014E4d00001679sv0000103Csd00001707* -- ID_MODEL_FROM_DATABASE=NC326m PCIe Dual Port Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326m PCIe Dual Port Adapter) - - pci:v000014E4d00001679sv0000103Csd0000170C* -- ID_MODEL_FROM_DATABASE=NC325m PCIe Quad Port Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC325m PCIe Quad Port Adapter) - - pci:v000014E4d00001679sv0000103Csd0000703C* -- ID_MODEL_FROM_DATABASE=NC326i PCIe Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5715S Gigabit Ethernet (NC326i PCIe Dual Port Gigabit Server Adapter) - - pci:v000014E4d0000167A* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express - - pci:v000014E4d0000167Asv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (OptiPlex 745) - - pci:v000014E4d0000167Asv00001028sd000001DE* -- ID_MODEL_FROM_DATABASE=Precision 390 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision 390) - - pci:v000014E4d0000167Asv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (PowerEdge SC440) - - pci:v000014E4d0000167Asv00001028sd00000214* -- ID_MODEL_FROM_DATABASE=Precision T3400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T3400) - - pci:v000014E4d0000167Asv00001028sd0000021E* -- ID_MODEL_FROM_DATABASE=Precision T5400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5754 Gigabit Ethernet PCI Express (Precision T5400) - - pci:v000014E4d0000167B* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express - - pci:v000014E4d0000167Bsv0000103Csd0000280A* -- ID_MODEL_FROM_DATABASE=DC5750 Microtower -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5755 Gigabit Ethernet PCI Express (DC5750 Microtower) - - pci:v000014E4d0000167D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express - - pci:v000014E4d0000167Dsv00001014sd00000577* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad Z60t) - - pci:v000014E4d0000167Dsv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP nx8220 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP nx8220) - - pci:v000014E4d0000167Dsv0000103Csd00000940* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (HP Compaq nw8240 Mobile Workstation) - - pci:v000014E4d0000167Dsv000017AAsd00002081* -- ID_MODEL_FROM_DATABASE=ThinkPad R60e -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5751M Gigabit Ethernet PCI Express (ThinkPad R60e) - - pci:v000014E4d0000167E* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5751F Fast Ethernet PCI Express -@@ -44592,22 +44592,22 @@ pci:v000014E4d00001688* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet - - pci:v000014E4d00001688sv00001259sd00002708* -- ID_MODEL_FROM_DATABASE=AT-2712 FX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5761 10/100/1000BASE-T Ethernet (AT-2712 FX) - - pci:v000014E4d0000168A* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet - - pci:v000014E4d0000168Asv00001028sd00001F5C* -- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) - - pci:v000014E4d0000168Asv00001028sd00001F5D* -- ID_MODEL_FROM_DATABASE=BCM57800 10-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 10-Gigabit Ethernet) - - pci:v000014E4d0000168Asv00001028sd00001F67* -- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) - - pci:v000014E4d0000168Asv00001028sd00001F68* -- ID_MODEL_FROM_DATABASE=BCM57800 1-Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet (BCM57800 1-Gigabit Ethernet) - - pci:v000014E4d0000168D* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet -@@ -44616,34 +44616,34 @@ pci:v000014E4d0000168E* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet - - pci:v000014E4d0000168Esv0000103Csd00001798* -- ID_MODEL_FROM_DATABASE=Flex-10 10Gb 2-port 530FLB Adapter [Meru] -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (Flex-10 10Gb 2-port 530FLB Adapter [Meru]) - - pci:v000014E4d0000168Esv0000103Csd000017A5* -- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Flex-10 10Gb 2-port 530M Adapter) - - pci:v000014E4d0000168Esv0000103Csd000018D3* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530T Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001930* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001931* -- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP StoreFabric CN1100R Dual Port Converged Network Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001932* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534FLB Adapter) - - pci:v000014E4d0000168Esv0000103Csd00001933* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 534M Adapter) - - pci:v000014E4d0000168Esv0000103Csd0000193A* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) - - pci:v000014E4d0000168Esv0000103Csd00003382* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) - - pci:v000014E4d0000168Esv0000103Csd0000339D* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet (HP Ethernet 10Gb 2-port 530SFP+ Adapter) - - pci:v000014E4d00001690* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57760 Gigabit Ethernet PCIe -@@ -44652,22 +44652,22 @@ pci:v000014E4d00001691* - ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe - - pci:v000014E4d00001691sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=NetLink BCM57788 Gigabit Ethernet PCIe (XPS 8300) - - pci:v000014E4d00001692* - ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe - - pci:v000014E4d00001692sv00001025sd0000033D* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=NetLink BCM57780 Gigabit Ethernet PCIe (Aspire 7740G) - - pci:v000014E4d00001693* - ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express - - pci:v000014E4d00001693sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (Aspire 5920G) - - pci:v000014E4d00001693sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=6710b -+ ID_MODEL_FROM_DATABASE=NetLink BCM5787M Gigabit Ethernet PCI Express (6710b) - - pci:v000014E4d00001694* - ID_MODEL_FROM_DATABASE=NetLink BCM57790 Gigabit Ethernet PCIe -@@ -44676,10 +44676,10 @@ pci:v000014E4d00001696* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet - - pci:v000014E4d00001696sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (d530 CMT (DG746A)) - - pci:v000014E4d00001696sv000014E4sd0000000D* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5782 Gigabit Ethernet (NetXtreme BCM5782 1000Base-T) - - pci:v000014E4d00001698* - ID_MODEL_FROM_DATABASE=NetLink BCM5784M Gigabit Ethernet PCIe -@@ -44697,16 +44697,16 @@ pci:v000014E4d0000169C* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet - - pci:v000014E4d0000169Csv0000103Csd0000308B* -- ID_MODEL_FROM_DATABASE=MX6125 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (MX6125) - - pci:v000014E4d0000169Csv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (NC2400) - - pci:v000014E4d0000169Csv0000144Dsd0000C018* -- ID_MODEL_FROM_DATABASE=X20 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (X20) - - pci:v000014E4d0000169Csv00001462sd0000590C* -- ID_MODEL_FROM_DATABASE=KT6 Delta-FIS2R (MS-6590) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5788 Gigabit Ethernet (KT6 Delta-FIS2R (MS-6590)) - - pci:v000014E4d0000169D* - ID_MODEL_FROM_DATABASE=NetLink BCM5789 Gigabit Ethernet PCI Express -@@ -44721,112 +44721,112 @@ pci:v000014E4d000016A2* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet - - pci:v000014E4d000016A2sv0000103Csd00001916* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630FLB Adapter) - - pci:v000014E4d000016A2sv0000103Csd00001917* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) - - pci:v000014E4d000016A4* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function - - pci:v000014E4d000016A4sv0000103Csd00001916* -- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630FLB Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630FLB Adapter) - - pci:v000014E4d000016A4sv0000103Csd00001917* -- ID_MODEL_FROM_DATABASE=HP NPAR 20Gb 2-port 630M Adapter -+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function (HP NPAR 20Gb 2-port 630M Adapter) - - pci:v000014E4d000016A5* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function - - pci:v000014E4d000016A5sv00001028sd00001F5C* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A5sv00001028sd00001F5D* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A5sv00001028sd00001F67* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A5sv00001028sd00001F68* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function (NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function) - - pci:v000014E4d000016A6* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet - - pci:v000014E4d000016A6sv00000E11sd000000BB* -- ID_MODEL_FROM_DATABASE=NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)) - - pci:v000014E4d000016A6sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016A6sv000014E4sd0000000C* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016A6sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702X Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016A7* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet - - pci:v000014E4d000016A7sv00000E11sd000000CA* -- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016A7sv00000E11sd000000CB* -- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016A7sv00001014sd0000026F* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (eServer xSeries server mainboard) - - pci:v000014E4d000016A7sv000014E4sd00000009* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016A7sv000014E4sd0000000A* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) - - pci:v000014E4d000016A7sv000014E4sd0000000B* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016A7sv000014E4sd0000800A* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703X Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016A8* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet - - pci:v000014E4d000016A8sv0000103Csd0000132B* -- ID_MODEL_FROM_DATABASE=PCI-X 1000Mbps Dual-port Built-in -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (PCI-X 1000Mbps Dual-port Built-in) - - pci:v000014E4d000016A8sv000010A9sd00008014* -- ID_MODEL_FROM_DATABASE=Dual Port Gigabit Ethernet (PCI-X,Fiber) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Dual Port Gigabit Ethernet (PCI-X,Fiber)) - - pci:v000014E4d000016A8sv000010A9sd0000801C* -- ID_MODEL_FROM_DATABASE=Quad Port Gigabit Ethernet (PCI-E,Fiber) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (Quad Port Gigabit Ethernet (PCI-E,Fiber)) - - pci:v000014E4d000016A8sv000010B7sd00002001* -- ID_MODEL_FROM_DATABASE=3C998-SX Dual Port 1000-SX PCI-X -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5704S Gigabit Ethernet (3C998-SX Dual Port 1000-SX PCI-X) - - pci:v000014E4d000016A9* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function - - pci:v000014E4d000016A9sv00001028sd00001F5C* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016A9sv00001028sd00001F5D* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016A9sv00001028sd00001F67* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016A9sv00001028sd00001F68* -- ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function (NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function) - - pci:v000014E4d000016AA* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet - - pci:v000014E4d000016AAsv0000103Csd00003102* -- ID_MODEL_FROM_DATABASE=NC370F MultifuNCtion Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370F MultifuNCtion Gigabit Server Adapter) - - pci:v000014E4d000016AAsv0000103Csd0000310C* -- ID_MODEL_FROM_DATABASE=NC370i Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5706S Gigabit Ethernet (NC370i Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016AB* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Multi Function -@@ -44838,97 +44838,97 @@ pci:v000014E4d000016ACsv00001014sd00000304* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet - - pci:v000014E4d000016ACsv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 Broadcom NetXtreme II BCM5708S -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge 1955 Broadcom NetXtreme II BCM5708S) - - pci:v000014E4d000016ACsv00001028sd0000020C* -- ID_MODEL_FROM_DATABASE=PowerEdge M605 Broadcom NetXtreme II BCM5708S -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (PowerEdge M605 Broadcom NetXtreme II BCM5708S) - - pci:v000014E4d000016ACsv0000103Csd00001706* -- ID_MODEL_FROM_DATABASE=NC373m Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373m Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016ACsv0000103Csd00007038* -- ID_MODEL_FROM_DATABASE=NC373i PCI Express Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i PCI Express Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016ACsv0000103Csd0000703B* -- ID_MODEL_FROM_DATABASE=NC373i Integrated Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373i Integrated Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016ACsv0000103Csd0000703D* -- ID_MODEL_FROM_DATABASE=NC373F PCI Express Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM5708S Gigabit Ethernet (NC373F PCI Express Multifunction Gigabit Server Adapter) - - pci:v000014E4d000016AD* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function - - pci:v000014E4d000016ADsv0000103Csd00001916* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630FLB Adapter) - - pci:v000014E4d000016ADsv0000103Csd00001917* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 20Gb 2-port 630M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function (HP FlexFabric 20Gb 2-port 630M Adapter) - - pci:v000014E4d000016AE* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function - - pci:v000014E4d000016AEsv0000103Csd00001798* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLB Adapter) - - pci:v000014E4d000016AEsv0000103Csd000017A5* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530M Adapter) - - pci:v000014E4d000016AEsv0000103Csd000018D3* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530T Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001930* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001931* -- ID_MODEL_FROM_DATABASE=HP NPAR CN1100R Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR CN1100R Dual Port Converged Network Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001932* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534FLB Adapter) - - pci:v000014E4d000016AEsv0000103Csd00001933* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 534M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 534M Adapter) - - pci:v000014E4d000016AEsv0000103Csd0000193A* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 533FLR-T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 533FLR-T Adapter) - - pci:v000014E4d000016AEsv0000103Csd00003382* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter) - - pci:v000014E4d000016AEsv0000103Csd0000339D* -- ID_MODEL_FROM_DATABASE=HP NPAR 10Gb 2-port 530SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function (HP NPAR 10Gb 2-port 530SFP+ Adapter) - - pci:v000014E4d000016AF* - ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function - - pci:v000014E4d000016AFsv0000103Csd00001798* -- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530FLB Adapter) - - pci:v000014E4d000016AFsv0000103Csd000017A5* -- ID_MODEL_FROM_DATABASE=HP Flex-10 10Gb 2-port 530M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Flex-10 10Gb 2-port 530M Adapter) - - pci:v000014E4d000016AFsv0000103Csd000018D3* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530T Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001930* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001931* -- ID_MODEL_FROM_DATABASE=HP StoreFabric CN1100R Dual Port Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP StoreFabric CN1100R Dual Port Converged Network Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001932* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534FLB Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534FLB Adapter) - - pci:v000014E4d000016AFsv0000103Csd00001933* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 534M Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 534M Adapter) - - pci:v000014E4d000016AFsv0000103Csd0000193A* -- ID_MODEL_FROM_DATABASE=HP FlexFabric 10Gb 2-port 533FLR-T Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP FlexFabric 10Gb 2-port 533FLR-T Adapter) - - pci:v000014E4d000016AFsv0000103Csd00003382* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter) - - pci:v000014E4d000016AFsv0000103Csd0000339D* -- ID_MODEL_FROM_DATABASE=HP Ethernet 10Gb 2-port 530SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function (HP Ethernet 10Gb 2-port 530SFP+ Adapter) - - pci:v000014E4d000016B0* - ID_MODEL_FROM_DATABASE=NetXtreme BCM57761 Gigabit Ethernet PCIe -@@ -44937,7 +44937,7 @@ pci:v000014E4d000016B1* - ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe - - pci:v000014E4d000016B1sv00001849sd000096B1* -- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard -+ ID_MODEL_FROM_DATABASE=NetLink BCM57781 Gigabit Ethernet PCIe (Z77 Extreme4 motherboard) - - pci:v000014E4d000016B2* - ID_MODEL_FROM_DATABASE=NetLink BCM57791 Gigabit Ethernet PCIe -@@ -44970,37 +44970,37 @@ pci:v000014E4d000016C6* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet - - pci:v000014E4d000016C6sv000010B7sd00001100* -- ID_MODEL_FROM_DATABASE=3C1000B-T 10/100/1000 PCI -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (3C1000B-T 10/100/1000 PCI) - - pci:v000014E4d000016C6sv000014E4sd0000000C* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016C6sv000014E4sd00008009* -- ID_MODEL_FROM_DATABASE=BCM5702 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5702A3 Gigabit Ethernet (BCM5702 1000Base-T) - - pci:v000014E4d000016C7* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet - - pci:v000014E4d000016C7sv00000E11sd000000CA* -- ID_MODEL_FROM_DATABASE=NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016C7sv00000E11sd000000CB* -- ID_MODEL_FROM_DATABASE=NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T) -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)) - - pci:v000014E4d000016C7sv0000103Csd000012C3* -- ID_MODEL_FROM_DATABASE=Combo FC/GigE-SX [A9782A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-SX [A9782A]) - - pci:v000014E4d000016C7sv0000103Csd000012CA* -- ID_MODEL_FROM_DATABASE=Combo FC/GigE-T [A9784A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Combo FC/GigE-T [A9784A]) - - pci:v000014E4d000016C7sv0000103Csd00001321* -- ID_MODEL_FROM_DATABASE=Core I/O LAN/SCSI Combo [AB314A] -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (Core I/O LAN/SCSI Combo [AB314A]) - - pci:v000014E4d000016C7sv000014E4sd00000009* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-T -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-T) - - pci:v000014E4d000016C7sv000014E4sd0000000A* -- ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 1000Base-SX -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5703 Gigabit Ethernet (NetXtreme BCM5703 1000Base-SX) - - pci:v000014E4d000016DD* - ID_MODEL_FROM_DATABASE=NetLink BCM5781 Gigabit Ethernet PCI Express -@@ -45015,10 +45015,10 @@ pci:v000014E4d000016FD* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express - - pci:v000014E4d000016FDsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nx9420 Notebook) - - pci:v000014E4d000016FDsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5753M Gigabit Ethernet PCI Express (Compaq nw8440) - - pci:v000014E4d000016FE* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5753F Fast Ethernet PCI Express -@@ -45027,40 +45027,40 @@ pci:v000014E4d0000170C* - ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX - - pci:v000014E4d0000170Csv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6000 laptop) - - pci:v000014E4d0000170Csv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 700m/710m) - - pci:v000014E4d0000170Csv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 5160) - - pci:v000014E4d0000170Csv00001028sd000001AF* -- ID_MODEL_FROM_DATABASE=Inspiron 6400 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 6400) - - pci:v000014E4d0000170Csv00001028sd000001CD* -- ID_MODEL_FROM_DATABASE=Inspiron 9400 Laptop -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron 9400 Laptop) - - pci:v000014E4d0000170Csv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (XPS M1210) - - pci:v000014E4d0000170Csv00001028sd000001D8* -- ID_MODEL_FROM_DATABASE=Inspiron E1405 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (Inspiron E1405) - - pci:v000014E4d0000170Csv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX6110/NC6120) - - pci:v000014E4d0000170Csv0000103Csd000030A2* -- ID_MODEL_FROM_DATABASE=NX7300 laptop -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (NX7300 laptop) - - pci:v000014E4d0000170Csv000014E4sd0000170C* -- ID_MODEL_FROM_DATABASE=HP Compaq 6720t Mobile Thin Client -+ ID_MODEL_FROM_DATABASE=BCM4401-B0 100Base-TX (HP Compaq 6720t Mobile Thin Client) - - pci:v000014E4d0000170D* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX - - pci:v000014E4d0000170Dsv00001014sd00000545* -- ID_MODEL_FROM_DATABASE=ThinkPad R40e -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX (ThinkPad R40e) - - pci:v000014E4d0000170E* - ID_MODEL_FROM_DATABASE=NetXtreme BCM5901 100Base-TX -@@ -45072,16 +45072,16 @@ pci:v000014E4d00001713* - ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express - - pci:v000014E4d00001713sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Inspiron 1420) - - pci:v000014E4d00001713sv00001028sd00000209* -- ID_MODEL_FROM_DATABASE=XPS M1330 -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (XPS M1330) - - pci:v000014E4d00001713sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (Compaq 6710b) - - pci:v000014E4d00001713sv000017AAsd00003A23* -- ID_MODEL_FROM_DATABASE=IdeaPad S10e -+ ID_MODEL_FROM_DATABASE=NetLink BCM5906M Fast Ethernet PCI Express (IdeaPad S10e) - - pci:v000014E4d00003352* - ID_MODEL_FROM_DATABASE=BCM3352 -@@ -45108,16 +45108,16 @@ pci:v000014E4d00004301* - ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller - - pci:v000014E4d00004301sv00001028sd00000407* -- ID_MODEL_FROM_DATABASE=TrueMobile 1180 Onboard WLAN -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (TrueMobile 1180 Onboard WLAN) - - pci:v000014E4d00004301sv00001043sd00000120* -- ID_MODEL_FROM_DATABASE=WL-103b Wireless LAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WL-103b Wireless LAN PC Card) - - pci:v000014E4d00004301sv000016A5sd00001602* -- ID_MODEL_FROM_DATABASE=B-300 802.11b Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (B-300 802.11b Wireless CardBus Adapter) - - pci:v000014E4d00004301sv00001737sd00004301* -- ID_MODEL_FROM_DATABASE=WMP11 v2.7 802.11b Wireless-B PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4301 802.11b Wireless LAN Controller (WMP11 v2.7 802.11b Wireless-B PCI Adapter) - - pci:v000014E4d00004305* - ID_MODEL_FROM_DATABASE=BCM4307 V.90 56k Modem -@@ -45135,85 +45135,85 @@ pci:v000014E4d00004311* - ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN - - pci:v000014E4d00004311sv00001028sd00000007* -- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN Mini-Card) - - pci:v000014E4d00004311sv00001028sd00000008* -- ID_MODEL_FROM_DATABASE=Wireless 1390 WLAN ExpressCard -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (Wireless 1390 WLAN ExpressCard) - - pci:v000014E4d00004311sv0000103Csd00001363* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001364* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001365* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001374* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001375* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001376* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001377* -- ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4311 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd0000137F* -- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) - - pci:v000014E4d00004311sv0000103Csd00001380* -- ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM4322 802.11a/b/g/n Wireless LAN Controller) - - pci:v000014E4d00004311sv000014E4sd00004311* -- ID_MODEL_FROM_DATABASE=BCM94311MCG -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11b/g WLAN (BCM94311MCG) - - pci:v000014E4d00004312* - ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g - - pci:v000014E4d00004312sv00001028sd00000007* -- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN Mini-Card) - - pci:v000014E4d00004312sv00001028sd00000008* -- ID_MODEL_FROM_DATABASE=Wireless 1490 Dual Band WLAN ExpressCard -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Wireless 1490 Dual Band WLAN ExpressCard) - - pci:v000014E4d00004312sv0000103Csd0000135A* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd0000135F* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001360* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001361* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001362* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001370* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001371* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001372* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd00001373* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004312sv0000103Csd000030B5* -- ID_MODEL_FROM_DATABASE=Presario V3242AU -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Presario V3242AU) - - pci:v000014E4d00004312sv0000106Bsd00000089* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (AirPort Extreme) - - pci:v000014E4d00004312sv00001371sd0000103C* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11 Multiband-netwerkadapter(6715s) -+ ID_MODEL_FROM_DATABASE=BCM4311 802.11a/b/g (Broadcom 802.11 Multiband-netwerkadapter(6715s)) - - pci:v000014E4d00004313* - ID_MODEL_FROM_DATABASE=BCM4311 802.11a -@@ -45222,175 +45222,175 @@ pci:v000014E4d00004315* - ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY - - pci:v000014E4d00004315sv00001028sd0000000B* -- ID_MODEL_FROM_DATABASE=Wireless 1395 WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1395 WLAN Mini-Card) - - pci:v000014E4d00004315sv00001028sd0000000C* -- ID_MODEL_FROM_DATABASE=Wireless 1397 WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (Wireless 1397 WLAN Mini-Card) - - pci:v000014E4d00004315sv0000103Csd0000137C* -- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004315sv0000103Csd0000137D* -- ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (BCM4312 802.11b/g Wireless LAN Controller) - - pci:v000014E4d00004315sv0000103Csd00001507* -- ID_MODEL_FROM_DATABASE=U98Z049.00 Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (U98Z049.00 Wireless Mini PCIe Card) - - pci:v000014E4d00004315sv0000105Bsd0000E003* -- ID_MODEL_FROM_DATABASE=T77H030.00 Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H030.00 Wireless Mini PCIe Card) - - pci:v000014E4d00004315sv0000105Bsd0000E01B* -- ID_MODEL_FROM_DATABASE=T77H106.00 Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM4312 802.11b/g LP-PHY (T77H106.00 Wireless Half-size Mini PCIe Card) - - pci:v000014E4d00004318* - ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller - - pci:v000014E4d00004318sv00001028sd00000005* -- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN Mini-PCI Card) - - pci:v000014E4d00004318sv00001028sd00000006* -- ID_MODEL_FROM_DATABASE=Wireless 1370 WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Wireless 1370 WLAN PC Card) - - pci:v000014E4d00004318sv0000103Csd00001355* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004318sv0000103Csd00001356* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004318sv0000103Csd00001357* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004318sv00001043sd0000100F* -- ID_MODEL_FROM_DATABASE=WL-138G v2 / WL-138gE / WL-100gE -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WL-138G v2 / WL-138gE / WL-100gE) - - pci:v000014E4d00004318sv00001043sd0000120F* -- ID_MODEL_FROM_DATABASE=A6U notebook embedded card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (A6U notebook embedded card) - - pci:v000014E4d00004318sv00001154sd00000355* -- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Adapter) - - pci:v000014E4d00004318sv00001468sd00000311* -- ID_MODEL_FROM_DATABASE=Aspire 3022WLMi, 5024WLMi, 5020 -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Aspire 3022WLMi, 5024WLMi, 5020) - - pci:v000014E4d00004318sv00001468sd00000312* -- ID_MODEL_FROM_DATABASE=TravelMate 2410 -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (TravelMate 2410) - - pci:v000014E4d00004318sv000014E4sd00000449* -- ID_MODEL_FROM_DATABASE=Gateway 7510GX -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (Gateway 7510GX) - - pci:v000014E4d00004318sv000016ECsd00000119* -- ID_MODEL_FROM_DATABASE=U.S.Robotics Wireless MAXg PC Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (U.S.Robotics Wireless MAXg PC Card) - - pci:v000014E4d00004318sv00001737sd00000042* -- ID_MODEL_FROM_DATABASE=WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WMP54GS v1.1 802.11g Wireless-G PCI Adapter with SpeedBooster) - - pci:v000014E4d00004318sv00001737sd00000048* -- ID_MODEL_FROM_DATABASE=WPC54G v3 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54G v3 802.11g Wireless-G Notebook Adapter) - - pci:v000014E4d00004318sv00001737sd00000049* -- ID_MODEL_FROM_DATABASE=WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (WPC54GS v2 802.11g Wireless-G Notebook Adapter with SpeedBooster) - - pci:v000014E4d00004318sv00001799sd00007000* -- ID_MODEL_FROM_DATABASE=F5D7000 v4000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7000 v4000 Wireless G Desktop Card) - - pci:v000014E4d00004318sv00001799sd00007001* -- ID_MODEL_FROM_DATABASE=F5D7001 v2000 Wireless G Plus Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7001 v2000 Wireless G Plus Desktop Card) - - pci:v000014E4d00004318sv00001799sd00007010* -- ID_MODEL_FROM_DATABASE=F5D7010 v4000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7010 v4000 Wireless G Notebook Card) - - pci:v000014E4d00004318sv00001799sd00007011* -- ID_MODEL_FROM_DATABASE=F5D7011 v2000 High-Speed Mode Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (F5D7011 v2000 High-Speed Mode Wireless G Notebook Card) - - pci:v000014E4d00004319* - ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver - - pci:v000014E4d00004319sv00001028sd00000005* -- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN Mini-PCI Card) - - pci:v000014E4d00004319sv00001028sd00000006* -- ID_MODEL_FROM_DATABASE=Wireless 1470 Dual Band WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Wireless 1470 Dual Band WLAN PC Card) - - pci:v000014E4d00004319sv0000103Csd00001358* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004319sv0000103Csd00001359* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004319sv0000103Csd0000135A* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004320* - ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller - - pci:v000014E4d00004320sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN Mini-PCI Card) - - pci:v000014E4d00004320sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=TrueMobile 1300 WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TrueMobile 1300 WLAN PC Card) - - pci:v000014E4d00004320sv00001028sd00000003* -- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN Mini-PCI Card) - - pci:v000014E4d00004320sv00001028sd00000004* -- ID_MODEL_FROM_DATABASE=Wireless 1350 WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Wireless 1350 WLAN PC Card) - - pci:v000014E4d00004320sv0000103Csd000012F4* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv0000103Csd000012F8* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv0000103Csd000012FA* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv0000103Csd000012FB* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Broadcom 802.11b/g WLAN) - - pci:v000014E4d00004320sv00001043sd0000100F* -- ID_MODEL_FROM_DATABASE=WL-100G -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WL-100G) - - pci:v000014E4d00004320sv00001057sd00007025* -- ID_MODEL_FROM_DATABASE=WN825G -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WN825G) - - pci:v000014E4d00004320sv0000106Bsd0000004E* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (AirPort Extreme) - - pci:v000014E4d00004320sv00001154sd00000330* -- ID_MODEL_FROM_DATABASE=Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter) - - pci:v000014E4d00004320sv0000144Fsd00007050* -- ID_MODEL_FROM_DATABASE=eMachines M6805 802.11g Built-in Wireless -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (eMachines M6805 802.11g Built-in Wireless) - - pci:v000014E4d00004320sv0000144Fsd00007051* -- ID_MODEL_FROM_DATABASE=Sonnet Aria Extreme PCI -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (Sonnet Aria Extreme PCI) - - pci:v000014E4d00004320sv00001737sd00000013* -- ID_MODEL_FROM_DATABASE=WMP54G v1 802.11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v1 802.11g PCI Adapter) - - pci:v000014E4d00004320sv00001737sd00000014* -- ID_MODEL_FROM_DATABASE=WMP54G v2 802.11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54G v2 802.11g PCI Adapter) - - pci:v000014E4d00004320sv00001737sd00000015* -- ID_MODEL_FROM_DATABASE=WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster) - - pci:v000014E4d00004320sv00001737sd00004320* -- ID_MODEL_FROM_DATABASE=WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter) - - pci:v000014E4d00004320sv00001799sd00007000* -- ID_MODEL_FROM_DATABASE=F5D7000 v1000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7000 v1000 Wireless G Desktop Card) - - pci:v000014E4d00004320sv00001799sd00007001* -- ID_MODEL_FROM_DATABASE=F5D7001 v1000 Wireless G Plus Desktop Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7001 v1000 Wireless G Plus Desktop Card) - - pci:v000014E4d00004320sv00001799sd00007010* -- ID_MODEL_FROM_DATABASE=F5D7010 v1000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7010 v1000 Wireless G Notebook Card) - - pci:v000014E4d00004320sv00001799sd00007011* -- ID_MODEL_FROM_DATABASE=F5D7011 v1000 High-Speed Mode Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (F5D7011 v1000 High-Speed Mode Wireless G Notebook Card) - - pci:v000014E4d00004320sv0000185Fsd00001220* -- ID_MODEL_FROM_DATABASE=TravelMate 290E WLAN Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11b/g Wireless LAN Controller (TravelMate 290E WLAN Mini-PCI Card) - - pci:v000014E4d00004321* - ID_MODEL_FROM_DATABASE=BCM4321 802.11a Wireless Network Controller -@@ -45402,31 +45402,31 @@ pci:v000014E4d00004324* - ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller - - pci:v000014E4d00004324sv00001028sd00000001* -- ID_MODEL_FROM_DATABASE=Truemobile 1400 -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1400) - - pci:v000014E4d00004324sv00001028sd00000002* -- ID_MODEL_FROM_DATABASE=TrueMobile 1400 Dual Band WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (TrueMobile 1400 Dual Band WLAN PC Card) - - pci:v000014E4d00004324sv00001028sd00000003* -- ID_MODEL_FROM_DATABASE=Truemobile 1450 MiniPCI -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Truemobile 1450 MiniPCI) - - pci:v000014E4d00004324sv00001028sd00000004* -- ID_MODEL_FROM_DATABASE=Wireless 1450 Dual Band WLAN PC Card -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Wireless 1450 Dual Band WLAN PC Card) - - pci:v000014E4d00004324sv0000103Csd000012F9* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004324sv0000103Csd000012FC* -- ID_MODEL_FROM_DATABASE=Broadcom 802.11a/b/g WLAN -+ ID_MODEL_FROM_DATABASE=BCM4309 802.11abg Wireless Network Controller (Broadcom 802.11a/b/g WLAN) - - pci:v000014E4d00004325* - ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller - - pci:v000014E4d00004325sv00001414sd00000003* -- ID_MODEL_FROM_DATABASE=Wireless Notebook Adapter MN-720 -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless Notebook Adapter MN-720) - - pci:v000014E4d00004325sv00001414sd00000004* -- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter MN-730 -+ ID_MODEL_FROM_DATABASE=BCM4306 802.11bg Wireless Network Controller (Wireless PCI Adapter MN-730) - - pci:v000014E4d00004326* - ID_MODEL_FROM_DATABASE=BCM4307 Chipcommon I/O Controller? -@@ -45435,58 +45435,58 @@ pci:v000014E4d00004328* - ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n - - pci:v000014E4d00004328sv00001028sd00000009* -- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-Card) - - pci:v000014E4d00004328sv00001028sd0000000A* -- ID_MODEL_FROM_DATABASE=Wireless 1500 Draft 802.11n WLAN Mini-card -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless 1500 Draft 802.11n WLAN Mini-card) - - pci:v000014E4d00004328sv0000103Csd00001366* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000103Csd00001367* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000103Csd00001368* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000103Csd00001369* -- ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n Wireless LAN Controller -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (Wireless LAN Controller) - - pci:v000014E4d00004328sv0000106Bsd00000087* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd00000088* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd0000008B* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd0000008C* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv0000106Bsd00000090* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004328sv000014E4sd00004328* -- ID_MODEL_FROM_DATABASE=BCM4328 802.11a/b/g/n -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (BCM4328 802.11a/b/g/n) - - pci:v000014E4d00004328sv00001737sd00000066* -- ID_MODEL_FROM_DATABASE=WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter) - - pci:v000014E4d00004328sv00001737sd00000068* -- ID_MODEL_FROM_DATABASE=WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11a/b/g/n (WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard) - - pci:v000014E4d00004329* - ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n - - pci:v000014E4d00004329sv00001385sd00007B00* -- ID_MODEL_FROM_DATABASE=WN511B RangeMax NEXT Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN511B RangeMax NEXT Wireless Notebook Adapter) - - pci:v000014E4d00004329sv00001385sd00007D00* -- ID_MODEL_FROM_DATABASE=WN311B RangeMax Next 270 Mbps Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WN311B RangeMax Next 270 Mbps Wireless PCI Adapter) - - pci:v000014E4d00004329sv00001737sd00000058* -- ID_MODEL_FROM_DATABASE=WPC300N v1 Wireless-N Notebook Adapter -+ ID_MODEL_FROM_DATABASE=BCM4321 802.11b/g/n (WPC300N v1 Wireless-N Notebook Adapter) - - pci:v000014E4d0000432A* - ID_MODEL_FROM_DATABASE=BCM4321 802.11an Wireless Network Controller -@@ -45495,19 +45495,19 @@ pci:v000014E4d0000432B* - ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller - - pci:v000014E4d0000432Bsv00001028sd0000000D* -- ID_MODEL_FROM_DATABASE=Wireless 1510 Wireless-N WLAN Mini-Card -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (Wireless 1510 Wireless-N WLAN Mini-Card) - - pci:v000014E4d0000432Bsv0000106Bsd0000008D* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) - - pci:v000014E4d0000432Bsv0000106Bsd0000008E* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11a/b/g/n Wireless LAN Controller (AirPort Extreme) - - pci:v000014E4d0000432C* - ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n - - pci:v000014E4d0000432Csv00001799sd0000D311* -- ID_MODEL_FROM_DATABASE=Dynex DX-NNBX 802.11n WLAN Cardbus Card -+ ID_MODEL_FROM_DATABASE=BCM4322 802.11b/g/n (Dynex DX-NNBX 802.11n WLAN Cardbus Card) - - pci:v000014E4d0000432D* - ID_MODEL_FROM_DATABASE=BCM4322 802.11an Wireless Network Controller -@@ -45516,25 +45516,25 @@ pci:v000014E4d00004331* - ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n - - pci:v000014E4d00004331sv0000106Bsd000000D6* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000E4* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000EF* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000F4* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd000000F5* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd0000010E* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004331sv0000106Bsd0000010F* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM4331 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004333* - ID_MODEL_FROM_DATABASE=Serial (EDGE/GPRS modem part of Option GT Combo Edge) -@@ -45549,25 +45549,25 @@ pci:v000014E4d00004353* - ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n - - pci:v000014E4d00004353sv00001028sd0000000E* -- ID_MODEL_FROM_DATABASE=Wireless 1520 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (Wireless 1520 Half-size Mini PCIe Card) - - pci:v000014E4d00004353sv0000103Csd00001509* -- ID_MODEL_FROM_DATABASE=WMIB-275N Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (WMIB-275N Half-size Mini PCIe Card) - - pci:v000014E4d00004353sv0000106Bsd00000093* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004353sv0000106Bsd000000D1* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004353sv0000106Bsd000000E9* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=BCM43224 802.11a/b/g/n (AirPort Extreme) - - pci:v000014E4d00004357* - ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n - - pci:v000014E4d00004357sv0000105Bsd0000E021* -- ID_MODEL_FROM_DATABASE=T77H103.00 Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43225 802.11b/g/n (T77H103.00 Wireless Half-size Mini PCIe Card) - - pci:v000014E4d00004358* - ID_MODEL_FROM_DATABASE=BCM43227 802.11b/g/n -@@ -45576,16 +45576,16 @@ pci:v000014E4d00004359* - ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n - - pci:v000014E4d00004359sv00001028sd00000011* -- ID_MODEL_FROM_DATABASE=Wireless 1530 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (Wireless 1530 Half-size Mini PCIe Card) - - pci:v000014E4d00004359sv0000103Csd0000182C* -- ID_MODEL_FROM_DATABASE=BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter -+ ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) - - pci:v000014E4d00004365* - ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n - - pci:v000014E4d00004365sv00001028sd00000016* -- ID_MODEL_FROM_DATABASE=Wireless 1704 802.11n + BT 4.0 -+ ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n (Wireless 1704 802.11n + BT 4.0) - - pci:v000014E4d000043A0* - ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter -@@ -45597,13 +45597,13 @@ pci:v000014E4d00004401* - ID_MODEL_FROM_DATABASE=BCM4401 100Base-T - - pci:v000014E4d00004401sv00001025sd00000035* -- ID_MODEL_FROM_DATABASE=TravelMate 660 -+ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (TravelMate 660) - - pci:v000014E4d00004401sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (tc1100 tablet) - - pci:v000014E4d00004401sv00001043sd000080A8* -- ID_MODEL_FROM_DATABASE=A7V8X motherboard -+ ID_MODEL_FROM_DATABASE=BCM4401 100Base-T (A7V8X motherboard) - - pci:v000014E4d00004402* - ID_MODEL_FROM_DATABASE=BCM4402 Integrated 10/100BaseT -@@ -45696,7 +45696,7 @@ pci:v000014E4d00004727* - ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter - - pci:v000014E4d00004727sv00001028sd00000010* -- ID_MODEL_FROM_DATABASE=Inspiron M5010 / XPS 8300 -+ ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter (Inspiron M5010 / XPS 8300) - - pci:v000014E4d00005365* - ID_MODEL_FROM_DATABASE=BCM5365P Sentry5 Host Bridge -@@ -45867,55 +45867,55 @@ pci:v000014F1d00001033* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v000014F1d00001033sv00001033sd00008077* -- ID_MODEL_FROM_DATABASE=NEC -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (NEC) - - pci:v000014F1d00001033sv0000122Dsd00004027* -- ID_MODEL_FROM_DATABASE=Dell Zeus - MDP3880-W(B) Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Zeus - MDP3880-W(B) Data Fax Modem) - - pci:v000014F1d00001033sv0000122Dsd00004030* -- ID_MODEL_FROM_DATABASE=Dell Mercury - MDP3880-U(B) Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Mercury - MDP3880-U(B) Data Fax Modem) - - pci:v000014F1d00001033sv0000122Dsd00004034* -- ID_MODEL_FROM_DATABASE=Dell Thor - MDP3880-W(U) Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Thor - MDP3880-W(U) Data Fax Modem) - - pci:v000014F1d00001033sv000013E0sd0000020D* -- ID_MODEL_FROM_DATABASE=Dell Copper -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Copper) - - pci:v000014F1d00001033sv000013E0sd0000020E* -- ID_MODEL_FROM_DATABASE=Dell Silver -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Dell Silver) - - pci:v000014F1d00001033sv000013E0sd00000261* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv000013E0sd00000290* -- ID_MODEL_FROM_DATABASE=Compaq Goldwing -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Goldwing) - - pci:v000014F1d00001033sv000013E0sd000002A0* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv000013E0sd000002B0* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv000013E0sd000002C0* -- ID_MODEL_FROM_DATABASE=Compaq Scooter -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Compaq Scooter) - - pci:v000014F1d00001033sv000013E0sd000002D0* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001033sv0000144Fsd00001500* -- ID_MODEL_FROM_DATABASE=IBM P85-DF (1) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (1)) - - pci:v000014F1d00001033sv0000144Fsd00001501* -- ID_MODEL_FROM_DATABASE=IBM P85-DF (2) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (2)) - - pci:v000014F1d00001033sv0000144Fsd0000150A* -- ID_MODEL_FROM_DATABASE=IBM P85-DF (3) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF (3)) - - pci:v000014F1d00001033sv0000144Fsd0000150B* -- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (1) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (1)) - - pci:v000014F1d00001033sv0000144Fsd00001510* -- ID_MODEL_FROM_DATABASE=IBM P85-DF Low Profile (2) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P85-DF Low Profile (2)) - - pci:v000014F1d00001034* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem -@@ -45924,31 +45924,31 @@ pci:v000014F1d00001035* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem - - pci:v000014F1d00001035sv000010CFsd00001098* -- ID_MODEL_FROM_DATABASE=Fujitsu P85-DFSV -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Fujitsu P85-DFSV) - - pci:v000014F1d00001036* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem - - pci:v000014F1d00001036sv0000104Dsd00008067* -- ID_MODEL_FROM_DATABASE=HCF 56k Modem -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (HCF 56k Modem) - - pci:v000014F1d00001036sv0000122Dsd00004029* -- ID_MODEL_FROM_DATABASE=MDP3880SP-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-W) - - pci:v000014F1d00001036sv0000122Dsd00004031* -- ID_MODEL_FROM_DATABASE=MDP3880SP-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (MDP3880SP-U) - - pci:v000014F1d00001036sv000013E0sd00000209* -- ID_MODEL_FROM_DATABASE=Dell Titanium -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Titanium) - - pci:v000014F1d00001036sv000013E0sd0000020A* -- ID_MODEL_FROM_DATABASE=Dell Graphite -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Graphite) - - pci:v000014F1d00001036sv000013E0sd00000260* -- ID_MODEL_FROM_DATABASE=Gateway Red Owl -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway Red Owl) - - pci:v000014F1d00001036sv000013E0sd00000270* -- ID_MODEL_FROM_DATABASE=Gateway White Horse -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Gateway White Horse) - - pci:v000014F1d00001052* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (Worldwide) -@@ -45966,7 +45966,7 @@ pci:v000014F1d00001056* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) - - pci:v000014F1d00001056sv0000122Dsd00004035* -- ID_MODEL_FROM_DATABASE=MDP3900V-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) (MDP3900V-W) - - pci:v000014F1d00001057* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide) -@@ -45987,7 +45987,7 @@ pci:v000014F1d00001066* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem - - pci:v000014F1d00001066sv0000122Dsd00004033* -- ID_MODEL_FROM_DATABASE=Dell Athena - MDP3900V-U -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Athena - MDP3900V-U) - - pci:v000014F1d00001085* - ID_MODEL_FROM_DATABASE=HCF V90 56k Data/Fax/Voice/Spkp PCI Modem -@@ -46011,16 +46011,16 @@ pci:v000014F1d00001453* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem - - pci:v000014F1d00001453sv000013E0sd00000240* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001453sv000013E0sd00000250* -- ID_MODEL_FROM_DATABASE=IBM -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM) - - pci:v000014F1d00001453sv0000144Fsd00001502* -- ID_MODEL_FROM_DATABASE=IBM P95-DF (1) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (1)) - - pci:v000014F1d00001453sv0000144Fsd00001503* -- ID_MODEL_FROM_DATABASE=IBM P95-DF (2) -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax Modem (IBM P95-DF (2)) - - pci:v000014F1d00001454* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice Modem -@@ -46032,10 +46032,10 @@ pci:v000014F1d00001456* - ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem - - pci:v000014F1d00001456sv0000122Dsd00004035* -- ID_MODEL_FROM_DATABASE=Dell Europa - MDP3900V-W -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell Europa - MDP3900V-W) - - pci:v000014F1d00001456sv0000122Dsd00004302* -- ID_MODEL_FROM_DATABASE=Dell MP3930V-W(C) MiniPCI -+ ID_MODEL_FROM_DATABASE=HCF 56k Data/Fax/Voice/Spkp Modem (Dell MP3930V-W(C) MiniPCI) - - pci:v000014F1d00001610* - ID_MODEL_FROM_DATABASE=ADSL AccessRunner PCI Arbitration Device -@@ -46056,10 +46056,10 @@ pci:v000014F1d00001803* - ID_MODEL_FROM_DATABASE=HCF 56k Modem - - pci:v000014F1d00001803sv00000E11sd00000023* -- ID_MODEL_FROM_DATABASE=623-LAN Grizzly -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Grizzly) - - pci:v000014F1d00001803sv00000E11sd00000043* -- ID_MODEL_FROM_DATABASE=623-LAN Yogi -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (623-LAN Yogi) - - pci:v000014F1d00001811* - ID_MODEL_FROM_DATABASE=MiniPCI Network Adapter -@@ -46068,10 +46068,10 @@ pci:v000014F1d00001815* - ID_MODEL_FROM_DATABASE=HCF 56k Modem - - pci:v000014F1d00001815sv00000E11sd00000022* -- ID_MODEL_FROM_DATABASE=Grizzly -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Grizzly) - - pci:v000014F1d00001815sv00000E11sd00000042* -- ID_MODEL_FROM_DATABASE=Yogi -+ ID_MODEL_FROM_DATABASE=HCF 56k Modem (Yogi) - - pci:v000014F1d00002003* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem -@@ -46089,28 +46089,28 @@ pci:v000014F1d00002013* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem - - pci:v000014F1d00002013sv00000E11sd0000B195* -- ID_MODEL_FROM_DATABASE=Bear -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Bear) - - pci:v000014F1d00002013sv00000E11sd0000B196* -- ID_MODEL_FROM_DATABASE=Seminole 1 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 1) - - pci:v000014F1d00002013sv00000E11sd0000B1BE* -- ID_MODEL_FROM_DATABASE=Seminole 2 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Seminole 2) - - pci:v000014F1d00002013sv00001025sd00008013* -- ID_MODEL_FROM_DATABASE=Acer -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Acer) - - pci:v000014F1d00002013sv00001033sd0000809D* -- ID_MODEL_FROM_DATABASE=NEC -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) - - pci:v000014F1d00002013sv00001033sd000080BC* -- ID_MODEL_FROM_DATABASE=NEC -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (NEC) - - pci:v000014F1d00002013sv0000155Dsd00006793* -- ID_MODEL_FROM_DATABASE=HP -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (HP) - - pci:v000014F1d00002013sv0000155Dsd00008850* -- ID_MODEL_FROM_DATABASE=E Machines -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (E Machines) - - pci:v000014F1d00002014* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem -@@ -46131,7 +46131,7 @@ pci:v000014F1d00002045* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) - - pci:v000014F1d00002045sv000014F1sd00002045* -- ID_MODEL_FROM_DATABASE=Generic SoftK56 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA) (Generic SoftK56) - - pci:v000014F1d00002046* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice/Spkp Modem (WorldW SmartDAA) -@@ -46152,7 +46152,7 @@ pci:v000014F1d00002093* - ID_MODEL_FROM_DATABASE=HSF 56k Modem - - pci:v000014F1d00002093sv0000155Dsd00002F07* -- ID_MODEL_FROM_DATABASE=Legend -+ ID_MODEL_FROM_DATABASE=HSF 56k Modem (Legend) - - pci:v000014F1d00002143* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Cell Modem (Mob WorldW SmartDAA) -@@ -46206,13 +46206,13 @@ pci:v000014F1d00002443* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) - - pci:v000014F1d00002443sv0000104Dsd00008075* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) - - pci:v000014F1d00002443sv0000104Dsd00008083* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) - - pci:v000014F1d00002443sv0000104Dsd00008097* -- ID_MODEL_FROM_DATABASE=Modem -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Mob WorldW SmartDAA) (Modem) - - pci:v000014F1d00002444* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax/Voice Modem (Mob WorldW SmartDAA) -@@ -46239,13 +46239,13 @@ pci:v000014F1d00002F00* - ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem - - pci:v000014F1d00002F00sv000013E0sd00008D84* -- ID_MODEL_FROM_DATABASE=IBM HSFi V.90 -+ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (IBM HSFi V.90) - - pci:v000014F1d00002F00sv000013E0sd00008D85* -- ID_MODEL_FROM_DATABASE=Compaq Stinger -+ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Compaq Stinger) - - pci:v000014F1d00002F00sv000014F1sd00002004* -- ID_MODEL_FROM_DATABASE=Dynalink 56PMi -+ ID_MODEL_FROM_DATABASE=HSF 56k HSFi Modem (Dynalink 56PMi) - - pci:v000014F1d00002F02* - ID_MODEL_FROM_DATABASE=HSF 56k HSFi Data/Fax -@@ -46257,16 +46257,16 @@ pci:v000014F1d00002F20* - ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem - - pci:v000014F1d00002F20sv000014F1sd0000200C* -- ID_MODEL_FROM_DATABASE=Soft Data Fax Modem with SmartCP -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Soft Data Fax Modem with SmartCP) - - pci:v000014F1d00002F20sv000014F1sd0000200F* -- ID_MODEL_FROM_DATABASE=Dimension 3000 -+ ID_MODEL_FROM_DATABASE=HSF 56k Data/Fax Modem (Dimension 3000) - - pci:v000014F1d00002F30* - ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP - - pci:v000014F1d00002F30sv000014F1sd00002014* -- ID_MODEL_FROM_DATABASE=Devolo MikroLink 56K Modem PCI -+ ID_MODEL_FROM_DATABASE=SoftV92 SpeakerPhone SoftRing Modem with SmartSP (Devolo MikroLink 56K Modem PCI) - - pci:v000014F1d00002F50* - ID_MODEL_FROM_DATABASE=Conexant SoftK56 Data/Fax Modem -@@ -46275,13 +46275,13 @@ pci:v000014F1d00005B7A* - ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder - - pci:v000014F1d00005B7Asv00000070sd00007444* -- ID_MODEL_FROM_DATABASE=WinTV HVR-1600 -+ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinTV HVR-1600) - - pci:v000014F1d00005B7Asv0000107Dsd00006F34* -- ID_MODEL_FROM_DATABASE=WinFast DVR3100 H -+ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (WinFast DVR3100 H) - - pci:v000014F1d00005B7Asv00005854sd00003343* -- ID_MODEL_FROM_DATABASE=GoTView PCI DVD3 Hybrid -+ ID_MODEL_FROM_DATABASE=CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder (GoTView PCI DVD3 Hybrid) - - pci:v000014F1d00008200* - ID_MODEL_FROM_DATABASE=CX25850 -@@ -46293,304 +46293,304 @@ pci:v000014F1d00008800* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder - - pci:v000014F1d00008800sv00000070sd00002801* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 28xxx (Roslyn) models) - - pci:v000014F1d00008800sv00000070sd00003400* -- ID_MODEL_FROM_DATABASE=WinTV 34604 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 34604) - - pci:v000014F1d00008800sv00000070sd00003401* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Hauppauge WinTV 34xxx models) - - pci:v000014F1d00008800sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-4000-HD) - - pci:v000014F1d00008800sv00000070sd00007801* -- ID_MODEL_FROM_DATABASE=WinTV HVR-1800 MCE -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV HVR-1800 MCE) - - pci:v000014F1d00008800sv00000070sd00009001* -- ID_MODEL_FROM_DATABASE=Nova-T DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-T DVB-T) - - pci:v000014F1d00008800sv00000070sd00009200* -- ID_MODEL_FROM_DATABASE=Nova-SE2 DVB-S -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-SE2 DVB-S) - - pci:v000014F1d00008800sv00000070sd00009202* -- ID_MODEL_FROM_DATABASE=Nova-S-Plus DVB-S -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Nova-S-Plus DVB-S) - - pci:v000014F1d00008800sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008800sv00000070sd00009600* -- ID_MODEL_FROM_DATABASE=WinTV 88x Video -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV 88x Video) - - pci:v000014F1d00008800sv00000070sd00009802* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid (Low Profile) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinTV-HVR1100 DVB-T/Hybrid (Low Profile)) - - pci:v000014F1d00008800sv00001002sd000000F8* -- ID_MODEL_FROM_DATABASE=ATI TV Wonder Pro -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) - - pci:v000014F1d00008800sv00001002sd0000A101* -- ID_MODEL_FROM_DATABASE=HDTV Wonder -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) - - pci:v000014F1d00008800sv00001043sd00004823* -- ID_MODEL_FROM_DATABASE=ASUS PVR-416 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ASUS PVR-416) - - pci:v000014F1d00008800sv0000107Dsd00006611* -- ID_MODEL_FROM_DATABASE=Winfast TV 2000XP Expert -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Winfast TV 2000XP Expert) - - pci:v000014F1d00008800sv0000107Dsd00006613* -- ID_MODEL_FROM_DATABASE=Leadtek Winfast 2000XP Expert -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast 2000XP Expert) - - pci:v000014F1d00008800sv0000107Dsd00006620* -- ID_MODEL_FROM_DATABASE=Leadtek Winfast DV2000 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek Winfast DV2000) - - pci:v000014F1d00008800sv0000107Dsd0000663C* -- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Leadtek PVR 2000) - - pci:v000014F1d00008800sv0000107Dsd0000665F* -- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (WinFast DTV1000-T) - - pci:v000014F1d00008800sv000010FCsd0000D003* -- ID_MODEL_FROM_DATABASE=IODATA GV-VCP3/PCI -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV-VCP3/PCI) - - pci:v000014F1d00008800sv000010FCsd0000D035* -- ID_MODEL_FROM_DATABASE=IODATA GV/BCTV7E -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (IODATA GV/BCTV7E) - - pci:v000014F1d00008800sv00001421sd00000334* -- ID_MODEL_FROM_DATABASE=Instant TV DVB-T PCI -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Instant TV DVB-T PCI) - - pci:v000014F1d00008800sv00001461sd0000000A* -- ID_MODEL_FROM_DATABASE=AVerTV 303 (M126) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AVerTV 303 (M126)) - - pci:v000014F1d00008800sv00001461sd0000000B* -- ID_MODEL_FROM_DATABASE=AverTV Studio 303 (M126) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (AverTV Studio 303 (M126)) - - pci:v000014F1d00008800sv00001461sd00008011* -- ID_MODEL_FROM_DATABASE=UltraTV Media Center PCI 550 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (UltraTV Media Center PCI 550) - - pci:v000014F1d00008800sv00001462sd00008606* -- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (MSI TV-@nywhere Master) - - pci:v000014F1d00008800sv000014C7sd00000107* -- ID_MODEL_FROM_DATABASE=GDI Black Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GDI Black Gold) - - pci:v000014F1d00008800sv000014F1sd00000187* -- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Conexant DVB-T reference design) - - pci:v000014F1d00008800sv000014F1sd00000342* -- ID_MODEL_FROM_DATABASE=Digital-Logic MICROSPACE Entertainment Center (MEC) -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Digital-Logic MICROSPACE Entertainment Center (MEC)) - - pci:v000014F1d00008800sv0000153Bsd00001166* -- ID_MODEL_FROM_DATABASE=Cinergy 1400 DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Cinergy 1400 DVB-T) - - pci:v000014F1d00008800sv00001540sd00002580* -- ID_MODEL_FROM_DATABASE=Provideo PV259 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Provideo PV259) - - pci:v000014F1d00008800sv00001554sd00004811* -- ID_MODEL_FROM_DATABASE=PixelView -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (PixelView) - - pci:v000014F1d00008800sv00001554sd00004813* -- ID_MODEL_FROM_DATABASE=Club 3D ZAP1000 MCE Edition -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (Club 3D ZAP1000 MCE Edition) - - pci:v000014F1d00008800sv000017DEsd000008A1* -- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T with cx22702 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T with cx22702) - - pci:v000014F1d00008800sv000017DEsd000008A6* -- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld/VStream XPert DVB-T) - - pci:v000014F1d00008800sv000017DEsd000008B2* -- ID_MODEL_FROM_DATABASE=KWorld DVB-S 100 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (KWorld DVB-S 100) - - pci:v000014F1d00008800sv000017DEsd0000A8A6* -- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T) - - pci:v000014F1d00008800sv00001822sd00000025* -- ID_MODEL_FROM_DATABASE=digitalnow DNTV Live! DVB-T Pro -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (digitalnow DNTV Live! DVB-T Pro) - - pci:v000014F1d00008800sv0000185Bsd0000E000* -- ID_MODEL_FROM_DATABASE=VideoMate X500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (VideoMate X500) - - pci:v000014F1d00008800sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=FusionHDTV 5 Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 5 Gold) - - pci:v000014F1d00008800sv000018ACsd0000D810* -- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-Q -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-Q) - - pci:v000014F1d00008800sv000018ACsd0000D820* -- ID_MODEL_FROM_DATABASE=FusionHDTV 3 Gold-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV 3 Gold-T) - - pci:v000014F1d00008800sv000018ACsd0000DB00* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T1 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T1) - - pci:v000014F1d00008800sv000018ACsd0000DB11* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Plus -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Plus) - - pci:v000014F1d00008800sv000018ACsd0000DB50* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Digital -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Digital) - - pci:v000014F1d00008800sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TV Tuner Card -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (GoTView PCI Hybrid TV Tuner Card) - - pci:v000014F1d00008800sv00007063sd00003000* -- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD3000 HDTV) - - pci:v000014F1d00008800sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (pcHDTV HD-5500) - - pci:v000014F1d00008801* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] - - pci:v000014F1d00008801sv00000070sd00002801* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 28xxx (Roslyn) models) - - pci:v000014F1d00008801sv0000185Bsd0000E000* -- ID_MODEL_FROM_DATABASE=VideoMate X500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (VideoMate X500) - - pci:v000014F1d00008801sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio AVStream Device -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio AVStream Device) - - pci:v000014F1d00008801sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (pcHDTV HD-5500) - - pci:v000014F1d00008802* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] - - pci:v000014F1d00008802sv00000070sd00002801* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 28xxx (Roslyn) models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Hauppauge WinTV 28xxx (Roslyn) models) - - pci:v000014F1d00008802sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV HVR-4000-HD) - - pci:v000014F1d00008802sv00000070sd00009002* -- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Nova-T DVB-T Model 909) - - pci:v000014F1d00008802sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008802sv00000070sd00009600* -- ID_MODEL_FROM_DATABASE=WinTV 88x MPEG Encoder -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinTV 88x MPEG Encoder) - - pci:v000014F1d00008802sv00001043sd00004823* -- ID_MODEL_FROM_DATABASE=ASUS PVR-416 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (ASUS PVR-416) - - pci:v000014F1d00008802sv0000107Dsd0000663C* -- ID_MODEL_FROM_DATABASE=Leadtek PVR 2000 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Leadtek PVR 2000) - - pci:v000014F1d00008802sv0000107Dsd0000665F* -- ID_MODEL_FROM_DATABASE=WinFast DTV1000-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (WinFast DTV1000-T) - - pci:v000014F1d00008802sv000014F1sd00000187* -- ID_MODEL_FROM_DATABASE=Conexant DVB-T reference design -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (Conexant DVB-T reference design) - - pci:v000014F1d00008802sv000017DEsd000008A1* -- ID_MODEL_FROM_DATABASE=XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (XPert DVB-T PCI BDA DVBT 23880 Transport Stream Capture) - - pci:v000014F1d00008802sv000017DEsd000008A6* -- ID_MODEL_FROM_DATABASE=KWorld/VStream XPert DVB-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (KWorld/VStream XPert DVB-T) - - pci:v000014F1d00008802sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV5 Gold) - - pci:v000014F1d00008802sv000018ACsd0000D810* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-Q) - - pci:v000014F1d00008802sv000018ACsd0000D820* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DViCO FusionHDTV3 Gold-T) - - pci:v000014F1d00008802sv000018ACsd0000DB00* -- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T1) - - pci:v000014F1d00008802sv000018ACsd0000DB10* -- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T Plus -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (DVICO FusionHDTV DVB-T Plus) - - pci:v000014F1d00008802sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid TS Capture Device -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (GoTView PCI Hybrid TS Capture Device) - - pci:v000014F1d00008802sv00007063sd00003000* -- ID_MODEL_FROM_DATABASE=pcHDTV HD3000 HDTV -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD3000 HDTV) - - pci:v000014F1d00008802sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (pcHDTV HD-5500) - - pci:v000014F1d00008804* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] - - pci:v000014F1d00008804sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV HVR-4000-HD) - - pci:v000014F1d00008804sv00000070sd00009002* -- ID_MODEL_FROM_DATABASE=Nova-T DVB-T Model 909 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (Nova-T DVB-T Model 909) - - pci:v000014F1d00008804sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008804sv00007063sd00005500* -- ID_MODEL_FROM_DATABASE=pcHDTV HD-5500 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (pcHDTV HD-5500) - - pci:v000014F1d00008811* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] - - pci:v000014F1d00008811sv00000070sd00003400* -- ID_MODEL_FROM_DATABASE=WinTV 34604 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 34604) - - pci:v000014F1d00008811sv00000070sd00003401* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV 34xxx models -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (Hauppauge WinTV 34xxx models) - - pci:v000014F1d00008811sv00000070sd00006902* -- ID_MODEL_FROM_DATABASE=WinTV HVR-4000-HD -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV HVR-4000-HD) - - pci:v000014F1d00008811sv00000070sd00009402* -- ID_MODEL_FROM_DATABASE=WinTV-HVR1100 DVB-T/Hybrid -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV-HVR1100 DVB-T/Hybrid) - - pci:v000014F1d00008811sv00000070sd00009600* -- ID_MODEL_FROM_DATABASE=WinTV 88x Audio -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (WinTV 88x Audio) - - pci:v000014F1d00008811sv00001462sd00008606* -- ID_MODEL_FROM_DATABASE=MSI TV-@nywhere Master -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (MSI TV-@nywhere Master) - - pci:v000014F1d00008811sv000018ACsd0000D500* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV5 Gold -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV5 Gold) - - pci:v000014F1d00008811sv000018ACsd0000D810* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-Q -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-Q) - - pci:v000014F1d00008811sv000018ACsd0000D820* -- ID_MODEL_FROM_DATABASE=DViCO FusionHDTV3 Gold-T -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DViCO FusionHDTV3 Gold-T) - - pci:v000014F1d00008811sv000018ACsd0000DB00* -- ID_MODEL_FROM_DATABASE=DVICO FusionHDTV DVB-T1 -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (DVICO FusionHDTV DVB-T1) - - pci:v000014F1d00008811sv00005654sd00002388* -- ID_MODEL_FROM_DATABASE=GoTView PCI Hybrid Audio Capture Device -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (GoTView PCI Hybrid Audio Capture Device) - - pci:v000014F1d00008852* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder - - pci:v000014F1d00008852sv00000070sd00008010* -- ID_MODEL_FROM_DATABASE=Hauppauge WinTV HVR-1400 ExpressCard -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) - - pci:v000014F1d00008852sv0000107Dsd00006F22* -- ID_MODEL_FROM_DATABASE=WinFast PxTV1200 -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) - - pci:v000014F1d00008852sv00001461sd0000C039* -- ID_MODEL_FROM_DATABASE=AVerTV Hybrid Express (A577) -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (AVerTV Hybrid Express (A577)) - - pci:v000014F1d00008852sv0000153Bsd0000117E* -- ID_MODEL_FROM_DATABASE=Cinergy T PCIe Dual -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Cinergy T PCIe Dual) - - pci:v000014F1d00008852sv000018ACsd0000DB78* -- ID_MODEL_FROM_DATABASE=FusionHDTV DVB-T Dual Express -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) - - pci:v000014F1d00008880* - ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb - - pci:v000014F1d00008880sv00000070sd0000C108* -- ID_MODEL_FROM_DATABASE=WinTV-HVR-4400-HD model 1278 -+ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (WinTV-HVR-4400-HD model 1278) - - pci:v000014F1d00008880sv00005654sd00002389* -- ID_MODEL_FROM_DATABASE=GoTView X5 DVD Hybrid PCI-E -+ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 DVD Hybrid PCI-E) - - pci:v000014F1d00008880sv00005654sd00002390* -- ID_MODEL_FROM_DATABASE=GoTView X5 3D HYBRID PCI-E -+ ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (GoTView X5 3D HYBRID PCI-E) - - pci:v000014F2* - ID_VENDOR_FROM_DATABASE=MOBILITY Electronics -@@ -46842,100 +46842,100 @@ pci:v00001522d00000100* - ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge - - pci:v00001522d00000100sv00001522sd00000200* -- ID_MODEL_FROM_DATABASE=RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000300* -- ID_MODEL_FROM_DATABASE=RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000400* -- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000500* -- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000600* -- ID_MODEL_FROM_DATABASE=RockForce+ 2 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 2 Port V.90 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000700* -- ID_MODEL_FROM_DATABASE=RockForce+ 4 Port V.90 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForce+ 4 Port V.90 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000800* -- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem) - - pci:v00001522d00000100sv00001522sd00000C00* -- ID_MODEL_FROM_DATABASE=RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) - - pci:v00001522d00000100sv00001522sd00000D00* -- ID_MODEL_FROM_DATABASE=RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) - - pci:v00001522d00000100sv00001522sd00001D00* -- ID_MODEL_FROM_DATABASE=RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem) - - pci:v00001522d00000100sv00001522sd00002000* -- ID_MODEL_FROM_DATABASE=RockForceD1 1 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD1 1 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002100* -- ID_MODEL_FROM_DATABASE=RockForceF1 1 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF1 1 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00002200* -- ID_MODEL_FROM_DATABASE=RockForceD2 2 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD2 2 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002300* -- ID_MODEL_FROM_DATABASE=RockForceF2 2 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF2 2 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00002400* -- ID_MODEL_FROM_DATABASE=RockForceD4 4 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD4 4 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002500* -- ID_MODEL_FROM_DATABASE=RockForceF4 4 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF4 4 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00002600* -- ID_MODEL_FROM_DATABASE=RockForceD8 8 Port V.90 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceD8 8 Port V.90 Data Modem) - - pci:v00001522d00000100sv00001522sd00002700* -- ID_MODEL_FROM_DATABASE=RockForceF8 8 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (RockForceF8 8 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003000* -- ID_MODEL_FROM_DATABASE=IQ Express D1 - 1 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D1 - 1 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003100* -- ID_MODEL_FROM_DATABASE=IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F1 - 1 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003200* -- ID_MODEL_FROM_DATABASE=IQ Express D2 - 2 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D2 - 2 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003300* -- ID_MODEL_FROM_DATABASE=IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F2 - 2 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003400* -- ID_MODEL_FROM_DATABASE=IQ Express D4 - 4 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D4 - 4 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003500* -- ID_MODEL_FROM_DATABASE=IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F4 - 4 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00000100sv00001522sd00003C00* -- ID_MODEL_FROM_DATABASE=IQ Express D8 - 8 Port V.92 Data Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express D8 - 8 Port V.92 Data Modem) - - pci:v00001522d00000100sv00001522sd00003D00* -- ID_MODEL_FROM_DATABASE=IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem -+ ID_MODEL_FROM_DATABASE=PCI <-> IOBus Bridge (IQ Express F8 - 8 Port V.34 Super-G3 Fax Modem) - - pci:v00001522d00004000* - ID_MODEL_FROM_DATABASE=PCI Express UART - - pci:v00001522d00004000sv00001522sd00004001* -- ID_MODEL_FROM_DATABASE=IQ Express 1-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 1-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004002* -- ID_MODEL_FROM_DATABASE=IQ Express 2-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 2-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004004* -- ID_MODEL_FROM_DATABASE=IQ Express 4-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 4-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004008* -- ID_MODEL_FROM_DATABASE=IQ Express 8-port V.34 Super-G3 Fax -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express 8-port V.34 Super-G3 Fax) - - pci:v00001522d00004000sv00001522sd00004100* -- ID_MODEL_FROM_DATABASE=IQ Express SideBand -+ ID_MODEL_FROM_DATABASE=PCI Express UART (IQ Express SideBand) - - pci:v00001523* - ID_VENDOR_FROM_DATABASE=MUSIC Semiconductors -@@ -46947,7 +46947,7 @@ pci:v00001524d00000510* - ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller - - pci:v00001524d00000510sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=CB710 Memory Card Reader Controller (NX9500) - - pci:v00001524d00000520* - ID_MODEL_FROM_DATABASE=FLASH memory: ENE Technology Inc: -@@ -46986,16 +46986,16 @@ pci:v00001524d00001410* - ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller - - pci:v00001524d00001410sv00001025sd0000003C* -- ID_MODEL_FROM_DATABASE=CL50 motherboard -+ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (CL50 motherboard) - - pci:v00001524d00001410sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=CB1410 Cardbus Controller (TravelMate 290) - - pci:v00001524d00001411* - ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller - - pci:v00001524d00001411sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=CB-710/2/4 Cardbus Controller (NX9500) - - pci:v00001524d00001412* - ID_MODEL_FROM_DATABASE=CB-712/4 Cardbus Controller -@@ -47598,7 +47598,7 @@ pci:v000015ADd00000801* - ID_MODEL_FROM_DATABASE=Virtual Machine Interface - - pci:v000015ADd00000801sv000015ADsd00000800* -- ID_MODEL_FROM_DATABASE=Hypervisor ROM Interface -+ ID_MODEL_FROM_DATABASE=Virtual Machine Interface (Hypervisor ROM Interface) - - pci:v000015ADd00001977* - ID_MODEL_FROM_DATABASE=HD Audio Controller -@@ -47748,10 +47748,10 @@ pci:v000015B3d00006746* - ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] - - pci:v000015B3d00006746sv0000103Csd00001781* -- ID_MODEL_FROM_DATABASE=NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter -+ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter) - - pci:v000015B3d00006746sv0000103Csd00003349* -- ID_MODEL_FROM_DATABASE=NC543i 2-port 4xQDR IB/10Gb Adapter -+ ID_MODEL_FROM_DATABASE=MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] (NC543i 2-port 4xQDR IB/10Gb Adapter) - - pci:v000015B3d00006750* - ID_MODEL_FROM_DATABASE=MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] -@@ -47763,7 +47763,7 @@ pci:v000015B3d00006764* - ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] - - pci:v000015B3d00006764sv0000103Csd00003313* -- ID_MODEL_FROM_DATABASE=HP NC542m Dual Port Flex-10 10GbE BLc Adapter -+ ID_MODEL_FROM_DATABASE=MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] (HP NC542m Dual Port Flex-10 10GbE BLc Adapter) - - pci:v000015B3d0000676E* - ID_MODEL_FROM_DATABASE=MT26478 [ConnectX EN 40GigE, PCIe 2.0 5GT/s] -@@ -47886,13 +47886,13 @@ pci:v000015BCd00000105* - ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES - - pci:v000015BCd00000105sv0000117Csd00000022* -- ID_MODEL_FROM_DATABASE=Celerity FC-42XS Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42XS Fibre Channel Adapter) - - pci:v000015BCd00000105sv0000117Csd00000025* -- ID_MODEL_FROM_DATABASE=Celerity FC-44ES Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-44ES Fibre Channel Adapter) - - pci:v000015BCd00000105sv0000117Csd00000026* -- ID_MODEL_FROM_DATABASE=Celerity FC-42ES Fibre Channel Adapter -+ ID_MODEL_FROM_DATABASE=Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES (Celerity FC-42ES Fibre Channel Adapter) - - pci:v000015BCd00001100* - ID_MODEL_FROM_DATABASE=E8001-66442 PCI Express CIC -@@ -48306,34 +48306,34 @@ pci:v00001657d00000013* - ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA - - pci:v00001657d00000013sv0000103Csd00001742* -- ID_MODEL_FROM_DATABASE=HP 82B 8Gbps dual port FC HBA -+ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 82B 8Gbps dual port FC HBA) - - pci:v00001657d00000013sv0000103Csd00001744* -- ID_MODEL_FROM_DATABASE=HP 42B 4Gbps dual port FC HBA -+ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (HP 42B 4Gbps dual port FC HBA) - - pci:v00001657d00000013sv00001657sd00000014* -- ID_MODEL_FROM_DATABASE=425/825 4Gbps/8Gbps PCIe dual port FC HBA -+ ID_MODEL_FROM_DATABASE=425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA (425/825 4Gbps/8Gbps PCIe dual port FC HBA) - - pci:v00001657d00000014* - ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - - pci:v00001657d00000014sv00001657sd00000014* -- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - FCOE -+ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- FCOE) - - pci:v00001657d00000014sv00001657sd00000015* -- ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA - LL -+ ID_MODEL_FROM_DATABASE=1010/1020/1007/1741 10Gbps CNA (- LL) - - pci:v00001657d00000017* - ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA - - pci:v00001657d00000017sv0000103Csd00001741* -- ID_MODEL_FROM_DATABASE=HP 41B 4Gbps single port FC HBA -+ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 41B 4Gbps single port FC HBA) - - pci:v00001657d00000017sv0000103Csd00001743* -- ID_MODEL_FROM_DATABASE=HP 81B 8Gbps single port FC HBA -+ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (HP 81B 8Gbps single port FC HBA) - - pci:v00001657d00000017sv00001657sd00000014* -- ID_MODEL_FROM_DATABASE=415/815 4Gbps/8Gbps single port PCIe FC HBA -+ ID_MODEL_FROM_DATABASE=415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA (415/815 4Gbps/8Gbps single port PCIe FC HBA) - - pci:v00001657d00000021* - ID_MODEL_FROM_DATABASE=804 8Gbps FC HBA for HP Bladesystem c-class -@@ -48342,13 +48342,13 @@ pci:v00001657d00000022* - ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter - - pci:v00001657d00000022sv00001657sd00000022* -- ID_MODEL_FROM_DATABASE=10Gbps CNA - FCOE -+ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - FCOE) - - pci:v00001657d00000022sv00001657sd00000023* -- ID_MODEL_FROM_DATABASE=10Gbps CNA - LL -+ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (10Gbps CNA - LL) - - pci:v00001657d00000022sv00001657sd00000024* -- ID_MODEL_FROM_DATABASE=16Gbps FC HBA -+ ID_MODEL_FROM_DATABASE=1860 16Gbps/10Gbps Fabric Adapter (16Gbps FC HBA) - - pci:v00001657d00000023* - ID_MODEL_FROM_DATABASE=1867/1869 16Gbps FC HBA -@@ -48435,10 +48435,10 @@ pci:v0000167Bd00002102* - ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 - - pci:v0000167Bd00002102sv0000187Esd00003406* -- ID_MODEL_FROM_DATABASE=ZyAIR B-122 CardBus 11Mbs Wireless LAN Card -+ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-122 CardBus 11Mbs Wireless LAN Card) - - pci:v0000167Bd00002102sv0000187Esd00003407* -- ID_MODEL_FROM_DATABASE=ZyAIR B-320 802.11b Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=ZyDAS ZD1202 (ZyAIR B-320 802.11b Wireless PCI Adapter) - - pci:v0000167Bd00002116* - ID_MODEL_FROM_DATABASE=ZD1212B Wireless Adapter -@@ -48471,16 +48471,16 @@ pci:v0000168Cd00000007* - ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] - - pci:v0000168Cd00000007sv00001737sd00000007* -- ID_MODEL_FROM_DATABASE=WPC54A Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (WPC54A Wireless PC Card) - - pci:v0000168Cd00000007sv00001B47sd00000100* -- ID_MODEL_FROM_DATABASE=Harmony 8450CN Wireless CardBus Module -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Harmony 8450CN Wireless CardBus Module) - - pci:v0000168Cd00000007sv00001B47sd00000110* -- ID_MODEL_FROM_DATABASE=Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter) - - pci:v0000168Cd00000007sv00008086sd00002501* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 5000 LAN PCI Adapter Module -+ ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] (PRO/Wireless 5000 LAN PCI Adapter Module) - - pci:v0000168Cd00000011* - ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001A 802.11a] -@@ -48489,562 +48489,562 @@ pci:v0000168Cd00000012* - ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] - - pci:v0000168Cd00000012sv00001186sd00003A03* -- ID_MODEL_FROM_DATABASE=AirPro DWL-A650 Wireless Cardbus Adapter (rev.B) -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-A650 Wireless Cardbus Adapter (rev.B)) - - pci:v0000168Cd00000012sv00001186sd00003A04* -- ID_MODEL_FROM_DATABASE=AirPro DWL-AB650 Multimode Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB650 Multimode Wireless Cardbus Adapter) - - pci:v0000168Cd00000012sv00001186sd00003A05* -- ID_MODEL_FROM_DATABASE=AirPro DWL-AB520 Multimode Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (AirPro DWL-AB520 Multimode Wireless PCI Adapter) - - pci:v0000168Cd00000012sv0000126Csd00008031* -- ID_MODEL_FROM_DATABASE=2201 Mobile Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (2201 Mobile Adapter) - - pci:v0000168Cd00000012sv00001385sd00004400* -- ID_MODEL_FROM_DATABASE=WAB501 802.11ab Wireless CardBus Card -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (WAB501 802.11ab Wireless CardBus Card) - - pci:v0000168Cd00000012sv00001B47sd0000AA00* -- ID_MODEL_FROM_DATABASE=8460 802.11ab Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5211 Wireless Network Adapter [AR5001X 802.11ab] (8460 802.11ab Wireless CardBus Adapter) - - pci:v0000168Cd00000013* - ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter - - pci:v0000168Cd00000013sv00000308sd00003402* -- ID_MODEL_FROM_DATABASE=AG-100 802.11ag Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AG-100 802.11ag Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00000308sd00003405* -- ID_MODEL_FROM_DATABASE=G-102 v2 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-102 v2 802.11g Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00000308sd00003408* -- ID_MODEL_FROM_DATABASE=G-170S 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (G-170S 802.11g Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv00000E11sd000000E5* -- ID_MODEL_FROM_DATABASE=NC6000/NC8000 laptop -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (NC6000/NC8000 laptop) - - pci:v0000168Cd00000013sv000010B7sd00006002* -- ID_MODEL_FROM_DATABASE=3CRWE154A72 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRWE154A72 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv00001113sd0000D301* -- ID_MODEL_FROM_DATABASE=Philips CPWNA100 Wireless CardBus adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Philips CPWNA100 Wireless CardBus adapter) - - pci:v0000168Cd00000013sv00001113sd0000EE23* -- ID_MODEL_FROM_DATABASE=SMCWPCIT-G 108Mbps Wireless PCI adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (SMCWPCIT-G 108Mbps Wireless PCI adapter) - - pci:v0000168Cd00000013sv00001154sd0000033B* -- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AMG54 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AMG54) - - pci:v0000168Cd00000013sv00001154sd0000034E* -- ID_MODEL_FROM_DATABASE=Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Buffalo WLI-CB-AG108HP 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003202* -- ID_MODEL_FROM_DATABASE=DWL-G650 (Rev B3,B5) Wireless cardbus adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650 (Rev B3,B5) Wireless cardbus adapter) - - pci:v0000168Cd00000013sv00001186sd00003203* -- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. A) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) - - pci:v0000168Cd00000013sv00001186sd00003A07* -- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG650 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG650 Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A08* -- ID_MODEL_FROM_DATABASE=AirXpert DWL-AG520 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirXpert DWL-AG520 Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A12* -- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C)) - - pci:v0000168Cd00000013sv00001186sd00003A13* -- ID_MODEL_FROM_DATABASE=AirPlus DWL-G520 Wireless PCI Adapter (rev. B) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus DWL-G520 Wireless PCI Adapter (rev. B)) - - pci:v0000168Cd00000013sv00001186sd00003A14* -- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.A)) - - pci:v0000168Cd00000013sv00001186sd00003A17* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G680 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G680 Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A18* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-G550 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-G550 Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A1A* -- ID_MODEL_FROM_DATABASE=WNA-2330 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WNA-2330 802.11bg Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A63* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003A93* -- ID_MODEL_FROM_DATABASE=Conceptronic C54I Wireless 801.11g PCI card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54I Wireless 801.11g PCI card) - - pci:v0000168Cd00000013sv00001186sd00003A94* -- ID_MODEL_FROM_DATABASE=Conceptronic C54C 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Conceptronic C54C 802.11g Wireless Cardbus Adapter) - - pci:v0000168Cd00000013sv00001186sd00003AB0* -- ID_MODEL_FROM_DATABASE=Allnet ALL0281 Wireless PCI Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Allnet ALL0281 Wireless PCI Card) - - pci:v0000168Cd00000013sv00001385sd00004600* -- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) - - pci:v0000168Cd00000013sv00001385sd00004610* -- ID_MODEL_FROM_DATABASE=WAG511 802.11a/b/g Dual Band Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG511 802.11a/b/g Dual Band Wireless PC Card) - - pci:v0000168Cd00000013sv00001385sd00004900* -- ID_MODEL_FROM_DATABASE=WG311v1 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311v1 802.11g Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001385sd00004A00* -- ID_MODEL_FROM_DATABASE=WAG311 802.11a/g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WAG311 802.11a/g Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001385sd00004B00* -- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.A/B) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.A/B)) - - pci:v0000168Cd00000013sv00001385sd00004D00* -- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A2) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A2)) - - pci:v0000168Cd00000013sv00001385sd00004F00* -- ID_MODEL_FROM_DATABASE=WG511U Double 108 Mbps Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511U Double 108 Mbps Wireless PC Card) - - pci:v0000168Cd00000013sv00001385sd00005A00* -- ID_MODEL_FROM_DATABASE=WG311T 108 Mbps Wireless PCI Adapter (rev.A3) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG311T 108 Mbps Wireless PCI Adapter (rev.A3)) - - pci:v0000168Cd00000013sv00001385sd00005B00* -- ID_MODEL_FROM_DATABASE=WG511T 108 Mbps Wireless PC Card (rev.C) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WG511T 108 Mbps Wireless PC Card (rev.C)) - - pci:v0000168Cd00000013sv00001385sd00005D00* -- ID_MODEL_FROM_DATABASE=WPN511 RangeMax Wireless PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPN511 RangeMax Wireless PC Card) - - pci:v0000168Cd00000013sv00001458sd0000E911* -- ID_MODEL_FROM_DATABASE=GN-WIAG02 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (GN-WIAG02) - - pci:v0000168Cd00000013sv00001468sd00000403* -- ID_MODEL_FROM_DATABASE=U10H014 802.11g Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (U10H014 802.11g Cardbus Adapter) - - pci:v0000168Cd00000013sv00001468sd00000408* -- ID_MODEL_FROM_DATABASE=ThinkPad 11b/g Wireless LAN Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (ThinkPad 11b/g Wireless LAN Mini PCI Adapter) - - pci:v0000168Cd00000013sv000014B7sd00000A10* -- ID_MODEL_FROM_DATABASE=8480-WD 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8480-WD 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv000014B7sd00000A60* -- ID_MODEL_FROM_DATABASE=8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter) - - pci:v0000168Cd00000013sv000014B7sd0000AA30* -- ID_MODEL_FROM_DATABASE=8800-FC 802.11bg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8800-FC 802.11bg Cardbus Adapter) - - pci:v0000168Cd00000013sv000014B7sd0000AA40* -- ID_MODEL_FROM_DATABASE=8470-WD 802.11bg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (8470-WD 802.11bg Cardbus Adapter) - - pci:v0000168Cd00000013sv000014B9sd0000CB21* -- ID_MODEL_FROM_DATABASE=CB21 802.11a/b/g Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CB21 802.11a/b/g Cardbus Adapter) - - pci:v0000168Cd00000013sv00001668sd00001026* -- ID_MODEL_FROM_DATABASE=IBM HighRate 11 a/b/g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (IBM HighRate 11 a/b/g Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00000013* -- ID_MODEL_FROM_DATABASE=AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001025* -- ID_MODEL_FROM_DATABASE=DWL-G650B2 Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (DWL-G650B2 Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001027* -- ID_MODEL_FROM_DATABASE=Engenius NL-3054CB ARIES b/g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius NL-3054CB ARIES b/g CardBus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001042* -- ID_MODEL_FROM_DATABASE=Ubiquiti Networks SuperRange a/b/g Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Ubiquiti Networks SuperRange a/b/g Cardbus Adapter) - - pci:v0000168Cd00000013sv0000168Csd00001051* -- ID_MODEL_FROM_DATABASE=EZ Connect g 802.11g 108Mbps Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (EZ Connect g 802.11g 108Mbps Wireless PCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002026* -- ID_MODEL_FROM_DATABASE=Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002027* -- ID_MODEL_FROM_DATABASE=D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A) -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (D-Link AirPlus DWL-G520 Wireless PCI Adapter (rev. A)) - - pci:v0000168Cd00000013sv0000168Csd00002041* -- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002042* -- ID_MODEL_FROM_DATABASE=Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Engenius 5354MP Plus ARIES2 a/b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000168Csd00002051* -- ID_MODEL_FROM_DATABASE=TRENDnet TEW-443PI Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (TRENDnet TEW-443PI Wireless PCI Adapter) - - pci:v0000168Cd00000013sv000016A5sd0000160A* -- ID_MODEL_FROM_DATABASE=BWP712 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (BWP712 802.11bg Wireless CardBus Adapter) - - pci:v0000168Cd00000013sv000016ABsd00007302* -- ID_MODEL_FROM_DATABASE=Trust Speedshare Turbo Pro Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Trust Speedshare Turbo Pro Wireless PCI Adapter) - - pci:v0000168Cd00000013sv00001737sd00000017* -- ID_MODEL_FROM_DATABASE=WPC55AG -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG) - - pci:v0000168Cd00000013sv00001737sd00000026* -- ID_MODEL_FROM_DATABASE=WMP55AG v1.1 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.1) - - pci:v0000168Cd00000013sv00001737sd00000035* -- ID_MODEL_FROM_DATABASE=WPC55AG v1.2 802.11abg Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WPC55AG v1.2 802.11abg Cardbus Adapter) - - pci:v0000168Cd00000013sv00001737sd00000036* -- ID_MODEL_FROM_DATABASE=WMP55AG v1.2 802.11abg PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (WMP55AG v1.2 802.11abg PCI Adapter) - - pci:v0000168Cd00000013sv00001799sd00003000* -- ID_MODEL_FROM_DATABASE=F6D3000 Dual-Band Wireless A+G Desktop Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3000 Dual-Band Wireless A+G Desktop Card) - - pci:v0000168Cd00000013sv00001799sd00003010* -- ID_MODEL_FROM_DATABASE=F6D3010 Dual-Band Wireless A+G Notebook Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (F6D3010 Dual-Band Wireless A+G Notebook Card) - - pci:v0000168Cd00000013sv000017CFsd00000042* -- ID_MODEL_FROM_DATABASE=Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter) - - pci:v0000168Cd00000013sv0000185Fsd00001012* -- ID_MODEL_FROM_DATABASE=CM9 Wireless a/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (CM9 Wireless a/b/g MiniPCI Adapter) - - pci:v0000168Cd00000013sv0000185Fsd00002012* -- ID_MODEL_FROM_DATABASE=Wistron NeWeb WLAN a+b+g model CB9 -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (Wistron NeWeb WLAN a+b+g model CB9) - - pci:v0000168Cd00000013sv0000A727sd00006801* -- ID_MODEL_FROM_DATABASE=3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card -+ ID_MODEL_FROM_DATABASE=AR5212/AR5213 Wireless Network Adapter (3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card) - - pci:v0000168Cd0000001A* - ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] - - pci:v0000168Cd0000001Asv00001052sd0000168C* -- ID_MODEL_FROM_DATABASE=Sweex Wireless Lan PC Card 54Mbps -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Sweex Wireless Lan PC Card 54Mbps) - - pci:v0000168Cd0000001Asv00001113sd0000EE20* -- ID_MODEL_FROM_DATABASE=SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU)) - - pci:v0000168Cd0000001Asv00001113sd0000EE24* -- ID_MODEL_FROM_DATABASE=SMC Wireless PCI Card WPCI-G -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (SMC Wireless PCI Card WPCI-G) - - pci:v0000168Cd0000001Asv00001186sd00003A15* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.D1)) - - pci:v0000168Cd0000001Asv00001186sd00003A16* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless PCI Adapter(rev.B) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G510 Wireless PCI Adapter(rev.B)) - - pci:v0000168Cd0000001Asv00001186sd00003A1C* -- ID_MODEL_FROM_DATABASE=WNA-1330 Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WNA-1330 Notebook Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003A1D* -- ID_MODEL_FROM_DATABASE=WDA-1320 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WDA-1320 Desktop Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003A23* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G520+A Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G520+A Wireless PCI Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003A24* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G650+A Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G650+A Wireless Cardbus Adapter) - - pci:v0000168Cd0000001Asv00001186sd00003B08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1) -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.C1)) - - pci:v0000168Cd0000001Asv0000168Csd0000001A* -- ID_MODEL_FROM_DATABASE=Belkin FD7000 -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Belkin FD7000) - - pci:v0000168Cd0000001Asv0000168Csd00001052* -- ID_MODEL_FROM_DATABASE=TP-Link TL-WN510G Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (TP-Link TL-WN510G Wireless CardBus Adapter) - - pci:v0000168Cd0000001Asv0000168Csd00002052* -- ID_MODEL_FROM_DATABASE=Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G] -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Compex Wireless 802.11 b/g MiniPCI Adapter, Rev A1 [WLM54G]) - - pci:v0000168Cd0000001Asv000016ECsd00000122* -- ID_MODEL_FROM_DATABASE=Wireless PCI Adapter Model 5418 -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (Wireless PCI Adapter Model 5418) - - pci:v0000168Cd0000001Asv00001737sd00000053* -- ID_MODEL_FROM_DATABASE=WPC54G v7 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (WPC54G v7 802.11g Wireless-G Notebook Adapter) - - pci:v0000168Cd0000001Asv00001799sd0000700C* -- ID_MODEL_FROM_DATABASE=F5D7000 v5000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7000 v5000 Wireless G Desktop Card) - - pci:v0000168Cd0000001Asv00001799sd0000701D* -- ID_MODEL_FROM_DATABASE=F5D7010 v5000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (F5D7010 v5000 Wireless G Notebook Card) - - pci:v0000168Cd0000001Asv000017F9sd00000008* -- ID_MODEL_FROM_DATABASE=DX-WGNBC 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGNBC 802.11bg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Asv000017F9sd00000018* -- ID_MODEL_FROM_DATABASE=DX-WGDTC 802.11bg Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] (DX-WGDTC 802.11bg Wireless PCI Adapter) - - pci:v0000168Cd0000001B* - ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] - - pci:v0000168Cd0000001Bsv00000777sd00001107* -- ID_MODEL_FROM_DATABASE=UB5 802.11a Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (UB5 802.11a Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00000777sd00003002* -- ID_MODEL_FROM_DATABASE=XR2 802.11g Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR2 802.11g Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00000777sd00003005* -- ID_MODEL_FROM_DATABASE=XR5 802.11a Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR5 802.11a Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00000777sd00003009* -- ID_MODEL_FROM_DATABASE=XR9 900MHz Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (XR9 900MHz Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv00001154sd0000034E* -- ID_MODEL_FROM_DATABASE=WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WLI-CB-AG108HP 802.11abg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Bsv00001186sd00003A19* -- ID_MODEL_FROM_DATABASE=D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (D-Link AirPremier AG DWL-AG660 Wireless Cardbus Adapter) - - pci:v0000168Cd0000001Bsv00001186sd00003A22* -- ID_MODEL_FROM_DATABASE=AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B) -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (AirPremier AG DWL-AG530 Wireless PCI Adapter (rev.B)) - - pci:v0000168Cd0000001Bsv000011ADsd00005001* -- ID_MODEL_FROM_DATABASE=WN5301A 802.11bg Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WN5301A 802.11bg Wireless PCI Adapter) - - pci:v0000168Cd0000001Bsv00001458sd0000E901* -- ID_MODEL_FROM_DATABASE=GN-WI01HT Wireless a/b/g MiniPCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (GN-WI01HT Wireless a/b/g MiniPCI Adapter) - - pci:v0000168Cd0000001Bsv0000168Csd0000001B* -- ID_MODEL_FROM_DATABASE=Wireless LAN PCI LiteOn -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless LAN PCI LiteOn) - - pci:v0000168Cd0000001Bsv0000168Csd00001062* -- ID_MODEL_FROM_DATABASE=IPN-W100CB 802.11abg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (IPN-W100CB 802.11abg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Bsv0000168Csd00002062* -- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG) -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG (SuperAG)) - - pci:v0000168Cd0000001Bsv0000168Csd00002063* -- ID_MODEL_FROM_DATABASE=EnGenius EMP-8602 (400mw) or Compex WLM54AG -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (EnGenius EMP-8602 (400mw) or Compex WLM54AG) - - pci:v0000168Cd0000001Bsv000017F9sd0000000B* -- ID_MODEL_FROM_DATABASE=WL-711A 802.11abg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WL-711A 802.11abg Wireless CardBus Adapter) - - pci:v0000168Cd0000001Bsv000017F9sd0000000C* -- ID_MODEL_FROM_DATABASE=WPIA-112AG 802.11abg Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (WPIA-112AG 802.11abg Wireless PCI Adapter) - - pci:v0000168Cd0000001Bsv000017F9sd0000000D* -- ID_MODEL_FROM_DATABASE=PC-686X 802.11abg Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (PC-686X 802.11abg Wireless Mini PCI Adapter) - - pci:v0000168Cd0000001Bsv0000185Fsd00001600* -- ID_MODEL_FROM_DATABASE=DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW) -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (DCMA-82 High Power WLAN 802.11a/b/g mini-PCI Module (Super A/G, eXtended Range, 400mW)) - - pci:v0000168Cd0000001Bsv00001948sd00003ABA* -- ID_MODEL_FROM_DATABASE=RBTBJ-AW 802.11abg Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (RBTBJ-AW 802.11abg Wireless Cardbus Adapter) - - pci:v0000168Cd0000001Bsv0000A727sd00006804* -- ID_MODEL_FROM_DATABASE=Wireless 11a/b/g PC Card with XJACK(r) Antenna -+ ID_MODEL_FROM_DATABASE=AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (Wireless 11a/b/g PC Card with XJACK(r) Antenna) - - pci:v0000168Cd0000001C* - ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) - - pci:v0000168Cd0000001Csv00000777sd00003006* -- ID_MODEL_FROM_DATABASE=SRX 802.11abg Wireless ExpressCard Adapter -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (SRX 802.11abg Wireless ExpressCard Adapter) - - pci:v0000168Cd0000001Csv0000103Csd0000137A* -- ID_MODEL_FROM_DATABASE=AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC) - - pci:v0000168Cd0000001Csv0000106Bsd00000086* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPort Extreme) - - pci:v0000168Cd0000001Csv0000144Fsd00007106* -- ID_MODEL_FROM_DATABASE=WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card) - - pci:v0000168Cd0000001Csv0000144Fsd00007128* -- ID_MODEL_FROM_DATABASE=WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card) - - pci:v0000168Cd0000001Csv00001468sd00000428* -- ID_MODEL_FROM_DATABASE=AR5BXB63 802.11bg NIC -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5BXB63 802.11bg NIC) - - pci:v0000168Cd0000001Csv00001468sd0000042A* -- ID_MODEL_FROM_DATABASE=AR5007EG 802.11bg NIC -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5007EG 802.11bg NIC) - - pci:v0000168Cd0000001Csv0000147Bsd00001033* -- ID_MODEL_FROM_DATABASE=AirPace Wi-Fi -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AirPace Wi-Fi) - - pci:v0000168Cd0000001Csv0000168Csd0000001C* -- ID_MODEL_FROM_DATABASE=AR242x 802.11abg NIC (PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg NIC (PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003061* -- ID_MODEL_FROM_DATABASE=AR5006EGS 802.11bg NIC (2.4GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EGS 802.11bg NIC (2.4GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003062* -- ID_MODEL_FROM_DATABASE=AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EXS 802.11abg NIC (2.4/5.0GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003063* -- ID_MODEL_FROM_DATABASE=AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003065* -- ID_MODEL_FROM_DATABASE=AR5006EG 802.11bg NIC (2.4GHz, PCI Express) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR5006EG 802.11bg NIC (2.4GHz, PCI Express)) - - pci:v0000168Cd0000001Csv0000168Csd00003067* -- ID_MODEL_FROM_DATABASE=AR242x 802.11abg Wireless PCI Express Adapter (rev 01) -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AR242x 802.11abg Wireless PCI Express Adapter (rev 01)) - - pci:v0000168Cd0000001Csv00001A3Bsd00001026* -- ID_MODEL_FROM_DATABASE=AW-GE780 802.11bg Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR242x / AR542x Wireless Network Adapter (PCI-Express) (AW-GE780 802.11bg Wireless Mini PCIe Card) - - pci:v0000168Cd0000001D* - ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] - - pci:v0000168Cd0000001Dsv00001799sd0000720B* -- ID_MODEL_FROM_DATABASE=F5D7000 v8000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7000 v8000 Wireless G Desktop Card) - - pci:v0000168Cd0000001Dsv00001799sd0000721B* -- ID_MODEL_FROM_DATABASE=F5D7010 v8000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=AR2417 Wireless Network Adapter [AR5007G 802.11bg] (F5D7010 v8000 Wireless G Notebook Card) - - pci:v0000168Cd00000020* - ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC - - pci:v0000168Cd00000020sv00000308sd00003407* -- ID_MODEL_FROM_DATABASE=M-102 802.11g Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-102 802.11g Wireless Cardbus Adapter) - - pci:v0000168Cd00000020sv00001186sd00003A67* -- ID_MODEL_FROM_DATABASE=DWL-G650M Super G MIMO Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G650M Super G MIMO Wireless Notebook Adapter) - - pci:v0000168Cd00000020sv00001186sd00003A68* -- ID_MODEL_FROM_DATABASE=DWL-G520M Wireless 108G MIMO Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (DWL-G520M Wireless 108G MIMO Desktop Adapter) - - pci:v0000168Cd00000020sv0000187Esd0000340E* -- ID_MODEL_FROM_DATABASE=M-302 802.11g Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (M-302 802.11g Wireless PCI Adapter) - - pci:v0000168Cd00000020sv00001976sd00002003* -- ID_MODEL_FROM_DATABASE=TEW-601PC 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5513 802.11abg Wireless NIC (TEW-601PC 802.11g Wireless CardBus Adapter) - - pci:v0000168Cd00000023* - ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] - - pci:v0000168Cd00000023sv00000308sd0000340B* -- ID_MODEL_FROM_DATABASE=NWD-170N 802.11bgn Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-170N 802.11bgn Wireless CardBus Adapter) - - pci:v0000168Cd00000023sv00001154sd00000365* -- ID_MODEL_FROM_DATABASE=Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter) - - pci:v0000168Cd00000023sv00001154sd00000367* -- ID_MODEL_FROM_DATABASE=WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter) - - pci:v0000168Cd00000023sv00001186sd00003A6A* -- ID_MODEL_FROM_DATABASE=DWA-642 802.11n RangeBooster N CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-642 802.11n RangeBooster N CardBus Adapter) - - pci:v0000168Cd00000023sv00001186sd00003A6B* -- ID_MODEL_FROM_DATABASE=DWA-547 802.11n RangeBooster N 650 DeskTop Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-547 802.11n RangeBooster N 650 DeskTop Adapter) - - pci:v0000168Cd00000023sv00001186sd00003A6D* -- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A1) -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-552 802.11n Xtreme N Desktop Adapter (rev A1)) - - pci:v0000168Cd00000023sv00001186sd00003A76* -- ID_MODEL_FROM_DATABASE=DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1) -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1)) - - pci:v0000168Cd00000023sv00001737sd00000059* -- ID_MODEL_FROM_DATABASE=WPC300N v2 Wireless-N Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC300N v2 Wireless-N Notebook Adapter) - - pci:v0000168Cd00000023sv00001737sd00000069* -- ID_MODEL_FROM_DATABASE=WPC100 v1 802.11n RangePlus Wireless Notebook Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WPC100 v1 802.11n RangePlus Wireless Notebook Adapter) - - pci:v0000168Cd00000023sv00001737sd00000072* -- ID_MODEL_FROM_DATABASE=WMP110 v1 802.11n RangePlus Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (WMP110 v1 802.11n RangePlus Wireless PCI Adapter) - - pci:v0000168Cd00000023sv00001799sd00008011* -- ID_MODEL_FROM_DATABASE=F5D8011 v1 802.11n N1 Wireless Notebook Card -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (F5D8011 v1 802.11n N1 Wireless Notebook Card) - - pci:v0000168Cd00000023sv0000187Esd00003411* -- ID_MODEL_FROM_DATABASE=NWD-370N 802.11n Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (NWD-370N 802.11n Wireless PCI Adapter) - - pci:v0000168Cd00000023sv00001976sd00002008* -- ID_MODEL_FROM_DATABASE=TEW-621PC 802.11bgn Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] (TEW-621PC 802.11bgn Wireless CardBus Adapter) - - pci:v0000168Cd00000024* - ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) - - pci:v0000168Cd00000024sv0000106Bsd00000087* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (AirPort Extreme) - - pci:v0000168Cd00000024sv00001186sd00003A70* -- ID_MODEL_FROM_DATABASE=DWA-556 Xtreme N PCI Express Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (DWA-556 Xtreme N PCI Express Desktop Adapter) - - pci:v0000168Cd00000027* - ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] - - pci:v0000168Cd00000027sv00000777sd00004082* -- ID_MODEL_FROM_DATABASE=SR71-A 802.11abgn Wireless Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] (SR71-A 802.11abgn Wireless Mini PCI Adapter) - - pci:v0000168Cd00000029* - ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter - - pci:v0000168Cd00000029sv00000777sd00004005* -- ID_MODEL_FROM_DATABASE=SR71-15 802.11an Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (SR71-15 802.11an Mini PCI Adapter) - - pci:v0000168Cd00000029sv00001186sd00003A7A* -- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A2) -+ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A2)) - - pci:v0000168Cd00000029sv00001186sd00003A7D* -- ID_MODEL_FROM_DATABASE=DWA-552 802.11n Xtreme N Desktop Adapter (rev A3) -+ ID_MODEL_FROM_DATABASE=AR922X Wireless Network Adapter (DWA-552 802.11n Xtreme N Desktop Adapter (rev A3)) - - pci:v0000168Cd0000002A* - ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) - - pci:v0000168Cd0000002Asv00000777sd00004F05* -- ID_MODEL_FROM_DATABASE=SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280]) - - pci:v0000168Cd0000002Asv0000103Csd00003041* -- ID_MODEL_FROM_DATABASE=AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) - - pci:v0000168Cd0000002Asv0000105Bsd0000E006* -- ID_MODEL_FROM_DATABASE=T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv0000105Bsd0000E01F* -- ID_MODEL_FROM_DATABASE=T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) - - pci:v0000168Cd0000002Asv0000106Bsd0000008F* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AirPort Extreme) - - pci:v0000168Cd0000002Asv000011ADsd00006600* -- ID_MODEL_FROM_DATABASE=WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv0000144Fsd00007141* -- ID_MODEL_FROM_DATABASE=WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv0000168Csd00000203* -- ID_MODEL_FROM_DATABASE=DW1525 802.11abgn WLAN PCIe Card [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (DW1525 802.11abgn WLAN PCIe Card [AR9280]) - - pci:v0000168Cd0000002Asv00001A32sd00000303* -- ID_MODEL_FROM_DATABASE=EM303 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM303 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv00001A32sd00000306* -- ID_MODEL_FROM_DATABASE=EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283]) - - pci:v0000168Cd0000002Asv00001A3Bsd00001067* -- ID_MODEL_FROM_DATABASE=AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281]) - - pci:v0000168Cd0000002Asv00001A3Bsd00001081* -- ID_MODEL_FROM_DATABASE=AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] -+ ID_MODEL_FROM_DATABASE=AR928X Wireless Network Adapter (PCI-Express) (AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280]) - - pci:v0000168Cd0000002B* - ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) - - pci:v0000168Cd0000002Bsv00001028sd00000204* -- ID_MODEL_FROM_DATABASE=Wireless 1502 802.11bgn Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1502 802.11bgn Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001028sd00000205* -- ID_MODEL_FROM_DATABASE=Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD] -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD]) - - pci:v0000168Cd0000002Bsv0000103Csd0000303F* -- ID_MODEL_FROM_DATABASE=U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000103Csd00003040* -- ID_MODEL_FROM_DATABASE=U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000105Bsd0000E017* -- ID_MODEL_FROM_DATABASE=T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000105Bsd0000E023* -- ID_MODEL_FROM_DATABASE=T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001113sd0000E811* -- ID_MODEL_FROM_DATABASE=WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv0000185Fsd000030AF* -- ID_MODEL_FROM_DATABASE=DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001931sd00000023* -- ID_MODEL_FROM_DATABASE=Option GTM67x PCIe WiFi Adapter -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (Option GTM67x PCIe WiFi Adapter) - - pci:v0000168Cd0000002Bsv00001A3Bsd00001089* -- ID_MODEL_FROM_DATABASE=AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001A3Bsd00002C37* -- ID_MODEL_FROM_DATABASE=AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) - - pci:v0000168Cd0000002Bsv00001B9Asd00000401* -- ID_MODEL_FROM_DATABASE=XW204E 802.11bgn Wireless Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (XW204E 802.11bgn Wireless Half-size Mini PCIe Card) - - pci:v0000168Cd0000002Bsv00001B9Asd00000C03* -- ID_MODEL_FROM_DATABASE=WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD]) - - pci:v0000168Cd0000002C* - ID_MODEL_FROM_DATABASE=AR2427 802.11bg Wireless Network Adapter (PCI-Express) -@@ -49059,25 +49059,25 @@ pci:v0000168Cd00000030* - ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter - - pci:v0000168Cd00000030sv0000103Csd00001627* -- ID_MODEL_FROM_DATABASE=AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter) - - pci:v0000168Cd00000030sv0000106Bsd0000009A* -- ID_MODEL_FROM_DATABASE=AirPort Extreme -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (AirPort Extreme) - - pci:v0000168Cd00000030sv00001186sd00003A7E* -- ID_MODEL_FROM_DATABASE=DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (DWA-566 Wireless N 300 Dual Band PCIe Desktop Adapter) - - pci:v0000168Cd00000030sv00001A56sd00002000* -- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382] -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382]) - - pci:v0000168Cd00000030sv00001A56sd00002001* -- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380] -+ ID_MODEL_FROM_DATABASE=AR93xx Wireless Network Adapter (Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380]) - - pci:v0000168Cd00000032* - ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter - - pci:v0000168Cd00000032sv0000103Csd00001838* -- ID_MODEL_FROM_DATABASE=AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter -+ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter) - - pci:v0000168Cd00000033* - ID_MODEL_FROM_DATABASE=AR9580 Wireless Network Adapter -@@ -49086,7 +49086,7 @@ pci:v0000168Cd00000034* - ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter - - pci:v0000168Cd00000034sv00001A56sd00002003* -- ID_MODEL_FROM_DATABASE=Killer Wireless-N 1202 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter (Killer Wireless-N 1202 Half-size Mini PCIe Card) - - pci:v0000168Cd00000036* - ID_MODEL_FROM_DATABASE=QCA9565 / AR9565 Wireless Network Adapter -@@ -49095,7 +49095,7 @@ pci:v0000168Cd00000037* - ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter - - pci:v0000168Cd00000037sv00001A3Bsd00002100* -- ID_MODEL_FROM_DATABASE=AW-NB100H 802.11n Wireless Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter (AW-NB100H 802.11n Wireless Mini PCIe Card) - - pci:v0000168Cd0000003C* - ID_MODEL_FROM_DATABASE=QCA988x 802.11ac Wireless Network Adapter -@@ -49107,7 +49107,7 @@ pci:v0000168Cd00001014* - ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC - - pci:v0000168Cd00001014sv00001014sd0000058A* -- ID_MODEL_FROM_DATABASE=ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6) -+ ID_MODEL_FROM_DATABASE=AR5212 802.11abg NIC (ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)) - - pci:v0000168Cd00009013* - ID_MODEL_FROM_DATABASE=AR5002X Wireless Network Adapter -@@ -49125,7 +49125,7 @@ pci:v0000168Cd0000FF1D* - ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter - - pci:v0000168Cd0000FF1Dsv0000168Csd0000EE1C* -- ID_MODEL_FROM_DATABASE=AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3] -+ ID_MODEL_FROM_DATABASE=AR922x Wireless Network Adapter (AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3]) - - pci:v00001695* - ID_VENDOR_FROM_DATABASE=EPoX Computer Co., Ltd. -@@ -49524,16 +49524,16 @@ pci:v00001737d00001032* - ID_MODEL_FROM_DATABASE=Gigabit Network Adapter - - pci:v00001737d00001032sv00001737sd00000015* -- ID_MODEL_FROM_DATABASE=EG1032 v2 Instant Gigabit Network Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v2 Instant Gigabit Network Adapter) - - pci:v00001737d00001032sv00001737sd00000024* -- ID_MODEL_FROM_DATABASE=EG1032 v3 Instant Gigabit Network Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1032 v3 Instant Gigabit Network Adapter) - - pci:v00001737d00001064* - ID_MODEL_FROM_DATABASE=Gigabit Network Adapter - - pci:v00001737d00001064sv00001737sd00000016* -- ID_MODEL_FROM_DATABASE=EG1064 v2 Instant Gigabit Network Adapter -+ ID_MODEL_FROM_DATABASE=Gigabit Network Adapter (EG1064 v2 Instant Gigabit Network Adapter) - - pci:v00001737d0000AB08* - ID_MODEL_FROM_DATABASE=21x4x DEC-Tulip compatible 10/100 Ethernet -@@ -49554,7 +49554,7 @@ pci:v0000173Bd000003EA* - ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet - - pci:v0000173Bd000003EAsv0000173Bsd00000001* -- ID_MODEL_FROM_DATABASE=AC1002 -+ ID_MODEL_FROM_DATABASE=AC9100 Gigabit Ethernet (AC1002) - - pci:v0000173Bd000003EB* - ID_MODEL_FROM_DATABASE=AC1003 Gigabit Ethernet -@@ -49851,19 +49851,19 @@ pci:v000017CBd00000001* - ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card - - pci:v000017CBd00000001sv00001385sd00005C00* -- ID_MODEL_FROM_DATABASE=WGM511 Pre-N 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WGM511 Pre-N 802.11g Wireless CardBus Adapter) - - pci:v000017CBd00000001sv00001737sd00000045* -- ID_MODEL_FROM_DATABASE=WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX -+ ID_MODEL_FROM_DATABASE=AGN100 802.11 a/b/g True MIMO Wireless Card (WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX) - - pci:v000017CBd00000002* - ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card - - pci:v000017CBd00000002sv00001385sd00006D00* -- ID_MODEL_FROM_DATABASE=WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter) - - pci:v000017CBd00000002sv00001737sd00000054* -- ID_MODEL_FROM_DATABASE=WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400 -+ ID_MODEL_FROM_DATABASE=AGN300 802.11 a/b/g True MIMO Wireless Card (WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400) - - pci:v000017CC* - ID_VENDOR_FROM_DATABASE=NetChip Technology, Inc -@@ -49914,7 +49914,7 @@ pci:v000017D3d00001280* - ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller - - pci:v000017D3d00001280sv000017D3sd00001221* -- ID_MODEL_FROM_DATABASE=ARC-1221 8-Port PCI-Express to SATA RAID Controller -+ ID_MODEL_FROM_DATABASE=ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller (ARC-1221 8-Port PCI-Express to SATA RAID Controller) - - pci:v000017D3d00001300* - ID_MODEL_FROM_DATABASE=ARC-1300ix-16 16-Port PCI-Express to SAS Non-RAID Host Adapter -@@ -49923,7 +49923,7 @@ pci:v000017D3d00001680* - ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller - - pci:v000017D3d00001680sv000017D3sd00001212* -- ID_MODEL_FROM_DATABASE=ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller -+ ID_MODEL_FROM_DATABASE=ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller (ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller) - - pci:v000017D3d00001880* - ID_MODEL_FROM_DATABASE=ARC-1880 8/12 port PCIe/PCI-X to SAS/SATA II RAID Controller -@@ -49941,82 +49941,82 @@ pci:v000017D5d00005831* - ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X - - pci:v000017D5d00005831sv0000103Csd000012D5* -- ID_MODEL_FROM_DATABASE=PCI-X 133MHz 10GbE SR Fiber -+ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (PCI-X 133MHz 10GbE SR Fiber) - - pci:v000017D5d00005831sv000010A9sd00008020* -- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) -+ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) - - pci:v000017D5d00005831sv000010A9sd00008024* -- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet (PCI-X, Fiber) -+ ID_MODEL_FROM_DATABASE=Xframe 10-Gigabit Ethernet PCI-X (Single Port 10-Gigabit Ethernet (PCI-X, Fiber)) - - pci:v000017D5d00005832* - ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 - - pci:v000017D5d00005832sv0000103Csd00001337* -- ID_MODEL_FROM_DATABASE=PCI-X 266MHz 10GigE SR [AD385A] -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (PCI-X 266MHz 10GigE SR [AD385A]) - - pci:v000017D5d00005832sv000010A9sd00008021* -- ID_MODEL_FROM_DATABASE=Single Port 10-Gigabit Ethernet II (PCI-X, Fiber) -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Single Port 10-Gigabit Ethernet II (PCI-X, Fiber)) - - pci:v000017D5d00005832sv000017D5sd00006020* -- ID_MODEL_FROM_DATABASE=Xframe II SR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR) - - pci:v000017D5d00005832sv000017D5sd00006021* -- ID_MODEL_FROM_DATABASE=Xframe II SR, Low Profile -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II SR, Low Profile) - - pci:v000017D5d00005832sv000017D5sd00006022* -- ID_MODEL_FROM_DATABASE=Xframe E SR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E SR) - - pci:v000017D5d00005832sv000017D5sd00006420* -- ID_MODEL_FROM_DATABASE=Xframe II LR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR) - - pci:v000017D5d00005832sv000017D5sd00006421* -- ID_MODEL_FROM_DATABASE=Xframe II LR, Low Profile -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II LR, Low Profile) - - pci:v000017D5d00005832sv000017D5sd00006422* -- ID_MODEL_FROM_DATABASE=Xframe E LR -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E LR) - - pci:v000017D5d00005832sv000017D5sd00006C20* -- ID_MODEL_FROM_DATABASE=Xframe II CX4 -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4) - - pci:v000017D5d00005832sv000017D5sd00006C21* -- ID_MODEL_FROM_DATABASE=Xframe II CX4, Low Profile -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe II CX4, Low Profile) - - pci:v000017D5d00005832sv000017D5sd00006C22* -- ID_MODEL_FROM_DATABASE=Xframe E CX4 -+ ID_MODEL_FROM_DATABASE=Xframe II 10-Gigabit Ethernet PCI-X 2.0 (Xframe E CX4) - - pci:v000017D5d00005833* - ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe - - pci:v000017D5d00005833sv000017D5sd00006030* -- ID_MODEL_FROM_DATABASE=X3110 Single Port SR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port SR) - - pci:v000017D5d00005833sv000017D5sd00006031* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port SR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port SR) - - pci:v000017D5d00005833sv000017D5sd00006430* -- ID_MODEL_FROM_DATABASE=X3110 Single Port LR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LR) - - pci:v000017D5d00005833sv000017D5sd00006431* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port LR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LR) - - pci:v000017D5d00005833sv000017D5sd00007030* -- ID_MODEL_FROM_DATABASE=X3110 Single Port LRM -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port LRM) - - pci:v000017D5d00005833sv000017D5sd00007031* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port LRM -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port LRM) - - pci:v000017D5d00005833sv000017D5sd00007430* -- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-T -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-T) - - pci:v000017D5d00005833sv000017D5sd00007431* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-T -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-T) - - pci:v000017D5d00005833sv000017D5sd00007830* -- ID_MODEL_FROM_DATABASE=X3110 Single Port 10GBase-CR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3110 Single Port 10GBase-CR) - - pci:v000017D5d00005833sv000017D5sd00007831* -- ID_MODEL_FROM_DATABASE=X3120 Dual Port 10GBase-CR -+ ID_MODEL_FROM_DATABASE=X3100 Series 10 Gigabit Ethernet PCIe (X3120 Dual Port 10GBase-CR) - - pci:v000017DB* - ID_VENDOR_FROM_DATABASE=Cray Inc -@@ -50103,16 +50103,16 @@ pci:v000017FEd00002120* - ID_MODEL_FROM_DATABASE=IPN 2120 802.11b - - pci:v000017FEd00002120sv00001737sd00000020* -- ID_MODEL_FROM_DATABASE=WMP11 v4 802.11b Wireless-B PCI Adapter -+ ID_MODEL_FROM_DATABASE=IPN 2120 802.11b (WMP11 v4 802.11b Wireless-B PCI Adapter) - - pci:v000017FEd00002220* - ID_MODEL_FROM_DATABASE=IPN 2220 802.11g - - pci:v000017FEd00002220sv00001468sd00000305* -- ID_MODEL_FROM_DATABASE=T60N871 802.11g Mini PCI Wireless Adapter -+ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (T60N871 802.11g Mini PCI Wireless Adapter) - - pci:v000017FEd00002220sv00001737sd00000029* -- ID_MODEL_FROM_DATABASE=WPC54G v4 802.11g Wireless-G Notebook Adapter -+ ID_MODEL_FROM_DATABASE=IPN 2220 802.11g (WPC54G v4 802.11g Wireless-G Notebook Adapter) - - pci:v000017FF* - ID_VENDOR_FROM_DATABASE=Benq Corporation -@@ -50133,13 +50133,13 @@ pci:v00001813d00004000* - ID_MODEL_FROM_DATABASE=HaM controllerless modem - - pci:v00001813d00004000sv000016BEsd00000001* -- ID_MODEL_FROM_DATABASE=V9x HAM Data Fax Modem -+ ID_MODEL_FROM_DATABASE=HaM controllerless modem (V9x HAM Data Fax Modem) - - pci:v00001813d00004100* - ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem - - pci:v00001813d00004100sv000016BEsd00000002* -- ID_MODEL_FROM_DATABASE=V9x HAM 1394 -+ ID_MODEL_FROM_DATABASE=HaM plus Data Fax Modem (V9x HAM 1394) - - pci:v00001814* - ID_VENDOR_FROM_DATABASE=Ralink corp. -@@ -50148,13 +50148,13 @@ pci:v00001814d00000101* - ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 - - pci:v00001814d00000101sv00001043sd00000127* -- ID_MODEL_FROM_DATABASE=WiFi-b add-on Card -+ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (WiFi-b add-on Card) - - pci:v00001814d00000101sv00001371sd00000010* -- ID_MODEL_FROM_DATABASE=Minitar MNW2BPCI Wireless PCI Card -+ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (Minitar MNW2BPCI Wireless PCI Card) - - pci:v00001814d00000101sv00001462sd00006828* -- ID_MODEL_FROM_DATABASE=PC11B2 (MS-6828) Wireless 11b PCI Card -+ ID_MODEL_FROM_DATABASE=Wireless PCI Adapter RT2400 / RT2460 (PC11B2 (MS-6828) Wireless 11b PCI Card) - - pci:v00001814d00000200* - ID_MODEL_FROM_DATABASE=RT2500 802.11g PCI [PC54G2] -@@ -50163,58 +50163,58 @@ pci:v00001814d00000201* - ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg - - pci:v00001814d00000201sv00001043sd0000130F* -- ID_MODEL_FROM_DATABASE=WL-130g -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-130g) - - pci:v00001814d00000201sv00001186sd00003C00* -- ID_MODEL_FROM_DATABASE=DWL-G650X Wireless 11g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (DWL-G650X Wireless 11g CardBus Adapter) - - pci:v00001814d00000201sv00001371sd0000001E* -- ID_MODEL_FROM_DATABASE=CWC-854 Wireless-G CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWC-854 Wireless-G CardBus Adapter) - - pci:v00001814d00000201sv00001371sd0000001F* -- ID_MODEL_FROM_DATABASE=CWM-854 Wireless-G Mini PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWM-854 Wireless-G Mini PCI Adapter) - - pci:v00001814d00000201sv00001371sd00000020* -- ID_MODEL_FROM_DATABASE=CWP-854 Wireless-G PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CWP-854 Wireless-G PCI Adapter) - - pci:v00001814d00000201sv00001458sd0000E381* -- ID_MODEL_FROM_DATABASE=GN-WMKG 802.11b/g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WMKG 802.11b/g Wireless CardBus Adapter) - - pci:v00001814d00000201sv00001458sd0000E931* -- ID_MODEL_FROM_DATABASE=GN-WIKG 802.11b/g mini-PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (GN-WIKG 802.11b/g mini-PCI Adapter) - - pci:v00001814d00000201sv00001462sd00006833* -- ID_MODEL_FROM_DATABASE=Unknown 802.11g mini-PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Unknown 802.11g mini-PCI Adapter) - - pci:v00001814d00000201sv00001462sd00006835* -- ID_MODEL_FROM_DATABASE=Wireless 11G CardBus CB54G2 -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (Wireless 11G CardBus CB54G2) - - pci:v00001814d00000201sv00001737sd00000032* -- ID_MODEL_FROM_DATABASE=WMP54G v4.0 PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WMP54G v4.0 PCI Adapter) - - pci:v00001814d00000201sv00001799sd0000700A* -- ID_MODEL_FROM_DATABASE=F5D7000 v2000/v3000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7000 v2000/v3000 Wireless G Desktop Card) - - pci:v00001814d00000201sv00001799sd0000701A* -- ID_MODEL_FROM_DATABASE=F5D7010 v2000/v3000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (F5D7010 v2000/v3000 Wireless G Notebook Card) - - pci:v00001814d00000201sv00001814sd00002560* - ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg - - pci:v00001814d00000201sv0000182Dsd00009073* -- ID_MODEL_FROM_DATABASE=WL-115 Wireless Network PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL-115 Wireless Network PCI Adapter) - - pci:v00001814d00000201sv0000185Fsd000022A0* -- ID_MODEL_FROM_DATABASE=CN-WF513 Wireless Cardbus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (CN-WF513 Wireless Cardbus Adapter) - - pci:v00001814d00000201sv000018EBsd00005312* -- ID_MODEL_FROM_DATABASE=WL531P IEEE 802.11g PCI Card-EU -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (WL531P IEEE 802.11g PCI Card-EU) - - pci:v00001814d00000201sv00001948sd00003C00* -- ID_MODEL_FROM_DATABASE=C54RC v1 Wireless 11g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54RC v1 Wireless 11g CardBus Adapter) - - pci:v00001814d00000201sv00001948sd00003C01* -- ID_MODEL_FROM_DATABASE=C54Ri v1 Wireless 11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2500 Wireless 802.11bg (C54Ri v1 Wireless 11g PCI Adapter) - - pci:v00001814d00000300* - ID_MODEL_FROM_DATABASE=Wireless Adapter Canyon CN-WF511 -@@ -50223,88 +50223,88 @@ pci:v00001814d00000301* - ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI - - pci:v00001814d00000301sv00001186sd00003C08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1) -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E1)) - - pci:v00001814d00000301sv00001186sd00003C09* -- ID_MODEL_FROM_DATABASE=DWL-G510 Rev C -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (DWL-G510 Rev C) - - pci:v00001814d00000301sv000013D1sd0000ABE3* -- ID_MODEL_FROM_DATABASE=miniPCI Pluscom 802.11 a/b/g -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (miniPCI Pluscom 802.11 a/b/g) - - pci:v00001814d00000301sv00001458sd0000E933* -- ID_MODEL_FROM_DATABASE=GN-WI01GS -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WI01GS) - - pci:v00001814d00000301sv00001458sd0000E934* -- ID_MODEL_FROM_DATABASE=GN-WP01GS -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (GN-WP01GS) - - pci:v00001814d00000301sv00001737sd00000055* -- ID_MODEL_FROM_DATABASE=WMP54G v4.1 -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (WMP54G v4.1) - - pci:v00001814d00000301sv00001799sd0000700E* -- ID_MODEL_FROM_DATABASE=F5D7000 v6000 Wireless G Desktop Card -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7000 v6000 Wireless G Desktop Card) - - pci:v00001814d00000301sv00001799sd0000701E* -- ID_MODEL_FROM_DATABASE=F5D7010 v6000 Wireless G Notebook Card -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (F5D7010 v6000 Wireless G Notebook Card) - - pci:v00001814d00000301sv000017F9sd00000012* -- ID_MODEL_FROM_DATABASE=AWLC3026T 802.11g Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (AWLC3026T 802.11g Wireless CardBus Adapter) - - pci:v00001814d00000301sv00001814sd00002561* -- ID_MODEL_FROM_DATABASE=EW-7108PCg/EW-7128g -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 802.11g PCI (EW-7108PCg/EW-7128g) - - pci:v00001814d00000302* - ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g - - pci:v00001814d00000302sv00001186sd00003A71* -- ID_MODEL_FROM_DATABASE=DWA-510 Wireless G Desktop Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (DWA-510 Wireless G Desktop Adapter) - - pci:v00001814d00000302sv00001186sd00003C08* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2) -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2)) - - pci:v00001814d00000302sv00001186sd00003C09* -- ID_MODEL_FROM_DATABASE=AirPlus G DWL-G510 Wireless Network Adapter (Rev.C) -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (AirPlus G DWL-G510 Wireless Network Adapter (Rev.C)) - - pci:v00001814d00000302sv00001462sd0000B834* -- ID_MODEL_FROM_DATABASE=PC54G3 Wireless 11g PCI Card -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (PC54G3 Wireless 11g PCI Card) - - pci:v00001814d00000302sv00001948sd00003C23* -- ID_MODEL_FROM_DATABASE=C54RC v2 Wireless 11g CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54RC v2 Wireless 11g CardBus Adapter) - - pci:v00001814d00000302sv00001948sd00003C24* -- ID_MODEL_FROM_DATABASE=C54Ri v2 Wireless 11g PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2561/RT61 rev B 802.11g (C54Ri v2 Wireless 11g PCI Adapter) - - pci:v00001814d00000401* - ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO - - pci:v00001814d00000401sv00001737sd00000052* -- ID_MODEL_FROM_DATABASE=WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster -+ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPC54GR v1 802.11g Wireless-G Notebook Adapter with RangeBooster) - - pci:v00001814d00000401sv000017F9sd00000011* -- ID_MODEL_FROM_DATABASE=WPCR-137G 802.11bg Wireless CardBus Adapter -+ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPCR-137G 802.11bg Wireless CardBus Adapter) - - pci:v00001814d00000401sv000017F9sd00000016* -- ID_MODEL_FROM_DATABASE=WPIR-119GH 802.11bg Wireless Desktop Adapter -+ ID_MODEL_FROM_DATABASE=RT2600 802.11 MIMO (WPIR-119GH 802.11bg Wireless Desktop Adapter) - - pci:v00001814d00000601* - ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI - - pci:v00001814d00000601sv00001799sd0000801C* -- ID_MODEL_FROM_DATABASE=F5D8011 v3 802.11n N1 Wireless Notebook Card -+ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (F5D8011 v3 802.11n N1 Wireless Notebook Card) - - pci:v00001814d00000601sv0000187Esd00003412* -- ID_MODEL_FROM_DATABASE=NWD-310N 802.11n Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2800 802.11n PCI (NWD-310N 802.11n Wireless PCI Adapter) - - pci:v00001814d00000681* - ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe - - pci:v00001814d00000681sv00001458sd0000E939* -- ID_MODEL_FROM_DATABASE=GN-WS30N-RH 802.11bgn Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RT2890 Wireless 802.11n PCIe (GN-WS30N-RH 802.11bgn Mini PCIe Card) - - pci:v00001814d00000701* - ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R - - pci:v00001814d00000701sv00001737sd00000074* -- ID_MODEL_FROM_DATABASE=WMP110 v2 802.11n RangePlus Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT2760 Wireless 802.11n 1T/2R (WMP110 v2 802.11n RangePlus Wireless PCI Adapter) - - pci:v00001814d00000781* - ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe -@@ -50313,7 +50313,7 @@ pci:v00001814d00003060* - ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R - - pci:v00001814d00003060sv00001186sd00003C04* -- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A1) -+ ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A1)) - - pci:v00001814d00003062* - ID_MODEL_FROM_DATABASE=RT3062 Wireless 802.11n 2T/2R -@@ -50322,7 +50322,7 @@ pci:v00001814d00003090* - ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe - - pci:v00001814d00003090sv000013BDsd00001057* -- ID_MODEL_FROM_DATABASE=GN-WS32L-RH Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RT3090 Wireless 802.11n 1T/1R PCIe (GN-WS32L-RH Half-size Mini PCIe Card) - - pci:v00001814d00003091* - ID_MODEL_FROM_DATABASE=RT3091 Wireless 802.11n 1T/2R PCIe -@@ -50334,13 +50334,13 @@ pci:v00001814d00003290* - ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe - - pci:v00001814d00003290sv0000103Csd000018EC* -- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter -+ ID_MODEL_FROM_DATABASE=RT3290 Wireless 802.11n 1T/1R PCIe (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) - - pci:v00001814d00003298* - ID_MODEL_FROM_DATABASE=RT3290 Bluetooth - - pci:v00001814d00003298sv0000103Csd000018EC* -- ID_MODEL_FROM_DATABASE=Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter -+ ID_MODEL_FROM_DATABASE=RT3290 Bluetooth (Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter) - - pci:v00001814d00003592* - ID_MODEL_FROM_DATABASE=RT3592 Wireless 802.11abgn 2T/2R PCIe -@@ -50352,16 +50352,16 @@ pci:v00001814d00005360* - ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R - - pci:v00001814d00005360sv00001186sd00003C05* -- ID_MODEL_FROM_DATABASE=DWA-525 Wireless N 150 Desktop Adapter (rev.A2) -+ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (DWA-525 Wireless N 150 Desktop Adapter (rev.A2)) - - pci:v00001814d00005360sv000020F4sd0000703A* -- ID_MODEL_FROM_DATABASE=TEW-703PI N150 Wireless PCI Adapter -+ ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R (TEW-703PI N150 Wireless PCI Adapter) - - pci:v00001814d00005390* - ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe - - pci:v00001814d00005390sv0000103Csd00001636* -- ID_MODEL_FROM_DATABASE=U98Z077.00 Half-size Mini PCIe Card -+ ID_MODEL_FROM_DATABASE=RT5390 Wireless 802.11n 1T/1R PCIe (U98Z077.00 Half-size Mini PCIe Card) - - pci:v00001814d00005392* - ID_MODEL_FROM_DATABASE=RT5392 PCIe Wireless Network Adapter -@@ -50370,7 +50370,7 @@ pci:v00001814d0000539F* - ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] - - pci:v00001814d0000539Fsv0000103Csd00001637* -- ID_MODEL_FROM_DATABASE=Pavilion DM1Z-3000 PCIe wireless card -+ ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] (Pavilion DM1Z-3000 PCIe wireless card) - - pci:v00001814d00005592* - ID_MODEL_FROM_DATABASE=RT5592 PCIe Wireless Network Adapter -@@ -50637,7 +50637,7 @@ pci:v000018C3d00000720* - ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller - - pci:v000018C3d00000720sv000007CAsd0000032E* -- ID_MODEL_FROM_DATABASE=Hybrid M779 PCI-E -+ ID_MODEL_FROM_DATABASE=nGene PCI-Express Multimedia Controller (Hybrid M779 PCI-E) - - pci:v000018C8* - ID_VENDOR_FROM_DATABASE=Cray Inc -@@ -50697,70 +50697,70 @@ pci:v000018ECd00006D05* - ID_MODEL_FROM_DATABASE=ML555 - - pci:v000018ECd00006D05sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=ML555 (NIC (ethernet interfaces)) - - pci:v000018ECd00006D05sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 4x1G) - - pci:v000018ECd00006D05sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=ML555 (NIC (szedata2) 2x10G) - - pci:v000018ECd00006D05sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd00006D05sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=ML555 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd00006D05sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=ML555 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd00006D05sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=ML555 (Testing design) - - pci:v000018ECd00006D05sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=ML555 (Boot design) - - pci:v000018ECd0000C006* - ID_MODEL_FROM_DATABASE=COMBO6 - - pci:v000018ECd0000C006sv000018ECsd0000D001* -- ID_MODEL_FROM_DATABASE=COMBO-4MTX -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4MTX) - - pci:v000018ECd0000C006sv000018ECsd0000D002* -- ID_MODEL_FROM_DATABASE=COMBO-4SFP -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFP) - - pci:v000018ECd0000C006sv000018ECsd0000D003* -- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-4SFPRO) - - pci:v000018ECd0000C006sv000018ECsd0000D004* -- ID_MODEL_FROM_DATABASE=COMBO-2XFP -+ ID_MODEL_FROM_DATABASE=COMBO6 (COMBO-2XFP) - - pci:v000018ECd0000C032* - ID_MODEL_FROM_DATABASE=COMBO-LXT110 - - pci:v000018ECd0000C032sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (ethernet interfaces)) - - pci:v000018ECd0000C032sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 4x1G) - - pci:v000018ECd0000C032sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIC (szedata2) 2x10G) - - pci:v000018ECd0000C032sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd0000C032sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd0000C032sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd0000C032sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Testing design) - - pci:v000018ECd0000C032sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT110 (Boot design) - - pci:v000018ECd0000C045* - ID_MODEL_FROM_DATABASE=COMBO6E -@@ -50772,70 +50772,70 @@ pci:v000018ECd0000C058* - ID_MODEL_FROM_DATABASE=COMBO6X - - pci:v000018ECd0000C058sv000018ECsd0000D001* -- ID_MODEL_FROM_DATABASE=COMBO-4MTX -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4MTX) - - pci:v000018ECd0000C058sv000018ECsd0000D002* -- ID_MODEL_FROM_DATABASE=COMBO-4SFP -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFP) - - pci:v000018ECd0000C058sv000018ECsd0000D003* -- ID_MODEL_FROM_DATABASE=COMBO-4SFPRO -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-4SFPRO) - - pci:v000018ECd0000C058sv000018ECsd0000D004* -- ID_MODEL_FROM_DATABASE=COMBO-2XFP -+ ID_MODEL_FROM_DATABASE=COMBO6X (COMBO-2XFP) - - pci:v000018ECd0000C132* - ID_MODEL_FROM_DATABASE=COMBO-LXT155 - - pci:v000018ECd0000C132sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (ethernet interfaces)) - - pci:v000018ECd0000C132sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 4x1G) - - pci:v000018ECd0000C132sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIC (szedata2) 2x10G) - - pci:v000018ECd0000C132sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd0000C132sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd0000C132sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd0000C132sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Testing design) - - pci:v000018ECd0000C132sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=COMBO-LXT155 (Boot design) - - pci:v000018ECd0000C232* - ID_MODEL_FROM_DATABASE=COMBO-FXT100 - - pci:v000018ECd0000C232sv000018ECsd00000100* -- ID_MODEL_FROM_DATABASE=NIC (ethernet interfaces) -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (ethernet interfaces)) - - pci:v000018ECd0000C232sv000018ECsd00000200* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 4x1G) - - pci:v000018ECd0000C232sv000018ECsd00000201* -- ID_MODEL_FROM_DATABASE=NIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIC (szedata2) 2x10G) - - pci:v000018ECd0000C232sv000018ECsd00000300* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 4x1G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 4x1G) - - pci:v000018ECd0000C232sv000018ECsd00000302* -- ID_MODEL_FROM_DATABASE=NIFIC (szedata2) 2x10G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (NIFIC (szedata2) 2x10G) - - pci:v000018ECd0000C232sv000018ECsd00004200* -- ID_MODEL_FROM_DATABASE=Flexible FlowMon (szedata2) 1x10G -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Flexible FlowMon (szedata2) 1x10G) - - pci:v000018ECd0000C232sv000018ECsd0000FF00* -- ID_MODEL_FROM_DATABASE=Testing design -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Testing design) - - pci:v000018ECd0000C232sv000018ECsd0000FF01* -- ID_MODEL_FROM_DATABASE=Boot design -+ ID_MODEL_FROM_DATABASE=COMBO-FXT100 (Boot design) - - pci:v000018EE* - ID_VENDOR_FROM_DATABASE=Chenming Mold Ind. Corp. -@@ -51075,235 +51075,235 @@ pci:v00001924d00000703* - ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] - - pci:v00001924d00000703sv000010B8sd00000102* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) - - pci:v00001924d00000703sv000010B8sd00000103* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) - - pci:v00001924d00000703sv000010B8sd00000201* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) - - pci:v00001924d00000703sv00001924sd00000101* -- ID_MODEL_FROM_DATABASE=SFE4001-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A1) - - pci:v00001924d00000703sv00001924sd00000102* -- ID_MODEL_FROM_DATABASE=SFE4001-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A2) - - pci:v00001924d00000703sv00001924sd00000103* -- ID_MODEL_FROM_DATABASE=SFE4001-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4001-A3) - - pci:v00001924d00000703sv00001924sd00000201* -- ID_MODEL_FROM_DATABASE=SFE4002-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4002-A1) - - pci:v00001924d00000703sv00001924sd00000301* -- ID_MODEL_FROM_DATABASE=SFE4003-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A1) - - pci:v00001924d00000703sv00001924sd00000302* -- ID_MODEL_FROM_DATABASE=SFE4003-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A2) - - pci:v00001924d00000703sv00001924sd00000303* -- ID_MODEL_FROM_DATABASE=SFE4003-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A3) - - pci:v00001924d00000703sv00001924sd00000304* -- ID_MODEL_FROM_DATABASE=SFE4003-A4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4003-A4) - - pci:v00001924d00000703sv00001924sd00000500* -- ID_MODEL_FROM_DATABASE=SFE4005-A0 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A net [Solarstorm] (SFE4005-A0) - - pci:v00001924d00000710* - ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] - - pci:v00001924d00000710sv000010B8sd00000103* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) - - pci:v00001924d00000710sv000010B8sd00000201* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) - - pci:v00001924d00000710sv00001924sd00000102* -- ID_MODEL_FROM_DATABASE=SFE4001-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A2) - - pci:v00001924d00000710sv00001924sd00000103* -- ID_MODEL_FROM_DATABASE=SFE4001-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4001-A3) - - pci:v00001924d00000710sv00001924sd00000201* -- ID_MODEL_FROM_DATABASE=SFE4002-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4002-A1) - - pci:v00001924d00000710sv00001924sd00000302* -- ID_MODEL_FROM_DATABASE=SFE4003-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A2) - - pci:v00001924d00000710sv00001924sd00000303* -- ID_MODEL_FROM_DATABASE=SFE4003-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A3) - - pci:v00001924d00000710sv00001924sd00000304* -- ID_MODEL_FROM_DATABASE=SFE4003-A4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4003-A4) - - pci:v00001924d00000710sv00001924sd00000500* -- ID_MODEL_FROM_DATABASE=SFE4005-A0 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFE4005-A0) - - pci:v00001924d00000710sv00001924sd00005102* -- ID_MODEL_FROM_DATABASE=SFN4111T-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-A2) - - pci:v00001924d00000710sv00001924sd00005103* -- ID_MODEL_FROM_DATABASE=SFN4111T-R3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R3) - - pci:v00001924d00000710sv00001924sd00005104* -- ID_MODEL_FROM_DATABASE=SFN4111T-R4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R4) - - pci:v00001924d00000710sv00001924sd00005105* -- ID_MODEL_FROM_DATABASE=SFN4111T-R5 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4111T-R5) - - pci:v00001924d00000710sv00001924sd00005201* -- ID_MODEL_FROM_DATABASE=SFN4112F-R1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R1) - - pci:v00001924d00000710sv00001924sd00005202* -- ID_MODEL_FROM_DATABASE=SFN4112F-R2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev B [Solarstorm] (SFN4112F-R2) - - pci:v00001924d00000803* - ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] - - pci:v00001924d00000803sv00001014sd00000478* -- ID_MODEL_FROM_DATABASE=2-port 10GbE Low-Latency (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE Low-Latency (R7)) - - pci:v00001924d00000803sv00001014sd00000479* -- ID_MODEL_FROM_DATABASE=2-port 10GbE OpenOnload (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (2-port 10GbE OpenOnload (R7)) - - pci:v00001924d00000803sv00001014sd000004A7* -- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Low-latency Dual-port HBA (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Low-latency Dual-port HBA (R7)) - - pci:v00001924d00000803sv00001014sd000004A8* -- ID_MODEL_FROM_DATABASE=Solarflare 10Gb Dual-port HBA (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Solarflare 10Gb Dual-port HBA (R7)) - - pci:v00001924d00000803sv0000103Csd00002132* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570FLR-SFP+ Adapter (R1)) - - pci:v00001924d00000803sv0000103Csd00002136* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 570SFP+ Adapter (R7) -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (Ethernet 10Gb 2-port 570SFP+ Adapter (R7)) - - pci:v00001924d00000803sv00001924sd00001201* -- ID_MODEL_FROM_DATABASE=SFA6902F-R1 SFP+ AOE Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFA6902F-R1 SFP+ AOE Adapter) - - pci:v00001924d00000803sv00001924sd00006200* -- ID_MODEL_FROM_DATABASE=SFN5122F-R0 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R0 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006201* -- ID_MODEL_FROM_DATABASE=SFN5122F-R1 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R1 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006202* -- ID_MODEL_FROM_DATABASE=SFN5122F-R2 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R2 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006204* -- ID_MODEL_FROM_DATABASE=SFN5122F-R4 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R4 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006205* -- ID_MODEL_FROM_DATABASE=SFN5122F-R5 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R5 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006206* -- ID_MODEL_FROM_DATABASE=SFN5122F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006207* -- ID_MODEL_FROM_DATABASE=SFN5122F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5122F-R7 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006210* -- ID_MODEL_FROM_DATABASE=SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R0 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006211* -- ID_MODEL_FROM_DATABASE=SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R1 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006217* -- ID_MODEL_FROM_DATABASE=SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5322F-R7 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006227* -- ID_MODEL_FROM_DATABASE=SFN6122F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6122F-R7 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006237* -- ID_MODEL_FROM_DATABASE=SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6322F-R7 SFP+ Precision Time Synchronization Server Adapter) - - pci:v00001924d00000803sv00001924sd00006501* -- ID_MODEL_FROM_DATABASE=SFN5802K-R1 Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5802K-R1 Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006511* -- ID_MODEL_FROM_DATABASE=SFN5814H-R1 Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5814H-R1 Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006521* -- ID_MODEL_FROM_DATABASE=SFN5812H-R1 Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5812H-R1 Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006562* -- ID_MODEL_FROM_DATABASE=SFN6832F-R2 SFP+ Mezzanine Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN6832F-R2 SFP+ Mezzanine Adapter) - - pci:v00001924d00000803sv00001924sd00006A05* -- ID_MODEL_FROM_DATABASE=SFN5112F-R5 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R5 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00006A06* -- ID_MODEL_FROM_DATABASE=SFN5112F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5112F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007206* -- ID_MODEL_FROM_DATABASE=SFN5162F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007207* -- ID_MODEL_FROM_DATABASE=SFN5162F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5162F-R7 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007A06* -- ID_MODEL_FROM_DATABASE=SFN5152F-R6 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R6 SFP+ Server Adapter) - - pci:v00001924d00000803sv00001924sd00007A07* -- ID_MODEL_FROM_DATABASE=SFN5152F-R7 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9020 [Solarstorm] (SFN5152F-R7 SFP+ Server Adapter) - - pci:v00001924d00000813* - ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] - - pci:v00001924d00000813sv00001924sd00006100* -- ID_MODEL_FROM_DATABASE=SFN5121T-R0 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R0 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006102* -- ID_MODEL_FROM_DATABASE=SFN5121T-R2 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R2 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006103* -- ID_MODEL_FROM_DATABASE=SFN5121T-R3 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R3 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006104* -- ID_MODEL_FROM_DATABASE=SFN5121T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5121T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006902* -- ID_MODEL_FROM_DATABASE=SFN5111T-R2 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R2 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00006904* -- ID_MODEL_FROM_DATABASE=SFN5111T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5111T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00007104* -- ID_MODEL_FROM_DATABASE=SFN5161T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5161T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000813sv00001924sd00007904* -- ID_MODEL_FROM_DATABASE=SFN5151T-R4 10GBASE-T Server Adapter -+ ID_MODEL_FROM_DATABASE=SFL9021 [Solarstorm] (SFN5151T-R4 10GBASE-T Server Adapter) - - pci:v00001924d00000903* - ID_MODEL_FROM_DATABASE=SFC9120 - - pci:v00001924d00000903sv00001014sd000004CC* -- ID_MODEL_FROM_DATABASE=SFN7122F-R2 2x10GbE SFP+ Flareon Ultra -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R2 2x10GbE SFP+ Flareon Ultra) - - pci:v00001924d00000903sv00001924sd00008002* -- ID_MODEL_FROM_DATABASE=SFN7122F-R1 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7122F-R1 SFP+ Server Adapter) - - pci:v00001924d00000903sv00001924sd00008003* -- ID_MODEL_FROM_DATABASE=SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) - - pci:v00001924d00000903sv00001924sd00008006* -- ID_MODEL_FROM_DATABASE=SFN7022F-R1 SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7022F-R1 SFP+ Server Adapter) - - pci:v00001924d00000903sv00001924sd00008007* -- ID_MODEL_FROM_DATABASE=SFN7322F-R2 Precision Time SFP+ Server Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7322F-R2 Precision Time SFP+ Server Adapter) - - pci:v00001924d00000903sv00001924sd00008009* -- ID_MODEL_FROM_DATABASE=SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter) - - pci:v00001924d00000903sv00001924sd0000800A* -- ID_MODEL_FROM_DATABASE=SFN7x02F-R2 Flareon 7000 Series 10G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x02F-R2 Flareon 7000 Series 10G Adapter) - - pci:v00001924d00000923* - ID_MODEL_FROM_DATABASE=SFC9140 - - pci:v00001924d00000923sv00001924sd0000800B* -- ID_MODEL_FROM_DATABASE=SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter -+ ID_MODEL_FROM_DATABASE=SFC9140 (SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter) - - pci:v00001924d00001803* - ID_MODEL_FROM_DATABASE=SFC9020 Virtual Function [Solarstorm] -@@ -51315,40 +51315,40 @@ pci:v00001924d00006703* - ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] - - pci:v00001924d00006703sv000010B8sd00000102* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A2) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A2) [TigerCard]) - - pci:v00001924d00006703sv000010B8sd00000103* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-10BT (A3) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-10BT (A3) [TigerCard]) - - pci:v00001924d00006703sv000010B8sd00000201* -- ID_MODEL_FROM_DATABASE=SMC10GPCIe-XFP (A1) [TigerCard] -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SMC10GPCIe-XFP (A1) [TigerCard]) - - pci:v00001924d00006703sv00001924sd00000101* -- ID_MODEL_FROM_DATABASE=SFE4001-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A1) - - pci:v00001924d00006703sv00001924sd00000102* -- ID_MODEL_FROM_DATABASE=SFE4001-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A2) - - pci:v00001924d00006703sv00001924sd00000103* -- ID_MODEL_FROM_DATABASE=SFE4001-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4001-A3) - - pci:v00001924d00006703sv00001924sd00000201* -- ID_MODEL_FROM_DATABASE=SFE4002-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4002-A1) - - pci:v00001924d00006703sv00001924sd00000301* -- ID_MODEL_FROM_DATABASE=SFE4003-A1 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A1) - - pci:v00001924d00006703sv00001924sd00000302* -- ID_MODEL_FROM_DATABASE=SFE4003-A2 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A2) - - pci:v00001924d00006703sv00001924sd00000303* -- ID_MODEL_FROM_DATABASE=SFE4003-A3 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A3) - - pci:v00001924d00006703sv00001924sd00000304* -- ID_MODEL_FROM_DATABASE=SFE4003-A4 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4003-A4) - - pci:v00001924d00006703sv00001924sd00000500* -- ID_MODEL_FROM_DATABASE=SFE4005-A0 -+ ID_MODEL_FROM_DATABASE=SFC4000 rev A iSCSI/Onload [Solarstorm] (SFE4005-A0) - - pci:v00001924d0000C101* - ID_MODEL_FROM_DATABASE=EF1-21022T [EtherFabric] -@@ -51549,13 +51549,13 @@ pci:v00001957d00000084* - ID_MODEL_FROM_DATABASE=MPC8347E PBGA - - pci:v00001957d00000084sv0000110Asd00004074* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1628 -+ ID_MODEL_FROM_DATABASE=MPC8347E PBGA (SIMATIC NET CP 1628) - - pci:v00001957d00000085* - ID_MODEL_FROM_DATABASE=MPC8347 PBGA - - pci:v00001957d00000085sv0000110Asd00004046* -- ID_MODEL_FROM_DATABASE=SIMATIC NET CP 1623 -+ ID_MODEL_FROM_DATABASE=MPC8347 PBGA (SIMATIC NET CP 1623) - - pci:v00001957d00000086* - ID_MODEL_FROM_DATABASE=MPC8343E -@@ -51570,7 +51570,7 @@ pci:v00001957d000000B6* - ID_MODEL_FROM_DATABASE=MPC8314E - - pci:v00001957d000000B6sv00001A56sd00001101* -- ID_MODEL_FROM_DATABASE=Killer Xeno Pro Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=MPC8314E (Killer Xeno Pro Gigabit Ethernet Controller) - - pci:v00001957d000000C2* - ID_MODEL_FROM_DATABASE=MPC8379E -@@ -51621,7 +51621,7 @@ pci:v00001957d00000111* - ID_MODEL_FROM_DATABASE=P1022 - - pci:v00001957d00000111sv00001C7Fsd00005200* -- ID_MODEL_FROM_DATABASE=EB5200 -+ ID_MODEL_FROM_DATABASE=P1022 (EB5200) - - pci:v00001957d00000118* - ID_MODEL_FROM_DATABASE=P1013E -@@ -51660,7 +51660,7 @@ pci:v00001957d0000C006* - ID_MODEL_FROM_DATABASE=MPC8308 - - pci:v00001957d0000C006sv00001A56sd00001201* -- ID_MODEL_FROM_DATABASE=Killer E2100 Gigabit Ethernet Controller -+ ID_MODEL_FROM_DATABASE=MPC8308 (Killer E2100 Gigabit Ethernet Controller) - - pci:v00001958* - ID_VENDOR_FROM_DATABASE=Faster Technology, LLC. -@@ -51726,13 +51726,13 @@ pci:v00001969d00001026* - ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet - - pci:v00001969d00001026sv00001043sd00008304* -- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard -+ ID_MODEL_FROM_DATABASE=AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (P5KPL-CM Motherboard) - - pci:v00001969d00001048* - ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet - - pci:v00001969d00001048sv00001043sd00008226* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=Attansic L1 Gigabit Ethernet (P5KPL-VM Motherboard) - - pci:v00001969d00001062* - ID_MODEL_FROM_DATABASE=AR8132 Fast Ethernet -@@ -51741,7 +51741,7 @@ pci:v00001969d00001063* - ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet - - pci:v00001969d00001063sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=GA-G31M-ES2L Motherboard -+ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) - - pci:v00001969d00001066* - ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet -@@ -51762,7 +51762,7 @@ pci:v00001969d00001091* - ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet - - pci:v00001969d00001091sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=AR8161 Gigabit Ethernet (N56VZ) - - pci:v00001969d000010A0* - ID_MODEL_FROM_DATABASE=QCA8172 Fast Ethernet -@@ -51804,7 +51804,7 @@ pci:v00001971d00001011* - ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] - - pci:v00001971d00001011sv00001043sd00000001* -- ID_MODEL_FROM_DATABASE=PhysX P1 -+ ID_MODEL_FROM_DATABASE=Physics Processing Unit [PhysX] (PhysX P1) - - pci:v00001974* - ID_VENDOR_FROM_DATABASE=Eberspaecher Electronics -@@ -51834,25 +51834,25 @@ pci:v0000197Bd00002361* - ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE - - pci:v0000197Bd00002361sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=JMB361 AHCI/IDE (P965 Neo MS-7235 mainboard) - - pci:v0000197Bd00002362* - ID_MODEL_FROM_DATABASE=JMB362 SATA Controller - - pci:v0000197Bd00002362sv00001043sd00008460* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=JMB362 SATA Controller (P8P67 Deluxe Motherboard) - - pci:v0000197Bd00002363* - ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller - - pci:v0000197Bd00002363sv00001043sd000081E4* -- ID_MODEL_FROM_DATABASE=P5B [JMB363] -+ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (P5B [JMB363]) - - pci:v0000197Bd00002363sv00001458sd0000B000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard) - - pci:v0000197Bd00002363sv00001849sd00002363* -- ID_MODEL_FROM_DATABASE=Motherboard (one of many) -+ ID_MODEL_FROM_DATABASE=JMB363 SATA/IDE Controller (Motherboard (one of many)) - - pci:v0000197Bd00002364* - ID_MODEL_FROM_DATABASE=JMB364 AHCI Controller -@@ -51984,19 +51984,19 @@ pci:v000019A2d00000700* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC - - pci:v000019A2d00000700sv0000103Csd00001747* -- ID_MODEL_FROM_DATABASE=NC550SFP DualPort 10GbE Server Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP DualPort 10GbE Server Adapter) - - pci:v000019A2d00000700sv0000103Csd00001749* -- ID_MODEL_FROM_DATABASE=NC550SFP Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC550SFP Dual Port Server Adapter) - - pci:v000019A2d00000700sv0000103Csd0000174A* -- ID_MODEL_FROM_DATABASE=NC551m Dual Port FlexFabric 10Gb Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551m Dual Port FlexFabric 10Gb Adapter) - - pci:v000019A2d00000700sv0000103Csd0000174B* -- ID_MODEL_FROM_DATABASE=StorageWorks NC550 DualPort Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (StorageWorks NC550 DualPort Converged Network Adapter) - - pci:v000019A2d00000700sv0000103Csd00003314* -- ID_MODEL_FROM_DATABASE=NC551i Dual Port FlexFabric 10Gb Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (NC551i Dual Port FlexFabric 10Gb Adapter) - - pci:v000019A2d00000702* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator -@@ -52008,19 +52008,19 @@ pci:v000019A2d00000710* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) - - pci:v000019A2d00000710sv0000103Csd00003315* -- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000710sv0000103Csd00003340* -- ID_MODEL_FROM_DATABASE=NC552SFP 2-port 10Gb Server Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552SFP 2-port 10Gb Server Adapter) - - pci:v000019A2d00000710sv0000103Csd00003341* -- ID_MODEL_FROM_DATABASE=NC552m 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC552m 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000710sv0000103Csd00003345* -- ID_MODEL_FROM_DATABASE=NC553m 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC553m 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000710sv0000103Csd0000337B* -- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb NIC (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000712* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb iSCSI Initiator (be3) -@@ -52029,10 +52029,10 @@ pci:v000019A2d00000714* - ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) - - pci:v000019A2d00000714sv0000103Csd00003315* -- ID_MODEL_FROM_DATABASE=NC553i 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC553i 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A2d00000714sv0000103Csd0000337B* -- ID_MODEL_FROM_DATABASE=NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=OneConnect 10Gb FCoE Initiator (be3) (NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter) - - pci:v000019A8* - ID_VENDOR_FROM_DATABASE=DAQDATA GmbH -@@ -52332,16 +52332,16 @@ pci:v00001A78d00000031* - ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive - - pci:v00001A78d00000031sv00001A78sd00000034* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) - - pci:v00001A78d00000031sv00001A78sd00000037* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 3D] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) - - pci:v00001A78d00000031sv00001A78sd00000038* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) - - pci:v00001A78d00000031sv00001A78sd00000039* -- ID_MODEL_FROM_DATABASE=FlashMAX PCIe SSD [rev 4D] -+ ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) - - pci:v00001A78d00000040* - ID_MODEL_FROM_DATABASE=FlashMAX II -@@ -52479,25 +52479,25 @@ pci:v00001AEDd00001005* - ID_MODEL_FROM_DATABASE=ioDimm3 - - pci:v00001AEDd00001005sv00001014sd000003C3* -- ID_MODEL_FROM_DATABASE=High IOPS SSD PCIe Adapter -+ ID_MODEL_FROM_DATABASE=ioDimm3 (High IOPS SSD PCIe Adapter) - - pci:v00001AEDd00001005sv0000103Csd0000176F* -- ID_MODEL_FROM_DATABASE=1.28TB MLC PCIe ioDrive Duo -+ ID_MODEL_FROM_DATABASE=ioDimm3 (1.28TB MLC PCIe ioDrive Duo) - - pci:v00001AEDd00001005sv0000103Csd00001770* -- ID_MODEL_FROM_DATABASE=5.2TB MLC PCIe ioDrive Octal -+ ID_MODEL_FROM_DATABASE=ioDimm3 (5.2TB MLC PCIe ioDrive Octal) - - pci:v00001AEDd00001005sv0000103Csd0000178B* -- ID_MODEL_FROM_DATABASE=160GB SLC PCIe ioDrive -+ ID_MODEL_FROM_DATABASE=ioDimm3 (160GB SLC PCIe ioDrive) - - pci:v00001AEDd00001005sv0000103Csd0000178C* -- ID_MODEL_FROM_DATABASE=320GB MLC PCIe ioDrive -+ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB MLC PCIe ioDrive) - - pci:v00001AEDd00001005sv0000103Csd0000178D* -- ID_MODEL_FROM_DATABASE=320GB SLC PCIe ioDrive Duo -+ ID_MODEL_FROM_DATABASE=ioDimm3 (320GB SLC PCIe ioDrive Duo) - - pci:v00001AEDd00001005sv0000103Csd0000178E* -- ID_MODEL_FROM_DATABASE=640GB MLC PCIe ioDrive Duo -+ ID_MODEL_FROM_DATABASE=ioDimm3 (640GB MLC PCIe ioDrive Duo) - - pci:v00001AEDd00001006* - ID_MODEL_FROM_DATABASE=ioXtreme -@@ -52548,7 +52548,7 @@ pci:v00001AF4d00001110* - ID_MODEL_FROM_DATABASE=Inter-VM shared memory - - pci:v00001AF4d00001110sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=Inter-VM shared memory (QEMU Virtual Machine) - - pci:v00001AF5* - ID_VENDOR_FROM_DATABASE=Netezza Corp. -@@ -52587,22 +52587,22 @@ pci:v00001B21d00000612* - ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller - - pci:v00001B21d00000612sv00001849sd00000612* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1062 Serial ATA Controller (Motherboard) - - pci:v00001B21d00001042* - ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller - - pci:v00001B21d00001042sv00001043sd00008488* -- ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (P8B WS Motherboard) - - pci:v00001B21d00001042sv00001849sd00001042* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1042 SuperSpeed USB Host Controller (Motherboard) - - pci:v00001B21d00001080* - ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge - - pci:v00001B21d00001080sv00001849sd00001080* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) - - pci:v00001B2C* - ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. -@@ -52617,31 +52617,31 @@ pci:v00001B36d00000002* - ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter - - pci:v00001B36d00000002sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI 16550A Adapter (QEMU Virtual Machine) - - pci:v00001B36d00000003* - ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter - - pci:v00001B36d00000003sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI Dual-port 16550A Adapter (QEMU Virtual Machine) - - pci:v00001B36d00000004* - ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter - - pci:v00001B36d00000004sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI Quad-port 16550A Adapter (QEMU Virtual Machine) - - pci:v00001B36d00000005* - ID_MODEL_FROM_DATABASE=QEMU PCI Test Device - - pci:v00001B36d00000005sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU PCI Test Device (QEMU Virtual Machine) - - pci:v00001B36d00000100* - ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card - - pci:v00001B36d00000100sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QXL paravirtual graphic card (QEMU Virtual Machine) - - pci:v00001B37* - ID_VENDOR_FROM_DATABASE=Signal Processing Devices Sweden AB -@@ -52662,10 +52662,10 @@ pci:v00001B3Ed00001FA8* - ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X - - pci:v00001B3Ed00001FA8sv00001B3Esd000000A3* -- ID_MODEL_FROM_DATABASE=BYNET BIC2SX -+ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SX) - - pci:v00001B3Ed00001FA8sv00001B3Esd000000C3* -- ID_MODEL_FROM_DATABASE=BYNET BIC2SE -+ ID_MODEL_FROM_DATABASE=BYNET BIC2SE/X (BYNET BIC2SE) - - pci:v00001B40* - ID_VENDOR_FROM_DATABASE=Schooner Information Technology, Inc. -@@ -52701,7 +52701,7 @@ pci:v00001B4Bd00009130* - ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo - - pci:v00001B4Bd00009130sv00001043sd00008438* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo (P8P67 Deluxe Motherboard) - - pci:v00001B4Bd00009172* - ID_MODEL_FROM_DATABASE=88SE9172 SATA 6Gb/s Controller -@@ -52767,7 +52767,7 @@ pci:v00001B73d00001000* - ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller - - pci:v00001B73d00001000sv00001D5Csd00001000* -- ID_MODEL_FROM_DATABASE=Anker USB 3.0 Express Card -+ ID_MODEL_FROM_DATABASE=FL1000G USB 3.0 Host Controller (Anker USB 3.0 Express Card) - - pci:v00001B73d00001009* - ID_MODEL_FROM_DATABASE=FL1009 USB 3.0 Host Controller -@@ -53010,67 +53010,67 @@ pci:v00001FC9d00003010* - ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC - - pci:v00001FC9d00003010sv00000000sd00003002* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port XFP SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port XFP SmartNIC) - - pci:v00001FC9d00003010sv00000000sd00003004* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) - - pci:v00001FC9d00003010sv00000000sd00003008* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port CX4 SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC (10-Giga TOE Single Port CX4 SmartNIC) - - pci:v00001FC9d00003014* - ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port - - pci:v00001FC9d00003014sv00000000sd00003003* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port XFP Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port XFP Low Profile SmartNIC) - - pci:v00001FC9d00003014sv00000000sd00003005* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003014sv00000000sd00003014* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SmartNIC 2-Port (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003110* - ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC - - pci:v00001FC9d00003110sv00000000sd00003004* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) - - pci:v00001FC9d00003114* - ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC - - pci:v00001FC9d00003114sv00000000sd00003005* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003114sv00000000sd00003011* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003114sv00000000sd00003012* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003114sv00000000sd00003014* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003310* - ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC - - pci:v00001FC9d00003310sv00000000sd00003004* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Single Port SFP+ SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE SFP+ Single Port SmartNIC (10-Giga TOE Single Port SFP+ SmartNIC) - - pci:v00001FC9d00003314* - ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC - - pci:v00001FC9d00003314sv00000000sd00003005* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003314sv00000000sd00003011* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port SFP+/CX4 Low Profile SmartNIC) - - pci:v00001FC9d00003314sv00000000sd00003012* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4/SFP+ Low Profile SmartNIC) - - pci:v00001FC9d00003314sv00000000sd00003014* -- ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port CX4 Low Profile SmartNIC -+ ID_MODEL_FROM_DATABASE=10-Giga TOE Dual Port Low Profile SmartNIC (10-Giga TOE Dual Port CX4 Low Profile SmartNIC) - - pci:v00001FCE* - ID_VENDOR_FROM_DATABASE=Cognio Inc. -@@ -53172,31 +53172,31 @@ pci:v00003388d00000021* - ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) - - pci:v00003388d00000021sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K CompactPCI interface bridge -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (C2K CompactPCI interface bridge) - - pci:v00003388d00000021sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CE9) - - pci:v00003388d00000021sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT7 mainboard) - - pci:v00003388d00000021sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CT8 mainboard) - - pci:v00003388d00000021sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (Cx9 mainboard) - - pci:v00003388d00000021sv00004C53sd000010A0* -- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (CA3/CR3 mainboard) - - pci:v00003388d00000021sv00004C53sd00003010* -- ID_MODEL_FROM_DATABASE=PPCI mezzanine (32-bit PMC) -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (32-bit PMC)) - - pci:v00003388d00000021sv00004C53sd00003011* -- ID_MODEL_FROM_DATABASE=PPCI mezzanine (64-bit PMC) -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PPCI mezzanine (64-bit PMC)) - - pci:v00003388d00000021sv00004C53sd00004000* -- ID_MODEL_FROM_DATABASE=PMCCARR1 carrier board -+ ID_MODEL_FROM_DATABASE=HB6 Universal PCI-PCI bridge (non-transparent mode) (PMCCARR1 carrier board) - - pci:v00003388d00000022* - ID_MODEL_FROM_DATABASE=HiNT HB4 PCI-PCI Bridge (PCI6150) -@@ -53220,19 +53220,19 @@ pci:v00003388d00008011* - ID_MODEL_FROM_DATABASE=VXPro II Chipset - - pci:v00003388d00008011sv00003388sd00008011* -- ID_MODEL_FROM_DATABASE=VXPro II Chipset CPU to PCI Bridge -+ ID_MODEL_FROM_DATABASE=VXPro II Chipset (CPU to PCI Bridge) - - pci:v00003388d00008012* - ID_MODEL_FROM_DATABASE=VXPro II Chipset - - pci:v00003388d00008012sv00003388sd00008012* -- ID_MODEL_FROM_DATABASE=VXPro II Chipset PCI to ISA Bridge -+ ID_MODEL_FROM_DATABASE=VXPro II Chipset (PCI to ISA Bridge) - - pci:v00003388d00008013* - ID_MODEL_FROM_DATABASE=VXPro II IDE - - pci:v00003388d00008013sv00003388sd00008013* -- ID_MODEL_FROM_DATABASE=VXPro II Chipset EIDE Controller -+ ID_MODEL_FROM_DATABASE=VXPro II IDE (VXPro II Chipset EIDE Controller) - - pci:v00003388d0000A103* - ID_MODEL_FROM_DATABASE=Blackmagic Design DeckLink HD Pro -@@ -53277,13 +53277,13 @@ pci:v00003D3Dd00000002* - ID_MODEL_FROM_DATABASE=GLINT 500TX - - pci:v00003D3Dd00000002sv00000000sd00000000* -- ID_MODEL_FROM_DATABASE=GLoria L -+ ID_MODEL_FROM_DATABASE=GLINT 500TX (GLoria L) - - pci:v00003D3Dd00000003* - ID_MODEL_FROM_DATABASE=GLINT Delta - - pci:v00003D3Dd00000003sv00000000sd00000000* -- ID_MODEL_FROM_DATABASE=GLoria XL -+ ID_MODEL_FROM_DATABASE=GLINT Delta (GLoria XL) - - pci:v00003D3Dd00000004* - ID_MODEL_FROM_DATABASE=Permedia -@@ -53295,10 +53295,10 @@ pci:v00003D3Dd00000006* - ID_MODEL_FROM_DATABASE=GLINT MX - - pci:v00003D3Dd00000006sv00000000sd00000000* -- ID_MODEL_FROM_DATABASE=GLoria XL -+ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XL) - - pci:v00003D3Dd00000006sv00001048sd00000A42* -- ID_MODEL_FROM_DATABASE=GLoria XXL -+ ID_MODEL_FROM_DATABASE=GLINT MX (GLoria XXL) - - pci:v00003D3Dd00000007* - ID_MODEL_FROM_DATABASE=3D Extreme -@@ -53307,55 +53307,55 @@ pci:v00003D3Dd00000008* - ID_MODEL_FROM_DATABASE=GLINT Gamma G1 - - pci:v00003D3Dd00000008sv00001048sd00000A42* -- ID_MODEL_FROM_DATABASE=GLoria XXL -+ ID_MODEL_FROM_DATABASE=GLINT Gamma G1 (GLoria XXL) - - pci:v00003D3Dd00000009* - ID_MODEL_FROM_DATABASE=Permedia II 2D+3D - - pci:v00003D3Dd00000009sv00001040sd00000011* -- ID_MODEL_FROM_DATABASE=AccelStar II -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II) - - pci:v00003D3Dd00000009sv00001048sd00000A42* -- ID_MODEL_FROM_DATABASE=GLoria XXL -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (GLoria XXL) - - pci:v00003D3Dd00000009sv000013E9sd00001000* -- ID_MODEL_FROM_DATABASE=6221L-4U -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (6221L-4U) - - pci:v00003D3Dd00000009sv00003D3Dsd00000100* -- ID_MODEL_FROM_DATABASE=AccelStar II 3D Accelerator -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (AccelStar II 3D Accelerator) - - pci:v00003D3Dd00000009sv00003D3Dsd00000111* -- ID_MODEL_FROM_DATABASE=Permedia 3:16 -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia 3:16) - - pci:v00003D3Dd00000009sv00003D3Dsd00000114* -- ID_MODEL_FROM_DATABASE=Santa Ana -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana) - - pci:v00003D3Dd00000009sv00003D3Dsd00000116* -- ID_MODEL_FROM_DATABASE=Oxygen GVX1 -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen GVX1) - - pci:v00003D3Dd00000009sv00003D3Dsd00000119* -- ID_MODEL_FROM_DATABASE=Scirocco -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Scirocco) - - pci:v00003D3Dd00000009sv00003D3Dsd00000120* -- ID_MODEL_FROM_DATABASE=Santa Ana PCL -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Santa Ana PCL) - - pci:v00003D3Dd00000009sv00003D3Dsd00000125* -- ID_MODEL_FROM_DATABASE=Oxygen VX1 -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Oxygen VX1) - - pci:v00003D3Dd00000009sv00003D3Dsd00000127* -- ID_MODEL_FROM_DATABASE=Permedia3 Create! -+ ID_MODEL_FROM_DATABASE=Permedia II 2D+3D (Permedia3 Create!) - - pci:v00003D3Dd0000000A* - ID_MODEL_FROM_DATABASE=GLINT R3 - - pci:v00003D3Dd0000000Asv00003D3Dsd00000121* -- ID_MODEL_FROM_DATABASE=Oxygen VX1 -+ ID_MODEL_FROM_DATABASE=GLINT R3 (Oxygen VX1) - - pci:v00003D3Dd0000000C* - ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] - - pci:v00003D3Dd0000000Csv00003D3Dsd00000144* -- ID_MODEL_FROM_DATABASE=Oxygen VX1-4X AGP [Permedia 4] -+ ID_MODEL_FROM_DATABASE=GLINT R3 [Oxygen VX1] (Oxygen VX1-4X AGP [Permedia 4]) - - pci:v00003D3Dd0000000D* - ID_MODEL_FROM_DATABASE=GLint R4 rev A -@@ -53472,13 +53472,13 @@ pci:v00004040d00000001* - ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface - - pci:v00004040d00000001sv0000103Csd00007047* -- ID_MODEL_FROM_DATABASE=NC510F PCIe 10-Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface (NC510F PCIe 10-Gigabit Server Adapter) - - pci:v00004040d00000002* - ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface - - pci:v00004040d00000002sv0000103Csd00007048* -- ID_MODEL_FROM_DATABASE=NC510c PCIe 10-Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NXB-10GCX4 10-Gigabit Ethernet PCIe Adapter with CX4 copper interface (NC510c PCIe 10-Gigabit Server Adapter) - - pci:v00004040d00000003* - ID_MODEL_FROM_DATABASE=NXB-4GCU Quad Gigabit Ethernet PCIe Adapter with 1000-BASE-T interface -@@ -53490,7 +53490,7 @@ pci:v00004040d00000005* - ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class - - pci:v00004040d00000005sv0000103Csd0000170E* -- ID_MODEL_FROM_DATABASE=NC512m Dual Port 10GbE Multifunction BL-C Adapter -+ ID_MODEL_FROM_DATABASE=NetXen Dual Port 10GbE Multifunction Adapter for c-Class (NC512m Dual Port 10GbE Multifunction BL-C Adapter) - - pci:v00004040d00000024* - ID_MODEL_FROM_DATABASE=XG Mgmt -@@ -53502,28 +53502,28 @@ pci:v00004040d00000100* - ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter - - pci:v00004040d00000100sv0000103Csd0000171B* -- ID_MODEL_FROM_DATABASE=NC522m Dual Port 10GbE Multifunction BL-c Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522m Dual Port 10GbE Multifunction BL-c Adapter) - - pci:v00004040d00000100sv0000103Csd00001740* -- ID_MODEL_FROM_DATABASE=NC375T PCI Express Quad Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375T PCI Express Quad Port Gigabit Server Adapter) - - pci:v00004040d00000100sv0000103Csd00003251* -- ID_MODEL_FROM_DATABASE=NC375i 1G w/NC524SFP 10G Module -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i 1G w/NC524SFP 10G Module) - - pci:v00004040d00000100sv0000103Csd0000705A* -- ID_MODEL_FROM_DATABASE=NC375i Integrated Quad Port Multifunction Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC375i Integrated Quad Port Multifunction Gigabit Server Adapter) - - pci:v00004040d00000100sv0000103Csd0000705B* -- ID_MODEL_FROM_DATABASE=NC522SFP Dual Port 10GbE Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NC522SFP Dual Port 10GbE Server Adapter) - - pci:v00004040d00000100sv0000152Dsd0000896B* -- ID_MODEL_FROM_DATABASE=TG20 Dual Port 10GbE Server/Storage Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (TG20 Dual Port 10GbE Server/Storage Adapter) - - pci:v00004040d00000100sv00004040sd00000124* -- ID_MODEL_FROM_DATABASE=NX3031 Quad Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (NX3031 Quad Port Gigabit Server Adapter) - - pci:v00004040d00000100sv00004040sd00000126* -- ID_MODEL_FROM_DATABASE=Dual Port SFP+ 10GbE Server Adapter -+ ID_MODEL_FROM_DATABASE=NX3031 Multifunction 1/10-Gigabit Server Adapter (Dual Port SFP+ 10GbE Server Adapter) - - pci:v00004143* - ID_VENDOR_FROM_DATABASE=Digital Equipment Corp -@@ -53571,190 +53571,190 @@ pci:v00004444d00000016* - ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder - - pci:v00004444d00000016sv00000070sd00000003* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00000009* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00000801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00000807* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00004001* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00004009* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00004801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00004803* -- ID_MODEL_FROM_DATABASE=WinTV PVR 250 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 250) - - pci:v00004444d00000016sv00000070sd00008003* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd00008801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd0000C801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv00000070sd0000E807* -- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (1st unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (1st unit)) - - pci:v00004444d00000016sv00000070sd0000E817* -- ID_MODEL_FROM_DATABASE=WinTV PVR 500 (2nd unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 500 (2nd unit)) - - pci:v00004444d00000016sv00000070sd0000FF92* -- ID_MODEL_FROM_DATABASE=WiNTV PVR-550 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WiNTV PVR-550) - - pci:v00004444d00000016sv00000270sd00000801* -- ID_MODEL_FROM_DATABASE=WinTV PVR 150 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (WinTV PVR 150) - - pci:v00004444d00000016sv0000104Dsd0000013D* -- ID_MODEL_FROM_DATABASE=ENX-26 TV Encoder -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (ENX-26 TV Encoder) - - pci:v00004444d00000016sv000010FCsd0000D038* -- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (1st unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (1st unit)) - - pci:v00004444d00000016sv000010FCsd0000D039* -- ID_MODEL_FROM_DATABASE=GV-MVP/RX2W (2nd unit) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (GV-MVP/RX2W (2nd unit)) - - pci:v00004444d00000016sv000012ABsd0000FFF3* -- ID_MODEL_FROM_DATABASE=MPG600 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) - - pci:v00004444d00000016sv000012ABsd0000FFFF* -- ID_MODEL_FROM_DATABASE=MPG600 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (MPG600) - - pci:v00004444d00000016sv00001461sd0000C00A* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C00B* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C00C* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, JAPAN version, Philips FI1286MK2 tuner)) - - pci:v00004444d00000016sv00001461sd0000C010* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FI1236MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C011* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Philips FM1236MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C018* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C019* -- ID_MODEL_FROM_DATABASE=UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (UltraTV 1500 MCE, a.k.a. M113 PCI Analog TV (NTSC+FM, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C01A* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Philips FQ1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C01B* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Philips FM1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C030* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C031* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC-J+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C032* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C033* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (PAL/SECAM+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C034* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C035* -- ID_MODEL_FROM_DATABASE=M113 PCI Analog TV (NTSC+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M113 PCI Analog TV (NTSC+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C03F* -- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) - - pci:v00004444d00000016sv00001461sd0000C136* -- ID_MODEL_FROM_DATABASE=M104 mini-PCI Analog TV -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M104 mini-PCI Analog TV) - - pci:v00004444d00000016sv00001461sd0000C20A* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK3 tuner)) - - pci:v00004444d00000016sv00001461sd0000C218* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C219* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Philips FQ1236MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C21A* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Philips FQ1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C21B* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Philips FM1216MK5 tuner)) - - pci:v00004444d00000016sv00001461sd0000C230* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C231* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC-J+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C232* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C233* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (PAL/SECAM+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C234* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C235* -- ID_MODEL_FROM_DATABASE=M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M755 AVerTV Video Capture (NTSC+FM, Partsnic tuner)) - - pci:v00004444d00000016sv00001461sd0000C337* -- ID_MODEL_FROM_DATABASE=E106 AVerMedia AVerTV Video Capture -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (E106 AVerMedia AVerTV Video Capture) - - pci:v00004444d00000016sv00001461sd0000C439* -- ID_MODEL_FROM_DATABASE=M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M116 AVerMedia AVerTV MCE 116 Plus (NTSC/PAL/SECAM+FM+REMOTE, Xceive 2028 tuner)) - - pci:v00004444d00000016sv00001461sd0000C5FF* -- ID_MODEL_FROM_DATABASE=C755 AVerTV Video Capture card (no tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C755 AVerTV Video Capture card (no tuner)) - - pci:v00004444d00000016sv00001461sd0000C6FF* -- ID_MODEL_FROM_DATABASE=C115 PCI video capture card (no tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (C115 PCI video capture card (no tuner)) - - pci:v00004444d00000016sv00001461sd0000C739* -- ID_MODEL_FROM_DATABASE=M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner) -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner)) - - pci:v00004444d00000016sv00009005sd00000092* -- ID_MODEL_FROM_DATABASE=VideOh! AVC-2010 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2010) - - pci:v00004444d00000016sv00009005sd00000093* -- ID_MODEL_FROM_DATABASE=VideOh! AVC-2410 -+ ID_MODEL_FROM_DATABASE=iTVC16 (CX23416) Video Decoder (VideOh! AVC-2410) - - pci:v00004444d00000803* - ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder - - pci:v00004444d00000803sv00000070sd00004000* -- ID_MODEL_FROM_DATABASE=WinTV PVR-350 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350) - - pci:v00004444d00000803sv00000070sd00004001* -- ID_MODEL_FROM_DATABASE=WinTV PVR-250 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-250) - - pci:v00004444d00000803sv00000070sd00004800* -- ID_MODEL_FROM_DATABASE=WinTV PVR-350 (V1) -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (WinTV PVR-350 (V1)) - - pci:v00004444d00000803sv000012ABsd00000000* -- ID_MODEL_FROM_DATABASE=MPG160 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (MPG160) - - pci:v00004444d00000803sv00001461sd0000A3CE* -- ID_MODEL_FROM_DATABASE=M179 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) - - pci:v00004444d00000803sv00001461sd0000A3CF* -- ID_MODEL_FROM_DATABASE=M179 -+ ID_MODEL_FROM_DATABASE=iTVC15 (CX23415) Video Decoder (M179) - - pci:v00004468* - ID_VENDOR_FROM_DATABASE=Bridgeport machines -@@ -53961,7 +53961,7 @@ pci:v00004A14d00005000* - ID_MODEL_FROM_DATABASE=NV5000SC - - pci:v00004A14d00005000sv00004A14sd00005000* -- ID_MODEL_FROM_DATABASE=RT8029-Based Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=NV5000SC (RT8029-Based Ethernet Adapter) - - pci:v00004B10* - ID_VENDOR_FROM_DATABASE=Buslogic Inc. -@@ -53976,16 +53976,16 @@ pci:v00004C53d00000000* - ID_MODEL_FROM_DATABASE=PLUSTEST device - - pci:v00004C53d00000000sv00004C53sd00003000* -- ID_MODEL_FROM_DATABASE=PLUSTEST card (PC104+) -+ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PC104+)) - - pci:v00004C53d00000000sv00004C53sd00003001* -- ID_MODEL_FROM_DATABASE=PLUSTEST card (PMC) -+ ID_MODEL_FROM_DATABASE=PLUSTEST device (PLUSTEST card (PMC)) - - pci:v00004C53d00000001* - ID_MODEL_FROM_DATABASE=PLUSTEST-MM device - - pci:v00004C53d00000001sv00004C53sd00003002* -- ID_MODEL_FROM_DATABASE=PLUSTEST-MM card (PMC) -+ ID_MODEL_FROM_DATABASE=PLUSTEST-MM device (PLUSTEST-MM card (PMC)) - - pci:v00004CA1* - ID_VENDOR_FROM_DATABASE=Seanix Technology Inc -@@ -54222,13 +54222,13 @@ pci:v00005333d00008900* - ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] - - pci:v00005333d00008900sv00005333sd00008900* -- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX -+ ID_MODEL_FROM_DATABASE=86c755 [Trio 64V2/DX] (86C775 Trio64V2/DX) - - pci:v00005333d00008901* - ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] - - pci:v00005333d00008901sv00005333sd00008901* -- ID_MODEL_FROM_DATABASE=86C775 Trio64V2/DX, 86C785 Trio64V2/GX -+ ID_MODEL_FROM_DATABASE=86c775/86c785 [Trio 64V2/DX or /GX] (86C775 Trio64V2/DX, 86C785 Trio64V2/GX) - - pci:v00005333d00008902* - ID_MODEL_FROM_DATABASE=Plato/PX -@@ -54240,13 +54240,13 @@ pci:v00005333d00008904* - ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] - - pci:v00005333d00008904sv00001014sd000000DB* -- ID_MODEL_FROM_DATABASE=Integrated Trio3D -+ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Integrated Trio3D) - - pci:v00005333d00008904sv00004843sd0000314A* -- ID_MODEL_FROM_DATABASE=Terminator 128/3D GLH -+ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (Terminator 128/3D GLH) - - pci:v00005333d00008904sv00005333sd00008904* -- ID_MODEL_FROM_DATABASE=86C365 Trio3D AGP -+ ID_MODEL_FROM_DATABASE=86c365, 86c366 [Trio 3D] (86C365 Trio3D AGP) - - pci:v00005333d00008905* - ID_MODEL_FROM_DATABASE=Trio 64V+ family -@@ -54285,40 +54285,40 @@ pci:v00005333d00008A01* - ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] - - pci:v00005333d00008A01sv00000E11sd0000B032* -- ID_MODEL_FROM_DATABASE=ViRGE/GX -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/GX) - - pci:v00005333d00008A01sv000010B4sd00001617* -- ID_MODEL_FROM_DATABASE=Nitro 3D -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) - - pci:v00005333d00008A01sv000010B4sd00001717* -- ID_MODEL_FROM_DATABASE=Nitro 3D -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (Nitro 3D) - - pci:v00005333d00008A01sv00005333sd00008A01* -- ID_MODEL_FROM_DATABASE=ViRGE/DX -+ ID_MODEL_FROM_DATABASE=86c375 [ViRGE/DX] or 86c385 [ViRGE/GX] (ViRGE/DX) - - pci:v00005333d00008A10* - ID_MODEL_FROM_DATABASE=ViRGE/GX2 - - pci:v00005333d00008A10sv00001092sd00008A10* -- ID_MODEL_FROM_DATABASE=Stealth 3D 4000 -+ ID_MODEL_FROM_DATABASE=ViRGE/GX2 (Stealth 3D 4000) - - pci:v00005333d00008A13* - ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] - - pci:v00005333d00008A13sv00005333sd00008A13* -- ID_MODEL_FROM_DATABASE=Trio3D/2X -+ ID_MODEL_FROM_DATABASE=86c360 [Trio 3D/1X], 86c362, 86c368 [Trio 3D/2X] (Trio3D/2X) - - pci:v00005333d00008A20* - ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] - - pci:v00005333d00008A20sv00005333sd00008A20* -- ID_MODEL_FROM_DATABASE=86C391 Savage3D -+ ID_MODEL_FROM_DATABASE=86c794 [Savage 3D] (86C391 Savage3D) - - pci:v00005333d00008A21* - ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] - - pci:v00005333d00008A21sv00005333sd00008A21* -- ID_MODEL_FROM_DATABASE=86C390 Savage3D/MV -+ ID_MODEL_FROM_DATABASE=86c390 [Savage 3D/MV] (86C390 Savage3D/MV) - - pci:v00005333d00008A22* - ID_MODEL_FROM_DATABASE=Savage 4 -@@ -54330,85 +54330,85 @@ pci:v00005333d00008A22sv00001033sd00008069* - ID_MODEL_FROM_DATABASE=Savage 4 - - pci:v00005333d00008A22sv00001033sd00008110* -- ID_MODEL_FROM_DATABASE=Savage 4 LT -+ ID_MODEL_FROM_DATABASE=Savage 4 (LT) - - pci:v00005333d00008A22sv0000105Dsd00000018* -- ID_MODEL_FROM_DATABASE=SR9 8Mb SDRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 8Mb SDRAM) - - pci:v00005333d00008A22sv0000105Dsd0000002A* -- ID_MODEL_FROM_DATABASE=SR9 Pro 16Mb SDRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 16Mb SDRAM) - - pci:v00005333d00008A22sv0000105Dsd0000003A* -- ID_MODEL_FROM_DATABASE=SR9 Pro 32Mb SDRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro 32Mb SDRAM) - - pci:v00005333d00008A22sv0000105Dsd0000092F* -- ID_MODEL_FROM_DATABASE=SR9 Pro+ 16Mb SGRAM -+ ID_MODEL_FROM_DATABASE=Savage 4 (SR9 Pro+ 16Mb SGRAM) - - pci:v00005333d00008A22sv00001092sd00004207* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004800* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004807* -- ID_MODEL_FROM_DATABASE=SpeedStar A90 -+ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A90) - - pci:v00005333d00008A22sv00001092sd00004808* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004809* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd0000480E* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004904* -- ID_MODEL_FROM_DATABASE=Stealth III S520 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S520) - - pci:v00005333d00008A22sv00001092sd00004905* -- ID_MODEL_FROM_DATABASE=SpeedStar A200 -+ ID_MODEL_FROM_DATABASE=Savage 4 (SpeedStar A200) - - pci:v00005333d00008A22sv00001092sd00004A09* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004A0B* -- ID_MODEL_FROM_DATABASE=Stealth III S540 Xtreme -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540 Xtreme) - - pci:v00005333d00008A22sv00001092sd00004A0F* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001092sd00004E01* -- ID_MODEL_FROM_DATABASE=Stealth III S540 -+ ID_MODEL_FROM_DATABASE=Savage 4 (Stealth III S540) - - pci:v00005333d00008A22sv00001102sd0000101D* -- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 -+ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) - - pci:v00005333d00008A22sv00001102sd0000101E* -- ID_MODEL_FROM_DATABASE=3d Blaster Savage 4 -+ ID_MODEL_FROM_DATABASE=Savage 4 (3d Blaster Savage 4) - - pci:v00005333d00008A22sv00005333sd00008100* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 100 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 100) - - pci:v00005333d00008A22sv00005333sd00008110* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 110 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 110) - - pci:v00005333d00008A22sv00005333sd00008125* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 125 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 125) - - pci:v00005333d00008A22sv00005333sd00008143* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SDRAM 143 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SDRAM 143) - - pci:v00005333d00008A22sv00005333sd00008A22* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4) - - pci:v00005333d00008A22sv00005333sd00008A2E* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 32bit -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 32bit) - - pci:v00005333d00008A22sv00005333sd00009125* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 125 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 125) - - pci:v00005333d00008A22sv00005333sd00009143* -- ID_MODEL_FROM_DATABASE=86C394-397 Savage4 SGRAM 143 -+ ID_MODEL_FROM_DATABASE=Savage 4 (86C394-397 Savage4 SGRAM 143) - - pci:v00005333d00008A23* - ID_MODEL_FROM_DATABASE=Savage 4 -@@ -54417,7 +54417,7 @@ pci:v00005333d00008A25* - ID_MODEL_FROM_DATABASE=ProSavage PM133 - - pci:v00005333d00008A25sv00000303sd00000303* -- ID_MODEL_FROM_DATABASE=D9840-60001 [Brio BA410 Motherboard] -+ ID_MODEL_FROM_DATABASE=ProSavage PM133 (D9840-60001 [Brio BA410 Motherboard]) - - pci:v00005333d00008A26* - ID_MODEL_FROM_DATABASE=ProSavage KM133 -@@ -54447,16 +54447,16 @@ pci:v00005333d00008C12* - ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] - - pci:v00005333d00008C12sv00001014sd0000017F* -- ID_MODEL_FROM_DATABASE=ThinkPad T20/T22 -+ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (ThinkPad T20/T22) - - pci:v00005333d00008C12sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=86C584 SuperSavage/IXC Toshiba -+ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX-MV] (86C584 SuperSavage/IXC Toshiba) - - pci:v00005333d00008C13* - ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] - - pci:v00005333d00008C13sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=86C270-294 [SavageIX] (Magnia Z310) - - pci:v00005333d00008C22* - ID_MODEL_FROM_DATABASE=SuperSavage MX/128 -@@ -54483,7 +54483,7 @@ pci:v00005333d00008C2E* - ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR - - pci:v00005333d00008C2Esv00001014sd000001FC* -- ID_MODEL_FROM_DATABASE=ThinkPad T23 -+ ID_MODEL_FROM_DATABASE=SuperSavage IX/C SDR (ThinkPad T23) - - pci:v00005333d00008C2F* - ID_MODEL_FROM_DATABASE=SuperSavage IX/C DDR -@@ -54513,7 +54513,7 @@ pci:v00005333d00008E48* - ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] - - pci:v00005333d00008E48sv00005333sd00000130* -- ID_MODEL_FROM_DATABASE=Chrome S27 256M DDR2 -+ ID_MODEL_FROM_DATABASE=Matrix [Chrome S25 / S27] (Chrome S27 256M DDR2) - - pci:v00005333d00009043* - ID_MODEL_FROM_DATABASE=Chrome 430 GT -@@ -54528,28 +54528,28 @@ pci:v00005333d00009102* - ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] - - pci:v00005333d00009102sv00001092sd00005932* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005934* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005952* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005954* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A35* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A37* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A55* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d00009102sv00001092sd00005A57* -- ID_MODEL_FROM_DATABASE=Viper II Z200 -+ ID_MODEL_FROM_DATABASE=86C410 [Savage 2000] (Viper II Z200) - - pci:v00005333d0000CA00* - ID_MODEL_FROM_DATABASE=SonicVibes -@@ -54774,13 +54774,13 @@ pci:v00008086d00000044* - ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller - - pci:v00008086d00000044sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Aspire 7740G) - - pci:v00008086d00000044sv00001025sd00000487* -- ID_MODEL_FROM_DATABASE=TravelMate 5742 -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) - - pci:v00008086d00000044sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) - - pci:v00008086d00000045* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port -@@ -54789,7 +54789,7 @@ pci:v00008086d00000046* - ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller - - pci:v00008086d00000046sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) - - pci:v00008086d00000047* - ID_MODEL_FROM_DATABASE=Core Processor Secondary PCI Express Root Port -@@ -54816,202 +54816,202 @@ pci:v00008086d00000082* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] - - pci:v00008086d00000082sv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) - - pci:v00008086d00000082sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) - - pci:v00008086d00000082sv00008086sd00001307* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 BG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 BG) - - pci:v00008086d00000082sv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) - - pci:v00008086d00000082sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) - - pci:v00008086d00000083* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] - - pci:v00008086d00000083sv00008086sd00001205* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001206* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000083sv00008086sd00001225* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001226* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000083sv00008086sd00001305* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000083sv00008086sd00001325* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000083sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000084* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] - - pci:v00008086d00000084sv00008086sd00001215* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000084sv00008086sd00001216* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000084sv00008086sd00001315* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BGN) - - pci:v00008086d00000084sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1000 [Condor Peak] (Centrino Wireless-N 1000 BG) - - pci:v00008086d00000085* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] - - pci:v00008086d00000085sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 AGN) - - pci:v00008086d00000085sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6205 [Taylor Peak] (Centrino Advanced-N 6205 ABG) - - pci:v00008086d00000087* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] - - pci:v00008086d00000087sv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) - - pci:v00008086d00000087sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) - - pci:v00008086d00000087sv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) - - pci:v00008086d00000087sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) - - pci:v00008086d00000089* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] - - pci:v00008086d00000089sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 AGN) - - pci:v00008086d00000089sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] (Centrino Advanced-N + WiMAX 6250 2x2 ABG) - - pci:v00008086d0000008A* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] - - pci:v00008086d0000008Asv00008086sd00005305* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) - - pci:v00008086d0000008Asv00008086sd00005307* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) - - pci:v00008086d0000008Asv00008086sd00005325* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) - - pci:v00008086d0000008Asv00008086sd00005327* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) - - pci:v00008086d0000008B* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] - - pci:v00008086d0000008Bsv00008086sd00005315* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BGN) - - pci:v00008086d0000008Bsv00008086sd00005317* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 1030 [Rainbow Peak] (Centrino Wireless-N 1030 BG) - - pci:v00008086d00000090* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] - - pci:v00008086d00000090sv00008086sd00005211* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) - - pci:v00008086d00000090sv00008086sd00005215* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) - - pci:v00008086d00000090sv00008086sd00005216* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) - - pci:v00008086d00000091* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] - - pci:v00008086d00000091sv00008086sd00005201* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) - - pci:v00008086d00000091sv00008086sd00005205* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) - - pci:v00008086d00000091sv00008086sd00005206* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) - - pci:v00008086d00000091sv00008086sd00005207* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BG) - - pci:v00008086d00000091sv00008086sd00005221* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 AGN) - - pci:v00008086d00000091sv00008086sd00005225* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 BGN) - - pci:v00008086d00000091sv00008086sd00005226* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6230 [Rainbow Peak] (Centrino Advanced-N 6230 ABG) - - pci:v00008086d00000100* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller - - pci:v00008086d00000100sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (XPS 8300) - - pci:v00008086d00000100sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67/P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (P8P67/P8H67 Series Motherboard) - - pci:v00008086d00000101* - ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port - - pci:v00008086d00000101sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (Vostro 3350) - - pci:v00008086d00000101sv0000106Bsd000000DC* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00000102* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller - - pci:v00008086d00000102sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (XPS 8300) - - pci:v00008086d00000102sv00001043sd00000102* -- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (P8H67 Series Motherboard) - - pci:v00008086d00000104* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller - - pci:v00008086d00000104sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Precision M4600) - - pci:v00008086d00000104sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3350) - - pci:v00008086d00000104sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (Vostro 3750) - - pci:v00008086d00000104sv0000106Bsd000000DC* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family DRAM Controller (MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00000105* - ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port - - pci:v00008086d00000105sv0000106Bsd000000DC* -- ID_MODEL_FROM_DATABASE=MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00000106* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller -@@ -55044,7 +55044,7 @@ pci:v00008086d00000116* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller - - pci:v00008086d00000116sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3750) - - pci:v00008086d00000122* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller -@@ -55053,64 +55053,64 @@ pci:v00008086d00000126* - ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller - - pci:v00008086d00000126sv00001028sd000004CC* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=2nd Generation Core Processor Family Integrated Graphics Controller (Vostro 3350) - - pci:v00008086d00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller - - pci:v00008086d00000150sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) - - pci:v00008086d00000150sv00001849sd00000150* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) - - pci:v00008086d00000151* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - - pci:v00008086d00000151sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (N56VZ) - - pci:v00008086d00000151sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) - - pci:v00008086d00000151sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8H77-I Motherboard) - - pci:v00008086d00000151sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) - - pci:v00008086d00000152* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - - pci:v00008086d00000152sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8H77-I Motherboard) - - pci:v00008086d00000153* - ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem - - pci:v00008086d00000153sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=3rd Gen Core Processor Thermal Subsystem (Zenbook Prime UX31A) - - pci:v00008086d00000154* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller - - pci:v00008086d00000154sv00001025sd00000813* -- ID_MODEL_FROM_DATABASE=Aspire R7-571 -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Aspire R7-571) - - pci:v00008086d00000154sv0000103Csd000017F6* -- ID_MODEL_FROM_DATABASE=ProBook 4540s -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (ProBook 4540s) - - pci:v00008086d00000154sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (N56VZ) - - pci:v00008086d00000154sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor DRAM Controller (Zenbook Prime UX31A) - - pci:v00008086d00000155* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - - pci:v00008086d00000155sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (Server Board S1200BTS) - - pci:v00008086d00000156* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller -@@ -55119,10 +55119,10 @@ pci:v00008086d00000158* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller - - pci:v00008086d00000158sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (P8 series motherboard) - - pci:v00008086d00000158sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/Ivy Bridge DRAM Controller (Server Board S1200BTS) - - pci:v00008086d00000159* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port -@@ -55137,7 +55137,7 @@ pci:v00008086d0000015D* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port - - pci:v00008086d0000015Dsv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (P8 series motherboard) - - pci:v00008086d0000015E* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller -@@ -55146,22 +55146,22 @@ pci:v00008086d00000162* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - - pci:v00008086d00000162sv00001849sd00000162* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) - - pci:v00008086d00000166* - ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller - - pci:v00008086d00000166sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (Zenbook Prime UX31A) - - pci:v00008086d00000166sv00001043sd00002103* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=3rd Gen Core processor Graphics Controller (N56VZ) - - pci:v00008086d0000016A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - - pci:v00008086d0000016Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8B WS Motherboard) - - pci:v00008086d00000172* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller -@@ -55179,19 +55179,19 @@ pci:v00008086d00000326* - ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A - - pci:v00008086d00000326sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (ProLiant DL140 G2) - - pci:v00008086d00000326sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6700/6702PXH I/OxAPIC Interrupt Controller A (CR11/VR11 Single Board Computer) - - pci:v00008086d00000327* - ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B - - pci:v00008086d00000327sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (ProLiant DL140 G2) - - pci:v00008086d00000327sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6700PXH I/OxAPIC Interrupt Controller B (CR11/VR11 Single Board Computer) - - pci:v00008086d00000329* - ID_MODEL_FROM_DATABASE=6700PXH PCI Express-to-PCI Bridge A -@@ -55260,7 +55260,7 @@ pci:v00008086d00000416* - ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller - - pci:v00008086d00000416sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller (ThinkPad T440p) - - pci:v00008086d0000041A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller -@@ -55365,16 +55365,16 @@ pci:v00008086d00000600* - ID_MODEL_FROM_DATABASE=RAID Controller - - pci:v00008086d00000600sv00008086sd00000136* -- ID_MODEL_FROM_DATABASE=SRCU31L -+ ID_MODEL_FROM_DATABASE=RAID Controller (SRCU31L) - - pci:v00008086d00000600sv00008086sd000001AF* -- ID_MODEL_FROM_DATABASE=SRCZCR -+ ID_MODEL_FROM_DATABASE=RAID Controller (SRCZCR) - - pci:v00008086d00000600sv00008086sd000001C1* -- ID_MODEL_FROM_DATABASE=ICP Vortex GDT8546RZ -+ ID_MODEL_FROM_DATABASE=RAID Controller (ICP Vortex GDT8546RZ) - - pci:v00008086d00000600sv00008086sd000001F7* -- ID_MODEL_FROM_DATABASE=SCRU32 -+ ID_MODEL_FROM_DATABASE=RAID Controller (SCRU32) - - pci:v00008086d0000061F* - ID_MODEL_FROM_DATABASE=80303 I/O Processor -@@ -55467,301 +55467,301 @@ pci:v00008086d00000885* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 - - pci:v00008086d00000885sv00008086sd00001305* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) - - pci:v00008086d00000885sv00008086sd00001307* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) - - pci:v00008086d00000885sv00008086sd00001325* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) - - pci:v00008086d00000885sv00008086sd00001327* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) - - pci:v00008086d00000886* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 - - pci:v00008086d00000886sv00008086sd00001315* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BGN) - - pci:v00008086d00000886sv00008086sd00001317* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N + WiMAX 6150 (BG) - - pci:v00008086d00000887* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 - - pci:v00008086d00000887sv00008086sd00004062* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) - - pci:v00008086d00000887sv00008086sd00004462* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) - - pci:v00008086d00000888* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 - - pci:v00008086d00000888sv00008086sd00004262* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2230 (BGN) - - pci:v00008086d0000088E* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 - - pci:v00008086d0000088Esv00008086sd00004060* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) - - pci:v00008086d0000088Esv00008086sd00004460* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) - - pci:v00008086d0000088F* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 - - pci:v00008086d0000088Fsv00008086sd00004260* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6235 (AGN) - - pci:v00008086d00000890* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 - - pci:v00008086d00000890sv00008086sd00004022* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000890sv00008086sd00004422* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000890sv00008086sd00004822* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000891* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 - - pci:v00008086d00000891sv00008086sd00004222* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 2200 (BGN) - - pci:v00008086d00000892* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 - - pci:v00008086d00000892sv00008086sd00000062* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) - - pci:v00008086d00000892sv00008086sd00000462* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) - - pci:v00008086d00000893* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 - - pci:v00008086d00000893sv00008086sd00000262* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 135 (BGN) - - pci:v00008086d00000894* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 - - pci:v00008086d00000894sv00008086sd00000022* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000894sv00008086sd00000422* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000894sv00008086sd00000822* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000895* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 - - pci:v00008086d00000895sv00008086sd00000222* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 105 (BGN) - - pci:v00008086d00000896* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 - - pci:v00008086d00000896sv00008086sd00005005* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) - - pci:v00008086d00000896sv00008086sd00005007* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) - - pci:v00008086d00000896sv00008086sd00005025* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) - - pci:v00008086d00000896sv00008086sd00005027* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) - - pci:v00008086d00000897* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 - - pci:v00008086d00000897sv00008086sd00005015* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BGN) - - pci:v00008086d00000897sv00008086sd00005017* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG) - - pci:v00008086d000008AE* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 - - pci:v00008086d000008AEsv00008086sd00001005* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) - - pci:v00008086d000008AEsv00008086sd00001007* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) - - pci:v00008086d000008AEsv00008086sd00001025* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) - - pci:v00008086d000008AEsv00008086sd00001027* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) - - pci:v00008086d000008AF* - ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 - - pci:v00008086d000008AFsv00008086sd00001015* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BGN -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BGN) - - pci:v00008086d000008AFsv00008086sd00001017* -- ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 BG -+ ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100 (BG) - - pci:v00008086d000008B1* - ID_MODEL_FROM_DATABASE=Wireless 7260 - - pci:v00008086d000008B1sv00008086sd00004060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004062* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004160* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004162* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004460* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004462* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd00004470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000486E* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004870* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004A6C* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004A6E* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd00004A70* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000C020* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C062* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000C160* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C162* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B1sv00008086sd0000C420* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C460* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C462* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B1sv00008086sd0000C470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B2* - ID_MODEL_FROM_DATABASE=Wireless 7260 - - pci:v00008086d000008B2sv00008086sd00004220* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd00004260* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd00004262* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd00004270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B2sv00008086sd0000C220* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd0000C260* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd0000C262* -- ID_MODEL_FROM_DATABASE=Wireless-N 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Wireless-N 7260) - - pci:v00008086d000008B2sv00008086sd0000C270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7260 -+ ID_MODEL_FROM_DATABASE=Wireless 7260 (Dual Band Wireless-AC 7260) - - pci:v00008086d000008B3* - ID_MODEL_FROM_DATABASE=Wireless 3160 - - pci:v00008086d000008B3sv00008086sd00000060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-N 3160) - - pci:v00008086d000008B3sv00008086sd00000062* -- ID_MODEL_FROM_DATABASE=Wireless-N 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless-N 3160) - - pci:v00008086d000008B3sv00008086sd00000070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B3sv00008086sd00000170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B3sv00008086sd00000470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B3sv00008086sd00008060* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless N-3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless N-3160) - - pci:v00008086d000008B3sv00008086sd00008062* -- ID_MODEL_FROM_DATABASE=Wireless N-3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Wireless N-3160) - - pci:v00008086d000008B3sv00008086sd00008070* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008B3sv00008086sd00008170* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008B3sv00008086sd00008470* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008B4* - ID_MODEL_FROM_DATABASE=Wireless 3160 - - pci:v00008086d000008B4sv00008086sd00000270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless-AC 3160) - - pci:v00008086d000008B4sv00008086sd00008270* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless AC 3160 -+ ID_MODEL_FROM_DATABASE=Wireless 3160 (Dual Band Wireless AC 3160) - - pci:v00008086d000008CF* - ID_MODEL_FROM_DATABASE=Atom Processor Z2760 Integrated Graphics Controller -@@ -55770,106 +55770,106 @@ pci:v00008086d0000095A* - ID_MODEL_FROM_DATABASE=Wireless 7265 - - pci:v00008086d0000095Asv00008086sd00001010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005000* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005002* -- ID_MODEL_FROM_DATABASE=Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd0000500A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005012* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005020* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd0000502A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005090* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005100* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd0000510A* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005110* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005112* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005190* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005400* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005410* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005420* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Asv00008086sd00005490* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00005590* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009012* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009110* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009112* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009210* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009310* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009410* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Asv00008086sd00009510* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095B* - ID_MODEL_FROM_DATABASE=Wireless 7265 - - pci:v00008086d0000095Bsv00008086sd00005200* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-N 7265) - - pci:v00008086d0000095Bsv00008086sd00005202* -- ID_MODEL_FROM_DATABASE=Wireless-N 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Wireless-N 7265) - - pci:v00008086d0000095Bsv00008086sd00005210* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Bsv00008086sd00005290* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Bsv00008086sd00005302* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d0000095Bsv00008086sd00005310* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265 -+ ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265) - - pci:v00008086d00000960* - ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor/Bridge -@@ -55884,7 +55884,7 @@ pci:v00008086d00000A04* - ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller - - pci:v00008086d00000A04sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller (ThinkPad X240) - - pci:v00008086d00000A06* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller -@@ -55893,13 +55893,13 @@ pci:v00008086d00000A0C* - ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller - - pci:v00008086d00000A0Csv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Haswell-ULT HD Audio Controller (ThinkPad X240) - - pci:v00008086d00000A16* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller - - pci:v00008086d00000A16sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller (ThinkPad X240) - - pci:v00008086d00000A22* - ID_MODEL_FROM_DATABASE=Haswell-ULT Integrated Graphics Controller -@@ -55917,7 +55917,7 @@ pci:v00008086d00000BE1* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller - - pci:v00008086d00000BE1sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller (D270S/D250S Motherboard) - - pci:v00008086d00000BE2* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller -@@ -55980,7 +55980,7 @@ pci:v00008086d00000BF5* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller - - pci:v00008086d00000BF5sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller (D270S/D250S Motherboard) - - pci:v00008086d00000BF6* - ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx DRAM Controller -@@ -55998,10 +55998,10 @@ pci:v00008086d00000C04* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller - - pci:v00008086d00000C04sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ZBook 15) - - pci:v00008086d00000C04sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (ThinkPad T440p) - - pci:v00008086d00000C05* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller -@@ -56016,7 +56016,7 @@ pci:v00008086d00000C0C* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller - - pci:v00008086d00000C0Csv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (ThinkPad T440p) - - pci:v00008086d00000C46* - ID_MODEL_FROM_DATABASE=Atom Processor S1200 PCI Express Root Port 1 -@@ -56787,34 +56787,34 @@ pci:v00008086d00001000* - ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001000sv00000E11sd0000B0DF* -- ID_MODEL_FROM_DATABASE=NC6132 Gigabit Ethernet Adapter (1000-SX) -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6132 Gigabit Ethernet Adapter (1000-SX)) - - pci:v00008086d00001000sv00000E11sd0000B0E0* -- ID_MODEL_FROM_DATABASE=NC6133 Gigabit Ethernet Adapter (1000-LX) -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6133 Gigabit Ethernet Adapter (1000-LX)) - - pci:v00008086d00001000sv00000E11sd0000B123* -- ID_MODEL_FROM_DATABASE=NC6134 Gigabit Ethernet Adapter (1000-LX) -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (NC6134 Gigabit Ethernet Adapter (1000-LX)) - - pci:v00008086d00001000sv00001014sd00000119* -- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) - - pci:v00008086d00001000sv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) (PRO/1000 Gigabit Server Adapter) - - pci:v00008086d00001001* - ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001001sv00000E11sd0000004A* -- ID_MODEL_FROM_DATABASE=NC6136 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (NC6136 Gigabit Server Adapter) - - pci:v00008086d00001001sv00001014sd000001EA* -- ID_MODEL_FROM_DATABASE=Netfinity Gigabit Ethernet SX Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (Netfinity Gigabit Ethernet SX Adapter) - - pci:v00008086d00001001sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) - - pci:v00008086d00001001sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 F Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Fiber) (PRO/1000 F Server Adapter) - - pci:v00008086d00001002* - ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II -@@ -56823,64 +56823,64 @@ pci:v00008086d00001002sv00008086sd0000200E* - ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II - - pci:v00008086d00001002sv00008086sd00002013* -- ID_MODEL_FROM_DATABASE=Pro 100 SR Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 SR Mobile Combo Adapter) - - pci:v00008086d00001002sv00008086sd00002017* -- ID_MODEL_FROM_DATABASE=Pro 100 S Combo Mobile Adapter -+ ID_MODEL_FROM_DATABASE=Pro 100 LAN+Modem 56 Cardbus II (Pro 100 S Combo Mobile Adapter) - - pci:v00008086d00001004* - ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001004sv00000E11sd00000049* -- ID_MODEL_FROM_DATABASE=NC7132 Gigabit Upgrade Module -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7132 Gigabit Upgrade Module) - - pci:v00008086d00001004sv00000E11sd0000B1A4* -- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (NC7131 Gigabit Server Adapter) - - pci:v00008086d00001004sv00001014sd000010F2* -- ID_MODEL_FROM_DATABASE=Gigabit Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (Gigabit Ethernet Server Adapter) - - pci:v00008086d00001004sv00008086sd00001004* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) - - pci:v00008086d00001004sv00008086sd00002004* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Server Adapter -+ ID_MODEL_FROM_DATABASE=82543GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Server Adapter) - - pci:v00008086d00001008* - ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001008sv00001014sd00000269* -- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) - - pci:v00008086d00001008sv00001028sd0000011B* -- ID_MODEL_FROM_DATABASE=PowerEdge 1650/2550 -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PowerEdge 1650/2550) - - pci:v00008086d00001008sv00001028sd0000011C* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) - - pci:v00008086d00001008sv00008086sd00001107* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) - - pci:v00008086d00001008sv00008086sd00002107* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Server Adapter) - - pci:v00008086d00001008sv00008086sd00002110* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Desktop Adapter) - - pci:v00008086d00001008sv00008086sd00003108* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Copper) (PRO/1000 XT Network Connection) - - pci:v00008086d00001009* - ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001009sv00001014sd00000268* -- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) - - pci:v00008086d00001009sv00008086sd00001109* -- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) - - pci:v00008086d00001009sv00008086sd00002109* -- ID_MODEL_FROM_DATABASE=PRO/1000 XF Server Adapter -+ ID_MODEL_FROM_DATABASE=82544EI Gigabit Ethernet Controller (Fiber) (PRO/1000 XF Server Adapter) - - pci:v00008086d0000100A* - ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller -@@ -56889,286 +56889,286 @@ pci:v00008086d0000100C* - ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000100Csv00008086sd00001112* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) - - pci:v00008086d0000100Csv00008086sd00002112* -- ID_MODEL_FROM_DATABASE=PRO/1000 T Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (Copper) (PRO/1000 T Desktop Adapter) - - pci:v00008086d0000100D* - ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) - - pci:v00008086d0000100Dsv00001028sd00000123* -- ID_MODEL_FROM_DATABASE=PRO/1000 XT Network Connection -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (PRO/1000 XT Network Connection) - - pci:v00008086d0000100Dsv00001079sd0000891F* -- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) - - pci:v00008086d0000100Dsv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (CT8 mainboard) - - pci:v00008086d0000100Dsv00008086sd0000110D* -- ID_MODEL_FROM_DATABASE=82544GC Based Network Connection -+ ID_MODEL_FROM_DATABASE=82544GC Gigabit Ethernet Controller (LOM) (82544GC Based Network Connection) - - pci:v00008086d0000100E* - ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller - - pci:v00008086d0000100Esv00001014sd00000265* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Esv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Esv00001014sd0000026A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Esv00001028sd0000002E* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX260) - - pci:v00008086d0000100Esv00001028sd00000134* -- ID_MODEL_FROM_DATABASE=PowerEdge 600SC -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PowerEdge 600SC) - - pci:v00008086d0000100Esv00001028sd00000151* -- ID_MODEL_FROM_DATABASE=Optiplex GX270 -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (Optiplex GX270) - - pci:v00008086d0000100Esv0000107Bsd00008920* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d0000100Esv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (QEMU Virtual Machine) - - pci:v00008086d0000100Esv00008086sd0000001E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d0000100Esv00008086sd0000002E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d0000100Esv00008086sd00001376* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000100Esv00008086sd00001476* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000100F* - ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000100Fsv00001014sd00000269* -- ID_MODEL_FROM_DATABASE=iSeries 1000/100/10 Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (iSeries 1000/100/10 Ethernet Adapter) - - pci:v00008086d0000100Fsv00001014sd0000028E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Fsv000015ADsd00000750* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Single Port Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter) - - pci:v00008086d0000100Fsv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Network Connection) - - pci:v00008086d0000100Fsv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Server Adapter) - - pci:v00008086d00001010* - ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001010sv00000E11sd000000DB* -- ID_MODEL_FROM_DATABASE=NC7170 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (NC7170 Gigabit Server Adapter) - - pci:v00008086d00001010sv00001014sd0000027C* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Adapter) - - pci:v00008086d00001010sv000015ADsd00000760* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Adapter) - - pci:v00008086d00001010sv000018FBsd00007872* -- ID_MODEL_FROM_DATABASE=RESlink-X -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (RESlink-X) - - pci:v00008086d00001010sv00001FC1sd00000026* -- ID_MODEL_FROM_DATABASE=Niagara 2260 Bypass Card -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (Niagara 2260 Bypass Card) - - pci:v00008086d00001010sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CT8 mainboard) - - pci:v00008086d00001010sv00004C53sd000010A0* -- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (CA3/CR3 mainboard) - - pci:v00008086d00001010sv00008086sd00001011* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d00001010sv00008086sd00001012* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d00001010sv00008086sd0000101A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (PRO/1000 MT Dual Port Network Connection) - - pci:v00008086d00001010sv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Copper) (SE7501HG2 Mainboard) - - pci:v00008086d00001011* - ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001011sv00001014sd00000268* -- ID_MODEL_FROM_DATABASE=iSeries Gigabit Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (iSeries Gigabit Ethernet Adapter) - - pci:v00008086d00001011sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter) - - pci:v00008086d00001011sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter (LX) -+ ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Server Adapter (LX)) - - pci:v00008086d00001012* - ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) - - pci:v00008086d00001012sv00000E11sd000000DC* -- ID_MODEL_FROM_DATABASE=NC6170 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (NC6170 Gigabit Server Adapter) - - pci:v00008086d00001012sv00008086sd00001012* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (Fiber) (PRO/1000 MF Dual Port Server Adapter) - - pci:v00008086d00001013* - ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller - - pci:v00008086d00001013sv00008086sd00000013* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001013sv00008086sd00001013* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001013sv00008086sd00001113* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d00001014* - ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller - - pci:v00008086d00001014sv00008086sd00000014* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Connection -+ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Desktop Connection) - - pci:v00008086d00001014sv00008086sd00001014* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001015* - ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) - - pci:v00008086d00001015sv00008086sd00001015* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EM Gigabit Ethernet Controller (LOM) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001016* - ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) - - pci:v00008086d00001016sv00001014sd0000052C* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001016sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001016sv00008086sd00001016* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001017* - ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller - - pci:v00008086d00001017sv00008086sd00001017* -- ID_MODEL_FROM_DATABASE=PR0/1000 MT Desktop Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (PR0/1000 MT Desktop Connection) - - pci:v00008086d00001018* - ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller - - pci:v00008086d00001018sv00008086sd00001018* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541EI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001019* - ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller - - pci:v00008086d00001019sv00001458sd00001019* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d00001019sv00001458sd0000E000* -- ID_MODEL_FROM_DATABASE=Intel Gigabit Ethernet (Kenai II) -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel Gigabit Ethernet (Kenai II)) - - pci:v00008086d00001019sv00008086sd00001019* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Desktop Connection -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (PRO/1000 CT Desktop Connection) - - pci:v00008086d00001019sv00008086sd0000301F* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D865PERL mainboard) - - pci:v00008086d00001019sv00008086sd00003025* -- ID_MODEL_FROM_DATABASE=D875PBZ motherboard -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (D875PBZ motherboard) - - pci:v00008086d00001019sv00008086sd0000302C* -- ID_MODEL_FROM_DATABASE=Intel 82865G Mainboard (D865GBF) -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Intel 82865G Mainboard (D865GBF)) - - pci:v00008086d00001019sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (S875WP1-E mainboard) - - pci:v00008086d0000101A* - ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) - - pci:v00008086d0000101Asv00008086sd0000101A* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82547EI Gigabit Ethernet Controller (Mobile) (PRO/1000 CT Mobile Connection) - - pci:v00008086d0000101D* - ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller - - pci:v00008086d0000101Dsv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546EB Gigabit Ethernet Controller (PRO/1000 MT Quad Port Server Adapter) - - pci:v00008086d0000101E* - ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) - - pci:v00008086d0000101Esv00001014sd00000549* -- ID_MODEL_FROM_DATABASE=Thinkpad -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (Thinkpad) - - pci:v00008086d0000101Esv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d0000101Esv00008086sd0000101E* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82540EP Gigabit Ethernet Controller (Mobile) (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001026* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - - pci:v00008086d00001026sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d00001026sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (Precision 470) - - pci:v00008086d00001026sv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) - - pci:v00008086d00001026sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) - - pci:v00008086d00001026sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Adapter) - - pci:v00008086d00001026sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 GT Server Adapter) - - pci:v00008086d00001026sv00008086sd00001026* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Server Connection -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MT Server Connection) - - pci:v00008086d00001027* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - - pci:v00008086d00001027sv0000103Csd00003103* -- ID_MODEL_FROM_DATABASE=NC310F PCI-X Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (NC310F PCI-X Gigabit Server Adapter) - - pci:v00008086d00001027sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) - - pci:v00008086d00001027sv00008086sd00001002* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) - - pci:v00008086d00001027sv00008086sd00001003* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter(LX) -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter(LX)) - - pci:v00008086d00001027sv00008086sd00001027* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Server Adapter -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MF Server Adapter) - - pci:v00008086d00001028* - ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller - - pci:v00008086d00001028sv00008086sd00001028* -- ID_MODEL_FROM_DATABASE=PRO/1000 MB Server Connection -+ ID_MODEL_FROM_DATABASE=82545GM Gigabit Ethernet Controller (PRO/1000 MB Server Connection) - - pci:v00008086d00001029* - ID_MODEL_FROM_DATABASE=82559 Ethernet Controller -@@ -57180,31 +57180,31 @@ pci:v00008086d00001031* - ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller - - pci:v00008086d00001031sv00001014sd00000209* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (ThinkPad A/T/X Series) - - pci:v00008086d00001031sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00001031sv0000104Dsd0000813C* -- ID_MODEL_FROM_DATABASE=Vaio PCG-GRV616G -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (Vaio PCG-GRV616G) - - pci:v00008086d00001031sv0000107Bsd00005350* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C000* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C003* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00001031sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (vpr Matrix 170B4) - - pci:v00008086d00001032* - ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VE Ethernet Controller -@@ -57228,16 +57228,16 @@ pci:v00008086d00001038* - ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller - - pci:v00008086d00001038sv00000E11sd00000098* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller (Evo N600c) - - pci:v00008086d00001039* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller - - pci:v00008086d00001039sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (NetVista A30p) - - pci:v00008086d00001039sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH1 -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (LOM) Ethernet Controller (PC8 onboard ethernet ETH1) - - pci:v00008086d0000103A* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (CNR) Ethernet Controller -@@ -57252,13 +57252,13 @@ pci:v00008086d0000103D* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller - - pci:v00008086d0000103Dsv00001014sd00000522* -- ID_MODEL_FROM_DATABASE=ThinkPad R40 -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (ThinkPad R40) - - pci:v00008086d0000103Dsv00001028sd00002002* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (Latitude D500) - - pci:v00008086d0000103Dsv00008086sd0000103D* -- ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller -+ ID_MODEL_FROM_DATABASE=82801DB PRO/100 VE (MOB) Ethernet Controller (82562EZ 10/100 Ethernet Controller) - - pci:v00008086d0000103E* - ID_MODEL_FROM_DATABASE=82801DB PRO/100 VM (MOB) Ethernet Controller -@@ -57267,43 +57267,43 @@ pci:v00008086d00001040* - ID_MODEL_FROM_DATABASE=536EP Data Fax Modem - - pci:v00008086d00001040sv000016BEsd00001040* -- ID_MODEL_FROM_DATABASE=V.9X DSP Data Fax Modem -+ ID_MODEL_FROM_DATABASE=536EP Data Fax Modem (V.9X DSP Data Fax Modem) - - pci:v00008086d00001043* - ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter - - pci:v00008086d00001043sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (tc1100 tablet) - - pci:v00008086d00001043sv00008086sd00002522* -- ID_MODEL_FROM_DATABASE=Samsung X10/P30 integrated WLAN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Samsung X10/P30 integrated WLAN) - - pci:v00008086d00001043sv00008086sd00002527* -- ID_MODEL_FROM_DATABASE=MIM2000/Centrino -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (MIM2000/Centrino) - - pci:v00008086d00001043sv00008086sd00002561* -- ID_MODEL_FROM_DATABASE=Dell Latitude D800 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Dell Latitude D800) - - pci:v00008086d00001043sv00008086sd00002581* -- ID_MODEL_FROM_DATABASE=Toshiba Satellite M10 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless LAN 2100 3B Mini PCI Adapter (Toshiba Satellite M10) - - pci:v00008086d00001048* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d00001048sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001048sv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001049* - ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection - - pci:v00008086d00001049sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (Compaq 6910p) - - pci:v00008086d00001049sv000017AAsd000020B9* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82566MM Gigabit Network Connection (ThinkPad T61/R61) - - pci:v00008086d0000104A* - ID_MODEL_FROM_DATABASE=82566DM Gigabit Network Connection -@@ -57321,22 +57321,22 @@ pci:v00008086d00001050* - ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller - - pci:v00008086d00001050sv00001028sd0000019D* -- ID_MODEL_FROM_DATABASE=Dimension 3000 -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Dimension 3000) - - pci:v00008086d00001050sv00001462sd0000728C* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d00001050sv00001462sd0000758C* -- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (MS-6758 (875P Neo)) - - pci:v00008086d00001050sv00008086sd00003020* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (D865PERL mainboard) - - pci:v00008086d00001050sv00008086sd0000302F* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (Desktop Board D865GBF) - - pci:v00008086d00001050sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82562EZ 10/100 Ethernet Controller (S875WP1-E mainboard) - - pci:v00008086d00001051* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) integrated LAN Controller -@@ -57369,70 +57369,70 @@ pci:v00008086d0000105E* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d0000105Esv0000103Csd00007044* -- ID_MODEL_FROM_DATABASE=NC360T PCI Express Dual Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (NC360T PCI Express Dual Port Gigabit Server Adapter) - - pci:v00008086d0000105Esv0000103Csd0000704E* -- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T (PCIe) [AD337A] -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-T (PCIe) [AD337A]) - - pci:v00008086d0000105Esv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d0000105Esv00001775sd00006003* -- ID_MODEL_FROM_DATABASE=Telum GE-QT -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Telum GE-QT) - - pci:v00008086d0000105Esv000018DFsd00001214* -- ID_MODEL_FROM_DATABASE=2x 1GbE, PCIe x1, dual Intel 82571EB chips -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (2x 1GbE, PCIe x1, dual Intel 82571EB chips) - - pci:v00008086d0000105Esv00008086sd0000005E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Connection) - - pci:v00008086d0000105Esv00008086sd0000105E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Network Connection) - - pci:v00008086d0000105Esv00008086sd000010D5* -- ID_MODEL_FROM_DATABASE=82571PT Gigabit PT Quad Port Server ExpressModule -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (82571PT Gigabit PT Quad Port Server ExpressModule) - - pci:v00008086d0000105Esv00008086sd0000115E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) - - pci:v00008086d0000105Esv00008086sd0000125E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) - - pci:v00008086d0000105Esv00008086sd0000135E* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Dual Port Server Adapter) - - pci:v00008086d0000105F* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d0000105Fsv0000103Csd0000704F* -- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-SX (PCIe) [AD338A] -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Dual Port 1000Base-SX (PCIe) [AD338A]) - - pci:v00008086d0000105Fsv00008086sd0000005A* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d0000105Fsv00008086sd0000115F* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d0000105Fsv00008086sd0000125F* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d0000105Fsv00008086sd0000135F* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PF Dual Port Server Adapter) - - pci:v00008086d00001060* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d00001060sv00008086sd00000060* -- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) - - pci:v00008086d00001060sv00008086sd00001060* -- ID_MODEL_FROM_DATABASE=PRO/1000 PB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PB Dual Port Server Connection) - - pci:v00008086d00001064* - ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller - - pci:v00008086d00001064sv00001043sd000080F8* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller (P5GD1-VW Mainboard) - - pci:v00008086d00001065* - ID_MODEL_FROM_DATABASE=82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller -@@ -57459,148 +57459,148 @@ pci:v00008086d00001075* - ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller - - pci:v00008086d00001075sv00001028sd00000165* -- ID_MODEL_FROM_DATABASE=PowerEdge 750 -+ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PowerEdge 750) - - pci:v00008086d00001075sv00008086sd00000075* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection -+ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) - - pci:v00008086d00001075sv00008086sd00001075* -- ID_MODEL_FROM_DATABASE=PRO/1000 CT Network Connection -+ ID_MODEL_FROM_DATABASE=82547GI Gigabit Ethernet Controller (PRO/1000 CT Network Connection) - - pci:v00008086d00001076* - ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller - - pci:v00008086d00001076sv00001028sd00000165* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00001028sd0000106D* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00008086sd00000076* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00008086sd00001076* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Connection) - - pci:v00008086d00001076sv00008086sd00001176* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter) - - pci:v00008086d00001076sv00008086sd00001276* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Network Adapter -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Network Adapter) - - pci:v00008086d00001077* - ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller - - pci:v00008086d00001077sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001077sv00008086sd00000077* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001077sv00008086sd00001077* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Mobile Connection -+ ID_MODEL_FROM_DATABASE=82541GI Gigabit Ethernet Controller (PRO/1000 MT Mobile Connection) - - pci:v00008086d00001078* - ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller - - pci:v00008086d00001078sv00008086sd00001078* -- ID_MODEL_FROM_DATABASE=82541ER-based Network Connection -+ ID_MODEL_FROM_DATABASE=82541ER Gigabit Ethernet Controller (82541ER-based Network Connection) - - pci:v00008086d00001079* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d00001079sv0000103Csd000012A6* -- ID_MODEL_FROM_DATABASE=Dual Port 1000Base-T [A9900A] -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000Base-T [A9900A]) - - pci:v00008086d00001079sv0000103Csd000012CF* -- ID_MODEL_FROM_DATABASE=Core Dual Port 1000Base-T [AB352A] -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Core Dual Port 1000Base-T [AB352A]) - - pci:v00008086d00001079sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (V5D Single Board Computer Gigabit Ethernet) - - pci:v00008086d00001079sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CE9) - - pci:v00008086d00001079sv00001FC1sd00000027* -- ID_MODEL_FROM_DATABASE=Niagara 2261 Failover NIC -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Niagara 2261 Failover NIC) - - pci:v00008086d00001079sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d00001079sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (CL9 mainboard) - - pci:v00008086d00001079sv00008086sd00000079* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) - - pci:v00008086d00001079sv00008086sd00001079* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Network Connection) - - pci:v00008086d00001079sv00008086sd00001179* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d00001079sv00008086sd0000117A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MT Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MT Dual Port Server Adapter) - - pci:v00008086d0000107A* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d0000107Asv0000103Csd000012A8* -- ID_MODEL_FROM_DATABASE=Dual Port 1000base-SX [A9899A] -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Dual Port 1000base-SX [A9899A]) - - pci:v00008086d0000107Asv00008086sd0000107A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) - - pci:v00008086d0000107Asv00008086sd0000127A* -- ID_MODEL_FROM_DATABASE=PRO/1000 MF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MF Dual Port Server Adapter) - - pci:v00008086d0000107B* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d0000107Bsv00008086sd0000007B* -- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) - - pci:v00008086d0000107Bsv00008086sd0000107B* -- ID_MODEL_FROM_DATABASE=PRO/1000 MB Dual Port Server Connection -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 MB Dual Port Server Connection) - - pci:v00008086d0000107C* - ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller - - pci:v00008086d0000107Csv00008086sd00001376* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000107Csv00008086sd00001476* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82541PI Gigabit Ethernet Controller (PRO/1000 GT Desktop Adapter) - - pci:v00008086d0000107D* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000107Dsv00008086sd00001082* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) - - pci:v00008086d0000107Dsv00008086sd00001084* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) - - pci:v00008086d0000107Dsv00008086sd00001092* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Server Adapter) - - pci:v00008086d0000107E* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) - - pci:v00008086d0000107Esv00008086sd00001084* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) - - pci:v00008086d0000107Esv00008086sd00001085* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) - - pci:v00008086d0000107Esv00008086sd00001094* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Server Adapter) - - pci:v00008086d0000107F* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller -@@ -57636,16 +57636,16 @@ pci:v00008086d0000108A* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller - - pci:v00008086d0000108Asv00008086sd0000108A* -- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) - - pci:v00008086d0000108Asv00008086sd0000118A* -- ID_MODEL_FROM_DATABASE=PRO/1000 P Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (PRO/1000 P Dual Port Server Adapter) - - pci:v00008086d0000108B* - ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) - - pci:v00008086d0000108Bsv00001462sd0000176C* -- ID_MODEL_FROM_DATABASE=on board on MSI 945P - NEO (MS-7176) -+ ID_MODEL_FROM_DATABASE=82573V Gigabit Ethernet Controller (Copper) (on board on MSI 945P - NEO (MS-7176)) - - pci:v00008086d0000108C* - ID_MODEL_FROM_DATABASE=82573E Gigabit Ethernet Controller (Copper) -@@ -57675,13 +57675,13 @@ pci:v00008086d00001096* - ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001096sv000015D9sd00001096* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Motherboard) - - pci:v00008086d00001096sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (X7DVL-E-O motherboard) - - pci:v00008086d00001096sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) (Intel S5000PSLSATA Server Board) - - pci:v00008086d00001097* - ID_MODEL_FROM_DATABASE=631xESB/632xESB DPT LAN Controller (Fiber) -@@ -57693,28 +57693,28 @@ pci:v00008086d00001099* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) - - pci:v00008086d00001099sv00008086sd00001099* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) - - pci:v00008086d0000109A* - ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller - - pci:v00008086d0000109Asv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=PRO/1000 PL -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL) - - pci:v00008086d0000109Asv000017AAsd00002001* -- ID_MODEL_FROM_DATABASE=ThinkPad T60 -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad T60) - - pci:v00008086d0000109Asv000017AAsd0000207E* -- ID_MODEL_FROM_DATABASE=ThinkPad X60/X60s -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (ThinkPad X60/X60s) - - pci:v00008086d0000109Asv00008086sd0000109A* -- ID_MODEL_FROM_DATABASE=PRO/1000 PL Network Connection -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (PRO/1000 PL Network Connection) - - pci:v00008086d0000109Asv00008086sd0000309C* -- ID_MODEL_FROM_DATABASE=Desktop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D945GTP) - - pci:v00008086d0000109Asv00008086sd000030A5* -- ID_MODEL_FROM_DATABASE=Desktop Board D975XBX -+ ID_MODEL_FROM_DATABASE=82573L Gigabit Ethernet Controller (Desktop Board D975XBX) - - pci:v00008086d0000109B* - ID_MODEL_FROM_DATABASE=82546GB PRO/1000 GF Quad Port Server Adapter -@@ -57723,10 +57723,10 @@ pci:v00008086d0000109E* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d0000109Esv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) - - pci:v00008086d0000109Esv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE CX4 Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE CX4 Server Adapter) - - pci:v00008086d000010A0* - ID_MODEL_FROM_DATABASE=82571EB PRO/1000 AT Quad Port Bypass Adapter -@@ -57738,19 +57738,19 @@ pci:v00008086d000010A4* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller - - pci:v00008086d000010A4sv00008086sd000010A4* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) - - pci:v00008086d000010A4sv00008086sd000011A4* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (PRO/1000 PT Quad Port Server Adapter) - - pci:v00008086d000010A5* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) - - pci:v00008086d000010A5sv00008086sd000010A5* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) - - pci:v00008086d000010A5sv00008086sd000010A6* -- ID_MODEL_FROM_DATABASE=PRO/1000 PF Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Fiber) (PRO/1000 PF Quad Port Server Adapter) - - pci:v00008086d000010A6* - ID_MODEL_FROM_DATABASE=82599EB 10-Gigabit Dummy Function -@@ -57759,7 +57759,7 @@ pci:v00008086d000010A7* - ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection - - pci:v00008086d000010A7sv00008086sd000010A8* -- ID_MODEL_FROM_DATABASE=82575EB Gigabit Riser Card -+ ID_MODEL_FROM_DATABASE=82575EB Gigabit Network Connection (82575EB Gigabit Riser Card) - - pci:v00008086d000010A9* - ID_MODEL_FROM_DATABASE=82575EB Gigabit Backplane Connection -@@ -57780,13 +57780,13 @@ pci:v00008086d000010B5* - ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) - - pci:v00008086d000010B5sv0000103Csd00003109* -- ID_MODEL_FROM_DATABASE=NC340T PCI-X Quad-port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (NC340T PCI-X Quad-port Gigabit Server Adapter) - - pci:v00008086d000010B5sv00008086sd00001099* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) - - pci:v00008086d000010B5sv00008086sd00001199* -- ID_MODEL_FROM_DATABASE=PRO/1000 GT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82546GB Gigabit Ethernet Controller (Copper) (PRO/1000 GT Quad Port Server Adapter) - - pci:v00008086d000010B6* - ID_MODEL_FROM_DATABASE=82598 10GbE PCI-Express Ethernet Controller -@@ -57795,13 +57795,13 @@ pci:v00008086d000010B9* - ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) - - pci:v00008086d000010B9sv0000103Csd0000704A* -- ID_MODEL_FROM_DATABASE=HP 110T PCIe Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (HP 110T PCIe Gigabit Server Adapter) - - pci:v00008086d000010B9sv00008086sd00001083* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) - - pci:v00008086d000010B9sv00008086sd00001093* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82572EI Gigabit Ethernet Controller (Copper) (PRO/1000 PT Desktop Adapter) - - pci:v00008086d000010BA* - ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper) -@@ -57813,22 +57813,22 @@ pci:v00008086d000010BC* - ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) - - pci:v00008086d000010BCsv0000103Csd0000704B* -- ID_MODEL_FROM_DATABASE=NC364T PCI Express Quad Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (NC364T PCI Express Quad Port Gigabit Server Adapter) - - pci:v00008086d000010BCsv0000108Esd000011BC* -- ID_MODEL_FROM_DATABASE=x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (x4 PCI-Express Quad Gigabit Ethernet UTP Low Profile Adapter) - - pci:v00008086d000010BCsv00008086sd000010BC* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) - - pci:v00008086d000010BCsv00008086sd000011BC* -- ID_MODEL_FROM_DATABASE=PRO/1000 PT Quad Port LP Server Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Gigabit Ethernet Controller (Copper) (PRO/1000 PT Quad Port LP Server Adapter) - - pci:v00008086d000010BD* - ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection - - pci:v00008086d000010BDsv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection (OptiPlex 755) - - pci:v00008086d000010BF* - ID_MODEL_FROM_DATABASE=82567LF Gigabit Network Connection -@@ -57837,7 +57837,7 @@ pci:v00008086d000010C0* - ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection - - pci:v00008086d000010C0sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82562V-2 10/100 Network Connection (Inspiron 530) - - pci:v00008086d000010C2* - ID_MODEL_FROM_DATABASE=82562G-2 10/100 Network Connection -@@ -57855,67 +57855,67 @@ pci:v00008086d000010C6* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection - - pci:v00008086d000010C6sv00008086sd0000A05F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) - - pci:v00008086d000010C6sv00008086sd0000A15F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit XF SR Dual Port Server Adapter) - - pci:v00008086d000010C7* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection - - pci:v00008086d000010C7sv00001014sd0000037F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C7sv00001014sd00000380* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) - - pci:v00008086d000010C7sv00008086sd0000A05F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C7sv00008086sd0000A15F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C7sv00008086sd0000A16F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF SR Server Adapter) - - pci:v00008086d000010C8* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection - - pci:v00008086d000010C8sv00008086sd0000A10C* -- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) - - pci:v00008086d000010C8sv00008086sd0000A11C* -- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) - - pci:v00008086d000010C8sv00008086sd0000A12C* -- ID_MODEL_FROM_DATABASE=10-Gigabit AT Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT Network Connection (10-Gigabit AT Server Adapter) - - pci:v00008086d000010C9* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010C9sv0000103Csd000031EF* -- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) - - pci:v00008086d000010C9sv0000103Csd0000323F* -- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual port Gigabit Server Adapter) - - pci:v00008086d000010C9sv000010A9sd00008028* -- ID_MODEL_FROM_DATABASE=UV-BaseIO dual-port GbE -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (UV-BaseIO dual-port GbE) - - pci:v00008086d000010C9sv000013A3sd00000037* -- ID_MODEL_FROM_DATABASE=DS4100 Secure Multi-Gigabit Server Adapter with Compression -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (DS4100 Secure Multi-Gigabit Server Adapter with Compression) - - pci:v00008086d000010C9sv000015D9sd0000A811* -- ID_MODEL_FROM_DATABASE=H8DGU -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (H8DGU) - - pci:v00008086d000010C9sv00008086sd0000A01C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) - - pci:v00008086d000010C9sv00008086sd0000A03C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) - - pci:v00008086d000010C9sv00008086sd0000A04C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Dual Port Server Adapter) - - pci:v00008086d000010CA* - ID_MODEL_FROM_DATABASE=82576 Virtual Function -@@ -57936,34 +57936,34 @@ pci:v00008086d000010D3* - ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection - - pci:v00008086d000010D3sv0000103Csd00003250* -- ID_MODEL_FROM_DATABASE=NC112T PCI Express single Port Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (NC112T PCI Express single Port Gigabit Server Adapter) - - pci:v00008086d000010D3sv00001043sd00008369* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Motherboard) - - pci:v00008086d000010D3sv000010A9sd00008029* -- ID_MODEL_FROM_DATABASE=Prism XL Single Port Gigabit Ethernet -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Prism XL Single Port Gigabit Ethernet) - - pci:v00008086d000010D3sv000015D9sd0000060A* -- ID_MODEL_FROM_DATABASE=X7SPA-H/X7SPA-HF Motherboard -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (X7SPA-H/X7SPA-HF Motherboard) - - pci:v00008086d000010D3sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (C7SIM-Q Motherboard) - - pci:v00008086d000010D3sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Gigabit CT2 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT2 Desktop Adapter) - - pci:v00008086d000010D3sv00008086sd0000357A* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Server Board S1200BTS) - - pci:v00008086d000010D3sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=Gigabit CT Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Gigabit CT Desktop Adapter) - - pci:v00008086d000010D3sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC1-GROOVE) - - pci:v00008086d000010D3sv0000E4BFsd000050C2* -- ID_MODEL_FROM_DATABASE=PC2-LIMBO -+ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PC2-LIMBO) - - pci:v00008086d000010D4* - ID_MODEL_FROM_DATABASE=Matrox Concord GE (customized Intel 82574) -@@ -57975,13 +57975,13 @@ pci:v00008086d000010D6* - ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection - - pci:v00008086d000010D6sv00008086sd000010D6* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010D6sv00008086sd0000145A* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010D6sv00008086sd0000147A* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010D8* - ID_MODEL_FROM_DATABASE=82599EB 10 Gigabit Unprogrammed -@@ -57990,13 +57990,13 @@ pci:v00008086d000010D9* - ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter - - pci:v00008086d000010D9sv0000103Csd00001716* -- ID_MODEL_FROM_DATABASE=NC360m Dual Port 1GbE BL-c Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Dual Port Gigabit Mezzanine Adapter (NC360m Dual Port 1GbE BL-c Adapter) - - pci:v00008086d000010DA* - ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter - - pci:v00008086d000010DAsv0000103Csd00001717* -- ID_MODEL_FROM_DATABASE=NC364m Quad Port 1GbE BL-c Adapter -+ ID_MODEL_FROM_DATABASE=82571EB Quad Port Gigabit Mezzanine Adapter (NC364m Quad Port 1GbE BL-c Adapter) - - pci:v00008086d000010DB* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit Dual Port Network Connection -@@ -58014,13 +58014,13 @@ pci:v00008086d000010E1* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection - - pci:v00008086d000010E1sv00008086sd0000A15F* -- ID_MODEL_FROM_DATABASE=10-Gigabit SR Dual Port Express Module -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit SR Dual Port Express Module) - - pci:v00008086d000010E2* - ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection - - pci:v00008086d000010E2sv00008086sd000010E2* -- ID_MODEL_FROM_DATABASE=Gigabit VT Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82575GB Gigabit Network Connection (Gigabit VT Quad Port Server Adapter) - - pci:v00008086d000010E5* - ID_MODEL_FROM_DATABASE=82567LM-4 Gigabit Network Connection -@@ -58029,37 +58029,37 @@ pci:v00008086d000010E6* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010E6sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) - - pci:v00008086d000010E6sv00008086sd0000A02F* -- ID_MODEL_FROM_DATABASE=Gigabit EF Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit EF Dual Port Server Adapter) - - pci:v00008086d000010E7* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010E7sv0000103Csd000031FF* -- ID_MODEL_FROM_DATABASE=NC362i Integrated Dual Port BL-c Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (NC362i Integrated Dual Port BL-c Gigabit Server Adapter) - - pci:v00008086d000010E8* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d000010E8sv00008086sd0000A02B* -- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) - - pci:v00008086d000010E8sv00008086sd0000A02C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET Quad Port Server Adapter) - - pci:v00008086d000010EA* - ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection - - pci:v00008086d000010EAsv00001028sd0000040A* -- ID_MODEL_FROM_DATABASE=Latitude E6410 -+ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6410) - - pci:v00008086d000010EAsv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (Latitude E6510) - - pci:v00008086d000010EAsv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=82577LM Gigabit Network Connection (PC1-GROOVE) - - pci:v00008086d000010EB* - ID_MODEL_FROM_DATABASE=82577LC Gigabit Network Connection -@@ -58068,10 +58068,10 @@ pci:v00008086d000010EC* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection - - pci:v00008086d000010ECsv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) - - pci:v00008086d000010ECsv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=10-Gigabit CX4 Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AT CX4 Network Connection (10-Gigabit CX4 Dual Port Server Adapter) - - pci:v00008086d000010ED* - ID_MODEL_FROM_DATABASE=82599 Ethernet Controller Virtual Function -@@ -58080,10 +58080,10 @@ pci:v00008086d000010EF* - ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection - - pci:v00008086d000010EFsv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (OptiPlex 980) - - pci:v00008086d000010EFsv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=82578DM Gigabit Network Connection (C7SIM-Q Motherboard) - - pci:v00008086d000010F0* - ID_MODEL_FROM_DATABASE=82578DC Gigabit Network Connection -@@ -58092,19 +58092,19 @@ pci:v00008086d000010F1* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection - - pci:v00008086d000010F1sv00008086sd0000A20F* -- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) - - pci:v00008086d000010F1sv00008086sd0000A21F* -- ID_MODEL_FROM_DATABASE=10-Gigabit AF DA Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Dual Port Network Connection (10-Gigabit AF DA Dual Port Server Adapter) - - pci:v00008086d000010F4* - ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection - - pci:v00008086d000010F4sv00008086sd0000106F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) - - pci:v00008086d000010F4sv00008086sd0000A06F* -- ID_MODEL_FROM_DATABASE=10-Gigabit XF LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82598EB 10-Gigabit AF Network Connection (10-Gigabit XF LR Server Adapter) - - pci:v00008086d000010F5* - ID_MODEL_FROM_DATABASE=82567LM Gigabit Network Connection -@@ -58116,25 +58116,25 @@ pci:v00008086d000010F7* - ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection - - pci:v00008086d000010F7sv0000108Esd00007B12* -- ID_MODEL_FROM_DATABASE=Sun Dual 10GbE PCIe 2.0 FEM -+ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Sun Dual 10GbE PCIe 2.0 FEM) - - pci:v00008086d000010F7sv00008086sd0000000D* -- ID_MODEL_FROM_DATABASE=Ethernet Mezzanine Adapter X520-KX4-2 -+ ID_MODEL_FROM_DATABASE=10 Gigabit BR KX4 Dual Port Network Connection (Ethernet Mezzanine Adapter X520-KX4-2) - - pci:v00008086d000010F8* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection - - pci:v00008086d000010F8sv00001028sd00001F63* -- ID_MODEL_FROM_DATABASE=10GbE 2P X520k bNDC -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (10GbE 2P X520k bNDC) - - pci:v00008086d000010F8sv0000103Csd000017D2* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560M Adapter) - - pci:v00008086d000010F8sv0000103Csd000018D0* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLB Adapter -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet 10Gb 2-port 560FLB Adapter) - - pci:v00008086d000010F8sv00008086sd0000000C* -- ID_MODEL_FROM_DATABASE=Ethernet X520 10GbE Dual Port KX4-KR Mezz -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Backplane Connection (Ethernet X520 10GbE Dual Port KX4-KR Mezz) - - pci:v00008086d000010F9* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection -@@ -58143,58 +58143,58 @@ pci:v00008086d000010FB* - ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection - - pci:v00008086d000010FBsv00001028sd00001F72* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X520/I350 rNDC -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10G 4P X520/I350 rNDC) - - pci:v00008086d000010FBsv0000103Csd000017D0* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560FLR-SFP+ Adapter) - - pci:v00008086d000010FBsv0000103Csd000017D2* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560M Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560M Adapter) - - pci:v00008086d000010FBsv0000103Csd000017D3* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 560SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 560SFP+ Adapter) - - pci:v00008086d000010FBsv0000103Csd0000211B* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port P560FLR-SFP+ Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port P560FLR-SFP+ Adapter) - - pci:v00008086d000010FBsv0000103Csd00002147* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 1-port 561i Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 1-port 561i Adapter) - - pci:v00008086d000010FBsv0000103Csd00002159* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 562i Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet 10Gb 2-port 562i Adapter) - - pci:v00008086d000010FBsv0000108Esd00007B11* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00001734sd000011A9* -- ID_MODEL_FROM_DATABASE=10 Gigabit Dual Port Network Connection -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (10 Gigabit Dual Port Network Connection) - - pci:v00008086d000010FBsv000017AAsd00001071* -- ID_MODEL_FROM_DATABASE=ThinkServer X520-2 AnyFabric -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (ThinkServer X520-2 AnyFabric) - - pci:v00008086d000010FBsv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-DA2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-DA2) - - pci:v00008086d000010FBsv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) - - pci:v00008086d000010FBsv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet OCP Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd0000000A* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-1 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1) - - pci:v00008086d000010FBsv00008086sd0000000C* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd00007A11* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FBsv00008086sd00007A12* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-2 -+ ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-2) - - pci:v00008086d000010FC* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection -@@ -58209,19 +58209,19 @@ pci:v00008086d00001130* - ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub - - pci:v00008086d00001130sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Travelmate 612 TX) - - pci:v00008086d00001130sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (TUSL2-C Mainboard) - - pci:v00008086d00001130sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (Vaio PCG-FX403) - - pci:v00008086d00001130sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EEA2 mainboard) - - pci:v00008086d00001130sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82815 815 Chipset Host Bridge and Memory Controller Hub (D815EGEW Mainboard) - - pci:v00008086d00001131* - ID_MODEL_FROM_DATABASE=82815 815 Chipset AGP Bridge -@@ -58230,28 +58230,28 @@ pci:v00008086d00001132* - ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) - - pci:v00008086d00001132sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Travelmate 612 TX) - - pci:v00008086d00001132sv0000103Csd00002001* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (e-pc 40) - - pci:v00008086d00001132sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (Vaio PCG-FX403) - - pci:v00008086d00001132sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 Mainboard -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA2 Mainboard) - - pci:v00008086d00001132sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=D815EEA Motherboard -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EEA Motherboard) - - pci:v00008086d00001132sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82815 Chipset Graphics Controller (CGC) (D815EGEW Mainboard) - - pci:v00008086d00001161* - ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller - - pci:v00008086d00001161sv00008086sd00001161* -- ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub APIC -+ ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub Advanced Programmable Interrupt Controller (82806AA PCI64 Hub APIC) - - pci:v00008086d00001162* - ID_MODEL_FROM_DATABASE=Xscale 80200 Big Endian Companion Chip -@@ -58260,25 +58260,25 @@ pci:v00008086d00001200* - ID_MODEL_FROM_DATABASE=IXP1200 Network Processor - - pci:v00008086d00001200sv0000172Asd00000000* -- ID_MODEL_FROM_DATABASE=AEP SSL Accelerator -+ ID_MODEL_FROM_DATABASE=IXP1200 Network Processor (AEP SSL Accelerator) - - pci:v00008086d00001209* - ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller - - pci:v00008086d00001209sv0000140Bsd00000610* -- ID_MODEL_FROM_DATABASE=PMC610 quad Ethernet board -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PMC610 quad Ethernet board) - - pci:v00008086d00001209sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (QEMU Virtual Machine) - - pci:v00008086d00001209sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CT7 mainboard) - - pci:v00008086d00001209sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (CE7 mainboard) - - pci:v00008086d00001209sv00004C53sd00001070* -- ID_MODEL_FROM_DATABASE=PC6 mainboard -+ ID_MODEL_FROM_DATABASE=8255xER/82551IT Fast Ethernet Controller (PC6 mainboard) - - pci:v00008086d00001221* - ID_MODEL_FROM_DATABASE=82092AA PCI to PCMCIA Bridge -@@ -58305,487 +58305,487 @@ pci:v00008086d00001229* - ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 - - pci:v00008086d00001229sv00000E11sd00003001* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003002* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003003* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003004* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003005* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003006* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd00003007* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN*) - - pci:v00008086d00001229sv00000E11sd0000B01E* -- ID_MODEL_FROM_DATABASE=NC3120 Fast Ethernet NIC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3120 Fast Ethernet NIC) - - pci:v00008086d00001229sv00000E11sd0000B01F* -- ID_MODEL_FROM_DATABASE=NC3122 Fast Ethernet NIC (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3122 Fast Ethernet NIC (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B02F* -- ID_MODEL_FROM_DATABASE=NC1120 Ethernet NIC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC1120 Ethernet NIC) - - pci:v00008086d00001229sv00000E11sd0000B04A* -- ID_MODEL_FROM_DATABASE=Netelligent 10/100TX NIC with Wake on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netelligent 10/100TX NIC with Wake on LAN) - - pci:v00008086d00001229sv00000E11sd0000B0C6* -- ID_MODEL_FROM_DATABASE=NC3161 Fast Ethernet NIC (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3161 Fast Ethernet NIC (embedded, WOL)) - - pci:v00008086d00001229sv00000E11sd0000B0C7* -- ID_MODEL_FROM_DATABASE=NC3160 Fast Ethernet NIC (embedded) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3160 Fast Ethernet NIC (embedded)) - - pci:v00008086d00001229sv00000E11sd0000B0D7* -- ID_MODEL_FROM_DATABASE=NC3121 Fast Ethernet NIC (WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3121 Fast Ethernet NIC (WOL)) - - pci:v00008086d00001229sv00000E11sd0000B0DD* -- ID_MODEL_FROM_DATABASE=NC3131 Fast Ethernet NIC (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3131 Fast Ethernet NIC (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B0DE* -- ID_MODEL_FROM_DATABASE=NC3132 Fast Ethernet Module (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3132 Fast Ethernet Module (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B0E1* -- ID_MODEL_FROM_DATABASE=NC3133 Fast Ethernet Module (100-FX) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3133 Fast Ethernet Module (100-FX)) - - pci:v00008086d00001229sv00000E11sd0000B134* -- ID_MODEL_FROM_DATABASE=NC3163 Fast Ethernet NIC (embedded, WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3163 Fast Ethernet NIC (embedded, WOL)) - - pci:v00008086d00001229sv00000E11sd0000B13C* -- ID_MODEL_FROM_DATABASE=NC3162 Fast Ethernet NIC (embedded) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3162 Fast Ethernet NIC (embedded)) - - pci:v00008086d00001229sv00000E11sd0000B144* -- ID_MODEL_FROM_DATABASE=NC3123 Fast Ethernet NIC (WOL) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3123 Fast Ethernet NIC (WOL)) - - pci:v00008086d00001229sv00000E11sd0000B163* -- ID_MODEL_FROM_DATABASE=NC3134 Fast Ethernet NIC (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3134 Fast Ethernet NIC (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B164* -- ID_MODEL_FROM_DATABASE=NC3135 Fast Ethernet Upgrade Module (dual port) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC3135 Fast Ethernet Upgrade Module (dual port)) - - pci:v00008086d00001229sv00000E11sd0000B1A4* -- ID_MODEL_FROM_DATABASE=NC7131 Gigabit Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NC7131 Gigabit Server Adapter) - - pci:v00008086d00001229sv00001014sd0000005C* -- ID_MODEL_FROM_DATABASE=82558B Ethernet Pro 10/100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B Ethernet Pro 10/100) - - pci:v00008086d00001229sv00001014sd000001BC* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN On Motherboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN On Motherboard) - - pci:v00008086d00001229sv00001014sd000001F1* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001014sd000001F2* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001014sd00000207* -- ID_MODEL_FROM_DATABASE=Ethernet Pro/100 S -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Ethernet Pro/100 S) - - pci:v00008086d00001229sv00001014sd00000232* -- ID_MODEL_FROM_DATABASE=10/100 Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Dual Port Server Adapter) - - pci:v00008086d00001229sv00001014sd0000023A* -- ID_MODEL_FROM_DATABASE=ThinkPad R30 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad R30) - - pci:v00008086d00001229sv00001014sd0000105C* -- ID_MODEL_FROM_DATABASE=Netfinity 10/100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (Netfinity 10/100) - - pci:v00008086d00001229sv00001014sd00002205* -- ID_MODEL_FROM_DATABASE=ThinkPad A22p -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (ThinkPad A22p) - - pci:v00008086d00001229sv00001014sd0000305C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Management Adapter) - - pci:v00008086d00001229sv00001014sd0000405C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Adapter with Alert on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Adapter with Alert on LAN) - - pci:v00008086d00001229sv00001014sd0000505C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) - - pci:v00008086d00001229sv00001014sd0000605C* -- ID_MODEL_FROM_DATABASE=10/100 EtherJet Secure Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 EtherJet Secure Management Adapter) - - pci:v00008086d00001229sv00001014sd0000705C* -- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) - - pci:v00008086d00001229sv00001014sd0000805C* -- ID_MODEL_FROM_DATABASE=10/100 Netfinity 10/100 Ethernet Security Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Netfinity 10/100 Ethernet Security Adapter) - - pci:v00008086d00001229sv00001028sd0000009B* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001028sd000000CE* -- ID_MODEL_FROM_DATABASE=10/100 Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (10/100 Ethernet Server Adapter) - - pci:v00008086d00001229sv00001033sd00008000* -- ID_MODEL_FROM_DATABASE=PC-9821X-B06 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC-9821X-B06) - - pci:v00008086d00001229sv00001033sd00008016* -- ID_MODEL_FROM_DATABASE=PK-UG-X006 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) - - pci:v00008086d00001229sv00001033sd0000801F* -- ID_MODEL_FROM_DATABASE=PK-UG-X006 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) - - pci:v00008086d00001229sv00001033sd00008026* -- ID_MODEL_FROM_DATABASE=PK-UG-X006 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PK-UG-X006) - - pci:v00008086d00001229sv00001033sd00008063* -- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) - - pci:v00008086d00001229sv00001033sd00008064* -- ID_MODEL_FROM_DATABASE=82559-based Fast Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559-based Fast Ethernet Adapter) - - pci:v00008086d00001229sv0000103Csd000010C0* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010C3* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010CA* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010CB* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010E3* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd000010E4* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000103Csd00001200* -- ID_MODEL_FROM_DATABASE=NetServer 10/100TX -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NetServer 10/100TX) - - pci:v00008086d00001229sv0000108Esd000010CF* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100(B) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100(B)) - - pci:v00008086d00001229sv000010C3sd00001100* -- ID_MODEL_FROM_DATABASE=SmartEther100 SC1100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SmartEther100 SC1100) - - pci:v00008086d00001229sv000010CFsd00001115* -- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) - - pci:v00008086d00001229sv000010CFsd00001143* -- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) - - pci:v00008086d00001229sv0000110Asd0000008B* -- ID_MODEL_FROM_DATABASE=82551QM Fast Ethernet Multifuction PCI/CardBus Controller -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82551QM Fast Ethernet Multifuction PCI/CardBus Controller) - - pci:v00008086d00001229sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard ethernet ETH2 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PC8 onboard ethernet ETH2) - - pci:v00008086d00001229sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=8255x-based Ethernet Adapter (10/100) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Ethernet Adapter (10/100)) - - pci:v00008086d00001229sv00001179sd00000002* -- ID_MODEL_FROM_DATABASE=PCI FastEther LAN on Docker -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PCI FastEther LAN on Docker) - - pci:v00008086d00001229sv00001179sd00000003* -- ID_MODEL_FROM_DATABASE=8255x-based Fast Ethernet -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (8255x-based Fast Ethernet) - - pci:v00008086d00001229sv00001259sd00002560* -- ID_MODEL_FROM_DATABASE=AT-2560 100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100) - - pci:v00008086d00001229sv00001259sd00002561* -- ID_MODEL_FROM_DATABASE=AT-2560 100 FX Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (AT-2560 100 FX Ethernet Adapter) - - pci:v00008086d00001229sv00001266sd00000001* -- ID_MODEL_FROM_DATABASE=NE10/100 Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (NE10/100 Adapter) - - pci:v00008086d00001229sv000013E9sd00001000* -- ID_MODEL_FROM_DATABASE=6221L-4U -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (6221L-4U) - - pci:v00008086d00001229sv0000144Dsd00002501* -- ID_MODEL_FROM_DATABASE=SEM-2000 MiniPCI LAN Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2000 MiniPCI LAN Adapter) - - pci:v00008086d00001229sv0000144Dsd00002502* -- ID_MODEL_FROM_DATABASE=SEM-2100IL MiniPCI LAN Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SEM-2100IL MiniPCI LAN Adapter) - - pci:v00008086d00001229sv00001668sd00001100* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)) - - pci:v00008086d00001229sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CR11/VR11 Single Board Computer) - - pci:v00008086d00001229sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CE9) - - pci:v00008086d00001229sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (QEMU Virtual Machine) - - pci:v00008086d00001229sv00004C53sd00001080* -- ID_MODEL_FROM_DATABASE=CT8 mainboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (CT8 mainboard) - - pci:v00008086d00001229sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (PSL09 PrPMC) - - pci:v00008086d00001229sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (TX) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (TX)) - - pci:v00008086d00001229sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100B (T4) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100B (T4)) - - pci:v00008086d00001229sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/10+ -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/10+) - - pci:v00008086d00001229sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 WfM -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 WfM) - - pci:v00008086d00001229sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=82557 10/100 -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100) - - pci:v00008086d00001229sv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=82557 10/100 with Wake on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557 10/100 with Wake on LAN) - - pci:v00008086d00001229sv00008086sd00000007* -- ID_MODEL_FROM_DATABASE=82558 10/100 Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 Adapter) - - pci:v00008086d00001229sv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=82558 10/100 with Wake on LAN -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558 10/100 with Wake on LAN) - - pci:v00008086d00001229sv00008086sd00000009* -- ID_MODEL_FROM_DATABASE=82558B PRO/100+ PCI (TP) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82558B PRO/100+ PCI (TP)) - - pci:v00008086d00001229sv00008086sd0000000A* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) - - pci:v00008086d00001229sv00008086sd0000000B* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+) - - pci:v00008086d00001229sv00008086sd0000000C* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter) - - pci:v00008086d00001229sv00008086sd0000000D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Alert On LAN II* Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Alert On LAN II* Adapter) - - pci:v00008086d00001229sv00008086sd0000000E* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN*) - - pci:v00008086d00001229sv00008086sd0000000F* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) - - pci:v00008086d00001229sv00008086sd00000011* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Management Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Management Adapter) - - pci:v00008086d00001229sv00008086sd00000012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (D) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (D)) - - pci:v00008086d00001229sv00008086sd00000013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Advanced Management Adapter (E) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Advanced Management Adapter (E)) - - pci:v00008086d00001229sv00008086sd00000030* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Management Adapter with Alert On LAN* GC -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Management Adapter with Alert On LAN* GC) - - pci:v00008086d00001229sv00008086sd00000031* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000040* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000041* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000042* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00000050* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Desktop Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Desktop Adapter) - - pci:v00008086d00001229sv00008086sd00001009* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter) - - pci:v00008086d00001229sv00008086sd0000100C* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Server Adapter (PILA8470B) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Server Adapter (PILA8470B)) - - pci:v00008086d00001229sv00008086sd00001012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (D) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (D)) - - pci:v00008086d00001229sv00008086sd00001013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter (E) -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter (E)) - - pci:v00008086d00001229sv00008086sd00001015* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Dual Port Server Adapter) - - pci:v00008086d00001229sv00008086sd00001017* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Server Adapter) - - pci:v00008086d00001229sv00008086sd00001030* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server) - - pci:v00008086d00001229sv00008086sd00001040* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) - - pci:v00008086d00001229sv00008086sd00001041* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) - - pci:v00008086d00001229sv00008086sd00001042* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) - - pci:v00008086d00001229sv00008086sd00001050* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Server Adapter) - - pci:v00008086d00001229sv00008086sd00001051* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) - - pci:v00008086d00001229sv00008086sd00001052* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Server Adapter) - - pci:v00008086d00001229sv00008086sd000010F0* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ Dual Port Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ Dual Port Adapter) - - pci:v00008086d00001229sv00008086sd00001229* -- ID_MODEL_FROM_DATABASE=82557/8/9 [Ethernet Pro 100] -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82557/8/9 [Ethernet Pro 100]) - - pci:v00008086d00001229sv00008086sd00002009* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) - - pci:v00008086d00001229sv00008086sd0000200D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Cardbus -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Cardbus) - - pci:v00008086d00001229sv00008086sd0000200E* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 LAN+V90 Cardbus Modem -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 LAN+V90 Cardbus Modem) - - pci:v00008086d00001229sv00008086sd0000200F* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002016* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002017* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Combo Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Combo Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002018* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002019* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SR Combo Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SR Combo Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002101* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002102* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002103* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002104* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002105* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002106* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Adapter) - - pci:v00008086d00001229sv00008086sd00002107* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd00002108* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd00002200* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002201* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002202* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002203* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002204* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002205* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002206* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002207* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 SP Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 SP Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002208* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo Adapter -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 P Mobile Combo Adapter) - - pci:v00008086d00001229sv00008086sd00002402* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002407* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002408* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002409* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd0000240F* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002410* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002411* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002412* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00002413* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100+ MiniPCI -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100+ MiniPCI) - - pci:v00008086d00001229sv00008086sd00003000* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LAN on Motherboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LAN on Motherboard) - - pci:v00008086d00001229sv00008086sd00003001* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Basic Alert on LAN* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Basic Alert on LAN*) - - pci:v00008086d00001229sv00008086sd00003002* -- ID_MODEL_FROM_DATABASE=82559 Fast Ethernet LOM with Alert on LAN II* -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (82559 Fast Ethernet LOM with Alert on LAN II*) - - pci:v00008086d00001229sv00008086sd00003006* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003007* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003008* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd00003010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003011* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 S Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 S Network Connection) - - pci:v00008086d00001229sv00008086sd00003012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Network Connection -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (EtherExpress PRO/100 Network Connection) - - pci:v00008086d00001229sv00008086sd0000301A* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (S845WD1-E mainboard) - - pci:v00008086d00001229sv00008086sd00003411* -- ID_MODEL_FROM_DATABASE=SDS2 Mainboard -+ ID_MODEL_FROM_DATABASE=82557/8/9/0/1 Ethernet Pro 100 (SDS2 Mainboard) - - pci:v00008086d0000122D* - ID_MODEL_FROM_DATABASE=430FX - 82437FX TSC [Triton I] -@@ -58809,7 +58809,7 @@ pci:v00008086d00001237* - ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] - - pci:v00008086d00001237sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=440FX - 82441FX PMC [Natoma] (Qemu virtual machine) - - pci:v00008086d00001239* - ID_MODEL_FROM_DATABASE=82371FB PIIX IDE Interface -@@ -58857,10 +58857,10 @@ pci:v00008086d00001461* - ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC - - pci:v00008086d00001461sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (P4DP6) - - pci:v00008086d00001461sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9/Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82870P2 P64H2 I/OxAPIC (Cx9/Vx9 mainboard) - - pci:v00008086d00001462* - ID_MODEL_FROM_DATABASE=82870P2 P64H2 Hot Plug Controller -@@ -58872,16 +58872,16 @@ pci:v00008086d00001502* - ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection - - pci:v00008086d00001502sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Precision M4600) - - pci:v00008086d00001502sv00008086sd0000357A* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection (Server Board S1200BTS) - - pci:v00008086d00001503* - ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection - - pci:v00008086d00001503sv00001043sd0000849C* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82579V Gigabit Network Connection (P8P67 Deluxe Motherboard) - - pci:v00008086d00001507* - ID_MODEL_FROM_DATABASE=Ethernet Express Module X520-P2 -@@ -58911,19 +58911,19 @@ pci:v00008086d0000150D* - ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection - - pci:v00008086d0000150Dsv00008086sd0000A10C* -- ID_MODEL_FROM_DATABASE=Gigabit ET Quad Port Mezzanine Card -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Backplane Connection (Gigabit ET Quad Port Mezzanine Card) - - pci:v00008086d0000150E* - ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection - - pci:v00008086d0000150Esv0000103Csd00001780* -- ID_MODEL_FROM_DATABASE=NC365T 4-port Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (NC365T 4-port Ethernet Server Adapter) - - pci:v00008086d0000150Esv00008086sd000012A1* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) - - pci:v00008086d0000150Esv00008086sd000012A2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T4) - - pci:v00008086d0000150F* - ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection -@@ -58947,16 +58947,16 @@ pci:v00008086d00001516* - ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection - - pci:v00008086d00001516sv00008086sd000012B1* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) - - pci:v00008086d00001516sv00008086sd000012B2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-T2 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Network Connection (Ethernet Server Adapter I340-T2) - - pci:v00008086d00001517* - ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection - - pci:v00008086d00001517sv00001137sd0000006A* -- ID_MODEL_FROM_DATABASE=UCS CNA M61KR-I Intel Converged Network Adapter -+ ID_MODEL_FROM_DATABASE=82599ES 10 Gigabit Network Connection (UCS CNA M61KR-I Intel Converged Network Adapter) - - pci:v00008086d00001518* - ID_MODEL_FROM_DATABASE=82576NS SerDes Gigabit Network Connection -@@ -58965,7 +58965,7 @@ pci:v00008086d0000151C* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection - - pci:v00008086d0000151Csv0000108Esd00007B13* -- ID_MODEL_FROM_DATABASE=Dual 10GBASE-T LP -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit TN Network Connection (Dual 10GBASE-T LP) - - pci:v00008086d00001520* - ID_MODEL_FROM_DATABASE=I350 Ethernet Controller Virtual Function -@@ -58974,115 +58974,115 @@ pci:v00008086d00001521* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection - - pci:v00008086d00001521sv00001028sd00000602* -- ID_MODEL_FROM_DATABASE=Gigabit 2P I350-t LOM -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) - - pci:v00008086d00001521sv00001028sd00001F60* -- ID_MODEL_FROM_DATABASE=Intel GbE 4P I350crNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) - - pci:v00008086d00001521sv00001028sd00001F62* -- ID_MODEL_FROM_DATABASE=Intel GbE 2P I350crNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) - - pci:v00008086d00001521sv00001028sd0000FF9A* -- ID_MODEL_FROM_DATABASE=Gigabit 4P X710/I350 rNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) - - pci:v00008086d00001521sv0000103Csd000017D1* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366FLR Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366FLR Adapter) - - pci:v00008086d00001521sv0000103Csd00002003* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 367i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 367i Adapter) - - pci:v00008086d00001521sv0000103Csd00002226* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 1-port 364i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 1-port 364i Adapter) - - pci:v00008086d00001521sv0000103Csd0000337F* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361i Adapter) - - pci:v00008086d00001521sv0000103Csd00003380* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366i Adapter) - - pci:v00008086d00001521sv0000103Csd0000339E* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361T Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361T Adapter) - - pci:v00008086d00001521sv0000108Esd00007B16* -- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, UTP -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, UTP) - - pci:v00008086d00001521sv0000108Esd00007B18* -- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP) - - pci:v00008086d00001521sv000010A9sd0000802A* -- ID_MODEL_FROM_DATABASE=UV2-BaseIO dual-port GbE -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (UV2-BaseIO dual-port GbE) - - pci:v00008086d00001521sv000017AAsd00001074* -- ID_MODEL_FROM_DATABASE=ThinkServer I350-T4 AnyFabric -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (ThinkServer I350-T4 AnyFabric) - - pci:v00008086d00001521sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) - - pci:v00008086d00001521sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001521sv00008086sd000000A1* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) - - pci:v00008086d00001521sv00008086sd000000A2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001521sv00008086sd00005001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T4) - - pci:v00008086d00001521sv00008086sd00005002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001522* - ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection - - pci:v00008086d00001522sv0000108Esd00007B17* -- ID_MODEL_FROM_DATABASE=Quad Port GbE PCIe 2.0 ExpressModule, MMF -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, MMF) - - pci:v00008086d00001522sv0000108Esd00007B19* -- ID_MODEL_FROM_DATABASE=Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF) - - pci:v00008086d00001522sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001522sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) - - pci:v00008086d00001522sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) - - pci:v00008086d00001522sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F1 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F1) - - pci:v00008086d00001522sv00008086sd000000A2* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-T2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-T2) - - pci:v00008086d00001522sv00008086sd000000A3* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F4 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F4) - - pci:v00008086d00001522sv00008086sd000000A4* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I350-F2 -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Fiber Network Connection (Ethernet Server Adapter I350-F2) - - pci:v00008086d00001523* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection - - pci:v00008086d00001523sv00001028sd00001F9B* -- ID_MODEL_FROM_DATABASE=Gigabit 4P I350 bNDC -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) - - pci:v00008086d00001523sv0000103Csd00001784* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) - - pci:v00008086d00001523sv0000103Csd000018D1* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 361FLB Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) - - pci:v00008086d00001523sv0000103Csd00001989* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 2-port 363i Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 363i Adapter) - - pci:v00008086d00001523sv0000103Csd0000339F* -- ID_MODEL_FROM_DATABASE=Ethernet 1Gb 4-port 366M Adapter -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 4-port 366M Adapter) - - pci:v00008086d00001523sv00008086sd00001F52* -- ID_MODEL_FROM_DATABASE=1GbE 4P I350 Mezz -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (1GbE 4P I350 Mezz) - - pci:v00008086d00001524* - ID_MODEL_FROM_DATABASE=I350 Gigabit Connection -@@ -59094,64 +59094,64 @@ pci:v00008086d00001526* - ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection - - pci:v00008086d00001526sv00008086sd0000A05C* -- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) - - pci:v00008086d00001526sv00008086sd0000A06C* -- ID_MODEL_FROM_DATABASE=Gigabit ET2 Quad Port Server Adapter -+ ID_MODEL_FROM_DATABASE=82576 Gigabit Network Connection (Gigabit ET2 Quad Port Server Adapter) - - pci:v00008086d00001527* - ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection - - pci:v00008086d00001527sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) - - pci:v00008086d00001527sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I340-F4 -+ ID_MODEL_FROM_DATABASE=82580 Gigabit Fiber Network Connection (Ethernet Server Adapter I340-F4) - - pci:v00008086d00001528* - ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 - - pci:v00008086d00001528sv00001028sd00001F61* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) - - pci:v00008086d00001528sv0000103Csd0000192D* -- ID_MODEL_FROM_DATABASE=561FLR-T 2-port 10Gb Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (561FLR-T 2-port 10Gb Ethernet Adapter) - - pci:v00008086d00001528sv0000103Csd00002004* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561i Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561i Adapter) - - pci:v00008086d00001528sv0000103Csd0000211A* -- ID_MODEL_FROM_DATABASE=Ethernet 10Gb 2-port 561T Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10Gb 2-port 561T Adapter) - - pci:v00008086d00001528sv0000108Esd00007B14* -- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T) - - pci:v00008086d00001528sv0000108Esd00007B15* -- ID_MODEL_FROM_DATABASE=Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T) - - pci:v00008086d00001528sv00001137sd000000BF* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) - - pci:v00008086d00001528sv000017AAsd00001073* -- ID_MODEL_FROM_DATABASE=ThinkServer X540-T2 AnyFabric -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (ThinkServer X540-T2 AnyFabric) - - pci:v00008086d00001528sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) - - pci:v00008086d00001528sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) - - pci:v00008086d00001528sv00008086sd0000001A* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2) - - pci:v00008086d00001528sv00008086sd000000A2* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X540-T1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T1) - - pci:v00008086d00001528sv00008086sd00001F61* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X540/I350 rNDC -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 4P X540/I350 rNDC) - - pci:v00008086d00001528sv00008086sd00005003* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X540-t Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet 10G 2P X540-t Adapter) - - pci:v00008086d00001529* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Dual Port Network Connection with FCoE -@@ -59163,16 +59163,16 @@ pci:v00008086d00001533* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection - - pci:v00008086d00001533sv0000103Csd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - - pci:v00008086d00001533sv000017AAsd00001100* -- ID_MODEL_FROM_DATABASE=ThinkServer Ethernet Server Adapter -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) - - pci:v00008086d00001533sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - - pci:v00008086d00001533sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Adapter I210-T1 -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - - pci:v00008086d00001534* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -@@ -59193,10 +59193,10 @@ pci:v00008086d0000153A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM - - pci:v00008086d0000153Asv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ZBook 15) - - pci:v00008086d0000153Asv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM (ThinkPad T440p) - - pci:v00008086d0000153B* - ID_MODEL_FROM_DATABASE=Ethernet Connection I217-V -@@ -59211,13 +59211,13 @@ pci:v00008086d0000154A* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 - - pci:v00008086d0000154Asv00008086sd0000011A* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154Asv00008086sd0000011B* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154Asv00008086sd0000011C* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-4 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154C* - ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -@@ -59226,13 +59226,13 @@ pci:v00008086d0000154D* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter - - pci:v00008086d0000154Dsv00008086sd00007B11* -- ID_MODEL_FROM_DATABASE=10GbE 2P X520 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter (10GbE 2P X520 Adapter) - - pci:v00008086d00001557* - ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection - - pci:v00008086d00001557sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet OCP Server Adapter X520-1 -+ ID_MODEL_FROM_DATABASE=82599 10 Gigabit Network Connection (Ethernet OCP Server Adapter X520-1) - - pci:v00008086d00001558* - ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X520-Q1 -@@ -59250,22 +59250,22 @@ pci:v00008086d0000155A* - ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM - - pci:v00008086d0000155Asv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I218-LM (ThinkPad X240) - - pci:v00008086d0000155C* - ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter - - pci:v00008086d0000155Csv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X540-T2 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X540-T2) - - pci:v00008086d0000155D* - ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter - - pci:v00008086d0000155Dsv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-SR2 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-SR2) - - pci:v00008086d0000155Dsv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter X520-LR2 -+ ID_MODEL_FROM_DATABASE=Ethernet Server Bypass Adapter (X520-LR2) - - pci:v00008086d00001560* - ID_MODEL_FROM_DATABASE=Ethernet Controller X540 -@@ -59277,28 +59277,28 @@ pci:v00008086d00001572* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter - - pci:v00008086d00001572sv00001028sd00001F99* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710/I350 rNDC -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) - - pci:v00008086d00001572sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-4 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=Ethernet 10G2P X710 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000007* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d00001572sv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter X710-2 -+ ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d0000157B* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -@@ -59313,31 +59313,31 @@ pci:v00008086d00001581* - ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane - - pci:v00008086d00001581sv00001028sd00001F98* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 4P X710-k bNDC -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) - - pci:v00008086d00001583* - ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ - - pci:v00008086d00001583sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q2 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) - - pci:v00008086d00001584* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - - pci:v00008086d00001584sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) - - pci:v00008086d00001584sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Converged Network Adapter XL710-Q1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) - - pci:v00008086d00001584sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet I/O Module XL710-Q1 -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q1) - - pci:v00008086d00001585* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ -@@ -59469,82 +59469,82 @@ pci:v00008086d00001960* - ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor - - pci:v00008086d00001960sv0000101Esd00000431* -- ID_MODEL_FROM_DATABASE=MegaRAID 431 RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 431 RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000438* -- ID_MODEL_FROM_DATABASE=MegaRAID 438 Ultra2 LVD RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438 Ultra2 LVD RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000466* -- ID_MODEL_FROM_DATABASE=MegaRAID 466 Express Plus RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466 Express Plus RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000467* -- ID_MODEL_FROM_DATABASE=MegaRAID 467 Enterprise 1500 RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 467 Enterprise 1500 RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000490* -- ID_MODEL_FROM_DATABASE=MegaRAID 490 Express 300 RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 490 Express 300 RAID Controller) - - pci:v00008086d00001960sv0000101Esd00000762* -- ID_MODEL_FROM_DATABASE=MegaRAID 762 Express RAID Controller -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 762 Express RAID Controller) - - pci:v00008086d00001960sv0000101Esd000009A0* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv00001028sd00000467* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/DC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/DC) - - pci:v00008086d00001960sv00001028sd00001111* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv0000103Csd000003A2* -- ID_MODEL_FROM_DATABASE=MegaRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) - - pci:v00008086d00001960sv0000103Csd000010C6* -- ID_MODEL_FROM_DATABASE=MegaRAID 438, NetRAID-3Si -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 438, NetRAID-3Si) - - pci:v00008086d00001960sv0000103Csd000010C7* -- ID_MODEL_FROM_DATABASE=MegaRAID T5, Integrated NetRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID T5, Integrated NetRAID) - - pci:v00008086d00001960sv0000103Csd000010CC* -- ID_MODEL_FROM_DATABASE=MegaRAID, Integrated NetRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID, Integrated NetRAID) - - pci:v00008086d00001960sv0000103Csd000010CD* -- ID_MODEL_FROM_DATABASE=NetRAID-1Si -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (NetRAID-1Si) - - pci:v00008086d00001960sv0000105Asd00000000* -- ID_MODEL_FROM_DATABASE=SuperTrak -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak) - - pci:v00008086d00001960sv0000105Asd00002168* -- ID_MODEL_FROM_DATABASE=SuperTrak Pro -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak Pro) - - pci:v00008086d00001960sv0000105Asd00005168* -- ID_MODEL_FROM_DATABASE=SuperTrak66/100 -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (SuperTrak66/100) - - pci:v00008086d00001960sv00001111sd00001111* -- ID_MODEL_FROM_DATABASE=MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv00001111sd00001112* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 2/SC -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (PowerEdge Expandable RAID Controller 2/SC) - - pci:v00008086d00001960sv0000113Csd000003A2* -- ID_MODEL_FROM_DATABASE=MegaRAID -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (MegaRAID) - - pci:v00008086d00001960sv0000E4BFsd00001010* -- ID_MODEL_FROM_DATABASE=CG1-RADIO -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CG1-RADIO) - - pci:v00008086d00001960sv0000E4BFsd00001020* -- ID_MODEL_FROM_DATABASE=CU2-QUARTET -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU2-QUARTET) - - pci:v00008086d00001960sv0000E4BFsd00001040* -- ID_MODEL_FROM_DATABASE=CU1-CHORUS -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CU1-CHORUS) - - pci:v00008086d00001960sv0000E4BFsd00003100* -- ID_MODEL_FROM_DATABASE=CX1-BAND -+ ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor (CX1-BAND) - - pci:v00008086d00001962* - ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor - - pci:v00008086d00001962sv0000105Asd00000000* -- ID_MODEL_FROM_DATABASE=SuperTrak SX6000 I2O CPU -+ ID_MODEL_FROM_DATABASE=80960RM (i960RM) Microprocessor (SuperTrak SX6000 I2O CPU) - - pci:v00008086d00001A21* - ID_MODEL_FROM_DATABASE=82840 840 [Carmel] Chipset Host Bridge (Hub A) -@@ -59559,10 +59559,10 @@ pci:v00008086d00001A30* - ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge - - pci:v00008086d00001A30sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Optiplex GX240) - - pci:v00008086d00001A30sv000015D9sd00003280* -- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard -+ ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset Host Bridge (Supermicro P4SBE Mainboard) - - pci:v00008086d00001A31* - ID_MODEL_FROM_DATABASE=82845 845 [Brookdale] Chipset AGP Bridge -@@ -59571,28 +59571,28 @@ pci:v00008086d00001A38* - ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine - - pci:v00008086d00001A38sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (X7DVL-E-O motherboard) - - pci:v00008086d00001A38sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset DMA Engine (Intel S5000PSLSATA Server Board) - - pci:v00008086d00001A48* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d00001A48sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) - - pci:v00008086d00001A48sv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE SR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE SR Server Adapter) - - pci:v00008086d00001B48* - ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller - - pci:v00008086d00001B48sv00008086sd0000A01F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001B48sv00008086sd0000A11F* -- ID_MODEL_FROM_DATABASE=PRO/10GbE LR Server Adapter -+ ID_MODEL_FROM_DATABASE=82597EX 10GbE Ethernet Controller (PRO/10GbE LR Server Adapter) - - pci:v00008086d00001C00* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 4 port SATA IDE Controller -@@ -59604,28 +59604,28 @@ pci:v00008086d00001C02* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller - - pci:v00008086d00001C02sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (XPS 8300) - - pci:v00008086d00001C02sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (P8 series motherboard) - - pci:v00008086d00001C02sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA AHCI Controller (Server Board S1200BTS) - - pci:v00008086d00001C03* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller - - pci:v00008086d00001C03sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Precision M4600) - - pci:v00008086d00001C03sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3350) - - pci:v00008086d00001C03sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Vostro 3750) - - pci:v00008086d00001C03sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C04* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SATA RAID Controller -@@ -59643,58 +59643,58 @@ pci:v00008086d00001C10* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 - - pci:v00008086d00001C10sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (XPS 8300) - - pci:v00008086d00001C10sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Vostro 3750) - - pci:v00008086d00001C10sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (P8 series motherboard) - - pci:v00008086d00001C10sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C12* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 - - pci:v00008086d00001C12sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (XPS 8300) - - pci:v00008086d00001C12sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 2 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C14* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 - - pci:v00008086d00001C14sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Vostro 3750) - - pci:v00008086d00001C14sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 3 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C16* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 - - pci:v00008086d00001C16sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 4 (XPS 8300) - - pci:v00008086d00001C18* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 - - pci:v00008086d00001C18sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Vostro 3750) - - pci:v00008086d00001C18sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 5 (Server Board S1200BTS) - - pci:v00008086d00001C1A* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 - - pci:v00008086d00001C1Asv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (Vostro 3750) - - pci:v00008086d00001C1Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 6 (P8 series motherboard) - - pci:v00008086d00001C1C* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 7 -@@ -59703,58 +59703,58 @@ pci:v00008086d00001C1E* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 - - pci:v00008086d00001C1Esv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family PCI Express Root Port 8 (P8 series motherboard) - - pci:v00008086d00001C20* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller - - pci:v00008086d00001C20sv00001028sd00000490* -- ID_MODEL_FROM_DATABASE=Alienware M17x R3 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Alienware M17x R3) - - pci:v00008086d00001C20sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Precision M4600) - - pci:v00008086d00001C20sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (XPS 8300) - - pci:v00008086d00001C20sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3350) - - pci:v00008086d00001C20sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Vostro 3750) - - pci:v00008086d00001C20sv00001043sd00008418* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8P67 Deluxe Motherboard) - - pci:v00008086d00001C20sv00001043sd0000841B* -- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (P8H67 Series Motherboard) - - pci:v00008086d00001C20sv00008086sd00002008* -- ID_MODEL_FROM_DATABASE=DQ67SW board -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (DQ67SW board) - - pci:v00008086d00001C20sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family High Definition Audio Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C22* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller - - pci:v00008086d00001C22sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Precision M4600) - - pci:v00008086d00001C22sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (XPS 8300) - - pci:v00008086d00001C22sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3350) - - pci:v00008086d00001C22sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Vostro 3750) - - pci:v00008086d00001C22sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (P8 series motherboard) - - pci:v00008086d00001C22sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family SMBus Controller (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C24* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family Thermal Management Controller -@@ -59766,55 +59766,55 @@ pci:v00008086d00001C26* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 - - pci:v00008086d00001C26sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Precision M4600) - - pci:v00008086d00001C26sv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (XPS 8300) - - pci:v00008086d00001C26sv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3350) - - pci:v00008086d00001C26sv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Vostro 3750) - - pci:v00008086d00001C26sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) - - pci:v00008086d00001C26sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C27* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 - - pci:v00008086d00001C27sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C2C* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 - - pci:v00008086d00001C2Csv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Universal Host Controller #5 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C2D* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 - - pci:v00008086d00001C2Dsv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Precision M4600) - - pci:v00008086d00001C2Dsv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (XPS 8300) - - pci:v00008086d00001C2Dsv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3350) - - pci:v00008086d00001C2Dsv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Vostro 3750) - - pci:v00008086d00001C2Dsv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) - - pci:v00008086d00001C2Dsv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS / Apple MacBook Pro 8,1/8,2 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (Server Board S1200BTS / Apple MacBook Pro 8,1/8,2) - - pci:v00008086d00001C33* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LAN Controller -@@ -59826,22 +59826,22 @@ pci:v00008086d00001C3A* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 - - pci:v00008086d00001C3Asv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Precision M4600) - - pci:v00008086d00001C3Asv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (XPS 8300) - - pci:v00008086d00001C3Asv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3350) - - pci:v00008086d00001C3Asv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Vostro 3750) - - pci:v00008086d00001C3Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (P8 series motherboard) - - pci:v00008086d00001C3Asv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #1 (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C3B* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family MEI Controller #2 -@@ -59874,7 +59874,7 @@ pci:v00008086d00001C46* - ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller - - pci:v00008086d00001C46sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8P67 Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=P67 Express Chipset Family LPC Controller (P8P67 Deluxe Motherboard) - - pci:v00008086d00001C47* - ID_MODEL_FROM_DATABASE=UM67 Express Chipset Family LPC Controller -@@ -59886,25 +59886,25 @@ pci:v00008086d00001C49* - ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller - - pci:v00008086d00001C49sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Apple MacBookPro8,2 [Core i7, 15", 2011] -+ ID_MODEL_FROM_DATABASE=HM65 Express Chipset Family LPC Controller (Apple MacBookPro8,2 [Core i7, 15", 2011]) - - pci:v00008086d00001C4A* - ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller - - pci:v00008086d00001C4Asv00001028sd000004AA* -- ID_MODEL_FROM_DATABASE=XPS 8300 -+ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (XPS 8300) - - pci:v00008086d00001C4Asv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8H67 Series Motherboard -+ ID_MODEL_FROM_DATABASE=H67 Express Chipset Family LPC Controller (P8H67 Series Motherboard) - - pci:v00008086d00001C4B* - ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller - - pci:v00008086d00001C4Bsv00001028sd000004B2* -- ID_MODEL_FROM_DATABASE=Vostro 3350 -+ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3350) - - pci:v00008086d00001C4Bsv00001028sd000004DA* -- ID_MODEL_FROM_DATABASE=Vostro 3750 -+ ID_MODEL_FROM_DATABASE=HM67 Express Chipset Family LPC Controller (Vostro 3750) - - pci:v00008086d00001C4C* - ID_MODEL_FROM_DATABASE=Q65 Express Chipset Family LPC Controller -@@ -59919,7 +59919,7 @@ pci:v00008086d00001C4F* - ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller - - pci:v00008086d00001C4Fsv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=Precision M4600 -+ ID_MODEL_FROM_DATABASE=QM67 Express Chipset Family LPC Controller (Precision M4600) - - pci:v00008086d00001C50* - ID_MODEL_FROM_DATABASE=B65 Express Chipset Family LPC Controller -@@ -59931,7 +59931,7 @@ pci:v00008086d00001C52* - ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller - - pci:v00008086d00001C52sv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=C202 Chipset Family LPC Controller (Server Board S1200BTS) - - pci:v00008086d00001C53* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller -@@ -59946,7 +59946,7 @@ pci:v00008086d00001C56* - ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller - - pci:v00008086d00001C56sv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8B WS Motherboard -+ ID_MODEL_FROM_DATABASE=C206 Chipset Family LPC Controller (P8B WS Motherboard) - - pci:v00008086d00001C57* - ID_MODEL_FROM_DATABASE=6 Series/C200 Series Chipset Family LPC Controller -@@ -60177,19 +60177,19 @@ pci:v00008086d00001E02* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] - - pci:v00008086d00001E02sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) - - pci:v00008086d00001E02sv00001849sd00001E02* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) - - pci:v00008086d00001E03* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] - - pci:v00008086d00001E03sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (N56VZ) - - pci:v00008086d00001E03sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series Chipset Family 6-port SATA Controller [AHCI mode] (Zenbook Prime UX31A) - - pci:v00008086d00001E04* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SATA Controller [RAID mode] -@@ -60216,25 +60216,25 @@ pci:v00008086d00001E10* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 - - pci:v00008086d00001E10sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (N56VZ) - - pci:v00008086d00001E10sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Zenbook Prime UX31A) - - pci:v00008086d00001E10sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (P8H77-I Motherboard) - - pci:v00008086d00001E10sv00001849sd00001E10* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 1 (Motherboard) - - pci:v00008086d00001E12* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 - - pci:v00008086d00001E12sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (N56VZ) - - pci:v00008086d00001E12sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 2 (Zenbook Prime UX31A) - - pci:v00008086d00001E14* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 3 -@@ -60243,25 +60243,25 @@ pci:v00008086d00001E16* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 - - pci:v00008086d00001E16sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (N56VZ) - - pci:v00008086d00001E16sv00001849sd00001618* -- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 4 (Z77 Extreme4 motherboard) - - pci:v00008086d00001E18* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 - - pci:v00008086d00001E18sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (P8H77-I Motherboard) - - pci:v00008086d00001E18sv00001849sd00001E18* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 5 (Motherboard) - - pci:v00008086d00001E1A* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 - - pci:v00008086d00001E1Asv00001849sd00001E1A* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 6 (Motherboard) - - pci:v00008086d00001E1C* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 7 -@@ -60270,43 +60270,43 @@ pci:v00008086d00001E1E* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 - - pci:v00008086d00001E1Esv00001849sd00001E1E* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family PCI Express Root Port 8 (Motherboard) - - pci:v00008086d00001E20* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller - - pci:v00008086d00001E20sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (N56VZ) - - pci:v00008086d00001E20sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E20sv00001043sd00008415* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) - - pci:v00008086d00001E20sv00001849sd00001898* -- ID_MODEL_FROM_DATABASE=Z77 Extreme4 motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) - - pci:v00008086d00001E22* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller - - pci:v00008086d00001E22sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (N56VZ) - - pci:v00008086d00001E22sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E22sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) - - pci:v00008086d00001E22sv00001849sd00001E22* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) - - pci:v00008086d00001E24* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller - - pci:v00008086d00001E24sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family Thermal Management Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E25* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family DMI to PCI Bridge -@@ -60315,49 +60315,49 @@ pci:v00008086d00001E26* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 - - pci:v00008086d00001E26sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (N56VZ) - - pci:v00008086d00001E26sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E26sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) - - pci:v00008086d00001E26sv00001849sd00001E26* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) - - pci:v00008086d00001E2D* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 - - pci:v00008086d00001E2Dsv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (N56VZ) - - pci:v00008086d00001E2Dsv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) - - pci:v00008086d00001E2Dsv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) - - pci:v00008086d00001E2Dsv00001849sd00001E2D* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) - - pci:v00008086d00001E31* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller - - pci:v00008086d00001E31sv0000103Csd000017AB* -- ID_MODEL_FROM_DATABASE=ProBook 6570b -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (ProBook 6570b) - - pci:v00008086d00001E31sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (N56VZ) - - pci:v00008086d00001E31sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E31sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) - - pci:v00008086d00001E31sv00001849sd00001E31* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) - - pci:v00008086d00001E33* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family LAN Controller -@@ -60366,16 +60366,16 @@ pci:v00008086d00001E3A* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 - - pci:v00008086d00001E3Asv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (N56VZ) - - pci:v00008086d00001E3Asv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E3Asv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) - - pci:v00008086d00001E3Asv00001849sd00001E3A* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) - - pci:v00008086d00001E3B* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #2 -@@ -60399,7 +60399,7 @@ pci:v00008086d00001E44* - ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller - - pci:v00008086d00001E44sv00001849sd00001E44* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) - - pci:v00008086d00001E45* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller -@@ -60420,7 +60420,7 @@ pci:v00008086d00001E4A* - ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller - - pci:v00008086d00001E4Asv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=P8H77-I Motherboard -+ ID_MODEL_FROM_DATABASE=H77 Express Chipset LPC Controller (P8H77-I Motherboard) - - pci:v00008086d00001E4B* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller -@@ -60468,10 +60468,10 @@ pci:v00008086d00001E59* - ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller - - pci:v00008086d00001E59sv00001043sd00001477* -- ID_MODEL_FROM_DATABASE=N56VZ -+ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (N56VZ) - - pci:v00008086d00001E59sv00001043sd00001517* -- ID_MODEL_FROM_DATABASE=Zenbook Prime UX31A -+ ID_MODEL_FROM_DATABASE=HM76 Express Chipset LPC Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E5A* - ID_MODEL_FROM_DATABASE=7 Series Chipset Family LPC Controller -@@ -60804,28 +60804,28 @@ pci:v00008086d00002415* - ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller - - pci:v00008086d00002415sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Precision Workstation 220 Integrated Digital Audio) - - pci:v00008086d00002415sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (OptiPlex GX110) - - pci:v00008086d00002415sv0000110Asd00000051* -- ID_MODEL_FROM_DATABASE=Activy 2xx -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 2xx) - - pci:v00008086d00002415sv000011D4sd00000040* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002415sv000011D4sd00000048* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002415sv000011D4sd00005340* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002415sv00001734sd00001025* -- ID_MODEL_FROM_DATABASE=Activy 3xx -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (Activy 3xx) - - pci:v00008086d00002415sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801AA AC'97 Audio Controller (QEMU Virtual Machine) - - pci:v00008086d00002416* - ID_MODEL_FROM_DATABASE=82801AA AC'97 Modem Controller -@@ -60849,10 +60849,10 @@ pci:v00008086d00002425* - ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller - - pci:v00008086d00002425sv000011D4sd00000040* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002425sv000011D4sd00000048* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801AB AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00002426* - ID_MODEL_FROM_DATABASE=82801AB AC'97 Modem Controller -@@ -60864,352 +60864,352 @@ pci:v00008086d00002440* - ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) - - pci:v00008086d00002440sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E -+ ID_MODEL_FROM_DATABASE=82801BA ISA Bridge (LPC) (S845WD1-E) - - pci:v00008086d00002442* - ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 - - pci:v00008086d00002442sv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Netvista A40/A40p) - - pci:v00008086d00002442sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) - - pci:v00008086d00002442sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) - - pci:v00008086d00002442sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) - - pci:v00008086d00002442sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) - - pci:v00008086d00002442sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) - - pci:v00008086d00002442sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) - - pci:v00008086d00002442sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) - - pci:v00008086d00002442sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) - - pci:v00008086d00002442sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) - - pci:v00008086d00002442sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EGEW Mainboard) - - pci:v00008086d00002442sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) - - pci:v00008086d00002443* - ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller - - pci:v00008086d00002443sv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Netvista A40/A40p) - - pci:v00008086d00002443sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Travelmate 612 TX) - - pci:v00008086d00002443sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Dimension 8100) - - pci:v00008086d00002443sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Precision 530) - - pci:v00008086d00002443sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Optiplex GX240) - - pci:v00008086d00002443sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (e-pc 40) - - pci:v00008086d00002443sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TUSL2-C Mainboard) - - pci:v00008086d00002443sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Vaio PCG-FX403) - - pci:v00008086d00002443sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (TH7II-RAID) - - pci:v00008086d00002443sv000015D9sd00003280* -- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (Supermicro P4SBE Mainboard) - - pci:v00008086d00002443sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EEA2 mainboard) - - pci:v00008086d00002443sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (D815EGEW Mainboard) - - pci:v00008086d00002443sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM SMBus Controller (S845WD1-E mainboard) - - pci:v00008086d00002444* - ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 - - pci:v00008086d00002444sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Travelmate 612 TX) - - pci:v00008086d00002444sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Dimension 8100) - - pci:v00008086d00002444sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Precision 530) - - pci:v00008086d00002444sv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Optiplex GX240) - - pci:v00008086d00002444sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (e-pc 40) - - pci:v00008086d00002444sv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TUSL2-C Mainboard) - - pci:v00008086d00002444sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (Vaio PCG-FX403) - - pci:v00008086d00002444sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (TH7II-RAID) - - pci:v00008086d00002444sv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (D815EEA2 mainboard) - - pci:v00008086d00002444sv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM USB Controller #1 (S845WD1-E mainboard) - - pci:v00008086d00002445* - ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller - - pci:v00008086d00002445sv00000E11sd0000000B* -- ID_MODEL_FROM_DATABASE=Compaq Deskpro EN Audio -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Compaq Deskpro EN Audio) - - pci:v00008086d00002445sv00000E11sd00000088* -- ID_MODEL_FROM_DATABASE=Evo D500 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Evo D500) - - pci:v00008086d00002445sv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Netvista A40/A40p) - - pci:v00008086d00002445sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Travelmate 612 TX) - - pci:v00008086d00002445sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Precision 530) - - pci:v00008086d00002445sv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (e-pc 40) - - pci:v00008086d00002445sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (Vaio PCG-FX403) - - pci:v00008086d00002445sv00001462sd00003370* -- ID_MODEL_FROM_DATABASE=STAC9721 AC -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (STAC9721 AC) - - pci:v00008086d00002445sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (TH7II-RAID) - - pci:v00008086d00002445sv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Audio Controller (D815EGEW Mainboard) - - pci:v00008086d00002446* - ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller - - pci:v00008086d00002446sv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612 TX -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Travelmate 612 TX) - - pci:v00008086d00002446sv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM AC'97 Modem Controller (Vaio PCG-FX403) - - pci:v00008086d00002448* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge - - pci:v00008086d00002448sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Latitude E6510) - - pci:v00008086d00002448sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002448sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (NX6110/NC6120) - - pci:v00008086d00002448sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nx9420 Notebook) - - pci:v00008086d00002448sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq nw8440) - - pci:v00008086d00002448sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Compaq 6910p) - - pci:v00008086d00002448sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (VAIO VGN-NR120E) - - pci:v00008086d00002448sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) - - pci:v00008086d00002448sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) - - pci:v00008086d00002448sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) - - pci:v00008086d00002448sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (GA-D525TUD) - - pci:v00008086d00002448sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Amilo M1420) - - pci:v00008086d00002448sv000017AAsd000020AE* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) - - pci:v00008086d00002448sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) - - pci:v00008086d00002448sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (CCG-RUMBA) - - pci:v00008086d00002449* - ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller - - pci:v00008086d00002449sv00000E11sd00000012* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) - - pci:v00008086d00002449sv00000E11sd00000091* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001CE* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001DC* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001EB* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd000001EC* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000202* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000205* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000217* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000234* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd0000023D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000244* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000245* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001014sd00000265* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) - - pci:v00008086d00002449sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) - - pci:v00008086d00002449sv00001014sd0000026A* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Desktop Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Desktop Connection) - - pci:v00008086d00002449sv0000109Fsd0000315D* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv0000109Fsd00003181* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00001179sd0000FF01* -- ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (PRO/100 VE Network Connection) - - pci:v00008086d00002449sv00001186sd00007801* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv0000144Dsd00002602* -- ID_MODEL_FROM_DATABASE=HomePNA 1M CNR -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (HomePNA 1M CNR) - - pci:v00008086d00002449sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (QEMU Virtual Machine) - - pci:v00008086d00002449sv00008086sd00003010* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00008086sd00003011* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) - - pci:v00008086d00002449sv00008086sd00003012* -- ID_MODEL_FROM_DATABASE=82562EH based Phoneline -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) - - pci:v00008086d00002449sv00008086sd00003013* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VE -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VE) - - pci:v00008086d00002449sv00008086sd00003014* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 VM -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 VM) - - pci:v00008086d00002449sv00008086sd00003015* -- ID_MODEL_FROM_DATABASE=82562EH based Phoneline -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (82562EH based Phoneline) - - pci:v00008086d00002449sv00008086sd00003016* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile Combo -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile Combo) - - pci:v00008086d00002449sv00008086sd00003017* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 P Mobile -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100 P Mobile) - - pci:v00008086d00002449sv00008086sd00003018* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 -+ ID_MODEL_FROM_DATABASE=82801BA/BAM/CA/CAM Ethernet Controller (EtherExpress PRO/100) - - pci:v00008086d0000244A* - ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller - - pci:v00008086d0000244Asv00001025sd00001016* -- ID_MODEL_FROM_DATABASE=Travelmate 612TX -+ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Travelmate 612TX) - - pci:v00008086d0000244Asv0000104Dsd000080DF* -- ID_MODEL_FROM_DATABASE=Vaio PCG-FX403 -+ ID_MODEL_FROM_DATABASE=82801BAM IDE U100 Controller (Vaio PCG-FX403) - - pci:v00008086d0000244B* - ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller - - pci:v00008086d0000244Bsv00001014sd000001C6* -- ID_MODEL_FROM_DATABASE=Netvista A40/A40p -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Netvista A40/A40p) - - pci:v00008086d0000244Bsv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Dimension 8100) - - pci:v00008086d0000244Bsv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Precision 530) - - pci:v00008086d0000244Bsv00001028sd0000010E* -- ID_MODEL_FROM_DATABASE=Optiplex GX240 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Optiplex GX240) - - pci:v00008086d0000244Bsv0000103Csd0000126F* -- ID_MODEL_FROM_DATABASE=e-pc 40 -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (e-pc 40) - - pci:v00008086d0000244Bsv00001043sd00008027* -- ID_MODEL_FROM_DATABASE=TUSL2-C Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TUSL2-C Mainboard) - - pci:v00008086d0000244Bsv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (TH7II-RAID) - - pci:v00008086d0000244Bsv000015D9sd00003280* -- ID_MODEL_FROM_DATABASE=Supermicro P4SBE Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (Supermicro P4SBE Mainboard) - - pci:v00008086d0000244Bsv00008086sd00004532* -- ID_MODEL_FROM_DATABASE=D815EEA2 mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EEA2 mainboard) - - pci:v00008086d0000244Bsv00008086sd00004557* -- ID_MODEL_FROM_DATABASE=D815EGEW Mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (D815EGEW Mainboard) - - pci:v00008086d0000244Bsv00008086sd00005744* -- ID_MODEL_FROM_DATABASE=S845WD1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801BA IDE U100 Controller (S845WD1-E mainboard) - - pci:v00008086d0000244C* - ID_MODEL_FROM_DATABASE=82801BAM ISA Bridge (LPC) -@@ -61218,52 +61218,52 @@ pci:v00008086d0000244E* - ID_MODEL_FROM_DATABASE=82801 PCI Bridge - - pci:v00008086d0000244Esv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (NetVista A30p) - - pci:v00008086d0000244Esv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Inspiron 530) - - pci:v00008086d0000244Esv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Optiplex 755) - - pci:v00008086d0000244Esv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (OptiPlex 980) - - pci:v00008086d0000244Esv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Pavilion A1512X) - - pci:v00008086d0000244Esv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000244Esv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant DL140 G3) - - pci:v00008086d0000244Esv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (ProLiant ML150 G6 Server) - - pci:v00008086d0000244Esv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P5K PRO Motherboard) - - pci:v00008086d0000244Esv00001043sd0000844D* -- ID_MODEL_FROM_DATABASE=P8 series motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (P8 series motherboard) - - pci:v00008086d0000244Esv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Motherboard) - - pci:v00008086d0000244Esv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Wind PC MS-7418) - - pci:v00008086d0000244Esv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (C7SIM-Q Motherboard) - - pci:v00008086d0000244Esv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (X7DBN Motherboard) - - pci:v00008086d0000244Esv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (CC11/CL11) - - pci:v00008086d0000244Esv00008086sd00007270* -- ID_MODEL_FROM_DATABASE=Server Board S1200BTS -+ ID_MODEL_FROM_DATABASE=82801 PCI Bridge (Server Board S1200BTS) - - pci:v00008086d00002450* - ID_MODEL_FROM_DATABASE=82801E ISA Bridge (LPC) -@@ -61293,160 +61293,160 @@ pci:v00008086d00002482* - ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 - - pci:v00008086d00002482sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Evo N600c) - - pci:v00008086d00002482sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (ThinkPad A/T/X Series) - - pci:v00008086d00002482sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002482sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (P4DP6) - - pci:v00008086d00002482sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (vpr Matrix 170B4) - - pci:v00008086d00002482sv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (SE7501HG2 Mainboard) - - pci:v00008086d00002482sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #1 (Latitude C640) - - pci:v00008086d00002483* - ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller - - pci:v00008086d00002483sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002483sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002483sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (P4DP6) - - pci:v00008086d00002483sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM SMBus Controller (vpr Matrix 170B4) - - pci:v00008086d00002484* - ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 - - pci:v00008086d00002484sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (Evo N600c) - - pci:v00008086d00002484sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (ThinkPad A/T/X Series) - - pci:v00008086d00002484sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002484sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (P4DP6) - - pci:v00008086d00002484sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #2 (vpr Matrix 170B4) - - pci:v00008086d00002485* - ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller - - pci:v00008086d00002485sv00001013sd00005959* -- ID_MODEL_FROM_DATABASE=Crystal WMD Audio Codec -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (Crystal WMD Audio Codec) - - pci:v00008086d00002485sv00001014sd00000222* -- ID_MODEL_FROM_DATABASE=ThinkPad A30/A30p/T23 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A30/A30p/T23) - - pci:v00008086d00002485sv00001014sd00000508* -- ID_MODEL_FROM_DATABASE=ThinkPad T30 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad T30) - - pci:v00008086d00002485sv00001014sd0000051C* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002485sv00001043sd00001583* -- ID_MODEL_FROM_DATABASE=L3C (SPDIF) -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3C (SPDIF)) - - pci:v00008086d00002485sv00001043sd00001623* -- ID_MODEL_FROM_DATABASE=L2B (no SPDIF) -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L2B (no SPDIF)) - - pci:v00008086d00002485sv00001043sd00001643* -- ID_MODEL_FROM_DATABASE=L3F -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (L3F) - - pci:v00008086d00002485sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002485sv0000144Dsd0000C006* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Audio Controller (vpr Matrix 170B4) - - pci:v00008086d00002486* - ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller - - pci:v00008086d00002486sv00001014sd00000223* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002486sv00001014sd00000503* -- ID_MODEL_FROM_DATABASE=ThinkPad R31 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad R31) - - pci:v00008086d00002486sv00001014sd0000051A* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (ThinkPad A/T/X Series) - - pci:v00008086d00002486sv0000101Fsd00001025* -- ID_MODEL_FROM_DATABASE=620 Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (620 Series) - - pci:v00008086d00002486sv00001043sd00001496* -- ID_MODEL_FROM_DATABASE=PCtel HSP56 MR -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (PCtel HSP56 MR) - - pci:v00008086d00002486sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002486sv0000134Dsd00004C21* -- ID_MODEL_FROM_DATABASE=Dell Inspiron 2100 internal modem -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (Dell Inspiron 2100 internal modem) - - pci:v00008086d00002486sv0000144Dsd00002115* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 internal modem -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (vpr Matrix 170B4 internal modem) - - pci:v00008086d00002486sv000014F1sd00005421* -- ID_MODEL_FROM_DATABASE=MD56ORD V.92 MDC Modem -+ ID_MODEL_FROM_DATABASE=82801CA/CAM AC'97 Modem Controller (MD56ORD V.92 MDC Modem) - - pci:v00008086d00002487* - ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 - - pci:v00008086d00002487sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (Evo N600c) - - pci:v00008086d00002487sv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (ThinkPad A/T/X Series) - - pci:v00008086d00002487sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00002487sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (P4DP6) - - pci:v00008086d00002487sv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CA/CAM USB Controller #3 (vpr Matrix 170B4) - - pci:v00008086d0000248A* - ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller - - pci:v00008086d0000248Asv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Evo N600c) - - pci:v00008086d0000248Asv00001014sd00000220* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (ThinkPad A/T/X Series) - - pci:v00008086d0000248Asv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d0000248Asv00008086sd00001958* -- ID_MODEL_FROM_DATABASE=vpr Matrix 170B4 -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (vpr Matrix 170B4) - - pci:v00008086d0000248Asv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude C640 -+ ID_MODEL_FROM_DATABASE=82801CAM IDE U100 Controller (Latitude C640) - - pci:v00008086d0000248B* - ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller - - pci:v00008086d0000248Bsv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=82801CA Ultra ATA Storage Controller (P4DP6) - - pci:v00008086d0000248C* - ID_MODEL_FROM_DATABASE=82801CAM ISA Bridge (LPC) -@@ -61455,10 +61455,10 @@ pci:v00008086d000024C0* - ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge - - pci:v00008086d000024C0sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (NetVista A30p) - - pci:v00008086d000024C0sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (845PE Max (MS-6580)) - - pci:v00008086d000024C1* - ID_MODEL_FROM_DATABASE=82801DBL (ICH4-L) IDE Controller -@@ -61467,574 +61467,574 @@ pci:v00008086d000024C2* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 - - pci:v00008086d000024C2sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NetVista A30p) - - pci:v00008086d000024C2sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (ThinkPad) - - pci:v00008086d000024C2sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (TravelMate 290) - - pci:v00008086d000024C2sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Optiplex GX260) - - pci:v00008086d000024C2sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D505) - - pci:v00008086d000024C2sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 700m/710m) - - pci:v00008086d000024C2sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Inspiron 5160) - - pci:v00008086d000024C2sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC8000 laptop) - - pci:v00008086d000024C2sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (NC6000 laptop) - - pci:v00008086d000024C2sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (tc1100 tablet) - - pci:v00008086d000024C2sv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P4B533) - - pci:v00008086d000024C2sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (MIM2000) - - pci:v00008086d000024C2sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard USB 1.x -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (PC8 onboard USB 1.x) - - pci:v00008086d000024C2sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (X10 Laptop) - - pci:v00008086d000024C2sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (P30/P35 notebook) - - pci:v00008086d000024C2sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (845PE Max (MS-6580)) - - pci:v00008086d000024C2sv00001509sd00002990* -- ID_MODEL_FROM_DATABASE=Averatec 5110H laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Averatec 5110H laptop) - - pci:v00008086d000024C2sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C2sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Amilo M1420) - - pci:v00008086d000024C2sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C2sv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude X300) - - pci:v00008086d000024C2sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (Latitude D400/D500) - - pci:v00008086d000024C2sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CC9-SAMBA) - - pci:v00008086d000024C2sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (CD2-BEBOP) - - pci:v00008086d000024C3* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller - - pci:v00008086d000024C3sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NetVista A30p) - - pci:v00008086d000024C3sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (ThinkPad) - - pci:v00008086d000024C3sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (TravelMate 290) - - pci:v00008086d000024C3sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Optiplex GX260) - - pci:v00008086d000024C3sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Latitude X300) - - pci:v00008086d000024C3sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Inspiron 700m/710m) - - pci:v00008086d000024C3sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC8000 laptop) - - pci:v00008086d000024C3sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (NC6000 laptop) - - pci:v00008086d000024C3sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (tc1100 tablet) - - pci:v00008086d000024C3sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (MIM2000) - - pci:v00008086d000024C3sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard SMbus -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (PC8 onboard SMbus) - - pci:v00008086d000024C3sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (X10 Laptop) - - pci:v00008086d000024C3sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (P30/P35 notebook) - - pci:v00008086d000024C3sv00001458sd000024C2* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (GA-8PE667 Ultra) - - pci:v00008086d000024C3sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (845PE Max (MS-6580)) - - pci:v00008086d000024C3sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C3sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Amilo M1420) - - pci:v00008086d000024C3sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C3sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CC9-SAMBA) - - pci:v00008086d000024C3sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (CD2-BEBOP) - - pci:v00008086d000024C4* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 - - pci:v00008086d000024C4sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NetVista A30p) - - pci:v00008086d000024C4sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (ThinkPad) - - pci:v00008086d000024C4sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (TravelMate 290) - - pci:v00008086d000024C4sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Optiplex GX260) - - pci:v00008086d000024C4sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D505) - - pci:v00008086d000024C4sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 700m/710m) - - pci:v00008086d000024C4sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Inspiron 5160) - - pci:v00008086d000024C4sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC8000 laptop) - - pci:v00008086d000024C4sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (NC6000 laptop) - - pci:v00008086d000024C4sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (tc1100 tablet) - - pci:v00008086d000024C4sv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P4B533) - - pci:v00008086d000024C4sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (MIM2000) - - pci:v00008086d000024C4sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (P30/P35 notebook) - - pci:v00008086d000024C4sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (845PE Max (MS-6580)) - - pci:v00008086d000024C4sv00001509sd00002990* -- ID_MODEL_FROM_DATABASE=Averatec 5110H -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Averatec 5110H) - - pci:v00008086d000024C4sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C4sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C4sv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude X300) - - pci:v00008086d000024C4sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (Latitude D400/D500) - - pci:v00008086d000024C4sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CC9-SAMBA) - - pci:v00008086d000024C4sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (CD2-BEBOP) - - pci:v00008086d000024C5* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller - - pci:v00008086d000024C5sv00000E11sd000000B8* -- ID_MODEL_FROM_DATABASE=Analog Devices Inc. codec [SoundMAX] -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Analog Devices Inc. codec [SoundMAX]) - - pci:v00008086d000024C5sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) - - pci:v00008086d000024C5sv00001014sd00000537* -- ID_MODEL_FROM_DATABASE=ThinkPad T41 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) - - pci:v00008086d000024C5sv00001014sd0000055F* -- ID_MODEL_FROM_DATABASE=Thinkpad R50e model 1634 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) - - pci:v00008086d000024C5sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (TravelMate 290) - - pci:v00008086d000024C5sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D400) - - pci:v00008086d000024C5sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude X300) - - pci:v00008086d000024C5sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D500) - - pci:v00008086d000024C5sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Latitude D505) - - pci:v00008086d000024C5sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m [SigmaTel STAC9750,51] -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 700m/710m [SigmaTel STAC9750,51]) - - pci:v00008086d000024C5sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Inspiron 5160) - - pci:v00008086d000024C5sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC8000 laptop) - - pci:v00008086d000024C5sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NC6000 laptop) - - pci:v00008086d000024C5sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (tc1100 tablet) - - pci:v00008086d000024C5sv00001043sd00001713* -- ID_MODEL_FROM_DATABASE=M2400N/M6800N laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (M2400N/M6800N laptop) - - pci:v00008086d000024C5sv00001043sd000080B0* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P4B533) - - pci:v00008086d000024C5sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (MIM2000) - - pci:v00008086d000024C5sv00001179sd00000201* -- ID_MODEL_FROM_DATABASE=Toshiba Tecra M1 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Toshiba Tecra M1) - - pci:v00008086d000024C5sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (X10 Laptop) - - pci:v00008086d000024C5sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (P30/P35 notebook) - - pci:v00008086d000024C5sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (GA-8PE667 Ultra) - - pci:v00008086d000024C5sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (845PE Max (MS-6580)) - - pci:v00008086d000024C5sv00001734sd00001005* -- ID_MODEL_FROM_DATABASE=D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T) - - pci:v00008086d000024C5sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Amilo M1420) - - pci:v00008086d000024C5sv00008086sd000024C5* -- ID_MODEL_FROM_DATABASE=Dell Dimension 2400 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Dell Dimension 2400) - - pci:v00008086d000024C6* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller - - pci:v00008086d000024C6sv00001014sd00000524* -- ID_MODEL_FROM_DATABASE=ThinkPad T41 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) - - pci:v00008086d000024C6sv00001014sd00000525* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) - - pci:v00008086d000024C6sv00001014sd00000559* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad R50e) - - pci:v00008086d000024C6sv00001025sd0000003C* -- ID_MODEL_FROM_DATABASE=Aspire 2001WLCi (Compal CL50 motherboard) implementation -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Aspire 2001WLCi (Compal CL50 motherboard) implementation) - - pci:v00008086d000024C6sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (TravelMate 290) - - pci:v00008086d000024C6sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Inspiron 5160) - - pci:v00008086d000024C6sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC8000 laptop) - - pci:v00008086d000024C6sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (NC6000 laptop) - - pci:v00008086d000024C6sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (tc1100 tablet) - - pci:v00008086d000024C6sv00001043sd00001716* -- ID_MODEL_FROM_DATABASE=M2400N laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M2400N laptop) - - pci:v00008086d000024C6sv00001043sd00001826* -- ID_MODEL_FROM_DATABASE=M6800N -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (M6800N) - - pci:v00008086d000024C6sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (MIM2000) - - pci:v00008086d000024C6sv0000134Dsd00004C21* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (Latitude D500) - - pci:v00008086d000024C6sv0000144Dsd00002115* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (X10 Laptop) - - pci:v00008086d000024C6sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (P30/P35 notebook) - - pci:v00008086d000024C6sv000014F1sd00005422* -- ID_MODEL_FROM_DATABASE=D480 MDC V.9x Modem -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (D480 MDC V.9x Modem) - - pci:v00008086d000024C7* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 - - pci:v00008086d000024C7sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NetVista A30p) - - pci:v00008086d000024C7sv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (ThinkPad) - - pci:v00008086d000024C7sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (TravelMate 290) - - pci:v00008086d000024C7sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Optiplex GX260) - - pci:v00008086d000024C7sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D505) - - pci:v00008086d000024C7sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 700m/710m) - - pci:v00008086d000024C7sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Inspiron 5160) - - pci:v00008086d000024C7sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC8000 laptop) - - pci:v00008086d000024C7sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (NC6000 laptop) - - pci:v00008086d000024C7sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (tc1100 tablet) - - pci:v00008086d000024C7sv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P4B533) - - pci:v00008086d000024C7sv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (MIM2000) - - pci:v00008086d000024C7sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (P30/P35 notebook) - - pci:v00008086d000024C7sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (845PE Max (MS-6580)) - - pci:v00008086d000024C7sv00001509sd00002990* -- ID_MODEL_FROM_DATABASE=Averatec 5110H -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Averatec 5110H) - - pci:v00008086d000024C7sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024C7sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Cx9 / Vx9 mainboard) - - pci:v00008086d000024C7sv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude X300) - - pci:v00008086d000024C7sv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (Latitude D400/D500) - - pci:v00008086d000024C7sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CC9-SAMBA) - - pci:v00008086d000024C7sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (CD2-BEBOP) - - pci:v00008086d000024CA* - ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller - - pci:v00008086d000024CAsv00001014sd0000052D* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (ThinkPad) - - pci:v00008086d000024CAsv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (TravelMate 290) - - pci:v00008086d000024CAsv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude X300) - - pci:v00008086d000024CAsv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D505) - - pci:v00008086d000024CAsv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 700m/710m) - - pci:v00008086d000024CAsv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Inspiron 5160) - - pci:v00008086d000024CAsv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC8000 laptop) - - pci:v00008086d000024CAsv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (NC6000 laptop) - - pci:v00008086d000024CAsv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (tc1100 tablet) - - pci:v00008086d000024CAsv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (MIM2000) - - pci:v00008086d000024CAsv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (X10 Laptop) - - pci:v00008086d000024CAsv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (P30/P35 notebook) - - pci:v00008086d000024CAsv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Amilo M1420) - - pci:v00008086d000024CAsv00008086sd00004541* -- ID_MODEL_FROM_DATABASE=Latitude D400/D500 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) IDE Controller (Latitude D400/D500) - - pci:v00008086d000024CB* - ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller - - pci:v00008086d000024CBsv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (NetVista A30p) - - pci:v00008086d000024CBsv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Optiplex GX260) - - pci:v00008086d000024CBsv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (P4B533) - - pci:v00008086d000024CBsv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard IDE -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (PC8 onboard IDE) - - pci:v00008086d000024CBsv00001458sd000024C2* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (GA-8PE667 Ultra) - - pci:v00008086d000024CBsv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (845PE Max (MS-6580)) - - pci:v00008086d000024CBsv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024CBsv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d000024CBsv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CC9-SAMBA) - - pci:v00008086d000024CBsv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB (ICH4) IDE Controller (CD2-BEBOP) - - pci:v00008086d000024CC* - ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge - - pci:v00008086d000024CCsv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (P30 notebook) - - pci:v00008086d000024CCsv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DBM (ICH4-M) LPC Interface Bridge (Amilo M1420) - - pci:v00008086d000024CD* - ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller - - pci:v00008086d000024CDsv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NetVista A30p) - - pci:v00008086d000024CDsv00001014sd0000052E* -- ID_MODEL_FROM_DATABASE=ThinkPad -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (ThinkPad) - - pci:v00008086d000024CDsv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (TravelMate 290) - - pci:v00008086d000024CDsv00001028sd0000011D* -- ID_MODEL_FROM_DATABASE=Latitude D600 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D600) - - pci:v00008086d000024CDsv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Optiplex GX260) - - pci:v00008086d000024CDsv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D400) - - pci:v00008086d000024CDsv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D500) - - pci:v00008086d000024CDsv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude D505) - - pci:v00008086d000024CDsv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 700m/710m) - - pci:v00008086d000024CDsv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Inspiron 5160) - - pci:v00008086d000024CDsv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC8000 laptop) - - pci:v00008086d000024CDsv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (NC6000 laptop) - - pci:v00008086d000024CDsv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (tc1100 tablet) - - pci:v00008086d000024CDsv00001043sd00008089* -- ID_MODEL_FROM_DATABASE=P4B533 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P4B533) - - pci:v00008086d000024CDsv00001071sd00008160* -- ID_MODEL_FROM_DATABASE=MIM2000 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (MIM2000) - - pci:v00008086d000024CDsv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 onboard USB 2.0 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (PC8 onboard USB 2.0) - - pci:v00008086d000024CDsv00001179sd0000FF00* -- ID_MODEL_FROM_DATABASE=Satellite 2430 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Satellite 2430) - - pci:v00008086d000024CDsv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (X10 Laptop) - - pci:v00008086d000024CDsv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (P30/P35 notebook) - - pci:v00008086d000024CDsv00001462sd00003981* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (845PE Max (MS-6580)) - - pci:v00008086d000024CDsv00001509sd00001968* -- ID_MODEL_FROM_DATABASE=Averatec 5110H -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Averatec 5110H) - - pci:v00008086d000024CDsv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d000024CDsv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Amilo M1420) - - pci:v00008086d000024CDsv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (QEMU Virtual Machine) - - pci:v00008086d000024CDsv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d000024CDsv00008086sd000024C2* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (Latitude X300) - - pci:v00008086d000024CDsv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CC9-SAMBA) - - pci:v00008086d000024CDsv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (CD2-BEBOP) - - pci:v00008086d000024D0* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) LPC Interface Bridge -@@ -62043,436 +62043,436 @@ pci:v00008086d000024D1* - ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller - - pci:v00008086d000024D1sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D1sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Precision 470) - - pci:v00008086d000024D1sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (PowerEdge SC1425) - - pci:v00008086d000024D1sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (d530 CMT (DG746A)) - - pci:v00008086d000024D1sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (ProLiant DL140 G2) - - pci:v00008086d000024D1sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4P800 series motherboard) - - pci:v00008086d000024D1sv00001458sd000024D1* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D1sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D1sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D1sv00001565sd00005200* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4TSV Motherboard (865G)) - - pci:v00008086d000024D1sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (P4SCE Mainboard) - - pci:v00008086d000024D1sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (S875WP1-E mainboard) - - pci:v00008086d000024D1sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GBF) - - pci:v00008086d000024D1sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (Desktop Board D865GLC) - - pci:v00008086d000024D1sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB (ICH5) SATA Controller (D865PERL mainboard) - - pci:v00008086d000024D2* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 - - pci:v00008086d000024D2sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) - - pci:v00008086d000024D2sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (eServer xSeries server mainboard) - - pci:v00008086d000024D2sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D2sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Precision 470) - - pci:v00008086d000024D2sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1850 onboard UHCI) - - pci:v00008086d000024D2sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 2850 onboard UHCI) - - pci:v00008086d000024D2sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 6850 onboard UHCI) - - pci:v00008086d000024D2sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge 1800) - - pci:v00008086d000024D2sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PowerEdge SC1425) - - pci:v00008086d000024D2sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (NX9500) - - pci:v00008086d000024D2sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (d530 CMT (DG746A)) - - pci:v00008086d000024D2sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (ProLiant DL140 G2) - - pci:v00008086d000024D2sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D2sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (GA-8IPE1000/8KNXP motherboard) - - pci:v00008086d000024D2sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D2sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4TSV Motherboard (865G)) - - pci:v00008086d000024D2sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (P4SCE Mainboard) - - pci:v00008086d000024D2sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (PRIMERGY RX/TX series onboard UHCI) - - pci:v00008086d000024D2sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (S875WP1-E mainboard) - - pci:v00008086d000024D2sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GBF) - - pci:v00008086d000024D2sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (Desktop Board D865GLC) - - pci:v00008086d000024D2sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (D865PERL mainboard) - - pci:v00008086d000024D3* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller - - pci:v00008086d000024D3sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) - - pci:v00008086d000024D3sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (eServer xSeries server mainboard) - - pci:v00008086d000024D3sv00001028sd00000156* -- ID_MODEL_FROM_DATABASE=Precision 360 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 360) - - pci:v00008086d000024D3sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D3sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Precision 470) - - pci:v00008086d000024D3sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d330 uT -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (d330 uT) - - pci:v00008086d000024D3sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (ProLiant DL140 G2) - - pci:v00008086d000024D3sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D3sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D3sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D3sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D3sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4TSV Motherboard (865G)) - - pci:v00008086d000024D3sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (P4SCE Mainboard) - - pci:v00008086d000024D3sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series SMBus -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (PRIMERGY RX/TX S2 series SMBus) - - pci:v00008086d000024D3sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (S875WP1-E mainboard) - - pci:v00008086d000024D3sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GBF) - - pci:v00008086d000024D3sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (Desktop Board D865GLC) - - pci:v00008086d000024D3sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) SMBus Controller (D865PERL mainboard) - - pci:v00008086d000024D4* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 - - pci:v00008086d000024D4sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) - - pci:v00008086d000024D4sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (eServer xSeries server mainboard) - - pci:v00008086d000024D4sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D4sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Precision 470) - - pci:v00008086d000024D4sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1850 onboard UHCI) - - pci:v00008086d000024D4sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 2850 onboard UHCI) - - pci:v00008086d000024D4sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 6850 onboard UHCI) - - pci:v00008086d000024D4sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge 1800) - - pci:v00008086d000024D4sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PowerEdge SC1425) - - pci:v00008086d000024D4sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (NX9500) - - pci:v00008086d000024D4sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (d530 CMT (DG746A)) - - pci:v00008086d000024D4sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (ProLiant DL140 G2) - - pci:v00008086d000024D4sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D4sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D4sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D4sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D4sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4TSV Motherboard (865G)) - - pci:v00008086d000024D4sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (P4SCE Mainboard) - - pci:v00008086d000024D4sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (PRIMERGY RX/TX S2 series onboard UHCI) - - pci:v00008086d000024D4sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (S875WP1-E mainboard) - - pci:v00008086d000024D4sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GBF) - - pci:v00008086d000024D4sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (Desktop Board D865GLC) - - pci:v00008086d000024D4sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (D865PERL mainboard) - - pci:v00008086d000024D5* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller - - pci:v00008086d000024D5sv0000100Asd0000147B* -- ID_MODEL_FROM_DATABASE=Abit IS7-E motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Abit IS7-E motherboard) - - pci:v00008086d000024D5sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D5sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Precision 470) - - pci:v00008086d000024D5sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (NX9500) - - pci:v00008086d000024D5sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d330 uT -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (d330 uT) - - pci:v00008086d000024D5sv00001043sd000080F3* -- ID_MODEL_FROM_DATABASE=P4P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P4P800 series motherboard) - - pci:v00008086d000024D5sv00001043sd0000810F* -- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (P5P800-MX Mainboard) - - pci:v00008086d000024D5sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000/8KNXP motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (GA-8IPE1000/8KNXP motherboard) - - pci:v00008086d000024D5sv00001462sd00000080* -- ID_MODEL_FROM_DATABASE=865PE Neo2-V (MS-6788) Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2-V (MS-6788) Mainboard) - - pci:v00008086d000024D5sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D5sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D5sv00008086sd0000A000* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) - - pci:v00008086d000024D5sv00008086sd0000E000* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (D865PERL mainboard) - - pci:v00008086d000024D5sv00008086sd0000E001* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Desktop Board D865GBF) - - pci:v00008086d000024D5sv00008086sd0000E002* -- ID_MODEL_FROM_DATABASE=SoundMax Intergrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (SoundMax Intergrated Digital Audio) - - pci:v00008086d000024D6* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller - - pci:v00008086d000024D6sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller (NX9500) - - pci:v00008086d000024D7* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 - - pci:v00008086d000024D7sv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (xSeries server mainboard) - - pci:v00008086d000024D7sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024D7sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Precision 470) - - pci:v00008086d000024D7sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1850 onboard UHCI) - - pci:v00008086d000024D7sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 2850 onboard UHCI) - - pci:v00008086d000024D7sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 6850 onboard UHCI) - - pci:v00008086d000024D7sv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PowerEdge 1800) - - pci:v00008086d000024D7sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (NX9500) - - pci:v00008086d000024D7sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (d530 CMT (DG746A)) - - pci:v00008086d000024D7sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024D7sv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024D7sv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024D7sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024D7sv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4TSV Motherboard (865G)) - - pci:v00008086d000024D7sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (P4SCE Mainboard) - - pci:v00008086d000024D7sv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (PRIMERGY RX/TX S2 series onboard UHCI) - - pci:v00008086d000024D7sv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (S875WP1-E mainboard) - - pci:v00008086d000024D7sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GBF) - - pci:v00008086d000024D7sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (Desktop Board D865GLC) - - pci:v00008086d000024D7sv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (D865PERL mainboard) - - pci:v00008086d000024DB* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller - - pci:v00008086d000024DBsv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DBsv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DBsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024DBsv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Precision 470) - - pci:v00008086d000024DBsv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 IDE Controller -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 1850 IDE Controller) - - pci:v00008086d000024DBsv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 IDE Controller -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 2850 IDE Controller) - - pci:v00008086d000024DBsv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 IDE Controller -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge 6850 IDE Controller) - - pci:v00008086d000024DBsv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PowerEdge SC1425) - - pci:v00008086d000024DBsv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (NX9500) - - pci:v00008086d000024DBsv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (d530 CMT (DG746A)) - - pci:v00008086d000024DBsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4P800/P5P800 series motherboard) - - pci:v00008086d000024DBsv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024DBsv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024DBsv00001462sd00007580* -- ID_MODEL_FROM_DATABASE=MSI 875P -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (MSI 875P) - - pci:v00008086d000024DBsv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024DBsv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4TSV Motherboard (865G)) - - pci:v00008086d000024DBsv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4SCE Mainboard) - - pci:v00008086d000024DBsv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard IDE -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (PRIMERGY RX/TX S2 series onboard IDE) - - pci:v00008086d000024DBsv00008086sd000024DB* -- ID_MODEL_FROM_DATABASE=P4C800 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (P4C800 Mainboard) - - pci:v00008086d000024DBsv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (S875WP1-E mainboard) - - pci:v00008086d000024DBsv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GBF) - - pci:v00008086d000024DBsv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (Desktop Board D865GLC) - - pci:v00008086d000024DBsv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) IDE Controller (D865PERL mainboard) - - pci:v00008086d000024DC* - ID_MODEL_FROM_DATABASE=82801EB (ICH5) LPC Interface Bridge -@@ -62481,142 +62481,142 @@ pci:v00008086d000024DD* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller - - pci:v00008086d000024DDsv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DDsv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (eServer xSeries server mainboard) - - pci:v00008086d000024DDsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024DDsv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Precision 470) - - pci:v00008086d000024DDsv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1850 onboard EHCI) - - pci:v00008086d000024DDsv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 2850 onboard EHCI) - - pci:v00008086d000024DDsv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 6850 onboard EHCI) - - pci:v00008086d000024DDsv00001028sd00000183* -- ID_MODEL_FROM_DATABASE=PowerEdge 1800 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge 1800) - - pci:v00008086d000024DDsv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (PowerEdge SC1425) - - pci:v00008086d000024DDsv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (NX9500) - - pci:v00008086d000024DDsv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d530 CMT (DG746A) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (d530 CMT (DG746A)) - - pci:v00008086d000024DDsv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (ProLiant DL140 G2) - - pci:v00008086d000024DDsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (P4P800/P5P800 series motherboard) - - pci:v00008086d000024DDsv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024DDsv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (865PE Neo2 (MS-6728)) - - pci:v00008086d000024DDsv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024DDsv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (S875WP1-E mainboard) - - pci:v00008086d000024DDsv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GBF) - - pci:v00008086d000024DDsv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (Desktop Board D865GLC) - - pci:v00008086d000024DDsv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (D865PERL mainboard) - - pci:v00008086d000024DE* - ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 - - pci:v00008086d000024DEsv00001014sd000002ED* -- ID_MODEL_FROM_DATABASE=xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (xSeries server mainboard) - - pci:v00008086d000024DEsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision Workstation 670 Mainboard) - - pci:v00008086d000024DEsv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Precision 470) - - pci:v00008086d000024DEsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4P800/P5P800 series motherboard) - - pci:v00008086d000024DEsv00001458sd000024D2* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d000024DEsv00001462sd00007280* -- ID_MODEL_FROM_DATABASE=865PE Neo2 (MS-6728) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (865PE Neo2 (MS-6728)) - - pci:v00008086d000024DEsv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Hetis 865GV-E (MS-7065)) - - pci:v00008086d000024DEsv00001565sd00003101* -- ID_MODEL_FROM_DATABASE=P4TSV Motherboard (865G) -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4TSV Motherboard (865G)) - - pci:v00008086d000024DEsv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (P4SCE Mainboard) - - pci:v00008086d000024DEsv00001734sd0000101C* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (PRIMERGY RX/TX S2 series onboard UHCI) - - pci:v00008086d000024DEsv00008086sd00003427* -- ID_MODEL_FROM_DATABASE=S875WP1-E mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (S875WP1-E mainboard) - - pci:v00008086d000024DEsv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GBF) - - pci:v00008086d000024DEsv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (Desktop Board D865GLC) - - pci:v00008086d000024DEsv00008086sd0000524C* -- ID_MODEL_FROM_DATABASE=D865PERL mainboard -+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (D865PERL mainboard) - - pci:v00008086d000024DF* - ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller - - pci:v00008086d000024DFsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=82801ER (ICH5R) SATA Controller (Precision Workstation 670 Mainboard) - - pci:v00008086d000024F3* - ID_MODEL_FROM_DATABASE=Wireless 8260 - - pci:v00008086d000024F3sv00008086sd00000010* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) - - pci:v00008086d000024F4* - ID_MODEL_FROM_DATABASE=Wireless 8260 - - pci:v00008086d000024F4sv00008086sd00000030* -- ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 8260 -+ ID_MODEL_FROM_DATABASE=Wireless 8260 (Dual Band Wireless-AC 8260) - - pci:v00008086d00002500* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) - - pci:v00008086d00002500sv00001028sd00000095* -- ID_MODEL_FROM_DATABASE=Precision Workstation 220 Chipset -+ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (Precision Workstation 220 Chipset) - - pci:v00008086d00002500sv00001043sd0000801C* -- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset -+ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) - - pci:v00008086d00002501* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) - - pci:v00008086d00002501sv00001043sd0000801C* -- ID_MODEL_FROM_DATABASE=P3C-2000 system chipset -+ ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge (MCH) (P3C-2000 system chipset) - - pci:v00008086d0000250B* - ID_MODEL_FROM_DATABASE=82820 820 (Camino) Chipset Host Bridge -@@ -62634,16 +62634,16 @@ pci:v00008086d00002530* - ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) - - pci:v00008086d00002530sv00001028sd000000C7* -- ID_MODEL_FROM_DATABASE=Dimension 8100 -+ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (Dimension 8100) - - pci:v00008086d00002530sv0000147Bsd00000507* -- ID_MODEL_FROM_DATABASE=TH7II-RAID -+ ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset Host Bridge (MCH) (TH7II-RAID) - - pci:v00008086d00002531* - ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) - - pci:v00008086d00002531sv00001028sd000000D8* -- ID_MODEL_FROM_DATABASE=Precision 530 -+ ID_MODEL_FROM_DATABASE=82860 860 (Wombat) Chipset Host Bridge (MCH) (Precision 530) - - pci:v00008086d00002532* - ID_MODEL_FROM_DATABASE=82850 850 (Tehama) Chipset AGP Bridge -@@ -62658,19 +62658,19 @@ pci:v00008086d00002540* - ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub - - pci:v00008086d00002540sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=E7500 Memory Controller Hub (P4DP6) - - pci:v00008086d00002541* - ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller - - pci:v00008086d00002541sv000015D9sd00003480* -- ID_MODEL_FROM_DATABASE=P4DP6 -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (P4DP6) - - pci:v00008086d00002541sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d00002541sv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Host RASUM Controller (SE7501HG2 Mainboard) - - pci:v00008086d00002543* - ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B PCI-to-PCI Bridge -@@ -62679,7 +62679,7 @@ pci:v00008086d00002544* - ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller - - pci:v00008086d00002544sv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface B RASUM Controller (Cx9 / Vx9 mainboard) - - pci:v00008086d00002545* - ID_MODEL_FROM_DATABASE=E7500/E7501 Hub Interface C PCI-to-PCI Bridge -@@ -62697,10 +62697,10 @@ pci:v00008086d0000254C* - ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub - - pci:v00008086d0000254Csv00004C53sd00001090* -- ID_MODEL_FROM_DATABASE=Cx9 / Vx9 mainboard -+ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (Cx9 / Vx9 mainboard) - - pci:v00008086d0000254Csv00008086sd00003424* -- ID_MODEL_FROM_DATABASE=SE7501HG2 Mainboard -+ ID_MODEL_FROM_DATABASE=E7501 Memory Controller Hub (SE7501HG2 Mainboard) - - pci:v00008086d00002550* - ID_MODEL_FROM_DATABASE=E7505 Memory Controller Hub -@@ -62724,13 +62724,13 @@ pci:v00008086d00002560* - ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface - - pci:v00008086d00002560sv00001028sd00000126* -- ID_MODEL_FROM_DATABASE=Optiplex GX260 -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (Optiplex GX260) - - pci:v00008086d00002560sv00001458sd00002560* -- ID_MODEL_FROM_DATABASE=GA-8PE667 Ultra -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (GA-8PE667 Ultra) - - pci:v00008086d00002560sv00001462sd00005800* -- ID_MODEL_FROM_DATABASE=845PE Max (MS-6580) -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (845PE Max (MS-6580)) - - pci:v00008086d00002561* - ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge -@@ -62739,31 +62739,31 @@ pci:v00008086d00002562* - ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device - - pci:v00008086d00002562sv00000E11sd000000B9* -- ID_MODEL_FROM_DATABASE=Evo D510 SFF -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (Evo D510 SFF) - - pci:v00008086d00002562sv00001014sd00000267* -- ID_MODEL_FROM_DATABASE=NetVista A30p -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (NetVista A30p) - - pci:v00008086d00002562sv00001734sd00001003* -- ID_MODEL_FROM_DATABASE=D1521 Mainboard (Fujitsu-Siemens) -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1521 Mainboard (Fujitsu-Siemens)) - - pci:v00008086d00002562sv00001734sd00001004* -- ID_MODEL_FROM_DATABASE=D1451 Mainboard (SCENIC N300, i845GV) -+ ID_MODEL_FROM_DATABASE=82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (D1451 Mainboard (SCENIC N300, i845GV)) - - pci:v00008086d00002570* - ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface - - pci:v00008086d00002570sv0000103Csd0000006A* -- ID_MODEL_FROM_DATABASE=NX9500 -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (NX9500) - - pci:v00008086d00002570sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=d330 uT -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (d330 uT) - - pci:v00008086d00002570sv00001043sd000080F2* -- ID_MODEL_FROM_DATABASE=P4P800/P5P800 series motherboard -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (P4P800/P5P800 series motherboard) - - pci:v00008086d00002570sv00001458sd00002570* -- ID_MODEL_FROM_DATABASE=GA-8IPE1000 Pro2 motherboard (865PE) -+ ID_MODEL_FROM_DATABASE=82865G/PE/P DRAM Controller/Host-Hub Interface (GA-8IPE1000 Pro2 motherboard (865PE)) - - pci:v00008086d00002571* - ID_MODEL_FROM_DATABASE=82865G/PE/P AGP Bridge -@@ -62772,25 +62772,25 @@ pci:v00008086d00002572* - ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller - - pci:v00008086d00002572sv00001028sd0000019D* -- ID_MODEL_FROM_DATABASE=Dimension 3000 -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Dimension 3000) - - pci:v00008086d00002572sv0000103Csd000012BC* -- ID_MODEL_FROM_DATABASE=D530 sff(dc578av) -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (D530 sff(dc578av)) - - pci:v00008086d00002572sv00001043sd000080A5* -- ID_MODEL_FROM_DATABASE=P5P800-MX Mainboard -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (P5P800-MX Mainboard) - - pci:v00008086d00002572sv00001462sd00007650* -- ID_MODEL_FROM_DATABASE=Hetis 865GV-E (MS-7065) -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Hetis 865GV-E (MS-7065)) - - pci:v00008086d00002572sv00001734sd0000101B* -- ID_MODEL_FROM_DATABASE=Fujitsu-Siemens Scenic E300 i865GV -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Fujitsu-Siemens Scenic E300 i865GV) - - pci:v00008086d00002572sv00008086sd00004246* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GBF -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GBF) - - pci:v00008086d00002572sv00008086sd00004C43* -- ID_MODEL_FROM_DATABASE=Desktop Board D865GLC -+ ID_MODEL_FROM_DATABASE=82865G Integrated Graphics Controller (Desktop Board D865GLC) - - pci:v00008086d00002573* - ID_MODEL_FROM_DATABASE=82865G/PE/P PCI to CSA Bridge -@@ -62802,13 +62802,13 @@ pci:v00008086d00002578* - ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub - - pci:v00008086d00002578sv00001458sd00002578* -- ID_MODEL_FROM_DATABASE=GA-8KNXP motherboard (875P) -+ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (GA-8KNXP motherboard (875P)) - - pci:v00008086d00002578sv00001462sd00007580* -- ID_MODEL_FROM_DATABASE=MS-6758 (875P Neo) -+ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (MS-6758 (875P Neo)) - - pci:v00008086d00002578sv000015D9sd00004580* -- ID_MODEL_FROM_DATABASE=P4SCE Motherboard -+ ID_MODEL_FROM_DATABASE=82875P/E7210 Memory Controller Hub (P4SCE Motherboard) - - pci:v00008086d00002579* - ID_MODEL_FROM_DATABASE=82875P Processor to AGP Controller -@@ -62823,13 +62823,13 @@ pci:v00008086d00002580* - ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub - - pci:v00008086d00002580sv00001458sd00002580* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (GA-8I915ME-G Mainboard) - - pci:v00008086d00002580sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (915P/G Neo2) - - pci:v00008086d00002580sv00001734sd0000105B* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL Memory Controller Hub (Scenic W620) - - pci:v00008086d00002581* - ID_MODEL_FROM_DATABASE=82915G/P/GV/GL/PL/910GL PCI Express Root Port -@@ -62838,28 +62838,28 @@ pci:v00008086d00002582* - ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller - - pci:v00008086d00002582sv00001028sd00001079* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Optiplex GX280) - - pci:v00008086d00002582sv0000103Csd00003006* -- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (DC7100 SFF(DX878AV)) - - pci:v00008086d00002582sv00001043sd00002582* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002582sv00001458sd00002582* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d00002582sv00001734sd0000105B* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (Scenic W620) - - pci:v00008086d00002582sv00001849sd00002582* -- ID_MODEL_FROM_DATABASE=ASRock P4Dual-915GL -+ ID_MODEL_FROM_DATABASE=82915G/GV/910GL Integrated Graphics Controller (ASRock P4Dual-915GL) - - pci:v00008086d00002584* - ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub - - pci:v00008086d00002584sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82925X/XE Memory Controller Hub (Dimension 8400) - - pci:v00008086d00002585* - ID_MODEL_FROM_DATABASE=82925X/XE PCI Express Root Port -@@ -62877,58 +62877,58 @@ pci:v00008086d00002590* - ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller - - pci:v00008086d00002590sv00001014sd00000575* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (ThinkPad Z60t) - - pci:v00008086d00002590sv00001028sd00000182* -- ID_MODEL_FROM_DATABASE=Dell Latitude C610 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Dell Latitude C610) - - pci:v00008086d00002590sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Compaq nw8240/nx8220) - - pci:v00008086d00002590sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (NX6110/NC6120) - - pci:v00008086d00002590sv0000104Dsd000081B7* -- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) - - pci:v00008086d00002590sv0000A304sd000081B7* -- ID_MODEL_FROM_DATABASE=Vaio VGN-S3XP -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (Vaio VGN-S3XP) - - pci:v00008086d00002590sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CCD-CALYPSO) - - pci:v00008086d00002590sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (CD3-JIVE) - - pci:v00008086d00002590sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (XB1) - - pci:v00008086d00002591* - ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port - - pci:v00008086d00002591sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/PM Express PCI Express Root Port (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002592* - ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller - - pci:v00008086d00002592sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) - - pci:v00008086d00002592sv0000103Csd0000308A* -- ID_MODEL_FROM_DATABASE=NC6220 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NC6220) - - pci:v00008086d00002592sv00001043sd00001881* -- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) - - pci:v00008086d00002592sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) - - pci:v00008086d00002592sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) - - pci:v00008086d00002592sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) - - pci:v00008086d000025A1* - ID_MODEL_FROM_DATABASE=6300ESB LPC Interface Controller -@@ -62937,79 +62937,79 @@ pci:v00008086d000025A2* - ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller - - pci:v00008086d000025A2sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A2sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer IDE -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (V5D Single Board Computer IDE) - - pci:v00008086d000025A2sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A2sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CE9) - - pci:v00008086d000025A2sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (CL9 mainboard) - - pci:v00008086d000025A2sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB PATA Storage Controller (PSL09 PrPMC) - - pci:v00008086d000025A3* - ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller - - pci:v00008086d000025A3sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A3sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A3sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CE9) - - pci:v00008086d000025A3sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (CL9 mainboard) - - pci:v00008086d000025A3sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025A3sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA Storage Controller (PSL09 PrPMC) - - pci:v00008086d000025A4* - ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller - - pci:v00008086d000025A4sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A4sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (V5D Single Board Computer) - - pci:v00008086d000025A4sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A4sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CE9) - - pci:v00008086d000025A4sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (CL9 mainboard) - - pci:v00008086d000025A4sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025A4sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB SMBus Controller (PSL09 PrPMC) - - pci:v00008086d000025A6* - ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller - - pci:v00008086d000025A6sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A6sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CE9) - - pci:v00008086d000025A6sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB AC'97 Audio Controller (CL9 mainboard) - - pci:v00008086d000025A7* - ID_MODEL_FROM_DATABASE=6300ESB AC'97 Modem Controller -@@ -63018,121 +63018,121 @@ pci:v00008086d000025A9* - ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller - - pci:v00008086d000025A9sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025A9sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (V5D Single Board Computer USB) - - pci:v00008086d000025A9sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025A9sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) - - pci:v00008086d000025A9sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) - - pci:v00008086d000025A9sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025A9sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) - - pci:v00008086d000025AA* - ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller - - pci:v00008086d000025AAsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025AAsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025AAsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CE9) - - pci:v00008086d000025AAsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (CL9 mainboard) - - pci:v00008086d000025AAsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025AAsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB Universal Host Controller (PSL09 PrPMC) - - pci:v00008086d000025AB* - ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer - - pci:v00008086d000025ABsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025ABsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (V5D Single Board Computer) - - pci:v00008086d000025ABsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CR11/VR11 Single Board Computer) - - pci:v00008086d000025ABsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CE9) - - pci:v00008086d000025ABsv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (QEMU Virtual Machine) - - pci:v00008086d000025ABsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (CL9 mainboard) - - pci:v00008086d000025ABsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (Telum ASLP10 Processor AMC) - - pci:v00008086d000025ABsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB Watchdog Timer (PSL09 PrPMC) - - pci:v00008086d000025AC* - ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller - - pci:v00008086d000025ACsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025ACsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (V5D Single Board Computer) - - pci:v00008086d000025ACsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025ACsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CE9) - - pci:v00008086d000025ACsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (CL9 mainboard) - - pci:v00008086d000025ACsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025ACsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB I/O Advanced Programmable Interrupt Controller (PSL09 PrPMC) - - pci:v00008086d000025AD* - ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller - - pci:v00008086d000025ADsv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d000025ADsv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer USB 2.0 -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (V5D Single Board Computer USB 2.0) - - pci:v00008086d000025ADsv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025ADsv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CE9) - - pci:v00008086d000025ADsv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (CL9 mainboard) - - pci:v00008086d000025ADsv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025ADsv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB USB2 Enhanced Host Controller (PSL09 PrPMC) - - pci:v00008086d000025AE* - ID_MODEL_FROM_DATABASE=6300ESB 64-bit PCI-X Bridge -@@ -63141,13 +63141,13 @@ pci:v00008086d000025B0* - ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller - - pci:v00008086d000025B0sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d000025B0sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d000025B0sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=6300ESB SATA RAID Controller (PSL09 PrPMC) - - pci:v00008086d000025C0* - ID_MODEL_FROM_DATABASE=5000X Chipset Memory Controller Hub -@@ -63159,16 +63159,16 @@ pci:v00008086d000025D4* - ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub - - pci:v00008086d000025D4sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000V Chipset Memory Controller Hub (X7DVL-E-O motherboard) - - pci:v00008086d000025D8* - ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub - - pci:v00008086d000025D8sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (X7DBN Motherboard) - - pci:v00008086d000025D8sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000P Chipset Memory Controller Hub (S5000PSLSATA Server Board) - - pci:v00008086d000025E2* - ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x4 Port 2 -@@ -63192,79 +63192,79 @@ pci:v00008086d000025F0* - ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers - - pci:v00008086d000025F0sv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 FSB Registers -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (PowerEdge 1955 FSB Registers) - - pci:v00008086d000025F0sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (ProLiant DL140 G3) - - pci:v00008086d000025F0sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F0sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (X7DBN Motherboard) - - pci:v00008086d000025F0sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FSB Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F1* - ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers - - pci:v00008086d000025F1sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) - - pci:v00008086d000025F1sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F1sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) - - pci:v00008086d000025F1sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F3* - ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers - - pci:v00008086d000025F3sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (ProLiant DL140 G3) - - pci:v00008086d000025F3sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F3sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (X7DBN Motherboard) - - pci:v00008086d000025F3sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset Reserved Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F5* - ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers - - pci:v00008086d000025F5sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) - - pci:v00008086d000025F5sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F5sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) - - pci:v00008086d000025F5sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F6* - ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers - - pci:v00008086d000025F6sv0000103Csd000031FD* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (ProLiant DL140 G3) - - pci:v00008086d000025F6sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DVL-E-O motherboard) - - pci:v00008086d000025F6sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (X7DBN Motherboard) - - pci:v00008086d000025F6sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=5000 Series Chipset FBD Registers (S5000PSLSATA Server Board) - - pci:v00008086d000025F7* - ID_MODEL_FROM_DATABASE=5000 Series Chipset PCI Express x8 Port 2-3 -@@ -63282,7 +63282,7 @@ pci:v00008086d00002600* - ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 - - pci:v00008086d00002600sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Hub Interface -+ ID_MODEL_FROM_DATABASE=E8500/E8501 Hub Interface 1.5 (PowerEdge 6850 Hub Interface) - - pci:v00008086d00002601* - ID_MODEL_FROM_DATABASE=E8500/E8501 PCI Express x4 Port D -@@ -63363,76 +63363,76 @@ pci:v00008086d00002620* - ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge - - pci:v00008086d00002620sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Bridge -+ ID_MODEL_FROM_DATABASE=E8500/E8501 eXternal Memory Bridge (PowerEdge 6850 Memory Bridge) - - pci:v00008086d00002621* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers - - pci:v00008086d00002621sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 XMB Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Miscellaneous Registers (PowerEdge 6850 XMB Registers) - - pci:v00008086d00002622* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers - - pci:v00008086d00002622sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Memory Interleaving Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Memory Interleaving Registers (PowerEdge 6850 Memory Interleaving Registers) - - pci:v00008086d00002623* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration - - pci:v00008086d00002623sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 DDR Initialization and Calibration -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB DDR Initialization and Calibration (PowerEdge 6850 DDR Initialization and Calibration) - - pci:v00008086d00002624* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002624sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002625* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002625sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002626* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002626sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002627* - ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers - - pci:v00008086d00002627sv00001028sd00000170* -- ID_MODEL_FROM_DATABASE=PowerEdge 6850 Reserved Registers -+ ID_MODEL_FROM_DATABASE=E8500/E8501 XMB Reserved Registers (PowerEdge 6850 Reserved Registers) - - pci:v00008086d00002640* - ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge - - pci:v00008086d00002640sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (915P/G Neo2) - - pci:v00008086d00002640sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (Scenic W620) - - pci:v00008086d00002640sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CCD-CALYPSO) - - pci:v00008086d00002640sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (CD3-JIVE) - - pci:v00008086d00002640sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (XB1) - - pci:v00008086d00002641* - ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge - - pci:v00008086d00002641sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (Compaq nw8240/nx8220) - - pci:v00008086d00002641sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) LPC Interface Bridge (NX6110/NC6120) - - pci:v00008086d00002642* - ID_MODEL_FROM_DATABASE=82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge -@@ -63441,34 +63441,34 @@ pci:v00008086d00002651* - ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller - - pci:v00008086d00002651sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Optiplex GX280) - - pci:v00008086d00002651sv00001043sd00002601* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002651sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (Scenic W620) - - pci:v00008086d00002651sv00008086sd00004147* -- ID_MODEL_FROM_DATABASE=D915GAG Motherboard -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (D915GAG Motherboard) - - pci:v00008086d00002651sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CCD-CALYPSO) - - pci:v00008086d00002651sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (CD3-JIVE) - - pci:v00008086d00002651sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FW (ICH6/ICH6W) SATA Controller (XB1) - - pci:v00008086d00002652* - ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller - - pci:v00008086d00002652sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (Dimension 8400) - - pci:v00008086d00002652sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FR/FRW (ICH6R/ICH6RW) SATA Controller (915P/G Neo2) - - pci:v00008086d00002653* - ID_MODEL_FROM_DATABASE=82801FBM (ICH6M) SATA Controller -@@ -63477,289 +63477,289 @@ pci:v00008086d00002658* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 - - pci:v00008086d00002658sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Dimension 8400) - - pci:v00008086d00002658sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Optiplex GX280) - - pci:v00008086d00002658sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Compaq nw8240/nx8220) - - pci:v00008086d00002658sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (NX6110/NC6120) - - pci:v00008086d00002658sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (P5GD1-VW Mainboard) - - pci:v00008086d00002658sv00001458sd00002558* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (GA-8I915ME-G Mainboard) - - pci:v00008086d00002658sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (915P/G Neo2) - - pci:v00008086d00002658sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (Scenic W620) - - pci:v00008086d00002658sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CCD-CALYPSO) - - pci:v00008086d00002658sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (CD3-JIVE) - - pci:v00008086d00002658sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (XB1) - - pci:v00008086d00002659* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 - - pci:v00008086d00002659sv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Dimension 8400) - - pci:v00008086d00002659sv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Optiplex GX280) - - pci:v00008086d00002659sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Compaq nw8240/nx8220) - - pci:v00008086d00002659sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (NX6110/NC6120) - - pci:v00008086d00002659sv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (P5GD1-VW Mainboard) - - pci:v00008086d00002659sv00001458sd00002659* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (GA-8I915ME-G Mainboard) - - pci:v00008086d00002659sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (915P/G Neo2) - - pci:v00008086d00002659sv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (Scenic W620) - - pci:v00008086d00002659sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CCD-CALYPSO) - - pci:v00008086d00002659sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (CD3-JIVE) - - pci:v00008086d00002659sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (XB1) - - pci:v00008086d0000265A* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 - - pci:v00008086d0000265Asv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Dimension 8400) - - pci:v00008086d0000265Asv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Optiplex GX280) - - pci:v00008086d0000265Asv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Compaq nw8240/nx8220) - - pci:v00008086d0000265Asv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (NX6110/NC6120) - - pci:v00008086d0000265Asv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (P5GD1-VW Mainboard) - - pci:v00008086d0000265Asv00001458sd0000265A* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (GA-8I915ME-G Mainboard) - - pci:v00008086d0000265Asv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (915P/G Neo2) - - pci:v00008086d0000265Asv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (Scenic W620) - - pci:v00008086d0000265Asv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CCD-CALYPSO) - - pci:v00008086d0000265Asv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (CD3-JIVE) - - pci:v00008086d0000265Asv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (XB1) - - pci:v00008086d0000265B* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 - - pci:v00008086d0000265Bsv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Dimension 8400) - - pci:v00008086d0000265Bsv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Optiplex GX280) - - pci:v00008086d0000265Bsv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (NX6110/NC6120) - - pci:v00008086d0000265Bsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (P5GD1-VW Mainboard) - - pci:v00008086d0000265Bsv00001458sd0000265A* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (GA-8I915ME-G Mainboard) - - pci:v00008086d0000265Bsv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (915P/G Neo2) - - pci:v00008086d0000265Bsv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (Scenic W620) - - pci:v00008086d0000265Bsv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CCD-CALYPSO) - - pci:v00008086d0000265Bsv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (CD3-JIVE) - - pci:v00008086d0000265Bsv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (XB1) - - pci:v00008086d0000265C* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller - - pci:v00008086d0000265Csv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 8400) - - pci:v00008086d0000265Csv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Optiplex GX280) - - pci:v00008086d0000265Csv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000265Csv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (NX6110/NC6120) - - pci:v00008086d0000265Csv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (P5GD1-VW Mainboard) - - pci:v00008086d0000265Csv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000265Csv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (915P/G Neo2) - - pci:v00008086d0000265Csv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Scenic W620) - - pci:v00008086d0000265Csv00008086sd0000265C* -- ID_MODEL_FROM_DATABASE=Dimension 3100 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (Dimension 3100) - - pci:v00008086d0000265Csv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CCD-CALYPSO) - - pci:v00008086d0000265Csv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (CD3-JIVE) - - pci:v00008086d0000265Csv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (XB1) - - pci:v00008086d00002660* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 - - pci:v00008086d00002660sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002660sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (NX6110/NC6120) - - pci:v00008086d00002660sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CCD-CALYPSO) - - pci:v00008086d00002660sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (CD3-JIVE) - - pci:v00008086d00002660sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (XB1) - - pci:v00008086d00002662* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 - - pci:v00008086d00002662sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=HP Compaq nw8240 Mobile Workstation -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (HP Compaq nw8240 Mobile Workstation) - - pci:v00008086d00002662sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CCD-CALYPSO) - - pci:v00008086d00002662sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (CD3-JIVE) - - pci:v00008086d00002662sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (XB1) - - pci:v00008086d00002664* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 - - pci:v00008086d00002664sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CCD-CALYPSO) - - pci:v00008086d00002664sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (CD3-JIVE) - - pci:v00008086d00002664sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (XB1) - - pci:v00008086d00002666* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 - - pci:v00008086d00002666sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CCD-CALYPSO) - - pci:v00008086d00002666sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (CD3-JIVE) - - pci:v00008086d00002666sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (XB1) - - pci:v00008086d00002668* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller - - pci:v00008086d00002668sv00001014sd000005B7* -- ID_MODEL_FROM_DATABASE=ThinkPad Z60t -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (ThinkPad Z60t) - - pci:v00008086d00002668sv0000103Csd00002A09* -- ID_MODEL_FROM_DATABASE=PufferM-UL8E -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (PufferM-UL8E) - - pci:v00008086d00002668sv00001043sd00001173* -- ID_MODEL_FROM_DATABASE=Asus A6VC -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (Asus A6VC) - - pci:v00008086d00002668sv00001043sd0000814E* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002668sv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (915P/G Neo2) - - pci:v00008086d00002668sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (QEMU Virtual Machine) - - pci:v00008086d0000266A* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller - - pci:v00008086d0000266Asv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Dimension 8400) - - pci:v00008086d0000266Asv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Optiplex GX280) - - pci:v00008086d0000266Asv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (P5GD1-VW Mainboard) - - pci:v00008086d0000266Asv00001458sd0000266A* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000266Asv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (915P/G Neo2) - - pci:v00008086d0000266Asv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (Scenic W620) - - pci:v00008086d0000266Asv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CCD-CALYPSO) - - pci:v00008086d0000266Asv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (CD3-JIVE) - - pci:v00008086d0000266Asv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (XB1) - - pci:v00008086d0000266C* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller -@@ -63768,103 +63768,103 @@ pci:v00008086d0000266D* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller - - pci:v00008086d0000266Dsv00001025sd0000006A* -- ID_MODEL_FROM_DATABASE=Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop) -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Conexant AC'97 CoDec (in Acer TravelMate 2410 serie laptop)) - - pci:v00008086d0000266Dsv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000266Dsv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (NX6110/NC6120) - - pci:v00008086d0000266E* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller - - pci:v00008086d0000266Esv00001025sd0000006A* -- ID_MODEL_FROM_DATABASE=Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop) -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Realtek ALC 655 codec (in Acer TravelMate 2410 serie laptop)) - - pci:v00008086d0000266Esv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dimension 8400) - - pci:v00008086d0000266Esv00001028sd00000179* -- ID_MODEL_FROM_DATABASE=Optiplex GX280 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Optiplex GX280) - - pci:v00008086d0000266Esv00001028sd00000182* -- ID_MODEL_FROM_DATABASE=Latitude D610 Laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Latitude D610 Laptop) - - pci:v00008086d0000266Esv00001028sd00000187* -- ID_MODEL_FROM_DATABASE=Dell Precision M70 Laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Dell Precision M70 Laptop) - - pci:v00008086d0000266Esv00001028sd00000188* -- ID_MODEL_FROM_DATABASE=Inspiron 6000 laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Inspiron 6000 laptop) - - pci:v00008086d0000266Esv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000266Esv0000103Csd00000944* -- ID_MODEL_FROM_DATABASE=Compaq NC6220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Compaq NC6220) - - pci:v00008086d0000266Esv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (NX6110/NC6120) - - pci:v00008086d0000266Esv0000103Csd00003006* -- ID_MODEL_FROM_DATABASE=DC7100 SFF(DX878AV) -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (DC7100 SFF(DX878AV)) - - pci:v00008086d0000266Esv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000266Esv0000152Dsd00000745* -- ID_MODEL_FROM_DATABASE=Packard Bell A8550 Laptop -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Packard Bell A8550 Laptop) - - pci:v00008086d0000266Esv00001734sd0000105A* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (Scenic W620) - - pci:v00008086d0000266F* - ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller - - pci:v00008086d0000266Fsv00001028sd00000177* -- ID_MODEL_FROM_DATABASE=Dimension 8400 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Dimension 8400) - - pci:v00008086d0000266Fsv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Compaq nw8240/nx8220) - - pci:v00008086d0000266Fsv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (NX6110/NC6120) - - pci:v00008086d0000266Fsv00001043sd000080A6* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (P5GD1-VW Mainboard) - - pci:v00008086d0000266Fsv00001458sd0000266F* -- ID_MODEL_FROM_DATABASE=GA-8I915ME-G Mainboard -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (GA-8I915ME-G Mainboard) - - pci:v00008086d0000266Fsv00001462sd00007028* -- ID_MODEL_FROM_DATABASE=915P/G Neo2 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (915P/G Neo2) - - pci:v00008086d0000266Fsv00001734sd0000105C* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (Scenic W620) - - pci:v00008086d0000266Fsv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CCD-CALYPSO) - - pci:v00008086d0000266Fsv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (CD3-JIVE) - - pci:v00008086d0000266Fsv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (XB1) - - pci:v00008086d00002670* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller - - pci:v00008086d00002670sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (ProLiant DL140 G3) - - pci:v00008086d00002670sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DVL-E-O motherboard) - - pci:v00008086d00002670sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (X7DBN Motherboard) - - pci:v00008086d00002670sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset LPC Interface Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002680* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SATA IDE Controller -@@ -63873,22 +63873,22 @@ pci:v00008086d00002681* - ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller - - pci:v00008086d00002681sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (ProLiant DL140 G3) - - pci:v00008086d00002681sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DVL-E-O motherboard) - - pci:v00008086d00002681sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (X7DBN Motherboard) - - pci:v00008086d00002681sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA AHCI Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002682* - ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller - - pci:v00008086d00002682sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=Adaptec Serial ATA HostRAID -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller (Adaptec Serial ATA HostRAID) - - pci:v00008086d00002683* - ID_MODEL_FROM_DATABASE=631xESB/632xESB SATA RAID Controller -@@ -63897,109 +63897,109 @@ pci:v00008086d00002688* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 - - pci:v00008086d00002688sv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge 1955 onboard USB) - - pci:v00008086d00002688sv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (PowerEdge R900 onboard USB) - - pci:v00008086d00002688sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (ProLiant DL140 G3) - - pci:v00008086d00002688sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DVL-E-O motherboard) - - pci:v00008086d00002688sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (X7DBN Motherboard) - - pci:v00008086d00002688sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #1 (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002689* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 - - pci:v00008086d00002689sv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge 1955 onboard USB) - - pci:v00008086d00002689sv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (PowerEdge R900 onboard USB) - - pci:v00008086d00002689sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (ProLiant DL140 G3) - - pci:v00008086d00002689sv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DVL-E-O motherboard) - - pci:v00008086d00002689sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (X7DBN Motherboard) - - pci:v00008086d00002689sv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000268A* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 - - pci:v00008086d0000268Asv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (PowerEdge R900 onboard USB) - - pci:v00008086d0000268Asv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (ProLiant DL140 G3) - - pci:v00008086d0000268Asv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DVL-E-O motherboard) - - pci:v00008086d0000268Asv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (X7DBN Motherboard) - - pci:v00008086d0000268Asv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000268B* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 - - pci:v00008086d0000268Bsv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (PowerEdge R900 onboard USB) - - pci:v00008086d0000268Bsv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (X7DVL-E-O motherboard) - - pci:v00008086d0000268Bsv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset UHCI USB Controller #4 (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000268C* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller - - pci:v00008086d0000268Csv00001028sd000001BB* -- ID_MODEL_FROM_DATABASE=PowerEdge 1955 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge 1955 onboard USB) - - pci:v00008086d0000268Csv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 onboard USB -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (PowerEdge R900 onboard USB) - - pci:v00008086d0000268Csv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (ProLiant DL140 G3) - - pci:v00008086d0000268Csv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DVL-E-O motherboard) - - pci:v00008086d0000268Csv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (X7DBN Motherboard) - - pci:v00008086d0000268Csv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset EHCI USB2 Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d00002690* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 - - pci:v00008086d00002690sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (ProLiant DL140 G3) - - pci:v00008086d00002690sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (X7DBN Motherboard) - - pci:v00008086d00002692* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 - - pci:v00008086d00002692sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 2 (ProLiant DL140 G3) - - pci:v00008086d00002694* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset PCI Express Root Port 3 -@@ -64020,49 +64020,49 @@ pci:v00008086d0000269B* - ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller - - pci:v00008086d0000269Bsv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (ProLiant DL140 G3) - - pci:v00008086d0000269Bsv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DVL-E-O motherboard) - - pci:v00008086d0000269Bsv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (X7DBN Motherboard) - - pci:v00008086d0000269Bsv00008086sd00003476* -- ID_MODEL_FROM_DATABASE=Intel S5000PSLSATA Server Board -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB/3100 Chipset SMBus Controller (Intel S5000PSLSATA Server Board) - - pci:v00008086d0000269E* - ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller - - pci:v00008086d0000269Esv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (ProLiant DL140 G3) - - pci:v00008086d0000269Esv000015D9sd00008680* -- ID_MODEL_FROM_DATABASE=X7DVL-E-O motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DVL-E-O motherboard) - - pci:v00008086d0000269Esv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=631xESB/632xESB IDE Controller (X7DBN Motherboard) - - pci:v00008086d00002770* - ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub - - pci:v00008086d00002770sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (OptiPlex GX620) - - pci:v00008086d00002770sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Pavilion A1512X) - - pci:v00008086d00002770sv00001043sd0000817A* -- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (P5LD2-VM Mainboard) - - pci:v00008086d00002770sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (E4500) - - pci:v00008086d00002770sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (Wind PC MS-7418) - - pci:v00008086d00002770sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL Memory Controller Hub (DeskTop Board D945GTP) - - pci:v00008086d00002771* - ID_MODEL_FROM_DATABASE=82945G/GZ/P/PL PCI Express Root Port -@@ -64071,16 +64071,16 @@ pci:v00008086d00002772* - ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller - - pci:v00008086d00002772sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Pavilion A1512X) - - pci:v00008086d00002772sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Wind PC MS-7418) - - pci:v00008086d00002772sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (DeskTop Board D945GTP) - - pci:v00008086d00002772sv00008086sd0000D605* -- ID_MODEL_FROM_DATABASE=Intel Desktop Board D945GCCR -+ ID_MODEL_FROM_DATABASE=82945G/GZ Integrated Graphics Controller (Intel Desktop Board D945GCCR) - - pci:v00008086d00002774* - ID_MODEL_FROM_DATABASE=82955X Memory Controller Hub -@@ -64095,10 +64095,10 @@ pci:v00008086d00002778* - ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub - - pci:v00008086d00002778sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge SC440) - - pci:v00008086d00002778sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=E7230/3000/3010 Memory Controller Hub (PowerEdge 860) - - pci:v00008086d00002779* - ID_MODEL_FROM_DATABASE=E7230/3000/3010 PCI Express Root Port -@@ -64110,7 +64110,7 @@ pci:v00008086d0000277C* - ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub - - pci:v00008086d0000277Csv00001043sd00008178* -- ID_MODEL_FROM_DATABASE=P5WDG2 WS Professional motherboard -+ ID_MODEL_FROM_DATABASE=82975X Memory Controller Hub (P5WDG2 WS Professional motherboard) - - pci:v00008086d0000277D* - ID_MODEL_FROM_DATABASE=82975X PCI Express Root Port -@@ -64119,94 +64119,94 @@ pci:v00008086d00002782* - ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller - - pci:v00008086d00002782sv00001043sd00002582* -- ID_MODEL_FROM_DATABASE=P5GD1-VW Mainboard -+ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (P5GD1-VW Mainboard) - - pci:v00008086d00002782sv00001734sd0000105B* -- ID_MODEL_FROM_DATABASE=Scenic W620 -+ ID_MODEL_FROM_DATABASE=82915G Integrated Graphics Controller (Scenic W620) - - pci:v00008086d00002792* - ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller - - pci:v00008086d00002792sv0000103Csd0000099C* -- ID_MODEL_FROM_DATABASE=NX6110/NC6120 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (NX6110/NC6120) - - pci:v00008086d00002792sv00001043sd00001881* -- ID_MODEL_FROM_DATABASE=GMA 900 915GM Integrated Graphics -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (GMA 900 915GM Integrated Graphics) - - pci:v00008086d00002792sv0000E4BFsd00000CCD* -- ID_MODEL_FROM_DATABASE=CCD-CALYPSO -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CCD-CALYPSO) - - pci:v00008086d00002792sv0000E4BFsd00000CD3* -- ID_MODEL_FROM_DATABASE=CD3-JIVE -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (CD3-JIVE) - - pci:v00008086d00002792sv0000E4BFsd000058B1* -- ID_MODEL_FROM_DATABASE=XB1 -+ ID_MODEL_FROM_DATABASE=Mobile 915GM/GMS/910GML Express Graphics Controller (XB1) - - pci:v00008086d000027A0* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub - - pci:v00008086d000027A0sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (9814 WKMI) - - pci:v00008086d000027A0sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (XPS M1210) - - pci:v00008086d000027A0sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nx9420 Notebook) - - pci:v00008086d000027A0sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (NC2400) - - pci:v00008086d000027A0sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Compaq nw8440) - - pci:v00008086d000027A0sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) - - pci:v00008086d000027A0sv000017AAsd00002015* -- ID_MODEL_FROM_DATABASE=ThinkPad T60 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) - - pci:v00008086d000027A0sv000017AAsd00002017* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027A1* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port - - pci:v00008086d000027A1sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nx9420 Notebook) - - pci:v00008086d000027A1sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) - - pci:v00008086d000027A2* - ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller - - pci:v00008086d000027A2sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (NC2400) - - pci:v00008086d000027A2sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027A2sv00009902sd00001584* -- ID_MODEL_FROM_DATABASE=CCE MPL-D10H120F -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (CCE MPL-D10H120F) - - pci:v00008086d000027A6* - ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller - - pci:v00008086d000027A6sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (NC2400) - - pci:v00008086d000027A6sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (secondary) -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (CC11/CL11 integrated graphics (secondary)) - - pci:v00008086d000027A6sv000017AAsd0000201A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027AC* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub - - pci:v00008086d000027ACsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Memory Controller Hub (CC11/CL11) - - pci:v00008086d000027AD* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express PCI Express Root Port -@@ -64215,178 +64215,178 @@ pci:v00008086d000027AE* - ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller - - pci:v00008086d000027AEsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 integrated graphics (primary) -+ ID_MODEL_FROM_DATABASE=Mobile 945GSE Express Integrated Graphics Controller (CC11/CL11 integrated graphics (primary)) - - pci:v00008086d000027B0* - ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge - - pci:v00008086d000027B0sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (Pavilion A1512X) - - pci:v00008086d000027B0sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801GH (ICH7DH) LPC Interface Bridge (DeskTop Board D945GTP) - - pci:v00008086d000027B8* - ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge - - pci:v00008086d000027B8sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (PowerEdge 860) - - pci:v00008086d000027B8sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (P5KPL-VM Motherboard) - - pci:v00008086d000027B8sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (E4500) - - pci:v00008086d000027B8sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (Wind PC MS-7418) - - pci:v00008086d000027B8sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (CC11/CL11) - - pci:v00008086d000027B8sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801GB/GR (ICH7 Family) LPC Interface Bridge (DeskTop Board D945GTP) - - pci:v00008086d000027B9* - ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge - - pci:v00008086d000027B9sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (XPS M1210) - - pci:v00008086d000027B9sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nx9420 Notebook) - - pci:v00008086d000027B9sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (NC2400) - - pci:v00008086d000027B9sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) - - pci:v00008086d000027B9sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) - - pci:v00008086d000027B9sv000017AAsd00002009* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027BC* - ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller - - pci:v00008086d000027BCsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (D270S/D250S Motherboard) - - pci:v00008086d000027BCsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Notebook N150P) - - pci:v00008086d000027BCsv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (GA-D525TUD) - - pci:v00008086d000027BCsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (DeskTop Board D510MO) - - pci:v00008086d000027BCsv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10 Family LPC Controller (Desktop Board D425KT) - - pci:v00008086d000027BD* - ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge - - pci:v00008086d000027BDsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) LPC Interface Bridge (9814 WKMI) - - pci:v00008086d000027C0* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] - - pci:v00008086d000027C0sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (OptiPlex GX620) - - pci:v00008086d000027C0sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge SC440) - - pci:v00008086d000027C0sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (PowerEdge 860) - - pci:v00008086d000027C0sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (P5KPL-VM Motherboard) - - pci:v00008086d000027C0sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (E4500) - - pci:v00008086d000027C0sv00001462sd00002310* -- ID_MODEL_FROM_DATABASE=MSI Hetis 945 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (MSI Hetis 945) - - pci:v00008086d000027C0sv00001462sd00007236* -- ID_MODEL_FROM_DATABASE=945P Neo3-F Rev. 2.2 motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (945P Neo3-F Rev. 2.2 motherboard) - - pci:v00008086d000027C0sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Wind PC MS-7418) - - pci:v00008086d000027C0sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (CC11/CL11) - - pci:v00008086d000027C0sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (Desktop Board D425KT) - - pci:v00008086d000027C0sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [IDE mode] (DeskTop Board D945GTP) - - pci:v00008086d000027C1* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] - - pci:v00008086d000027C1sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (PowerEdge SC440) - - pci:v00008086d000027C1sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Pavilion A1512X) - - pci:v00008086d000027C1sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (D270S/D250S Motherboard) - - pci:v00008086d000027C1sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (Notebook N150P) - - pci:v00008086d000027C1sv00001458sd0000B005* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (GA-D525TUD) - - pci:v00008086d000027C1sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (CC11/CL11) - - pci:v00008086d000027C1sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D510MO) - - pci:v00008086d000027C1sv00008086sd00005842* -- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SATA Controller [AHCI mode] (DeskTop Board D975XBX) - - pci:v00008086d000027C3* - ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] - - pci:v00008086d000027C3sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (CC11/CL11) - - pci:v00008086d000027C3sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] (DeskTop Board D945GTP) - - pci:v00008086d000027C4* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] - - pci:v00008086d000027C4sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (9814 WKMI) - - pci:v00008086d000027C4sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) - - pci:v00008086d000027C4sv000017AAsd0000200E* -- ID_MODEL_FROM_DATABASE=ThinkPad T60 -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) - - pci:v00008086d000027C5* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] - - pci:v00008086d000027C5sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nx9420 Notebook) - - pci:v00008086d000027C5sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (Compaq nw8440) - - pci:v00008086d000027C5sv000017AAsd0000200D* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027C6* - ID_MODEL_FROM_DATABASE=82801GHM (ICH7-M DH) SATA Controller [RAID mode] -@@ -64395,553 +64395,553 @@ pci:v00008086d000027C8* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 - - pci:v00008086d000027C8sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (9814 WKMI) - - pci:v00008086d000027C8sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (OptiPlex GX620) - - pci:v00008086d000027C8sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (XPS M1210) - - pci:v00008086d000027C8sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge SC440) - - pci:v00008086d000027C8sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (PowerEdge 860) - - pci:v00008086d000027C8sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Pavilion A1512X) - - pci:v00008086d000027C8sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nx9420 Notebook) - - pci:v00008086d000027C8sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (NC2400) - - pci:v00008086d000027C8sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Compaq nw8440) - - pci:v00008086d000027C8sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (A6J-Q008) - - pci:v00008086d000027C8sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027C8sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) - - pci:v00008086d000027C8sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) - - pci:v00008086d000027C8sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Notebook N150P) - - pci:v00008086d000027C8sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (GA-D525TUD) - - pci:v00008086d000027C8sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Wind PC MS-7418) - - pci:v00008086d000027C8sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (CC11/CL11) - - pci:v00008086d000027C8sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027C8sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D510MO) - - pci:v00008086d000027C8sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Desktop Board D425KT) - - pci:v00008086d000027C8sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (DeskTop Board D945GTP) - - pci:v00008086d000027C9* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 - - pci:v00008086d000027C9sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (9814 WKMI) - - pci:v00008086d000027C9sv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (OptiPlex GX620) - - pci:v00008086d000027C9sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (XPS M1210) - - pci:v00008086d000027C9sv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge SC440) - - pci:v00008086d000027C9sv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (PowerEdge 860) - - pci:v00008086d000027C9sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Pavilion A1512X) - - pci:v00008086d000027C9sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nx9420 Notebook) - - pci:v00008086d000027C9sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (NC2400) - - pci:v00008086d000027C9sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Compaq nw8440) - - pci:v00008086d000027C9sv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (A6J-Q008) - - pci:v00008086d000027C9sv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027C9sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) - - pci:v00008086d000027C9sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) - - pci:v00008086d000027C9sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Notebook N150P) - - pci:v00008086d000027C9sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (GA-D525TUD) - - pci:v00008086d000027C9sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Wind PC MS-7418) - - pci:v00008086d000027C9sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (CC11/CL11) - - pci:v00008086d000027C9sv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027C9sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D510MO) - - pci:v00008086d000027C9sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Desktop Board D425KT) - - pci:v00008086d000027C9sv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (DeskTop Board D945GTP) - - pci:v00008086d000027CA* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 - - pci:v00008086d000027CAsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (9814 WKMI) - - pci:v00008086d000027CAsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (OptiPlex GX620) - - pci:v00008086d000027CAsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (XPS M1210) - - pci:v00008086d000027CAsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge SC440) - - pci:v00008086d000027CAsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (PowerEdge 860) - - pci:v00008086d000027CAsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Pavilion A1512X) - - pci:v00008086d000027CAsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nx9420 Notebook) - - pci:v00008086d000027CAsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (NC2400) - - pci:v00008086d000027CAsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Compaq nw8440) - - pci:v00008086d000027CAsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (A6J-Q008) - - pci:v00008086d000027CAsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027CAsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) - - pci:v00008086d000027CAsv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) - - pci:v00008086d000027CAsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Notebook N150P) - - pci:v00008086d000027CAsv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (GA-D525TUD) - - pci:v00008086d000027CAsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Wind PC MS-7418) - - pci:v00008086d000027CAsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (CC11/CL11) - - pci:v00008086d000027CAsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027CAsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D510MO) - - pci:v00008086d000027CAsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (DeskTop Board D945GTP) - - pci:v00008086d000027CB* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 - - pci:v00008086d000027CBsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (9814 WKMI) - - pci:v00008086d000027CBsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (OptiPlex GX620) - - pci:v00008086d000027CBsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (XPS M1210) - - pci:v00008086d000027CBsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (PowerEdge SC440) - - pci:v00008086d000027CBsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Pavilion A1512X) - - pci:v00008086d000027CBsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nx9420 Notebook) - - pci:v00008086d000027CBsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (NC2400) - - pci:v00008086d000027CBsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Compaq nw8440) - - pci:v00008086d000027CBsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (A6J-Q008) - - pci:v00008086d000027CBsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027CBsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) - - pci:v00008086d000027CBsv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) - - pci:v00008086d000027CBsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Notebook N150P) - - pci:v00008086d000027CBsv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (GA-D525TUD) - - pci:v00008086d000027CBsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Wind PC MS-7418) - - pci:v00008086d000027CBsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (CC11/CL11) - - pci:v00008086d000027CBsv000017AAsd0000200A* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027CBsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D510MO) - - pci:v00008086d000027CBsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (DeskTop Board D945GTP) - - pci:v00008086d000027CC* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller - - pci:v00008086d000027CCsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (9814 WKMI) - - pci:v00008086d000027CCsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (OptiPlex GX620) - - pci:v00008086d000027CCsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (XPS M1210) - - pci:v00008086d000027CCsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge SC440) - - pci:v00008086d000027CCsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (PowerEdge 860) - - pci:v00008086d000027CCsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Pavilion A1512X) - - pci:v00008086d000027CCsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nx9420 Notebook) - - pci:v00008086d000027CCsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (NC2400) - - pci:v00008086d000027CCsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Compaq nw8440) - - pci:v00008086d000027CCsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (A6J-Q008) - - pci:v00008086d000027CCsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM,P5LD2-VM Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (P5KPL-VM,P5LD2-VM Mainboard) - - pci:v00008086d000027CCsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) - - pci:v00008086d000027CCsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) - - pci:v00008086d000027CCsv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (GA-D525TUD) - - pci:v00008086d000027CCsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Wind PC MS-7418) - - pci:v00008086d000027CCsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (CC11/CL11) - - pci:v00008086d000027CCsv000017AAsd0000200B* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027CCsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D510MO) - - pci:v00008086d000027CCsv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Desktop Board D425KT) - - pci:v00008086d000027CCsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (DeskTop Board D945GTP) - - pci:v00008086d000027D0* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 - - pci:v00008086d000027D0sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nx9420 Notebook) - - pci:v00008086d000027D0sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) - - pci:v00008086d000027D0sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) - - pci:v00008086d000027D0sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (GA-D525TUD) - - pci:v00008086d000027D0sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Wind PC MS-7418) - - pci:v00008086d000027D0sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (CC11/CL11) - - pci:v00008086d000027D0sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Desktop Board D425KT) - - pci:v00008086d000027D2* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 - - pci:v00008086d000027D2sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nx9420 Notebook) - - pci:v00008086d000027D2sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) - - pci:v00008086d000027D2sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) - - pci:v00008086d000027D2sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Wind PC MS-7418) - - pci:v00008086d000027D2sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (CC11/CL11) - - pci:v00008086d000027D2sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Desktop Board D425KT) - - pci:v00008086d000027D4* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 - - pci:v00008086d000027D4sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) - - pci:v00008086d000027D4sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Wind PC MS-7418) - - pci:v00008086d000027D4sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (CC11/CL11) - - pci:v00008086d000027D4sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Desktop Board D425KT) - - pci:v00008086d000027D6* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 - - pci:v00008086d000027D6sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) - - pci:v00008086d000027D6sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) - - pci:v00008086d000027D6sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Wind PC MS-7418) - - pci:v00008086d000027D6sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (CC11/CL11) - - pci:v00008086d000027D6sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Desktop Board D425KT) - - pci:v00008086d000027D8* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller - - pci:v00008086d000027D8sv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (9814 WKMI) - - pci:v00008086d000027D8sv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (XPS M1210) - - pci:v00008086d000027D8sv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Pavilion A1512X) - - pci:v00008086d000027D8sv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nx9420 Notebook) - - pci:v00008086d000027D8sv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (NC2400) - - pci:v00008086d000027D8sv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Compaq nw8440) - - pci:v00008086d000027D8sv00001043sd00001123* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (A6J-Q008) - - pci:v00008086d000027D8sv00001043sd000013C4* -- ID_MODEL_FROM_DATABASE=Asus G2P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus G2P) - - pci:v00008086d000027D8sv00001043sd0000817F* -- ID_MODEL_FROM_DATABASE=P5LD2-VM Mainboard (Realtek ALC 882 codec) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5LD2-VM Mainboard (Realtek ALC 882 codec)) - - pci:v00008086d000027D8sv00001043sd00008290* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-VM Motherboard) - - pci:v00008086d000027D8sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P5KPL-CM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (P5KPL-CM Motherboard) - - pci:v00008086d000027D8sv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) - - pci:v00008086d000027D8sv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) - - pci:v00008086d000027D8sv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Panasonic CF-Y5 laptop) - - pci:v00008086d000027D8sv00001179sd0000FF10* -- ID_MODEL_FROM_DATABASE=Toshiba Satellite A100-796 audio (Realtek ALC861) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Toshiba Satellite A100-796 audio (Realtek ALC861)) - - pci:v00008086d000027D8sv00001179sd0000FF31* -- ID_MODEL_FROM_DATABASE=AC97 Data Fax SoftModem with SmartCP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (AC97 Data Fax SoftModem with SmartCP) - - pci:v00008086d000027D8sv00001447sd00001043* -- ID_MODEL_FROM_DATABASE=Asus A8JP (Analog Devices AD1986A) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Asus A8JP (Analog Devices AD1986A)) - - pci:v00008086d000027D8sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Notebook N150P) - - pci:v00008086d000027D8sv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-D525TUD (Realtek ALC887) -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-D525TUD (Realtek ALC887)) - - pci:v00008086d000027D8sv00001458sd0000A102* -- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (GA-8I945PG-RH Mainboard) - - pci:v00008086d000027D8sv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Wind PC MS-7418) - - pci:v00008086d000027D8sv0000152Dsd00000753* -- ID_MODEL_FROM_DATABASE=Softmodem -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Softmodem) - - pci:v00008086d000027D8sv00001734sd000010AD* -- ID_MODEL_FROM_DATABASE=Conexant softmodem SmartCP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Conexant softmodem SmartCP) - - pci:v00008086d000027D8sv000017AAsd00002010* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027D8sv000017AAsd00003802* -- ID_MODEL_FROM_DATABASE=Lenovo 3000 C200 audio [Realtek ALC861VD] -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Lenovo 3000 C200 audio [Realtek ALC861VD]) - - pci:v00008086d000027D8sv00008086sd00001112* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) - - pci:v00008086d000027D8sv00008086sd000027D8* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D945GTP) - - pci:v00008086d000027D8sv00008086sd0000D618* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (DeskTop Board D510MO) - - pci:v00008086d000027D8sv00008384sd00007680* -- ID_MODEL_FROM_DATABASE=STAC9221 HD Audio Codec -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (STAC9221 HD Audio Codec) - - pci:v00008086d000027DA* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller - - pci:v00008086d000027DAsv00001025sd0000006C* -- ID_MODEL_FROM_DATABASE=9814 WKMI -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (9814 WKMI) - - pci:v00008086d000027DAsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (OptiPlex GX620) - - pci:v00008086d000027DAsv00001028sd000001D7* -- ID_MODEL_FROM_DATABASE=XPS M1210 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (XPS M1210) - - pci:v00008086d000027DAsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge SC440) - - pci:v00008086d000027DAsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (PowerEdge 860) - - pci:v00008086d000027DAsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Pavilion A1512X) - - pci:v00008086d000027DAsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (P5KPL-VM Motherboard) - - pci:v00008086d000027DAsv0000105Bsd00000D7C* -- ID_MODEL_FROM_DATABASE=D270S/D250S Motherboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) - - pci:v00008086d000027DAsv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) - - pci:v00008086d000027DAsv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Notebook N150P) - - pci:v00008086d000027DAsv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-8I945PG-RH/GA-D525TUD Mainboard -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (GA-8I945PG-RH/GA-D525TUD Mainboard) - - pci:v00008086d000027DAsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Wind PC MS-7418) - - pci:v00008086d000027DAsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (CC11/CL11) - - pci:v00008086d000027DAsv000017AAsd0000200F* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027DAsv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D510MO) - - pci:v00008086d000027DAsv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Desktop Board D425KT) - - pci:v00008086d000027DAsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D945GTP) - - pci:v00008086d000027DAsv00008086sd00005842* -- ID_MODEL_FROM_DATABASE=DeskTop Board D975XBX -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (DeskTop Board D975XBX) - - pci:v00008086d000027DC* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller - - pci:v00008086d000027DCsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (Pavilion A1512X) - - pci:v00008086d000027DCsv00008086sd0000308D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family LAN Controller (DeskTop Board D945GTP) - - pci:v00008086d000027DD* - ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Modem Controller -@@ -64950,88 +64950,88 @@ pci:v00008086d000027DE* - ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller - - pci:v00008086d000027DEsv00001028sd000001AD* -- ID_MODEL_FROM_DATABASE=OptiPlex GX620 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (OptiPlex GX620) - - pci:v00008086d000027DEsv00001462sd00007267* -- ID_MODEL_FROM_DATABASE=Realtek ALC883 Audio Controller -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (Realtek ALC883 Audio Controller) - - pci:v00008086d000027DEsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11 integrated audio (AD1981BL codec) -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) AC'97 Audio Controller (CC11 integrated audio (AD1981BL codec)) - - pci:v00008086d000027DF* - ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller - - pci:v00008086d000027DFsv00001028sd000001DF* -- ID_MODEL_FROM_DATABASE=PowerEdge SC440 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge SC440) - - pci:v00008086d000027DFsv00001028sd000001E6* -- ID_MODEL_FROM_DATABASE=PowerEdge 860 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (PowerEdge 860) - - pci:v00008086d000027DFsv0000103Csd00002A3B* -- ID_MODEL_FROM_DATABASE=Pavilion A1512X -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Pavilion A1512X) - - pci:v00008086d000027DFsv0000103Csd0000309F* -- ID_MODEL_FROM_DATABASE=Compaq nx9420 Notebook -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nx9420 Notebook) - - pci:v00008086d000027DFsv0000103Csd000030A1* -- ID_MODEL_FROM_DATABASE=NC2400 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (NC2400) - - pci:v00008086d000027DFsv0000103Csd000030A3* -- ID_MODEL_FROM_DATABASE=Compaq nw8440 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Compaq nw8440) - - pci:v00008086d000027DFsv00001043sd00001237* -- ID_MODEL_FROM_DATABASE=A6J-Q008 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (A6J-Q008) - - pci:v00008086d000027DFsv00001043sd00008179* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (P5KPL-VM Motherboard) - - pci:v00008086d000027DFsv0000107Bsd00005048* -- ID_MODEL_FROM_DATABASE=E4500 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (E4500) - - pci:v00008086d000027DFsv000010F7sd00008338* -- ID_MODEL_FROM_DATABASE=Panasonic CF-Y5 laptop -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Panasonic CF-Y5 laptop) - - pci:v00008086d000027DFsv00001462sd00007418* -- ID_MODEL_FROM_DATABASE=Wind PC MS-7418 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (Wind PC MS-7418) - - pci:v00008086d000027DFsv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (CC11/CL11) - - pci:v00008086d000027DFsv000017AAsd0000200C* -- ID_MODEL_FROM_DATABASE=ThinkPad R60/T60/X60 series -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (ThinkPad R60/T60/X60 series) - - pci:v00008086d000027DFsv00008086sd0000544E* -- ID_MODEL_FROM_DATABASE=DeskTop Board D945GTP -+ ID_MODEL_FROM_DATABASE=82801G (ICH7 Family) IDE Controller (DeskTop Board D945GTP) - - pci:v00008086d000027E0* - ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 - - pci:v00008086d000027E0sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 (CC11/CL11) - - pci:v00008086d000027E2* - ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 - - pci:v00008086d000027E2sv00001775sd000011CC* -- ID_MODEL_FROM_DATABASE=CC11/CL11 -+ ID_MODEL_FROM_DATABASE=82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (CC11/CL11) - - pci:v00008086d00002810* - ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller - - pci:v00008086d00002810sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801HB/HR (ICH8/R) LPC Interface Controller (P5B) - - pci:v00008086d00002811* - ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller - - pci:v00008086d00002811sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (Compaq 6910p) - - pci:v00008086d00002811sv000017AAsd000020B6* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (ThinkPad T61/R61) - - pci:v00008086d00002811sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HEM (ICH8M-E) LPC Interface Controller (CCG-RUMBA) - - pci:v00008086d00002812* - ID_MODEL_FROM_DATABASE=82801HH (ICH8DH) LPC Interface Controller -@@ -65043,34 +65043,34 @@ pci:v00008086d00002815* - ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller - - pci:v00008086d00002815sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Aspire 5920G) - - pci:v00008086d00002815sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Inspiron 1420) - - pci:v00008086d00002815sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Compaq 6710b) - - pci:v00008086d00002815sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Pavilion dv6700) - - pci:v00008086d00002815sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Presario C700) - - pci:v00008086d00002815sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Vaio VGN-FZ260E) - - pci:v00008086d00002815sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) - - pci:v00008086d00002820* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] - - pci:v00008086d00002820sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (OptiPlex 745) - - pci:v00008086d00002820sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002821* - ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA Controller [AHCI mode] -@@ -65079,10 +65079,10 @@ pci:v00008086d00002822* - ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] - - pci:v00008086d00002822sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Inspiron 530) - - pci:v00008086d00002822sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801 SATA Controller [RAID mode] (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002823* - ID_MODEL_FROM_DATABASE=Wellsburg sSATA RAID Controller -@@ -65091,16 +65091,16 @@ pci:v00008086d00002824* - ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] - - pci:v00008086d00002824sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801HB (ICH8) 4 port SATA Controller [AHCI mode] (P5B) - - pci:v00008086d00002825* - ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] - - pci:v00008086d00002825sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (OptiPlex 745) - - pci:v00008086d00002825sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002826* - ID_MODEL_FROM_DATABASE=C600/X79 series chipset SATA RAID Controller -@@ -65112,424 +65112,424 @@ pci:v00008086d00002828* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] - - pci:v00008086d00002828sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Inspiron 1420) - - pci:v00008086d00002828sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (Compaq 6710b) - - pci:v00008086d00002828sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (CCG-RUMBA) - - pci:v00008086d00002829* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] - - pci:v00008086d00002829sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Aspire 5920G) - - pci:v00008086d00002829sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6710b) - - pci:v00008086d00002829sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Compaq 6910p) - - pci:v00008086d00002829sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Pavilion dv6700) - - pci:v00008086d00002829sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Presario C700) - - pci:v00008086d00002829sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Vaio VGN-FZ260E) - - pci:v00008086d00002829sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (VAIO VGN-NR120E) - - pci:v00008086d00002829sv000017AAsd000020A7* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) - - pci:v00008086d00002829sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) - - pci:v00008086d0000282A* - ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] - - pci:v00008086d0000282Asv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (Latitude E6510) - - pci:v00008086d0000282Asv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=82801 Mobile SATA Controller [RAID mode] (PC1-GROOVE) - - pci:v00008086d00002830* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 - - pci:v00008086d00002830sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Acer Aspire 5920G) - - pci:v00008086d00002830sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (OptiPlex 745) - - pci:v00008086d00002830sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Inspiron 1420) - - pci:v00008086d00002830sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6710b) - - pci:v00008086d00002830sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Compaq 6910p) - - pci:v00008086d00002830sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Pavilion dv6700) - - pci:v00008086d00002830sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Presario C700) - - pci:v00008086d00002830sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P5B) - - pci:v00008086d00002830sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Vaio VGN-FZ260E) - - pci:v00008086d00002830sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (VAIO VGN-NR120E) - - pci:v00008086d00002830sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002830sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) - - pci:v00008086d00002830sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) - - pci:v00008086d00002831* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 - - pci:v00008086d00002831sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Aspire 5920G) - - pci:v00008086d00002831sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (OptiPlex 745) - - pci:v00008086d00002831sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Inspiron 1420) - - pci:v00008086d00002831sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6710b) - - pci:v00008086d00002831sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Compaq 6910p) - - pci:v00008086d00002831sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Pavilion dv6700) - - pci:v00008086d00002831sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Presario C700) - - pci:v00008086d00002831sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P5B) - - pci:v00008086d00002831sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Vaio VGN-FZ260E) - - pci:v00008086d00002831sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (VAIO VGN-NR120E) - - pci:v00008086d00002831sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002831sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) - - pci:v00008086d00002831sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) - - pci:v00008086d00002832* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 - - pci:v00008086d00002832sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Aspire 5920G) - - pci:v00008086d00002832sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (OptiPlex 745) - - pci:v00008086d00002832sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Inspiron 1420) - - pci:v00008086d00002832sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6710b) - - pci:v00008086d00002832sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Compaq 6910p) - - pci:v00008086d00002832sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Pavilion dv6700) - - pci:v00008086d00002832sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Presario C700) - - pci:v00008086d00002832sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (P5B) - - pci:v00008086d00002832sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Vaio VGN-FZ260E) - - pci:v00008086d00002832sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (VAIO VGN-NR120E) - - pci:v00008086d00002832sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) - - pci:v00008086d00002832sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) - - pci:v00008086d00002833* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 - - pci:v00008086d00002833sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) - - pci:v00008086d00002834* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 - - pci:v00008086d00002834sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Aspire 5920G) - - pci:v00008086d00002834sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (OptiPlex 745) - - pci:v00008086d00002834sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Inspiron 1420) - - pci:v00008086d00002834sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6710b) - - pci:v00008086d00002834sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Compaq 6910p) - - pci:v00008086d00002834sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Pavilion dv6700) - - pci:v00008086d00002834sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P5B) - - pci:v00008086d00002834sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Vaio VGN-FZ260E) - - pci:v00008086d00002834sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (VAIO VGN-NR120E) - - pci:v00008086d00002834sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002834sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) - - pci:v00008086d00002834sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) - - pci:v00008086d00002835* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 - - pci:v00008086d00002835sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Acer Aspire 5920G) - - pci:v00008086d00002835sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (OptiPlex 745) - - pci:v00008086d00002835sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Inspiron 1420) - - pci:v00008086d00002835sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6710b) - - pci:v00008086d00002835sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Compaq 6910p) - - pci:v00008086d00002835sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Pavilion dv6700) - - pci:v00008086d00002835sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (P5B) - - pci:v00008086d00002835sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Vaio VGN-FZ260E) - - pci:v00008086d00002835sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (VAIO VGN-NR120E) - - pci:v00008086d00002835sv000017AAsd000020AA* -- ID_MODEL_FROM_DATABASE=Thinkpad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) - - pci:v00008086d00002835sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) - - pci:v00008086d00002836* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 - - pci:v00008086d00002836sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Aspire 5920G) - - pci:v00008086d00002836sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (OptiPlex 745) - - pci:v00008086d00002836sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Inspiron 1420) - - pci:v00008086d00002836sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6710b) - - pci:v00008086d00002836sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Compaq 6910p) - - pci:v00008086d00002836sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Pavilion dv6700) - - pci:v00008086d00002836sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Presario C700) - - pci:v00008086d00002836sv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P5B) - - pci:v00008086d00002836sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Vaio VGN-FZ260E) - - pci:v00008086d00002836sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (VAIO VGN-NR120E) - - pci:v00008086d00002836sv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (P965 Neo MS-7235 mainboard) - - pci:v00008086d00002836sv000017AAsd000020AB* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) - - pci:v00008086d00002836sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) - - pci:v00008086d0000283A* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 - - pci:v00008086d0000283Asv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Acer Aspire 5920G) - - pci:v00008086d0000283Asv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (OptiPlex 745) - - pci:v00008086d0000283Asv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Inspiron 1420) - - pci:v00008086d0000283Asv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6710b) - - pci:v00008086d0000283Asv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Compaq 6910p) - - pci:v00008086d0000283Asv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Pavilion dv6700) - - pci:v00008086d0000283Asv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (P5B) - - pci:v00008086d0000283Asv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Vaio VGN-FZ260E) - - pci:v00008086d0000283Asv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (VAIO VGN-NR120E) - - pci:v00008086d0000283Asv000017AAsd000020AB* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) - - pci:v00008086d0000283Asv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) - - pci:v00008086d0000283E* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller - - pci:v00008086d0000283Esv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Aspire 5920G) - - pci:v00008086d0000283Esv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (OptiPlex 745) - - pci:v00008086d0000283Esv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Inspiron 1420) - - pci:v00008086d0000283Esv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Presario C700) - - pci:v00008086d0000283Esv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P5B) - - pci:v00008086d0000283Esv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-FZ260E) - - pci:v00008086d0000283Esv0000104Dsd00009008* -- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Vaio VGN-SZ79SN_C) - - pci:v00008086d0000283Esv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (VAIO VGN-NR120E) - - pci:v00008086d0000283Esv00001462sd00007235* -- ID_MODEL_FROM_DATABASE=P965 Neo MS-7235 mainboard -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (P965 Neo MS-7235 mainboard) - - pci:v00008086d0000283Esv000017AAsd000020A9* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) - - pci:v00008086d0000283Esv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) - - pci:v00008086d0000283F* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 - - pci:v00008086d0000283Fsv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (OptiPlex 745) - - pci:v00008086d0000283Fsv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Compaq 6910p) - - pci:v00008086d0000283Fsv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (VAIO VGN-NR120E) - - pci:v00008086d0000283Fsv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) - - pci:v00008086d00002841* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 - - pci:v00008086d00002841sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Compaq 6910p) - - pci:v00008086d00002841sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (VAIO VGN-NR120E) - - pci:v00008086d00002841sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) - - pci:v00008086d00002843* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 - - pci:v00008086d00002843sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (VAIO VGN-NR120E) - - pci:v00008086d00002843sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) - - pci:v00008086d00002845* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 - - pci:v00008086d00002845sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) - - pci:v00008086d00002847* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 - - pci:v00008086d00002847sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (OptiPlex 745) - - pci:v00008086d00002847sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Compaq 6910p) - - pci:v00008086d00002847sv000017AAsd000020AD* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) - - pci:v00008086d00002849* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 -@@ -65538,70 +65538,70 @@ pci:v00008086d0000284B* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller - - pci:v00008086d0000284Bsv00001025sd0000011F* -- ID_MODEL_FROM_DATABASE=Realtek ALC268 audio codec -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC268 audio codec) - - pci:v00008086d0000284Bsv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Aspire 5920G) - - pci:v00008086d0000284Bsv00001025sd00000145* -- ID_MODEL_FROM_DATABASE=Realtek ALC889 (Aspire 8920G w. Dolby Theather) -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC889 (Aspire 8920G w. Dolby Theather)) - - pci:v00008086d0000284Bsv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (OptiPlex 745) - - pci:v00008086d0000284Bsv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Inspiron 1420) - - pci:v00008086d0000284Bsv00001028sd000001F9* -- ID_MODEL_FROM_DATABASE=Dell Latitude D630 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Latitude D630) - - pci:v00008086d0000284Bsv00001028sd000001FF* -- ID_MODEL_FROM_DATABASE=Dell Precision M4300 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Precision M4300) - - pci:v00008086d0000284Bsv00001028sd00000256* -- ID_MODEL_FROM_DATABASE=Studio 1735 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Studio 1735) - - pci:v00008086d0000284Bsv0000103Csd00002802* -- ID_MODEL_FROM_DATABASE=HP Compaq dc7700p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (HP Compaq dc7700p) - - pci:v00008086d0000284Bsv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6710b) - - pci:v00008086d0000284Bsv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Compaq 6910p) - - pci:v00008086d0000284Bsv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Pavilion dv6700) - - pci:v00008086d0000284Bsv00001043sd00001339* -- ID_MODEL_FROM_DATABASE=Asus M51S series -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Asus M51S series) - - pci:v00008086d0000284Bsv00001043sd000081EC* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (P5B) - - pci:v00008086d0000284Bsv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-FZ260E) - - pci:v00008086d0000284Bsv0000104Dsd00009008* -- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Vaio VGN-SZ79SN_C) - - pci:v00008086d0000284Bsv0000104Dsd00009016* -- ID_MODEL_FROM_DATABASE=Sony VAIO VGN-AR51M -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Sony VAIO VGN-AR51M) - - pci:v00008086d0000284Bsv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (VAIO VGN-NR120E) - - pci:v00008086d0000284Bsv000014F1sd00005051* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Presario C700) - - pci:v00008086d0000284Bsv000017AAsd000020AC* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) - - pci:v00008086d0000284Bsv00008384sd00007616* -- ID_MODEL_FROM_DATABASE=Dell Vostro 1400 -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) - - pci:v00008086d0000284Bsv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (CCG-RUMBA) - - pci:v00008086d0000284F* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) Thermal Reporting Device -@@ -65610,34 +65610,34 @@ pci:v00008086d00002850* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller - - pci:v00008086d00002850sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Aspire 5920G -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Aspire 5920G) - - pci:v00008086d00002850sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Inspiron 1420) - - pci:v00008086d00002850sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6710b) - - pci:v00008086d00002850sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Compaq 6910p) - - pci:v00008086d00002850sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Pavilion dv6700) - - pci:v00008086d00002850sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Presario C700) - - pci:v00008086d00002850sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Vaio VGN-FZ260E) - - pci:v00008086d00002850sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (VAIO VGN-NR120E) - - pci:v00008086d00002850sv000017AAsd000020A6* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) - - pci:v00008086d00002850sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) - - pci:v00008086d00002912* - ID_MODEL_FROM_DATABASE=82801IH (ICH9DH) LPC Interface Controller -@@ -65646,40 +65646,40 @@ pci:v00008086d00002914* - ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller - - pci:v00008086d00002914sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801IO (ICH9DO) LPC Interface Controller (Optiplex 755) - - pci:v00008086d00002916* - ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller - - pci:v00008086d00002916sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Inspiron 530) - - pci:v00008086d00002916sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002916sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (P5K PRO Motherboard) - - pci:v00008086d00002916sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801IR (ICH9R) LPC Interface Controller (Desktop Board DP35DP) - - pci:v00008086d00002917* - ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller - - pci:v00008086d00002917sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=ICH9M-E LPC Interface Controller (CCM-BOOGIE) - - pci:v00008086d00002918* - ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller - - pci:v00008086d00002918sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 82801IB (ICH9) LPC Interface Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (PowerEdge R610 82801IB (ICH9) LPC Interface Controller) - - pci:v00008086d00002918sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (G33/P35 Neo) - - pci:v00008086d00002918sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) LPC Interface Controller (QEMU Virtual Machine) - - pci:v00008086d00002919* - ID_MODEL_FROM_DATABASE=ICH9M LPC Interface Controller -@@ -65688,46 +65688,46 @@ pci:v00008086d00002920* - ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] - - pci:v00008086d00002920sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Inspiron 530) - - pci:v00008086d00002920sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) - - pci:v00008086d00002920sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) - - pci:v00008086d00002920sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (Optiplex 755) - - pci:v00008086d00002920sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R200 onboard SATA Controller) - - pci:v00008086d00002920sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (P5K PRO Motherboard) - - pci:v00008086d00002921* - ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] - - pci:v00008086d00002921sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R710 SATA IDE Controller) - - pci:v00008086d00002921sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge R610 SATA IDE Controller) - - pci:v00008086d00002921sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (PowerEdge T610 SATA IDE Controller) - - pci:v00008086d00002921sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode] (G33/P35 Neo) - - pci:v00008086d00002922* - ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] - - pci:v00008086d00002922sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (QEMU Virtual Machine) - - pci:v00008086d00002922sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (Desktop Board DP35DP) - - pci:v00008086d00002923* - ID_MODEL_FROM_DATABASE=82801IB (ICH9) 4 port SATA Controller [AHCI mode] -@@ -65736,31 +65736,31 @@ pci:v00008086d00002925* - ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] - - pci:v00008086d00002925sv00001734sd000010E0* -- ID_MODEL_FROM_DATABASE=System Board D2542 -+ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) - - pci:v00008086d00002925sv00008086sd00002925* -- ID_MODEL_FROM_DATABASE=System Board D2542 -+ ID_MODEL_FROM_DATABASE=82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] (System Board D2542) - - pci:v00008086d00002926* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] - - pci:v00008086d00002926sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Inspiron 530) - - pci:v00008086d00002926sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge R300 onboard SATA Controller) - - pci:v00008086d00002926sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard SATA Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (PowerEdge T300 onboard SATA Controller) - - pci:v00008086d00002926sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Optiplex 755) - - pci:v00008086d00002926sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (P5K PRO Motherboard) - - pci:v00008086d00002926sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (G33/P35 Neo) - - pci:v00008086d00002928* - ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] -@@ -65769,10 +65769,10 @@ pci:v00008086d00002929* - ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] - - pci:v00008086d00002929sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (dv6-1190en) - - pci:v00008086d00002929sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (CCM-BOOGIE) - - pci:v00008086d0000292C* - ID_MODEL_FROM_DATABASE=82801IEM (ICH9M-E) SATA Controller [RAID mode] -@@ -65781,511 +65781,511 @@ pci:v00008086d0000292D* - ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] - - pci:v00008086d0000292Dsv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] (CCM-BOOGIE) - - pci:v00008086d00002930* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller - - pci:v00008086d00002930sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Inspiron 530) - - pci:v00008086d00002930sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Optiplex 755) - - pci:v00008086d00002930sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002930sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (dv6-1190en) - - pci:v00008086d00002930sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (P5K PRO Motherboard) - - pci:v00008086d00002930sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (G33/P35 Neo) - - pci:v00008086d00002930sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (QEMU Virtual Machine) - - pci:v00008086d00002930sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (Desktop Board DP35DP) - - pci:v00008086d00002930sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (CCM-BOOGIE) - - pci:v00008086d00002932* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem - - pci:v00008086d00002932sv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) Thermal Subsystem (dv6-1190en) - - pci:v00008086d00002934* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 - - pci:v00008086d00002934sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Inspiron 530) - - pci:v00008086d00002934sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R300 onboard UHCI) - - pci:v00008086d00002934sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002934sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) - - pci:v00008086d00002934sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge R200 onboard UHCI) - - pci:v00008086d00002934sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002934sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002934sv00001028sd00002011* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Optiplex 755) - - pci:v00008086d00002934sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002934sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (P5K PRO Motherboard) - - pci:v00008086d00002934sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (G33/P35 Neo) - - pci:v00008086d00002934sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (QEMU Virtual Machine) - - pci:v00008086d00002934sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Desktop Board DP35DP) - - pci:v00008086d00002934sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (CCM-BOOGIE) - - pci:v00008086d00002935* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 - - pci:v00008086d00002935sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Inspiron 530) - - pci:v00008086d00002935sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R300 onboard UHCI) - - pci:v00008086d00002935sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002935sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Optiplex 755) - - pci:v00008086d00002935sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002935sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002935sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002935sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge R200 onboard UHCI) - - pci:v00008086d00002935sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002935sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002935sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002935sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (P5K PRO Motherboard) - - pci:v00008086d00002935sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (G33/P35 Neo) - - pci:v00008086d00002935sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (QEMU Virtual Machine) - - pci:v00008086d00002935sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Desktop Board DP35DP) - - pci:v00008086d00002935sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (CCM-BOOGIE) - - pci:v00008086d00002936* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 - - pci:v00008086d00002936sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Inspiron 530) - - pci:v00008086d00002936sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R300 onboard UHCI) - - pci:v00008086d00002936sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002936sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Optiplex 755) - - pci:v00008086d00002936sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002936sv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge R200 onboard UHCI) - - pci:v00008086d00002936sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002936sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002936sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002936sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (P5K PRO Motherboard) - - pci:v00008086d00002936sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (G33/P35 Neo) - - pci:v00008086d00002936sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (QEMU Virtual Machine) - - pci:v00008086d00002936sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Desktop Board DP35DP) - - pci:v00008086d00002936sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (CCM-BOOGIE) - - pci:v00008086d00002937* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 - - pci:v00008086d00002937sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Inspiron 530) - - pci:v00008086d00002937sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) - - pci:v00008086d00002937sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002937sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002937sv00001028sd00002011* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) - - pci:v00008086d00002937sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002937sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (P5K PRO Motherboard) - - pci:v00008086d00002937sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (G33/P35 Neo) - - pci:v00008086d00002937sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (QEMU Virtual Machine) - - pci:v00008086d00002937sv00008086sd00002937* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Optiplex 755) - - pci:v00008086d00002937sv00008086sd00002942* -- ID_MODEL_FROM_DATABASE=828011 (ICH9 Family ) USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (828011 (ICH9 Family ) USB UHCI Controller) - - pci:v00008086d00002937sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Desktop Board DP35DP) - - pci:v00008086d00002937sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (CCM-BOOGIE) - - pci:v00008086d00002938* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 - - pci:v00008086d00002938sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Inspiron 530) - - pci:v00008086d00002938sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) - - pci:v00008086d00002938sv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R710 USB UHCI Controller) - - pci:v00008086d00002938sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge R610 USB UHCI Controller) - - pci:v00008086d00002938sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002938sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M610 onboard UHCI) - - pci:v00008086d00002938sv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (PowerEdge M710 USB UHCI Controller) - - pci:v00008086d00002938sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002938sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (P5K PRO Motherboard) - - pci:v00008086d00002938sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (G33/P35 Neo) - - pci:v00008086d00002938sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (QEMU Virtual Machine) - - pci:v00008086d00002938sv00008086sd00002938* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Optiplex 755) - - pci:v00008086d00002938sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Desktop Board DP35DP) - - pci:v00008086d00002938sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (CCM-BOOGIE) - - pci:v00008086d00002939* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 - - pci:v00008086d00002939sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Inspiron 530) - - pci:v00008086d00002939sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard UHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T300 onboard UHCI) - - pci:v00008086d00002939sv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (PowerEdge T610 USB UHCI Controller) - - pci:v00008086d00002939sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002939sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (P5K PRO Motherboard) - - pci:v00008086d00002939sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (G33/P35 Neo) - - pci:v00008086d00002939sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (QEMU Virtual Machine) - - pci:v00008086d00002939sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Desktop Board DP35DP) - - pci:v00008086d00002939sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (CCM-BOOGIE) - - pci:v00008086d0000293A* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 - - pci:v00008086d0000293Asv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Inspiron 530) - - pci:v00008086d0000293Asv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R300 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T300 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Optiplex 755) - - pci:v00008086d0000293Asv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R710 USB EHCI Controller) - - pci:v00008086d0000293Asv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R610 USB EHCI Controller) - - pci:v00008086d0000293Asv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge T610 USB EHCI Controller) - - pci:v00008086d0000293Asv00001028sd0000023C* -- ID_MODEL_FROM_DATABASE=PowerEdge R200 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge R200 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M610 onboard EHCI) - - pci:v00008086d0000293Asv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (PowerEdge M710 USB EHCI Controller) - - pci:v00008086d0000293Asv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000293Asv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (P5K PRO Motherboard) - - pci:v00008086d0000293Asv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (G33/P35 Neo) - - pci:v00008086d0000293Asv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (QEMU Virtual Machine) - - pci:v00008086d0000293Asv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Desktop Board DP35DP) - - pci:v00008086d0000293Asv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (CCM-BOOGIE) - - pci:v00008086d0000293C* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 - - pci:v00008086d0000293Csv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Inspiron 530) - - pci:v00008086d0000293Csv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) - - pci:v00008086d0000293Csv00001028sd00000235* -- ID_MODEL_FROM_DATABASE=PowerEdge R710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R710 USB EHCI Controller) - - pci:v00008086d0000293Csv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge R610 USB EHCI Controller) - - pci:v00008086d0000293Csv00001028sd00000237* -- ID_MODEL_FROM_DATABASE=PowerEdge T610 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge T610 USB EHCI Controller) - - pci:v00008086d0000293Csv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 onboard EHCI -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M610 onboard EHCI) - - pci:v00008086d0000293Csv00001028sd0000029C* -- ID_MODEL_FROM_DATABASE=PowerEdge M710 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (PowerEdge M710 USB EHCI Controller) - - pci:v00008086d0000293Csv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000293Csv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (P5K PRO Motherboard) - - pci:v00008086d0000293Csv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (G33/P35 Neo) - - pci:v00008086d0000293Csv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (QEMU Virtual Machine) - - pci:v00008086d0000293Csv00008086sd0000293C* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Optiplex 755) - - pci:v00008086d0000293Csv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Desktop Board DP35DP) - - pci:v00008086d0000293Csv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (CCM-BOOGIE) - - pci:v00008086d0000293E* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller - - pci:v00008086d0000293Esv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Inspiron 530) - - pci:v00008086d0000293Esv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) - - pci:v00008086d0000293Esv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d0000293Esv0000103Csd00003628* -- ID_MODEL_FROM_DATABASE=dv6-1190en -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (dv6-1190en) - - pci:v00008086d0000293Esv00001043sd0000829F* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (P5K PRO Motherboard) - - pci:v00008086d0000293Esv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (G33/P35 Neo) - - pci:v00008086d0000293Esv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (QEMU Virtual Machine) - - pci:v00008086d0000293Esv00008086sd0000293E* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) - - pci:v00008086d0000293Esv00008086sd00002940* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (Optiplex 755) - - pci:v00008086d0000293Esv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (CCM-BOOGIE) - - pci:v00008086d00002940* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 - - pci:v00008086d00002940sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Inspiron 530) - - pci:v00008086d00002940sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) - - pci:v00008086d00002940sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002940sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (P5K PRO Motherboard) - - pci:v00008086d00002940sv00008086sd00002940* -- ID_MODEL_FROM_DATABASE=Optiplex 755 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755) - - pci:v00008086d00002942* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 - - pci:v00008086d00002942sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 2 (Inspiron 530) - - pci:v00008086d00002944* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 - - pci:v00008086d00002944sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Inspiron 530) - - pci:v00008086d00002944sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 3 (Asus IPIBL-LB Motherboard) - - pci:v00008086d00002946* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 - - pci:v00008086d00002946sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 4 (Inspiron 530) - - pci:v00008086d00002948* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 - - pci:v00008086d00002948sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (Inspiron 530) - - pci:v00008086d00002948sv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (P5K PRO Motherboard) - - pci:v00008086d0000294A* - ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 - - pci:v00008086d0000294Asv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (Inspiron 530) - - pci:v00008086d0000294Asv00001043sd00008277* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (P5K PRO Motherboard) - - pci:v00008086d0000294C* - ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection - - pci:v00008086d0000294Csv000017AAsd0000302E* -- ID_MODEL_FROM_DATABASE=82566DM-2 Gigabit Network Connection -+ ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection (82566DM-2 Gigabit Network Connection) - - pci:v00008086d00002970* - ID_MODEL_FROM_DATABASE=82946GZ/PL/GL Memory Controller Hub -@@ -66330,7 +66330,7 @@ pci:v00008086d00002990* - ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub - - pci:v00008086d00002990sv00001028sd000001DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 745 -+ ID_MODEL_FROM_DATABASE=82Q963/Q965 Memory Controller Hub (OptiPlex 745) - - pci:v00008086d00002991* - ID_MODEL_FROM_DATABASE=82Q963/Q965 PCI Express Root Port -@@ -66357,10 +66357,10 @@ pci:v00008086d000029A0* - ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub - - pci:v00008086d000029A0sv00001043sd000081EA* -- ID_MODEL_FROM_DATABASE=P5B -+ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (P5B) - - pci:v00008086d000029A0sv00001462sd00007276* -- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] -+ ID_MODEL_FROM_DATABASE=82P965/G965 Memory Controller Hub (MS-7276 [G965MDH]) - - pci:v00008086d000029A1* - ID_MODEL_FROM_DATABASE=82P965/G965 PCI Express Root Port -@@ -66369,7 +66369,7 @@ pci:v00008086d000029A2* - ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller - - pci:v00008086d000029A2sv00001462sd00007276* -- ID_MODEL_FROM_DATABASE=MS-7276 [G965MDH] -+ ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller (MS-7276 [G965MDH]) - - pci:v00008086d000029A3* - ID_MODEL_FROM_DATABASE=82G965 Integrated Graphics Controller -@@ -66390,31 +66390,31 @@ pci:v00008086d000029B0* - ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller - - pci:v00008086d000029B0sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express DRAM Controller (OptiPlex 755) - - pci:v00008086d000029B1* - ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port - - pci:v00008086d000029B1sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express PCI Express Root Port (OptiPlex 755) - - pci:v00008086d000029B2* - ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller - - pci:v00008086d000029B2sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) - - pci:v00008086d000029B3* - ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller - - pci:v00008086d000029B3sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express Integrated Graphics Controller (OptiPlex 755) - - pci:v00008086d000029B4* - ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller - - pci:v00008086d000029B4sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller (OptiPlex 755) - - pci:v00008086d000029B5* - ID_MODEL_FROM_DATABASE=82Q35 Express MEI Controller -@@ -66423,70 +66423,70 @@ pci:v00008086d000029B6* - ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller - - pci:v00008086d000029B6sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express PT IDER Controller (OptiPlex 755) - - pci:v00008086d000029B7* - ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller - - pci:v00008086d000029B7sv00001028sd00000211* -- ID_MODEL_FROM_DATABASE=OptiPlex 755 -+ ID_MODEL_FROM_DATABASE=82Q35 Express Serial KT Controller (OptiPlex 755) - - pci:v00008086d000029C0* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller - - pci:v00008086d000029C0sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Inspiron 530) - - pci:v00008086d000029C0sv0000103Csd00002A6F* -- ID_MODEL_FROM_DATABASE=Asus IPIBL-LB Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Asus IPIBL-LB Motherboard) - - pci:v00008086d000029C0sv00001043sd00008276* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5K PRO Motherboard) - - pci:v00008086d000029C0sv00001043sd000082B0* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5KPL-VM Motherboard) - - pci:v00008086d000029C0sv00001462sd00007360* -- ID_MODEL_FROM_DATABASE=G33/P35 Neo -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (G33/P35 Neo) - - pci:v00008086d000029C0sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (QEMU Virtual Machine) - - pci:v00008086d000029C0sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Desktop Board DP35DP) - - pci:v00008086d000029C1* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port - - pci:v00008086d000029C1sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (Inspiron 530) - - pci:v00008086d000029C1sv00001043sd00008276* -- ID_MODEL_FROM_DATABASE=P5K PRO Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (P5K PRO Motherboard) - - pci:v00008086d000029C2* - ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller - - pci:v00008086d000029C2sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) - - pci:v00008086d000029C2sv00001043sd000082B0* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) - - pci:v00008086d000029C3* - ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller - - pci:v00008086d000029C3sv00001028sd0000020D* -- ID_MODEL_FROM_DATABASE=Inspiron 530 -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (Inspiron 530) - - pci:v00008086d000029C3sv00001043sd000082B0* -- ID_MODEL_FROM_DATABASE=P5KPL-VM Motherboard -+ ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller (P5KPL-VM Motherboard) - - pci:v00008086d000029C4* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller - - pci:v00008086d000029C4sv00008086sd00005044* -- ID_MODEL_FROM_DATABASE=Desktop Board DP35DP -+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller (Desktop Board DP35DP) - - pci:v00008086d000029C5* - ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express MEI Controller -@@ -66570,37 +66570,37 @@ pci:v00008086d00002A00* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub - - pci:v00008086d00002A00sv00001025sd00000121* -- ID_MODEL_FROM_DATABASE=Acer Aspire 5920G -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Acer Aspire 5920G) - - pci:v00008086d00002A00sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Inspiron 1420) - - pci:v00008086d00002A00sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6710b) - - pci:v00008086d00002A00sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Compaq 6910p) - - pci:v00008086d00002A00sv0000103Csd000030CC* -- ID_MODEL_FROM_DATABASE=Pavilion dv6700 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Pavilion dv6700) - - pci:v00008086d00002A00sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Presario C700) - - pci:v00008086d00002A00sv0000104Dsd00009005* -- ID_MODEL_FROM_DATABASE=Vaio VGN-FZ260E -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Vaio VGN-FZ260E) - - pci:v00008086d00002A00sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (VAIO VGN-NR120E) - - pci:v00008086d00002A00sv000017AAsd000020B1* -- ID_MODEL_FROM_DATABASE=ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61) - - pci:v00008086d00002A00sv000017AAsd000020B3* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) - - pci:v00008086d00002A00sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) - - pci:v00008086d00002A01* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 PCI Express Root Port -@@ -66609,52 +66609,52 @@ pci:v00008086d00002A02* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) - - pci:v00008086d00002A02sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Inspiron 1420) - - pci:v00008086d00002A02sv00001028sd000001F9* -- ID_MODEL_FROM_DATABASE=Latitude D630 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Latitude D630) - - pci:v00008086d00002A02sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Compaq 6710b) - - pci:v00008086d00002A02sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Presario C700) - - pci:v00008086d00002A02sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (VAIO VGN-NR120E) - - pci:v00008086d00002A02sv000017AAsd000020B5* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) - - pci:v00008086d00002A02sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) - - pci:v00008086d00002A03* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) - - pci:v00008086d00002A03sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Dell Inspiron 1420 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) - - pci:v00008086d00002A03sv0000103Csd000030C0* -- ID_MODEL_FROM_DATABASE=Compaq 6710b -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) - - pci:v00008086d00002A03sv0000103Csd000030D9* -- ID_MODEL_FROM_DATABASE=Presario C700 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Presario C700) - - pci:v00008086d00002A03sv0000104Dsd0000902D* -- ID_MODEL_FROM_DATABASE=VAIO VGN-NR120E -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (VAIO VGN-NR120E) - - pci:v00008086d00002A03sv000017AAsd000020B5* -- ID_MODEL_FROM_DATABASE=ThinkPad T61/R61 -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) - - pci:v00008086d00002A03sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) - - pci:v00008086d00002A04* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller - - pci:v00008086d00002A04sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller (Compaq 6910p) - - pci:v00008086d00002A05* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 MEI Controller -@@ -66663,19 +66663,19 @@ pci:v00008086d00002A06* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller - - pci:v00008086d00002A06sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 PT IDER Controller (Compaq 6910p) - - pci:v00008086d00002A07* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller - - pci:v00008086d00002A07sv0000103Csd000030C1* -- ID_MODEL_FROM_DATABASE=Compaq 6910p -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965 KT Controller (Compaq 6910p) - - pci:v00008086d00002A10* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub - - pci:v00008086d00002A10sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Memory Controller Hub (CCG-RUMBA) - - pci:v00008086d00002A11* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 PCI Express Root Port -@@ -66684,13 +66684,13 @@ pci:v00008086d00002A12* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller - - pci:v00008086d00002A12sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) - - pci:v00008086d00002A13* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller - - pci:v00008086d00002A13sv0000E4BFsd0000CC47* -- ID_MODEL_FROM_DATABASE=CCG-RUMBA -+ ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 Integrated Graphics Controller (CCG-RUMBA) - - pci:v00008086d00002A14* - ID_MODEL_FROM_DATABASE=Mobile GME965/GLE960 MEI Controller -@@ -66708,25 +66708,25 @@ pci:v00008086d00002A40* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub - - pci:v00008086d00002A40sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Memory Controller Hub (CCM-BOOGIE) - - pci:v00008086d00002A41* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port - - pci:v00008086d00002A41sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset PCI Express Graphics Port (CCM-BOOGIE) - - pci:v00008086d00002A42* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002A42sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) - - pci:v00008086d00002A43* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002A43sv0000E4BFsd0000CC4D* -- ID_MODEL_FROM_DATABASE=CCM-BOOGIE -+ ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset Integrated Graphics Controller (CCM-BOOGIE) - - pci:v00008086d00002A44* - ID_MODEL_FROM_DATABASE=Mobile 4 Series Chipset MEI Controller -@@ -67251,34 +67251,34 @@ pci:v00008086d00002E20* - ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller - - pci:v00008086d00002E20sv00001028sd00000283* -- ID_MODEL_FROM_DATABASE=Dell Vostro 220 -+ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (Dell Vostro 220) - - pci:v00008086d00002E20sv00001043sd000082D3* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00002E20sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset DRAM Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00002E21* - ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port - - pci:v00008086d00002E21sv00001043sd000082D3* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (P5Q Deluxe Motherboard) - - pci:v00008086d00002E21sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset PCI Express Root Port (GA-EP45-DS5 Motherboard) - - pci:v00008086d00002E22* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002E22sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) - - pci:v00008086d00002E23* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - - pci:v00008086d00002E23sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-EG45M-DS2H Mainboard -+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (GA-EG45M-DS2H Mainboard) - - pci:v00008086d00002E24* - ID_MODEL_FROM_DATABASE=4 Series Chipset HECI Controller -@@ -67917,16 +67917,16 @@ pci:v00008086d00003200* - ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA - - pci:v00008086d00003200sv00001775sd0000C200* -- ID_MODEL_FROM_DATABASE=C2K onboard SATA host bus adapter -+ ID_MODEL_FROM_DATABASE=GD31244 PCI-X SATA HBA (C2K onboard SATA host bus adapter) - - pci:v00008086d00003310* - ID_MODEL_FROM_DATABASE=IOP348 I/O Processor - - pci:v00008086d00003310sv00001054sd00003030* -- ID_MODEL_FROM_DATABASE=HRA380 Hitachi RAID Adapter to PCIe -+ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA380 Hitachi RAID Adapter to PCIe) - - pci:v00008086d00003310sv00001054sd00003034* -- ID_MODEL_FROM_DATABASE=HRA381 Hitachi RAID Adapter to PCIe -+ ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (HRA381 Hitachi RAID Adapter to PCIe) - - pci:v00008086d00003313* - ID_MODEL_FROM_DATABASE=IOP348 I/O Processor (SL8e) in IOC Mode SAS/SATA -@@ -67944,31 +67944,31 @@ pci:v00008086d00003340* - ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller - - pci:v00008086d00003340sv00001014sd00000529* -- ID_MODEL_FROM_DATABASE=Thinkpad T40 series -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (Thinkpad T40 series) - - pci:v00008086d00003340sv00001025sd0000005A* -- ID_MODEL_FROM_DATABASE=TravelMate 290 -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (TravelMate 290) - - pci:v00008086d00003340sv0000103Csd0000088C* -- ID_MODEL_FROM_DATABASE=NC8000 laptop -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC8000 laptop) - - pci:v00008086d00003340sv0000103Csd00000890* -- ID_MODEL_FROM_DATABASE=NC6000 laptop -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (NC6000 laptop) - - pci:v00008086d00003340sv0000103Csd000008B0* -- ID_MODEL_FROM_DATABASE=tc1100 tablet -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (tc1100 tablet) - - pci:v00008086d00003340sv0000144Dsd0000C005* -- ID_MODEL_FROM_DATABASE=X10 Laptop -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (X10 Laptop) - - pci:v00008086d00003340sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30/P35 notebook -+ ID_MODEL_FROM_DATABASE=82855PM Processor to I/O Controller (P30/P35 notebook) - - pci:v00008086d00003341* - ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller - - pci:v00008086d00003341sv0000144Dsd0000C00C* -- ID_MODEL_FROM_DATABASE=P30 notebook -+ ID_MODEL_FROM_DATABASE=82855PM Processor to AGP Controller (P30 notebook) - - pci:v00008086d00003363* - ID_MODEL_FROM_DATABASE=IOC340 I/O Controller in IOC Mode SAS/SATA -@@ -67995,19 +67995,19 @@ pci:v00008086d00003403* - ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port - - pci:v00008086d00003403sv00001028sd00000236* -- ID_MODEL_FROM_DATABASE=PowerEdge R610 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R610 I/O Hub to ESI Port) - - pci:v00008086d00003403sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge M610 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge M610 I/O Hub to ESI Port) - - pci:v00008086d00003403sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge R410 I/O Hub to ESI Port) - - pci:v00008086d00003403sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 I/O Hub to ESI Port -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (PowerEdge T410 I/O Hub to ESI Port) - - pci:v00008086d00003403sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=5500 I/O Hub to ESI Port (ProLiant ML150 G6 Server) - - pci:v00008086d00003404* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port -@@ -68019,7 +68019,7 @@ pci:v00008086d00003406* - ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port - - pci:v00008086d00003406sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=5520 I/O Hub to ESI Port (ProLiant G6 series) - - pci:v00008086d00003407* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub to ESI Port -@@ -68028,7 +68028,7 @@ pci:v00008086d00003408* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 - - pci:v00008086d00003408sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 1 (ProLiant G6 series) - - pci:v00008086d00003409* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 2 -@@ -68037,7 +68037,7 @@ pci:v00008086d0000340A* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 - - pci:v00008086d0000340Asv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 3 (ProLiant ML150 G6 Server) - - pci:v00008086d0000340B* - ID_MODEL_FROM_DATABASE=5520/X58 I/O Hub PCI Express Root Port 4 -@@ -68052,7 +68052,7 @@ pci:v00008086d0000340E* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 - - pci:v00008086d0000340Esv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 7 (ProLiant ML150 G6 Server) - - pci:v00008086d0000340F* - ID_MODEL_FROM_DATABASE=5520/5500/X58 I/O Hub PCI Express Root Port 8 -@@ -68079,13 +68079,13 @@ pci:v00008086d00003422* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers - - pci:v00008086d00003422sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (ProLiant G6 series) - - pci:v00008086d00003423* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers - - pci:v00008086d00003423sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (ProLiant G6 series) - - pci:v00008086d00003425* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Physical and Link Layer Registers Port 0 -@@ -68118,7 +68118,7 @@ pci:v00008086d0000342E* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers - - pci:v00008086d0000342Esv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 I/O Hub System Management Registers (ProLiant G6 series) - - pci:v00008086d0000342F* - ID_MODEL_FROM_DATABASE=7500/5520/5500/X58 Trusted Execution Technology Registers -@@ -68142,10 +68142,10 @@ pci:v00008086d00003500* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port - - pci:v00008086d00003500sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (ProLiant DL140 G3) - - pci:v00008086d00003500sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Upstream Port (X7DBN Motherboard) - - pci:v00008086d00003501* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express Upstream Port -@@ -68160,10 +68160,10 @@ pci:v00008086d0000350C* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge - - pci:v00008086d0000350Csv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (ProLiant DL140 G3) - - pci:v00008086d0000350Csv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express to PCI-X Bridge (X7DBN Motherboard) - - pci:v00008086d0000350D* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express to PCI-X Bridge -@@ -68172,10 +68172,10 @@ pci:v00008086d00003510* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 - - pci:v00008086d00003510sv0000103Csd000031FE* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G3 -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (ProLiant DL140 G3) - - pci:v00008086d00003510sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E1 (X7DBN Motherboard) - - pci:v00008086d00003511* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E1 -@@ -68190,7 +68190,7 @@ pci:v00008086d00003518* - ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 - - pci:v00008086d00003518sv000015D9sd00009680* -- ID_MODEL_FROM_DATABASE=X7DBN Motherboard -+ ID_MODEL_FROM_DATABASE=6311ESB/6321ESB PCI Express Downstream Port E3 (X7DBN Motherboard) - - pci:v00008086d00003519* - ID_MODEL_FROM_DATABASE=6310ESB PCI Express Downstream Port E3 -@@ -68199,13 +68199,13 @@ pci:v00008086d00003575* - ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge - - pci:v00008086d00003575sv00000E11sd00000030* -- ID_MODEL_FROM_DATABASE=Evo N600c -+ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (Evo N600c) - - pci:v00008086d00003575sv00001014sd0000021D* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (ThinkPad A/T/X Series) - - pci:v00008086d00003575sv0000104Dsd000080E7* -- ID_MODEL_FROM_DATABASE=VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP -+ ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge (VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP) - - pci:v00008086d00003576* - ID_MODEL_FROM_DATABASE=82830M/MP AGP Bridge -@@ -68214,7 +68214,7 @@ pci:v00008086d00003577* - ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller - - pci:v00008086d00003577sv00001014sd00000513* -- ID_MODEL_FROM_DATABASE=ThinkPad A/T/X Series -+ ID_MODEL_FROM_DATABASE=82830M/MG Integrated Graphics Controller (ThinkPad A/T/X Series) - - pci:v00008086d00003578* - ID_MODEL_FROM_DATABASE=82830M/MG/MP Host Bridge -@@ -68223,181 +68223,181 @@ pci:v00008086d00003580* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller - - pci:v00008086d00003580sv00001014sd0000055C* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) - - pci:v00008086d00003580sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) - - pci:v00008086d00003580sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) - - pci:v00008086d00003580sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) - - pci:v00008086d00003580sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) - - pci:v00008086d00003580sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) - - pci:v00008086d00003580sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) - - pci:v00008086d00003580sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) - - pci:v00008086d00003580sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) - - pci:v00008086d00003580sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) - - pci:v00008086d00003580sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) - - pci:v00008086d00003580sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) - - pci:v00008086d00003580sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) - - pci:v00008086d00003580sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CC9-SAMBA) - - pci:v00008086d00003580sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CD2-BEBOP) - - pci:v00008086d00003581* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller - - pci:v00008086d00003581sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to AGP Controller (Amilo M1420) - - pci:v00008086d00003582* - ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device - - pci:v00008086d00003582sv00001014sd00000562* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (ThinkPad R50e) - - pci:v00008086d00003582sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D400) - - pci:v00008086d00003582sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude X300) - - pci:v00008086d00003582sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D500) - - pci:v00008086d00003582sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Latitude D505) - - pci:v00008086d00003582sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (Inspiron 700m/710m) - - pci:v00008086d00003582sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 integrated graphics -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PC8 integrated graphics) - - pci:v00008086d00003582sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer VGA -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (V5D Single Board Computer VGA) - - pci:v00008086d00003582sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CE9) - - pci:v00008086d00003582sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CL9 mainboard) - - pci:v00008086d00003582sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (PSL09 PrPMC) - - pci:v00008086d00003582sv0000E4BFsd00000CC9* -- ID_MODEL_FROM_DATABASE=CC9-SAMBA -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CC9-SAMBA) - - pci:v00008086d00003582sv0000E4BFsd00000CD2* -- ID_MODEL_FROM_DATABASE=CD2-BEBOP -+ ID_MODEL_FROM_DATABASE=82852/855GM Integrated Graphics Device (CD2-BEBOP) - - pci:v00008086d00003584* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller - - pci:v00008086d00003584sv00001014sd0000055D* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) - - pci:v00008086d00003584sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) - - pci:v00008086d00003584sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) - - pci:v00008086d00003584sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) - - pci:v00008086d00003584sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) - - pci:v00008086d00003584sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) - - pci:v00008086d00003584sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) - - pci:v00008086d00003584sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) - - pci:v00008086d00003584sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) - - pci:v00008086d00003584sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) - - pci:v00008086d00003584sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) - - pci:v00008086d00003584sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) - - pci:v00008086d00003584sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) - - pci:v00008086d00003585* - ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller - - pci:v00008086d00003585sv00001014sd0000055E* -- ID_MODEL_FROM_DATABASE=ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (ThinkPad R50e) - - pci:v00008086d00003585sv00001028sd00000139* -- ID_MODEL_FROM_DATABASE=Latitude D400 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D400) - - pci:v00008086d00003585sv00001028sd0000014F* -- ID_MODEL_FROM_DATABASE=Latitude X300 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude X300) - - pci:v00008086d00003585sv00001028sd00000152* -- ID_MODEL_FROM_DATABASE=Latitude D500 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D500) - - pci:v00008086d00003585sv00001028sd00000163* -- ID_MODEL_FROM_DATABASE=Latitude D505 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Latitude D505) - - pci:v00008086d00003585sv00001028sd0000018D* -- ID_MODEL_FROM_DATABASE=Inspiron 700m/710m -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 700m/710m) - - pci:v00008086d00003585sv00001028sd00000196* -- ID_MODEL_FROM_DATABASE=Inspiron 5160 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Inspiron 5160) - - pci:v00008086d00003585sv0000114Asd00000582* -- ID_MODEL_FROM_DATABASE=PC8 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PC8) - - pci:v00008086d00003585sv00001734sd00001055* -- ID_MODEL_FROM_DATABASE=Amilo M1420 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (Amilo M1420) - - pci:v00008086d00003585sv00001775sd000010D0* -- ID_MODEL_FROM_DATABASE=V5D Single Board Computer -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (V5D Single Board Computer) - - pci:v00008086d00003585sv00001775sd0000CE90* -- ID_MODEL_FROM_DATABASE=CE9 -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CE9) - - pci:v00008086d00003585sv00004C53sd000010B0* -- ID_MODEL_FROM_DATABASE=CL9 mainboard -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (CL9 mainboard) - - pci:v00008086d00003585sv00004C53sd000010E0* -- ID_MODEL_FROM_DATABASE=PSL09 PrPMC -+ ID_MODEL_FROM_DATABASE=82852/82855 GM/GME/PM/GMV Processor to I/O Controller (PSL09 PrPMC) - - pci:v00008086d0000358C* - ID_MODEL_FROM_DATABASE=82854 GMCH -@@ -68409,70 +68409,70 @@ pci:v00008086d00003590* - ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub - - pci:v00008086d00003590sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (eServer xSeries server mainboard) - - pci:v00008086d00003590sv00001028sd0000016C* -- ID_MODEL_FROM_DATABASE=PowerEdge 1850 Memory Controller Hub -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 1850 Memory Controller Hub) - - pci:v00008086d00003590sv00001028sd0000016D* -- ID_MODEL_FROM_DATABASE=PowerEdge 2850 Memory Controller Hub -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge 2850 Memory Controller Hub) - - pci:v00008086d00003590sv00001028sd0000019A* -- ID_MODEL_FROM_DATABASE=PowerEdge SC1425 -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PowerEdge SC1425) - - pci:v00008086d00003590sv00001734sd0000103E* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX/TX S2 series -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (PRIMERGY RX/TX S2 series) - - pci:v00008086d00003590sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (CR11/VR11 Single Board Computer) - - pci:v00008086d00003590sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=E7520 Memory Controller Hub (Telum ASLP10 Processor AMC) - - pci:v00008086d00003591* - ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers - - pci:v00008086d00003591sv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (eServer xSeries server mainboard) - - pci:v00008086d00003591sv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision Workstation 670 Mainboard) - - pci:v00008086d00003591sv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Precision 470) - - pci:v00008086d00003591sv0000103Csd00003208* -- ID_MODEL_FROM_DATABASE=ProLiant DL140 G2 -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (ProLiant DL140 G2) - - pci:v00008086d00003591sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=E7525/E7520 Error Reporting Registers (Telum ASLP10 Processor AMC) - - pci:v00008086d00003592* - ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub - - pci:v00008086d00003592sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=E7320 Memory Controller Hub (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d00003593* - ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers - - pci:v00008086d00003593sv00001734sd00001073* -- ID_MODEL_FROM_DATABASE=Primergy Econel 200 D2020 mainboard -+ ID_MODEL_FROM_DATABASE=E7320 Error Reporting Registers (Primergy Econel 200 D2020 mainboard) - - pci:v00008086d00003594* - ID_MODEL_FROM_DATABASE=E7520 DMA Controller - - pci:v00008086d00003594sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (CR11/VR11 Single Board Computer) - - pci:v00008086d00003594sv00004C53sd000010D0* -- ID_MODEL_FROM_DATABASE=Telum ASLP10 Processor AMC -+ ID_MODEL_FROM_DATABASE=E7520 DMA Controller (Telum ASLP10 Processor AMC) - - pci:v00008086d00003595* - ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A - - pci:v00008086d00003595sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A (CR11/VR11 Single Board Computer) - - pci:v00008086d00003596* - ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 PCI Express Port A1 -@@ -68481,19 +68481,19 @@ pci:v00008086d00003597* - ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B - - pci:v00008086d00003597sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7525/E7520 PCI Express Port B (CR11/VR11 Single Board Computer) - - pci:v00008086d00003598* - ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 - - pci:v00008086d00003598sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port B1 (CR11/VR11 Single Board Computer) - - pci:v00008086d00003599* - ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C - - pci:v00008086d00003599sv00001775sd00001100* -- ID_MODEL_FROM_DATABASE=CR11/VR11 Single Board Computer -+ ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C (CR11/VR11 Single Board Computer) - - pci:v00008086d0000359A* - ID_MODEL_FROM_DATABASE=E7520 PCI Express Port C1 -@@ -68502,16 +68502,16 @@ pci:v00008086d0000359B* - ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers - - pci:v00008086d0000359Bsv00001014sd000002DD* -- ID_MODEL_FROM_DATABASE=eServer xSeries server mainboard -+ ID_MODEL_FROM_DATABASE=E7525/E7520/E7320 Extended Configuration Registers (eServer xSeries server mainboard) - - pci:v00008086d0000359E* - ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub - - pci:v00008086d0000359Esv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision Workstation 670 Mainboard) - - pci:v00008086d0000359Esv00001028sd00000169* -- ID_MODEL_FROM_DATABASE=Precision 470 -+ ID_MODEL_FROM_DATABASE=E7525 Memory Controller Hub (Precision 470) - - pci:v00008086d000035B0* - ID_MODEL_FROM_DATABASE=3100 Chipset Memory I/O Controller Hub -@@ -68562,7 +68562,7 @@ pci:v00008086d0000360C* - ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers - - pci:v00008086d0000360Csv00001028sd000001F0* -- ID_MODEL_FROM_DATABASE=PowerEdge R900 7300 Chipset FSB Registers -+ ID_MODEL_FROM_DATABASE=7300 Chipset FSB Registers (PowerEdge R900 7300 Chipset FSB Registers) - - pci:v00008086d0000360D* - ID_MODEL_FROM_DATABASE=7300 Chipset Snoop Filter Registers -@@ -68724,19 +68724,19 @@ pci:v00008086d00003A16* - ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller - - pci:v00008086d00003A16sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 LPC Interface Controller -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge R410 LPC Interface Controller) - - pci:v00008086d00003A16sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 LPC Interface Controller -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (PowerEdge T410 LPC Interface Controller) - - pci:v00008086d00003A16sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (ProLiant G6 series) - - pci:v00008086d00003A16sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A16sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) LPC Interface Controller (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A18* - ID_MODEL_FROM_DATABASE=82801JIB (ICH10) LPC Interface Controller -@@ -68748,52 +68748,52 @@ pci:v00008086d00003A20* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 - - pci:v00008086d00003A20sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge R410 SATA IDE Controller) - - pci:v00008086d00003A20sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 4 port SATA IDE Controller #1 (PowerEdge T410 SATA IDE Controller) - - pci:v00008086d00003A22* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller - - pci:v00008086d00003A22sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (ProLiant G6 series) - - pci:v00008086d00003A22sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A22sv00001458sd0000B005* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SATA AHCI Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A25* - ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller - - pci:v00008086d00003A25sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R410) -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R410)) - - pci:v00008086d00003A25sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE T410) -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE T410)) - - pci:v00008086d00003A25sv00001028sd000002F1* -- ID_MODEL_FROM_DATABASE=PERC S100 Controller (PE R510) -+ ID_MODEL_FROM_DATABASE=82801JIR (ICH10R) SATA RAID Controller (PERC S100 Controller (PE R510)) - - pci:v00008086d00003A26* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 - - pci:v00008086d00003A26sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge R410 SATA IDE Controller) - - pci:v00008086d00003A26sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 SATA IDE Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) 2 port SATA IDE Controller #2 (PowerEdge T410 SATA IDE Controller) - - pci:v00008086d00003A30* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller - - pci:v00008086d00003A30sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A30sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) SMBus Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A32* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Thermal Subsystem -@@ -68802,178 +68802,178 @@ pci:v00008086d00003A34* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 - - pci:v00008086d00003A34sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A34sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A34sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (ProLiant G6 series) - - pci:v00008086d00003A34sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A34sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #1 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A35* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 - - pci:v00008086d00003A35sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A35sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A35sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (ProLiant G6 series) - - pci:v00008086d00003A35sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A35sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #2 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A36* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 - - pci:v00008086d00003A36sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A36sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A36sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (ProLiant G6 series) - - pci:v00008086d00003A36sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A36sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #3 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A37* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 - - pci:v00008086d00003A37sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A37sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A37sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (ProLiant G6 series) - - pci:v00008086d00003A37sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A37sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #4 (Motherboard) - - pci:v00008086d00003A38* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 - - pci:v00008086d00003A38sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A38sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A38sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A38sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A38sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #5 (Motherboard) - - pci:v00008086d00003A39* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 - - pci:v00008086d00003A39sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge R410 USB UHCI Controller) - - pci:v00008086d00003A39sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB UHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (PowerEdge T410 USB UHCI Controller) - - pci:v00008086d00003A39sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A39sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A39sv00001458sd00005004* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB UHCI Controller #6 (Motherboard) - - pci:v00008086d00003A3A* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 - - pci:v00008086d00003A3Asv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge R410 USB EHCI Controller) - - pci:v00008086d00003A3Asv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (PowerEdge T410 USB EHCI Controller) - - pci:v00008086d00003A3Asv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (ProLiant G6 series) - - pci:v00008086d00003A3Asv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A3Asv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #1 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A3C* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 - - pci:v00008086d00003A3Csv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge R410 USB EHCI Controller) - - pci:v00008086d00003A3Csv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 USB EHCI Controller -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (PowerEdge T410 USB EHCI Controller) - - pci:v00008086d00003A3Csv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant G6 series -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (ProLiant G6 series) - - pci:v00008086d00003A3Csv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A3Csv00001458sd00005006* -- ID_MODEL_FROM_DATABASE=Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) USB2 EHCI Controller #2 (Motherboard) - - pci:v00008086d00003A3E* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller - - pci:v00008086d00003A3Esv00001043sd00008311* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (P5Q Deluxe Motherboard) - - pci:v00008086d00003A3Esv00001458sd0000A002* -- ID_MODEL_FROM_DATABASE=GA-EP45-UD3R Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-UD3R Motherboard) - - pci:v00008086d00003A3Esv00001458sd0000A102* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) HD Audio Controller (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A40* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 - - pci:v00008086d00003A40sv00001028sd0000028C* -- ID_MODEL_FROM_DATABASE=PowerEdge R410 PCI Express Port 1 -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge R410 PCI Express Port 1) - - pci:v00008086d00003A40sv00001028sd0000028D* -- ID_MODEL_FROM_DATABASE=PowerEdge T410 PCI Express Port 1 -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (PowerEdge T410 PCI Express Port 1) - - pci:v00008086d00003A40sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A40sv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A40sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A40sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 1 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A42* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Port 2 -@@ -68982,43 +68982,43 @@ pci:v00008086d00003A44* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 - - pci:v00008086d00003A44sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 3 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A46* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 - - pci:v00008086d00003A46sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A46sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 4 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A48* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 - - pci:v00008086d00003A48sv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A48sv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (P6T Deluxe Motherboard) - - pci:v00008086d00003A48sv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5 Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 5 (GA-EP45-DS5 Motherboard) - - pci:v00008086d00003A4A* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 - - pci:v00008086d00003A4Asv0000103Csd0000330B* -- ID_MODEL_FROM_DATABASE=ProLiant ML150 G6 Server -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (ProLiant ML150 G6 Server) - - pci:v00008086d00003A4Asv00001043sd000082D4* -- ID_MODEL_FROM_DATABASE=P5Q Deluxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P5Q Deluxe Motherboard) - - pci:v00008086d00003A4Asv00001043sd000082EA* -- ID_MODEL_FROM_DATABASE=P6T DeLuxe Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (P6T DeLuxe Motherboard) - - pci:v00008086d00003A4Asv00001458sd00005001* -- ID_MODEL_FROM_DATABASE=GA-EP45-DS5/GA-EG45M-DS2H Motherboard -+ ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) PCI Express Root Port 6 (GA-EP45-DS5/GA-EG45M-DS2H Motherboard) - - pci:v00008086d00003A4C* - ID_MODEL_FROM_DATABASE=82801JI (ICH10 Family) Gigabit Ethernet Controller -@@ -69108,10 +69108,10 @@ pci:v00008086d00003B07* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller - - pci:v00008086d00003B07sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Latitude E6510) - - pci:v00008086d00003B07sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (PC1-GROOVE) - - pci:v00008086d00003B08* - ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller -@@ -69120,16 +69120,16 @@ pci:v00008086d00003B09* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller - - pci:v00008086d00003B09sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) - - pci:v00008086d00003B0A* - ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller - - pci:v00008086d00003B0Asv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (OptiPlex 980) - - pci:v00008086d00003B0Asv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B0B* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller -@@ -69204,10 +69204,10 @@ pci:v00008086d00003B22* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller - - pci:v00008086d00003B22sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (OptiPlex 980) - - pci:v00008086d00003B22sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B23* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller -@@ -69225,7 +69225,7 @@ pci:v00008086d00003B29* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller - - pci:v00008086d00003B29sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) - - pci:v00008086d00003B2C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller -@@ -69234,64 +69234,64 @@ pci:v00008086d00003B2D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller - - pci:v00008086d00003B2Dsv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) - - pci:v00008086d00003B2E* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller - - pci:v00008086d00003B2Esv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (PC1-GROOVE) - - pci:v00008086d00003B2F* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller - - pci:v00008086d00003B2Fsv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (Latitude E6510) - - pci:v00008086d00003B2Fsv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 6 port SATA AHCI Controller (PC1-GROOVE) - - pci:v00008086d00003B30* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller - - pci:v00008086d00003B30sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Aspire 7740G) - - pci:v00008086d00003B30sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (OptiPlex 980) - - pci:v00008086d00003B30sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) - - pci:v00008086d00003B30sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B30sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) - - pci:v00008086d00003B32* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem - - pci:v00008086d00003B32sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) - - pci:v00008086d00003B34* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller - - pci:v00008086d00003B34sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) - - pci:v00008086d00003B34sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) - - pci:v00008086d00003B34sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - - pci:v00008086d00003B34sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B34sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - - pci:v00008086d00003B36* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller -@@ -69315,19 +69315,19 @@ pci:v00008086d00003B3C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller - - pci:v00008086d00003B3Csv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Aspire 7740G) - - pci:v00008086d00003B3Csv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (OptiPlex 980) - - pci:v00008086d00003B3Csv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - - pci:v00008086d00003B3Csv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B3Csv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - - pci:v00008086d00003B3E* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB Universal Host Controller -@@ -69345,40 +69345,40 @@ pci:v00008086d00003B42* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 - - pci:v00008086d00003B42sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (OptiPlex 980) - - pci:v00008086d00003B42sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) - - pci:v00008086d00003B42sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) - - pci:v00008086d00003B44* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 - - pci:v00008086d00003B44sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Latitude E6510) - - pci:v00008086d00003B44sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) - - pci:v00008086d00003B46* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 - - pci:v00008086d00003B46sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) - - pci:v00008086d00003B48* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 - - pci:v00008086d00003B48sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) - - pci:v00008086d00003B4A* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 - - pci:v00008086d00003B4Asv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) - - pci:v00008086d00003B4C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 -@@ -69396,19 +69396,19 @@ pci:v00008086d00003B56* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio - - pci:v00008086d00003B56sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Aspire 7740G) - - pci:v00008086d00003B56sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (OptiPlex 980) - - pci:v00008086d00003B56sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) - - pci:v00008086d00003B56sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) - - pci:v00008086d00003B56sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) - - pci:v00008086d00003B57* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio -@@ -69417,13 +69417,13 @@ pci:v00008086d00003B64* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller - - pci:v00008086d00003B64sv00001025sd00000347* -- ID_MODEL_FROM_DATABASE=Aspire 7740G -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Aspire 7740G) - - pci:v00008086d00003B64sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) - - pci:v00008086d00003B64sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) - - pci:v00008086d00003B65* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller -@@ -69435,7 +69435,7 @@ pci:v00008086d00003B67* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller - - pci:v00008086d00003B67sv0000E4BFsd000050C1* -- ID_MODEL_FROM_DATABASE=PC1-GROOVE -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset KT Controller (PC1-GROOVE) - - pci:v00008086d00003C00* - ID_MODEL_FROM_DATABASE=Xeon E5/Core i7 DMI2 -@@ -69765,25 +69765,25 @@ pci:v00008086d00004220* - ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection - - pci:v00008086d00004220sv0000103Csd00000934* -- ID_MODEL_FROM_DATABASE=Compaq nw8240/nx8220 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Compaq nw8240/nx8220) - - pci:v00008086d00004220sv0000103Csd000012F6* -- ID_MODEL_FROM_DATABASE=nc6120/nx8220/nw8240 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (nc6120/nx8220/nw8240) - - pci:v00008086d00004220sv00008086sd00002701* -- ID_MODEL_FROM_DATABASE=WM3B2300BG Mini-PCI Card -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (WM3B2300BG Mini-PCI Card) - - pci:v00008086d00004220sv00008086sd00002712* -- ID_MODEL_FROM_DATABASE=IBM ThinkPad R50e -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (IBM ThinkPad R50e) - - pci:v00008086d00004220sv00008086sd00002721* -- ID_MODEL_FROM_DATABASE=Dell B130 laptop integrated WLAN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell B130 laptop integrated WLAN) - - pci:v00008086d00004220sv00008086sd00002722* -- ID_MODEL_FROM_DATABASE=Dell Latitude D600 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Dell Latitude D600) - - pci:v00008086d00004220sv00008086sd00002731* -- ID_MODEL_FROM_DATABASE=Samsung P35 integrated WLAN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2200BG [Calexico2] Network Connection (Samsung P35 integrated WLAN) - - pci:v00008086d00004222* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection -@@ -69792,40 +69792,40 @@ pci:v00008086d00004222sv0000103Csd0000135C* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection - - pci:v00008086d00004222sv00008086sd00001000* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004222sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004222sv00008086sd00001005* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004222sv00008086sd00001034* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004222sv00008086sd00001044* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004222sv00008086sd00001C00* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004223* - ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection - - pci:v00008086d00004223sv00001000sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B Americas/Europe ZZA -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Americas/Europe ZZA) - - pci:v00008086d00004223sv00001001sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B Europe ZZE -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Europe ZZE) - - pci:v00008086d00004223sv00001002sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B Japan ZZJ -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B Japan ZZJ) - - pci:v00008086d00004223sv00001003sd00008086* -- ID_MODEL_FROM_DATABASE=mPCI 3B High-Band ZZH -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (mPCI 3B High-Band ZZH) - - pci:v00008086d00004223sv00001351sd0000103C* -- ID_MODEL_FROM_DATABASE=Compaq NC6220 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection (Compaq NC6220) - - pci:v00008086d00004224* - ID_MODEL_FROM_DATABASE=PRO/Wireless 2915ABG [Calexico2] Network Connection -@@ -69834,106 +69834,106 @@ pci:v00008086d00004227* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection - - pci:v00008086d00004227sv00008086sd00001011* -- ID_MODEL_FROM_DATABASE=ThinkPad T60/R60e/X60s -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (ThinkPad T60/R60e/X60s) - - pci:v00008086d00004227sv00008086sd00001014* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945BG Network Connection -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) - - pci:v00008086d00004229* - ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection - - pci:v00008086d00004229sv00008086sd00001100* -- ID_MODEL_FROM_DATABASE=Vaio VGN-SZ79SN_C -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Vaio VGN-SZ79SN_C) - - pci:v00008086d00004229sv00008086sd00001101* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (PRO/Wireless 4965 AG or AGN) - - pci:v00008086d0000422B* - ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 - - pci:v00008086d0000422Bsv00008086sd00001101* -- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) - - pci:v00008086d0000422Bsv00008086sd00001121* -- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) - - pci:v00008086d0000422C* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 - - pci:v00008086d0000422Csv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) - - pci:v00008086d0000422Csv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) - - pci:v00008086d0000422Csv00008086sd00001307* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 BG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 BG) - - pci:v00008086d0000422Csv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) - - pci:v00008086d0000422Csv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) - - pci:v00008086d00004230* - ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection - - pci:v00008086d00004230sv00008086sd00001110* -- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T51 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T51) - - pci:v00008086d00004230sv00008086sd00001111* -- ID_MODEL_FROM_DATABASE=Lenovo ThinkPad T61 -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (Lenovo ThinkPad T61) - - pci:v00008086d00004232* - ID_MODEL_FROM_DATABASE=WiFi Link 5100 - - pci:v00008086d00004232sv00008086sd00001201* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001204* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001205* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001206* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004232sv00008086sd00001221* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001224* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001225* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001226* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004232sv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001304* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001305* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004232sv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001324* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (AGN) - - pci:v00008086d00004232sv00008086sd00001325* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (BGN) - - pci:v00008086d00004232sv00008086sd00001326* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=WiFi Link 5100 (ABG) - - pci:v00008086d00004235* - ID_MODEL_FROM_DATABASE=Ultimate N WiFi Link 5300 -@@ -69945,43 +69945,43 @@ pci:v00008086d00004237* - ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection - - pci:v00008086d00004237sv00008086sd00001211* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001214* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001215* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) - - pci:v00008086d00004237sv00008086sd00001216* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) - - pci:v00008086d00004237sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001314* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 AGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 AGN) - - pci:v00008086d00004237sv00008086sd00001315* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 BGN -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 BGN) - - pci:v00008086d00004237sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=WiFi Link 5100 ABG -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 5100 AGN [Shiloh] Network Connection (WiFi Link 5100 ABG) - - pci:v00008086d00004238* - ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 - - pci:v00008086d00004238sv00008086sd00001111* -- ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 3x3 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Ultimate-N 6300 (3x3 AGN) - - pci:v00008086d00004239* - ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 - - pci:v00008086d00004239sv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 AGN -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 AGN) - - pci:v00008086d00004239sv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 2x2 ABG -+ ID_MODEL_FROM_DATABASE=Centrino Advanced-N 6200 (2x2 ABG) - - pci:v00008086d0000423A* - ID_MODEL_FROM_DATABASE=PRO/Wireless 5350 AGN [Echo Peak] Network Connection -@@ -69993,37 +69993,37 @@ pci:v00008086d0000423C* - ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 - - pci:v00008086d0000423Csv00008086sd00001201* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Csv00008086sd00001206* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000423Csv00008086sd00001221* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Csv00008086sd00001301* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Csv00008086sd00001306* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000423Csv00008086sd00001321* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423D* - ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 - - pci:v00008086d0000423Dsv00008086sd00001211* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Dsv00008086sd00001216* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000423Dsv00008086sd00001311* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 AGN -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (AGN) - - pci:v00008086d0000423Dsv00008086sd00001316* -- ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 ABG -+ ID_MODEL_FROM_DATABASE=WiMAX/WiFi Link 5150 (ABG) - - pci:v00008086d0000444E* - ID_MODEL_FROM_DATABASE=Turbo Memory Controller -@@ -70176,7 +70176,7 @@ pci:v00008086d00005201* - ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller - - pci:v00008086d00005201sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Server Ethernet Adapter -+ ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller (EtherExpress PRO/100 Server Ethernet Adapter) - - pci:v00008086d0000530D* - ID_MODEL_FROM_DATABASE=80310 (IOP) IO Processor -@@ -70185,7 +70185,7 @@ pci:v00008086d00005845* - ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller - - pci:v00008086d00005845sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller (QEMU Virtual Machine) - - pci:v00008086d000065C0* - ID_MODEL_FROM_DATABASE=5100 Chipset Memory Controller Hub -@@ -70212,16 +70212,16 @@ pci:v00008086d000065F0* - ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers - - pci:v00008086d000065F0sv00001028sd0000020F* -- ID_MODEL_FROM_DATABASE=PowerEdge R300 -+ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge R300) - - pci:v00008086d000065F0sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 -+ ID_MODEL_FROM_DATABASE=5100 Chipset FSB Registers (PowerEdge T300) - - pci:v00008086d000065F1* - ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers - - pci:v00008086d000065F1sv00001028sd00000210* -- ID_MODEL_FROM_DATABASE=PowerEdge T300 -+ ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers (PowerEdge T300) - - pci:v00008086d000065F3* - ID_MODEL_FROM_DATABASE=5100 Chipset Reserved Registers -@@ -70251,19 +70251,19 @@ pci:v00008086d00007000* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] - - pci:v00008086d00007000sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] (Qemu virtual machine) - - pci:v00008086d00007010* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] - - pci:v00008086d00007010sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=82371SB PIIX3 IDE [Natoma/Triton II] (Qemu virtual machine) - - pci:v00008086d00007020* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] - - pci:v00008086d00007020sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82371SB PIIX3 USB [Natoma/Triton II] (QEMU Virtual Machine) - - pci:v00008086d00007030* - ID_MODEL_FROM_DATABASE=430VX - 82437VX TVX [Triton VX] -@@ -70281,52 +70281,52 @@ pci:v00008086d00007110* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA - - pci:v00008086d00007110sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ISA (Virtual Machine Chipset) - - pci:v00008086d00007111* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE - - pci:v00008086d00007111sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 IDE (Virtual Machine Chipset) - - pci:v00008086d00007112* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB - - pci:v00008086d00007112sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (Virtual Machine Chipset) - - pci:v00008086d00007112sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=QEMU Virtual Machine -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 USB (QEMU Virtual Machine) - - pci:v00008086d00007113* - ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI - - pci:v00008086d00007113sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Virtual Machine Chipset) - - pci:v00008086d00007113sv00001AF4sd00001100* -- ID_MODEL_FROM_DATABASE=Qemu virtual machine -+ ID_MODEL_FROM_DATABASE=82371AB/EB/MB PIIX4 ACPI (Qemu virtual machine) - - pci:v00008086d00007120* - ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) - - pci:v00008086d00007120sv00004C53sd00001040* -- ID_MODEL_FROM_DATABASE=CL7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (CL7 mainboard) - - pci:v00008086d00007120sv00004C53sd00001060* -- ID_MODEL_FROM_DATABASE=PC7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 GMCH (Graphics Memory Controller Hub) (PC7 mainboard) - - pci:v00008086d00007121* - ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller - - pci:v00008086d00007121sv00004C53sd00001040* -- ID_MODEL_FROM_DATABASE=CL7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (CL7 mainboard) - - pci:v00008086d00007121sv00004C53sd00001060* -- ID_MODEL_FROM_DATABASE=PC7 mainboard -+ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (PC7 mainboard) - - pci:v00008086d00007121sv00008086sd00004341* -- ID_MODEL_FROM_DATABASE=Cayman (CA810) Mainboard -+ ID_MODEL_FROM_DATABASE=82810 (CGC) Chipset Graphics Controller (Cayman (CA810) Mainboard) - - pci:v00008086d00007122* - ID_MODEL_FROM_DATABASE=82810 DC-100 (GMCH) Graphics Memory Controller Hub -@@ -70338,13 +70338,13 @@ pci:v00008086d00007124* - ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub - - pci:v00008086d00007124sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=82810E DC-133 (GMCH) Graphics Memory Controller Hub (OptiPlex GX110) - - pci:v00008086d00007125* - ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller - - pci:v00008086d00007125sv00001028sd000000B4* -- ID_MODEL_FROM_DATABASE=OptiPlex GX110 -+ ID_MODEL_FROM_DATABASE=82810E DC-133 (CGC) Chipset Graphics Controller (OptiPlex GX110) - - pci:v00008086d00007126* - ID_MODEL_FROM_DATABASE=82810 DC-133 System and Graphics Controller -@@ -70365,73 +70365,73 @@ pci:v00008086d00007190* - ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge - - pci:v00008086d00007190sv00000E11sd00000500* -- ID_MODEL_FROM_DATABASE=Armada 1750 Laptop System Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada 1750 Laptop System Chipset) - - pci:v00008086d00007190sv00000E11sd0000B110* -- ID_MODEL_FROM_DATABASE=Armada M700/E500 -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Armada M700/E500) - - pci:v00008086d00007190sv00001028sd0000008E* -- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (PowerEdge 1300 mainboard) - - pci:v00008086d00007190sv00001043sd0000803B* -- ID_MODEL_FROM_DATABASE=CUBX-L/E Mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CUBX-L/E Mainboard) - - pci:v00008086d00007190sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Toshiba Tecra 8100 Laptop System Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Toshiba Tecra 8100 Laptop System Chipset) - - pci:v00008086d00007190sv000015ADsd00001976* -- ID_MODEL_FROM_DATABASE=Virtual Machine Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (Virtual Machine Chipset) - - pci:v00008086d00007190sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CT7 mainboard) - - pci:v00008086d00007190sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (CE7 mainboard) - - pci:v00008086d00007191* - ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge - - pci:v00008086d00007191sv00001028sd0000008E* -- ID_MODEL_FROM_DATABASE=PowerEdge 1300 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (PowerEdge 1300 mainboard) - - pci:v00008086d00007192* - ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) - - pci:v00008086d00007192sv00000E11sd00000460* -- ID_MODEL_FROM_DATABASE=Armada 1700 Laptop System Chipset -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Armada 1700 Laptop System Chipset) - - pci:v00008086d00007192sv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Satellite 4010 -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Satellite 4010) - - pci:v00008086d00007192sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00008086d00007192sv00008086sd00007190* -- ID_MODEL_FROM_DATABASE=Dell PowerEdge 350 -+ ID_MODEL_FROM_DATABASE=440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (Dell PowerEdge 350) - - pci:v00008086d00007194* - ID_MODEL_FROM_DATABASE=82440MX Host Bridge - - pci:v00008086d00007194sv00001033sd00000000* -- ID_MODEL_FROM_DATABASE=Versa Note Vxi -+ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (Versa Note Vxi) - - pci:v00008086d00007194sv00004C53sd000010A0* -- ID_MODEL_FROM_DATABASE=CA3/CR3 mainboard -+ ID_MODEL_FROM_DATABASE=82440MX Host Bridge (CA3/CR3 mainboard) - - pci:v00008086d00007195* - ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller - - pci:v00008086d00007195sv00001033sd000080CC* -- ID_MODEL_FROM_DATABASE=Versa Note VXi -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (Versa Note VXi) - - pci:v00008086d00007195sv000010CFsd00001099* -- ID_MODEL_FROM_DATABASE=QSound_SigmaTel Stac97 PCI Audio -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (QSound_SigmaTel Stac97 PCI Audio) - - pci:v00008086d00007195sv000011D4sd00000040* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00007195sv000011D4sd00000048* -- ID_MODEL_FROM_DATABASE=SoundMAX Integrated Digital Audio -+ ID_MODEL_FROM_DATABASE=82440MX AC'97 Audio Controller (SoundMAX Integrated Digital Audio) - - pci:v00008086d00007196* - ID_MODEL_FROM_DATABASE=82440MX AC'97 Modem Controller -@@ -70452,10 +70452,10 @@ pci:v00008086d000071A0* - ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge - - pci:v00008086d000071A0sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CT7 mainboard) - - pci:v00008086d000071A0sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (CE7 mainboard) - - pci:v00008086d000071A1* - ID_MODEL_FROM_DATABASE=440GX - 82443GX AGP bridge -@@ -70464,7 +70464,7 @@ pci:v00008086d000071A2* - ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) - - pci:v00008086d000071A2sv00004C53sd00001000* -- ID_MODEL_FROM_DATABASE=CC7/CR7/CP7/VC7/VP7/VR7 mainboard -+ ID_MODEL_FROM_DATABASE=440GX - 82443GX Host bridge (AGP disabled) (CC7/CR7/CP7/VC7/VP7/VR7 mainboard) - - pci:v00008086d00007600* - ID_MODEL_FROM_DATABASE=82372FB PIIX5 ISA -@@ -70482,25 +70482,25 @@ pci:v00008086d00007800* - ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator - - pci:v00008086d00007800sv0000003Dsd00000008* -- ID_MODEL_FROM_DATABASE=Starfighter AGP -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) - - pci:v00008086d00007800sv0000003Dsd0000000B* -- ID_MODEL_FROM_DATABASE=Starfighter AGP -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Starfighter AGP) - - pci:v00008086d00007800sv00001092sd00000100* -- ID_MODEL_FROM_DATABASE=Stealth II G460 -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Stealth II G460) - - pci:v00008086d00007800sv000010B4sd0000201A* -- ID_MODEL_FROM_DATABASE=Lightspeed 740 -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) - - pci:v00008086d00007800sv000010B4sd0000202F* -- ID_MODEL_FROM_DATABASE=Lightspeed 740 -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Lightspeed 740) - - pci:v00008086d00007800sv00008086sd00000000* -- ID_MODEL_FROM_DATABASE=Terminator 2x/i -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Terminator 2x/i) - - pci:v00008086d00007800sv00008086sd00000100* -- ID_MODEL_FROM_DATABASE=Intel740 Graphics Accelerator -+ ID_MODEL_FROM_DATABASE=82740 (i740) AGP Graphics Accelerator (Intel740 Graphics Accelerator) - - pci:v00008086d00008002* - ID_MODEL_FROM_DATABASE=Trusted Execution Technology Registers -@@ -70611,13 +70611,13 @@ pci:v00008086d00008500* - ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) - - pci:v00008086d00008500sv00001993sd00000DED* -- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#2 -+ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#2) - - pci:v00008086d00008500sv00001993sd00000DEE* -- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#1 -+ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#1) - - pci:v00008086d00008500sv00001993sd00000DEF* -- ID_MODEL_FROM_DATABASE=mGuard-PCI AV#0 -+ ID_MODEL_FROM_DATABASE=IXP4XX Network Processor (IXP420/421/422/425/IXC1100) (mGuard-PCI AV#0) - - pci:v00008086d00008800* - ID_MODEL_FROM_DATABASE=Platform Controller Hub EG20T PCI Express Port -@@ -70710,10 +70710,10 @@ pci:v00008086d00008C03* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] - - pci:v00008086d00008C03sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ZBook 15) - - pci:v00008086d00008C03sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (ThinkPad T440p) - - pci:v00008086d00008C04* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode] -@@ -70743,7 +70743,7 @@ pci:v00008086d00008C10* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 - - pci:v00008086d00008C10sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 (ThinkPad T440p) - - pci:v00008086d00008C11* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1 -@@ -70752,7 +70752,7 @@ pci:v00008086d00008C12* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 - - pci:v00008086d00008C12sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 (ThinkPad T440p) - - pci:v00008086d00008C13* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2 -@@ -70797,10 +70797,10 @@ pci:v00008086d00008C20* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller - - pci:v00008086d00008C20sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ZBook 15) - - pci:v00008086d00008C20sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller (ThinkPad T440p) - - pci:v00008086d00008C21* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller -@@ -70809,10 +70809,10 @@ pci:v00008086d00008C22* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller - - pci:v00008086d00008C22sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ZBook 15) - - pci:v00008086d00008C22sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller (ThinkPad T440p) - - pci:v00008086d00008C23* - ID_MODEL_FROM_DATABASE=8 Series Chipset Family CHAP Counters -@@ -70824,28 +70824,28 @@ pci:v00008086d00008C26* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 - - pci:v00008086d00008C26sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ZBook 15) - - pci:v00008086d00008C26sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1 (ThinkPad T440p) - - pci:v00008086d00008C2D* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 - - pci:v00008086d00008C2Dsv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ZBook 15) - - pci:v00008086d00008C2Dsv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2 (ThinkPad T440p) - - pci:v00008086d00008C31* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI - - pci:v00008086d00008C31sv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ZBook 15) - - pci:v00008086d00008C31sv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ThinkPad T440p) - - pci:v00008086d00008C33* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LAN Controller -@@ -70857,10 +70857,10 @@ pci:v00008086d00008C3A* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 - - pci:v00008086d00008C3Asv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ZBook 15) - - pci:v00008086d00008C3Asv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1 (ThinkPad T440p) - - pci:v00008086d00008C3B* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #2 -@@ -70920,10 +70920,10 @@ pci:v00008086d00008C4F* - ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller - - pci:v00008086d00008C4Fsv0000103Csd00001909* -- ID_MODEL_FROM_DATABASE=ZBook 15 -+ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ZBook 15) - - pci:v00008086d00008C4Fsv000017AAsd0000220E* -- ID_MODEL_FROM_DATABASE=ThinkPad T440p -+ ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller (ThinkPad T440p) - - pci:v00008086d00008C50* - ID_MODEL_FROM_DATABASE=B85 Express LPC Controller -@@ -70986,7 +70986,7 @@ pci:v00008086d00008D06* - ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] - - pci:v00008086d00008D06sv000017AAsd00001031* -- ID_MODEL_FROM_DATABASE=ThinkServer RAID 110i -+ ID_MODEL_FROM_DATABASE=Wellsburg SATA Controller [RAID mode] (ThinkServer RAID 110i) - - pci:v00008086d00008D08* - ID_MODEL_FROM_DATABASE=Wellsburg 2-port SATA Controller [IDE mode] -@@ -71196,7 +71196,7 @@ pci:v00008086d00009C03* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] - - pci:v00008086d00009C03sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) - - pci:v00008086d00009C04* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -@@ -71286,7 +71286,7 @@ pci:v00008086d00009C20* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller - - pci:v00008086d00009C20sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) - - pci:v00008086d00009C21* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller -@@ -71295,7 +71295,7 @@ pci:v00008086d00009C22* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller - - pci:v00008086d00009C22sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) - - pci:v00008086d00009C23* - ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters -@@ -71307,7 +71307,7 @@ pci:v00008086d00009C26* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 - - pci:v00008086d00009C26sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) - - pci:v00008086d00009C2D* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 -@@ -71316,7 +71316,7 @@ pci:v00008086d00009C31* - ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC - - pci:v00008086d00009C31sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) - - pci:v00008086d00009C35* - ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller -@@ -71328,7 +71328,7 @@ pci:v00008086d00009C3A* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 - - pci:v00008086d00009C3Asv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) - - pci:v00008086d00009C3B* - ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 -@@ -71352,7 +71352,7 @@ pci:v00008086d00009C43* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller - - pci:v00008086d00009C43sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=ThinkPad X240 -+ ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) - - pci:v00008086d00009C44* - ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -@@ -71496,25 +71496,25 @@ pci:v00008086d0000A000* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge - - pci:v00008086d0000A000sv00001458sd00005000* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (GA-D525TUD) - - pci:v00008086d0000A000sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (DeskTop Board D510MO) - - pci:v00008086d0000A000sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Desktop Board D425KT) - - pci:v00008086d0000A001* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller - - pci:v00008086d0000A001sv00001458sd0000D000* -- ID_MODEL_FROM_DATABASE=GA-D525TUD -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (GA-D525TUD) - - pci:v00008086d0000A001sv00008086sd00004F4D* -- ID_MODEL_FROM_DATABASE=DeskTop Board D510MO -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (DeskTop Board D510MO) - - pci:v00008086d0000A001sv00008086sd0000544B* -- ID_MODEL_FROM_DATABASE=Desktop Board D425KT -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Desktop Board D425KT) - - pci:v00008086d0000A002* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller -@@ -71526,19 +71526,19 @@ pci:v00008086d0000A010* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge - - pci:v00008086d0000A010sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (Notebook N150P) - - pci:v00008086d0000A011* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller - - pci:v00008086d0000A011sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) - - pci:v00008086d0000A012* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller - - pci:v00008086d0000A012sv0000144Dsd0000C072* -- ID_MODEL_FROM_DATABASE=Notebook N150P -+ ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (Notebook N150P) - - pci:v00008086d0000A013* - ID_MODEL_FROM_DATABASE=Atom Processor D4xx/D5xx/N4xx/N5xx CHAPS counter -@@ -71559,22 +71559,22 @@ pci:v00008086d0000B555* - ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge - - pci:v00008086d0000B555sv000012C7sd00005005* -- ID_MODEL_FROM_DATABASE=SS7HD PCI Adaptor Card -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HD PCI Adaptor Card) - - pci:v00008086d0000B555sv000012C7sd00005006* -- ID_MODEL_FROM_DATABASE=SS7HDC cPCI Adaptor Card -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (SS7HDC cPCI Adaptor Card) - - pci:v00008086d0000B555sv000012D9sd0000000A* -- ID_MODEL_FROM_DATABASE=PCI VoIP Gateway -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (PCI VoIP Gateway) - - pci:v00008086d0000B555sv00004C53sd00001050* -- ID_MODEL_FROM_DATABASE=CT7 mainboard -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CT7 mainboard) - - pci:v00008086d0000B555sv00004C53sd00001051* -- ID_MODEL_FROM_DATABASE=CE7 mainboard -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CE7 mainboard) - - pci:v00008086d0000B555sv0000E4BFsd00001000* -- ID_MODEL_FROM_DATABASE=CC8-1-BLUES -+ ID_MODEL_FROM_DATABASE=21555 Non transparent PCI-to-PCI Bridge (CC8-1-BLUES) - - pci:v00008086d0000D130* - ID_MODEL_FROM_DATABASE=Core Processor DMI -@@ -71583,16 +71583,16 @@ pci:v00008086d0000D131* - ID_MODEL_FROM_DATABASE=Core Processor DMI - - pci:v00008086d0000D131sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=Core Processor DMI (OptiPlex 980) - - pci:v00008086d0000D131sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=Core Processor DMI (C7SIM-Q Motherboard) - - pci:v00008086d0000D132* - ID_MODEL_FROM_DATABASE=Core Processor DMI - - pci:v00008086d0000D132sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=Core Processor DMI (Latitude E6510) - - pci:v00008086d0000D133* - ID_MODEL_FROM_DATABASE=Core Processor DMI -@@ -71613,13 +71613,13 @@ pci:v00008086d0000D138* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 - - pci:v00008086d0000D138sv00001028sd000002DA* -- ID_MODEL_FROM_DATABASE=OptiPlex 980 -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (OptiPlex 980) - - pci:v00008086d0000D138sv00001028sd0000040B* -- ID_MODEL_FROM_DATABASE=Latitude E6510 -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (Latitude E6510) - - pci:v00008086d0000D138sv000015D9sd0000060D* -- ID_MODEL_FROM_DATABASE=C7SIM-Q Motherboard -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 1 (C7SIM-Q Motherboard) - - pci:v00008086d0000D139* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express Root Port 2 -@@ -71730,7 +71730,7 @@ pci:v00009004d00005078* - ID_MODEL_FROM_DATABASE=AIC-7850 - - pci:v00009004d00005078sv00009004sd00007850* -- ID_MODEL_FROM_DATABASE=AHA-2904/Integrated AIC-7850 -+ ID_MODEL_FROM_DATABASE=AIC-7850 (AHA-2904/Integrated AIC-7850) - - pci:v00009004d00005175* - ID_MODEL_FROM_DATABASE=AIC-755x -@@ -71766,10 +71766,10 @@ pci:v00009004d00005647* - ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine - - pci:v00009004d00005647sv00009004sd00007710* -- ID_MODEL_FROM_DATABASE=ANA-7711F TCP Offload Engine - Optical -+ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711F TCP Offload Engine - Optical) - - pci:v00009004d00005647sv00009004sd00007711* -- ID_MODEL_FROM_DATABASE=ANA-7711LP TCP Offload Engine - Copper -+ ID_MODEL_FROM_DATABASE=ANA-7711 TCP Offload Engine (ANA-7711LP TCP Offload Engine - Copper) - - pci:v00009004d00005675* - ID_MODEL_FROM_DATABASE=AIC-755x -@@ -71799,7 +71799,7 @@ pci:v00009004d00006075* - ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 - - pci:v00009004d00006075sv00009004sd00007560* -- ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 Cardbus -+ ID_MODEL_FROM_DATABASE=AIC-1480 / APA-1480 (Cardbus) - - pci:v00009004d00006078* - ID_MODEL_FROM_DATABASE=AIC-7860 -@@ -71808,7 +71808,7 @@ pci:v00009004d00006178* - ID_MODEL_FROM_DATABASE=AIC-7861 - - pci:v00009004d00006178sv00009004sd00007861* -- ID_MODEL_FROM_DATABASE=AHA-2940AU Single -+ ID_MODEL_FROM_DATABASE=AIC-7861 (AHA-2940AU Single) - - pci:v00009004d00006278* - ID_MODEL_FROM_DATABASE=AIC-7860 -@@ -71832,46 +71832,46 @@ pci:v00009004d00006915* - ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A - - pci:v00009004d00006915sv00009004sd00000008* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) - - pci:v00009004d00006915sv00009004sd00000009* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) - - pci:v00009004d00006915sv00009004sd00000010* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) - - pci:v00009004d00006915sv00009004sd00000018* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) - - pci:v00009004d00006915sv00009004sd00000019* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 10/100) - - pci:v00009004d00006915sv00009004sd00000020* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 10/100) - - pci:v00009004d00006915sv00009004sd00000028* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 10/100) - - pci:v00009004d00006915sv00009004sd00008008* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008009* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008010* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008018* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008019* -- ID_MODEL_FROM_DATABASE=ANA62044 4-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62044 4-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008020* -- ID_MODEL_FROM_DATABASE=ANA62022 2-port 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA62022 2-port 64 bit 10/100) - - pci:v00009004d00006915sv00009004sd00008028* -- ID_MODEL_FROM_DATABASE=ANA69011A/TX 64 bit 10/100 -+ ID_MODEL_FROM_DATABASE=ANA620xx/ANA69011A (ANA69011A/TX 64 bit 10/100) - - pci:v00009004d00007078* - ID_MODEL_FROM_DATABASE=AHA-294x / AIC-7870 -@@ -71910,7 +71910,7 @@ pci:v00009004d00007815* - ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC - - pci:v00009004d00007815sv00009004sd00007815* -- ID_MODEL_FROM_DATABASE=ARO-1130U2 RAID Controller -+ ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC (ARO-1130U2 RAID Controller) - - pci:v00009004d00007815sv00009004sd00007840* - ID_MODEL_FROM_DATABASE=AIC-7815 RAID+Memory Controller IC -@@ -71961,25 +71961,25 @@ pci:v00009004d00007895* - ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 - - pci:v00009004d00007895sv00009004sd00007890* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007895sv00009004sd00007891* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual) - - pci:v00009004d00007895sv00009004sd00007892* -- ID_MODEL_FROM_DATABASE=AHA-3940AU/AUW/AUWD/UWD -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3940AU/AUW/AUWD/UWD) - - pci:v00009004d00007895sv00009004sd00007894* -- ID_MODEL_FROM_DATABASE=AHA-3944AUWD -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-3944AUWD) - - pci:v00009004d00007895sv00009004sd00007895* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007895sv00009004sd00007896* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007895sv00009004sd00007897* -- ID_MODEL_FROM_DATABASE=AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW / AHA-39xx / AIC-7895 (AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B) - - pci:v00009004d00007896* - ID_MODEL_FROM_DATABASE=AIC-789x -@@ -71991,13 +71991,13 @@ pci:v00009004d00008078* - ID_MODEL_FROM_DATABASE=AIC-7880U - - pci:v00009004d00008078sv00009004sd00007880* -- ID_MODEL_FROM_DATABASE=AIC-7880P Ultra/Ultra Wide SCSI Chipset -+ ID_MODEL_FROM_DATABASE=AIC-7880U (AIC-7880P Ultra/Ultra Wide SCSI Chipset) - - pci:v00009004d00008178* - ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U - - pci:v00009004d00008178sv00009004sd00007881* -- ID_MODEL_FROM_DATABASE=AHA-2940UW SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=AHA-2940U/UW/D / AIC-7881U (AHA-2940UW SCSI Host Adapter) - - pci:v00009004d00008278* - ID_MODEL_FROM_DATABASE=AHA-3940U/UW/UWD / AIC-7882U -@@ -72018,13 +72018,13 @@ pci:v00009004d00008778* - ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x - - pci:v00009004d00008778sv00009004sd00007887* -- ID_MODEL_FROM_DATABASE=2940UW Pro Ultra-Wide SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940UW Pro / AIC-788x (2940UW Pro Ultra-Wide SCSI Controller) - - pci:v00009004d00008878* - ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 - - pci:v00009004d00008878sv00009004sd00007888* -- ID_MODEL_FROM_DATABASE=AHA-2930UW SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2930UW / AIC-7888 (AHA-2930UW SCSI Controller) - - pci:v00009004d00008B78* - ID_MODEL_FROM_DATABASE=ABA-1030 -@@ -72039,19 +72039,19 @@ pci:v00009005d00000010* - ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W - - pci:v00009005d00000010sv00009005sd00002180* -- ID_MODEL_FROM_DATABASE=AHA-2940U2 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2 SCSI Controller) - - pci:v00009005d00000010sv00009005sd00008100* -- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) - - pci:v00009005d00000010sv00009005sd0000A100* -- ID_MODEL_FROM_DATABASE=AHA-2940U2B SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2B SCSI Controller) - - pci:v00009005d00000010sv00009005sd0000A180* -- ID_MODEL_FROM_DATABASE=AHA-2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2940U2W SCSI Controller) - - pci:v00009005d00000010sv00009005sd0000E100* -- ID_MODEL_FROM_DATABASE=AHA-2950U2B SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W (AHA-2950U2B SCSI Controller) - - pci:v00009005d00000011* - ID_MODEL_FROM_DATABASE=AHA-2930U2 -@@ -72060,19 +72060,19 @@ pci:v00009005d00000013* - ID_MODEL_FROM_DATABASE=78902 - - pci:v00009005d00000013sv00009005sd00000003* -- ID_MODEL_FROM_DATABASE=AAA-131U2 Array1000 1 Channel RAID Controller -+ ID_MODEL_FROM_DATABASE=78902 (AAA-131U2 Array1000 1 Channel RAID Controller) - - pci:v00009005d00000013sv00009005sd0000000F* -- ID_MODEL_FROM_DATABASE=AIC7890_ARO -+ ID_MODEL_FROM_DATABASE=78902 (AIC7890_ARO) - - pci:v00009005d0000001F* - ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 - - pci:v00009005d0000001Fsv00009005sd0000000F* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) - - pci:v00009005d0000001Fsv00009005sd0000A180* -- ID_MODEL_FROM_DATABASE=2940U2W SCSI Controller -+ ID_MODEL_FROM_DATABASE=AHA-2940U2/U2W / 7890/7891 (2940U2W SCSI Controller) - - pci:v00009005d00000020* - ID_MODEL_FROM_DATABASE=AIC-7890 -@@ -72090,10 +72090,10 @@ pci:v00009005d00000050* - ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x - - pci:v00009005d00000050sv00009005sd0000F500* -- ID_MODEL_FROM_DATABASE=AHA-3950U2B -+ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) - - pci:v00009005d00000050sv00009005sd0000FFFF* -- ID_MODEL_FROM_DATABASE=AHA-3950U2B -+ ID_MODEL_FROM_DATABASE=AHA-3940U2x/395U2x (AHA-3950U2B) - - pci:v00009005d00000051* - ID_MODEL_FROM_DATABASE=AHA-3950U2D -@@ -72105,7 +72105,7 @@ pci:v00009005d00000053* - ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller - - pci:v00009005d00000053sv00009005sd0000FFFF* -- ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller mainboard implementation -+ ID_MODEL_FROM_DATABASE=AIC-7896 SCSI Controller (mainboard implementation) - - pci:v00009005d0000005F* - ID_MODEL_FROM_DATABASE=AIC-7896U2/7897U2 -@@ -72114,25 +72114,25 @@ pci:v00009005d00000080* - ID_MODEL_FROM_DATABASE=AIC-7892A U160/m - - pci:v00009005d00000080sv00000E11sd0000E2A0* -- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter) - - pci:v00009005d00000080sv00009005sd00006220* -- ID_MODEL_FROM_DATABASE=AHA-29160C -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (AHA-29160C) - - pci:v00009005d00000080sv00009005sd000062A0* -- ID_MODEL_FROM_DATABASE=29160N Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160N Ultra160 SCSI Controller) - - pci:v00009005d00000080sv00009005sd0000E220* -- ID_MODEL_FROM_DATABASE=29160LP Low Profile Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160LP Low Profile Ultra160 SCSI Controller) - - pci:v00009005d00000080sv00009005sd0000E2A0* -- ID_MODEL_FROM_DATABASE=29160 Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892A U160/m (29160 Ultra160 SCSI Controller) - - pci:v00009005d00000081* - ID_MODEL_FROM_DATABASE=AIC-7892B U160/m - - pci:v00009005d00000081sv00009005sd000062A1* -- ID_MODEL_FROM_DATABASE=19160 Ultra160 SCSI Controller -+ ID_MODEL_FROM_DATABASE=AIC-7892B U160/m (19160 Ultra160 SCSI Controller) - - pci:v00009005d00000083* - ID_MODEL_FROM_DATABASE=AIC-7892D U160/m -@@ -72141,10 +72141,10 @@ pci:v00009005d0000008F* - ID_MODEL_FROM_DATABASE=AIC-7892P U160/m - - pci:v00009005d0000008Fsv00001179sd00000001* -- ID_MODEL_FROM_DATABASE=Magnia Z310 -+ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Magnia Z310) - - pci:v00009005d0000008Fsv000015D9sd00009005* -- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=AIC-7892P U160/m (Onboard SCSI Host Adapter) - - pci:v00009005d00000092* - ID_MODEL_FROM_DATABASE=AVC-2010 [VideoH!] -@@ -72156,10 +72156,10 @@ pci:v00009005d000000C0* - ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m - - pci:v00009005d000000C0sv00000E11sd0000F620* -- ID_MODEL_FROM_DATABASE=Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter -+ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter) - - pci:v00009005d000000C0sv00009005sd0000F620* -- ID_MODEL_FROM_DATABASE=AHA-3960D U160/m -+ ID_MODEL_FROM_DATABASE=AHA-3960D / AIC-7899A U160/m (AHA-3960D U160/m) - - pci:v00009005d000000C1* - ID_MODEL_FROM_DATABASE=AIC-7899B U160/m -@@ -72171,28 +72171,28 @@ pci:v00009005d000000C5* - ID_MODEL_FROM_DATABASE=RAID subsystem HBA - - pci:v00009005d000000C5sv00001028sd000000C5* -- ID_MODEL_FROM_DATABASE=PowerEdge 2400,2500,2550,4400 -+ ID_MODEL_FROM_DATABASE=RAID subsystem HBA (PowerEdge 2400,2500,2550,4400) - - pci:v00009005d000000CF* - ID_MODEL_FROM_DATABASE=AIC-7899P U160/m - - pci:v00009005d000000CFsv00001028sd000000CE* -- ID_MODEL_FROM_DATABASE=PowerEdge 1400 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 1400) - - pci:v00009005d000000CFsv00001028sd000000D1* -- ID_MODEL_FROM_DATABASE=PowerEdge 2550 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2550) - - pci:v00009005d000000CFsv00001028sd000000D9* -- ID_MODEL_FROM_DATABASE=PowerEdge 2500 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (PowerEdge 2500) - - pci:v00009005d000000CFsv000010F1sd00002462* -- ID_MODEL_FROM_DATABASE=Thunder K7 S2462 -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Thunder K7 S2462) - - pci:v00009005d000000CFsv000015D9sd00009005* -- ID_MODEL_FROM_DATABASE=Onboard SCSI Host Adapter -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (Onboard SCSI Host Adapter) - - pci:v00009005d000000CFsv00008086sd00003411* -- ID_MODEL_FROM_DATABASE=SDS2 Mainboard -+ ID_MODEL_FROM_DATABASE=AIC-7899P U160/m (SDS2 Mainboard) - - pci:v00009005d00000241* - ID_MODEL_FROM_DATABASE=Serial ATA II RAID 1420SA -@@ -72210,13 +72210,13 @@ pci:v00009005d00000250* - ID_MODEL_FROM_DATABASE=ServeRAID Controller - - pci:v00009005d00000250sv00001014sd00000279* -- ID_MODEL_FROM_DATABASE=ServeRAID 6M -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6M) - - pci:v00009005d00000250sv00001014sd0000028C* -- ID_MODEL_FROM_DATABASE=ServeRAID 6i/6i+ -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 6i/6i+) - - pci:v00009005d00000250sv00001014sd0000028E* -- ID_MODEL_FROM_DATABASE=ServeRAID 7k -+ ID_MODEL_FROM_DATABASE=ServeRAID Controller (ServeRAID 7k) - - pci:v00009005d00000279* - ID_MODEL_FROM_DATABASE=ServeRAID 6M -@@ -72225,415 +72225,415 @@ pci:v00009005d00000283* - ID_MODEL_FROM_DATABASE=AAC-RAID - - pci:v00009005d00000283sv00009005sd00000283* -- ID_MODEL_FROM_DATABASE=Catapult -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Catapult) - - pci:v00009005d00000284* - ID_MODEL_FROM_DATABASE=AAC-RAID - - pci:v00009005d00000284sv00009005sd00000284* -- ID_MODEL_FROM_DATABASE=Tomcat -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Tomcat) - - pci:v00009005d00000285* - ID_MODEL_FROM_DATABASE=AAC-RAID - - pci:v00009005d00000285sv00000E11sd00000295* -- ID_MODEL_FROM_DATABASE=SATA 6Ch (Bearcat) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SATA 6Ch (Bearcat)) - - pci:v00009005d00000285sv00001014sd000002F2* -- ID_MODEL_FROM_DATABASE=ServeRAID 8i -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ServeRAID 8i) - - pci:v00009005d00000285sv00001028sd00000287* -- ID_MODEL_FROM_DATABASE=PowerEdge Expandable RAID Controller 320/DC -+ ID_MODEL_FROM_DATABASE=AAC-RAID (PowerEdge Expandable RAID Controller 320/DC) - - pci:v00009005d00000285sv00001028sd00000291* -- ID_MODEL_FROM_DATABASE=CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)) - - pci:v00009005d00000285sv0000103Csd00003227* -- ID_MODEL_FROM_DATABASE=AAR-2610SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2610SA) - - pci:v00009005d00000285sv0000108Esd00000286* -- ID_MODEL_FROM_DATABASE=Sun StorageTek SAS RAID HBA, Internal -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Sun StorageTek SAS RAID HBA, Internal) - - pci:v00009005d00000285sv0000108Esd00000287* -- ID_MODEL_FROM_DATABASE=STK RAID EXT -+ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EXT) - - pci:v00009005d00000285sv0000108Esd00007AAC* -- ID_MODEL_FROM_DATABASE=STK RAID REM -+ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID REM) - - pci:v00009005d00000285sv0000108Esd00007AAE* -- ID_MODEL_FROM_DATABASE=STK RAID EX -+ ID_MODEL_FROM_DATABASE=AAC-RAID (STK RAID EX) - - pci:v00009005d00000285sv000015D9sd000002B5* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4i -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4i) - - pci:v00009005d00000285sv000015D9sd000002B6* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i) - - pci:v00009005d00000285sv000015D9sd000002C9* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S4iR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S4iR) - - pci:v00009005d00000285sv000015D9sd000002CA* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR) - - pci:v00009005d00000285sv000015D9sd000002D2* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8i-LP -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8i-LP) - - pci:v00009005d00000285sv000015D9sd000002D3* -- ID_MODEL_FROM_DATABASE=SMC AOC-USAS-S8iR-LP -+ ID_MODEL_FROM_DATABASE=AAC-RAID (SMC AOC-USAS-S8iR-LP) - - pci:v00009005d00000285sv000017AAsd00000286* -- ID_MODEL_FROM_DATABASE=Legend S220 (Legend Crusader) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S220 (Legend Crusader)) - - pci:v00009005d00000285sv000017AAsd00000287* -- ID_MODEL_FROM_DATABASE=Legend S230 (Legend Vulcan) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Legend S230 (Legend Vulcan)) - - pci:v00009005d00000285sv00009005sd00000285* -- ID_MODEL_FROM_DATABASE=2200S (Vulcan) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan)) - - pci:v00009005d00000285sv00009005sd00000286* -- ID_MODEL_FROM_DATABASE=2120S (Crusader) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (2120S (Crusader)) - - pci:v00009005d00000285sv00009005sd00000287* -- ID_MODEL_FROM_DATABASE=2200S (Vulcan-2m) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (2200S (Vulcan-2m)) - - pci:v00009005d00000285sv00009005sd00000288* -- ID_MODEL_FROM_DATABASE=3230S (Harrier) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3230S (Harrier)) - - pci:v00009005d00000285sv00009005sd00000289* -- ID_MODEL_FROM_DATABASE=3240S (Tornado) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3240S (Tornado)) - - pci:v00009005d00000285sv00009005sd0000028A* -- ID_MODEL_FROM_DATABASE=ASR-2020ZCR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020ZCR) - - pci:v00009005d00000285sv00009005sd0000028B* -- ID_MODEL_FROM_DATABASE=ASR-2025ZCR (Terminator) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025ZCR (Terminator)) - - pci:v00009005d00000285sv00009005sd0000028E* -- ID_MODEL_FROM_DATABASE=ASR-2020SA (Skyhawk) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2020SA (Skyhawk)) - - pci:v00009005d00000285sv00009005sd0000028F* -- ID_MODEL_FROM_DATABASE=ASR-2025SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2025SA) - - pci:v00009005d00000285sv00009005sd00000290* -- ID_MODEL_FROM_DATABASE=AAR-2410SA PCI SATA 4ch (Jaguar II) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2410SA PCI SATA 4ch (Jaguar II)) - - pci:v00009005d00000285sv00009005sd00000292* -- ID_MODEL_FROM_DATABASE=AAR-2810SA PCI SATA 8ch (Corsair-8) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-2810SA PCI SATA 8ch (Corsair-8)) - - pci:v00009005d00000285sv00009005sd00000293* -- ID_MODEL_FROM_DATABASE=AAR-21610SA PCI SATA 16ch (Corsair-16) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (AAR-21610SA PCI SATA 16ch (Corsair-16)) - - pci:v00009005d00000285sv00009005sd00000294* -- ID_MODEL_FROM_DATABASE=ESD SO-DIMM PCI-X SATA ZCR (Prowler) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ESD SO-DIMM PCI-X SATA ZCR (Prowler)) - - pci:v00009005d00000285sv00009005sd00000296* -- ID_MODEL_FROM_DATABASE=ASR-2240S -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2240S) - - pci:v00009005d00000285sv00009005sd00000297* -- ID_MODEL_FROM_DATABASE=ASR-4005SAS -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4005SAS) - - pci:v00009005d00000285sv00009005sd00000298* -- ID_MODEL_FROM_DATABASE=ASR-4000 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4000) - - pci:v00009005d00000285sv00009005sd00000299* -- ID_MODEL_FROM_DATABASE=ASR-4800SAS -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-4800SAS) - - pci:v00009005d00000285sv00009005sd0000029A* -- ID_MODEL_FROM_DATABASE=4805SAS -+ ID_MODEL_FROM_DATABASE=AAC-RAID (4805SAS) - - pci:v00009005d00000285sv00009005sd000002A4* -- ID_MODEL_FROM_DATABASE=ICP ICP9085LI -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP9085LI) - - pci:v00009005d00000285sv00009005sd000002A5* -- ID_MODEL_FROM_DATABASE=ICP ICP5085BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BR) - - pci:v00009005d00000285sv00009005sd000002B5* -- ID_MODEL_FROM_DATABASE=ASR5800 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5800) - - pci:v00009005d00000285sv00009005sd000002B6* -- ID_MODEL_FROM_DATABASE=ASR5805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5805) - - pci:v00009005d00000285sv00009005sd000002B7* -- ID_MODEL_FROM_DATABASE=ASR5808 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR5808) - - pci:v00009005d00000285sv00009005sd000002B8* -- ID_MODEL_FROM_DATABASE=ICP5445SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5445SL) - - pci:v00009005d00000285sv00009005sd000002B9* -- ID_MODEL_FROM_DATABASE=ICP5085SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5085SL) - - pci:v00009005d00000285sv00009005sd000002BA* -- ID_MODEL_FROM_DATABASE=ICP5805SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805SL) - - pci:v00009005d00000285sv00009005sd000002BB* -- ID_MODEL_FROM_DATABASE=3405 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3405) - - pci:v00009005d00000285sv00009005sd000002BC* -- ID_MODEL_FROM_DATABASE=3805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3805) - - pci:v00009005d00000285sv00009005sd000002BD* -- ID_MODEL_FROM_DATABASE=31205 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (31205) - - pci:v00009005d00000285sv00009005sd000002BE* -- ID_MODEL_FROM_DATABASE=31605 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (31605) - - pci:v00009005d00000285sv00009005sd000002BF* -- ID_MODEL_FROM_DATABASE=ICP ICP5045BL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5045BL) - - pci:v00009005d00000285sv00009005sd000002C0* -- ID_MODEL_FROM_DATABASE=ICP ICP5085BL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5085BL) - - pci:v00009005d00000285sv00009005sd000002C1* -- ID_MODEL_FROM_DATABASE=ICP ICP5125BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125BR) - - pci:v00009005d00000285sv00009005sd000002C2* -- ID_MODEL_FROM_DATABASE=ICP ICP5165BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165BR) - - pci:v00009005d00000285sv00009005sd000002C3* -- ID_MODEL_FROM_DATABASE=51205 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51205) - - pci:v00009005d00000285sv00009005sd000002C4* -- ID_MODEL_FROM_DATABASE=51605 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51605) - - pci:v00009005d00000285sv00009005sd000002C5* -- ID_MODEL_FROM_DATABASE=ICP ICP5125SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5125SL) - - pci:v00009005d00000285sv00009005sd000002C6* -- ID_MODEL_FROM_DATABASE=ICP ICP5165SL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP ICP5165SL) - - pci:v00009005d00000285sv00009005sd000002C7* -- ID_MODEL_FROM_DATABASE=3085 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (3085) - - pci:v00009005d00000285sv00009005sd000002C8* -- ID_MODEL_FROM_DATABASE=ICP5805BL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ICP5805BL) - - pci:v00009005d00000285sv00009005sd000002CE* -- ID_MODEL_FROM_DATABASE=51245 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51245) - - pci:v00009005d00000285sv00009005sd000002CF* -- ID_MODEL_FROM_DATABASE=51645 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51645) - - pci:v00009005d00000285sv00009005sd000002D0* -- ID_MODEL_FROM_DATABASE=52445 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (52445) - - pci:v00009005d00000285sv00009005sd000002D1* -- ID_MODEL_FROM_DATABASE=5405 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5405) - - pci:v00009005d00000285sv00009005sd000002D4* -- ID_MODEL_FROM_DATABASE=ASR-2045 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045) - - pci:v00009005d00000285sv00009005sd000002D5* -- ID_MODEL_FROM_DATABASE=ASR-2405 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405) - - pci:v00009005d00000285sv00009005sd000002D6* -- ID_MODEL_FROM_DATABASE=ASR-2445 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445) - - pci:v00009005d00000285sv00009005sd000002D7* -- ID_MODEL_FROM_DATABASE=ASR-2805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805) - - pci:v00009005d00000285sv00009005sd000002D8* -- ID_MODEL_FROM_DATABASE=5405G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5405G) - - pci:v00009005d00000285sv00009005sd000002D9* -- ID_MODEL_FROM_DATABASE=5445G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5445G) - - pci:v00009005d00000285sv00009005sd000002DA* -- ID_MODEL_FROM_DATABASE=5805G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5805G) - - pci:v00009005d00000285sv00009005sd000002DB* -- ID_MODEL_FROM_DATABASE=5085G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (5085G) - - pci:v00009005d00000285sv00009005sd000002DC* -- ID_MODEL_FROM_DATABASE=51245G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51245G) - - pci:v00009005d00000285sv00009005sd000002DD* -- ID_MODEL_FROM_DATABASE=51645G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (51645G) - - pci:v00009005d00000285sv00009005sd000002DE* -- ID_MODEL_FROM_DATABASE=52445G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (52445G) - - pci:v00009005d00000285sv00009005sd000002DF* -- ID_MODEL_FROM_DATABASE=ASR-2045G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2045G) - - pci:v00009005d00000285sv00009005sd000002E0* -- ID_MODEL_FROM_DATABASE=ASR-2405G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2405G) - - pci:v00009005d00000285sv00009005sd000002E1* -- ID_MODEL_FROM_DATABASE=ASR-2445G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2445G) - - pci:v00009005d00000285sv00009005sd000002E2* -- ID_MODEL_FROM_DATABASE=ASR-2805G -+ ID_MODEL_FROM_DATABASE=AAC-RAID (ASR-2805G) - - pci:v00009005d00000286* - ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) - - pci:v00009005d00000286sv00001014sd0000034D* -- ID_MODEL_FROM_DATABASE=8s -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (8s) - - pci:v00009005d00000286sv00001014sd00009540* -- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l4 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l4) - - pci:v00009005d00000286sv00001014sd00009580* -- ID_MODEL_FROM_DATABASE=ServeRAID 8k/8k-l8 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ServeRAID 8k/8k-l8) - - pci:v00009005d00000286sv00009005sd0000028C* -- ID_MODEL_FROM_DATABASE=ASR-2230S + ASR-2230SLP PCI-X (Lancer) -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2230S + ASR-2230SLP PCI-X (Lancer)) - - pci:v00009005d00000286sv00009005sd0000028D* -- ID_MODEL_FROM_DATABASE=ASR-2130S -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2130S) - - pci:v00009005d00000286sv00009005sd0000029B* -- ID_MODEL_FROM_DATABASE=ASR-2820SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2820SA) - - pci:v00009005d00000286sv00009005sd0000029C* -- ID_MODEL_FROM_DATABASE=ASR-2620SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2620SA) - - pci:v00009005d00000286sv00009005sd0000029D* -- ID_MODEL_FROM_DATABASE=ASR-2420SA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ASR-2420SA) - - pci:v00009005d00000286sv00009005sd0000029E* -- ID_MODEL_FROM_DATABASE=ICP ICP9024R0 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9024R0) - - pci:v00009005d00000286sv00009005sd0000029F* -- ID_MODEL_FROM_DATABASE=ICP ICP9014R0 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9014R0) - - pci:v00009005d00000286sv00009005sd000002A0* -- ID_MODEL_FROM_DATABASE=ICP ICP9047MA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9047MA) - - pci:v00009005d00000286sv00009005sd000002A1* -- ID_MODEL_FROM_DATABASE=ICP ICP9087MA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9087MA) - - pci:v00009005d00000286sv00009005sd000002A2* -- ID_MODEL_FROM_DATABASE=3800 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3800) - - pci:v00009005d00000286sv00009005sd000002A3* -- ID_MODEL_FROM_DATABASE=ICP ICP5445AU -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5445AU) - - pci:v00009005d00000286sv00009005sd000002A4* -- ID_MODEL_FROM_DATABASE=ICP ICP9085LI -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP9085LI) - - pci:v00009005d00000286sv00009005sd000002A5* -- ID_MODEL_FROM_DATABASE=ICP ICP5085BR -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085BR) - - pci:v00009005d00000286sv00009005sd000002A6* -- ID_MODEL_FROM_DATABASE=ICP9067MA -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP9067MA) - - pci:v00009005d00000286sv00009005sd000002A7* -- ID_MODEL_FROM_DATABASE=3805 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3805) - - pci:v00009005d00000286sv00009005sd000002A8* -- ID_MODEL_FROM_DATABASE=3400 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (3400) - - pci:v00009005d00000286sv00009005sd000002A9* -- ID_MODEL_FROM_DATABASE=ICP ICP5085AU -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5085AU) - - pci:v00009005d00000286sv00009005sd000002AA* -- ID_MODEL_FROM_DATABASE=ICP ICP5045AU -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AU) - - pci:v00009005d00000286sv00009005sd000002AC* -- ID_MODEL_FROM_DATABASE=1800 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (1800) - - pci:v00009005d00000286sv00009005sd000002B3* -- ID_MODEL_FROM_DATABASE=2400 -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (2400) - - pci:v00009005d00000286sv00009005sd000002B4* -- ID_MODEL_FROM_DATABASE=ICP ICP5045AL -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (ICP ICP5045AL) - - pci:v00009005d00000286sv00009005sd00000800* -- ID_MODEL_FROM_DATABASE=Callisto -+ ID_MODEL_FROM_DATABASE=AAC-RAID (Rocket) (Callisto) - - pci:v00009005d0000028B* - ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 - - pci:v00009005d0000028Bsv00009005sd00000200* -- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000201* -- ID_MODEL_FROM_DATABASE=Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000300* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6405 - 4 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6405 - 4 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000301* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6805 - 8 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6805 - 8 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000302* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000310* -- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000311* -- ID_MODEL_FROM_DATABASE=Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS) - - pci:v00009005d0000028Bsv00009005sd00000400* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61205 - 12 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61205 - 12 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000401* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-61605 - 16 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-61605 - 16 internal 6G SAS ports) - - pci:v00009005d0000028Bsv00009005sd00000403* -- ID_MODEL_FROM_DATABASE=Series 6 - ASR-62405 - 24 internal 6G SAS ports -+ ID_MODEL_FROM_DATABASE=Series 6 - 6G SAS/PCIe 2 (Series 6 - ASR-62405 - 24 internal 6G SAS ports) - - pci:v00009005d0000028C* - ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 - - pci:v00009005d0000028Csv00009005sd00000500* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000501* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000502* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000503* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000504* -- ID_MODEL_FROM_DATABASE=Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000505* -- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Csv00009005sd00000506* -- ID_MODEL_FROM_DATABASE=Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 7 6G SAS/PCIe 3 (Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0) - - pci:v00009005d0000028D* - ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 - - pci:v00009005d0000028Dsv00009005sd00000550* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000551* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000552* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000553* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d0000028Dsv00009005sd00000554* -- ID_MODEL_FROM_DATABASE=Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0 -+ ID_MODEL_FROM_DATABASE=Series 8 12G SAS/PCIe 3 (Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0) - - pci:v00009005d00000410* - ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) - - pci:v00009005d00000410sv00009005sd00000410* -- ID_MODEL_FROM_DATABASE=ASC-48300(Spirit RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-48300(Spirit RAID)) - - pci:v00009005d00000410sv00009005sd00000411* -- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID) (ASC-58300 (Oakmont RAID)) - - pci:v00009005d00000412* - ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) - - pci:v00009005d00000412sv00009005sd00000412* -- ID_MODEL_FROM_DATABASE=ASC-48300 (Spirit non-RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-48300 (Spirit non-RAID)) - - pci:v00009005d00000412sv00009005sd00000413* -- ID_MODEL_FROM_DATABASE=ASC-58300 (Oakmont non-RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA non-RAID) (ASC-58300 (Oakmont non-RAID)) - - pci:v00009005d00000415* - ID_MODEL_FROM_DATABASE=ASC-58300 SAS (Razor-External HBA RAID) -@@ -72657,13 +72657,13 @@ pci:v00009005d00000430* - ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) - - pci:v00009005d00000430sv00009005sd00000430* -- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA RAID) (ASC-44300 (Spirit-Lite RAID)) - - pci:v00009005d00000432* - ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) - - pci:v00009005d00000432sv00009005sd00000432* -- ID_MODEL_FROM_DATABASE=ASC-44300 (Spirit-Lite non-RAID) -+ ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite HBA non-RAID) (ASC-44300 (Spirit-Lite non-RAID)) - - pci:v00009005d0000043E* - ID_MODEL_FROM_DATABASE=AIC-9405W SAS (Razor-Lite ASIC non-RAID) -@@ -72678,22 +72678,22 @@ pci:v00009005d00000500* - ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller - - pci:v00009005d00000500sv00001014sd000002C1* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS Adapter (572A/572C) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS Adapter (572A/572C)) - - pci:v00009005d00000500sv00001014sd000002C2* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572B/572D) -+ ID_MODEL_FROM_DATABASE=Obsidian chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572B/572D)) - - pci:v00009005d00000503* - ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller - - pci:v00009005d00000503sv00001014sd000002BF* -- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E) -+ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571E)) - - pci:v00009005d00000503sv00001014sd000002C3* -- ID_MODEL_FROM_DATABASE=PCI-X DDR 3Gb SAS RAID Adapter (572F) -+ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (PCI-X DDR 3Gb SAS RAID Adapter (572F)) - - pci:v00009005d00000503sv00001014sd000002D5* -- ID_MODEL_FROM_DATABASE=Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F) -+ ID_MODEL_FROM_DATABASE=Scamp chipset SCSI controller (Quad Channel PCI-X DDR U320 SCSI RAID Adapter (571F)) - - pci:v00009005d00000910* - ID_MODEL_FROM_DATABASE=AUA-3100B -@@ -72714,10 +72714,10 @@ pci:v00009005d00008011* - ID_MODEL_FROM_DATABASE=ASC-39320D - - pci:v00009005d00008011sv00000E11sd000000AC* -- ID_MODEL_FROM_DATABASE=ASC-39320D U320 -+ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) - - pci:v00009005d00008011sv00009005sd00000041* -- ID_MODEL_FROM_DATABASE=ASC-39320D U320 -+ ID_MODEL_FROM_DATABASE=ASC-39320D (U320) - - pci:v00009005d00008012* - ID_MODEL_FROM_DATABASE=ASC-29320 U320 -@@ -72738,10 +72738,10 @@ pci:v00009005d00008017* - ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 - - pci:v00009005d00008017sv00009005sd00000044* -- ID_MODEL_FROM_DATABASE=ASC-29320ALP PCIx U320 -+ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320ALP PCIx U320) - - pci:v00009005d00008017sv00009005sd00000045* -- ID_MODEL_FROM_DATABASE=ASC-29320LPE PCIe U320 -+ ID_MODEL_FROM_DATABASE=ASC-29320ALP U320 (ASC-29320LPE PCIe U320) - - pci:v00009005d0000801C* - ID_MODEL_FROM_DATABASE=ASC-39320D U320 -@@ -72750,7 +72750,7 @@ pci:v00009005d0000801D* - ID_MODEL_FROM_DATABASE=AIC-7902B U320 - - pci:v00009005d0000801Dsv00001014sd000002CC* -- ID_MODEL_FROM_DATABASE=ServeRAID 7e -+ ID_MODEL_FROM_DATABASE=AIC-7902B U320 (ServeRAID 7e) - - pci:v00009005d0000801E* - ID_MODEL_FROM_DATABASE=AIC-7901A U320 -@@ -72759,7 +72759,7 @@ pci:v00009005d0000801F* - ID_MODEL_FROM_DATABASE=AIC-7902 U320 - - pci:v00009005d0000801Fsv00001734sd00001011* -- ID_MODEL_FROM_DATABASE=PRIMERGY RX300 onboard SCSI -+ ID_MODEL_FROM_DATABASE=AIC-7902 U320 (PRIMERGY RX300 onboard SCSI) - - pci:v00009005d00008080* - ID_MODEL_FROM_DATABASE=ASC-29320A U320 w/HostRAID -@@ -72777,7 +72777,7 @@ pci:v00009005d0000808F* - ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID - - pci:v00009005d0000808Fsv00001028sd00000168* -- ID_MODEL_FROM_DATABASE=Precision Workstation 670 Mainboard -+ ID_MODEL_FROM_DATABASE=AIC-7901 U320 w/HostRAID (Precision Workstation 670 Mainboard) - - pci:v00009005d00008090* - ID_MODEL_FROM_DATABASE=ASC-39320 U320 w/HostRAID -@@ -72810,7 +72810,7 @@ pci:v00009005d0000809D* - ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID - - pci:v00009005d0000809Dsv00001014sd000002CC* -- ID_MODEL_FROM_DATABASE=ServeRAID 7e -+ ID_MODEL_FROM_DATABASE=AIC-7902(B) U320 w/HostRAID (ServeRAID 7e) - - pci:v00009005d0000809E* - ID_MODEL_FROM_DATABASE=AIC-7901A U320 w/HostRAID -@@ -72858,7 +72858,7 @@ pci:v00009710d00009815* - ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller - - pci:v00009710d00009815sv00001000sd00000020* -- ID_MODEL_FROM_DATABASE=2P0S (2 port parallel adaptor) -+ ID_MODEL_FROM_DATABASE=PCI 9815 Multi-I/O Controller (2P0S (2 port parallel adaptor)) - - pci:v00009710d00009820* - ID_MODEL_FROM_DATABASE=PCI 9820 Multi-I/O Controller -@@ -72867,31 +72867,31 @@ pci:v00009710d00009835* - ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller - - pci:v00009710d00009835sv00001000sd00000002* -- ID_MODEL_FROM_DATABASE=2S (16C550 UART) -+ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (2S (16C550 UART)) - - pci:v00009710d00009835sv00001000sd00000012* -- ID_MODEL_FROM_DATABASE=1P2S -+ ID_MODEL_FROM_DATABASE=PCI 9835 Multi-I/O Controller (1P2S) - - pci:v00009710d00009845* - ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller - - pci:v00009710d00009845sv00001000sd00000004* -- ID_MODEL_FROM_DATABASE=0P4S (4 port 16550A serial card) -+ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P4S (4 port 16550A serial card)) - - pci:v00009710d00009845sv00001000sd00000006* -- ID_MODEL_FROM_DATABASE=0P6S (6 port 16550a serial card) -+ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (0P6S (6 port 16550a serial card)) - - pci:v00009710d00009845sv00001000sd00000014* -- ID_MODEL_FROM_DATABASE=1P4S (1 Parallel / 4 16550A Serial Port Adapter) -+ ID_MODEL_FROM_DATABASE=PCI 9845 Multi-I/O Controller (1P4S (1 Parallel / 4 16550A Serial Port Adapter)) - - pci:v00009710d00009855* - ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller - - pci:v00009710d00009855sv00001000sd00000014* -- ID_MODEL_FROM_DATABASE=1P4S -+ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (1P4S) - - pci:v00009710d00009855sv00001000sd00000022* -- ID_MODEL_FROM_DATABASE=2P2S (2 Parallel / 2 16550A Serial Port Adapter) -+ ID_MODEL_FROM_DATABASE=PCI 9855 Multi-I/O Controller (2P2S (2 Parallel / 2 16550A Serial Port Adapter)) - - pci:v00009710d00009865* - ID_MODEL_FROM_DATABASE=PCI 9865 Multi-I/O Controller -@@ -73350,40 +73350,40 @@ pci:v0000DD01d00000003* - ID_MODEL_FROM_DATABASE=Octopus DVB Adapter - - pci:v0000DD01d00000003sv0000DD01sd00000001* -- ID_MODEL_FROM_DATABASE=Octopus DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000002* -- ID_MODEL_FROM_DATABASE=Octopus LE DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus LE DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000003* -- ID_MODEL_FROM_DATABASE=Octopus OEM -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus OEM) - - pci:v0000DD01d00000003sv0000DD01sd00000004* -- ID_MODEL_FROM_DATABASE=Octopus V3 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus V3 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000010* -- ID_MODEL_FROM_DATABASE=Octopus Mini -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Octopus Mini) - - pci:v0000DD01d00000003sv0000DD01sd00000020* -- ID_MODEL_FROM_DATABASE=Cine S2 V6 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000021* -- ID_MODEL_FROM_DATABASE=Cine S2 V6.5 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine S2 V6.5 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd00000030* -- ID_MODEL_FROM_DATABASE=Cine CT V6.1 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Cine CT V6.1 DVB adapter) - - pci:v0000DD01d00000003sv0000DD01sd0000DB03* -- ID_MODEL_FROM_DATABASE=Mystique SaTiX-S2 V3 DVB adapter -+ ID_MODEL_FROM_DATABASE=Octopus DVB Adapter (Mystique SaTiX-S2 V3 DVB adapter) - - pci:v0000DD01d00000011* - ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter - - pci:v0000DD01d00000011sv0000DD01sd00000040* -- ID_MODEL_FROM_DATABASE=Octopus CI -+ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI) - - pci:v0000DD01d00000011sv0000DD01sd00000041* -- ID_MODEL_FROM_DATABASE=Octopus CI Single -+ ID_MODEL_FROM_DATABASE=Octopus CI DVB Adapter (Octopus CI Single) - - pci:v0000DEAD* - ID_VENDOR_FROM_DATABASE=Indigita Corporation -@@ -73416,22 +73416,22 @@ pci:v0000E159d00000001* - ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface - - pci:v0000E159d00000001sv00000059sd00000001* -- ID_MODEL_FROM_DATABASE=128k ISDN-S/T Adapter -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-S/T Adapter) - - pci:v0000E159d00000001sv00000059sd00000003* -- ID_MODEL_FROM_DATABASE=128k ISDN-U Adapter -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (128k ISDN-U Adapter) - - pci:v0000E159d00000001sv000000A7sd00000001* -- ID_MODEL_FROM_DATABASE=TELES.S0/PCI 2.x ISDN Adapter -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (TELES.S0/PCI 2.x ISDN Adapter) - - pci:v0000E159d00000001sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Digium X100P/X101P analogue PSTN FXO interface -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (Digium X100P/X101P analogue PSTN FXO interface) - - pci:v0000E159d00000001sv0000B100sd00000003* -- ID_MODEL_FROM_DATABASE=OpenVox A400P 4-port analog card -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (OpenVox A400P 4-port analog card) - - pci:v0000E159d00000001sv0000B1D9sd00000003* -- ID_MODEL_FROM_DATABASE=AX400P 4-port analog card -+ ID_MODEL_FROM_DATABASE=Tiger3XX Modem/ISDN interface (AX400P 4-port analog card) - - pci:v0000E159d00000002* - ID_MODEL_FROM_DATABASE=Tiger100APC ISDN chipset --- -1.7.9.2 - diff --git a/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 5f097f39..00000000 --- a/0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f89b42ec0fd51feab5566d6bdbacee101023c037 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Tue, 25 Mar 2014 20:21:23 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 7d86f10..b928f5a 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -923,3 +923,21 @@ bluetooth:v0130* - - bluetooth:v0131* - ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation -+ -+bluetooth:v0132* -+ ID_VENDOR_FROM_DATABASE=MADS Inc -+ -+bluetooth:v0133* -+ ID_VENDOR_FROM_DATABASE=Blue Maestro Limited -+ -+bluetooth:v0134* -+ ID_VENDOR_FROM_DATABASE=Resolution Products, Inc. -+ -+bluetooth:v0135* -+ ID_VENDOR_FROM_DATABASE=Airewear LLC -+ -+bluetooth:v0136* -+ ID_VENDOR_FROM_DATABASE=ETC sp. z.o.o. -+ -+bluetooth:v0137* -+ ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. --- -1.7.9.2 - diff --git a/0003-install-fix-invalid-free-in-unit_file_mask.patch b/0003-install-fix-invalid-free-in-unit_file_mask.patch deleted file mode 100644 index 0fe0581b..00000000 --- a/0003-install-fix-invalid-free-in-unit_file_mask.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 223217749e57996336d5730b0a28716cca56d45d Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Fri, 13 Jun 2014 18:48:18 +0200 -Subject: [PATCH] install: fix invalid free() in unit_file_mask() - -int unit_file_mask(...) in ./src/shared/install.c calls -get_config_path(...) which can in 4 error cases return without setting -"ret", and thus "prefix" can be uninitialized when unit_file_mask(...) -finishes (which it does directly after the error is returned from -get_config_path(...)). ---- - src/shared/install.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/install.c src/shared/install.c -index 487d0f6..f562063 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -563,7 +563,7 @@ int unit_file_mask( - unsigned *n_changes) { - - char **i; -- _cleanup_free_ char *prefix; -+ _cleanup_free_ char *prefix = NULL; - int r; - - assert(scope >= 0); --- -1.7.9.2 - diff --git a/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch b/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch deleted file mode 100644 index c88ed60b..00000000 --- a/0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f2a474aea8f82fa9b695515d4590f4f3398358a7 Mon Sep 17 00:00:00 2001 -From: Juho Son -Date: Thu, 11 Sep 2014 16:06:38 +0900 -Subject: [PATCH] journald: add CAP_MAC_OVERRIDE in journald for SMACK issue - -systemd-journald check the cgroup id to support rate limit option for -every messages. so journald should be available to access cgroup node in -each process send messages to journald. -In system using SMACK, cgroup node in proc is assigned execute label -as each process's execute label. -so if journald don't want to denied for every process, journald -should have all of access rule for all process's label. -It's too heavy. so we could give special smack label for journald te get -all accesses's permission. -'^' label. -When assign '^' execute smack label to systemd-journald, -systemd-journald need to add CAP_MAC_OVERRIDE capability to get that smack privilege. - -so I want to notice this information and set default capability to -journald whether system use SMACK or not. -because that capability affect to only smack enabled kernel ---- - units/systemd-journald.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git units/systemd-journald.service.in units/systemd-journald.service.in -index 7013979..4de38fa 100644 ---- units/systemd-journald.service.in -+++ units/systemd-journald.service.in -@@ -20,7 +20,7 @@ Restart=always - RestartSec=0 - NotifyAccess=all - StandardOutput=null --CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID -+CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE CAP_SYSLOG CAP_AUDIT_CONTROL CAP_CHOWN CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SETUID CAP_SETGID CAP_MAC_OVERRIDE - WatchdogSec=1min - - # Increase the default a bit in order to allow many simultaneous --- -1.7.9.2 - diff --git a/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch b/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch deleted file mode 100644 index c9ab5e0e..00000000 --- a/0003-keymap-Adjust-for-more-Samsung-900X4-series.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e512e8a255ef29d5a8eb605f8849202ea3d3e4cb Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 27 Aug 2014 08:41:10 +0200 -Subject: [PATCH] keymap: Adjust for more Samsung 900X4 series - -Reportedly also applies to NP900X4B, so relax the match to apply to all models -of this series. - -https://launchpad.net/bugs/902332 ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index ef0ebc5..0ffcb83 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -939,7 +939,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* - # Series 7 / 9 - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* --keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* -+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34]*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* - KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings - KEYBOARD_KEY_a0=!mute # Fn+F6 mute --- -1.7.9.2 - diff --git a/0003-keymap-Annotate-all-micmute-workarounds.patch b/0003-keymap-Annotate-all-micmute-workarounds.patch deleted file mode 100644 index 00f1e431..00000000 --- a/0003-keymap-Annotate-all-micmute-workarounds.patch +++ /dev/null @@ -1,54 +0,0 @@ -From d946bb53f94713241004810de92cc37f1e19c2d2 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 30 Jul 2014 10:54:23 +0200 -Subject: [PATCH] keymap: Annotate all micmute workarounds - -Add a comment to all assignments to f20 that this actually should be "micmute" -in a future when we aren't limited by X.org's key code limiations any more. ---- - hwdb/60-keyboard.hwdb | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 70e372b..cbbbf2c 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -231,7 +231,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - - # Dell Latitude microphone mute - keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* -- KEYBOARD_KEY_150=f20 # Mic mute toggle -+ KEYBOARD_KEY_150=f20 # Mic mute toggle, should be micmute - - ########################################################### - # Everex -@@ -505,7 +505,7 @@ keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* - KEYBOARD_KEY_15=volumedown - KEYBOARD_KEY_16=mute - KEYBOARD_KEY_17=prog1 -- KEYBOARD_KEY_1a=f20 -+ KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute - - # ThinkPad Keyboard with TrackPoint - keyboard:usb:v17EFp6009* -@@ -573,7 +573,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr* - - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr* - KEYBOARD_KEY_f1=f21 -- KEYBOARD_KEY_ce=f20 -+ KEYBOARD_KEY_ce=f20 # micmute - - keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* - KEYBOARD_KEY_a0=!mute -@@ -809,7 +809,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:* - KEYBOARD_KEY_f3=f17 - KEYBOARD_KEY_f2=f18 - KEYBOARD_KEY_f1=f19 -- KEYBOARD_KEY_f0=f20 -+ KEYBOARD_KEY_f0=f20 # micmute - KEYBOARD_KEY_ef=f21 - KEYBOARD_KEY_ee=chat - KEYBOARD_KEY_e4=chat --- -1.7.9.2 - diff --git a/0003-keymap-Fix-HP-Pavillon-DV7.patch b/0003-keymap-Fix-HP-Pavillon-DV7.patch deleted file mode 100644 index 33908a82..00000000 --- a/0003-keymap-Fix-HP-Pavillon-DV7.patch +++ /dev/null @@ -1,28 +0,0 @@ -From efb4bf4e419e14a13eead6289ea40165579a816f Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 5 Aug 2014 12:29:27 +0200 -Subject: [PATCH] keymap: Fix HP Pavillon DV7 - -Properly disable scan code 94 instead of producing KEY_0. - -https://launchpad.net/bugs/1322770 ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index cbbbf2c..5c3d4ca 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -368,7 +368,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:pvr - KEYBOARD_KEY_b7=print - KEYBOARD_KEY_c2=media # FIXME: quick play - KEYBOARD_KEY_c6=break -- KEYBOARD_KEY_94=0 -+ KEYBOARD_KEY_94=reserved - - # Elitebook - keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr* --- -1.7.9.2 - diff --git a/0003-localed-consider-an-unset-model-as-a-wildcard.patch b/0003-localed-consider-an-unset-model-as-a-wildcard.patch deleted file mode 100644 index 3fbdb74e..00000000 --- a/0003-localed-consider-an-unset-model-as-a-wildcard.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 387066c2e5bda159201896b194711965b52f34a9 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Fri, 30 May 2014 18:20:16 +0200 -Subject: [PATCH] localed: consider an unset model as a wildcard - ---- - src/locale/localed.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git src/locale/localed.c src/locale/localed.c -index e3061c8..358f6c2 100644 ---- src/locale/localed.c -+++ src/locale/localed.c -@@ -712,15 +712,16 @@ static int find_legacy_keymap(Context *c, char **new_keymap) { - } - } - -- if (matching > 0 && -- streq_ptr(c->x11_model, a[2])) { -- matching++; -- -- if (streq_ptr(c->x11_variant, a[3])) { -+ if (matching > 0) { -+ if (isempty(c->x11_model) || streq_ptr(c->x11_model, a[2])) { - matching++; - -- if (streq_ptr(c->x11_options, a[4])) -+ if (streq_ptr(c->x11_variant, a[3])) { - matching++; -+ -+ if (streq_ptr(c->x11_options, a[4])) -+ matching++; -+ } - } - } - --- -1.7.9.2 - diff --git a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch deleted file mode 100644 index e4752edc..00000000 --- a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9c413373d2112055a0142ef522bf95af9b491b4a Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" -Date: Fri, 21 Feb 2014 18:23:17 -0500 -Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo - ---- - src/login/org.freedesktop.login1.conf | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git src/login/org.freedesktop.login1.conf src/login/org.freedesktop.login1.conf -index d677f61..1318328 100644 ---- src/login/org.freedesktop.login1.conf -+++ src/login/org.freedesktop.login1.conf -@@ -141,6 +141,18 @@ - send_member="ActivateSession"/> - - -+ -+ -+ -+ -+ -+ - --- -1.7.9.2 - diff --git a/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch b/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch deleted file mode 100644 index 596702d6..00000000 --- a/0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch +++ /dev/null @@ -1,174 +0,0 @@ -From f9cd6be10ece07e10488c05e270a0b5860779864 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 20:49:33 +0100 -Subject: [PATCH] logind: ignore lid switch events for 30s after each suspend - and 3min after startup - -This is needed to give USB docking stations and suchlike time to settle, -so that a display connected to an USB docking station can actually act -as a lid swith inhibitor correctly. - -With this change we should have somewhat reliable docking station -support in place. ---- - src/login/logind-action.c | 15 ++++++++++++++- - src/login/logind-dbus.c | 3 +++ - src/login/logind.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ - src/login/logind.h | 7 +++++++ - 4 files changed, 69 insertions(+), 1 deletion(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index c9d8bc5..ae7b350 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -70,20 +70,33 @@ int manager_handle_action( - return 0; - } - -- /* If we are docked don't react to lid closing */ - if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { - int n; - -+ /* If we are docked don't react to lid closing */ - if (manager_is_docked(m)) { - log_debug("Ignoring lid switch request, system is docked."); - return 0; - } - -+ /* If we have more than one or no displays connected, -+ * don't react to lid closing. The no display case we -+ * treat like this under the assumption that there is -+ * no modern drm driver available. */ - n = manager_count_displays(m); - if (n != 1) { - log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } -+ -+ /* If the last system suspend or startup is too close, -+ * let's not suspend for now, to give USB docking -+ * stations some time to settle so that we can -+ * properly watch its displays. */ -+ if (m->lid_switch_ignore_event_source) { -+ log_debug("Ignoring lid switch request, system startup or resume too close."); -+ return 0; -+ } - } - - /* If the key handling is inhibited, don't do anything */ -diff --git src/login/logind-dbus.c src/login/logind-dbus.c -index fc89531..c9c58f3 100644 ---- src/login/logind-dbus.c -+++ src/login/logind-dbus.c -@@ -1337,6 +1337,9 @@ static int execute_shutdown_or_sleep( - m->action_job = c; - m->action_what = w; - -+ /* Make sure the lid switch is ignored for a while */ -+ manager_set_lid_switch_ignore(m, now(CLOCK_MONOTONIC) + IGNORE_LID_SWITCH_SUSPEND_USEC); -+ - return 0; - } - -diff --git src/login/logind.c src/login/logind.c -index 10f61ab..fd113b3 100644 ---- src/login/logind.c -+++ src/login/logind.c -@@ -144,6 +144,7 @@ void manager_free(Manager *m) { - sd_event_source_unref(m->udev_device_event_source); - sd_event_source_unref(m->udev_vcsa_event_source); - sd_event_source_unref(m->udev_button_event_source); -+ sd_event_source_unref(m->lid_switch_ignore_event_source); - - if (m->console_active_fd >= 0) - close_nointr_nofail(m->console_active_fd); -@@ -959,6 +960,46 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us - return 0; - } - -+static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(e); -+ assert(m); -+ -+ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); -+ return 0; -+} -+ -+int manager_set_lid_switch_ignore(Manager *m, usec_t until) { -+ int r; -+ -+ assert(m); -+ -+ if (until <= now(CLOCK_MONOTONIC)) -+ return 0; -+ -+ /* We want to ignore the lid switch for a while after each -+ * suspend, and after boot-up. Hence let's install a timer for -+ * this. As long as the event source exists we ignore the lid -+ * switch. */ -+ -+ if (m->lid_switch_ignore_event_source) { -+ usec_t u; -+ -+ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); -+ if (r < 0) -+ return r; -+ -+ if (until <= u) -+ return 0; -+ -+ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); -+ } else -+ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); -+ -+ return r; -+} -+ - int manager_startup(Manager *m) { - int r; - Seat *seat; -@@ -994,6 +1035,10 @@ int manager_startup(Manager *m) { - return r; - } - -+ r = manager_set_lid_switch_ignore(m, 0 + IGNORE_LID_SWITCH_STARTUP_USEC); -+ if (r < 0) -+ log_warning("Failed to set up lid switch ignore event source: %s", strerror(-r)); -+ - /* Deserialize state */ - r = manager_enumerate_devices(m); - if (r < 0) -diff --git src/login/logind.h src/login/logind.h -index 74d6641..4bb8e7b 100644 ---- src/login/logind.h -+++ src/login/logind.h -@@ -42,6 +42,9 @@ typedef struct Manager Manager; - #include "logind-button.h" - #include "logind-action.h" - -+#define IGNORE_LID_SWITCH_STARTUP_USEC (3 * USEC_PER_MINUTE) -+#define IGNORE_LID_SWITCH_SUSPEND_USEC (30 * USEC_PER_SEC) -+ - struct Manager { - sd_event *event; - sd_bus *bus; -@@ -118,6 +121,8 @@ struct Manager { - bool lid_switch_ignore_inhibited; - - Hashmap *polkit_registry; -+ -+ sd_event_source *lid_switch_ignore_event_source; - }; - - Manager *manager_new(void); -@@ -178,3 +183,5 @@ const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned lengt - - int manager_watch_busname(Manager *manager, const char *name); - void manager_drop_busname(Manager *manager, const char *name); -+ -+int manager_set_lid_switch_ignore(Manager *m, usec_t until); --- -1.7.9.2 - diff --git a/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch b/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch deleted file mode 100644 index 070a9100..00000000 --- a/0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 05a2f6fefedd7254fd799502191d025d2908cf74 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen -Date: Sat, 12 Apr 2014 08:37:38 +0300 -Subject: [PATCH] man: mention XDG_CONFIG_HOME in systemd.unit - ---- - man/systemd.unit.xml | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 07a73fd..bcd4ba8 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -70,7 +70,8 @@ - ... - - -- $HOME/.config/systemd/user/* -+ $XDG_CONFIG_HOME/systemd/user/* -+$HOME/.config/systemd/user/* - /etc/systemd/user/* - /run/systemd/user/* - /usr/lib/systemd/user/* -@@ -320,8 +321,12 @@ - - - -+ $XDG_CONFIG_HOME/systemd/user -+ User configuration (only used when $XDG_CONFIG_HOME is set) -+ -+ - $HOME/.config/systemd/user -- User configuration -+ User configuration (only used when $XDG_CONFIG_HOME is not set) - - - /etc/systemd/user --- -1.7.9.2 - diff --git a/0003-man-we-don-t-have-Wanted-dependency.patch b/0003-man-we-don-t-have-Wanted-dependency.patch deleted file mode 100644 index 6ab1a897..00000000 --- a/0003-man-we-don-t-have-Wanted-dependency.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3e883473a0f36c220fc45ecf61d6878c9ac308b4 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 15 Oct 2014 09:28:31 +0200 -Subject: [PATCH] man: we don't have 'Wanted' dependency - ---- - man/systemd.unit.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index e9395ff..88c9d7f 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -181,10 +181,10 @@ - foo.service.wants/ may exist. All - unit files symlinked from such a directory are - implicitly added as dependencies of type -- Wanted= to the unit. This is useful -+ Wants= to the unit. This is useful - to hook units into the start-up of other units, - without having to modify their unit files. For details -- about the semantics of Wanted=, see -+ about the semantics of Wants=, see - below. The preferred way to create symlinks in the - .wants/ directory of a unit file - is with the enable command of the --- -1.7.9.2 - diff --git a/0003-mount-order-options-before-other-arguments-to-mount.patch b/0003-mount-order-options-before-other-arguments-to-mount.patch deleted file mode 100644 index d777869d..00000000 --- a/0003-mount-order-options-before-other-arguments-to-mount.patch +++ /dev/null @@ -1,39 +0,0 @@ -Based on 141a1ceaa62578f1ed14f04cae2113dd0f49fd7f Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:59 +0200 -Subject: [PATCH] mount: order options before other arguments to mount - ---- - src/core/mount.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- src/core/mount.c -+++ src/core/mount.c 2014-09-25 13:43:44.926563278 +0000 -@@ -947,10 +947,11 @@ static void mount_enter_mounting(Mount * - r = exec_command_set( - m->control_command, - "/bin/mount", -+ "-n", -+ "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", -+ "-o", m->parameters_fragment.options ? m->parameters_fragment.options : "defaults", - m->parameters_fragment.what, - m->where, -- "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", -- m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options, - NULL); - else - r = -ENOENT; -@@ -994,10 +995,11 @@ static void mount_enter_remounting(Mount - r = exec_command_set( - m->control_command, - "/bin/mount", -- m->parameters_fragment.what, -- m->where, -+ "-n", - "-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto", - "-o", o, -+ m->parameters_fragment.what, -+ m->where, - NULL); - } else - r = -ENOENT; diff --git a/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch b/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch deleted file mode 100644 index a8e538e2..00000000 --- a/0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch +++ /dev/null @@ -1,34 +0,0 @@ -Based on 664064d60c36e1f62c7e9177e4c7498035467e07 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 16:27:57 +0200 -Subject: [PATCH] namespace: make sure /tmp, /var/tmp and /dev are writable in - namespaces we set up - ---- - src/core/namespace.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - ---- src/core/namespace.c -+++ src/core/namespace.c 2014-07-04 09:55:21.582234949 +0000 -@@ -263,14 +263,17 @@ static int make_read_only(BindMount *m) - - assert(m); - -- if (m->mode != INACCESSIBLE && m->mode != READONLY) -- return 0; -+ if (IN_SET(m->mode, INACCESSIBLE, READONLY)) -+ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); -+ else if (IN_SET(m->mode, READWRITE, PRIVATE_TMP, PRIVATE_VAR_TMP, PRIVATE_DEV)) -+ r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_REC, NULL); -+ else -+ r = 0; - -- r = mount(NULL, m->path, NULL, MS_BIND|MS_REMOUNT|MS_RDONLY|MS_REC, NULL); - if (r < 0 && !(m->ignore && errno == ENOENT)) - return -errno; - -- return 0; -+ return r; - } - - int setup_namespace( diff --git a/0003-sd-bus-check-return-value-of-vasprintf.patch b/0003-sd-bus-check-return-value-of-vasprintf.patch deleted file mode 100644 index c908f074..00000000 --- a/0003-sd-bus-check-return-value-of-vasprintf.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Tue, 7 Oct 2014 12:10:06 +0200 -Subject: [PATCH] sd-bus: check return value of vasprintf - -Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv(). - -Spotted by coverity. ---- - src/libsystemd/sd-bus/bus-error.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c -index abdfd73..5ca974a 100644 ---- src/libsystemd/sd-bus/bus-error.c -+++ src/libsystemd/sd-bus/bus-error.c -@@ -194,8 +194,13 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li - return -ENOMEM; - } - -- if (format) -- vasprintf((char**) &e->message, format, ap); -+ if (format) { -+ int r; -+ -+ r = vasprintf((char**) &e->message, format, ap); -+ if (r < 0) -+ return -ENOMEM; -+ } - - e->_need_free = 1; - --- -1.7.9.2 - diff --git a/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch b/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch deleted file mode 100644 index 72455f2c..00000000 --- a/0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch +++ /dev/null @@ -1,498 +0,0 @@ -From a3d59cd1b0a2738d06893948492113f2c35be0af Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 19 Mar 2014 21:41:21 +0100 -Subject: [PATCH] sd-bus: don't use assert_return() to check for disconnected - bus connections - -A terminated connection is a runtime error and not a developer mistake, -hence don't use assert_return() to check for it. ---- - src/libsystemd/sd-bus/bus-control.c | 20 +++++++++++++----- - src/libsystemd/sd-bus/bus-convenience.c | 58 +++++++++++++++++++++++++++++++++++++++++------------- - src/libsystemd/sd-bus/bus-objects.c | 23 +++++++++++++++------ - src/libsystemd/sd-bus/sd-bus.c | 49 +++++++++++++++++++++++++++++++++------------ - 4 files changed, 113 insertions(+), 37 deletions(-) - ---- src/libsystemd/sd-bus/bus-control.c -+++ src/libsystemd/sd-bus/bus-control.c 2014-03-28 00:00:00.000000000 +0000 -@@ -128,12 +128,14 @@ _public_ int sd_bus_request_name(sd_bus - assert_return(bus, -EINVAL); - assert_return(name, -EINVAL); - assert_return(bus->bus_client, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(!(flags & ~(SD_BUS_NAME_ALLOW_REPLACEMENT|SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_QUEUE)), -EINVAL); - assert_return(service_name_is_valid(name), -EINVAL); - assert_return(name[0] != ':', -EINVAL); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_request_name_kernel(bus, name, flags); - else -@@ -201,11 +203,13 @@ _public_ int sd_bus_release_name(sd_bus - assert_return(bus, -EINVAL); - assert_return(name, -EINVAL); - assert_return(bus->bus_client, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(service_name_is_valid(name), -EINVAL); - assert_return(name[0] != ':', -EINVAL); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_release_name_kernel(bus, name); - else -@@ -344,9 +348,11 @@ static int bus_list_names_dbus1(sd_bus * - _public_ int sd_bus_list_names(sd_bus *bus, char ***acquired, char ***activatable) { - assert_return(bus, -EINVAL); - assert_return(acquired || activatable, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_list_names_kernel(bus, acquired, activatable); - else -@@ -737,11 +743,13 @@ _public_ int sd_bus_get_owner( - assert_return(name, -EINVAL); - assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); - assert_return(mask == 0 || creds, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(service_name_is_valid(name), -EINVAL); - assert_return(bus->bus_client, -ENODATA); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (bus->is_kernel) - return bus_get_owner_kdbus(bus, name, mask, creds); - else -@@ -1198,10 +1206,12 @@ _public_ int sd_bus_get_owner_machine_id - assert_return(bus, -EINVAL); - assert_return(name, -EINVAL); - assert_return(machine, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - assert_return(service_name_is_valid(name), -EINVAL); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (streq_ptr(name, bus->unique_name)) - return sd_id128_get_machine(machine); - ---- src/libsystemd/sd-bus/bus-convenience.c -+++ src/libsystemd/sd-bus/bus-convenience.c 2014-03-28 00:00:00.000000000 +0000 -@@ -36,9 +36,11 @@ _public_ int sd_bus_emit_signal( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_message_new_signal(bus, &m, path, interface, member); - if (r < 0) - return r; -@@ -70,9 +72,11 @@ _public_ int sd_bus_call_method( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_message_new_method_call(bus, &m, destination, path, interface, member); - if (r < 0) - return r; -@@ -100,9 +104,12 @@ _public_ int sd_bus_reply_method_return( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -134,9 +141,12 @@ _public_ int sd_bus_reply_method_error( - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); - assert_return(sd_bus_error_is_set(e), -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -159,9 +169,12 @@ _public_ int sd_bus_reply_method_errorf( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -182,9 +195,12 @@ _public_ int sd_bus_reply_method_errno( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -208,9 +224,12 @@ _public_ int sd_bus_reply_method_errnof( - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); - assert_return(call->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - if (call->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) - return 0; - -@@ -239,9 +258,11 @@ _public_ int sd_bus_get_property( - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(reply, -EINVAL); - assert_return(signature_is_single(type, false), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &rep, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -273,9 +294,11 @@ _public_ int sd_bus_get_property_trivial - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(bus_type_is_trivial(type), -EINVAL); - assert_return(ptr, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -309,9 +332,11 @@ _public_ int sd_bus_get_property_string( - assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(ret, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -348,9 +373,11 @@ _public_ int sd_bus_get_property_strv( - assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(ret, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_call_method(bus, destination, path, "org.freedesktop.DBus.Properties", "Get", error, &reply, "ss", strempty(interface), member); - if (r < 0) - return r; -@@ -383,9 +410,11 @@ _public_ int sd_bus_set_property( - assert_return(isempty(interface) || interface_name_is_valid(interface), -EINVAL); - assert_return(member_name_is_valid(member), -EINVAL); - assert_return(signature_is_single(type, false), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = sd_bus_message_new_method_call(bus, &m, destination, path, "org.freedesktop.DBus.Properties", "Set"); - if (r < 0) - return r; -@@ -416,9 +445,12 @@ _public_ int sd_bus_query_sender_creds(s - - assert_return(call, -EINVAL); - assert_return(call->sealed, -EPERM); -- assert_return(call->bus && BUS_IS_OPEN(call->bus->state), -ENOTCONN); -+ assert_return(call->bus, -EINVAL); - assert_return(!bus_pid_changed(call->bus), -ECHILD); - -+ if (!BUS_IS_OPEN(call->bus->state)) -+ return -ENOTCONN; -+ - c = sd_bus_message_get_creds(call); - - /* All data we need? */ ---- src/libsystemd/sd-bus/bus-objects.c -+++ src/libsystemd/sd-bus/bus-objects.c 2014-03-28 00:00:00.000000000 +0000 -@@ -2196,9 +2196,10 @@ _public_ int sd_bus_emit_properties_chan - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); - assert_return(interface_name_is_valid(interface), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - /* A non-NULL but empty names list means nothing needs to be - generated. A NULL list OTOH indicates that all properties -@@ -2241,9 +2242,11 @@ _public_ int sd_bus_emit_properties_chan - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); - assert_return(interface_name_is_valid(interface), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (!name) - return 0; - -@@ -2361,9 +2364,11 @@ _public_ int sd_bus_emit_interfaces_adde - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (strv_isempty(interfaces)) - return 0; - -@@ -2421,9 +2426,11 @@ _public_ int sd_bus_emit_interfaces_adde - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - interfaces = strv_from_stdarg_alloca(interface); - - return sd_bus_emit_interfaces_added_strv(bus, path, interfaces); -@@ -2435,9 +2442,11 @@ _public_ int sd_bus_emit_interfaces_remo - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (strv_isempty(interfaces)) - return 0; - -@@ -2461,9 +2470,11 @@ _public_ int sd_bus_emit_interfaces_remo - - assert_return(bus, -EINVAL); - assert_return(object_path_is_valid(path), -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - interfaces = strv_from_stdarg_alloca(interface); - - return sd_bus_emit_interfaces_removed_strv(bus, path, interfaces); ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c 2014-03-28 12:19:27.146736146 +0000 -@@ -1592,10 +1592,12 @@ static int bus_send_internal(sd_bus *bus - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (m->n_fds > 0) { - r = sd_bus_can_send(bus, SD_BUS_TYPE_UNIX_FD); - if (r < 0) -@@ -1671,10 +1673,12 @@ _public_ int sd_bus_send_to(sd_bus *bus, - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - if (!streq_ptr(m->destination, destination)) { - - if (!destination) -@@ -1726,13 +1730,15 @@ _public_ int sd_bus_call_async( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); - assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); - assert_return(callback, -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = hashmap_ensure_allocated(&bus->reply_callbacks, uint64_hash_func, uint64_compare_func); - if (r < 0) - return r; -@@ -1839,13 +1845,15 @@ _public_ int sd_bus_call( - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(m, -EINVAL); - assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL); - assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL); - assert_return(!bus_error_is_dirty(error), -EINVAL); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; -+ - r = bus_ensure_running(bus); - if (r < 0) - return r; -@@ -1971,9 +1979,11 @@ _public_ int sd_bus_get_events(sd_bus *b - int flags = 0; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) -+ return -ENOTCONN; -+ - if (bus->state == BUS_OPENING) - flags |= POLLOUT; - else if (bus->state == BUS_AUTHENTICATING) { -@@ -1998,9 +2008,11 @@ _public_ int sd_bus_get_timeout(sd_bus * - - assert_return(bus, -EINVAL); - assert_return(timeout_usec, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state) || bus->state == BUS_CLOSING, -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); - -+ if (!BUS_IS_OPEN(bus->state) && bus->state != BUS_CLOSING) -+ return -ENOTCONN; -+ - if (bus->state == BUS_CLOSING) { - *timeout_usec = 0; - return 1; -@@ -2510,7 +2522,8 @@ static int bus_poll(sd_bus *bus, bool ne - if (bus->state == BUS_CLOSING) - return 1; - -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - e = sd_bus_get_events(bus); - if (e < 0) -@@ -2565,7 +2578,8 @@ _public_ int sd_bus_wait(sd_bus *bus, ui - if (bus->state == BUS_CLOSING) - return 0; - -- assert_return(BUS_IS_OPEN(bus->state) , -ENOTCONN); -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - if (bus->rqueue_size > 0) - return 0; -@@ -2582,7 +2596,8 @@ _public_ int sd_bus_flush(sd_bus *bus) { - if (bus->state == BUS_CLOSING) - return 0; - -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - r = bus_ensure_running(bus); - if (r < 0) -@@ -3058,9 +3073,13 @@ _public_ int sd_bus_get_peer_creds(sd_bu - assert_return(bus, -EINVAL); - assert_return(mask <= _SD_BUS_CREDS_ALL, -ENOTSUP); - assert_return(ret, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); -- assert_return(!bus->is_kernel, -ENOTSUP); -+ -+ if (!bus->is_kernel) -+ return -ENOTSUP; -+ -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - if (!bus->ucred_valid && !isempty(bus->label)) - return -ENODATA; -@@ -3099,9 +3118,13 @@ _public_ int sd_bus_try_close(sd_bus *bu - int r; - - assert_return(bus, -EINVAL); -- assert_return(BUS_IS_OPEN(bus->state), -ENOTCONN); - assert_return(!bus_pid_changed(bus), -ECHILD); -- assert_return(bus->is_kernel, -ENOTSUP); -+ -+ if (!bus->is_kernel) -+ return -ENOTSUP; -+ -+ if (!BUS_IS_OPEN(bus->state)) -+ return -ENOTCONN; - - if (bus->rqueue_size > 0) - return -EBUSY; diff --git a/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch b/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch deleted file mode 100644 index 13b0da4b..00000000 --- a/0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9b772efb41c2d9f743ba5e96804bdf89b12630d8 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 19 Nov 2014 20:52:47 +0100 -Subject: [PATCH] sd-bus: refuse properties that claim to be both writable and - constant at the same time - ---- - src/libsystemd/sd-bus/bus-objects.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/libsystemd/sd-bus/bus-objects.c src/libsystemd/sd-bus/bus-objects.c -index 0ab1119..7981d65 100644 ---- src/libsystemd/sd-bus/bus-objects.c -+++ src/libsystemd/sd-bus/bus-objects.c -@@ -1682,6 +1682,11 @@ static int add_object_vtable_internal( - goto fail; - } - -+ if (v->flags & SD_BUS_VTABLE_PROPERTY_CONST) { -+ r = -EINVAL; -+ goto fail; -+ } -+ - /* Fall through */ - - case _SD_BUS_VTABLE_PROPERTY: { --- -1.7.9.2 - diff --git a/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch b/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch deleted file mode 100644 index f401411e..00000000 --- a/0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b63c8d4f0364457b0ead8793504012bb7113974f Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 10 Jul 2014 00:47:23 +0200 -Subject: [PATCH] sd-event: always call epoll_ctl() on mask-updates if - edge-triggered - -A call to sd_event_source_set_io_events() skipps calling into the kernel -if the new event-mask matches the old one. This is safe for -level-triggered sources as the kernel moves them onto the ready-list -automatically if events change. However, edge-triggered sources might not -be on the ready-list even though events are present. - -A call to sd_event_source_set_io_events() with EPOLLET set might thus be -used to just move the io-source onto the ready-list so the next poll -will return it again. This is very useful to avoid starvation in -priority-based event queues. - -Imagine a read() loop on an edge-triggered fd. If we cannot read data fast -enough to drain the receive queue, we might decide to skip reading for now -and schedule it for later. On edge-triggered io-sources we have to make -sure it's put on the ready-list so the next dispatch-round will return it -again if it's still the highest priority task. We could make sd-event -handle edge-triggered sources directly and allow marking them ready again. -However, it's much simpler to let the kernel do that for now via -EPOLL_CTL_MOD. ---- - src/libsystemd/sd-event/sd-event.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index 53f1904..a21f7db 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -1282,7 +1282,8 @@ _public_ int sd_event_source_set_io_events(sd_event_source *s, uint32_t events) - assert_return(s->event->state != SD_EVENT_FINISHED, -ESTALE); - assert_return(!event_pid_changed(s->event), -ECHILD); - -- if (s->io.events == events) -+ /* edge-triggered updates are never skipped, so we can reset edges */ -+ if (s->io.events == events && !(events & EPOLLET)) - return 0; - - if (s->enabled != SD_EVENT_OFF) { --- -1.7.9.2 - diff --git a/0003-sd-journal-properly-convert-object-size-on-big-endia.patch b/0003-sd-journal-properly-convert-object-size-on-big-endia.patch deleted file mode 100644 index 40e8d57c..00000000 --- a/0003-sd-journal-properly-convert-object-size-on-big-endia.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 57cd09acf2c63a414aa2131c00a2b3f600eb0133 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 23 Aug 2014 22:35:03 -0400 -Subject: [PATCH] sd-journal: properly convert object->size on big endian - -mmap code crashes when attempting to map an object of zero size. - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758392 -https://bugs.freedesktop.org/show_bug.cgi?id=82894 ---- - src/journal/journal-file.h | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git src/journal/journal-file.h src/journal/journal-file.h -index 3d41682..da2ef3b 100644 ---- src/journal/journal-file.h -+++ src/journal/journal-file.h -@@ -214,14 +214,15 @@ static unsigned type_to_context(int type) { - - static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset) { - unsigned context = type_to_context(o->object.type); -+ uint64_t s = le64toh(o->object.size); - - return mmap_cache_get(f->mmap, f->fd, f->prot, context, true, -- offset, o->object.size, &f->last_stat, NULL); -+ offset, s, &f->last_stat, NULL); - } - - static inline int journal_file_object_release(JournalFile *f, Object *o, uint64_t offset) { - unsigned context = type_to_context(o->object.type); -+ uint64_t s = le64toh(o->object.size); - -- return mmap_cache_release(f->mmap, f->fd, f->prot, context, -- offset, o->object.size); -+ return mmap_cache_release(f->mmap, f->fd, f->prot, context, offset, s); - } --- -1.7.9.2 - diff --git a/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch b/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch deleted file mode 100644 index 7aa3506a..00000000 --- a/0003-shared-install-avoid-prematurely-rejecting-missing-u.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0ffce503cd6e5a5ff5ba5cd1cc23684cfb8bb9e3 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Thu, 30 Oct 2014 20:12:05 -0400 -Subject: [PATCH] shared/install: avoid prematurely rejecting "missing" units - -f7101b7368df copied some logic to prevent enabling masked units, but -also added a check which causes attempts to enable templated units to -fail. Since we know the logic beyond this check will properly handle -units which truly do not exist, we can rely on the unit file state -comparison to suffice for expressing the intent of f7101b7368df. - -ref: https://bugs.archlinux.org/task/42616 ---- - src/shared/install.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git src/shared/install.c src/shared/install.c -index 035b44c..cab93e8 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -1620,12 +1620,10 @@ int unit_file_enable( - STRV_FOREACH(i, files) { - UnitFileState state; - -+ /* We only want to know if this unit is masked, so we ignore -+ * errors from unit_file_get_state, deferring other checks. -+ * This allows templated units to be enabled on the fly. */ - state = unit_file_get_state(scope, root_dir, *i); -- if (state < 0) { -- log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); -- return state; -- } -- - if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { - log_error("Failed to enable unit: Unit %s is masked", *i); - return -ENOTSUP; --- -1.7.9.2 - diff --git a/0003-systemd-use-pager-for-test-and-help.patch b/0003-systemd-use-pager-for-test-and-help.patch deleted file mode 100644 index a22e0b9d..00000000 --- a/0003-systemd-use-pager-for-test-and-help.patch +++ /dev/null @@ -1,111 +0,0 @@ -From b87c2aa6bf1247c298c9bd9f56b9b56a87836b2d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 7 Jan 2014 00:00:05 -0500 -Subject: [PATCH] systemd: use pager for --test and --help - ---- - src/core/main.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git src/core/main.c src/core/main.c -index f9ee297..ae38b43 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -50,6 +50,7 @@ - #include "conf-parser.h" - #include "missing.h" - #include "label.h" -+#include "pager.h" - #include "build.h" - #include "strv.h" - #include "def.h" -@@ -94,6 +95,7 @@ static int arg_crash_chvt = -1; - static bool arg_confirm_spawn = false; - static ShowStatus arg_show_status = _SHOW_STATUS_UNSET; - static bool arg_switched_root = false; -+static int arg_no_pager = -1; - static char ***arg_join_controllers = NULL; - static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL; - static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT; -@@ -117,6 +119,14 @@ static bool arg_default_memory_accounting = false; - - static void nop_handler(int sig) {} - -+static void pager_open_if_enabled(void) { -+ -+ if (arg_no_pager <= 0) -+ return; -+ -+ pager_open(false); -+} -+ - noreturn static void crash(int sig) { - - if (getpid() != 1) -@@ -704,6 +714,7 @@ static int parse_argv(int argc, char *argv[]) { - ARG_SYSTEM, - ARG_USER, - ARG_TEST, -+ ARG_NO_PAGER, - ARG_VERSION, - ARG_DUMP_CONFIGURATION_ITEMS, - ARG_DUMP_CORE, -@@ -725,6 +736,7 @@ static int parse_argv(int argc, char *argv[]) { - { "system", no_argument, NULL, ARG_SYSTEM }, - { "user", no_argument, NULL, ARG_USER }, - { "test", no_argument, NULL, ARG_TEST }, -+ { "no-pager", no_argument, NULL, ARG_NO_PAGER }, - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, ARG_VERSION }, - { "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS }, -@@ -832,6 +844,12 @@ static int parse_argv(int argc, char *argv[]) { - - case ARG_TEST: - arg_action = ACTION_TEST; -+ if (arg_no_pager < 0) -+ arg_no_pager = true; -+ break; -+ -+ case ARG_NO_PAGER: -+ arg_no_pager = true; - break; - - case ARG_VERSION: -@@ -912,6 +930,8 @@ static int parse_argv(int argc, char *argv[]) { - - case 'h': - arg_action = ACTION_HELP; -+ if (arg_no_pager < 0) -+ arg_no_pager = true; - break; - - case 'D': -@@ -984,6 +1004,7 @@ static int help(void) { - "Starts up and maintains the system or user services.\n\n" - " -h --help Show this help\n" - " --test Determine startup sequence, dump it and exit\n" -+ " --no-pager Do not pipe output into a pager\n" - " --dump-configuration-items Dump understood unit configuration items\n" - " --unit=UNIT Set default unit\n" - " --system Run a system instance, even if PID != 1\n" -@@ -1452,6 +1473,8 @@ int main(int argc, char *argv[]) { - goto finish; - } - -+ pager_open_if_enabled(); -+ - if (arg_action == ACTION_HELP) { - retval = help(); - goto finish; -@@ -1798,6 +1821,8 @@ int main(int argc, char *argv[]) { - } - - finish: -+ pager_close(); -+ - if (m) { - manager_free(m); - m = NULL; --- -1.7.9.2 - diff --git a/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch b/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch deleted file mode 100644 index 17cd7d1a..00000000 --- a/0003-time-earlier-exit-from-format_timestamp_relative-on-.patch +++ /dev/null @@ -1,25 +0,0 @@ -Based on 65de0395ffe1cfb0f9af86504e8588fb31bb0fbc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 19:08:22 +0200 -Subject: [PATCH] time: earlier exit from format_timestamp_relative() on - special times - ---- - src/shared/time-util.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- src/shared/time-util.c -+++ src/shared/time-util.c 2014-10-29 14:07:28.479838096 +0000 -@@ -194,11 +194,10 @@ char *format_timestamp_relative(char *bu - const char *s; - usec_t n, d; - -- n = now(CLOCK_REALTIME); -- - if (t <= 0 || (t == (usec_t) -1)) - return NULL; - -+ n = now(CLOCK_REALTIME); - if (n > t) { - d = n - t; - s = "ago"; diff --git a/0003-tty-ask-password-agent-return-negative-errno.patch b/0003-tty-ask-password-agent-return-negative-errno.patch deleted file mode 100644 index 9f839a7f..00000000 --- a/0003-tty-ask-password-agent-return-negative-errno.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ee0e4cca5ac37a094dfe1074907dae70c7b7701c Mon Sep 17 00:00:00 2001 -From: Florian Albrechtskirchinger -Date: Thu, 3 Apr 2014 21:17:20 +0200 -Subject: [PATCH] tty-ask-password-agent: return negative errno - -Return negative errno in wall_tty_block(). get_ctty_devnr() already -returns a negative errno in case of failure, no need to negate it again. - -Reported-by: Simon ---- - .../tty-ask-password-agent.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c -index 1d067af..3203474 100644 ---- src/tty-ask-password-agent/tty-ask-password-agent.c -+++ src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -432,7 +432,7 @@ static int wall_tty_block(void) { - - r = get_ctty_devnr(0, &devnr); - if (r < 0) -- return -r; -+ return r; - - if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0) - return -ENOMEM; --- -1.7.9.2 - diff --git a/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch b/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch deleted file mode 100644 index bad29c52..00000000 --- a/0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3f796750b192e62701e91a95f85389f876d1059b Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 17 Sep 2014 21:44:56 +0200 -Subject: [PATCH] udev: event - explicitly don't read() from invalid fd - -This fixes CID #1237641. ---- - src/udev/udev-event.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/udev/udev-event.c src/udev/udev-event.c -index 6b8b5a8..c8b1420 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -494,6 +494,9 @@ static void spawn_read(struct udev_event *event, - for (i = 0; i < fdcount; i++) { - int *fd = (int *)ev[i].data.ptr; - -+ if (*fd < 0) -+ continue; -+ - if (ev[i].events & EPOLLIN) { - ssize_t count; - char buf[4096]; --- -1.7.9.2 - diff --git a/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch b/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch deleted file mode 100644 index 5f466ea6..00000000 --- a/0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 497d1986c13032f1ef8f4592bb7ed8d3aa321a47 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 20 Jun 2014 00:15:39 +0200 -Subject: [PATCH] units: order systemd-tmpfiles-clean.service after - time-sync.target - -That way, on systems lacking an RTC we don't false start removing aged -files too early. ---- - units/systemd-tmpfiles-clean.service.in | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- units/systemd-tmpfiles-clean.service.in -+++ units/systemd-tmpfiles-clean.service.in 2014-06-24 10:47:57.398235644 +0000 -@@ -10,8 +10,9 @@ Description=Cleanup of Temporary Directo - Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) - DefaultDependencies=no - Wants=local-fs.target --After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target --Before=sysinit.target shutdown.target -+Conflicts=shutdown.target -+After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target -+Before=shutdown.target - ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d - ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d - ConditionDirectoryNotEmpty=|/etc/tmpfiles.d diff --git a/0003-units-remove-RefuseManualStart-from-units-which-are-.patch b/0003-units-remove-RefuseManualStart-from-units-which-are-.patch deleted file mode 100644 index d9ffedbf..00000000 --- a/0003-units-remove-RefuseManualStart-from-units-which-are-.patch +++ /dev/null @@ -1,65 +0,0 @@ -Based on 0fdeb6e011dfdb17636c81e2d7e0d632186359ce Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 28 Jun 2014 00:06:30 -0400 -Subject: [PATCH] units: remove RefuseManualStart from units which are always - around - -In a normal running system, non-passive targets and units used during -early bootup are always started. So refusing "manual start" for them -doesn't make any difference, because a "start" command doesn't cause -any action. - -In early boot however, the administrator might want to start on -of those targets or services by hand. We shouldn't interfere with that. - -Note: in case of systemd-tmpfiles-setup.service, really running the -unit after system is up would break the system. So e.g. restarting -should not be allowed. The unit has "RefuseManualStop=yes", which -prevents restart too. ---- - units/basic.target | 1 - - units/sysinit.target | 1 - - units/systemd-tmpfiles-setup.service.in | 1 - - units/user/basic.target | 1 - - 4 files changed, 4 deletions(-) - -diff --git units/basic.target units/basic.target -index d7c68f4..b890d48 100644 ---- units/basic.target -+++ units/basic.target -@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) - Requires=sysinit.target - Wants=sockets.target timers.target paths.target slices.target - After=sysinit.target sockets.target timers.target paths.target slices.target --RefuseManualStart=yes -diff --git units/sysinit.target units/sysinit.target -index 8f4fb8f..ec33503 100644 ---- units/sysinit.target -+++ units/sysinit.target -@@ -11,4 +11,3 @@ Documentation=man:systemd.special(7) - Conflicts=emergency.service emergency.target - Wants=local-fs.target swap.target - After=local-fs.target swap.target emergency.service emergency.target --RefuseManualStart=yes ---- units/systemd-tmpfiles-setup.service.in -+++ units/systemd-tmpfiles-setup.service.in 2014-07-01 12:17:48.154235348 +0000 -@@ -18,7 +18,6 @@ ConditionDirectoryNotEmpty=|/lib/tmpfile - ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d - ConditionDirectoryNotEmpty=|/etc/tmpfiles.d - ConditionDirectoryNotEmpty=|/run/tmpfiles.d --RefuseManualStart=yes - RefuseManualStop=yes - - [Service] -diff --git units/user/basic.target units/user/basic.target -index b74d13c..afc6e93 100644 ---- units/user/basic.target -+++ units/user/basic.target -@@ -10,4 +10,3 @@ Description=Basic System - Documentation=man:systemd.special(7) - Wants=sockets.target timers.target paths.target - After=sockets.target timers.target paths.target --RefuseManualStart=yes --- -1.7.9.2 - diff --git a/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch b/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch deleted file mode 100644 index 15c8d7f5..00000000 --- a/0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d8e40d62ab871a87fde421c4b246bb45bc3cbe2d Mon Sep 17 00:00:00 2001 -From: Jonathan Liu -Date: Thu, 29 May 2014 01:17:25 +1000 -Subject: [PATCH] units: use KillMode=mixed for systemd-nspawn@.service - -This causes the container to shut down cleanly when the service is -stopped. ---- - units/systemd-nspawn@.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git units/systemd-nspawn@.service.in units/systemd-nspawn@.service.in -index ff36e90..e373628 100644 ---- units/systemd-nspawn@.service.in -+++ units/systemd-nspawn@.service.in -@@ -11,6 +11,7 @@ Documentation=man:systemd-nspawn(1) - - [Service] - ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i -+KillMode=mixed - Type=notify - - [Install] --- -1.7.9.2 - diff --git a/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch b/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch deleted file mode 100644 index bc69be20..00000000 --- a/0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 144b3d9e093dd9310cd9590bec039dc43a7e2ad6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 7 Nov 2014 16:34:00 +0100 -Subject: [PATCH] utf8: when looking at the next unichar, honour the size - parameter, in utf8_is_printable_newline() - ---- - src/shared/utf8.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- src/shared/utf8.c -+++ src/shared/utf8.c 2014-11-10 14:20:28.094539264 +0000 -@@ -143,9 +143,14 @@ bool utf8_is_printable_newline(const cha - - for (p = (const uint8_t*) str; length;) { - int encoded_len = utf8_encoded_valid_unichar((const char *)p); -- int val = utf8_encoded_to_unichar((const char*)p); -+ int val; - -- if (encoded_len < 0 || val < 0 || is_unicode_control(val) || -+ if (encoded_len < 0 || -+ (size_t) encoded_len > length) -+ return false; -+ -+ val = utf8_encoded_to_unichar((const char*)p); -+ if (val < 0 || is_unicode_control(val) || - (!newline && val == '\n')) - return false; - diff --git a/0004-Raise-level-of-Found-dependency.-lines.patch b/0004-Raise-level-of-Found-dependency.-lines.patch deleted file mode 100644 index 3ae2e49e..00000000 --- a/0004-Raise-level-of-Found-dependency.-lines.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 14fe721b5f6d8457cc8737fa75f2ed79e7fa534b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 2 Nov 2014 12:10:42 -0500 -Subject: [PATCH] Raise level of 'Found dependency...' lines - -This way they always show up together with 'Found ordering cycle...'. -Ordering cycles are a serious error and a major pain to debug. If -quiet is enabled, only the first and the last line of output are -shown: - -systemd[1]: Found ordering cycle on basic.target/start -systemd[1]: Breaking ordering cycle by deleting job timers.target/start -systemd[1]: Job timers.target/start deleted to break ordering cycle starting with basic.target/start - -which isn't particularly enlightening. So just show the whole message -at the same level. - -https://bugzilla.redhat.com/show_bug.cgi?id=1158206 ---- - src/core/transaction.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git src/core/transaction.c src/core/transaction.c -index 488cb86..bbaa6da 100644 ---- src/core/transaction.c -+++ src/core/transaction.c -@@ -376,9 +376,9 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi - for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) { - - /* logging for j not k here here to provide consistent narrative */ -- log_info_unit(j->unit->id, -- "Found dependency on %s/%s", -- k->unit->id, job_type_to_string(k->type)); -+ log_warning_unit(j->unit->id, -+ "Found dependency on %s/%s", -+ k->unit->id, job_type_to_string(k->type)); - - if (!delete && hashmap_get(tr->jobs, k->unit) && - !unit_matters_to_anchor(k->unit, k)) { --- -1.7.9.2 - diff --git a/0004-architecture-remove-cris-from-uname-list.patch b/0004-architecture-remove-cris-from-uname-list.patch deleted file mode 100644 index dc1aa466..00000000 --- a/0004-architecture-remove-cris-from-uname-list.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bc4bc52bc3de56405045b0437e145a7067fb085d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 22:52:44 +0200 -Subject: [PATCH] architecture: remove "cris" from uname list - -the only correct name appears to be "crisv32"... - -http://lists.freedesktop.org/archives/systemd-devel/2014-July/020899.html ---- - src/shared/architecture.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git src/shared/architecture.c src/shared/architecture.c -index 7dd049a..6cdca4e 100644 ---- src/shared/architecture.c -+++ src/shared/architecture.c -@@ -115,7 +115,6 @@ Architecture uname_architecture(void) { - #elif defined(__tilegx__) - { "tilegx", ARCHITECTURE_TILEGX }, - #elif defined(__cris__) -- { "cris", ARCHITECTURE_CRIS }, - { "crisv32", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" --- -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 deleted file mode 100644 index 281f7b5c..00000000 --- a/0004-backlight-Avoid-error-when-state-restore-is-disabled.patch +++ /dev/null @@ -1,33 +0,0 @@ -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/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch b/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch deleted file mode 100644 index d0ec9ec8..00000000 --- a/0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch +++ /dev/null @@ -1,40 +0,0 @@ -From c7fdf44d08e1217d40dc092fb90a65978a0f541f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 23 Apr 2014 06:55:54 +0200 -Subject: [PATCH] backlight: warn if kernel exposes backlight device with - bogus max_brightness - -We shouldn't silently tape over broken kernel drivers. ---- - src/backlight/backlight.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index 754a646..c708391 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device *device) { - - max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness"); - if (!max_brightness_str) { -- log_warning("Failed to read 'max_brightness' attribute"); -+ log_warning("Failed to read 'max_brightness' attribute."); - return 0; - } - - r = safe_atou(max_brightness_str, &max_brightness); - if (r < 0) { -- log_warning("Failed to parse 'max_brightness' \"%s\": %s", -- max_brightness_str, strerror(-r)); -+ log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r)); -+ return 0; -+ } -+ -+ if (max_brightness <= 0) { -+ log_warning("Maximum brightness is 0, ignoring device."); - return 0; - } - --- -1.7.9.2 - diff --git a/0004-bash-completion-use-list-unit-files-to-get-all-units.patch b/0004-bash-completion-use-list-unit-files-to-get-all-units.patch deleted file mode 100644 index b5ab5359..00000000 --- a/0004-bash-completion-use-list-unit-files-to-get-all-units.patch +++ /dev/null @@ -1,39 +0,0 @@ -Based on c6a373a26348544d944b08bf0c5dea4f72f6980b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 26 Jul 2014 20:11:58 -0400 -Subject: [PATCH] bash-completion: use list-unit-files to get "all" units - -I think that it is better to return good results slightly more slowly, -than partial quickly. Also reading from disk seems fast enough. Even -the delay on first try with completely cold cache is acceptable. - -This is just for bash, 'cause zsh was already doing this. - -https://bugzilla.redhat.com/show_bug.cgi?id=790768 ---- - shell-completion/bash/systemctl.in | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in -index c5950cc..69ef04b 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -51,11 +51,13 @@ __filter_units_by_property () { - done - } - --__get_all_units () { __systemctl $1 list-units --all \ -+__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ - | { while read -r a b; do echo " $a"; done; }; } - __get_active_units () { __systemctl $1 list-units \ - | { while read -r a b; do echo " $a"; done; }; } --__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \ -+__get_startable_units () { { -+ __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap -+ __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \ - | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; } - __get_failed_units () { __systemctl $1 list-units \ - | { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; } --- -1.7.9.2 - diff --git a/0004-bootchart-check-return-of-strftime.patch b/0004-bootchart-check-return-of-strftime.patch deleted file mode 100644 index a629c9e9..00000000 --- a/0004-bootchart-check-return-of-strftime.patch +++ /dev/null @@ -1,63 +0,0 @@ -From e931d3f4241231e4102eda06adaf7cbfd68c6a5d Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 27 Sep 2014 22:25:07 +0200 -Subject: [PATCH] bootchart: check return of strftime - -Found by coverity. Fixes: CID#996314 and #996312 ---- - src/bootchart/bootchart.c | 8 ++++++-- - src/bootchart/svg.c | 5 +++-- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c -index 8ef5ad1..366a5ab 100644 ---- src/bootchart/bootchart.c -+++ src/bootchart/bootchart.c -@@ -389,7 +389,9 @@ int main(int argc, char *argv[]) { - - if (!of && (access(arg_output_path, R_OK|W_OK|X_OK) == 0)) { - t = time(NULL); -- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ assert_se(r > 0); -+ - snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); - of = fopen(output_file, "we"); - } -@@ -457,7 +459,9 @@ int main(int argc, char *argv[]) { - - if (!of) { - t = time(NULL); -- strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t)); -+ assert_se(r > 0); -+ - snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr); - of = fopen(output_file, "we"); - } -diff --git src/bootchart/svg.c src/bootchart/svg.c -index 135883f..faf377e 100644 ---- src/bootchart/svg.c -+++ src/bootchart/svg.c -@@ -162,7 +162,7 @@ static void svg_title(const char *build) { - char *c; - FILE *f; - time_t t; -- int fd; -+ int fd, r; - struct utsname uts; - - /* grab /proc/cmdline */ -@@ -196,7 +196,8 @@ static void svg_title(const char *build) { - - /* date */ - t = time(NULL); -- strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); -+ r = strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&t)); -+ assert_se(r > 0); - - /* CPU type */ - fd = openat(procfd, "cpuinfo", O_RDONLY); --- -1.7.9.2 - diff --git a/0004-config-parser-fix-mem-leak.patch b/0004-config-parser-fix-mem-leak.patch deleted file mode 100644 index b45d89c0..00000000 --- a/0004-config-parser-fix-mem-leak.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9e60277835e61597011358afcdbfb3dd712ce128 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sun, 31 Aug 2014 23:13:12 +0200 -Subject: [PATCH] config-parser: fix mem leak - ---- - src/shared/conf-parser.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/conf-parser.c src/shared/conf-parser.c -index 439cfc5..ee6de65 100644 ---- src/shared/conf-parser.c -+++ src/shared/conf-parser.c -@@ -710,6 +710,7 @@ int config_parse_strv(const char *unit, - - if (!utf8_is_valid(n)) { - log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); -+ free(n); - continue; - } - --- -1.7.9.2 - diff --git a/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch b/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch deleted file mode 100644 index 3ae99a64..00000000 --- a/0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch +++ /dev/null @@ -1,67 +0,0 @@ -Based on 4774e357268e4a1e9fa82adb0563a538932a4c8e Mon Sep 17 00:00:00 2001 -From: Miguel Angel Ajo -Date: Mon, 7 Jul 2014 14:20:36 +0200 -Subject: [PATCH] core: Added support for ERRNO NOTIFY_SOCKET message parsing, - and added StatusErrno dbus property along StatusText to - allow notification of numeric status condition while - degraded service operation or any other special situation. - ---- - src/core/dbus-service.c | 1 + - src/core/service.c | 17 +++++++++++++++++ - src/core/service.h | 1 + - 3 files changed, 19 insertions(+) - -diff --git src/core/dbus-service.c src/core/dbus-service.c -index 093289f..5a881e8 100644 ---- src/core/dbus-service.c -+++ src/core/dbus-service.c -@@ -60,6 +60,7 @@ const sd_bus_vtable bus_service_vtable[] = { - SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Service, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("BusName", "s", NULL, offsetof(Service, bus_name), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("StatusText", "s", NULL, offsetof(Service, status_text), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), -+ SD_BUS_PROPERTY("StatusErrno", "i", NULL, offsetof(Service, status_errno), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Service, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - BUS_EXEC_STATUS_VTABLE("ExecMain", offsetof(Service, main_exec_status), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - BUS_EXEC_COMMAND_LIST_VTABLE("ExecStartPre", offsetof(Service, exec_command[SERVICE_EXEC_START_PRE]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION), -diff --git src/core/service.c src/core/service.c -index 0b19767..ace45e2 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -2637,6 +2637,23 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - free(t); - } - -+ /* Interpret ERRNO= */ -+ e = strv_find_prefix(tags, "ERRNO="); -+ if (e) { -+ int status_errno; -+ -+ if (safe_atoi(e + 6, &status_errno) < 0) -+ log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); -+ else { -+ log_debug_unit(u->id, "%s: got %s", u->id, e); -+ -+ if (s->status_errno != status_errno) { -+ s->status_errno = status_errno; -+ notify_dbus = true; -+ } -+ } -+ } -+ - /* Interpret WATCHDOG= */ - if (strv_find(tags, "WATCHDOG=1")) { - log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); ---- src/core/service.h -+++ src/core/service.h 2014-07-08 12:54:39.238736046 +0200 -@@ -187,6 +187,7 @@ struct Service { - char *bus_name; - - char *status_text; -+ int status_errno; - - RateLimit start_limit; - StartLimitAction start_limit_action; --- -1.7.9.2 - diff --git a/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch b/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch deleted file mode 100644 index 17d7f268..00000000 --- a/0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c4bfd1691f4d3e26d6d7f34dbca941e119956e8a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Mar 2014 21:04:02 +0100 -Subject: [PATCH] core: don't try to relabel mounts before we loaded the - policy - ---- - src/core/mount-setup.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index 147333a..0a45b24 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -172,7 +172,10 @@ static int mount_one(const MountPoint *p, bool relabel) { - - /* The access mode here doesn't really matter too much, since - * the mounted file system will take precedence anyway. */ -- mkdir_p_label(p->where, 0755); -+ if (relabel) -+ mkdir_p_label(p->where, 0755); -+ else -+ mkdir_p(p->where, 0755); - - log_debug("Mounting %s to %s of type %s with options %s.", - p->what, --- -1.7.9.2 - diff --git a/0004-core-fix-transaction-destructiveness-check-once-more.patch b/0004-core-fix-transaction-destructiveness-check-once-more.patch deleted file mode 100644 index 843200c5..00000000 --- a/0004-core-fix-transaction-destructiveness-check-once-more.patch +++ /dev/null @@ -1,32 +0,0 @@ -Based on e0312f4db08c7100bd00299614e87bedc759b366 Mon Sep 17 00:00:00 2001 -Based on c21b92ffe7ef939dd32502ac912cf8ad1c5638fd Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 27 Nov 2014 15:23:58 +0100 -Subject: [PATCH] core: fix transaction destructiveness check once more - -The previous fix e0312f4db "core: fix check for transaction -destructiveness" broke test-engine (noticed by Zbyszek). -Apparently I had a wrong idea of the intended semantics of --fail. - -The manpage says the operation should fail if it "conflicts with a -pending job (more specifically: causes an already pending start job to -be reversed into a stop job or vice versa)". - -So let's check job_type_is_conflicting, instead of !is_superset. - -This makes both test-engine and TEST-03-JOBS pass again. ---- - src/core/transaction.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/transaction.c -+++ src/core/transaction.c 2014-12-15 12:06:11.721518136 +0000 -@@ -510,7 +510,7 @@ static int transaction_is_destructive(Tr - assert(!j->transaction_next); - - if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) && -- !job_type_is_superset(j->type, j->unit->job->type)) { -+ job_type_is_conflicting(j->unit->job->type, j->type)) { - - sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); - return -EEXIST; diff --git a/0004-core-map-the-rescue-argument-to-rescue.target.patch b/0004-core-map-the-rescue-argument-to-rescue.target.patch deleted file mode 100644 index 6b639305..00000000 --- a/0004-core-map-the-rescue-argument-to-rescue.target.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5329ab10ffaf5b4a3fd6ebd9380b1ec09d05cfc8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Tue, 7 Oct 2014 14:55:21 +0300 -Subject: [PATCH] core: map the 'rescue' argument to rescue.target - -Even though the 'emergency' and 'single' aliases come from sysvinit, the -lack of 'rescue' is still quite confusing (caught me by surprise for the -9th time yet) and inconsistent with `systemctl rescue` as well. ---- - src/core/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/core/main.c src/core/main.c -index 1a62e04..44373cc 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -272,6 +272,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { - static const char * const rlmap[] = { - "emergency", SPECIAL_EMERGENCY_TARGET, - "-b", SPECIAL_EMERGENCY_TARGET, -+ "rescue", SPECIAL_RESCUE_TARGET, - "single", SPECIAL_RESCUE_TARGET, - "-s", SPECIAL_RESCUE_TARGET, - "s", SPECIAL_RESCUE_TARGET, --- -1.7.9.2 - diff --git a/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch b/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch deleted file mode 100644 index 4bed22a5..00000000 --- a/0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +++ /dev/null @@ -1,53 +0,0 @@ -Based on bde29068aa3815c88190a91e9867605a0aeaf9c4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 23 Jun 2014 19:18:44 +0200 -Subject: [PATCH] cryptsetup: don't add unit dependency on /dev/null devices - when it is listed as password file - -As special magic, don't create device dependencies for /dev/null. Of -course, there might be similar devices we might want to include, but -given that none of them really make sense to specify as password source -there's really no point in checking for anything else here. - -https://bugs.freedesktop.org/show_bug.cgi?id=75816 ---- - src/cryptsetup/cryptsetup-generator.c | 21 +++++++++++++-------- - 1 file changed, 13 insertions(+), 8 deletions(-) - ---- src/cryptsetup/cryptsetup-generator.c -+++ src/cryptsetup/cryptsetup-generator.c 2014-06-25 17:24:14.338237375 +0000 -@@ -29,6 +29,7 @@ - #include "mkdir.h" - #include "strv.h" - #include "fileio.h" -+#include "path-util.h" - - static const char *arg_dest = "/tmp"; - static bool arg_enabled = true; -@@ -141,14 +142,18 @@ static int create_disk( - if (uu == NULL) - return log_oom(); - -- if (is_device_path(uu)) { -- _cleanup_free_ char *dd = unit_name_from_path(uu, ".device"); -- if (dd == NULL) -- return log_oom(); -- -- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); -- } else -- fprintf(f, "RequiresMountsFor=%s\n", password); -+ if (!path_equal(uu, "/dev/null")) { -+ if (is_device_path(uu)) { -+ _cleanup_free_ char *dd; -+ -+ dd = unit_name_from_path(uu, ".device"); -+ if (!dd) -+ return log_oom(); -+ -+ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); -+ } else -+ fprintf(f, "RequiresMountsFor=%s\n", password); -+ } - } - } - diff --git a/0004-fileio-quote-more-shell-characters-in-envfiles.patch b/0004-fileio-quote-more-shell-characters-in-envfiles.patch deleted file mode 100644 index b4cd3e96..00000000 --- a/0004-fileio-quote-more-shell-characters-in-envfiles.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 0ce5a80601597fe4d1a715a8f70ce8d5ccaa2d86 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Sun, 13 Jul 2014 18:49:00 +0300 -Subject: [PATCH] fileio: quote more shell characters in envfiles - -Turns out, making strings shell-proof is harder than expected: - - # machinectl set-hostname "foo|poweroff" && . /etc/machine-info - -(This could be simplified by quoting *and* escaping all characters, -which is harmless in shell but unnecessary.) ---- - src/shared/fileio.c | 4 ++-- - src/shared/util.h | 6 ++++++ - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git src/shared/fileio.c src/shared/fileio.c -index b0ab780..cbb40c2 100644 ---- src/shared/fileio.c -+++ src/shared/fileio.c -@@ -738,11 +738,11 @@ static void write_env_var(FILE *f, const char *v) { - p++; - fwrite(v, 1, p-v, f); - -- if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE "\'\"\\`$")) { -+ if (string_has_cc(p, NULL) || chars_intersect(p, WHITESPACE SHELL_NEED_QUOTES)) { - fputc('\"', f); - - for (; *p; p++) { -- if (strchr("\'\"\\`$", *p)) -+ if (strchr(SHELL_NEED_ESCAPE, *p)) - fputc('\\', f); - - fputc(*p, f); -diff --git src/shared/util.h src/shared/util.h -index c5eadc9..b3187a9 100644 ---- src/shared/util.h -+++ src/shared/util.h -@@ -93,6 +93,12 @@ - #define COMMENTS "#;" - #define GLOB_CHARS "*?[" - -+/* What characters are special in the shell? */ -+/* must be escaped outside and inside double-quotes */ -+#define SHELL_NEED_ESCAPE "\"\\`$" -+/* can be escaped or double-quoted */ -+#define SHELL_NEED_QUOTES SHELL_NEED_ESCAPE GLOB_CHARS "'()<>|&;" -+ - #define FORMAT_BYTES_MAX 8 - - #define ANSI_HIGHLIGHT_ON "\x1B[1;39m" --- -1.7.9.2 - diff --git a/0004-fix-off-by-one-error-in-array-index-assertion.patch b/0004-fix-off-by-one-error-in-array-index-assertion.patch deleted file mode 100644 index 9b718e05..00000000 --- a/0004-fix-off-by-one-error-in-array-index-assertion.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 26abdc73a212b90f7c4b71808a1028d2e87ab09f Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 8 Mar 2014 17:32:53 -0500 -Subject: [PATCH] fix off by one error in array index assertion - -Since the index is already post-incremented when the array is appended -to, this assertion can be wrongly reached when the array is at capacity -(with the NULL terminator). The bug is reproducible on shutdown with -the following settings in /etc/systemd/system.conf: - - LogTarget=journal-or-kmsg - LogColor=yes - LogLocation=yes - -Reported by Thermi on IRC. ---- - src/core/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/main.c src/core/main.c -index 6ebfe64..f1b06d8 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1994,7 +1994,7 @@ finish: - if (log_get_show_location()) - command_line[pos++] = "--log-location"; - -- assert(pos + 1 < ELEMENTSOF(command_line)); -+ assert(pos < ELEMENTSOF(command_line)); - - if (arm_reboot_watchdog && arg_shutdown_watchdog > 0) { - char *e; --- -1.7.9.2 - diff --git a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch deleted file mode 100644 index 065c0ea9..00000000 --- a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +++ /dev/null @@ -1,22 +0,0 @@ -From b3e4387351c835766f96796a20d94971afea7d3b Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz -Date: Tue, 25 Feb 2014 12:43:55 +0100 -Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac - ---- - hwdb/20-net-ifname.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git hwdb/20-net-ifname.hwdb hwdb/20-net-ifname.hwdb -index 29d2633..2408dc1 100644 ---- hwdb/20-net-ifname.hwdb -+++ hwdb/20-net-ifname.hwdb -@@ -2,4 +2,4 @@ - - # Dell iDRAC Virtual USB NIC - usb:v413CpA102* -- ID_NET_NAME_FROM_DATABASE=irdac -+ ID_NET_NAME_FROM_DATABASE=idrac --- -1.7.9.2 - diff --git a/0004-getty-generator-properly-escape-instance-names.patch b/0004-getty-generator-properly-escape-instance-names.patch deleted file mode 100644 index 26feb694..00000000 --- a/0004-getty-generator-properly-escape-instance-names.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a2ae516a25dafe41e0cd296ab7b5d022fa62b95f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 19 Jun 2014 22:02:55 -0400 -Subject: [PATCH] getty-generator: properly escape instance names - -Otherwise the add_symlink() function tries to make directories for -each slash even for the slash after the @ symbol in the final link -name, failing for /dev/3270/tty1. - -Based on a patch by Werner Fink . ---- - src/getty-generator/getty-generator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/getty-generator/getty-generator.c src/getty-generator/getty-generator.c -index 35cd858..7d4b546 100644 ---- src/getty-generator/getty-generator.c -+++ src/getty-generator/getty-generator.c -@@ -67,7 +67,7 @@ static int add_serial_getty(const char *tty) { - - log_debug("Automatically adding serial getty for /dev/%s.", tty); - -- n = unit_name_replace_instance("serial-getty@.service", tty); -+ n = unit_name_from_path_instance("serial-getty", tty, ".service"); - if (!n) - return log_oom(); - -@@ -81,7 +81,7 @@ static int add_container_getty(const char *tty) { - - log_debug("Automatically adding container getty for /dev/pts/%s.", tty); - -- n = unit_name_replace_instance("container-getty@.service", tty); -+ n = unit_name_from_path_instance("container-getty", tty, ".service"); - if (!n) - return log_oom(); - --- -1.7.9.2 - diff --git a/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 7ae03b91..00000000 --- a/0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,50 +0,0 @@ -From b189101727e80a09864c5e5880663ef565467f19 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Sat, 12 Apr 2014 10:38:16 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 23 ++++++++++++++++++++++- - 1 file changed, 22 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index b928f5a..28aa2a7 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -733,7 +733,7 @@ bluetooth:v00F1* - ID_VENDOR_FROM_DATABASE=Witron Technology Limited - - bluetooth:v00F2* -- ID_VENDOR_FROM_DATABASE=Morse Project Inc. -+ ID_VENDOR_FROM_DATABASE=Aether Things Inc. (formerly Morse Project Inc.) - - bluetooth:v00F3* - ID_VENDOR_FROM_DATABASE=Kent Displays Inc. -@@ -941,3 +941,24 @@ bluetooth:v0136* - - bluetooth:v0137* - ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd. -+ -+bluetooth:v0138* -+ ID_VENDOR_FROM_DATABASE=NTEO Inc. -+ -+bluetooth:v0139* -+ ID_VENDOR_FROM_DATABASE=Focus Systems Corporation -+ -+bluetooth:v013A* -+ ID_VENDOR_FROM_DATABASE=Tencent Holdings Limited -+ -+bluetooth:v013B* -+ ID_VENDOR_FROM_DATABASE=Allegion -+ -+bluetooth:v013C* -+ ID_VENDOR_FROM_DATABASE=Murata Manufacuring Co., Ltd. -+ -+bluetooth:v013D* -+ ID_VENDOR_FROM_DATABASE=WirelessWERX -+ -+bluetooth:v013E* -+ ID_VENDOR_FROM_DATABASE=nimai --- -1.7.9.2 - diff --git a/0004-hwdb-update-format-description-and-document-reloadin.patch b/0004-hwdb-update-format-description-and-document-reloadin.patch deleted file mode 100644 index a65a46f0..00000000 --- a/0004-hwdb-update-format-description-and-document-reloadin.patch +++ /dev/null @@ -1,60 +0,0 @@ -From fa9d4be3f1f4a792b2f3624c2a08fe9cc6ce6e54 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 7 Aug 2014 21:48:57 -0400 -Subject: [PATCH] hwdb: update format description and document reloading - -https://bugs.freedesktop.org/show_bug.cgi?id=82311 ---- - hwdb/60-keyboard.hwdb | 32 +++++++++++++++++++++++--------- - 1 file changed, 23 insertions(+), 9 deletions(-) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 5c3d4ca..ef0ebc5 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -28,19 +28,33 @@ - # driver, is the firmware-provided string exported - # by the kernel DMI modalias. - # --# Scan codes are specified as: --# KEYBOARD_KEY_= --# The scan code should be expressed in hex lowercase and in --# full bytes, a multiple of 2 digits. The key codes are retrieved --# and normalized from the kernel input API header. -+# Scan codes are specified as: -+# KEYBOARD_KEY_= -+# The scan code should be expressed in hex lowercase. The key codes -+# are retrieved and normalized from the kernel input API header. - # --# A '!' as the first charcter of the key identifier string --# will add the scan code to the AT keyboard's list of scan codes --# where the driver will synthesize a release event and not expect --# it to be generated by the hardware. -+# An '!' as the first character of the key identifier string -+# will add the scan code to the AT keyboard's list of scan codes -+# where the driver will synthesize a release event and not expect -+# it to be generated by the hardware. - # - # To debug key presses and access scan code mapping data of - # an input device use the commonly available tool: evtest(1). -+# -+# To update this file, create a new file -+# /etc/udev/hwdb.d/70-keyboad.hwdb -+# and add your rules there. To load the new rules execute (as root): -+# udevadm hwdb --update -+# udevadm trigger /dev/input/eventXX -+# where /dev/input/eventXX is the keyboard in question. If in -+# doubt, simply use /dev/input/event* to reload all input rules. -+# -+# If your changes are generally applicable, open a bug report on -+# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd -+# and include your new rules, a description of the device, and the -+# output of -+# udevadm info /dev/input/eventXX -+# (or /dev/input/event*). - - ########################################## - # Acer --- -1.7.9.2 - diff --git a/0004-hwdb-update.patch b/0004-hwdb-update.patch deleted file mode 100644 index 572bcd32..00000000 --- a/0004-hwdb-update.patch +++ /dev/null @@ -1,3964 +0,0 @@ -From 61fb23db45c626d92b4e33f09b9287f58a3625a5 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 5 May 2014 14:23:10 +0200 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 295 +++++++++++- - hwdb/20-pci-vendor-model.hwdb | 174 ++++++-- - hwdb/20-usb-vendor-model.hwdb | 992 +++++++++++++++++++++++++++++++++++++++-- - 3 files changed, 1368 insertions(+), 93 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 17794ed..afc0d90 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -13940,7 +13940,7 @@ OUI:000063* - ID_OUI_FROM_DATABASE=BARCO CONTROL ROOMS GMBH - - OUI:000064* -- ID_OUI_FROM_DATABASE=YOKOGAWA DIGITAL COMPUTER CORP -+ ID_OUI_FROM_DATABASE=Yokogawa Electric Corporation - - OUI:000065* - ID_OUI_FROM_DATABASE=Network General Corporation -@@ -14927,7 +14927,7 @@ OUI:0001AE* - ID_OUI_FROM_DATABASE=Trex Enterprises - - OUI:0001AF* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:0001B0* - ID_OUI_FROM_DATABASE=Fulltek Technology Co., Ltd. -@@ -18272,7 +18272,7 @@ OUI:00060A* - ID_OUI_FROM_DATABASE=Blue2space - - OUI:00060B* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:00060C* - ID_OUI_FROM_DATABASE=Melco Industries, Inc. -@@ -20441,7 +20441,7 @@ OUI:0008F8* - ID_OUI_FROM_DATABASE=UTC CCS - - OUI:0008F9* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:0008FA* - ID_OUI_FROM_DATABASE=Karl E.Brinkmann GmbH -@@ -46612,6 +46612,9 @@ OUI:0064A6* - OUI:00664B* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -+OUI:006B8E* -+ ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. -+ - OUI:006B9E* - ID_OUI_FROM_DATABASE=VIZIO Inc - -@@ -46850,7 +46853,7 @@ OUI:008041* - ID_OUI_FROM_DATABASE=VEB KOMBINAT ROBOTRON - - OUI:008042* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:008043* - ID_OUI_FROM_DATABASE=NETWORLD, INC. -@@ -49919,7 +49922,7 @@ OUI:00C0F8* - ID_OUI_FROM_DATABASE=ABOUT COMPUTING INC. - - OUI:00C0F9* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:00C0FA* - ID_OUI_FROM_DATABASE=CANARY COMMUNICATIONS, INC. -@@ -50957,7 +50960,7 @@ OUI:00E034* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:00E035* -- ID_OUI_FROM_DATABASE=Emerson Network Power -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:00E036* - ID_OUI_FROM_DATABASE=PIONEER CORPORATION -@@ -52477,6 +52480,9 @@ OUI:0838A5* - OUI:083AB8* - ID_OUI_FROM_DATABASE=Shinoda Plasma Co., Ltd. - -+OUI:083D88* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:083E0C* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -52495,9 +52501,6 @@ OUI:084027* - OUI:08482C* - ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. - --OUI:084929* -- ID_OUI_FROM_DATABASE=CYBATI -- - OUI:084E1C* - ID_OUI_FROM_DATABASE=H2A Systems, LLC - -@@ -52867,6 +52870,9 @@ OUI:0C8910* - OUI:0C8BFD* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:0C8C8F* -+ ID_OUI_FROM_DATABASE=Kamo Technology Limited -+ - OUI:0C8CDC* - ID_OUI_FROM_DATABASE=Suunto Oy - -@@ -53515,6 +53521,9 @@ OUI:1499E2* - OUI:149FE8* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:14A364* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:14A62C* - ID_OUI_FROM_DATABASE=S.M. Dezac S.A. - -@@ -54403,6 +54412,9 @@ OUI:20918A* - OUI:2091D9* - ID_OUI_FROM_DATABASE=I'M SPA - -+OUI:20934D* -+ ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd -+ - OUI:209AE9* - ID_OUI_FROM_DATABASE=Volacomm Co., Ltd - -@@ -54598,6 +54610,9 @@ OUI:24470E* - OUI:24497B* - ID_OUI_FROM_DATABASE=Innovative Converged Devices Inc - -+OUI:244F1D* -+ ID_OUI_FROM_DATABASE=iRule LLC -+ - OUI:245FDF* - ID_OUI_FROM_DATABASE=KYOCERA Corporation - -@@ -54751,6 +54766,9 @@ OUI:24DEC6* - OUI:24E271* - ID_OUI_FROM_DATABASE=Qingdao Hisense Communications Co.,Ltd - -+OUI:24E314* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:24E6BA* - ID_OUI_FROM_DATABASE=JSC Zavod im. Kozitsky - -@@ -54829,6 +54847,9 @@ OUI:2826A6* - OUI:28285D* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -+OUI:2829CC* -+ ID_OUI_FROM_DATABASE=Corsa Technology Incorporated -+ - OUI:2829D9* - ID_OUI_FROM_DATABASE=GlobalBeiMing technology (Beijing)Co. Ltd - -@@ -55087,12 +55108,18 @@ OUI:28E14C* - OUI:28E297* - ID_OUI_FROM_DATABASE=Shanghai InfoTM Microelectronics Co.,Ltd. - -+OUI:28E31F* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:28E347* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - - OUI:28E608* - ID_OUI_FROM_DATABASE=Tokheim - -+OUI:28E6E9* -+ ID_OUI_FROM_DATABASE=SIS Sat Internet Services GmbH -+ - OUI:28E794* - ID_OUI_FROM_DATABASE=Microtime Computer Inc. - -@@ -55225,6 +55252,9 @@ OUI:2C534A* - OUI:2C542D* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:2C54CF* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:2C553C* - ID_OUI_FROM_DATABASE=Gainspeed, Inc. - -@@ -55330,6 +55360,9 @@ OUI:2CA835* - OUI:2CAB25* - ID_OUI_FROM_DATABASE=Shenzhen Gongjin Electronics Co.,Ltd - -+OUI:2CABA4* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:2CB05D* - ID_OUI_FROM_DATABASE=NETGEAR - -@@ -55456,6 +55489,9 @@ OUI:303294* - OUI:3032D4* - ID_OUI_FROM_DATABASE=Hanilstm Co., Ltd. - -+OUI:303335* -+ ID_OUI_FROM_DATABASE=Boosty -+ - OUI:3037A6* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -55888,6 +55924,9 @@ OUI:34BA9A* - OUI:34BB1F* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:34BB26* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:34BCA6* - ID_OUI_FROM_DATABASE=Beijing Ding Qing Technology, Ltd. - -@@ -55975,6 +56014,9 @@ OUI:34EF44* - OUI:34EF8B* - ID_OUI_FROM_DATABASE=NTT Communications Corporation - -+OUI:34F0CA* -+ ID_OUI_FROM_DATABASE=Shenzhen Linghangyuan Digital Technology Co.,Ltd. -+ - OUI:34F39B* - ID_OUI_FROM_DATABASE=WizLAN Ltd. - -@@ -56023,6 +56065,9 @@ OUI:381766* - OUI:38192F* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:381C1A* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:381C4A* - ID_OUI_FROM_DATABASE=SIMCom Wireless Solutions Co.,Ltd. - -@@ -56236,6 +56281,9 @@ OUI:38F597* - OUI:38F708* - ID_OUI_FROM_DATABASE=National Resource Management, Inc. - -+OUI:38F889* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:38F8B7* - ID_OUI_FROM_DATABASE=V2COM PARTICIPACOES S.A. - -@@ -56287,6 +56335,9 @@ OUI:3C15C2* - OUI:3C15EA* - ID_OUI_FROM_DATABASE=TESCOM CO., LTD. - -+OUI:3C189F* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:3C18A0* - ID_OUI_FROM_DATABASE=Luxshare Precision Industry Co.,Ltd. - -@@ -56521,6 +56572,9 @@ OUI:3CD7DA* - OUI:3CD92B* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -+OUI:3CD9CE* -+ ID_OUI_FROM_DATABASE=Eclipse WiFi -+ - OUI:3CDF1E* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -56725,6 +56779,9 @@ OUI:407A80* - OUI:407B1B* - ID_OUI_FROM_DATABASE=Mettle Networks Inc. - -+OUI:408256* -+ ID_OUI_FROM_DATABASE=Continental Automotive GmbH -+ - OUI:4083DE* - ID_OUI_FROM_DATABASE=Motorola - -@@ -56818,6 +56875,9 @@ OUI:40C245* - OUI:40C4D6* - ID_OUI_FROM_DATABASE=ChongQing Camyu Technology Development Co.,Ltd. - -+OUI:40C62A* -+ ID_OUI_FROM_DATABASE=Shanghai Jing Ren Electronic Technology Co., Ltd. -+ - OUI:40C7C9* - ID_OUI_FROM_DATABASE=Naviit Inc. - -@@ -57001,6 +57061,9 @@ OUI:446132* - OUI:44619C* - ID_OUI_FROM_DATABASE=FONsystem co. ltd. - -+OUI:44666E* -+ ID_OUI_FROM_DATABASE=IP-LINE -+ - OUI:446755* - ID_OUI_FROM_DATABASE=Orbit Irrigation - -@@ -57019,6 +57082,9 @@ OUI:44700B* - OUI:447098* - ID_OUI_FROM_DATABASE=MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED - -+OUI:44746C* -+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB -+ - OUI:447BC4* - ID_OUI_FROM_DATABASE=DualShine Technology(SZ)Co.,Ltd - -@@ -57079,6 +57145,9 @@ OUI:44A42D* - OUI:44A689* - ID_OUI_FROM_DATABASE=PROMAX ELECTRONICA SA - -+OUI:44A6E5* -+ ID_OUI_FROM_DATABASE=THINKING TECHNOLOGY CO.,LTD -+ - OUI:44A7CF* - ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. - -@@ -57178,6 +57247,9 @@ OUI:48022A* - OUI:480362* - ID_OUI_FROM_DATABASE=DESAY ELECTRONICS(HUIZHOU)CO.,LTD - -+OUI:480C49* -+ ID_OUI_FROM_DATABASE=NAKAYO TELECOMMUNICATIONS,INC -+ - OUI:481249* - ID_OUI_FROM_DATABASE=Luxcom Technologies Inc. - -@@ -57463,6 +57535,9 @@ OUI:4C2258* - OUI:4C2578* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:4C26E7* -+ ID_OUI_FROM_DATABASE=Welgate Co., Ltd. -+ - OUI:4C2C80* - ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd - -@@ -57535,6 +57610,9 @@ OUI:4C63EB* - OUI:4C64D9* - ID_OUI_FROM_DATABASE=Guangdong Leawin Group Co., Ltd - -+OUI:4C6E6E* -+ ID_OUI_FROM_DATABASE=Comnect Technology CO.,LTD -+ - OUI:4C72B9* - ID_OUI_FROM_DATABASE=Pegatron Corporation - -@@ -57565,6 +57643,9 @@ OUI:4C8093* - OUI:4C82CF* - ID_OUI_FROM_DATABASE=Echostar Technologies - -+OUI:4C83DE* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:4C8B30* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -@@ -57592,6 +57673,9 @@ OUI:4C9E80* - OUI:4C9EE4* - ID_OUI_FROM_DATABASE=Hanyang Navicom Co.,Ltd. - -+OUI:4C9EFF* -+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corp -+ - OUI:4CA56D* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -57775,6 +57859,9 @@ OUI:504A6E* - OUI:504F94* - ID_OUI_FROM_DATABASE=Loxone Electronics GmbH - -+OUI:505065* -+ ID_OUI_FROM_DATABASE=TAKT Corporation -+ - OUI:505663* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -57808,6 +57895,9 @@ OUI:506313* - OUI:506441* - ID_OUI_FROM_DATABASE=Greenlee - -+OUI:506787* -+ ID_OUI_FROM_DATABASE=iTellus -+ - OUI:5067F0* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -@@ -58693,6 +58783,12 @@ OUI:5CAC4C* - OUI:5CB524* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -+OUI:5CB6CC* -+ ID_OUI_FROM_DATABASE=NovaComm Technologies Inc. -+ -+OUI:5CB8CB* -+ ID_OUI_FROM_DATABASE=Allis Communications -+ - OUI:5CBD9E* - ID_OUI_FROM_DATABASE=HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED - -@@ -58789,6 +58885,9 @@ OUI:5CF8A1* - OUI:5CF938* - ID_OUI_FROM_DATABASE=Apple, Inc - -+OUI:5CF96A* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:5CF9DD* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -58927,6 +59026,9 @@ OUI:60748D* - OUI:607688* - ID_OUI_FROM_DATABASE=Velodyne - -+OUI:6077E2* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:60812B* - ID_OUI_FROM_DATABASE=Custom Control Concepts - -@@ -59074,6 +59176,9 @@ OUI:60E00E* - OUI:60E327* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:60E701* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:60E956* - ID_OUI_FROM_DATABASE=Ayla Networks, Inc - -@@ -59131,6 +59236,9 @@ OUI:6405BE* - OUI:64094C* - ID_OUI_FROM_DATABASE=Beijing Superbee Wireless Technology Co.,Ltd - -+OUI:640980* -+ ID_OUI_FROM_DATABASE=XIAOMI Electronics,CO.,LTD -+ - OUI:640B4A* - ID_OUI_FROM_DATABASE=Digital Telecom Technology Limited - -@@ -59254,6 +59362,9 @@ OUI:645FFF* - OUI:646223* - ID_OUI_FROM_DATABASE=Cellient Co., Ltd. - -+OUI:64649B* -+ ID_OUI_FROM_DATABASE=juniper networks -+ - OUI:6465C0* - ID_OUI_FROM_DATABASE=Nuvon, Inc - -@@ -59680,6 +59791,9 @@ OUI:689C5E* - OUI:689C70* - ID_OUI_FROM_DATABASE=Apple - -+OUI:68A0F6* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:68A1B7* - ID_OUI_FROM_DATABASE=Honghao Mingchuan Technology (Beijing) CO.,Ltd. - -@@ -60130,6 +60244,9 @@ OUI:702B1D* - OUI:702C1F* - ID_OUI_FROM_DATABASE=Wisol - -+OUI:702DD1* -+ ID_OUI_FROM_DATABASE=Newings Communication CO., LTD. -+ - OUI:702F4B* - ID_OUI_FROM_DATABASE=PolyVision Inc. - -@@ -60211,6 +60328,9 @@ OUI:705986* - OUI:705AB6* - ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. - -+OUI:705B2E* -+ ID_OUI_FROM_DATABASE=M2Communication Inc. -+ - OUI:705CAD* - ID_OUI_FROM_DATABASE=Konami Gaming Inc - -@@ -60568,6 +60688,9 @@ OUI:748EF8* - OUI:748F1B* - ID_OUI_FROM_DATABASE=MasterImage 3D - -+OUI:748F4D* -+ ID_OUI_FROM_DATABASE=MEN Mikro Elektronik GmbH -+ - OUI:749050* - ID_OUI_FROM_DATABASE=Renesas Electronics Corporation - -@@ -60694,6 +60817,9 @@ OUI:74F07D* - OUI:74F102* - ID_OUI_FROM_DATABASE=Beijing HCHCOM Technology Co., Ltd - -+OUI:74F413* -+ ID_OUI_FROM_DATABASE=Maxwell Forest -+ - OUI:74F612* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -61582,6 +61708,9 @@ OUI:806CBC* - OUI:80711F* - ID_OUI_FROM_DATABASE=Juniper Networks - -+OUI:80717A* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:807693* - ID_OUI_FROM_DATABASE=Newag SA - -@@ -61633,6 +61762,9 @@ OUI:80946C* - OUI:8096B1* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:8096CA* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind Co.,Ltd -+ - OUI:80971B* - ID_OUI_FROM_DATABASE=Altenergy Power System,Inc. - -@@ -61699,6 +61831,9 @@ OUI:80D019* - OUI:80D18B* - ID_OUI_FROM_DATABASE=Hangzhou I'converge Technology Co.,Ltd - -+OUI:80D21D* -+ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc -+ - OUI:80D433* - ID_OUI_FROM_DATABASE=LzLabs GmbH - -@@ -62356,6 +62491,9 @@ OUI:8C2F39* - OUI:8C3330* - ID_OUI_FROM_DATABASE=EmFirst Co., Ltd. - -+OUI:8C3357* -+ ID_OUI_FROM_DATABASE=HiteVision Digital Media Technology Co.,Ltd. -+ - OUI:8C3AE3* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -62842,6 +62980,9 @@ OUI:90B134* - OUI:90B21F* - ID_OUI_FROM_DATABASE=Apple - -+OUI:90B686* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:90B8D0* - ID_OUI_FROM_DATABASE=Joyent, Inc. - -@@ -62887,6 +63028,9 @@ OUI:90D92C* - OUI:90DA4E* - ID_OUI_FROM_DATABASE=AVANU - -+OUI:90DA6A* -+ ID_OUI_FROM_DATABASE=MCC System Co., Ltd. -+ - OUI:90DB46* - ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD - -@@ -63100,6 +63244,9 @@ OUI:94ACCA* - OUI:94AE61* - ID_OUI_FROM_DATABASE=Alcatel Lucent - -+OUI:94AEE3* -+ ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. -+ - OUI:94B8C5* - ID_OUI_FROM_DATABASE=RuggedCom Inc. - -@@ -63151,6 +63298,9 @@ OUI:94CE2C* - OUI:94D019* - ID_OUI_FROM_DATABASE=Cydle Corp. - -+OUI:94D60E* -+ ID_OUI_FROM_DATABASE=shenzhen yunmao information technologies co., ltd -+ - OUI:94D723* - ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd - -@@ -63730,6 +63880,9 @@ OUI:9CC077* - OUI:9CC0D2* - ID_OUI_FROM_DATABASE=Conductix-Wampfler AG - -+OUI:9CC172* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:9CC7A6* - ID_OUI_FROM_DATABASE=AVM GmbH - -@@ -63799,6 +63952,9 @@ OUI:A002DC* - OUI:A00363* - ID_OUI_FROM_DATABASE=Robert Bosch Healthcare GmbH - -+OUI:A00627* -+ ID_OUI_FROM_DATABASE=NEXPA System -+ - OUI:A00798* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -63898,6 +64054,9 @@ OUI:A051C6* - OUI:A055DE* - ID_OUI_FROM_DATABASE=Pace plc - -+OUI:A056B2* -+ ID_OUI_FROM_DATABASE=Harman/Becker Automotive Systems GmbH -+ - OUI:A0593A* - ID_OUI_FROM_DATABASE=V.D.S. Video Display Systems srl - -@@ -64234,6 +64393,9 @@ OUI:A45C27* - OUI:A45D36* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A45DA1* -+ ID_OUI_FROM_DATABASE=ADB Broadband Italia -+ - OUI:A46032* - ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD - -@@ -64312,6 +64474,9 @@ OUI:A49F89* - OUI:A4A24A* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:A4A4D3* -+ ID_OUI_FROM_DATABASE=Bluebank Communication Technology Co.Ltd -+ - OUI:A4A80F* - ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd. - -@@ -64462,6 +64627,9 @@ OUI:A80600* - OUI:A80C0D* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:A81374* -+ ID_OUI_FROM_DATABASE=Panasonic Corporation AVC Networks Company -+ - OUI:A8154D* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -@@ -64495,6 +64663,9 @@ OUI:A82BD6* - OUI:A830AD* - ID_OUI_FROM_DATABASE=Wei Fang Goertek Electronics Co.,Ltd - -+OUI:A8329A* -+ ID_OUI_FROM_DATABASE=Digicom Futuristic Technologies Ltd. -+ - OUI:A83944* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -@@ -64582,6 +64753,9 @@ OUI:A88CEE* - OUI:A88D7B* - ID_OUI_FROM_DATABASE=SunDroid Global limited. - -+OUI:A88E24* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:A8922C* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -64903,6 +65077,9 @@ OUI:AC9CE4* - OUI:ACA016* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:ACA213* -+ ID_OUI_FROM_DATABASE=Shenzhen Bilian electronic CO.,LTD -+ - OUI:ACA22C* - ID_OUI_FROM_DATABASE=Baycity Technologies Ltd - -@@ -65068,6 +65245,9 @@ OUI:B01B7C* - OUI:B01C91* - ID_OUI_FROM_DATABASE=Elim Co - -+OUI:B01F81* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:B024F3* - ID_OUI_FROM_DATABASE=Progeny Systems - -@@ -65113,6 +65293,9 @@ OUI:B058C4* - OUI:B05B1F* - ID_OUI_FROM_DATABASE=THERMO FISHER SCIENTIFIC S.P.A. - -+OUI:B05B67* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:B05CE5* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -65338,6 +65521,9 @@ OUI:B407F9* - OUI:B40832* - ID_OUI_FROM_DATABASE=TC Communications - -+OUI:B40AC6* -+ ID_OUI_FROM_DATABASE=DEXON Systems Ltd. -+ - OUI:B40B44* - ID_OUI_FROM_DATABASE=Smartisan Technology Co., Ltd. - -@@ -65533,6 +65719,9 @@ OUI:B4AA4D* - OUI:B4AB2C* - ID_OUI_FROM_DATABASE=MtM Technology Corporation - -+OUI:B4AE6F* -+ ID_OUI_FROM_DATABASE=Circle Reliance, Inc. -+ - OUI:B4B017* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -65566,6 +65755,9 @@ OUI:B4C810* - OUI:B4CCE9* - ID_OUI_FROM_DATABASE=PROSYST - -+OUI:B4CEF6* -+ ID_OUI_FROM_DATABASE=HTC Corporation -+ - OUI:B4CFDB* - ID_OUI_FROM_DATABASE=Shenzhen Jiuzhou Electric Co.,LTD - -@@ -65812,6 +66004,9 @@ OUI:B898B0* - OUI:B898F7* - ID_OUI_FROM_DATABASE=Gionee Communication Equipment Co,Ltd.ShenZhen - -+OUI:B89919* -+ ID_OUI_FROM_DATABASE=7signal Solutions, Inc -+ - OUI:B89AED* - ID_OUI_FROM_DATABASE=OceanServer Technology, Inc - -@@ -66160,6 +66355,9 @@ OUI:BC9889* - OUI:BC99BC* - ID_OUI_FROM_DATABASE=FonSee Technology Inc. - -+OUI:BC9CC5* -+ ID_OUI_FROM_DATABASE=Beijing Huafei Technology Co., Ltd. -+ - OUI:BC9DA5* - ID_OUI_FROM_DATABASE=DASCOM Europe GmbH - -@@ -66511,6 +66709,9 @@ OUI:C0EAE4* - OUI:C0F1C4* - ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. - -+OUI:C0F2FB* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:C0F79D* - ID_OUI_FROM_DATABASE=Powercode - -@@ -66613,6 +66814,9 @@ OUI:C43C3C* - OUI:C43DC7* - ID_OUI_FROM_DATABASE=NETGEAR - -+OUI:C44202* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:C4438F* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -66634,6 +66838,9 @@ OUI:C44AD0* - OUI:C44B44* - ID_OUI_FROM_DATABASE=Omniprint Inc. - -+OUI:C44BD1* -+ ID_OUI_FROM_DATABASE=Wallys Communications Teachnologies Co.,Ltd. -+ - OUI:C44E1F* - ID_OUI_FROM_DATABASE=BlueN - -@@ -66835,6 +67042,9 @@ OUI:C4F57C* - OUI:C4FCE4* - ID_OUI_FROM_DATABASE=DishTV NZ Ltd - -+OUI:C80210* -+ ID_OUI_FROM_DATABASE=LG Innotek -+ - OUI:C80258* - ID_OUI_FROM_DATABASE=ITW GSE ApS - -@@ -67363,6 +67573,9 @@ OUI:CC9F35* - OUI:CCA0E5* - ID_OUI_FROM_DATABASE=DZG Metering GmbH - -+OUI:CCA223* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:CCA374* - ID_OUI_FROM_DATABASE=Guangdong Guanglian Electronic Technology Co.Ltd - -@@ -67498,6 +67711,9 @@ OUI:CCFE3C* - OUI:D00790* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:D00AAB* -+ ID_OUI_FROM_DATABASE=Yokogawa Digital Computer Corporation -+ - OUI:D00EA4* - ID_OUI_FROM_DATABASE=Porsche Cars North America - -@@ -67576,6 +67792,9 @@ OUI:D05875* - OUI:D059C3* - ID_OUI_FROM_DATABASE=CeraMicro Technology Corporation - -+OUI:D059E4* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:D05A0F* - ID_OUI_FROM_DATABASE=I-BT DIGITAL CO.,LTD - -@@ -68248,6 +68467,9 @@ OUI:D86595* - OUI:D866C6* - ID_OUI_FROM_DATABASE=Shenzhen Daystar Technology Co.,ltd - -+OUI:D866EE* -+ ID_OUI_FROM_DATABASE=BOXIN COMMUNICATION CO.,LTD. -+ - OUI:D867D9* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -68542,6 +68764,9 @@ OUI:DC49C9* - OUI:DC4EDE* - ID_OUI_FROM_DATABASE=SHINYEI TECHNOLOGY CO., LTD. - -+OUI:DC537C* -+ ID_OUI_FROM_DATABASE=Compal Broadband Networks, Inc. -+ - OUI:DC5726* - ID_OUI_FROM_DATABASE=Power-One - -@@ -69112,6 +69337,9 @@ OUI:E45614* - OUI:E457A8* - ID_OUI_FROM_DATABASE=Stuart Manufacturing, Inc. - -+OUI:E45D52* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:E46449* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -69298,6 +69526,9 @@ OUI:E81132* - OUI:E81324* - ID_OUI_FROM_DATABASE=GuangZhou Bonsoninfo System CO.,LTD - -+OUI:E8150E* -+ ID_OUI_FROM_DATABASE=Nokia Corporation -+ - OUI:E817FC* - ID_OUI_FROM_DATABASE=NIFTY Corporation - -@@ -69373,6 +69604,9 @@ OUI:E85B5B* - OUI:E85BF0* - ID_OUI_FROM_DATABASE=Imaging Diagnostics - -+OUI:E85D6B* -+ ID_OUI_FROM_DATABASE=Luminate Wireless -+ - OUI:E85E53* - ID_OUI_FROM_DATABASE=Infratec Datentechnik GmbH - -@@ -69409,6 +69643,9 @@ OUI:E878A1* - OUI:E87AF3* - ID_OUI_FROM_DATABASE=S5 Tech S.r.l. - -+OUI:E8802E* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:E880D8* - ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. - -@@ -69719,7 +69956,7 @@ OUI:EC9B5B* - ID_OUI_FROM_DATABASE=Nokia Corporation - - OUI:EC9ECD* -- ID_OUI_FROM_DATABASE=Emerson Network Power and Embedded Computing -+ ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - - OUI:ECA29B* - ID_OUI_FROM_DATABASE=Kemppi Oy -@@ -69745,6 +69982,9 @@ OUI:ECC38A* - OUI:ECC882* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:ECCB30* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:ECCD6D* - ID_OUI_FROM_DATABASE=Allied Telesis, Inc. - -@@ -69763,6 +70003,9 @@ OUI:ECD925* - OUI:ECD950* - ID_OUI_FROM_DATABASE=IRT SA - -+OUI:ECD9D1* -+ ID_OUI_FROM_DATABASE=Shenzhen TG-NET Botone Technology Co.,Ltd. -+ - OUI:ECDE3D* - ID_OUI_FROM_DATABASE=Lamprey Networks, Inc. - -@@ -70144,6 +70387,12 @@ OUI:F406A5* - OUI:F40B93* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:F40E11* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ -+OUI:F40F1B* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F40F9B* - ID_OUI_FROM_DATABASE=WAVELINK - -@@ -70165,6 +70414,9 @@ OUI:F41FC2* - OUI:F42012* - ID_OUI_FROM_DATABASE=Cuciniale GmbH - -+OUI:F42833* -+ ID_OUI_FROM_DATABASE=MMPC Inc. -+ - OUI:F42896* - ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA - -@@ -70294,6 +70546,9 @@ OUI:F499AC* - OUI:F49F54* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:F49FF3* -+ ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd -+ - OUI:F4A294* - ID_OUI_FROM_DATABASE=EAGLE WORLD DEVELOPMENT CO., LIMITED - -@@ -70351,6 +70606,9 @@ OUI:F4CE46* - OUI:F4CFE2* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:F4D032* -+ ID_OUI_FROM_DATABASE=Yunnan Ideal Information&Technology.,Ltd -+ - OUI:F4D261* - ID_OUI_FROM_DATABASE=SEMOCON Co., Ltd - -@@ -70390,12 +70648,18 @@ OUI:F4F5A5* - OUI:F4F5E8* - ID_OUI_FROM_DATABASE=Google - -+OUI:F4F646* -+ ID_OUI_FROM_DATABASE=Dediprog Technology Co. Ltd. -+ - OUI:F4F951* - ID_OUI_FROM_DATABASE=Apple - - OUI:F4FC32* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:F4FD2B* -+ ID_OUI_FROM_DATABASE=ZOYI Company -+ - OUI:F80113* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -70798,6 +71062,9 @@ OUI:FC1607* - OUI:FC1794* - ID_OUI_FROM_DATABASE=InterCreative Co., Ltd - -+OUI:FC1910* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:FC19D0* - ID_OUI_FROM_DATABASE=Cloud Vision Networks Technology Co.,Ltd. - -@@ -70906,6 +71173,9 @@ OUI:FC7516* - OUI:FC75E6* - ID_OUI_FROM_DATABASE=Handreamnet - -+OUI:FC790B* -+ ID_OUI_FROM_DATABASE=Hitachi High Technologies America, Inc. -+ - OUI:FC7CE7* - ID_OUI_FROM_DATABASE=FCI USA LLC - -@@ -70948,6 +71218,9 @@ OUI:FCA841* - OUI:FCA9B0* - ID_OUI_FROM_DATABASE=MIARTECH (SHANGHAI),INC. - -+OUI:FCAA14* -+ ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. -+ - OUI:FCAD0F* - ID_OUI_FROM_DATABASE=QTS NETWORKS - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 14637d3..2957774 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -1673,6 +1673,9 @@ pci:v00001002d00001306* - pci:v00001002d00001307* - ID_MODEL_FROM_DATABASE=Kaveri - -+pci:v00001002d00001308* -+ ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller -+ - pci:v00001002d00001309* - ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] - -@@ -4268,6 +4271,9 @@ pci:v00001002d00006611sv00001B0Asd000090D3* - pci:v00001002d00006613* - ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] - -+pci:v00001002d00006613sv00001682sd00007240* -+ ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240] (R7 240 2048 MB) -+ - pci:v00001002d00006620* - ID_MODEL_FROM_DATABASE=Mars - -@@ -6024,31 +6030,31 @@ pci:v00001002d00006819sv0000174Bsd0000E221* - ID_MODEL_FROM_DATABASE=Pitcairn PRO [Radeon HD 7850] (Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP) - - pci:v00001002d00006820* -- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] - - pci:v00001002d00006820sv0000103Csd00001851* -- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon HD 7750M) -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon HD 7750M) - - pci:v00001002d00006820sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M] (Radeon R9 M275) -+ ID_MODEL_FROM_DATABASE=Venus XTX [Radeon HD 8890M / R9 M275X] (Radeon R9 M275) - - pci:v00001002d00006821* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] - - pci:v00001002d00006821sv00001002sd0000031E* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro SX4000) -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro SX4000) - - pci:v00001002d00006821sv00001028sd000005CC* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) - - pci:v00001002d00006821sv00001028sd000015CC* -- ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M] (FirePro M5100) -+ ID_MODEL_FROM_DATABASE=Venus XT [Radeon HD 8870M / R9 M270X] (FirePro M5100) - - pci:v00001002d00006822* - ID_MODEL_FROM_DATABASE=Venus PRO [Radeon E8860] - - pci:v00001002d00006823* -- ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M] -+ ID_MODEL_FROM_DATABASE=Venus PRO [Radeon HD 8850M / R9 M265X] - - pci:v00001002d00006825* - ID_MODEL_FROM_DATABASE=Heathrow XT [Radeon HD 7870M] -@@ -7770,64 +7776,73 @@ pci:v00001002d000068F9sv000017AFsd00003014* - ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 5000/6000/7350/8350 Series] (Radeon HD 6350) - - pci:v00001002d000068FA* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] - - pci:v00001002d000068FAsv00001019sd00000019* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000021* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000022* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001019sd00000026* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000103Csd00002ADF* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) - - pci:v00001002d000068FAsv0000103Csd00002AE8* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350A) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350A) - - pci:v00001002d000068FAsv00001043sd00008350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) - - pci:v00001002d000068FAsv00001462sd00002128* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002184* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002186* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd00002495* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001462sd0000B490* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv00001642sd00003985* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) -+ -+pci:v00001002d000068FAsv0000174Bsd00003510* -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) -+ -+pci:v00001002d000068FAsv0000174Bsd00003521* -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) -+ -+pci:v00001002d000068FAsv0000174Bsd00003522* -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon R5 220) - - pci:v00001002d000068FAsv0000174Bsd00007350* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd00008153* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 8350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 8350) - - pci:v00001002d000068FAsv0000174Bsd0000E127* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E153* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv0000174Bsd0000E180* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FAsv000017AFsd00003015* -- ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350] (Radeon HD 7350) -+ ID_MODEL_FROM_DATABASE=Cedar [Radeon HD 7350/8350 / R5 220] (Radeon HD 7350) - - pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE -@@ -8886,7 +8901,7 @@ pci:v00001002d0000980A* - ID_MODEL_FROM_DATABASE=Wrestler [Radeon HD 7290] - - pci:v00001002d00009830* -- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400] -+ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400 / R3 Series] - - pci:v00001002d00009831* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8400E] -@@ -8904,13 +8919,13 @@ pci:v00001002d00009835* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8310E] - - pci:v00001002d00009836* -- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280] -+ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280 / R3 Series] - - pci:v00001002d00009837* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8280E] - - pci:v00001002d00009838* -- ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240] -+ ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8240 / R3 Series] - - pci:v00001002d00009839* - ID_MODEL_FROM_DATABASE=Kabini [Radeon HD 8180] -@@ -10724,6 +10739,33 @@ pci:v00001022d00001418* - pci:v00001022d00001419* - ID_MODEL_FROM_DATABASE=Family 15h (Models 10h-1fh) I/O Memory Management Unit - -+pci:v00001022d0000141A* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 0 -+ -+pci:v00001022d0000141B* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 1 -+ -+pci:v00001022d0000141C* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 2 -+ -+pci:v00001022d0000141D* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 3 -+ -+pci:v00001022d0000141E* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 4 -+ -+pci:v00001022d0000141F* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Function 5 -+ -+pci:v00001022d00001422* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Complex -+ -+pci:v00001022d00001423* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) I/O Memory Management Unit -+ -+pci:v00001022d00001426* -+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Port -+ - pci:v00001022d00001439* - ID_MODEL_FROM_DATABASE=Family 16h Processor Functions 5:1 - -@@ -17621,6 +17663,9 @@ pci:v00001093d000071BC* - pci:v00001093d000071D0* - ID_MODEL_FROM_DATABASE=PXI-6143 - -+pci:v00001093d000071DC* -+ ID_MODEL_FROM_DATABASE=PCI-1588 -+ - pci:v00001093d00007260* - ID_MODEL_FROM_DATABASE=PXI-5142 - -@@ -17639,6 +17684,9 @@ pci:v00001093d000072AA* - pci:v00001093d000072AB* - ID_MODEL_FROM_DATABASE=PCI-5105 - -+pci:v00001093d000072B8* -+ ID_MODEL_FROM_DATABASE=PXI-6682 -+ - pci:v00001093d0000730F* - ID_MODEL_FROM_DATABASE=PXI-5922EX - -@@ -17708,6 +17756,9 @@ pci:v00001093d000073F0* - pci:v00001093d000073F1* - ID_MODEL_FROM_DATABASE=PCI-5153 - -+pci:v00001093d00007405* -+ ID_MODEL_FROM_DATABASE=PXIe-6674T -+ - pci:v00001093d0000745E* - ID_MODEL_FROM_DATABASE=PXI-5153EX - -@@ -17726,6 +17777,12 @@ pci:v00001093d00007539* - pci:v00001093d0000753A* - ID_MODEL_FROM_DATABASE=NI 9159 - -+pci:v00001093d000075E5* -+ ID_MODEL_FROM_DATABASE=PXI-6683 -+ -+pci:v00001093d000075E6* -+ ID_MODEL_FROM_DATABASE=PXI-6683H -+ - pci:v00001093d00007626* - ID_MODEL_FROM_DATABASE=NI 9154 - -@@ -28100,6 +28157,9 @@ pci:v000010EC* - pci:v000010ECd00000139* - ID_MODEL_FROM_DATABASE=RTL-8139/8139C/8139C+ Ethernet Controller - -+pci:v000010ECd00005208* -+ ID_MODEL_FROM_DATABASE=RTS5208 PCI Express Card Reader -+ - pci:v000010ECd00005209* - ID_MODEL_FROM_DATABASE=RTS5209 PCI Express Card Reader - -@@ -28128,7 +28188,7 @@ pci:v000010ECd00005249sv0000103Csd00001909* - ID_MODEL_FROM_DATABASE=RTS5249 PCI Express Card Reader (ZBook 15) - - pci:v000010ECd00005288* -- ID_MODEL_FROM_DATABASE=Barossa PCI Express Card Reader -+ ID_MODEL_FROM_DATABASE=RTS5288 PCI Express Card Reader - - pci:v000010ECd00008029* - ID_MODEL_FROM_DATABASE=RTL-8029(AS) -@@ -32153,6 +32213,9 @@ pci:v00001131d00007160* - pci:v00001131d00007160sv00001458sd00009009* - ID_MODEL_FROM_DATABASE=SAA7160 (E8000 DVB-T/Analog TV/FM tuner) - -+pci:v00001131d00007160sv00001461sd00001455* -+ ID_MODEL_FROM_DATABASE=SAA7160 (AVerTV Hybrid Speedy PCI-E (H788)) -+ - pci:v00001131d00007162* - ID_MODEL_FROM_DATABASE=SAA7162 - -@@ -34691,6 +34754,9 @@ pci:v000011ABd00002A42* - pci:v000011ABd00002A43* - ID_MODEL_FROM_DATABASE=88W8366 [TopDog] 802.11n Wireless - -+pci:v000011ABd00002A55* -+ ID_MODEL_FROM_DATABASE=88W8864 [Avastar] 802.11ac Wireless -+ - pci:v000011ABd00002B36* - ID_MODEL_FROM_DATABASE=88W8764 [Avastar] 802.11n Wireless - -@@ -36536,6 +36602,9 @@ pci:v00001217d00008120* - pci:v00001217d00008130* - ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller - -+pci:v00001217d00008221* -+ ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller -+ - pci:v00001217d00008320* - ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller - -@@ -43278,7 +43347,13 @@ pci:v00001469* - ID_VENDOR_FROM_DATABASE=Cleveland Motion Controls - - pci:v0000146A* -- ID_VENDOR_FROM_DATABASE=IFR -+ ID_VENDOR_FROM_DATABASE=Aeroflex -+ -+pci:v0000146Ad00003010* -+ ID_MODEL_FROM_DATABASE=3010 RF Synthesizer -+ -+pci:v0000146Ad00003A11* -+ ID_MODEL_FROM_DATABASE=3011A PXI RF Synthesizer - - pci:v0000146B* - ID_VENDOR_FROM_DATABASE=Parascan Technologies Ltd -@@ -52409,6 +52484,9 @@ pci:v00001AB8d00004006* - pci:v00001AB9* - ID_VENDOR_FROM_DATABASE=Espia Srl - -+pci:v00001AC8* -+ ID_VENDOR_FROM_DATABASE=Aeroflex Gaisler -+ - pci:v00001ACC* - ID_VENDOR_FROM_DATABASE=Point of View BV - -@@ -52724,9 +52802,15 @@ pci:v00001B4Bd000091A0* - pci:v00001B4Bd000091A4* - ID_MODEL_FROM_DATABASE=88SE912x IDE Controller - -+pci:v00001B4Bd00009220* -+ ID_MODEL_FROM_DATABASE=88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller -+ - pci:v00001B4Bd00009230* - ID_MODEL_FROM_DATABASE=88SE9230 PCIe SATA 6Gb/s Controller - -+pci:v00001B4Bd00009235* -+ ID_MODEL_FROM_DATABASE=88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller -+ - pci:v00001B4Bd00009445* - ID_MODEL_FROM_DATABASE=88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller - -@@ -54693,7 +54777,7 @@ pci:v00006688* - ID_VENDOR_FROM_DATABASE=Zycoo Co., Ltd - - pci:v00006688d00001200* -- ID_MODEL_FROM_DATABASE=CooVOX TDM Analog Module -+ ID_MODEL_FROM_DATABASE=CooVox TDM Analog Module - - pci:v00006688d00001400* - ID_MODEL_FROM_DATABASE=CooVOX TDM GSM Module -@@ -59066,8 +59150,11 @@ pci:v00008086d00001522sv00008086sd000000A4* - pci:v00008086d00001523* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection - -+pci:v00008086d00001523sv00001028sd00000060* -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 2P I350 LOM) -+ - pci:v00008086d00001523sv00001028sd00001F9B* -- ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350 bNDC) -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Gigabit 4P I350-t bNDC) - - pci:v00008086d00001523sv0000103Csd00001784* - ID_MODEL_FROM_DATABASE=I350 Gigabit Backplane Connection (Ethernet 1Gb 2-port 361FLB Adapter) -@@ -59183,9 +59270,6 @@ pci:v00008086d00001536* - pci:v00008086d00001537* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - --pci:v00008086d00001538* -- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -- - pci:v00008086d00001539* - ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection - -@@ -59270,6 +59354,12 @@ pci:v00008086d0000155Dsv00008086sd00000002* - pci:v00008086d00001560* - ID_MODEL_FROM_DATABASE=Ethernet Controller X540 - -+pci:v00008086d0000156F* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-LM -+ -+pci:v00008086d00001570* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V -+ - pci:v00008086d00001571* - ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function - -@@ -59316,16 +59406,16 @@ pci:v00008086d00001581sv00001028sd00001F98* - ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) - - pci:v00008086d00001583* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - - pci:v00008086d00001583sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - - pci:v00008086d00001583sv00008086sd00000003* -- ID_MODEL_FROM_DATABASE=Ethernet Controller LX710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q2) - - pci:v00008086d00001584* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 014c628..52586bc 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -21,7 +21,7 @@ usb:v0004* - ID_VENDOR_FROM_DATABASE=Nebraska Furniture Mart - - usb:v0011* -- ID_VENDOR_FROM_DATABASE=Unknown manufacturer -+ ID_VENDOR_FROM_DATABASE=Unknown - - usb:v0011p7788* - ID_MODEL_FROM_DATABASE=Flash mass storage drive -@@ -275,6 +275,9 @@ usb:v03EBp2110* - usb:v03EBp2122* - ID_MODEL_FROM_DATABASE=XMEGA-A1 Explained evaluation kit - -+usb:v03EBp2141* -+ ID_MODEL_FROM_DATABASE=ICE debugger -+ - usb:v03EBp2310* - ID_MODEL_FROM_DATABASE=EVK11xx evaluation board - -@@ -455,6 +458,9 @@ usb:v03F0p0121* - usb:v03F0p0122* - ID_MODEL_FROM_DATABASE=HID Internet Keyboard - -+usb:v03F0p0139* -+ ID_MODEL_FROM_DATABASE=Barcode Scanner 4430 -+ - usb:v03F0p0201* - ID_MODEL_FROM_DATABASE=ScanJet 6200c - -@@ -782,6 +788,9 @@ usb:v03F0p1517* - usb:v03F0p1524* - ID_MODEL_FROM_DATABASE=Smart Card Keyboard - KR - -+usb:v03F0p1539* -+ ID_MODEL_FROM_DATABASE=Mini Magnetic Stripe Reader -+ - usb:v03F0p1602* - ID_MODEL_FROM_DATABASE=PhotoSmart 330 series - -@@ -893,6 +902,9 @@ usb:v03F0p1D02* - usb:v03F0p1D17* - ID_MODEL_FROM_DATABASE=LaserJet 1320 - -+usb:v03F0p1D24* -+ ID_MODEL_FROM_DATABASE=Barcode scanner -+ - usb:v03F0p1E02* - ID_MODEL_FROM_DATABASE=PhotoSmart A320 Printer series - -@@ -935,6 +947,9 @@ usb:v03F0p2012* - usb:v03F0p201D* - ID_MODEL_FROM_DATABASE=un2400 Gobi Wireless Modem (QDL mode) - -+usb:v03F0p2039* -+ ID_MODEL_FROM_DATABASE=Cashdrawer -+ - usb:v03F0p2102* - ID_MODEL_FROM_DATABASE=PhotoSmart 7345 - -@@ -1008,7 +1023,7 @@ usb:v03F0p2505* - ID_MODEL_FROM_DATABASE=ScanJet 3770 - - usb:v03F0p2512* -- ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 -+ ID_MODEL_FROM_DATABASE=OfficeJet Pro L7300 / Compaq LA2405 series monitor - - usb:v03F0p2514* - ID_MODEL_FROM_DATABASE=4-port hub -@@ -1046,6 +1061,9 @@ usb:v03F0p2704* - usb:v03F0p2717* - ID_MODEL_FROM_DATABASE=Color LaserJet 2830 - -+usb:v03F0p2724* -+ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader IDRA-334133-HP -+ - usb:v03F0p2811* - ID_MODEL_FROM_DATABASE=PSC-2100 - -@@ -1424,6 +1442,9 @@ usb:v03F0p5817* - usb:v03F0p5911* - ID_MODEL_FROM_DATABASE=PhotoSmart C6180 - -+usb:v03F0p5912* -+ ID_MODEL_FROM_DATABASE=Officejet Pro 8600 -+ - usb:v03F0p5A11* - ID_MODEL_FROM_DATABASE=PhotoSmart C7100 series - -@@ -1532,6 +1553,9 @@ usb:v03F0p6B02* - usb:v03F0p6B11* - ID_MODEL_FROM_DATABASE=Photosmart C4500 series - -+usb:v03F0p6C11* -+ ID_MODEL_FROM_DATABASE=Photosmart C4480 -+ - usb:v03F0p6C17* - ID_MODEL_FROM_DATABASE=Color LaserJet 4610 - -@@ -1913,6 +1937,9 @@ usb:v03FC* - usb:v03FD* - ID_VENDOR_FROM_DATABASE=Xilinx, Inc. - -+usb:v03FDp0008* -+ ID_MODEL_FROM_DATABASE=Platform Cable USB II -+ - usb:v03FE* - ID_VENDOR_FROM_DATABASE=Farallon Comunications - -@@ -2012,6 +2039,9 @@ usb:v0403p0232* - usb:v0403p1060* - ID_MODEL_FROM_DATABASE=JTAG adapter - -+usb:v0403p1234* -+ ID_MODEL_FROM_DATABASE=IronLogic RFID Adapter [Z-2 USB] -+ - usb:v0403p6001* - ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC - -@@ -2084,12 +2114,18 @@ usb:v0403p8B2B* - usb:v0403p8B2C* - ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 - -+usb:v0403p9132* -+ ID_MODEL_FROM_DATABASE=LCD and Temperature Interface -+ - usb:v0403p9133* - ID_MODEL_FROM_DATABASE=CallerID - - usb:v0403p9135* - ID_MODEL_FROM_DATABASE=Rotary Pub alarm - -+usb:v0403p9136* -+ ID_MODEL_FROM_DATABASE=Pulsecounter -+ - usb:v0403p9E90* - ID_MODEL_FROM_DATABASE=Marvell OpenRD Base/Client - -@@ -2291,6 +2327,9 @@ usb:v0403pEF10* - usb:v0403pF070* - ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] - -+usb:v0403pF0E9* -+ ID_MODEL_FROM_DATABASE=Tagsys L-P101 -+ - usb:v0403pF1A0* - ID_MODEL_FROM_DATABASE=Asix PRESTO Programmer - -@@ -2999,6 +3038,9 @@ usb:v040Ap4021* - usb:v040Ap4022* - ID_MODEL_FROM_DATABASE=1400 Digital Photo Printer - -+usb:v040Ap402B* -+ ID_MODEL_FROM_DATABASE=Photo Printer 6850 -+ - usb:v040Ap402E* - ID_MODEL_FROM_DATABASE=605 Photo Printer - -@@ -4379,6 +4421,9 @@ usb:v0424p7500* - usb:v0424p9512* - ID_MODEL_FROM_DATABASE=SMC9512/9514 USB Hub - -+usb:v0424p9514* -+ ID_MODEL_FROM_DATABASE=SMC9514 Hub -+ - usb:v0424pA700* - ID_MODEL_FROM_DATABASE=2 Port Hub - -@@ -5219,6 +5264,9 @@ usb:v0451p2046* - usb:v0451p2077* - ID_MODEL_FROM_DATABASE=TUSB2077 Hub - -+usb:v0451p2F90* -+ ID_MODEL_FROM_DATABASE=SM-USB-DIG -+ - usb:v0451p3410* - ID_MODEL_FROM_DATABASE=TUSB3410 Microcontroller - -@@ -5534,6 +5582,9 @@ usb:v0458p5003* - usb:v0458p5004* - ID_MODEL_FROM_DATABASE=G-pen Tablet - -+usb:v0458p505E* -+ ID_MODEL_FROM_DATABASE=Genius iSlim 330 -+ - usb:v0458p6001* - ID_MODEL_FROM_DATABASE=GF3000F Ethernet Adapter - -@@ -5600,6 +5651,24 @@ usb:v0458p705A* - usb:v0458p705C* - ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF - -+usb:v0458p7061* -+ ID_MODEL_FROM_DATABASE=Genius iLook 1321 V2 -+ -+usb:v0458p7066* -+ ID_MODEL_FROM_DATABASE=Acer Crystal Eye Webcam -+ -+usb:v0458p7067* -+ ID_MODEL_FROM_DATABASE=Genius iSlim 1300AF V2 -+ -+usb:v0458p7068* -+ ID_MODEL_FROM_DATABASE=Genius eFace 1325R -+ -+usb:v0458p706D* -+ ID_MODEL_FROM_DATABASE=Genius iSlim 2000AF V2 -+ -+usb:v0458p7076* -+ ID_MODEL_FROM_DATABASE=Genius FaceCam 312 -+ - usb:v0458p7079* - ID_MODEL_FROM_DATABASE=FaceCam 2025R - -@@ -5609,6 +5678,12 @@ usb:v0458p707F* - usb:v0458p7088* - ID_MODEL_FROM_DATABASE=WideCam 1050 - -+usb:v0458p7089* -+ ID_MODEL_FROM_DATABASE=Genius FaceCam 320 -+ -+usb:v0458p708C* -+ ID_MODEL_FROM_DATABASE=Genius WideCam F100 -+ - usb:v0459* - ID_VENDOR_FROM_DATABASE=Adobe Systems, Inc. - -@@ -6017,6 +6092,15 @@ usb:v045Ep02B0* - usb:v045Ep02B6* - ID_MODEL_FROM_DATABASE=Xbox 360 / Bluetooth Wireless Headset - -+usb:v045Ep02BE* -+ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Audio -+ -+usb:v045Ep02BF* -+ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Camera -+ -+usb:v045Ep02C2* -+ ID_MODEL_FROM_DATABASE=Kinect for Windows NUI Motor -+ - usb:v045Ep0400* - ID_MODEL_FROM_DATABASE=Windows Powered Pocket PC 2002 - -@@ -6866,6 +6950,9 @@ usb:v046Dp0830* - usb:v046Dp0840* - ID_MODEL_FROM_DATABASE=QuickCam Express - -+usb:v046Dp0843* -+ ID_MODEL_FROM_DATABASE=Webcam C930e -+ - usb:v046Dp0850* - ID_MODEL_FROM_DATABASE=QuickCam Web - -@@ -7169,6 +7256,12 @@ usb:v046Dp0A1F* - usb:v046Dp0A29* - ID_MODEL_FROM_DATABASE=H600 [Wireless Headset] - -+usb:v046Dp0A38* -+ ID_MODEL_FROM_DATABASE=Headset H340 -+ -+usb:v046Dp0A4D* -+ ID_MODEL_FROM_DATABASE=G430 Surround Sound Gaming Headset -+ - usb:v046Dp0B02* - ID_MODEL_FROM_DATABASE=C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode) - -@@ -7650,7 +7743,7 @@ usb:v046DpC31B* - ID_MODEL_FROM_DATABASE=Compact Keyboard K300 - - usb:v046DpC31C* -- ID_MODEL_FROM_DATABASE=Keyboard K120 for Business -+ ID_MODEL_FROM_DATABASE=Keyboard K120 - - usb:v046DpC31D* - ID_MODEL_FROM_DATABASE=Media Keyboard K200 -@@ -7751,6 +7844,9 @@ usb:v046DpC529* - usb:v046DpC52B* - ID_MODEL_FROM_DATABASE=Unifying Receiver - -+usb:v046DpC52D* -+ ID_MODEL_FROM_DATABASE=R700 Remote Presenter receiver -+ - usb:v046DpC52E* - ID_MODEL_FROM_DATABASE=MK260 Wireless Combo Receiver - -@@ -7760,6 +7856,18 @@ usb:v046DpC52F* - usb:v046DpC532* - ID_MODEL_FROM_DATABASE=Unifying Receiver - -+usb:v046DpC603* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT -+ -+usb:v046DpC605* -+ ID_MODEL_FROM_DATABASE=3Dconnexion CADman -+ -+usb:v046DpC606* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Classic -+ -+usb:v046DpC621* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Spaceball 5000 -+ - usb:v046DpC623* - ID_MODEL_FROM_DATABASE=3Dconnexion Space Traveller 3D Mouse - -@@ -7772,9 +7880,18 @@ usb:v046DpC626* - usb:v046DpC627* - ID_MODEL_FROM_DATABASE=3Dconnexion Space Explorer 3D Mouse - -+usb:v046DpC628* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Space Navigator for Notebooks -+ - usb:v046DpC629* - ID_MODEL_FROM_DATABASE=3Dconnexion SpacePilot Pro 3D Mouse - -+usb:v046DpC62B* -+ ID_MODEL_FROM_DATABASE=3Dconnexion Space Mouse Pro -+ -+usb:v046DpC640* -+ ID_MODEL_FROM_DATABASE=NuLOOQ navigator -+ - usb:v046DpC702* - ID_MODEL_FROM_DATABASE=Cordless Presenter - -@@ -8609,6 +8726,9 @@ usb:v0480p0011* - usb:v0480p0014* - ID_MODEL_FROM_DATABASE=InTouch Module - -+usb:v0480p0100* -+ ID_MODEL_FROM_DATABASE=Stor.E Slim USB 3.0 -+ - usb:v0480pA006* - ID_MODEL_FROM_DATABASE=External Disk 1.5TB - -@@ -10043,6 +10163,9 @@ usb:v04A9p2225* - usb:v04A9p2228* - ID_MODEL_FROM_DATABASE=CanoScan 4400F - -+usb:v04A9p2229* -+ ID_MODEL_FROM_DATABASE=CanoScan 8600F -+ - usb:v04A9p2602* - ID_MODEL_FROM_DATABASE=MultiPASS C555 - -@@ -10988,6 +11111,9 @@ usb:v04A9p3233* - usb:v04A9p3234* - ID_MODEL_FROM_DATABASE=PowerShot SX150 IS - -+usb:v04A9p3235* -+ ID_MODEL_FROM_DATABASE=PowerShot ELPH 510 HS / IXUS 1100 HS -+ - usb:v04A9p3236* - ID_MODEL_FROM_DATABASE=PowerShot S100 - -@@ -11057,12 +11183,18 @@ usb:v04A9p325B* - usb:v04A9p325C* - ID_MODEL_FROM_DATABASE=PowerShot SX500 IS - -+usb:v04A9p325E* -+ ID_MODEL_FROM_DATABASE=PowerShot N -+ - usb:v04A9p325F* - ID_MODEL_FROM_DATABASE=PowerShot SX280 HS - - usb:v04A9p3260* - ID_MODEL_FROM_DATABASE=PowerShot SX270 HS - -+usb:v04A9p3261* -+ ID_MODEL_FROM_DATABASE=PowerShot A3500 IS -+ - usb:v04A9p3262* - ID_MODEL_FROM_DATABASE=PowerShot A2600 - -@@ -11087,6 +11219,15 @@ usb:v04A9p3277* - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -+usb:v04A9p3288* -+ ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 -+ -+usb:v04A9p3289* -+ ID_MODEL_FROM_DATABASE=PowerShot ELPH 340 HS / IXUS 265 HS -+ -+usb:v04A9p328A* -+ ID_MODEL_FROM_DATABASE=PowerShot ELPH 150 IS / IXUS 155 -+ - usb:v04AA* - ID_VENDOR_FROM_DATABASE=DaeWoo Telecom, Ltd - -@@ -11471,6 +11612,9 @@ usb:v04B4p2050* - usb:v04B4p2830* - ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) - -+usb:v04B4p4235* -+ ID_MODEL_FROM_DATABASE=Monitor 02 Driver -+ - usb:v04B4p4381* - ID_MODEL_FROM_DATABASE=SCAPS USC-1 Scanner Controller - -@@ -12407,6 +12551,9 @@ usb:v04C5p10AE* - usb:v04C5p10AF* - ID_MODEL_FROM_DATABASE=fi-4220C2 - -+usb:v04C5p10C7* -+ ID_MODEL_FROM_DATABASE=fi-60f scanner -+ - usb:v04C5p10E0* - ID_MODEL_FROM_DATABASE=fi-5120c Scanner - -@@ -12981,7 +13128,7 @@ usb:v04D9p2519* - ID_MODEL_FROM_DATABASE=Shenzhen LogoTech 2.4GHz receiver - - usb:v04D9p2832* -- ID_MODEL_FROM_DATABASE=1channel Telephone line recorder -+ ID_MODEL_FROM_DATABASE=HT82A832R Audio MCU - - usb:v04D9p2834* - ID_MODEL_FROM_DATABASE=HT82A834R Audio MCU -@@ -13070,6 +13217,9 @@ usb:v04DAp2374* - usb:v04DAp2451* - ID_MODEL_FROM_DATABASE=HDC-SD9 - -+usb:v04DAp245B* -+ ID_MODEL_FROM_DATABASE=HC-X920K (3MOS Full HD video camcorder) -+ - usb:v04DAp2497* - ID_MODEL_FROM_DATABASE=HDC-TM700 - -@@ -13535,6 +13685,9 @@ usb:v04E8p1006* - usb:v04E8p130C* - ID_MODEL_FROM_DATABASE=NX100 - -+usb:v04E8p1F05* -+ ID_MODEL_FROM_DATABASE=S2 Portable [JMicron] (500GB) -+ - usb:v04E8p1F06* - ID_MODEL_FROM_DATABASE=HX-MU064DA portable harddisk - -@@ -13670,6 +13823,9 @@ usb:v04E8p3310* - usb:v04E8p3315* - ID_MODEL_FROM_DATABASE=ML-2540 Series Laser Printer - -+usb:v04E8p331E* -+ ID_MODEL_FROM_DATABASE=M262x/M282x Xpress Series Laser Printer -+ - usb:v04E8p3409* - ID_MODEL_FROM_DATABASE=SCX-4216F Scanner - -@@ -13718,6 +13874,9 @@ usb:v04E8p3420* - usb:v04E8p3426* - ID_MODEL_FROM_DATABASE=SCX-4500 Laser Printer - -+usb:v04E8p342D* -+ ID_MODEL_FROM_DATABASE=SCX-4x28 Series -+ - usb:v04E8p344F* - ID_MODEL_FROM_DATABASE=SCX-3400 Series - -@@ -14058,7 +14217,7 @@ usb:v04E8p685B* - ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (mass storage mode) - - usb:v04E8p685C* -- ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] -+ ID_MODEL_FROM_DATABASE=GT-I9250 Phone [Galaxy Nexus] (Mass storage mode) - - usb:v04E8p685D* - ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II] (Download mode) -@@ -14067,7 +14226,10 @@ usb:v04E8p685E* - ID_MODEL_FROM_DATABASE=GT-I9100 / GT-C3350 Phones (USB Debugging mode) - - usb:v04E8p6860* -- ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] -+ ID_MODEL_FROM_DATABASE=GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1] , GT-I9500 [Galaxy S 4] -+ -+usb:v04E8p6863* -+ ID_MODEL_FROM_DATABASE=GT-I9500 [Galaxy S4] / GT-I9250 [Galaxy Nexus] (network tethering) - - usb:v04E8p6865* - ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (PTP mode) -@@ -14075,6 +14237,9 @@ usb:v04E8p6865* - usb:v04E8p6866* - ID_MODEL_FROM_DATABASE=GT-I9300 Phone [Galaxy S III] (debugging mode) - -+usb:v04E8p6868* -+ ID_MODEL_FROM_DATABASE=Escape Composite driver for Android Phones: Modem+Diagnostic+ADB -+ - usb:v04E8p6875* - ID_MODEL_FROM_DATABASE=GT-B3710 Standalone LTE device (Commercial) - -@@ -14342,6 +14507,12 @@ usb:v04F2pB057* - usb:v04F2pB059* - ID_MODEL_FROM_DATABASE=CKF7037 HP webcam - -+usb:v04F2pB064* -+ ID_MODEL_FROM_DATABASE=CNA7137 Integrated Webcam -+ -+usb:v04F2pB070* -+ ID_MODEL_FROM_DATABASE=Camera -+ - usb:v04F2pB071* - ID_MODEL_FROM_DATABASE=2.0M UVC Webcam / CNF7129 - -@@ -14411,6 +14582,9 @@ usb:v04F2pB2B0* - usb:v04F2pB2B9* - ID_MODEL_FROM_DATABASE=Lenovo Integrated Camera UVC - -+usb:v04F2pB2DA* -+ ID_MODEL_FROM_DATABASE=thinkpad t430s camera -+ - usb:v04F2pB2EA* - ID_MODEL_FROM_DATABASE=Integrated Camera [ThinkPad] - -@@ -14420,6 +14594,9 @@ usb:v04F2pB330* - usb:v04F2pB354* - ID_MODEL_FROM_DATABASE=UVC 1.00 device HD UVC WebCam - -+usb:v04F2pB394* -+ ID_MODEL_FROM_DATABASE=Integrated Camera -+ - usb:v04F3* - ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. - -@@ -15038,6 +15215,9 @@ usb:v04F9p01EB* - usb:v04F9p01F4* - ID_MODEL_FROM_DATABASE=MFC-5890CN - -+usb:v04F9p0217* -+ ID_MODEL_FROM_DATABASE=MFC-8480DN -+ - usb:v04F9p0223* - ID_MODEL_FROM_DATABASE=DCP-365CN - -@@ -15158,9 +15338,15 @@ usb:v04FCp5331* - usb:v04FCp5360* - ID_MODEL_FROM_DATABASE=Sunplus Generic Digital Camera - -+usb:v04FCp5563* -+ ID_MODEL_FROM_DATABASE=Digital Media Player MP3/WMA [The Sharper Image] -+ - usb:v04FCp5720* - ID_MODEL_FROM_DATABASE=Card Reader Driver - -+usb:v04FCp6333* -+ ID_MODEL_FROM_DATABASE=Siri A9 UVC chipset -+ - usb:v04FCp7333* - ID_MODEL_FROM_DATABASE=Finet Technology Palmpix DC-85 - -@@ -15239,6 +15425,18 @@ usb:v0502p3325* - usb:v0502p3341* - ID_MODEL_FROM_DATABASE=Iconia tablet A500 - -+usb:v0502p33C3* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 -+ -+usb:v0502p33C4* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode) -+ -+usb:v0502p33C7* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (USB tethering) -+ -+usb:v0502p33C8* -+ ID_MODEL_FROM_DATABASE=Liquid Gallant Duo E350 (debug mode, USB tethering) -+ - usb:v0502pD001* - ID_MODEL_FROM_DATABASE=Divio NW801/DVC-V6+ Digital Camera - -@@ -15446,6 +15644,9 @@ usb:v050Dp0416* - usb:v050Dp0551* - ID_MODEL_FROM_DATABASE=F6C550-AVR UPS - -+usb:v050Dp065A* -+ ID_MODEL_FROM_DATABASE=F8T065BF Mini Bluetooth 4.0 Adapter -+ - usb:v050Dp0706* - ID_MODEL_FROM_DATABASE=2-N-1 7-Port Hub (Lower half) - -@@ -15497,6 +15698,9 @@ usb:v050Dp2103* - usb:v050Dp21F1* - ID_MODEL_FROM_DATABASE=N300 WLAN N Adapter [ISY] - -+usb:v050Dp21F2* -+ ID_MODEL_FROM_DATABASE=RTL8192CU 802.11n WLAN Adapter [ISY IWL 4000] -+ - usb:v050Dp258A* - ID_MODEL_FROM_DATABASE=F5U258 Host to Host cable - -@@ -15728,6 +15932,9 @@ usb:v0525p1200* - usb:v0525p1265* - ID_MODEL_FROM_DATABASE=File-backed Storage Gadget - -+usb:v0525p3424* -+ ID_MODEL_FROM_DATABASE=Lumidigm Venus fingerprint sensor -+ - usb:v0525pA0F0* - ID_MODEL_FROM_DATABASE=Cambridge Electronic Devices Power1401 mk 2 - -@@ -16655,6 +16862,9 @@ usb:v054Cp035B* - usb:v054Cp035C* - ID_MODEL_FROM_DATABASE=NWZ-A726/A728/A729 - -+usb:v054Cp035F* -+ ID_MODEL_FROM_DATABASE=UP-DR200 Photo Printer -+ - usb:v054Cp0382* - ID_MODEL_FROM_DATABASE=Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1) - -@@ -16694,9 +16904,18 @@ usb:v054Cp0485* - usb:v054Cp04CB* - ID_MODEL_FROM_DATABASE=WALKMAN NWZ-E354 - -+usb:v054Cp0541* -+ ID_MODEL_FROM_DATABASE=DSC-HX100V [Cybershot Digital Still Camera] -+ -+usb:v054Cp0689* -+ ID_MODEL_FROM_DATABASE=Walkman NWZ-B173F -+ - usb:v054Cp06BB* - ID_MODEL_FROM_DATABASE=WALKMAN NWZ-F805 - -+usb:v054Cp088C* -+ ID_MODEL_FROM_DATABASE=Portable Headphone Amplifier -+ - usb:v054Cp1000* - ID_MODEL_FROM_DATABASE=Wireless Buzz! Receiver - -@@ -16721,6 +16940,12 @@ usb:v0550p0004* - usb:v0550p0005* - ID_MODEL_FROM_DATABASE=InkJet Color Printer - -+usb:v0550p000B* -+ ID_MODEL_FROM_DATABASE=Workcentre 24 -+ -+usb:v0550p014E* -+ ID_MODEL_FROM_DATABASE=CM215b Printer -+ - usb:v0551* - ID_VENDOR_FROM_DATABASE=CompuTrend Systems, Inc. - -@@ -17306,6 +17531,9 @@ usb:v056Ap0069* - usb:v056Ap0081* - ID_MODEL_FROM_DATABASE=Graphire Wireless 6x8 - -+usb:v056Ap0084* -+ ID_MODEL_FROM_DATABASE=Wireless adapter for Bamboo tablets -+ - usb:v056Ap0090* - ID_MODEL_FROM_DATABASE=TPC90 - -@@ -17372,6 +17600,9 @@ usb:v056Ap00D1* - usb:v056Ap00D3* - ID_MODEL_FROM_DATABASE=Bamboo Fun (CTH-661) - -+usb:v056Ap00D4* -+ ID_MODEL_FROM_DATABASE=Bamboo Pen (CTL-460) -+ - usb:v056Ap00D6* - ID_MODEL_FROM_DATABASE=Bamboo Pen & Touch (CTH-460) - -@@ -17390,6 +17621,12 @@ usb:v056Ap00F6* - usb:v056Ap00F8* - ID_MODEL_FROM_DATABASE=Cintiq 24HD touch (DTH-2400) tablet - -+usb:v056Ap0307* -+ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) tablet -+ -+usb:v056Ap0309* -+ ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) touchscreen -+ - usb:v056Ap0400* - ID_MODEL_FROM_DATABASE=PenPartner 4x5 - -@@ -18719,6 +18956,9 @@ usb:v0586p341E* - usb:v0586p341F* - ID_MODEL_FROM_DATABASE=NWD2205 802.11n Wireless N Adapter [Realtek RTL8192CU] - -+usb:v0586p3425* -+ ID_MODEL_FROM_DATABASE=NWD6505 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] -+ - usb:v0586p343E* - ID_MODEL_FROM_DATABASE=N220 802.11bgn Wireless Adapter - -@@ -18737,9 +18977,15 @@ usb:v058A* - usb:v058B* - ID_VENDOR_FROM_DATABASE=Infineon Technologies - -+usb:v058Bp0015* -+ ID_MODEL_FROM_DATABASE=Flash Loader utility -+ - usb:v058Bp001C* - ID_MODEL_FROM_DATABASE=Flash Drive - -+usb:v058Bp0041* -+ ID_MODEL_FROM_DATABASE=Flash Loader utility -+ - usb:v058C* - ID_VENDOR_FROM_DATABASE=In Focus Systems - -@@ -18855,7 +19101,7 @@ usb:v058Fp6366* - ID_MODEL_FROM_DATABASE=Multi Flash Reader - - usb:v058Fp6377* -- ID_MODEL_FROM_DATABASE=Multimedia Card Reader -+ ID_MODEL_FROM_DATABASE=AU6375 4-LUN card reader - - usb:v058Fp6386* - ID_MODEL_FROM_DATABASE=Memory Card -@@ -18926,12 +19172,18 @@ usb:v058Fp9510* - usb:v058Fp9520* - ID_MODEL_FROM_DATABASE=EMV Certified Smart Card Reader - -+usb:v058Fp9540* -+ ID_MODEL_FROM_DATABASE=AU9540 Smartcard Reader -+ - usb:v058Fp9720* - ID_MODEL_FROM_DATABASE=USB-Serial Adapter - - usb:v058FpA014* - ID_MODEL_FROM_DATABASE=Asus Integrated Webcam - -+usb:v058FpB002* -+ ID_MODEL_FROM_DATABASE=Acer Integrated Webcam -+ - usb:v0590* - ID_VENDOR_FROM_DATABASE=Omron Corp. - -@@ -18983,6 +19235,9 @@ usb:v0596p0002* - usb:v0596p0500* - ID_MODEL_FROM_DATABASE=PCT Multitouch HID Controller - -+usb:v0596p0543* -+ ID_MODEL_FROM_DATABASE=DELL XPS touchscreen -+ - usb:v0597* - ID_VENDOR_FROM_DATABASE=Trisignal Communications - -@@ -19055,6 +19310,9 @@ usb:v059Bp0061* - usb:v059Bp006D* - ID_MODEL_FROM_DATABASE=HipZip MP3 Player - -+usb:v059Bp0070* -+ ID_MODEL_FROM_DATABASE=eGo Portable Hard Drive -+ - usb:v059Bp007C* - ID_MODEL_FROM_DATABASE=Ultra Max USB/1394 - -@@ -19163,9 +19421,15 @@ usb:v059Fp0323* - usb:v059Fp0421* - ID_MODEL_FROM_DATABASE=Big Disk G465 - -+usb:v059Fp0525* -+ ID_MODEL_FROM_DATABASE=BigDisk Extreme 500 -+ - usb:v059Fp0641* - ID_MODEL_FROM_DATABASE=Mobile Hard Drive - -+usb:v059Fp0829* -+ ID_MODEL_FROM_DATABASE=BigDisk Extreme+ -+ - usb:v059Fp100C* - ID_MODEL_FROM_DATABASE=Rugged Triple Interface Mobile Hard Drive - -@@ -19190,6 +19454,9 @@ usb:v059Fp1049* - usb:v059Fp1052* - ID_MODEL_FROM_DATABASE=P'9220 Mobile Drive - -+usb:v059Fp1064* -+ ID_MODEL_FROM_DATABASE=Rugged 16 and 32 GB -+ - usb:v059FpA601* - ID_MODEL_FROM_DATABASE=HardDrive - -@@ -19464,7 +19731,7 @@ usb:v05ACp0225* - ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (JIS) - - usb:v05ACp0229* -- ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ANSI) -+ ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (ANSI) - - usb:v05ACp022A* - ID_MODEL_FROM_DATABASE=Internal Keyboard/Trackpad (MacBook Pro) (ISO) -@@ -19545,7 +19812,7 @@ usb:v05ACp0302* - ID_MODEL_FROM_DATABASE=Optical Mouse [Fujitsu] - - usb:v05ACp0304* -- ID_MODEL_FROM_DATABASE=Optical USB Mouse [Mitsumi] -+ ID_MODEL_FROM_DATABASE=Mighty Mouse [Mitsumi, M1152] - - usb:v05ACp0306* - ID_MODEL_FROM_DATABASE=Optical USB Mouse [Fujitsu] -@@ -19577,6 +19844,9 @@ usb:v05ACp1003* - usb:v05ACp1006* - ID_MODEL_FROM_DATABASE=Hub in Aluminum Keyboard - -+usb:v05ACp1008* -+ ID_MODEL_FROM_DATABASE=Mini DisplayPort to Dual-Link DVI Adapter -+ - usb:v05ACp1101* - ID_MODEL_FROM_DATABASE=Speakers - -@@ -19670,6 +19940,9 @@ usb:v05ACp1265* - usb:v05ACp1266* - ID_MODEL_FROM_DATABASE=iPod Nano 6.Gen - -+usb:v05ACp1267* -+ ID_MODEL_FROM_DATABASE=iPod Nano 7.Gen -+ - usb:v05ACp1281* - ID_MODEL_FROM_DATABASE=Apple Mobile Device [Recovery Mode] - -@@ -19700,6 +19973,9 @@ usb:v05ACp1299* - usb:v05ACp129A* - ID_MODEL_FROM_DATABASE=iPad - -+usb:v05ACp129C* -+ ID_MODEL_FROM_DATABASE=iPhone 4(CDMA) -+ - usb:v05ACp129E* - ID_MODEL_FROM_DATABASE=iPod Touch 4.Gen - -@@ -19712,15 +19988,30 @@ usb:v05ACp12A0* - usb:v05ACp12A2* - ID_MODEL_FROM_DATABASE=iPad 2 (3G; 64GB) - -+usb:v05ACp12A3* -+ ID_MODEL_FROM_DATABASE=iPad 2 (CDMA) -+ -+usb:v05ACp12A4* -+ ID_MODEL_FROM_DATABASE=iPad 3 (wifi) -+ -+usb:v05ACp12A5* -+ ID_MODEL_FROM_DATABASE=iPad 3 (CDMA) -+ - usb:v05ACp12A6* - ID_MODEL_FROM_DATABASE=iPad 3 (3G, 16 GB) - -+usb:v05ACp12A8* -+ ID_MODEL_FROM_DATABASE=iPhone5/5C/5S -+ - usb:v05ACp12A9* - ID_MODEL_FROM_DATABASE=iPad 2 - - usb:v05ACp12AA* - ID_MODEL_FROM_DATABASE=iPod Touch 5.Gen [A1421] - -+usb:v05ACp12AB* -+ ID_MODEL_FROM_DATABASE=iPad 4 (WiFi, 32GB) -+ - usb:v05ACp1300* - ID_MODEL_FROM_DATABASE=iPod Shuffle - -@@ -19742,6 +20033,15 @@ usb:v05ACp1402* - usb:v05ACp1500* - ID_MODEL_FROM_DATABASE=SuperDrive [A1379] - -+usb:v05ACp8005* -+ ID_MODEL_FROM_DATABASE=OHCI Root Hub Simulation -+ -+usb:v05ACp8006* -+ ID_MODEL_FROM_DATABASE=EHCI Root Hub Simulation -+ -+usb:v05ACp8007* -+ ID_MODEL_FROM_DATABASE=XHCI Root Hub USB 2.0 Simulation -+ - usb:v05ACp8202* - ID_MODEL_FROM_DATABASE=HCF V.90 Data/Fax Modem - -@@ -19838,6 +20138,9 @@ usb:v05ACp8510* - usb:v05ACp911C* - ID_MODEL_FROM_DATABASE=Hub in A1082 [Cinema HD Display 23"] - -+usb:v05ACp9127* -+ ID_MODEL_FROM_DATABASE=Hub in Thunderbolt Display -+ - usb:v05ACp912F* - ID_MODEL_FROM_DATABASE=Hub in 30" Cinema Display - -@@ -20042,6 +20345,9 @@ usb:v05C6p9202* - usb:v05C6p9203* - ID_MODEL_FROM_DATABASE=Gobi Wireless Modem - -+usb:v05C6p9205* -+ ID_MODEL_FROM_DATABASE=Gobi 2000 -+ - usb:v05C6p9211* - ID_MODEL_FROM_DATABASE=Acer Gobi Wireless Modem (QDL mode) - -@@ -20123,9 +20429,18 @@ usb:v05C8p021A* - usb:v05C8p0318* - ID_MODEL_FROM_DATABASE=Webcam - -+usb:v05C8p0361* -+ ID_MODEL_FROM_DATABASE=SunplusIT INC. HP Truevision HD Webcam -+ -+usb:v05C8p036E* -+ ID_MODEL_FROM_DATABASE=Webcam -+ - usb:v05C8p0403* - ID_MODEL_FROM_DATABASE=Webcam - -+usb:v05C8p041B* -+ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam -+ - usb:v05C9* - ID_VENDOR_FROM_DATABASE=Semtech Corp. - -@@ -20861,6 +21176,9 @@ usb:v05DCp4D12* - usb:v05DCp4D30* - ID_MODEL_FROM_DATABASE=MP3 Player - -+usb:v05DCpA209* -+ ID_MODEL_FROM_DATABASE=JumpDrive S70 -+ - usb:v05DCpA300* - ID_MODEL_FROM_DATABASE=JumpDrive2 - -@@ -20921,6 +21239,9 @@ usb:v05DCpA701* - usb:v05DCpA731* - ID_MODEL_FROM_DATABASE=JumpDrive FireFly - -+usb:v05DCpA768* -+ ID_MODEL_FROM_DATABASE=JumpDrive Retrax -+ - usb:v05DCpA790* - ID_MODEL_FROM_DATABASE=JumpDrive 2GB - -@@ -20930,6 +21251,9 @@ usb:v05DCpA811* - usb:v05DCpA813* - ID_MODEL_FROM_DATABASE=16gB flash thumb drive - -+usb:v05DCpA815* -+ ID_MODEL_FROM_DATABASE=JumpDrive V10 -+ - usb:v05DCpB002* - ID_MODEL_FROM_DATABASE=USB CF Reader - -@@ -20939,6 +21263,9 @@ usb:v05DCpB018* - usb:v05DCpB047* - ID_MODEL_FROM_DATABASE=SDHC Reader [RW047-7000] - -+usb:v05DCpBA02* -+ ID_MODEL_FROM_DATABASE=Workflow CFR1 -+ - usb:v05DCpC753* - ID_MODEL_FROM_DATABASE=JumpDrive TwistTurn - -@@ -21084,7 +21411,7 @@ usb:v05E3p0607* - ID_MODEL_FROM_DATABASE=Logitech G110 Hub - - usb:v05E3p0608* -- ID_MODEL_FROM_DATABASE=USB-2.0 4-Port HUB -+ ID_MODEL_FROM_DATABASE=Hub - - usb:v05E3p0610* - ID_MODEL_FROM_DATABASE=4-port hub -@@ -21158,6 +21485,9 @@ usb:v05E3p0718* - usb:v05E3p0719* - ID_MODEL_FROM_DATABASE=SATA adapter - -+usb:v05E3p0722* -+ ID_MODEL_FROM_DATABASE=SD/MMC card reader -+ - usb:v05E3p0723* - ID_MODEL_FROM_DATABASE=GL827L SD/MMC/MS Flash Card Reader - -@@ -21170,9 +21500,18 @@ usb:v05E3p0727* - usb:v05E3p0731* - ID_MODEL_FROM_DATABASE=GL3310 SATA 3Gb/s Bridge Controller - -+usb:v05E3p0732* -+ ID_MODEL_FROM_DATABASE=All-in-One Cardreader -+ - usb:v05E3p0736* - ID_MODEL_FROM_DATABASE=microSD Reader/Writer - -+usb:v05E3p0741* -+ ID_MODEL_FROM_DATABASE=microSD Card Reader -+ -+usb:v05E3p0743* -+ ID_MODEL_FROM_DATABASE=SDXC and microSDXC CardReader -+ - usb:v05E3p0760* - ID_MODEL_FROM_DATABASE=USB 2.0 Card Reader/Writer - -@@ -21296,6 +21635,9 @@ usb:v05F3p0081* - usb:v05F3p00FF* - ID_MODEL_FROM_DATABASE=VEC Footpedal - -+usb:v05F3p0203* -+ ID_MODEL_FROM_DATABASE=Y-mouse Keyboard & Mouse Adapter -+ - usb:v05F3p020B* - ID_MODEL_FROM_DATABASE=PS2 Adapter - -@@ -21410,6 +21752,9 @@ usb:v05FEp0014* - usb:v05FEp1010* - ID_MODEL_FROM_DATABASE=Optical Wireless - -+usb:v05FEp2001* -+ ID_MODEL_FROM_DATABASE=Microsoft Wireless Receiver 700 -+ - usb:v05FF* - ID_VENDOR_FROM_DATABASE=LeCroy Corp. - -@@ -21434,6 +21779,9 @@ usb:v0603* - usb:v0603p00F1* - ID_MODEL_FROM_DATABASE=Keyboard - -+usb:v0603p00F2* -+ ID_MODEL_FROM_DATABASE=Keyboard (Labtec Ultra Flat Keyboard) -+ - usb:v0603p6871* - ID_MODEL_FROM_DATABASE=Mouse - -@@ -21491,6 +21839,9 @@ usb:v060Bp2231* - usb:v060Bp2270* - ID_MODEL_FROM_DATABASE=Gigabyte K8100 Aivia Gaming Keyboard - -+usb:v060Bp5253* -+ ID_MODEL_FROM_DATABASE=Thermaltake MEKA G-Unit Gaming Keyboard -+ - usb:v060Bp5811* - ID_MODEL_FROM_DATABASE=ACK-571U Wireless Keyboard - -@@ -21911,6 +22262,9 @@ usb:v064EpA110* - usb:v064EpA114* - ID_MODEL_FROM_DATABASE=Lemote Webcam - -+usb:v064EpA116* -+ ID_MODEL_FROM_DATABASE=UVC 1.3MPixel WebCam -+ - usb:v064EpA136* - ID_MODEL_FROM_DATABASE=Asus Integrated Webcam [CN031B] - -@@ -22893,7 +23247,7 @@ usb:v068Ep00F4* - ID_MODEL_FROM_DATABASE=Combatstick - - usb:v068Ep00FA* -- ID_MODEL_FROM_DATABASE=Flight Sim Pedals -+ ID_MODEL_FROM_DATABASE=Ch Throttle Quadrant - - usb:v068Ep00FF* - ID_MODEL_FROM_DATABASE=Flight Sim Yoke -@@ -22955,6 +23309,9 @@ usb:v0698p9999* - usb:v0699* - ID_VENDOR_FROM_DATABASE=Tektronix, Inc. - -+usb:v0699p0347* -+ ID_MODEL_FROM_DATABASE=AFG 3022B -+ - usb:v069A* - ID_VENDOR_FROM_DATABASE=Askey Computer Corp. - -@@ -23486,6 +23843,9 @@ usb:v06C2* - usb:v06C2p0030* - ID_MODEL_FROM_DATABASE=PhidgetRFID - -+usb:v06C2p0031* -+ ID_MODEL_FROM_DATABASE=RFID reader -+ - usb:v06C2p0038* - ID_MODEL_FROM_DATABASE=4-Motor PhidgetServo v3.0 - -@@ -23789,6 +24149,12 @@ usb:v06D3p0394* - usb:v06D3p03A1* - ID_MODEL_FROM_DATABASE=CP9550D/DW Port - -+usb:v06D3p3B30* -+ ID_MODEL_FROM_DATABASE=CP-D70DW / CP-D707DW -+ -+usb:v06D3p3B31* -+ ID_MODEL_FROM_DATABASE=CP-K60DW-S -+ - usb:v06D4* - ID_VENDOR_FROM_DATABASE=Cisco Systems - -@@ -24575,6 +24941,9 @@ usb:v072Fp1000* - usb:v072Fp1001* - ID_MODEL_FROM_DATABASE=PLDT Drive - -+usb:v072Fp2200* -+ ID_MODEL_FROM_DATABASE=ACR122U -+ - usb:v072Fp8002* - ID_MODEL_FROM_DATABASE=AET63 BioTRUSTKey - -@@ -25046,6 +25415,12 @@ usb:v0765* - usb:v0765p5001* - ID_MODEL_FROM_DATABASE=Huey PRO Colorimeter - -+usb:v0765p5020* -+ ID_MODEL_FROM_DATABASE=i1 Display Pro -+ -+usb:v0765p6003* -+ ID_MODEL_FROM_DATABASE=ColorMunki Smile -+ - usb:v0765pD094* - ID_MODEL_FROM_DATABASE=X-Rite DTP94 [Quato Silver Haze Pro] - -@@ -25325,12 +25700,24 @@ usb:v0781p5530* - usb:v0781p5567* - ID_MODEL_FROM_DATABASE=Cruzer Blade - -+usb:v0781p556C* -+ ID_MODEL_FROM_DATABASE=Ultra -+ -+usb:v0781p556D* -+ ID_MODEL_FROM_DATABASE=Memory Vault -+ - usb:v0781p5571* - ID_MODEL_FROM_DATABASE=Cruzer Fit - -+usb:v0781p5576* -+ ID_MODEL_FROM_DATABASE=Cruzer Facet -+ - usb:v0781p5580* - ID_MODEL_FROM_DATABASE=SDCZ80 Flash Drive - -+usb:v0781p5581* -+ ID_MODEL_FROM_DATABASE=Ultra -+ - usb:v0781p5E10* - ID_MODEL_FROM_DATABASE=Encrypted - -@@ -25830,7 +26217,7 @@ usb:v07AAp001A* - ID_MODEL_FROM_DATABASE=ULUSB-11 Key - - usb:v07AAp001C* -- ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] -+ ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] - - usb:v07AAp002E* - ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] -@@ -26114,6 +26501,9 @@ usb:v07B4p0114* - usb:v07B4p0118* - ID_MODEL_FROM_DATABASE=Mju Mini Digital/Mju Digital 500 Camera / Stylus 850 SW - -+usb:v07B4p0125* -+ ID_MODEL_FROM_DATABASE=Tough TG-1 Camera -+ - usb:v07B4p0184* - ID_MODEL_FROM_DATABASE=P-S100 port - -@@ -26441,6 +26831,9 @@ usb:v07C4pA400* - usb:v07C4pA600* - ID_MODEL_FROM_DATABASE=Card Reader - -+usb:v07C4pA604* -+ ID_MODEL_FROM_DATABASE=12-in-1 Card Reader -+ - usb:v07C4pAD01* - ID_MODEL_FROM_DATABASE=Mass Storage Device - -@@ -26474,6 +26867,9 @@ usb:v07C4pC010* - usb:v07C5* - ID_VENDOR_FROM_DATABASE=APG Cash Drawer - -+usb:v07C5p0500* -+ ID_MODEL_FROM_DATABASE=Cash Drawer -+ - usb:v07C6* - ID_VENDOR_FROM_DATABASE=ShareWave, Inc. - -@@ -27140,6 +27536,9 @@ usb:v0803* - usb:v0803p1300* - ID_MODEL_FROM_DATABASE=V92 Faxmodem - -+usb:v0803p3095* -+ ID_MODEL_FROM_DATABASE=V.92 56K Mini External Modem Model 3095 -+ - usb:v0803p4310* - ID_MODEL_FROM_DATABASE=4410a Wireless-G Adapter [Intersil ISL3887] - -@@ -27713,6 +28112,9 @@ usb:v0846p9018* - usb:v0846p9020* - ID_MODEL_FROM_DATABASE=WNA3100(v1) Wireless-N 300 [Broadcom BCM43231] - -+usb:v0846p9021* -+ ID_MODEL_FROM_DATABASE=WNA3100M(v1) Wireless-N 300 [Realtek RTL8192CU] -+ - usb:v0846p9030* - ID_MODEL_FROM_DATABASE=WNA1100 Wireless-N 150 [Atheros AR9271] - -@@ -27722,9 +28124,21 @@ usb:v0846p9040* - usb:v0846p9041* - ID_MODEL_FROM_DATABASE=WNA1000M 802.11bgn [Realtek RTL8188CUS] - -+usb:v0846p9042* -+ ID_MODEL_FROM_DATABASE=On Networks N150MA 802.11bgn [Realtek RTL8188CUS] -+ -+usb:v0846p9050* -+ ID_MODEL_FROM_DATABASE=A6200 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] -+ -+usb:v0846p9052* -+ ID_MODEL_FROM_DATABASE=A6100 AC600 DB Wireless Adapter [Realtek RTL8811AU] -+ - usb:v0846pA001* - ID_MODEL_FROM_DATABASE=PA101 10 Mbps HPNA Home Phoneline RJ-1 - -+usb:v0846pF001* -+ ID_MODEL_FROM_DATABASE=On Networks N300MA 802.11bgn [Realtek RTL8192CU] -+ - usb:v084D* - ID_VENDOR_FROM_DATABASE=Minton Optic Industry Co., Inc. - -@@ -27875,8 +28289,17 @@ usb:v085Ap8027* - usb:v085C* - ID_VENDOR_FROM_DATABASE=ColorVision, Inc. - -+usb:v085Cp0100* -+ ID_MODEL_FROM_DATABASE=Spyder 1 -+ - usb:v085Cp0200* -- ID_MODEL_FROM_DATABASE=Monitor Spyder -+ ID_MODEL_FROM_DATABASE=Spyder 2 -+ -+usb:v085Cp0300* -+ ID_MODEL_FROM_DATABASE=Spyder 3 -+ -+usb:v085Cp0400* -+ ID_MODEL_FROM_DATABASE=Spyder 4 - - usb:v0862* - ID_VENDOR_FROM_DATABASE=Teletrol Systems, Inc. -@@ -28127,6 +28550,12 @@ usb:v0892* - usb:v0892p0101* - ID_MODEL_FROM_DATABASE=Smartdio Reader/Writer - -+usb:v0894* -+ ID_VENDOR_FROM_DATABASE=TSI Incorporated -+ -+usb:v0894p0010* -+ ID_MODEL_FROM_DATABASE=Remote NDIS Network Device -+ - usb:v0897* - ID_VENDOR_FROM_DATABASE=Lauterbach - -@@ -28181,6 +28610,18 @@ usb:v08A9p0015* - usb:v08AE* - ID_VENDOR_FROM_DATABASE=Macally (Mace Group, Inc.) - -+usb:v08B0* -+ ID_VENDOR_FROM_DATABASE=Metrohm -+ -+usb:v08B0p0006* -+ ID_MODEL_FROM_DATABASE=814 Sample Processor -+ -+usb:v08B0p0015* -+ ID_MODEL_FROM_DATABASE=857 Titrando -+ -+usb:v08B0p001A* -+ ID_MODEL_FROM_DATABASE=852 Titrando -+ - usb:v08B4* - ID_VENDOR_FROM_DATABASE=Sorenson Vision, Inc. - -@@ -29036,6 +29477,12 @@ usb:v0906* - usb:v0908* - ID_VENDOR_FROM_DATABASE=Siemens AG - -+usb:v0908p01F4* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET CP 5711 -+ -+usb:v0908p01FE* -+ ID_MODEL_FROM_DATABASE=SIMATIC NET PC Adapter A2 -+ - usb:v0908p2701* - ID_MODEL_FROM_DATABASE=ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA - -@@ -29285,12 +29732,18 @@ usb:v091Ep23CC* - usb:v091Ep2459* - ID_MODEL_FROM_DATABASE=GPSmap 62/78 series - -+usb:v091Ep2491* -+ ID_MODEL_FROM_DATABASE=Edge 800 -+ - usb:v091Ep2519* - ID_MODEL_FROM_DATABASE=eTrex 30 - - usb:v091Ep2535* - ID_MODEL_FROM_DATABASE=Edge 800 - -+usb:v091Ep253C* -+ ID_MODEL_FROM_DATABASE=GPSmap 62sc -+ - usb:v091Ep255B* - ID_MODEL_FROM_DATABASE=Nuvi 2505LM - -@@ -29315,12 +29768,18 @@ usb:v0922p0007* - usb:v0922p0009* - ID_MODEL_FROM_DATABASE=LabelWriter 310 - -+usb:v0922p0019* -+ ID_MODEL_FROM_DATABASE=LabelWriter 400 -+ - usb:v0922p001A* - ID_MODEL_FROM_DATABASE=LabelWriter 400 Turbo - - usb:v0922p0020* - ID_MODEL_FROM_DATABASE=LabelWriter 450 - -+usb:v0922p1001* -+ ID_MODEL_FROM_DATABASE=LabelManager PnP -+ - usb:v0923* - ID_VENDOR_FROM_DATABASE=IC Media Corp. - -@@ -29363,6 +29822,9 @@ usb:v0925* - usb:v0925p0005* - ID_MODEL_FROM_DATABASE=Gamtec.,Ltd SmartJoy PLUS Adapter - -+usb:v0925p03E8* -+ ID_MODEL_FROM_DATABASE=Wii Classic Controller Adapter -+ - usb:v0925p3881* - ID_MODEL_FROM_DATABASE=Saleae Logic - -@@ -29417,6 +29879,9 @@ usb:v0930p000C* - usb:v0930p0010* - ID_MODEL_FROM_DATABASE=Gigabeat S (mtp) - -+usb:v0930p0200* -+ ID_MODEL_FROM_DATABASE=Integrated Bluetooth (Taiyo Yuden) -+ - usb:v0930p0301* - ID_MODEL_FROM_DATABASE=PCX1100U Cable Modem (WDM) - -@@ -29483,6 +29948,9 @@ usb:v0930p070B* - usb:v0930p0A07* - ID_MODEL_FROM_DATABASE=WLM-10U1 802.11abgn Wireless Adapter [Ralink RT3572] - -+usb:v0930p0A13* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Toshiba] -+ - usb:v0930p0B05* - ID_MODEL_FROM_DATABASE=PX1220E-1G25 External hard drive - -@@ -29691,7 +30159,7 @@ usb:v0939* - ID_VENDOR_FROM_DATABASE=Lumberg, Inc. - - usb:v0939p0B15* -- ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 1TB (PX1710E-1HJ0) -+ ID_MODEL_FROM_DATABASE=Toshiba Stor.E Alu 2 - - usb:v093A* - ID_VENDOR_FROM_DATABASE=Pixart Imaging, Inc. -@@ -29753,6 +30221,9 @@ usb:v093Ap260F* - usb:v093Ap2621* - ID_MODEL_FROM_DATABASE=PAC731x Trust Webcam - -+usb:v093Ap2622* -+ ID_MODEL_FROM_DATABASE=Webcam Genius -+ - usb:v093Ap2624* - ID_MODEL_FROM_DATABASE=Webcam - -@@ -29951,6 +30422,9 @@ usb:v0951p1653* - usb:v0951p1656* - ID_MODEL_FROM_DATABASE=DataTraveler Ultimate G2 - -+usb:v0951p1665* -+ ID_MODEL_FROM_DATABASE=Digital DataTraveler SE9 64GB -+ - usb:v0951p1689* - ID_MODEL_FROM_DATABASE=DataTraveler SE9 - -@@ -29993,6 +30467,9 @@ usb:v0957p0200* - usb:v0957p0202* - ID_MODEL_FROM_DATABASE=E-Video DC-350 Camera - -+usb:v0957p0407* -+ ID_MODEL_FROM_DATABASE=33220A Waveform Generator -+ - usb:v0957p0518* - ID_MODEL_FROM_DATABASE=82357B GPIB Interface - -@@ -30033,7 +30510,7 @@ usb:v095Dp0001* - ID_MODEL_FROM_DATABASE=Polycom ViaVideo - - usb:v0967* -- ID_VENDOR_FROM_DATABASE=Acer (??) -+ ID_VENDOR_FROM_DATABASE=Acer NeWeb Corp. - - usb:v0967p0204* - ID_MODEL_FROM_DATABASE=WarpLink 802.11b Adapter -@@ -30056,6 +30533,12 @@ usb:v096Ep0807* - usb:v0971* - ID_VENDOR_FROM_DATABASE=Gretag-Macbeth AG - -+usb:v0971p2000* -+ ID_MODEL_FROM_DATABASE=i1 Pro -+ -+usb:v0971p2001* -+ ID_MODEL_FROM_DATABASE=i1 Monitor -+ - usb:v0971p2003* - ID_MODEL_FROM_DATABASE=Eye-One display - -@@ -30063,7 +30546,7 @@ usb:v0971p2005* - ID_MODEL_FROM_DATABASE=Huey - - usb:v0971p2007* -- ID_MODEL_FROM_DATABASE=ColorMunki -+ ID_MODEL_FROM_DATABASE=ColorMunki Photo - - usb:v0973* - ID_VENDOR_FROM_DATABASE=Schlumberger -@@ -30182,6 +30665,9 @@ usb:v099Ap0638* - usb:v099Ap610C* - ID_MODEL_FROM_DATABASE=EL-610 Super Mini Electron luminescent Keyboard - -+usb:v099Ap713A* -+ ID_MODEL_FROM_DATABASE=WK-713 Multimedia Keyboard -+ - usb:v099Ap7160* - ID_MODEL_FROM_DATABASE=Hyper Slim Keyboard - -@@ -30375,7 +30861,10 @@ usb:v09D3* - ID_VENDOR_FROM_DATABASE=Com One - - usb:v09D3p0001* -- ID_MODEL_FROM_DATABASE=ISDN TA -+ ID_MODEL_FROM_DATABASE=ISDN TA / Light Rider 128K -+ -+usb:v09D3p000B* -+ ID_MODEL_FROM_DATABASE=Bluetooth Adapter class 1 [BlueLight] - - usb:v09D7* - ID_VENDOR_FROM_DATABASE=Novatel Wireless -@@ -30596,6 +31085,12 @@ usb:v0A07p00DA* - usb:v0A0B* - ID_VENDOR_FROM_DATABASE=Cybex Computer Products Co. - -+usb:v0A0D* -+ ID_VENDOR_FROM_DATABASE=Servergy, Inc -+ -+usb:v0A0Dp2514* -+ ID_MODEL_FROM_DATABASE=CTS-1000 Internal Hub -+ - usb:v0A11* - ID_VENDOR_FROM_DATABASE=Xentec, Inc. - -@@ -30887,6 +31382,9 @@ usb:v0A48p5024* - usb:v0A48p5025* - ID_MODEL_FROM_DATABASE=Mass Storage Device - -+usb:v0A4A* -+ ID_VENDOR_FROM_DATABASE=Ploytec GmbH -+ - usb:v0A4B* - ID_VENDOR_FROM_DATABASE=Fujitsu Media Devices, Ltd - -@@ -31217,6 +31715,9 @@ usb:v0A5CpBD11* - usb:v0A5CpBD13* - ID_MODEL_FROM_DATABASE=BCM4323 802.11abgn Wireless Adapter - -+usb:v0A5CpBD16* -+ ID_MODEL_FROM_DATABASE=BCM4319 802.11bgn Wireless Adapter -+ - usb:v0A5CpBD17* - ID_MODEL_FROM_DATABASE=BCM43236 802.11abgn Wireless Adapter - -@@ -31775,6 +32276,9 @@ usb:v0AC8pC33F* - usb:v0AC8pC429* - ID_MODEL_FROM_DATABASE=Lenovo ThinkCentre Web Camera - -+usb:v0AC8pC42D* -+ ID_MODEL_FROM_DATABASE=Lenovo IdeaCentre Web Camera -+ - usb:v0AC9* - ID_VENDOR_FROM_DATABASE=Micro Solutions, Inc. - -@@ -31823,6 +32327,9 @@ usb:v0ACDp0630* - usb:v0ACDp0810* - ID_MODEL_FROM_DATABASE=SecurePIN (IDPA-506100Y) PIN Pad - -+usb:v0ACDp2030* -+ ID_MODEL_FROM_DATABASE=ValueMag Magnetic Stripe Reader -+ - usb:v0ACE* - ID_VENDOR_FROM_DATABASE=ZyDAS - -@@ -32024,6 +32531,12 @@ usb:v0AF9p0010* - usb:v0AF9p0011* - ID_MODEL_FROM_DATABASE=Micro Innovations IC50C Webcam - -+usb:v0AFA* -+ ID_VENDOR_FROM_DATABASE=DMC Co., Ltd. -+ -+usb:v0AFAp07D2* -+ ID_MODEL_FROM_DATABASE=Controller Board for Projected Capacitive Touch Screen DUS3000 -+ - usb:v0AFC* - ID_VENDOR_FROM_DATABASE=Zaptronix Ltd - -@@ -32042,6 +32555,9 @@ usb:v0B00* - usb:v0B05* - ID_VENDOR_FROM_DATABASE=ASUSTek Computer, Inc. - -+usb:v0B05p0001* -+ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (CD-ROM mode) -+ - usb:v0B05p1101* - ID_MODEL_FROM_DATABASE=Mass Storage (UISDMC4S) - -@@ -32147,6 +32663,9 @@ usb:v0B05p1784* - usb:v0B05p1786* - ID_MODEL_FROM_DATABASE=USB-N10 802.11n Network Adapter [Realtek RTL8188SU] - -+usb:v0B05p1788* -+ ID_MODEL_FROM_DATABASE=BT-270 Bluetooth Adapter -+ - usb:v0B05p1791* - ID_MODEL_FROM_DATABASE=WL-167G v3 802.11n Adapter [Realtek RTL8188SU] - -@@ -32159,12 +32678,18 @@ usb:v0B05p179E* - usb:v0B05p179F* - ID_MODEL_FROM_DATABASE=Eee Note EA800 (tablet mode) - -+usb:v0B05p17A0* -+ ID_MODEL_FROM_DATABASE=Xonar U3 sound card -+ - usb:v0B05p17A1* - ID_MODEL_FROM_DATABASE=Eee Note EA800 (mass storage mode) - - usb:v0B05p17AB* - ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] - -+usb:v0B05p17C9* -+ ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] -+ - usb:v0B05p4C80* - ID_MODEL_FROM_DATABASE=Transformer Pad TF300TG - -@@ -32183,6 +32708,12 @@ usb:v0B05p4D01* - usb:v0B05p4DAF* - ID_MODEL_FROM_DATABASE=Transformer Pad Infinity TF700 (Fastboot) - -+usb:v0B05p5410* -+ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (MTP mode) -+ -+usb:v0B05p5412* -+ ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) -+ - usb:v0B05p6101* - ID_MODEL_FROM_DATABASE=Cable Modem - -@@ -32228,9 +32759,15 @@ usb:v0B0E* - usb:v0B0Ep0420* - ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 - -+usb:v0B0Ep094D* -+ ID_MODEL_FROM_DATABASE=GN Netcom / Jabra REVO Wireless -+ - usb:v0B0Ep1022* - ID_MODEL_FROM_DATABASE=Jabra PRO 9450, Type 9400BS (DECT Headset) - -+usb:v0B0Ep2007* -+ ID_MODEL_FROM_DATABASE=GN 2000 Stereo Corded Headset -+ - usb:v0B0Ep620C* - ID_MODEL_FROM_DATABASE=Jabra BT620s - -@@ -32291,6 +32828,9 @@ usb:v0B33* - usb:v0B33p0020* - ID_MODEL_FROM_DATABASE=ShuttleXpress - -+usb:v0B33p0700* -+ ID_MODEL_FROM_DATABASE=RollerMouse Pro -+ - usb:v0B37* - ID_VENDOR_FROM_DATABASE=Hitachi ULSI Systems Co., Ltd - -@@ -32687,6 +33227,9 @@ usb:v0B95p1720* - usb:v0B95p1780* - ID_MODEL_FROM_DATABASE=AX88178 - -+usb:v0B95p1790* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet -+ - usb:v0B95p7720* - ID_MODEL_FROM_DATABASE=AX88772 - -@@ -32786,6 +33329,9 @@ usb:v0BAFp011B* - usb:v0BAFp0121* - ID_MODEL_FROM_DATABASE=USR5423 802.11bg Wireless Adapter [ZyDAS ZD1211B] - -+usb:v0BAFp0303* -+ ID_MODEL_FROM_DATABASE=USR5637 56K Faxmodem -+ - usb:v0BAFp6112* - ID_MODEL_FROM_DATABASE=FaxModem Model 5633 - -@@ -33332,6 +33878,9 @@ usb:v0BB4p0C01* - usb:v0BB4p0C02* - ID_MODEL_FROM_DATABASE=Dream / ADP1 / G1 / Magic / Tattoo (Debug) - -+usb:v0BB4p0C03* -+ ID_MODEL_FROM_DATABASE=Android Phone [Fairphone First Edition (FP1)] -+ - usb:v0BB4p0C13* - ID_MODEL_FROM_DATABASE=Diamond - -@@ -33371,6 +33920,12 @@ usb:v0BB4p0CA2* - usb:v0BB4p0CA5* - ID_MODEL_FROM_DATABASE=Android Phone [Evo Shift 4G] - -+usb:v0BB4p0CAE* -+ ID_MODEL_FROM_DATABASE=T-Mobile MyTouch 4G Slide [Doubleshot] -+ -+usb:v0BB4p0DEA* -+ ID_MODEL_FROM_DATABASE=M7_UL [HTC One] -+ - usb:v0BB4p0FF8* - ID_MODEL_FROM_DATABASE=Desire HD (Tethering Mode) - -@@ -33443,18 +33998,33 @@ usb:v0BC2p2320* - usb:v0BC2p3008* - ID_MODEL_FROM_DATABASE=FreeAgent Desk 1TB - -+usb:v0BC2p3101* -+ ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB -+ -+usb:v0BC2p3312* -+ ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] -+ - usb:v0BC2p3320* - ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] - - usb:v0BC2p3332* - ID_MODEL_FROM_DATABASE=Expansion - -+usb:v0BC2p5020* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex -+ - usb:v0BC2p5021* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 2.0 - -+usb:v0BC2p5030* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Upgrade Cable STAE104 -+ - usb:v0BC2p5031* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex USB 3.0 - -+usb:v0BC2p5070* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk -+ - usb:v0BC2p50A1* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk - -@@ -33476,6 +34046,9 @@ usb:v0BC2pA0A1* - usb:v0BC2pA0A4* - ID_MODEL_FROM_DATABASE=Backup Plus Desktop Drive - -+usb:v0BC2pAB00* -+ ID_MODEL_FROM_DATABASE=Slim Portable Drive -+ - usb:v0BC3* - ID_VENDOR_FROM_DATABASE=IPWireless, Inc. - -@@ -33650,6 +34223,12 @@ usb:v0BDAp0184* - usb:v0BDAp0186* - ID_MODEL_FROM_DATABASE=Card Reader - -+usb:v0BDAp0301* -+ ID_MODEL_FROM_DATABASE=multicard reader -+ -+usb:v0BDAp1724* -+ ID_MODEL_FROM_DATABASE=RTL8723AU 802.11n WLAN Adapter -+ - usb:v0BDAp2831* - ID_MODEL_FROM_DATABASE=RTL2831U DVB-T - -@@ -33707,6 +34286,9 @@ usb:v0BDAp8198* - usb:v0BDAp8199* - ID_MODEL_FROM_DATABASE=RTL8187SU 802.11g WLAN Adapter - -+usb:v0BDAp8812* -+ ID_MODEL_FROM_DATABASE=RTL8812AU 802.11a/b/g/n/ac WLAN Adapter -+ - usb:v0BDB* - ID_VENDOR_FROM_DATABASE=Ericsson Business Mobile Networks BV - -@@ -34038,7 +34620,7 @@ usb:v0C24p0019* - ID_MODEL_FROM_DATABASE=Bluetooth Device - - usb:v0C24p0021* -- ID_MODEL_FROM_DATABASE=Bluetooth Device -+ ID_MODEL_FROM_DATABASE=Bluetooth Device (V2.1+EDR) - - usb:v0C24p0C24* - ID_MODEL_FROM_DATABASE=Bluetooth Device(SAMPLE) -@@ -34142,6 +34724,9 @@ usb:v0C45* - usb:v0C45p0011* - ID_MODEL_FROM_DATABASE=EBUDDY - -+usb:v0C45p0520* -+ ID_MODEL_FROM_DATABASE=MaxTrack Wireless Mouse -+ - usb:v0C45p1018* - ID_MODEL_FROM_DATABASE=Compact Flash storage memory card reader - -@@ -34496,9 +35081,15 @@ usb:v0C45p62C0* - usb:v0C45p62E0* - ID_MODEL_FROM_DATABASE=MSI Starcam Racer - -+usb:v0C45p6300* -+ ID_MODEL_FROM_DATABASE=PC Microscope camera -+ - usb:v0C45p6310* - ID_MODEL_FROM_DATABASE=Sonix USB 2.0 Camera - -+usb:v0C45p6340* -+ ID_MODEL_FROM_DATABASE=Camera -+ - usb:v0C45p6341* - ID_MODEL_FROM_DATABASE=Defender G-Lens 2577 HD720p Camera - -@@ -34526,6 +35117,12 @@ usb:v0C45p6419* - usb:v0C45p641D* - ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam - -+usb:v0C45p643F* -+ ID_MODEL_FROM_DATABASE=Dell Integrated HD Webcam -+ -+usb:v0C45p644D* -+ ID_MODEL_FROM_DATABASE=1.3 MPixel Integrated Webcam -+ - usb:v0C45p6480* - ID_MODEL_FROM_DATABASE=Sonix 1.3 MP Laptop Integrated Webcam - -@@ -34535,6 +35132,9 @@ usb:v0C45p648B* - usb:v0C45p64BD* - ID_MODEL_FROM_DATABASE=Sony Visual Communication Camera - -+usb:v0C45p7401* -+ ID_MODEL_FROM_DATABASE=TEMPer Temperature Sensor -+ - usb:v0C45p7402* - ID_MODEL_FROM_DATABASE=TEMPerHUM Temperature & Humidity Sensor - -@@ -35390,6 +35990,9 @@ usb:v0CF3p3000* - usb:v0CF3p3002* - ID_MODEL_FROM_DATABASE=AR3011 Bluetooth - -+usb:v0CF3p3004* -+ ID_MODEL_FROM_DATABASE=AR3012 Bluetooth 4.0 -+ - usb:v0CF3p3005* - ID_MODEL_FROM_DATABASE=AR3011 Bluetooth - -@@ -35564,6 +36167,15 @@ usb:v0D35* - usb:v0D3A* - ID_VENDOR_FROM_DATABASE=Posiflex Technologies, Inc. - -+usb:v0D3Ap0206* -+ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer -+ -+usb:v0D3Ap0207* -+ ID_MODEL_FROM_DATABASE=Series 3xxx Cash Drawer -+ -+usb:v0D3Ap0500* -+ ID_MODEL_FROM_DATABASE=Magnetic Stripe Reader -+ - usb:v0D3C* - ID_VENDOR_FROM_DATABASE=Sri Cable Technology, Ltd - -@@ -35573,6 +36185,9 @@ usb:v0D3D* - usb:v0D3Dp0001* - ID_MODEL_FROM_DATABASE=HID Keyboard - -+usb:v0D3Dp0040* -+ ID_MODEL_FROM_DATABASE=PS/2 Adapter -+ - usb:v0D3E* - ID_VENDOR_FROM_DATABASE=Fitcom, inc. - -@@ -35651,6 +36266,9 @@ usb:v0D49p7010* - usb:v0D49p7100* - ID_MODEL_FROM_DATABASE=OneTouch II 300GB External Hard Disk - -+usb:v0D49p7310* -+ ID_MODEL_FROM_DATABASE=OneTouch 4 -+ - usb:v0D49p7410* - ID_MODEL_FROM_DATABASE=Mobile Hard Disk Drive (1TB) - -@@ -35858,6 +36476,9 @@ usb:v0D78* - usb:v0D7A* - ID_VENDOR_FROM_DATABASE=MARX Datentechnik GmbH - -+usb:v0D7Ap0001* -+ ID_MODEL_FROM_DATABASE=CrypToken -+ - usb:v0D7B* - ID_VENDOR_FROM_DATABASE=Wellco Technology Co., Ltd - -@@ -36404,6 +37025,12 @@ usb:v0DB7* - usb:v0DB7p0002* - ID_MODEL_FROM_DATABASE=Goldpfeil P-LAN - -+usb:v0DBA* -+ ID_VENDOR_FROM_DATABASE=Digidesign -+ -+usb:v0DBAp3000* -+ ID_MODEL_FROM_DATABASE=Mbox 2 -+ - usb:v0DBC* - ID_VENDOR_FROM_DATABASE=A&D Medical - -@@ -36776,6 +37403,9 @@ usb:v0DF6p0060* - usb:v0DF6p0062* - ID_MODEL_FROM_DATABASE=WLA-5000 802.11abgn [Ralink RT3572] - -+usb:v0DF6p0072* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [Sitecom] -+ - usb:v0DF6p061C* - ID_MODEL_FROM_DATABASE=LN-028 Network USB 2.0 Adapter - -@@ -37253,6 +37883,9 @@ usb:v0E79p14AD* - usb:v0E79p150E* - ID_MODEL_FROM_DATABASE=80 G9 - -+usb:v0E79p3001* -+ ID_MODEL_FROM_DATABASE=40 Titanium -+ - usb:v0E7B* - ID_VENDOR_FROM_DATABASE=On-Tech Industry Co., Ltd - -@@ -37292,9 +37925,15 @@ usb:v0E8Dp1806* - usb:v0E8Dp1836* - ID_MODEL_FROM_DATABASE=Samsung SE-S084 Super WriteMaster Slim External DVD writer - -+usb:v0E8Dp2000* -+ ID_MODEL_FROM_DATABASE=MT65xx Preloader -+ - usb:v0E8Dp3329* - ID_MODEL_FROM_DATABASE=Qstarz BT-Q1000XT - -+usb:v0E8Dp763E* -+ ID_MODEL_FROM_DATABASE=MT7630e Bluetooth Adapter -+ - usb:v0E8F* - ID_VENDOR_FROM_DATABASE=GreenAsia Inc. - -@@ -37302,7 +37941,7 @@ usb:v0E8Fp0003* - ID_MODEL_FROM_DATABASE=MaxFire Blaze2 - - usb:v0E8Fp0012* -- ID_MODEL_FROM_DATABASE=USB Wireless 2.4GHz Gamepad -+ ID_MODEL_FROM_DATABASE=Joystick/Gamepad - - usb:v0E8Fp0016* - ID_MODEL_FROM_DATABASE=4 port USB 1.1 hub UH-174 -@@ -37436,9 +38075,18 @@ usb:v0EB7* - usb:v0EB8* - ID_VENDOR_FROM_DATABASE=Mettler Toledo - -+usb:v0EB8p2200* -+ ID_MODEL_FROM_DATABASE=Ariva Scale -+ - usb:v0EB8pF000* - ID_MODEL_FROM_DATABASE=PS60 Scale - -+usb:v0EBB* -+ ID_VENDOR_FROM_DATABASE=Thermo Fisher Scientific -+ -+usb:v0EBBp0002* -+ ID_MODEL_FROM_DATABASE=FT-IR Spectrometer -+ - usb:v0EBE* - ID_VENDOR_FROM_DATABASE=VWeb Corp. - -@@ -37559,6 +38207,12 @@ usb:v0EEFp0001* - usb:v0EEFp0002* - ID_MODEL_FROM_DATABASE=Touchscreen Controller(Professional) - -+usb:v0EEFp7200* -+ ID_MODEL_FROM_DATABASE=Touchscreen Controller -+ -+usb:v0EEFpA802* -+ ID_MODEL_FROM_DATABASE=eGalaxTouch EXC7920 -+ - usb:v0EF0* - ID_VENDOR_FROM_DATABASE=Hitachi Cable, Ltd - -@@ -37670,6 +38324,12 @@ usb:v0F12* - usb:v0F13* - ID_VENDOR_FROM_DATABASE=Acetek Technology Co., Ltd - -+usb:v0F14* -+ ID_VENDOR_FROM_DATABASE=Ingenico -+ -+usb:v0F14p0012* -+ ID_MODEL_FROM_DATABASE=Vital'Act 3S -+ - usb:v0F18* - ID_VENDOR_FROM_DATABASE=Finger Lakes Instrumentation - -@@ -37754,6 +38414,12 @@ usb:v0F37* - usb:v0F38* - ID_VENDOR_FROM_DATABASE=Nien-Yi Industrial Corp. - -+usb:v0F39* -+ ID_VENDOR_FROM_DATABASE=TG3 Electronics -+ -+usb:v0F39p0876* -+ ID_MODEL_FROM_DATABASE=Keyboard [87 Francium Pro] -+ - usb:v0F3D* - ID_VENDOR_FROM_DATABASE=Airprime, Incorporated - -@@ -37841,6 +38507,9 @@ usb:v0F63* - usb:v0F63p0010* - ID_MODEL_FROM_DATABASE=Leapster Explorer - -+usb:v0F63p0022* -+ ID_MODEL_FROM_DATABASE=Leap Reader -+ - usb:v0F63p0500* - ID_MODEL_FROM_DATABASE=Fly Fusion - -@@ -37928,6 +38597,9 @@ usb:v0F6Ep0404* - usb:v0F73* - ID_VENDOR_FROM_DATABASE=DFI - -+usb:v0F78* -+ ID_VENDOR_FROM_DATABASE=Guntermann & Drunck GmbH -+ - usb:v0F7C* - ID_VENDOR_FROM_DATABASE=DQ Technology, Inc. - -@@ -38064,7 +38736,7 @@ usb:v0FCAp8001* - ID_MODEL_FROM_DATABASE=Blackberry Handheld - - usb:v0FCAp8004* -- ID_MODEL_FROM_DATABASE=Blackberry Handheld -+ ID_MODEL_FROM_DATABASE=Blackberry - - usb:v0FCAp8007* - ID_MODEL_FROM_DATABASE=Blackberry Handheld -@@ -38147,6 +38819,12 @@ usb:v0FCEp3138* - usb:v0FCEp3149* - ID_MODEL_FROM_DATABASE=Xperia X8 - -+usb:v0FCEp514F* -+ ID_MODEL_FROM_DATABASE=Xperia arc S [Adb-Enable Mode] -+ -+usb:v0FCEp5169* -+ ID_MODEL_FROM_DATABASE=Xperia S [Adb-Enable Mode] -+ - usb:v0FCEp5177* - ID_MODEL_FROM_DATABASE=Xperia Ion [Debug Mode] - -@@ -38309,6 +38987,9 @@ usb:v0FCEpE166* - usb:v0FCEpE167* - ID_MODEL_FROM_DATABASE=XPERIA mini - -+usb:v0FCEpF0FA* -+ ID_MODEL_FROM_DATABASE=Liveview micro display MN800 in DFU mode -+ - usb:v0FCF* - ID_VENDOR_FROM_DATABASE=Dynastream Innovations, Inc. - -@@ -38316,13 +38997,16 @@ usb:v0FCFp1003* - ID_MODEL_FROM_DATABASE=ANT Development Board - - usb:v0FCFp1004* -- ID_MODEL_FROM_DATABASE=ANT2USB -+ ID_MODEL_FROM_DATABASE=ANTUSB Stick - - usb:v0FCFp1006* - ID_MODEL_FROM_DATABASE=ANT Development Board - - usb:v0FCFp1008* -- ID_MODEL_FROM_DATABASE=Mini stick Suunto -+ ID_MODEL_FROM_DATABASE=ANTUSB2 Stick -+ -+usb:v0FCFp1009* -+ ID_MODEL_FROM_DATABASE=ANTUSB-m Stick - - usb:v0FD0* - ID_VENDOR_FROM_DATABASE=Tulip Computers B.V. -@@ -38378,6 +39062,12 @@ usb:v0FDAp0100* - usb:v0FDC* - ID_VENDOR_FROM_DATABASE=Micro Plus - -+usb:v0FDE* -+ ID_VENDOR_FROM_DATABASE=Oregon Scientific -+ -+usb:v0FDEpCA01* -+ ID_MODEL_FROM_DATABASE=WMRS200 weather station -+ - usb:v0FE0* - ID_VENDOR_FROM_DATABASE=Osterhout Design Group - -@@ -38471,6 +39161,9 @@ usb:v0FFF* - usb:v1000* - ID_VENDOR_FROM_DATABASE=Speed Tech Corp. - -+usb:v1000p153B* -+ ID_MODEL_FROM_DATABASE=TerraTec Electronic GmbH -+ - usb:v1001* - ID_VENDOR_FROM_DATABASE=Ritronics Components (S) Pte., Ltd - -@@ -38504,6 +39197,9 @@ usb:v1004p618E* - usb:v1004p618F* - ID_MODEL_FROM_DATABASE=Ally/Optimus One - -+usb:v1004p61C5* -+ ID_MODEL_FROM_DATABASE=P880 / Charge only -+ - usb:v1004p61C6* - ID_MODEL_FROM_DATABASE=Vortex (msc) - -@@ -38514,7 +39210,7 @@ usb:v1004p61F1* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [LG Software mode] - - usb:v1004p61F9* -- ID_MODEL_FROM_DATABASE=V909 G-Slate -+ ID_MODEL_FROM_DATABASE=Optimus (Various Models) MTP Mode - - usb:v1004p61FC* - ID_MODEL_FROM_DATABASE=Optimus 3 -@@ -38528,9 +39224,15 @@ usb:v1004p6300* - usb:v1004p631C* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [MTP mode] - -+usb:v1004p631D* -+ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Camera/PTP Mode) -+ - usb:v1004p631E* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [Camera/PTP mode] - -+usb:v1004p631F* -+ ID_MODEL_FROM_DATABASE=Optimus Android Phone (Charge Mode) -+ - usb:v1004p6356* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [Virtual CD mode] - -@@ -38540,6 +39242,9 @@ usb:v1004p6800* - usb:v1004p7000* - ID_MODEL_FROM_DATABASE=LG LDP-7024D(LD)USB - -+usb:v1004p91C8* -+ ID_MODEL_FROM_DATABASE=P880 / USB tethering -+ - usb:v1004pA400* - ID_MODEL_FROM_DATABASE=Renoir (KC910) - -@@ -38742,13 +39447,13 @@ usb:v1033p0068* - ID_MODEL_FROM_DATABASE=3,5'' HDD case MD-231 - - usb:v1038* -- ID_VENDOR_FROM_DATABASE=Ideazon, Inc. -+ ID_VENDOR_FROM_DATABASE=SteelSeries ApS - - usb:v1038p0100* -- ID_MODEL_FROM_DATABASE=Zboard -+ ID_MODEL_FROM_DATABASE=Ideazon Zboard - - usb:v1038p1361* -- ID_MODEL_FROM_DATABASE=Sensei -+ ID_MODEL_FROM_DATABASE=Ideazon Sensei - - usb:v1039* - ID_VENDOR_FROM_DATABASE=devolo AG -@@ -38946,28 +39651,37 @@ usb:v1058p0704* - ID_MODEL_FROM_DATABASE=Passport External HDD - - usb:v1058p070A* -- ID_MODEL_FROM_DATABASE=My Passport Essential SE -+ ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) - - usb:v1058p071A* - ID_MODEL_FROM_DATABASE=My Passport - - usb:v1058p0730* -- ID_MODEL_FROM_DATABASE=My Passport -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) - - usb:v1058p0740* - ID_MODEL_FROM_DATABASE=My Passport - -+usb:v1058p0741* -+ ID_MODEL_FROM_DATABASE=My Passport Ultra -+ - usb:v1058p0742* - ID_MODEL_FROM_DATABASE=My Passport Essential SE - - usb:v1058p0748* -- ID_MODEL_FROM_DATABASE=My Passport 1TB USB 3.0 -+ ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) -+ -+usb:v1058p0810* -+ ID_MODEL_FROM_DATABASE=My Passport Ultra - - usb:v1058p0900* - ID_MODEL_FROM_DATABASE=MyBook Essential External HDD - - usb:v1058p0901* -- ID_MODEL_FROM_DATABASE=MyBook External HDD -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) -+ -+usb:v1058p0902* -+ ID_MODEL_FROM_DATABASE=My Book Pro Edition - - usb:v1058p0903* - ID_MODEL_FROM_DATABASE=My Book Premium Edition -@@ -38976,20 +39690,32 @@ usb:v1058p0910* - ID_MODEL_FROM_DATABASE=MyBook Essential External HDD - - usb:v1058p1001* -- ID_MODEL_FROM_DATABASE=External Hard Disk [Elements] -+ ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) - - usb:v1058p1003* - ID_MODEL_FROM_DATABASE=Elements 1000 GB - - usb:v1058p1010* -- ID_MODEL_FROM_DATABASE=Elements External HDD -+ ID_MODEL_FROM_DATABASE=Elements Portable (WDBAAR) - - usb:v1058p1021* -- ID_MODEL_FROM_DATABASE=Elements 2TB -+ ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) - - usb:v1058p1023* - ID_MODEL_FROM_DATABASE=Elements SE - -+usb:v1058p1048* -+ ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) -+ -+usb:v1058p10A2* -+ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBPCK) -+ -+usb:v1058p10A8* -+ ID_MODEL_FROM_DATABASE=Elements Portable (WDBUZG) -+ -+usb:v1058p1100* -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition 2.0 (WDH1U) -+ - usb:v1058p1103* - ID_MODEL_FROM_DATABASE=My Book Studio - -@@ -39272,6 +39998,9 @@ usb:v106Fp0009* - usb:v106Fp000A* - ID_MODEL_FROM_DATABASE=CR10x Coin Recycler - -+usb:v106Fp000C* -+ ID_MODEL_FROM_DATABASE=Xchange -+ - usb:v1076* - ID_VENDOR_FROM_DATABASE=GCT Semiconductor, Inc. - -@@ -39335,6 +40064,12 @@ usb:v1099* - usb:v109A* - ID_VENDOR_FROM_DATABASE=DATASOFT Systems GmbH - -+usb:v109B* -+ ID_VENDOR_FROM_DATABASE=Hisense -+ -+usb:v109Bp9118* -+ ID_MODEL_FROM_DATABASE=Medion P4013 Mobile -+ - usb:v109F* - ID_VENDOR_FROM_DATABASE=eSOL Co., Ltd - -@@ -39458,6 +40193,15 @@ usb:v10BF* - usb:v10BFp0001* - ID_MODEL_FROM_DATABASE=SmartHome PowerLinc - -+usb:v10C3* -+ ID_VENDOR_FROM_DATABASE=Universal Laser Systems, Inc. -+ -+usb:v10C3p00A4* -+ ID_MODEL_FROM_DATABASE=ULS PLS Series Laser Engraver Firmware Loader -+ -+usb:v10C3p00A5* -+ ID_MODEL_FROM_DATABASE=ULS Print Support -+ - usb:v10C4* - ID_VENDOR_FROM_DATABASE=Cygnal Integrated Products, Inc. - -@@ -39509,6 +40253,12 @@ usb:v10C4p8461* - usb:v10C4p8477* - ID_MODEL_FROM_DATABASE=Balluff RFID Reader - -+usb:v10C4p8496* -+ ID_MODEL_FROM_DATABASE=SiLabs Cypress FW downloader -+ -+usb:v10C4p8497* -+ ID_MODEL_FROM_DATABASE=SiLabs Cypress EVB -+ - usb:v10C4p8605* - ID_MODEL_FROM_DATABASE=dilitronics ESoLUX solar lighting controller - -@@ -39527,6 +40277,9 @@ usb:v10C4p8863* - usb:v10C4p8897* - ID_MODEL_FROM_DATABASE=C8051F38x HDMI Splitter [UHBX] - -+usb:v10C4p8918* -+ ID_MODEL_FROM_DATABASE=C8051F38x HDMI Audio Extractor [VSA-HA-DP] -+ - usb:v10C4pEA60* - ID_MODEL_FROM_DATABASE=CP210x UART Bridge / myAVR mySmartUSB light - -@@ -39908,6 +40661,9 @@ usb:v1141* - usb:v1142* - ID_VENDOR_FROM_DATABASE=CyberScan Technologies, Inc. - -+usb:v1142p0709* -+ ID_MODEL_FROM_DATABASE=Cyberview High Speed Scanner -+ - usb:v1145* - ID_VENDOR_FROM_DATABASE=Japan Radio Company - -@@ -39938,6 +40694,9 @@ usb:v114D* - usb:v114F* - ID_VENDOR_FROM_DATABASE=Wavecom - -+usb:v114Fp1234* -+ ID_MODEL_FROM_DATABASE=Fastrack Xtend FXT001 Modem -+ - usb:v115B* - ID_VENDOR_FROM_DATABASE=Salix Technology Co., Ltd. - -@@ -40128,7 +40887,7 @@ usb:v1199p683A* - ID_MODEL_FROM_DATABASE=MC8785 Device - - usb:v1199p683C* -- ID_MODEL_FROM_DATABASE=MC8790 Device -+ ID_MODEL_FROM_DATABASE=Mobile Broadband 3G/UMTS (MC8790 Device) - - usb:v1199p6850* - ID_MODEL_FROM_DATABASE=AirCard 880 Device -@@ -40196,6 +40955,12 @@ usb:v1199p9009* - usb:v1199p900A* - ID_MODEL_FROM_DATABASE=Gobi 2000 Wireless Modem - -+usb:v1199p9055* -+ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (NAT mode) -+ -+usb:v1199p9057* -+ ID_MODEL_FROM_DATABASE=Gobi 9x15 Multimode 3G/4G LTE Modem (IP passthrough mode) -+ - usb:v119A* - ID_VENDOR_FROM_DATABASE=ZHAN QI Technology Co., Ltd - -@@ -40238,12 +41003,30 @@ usb:v11ACp6565* - usb:v11B0* - ID_VENDOR_FROM_DATABASE=ATECH FLASH TECHNOLOGY - -+usb:v11B0p6208* -+ ID_MODEL_FROM_DATABASE=PRO-28U -+ -+usb:v11BE* -+ ID_VENDOR_FROM_DATABASE=R&D International NV -+ -+usb:v11BEpF0A0* -+ ID_MODEL_FROM_DATABASE=Martin Maxxyz DMX -+ - usb:v11C5* - ID_VENDOR_FROM_DATABASE=Inmax - - usb:v11C5p0521* - ID_MODEL_FROM_DATABASE=IMT-0521 Smartcard Reader - -+usb:v11CA* -+ ID_VENDOR_FROM_DATABASE=VeriFone Inc -+ -+usb:v11CAp0207* -+ ID_MODEL_FROM_DATABASE=PIN Pad VX 810 -+ -+usb:v11CAp0220* -+ ID_MODEL_FROM_DATABASE=PIN Pad VX 805 -+ - usb:v11DB* - ID_VENDOR_FROM_DATABASE=Topfield Co., Ltd. - -@@ -40274,6 +41057,9 @@ usb:v11F5p0005* - usb:v11F5p0008* - ID_MODEL_FROM_DATABASE=UMTS/HSDPA Data Card - -+usb:v11F5p0101* -+ ID_MODEL_FROM_DATABASE=RCU Connect -+ - usb:v11F6* - ID_VENDOR_FROM_DATABASE=Prolific - -@@ -40284,7 +41070,7 @@ usb:v11F7* - ID_VENDOR_FROM_DATABASE=Alcatel (?) - - usb:v11F7p02DF* -- ID_MODEL_FROM_DATABASE=TD10 Mobile phone USB cable -+ ID_MODEL_FROM_DATABASE=Serial cable (v2) for TD-10 Mobile Phone - - usb:v1203* - ID_VENDOR_FROM_DATABASE=TSC Auto ID Technology Co., Ltd -@@ -40352,6 +41138,9 @@ usb:v1228p0012* - usb:v1228p0015* - ID_MODEL_FROM_DATABASE=TPaq21/MPaq21 Datalogger - -+usb:v1228p584C* -+ ID_MODEL_FROM_DATABASE=XL2 Logger -+ - usb:v1230* - ID_VENDOR_FROM_DATABASE=Chipidea-Microelectronica, S.A. - -@@ -40377,20 +41166,110 @@ usb:v1235* - ID_VENDOR_FROM_DATABASE=Novation EMS - - usb:v1235p0001* -- ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation -+ ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition - - usb:v1235p0002* - ID_MODEL_FROM_DATABASE=Speedio - - usb:v1235p0003* -- ID_MODEL_FROM_DATABASE=ReMOTE ZeRO SL -+ ID_MODEL_FROM_DATABASE=RemoteSL + ZeroSL -+ -+usb:v1235p0004* -+ ID_MODEL_FROM_DATABASE=ReMOTE LE -+ -+usb:v1235p0005* -+ ID_MODEL_FROM_DATABASE=XIOSynth [First Edition] -+ -+usb:v1235p0006* -+ ID_MODEL_FROM_DATABASE=XStation -+ -+usb:v1235p0007* -+ ID_MODEL_FROM_DATABASE=XIOSynth -+ -+usb:v1235p0008* -+ ID_MODEL_FROM_DATABASE=ReMOTE SL Compact -+ -+usb:v1235p0009* -+ ID_MODEL_FROM_DATABASE=nIO -+ -+usb:v1235p000A* -+ ID_MODEL_FROM_DATABASE=Nocturn -+ -+usb:v1235p000B* -+ ID_MODEL_FROM_DATABASE=ReMOTE SL MkII -+ -+usb:v1235p000C* -+ ID_MODEL_FROM_DATABASE=ZeRO MkII -+ -+usb:v1235p000E* -+ ID_MODEL_FROM_DATABASE=Launchpad -+ -+usb:v1235p0010* -+ ID_MODEL_FROM_DATABASE=Saffire 6 -+ -+usb:v1235p0011* -+ ID_MODEL_FROM_DATABASE=Ultranova -+ -+usb:v1235p0012* -+ ID_MODEL_FROM_DATABASE=Nocturn Keyboard -+ -+usb:v1235p0013* -+ ID_MODEL_FROM_DATABASE=VRM Box -+ -+usb:v1235p0014* -+ ID_MODEL_FROM_DATABASE=VRM Box Audio Class (2-out) -+ -+usb:v1235p0015* -+ ID_MODEL_FROM_DATABASE=Dicer -+ -+usb:v1235p0016* -+ ID_MODEL_FROM_DATABASE=Ultranova -+ -+usb:v1235p0018* -+ ID_MODEL_FROM_DATABASE=Twitch -+ -+usb:v1235p0019* -+ ID_MODEL_FROM_DATABASE=Impulse 25 -+ -+usb:v1235p001A* -+ ID_MODEL_FROM_DATABASE=Impulse 49 -+ -+usb:v1235p001B* -+ ID_MODEL_FROM_DATABASE=Impulse 61 - - usb:v1235p4661* - ID_MODEL_FROM_DATABASE=ReMOTE25 - -+usb:v1235p8000* -+ ID_MODEL_FROM_DATABASE=Scarlett 18i6 -+ -+usb:v1235p8002* -+ ID_MODEL_FROM_DATABASE=Scarlett 8i6 -+ - usb:v1235p8006* - ID_MODEL_FROM_DATABASE=Focusrite Scarlett 2i2 - -+usb:v1235p8008* -+ ID_MODEL_FROM_DATABASE=Saffire 6 -+ -+usb:v1235p800A* -+ ID_MODEL_FROM_DATABASE=Scarlett 2i4 -+ -+usb:v1235p800C* -+ ID_MODEL_FROM_DATABASE=Scarlett 18i20 -+ -+usb:v1235p800E* -+ ID_MODEL_FROM_DATABASE=iTrack Solo -+ -+usb:v1235p8010* -+ ID_MODEL_FROM_DATABASE=Forte -+ -+usb:v1235p8012* -+ ID_MODEL_FROM_DATABASE=Scarlett 6i6 -+ -+usb:v1235p8014* -+ ID_MODEL_FROM_DATABASE=Scarlett 18i8 -+ - usb:v1241* - ID_VENDOR_FROM_DATABASE=Belkin - -@@ -40410,7 +41289,7 @@ usb:v1241p1166* - ID_MODEL_FROM_DATABASE=MI-2150 Trust Mouse - - usb:v1241p1177* -- ID_MODEL_FROM_DATABASE=F8E842-DL Mouse -+ ID_MODEL_FROM_DATABASE=Mouse [HT82M21A] - - usb:v1241p1503* - ID_MODEL_FROM_DATABASE=Keyboard -@@ -40463,6 +41342,9 @@ usb:v125Fp312A* - usb:v125Fp312B* - ID_MODEL_FROM_DATABASE=Superior S102 Pro - -+usb:v125FpA22A* -+ ID_MODEL_FROM_DATABASE=DashDrive Elite HE720 500GB -+ - usb:v125FpA91A* - ID_MODEL_FROM_DATABASE=Portable HDD CH91 - -@@ -40478,6 +41360,9 @@ usb:v125FpC93A* - usb:v125FpC96A* - ID_MODEL_FROM_DATABASE=C906 Flash Drive - -+usb:v125FpCB10* -+ ID_MODEL_FROM_DATABASE=Dash Drive UV100 -+ - usb:v1260* - ID_VENDOR_FROM_DATABASE=Standard Microsystems Corp. - -@@ -40637,6 +41522,9 @@ usb:v1283p0150* - usb:v1286* - ID_VENDOR_FROM_DATABASE=Marvell Semiconductor, Inc. - -+usb:v1286p00BC* -+ ID_MODEL_FROM_DATABASE=Marvell JTAG Probe -+ - usb:v1286p1FAB* - ID_MODEL_FROM_DATABASE=88W8338 [Libertas] 802.11g - -@@ -40733,6 +41621,12 @@ usb:v12C4p0006* - usb:v12C4p0008* - ID_MODEL_FROM_DATABASE=Teleprompter Foot Control (v1) - -+usb:v12CF* -+ ID_VENDOR_FROM_DATABASE=DEXIN -+ -+usb:v12CFp0170* -+ ID_MODEL_FROM_DATABASE=Tt eSPORTS BLACK Gaming mouse -+ - usb:v12D1* - ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd. - -@@ -40802,9 +41696,15 @@ usb:v12D1p14CF* - usb:v12D1p14D1* - ID_MODEL_FROM_DATABASE=K3770 3G Modem (Mass Storage Mode) - -+usb:v12D1p14DB* -+ ID_MODEL_FROM_DATABASE=E353/E3131 -+ - usb:v12D1p14F1* - ID_MODEL_FROM_DATABASE=Gobi 3000 HSPA+ Modem - -+usb:v12D1p14FE* -+ ID_MODEL_FROM_DATABASE=Modem (Mass Storage Mode) -+ - usb:v12D1p1501* - ID_MODEL_FROM_DATABASE=Pulse - -@@ -40826,6 +41726,9 @@ usb:v12D1p1521* - usb:v12D1p155A* - ID_MODEL_FROM_DATABASE=R205 Mobile WiFi (CD-ROM mode) - -+usb:v12D1p1575* -+ ID_MODEL_FROM_DATABASE=K5150 LTE modem -+ - usb:v12D1p1805* - ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone - -@@ -41376,7 +42279,7 @@ usb:v13BA* - ID_VENDOR_FROM_DATABASE=PCPlay - - usb:v13BAp0001* -- ID_MODEL_FROM_DATABASE=König Electronic CMP-KEYPAD12 Numeric Keypad -+ ID_MODEL_FROM_DATABASE=Konig Electronic CMP-KEYPAD12 Numeric Keypad - - usb:v13BAp0017* - ID_MODEL_FROM_DATABASE=PS/2 Keyboard+Mouse Adapter -@@ -44096,6 +44999,9 @@ usb:v1740p9801* - usb:v1743* - ID_VENDOR_FROM_DATABASE=General Atomics - -+usb:v1748* -+ ID_VENDOR_FROM_DATABASE=MQP Electronics -+ - usb:v174C* - ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. - -@@ -46569,7 +47475,7 @@ usb:v1C7B* - ID_VENDOR_FROM_DATABASE=LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD. - - usb:v1C83* -- ID_VENDOR_FROM_DATABASE=Schomäcker GmbH -+ ID_VENDOR_FROM_DATABASE=Schomaecker GmbH - - usb:v1C83p0001* - ID_MODEL_FROM_DATABASE=RS150 V2 -@@ -47678,6 +48584,12 @@ usb:v2047* - usb:v2047p0200* - ID_MODEL_FROM_DATABASE=MSP430 USB HID Bootstrap Loader - -+usb:v2047p0855* -+ ID_MODEL_FROM_DATABASE=Invensense Embedded MotionApp HID Sensor -+ -+usb:v2047p0964* -+ ID_MODEL_FROM_DATABASE=Inventio Software MSP430 -+ - usb:v2080* - ID_VENDOR_FROM_DATABASE=Barnes & Noble - --- -1.7.9.2 - diff --git a/0004-implement-a-union-to-pad-out-file_handle.patch b/0004-implement-a-union-to-pad-out-file_handle.patch deleted file mode 100644 index cbb924cc..00000000 --- a/0004-implement-a-union-to-pad-out-file_handle.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 370c860f748d149097710dc7952a64f627db9de7 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 19 Apr 2014 13:22:35 -0400 -Subject: [PATCH] implement a union to pad out file_handle - -Cases where name_to_handle_at is used allocated the full struct to be -MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong -since handle_bytes should describe the length of the flexible array -member and not the whole struct. - -Define a union type which includes sufficient padding to allow -assignment of MAX_HANDLE_SZ to be correct. ---- - src/libudev/libudev-monitor.c | 6 ++---- - src/readahead/readahead-common.c | 6 ++---- - src/shared/util.h | 6 ++++++ - src/tmpfiles/tmpfiles.c | 11 ++++------- - 4 files changed, 14 insertions(+), 15 deletions(-) - -diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c -index 3f7436b..0a2ab82 100644 ---- src/libudev/libudev-monitor.c -+++ src/libudev/libudev-monitor.c -@@ -108,15 +108,13 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev) - - /* we consider udev running when /dev is on devtmpfs */ - static bool udev_has_devtmpfs(struct udev *udev) { -- struct file_handle *h; -+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; - int mount_id; - _cleanup_fclose_ FILE *f = NULL; - char line[LINE_MAX], *e; - int r; - -- h = alloca(MAX_HANDLE_SZ); -- h->handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(AT_FDCWD, "/dev", h, &mount_id, 0); -+ r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); - if (r < 0) - return false; - -diff --git src/readahead/readahead-common.c src/readahead/readahead-common.c -index 5ffa88b..49679fc 100644 ---- src/readahead/readahead-common.c -+++ src/readahead/readahead-common.c -@@ -75,7 +75,7 @@ int fs_on_ssd(const char *p) { - if (major(st.st_dev) == 0) { - _cleanup_fclose_ FILE *f = NULL; - int mount_id; -- struct file_handle *h; -+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, }; - - /* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd. - * -@@ -83,9 +83,7 @@ int fs_on_ssd(const char *p) { - * and then lookup the mount ID in mountinfo to find - * the mount options. */ - -- h = alloca(MAX_HANDLE_SZ); -- h->handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW); -+ r = name_to_handle_at(AT_FDCWD, p, &h.handle, &mount_id, AT_SYMLINK_FOLLOW); - if (r < 0) - return false; - -diff --git src/shared/util.h src/shared/util.h -index 900f1cf..891848a 100644 ---- src/shared/util.h -+++ src/shared/util.h -@@ -22,6 +22,7 @@ - ***/ - - #include -+#include - #include - #include - #include -@@ -883,3 +884,8 @@ int fd_warn_permissions(const char *path - - unsigned long personality_from_string(const char *p); - const char *personality_to_string(unsigned long); -+ -+union file_handle_union { -+ struct file_handle handle; -+ char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ]; -+}; -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index 33e7cbc..04b472d 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -217,19 +217,16 @@ static bool unix_socket_alive(const char *fn) { - } - - static int dir_is_mount_point(DIR *d, const char *subdir) { -- struct file_handle *h; -+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ }; - int mount_id_parent, mount_id; - int r_p, r; - -- h = alloca(MAX_HANDLE_SZ); -- -- h->handle_bytes = MAX_HANDLE_SZ; -- r_p = name_to_handle_at(dirfd(d), ".", h, &mount_id_parent, 0); -+ r_p = name_to_handle_at(dirfd(d), ".", &h.handle, &mount_id_parent, 0); - if (r_p < 0) - r_p = -errno; - -- h->handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(dirfd(d), subdir, h, &mount_id, 0); -+ h.handle.handle_bytes = MAX_HANDLE_SZ; -+ r = name_to_handle_at(dirfd(d), subdir, &h.handle, &mount_id, 0); - if (r < 0) - r = -errno; - --- -1.7.9.2 - diff --git a/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch b/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch deleted file mode 100644 index 0358d8cc..00000000 --- a/0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on 20a83d7bf4542875f8033b68682a4da4993010e8 Mon Sep 17 00:00:00 2001 -From: Brandon Philips -Date: Fri, 25 Apr 2014 09:31:59 -0600 -Subject: [PATCH] job: add waiting jobs to run queue in unit_coldplug - -When we have job installed and added to run queue for service which is -still in dead state and systemd initiates reload then after reload we -never add deserialized job to the run queue again. This is caused by -check in service_coldplug() where we check if deserialized state is -something else than dead state, which is not the case thus we never call -service_set_state() and finally unit_notify() where we would have added -job to the run queue. - -Thanks to Michal Sekletar for the original patch. ---- - src/core/job.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- src/core/job.c -+++ src/core/job.c 2014-05-12 12:58:30.354235531 +0000 -@@ -1057,6 +1057,9 @@ int job_coldplug(Job *j) { - if (j->timer_event_source) - j->timer_event_source = sd_event_source_unref(j->timer_event_source); - -+ if (j->state == JOB_WAITING) -+ job_add_to_run_queue(j); -+ - r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); - if (r < 0) - log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0004-journal-do-server_vacuum-for-sigusr1.patch b/0004-journal-do-server_vacuum-for-sigusr1.patch deleted file mode 100644 index 530a5397..00000000 --- a/0004-journal-do-server_vacuum-for-sigusr1.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3bfd4e0c6341b0ef946d2198f089743fa99e0a97 Mon Sep 17 00:00:00 2001 -From: WaLyong Cho -Date: Thu, 28 Aug 2014 21:33:03 +0900 -Subject: [PATCH] journal: do server_vacuum for sigusr1 - -runtime journal is migrated to system journal when only -"/run/systemd/journal/flushed" exist. It's ok but according to this -the system journal directory size(max use) can be over the config. If -journal is not rotated during some time the journal directory can be -remained as over the config(or default) size. To avoid, do -server_vacuum just after the system journal migration from runtime. ---- - src/journal/journald-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/journal/journald-server.c src/journal/journald-server.c -index 52111f7..bf9cfcc 100644 ---- src/journal/journald-server.c -+++ src/journal/journald-server.c -@@ -1224,6 +1224,7 @@ static int dispatch_sigusr1(sd_event_source *es, const struct signalfd_siginfo * - touch("/run/systemd/journal/flushed"); - server_flush_to_var(s); - server_sync(s); -+ server_vacuum(s); - - return 0; - } --- -1.7.9.2 - diff --git a/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch b/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch deleted file mode 100644 index 848a73d3..00000000 --- a/0004-login-set_controller-should-fail-if-prepare_vt-fails.patch +++ /dev/null @@ -1,134 +0,0 @@ -Based on baccf3e40bab6c0b69992ae29c396930de4660c9 Mon Sep 17 00:00:00 2001 -From: Olivier Brunel -Date: Fri, 8 Aug 2014 20:45:43 +0200 -Subject: [PATCH] login: set_controller should fail if prepare_vt fails - -If controllers can expect logind to have "prepared" the VT (e.g. set it to -graphics mode, etc) then TakeControl() should fail if said preparation -failed (and session_restore_vt() was called). - -(David: fixed up !CONFIG_VT case and errno-numbers) ---- - src/login/logind-session.c | 47 +++++++++++++++++++++++++++++++++------------ - src/login/logind-session.h | 2 - - 2 files changed, 36 insertions(+), 13 deletions(-) - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-08-26 10:14:21.014235811 +0000 -@@ -950,8 +950,8 @@ int session_kill(Session *s, KillWho who - static int session_open_vt(Session *s) { - char path[sizeof("/dev/tty") + DECIMAL_STR_MAX(s->vtnr)]; - -- if (!s->vtnr) -- return -1; -+ if (s->vtnr < 1) -+ return -ENODEV; - - if (s->vtfd >= 0) - return s->vtfd; -@@ -975,22 +975,38 @@ static int session_vt_fn(sd_event_source - return 0; - } - --void session_mute_vt(Session *s) { -+int session_mute_vt(Session *s) { - int vt, r; - struct vt_mode mode = { 0 }; - sigset_t mask; - -+ if (s->vtnr < 1) -+ return 0; -+ - vt = session_open_vt(s); - if (vt < 0) -- return; -+ return vt; -+ -+ r = fchown(vt, s->user->uid, -1); -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot change owner of /dev/tty%u: %m", s->vtnr); -+ goto error; -+ } - - r = ioctl(vt, KDSKBMODE, K_OFF); -- if (r < 0) -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot set K_OFF on /dev/tty%u: %m", s->vtnr); - goto error; -+ } - - r = ioctl(vt, KDSETMODE, KD_GRAPHICS); -- if (r < 0) -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot set KD_GRAPHICS on /dev/tty%u: %m", s->vtnr); - goto error; -+ } - - sigemptyset(&mask); - sigaddset(&mask, SIGUSR1); -@@ -1007,14 +1023,17 @@ void session_mute_vt(Session *s) { - mode.relsig = SIGUSR1; - mode.acqsig = SIGUSR1; - r = ioctl(vt, VT_SETMODE, &mode); -- if (r < 0) -+ if (r < 0) { -+ r = -errno; -+ log_error("Cannot set VT_PROCESS on /dev/tty%u: %m", s->vtnr); - goto error; -+ } - -- return; -+ return 0; - - error: -- log_error("cannot mute VT %u for session %s (%d/%d)", s->vtnr, s->id, r, errno); - session_restore_vt(s); -+ return r; - } - - void session_restore_vt(Session *s) { -@@ -1037,6 +1056,8 @@ void session_restore_vt(Session *s) { - mode.mode = VT_AUTO; - ioctl(vt, VT_SETMODE, &mode); - -+ fchown(vt, 0, -1); -+ - close_nointr_nofail(vt); - s->vtfd = -1; - } -@@ -1091,8 +1112,6 @@ int session_set_controller(Session *s, c - return r; - } - -- session_swap_controller(s, t); -- - /* When setting a session controller, we forcibly mute the VT and set - * it into graphics-mode. Applications can override that by changing - * VT state after calling TakeControl(). However, this serves as a good -@@ -1101,7 +1120,11 @@ int session_set_controller(Session *s, c - * exits. - * If logind crashes/restarts, we restore the controller during restart - * or reset the VT in case it crashed/exited, too. */ -- session_mute_vt(s); -+ r = session_mute_vt(s); -+ if (r < 0) -+ return r; -+ -+ session_swap_controller(s, t); - - return 0; - } ---- src/login/logind-session.h -+++ src/login/logind-session.h 2014-08-25 17:19:29.042236429 +0000 -@@ -172,7 +172,7 @@ SessionClass session_class_from_string(c - const char *kill_who_to_string(KillWho k) _const_; - KillWho kill_who_from_string(const char *s) _pure_; - --void session_mute_vt(Session *s); -+int session_mute_vt(Session *s); - void session_restore_vt(Session *s); - - bool session_is_controller(Session *s, const char *sender); diff --git a/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch b/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch deleted file mode 100644 index c19bfcee..00000000 --- a/0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 94036de887ad5b0dc805abe38b5c1c58b57d9465 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Tue, 11 Mar 2014 17:49:00 +0200 -Subject: [PATCH] logind: Do not fail display count if a device has no parent - -udev_device_get_parent() may return NULL when the device doesn't have a -parent, as is the case with (for example) /sys/devices/virtual/drm/ttm. - -Also, log an actual error message instead of "-12 displays connected". ---- - src/login/logind-action.c | 4 +++- - src/login/logind-core.c | 2 +- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index ae7b350..1928f43 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -84,7 +84,9 @@ int manager_handle_action( - * treat like this under the assumption that there is - * no modern drm driver available. */ - n = manager_count_displays(m); -- if (n != 1) { -+ if (n < 0) -+ log_warning("Display counting failed: %s", strerror(-n)); -+ else if (n != 1) { - log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } -diff --git src/login/logind-core.c src/login/logind-core.c -index ca34d37..053d2ed 100644 ---- src/login/logind-core.c -+++ src/login/logind-core.c -@@ -520,7 +520,7 @@ int manager_count_displays(Manager *m) { - - p = udev_device_get_parent(d); - if (!p) -- return -ENOMEM; -+ continue; - - /* If the parent shares the same subsystem as the - * device we are looking at then it is a connector, --- -1.7.9.2 - diff --git a/0004-machined-make-sure-GetMachineAddresses-is-available-.patch b/0004-machined-make-sure-GetMachineAddresses-is-available-.patch deleted file mode 100644 index 20b625ba..00000000 --- a/0004-machined-make-sure-GetMachineAddresses-is-available-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From d3152a09ac5804ec8603daee12f98cf03523cce0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 19 May 2014 00:47:26 +0900 -Subject: [PATCH] machined: make sure GetMachineAddresses() is available for - unprivileged processes - ---- - src/machine/org.freedesktop.machine1.conf | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git src/machine/org.freedesktop.machine1.conf src/machine/org.freedesktop.machine1.conf -index 970ccd8..ab349a5 100644 ---- src/machine/org.freedesktop.machine1.conf -+++ src/machine/org.freedesktop.machine1.conf -@@ -42,12 +42,20 @@ - - -+ -+ - - - -+ -+ - - - --- -1.7.9.2 - diff --git a/0004-man-document-missing-options-of-systemd-run.patch b/0004-man-document-missing-options-of-systemd-run.patch deleted file mode 100644 index a6e6551d..00000000 --- a/0004-man-document-missing-options-of-systemd-run.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 981ee551945f4e00de52fcbb7780fd7476bcd47e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 5 Mar 2014 03:37:48 +0100 -Subject: [PATCH] man: document missing options of systemd-run - ---- - man/systemd-run.xml | 71 +++++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 60 insertions(+), 11 deletions(-) - -diff --git man/systemd-run.xml man/systemd-run.xml -index 95c1cb7..81d41dc 100644 ---- man/systemd-run.xml -+++ man/systemd-run.xml -@@ -121,9 +121,9 @@ along with systemd; If not, see . - - - -- Provide description for the unit. If not -- specified, the command itself will be used as a description. -- See Description= in -+ Provide description for the service or scope -+ unit. If not specified, the command itself will be used as a -+ description. See Description= in - systemd.unit5. - - -@@ -140,10 +140,10 @@ along with systemd; If not, see . - - - -- After the service's process has terminated, keep -- the service around until it is explicitly stopped. This is -- useful to collect runtime information about the service after -- it finished running. Also see -+ After the service or scope process has -+ terminated, keep the service around until it is explicitly -+ stopped. This is useful to collect runtime information about -+ the service after it finished running. Also see - RemainAfterExit= in - systemd.service5. - -@@ -153,15 +153,64 @@ along with systemd; If not, see . - - - -- When terminating the scope unit, send a SIGHUP -- immediately after SIGTERM. This is useful to indicate to -- shells and shell-like processes that the connection has been -- severed. Also see SendSIGHUP= in -+ When terminating the scope or service unit, -+ send a SIGHUP immediately after SIGTERM. This is useful to -+ indicate to shells and shell-like processes that the -+ connection has been severed. Also see -+ SendSIGHUP= in - systemd.kill5. - - - - -+ -+ -+ -+ Sets the service type. Also see -+ Type= in -+ systemd.service5. This -+ option has no effect in conjunction with -+ . Defaults to -+ simple. -+ -+ -+ -+ -+ -+ -+ -+ Runs the service process under the UNIX user -+ and group. Also see User= and -+ Group= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ -+ -+ -+ -+ Runs the service process with the specified -+ nice level. Also see Nice= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ -+ -+ -+ -+ Runs the service process with the specified -+ environment variables set. Also see -+ Environment= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ - - - --- -1.7.9.2 - diff --git a/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch b/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch deleted file mode 100644 index 9ab7a2da..00000000 --- a/0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 455cd8b137b8ef45d04889f2d967c562a097f1e6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Oct 2014 19:24:53 +0200 -Subject: [PATCH] sd-bus: if we don't manage to properly allocate the error - message for an sd_bus_error, just go on - -sd_bus_error_setfv() must initialize the sd_bus_error value to some -sensible value and then return a good errno code matching that. If it -cannot work at all it should set the error statically to the OOM error. -But if it can work half-way (i.e. initialize the name, but not the -message) it should do so and still return the correct errno number for -it. - -This effectively reverts 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 ---- - src/libsystemd/sd-bus/bus-error.c | 11 ++++------- - 1 file changed, 4 insertions(+), 7 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-error.c src/libsystemd/sd-bus/bus-error.c -index 5ca974a..af83c12 100644 ---- src/libsystemd/sd-bus/bus-error.c -+++ src/libsystemd/sd-bus/bus-error.c -@@ -194,13 +194,10 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li - return -ENOMEM; - } - -- if (format) { -- int r; -- -- r = vasprintf((char**) &e->message, format, ap); -- if (r < 0) -- return -ENOMEM; -- } -+ /* Of we hit OOM on formatting the pretty message, we ignore -+ * this, since we at least managed to write the error name */ -+ if (format) -+ (void) vasprintf((char**) &e->message, format, ap); - - e->_need_free = 1; - --- -1.7.9.2 - diff --git a/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch b/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch deleted file mode 100644 index 51b46fb4..00000000 --- a/0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 7bb4d371af5ec6b8c50b71d2a80c2866d8134d9a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Jul 2014 17:36:47 +0200 -Subject: [PATCH] sd-bus: when an event loop terminates, explicitly close the - bus - -This makes sure we actually release the bus and all the messages it -references. ---- - src/libsystemd/sd-bus/sd-bus.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index d52afe8..eb267d4 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -2940,6 +2940,7 @@ static int quit_callback(sd_event_source *event, void *userdata) { - assert(event); - - sd_bus_flush(bus); -+ sd_bus_close(bus); - - return 1; - } --- -1.7.9.2 - diff --git a/0004-sd-event-check-the-value-of-received-signal.patch b/0004-sd-event-check-the-value-of-received-signal.patch deleted file mode 100644 index 9c4662a9..00000000 --- a/0004-sd-event-check-the-value-of-received-signal.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7057bd993110c1eff0cd3a8776902ca66417634e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Oct 2014 18:49:45 -0400 -Subject: [PATCH] sd-event: check the value of received signal - -Appease coverity report #1237775. - -Also rename ss to n, to make it visually different from ss. ---- - src/libsystemd/sd-event/sd-event.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index b56182d..4c67ee8 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -1973,20 +1973,22 @@ static int process_signal(sd_event *e, uint32_t events) { - - for (;;) { - struct signalfd_siginfo si; -- ssize_t ss; -+ ssize_t n; - sd_event_source *s = NULL; - -- ss = read(e->signal_fd, &si, sizeof(si)); -- if (ss < 0) { -+ n = read(e->signal_fd, &si, sizeof(si)); -+ if (n < 0) { - if (errno == EAGAIN || errno == EINTR) - return read_one; - - return -errno; - } - -- if (_unlikely_(ss != sizeof(si))) -+ if (_unlikely_(n != sizeof(si))) - return -EIO; - -+ assert(si.ssi_signo < _NSIG); -+ - read_one = true; - - if (si.ssi_signo == SIGCHLD) { --- -1.7.9.2 - diff --git a/0004-sd-journal-verify-that-object-start-with-the-field-n.patch b/0004-sd-journal-verify-that-object-start-with-the-field-n.patch deleted file mode 100644 index e3ee663d..00000000 --- a/0004-sd-journal-verify-that-object-start-with-the-field-n.patch +++ /dev/null @@ -1,41 +0,0 @@ -Based on 0f99f74a14ef193c1ebde687c5cc76e1d67b85ef Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 26 Aug 2014 23:54:31 -0400 -Subject: [PATCH] sd-journal: verify that object start with the field name - -If the journal is corrupted, we might return an object that does -not start with the expected field name and/or is shorter than it -should. ---- - src/journal/sd-journal.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git src/journal/sd-journal.c src/journal/sd-journal.c -index 80ff8fe..693707c 100644 ---- src/journal/sd-journal.c -+++ src/journal/sd-journal.c -@@ -2571,6 +2571,21 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_ - if (r < 0) - return r; - -+ /* Check if we have at least the field name and "=". */ -+ if (ol <= k) { -+ log_debug("%s:offset " OFSfmt ": object has size %zu, expected at least %zu", -+ j->unique_file->path, j->unique_offset, -+ ol, k + 1); -+ return -EBADMSG; -+ } -+ -+ if (memcmp(odata, j->unique_field, k) || ((const char*) odata)[k] != '=') { -+ log_debug("%s:offset " OFSfmt ": object does not start with \"%s=\"", -+ j->unique_file->path, j->unique_offset, -+ j->unique_field); -+ return -EBADMSG; -+ } -+ - /* OK, now let's see if we already returned this data - * object by checking if it exists in the earlier - * traversed files. */ --- -1.7.9.2 - diff --git a/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch b/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch deleted file mode 100644 index ba22748a..00000000 --- a/0004-selinux-fix-potential-double-free-crash-in-child-pro.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 5e78424f4a27c07be50e246308035c877f204038 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Mon, 13 Oct 2014 15:25:09 +0200 -Subject: [PATCH] selinux: fix potential double free crash in child process - -Before returning from function we should reset ret to NULL, thus cleanup -function is nop. - -Also context_str() returns pointer to a string containing context but not a -copy, hence we must make copy it explicitly. ---- - src/shared/label.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/shared/label.c src/shared/label.c -index b6af38d..69d4616 100644 ---- src/shared/label.c -+++ src/shared/label.c -@@ -334,7 +334,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { - } - - freecon(mycon); -- mycon = context_str(bcon); -+ mycon = strdup(context_str(bcon)); - if (!mycon) { - r = -errno; - goto out; -@@ -348,6 +348,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) { - } - - *label = ret; -+ ret = NULL; - r = 0; - - out: --- -1.7.9.2 - diff --git a/0004-shared-conf-parser.patch b/0004-shared-conf-parser.patch deleted file mode 100644 index 8a03d9d5..00000000 --- a/0004-shared-conf-parser.patch +++ /dev/null @@ -1,31 +0,0 @@ -Based on 83e341a637b75f7f592a5dc717c34d8b67ed4ffa Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 17 Sep 2014 22:17:53 +0200 -Subject: [PATCH] shared: conf-parser - -Check memory allocation. Found by Coverity. - -Fixes CID #1237644. ---- - src/shared/conf-parser.h | 4 ++++ - 1 file changed, 4 insertions(+) - ---- src/shared/conf-parser.h -+++ src/shared/conf-parser.h 2014-09-18 13:07:07.314735514 +0000 -@@ -181,6 +181,8 @@ int log_syntax_internal(const char *unit - assert(data); \ - \ - xs = new0(type, 1); \ -+ if(!xs) \ -+ return -ENOMEM; \ - *xs = invalid; \ - \ - FOREACH_WORD(w, l, rvalue, state) { \ -@@ -213,6 +215,7 @@ int log_syntax_internal(const char *unit - xs = realloc(xs, (++i + 1) * sizeof(type)); \ - if (!xs) \ - return -ENOMEM; \ -+ \ - *(xs + i) = invalid; \ - } \ - \ diff --git a/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch b/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch deleted file mode 100644 index 596aa557..00000000 --- a/0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 863f3ce0d050f005839f6aa41fe7bac5478a7b5e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 19 Sep 2014 08:03:31 +0200 -Subject: [PATCH] shared: wtmp-utmp - don't clear store_wtmp in - utmp_put_dead_process() - -Also modernize a few other things and add comments to explain CID #1237503 -and CID #1237504. ---- - src/shared/utmp-wtmp.c | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -diff --git src/shared/utmp-wtmp.c src/shared/utmp-wtmp.c -index 30a0c03..31f13ec 100644 ---- src/shared/utmp-wtmp.c -+++ src/shared/utmp-wtmp.c -@@ -92,8 +92,6 @@ int utmp_get_runlevel(int *runlevel, int *previous) { - static void init_timestamp(struct utmpx *store, usec_t t) { - assert(store); - -- zero(*store); -- - if (t <= 0) - t = now(CLOCK_REALTIME); - -@@ -143,7 +141,7 @@ static int write_entry_wtmp(const struct utmpx *store) { - assert(store); - - /* wtmp is a simple append-only file where each entry is -- simply appended to * the end; i.e. basically a log. */ -+ simply appended to the end; i.e. basically a log. */ - - errno = 0; - updwtmpx(_PATH_WTMPX, store); -@@ -172,7 +170,7 @@ static int write_entry_both(const struct utmpx *store) { - } - - int utmp_put_shutdown(void) { -- struct utmpx store; -+ struct utmpx store = {}; - - init_entry(&store, 0); - -@@ -183,7 +181,7 @@ int utmp_put_shutdown(void) { - } - - int utmp_put_reboot(usec_t t) { -- struct utmpx store; -+ struct utmpx store = {}; - - init_entry(&store, t); - -@@ -206,16 +204,17 @@ _pure_ static const char *sanitize_id(const char *id) { - } - - int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line) { -- struct utmpx store; -+ struct utmpx store = { -+ .ut_type = INIT_PROCESS, -+ .ut_pid = pid, -+ .ut_session = sid, -+ }; - - assert(id); - - init_timestamp(&store, 0); - -- store.ut_type = INIT_PROCESS; -- store.ut_pid = pid; -- store.ut_session = sid; -- -+ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ - strncpy(store.ut_id, sanitize_id(id), sizeof(store.ut_id)); - - if (line) -@@ -225,14 +224,15 @@ int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line - } - - int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { -- struct utmpx lookup, store, store_wtmp, *found; -+ struct utmpx lookup = { -+ .ut_type = INIT_PROCESS /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ -+ }, store, store_wtmp, *found; - - assert(id); - - setutxent(); - -- zero(lookup); -- lookup.ut_type = INIT_PROCESS; /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */ -+ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */ - strncpy(lookup.ut_id, sanitize_id(id), sizeof(lookup.ut_id)); - - found = getutxid(&lookup); -@@ -260,7 +260,7 @@ int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) { - - - int utmp_put_runlevel(int runlevel, int previous) { -- struct utmpx store; -+ struct utmpx store = {}; - int r; - - assert(runlevel > 0); --- -1.7.9.2 - diff --git a/0004-socket-properly-handle-if-our-service-vanished-durin.patch b/0004-socket-properly-handle-if-our-service-vanished-durin.patch deleted file mode 100644 index b119ad24..00000000 --- a/0004-socket-properly-handle-if-our-service-vanished-durin.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 640ace4a8de907994a1b95f6d368c3e6a8fcf60f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 May 2014 16:56:21 +0900 -Subject: [PATCH] socket: properly handle if our service vanished during - runtime - ---- - src/core/socket.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git src/core/socket.c src/core/socket.c -index 05af8fe..aca20fd 100644 ---- src/core/socket.c -+++ src/core/socket.c -@@ -1503,6 +1503,12 @@ static void socket_enter_running(Socket *s, int cfd) { - } - - if (!pending) { -+ if (!UNIT_ISSET(s->service)) { -+ log_error_unit(UNIT(s)->id, "%s: service to activate vanished, refusing activation.", UNIT(s)->id); -+ r = -ENOENT; -+ goto fail; -+ } -+ - r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service), JOB_REPLACE, true, &error, NULL); - if (r < 0) - goto fail; --- -1.7.9.2 - diff --git a/0004-systemd-detect-virt-only-discover-Xen-domU.patch b/0004-systemd-detect-virt-only-discover-Xen-domU.patch deleted file mode 100644 index 246e09b3..00000000 --- a/0004-systemd-detect-virt-only-discover-Xen-domU.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 37287585b6ba9a55065c8f94458f6db3c0abe0af Mon Sep 17 00:00:00 2001 -From: Thomas Blume -Date: Fri, 6 Jun 2014 16:36:45 +0200 -Subject: [PATCH] systemd-detect-virt: only discover Xen domU - -The current vm detection lacks the distinction between Xen dom0 and Xen domU. -Both, dom0 and domU are running inside the hypervisor. -Therefore systemd-detect-virt and the ConditionVirtualization directive detect -dom0 as a virtual machine. - -dom0 is not using virtual devices but is accessing the real hardware. -Therefore dom0 should be considered the virtualisation host and not a virtual -machine. - -https://bugs.freedesktop.org/show_bug.cgi?id=77271 ---- - src/shared/virt.c | 34 +++++++++++++++++++++++++++------- - 1 file changed, 27 insertions(+), 7 deletions(-) - -diff --git src/shared/virt.c src/shared/virt.c -index 1e227c5..774915f 100644 ---- src/shared/virt.c -+++ src/shared/virt.c -@@ -148,7 +148,7 @@ static int detect_vm_dmi(const char **_id) { - - /* Returns a short identifier for the various VM implementations */ - int detect_vm(const char **id) { -- _cleanup_free_ char *hvtype = NULL, *cpuinfo_contents = NULL; -+ _cleanup_free_ char *domcap = NULL, *cpuinfo_contents = NULL; - static thread_local int cached_found = -1; - static thread_local const char *cached_id = NULL; - const char *_id = NULL; -@@ -162,17 +162,37 @@ int detect_vm(const char **id) { - return cached_found; - } - -- /* Try high-level hypervisor sysfs file first: -+ /* Try xen capabilities file first, if not found try high-level hypervisor sysfs file: - * -- * https://bugs.freedesktop.org/show_bug.cgi?id=61491 */ -- r = read_one_line_file("/sys/hypervisor/type", &hvtype); -+ * https://bugs.freedesktop.org/show_bug.cgi?id=77271 */ -+ r = read_one_line_file("/proc/xen/capabilities", &domcap); - if (r >= 0) { -- if (streq(hvtype, "xen")) { -+ char *cap, *i = domcap; -+ -+ while ((cap = strsep(&i, ","))) -+ if (streq(cap, "control_d")) -+ break; -+ -+ if (!i) { - _id = "xen"; - r = 1; -- goto finish; - } -- } else if (r != -ENOENT) -+ -+ goto finish; -+ -+ } else if (r == -ENOENT) { -+ _cleanup_free_ char *hvtype = NULL; -+ -+ r = read_one_line_file("/sys/hypervisor/type", &hvtype); -+ if (r >= 0) { -+ if (streq(hvtype, "xen")) { -+ _id = "xen"; -+ r = 1; -+ goto finish; -+ } -+ } else if (r != -ENOENT) -+ return r; -+ } else - return r; - - /* this will set _id to "other" and return 0 for unknown hypervisors */ --- -1.7.9.2 - diff --git a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch b/0004-systemd-python-use-.hex-instead-of-.get_hex.patch deleted file mode 100644 index 4ddad20e..00000000 --- a/0004-systemd-python-use-.hex-instead-of-.get_hex.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b532cf3722e04adb0bd075666eb9989a9390d0a2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 5 Apr 2014 13:23:25 -0400 -Subject: [PATCH] systemd-python: use .hex instead of .get_hex() - -It turns out the latter got removed in Python 3. - -https://bugs.freedesktop.org/show_bug.cgi?id=77086 ---- - src/python-systemd/journal.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git src/python-systemd/journal.py src/python-systemd/journal.py -index 9c7e004..dd1f229 100644 ---- src/python-systemd/journal.py -+++ src/python-systemd/journal.py -@@ -293,7 +293,7 @@ class Reader(_Reader): - monotonic = monotonic.totalseconds() - monotonic = int(monotonic * 1000000) - if isinstance(bootid, _uuid.UUID): -- bootid = bootid.get_hex() -+ bootid = bootid.hex - return super(Reader, self).seek_monotonic(monotonic, bootid) - - def log_level(self, level): -@@ -314,7 +314,7 @@ class Reader(_Reader): - Equivalent to add_match(MESSAGE_ID=`messageid`). - """ - if isinstance(messageid, _uuid.UUID): -- messageid = messageid.get_hex() -+ messageid = messageid.hex - self.add_match(MESSAGE_ID=messageid) - - def this_boot(self, bootid=None): -@@ -346,7 +346,7 @@ class Reader(_Reader): - - def get_catalog(mid): - if isinstance(mid, _uuid.UUID): -- mid = mid.get_hex() -+ mid = mid.hex - return _get_catalog(mid) - - def _make_line(field, value): --- -1.7.9.2 - diff --git a/0004-systemd-return-the-first-error-from-manager_startup.patch b/0004-systemd-return-the-first-error-from-manager_startup.patch deleted file mode 100644 index 0db56a17..00000000 --- a/0004-systemd-return-the-first-error-from-manager_startup.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 18 Jul 2014 17:05:18 -0400 -Subject: [PATCH] systemd: return the first error from manager_startup() - ---- - src/core/manager.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git src/core/manager.c src/core/manager.c -index 2e63c5e..0653d7e 100644 ---- src/core/manager.c -+++ src/core/manager.c -@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - dual_timestamp_get(&m->units_load_finish_timestamp); - - /* Second, deserialize if there is something to deserialize */ -- if (serialization) { -- q = manager_deserialize(m, serialization, fds); -- if (q < 0) -- r = q; -- } -+ if (serialization) -+ r = manager_deserialize(m, serialization, fds); - - /* Any fds left? Find some unit which wants them. This is - * useful to allow container managers to pass some file -@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - * socket-based activation of entire containers. */ - if (fdset_size(fds) > 0) { - q = manager_distribute_fds(m, fds); -- if (q < 0) -+ if (q < 0 && r == 0) - r = q; - } - - /* We might have deserialized the notify fd, but if we didn't - * then let's create the bus now */ -- manager_setup_notify(m); -+ q = manager_setup_notify(m); -+ if (q < 0 && r == 0) -+ r = q; - - /* We might have deserialized the kdbus control fd, but if we - * didn't, then let's create the bus now. */ -@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { - - /* Third, fire things up! */ - q = manager_coldplug(m); -- if (q < 0) -+ if (q < 0 && r == 0) - r = q; - - if (serialization) { --- -1.7.9.2 - diff --git a/0004-util-ignore_file-should-not-allow-files-ending-with.patch b/0004-util-ignore_file-should-not-allow-files-ending-with.patch deleted file mode 100644 index a30b4c4f..00000000 --- a/0004-util-ignore_file-should-not-allow-files-ending-with.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 93f1a06374e335e8508d89e1bdaadf45be6ab777 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 31 May 2014 21:36:23 +0200 -Subject: [PATCH] util: ignore_file should not allow files ending with '~' - -ignore_file currently allows any file ending with '~' while it -seems that the opposite was intended: -a228a22fda4faa9ecb7c5a5e499980c8ae5d2a08 ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 0c27394..17b0ae1 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1371,7 +1371,7 @@ bool ignore_file(const char *filename) { - assert(filename); - - if (endswith(filename, "~")) -- return false; -+ return true; - - return ignore_file_allow_backup(filename); - } --- -1.7.9.2 - diff --git a/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch b/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch deleted file mode 100644 index 23ccc1d5..00000000 --- a/0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 306a55c86360a7ae7b2509771d5ea6ab0d166d85 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 29 Jun 2014 22:15:33 +0200 -Subject: [PATCH] util: refuse considering UID 0xFFFF and 0xFFFFFFFF valid - ---- - src/shared/util.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git src/shared/util.c src/shared/util.c -index e7ff0f8..1709bb7 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -280,6 +280,14 @@ int parse_uid(const char *s, uid_t* ret_uid) { - if ((unsigned long) uid != ul) - return -ERANGE; - -+ /* Some libc APIs use (uid_t) -1 as special placeholder */ -+ if (uid == (uid_t) 0xFFFFFFFF) -+ return -EINVAL; -+ -+ /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */ -+ if (uid == (uid_t) 0xFFFF) -+ return -EINVAL; -+ - *ret_uid = uid; - return 0; - } --- -1.7.9.2 - diff --git a/0005-Replace-var-run-with-run-in-remaining-places.patch b/0005-Replace-var-run-with-run-in-remaining-places.patch deleted file mode 100644 index 67c35e18..00000000 --- a/0005-Replace-var-run-with-run-in-remaining-places.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 41a55c46ab8fb4ef6727434227071321fc762cce Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 25 Feb 2014 20:11:04 -0500 -Subject: [PATCH] Replace /var/run with /run in remaining places - -/run was already used almost everywhere, fix the remaining places -for consistency. ---- - man/daemon.xml | 2 +- - man/runlevel.xml | 2 +- - man/tmpfiles.d.xml | 4 ++-- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/systemctl/systemctl.c | 4 ++-- - 5 files changed, 8 insertions(+), 8 deletions(-) - -diff --git man/daemon.xml man/daemon.xml -index 88dd082..fd29ba7 100644 ---- man/daemon.xml -+++ man/daemon.xml -@@ -149,7 +149,7 @@ - write the daemon PID (as returned by - getpid()) to a - PID file, for example -- /var/run/foobar.pid -+ /run/foobar.pid - (for a hypothetical daemon "foobar") - to ensure that the daemon cannot be - started more than once. This must be -diff --git man/runlevel.xml man/runlevel.xml -index 976753a..4db06dc 100644 ---- man/runlevel.xml -+++ man/runlevel.xml -@@ -124,7 +124,7 @@ - - - -- /var/run/utmp -+ /run/utmp - - The utmp database - runlevel reads the -diff --git man/tmpfiles.d.xml man/tmpfiles.d.xml -index 812129f..0a006d1 100644 ---- man/tmpfiles.d.xml -+++ man/tmpfiles.d.xml -@@ -441,8 +441,8 @@ r! /tmp/.X[0-9]*-lock - /etc/tmpfiles.d/screen.conf example - screen needs two directories created at boot with specific modes and ownership. - -- d /var/run/screens 1777 root root 10d --d /var/run/uscreens 0755 root root 10d12h -+ d /run/screens 1777 root root 10d -+d /run/uscreens 0755 root root 10d12h - - - /etc/tmpfiles.d/abrt.conf example -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index 20f540d..1318272 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; -+ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); - - return 0; - } -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 34d7079..8692716 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -3758,8 +3758,8 @@ static int show_one( - streq(verb, "status")) { - /* According to LSB: "program not running" */ - /* 0: program is running or service is OK -- * 1: program is dead and /var/run pid file exists -- * 2: program is dead and /var/lock lock file exists -+ * 1: program is dead and /run PID file exists -+ * 2: program is dead and /run/lock lock file exists - * 3: program is not running - * 4: program or service status is unknown - */ --- -1.7.9.2 - diff --git a/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch b/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch deleted file mode 100644 index 37c42d2e..00000000 --- a/0005-backlight-Do-not-clamp-brightness-for-LEDs.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 4cd2b2cf8ca585d15ebc859701b346658262b5bb Mon Sep 17 00:00:00 2001 -From: Denis Tikhomirov -Date: Thu, 5 Jun 2014 23:59:40 +0400 -Subject: [PATCH] backlight: Do not clamp brightness for LEDs - -https://bugs.freedesktop.org/show_bug.cgi?id=77092 - -On Thu, Jun 05, 2014 at 08:37:20AM +0200, Lennart Poettering wrote: -> The patch is line-broken, please send an uncorrupted patch! -I am very sorry, I forgot that my client limits line width. I will use -mutt now on. -> clamp_brightness() clamps the brightness value to the range of the -> actual device. This is a recent addition that was added to deal with -> driver updates where the resolution is changed. I don't think this part -> should be dropped for LED devices. The clamp_brightness() call hence -> should be called unconditionally, however, internally it should use a -> different min_brightness value if something is an !backlight devices... -Thank you for explanation, this sounds very reasonable to me. Please, -see updated patch: ---- - src/backlight/backlight.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index 691472c..4d94ebf 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -225,11 +225,13 @@ static unsigned get_max_brightness(struct udev_device *device) { - - /* Some systems turn the backlight all the way off at the lowest levels. - * clamp_brightness clamps the saved brightness to at least 1 or 5% of -- * max_brightness. This avoids preserving an unreadably dim screen, which -- * would otherwise force the user to disable state restoration. */ -+ * max_brightness in case of 'backlight' subsystem. This avoids preserving -+ * an unreadably dim screen, which would otherwise force the user to -+ * disable state restoration. */ - static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { - int r; - unsigned brightness, new_brightness, min_brightness; -+ const char *subsystem; - - r = safe_atou(*value, &brightness); - if (r < 0) { -@@ -237,7 +239,12 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned - return; - } - -- min_brightness = MAX(1U, max_brightness/20); -+ subsystem = udev_device_get_subsystem(device); -+ if (streq_ptr(subsystem, "backlight")) -+ min_brightness = MAX(1U, max_brightness/20); -+ else -+ min_brightness = 0; -+ - new_brightness = CLAMP(brightness, min_brightness, max_brightness); - if (new_brightness != brightness) { - char *old_value = *value; --- -1.7.9.2 - diff --git a/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch b/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch deleted file mode 100644 index bee5ed1a..00000000 --- a/0005-backlight-handle-saved-brightness-exceeding-max-brig.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 0c9d8f1d4b5018199cb5a9b57580dc1480a7f915 Mon Sep 17 00:00:00 2001 -From: Jani Nikula -Date: Wed, 7 May 2014 12:01:01 +0300 -Subject: [PATCH] backlight: handle saved brightness exceeding max brightness - -If too high a brightness value has been saved (e.g. due to kernel -mechanism changing from one kernel version to another, or booting the -userspace on another system), the brightness update fails and the -process exits. - -Clamp saved brightness between the policy minimum introduced in - -commit 7b909d7407965c03caaba30daae7aee113627a83 -Author: Josh Triplett -Date: Tue Mar 11 21:16:33 2014 -0700 - - backlight: Avoid restoring brightness to an unreadably dim level - -and the absolute maximum. - -https://bugs.freedesktop.org/show_bug.cgi?id=78200 ---- - src/backlight/backlight.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git src/backlight/backlight.c src/backlight/backlight.c -index c708391..691472c 100644 ---- src/backlight/backlight.c -+++ src/backlight/backlight.c -@@ -229,7 +229,7 @@ static unsigned get_max_brightness(struct udev_device *device) { - * would otherwise force the user to disable state restoration. */ - static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) { - int r; -- unsigned brightness, new_brightness; -+ unsigned brightness, new_brightness, min_brightness; - - r = safe_atou(*value, &brightness); - if (r < 0) { -@@ -237,7 +237,8 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned - return; - } - -- new_brightness = MAX3(brightness, 1U, max_brightness/20); -+ min_brightness = MAX(1U, max_brightness/20); -+ new_brightness = CLAMP(brightness, min_brightness, max_brightness); - if (new_brightness != brightness) { - char *old_value = *value; - -@@ -247,7 +248,11 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned - return; - } - -- log_debug("Saved brightness %s too low; increasing to %s.", old_value, *value); -+ log_info("Saved brightness %s %s to %s.", old_value, -+ new_brightness > brightness ? -+ "too low; increasing" : "too high; decreasing", -+ *value); -+ - free(old_value); - } - } --- -1.7.9.2 - diff --git a/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch b/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch deleted file mode 100644 index 119d1108..00000000 --- a/0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c119700c06b248b1c2a082b40b1a346f58d89da0 Mon Sep 17 00:00:00 2001 -From: Philippe De Swert -Date: Sun, 28 Sep 2014 18:12:51 +0300 -Subject: [PATCH] bootchart: Do not try to access data for non-existing CPU's - -Cpu's are assigned normally, so starting at 0, so the MAX_CPU index will -always be one smaller than the actual number. - -Found with Coverity. ---- - src/bootchart/store.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/bootchart/store.c src/bootchart/store.c -index 3099ff1..9ea1b27 100644 ---- src/bootchart/store.c -+++ src/bootchart/store.c -@@ -199,7 +199,7 @@ vmstat_next: - - if (strstr(key, "cpu")) { - r = safe_atoi((const char*)(key+3), &c); -- if (r < 0 || c > MAXCPUS) -+ if (r < 0 || c > MAXCPUS -1) - /* Oops, we only have room for MAXCPUS data */ - break; - sampledata->runtime[c] = atoll(rt); --- -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 deleted file mode 100644 index 93f4711e..00000000 --- a/0005-bus-avoid-using-m-kdbus-after-freeing-it.patch +++ /dev/null @@ -1,35 +0,0 @@ -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/0005-bus-close-a-bus-that-failed-to-connect.patch b/0005-bus-close-a-bus-that-failed-to-connect.patch deleted file mode 100644 index 9633317f..00000000 --- a/0005-bus-close-a-bus-that-failed-to-connect.patch +++ /dev/null @@ -1,28 +0,0 @@ -From db9bb83fa5ec72da38eb5bd0c259ef8c76a71858 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 3 Jul 2014 01:19:21 +0200 -Subject: [PATCH] bus: close a bus that failed to connect - ---- - 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 c25375c..28fc19e 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -1033,8 +1033,10 @@ _public_ int sd_bus_start(sd_bus *bus) { - else - return -EINVAL; - -- if (r < 0) -+ if (r < 0) { -+ sd_bus_close(bus); - return r; -+ } - - return bus_send_hello(bus); - } --- -1.7.9.2 - diff --git a/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch b/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch deleted file mode 100644 index 361a1713..00000000 --- a/0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch +++ /dev/null @@ -1,137 +0,0 @@ -From cdc06ed7b6120c1049305fa7033f228ee9d86043 Mon Sep 17 00:00:00 2001 -From: David Strauss -Date: Mon, 28 Apr 2014 12:08:32 -0700 -Subject: [PATCH] core: Filter by state behind the D-Bus API, not in the - systemctl client. - ---- - src/core/dbus-manager.c | 24 +++++++++++++++++++++++- - src/core/org.freedesktop.systemd1.conf | 4 ++++ - src/systemctl/systemctl.c | 24 +++++++++++++----------- - 3 files changed, 40 insertions(+), 12 deletions(-) - -diff --git src/core/dbus-manager.c src/core/dbus-manager.c -index 58e484d..d5fab0a 100644 ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c -@@ -728,7 +728,7 @@ static int method_reset_failed(sd_bus *bus, sd_bus_message *message, void *userd - return sd_bus_reply_method_return(message, NULL); - } - --static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { -+static int list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error, char **states) { - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - Manager *m = userdata; - const char *k; -@@ -761,6 +761,12 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat - - following = unit_following(u); - -+ if (!strv_isempty(states) && -+ !strv_contains(states, unit_load_state_to_string(u->load_state)) && -+ !strv_contains(states, unit_active_state_to_string(unit_active_state(u))) && -+ !strv_contains(states, unit_sub_state_to_string(u))) -+ continue; -+ - unit_path = unit_dbus_path(u); - if (!unit_path) - return -ENOMEM; -@@ -794,6 +800,21 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat - return sd_bus_send(bus, reply, NULL); - } - -+static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { -+ return list_units_filtered(bus, message, userdata, error, NULL); -+} -+ -+static int method_list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { -+ _cleanup_strv_free_ char **states = NULL; -+ int r; -+ -+ r = sd_bus_message_read_strv(message, &states); -+ if (r < 0) -+ return r; -+ -+ return list_units_filtered(bus, message, userdata, error, states); -+} -+ - static int method_list_jobs(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) { - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - Manager *m = userdata; -@@ -1670,6 +1691,7 @@ const sd_bus_vtable bus_manager_vtable[] = { - SD_BUS_METHOD("ClearJobs", NULL, NULL, method_clear_jobs, 0), - SD_BUS_METHOD("ResetFailed", NULL, NULL, method_reset_failed, 0), - SD_BUS_METHOD("ListUnits", NULL, "a(ssssssouso)", method_list_units, SD_BUS_VTABLE_UNPRIVILEGED), -+ SD_BUS_METHOD("ListUnitsFiltered", "as", "a(ssssssouso)", method_list_units_filtered, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("ListJobs", NULL, "a(usssoo)", method_list_jobs, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Subscribe", NULL, NULL, method_subscribe, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Unsubscribe", NULL, NULL, method_unsubscribe, SD_BUS_VTABLE_UNPRIVILEGED), -diff --git src/core/org.freedesktop.systemd1.conf src/core/org.freedesktop.systemd1.conf -index a375dce..9dfca81 100644 ---- src/core/org.freedesktop.systemd1.conf -+++ src/core/org.freedesktop.systemd1.conf -@@ -64,6 +64,10 @@ - - -+ -+ - - load_state) || -- strv_contains(arg_states, u->sub_state) || -- strv_contains(arg_states, u->active_state); -- - if (!strv_isempty(patterns)) { - char **pattern; - -@@ -467,6 +461,7 @@ static int get_unit_list( - UnitInfo **_unit_infos, - char **patterns) { - -+ _cleanup_bus_message_unref_ sd_bus_message *m = NULL; - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - _cleanup_free_ UnitInfo *unit_infos = NULL; -@@ -478,15 +473,22 @@ static int get_unit_list( - assert(_reply); - assert(_unit_infos); - -- r = sd_bus_call_method( -+ r = sd_bus_message_new_method_call( - bus, -+ &m, - "org.freedesktop.systemd1", - "/org/freedesktop/systemd1", - "org.freedesktop.systemd1.Manager", -- "ListUnits", -- &error, -- &reply, -- NULL); -+ "ListUnitsFiltered"); -+ -+ if (r < 0) -+ return bus_log_create_error(r); -+ -+ r = sd_bus_message_append_strv(m, arg_states); -+ if (r < 0) -+ return bus_log_create_error(r); -+ -+ r = sd_bus_call(bus, m, 0, &error, &reply); - if (r < 0) { - log_error("Failed to list units: %s", bus_error_message(&error, r)); - return r; --- -1.7.9.2 - diff --git a/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch b/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch deleted file mode 100644 index 05d6edc1..00000000 --- a/0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch +++ /dev/null @@ -1,121 +0,0 @@ -Based on c264aeab4b0e7b69f469e12e78d4a48b3ed7a66e Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 27 Jul 2014 00:11:08 +0200 -Subject: [PATCH] core: only set the kernel's timezone when the RTC runs in - local time - -We can not reliably manage any notion of local time. Every daylight -saving time change or time zone change by traveling will make the -time jump, and the local time might jump backwards which creates -unsolvable problems with file timestamps. - -We will no longer tell the kernel our local time zone and leave -everything set to UTC. This will effectively turn FAT timestamps -into UTC timestamps. - -If and only if the machine is configured to read the RTC in local -time mode, the kernel's time zone will be configured, but -systemd-timesysnc will disable the kernel's system time to RTC -syncing. In this mode, the RTC will not be managed, and external -tools like Windows bootups are expected to manage the RTC's time. - -https://bugs.freedesktop.org/show_bug.cgi?id=81538 ---- - src/core/main.c | 23 +++++++++++++++-------- - src/shared/hwclock.c | 15 ++++++++------- - src/shared/hwclock.h | 2 +- - 3 files changed, 24 insertions(+), 16 deletions(-) - ---- src/core/main.c -+++ src/core/main.c 2014-07-28 09:59:35.778235585 +0000 -@@ -1349,7 +1349,14 @@ int main(int argc, char *argv[]) { - if (hwclock_is_localtime() > 0) { - int min; - -- /* The first-time call to settimeofday() does a time warp in the kernel */ -+ /* -+ * The very first call of settimeofday() also does a time warp in the kernel. -+ * -+ * In the rtc-in-local time mode, we set the kernel's timezone, and rely on -+ * external tools to take care of maintaining the RTC and do all adjustments. -+ * This matches the behavior of Windows, which leaves the RTC alone if the -+ * registry tells that the RTC runs in UTC. -+ */ - r = hwclock_set_timezone(&min); - if (r < 0) - log_error("Failed to apply local time delta, ignoring: %s", strerror(-r)); -@@ -1357,19 +1364,19 @@ int main(int argc, char *argv[]) { - log_info("RTC configured in localtime, applying delta of %i minutes to system time.", min); - } else if (!in_initrd()) { - /* -- * Do dummy first-time call to seal the kernel's time warp magic -+ * Do a dummy very first call to seal the kernel's time warp magic. - * - * Do not call this this from inside the initrd. The initrd might not - * carry /etc/adjtime with LOCAL, but the real system could be set up - * that way. In such case, we need to delay the time-warp or the sealing - * until we reach the real system. -+ * -+ * Do no set the kernel's timezone. The concept of local time cannot -+ * be supported reliably, the time will jump or be incorrect at every daylight -+ * saving time change. All kernel local time concepts will be treated -+ * as UTC that way. - */ -- hwclock_reset_timezone(); -- -- /* Tell the kernel our timezone */ -- r = hwclock_set_timezone(NULL); -- if (r < 0) -- log_error("Failed to set the kernel's timezone, ignoring: %s", strerror(-r)); -+ hwclock_reset_timewarp(); - } - } - ---- src/shared/hwclock.c -+++ src/shared/hwclock.c 2014-07-28 09:59:12.914235566 +0000 -@@ -124,9 +124,10 @@ int hwclock_set_timezone(int *min) { - tz.tz_dsttime = 0; /* DST_NONE*/ - - /* -- * If the hardware clock does not run in UTC, but in local time: -- * The very first time we set the kernel's timezone, it will warp -- * the clock so that it runs in UTC instead of local time. -+ * If the RTC does not run in UTC but in local time, the very first -+ * call to settimeofday() will set the kernel's timezone and will warp the -+ * system clock, so that it runs in UTC instead of the local time we -+ * have read from the RTC. - */ - if (settimeofday(tv_null, &tz) < 0) - return -errno; -@@ -135,7 +136,7 @@ int hwclock_set_timezone(int *min) { - return 0; - } - --int hwclock_reset_timezone(void) { -+int hwclock_reset_timewarp(void) { - const struct timeval *tv_null = NULL; - struct timezone tz; - -@@ -143,9 +144,9 @@ int hwclock_reset_timezone(void) { - tz.tz_dsttime = 0; /* DST_NONE*/ - - /* -- * The very first time we set the kernel's timezone, it will warp -- * the clock. Do a dummy call here, so the time warping is sealed -- * and we set only the timezone with next call. -+ * The very first call to settimeofday() does time warp magic. Do a -+ * dummy call here, so the time warping is sealed and all later calls -+ * behave as expected. - */ - if (settimeofday(tv_null, &tz) < 0) - return -errno; ---- src/shared/hwclock.h -+++ src/shared/hwclock.h 2014-07-28 09:59:25.034736002 +0000 -@@ -23,6 +23,6 @@ - - int hwclock_is_localtime(void); - int hwclock_set_timezone(int *min); --int hwclock_reset_timezone(void); -+int hwclock_reset_timewarp(void); - int hwclock_get_time(struct tm *tm); - int hwclock_set_time(const struct tm *tm); diff --git a/0005-cryptsetup-fix-an-OOM-check.patch b/0005-cryptsetup-fix-an-OOM-check.patch deleted file mode 100644 index 23b39bb5..00000000 --- a/0005-cryptsetup-fix-an-OOM-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0e2f14014c65b4d8b30146e414579154cfa932da Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 23 Oct 2014 00:30:04 +0200 -Subject: [PATCH] cryptsetup: fix an OOM check - ---- - src/cryptsetup/cryptsetup-generator.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/cryptsetup/cryptsetup-generator.c src/cryptsetup/cryptsetup-generator.c -index 137b787..c7f30f6 100644 ---- src/cryptsetup/cryptsetup-generator.c -+++ src/cryptsetup/cryptsetup-generator.c -@@ -387,7 +387,7 @@ int main(int argc, char *argv[]) { - if (k == 2 && streq(proc_uuid, device + 5)) { - free(options); - options = strdup(p); -- if (!proc_options) { -+ if (!options) { - log_oom(); - goto cleanup; - } --- -1.7.9.2 - diff --git a/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index a309f6b9..00000000 --- a/0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 24e29480bd800d3acdb3087e5863440bd0dd1d80 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Fri, 16 May 2014 15:57:35 -0700 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 53 ++++++++++++++++++++++++++++++++- - 1 file changed, 52 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 28aa2a7..a65c7db 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -961,4 +961,55 @@ bluetooth:v013D* - ID_VENDOR_FROM_DATABASE=WirelessWERX - - bluetooth:v013E* -- ID_VENDOR_FROM_DATABASE=nimai -+ ID_VENDOR_FROM_DATABASE=Nod, Inc. -+ -+bluetooth:v013F* -+ ID_VENDOR_FROM_DATABASE=B&B Manufacturing Company -+ -+bluetooth:v0140* -+ ID_VENDOR_FROM_DATABASE=Alpine Electronics (China) Co., Ltd -+ -+bluetooth:v0141* -+ ID_VENDOR_FROM_DATABASE=FedEx Services -+ -+bluetooth:v0142* -+ ID_VENDOR_FROM_DATABASE=Grape Systems Inc. -+ -+bluetooth:v0143* -+ ID_VENDOR_FROM_DATABASE=Bkon Connect -+ -+bluetooth:v0144* -+ ID_VENDOR_FROM_DATABASE=Lintech GmbH -+ -+bluetooth:v0145* -+ ID_VENDOR_FROM_DATABASE=Novatel Wireless -+ -+bluetooth:v0146* -+ ID_VENDOR_FROM_DATABASE=Ciright -+ -+bluetooth:v0147* -+ ID_VENDOR_FROM_DATABASE=Mighty Cast, Inc. -+ -+bluetooth:v0148* -+ ID_VENDOR_FROM_DATABASE=Ambimat Electronics -+ -+bluetooth:v0149* -+ ID_VENDOR_FROM_DATABASE=Perytons Ltd. -+ -+bluetooth:v014A* -+ ID_VENDOR_FROM_DATABASE=Tivoli Audio, LLC -+ -+bluetooth:v014B* -+ ID_VENDOR_FROM_DATABASE=Master Lock -+ -+bluetooth:v014C* -+ ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd -+ -+bluetooth:v014D* -+ ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. -+ -+bluetooth:v014E* -+ ID_VENDOR_FROM_DATABASE=Tangerine, Inc. -+ -+bluetooth:v014F* -+ ID_VENDOR_FROM_DATABASE=B&W Group Ltd. --- -1.7.9.2 - diff --git a/0005-hwdb-update.patch b/0005-hwdb-update.patch deleted file mode 100644 index e97da5f5..00000000 --- a/0005-hwdb-update.patch +++ /dev/null @@ -1,1560 +0,0 @@ -From 7ba52a1283a0864b56947fa091048e8fe31a5899 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 21 May 2014 18:19:24 +0900 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 155 ++++++++++++++++++++- - hwdb/20-pci-vendor-model.hwdb | 141 ++++++++++++++++--- - hwdb/20-usb-vendor-model.hwdb | 302 ++++++++++++++++++++++++++++++++++++++++- - 3 files changed, 572 insertions(+), 26 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index afc0d90..6188bfc 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -52915,6 +52915,9 @@ OUI:0CA42A* - OUI:0CA694* - ID_OUI_FROM_DATABASE=Sunitec Enterprise Co.,Ltd - -+OUI:0CAC05* -+ ID_OUI_FROM_DATABASE=Unitend Technologies Inc. -+ - OUI:0CAF5A* - ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED - -@@ -53164,6 +53167,9 @@ OUI:1048B1* - OUI:104D77* - ID_OUI_FROM_DATABASE=Innovative Computer Engineering - -+OUI:105172* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:1056CA* - ID_OUI_FROM_DATABASE=Peplink International Ltd. - -@@ -53488,6 +53494,9 @@ OUI:147373* - OUI:147411* - ID_OUI_FROM_DATABASE=RIM - -+OUI:147590* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:147DB3* - ID_OUI_FROM_DATABASE=JOA TELECOM.CO.,LTD - -@@ -53899,6 +53908,9 @@ OUI:18C8E7* - OUI:18CC23* - ID_OUI_FROM_DATABASE=Philio Technology Corporation - -+OUI:18CF5E* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:18D071* - ID_OUI_FROM_DATABASE=DASAN SMC, Inc. - -@@ -54517,6 +54529,9 @@ OUI:20E791* - OUI:20EAC7* - ID_OUI_FROM_DATABASE=SHENZHEN RIOPINE ELECTRONICS CO., LTD - -+OUI:20ED74* -+ ID_OUI_FROM_DATABASE=Ability enterprise co.,Ltd. -+ - OUI:20EEC6* - ID_OUI_FROM_DATABASE=Elefirst Science & Tech Co ., ltd - -@@ -54742,6 +54757,9 @@ OUI:24CBE7* - OUI:24CF21* - ID_OUI_FROM_DATABASE=Shenzhen State Micro Technology Co., Ltd - -+OUI:24D13F* -+ ID_OUI_FROM_DATABASE=MEXUS CO.,LTD -+ - OUI:24D2CC* - ID_OUI_FROM_DATABASE=SmartDrive Systems Inc. - -@@ -55438,6 +55456,9 @@ OUI:2CF203* - OUI:2CF4C5* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:2CFAA2* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:30055C* - ID_OUI_FROM_DATABASE=Brother industries, LTD. - -@@ -55708,6 +55729,9 @@ OUI:30F9ED* - OUI:30FD11* - ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. - -+OUI:3400A3* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:340286* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -56077,6 +56101,9 @@ OUI:38229D* - OUI:3822D6* - ID_OUI_FROM_DATABASE=H3C Technologies Co., Limited - -+OUI:38262B* -+ ID_OUI_FROM_DATABASE=UTran Technology -+ - OUI:3826CD* - ID_OUI_FROM_DATABASE=ANDTEK - -@@ -56395,6 +56422,9 @@ OUI:3C404F* - OUI:3C438E* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:3C46D8* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:3C4A92* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -@@ -56710,6 +56740,9 @@ OUI:404A18* - OUI:404D8E* - ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd - -+OUI:404EEB* -+ ID_OUI_FROM_DATABASE=Higher Way Electronic Co., Ltd. -+ - OUI:4050E0* - ID_OUI_FROM_DATABASE=Milton Security Group LLC - -@@ -57709,6 +57742,9 @@ OUI:4CB9C8* - OUI:4CBAA3* - ID_OUI_FROM_DATABASE=Bison Electronics Inc. - -+OUI:4CBB58* -+ ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. -+ - OUI:4CBCA5* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -57757,6 +57793,9 @@ OUI:4CEDDE* - OUI:4CF02E* - ID_OUI_FROM_DATABASE=Vifa Denmark A/S - -+OUI:4CF2BF* -+ ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd. -+ - OUI:4CF45B* - ID_OUI_FROM_DATABASE=Blue Clover Devices - -@@ -57994,6 +58033,9 @@ OUI:50B888* - OUI:50B8A2* - ID_OUI_FROM_DATABASE=ImTech Technologies LLC, - -+OUI:50BD5F* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:50C006* - ID_OUI_FROM_DATABASE=Carmanah Signs - -@@ -58285,6 +58327,9 @@ OUI:54D1B0* - OUI:54D46F* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:54DF00* -+ ID_OUI_FROM_DATABASE=Ulterius Technologies, LLC -+ - OUI:54DF63* - ID_OUI_FROM_DATABASE=Intrakey technologies GmbH - -@@ -58597,6 +58642,9 @@ OUI:58F6BF* - OUI:58F98E* - ID_OUI_FROM_DATABASE=SECUDOS GmbH - -+OUI:58FCDB* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:58FD20* - ID_OUI_FROM_DATABASE=Bravida Sakerhet AB - -@@ -58621,6 +58669,9 @@ OUI:5C1193* - OUI:5C1437* - ID_OUI_FROM_DATABASE=Thyssenkrupp Aufzugswerke GmbH - -+OUI:5C1515* -+ ID_OUI_FROM_DATABASE=ADVAN -+ - OUI:5C15E1* - ID_OUI_FROM_DATABASE=AIDC TECHNOLOGY (S) PTE LTD - -@@ -58891,12 +58942,18 @@ OUI:5CF96A* - OUI:5CF9DD* - ID_OUI_FROM_DATABASE=Dell Inc - -+OUI:5CF9F0* -+ ID_OUI_FROM_DATABASE=Atomos Engineering P/L -+ - OUI:5CFF35* - ID_OUI_FROM_DATABASE=Wistron Corporation - - OUI:5CFFFF* - ID_OUI_FROM_DATABASE=Shenzhen Kezhonglong Optoelectronic Technology Co., Ltd - -+OUI:600292* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:6002B4* - ID_OUI_FROM_DATABASE=Wistron NeWeb Corp. - -@@ -59323,6 +59380,9 @@ OUI:644F74* - OUI:644FB0* - ID_OUI_FROM_DATABASE=Hyunjin.com - -+OUI:645106* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:64517E* - ID_OUI_FROM_DATABASE=LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD. - -@@ -59902,6 +59962,9 @@ OUI:68FB95* - OUI:68FCB3* - ID_OUI_FROM_DATABASE=Next Level Security Systems, Inc. - -+OUI:6C0273* -+ ID_OUI_FROM_DATABASE=Shenzhen Jin Yun Video Equipment Co., Ltd. -+ - OUI:6C0460* - ID_OUI_FROM_DATABASE=RBH Access Technologies Inc. - -@@ -60874,6 +60937,9 @@ OUI:781FDB* - OUI:78223D* - ID_OUI_FROM_DATABASE=Affirmed Networks - -+OUI:7824AF* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:782544* - ID_OUI_FROM_DATABASE=Omnima Limited - -@@ -60919,6 +60985,9 @@ OUI:784405* - OUI:784476* - ID_OUI_FROM_DATABASE=Zioncom technology co.,ltd - -+OUI:784561* -+ ID_OUI_FROM_DATABASE=CyberTAN Technology Inc. -+ - OUI:7845C4* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -61024,6 +61093,9 @@ OUI:789966* - OUI:78998F* - ID_OUI_FROM_DATABASE=MEDILINE ITALIA SRL - -+OUI:789CE7* -+ ID_OUI_FROM_DATABASE=Shenzhen Aikede Technology Co., Ltd -+ - OUI:789ED0* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -61480,6 +61552,9 @@ OUI:7CC8D7* - OUI:7CCB0D* - ID_OUI_FROM_DATABASE=Antaira Technologies, LLC - -+OUI:7CCCB8* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:7CCD11* - ID_OUI_FROM_DATABASE=MS-Magnet - -@@ -61945,6 +62020,9 @@ OUI:842F75* - OUI:8430E5* - ID_OUI_FROM_DATABASE=SkyHawke Technologies, LLC - -+OUI:8432EA* -+ ID_OUI_FROM_DATABASE=ANHUI WANZTEN P&T CO., LTD -+ - OUI:843497* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -63295,6 +63373,9 @@ OUI:94CDAC* - OUI:94CE2C* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -+OUI:94CE31* -+ ID_OUI_FROM_DATABASE=CTS Limited -+ - OUI:94D019* - ID_OUI_FROM_DATABASE=Cydle Corp. - -@@ -63409,6 +63490,9 @@ OUI:982CBE* - OUI:982D56* - ID_OUI_FROM_DATABASE=Resolution Audio - -+OUI:982F3C* -+ ID_OUI_FROM_DATABASE=Sichuan Changhong Electric Ltd. -+ - OUI:983000* - ID_OUI_FROM_DATABASE=Beijing KEMACOM Technologies Co., Ltd. - -@@ -63508,6 +63592,9 @@ OUI:9876B6* - OUI:987770* - ID_OUI_FROM_DATABASE=Pep Digital Technology (Guangzhou) Co., Ltd - -+OUI:987E46* -+ ID_OUI_FROM_DATABASE=Emizon Networks Limited -+ - OUI:988217* - ID_OUI_FROM_DATABASE=Disruptive Ltd - -@@ -64303,6 +64390,9 @@ OUI:A40BED* - OUI:A40CC3* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:A41242* -+ ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ - OUI:A4134E* - ID_OUI_FROM_DATABASE=Luxul - -@@ -65740,6 +65830,9 @@ OUI:B4B5AF* - OUI:B4B676* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:B4B859* -+ ID_OUI_FROM_DATABASE=Texa Spa -+ - OUI:B4B88D* - ID_OUI_FROM_DATABASE=Thuh Company - -@@ -65815,6 +65908,9 @@ OUI:B80305* - OUI:B80415* - ID_OUI_FROM_DATABASE=Bayan Audio - -+OUI:B808CF* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:B80B9D* - ID_OUI_FROM_DATABASE=ROPEX Industrie-Elektronik GmbH - -@@ -66277,6 +66373,9 @@ OUI:BC5FF4* - OUI:BC629F* - ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. - -+OUI:BC671C* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:BC6778* - ID_OUI_FROM_DATABASE=Apple - -@@ -66412,6 +66511,9 @@ OUI:BCCFCC* - OUI:BCD177* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:BCD1D3* -+ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp -+ - OUI:BCD5B6* - ID_OUI_FROM_DATABASE=d2d technologies - -@@ -66706,6 +66808,9 @@ OUI:C0E54E* - OUI:C0EAE4* - ID_OUI_FROM_DATABASE=Sonicwall - -+OUI:C0EEFB* -+ ID_OUI_FROM_DATABASE=OnePlus Tech (Shenzhen) Ltd -+ - OUI:C0F1C4* - ID_OUI_FROM_DATABASE=Pacidal Corporation Ltd. - -@@ -66721,6 +66826,9 @@ OUI:C0F8DA* - OUI:C0F991* - ID_OUI_FROM_DATABASE=GME Standard Communications P/L - -+OUI:C40006* -+ ID_OUI_FROM_DATABASE=Lipi Data Systems Ltd. -+ - OUI:C40142* - ID_OUI_FROM_DATABASE=MaxMedia Technology Limited - -@@ -67885,6 +67993,9 @@ OUI:D09C30* - OUI:D09D0A* - ID_OUI_FROM_DATABASE=LINKCOM - -+OUI:D0A0D6* -+ ID_OUI_FROM_DATABASE=Chengdu TD Tech Ltd. -+ - OUI:D0A311* - ID_OUI_FROM_DATABASE=Neuberger Gebäudeautomation GmbH - -@@ -68126,7 +68237,7 @@ OUI:D45AB2* - ID_OUI_FROM_DATABASE=Galleon Systems - - OUI:D45C70* -- ID_OUI_FROM_DATABASE=Wireless Gigabit Alliance -+ ID_OUI_FROM_DATABASE=Wi-Fi Alliance - - OUI:D45D42* - ID_OUI_FROM_DATABASE=Nokia Corporation -@@ -68359,6 +68470,9 @@ OUI:D808F5* - OUI:D809C3* - ID_OUI_FROM_DATABASE=Cercacor Labs - -+OUI:D80CCF* -+ ID_OUI_FROM_DATABASE=C.G.V. S.A.S. -+ - OUI:D80DE3* - ID_OUI_FROM_DATABASE=FXI TECHNOLOGIES AS - -@@ -68386,6 +68500,9 @@ OUI:D81EDE* - OUI:D824BD* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:D82522* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:D826B9* - ID_OUI_FROM_DATABASE=Guangdong Coagent Electronics S &T Co., Ltd. - -@@ -68521,6 +68638,9 @@ OUI:D89685* - OUI:D89695* - ID_OUI_FROM_DATABASE=Apple - -+OUI:D896E0* -+ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. -+ - OUI:D8973B* - ID_OUI_FROM_DATABASE=Artesyn Embedded Technologies - -@@ -68941,6 +69061,9 @@ OUI:E01C41* - OUI:E01CEE* - ID_OUI_FROM_DATABASE=Bravo Tech, Inc. - -+OUI:E01D38* -+ ID_OUI_FROM_DATABASE=Beijing HuaqinWorld Technology Co.,Ltd -+ - OUI:E01D3B* - ID_OUI_FROM_DATABASE=Cambridge Industries(Group) Co.,Ltd - -@@ -69373,6 +69496,9 @@ OUI:E47CF9* - OUI:E47D5A* - ID_OUI_FROM_DATABASE=Beijing Hanbang Technology Corp. - -+OUI:E47FB2* -+ ID_OUI_FROM_DATABASE=Fujitsu Limited -+ - OUI:E48184* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -69829,6 +69955,9 @@ OUI:EC219F* - OUI:EC2257* - ID_OUI_FROM_DATABASE=JiangSu NanJing University Electronic Information Technology Co.,Ltd - -+OUI:EC2280* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:EC233D* - ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd - -@@ -69970,6 +70099,9 @@ OUI:ECB106* - OUI:ECB541* - ID_OUI_FROM_DATABASE=SHINANO E and E Co.Ltd. - -+OUI:ECB907* -+ ID_OUI_FROM_DATABASE=CloudGenix Inc -+ - OUI:ECBBAE* - ID_OUI_FROM_DATABASE=Digivoice Tecnologia em Eletronica Ltda - -@@ -70189,6 +70321,9 @@ OUI:F0728C* - OUI:F073AE* - ID_OUI_FROM_DATABASE=PEAK-System Technik - -+OUI:F0761C* -+ ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD. -+ - OUI:F07765* - ID_OUI_FROM_DATABASE=Sourcefire, Inc - -@@ -70378,6 +70513,9 @@ OUI:F40321* - OUI:F4044C* - ID_OUI_FROM_DATABASE=ValenceTech Limited - -+OUI:F40669* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:F4068D* - ID_OUI_FROM_DATABASE=devolo AG - -@@ -70642,6 +70780,9 @@ OUI:F4EC38* - OUI:F4F15A* - ID_OUI_FROM_DATABASE=Apple - -+OUI:F4F26D* -+ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. -+ - OUI:F4F5A5* - ID_OUI_FROM_DATABASE=Nokia corporation - -@@ -70825,6 +70966,9 @@ OUI:F871FE* - OUI:F872EA* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:F87394* -+ ID_OUI_FROM_DATABASE=NETGEAR INC., -+ - OUI:F8769B* - ID_OUI_FROM_DATABASE=Neopis Co., Ltd. - -@@ -70915,6 +71059,9 @@ OUI:F8C001* - OUI:F8C091* - ID_OUI_FROM_DATABASE=Highgates Technology - -+OUI:F8C288* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F8C678* - ID_OUI_FROM_DATABASE=Carefusion - -@@ -71167,6 +71314,9 @@ OUI:FC683E* - OUI:FC6C31* - ID_OUI_FROM_DATABASE=LXinstruments GmbH - -+OUI:FC6DC0* -+ ID_OUI_FROM_DATABASE=BME CORPORATION -+ - OUI:FC7516* - ID_OUI_FROM_DATABASE=D-Link International - -@@ -71319,3 +71469,6 @@ OUI:FCFBFB* - - OUI:FCFE77* - ID_OUI_FROM_DATABASE=Hitachi Reftechno, Inc. -+ -+OUI:FCFFAA* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAL public listing for more information. -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 2957774..62941b9 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -4205,6 +4205,9 @@ pci:v00001002d00005F57* - pci:v00001002d00006600* - ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] - -+pci:v00001002d00006600sv0000103Csd00001952* -+ ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8670A/8670M/8750M] (ProBook 455 G1) -+ - pci:v00001002d00006601* - ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M] - -@@ -4292,6 +4295,12 @@ pci:v00001002d00006640* - pci:v00001002d00006641* - ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M] - -+pci:v00001002d00006646* -+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon R9 M280X] -+ -+pci:v00001002d00006647* -+ ID_MODEL_FROM_DATABASE=Bonaire PRO [Radeon R9 M270X] -+ - pci:v00001002d00006649* - ID_MODEL_FROM_DATABASE=Bonaire [FirePro W5100] - -@@ -6137,6 +6146,9 @@ pci:v00001002d0000683Dsv0000103Csd00006890* - pci:v00001002d0000683Dsv00001043sd00008760* - ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - -+pci:v00001002d0000683Dsv00001462sd00002710* -+ ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (R7770-PMD1GD5) -+ - pci:v00001002d0000683Dsv0000174Bsd00008304* - ID_MODEL_FROM_DATABASE=Cape Verde XT [Radeon HD 7770/8760 / R7 250X] (Radeon HD 8760 OEM) - -@@ -7856,6 +7868,15 @@ pci:v00001002d00006901* - pci:v00001002d00006920* - ID_MODEL_FROM_DATABASE=Tonga - -+pci:v00001002d00006921* -+ ID_MODEL_FROM_DATABASE=Amethyst XT [Radeon R9 M295X] -+ -+pci:v00001002d0000692B* -+ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] -+ -+pci:v00001002d0000692F* -+ ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] -+ - pci:v00001002d0000700F* - ID_MODEL_FROM_DATABASE=RS100 AGP Bridge - -@@ -24470,6 +24491,9 @@ pci:v000010DEd00000640* - pci:v000010DEd00000641* - ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] - -+pci:v000010DEd00000641sv00001682sd00004009* -+ ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] (PV-T94G-ZAFG) -+ - pci:v000010DEd00000643* - ID_MODEL_FROM_DATABASE=G96 [GeForce 9500 GT] - -@@ -26306,6 +26330,9 @@ pci:v000010DEd00000FD8* - pci:v000010DEd00000FD9* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 645M] - -+pci:v000010DEd00000FDB* -+ ID_MODEL_FROM_DATABASE=GK107M -+ - pci:v000010DEd00000FDF* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 740M] - -@@ -26861,6 +26888,12 @@ pci:v000010DEd00001140sv00001028sd000005E8* - pci:v000010DEd00001140sv00001028sd000005F4* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv00001028sd0000064E* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001028sd0000068D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv0000103Csd000018EF* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -@@ -27185,6 +27218,36 @@ pci:v000010DEd00001140sv000017AAsd00003803* - pci:v000010DEd00001140sv000017AAsd00003804* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv000017AAsd00003806* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ -+pci:v000010DEd00001140sv000017AAsd00003808* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ -+pci:v000010DEd00001140sv000017AAsd0000380D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd0000380E* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd0000380F* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003811* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003812* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003813* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003816* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00003818* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv000017AAsd00003901* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) - -@@ -27260,12 +27323,27 @@ pci:v000010DEd00001140sv000017AAsd0000502E* - pci:v000010DEd00001140sv000017AAsd0000502F* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv000017AAsd00005030* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ -+pci:v000010DEd00001140sv000017AAsd00005031* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ -+pci:v000010DEd00001140sv000017AAsd00005032* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv000017AAsd00005033* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv000017AAsd0000503E* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000503F* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -+pci:v000010DEd00001140sv000017AAsd00005040* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001854sd00000177* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - -@@ -28443,7 +28521,7 @@ pci:v000010ECd00008168sv00001043sd00008432* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8P67 and other motherboards) - - pci:v000010ECd00008168sv00001043sd00008505* -- ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (P8 series motherboard) - - pci:v000010ECd00008168sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (D270S/D250S Motherboard) -@@ -35300,6 +35378,9 @@ pci:v000011ABd00007810* - pci:v000011ABd00007820* - ID_MODEL_FROM_DATABASE=MV78200 [Discovery Innovation] ARM SoC - -+pci:v000011ABd00007823* -+ ID_MODEL_FROM_DATABASE=MV78230 [Armada XP] ARM SoC -+ - pci:v000011ABd0000F003* - ID_MODEL_FROM_DATABASE=GT-64010 Primary Image Piranha Image Generator - -@@ -36602,17 +36683,20 @@ pci:v00001217d00008120* - pci:v00001217d00008130* - ID_MODEL_FROM_DATABASE=Integrated MS/MSPRO/xD Controller - -+pci:v00001217d00008220* -+ ID_MODEL_FROM_DATABASE=OZ600FJ1/OZ900FJ1 SD/MMC Card Reader Controller -+ - pci:v00001217d00008221* -- ID_MODEL_FROM_DATABASE=SD/MMC Card Reader Controller -+ ID_MODEL_FROM_DATABASE=OZ600FJ0/OZ900FJ0/OZ600FJS SD/MMC Card Reader Controller - - pci:v00001217d00008320* -- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller -+ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller - - pci:v00001217d00008320sv00001028sd000004A3* -- ID_MODEL_FROM_DATABASE=OZ600 MMC/SD Controller (Precision M4600) -+ ID_MODEL_FROM_DATABASE=OZ600RJ1/OZ900RJ1 SD/MMC Card Reader Controller (Precision M4600) - - pci:v00001217d00008321* -- ID_MODEL_FROM_DATABASE=Integrated MMC/SD controller -+ ID_MODEL_FROM_DATABASE=OZ600RJ0/OZ900RJ0/OZ600RJS SD/MMC Card Reader Controller - - pci:v00001217d00008330* - ID_MODEL_FROM_DATABASE=OZ600 MS/xD Controller -@@ -46403,6 +46487,9 @@ pci:v000014F1d00008800sv00000070sd00009802* - pci:v000014F1d00008800sv00001002sd000000F8* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder Pro) - -+pci:v000014F1d00008800sv00001002sd000000F9* -+ ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (ATI TV Wonder) -+ - pci:v000014F1d00008800sv00001002sd0000A101* - ID_MODEL_FROM_DATABASE=CX23880/1/2/3 PCI Video and Audio Decoder (HDTV Wonder) - -@@ -50978,6 +51065,12 @@ pci:v000018F4d00000125* - pci:v000018F4d00000135* - ID_MODEL_FROM_DATABASE=NT20E2-PTP Network Adapter 2x10Gb - -+pci:v000018F4d00000145* -+ ID_MODEL_FROM_DATABASE=NT40E3-4-PTP Network Adapter 4x10Gb -+ -+pci:v000018F4d00000155* -+ ID_MODEL_FROM_DATABASE=NT100E3-1-PTP Network Adapter 1x100Gb -+ - pci:v000018F6* - ID_VENDOR_FROM_DATABASE=NextIO - -@@ -55143,7 +55236,7 @@ pci:v00008086d00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller - - pci:v00008086d00000150sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) - - pci:v00008086d00000150sv00001849sd00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) -@@ -55229,6 +55322,9 @@ pci:v00008086d0000015E* - pci:v00008086d00000162* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller - -+pci:v00008086d00000162sv00001043sd000084CA* -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (P8 series motherboard) -+ - pci:v00008086d00000162sv00001849sd00000162* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (Motherboard) - -@@ -59061,10 +59157,10 @@ pci:v00008086d00001521sv00001028sd00000602* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 2P I350-t LOM) - - pci:v00008086d00001521sv00001028sd00001F60* -- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 4P I350crNDC) -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P I350-t rNDC) - - pci:v00008086d00001521sv00001028sd00001F62* -- ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Intel GbE 2P I350crNDC) -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC) - - pci:v00008086d00001521sv00001028sd0000FF9A* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X710/I350 rNDC) -@@ -59250,7 +59346,10 @@ pci:v00008086d00001533* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection - - pci:v00008086d00001533sv0000103Csd00000003* -- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet I210-T1 GbE NIC) -+ -+pci:v00008086d00001533sv000010A9sd0000802C* -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (UV300 BaseIO single-port GbE) - - pci:v00008086d00001533sv000017AAsd00001100* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (ThinkServer Ethernet Server Adapter) -@@ -59261,15 +59360,15 @@ pci:v00008086d00001533sv00008086sd00000001* - pci:v00008086d00001533sv00008086sd00000002* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet Server Adapter I210-T1) - --pci:v00008086d00001534* -- ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -- - pci:v00008086d00001536* - ID_MODEL_FROM_DATABASE=I210 Gigabit Fiber Network Connection - - pci:v00008086d00001537* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - -+pci:v00008086d00001538* -+ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -+ - pci:v00008086d00001539* - ID_MODEL_FROM_DATABASE=I211 Gigabit Network Connection - -@@ -60267,7 +60366,7 @@ pci:v00008086d00001E02* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] - - pci:v00008086d00001E02sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (P8 series motherboard) - - pci:v00008086d00001E02sv00001849sd00001E02* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (Motherboard) -@@ -60374,6 +60473,9 @@ pci:v00008086d00001E20sv00001043sd00001517* - pci:v00008086d00001E20sv00001043sd00008415* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (P8H77-I Motherboard) - -+pci:v00008086d00001E20sv00001043sd00008445* -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (ASUS P8Z77-V LX Motherboard) -+ - pci:v00008086d00001E20sv00001849sd00001898* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family High Definition Audio Controller (Z77 Extreme4 motherboard) - -@@ -60387,7 +60489,7 @@ pci:v00008086d00001E22sv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E22sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (P8 series motherboard) - - pci:v00008086d00001E22sv00001849sd00001E22* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family SMBus Controller (Motherboard) -@@ -60411,7 +60513,7 @@ pci:v00008086d00001E26sv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E26sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (P8 series motherboard) - - pci:v00008086d00001E26sv00001849sd00001E26* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (Motherboard) -@@ -60426,7 +60528,7 @@ pci:v00008086d00001E2Dsv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Zenbook Prime UX31A) - - pci:v00008086d00001E2Dsv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (P8 series motherboard) - - pci:v00008086d00001E2Dsv00001849sd00001E2D* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (Motherboard) -@@ -60444,7 +60546,7 @@ pci:v00008086d00001E31sv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Zenbook Prime UX31A) - - pci:v00008086d00001E31sv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (P8 series motherboard) - - pci:v00008086d00001E31sv00001849sd00001E31* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family USB xHCI Host Controller (Motherboard) -@@ -60462,7 +60564,7 @@ pci:v00008086d00001E3Asv00001043sd00001517* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Zenbook Prime UX31A) - - pci:v00008086d00001E3Asv00001043sd000084CA* -- ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8H77-I Motherboard) -+ ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (P8 series motherboard) - - pci:v00008086d00001E3Asv00001849sd00001E3A* - ID_MODEL_FROM_DATABASE=7 Series/C210 Series Chipset Family MEI Controller #1 (Motherboard) -@@ -60488,6 +60590,9 @@ pci:v00008086d00001E43* - pci:v00008086d00001E44* - ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller - -+pci:v00008086d00001E44sv00001043sd000084CA* -+ ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (P8 series motherboard) -+ - pci:v00008086d00001E44sv00001849sd00001E44* - ID_MODEL_FROM_DATABASE=Z77 Express Chipset LPC Controller (Motherboard) - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 52586bc..05f267d 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -41163,7 +41163,7 @@ usb:v1234pED02* - ID_MODEL_FROM_DATABASE=Emotiv EPOC Developer Headset Wireless Dongle - - usb:v1235* -- ID_VENDOR_FROM_DATABASE=Novation EMS -+ ID_VENDOR_FROM_DATABASE=Focusrite-Novation - - usb:v1235p0001* - ID_MODEL_FROM_DATABASE=ReMOTE Audio/XStation First Edition -@@ -41729,6 +41729,9 @@ usb:v12D1p155A* - usb:v12D1p1575* - ID_MODEL_FROM_DATABASE=K5150 LTE modem - -+usb:v12D1p15CA* -+ ID_MODEL_FROM_DATABASE=E3131 3G/UMTS/HSPA+ Modem (Mass Storage Mode) -+ - usb:v12D1p1805* - ID_MODEL_FROM_DATABASE=AT&T Go Phone U2800A phone - -@@ -41744,6 +41747,12 @@ usb:v12D1p1C20* - usb:v12D1p1D50* - ID_MODEL_FROM_DATABASE=ET302s TD-SCDMA/TD-HSDPA Mobile Broadband - -+usb:v12D1p1F01* -+ ID_MODEL_FROM_DATABASE=E353/E3131 (Mass storage mode) -+ -+usb:v12D1p1F16* -+ ID_MODEL_FROM_DATABASE=K5150 LTE modem (Mass Storage Mode) -+ - usb:v12D1p380B* - ID_MODEL_FROM_DATABASE=WiMAX USB modem(s) - -@@ -41762,6 +41771,12 @@ usb:v12D6p0888* - usb:v12D7* - ID_VENDOR_FROM_DATABASE=BETTER WIRE FACTORY CO., LTD. - -+usb:v12D8* -+ ID_VENDOR_FROM_DATABASE=Araneus Information Systems Oy -+ -+usb:v12D8p0001* -+ ID_MODEL_FROM_DATABASE=Alea I True Random Number Generator -+ - usb:v12E6* - ID_VENDOR_FROM_DATABASE=Waldorf Music GmbH - -@@ -41805,7 +41820,7 @@ usb:v1307p0163* - ID_MODEL_FROM_DATABASE=256MB/512MB/1GB Flash Drive - - usb:v1307p0165* -- ID_MODEL_FROM_DATABASE=2GB/4GB Flash Drive -+ ID_MODEL_FROM_DATABASE=2GB/4GB/8GB Flash Drive - - usb:v1307p0190* - ID_MODEL_FROM_DATABASE=Ut190 8 GB Flash Drive with MicroSD reader -@@ -41846,6 +41861,51 @@ usb:v1312* - usb:v1313* - ID_VENDOR_FROM_DATABASE=ThorLabs - -+usb:v1313p0010* -+ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (Jungo) -+ -+usb:v1313p0011* -+ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (Jungo) -+ -+usb:v1313p0012* -+ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (Jungo) -+ -+usb:v1313p0110* -+ ID_MODEL_FROM_DATABASE=LC1 Linear Camera (VISA) -+ -+usb:v1313p0111* -+ ID_MODEL_FROM_DATABASE=SP1 Spectrometer (VISA) -+ -+usb:v1313p0112* -+ ID_MODEL_FROM_DATABASE=SP2 Spectrometer (VISA) -+ -+usb:v1313p8001* -+ ID_MODEL_FROM_DATABASE=TXP-Series Slot (TXP5001, TXP5004) -+ -+usb:v1313p8012* -+ ID_MODEL_FROM_DATABASE=BC106 Camera Beam Profiler -+ -+usb:v1313p8013* -+ ID_MODEL_FROM_DATABASE=WFS10 Wavefront Sensor -+ -+usb:v1313p8017* -+ ID_MODEL_FROM_DATABASE=BC206 Camera Beam Profiler -+ -+usb:v1313p8019* -+ ID_MODEL_FROM_DATABASE=BP2 Multi Slit Beam Profiler -+ -+usb:v1313p8020* -+ ID_MODEL_FROM_DATABASE=PM300 Optical Power Meter -+ -+usb:v1313p8021* -+ ID_MODEL_FROM_DATABASE=PM300E Optical Power and Energy Meter -+ -+usb:v1313p8022* -+ ID_MODEL_FROM_DATABASE=PM320E Optical Power and Energy Meter -+ -+usb:v1313p8030* -+ ID_MODEL_FROM_DATABASE=ER100 Extinction Ratio Meter -+ - usb:v1313p8070* - ID_MODEL_FROM_DATABASE=PM100D - -@@ -41975,6 +42035,18 @@ usb:v1342p0204* - usb:v1342p0304* - ID_MODEL_FROM_DATABASE=EasiDock Ethernet - -+usb:v1343* -+ ID_VENDOR_FROM_DATABASE=Citizen Systems -+ -+usb:v1343p0003* -+ ID_MODEL_FROM_DATABASE=CX / DNP DS40 -+ -+usb:v1343p0004* -+ ID_MODEL_FROM_DATABASE=CX-W / DNP DS80 -+ -+usb:v1343p0005* -+ ID_MODEL_FROM_DATABASE=CY / DNP DSRX -+ - usb:v1345* - ID_VENDOR_FROM_DATABASE=Sino Lite Technology Corp. - -@@ -42002,6 +42074,12 @@ usb:v1347p0403* - usb:v1347p0404* - ID_MODEL_FROM_DATABASE=G2/G3/G4 CCD-F KAF CCD - -+usb:v1347p0405* -+ ID_MODEL_FROM_DATABASE=Gx CCD-I CCD -+ -+usb:v1347p0406* -+ ID_MODEL_FROM_DATABASE=Gx CCD-F CCD -+ - usb:v1347p0410* - ID_MODEL_FROM_DATABASE=G1-0400 CCD - -@@ -42149,6 +42227,9 @@ usb:v138Ap003C* - usb:v138Ap003D* - ID_MODEL_FROM_DATABASE=VFS491 - -+usb:v138Ap0050* -+ ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor -+ - usb:v138E* - ID_VENDOR_FROM_DATABASE=Jungo LTD - -@@ -42161,6 +42242,9 @@ usb:v1390* - usb:v1390p0001* - ID_MODEL_FROM_DATABASE=GO 520 T/GO 630/ONE XL (v9) - -+usb:v1390p5454* -+ ID_MODEL_FROM_DATABASE=Blue & Me 2 -+ - usb:v1391* - ID_VENDOR_FROM_DATABASE=IdealTEK, Inc. - -@@ -42263,6 +42347,15 @@ usb:v13B1p0039* - usb:v13B1p003A* - ID_MODEL_FROM_DATABASE=AE2500 802.11abgn Wireless Adapter [Broadcom BCM43236] - -+usb:v13B1p003B* -+ ID_MODEL_FROM_DATABASE=AE3000 802.11abgn (3x3) Wireless Adapter [Ralink RT3573] -+ -+usb:v13B1p003E* -+ ID_MODEL_FROM_DATABASE=AE6000 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7610U] -+ -+usb:v13B1p003F* -+ ID_MODEL_FROM_DATABASE=WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] -+ - usb:v13B1p13B1* - ID_MODEL_FROM_DATABASE=WUSB200: Wireless-G Business Network Adapter with Rangebooster - -@@ -42446,6 +42539,12 @@ usb:v13D3p3315* - usb:v13D3p3375* - ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth 4.0 Adapter - -+usb:v13D3p3392* -+ ID_MODEL_FROM_DATABASE=Azurewave 43228+20702 -+ -+usb:v13D3p3394* -+ ID_MODEL_FROM_DATABASE=Bluetooth -+ - usb:v13D3p5070* - ID_MODEL_FROM_DATABASE=Webcam - -@@ -42458,6 +42557,9 @@ usb:v13D3p5115* - usb:v13D3p5116* - ID_MODEL_FROM_DATABASE=Integrated Webcam - -+usb:v13D3p5122* -+ ID_MODEL_FROM_DATABASE=2M Integrated Webcam -+ - usb:v13D3p5126* - ID_MODEL_FROM_DATABASE=PC Cam - -@@ -42524,6 +42626,9 @@ usb:v13FDp0840* - usb:v13FDp0841* - ID_MODEL_FROM_DATABASE=Samsung SE-T084M DVD-RW - -+usb:v13FDp1040* -+ ID_MODEL_FROM_DATABASE=INIC-1511L PATA Bridge -+ - usb:v13FDp1340* - ID_MODEL_FROM_DATABASE=Hi-Speed USB to SATA Bridge - -@@ -42533,9 +42638,15 @@ usb:v13FDp160F* - usb:v13FDp1640* - ID_MODEL_FROM_DATABASE=INIC-1610L SATA Bridge - -+usb:v13FDp1669* -+ ID_MODEL_FROM_DATABASE=INIC-1609PN -+ - usb:v13FDp1840* - ID_MODEL_FROM_DATABASE=INIC-1608 SATA bridge - -+usb:v13FDp1E40* -+ ID_MODEL_FROM_DATABASE=INIC-1610P SATA bridge -+ - usb:v13FE* - ID_VENDOR_FROM_DATABASE=Kingston Technology Company Inc. - -@@ -42555,10 +42666,10 @@ usb:v13FEp1E50* - ID_MODEL_FROM_DATABASE=U3 Smart Drive - - usb:v13FEp1F00* -- ID_MODEL_FROM_DATABASE=DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive -+ ID_MODEL_FROM_DATABASE=Kingston DataTraveler / Patriot Xporter - - usb:v13FEp1F23* -- ID_MODEL_FROM_DATABASE=2Gb -+ ID_MODEL_FROM_DATABASE=PS2232 flash drive controller - - usb:v13FEp2240* - ID_MODEL_FROM_DATABASE=microSD card reader -@@ -42569,12 +42680,18 @@ usb:v13FEp3100* - usb:v13FEp3123* - ID_MODEL_FROM_DATABASE=Verbatim STORE N GO 4GB - -+usb:v13FEp3600* -+ ID_MODEL_FROM_DATABASE=flash drive (4GB, EMTEC) -+ - usb:v13FEp3800* - ID_MODEL_FROM_DATABASE=Rage XT Flash Drive - - usb:v13FEp3E00* - ID_MODEL_FROM_DATABASE=Flash Drive - -+usb:v13FEp5000* -+ ID_MODEL_FROM_DATABASE=USB flash drive (32 GB SHARKOON Accelerate) -+ - usb:v13FEp5100* - ID_MODEL_FROM_DATABASE=Flash Drive - -@@ -42674,6 +42791,12 @@ usb:v1415p2000* - usb:v1419* - ID_VENDOR_FROM_DATABASE=ABILITY ENTERPRISE CO., LTD. - -+usb:v1421* -+ ID_VENDOR_FROM_DATABASE=Sensor Technology -+ -+usb:v1421p0605* -+ ID_MODEL_FROM_DATABASE=Sentech Camera -+ - usb:v1429* - ID_VENDOR_FROM_DATABASE=Vega Technologies Industrial (Austria) Co. - -@@ -42776,6 +42899,18 @@ usb:v1457p5118* - usb:v1457p5119* - ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot cdc_acm serial port - -+usb:v1457p511A* -+ ID_MODEL_FROM_DATABASE=HXD8 u-boot usbtty CDC ACM Mode -+ -+usb:v1457p511B* -+ ID_MODEL_FROM_DATABASE=SMDK2440 u-boot usbtty CDC ACM mode -+ -+usb:v1457p511C* -+ ID_MODEL_FROM_DATABASE=SMDK2443 u-boot usbtty CDC ACM mode -+ -+usb:v1457p511D* -+ ID_MODEL_FROM_DATABASE=QT2410 u-boot usbtty CDC ACM mode -+ - usb:v1457p5120* - ID_MODEL_FROM_DATABASE=OpenMoko Neo1973 u-boot usbtty generic serial - -@@ -42935,6 +43070,9 @@ usb:v148E* - usb:v148F* - ID_VENDOR_FROM_DATABASE=Ralink Technology, Corp. - -+usb:v148Fp1000* -+ ID_MODEL_FROM_DATABASE=Motorola BC4 Bluetooth 3.0+HS Adapter -+ - usb:v148Fp1706* - ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter - -@@ -42983,6 +43121,9 @@ usb:v148Fp5372* - usb:v148Fp5572* - ID_MODEL_FROM_DATABASE=RT5572 Wireless Adapter - -+usb:v148Fp7601* -+ ID_MODEL_FROM_DATABASE=MT7601U Wireless Adapter -+ - usb:v148Fp9020* - ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter - -@@ -42998,6 +43139,15 @@ usb:v1491p0020* - usb:v1493* - ID_VENDOR_FROM_DATABASE=Suunto - -+usb:v1493p0010* -+ ID_MODEL_FROM_DATABASE=Bluebird [Ambit] -+ -+usb:v1493p0019* -+ ID_MODEL_FROM_DATABASE=Duck [Ambit2] -+ -+usb:v1493p001A* -+ ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] -+ - usb:v1497* - ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. - -@@ -43118,6 +43268,9 @@ usb:v14CD* - usb:v14CDp121C* - ID_MODEL_FROM_DATABASE=microSD card reader - -+usb:v14CDp121F* -+ ID_MODEL_FROM_DATABASE=microSD CardReader SY-T18 -+ - usb:v14CDp123A* - ID_MODEL_FROM_DATABASE=SD/MMC/RS-MMC Card Reader - -@@ -43131,7 +43284,7 @@ usb:v14CDp6116* - ID_MODEL_FROM_DATABASE=M6116 SATA Bridge - - usb:v14CDp6600* -- ID_MODEL_FROM_DATABASE=USB 2.0 IDE DEVICE -+ ID_MODEL_FROM_DATABASE=M110E PATA bridge - - usb:v14CDp6700* - ID_MODEL_FROM_DATABASE=Card Reader -@@ -43166,6 +43319,9 @@ usb:v14E1* - usb:v14E1p5000* - ID_MODEL_FROM_DATABASE=PenMount 5000 Touch Controller - -+usb:v14E4* -+ ID_VENDOR_FROM_DATABASE=Broadcom Corp. -+ - usb:v14E5* - ID_VENDOR_FROM_DATABASE=SAIN Information & Communications Co., Ltd. - -@@ -43214,6 +43370,15 @@ usb:v1501* - usb:v1509* - ID_VENDOR_FROM_DATABASE=First International Computer, Inc. - -+usb:v1509p0A01* -+ ID_MODEL_FROM_DATABASE=LI-3100 Area Meter -+ -+usb:v1509p0A02* -+ ID_MODEL_FROM_DATABASE=LI-7000 CO2/H2O Gas Analyzer -+ -+usb:v1509p0A03* -+ ID_MODEL_FROM_DATABASE=C-DiGit Blot Scanner -+ - usb:v1509p9242* - ID_MODEL_FROM_DATABASE=eHome Infrared Transceiver - -@@ -43253,6 +43418,12 @@ usb:v1518p0001* - usb:v1518p0002* - ID_MODEL_FROM_DATABASE=HDReye (before firmware loads) - -+usb:v1519* -+ ID_VENDOR_FROM_DATABASE=Comneon -+ -+usb:v1519p0020* -+ ID_MODEL_FROM_DATABASE=HSIC Device -+ - usb:v1520* - ID_VENDOR_FROM_DATABASE=Bitwire Corp. - -@@ -43280,6 +43451,15 @@ usb:v1529p3100* - usb:v152A* - ID_VENDOR_FROM_DATABASE=Thesycon Systemsoftware & Consulting GmbH - -+usb:v152Ap8400* -+ ID_MODEL_FROM_DATABASE=INI DVS128 -+ -+usb:v152Ap840D* -+ ID_MODEL_FROM_DATABASE=INI DAViS -+ -+usb:v152Ap841A* -+ ID_MODEL_FROM_DATABASE=INI DAViS FX3 -+ - usb:v152D* - ID_VENDOR_FROM_DATABASE=JMicron Technology Corp. / JMicron USA Technology Corp. - -@@ -43337,6 +43517,9 @@ usb:v1532p0007* - usb:v1532p0013* - ID_MODEL_FROM_DATABASE=Orochi mouse - -+usb:v1532p0015* -+ ID_MODEL_FROM_DATABASE=Naga Mouse -+ - usb:v1532p0016* - ID_MODEL_FROM_DATABASE=DeathAdder Mouse - -@@ -43364,9 +43547,21 @@ usb:v1532p0102* - usb:v1532p0109* - ID_MODEL_FROM_DATABASE=Lycosa Keyboard - -+usb:v1532p0113* -+ ID_MODEL_FROM_DATABASE=RZ07-0074 Gaming Keypad [Orbweaver] -+ - usb:v1532p0300* - ID_MODEL_FROM_DATABASE=RZ06-0063 Motion Sensing Controllers [Hydra] - -+usb:v153B* -+ ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH -+ -+usb:v153Bp1181* -+ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 1 -+ -+usb:v153Bp1182* -+ ID_MODEL_FROM_DATABASE=Cinergy S2 PCIe Dual Port 2 -+ - usb:v1546* - ID_VENDOR_FROM_DATABASE=U-Blox AG - -@@ -43388,12 +43583,18 @@ usb:v154B* - usb:v154Bp0010* - ID_MODEL_FROM_DATABASE=USB 2.0 Flash Drive - -+usb:v154Bp0048* -+ ID_MODEL_FROM_DATABASE=Flash Drive -+ - usb:v154Bp004D* - ID_MODEL_FROM_DATABASE=8 GB Flash Drive - - usb:v154Bp0057* - ID_MODEL_FROM_DATABASE=32GB Micro Slide Attache Flash Drive - -+usb:v154Bp007A* -+ ID_MODEL_FROM_DATABASE=8GB Classic Attache Flash Drive -+ - usb:v154Bp6545* - ID_MODEL_FROM_DATABASE=FD Device - -@@ -43530,7 +43731,10 @@ usb:v15A2p0052* - ID_MODEL_FROM_DATABASE=i.MX50 SystemOnChip in RecoveryMode - - usb:v15A2p0054* -- ID_MODEL_FROM_DATABASE=i.MX6Q SystemOnChip in RecoveryMode -+ ID_MODEL_FROM_DATABASE=i.MX 6Dual/6Quad SystemOnChip in RecoveryMode -+ -+usb:v15A2p0061* -+ ID_MODEL_FROM_DATABASE=i.MX 6Solo/6DualLite SystemOnChip in RecoveryMode - - usb:v15A4* - ID_VENDOR_FROM_DATABASE=Afatech Technologies, Inc. -@@ -43640,6 +43844,9 @@ usb:v15C2p0036* - usb:v15C2p0038* - ID_MODEL_FROM_DATABASE=GD01 MX LCD Display/IR Receiver - -+usb:v15C2p0042* -+ ID_MODEL_FROM_DATABASE=Antec Veris Multimedia Station E-Z IR Receiver -+ - usb:v15C2pFFDA* - ID_MODEL_FROM_DATABASE=iMON PAD Remote Controller - -@@ -43724,6 +43931,9 @@ usb:v15D9p0A4C* - usb:v15D9p0A4D* - ID_MODEL_FROM_DATABASE=Optical Mouse - -+usb:v15D9p0A4F* -+ ID_MODEL_FROM_DATABASE=Optical Mouse -+ - usb:v15DC* - ID_VENDOR_FROM_DATABASE=Hynix Semiconductor Inc. - -@@ -44507,6 +44717,15 @@ usb:v1690p0740* - usb:v1690p0901* - ID_MODEL_FROM_DATABASE=Voyager 205 ADSL Router - -+usb:v1690p2000* -+ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard -+ -+usb:v1690p2001* -+ ID_MODEL_FROM_DATABASE=naturaSign Pad Standard -+ -+usb:v1690pFE12* -+ ID_MODEL_FROM_DATABASE=Bootloader -+ - usb:v1696* - ID_VENDOR_FROM_DATABASE=Hitachi Video and Information System, Inc. - -@@ -44669,6 +44888,9 @@ usb:v16C0p06B4* - usb:v16C0p06B5* - ID_MODEL_FROM_DATABASE=USB2LPT with 3 interfaces (native, HID, printer) - -+usb:v16C0p0762* -+ ID_MODEL_FROM_DATABASE=Osmocom SIMtrace -+ - usb:v16C0p076B* - ID_MODEL_FROM_DATABASE=OpenPCD 13.56MHz RFID Reader - -@@ -44759,6 +44981,15 @@ usb:v16D0p075D* - usb:v16D0p080A* - ID_MODEL_FROM_DATABASE=S2E1 Interface - -+usb:v16D0p0870* -+ ID_MODEL_FROM_DATABASE=Kaufmann Automotive GmbH, RKS+CAN Interface -+ -+usb:v16D1* -+ ID_VENDOR_FROM_DATABASE=Suprema Inc. -+ -+usb:v16D1p0401* -+ ID_MODEL_FROM_DATABASE=SUP-SFR400(A) BioMini Fingerprint Reader -+ - usb:v16D3* - ID_VENDOR_FROM_DATABASE=Frontline Test Equipment, Inc. - -@@ -44774,6 +45005,9 @@ usb:v16D5p6501* - usb:v16D5p6502* - ID_MODEL_FROM_DATABASE=CDMA/UMTS/GPRS modem - -+usb:v16D5p6603* -+ ID_MODEL_FROM_DATABASE=ADU-890WH modem -+ - usb:v16D6* - ID_VENDOR_FROM_DATABASE=JABLOCOM s.r.o. - -@@ -44870,6 +45104,18 @@ usb:v170Bp0011* - usb:v170D* - ID_VENDOR_FROM_DATABASE=Avnera - -+usb:v1711* -+ ID_VENDOR_FROM_DATABASE=Leica Microsystems -+ -+usb:v1711p3020* -+ ID_MODEL_FROM_DATABASE=IC80 HD Camera -+ -+usb:v1724* -+ ID_VENDOR_FROM_DATABASE=Meyer Instruments (MIS) -+ -+usb:v1724p0115* -+ ID_MODEL_FROM_DATABASE=PAXcam5 -+ - usb:v1725* - ID_VENDOR_FROM_DATABASE=Vitesse Semiconductor - -@@ -44957,9 +45203,21 @@ usb:v1737p0078* - usb:v1737p0079* - ID_MODEL_FROM_DATABASE=WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572] - -+usb:v173D* -+ ID_VENDOR_FROM_DATABASE=QSENN -+ -+usb:v173Dp0002* -+ ID_MODEL_FROM_DATABASE=GP-K7000 keyboard -+ - usb:v1740* - ID_VENDOR_FROM_DATABASE=Senao - -+usb:v1740p0100* -+ ID_MODEL_FROM_DATABASE=EUB1200AC AC1200 DB Wireless Adapter [Realtek RTL8812AU] -+ -+usb:v1740p0600* -+ ID_MODEL_FROM_DATABASE=EUB600v1 802.11abgn Wireless Adapter [Ralink RT3572] -+ - usb:v1740p0605* - ID_MODEL_FROM_DATABASE=LevelOne WUA-0605 N_Max Wireless USB Adapter - -@@ -45002,14 +45260,20 @@ usb:v1743* - usb:v1748* - ID_VENDOR_FROM_DATABASE=MQP Electronics - -+usb:v1748p0101* -+ ID_MODEL_FROM_DATABASE=Packet-Master USB12 -+ - usb:v174C* - ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc. - - usb:v174Cp5106* - ID_MODEL_FROM_DATABASE=Transcend StoreJet 25M3 - -+usb:v174Cp5136* -+ ID_MODEL_FROM_DATABASE=ASM1053 SATA 6Gb/s bridge -+ - usb:v174Cp55AA* -- ID_MODEL_FROM_DATABASE=ASMedia 2105 SATA bridge -+ ID_MODEL_FROM_DATABASE=ASM1051 SATA 3Gb/s bridge - - usb:v174F* - ID_VENDOR_FROM_DATABASE=Syntek -@@ -45137,6 +45401,9 @@ usb:v1781p0C31* - usb:v1781p0C9F* - ID_MODEL_FROM_DATABASE=USBtiny - -+usb:v1781p1EEF* -+ ID_MODEL_FROM_DATABASE=OpenAPC SecuKey -+ - usb:v1782* - ID_VENDOR_FROM_DATABASE=Spreadtrum Communications Inc. - -@@ -45206,6 +45473,9 @@ usb:v17A0p0100* - usb:v17A0p0101* - ID_MODEL_FROM_DATABASE=UB1 boundary microphone - -+usb:v17A0p0120* -+ ID_MODEL_FROM_DATABASE=Meteorite condenser microphone -+ - usb:v17A0p0200* - ID_MODEL_FROM_DATABASE=StudioDock monitors (internal hub) - -@@ -45221,6 +45491,9 @@ usb:v17A0p0301* - usb:v17A0p0302* - ID_MODEL_FROM_DATABASE=GoMic compact condenser microphone - -+usb:v17A0p0303* -+ ID_MODEL_FROM_DATABASE=C01U Pro condenser microphone -+ - usb:v17A0p0304* - ID_MODEL_FROM_DATABASE=Q2U handheld mic with XLR - -@@ -45371,6 +45644,9 @@ usb:v17E9p037C* - usb:v17E9p037D* - ID_MODEL_FROM_DATABASE=Plugable USB2-HDMI-165 - -+usb:v17E9p410A* -+ ID_MODEL_FROM_DATABASE=HDMI Adapter -+ - usb:v17E9p430A* - ID_MODEL_FROM_DATABASE=HP Port Replicator (Composite Device) - -@@ -45383,6 +45659,9 @@ usb:v17EB* - usb:v17EF* - ID_VENDOR_FROM_DATABASE=Lenovo - -+usb:v17EFp1000* -+ ID_MODEL_FROM_DATABASE=Hub -+ - usb:v17EFp1003* - ID_MODEL_FROM_DATABASE=Integrated Smart Card Reader - -@@ -45395,6 +45674,9 @@ usb:v17EFp1008* - usb:v17EFp100A* - ID_MODEL_FROM_DATABASE=ThinkPad Mini Dock Plus Series 3 - -+usb:v17EFp304B* -+ ID_MODEL_FROM_DATABASE=AX88179 Gigabit Ethernet [ThinkPad OneLink GigaLAN] -+ - usb:v17EFp3815* - ID_MODEL_FROM_DATABASE=ChipsBnk 2GB USB Stick - -@@ -45455,6 +45737,12 @@ usb:v17EFp6009* - usb:v17EFp6014* - ID_MODEL_FROM_DATABASE=Mini Wireless Keyboard N5901 - -+usb:v17EFp6025* -+ ID_MODEL_FROM_DATABASE=ThinkPad Travel Mouse -+ -+usb:v17EFp7203* -+ ID_MODEL_FROM_DATABASE=Ethernet adapter [U2L 100P-Y1] -+ - usb:v17EFp7423* - ID_MODEL_FROM_DATABASE=IdeaPad A1 Tablet - --- -1.7.9.2 - diff --git a/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch b/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch deleted file mode 100644 index ea295af2..00000000 --- a/0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch +++ /dev/null @@ -1,34 +0,0 @@ -Based on 1727a595225132eb73ec134b6979d9c713b42e8c Mon Sep 17 00:00:00 2001 -From: Michael Marineau -Date: Mon, 12 May 2014 09:26:16 +0200 -Subject: [PATCH] job: always add waiting jobs to run queue during coldplug - -commit 20a83d7bf was not equivalent to the original bug fix proposed by -Michal Sekletar . The committed version only added -the job to the run queue if the job had a timeout, which most jobs do -not have. Just re-ordering the code gets us the intended functionality ---- - src/core/job.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- src/core/job.c -+++ src/core/job.c 2014-05-12 13:11:24.918735646 +0000 -@@ -1051,15 +1051,15 @@ int job_coldplug(Job *j) { - - assert(j); - -+ if (j->state == JOB_WAITING) -+ job_add_to_run_queue(j); -+ - if (j->begin_usec == 0 || j->unit->job_timeout == 0) - return 0; - - if (j->timer_event_source) - j->timer_event_source = sd_event_source_unref(j->timer_event_source); - -- if (j->state == JOB_WAITING) -- job_add_to_run_queue(j); -- - r = sd_event_add_monotonic(j->manager->event, &j->timer_event_source, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j); - if (r < 0) - log_debug("Failed to restart timeout for job: %s", strerror(-r)); diff --git a/0005-journalctl-correct-help-text-for-until.patch b/0005-journalctl-correct-help-text-for-until.patch deleted file mode 100644 index 77563faf..00000000 --- a/0005-journalctl-correct-help-text-for-until.patch +++ /dev/null @@ -1,21 +0,0 @@ -Based on 7558251eef610e71595a0aa48952479906cb899a Mon Sep 17 00:00:00 2001 -From: Santiago Vila -Date: Sat, 25 Oct 2014 10:40:30 -0400 -Subject: [PATCH] journalctl: correct help text for --until - -http://bugs.debian.org/766598 ---- - src/journal/journalctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/journal/journalctl.c -+++ src/journal/journalctl.c 2014-10-29 14:10:18.863838313 +0000 -@@ -171,7 +171,7 @@ static int help(void) { - " --user Show only the user journal for the current user\n" - " -M --machine=CONTAINER Operate on local container\n" - " --since=DATE Start showing entries on or newer than the specified date\n" -- " --until=DATE Stop showing entries on or older than the specified date\n" -+ " --until=DATE Stop showing entries on or newer than the specified date\n" - " -c --cursor=CURSOR Start showing entries from the specified cursor\n" - " --after-cursor=CURSOR Start showing entries from after the specified cursor\n" - " --show-cursor Print the cursor after all the entries\n" diff --git a/0005-login-fix-mem-leak.patch b/0005-login-fix-mem-leak.patch deleted file mode 100644 index 69206fd5..00000000 --- a/0005-login-fix-mem-leak.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 13f493dc9ace9861c1f27c4d37e8cd6d52fe6a32 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sun, 31 Aug 2014 23:34:01 +0200 -Subject: [PATCH] login: fix mem leak - ---- - src/login/logind-session.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-09-01 12:59:27.870235647 +0000 -@@ -1101,8 +1101,10 @@ int session_set_controller(Session *s, c - * If logind crashes/restarts, we restore the controller during restart - * or reset the VT in case it crashed/exited, too. */ - r = session_mute_vt(s); -- if (r < 0) -+ if (r < 0) { -+ free(t); - return r; -+ } - - session_swap_controller(s, t); - diff --git a/0005-logind-fix-policykit-checks.patch b/0005-logind-fix-policykit-checks.patch deleted file mode 100644 index 69cf61a6..00000000 --- a/0005-logind-fix-policykit-checks.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 055d406624cb9e01963558767420b71e5f75d2d3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 10 Mar 2014 08:25:15 -0400 -Subject: [PATCH] logind: fix policykit checks - ---- - src/login/logind-dbus.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git src/login/logind-dbus.c src/login/logind-dbus.c -index c9c58f3..235b131 100644 ---- src/login/logind-dbus.c -+++ src/login/logind-dbus.c -@@ -1480,6 +1480,8 @@ static int method_do_shutdown_or_sleep( - action_multiple_sessions, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - if (blocked) { -@@ -1487,6 +1489,8 @@ static int method_do_shutdown_or_sleep( - action_ignore_inhibit, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - if (!multiple_sessions && !blocked) { -@@ -1494,6 +1498,8 @@ static int method_do_shutdown_or_sleep( - action, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error); --- -1.7.9.2 - diff --git a/0005-logind-fix-typo.patch b/0005-logind-fix-typo.patch deleted file mode 100644 index 79916e75..00000000 --- a/0005-logind-fix-typo.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2b2332856bafe25c4aa17db2a90bdcddef1fec1a Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Wed, 17 Sep 2014 20:10:44 +0200 -Subject: [PATCH] logind: fix typo - ---- - src/login/logind-session-dbus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/logind-session-dbus.c src/login/logind-session-dbus.c -index 7d81500..58836fc 100644 ---- src/login/logind-session-dbus.c -+++ src/login/logind-session-dbus.c -@@ -249,7 +249,7 @@ static int method_set_idle_hint(sd_bus *bus, sd_bus_message *message, void *user - return r; - - if (uid != 0 && uid != s->user->uid) -- return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session my set idle hint"); -+ return sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "Only owner of session may set idle hint"); - - session_set_idle_hint(s, b); - --- -1.7.9.2 - diff --git a/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch b/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch deleted file mode 100644 index aaae9d12..00000000 --- a/0005-logind-move-lid-switch-handling-from-logind-main-to-.patch +++ /dev/null @@ -1,119 +0,0 @@ -From b5d3e1688133077ca20542a20dcd8919147e72e1 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 11 Mar 2014 22:38:54 +0100 -Subject: [PATCH] logind: move lid switch handling from logind-main to - logind-core - -../src/login/logind-dbus.c:1352: error: undefined reference to 'manager_set_lid_switch_ignore' -collect2: error: ld returned 1 exit status -make[2]: *** [test-login-tables] ---- - src/login/logind-dbus.c | 40 ++++++++++++++++++++++++++++++++++++++++ - src/login/logind.c | 40 ---------------------------------------- - 2 files changed, 40 insertions(+), 40 deletions(-) - -diff --git src/login/logind-dbus.c src/login/logind-dbus.c -index c5f9cb3..2ef87f7 100644 ---- src/login/logind-dbus.c -+++ src/login/logind-dbus.c -@@ -1305,6 +1305,46 @@ static int bus_manager_log_shutdown( - q, NULL); - } - -+static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(e); -+ assert(m); -+ -+ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); -+ return 0; -+} -+ -+int manager_set_lid_switch_ignore(Manager *m, usec_t until) { -+ int r; -+ -+ assert(m); -+ -+ if (until <= now(CLOCK_MONOTONIC)) -+ return 0; -+ -+ /* We want to ignore the lid switch for a while after each -+ * suspend, and after boot-up. Hence let's install a timer for -+ * this. As long as the event source exists we ignore the lid -+ * switch. */ -+ -+ if (m->lid_switch_ignore_event_source) { -+ usec_t u; -+ -+ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); -+ if (r < 0) -+ return r; -+ -+ if (until <= u) -+ return 0; -+ -+ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); -+ } else -+ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); -+ -+ return r; -+} -+ - static int execute_shutdown_or_sleep( - Manager *m, - InhibitWhat w, -diff --git src/login/logind.c src/login/logind.c -index 03b7753..2d734ff 100644 ---- src/login/logind.c -+++ src/login/logind.c -@@ -962,46 +962,6 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us - return 0; - } - --static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) { -- Manager *m = userdata; -- -- assert(e); -- assert(m); -- -- m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source); -- return 0; --} -- --int manager_set_lid_switch_ignore(Manager *m, usec_t until) { -- int r; -- -- assert(m); -- -- if (until <= now(CLOCK_MONOTONIC)) -- return 0; -- -- /* We want to ignore the lid switch for a while after each -- * suspend, and after boot-up. Hence let's install a timer for -- * this. As long as the event source exists we ignore the lid -- * switch. */ -- -- if (m->lid_switch_ignore_event_source) { -- usec_t u; -- -- r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u); -- if (r < 0) -- return r; -- -- if (until <= u) -- return 0; -- -- r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until); -- } else -- r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m); -- -- return r; --} -- - int manager_startup(Manager *m) { - int r; - Seat *seat; --- -1.7.9.2 - diff --git a/0005-man-fix-path-in-crypttab-5.patch b/0005-man-fix-path-in-crypttab-5.patch deleted file mode 100644 index d0aef604..00000000 --- a/0005-man-fix-path-in-crypttab-5.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9fcdf32294e66f91d2a177f73a77049832768311 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 23 Jun 2014 23:07:53 -0400 -Subject: [PATCH] man: fix path in crypttab(5) - -https://bugs.freedesktop.org/show_bug.cgi?id=75816 ---- - man/crypttab.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git man/crypttab.xml man/crypttab.xml -index 668e51d..9030015 100644 ---- man/crypttab.xml -+++ man/crypttab.xml -@@ -369,7 +369,7 @@ - luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b - swap /dev/sda7 /dev/urandom swap - truecrypt /dev/sda2 /etc/container_password tcrypt --hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile -+hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile - - - --- -1.7.9.2 - diff --git a/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch b/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch deleted file mode 100644 index e5b6706d..00000000 --- a/0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 28650077f36466d9c5ee27ef2006fae3171a2430 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 30 Jun 2014 16:22:12 +0200 -Subject: [PATCH] nspawn: block open_by_handle_at() and others via seccomp - -Let's protect ourselves against the recently reported docker security -issue. Our man page makes clear that we do not make any security -promises anyway, but well, this one is easy to mitigate, so let's do it. -While we are at it block a couple of more syscalls that are no good in -containers, too. ---- - src/nspawn/nspawn.c | 47 +++++++++++++++++++++++++++++++++++------------ - 1 file changed, 35 insertions(+), 12 deletions(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index fd61d07..656c1bf 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1864,22 +1864,25 @@ static int setup_macvlan(pid_t pid) { - return 0; - } - --static int audit_still_doesnt_work_in_containers(void) { -+static int setup_seccomp(void) { - - #ifdef HAVE_SECCOMP -+ static const int blacklist[] = { -+ SCMP_SYS(kexec_load), -+ SCMP_SYS(open_by_handle_at), -+ SCMP_SYS(init_module), -+ SCMP_SYS(finit_module), -+ SCMP_SYS(delete_module), -+ SCMP_SYS(iopl), -+ SCMP_SYS(ioperm), -+ SCMP_SYS(swapon), -+ SCMP_SYS(swapoff), -+ }; -+ - scmp_filter_ctx seccomp; -+ unsigned i; - int r; - -- /* -- Audit is broken in containers, much of the userspace audit -- hookup will fail if running inside a container. We don't -- care and just turn off creation of audit sockets. -- -- This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail -- with EAFNOSUPPORT which audit userspace uses as indication -- that audit is disabled in the kernel. -- */ -- - seccomp = seccomp_init(SCMP_ACT_ALLOW); - if (!seccomp) - return log_oom(); -@@ -1890,6 +1893,26 @@ static int audit_still_doesnt_work_in_containers(void) { - goto finish; - } - -+ for (i = 0; i < ELEMENTSOF(blacklist); i++) { -+ r = seccomp_rule_add(seccomp, SCMP_ACT_ERRNO(EPERM), blacklist[i], 0); -+ if (r == -EFAULT) -+ continue; /* unknown syscall */ -+ if (r < 0) { -+ log_error("Failed to block syscall: %s", strerror(-r)); -+ goto finish; -+ } -+ } -+ -+ /* -+ Audit is broken in containers, much of the userspace audit -+ hookup will fail if running inside a container. We don't -+ care and just turn off creation of audit sockets. -+ -+ This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail -+ with EAFNOSUPPORT which audit userspace uses as indication -+ that audit is disabled in the kernel. -+ */ -+ - r = seccomp_rule_add( - seccomp, - SCMP_ACT_ERRNO(EAFNOSUPPORT), -@@ -3050,7 +3073,7 @@ int main(int argc, char *argv[]) { - - dev_setup(arg_directory); - -- if (audit_still_doesnt_work_in_containers() < 0) -+ if (setup_seccomp() < 0) - goto child_fail; - - if (setup_dev_console(arg_directory, console) < 0) --- -1.7.9.2 - diff --git a/0005-po-add-Greek-translation.patch b/0005-po-add-Greek-translation.patch deleted file mode 100644 index 029ce4fa..00000000 --- a/0005-po-add-Greek-translation.patch +++ /dev/null @@ -1,436 +0,0 @@ -From 3d89c35c2ae08c3fbf1a037c4df54c8e5ae56faf Mon Sep 17 00:00:00 2001 -From: Dimitris Spingos -Date: Wed, 7 May 2014 18:27:02 +0200 -Subject: [PATCH] po: add Greek translation - -https://bugs.freedesktop.org/show_bug.cgi?id=78064 ---- - po/LINGUAS | 3 +- - po/el.po | 404 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 406 insertions(+), 1 deletion(-) - create mode 100644 po/el.po - -diff --git po/LINGUAS po/LINGUAS -index 0301751..820ca82 100644 ---- po/LINGUAS -+++ po/LINGUAS -@@ -1,4 +1,5 @@ -+el - fr -+it - pl - ru --it -diff --git po/el.po po/el.po -new file mode 100644 -index 0000000..1570565 ---- /dev/null -+++ po/el.po -@@ -0,0 +1,404 @@ -+# Greek translation for systemd. -+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER -+# This file is distributed under the same license as the systemd package. -+# Dimitris Spingos , 2014. -+# Dimitris Spingos (Δημήτρης Σπίγγος) , 2014. -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd master\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=sys" -+"temd&keywords=I18N+L10N&component=general\n" -+"POT-Creation-Date: 2014-04-25 15:51+0000\n" -+"PO-Revision-Date: 2014-04-29 09:17+0300\n" -+"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) \n" -+"Language-Team: team@lists.gnome.gr\n" -+"Language: el\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Virtaal 0.7.0\n" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Set host name" -+msgstr "Ορισμός ονόματος οικοδεσπότη" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 -+msgid "Set static host name" -+msgstr "Ορισμός στατικού ονόματος οικοδεσπότη" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ορίσετε το στατικά ρυθμισμένο όνομα τοπικού " -+"οικοδεσπότη, καθώς και το pretty όνομα οικοδεσπότη." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Ορισμός πληροφοριών μηχανής" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Authentication is required to set local machine information." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε πληροφορίες τοπικής μηχανής." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 -+msgid "Set system locale" -+msgstr "Ορισμός τοπικών ρυθμίσεων συστήματος" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ορίσετε τις τοπικές ρυθμίσεις του συστήματος." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Ορισμός ρυθμίσεων πληκτρολογίου συστήματος" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ορίσετε τις ρυθμίσεις πληκτρολογίου του " -+"συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow applications to inhibit system shutdown" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τον τερματισμό του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:2 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"shutdown." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει τον " -+"τερματισμό του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:3 -+msgid "Allow applications to delay system shutdown" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να καθυστερούν τον τερματισμό του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:4 -+msgid "" -+"Authentication is required to allow an application to delay system shutdown." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " -+"τον τερματισμό του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:5 -+msgid "Allow applications to inhibit system sleep" -+msgstr "Να επιτρέπεται στις εφαρμογές να αποτρέπουν την ύπνωση του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow an application to inhibit system sleep." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"ύπνωση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:7 -+msgid "Allow applications to delay system sleep" -+msgstr "Να επιτρέπεται στις εφαρμογές να καθυστερούν την ύπνωση του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow an application to delay system sleep." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει " -+"την ύπνωση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:9 -+msgid "Allow applications to inhibit automatic system suspend" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν την αυτόματη αναστολή του " -+"συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:10 -+msgid "" -+"Authentication is required to allow an application to inhibit automatic " -+"system suspend." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"αυτόματη αναστολή του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:11 -+msgid "Allow applications to inhibit system handling of the power key" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " -+"ενεργοποίησης του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:12 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the power key." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του πλήκτρου ενεργοποίησης του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:13 -+msgid "Allow applications to inhibit system handling of the suspend key" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " -+"αναστολής του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:14 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the suspend key." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του πλήκτρου αναστολής του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:15 -+msgid "Allow applications to inhibit system handling of the hibernate key" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου " -+"αδρανοποίησης του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:16 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the hibernate key." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του πλήκτρου αδρανοποίησης του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:17 -+msgid "Allow applications to inhibit system handling of the lid switch" -+msgstr "" -+"Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του διακόπτη " -+"καλύμματος του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:18 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the lid switch." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την " -+"διαχείριση του διακόπτη καλύμματος του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:19 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Να επιτρέπεται σε μη συνδεμένους χρήστες να εκτελούν προγράμματα" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:20 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs." -+msgstr "" -+"Απαιτείται πιστοποίηση για να επιτρέπεται σε μη συνδεμένους χρήστες να " -+"εκτελούν προγράμματα." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:21 -+msgid "Allow attaching devices to seats" -+msgstr "Να επιτρέπεται η προσάρτηση συσκευών στους σταθμούς εργασίας" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:22 -+msgid "Authentication is required for attaching a device to a seat." -+msgstr "" -+"Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:23 -+msgid "Flush device to seat attachments" -+msgstr "Αφαίρεση συσκευής από προσαρτήσεις σταθμού εργασίας" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:24 -+msgid "" -+"Authentication is required for resetting how devices are attached to seats." -+msgstr "" -+"Απαιτείται πιστοποίηση για επαναφορά του τρόπου που οι συσκευές προσαρτώνται " -+"στους σταθμούς εργασίας." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:25 -+msgid "Power off the system" -+msgstr "Σβήσιμο του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:26 -+msgid "Authentication is required for powering off the system." -+msgstr "Απαιτείται πιστοποίηση για την σβήσιμο του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:27 -+msgid "Power off the system while other users are logged in" -+msgstr "Σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:28 -+msgid "" -+"Authentication is required for powering off the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι " -+"συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:29 -+msgid "Power off the system while an application asked to inhibit it" -+msgstr "Απενεργοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:30 -+msgid "" -+"Authentication is required for powering off the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για απενεργοποίηση του συστήματος ενώ μια εφαρμογή " -+"ζήτησε να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:31 -+msgid "Reboot the system" -+msgstr "Επανεκκίνηση του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:32 -+msgid "Authentication is required for rebooting the system." -+msgstr "Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:33 -+msgid "Reboot the system while other users are logged in" -+msgstr "Επανεκκίνηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:34 -+msgid "" -+"Authentication is required for rebooting the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ άλλοι χρήστες " -+"είναι συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:35 -+msgid "Reboot the system while an application asked to inhibit it" -+msgstr "Επανεκκίνηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:36 -+msgid "" -+"Authentication is required for rebooting the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ μια εφαρμογή " -+"ζήτησε να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:37 -+msgid "Suspend the system" -+msgstr "Αναστολή του συστήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:38 -+msgid "Authentication is required for suspending the system." -+msgstr "Απαιτείται πιστοποίηση για την αναστολή του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:39 -+msgid "Suspend the system while other users are logged in" -+msgstr "Αναστολή του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:40 -+msgid "" -+"Authentication is required for suspending the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ άλλοι χρήστες είναι " -+"συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:41 -+msgid "Suspend the system while an application asked to inhibit it" -+msgstr "Αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:42 -+msgid "" -+"Authentication is required for suspending the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε " -+"να αποτραπεί." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:43 -+msgid "Hibernate the system" -+msgstr "Αδρανοποίηση του συτήματος" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:44 -+msgid "Authentication is required for hibernating the system." -+msgstr "Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:45 -+msgid "Hibernate the system while other users are logged in" -+msgstr "Αδρανοποίηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:46 -+msgid "" -+"Authentication is required for hibernating the system while other users are " -+"logged in." -+msgstr "" -+"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ άλλοι χρήστες " -+"είναι συνδεμένοι." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:47 -+msgid "Hibernate the system while an application asked to inhibit it" -+msgstr "Αδρανοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:48 -+msgid "" -+"Authentication is required for hibernating the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ μια εφαρμογή " -+"ζήτησε να αποτραπεί." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 -+msgid "Set system time" -+msgstr "Ορισμός ώρας συστήματος" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 -+msgid "Authentication is required to set the system time." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Set system timezone" -+msgstr "Ορισμός ζώνης ώρας συστήματος" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Απαιτείται πιστοποίηση για να ορίσετε την ώρα ζώνης του συστήματος." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Ορισμός RTC στην τοπική ζώνη ώρας ή UTC" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ελέγξετε αν το RTC αποθηκεύει την τοπική ή την " -+"ώρα UTC." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Turn network time synchronization on or off" -+msgstr "Ενεργοποίηση/Απενεργοποίηση συγχρονισμού ώρας δικτύου" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Απαιτείται πιστοποίηση για να ελέγξετε αν ο συγχρονισμός ώρας δικτύου θα " -+"ενεργοποιηθεί." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 -+msgid "Send passphrase back to system" -+msgstr "Αποστολή του συνθηματικού πίσω στο σύστημα" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 -+msgid "" -+"Authentication is required to send the entered passphrase back to the system." -+msgstr "" -+"Απαιτείται πιστοποίηση για αποστολή του εισερχόμενου συνθηματικού πίσω στο " -+"σύστημα." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -+msgid "Privileged system and service manager access" -+msgstr "Προνομιούχος πρόσβαση διαχειριστή συστήματος και υπηρεσίας" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -+msgid "Authentication is required to access the system and service manager." -+msgstr "" -+"Απαιτείται πιστοποίηση για να προσπελάσετε τον διαχειριστή συστήματος και " -+"υπηρεσιών." --- -1.7.9.2 - diff --git a/0005-sd-daemon-fix-incorrect-variable-access.patch b/0005-sd-daemon-fix-incorrect-variable-access.patch deleted file mode 100644 index 99a923b2..00000000 --- a/0005-sd-daemon-fix-incorrect-variable-access.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 56dc9aec21ab23f76fadf45585adf88e71aa8078 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Mar 2014 23:54:14 +0100 -Subject: [PATCH] sd-daemon: fix incorrect variable access - ---- - src/libsystemd/sd-daemon/sd-daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-daemon/sd-daemon.c src/libsystemd/sd-daemon/sd-daemon.c -index 21fb346..b013438 100644 ---- src/libsystemd/sd-daemon/sd-daemon.c -+++ src/libsystemd/sd-daemon/sd-daemon.c -@@ -517,7 +517,7 @@ _public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) { - r = -errno; - goto finish; - } -- if (!p || p == e || *p || l <= 0) { -+ if (!p || p == e || *p || ll <= 0) { - r = -EINVAL; - goto finish; - } --- -1.7.9.2 - diff --git a/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch b/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch deleted file mode 100644 index 3c3d9e50..00000000 --- a/0005-sd-id128-do-stricter-checking-of-random-boot-id.patch +++ /dev/null @@ -1,37 +0,0 @@ -From cef3566998fcae6936d781e678c309950a8a5787 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Oct 2014 20:57:30 -0400 -Subject: [PATCH] sd-id128: do stricter checking of random boot id - -If we are bothering to check whether the kernel is not feeding us -bad data, we might as well do it properly. - -CID #1237692. ---- - src/libsystemd/sd-id128/sd-id128.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git src/libsystemd/sd-id128/sd-id128.c src/libsystemd/sd-id128/sd-id128.c -index a1e44e6..233ffa0 100644 ---- src/libsystemd/sd-id128/sd-id128.c -+++ src/libsystemd/sd-id128/sd-id128.c -@@ -183,11 +183,14 @@ _public_ int sd_id128_get_boot(sd_id128_t *ret) { - for (j = 0, p = buf; j < 16; j++) { - int a, b; - -- if (p >= buf + k) -+ if (p >= buf + k - 1) - return -EIO; - -- if (*p == '-') -+ if (*p == '-') { - p++; -+ if (p >= buf + k - 1) -+ return -EIO; -+ } - - a = unhexchar(p[0]); - b = unhexchar(p[1]); --- -1.7.9.2 - diff --git a/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch b/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch deleted file mode 100644 index 5dfa4ed5..00000000 --- a/0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch +++ /dev/null @@ -1,45 +0,0 @@ -Based on 85529c815b47c22839e0f148af67fd37e977cbfa Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 12 Aug 2014 19:29:27 +0200 -Subject: [PATCH] sd-resolve: fix allocation if query ids, never reuse them - ---- - src/libsystemd/sd-resolve/sd-resolve.c | 12 ++++-------- - 1 file changed, 4 insertions(+), 8 deletions(-) - ---- src/libsystemd/sd-resolve/sd-resolve.c -+++ src/libsystemd/sd-resolve/sd-resolve.c 2014-08-22 14:18:24.838235343 +0000 -@@ -81,7 +81,7 @@ struct sd_resolve { - pthread_t workers[WORKERS_MAX]; - unsigned n_valid_workers; - -- unsigned current_id, current_index; -+ unsigned current_id; - sd_resolve_query* queries[QUERIES_MAX]; - unsigned n_queries; - -@@ -892,21 +892,17 @@ static int alloc_query(sd_resolve *resol - if (r < 0) - return r; - -- while (resolve->queries[resolve->current_index]) { -- resolve->current_index++; -+ while (resolve->queries[resolve->current_id % QUERIES_MAX]) - resolve->current_id++; - -- resolve->current_index %= QUERIES_MAX; -- } -- -- q = resolve->queries[resolve->current_index] = new0(sd_resolve_query, 1); -+ q = resolve->queries[resolve->current_id % QUERIES_MAX] = new0(sd_resolve_query, 1); - if (!q) - return -ENOMEM; - - resolve->n_queries++; - - q->resolve = resolve; -- q->id = resolve->current_id; -+ q->id = resolve->current_id++; - - *_q = q; - return 0; diff --git a/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch b/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch deleted file mode 100644 index ed5997e0..00000000 --- a/0005-service-don-t-accept-negative-ERRNO-notification-mes.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2040ccf171404b709acb0ecf1d1f17b87c5d05f0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 17:32:44 +0200 -Subject: [PATCH] service: don't accept negative ERRNO= notification messages - ---- - src/core/service.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/core/service.c src/core/service.c -index 5c54a34..d5aff99 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -2637,7 +2637,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - if (e) { - int status_errno; - -- if (safe_atoi(e + 6, &status_errno) < 0) -+ if (safe_atoi(e + 6, &status_errno) < 0 || status_errno < 0) - log_warning_unit(u->id, "Failed to parse ERRNO= field in notification message: %s", e); - else { - log_debug_unit(u->id, "%s: got %s", u->id, e); --- -1.7.9.2 - diff --git a/0005-shared-label.h-add-missing-stdio.h-include.patch b/0005-shared-label.h-add-missing-stdio.h-include.patch deleted file mode 100644 index 1c75aacc..00000000 --- a/0005-shared-label.h-add-missing-stdio.h-include.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 45f15021e3524b04d574b9ff4e801cb3219daf3f Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:42 +0200 -Subject: [PATCH] shared/label.h: add missing stdio.h include - ---- - src/shared/label.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/label.h src/shared/label.h -index 7294820..cb2ec79 100644 ---- src/shared/label.h -+++ src/shared/label.h -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - int label_init(const char *prefix); - void label_finish(void); --- -1.7.9.2 - diff --git a/0005-systemd-python-fix-failing-assert.patch b/0005-systemd-python-fix-failing-assert.patch deleted file mode 100644 index 9b0290d3..00000000 --- a/0005-systemd-python-fix-failing-assert.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b65f24238b0627143916a9c7f8315483a9666676 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 5 Apr 2014 13:29:50 -0400 -Subject: [PATCH] systemd-python: fix failing assert - -A parameter which was always null before, now get's set to -the module. ---- - src/python-systemd/_reader.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git src/python-systemd/_reader.c src/python-systemd/_reader.c -index 059b904..9a19a10 100644 ---- src/python-systemd/_reader.c -+++ src/python-systemd/_reader.c -@@ -902,7 +902,6 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) { - sd_id128_t id; - _cleanup_free_ char *msg = NULL; - -- assert(!self); - assert(args); - - if (!PyArg_ParseTuple(args, "z:get_catalog", &id_)) --- -1.7.9.2 - diff --git a/0005-systemd-run-add-some-extra-safety-checks.patch b/0005-systemd-run-add-some-extra-safety-checks.patch deleted file mode 100644 index 22d41889..00000000 --- a/0005-systemd-run-add-some-extra-safety-checks.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 5 Mar 2014 03:38:36 +0100 -Subject: [PATCH] systemd-run: add some extra safety checks - ---- - src/run/run.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/run/run.c src/run/run.c -index 81763c9..e71ca7d 100644 ---- src/run/run.c -+++ src/run/run.c -@@ -37,7 +37,7 @@ static const char *arg_description = NULL; - static const char *arg_slice = NULL; - static bool arg_send_sighup = false; - static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; --static char *arg_host = NULL; -+static const char *arg_host = NULL; - static bool arg_user = false; - static const char *arg_service_type = NULL; - static const char *arg_exec_user = NULL; -@@ -186,7 +186,7 @@ static int parse_argv(int argc, char *argv[]) { - - case ARG_NICE: - r = safe_atoi(optarg, &arg_nice); -- if (r < 0) { -+ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { - log_error("Failed to parse nice value"); - return -EINVAL; - } --- -1.7.9.2 - diff --git a/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch b/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch deleted file mode 100644 index 875c905e..00000000 --- a/0005-units-order-sd-journal-flush-after-sd-remount-fs.patch +++ /dev/null @@ -1,38 +0,0 @@ -Based on 1f1926aa5e836caa3bd6df43704aecd606135103 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 2 Nov 2014 21:45:42 -0500 -Subject: [PATCH] units: order sd-journal-flush after sd-remount-fs - -Otherwise we could attempt to flush the journal while /var/log/ was -still ro, and silently skip journal flushing. - -The way that errors in flushing are handled should still be changed to -be more transparent and robust. - -Based on 919699ec301ea507edce4a619141ed22e789ac0d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 31 Oct 2014 16:22:36 +0100 -Subject: [PATCH] units: don't order journal flushing afte remote-fs.target - -Instead, only depend on the actual file systems we need. - -This should solve dep loops on setups where remote-fs.target is moved -into late boot. ---- - units/systemd-journal-flush.service.in | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- units/systemd-journal-flush.service.in -+++ units/systemd-journal-flush.service.in 2014-11-10 11:46:22.885518923 +0000 -@@ -10,8 +10,9 @@ Description=Trigger Flushing of Journal - Documentation=man:systemd-journald.service(8) man:journald.conf(5) - DefaultDependencies=no - Requires=systemd-journald.service --After=systemd-journald.service local-fs.target remote-fs.target --Before=systemd-user-sessions.service -+After=systemd-journald.service local-fs.target -+After=systemd-remount-fs.service -+Before=systemd-user-sessions.service systemd-tmpfiles-setup.service - - [Service] - ExecStart=@rootbindir@/systemctl kill --kill-who=main --signal=SIGUSR1 systemd-journald.service diff --git a/0005-util-avoid-double-close-of-fd.patch b/0005-util-avoid-double-close-of-fd.patch deleted file mode 100644 index e1b5dacc..00000000 --- a/0005-util-avoid-double-close-of-fd.patch +++ /dev/null @@ -1,28 +0,0 @@ -Based on 6f53e671aa7539cab02c9f739d84d28a343ca5bc Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Wed, 8 Oct 2014 23:57:32 +0200 -Subject: [PATCH] util: avoid double close of fd - -We could end with a double close if we close the fd loop and flush_fd -fails. That would make us goto fail and there we close the fd once -again. This patch sets the fd to the return value for safe_close: -1 -A fd with negative value will be ignored by the next call to -safe_close. - -CID#996223 ---- - src/shared/util.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- src/shared/util.c -+++ src/shared/util.c 2014-10-14 15:42:22.515839157 +0000 -@@ -1969,7 +1969,8 @@ int acquire_terminal( - * ended our handle will be dead. It's important that - * we do this after sleeping, so that we don't enter - * an endless loop. */ -- close_nointr_nofail(fd); -+ if (fd >= 0) close_nointr_nofail(fd); -+ fd = -1; - } - - if (notify >= 0) diff --git a/0006-Do-not-return-1-EINVAL-on-allocation-error.patch b/0006-Do-not-return-1-EINVAL-on-allocation-error.patch deleted file mode 100644 index bf1db2c6..00000000 --- a/0006-Do-not-return-1-EINVAL-on-allocation-error.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 315db1a8aed226a51a4cf700172249cfd10ae115 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 14 Mar 2014 09:05:56 -0400 -Subject: [PATCH] Do not return -1 (EINVAL) on allocation error - ---- - src/core/socket.c | 8 +++----- - -diff --git src/core/socket.c src/core/socket.c -index 8ecc9f9..b39bec2 100644 ---- src/core/socket.c -+++ src/core/socket.c -@@ -198,16 +198,14 @@ static int socket_instantiate_service(Socket *s) { - - assert(s->accept); - -- if (!(prefix = unit_name_to_prefix(UNIT(s)->id))) -+ prefix = unit_name_to_prefix(UNIT(s)->id); -+ if (!prefix) - return -ENOMEM; - -- r = asprintf(&name, "%s@%u.service", prefix, s->n_accepted); -- -- if (r < 0) -+ if (asprintf(&name, "%s@%u.service", prefix, s->n_accepted) < 0) - return -ENOMEM; - - r = manager_load_unit(UNIT(s)->manager, name, NULL, NULL, &u); -- - if (r < 0) - return r; - --- -1.7.9.2 - diff --git a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch deleted file mode 100644 index ed9a7a79..00000000 --- a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +++ /dev/null @@ -1,60 +0,0 @@ -From df1e02046144f41176c32ed011369fd8dba36b76 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 02:47:43 +0100 -Subject: [PATCH] Revert back to /var/run at a couple of problems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This partially reverts 41a55c46ab8fb4ef6727434227071321fc762cce - -Some specifications we want to stay compatibility actually document -/var/run, not /run, and we should stay compatible with that. In order to -make sure our D-Bus implementation works on any system, regardless if -running systemd or not, we should always use /var/run which is the -only path mandated by the D-Bus spec. - -Similar, glibc hardcodes the utmp location to /var/run, and this is -exposed in _UTMP_PATH in limits.h, hence let's stay in sync with this -public API, too. - -We simply do not support systems where /var/run is not a symlink → /run. -Hence both are equivalent. Staying compatible with upstream -specifications hence weighs more than cleaning up superficial -appearance. ---- - man/runlevel.xml | 2 +- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git man/runlevel.xml man/runlevel.xml -index 4db06dc..976753a 100644 ---- man/runlevel.xml -+++ man/runlevel.xml -@@ -124,7 +124,7 @@ - - - -- /run/utmp -+ /var/run/utmp - - The utmp database - runlevel reads the -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index 1318272..636715f 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); -+ strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); - - return 0; - } --- -1.7.9.2 - diff --git a/0006-bus-unref-buscreds-on-failure.patch b/0006-bus-unref-buscreds-on-failure.patch deleted file mode 100644 index d6ec9ccd..00000000 --- a/0006-bus-unref-buscreds-on-failure.patch +++ /dev/null @@ -1,32 +0,0 @@ -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/0006-calendarspec-fix-typo-in-annually.patch b/0006-calendarspec-fix-typo-in-annually.patch deleted file mode 100644 index 7e695966..00000000 --- a/0006-calendarspec-fix-typo-in-annually.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e90efc70900f8e69cfbafd9e9508bdeb4d40dad7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 25 Oct 2014 11:59:36 -0400 -Subject: [PATCH] calendarspec: fix typo in "annually" - -https://bugs.freedesktop.org/show_bug.cgi?id=85447 ---- - src/shared/calendarspec.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/shared/calendarspec.c src/shared/calendarspec.c -index 4ac74ab..64d0dec 100644 ---- src/shared/calendarspec.c -+++ src/shared/calendarspec.c -@@ -688,7 +688,8 @@ int calendar_spec_from_string(const char *p, CalendarSpec **spec) { - if (r < 0) - goto fail; - -- } else if (strcaseeq(p, "anually") || strcaseeq(p, "yearly")) { -+ } else if (strcaseeq(p, "annually") || strcaseeq(p, "yearly") -+ || strcaseeq(p, "anually") /* backwards compatibility */ ) { - r = const_chain(1, &c->month); - if (r < 0) - goto fail; --- -1.7.9.2 - diff --git a/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index c4e89bb1..00000000 --- a/0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 7cfa80f07e94c3e48703d145ef03a73dd6e7b983 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Wed, 18 Jun 2014 13:55:32 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 42 ++++++++++++++++++++++++++++++--- - 1 file changed, 39 insertions(+), 3 deletions(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index a65c7db..377748a 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -115,7 +115,7 @@ bluetooth:v0024* - ID_VENDOR_FROM_DATABASE=Alcatel - - bluetooth:v0025* -- ID_VENDOR_FROM_DATABASE=Philips Semiconductors -+ ID_VENDOR_FROM_DATABASE=NXP Semiconductors (formerly Philips Semiconductors) - - bluetooth:v0026* - ID_VENDOR_FROM_DATABASE=C Technologies -@@ -427,7 +427,7 @@ bluetooth:v008B* - ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC - - bluetooth:v008C* -- ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.) -+ ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.) - - bluetooth:v008D* - ID_VENDOR_FROM_DATABASE=Zscan Software -@@ -1006,10 +1006,46 @@ bluetooth:v014C* - ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd - - bluetooth:v014D* -- ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. -+ ID_VENDOR_FROM_DATABASE=Huizhou Desay SV Automotive CO., LTD. - - bluetooth:v014E* - ID_VENDOR_FROM_DATABASE=Tangerine, Inc. - - bluetooth:v014F* - ID_VENDOR_FROM_DATABASE=B&W Group Ltd. -+ -+bluetooth:v0150* -+ ID_VENDOR_FROM_DATABASE=Pioneer Corporation -+ -+bluetooth:v0151* -+ ID_VENDOR_FROM_DATABASE=OnBeep -+ -+bluetooth:v0152* -+ ID_VENDOR_FROM_DATABASE=Vernier Software & Technology -+ -+bluetooth:v0153* -+ ID_VENDOR_FROM_DATABASE=ROL Ergo -+ -+bluetooth:v0154* -+ ID_VENDOR_FROM_DATABASE=Pebble Technology -+ -+bluetooth:v0155* -+ ID_VENDOR_FROM_DATABASE=NETATMO -+ -+bluetooth:v0156* -+ ID_VENDOR_FROM_DATABASE=Accumulate AB -+ -+bluetooth:v0157* -+ ID_VENDOR_FROM_DATABASE=Anhui Huami Information Technology Co., Ltd. -+ -+bluetooth:v0158* -+ ID_VENDOR_FROM_DATABASE=Inmite s.r.o. -+ -+bluetooth:v0159* -+ ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. -+ -+bluetooth:v015A* -+ ID_VENDOR_FROM_DATABASE=micus AG -+ -+bluetooth:v015B* -+ ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. --- -1.7.9.2 - diff --git a/0006-hwdb-update.patch b/0006-hwdb-update.patch deleted file mode 100644 index 080bd96c..00000000 --- a/0006-hwdb-update.patch +++ /dev/null @@ -1,4392 +0,0 @@ -From 98be1a746ac0d7a17e69ccb05936a4d6b3223e97 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 3 Jul 2014 16:28:40 +0200 -Subject: [PATCH] hwdb: update - ---- - hwdb/20-OUI.hwdb | 543 +++++++++++++++++++-- - hwdb/20-pci-classes.hwdb | 27 ++ - hwdb/20-pci-vendor-model.hwdb | 1071 +++++++++++++++++++++++++++-------------- - hwdb/20-usb-classes.hwdb | 3 + - hwdb/20-usb-vendor-model.hwdb | 102 +++- - 5 files changed, 1362 insertions(+), 384 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 6188bfc..97f1e6b 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -6446,7 +6446,7 @@ OUI:0050C2871* - ID_OUI_FROM_DATABASE=R-S-I Elektrotechnik GmbH & Co. KG - - OUI:0050C2872* -- ID_OUI_FROM_DATABASE=Oliotalo - Objecthouse Oy -+ ID_OUI_FROM_DATABASE=Oliotalo Oy - - OUI:0050C2873* - ID_OUI_FROM_DATABASE=XRONET Corporation -@@ -37139,76 +37139,76 @@ OUI:001EC7* - ID_OUI_FROM_DATABASE=2Wire, Inc. - - OUI:001EC8* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Rapid Mobile (Pty) Ltd - - OUI:001EC9* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Dell Inc - - OUI:001ECA* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Nortel - - OUI:001ECB* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE="RPC "Energoautomatika" Ltd - - OUI:001ECC* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=CDVI - - OUI:001ECD* - ID_OUI_FROM_DATABASE=KYLAND Technology Co. LTD - - OUI:001ECE* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=BISA Technologies (Hong Kong) Limited - - OUI:001ECF* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=PHILIPS ELECTRONICS UK LTD - - OUI:001ED0* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Ingespace - - OUI:001ED1* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Keyprocessor B.V. - - OUI:001ED2* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Ray Shine Video Technology Inc - - OUI:001ED3* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Dot Technology Int'l Co., Ltd. - - OUI:001ED4* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Doble Engineering - - OUI:001ED5* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Tekon-Automatics - - OUI:001ED6* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Alentec & Orion AB - - OUI:001ED7* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=H-Stream Wireless, Inc. - - OUI:001ED8* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Digital United Inc. - - OUI:001ED9* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Mitsubishi Precision Co.,LTd. - - OUI:001EDA* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Wesemann Elektrotechniek B.V. - - OUI:001EDB* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Giken Trastem Co., Ltd. - - OUI:001EDC* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - - OUI:001EDD* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=WASKO S.A. - - OUI:001EDE* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=BYD COMPANY LIMITED - - OUI:001EDF* -- ID_OUI_FROM_DATABASE=2Wire, Inc. -+ ID_OUI_FROM_DATABASE=Master Industrialization Center Kista - - OUI:001EE0* - ID_OUI_FROM_DATABASE=Urmet Domus SpA -@@ -45800,7 +45800,7 @@ OUI:0050F8* - ID_OUI_FROM_DATABASE=ENTREGA TECHNOLOGIES, INC. - - OUI:0050F9* -- ID_OUI_FROM_DATABASE=SENSORMATIC ACD -+ ID_OUI_FROM_DATABASE=Sensormatic Electronics LLC - - OUI:0050FA* - ID_OUI_FROM_DATABASE=OXTEL, LTD. -@@ -45829,6 +45829,9 @@ OUI:0054AF* - OUI:005907* - ID_OUI_FROM_DATABASE=LenovoEMC Products USA, LLC - -+OUI:005A39* -+ ID_OUI_FROM_DATABASE=SHENZHEN FAST TECHNOLOGIES CO., LTD. -+ - OUI:005CB1* - ID_OUI_FROM_DATABASE=Gospell DIGITAL TECHNOLOGY CO., LTD - -@@ -46603,6 +46606,9 @@ OUI:0060FE* - OUI:0060FF* - ID_OUI_FROM_DATABASE=QuVis, Inc. - -+OUI:006171* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:006440* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -48238,6 +48244,9 @@ OUI:009C02* - OUI:009D8E* - ID_OUI_FROM_DATABASE=CARDIAC RECORDERS, INC. - -+OUI:009EC8* -+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronic Products Co., Ltd. -+ - OUI:00A000* - ID_OUI_FROM_DATABASE=CENTILLION NETWORKS, INC. - -@@ -50740,6 +50749,9 @@ OUI:00D38D* - OUI:00D632* - ID_OUI_FROM_DATABASE=GE Energy - -+OUI:00D9D1* -+ ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc. -+ - OUI:00DB1E* - ID_OUI_FROM_DATABASE=Albedo Telecom SL - -@@ -51778,6 +51790,9 @@ OUI:0462D7* - OUI:0463E0* - ID_OUI_FROM_DATABASE=Nome Oy - -+OUI:046785* -+ ID_OUI_FROM_DATABASE=scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH -+ - OUI:046D42* - ID_OUI_FROM_DATABASE=Bryston Ltd. - -@@ -51901,6 +51916,9 @@ OUI:04DB8A* - OUI:04DD4C* - ID_OUI_FROM_DATABASE=Velocytech - -+OUI:04DEDB* -+ ID_OUI_FROM_DATABASE=Rockport Networks Inc -+ - OUI:04DF69* - ID_OUI_FROM_DATABASE=Car Connectivity Consortium - -@@ -52498,6 +52516,9 @@ OUI:083F76* - OUI:084027* - ID_OUI_FROM_DATABASE=Gridstore Inc. - -+OUI:084656* -+ ID_OUI_FROM_DATABASE=VODALYS Ingénierie -+ - OUI:08482C* - ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD. - -@@ -52966,6 +52987,9 @@ OUI:0CCDD3* - OUI:0CCDFB* - ID_OUI_FROM_DATABASE=EDIC Systems Inc. - -+OUI:0CCFD1* -+ ID_OUI_FROM_DATABASE=SPRINGWAVE Co., Ltd -+ - OUI:0CD292* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -53089,6 +53113,9 @@ OUI:1010B6* - OUI:101212* - ID_OUI_FROM_DATABASE=Vivo International Corporation Pty Ltd - -+OUI:101218* -+ ID_OUI_FROM_DATABASE=Korins Inc. -+ - OUI:101248* - ID_OUI_FROM_DATABASE=ITG, Inc. - -@@ -53128,6 +53155,9 @@ OUI:102D96* - OUI:102EAF* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:102F6B* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:103047* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -53164,6 +53194,9 @@ OUI:104780* - OUI:1048B1* - ID_OUI_FROM_DATABASE=Beijing Duokan Technology Limited - -+OUI:104B46* -+ ID_OUI_FROM_DATABASE=Mitsubishi Electric Corporation -+ - OUI:104D77* - ID_OUI_FROM_DATABASE=Innovative Computer Engineering - -@@ -53242,6 +53275,9 @@ OUI:10880F* - OUI:1088CE* - ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. - -+OUI:108A1B* -+ ID_OUI_FROM_DATABASE=RAONIX Inc. -+ - OUI:108CCF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -53458,6 +53494,9 @@ OUI:144319* - OUI:1446E4* - ID_OUI_FROM_DATABASE=AVISTEL - -+OUI:14488B* -+ ID_OUI_FROM_DATABASE=Shenzhen Doov Technology Co.,Ltd -+ - OUI:144978* - ID_OUI_FROM_DATABASE=Digital Control Incorporated - -@@ -53473,6 +53512,9 @@ OUI:145412* - OUI:145645* - ID_OUI_FROM_DATABASE=Savitech Corp. - -+OUI:1458D0* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:145A05* - ID_OUI_FROM_DATABASE=Apple - -@@ -53608,6 +53650,9 @@ OUI:14EB33* - OUI:14EDA5* - ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme - -+OUI:14EDE4* -+ ID_OUI_FROM_DATABASE=Kaiam Corporation -+ - OUI:14EE9D* - ID_OUI_FROM_DATABASE=AirNav Systems LLC - -@@ -53794,6 +53839,9 @@ OUI:1867B0* - OUI:186D99* - ID_OUI_FROM_DATABASE=Adanis Inc. - -+OUI:187117* -+ ID_OUI_FROM_DATABASE=eta plus electronic gmbh -+ - OUI:1879A2* - ID_OUI_FROM_DATABASE=GMJ ELECTRIC LIMITED - -@@ -53812,6 +53860,9 @@ OUI:1880CE* - OUI:1880F5* - ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd - -+OUI:188219* -+ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd. -+ - OUI:188331* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -53857,6 +53908,9 @@ OUI:189EFC* - OUI:18A905* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -+OUI:18A958* -+ ID_OUI_FROM_DATABASE=PROVISION THAI CO., LTD. -+ - OUI:18A99B* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -54049,6 +54103,9 @@ OUI:1C43EC* - OUI:1C4593* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:1C4840* -+ ID_OUI_FROM_DATABASE=IMS Messsysteme GmbH -+ - OUI:1C48F9* - ID_OUI_FROM_DATABASE=GN Netcom A/S - -@@ -54064,6 +54121,9 @@ OUI:1C4BD6* - OUI:1C51B5* - ID_OUI_FROM_DATABASE=Techaya LTD - -+OUI:1C5216* -+ ID_OUI_FROM_DATABASE=DONGGUAN HELE ELECTRONICS CO., LTD -+ - OUI:1C52D6* - ID_OUI_FROM_DATABASE=FLAT DISPLAY TECHNOLOGY CORPORATION - -@@ -54100,6 +54160,9 @@ OUI:1C66AA* - OUI:1C69A5* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:1C6A7A* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:1C6BCA* - ID_OUI_FROM_DATABASE=Mitsunami Co., Ltd. - -@@ -54163,6 +54226,12 @@ OUI:1C973D* - OUI:1C994C* - ID_OUI_FROM_DATABASE=Murata Manufactuaring Co.,Ltd. - -+OUI:1C9C26* -+ ID_OUI_FROM_DATABASE=Zoovel Technologies -+ -+OUI:1CA2B1* -+ ID_OUI_FROM_DATABASE=ruwido austria gmbh -+ - OUI:1CA770* - ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT - -@@ -54217,6 +54286,9 @@ OUI:1CC63C* - OUI:1CD40C* - ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH - -+OUI:1CDEA7* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:1CDF0F* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -54286,6 +54358,9 @@ OUI:20107A* - OUI:201257* - ID_OUI_FROM_DATABASE=Most Lucky Trading Ltd - -+OUI:2012D5* -+ ID_OUI_FROM_DATABASE=Scientech Materials Corporation -+ - OUI:2013E0* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -54370,6 +54445,9 @@ OUI:205A00* - OUI:205B5E* - ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd - -+OUI:205CFA* -+ ID_OUI_FROM_DATABASE=Yangzhou ChangLian Network Technology Co,ltd. -+ - OUI:206432* - ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO.,LTD. - -@@ -54439,6 +54517,9 @@ OUI:20A2E7* - OUI:20A787* - ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited - -+OUI:20A99B* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:20AA25* - ID_OUI_FROM_DATABASE=IP-NET LLC - -@@ -54469,6 +54550,9 @@ OUI:20BFDB* - OUI:20C1AF* - ID_OUI_FROM_DATABASE=i Wit Digital Co., Limited - -+OUI:20C38F* -+ ID_OUI_FROM_DATABASE=Texas Instruments Inc -+ - OUI:20C60D* - ID_OUI_FROM_DATABASE=Shanghai annijie Information technology Co.,LTD - -@@ -54616,6 +54700,9 @@ OUI:2437EF* - OUI:243C20* - ID_OUI_FROM_DATABASE=Dynamode Group - -+OUI:2442BC* -+ ID_OUI_FROM_DATABASE=Alinco,incorporated -+ - OUI:244597* - ID_OUI_FROM_DATABASE=GEMUE Gebr. Mueller Apparatebau - -@@ -55027,6 +55114,9 @@ OUI:28A241* - OUI:28A574* - ID_OUI_FROM_DATABASE=Miller Electric Mfg. Co. - -+OUI:28A5EE* -+ ID_OUI_FROM_DATABASE=Shenzhen SDGI CATV Co., Ltd -+ - OUI:28AF0A* - ID_OUI_FROM_DATABASE=Sirius XM Radio Inc - -@@ -55177,6 +55267,9 @@ OUI:2C0033* - OUI:2C00F7* - ID_OUI_FROM_DATABASE=XOS - -+OUI:2C010B* -+ ID_OUI_FROM_DATABASE=NASCENT Technology, LLC - RemKon -+ - OUI:2C0623* - ID_OUI_FROM_DATABASE=Win Leader Inc. - -@@ -55192,6 +55285,9 @@ OUI:2C18AE* - OUI:2C1984* - ID_OUI_FROM_DATABASE=IDN Telecom, Inc. - -+OUI:2C1A31* -+ ID_OUI_FROM_DATABASE=Electronics Company Limited -+ - OUI:2C1EEA* - ID_OUI_FROM_DATABASE=AERODEV - -@@ -55369,6 +55465,9 @@ OUI:2C9EFC* - OUI:2CA157* - ID_OUI_FROM_DATABASE=acromate, Inc. - -+OUI:2CA30E* -+ ID_OUI_FROM_DATABASE=POWER DRAGON DEVELOPMENT LIMITED -+ - OUI:2CA780* - ID_OUI_FROM_DATABASE=True Technologies Inc. - -@@ -55540,6 +55639,9 @@ OUI:303EAD* - OUI:304174* - ID_OUI_FROM_DATABASE=ALTEC LANSING LLC - -+OUI:304225* -+ ID_OUI_FROM_DATABASE=BURG-WÄCHTER KG -+ - OUI:304449* - ID_OUI_FROM_DATABASE=PLATH GmbH - -@@ -55603,6 +55705,9 @@ OUI:306E5C* - OUI:3071B2* - ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. - -+OUI:307512* -+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB -+ - OUI:30766F* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -55735,6 +55840,9 @@ OUI:3400A3* - OUI:340286* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:34029B* -+ ID_OUI_FROM_DATABASE=CloudBerry Technologies Private Limited -+ - OUI:3407FB* - ID_OUI_FROM_DATABASE=Ericsson AB - -@@ -55774,6 +55882,9 @@ OUI:3423BA* - OUI:34255D* - ID_OUI_FROM_DATABASE=Shenzhen Loadcom Technology Co.,Ltd - -+OUI:3428F0* -+ ID_OUI_FROM_DATABASE=ATN International Limited -+ - OUI:3429EA* - ID_OUI_FROM_DATABASE=MCD ELECTRONICS SP. Z O.O. - -@@ -55798,6 +55909,9 @@ OUI:344B3D* - OUI:344B50* - ID_OUI_FROM_DATABASE=ZTE Corporation - -+OUI:344DF7* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:344F3F* - ID_OUI_FROM_DATABASE=IO-Power Technology Co., Ltd. - -@@ -55825,6 +55939,9 @@ OUI:345D10* - OUI:346178* - ID_OUI_FROM_DATABASE=The Boeing Company - -+OUI:346288* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:34684A* - ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. - -@@ -55939,6 +56056,9 @@ OUI:34B1F7* - OUI:34B571* - ID_OUI_FROM_DATABASE=PLDS - -+OUI:34B7FD* -+ ID_OUI_FROM_DATABASE=Guangzhou Younghead Electronic Technology Co.,Ltd -+ - OUI:34BA51* - ID_OUI_FROM_DATABASE=Se-Kure Controls, Inc. - -@@ -56047,6 +56167,9 @@ OUI:34F39B* - OUI:34F62D* - ID_OUI_FROM_DATABASE=SHARP Corporation - -+OUI:34F6D2* -+ ID_OUI_FROM_DATABASE=Panasonic Taiwan Co.,Ltd. -+ - OUI:34F968* - ID_OUI_FROM_DATABASE=ATEK Products, LLC - -@@ -56062,6 +56185,9 @@ OUI:380197* - OUI:3806B4* - ID_OUI_FROM_DATABASE=A.D.C. GmbH - -+OUI:3808FD* -+ ID_OUI_FROM_DATABASE=Silca Spa -+ - OUI:380A0A* - ID_OUI_FROM_DATABASE=Sky-City Communication and Electronics Limited Company - -@@ -56137,6 +56263,9 @@ OUI:384608* - OUI:38484C* - ID_OUI_FROM_DATABASE=Apple - -+OUI:384B76* -+ ID_OUI_FROM_DATABASE=AIRTAME ApS -+ - OUI:384FF0* - ID_OUI_FROM_DATABASE=Azurewave Technologies, Inc. - -@@ -56227,6 +56356,9 @@ OUI:38AA3C* - OUI:38B12D* - ID_OUI_FROM_DATABASE=Sonotronic Nagel GmbH - -+OUI:38B1DB* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:38B5BD* - ID_OUI_FROM_DATABASE=E.G.O. Elektro-Ger - -@@ -56302,6 +56434,9 @@ OUI:38EE9D* - OUI:38F098* - ID_OUI_FROM_DATABASE=Vapor Stone Rail Systems - -+OUI:38F33F* -+ ID_OUI_FROM_DATABASE=TATSUNO CORPORATION -+ - OUI:38F597* - ID_OUI_FROM_DATABASE=home2net GmbH - -@@ -56443,6 +56578,9 @@ OUI:3C57D5* - OUI:3C5A37* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:3C5AB4* -+ ID_OUI_FROM_DATABASE=Google -+ - OUI:3C5F01* - ID_OUI_FROM_DATABASE=Synerchip Co., Ltd. - -@@ -56803,6 +56941,9 @@ OUI:407074* - OUI:407496* - ID_OUI_FROM_DATABASE=aFUN TECHNOLOGY INC. - -+OUI:40786A* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:407875* - ID_OUI_FROM_DATABASE=IMBEL - Industria de Material Belico do Brasil - -@@ -56929,6 +57070,9 @@ OUI:40D40E* - OUI:40D559* - ID_OUI_FROM_DATABASE=MICRO S.E.R.I. - -+OUI:40E230* -+ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc. -+ - OUI:40E730* - ID_OUI_FROM_DATABASE=DEY Storage Systems, Inc. - -@@ -57145,6 +57289,9 @@ OUI:4486C1* - OUI:4487FC* - ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD. - -+OUI:4488CB* -+ ID_OUI_FROM_DATABASE=Camco Technologies NV -+ - OUI:448A5B* - ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD. - -@@ -57337,6 +57484,9 @@ OUI:4851B7* - OUI:485261* - ID_OUI_FROM_DATABASE=SOREEL - -+OUI:4857DD* -+ ID_OUI_FROM_DATABASE=Facebook -+ - OUI:485929* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -57361,6 +57511,9 @@ OUI:4861A3* - OUI:486276* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:486B2C* -+ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., -+ - OUI:486B91* - ID_OUI_FROM_DATABASE=Fleetwood Group Inc. - -@@ -57391,6 +57544,9 @@ OUI:4891F6* - OUI:489BE2* - ID_OUI_FROM_DATABASE=SCI Innovations Ltd - -+OUI:489D18* -+ ID_OUI_FROM_DATABASE=Flashbay Limited -+ - OUI:489D24* - ID_OUI_FROM_DATABASE=Research In Motion - -@@ -57655,6 +57811,9 @@ OUI:4C7367* - OUI:4C73A5* - ID_OUI_FROM_DATABASE=KOVE - -+OUI:4C7403* -+ ID_OUI_FROM_DATABASE=Mundo Reader (bq) -+ - OUI:4C774F* - ID_OUI_FROM_DATABASE=Embedded Wireless Labs - -@@ -57745,6 +57904,9 @@ OUI:4CBAA3* - OUI:4CBB58* - ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd. - -+OUI:4CBC42* -+ ID_OUI_FROM_DATABASE=Shenzhen Hangsheng Electronics Co.,Ltd. -+ - OUI:4CBCA5* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -57784,6 +57946,9 @@ OUI:4CE1BB* - OUI:4CE676* - ID_OUI_FROM_DATABASE=Buffalo Inc. - -+OUI:4CE933* -+ ID_OUI_FROM_DATABASE=RailComm, LLC -+ - OUI:4CEB42* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -57799,6 +57964,9 @@ OUI:4CF2BF* - OUI:4CF45B* - ID_OUI_FROM_DATABASE=Blue Clover Devices - -+OUI:4CF5A0* -+ ID_OUI_FROM_DATABASE=Scalable Network Technologies Inc -+ - OUI:4CF737* - ID_OUI_FROM_DATABASE=SamJi Electronics Co., Ltd - -@@ -57823,6 +57991,9 @@ OUI:500E6D* - OUI:5011EB* - ID_OUI_FROM_DATABASE=SilverNet Ltd - -+OUI:5014B5* -+ ID_OUI_FROM_DATABASE=Richfit Information Technology Co., Ltd -+ - OUI:5017FF* - ID_OUI_FROM_DATABASE=Cisco - -@@ -57847,6 +58018,9 @@ OUI:502690* - OUI:5027C7* - ID_OUI_FROM_DATABASE=TECHNART Co.,Ltd - -+OUI:50294D* -+ ID_OUI_FROM_DATABASE=NANJING IOT SENSOR TECHNOLOGY CO,LTD -+ - OUI:502A7E* - ID_OUI_FROM_DATABASE=Smart electronic GmbH - -@@ -57937,6 +58111,9 @@ OUI:506441* - OUI:506787* - ID_OUI_FROM_DATABASE=iTellus - -+OUI:5067AE* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:5067F0* - ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation - -@@ -58276,6 +58453,9 @@ OUI:549B12* - OUI:549D85* - ID_OUI_FROM_DATABASE=EnerAccess inc - -+OUI:549F35* -+ ID_OUI_FROM_DATABASE=Dell Inc. -+ - OUI:54A04F* - ID_OUI_FROM_DATABASE=t-mac Technologies Ltd - -@@ -58366,6 +58546,9 @@ OUI:54F5B6* - OUI:54F666* - ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG - -+OUI:54F876* -+ ID_OUI_FROM_DATABASE=ABB AG -+ - OUI:54FA3E* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD - -@@ -58375,6 +58558,9 @@ OUI:54FB58* - OUI:54FDBF* - ID_OUI_FROM_DATABASE=Scheidt & Bachmann GmbH - -+OUI:54FFCF* -+ ID_OUI_FROM_DATABASE=Mopria Alliance -+ - OUI:580528* - ID_OUI_FROM_DATABASE=LABRIS NETWORKS - -@@ -58390,6 +58576,9 @@ OUI:5809E5* - OUI:580A20* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:58108C* -+ ID_OUI_FROM_DATABASE=Intelbras -+ - OUI:581243* - ID_OUI_FROM_DATABASE=AcSiP Technology Corp. - -@@ -58504,9 +58693,15 @@ OUI:587521* - OUI:587675* - ID_OUI_FROM_DATABASE=Beijing ECHO Technologies Co.,Ltd - -+OUI:5876C5* -+ ID_OUI_FROM_DATABASE=DIGI I'S LTD -+ - OUI:587A4D* - ID_OUI_FROM_DATABASE=Stonesoft Corporation - -+OUI:587BE9* -+ ID_OUI_FROM_DATABASE=AirPro Technology India Pvt. Ltd -+ - OUI:587E61* - ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd - -@@ -58633,6 +58828,9 @@ OUI:58EECE* - OUI:58F387* - ID_OUI_FROM_DATABASE=HCCP - -+OUI:58F39C* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:58F67B* - ID_OUI_FROM_DATABASE=Xia Men UnionCore Technology LTD. - -@@ -58810,6 +59008,12 @@ OUI:5C89D4* - OUI:5C8D4E* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C8FE0* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ -+OUI:5C93A2* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:5C95AE* - ID_OUI_FROM_DATABASE=Apple - -@@ -59011,6 +59215,9 @@ OUI:60334B* - OUI:603553* - ID_OUI_FROM_DATABASE=Buwon Technology - -+OUI:603696* -+ ID_OUI_FROM_DATABASE=The Sapling Company -+ - OUI:6036DD* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -59038,9 +59245,18 @@ OUI:604616* - OUI:6047D4* - ID_OUI_FROM_DATABASE=FORICS Electronic Technology Co., Ltd. - -+OUI:604826* -+ ID_OUI_FROM_DATABASE=Newbridge Technologies Int. Ltd. -+ - OUI:604A1C* - ID_OUI_FROM_DATABASE=SUYIN Corporation - -+OUI:6050C1* -+ ID_OUI_FROM_DATABASE=Kinetek Sports -+ -+OUI:60512C* -+ ID_OUI_FROM_DATABASE=TCT mobile limited -+ - OUI:6052D0* - ID_OUI_FROM_DATABASE=FACTS Engineering - -@@ -59125,6 +59341,9 @@ OUI:609084* - OUI:609217* - ID_OUI_FROM_DATABASE=Apple - -+OUI:6099D1* -+ ID_OUI_FROM_DATABASE=Vuzix / Lenovo -+ - OUI:609AA4* - ID_OUI_FROM_DATABASE=GVI SECURITY INC. - -@@ -59284,6 +59503,9 @@ OUI:60FEF9* - OUI:60FFDD* - ID_OUI_FROM_DATABASE=C.E. ELECTRONICS, INC - -+OUI:64002D* -+ ID_OUI_FROM_DATABASE=Powerlinq Co., LTD -+ - OUI:6400F1* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -59557,6 +59779,9 @@ OUI:64B310* - OUI:64B370* - ID_OUI_FROM_DATABASE=PowerComm Solutons LLC - -+OUI:64B473* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:64B64A* - ID_OUI_FROM_DATABASE=ViVOtech, Inc. - -@@ -59917,6 +60142,9 @@ OUI:68D247* - OUI:68D925* - ID_OUI_FROM_DATABASE=ProSys Development Services - -+OUI:68D93C* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:68DB67* - ID_OUI_FROM_DATABASE=Nantong Coship Electronics Co., Ltd - -@@ -59950,6 +60178,9 @@ OUI:68EE96* - OUI:68EFBD* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:68F06D* -+ ID_OUI_FROM_DATABASE=ALONG INDUSTRIAL CO., LIMITED -+ - OUI:68F125* - ID_OUI_FROM_DATABASE=Data Controls Inc. - -@@ -60079,6 +60310,9 @@ OUI:6C626D* - OUI:6C641A* - ID_OUI_FROM_DATABASE=Penguin Computing - -+OUI:6C6EFE* -+ ID_OUI_FROM_DATABASE=Core Logic Inc. -+ - OUI:6C6F18* - ID_OUI_FROM_DATABASE=Stereotaxis, Inc. - -@@ -60091,6 +60325,9 @@ OUI:6C709F* - OUI:6C71D9* - ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc - -+OUI:6C7660* -+ ID_OUI_FROM_DATABASE=KYOCERA Corporation -+ - OUI:6C81FE* - ID_OUI_FROM_DATABASE=Mitsuba Corporation - -@@ -60122,7 +60359,7 @@ OUI:6C92BF* - ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd. - - OUI:6C98EB* -- ID_OUI_FROM_DATABASE=Xyne GmbH -+ ID_OUI_FROM_DATABASE=Ocedo GmbH - - OUI:6C9989* - ID_OUI_FROM_DATABASE=Cisco -@@ -60187,6 +60424,9 @@ OUI:6CB7F4* - OUI:6CBEE9* - ID_OUI_FROM_DATABASE=Alcatel-Lucent-IPD - -+OUI:6CBFB5* -+ ID_OUI_FROM_DATABASE=Noon Technology Co., Ltd -+ - OUI:6CC1D2* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -60514,6 +60754,9 @@ OUI:70A8E3* - OUI:70AAB2* - ID_OUI_FROM_DATABASE=Research In Motion - -+OUI:70AF25* -+ ID_OUI_FROM_DATABASE=Nishiyama Industry Co.,LTD. -+ - OUI:70B035* - ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd - -@@ -60535,6 +60778,9 @@ OUI:70B599* - OUI:70B921* - ID_OUI_FROM_DATABASE=FiberHome Telecommunication Technologies CO.,LTD - -+OUI:70BAEF* -+ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited -+ - OUI:70C6AC* - ID_OUI_FROM_DATABASE=Bosch Automotive Aftermarket - -@@ -60586,6 +60832,9 @@ OUI:70EE50* - OUI:70F176* - ID_OUI_FROM_DATABASE=Data Modul AG - -+OUI:70F196* -+ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc -+ - OUI:70F1A1* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -@@ -60796,6 +61045,9 @@ OUI:74B00C* - OUI:74B9EB* - ID_OUI_FROM_DATABASE=Fujian JinQianMao Electronic Technology Co.,Ltd - -+OUI:74BADB* -+ ID_OUI_FROM_DATABASE=Longconn Electornics(shenzhen)Co.,Ltd -+ - OUI:74BE08* - ID_OUI_FROM_DATABASE=ATEK Products, LLC - -@@ -60844,6 +61096,9 @@ OUI:74DE2B* - OUI:74E06E* - ID_OUI_FROM_DATABASE=Ergophone GmbH - -+OUI:74E14A* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:74E1B6* - ID_OUI_FROM_DATABASE=Apple - -@@ -61318,6 +61573,9 @@ OUI:7C092B* - OUI:7C0A50* - ID_OUI_FROM_DATABASE=J-MEX Inc. - -+OUI:7C0ECE* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:7C11BE* - ID_OUI_FROM_DATABASE=Apple - -@@ -61345,6 +61603,9 @@ OUI:7C2048* - OUI:7C2064* - ID_OUI_FROM_DATABASE=Alcatel Lucent IPD - -+OUI:7C2587* -+ ID_OUI_FROM_DATABASE=chaowifi.com -+ - OUI:7C2CF3* - ID_OUI_FROM_DATABASE=Secure Electrans Ltd - -@@ -61504,6 +61765,9 @@ OUI:7CAD74* - OUI:7CB03E* - ID_OUI_FROM_DATABASE=OSRAM GmbH - -+OUI:7CB177* -+ ID_OUI_FROM_DATABASE=Satelco AG -+ - OUI:7CB21B* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -@@ -61774,6 +62038,9 @@ OUI:8065E9* - OUI:806629* - ID_OUI_FROM_DATABASE=Prescope Technologies CO.,LTD. - -+OUI:806C1B* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:806C8B* - ID_OUI_FROM_DATABASE=KAESER KOMPRESSOREN AG - -@@ -61918,9 +62185,15 @@ OUI:80D733* - OUI:80DB31* - ID_OUI_FROM_DATABASE=Power Quotient International Co., Ltd. - -+OUI:80E650* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:80EA96* - ID_OUI_FROM_DATABASE=Apple - -+OUI:80EACA* -+ ID_OUI_FROM_DATABASE=Dialog Semiconductor Hellas SA -+ - OUI:80EE73* - ID_OUI_FROM_DATABASE=Shuttle Inc. - -@@ -61933,6 +62206,9 @@ OUI:80F593* - OUI:80F62E* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -+OUI:80F8EB* -+ ID_OUI_FROM_DATABASE=RayTight -+ - OUI:80FA5B* - ID_OUI_FROM_DATABASE=CLEVO CO. - -@@ -62116,6 +62392,9 @@ OUI:848506* - OUI:84850A* - ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH - -+OUI:8486F3* -+ ID_OUI_FROM_DATABASE=Greenvity Communications -+ - OUI:848D84* - ID_OUI_FROM_DATABASE=Rajant Corporation - -@@ -62134,9 +62413,15 @@ OUI:848F69* - OUI:849000* - ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik - -+OUI:84930C* -+ ID_OUI_FROM_DATABASE=InCoax Networks Europe AB -+ - OUI:84948C* - ID_OUI_FROM_DATABASE=Hitron Technologies. Inc - -+OUI:849681* -+ ID_OUI_FROM_DATABASE=Cathay Communication Co.,Ltd -+ - OUI:8496D8* - ID_OUI_FROM_DATABASE=Pace plc - -@@ -62206,6 +62491,9 @@ OUI:84DE3D* - OUI:84DF0C* - ID_OUI_FROM_DATABASE=NET2GRID BV - -+OUI:84E058* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:84E4D9* - ID_OUI_FROM_DATABASE=Shenzhen NEED technology Ltd. - -@@ -62545,6 +62833,9 @@ OUI:8C0EE3* - OUI:8C11CB* - ID_OUI_FROM_DATABASE=ABUS Security-Center GmbH & Co. KG - -+OUI:8C18D9* -+ ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co., Ltd -+ - OUI:8C1F94* - ID_OUI_FROM_DATABASE=RF Surgical System Inc. - -@@ -62632,6 +62923,9 @@ OUI:8C5AF0* - OUI:8C5CA1* - ID_OUI_FROM_DATABASE=d-broad,INC - -+OUI:8C5D60* -+ ID_OUI_FROM_DATABASE=UCI Corporation Co.,Ltd. -+ - OUI:8C5FDF* - ID_OUI_FROM_DATABASE=Beijing Railway Signal Factory - -@@ -62683,6 +62977,9 @@ OUI:8C7CFF* - OUI:8C7EB3* - ID_OUI_FROM_DATABASE=Lytro, Inc. - -+OUI:8C7F3B* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:8C82A8* - ID_OUI_FROM_DATABASE=Insigma Technology Co.,Ltd - -@@ -62716,6 +63013,9 @@ OUI:8CAE4C* - OUI:8CAE89* - ID_OUI_FROM_DATABASE=Y-cam Solutions Ltd - -+OUI:8CB094* -+ ID_OUI_FROM_DATABASE=Airtech I&C Co., Ltd -+ - OUI:8CB64F* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -62770,6 +63070,9 @@ OUI:8CD628* - OUI:8CDB25* - ID_OUI_FROM_DATABASE=ESG Solutions - -+OUI:8CDCD4* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:8CDD8D* - ID_OUI_FROM_DATABASE=Wifly-City System Inc. - -@@ -62788,6 +63091,9 @@ OUI:8CE7B3* - OUI:8CEEC6* - ID_OUI_FROM_DATABASE=Precepscion Pty. Ltd. - -+OUI:8CF813* -+ ID_OUI_FROM_DATABASE=ORANGE POLSKA -+ - OUI:8CF945* - ID_OUI_FROM_DATABASE=Power Automation pte Ltd - -@@ -62851,6 +63157,9 @@ OUI:901D27* - OUI:901EDD* - ID_OUI_FROM_DATABASE=GREAT COMPUTER CORPORATION - -+OUI:90203A* -+ ID_OUI_FROM_DATABASE=BYD Precision Manufacture Co.,Ltd -+ - OUI:902083* - ID_OUI_FROM_DATABASE=General Engine Management Systems Ltd. - -@@ -63127,6 +63436,9 @@ OUI:90E6BA* - OUI:90EA60* - ID_OUI_FROM_DATABASE=SPI Lasers Ltd - -+OUI:90EF68* -+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation -+ - OUI:90F1AA* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD - -@@ -63154,6 +63466,9 @@ OUI:90FB5B* - OUI:90FBA6* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -+OUI:90FD61* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:90FF79* - ID_OUI_FROM_DATABASE=Metro Ethernet Forum - -@@ -63247,6 +63562,9 @@ OUI:945103* - OUI:9451BF* - ID_OUI_FROM_DATABASE=Hyundai ESG - -+OUI:945493* -+ ID_OUI_FROM_DATABASE=Rigado, LLC -+ - OUI:94592D* - ID_OUI_FROM_DATABASE=EKE Building Technology Systems Ltd - -@@ -63256,6 +63574,9 @@ OUI:945B7E* - OUI:946124* - ID_OUI_FROM_DATABASE=Pason Systems - -+OUI:946269* -+ ID_OUI_FROM_DATABASE=Arris Group, Inc. -+ - OUI:9463D1* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -63622,6 +63943,9 @@ OUI:988EDD* - OUI:989080* - ID_OUI_FROM_DATABASE=Linkpower Network System Inc Ltd. - -+OUI:989096* -+ ID_OUI_FROM_DATABASE=Dell Inc -+ - OUI:9893CC* - ID_OUI_FROM_DATABASE=LG Electronics Inc. - -@@ -63781,6 +64105,9 @@ OUI:9C3178* - OUI:9C31B6* - ID_OUI_FROM_DATABASE=Kulite Semiconductor Products Inc - -+OUI:9C3583* -+ ID_OUI_FROM_DATABASE=Nipro Diagnostics, Inc -+ - OUI:9C3AAF* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -64234,6 +64561,9 @@ OUI:A08C9B* - OUI:A090DE* - ID_OUI_FROM_DATABASE=VEEDIMS,LLC - -+OUI:A09347* -+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD. -+ - OUI:A09805* - ID_OUI_FROM_DATABASE=OpenVox Communication Co Ltd - -@@ -64336,6 +64666,9 @@ OUI:A0E534* - OUI:A0E5E9* - ID_OUI_FROM_DATABASE=enimai Inc - -+OUI:A0E6F8* -+ ID_OUI_FROM_DATABASE=Texas Instruments Inc -+ - OUI:A0E9DB* - ID_OUI_FROM_DATABASE=Ningbo FreeWings Technologies Co.,Ltd - -@@ -64498,6 +64831,9 @@ OUI:A46CC1* - OUI:A46E79* - ID_OUI_FROM_DATABASE=DFT System Co.Ltd - -+OUI:A470D6* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:A47733* - ID_OUI_FROM_DATABASE=Google - -@@ -64643,7 +64979,7 @@ OUI:A4D3B5* - ID_OUI_FROM_DATABASE=GLITEL Stropkov, s.r.o. - - OUI:A4D856* -- ID_OUI_FROM_DATABASE=Qualcomm Labs Inc. -+ ID_OUI_FROM_DATABASE=Gimbal, Inc - - OUI:A4DA3F* - ID_OUI_FROM_DATABASE=Bionics Corp. -@@ -64732,6 +65068,9 @@ OUI:A81758* - OUI:A81B18* - ID_OUI_FROM_DATABASE=XTS CORP - -+OUI:A81B5D* -+ ID_OUI_FROM_DATABASE=Foxtel Management Pty Ltd -+ - OUI:A81FAF* - ID_OUI_FROM_DATABASE=KRYPTON POLSKA - -@@ -64984,6 +65323,9 @@ OUI:AC0A61* - OUI:AC0DFE* - ID_OUI_FROM_DATABASE=Ekon GmbH - myGEKKO - -+OUI:AC11D3* -+ ID_OUI_FROM_DATABASE=Suzhou HOTEK Video Technology Co. Ltd -+ - OUI:AC1461* - ID_OUI_FROM_DATABASE=ATAW Co., Ltd. - -@@ -65023,6 +65365,9 @@ OUI:AC34CB* - OUI:AC3613* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:AC3870* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:AC3C0B* - ID_OUI_FROM_DATABASE=Apple - -@@ -65191,6 +65536,9 @@ OUI:ACAB8D* - OUI:ACB313* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:ACB74F* -+ ID_OUI_FROM_DATABASE=METEL s.r.o. -+ - OUI:ACB859* - ID_OUI_FROM_DATABASE=Uniband Electronic Corp, - -@@ -65356,6 +65704,9 @@ OUI:B03850* - OUI:B0435D* - ID_OUI_FROM_DATABASE=NuLEDs, Inc. - -+OUI:B04515* -+ ID_OUI_FROM_DATABASE=mira fitness,LLC. -+ - OUI:B04545* - ID_OUI_FROM_DATABASE=YACOUB Automation GmbH - -@@ -65635,6 +65986,9 @@ OUI:B41489* - OUI:B41513* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:B41780* -+ ID_OUI_FROM_DATABASE=DTI Group Ltd -+ - OUI:B418D1* - ID_OUI_FROM_DATABASE=Apple - -@@ -65746,6 +66100,12 @@ OUI:B4749F* - OUI:B4750E* - ID_OUI_FROM_DATABASE=Belkin International Inc. - -+OUI:B479A7* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ -+OUI:B47C29* -+ ID_OUI_FROM_DATABASE=Shenzhen Guzidi Technology Co.,Ltd -+ - OUI:B47F5E* - ID_OUI_FROM_DATABASE=Foresight Manufacture (S) Pte Ltd - -@@ -65923,6 +66283,9 @@ OUI:B81619* - OUI:B817C2* - ID_OUI_FROM_DATABASE=Apple - -+OUI:B8186F* -+ ID_OUI_FROM_DATABASE=ORIENTAL MOTOR CO., LTD. -+ - OUI:B81999* - ID_OUI_FROM_DATABASE=Nesys - -@@ -65989,6 +66352,9 @@ OUI:B843E4* - OUI:B847C6* - ID_OUI_FROM_DATABASE=SanJet Technology Corp. - -+OUI:B84FD5* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:B85510* - ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. - -@@ -66109,6 +66475,9 @@ OUI:B89AED* - OUI:B89BC9* - ID_OUI_FROM_DATABASE=SMC Networks Inc - -+OUI:B89BE4* -+ ID_OUI_FROM_DATABASE=ABB Power Systems Power Generation -+ - OUI:B8A386* - ID_OUI_FROM_DATABASE=D-Link International - -@@ -66151,6 +66520,9 @@ OUI:B8BA72* - OUI:B8BB6D* - ID_OUI_FROM_DATABASE=ENERES Co.,Ltd. - -+OUI:B8BD79* -+ ID_OUI_FROM_DATABASE=TrendPoint Systems -+ - OUI:B8BEBF* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -66226,6 +66598,9 @@ OUI:B8EE65* - OUI:B8EE79* - ID_OUI_FROM_DATABASE=YWire Technologies, Inc. - -+OUI:B8F317* -+ ID_OUI_FROM_DATABASE=iSun Smasher Communications Private Limited -+ - OUI:B8F4D0* - ID_OUI_FROM_DATABASE=Herrmann Ultraschalltechnik GmbH & Co. Kg - -@@ -66373,6 +66748,9 @@ OUI:BC5FF4* - OUI:BC629F* - ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd. - -+OUI:BC6641* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:BC671C* - ID_OUI_FROM_DATABASE=Cisco - -@@ -66838,6 +67216,9 @@ OUI:C4017C* - OUI:C401B1* - ID_OUI_FROM_DATABASE=SeekTech INC - -+OUI:C401CE* -+ ID_OUI_FROM_DATABASE=PRESITION (2000) CO., LTD. -+ - OUI:C40415* - ID_OUI_FROM_DATABASE=NETGEAR INC., - -@@ -66970,6 +67351,12 @@ OUI:C455C2* - OUI:C45600* - ID_OUI_FROM_DATABASE=Galleon Embedded Computing - -+OUI:C456FE* -+ ID_OUI_FROM_DATABASE=Lava International Ltd. -+ -+OUI:C4576E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD -+ - OUI:C458C2* - ID_OUI_FROM_DATABASE=Shenzhen TATFOOK Technology Co., Ltd. - -@@ -67081,6 +67468,9 @@ OUI:C4B512* - OUI:C4BA99* - ID_OUI_FROM_DATABASE=I+ME Actia Informatik und Mikro-Elektronik GmbH - -+OUI:C4BD6A* -+ ID_OUI_FROM_DATABASE=SKF GmbH -+ - OUI:C4C0AE* - ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD. - -@@ -67429,6 +67819,9 @@ OUI:C8E1A7* - OUI:C8E42F* - ID_OUI_FROM_DATABASE=Technical Research Design and Development - -+OUI:C8E7D8* -+ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. -+ - OUI:C8EE08* - ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD - -@@ -67480,6 +67873,9 @@ OUI:C8FF77* - OUI:CC0080* - ID_OUI_FROM_DATABASE=BETTINI SRL - -+OUI:CC03FA* -+ ID_OUI_FROM_DATABASE=Technicolor CH USA -+ - OUI:CC047C* - ID_OUI_FROM_DATABASE=G-WAY Microwave - -@@ -67507,6 +67903,9 @@ OUI:CC0CDA* - OUI:CC0DEC* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:CC10A3* -+ ID_OUI_FROM_DATABASE=Beijing Nan Bao Technology Co., Ltd. -+ - OUI:CC14A6* - ID_OUI_FROM_DATABASE=Yichun MyEnergy Domain, Inc - -@@ -67531,6 +67930,9 @@ OUI:CC2A80* - OUI:CC2D8C* - ID_OUI_FROM_DATABASE=LG ELECTRONICS INC - -+OUI:CC3080* -+ ID_OUI_FROM_DATABASE=VAIO Corporation -+ - OUI:CC33BB* - ID_OUI_FROM_DATABASE=SAGEMCOM SAS - -@@ -67756,9 +68158,15 @@ OUI:CCD539* - OUI:CCD811* - ID_OUI_FROM_DATABASE=Aiconn Technology Corporation - -+OUI:CCD8C1* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:CCD9E9* - ID_OUI_FROM_DATABASE=SCR Engineers Ltd. - -+OUI:CCE17F* -+ ID_OUI_FROM_DATABASE=juniper networks -+ - OUI:CCE1D5* - ID_OUI_FROM_DATABASE=Buffalo Inc. - -@@ -67786,6 +68194,9 @@ OUI:CCF3A5* - OUI:CCF407* - ID_OUI_FROM_DATABASE=EUKREA ELECTROMATIQUE SARL - -+OUI:CCF538* -+ ID_OUI_FROM_DATABASE=3isysnetworks -+ - OUI:CCF67A* - ID_OUI_FROM_DATABASE=Ayecka Communication Systems LTD - -@@ -67825,6 +68236,9 @@ OUI:D00AAB* - OUI:D00EA4* - ID_OUI_FROM_DATABASE=Porsche Cars North America - -+OUI:D01242* -+ ID_OUI_FROM_DATABASE=BIOS Corporation -+ - OUI:D0131E* - ID_OUI_FROM_DATABASE=Sunrex Technology Corp - -@@ -67915,6 +68329,9 @@ OUI:D05FB8* - OUI:D05FCE* - ID_OUI_FROM_DATABASE=Hitachi Data Systems - -+OUI:D062A0* -+ ID_OUI_FROM_DATABASE=China Essence Technology (Zhumadian) Co., Ltd. -+ - OUI:D0634D* - ID_OUI_FROM_DATABASE=Meiko Maschinenbau GmbH & Co. KG - -@@ -67963,6 +68380,9 @@ OUI:D07E28* - OUI:D07E35* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:D084B0* -+ ID_OUI_FROM_DATABASE=Sagemcom -+ - OUI:D08999* - ID_OUI_FROM_DATABASE=APCON, Inc. - -@@ -68110,6 +68530,9 @@ OUI:D0F27F* - OUI:D0F73B* - ID_OUI_FROM_DATABASE=Helmut Mauell GmbH - -+OUI:D0FA1D* -+ ID_OUI_FROM_DATABASE=Qihoo 360 Technology Co.,Ltd -+ - OUI:D0FF50* - ID_OUI_FROM_DATABASE=Texas Instruments, Inc - -@@ -68191,6 +68614,9 @@ OUI:D42F23* - OUI:D4319D* - ID_OUI_FROM_DATABASE=Sinwatec - -+OUI:D437D7* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:D43A65* - ID_OUI_FROM_DATABASE=IGRS Engineering Lab Ltd. - -@@ -68278,6 +68704,9 @@ OUI:D46F42* - OUI:D479C3* - ID_OUI_FROM_DATABASE=Cameronet GmbH & Co. KG - -+OUI:D47B35* -+ ID_OUI_FROM_DATABASE=NEO Monitors AS -+ - OUI:D47B75* - ID_OUI_FROM_DATABASE=HARTING Electronics GmbH - -@@ -68299,6 +68728,9 @@ OUI:D48890* - OUI:D48CB5* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:D48F33* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:D48FAA* - ID_OUI_FROM_DATABASE=Sogecam Industrial, S.A. - -@@ -68440,6 +68872,9 @@ OUI:D4EA0E* - OUI:D4EC0C* - ID_OUI_FROM_DATABASE=Harley-Davidson Motor Company - -+OUI:D4EC86* -+ ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd -+ - OUI:D4EE07* - ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd. - -@@ -68551,6 +68986,9 @@ OUI:D8490B* - OUI:D8492F* - ID_OUI_FROM_DATABASE=CANON INC. - -+OUI:D84A87* -+ ID_OUI_FROM_DATABASE=OI ELECTRIC CO.,LTD -+ - OUI:D84B2A* - ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc. - -@@ -68860,6 +69298,9 @@ OUI:DC37D2* - OUI:DC38E1* - ID_OUI_FROM_DATABASE=Juniper networks - -+OUI:DC3979* -+ ID_OUI_FROM_DATABASE=Skyport Systems -+ - OUI:DC3A5E* - ID_OUI_FROM_DATABASE=Roku, Inc - -@@ -69199,6 +69640,9 @@ OUI:E09467* - OUI:E09579* - ID_OUI_FROM_DATABASE=ORTHOsoft inc, d/b/a Zimmer CAS - -+OUI:E09796* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:E097F2* - ID_OUI_FROM_DATABASE=Atomax Inc. - -@@ -69226,6 +69670,9 @@ OUI:E0AAB0* - OUI:E0ABFE* - ID_OUI_FROM_DATABASE=Orb Networks, Inc. - -+OUI:E0ACF1* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:E0AE5E* - ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. - -@@ -69523,6 +69970,9 @@ OUI:E492E7* - OUI:E492FB* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:E4956E* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:E496AE* - ID_OUI_FROM_DATABASE=ALTOGRAPHICS Inc. - -@@ -69553,6 +70003,9 @@ OUI:E4B021* - OUI:E4C146* - ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A - -+OUI:E4C62B* -+ ID_OUI_FROM_DATABASE=Airware -+ - OUI:E4C63D* - ID_OUI_FROM_DATABASE=Apple, Inc. - -@@ -69910,6 +70363,9 @@ OUI:E8EA6A* - OUI:E8EADA* - ID_OUI_FROM_DATABASE=Denkovi Assembly Electroncs LTD - -+OUI:E8ED05* -+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. -+ - OUI:E8EDF3* - ID_OUI_FROM_DATABASE=Cisco - -@@ -69931,6 +70387,9 @@ OUI:E8FC60* - OUI:E8FCAF* - ID_OUI_FROM_DATABASE=NETGEAR INC., - -+OUI:EC0EC4* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:EC0ED6* - ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS - -@@ -69949,6 +70408,9 @@ OUI:EC1766* - OUI:EC1A59* - ID_OUI_FROM_DATABASE=Belkin International Inc. - -+OUI:EC1D7F* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:EC219F* - ID_OUI_FROM_DATABASE=VidaBox LLC - -@@ -69982,6 +70444,9 @@ OUI:EC3586* - OUI:EC3BF0* - ID_OUI_FROM_DATABASE=NovelSat - -+OUI:EC3C5A* -+ ID_OUI_FROM_DATABASE=SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD -+ - OUI:EC3E09* - ID_OUI_FROM_DATABASE=PERFORMANCE DESIGNED PRODUCTS, LLC - -@@ -70522,6 +70987,9 @@ OUI:F4068D* - OUI:F406A5* - ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd. - -+OUI:F409D8* -+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD. -+ - OUI:F40B93* - ID_OUI_FROM_DATABASE=Research In Motion - -@@ -70555,6 +71023,9 @@ OUI:F42012* - OUI:F42833* - ID_OUI_FROM_DATABASE=MMPC Inc. - -+OUI:F42853* -+ ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd. -+ - OUI:F42896* - ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA - -@@ -70780,6 +71251,9 @@ OUI:F4EC38* - OUI:F4F15A* - ID_OUI_FROM_DATABASE=Apple - -+OUI:F4F1E1* -+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC -+ - OUI:F4F26D* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -@@ -70855,6 +71329,9 @@ OUI:F81EDF* - OUI:F82285* - ID_OUI_FROM_DATABASE=Cypress Technology CO., LTD. - -+OUI:F82441* -+ ID_OUI_FROM_DATABASE=Yeelink -+ - OUI:F82793* - ID_OUI_FROM_DATABASE=Apple, Inc - -@@ -71119,6 +71596,9 @@ OUI:F8E4FB* - OUI:F8E7B5* - ID_OUI_FROM_DATABASE=µTech Tecnologia LTDA - -+OUI:F8E811* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:F8E968* - ID_OUI_FROM_DATABASE=Egker Kft. - -@@ -71221,6 +71701,9 @@ OUI:FC1BFF* - OUI:FC1D59* - ID_OUI_FROM_DATABASE=I Smart Cities HK Ltd - -+OUI:FC1D84* -+ ID_OUI_FROM_DATABASE=Autobase -+ - OUI:FC1E16* - ID_OUI_FROM_DATABASE=IPEVO corp - -@@ -71359,6 +71842,9 @@ OUI:FC9947* - OUI:FC9FAE* - ID_OUI_FROM_DATABASE=Fidus Systems Inc - -+OUI:FC9FE1* -+ ID_OUI_FROM_DATABASE=CONWIN.Tech. Ltd -+ - OUI:FCA13E* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -71419,6 +71905,9 @@ OUI:FCD817* - OUI:FCDB96* - ID_OUI_FROM_DATABASE=ENERVALLEY CO., LTD - -+OUI:FCDBB3* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:FCDD55* - ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd - -diff --git hwdb/20-pci-classes.hwdb hwdb/20-pci-classes.hwdb -index fd1d5d0..5702c40 100644 ---- hwdb/20-pci-classes.hwdb -+++ hwdb/20-pci-classes.hwdb -@@ -47,12 +47,24 @@ pci:v*d*sv*sd*bc01sc06i00* - pci:v*d*sv*sd*bc01sc06i01* - ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0 - -+pci:v*d*sv*sd*bc01sc06i02* -+ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus -+ - pci:v*d*sv*sd*bc01sc07* - ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller - -+pci:v*d*sv*sd*bc01sc07i01* -+ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus -+ - pci:v*d*sv*sd*bc01sc08* - ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller - -+pci:v*d*sv*sd*bc01sc08i01* -+ ID_PCI_INTERFACE_FROM_DATABASE=NVMHCI -+ -+pci:v*d*sv*sd*bc01sc08i02* -+ ID_PCI_INTERFACE_FROM_DATABASE=NVM Express -+ - pci:v*d*sv*sd*bc01sc80* - ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller - -@@ -80,6 +92,9 @@ pci:v*d*sv*sd*bc02sc05* - pci:v*d*sv*sd*bc02sc06* - ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller - -+pci:v*d*sv*sd*bc02sc07* -+ ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller -+ - pci:v*d*sv*sd*bc02sc80* - ID_PCI_SUBCLASS_FROM_DATABASE=Network controller - -@@ -311,6 +326,9 @@ pci:v*d*sv*sd*bc08sc02i01* - pci:v*d*sv*sd*bc08sc02i02* - ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers - -+pci:v*d*sv*sd*bc08sc02i03* -+ ID_PCI_INTERFACE_FROM_DATABASE=HPET -+ - pci:v*d*sv*sd*bc08sc03* - ID_PCI_SUBCLASS_FROM_DATABASE=RTC - -@@ -527,5 +545,14 @@ pci:v*d*sv*sd*bc11sc20* - pci:v*d*sv*sd*bc11sc80* - ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller - -+pci:v*d*sv*sd*bc12* -+ ID_PCI_CLASS_FROM_DATABASE=Processing accelerators -+ -+pci:v*d*sv*sd*bc12sc00* -+ ID_PCI_SUBCLASS_FROM_DATABASE=Processing accelerators -+ -+pci:v*d*sv*sd*bc13* -+ ID_PCI_CLASS_FROM_DATABASE=Non-Essential Instrumentation -+ - pci:v*d*sv*sd*bcFF* - ID_PCI_CLASS_FROM_DATABASE=Unassigned class -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 62941b9..77c727d 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -959,6 +959,15 @@ pci:v00001000d0000005Dsv00001028sd00001F49* - pci:v00001000d0000005Dsv00001028sd00001F4A* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades)) - -+pci:v00001000d0000005Dsv00001028sd00001F4D* -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xS) -+ -+pci:v00001000d0000005Dsv00001028sd00001F4F* -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Slim) -+ -+pci:v00001000d0000005Dsv00001028sd00001F54* -+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xD) -+ - pci:v00001000d0000005Dsv000017AAsd00001052* - ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i) - -@@ -1677,7 +1686,7 @@ pci:v00001002d00001308* - ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller - - pci:v00001002d00001309* -- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics] -+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6/R7 Graphics] - - pci:v00001002d0000130A* - ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics] -@@ -3003,7 +3012,7 @@ pci:v00001002d00004C57sv00001014sd00000517* - ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30) - - pci:v00001002d00004C57sv00001014sd00000530* -- ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU) -+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T4x Series) - - pci:v00001002d00004C57sv00001028sd000000E6* - ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100)) -@@ -4362,7 +4371,7 @@ pci:v00001002d00006667* - ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230] - - pci:v00001002d0000666F* -- ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M] -+ ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M / R5 M230] - - pci:v00001002d00006670* - ID_MODEL_FROM_DATABASE=Hainan -@@ -5937,10 +5946,10 @@ pci:v00001002d0000679F* - ID_MODEL_FROM_DATABASE=Tahiti - - pci:v00001002d000067A0* -- ID_MODEL_FROM_DATABASE=Hawaii XT GL -+ ID_MODEL_FROM_DATABASE=Hawaii XT GL [FirePro W9100] - - pci:v00001002d000067A1* -- ID_MODEL_FROM_DATABASE=Hawaii GL -+ ID_MODEL_FROM_DATABASE=Hawaii PRO GL [FirePro W8100] - - pci:v00001002d000067A2* - ID_MODEL_FROM_DATABASE=Hawaii GL -@@ -5961,7 +5970,7 @@ pci:v00001002d000067B1* - ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] - - pci:v00001002d000067B9* -- ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2] -+ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295X2] - - pci:v00001002d000067BE* - ID_MODEL_FROM_DATABASE=Hawaii LE -@@ -7860,7 +7869,13 @@ pci:v00001002d000068FE* - ID_MODEL_FROM_DATABASE=Cedar LE - - pci:v00001002d00006900* -- ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260] -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] -+ -+pci:v00001002d00006900sv00001028sd00000640* -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M265) -+ -+pci:v00001002d00006900sv00001179sd0000F934* -+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M260) - - pci:v00001002d00006901* - ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255] -@@ -8027,6 +8042,9 @@ pci:v00001002d0000718A* - pci:v00001002d0000718B* - ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] - -+pci:v00001002d0000718Bsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001002d0000718C* - ID_MODEL_FROM_DATABASE=RV516/M62-CSP64 [Mobility Radeon X1350] - -@@ -8969,26 +8987,29 @@ pci:v00001002d0000983E* - pci:v00001002d0000983F* - ID_MODEL_FROM_DATABASE=Kabini - -+pci:v00001002d00009840* -+ ID_MODEL_FROM_DATABASE=Kabini HDMI/DP Audio -+ - pci:v00001002d00009850* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A6-6200 with R3 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] - - pci:v00001002d00009851* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics] - - pci:v00001002d00009852* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] - - pci:v00001002d00009853* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-4000 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] - - pci:v00001002d00009854* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-3700 with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics] - - pci:v00001002d00009855* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2450M with R3 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R6 Graphics] - - pci:v00001002d00009856* -- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] -+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics] - - pci:v00001002d00009857* - ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics] -@@ -12347,6 +12368,9 @@ pci:v0000102Bd00000532sv00001028sd0000029C* - pci:v0000102Bd00000532sv00001028sd000002A4* - ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450) - -+pci:v0000102Bd00000532sv000015D9sd00000624* -+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (X9SCM-F Motherboard) -+ - pci:v0000102Bd00000532sv000015D9sd0000A811* - ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU) - -@@ -13169,6 +13193,9 @@ pci:v00001039d00000016* - pci:v00001039d00000018* - ID_MODEL_FROM_DATABASE=SiS85C503/5513 (LPC Bridge) - -+pci:v00001039d00000163* -+ ID_MODEL_FROM_DATABASE=163 802.11b/g Wireless LAN Adapter -+ - pci:v00001039d00000180* - ID_MODEL_FROM_DATABASE=RAID bus controller 180 SATA/PATA [SiS] - -@@ -14141,6 +14168,9 @@ pci:v00001042d00003020* - pci:v00001043* - ID_VENDOR_FROM_DATABASE=ASUSTeK Computer Inc. - -+pci:v00001043d00000464* -+ ID_MODEL_FROM_DATABASE=Radeon R9 270x GPU -+ - pci:v00001043d00000675* - ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D - -@@ -17978,6 +18008,9 @@ pci:v00001095d00003512sv00001095sd00006512* - pci:v00001095d00003531* - ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller - -+pci:v00001095d00003531sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00001096* - ID_VENDOR_FROM_DATABASE=Alacron - -@@ -26261,6 +26294,9 @@ pci:v000010DEd00000F00* - pci:v000010DEd00000F01* - ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 620] - -+pci:v000010DEd00000F02* -+ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 730] -+ - pci:v000010DEd00000FC0* - ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 640 OEM] - -@@ -26276,6 +26312,9 @@ pci:v000010DEd00000FC6* - pci:v000010DEd00000FC6sv00001043sd00008428* - ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5) - -+pci:v000010DEd00000FC8* -+ ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 740] -+ - pci:v000010DEd00000FCD* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M] - -@@ -26420,6 +26459,9 @@ pci:v000010DEd00000FFE* - pci:v000010DEd00000FFF* - ID_MODEL_FROM_DATABASE=GK107GL [Quadro 410] - -+pci:v000010DEd00001001* -+ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX TITAN Z] -+ - pci:v000010DEd00001003* - ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan LE] - -@@ -26828,9 +26870,57 @@ pci:v000010DEd00001140sv00001025sd00000830* - pci:v000010DEd00001140sv00001025sd00000837* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv00001025sd0000083E* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001025sd00000841* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - -+pci:v000010DEd00001140sv00001025sd00000854* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000855* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000856* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000857* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000858* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000868* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000869* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ -+pci:v000010DEd00001140sv00001025sd00000873* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000878* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000087B* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000087C* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ -+pci:v000010DEd00001140sv00001025sd00000881* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000088A* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd0000090F* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001025sd00000921* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001028sd0000054D* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -@@ -26966,6 +27056,18 @@ pci:v000010DEd00001140sv00001043sd000016DD* - pci:v000010DEd00001140sv00001043sd0000170D* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -+pci:v000010DEd00001140sv00001043sd0000176D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001043sd0000178D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001043sd0000179D* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001043sd000017DD* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001043sd00002132* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - -@@ -27713,6 +27815,9 @@ pci:v000010DEd00001284* - pci:v000010DEd00001286* - ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720] - -+pci:v000010DEd00001287* -+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 730] -+ - pci:v000010DEd00001290* - ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M] - -@@ -27749,6 +27854,21 @@ pci:v000010DEd00001294* - pci:v000010DEd00001295* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] - -+pci:v000010DEd00001295sv0000103Csd00002B0D* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B0F* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B11* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B21* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) -+ -+pci:v000010DEd00001295sv0000103Csd00002B22* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) -+ - pci:v000010DEd00001296* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M] - -@@ -28302,7 +28422,7 @@ pci:v000010ECd00008136* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller - - pci:v000010ECd00008136sv0000103Csd00002AB1* -- ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774) -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion p6774) - - pci:v000010ECd00008136sv0000103Csd000030CC* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700) -@@ -28310,6 +28430,9 @@ pci:v000010ECd00008136sv0000103Csd000030CC* - pci:v000010ECd00008136sv00001179sd0000FF64* - ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC) - -+pci:v000010ECd00008136sv000017C0sd00001053* -+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (AzureWave AW-NE766 802.11B/G/N Mini PCIe Card Model RT2700E) -+ - pci:v000010ECd00008138* - ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter - -@@ -29036,6 +29159,9 @@ pci:v00001102d0000000B* - pci:v00001102d0000000Bsv00001102sd00000041* - ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e]) - -+pci:v00001102d00000012* -+ ID_MODEL_FROM_DATABASE=SB Recon3D -+ - pci:v00001102d00004001* - ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port - -@@ -30878,6 +31004,9 @@ pci:v00001106d0000E340* - pci:v00001106d0000E353* - ID_MODEL_FROM_DATABASE=VX800/VX820 PCI Express Root Port - -+pci:v00001106d0000E410* -+ ID_MODEL_FROM_DATABASE=VX900 PCI Express Physical Layer Electrical Sub-block -+ - pci:v00001106d0000F208* - ID_MODEL_FROM_DATABASE=PT890 PCI to PCI Bridge Controller - -@@ -35045,6 +35174,9 @@ pci:v000011ABd00004353sv0000104Dsd0000902D* - pci:v000011ABd00004354* - ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller - -+pci:v000011ABd00004354sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (R730 Laptop) -+ - pci:v000011ABd00004354sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P) - -@@ -36557,6 +36689,9 @@ pci:v00001217* - pci:v00001217d000000F7* - ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) - -+pci:v00001217d000000F7sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001217d000000F7sv00001179sd0000FF50* - ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E) - -@@ -36635,12 +36770,18 @@ pci:v00001217d00007114* - pci:v00001217d00007120* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller - -+pci:v00001217d00007120sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001217d00007120sv00001179sd0000FF50* - ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E) - - pci:v00001217d00007130* - ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller - -+pci:v00001217d00007130sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00001217d00007130sv00001179sd0000FF50* - ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E) - -@@ -42276,7 +42417,7 @@ pci:v00001425d00004083* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller - - pci:v00001425d00004084* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller - - pci:v00001425d00004085* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -@@ -42348,7 +42489,7 @@ pci:v00001425d00004483* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller - - pci:v00001425d00004484* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller - - pci:v00001425d00004485* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -@@ -42420,7 +42561,7 @@ pci:v00001425d00004583* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller - - pci:v00001425d00004584* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller - - pci:v00001425d00004585* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller -@@ -42492,7 +42633,7 @@ pci:v00001425d00004683* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller - - pci:v00001425d00004684* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller - - pci:v00001425d00004685* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller -@@ -42564,7 +42705,7 @@ pci:v00001425d00004783* - ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller - - pci:v00001425d00004784* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller - - pci:v00001425d00004785* - ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -@@ -42579,76 +42720,76 @@ pci:v00001425d00004788* - ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller - - pci:v00001425d00004801* -- ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004802* -- ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004803* -- ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004804* -- ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004805* -- ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004806* -- ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004807* -- ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004808* -- ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004809* -- ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480A* -- ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480B* -- ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480C* -- ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480D* -- ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480E* -- ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000480F* -- ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004880* -- ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004881* -- ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004882* -- ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004883* -- ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004884* -- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004885* -- ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004886* -- ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004887* -- ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00004888* -- ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005001* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller -@@ -43041,82 +43182,82 @@ pci:v00001425d00005785* - ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller - - pci:v00001425d00005801* -- ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005802* -- ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005803* -- ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005804* -- ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005805* -- ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005806* -- ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005807* -- ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005808* -- ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005809* -- ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580A* -- ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580B* -- ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580C* -- ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580D* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580E* -- ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000580F* -- ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005810* -- ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005811* -- ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005812* -- ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005813* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005814* -- ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005815* -- ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005880* -- ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005881* -- ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005883* -- ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005884* -- ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005885* -- ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller [VF] - - pci:v00001425d0000A000* - ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller -@@ -43562,6 +43703,9 @@ pci:v0000148E* - pci:v0000148F* - ID_VENDOR_FROM_DATABASE=Plant Equipment, Inc. - -+pci:v0000148Fd00005370* -+ ID_MODEL_FROM_DATABASE=Dexlink AUWL15I1 -+ - pci:v00001490* - ID_VENDOR_FROM_DATABASE=Stone Microsystems PTY Ltd. - -@@ -44885,6 +45029,9 @@ pci:v000014E4d000016A2sv0000103Csd00001916* - pci:v000014E4d000016A2sv0000103Csd00001917* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter) - -+pci:v000014E4d000016A3* -+ ID_MODEL_FROM_DATABASE=NetXtreme BCM57786 Gigabit Ethernet PCIe -+ - pci:v000014E4d000016A4* - ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function - -@@ -47796,7 +47943,7 @@ pci:v000015B3d00001003* - ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3] - - pci:v000015B3d00001004* -- ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3 Virtual Function] -+ ID_MODEL_FROM_DATABASE=MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function] - - pci:v000015B3d00001005* - ID_MODEL_FROM_DATABASE=MT27510 Family -@@ -47807,9 +47954,6 @@ pci:v000015B3d00001006* - pci:v000015B3d00001007* - ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro] - --pci:v000015B3d00001008* -- ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro Virtual Function] -- - pci:v000015B3d00001009* - ID_MODEL_FROM_DATABASE=MT27530 Family - -@@ -49187,6 +49331,9 @@ pci:v0000168Cd0000002Bsv0000105Bsd0000E017* - pci:v0000168Cd0000002Bsv0000105Bsd0000E023* - ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card) - -+pci:v0000168Cd0000002Bsv0000105Bsd0000E025* -+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.05 802.11bgn Wireless Half-size Mini PCIe Card) -+ - pci:v0000168Cd0000002Bsv00001113sd0000E811* - ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card) - -@@ -50471,6 +50618,9 @@ pci:v00001814d00000701sv00001737sd00000074* - pci:v00001814d00000781* - ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe - -+pci:v00001814d00000781sv00001814sd00002790* -+ ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe -+ - pci:v00001814d00003060* - ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R - -@@ -51911,6 +52061,9 @@ pci:v00001969d00001063* - pci:v00001969d00001063sv00001458sd0000E000* - ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard) - -+pci:v00001969d00001063sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00001969d00001066* - ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet - -@@ -52358,6 +52511,18 @@ pci:v00001A2Bd0000000A* - pci:v00001A2Bd0000000E* - ID_MODEL_FROM_DATABASE=DSLP-104 v1.1 - -+pci:v00001A30* -+ ID_VENDOR_FROM_DATABASE=Lantiq -+ -+pci:v00001A30d00000680* -+ ID_MODEL_FROM_DATABASE=MtW8171 [Hyperion II] -+ -+pci:v00001A30d00000700* -+ ID_MODEL_FROM_DATABASE=Wave300 PSB8224 [Hyperion III] -+ -+pci:v00001A30d00000710* -+ ID_MODEL_FROM_DATABASE=Wave300 PSB8231 [Hyperion III] -+ - pci:v00001A32* - ID_VENDOR_FROM_DATABASE=Quanta Microsystems, Inc - -@@ -52497,19 +52662,19 @@ pci:v00001A78* - ID_VENDOR_FROM_DATABASE=Virident Systems Inc. - - pci:v00001A78d00000031* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive - - pci:v00001A78d00000031sv00001A78sd00000034* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3]) - - pci:v00001A78d00000031sv00001A78sd00000037* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3D]) - - pci:v00001A78d00000031sv00001A78sd00000038* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4]) - - pci:v00001A78d00000031sv00001A78sd00000039* -- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) -+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4D]) - - pci:v00001A78d00000040* - ID_MODEL_FROM_DATABASE=FlashMAX II -@@ -52520,6 +52685,9 @@ pci:v00001A78d00000041* - pci:v00001A78d00000042* - ID_MODEL_FROM_DATABASE=FlashMAX II - -+pci:v00001A78d00000050* -+ ID_MODEL_FROM_DATABASE=FlashMAX III -+ - pci:v00001A84* - ID_VENDOR_FROM_DATABASE=Commex Technologies - -@@ -52682,6 +52850,15 @@ pci:v00001AEDd00001008* - pci:v00001AEDd00002001* - ID_MODEL_FROM_DATABASE=ioDrive2 - -+pci:v00001AEDd00003001* -+ ID_MODEL_FROM_DATABASE=ioMemory FHHL -+ -+pci:v00001AEDd00003002* -+ ID_MODEL_FROM_DATABASE=ioMemory HHHL -+ -+pci:v00001AEDd00003003* -+ ID_MODEL_FROM_DATABASE=ioMemory Mezzanine -+ - pci:v00001AEE* - ID_VENDOR_FROM_DATABASE=Caustic Graphics Inc. - -@@ -52775,6 +52952,9 @@ pci:v00001B21d00001080* - pci:v00001B21d00001080sv00001849sd00001080* - ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard) - -+pci:v00001B21d00001142* -+ ID_MODEL_FROM_DATABASE=ASM1042A USB 3.0 Host Controller -+ - pci:v00001B2C* - ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc. - -@@ -52916,6 +53096,9 @@ pci:v00001B4Bd00009485* - pci:v00001B55* - ID_VENDOR_FROM_DATABASE=NetUP Inc. - -+pci:v00001B55d000018F6* -+ ID_MODEL_FROM_DATABASE=Dual DVB Universal CI card -+ - pci:v00001B55d00002A2C* - ID_MODEL_FROM_DATABASE=Dual DVB-S2-CI card - -@@ -53135,6 +53318,9 @@ pci:v00001CE4d00000002* - pci:v00001CF7* - ID_VENDOR_FROM_DATABASE=Subspace Dynamics - -+pci:v00001D21* -+ ID_VENDOR_FROM_DATABASE=Allo -+ - pci:v00001D44* - ID_VENDOR_FROM_DATABASE=DPT - -@@ -54956,15 +55142,30 @@ pci:v00008086d00000044sv00001025sd00000347* - pci:v00008086d00000044sv00001025sd00000487* - ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742) - -+pci:v00008086d00000044sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (R730 Laptop) -+ -+pci:v00008086d00000044sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00000044sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE) - - pci:v00008086d00000045* - ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port - -+pci:v00008086d00000045sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00000046* - ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller - -+pci:v00008086d00000046sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (R730 Laptop) -+ -+pci:v00008086d00000046sv000017C0sd000010D9* -+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00000046sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE) - -@@ -55238,6 +55439,9 @@ pci:v00008086d00000150* - pci:v00008086d00000150sv00001043sd000084CA* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard) - -+pci:v00008086d00000150sv000015D9sd00000624* -+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (X9SCM-F Motherboard) -+ - pci:v00008086d00000150sv00001849sd00000150* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard) - -@@ -55445,6 +55649,9 @@ pci:v00008086d00000416sv000017AAsd0000220E* - pci:v00008086d0000041A* - ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller - -+pci:v00008086d0000041E* -+ ID_MODEL_FROM_DATABASE=4th Generation Core Processor Family Integrated Graphics Controller -+ - pci:v00008086d00000433* - ID_MODEL_FROM_DATABASE=Coleto Creek ACC - ME/CPM interface - -@@ -56727,241 +56934,85 @@ pci:v00008086d00000EFD* - ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO - - pci:v00008086d00000F00* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -- --pci:v00008086d00000F01* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -- --pci:v00008086d00000F02* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -- --pci:v00008086d00000F03* -- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register - - pci:v00008086d00000F04* -- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller -- --pci:v00008086d00000F05* -- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller - - pci:v00008086d00000F06* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller -- --pci:v00008086d00000F07* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 DMA Controller - - pci:v00008086d00000F08* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller - - pci:v00008086d00000F09* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller - - pci:v00008086d00000F0A* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 -- --pci:v00008086d00000F0B* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #1 - - pci:v00008086d00000F0C* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 -- --pci:v00008086d00000F0D* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #2 - - pci:v00008086d00000F0E* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller -- --pci:v00008086d00000F0F* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller -- --pci:v00008086d00000F10* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller -- --pci:v00008086d00000F11* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller -- --pci:v00008086d00000F12* -- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller -- --pci:v00008086d00000F13* -- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 SPI Controller - - pci:v00008086d00000F14* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller - - pci:v00008086d00000F15* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller - - pci:v00008086d00000F16* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -- --pci:v00008086d00000F17* -- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller - - pci:v00008086d00000F18* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -- --pci:v00008086d00000F19* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -- --pci:v00008086d00000F1A* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -- --pci:v00008086d00000F1B* -- ID_MODEL_FROM_DATABASE=ValleyView SEC -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine - - pci:v00008086d00000F1C* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F1D* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F1E* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F1F* -- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit -- --pci:v00008086d00000F20* -- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller -- --pci:v00008086d00000F21* -- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller -- --pci:v00008086d00000F22* -- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller -- --pci:v00008086d00000F23* -- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller -- --pci:v00008086d00000F24* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F25* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F26* -- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller -- --pci:v00008086d00000F27* -- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Power Control Unit - - pci:v00008086d00000F28* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F29* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F2A* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F2B* -- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller -- --pci:v00008086d00000F2E* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F2F* -- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller -- --pci:v00008086d00000F30* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPE Audio Controller - - pci:v00008086d00000F31* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -- --pci:v00008086d00000F32* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -- --pci:v00008086d00000F33* -- ID_MODEL_FROM_DATABASE=ValleyView Gen7 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Graphics & Display - - pci:v00008086d00000F34* -- ID_MODEL_FROM_DATABASE=ValleyView USB Enhanced Host Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB EHCI - - pci:v00008086d00000F35* -- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller -- --pci:v00008086d00000F36* -- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB xHCI - - pci:v00008086d00000F37* -- ID_MODEL_FROM_DATABASE=ValleyView OTG -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series OTG USB Device - - pci:v00008086d00000F38* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F39* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3A* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3B* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3C* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3D* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3E* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -- --pci:v00008086d00000F3F* -- ID_MODEL_FROM_DATABASE=ValleyView ISP -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Camera ISP - - pci:v00008086d00000F40* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 DMA Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 DMA Controller - - pci:v00008086d00000F41* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #1 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #1 - - pci:v00008086d00000F42* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #2 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #2 - - pci:v00008086d00000F43* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #3 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #3 - - pci:v00008086d00000F44* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #4 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #4 - - pci:v00008086d00000F45* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #5 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #5 - - pci:v00008086d00000F46* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #6 -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #6 - - pci:v00008086d00000F47* -- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #7 -- --pci:v00008086d00000F48* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F49* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4A* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4B* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4C* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4D* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4E* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F4F* -- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port -- --pci:v00008086d00000F50* -- ID_MODEL_FROM_DATABASE=ValleyView MIPI-HSI Controller -+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #7 - - pci:v00008086d00001000* - ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber) -@@ -57842,6 +57893,9 @@ pci:v00008086d00001091* - pci:v00008086d00001092* - ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection - -+pci:v00008086d00001092sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d00001093* - ID_MODEL_FROM_DATABASE=PRO/100 VM Network Connection - -@@ -59403,7 +59457,7 @@ pci:v00008086d0000154Asv00008086sd0000011C* - ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4) - - pci:v00008086d0000154C* -- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function - - pci:v00008086d0000154D* - ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter -@@ -59460,34 +59514,37 @@ pci:v00008086d00001570* - ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V - - pci:v00008086d00001571* -- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function -+ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function - - pci:v00008086d00001572* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ - - pci:v00008086d00001572sv00001028sd00001F99* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710/I350 rNDC) -+ -+pci:v00008086d00001572sv00008086sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710) - - pci:v00008086d00001572sv00008086sd00000001* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000002* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000004* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4) - - pci:v00008086d00001572sv00008086sd00000005* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000006* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 2P X710 Adapter) - - pci:v00008086d00001572sv00008086sd00000007* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d00001572sv00008086sd00000008* -- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2) - - pci:v00008086d0000157B* - ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection -@@ -59496,17 +59553,20 @@ pci:v00008086d0000157C* - ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection - - pci:v00008086d00001580* -- ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE backplane - - pci:v00008086d00001581* -- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane - - pci:v00008086d00001581sv00001028sd00001F98* -- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC) -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane (Ethernet 10G 4P X710-k bNDC) - - pci:v00008086d00001583* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - -+pci:v00008086d00001583sv00008086sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) -+ - pci:v00008086d00001583sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - -@@ -59519,6 +59579,9 @@ pci:v00008086d00001583sv00008086sd00000003* - pci:v00008086d00001584* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - -+pci:v00008086d00001584sv00008086sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) -+ - pci:v00008086d00001584sv00008086sd00000001* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1) - -@@ -61244,9 +61307,15 @@ pci:v00008086d00002448sv0000104Dsd0000902D* - pci:v00008086d00002448sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard) - -+pci:v00008086d00002448sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d00002448sv0000144Dsd0000C00C* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook) - -+pci:v00008086d00002448sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (R730 Laptop) -+ - pci:v00008086d00002448sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P) - -@@ -61259,6 +61328,12 @@ pci:v00008086d00002448sv00001734sd00001055* - pci:v00008086d00002448sv000017AAsd000020AE* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61) - -+pci:v00008086d00002448sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion Akoya E7214 Notebook PC [MD98410]) -+ -+pci:v00008086d00002448sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002448sv00008086sd0000544B* - ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT) - -@@ -61872,7 +61947,7 @@ pci:v00008086d000024C5sv00001014sd00000267* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p) - - pci:v00008086d000024C5sv00001014sd00000537* -- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T4x Series) - - pci:v00008086d000024C5sv00001014sd0000055F* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634) -@@ -61944,7 +62019,7 @@ pci:v00008086d000024C6* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller - - pci:v00008086d000024C6sv00001014sd00000524* -- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41) -+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T4x Series) - - pci:v00008086d000024C6sv00001014sd00000525* - ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad) -@@ -64358,6 +64433,9 @@ pci:v00008086d000027A0sv0000103Csd000030A3* - pci:v00008086d000027A0sv00001043sd00001237* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008) - -+pci:v00008086d000027A0sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027A0sv000017AAsd00002015* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60) - -@@ -64373,6 +64451,9 @@ pci:v00008086d000027A1sv0000103Csd0000309F* - pci:v00008086d000027A1sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440) - -+pci:v00008086d000027A1sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027A2* - ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller - -@@ -64457,6 +64538,9 @@ pci:v00008086d000027B9sv0000103Csd000030A1* - pci:v00008086d000027B9sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440) - -+pci:v00008086d000027B9sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027B9sv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop) - -@@ -64568,6 +64652,9 @@ pci:v00008086d000027C4sv00001025sd0000006C* - pci:v00008086d000027C4sv00001028sd000001D7* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210) - -+pci:v00008086d000027C4sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027C4sv000017AAsd0000200E* - ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60) - -@@ -64625,6 +64712,9 @@ pci:v00008086d000027C8sv00001043sd00008179* - pci:v00008086d000027C8sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard) - -+pci:v00008086d000027C8sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027C8sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500) - -@@ -64691,6 +64781,9 @@ pci:v00008086d000027C9sv00001043sd00008179* - pci:v00008086d000027C9sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard) - -+pci:v00008086d000027C9sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027C9sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500) - -@@ -64757,6 +64850,9 @@ pci:v00008086d000027CAsv00001043sd00008179* - pci:v00008086d000027CAsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard) - -+pci:v00008086d000027CAsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027CAsv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500) - -@@ -64817,6 +64913,9 @@ pci:v00008086d000027CBsv00001043sd00008179* - pci:v00008086d000027CBsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard) - -+pci:v00008086d000027CBsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027CBsv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500) - -@@ -64880,6 +64979,9 @@ pci:v00008086d000027CCsv00001043sd00008179* - pci:v00008086d000027CCsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard) - -+pci:v00008086d000027CCsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027CCsv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P) - -@@ -64913,6 +65015,9 @@ pci:v00008086d000027D0sv0000103Csd0000309F* - pci:v00008086d000027D0sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440) - -+pci:v00008086d000027D0sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D0sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P) - -@@ -64937,6 +65042,9 @@ pci:v00008086d000027D2sv0000103Csd0000309F* - pci:v00008086d000027D2sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440) - -+pci:v00008086d000027D2sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D2sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P) - -@@ -64952,6 +65060,9 @@ pci:v00008086d000027D2sv00008086sd0000544B* - pci:v00008086d000027D4* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 - -+pci:v00008086d000027D4sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D4sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P) - -@@ -64970,6 +65081,9 @@ pci:v00008086d000027D6* - pci:v00008086d000027D6sv0000103Csd000030A3* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440) - -+pci:v00008086d000027D6sv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D6sv0000144Dsd0000C072* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P) - -@@ -65021,6 +65135,9 @@ pci:v00008086d000027D8sv00001043sd000082EA* - pci:v00008086d000027D8sv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard) - -+pci:v00008086d000027D8sv00001071sd00008207* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027D8sv0000107Bsd00005048* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500) - -@@ -65099,6 +65216,9 @@ pci:v00008086d000027DAsv00001043sd00008179* - pci:v00008086d000027DAsv0000105Bsd00000D7C* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard) - -+pci:v00008086d000027DAsv00001071sd00008209* -+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Medion MIM 2240 Notebook PC [MD98100]) -+ - pci:v00008086d000027DAsv000010F7sd00008338* - ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop) - -@@ -65258,6 +65378,9 @@ pci:v00008086d00002815sv0000104Dsd00009005* - pci:v00008086d00002815sv0000104Dsd0000902D* - ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E) - -+pci:v00008086d00002815sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002820* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode] - -@@ -65342,6 +65465,9 @@ pci:v00008086d00002829sv0000104Dsd0000902D* - pci:v00008086d00002829sv000017AAsd000020A7* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61) - -+pci:v00008086d00002829sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002829sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA) - -@@ -65393,6 +65519,9 @@ pci:v00008086d00002830sv00001462sd00007235* - pci:v00008086d00002830sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61) - -+pci:v00008086d00002830sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002830sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA) - -@@ -65435,6 +65564,9 @@ pci:v00008086d00002831sv00001462sd00007235* - pci:v00008086d00002831sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61) - -+pci:v00008086d00002831sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002831sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA) - -@@ -65474,6 +65606,9 @@ pci:v00008086d00002832sv0000104Dsd0000902D* - pci:v00008086d00002832sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61) - -+pci:v00008086d00002832sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002832sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA) - -@@ -65519,6 +65654,9 @@ pci:v00008086d00002834sv00001462sd00007235* - pci:v00008086d00002834sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61) - -+pci:v00008086d00002834sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002834sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA) - -@@ -65555,6 +65693,9 @@ pci:v00008086d00002835sv0000104Dsd0000902D* - pci:v00008086d00002835sv000017AAsd000020AA* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61) - -+pci:v00008086d00002835sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002835sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA) - -@@ -65597,6 +65738,9 @@ pci:v00008086d00002836sv00001462sd00007235* - pci:v00008086d00002836sv000017AAsd000020AB* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61) - -+pci:v00008086d00002836sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002836sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA) - -@@ -65633,6 +65777,9 @@ pci:v00008086d0000283Asv0000104Dsd0000902D* - pci:v00008086d0000283Asv000017AAsd000020AB* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61) - -+pci:v00008086d0000283Asv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d0000283Asv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA) - -@@ -65669,6 +65816,9 @@ pci:v00008086d0000283Esv00001462sd00007235* - pci:v00008086d0000283Esv000017AAsd000020A9* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61) - -+pci:v00008086d0000283Esv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d0000283Esv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA) - -@@ -65687,6 +65837,9 @@ pci:v00008086d0000283Fsv0000104Dsd0000902D* - pci:v00008086d0000283Fsv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61) - -+pci:v00008086d0000283Fsv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002841* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 - -@@ -65699,6 +65852,9 @@ pci:v00008086d00002841sv0000104Dsd0000902D* - pci:v00008086d00002841sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61) - -+pci:v00008086d00002841sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002843* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 - -@@ -65708,12 +65864,18 @@ pci:v00008086d00002843sv0000104Dsd0000902D* - pci:v00008086d00002843sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61) - -+pci:v00008086d00002843sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002845* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 - - pci:v00008086d00002845sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61) - -+pci:v00008086d00002845sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002847* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 - -@@ -65726,6 +65888,9 @@ pci:v00008086d00002847sv0000103Csd000030C1* - pci:v00008086d00002847sv000017AAsd000020AD* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61) - -+pci:v00008086d00002847sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002849* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6 - -@@ -65792,6 +65957,9 @@ pci:v00008086d0000284Bsv000014F1sd00005051* - pci:v00008086d0000284Bsv000017AAsd000020AC* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61) - -+pci:v00008086d0000284Bsv000017C0sd00004088* -+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d0000284Bsv00008384sd00007616* - ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400) - -@@ -65831,6 +65999,9 @@ pci:v00008086d00002850sv0000104Dsd0000902D* - pci:v00008086d00002850sv000017AAsd000020A6* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61) - -+pci:v00008086d00002850sv000017C0sd00004083* -+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002850sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA) - -@@ -66794,6 +66965,9 @@ pci:v00008086d00002A00sv000017AAsd000020B1* - pci:v00008086d00002A00sv000017AAsd000020B3* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61) - -+pci:v00008086d00002A00sv000017C0sd00004082* -+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002A00sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA) - -@@ -66821,6 +66995,9 @@ pci:v00008086d00002A02sv0000104Dsd0000902D* - pci:v00008086d00002A02sv000017AAsd000020B5* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61) - -+pci:v00008086d00002A02sv000017C0sd00004082* -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002A02sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA) - -@@ -66828,7 +67005,7 @@ pci:v00008086d00002A03* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) - - pci:v00008086d00002A03sv00001028sd000001F3* -- ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420) -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Inspiron 1420) - - pci:v00008086d00002A03sv0000103Csd000030C0* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b) -@@ -66842,6 +67019,9 @@ pci:v00008086d00002A03sv0000104Dsd0000902D* - pci:v00008086d00002A03sv000017AAsd000020B5* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61) - -+pci:v00008086d00002A03sv000017C0sd00004082* -+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Medion WIM 2210 Notebook PC [MD96850]) -+ - pci:v00008086d00002A03sv0000E4BFsd0000CC47* - ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA) - -@@ -67317,13 +67497,13 @@ pci:v00008086d00002D10* - ID_MODEL_FROM_DATABASE=Core Processor QPI Link 0 - - pci:v00008086d00002D11* -- ID_MODEL_FROM_DATABASE=Core Processor QPI Physical 0 -+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor QPI Physical 0 - - pci:v00008086d00002D12* -- ID_MODEL_FROM_DATABASE=Core Processor Reserved -+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved - - pci:v00008086d00002D13* -- ID_MODEL_FROM_DATABASE=Core Processor Reserved -+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved - - pci:v00008086d00002D81* - ID_MODEL_FROM_DATABASE=Xeon 5600 Series QuickPath Architecture System Address Decoder -@@ -67427,6 +67607,9 @@ pci:v00008086d00002E11* - pci:v00008086d00002E12* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - -+pci:v00008086d00002E12sv000017AAsd00003048* -+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (ThinkCentre M6258) -+ - pci:v00008086d00002E13* - ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller - -@@ -69317,6 +69500,12 @@ pci:v00008086d00003B09* - pci:v00008086d00003B09sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G) - -+pci:v00008086d00003B09sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (R730 Laptop) -+ -+pci:v00008086d00003B09sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B0A* - ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller - -@@ -69416,18 +69605,36 @@ pci:v00008086d00003B26* - pci:v00008086d00003B28* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller - -+pci:v00008086d00003B28sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (R730 Laptop) -+ -+pci:v00008086d00003B28sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B29* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller - - pci:v00008086d00003B29sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G) - -+pci:v00008086d00003B29sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (R730 Laptop) -+ -+pci:v00008086d00003B29sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B2C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller - - pci:v00008086d00003B2D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller - -+pci:v00008086d00003B2Dsv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (R730 Laptop) -+ -+pci:v00008086d00003B2Dsv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B2Dsv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE) - -@@ -69458,9 +69665,15 @@ pci:v00008086d00003B30sv00001028sd000002DA* - pci:v00008086d00003B30sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510) - -+pci:v00008086d00003B30sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (R730 Laptop) -+ - pci:v00008086d00003B30sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B30sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B30sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE) - -@@ -69470,6 +69683,12 @@ pci:v00008086d00003B32* - pci:v00008086d00003B32sv00001025sd00000347* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G) - -+pci:v00008086d00003B32sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (R730 Laptop) -+ -+pci:v00008086d00003B32sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B34* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller - -@@ -69482,9 +69701,15 @@ pci:v00008086d00003B34sv00001028sd000002DA* - pci:v00008086d00003B34sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - -+pci:v00008086d00003B34sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) -+ - pci:v00008086d00003B34sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B34sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B34sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - -@@ -69518,9 +69743,15 @@ pci:v00008086d00003B3Csv00001028sd000002DA* - pci:v00008086d00003B3Csv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510) - -+pci:v00008086d00003B3Csv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop) -+ - pci:v00008086d00003B3Csv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B3Csv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B3Csv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE) - -@@ -69545,9 +69776,15 @@ pci:v00008086d00003B42sv00001028sd000002DA* - pci:v00008086d00003B42sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510) - -+pci:v00008086d00003B42sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (R730 Laptop) -+ - pci:v00008086d00003B42sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard) - -+pci:v00008086d00003B42sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B44* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 - -@@ -69557,24 +69794,39 @@ pci:v00008086d00003B44sv00001028sd0000040B* - pci:v00008086d00003B44sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard) - -+pci:v00008086d00003B44sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B46* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 - - pci:v00008086d00003B46sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510) - -+pci:v00008086d00003B46sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (R730 Laptop) -+ -+pci:v00008086d00003B46sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B48* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 - - pci:v00008086d00003B48sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510) - -+pci:v00008086d00003B48sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (R730 Laptop) -+ - pci:v00008086d00003B4A* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 - - pci:v00008086d00003B4Asv00001028sd000002DA* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980) - -+pci:v00008086d00003B4Asv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B4C* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6 - -@@ -69599,9 +69851,15 @@ pci:v00008086d00003B56sv00001028sd000002DA* - pci:v00008086d00003B56sv00001028sd0000040B* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510) - -+pci:v00008086d00003B56sv0000144Dsd0000C06A* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (R730 Laptop) -+ - pci:v00008086d00003B56sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard) - -+pci:v00008086d00003B56sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B56sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE) - -@@ -69617,6 +69875,9 @@ pci:v00008086d00003B64sv00001025sd00000347* - pci:v00008086d00003B64sv000015D9sd0000060D* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard) - -+pci:v00008086d00003B64sv000017C0sd000010D2* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Medion Akoya E7214 Notebook PC [MD98410]) -+ - pci:v00008086d00003B64sv0000E4BFsd000050C1* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE) - -@@ -69990,7 +70251,7 @@ pci:v00008086d00004222sv00008086sd00001000* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) - - pci:v00008086d00004222sv00008086sd00001001* -- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection) -+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (WM3945ABG MOW2) - - pci:v00008086d00004222sv00008086sd00001005* - ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection) -@@ -71168,6 +71429,114 @@ pci:v00008086d00008C5E* - pci:v00008086d00008C5F* - ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LPC Controller - -+pci:v00008086d00008C80* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C81* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C82* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] -+ -+pci:v00008086d00008C83* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode] -+ -+pci:v00008086d00008C84* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C85* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C86* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C87* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C88* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C89* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode] -+ -+pci:v00008086d00008C8E* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C8F* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode] -+ -+pci:v00008086d00008C90* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 1 -+ -+pci:v00008086d00008C92* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 2 -+ -+pci:v00008086d00008C94* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 3 -+ -+pci:v00008086d00008C96* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 4 -+ -+pci:v00008086d00008C98* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 5 -+ -+pci:v00008086d00008C9A* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 6 -+ -+pci:v00008086d00008C9C* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 7 -+ -+pci:v00008086d00008C9E* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 8 -+ -+pci:v00008086d00008CA0* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HD Audio Controller -+ -+pci:v00008086d00008CA2* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SMBus Controller -+ -+pci:v00008086d00008CA4* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Thermal Controller -+ -+pci:v00008086d00008CA6* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #1 -+ -+pci:v00008086d00008CAD* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #2 -+ -+pci:v00008086d00008CB1* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB xHCI Controller -+ -+pci:v00008086d00008CB3* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LAN Controller -+ -+pci:v00008086d00008CBA* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #1 -+ -+pci:v00008086d00008CBB* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #2 -+ -+pci:v00008086d00008CBC* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family IDE-R Controller -+ -+pci:v00008086d00008CBD* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family KT Controller -+ -+pci:v00008086d00008CC1* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller -+ -+pci:v00008086d00008CC2* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller -+ -+pci:v00008086d00008CC3* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HM97 LPC Controller -+ -+pci:v00008086d00008CC4* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Z97 LPC Controller -+ -+pci:v00008086d00008CC6* -+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family H97 Controller -+ - pci:v00008086d00008D00* - ID_MODEL_FROM_DATABASE=Wellsburg 4-port SATA Controller [IDE mode] - -@@ -71379,208 +71748,208 @@ pci:v00008086d000096A1* - ID_MODEL_FROM_DATABASE=Integrated RAID - - pci:v00008086d00009C00* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] - - pci:v00008086d00009C01* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode] - - pci:v00008086d00009C02* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] - - pci:v00008086d00009C03* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] - - pci:v00008086d00009C03sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] (ThinkPad X240) - - pci:v00008086d00009C04* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C05* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C06* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C07* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C08* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] - - pci:v00008086d00009C09* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode] - - pci:v00008086d00009C0A* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0B* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0C* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0D* -- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved] - - pci:v00008086d00009C0E* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C0F* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode] -+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode] - - pci:v00008086d00009C10* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 - - pci:v00008086d00009C11* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1 - - pci:v00008086d00009C12* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 - - pci:v00008086d00009C13* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2 - - pci:v00008086d00009C14* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 - - pci:v00008086d00009C15* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3 - - pci:v00008086d00009C16* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 - - pci:v00008086d00009C17* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4 - - pci:v00008086d00009C18* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 - - pci:v00008086d00009C19* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5 - - pci:v00008086d00009C1A* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 - - pci:v00008086d00009C1B* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6 - - pci:v00008086d00009C1C* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 - - pci:v00008086d00009C1D* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7 - - pci:v00008086d00009C1E* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 - - pci:v00008086d00009C1F* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8 -+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8 - - pci:v00008086d00009C20* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller -+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller - - pci:v00008086d00009C20sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller (ThinkPad X240) - - pci:v00008086d00009C21* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller -+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller - - pci:v00008086d00009C22* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller -+ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller - - pci:v00008086d00009C22sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller (ThinkPad X240) - - pci:v00008086d00009C23* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters -+ ID_MODEL_FROM_DATABASE=8 Series CHAP Counters - - pci:v00008086d00009C24* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP Thermal -+ ID_MODEL_FROM_DATABASE=8 Series Thermal - - pci:v00008086d00009C26* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 -+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 - - pci:v00008086d00009C26sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 (ThinkPad X240) - - pci:v00008086d00009C2D* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2 -+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #2 - - pci:v00008086d00009C31* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC -+ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC - - pci:v00008086d00009C31sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC (ThinkPad X240) - - pci:v00008086d00009C35* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller -+ ID_MODEL_FROM_DATABASE=8 Series SDIO Controller - - pci:v00008086d00009C36* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP Audio DSP Controller -+ ID_MODEL_FROM_DATABASE=8 Series Audio DSP Controller - - pci:v00008086d00009C3A* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 -+ ID_MODEL_FROM_DATABASE=8 Series HECI #0 - - pci:v00008086d00009C3Asv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series HECI #0 (ThinkPad X240) - - pci:v00008086d00009C3B* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1 -+ ID_MODEL_FROM_DATABASE=8 Series HECI #1 - - pci:v00008086d00009C3C* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI IDER -+ ID_MODEL_FROM_DATABASE=8 Series HECI IDER - - pci:v00008086d00009C3D* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI KT -+ ID_MODEL_FROM_DATABASE=8 Series HECI KT - - pci:v00008086d00009C40* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C41* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C42* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C43* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C43sv000017AAsd00002214* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240) -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller (ThinkPad X240) - - pci:v00008086d00009C44* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C45* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C46* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C47* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller -+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller - - pci:v00008086d00009C60* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP Low Power Sub-System DMA -+ ID_MODEL_FROM_DATABASE=8 Series Low Power Sub-System DMA - - pci:v00008086d00009C61* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #0 -+ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #0 - - pci:v00008086d00009C62* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #1 -+ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #1 - - pci:v00008086d00009C63* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #0 -+ ID_MODEL_FROM_DATABASE=8 Series UART Controller #0 - - pci:v00008086d00009C64* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #1 -+ ID_MODEL_FROM_DATABASE=8 Series UART Controller #1 - - pci:v00008086d00009C65* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #0 -+ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #0 - - pci:v00008086d00009C66* -- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #1 -+ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #1 - - pci:v00008086d00009C83* - ID_MODEL_FROM_DATABASE=Wildcat Point-LP SATA Controller [AHCI Mode] -diff --git hwdb/20-usb-classes.hwdb hwdb/20-usb-classes.hwdb -index 3294d8a..418d39b 100644 ---- hwdb/20-usb-classes.hwdb -+++ hwdb/20-usb-classes.hwdb -@@ -311,6 +311,9 @@ usb:v*p*d*dcEFdsc02dp02* - usb:v*p*d*dcEFdsc03dp01* - ID_USB_PROTOCOL_FROM_DATABASE=Cable Based Association - -+usb:v*p*d*dcEFdsc05* -+ ID_USB_SUBCLASS_FROM_DATABASE=USB3 Vision -+ - usb:v*p*d*dcFE* - ID_USB_CLASS_FROM_DATABASE=Application Specific Interface - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 05f267d..89cd5b1 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -284,9 +284,18 @@ usb:v03EBp2310* - usb:v03EBp2FE4* - ID_MODEL_FROM_DATABASE=ATxmega32A4U DFU bootloader - -+usb:v03EBp2FE6* -+ ID_MODEL_FROM_DATABASE=Cactus V6 (DFU) -+ -+usb:v03EBp2FEA* -+ ID_MODEL_FROM_DATABASE=Cactus RF60 (DFU) -+ - usb:v03EBp2FF0* - ID_MODEL_FROM_DATABASE=atmega32u2 DFU bootloader - -+usb:v03EBp2FF4* -+ ID_MODEL_FROM_DATABASE=atmega32u4 DFU bootloader -+ - usb:v03EBp2FFA* - ID_MODEL_FROM_DATABASE=at90usb162 DFU bootloader - -@@ -4409,6 +4418,9 @@ usb:v0424p2602* - usb:v0424p2640* - ID_MODEL_FROM_DATABASE=USB 2.0 Hub - -+usb:v0424p2660* -+ ID_MODEL_FROM_DATABASE=Hub -+ - usb:v0424p4060* - ID_MODEL_FROM_DATABASE=Ultra Fast Media Reader - -@@ -5373,7 +5385,7 @@ usb:v0457p0162* - ID_MODEL_FROM_DATABASE=SiS162 usb Wireless LAN Adapter - - usb:v0457p0163* -- ID_MODEL_FROM_DATABASE=802.11 Wireless LAN Adapter -+ ID_MODEL_FROM_DATABASE=SiS163U 802.11 Wireless LAN Adapter - - usb:v0457p0817* - ID_MODEL_FROM_DATABASE=SiS-184-ASUS-4352.17 touch panel -@@ -6947,6 +6959,9 @@ usb:v046Dp082D* - usb:v046Dp0830* - ID_MODEL_FROM_DATABASE=QuickClip - -+usb:v046Dp0837* -+ ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam -+ - usb:v046Dp0840* - ID_MODEL_FROM_DATABASE=QuickCam Express - -@@ -7856,6 +7871,9 @@ usb:v046DpC52F* - usb:v046DpC532* - ID_MODEL_FROM_DATABASE=Unifying Receiver - -+usb:v046DpC534* -+ ID_MODEL_FROM_DATABASE=Unifying Receiver -+ - usb:v046DpC603* - ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT - -@@ -8738,6 +8756,9 @@ usb:v0480pA007* - usb:v0480pA009* - ID_MODEL_FROM_DATABASE=Stor.E Basics - -+usb:v0480pA00D* -+ ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB -+ - usb:v0480pD010* - ID_MODEL_FROM_DATABASE=External Disk 3TB - -@@ -10943,6 +10964,9 @@ usb:v04A9p3196* - usb:v04A9p319A* - ID_MODEL_FROM_DATABASE=EOS 7D - -+usb:v04A9p319B* -+ ID_MODEL_FROM_DATABASE=EOS 50D -+ - usb:v04A9p31AA* - ID_MODEL_FROM_DATABASE=SELPHY CP770 - -@@ -11219,6 +11243,15 @@ usb:v04A9p3277* - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -+usb:v04A9p327F* -+ ID_MODEL_FROM_DATABASE=EOS Rebel T5 / EOS 1200D / EOS Kiss X70 -+ -+usb:v04A9p3284* -+ ID_MODEL_FROM_DATABASE=PowerShot D30 -+ -+usb:v04A9p3286* -+ ID_MODEL_FROM_DATABASE=PowerShot SX600 HS -+ - usb:v04A9p3288* - ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145 - -@@ -13040,6 +13073,9 @@ usb:v04D8p0036* - usb:v04D8p00E0* - ID_MODEL_FROM_DATABASE=PIC32 Starter Board - -+usb:v04D8p04CD* -+ ID_MODEL_FROM_DATABASE=28Cxxx EEPROM Programmer -+ - usb:v04D8p0A04* - ID_MODEL_FROM_DATABASE=AGP LIN Serial Analyzer - -@@ -14093,6 +14129,9 @@ usb:v04E8p5F05* - usb:v04E8p6032* - ID_MODEL_FROM_DATABASE=G2 Portable hard drive - -+usb:v04E8p6033* -+ ID_MODEL_FROM_DATABASE=G2 Portable device -+ - usb:v04E8p6034* - ID_MODEL_FROM_DATABASE=G2 Portable hard drive - -@@ -14102,6 +14141,9 @@ usb:v04E8p60B3* - usb:v04E8p60C4* - ID_MODEL_FROM_DATABASE=M2 Portable Hard Drive USB 3.0 - -+usb:v04E8p6124* -+ ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive -+ - usb:v04E8p61B6* - ID_MODEL_FROM_DATABASE=M3 Portable Hard Drive 1TB - -@@ -15224,6 +15266,9 @@ usb:v04F9p0223* - usb:v04F9p0248* - ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer - -+usb:v04F9p02B3* -+ ID_MODEL_FROM_DATABASE=MFC J4510DW -+ - usb:v04F9p1000* - ID_MODEL_FROM_DATABASE=Printer - -@@ -15546,7 +15591,7 @@ usb:v050Dp0013* - ID_MODEL_FROM_DATABASE=F8T013 Bluetooth Adapter - - usb:v050Dp0017* -- ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 -+ ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 / F4U017 USB 2.0 7-port Hub - - usb:v050Dp003A* - ID_MODEL_FROM_DATABASE=Universal Media Reader -@@ -15683,6 +15728,9 @@ usb:v050Dp1106* - usb:v050Dp1109* - ID_MODEL_FROM_DATABASE=F9L1109v1 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] - -+usb:v050Dp110A* -+ ID_MODEL_FROM_DATABASE=F9L1101v2 802.11abgn Wireless Adapter [Realtek RTL8192DU] -+ - usb:v050Dp11F2* - ID_MODEL_FROM_DATABASE=ISY Wireless Micro Adapter IWL 2000 [RTL8188CUS] - -@@ -15723,7 +15771,7 @@ usb:v050Dp6051* - ID_MODEL_FROM_DATABASE=F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201] - - usb:v050Dp615A* -- ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101 802.11abgn Wireless Adapter [Broadcom BCM4323] -+ ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101v1 802.11abgn Wireless Adapter [Broadcom BCM4323] - - usb:v050Dp7050* - ID_MODEL_FROM_DATABASE=F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887] -@@ -16358,6 +16406,9 @@ usb:v0547p2810* - usb:v0547p4D90* - ID_MODEL_FROM_DATABASE=AmScope MD1900 camera - -+usb:v0547p7000* -+ ID_MODEL_FROM_DATABASE=PowerSpec MCE460 Front Panel LED Display -+ - usb:v0547p7777* - ID_MODEL_FROM_DATABASE=Bluetooth Device - -@@ -21677,6 +21728,9 @@ usb:v05F9p2601* - usb:v05F9p2602* - ID_MODEL_FROM_DATABASE=Datalogic Magellan 1100i Barcode Scanner - -+usb:v05F9p4204* -+ ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4470 Fixed Scanner -+ - usb:v05F9p5204* - ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4170 (config mode) - -@@ -23234,6 +23288,9 @@ usb:v068Ep00D3* - usb:v068Ep00E2* - ID_MODEL_FROM_DATABASE=HFX OEM Joystick - -+usb:v068Ep00F0* -+ ID_MODEL_FROM_DATABASE=Multi-Function Panel -+ - usb:v068Ep00F1* - ID_MODEL_FROM_DATABASE=Pro Throttle - -@@ -25838,6 +25895,9 @@ usb:v0781p74D0* - usb:v0781p74D1* - ID_MODEL_FROM_DATABASE=Sansa Clip+ (msc) - -+usb:v0781p74E5* -+ ID_MODEL_FROM_DATABASE=Sansa Clip Zip -+ - usb:v0781p8181* - ID_MODEL_FROM_DATABASE=Pen Flash - -@@ -26219,6 +26279,9 @@ usb:v07AAp001A* - usb:v07AAp001C* - ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880] - -+usb:v07AAp0020* -+ ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] -+ - usb:v07AAp002E* - ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W] - -@@ -26939,6 +27002,9 @@ usb:v07CApA827* - usb:v07CApA867* - ID_MODEL_FROM_DATABASE=AVerTV DVB-T (A867) - -+usb:v07CApB300* -+ ID_MODEL_FROM_DATABASE=A300 DVB-T TV receiver -+ - usb:v07CApB800* - ID_MODEL_FROM_DATABASE=MR800 FM Radio - -@@ -27941,6 +28007,9 @@ usb:v083Ap4507* - usb:v083Ap4521* - ID_MODEL_FROM_DATABASE=Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887] - -+usb:v083Ap4531* -+ ID_MODEL_FROM_DATABASE=T-Com Sinus 154 data II [Intersil ISL3887] -+ - usb:v083Ap5046* - ID_MODEL_FROM_DATABASE=SpeedStream 10/100 Ethernet [pegasus] - -@@ -30476,6 +30545,9 @@ usb:v0957p0518* - usb:v0957p0A07* - ID_MODEL_FROM_DATABASE=34411A Multimeter - -+usb:v0957p1507* -+ ID_MODEL_FROM_DATABASE=33210A Waveform Generator -+ - usb:v0957p1745* - ID_MODEL_FROM_DATABASE=Test and Measurement Device (IVI) - -@@ -30876,13 +30948,13 @@ usb:v09D9* - ID_VENDOR_FROM_DATABASE=KRF Tech, Ltd - - usb:v09DA* -- ID_VENDOR_FROM_DATABASE=A4 Tech Co., Ltd -+ ID_VENDOR_FROM_DATABASE=A4Tech Co., Ltd. - - usb:v09DAp0006* - ID_MODEL_FROM_DATABASE=Optical Mouse WOP-35 / Trust 450L Optical Mouse - - usb:v09DAp000A* -- ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D -+ ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D / OP-620D - - usb:v09DAp000E* - ID_MODEL_FROM_DATABASE=X-F710F Optical Mouse 3xFire Gaming Mouse -@@ -32174,6 +32246,9 @@ usb:v0AB1* - usb:v0AB1p0002* - ID_MODEL_FROM_DATABASE=OBID RFID-Reader - -+usb:v0AB1p0004* -+ ID_MODEL_FROM_DATABASE=OBID classic-pro -+ - usb:v0ABA* - ID_VENDOR_FROM_DATABASE=Ellisys - -@@ -32571,7 +32646,7 @@ usb:v0B05p1708* - ID_MODEL_FROM_DATABASE=Mass Storage Device - - usb:v0B05p170B* -- ID_MODEL_FROM_DATABASE=Mass Storage Device -+ ID_MODEL_FROM_DATABASE=Multi card reader - - usb:v0B05p170C* - ID_MODEL_FROM_DATABASE=WL-159g 802.11bg -@@ -32687,6 +32762,9 @@ usb:v0B05p17A1* - usb:v0B05p17AB* - ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] - -+usb:v0B05p17C7* -+ ID_MODEL_FROM_DATABASE=WL-330NUL -+ - usb:v0B05p17C9* - ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] - -@@ -32714,6 +32792,9 @@ usb:v0B05p5410* - usb:v0B05p5412* - ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode) - -+usb:v0B05p550F* -+ ID_MODEL_FROM_DATABASE=ASUS fonepad 7 -+ - usb:v0B05p6101* - ID_MODEL_FROM_DATABASE=Cable Modem - -@@ -32756,6 +32837,9 @@ usb:v0B0Dp0000* - usb:v0B0E* - ID_VENDOR_FROM_DATABASE=GN Netcom - -+usb:v0B0Ep034C* -+ ID_MODEL_FROM_DATABASE=Jabra UC Voice 750 MS -+ - usb:v0B0Ep0420* - ID_MODEL_FROM_DATABASE=Jabra SPEAK 510 - -@@ -49610,6 +49694,12 @@ usb:v2659p1212* - usb:v2659p1213* - ID_MODEL_FROM_DATABASE=MediaTV Pro III MiniPCIe (US) - -+usb:v2676* -+ ID_VENDOR_FROM_DATABASE=Basler AG -+ -+usb:v2676pBA02* -+ ID_MODEL_FROM_DATABASE=ace -+ - usb:v2730* - ID_VENDOR_FROM_DATABASE=Citizen - --- -1.7.9.2 - diff --git a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch deleted file mode 100644 index aa974fa7..00000000 --- a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch +++ /dev/null @@ -1,70 +0,0 @@ -From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 27 Feb 2014 00:07:29 -0500 -Subject: [PATCH] journal: assume that next entry is after previous entry - -With a corrupted file, we can get in a situation where two entries -in the entry array point to the same object. Then journal_file_next_entry -will find the first one using generic_arrray_bisect, and try to move to -the second one, but since the address is the same, generic_array_get will -return the first one. journal_file_next_entry ends up in an infinite loop. - -https://bugzilla.redhat.com/show_bug.cgi?id=1047039 ---- - src/journal/journal-file.c | 26 ++++++++++++++++++++------ - 1 file changed, 20 insertions(+), 6 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 5876733..0e1fc7f 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - } - - typedef struct ChainCacheItem { -- uint64_t first; /* the array at the begin of the chain */ -+ uint64_t first; /* the array at the beginning of the chain */ - uint64_t array; /* the cached array */ - uint64_t begin; /* the first item in the cached array */ - uint64_t total; /* the total number of items in all arrays before this one in the chain */ -@@ -1945,7 +1945,7 @@ int journal_file_next_entry( - direction_t direction, - Object **ret, uint64_t *offset) { - -- uint64_t i, n; -+ uint64_t i, n, ofs; - int r; - - assert(f); -@@ -1986,10 +1986,24 @@ int journal_file_next_entry( - } - - /* And jump to it */ -- return generic_array_get(f, -- le64toh(f->header->entry_array_offset), -- i, -- ret, offset); -+ r = generic_array_get(f, -+ le64toh(f->header->entry_array_offset), -+ i, -+ ret, &ofs); -+ if (r <= 0) -+ return r; -+ -+ if (p > 0 && -+ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { -+ log_debug("%s: entry array corrupted at entry %"PRIu64, -+ f->path, i); -+ return -EBADMSG; -+ } -+ -+ if (offset) -+ *offset = ofs; -+ -+ return 1; - } - - int journal_file_skip_entry( --- -1.7.9.2 - diff --git a/0006-journald-fix-minor-memory-leak.patch b/0006-journald-fix-minor-memory-leak.patch deleted file mode 100644 index 72d2ab39..00000000 --- a/0006-journald-fix-minor-memory-leak.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 99d0966e75a984bed4f117c888ecc93e16e7b7b6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Nov 2014 21:11:16 +0100 -Subject: [PATCH] journald: fix minor memory leak - ---- - src/journal/journald-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/journal/journald-server.c src/journal/journald-server.c -index e062427..cf6bbcc 100644 ---- src/journal/journald-server.c -+++ src/journal/journald-server.c -@@ -1690,6 +1690,7 @@ void server_done(Server *s) { - free(s->buffer); - free(s->tty_path); - free(s->cgroup_root); -+ free(s->hostname_field); - - if (s->mmap) - mmap_cache_unref(s->mmap); --- -1.7.9.2 - diff --git a/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch b/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch deleted file mode 100644 index e76abb48..00000000 --- a/0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e683212f049ac5d3f95fb17300cfa2fd971f78f3 Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Tue, 3 Jun 2014 19:44:03 +0200 -Subject: [PATCH] log: honour the kernel's quiet cmdline argument - -It was forgotten in b1e90ec515408aec2702522f6f68c4920b56375b - -See https://bugs.freedesktop.org/show_bug.cgi?id=79582 ---- - src/shared/log.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/shared/log.c src/shared/log.c -index 9039db3..6f17705 100644 ---- src/shared/log.c -+++ src/shared/log.c -@@ -878,6 +878,9 @@ void log_parse_environment(void) { - if (l == 5 && startswith(w, "debug")) { - log_set_max_level(LOG_DEBUG); - break; -+ } else if (l == 5 && startswith(w, "quiet")) { -+ log_set_max_level(LOG_WARNING); -+ break; - } - } - } --- -1.7.9.2 - diff --git a/0006-login-add-mir-to-the-list-of-session-types.patch b/0006-login-add-mir-to-the-list-of-session-types.patch deleted file mode 100644 index 9e966958..00000000 --- a/0006-login-add-mir-to-the-list-of-session-types.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 9541666b8d97f107335dd7e3cb93b4d2cfbf19c9 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Wed, 9 Apr 2014 21:22:48 +0200 -Subject: [PATCH] login: add 'mir' to the list of session types - -Add Mir to the list of session types. This is implemented for LightDM -in lp:~robert-ancell/lightdm/xdg-session-desktop [1]. - -[1] https://code.launchpad.net/~robert-ancell/lightdm/xdg-session-desktop/+merge/214108 - -(david: adjusted commit-header and fixed whitespace issues) ---- - man/pam_systemd.xml | 5 +++-- - man/sd_session_is_active.xml | 6 +++--- - src/login/logind-session.c | 1 + - src/login/logind-session.h | 1 + - src/systemd/sd-login.h | 2 +- - 5 files changed, 9 insertions(+), 6 deletions(-) - -diff --git man/pam_systemd.xml man/pam_systemd.xml -index 3022cdb..f973899 100644 ---- man/pam_systemd.xml -+++ man/pam_systemd.xml -@@ -145,8 +145,9 @@ - variable takes precedence. One of - unspecified, - tty, -- x11 or -- wayland. See -+ x11, -+ wayland or -+ mir. See - sd_session_get_type3 - for details about the session type. - -diff --git man/sd_session_is_active.xml man/sd_session_is_active.xml -index ddb2bee..31a6119 100644 ---- man/sd_session_is_active.xml -+++ man/sd_session_is_active.xml -@@ -201,9 +201,9 @@ - be used to determine the type of the session - identified by the specified session identifier. The - returned string is one of x11, -- wayland, tty or -- unspecified and needs to be freed -- with the libc -+ wayland, tty, -+ mir or unspecified and -+ needs to be freed with the libc - free3 - call after use. - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-05-20 12:49:07.150236121 +0000 -@@ -1124,6 +1124,7 @@ static const char* const session_type_ta - [SESSION_TTY] = "tty", - [SESSION_X11] = "x11", - [SESSION_WAYLAND] = "wayland", -+ [SESSION_MIR] = "mir", - [SESSION_UNSPECIFIED] = "unspecified", - }; - -diff --git src/login/logind-session.h src/login/logind-session.h -index c9af5eb..7ecc9f0 100644 ---- src/login/logind-session.h -+++ src/login/logind-session.h -@@ -55,6 +55,7 @@ typedef enum SessionType { - SESSION_TTY, - SESSION_X11, - SESSION_WAYLAND, -+ SESSION_MIR, - _SESSION_TYPE_MAX, - _SESSION_TYPE_INVALID = -1 - } SessionType; -diff --git src/systemd/sd-login.h src/systemd/sd-login.h -index a4ca231..776733a 100644 ---- src/systemd/sd-login.h -+++ src/systemd/sd-login.h -@@ -138,7 +138,7 @@ int sd_session_get_seat(const char *session, char **seat); - /* Determine the (PAM) service name this session was registered by. */ - int sd_session_get_service(const char *session, char **service); - --/* Determine the type of this session, i.e. one of "tty", "x11" or "unspecified". */ -+/* Determine the type of this session, i.e. one of "tty", "x11", "wayland", "mir" or "unspecified". */ - int sd_session_get_type(const char *session, char **type); - - /* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */ --- -1.7.9.2 - diff --git a/0006-login-share-VT-signal-handler-between-sessions.patch b/0006-login-share-VT-signal-handler-between-sessions.patch deleted file mode 100644 index 599aa261..00000000 --- a/0006-login-share-VT-signal-handler-between-sessions.patch +++ /dev/null @@ -1,246 +0,0 @@ -Based on 92683ad2e28c79891e4123d9a421b018dc58870c Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Mon, 11 Aug 2014 18:17:54 +0200 -Subject: [PATCH] login: share VT-signal handler between sessions - -sd-event does not allow multiple handlers for a single signal. However, -logind sets up signal handlers for each session with VT_PROCESS set (that -is, it has an active controller). Therefore, registering multiple such -controllers will fail. - -Lets make the VT-handler global, as it's mostly trivial, anyway. This way, -the sessions don't have to take care of that and we can simply acknowledge -all VT-switch requests as we always did. ---- - src/libsystemd/sd-event/sd-event.c | 5 +- - src/login/logind-session.c | 26 +------------ - src/login/logind-session.h | 1 - src/login/logind.c | 70 +++++++++++++++++++++++++++++++++++++ - src/shared/util.c | 18 +++++++++ - src/shared/util.h | 1 - 6 files changed, 94 insertions(+), 27 deletions(-) - ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c 2014-08-26 11:02:54.500683967 +0000 -@@ -839,7 +839,6 @@ _public_ int sd_event_add_signal( - assert_return(sig > 0, -EINVAL); - assert_return(sig < _NSIG, -EINVAL); - assert_return(callback, -EINVAL); -- assert_return(ret, -EINVAL); - assert_return(e->state != SD_EVENT_FINISHED, -ESTALE); - assert_return(!event_pid_changed(e), -ECHILD); - -@@ -877,7 +876,9 @@ _public_ int sd_event_add_signal( - } - } - -- *ret = s; -+ if (ret) -+ *ret = s; -+ - return 0; - } - ---- src/login/logind-session.c -+++ src/login/logind-session.c 2014-08-25 17:22:46.000000000 +0000 -@@ -153,8 +153,6 @@ void session_free(Session *s) { - - hashmap_remove(s->manager->sessions, s->id); - -- s->vt_source = sd_event_source_unref(s->vt_source); -- - free(s->state_file); - free(s); - } -@@ -966,19 +964,9 @@ static int session_open_vt(Session *s) { - return s->vtfd; - } - --static int session_vt_fn(sd_event_source *source, const struct signalfd_siginfo *si, void *data) { -- Session *s = data; -- -- if (s->vtfd >= 0) -- ioctl(s->vtfd, VT_RELDISP, 1); -- -- return 0; --} -- - int session_mute_vt(Session *s) { - int vt, r; - struct vt_mode mode = { 0 }; -- sigset_t mask; - - if (s->vtnr < 1) - return 0; -@@ -1008,20 +996,12 @@ int session_mute_vt(Session *s) { - goto error; - } - -- sigemptyset(&mask); -- sigaddset(&mask, SIGUSR1); -- sigprocmask(SIG_BLOCK, &mask, NULL); -- -- r = sd_event_add_signal(s->manager->event, &s->vt_source, SIGUSR1, session_vt_fn, s); -- if (r < 0) -- goto error; -- - /* Oh, thanks to the VT layer, VT_AUTO does not work with KD_GRAPHICS. - * So we need a dummy handler here which just acknowledges *all* VT - * switch requests. */ - mode.mode = VT_PROCESS; -- mode.relsig = SIGUSR1; -- mode.acqsig = SIGUSR1; -+ mode.relsig = SIGRTMIN; -+ mode.acqsig = SIGRTMIN + 1; - r = ioctl(vt, VT_SETMODE, &mode); - if (r < 0) { - r = -errno; -@@ -1045,8 +1025,6 @@ void session_restore_vt(Session *s) { - if (vt < 0) - return; - -- s->vt_source = sd_event_source_unref(s->vt_source); -- - ioctl(vt, KDSETMODE, KD_TEXT); - - if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1') ---- src/login/logind-session.h -+++ src/login/logind-session.h 2014-08-25 00:00:00.000000000 +0000 -@@ -98,7 +98,6 @@ struct Session { - Seat *seat; - unsigned int vtnr; - int vtfd; -- sd_event_source *vt_source; - - pid_t leader; - uint32_t audit_id; ---- src/login/logind.c -+++ src/login/logind.c 2014-08-26 11:18:41.422235366 +0000 -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - - #include "sd-daemon.h" -@@ -714,6 +715,47 @@ static int manager_connect_bus(Manager * - return 0; - } - -+static int manager_vt_switch(sd_event_source *src, const struct signalfd_siginfo *si, void *data) { -+ Manager *m = data; -+ Session *active, *iter; -+ -+ /* -+ * We got a VT-switch signal and we have to acknowledge it immediately. -+ * Preferably, we'd just use m->seat0->active->vtfd, but unfortunately, -+ * old user-space might run multiple sessions on a single VT, *sigh*. -+ * Therefore, we have to iterate all sessions and find one with a vtfd -+ * on the requested VT. -+ * As only VTs with active controllers have VT_PROCESS set, our current -+ * notion of the active VT might be wrong (for instance if the switch -+ * happens while we setup VT_PROCESS). Therefore, read the current VT -+ * first and then use s->active->vtnr as reference. Note that this is -+ * not racy, as no further VT-switch can happen as long as we're in -+ * synchronous VT_PROCESS mode. -+ */ -+ -+ assert(m->seat0); -+ seat_read_active_vt(m->seat0); -+ -+ active = m->seat0->active; -+ if (!active || active->vtnr < 1) { -+ log_warning("Received VT_PROCESS signal without a registered session on that VT."); -+ return 0; -+ } -+ -+ if (active->vtfd >= 0) { -+ ioctl(active->vtfd, VT_RELDISP, 1); -+ } else { -+ LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) { -+ if (iter->vtnr == active->vtnr && iter->vtfd >= 0) { -+ ioctl(iter->vtfd, VT_RELDISP, 1); -+ break; -+ } -+ } -+ } -+ -+ return 0; -+} -+ - static int manager_connect_console(Manager *m) { - int r; - -@@ -744,6 +786,34 @@ static int manager_connect_console(Manag - return r; - } - -+ /* -+ * SIGRTMIN is used as global VT-release signal, SIGRTMIN + 1 is used -+ * as VT-acquire signal. We ignore any acquire-events (yes, we still -+ * have to provide a valid signal-number for it!) and acknowledge all -+ * release events immediately. -+ */ -+ -+ if (SIGRTMIN + 1 > SIGRTMAX) { -+ log_error("Not enough real-time signals available: %u-%u", SIGRTMIN, SIGRTMAX); -+ return -EINVAL; -+ } -+ -+ r = ignore_signals(SIGRTMIN + 1, -1); -+ if (r < 0) { -+ log_error("Cannot ignore SIGRTMIN + 1: %s", strerror(-r)); -+ return r; -+ } -+ -+ r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1); -+ if (r < 0) { -+ log_error("Cannot block SIGRTMIN: %s", strerror(-r)); -+ return r; -+ } -+ -+ r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m); -+ if (r < 0) -+ return r; -+ - return 0; - } - ---- src/shared/util.c -+++ src/shared/util.c 2014-08-26 10:20:14.000000000 +0000 -@@ -2434,6 +2434,24 @@ void sigset_add_many(sigset_t *ss, ...) - va_end(ap); - } - -+int sigprocmask_many(int how, ...) { -+ va_list ap; -+ sigset_t ss; -+ int sig; -+ -+ assert_se(sigemptyset(&ss) == 0); -+ -+ va_start(ap, how); -+ while ((sig = va_arg(ap, int)) > 0) -+ assert_se(sigaddset(&ss, sig) == 0); -+ va_end(ap); -+ -+ if (sigprocmask(how, &ss, NULL) < 0) -+ return -errno; -+ -+ return 0; -+} -+ - char* gethostname_malloc(void) { - struct utsname u; - ---- src/shared/util.h -+++ src/shared/util.h 2014-08-26 10:21:08.000000000 +0000 -@@ -390,6 +390,7 @@ char* dirname_malloc(const char *path); - void rename_process(const char name[8]); - - void sigset_add_many(sigset_t *ss, ...); -+int sigprocmask_many(int how, ...); - - bool hostname_is_set(void); - diff --git a/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch b/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch deleted file mode 100644 index 4313946b..00000000 --- a/0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 33169701b0640d3629d4c36cf8c71dc26d2cb7e1 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 May 2014 01:33:22 +0200 -Subject: [PATCH] man: clarify that the ExecReload= command should be - synchronous - -http://lists.freedesktop.org/archives/systemd-devel/2014-May/019054.html ---- - man/systemd.service.xml | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git man/systemd.service.xml man/systemd.service.xml -index af32ccb..364ad7d 100644 ---- man/systemd.service.xml -+++ man/systemd.service.xml -@@ -519,6 +519,20 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} - following: - - /bin/kill -HUP $MAINPID -+ -+ Note however that reloading a -+ daemon by sending a signal (as with -+ the example line above) is usually not -+ a good choice, because this is an -+ asynchronous operation and hence not -+ suitable to order reloads of multiple -+ services against each other. It is -+ strongly recommended to set -+ ExecReload= to a -+ command that no only triggers a -+ configuration reload of the daemon, -+ but also synchronously waits for it -+ complete. - - - --- -1.7.9.2 - diff --git a/0006-parse_boolean-require-exact-matches.patch b/0006-parse_boolean-require-exact-matches.patch deleted file mode 100644 index 2c279f99..00000000 --- a/0006-parse_boolean-require-exact-matches.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0f625d0b87139fc18cd565c9b6da05c53a0eb7ab Mon Sep 17 00:00:00 2001 -From: Ansgar Burchardt -Date: Sun, 27 Jul 2014 15:19:00 +0200 -Subject: [PATCH] parse_boolean: require exact matches - -Require exact matches in all cases instead of treating strings -starting with 't' ('f') as true (false). - -This is required for config_parse_protect_system to parse ProtectSystem=full -correctly: it uses parse_boolean and only tries a more specific parsing -function if that did not return a valid result. Thus "full" was treated as -"false" before. ---- - src/shared/util.c | 4 ++-- - src/test/test-util.c | 1 + - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git src/shared/util.c src/shared/util.c -index 4fda31c..49c17ef 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -231,9 +231,9 @@ int unlink_noerrno(const char *path) { - int parse_boolean(const char *v) { - assert(v); - -- if (streq(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || strcaseeq(v, "on")) -+ if (streq(v, "1") || strcaseeq(v, "yes") || strcaseeq(v, "y") || strcaseeq(v, "true") || strcaseeq(v, "t") || strcaseeq(v, "on")) - return 1; -- else if (streq(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || strcaseeq(v, "off")) -+ else if (streq(v, "0") || strcaseeq(v, "no") || strcaseeq(v, "n") || strcaseeq(v, "false") || strcaseeq(v, "f") || strcaseeq(v, "off")) - return 0; - - return -EINVAL; -diff --git src/test/test-util.c src/test/test-util.c -index ed91a67..9a28ef9 100644 ---- src/test/test-util.c -+++ src/test/test-util.c -@@ -129,6 +129,7 @@ static void test_parse_boolean(void) { - - assert_se(parse_boolean("garbage") < 0); - assert_se(parse_boolean("") < 0); -+ assert_se(parse_boolean("full") < 0); - } - - static void test_parse_pid(void) { --- -1.7.9.2 - diff --git a/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch b/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch deleted file mode 100644 index ce18d6c5..00000000 --- a/0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ebc54302d7fc70927d5dc119e178ff03f6a911ed Mon Sep 17 00:00:00 2001 -From: Peter Rajnoha -Date: Mon, 10 Mar 2014 22:58:14 +0100 -Subject: [PATCH] rules: mark loop device as SYSTEMD_READY=0 if no file is - attached - -Check existence of loop/backing_file in sysfs and mark loop devices with -SYSTEMD_READY if missing. Such loop files is uninitialized and it's not -ready for use yet (there's no file attached). ---- - rules/99-systemd.rules.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in -index 021359a..04a59c4 100644 ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in -@@ -22,6 +22,9 @@ SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_T - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" - -+# Ignore loop devices that don't have any file attached -+SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" -+ - # Ignore nbd devices in the "add" event, with "change" the nbd is ready - ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" - --- -1.7.9.2 - diff --git a/0006-sd-event-initialization-perturbation-value-right-bef.patch b/0006-sd-event-initialization-perturbation-value-right-bef.patch deleted file mode 100644 index a561cabb..00000000 --- a/0006-sd-event-initialization-perturbation-value-right-bef.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 52444dc478fe38b5b69a771923ab429a41927aa5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 24 Mar 2014 23:54:21 +0100 -Subject: [PATCH] sd-event: initialization perturbation value right before we - use it - -That way, we don't forget to initialize it when the watchdog is -initialized before all event sources. ---- - src/libsystemd/sd-event/sd-event.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) - ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c 2014-03-28 12:44:05.652327044 +0000 -@@ -648,13 +648,31 @@ _public_ int sd_event_add_io( - return 0; - } - -+static void initialize_perturb(sd_event *e) { -+ sd_id128_t bootid = {}; -+ -+ /* When we sleep for longer, we try to realign the wakeup to -+ the same time wihtin each minute/second/250ms, so that -+ events all across the system can be coalesced into a single -+ CPU wakeup. However, let's take some system-specific -+ randomness for this value, so that in a network of systems -+ with synced clocks timer events are distributed a -+ bit. Here, we calculate a perturbation usec offset from the -+ boot ID. */ -+ -+ if (_likely_(e->perturb != (usec_t) -1)) -+ return; -+ -+ if (sd_id128_get_boot(&bootid) >= 0) -+ e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; -+} -+ - static int event_setup_timer_fd( - sd_event *e, - EventSourceType type, - int *timer_fd, - clockid_t id) { - -- sd_id128_t bootid = {}; - struct epoll_event ev = {}; - int r, fd; - -@@ -677,18 +695,6 @@ static int event_setup_timer_fd( - return -errno; - } - -- /* When we sleep for longer, we try to realign the wakeup to -- the same time wihtin each minute/second/250ms, so that -- events all across the system can be coalesced into a single -- CPU wakeup. However, let's take some system-specific -- randomness for this value, so that in a network of systems -- with synced clocks timer events are distributed a -- bit. Here, we calculate a perturbation usec offset from the -- boot ID. */ -- -- if (sd_id128_get_boot(&bootid) >= 0) -- e->perturb = (bootid.qwords[0] ^ bootid.qwords[1]) % USEC_PER_MINUTE; -- - *timer_fd = fd; - return 0; - } -@@ -1506,6 +1512,8 @@ static usec_t sleep_between(sd_event *e, - if (b <= a + 1) - return a; - -+ initialize_perturb(e); -+ - /* - Find a good time to wake up again between times a and b. We - have two goals here: diff --git a/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch b/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch deleted file mode 100644 index 0dec2f61..00000000 --- a/0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8e8af4cfc7fa373504a22e58966909161acfb72f Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:43 +0200 -Subject: [PATCH] shared/sparse-endian.h: add missing byteswap.h include - ---- - src/shared/sparse-endian.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/sparse-endian.h src/shared/sparse-endian.h -index eb4dbf3..c913fda 100644 ---- src/shared/sparse-endian.h -+++ src/shared/sparse-endian.h -@@ -21,6 +21,7 @@ - #ifndef SPARSE_ENDIAN_H - #define SPARSE_ENDIAN_H - -+#include - #include - #include - --- -1.7.9.2 - diff --git a/0006-systemctl-fix-resource-leak-CID-1237747.patch b/0006-systemctl-fix-resource-leak-CID-1237747.patch deleted file mode 100644 index f8ec6af1..00000000 --- a/0006-systemctl-fix-resource-leak-CID-1237747.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 48a2900c6612052149a1d0dd88aeacb99b49ce4d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Wed, 17 Sep 2014 21:56:25 -0300 -Subject: [PATCH] systemctl: fix resource leak CID #1237747 - -..by simply moving the declaration of "unit" into the STRV_FOREACH -loop as suggested by Andreas. ---- - src/systemctl/systemctl.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c -index 88be871..9012128 100644 ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c -@@ -4449,7 +4449,6 @@ static int show(sd_bus *bus, char **args) { - } - - static int cat(sd_bus *bus, char **args) { -- _cleanup_free_ char *unit = NULL; - _cleanup_strv_free_ char **names = NULL; - char **name; - bool first = true; -@@ -4468,6 +4467,8 @@ static int cat(sd_bus *bus, char **args) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_strv_free_ char **dropin_paths = NULL; - _cleanup_free_ char *fragment_path = NULL; -+ _cleanup_free_ char *unit = NULL; -+ - char **path; - - unit = unit_dbus_path_from_name(*name); --- -1.7.9.2 - diff --git a/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch b/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch deleted file mode 100644 index b1fc0988..00000000 --- a/0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch +++ /dev/null @@ -1,37 +0,0 @@ -Based on b4af5a803aa71a57733ca46fef29b7afb20a626c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 17:33:26 +0200 -Subject: [PATCH] systemctl: show StatusErrno value in "systemctl status" - ---- - src/systemctl/systemctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-07-08 10:57:30.170735691 +0000 -@@ -2710,6 +2710,7 @@ typedef struct UnitStatusInfo { - const char *status_text; - const char *pid_file; - bool running:1; -+ int status_errno; - - usec_t start_timestamp; - usec_t exit_timestamp; -@@ -2982,6 +2983,8 @@ static void print_status_info( - - if (i->status_text) - printf(" Status: \"%s\"\n", i->status_text); -+ if (i->status_errno > 0) -+ printf(" Error: %i (%s)\n", i->status_errno, strerror(i->status_errno)); - - if (i->control_group && - (i->main_pid > 0 || i->control_pid > 0 || cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, i->control_group, false) == 0)) { -@@ -3203,6 +3206,8 @@ static int status_property(const char *n - i->exit_code = (int) j; - else if (streq(name, "ExecMainStatus")) - i->exit_status = (int) j; -+ else if (streq(name, "StatusErrno")) -+ i->status_errno = (int) j; - - break; - } diff --git a/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch b/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch deleted file mode 100644 index 8647f1e1..00000000 --- a/0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch +++ /dev/null @@ -1,26 +0,0 @@ -Based on 6fc27667950fe153033f0f49cb5b57e8954c3e54 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 30 Jun 2014 19:06:18 +0200 -Subject: [PATCH] tmpfiles: don't do automatic cleanup in $XDG_RUNTIME_DIR - -Now that logind will clean up all IPC resources of a user we should -really consider $XDG_RUNTIME_DIR as just another kind of IPC with the -same life-cycle logic as the other IPC resources. This should be safe -now to do since every user gets his own $XDG_RUNTIME_DIR tmpfs instance -with a fixed size limit, so that flooding of it will more effectively be -averted. ---- - tmpfiles.d/systemd.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- tmpfiles.d/systemd.conf -+++ tmpfiles.d/systemd.conf 2014-07-01 12:31:01.858735866 +0000 -@@ -7,7 +7,7 @@ - - # See tmpfiles.d(5) for details - --d /run/user 0755 root root ~10d -+d /run/user 0755 root root - - F! /run/utmp 0664 root utmp - - - f /var/log/wtmp 0664 root utmp - diff --git a/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch b/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch deleted file mode 100644 index aa77e4cc..00000000 --- a/0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 267b3e41df5a2181f2911433539f81de2fa1511a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Thu, 29 May 2014 14:17:37 -0400 -Subject: [PATCH] tty-ask-password-agent: Do tell what directory we failed to - open - ---- - .../tty-ask-password-agent.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c -index 3203474..55a2215 100644 ---- src/tty-ask-password-agent/tty-ask-password-agent.c -+++ src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -501,7 +501,7 @@ static int show_passwords(void) { - if (errno == ENOENT) - return 0; - -- log_error("opendir(): %m"); -+ log_error("opendir(/run/systemd/ask-password): %m"); - return -errno; - } - --- -1.7.9.2 - diff --git a/0007-README-document-that-var-run-must-be-a-symlink-run.patch b/0007-README-document-that-var-run-must-be-a-symlink-run.patch deleted file mode 100644 index 4b8b4384..00000000 --- a/0007-README-document-that-var-run-must-be-a-symlink-run.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 47bc23c18cbc87471dc832534c8565625e4a9d16 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 02:54:37 +0100 -Subject: [PATCH] =?UTF-8?q?README:=20document=20that=20/var/run=20must=20be=20?= - =?UTF-8?q?a=20symlink=20=E2=86=92=20/run?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - README | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git README README -index b918132..7a227e7 100644 ---- README -+++ README -@@ -190,6 +190,9 @@ WARNINGS: - about this, since this kind of file system setup is not really - supported anymore by the basic set of Linux OS components. - -+ systemd requires that the /run mount point exists. systemd also -+ requires that /var/run is a a symlink → /run. -+ - For more information on this issue consult - http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken - --- -1.7.9.2 - diff --git a/0007-core-fix-a-potential-mem-leak.patch b/0007-core-fix-a-potential-mem-leak.patch deleted file mode 100644 index 03003901..00000000 --- a/0007-core-fix-a-potential-mem-leak.patch +++ /dev/null @@ -1,25 +0,0 @@ -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/0007-dbus-suppress-duplicate-and-misleading-messages.patch b/0007-dbus-suppress-duplicate-and-misleading-messages.patch deleted file mode 100644 index c4051609..00000000 --- a/0007-dbus-suppress-duplicate-and-misleading-messages.patch +++ /dev/null @@ -1,66 +0,0 @@ -From fe7f06f142cf42928e419d8578afd75bf1439672 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 11 Mar 2014 04:10:19 +0100 -Subject: [PATCH] dbus: suppress duplicate and misleading messages - -When we try to send a signal on a connection we didn't hae the time to -process the Disconnected message yet, don't generate multiple warning -messages, but only a single debug message. - -https://bugs.freedesktop.org/show_bug.cgi?id=75874 ---- - src/core/dbus-manager.c | 7 +++++-- - src/core/dbus-unit.c | 12 ++---------- - 2 files changed, 7 insertions(+), 12 deletions(-) - -diff --git src/core/dbus-manager.c src/core/dbus-manager.c -index 34ef1f5..30f28b6 100644 ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c -@@ -1357,8 +1357,11 @@ static int reply_unit_file_changes_and_f - unsigned i; - int r; - -- if (n_changes > 0) -- bus_manager_foreach_client(m, send_unit_files_changed, NULL); -+ if (n_changes > 0) { -+ r = bus_manager_foreach_client(m, send_unit_files_changed, NULL); -+ if (r < 0) -+ log_debug("Failed to send UnitFilesChanged signal: %s", strerror(-r)); -+ } - - r = sd_bus_message_new_method_return(message, &reply); - if (r < 0) -diff --git src/core/dbus-unit.c src/core/dbus-unit.c -index 515ac8b..07e7f20 100644 ---- src/core/dbus-unit.c -+++ src/core/dbus-unit.c -@@ -638,21 +638,13 @@ static int send_changed_signal(sd_bus *bus, void *userdata) { - bus, p, - UNIT_VTABLE(u)->bus_interface, - NULL); -- if (r < 0) { -- log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r)); -+ if (r < 0) - return r; -- } - -- r = sd_bus_emit_properties_changed_strv( -+ return sd_bus_emit_properties_changed_strv( - bus, p, - "org.freedesktop.systemd1.Unit", - NULL); -- if (r < 0) { -- log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r)); -- return r; -- } -- -- return 0; - } - - void bus_unit_send_change_signal(Unit *u) { --- -1.7.9.2 - ---- src/core/dbus-manager.c -+++ src/core/dbus-manager.c 2014-03-11 11:05:44.350235568 +0000 diff --git a/0007-drop_duplicates-copy-full-BindMount-struct.patch b/0007-drop_duplicates-copy-full-BindMount-struct.patch deleted file mode 100644 index 434f119d..00000000 --- a/0007-drop_duplicates-copy-full-BindMount-struct.patch +++ /dev/null @@ -1,31 +0,0 @@ -From e2d7c1a0758ce80d7cb439745deefefdffd67655 Mon Sep 17 00:00:00 2001 -From: Ansgar Burchardt -Date: Sun, 27 Jul 2014 16:32:13 +0200 -Subject: [PATCH] drop_duplicates: copy full BindMount struct - -At least - - t->ignore = f->ignore; - -is missing here. Just copy the full struct to be sure. ---- - src/core/namespace.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git src/core/namespace.c src/core/namespace.c -index 5466b7b..fe95377 100644 ---- src/core/namespace.c -+++ src/core/namespace.c -@@ -124,8 +124,7 @@ static void drop_duplicates(BindMount *m, unsigned *n) { - if (previous && path_equal(f->path, previous->path)) - continue; - -- t->path = f->path; -- t->mode = f->mode; -+ *t = *f; - - previous = t; - --- -1.7.9.2 - diff --git a/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 7b77e2ab..00000000 --- a/0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 063e36db8aed7b54100b33089deb6d2e86d516b9 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Thu, 3 Jul 2014 16:13:48 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 26 +++++++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 377748a..9f3136a 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -1045,7 +1045,31 @@ bluetooth:v0159* - ID_VENDOR_FROM_DATABASE=ChefSteps, Inc. - - bluetooth:v015A* -- ID_VENDOR_FROM_DATABASE=micus AG -+ ID_VENDOR_FROM_DATABASE=micas AG - - bluetooth:v015B* - ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd. -+ -+bluetooth:v015C* -+ ID_VENDOR_FROM_DATABASE=Pitius Tec S.L. -+ -+bluetooth:v015D* -+ ID_VENDOR_FROM_DATABASE=Estimote, Inc. -+ -+bluetooth:v015E* -+ ID_VENDOR_FROM_DATABASE=Unikey Technologies, Inc. -+ -+bluetooth:v015F* -+ ID_VENDOR_FROM_DATABASE=Timer Cap Co. -+ -+bluetooth:v0160* -+ ID_VENDOR_FROM_DATABASE=AwoX -+ -+bluetooth:v0161* -+ ID_VENDOR_FROM_DATABASE=yikes -+ -+bluetooth:v0162* -+ ID_VENDOR_FROM_DATABASE=MADSGlobal NZ Ltd. -+ -+bluetooth:v0163* -+ ID_VENDOR_FROM_DATABASE=PCH International --- -1.7.9.2 - diff --git a/0007-hwdb-update.patch b/0007-hwdb-update.patch deleted file mode 100644 index 462cdb4a..00000000 --- a/0007-hwdb-update.patch +++ /dev/null @@ -1,1910 +0,0 @@ -Based on bd64a88fb0478da2e93c363849b73aed8be36ae7 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 31 Jul 2014 23:06:04 +0200 -Subject: [PATCH] hwdb: update - ---- - 20-OUI.hwdb | 380 +++++++++++++++++++++++++++++++++++++++++++++-- - 20-pci-vendor-model.hwdb | 35 +++- - 20-usb-vendor-model.hwdb | 208 +++++++++++++++++++++++-- - 3 files changed, 586 insertions(+), 37 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index 97f1e6b..f9501be 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -23288,7 +23288,7 @@ OUI:000CB1* - ID_OUI_FROM_DATABASE=Salland Engineering (Europe) BV - - OUI:000CB2* -- ID_OUI_FROM_DATABASE=Comstar Co., Ltd. -+ ID_OUI_FROM_DATABASE=UNION co., ltd. - - OUI:000CB3* - ID_OUI_FROM_DATABASE=ROUND Co.,Ltd. -@@ -23528,7 +23528,7 @@ OUI:000D01* - ID_OUI_FROM_DATABASE=P&E Microcomputer Systems, Inc. - - OUI:000D02* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:000D03* - ID_OUI_FROM_DATABASE=Matrics, Inc. -@@ -30311,7 +30311,7 @@ OUI:0015DF* - ID_OUI_FROM_DATABASE=Clivet S.p.A. - - OUI:0015E0* -- ID_OUI_FROM_DATABASE=ST-Ericsson -+ ID_OUI_FROM_DATABASE=Ericsson - - OUI:0015E1* - ID_OUI_FROM_DATABASE=Picochip Ltd -@@ -32375,7 +32375,7 @@ OUI:001893* - ID_OUI_FROM_DATABASE=SHENZHEN PHOTON BROADBAND TECHNOLOGY CO.,LTD - - OUI:001894* -- ID_OUI_FROM_DATABASE=zimocom -+ ID_OUI_FROM_DATABASE=NPCore, Inc. - - OUI:001895* - ID_OUI_FROM_DATABASE=Hansun Technologies Inc. -@@ -33887,7 +33887,7 @@ OUI:001A8B* - ID_OUI_FROM_DATABASE=CHUNIL ELECTRIC IND., CO. - - OUI:001A8C* -- ID_OUI_FROM_DATABASE=Astaro AG -+ ID_OUI_FROM_DATABASE=Sophos Ltd - - OUI:001A8D* - ID_OUI_FROM_DATABASE=AVECS Bergen GmbH -@@ -34652,7 +34652,7 @@ OUI:001B8A* - ID_OUI_FROM_DATABASE=2M Electronic A/S - - OUI:001B8B* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:001B8C* - ID_OUI_FROM_DATABASE=JMicron Technology Corp. -@@ -35066,7 +35066,7 @@ OUI:001C14* - ID_OUI_FROM_DATABASE=VMware, Inc - - OUI:001C15* -- ID_OUI_FROM_DATABASE=TXP Corporation -+ ID_OUI_FROM_DATABASE=iPhotonix LLC - - OUI:001C16* - ID_OUI_FROM_DATABASE=ThyssenKrupp Elevator -@@ -35975,7 +35975,7 @@ OUI:001D43* - ID_OUI_FROM_DATABASE=Shenzhen G-link Digital Technology Co., Ltd. - - OUI:001D44* -- ID_OUI_FROM_DATABASE=KROHNE -+ ID_OUI_FROM_DATABASE=KROHNE Messtechnik GmbH - - OUI:001D45* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. -@@ -36863,7 +36863,7 @@ OUI:001E6B* - ID_OUI_FROM_DATABASE=Cisco SPVTG - - OUI:001E6C* -- ID_OUI_FROM_DATABASE=Carbon Mountain LLC -+ ID_OUI_FROM_DATABASE=Opaque Systems - - OUI:001E6D* - ID_OUI_FROM_DATABASE=IT R&D Center -@@ -38471,7 +38471,7 @@ OUI:002084* - ID_OUI_FROM_DATABASE=OCE PRINTING SYSTEMS, GMBH - - OUI:002085* -- ID_OUI_FROM_DATABASE=EXIDE ELECTRONICS -+ ID_OUI_FROM_DATABASE=Eaton Corporation - - OUI:002086* - ID_OUI_FROM_DATABASE=MICROTECH ELECTRONICS LIMITED -@@ -44312,7 +44312,7 @@ OUI:003A9C* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:003A9D* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:003AAF* - ID_OUI_FROM_DATABASE=BlueBit Ltd. -@@ -46394,7 +46394,7 @@ OUI:0060B8* - ID_OUI_FROM_DATABASE=CORELIS Inc. - - OUI:0060B9* -- ID_OUI_FROM_DATABASE=NEC Infrontia Corporation -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd - - OUI:0060BA* - ID_OUI_FROM_DATABASE=SAHARA NETWORKS, INC. -@@ -49015,6 +49015,9 @@ OUI:00A1DE* - OUI:00A2DA* - ID_OUI_FROM_DATABASE=INAT GmbH - -+OUI:00A2F5* -+ ID_OUI_FROM_DATABASE=Guangzhou Yuanyun Network Technology Co.,Ltd -+ - OUI:00A2FF* - ID_OUI_FROM_DATABASE=abatec group AG - -@@ -49036,6 +49039,9 @@ OUI:00AA70* - OUI:00ACE0* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:00AEFA* -+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd. -+ - OUI:00B009* - ID_OUI_FROM_DATABASE=Grass Valley Group - -@@ -51613,6 +51619,9 @@ OUI:00F403* - OUI:00F4B9* - ID_OUI_FROM_DATABASE=Apple - -+OUI:00F76F* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:00F860* - ID_OUI_FROM_DATABASE=PT. Panggung Electric Citrabuana - -@@ -51844,6 +51853,9 @@ OUI:0494A1* - OUI:0498F3* - ID_OUI_FROM_DATABASE=ALPS Electric Co,. Ltd. - -+OUI:0499E6* -+ ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd -+ - OUI:049C62* - ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. - -@@ -52423,6 +52435,9 @@ OUI:0808C2* - OUI:0808EA* - ID_OUI_FROM_DATABASE=AMSC - -+OUI:0809B6* -+ ID_OUI_FROM_DATABASE=Masimo Corp -+ - OUI:080C0B* - ID_OUI_FROM_DATABASE=SysMik GmbH Dresden - -@@ -52438,6 +52453,9 @@ OUI:080EA8* - OUI:080FFA* - ID_OUI_FROM_DATABASE=KSP INC. - -+OUI:08115E* -+ ID_OUI_FROM_DATABASE=Bitel Co., Ltd. -+ - OUI:081196* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -52597,6 +52615,9 @@ OUI:087D21* - OUI:088039* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -+OUI:0881BC* -+ ID_OUI_FROM_DATABASE=HongKong Ipro Technology Co., Limited -+ - OUI:0881F4* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -52693,6 +52714,9 @@ OUI:08E5DA* - OUI:08E672* - ID_OUI_FROM_DATABASE=JEBSEE ELECTRONICS CO.,LTD. - -+OUI:08E84F* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:08EA44* - ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. - -@@ -52759,6 +52783,9 @@ OUI:0C17F1* - OUI:0C191F* - ID_OUI_FROM_DATABASE=Inform Electronik - -+OUI:0C1DAF* -+ ID_OUI_FROM_DATABASE=Beijing Xiaomi communications co.,ltd -+ - OUI:0C1DC2* - ID_OUI_FROM_DATABASE=SeAH Networks - -@@ -53080,6 +53107,9 @@ OUI:1001CA* - OUI:1005CA* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:1008B1* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:10090C* - ID_OUI_FROM_DATABASE=Janome Sewing Machine Co., Ltd. - -@@ -53200,6 +53230,9 @@ OUI:104B46* - OUI:104D77* - ID_OUI_FROM_DATABASE=Innovative Computer Engineering - -+OUI:104E07* -+ ID_OUI_FROM_DATABASE=Shanghai Genvision Industries Co.,Ltd -+ - OUI:105172* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -@@ -53234,7 +53267,7 @@ OUI:1065CF* - ID_OUI_FROM_DATABASE=IQSIM - - OUI:106682* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:10683F* - ID_OUI_FROM_DATABASE=LG Electronics -@@ -53668,6 +53701,9 @@ OUI:14F42A* - OUI:14F65A* - ID_OUI_FROM_DATABASE=Xiaomi inc. - -+OUI:14F893* -+ ID_OUI_FROM_DATABASE=Wuhan FiberHome Digital Technology Co.,Ltd. -+ - OUI:14FEAF* - ID_OUI_FROM_DATABASE=SAGITTAR LIMITED - -@@ -54190,6 +54226,9 @@ OUI:1C7C45* - OUI:1C7CC7* - ID_OUI_FROM_DATABASE=Coriant GmbH - -+OUI:1C7E51* -+ ID_OUI_FROM_DATABASE=3bumen.com -+ - OUI:1C7EE5* - ID_OUI_FROM_DATABASE=D-Link International - -@@ -54220,6 +54259,9 @@ OUI:1C955D* - OUI:1C959F* - ID_OUI_FROM_DATABASE=Veethree Electronics And Marine LLC - -+OUI:1C965A* -+ ID_OUI_FROM_DATABASE=Weifang goertek Electronics CO.,LTD -+ - OUI:1C973D* - ID_OUI_FROM_DATABASE=PRICOM Design - -@@ -54229,6 +54271,9 @@ OUI:1C994C* - OUI:1C9C26* - ID_OUI_FROM_DATABASE=Zoovel Technologies - -+OUI:1C9ECB* -+ ID_OUI_FROM_DATABASE=Beijing Nari Smartchip Microelectronics Company Limited -+ - OUI:1CA2B1* - ID_OUI_FROM_DATABASE=ruwido austria gmbh - -@@ -54254,7 +54299,7 @@ OUI:1CB094* - ID_OUI_FROM_DATABASE=HTC Corporation - - OUI:1CB17F* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:1CB243* - ID_OUI_FROM_DATABASE=TDC A/S -@@ -54478,6 +54523,9 @@ OUI:2074CF* - OUI:207600* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -+OUI:207693* -+ ID_OUI_FROM_DATABASE=Lenovo (Beijing) Limited. -+ - OUI:207C8F* - ID_OUI_FROM_DATABASE=Quanta Microsystems,Inc. - -@@ -54766,6 +54814,9 @@ OUI:249442* - OUI:249504* - ID_OUI_FROM_DATABASE=SFR - -+OUI:2497ED* -+ ID_OUI_FROM_DATABASE=Techvision Intelligent Technology Limited -+ - OUI:24A2E1* - ID_OUI_FROM_DATABASE=Apple, Inc - -@@ -55306,6 +55357,9 @@ OUI:2C27D7* - OUI:2C282D* - ID_OUI_FROM_DATABASE=BBK COMMUNICATIAO TECHNOLOGY CO.,LTD. - -+OUI:2C2997* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:2C2D48* - ID_OUI_FROM_DATABASE=bct electronic GesmbH - -@@ -55327,6 +55381,9 @@ OUI:2C36F8* - OUI:2C3731* - ID_OUI_FROM_DATABASE=ShenZhen Yifang Digital Technology Co.,LTD - -+OUI:2C3796* -+ ID_OUI_FROM_DATABASE=CYBO CO.,LTD. -+ - OUI:2C3996* - ID_OUI_FROM_DATABASE=SAGEMCOM - -@@ -55390,6 +55447,9 @@ OUI:2C5D93* - OUI:2C5FF3* - ID_OUI_FROM_DATABASE=Pertronic Industries - -+OUI:2C600C* -+ ID_OUI_FROM_DATABASE=QUANTA COMPUTER INC. -+ - OUI:2C625A* - ID_OUI_FROM_DATABASE=Finest Security Systems Co., Ltd - -@@ -55549,12 +55609,18 @@ OUI:2CEDEB* - OUI:2CEE26* - ID_OUI_FROM_DATABASE=Petroleum Geo-Services - -+OUI:2CF0EE* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:2CF203* - ID_OUI_FROM_DATABASE=EMKO ELEKTRONIK SAN VE TIC AS - - OUI:2CF4C5* - ID_OUI_FROM_DATABASE=Avaya, Inc - -+OUI:2CF7F1* -+ ID_OUI_FROM_DATABASE=Seeed Technology Inc. -+ - OUI:2CFAA2* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -55570,6 +55636,9 @@ OUI:300D2A* - OUI:300ED5* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -+OUI:3010B3* -+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation -+ - OUI:3010E4* - ID_OUI_FROM_DATABASE=Apple, Inc. - -@@ -55711,6 +55780,9 @@ OUI:307512* - OUI:30766F* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:3077CB* -+ ID_OUI_FROM_DATABASE=Maike Industry(Shenzhen)CO.,LTD -+ - OUI:30786B* - ID_OUI_FROM_DATABASE=TIANJIN Golden Pentagon Electronics Co., Ltd. - -@@ -55831,6 +55903,9 @@ OUI:30F7D7* - OUI:30F9ED* - ID_OUI_FROM_DATABASE=Sony Corporation - -+OUI:30FAB7* -+ ID_OUI_FROM_DATABASE=Tunai Creative -+ - OUI:30FD11* - ID_OUI_FROM_DATABASE=MACROTECH (USA) INC. - -@@ -55909,6 +55984,9 @@ OUI:344B3D* - OUI:344B50* - ID_OUI_FROM_DATABASE=ZTE Corporation - -+OUI:344DEA* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:344DF7* - ID_OUI_FROM_DATABASE=LG Electronics - -@@ -55942,6 +56020,9 @@ OUI:346178* - OUI:346288* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:3464A9* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:34684A* - ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. - -@@ -56152,6 +56233,9 @@ OUI:34E2FD* - OUI:34E42A* - ID_OUI_FROM_DATABASE=Automatic Bar Controls Inc. - -+OUI:34E6AD* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:34EF44* - ID_OUI_FROM_DATABASE=2Wire - -@@ -56200,6 +56284,9 @@ OUI:380B40* - OUI:380DD4* - ID_OUI_FROM_DATABASE=Primax Electronics LTD. - -+OUI:380E7B* -+ ID_OUI_FROM_DATABASE=V.P.S. Thai Co., Ltd -+ - OUI:380F4A* - ID_OUI_FROM_DATABASE=Apple - -@@ -56989,6 +57076,9 @@ OUI:40984E* - OUI:40987B* - ID_OUI_FROM_DATABASE=Aisino Corporation - -+OUI:409B0D* -+ ID_OUI_FROM_DATABASE=Shenzhen Yourf Kwan Industrial Co., Ltd -+ - OUI:409FC7* - ID_OUI_FROM_DATABASE=BAEKCHUN I&C Co., Ltd. - -@@ -57367,6 +57457,9 @@ OUI:44C56F* - OUI:44C9A2* - ID_OUI_FROM_DATABASE=Greenwald Industries - -+OUI:44CE7D* -+ ID_OUI_FROM_DATABASE=SFR -+ - OUI:44D15E* - ID_OUI_FROM_DATABASE=Shanghai Kingto Information Technology Ltd - -@@ -57703,6 +57796,9 @@ OUI:4C1480* - OUI:4C14A3* - ID_OUI_FROM_DATABASE=TCL Technoly Electronics (Huizhou) Co., Ltd. - -+OUI:4C16F1* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:4C17EB* - ID_OUI_FROM_DATABASE=SAGEMCOM - -@@ -57730,6 +57826,9 @@ OUI:4C26E7* - OUI:4C2C80* - ID_OUI_FROM_DATABASE=Beijing Skyway Technologies Co.,Ltd - -+OUI:4C2C83* -+ ID_OUI_FROM_DATABASE=Zhejiang KaNong Network Technology Co.,Ltd. -+ - OUI:4C2F9D* - ID_OUI_FROM_DATABASE=ICM Controls - -@@ -57754,6 +57853,9 @@ OUI:4C3B74* - OUI:4C3C16* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:4C48DA* -+ ID_OUI_FROM_DATABASE=Beijing Autelan Technology Co.,Ltd -+ - OUI:4C4B68* - ID_OUI_FROM_DATABASE=Mobile Device, Inc. - -@@ -57943,6 +58045,9 @@ OUI:4CDF3D* - OUI:4CE1BB* - ID_OUI_FROM_DATABASE=Zhuhai HiFocus Technology Co., Ltd. - -+OUI:4CE2F1* -+ ID_OUI_FROM_DATABASE=sclak srl -+ - OUI:4CE676* - ID_OUI_FROM_DATABASE=Buffalo Inc. - -@@ -58459,6 +58564,9 @@ OUI:549F35* - OUI:54A04F* - ID_OUI_FROM_DATABASE=t-mac Technologies Ltd - -+OUI:54A050* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:54A31B* - ID_OUI_FROM_DATABASE=Shenzhen Linkworld Technology Co,.LTD - -@@ -58525,6 +58633,9 @@ OUI:54E3B0* - OUI:54E43A* - ID_OUI_FROM_DATABASE=Apple, Inc. - -+OUI:54E4BD* -+ ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED -+ - OUI:54E63F* - ID_OUI_FROM_DATABASE=ShenZhen LingKeWeiEr Technology Co., Ltd. - -@@ -58603,6 +58714,9 @@ OUI:581FAA* - OUI:581FEF* - ID_OUI_FROM_DATABASE=Tuttnaer LTD - -+OUI:582136* -+ ID_OUI_FROM_DATABASE=KMB systems, s.r.o. -+ - OUI:58238C* - ID_OUI_FROM_DATABASE=Technicolor CH USA - -@@ -58705,6 +58819,9 @@ OUI:587BE9* - OUI:587E61* - ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd - -+OUI:587FB7* -+ ID_OUI_FROM_DATABASE=SONAR INDUSTRIAL CO., LTD. -+ - OUI:587FC8* - ID_OUI_FROM_DATABASE=S2M - -@@ -58903,6 +59020,9 @@ OUI:5C260A* - OUI:5C2AEF* - ID_OUI_FROM_DATABASE=Open Access Pty Ltd - -+OUI:5C2BF5* -+ ID_OUI_FROM_DATABASE=Vivint -+ - OUI:5C2E59* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -59020,6 +59140,9 @@ OUI:5C95AE* - OUI:5C969D* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C97F3* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:5C9AD8* - ID_OUI_FROM_DATABASE=Fujitsu Limited - -@@ -59032,6 +59155,9 @@ OUI:5CA3EB* - OUI:5CA48A* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:5CAAFD* -+ ID_OUI_FROM_DATABASE=Sonos, Inc. -+ - OUI:5CAC4C* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -59167,6 +59293,9 @@ OUI:600308* - OUI:600347* - ID_OUI_FROM_DATABASE=Billion Electric Co. Ltd. - -+OUI:600417* -+ ID_OUI_FROM_DATABASE=POSBANK CO.,LTD -+ - OUI:600F77* - ID_OUI_FROM_DATABASE=SilverPlus, Inc - -@@ -59407,6 +59536,9 @@ OUI:60C547* - OUI:60C5A8* - ID_OUI_FROM_DATABASE=Beijing LT Honway Technology Co.,Ltd - -+OUI:60C798* -+ ID_OUI_FROM_DATABASE=Verifone, Inc. -+ - OUI:60C980* - ID_OUI_FROM_DATABASE=Trymus - -@@ -59947,6 +60079,9 @@ OUI:6828BA* - OUI:682DDC* - ID_OUI_FROM_DATABASE=Wuhan Changjiang Electro-Communication Equipment CO.,LTD - -+OUI:6836B5* -+ ID_OUI_FROM_DATABASE=DriveScale, Inc. -+ - OUI:683B1E* - ID_OUI_FROM_DATABASE=Countwise LTD - -@@ -60007,6 +60142,9 @@ OUI:686E48* - OUI:687251* - ID_OUI_FROM_DATABASE=Ubiquiti Networks - -+OUI:6872DC* -+ ID_OUI_FROM_DATABASE=CETORY.TV Company Limited -+ - OUI:68764F* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -@@ -60097,6 +60235,9 @@ OUI:68AAD2* - OUI:68AB8A* - ID_OUI_FROM_DATABASE=RF IDeas - -+OUI:68AE20* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:68AF13* - ID_OUI_FROM_DATABASE=Futura Mobility - -@@ -60202,6 +60343,9 @@ OUI:6C0460* - OUI:6C09D6* - ID_OUI_FROM_DATABASE=Digiquest Electronics LTD - -+OUI:6C0B84* -+ ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co.,Ltd. -+ - OUI:6C0E0D* - ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB - -@@ -60268,6 +60412,9 @@ OUI:6C3E6D* - OUI:6C3E9C* - ID_OUI_FROM_DATABASE=KE Knestel Elektronik GmbH - -+OUI:6C4008* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:6C40C6* - ID_OUI_FROM_DATABASE=Nimbus Data Systems, Inc. - -@@ -60850,6 +60997,12 @@ OUI:70F927* - OUI:70F96D* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited - -+OUI:70FC8C* -+ ID_OUI_FROM_DATABASE=OneAccess SA -+ -+OUI:70FF5C* -+ ID_OUI_FROM_DATABASE=Cheerzing Communication(Xiamen)Technology Co.,Ltd -+ - OUI:70FF76* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -60967,6 +61120,9 @@ OUI:746F3D* - OUI:7472F2* - ID_OUI_FROM_DATABASE=Chipsip Technology Co., Ltd. - -+OUI:747548* -+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc. -+ - OUI:747818* - ID_OUI_FROM_DATABASE=ServiceAssure - -@@ -61117,6 +61273,9 @@ OUI:74E537* - OUI:74E543* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -+OUI:74E6E2* -+ ID_OUI_FROM_DATABASE=Dell Inc. -+ - OUI:74E7C6* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -61921,6 +62080,9 @@ OUI:8005DF* - OUI:8007A2* - ID_OUI_FROM_DATABASE=Esson Technology Inc. - -+OUI:800902* -+ ID_OUI_FROM_DATABASE=Keysight Technologies, Inc. -+ - OUI:800A06* - ID_OUI_FROM_DATABASE=COMTEC co.,ltd - -@@ -61945,6 +62107,9 @@ OUI:8018A7* - OUI:801934* - ID_OUI_FROM_DATABASE=Intel Corporate - -+OUI:801967* -+ ID_OUI_FROM_DATABASE=Shanghai Reallytek Information Technology Co.,Ltd -+ - OUI:801DAA* - ID_OUI_FROM_DATABASE=Avaya Inc - -@@ -61972,6 +62137,9 @@ OUI:802FDE* - OUI:803457* - ID_OUI_FROM_DATABASE=OT Systems Limited - -+OUI:803773* -+ ID_OUI_FROM_DATABASE=Netgear Inc -+ - OUI:8038FD* - ID_OUI_FROM_DATABASE=LeapFrog Enterprises, Inc. - -@@ -62146,6 +62314,9 @@ OUI:80BAE6* - OUI:80BBEB* - ID_OUI_FROM_DATABASE=Satmap Systems Ltd - -+OUI:80BE05* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:80C16E* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -62236,6 +62407,9 @@ OUI:841715* - OUI:841766* - ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd - -+OUI:841826* -+ ID_OUI_FROM_DATABASE=Osram GmbH -+ - OUI:84183A* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -@@ -62365,6 +62539,9 @@ OUI:84742A* - OUI:847616* - ID_OUI_FROM_DATABASE=Addat S.r.o. - -+OUI:84788B* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:8478AC* - ID_OUI_FROM_DATABASE=Cisco - -@@ -62506,6 +62683,9 @@ OUI:84E714* - OUI:84EA99* - ID_OUI_FROM_DATABASE=Vieworks - -+OUI:84EB18* -+ ID_OUI_FROM_DATABASE=Texas Instruments -+ - OUI:84ED33* - ID_OUI_FROM_DATABASE=BBMC Co.,Ltd - -@@ -62641,6 +62821,9 @@ OUI:88685C* - OUI:886B76* - ID_OUI_FROM_DATABASE=CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD - -+OUI:88708C* -+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. -+ - OUI:887398* - ID_OUI_FROM_DATABASE=K2E Tekpoint - -@@ -62746,6 +62929,9 @@ OUI:88C626* - OUI:88C663* - ID_OUI_FROM_DATABASE=Apple - -+OUI:88C9D0* -+ ID_OUI_FROM_DATABASE=LG Electronics -+ - OUI:88CB87* - ID_OUI_FROM_DATABASE=Apple - -@@ -63082,6 +63268,9 @@ OUI:8CDE52* - OUI:8CDE99* - ID_OUI_FROM_DATABASE=Comlab Inc. - -+OUI:8CDF9D* -+ ID_OUI_FROM_DATABASE=NEC Corporation -+ - OUI:8CE081* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -63133,6 +63322,12 @@ OUI:900D66* - OUI:900DCB* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:90179B* -+ ID_OUI_FROM_DATABASE=Nanomegas -+ -+OUI:9017AC* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:90185E* - ID_OUI_FROM_DATABASE=Apex Tool Group GmbH & Co OHG - -@@ -63166,12 +63361,18 @@ OUI:902083* - OUI:902155* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:902181* -+ ID_OUI_FROM_DATABASE=Shanghai Huaqin Telecom Technology Co.,Ltd -+ - OUI:9027E4* - ID_OUI_FROM_DATABASE=Apple - - OUI:902B34* - ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. - -+OUI:902CC7* -+ ID_OUI_FROM_DATABASE=C-MAX Asia Limited -+ - OUI:902E87* - ID_OUI_FROM_DATABASE=LabJack - -@@ -63304,6 +63505,9 @@ OUI:90840D* - OUI:9088A2* - ID_OUI_FROM_DATABASE=IONICS TECHNOLOGY ME LTDA - -+OUI:908C09* -+ ID_OUI_FROM_DATABASE=Total Phase -+ - OUI:908C44* - ID_OUI_FROM_DATABASE=H.K ZONGMU TECHNOLOGY CO., LTD. - -@@ -63337,6 +63541,9 @@ OUI:909916* - OUI:909DE0* - ID_OUI_FROM_DATABASE=Newland Design + Assoc. Inc. - -+OUI:909F33* -+ ID_OUI_FROM_DATABASE=EFM Networks -+ - OUI:909F43* - ID_OUI_FROM_DATABASE=Accutron Instruments Inc. - -@@ -63416,7 +63623,7 @@ OUI:90DA4E* - ID_OUI_FROM_DATABASE=AVANU - - OUI:90DA6A* -- ID_OUI_FROM_DATABASE=MCC System Co., Ltd. -+ ID_OUI_FROM_DATABASE=FOCUS H&S Co., Ltd. - - OUI:90DB46* - ID_OUI_FROM_DATABASE=E-LEAD ELECTRONIC CO., LTD -@@ -63580,6 +63787,9 @@ OUI:946269* - OUI:9463D1* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:9470D2* -+ ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY -+ - OUI:9471AC* - ID_OUI_FROM_DATABASE=TCT Mobile Limited - -@@ -63646,6 +63856,9 @@ OUI:94AE61* - OUI:94AEE3* - ID_OUI_FROM_DATABASE=Belden Hirschmann Industries (Suzhou) Ltd. - -+OUI:94B40F* -+ ID_OUI_FROM_DATABASE=Aruba Networks -+ - OUI:94B8C5* - ID_OUI_FROM_DATABASE=RuggedCom Inc. - -@@ -63661,9 +63874,15 @@ OUI:94BA56* - OUI:94BF1E* - ID_OUI_FROM_DATABASE=eflow Inc. / Smart Device Planning and Development Division - -+OUI:94BF95* -+ ID_OUI_FROM_DATABASE=Shenzhen Coship Electronics Co., Ltd -+ - OUI:94C014* - ID_OUI_FROM_DATABASE=Sorter Sp. j. Konrad Grzeszczyk MichaA, Ziomek - -+OUI:94C038* -+ ID_OUI_FROM_DATABASE=Tallac Networks -+ - OUI:94C150* - ID_OUI_FROM_DATABASE=2Wire Inc - -@@ -63793,6 +64012,9 @@ OUI:980D2E* - OUI:981094* - ID_OUI_FROM_DATABASE=Shenzhen Vsun communication technology Co.,ltd - -+OUI:9816EC* -+ ID_OUI_FROM_DATABASE=IC Intracom -+ - OUI:98208E* - ID_OUI_FROM_DATABASE=Definium Technologies - -@@ -64724,7 +64946,7 @@ OUI:A40CC3* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:A41242* -- ID_OUI_FROM_DATABASE=NEC AccessTechnica, Ltd. -+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd. - - OUI:A4134E* - ID_OUI_FROM_DATABASE=Luxul -@@ -64753,6 +64975,9 @@ OUI:A42305* - OUI:A424B3* - ID_OUI_FROM_DATABASE=FlatFrog Laboratories AB - -+OUI:A4251B* -+ ID_OUI_FROM_DATABASE=Avaya, Inc -+ - OUI:A42940* - ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd - -@@ -64783,6 +65008,9 @@ OUI:A4466B* - OUI:A446FA* - ID_OUI_FROM_DATABASE=AmTRAN Video Corporation - -+OUI:A44AD3* -+ ID_OUI_FROM_DATABASE=ST Electronics(Shanghai) Co.,Ltd -+ - OUI:A44B15* - ID_OUI_FROM_DATABASE=Sun Cupid Technology (HK) LTD - -@@ -64897,6 +65125,9 @@ OUI:A49F85* - OUI:A49F89* - ID_OUI_FROM_DATABASE=Shanghai Rui Rui Communication Technology Co.Ltd. - -+OUI:A4A1C2* -+ ID_OUI_FROM_DATABASE=Ericsson AB (EAB) -+ - OUI:A4A24A* - ID_OUI_FROM_DATABASE=Cisco SPVTG - -@@ -65209,6 +65440,9 @@ OUI:A8995C* - OUI:A89B10* - ID_OUI_FROM_DATABASE=inMotion Ltd. - -+OUI:A89DD2* -+ ID_OUI_FROM_DATABASE=Shanghai DareGlobal Technologies Co., Ltd -+ - OUI:A8A668* - ID_OUI_FROM_DATABASE=zte corporation - -@@ -65488,6 +65722,9 @@ OUI:AC8674* - OUI:AC867E* - ID_OUI_FROM_DATABASE=Create New Technology (HK) Limited Company - -+OUI:AC87A3* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:AC8ACD* - ID_OUI_FROM_DATABASE=ROGER D.Wensker, G.Wensker sp.j. - -@@ -65650,6 +65887,9 @@ OUI:ACF7F3* - OUI:ACF97E* - ID_OUI_FROM_DATABASE=ELESYS INC. - -+OUI:ACFDCE* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:ACFDEC* - ID_OUI_FROM_DATABASE=Apple, Inc - -@@ -66496,6 +66736,9 @@ OUI:B8AD3E* - OUI:B8AE6E* - ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. - -+OUI:B8AEED* -+ ID_OUI_FROM_DATABASE=Elitegroup Computer Systems Co., Ltd. -+ - OUI:B8AF67* - ID_OUI_FROM_DATABASE=Hewlett-Packard Company - -@@ -66562,6 +66805,9 @@ OUI:B8D06F* - OUI:B8D49D* - ID_OUI_FROM_DATABASE=M Seven System Ltd. - -+OUI:B8D812* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:B8D9CE* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -66658,6 +66904,9 @@ OUI:BC15A6* - OUI:BC1665* - ID_OUI_FROM_DATABASE=Cisco - -+OUI:BC16F5* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:BC1A67* - ID_OUI_FROM_DATABASE=YF Technology Co., Ltd - -@@ -66766,6 +67015,9 @@ OUI:BC6A16* - OUI:BC6A29* - ID_OUI_FROM_DATABASE=Texas Instruments - -+OUI:BC6B4D* -+ ID_OUI_FROM_DATABASE=Alcatel-Lucent -+ - OUI:BC6E76* - ID_OUI_FROM_DATABASE=Green Energy Options Ltd - -@@ -66868,6 +67120,9 @@ OUI:BCC168* - OUI:BCC23A* - ID_OUI_FROM_DATABASE=Thomson Video Networks - -+OUI:BCC342* -+ ID_OUI_FROM_DATABASE=Panasonic System Networks Co., Ltd. -+ - OUI:BCC61A* - ID_OUI_FROM_DATABASE=SPECTRA EMBEDDED SYSTEMS - -@@ -66907,6 +67162,9 @@ OUI:BCE59F* - OUI:BCEA2B* - ID_OUI_FROM_DATABASE=CityCom GmbH - -+OUI:BCEAFA* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:BCEE7B* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -@@ -66976,6 +67234,9 @@ OUI:C03580* - OUI:C035BD* - ID_OUI_FROM_DATABASE=Velocytech Aps - -+OUI:C03896* -+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. -+ - OUI:C038F9* - ID_OUI_FROM_DATABASE=Nokia Danmark A/S - -@@ -67087,6 +67348,9 @@ OUI:C09132* - OUI:C09134* - ID_OUI_FROM_DATABASE=ProCurve Networking by HP - -+OUI:C09879* -+ ID_OUI_FROM_DATABASE=Acer Inc. -+ - OUI:C098E5* - ID_OUI_FROM_DATABASE=University of Michigan - -@@ -67228,6 +67492,9 @@ OUI:C40528* - OUI:C4084A* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -+OUI:C40880* -+ ID_OUI_FROM_DATABASE=Shenzhen UTEPO Tech Co., Ltd. -+ - OUI:C40938* - ID_OUI_FROM_DATABASE=Fujian Star-net Communication Co., Ltd - -@@ -67675,6 +67942,9 @@ OUI:C88439* - OUI:C88447* - ID_OUI_FROM_DATABASE=Beautiful Enterprise Co., Ltd - -+OUI:C88550* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:C8873B* - ID_OUI_FROM_DATABASE=Net Optics - -@@ -67774,6 +68044,9 @@ OUI:C8CBB8* - OUI:C8CD72* - ID_OUI_FROM_DATABASE=SAGEMCOM - -+OUI:C8D019* -+ ID_OUI_FROM_DATABASE=Shanghai Tigercel Communication Technology Co.,Ltd -+ - OUI:C8D10B* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -67960,6 +68233,9 @@ OUI:CC3D82* - OUI:CC3E5F* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:CC3F1D* -+ ID_OUI_FROM_DATABASE=Intesis Software SL -+ - OUI:CC43E3* - ID_OUI_FROM_DATABASE=Trump s.a. - -@@ -68668,6 +68944,9 @@ OUI:D45C70* - OUI:D45D42* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:D46132* -+ ID_OUI_FROM_DATABASE=Pro Concept Manufacturer Co.,Ltd. -+ - OUI:D464F7* - ID_OUI_FROM_DATABASE=CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD - -@@ -68728,6 +69007,9 @@ OUI:D48890* - OUI:D48CB5* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:D48DD9* -+ ID_OUI_FROM_DATABASE=Meld Technology, Inc -+ - OUI:D48F33* - ID_OUI_FROM_DATABASE=Microsoft Corporation - -@@ -68887,6 +69169,9 @@ OUI:D4F0B4* - OUI:D4F143* - ID_OUI_FROM_DATABASE=IPROAD.,Inc - -+OUI:D4F46F* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:D4F63F* - ID_OUI_FROM_DATABASE=IEA S.R.L. - -@@ -69058,6 +69343,9 @@ OUI:D87CDD* - OUI:D87EB1* - ID_OUI_FROM_DATABASE=x.o.ware, inc. - -+OUI:D88039* -+ ID_OUI_FROM_DATABASE=Microchip Technology Inc. -+ - OUI:D881CE* - ID_OUI_FROM_DATABASE=AHN INC. - -@@ -69121,6 +69409,9 @@ OUI:D8B12A* - OUI:D8B377* - ID_OUI_FROM_DATABASE=HTC Corporation - -+OUI:D8B6B7* -+ ID_OUI_FROM_DATABASE=Comtrend Corporation -+ - OUI:D8B6C1* - ID_OUI_FROM_DATABASE=NetworkAccountant, Inc. - -@@ -69214,6 +69505,9 @@ OUI:D8EE78* - OUI:D8F0F2* - ID_OUI_FROM_DATABASE=Zeebo Inc - -+OUI:D8FB11* -+ ID_OUI_FROM_DATABASE=AXACORE -+ - OUI:D8FC93* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -69286,6 +69580,9 @@ OUI:DC2C26* - OUI:DC2E6A* - ID_OUI_FROM_DATABASE=HCT. Co., Ltd. - -+OUI:DC2F03* -+ ID_OUI_FROM_DATABASE=Step forward Group Co., Ltd. -+ - OUI:DC309C* - ID_OUI_FROM_DATABASE=Heyrex Limited - -@@ -69418,6 +69715,9 @@ OUI:DCC101* - OUI:DCC422* - ID_OUI_FROM_DATABASE=Systembase Limited - -+OUI:DCC622* -+ ID_OUI_FROM_DATABASE=BUHEUNG SYSTEM -+ - OUI:DCC793* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -69448,6 +69748,9 @@ OUI:DCD52A* - OUI:DCD87F* - ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd - -+OUI:DCDA4F* -+ ID_OUI_FROM_DATABASE=GET Technology,INC -+ - OUI:DCDECA* - ID_OUI_FROM_DATABASE=Akyllor - -@@ -69490,6 +69793,9 @@ OUI:E00B28* - OUI:E00C7F* - ID_OUI_FROM_DATABASE=Nintendo Co., Ltd. - -+OUI:E0107F* -+ ID_OUI_FROM_DATABASE=Ruckus Wireless -+ - OUI:E0143E* - ID_OUI_FROM_DATABASE=Modoosis Inc. - -@@ -69688,6 +69994,9 @@ OUI:E0AF4B* - OUI:E0B2F1* - ID_OUI_FROM_DATABASE=FN-LINK TECHNOLOGY LIMITED - -+OUI:E0B52D* -+ ID_OUI_FROM_DATABASE=Apple -+ - OUI:E0B7B1* - ID_OUI_FROM_DATABASE=Pace plc - -@@ -69829,9 +70138,15 @@ OUI:E41289* - OUI:E41C4B* - ID_OUI_FROM_DATABASE=V2 TECHNOLOGY, INC. - -+OUI:E41D2D* -+ ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc. -+ - OUI:E41F13* - ID_OUI_FROM_DATABASE=IBM Corp - -+OUI:E42354* -+ ID_OUI_FROM_DATABASE=SHENZHEN FUZHI SOFTWARE TECHNOLOGY CO.,LTD -+ - OUI:E425E7* - ID_OUI_FROM_DATABASE=Apple - -@@ -69961,6 +70276,9 @@ OUI:E48AD5* - OUI:E48B7F* - ID_OUI_FROM_DATABASE=Apple - -+OUI:E48C0F* -+ ID_OUI_FROM_DATABASE=Discovery Insure -+ - OUI:E49069* - ID_OUI_FROM_DATABASE=Rockwell Automation - -@@ -70111,6 +70429,9 @@ OUI:E8150E* - OUI:E817FC* - ID_OUI_FROM_DATABASE=NIFTY Corporation - -+OUI:E81863* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:E82877* - ID_OUI_FROM_DATABASE=TMY Co., Ltd. - -@@ -70249,6 +70570,9 @@ OUI:E8944C* - OUI:E894F6* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:E89606* -+ ID_OUI_FROM_DATABASE=testo Instruments (Shenzhen) Co., Ltd. -+ - OUI:E8995A* - ID_OUI_FROM_DATABASE=PiiGAB, Processinformation i Goteborg AB - -@@ -70396,6 +70720,9 @@ OUI:EC0ED6* - OUI:EC1120* - ID_OUI_FROM_DATABASE=FloDesign Wind Turbine Corporation - -+OUI:EC13B2* -+ ID_OUI_FROM_DATABASE=Netonix -+ - OUI:EC14F6* - ID_OUI_FROM_DATABASE=BioControl AS - -@@ -70729,6 +71056,9 @@ OUI:F03A4B* - OUI:F03A55* - ID_OUI_FROM_DATABASE=Omega Elektronik AS - -+OUI:F03D29* -+ ID_OUI_FROM_DATABASE=Actility -+ - OUI:F03FF8* - ID_OUI_FROM_DATABASE=R L Drake - -@@ -70801,6 +71131,9 @@ OUI:F07BCB* - OUI:F07D68* - ID_OUI_FROM_DATABASE=D-Link Corporation - -+OUI:F07F06* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F07F0C* - ID_OUI_FROM_DATABASE=Leopold Kostal GmbH &Co. KG - -@@ -70843,6 +71176,9 @@ OUI:F09CBB* - OUI:F09CE9* - ID_OUI_FROM_DATABASE=Aerohive Networks Inc - -+OUI:F09E63* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F0A764* - ID_OUI_FROM_DATABASE=GST Co., Ltd. - -@@ -71188,6 +71524,9 @@ OUI:F4B72A* - OUI:F4B7E2* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:F4B85E* -+ ID_OUI_FROM_DATABASE=Texas INstruments -+ - OUI:F4BD7C* - ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD - -@@ -71461,6 +71800,9 @@ OUI:F87B8C* - OUI:F8811A* - ID_OUI_FROM_DATABASE=OVERKIZ - -+OUI:F88479* -+ ID_OUI_FROM_DATABASE=Yaojin Technology(Shenzhen)Co.,Ltd -+ - OUI:F884F2* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -71599,6 +71941,9 @@ OUI:F8E7B5* - OUI:F8E811* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:F8E903* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:F8E968* - ID_OUI_FROM_DATABASE=Egker Kft. - -@@ -71782,6 +72127,9 @@ OUI:FC5B24* - OUI:FC5B26* - ID_OUI_FROM_DATABASE=MikroBits - -+OUI:FC5B39* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:FC6018* - ID_OUI_FROM_DATABASE=Zhejiang Kangtai Electric Co., Ltd. - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index 77c727d..a6a2754 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -32403,11 +32403,14 @@ pci:v00001131d00007146sv0000153Bsd00001155* - ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-S) - - pci:v00001131d00007146sv0000153Bsd00001156* -- ID_MODEL_FROM_DATABASE=SAA7146 (Terratec Cynergy 1200C) -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C) - - pci:v00001131d00007146sv0000153Bsd00001157* - ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-T) - -+pci:v00001131d00007146sv0000153Bsd00001176* -+ ID_MODEL_FROM_DATABASE=SAA7146 (Cinergy 1200 DVB-C (MK3)) -+ - pci:v00001131d00007146sv00001894sd00000020* - ID_MODEL_FROM_DATABASE=SAA7146 (KNC One DVB-C V1.0) - -@@ -42846,7 +42849,7 @@ pci:v00001425d00005012* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller - - pci:v00001425d00005013* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller - - pci:v00001425d00005014* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller -@@ -42924,7 +42927,7 @@ pci:v00001425d00005412* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller - - pci:v00001425d00005413* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller - - pci:v00001425d00005414* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller -@@ -43002,7 +43005,7 @@ pci:v00001425d00005512* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller - - pci:v00001425d00005513* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller - - pci:v00001425d00005514* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller -@@ -43080,7 +43083,7 @@ pci:v00001425d00005612* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Storage Controller - - pci:v00001425d00005613* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Storage Controller -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Storage Controller - - pci:v00001425d00005614* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Storage Controller -@@ -43236,7 +43239,7 @@ pci:v00001425d00005812* - ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005813* -- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF] -+ ID_MODEL_FROM_DATABASE=T580-CHR Unified Wire Ethernet Controller [VF] - - pci:v00001425d00005814* - ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF] -@@ -45887,6 +45890,9 @@ pci:v000014E4d00004359sv00001028sd00000011* - pci:v000014E4d00004359sv0000103Csd0000182C* - ID_MODEL_FROM_DATABASE=BCM43228 802.11a/b/g/n (BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter) - -+pci:v000014E4d00004360* -+ ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter -+ - pci:v000014E4d00004365* - ID_MODEL_FROM_DATABASE=BCM43142 802.11b/g/n - -@@ -45896,6 +45902,9 @@ pci:v000014E4d00004365sv00001028sd00000016* - pci:v000014E4d000043A0* - ID_MODEL_FROM_DATABASE=BCM4360 802.11ac Wireless Network Adapter - -+pci:v000014E4d000043A9* -+ ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n -+ - pci:v000014E4d000043B1* - ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter - -@@ -47886,7 +47895,10 @@ pci:v000015ADd00000774* - ID_MODEL_FROM_DATABASE=USB1.1 UHCI Controller - - pci:v000015ADd00000778* -- ID_MODEL_FROM_DATABASE=USB3 xHCI Controller -+ ID_MODEL_FROM_DATABASE=USB3 xHCI 0.96 Controller -+ -+pci:v000015ADd00000779* -+ ID_MODEL_FROM_DATABASE=USB3 xHCI 1.0 Controller - - pci:v000015ADd00000790* - ID_MODEL_FROM_DATABASE=PCI bridge -@@ -52490,6 +52502,9 @@ pci:v00001A29* - pci:v00001A29d00004338* - ID_MODEL_FROM_DATABASE=CP8 Content Processor ASIC - -+pci:v00001A29d00004E36* -+ ID_MODEL_FROM_DATABASE=NP6 Network Processor -+ - pci:v00001A2B* - ID_VENDOR_FROM_DATABASE=Ascom AG - -@@ -73781,6 +73796,9 @@ pci:v0000D161d00001405* - pci:v0000D161d00001420* - ID_MODEL_FROM_DATABASE=Wildcard TE420 quad-span T1/E1/J1 card 3.3V (PCI-Express) (5th gen) - -+pci:v0000D161d00001820* -+ ID_MODEL_FROM_DATABASE=Wildcard TE820 octal-span T1/E1/J1 card 3.3V (PCI-Express) -+ - pci:v0000D161d00002400* - ID_MODEL_FROM_DATABASE=Wildcard TDM2400P 24-port analog card - -@@ -73820,6 +73838,9 @@ pci:v0000D161d0000800A* - pci:v0000D161d0000800B* - ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card - -+pci:v0000D161d0000800E* -+ ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) -+ - pci:v0000D161d0000B410* - ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card - -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index 89cd5b1..ed6b2b1 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -524,6 +524,9 @@ usb:v03F0p0317* - usb:v03F0p0324* - ID_MODEL_FROM_DATABASE=SK-2885 keyboard - -+usb:v03F0p034A* -+ ID_MODEL_FROM_DATABASE=Elite Keyboard -+ - usb:v03F0p0401* - ID_MODEL_FROM_DATABASE=ScanJet 5200c - -@@ -767,6 +770,9 @@ usb:v03F0p1317* - usb:v03F0p1327* - ID_MODEL_FROM_DATABASE=iLO Virtual Hub - -+usb:v03F0p134A* -+ ID_MODEL_FROM_DATABASE=Optical Mouse -+ - usb:v03F0p1405* - ID_MODEL_FROM_DATABASE=ScanJet 3670 - -@@ -2336,6 +2342,12 @@ usb:v0403pEF10* - usb:v0403pF070* - ID_MODEL_FROM_DATABASE=Serial Converter 422/485 [Vardaan VEUSB422R3] - -+usb:v0403pF0C8* -+ ID_MODEL_FROM_DATABASE=SPROG Decoder Programmer -+ -+usb:v0403pF0C9* -+ ID_MODEL_FROM_DATABASE=SPROG-DCC CAN-USB -+ - usb:v0403pF0E9* - ID_MODEL_FROM_DATABASE=Tagsys L-P101 - -@@ -2642,6 +2654,9 @@ usb:v0409p02B4* - usb:v0409p02B6* - ID_MODEL_FROM_DATABASE=Aterm WL300NU-GS 802.11n Wireless Adapter - -+usb:v0409p02BC* -+ ID_MODEL_FROM_DATABASE=Computer Monitor -+ - usb:v0409p0300* - ID_MODEL_FROM_DATABASE=LifeTouch Note - -@@ -5348,6 +5363,9 @@ usb:v0452p0050* - usb:v0452p0051* - ID_MODEL_FROM_DATABASE=Integrated Hub - -+usb:v0452p0100* -+ ID_MODEL_FROM_DATABASE=Control Panel for Leica TCS SP5 -+ - usb:v0453* - ID_VENDOR_FROM_DATABASE=CMD Technology - -@@ -8759,6 +8777,9 @@ usb:v0480pA009* - usb:v0480pA00D* - ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB - -+usb:v0480pB001* -+ ID_MODEL_FROM_DATABASE=Stor.E Partner -+ - usb:v0480pD010* - ID_MODEL_FROM_DATABASE=External Disk 3TB - -@@ -13100,9 +13121,15 @@ usb:v04D8p900A* - usb:v04D8pC001* - ID_MODEL_FROM_DATABASE=PicoLCD 20x4 - -+usb:v04D8pF4B5* -+ ID_MODEL_FROM_DATABASE=SmartScope -+ - usb:v04D8pF8DA* - ID_MODEL_FROM_DATABASE=Hughski Ltd. ColorHug - -+usb:v04D8pF91C* -+ ID_MODEL_FROM_DATABASE=SPROG IIv3 -+ - usb:v04D8pFAFF* - ID_MODEL_FROM_DATABASE=Dangerous Prototypes BusPirate v4 Bootloader mode - -@@ -13118,6 +13145,9 @@ usb:v04D8pFBBA* - usb:v04D8pFBBB* - ID_MODEL_FROM_DATABASE=DiscFerret Magnetic Disc Analyser (active mode) - -+usb:v04D8pFC1E* -+ ID_MODEL_FROM_DATABASE=Bachrus Speedometer Interface -+ - usb:v04D8pFC92* - ID_MODEL_FROM_DATABASE=Open Bench Logic Sniffer - -@@ -14432,6 +14462,9 @@ usb:v04F2p0403* - usb:v04F2p0418* - ID_MODEL_FROM_DATABASE=KU-0418 Tactical Pad - -+usb:v04F2p0618* -+ ID_MODEL_FROM_DATABASE=RG-0618U Wireless HID Receiver & KG-0609 Wireless Keyboard with Touchpad -+ - usb:v04F2p0760* - ID_MODEL_FROM_DATABASE=Acer KU-0760 Keyboard - -@@ -15336,7 +15369,7 @@ usb:v04FCp0171* - ID_MODEL_FROM_DATABASE=SPCA1527A/SPCA1528 SD card camera (Mass Storage mode) - - usb:v04FCp0201* -- ID_MODEL_FROM_DATABASE=RS232C Adapter -+ ID_MODEL_FROM_DATABASE=SPCP825 RS232C Adapter - - usb:v04FCp0232* - ID_MODEL_FROM_DATABASE=Fingerprint -@@ -29036,6 +29069,9 @@ usb:v08E3p0301* - usb:v08E4* - ID_VENDOR_FROM_DATABASE=Pioneer Corp. - -+usb:v08E4p0185* -+ ID_MODEL_FROM_DATABASE=DDJ-WeGO2 -+ - usb:v08E5* - ID_VENDOR_FROM_DATABASE=Litronic - -@@ -33080,6 +33116,9 @@ usb:v0B48p300D* - usb:v0B48p300E* - ID_MODEL_FROM_DATABASE=TT-connect C-2400 - -+usb:v0B48p3014* -+ ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 -+ - usb:v0B49* - ID_VENDOR_FROM_DATABASE=ASCII Corp. - -@@ -34086,7 +34125,7 @@ usb:v0BC2p3101* - ID_MODEL_FROM_DATABASE=FreeAgent XTreme 640GB - - usb:v0BC2p3312* -- ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive 2TB] -+ ID_MODEL_FROM_DATABASE=SRD00F2 Expansion Desktop Drive (STBV) - - usb:v0BC2p3320* - ID_MODEL_FROM_DATABASE=SRD00F2 [Expansion Desktop Drive] -@@ -34109,6 +34148,9 @@ usb:v0BC2p5031* - usb:v0BC2p5070* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk - -+usb:v0BC2p5071* -+ ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk -+ - usb:v0BC2p50A1* - ID_MODEL_FROM_DATABASE=FreeAgent GoFlex Desk - -@@ -34133,6 +34175,9 @@ usb:v0BC2pA0A4* - usb:v0BC2pAB00* - ID_MODEL_FROM_DATABASE=Slim Portable Drive - -+usb:v0BC2pAB20* -+ ID_MODEL_FROM_DATABASE=Backup Plus Portable Drive -+ - usb:v0BC3* - ID_VENDOR_FROM_DATABASE=IPWireless, Inc. - -@@ -34301,6 +34346,9 @@ usb:v0BDAp0176* - usb:v0BDAp0178* - ID_MODEL_FROM_DATABASE=Mass Storage Device - -+usb:v0BDAp0179* -+ ID_MODEL_FROM_DATABASE=RTL8188ETV Wireless LAN 802.11n Network Adapter -+ - usb:v0BDAp0184* - ID_MODEL_FROM_DATABASE=RTS5182 Card Reader - -@@ -34322,6 +34370,9 @@ usb:v0BDAp2832* - usb:v0BDAp2838* - ID_MODEL_FROM_DATABASE=RTL2838 DVB-T - -+usb:v0BDAp5730* -+ ID_MODEL_FROM_DATABASE=HP 2.0MP High Definition Webcam -+ - usb:v0BDAp8150* - ID_MODEL_FROM_DATABASE=RTL8150 Fast Ethernet Adapter - -@@ -36012,11 +36063,53 @@ usb:v0CE5p0003* - ID_MODEL_FROM_DATABASE=Matrix - - usb:v0CE9* -- ID_VENDOR_FROM_DATABASE=pico Technology -+ ID_VENDOR_FROM_DATABASE=Pico Technology - - usb:v0CE9p1001* - ID_MODEL_FROM_DATABASE=PicoScope3000 series PC Oscilloscope - -+usb:v0CE9p1007* -+ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope -+ -+usb:v0CE9p1008* -+ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope -+ -+usb:v0CE9p1009* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope -+ -+usb:v0CE9p100E* -+ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope -+ -+usb:v0CE9p1012* -+ ID_MODEL_FROM_DATABASE=PicoScope 3000A series PC Oscilloscope -+ -+usb:v0CE9p1016* -+ ID_MODEL_FROM_DATABASE=PicoScope 2000A series PC Oscilloscope -+ -+usb:v0CE9p1018* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000A series PC Oscilloscope -+ -+usb:v0CE9p1200* -+ ID_MODEL_FROM_DATABASE=PicoScope 2000 series PC Oscilloscope -+ -+usb:v0CE9p1201* -+ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope -+ -+usb:v0CE9p1202* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope -+ -+usb:v0CE9p1203* -+ ID_MODEL_FROM_DATABASE=PicoScope 5000 series PC Oscilloscope -+ -+usb:v0CE9p1204* -+ ID_MODEL_FROM_DATABASE=PicoScope 6000 series PC Oscilloscope -+ -+usb:v0CE9p1211* -+ ID_MODEL_FROM_DATABASE=PicoScope 3000 series PC Oscilloscope -+ -+usb:v0CE9p1212* -+ ID_MODEL_FROM_DATABASE=PicoScope 4000 series PC Oscilloscope -+ - usb:v0CF1* - ID_VENDOR_FROM_DATABASE=e-Conn Electronic Co., Ltd - -@@ -36998,6 +37091,9 @@ usb:v0DB0p1020* - usb:v0DB0p1967* - ID_MODEL_FROM_DATABASE=Bluetooth Dongle - -+usb:v0DB0p3713* -+ ID_MODEL_FROM_DATABASE=Primo 73 -+ - usb:v0DB0p3801* - ID_MODEL_FROM_DATABASE=Motorola Bluetooth 2.1+EDR Device - -@@ -37112,6 +37208,9 @@ usb:v0DB7p0002* - usb:v0DBA* - ID_VENDOR_FROM_DATABASE=Digidesign - -+usb:v0DBAp1000* -+ ID_MODEL_FROM_DATABASE=Mbox 1 [Mbox] -+ - usb:v0DBAp3000* - ID_MODEL_FROM_DATABASE=Mbox 2 - -@@ -37913,6 +38012,12 @@ usb:v0E6A* - usb:v0E6Ap0101* - ID_MODEL_FROM_DATABASE=MA100 [USB-UART Bridge IC] - -+usb:v0E6Ap030B* -+ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard (Device Firmware Update mode) -+ -+usb:v0E6Ap030C* -+ ID_MODEL_FROM_DATABASE=Truly Ergonomic Computer Keyboard -+ - usb:v0E6Ap6001* - ID_MODEL_FROM_DATABASE=GEMBIRD Flexible keyboard KB-109F-B-DE - -@@ -39548,6 +39653,12 @@ usb:v1039p0824* - usb:v1039p2140* - ID_MODEL_FROM_DATABASE=dsl+ 1100 duo - -+usb:v103A* -+ ID_VENDOR_FROM_DATABASE=PSA -+ -+usb:v103ApF000* -+ ID_MODEL_FROM_DATABASE=Actia Evo XS -+ - usb:v103D* - ID_VENDOR_FROM_DATABASE=Stanton - -@@ -39692,6 +39803,9 @@ usb:v1050p0110* - usb:v1050p0111* - ID_MODEL_FROM_DATABASE=Yubikey NEO OTP+CCID - -+usb:v1050p0200* -+ ID_MODEL_FROM_DATABASE=U2F Gnubby -+ - usb:v1050p0211* - ID_MODEL_FROM_DATABASE=Gnubby - -@@ -39735,16 +39849,25 @@ usb:v1058p0704* - ID_MODEL_FROM_DATABASE=Passport External HDD - - usb:v1058p070A* -- ID_MODEL_FROM_DATABASE=My Passport Essential SE, My Passport for Mac (WDBAAB) -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA), My Passport for Mac (WDBAAB), My Passport Essential SE (WDBABM), My Passport SE for Mac (WDBABW) -+ -+usb:v1058p070B* -+ ID_MODEL_FROM_DATABASE=My Passport Elite (WDBAAC) -+ -+usb:v1058p070C* -+ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBAAE) - - usb:v1058p071A* -- ID_MODEL_FROM_DATABASE=My Passport -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBAAA) -+ -+usb:v1058p071D* -+ ID_MODEL_FROM_DATABASE=My Passport Studio (WDBALG) - - usb:v1058p0730* - ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) - - usb:v1058p0740* -- ID_MODEL_FROM_DATABASE=My Passport -+ ID_MODEL_FROM_DATABASE=My Passport Essential (WDBACY) - - usb:v1058p0741* - ID_MODEL_FROM_DATABASE=My Passport Ultra -@@ -39756,22 +39879,22 @@ usb:v1058p0748* - ID_MODEL_FROM_DATABASE=My Passport (WDBKXH) - - usb:v1058p0810* -- ID_MODEL_FROM_DATABASE=My Passport Ultra -+ ID_MODEL_FROM_DATABASE=My Passport Ultra (WDBZFP) - - usb:v1058p0900* - ID_MODEL_FROM_DATABASE=MyBook Essential External HDD - - usb:v1058p0901* -- ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) - - usb:v1058p0902* -- ID_MODEL_FROM_DATABASE=My Book Pro Edition -+ ID_MODEL_FROM_DATABASE=My Book Pro Edition (WDG1T) - - usb:v1058p0903* - ID_MODEL_FROM_DATABASE=My Book Premium Edition - - usb:v1058p0910* -- ID_MODEL_FROM_DATABASE=MyBook Essential External HDD -+ ID_MODEL_FROM_DATABASE=My Book Essential Edition (Green Ring) (WDG1U) - - usb:v1058p1001* - ID_MODEL_FROM_DATABASE=Elements Desktop (WDE1U) -@@ -39786,7 +39909,7 @@ usb:v1058p1021* - ID_MODEL_FROM_DATABASE=Elements Desktop (WDBAAU) - - usb:v1058p1023* -- ID_MODEL_FROM_DATABASE=Elements SE -+ ID_MODEL_FROM_DATABASE=Elements SE Portable (WDBABV) - - usb:v1058p1048* - ID_MODEL_FROM_DATABASE=Elements Portable (WDBU6Y) -@@ -39809,11 +39932,23 @@ usb:v1058p1104* - usb:v1058p1105* - ID_MODEL_FROM_DATABASE=My Book Studio II - -+usb:v1058p1110* -+ ID_MODEL_FROM_DATABASE=My Book Essential (WDBAAF), My Book for Mac (WDBAAG) -+ -+usb:v1058p1111* -+ ID_MODEL_FROM_DATABASE=My Book Elite (WDBAAH) -+ -+usb:v1058p1112* -+ ID_MODEL_FROM_DATABASE=My Book Studio (WDBAAJ), My Book Studio LX (WDBACH) -+ - usb:v1058p1123* -- ID_MODEL_FROM_DATABASE=My Book 3.0 -+ ID_MODEL_FROM_DATABASE=My Book 3.0 (WDBABP) -+ -+usb:v1058p1130* -+ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) - - usb:v1058p1140* -- ID_MODEL_FROM_DATABASE=My Book Essential USB3.0 -+ ID_MODEL_FROM_DATABASE=My Book Essential (WDBACW) - - usb:v1059* - ID_VENDOR_FROM_DATABASE=Giesecke & Devrient GmbH -@@ -42098,6 +42233,12 @@ usb:v132Bp2045* - usb:v132Bp2049* - ID_MODEL_FROM_DATABASE=Magicolor 2490MF - -+usb:v133E* -+ ID_VENDOR_FROM_DATABASE=Kemper Digital GmbH -+ -+usb:v133Ep0815* -+ ID_MODEL_FROM_DATABASE=Virus TI Desktop -+ - usb:v1342* - ID_VENDOR_FROM_DATABASE=Mobility - -@@ -42203,6 +42344,9 @@ usb:v134E* - usb:v1357* - ID_VENDOR_FROM_DATABASE=P&E Microcomputer Systems - -+usb:v1357p0089* -+ ID_MODEL_FROM_DATABASE=OpenSDA - CDC Serial Port -+ - usb:v1357p0503* - ID_MODEL_FROM_DATABASE=USB-ML-12 HCS08/HCS12 Multilink - -@@ -42213,7 +42357,7 @@ usb:v1366* - ID_VENDOR_FROM_DATABASE=SEGGER - - usb:v1366p0101* -- ID_MODEL_FROM_DATABASE=J-Link ARM -+ ID_MODEL_FROM_DATABASE=J-Link PLUS - - usb:v136B* - ID_VENDOR_FROM_DATABASE=STEC -@@ -42311,6 +42455,9 @@ usb:v138Ap003C* - usb:v138Ap003D* - ID_MODEL_FROM_DATABASE=VFS491 - -+usb:v138Ap003F* -+ ID_MODEL_FROM_DATABASE=VFS495 Fingerprint Reader -+ - usb:v138Ap0050* - ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor - -@@ -42647,6 +42794,9 @@ usb:v13D3p5122* - usb:v13D3p5126* - ID_MODEL_FROM_DATABASE=PC Cam - -+usb:v13D3p5130* -+ ID_MODEL_FROM_DATABASE=Integrated Webcam -+ - usb:v13D3p5702* - ID_MODEL_FROM_DATABASE=UVC VGA Webcam - -@@ -43232,6 +43382,9 @@ usb:v1493p0019* - usb:v1493p001A* - ID_MODEL_FROM_DATABASE=Colibri [Ambit2 S] - -+usb:v1493p001D* -+ ID_MODEL_FROM_DATABASE=Greentit [Ambit2 R] -+ - usb:v1497* - ID_VENDOR_FROM_DATABASE=Panstrong Company Ltd. - -@@ -49640,12 +49793,39 @@ usb:v2478* - usb:v2478p2008* - ID_MODEL_FROM_DATABASE=U209-000-R Serial Port - -+usb:v249C* -+ ID_VENDOR_FROM_DATABASE=M2Tech s.r.l. -+ - usb:v2632* - ID_VENDOR_FROM_DATABASE=TwinMOS - - usb:v2632p3209* - ID_MODEL_FROM_DATABASE=7-in-1 Card Reader - -+usb:v2639* -+ ID_VENDOR_FROM_DATABASE=Xsens -+ -+usb:v2639p0001* -+ ID_MODEL_FROM_DATABASE=MTi-10 IMU -+ -+usb:v2639p0002* -+ ID_MODEL_FROM_DATABASE=MTi-20 VRU -+ -+usb:v2639p0003* -+ ID_MODEL_FROM_DATABASE=MTi-30 AHRS -+ -+usb:v2639p0011* -+ ID_MODEL_FROM_DATABASE=MTi-100 IMU -+ -+usb:v2639p0012* -+ ID_MODEL_FROM_DATABASE=MTi-200 VRU -+ -+usb:v2639p0013* -+ ID_MODEL_FROM_DATABASE=MTi-300 AHRS -+ -+usb:v2639p0017* -+ ID_MODEL_FROM_DATABASE=MTi-G-700 GPS INS -+ - usb:v2650* - ID_VENDOR_FROM_DATABASE=Electronics For Imaging, Inc. [hex] - --- -1.7.9.2 - diff --git a/0007-journal-forget-file-after-encountering-an-error.patch b/0007-journal-forget-file-after-encountering-an-error.patch deleted file mode 100644 index e195e6bf..00000000 --- a/0007-journal-forget-file-after-encountering-an-error.patch +++ /dev/null @@ -1,74 +0,0 @@ -From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 27 Feb 2014 00:11:54 -0500 -Subject: [PATCH] journal: forget file after encountering an error - -If we encounter an inconsistency in a file, let's just -ignore it. Otherwise, after previous patch, we would try, -and fail, to use this file in every invocation of sd_journal_next -or sd_journal_previous that happens afterwards. ---- - src/journal/sd-journal.c | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) - -diff --git src/journal/sd-journal.c src/journal/sd-journal.c -index ef455e9..b54bc21 100644 ---- src/journal/sd-journal.c -+++ src/journal/sd-journal.c -@@ -51,6 +51,8 @@ - - #define DEFAULT_DATA_THRESHOLD (64*1024) - -+static void remove_file_real(sd_journal *j, JournalFile *f); -+ - static bool journal_pid_changed(sd_journal *j) { - assert(j); - -@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { - r = next_beyond_location(j, f, direction, &o, &p); - if (r < 0) { - log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); -+ remove_file_real(j, f); - continue; - } else if (r == 0) - continue; -@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { - } - - static int remove_file(sd_journal *j, const char *prefix, const char *filename) { -- char *path; -+ _cleanup_free_ char *path; - JournalFile *f; - - assert(j); -@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - return -ENOMEM; - - f = hashmap_get(j->files, path); -- free(path); - if (!f) - return 0; - -+ remove_file_real(j, f); -+ return 0; -+} -+ -+static void remove_file_real(sd_journal *j, JournalFile *f) { -+ assert(j); -+ assert(f); -+ - hashmap_remove(j->files, f->path); - - log_debug("File %s removed.", f->path); -@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - journal_file_close(f); - - j->current_invalidate_counter ++; -- -- return 0; - } - - static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { --- -1.7.9.2 - diff --git a/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch b/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch deleted file mode 100644 index f2409242..00000000 --- a/0007-journald-also-check-journal-file-size-to-deduce-if-i.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 332076b45b8a78f018ade2dfdc7e4279a56d49cc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Nov 2014 23:10:21 +0100 -Subject: [PATCH] journald: also check journal file size to deduce if it is - empty - ---- - src/journal/journal-vacuum.c | 22 +++++++++++++++------- - 1 file changed, 15 insertions(+), 7 deletions(-) - -diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c -index dbf5d22..d141fe0 100644 ---- src/journal/journal-vacuum.c -+++ src/journal/journal-vacuum.c -@@ -121,22 +121,30 @@ static void patch_realtime( - } - - static int journal_file_empty(int dir_fd, const char *name) { -- int r; -- le64_t n_entries; - _cleanup_close_ int fd; -+ struct stat st; -+ le64_t n_entries; -+ ssize_t n; - - fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd < 0) - return -errno; - -- if (lseek(fd, offsetof(Header, n_entries), SEEK_SET) < 0) -+ if (fstat(fd, &st) < 0) - return -errno; - -- r = read(fd, &n_entries, sizeof(n_entries)); -- if (r != sizeof(n_entries)) -- return r == 0 ? -EINVAL : -errno; -+ /* If an offline file doesn't even have a header we consider it empty */ -+ if (st.st_size < (off_t) sizeof(Header)) -+ return 1; -+ -+ /* If the number of entries is empty, we consider it empty, too */ -+ n = pread(fd, &n_entries, sizeof(n_entries), offsetof(Header, n_entries)); -+ if (n < 0) -+ return -errno; -+ if (n != sizeof(n_entries)) -+ return -EIO; - -- return le64toh(n_entries) == 0; -+ return le64toh(n_entries) <= 0; - } - - int journal_directory_vacuum( --- -1.7.9.2 - diff --git a/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch b/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch deleted file mode 100644 index 54b97960..00000000 --- a/0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on 5e8b767df6e18444d5aff2987b5e5603361ed528 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Aug 2014 18:53:05 +0200 -Subject: [PATCH] journald: also increase the SendBuffer of /dev/log to 8M - -http://lists.freedesktop.org/archives/systemd-devel/2014-August/021825.html ---- - units/systemd-journald.socket | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- units/systemd-journald.socket -+++ units/systemd-journald.socket 2014-08-22 14:31:11.022236471 +0000 -@@ -23,4 +23,10 @@ ListenDatagram=/dev/log - SocketMode=0666 - PassCredentials=yes - PassSecurity=yes -+ -+# Increase both the send and receive buffer, so that things don't -+# block early. Note that journald internally uses the this socket both -+# for receiving syslog messages, and for forwarding them to any other -+# syslog, hence we bump both values. - ReceiveBuffer=8M -+SendBuffer=8M diff --git a/0007-keyboard-add-Plantronics-.Audio-mute-button.patch b/0007-keyboard-add-Plantronics-.Audio-mute-button.patch deleted file mode 100644 index 53c701bd..00000000 --- a/0007-keyboard-add-Plantronics-.Audio-mute-button.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9e3dbf6b2b99d0e16989d9cedb458729db5a60c3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 1 Jun 2014 14:01:23 -0400 -Subject: [PATCH] keyboard: add Plantronics .Audio mute button - -https://bugs.freedesktop.org/show_bug.cgi?id=79495 ---- - hwdb/60-keyboard.hwdb | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb -index 05e6a04..d053766 100644 ---- hwdb/60-keyboard.hwdb -+++ hwdb/60-keyboard.hwdb -@@ -866,6 +866,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* - KEYBOARD_KEY_f3=volumeup - - ########################################################### -+# Plantronics -+########################################################### -+ -+# Plantronics .Audio 626 DSP -+keyboard:usb:v047fpC006* -+ KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute -+ -+########################################################### - # Quanta - ########################################################### - --- -1.7.9.2 - diff --git a/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch b/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch deleted file mode 100644 index 15857575..00000000 --- a/0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9dedfe7f667a8cb22ba85d0223556c69c4fd0e9a Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 09:20:46 +0200 -Subject: [PATCH] libudev: monitor - warn if we fail to request SO_PASSCRED - -The function still succeeds, so there is no functional change. This fixes CID #996288. ---- - src/libudev/libudev-monitor.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c -index 186e5e1..59698b8 100644 ---- src/libudev/libudev-monitor.c -+++ src/libudev/libudev-monitor.c -@@ -412,7 +412,10 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor) - } - - /* enable receiving of sender credentials */ -- setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ if (err < 0) -+ udev_err(udev_monitor->udev, "setting SO_PASSCRED failed: %m\n"); -+ - return 0; - } - --- -1.7.9.2 - diff --git a/0007-logind-fix-Display-property-of-user-objects.patch b/0007-logind-fix-Display-property-of-user-objects.patch deleted file mode 100644 index 8fbbbeac..00000000 --- a/0007-logind-fix-Display-property-of-user-objects.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 952d32609f9bceee444fa2690afb4d28539b4b92 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 19 May 2014 09:03:20 +0900 -Subject: [PATCH] logind: fix Display property of user objects - -When we dropped support for creating a per-user to the "main" X11 -display we stopped returning useful data in the "Display" user property. -With this change this is fixed and we again expose an appropriate -(graphical session) in the property that is useful as the "main" one, if -one is needed. ---- - src/login/logind-session.c | 8 ++++++-- - src/login/logind-session.h | 2 ++ - src/login/logind-user-dbus.c | 2 +- - src/login/logind-user.c | 37 +++++++++++++++++++++++++++++++++++++ - src/login/logind-user.h | 1 + - 5 files changed, 47 insertions(+), 3 deletions(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 4fb229e..9a54101 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -545,6 +545,8 @@ int session_start(Session *s) { - - s->started = true; - -+ user_elect_display(s->user); -+ - /* Save data */ - session_save(s); - user_save(s->user); -@@ -553,7 +555,7 @@ int session_start(Session *s) { - - /* Send signals */ - session_send_signal(s, true); -- user_send_changed(s->user, "Sessions", NULL); -+ user_send_changed(s->user, "Sessions", "Display", NULL); - if (s->seat) { - if (s->seat->active == s) - seat_send_changed(s->seat, "Sessions", "ActiveSession", NULL); -@@ -612,6 +614,8 @@ int session_stop(Session *s, bool force) { - - s->stopping = true; - -+ user_elect_display(s->user); -+ - session_save(s); - user_save(s->user); - -@@ -660,7 +664,7 @@ int session_finalize(Session *s) { - } - - user_save(s->user); -- user_send_changed(s->user, "Sessions", NULL); -+ user_send_changed(s->user, "Sessions", "Display", NULL); - - return r; - } -diff --git src/login/logind-session.h src/login/logind-session.h -index f78f309..81957df 100644 ---- src/login/logind-session.h -+++ src/login/logind-session.h -@@ -60,6 +60,8 @@ typedef enum SessionType { - _SESSION_TYPE_INVALID = -1 - } SessionType; - -+#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR) -+ - enum KillWho { - KILL_LEADER, - KILL_ALL, -diff --git src/login/logind-user-dbus.c src/login/logind-user-dbus.c -index 6266ccb..51793f6 100644 ---- src/login/logind-user-dbus.c -+++ src/login/logind-user-dbus.c -@@ -220,7 +220,7 @@ const sd_bus_vtable user_vtable[] = { - SD_BUS_PROPERTY("RuntimePath", "s", NULL, offsetof(User, runtime_path), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("Service", "s", NULL, offsetof(User, service), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("Slice", "s", NULL, offsetof(User, slice), SD_BUS_VTABLE_PROPERTY_CONST), -- SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_CONST), -+ SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("State", "s", property_get_state, 0, 0), - SD_BUS_PROPERTY("Sessions", "a(so)", property_get_sessions, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), - SD_BUS_PROPERTY("IdleHint", "b", property_get_idle_hint, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), -diff --git src/login/logind-user.c src/login/logind-user.c -index 5fffa65..fdbccb3 100644 ---- src/login/logind-user.c -+++ src/login/logind-user.c -@@ -713,6 +713,43 @@ int user_kill(User *u, int signo) { - return manager_kill_unit(u->manager, u->slice, KILL_ALL, signo, NULL); - } - -+void user_elect_display(User *u) { -+ Session *graphical = NULL, *text = NULL, *s; -+ -+ assert(u); -+ -+ /* This elects a primary session for each user, which we call -+ * the "display". We try to keep the assignment stable, but we -+ * "upgrade" to better choices. */ -+ -+ LIST_FOREACH(sessions_by_user, s, u->sessions) { -+ -+ if (s->class != SESSION_USER) -+ continue; -+ -+ if (s->stopping) -+ continue; -+ -+ if (SESSION_TYPE_IS_GRAPHICAL(s->type)) -+ graphical = s; -+ else -+ text = s; -+ } -+ -+ if (graphical && -+ (!u->display || -+ u->display->class != SESSION_USER || -+ u->display->stopping || -+ !SESSION_TYPE_IS_GRAPHICAL(u->display->type))) -+ u->display = graphical; -+ -+ if (text && -+ (!u->display || -+ u->display->class != SESSION_USER || -+ u->display->stopping)) -+ u->display = text; -+} -+ - static const char* const user_state_table[_USER_STATE_MAX] = { - [USER_OFFLINE] = "offline", - [USER_OPENING] = "opening", -diff --git src/login/logind-user.h src/login/logind-user.h -index f237d2a..4e0568f 100644 ---- src/login/logind-user.h -+++ src/login/logind-user.h -@@ -80,6 +80,7 @@ int user_save(User *u); - int user_load(User *u); - int user_kill(User *u, int signo); - int user_check_linger_file(User *u); -+void user_elect_display(User *u); - - extern const sd_bus_vtable user_vtable[]; - int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error); --- -1.7.9.2 - diff --git a/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch b/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch deleted file mode 100644 index ee54ea31..00000000 --- a/0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 332bc31992acffc6f32e194c0122e01607bd0e27 Mon Sep 17 00:00:00 2001 -From: Alison Chaiken -Date: Fri, 16 May 2014 09:25:53 +0200 -Subject: [PATCH] man: readahead: fix cmdline switch inconsistency between - readahead.c and docs - -Source code has "files-max" and XML has --max-files. ---- - man/systemd-readahead-replay.service.xml | 2 +- - src/readahead/readahead.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd-readahead-replay.service.xml man/systemd-readahead-replay.service.xml -index 67b41f5..669fe78 100644 ---- man/systemd-readahead-replay.service.xml -+++ man/systemd-readahead-replay.service.xml -@@ -117,7 +117,7 @@ - - - -- -+ - - Maximum number of - files to read ahead. Only valid -diff --git src/readahead/readahead.c src/readahead/readahead.c -index d6729ec..73cf538 100644 ---- src/readahead/readahead.c -+++ src/readahead/readahead.c -@@ -42,7 +42,7 @@ static int help(void) { - "Collect read-ahead data on early boot.\n\n" - " -h --help Show this help\n" - " --version Show package version\n" -- " --max-files=INT Maximum number of files to read ahead\n" -+ " --files-max=INT Maximum number of files to read ahead\n" - " --file-size-max=BYTES Maximum size of files to read ahead\n" - " --timeout=USEC Maximum time to spend collecting data\n\n\n", - program_invocation_short_name); --- -1.7.9.2 - diff --git a/0007-networkd-fix-typo.patch b/0007-networkd-fix-typo.patch deleted file mode 100644 index 8bd67322..00000000 --- a/0007-networkd-fix-typo.patch +++ /dev/null @@ -1,26 +0,0 @@ -From eed0eee85ac34abd81cd9e81fdb6a19f47b6c8a3 Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Fri, 14 Mar 2014 18:19:29 +0100 -Subject: [PATCH] networkd: fix typo - -It's HAVE_SPLIT_USR not HAVE_SPLIT_USER ---- - src/network/networkd-manager.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/network/networkd-manager.c src/network/networkd-manager.c -index c730e71..ea414b1 100644 ---- src/network/networkd-manager.c -+++ src/network/networkd-manager.c -@@ -33,7 +33,7 @@ const char* const network_dirs[] = { - "/etc/systemd/network", - "/run/systemd/network", - "/usr/lib/systemd/network", --#ifdef HAVE_SPLIT_USER -+#ifdef HAVE_SPLIT_USR - "/lib/systemd/network", - #endif - NULL}; --- -1.7.9.2 - diff --git a/0007-po-add-German-translation.patch b/0007-po-add-German-translation.patch deleted file mode 100644 index d653c8ff..00000000 --- a/0007-po-add-German-translation.patch +++ /dev/null @@ -1,448 +0,0 @@ -From 351e57652a7d9a51f9064c089794d13801eaee73 Mon Sep 17 00:00:00 2001 -From: Benjamin Steinwender -Date: Sun, 8 Jun 2014 18:39:50 +0200 -Subject: [PATCH] po: add German translation - -https://bugs.freedesktop.org/show_bug.cgi?id=79430 ---- - po/LINGUAS | 1 + - po/de.po | 418 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 419 insertions(+) - create mode 100644 po/de.po - -diff --git po/LINGUAS po/LINGUAS -index 820ca82..2cb0f30 100644 ---- po/LINGUAS -+++ po/LINGUAS -@@ -1,3 +1,4 @@ -+de - el - fr - it -diff --git po/de.po po/de.po -new file mode 100644 -index 0000000..a41e33d ---- /dev/null -+++ po/de.po -@@ -0,0 +1,418 @@ -+# German translation for systemd. -+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER -+# This file is distributed under the same license as the systemd package. -+# Christian Kirbach , 2014. -+# Benjamin Steinwender , 2014. -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd master\n" -+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?" -+"product=systemd&keywords=I18N+L10N&component=general\n" -+"POT-Creation-Date: 2014-06-02 10:25+0000\n" -+"PO-Revision-Date: 2014-06-02 22:43+0100\n" -+"Last-Translator: Benjamin Steinwender \n" -+"Language-Team: German \n" -+"Language: de\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Poedit 1.6.5\n" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Set host name" -+msgstr "Rechnername festlegen" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Legitimierung ist zum Festlegen des lokalen Rechnernamens notwendig" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3 -+msgid "Set static host name" -+msgstr "Statischen Rechnernamen festlegen" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Authentifizierung ist erforderlich, um den statisch geänderten, lokalen " -+"Rechnernamen, sowie den beschönigten Rechnernamen festzulegen." -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Maschinen-Information festlegen" -+ -+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Authentication is required to set local machine information." -+msgstr "" -+"Legitimierung ist zum Festlegen der lokalen Maschinen-Information " -+"erforderlich." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 -+msgid "Set system locale" -+msgstr "Die lokale Sprachumgebung festlegen" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "" -+"Legitimierung ist zum Festlegen der systemweiten Spracheinstellungen " -+"erforderlich." -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Tastatureinstellungen des Systems festlegen" -+ -+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "" -+"Legitimierung ist zum Festlegen der Tastatureinstellungen des Systems " -+"erforderlich." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow applications to inhibit system shutdown" -+msgstr "Anwendungen dürfen das Herunterfahren des Systems unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:2 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"shutdown." -+msgstr "" -+"Legitimierung ist notwendig, um Anwendungen das Herunterfahren des Systems " -+"zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:3 -+msgid "Allow applications to delay system shutdown" -+msgstr "Anwendungen dürfen das Herunterfahren des Systems verzögern" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:4 -+msgid "" -+"Authentication is required to allow an application to delay system shutdown." -+msgstr "" -+"Legitimierung ist notwendig, um Anwendungen das Verzögern des Herunterfahren " -+"des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:5 -+msgid "Allow applications to inhibit system sleep" -+msgstr "Anwendungen dürfen den Bereitschaftsmodus unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow an application to inhibit system sleep." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden des " -+"Bereitschaftsmodus zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:7 -+msgid "Allow applications to delay system sleep" -+msgstr "Anwendungen dürfen den Bereitschaftsmodus verzögern" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow an application to delay system sleep." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Verzögern des " -+"Bereitschaftsmodus zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:9 -+msgid "Allow applications to inhibit automatic system suspend" -+msgstr "Anwendungen dürfen den automatischen Bereitschaftsmodus unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:10 -+msgid "" -+"Authentication is required to allow an application to inhibit automatic " -+"system suspend." -+msgstr "" -+"Legitimierung ist notwendig, um Anwendungen das Unterbinden des " -+"automatischen Bereitschaftsmodus zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:11 -+msgid "Allow applications to inhibit system handling of the power key" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Ein-/Ausschaltknopfs des Systems " -+"unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:12 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the power key." -+msgstr "" -+"Legitmierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung " -+"der Ein-/Ausschaltknopfs des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:13 -+msgid "Allow applications to inhibit system handling of the suspend key" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Bereitschaftsknopfs des Systems " -+"unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:14 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the suspend key." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " -+"Auswertung des Bereitschaftsknopfes des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:15 -+msgid "Allow applications to inhibit system handling of the hibernate key" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Knopfs für den Ruhezustand unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:16 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the hibernate key." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " -+"Auswertung des Knopfs für den Ruhezustand zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:17 -+msgid "Allow applications to inhibit system handling of the lid switch" -+msgstr "" -+"Anwendungen dürfen das Auswerten des Notebookdeckelschalters unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:18 -+msgid "" -+"Authentication is required to allow an application to inhibit system " -+"handling of the lid switch." -+msgstr "" -+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der " -+"Auswertung des Notebookdeckelschalters des Systems zu erlauben." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:19 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Nicht angemeldete Benutzer dürfen Programme ausführen" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:20 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs." -+msgstr "" -+"Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme " -+"ausführen dürfen." -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:21 -+msgid "Allow attaching devices to seats" -+msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben" -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:22 -+msgid "Authentication is required for attaching a device to a seat." -+msgstr "" -+"Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation " -+"notwendig." -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:23 -+msgid "Flush device to seat attachments" -+msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte" -+ -+# www.freedesktop.org/wiki/Software/systemd/multiseat/ -+#: ../src/login/org.freedesktop.login1.policy.in.h:24 -+msgid "" -+"Authentication is required for resetting how devices are attached to seats." -+msgstr "" -+"Legitimierung ist zum Zurücksetzen notwendig, wie Geräte an eine " -+"Arbeitsstation angeschlossen werden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:25 -+msgid "Power off the system" -+msgstr "Das System ausschalten" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:26 -+msgid "Authentication is required for powering off the system." -+msgstr "Legitimierung ist zum Ausschalten des Systems notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:27 -+msgid "Power off the system while other users are logged in" -+msgstr "Das System herunter fahren, während andere Benutzer angemeldet sind" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:28 -+msgid "" -+"Authentication is required for powering off the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Herunterfahren des Systems notwendig, während andere " -+"Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:29 -+msgid "Power off the system while an application asked to inhibit it" -+msgstr "" -+"Das System ausschalten, während eine Anwendung anfordert es zu unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:30 -+msgid "" -+"Authentication is required for powering off the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Ausschalten des Systems notwendig, während eine " -+"Anwendung anfordert es zu unterbinden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:31 -+msgid "Reboot the system" -+msgstr "Das System neu starten" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:32 -+msgid "Authentication is required for rebooting the system." -+msgstr "Legitimierung ist zum Neustart des Systems notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:33 -+msgid "Reboot the system while other users are logged in" -+msgstr "Das Systems neu starten, während andere Benutzer angemeldet sind" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:34 -+msgid "" -+"Authentication is required for rebooting the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Neustart des Systems notwendig, während andere " -+"Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:35 -+msgid "Reboot the system while an application asked to inhibit it" -+msgstr "" -+"Das System neu starten, während eine Anwendung anfordert es zu unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:36 -+msgid "" -+"Authentication is required for rebooting the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Neustart des Systems notwendig, während eine Anwendung " -+"anforderte es zu unterbinden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:37 -+msgid "Suspend the system" -+msgstr "Das System in Bereitschaft versetzen" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:38 -+msgid "Authentication is required for suspending the system." -+msgstr "Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:39 -+msgid "Suspend the system while other users are logged in" -+msgstr "" -+"Das System in Bereitschaft versetzen, während andere Benutzer angemeldet " -+"sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:40 -+msgid "" -+"Authentication is required for suspending the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " -+"während andere Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:41 -+msgid "Suspend the system while an application asked to inhibit it" -+msgstr "" -+"Das System in Bereitschaft versetzen, während eine Anwendung anfordert dies " -+"zu unterbinden" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:42 -+msgid "" -+"Authentication is required for suspending the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, " -+"während eine Anwendung anfordert dies zu unterbinden." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:43 -+msgid "Hibernate the system" -+msgstr "Den Ruhezustand des Systems aktivieren" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:44 -+msgid "Authentication is required for hibernating the system." -+msgstr "" -+"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:45 -+msgid "Hibernate the system while other users are logged in" -+msgstr "" -+"Den Ruhezustand des Systems aktivieren, während andere Benutzer angemeldet " -+"sind" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:46 -+msgid "" -+"Authentication is required for hibernating the system while other users are " -+"logged in." -+msgstr "" -+"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, " -+"während andere Benutzer angemeldet sind." -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:47 -+msgid "Hibernate the system while an application asked to inhibit it" -+msgstr "" -+"Das System in den Ruhezustand versetzen, während eine Anwendung wünscht dies " -+"zu verhindern" -+ -+#: ../src/login/org.freedesktop.login1.policy.in.h:48 -+msgid "" -+"Authentication is required for hibernating the system while an application " -+"asked to inhibit it." -+msgstr "" -+"Legitimierung ist zum Versetzen des System in den Ruhezustand notwendig, " -+"während eine Anwendung wünscht dies zu verhindern." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 -+msgid "Set system time" -+msgstr "Die Systemzeit festlegen" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 -+msgid "Authentication is required to set the system time." -+msgstr "Legitimierung ist zum Festlegen der Systemzeit notwendig." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Set system timezone" -+msgstr "Die Systemzeitzone festlegen" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Legitimierung ist zum Festlegen der Systemzeitzone notwendig." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Echtzeituhr auf lokale Zeitzone oder UTC setzen" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "" -+"Legitimierung ist notwendig zum Festlegen, ob die Echtzeituhr auf lokale " -+"Zeitzone oder UTC eingestellt ist." -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Turn network time synchronization on or off" -+msgstr "Netzwerkzeitabgeich ein- oder ausschalten" -+ -+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein " -+"soll, erforderlich." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1 -+msgid "Send passphrase back to system" -+msgstr "Passphrase zurück an das System senden" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 -+msgid "" -+"Authentication is required to send the entered passphrase back to the system." -+msgstr "" -+"Legitimierung ist zum Senden des eingegebenen Kennworts zurück an das System " -+"notwendig." -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 -+msgid "Privileged system and service manager access" -+msgstr "Privilegierter Zugriff auf die System- und Dienstverwaltung" -+ -+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 -+msgid "Authentication is required to access the system and service manager." -+msgstr "" -+"Legitimierung ist notwendig für den Zugriff auf die System- und " -+"Dienstverwaltung." --- -1.7.9.2 - diff --git a/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch b/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch deleted file mode 100644 index ee4c169a..00000000 --- a/0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 75145780813957ecbe6835f2c8bc20113a3605d2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 25 Mar 2014 00:01:51 +0100 -Subject: [PATCH] sd-event: don't accidentally turn of watchdog timer event if - we determine 0 - ---- - src/libsystemd/sd-event/sd-event.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index d6a3d1c..4aabec1 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -2087,6 +2087,11 @@ static int arm_watchdog(sd_event *e) { - - timespec_store(&its.it_value, t); - -+ /* Make sure we never set the watchdog to 0, which tells the -+ * kernel to disable it. */ -+ if (its.it_value.tv_sec == 0 && its.it_value.tv_nsec == 0) -+ its.it_value.tv_nsec = 1; -+ - r = timerfd_settime(e->watchdog_fd, TFD_TIMER_ABSTIME, &its, NULL); - if (r < 0) - return -errno; --- -1.7.9.2 - diff --git a/0007-service-flush-status-text-and-errno-values-each-time.patch b/0007-service-flush-status-text-and-errno-values-each-time.patch deleted file mode 100644 index 7dbe5a89..00000000 --- a/0007-service-flush-status-text-and-errno-values-each-time.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8cfdb077b8e3da1c47fc1d735d051f21f33144c1 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 7 Jul 2014 17:33:46 +0200 -Subject: [PATCH] service: flush status text and errno values each time a - service is started - -We shouldn't show status texts from previous service starts ---- - src/core/service.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git src/core/service.c src/core/service.c -index d5aff99..0f542ed 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -1699,6 +1699,10 @@ static int service_start(Unit *u) { - s->main_pid_alien = false; - s->forbid_restart = false; - -+ free(s->status_text); -+ s->status_text = NULL; -+ s->status_errno = 0; -+ - service_enter_start_pre(s); - return 0; - } --- -1.7.9.2 - diff --git a/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch b/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch deleted file mode 100644 index a161a1c4..00000000 --- a/0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e95c98378ac2d34df864de4a9b785fd17defb77b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 25 Oct 2014 15:15:28 -0400 -Subject: [PATCH] systemctl: do not ignore errors in symlink removal - -On an ro fs, systemctl disable ... would fail silently. ---- - src/shared/install.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/install.c src/shared/install.c -index 0d7c30e..035b44c 100644 ---- src/shared/install.c -+++ src/shared/install.c -@@ -1679,7 +1679,7 @@ int unit_file_disable( - r = install_context_mark_for_removal(&c, &paths, &remove_symlinks_to, config_path, root_dir); - - q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, files); -- if (r == 0) -+ if (r >= 0) - r = q; - - return r; --- -1.7.9.2 - diff --git a/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch b/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch deleted file mode 100644 index a1046c39..00000000 --- a/0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8ebf02d6f382ce1ac7e0d44a713b8795a07b08cd Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 30 Jun 2014 21:44:05 +0200 -Subject: [PATCH] units: skip mounting /tmp if it is a symlink - -We shouldn't get confused if people have symlinked /tmp somewhere, so -let's simply skip the mount then. ---- - units/tmp.mount | 1 + - 1 file changed, 1 insertion(+) - -diff --git units/tmp.mount units/tmp.mount -index 99a3ba3..00a0d28 100644 ---- units/tmp.mount -+++ units/tmp.mount -@@ -9,6 +9,7 @@ - Description=Temporary Directory - Documentation=man:hier(7) - Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems -+ConditionPathIsSymbolicLink=!/tmp - DefaultDependencies=no - Conflicts=umount.target - Before=local-fs.target umount.target --- -1.7.9.2 - diff --git a/0008-Reset-signal-mask-on-re-exec-to-init.patch b/0008-Reset-signal-mask-on-re-exec-to-init.patch deleted file mode 100644 index 9fe7d1ea..00000000 --- a/0008-Reset-signal-mask-on-re-exec-to-init.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 5a85ca1cb622fda4a39c8a6f00dccea7f8a1e82a Mon Sep 17 00:00:00 2001 -From: Ruediger Oertel -Date: Fri, 13 Jun 2014 16:41:06 +0200 -Subject: [PATCH] Reset signal-mask on re-exec to init=.. - -Process 1 (aka init) needs to be started with an empty signal mask. -That includes the process 1 that's started after the initrd is finished. -When the initrd is using systemd (as it does with dracut based initrds) -then it is systemd that calls the real init. Normally this is systemd -again, except when the user uses for instance "init=/bin/bash" on the -kernel command line. ---- - src/core/main.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git src/core/main.c src/core/main.c -index 3aac5d1..3e57f07 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1843,6 +1843,7 @@ finish: - if (reexecute) { - const char **args; - unsigned i, args_size; -+ sigset_t ss, o_ss; - - /* Close and disarm the watchdog, so that the new - * instance can reinitialize it, but doesn't get -@@ -1926,6 +1927,11 @@ finish: - args[i++] = NULL; - assert(i <= args_size); - -+ /* reenable any blocked signals, especially important -+ * if we switch from initial ramdisk to init=... */ -+ sigemptyset(&ss); -+ sigprocmask(SIG_SETMASK, &ss, &o_ss); -+ - if (switch_root_init) { - args[0] = switch_root_init; - execv(args[0], (char* const*) args); -@@ -1944,6 +1950,8 @@ finish: - log_error("Failed to execute /bin/sh, giving up: %m"); - } else - log_warning("Failed to execute /sbin/init, giving up: %m"); -+ -+ sigprocmask(SIG_SETMASK, &o_ss, NULL); - } - - if (arg_serialization) { --- -1.7.9.2 - diff --git a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch deleted file mode 100644 index 25994e95..00000000 --- a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 1ae383a8a3ae4824453e297352fda603d2d3fd5e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 25 Feb 2014 21:26:31 -0500 -Subject: [PATCH] Use /var/run/dbus/system_bus_socket for the D-Bus socket - ---- - man/systemd-bus-proxyd@.service.xml | 2 +- - src/shared/def.h | 2 +- - units/systemd-bus-proxyd.socket | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git man/systemd-bus-proxyd@.service.xml man/systemd-bus-proxyd@.service.xml -index 75a3c8b..3a5930d 100644 ---- man/systemd-bus-proxyd@.service.xml -+++ man/systemd-bus-proxyd@.service.xml -@@ -59,7 +59,7 @@ along with systemd; If not, see . - systemd-bus-proxyd.socket will launch - systemd-bus-proxyd@.service for connections - to the classic D-Bus socket in -- /run/dbus/system_bus_socket. -+ /var/run/dbus/system_bus_socket. - - systemd-bus-proxyd@.service is launched - for an existing D-Bus connection and will use -diff --git src/shared/def.h src/shared/def.h -index 7777756..aa489d8 100644 ---- src/shared/def.h -+++ src/shared/def.h -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS -diff --git units/systemd-bus-proxyd.socket units/systemd-bus-proxyd.socket -index 406e15b..6c42d38 100644 ---- units/systemd-bus-proxyd.socket -+++ units/systemd-bus-proxyd.socket -@@ -9,5 +9,5 @@ - Description=Legacy D-Bus Protocol Compatibility Socket - - [Socket] --ListenStream=/run/dbus/system_bus_socket -+ListenStream=/var/run/dbus/system_bus_socket - Accept=yes --- -1.7.9.2 - diff --git a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch deleted file mode 100644 index 8dfd01bc..00000000 --- a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +++ /dev/null @@ -1,102 +0,0 @@ -From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 02:19:42 +0100 -Subject: [PATCH] core: correctly unregister PIDs from PID hashtables - ---- - src/core/unit.c | 42 ++++++++++++++++++------------------------ - 1 file changed, 18 insertions(+), 24 deletions(-) - -diff --git src/core/unit.c src/core/unit.c -index 2437ee3..85250ca 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { - /* Watch a specific PID. We only support one or two units - * watching each PID for now, not more. */ - -- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); -+ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); -+ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { - set_remove(u->pids, LONG_TO_PTR(pid)); - } - --static int watch_pids_in_path(Unit *u, const char *path) { -+void unit_unwatch_all_pids(Unit *u) { -+ assert(u); -+ -+ while (!set_isempty(u->pids)) -+ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); -+ -+ set_free(u->pids); -+ u->pids = NULL; -+} -+ -+static int unit_watch_pids_in_path(Unit *u, const char *path) { - _cleanup_closedir_ DIR *d = NULL; - _cleanup_fclose_ FILE *f = NULL; - int ret = 0, r; -@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { - if (!p) - return -ENOMEM; - -- r = watch_pids_in_path(u, p); -+ r = unit_watch_pids_in_path(u, p); - if (r < 0 && ret >= 0) - ret = r; - } -@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { - return ret; - } - -- - int unit_watch_all_pids(Unit *u) { - assert(u); - -- if (!u->cgroup_path) -- return -ENOENT; -- - /* Adds all PIDs from our cgroup to the set of PIDs we watch */ - -- return watch_pids_in_path(u, u->cgroup_path); --} -- --void unit_unwatch_all_pids(Unit *u) { -- Iterator i; -- void *e; -- -- assert(u); -- -- SET_FOREACH(e, u->pids, i) { -- hashmap_remove_value(u->manager->watch_pids1, e, u); -- hashmap_remove_value(u->manager->watch_pids2, e, u); -- } -+ if (!u->cgroup_path) -+ return -ENOENT; - -- set_free(u->pids); -- u->pids = NULL; -+ return unit_watch_pids_in_path(u, u->cgroup_path); - } - - void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { -@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { - continue; - - if (!pid_is_unwaited(pid)) -- set_remove(u->pids, e); -+ unit_unwatch_pid(u, pid); - } - } - --- -1.7.9.2 - diff --git a/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch b/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch deleted file mode 100644 index 1cc429ce..00000000 --- a/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch +++ /dev/null @@ -1,31 +0,0 @@ -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/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 9c554056..00000000 --- a/0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,104 +0,0 @@ -From de68938a2cb3ab535ebd9198723a651753c1a1df Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Mon, 8 Sep 2014 05:06:18 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 77 ++++++++++++++++++++++++++++++++- - 1 file changed, 76 insertions(+), 1 deletion(-) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 9f3136a..14aee74 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -184,7 +184,7 @@ bluetooth:v003B* - ID_VENDOR_FROM_DATABASE=Gennum Corporation - - bluetooth:v003C* -- ID_VENDOR_FROM_DATABASE=Research In Motion -+ ID_VENDOR_FROM_DATABASE=BlackBerry Limited (formerly Research In Motion) - - bluetooth:v003D* - ID_VENDOR_FROM_DATABASE=IPextreme, Inc. -@@ -1073,3 +1073,78 @@ bluetooth:v0162* - - bluetooth:v0163* - ID_VENDOR_FROM_DATABASE=PCH International -+ -+bluetooth:v0164* -+ ID_VENDOR_FROM_DATABASE=Qingdao Yeelink Information Technology Co., Ltd. -+ -+bluetooth:v0165* -+ ID_VENDOR_FROM_DATABASE=Milwaukee Tool (formerly Milwaukee Electric Tools) -+ -+bluetooth:v0166* -+ ID_VENDOR_FROM_DATABASE=MISHIK Pte Ltd -+ -+bluetooth:v0167* -+ ID_VENDOR_FROM_DATABASE=Bayer HealthCare -+ -+bluetooth:v0168* -+ ID_VENDOR_FROM_DATABASE=Spicebox LLC -+ -+bluetooth:v0169* -+ ID_VENDOR_FROM_DATABASE=emberlight -+ -+bluetooth:v016A* -+ ID_VENDOR_FROM_DATABASE=Cooper-Atkins Corporation -+ -+bluetooth:v016B* -+ ID_VENDOR_FROM_DATABASE=Qblinks -+ -+bluetooth:v016C* -+ ID_VENDOR_FROM_DATABASE=MYSPHERA -+ -+bluetooth:v016D* -+ ID_VENDOR_FROM_DATABASE=LifeScan Inc -+ -+bluetooth:v016E* -+ ID_VENDOR_FROM_DATABASE=Volantic AB -+ -+bluetooth:v016F* -+ ID_VENDOR_FROM_DATABASE=Podo Labs, Inc -+ -+bluetooth:v0170* -+ ID_VENDOR_FROM_DATABASE=Roche Diabetes Care AG -+ -+bluetooth:v0171* -+ ID_VENDOR_FROM_DATABASE=Amazon Fulfillment Service -+ -+bluetooth:v0172* -+ ID_VENDOR_FROM_DATABASE=Connovate Technology Private Limited -+ -+bluetooth:v0173* -+ ID_VENDOR_FROM_DATABASE=Kocomojo, LLC -+ -+bluetooth:v0174* -+ ID_VENDOR_FROM_DATABASE=Everykey LLC -+ -+bluetooth:v0175* -+ ID_VENDOR_FROM_DATABASE=Dynamic Controls -+ -+bluetooth:v0176* -+ ID_VENDOR_FROM_DATABASE=SentriLock -+ -+bluetooth:v0177* -+ ID_VENDOR_FROM_DATABASE=I-SYST inc. -+ -+bluetooth:v0178* -+ ID_VENDOR_FROM_DATABASE=CASIO COMPUTER CO., LTD. -+ -+bluetooth:v0179* -+ ID_VENDOR_FROM_DATABASE=LAPIS Semiconductor Co., Ltd. -+ -+bluetooth:v017A* -+ ID_VENDOR_FROM_DATABASE=Telemonitor, Inc. -+ -+bluetooth:v017B* -+ ID_VENDOR_FROM_DATABASE=taskit GmbH -+ -+bluetooth:v017C* -+ ID_VENDOR_FROM_DATABASE=Daimler AG --- -1.7.9.2 - diff --git a/0008-hwdb-update.patch b/0008-hwdb-update.patch deleted file mode 100644 index 062b229b..00000000 --- a/0008-hwdb-update.patch +++ /dev/null @@ -1,1425 +0,0 @@ -From cccc74971fe3c853832d742a15eac94f365603b6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 20 Aug 2014 00:38:39 +0200 -Subject: [PATCH] update hwdb - ---- - hwdb/20-OUI.hwdb | 177 +++++++++++- - hwdb/20-pci-vendor-model.hwdb | 592 ++++++++++++++++++++++++++++++++++++++++- - hwdb/20-usb-vendor-model.hwdb | 12 + - 3 files changed, 776 insertions(+), 5 deletions(-) - -diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb -index f9501be..e0c5fed 100644 ---- hwdb/20-OUI.hwdb -+++ hwdb/20-OUI.hwdb -@@ -21371,7 +21371,7 @@ OUI:000A2F* - ID_OUI_FROM_DATABASE=Artnix Inc. - - OUI:000A30* -- ID_OUI_FROM_DATABASE=Johnson Controls-ASG -+ ID_OUI_FROM_DATABASE=Visteon Corporation - - OUI:000A31* - ID_OUI_FROM_DATABASE=HCV Consulting -@@ -51601,6 +51601,9 @@ OUI:00E666* - OUI:00E6D3* - ID_OUI_FROM_DATABASE=NIXDORF COMPUTER CORP. - -+OUI:00E6E8* -+ ID_OUI_FROM_DATABASE=Netzin Technology Corporation,.Ltd. -+ - OUI:00E8AB* - ID_OUI_FROM_DATABASE=Meggitt Training Systems, Inc. - -@@ -51616,6 +51619,9 @@ OUI:00F051* - OUI:00F403* - ID_OUI_FROM_DATABASE=Orbis Systems Oy - -+OUI:00F46F* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:00F4B9* - ID_OUI_FROM_DATABASE=Apple - -@@ -51856,6 +51862,9 @@ OUI:0498F3* - OUI:0499E6* - ID_OUI_FROM_DATABASE=Shenzhen Yoostar Technology Co., Ltd - -+OUI:049B9C* -+ ID_OUI_FROM_DATABASE=Eadingcore Intelligent Technology Co., Ltd. -+ - OUI:049C62* - ID_OUI_FROM_DATABASE=BMT Medical Technology s.r.o. - -@@ -52720,6 +52729,9 @@ OUI:08E84F* - OUI:08EA44* - ID_OUI_FROM_DATABASE=Aerohive Networks, Inc. - -+OUI:08EB29* -+ ID_OUI_FROM_DATABASE=Jiangsu Huitong Group Co.,Ltd. -+ - OUI:08EB74* - ID_OUI_FROM_DATABASE=Humax - -@@ -52729,6 +52741,9 @@ OUI:08EBED* - OUI:08EDB9* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:08EE8B* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:08EF3B* - ID_OUI_FROM_DATABASE=MCS Logic Inc. - -@@ -52969,6 +52984,9 @@ OUI:0CAC05* - OUI:0CAF5A* - ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED - -+OUI:0CB319* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:0CB4EF* - ID_OUI_FROM_DATABASE=Digience Co.,Ltd. - -@@ -53036,7 +53054,7 @@ OUI:0CD996* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - - OUI:0CD9C1* -- ID_OUI_FROM_DATABASE=Johnson Controls-ASG -+ ID_OUI_FROM_DATABASE=Visteon Corporation - - OUI:0CDA41* - ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited -@@ -53434,6 +53452,9 @@ OUI:10F96F* - OUI:10F9EE* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:10FACE* -+ ID_OUI_FROM_DATABASE=Reacheng Communication Technology Co.,Ltd -+ - OUI:10FBF0* - ID_OUI_FROM_DATABASE=KangSheng LTD. - -@@ -55417,6 +55438,9 @@ OUI:2C441B* - OUI:2C44FD* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:2C5089* -+ ID_OUI_FROM_DATABASE=Shenzhen Kaixuan Visual Technology Co.,Limited -+ - OUI:2C534A* - ID_OUI_FROM_DATABASE=Shenzhen Winyao Electronic Limited - -@@ -55774,6 +55798,9 @@ OUI:306E5C* - OUI:3071B2* - ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD. - -+OUI:307350* -+ ID_OUI_FROM_DATABASE=Inpeco SA -+ - OUI:307512* - ID_OUI_FROM_DATABASE=Sony Mobile Communications AB - -@@ -55972,6 +55999,9 @@ OUI:343111* - OUI:3431C4* - ID_OUI_FROM_DATABASE=AVM GmbH - -+OUI:3438AF* -+ ID_OUI_FROM_DATABASE=Inlab Software GmbH -+ - OUI:3440B5* - ID_OUI_FROM_DATABASE=IBM - -@@ -56323,12 +56353,18 @@ OUI:3826CD* - OUI:3828EA* - ID_OUI_FROM_DATABASE=Fujian Netcom Technology Co., LTD - -+OUI:382C4A* -+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. -+ - OUI:382DD1* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - - OUI:3831AC* - ID_OUI_FROM_DATABASE=WEG - -+OUI:383BC8* -+ ID_OUI_FROM_DATABASE=2wire -+ - OUI:383F10* - ID_OUI_FROM_DATABASE=DBL Technology Ltd. - -@@ -56416,6 +56452,9 @@ OUI:388EE7* - OUI:3891FB* - ID_OUI_FROM_DATABASE=Xenox Holding BV - -+OUI:389496* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:389592* - ID_OUI_FROM_DATABASE=Beijing Tendyron Corporation - -@@ -56605,6 +56644,9 @@ OUI:3C1A79* - OUI:3C1CBE* - ID_OUI_FROM_DATABASE=JADAK LLC - -+OUI:3C1E13* -+ ID_OUI_FROM_DATABASE=HANGZHOU SUNRISE TECHNOLOGY CO., LTD -+ - OUI:3C25D7* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -57343,6 +57385,9 @@ OUI:446C24* - OUI:446D57* - ID_OUI_FROM_DATABASE=Liteon Technology Corporation - -+OUI:446D6C* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:44700B* - ID_OUI_FROM_DATABASE=IFFU - -@@ -57778,6 +57823,9 @@ OUI:4C09B4* - OUI:4C0B3A* - ID_OUI_FROM_DATABASE=TCT Mobile Limited - -+OUI:4C0BBE* -+ ID_OUI_FROM_DATABASE=Microsoft -+ - OUI:4C0DEE* - ID_OUI_FROM_DATABASE=JABIL CIRCUIT (SHANGHAI) LTD. - -@@ -58372,6 +58420,9 @@ OUI:50ED94* - OUI:50F003* - ID_OUI_FROM_DATABASE=Open Stack, Inc. - -+OUI:50F43C* -+ ID_OUI_FROM_DATABASE=Leeo Inc -+ - OUI:50F520* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -58405,6 +58456,9 @@ OUI:540536* - OUI:54055F* - ID_OUI_FROM_DATABASE=Alcatel Lucent - -+OUI:54098D* -+ ID_OUI_FROM_DATABASE=deister electronic GmbH -+ - OUI:54112F* - ID_OUI_FROM_DATABASE=Sulzer Pump Solutions Finland Oy - -@@ -59137,6 +59191,9 @@ OUI:5C93A2* - OUI:5C95AE* - ID_OUI_FROM_DATABASE=Apple - -+OUI:5C966A* -+ ID_OUI_FROM_DATABASE=RTNET -+ - OUI:5C969D* - ID_OUI_FROM_DATABASE=Apple - -@@ -59905,6 +59962,9 @@ OUI:64AE0C* - OUI:64AE88* - ID_OUI_FROM_DATABASE=Polytec GmbH - -+OUI:64B21D* -+ ID_OUI_FROM_DATABASE=Chengdu Phycom Tech Co., Ltd. -+ - OUI:64B310* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -59917,6 +59977,9 @@ OUI:64B473* - OUI:64B64A* - ID_OUI_FROM_DATABASE=ViVOtech, Inc. - -+OUI:64B853* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:64B9E8* - ID_OUI_FROM_DATABASE=Apple - -@@ -60208,6 +60271,9 @@ OUI:68974B* - OUI:6897E8* - ID_OUI_FROM_DATABASE=Society of Motion Picture & Television Engineers - -+OUI:6899CD* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:689C5E* - ID_OUI_FROM_DATABASE=AcSiP Technology Corp. - -@@ -60325,6 +60391,9 @@ OUI:68F06D* - OUI:68F125* - ID_OUI_FROM_DATABASE=Data Controls Inc. - -+OUI:68F728* -+ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd -+ - OUI:68F895* - ID_OUI_FROM_DATABASE=Redflow Limited - -@@ -61081,12 +61150,18 @@ OUI:744D79* - OUI:745327* - ID_OUI_FROM_DATABASE=COMMSEN CO., LIMITED - -+OUI:74547D* -+ ID_OUI_FROM_DATABASE=Cisco SPVTG -+ - OUI:745612* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - - OUI:745798* - ID_OUI_FROM_DATABASE=TRUMPF Laser GmbH + Co. KG - -+OUI:745C9F* -+ ID_OUI_FROM_DATABASE=TCT mobile ltd. -+ - OUI:745E1C* - ID_OUI_FROM_DATABASE=PIONEER CORPORATION - -@@ -62446,6 +62521,9 @@ OUI:842615* - OUI:84262B* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -+OUI:842690* -+ ID_OUI_FROM_DATABASE=BEIJING THOUGHT SCIENCE CO.,LTD. -+ - OUI:8427CE* - ID_OUI_FROM_DATABASE=Corporation of the Presiding Bishop of The Church of Jesus Christ of Latter-day Saints - -@@ -62506,6 +62584,9 @@ OUI:844F03* - OUI:845181* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -+OUI:8455A5* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:84569C* - ID_OUI_FROM_DATABASE=Coho Data, Inc., - -@@ -62611,6 +62692,9 @@ OUI:849CA6* - OUI:849DC5* - ID_OUI_FROM_DATABASE=Centera Photonics Inc. - -+OUI:84A466* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:84A6C8* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -62824,6 +62908,9 @@ OUI:886B76* - OUI:88708C* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:8870EF* -+ ID_OUI_FROM_DATABASE=SC Professional Trading Co., Ltd. -+ - OUI:887398* - ID_OUI_FROM_DATABASE=K2E Tekpoint - -@@ -62998,6 +63085,9 @@ OUI:8C006D* - OUI:8C04FF* - ID_OUI_FROM_DATABASE=Technicolor USA Inc. - -+OUI:8C0551* -+ ID_OUI_FROM_DATABASE=Koubachi AG -+ - OUI:8C078C* - ID_OUI_FROM_DATABASE=FLOW DATA INC - -@@ -63181,6 +63271,9 @@ OUI:8C8E76* - OUI:8C90D3* - ID_OUI_FROM_DATABASE=Alcatel Lucent - -+OUI:8C9109* -+ ID_OUI_FROM_DATABASE=Toyoshima Electric Technoeogy(Suzhou) Co.,Ltd. -+ - OUI:8C9236* - ID_OUI_FROM_DATABASE=Aus.Linx Technology Co., Ltd. - -@@ -64249,6 +64342,9 @@ OUI:98F8C1* - OUI:98F8DB* - ID_OUI_FROM_DATABASE=Marini Impianti Industriali s.r.l. - -+OUI:98FAE3* -+ ID_OUI_FROM_DATABASE=Xiaomi inc. -+ - OUI:98FB12* - ID_OUI_FROM_DATABASE=Grand Electronics (HK) Ltd - -@@ -64804,6 +64900,9 @@ OUI:A0A130* - OUI:A0A23C* - ID_OUI_FROM_DATABASE=GPMS - -+OUI:A0A3E2* -+ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc -+ - OUI:A0A763* - ID_OUI_FROM_DATABASE=Polytron Vertrieb GmbH - -@@ -64819,6 +64918,9 @@ OUI:A0B100* - OUI:A0B3CC* - ID_OUI_FROM_DATABASE=Hewlett Packard - -+OUI:A0B4A5* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:A0B5DA* - ID_OUI_FROM_DATABASE=HongKong THTF Co., Ltd - -@@ -65116,6 +65218,9 @@ OUI:A49A58* - OUI:A49B13* - ID_OUI_FROM_DATABASE=Burroughs Payment Systems, Inc. - -+OUI:A49D49* -+ ID_OUI_FROM_DATABASE=Ketra, Inc. -+ - OUI:A49EDB* - ID_OUI_FROM_DATABASE=AutoCrib, Inc. - -@@ -65389,6 +65494,9 @@ OUI:A8776F* - OUI:A87B39* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:A87C01* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:A87E33* - ID_OUI_FROM_DATABASE=Nokia Danmark A/S - -@@ -65479,6 +65587,9 @@ OUI:A8CCC5* - OUI:A8CE90* - ID_OUI_FROM_DATABASE=CVC - -+OUI:A8D0E3* -+ ID_OUI_FROM_DATABASE=Systech Electronics Ltd. -+ - OUI:A8D0E5* - ID_OUI_FROM_DATABASE=Juniper Networks - -@@ -65488,6 +65599,9 @@ OUI:A8D236* - OUI:A8D3C8* - ID_OUI_FROM_DATABASE=Wachendorff Elektronik GmbH & Co. KG - -+OUI:A8D88A* -+ ID_OUI_FROM_DATABASE=Wyconn -+ - OUI:A8E018* - ID_OUI_FROM_DATABASE=Nokia Corporation - -@@ -65602,6 +65716,9 @@ OUI:AC3613* - OUI:AC3870* - ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. - -+OUI:AC3A7A* -+ ID_OUI_FROM_DATABASE=Roku -+ - OUI:AC3C0B* - ID_OUI_FROM_DATABASE=Apple - -@@ -66049,6 +66166,9 @@ OUI:B09074* - OUI:B09134* - ID_OUI_FROM_DATABASE=Taleo - -+OUI:B09137* -+ ID_OUI_FROM_DATABASE=ISis ImageStream Internet Solutions, Inc -+ - OUI:B0973A* - ID_OUI_FROM_DATABASE=E-Fuel Corporation - -@@ -66271,6 +66391,9 @@ OUI:B435F7* - OUI:B43741* - ID_OUI_FROM_DATABASE=Consert, Inc. - -+OUI:B43934* -+ ID_OUI_FROM_DATABASE=Pen Generations, Inc. -+ - OUI:B439D6* - ID_OUI_FROM_DATABASE=ProCurve Networking by HP - -@@ -66397,6 +66520,9 @@ OUI:B4A4E3* - OUI:B4A5A9* - ID_OUI_FROM_DATABASE=MODI GmbH - -+OUI:B4A828* -+ ID_OUI_FROM_DATABASE=Shenzhen Concox Information Technology Co., Ltd -+ - OUI:B4A82B* - ID_OUI_FROM_DATABASE=Histar Digital Electronics Co., Ltd. - -@@ -67114,6 +67240,9 @@ OUI:BCBAE1* - OUI:BCBBC9* - ID_OUI_FROM_DATABASE=Kellendonk Elektronik GmbH - -+OUI:BCBC46* -+ ID_OUI_FROM_DATABASE=SKS Welding Systems GmbH -+ - OUI:BCC168* - ID_OUI_FROM_DATABASE=DinBox Sverige AB - -@@ -67840,6 +67969,9 @@ OUI:C819F7* - OUI:C81AFE* - ID_OUI_FROM_DATABASE=DLOGIC GmbH - -+OUI:C81B6B* -+ ID_OUI_FROM_DATABASE=Innova Security -+ - OUI:C81E8E* - ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd - -@@ -68530,6 +68662,9 @@ OUI:D01AA7* - OUI:D01CBB* - ID_OUI_FROM_DATABASE=Beijing Ctimes Digital Technology Co., Ltd. - -+OUI:D02212* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:D022BE* - ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co.,LTD. - -@@ -69259,6 +69394,9 @@ OUI:D831CF* - OUI:D8337F* - ID_OUI_FROM_DATABASE=Office FA.com Co.,Ltd. - -+OUI:D83C69* -+ ID_OUI_FROM_DATABASE=Tinno Mobile Technology Corp -+ - OUI:D842AC* - ID_OUI_FROM_DATABASE=Shanghai Feixun Communication Co.,Ltd. - -@@ -69349,6 +69487,9 @@ OUI:D88039* - OUI:D881CE* - ID_OUI_FROM_DATABASE=AHN INC. - -+OUI:D88466* -+ ID_OUI_FROM_DATABASE=Extreme Networks -+ - OUI:D88A3B* - ID_OUI_FROM_DATABASE=UNIT-EM - -@@ -69376,6 +69517,9 @@ OUI:D89760* - OUI:D8977C* - ID_OUI_FROM_DATABASE=Grey Innovation - -+OUI:D897BA* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:D89D67* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -69442,6 +69586,9 @@ OUI:D8C7C8* - OUI:D8C99D* - ID_OUI_FROM_DATABASE=EA DISPLAY LIMITED - -+OUI:D8CB8A* -+ ID_OUI_FROM_DATABASE=Micro-Star INTL CO., LTD. -+ - OUI:D8CF9C* - ID_OUI_FROM_DATABASE=Apple - -@@ -69505,6 +69652,9 @@ OUI:D8EE78* - OUI:D8F0F2* - ID_OUI_FROM_DATABASE=Zeebo Inc - -+OUI:D8F710* -+ ID_OUI_FROM_DATABASE=Libre Wireless Technologies Inc. -+ - OUI:D8FB11* - ID_OUI_FROM_DATABASE=AXACORE - -@@ -69749,7 +69899,7 @@ OUI:DCD87F* - ID_OUI_FROM_DATABASE=Shenzhen JoinCyber Telecom Equipment Ltd - - OUI:DCDA4F* -- ID_OUI_FROM_DATABASE=GET Technology,INC -+ ID_OUI_FROM_DATABASE=GETCK TECHNOLOGY, INC - - OUI:DCDECA* - ID_OUI_FROM_DATABASE=Akyllor -@@ -69763,6 +69913,9 @@ OUI:DCE578* - OUI:DCE71C* - ID_OUI_FROM_DATABASE=AUG Elektronik GmbH - -+OUI:DCEC06* -+ ID_OUI_FROM_DATABASE=Heimi Network Technology Co., Ltd. -+ - OUI:DCF05D* - ID_OUI_FROM_DATABASE=Letta Teknoloji - -@@ -69856,6 +70009,9 @@ OUI:E039D7* - OUI:E03C5B* - ID_OUI_FROM_DATABASE=SHENZHEN JIAXINJIE ELECTRON CO.,LTD - -+OUI:E03E44* -+ ID_OUI_FROM_DATABASE=Broadcom Corporation -+ - OUI:E03E4A* - ID_OUI_FROM_DATABASE=Cavanagh Group International - -@@ -70378,6 +70534,9 @@ OUI:E4F4C6* - OUI:E4F7A1* - ID_OUI_FROM_DATABASE=Datafox GmbH - -+OUI:E4F8EF* -+ ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd -+ - OUI:E4FA1D* - ID_OUI_FROM_DATABASE=PAD Peripheral Advanced Design Inc. - -@@ -70549,6 +70708,9 @@ OUI:E8802E* - OUI:E880D8* - ID_OUI_FROM_DATABASE=GNTEK Electronics Co.,Ltd. - -+OUI:E887A3* -+ ID_OUI_FROM_DATABASE=Loxley Public Company Limited -+ - OUI:E8892C* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -70627,6 +70789,9 @@ OUI:E8C320* - OUI:E8CBA1* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:E8CC18* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:E8CC32* - ID_OUI_FROM_DATABASE=Micronet LTD - -@@ -71008,6 +71173,9 @@ OUI:F015A0* - OUI:F01C13* - ID_OUI_FROM_DATABASE=LG Electronics - -+OUI:F01C2D* -+ ID_OUI_FROM_DATABASE=Juniper Networks -+ - OUI:F01FAF* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -71398,6 +71566,9 @@ OUI:F4472A* - OUI:F44848* - ID_OUI_FROM_DATABASE=Amscreen Group Ltd - -+OUI:F44E05* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F44EFD* - ID_OUI_FROM_DATABASE=Actions Semiconductor Co.,Ltd.(Cayman Islands) - -diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb -index a6a2754..3bcdbc0 100644 ---- hwdb/20-pci-vendor-model.hwdb -+++ hwdb/20-pci-vendor-model.hwdb -@@ -10478,6 +10478,9 @@ pci:v00001014d0000034Asv00001014sd000004C8* - pci:v00001014d0000034Asv00001014sd00000C49* - ID_MODEL_FROM_DATABASE=PCI-E IPR SAS Adapter (ASIC) (PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)) - -+pci:v00001014d0000044B* -+ ID_MODEL_FROM_DATABASE=GenWQE Accelerator Adapter -+ - pci:v00001014d000004AA* - ID_MODEL_FROM_DATABASE=Flash Adapter 90 (PCIe2 0.9TB) - -@@ -26387,6 +26390,9 @@ pci:v000010DEd00000FE2* - pci:v000010DEd00000FE3* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] - -+pci:v000010DEd00000FE3sv0000103Csd00002B16* -+ ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) -+ - pci:v000010DEd00000FE3sv000017AAsd00003675* - ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 745M] (GeForce GT 745A) - -@@ -26420,6 +26426,9 @@ pci:v000010DEd00000FF1* - pci:v000010DEd00000FF2* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K1] - -+pci:v000010DEd00000FF3* -+ ID_MODEL_FROM_DATABASE=GK107GL [Quadro K420] -+ - pci:v000010DEd00000FF5* - ID_MODEL_FROM_DATABASE=GK107GL [GRID K1 Tesla USM] - -@@ -26546,6 +26555,9 @@ pci:v000010DEd00001029* - pci:v000010DEd0000103A* - ID_MODEL_FROM_DATABASE=GK110GL [Quadro K6000] - -+pci:v000010DEd0000103C* -+ ID_MODEL_FROM_DATABASE=GK110GL [Quadro K5200] -+ - pci:v000010DEd00001040* - ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 520] - -@@ -26981,6 +26993,12 @@ pci:v000010DEd00001140sv00001028sd000005F4* - pci:v000010DEd00001140sv00001028sd0000064E* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -+pci:v000010DEd00001140sv00001028sd00000652* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ -+pci:v000010DEd00001140sv00001028sd00000662* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv00001028sd0000068D* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - -@@ -27239,9 +27257,15 @@ pci:v000010DEd00001140sv0000152Dsd00000982* - pci:v000010DEd00001140sv0000152Dsd00000983* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -+pci:v000010DEd00001140sv0000152Dsd00001005* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 820M) -+ - pci:v000010DEd00001140sv0000152Dsd00001012* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - -+pci:v000010DEd00001140sv0000152Dsd00001019* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv0000152Dsd00001030* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - -@@ -27254,6 +27278,9 @@ pci:v000010DEd00001140sv0000152Dsd00001067* - pci:v000010DEd00001140sv0000152Dsd00001072* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - -+pci:v000010DEd00001140sv0000152Dsd00001086* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ - pci:v000010DEd00001140sv000017AAsd00002200* - ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - -@@ -27578,6 +27605,9 @@ pci:v000010DEd000011B0sv000010DEsd0000101B* - pci:v000010DEd000011B1* - ID_MODEL_FROM_DATABASE=GK104GL [GRID K2 Tesla USM] - -+pci:v000010DEd000011B4* -+ ID_MODEL_FROM_DATABASE=GK104GL [Quadro K4200] -+ - pci:v000010DEd000011B6* - ID_MODEL_FROM_DATABASE=GK104GLM [Quadro K3100M] - -@@ -27863,6 +27893,9 @@ pci:v000010DEd00001295sv0000103Csd00002B0F* - pci:v000010DEd00001295sv0000103Csd00002B11* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A) - -+pci:v000010DEd00001295sv0000103Csd00002B20* -+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce 810A) -+ - pci:v000010DEd00001295sv0000103Csd00002B21* - ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A) - -@@ -27887,6 +27920,9 @@ pci:v000010DEd000012BA* - pci:v000010DEd00001340* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] - -+pci:v000010DEd00001340sv0000103Csd00002B2B* -+ ID_MODEL_FROM_DATABASE=GM108M [GeForce 830M] (GeForce 830A) -+ - pci:v000010DEd00001341* - ID_MODEL_FROM_DATABASE=GM108M [GeForce 840M] - -@@ -27926,6 +27962,15 @@ pci:v000010DEd00001392* - pci:v000010DEd00001393* - ID_MODEL_FROM_DATABASE=GM107M [GeForce 840M] - -+pci:v000010DEd000013B3* -+ ID_MODEL_FROM_DATABASE=GM107GLM [Quadro K2200M] -+ -+pci:v000010DEd000013BA* -+ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K2200] -+ -+pci:v000010DEd000013BB* -+ ID_MODEL_FROM_DATABASE=GM107GL [Quadro K620] -+ - pci:v000010DF* - ID_VENDOR_FROM_DATABASE=Emulex Corporation - -@@ -29291,6 +29336,9 @@ pci:v00001103d00000622* - pci:v00001103d00000640* - ID_MODEL_FROM_DATABASE=RocketRAID 640 4 Port SATA-III Controller - -+pci:v00001103d00000644* -+ ID_MODEL_FROM_DATABASE=RocketRAID 644 4 Port SATA-III Controller (eSATA) -+ - pci:v00001103d00001720* - ID_MODEL_FROM_DATABASE=RocketRAID 1720 (2x SATA II RAID Controller) - -@@ -40325,6 +40373,12 @@ pci:v00001360d00000205* - pci:v00001360d00000206* - ID_MODEL_FROM_DATABASE=GPS180PEX GPS Receiver (PCI Express) - -+pci:v00001360d00000207* -+ ID_MODEL_FROM_DATABASE=GLN180PEX GPS/GLONASS receiver (PCI Express) -+ -+pci:v00001360d00000208* -+ ID_MODEL_FROM_DATABASE=GPS180AMC GPS Receiver (PCI Express / MicroTCA / AdvancedMC) -+ - pci:v00001360d00000301* - ID_MODEL_FROM_DATABASE=TCR510PCI IRIG Timecode Reader - -@@ -41525,6 +41579,9 @@ pci:v000013F6d00008788sv00001043sd00008428* - pci:v000013F6d00008788sv00001043sd00008467* - ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG)) - -+pci:v000013F6d00008788sv00001043sd000085F4* -+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX II)) -+ - pci:v000013F6d00008788sv000013F6sd00008782* - ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (PCI 2.0 HD Audio) - -@@ -45905,6 +45962,9 @@ pci:v000014E4d000043A0* - pci:v000014E4d000043A9* - ID_MODEL_FROM_DATABASE=BCM43217 802.11b/g/n - -+pci:v000014E4d000043AA* -+ ID_MODEL_FROM_DATABASE=BCM43131 802.11b/g/n -+ - pci:v000014E4d000043B1* - ID_MODEL_FROM_DATABASE=BCM4352 802.11ac Wireless Network Adapter - -@@ -46884,7 +46944,7 @@ pci:v000014F1d00008852* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder - - pci:v000014F1d00008852sv00000070sd00008010* -- ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (Hauppauge WinTV HVR-1400 ExpressCard) -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinTV HVR-1400 ExpressCard) - - pci:v000014F1d00008852sv0000107Dsd00006F22* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (WinFast PxTV1200) -@@ -46898,6 +46958,9 @@ pci:v000014F1d00008852sv0000153Bsd0000117E* - pci:v000014F1d00008852sv000018ACsd0000DB78* - ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (FusionHDTV DVB-T Dual Express) - -+pci:v000014F1d00008852sv00004254sd00009580* -+ ID_MODEL_FROM_DATABASE=CX23885 PCI Video and Audio Decoder (T9580) -+ - pci:v000014F1d00008880* - ID_MODEL_FROM_DATABASE=CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb - -@@ -47438,6 +47501,18 @@ pci:v00001542* - pci:v00001542d00009260* - ID_MODEL_FROM_DATABASE=RCIM-II Real-Time Clock & Interrupt Module - -+pci:v00001542d00009272* -+ ID_MODEL_FROM_DATABASE=Pulse Width Modulator Card -+ -+pci:v00001542d00009277* -+ ID_MODEL_FROM_DATABASE=5 Volt Delta Sigma Converter Card -+ -+pci:v00001542d00009278* -+ ID_MODEL_FROM_DATABASE=10 Volt Delta Sigma Converter Card -+ -+pci:v00001542d00009287* -+ ID_MODEL_FROM_DATABASE=Analog Output Card -+ - pci:v00001543* - ID_VENDOR_FROM_DATABASE=SILICON Laboratories - -@@ -49505,6 +49580,9 @@ pci:v000016B8* - pci:v000016BE* - ID_VENDOR_FROM_DATABASE=Creatix Polymedia GmbH - -+pci:v000016C3* -+ ID_VENDOR_FROM_DATABASE=Synopsys, Inc. -+ - pci:v000016C6* - ID_VENDOR_FROM_DATABASE=Micrel-Kendin - -@@ -53936,6 +54014,9 @@ pci:v0000416Cd00000100* - pci:v0000416Cd00000200* - ID_MODEL_FROM_DATABASE=CPC - -+pci:v00004254* -+ ID_VENDOR_FROM_DATABASE=DVBSky -+ - pci:v00004321* - ID_VENDOR_FROM_DATABASE=Tata Power Strategic Electronics Division - -@@ -59621,6 +59702,12 @@ pci:v00008086d000015A2* - pci:v00008086d000015A3* - ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V - -+pci:v00008086d000015B7* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-V -+ -+pci:v00008086d000015B8* -+ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-LM -+ - pci:v00008086d00001600* - ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI - -@@ -69614,6 +69701,9 @@ pci:v00008086d00003B23* - pci:v00008086d00003B25* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller - -+pci:v00008086d00003B25sv0000103Csd00003118* -+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller (HP Smart Array B110i SATA RAID Controller) -+ - pci:v00008086d00003B26* - ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller - -@@ -70718,6 +70808,489 @@ pci:v00008086d000065FA* - pci:v00008086d000065FF* - ID_MODEL_FROM_DATABASE=5100 Chipset DMA Engine - -+pci:v00008086d00006F00* -+ ID_MODEL_FROM_DATABASE=Broadwell DMI2 -+ -+pci:v00008086d00006F01* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 0 -+ -+pci:v00008086d00006F02* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 -+ -+pci:v00008086d00006F03* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 1 -+ -+pci:v00008086d00006F04* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F05* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F06* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F07* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 2 -+ -+pci:v00008086d00006F08* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F09* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F0A* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F0B* -+ ID_MODEL_FROM_DATABASE=Broadwell PCI Express Root Port 3 -+ -+pci:v00008086d00006F10* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F11* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F12* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F13* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F14* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F15* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F16* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F17* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F18* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F19* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1A* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1B* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1C* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Debug -+ -+pci:v00008086d00006F1D* -+ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent -+ -+pci:v00008086d00006F1E* -+ ID_MODEL_FROM_DATABASE=Broadwell Ubox -+ -+pci:v00008086d00006F1F* -+ ID_MODEL_FROM_DATABASE=Broadwell Ubox -+ -+pci:v00008086d00006F20* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 0 -+ -+pci:v00008086d00006F21* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 1 -+ -+pci:v00008086d00006F22* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 2 -+ -+pci:v00008086d00006F23* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 3 -+ -+pci:v00008086d00006F24* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 4 -+ -+pci:v00008086d00006F25* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 5 -+ -+pci:v00008086d00006F26* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 6 -+ -+pci:v00008086d00006F27* -+ ID_MODEL_FROM_DATABASE=Broadwell-DE Crystal Beach DMA Channel 7 -+ -+pci:v00008086d00006F28* -+ ID_MODEL_FROM_DATABASE=Broadwell Adress Map/VTd_Misc/System Management -+ -+pci:v00008086d00006F29* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO Hot Plug -+ -+pci:v00008086d00006F2A* -+ ID_MODEL_FROM_DATABASE=Broadwell IIO RAS/Control Status/Global Errors -+ -+pci:v00008086d00006F2C* -+ ID_MODEL_FROM_DATABASE=Broadwell I/O APIC -+ -+pci:v00008086d00006F30* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 -+ -+pci:v00008086d00006F32* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 -+ -+pci:v00008086d00006F33* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 -+ -+pci:v00008086d00006F34* -+ ID_MODEL_FROM_DATABASE=Broadwell R2PCIe Agent -+ -+pci:v00008086d00006F36* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 -+ -+pci:v00008086d00006F37* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 -+ -+pci:v00008086d00006F38* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 -+ -+pci:v00008086d00006F39* -+ ID_MODEL_FROM_DATABASE=Broadwell IO Performance Monitoring -+ -+pci:v00008086d00006F3A* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 -+ -+pci:v00008086d00006F3E* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 -+ -+pci:v00008086d00006F3F* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 -+ -+pci:v00008086d00006F40* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 -+ -+pci:v00008086d00006F41* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 2 -+ -+pci:v00008086d00006F43* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 -+ -+pci:v00008086d00006F45* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug -+ -+pci:v00008086d00006F46* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug -+ -+pci:v00008086d00006F47* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 2 Debug -+ -+pci:v00008086d00006F60* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 -+ -+pci:v00008086d00006F68* -+ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS -+ -+pci:v00008086d00006F6A* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6B* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6C* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6D* -+ ID_MODEL_FROM_DATABASE=Broadwell Channel Target Address Decoder -+ -+pci:v00008086d00006F6E* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Broadcast -+ -+pci:v00008086d00006F6F* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast -+ -+pci:v00008086d00006F70* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 Debug -+ -+pci:v00008086d00006F71* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS -+ -+pci:v00008086d00006F76* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug -+ -+pci:v00008086d00006F78* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 1 Debug -+ -+pci:v00008086d00006F79* -+ ID_MODEL_FROM_DATABASE=Broadwell Target Address/Thermal/RAS -+ -+pci:v00008086d00006F7D* -+ ID_MODEL_FROM_DATABASE=Broadwell Ubox -+ -+pci:v00008086d00006F7E* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link Debug -+ -+pci:v00008086d00006F80* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 -+ -+pci:v00008086d00006F81* -+ ID_MODEL_FROM_DATABASE=Broadwell R3 QPI Link 0/1 -+ -+pci:v00008086d00006F83* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 -+ -+pci:v00008086d00006F85* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug -+ -+pci:v00008086d00006F86* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug -+ -+pci:v00008086d00006F87* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 0 Debug -+ -+pci:v00008086d00006F88* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F8A* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F90* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 -+ -+pci:v00008086d00006F93* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 -+ -+pci:v00008086d00006F95* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug -+ -+pci:v00008086d00006F96* -+ ID_MODEL_FROM_DATABASE=Broadwell QPI Link 1 Debug -+ -+pci:v00008086d00006F98* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F99* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F9A* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006F9C* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FA0* -+ ID_MODEL_FROM_DATABASE=Broadwell Home Agent 0 -+ -+pci:v00008086d00006FA8* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Target Address/Thermal/RAS -+ -+pci:v00008086d00006FAA* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAB* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAC* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAD* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel Target Address Decoder -+ -+pci:v00008086d00006FAE* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Broadcast -+ -+pci:v00008086d00006FAF* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Global Broadcast -+ -+pci:v00008086d00006FB0* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Thermal Control -+ -+pci:v00008086d00006FB1* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Thermal Control -+ -+pci:v00008086d00006FB2* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 0 Error -+ -+pci:v00008086d00006FB3* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 1 Error -+ -+pci:v00008086d00006FB4* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Thermal Control -+ -+pci:v00008086d00006FB5* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Thermal Control -+ -+pci:v00008086d00006FB6* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 2 Error -+ -+pci:v00008086d00006FB7* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 0 - Channel 3 Error -+ -+pci:v00008086d00006FB8* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FB9* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FBA* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FBB* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 2/3 Interface -+ -+pci:v00008086d00006FBC* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FBD* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FBE* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FBF* -+ ID_MODEL_FROM_DATABASE=Broadwell DDRIO Channel 0/1 Interface -+ -+pci:v00008086d00006FC0* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC1* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC2* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC3* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC4* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC5* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC6* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC7* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC8* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FC9* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCA* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCB* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCC* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCD* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCE* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FCF* -+ ID_MODEL_FROM_DATABASE=Broadwell Power Control Unit -+ -+pci:v00008086d00006FD0* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Thermal Control -+ -+pci:v00008086d00006FD1* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Thermal Control -+ -+pci:v00008086d00006FD2* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 0 Error -+ -+pci:v00008086d00006FD3* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 1 Error -+ -+pci:v00008086d00006FD4* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Thermal Control -+ -+pci:v00008086d00006FD5* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Thermal Control -+ -+pci:v00008086d00006FD6* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 2 Error -+ -+pci:v00008086d00006FD7* -+ ID_MODEL_FROM_DATABASE=Broadwell Memory Controller 1 - Channel 3 Error -+ -+pci:v00008086d00006FE0* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE1* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE2* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE3* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE4* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE5* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE6* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE7* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE8* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FE9* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEA* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEB* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEC* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FED* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEE* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FEF* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF0* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF1* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF8* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FF9* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFA* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFB* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFC* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFD* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ -+pci:v00008086d00006FFE* -+ ID_MODEL_FROM_DATABASE=Broadwell Caching Agent -+ - pci:v00008086d00007000* - ID_MODEL_FROM_DATABASE=82371SB PIIX3 ISA [Natoma/Triton II] - -@@ -73838,8 +74411,23 @@ pci:v0000D161d0000800A* - pci:v0000D161d0000800B* - ID_MODEL_FROM_DATABASE=Wildcard TE134 single-span T1/E1/J1 card - -+pci:v0000D161d0000800C* -+ ID_MODEL_FROM_DATABASE=Wildcard A8A 8-port analog card -+ -+pci:v0000D161d0000800D* -+ ID_MODEL_FROM_DATABASE=Wildcard A8B 8-port analog card (PCI-Express) -+ - pci:v0000D161d0000800E* -- ID_MODEL_FROM_DATABASE=Wildcard TE435P quad-span T1/E1/J1 card 3.3V (PCI-Express) -+ ID_MODEL_FROM_DATABASE=Wildcard TE235/TE435 quad-span T1/E1/J1 card (PCI-Express) -+ -+pci:v0000D161d0000800F* -+ ID_MODEL_FROM_DATABASE=Wildcard A4A 4-port analog card -+ -+pci:v0000D161d00008010* -+ ID_MODEL_FROM_DATABASE=Wildcard A4B 4-port analog card (PCI-Express) -+ -+pci:v0000D161d00008013* -+ ID_MODEL_FROM_DATABASE=Wildcard TE236/TE436 quad-span T1/E1/J1 card - - pci:v0000D161d0000B410* - ID_MODEL_FROM_DATABASE=Wildcard B410 quad-BRI card -diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb -index ed6b2b1..d87313c 100644 ---- hwdb/20-usb-vendor-model.hwdb -+++ hwdb/20-usb-vendor-model.hwdb -@@ -11243,6 +11243,9 @@ usb:v04A9p3261* - usb:v04A9p3262* - ID_MODEL_FROM_DATABASE=PowerShot A2600 - -+usb:v04A9p3263* -+ ID_MODEL_FROM_DATABASE=PowerShot SX275 HS -+ - usb:v04A9p3264* - ID_MODEL_FROM_DATABASE=PowerShot A1400 - -@@ -11261,6 +11264,9 @@ usb:v04A9p3276* - usb:v04A9p3277* - ID_MODEL_FROM_DATABASE=PowerShot SX510 HS - -+usb:v04A9p3278* -+ ID_MODEL_FROM_DATABASE=PowerShot S200 -+ - usb:v04A9p327D* - ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132 - -@@ -11666,6 +11672,9 @@ usb:v04B4p2050* - usb:v04B4p2830* - ID_MODEL_FROM_DATABASE=Opera1 DVB-S (cold state) - -+usb:v04B4p3813* -+ ID_MODEL_FROM_DATABASE=NANO BIOS Programmer -+ - usb:v04B4p4235* - ID_MODEL_FROM_DATABASE=Monitor 02 Driver - -@@ -33116,6 +33125,9 @@ usb:v0B48p300D* - usb:v0B48p300E* - ID_MODEL_FROM_DATABASE=TT-connect C-2400 - -+usb:v0B48p3012* -+ ID_MODEL_FROM_DATABASE=TT-connect CT2-4650 CI -+ - usb:v0B48p3014* - ID_MODEL_FROM_DATABASE=TT-TVStick CT2-4400 - --- -1.7.9.2 - diff --git a/0008-journald-fix-memory-leak-on-error-path.patch b/0008-journald-fix-memory-leak-on-error-path.patch deleted file mode 100644 index 6f67860c..00000000 --- a/0008-journald-fix-memory-leak-on-error-path.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 26d8ff04914a5208d029e899682cd314b7714bf0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Nov 2014 23:10:34 +0100 -Subject: [PATCH] journald: fix memory leak on error path - ---- - src/journal/journal-vacuum.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git src/journal/journal-vacuum.c src/journal/journal-vacuum.c -index d141fe0..80723c4 100644 ---- src/journal/journal-vacuum.c -+++ src/journal/journal-vacuum.c -@@ -283,7 +283,11 @@ int journal_directory_vacuum( - - patch_realtime(directory, p, &st, &realtime); - -- GREEDY_REALLOC(list, n_allocated, n_list + 1); -+ if (!GREEDY_REALLOC(list, n_allocated, n_list + 1)) { -+ free(p); -+ r = -ENOMEM; -+ goto finish; -+ } - - list[n_list].filename = p; - list[n_list].usage = 512UL * (uint64_t) st.st_blocks; --- -1.7.9.2 - diff --git a/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch b/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch deleted file mode 100644 index b43a43c1..00000000 --- a/0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 252094eb05c58270a0bc35b14ad30a126ddbb3bb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 11 Mar 2014 05:23:39 +0100 -Subject: [PATCH] man: multiple sleep modes are to be separated by whitespace, - not commas - -As pointed out by Jason A. Donenfeld. ---- - man/systemd-sleep.conf.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd-sleep.conf.xml man/systemd-sleep.conf.xml -index a917f4d..d0ea6d8 100644 ---- man/systemd-sleep.conf.xml -+++ man/systemd-sleep.conf.xml -@@ -128,7 +128,7 @@ along with systemd; If not, see . - systemd-hibernate.service8, or - systemd-hybrid-sleep.service8. - More than one value can be specified by separating -- multiple values with commas. They will be tried -+ multiple values with whitespace. They will be tried - in turn, until one is written without error. If - neither succeeds, the operation will be aborted. - -@@ -146,7 +146,7 @@ along with systemd; If not, see . - systemd-hibernate.service8, or - systemd-hybrid-sleep.service8. - More than one value can be specified by separating -- multiple values with commas. They will be tried -+ multiple values with whitespace. They will be tried - in turn, until one is written without error. If - neither succeeds, the operation will be aborted. - --- -1.7.9.2 - diff --git a/0008-man-update-journald-rate-limit-defaults.patch b/0008-man-update-journald-rate-limit-defaults.patch deleted file mode 100644 index 54aad943..00000000 --- a/0008-man-update-journald-rate-limit-defaults.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8f18f550e7023948f199616fdfbb0f09711fd615 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Wed, 30 Apr 2014 19:53:13 +0300 -Subject: [PATCH] man: update journald rate limit defaults - -This brings the man page back into sync with the actual code. ---- - man/journald.conf.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/journald.conf.xml man/journald.conf.xml -index 239a2ec..5cd09a2 100644 ---- man/journald.conf.xml -+++ man/journald.conf.xml -@@ -190,8 +190,8 @@ - limiting is applied per-service, so - that two services which log do not - interfere with each other's -- limits. Defaults to 200 messages in -- 10s. The time specification for -+ limits. Defaults to 1000 messages in -+ 30s. The time specification for - RateLimitInterval= - may be specified in the following - units: s, --- -1.7.9.2 - diff --git a/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch b/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch deleted file mode 100644 index b189c671..00000000 --- a/0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7c96ab1d2484ab2df3c6a84f1a1d2e076f469085 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Aug 2014 20:01:19 +0200 -Subject: [PATCH] mount-setup: fix counting of early mounts without SMACK - -http://lists.freedesktop.org/archives/systemd-devel/2014-August/021772.html ---- - src/core/mount-setup.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git src/core/mount-setup.c src/core/mount-setup.c -index 206f89a..cc2633e 100644 ---- src/core/mount-setup.c -+++ src/core/mount-setup.c -@@ -63,8 +63,13 @@ typedef struct MountPoint { - - /* The first three entries we might need before SELinux is up. The - * fourth (securityfs) is needed by IMA to load a custom policy. The -- * other ones we can delay until SELinux and IMA are loaded. */ -+ * other ones we can delay until SELinux and IMA are loaded. When -+ * SMACK is enabled we need smackfs, too, so it's a fifth one. */ -+#ifdef HAVE_SMACK - #define N_EARLY_MOUNT 5 -+#else -+#define N_EARLY_MOUNT 4 -+#endif - - static const MountPoint mount_table[] = { - { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, --- -1.7.9.2 - diff --git a/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch b/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch deleted file mode 100644 index d2eac44b..00000000 --- a/0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bbb6ff0216a7c081a2e63e01b1f121592b0165bb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 14 Mar 2014 21:12:36 +0100 -Subject: [PATCH] sd-bus: don't access invalid memory if a signal matcher was - freed from its own callback - ---- - src/libsystemd/sd-bus/bus-match.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/libsystemd/sd-bus/bus-match.c src/libsystemd/sd-bus/bus-match.c -index 8280488..c54ca8d 100644 ---- src/libsystemd/sd-bus/bus-match.c -+++ src/libsystemd/sd-bus/bus-match.c -@@ -293,6 +293,9 @@ int bus_match_run( - r = bus_maybe_reply_error(m, r, &error_buffer); - if (r != 0) - return r; -+ -+ if (bus && bus->match_callbacks_modified) -+ return 0; - } - - return bus_match_run(bus, node->next, m); --- -1.7.9.2 - diff --git a/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch b/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch deleted file mode 100644 index 3e5d0c03..00000000 --- a/0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch +++ /dev/null @@ -1,52 +0,0 @@ -Based on 77c10205bb337585c320e91af4b416f2dcc6faba Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 13:47:00 +0200 -Subject: [PATCH] shared: conf-parser - don't leak memory on error in - DEFINE_CONFIG_PARSE_ENUMV - -Found by Coverity. Fixes CID #1237746. ---- - src/shared/conf-parser.h | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - ---- src/shared/conf-parser.h -+++ src/shared/conf-parser.h 2014-09-18 13:14:43.730234764 +0000 -@@ -171,7 +171,8 @@ int log_syntax_internal(const char *unit - void *data, \ - void *userdata) { \ - \ -- type **enums = data, *xs, x, *ys; \ -+ type **enums = data, x, *ys; \ -+ _cleanup_free_ type *xs = NULL; \ - char *w, *state; \ - size_t l, i = 0; \ - \ -@@ -187,6 +188,7 @@ int log_syntax_internal(const char *unit - \ - FOREACH_WORD(w, l, rvalue, state) { \ - _cleanup_free_ char *en = NULL; \ -+ type *new_xs; \ - \ - en = strndup(w, l); \ - if (!en) \ -@@ -212,8 +214,10 @@ int log_syntax_internal(const char *unit - continue; \ - \ - *(xs + i) = x; \ -- xs = realloc(xs, (++i + 1) * sizeof(type)); \ -- if (!xs) \ -+ new_xs = realloc(xs, (++i + 1) * sizeof(type)); \ -+ if (new_xs) \ -+ xs = new_xs; \ -+ else \ - return -ENOMEM; \ - \ - *(xs + i) = invalid; \ -@@ -221,5 +225,7 @@ int log_syntax_internal(const char *unit - \ - free(*enums); \ - *enums = xs; \ -+ xs = NULL; \ -+ \ - return 0; \ - } diff --git a/0008-shell-completion-prevent-mangling-unit-names-bash.patch b/0008-shell-completion-prevent-mangling-unit-names-bash.patch deleted file mode 100644 index 7a52c0d7..00000000 --- a/0008-shell-completion-prevent-mangling-unit-names-bash.patch +++ /dev/null @@ -1,87 +0,0 @@ -Based on c317a1a19cd9584e07ee43f1b6fafc26c2c75cca Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Sun, 27 Jul 2014 15:07:03 -0400 -Subject: [PATCH] shell-completion: prevent mangling unit names (bash) - -This fixes the issue noted by Zbigniew in most cases. -if a unit's name is enclosed in single quotes completion still -will not happen after the first `\'. - -https://bugs.freedesktop.org/show_bug.cgi?id=78388 ---- - shell-completion/bash/systemctl.in | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in -index 69ef04b..64b15df 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -158,20 +158,25 @@ _systemctl () { - - elif __contains_word "$verb" ${VERBS[ALL_UNITS]}; then - comps=$( __get_all_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[ENABLED_UNITS]}; then - comps=$( __get_enabled_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then - comps=$( __get_disabled_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then - comps=$( __get_disabled_units $mode; - __get_enabled_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ - $( __get_startable_units $mode)) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStart yes \ -@@ -179,24 +184,30 @@ _systemctl () { - | while read -r line; do \ - [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \ - done )) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanStop yes \ - $( __get_active_units $mode ) ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[RELOADABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode CanReload yes \ - $( __get_active_units $mode ) ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[ISOLATABLE_UNITS]}; then - comps=$( __filter_units_by_property $mode AllowIsolate yes \ - $( __get_all_units $mode ) ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[FAILED_UNITS]}; then - comps=$( __get_failed_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[MASKED_UNITS]}; then - comps=$( __get_masked_units $mode ) -+ compopt -o filenames - - elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[NAME]}; then - comps='' -@@ -221,7 +232,7 @@ _systemctl () { - | { while read -r a b; do echo " $a"; done; } ) - fi - -- COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ COMPREPLY=( $(compgen -o filenames -W '$comps' -- "$cur") ) - return 0 - } - --- -1.7.9.2 - diff --git a/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch b/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch deleted file mode 100644 index b4564a5a..00000000 --- a/0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0088d63151e088d62104d88f866e9eb049091c22 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 25 Mar 2014 00:31:48 +0100 -Subject: [PATCH] systemctl: --kill-mode is long long gone, don't mention it - in the man page - ---- - man/systemctl.xml | 5 ++--- - shell-completion/bash/systemctl | 5 +---- - 2 files changed, 3 insertions(+), 7 deletions(-) - -diff --git man/systemctl.xml man/systemctl.xml -index 77447dd..b4727d9 100644 ---- man/systemctl.xml -+++ man/systemctl.xml -@@ -664,9 +664,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service - - Send a signal to one or more processes of the - unit. Use to select which -- process to kill. Use to select -- the kill mode and to select the -- signal to send. -+ process to kill. Use to select -+ the signal to send. - - - -diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl -index dc7ef66..0dfc868 100644 ---- shell-completion/bash/systemctl -+++ shell-completion/bash/systemctl -@@ -74,7 +74,7 @@ _systemctl () { - [STANDALONE]='--all -a --reverse --after --before --defaults --fail --ignore-dependencies --failed --force -f --full -l --global - --help -h --no-ask-password --no-block --no-legend --no-pager --no-reload --no-wall - --quiet -q --privileged -P --system --user --version --runtime' -- [ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --state --root' -+ [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' - ) - - if __contains_word "--user" ${COMP_WORDS[*]}; then -@@ -99,9 +99,6 @@ _systemctl () { - --kill-who) - comps='all control main' - ;; -- --kill-mode) -- comps='control-group process' -- ;; - --root) - comps=$(compgen -A directory -- "$cur" ) - compopt -o filenames --- -1.7.9.2 - diff --git a/0008-util-introduce-sethostname_idempotent.patch b/0008-util-introduce-sethostname_idempotent.patch deleted file mode 100644 index 5b42ce14..00000000 --- a/0008-util-introduce-sethostname_idempotent.patch +++ /dev/null @@ -1,85 +0,0 @@ -Based on 605f81a8968b2df8a28cca2cf11db99ab948a2af Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 21 Oct 2014 18:17:54 +0200 -Subject: [PATCH] util: introduce sethostname_idempotent - -Function queries system hostname and applies changes only when necessary. Also, -migrate all client of sethostname to sethostname_idempotent while at it. ---- - src/core/hostname-setup.c | 2 +- - src/hostname/hostnamed.c | 2 +- - src/nspawn/nspawn.c | 2 +- - src/shared/util.c | 20 ++++++++++++++++++++ - src/shared/util.h | 2 ++ - 5 files changed, 25 insertions(+), 3 deletions(-) - ---- src/core/hostname-setup.c -+++ src/core/hostname-setup.c 2014-10-29 00:00:00.000000000 +0000 -@@ -99,7 +99,7 @@ int hostname_setup(void) { - hn = "localhost"; - } - -- if (sethostname(hn, strlen(hn)) < 0) { -+ if (sethostname_idempotent(hn) < 0) { - log_warning("Failed to set hostname to <%s>: %m", hn); - return -errno; - } ---- src/hostname/hostnamed.c -+++ src/hostname/hostnamed.c 2014-10-29 14:13:26.124337751 +0000 -@@ -244,7 +244,7 @@ static int context_write_data_hostname(C - else - hn = c->data[PROP_HOSTNAME]; - -- if (sethostname(hn, strlen(hn)) < 0) -+ if (sethostname_idempotent(hn) < 0) - return -errno; - - return 0; ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-10-29 00:00:00.000000000 +0000 -@@ -981,7 +981,7 @@ static int setup_hostname(void) { - if (arg_share_system) - return 0; - -- if (sethostname(arg_machine, strlen(arg_machine)) < 0) -+ if (sethostname_idempotent(arg_machine) < 0) - return -errno; - - return 0; ---- src/shared/util.c -+++ src/shared/util.c 2014-10-29 00:00:00.000000000 +0000 -@@ -6451,6 +6451,26 @@ int fd_warn_permissions(const char *path - return 0; - } - -+int sethostname_idempotent(const char *s) { -+ int r; -+ char buf[HOST_NAME_MAX + 1] = {}; -+ -+ assert(s); -+ -+ r = gethostname(buf, sizeof(buf)); -+ if (r < 0) -+ return -errno; -+ -+ if (streq(buf, s)) -+ return 0; -+ -+ r = sethostname(buf, strlen(buf)); -+ if (r < 0) -+ return -errno; -+ -+ return 1; -+} -+ - unsigned long personality_from_string(const char *p) { - - /* Parse a personality specifier. We introduce our own ---- src/shared/util.h -+++ src/shared/util.h 2014-10-29 14:14:15.764337717 +0000 -@@ -899,3 +899,5 @@ union file_handle_union { - }; - - int umount_recursive(const char *target, int flags); -+ -+int sethostname_idempotent(const char *s); diff --git a/0009-ask-password-when-the-user-types-a-overly-long-passw.patch b/0009-ask-password-when-the-user-types-a-overly-long-passw.patch deleted file mode 100644 index 840c4a18..00000000 --- a/0009-ask-password-when-the-user-types-a-overly-long-passw.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 036eeac5a1799fa2c0ae11a14d8c667b5d303189 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 25 Mar 2014 01:27:05 +0100 -Subject: [PATCH] ask-password: when the user types a overly long password, - beep and refuse -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Based on a similar patch from David Härdeman. ---- - src/shared/ask-password-api.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/shared/ask-password-api.c src/shared/ask-password-api.c -index 117f0c6..96f16cc 100644 ---- src/shared/ask-password-api.c -+++ src/shared/ask-password-api.c -@@ -207,6 +207,11 @@ int ask_password_tty( - if (ttyfd >= 0) - loop_write(ttyfd, "(no echo) ", 10, false); - } else { -+ if (p >= sizeof(passphrase)-1) { -+ loop_write(ttyfd, "\a", 1, false); -+ continue; -+ } -+ - passphrase[p++] = c; - - if (!silent_mode && ttyfd >= 0) --- -1.7.9.2 - diff --git a/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch b/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch deleted file mode 100644 index 381d0732..00000000 --- a/0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c2fa048c4a70c8386c6d8fe939e5ea9edecf1e98 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 18 Sep 2014 13:28:28 +0200 -Subject: [PATCH] bus: fix bus_print_property() to use "int" for booleans - -We always use "int" if we retrieve boolean values from sd-bus, as "bool" -is only a single byte, but full int on va-args. - -Thanks to Werner Fink for the report! ---- - src/libsystemd/sd-bus/bus-util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libsystemd/sd-bus/bus-util.c src/libsystemd/sd-bus/bus-util.c -index 7c6da60..9018bce 100644 ---- src/libsystemd/sd-bus/bus-util.c -+++ src/libsystemd/sd-bus/bus-util.c -@@ -631,7 +631,7 @@ int bus_print_property(const char *name, sd_bus_message *property, bool all) { - } - - case SD_BUS_TYPE_BOOLEAN: { -- bool b; -+ int b; - - r = sd_bus_message_read_basic(property, type, &b); - if (r < 0) --- -1.7.9.2 - diff --git a/0009-core-clean-up-signal-reset-logic-when-reexec.patch b/0009-core-clean-up-signal-reset-logic-when-reexec.patch deleted file mode 100644 index cfe54186..00000000 --- a/0009-core-clean-up-signal-reset-logic-when-reexec.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9bfcda9528636914aef3e0ab91191bb81654c83d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 20 Jun 2014 16:58:21 +0200 -Subject: [PATCH] core: clean-up signal reset logic when reexec - -There's no need to save the old sigmask, if we are going to die. Let's -simplify this. Also, reset all the signal handlers, so that we don't -leave SIG_IGN set for some of them across reexec. ---- - src/core/main.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git src/core/main.c src/core/main.c -index 863ba52..6981e72 100644 ---- src/core/main.c -+++ src/core/main.c -@@ -1824,7 +1824,7 @@ finish: - if (reexecute) { - const char **args; - unsigned i, args_size; -- sigset_t ss, o_ss; -+ sigset_t ss; - - /* Close and disarm the watchdog, so that the new - * instance can reinitialize it, but doesn't get -@@ -1910,8 +1910,10 @@ finish: - - /* reenable any blocked signals, especially important - * if we switch from initial ramdisk to init=... */ -- sigemptyset(&ss); -- sigprocmask(SIG_SETMASK, &ss, &o_ss); -+ reset_all_signal_handlers(); -+ -+ assert_se(sigemptyset(&ss) == 0); -+ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); - - if (switch_root_init) { - args[0] = switch_root_init; -@@ -1931,8 +1933,6 @@ finish: - log_error("Failed to execute /bin/sh, giving up: %m"); - } else - log_warning("Failed to execute /sbin/init, giving up: %m"); -- -- sigprocmask(SIG_SETMASK, &o_ss, NULL); - } - - if (arg_serialization) { --- -1.7.9.2 - diff --git a/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 69372137..00000000 --- a/0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2e3390ea4684b954edce66b7758b5371d3338a9f Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Thu, 2 Oct 2014 07:53:15 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index 14aee74..ee2efdf 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -1148,3 +1148,21 @@ bluetooth:v017B* - - bluetooth:v017C* - ID_VENDOR_FROM_DATABASE=Daimler AG -+ -+bluetooth:v017D* -+ ID_VENDOR_FROM_DATABASE=BatAndCat -+ -+bluetooth:v017E* -+ ID_VENDOR_FROM_DATABASE=BluDotz Ltd -+ -+bluetooth:v017F* -+ ID_VENDOR_FROM_DATABASE=XTel ApS -+ -+bluetooth:v0180* -+ ID_VENDOR_FROM_DATABASE=Gigaset Communications GmbH -+ -+bluetooth:v0181* -+ ID_VENDOR_FROM_DATABASE=Gecko Health Innovations, Inc. -+ -+bluetooth:v0182* -+ ID_VENDOR_FROM_DATABASE=HOP Ubiquitous --- -1.7.9.2 - diff --git a/0009-hwdb-update.patch b/0009-hwdb-update.patch deleted file mode 100644 index 099e33b6..00000000 --- a/0009-hwdb-update.patch +++ /dev/null @@ -1,3363 +0,0 @@ -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 deleted file mode 100644 index 3d92f474..00000000 --- a/0009-journal-do-not-leak-mmaps-on-OOM.patch +++ /dev/null @@ -1,50 +0,0 @@ -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/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch b/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch deleted file mode 100644 index 864b9982..00000000 --- a/0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b9c488f60050248b35640f28e4d00958702ba1c3 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Wed, 6 Aug 2014 13:14:51 +0200 -Subject: [PATCH] journald: Fix off-by-one error in "Missed X kernel messages" - warning - -On receiving a message, "kernel_seqnum" is set to "serial + 1". So -subtracting 1 will cause messages like "Missed 0 kernel messages", -which should be "Missed 1 kernel messages". ---- - src/journal/journald-kmsg.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c -index 9935986..fb8ea08 100644 ---- src/journal/journald-kmsg.c -+++ src/journal/journald-kmsg.c -@@ -152,7 +152,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { - /* Did we lose any? */ - if (serial > *s->kernel_seqnum) - server_driver_message(s, SD_MESSAGE_JOURNAL_MISSED, "Missed %"PRIu64" kernel messages", -- serial - *s->kernel_seqnum - 1); -+ serial - *s->kernel_seqnum); - - /* Make sure we never read this one again. Note that - * we always store the next message serial we expect --- -1.7.9.2 - diff --git a/0009-journald-always-add-syslog-facility-for-messages-com.patch b/0009-journald-always-add-syslog-facility-for-messages-com.patch deleted file mode 100644 index 58a8bdd2..00000000 --- a/0009-journald-always-add-syslog-facility-for-messages-com.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 36dd072cdf03dcac0fcd2d6b42f261444dc7ac88 Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Fri, 25 Jul 2014 14:38:22 +0200 -Subject: [PATCH] journald: always add syslog facility for messages coming - from kmsg - -Set SYSLOG_FACILITY field for kernel log messages too. Setting only -SYSLOG_IDENTIFIER="kernel" is not sufficient and tools reading journal -maybe confused by missing SYSLOG_FACILITY field for kernel log messages. ---- - src/journal/journald-kmsg.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c -index 12992e7..bb62a76 100644 ---- src/journal/journald-kmsg.c -+++ src/journal/journald-kmsg.c -@@ -274,6 +274,9 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { - if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0) - IOVEC_SET_STRING(iovec[n++], syslog_priority); - -+ if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) -+ IOVEC_SET_STRING(iovec[n++], syslog_facility); -+ - if ((priority & LOG_FACMASK) == LOG_KERN) - IOVEC_SET_STRING(iovec[n++], "SYSLOG_IDENTIFIER=kernel"); - else { -@@ -295,9 +298,6 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) { - if (syslog_pid) - IOVEC_SET_STRING(iovec[n++], syslog_pid); - } -- -- if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0) -- IOVEC_SET_STRING(iovec[n++], syslog_facility); - } - - message = cunescape_length_with_prefix(p, pl, "MESSAGE="); --- -1.7.9.2 - diff --git a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch deleted file mode 100644 index 5bf1987e..00000000 --- a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 646e392e10924454576f10b072f78d7676422816 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 04:52:31 +0100 -Subject: [PATCH] logind: fix reference to systemd-user-sessions.service - ---- - src/login/logind-session.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/login/logind-session.c src/login/logind-session.c -index 548f049..3700522 100644 ---- src/login/logind-session.c -+++ src/login/logind-session.c -@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { - if (!scope) - return log_oom(); - -- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); -+ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); - if (r < 0) { - log_error("Failed to start session scope %s: %s %s", - scope, bus_error_message(&error, r), error.name); --- -1.7.9.2 - diff --git a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch deleted file mode 100644 index f064927a..00000000 --- a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +++ /dev/null @@ -1,70 +0,0 @@ -From ff5f34d08c191c326c41a083745522383ac86cae Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 04:27:50 +0100 -Subject: [PATCH] mount: don't send out PropertiesChanged message if actually - nothing got changed - ---- - src/core/mount.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git src/core/mount.c src/core/mount.c -index b35e507..98812c9 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -1390,7 +1390,7 @@ static int mount_add_one( - _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; - bool load_extras = false; - MountParameters *p; -- bool delete; -+ bool delete, changed = false; - Unit *u; - int r; - -@@ -1458,6 +1458,7 @@ static int mount_add_one( - } - - unit_add_to_load_queue(u); -+ changed = true; - } else { - delete = false; - -@@ -1476,6 +1477,7 @@ static int mount_add_one( - /* Load in the extras later on, after we - * finished initialization of the unit */ - load_extras = true; -+ changed = true; - } - } - -@@ -1488,10 +1490,16 @@ static int mount_add_one( - } - - p = &MOUNT(u)->parameters_proc_self_mountinfo; -+ -+ changed = changed || -+ !streq_ptr(p->options, options) || -+ !streq_ptr(p->what, what) || -+ !streq_ptr(p->fstype, fstype); -+ - if (set_flags) { - MOUNT(u)->is_mounted = true; - MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; -- MOUNT(u)->just_changed = !streq_ptr(p->options, o); -+ MOUNT(u)->just_changed = changed; - } - - MOUNT(u)->from_proc_self_mountinfo = true; -@@ -1514,7 +1522,8 @@ static int mount_add_one( - goto fail; - } - -- unit_add_to_dbus_queue(u); -+ if (changed) -+ unit_add_to_dbus_queue(u); - - return 0; - --- -1.7.9.2 - diff --git a/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch b/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch deleted file mode 100644 index a88af680..00000000 --- a/0009-nspawn-properly-format-container_uuid-in-UUID-format.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 9f24adc288de142d6606fde3c5a5971613f3b6b9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 16 May 2014 19:37:19 +0200 -Subject: [PATCH] nspawn: properly format container_uuid in UUID format - -http://lists.freedesktop.org/archives/systemd-devel/2014-April/018971.html ---- - src/nspawn/nspawn.c | 18 +++++++++++++----- - 1 file changed, 13 insertions(+), 5 deletions(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 0bd52da..6be4dca 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) { - return 0; - } - -+static char* id128_format_as_uuid(sd_id128_t id, char s[37]) { -+ -+ snprintf(s, 37, -+ "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", -+ SD_ID128_FORMAT_VAL(id)); -+ -+ return s; -+} -+ - static int setup_boot_id(const char *dest) { - _cleanup_free_ char *from = NULL, *to = NULL; - sd_id128_t rnd = {}; -@@ -794,10 +803,7 @@ static int setup_boot_id(const char *dest) { - return r; - } - -- snprintf(as_uuid, sizeof(as_uuid), -- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", -- SD_ID128_FORMAT_VAL(rnd)); -- char_array_0(as_uuid); -+ id128_format_as_uuid(rnd, as_uuid); - - r = write_string_file(from, as_uuid); - if (r < 0) { -@@ -2954,7 +2960,9 @@ int main(int argc, char *argv[]) { - } - - if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) { -- if (asprintf((char**)(envp + n_env++), "container_uuid=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(arg_uuid)) < 0) { -+ char as_uuid[37]; -+ -+ if (asprintf((char**)(envp + n_env++), "container_uuid=%s", id128_format_as_uuid(arg_uuid, as_uuid)) < 0) { - log_oom(); - goto child_fail; - } --- -1.7.9.2 - diff --git a/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch b/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch deleted file mode 100644 index f9e93696..00000000 --- a/0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5a4d665ad679a8436f1210ba67d713a8f0b91b96 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 14 Mar 2014 21:15:32 +0100 -Subject: [PATCH] sd-bus: don't choke if somebody sends us a message with a - unix fd count of 0 - -It's kinda pointless to include a unix fd header field in messages if it -carries the value 0, but let's do this anyway... ---- - src/libsystemd/sd-bus/bus-message.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c -index 97ab0e3..b9d7f6d 100644 ---- src/libsystemd/sd-bus/bus-message.c -+++ src/libsystemd/sd-bus/bus-message.c -@@ -4885,6 +4885,7 @@ int bus_message_parse_fields(sd_bus_message *m) { - size_t ri; - int r; - uint32_t unix_fds = 0; -+ bool unix_fds_set = false; - void *offsets = NULL; - unsigned n_offsets = 0; - size_t sz = 0; -@@ -5097,7 +5098,7 @@ int bus_message_parse_fields(sd_bus_message *m) { - } - - case BUS_MESSAGE_HEADER_UNIX_FDS: -- if (unix_fds != 0) -+ if (unix_fds_set) - return -EBADMSG; - - if (!streq(signature, "u")) -@@ -5107,9 +5108,7 @@ int bus_message_parse_fields(sd_bus_message *m) { - if (r < 0) - return -EBADMSG; - -- if (unix_fds == 0) -- return -EBADMSG; -- -+ unix_fds_set = true; - break; - - default: --- -1.7.9.2 - diff --git a/0009-units-make-systemd-journald.service-Type-notify.patch b/0009-units-make-systemd-journald.service-Type-notify.patch deleted file mode 100644 index 4890daf5..00000000 --- a/0009-units-make-systemd-journald.service-Type-notify.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on a87a38c20196a4aeb56b6ba71d688eefd0b21c30 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 4 Nov 2014 20:28:08 +0100 -Subject: [PATCH] units: make systemd-journald.service Type=notify - -It already calls sd_notify(), so it looks like an oversight. - -Without it, its ordering to systemd-journal-flush.service is -non-deterministic and the SIGUSR1 from flushing may kill journald before -it has its signal handlers set up. - -https://bugs.freedesktop.org/show_bug.cgi?id=85871 -https://bugzilla.redhat.com/show_bug.cgi?id=1159641 ---- - units/systemd-journald.service.in | 1 + - 1 file changed, 1 insertion(+) - ---- units/systemd-journald.service.in -+++ units/systemd-journald.service.in 2014-11-10 12:22:08.461949786 +0000 -@@ -14,6 +14,7 @@ After=systemd-journald.socket syslog.soc - Before=sysinit.target - - [Service] -+Type=notify - ExecStart=@rootlibexecdir@/systemd-journald - Restart=always - RestartSec=0 diff --git a/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch b/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch deleted file mode 100644 index 0e7fdba3..00000000 --- a/0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a9169c1c589bf7c7a29e7905d17e350ce7c7c48e Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Mon, 27 Oct 2014 11:08:26 +0100 -Subject: [PATCH] util: fix copy-paste error and actually set the new hostname - -Reported-by: sztanpet on irc ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 7d94a28..4143f6d 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -7189,7 +7189,7 @@ int sethostname_idempotent(const char *s) { - if (streq(buf, s)) - return 0; - -- r = sethostname(buf, strlen(buf)); -+ r = sethostname(s, strlen(s)); - if (r < 0) - return -errno; - --- -1.7.9.2 - diff --git a/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index dbf00485..00000000 --- a/0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 5d20fde4a5c4dff4d7c737b545fbd13582d544c1 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Fri, 31 Oct 2014 20:37:59 +0100 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - ---- - hwdb/20-bluetooth-vendor-product.hwdb | 57 +++++++++++++++++++++++++++++++++ - 1 file changed, 57 insertions(+) - -diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb -index ee2efdf..58ca87d 100644 ---- hwdb/20-bluetooth-vendor-product.hwdb -+++ hwdb/20-bluetooth-vendor-product.hwdb -@@ -1166,3 +1166,60 @@ bluetooth:v0181* - - bluetooth:v0182* - ID_VENDOR_FROM_DATABASE=HOP Ubiquitous -+ -+bluetooth:v0183* -+ ID_VENDOR_FROM_DATABASE=To Be Assigned -+ -+bluetooth:v0184* -+ ID_VENDOR_FROM_DATABASE=Nectar -+ -+bluetooth:v0185* -+ ID_VENDOR_FROM_DATABASE=bel'apps LLC -+ -+bluetooth:v0186* -+ ID_VENDOR_FROM_DATABASE=CORE Lighting Ltd -+ -+bluetooth:v0187* -+ ID_VENDOR_FROM_DATABASE=Seraphim Sense Ltd -+ -+bluetooth:v0188* -+ ID_VENDOR_FROM_DATABASE=Unico RBC -+ -+bluetooth:v0189* -+ ID_VENDOR_FROM_DATABASE=Physical Enterprises Inc. -+ -+bluetooth:v018A* -+ ID_VENDOR_FROM_DATABASE=Able Trend Technology Limited -+ -+bluetooth:v018B* -+ ID_VENDOR_FROM_DATABASE=Konica Minolta, Inc. -+ -+bluetooth:v018C* -+ ID_VENDOR_FROM_DATABASE=Wilo SE -+ -+bluetooth:v018D* -+ ID_VENDOR_FROM_DATABASE=Extron Design Services -+ -+bluetooth:v018E* -+ ID_VENDOR_FROM_DATABASE=Fitbit, Inc. -+ -+bluetooth:v018F* -+ ID_VENDOR_FROM_DATABASE=Fireflies Systems -+ -+bluetooth:v0190* -+ ID_VENDOR_FROM_DATABASE=Intelletto Technologies Inc. -+ -+bluetooth:v0191* -+ ID_VENDOR_FROM_DATABASE=FDK CORPORATION -+ -+bluetooth:v0192* -+ ID_VENDOR_FROM_DATABASE=Cloudleaf, Inc -+ -+bluetooth:v0193* -+ ID_VENDOR_FROM_DATABASE=Maveric Automation LLC -+ -+bluetooth:v0194* -+ ID_VENDOR_FROM_DATABASE=Acoustic Stream Corporation -+ -+bluetooth:v0195* -+ ID_VENDOR_FROM_DATABASE=Zuli --- -1.7.9.2 - diff --git a/0010-logind-allow-suspending-if-there-are-no-displays.patch b/0010-logind-allow-suspending-if-there-are-no-displays.patch deleted file mode 100644 index a12ff513..00000000 --- a/0010-logind-allow-suspending-if-there-are-no-displays.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d36d90933a832bd1e1eb8e3d16b3de73f91636b4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Mon, 28 Apr 2014 00:58:56 +0300 -Subject: [PATCH] logind: allow suspending if there are no displays - -With proprietary graphics drivers, there won't be any 'drm' devices in -sysfs, so logind will never suspend the system upon closing the lid, -even if only one (internal) display is connected. This has been reported -by multiple users so far. - -IMHO, it's better to suspend the system in this case for safety reasons, -to avoid having nvidia blob users' laptops overheat, for the same reason -that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes). ---- - src/login/logind-action.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git src/login/logind-action.c src/login/logind-action.c -index ae9cd48..36ee441 100644 ---- src/login/logind-action.c -+++ src/login/logind-action.c -@@ -79,14 +79,12 @@ int manager_handle_action( - return 0; - } - -- /* If we have more than one or no displays connected, -- * don't react to lid closing. The no display case we -- * treat like this under the assumption that there is -- * no modern drm driver available. */ -+ /* If we have more than one display connected, -+ * don't react to lid closing. */ - n = manager_count_displays(m); - if (n < 0) - log_warning("Display counting failed: %s", strerror(-n)); -- else if (n != 1) { -+ else if (n > 1) { - log_debug("Ignoring lid switch request, %i displays connected.", n); - return 0; - } --- -1.7.9.2 - diff --git a/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch b/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch deleted file mode 100644 index cd65acf9..00000000 --- a/0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9d685ca8193c0da3ad5746be3871f5350179a3b3 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra -Date: Thu, 14 Aug 2014 19:59:16 +0200 -Subject: [PATCH] machine_kill(): Don't kill the unit when killing the leader - -If "machinectl poweroff" or "machinectl reboot" is used on a -systemd-nspawn container started with --keep-unit and --register, it -should *only* send the appropriate signal to the leader PID (i.e. the -container's systemd process). It shouldn't fall through to -manager_kill_unit() to also send the signal to the unit. The latter -ends up killing systemd-nspawn, which takes down the container -prematurely. ---- - src/machine/machine.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git src/machine/machine.c src/machine/machine.c -index 1c9177e..13d3448 100644 ---- src/machine/machine.c -+++ src/machine/machine.c -@@ -493,6 +493,8 @@ int machine_kill(Machine *m, KillWho who, int signo) { - - if (kill(m->leader, signo) < 0) - return -errno; -+ -+ return 0; - } - - /* Otherwise make PID 1 do it for us, for the entire cgroup */ --- -1.7.9.2 - diff --git a/0010-man-update-link-to-LSB.patch b/0010-man-update-link-to-LSB.patch deleted file mode 100644 index 07a96f01..00000000 --- a/0010-man-update-link-to-LSB.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Mar 2014 08:10:19 -0500 -Subject: [PATCH] man: update link to LSB - -https://bugzilla.redhat.com/show_bug.cgi?id=1073402 ---- - man/daemon.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/daemon.xml man/daemon.xml -index fd29ba7..ab58d08 100644 ---- man/daemon.xml -+++ man/daemon.xml -@@ -252,7 +252,7 @@ - detect service errors and problems. It - is recommended to follow the exit code - scheme as defined in the LSB -+ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB - recommendations for SysV init - scripts. - -@@ -395,7 +395,7 @@ - exclusively on boot (and manually by the - administrator) via SysV init scripts, as - detailed in the LSB -+ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB - Linux Standard Base Core - Specification. This method of - activation is supported ubiquitously on Linux --- -1.7.9.2 - diff --git a/0010-manager-use-correct-cleanup-function.patch b/0010-manager-use-correct-cleanup-function.patch deleted file mode 100644 index 0f46dec8..00000000 --- a/0010-manager-use-correct-cleanup-function.patch +++ /dev/null @@ -1,30 +0,0 @@ -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/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch deleted file mode 100644 index 79bf62d4..00000000 --- a/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +++ /dev/null @@ -1,51 +0,0 @@ -From aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 04:28:37 +0100 -Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that - are stopped - ---- - src/core/mount.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git src/core/mount.c src/core/mount.c -index 98812c9..7a92e1c 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -1679,20 +1679,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - Mount *mount = MOUNT(u); - - if (!mount->is_mounted) { -- /* This has just been unmounted. */ - - mount->from_proc_self_mountinfo = false; - - switch (mount->state) { - - case MOUNT_MOUNTED: -+ /* This has just been unmounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_dead(mount, MOUNT_SUCCESS); - break; - - default: -- mount_set_state(mount, mount->state); - break; -- - } - - } else if (mount->just_mounted || mount->just_changed) { -@@ -1703,6 +1703,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - case MOUNT_DEAD: - case MOUNT_FAILED: -+ /* This has just been mounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_mounted(mount, MOUNT_SUCCESS); - break; - --- -1.7.9.2 - diff --git a/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch b/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch deleted file mode 100644 index cafa5324..00000000 --- a/0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on d89b5fed9ea5d9ec293585cb85bb27b56ea6ac9c Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Tue, 21 Oct 2014 18:38:42 +0200 -Subject: [PATCH] shutdown: do final unmounting only if not running inside the - container - -If we run in the container then we run in a mount namespace. If namespace dies -then kernel should do unmounting for us, hence we skip unmounting in containers. - -Also, it may be the case that we no longer have capability to do umount, -because we are running in the unprivileged container. - -See: http://lists.freedesktop.org/archives/systemd-devel/2014-October/023536.html ---- - src/core/shutdown.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- src/core/shutdown.c -+++ src/core/shutdown.c 2014-10-29 14:18:38.767837898 +0000 -@@ -278,6 +278,7 @@ int main(int argc, char *argv[]) { - broadcast_signal(SIGKILL, true, false); - - if (in_container) { -+ need_umount = false; - need_swapoff = false; - need_dm_detach = false; - need_loop_detach = false; diff --git a/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch b/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch deleted file mode 100644 index e99c1a0d..00000000 --- a/0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch +++ /dev/null @@ -1,25 +0,0 @@ -From da92ca5eb506d513033e0c7a85daf25a7e1c9d0e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 20 Jun 2014 22:43:49 -0400 -Subject: [PATCH] util: treat fuse.sshfs as a network filesystem - -https://bugs.freedesktop.org/show_bug.cgi?id=73727 ---- - src/shared/util.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/shared/util.c src/shared/util.c -index 882a690..dbdb692 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -1514,6 +1514,7 @@ bool fstype_is_network(const char *fstype) { - static const char table[] = - "cifs\0" - "smbfs\0" -+ "sshfs\0" - "ncpfs\0" - "ncp\0" - "nfs\0" --- -1.7.9.2 - diff --git a/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch b/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch deleted file mode 100644 index 325f04a9..00000000 --- a/0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8e75477abdd838d3beddc5fd1c6a7707b22748b6 Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Sat, 21 Jun 2014 22:07:09 +0200 -Subject: [PATCH] build-sys: add -pthread flag for libsystemd-shared - -src/shared/async.c uses pthread so it will fail at link time if we link -only to libsystemd-shared and use async ---- - Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git Makefile.am Makefile.am -index c7653ea..00db82d 100644 ---- Makefile.am -+++ Makefile.am -@@ -837,7 +837,8 @@ nodist_libsystemd_shared_la_SOURCES = \ - - libsystemd_shared_la_CFLAGS = \ - $(AM_CFLAGS) \ -- $(SECCOMP_CFLAGS) -+ $(SECCOMP_CFLAGS) \ -+ -pthread - - # ------------------------------------------------------------------------------ - noinst_LTLIBRARIES += \ --- -1.7.9.2 - diff --git a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch deleted file mode 100644 index 6ff83d12..00000000 --- a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 47d80904a1f72d559962cc5ad32fffd46672a34a Mon Sep 17 00:00:00 2001 -From: Uoti Urpala -Date: Thu, 20 Feb 2014 03:00:09 +0200 -Subject: [PATCH] logs-show: fix corrupt output with empty messages - -If a message had zero length, journalctl would print no newline, and -two output lines would be concatenated. Fix. The problem was -introduced in commit 31f7bf199452 ("logs-show: print multiline -messages"). Affected short and verbose output modes. - -Before fix: - -Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit - -after: - -Feb 09 21:16:17 glyph dhclient[1323]: -Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit ---- - src/shared/logs-show.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/shared/logs-show.c src/shared/logs-show.c -index 61c3652..12d4a1c 100644 ---- src/shared/logs-show.c -+++ src/shared/logs-show.c -@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output - } - } - -+ /* A special case: make sure that we print a newline when -+ the message is empty. */ -+ if (message_len == 0) -+ fputs("\n", f); -+ - for (pos = message; - pos < message + message_len; - pos = end + 1, line++) { --- -1.7.9.2 - diff --git a/0011-man-systemd-bootchart-fix-spacing-in-command.patch b/0011-man-systemd-bootchart-fix-spacing-in-command.patch deleted file mode 100644 index 60c206b3..00000000 --- a/0011-man-systemd-bootchart-fix-spacing-in-command.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 82ed60080d327d7301fcd55f5a1f8511f894b9d5 Mon Sep 17 00:00:00 2001 -From: Zachary Cook -Date: Thu, 6 Mar 2014 03:49:49 -0500 -Subject: [PATCH] man: systemd-bootchart - fix spacing in command - -Use the same formatting as the systemd-analyze man page, so that man shows a space. ---- - man/systemd-bootchart.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git man/systemd-bootchart.xml man/systemd-bootchart.xml -index d0adaad..1715d5d 100644 ---- man/systemd-bootchart.xml -+++ man/systemd-bootchart.xml -@@ -78,8 +78,8 @@ - in which order, and where possible problems - exist in the startup sequence of the system. - It is essentially a more detailed version of -- the systemd-analyze -- plot function. -+ the systemd-analyze plot -+ function. - - - Of course, bootchart can also be used at any --- -1.7.9.2 - diff --git a/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch b/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch deleted file mode 100644 index 1592a5aa..00000000 --- a/0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch +++ /dev/null @@ -1,57 +0,0 @@ -Based on dec23413ecc90d4a547aa41f02af0482b4513495 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 27 Oct 2014 21:31:29 -0400 -Subject: [PATCH] selinux: make sure we do not try to print missing fields - -UID or GID of 0 is valid, so we cannot use that to distinguish whether -calls to sd_bus_creds_get_* succeeded, and the return value from the -function is the only way to know about missing fields. Print "n/a" if -the fields are missing. - -CID #1238779 ---- - src/core/selinux-access.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git src/core/selinux-access.c src/core/selinux-access.c -index 08ea6ef..351d48f 100644 ---- src/core/selinux-access.c -+++ src/core/selinux-access.c -@@ -53,7 +53,7 @@ struct audit_info { - - /* - Any time an access gets denied this callback will be called -- with the aduit data. We then need to just copy the audit data into the msgbuf. -+ with the audit data. We then need to just copy the audit data into the msgbuf. - */ - static int audit_callback( - void *auditdata, -@@ -64,14 +64,20 @@ static int audit_callback( - const struct audit_info *audit = auditdata; - uid_t uid = 0, login_uid = 0; - gid_t gid = 0; -+ char login_uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; -+ char uid_buf[DECIMAL_STR_MAX(uid_t)] = "n/a"; -+ char gid_buf[DECIMAL_STR_MAX(gid_t)] = "n/a"; - -- sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid); -- sd_bus_creds_get_uid(audit->creds, &uid); -- sd_bus_creds_get_gid(audit->creds, &gid); -+ if (sd_bus_creds_get_audit_login_uid(audit->creds, &login_uid) >= 0) -+ snprintf(login_uid_buf, sizeof(login_uid_buf), UID_FMT, login_uid); -+ if (sd_bus_creds_get_uid(audit->creds, &uid) >= 0) -+ snprintf(uid_buf, sizeof(uid_buf), UID_FMT, uid); -+ if (sd_bus_creds_get_gid(audit->creds, &gid) >= 0) -+ snprintf(gid_buf, sizeof(gid_buf), "%lu", (unsigned long)gid); - - snprintf(msgbuf, msgbufsize, -- "auid=%d uid=%d gid=%d%s%s%s%s%s%s", -- login_uid, uid, gid, -+ "auid=%s uid=%s gid=%s%s%s%s%s%s%s", -+ login_uid_buf, uid_buf, gid_buf, - audit->path ? " path=\"" : "", strempty(audit->path), audit->path ? "\"" : "", - audit->cmdline ? " cmdline=\"" : "", strempty(audit->cmdline), audit->cmdline ? "\"" : ""); - --- -1.7.9.2 - diff --git a/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch b/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch deleted file mode 100644 index 7dee5011..00000000 --- a/0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch +++ /dev/null @@ -1,93 +0,0 @@ -From ff50244582bf69e8489bba6ce59a21663d7f8274 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 Aug 2014 22:21:42 +0200 -Subject: [PATCH] units: fix BindsTo= logic when applied relative to services - with Type=oneshot -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Start jobs for Type=oneshot units are successful when the unit state -transition activating → inactive took place. In such a case all units -that BindsTo= on it previously would continue to run, even though the unit -they dependet on was actually already gone. ---- - src/core/unit.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 44 insertions(+), 4 deletions(-) - -diff --git src/core/unit.c src/core/unit.c -index a5f6b2e..950b83a 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1471,12 +1471,44 @@ static void unit_check_unneeded(Unit *u) { - if (unit_active_or_pending(other)) - return; - -- log_info_unit(u->id, "Service %s is not needed anymore. Stopping.", u->id); -+ log_info_unit(u->id, "Unit %s is not needed anymore. Stopping.", u->id); - - /* Ok, nobody needs us anymore. Sniff. Then let's commit suicide */ - manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); - } - -+static void unit_check_binds_to(Unit *u) { -+ bool stop = false; -+ Unit *other; -+ Iterator i; -+ -+ assert(u); -+ -+ if (u->job) -+ return; -+ -+ if (unit_active_state(u) != UNIT_ACTIVE) -+ return; -+ -+ SET_FOREACH(other, u->dependencies[UNIT_BINDS_TO], i) { -+ if (other->job) -+ continue; -+ -+ if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) -+ continue; -+ -+ stop = true; -+ } -+ -+ if (!stop) -+ return; -+ -+ log_info_unit(u->id, "Unit %s is bound to inactive service. Stopping, too.", u->id); -+ -+ /* A unit we need to run is gone. Sniff. Let's stop this. */ -+ manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); -+} -+ - static void retroactively_start_dependencies(Unit *u) { - Iterator i; - Unit *other; -@@ -1788,11 +1820,19 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - manager_recheck_journal(m); - unit_trigger_notify(u); - -- /* Maybe we finished startup and are now ready for being -- * stopped because unneeded? */ -- if (u->manager->n_reloading <= 0) -+ if (u->manager->n_reloading <= 0) { -+ /* Maybe we finished startup and are now ready for -+ * being stopped because unneeded? */ - unit_check_unneeded(u); - -+ /* Maybe we finished startup, but something we needed -+ * has vanished? Let's die then. (This happens when -+ * something BindsTo= to a Type=oneshot unit, as these -+ * units go directly from starting to inactive, -+ * without ever entering started.) */ -+ unit_check_binds_to(u); -+ } -+ - unit_add_to_dbus_queue(u); - unit_add_to_gc_queue(u); - } --- -1.7.9.2 - diff --git a/0012-core-transaction-avoid-misleading-error-message-when.patch b/0012-core-transaction-avoid-misleading-error-message-when.patch deleted file mode 100644 index 03021cd2..00000000 --- a/0012-core-transaction-avoid-misleading-error-message-when.patch +++ /dev/null @@ -1,42 +0,0 @@ -Based on 04ef5b03f64d3824a51a2a903548af029a006744 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 22 Jun 2014 14:04:23 -0400 -Subject: [PATCH] core/transaction: avoid misleading error message when unit - not found - -There's no point in telling the user to look at the logs when -an attempt to load the unit file failed with ENOENT. - -https://bugzilla.redhat.com/show_bug.cgi?id=996133 ---- - TODO | 4 ---- - src/core/transaction.c | 18 ++++++++++++------ - 2 files changed, 12 insertions(+), 10 deletions(-) - ---- src/core/transaction.c -+++ src/core/transaction.c 2014-06-24 11:18:42.746235805 +0000 -@@ -865,12 +865,18 @@ int transaction_add_job_and_dependencies - } - - if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { -- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, -- "Unit %s failed to load: %s. " -- "See system logs and 'systemctl status %s' for details.", -- unit->id, -- strerror(-unit->load_error), -- unit->id); -+ if (unit->load_error == -ENOENT) -+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, -+ "Unit %s failed to load: %s.", -+ unit->id, -+ strerror(-unit->load_error)); -+ else -+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, -+ "Unit %s failed to load: %s. " -+ "See system logs and 'systemctl status %s' for details.", -+ unit->id, -+ strerror(-unit->load_error), -+ unit->id); - return -EINVAL; - } - diff --git a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch deleted file mode 100644 index 00b0669b..00000000 --- a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0b6b7c2004317da48e5bbd3078c5662d8f0061b6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 26 Feb 2014 23:01:43 -0500 -Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar - -Positional arguments only make sense with the default action. -For other actions, complain instead of ignoring them silently. ---- - src/journal/journalctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git src/journal/journalctl.c src/journal/journalctl.c -index a328ba1..0619b25 100644 ---- src/journal/journalctl.c -+++ src/journal/journalctl.c -@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { - return -EINVAL; - } - -+ if (arg_action != ACTION_SHOW && optind < argc) { -+ log_error("Extraneous arguments starting with '%s'", argv[optind]); -+ return -EINVAL; -+ } -+ - return 1; - } - --- -1.7.9.2 - diff --git a/0012-journald-remove-stray-reset-of-error-return-value.patch b/0012-journald-remove-stray-reset-of-error-return-value.patch deleted file mode 100644 index f15237f7..00000000 --- a/0012-journald-remove-stray-reset-of-error-return-value.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 2fc74bf4336eb7a7e40c0b355d19966cd97d4b3c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 10 Mar 2014 21:19:23 -0400 -Subject: [PATCH] journald: remove stray reset of error return value - ---- - src/journal/journald.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git src/journal/journald.c src/journal/journald.c -index 37896d0..c8c0801 100644 ---- src/journal/journald.c -+++ src/journal/journald.c -@@ -110,7 +110,6 @@ int main(int argc, char *argv[]) { - r = sd_event_run(server.event, t); - if (r < 0) { - log_error("Failed to run event loop: %s", strerror(-r)); -- r = -errno; - goto finish; - } - --- -1.7.9.2 - diff --git a/0012-man-add-missing-comma.patch b/0012-man-add-missing-comma.patch deleted file mode 100644 index 9d779f43..00000000 --- a/0012-man-add-missing-comma.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Mar 2014 23:54:13 -0500 -Subject: [PATCH] man: add missing comma - -marcosf0> missing comma in udevadm "see also" section ---- - man/udevadm.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git man/udevadm.xml man/udevadm.xml -index a3f8d54..21d1443 100644 ---- man/udevadm.xml -+++ man/udevadm.xml -@@ -594,7 +594,7 @@ - See Also - - udev7 -- -+ , - - systemd-udevd.service8 - --- -1.7.9.2 - diff --git a/0012-manager-do-not-print-anything-while-passwords-are-be.patch b/0012-manager-do-not-print-anything-while-passwords-are-be.patch deleted file mode 100644 index 88c30eab..00000000 --- a/0012-manager-do-not-print-anything-while-passwords-are-be.patch +++ /dev/null @@ -1,180 +0,0 @@ -Based on e46b13c8c7f48f81d4e09912f2265daaa7f6d27e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 25 Oct 2014 20:30:51 -0400 -Subject: [PATCH] manager: do not print anything while passwords are being - queried - -https://bugs.freedesktop.org/show_bug.cgi?id=73942 ---- - src/core/manager.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++- - src/core/manager.h | 5 ++ - 2 files changed, 109 insertions(+), 1 deletion(-) - ---- src/core/manager.c -+++ src/core/manager.c 2014-10-29 14:31:18.984212089 +0000 -@@ -25,6 +25,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -212,6 +214,96 @@ static void manager_print_jobs_in_progre - - } - -+static int have_ask_password(void) { -+ _cleanup_closedir_ DIR *dir; -+ -+ dir = opendir("/run/systemd/ask-password"); -+ if (!dir) { -+ if (errno == ENOENT) -+ return false; -+ else -+ return -errno; -+ } -+ -+ for (;;) { -+ struct dirent *de; -+ -+ errno = 0; -+ de = readdir(dir); -+ if (!de && errno != 0) -+ return -errno; -+ if (!de) -+ return false; -+ -+ if (startswith(de->d_name, "ask.")) -+ return true; -+ } -+} -+ -+static int manager_dispatch_ask_password_fd(sd_event_source *source, -+ int fd, uint32_t revents, void *userdata) { -+ Manager *m = userdata; -+ -+ assert(m); -+ -+ flush_fd(fd); -+ -+ m->have_ask_password = have_ask_password(); -+ if (m->have_ask_password < 0) -+ /* Log error but continue. Negative have_ask_password -+ * is treated as unknown status. */ -+ log_error("Failed to list /run/systemd/ask-password: %s", strerror(m->have_ask_password)); -+ -+ return 0; -+} -+ -+static void manager_close_ask_password(Manager *m) { -+ assert(m); -+ if (m->ask_password_inotify_fd >= 0) close_nointr_nofail(m->ask_password_inotify_fd); -+ m->ask_password_inotify_fd = -1; -+ m->ask_password_event_source = sd_event_source_unref(m->ask_password_event_source); -+ m->have_ask_password = -EINVAL; -+} -+ -+static int manager_check_ask_password(Manager *m) { -+ int r; -+ -+ assert(m); -+ -+ if (!m->ask_password_event_source) { -+ assert(m->ask_password_inotify_fd < 0); -+ -+ mkdir_p_label("/run/systemd/ask-password", 0755); -+ -+ m->ask_password_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); -+ if (m->ask_password_inotify_fd < 0) { -+ log_error("inotify_init1() failed: %m"); -+ return -errno; -+ } -+ -+ if (inotify_add_watch(m->ask_password_inotify_fd, "/run/systemd/ask-password", IN_CREATE|IN_DELETE|IN_MOVE) < 0) { -+ log_error("Failed to add watch on /run/systemd/ask-password: %m"); -+ manager_close_ask_password(m); -+ return -errno; -+ } -+ -+ r = sd_event_add_io(m->event, &m->ask_password_event_source, -+ m->ask_password_inotify_fd, EPOLLIN, -+ manager_dispatch_ask_password_fd, m); -+ if (r < 0) { -+ log_error("Failed to add event source for /run/systemd/ask-password: %m"); -+ manager_close_ask_password(m); -+ return -errno; -+ } -+ -+ /* Queries might have been added meanwhile... */ -+ manager_dispatch_ask_password_fd(m->ask_password_event_source, -+ m->ask_password_inotify_fd, EPOLLIN, m); -+ } -+ -+ return m->have_ask_password; -+} -+ - static int manager_watch_idle_pipe(Manager *m) { - int r; - -@@ -470,6 +562,9 @@ int manager_new(SystemdRunningAs running - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; - m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ - -+ m->ask_password_inotify_fd = -1; -+ m->have_ask_password = -EINVAL; /* we don't know */ -+ - r = manager_default_environment(m); - if (r < 0) - goto fail; -@@ -847,6 +942,8 @@ void manager_free(Manager *m) { - if (m->kdbus_fd >= 0) - close_nointr_nofail(m->kdbus_fd); - -+ manager_close_ask_password(m); -+ - manager_close_idle_pipe(m); - - udev_unref(m->udev); -@@ -2526,6 +2623,9 @@ void manager_check_finished(Manager *m) - /* Turn off confirm spawn now */ - m->confirm_spawn = false; - -+ /* No need to update ask password status when we're going non-interactive */ -+ manager_close_ask_password(m); -+ - if (dual_timestamp_is_set(&m->finish_timestamp)) - return; - -@@ -2843,12 +2943,15 @@ static bool manager_get_show_status(Mana - if (m->no_console_output) - return false; - -+ /* If we cannot find out the status properly, just proceed. */ -+ if (manager_check_ask_password(m) > 0) -+ return false; -+ - if (m->show_status > 0) - return true; - - /* If Plymouth is running make sure we show the status, so - * that there's something nice to see when people press Esc */ -- - return plymouth_running(); - } - ---- src/core/manager.h -+++ src/core/manager.h 2014-10-29 00:00:00.000000000 +0000 -@@ -231,6 +231,11 @@ struct Manager { - unsigned n_on_console; - unsigned jobs_in_progress_iteration; - -+ /* Do we have any outstanding password prompts? */ -+ int have_ask_password; -+ int ask_password_inotify_fd; -+ sd_event_source *ask_password_event_source; -+ - /* Type=idle pipes */ - int idle_pipe[4]; - sd_event_source *idle_pipe_event_source; diff --git a/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch b/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch deleted file mode 100644 index becc7844..00000000 --- a/0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 70421bdce2719d76efffd8afdc28433c75aac5a2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 Aug 2014 23:15:51 +0200 -Subject: [PATCH] util: try to be a bit more NFS compatible when checking - whether an FS is writable - -https://bugs.freedesktop.org/show_bug.cgi?id=81169 ---- - src/shared/path-util.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git src/shared/path-util.c src/shared/path-util.c -index 57554cd..67566bc 100644 ---- src/shared/path-util.c -+++ src/shared/path-util.c -@@ -533,7 +533,16 @@ int path_is_read_only_fs(const char *path) { - if (statvfs(path, &st) < 0) - return -errno; - -- return !!(st.f_flag & ST_RDONLY); -+ if (st.f_flag & ST_RDONLY) -+ return true; -+ -+ /* On NFS, statvfs() might not reflect whether we can actually -+ * write to the remote share. Let's try again with -+ * access(W_OK) which is more reliable, at least sometimes. */ -+ if (access(path, W_OK) < 0 && errno == EROFS) -+ return true; -+ -+ return false; - } - - int path_is_os_tree(const char *path) { --- -1.7.9.2 - diff --git a/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch b/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch deleted file mode 100644 index 0343c2ad..00000000 --- a/0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 6f285378aa6e4b5b23c939d1fea16f9ab0a57efb Mon Sep 17 00:00:00 2001 -From: Miklos Vajna -Date: Fri, 14 Mar 2014 21:13:38 +0100 -Subject: [PATCH] core, libsystemd, systemd, timedate, udev: spelling fixes - ---- - src/core/service.c | 2 +- - src/core/unit.c | 2 +- - src/libsystemd/sd-bus/bus-message.c | 2 +- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/systemd/sd-resolve.h | 2 +- - src/timedate/timedated.c | 2 +- - src/udev/udevadm-settle.c | 2 +- - 7 files changed, 8 insertions(+), 8 deletions(-) - -diff --git src/core/service.c src/core/service.c -index 41b95ab..386692a 100644 ---- src/core/service.c -+++ src/core/service.c -@@ -3416,7 +3416,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - free(t); - } - -- /* Interpet WATCHDOG= */ -+ /* Interpret WATCHDOG= */ - if (strv_find(tags, "WATCHDOG=1")) { - log_debug_unit(u->id, "%s: got WATCHDOG=1", u->id); - service_reset_watchdog(s); -diff --git src/core/unit.c src/core/unit.c -index 5c98843..4fb0d9c 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1537,7 +1537,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su - unit_destroy_cgroup(u); - - /* Note that this doesn't apply to RemainAfterExit services exiting -- * sucessfully, since there's no change of state in that case. Which is -+ * successfully, since there's no change of state in that case. Which is - * why it is handled in service_set_state() */ - if (UNIT_IS_INACTIVE_OR_FAILED(os) != UNIT_IS_INACTIVE_OR_FAILED(ns)) { - ExecContext *ec; -diff --git src/libsystemd/sd-bus/bus-message.c src/libsystemd/sd-bus/bus-message.c -index b9d7f6d..e32f2b8 100644 ---- src/libsystemd/sd-bus/bus-message.c -+++ src/libsystemd/sd-bus/bus-message.c -@@ -4215,7 +4215,7 @@ static int message_read_ap( - * in a single stackframe. We hence implement our own - * home-grown stack in an array. */ - -- n_array = (unsigned) -1; /* lenght of current array entries */ -+ n_array = (unsigned) -1; /* length of current array entries */ - n_struct = strlen(types); /* length of current struct contents signature */ - - for (;;) { -diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c -index 8e44e50..ba8a8a2 100644 ---- src/libsystemd/sd-bus/sd-bus.c -+++ src/libsystemd/sd-bus/sd-bus.c -@@ -1447,7 +1447,7 @@ static int bus_seal_message(sd_bus *b, sd_bus_message *m, usec_t timeout) { - static int bus_remarshal_message(sd_bus *b, sd_bus_message **m) { - assert(b); - -- /* Do packet version and endianess already match? */ -+ /* Do packet version and endianness already match? */ - if ((b->message_version == 0 || b->message_version == (*m)->header->version) && - (b->message_endian == 0 || b->message_endian == (*m)->header->endian)) - return 0; -@@ -1464,7 +1464,7 @@ int bus_seal_synthetic_message(sd_bus *b, sd_bus_message *m) { - * hence let's fill something in for synthetic messages. Since - * synthetic messages might have a fake sender and we don't - * want to interfere with the real sender's serial numbers we -- * pick a fixed, artifical one. We use (uint32_t) -1 rather -+ * pick a fixed, artificial one. We use (uint32_t) -1 rather - * than (uint64_t) -1 since dbus1 only had 32bit identifiers, - * even though kdbus can do 64bit. */ - -diff --git src/systemd/sd-resolve.h src/systemd/sd-resolve.h -index df69e4b..3c1d482 100644 ---- src/systemd/sd-resolve.h -+++ src/systemd/sd-resolve.h -@@ -129,7 +129,7 @@ int sd_resolve_get_next(sd_resolve *resolve, sd_resolve_query **q); - int sd_resolve_get_n_queries(sd_resolve *resolve); - - /** Cancel a currently running query. q is is destroyed by this call -- * and may not be used any futher. */ -+ * and may not be used any further. */ - int sd_resolve_cancel(sd_resolve_query* q); - - /** Returns non-zero when the query operation specified by q has been completed */ -diff --git src/timedate/timedated.c src/timedate/timedated.c -index d85ce57..c4a797a 100644 ---- src/timedate/timedated.c -+++ src/timedate/timedated.c -@@ -468,7 +468,7 @@ static int property_get_rtc_time( - zero(tm); - r = hwclock_get_time(&tm); - if (r == -EBUSY) { -- log_warning("/dev/rtc is busy, is somebody keeping it open continously? That's not a good idea... Returning a bogus RTC timestamp."); -+ log_warning("/dev/rtc is busy, is somebody keeping it open continuously? That's not a good idea... Returning a bogus RTC timestamp."); - t = 0; - } else if (r == -ENOENT) { - log_debug("Not /dev/rtc found."); -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index b026155..927ea2a 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -100,7 +100,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - case '?': - exit(EXIT_FAILURE); - default: -- assert_not_reached("Unkown argument"); -+ assert_not_reached("Unknown argument"); - } - - if (optind < argc) { --- -1.7.9.2 - diff --git a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch deleted file mode 100644 index f65e5d3e..00000000 --- a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 6c49212741253dae05b89d22374186f092ef1e5a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Fri, 7 Mar 2014 01:50:34 +0100 -Subject: [PATCH] units: Do not unescape instance name in - systemd-backlight@.service - -The instance name is never escaped in the udev rule, but unescaped in the unit. -This results in the following error message on Asus boards: - - Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory ---- - units/systemd-backlight@.service.in | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git units/systemd-backlight@.service.in units/systemd-backlight@.service.in -index 5caa5d5..e945d87 100644 ---- units/systemd-backlight@.service.in -+++ units/systemd-backlight@.service.in -@@ -6,7 +6,7 @@ - # (at your option) any later version. - - [Unit] --Description=Load/Save Screen Backlight Brightness of %I -+Description=Load/Save Screen Backlight Brightness of %i - Documentation=man:systemd-backlight@.service(8) - DefaultDependencies=no - RequiresMountsFor=/var/lib/systemd/backlight -@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target - [Service] - Type=oneshot - RemainAfterExit=yes --ExecStart=@rootlibexecdir@/systemd-backlight load %I --ExecStop=@rootlibexecdir@/systemd-backlight save %I -+ExecStart=@rootlibexecdir@/systemd-backlight load %i -+ExecStop=@rootlibexecdir@/systemd-backlight save %i --- -1.7.9.2 - diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch index 6bf95fb4..c3ae1a23 100644 --- a/0014-journald-with-journaling-FS.patch +++ b/0014-journald-with-journaling-FS.patch @@ -1,5 +1,22 @@ ---- systemd-208/src/journal/journald-server.c -+++ systemd-208/src/journal/journald-server.c 2013-12-10 16:31:50.770235717 +0000 +From: werner@suse.de +Upstream: marked as openSUSE-specific fix originally, but may well + worth be to be sent upstream. + +Original description: + (none) + +Augmented description [jengelh@inai.de]: +Disable COW on journal files, as that is naturally leading to a lot +of unwanted fragmentation on btrfs. +No word on compression… +--- + src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +Index: systemd/src/journal/journald-server.c +=================================================================== +--- systemd.orig/src/journal/journald-server.c ++++ systemd/src/journal/journald-server.c @@ -21,6 +21,7 @@ #include @@ -8,45 +25,50 @@ #include #include #include -@@ -878,7 +879,7 @@ finish: +@@ -917,6 +918,38 @@ finish: + dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid); + } - - static int system_journal_open(Server *s) { -- int r; -+ int r, fd; - char *fn; - sd_id128_t machine; - char ids[33]; -@@ -905,7 +906,31 @@ static int system_journal_open(Server *s - (void) mkdir("/var/log/journal/", 0755); - - fn = strappenda("/var/log/journal/", ids); -- (void) mkdir(fn, 0755); -+ (void)mkdir(fn, 0755); ++/* ++ * On journaling and/or compressing file systems, avoid doubling the efforts ++ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every ++ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on ++ * a single unkown flag (like BtrFS does). ++ * ++ * …but src/journal/journal-file.c already sets NOCOW too…⸘ ++ */ ++static void disable_cow(const char *dir, const Server *serv) ++{ ++ unsigned long flags; ++ int fd = open(dir, O_DIRECTORY); + -+ /* -+ * On journaling and/or compressing file systems avoid doubling the -+ * efforts for the system, that is set NOCOW and NOCOMP inode flags. -+ * Check for every single flag as otherwise some of the file systems -+ * may return EOPNOTSUPP on one unkown flag (like BtrFS does). -+ */ -+ if ((fd = open(fn, O_DIRECTORY)) >= 0) { -+ long flags; -+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { -+ int old = flags; -+ if (!(flags&FS_NOATIME_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0) -+ flags |= FS_NOATIME_FL; -+ if (!(flags&FS_NOCOW_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0) -+ flags |= FS_NOCOW_FL; -+ if (!(flags&FS_NOCOMP_FL) && s->compress) { -+ flags &= ~FS_COMPR_FL; -+ flags |= FS_NOCOMP_FL; -+ } -+ if (old != flags) -+ ioctl(fd, FS_IOC_SETFLAGS, flags); -+ } -+ close(fd); ++ if (fd < 0) ++ return; ++ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) { ++ unsigned long old = flags; ++ if (!(flags & FS_NOATIME_FL) && ++ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOATIME_FL) == 0) ++ flags |= FS_NOATIME_FL; ++ if (!(flags & FS_NOCOW_FL) && ++ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOCOW_FL) == 0) ++ flags |= FS_NOCOW_FL; ++ if (!(flags & FS_NOCOMP_FL) && serv->compress) { ++ flags &= ~FS_COMPR_FL; ++ flags |= FS_NOCOMP_FL; + } ++ if (old != flags) ++ ioctl(fd, FS_IOC_SETFLAGS, flags); ++ } ++ close(fd); ++} - fn = strappenda(fn, "/system.journal"); + static int system_journal_open(Server *s, bool flush_requested) { + int r; +@@ -946,6 +979,7 @@ static int system_journal_open(Server *s + + fn = strjoina("/var/log/journal/", ids); + (void) mkdir(fn, 0755); ++ disable_cow(fn, s); + + fn = strjoina(fn, "/system.journal"); r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); diff --git a/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch deleted file mode 100644 index c4c2f4cb..00000000 --- a/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 -From: Tero Roponen -Date: Tue, 25 Feb 2014 17:19:35 +0200 -Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid - -Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: - Failed to read /proc/self/loginuid: No such file or directory - - Container Fedora failed with error code 1. - -This patch fixes the problem. ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 1fe641b..92b6728 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { - return 0; - - r = read_one_line_file("/proc/self/loginuid", &p); -- if (r == -EEXIST) -+ if (r == -ENOENT) - return 0; - if (r < 0) { - log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); --- -1.7.9.2 - diff --git a/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch deleted file mode 100644 index a98660ec..00000000 --- a/0018-Make-LSB-Skripts-know-about-Required-and-Should.patch +++ /dev/null @@ -1,68 +0,0 @@ -Should solve the problems of - - bug #858864 - LSB "+" dependencies aren't handled properly - bug #857204 - inssrv fails to enable rpcbind - The side effect is that RequiresOverridable= is used for the services - add behind Required-Start - bug #863217 - systemd overrides explicit admin request to disable a service - That is that in this version the Wants= for all services behind - Should-Start, X-Start-Before, and X-Stop-After is not used anymore - ---- - service.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - ---- systemd-208/src/core/service.c -+++ systemd-208/src/core/service.c 2014-02-21 14:44:59.066735478 +0000 -@@ -380,6 +380,8 @@ static int sysv_translate_facility(const - "remote_fs", SPECIAL_REMOTE_FS_TARGET, - "syslog", NULL, - "time", SPECIAL_TIME_SYNC_TARGET, -+ "all", SPECIAL_DEFAULT_TARGET, -+ "null", NULL, - }; - - unsigned i; -@@ -389,7 +391,7 @@ static int sysv_translate_facility(const - assert(name); - assert(_r); - -- n = *name == '$' ? name + 1 : name; -+ n = (*name == '$' || *name == '+') ? name + 1 : name; - - for (i = 0; i < ELEMENTSOF(table); i += 2) { - -@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic - startswith_no_case(t, "Should-Start:") || - startswith_no_case(t, "X-Start-Before:") || - startswith_no_case(t, "X-Start-After:")) { -+ UnitDependency d, e; - char *i, *w; - size_t z; - - state = LSB; -+ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER; -+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : _UNIT_DEPENDENCY_INVALID; - - FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) { - char *n, *m; -@@ -838,12 +843,18 @@ static int service_load_sysv_path(Servic - continue; - } - -+ if (*n == '+') -+ e = UNIT_WANTS; -+ - free(n); - - if (r == 0) - continue; - -- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true); -+ if (e != _UNIT_DEPENDENCY_INVALID) -+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); -+ else -+ r = unit_add_dependency_by_name(u, d, m, NULL, true); - - if (r < 0) - log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s", diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch index 89d79183..a545cf08 100644 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ b/0019-make-completion-smart-to-be-able-to-redirect.patch @@ -1,8 +1,45 @@ ---- systemd-208/shell-completion/bash/hostnamectl -+++ systemd-208/shell-completion/bash/hostnamectl 2014-01-17 14:27:16.183272019 +0000 +--- + shell-completion/bash/coredumpctl | 6 +++++- + shell-completion/bash/hostnamectl | 6 +++++- + shell-completion/bash/journalctl | 6 +++++- + shell-completion/bash/kernel-install | 13 ++++++++++++- + shell-completion/bash/localectl | 6 +++++- + shell-completion/bash/loginctl | 6 +++++- + shell-completion/bash/systemctl.in | 6 +++++- + shell-completion/bash/systemd-analyze | 6 +++++- + shell-completion/bash/systemd-run | 14 +++++++++++++- + shell-completion/bash/timedatectl | 6 +++++- + shell-completion/bash/udevadm | 6 +++++- + 11 files changed, 70 insertions(+), 11 deletions(-) + +Index: systemd/shell-completion/bash/coredumpctl +=================================================================== +--- systemd.orig/shell-completion/bash/coredumpctl ++++ systemd/shell-completion/bash/coredumpctl +@@ -44,6 +44,10 @@ _coredumpctl() { + [DUMP]='dump gdb' + ) + ++ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then ++ return 0 ++ fi ++ + if __contains_word "$prev" '--output -o'; then + comps=$( compgen -A file -- "$cur" ) + compopt -o filenames +@@ -82,4 +86,4 @@ _coredumpctl() { + return 0 + } + +-complete -F _coredumpctl coredumpctl ++complete -o default -o bashdefault -F _coredumpctl coredumpctl +Index: systemd/shell-completion/bash/hostnamectl +=================================================================== +--- systemd.orig/shell-completion/bash/hostnamectl ++++ systemd/shell-completion/bash/hostnamectl @@ -30,6 +30,10 @@ _hostnamectl() { local OPTS='-h --help --version --transient --static --pretty - --no-ask-password -H --host' + --no-ask-password -H --host --machine' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -11,16 +48,18 @@ if [[ $cur = -* ]]; then COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) return 0 -@@ -58,4 +62,4 @@ _hostnamectl() { +@@ -61,4 +65,4 @@ _hostnamectl() { return 0 } -complete -F _hostnamectl hostnamectl +complete -o default -o bashdefault -F _hostnamectl hostnamectl ---- systemd-208/shell-completion/bash/journalctl -+++ systemd-208/shell-completion/bash/journalctl 2014-01-17 14:34:30.338737694 +0000 -@@ -49,6 +49,10 @@ _journalctl() { - --verify-key' +Index: systemd/shell-completion/bash/journalctl +=================================================================== +--- systemd.orig/shell-completion/bash/journalctl ++++ systemd/shell-completion/bash/journalctl +@@ -55,6 +55,10 @@ _journalctl() { + --root --machine' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -30,14 +69,16 @@ if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then case $prev in --boot|--this-boot|-b) -@@ -107,4 +111,4 @@ _journalctl() { +@@ -120,4 +124,4 @@ _journalctl() { fi } -complete -F _journalctl journalctl +complete -o default -o bashdefault -F _journalctl journalctl ---- systemd-208/shell-completion/bash/kernel-install -+++ systemd-208/shell-completion/bash/kernel-install 2014-01-17 14:34:41.982255874 +0000 +Index: systemd/shell-completion/bash/kernel-install +=================================================================== +--- systemd.orig/shell-completion/bash/kernel-install ++++ systemd/shell-completion/bash/kernel-install @@ -18,11 +18,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -67,11 +108,13 @@ -complete -F _kernel_install kernel-install +complete -o default -o bashdefault -F _kernel_install kernel-install ---- systemd-208/shell-completion/bash/localectl -+++ systemd-208/shell-completion/bash/localectl 2014-01-17 14:34:52.546235747 +0000 -@@ -30,6 +30,10 @@ _localectl() { +Index: systemd/shell-completion/bash/localectl +=================================================================== +--- systemd.orig/shell-completion/bash/localectl ++++ systemd/shell-completion/bash/localectl +@@ -36,6 +36,10 @@ _localectl() { local OPTS='-h --help --version --no-convert --no-pager --no-ask-password - -H --host' + -H --host --machine' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -80,17 +123,19 @@ if __contains_word "$prev" $OPTS; then case $prev in --host|-H) -@@ -73,4 +77,4 @@ _localectl() { +@@ -89,4 +93,4 @@ _localectl() { return 0 } -complete -F _localectl localectl +complete -o default -o bashdefault -F _localectl localectl ---- systemd-208/shell-completion/bash/loginctl -+++ systemd-208/shell-completion/bash/loginctl 2014-01-17 14:35:03.386245699 +0000 -@@ -37,6 +37,10 @@ _loginctl () { - [ARG]='--host -H --kill-who --property -p --signal -s' - ) +Index: systemd/shell-completion/bash/loginctl +=================================================================== +--- systemd.orig/shell-completion/bash/loginctl ++++ systemd/shell-completion/bash/loginctl +@@ -38,6 +38,10 @@ _loginctl () { + [ARG]='--host -H --kill-who --property -p --signal -s --machine' + ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -99,15 +144,17 @@ if __contains_word "$prev" ${OPTS[ARG]}; then case $prev in --signal|-s) -@@ -106,4 +110,4 @@ _loginctl () { +@@ -107,4 +111,4 @@ _loginctl () { return 0 } -complete -F _loginctl loginctl +complete -o default -o bashdefault -F _loginctl loginctl ---- systemd-208/shell-completion/bash/systemctl -+++ systemd-208/shell-completion/bash/systemctl 2014-01-17 14:35:26.506235666 +0000 -@@ -77,6 +77,10 @@ _systemctl () { +Index: systemd/shell-completion/bash/systemctl.in +=================================================================== +--- systemd.orig/shell-completion/bash/systemctl.in ++++ systemd/shell-completion/bash/systemctl.in +@@ -96,6 +96,10 @@ _systemctl () { [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' ) @@ -118,16 +165,18 @@ if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user else -@@ -226,4 +230,4 @@ _systemctl () { +@@ -264,4 +268,4 @@ _systemctl () { return 0 } -complete -F _systemctl systemctl +complete -o default -o bashdefault -F _systemctl systemctl ---- systemd-208/shell-completion/bash/systemd-analyze -+++ systemd-208/shell-completion/bash/systemd-analyze 2014-01-17 14:35:38.366736021 +0000 -@@ -37,6 +37,10 @@ _systemd_analyze() { - [LOG_LEVEL]='set-log-level' +Index: systemd/shell-completion/bash/systemd-analyze +=================================================================== +--- systemd.orig/shell-completion/bash/systemd-analyze ++++ systemd/shell-completion/bash/systemd-analyze +@@ -47,6 +47,10 @@ _systemd_analyze() { + [VERIFY]='verify' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -137,33 +186,16 @@ _init_completion || return for ((i=0; i < COMP_CWORD; i++)); do -@@ -83,4 +87,4 @@ _systemd_analyze() { +@@ -114,4 +118,4 @@ _systemd_analyze() { return 0 } -complete -F _systemd_analyze systemd-analyze +complete -o default -o bashdefault -F _systemd_analyze systemd-analyze ---- systemd-208/shell-completion/bash/systemd-coredumpctl -+++ systemd-208/shell-completion/bash/systemd-coredumpctl 2014-01-17 14:35:46.434235632 +0000 -@@ -44,6 +44,10 @@ _coredumpctl() { - [DUMP]='dump gdb' - ) - -+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then -+ return 0 -+ fi -+ - if __contains_word "$prev" '--output -o'; then - comps=$( compgen -A file -- "$cur" ) - compopt -o filenames -@@ -82,4 +86,4 @@ _coredumpctl() { - return 0 - } - --complete -F _coredumpctl systemd-coredumpctl -+complete -o default -o bashdefault -F _coredumpctl systemd-coredumpctl ---- systemd-208/shell-completion/bash/systemd-run -+++ systemd-208/shell-completion/bash/systemd-run 2014-01-17 14:35:55.938236298 +0000 +Index: systemd/shell-completion/bash/systemd-run +=================================================================== +--- systemd.orig/shell-completion/bash/systemd-run ++++ systemd/shell-completion/bash/systemd-run @@ -17,6 +17,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -178,7 +210,7 @@ __systemctl() { local mode=$1; shift 1 systemctl $mode --full --no-legend "$@" -@@ -31,6 +38,11 @@ _systemd_run() { +@@ -38,6 +45,11 @@ _systemd_run() { local mode=--system local i @@ -190,17 +222,19 @@ for (( i=1; i <= COMP_CWORD; i++ )); do if [[ ${COMP_WORDS[i]} != -* ]]; then local root_command=${COMP_WORDS[i]} -@@ -60,4 +72,4 @@ _systemd_run() { +@@ -98,4 +110,4 @@ _systemd_run() { return 0 } -complete -F _systemd_run systemd-run +complete -o default -o bashdefault -F _systemd_run systemd-run ---- systemd-208/shell-completion/bash/timedatectl -+++ systemd-208/shell-completion/bash/timedatectl 2014-01-17 14:36:06.182735466 +0000 +Index: systemd/shell-completion/bash/timedatectl +=================================================================== +--- systemd.orig/shell-completion/bash/timedatectl ++++ systemd/shell-completion/bash/timedatectl @@ -30,6 +30,10 @@ _timedatectl() { local OPTS='-h --help --version --adjust-system-clock --no-pager - --no-ask-password -H --host' + --no-ask-password -H --host --machine' + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then + return 0 @@ -215,8 +249,10 @@ -complete -F _timedatectl timedatectl +complete -o default -o bashdefault -F _timedatectl timedatectl ---- systemd-208/shell-completion/bash/udevadm -+++ systemd-208/shell-completion/bash/udevadm 2014-01-17 14:36:16.406236120 +0000 +Index: systemd/shell-completion/bash/udevadm +=================================================================== +--- systemd.orig/shell-completion/bash/udevadm ++++ systemd/shell-completion/bash/udevadm @@ -36,6 +36,10 @@ _udevadm() { local verbs=(info trigger settle control monitor hwdb test-builtin test) diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch index 58bb7b25..b4bc2d07 100644 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -22,14 +22,14 @@ References: bnc#770910,FATE#317063 Signed-off-by: Robert Milasan Signed-off-by: Hannes Reinecke --- - src/udev/udev-builtin-path_id.c | 53 +++++++++++++++++++++++++++++++---------- + src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 12 deletions(-) -diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c -index 0599980..fbd3fda 100644 ---- a/src/udev/udev-builtin-path_id.c -+++ b/src/udev/udev-builtin-path_id.c -@@ -339,6 +339,46 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * +Index: systemd-218/src/udev/udev-builtin-path_id.c +=================================================================== +--- systemd-218.orig/src/udev/udev-builtin-path_id.c ++++ systemd-218/src/udev/udev-builtin-path_id.c +@@ -426,6 +426,46 @@ static struct udev_device *handle_scsi_h return parent; } @@ -73,10 +73,10 @@ index 0599980..fbd3fda 100644 + return hostdev; +} + - static struct udev_device *handle_scsi(struct udev_device *parent, char **path) - { + static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) { const char *devtype; -@@ -375,19 +415,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) + const char *name; +@@ -465,19 +505,8 @@ static struct udev_device *handle_scsi(s goto out; } @@ -97,6 +97,3 @@ index 0599980..fbd3fda 100644 goto out; } --- -1.8.1.4 - diff --git a/1003-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch index 93756c5a..eee1415f 100644 --- a/1003-udev-netlink-null-rules.patch +++ b/1003-udev-netlink-null-rules.patch @@ -4,17 +4,19 @@ Subject: udev netlink null rules udevd race for netlink events (bnc#774646) --- - src/udev/udevd.c | 2 ++ + src/udev/udevd.c | 2 ++ 1 file changed, 2 insertions(+) ---- systemd-206.orig/src/udev/udevd.c -+++ systemd-206/src/udev/udevd.c -@@ -1337,6 +1337,8 @@ int main(int argc, char *argv[]) +Index: systemd-218/src/udev/udevd.c +=================================================================== +--- systemd-218.orig/src/udev/udevd.c ++++ systemd-218/src/udev/udevd.c +@@ -1468,6 +1468,8 @@ int main(int argc, char *argv[]) { dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); + if (rules == NULL) -+ rules = udev_rules_new(udev, resolve_names); ++ rules = udev_rules_new(udev, arg_resolve_names); if (event_queue_insert(dev) < 0) udev_device_unref(dev); } diff --git a/1005-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch index e70b5758..85abb1f7 100644 --- a/1005-create-default-links-for-primary-cd_dvd-drive.patch +++ b/1005-create-default-links-for-primary-cd_dvd-drive.patch @@ -4,14 +4,16 @@ Subject: create default links for primary cd_dvd drive cdrom_id: created links for the default cd/dvd drive (bnc#783054). --- - rules/60-cdrom_id.rules | 5 ++++- + rules/60-cdrom_id.rules | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ---- systemd-206.orig/rules/60-cdrom_id.rules -+++ systemd-206/rules/60-cdrom_id.rules -@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr - # enable the receiving of media eject button events - IMPORT{program}="cdrom_id --lock-media $devnode" +Index: systemd/rules/60-cdrom_id.rules +=================================================================== +--- systemd.orig/rules/60-cdrom_id.rules ++++ systemd/rules/60-cdrom_id.rules +@@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $ + # stale mounts after ejecting + ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0" -KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" +KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index eb98cc2f..f838b9ac 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -9,15 +9,17 @@ Date: Tue, 4 Mar 2014 10:29:21 +0000 Port the patch of Robert to systemd v210 and test it out. --- - udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 38 insertions(+), 4 deletions(-) + src/udev/udev-event.c | 41 +++++++++++++++++++++++++++++++++++++---- + 1 file changed, 37 insertions(+), 4 deletions(-) ---- systemd-210/src/udev/udev-event.c -+++ systemd-210/src/udev/udev-event.c 2014-03-27 13:19:06.727748307 +0000 -@@ -750,8 +750,9 @@ static int rename_netif(struct udev_even +Index: systemd-218/src/udev/udev-event.c +=================================================================== +--- systemd-218.orig/src/udev/udev-event.c ++++ systemd-218/src/udev/udev-event.c +@@ -767,20 +767,53 @@ out: + static int rename_netif(struct udev_event *event) { struct udev_device *dev = event->dev; - _cleanup_rtnl_unref_ sd_rtnl *rtnl = NULL; char name[IFNAMSIZ]; + char interim[IFNAMSIZ], *ptr = &interim[0]; const char *oldname; @@ -26,43 +28,40 @@ Port the patch of Robert to systemd v210 and test it out. oldname = udev_device_get_sysname(dev); -@@ -765,12 +766,45 @@ static int rename_netif(struct udev_even - return r; + strscpy(name, IFNAMSIZ, event->name); - r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); + r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); - if (r < 0) + if (r == 0) { -+ print_kmsg("renamed network interface %s to %s\n", oldname, name); ++ log_info("renamed network interface %s to %s\n", oldname, name); + return r; + } else if (r != -EEXIST) { - log_error("error changing net interface name %s to %s: %s", - oldname, name, strerror(-r)); -- else -- print_kmsg("renamed network interface %s to %s", oldname, name); -+ return r; -+ } -+ + return log_error_errno(r, "Error changing net interface name '%s' to '%s': %m", oldname, name); ++ } + +- log_debug("renamed network interface '%s' to '%s'", oldname, name); + /* free our own name, another process may wait for us */ + strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); -+ -+ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); + +- return 0; ++ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), interim); + if (r < 0) { + log_error("error changing net interface name %s to %s: %s", + oldname, interim, strerror(-r)); + return r; + } - ++ + /* log temporary name */ -+ print_kmsg("renamed network interface %s to %s\n", oldname, interim); ++ log_info("renamed network interface %s to %s\n", oldname, interim); + + loop = 90 * 20; + while (loop--) { + const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; + nanosleep(&duration, NULL); + -+ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); ++ r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name); + if (r == 0) { -+ print_kmsg("renamed network interface %s to %s\n", interim, name); ++ log_info("renamed network interface %s to %s\n", interim, name); + break; + } + @@ -72,6 +71,7 @@ Port the patch of Robert to systemd v210 and test it out. + break; + } + } - return r; ++ return r; } + void udev_event_execute_rules(struct udev_event *event, diff --git a/1008-add-msft-compability-rules.patch b/1008-add-msft-compability-rules.patch deleted file mode 100644 index d0117371..00000000 --- a/1008-add-msft-compability-rules.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- systemd-206.orig/Makefile.am -+++ systemd-206/Makefile.am -@@ -2484,6 +2484,10 @@ dist_udevrules_DATA += \ - rules/80-hotplug-cpu-mem.rules - - # ------------------------------------------------------------------------------ -+dist_udevrules_DATA += \ -+ rules/61-msft.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ ---- /dev/null -+++ systemd-206/rules/61-msft.rules -@@ -0,0 +1,9 @@ -+# MSFT compability rules -+ACTION!="add|change", GOTO="msft_end" -+ -+ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_IDENT_*" -+KERNEL=="sd*[!0-9]|sr*", ENV{SCSI_IDENT_LUN_T10}!="?*", IMPORT{program}="/usr/bin/sg_inq -p di --export $tempnode" -+KERNEL=="sd*|sr*", ENV{DEVTYPE}=="disk", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}" -+KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{SCSI_IDENT_LUN_T10}=="?*", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}-part%n" -+ -+LABEL="msft_end" diff --git a/1009-cdrom_id-use-the-old-MMC-fallback.patch b/1009-cdrom_id-use-the-old-MMC-fallback.patch deleted file mode 100644 index ada9292f..00000000 --- a/1009-cdrom_id-use-the-old-MMC-fallback.patch +++ /dev/null @@ -1,54 +0,0 @@ -From a14f14976094650e17d39f3a7d15a1c68c93c333 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Thu, 27 Feb 2014 11:06:37 +0100 -Subject: [PATCH] cdrom_id: use the old MMC fallback - -https://bugzilla.redhat.com/show_bug.cgi?id=1038015 -The problem seems to be that the your virtual DVD is emulating a really -old DVD device, and doing it kind of strangely. - -> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 -> probing: '/dev/sr0' -> INQUIRY: [IMM ][Virtual CD/DVD ][0316] -> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h - -So your virtual drive rejects the GET CONFIGURATION command as illegal. - -Other pre-MMC2 drives that don't accept this command usually return the -error -SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id -tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set -and all the /dev/disk/by-label (etc) links get set up. - -The virtual drive returns the error SK=5h,ASC=24h (invalid field in -Command Descriptor Block), which cdrom_id doesn't handle, so it gives up -and the links never get made. - -The ideal solution would be to make the IMM to emulate a device that's -less than 15 years old, but I'm not going to hold my breath waiting for -that. - -So probably cdrom_id should also use the old MMC fallback when the error -is SK=5h,ASC=24h, and then all of this would work as expected. - -Suggested-by:Luca Miccini ---- - src/udev/cdrom_id/cdrom_id.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/cdrom_id/cdrom_id.c src/udev/cdrom_id/cdrom_id.c -index 93467c2..33b2bc3 100644 ---- a/src/udev/cdrom_id/cdrom_id.c -+++ b/src/udev/cdrom_id/cdrom_id.c -@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) - if ((err != 0)) { - info_scsi_cmd_err(udev, "GET CONFIGURATION", err); - /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ -- if (SK(err) == 0x5 && ASC(err) == 0x20) { -+ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { - log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); - log_debug("trying to work around the problem"); - ret = cd_profiles_old_mmc(udev, fd); --- -1.7.9.2 - diff --git a/1010-udev-increase-result-size-for-programs.patch b/1010-udev-increase-result-size-for-programs.patch deleted file mode 100644 index 7eb2ea72..00000000 --- a/1010-udev-increase-result-size-for-programs.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: systemd-210/src/udev/udev-rules.c -=================================================================== ---- systemd-210.orig/src/udev/udev-rules.c -+++ systemd-210/src/udev/udev-rules.c -@@ -2027,7 +2027,7 @@ int udev_rules_apply_to_event(struct ude - case TK_M_PROGRAM: { - char program[UTIL_PATH_SIZE]; - char **envp; -- char result[UTIL_PATH_SIZE]; -+ char result[UTIL_LINE_SIZE]; - - free(event->program_result); - event->program_result = NULL; diff --git a/1014-udev-update-net_id-comments.patch b/1014-udev-update-net_id-comments.patch deleted file mode 100644 index 6b0b7f5a..00000000 --- a/1014-udev-update-net_id-comments.patch +++ /dev/null @@ -1,102 +0,0 @@ -From d4b687c96adf207f0878aebf3ce3371f6160687f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 27 Mar 2014 15:30:09 +0100 -Subject: [PATCH] udev: update net_id comments - -Signed-off-by: Robert Milasan ---- - src/udev/udev-builtin-net_id.c | 31 +++++++++++++++---------------- - 1 file changed, 15 insertions(+), 16 deletions(-) - -diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c -index 4f2b2c1..9ac07de 100644 ---- a/src/udev/udev-builtin-net_id.c -+++ b/src/udev/udev-builtin-net_id.c -@@ -33,8 +33,11 @@ - * ww -- wwan - * - * Type of names: -+ * b -- BCMA bus core number -+ * ccw -- CCW bus group name - * o -- on-board device index number - * s[f][d] -- hotplug slot index number -+ * v -- virtio number - * x -- MAC address - * [P]ps[f][d] - * -- PCI geographical location -@@ -119,12 +122,9 @@ struct netnames { - const char *pci_onboard_label; - - char usb_ports[IFNAMSIZ]; -- - char bcma_core[IFNAMSIZ]; -- -- char virtio_core[IFNAMSIZ]; -- -- char ccw_core[IFNAMSIZ]; -+ char virtio[IFNAMSIZ]; -+ char ccw_group[IFNAMSIZ]; - }; - - /* retrieve on-board index number and label from firmware */ -@@ -353,18 +353,17 @@ static int names_bcma(struct udev_device *dev, struct netnames *names) { - - static int names_virtio(struct udev_device *dev, struct netnames *names) { - struct udev_device *virtdev; -- unsigned int core; -+ unsigned int num; - - virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); - if (!virtdev) - return -ENOENT; - -- /* core num */ -- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1) -+ if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) - return -EINVAL; -- /* suppress the common core == 0 */ -- if (core > 0) -- snprintf(names->virtio_core, sizeof(names->virtio_core), "v%u", core); -+ /* suppress the common num == 0 */ -+ if (num > 0) -+ snprintf(names->virtio, sizeof(names->virtio), "v%u", num); - - names->type = NET_VIRTIO; - return 0; -@@ -402,8 +401,8 @@ static int names_ccw(struct udev_device *dev, struct netnames *names) { - return -EINVAL; - - /* Store the CCW bus-ID for use as network device name */ -- rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", bus_id); -- if (rc >= 0 && rc < (int)sizeof(names->ccw_core)) -+ rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id); -+ if (rc >= 0 && rc < (int)sizeof(names->ccw_group)) - names->type = NET_CCWGROUP; - return 0; - } -@@ -517,7 +516,7 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool - if (err >= 0 && names.type == NET_CCWGROUP) { - char str[IFNAMSIZ]; - -- if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); - goto out; - } -@@ -585,11 +584,11 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool - char str[IFNAMSIZ]; - - if (names.pci_path[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); - - if (names.pci_slot[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio_core) < (int)sizeof(str)) -+ if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) - udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); - goto out; - } --- -1.8.4.5 - diff --git a/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch b/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch deleted file mode 100644 index a5e9c58f..00000000 --- a/1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch +++ /dev/null @@ -1,99 +0,0 @@ -From bf81e792f3c0aed54edf004c1c95cc6f6d81d0ee Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 27 Mar 2014 21:47:14 +0100 -Subject: [PATCH] udev: persistent naming - we cannot use virtio numbers as - they are not stable - -This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk support to path_id' and -commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio buses'. - -Distros may want to take note of this, as it changes behavior. - -Signed-off-by: Robert Milasan ---- - src/udev/udev-builtin-net_id.c | 36 ------------------------------------ - src/udev/udev-builtin-path_id.c | 3 --- - 2 files changed, 39 deletions(-) - -Index: systemd-210/src/udev/udev-builtin-net_id.c -=================================================================== ---- systemd-210.orig/src/udev/udev-builtin-net_id.c -+++ systemd-210/src/udev/udev-builtin-net_id.c -@@ -37,7 +37,6 @@ - * ccw -- CCW bus group name - * o -- on-board device index number - * s[f][d] -- hotplug slot index number -- * v -- virtio number - * x -- MAC address - * [P]ps[f][d] - * -- PCI geographical location -@@ -123,7 +122,6 @@ struct netnames { - - char usb_ports[IFNAMSIZ]; - char bcma_core[IFNAMSIZ]; -- char virtio[IFNAMSIZ]; - char ccw_group[IFNAMSIZ]; - }; - -@@ -351,24 +349,6 @@ static int names_bcma(struct udev_device - return 0; - } - --static int names_virtio(struct udev_device *dev, struct netnames *names) { -- struct udev_device *virtdev; -- unsigned int num; -- -- virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL); -- if (!virtdev) -- return -ENOENT; -- -- if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1) -- return -EINVAL; -- /* suppress the common num == 0 */ -- if (num > 0) -- snprintf(names->virtio, sizeof(names->virtio), "v%u", num); -- -- names->type = NET_VIRTIO; -- return 0; --} -- - static int names_ccw(struct udev_device *dev, struct netnames *names) { - struct udev_device *cdev; - const char *bus_id; -@@ -577,22 +557,6 @@ static int builtin_net_id(struct udev_de - udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); - goto out; - } -- -- /* virtio bus */ -- err = names_virtio(dev, &names); -- if (err >= 0 && names.type == NET_VIRTIO) { -- char str[IFNAMSIZ]; -- -- if (names.pci_path[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str)) -- udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str); -- -- if (names.pci_slot[0]) -- if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str)) -- udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str); -- goto out; -- } -- - out: - return EXIT_SUCCESS; - } -Index: systemd-210/src/udev/udev-builtin-path_id.c -=================================================================== ---- systemd-210.orig/src/udev/udev-builtin-path_id.c -+++ systemd-210/src/udev/udev-builtin-path_id.c -@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d - } else if (streq(subsys, "xen")) { - path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "xen"); -- } else if (streq(subsys, "virtio")) { -- path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent)); -- parent = skip_subsystem(parent, "virtio"); - } else if (streq(subsys, "scm")) { - path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "scm"); diff --git a/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch b/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch deleted file mode 100644 index fcf5f374..00000000 --- a/1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch +++ /dev/null @@ -1,30 +0,0 @@ -Based on e6c474723dc66cd4765fd09453d6b48bd5905ba4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 20 Apr 2014 13:57:26 -0400 -Subject: [PATCH] udev: warn when name_to_handle_at is not implemented - -We have a bunch of reports from people who have a custom kernel and -are confused why udev is not running. Issue a warning on -error. Barring an error in the code, the only error that is possible -is ENOSYS. - -https://bugzilla.redhat.com/show_bug.cgi?id=1072966 ---- - src/libudev/libudev-monitor.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- src/libudev/libudev-monitor.c -+++ src/libudev/libudev-monitor.c 2014-05-12 00:00:00.000000000 +0000 -@@ -115,8 +115,11 @@ static bool udev_has_devtmpfs(struct ude - int r; - - r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0); -- if (r < 0) -+ if (r < 0) { -+ if (errno != EOPNOTSUPP) -+ udev_err(udev, "name_to_handle_at on /dev: %m\n"); - return false; -+ } - - - f = fopen("/proc/self/mountinfo", "re"); diff --git a/1017-udev-serialize-synchronize-block-device-event-handli.patch b/1017-udev-serialize-synchronize-block-device-event-handli.patch deleted file mode 100644 index 559c0bc3..00000000 --- a/1017-udev-serialize-synchronize-block-device-event-handli.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 3ebdb81ef088afd3b4c72b516beb5610f8c93a0d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sun, 13 Apr 2014 19:54:27 -0700 -Subject: [PATCH] udev: serialize/synchronize block device event handling with - file locks - ---- - src/udev/udevd.c | 33 +++++++++++++++++++++++++++++++-- - 1 file changed, 31 insertions(+), 2 deletions(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index f9ee368..aecd208 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -265,6 +266,7 @@ static void worker_new(struct event *event) - for (;;) { - struct udev_event *udev_event; - struct worker_message msg; -+ int fd_lock = -1; - int err; - - log_debug("seq %llu running", udev_device_get_seqnum(dev)); -@@ -280,6 +282,30 @@ static void worker_new(struct event *event) - if (exec_delay > 0) - udev_event->exec_delay = exec_delay; - -+ /* -+ * Take a "read lock" on the device node; this establishes -+ * a concept of device "ownership" to serialize device -+ * access. External processes holding a "write lock" will -+ * cause udev to skip the event handling; in the case udev -+ * acquired the lock, the external process will block until -+ * udev has finished its event handling. -+ */ -+ if (streq_ptr("block", udev_device_get_subsystem(dev))) { -+ struct udev_device *d = dev; -+ -+ if (streq_ptr("partition", udev_device_get_devtype(d))) -+ d = udev_device_get_parent(d); -+ -+ if (d) { -+ fd_lock = open(udev_device_get_devnode(d), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { -+ log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); -+ err = -EWOULDBLOCK; -+ goto skip; -+ } -+ } -+ } -+ - /* apply rules, create node, symlinks */ - err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); - -@@ -292,13 +318,16 @@ static void worker_new(struct event *event) - udev_device_update_db(dev); - } - -+ if (fd_lock >= 0) -+ close(fd_lock); -+ - /* send processed event back to libudev listeners */ - udev_monitor_send_device(worker_monitor, NULL, dev); - -+skip: - /* send udevd the result of the event execution */ - memzero(&msg, sizeof(struct worker_message)); -- if (err != 0) -- msg.exitcode = err; -+ msg.exitcode = err; - msg.pid = getpid(); - send(worker_watch[WRITE_END], &msg, sizeof(struct worker_message), 0); - --- -1.7.9.2 - diff --git a/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch b/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch deleted file mode 100644 index e3bd7286..00000000 --- a/1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 1ea972174baba40dbc80c51cbfc4edc49764b59b Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 14 May 2014 00:34:49 +0200 -Subject: [PATCH] udev: do not skip the execution of RUN when renaming a - network device fails - ---- - src/test/test-udev.c | 5 ++--- - src/udev/udev-event.c | 11 +++++------ - src/udev/udev.h | 2 +- - src/udev/udevadm-test.c | 13 +++++-------- - src/udev/udevd.c | 5 ++--- - 5 files changed, 15 insertions(+), 21 deletions(-) - -diff --git src/test/test-udev.c src/test/test-udev.c -index b064744..b057cc8 100644 ---- src/test/test-udev.c -+++ src/test/test-udev.c -@@ -155,9 +155,8 @@ int main(int argc, char *argv[]) { - } - } - -- err = udev_event_execute_rules(event, rules, &sigmask_orig); -- if (err == 0) -- udev_event_execute_run(event, NULL); -+ udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_run(event, 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 2cab42b..5213a4a 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -776,13 +776,12 @@ static int rename_netif(struct udev_event *event) - return r; - } - --int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) -+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) - { - struct udev_device *dev = event->dev; -- int err = 0; - - if (udev_device_get_subsystem(dev) == NULL) -- return -1; -+ return; - - if (streq(udev_device_get_action(dev), "remove")) { - udev_device_read_db(dev, NULL); -@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, - event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) { - char syspath[UTIL_PATH_SIZE]; - char *pos; -+ int r; - -- err = rename_netif(event); -- if (err == 0) { -+ r = rename_netif(event); -+ if (r >= 0) { - log_debug("renamed netif to '%s'", event->name); - - /* remember old name */ -@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, - udev_device_unref(event->dev_db); - event->dev_db = NULL; - } -- return err; - } - - void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) -diff --git src/udev/udev.h src/udev/udev.h -index 936adfb..62538bc 100644 ---- src/udev/udev.h -+++ src/udev/udev.h -@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string, - int udev_event_spawn(struct udev_event *event, - const char *cmd, char **envp, const sigset_t *sigmask, - char *result, size_t ressize); --int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); -+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); - void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); - int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); - -diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c -index 6cd311b..6a2f548 100644 ---- src/udev/udevadm-test.c -+++ src/udev/udevadm-test.c -@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - _cleanup_udev_device_unref_ struct udev_device *dev = NULL; - _cleanup_udev_event_unref_ struct udev_event *event = NULL; - sigset_t mask, sigmask_orig; -- int err; - int rc = 0, c; - - static const struct option options[] = { -@@ -139,18 +138,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - goto out; - } - -- err = udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 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)); - -- if (err == 0) { -- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { -- char program[UTIL_PATH_SIZE]; -+ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { -+ char program[UTIL_PATH_SIZE]; - -- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); -- printf("run: '%s'\n", program); -- } -+ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program)); -+ printf("run: '%s'\n", program); - } - out: - if (event != NULL && event->fd_signal >= 0) -diff --git src/udev/udevd.c src/udev/udevd.c -index aecd208..bc0696c 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -307,10 +307,9 @@ static void worker_new(struct event *event) - } - - /* apply rules, create node, symlinks */ -- err = udev_event_execute_rules(udev_event, rules, &sigmask_orig); -+ udev_event_execute_rules(udev_event, rules, &sigmask_orig); - -- if (err == 0) -- udev_event_execute_run(udev_event, &sigmask_orig); -+ udev_event_execute_run(udev_event, &sigmask_orig); - - /* apply/restore inotify watch */ - if (err == 0 && udev_event->inotify_watch) { --- -1.7.9.2 - diff --git a/1019-udev-avoid-use-of-uninitialized-err.patch b/1019-udev-avoid-use-of-uninitialized-err.patch deleted file mode 100644 index c520436e..00000000 --- a/1019-udev-avoid-use-of-uninitialized-err.patch +++ /dev/null @@ -1,37 +0,0 @@ -From bf9bead187802a52a1f376a03caee762d663e945 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 16 May 2014 23:46:48 +0200 -Subject: [PATCH] udev: avoid use of uninitialized err - -After 1ea972174baba40dbc80c51cbfc4edc49764b59b err is no longer -set unless we hit a special case. Initialize it to 0 and remove -a check that will never fail. ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index bc0696c..1c9488e 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -267,7 +267,7 @@ static void worker_new(struct event *event) - struct udev_event *udev_event; - struct worker_message msg; - int fd_lock = -1; -- int err; -+ int err = 0; - - log_debug("seq %llu running", udev_device_get_seqnum(dev)); - udev_event = udev_event_new(dev); -@@ -312,7 +312,7 @@ static void worker_new(struct event *event) - udev_event_execute_run(udev_event, &sigmask_orig); - - /* apply/restore inotify watch */ -- if (err == 0 && udev_event->inotify_watch) { -+ if (udev_event->inotify_watch) { - udev_watch_begin(udev, dev); - udev_device_update_db(dev); - } --- -1.7.9.2 - diff --git a/1020-udev-keyboard-also-hook-into-change-events.patch b/1020-udev-keyboard-also-hook-into-change-events.patch deleted file mode 100644 index 0d285973..00000000 --- a/1020-udev-keyboard-also-hook-into-change-events.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 49804365ea1242456c9763058a59cf68479e07ea Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 26 May 2014 09:30:21 +0800 -Subject: [PATCH] udev: keyboard - also hook into "change" events - -Re-apply the keymaps when "udevadm trigger" is called. Hooking into -"add" only would just remove all keymap content from the udev database -instead of applying the new config. ---- - rules/60-keyboard.rules | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git rules/60-keyboard.rules rules/60-keyboard.rules -index 4e0f366..22f71e7 100644 ---- rules/60-keyboard.rules -+++ rules/60-keyboard.rules -@@ -1,6 +1,6 @@ - # do not edit this file, it will be overwritten on update - --ACTION!="add", GOTO="keyboard_end" -+ACTION=="remove", GOTO="keyboard_end" - KERNEL!="event*", GOTO="keyboard_end" - ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" - --- -1.7.9.2 - diff --git a/1021-udev-re-add-persistent-net-rules.patch b/1021-udev-re-add-persistent-net-rules.patch index e8cd290c..5d21f1fe 100644 --- a/1021-udev-re-add-persistent-net-rules.patch +++ b/1021-udev-re-add-persistent-net-rules.patch @@ -1,7 +1,73 @@ -Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +--- + Makefile.am | 9 + src/udev/net/link-config.c | 17 + + src/udev/rule_generator/75-persistent-net-generator.rules | 105 ++++++++++ + src/udev/rule_generator/76-net-sriov-names.rules | 18 + + src/udev/rule_generator/net-set-sriov-names | 79 +++++++ + src/udev/rule_generator/rule_generator.functions | 113 +++++++++++ + src/udev/rule_generator/write_net_rules | 141 ++++++++++++++ + 7 files changed, 479 insertions(+), 3 deletions(-) + +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -3416,7 +3416,14 @@ dist_udevrules_DATA += \ + rules/75-tty-description.rules \ + rules/78-sound-card.rules \ + rules/80-net-setup-link.rules \ +- rules/95-udev-late.rules ++ rules/95-udev-late.rules \ ++ src/udev/rule_generator/75-persistent-net-generator.rules \ ++ src/udev/rule_generator/76-net-sriov-names.rules ++ ++udevlibexec_PROGRAMS += \ ++ src/udev/rule_generator/rule_generator.functions \ ++ src/udev/rule_generator/write_net_rules \ ++ src/udev/rule_generator/net-set-sriov-names + + nodist_udevrules_DATA += \ + rules/99-systemd.rules +Index: systemd-218/src/udev/net/link-config.c +=================================================================== +--- systemd-218.orig/src/udev/net/link-config.c ++++ systemd-218/src/udev/net/link-config.c +@@ -176,16 +176,29 @@ static bool enable_name_policy(void) { + size_t l; + + r = proc_cmdline(&line); +- if (r < 0) { ++ if (r < 0) + log_warning_errno(r, "Failed to read /proc/cmdline, ignoring: %m"); ++#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) ++# warning Using persistent rules as a default ++ if (r <= 0) ++ return false; ++ ++ FOREACH_WORD_QUOTED(w, l, line, state) ++ if (strneq(w, "net.ifnames=1", l)) ++ return true; ++ ++ return false; ++#else ++# warning Using predictable rules as a default ++ if (r <= 0) + return true; +- } + + FOREACH_WORD_QUOTED(word, l, line, state) + if (strneq(word, "net.ifnames=0", l)) + return false; + + return true; ++#endif + } + + int link_config_load(link_config_ctx *ctx) { +Index: systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules =================================================================== --- /dev/null -+++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules ++++ systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules @@ -0,0 +1,105 @@ +# do not edit this file, it will be overwritten on update + @@ -108,10 +174,117 @@ Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules +ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" + +LABEL="persistent_net_generator_end" -Index: systemd-210/src/udev/rule_generator/rule_generator.functions +Index: systemd-218/src/udev/rule_generator/76-net-sriov-names.rules =================================================================== --- /dev/null -+++ systemd-210/src/udev/rule_generator/rule_generator.functions ++++ systemd-218/src/udev/rule_generator/76-net-sriov-names.rules +@@ -0,0 +1,18 @@ ++# do not edit this file, it will be overwritten on update ++# ++# rename SRIOV virtual function interfaces ++ ++ACTION=="remove", GOTO="net-sriov-names_end" ++SUBSYSTEM!="net", GOTO="net-sriov-names_end" ++ ++IMPORT{cmdline}="net.ifnames" ++ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" ++ ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" ++SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" ++ ++# rename interface if needed ++ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" ++ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" ++ ++LABEL="net-sriov-names_end" +Index: systemd-218/src/udev/rule_generator/net-set-sriov-names +=================================================================== +--- /dev/null ++++ systemd-218/src/udev/rule_generator/net-set-sriov-names +@@ -0,0 +1,79 @@ ++#!/bin/bash -e ++# ++# This script is run to rename virtual interfaces ++# ++ ++if [ -n "$UDEV_LOG" ]; then ++ if [ "$UDEV_LOG" -ge 7 ]; then ++ set -x ++ fi ++fi ++ ++# according to dev_new_index(), ifindex is within [1, INT_MAX] ++int_max=$(/usr/bin/getconf INT_MAX) ++ifindex_before() { ++ a=$1 ++ b=$2 ++ ++ ((0 < (b - a) && (b - a) < int_max / 2 || ++ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) ++} ++ ++rename_interface() { ++ local src_net=$1 ++ local dest_net=$2 ++ local err=0 ++ ++ /sbin/ip link set dev $src_net down ++ /sbin/ip link set dev $src_net name $dest_net ++} ++ ++if [ -z "$INTERFACE" ]; then ++ echo "missing \$INTERFACE" >&2 ++ exit 1 ++fi ++ ++if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then ++ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") ++ if [ $(echo "$pf" | wc -l) -ne 1 ]; then ++ echo "too many pf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$INTERFACE/ifindex" ++ read pfindex < "/sys/class/net/$pf/ifindex" ++ if ifindex_before $pfindex $vfindex; then ++ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) ++ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do ++ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ echo "INTERFACE_NEW=$pf.vf$vfnum" ++ exit 0 ++ fi ++ done ++ fi ++fi ++ ++read pfindex < "/sys/class/net/$INTERFACE/ifindex" ++shopt -s nullglob ++for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do ++ vf=$(ls -1 "$virtfn/net") ++ if [ $(echo "$vf" | wc -l) -ne 1 ]; then ++ echo "too many vf's" >&2 ++ exit 1 ++ fi ++ read vfindex < "/sys/class/net/$vf/ifindex" ++ if ifindex_before $vfindex $pfindex; then ++ vfnum=$(basename "$virtfn") ++ vfnum=${vfnum#virtfn} ++ if [ "$INTERFACE_NEW" ]; then ++ new_name=$INTERFACE_NEW ++ else ++ new_name=$INTERFACE ++ fi ++ new_name="$new_name.vf$vfnum" ++ if [ "$vf" != "$new_name" ]; then ++ rename_interface "$vf" "$new_name" ++ fi ++ fi ++done +Index: systemd-218/src/udev/rule_generator/rule_generator.functions +=================================================================== +--- /dev/null ++++ systemd-218/src/udev/rule_generator/rule_generator.functions @@ -0,0 +1,113 @@ +# functions used by the udev rule generator + @@ -226,10 +399,10 @@ Index: systemd-210/src/udev/rule_generator/rule_generator.functions + $([ -e $RULES_FILE ] && echo $RULES_FILE) \ + 2>/dev/null) +} -Index: systemd-210/src/udev/rule_generator/write_net_rules +Index: systemd-218/src/udev/rule_generator/write_net_rules =================================================================== --- /dev/null -+++ systemd-210/src/udev/rule_generator/write_net_rules ++++ systemd-218/src/udev/rule_generator/write_net_rules @@ -0,0 +1,141 @@ +#!/bin/sh -e + @@ -372,161 +545,3 @@ Index: systemd-210/src/udev/rule_generator/write_net_rules +unlock_rules_file + +exit 0 -Index: systemd-210/Makefile.am -=================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2552,7 +2552,14 @@ dist_udevrules_DATA += \ - rules/75-tty-description.rules \ - rules/78-sound-card.rules \ - rules/80-net-setup-link.rules \ -- rules/95-udev-late.rules -+ rules/95-udev-late.rules \ -+ src/udev/rule_generator/75-persistent-net-generator.rules \ -+ src/udev/rule_generator/76-net-sriov-names.rules -+ -+udevlibexec_PROGRAMS += \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules \ -+ src/udev/rule_generator/net-set-sriov-names - - dist_udevhwdb_DATA = \ - hwdb/20-pci-vendor-model.hwdb \ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- /dev/null -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -0,0 +1,18 @@ -+# do not edit this file, it will be overwritten on update -+# -+# rename SRIOV virtual function interfaces -+ -+ACTION=="remove", GOTO="net-sriov-names_end" -+SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" -+ -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" -+ -+LABEL="net-sriov-names_end" -Index: systemd-210/src/udev/rule_generator/net-set-sriov-names -=================================================================== ---- /dev/null -+++ systemd-210/src/udev/rule_generator/net-set-sriov-names -@@ -0,0 +1,79 @@ -+#!/bin/bash -e -+# -+# This script is run to rename virtual interfaces -+# -+ -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+# according to dev_new_index(), ifindex is within [1, INT_MAX] -+int_max=$(/usr/bin/getconf INT_MAX) -+ifindex_before() { -+ a=$1 -+ b=$2 -+ -+ ((0 < (b - a) && (b - a) < int_max / 2 || -+ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) -+} -+ -+rename_interface() { -+ local src_net=$1 -+ local dest_net=$2 -+ local err=0 -+ -+ /sbin/ip link set dev $src_net down -+ /sbin/ip link set dev $src_net name $dest_net -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then -+ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") -+ if [ $(echo "$pf" | wc -l) -ne 1 ]; then -+ echo "too many pf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$INTERFACE/ifindex" -+ read pfindex < "/sys/class/net/$pf/ifindex" -+ if ifindex_before $pfindex $vfindex; then -+ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) -+ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do -+ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ echo "INTERFACE_NEW=$pf.vf$vfnum" -+ exit 0 -+ fi -+ done -+ fi -+fi -+ -+read pfindex < "/sys/class/net/$INTERFACE/ifindex" -+shopt -s nullglob -+for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do -+ vf=$(ls -1 "$virtfn/net") -+ if [ $(echo "$vf" | wc -l) -ne 1 ]; then -+ echo "too many vf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$vf/ifindex" -+ if ifindex_before $vfindex $pfindex; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ if [ "$INTERFACE_NEW" ]; then -+ new_name=$INTERFACE_NEW -+ else -+ new_name=$INTERFACE -+ fi -+ new_name="$new_name.vf$vfnum" -+ if [ "$vf" != "$new_name" ]; then -+ rename_interface "$vf" "$new_name" -+ fi -+ fi -+done -Index: systemd-210/src/udev/net/link-config.c -=================================================================== ---- systemd-210.orig/src/udev/net/link-config.c -+++ systemd-210/src/udev/net/link-config.c -@@ -193,6 +193,18 @@ static bool enable_name_policy(void) { - r = proc_cmdline(&line); - if (r < 0) - log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); -+#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) -+# warning Using persistent rules as a default -+ if (r <= 0) -+ return false; -+ -+ FOREACH_WORD_QUOTED(w, l, line, state) -+ if (strneq(w, "net.ifnames=1", l)) -+ return true; -+ -+ return false; -+#else -+# warning Using predictable rules as a default - if (r <= 0) - return true; - -@@ -201,6 +213,7 @@ static bool enable_name_policy(void) { - return false; - - return true; -+#endif - } - - int link_config_load(link_config_ctx *ctx) { diff --git a/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch b/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch deleted file mode 100644 index 39e385c0..00000000 --- a/1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch +++ /dev/null @@ -1,1445 +0,0 @@ -From 9ea28c55a2488e6cd4a44ac5786f12b71ad5bc9f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 12 Apr 2014 22:35:50 -0700 -Subject: [PATCH] udev: remove seqnum API and all assumptions about seqnums - -The way the kernel namespaces have been implemented breaks assumptions -udev made regarding uevent sequence numbers. Creating devices in a -namespace "steals" uevents and its sequence numbers from the host. It -confuses the "udevadmin settle" logic, which might block until util a -timeout is reached, even when no uevent is pending. - -Remove any assumptions about sequence numbers and deprecate libudev's -API exposing these numbers; none of that can reliably be used anymore -when namespaces are involved. ---- - Makefile.am | 6 +- - man/udevadm.xml | 22 -- - src/libudev/libudev-monitor.c | 17 +- - src/libudev/libudev-queue-private.c | 406 ----------------------------------- - src/libudev/libudev-queue.c | 302 ++------------------------ - src/libudev/libudev.h | 10 +- - src/shared/udev-util.h | 2 - - src/test/test-libudev.c | 24 --- - src/udev/udev-ctrl.c | 2 +- - src/udev/udevadm-settle.c | 131 ++--------- - src/udev/udevd.c | 59 +++-- - 11 files changed, 84 insertions(+), 897 deletions(-) - delete mode 100644 src/libudev/libudev-queue-private.c - -diff --git Makefile.am Makefile.am -index 5d84605..0ad1729 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2587,8 +2587,7 @@ noinst_LTLIBRARIES += \ - - libudev_internal_la_SOURCES =\ - $(libudev_la_SOURCES) \ -- src/libudev/libudev-device-private.c \ -- src/libudev/libudev-queue-private.c -+ src/libudev/libudev-device-private.c - - libudev_internal_la_CFLAGS = \ - $(AM_CFLAGS) \ -@@ -5169,6 +5168,9 @@ test_libsystemd_sym_LDADD = \ - - test_libudev_sym_SOURCES = \ - test-libudev-sym.c -+test_libudev_sym_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ -Wno-deprecated-declarations - test_libudev_sym_LDADD = \ - libudev.la - -diff --git man/udevadm.xml man/udevadm.xml -index 21d1443..fbfa85a 100644 ---- a/man/udevadm.xml -+++ b/man/udevadm.xml -@@ -339,21 +339,6 @@ - - - -- -- -- -- Wait only for events after the given sequence -- number. -- -- -- -- -- -- -- Wait only for events before the given sequence number. -- -- -- - - - -@@ -361,13 +346,6 @@ - - - -- -- -- -- Do not print any output, like the remaining queue entries when reaching the timeout. -- -- -- - - - -diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c -index ba1b04d..3f7436b 100644 ---- a/src/libudev/libudev-monitor.c -+++ b/src/libudev/libudev-monitor.c -@@ -146,21 +146,6 @@ static bool udev_has_devtmpfs(struct udev *udev) { - return false; - } - --/* we consider udev running when we have running udev service */ --static bool udev_has_service(struct udev *udev) { -- struct udev_queue *queue; -- bool active; -- -- queue = udev_queue_new(udev); -- if (!queue) -- return false; -- -- active = udev_queue_get_udev_is_active(queue); -- udev_queue_unref(queue); -- -- return active; --} -- - struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) - { - struct udev_monitor *udev_monitor; -@@ -184,7 +169,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c - * We do not set a netlink multicast group here, so the socket - * will not receive any messages. - */ -- if (!udev_has_service(udev) && !udev_has_devtmpfs(udev)) { -+ if (access("/run/udev/control", F_OK) < 0 && !udev_has_devtmpfs(udev)) { - udev_dbg(udev, "the udev service seems not to be active, disable the monitor\n"); - group = UDEV_MONITOR_NONE; - } else -diff --git src/libudev/libudev-queue-private.c src/libudev/libudev-queue-private.c -deleted file mode 100644 -index d5a2b50..0000000 ---- a/src/libudev/libudev-queue-private.c -+++ /dev/null -@@ -1,406 +0,0 @@ --/*** -- This file is part of systemd. -- -- Copyright 2008-2012 Kay Sievers -- Copyright 2009 Alan Jenkins -- -- systemd is free software; you can redistribute it and/or modify it -- under the terms of the GNU Lesser General Public License as published by -- the Free Software Foundation; either version 2.1 of the License, or -- (at your option) any later version. -- -- systemd 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 -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public License -- along with systemd; If not, see . --***/ -- --/* -- * DISCLAIMER - The file format mentioned here is private to udev/libudev, -- * and may be changed without notice. -- * -- * The udev event queue is exported as a binary log file. -- * Each log record consists of a sequence number followed by the device path. -- * -- * When a new event is queued, its details are appended to the log. -- * When the event finishes, a second record is appended to the log -- * with the same sequence number but a devpath len of 0. -- * -- * Example: -- * { 0x0000000000000001 } -- * { 0x0000000000000001, 0x0019, "/devices/virtual/mem/null" }, -- * { 0x0000000000000002, 0x001b, "/devices/virtual/mem/random" }, -- * { 0x0000000000000001, 0x0000 }, -- * { 0x0000000000000003, 0x0019, "/devices/virtual/mem/zero" }, -- * -- * Events 2 and 3 are still queued, but event 1 has finished. -- * -- * The queue does not grow indefinitely. It is periodically re-created -- * to remove finished events. Atomic rename() makes this transparent to readers. -- * -- * The queue file starts with a single sequence number which specifies the -- * minimum sequence number in the log that follows. Any events prior to this -- * sequence number have already finished. -- */ -- --#include --#include --#include --#include --#include --#include --#include --#include --#include --#include -- --#include "libudev.h" --#include "libudev-private.h" -- --static int rebuild_queue_file(struct udev_queue_export *udev_queue_export); -- --struct udev_queue_export { -- struct udev *udev; -- int queued_count; /* number of unfinished events exported in queue file */ -- FILE *queue_file; -- unsigned long long int seqnum_max; /* earliest sequence number in queue file */ -- unsigned long long int seqnum_min; /* latest sequence number in queue file */ -- int waste_bytes; /* queue file bytes wasted on finished events */ --}; -- --struct udev_queue_export *udev_queue_export_new(struct udev *udev) --{ -- struct udev_queue_export *udev_queue_export; -- unsigned long long int initial_seqnum; -- -- if (udev == NULL) -- return NULL; -- -- udev_queue_export = new0(struct udev_queue_export, 1); -- if (udev_queue_export == NULL) -- return NULL; -- udev_queue_export->udev = udev; -- -- initial_seqnum = udev_get_kernel_seqnum(udev); -- udev_queue_export->seqnum_min = initial_seqnum; -- udev_queue_export->seqnum_max = initial_seqnum; -- -- udev_queue_export_cleanup(udev_queue_export); -- if (rebuild_queue_file(udev_queue_export) != 0) { -- free(udev_queue_export); -- return NULL; -- } -- -- return udev_queue_export; --} -- --struct udev_queue_export *udev_queue_export_unref(struct udev_queue_export *udev_queue_export) --{ -- if (udev_queue_export == NULL) -- return NULL; -- if (udev_queue_export->queue_file != NULL) -- fclose(udev_queue_export->queue_file); -- free(udev_queue_export); -- return NULL; --} -- --void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export) --{ -- if (udev_queue_export == NULL) -- return; -- unlink("/run/udev/queue.tmp"); -- unlink("/run/udev/queue.bin"); --} -- --static int skip_to(FILE *file, long offset) --{ -- long old_offset; -- -- /* fseek may drop buffered data, avoid it for small seeks */ -- old_offset = ftell(file); -- if (offset > old_offset && offset - old_offset <= BUFSIZ) { -- size_t skip_bytes = offset - old_offset; -- char *buf = alloca(skip_bytes); -- -- if (fread(buf, skip_bytes, 1, file) != skip_bytes) -- return -1; -- } -- -- return fseek(file, offset, SEEK_SET); --} -- --struct queue_devpaths { -- unsigned int devpaths_first; /* index of first queued event */ -- unsigned int devpaths_size; -- long devpaths[]; /* seqnum -> offset of devpath in queue file (or 0) */ --}; -- --/* -- * Returns a table mapping seqnum to devpath file offset for currently queued events. -- * devpaths[i] represents the event with seqnum = i + udev_queue_export->seqnum_min. -- */ --static struct queue_devpaths *build_index(struct udev_queue_export *udev_queue_export) --{ -- struct queue_devpaths *devpaths; -- unsigned long long int range; -- long devpath_offset; -- ssize_t devpath_len; -- unsigned long long int seqnum; -- unsigned long long int n; -- unsigned int i; -- -- /* seek to the first event in the file */ -- rewind(udev_queue_export->queue_file); -- udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum); -- -- /* allocate the table */ -- range = udev_queue_export->seqnum_min - udev_queue_export->seqnum_max; -- if (range - 1 > INT_MAX) { -- udev_err(udev_queue_export->udev, "queue file overflow\n"); -- return NULL; -- } -- devpaths = malloc0(sizeof(struct queue_devpaths) + (range + 1) * sizeof(long)); -- if (devpaths == NULL) -- return NULL; -- devpaths->devpaths_size = range + 1; -- -- /* read all records and populate the table */ -- for (;;) { -- if (udev_queue_read_seqnum(udev_queue_export->queue_file, &seqnum) < 0) -- break; -- n = seqnum - udev_queue_export->seqnum_max; -- if (n >= devpaths->devpaths_size) -- goto read_error; -- -- devpath_offset = ftell(udev_queue_export->queue_file); -- devpath_len = udev_queue_skip_devpath(udev_queue_export->queue_file); -- if (devpath_len < 0) -- goto read_error; -- -- if (devpath_len > 0) -- devpaths->devpaths[n] = devpath_offset; -- else -- devpaths->devpaths[n] = 0; -- } -- -- /* find first queued event */ -- for (i = 0; i < devpaths->devpaths_size; i++) { -- if (devpaths->devpaths[i] != 0) -- break; -- } -- devpaths->devpaths_first = i; -- -- return devpaths; -- --read_error: -- udev_err(udev_queue_export->udev, "queue file corrupted\n"); -- free(devpaths); -- return NULL; --} -- --static int rebuild_queue_file(struct udev_queue_export *udev_queue_export) --{ -- unsigned long long int seqnum; -- struct queue_devpaths *devpaths = NULL; -- FILE *new_queue_file = NULL; -- unsigned int i; -- -- /* read old queue file */ -- if (udev_queue_export->queue_file != NULL) { -- devpaths = build_index(udev_queue_export); -- if (devpaths != NULL) -- udev_queue_export->seqnum_max += devpaths->devpaths_first; -- } -- if (devpaths == NULL) { -- udev_queue_export->queued_count = 0; -- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; -- } -- -- /* create new queue file */ -- new_queue_file = fopen("/run/udev/queue.tmp", "w+e"); -- if (new_queue_file == NULL) -- goto error; -- seqnum = udev_queue_export->seqnum_max; -- fwrite(&seqnum, 1, sizeof(unsigned long long int), new_queue_file); -- -- /* copy unfinished events only to the new file */ -- if (devpaths != NULL) { -- for (i = devpaths->devpaths_first; i < devpaths->devpaths_size; i++) { -- char devpath[UTIL_PATH_SIZE]; -- int err; -- unsigned short devpath_len; -- -- if (devpaths->devpaths[i] != 0) -- { -- skip_to(udev_queue_export->queue_file, devpaths->devpaths[i]); -- err = udev_queue_read_devpath(udev_queue_export->queue_file, devpath, sizeof(devpath)); -- devpath_len = err; -- -- fwrite(&seqnum, sizeof(unsigned long long int), 1, new_queue_file); -- fwrite(&devpath_len, sizeof(unsigned short), 1, new_queue_file); -- fwrite(devpath, 1, devpath_len, new_queue_file); -- } -- seqnum++; -- } -- free(devpaths); -- devpaths = NULL; -- } -- fflush(new_queue_file); -- if (ferror(new_queue_file)) -- goto error; -- -- /* rename the new file on top of the old one */ -- if (rename("/run/udev/queue.tmp", "/run/udev/queue.bin") != 0) -- goto error; -- -- if (udev_queue_export->queue_file != NULL) -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = new_queue_file; -- udev_queue_export->waste_bytes = 0; -- -- return 0; -- --error: -- udev_err(udev_queue_export->udev, "failed to create queue file: %m\n"); -- udev_queue_export_cleanup(udev_queue_export); -- -- if (udev_queue_export->queue_file != NULL) { -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = NULL; -- } -- if (new_queue_file != NULL) -- fclose(new_queue_file); -- -- if (devpaths != NULL) -- free(devpaths); -- udev_queue_export->queued_count = 0; -- udev_queue_export->waste_bytes = 0; -- udev_queue_export->seqnum_max = udev_queue_export->seqnum_min; -- -- return -1; --} -- --static int write_queue_record(struct udev_queue_export *udev_queue_export, -- unsigned long long int seqnum, const char *devpath, size_t devpath_len) --{ -- unsigned short len; -- -- if (udev_queue_export->queue_file == NULL) -- return -1; -- -- if (fwrite(&seqnum, sizeof(unsigned long long int), 1, udev_queue_export->queue_file) != 1) -- goto write_error; -- -- len = (devpath_len < USHRT_MAX) ? devpath_len : USHRT_MAX; -- if (fwrite(&len, sizeof(unsigned short), 1, udev_queue_export->queue_file) != 1) -- goto write_error; -- if (len > 0) { -- if (fwrite(devpath, 1, len, udev_queue_export->queue_file) != len) -- goto write_error; -- } -- -- /* *must* flush output; caller may fork */ -- if (fflush(udev_queue_export->queue_file) != 0) -- goto write_error; -- -- return 0; -- --write_error: -- /* if we failed half way through writing a record to a file, -- we should not try to write any further records to it. */ -- udev_err(udev_queue_export->udev, "error writing to queue file: %m\n"); -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = NULL; -- -- return -1; --} -- --enum device_state { -- DEVICE_QUEUED, -- DEVICE_FINISHED, --}; -- --static inline size_t queue_record_size(size_t devpath_len) --{ -- return sizeof(unsigned long long int) + sizeof(unsigned short int) + devpath_len; --} -- --static int update_queue(struct udev_queue_export *udev_queue_export, -- struct udev_device *udev_device, enum device_state state) --{ -- unsigned long long int seqnum = udev_device_get_seqnum(udev_device); -- const char *devpath = NULL; -- size_t devpath_len = 0; -- int bytes; -- int err; -- -- /* FINISHED records have a zero length devpath */ -- if (state == DEVICE_QUEUED) { -- devpath = udev_device_get_devpath(udev_device); -- devpath_len = strlen(devpath); -- } -- -- /* recover from an earlier failed rebuild */ -- if (udev_queue_export->queue_file == NULL) { -- if (rebuild_queue_file(udev_queue_export) != 0) -- return -1; -- } -- -- /* if we're removing the last event from the queue, that's the best time to rebuild it */ -- if (state != DEVICE_QUEUED && udev_queue_export->queued_count == 1) { -- /* we don't need to read the old queue file */ -- fclose(udev_queue_export->queue_file); -- udev_queue_export->queue_file = NULL; -- rebuild_queue_file(udev_queue_export); -- return 0; -- } -- -- /* try to rebuild the queue files before they grow larger than one page. */ -- bytes = ftell(udev_queue_export->queue_file) + queue_record_size(devpath_len); -- if ((udev_queue_export->waste_bytes > bytes / 2) && bytes > 4096) -- rebuild_queue_file(udev_queue_export); -- -- /* don't record a finished event, if we already dropped the event in a failed rebuild */ -- if (seqnum < udev_queue_export->seqnum_max) -- return 0; -- -- /* now write to the queue */ -- if (state == DEVICE_QUEUED) { -- udev_queue_export->queued_count++; -- udev_queue_export->seqnum_min = seqnum; -- } else { -- udev_queue_export->waste_bytes += queue_record_size(devpath_len) + queue_record_size(0); -- udev_queue_export->queued_count--; -- } -- err = write_queue_record(udev_queue_export, seqnum, devpath, devpath_len); -- -- /* try to handle ENOSPC */ -- if (err != 0 && udev_queue_export->queued_count == 0) { -- udev_queue_export_cleanup(udev_queue_export); -- err = rebuild_queue_file(udev_queue_export); -- } -- -- return err; --} -- --static int update(struct udev_queue_export *udev_queue_export, -- struct udev_device *udev_device, enum device_state state) --{ -- if (update_queue(udev_queue_export, udev_device, state) != 0) -- return -1; -- -- return 0; --} -- --int udev_queue_export_device_queued(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) --{ -- return update(udev_queue_export, udev_device, DEVICE_QUEUED); --} -- --int udev_queue_export_device_finished(struct udev_queue_export *udev_queue_export, struct udev_device *udev_device) --{ -- return update(udev_queue_export, udev_device, DEVICE_FINISHED); --} -diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index 2cb4d67..eb0e096 100644 ---- a/src/libudev/libudev-queue.c -+++ b/src/libudev/libudev-queue.c -@@ -24,8 +24,6 @@ - #include - #include - #include --#include --#include - #include - #include - -@@ -36,10 +34,7 @@ - * SECTION:libudev-queue - * @short_description: access to currently active events - * -- * The udev daemon processes events asynchronously. All events which do not have -- * interdependencies run in parallel. This exports the current state of the -- * event processing queue, and the current event sequence numbers from the kernel -- * and the udev daemon. -+ * This exports the current state of the udev processing queue. - */ - - /** -@@ -50,7 +45,6 @@ - struct udev_queue { - struct udev *udev; - int refcount; -- struct udev_list queue_list; - }; - - /** -@@ -72,9 +66,9 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) - udev_queue = new0(struct udev_queue, 1); - if (udev_queue == NULL) - return NULL; -+ - udev_queue->refcount = 1; - udev_queue->udev = udev; -- udev_list_init(udev, &udev_queue->queue_list, false); - return udev_queue; - } - -@@ -90,6 +84,7 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue) - { - if (udev_queue == NULL) - return NULL; -+ - udev_queue->refcount++; - return udev_queue; - } -@@ -107,10 +102,11 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) - { - if (udev_queue == NULL) - return NULL; -+ - udev_queue->refcount--; - if (udev_queue->refcount > 0) - return NULL; -- udev_list_cleanup(&udev_queue->queue_list); -+ - free(udev_queue); - return NULL; - } -@@ -130,141 +126,30 @@ _public_ struct udev *udev_queue_get_udev(struct udev_queue *udev_queue) - return udev_queue->udev; - } - --unsigned long long int udev_get_kernel_seqnum(struct udev *udev) --{ -- unsigned long long int seqnum; -- int fd; -- char buf[32]; -- ssize_t len; -- -- fd = open("/sys/kernel/uevent_seqnum", O_RDONLY|O_CLOEXEC); -- if (fd < 0) -- return 0; -- len = read(fd, buf, sizeof(buf)); -- close(fd); -- if (len <= 2) -- return 0; -- buf[len-1] = '\0'; -- seqnum = strtoull(buf, NULL, 10); -- return seqnum; --} -- - /** - * udev_queue_get_kernel_seqnum: - * @udev_queue: udev queue context - * -- * Get the current kernel event sequence number. -+ * This function is deprecated. - * -- * Returns: the sequence number. -+ * Returns: 0. - **/ - _public_ unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum; -- -- if (udev_queue == NULL) -- return -EINVAL; -- -- seqnum = udev_get_kernel_seqnum(udev_queue->udev); -- return seqnum; --} -- --int udev_queue_read_seqnum(FILE *queue_file, unsigned long long int *seqnum) --{ -- if (fread(seqnum, sizeof(unsigned long long int), 1, queue_file) != 1) -- return -1; -- - return 0; - } - --ssize_t udev_queue_skip_devpath(FILE *queue_file) --{ -- unsigned short int len; -- -- if (fread(&len, sizeof(unsigned short int), 1, queue_file) == 1) { -- char *devpath = alloca(len); -- -- /* use fread to skip, fseek might drop buffered data */ -- if (fread(devpath, 1, len, queue_file) == len) -- return len; -- } -- -- return -1; --} -- --ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t size) --{ -- unsigned short int read_bytes = 0; -- unsigned short int len; -- -- if (fread(&len, sizeof(unsigned short int), 1, queue_file) != 1) -- return -1; -- -- read_bytes = (len < size - 1) ? len : size - 1; -- if (fread(devpath, 1, read_bytes, queue_file) != read_bytes) -- return -1; -- devpath[read_bytes] = '\0'; -- -- /* if devpath was too long, skip unread characters */ -- if (read_bytes != len) { -- unsigned short int skip_bytes = len - read_bytes; -- char *buf = alloca(skip_bytes); -- -- if (fread(buf, 1, skip_bytes, queue_file) != skip_bytes) -- return -1; -- } -- -- return read_bytes; --} -- --static FILE *open_queue_file(struct udev_queue *udev_queue, unsigned long long int *seqnum_start) --{ -- FILE *queue_file; -- -- queue_file = fopen("/run/udev/queue.bin", "re"); -- if (queue_file == NULL) -- return NULL; -- -- if (udev_queue_read_seqnum(queue_file, seqnum_start) < 0) { -- udev_err(udev_queue->udev, "corrupt queue file\n"); -- fclose(queue_file); -- return NULL; -- } -- -- return queue_file; --} -- - /** - * udev_queue_get_udev_seqnum: - * @udev_queue: udev queue context - * -- * Get the last known udev event sequence number. -+ * This function is deprecated. - * -- * Returns: the sequence number. -+ * Returns: 0. - **/ - _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum_udev; -- FILE *queue_file; -- -- queue_file = open_queue_file(udev_queue, &seqnum_udev); -- if (queue_file == NULL) -- return 0; -- -- for (;;) { -- unsigned long long int seqnum; -- ssize_t devpath_len; -- -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- devpath_len = udev_queue_skip_devpath(queue_file); -- if (devpath_len < 0) -- break; -- if (devpath_len > 0) -- seqnum_udev = seqnum; -- } -- -- fclose(queue_file); -- return seqnum_udev; -+ return 0; - } - - /** -@@ -277,15 +162,7 @@ _public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *ud - **/ - _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum_start; -- FILE *queue_file; -- -- queue_file = open_queue_file(udev_queue, &seqnum_start); -- if (queue_file == NULL) -- return 0; -- -- fclose(queue_file); -- return 1; -+ return access("/run/udev/control", F_OK) >= 0; - } - - /** -@@ -298,48 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) - **/ - _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum_kernel; -- unsigned long long int seqnum_udev = 0; -- int queued = 0; -- int is_empty = 0; -- FILE *queue_file; -- -- if (udev_queue == NULL) -- return -EINVAL; -- queue_file = open_queue_file(udev_queue, &seqnum_udev); -- if (queue_file == NULL) -- return 1; -- -- for (;;) { -- unsigned long long int seqnum; -- ssize_t devpath_len; -- -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- devpath_len = udev_queue_skip_devpath(queue_file); -- if (devpath_len < 0) -- break; -- -- if (devpath_len > 0) { -- queued++; -- seqnum_udev = seqnum; -- } else { -- queued--; -- } -- } -- -- if (queued > 0) -- goto out; -- -- seqnum_kernel = udev_queue_get_kernel_seqnum(udev_queue); -- if (seqnum_udev < seqnum_kernel) -- goto out; -- -- is_empty = 1; -- --out: -- fclose(queue_file); -- return is_empty; -+ return access("/run/udev/queue", F_OK) >= 0; - } - - /** -@@ -348,63 +184,15 @@ out: - * @start: first event sequence number - * @end: last event sequence number - * -- * Check if udev is currently processing any events in a given sequence number range. -+ * This function is deprecated, it just returns the result of -+ * udev_queue_get_queue_is_empty(). - * -- * Returns: a flag indicating if any of the sequence numbers in the given range is currently active. -+ * Returns: a flag indicating if udev is currently handling events. - **/ - _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, - unsigned long long int start, unsigned long long int end) - { -- unsigned long long int seqnum; -- ssize_t devpath_len; -- int unfinished; -- FILE *queue_file; -- -- if (udev_queue == NULL) -- return -EINVAL; -- queue_file = open_queue_file(udev_queue, &seqnum); -- if (queue_file == NULL) -- return 1; -- if (start < seqnum) -- start = seqnum; -- if (start > end) { -- fclose(queue_file); -- return 1; -- } -- if (end - start > INT_MAX - 1) { -- fclose(queue_file); -- return -EOVERFLOW; -- } -- -- /* -- * we might start with 0, and handle the initial seqnum -- * only when we find an entry in the queue file -- **/ -- unfinished = end - start; -- -- do { -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- devpath_len = udev_queue_skip_devpath(queue_file); -- if (devpath_len < 0) -- break; -- -- /* -- * we might start with an empty or re-build queue file, where -- * the initial seqnum is not recorded as finished -- */ -- if (start == seqnum && devpath_len > 0) -- unfinished++; -- -- if (devpath_len == 0) { -- if (seqnum >= start && seqnum <= end) -- unfinished--; -- } -- } while (unfinished > 0); -- -- fclose(queue_file); -- -- return (unfinished == 0); -+ return udev_queue_get_queue_is_empty(udev_queue); - } - - /** -@@ -412,69 +200,25 @@ _public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_ - * @udev_queue: udev queue context - * @seqnum: sequence number - * -- * Check if udev is currently processing a given sequence number. -+ * This function is deprecated, it just returns the result of -+ * udev_queue_get_queue_is_empty(). - * -- * Returns: a flag indicating if the given sequence number is currently active. -+ * Returns: a flag indicating if udev is currently handling events. - **/ - _public_ int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) - { -- if (!udev_queue_get_seqnum_sequence_is_finished(udev_queue, seqnum, seqnum)) -- return 0; -- -- return 1; -+ return udev_queue_get_queue_is_empty(udev_queue); - } - - /** - * udev_queue_get_queued_list_entry: - * @udev_queue: udev queue context - * -- * Get the first entry of the list of queued events. -+ * This function is deprecated. - * -- * Returns: a udev_list_entry. -+ * Returns: NULL. - **/ - _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) - { -- unsigned long long int seqnum; -- FILE *queue_file; -- -- if (udev_queue == NULL) -- return NULL; -- udev_list_cleanup(&udev_queue->queue_list); -- -- queue_file = open_queue_file(udev_queue, &seqnum); -- if (queue_file == NULL) -- return NULL; -- -- for (;;) { -- char syspath[UTIL_PATH_SIZE]; -- char *s; -- size_t l; -- ssize_t len; -- char seqnum_str[32]; -- struct udev_list_entry *list_entry; -- -- if (udev_queue_read_seqnum(queue_file, &seqnum) < 0) -- break; -- snprintf(seqnum_str, sizeof(seqnum_str), "%llu", seqnum); -- -- s = syspath; -- l = strpcpy(&s, sizeof(syspath), "/sys"); -- len = udev_queue_read_devpath(queue_file, s, l); -- if (len < 0) -- break; -- -- if (len > 0) { -- udev_list_entry_add(&udev_queue->queue_list, syspath, seqnum_str); -- } else { -- udev_list_entry_foreach(list_entry, udev_list_get_entry(&udev_queue->queue_list)) { -- if (streq(seqnum_str, udev_list_entry_get_value(list_entry))) { -- udev_list_entry_delete(list_entry); -- break; -- } -- } -- } -- } -- fclose(queue_file); -- -- return udev_list_get_entry(&udev_queue->queue_list); -+ return NULL; - } -diff --git src/libudev/libudev.h src/libudev/libudev.h -index b9b8f13..ceb89bd 100644 ---- a/src/libudev/libudev.h -+++ b/src/libudev/libudev.h -@@ -170,14 +170,14 @@ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue); - struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue); - struct udev *udev_queue_get_udev(struct udev_queue *udev_queue); - struct udev_queue *udev_queue_new(struct udev *udev); --unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue); --unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue); -+unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); -+unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue) __attribute__ ((deprecated)); - int udev_queue_get_udev_is_active(struct udev_queue *udev_queue); - int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); --int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum); -+int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); - int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, -- unsigned long long int start, unsigned long long int end); --struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue); -+ unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); -+struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); - - /* - * udev_hwdb -diff --git src/shared/udev-util.h src/shared/udev-util.h -index 40f8b77..5f09ce1 100644 ---- a/src/shared/udev-util.h -+++ b/src/shared/udev-util.h -@@ -31,7 +31,6 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_ctrl*, udev_ctrl_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_monitor*, udev_monitor_unref); --DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); - - #define _cleanup_udev_unref_ _cleanup_(udev_unrefp) - #define _cleanup_udev_device_unref_ _cleanup_(udev_device_unrefp) -@@ -40,5 +39,4 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_queue*, udev_queue_unref); - #define _cleanup_udev_rules_unref_ _cleanup_(udev_rules_unrefp) - #define _cleanup_udev_ctrl_unref_ _cleanup_(udev_ctrl_unrefp) - #define _cleanup_udev_monitor_unref_ _cleanup_(udev_monitor_unrefp) --#define _cleanup_udev_queue_unref_ _cleanup_(udev_queue_unrefp) - #define _cleanup_udev_list_cleanup_ _cleanup_(udev_list_cleanup) -diff --git src/test/test-libudev.c src/test/test-libudev.c -index c233b1e..f5c8bc7 100644 ---- a/src/test/test-libudev.c -+++ b/src/test/test-libudev.c -@@ -303,38 +303,14 @@ out: - - static int test_queue(struct udev *udev) { - struct udev_queue *udev_queue; -- unsigned long long int seqnum; -- struct udev_list_entry *list_entry; - - udev_queue = udev_queue_new(udev); - if (udev_queue == NULL) - return -1; -- seqnum = udev_queue_get_kernel_seqnum(udev_queue); -- printf("seqnum kernel: %llu\n", seqnum); -- seqnum = udev_queue_get_udev_seqnum(udev_queue); -- printf("seqnum udev : %llu\n", seqnum); - - if (udev_queue_get_queue_is_empty(udev_queue)) - printf("queue is empty\n"); -- printf("get queue list\n"); -- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) -- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); -- printf("\n"); -- printf("get queue list again\n"); -- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) -- printf("queued: '%s' [%s]\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); -- printf("\n"); - -- list_entry = udev_queue_get_queued_list_entry(udev_queue); -- if (list_entry != NULL) { -- printf("event [%llu] is queued\n", seqnum); -- seqnum = strtoull(udev_list_entry_get_value(list_entry), NULL, 10); -- if (udev_queue_get_seqnum_is_finished(udev_queue, seqnum)) -- printf("event [%llu] is not finished\n", seqnum); -- else -- printf("event [%llu] is finished\n", seqnum); -- } -- printf("\n"); - udev_queue_unref(udev_queue); - return 0; - } -diff --git src/udev/udev-ctrl.c src/udev/udev-ctrl.c -index 1e91ec2..74bbd3a 100644 ---- a/src/udev/udev-ctrl.c -+++ b/src/udev/udev-ctrl.c -@@ -275,7 +275,7 @@ static int ctrl_send(struct udev_ctrl *uctrl, enum udev_ctrl_msg_type type, int - - pfd[0].fd = uctrl->sock; - pfd[0].events = POLLIN; -- r = poll(pfd, 1, timeout * 1000); -+ r = poll(pfd, 1, timeout * MSEC_PER_SEC); - if (r < 0) { - if (errno == EINTR) - continue; -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 927ea2a..65fc35f 100644 ---- a/src/udev/udevadm-settle.c -+++ b/src/udev/udevadm-settle.c -@@ -41,42 +41,28 @@ - static void help(void) { - printf("Usage: udevadm settle OPTIONS\n" - " -t,--timeout= maximum time to wait for events\n" -- " -s,--seq-start= first seqnum to wait for\n" -- " -e,--seq-end= last seqnum to wait for\n" - " -E,--exit-if-exists= stop waiting if file exists\n" -- " -q,--quiet do not print list after timeout\n" - " -h,--help\n\n"); - } - - static int adm_settle(struct udev *udev, int argc, char *argv[]) - { - static const struct option options[] = { -- { "seq-start", required_argument, NULL, 's' }, -- { "seq-end", required_argument, NULL, 'e' }, -+ { "seq-start", required_argument, NULL, '\0' }, /* removed */ -+ { "seq-end", required_argument, NULL, '\0' }, /* removed */ - { "timeout", required_argument, NULL, 't' }, - { "exit-if-exists", required_argument, NULL, 'E' }, -- { "quiet", no_argument, NULL, 'q' }, -+ { "quiet", no_argument, NULL, 'q' }, /* removed */ - { "help", no_argument, NULL, 'h' }, - {} - }; -- usec_t start_usec = now(CLOCK_MONOTONIC); -- usec_t start = 0; -- usec_t end = 0; -- int quiet = 0; - const char *exists = NULL; - unsigned int timeout = 120; - struct pollfd pfd[1] = { {.fd = -1}, }; -- _cleanup_udev_queue_unref_ struct udev_queue *udev_queue = NULL; - int rc = EXIT_FAILURE, c; - -- while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) -+ while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { - switch (c) { -- case 's': -- start = strtoull(optarg, NULL, 0); -- break; -- case 'e': -- end = strtoull(optarg, NULL, 0); -- break; - case 't': { - int r; - -@@ -91,9 +77,6 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - case 'E': - exists = optarg; - break; -- case 'q': -- quiet = 1; -- break; - case 'h': - help(); - exit(EXIT_SUCCESS); -@@ -102,44 +85,13 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - default: - assert_not_reached("Unknown argument"); - } -+ } - - if (optind < argc) { - fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); - exit(EXIT_FAILURE); - } - -- udev_queue = udev_queue_new(udev); -- if (udev_queue == NULL) -- exit(2); -- -- if (start > 0) { -- unsigned long long kernel_seq; -- -- kernel_seq = udev_queue_get_kernel_seqnum(udev_queue); -- -- /* unless specified, the last event is the current kernel seqnum */ -- if (end == 0) -- end = udev_queue_get_kernel_seqnum(udev_queue); -- -- if (start > end) { -- log_error("seq-start larger than seq-end, ignoring"); -- start = 0; -- end = 0; -- } -- -- if (start > kernel_seq || end > kernel_seq) { -- log_error("seq-start or seq-end larger than current kernel value, ignoring"); -- start = 0; -- end = 0; -- } -- log_debug("start=%llu end=%llu current=%llu", (unsigned long long)start, (unsigned long long)end, kernel_seq); -- } else { -- if (end > 0) { -- log_error("seq-end needs seq-start parameter, ignoring"); -- end = 0; -- } -- } -- - /* guarantee that the udev daemon isn't pre-processing */ - if (getuid() == 0) { - struct udev_ctrl *uctrl; -@@ -160,73 +112,34 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - pfd[0].fd = inotify_init1(IN_CLOEXEC); - if (pfd[0].fd < 0) { - log_error("inotify_init failed: %m"); -- } else { -- if (inotify_add_watch(pfd[0].fd, "/run/udev" , IN_MOVED_TO) < 0) { -- log_error("watching /run/udev failed"); -- close(pfd[0].fd); -- pfd[0].fd = -1; -- } -+ goto out; - } - -- for (;;) { -- struct stat statbuf; -+ if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { -+ log_debug("watching /run/udev failed"); -+ goto out; -+ } - -- if (exists != NULL && stat(exists, &statbuf) == 0) { -+ for (;;) { -+ if (exists && access(exists, F_OK) >= 0) { - rc = EXIT_SUCCESS; - break; - } - -- if (start > 0) { -- /* if asked for, wait for a specific sequence of events */ -- if (udev_queue_get_seqnum_sequence_is_finished(udev_queue, start, end) == 1) { -- rc = EXIT_SUCCESS; -- break; -- } -- } else { -- /* exit if queue is empty */ -- if (udev_queue_get_queue_is_empty(udev_queue)) { -- rc = EXIT_SUCCESS; -- break; -- } -- } -- -- if (pfd[0].fd >= 0) { -- int delay; -- -- if (exists != NULL || start > 0) -- delay = 100; -- else -- delay = 1000; -- /* wake up after delay, or immediately after the queue is rebuilt */ -- if (poll(pfd, 1, delay) > 0 && pfd[0].revents & POLLIN) { -- char buf[sizeof(struct inotify_event) + PATH_MAX]; -- -- read(pfd[0].fd, buf, sizeof(buf)); -- } -- } else { -- sleep(1); -+ /* exit if queue is empty */ -+ if (access("/run/udev/queue", F_OK) < 0) { -+ rc = EXIT_SUCCESS; -+ break; - } - -- if (timeout > 0) { -- usec_t age_usec; -+ /* wake up when "queue" file is deleted */ -+ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { -+ char buf[sizeof(struct inotify_event) + PATH_MAX]; - -- age_usec = now(CLOCK_MONOTONIC) - start_usec; -- if (age_usec / (1000 * 1000) >= timeout) { -- struct udev_list_entry *list_entry; -- -- if (!quiet && udev_queue_get_queued_list_entry(udev_queue) != NULL) { -- log_debug("timeout waiting for udev queue"); -- printf("\nudevadm settle - timeout of %i seconds reached, the event queue contains:\n", timeout); -- udev_list_entry_foreach(list_entry, udev_queue_get_queued_list_entry(udev_queue)) -- printf(" %s (%s)\n", -- udev_list_entry_get_name(list_entry), -- udev_list_entry_get_value(list_entry)); -- } -- -- break; -- } -+ read(pfd[0].fd, buf, sizeof(buf)); - } - } -+ - out: - if (pfd[0].fd >= 0) - close(pfd[0].fd); -@@ -236,5 +149,5 @@ out: - const struct udevadm_cmd udevadm_settle = { - .name = "settle", - .cmd = adm_settle, -- .help = "wait for the event queue to finish", -+ .help = "wait for pending udev events", - }; -diff --git src/udev/udevd.c src/udev/udevd.c -index f21c227..f9ee368 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -60,7 +60,6 @@ void udev_main_log(struct udev *udev, int priority, - } - - static struct udev_rules *rules; --static struct udev_queue_export *udev_queue_export; - static struct udev_ctrl *udev_ctrl; - static struct udev_monitor *monitor; - static int worker_watch[2] = { -1, -1 }; -@@ -139,14 +138,9 @@ static inline struct worker *node_to_worker(struct udev_list_node *node) - return container_of(node, struct worker, node); - } - --static void event_queue_delete(struct event *event, bool export) -+static void event_queue_delete(struct event *event) - { - udev_list_node_remove(&event->node); -- -- if (export) { -- udev_queue_export_device_finished(udev_queue_export, event->dev); -- log_debug("seq %llu done with %i", udev_device_get_seqnum(event->dev), event->exitcode); -- } - udev_device_unref(event->dev); - free(event); - } -@@ -225,7 +219,6 @@ static void worker_new(struct event *event) - free(worker); - worker_list_cleanup(udev); - event_queue_cleanup(udev, EVENT_UNDEF); -- udev_queue_export_unref(udev_queue_export); - udev_monitor_unref(monitor); - udev_ctrl_unref(udev_ctrl); - close(fd_signal); -@@ -449,7 +442,6 @@ static int event_queue_insert(struct udev_device *dev) - 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), - udev_device_get_action(dev), udev_device_get_subsystem(dev)); - -@@ -580,7 +572,7 @@ static void event_queue_cleanup(struct udev *udev, enum event_state match_type) - if (match_type != EVENT_UNDEF && match_type != event->state) - continue; - -- event_queue_delete(event, false); -+ event_queue_delete(event); - } - } - -@@ -605,7 +597,7 @@ static void worker_returned(int fd_worker) - /* worker returned */ - if (worker->event) { - worker->event->exitcode = msg.exitcode; -- event_queue_delete(worker->event, true); -+ event_queue_delete(worker->event); - worker->event = NULL; - } - if (worker->state != WORKER_KILLED) -@@ -797,7 +789,8 @@ static void handle_signal(struct udev *udev, int signo) - log_error("worker [%u] failed while handling '%s'", - pid, worker->event->devpath); - worker->event->exitcode = -32; -- event_queue_delete(worker->event, true); -+ event_queue_delete(worker->event); -+ - /* drop reference taken for state 'running' */ - worker_unref(worker); - } -@@ -1076,14 +1069,7 @@ int main(int argc, char *argv[]) - goto exit; - } - -- udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024); -- -- /* create queue file before signalling 'ready', to make sure we block 'settle' */ -- udev_queue_export = udev_queue_export_new(udev); -- if (udev_queue_export == NULL) { -- log_error("error creating queue file"); -- goto exit; -- } -+ udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024); - - if (daemonize) { - pid_t pid; -@@ -1241,12 +1227,12 @@ int main(int argc, char *argv[]) - worker_kill(udev); - - /* exit after all has cleaned up */ -- if (udev_list_node_is_empty(&event_list) && udev_list_node_is_empty(&worker_list)) -+ if (udev_list_node_is_empty(&event_list) && children == 0) - break; - - /* timeout at exit for workers to finish */ -- timeout = 30 * 1000; -- } else if (udev_list_node_is_empty(&event_list) && !children) { -+ timeout = 30 * MSEC_PER_SEC; -+ } else if (udev_list_node_is_empty(&event_list) && children == 0) { - /* we are idle */ - timeout = -1; - -@@ -1255,8 +1241,20 @@ int main(int argc, char *argv[]) - cg_kill(SYSTEMD_CGROUP_CONTROLLER, udev_cgroup, SIGKILL, false, true, NULL); - } else { - /* kill idle or hanging workers */ -- timeout = 3 * 1000; -+ timeout = 3 * MSEC_PER_SEC; - } -+ -+ /* tell settle that we are busy or idle */ -+ if (!udev_list_node_is_empty(&event_list)) { -+ int fd; -+ -+ fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); -+ if (fd >= 0) -+ close(fd); -+ } else { -+ unlink("/run/udev/queue"); -+ } -+ - fdcount = epoll_wait(fd_ep, ev, ELEMENTSOF(ev), timeout); - if (fdcount < 0) - continue; -@@ -1283,18 +1281,18 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { - log_error("worker [%u] %s timeout; kill it", worker->pid, - worker->event ? worker->event->devpath : ""); - kill(worker->pid, SIGKILL); - worker->state = WORKER_KILLED; -+ - /* drop reference taken for state 'running' */ - worker_unref(worker); - if (worker->event) { -- log_error("seq %llu '%s' killed", -- udev_device_get_seqnum(worker->event->dev), worker->event->devpath); -+ 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); -+ event_queue_delete(worker->event); - worker->event = NULL; - } - } -@@ -1317,7 +1315,7 @@ int main(int argc, char *argv[]) - } - - /* check for changed config, every 3 seconds at most */ -- if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * USEC_PER_SEC) { - if (udev_rules_check_timestamp(rules)) - reload = true; - if (udev_builtin_validate(udev)) -@@ -1390,8 +1388,8 @@ int main(int argc, char *argv[]) - - rc = EXIT_SUCCESS; - exit: -- udev_queue_export_cleanup(udev_queue_export); - udev_ctrl_cleanup(udev_ctrl); -+ unlink("/run/udev/queue"); - exit_daemonize: - if (fd_ep >= 0) - close(fd_ep); -@@ -1406,7 +1404,6 @@ exit_daemonize: - if (worker_watch[WRITE_END] >= 0) - close(worker_watch[WRITE_END]); - udev_monitor_unref(monitor); -- udev_queue_export_unref(udev_queue_export); - udev_ctrl_connection_unref(ctrl_conn); - udev_ctrl_unref(udev_ctrl); - label_finish(); --- -1.7.9.2 - diff --git a/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch b/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch deleted file mode 100644 index 75da64fa..00000000 --- a/1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a52ec8ed881537627869afa8f0486db7e20ce2db Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Fri, 30 May 2014 13:16:56 -0400 -Subject: [PATCH] udev-builtin-keyboard: do tell on which device EVIOCSKEYCODE - failed. - -I am getting - -"Error calling EVIOCSKEYCODE (scan code 0xc022d, key code 418): Invalid -argument", the error message does not tell on which specific device the -problem is, add that info. ---- - src/udev/udev-builtin-keyboard.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/udev-builtin-keyboard.c src/udev/udev-builtin-keyboard.c -index 614e44e..9b66bfd 100644 ---- src/udev/udev-builtin-keyboard.c -+++ src/udev/udev-builtin-keyboard.c -@@ -143,7 +143,7 @@ static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], boo - log_debug("keyboard: mapping scan code %d (0x%x) to key code %d (0x%x)", - map[i].scan, map[i].scan, map[i].key, map[i].key); - if (ioctl(fd, EVIOCSKEYCODE, &map[i]) < 0) -- log_error("Error calling EVIOCSKEYCODE (scan code 0x%x, key code %d): %m", map[i].scan, map[i].key); -+ log_error("Error calling EVIOCSKEYCODE on device node '%s' (scan code 0x%x, key code %d): %m", node, map[i].scan, map[i].key); - } - - /* install list of force-release codes */ --- -1.7.9.2 - diff --git a/1024-udev-always-close-lock-file-descriptor.patch b/1024-udev-always-close-lock-file-descriptor.patch deleted file mode 100644 index aaa4b296..00000000 --- a/1024-udev-always-close-lock-file-descriptor.patch +++ /dev/null @@ -1,41 +0,0 @@ -Based on 3d06f4183470d42361303086ed9dedd29c0ffc1b Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 3 Jun 2014 10:46:51 +0200 -Subject: [PATCH] udev: always close lock file descriptor - -https://bugs.freedesktop.org/show_bug.cgi?id=79576 ---- - src/udev/udevd.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-06-03 15:34:42.778346368 +0000 -@@ -301,6 +301,7 @@ static void worker_new(struct event *eve - if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) { - log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d)); - err = -EWOULDBLOCK; -+ close_nointr_nofail(fd_lock); fd_lock = -1; - goto skip; - } - } -@@ -318,7 +319,7 @@ static void worker_new(struct event *eve - } - - if (fd_lock >= 0) -- close(fd_lock); -+ close_nointr_nofail(fd_lock); - - /* send processed event back to libudev listeners */ - udev_monitor_send_device(worker_monitor, NULL, dev); -@@ -378,9 +379,9 @@ skip: - out: - udev_device_unref(dev); - if (fd_signal >= 0) -- close(fd_signal); -+ close_nointr_nofail(fd_signal); - if (fd_ep >= 0) -- close(fd_ep); -+ close_nointr_nofail(fd_ep); - close(fd_inotify); - close(worker_watch[WRITE_END]); - udev_rules_unref(rules); diff --git a/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch b/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch deleted file mode 100644 index 2dc531f4..00000000 --- a/1025-udev-exclude-device-mapper-from-block-device-ownersh.patch +++ /dev/null @@ -1,39 +0,0 @@ -From e918a1b5a94f270186dca59156354acd2a596494 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 3 Jun 2014 16:49:38 +0200 -Subject: [PATCH] udev: exclude device-mapper from block device ownership event - locking - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 819ea3b..6c05104 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -290,7 +290,19 @@ static void worker_new(struct event *event) - * acquired the lock, the external process will block until - * udev has finished its event handling. - */ -- if (streq_ptr("block", udev_device_get_subsystem(dev))) { -+ -+ /* -+ * since we make check - device seems unused - we try -+ * ioctl to deactivate - and device is found to be opened -+ * sure, you try to take a write lock -+ * if you get it udev is out -+ * if you can't get it, udev is busy -+ * we cannot deactivate openned device (as it is in-use) -+ * maybe we should just exclude dm from that thing entirely -+ * IMHO this sounds like a good plan for this moment -+ */ -+ if (streq_ptr("block", udev_device_get_subsystem(dev)) && -+ !startswith("dm-", udev_device_get_sysname(dev))) { - struct udev_device *d = dev; - - if (streq_ptr("partition", udev_device_get_devtype(d))) --- -1.8.4.5 - diff --git a/1026-udevd-inotify-modernizations.patch b/1026-udevd-inotify-modernizations.patch deleted file mode 100644 index c63093ff..00000000 --- a/1026-udevd-inotify-modernizations.patch +++ /dev/null @@ -1,85 +0,0 @@ -From edd32000c806e4527c5f376d138f7bff07724c26 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 11:05:45 +0200 -Subject: [PATCH] udevd: inotify - modernizations - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 45 ++++++++++++++++++++++----------------------- - 1 file changed, 22 insertions(+), 23 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -736,20 +736,30 @@ out: - return udev_ctrl_connection_unref(ctrl_conn); - } - -+static void synthesize_change(struct udev_device *dev) { -+ char filename[UTIL_PATH_SIZE]; -+ -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+} -+ - /* read inotify messages */ - static int handle_inotify(struct udev *udev) - { - int nbytes, pos; - char *buf; - struct inotify_event *ev; -+ int r; - -- if ((ioctl(fd_inotify, FIONREAD, &nbytes) < 0) || (nbytes <= 0)) -- return 0; -+ r = ioctl(fd_inotify, FIONREAD, &nbytes); -+ if (r < 0 || nbytes <= 0) -+ return -errno; - - buf = malloc(nbytes); -- if (buf == NULL) { -+ if (!buf) { - log_error("error getting buffer for inotify"); -- return -1; -+ return -ENOMEM; - } - - nbytes = read(fd_inotify, buf, nbytes); -@@ -759,27 +769,16 @@ static int handle_inotify(struct udev *u - - ev = (struct inotify_event *)(buf + pos); - dev = udev_watch_lookup(udev, ev->wd); -- if (dev != NULL) { -- log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); -- if (ev->mask & IN_CLOSE_WRITE) { -- char filename[UTIL_PATH_SIZE]; -- int fd; -- -- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -- fd = open(filename, O_WRONLY|O_CLOEXEC); -- if (fd >= 0) { -- if (write(fd, "change", 6) < 0) -- log_debug("error writing uevent: %m"); -- close(fd); -- } -- } -- if (ev->mask & IN_IGNORED) -- udev_watch_end(udev, dev); -+ if (!dev) -+ continue; - -- udev_device_unref(dev); -- } -+ log_debug("inotify event: %x for %s", ev->mask, udev_device_get_devnode(dev)); -+ if (ev->mask & IN_CLOSE_WRITE) -+ synthesize_change(dev); -+ else if (ev->mask & IN_IGNORED) -+ udev_watch_end(udev, dev); - -+ udev_device_unref(dev); - } - - free(buf); diff --git a/1027-udev-synthesize-change-events-for-partitions-when-to.patch b/1027-udev-synthesize-change-events-for-partitions-when-to.patch deleted file mode 100644 index ab09c1b2..00000000 --- a/1027-udev-synthesize-change-events-for-partitions-when-to.patch +++ /dev/null @@ -1,84 +0,0 @@ -From f3a740a5dae792fb6b2d411022ce8c29ced1c3f1 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 12:16:28 +0200 -Subject: [PATCH] udev: synthesize "change' events for partitions when tools - change the disk - -This should make sure that fdisk-like programs will automatically -cause an update of all partitions, just like mkfs-like programs cause -an update of the partition. - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 42 insertions(+), 2 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -46,6 +46,7 @@ - #include - - #include "udev.h" -+#include "udev-util.h" - #include "sd-daemon.h" - #include "cgroup-util.h" - #include "dev-setup.h" -@@ -736,15 +737,54 @@ out: - return udev_ctrl_connection_unref(ctrl_conn); - } - --static void synthesize_change(struct udev_device *dev) { -+static int synthesize_change(struct udev_device *dev) { - char filename[UTIL_PATH_SIZE]; -+ int r; - - log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); - strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); - write_string_file(filename, "change"); -+ -+ /* for disks devices, re-trigger all partitions too */ -+ if (streq_ptr("block", udev_device_get_subsystem(dev)) && -+ streq_ptr("disk", udev_device_get_devtype(dev))) { -+ struct udev *udev = udev_device_get_udev(dev); -+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; -+ struct udev_list_entry *item; -+ -+ e = udev_enumerate_new(udev); -+ if (!e) -+ return -ENOMEM; -+ -+ r = udev_enumerate_add_match_parent(e, dev); -+ if (r < 0) -+ return r; -+ -+ r = udev_enumerate_add_match_subsystem(e, "block"); -+ if (r < 0) -+ return r; -+ -+ r = udev_enumerate_scan_devices(e); -+ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { -+ _cleanup_udev_device_unref_ struct udev_device *d = NULL; -+ -+ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); -+ if (!d) -+ continue; -+ -+ if (!streq_ptr("partition", udev_device_get_devtype(d))) -+ continue; -+ -+ log_debug("device %s closed, synthesising partition '%s' 'change'", -+ udev_device_get_devnode(dev), udev_device_get_devnode(d)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ } -+ } -+ -+ return 0; - } - --/* read inotify messages */ - static int handle_inotify(struct udev *udev) - { - int nbytes, pos; diff --git a/1028-udev-link-config-fix-mem-leak.patch b/1028-udev-link-config-fix-mem-leak.patch deleted file mode 100644 index 265009f0..00000000 --- a/1028-udev-link-config-fix-mem-leak.patch +++ /dev/null @@ -1,34 +0,0 @@ -From edf029b7fd9a5853a87d3ca99aac2922bb8a277e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 4 Jun 2014 12:34:23 +0200 -Subject: [PATCH] udev: link-config - fix mem leak - -Reported by Kay. - -Signed-off-by: Robert Milasan ---- - src/udev/net/link-config.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -Index: systemd-210/src/udev/net/link-config.c -=================================================================== ---- systemd-210.orig/src/udev/net/link-config.c -+++ systemd-210/src/udev/net/link-config.c -@@ -118,6 +118,7 @@ static void link_configs_free(link_confi - free(link->match_type); - free(link->description); - free(link->alias); -+ free(link->name_policy); - - free(link); - } -@@ -205,7 +206,8 @@ static bool enable_name_policy(void) { - - int link_config_load(link_config_ctx *ctx) { - int r; -- char **files, **f; -+ _cleanup_strv_free_ char **files; -+ char **f; - - link_configs_free(ctx); - diff --git a/1029-udev-try-first-re-reading-the-partition-table.patch b/1029-udev-try-first-re-reading-the-partition-table.patch deleted file mode 100644 index fa20002b..00000000 --- a/1029-udev-try-first-re-reading-the-partition-table.patch +++ /dev/null @@ -1,94 +0,0 @@ -From ede344452a54e1c53f541cad12a06269a4fe96a9 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 13:30:24 +0200 -Subject: [PATCH] udev: try first re-reading the partition table - -mounted partitions: - # dd if=/dev/zero of=/dev/sda bs=1 count=1 - UDEV [4157.369250] change .../0:0:0:0/block/sda (block) - UDEV [4157.375059] change .../0:0:0:0/block/sda/sda1 (block) - UDEV [4157.397088] change .../0:0:0:0/block/sda/sda2 (block) - UDEV [4157.404842] change .../0:0:0:0/block/sda/sda4 (block) - -unmounted partitions: - # dd if=/dev/zero of=/dev/sdb bs=1 count=1 - UDEV [4163.450217] remove .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) - UDEV [4163.593167] change .../target6:0:0/6:0:0:0/block/sdb (block) - UDEV [4163.713982] add .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 39 +++++++++++++++++++++++++++++++++------ - 1 file changed, 33 insertions(+), 6 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -741,17 +742,37 @@ static int synthesize_change(struct udev - char filename[UTIL_PATH_SIZE]; - int r; - -- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -- write_string_file(filename, "change"); -- -- /* for disks devices, re-trigger all partitions too */ - if (streq_ptr("block", udev_device_get_subsystem(dev)) && -- streq_ptr("disk", udev_device_get_devtype(dev))) { -+ streq_ptr("disk", udev_device_get_devtype(dev)) && -+ !startswith("dm-", udev_device_get_sysname(dev))) { -+ int fd; - struct udev *udev = udev_device_get_udev(dev); - _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; - struct udev_list_entry *item; - -+ /* -+ * Try to re-read the partition table, this only succeeds if -+ * none of the devices is busy. -+ * -+ * The kernel will send out a change event for the disk, and -+ * "remove/add" for all partitions. -+ */ -+ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ if (fd >= 0) { -+ r = ioctl(fd, BLKRRPART, 0); -+ close(fd); -+ if (r >= 0) -+ return 0; -+ } -+ -+ /* -+ * Re-reading the partition table did not work, synthesize "change" -+ * events for the disk and all partitions. -+ */ -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ - e = udev_enumerate_new(udev); - if (!e) - return -ENOMEM; -@@ -780,8 +801,14 @@ static int synthesize_change(struct udev - strscpyl(filename, sizeof(filename), udev_device_get_syspath(d), "/uevent", NULL); - write_string_file(filename, "change"); - } -+ -+ return 0; - } - -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ - return 0; - } - diff --git a/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch b/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch deleted file mode 100644 index 6fb7b15f..00000000 --- a/1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 10fab50a3091e0b819c3ddab5a7c07acf750c050 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 14:09:31 +0200 -Subject: [PATCH] udev: guard REREADP logic with open(O_ECXL) - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -757,7 +757,7 @@ static int synthesize_change(struct udev - * The kernel will send out a change event for the disk, and - * "remove/add" for all partitions. - */ -- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd >= 0) { - r = ioctl(fd, BLKRRPART, 0); - close(fd); diff --git a/1031-udev-make-sure-we-always-get-change-for-the-disk.patch b/1031-udev-make-sure-we-always-get-change-for-the-disk.patch deleted file mode 100644 index 4f48cd3a..00000000 --- a/1031-udev-make-sure-we-always-get-change-for-the-disk.patch +++ /dev/null @@ -1,98 +0,0 @@ -From e9fc29f4ecc9509ccc02eb8a014341e26c0d7831 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 15:17:15 +0200 -Subject: [PATCH] udev: make sure we always get "change" for the disk - -The kernel will return 0 for REREADPT when no partition table -is found, we have to send out "change" ourselves. - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 53 +++++++++++++++++++++++++++++++++++++++-------------- - 1 file changed, 39 insertions(+), 14 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -745,34 +745,28 @@ static int synthesize_change(struct udev - if (streq_ptr("block", udev_device_get_subsystem(dev)) && - streq_ptr("disk", udev_device_get_devtype(dev)) && - !startswith("dm-", udev_device_get_sysname(dev))) { -+ bool part_table_read = false; -+ bool has_partitions = false; - int fd; - struct udev *udev = udev_device_get_udev(dev); - _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL; - struct udev_list_entry *item; - - /* -- * Try to re-read the partition table, this only succeeds if -- * none of the devices is busy. -- * -- * The kernel will send out a change event for the disk, and -- * "remove/add" for all partitions. -+ * Try to re-read the partition table. This only succeeds if -+ * none of the devices is busy. The kernel returns 0 if no -+ * partition table is found, and we will not get an event for -+ * the disk. - */ - fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd >= 0) { - r = ioctl(fd, BLKRRPART, 0); - close(fd); - if (r >= 0) -- return 0; -+ part_table_read = true; - } - -- /* -- * Re-reading the partition table did not work, synthesize "change" -- * events for the disk and all partitions. -- */ -- log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -- strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -- write_string_file(filename, "change"); -- -+ /* search for partitions */ - e = udev_enumerate_new(udev); - if (!e) - return -ENOMEM; -@@ -786,6 +780,37 @@ static int synthesize_change(struct udev - return r; - - r = udev_enumerate_scan_devices(e); -+ -+ udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { -+ _cleanup_udev_device_unref_ struct udev_device *d = NULL; -+ -+ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)); -+ if (!d) -+ continue; -+ -+ if (!streq_ptr("partition", udev_device_get_devtype(d))) -+ continue; -+ -+ has_partitions = true; -+ break; -+ } -+ -+ /* -+ * We have partitions and re-read the table, the kernel already sent -+ * out a "change" event for the disk, and "remove/add" for all -+ * partitions. -+ */ -+ if (part_table_read && has_partitions) -+ return 0; -+ -+ /* -+ * We have partitions but re-reading the partition table did not -+ * work, synthesize "change" for the disk and all partitions. -+ */ -+ log_debug("device %s closed, synthesising 'change'", udev_device_get_devnode(dev)); -+ strscpyl(filename, sizeof(filename), udev_device_get_syspath(dev), "/uevent", NULL); -+ write_string_file(filename, "change"); -+ - udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; - diff --git a/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch b/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch deleted file mode 100644 index 4a6d7c13..00000000 --- a/1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 02ba8fb3357daf57f6120ac512fb464a4c623419 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Wed, 4 Jun 2014 16:21:19 +0200 -Subject: [PATCH] udev: guard REREADPT by exclusive lock instead of O_EXCL - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -758,9 +758,12 @@ static int synthesize_change(struct udev - * partition table is found, and we will not get an event for - * the disk. - */ -- fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); -+ fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd >= 0) { -- r = ioctl(fd, BLKRRPART, 0); -+ r = flock(fd, LOCK_EX|LOCK_NB); -+ if (r >= 0) -+ r = ioctl(fd, BLKRRPART, 0); -+ - close(fd); - if (r >= 0) - part_table_read = true; diff --git a/1033-udev-really-exclude-device-mapper-from-block-device.patch b/1033-udev-really-exclude-device-mapper-from-block-device.patch deleted file mode 100644 index 594331c3..00000000 --- a/1033-udev-really-exclude-device-mapper-from-block-device.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 638ca89c53e2b897cfb3f627f4acbc7d09af2f4c Mon Sep 17 00:00:00 2001 -From: Christian Hesse -Date: Tue, 10 Jun 2014 15:51:15 +0200 -Subject: [PATCH] udev: really exclude device-mapper from block device - ownership event locking - -Arguments were wrong order, no? -This fixes commits: - -e918a1b5a94f270186dca59156354acd2a596494 -3d06f4183470d42361303086ed9dedd29c0ffc1b - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -304,7 +304,7 @@ static void worker_new(struct event *eve - * IMHO this sounds like a good plan for this moment - */ - if (streq_ptr("block", udev_device_get_subsystem(dev)) && -- !startswith("dm-", udev_device_get_sysname(dev))) { -+ !startswith(udev_device_get_sysname(dev), "dm-")) { - struct udev_device *d = dev; - - if (streq_ptr("partition", udev_device_get_devtype(d))) -@@ -744,7 +744,7 @@ static int synthesize_change(struct udev - - if (streq_ptr("block", udev_device_get_subsystem(dev)) && - streq_ptr("disk", udev_device_get_devtype(dev)) && -- !startswith("dm-", udev_device_get_sysname(dev))) { -+ !startswith(udev_device_get_sysname(dev), "dm-")) { - bool part_table_read = false; - bool has_partitions = false; - int fd; diff --git a/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch b/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch deleted file mode 100644 index c2a21fce..00000000 --- a/1034-udev-check-the-return-value-from-udev_enumerate_scan.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 47a3fa0f7679521b85f7aeba9e245c52cc7bb2cb Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Wed, 4 Jun 2014 23:40:43 +0200 -Subject: [PATCH] udev: check the return value from udev_enumerate_scan_devices - -The return value from udev_enumerate_scan_devices was stored but -never used. I assume this was meant to be checked. - -Signed-off-by: Robert Milasan ---- - src/udev/udevd.c | 2 ++ - 1 file changed, 2 insertions(+) - -Index: systemd-210/src/udev/udevd.c -=================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -783,6 +783,8 @@ static int synthesize_change(struct udev - return r; - - r = udev_enumerate_scan_devices(e); -+ if (r < 0) -+ return r; - - udev_list_entry_foreach(item, udev_enumerate_get_list_entry(e)) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; diff --git a/1038-udev-fix-invalid-free-in-enable_name_policy.patch b/1038-udev-fix-invalid-free-in-enable_name_policy.patch deleted file mode 100644 index 4afdb7ce..00000000 --- a/1038-udev-fix-invalid-free-in-enable_name_policy.patch +++ /dev/null @@ -1,30 +0,0 @@ -From f8a0bb5285024b6ce372c3157e761e6543ebdcd2 Mon Sep 17 00:00:00 2001 -From: Andreas Henriksson -Date: Fri, 13 Jun 2014 18:48:21 +0200 -Subject: [PATCH] udev: fix invalid free() in enable_name_policy() - -static bool enable_name_policy(...) in ./src/udev/net/link-config.c -calls proc_cmdline(...) to get "line" initialized, but -proc_cmdline(...) does not guarantee that atleast when both -conditions (detect_container(NULL) > 0) and -read_full_file(...) returned < 0. ---- - src/udev/net/link-config.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/net/link-config.c src/udev/net/link-config.c -index a9acc3d..7a9d01b 100644 ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c -@@ -185,7 +185,7 @@ static int load_link(link_config_ctx *ctx, const char *filename) { - } - - static bool enable_name_policy(void) { -- _cleanup_free_ char *line; -+ _cleanup_free_ char *line = NULL; - char *w, *state; - int r; - size_t l; --- -1.7.9.2 - diff --git a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch b/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch deleted file mode 100644 index 2760970f..00000000 --- a/1039-udevadm-settle-fixed-return-code-for-empty-queue.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 83be2c398589a3d64db5999cfd5527c5219bff46 Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Tue, 20 May 2014 12:25:16 +0200 -Subject: [PATCH] udevadm-settle: fixed return code for empty queue - -If the udev queue is empty and "/run/udev/queue" does not exist, -"udevadm settle" would return with EXIT_FAILURE, because the inotify on -"/run/udev/queue" would fail with ENOENT. - -This patch lets "udevadm settle" exit with EXIT_SUCCESS in this case. ---- - src/udev/udevadm-settle.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 65fc35f..66fd843 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -116,7 +116,11 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - } - - if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { -- log_debug("watching /run/udev failed"); -+ /* If it does not exist, we don't have to wait */ -+ if (errno == ENOENT) -+ rc = EXIT_SUCCESS; -+ else -+ log_debug("watching /run/udev/queue failed"); - goto out; - } - --- -1.7.9.2 - diff --git a/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch b/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch deleted file mode 100644 index 21d21356..00000000 --- a/1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 45e60962b7965f32755a76b79a28126299aac149 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 27 Jun 2014 14:20:17 +0200 -Subject: [PATCH] libudev: fix udev_queue_get_queue_is_empty() logic - ---- - src/libudev/libudev-queue.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index eb0e096..c32a7ef 100644 ---- src/libudev/libudev-queue.c -+++ src/libudev/libudev-queue.c -@@ -175,7 +175,7 @@ _public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue) - **/ - _public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue) - { -- return access("/run/udev/queue", F_OK) >= 0; -+ return access("/run/udev/queue", F_OK) < 0; - } - - /** --- -1.7.9.2 - diff --git a/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch b/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch deleted file mode 100644 index a9458e36..00000000 --- a/1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch +++ /dev/null @@ -1,248 +0,0 @@ -Based on 14cb733684d3c3f50d088a3a370ddf8e8894dfa4 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 27 Jun 2014 17:42:44 +0200 -Subject: [PATCH] libudev: queue provide file descriptor to watch busy event - queue - ---- - docs/libudev/libudev-sections.txt | 2 ++ - src/libudev/libudev-queue.c | 46 +++++++++++++++++++++++++++++++++++ - src/libudev/libudev.h | 2 ++ - src/libudev/libudev.sym | 2 ++ - src/udev/udevadm-settle.c | 48 ++++++++++++++++--------------------- - 5 files changed, 73 insertions(+), 27 deletions(-) - -diff --git docs/libudev/libudev-sections.txt docs/libudev/libudev-sections.txt -index c154645..8a31ded 100644 ---- docs/libudev/libudev-sections.txt -+++ docs/libudev/libudev-sections.txt -@@ -116,6 +116,8 @@ udev_queue_get_seqnum_sequence_is_finished - udev_queue_get_queued_list_entry - udev_queue_get_kernel_seqnum - udev_queue_get_udev_seqnum -+udev_queue_get_fd -+udev_queue_flush -
- -
-diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index c32a7ef..d4334b4 100644 ---- src/libudev/libudev-queue.c -+++ src/libudev/libudev-queue.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #include "libudev.h" - #include "libudev-private.h" -@@ -45,6 +46,7 @@ - struct udev_queue { - struct udev *udev; - int refcount; -+ int fd; - }; - - /** -@@ -69,6 +71,7 @@ _public_ struct udev_queue *udev_queue_new(struct udev *udev) - - udev_queue->refcount = 1; - udev_queue->udev = udev; -+ udev_queue->fd = -1; - return udev_queue; - } - -@@ -107,6 +110,9 @@ _public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue) - if (udev_queue->refcount > 0) - return NULL; - -+ if (udev_queue->fd >= 0) -+ close_nointr_nofail(udev_queue->fd); -+ - free(udev_queue); - return NULL; - } -@@ -222,3 +228,44 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu - { - return NULL; - } -+ -+/** -+ * udev_queue_get_fd: -+ * @udev_queue: udev queue context -+ * -+ * Returns: a file descriptor to watch for a queue to become empty. -+ */ -+_public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { -+ int fd; -+ int r; -+ -+ if (udev_queue->fd >= 0) -+ return udev_queue->fd; -+ -+ fd = inotify_init1(IN_CLOEXEC); -+ if (fd < 0) -+ return -errno; -+ -+ r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); -+ if (r < 0) { -+ r = -errno; -+ close(fd); -+ return r; -+ } -+ -+ udev_queue->fd = fd; -+ return fd; -+} -+ -+/** -+ * udev_queue_flush: -+ * @udev_queue: udev queue context -+ * -+ * Returns: the result of clearing the watch for queue changes. -+ */ -+_public_ int udev_queue_flush(struct udev_queue *udev_queue) { -+ if (udev_queue->fd < 0) -+ return -EINVAL; -+ -+ return flush_fd(udev_queue->fd); -+} -diff --git src/libudev/libudev.h src/libudev/libudev.h -index ceb89bd..4f2f115 100644 ---- src/libudev/libudev.h -+++ src/libudev/libudev.h -@@ -177,6 +177,8 @@ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); - int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated)); - int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue, - unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated)); -+int udev_queue_get_fd(struct udev_queue *udev_queue); -+int udev_queue_flush(struct udev_queue *udev_queue); - struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated)); - - /* -diff --git src/libudev/libudev.sym src/libudev/libudev.sym -index 1e6f885..95cd1c7 100644 ---- src/libudev/libudev.sym -+++ src/libudev/libudev.sym -@@ -82,6 +82,8 @@ global: - udev_queue_get_udev; - udev_queue_get_udev_is_active; - udev_queue_get_udev_seqnum; -+ udev_queue_get_fd; -+ udev_queue_flush; - udev_queue_new; - udev_queue_ref; - udev_queue_unref; -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 66fd843..79e8b59 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -29,7 +29,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -59,7 +58,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - const char *exists = NULL; - unsigned int timeout = 120; - struct pollfd pfd[1] = { {.fd = -1}, }; -- int rc = EXIT_FAILURE, c; -+ int c; -+ struct udev_queue *queue; -+ int rc = EXIT_FAILURE; - - while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) { - switch (c) { -@@ -79,9 +80,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - break; - case 'h': - help(); -- exit(EXIT_SUCCESS); -+ return EXIT_SUCCESS; - case '?': -- exit(EXIT_FAILURE); -+ return EXIT_FAILURE; - default: - assert_not_reached("Unknown argument"); - } -@@ -89,7 +90,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - - if (optind < argc) { - fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]); -- exit(EXIT_FAILURE); -+ return EXIT_FAILURE; - } - - /* guarantee that the udev daemon isn't pre-processing */ -@@ -101,26 +102,23 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - if (udev_ctrl_send_ping(uctrl, timeout) < 0) { - log_debug("no connection to daemon"); - udev_ctrl_unref(uctrl); -- rc = EXIT_SUCCESS; -- goto out; -+ return EXIT_SUCCESS; - } - udev_ctrl_unref(uctrl); - } - } - -- pfd[0].events = POLLIN; -- pfd[0].fd = inotify_init1(IN_CLOEXEC); -- if (pfd[0].fd < 0) { -- log_error("inotify_init failed: %m"); -- goto out; -+ queue = udev_queue_new(udev); -+ if (!queue) { -+ log_error("unable to get udev queue"); -+ return EXIT_FAILURE; - } - -- if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) { -- /* If it does not exist, we don't have to wait */ -- if (errno == ENOENT) -- rc = EXIT_SUCCESS; -- else -- log_debug("watching /run/udev/queue failed"); -+ pfd[0].events = POLLIN; -+ pfd[0].fd = udev_queue_get_fd(queue); -+ if (pfd[0].fd < 0) { -+ log_debug("queue is empty, nothing to watch"); -+ rc = EXIT_SUCCESS; - goto out; - } - -@@ -131,22 +129,18 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - } - - /* exit if queue is empty */ -- if (access("/run/udev/queue", F_OK) < 0) { -+ if (udev_queue_get_queue_is_empty(queue)) { - rc = EXIT_SUCCESS; - break; - } - -- /* wake up when "queue" file is deleted */ -- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) { -- char buf[sizeof(struct inotify_event) + PATH_MAX]; -- -- read(pfd[0].fd, buf, sizeof(buf)); -- } -+ /* wake up when queue is empty */ -+ if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) -+ udev_queue_flush(queue); - } - - out: -- if (pfd[0].fd >= 0) -- close(pfd[0].fd); -+ udev_queue_unref(queue); - return rc; - } - --- -1.7.9.2 - diff --git a/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch b/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch deleted file mode 100644 index 78c1c084..00000000 --- a/1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8a7a0c19edd2d971d4aa9d635f7978af841e8278 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Fri, 27 Jun 2014 19:54:45 +0200 -Subject: [PATCH] libudev: queue - watch entire directory to allow the re-use - of the watch descriptor - ---- - src/libudev/libudev-queue.c | 2 +- - src/udev/udevadm-settle.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/libudev/libudev-queue.c src/libudev/libudev-queue.c -index d4334b4..8ef1f3d 100644 ---- src/libudev/libudev-queue.c -+++ src/libudev/libudev-queue.c -@@ -245,7 +245,7 @@ _public_ int udev_queue_get_fd(struct udev_queue *udev_queue) { - if (fd < 0) - return -errno; - -- r = inotify_add_watch(fd, "/run/udev/queue" , IN_DELETE); -+ r = inotify_add_watch(fd, "/run/udev" , IN_DELETE); - if (r < 0) { - r = -errno; - close(fd); -diff --git src/udev/udevadm-settle.c src/udev/udevadm-settle.c -index 79e8b59..fa5b0c2 100644 ---- src/udev/udevadm-settle.c -+++ src/udev/udevadm-settle.c -@@ -135,7 +135,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) - } - - /* wake up when queue is empty */ -- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) -+ if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) - udev_queue_flush(queue); - } - --- -1.7.9.2 - diff --git a/1044-rules-update-qemu-hid-rules.patch b/1044-rules-update-qemu-hid-rules.patch deleted file mode 100644 index 52741afe..00000000 --- a/1044-rules-update-qemu-hid-rules.patch +++ /dev/null @@ -1,45 +0,0 @@ -From cd31d1884f1ecf38e11bc6268f446d75dfafbc25 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 24 Mar 2014 12:07:41 +0100 -Subject: [PATCH] rules: update qemu hid rules - -Update comment to be a bit more specific. - -Change match to blacklist the serial number of the broken devices -instead of whitelisting the serial number of the fixed devices. -This allows to do something useful with the serial number in the -future. ---- - rules/42-usb-hid-pm.rules | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules -index 3fd6e8a..c675b5b 100644 ---- rules/42-usb-hid-pm.rules -+++ rules/42-usb-hid-pm.rules -@@ -2,14 +2,15 @@ - # - # Enable autosuspend for qemu emulated usb hid devices - --# Note that there are buggy qemu versions which advertise remote --# wakeup support but don't actually implement it correctly. This --# is the reason why we need a match for the serial number here. --# The serial number "42" is used to tag the implementations where -+# Note that there are buggy qemu versions (0.13 & older) which -+# advertise remote wakeup support but don't actually implement -+# it correctly. This is the reason why we need a match for the -+# serial number here. Old, broken versions have serial "1". -+# It has been changed to "42" after fixing the bug to indicate - # remote wakeup is working. --ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" --ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" --ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" - - # Catch-all for Avocent HID devices. Keyed off interface in order to only - # trigger on HID class devices. --- -1.7.9.2 - diff --git a/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch b/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch deleted file mode 100644 index cd1f72c7..00000000 --- a/1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch +++ /dev/null @@ -1,29 +0,0 @@ -Based on 52fb538361053f8c4abce0e40cd0bae3d28ceb16 Mon Sep 17 00:00:00 2001 -From: Tom Hirst -Date: Wed, 25 Jun 2014 11:57:11 +0000 -Subject: [PATCH] rules: don't enable usb pm for Avocent devices - -The Avocent KVM over IP devices doesn't work correctly with USB power -management enabled. ---- - rules/42-usb-hid-pm.rules | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git rules/42-usb-hid-pm.rules rules/42-usb-hid-pm.rules -index c675b5b..4c300da 100644 ---- rules/42-usb-hid-pm.rules -+++ rules/42-usb-hid-pm.rules -@@ -12,10 +12,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}!= - ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" - ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto" - --# Catch-all for Avocent HID devices. Keyed off interface in order to only --# trigger on HID class devices. --ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{bInterfaceClass}=="03", TEST=="../power/control", ATTR{../power/control}="auto" -- - # Dell DRAC 4 - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="2500", TEST=="power/control", ATTR{power/control}="auto" - --- -1.7.9.2 - diff --git a/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch b/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch deleted file mode 100644 index 47fce280..00000000 --- a/1047-udev-net_setup_link-builtin-should-print-the-reason-.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 01d4590b775661ebc71c7b81b0c62ccd69395268 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Jul 2014 15:13:29 +0200 -Subject: [PATCH] udev: net_setup_link builtin should print the reason why - something fails - -Let's tell users what is going wrong. ---- - src/udev/udev-builtin-net_setup_link.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git src/udev/udev-builtin-net_setup_link.c src/udev/udev-builtin-net_setup_link.c -index 3cd384e..6207269 100644 ---- src/udev/udev-builtin-net_setup_link.c -+++ src/udev/udev-builtin-net_setup_link.c -@@ -43,17 +43,17 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv - r = link_config_get(ctx, dev, &link); - if (r < 0) { - if (r == -ENOENT) { -- log_debug("No matching link configuration found"); -+ log_debug("No matching link configuration found."); - return EXIT_SUCCESS; - } else { -- log_error("Could not get link config"); -+ log_error("Could not get link config: %s", strerror(-r)); - return EXIT_FAILURE; - } - } - - r = link_config_apply(ctx, link, dev, &name); - if (r < 0) { -- log_error("Could not apply link config to %s", udev_device_get_sysname(dev)); -+ log_error("Could not apply link config to %s: %s", udev_device_get_sysname(dev), strerror(-r)); - return EXIT_FAILURE; - } - -@@ -77,18 +77,18 @@ static int builtin_net_setup_link_init(struct udev *udev) { - if (r < 0) - return r; - -- log_debug("Created link configuration context"); -+ log_debug("Created link configuration context."); - return 0; - } - - static void builtin_net_setup_link_exit(struct udev *udev) { - link_config_ctx_free(ctx); - ctx = NULL; -- log_debug("Unloaded link configuration context"); -+ log_debug("Unloaded link configuration context."); - } - - static bool builtin_net_setup_link_validate(struct udev *udev) { -- log_debug("Check if link configuration needs reloading"); -+ log_debug("Check if link configuration needs reloading."); - if (!ctx) - return false; - --- -1.7.9.2 - diff --git a/1048-udev-net_setup_link-add-a-bit-more-logging.patch b/1048-udev-net_setup_link-add-a-bit-more-logging.patch deleted file mode 100644 index 740e3c36..00000000 --- a/1048-udev-net_setup_link-add-a-bit-more-logging.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 866ee3682213789f85b877700457fdca05695a0e Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 3 Jul 2014 09:57:27 +0200 -Subject: [PATCH] udev: net_setup_link - add a bit more logging - ---- - src/udev/net/link-config.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git src/udev/net/link-config.c src/udev/net/link-config.c -index 7a9d01b..b8650a6 100644 ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c -@@ -92,14 +92,20 @@ static int link_config_ctx_connect(link_config_ctx *ctx) { - - if (ctx->ethtool_fd == -1) { - r = ethtool_connect(&ctx->ethtool_fd); -- if (r < 0) -+ if (r < 0) { -+ log_warning("link_config: could not connect to ethtool: %s", -+ strerror(-r)); - return r; -+ } - } - - if (!ctx->rtnl) { - r = sd_rtnl_open(&ctx->rtnl, 0); -- if (r < 0) -+ if (r < 0) { -+ log_warning("link_config: could not connect to rtnl: %s", -+ strerror(-r)); - return r; -+ } - } - - return 0; --- -1.7.9.2 - diff --git a/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch b/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch deleted file mode 100644 index 6b3d7ec6..00000000 --- a/1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch +++ /dev/null @@ -1,36 +0,0 @@ -Based on a669ea9860900d5cdebbc4cb9aaea72db7e28a02 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 7 Jul 2014 14:50:16 +0200 -Subject: [PATCH] udev: link_config - ignore errors due to missing MAC address - -Otherwis, we get misleading error messages on links with MACs. - -Reported by Leonid Isaev. ---- - src/udev/net/link-config.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- src/udev/net/link-config.c -+++ src/udev/net/link-config.c 2014-07-08 10:44:19.450735575 +0000 -@@ -440,7 +440,9 @@ int link_config_apply(link_config_ctx *c - case MACPOLICY_PERSISTENT: - if (!mac_is_permanent(device)) { - r = get_mac(device, false, &generated_mac); -- if (r < 0) -+ if (r == -ENOENT) -+ break; -+ else if (r < 0) - return r; - mac = &generated_mac; - } -@@ -448,7 +450,9 @@ int link_config_apply(link_config_ctx *c - case MACPOLICY_RANDOM: - if (!mac_is_random(device)) { - r = get_mac(device, true, &generated_mac); -- if (r < 0) -+ if (r == -ENOENT) -+ break; -+ else if (r < 0) - return r; - mac = &generated_mac; - } diff --git a/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch b/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch deleted file mode 100644 index edab1583..00000000 --- a/1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 30632d97d9d68c8202e562f34afae8f8d6e9c377 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 15 Jul 2014 17:35:53 +0200 -Subject: [PATCH] rules: uaccess - add ID_SOFTWARE_RADIO - -On Tue, Jul 15, 2014 at 1:52 PM, Alick Zhao wrote: ->>> ->>> So maybe ID_SOFTWARE_RADIO ? ->> ->> Hmm, SDR is more a term for a generic technology than for a device ->> class. To me it does not really sound like an administrator would know ->> what this is. ->> ->> What exactly is the device or subsystem you want to make accessible to ->> locally logged-in users only? -> -> Initially it is bladeRF, but many more are of interest: USRP, rtl-sdr, -> HackRF, ... [1] -> -> I agree an administrator might not know what SDR is, since it is -> currently still not widely known, and makes sense only for amateurs -> and researchers. But as a SDR fan, I see many new SDR peripherals -> are created recently, and expect to see more. So a generic ID seems -> reasonable to me. -> -> [1] http://en.wikipedia.org/wiki/List_of_software-defined_radios ---- - src/login/70-uaccess.rules | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git src/login/70-uaccess.rules src/login/70-uaccess.rules -index 57f619d..694df2c 100644 ---- src/login/70-uaccess.rules -+++ src/login/70-uaccess.rules -@@ -72,4 +72,7 @@ ENV{DDC_DEVICE}=="?*", TAG+="uaccess" - # media player raw devices (for user-mode drivers, Android SDK, etc.) - SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="uaccess" - -+# software-defined radio communication devices -+ENV{ID_SOFTWARE_RADIO}=="?*", TAG+="uaccess" -+ - LABEL="uaccess_end" --- -1.7.9.2 - diff --git a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch b/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch deleted file mode 100644 index ecf11ad5..00000000 --- a/1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 24 Jul 2014 23:37:35 +0200 -Subject: [PATCH] udev: exclude MD from block device ownership event locking - -MD instantiates devices at open(). This is incomptible with the -locking logic, as the "change" event emitted when stopping a -device will bring it back. ---- - src/udev/udevd.c | 23 +++++++---------------- - 1 file changed, 7 insertions(+), 16 deletions(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index a45d324..db935d6 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -285,26 +285,17 @@ static void worker_new(struct event *event) - udev_event->exec_delay = exec_delay; - - /* -- * Take a "read lock" on the device node; this establishes -+ * Take a shared lock on the device node; this establishes - * a concept of device "ownership" to serialize device -- * access. External processes holding a "write lock" will -+ * access. External processes holding an exclusive lock will - * cause udev to skip the event handling; in the case udev -- * acquired the lock, the external process will block until -+ * acquired the lock, the external process can block until - * udev has finished its event handling. - */ -- -- /* -- * since we make check - device seems unused - we try -- * ioctl to deactivate - and device is found to be opened -- * sure, you try to take a write lock -- * if you get it udev is out -- * if you can't get it, udev is busy -- * we cannot deactivate openned device (as it is in-use) -- * maybe we should just exclude dm from that thing entirely -- * IMHO this sounds like a good plan for this moment -- */ -- if (streq_ptr("block", udev_device_get_subsystem(dev)) && -- !startswith(udev_device_get_sysname(dev), "dm-")) { -+ if (!streq_ptr(udev_device_get_action(dev), "remove") && -+ streq_ptr("block", udev_device_get_subsystem(dev)) && -+ !startswith(udev_device_get_sysname(dev), "dm-") && -+ !startswith(udev_device_get_sysname(dev), "md")) { - struct udev_device *d = dev; - - if (streq_ptr("partition", udev_device_get_devtype(d))) --- -1.7.9.2 - diff --git a/1056-udevd-add-event-timeout-commandline-option.patch b/1056-udevd-add-event-timeout-commandline-option.patch deleted file mode 100644 index 1f670688..00000000 --- a/1056-udevd-add-event-timeout-commandline-option.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 9719859c07aa13539ed2cd4b31972cd30f678543 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 29 Jul 2014 09:06:14 +0200 -Subject: [PATCH] udevd: add --event-timeout commandline option - -Some events take longer than the default 30 seconds. Killing those -events will leave the machine halfway configured. - -Add a commandline option '--event-timeout' to handle these cases. ---- - man/systemd-udevd.service.xml | 19 +++++++++++++++++++ - src/udev/udevd.c | 12 +++++++++++- - 2 files changed, 30 insertions(+), 1 deletion(-) - -diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml -index f44b7a0..8de43b1 100644 ---- man/systemd-udevd.service.xml -+++ man/systemd-udevd.service.xml -@@ -44,6 +44,7 @@ - - - -+ - - - -@@ -96,6 +97,15 @@ - - - -+ -+ -+ Wait for the event to finish up to the given -+ number of seconds. After this time the event will -+ be terminated. Default is 30. -+ -+ -+ -+ - - - Specify when systemd-udevd should resolve names of users and groups. -@@ -156,6 +166,15 @@ - - - -+ udev.event-timeout= -+ rd.udev.event-timeout= -+ -+ Wait for events to finish up to the given number -+ of seconds. This option might be useful if events are -+ terminated due to a timeout in large configurations. -+ -+ -+ - net.ifnames= - - Network interfaces are renamed to give them predictable names -diff --git src/udev/udevd.c src/udev/udevd.c -index db935d6..c5dd739 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -74,6 +74,7 @@ static bool reload; - static int children; - static int children_max; - static int exec_delay; -+static int event_timeout = 30; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -312,6 +313,9 @@ static void worker_new(struct event *event) - } - } - -+ if (event_timeout != 30) -+ udev_event->timeout_usec = event_timeout * USEC_PER_SEC; -+ - /* apply rules, create node, symlinks */ - udev_event_execute_rules(udev_event, rules, &sigmask_orig); - -@@ -1009,6 +1013,8 @@ static void kernel_cmdline_options(struct udev *udev) - children_max = strtoul(opt + 18, NULL, 0); - } else if (startswith(opt, "udev.exec-delay=")) { - exec_delay = strtoul(opt + 16, NULL, 0); -+ } else if (startswith(opt, "udev.event-timeout=")) { -+ event_timeout = strtoul(opt + 16, NULL, 0); - } - - free(s); -@@ -1026,6 +1032,7 @@ int main(int argc, char *argv[]) - { "debug", no_argument, NULL, 'D' }, - { "children-max", required_argument, NULL, 'c' }, - { "exec-delay", required_argument, NULL, 'e' }, -+ { "event-timeout", required_argument, NULL, 't' }, - { "resolve-names", required_argument, NULL, 'N' }, - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, -@@ -1069,6 +1076,9 @@ int main(int argc, char *argv[]) - case 'e': - exec_delay = strtoul(optarg, NULL, 0); - break; -+ case 't': -+ event_timeout = strtoul(optarg, NULL, 0); -+ break; - case 'D': - debug = true; - log_set_max_level(LOG_DEBUG); -@@ -1406,7 +1416,7 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { -+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { - log_error("worker [%u] %s timeout; kill it", worker->pid, - worker->event ? worker->event->devpath : ""); - kill(worker->pid, SIGKILL); --- -1.7.9.2 - diff --git a/1057-udev-unify-event-timeout-handling.patch b/1057-udev-unify-event-timeout-handling.patch deleted file mode 100644 index 9aa819b6..00000000 --- a/1057-udev-unify-event-timeout-handling.patch +++ /dev/null @@ -1,504 +0,0 @@ -From dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 29 Jul 2014 15:18:27 +0200 -Subject: [PATCH] udev: unify event timeout handling - ---- - man/systemd-udevd.service.xml | 7 +++--- - man/udev.xml | 7 ------ - src/test/test-udev.c | 5 ++-- - src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- - src/udev/udev-rules.c | 38 ++++++++--------------------- - src/udev/udev.h | 8 +++---- - src/udev/udevadm-test.c | 2 +- - src/udev/udevd.c | 32 ++++++++++--------------- - 8 files changed, 61 insertions(+), 91 deletions(-) - -diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml -index 8de43b1..3053dc7 100644 ---- man/systemd-udevd.service.xml -+++ man/systemd-udevd.service.xml -@@ -99,9 +99,8 @@ - - - -- Wait for the event to finish up to the given -- number of seconds. After this time the event will -- be terminated. Default is 30. -+ Set the number of seconds to wait for events to finish. After -+ this time the event will be terminated. The default is 30 seconds. - - - -@@ -171,7 +170,7 @@ - - Wait for events to finish up to the given number - of seconds. This option might be useful if events are -- terminated due to a timeout in large configurations. -+ terminated due to kernel drivers taking too long to initialize. - - - -diff --git man/udev.xml man/udev.xml -index 4e5f8f0..123c073 100644 ---- man/udev.xml -+++ man/udev.xml -@@ -516,13 +516,6 @@ - - - -- -- -- Number of seconds an event waits for operations to finish before -- giving up and terminating itself. -- -- -- - - - Usually control and other possibly unsafe characters are replaced -diff --git src/test/test-udev.c src/test/test-udev.c -index b057cc8..26d6537 100644 ---- src/test/test-udev.c -+++ src/test/test-udev.c -@@ -80,7 +80,6 @@ out: - return err; - } - -- - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_event_unref_ struct udev_event *event = NULL; -@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { - } - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -- udev_event_execute_run(event, NULL); -+ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); -+ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) - udev_list_init(udev, &event->seclabel_list, false); - event->fd_signal = -1; - event->birth_usec = now(CLOCK_MONOTONIC); -- event->timeout_usec = 30 * 1000 * 1000; - return event; - } - -@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, - } - - static void spawn_read(struct udev_event *event, -- const char *cmd, -- int fd_stdout, int fd_stderr, -- char *result, size_t ressize) -+ usec_t timeout_usec, -+ const char *cmd, -+ int fd_stdout, int fd_stderr, -+ char *result, size_t ressize) - { - size_t respos = 0; - int fd_ep = -1; -@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, - struct epoll_event ev[4]; - int i; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) { -+ if (age_usec >= timeout_usec) { - log_error("timeout '%s'", cmd); - goto out; - } -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -543,8 +543,9 @@ out: - close(fd_ep); - } - --static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) --{ -+static int spawn_wait(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *cmd, pid_t pid) { - struct pollfd pfd[1]; - int err = 0; - -@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) - int timeout; - int fdcount; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) -+ if (age_usec >= timeout_usec) - timeout = 1000; - else -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -657,9 +658,9 @@ out: - } - - int udev_event_spawn(struct udev_event *event, -+ usec_t timeout_usec, - const char *cmd, char **envp, const sigset_t *sigmask, -- char *result, size_t ressize) --{ -+ char *result, size_t ressize) { - struct udev *udev = event->udev; - int outpipe[2] = {-1, -1}; - int errpipe[2] = {-1, -1}; -@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, - errpipe[WRITE_END] = -1; - } - -- spawn_read(event, cmd, -- outpipe[READ_END], errpipe[READ_END], -- result, ressize); -+ spawn_read(event, -+ timeout_usec, -+ cmd, -+ outpipe[READ_END], errpipe[READ_END], -+ result, ressize); - -- err = spawn_wait(event, cmd, pid); -+ err = spawn_wait(event, timeout_usec, cmd, pid); - } - - out: -@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) - return r; - } - --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) --{ -+void udev_event_execute_rules(struct udev_event *event, -+ usec_t timeout_usec, -+ struct udev_rules *rules, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - - if (udev_device_get_subsystem(dev) == NULL) -@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - if (major(udev_device_get_devnum(dev)) != 0) - udev_watch_end(event->udev, dev); - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - if (major(udev_device_get_devnum(dev)) != 0) - udev_node_remove(dev); -@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - udev_watch_end(event->udev, event->dev_db); - } - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - /* rename a new network interface, if needed */ - if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && -@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - } - } - --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) --{ -+void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { - struct udev_list_entry *list_entry; - - udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { -@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) - - udev_event_apply_format(event, cmd, program, sizeof(program)); - envp = udev_device_get_properties_envp(event->dev); -- udev_event_spawn(event, program, envp, sigmask, NULL, 0); -+ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); - } - } - } -diff --git src/udev/udev-rules.c src/udev/udev-rules.c -index 9864016..aacde38 100644 ---- src/udev/udev-rules.c -+++ src/udev/udev-rules.c -@@ -137,7 +137,6 @@ enum token_type { - TK_M_PARENTS_MAX, - - TK_M_TEST, /* val, mode_t */ -- TK_M_EVENT_TIMEOUT, /* int */ - TK_M_PROGRAM, /* val */ - TK_M_IMPORT_FILE, /* val */ - TK_M_IMPORT_PROG, /* val */ -@@ -201,7 +200,6 @@ struct token { - uid_t uid; - gid_t gid; - int devlink_prio; -- int event_timeout; - int watch; - enum udev_builtin_cmd builtin_cmd; - }; -@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) - [TK_M_PARENTS_MAX] = "M PARENTS_MAX", - - [TK_M_TEST] = "M TEST", -- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", - [TK_M_PROGRAM] = "M PROGRAM", - [TK_M_IMPORT_FILE] = "M IMPORT_FILE", - [TK_M_IMPORT_PROG] = "M IMPORT_PROG", -@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) - case TK_A_SECLABEL: - log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); - break; -- case TK_M_EVENT_TIMEOUT: -- log_debug("%s %u", token_str(type), token->key.event_timeout); -- break; - case TK_A_GOTO: - log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); - break; -@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file - return 0; - } - --static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) --{ -+static int import_program_into_properties(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *program, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - char **envp; - char result[UTIL_LINE_SIZE]; -@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * - int err; - - envp = udev_device_get_properties_envp(dev); -- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); -+ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); - if (err < 0) - return err; - -@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, - case TK_A_MODE_ID: - token->key.mode = *(mode_t *)data; - break; -- case TK_M_EVENT_TIMEOUT: -- token->key.event_timeout = *(int *)data; -- break; - case TK_RULE: - case TK_M_PARENTS_MIN: - case TK_M_PARENTS_MAX: -@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, - rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); - } - -- pos = strstr(value, "event_timeout="); -- if (pos != NULL) { -- int tout = atoi(&pos[strlen("event_timeout=")]); -- -- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); -- } -- -- pos = strstr(value, "string_escape="); - if (pos != NULL) { - pos = &pos[strlen("string_escape=")]; - if (startswith(pos, "none")) -@@ -1829,8 +1813,10 @@ enum escape_type { - ESCAPE_REPLACE, - }; - --int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) --{ -+int udev_rules_apply_to_event(struct udev_rules *rules, -+ struct udev_event *event, -+ usec_t timeout_usec, -+ const sigset_t *sigmask) { - struct token *cur; - struct token *rule; - enum escape_type esc = ESCAPE_UNSET; -@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - goto nomatch; - break; - } -- case TK_M_EVENT_TIMEOUT: -- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); -- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; -- break; - case TK_M_PROGRAM: { - char program[UTIL_PATH_SIZE]; - char **envp; -@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { -+ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { - if (cur->key.op != OP_NOMATCH) - goto nomatch; - } else { -@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (import_program_into_properties(event, import, sigmask) != 0) -+ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) - if (cur->key.op != OP_NOMATCH) - goto nomatch; - break; -diff --git src/udev/udev.h src/udev/udev.h -index 62538bc..4aca70b 100644 ---- src/udev/udev.h -+++ src/udev/udev.h -@@ -43,7 +43,6 @@ struct udev_event { - struct udev_list run_list; - int exec_delay; - usec_t birth_usec; -- usec_t timeout_usec; - int fd_signal; - unsigned int builtin_run; - unsigned int builtin_ret; -@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); -+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_static_dev_perms(struct udev_rules *rules); - - /* udev-event.c */ -@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * - 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, - const char *cmd, char **envp, const sigset_t *sigmask, - char *result, size_t ressize); --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); -+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); - 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 6a2f548..52cc26c 100644 ---- src/udev/udevadm-test.c -+++ src/udev/udevadm-test.c -@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - goto out; - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 30 * 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)); -diff --git src/udev/udevd.c src/udev/udevd.c -index c5dd739..dee7a87 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 int event_timeout = 30; -+static usec_t event_timeout_usec = 30 * USEC_PER_SEC; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -313,13 +313,10 @@ static void worker_new(struct event *event) - } - } - -- if (event_timeout != 30) -- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; -- - /* apply rules, create node, symlinks */ -- udev_event_execute_rules(udev_event, rules, &sigmask_orig); -+ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); - -- udev_event_execute_run(udev_event, &sigmask_orig); -+ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); - - /* apply/restore inotify watch */ - if (udev_event->inotify_watch) { -@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) - } else if (startswith(opt, "udev.exec-delay=")) { - exec_delay = strtoul(opt + 16, NULL, 0); - } else if (startswith(opt, "udev.event-timeout=")) { -- event_timeout = strtoul(opt + 16, NULL, 0); -+ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; - } - - free(s); - } - } - --int main(int argc, char *argv[]) --{ -+int main(int argc, char *argv[]) { - struct udev *udev; - sigset_t mask; - int daemonize = false; -@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) - exec_delay = strtoul(optarg, NULL, 0); - break; - case 't': -- event_timeout = strtoul(optarg, NULL, 0); -+ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; - break; - case 'D': - debug = true; -@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) - " --debug\n" - " --children-max=\n" - " --exec-delay=\n" -+ " --event-timeout=\n" - " --resolve-names=early|late|never\n" - " --version\n" - " --help\n" -@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { -- log_error("worker [%u] %s timeout; kill it", worker->pid, -- worker->event ? worker->event->devpath : ""); -+ 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); -- if (worker->event) { -- 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; -- } -+ 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; - } - } - --- -1.7.9.2 - diff --git a/1058-udev-unify-event-timeout-handling.patch b/1058-udev-unify-event-timeout-handling.patch deleted file mode 100644 index a92d15f7..00000000 --- a/1058-udev-unify-event-timeout-handling.patch +++ /dev/null @@ -1,504 +0,0 @@ -Based on dd5eddd28a74a49607a8fffcaf960040dba98479 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 29 Jul 2014 15:18:27 +0200 -Subject: [PATCH] udev: unify event timeout handling - ---- - man/systemd-udevd.service.xml | 7 +++--- - man/udev.xml | 7 ------ - src/test/test-udev.c | 5 ++-- - src/udev/udev-event.c | 53 ++++++++++++++++++++++------------------- - src/udev/udev-rules.c | 38 ++++++++--------------------- - src/udev/udev.h | 8 +++---- - src/udev/udevadm-test.c | 2 +- - src/udev/udevd.c | 32 ++++++++++--------------- - 8 files changed, 61 insertions(+), 91 deletions(-) - -diff --git man/systemd-udevd.service.xml man/systemd-udevd.service.xml -index 8de43b1..3053dc7 100644 ---- man/systemd-udevd.service.xml -+++ man/systemd-udevd.service.xml -@@ -99,9 +99,8 @@ - - - -- Wait for the event to finish up to the given -- number of seconds. After this time the event will -- be terminated. Default is 30. -+ Set the number of seconds to wait for events to finish. After -+ this time the event will be terminated. The default is 30 seconds. - - - -@@ -171,7 +170,7 @@ - - Wait for events to finish up to the given number - of seconds. This option might be useful if events are -- terminated due to a timeout in large configurations. -+ terminated due to kernel drivers taking too long to initialize. - - - -diff --git man/udev.xml man/udev.xml -index 4e5f8f0..123c073 100644 ---- man/udev.xml -+++ man/udev.xml -@@ -516,13 +516,6 @@ - - - -- -- -- Number of seconds an event waits for operations to finish before -- giving up and terminating itself. -- -- -- - - - Usually control and other possibly unsafe characters are replaced -diff --git src/test/test-udev.c src/test/test-udev.c -index b057cc8..26d6537 100644 ---- src/test/test-udev.c -+++ src/test/test-udev.c -@@ -80,7 +80,6 @@ out: - return err; - } - -- - int main(int argc, char *argv[]) { - _cleanup_udev_unref_ struct udev *udev = NULL; - _cleanup_udev_event_unref_ struct udev_event *event = NULL; -@@ -155,8 +154,8 @@ int main(int argc, char *argv[]) { - } - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -- udev_event_execute_run(event, NULL); -+ udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); -+ udev_event_execute_run(event, 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 5213a4a..6ad80d5 100644 ---- src/udev/udev-event.c -+++ src/udev/udev-event.c -@@ -48,7 +48,6 @@ struct udev_event *udev_event_new(struct udev_device *dev) - udev_list_init(udev, &event->seclabel_list, false); - event->fd_signal = -1; - event->birth_usec = now(CLOCK_MONOTONIC); -- event->timeout_usec = 30 * 1000 * 1000; - return event; - } - -@@ -422,9 +421,10 @@ static int spawn_exec(struct udev_event *event, - } - - static void spawn_read(struct udev_event *event, -- const char *cmd, -- int fd_stdout, int fd_stderr, -- char *result, size_t ressize) -+ usec_t timeout_usec, -+ const char *cmd, -+ int fd_stdout, int fd_stderr, -+ char *result, size_t ressize) - { - size_t respos = 0; - int fd_ep = -1; -@@ -467,15 +467,15 @@ static void spawn_read(struct udev_event *event, - struct epoll_event ev[4]; - int i; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) { -+ if (age_usec >= timeout_usec) { - log_error("timeout '%s'", cmd); - goto out; - } -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -543,8 +543,9 @@ out: - close(fd_ep); - } - --static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) --{ -+static int spawn_wait(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *cmd, pid_t pid) { - struct pollfd pfd[1]; - int err = 0; - -@@ -555,14 +556,14 @@ static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid) - int timeout; - int fdcount; - -- if (event->timeout_usec > 0) { -+ if (timeout_usec > 0) { - usec_t age_usec; - - age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; -- if (age_usec >= event->timeout_usec) -+ if (age_usec >= timeout_usec) - timeout = 1000; - else -- timeout = ((event->timeout_usec - age_usec) / 1000) + 1000; -+ timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; - } else { - timeout = -1; - } -@@ -657,9 +658,9 @@ out: - } - - int udev_event_spawn(struct udev_event *event, -+ usec_t timeout_usec, - const char *cmd, char **envp, const sigset_t *sigmask, -- char *result, size_t ressize) --{ -+ char *result, size_t ressize) { - struct udev *udev = event->udev; - int outpipe[2] = {-1, -1}; - int errpipe[2] = {-1, -1}; -@@ -728,11 +729,13 @@ int udev_event_spawn(struct udev_event *event, - errpipe[WRITE_END] = -1; - } - -- spawn_read(event, cmd, -- outpipe[READ_END], errpipe[READ_END], -- result, ressize); -+ spawn_read(event, -+ timeout_usec, -+ cmd, -+ outpipe[READ_END], errpipe[READ_END], -+ result, ressize); - -- err = spawn_wait(event, cmd, pid); -+ err = spawn_wait(event, timeout_usec, cmd, pid); - } - - out: -@@ -776,8 +779,9 @@ static int rename_netif(struct udev_event *event) - return r; - } - --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask) --{ -+void udev_event_execute_rules(struct udev_event *event, -+ usec_t timeout_usec, -+ struct udev_rules *rules, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - - if (udev_device_get_subsystem(dev) == NULL) -@@ -791,7 +795,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - if (major(udev_device_get_devnum(dev)) != 0) - udev_watch_end(event->udev, dev); - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - if (major(udev_device_get_devnum(dev)) != 0) - udev_node_remove(dev); -@@ -808,7 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - udev_watch_end(event->udev, event->dev_db); - } - -- udev_rules_apply_to_event(rules, event, sigmask); -+ udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); - - /* rename a new network interface, if needed */ - if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && -@@ -883,8 +887,7 @@ void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules - } - } - --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) --{ -+void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { - struct udev_list_entry *list_entry; - - udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { -@@ -907,7 +910,7 @@ void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) - - udev_event_apply_format(event, cmd, program, sizeof(program)); - envp = udev_device_get_properties_envp(event->dev); -- udev_event_spawn(event, program, envp, sigmask, NULL, 0); -+ udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); - } - } - } -diff --git src/udev/udev-rules.c src/udev/udev-rules.c -index 9864016..aacde38 100644 ---- src/udev/udev-rules.c -+++ src/udev/udev-rules.c -@@ -137,7 +137,6 @@ enum token_type { - TK_M_PARENTS_MAX, - - TK_M_TEST, /* val, mode_t */ -- TK_M_EVENT_TIMEOUT, /* int */ - TK_M_PROGRAM, /* val */ - TK_M_IMPORT_FILE, /* val */ - TK_M_IMPORT_PROG, /* val */ -@@ -201,7 +200,6 @@ struct token { - uid_t uid; - gid_t gid; - int devlink_prio; -- int event_timeout; - int watch; - enum udev_builtin_cmd builtin_cmd; - }; -@@ -275,7 +273,6 @@ static const char *token_str(enum token_type type) - [TK_M_PARENTS_MAX] = "M PARENTS_MAX", - - [TK_M_TEST] = "M TEST", -- [TK_M_EVENT_TIMEOUT] = "M EVENT_TIMEOUT", - [TK_M_PROGRAM] = "M PROGRAM", - [TK_M_IMPORT_FILE] = "M IMPORT_FILE", - [TK_M_IMPORT_PROG] = "M IMPORT_PROG", -@@ -409,9 +406,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) - case TK_A_SECLABEL: - log_debug("%s %s '%s' '%s'", token_str(type), operation_str(op), attr, value); - break; -- case TK_M_EVENT_TIMEOUT: -- log_debug("%s %u", token_str(type), token->key.event_timeout); -- break; - case TK_A_GOTO: - log_debug("%s '%s' %u", token_str(type), value, token->key.rule_goto); - break; -@@ -627,8 +621,9 @@ static int import_file_into_properties(struct udev_device *dev, const char *file - return 0; - } - --static int import_program_into_properties(struct udev_event *event, const char *program, const sigset_t *sigmask) --{ -+static int import_program_into_properties(struct udev_event *event, -+ usec_t timeout_usec, -+ const char *program, const sigset_t *sigmask) { - struct udev_device *dev = event->dev; - char **envp; - char result[UTIL_LINE_SIZE]; -@@ -636,7 +631,7 @@ static int import_program_into_properties(struct udev_event *event, const char * - int err; - - envp = udev_device_get_properties_envp(dev); -- err = udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)); -+ err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); - if (err < 0) - return err; - -@@ -942,9 +937,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, - case TK_A_MODE_ID: - token->key.mode = *(mode_t *)data; - break; -- case TK_M_EVENT_TIMEOUT: -- token->key.event_timeout = *(int *)data; -- break; - case TK_RULE: - case TK_M_PARENTS_MIN: - case TK_M_PARENTS_MAX: -@@ -1462,14 +1454,6 @@ static int add_rule(struct udev_rules *rules, char *line, - rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); - } - -- pos = strstr(value, "event_timeout="); -- if (pos != NULL) { -- int tout = atoi(&pos[strlen("event_timeout=")]); -- -- rule_add_key(&rule_tmp, TK_M_EVENT_TIMEOUT, op, NULL, &tout); -- } -- -- pos = strstr(value, "string_escape="); - if (pos != NULL) { - pos = &pos[strlen("string_escape=")]; - if (startswith(pos, "none")) -@@ -1829,8 +1813,10 @@ enum escape_type { - ESCAPE_REPLACE, - }; - --int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, const sigset_t *sigmask) --{ -+int udev_rules_apply_to_event(struct udev_rules *rules, -+ struct udev_event *event, -+ usec_t timeout_usec, -+ const sigset_t *sigmask) { - struct token *cur; - struct token *rule; - enum escape_type esc = ESCAPE_UNSET; -@@ -2024,10 +2010,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - goto nomatch; - break; - } -- case TK_M_EVENT_TIMEOUT: -- log_debug("OPTIONS event_timeout=%u", cur->key.event_timeout); -- event->timeout_usec = cur->key.event_timeout * 1000 * 1000; -- break; - case TK_M_PROGRAM: { - char program[UTIL_PATH_SIZE]; - char **envp; -@@ -2042,7 +2024,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (udev_event_spawn(event, program, envp, sigmask, result, sizeof(result)) < 0) { -+ if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { - if (cur->key.op != OP_NOMATCH) - goto nomatch; - } else { -@@ -2078,7 +2060,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event - rules_str(rules, rule->rule.filename_off), - rule->rule.filename_line); - -- if (import_program_into_properties(event, import, sigmask) != 0) -+ if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) - if (cur->key.op != OP_NOMATCH) - goto nomatch; - break; -diff --git src/udev/udev.h src/udev/udev.h -index 62538bc..4aca70b 100644 ---- src/udev/udev.h -+++ src/udev/udev.h -@@ -43,7 +43,6 @@ struct udev_event { - struct udev_list run_list; - int exec_delay; - usec_t birth_usec; -- usec_t timeout_usec; - int fd_signal; - unsigned int builtin_run; - unsigned int builtin_ret; -@@ -72,7 +71,7 @@ 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, const sigset_t *sigmask); -+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_static_dev_perms(struct udev_rules *rules); - - /* udev-event.c */ -@@ -82,10 +81,11 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * - 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, - const char *cmd, char **envp, const sigset_t *sigmask, - char *result, size_t ressize); --void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset); --void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset); -+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); - 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 6a2f548..52cc26c 100644 ---- src/udev/udevadm-test.c -+++ src/udev/udevadm-test.c -@@ -138,7 +138,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) - goto out; - } - -- udev_event_execute_rules(event, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 30 * 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)); -diff --git src/udev/udevd.c src/udev/udevd.c -index c5dd739..dee7a87 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 int event_timeout = 30; -+static usec_t event_timeout_usec = 30 * USEC_PER_SEC; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -313,13 +313,10 @@ static void worker_new(struct event *event) - } - } - -- if (event_timeout != 30) -- udev_event->timeout_usec = event_timeout * USEC_PER_SEC; -- - /* apply rules, create node, symlinks */ -- udev_event_execute_rules(udev_event, rules, &sigmask_orig); -+ udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); - -- udev_event_execute_run(udev_event, &sigmask_orig); -+ udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); - - /* apply/restore inotify watch */ - if (udev_event->inotify_watch) { -@@ -1014,15 +1011,14 @@ static void kernel_cmdline_options(struct udev *udev) - } else if (startswith(opt, "udev.exec-delay=")) { - exec_delay = strtoul(opt + 16, NULL, 0); - } else if (startswith(opt, "udev.event-timeout=")) { -- event_timeout = strtoul(opt + 16, NULL, 0); -+ event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; - } - - free(s); - } - } - --int main(int argc, char *argv[]) --{ -+int main(int argc, char *argv[]) { - struct udev *udev; - sigset_t mask; - int daemonize = false; -@@ -1077,7 +1073,7 @@ int main(int argc, char *argv[]) - exec_delay = strtoul(optarg, NULL, 0); - break; - case 't': -- event_timeout = strtoul(optarg, NULL, 0); -+ event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; - break; - case 'D': - debug = true; -@@ -1103,6 +1099,7 @@ int main(int argc, char *argv[]) - " --debug\n" - " --children-max=\n" - " --exec-delay=\n" -+ " --event-timeout=\n" - " --resolve-names=early|late|never\n" - " --version\n" - " --help\n" -@@ -1416,20 +1413,17 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout * USEC_PER_SEC) { -- log_error("worker [%u] %s timeout; kill it", worker->pid, -- worker->event ? worker->event->devpath : ""); -+ 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); -- if (worker->event) { -- 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; -- } -+ 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; - } - } - --- -1.7.9.2 - diff --git a/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch b/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch deleted file mode 100644 index 62d5d665..00000000 --- a/1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9f20a8a376f924c8eb5423cfc1f98644fc1e2d1a Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Wed, 30 Jul 2014 10:10:46 +0200 -Subject: [PATCH] udev: fixup commit dd5eddd28a74a49607a8fffcaf960040dba98479 - -Commit dd5eddd28a74a49607a8fffcaf960040dba98479 accidentally -removed one line too many. ---- - src/udev/udev-rules.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git src/udev/udev-rules.c src/udev/udev-rules.c -index 59bc124..cc56215 100644 ---- src/udev/udev-rules.c -+++ src/udev/udev-rules.c -@@ -1436,6 +1436,7 @@ static int add_rule(struct udev_rules *rules, char *line, - rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio); - } - -+ pos = strstr(value, "string_escape="); - if (pos != NULL) { - pos = &pos[strlen("string_escape=")]; - if (startswith(pos, "none")) --- -1.7.9.2 - diff --git a/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch b/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch deleted file mode 100644 index 20d064f8..00000000 --- a/1061-rules-allow-systemd-to-manage-loop-device-partitions.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b5df2eabf3fdd3e1663bc4c948812472084f3e96 Mon Sep 17 00:00:00 2001 -From: Kevin Wells -Date: Thu, 31 Jul 2014 17:38:21 +0200 -Subject: [PATCH] rules: allow systemd to manage loop device partitions - -SYSTEMD_READY is currently set to 0 for all loop devices (loop[0-9]*) -that do not have a backing_file. Partitioned loop devices (ex. loop0p1), -however, are matched by this rule and excluded by systemd even though -they are active devices. - -This change adds an additional check to the rule, ensuring that only -top level loop devices (loop[0-9]+$) are excluded from systemd. ---- - rules/99-systemd.rules.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git rules/99-systemd.rules.in rules/99-systemd.rules.in -index c3ef81b..aa435c4 100644 ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in -@@ -23,7 +23,7 @@ SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" - - # Ignore loop devices that don't have any file attached --SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" -+SUBSYSTEM=="block", KERNEL=="loop[0-9]*", ENV{DEVTYPE}=="disk", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" - - # Ignore nbd devices in the "add" event, with "change" the nbd is ready - ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" --- -1.7.9.2 - diff --git a/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch b/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch deleted file mode 100644 index 06966c4c..00000000 --- a/1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch +++ /dev/null @@ -1,96 +0,0 @@ -Based on e98bbfd2074e2b1079b7059341eac25741baf319 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Mon, 4 Aug 2014 18:15:34 +0200 -Subject: [PATCH] udev: path_id - suppress ID_PATH for devices with an unknown - parent device type - -https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1321816 ---- - src/udev/udev-builtin-path_id.c | 38 +++++++++++++++++++++++++++----------- - 1 file changed, 27 insertions(+), 11 deletions(-) - ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c 2014-08-22 14:08:59.250235369 +0000 -@@ -524,7 +524,8 @@ static int builtin_path_id(struct udev_d - { - struct udev_device *parent; - char *path = NULL; -- bool some_transport = false; -+ bool supported_transport = false; -+ bool supported_parent = false; - - /* S390 ccw bus */ - parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL); -@@ -545,47 +546,62 @@ static int builtin_path_id(struct udev_d - handle_scsi_tape(parent, &path); - } else if (streq(subsys, "scsi")) { - parent = handle_scsi(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "cciss")) { - parent = handle_cciss(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "usb")) { - parent = handle_usb(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "bcma")) { - parent = handle_bcma(parent, &path); -- some_transport = true; -+ supported_transport = true; - } else if (streq(subsys, "serio")) { - path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent)); - parent = skip_subsystem(parent, "serio"); - } else if (streq(subsys, "pci")) { - path_prepend(&path, "pci-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "pci"); -+ supported_parent = true; - } else if (streq(subsys, "platform")) { - path_prepend(&path, "platform-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "platform"); -- some_transport = true; -+ supported_transport = true; -+ supported_parent = true; - } else if (streq(subsys, "acpi")) { - path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "acpi"); -+ supported_parent = true; - } else if (streq(subsys, "xen")) { - path_prepend(&path, "xen-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "xen"); -+ supported_parent = true; - } else if (streq(subsys, "scm")) { - path_prepend(&path, "scm-%s", udev_device_get_sysname(parent)); - parent = skip_subsystem(parent, "scm"); -- some_transport = true; -+ supported_transport = true; -+ supported_parent = true; - } - - parent = udev_device_get_parent(parent); - } - - /* -- * Do not return a single-parent-device-only for block -- * devices, they might have entire buses behind it which -- * do not get unique IDs only by using the parent device. -+ * Do return devices with have an unknown type of parent device, they -+ * might produce conflicting IDs below multiple independent parent -+ * devices. - */ -- if (!some_transport && streq(udev_device_get_subsystem(dev), "block")) { -+ if (!supported_parent) { -+ free(path); -+ path = NULL; -+ } -+ -+ /* -+ * Do not return a have-only a single-parent block devices, some -+ * have entire hidden buses behind it, and not create predictable -+ * IDs that way. -+ */ -+ if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { - free(path); - path = NULL; - } diff --git a/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch b/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch deleted file mode 100644 index 07755c04..00000000 --- a/1064-udev-hwdb-do-not-look-at-usb_device-parents.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 77cf759ea05bea476cdcb8d0dcd04c4e6fb3b2ff Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 26 Aug 2014 18:27:36 +0200 -Subject: [PATCH] udev: hwdb - do not look at "usb_device" parents - -Based on a patch from Simon McVittie . - -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758050 ---- - src/udev/udev-builtin-hwdb.c | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git src/udev/udev-builtin-hwdb.c src/udev/udev-builtin-hwdb.c -index cac97e7..695a31a 100644 ---- src/udev/udev-builtin-hwdb.c -+++ src/udev/udev-builtin-hwdb.c -@@ -88,9 +88,10 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device - const char *filter, bool test) { - struct udev_device *d; - char s[16]; -- int n = 0; -+ bool last = false; -+ int r = 0; - -- for (d = srcdev; d; d = udev_device_get_parent(d)) { -+ for (d = srcdev; d && !last; d = udev_device_get_parent(d)) { - const char *dsubsys; - const char *modalias = NULL; - -@@ -104,19 +105,24 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device - - modalias = udev_device_get_property_value(d, "MODALIAS"); - -- /* the usb_device does not have a modalias, compose one */ -- if (!modalias && streq(dsubsys, "usb")) -- modalias = modalias_usb(d, s, sizeof(s)); -+ if (streq(dsubsys, "usb") && streq_ptr(udev_device_get_devtype(d), "usb_device")) { -+ /* if the usb_device does not have a modalias, compose one */ -+ if (!modalias) -+ modalias = modalias_usb(d, s, sizeof(s)); -+ -+ /* avoid looking at any parent device, they are usually just a USB hub */ -+ last = true; -+ } - - if (!modalias) - continue; - -- n = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); -- if (n > 0) -+ r = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); -+ if (r > 0) - break; - } - -- return n; -+ return r; - } - - static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool test) { --- -1.7.9.2 - diff --git a/1065-udev-bump-event-timeout-to-60-seconds.patch b/1065-udev-bump-event-timeout-to-60-seconds.patch deleted file mode 100644 index aae4da95..00000000 --- a/1065-udev-bump-event-timeout-to-60-seconds.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2e92633dbae52f5ac9b7b2e068935990d475d2cd Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 30 Aug 2014 11:36:32 +0200 -Subject: [PATCH] udev: bump event timeout to 60 seconds - ---- - src/udev/udevadm-test.c | 2 +- - src/udev/udevd.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c -index 8486049..809adb6 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, 30 * USEC_PER_SEC, rules, &sigmask_orig); -+ udev_event_execute_rules(event, 60 * 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)); -diff --git src/udev/udevd.c src/udev/udevd.c -index 9c2b0d5..e72c5b2 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -73,7 +73,7 @@ static bool reload; - static int children; - static int children_max; - static int exec_delay; --static usec_t event_timeout_usec = 30 * USEC_PER_SEC; -+static usec_t event_timeout_usec = 60 * 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/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch index 3bb4d407..e08ad9f8 100644 --- a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +++ b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch @@ -18,8 +18,10 @@ Signed-off-by: Jeff Mahoney src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------ 4 files changed, 32 insertions(+), 7 deletions(-) ---- a/rules/60-persistent-storage.rules -+++ b/rules/60-persistent-storage.rules +Index: systemd/rules/60-persistent-storage.rules +=================================================================== +--- systemd.orig/rules/60-persistent-storage.rules ++++ systemd/rules/60-persistent-storage.rules @@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" @@ -31,9 +33,11 @@ Signed-off-by: Jeff Mahoney # firewire KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" ---- a/src/udev/scsi_id/scsi_id.c -+++ b/src/udev/scsi_id/scsi_id.c -@@ -44,6 +44,7 @@ static const struct option options[] = { +Index: systemd/src/udev/scsi_id/scsi_id.c +=================================================================== +--- systemd.orig/src/udev/scsi_id/scsi_id.c ++++ systemd/src/udev/scsi_id/scsi_id.c +@@ -43,6 +43,7 @@ static const struct option options[] = { { "replace-whitespace", no_argument, NULL, 'u' }, { "sg-version", required_argument, NULL, 's' }, { "verbose", no_argument, NULL, 'v' }, @@ -41,24 +45,24 @@ Signed-off-by: Jeff Mahoney { "version", no_argument, NULL, 'V' }, /* don't advertise -V */ { "export", no_argument, NULL, 'x' }, { "help", no_argument, NULL, 'h' }, -@@ -56,6 +57,7 @@ static char config_file[MAX_PATH_LEN] = +@@ -54,6 +55,7 @@ static bool dev_specified = false; + static char config_file[MAX_PATH_LEN] = "/etc/scsi_id.config"; static enum page_code default_page_code = PAGE_UNSPECIFIED; static int sg_version = 4; - static int debug = 0; +static bool compat_truncated = false; static bool reformat_serial = false; static bool export = false; static char vendor_str[64]; -@@ -323,6 +325,7 @@ static void help(void) { - " -g,--whitelisted threat device as whitelisted\n" - " -u,--replace-whitespace replace all whitespace by underscores\n" - " -v,--verbose verbose logging\n" +@@ -316,6 +318,7 @@ static void help(void) { + " -g --whitelisted Treat device as whitelisted\n" + " -u --replace-whitespace Replace all whitespace by underscores\n" + " -v --verbose Verbose logging\n" + " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n" - " --version print version\n" - " -x,--export print values as environment keys\n" - " -h,--help print this help text\n\n"); -@@ -393,6 +396,10 @@ static int set_options(struct udev *udev - debug++; + " -x --export Print values as environment keys\n" + , program_invocation_short_name); + +@@ -387,6 +390,10 @@ static int set_options(struct udev *udev + log_open(); break; + case '9': @@ -68,7 +72,7 @@ Signed-off-by: Jeff Mahoney case 'V': printf("%s\n", VERSION); exit(0); -@@ -535,6 +542,9 @@ static int scsi_id(struct udev *udev, ch +@@ -528,6 +535,9 @@ static int scsi_id(struct udev *udev, ch util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str)); util_replace_chars(serial_str, NULL); printf("ID_SERIAL=%s\n", serial_str); @@ -78,7 +82,7 @@ Signed-off-by: Jeff Mahoney util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str)); util_replace_chars(serial_str, NULL); printf("ID_SERIAL_SHORT=%s\n", serial_str); -@@ -565,7 +575,10 @@ static int scsi_id(struct udev *udev, ch +@@ -558,7 +568,10 @@ static int scsi_id(struct udev *udev, ch if (reformat_serial) { char serial_str[MAX_SERIAL_LEN]; @@ -90,8 +94,10 @@ Signed-off-by: Jeff Mahoney util_replace_chars(serial_str, NULL); printf("%s\n", serial_str); goto out; ---- a/src/udev/scsi_id/scsi_id.h -+++ b/src/udev/scsi_id/scsi_id.h +Index: systemd/src/udev/scsi_id/scsi_id.h +=================================================================== +--- systemd.orig/src/udev/scsi_id/scsi_id.h ++++ systemd/src/udev/scsi_id/scsi_id.h @@ -43,6 +43,7 @@ struct scsi_id_device { char kernel[64]; char serial[MAX_SERIAL_LEN]; @@ -100,9 +106,11 @@ Signed-off-by: Jeff Mahoney int use_sg; /* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */ ---- a/src/udev/scsi_id/scsi_serial.c -+++ b/src/udev/scsi_id/scsi_serial.c -@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a +Index: systemd/src/udev/scsi_id/scsi_serial.c +=================================================================== +--- systemd.orig/src/udev/scsi_id/scsi_serial.c ++++ systemd/src/udev/scsi_id/scsi_serial.c +@@ -96,7 +96,8 @@ static const char hex_str[]="0123456789a static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -112,7 +120,7 @@ Signed-off-by: Jeff Mahoney static int sg_err_category_new(struct udev *udev, int scsi_status, int msg_status, int -@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct +@@ -619,7 +620,7 @@ static int do_scsi_page83_inquiry(struct unsigned char page_83[SCSI_INQ_BUFF_LEN]; /* also pick up the page 80 serial number */ @@ -121,7 +129,7 @@ Signed-off-by: Jeff Mahoney memzero(page_83, SCSI_INQ_BUFF_LEN); retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83, -@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir +@@ -764,7 +765,8 @@ static int do_scsi_page83_prespc3_inquir /* Get unit serial number VPD page */ static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -131,7 +139,7 @@ Signed-off-by: Jeff Mahoney { int retval; int ser_ind; -@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct +@@ -798,9 +800,14 @@ static int do_scsi_page80_inquiry(struct ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]); if (ser_ind < 0) return 1; @@ -147,7 +155,7 @@ Signed-off-by: Jeff Mahoney } if (serial_short != NULL) { memcpy(serial_short, &buf[4], len); -@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev, +@@ -876,7 +883,7 @@ int scsi_get_serial(struct udev *udev, return 1; if (page_code == PAGE_80) { @@ -156,7 +164,7 @@ Signed-off-by: Jeff Mahoney retval = 1; goto completed; } else { -@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev, +@@ -950,7 +957,7 @@ int scsi_get_serial(struct udev *udev, for (ind = 4; ind <= page0[3] + 3; ind++) if (page0[ind] == PAGE_80) if (!do_scsi_page80_inquiry(udev, dev_scsi, fd, diff --git a/1067-udev-always-resolve-correctly-database-names-on-chan.patch b/1067-udev-always-resolve-correctly-database-names-on-chan.patch deleted file mode 100644 index 9fdc9c68..00000000 --- a/1067-udev-always-resolve-correctly-database-names-on-chan.patch +++ /dev/null @@ -1,53 +0,0 @@ -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 deleted file mode 100644 index e0f7039c..00000000 --- a/1068-udev-net_setup_link-export-the-.link-filename-applie.patch +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index 7f7d24aa..00000000 --- a/1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index f389aa8c..00000000 --- a/1070-rules-net-setup-link-remove-stray-linebreak.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index f821d890..00000000 --- a/1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch +++ /dev/null @@ -1,54 +0,0 @@ -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 deleted file mode 100644 index 2a5cebd2..00000000 --- a/1072-udev-netif_rename-don-t-log-to-kmsg.patch +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index 27aaa6e3..00000000 --- a/1073-udev-drop-print_kmsg.patch +++ /dev/null @@ -1,75 +0,0 @@ -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 deleted file mode 100644 index a617451f..00000000 --- a/1074-udev-fix-copy-paste-error-in-log-message.patch +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 08f6daeb..00000000 --- a/1075-udev-timeout-increase-timeout.patch +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index 4345f929..00000000 --- a/1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +++ /dev/null @@ -1,350 +0,0 @@ -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 deleted file mode 100644 index 57b2d699..00000000 --- a/1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +++ /dev/null @@ -1,350 +0,0 @@ -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 deleted file mode 100644 index 42e0af98..00000000 --- a/1078-udev-remove-userspace-firmware-loading-support.patch +++ /dev/null @@ -1,349 +0,0 @@ -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 deleted file mode 100644 index 37a5e752..00000000 --- a/1079-udev-remove-userspace-firmware-loading-support.patch +++ /dev/null @@ -1,349 +0,0 @@ -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/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch b/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch deleted file mode 100644 index a623b566..00000000 --- a/1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch +++ /dev/null @@ -1,73 +0,0 @@ -Based on 6f5cf8a8b1de763383f7382821147e538b7dbd6d Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:02:03 +0200 -Subject: [PATCH] udevd: parse_argv - warn if argumens are invalid - -Found by Coverity. Fixes CID #1238780. ---- - src/udev/udevd.c | 34 ++++++++++++++++++++++++++-------- - 1 file changed, 26 insertions(+), 8 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-19 10:36:25.602735652 +0000 -@@ -1002,11 +1002,20 @@ static void kernel_cmdline_options(struc - log_set_max_level(prio); - udev_set_log_priority(udev, prio); - } else if (startswith(opt, "udev.children-max=")) { -- children_max = strtoul(opt + 18, NULL, 0); -+ r = safe_atoi(opt + 18, &children_max); -+ if (r < 0) -+ log_warning("Invalid udev.children-max ignored: %s", opt + 18); - } else if (startswith(opt, "udev.exec-delay=")) { -- exec_delay = strtoul(opt + 16, NULL, 0); -+ r = safe_atoi(opt + 16, &exec_delay); -+ if (r < 0) -+ log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); - } else if (startswith(opt, "udev.event-timeout=")) { -- event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; -+ r = safe_atou64(opt + 16, &event_timeout_usec); -+ if (r < 0) { -+ log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); -+ break; -+ } -+ event_timeout_usec *= USEC_PER_SEC; - event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; - } - -@@ -1052,7 +1061,7 @@ int main(int argc, char *argv[]) { - label_init("/dev"); - - for (;;) { -- int option; -+ int option, r; - - option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); - if (option == -1) -@@ -1063,14 +1072,23 @@ int main(int argc, char *argv[]) { - daemonize = true; - break; - case 'c': -- children_max = strtoul(optarg, NULL, 0); -+ r = safe_atoi(optarg, &children_max); -+ if (r < 0) -+ log_warning("Invalid --children-max ignored: %s", optarg); - break; - case 'e': -- exec_delay = strtoul(optarg, NULL, 0); -+ r = safe_atoi(optarg, &exec_delay); -+ if (r < 0) -+ log_warning("Invalid --exec-delay ignored: %s", optarg); - break; - case 't': -- event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; -- event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; -+ r = safe_atou64(optarg, &event_timeout_usec); -+ if (r < 0) -+ log_warning("Invalig --event-timeout ignored: %s", optarg); -+ else { -+ event_timeout_usec *= USEC_PER_SEC; -+ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; -+ } - break; - case 'D': - debug = true; diff --git a/1081-udevd-check-return-of-various-functions.patch b/1081-udevd-check-return-of-various-functions.patch deleted file mode 100644 index 819e4499..00000000 --- a/1081-udevd-check-return-of-various-functions.patch +++ /dev/null @@ -1,55 +0,0 @@ -Based on d457ff8319b1e7c522c146f75e272f1226f4720c Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:07:02 +0200 -Subject: [PATCH] udevd: check return of various functions - -One reported by Coverity. Fixes CID #996252. ---- - src/udev/udevd.c | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-19 11:33:21.566236309 +0000 -@@ -1044,7 +1044,7 @@ int main(int argc, char *argv[]) { - int fd_worker = -1; - struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker; - struct udev_ctrl_connection *ctrl_conn = NULL; -- int rc = 1; -+ int rc = 1, r; - - udev = udev_new(); - if (udev == NULL) -@@ -1058,7 +1058,11 @@ int main(int argc, char *argv[]) { - log_set_max_level(udev_get_log_priority(udev)); - - log_debug("version %s", VERSION); -- label_init("/dev"); -+ r = label_init("/dev"); -+ if (r < 0) { -+ log_error("could not initialize labelling: %s", strerror(-r)); -+ goto exit; -+ } - - for (;;) { - int option, r; -@@ -1137,10 +1141,18 @@ int main(int argc, char *argv[]) { - } - - /* set umask before creating any file/directory */ -- chdir("/"); -+ r = chdir("/"); -+ if (r < 0) { -+ log_error("could not change dir to /: %m"); -+ goto exit; -+ } - umask(022); - -- mkdir("/run/udev", 0755); -+ r = mkdir("/run/udev", 0755); -+ if (r < 0) { -+ log_error("could not create /run/udev: %m"); -+ goto exit; -+ } - - dev_setup(NULL); - diff --git a/1082-udevadm-hwdb-check-return-value-of-fseeko.patch b/1082-udevadm-hwdb-check-return-value-of-fseeko.patch deleted file mode 100644 index 27e6dc45..00000000 --- a/1082-udevadm-hwdb-check-return-value-of-fseeko.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f901aaadd68050bc575c1c15b84f8f31fd4d494d Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:16:54 +0200 -Subject: [PATCH] udevadm: hwdb - check return value of fseeko() - -Fonud by Coverity. Fixes CID #996255. ---- - src/udev/udevadm-hwdb.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git src/udev/udevadm-hwdb.c src/udev/udevadm-hwdb.c -index 65cbf61..64273fb 100644 ---- src/udev/udevadm-hwdb.c -+++ src/udev/udevadm-hwdb.c -@@ -365,7 +365,12 @@ static int trie_store(struct trie *trie, const char *filename) { - fchmod(fileno(t.f), 0444); - - /* write nodes */ -- fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); -+ err = fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET); -+ if (err < 0) { -+ fclose(t.f); -+ unlink_noerrno(filename_tmp); -+ return -errno; -+ } - root_off = trie_store_nodes(&t, trie->root); - h.nodes_root_off = htole64(root_off); - pos = ftello(t.f); -@@ -378,7 +383,12 @@ static int trie_store(struct trie *trie, const char *filename) { - /* write header */ - size = ftello(t.f); - h.file_size = htole64(size); -- fseeko(t.f, 0, SEEK_SET); -+ err = fseeko(t.f, 0, SEEK_SET); -+ if (err < 0) { -+ fclose(t.f); -+ unlink_noerrno(filename_tmp); -+ return -errno; -+ } - fwrite(&h, sizeof(struct trie_header_f), 1, t.f); - err = ferror(t.f); - if (err) --- -1.7.9.2 - diff --git a/1083-udev-node-warn-if-chmod-chown-fails.patch b/1083-udev-node-warn-if-chmod-chown-fails.patch deleted file mode 100644 index 0b78f626..00000000 --- a/1083-udev-node-warn-if-chmod-chown-fails.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 543afdc63c02a5af3cf6bd2a264162f23474346a Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:22:09 +0200 -Subject: [PATCH] udev: node - warn if chmod/chown fails - -No functional change, just log the warning. - -Fonud by Coverity. Fixes CID #1237544. ---- - src/udev/udev-node.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git src/udev/udev-node.c src/udev/udev-node.c -index c164603..8ef7889 100644 ---- src/udev/udev-node.c -+++ src/udev/udev-node.c -@@ -281,8 +281,12 @@ static int node_permissions_apply(struct udev_device *dev, bool apply, - - if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) { - log_debug("set permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); -- chmod(devnode, mode); -- chown(devnode, uid, gid); -+ err = chmod(devnode, mode); -+ if (err < 0) -+ log_warning("setting mode of %s to %#o failed: %m", devnode, mode); -+ err = chown(devnode, uid, gid); -+ if (err < 0) -+ log_warning("setting owner of %s to uid=%u, gid=%u failed: %m", devnode, uid, gid); - } else { - log_debug("preserve permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid); - } --- -1.7.9.2 - diff --git a/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch b/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch deleted file mode 100644 index 1e8f4fcf..00000000 --- a/1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch +++ /dev/null @@ -1,45 +0,0 @@ -Based on 4bbdff757ed4e718a3348b93439a03055cc5e3bc Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 19:26:11 +0200 -Subject: [PATCH] udev: ctrl - log if setting SO_PASSCRED fails - -No functional change. - -Found by Coverity. Fixes CID #1237533. ---- - src/udev/udev-ctrl.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- src/udev/udev-ctrl.c -+++ src/udev/udev-ctrl.c 2014-09-19 10:45:55.494236229 +0000 -@@ -74,6 +74,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd( - { - struct udev_ctrl *uctrl; - const int on = 1; -+ int r; - - uctrl = new0(struct udev_ctrl, 1); - if (uctrl == NULL) -@@ -92,7 +93,9 @@ struct udev_ctrl *udev_ctrl_new_from_fd( - uctrl->bound = true; - uctrl->sock = fd; - } -- setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ r = setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ if (r < 0) -+ log_warning("could not set SO_PASSCRED: %m"); - - uctrl->saddr.sun_family = AF_LOCAL; - strscpy(uctrl->saddr.sun_path, sizeof(uctrl->saddr.sun_path), "/run/udev/control"); -@@ -209,7 +212,10 @@ struct udev_ctrl_connection *udev_ctrl_g - } - - /* enable receiving of the sender credentials in the messages */ -- setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+ if (r < 0) -+ log_warning("colud not set SO_PASSCRED: %m"); -+ - udev_ctrl_ref(uctrl); - return conn; - err: diff --git a/1085-udev-fix-typos.patch b/1085-udev-fix-typos.patch deleted file mode 100644 index f6476200..00000000 --- a/1085-udev-fix-typos.patch +++ /dev/null @@ -1,33 +0,0 @@ -Based on 65fea570f03df51dadc06a3e0d261a71fe62aa01 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 20:25:33 +0200 -Subject: [PATCH] udev: fix typos - -Spotted by Andreas Henriksson. ---- - src/udev/udev-ctrl.c | 2 +- - src/udev/udevd.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- src/udev/udev-ctrl.c -+++ src/udev/udev-ctrl.c 2014-09-19 00:00:00.000000000 +0000 -@@ -214,7 +214,7 @@ struct udev_ctrl_connection *udev_ctrl_g - /* enable receiving of the sender credentials in the messages */ - r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); - if (r < 0) -- log_warning("colud not set SO_PASSCRED: %m"); -+ log_warning("could not set SO_PASSCRED: %m"); - - udev_ctrl_ref(uctrl); - return conn; ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-19 10:47:36.306235720 +0000 -@@ -1088,7 +1088,7 @@ int main(int argc, char *argv[]) { - case 't': - r = safe_atou64(optarg, &event_timeout_usec); - if (r < 0) -- log_warning("Invalig --event-timeout ignored: %s", optarg); -+ log_warning("Invalid --event-timeout ignored: %s", optarg); - else { - event_timeout_usec *= USEC_PER_SEC; - event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; diff --git a/1086-udevd-don-t-fail-if-run-udev-exists.patch b/1086-udevd-don-t-fail-if-run-udev-exists.patch deleted file mode 100644 index 7f574d6a..00000000 --- a/1086-udevd-don-t-fail-if-run-udev-exists.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 25773e7fc59b4ce53d67da4e18bfe4d13ab0b14b Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Thu, 18 Sep 2014 21:57:49 +0200 -Subject: [PATCH] udevd: don't fail if /run/udev exists - ---- - src/udev/udevd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/udev/udevd.c src/udev/udevd.c -index 37db81c..29ccb51 100644 ---- src/udev/udevd.c -+++ src/udev/udevd.c -@@ -1155,7 +1155,7 @@ int main(int argc, char *argv[]) { - umask(022); - - r = mkdir("/run/udev", 0755); -- if (r < 0) { -+ if (r < 0 && errno != EEXIST) { - log_error("could not create /run/udev: %m"); - goto exit; - } --- -1.7.9.2 - diff --git a/1087-infinit-timeout-for-kmod-loaded-modules.patch b/1087-infinit-timeout-for-kmod-loaded-modules.patch deleted file mode 100644 index 4208c21f..00000000 --- a/1087-infinit-timeout-for-kmod-loaded-modules.patch +++ /dev/null @@ -1,135 +0,0 @@ ---- - src/udev/udev-event.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - src/udev/udev.h | 1 + - src/udev/udevd.c | 23 +++++++++++++++++++++-- - 3 files changed, 64 insertions(+), 2 deletions(-) - ---- src/udev/udev-event.c -+++ src/udev/udev-event.c 2014-09-24 14:32:53.115639820 +0000 -@@ -959,6 +959,46 @@ void udev_event_execute_rules(struct ude - } - } - -+#ifdef HAVE_KMOD -+static inline void udev_check_and_set_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { -+ char filename[UTIL_PATH_SIZE]; -+ switch (builtin_cmd) { -+ case UDEV_BUILTIN_KMOD: -+ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); -+ touch(filename); -+ default: -+ break; -+ } -+} -+ -+static inline void udev_check_and_unset_kmod(enum udev_builtin_cmd builtin_cmd, struct udev_event *event) { -+ char filename[UTIL_PATH_SIZE]; -+ switch (builtin_cmd) { -+ case UDEV_BUILTIN_KMOD: -+ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)getpid()); -+ unlink(filename); -+ default: -+ break; -+ } -+} -+ -+bool udev_check_for_kmod(pid_t pid) { -+ char filename[UTIL_PATH_SIZE]; -+ struct stat st; -+ snprintf(filename, sizeof(filename), "/run/udev/kmod/%u", (unsigned)pid); -+ if (stat(filename, &st) == 0) { -+ return true; -+ } -+ return false; -+} -+#else -+# define udev_set_kmod (a,b) -+# define udev_unset_kmod(a,b) -+bool udev_check_for_kmod(pid_t pid) { -+ return false; -+} -+#endif -+ - 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; - -@@ -970,7 +1010,9 @@ void udev_event_execute_run(struct udev_ - char command[UTIL_PATH_SIZE]; - - udev_event_apply_format(event, cmd, command, sizeof(command)); -+ udev_check_and_set_kmod(builtin_cmd, event); - udev_builtin_run(event->dev, builtin_cmd, command, false); -+ udev_check_and_unset_kmod(builtin_cmd, event); - } else { - char program[UTIL_PATH_SIZE]; - char **envp; ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-09-24 15:02:30.895592379 +0000 -@@ -76,6 +76,7 @@ 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 bool event_killkmod = false; - static sigset_t sigmask_orig; - static UDEV_LIST(event_list); - static UDEV_LIST(worker_list); -@@ -1017,6 +1018,12 @@ static void kernel_cmdline_options(struc - } - event_timeout_usec *= USEC_PER_SEC; - event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; -+ } else if (startswith(opt, "udev.killkmod=")) { -+ r = parse_boolean(opt + 14); -+ if (r < 0) -+ log_warning("Invalid udev.killkmod Ignoring: %s", opt + 14); -+ else -+ event_killkmod = r; - } - - free(s); -@@ -1065,7 +1072,7 @@ int main(int argc, char *argv[]) { - } - - for (;;) { -- int option, r; -+ int option; - - option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL); - if (option == -1) -@@ -1356,6 +1363,12 @@ int main(int argc, char *argv[]) { - udev_list_node_init(&event_list); - udev_list_node_init(&worker_list); - -+ r = mkdir_p("/run/udev/kmod", 0755); -+ if (r < 0 && errno != EEXIST) { -+ log_error("could not create /run/udev/kmod: %m"); -+ goto exit; -+ } -+ - for (;;) { - static usec_t last_usec; - struct epoll_event ev[8]; -@@ -1440,7 +1453,13 @@ int main(int argc, char *argv[]) { - - if (worker->state != WORKER_RUNNING) - continue; -- -+#ifdef HAVE_KMOD -+ if (udev_check_for_kmod(worker->pid)) { -+ log_debug("worker [%u] %s is using kmod", worker->pid, worker->event->devpath); -+ if (!event_killkmod) -+ continue; -+ } -+#endif - ts = now(CLOCK_MONOTONIC); - - if ((ts - worker->event_start_usec) > event_timeout_warn_usec) { ---- src/udev/udev.h -+++ src/udev/udev.h 2014-09-24 14:33:33.824008084 +0000 -@@ -88,6 +88,7 @@ int udev_event_spawn(struct udev_event * - char *result, size_t ressize); - 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); -+bool udev_check_for_kmod(pid_t pid); - 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[]); - diff --git a/1089-fix-cgroup-device-controller.patch b/1089-fix-cgroup-device-controller.patch deleted file mode 100644 index cd68533f..00000000 --- a/1089-fix-cgroup-device-controller.patch +++ /dev/null @@ -1,74 +0,0 @@ -From eb0f0863f5af48865fb4569e2076d5f9e2313995 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 10 Mar 2014 21:36:01 +0100 -Subject: nspawn: don't try mknod() of /dev/console with the correct - major/minor - -We overmount /dev/console with an external pty anyway, hence there's no -point in using the real major/minor when we create the node to -overmount. Instead, use the one of /dev/null now. - -This fixes a race against the cgroup device controller setup we are -using. In case /dev/console was create before the cgroup policy was -applied all was good, but if created in the opposite order the mknod() -would fail, since creating /dev/console is not allowed by it. Creating -/dev/null instances is however permitted, and hence use it. - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index d8d0dae..bef866a 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -879,23 +879,19 @@ static int setup_ptmx(const char *dest) { - } - - static int setup_dev_console(const char *dest, const char *console) { -+ _cleanup_umask_ mode_t u; -+ const char *to; - struct stat st; -- _cleanup_free_ char *to = NULL; - int r; -- _cleanup_umask_ mode_t u; - - assert(dest); - assert(console); - - u = umask(0000); - -- if (stat(console, &st) < 0) { -- log_error("Failed to stat %s: %m", console); -+ if (stat("/dev/null", &st) < 0) { -+ log_error("Failed to stat /dev/null: %m"); - return -errno; -- -- } else if (!S_ISCHR(st.st_mode)) { -- log_error("/dev/console is not a char device"); -- return -EIO; - } - - r = chmod_and_chown(console, 0600, 0, 0); -@@ -904,16 +900,15 @@ static int setup_dev_console(const char *dest, const char *console) { - return r; - } - -- if (asprintf(&to, "%s/dev/console", dest) < 0) -- return log_oom(); -- - /* We need to bind mount the right tty to /dev/console since - * ptys can only exist on pts file systems. To have something -- * to bind mount things on we create a device node first, that -- * has the right major/minor (note that the major minor -- * doesn't actually matter here, since we mount it over -- * anyway). */ -+ * to bind mount things on we create a device node first, and -+ * use /dev/null for that since we the cgroups device policy -+ * allows us to create that freely, while we cannot create -+ * /dev/console. (Note that the major minor doesn't actually -+ * matter here, since we mount it over anyway). */ - -+ to = strappenda(dest, "/dev/console"); - if (mknod(to, (st.st_mode & ~07777) | 0600, st.st_rdev) < 0) { - log_error("mknod() for /dev/console failed: %m"); - return -errno; --- -cgit v0.10.2 - diff --git a/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch b/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch deleted file mode 100644 index 3a3ad550..00000000 --- a/1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch +++ /dev/null @@ -1,58 +0,0 @@ -Based on cc821d02a37c8c76aaf15bae2d33fee1bdc4b2e0 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Tue, 28 Oct 2014 16:50:24 +0100 -Subject: [PATCH] udev: path_id - set supported_parent for well-known SCSI - setups - ---- - src/udev/udev-builtin-path_id.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c 2014-11-03 14:12:48.129956655 +0000 -@@ -379,7 +379,7 @@ out: - return hostdev; - } - --static struct udev_device *handle_scsi(struct udev_device *parent, char **path) -+static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) - { - const char *devtype; - const char *name; -@@ -394,6 +394,7 @@ static struct udev_device *handle_scsi(s - if (id != NULL) { - parent = skip_subsystem(parent, "scsi"); - path_prepend(path, "ieee1394-0x%s", id); -+ *supported_parent = true; - goto out; - } - -@@ -402,16 +403,19 @@ static struct udev_device *handle_scsi(s - - if (strstr(name, "/rport-") != NULL) { - parent = handle_scsi_fibre_channel(parent, path); -+ *supported_parent = true; - goto out; - } - - if (strstr(name, "/end_device-") != NULL) { - parent = handle_scsi_sas(parent, path); -+ *supported_parent = true; - goto out; - } - - if (strstr(name, "/session") != NULL) { - parent = handle_scsi_iscsi(parent, path); -+ *supported_parent = true; - goto out; - } - -@@ -545,7 +549,7 @@ static int builtin_path_id(struct udev_d - } else if (streq(subsys, "scsi_tape")) { - handle_scsi_tape(parent, &path); - } else if (streq(subsys, "scsi")) { -- parent = handle_scsi(parent, &path); -+ parent = handle_scsi(parent, &path, &supported_parent); - supported_transport = true; - } else if (streq(subsys, "cciss")) { - parent = handle_cciss(parent, &path); diff --git a/1091-udev-path_id-update-comments.patch b/1091-udev-path_id-update-comments.patch deleted file mode 100644 index a695f0db..00000000 --- a/1091-udev-path_id-update-comments.patch +++ /dev/null @@ -1,42 +0,0 @@ -From a42cdff19f2d34f12ceca0f40707421a8aaa2c2f Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 30 Oct 2014 01:18:34 +0100 -Subject: [PATCH] udev: path_id - update comments - ---- - src/udev/udev-builtin-path_id.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git src/udev/udev-builtin-path_id.c src/udev/udev-builtin-path_id.c -index 0d247f6..df996cb 100644 ---- src/udev/udev-builtin-path_id.c -+++ src/udev/udev-builtin-path_id.c -@@ -548,9 +548,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool - } - - /* -- * Do return devices with have an unknown type of parent device, they -- * might produce conflicting IDs below multiple independent parent -- * devices. -+ * Do not return devices with an unknown parent device type. They -+ * might produce conflicting IDs if the parent does not provide a -+ * unique and predictable name. - */ - if (!supported_parent) { - free(path); -@@ -558,9 +558,9 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool - } - - /* -- * Do not return a have-only a single-parent block devices, some -- * have entire hidden buses behind it, and not create predictable -- * IDs that way. -+ * Do not return block devices without a well-known transport. Some -+ * devices do not expose their buses and do not provide a unique -+ * and predictable name that way. - */ - if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) { - free(path); --- -1.7.9.2 - diff --git a/1092-libudev-do-not-accept-invalid-log-levels.patch b/1092-libudev-do-not-accept-invalid-log-levels.patch deleted file mode 100644 index 10b78859..00000000 --- a/1092-libudev-do-not-accept-invalid-log-levels.patch +++ /dev/null @@ -1,67 +0,0 @@ -Based on ee7122c0ec6aa11f02e9e8d94254b353f12d2c14 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 1 Nov 2014 12:06:41 -0400 -Subject: [PATCH] libudev: do not accept invalid log levels - -Invalid log levels lead to a assert failure later on. - -https://bugs.freedesktop.org/show_bug.cgi?id=85657 ---- - src/libudev/libudev-util.c | 10 +++++++--- - src/libudev/libudev.c | 19 ++++++++++++++++--- - 2 files changed, 23 insertions(+), 6 deletions(-) - ---- src/libudev/libudev-util.c -+++ src/libudev/libudev-util.c 2014-11-10 11:33:26.269519209 +0000 -@@ -255,9 +255,13 @@ int util_log_priority(const char *priori - char *endptr; - int prio; - -- prio = strtol(priority, &endptr, 10); -- if (endptr[0] == '\0' || isspace(endptr[0])) -- return prio; -+ prio = strtoul(priority, &endptr, 10); -+ if (endptr[0] == '\0' || isspace(endptr[0])) { -+ if (prio >= 0 && prio <= 7) -+ return prio; -+ else -+ return -ERANGE; -+ } - if (startswith(priority, "err")) - return LOG_ERR; - if (startswith(priority, "info")) ---- src/libudev/libudev.c -+++ src/libudev/libudev.c -@@ -193,7 +193,13 @@ _public_ struct udev *udev_new(void) - } - - if (streq(key, "udev_log")) { -- udev_set_log_priority(udev, util_log_priority(val)); -+ int prio; -+ -+ prio = util_log_priority(val); -+ if (prio < 0) -+ udev_err(udev, "/etc/udev/udev.conf:%u: invalid logging level '%s', ignoring.\n", line_nr, val); -+ else -+ udev_set_log_priority(udev, prio); - continue; - } - } -@@ -201,8 +207,15 @@ _public_ struct udev *udev_new(void) - - /* environment overrides config */ - env = secure_getenv("UDEV_LOG"); -- if (env != NULL) -- udev_set_log_priority(udev, util_log_priority(env)); -+ if (env != NULL) { -+ int prio; -+ -+ prio = util_log_priority(env); -+ if (prio < 0) -+ udev_err(udev, "$UDEV_LOG specifies invalid logging level '%s', ignoring.\n", env); -+ else -+ udev_set_log_priority(udev, prio); -+ } - - return udev; - } diff --git a/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch b/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch deleted file mode 100644 index 5f3bb576..00000000 --- a/1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch +++ /dev/null @@ -1,23 +0,0 @@ -Based on f671774f52838d35d78e62ddcb781b5b65b3373f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 4 Nov 2014 23:45:15 +0000 -Subject: [PATCH] udev: Fix parsing of udev.event-timeout kernel parameter. - ---- - src/udev/udevd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-11-10 12:28:20.385559165 +0000 -@@ -1011,9 +1011,9 @@ static void kernel_cmdline_options(struc - if (r < 0) - log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); - } else if (startswith(opt, "udev.event-timeout=")) { -- r = safe_atou64(opt + 16, &event_timeout_usec); -+ r = safe_atou64(opt + 19, &event_timeout_usec); - if (r < 0) { -- log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); -+ log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); - break; - } - event_timeout_usec *= USEC_PER_SEC; diff --git a/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch b/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch deleted file mode 100644 index 3cd42e5c..00000000 --- a/1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch +++ /dev/null @@ -1,58 +0,0 @@ -Based on cfe2061add5479710f6597899d632e64c54e62ef Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Wed, 5 Nov 2014 12:56:49 +0100 -Subject: [PATCH] udev: avoid magic constants in kernel-cmdline parsers - -Lets recognize the fact that startswith() returns a pointer to the tail on -success. Use it instead of hard-coding string-lengths as magic constants. ---- - src/udev/udevd.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - ---- src/udev/udevd.c -+++ src/udev/udevd.c 2014-11-10 12:31:15.745519116 +0000 -@@ -984,7 +984,7 @@ static void kernel_cmdline_options(struc - return; - - FOREACH_WORD_QUOTED(w, l, line, state) { -- char *s, *opt; -+ char *s, *opt, *value; - - s = strndup(w, l); - if (!s) -@@ -996,24 +996,24 @@ static void kernel_cmdline_options(struc - else - opt = s; - -- if (startswith(opt, "udev.log-priority=")) { -+ if ((value = startswith(opt, "udev.log-priority="))) { - int prio; - -- prio = util_log_priority(opt + 18); -+ prio = util_log_priority(value); - log_set_max_level(prio); - udev_set_log_priority(udev, prio); -- } else if (startswith(opt, "udev.children-max=")) { -- r = safe_atoi(opt + 18, &children_max); -+ } else if ((value = startswith(opt, "udev.children-max="))) { -+ r = safe_atoi(value, &children_max); - if (r < 0) -- log_warning("Invalid udev.children-max ignored: %s", opt + 18); -- } else if (startswith(opt, "udev.exec-delay=")) { -- r = safe_atoi(opt + 16, &exec_delay); -+ log_warning("Invalid udev.children-max ignored: %s", value); -+ } else if ((value = startswith(opt, "udev.exec-delay="))) { -+ r = safe_atoi(value, &exec_delay); - if (r < 0) -- log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); -- } else if (startswith(opt, "udev.event-timeout=")) { -- r = safe_atou64(opt + 19, &event_timeout_usec); -+ log_warning("Invalid udev.exec-delay ignored: %s", value); -+ } else if ((value = startswith(opt, "udev.event-timeout="))) { -+ r = safe_atou64(value, &event_timeout_usec); - if (r < 0) { -- log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); -+ log_warning("Invalid udev.event-timeout ignored: %s", value); - break; - } - event_timeout_usec *= USEC_PER_SEC; diff --git a/1095-set-ssd-disk-to-use-deadline-scheduler.patch b/1095-set-ssd-disk-to-use-deadline-scheduler.patch index 39c4a74a..d9d128f2 100644 --- a/1095-set-ssd-disk-to-use-deadline-scheduler.patch +++ b/1095-set-ssd-disk-to-use-deadline-scheduler.patch @@ -1,19 +1,24 @@ -Index: systemd-210/Makefile.am +--- + Makefile.am | 1 + + rules/60-ssd-scheduler.rules | 11 +++++++++++ + 2 files changed, 12 insertions(+) + +Index: systemd/Makefile.am =================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2546,6 +2546,7 @@ dist_udevrules_DATA += \ +--- systemd.orig/Makefile.am ++++ systemd/Makefile.am +@@ -3576,6 +3576,7 @@ dist_udevrules_DATA += \ rules/60-persistent-input.rules \ rules/60-persistent-alsa.rules \ rules/60-persistent-storage.rules \ + rules/60-ssd-scheduler.rules \ rules/64-btrfs.rules \ - rules/75-net-description.rules \ - rules/75-tty-description.rules \ -Index: systemd-210/rules/60-ssd-scheduler.rules + rules/70-mouse.rules \ + rules/70-touchpad.rules \ +Index: systemd/rules/60-ssd-scheduler.rules =================================================================== --- /dev/null -+++ systemd-210/rules/60-ssd-scheduler.rules ++++ systemd/rules/60-ssd-scheduler.rules @@ -0,0 +1,11 @@ +# do not edit this file, it will be overwritten on update + diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch index 49c1b2c9..7f09f46e 100644 --- a/1096-new-udev-root-symlink-generator.patch +++ b/1096-new-udev-root-symlink-generator.patch @@ -1,9 +1,16 @@ -Index: systemd-210/Makefile.am +--- + Makefile.am | 19 +++++ + src/udev/rootsymlink_generator/rootsymlink_generator.c | 57 +++++++++++++++++ + units/systemd-udev-root-symlink.service | 10 ++ + units/systemd-udev-root-symlink.service.in | 10 ++ + 4 files changed, 96 insertions(+) + +Index: systemd/Makefile.am =================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2791,6 +2791,25 @@ EXTRA_DIST += \ - test/rule-syntax-check.py +--- systemd.orig/Makefile.am ++++ systemd/Makefile.am +@@ -3862,6 +3862,25 @@ EXTRA_DIST += \ + # ------------------------------------------------------------------------------ +rootsymlink_generator_SOURCES = \ @@ -28,11 +35,11 @@ Index: systemd-210/Makefile.am ata_id_SOURCES = \ src/udev/ata_id/ata_id.c -Index: systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c =================================================================== --- /dev/null -+++ systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c -@@ -0,0 +1,65 @@ ++++ systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c +@@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014-2015 Robert Milasan + * @@ -64,59 +71,36 @@ Index: systemd-210/src/udev/rootsymlink_generator/rootsymlink_generator.c +#define _PATH_ "/run/udev/rules.d" +#define _FILE_ "10-root-symlink.rules" + -+int main() ++int main(void) +{ ++ char filename[BUFFER_SIZE], buf[BUFFER_SIZE]; + struct stat statbuf; ++ int fd; + -+ if (stat(_ROOTDEV_, &statbuf) != 0) ++ if (stat(_ROOTDEV_, &statbuf) < 0) + return 1; -+ -+ if (major(statbuf.st_dev) > 0) { -+ int fd = -1; -+ char filename[BUFFER_SIZE]; -+ -+ if (mkdir(_PATH_, 0755) != 0 && errno != EEXIST) -+ return errno; -+ -+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); -+ -+ if ((fd = open(filename, O_CREAT|O_WRONLY|O_TRUNC, 0644)) == -1) -+ return errno; -+ else { -+ char buf[BUFFER_SIZE]; -+ -+ snprintf(buf, BUFFER_SIZE, "ACTION==\"add|change\", SUBSYSTEM==\"block\", ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", -+ major(statbuf.st_dev), minor(statbuf.st_dev)); -+ -+ if (write(fd, buf, strlen(buf)) == -1) -+ return errno; -+ -+ if (close(fd) == -1) -+ return errno; -+ } -+ } -+ ++ if (major(statbuf.st_dev) <= 0) ++ return 0; ++ if (mkdir(_PATH_, 0755) < 0 && errno != EEXIST) ++ return errno; ++ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_); ++ fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644); ++ if (fd < 0) ++ return errno; ++ snprintf(buf, BUFFER_SIZE, ++ "ACTION==\"add|change\", SUBSYSTEM==\"block\", " ++ "ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n", ++ major(statbuf.st_dev), minor(statbuf.st_dev)); ++ if (write(fd, buf, strlen(buf)) < 0) ++ return errno; ++ if (close(fd) < 0) ++ return errno; + return 0; +} -Index: systemd-210/units/systemd-udev-root-symlink.service.in +Index: systemd/units/systemd-udev-root-symlink.service =================================================================== --- /dev/null -+++ systemd-210/units/systemd-udev-root-symlink.service.in -@@ -0,0 +1,10 @@ -+[Unit] -+Description=Rule generator for /dev/root symlink -+Before=systemd-udevd.service -+DefaultDependencies=no -+ConditionPathIsReadWrite=/run/udev -+ -+[Service] -+Type=oneshot -+RemainAfterExit=yes -+ExecStart=@udevlibexec@/rootsymlink-generator -Index: systemd-210/units/systemd-udev-root-symlink.service -=================================================================== ---- /dev/null -+++ systemd-210/units/systemd-udev-root-symlink.service ++++ systemd/units/systemd-udev-root-symlink.service @@ -0,0 +1,10 @@ +[Unit] +Description=Rule generator for /dev/root symlink @@ -128,3 +112,18 @@ Index: systemd-210/units/systemd-udev-root-symlink.service +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/udev/rootsymlink-generator +Index: systemd/units/systemd-udev-root-symlink.service.in +=================================================================== +--- /dev/null ++++ systemd/units/systemd-udev-root-symlink.service.in +@@ -0,0 +1,10 @@ ++[Unit] ++Description=Rule generator for /dev/root symlink ++Before=systemd-udevd.service ++DefaultDependencies=no ++ConditionPathIsReadWrite=/run/udev ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=@udevlibexec@/rootsymlink-generator diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch index 50bbc56f..486be9b2 100644 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -1,22 +1,26 @@ -Index: systemd-210/src/udev/udevd.c +--- + src/udev/udevd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-218/src/udev/udevd.c =================================================================== ---- systemd-210.orig/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c -@@ -454,7 +454,7 @@ static void event_run(struct event *even +--- systemd-218.orig/src/udev/udevd.c ++++ systemd-218/src/udev/udevd.c +@@ -446,7 +446,7 @@ static void event_run(struct event *even - if (children >= children_max) { - if (children_max > 1) + if (children >= arg_children_max) { + if (arg_children_max > 1) - log_debug("maximum number (%i) of children reached", children); + log_error("maximum number (%i) of children reached", children); return; } -@@ -1277,7 +1277,7 @@ int main(int argc, char *argv[]) { - children_max = 8; +@@ -1265,7 +1265,7 @@ int main(int argc, char *argv[]) { + arg_children_max = 8; if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { -- children_max += CPU_COUNT(&cpu_set) * 2; -+ children_max += CPU_COUNT(&cpu_set) * 64; +- arg_children_max += CPU_COUNT(&cpu_set) * 2; ++ arg_children_max += CPU_COUNT(&cpu_set) * 64; } } - log_debug("set children_max to %u", children_max); + log_debug("set children_max to %u", arg_children_max); diff --git a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch b/1098-udev-link_setup-respect-kernel-name-assign-policy.patch deleted file mode 100644 index 6772f650..00000000 --- a/1098-udev-link_setup-respect-kernel-name-assign-policy.patch +++ /dev/null @@ -1,154 +0,0 @@ -Based on 04b67d49254d956d31bcfe80340fb9df7ed332d3 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Tue, 15 Jul 2014 17:57:43 +0200 -Subject: [PATCH] udev: link_setup - respect kernel name assign policy - -Newer kernels export meta-information about the origin of an ifname. Respect this -from the ifname rename logic. We do not rename any interfaces that was originally -named by userspace, nor once which have already been renamed from userspace. - -Moreover, we optionally do not (the default) rename interfaces which the kernel -claims to have named in a predictable way. ---- - man/udev.xml | 13 ++++++++++- - network/99-default.link | 2 - - src/shared/missing.h | 21 +++++++++++++++++ - src/udev/net/link-config.c | 53 +++++++++++++++++++++++++++++++++++++-------- - src/udev/net/link-config.h | 1 - 5 files changed, 79 insertions(+), 11 deletions(-) - -Index: man/udev.xml -=================================================================== ---- man/udev.xml.orig -+++ man/udev.xml -@@ -914,10 +914,12 @@ - successful one is used. The name is not set directly, but - is exported to udev as the property ID_NET_NAME, - which is, by default, used by a udev rule to set -- NAME. The available policies are: -+ NAME. If the name has already -+ been set by userspace, no renaming is performed. -+ The available policies are: - - -- -+ - database - - The name is set based on entries in the Hardware -Index: src/shared/missing.h -=================================================================== ---- src/shared/missing.h.orig -+++ src/shared/missing.h -@@ -362,3 +362,24 @@ static inline int setns(int fd, int nsty - return syscall(__NR_setns, fd, nstype); - } - #endif -+ -+#ifndef NET_ADDR_RANDOM -+# define NET_ADDR_RANDOM 1 -+#endif -+ -+#ifndef NET_NAME_ENUM -+# define NET_NAME_ENUM 1 -+#endif -+ -+#ifndef NET_NAME_PREDICTABLE -+# define NET_NAME_PREDICTABLE 2 -+#endif -+ -+#ifndef NET_NAME_USER -+# define NET_NAME_USER 3 -+#endif -+ -+#ifndef NET_NAME_RENAMED -+# define NET_NAME_RENAMED 4 -+#endif -+ -Index: src/udev/net/link-config.c -=================================================================== ---- src/udev/net/link-config.c.orig -+++ src/udev/net/link-config.c -@@ -20,10 +20,11 @@ - ***/ - - #include --#include -+#include - - #include "sd-id128.h" - -+#include "missing.h" - #include "link-config.h" - #include "ethtool-util.h" - -@@ -297,23 +298,30 @@ static bool mac_is_random(struct udev_de - return false; - - /* check for NET_ADDR_RANDOM */ -- return type == 1; -+ return type == NET_ADDR_RANDOM; - } - --static bool mac_is_permanent(struct udev_device *device) { -+static bool should_rename(struct udev_device *device) { - const char *s; - unsigned type; - int r; - -- s = udev_device_get_sysattr_value(device, "addr_assign_type"); -+ s = udev_device_get_sysattr_value(device, "name_assign_type"); - if (!s) -- return true; /* if we don't know, assume it is permanent */ -+ return true; /* if we don't know, assume we should rename */ - r = safe_atou(s, &type); - if (r < 0) - return true; - -- /* check for NET_ADDR_PERM */ -- return type == 0; -+ switch (type) { -+ case NET_NAME_USER: -+ case NET_NAME_RENAMED: -+ return false; /* these were already named by userspace, do not touch again */ -+ case NET_NAME_PREDICTABLE: -+ case NET_NAME_ENUM: -+ default: -+ return true; /* the name is known to be bad, or of an unknown type */ -+ } - } - - #define HASH_KEY SD_ID128_MAKE(d3,1e,48,fa,90,fe,4b,4c,9d,af,d5,d7,a1,b1,2e,8a) -@@ -429,16 +437,16 @@ int link_config_apply(link_config_ctx *c - } - } - -- if (new_name) -- *name = new_name; /* a name was set by a policy */ -- else if (config->name) -- *name = config->name; /* a name was set manually in the config */ -- else -- *name = NULL; -+ if (should_rename(device)) { -+ if (!new_name) -+ /* if not set by policy, fall back manually set name */ -+ new_name = config->name; -+ } else -+ new_name = NULL; - - switch (config->mac_policy) { - case MACPOLICY_PERSISTENT: -- if (!mac_is_permanent(device)) { -+ if (mac_is_random(device)) { - r = get_mac(device, false, &generated_mac); - if (r == -ENOENT) - break; -@@ -467,6 +475,8 @@ int link_config_apply(link_config_ctx *c - return r; - } - -+ *name = new_name; -+ - return 0; - } - diff --git a/513-nspawn-veth.patch b/513-nspawn-veth.patch deleted file mode 100644 index b24ecf6c..00000000 --- a/513-nspawn-veth.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c ---- systemd-210/src/libsystemd/sd-rtnl/rtnl-message.c 2014-11-19 13:10:23.998310815 +0100 -+++ systemd-210.mod/src/libsystemd/sd-rtnl/rtnl-message.c 2014-12-08 12:03:18.059734333 +0100 -@@ -722,6 +722,7 @@ - - int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type) { - uint16_t rtm_type; -+ int r; - - assert_return(m, -EINVAL); - assert_return(!m->sealed, -EPERM); -@@ -729,15 +730,21 @@ - sd_rtnl_message_get_type(m, &rtm_type); - - if (rtnl_message_type_is_link(rtm_type)) { -- - if ((type == IFLA_LINKINFO && m->n_containers == 0) || - (type == IFLA_INFO_DATA && m->n_containers == 1 && -- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) -- return add_rtattr(m, type, NULL, 0); -- else if (type == VETH_INFO_PEER && m->n_containers == 2 && -+ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO)) { -+ r = add_rtattr(m, type, NULL, 0); -+ if ( r > 0) -+ m->container_offsets[m->n_containers ++] = r; -+ return r; -+ } else if (type == VETH_INFO_PEER && m->n_containers == 2 && - GET_CONTAINER(m, 1)->rta_type == IFLA_INFO_DATA && -- GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) -- return add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); -+ GET_CONTAINER(m, 0)->rta_type == IFLA_LINKINFO) { -+ r = add_rtattr(m, type, NULL, sizeof(struct ifinfomsg)); -+ if ( r > 0) -+ m->container_offsets[m->n_containers ++] = r; -+ return r; -+ } - } - - return -ENOTSUP; diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch index 8e0a00a7..95c19107 100644 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -5,18 +5,21 @@ Subject: Fix /run/lock directories permissions to follow openSUSE policy disable /var/lock/{subsys,lockdev} and change default permissions on /var/lock (bnc#733523). --- - tmpfiles.d/legacy.conf | 7 ++++--- + tmpfiles.d/legacy.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) ---- systemd-206_git201308300826.orig/tmpfiles.d/legacy.conf -+++ systemd-206_git201308300826/tmpfiles.d/legacy.conf -@@ -10,12 +10,13 @@ +Index: systemd-218/tmpfiles.d/legacy.conf +=================================================================== +--- systemd-218.orig/tmpfiles.d/legacy.conf ++++ systemd-218/tmpfiles.d/legacy.conf +@@ -10,13 +10,14 @@ # These files are considered legacy and are unnecessary on legacy-free # systems. -d /run/lock 0755 root root - -+# changed for openSUSE : only /run/lock should be available ++# changed for openSUSE: only /run/lock should be available. +d /run/lock 0775 root lock - + L /var/lock - - - - ../run/lock # /run/lock/subsys is used for serializing SysV service execution, and # hence without use on SysV-less systems. @@ -26,7 +29,7 @@ disable /var/lock/{subsys,lockdev} and change default permissions on # /run/lock/lockdev is used to serialize access to tty devices via # LCK..xxx style lock files, For more information see: -@@ -23,7 +24,7 @@ d /run/lock/subsys 0755 root root - +@@ -24,7 +25,7 @@ d /run/lock/subsys 0755 root root - # On modern systems a BSD file lock is a better choice if # serialization is needed on those devices. diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 0c06b4dc..96de1ed2 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -4,21 +4,23 @@ Subject: Forward suspend / hibernate calls to pm-utils forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) --- - src/sleep/sleep.c | 26 ++++++++++++++++++++++---- - 1 file changed, 22 insertions(+), 4 deletions(-) + src/sleep/sleep.c | 27 ++++++++++++++++++++++----- + 1 file changed, 22 insertions(+), 5 deletions(-) ---- systemd-206.orig/src/sleep/sleep.c -+++ systemd-206/src/sleep/sleep.c +Index: systemd/src/sleep/sleep.c +=================================================================== +--- systemd.orig/src/sleep/sleep.c ++++ systemd/src/sleep/sleep.c @@ -24,6 +24,7 @@ #include #include #include +#include - #include "systemd/sd-id128.h" - #include "systemd/sd-messages.h" -@@ -35,6 +36,8 @@ - #include "sleep-config.h" + #include "sd-id128.h" + #include "sd-messages.h" +@@ -36,6 +37,8 @@ + #include "def.h" static char* arg_verb = NULL; +static bool delegate_to_pmutils = false; @@ -26,36 +28,37 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) static int write_mode(char **modes) { int r = 0; -@@ -50,9 +53,6 @@ static int write_mode(char **modes) { +@@ -53,10 +56,6 @@ static int write_mode(char **modes) { + if (r == 0) r = k; } - +- - if (r < 0) -- log_error("Failed to write mode to /sys/power/disk: %s", -- strerror(-r)); - +- log_error_errno(r, "Failed to write mode to /sys/power/disk: %m"); +- return r; } -@@ -90,6 +90,8 @@ static int execute(char **modes, char ** + +@@ -97,6 +96,8 @@ static int execute(char **modes, char ** + int r; _cleanup_fclose_ FILE *f = NULL; - const char* note = strappenda("SLEEP=", arg_verb); + if (!delegate_to_pmutils) { + /* This file is opened first, so that if we hit an error, * we can abort before modifying any state. */ f = fopen("/sys/power/state", "we"); -@@ -102,6 +104,7 @@ static int execute(char **modes, char ** +@@ -107,6 +108,7 @@ static int execute(char **modes, char ** r = write_mode(modes); if (r < 0) return r; + } - arguments[0] = NULL; - arguments[1] = (char*) "pre"; -@@ -114,8 +117,10 @@ static int execute(char **modes, char ** - "MESSAGE=Suspending system...", - note, + execute_directories(dirs, DEFAULT_TIMEOUT_USEC, arguments); + +@@ -115,8 +117,10 @@ static int execute(char **modes, char ** + LOG_MESSAGE("Suspending system..."), + "SLEEP=%s", arg_verb, NULL); - + if (!delegate_to_pmutils) @@ -65,7 +68,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) if (r < 0) return r; -@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *ar +@@ -156,6 +160,7 @@ static int parse_argv(int argc, char *ar }; int c; @@ -73,7 +76,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) assert(argc >= 0); assert(argv); -@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *ar +@@ -193,6 +198,18 @@ static int parse_argv(int argc, char *ar return -EINVAL; } diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch deleted file mode 100644 index 41d51bfa..00000000 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ /dev/null @@ -1,140 +0,0 @@ -From: Frederic Crozat -Date: Fri, 12 Apr 2013 16:56:26 +0200 -Subject: Revert "service: drop support for SysV scripts for the early boot" - -This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. - -Conflicts: - src/core/service.c ---- - src/core/service.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 46 insertions(+), 5 deletions(-) - -Index: systemd-208/src/core/service.c -=================================================================== ---- systemd-208.orig/src/core/service.c -+++ systemd-208/src/core/service.c -@@ -51,7 +51,8 @@ - - typedef enum RunlevelType { - RUNLEVEL_UP, -- RUNLEVEL_DOWN -+ RUNLEVEL_DOWN, -+ RUNLEVEL_SYSINIT - } RunlevelType; - - static const struct { -@@ -66,6 +67,16 @@ static const struct { - { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, - { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, - -+#ifdef HAVE_SYSV_COMPAT -+ /* SUSE style boot.d */ -+ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, -+#endif -+ -+#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) -+ /* Debian style rcS.d */ -+ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, -+#endif -+ - /* Standard SysV runlevels for shutdown */ - { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, - { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } -@@ -74,10 +85,12 @@ static const struct { - directories in this order, and we want to make sure that - sysv_start_priority is known when we first load the - unit. And that value we only know from S links. Hence -- UP must be read before DOWN */ -+ UP/SYSINIT must be read before DOWN */ - }; - - #define RUNLEVELS_UP "12345" -+/* #define RUNLEVELS_DOWN "06" */ -+#define RUNLEVELS_BOOT "bBsS" - #endif - - static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { -@@ -340,6 +353,9 @@ static char *sysv_translate_name(const c - if (endswith(name, ".sh")) - /* Drop .sh suffix */ - strcpy(stpcpy(r, name) - 3, ".service"); -+ if (startswith(name, "boot.")) -+ /* Drop SuSE-style boot. prefix */ -+ strcpy(stpcpy(r, name + 5), ".service"); - else - /* Normal init script name */ - strcpy(stpcpy(r, name), ".service"); -@@ -942,6 +958,13 @@ static int service_load_sysv_path(Servic - - if ((r = sysv_exec_commands(s, supports_reload)) < 0) - goto finish; -+ if (s->sysv_runlevels && -+ chars_intersect(RUNLEVELS_BOOT, s->sysv_runlevels) && -+ chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { -+ /* Service has both boot and "up" runlevels -+ configured. Kill the "up" ones. */ -+ delete_chars(s->sysv_runlevels, RUNLEVELS_UP); -+ } - - if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { - /* If there a runlevels configured for this service -@@ -1023,6 +1046,9 @@ static int service_load_sysv_name(Servic - if (endswith(name, ".sh.service")) - return -ENOENT; - -+ if (startswith(name, "boot.")) -+ return -ENOENT; -+ - STRV_FOREACH(p, UNIT(s)->manager->lookup_paths.sysvinit_path) { - char *path; - int r; -@@ -1043,6 +1069,18 @@ static int service_load_sysv_name(Servic - } - free(path); - -+ if (r >= 0 && UNIT(s)->load_state == UNIT_STUB) { -+ /* Try SUSE style boot.* init scripts */ -+ -+ path = strjoin(*p, "/boot.", name, NULL); -+ if (!path) -+ return -ENOMEM; -+ -+ /* Drop .service suffix */ -+ path[strlen(path)-8] = 0; -+ r = service_load_sysv_path(s, path); -+ free(path); -+ } - if (r < 0) - return r; - -@@ -3574,7 +3612,7 @@ static int service_enumerate(Manager *m) - - if (de->d_name[0] == 'S') { - -- if (rcnd_table[i].type == RUNLEVEL_UP) { -+ if (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT) { - SERVICE(service)->sysv_start_priority_from_rcnd = - MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); - -@@ -3591,7 +3629,8 @@ static int service_enumerate(Manager *m) - goto finish; - - } else if (de->d_name[0] == 'K' && -- (rcnd_table[i].type == RUNLEVEL_DOWN)) { -+ (rcnd_table[i].type == RUNLEVEL_DOWN || -+ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { - - r = set_ensure_allocated(&shutdown_services, - trivial_hash_func, trivial_compare_func); -@@ -3631,7 +3670,9 @@ static int service_enumerate(Manager *m) - * runlevels we assume the stop jobs will be implicitly added - * by the core logic. Also, we don't really distinguish here - * between the runlevels 0 and 6 and just add them to the -- * special shutdown target. */ -+ * special shutdown target. On SUSE the boot.d/ runlevel is -+ * also used for shutdown, so we add links for that too to the -+ * shutdown target.*/ - SET_FOREACH(service, shutdown_services, j) { - service = unit_follow_merge(service); - diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch deleted file mode 100644 index 04afafb9..00000000 --- a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Ludwig Nussel -Date: Mon, 26 Nov 2012 09:49:42 +0100 -Subject: avoid assertion if invalid address familily is passed to - gethostbyaddr_r (bnc#791101) - ---- - src/nss-myhostname/nss-myhostname.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c -+++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c -@@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostb - uint32_t local_address_ipv4 = LOCALADDRESS_IPV4; - const char *canonical = NULL, *additional = NULL; - -+ if (af != AF_INET && af != AF_INET6) { -+ *errnop = EAFNOSUPPORT; -+ *h_errnop = NO_DATA; -+ return NSS_STATUS_UNAVAIL; -+ } -+ - if (len != PROTO_ADDRESS_SIZE(af)) { - *errnop = EINVAL; - *h_errnop = NO_RECOVERY; diff --git a/avoid-leaking-socket-descriptors.patch b/avoid-leaking-socket-descriptors.patch deleted file mode 100644 index d65d1196..00000000 --- a/avoid-leaking-socket-descriptors.patch +++ /dev/null @@ -1,339 +0,0 @@ -Based on 249968612f16a71df909d6e73785c18a9ff36a65 -with src/core/dbus.c as well and corrected systemctl -error messages for killing a unit. - ---- - src/analyze/analyze.c | 2 +- - src/bus-proxyd/bus-proxyd.c | 4 +--- - src/cgroups-agent/cgroups-agent.c | 4 +--- - src/core/dbus.c | 2 +- - src/fsck/fsck.c | 2 +- - src/hostname/hostnamectl.c | 2 +- - src/hostname/hostnamed.c | 4 ++-- - src/libsystemd/sd-bus/bus-util.h | 9 +++++++++ - src/libsystemd/sd-bus/busctl.c | 2 +- - src/locale/localectl.c | 2 +- - src/locale/localed.c | 4 ++-- - src/login/inhibit.c | 2 +- - src/login/loginctl.c | 2 +- - src/login/pam-module.c | 4 ++-- - src/machine/machinectl.c | 4 ++-- - src/nspawn/nspawn.c | 4 ++-- - src/run/run.c | 2 +- - src/systemctl/systemctl.c | 2 +- - src/timedate/timedatectl.c | 2 +- - src/timedate/timedated.c | 4 ++-- - 20 files changed, 34 insertions(+), 29 deletions(-) - ---- src/analyze/analyze.c -+++ src/analyze/analyze.c 2014-10-21 11:13:56.113045992 +0000 -@@ -1264,7 +1264,7 @@ static int parse_argv(int argc, char *ar - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/bus-proxyd/bus-proxyd.c -+++ src/bus-proxyd/bus-proxyd.c 2014-10-21 11:16:16.303837968 +0000 -@@ -427,7 +427,7 @@ static int patch_sender(sd_bus *a, sd_bu - - int main(int argc, char *argv[]) { - -- _cleanup_bus_unref_ sd_bus *a = NULL, *b = NULL; -+ _cleanup_bus_close_unref_ sd_bus *a = NULL, *b = NULL; - sd_id128_t server_id; - int r, in_fd, out_fd; - bool got_hello = false; -@@ -777,8 +777,6 @@ int main(int argc, char *argv[]) { - r = 0; - - finish: -- sd_bus_flush(a); -- sd_bus_flush(b); - - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; - } ---- src/cgroups-agent/cgroups-agent.c -+++ src/cgroups-agent/cgroups-agent.c 2014-10-21 11:17:37.400197469 +0000 -@@ -26,7 +26,7 @@ - #include "bus-util.h" - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - if (argc != 2) { -@@ -62,7 +62,5 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- sd_bus_flush(bus); -- - return EXIT_SUCCESS; - } ---- src/core/dbus.c -+++ src/core/dbus.c 2014-10-17 09:52:47.000000000 +0000 -@@ -639,7 +639,7 @@ static int bus_setup_disconnected_match( - } - - static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void *userdata) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - _cleanup_close_ int nfd = -1; - Manager *m = userdata; - sd_id128_t id; ---- src/fsck/fsck.c -+++ src/fsck/fsck.c 2014-10-21 11:18:06.003838037 +0000 -@@ -45,7 +45,7 @@ static bool arg_show_progress = false; - - static void start_target(const char *target) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(target); ---- src/hostname/hostnamectl.c -+++ src/hostname/hostnamectl.c 2014-10-21 11:18:19.915858156 +0000 -@@ -468,7 +468,7 @@ static int hostnamectl_main(sd_bus *bus, - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/hostname/hostnamed.c -+++ src/hostname/hostnamed.c 2014-10-21 11:24:07.737447673 +0000 -@@ -566,7 +566,7 @@ static const sd_bus_vtable hostname_vtab - }; - - static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(c); -@@ -607,7 +607,7 @@ int main(int argc, char *argv[]) { - Context context = {}; - - _cleanup_event_unref_ sd_event *event = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_set_target(LOG_TARGET_AUTO); ---- src/libsystemd/sd-bus/bus-util.h -+++ src/libsystemd/sd-bus/bus-util.h 2014-10-17 09:51:34.000000000 +0000 -@@ -137,11 +137,20 @@ typedef struct UnitInfo { - - int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u); - -+static inline void sd_bus_close_unrefp(sd_bus **bus) { -+ if (*bus) { -+ sd_bus_flush(*bus); -+ sd_bus_close(*bus); -+ sd_bus_unref(*bus); -+ } -+} -+ - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus*, sd_bus_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_message*, sd_bus_message_unref); - DEFINE_TRIVIAL_CLEANUP_FUNC(sd_bus_creds*, sd_bus_creds_unref); - - #define _cleanup_bus_unref_ _cleanup_(sd_bus_unrefp) -+#define _cleanup_bus_close_unref_ _cleanup_(sd_bus_close_unrefp) - #define _cleanup_bus_message_unref_ _cleanup_(sd_bus_message_unrefp) - #define _cleanup_bus_creds_unref_ _cleanup_(sd_bus_creds_unrefp) - #define _cleanup_bus_error_free_ _cleanup_(sd_bus_error_free) ---- src/libsystemd/sd-bus/busctl.c -+++ src/libsystemd/sd-bus/busctl.c 2014-10-21 11:19:01.472337887 +0000 -@@ -484,7 +484,7 @@ static int busctl_main(sd_bus *bus, int - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_parse_environment(); ---- src/locale/localectl.c -+++ src/locale/localectl.c 2014-10-21 11:19:13.811947994 +0000 -@@ -796,7 +796,7 @@ static int localectl_main(sd_bus *bus, i - } - - int main(int argc, char*argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/locale/localed.c -+++ src/locale/localed.c 2014-10-21 11:19:28.415837424 +0000 -@@ -1076,7 +1076,7 @@ static const sd_bus_vtable locale_vtable - }; - - static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(c); -@@ -1116,7 +1116,7 @@ static int connect_bus(Context *c, sd_ev - int main(int argc, char *argv[]) { - Context context = {}; - _cleanup_event_unref_ sd_event *event = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_set_target(LOG_TARGET_AUTO); ---- src/login/inhibit.c -+++ src/login/inhibit.c 2014-10-21 11:19:44.470844885 +0000 -@@ -221,7 +221,7 @@ static int parse_argv(int argc, char *ar - - int main(int argc, char *argv[]) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_parse_environment(); ---- src/login/loginctl.c -+++ src/login/loginctl.c 2014-10-21 11:20:16.695837857 +0000 -@@ -1298,7 +1298,7 @@ static int loginctl_main(sd_bus *bus, in - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/login/pam-module.c -+++ src/login/pam-module.c 2014-10-21 10:48:20.000000000 +0000 -@@ -213,7 +213,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess - *seat = NULL, - *type = NULL, *class = NULL, - *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int session_fd = -1, existing, r; - bool debug = false, remote; - struct passwd *pw; -@@ -517,7 +517,7 @@ _public_ PAM_EXTERN int pam_sm_close_ses - int argc, const char **argv) { - - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - const void *existing = NULL; - const char *id; - int r; ---- src/machine/machinectl.c -+++ src/machine/machinectl.c 2014-10-21 11:20:45.747838104 +0000 -@@ -550,7 +550,7 @@ static int openpt_in_namespace(pid_t pid - static int login_machine(sd_bus *bus, char **args, unsigned n) { - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL, *reply2 = NULL, *reply3 = NULL; - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *container_bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *container_bus = NULL; - _cleanup_close_ int master = -1; - _cleanup_free_ char *getty = NULL; - const char *path, *pty, *p; -@@ -879,7 +879,7 @@ static int machinectl_main(sd_bus *bus, - } - - int main(int argc, char*argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c 2014-10-21 11:21:05.561523449 +0000 -@@ -1163,7 +1163,7 @@ static int drop_capabilities(void) { - - static int register_machine(pid_t pid) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - if (!arg_register) -@@ -1285,7 +1285,7 @@ static int register_machine(pid_t pid) { - static int terminate_machine(pid_t pid) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - const char *path; - int r; - ---- src/run/run.c -+++ src/run/run.c 2014-10-21 11:22:35.163838021 +0000 -@@ -462,7 +462,7 @@ static int start_transient_scope( - - int main(int argc, char* argv[]) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - _cleanup_free_ char *description = NULL, *command = NULL; - int r; - ---- src/systemctl/systemctl.c -+++ src/systemctl/systemctl.c 2014-10-22 09:36:33.399838318 +0000 -@@ -2601,7 +2601,7 @@ static int kill_unit(sd_bus *bus, char * - "ssi", *names, arg_kill_who, arg_signal); - if (q < 0) { - log_error("Failed to kill unit %s: %s", -- *names, bus_error_message(&error, r)); -+ *names, bus_error_message(&error, q)); - if (r == 0) - r = q; - } -@@ -6436,7 +6436,7 @@ static int runlevel_main(void) { - } - - int main(int argc, char*argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/timedate/timedatectl.c -+++ src/timedate/timedatectl.c 2014-10-21 11:23:06.107837988 +0000 -@@ -593,7 +593,7 @@ static int timedatectl_main(sd_bus *bus, - } - - int main(int argc, char *argv[]) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - setlocale(LC_ALL, ""); ---- src/timedate/timedated.c -+++ src/timedate/timedated.c 2014-10-21 11:23:26.047838675 +0000 -@@ -779,7 +779,7 @@ static const sd_bus_vtable timedate_vtab - }; - - static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - assert(c); -@@ -825,7 +825,7 @@ int main(int argc, char *argv[]) { - }; - - _cleanup_event_unref_ sd_event *event = NULL; -- _cleanup_bus_unref_ sd_bus *bus = NULL; -+ _cleanup_bus_close_unref_ sd_bus *bus = NULL; - int r; - - log_set_target(LOG_TARGET_AUTO); diff --git a/boot.udev b/boot.udev deleted file mode 100644 index 4fa0bd63..00000000 --- a/boot.udev +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# -### BEGIN INIT INFO -# Provides: boot.udev -# Required-Start: -# Required-Stop: -# Should-Start: -# Should-Stop: -# Default-Start: B -# Default-Stop: -# Short-Description: manage /dev and kernel device-events -# Description: udevd daemon to manage /dev and kernel device events -### END INIT INFO - -. /etc/rc.status - -PATH="/sbin:/bin:/usr/sbin:/usr/bin" -DAEMON="@@SYSTEMD@@/systemd-udevd" -UDEVADM="@@BINDIR@@/udevadm" -WRITERULE="@@PREFIX@@/write_dev_root_rule" -udev_timeout=180 - -case "$1" in - start) - # create /dev/root symlink with dynamic rule - if [ -x ${WRITERULE} ]; then - ${WRITERULE} >/dev/null 2>&1 || true - fi - - # start udevd - echo -n "Starting udevd: " - ${DAEMON} --daemon - if [ $? -ne 0 ]; then - rc_status -v - rc_exit - fi - rc_status -v - - # trigger events for all devices - echo -n "Loading drivers, configuring devices: " - ${UDEVADM} trigger --type=subsystems --action=add - ${UDEVADM} trigger --type=devices --action=add - - # wait for events to finish - ${UDEVADM} settle --timeout=$udev_timeout - rc_status -v - ;; - stop) - echo -n "Stopping udevd: " - killproc ${DAEMON} - rc_status -v - ;; - restart) - echo -n "Restarting udevd: " - killproc ${DAEMON} - ${DAEMON} --daemon - rc_status -v - ;; - status) - echo -n "Checking for udevd: " - checkproc ${DAEMON} - rc_status -v - ;; - reload|force-reload) - echo -n "Reloading udevd: " - killproc -G -HUP ${DAEMON} - rc_status -v - ;; - *) - echo "Usage: $0 {start|stop|restart|status|reload|force-reload}" - exit 1 - ;; -esac -rc_exit diff --git a/disable-nss-myhostname-warning-bnc-783841.patch b/disable-nss-myhostname-warning-bnc-783841.patch deleted file mode 100644 index c20aad94..00000000 --- a/disable-nss-myhostname-warning-bnc-783841.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Ludwig Nussel -Date: Tue, 12 Feb 2013 17:24:35 +0100 -Subject: disable nss-myhostname warning (bnc#783841) - ---- - src/hostname/hostnamed.c | 1 + - 1 file changed, 1 insertion(+) - ---- systemd-206.orig/src/hostname/hostnamed.c -+++ systemd-206/src/hostname/hostnamed.c -@@ -134,6 +134,7 @@ static int read_data(void) { - - static bool check_nss(void) { - void *dl; -+ return true; - - dl = dlopen("libnss_myhostname.so.2", RTLD_LAZY); - if (dl) { diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch index 3f6b0eb4..77bed82d 100644 --- a/ensure-shortname-is-set-as-hostname-bnc-820213.patch +++ b/ensure-shortname-is-set-as-hostname-bnc-820213.patch @@ -4,11 +4,13 @@ Subject: ensure shortname is set as hostname (bnc#820213) strip hostname so the domain part isn't set as part of the hostname --- - src/core/hostname-setup.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + src/core/hostname-setup.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) ---- systemd-206.orig/src/core/hostname-setup.c -+++ systemd-206/src/core/hostname-setup.c +Index: systemd-218/src/core/hostname-setup.c +=================================================================== +--- systemd-218.orig/src/core/hostname-setup.c ++++ systemd-218/src/core/hostname-setup.c @@ -32,7 +32,7 @@ #include "fileio.h" @@ -18,14 +20,13 @@ strip hostname so the domain part isn't set as part of the hostname int r; assert(path); -@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const +@@ -49,6 +49,10 @@ static int read_and_strip_hostname(const return -ENOENT; } + /* strip any leftover of a domain name */ -+ if (domain = strchr(s, '.')) { -+ *domain = NULL; -+ } ++ if ((domain = strchr(s, '.')) != NULL) ++ *domain = '\0'; + *hn = s; return 0; diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch deleted file mode 100644 index 954c60ca..00000000 --- a/fix-owner-of-var-log-btmp.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Frederic Crozat -Date: Tue, 20 Nov 2012 09:36:43 +0000 -Subject: fix owner of /var/log/btmp - -ensure btmp is owned only by root (bnc#777405). ---- - tmpfiles.d/systemd.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- systemd-206_git201308300826.orig/tmpfiles.d/systemd.conf -+++ systemd-206_git201308300826/tmpfiles.d/systemd.conf -@@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d - F! /run/utmp 0664 root utmp - - - f /var/log/wtmp 0664 root utmp - --f /var/log/btmp 0600 root utmp - -+f /var/log/btmp 0600 root root - - - d /var/cache/man - - - 30d - diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index b8fea652..c4875197 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -3,15 +3,17 @@ Date: Thu, 23 Aug 2012 11:08:25 +0200 Subject: fix support for boot prefixed initscript (bnc#746506) --- - src/systemctl/systemctl.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) + src/systemctl/systemctl.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) ---- systemd-206_git201308300826.orig/src/systemctl/systemctl.c -+++ systemd-206_git201308300826/src/systemctl/systemctl.c -@@ -4169,8 +4169,28 @@ static int enable_sysv_units(char **args - p[strlen(p) - sizeof(".service") + 1] = 0; - found_sysv = access(p, F_OK) >= 0; +Index: systemd-218/src/systemctl/systemctl.c +=================================================================== +--- systemd-218.orig/src/systemctl/systemctl.c ++++ systemd-218/src/systemctl/systemctl.c +@@ -5202,8 +5202,26 @@ static int enable_sysv_units(const char + p[strlen(p) - strlen(".service")] = 0; + found_sysv = access(p, F_OK) >= 0; - if (!found_sysv) + if (!found_sysv) { +#ifdef HAVE_SYSV_COMPAT @@ -21,10 +23,8 @@ Subject: fix support for boot prefixed initscript (bnc#746506) + asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else + asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); -+ if (!p) { -+ r = log_oom(); -+ goto finish; -+ } ++ if (!p) ++ return -ENOMEM; + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; + @@ -36,5 +36,5 @@ Subject: fix support for boot prefixed initscript (bnc#746506) +#endif + } - /* Mark this entry, so that we don't try enabling it as native unit */ - args[f] = (char*) ""; + log_info("%s is not a native service, redirecting to /sbin/chkconfig.", name); + diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch deleted file mode 100644 index c7fa0726..00000000 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ /dev/null @@ -1,42 +0,0 @@ -From: Frederic Crozat -Date: Tue, 22 Jan 2013 17:02:04 +0000 -Subject: handle SYSTEMCTL_OPTIONS environment variable - -(bnc#798620) ---- - src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -Index: systemd-208/src/systemctl/systemctl.c -=================================================================== ---- systemd-208.orig/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c -@@ -6115,6 +6115,28 @@ int main(int argc, char*argv[]) { - * ellipsized. */ - original_stdout_is_tty = isatty(STDOUT_FILENO); - -+ if (secure_getenv("SYSTEMCTL_OPTIONS") && -+ (!program_invocation_short_name || -+ (program_invocation_short_name && strstr(program_invocation_short_name, "systemctl")))) { -+ char **parsed_systemctl_options = strv_split_quoted(getenv("SYSTEMCTL_OPTIONS")); -+ -+ if (*parsed_systemctl_options && **parsed_systemctl_options) { -+ char **k,**a; -+ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); -+ new_argv[0] = strdup(argv[0]); -+ for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { -+ *k = strdup(*a); -+ } -+ for (a = argv+1; *a; k++, a++) { -+ *k = strdup(*a); -+ } -+ *k = NULL; -+ argv = new_argv; -+ argc = strv_length(new_argv); -+ strv_free (parsed_systemctl_options); -+ } -+ } -+ - r = parse_argv(argc, argv); - if (r <= 0) - goto finish; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index 96213505..52af3ee9 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -4,13 +4,13 @@ Subject: handle disable_caplock and compose_table and kbd_rate (bnc#746595) --- - src/vconsole/vconsole-setup.c | 156 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 153 insertions(+), 3 deletions(-) + src/vconsole/vconsole-setup.c | 151 +++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 148 insertions(+), 3 deletions(-) -Index: systemd-210/src/vconsole/vconsole-setup.c +Index: systemd-218/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-210.orig/src/vconsole/vconsole-setup.c -+++ systemd-210/src/vconsole/vconsole-setup.c +--- systemd-218.orig/src/vconsole/vconsole-setup.c ++++ systemd-218/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ #include "macro.h" #include "virt.h" @@ -19,7 +19,7 @@ Index: systemd-210/src/vconsole/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -99,8 +100,8 @@ static int enable_utf8(int fd) { +@@ -101,8 +102,8 @@ static int enable_utf8(int fd) { return r; } @@ -30,7 +30,7 @@ Index: systemd-210/src/vconsole/vconsole-setup.c int i = 0; pid_t pid; -@@ -119,6 +120,8 @@ static int keymap_load(const char *vc, c +@@ -121,6 +122,8 @@ static int keymap_load(const char *vc, c args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,7 +39,7 @@ Index: systemd-210/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) +@@ -236,11 +239,113 @@ static void font_copy_to_all_vcs(int fd) } } @@ -140,25 +140,20 @@ Index: systemd-210/src/vconsole/vconsole-setup.c + int main(int argc, char **argv) { const char *vc; - char *vc_keymap = NULL; -@@ -219,8 +317,16 @@ int main(int argc, char **argv) { - char *vc_font = NULL; - char *vc_font_map = NULL; - char *vc_font_unimap = NULL; + _cleanup_free_ char + *vc_keymap = NULL, *vc_keymap_toggle = NULL, + *vc_font = NULL, *vc_font_map = NULL, *vc_font_unimap = NULL; +#ifdef HAVE_SYSV_COMPAT -+ char *vc_kbd_delay = NULL; -+ char *vc_kbd_rate = NULL; -+ char *vc_kbd_disable_caps_lock = NULL; -+ char *vc_compose_table = NULL; ++ _cleanup_free_ char ++ *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, ++ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; +#endif - int fd = -1; - bool utf8; + bool disable_capslock = false; + _cleanup_close_ int fd = -1; + bool utf8; pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -251,6 +357,28 @@ int main(int argc, char **argv) { +@@ -273,6 +378,28 @@ int main(int argc, char **argv) { utf8 = is_locale_utf8(); @@ -187,45 +182,37 @@ Index: systemd-210/src/vconsole/vconsole-setup.c r = parse_env_file("/etc/vconsole.conf", NEWLINE, "KEYMAP", &vc_keymap, "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -282,7 +410,12 @@ int main(int argc, char **argv) { - disable_utf8(fd); +@@ -312,14 +439,32 @@ int main(int argc, char **argv) { + if (font_pid > 0) + wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true); - r = EXIT_FAILURE; -- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && -+ -+ if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid) >= 0 && +- r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid); ++ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); + if (r < 0) { + log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); + return EXIT_FAILURE; + } +#ifdef HAVE_SYSV_COMPAT -+ load_compose_table(vc, vc_compose_table, &compose_table_pid) >= 0 && -+ set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid) >= 0 && ++ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); ++ if (r < 0) { ++ log_error_errno(r, "Failed to start " KBD_LOADKEYS " loading the compose table: %m"); ++ return EXIT_FAILURE; ++ } ++ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); ++ if (r < 0) { ++ log_error_errno(r, "Failed to start kbdrate: %m"); ++ return EXIT_FAILURE; ++ } +#endif - font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) - r = EXIT_SUCCESS; -@@ -290,6 +423,14 @@ finish: if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); - + wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true); +#ifdef HAVE_SYSV_COMPAT + if (compose_table_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid); -+ ++ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid, true); + if (kbd_rate_pid > 0) -+ wait_for_terminate_and_warn("/bin/kbdrate", kbd_rate_pid); -+#endif -+ - if (font_pid > 0) { - wait_for_terminate_and_warn(KBD_SETFONT, font_pid); - if (font_copy) -@@ -300,6 +441,12 @@ finish: - free(vc_font); - free(vc_font_map); - free(vc_font_unimap); -+#ifdef HAVE_SYSV_COMPAT -+ free(vc_kbd_delay); -+ free(vc_kbd_rate); -+ free(vc_kbd_disable_caps_lock); -+ free(vc_compose_table); ++ wait_for_terminate_and_warn("/usr/bin/kbdrate", kbd_rate_pid, true); +#endif - if (fd >= 0) - close_nointr_nofail(fd); + /* Only copy the font when we started setfont successfully */ + if (font_copy && font_pid > 0) diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch deleted file mode 100644 index 57a74f0d..00000000 --- a/handle-etc-HOSTNAME.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Frederic Crozat -Date: Fri, 15 Feb 2013 16:04:39 +0000 -Subject: handle /etc/HOSTNAME - -(bnc#803653) ---- - src/core/hostname-setup.c | 22 +++++++++++++++++----- - src/hostname/hostnamed.c | 12 +++++++++++- - 2 files changed, 28 insertions(+), 6 deletions(-) - ---- systemd-206/src/core/hostname-setup.c -+++ systemd-206/src/core/hostname-setup.c -@@ -61,12 +61,24 @@ int hostname_setup(void) { - - r = read_and_strip_hostname("/etc/hostname", &b); - if (r < 0) { -- if (r == -ENOENT) -- enoent = true; -- else -- log_warning("Failed to read configured hostname: %s", strerror(-r)); -+ if (r == -ENOENT) { -+ /* use SUSE fallback */ -+ r = read_and_strip_hostname("/etc/HOSTNAME", &b); -+ if (r < 0) { -+ if (r == -ENOENT) -+ enoent = true; -+ else -+ log_warning("Failed to read configured hostname: %s", strerror(-r)); -+ hn = NULL; -+ } -+ else -+ hn = b; - -- hn = NULL; -+ } -+ else { -+ log_warning("Failed to read configured hostname: %s", strerror(-r)); -+ hn = NULL; -+ } - } else - hn = b; - ---- systemd-209/src/hostname/hostnamed.c -+++ systemd-209/src/hostname/hostnamed.c 2014-02-28 11:36:30.594735241 +0000 -@@ -89,6 +89,10 @@ static int context_read_data(Context *c) - if (r < 0 && r != -ENOENT) - return r; - -+ r = read_one_line_file("/etc/HOSTNAME", &c->data[PROP_STATIC_HOSTNAME]); -+ if (r < 0 && r != -ENOENT) -+ return r; -+ - return 0; - } - -@@ -246,6 +250,7 @@ static int context_write_data_hostname(C - } - - static int context_write_data_static_hostname(Context *c) { -+ int r; - - assert(c); - -@@ -256,7 +261,12 @@ static int context_write_data_static_hos - - return 0; - } -- return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); -+ -+ r = write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); -+ if (!r) { -+ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); -+ } -+ return r; - } - - static int context_write_data_other(Context *c) { diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 4278436c..a9f6924a 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -6,105 +6,19 @@ Authors: Stanislav Brabec Cristian Rodríguez -Index: systemd-210/src/vconsole/vconsole-setup.c +--- + Makefile.am | 13 ++++++++++ + rules/73-seat-numlock.rules | 8 ++++++ + src/login/numlock-on.c | 34 +++++++++++++++++++++++++++ + src/vconsole/vconsole-setup.c | 40 ++++++++++++++++++++++++++++++-- + units/systemd-vconsole-setup.service.in | 2 - + 5 files changed, 94 insertions(+), 3 deletions(-) + +Index: systemd-218/Makefile.am =================================================================== ---- systemd-210.orig/src/vconsole/vconsole-setup.c -+++ systemd-210/src/vconsole/vconsole-setup.c -@@ -42,6 +42,10 @@ - #include "fileio.h" - #include "strv.h" - -+#define BIOS_DATA_AREA 0x400 -+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 -+#define BDA_KSF4_NUMLOCK_MASK 0x02 -+ - static bool is_vconsole(int fd) { - unsigned char data[1]; - -@@ -321,12 +325,14 @@ int main(int argc, char **argv) { - char *vc_kbd_delay = NULL; - char *vc_kbd_rate = NULL; - char *vc_kbd_disable_caps_lock = NULL; -+ char *vc_kbd_numlock = NULL; - char *vc_compose_table = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; - #endif - int fd = -1; - bool utf8; - bool disable_capslock = false; -+ bool numlock = false; - pid_t font_pid = 0, keymap_pid = 0; - bool font_copy = false; - int r = EXIT_FAILURE; -@@ -363,6 +369,7 @@ int main(int argc, char **argv) { - "KBD_DELAY", &vc_kbd_delay, - "KBD_RATE", &vc_kbd_rate, - "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, -+ "KBD_NUMLOCK", &vc_kbd_numlock, - "COMPOSETABLE", &vc_compose_table, - NULL); - if (r < 0 && r != -ENOENT) -@@ -377,6 +384,36 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); - - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+#if defined(__i386__) || defined(__x86_64__) -+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { -+ int _cleanup_close_ fdmem; -+ char c; -+ -+ fdmem = open ("/dev/mem", O_RDONLY); -+ -+ if(fdmem < 0) { -+ r = EXIT_FAILURE; -+ log_error("Failed to open /dev/mem: %m"); -+ goto finish; -+ } -+ -+ if(lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { -+ r = EXIT_FAILURE; -+ log_error("Failed to seek /dev/mem: %m"); -+ goto finish; -+ } -+ -+ if(read (fdmem, &c, sizeof(char)) == -1) { -+ r = EXIT_FAILURE; -+ log_error("Failed to read /dev/mem: %m"); -+ goto finish; -+ } -+ -+ if (c & BDA_KSF4_NUMLOCK_MASK) -+ numlock = true; -+ } else -+#endif -+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); - #endif - - r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -422,6 +459,10 @@ int main(int argc, char **argv) { - finish: - if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); -+ if (numlock) -+ touch("/run/numlock-on"); -+ else -+ unlink("/run/numlock-on"); - - #ifdef HAVE_SYSV_COMPAT - if (compose_table_pid > 0) -@@ -441,6 +482,7 @@ finish: - free(vc_font); - free(vc_font_map); - free(vc_font_unimap); -+ free(vc_kbd_numlock); - #ifdef HAVE_SYSV_COMPAT - free(vc_kbd_delay); - free(vc_kbd_rate); -Index: systemd-210/Makefile.am -=================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -2847,6 +2847,19 @@ dist_udevrules_DATA += \ +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -3715,6 +3715,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -124,10 +38,10 @@ Index: systemd-210/Makefile.am if ENABLE_GUDEV if ENABLE_GTK_DOC SUBDIRS += \ -Index: systemd-210/rules/73-seat-numlock.rules +Index: systemd-218/rules/73-seat-numlock.rules =================================================================== --- /dev/null -+++ systemd-210/rules/73-seat-numlock.rules ++++ systemd-218/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -137,10 +51,10 @@ Index: systemd-210/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-210/src/login/numlock-on.c +Index: systemd-218/src/login/numlock-on.c =================================================================== --- /dev/null -+++ systemd-210/src/login/numlock-on.c ++++ systemd-218/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -176,14 +90,95 @@ Index: systemd-210/src/login/numlock-on.c + + exit(0); +} -Index: systemd-210/units/systemd-vconsole-setup.service.in +Index: systemd-218/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-210.orig/units/systemd-vconsole-setup.service.in -+++ systemd-210/units/systemd-vconsole-setup.service.in -@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup +--- systemd-218.orig/src/vconsole/vconsole-setup.c ++++ systemd-218/src/vconsole/vconsole-setup.c +@@ -42,6 +42,10 @@ + #include "fileio.h" + #include "strv.h" + ++#define BIOS_DATA_AREA 0x400 ++#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 ++#define BDA_KSF4_NUMLOCK_MASK 0x02 ++ + static bool is_vconsole(int fd) { + unsigned char data[1]; + +@@ -342,10 +346,11 @@ int main(int argc, char **argv) { + #ifdef HAVE_SYSV_COMPAT + _cleanup_free_ char + *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, +- *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; ++ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL, ++ *vc_kbd_numlock = NULL; + pid_t kbd_rate_pid = 0, compose_table_pid = 0; + #endif +- bool disable_capslock = false; ++ bool disable_capslock = false, numlock = false; + _cleanup_close_ int fd = -1; + bool utf8; + pid_t font_pid = 0, keymap_pid = 0; +@@ -384,6 +389,7 @@ int main(int argc, char **argv) { + "KBD_DELAY", &vc_kbd_delay, + "KBD_RATE", &vc_kbd_rate, + "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, ++ "KBD_NUMLOCK", &vc_kbd_numlock, + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) +@@ -398,6 +404,32 @@ int main(int argc, char **argv) { + log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); + + disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++#if defined(__i386__) || defined(__x86_64__) ++ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { ++ int _cleanup_close_ fdmem; ++ char c; ++ ++ fdmem = open ("/dev/mem", O_RDONLY); ++ if (fdmem < 0) { ++ log_error("Failed to open /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } ++ ++ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { ++ log_error("Failed to seek /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } ++ ++ if (read (fdmem, &c, sizeof(char)) == -1) { ++ log_error("Failed to read /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } ++ ++ if (c & BDA_KSF4_NUMLOCK_MASK) ++ numlock = true; ++ } else ++#endif ++ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); + #endif + + r = parse_env_file("/etc/vconsole.conf", NEWLINE, +@@ -444,6 +476,10 @@ int main(int argc, char **argv) { + log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); + return EXIT_FAILURE; + } ++ if (numlock) ++ touch("/run/numlock-on"); ++ else ++ unlink("/run/numlock-on"); + #ifdef HAVE_SYSV_COMPAT + r = load_compose_table(vc, vc_compose_table, &compose_table_pid); + if (r < 0) { +Index: systemd-218/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-218.orig/units/systemd-vconsole-setup.service.in ++++ systemd-218/units/systemd-vconsole-setup.service.in +@@ -10,7 +10,7 @@ Description=Setup Virtual Console + Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) DefaultDependencies=no Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service -Before=sysinit.target shutdown.target +Before=sysinit.target shutdown.target systemd-udev-trigger.service ConditionPathExists=/dev/tty0 diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index d7bea39c..a441dd59 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -4,16 +4,16 @@ Subject: handle root_uses_lang value in /etc/sysconfig/language handle ROOT_USES_LANG=ctype (bnc#792182). --- - src/core/locale-setup.c | 27 +++++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) + src/core/locale-setup.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) -Index: systemd-208/src/core/locale-setup.c +Index: systemd-218/src/core/locale-setup.c =================================================================== ---- systemd-208.orig/src/core/locale-setup.c -+++ systemd-208/src/core/locale-setup.c -@@ -73,6 +73,11 @@ int locale_setup(char ***environment) { +--- systemd-218.orig/src/core/locale-setup.c ++++ systemd-218/src/core/locale-setup.c +@@ -36,6 +36,11 @@ int locale_setup(char ***environment) { char **add; - char *variables[_VARIABLE_MAX] = {}; + char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT + char _cleanup_free_ *root_uses_lang; @@ -23,9 +23,9 @@ Index: systemd-208/src/core/locale-setup.c if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -119,6 +124,27 @@ int locale_setup(char ***environment) { +@@ -82,6 +87,27 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); + log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } +#ifdef HAVE_SYSV_COMPAT + if (r <= 0 && @@ -50,4 +50,4 @@ Index: systemd-208/src/core/locale-setup.c +#endif add = NULL; - for (i = 0; i < _VARIABLE_MAX; i++) { + for (i = 0; i < _VARIABLE_LC_MAX; i++) { diff --git a/insserv-generator.patch b/insserv-generator.patch index 5525222a..1e1cdf4e 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -6,29 +6,30 @@ Subject: [PATCH] insserv.conf generator parse /etc/insserv.conf.dd content and /etc/insserv.conf and generate systemd unit drop-in files to add dependencies --- - Makefile.am | 9 + - src/insserv-generator/Makefile | 28 +++ - src/insserv-generator/insserv-generator.c | 309 ++++++++++++++++++++++++++++++ - 3 files changed, 346 insertions(+) + Makefile.am | 9 + src/insserv-generator/Makefile | 28 ++ + src/insserv-generator/insserv-generator.c | 312 ++++++++++++++++++++++++++++++ + 3 files changed, 349 insertions(+) create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c -Index: systemd-210/Makefile.am -=================================================================== ---- systemd-210.orig/Makefile.am -+++ systemd-210/Makefile.am -@@ -343,6 +343,7 @@ rootlibexec_PROGRAMS = \ - systemd-socket-proxyd +--- systemd-219.orig/Makefile.am ++++ systemd-219/Makefile.am +@@ -621,7 +621,8 @@ nodist_systemunit_DATA += \ - systemgenerator_PROGRAMS = \ -+ systemd-insserv-generator \ - systemd-getty-generator \ - systemd-fstab-generator \ - systemd-system-update-generator -@@ -1728,6 +1729,14 @@ systemd_delta_LDADD = \ + systemgenerator_PROGRAMS += \ + systemd-sysv-generator \ +- systemd-rc-local-generator ++ systemd-rc-local-generator \ ++ systemd-insserv-generator + endif + + EXTRA_DIST += \ +@@ -2565,6 +2566,14 @@ systemd_rc_local_generator_LDADD = \ + libsystemd-label.la \ libsystemd-shared.la - # ------------------------------------------------------------------------------ ++#------------------------------------------------------------------------------- +systemd_insserv_generator_SOURCES = \ + src/insserv-generator/insserv-generator.c + @@ -36,14 +37,11 @@ Index: systemd-210/Makefile.am + libsystemd-label.la \ + libsystemd-shared.la + -+# ------------------------------------------------------------------------------ - systemd_getty_generator_SOURCES = \ - src/getty-generator/getty-generator.c - -Index: systemd-210/src/insserv-generator/Makefile -=================================================================== + # ------------------------------------------------------------------------------ + systemd_remount_fs_SOURCES = \ + src/remount-fs/remount-fs.c \ --- /dev/null -+++ systemd-210/src/insserv-generator/Makefile ++++ systemd-219/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -73,10 +71,8 @@ Index: systemd-210/src/insserv-generator/Makefile + $(MAKE) -C .. clean + +.PHONY: all clean -Index: systemd-210/src/insserv-generator/insserv-generator.c -=================================================================== --- /dev/null -+++ systemd-210/src/insserv-generator/insserv-generator.c ++++ systemd-219/src/insserv-generator/insserv-generator.c @@ -0,0 +1,312 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -354,7 +350,7 @@ Index: systemd-210/src/insserv-generator/insserv-generator.c + + while ((de = readdir(d))) { + char *path = NULL; -+ if (ignore_file(de->d_name)) ++ if (hidden_file(de->d_name)) + continue; + + path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL); diff --git a/journald-advice-about-use-of-memory.patch b/journald-advice-about-use-of-memory.patch index 008a72ef..4caf994f 100644 --- a/journald-advice-about-use-of-memory.patch +++ b/journald-advice-about-use-of-memory.patch @@ -1,143 +1,135 @@ ---- - src/journal/catalog.c | 21 +++++++++++++++++++-- - src/journal/journal-authenticate.c | 4 ++-- - src/journal/journal-file.c | 2 +- - src/journal/journald-kmsg.c | 2 +- - src/journal/mmap-cache.c | 24 ++++++++++++++++++++++-- - 5 files changed, 45 insertions(+), 8 deletions(-) +From: werner@suse.de +Upstream: marked as openSUSE-specific fix originally, but may well + worth be to be sent upstream. ---- src/journal/catalog.c -+++ src/journal/catalog.c 2014-10-24 11:44:59.079838065 +0000 -@@ -472,9 +472,19 @@ finish: +Original description: + (none) + +Notes [jengelh@inai.de]: +MAP_NONBLOCK is documented (mmap(2) in man-pages-3.69+) to render +MAP_POPULATE ineffective. Why do we have it? +What is the rationale for MAP_STACK? +--- + src/journal/catalog.c | 12 +++++++++++- + src/journal/journal-authenticate.c | 7 +++++-- + src/journal/journald-kmsg.c | 3 ++- + src/journal/mmap-cache.c | 16 +++++++++++++++- + 4 files changed, 33 insertions(+), 5 deletions(-) + +Index: systemd/src/journal/catalog.c +=================================================================== +--- systemd.orig/src/journal/catalog.c ++++ systemd/src/journal/catalog.c +@@ -470,6 +470,10 @@ finish: static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) { const CatalogHeader *h; -- int fd; -+ static const struct { -+ const int index; -+ int advise; -+ } advises[] = { -+ {0,MADV_WILLNEED}, -+ {1,MADV_SEQUENTIAL}, -+ {2,MADV_DONTDUMP}, -+ {3,MADV_DONTFORK} -+ }; -+ int n, fd; ++ static const unsigned int advice[] = ++ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; ++ unsigned int n; ++ size_t psize; + int fd; void *p; struct stat st; -+ size_t psize; - - assert(_fd); - assert(_st); -@@ -494,12 +504,19 @@ static int open_mmap(const char *databas +@@ -492,12 +496,18 @@ static int open_mmap(const char *databas return -EINVAL; } - p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0); + psize = PAGE_ALIGN(st.st_size); -+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, 0); ++ p = mmap(NULL, psize, PROT_READ, MAP_SHARED | MAP_POPULATE | ++ MAP_NONBLOCK, fd, 0); if (p == MAP_FAILED) { - close_nointr_nofail(fd); + safe_close(fd); return -errno; } -+ for (n=0; n < sizeof(advises)/sizeof(advises[0]); n++) { -+ int r = madvise(p, psize, advises[n].advise); -+ if (r < 0) ++ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) ++ if (madvise(p, psize, advice[n]) < 0) + log_warning("Failed to give advice about use of memory: %m"); -+ } + h = p; if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 || le64toh(h->header_size) < sizeof(CatalogHeader) || ---- src/journal/journal-authenticate.c -+++ src/journal/journal-authenticate.c 2014-10-24 07:41:09.271837523 +0000 -@@ -355,7 +355,7 @@ int journal_file_fss_load(JournalFile *f +Index: systemd/src/journal/journal-authenticate.c +=================================================================== +--- systemd.orig/src/journal/journal-authenticate.c ++++ systemd/src/journal/journal-authenticate.c +@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f goto finish; } - m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0); -+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED|MAP_STACK, fd, 0); ++ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, ++ MAP_SHARED | MAP_STACK, fd, 0); if (m == MAP_FAILED) { m = NULL; r = -errno; -@@ -399,7 +399,7 @@ int journal_file_fss_load(JournalFile *f +@@ -399,7 +400,9 @@ int journal_file_fss_load(JournalFile *f goto finish; } - f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); ++ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), ++ PROT_READ | PROT_WRITE, MAP_SHARED | MAP_STACK, ++ fd, 0); if (f->fss_file == MAP_FAILED) { f->fss_file = NULL; r = -errno; ---- src/journal/journal-file.c -+++ src/journal/journal-file.c 2014-10-24 07:39:25.603837720 +0000 -@@ -2554,7 +2554,7 @@ int journal_file_open( - goto fail; - } - -- f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED, f->fd, 0); -+ f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED|MAP_STACK, f->fd, 0); - if (f->header == MAP_FAILED) { - f->header = NULL; - r = -errno; ---- src/journal/journald-kmsg.c -+++ src/journal/journald-kmsg.c 2014-10-24 07:38:01.967837989 +0000 -@@ -473,7 +473,7 @@ int server_open_kernel_seqnum(Server *s) +Index: systemd/src/journal/journald-kmsg.c +=================================================================== +--- systemd.orig/src/journal/journald-kmsg.c ++++ systemd/src/journal/journald-kmsg.c +@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s) return 0; } - p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); -+ p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0); ++ p = mmap(NULL, sizeof(uint64_t), PROT_READ | PROT_WRITE, ++ MAP_SHARED | MAP_STACK, fd, 0); if (p == MAP_FAILED) { - log_error("Failed to map sequential number file, ignoring: %m"); - close_nointr_nofail(fd); ---- src/journal/mmap-cache.c -+++ src/journal/mmap-cache.c 2014-10-24 11:16:47.759837744 +0000 -@@ -439,12 +439,21 @@ static int add_mmap( + log_error_errno(errno, "Failed to map sequential number file, ignoring: %m"); + return 0; +Index: systemd/src/journal/mmap-cache.c +=================================================================== +--- systemd.orig/src/journal/mmap-cache.c ++++ systemd/src/journal/mmap-cache.c +@@ -467,11 +467,14 @@ static int add_mmap( struct stat *st, void **ret) { -+ static const struct { -+ const int index; -+ int vise; -+ } ad[] = { -+ {0, MADV_WILLNEED}, -+ {1, MADV_SEQUENTIAL}, -+ {2, MADV_DONTDUMP}, -+ {3, MADV_DONTFORK} -+ }; ++ static const unsigned int advice[] = ++ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK}; uint64_t woffset, wsize; Context *c; FileDescriptor *f; Window *w; void *d; -- int r; -+ int n, r; ++ unsigned int n; + int r; assert(m); - assert(m->n_ref > 0); -@@ -481,7 +490,7 @@ static int add_mmap( +@@ -510,7 +513,8 @@ static int add_mmap( } for (;;) { - d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset); -+ d = mmap(NULL, wsize, prot, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, woffset); ++ d = mmap(NULL, wsize, prot, MAP_SHARED | MAP_POPULATE | ++ MAP_NONBLOCK, fd, woffset); if (d != MAP_FAILED) break; if (errno != ENOMEM) -@@ -494,6 +503,17 @@ static int add_mmap( +@@ -523,6 +527,16 @@ static int add_mmap( return -ENOMEM; } -+ for (n=0; n < sizeof(ad)/sizeof(ad[0]); n++) { -+ if (ad[n].vise == MADV_DONTFORK) { ++ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) { ++ if (advice[n] == MADV_DONTFORK) { + int flags = fcntl(fd, F_GETFD); + if (flags < 0 || !(flags & FD_CLOEXEC)) + continue; + } -+ r = madvise(d, wsize, ad[n].vise); -+ if (r < 0) ++ if (madvise(d, wsize, advice[n]) < 0) + log_warning("Failed to give advice about use of memory: %m"); + } + diff --git a/kbd-model-map.patch b/kbd-model-map.patch index 743a67b2..b7327892 100644 --- a/kbd-model-map.patch +++ b/kbd-model-map.patch @@ -1,13 +1,18 @@ +From: werner@suse.de +Date: Tue Jan 20 11:33:59 UTC 2015 + --- src/locale/kbd-model-map | 13 +++++++++++++ 1 file changed, 13 insertions(+) ---- src/locale/kbd-model-map -+++ src/locale/kbd-model-map 2015-01-20 11:31:38.357518811 +0000 -@@ -63,3 +63,16 @@ by by,us pc105 - terminate:ctrl_alt_ - il il pc105 - terminate:ctrl_alt_bksp - kazakh kz,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll +Index: systemd/src/locale/kbd-model-map +=================================================================== +--- systemd.orig/src/locale/kbd-model-map ++++ systemd/src/locale/kbd-model-map +@@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a + lt.l4 lt pc105 - terminate:ctrl_alt_bksp lt lt pc105 - terminate:ctrl_alt_bksp + khmer kh,us pc105 - terminate:ctrl_alt_bksp +# Additional layouts offered by YaST +Pl02 pl pc105 - terminate:ctrl_alt_bksp +arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle diff --git a/let-linker-find-libudev-for-libdevmapper.patch b/let-linker-find-libudev-for-libdevmapper.patch index e2bbdda1..4879c708 100644 --- a/let-linker-find-libudev-for-libdevmapper.patch +++ b/let-linker-find-libudev-for-libdevmapper.patch @@ -1,6 +1,13 @@ ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am 2014-03-13 08:54:36.010736086 +0000 -@@ -3691,6 +3691,10 @@ systemd_cryptsetup_CFLAGS = \ +--- + Makefile.am | 4 ++++ + configure.ac | 4 ---- + 2 files changed, 4 insertions(+), 4 deletions(-) + +Index: systemd/Makefile.am +=================================================================== +--- systemd.orig/Makefile.am ++++ systemd/Makefile.am +@@ -4789,6 +4789,10 @@ systemd_cryptsetup_CFLAGS = \ $(AM_CFLAGS) \ $(LIBCRYPTSETUP_CFLAGS) @@ -11,27 +18,18 @@ systemd_cryptsetup_LDADD = \ libsystemd-label.la \ libudev-internal.la \ ---- systemd-210/Makefile.in -+++ systemd-210/Makefile.in 2014-03-13 09:19:48.950238725 +0000 -@@ -8964,7 +8964,7 @@ src/cryptsetup/systemd_cryptsetup-crypts +Index: systemd/configure.ac +=================================================================== +--- systemd.orig/configure.ac ++++ systemd/configure.ac +@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*], + -Wno-gnu-variable-sized-type-not-at-end \ + ])]) - systemd-cryptsetup$(EXEEXT): $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_DEPENDENCIES) $(EXTRA_systemd_cryptsetup_DEPENDENCIES) - @rm -f systemd-cryptsetup$(EXEEXT) -- $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDADD) $(LIBS) -+ $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDFLAGS) $(systemd_cryptsetup_LDADD) $(LIBS) - src/cryptsetup/cryptsetup-generator.$(OBJEXT): \ - src/cryptsetup/$(am__dirstamp) \ - src/cryptsetup/$(DEPDIR)/$(am__dirstamp) ---- systemd-210/configure.ac -+++ systemd-210/configure.ac 2014-03-13 13:46:24.394235954 +0000 -@@ -156,10 +156,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CF - -fdata-sections \ - -fstack-protector \ - --param=ssp-buffer-size=4]) -AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -- -flto])], +- -flto -ffat-lto-objects])], - [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) - AC_SUBST([OUR_CFLAGS], "$with_cflags $address_sanitizer_cflags") + AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], diff --git a/localfs.service b/localfs.service deleted file mode 100644 index da3facec..00000000 --- a/localfs.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Shadow /etc/init.d/boot.localfs -DefaultDependencies=no -After=local-fs.target - -[Service] -RemainAfterExit=true -ExecStart=/bin/true diff --git a/log-target-null-instead-kmsg.patch b/log-target-null-instead-kmsg.patch deleted file mode 100644 index 4e715385..00000000 --- a/log-target-null-instead-kmsg.patch +++ /dev/null @@ -1,116 +0,0 @@ ---- - src/journal/journald-kmsg.c | 16 +++++++++++++++- - src/libudev/libudev-util.c | 16 +++++++++++++++- - src/shared/log.c | 16 +++++++++++++++- - src/shared/util.c | 6 +++++- - 4 files changed, 50 insertions(+), 4 deletions(-) - -Index: systemd-210/src/journal/journald-kmsg.c -=================================================================== ---- systemd-210.orig/src/journal/journald-kmsg.c -+++ systemd-210/src/journal/journald-kmsg.c -@@ -391,12 +391,24 @@ static int dispatch_dev_kmsg(sd_event_so - return server_read_dev_kmsg(s); - } - -+static int parse_proc_cmdline_word(const char *word) { -+ if (streq(word, "systemd.log_target=null")) -+ return -115; -+ -+ return 0; -+} -+ - int server_open_dev_kmsg(Server *s) { - int r; - - assert(s); - -- s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { -+ s->dev_kmsg_fd = open("/dev/null", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ } else { -+ s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); -+ } -+ - if (s->dev_kmsg_fd < 0) { - log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, - "Failed to open /dev/kmsg, ignoring: %m"); -Index: systemd-210/src/libudev/libudev-util.c -=================================================================== ---- systemd-210.orig/src/libudev/libudev-util.c -+++ systemd-210/src/libudev/libudev-util.c -@@ -416,6 +416,13 @@ uint64_t util_string_bloom64(const char - return bits; - } - -+static int parse_proc_cmdline_word(const char *word) { -+ if (streq(word, "systemd.log_target=null")) -+ return -115; -+ -+ return 0; -+} -+ - ssize_t print_kmsg(const char *fmt, ...) - { - _cleanup_close_ int fd = -1; -@@ -424,7 +431,12 @@ ssize_t print_kmsg(const char *fmt, ...) - ssize_t len; - ssize_t ret; - -- fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ 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; - -Index: systemd-210/src/shared/log.c -=================================================================== ---- systemd-210.orig/src/shared/log.c -+++ systemd-210/src/shared/log.c -@@ -92,12 +92,24 @@ void log_close_kmsg(void) { - kmsg_fd = -1; - } - -+static int parse_proc_cmdline_word(const char *word) { -+ if (streq(word, "systemd.log_target=null")) -+ return -115; -+ -+ return 0; -+} -+ - static int log_open_kmsg(void) { - - if (kmsg_fd >= 0) - return 0; - -- kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { -+ kmsg_fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ } else { -+ kmsg_fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); -+ } -+ - if (kmsg_fd < 0) - return -errno; - -Index: systemd-210/src/shared/util.c -=================================================================== ---- systemd-210.orig/src/shared/util.c -+++ systemd-210/src/shared/util.c -@@ -6069,7 +6069,11 @@ int parse_proc_cmdline(int (*parse_word) - - r = parse_word(word); - if (r < 0) { -- log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); -+ if (r == -115) { -+ log_error("Warning: %s set, redirecting messages to /dev/null.", word); -+ } else { -+ log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); -+ } - return r; - } - } diff --git a/macros.systemd.upstream b/macros.systemd.upstream index 323d1d48..8c2e84f6 100644 --- a/macros.systemd.upstream +++ b/macros.systemd.upstream @@ -26,7 +26,9 @@ %_udevrulesdir @udevrulesdir@ %_journalcatalogdir @catalogdir@ %_tmpfilesdir @tmpfilesdir@ +%_sysusersdir @sysusersdir@ %_sysctldir @sysctldir@ +%_binfmtdir @binfmtdir@ %systemd_requires \ Requires(post): systemd \ @@ -37,42 +39,71 @@ Requires(postun): systemd \ %systemd_post() \ if [ $1 -eq 1 ] ; then \ # Initial installation \ - @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \ + systemctl preset %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} +%systemd_user_post() %systemd_post --user --global %{?*} + %systemd_preun() \ if [ $1 -eq 0 ] ; then \ # Package removal, not upgrade \ - @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \ + systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + systemctl stop %{?*} > /dev/null 2>&1 || : \ +fi \ +%{nil} + +%systemd_user_preun() \ +if [ $1 -eq 0 ] ; then \ + # Package removal, not upgrade \ + systemctl --no-reload --user --global disable %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} %systemd_postun() \ -@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +systemctl daemon-reload >/dev/null 2>&1 || : \ %{nil} +%systemd_user_postun() %{nil} + %systemd_postun_with_restart() \ -@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +systemctl daemon-reload >/dev/null 2>&1 || : \ if [ $1 -ge 1 ] ; then \ # Package upgrade, not uninstall \ - @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ + systemctl try-restart %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} +%systemd_user_postun_with_restart() %{nil} + %udev_hwdb_update() \ -@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \ +udevadm hwdb --update >/dev/null 2>&1 || : \ %{nil} %udev_rules_update() \ -@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \ +udevadm control --reload >/dev/null 2>&1 || : \ %{nil} %journal_catalog_update() \ -@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \ +journalctl --update-catalog >/dev/null 2>&1 || : \ %{nil} %tmpfiles_create() \ -@rootbindir@/systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ +systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \ +%{nil} + +%sysusers_create() \ +systemd-sysusers %{?*} >/dev/null 2>&1 || : \ +%{nil} + +%sysusers_create_inline() \ +echo %{?*} | systemd-sysusers - >/dev/null 2>&1 || : \ +%{nil} + +%sysctl_apply() \ +@rootlibexecdir@/systemd-sysctl %{?*} >/dev/null 2>&1 || : \ +%{nil} + +%binfmt_apply() \ +@rootlibexecdir@/systemd-binfmt %{?*} >/dev/null 2>&1 || : \ %{nil} diff --git a/make-emergency.service-conflict-with-syslog.socket.patch b/make-emergency.service-conflict-with-syslog.socket.patch index 63e513cc..d5814921 100644 --- a/make-emergency.service-conflict-with-syslog.socket.patch +++ b/make-emergency.service-conflict-with-syslog.socket.patch @@ -7,16 +7,19 @@ As a workaround explicitly stop syslog.socket when entering emergency.service. Reference: bnc#852232 -Index: systemd-208/units/emergency.service.in +--- + units/emergency.service.in | 1 + + 1 file changed, 1 insertion(+) + +Index: systemd-218/units/emergency.service.in =================================================================== ---- systemd-208/units/emergency.service.in -+++ systemd-208/units/emergency.service.in -@@ -9,7 +9,7 @@ - Description=Emergency Shell - Documentation=man:sulogin(8) +--- systemd-218.orig/units/emergency.service.in ++++ systemd-218/units/emergency.service.in +@@ -11,6 +11,7 @@ Documentation=man:sulogin(8) DefaultDependencies=no --Conflicts=shutdown.target -+Conflicts=shutdown.target syslog.socket + Conflicts=shutdown.target + Conflicts=rescue.service ++Conflicts=syslog.socket Before=shutdown.target [Service] diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch deleted file mode 100644 index 4f557c54..00000000 --- a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Frederic Crozat -Date: Wed, 12 Oct 2011 15:18:29 +0200 -Subject: module-load: handle SUSE /etc/sysconfig/kernel module list - ---- - src/modules-load/modules-load.c | 27 ++++++++++++++++++++++++++- - units/systemd-modules-load.service.in | 1 + - 2 files changed, 27 insertions(+), 1 deletion(-) - ---- systemd-206_git201308300826.orig/src/modules-load/modules-load.c -+++ systemd-206_git201308300826/src/modules-load/modules-load.c -@@ -262,6 +262,9 @@ static int parse_argv(int argc, char *ar - int main(int argc, char *argv[]) { - int r, k; - struct kmod_ctx *ctx; -+#ifdef HAVE_SYSV_COMPAT -+ _cleanup_free_ char *modules_on_boot = NULL; -+#endif - - r = parse_argv(argc, argv); - if (r <= 0) -@@ -318,7 +321,31 @@ int main(int argc, char *argv[]) { - r = k; - } - } -- -+#ifdef HAVE_SYSV_COMPAT -+ log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT"); -+ if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE, -+ "MODULES_LOADED_ON_BOOT", &modules_on_boot, -+ NULL)) < 0) { -+ if (r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/kernel: %s", strerror(-r)); -+ else -+ r = EXIT_SUCCESS; -+ } else -+ r = EXIT_SUCCESS; -+ if (modules_on_boot) { -+ char **modules = strv_split(modules_on_boot,WHITESPACE); -+ char **module; -+ -+ if (modules) { -+ STRV_FOREACH(module, modules) { -+ k = load_module(ctx, *module); -+ if (k < 0) -+ r = EXIT_FAILURE; -+ } -+ } -+ strv_free(modules); -+ } -+#endif - finish: - kmod_unref(ctx); - strv_free(arg_proc_cmdline_modules); ---- systemd-206_git201308300826.orig/units/systemd-modules-load.service.in -+++ systemd-206_git201308300826/units/systemd-modules-load.service.in -@@ -13,6 +13,7 @@ Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service - Before=sysinit.target shutdown.target - ConditionCapability=CAP_SYS_MODULE -+ConditionPathExists=|/etc/sysconfig/kernel - ConditionDirectoryNotEmpty=|/lib/modules-load.d - ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d - ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch deleted file mode 100644 index 5b296a18..00000000 --- a/optionally-warn-if-nss-myhostname-is-called.patch +++ /dev/null @@ -1,102 +0,0 @@ -From: Ludwig Nussel -Date: Fri, 20 May 2011 15:38:46 +0200 -Subject: optionally warn if nss-myhostname is called - ---- - configure.ac | 11 +++++++++++ - src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++ - 2 files changed, 43 insertions(+) - ---- systemd-206_git201308300826.orig/configure.ac -+++ systemd-206_git201308300826/configure.ac -@@ -817,6 +817,17 @@ if test "x$enable_myhostname" != "xno"; - fi - AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) - -+if test "x$have_myhostname" != "xno"; then -+ AC_MSG_CHECKING([log warning messages for nss-myhostname]) -+ AC_ARG_WITH(nss-my-hostname-warning, AS_HELP_STRING([--with-nss-my-hostname-warning], [log warning to syslog when nss-myhostname is called (default=no)]),[],[with_nss_my_hostname_warning=no]) -+ AC_MSG_RESULT([$with_nss_my_hostname_warning]) -+ -+ if test x$with_nss_my_hostname_warning != xno; then -+ AC_CHECK_HEADERS([syslog.h]) -+ AC_DEFINE([LOG_NSS_MY_HOSTNAME_WARNING],[1],[whether to log warning message for nss-myhostname]) -+ fi -+fi -+ - # ------------------------------------------------------------------------------ - AC_ARG_WITH(firmware-path, - AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], ---- systemd-206_git201308300826.orig/src/nss-myhostname/nss-myhostname.c -+++ systemd-206_git201308300826/src/nss-myhostname/nss-myhostname.c -@@ -29,6 +29,9 @@ - #include - #include - #include -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+#include -+#endif - - #include "ifconf.h" - #include "macro.h" -@@ -47,6 +50,10 @@ - #define LOCALADDRESS_IPV6 &in6addr_loopback - #define LOOPBACK_INTERFACE "lo" - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+static void warn(const char* hn); -+#endif -+ - enum nss_status _nss_myhostname_gethostbyname4_r( - const char *name, - struct gaih_addrtuple **pat, -@@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostb - return NSS_STATUS_NOTFOUND; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif - /* If this fails, n_addresses is 0. Which is fine */ - ifconf_acquire_addresses(&addresses, &n_addresses); - -@@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostb - local_address_ipv4 = LOCALADDRESS_IPV4; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif - return fill_in_hostent( - canonical, additional, - af, -@@ -509,6 +522,9 @@ found: - canonical = hn; - } - -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+ warn(hn); -+#endif - return fill_in_hostent( - canonical, additional, - af, -@@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostb - errnop, h_errnop, - NULL); - } -+ -+#ifdef LOG_NSS_MY_HOSTNAME_WARNING -+static void warn(const char* hn) { -+ if (strstr(program_invocation_short_name, "nscd")) { -+ syslog(LOG_WARNING, -+ "Some application tried to resolve hostname \"%s\" which is not in DNS. Stop nscd to find out which one.\n", -+ hn); -+ } else { -+ syslog(LOG_WARNING, -+ "%s(%u) tried to resolve hostname \"%s\" which is not in DNS. This might be the reason for the delays you experience.\n", -+ program_invocation_short_name, -+ getpid(), -+ hn); -+ } -+} -+#endif diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index 8709dc70..4226b51c 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -1,14 +1,14 @@ --- - src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- - 1 file changed, 50 insertions(+), 2 deletions(-) + src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++- + 1 file changed, 44 insertions(+), 1 deletion(-) -Index: systemd-210/src/fstab-generator/fstab-generator.c +Index: systemd/src/fstab-generator/fstab-generator.c =================================================================== ---- systemd-210.orig/src/fstab-generator/fstab-generator.c -+++ systemd-210/src/fstab-generator/fstab-generator.c -@@ -37,6 +37,50 @@ - static const char *arg_dest = "/tmp"; - static bool arg_enabled = true; +--- systemd.orig/src/fstab-generator/fstab-generator.c ++++ systemd/src/fstab-generator/fstab-generator.c +@@ -48,6 +48,49 @@ static char *arg_usr_what = NULL; + static char *arg_usr_fstype = NULL; + static char *arg_usr_options = NULL; +static int check_crypttab(const char *what) { + _cleanup_fclose_ FILE *f = NULL; @@ -53,26 +53,15 @@ Index: systemd-210/src/fstab-generator/fstab-generator.c + return 1; +} + -+ - static int mount_find_pri(struct mntent *me, int *ret) { - char *end, *pri; - unsigned long r; -@@ -212,7 +256,7 @@ static int add_mount( - *name = NULL, *unit = NULL, *lnk = NULL, - *automount_name = NULL, *automount_unit = NULL; - _cleanup_fclose_ FILE *f = NULL; -- int r; -+ int r, c; - - assert(what); - assert(where); -@@ -288,7 +332,8 @@ static int add_mount( - return -errno; - } + static int add_swap( + const char *what, + struct mntent *me, +@@ -118,7 +161,7 @@ static int add_swap( + if (r < 0) + return r; - if (!noauto) { -+ c = check_crypttab(what); -+ if (!noauto && (c != 0)) { - if (post) { - lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); - if (!lnk) ++ if (!noauto && check_crypttab(what) != 0) { + lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET, + nofail ? ".wants/" : ".requires/", name, NULL); + if (!lnk) diff --git a/plymouth-quit-and-wait-for-emergency-service.patch b/plymouth-quit-and-wait-for-emergency-service.patch index 560f9f3f..242a05d1 100644 --- a/plymouth-quit-and-wait-for-emergency-service.patch +++ b/plymouth-quit-and-wait-for-emergency-service.patch @@ -1,16 +1,40 @@ ---- systemd-208/units/console-shell.service.m4.in -+++ systemd-208/units/console-shell.service.m4.in 2014-02-05 11:28:31.446735287 +0000 +--- + units/console-shell.service.m4.in | 2 ++ + units/emergency.service.in | 3 ++- + units/rescue.service.in | 3 ++- + 3 files changed, 6 insertions(+), 2 deletions(-) + +Index: systemd/units/console-shell.service.m4.in +=================================================================== +--- systemd.orig/units/console-shell.service.m4.in ++++ systemd/units/console-shell.service.m4.in @@ -17,6 +17,8 @@ Before=getty.target [Service] Environment=HOME=/root WorkingDirectory=/root +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait - ExecStart=-/usr/sbin/sulogin + ExecStart=-@SULOGIN@ ExecStopPost=-@SYSTEMCTL@ poweroff Type=idle ---- systemd-208/units/rescue.service.m4.in -+++ systemd-208/units/rescue.service.m4.in 2014-02-05 11:28:45.214235524 +0000 +Index: systemd/units/emergency.service.in +=================================================================== +--- systemd.orig/units/emergency.service.in ++++ systemd/units/emergency.service.in +@@ -17,7 +17,8 @@ Before=shutdown.target + [Service] + Environment=HOME=/root + WorkingDirectory=/root +-ExecStartPre=-/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth quit ++ExecStartPre=-/usr/bin/plymouth --wait + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + Type=idle +Index: systemd/units/rescue.service.in +=================================================================== +--- systemd.orig/units/rescue.service.in ++++ systemd/units/rescue.service.in @@ -16,7 +16,8 @@ Before=shutdown.target [Service] Environment=HOME=/root @@ -18,18 +42,6 @@ -ExecStartPre=-/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' - ExecStart=-/usr/sbin/sulogin - ExecStopPost=-@SYSTEMCTL@ --fail --no-block default ---- systemd-208/units/emergency.service.in -+++ systemd-208/units/emergency.service.in 2014-02-05 11:28:51.782235282 +0000 -@@ -15,7 +15,8 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth --wait - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' - ExecStart=-/usr/sbin/sulogin - ExecStopPost=@SYSTEMCTL@ --fail --no-block default + ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + Type=idle diff --git a/prepare-suspend-to-disk.patch b/prepare-suspend-to-disk.patch deleted file mode 100644 index 01f95f9d..00000000 --- a/prepare-suspend-to-disk.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -Naur systemd-210/units/systemd-hibernate.service.in systemd-210-mod/units/systemd-hibernate.service.in ---- systemd-210/units/systemd-hibernate.service.in 2013-08-13 22:02:52.808756274 +0200 -+++ systemd-210-mod/units/systemd-hibernate.service.in 2014-03-25 12:27:44.995995220 +0100 -@@ -11,7 +11,10 @@ - DefaultDependencies=no - Requires=sleep.target - After=sleep.target -+ConditionKernelCommandLine=resume - - [Service] - Type=oneshot -+ExecStart=@rootbindir@/systemd-sleep-grub pre - ExecStart=@rootlibexecdir@/systemd-sleep hibernate -+ExecStopPost=@rootbindir@/systemd-sleep-grub post -diff -Naur systemd-210/units/systemd-hybrid-sleep.service.in systemd-210-mod/units/systemd-hybrid-sleep.service.in ---- systemd-210/units/systemd-hybrid-sleep.service.in 2013-08-13 22:02:52.809756282 +0200 -+++ systemd-210-mod/units/systemd-hybrid-sleep.service.in 2014-03-25 12:27:56.115994902 +0100 -@@ -11,7 +11,10 @@ - DefaultDependencies=no - Requires=sleep.target - After=sleep.target -+ConditionKernelCommandLine=resume - - [Service] - Type=oneshot -+ExecStart=@rootbindir@/systemd-sleep-grub pre - ExecStart=@rootlibexecdir@/systemd-sleep hybrid-sleep -+ExecStopPost=@rootbindir@/systemd-sleep-grub post diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch deleted file mode 100644 index f1e0dfcb..00000000 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ /dev/null @@ -1,91 +0,0 @@ -From: Frederic Crozat -Date: Wed, 7 Dec 2011 15:15:07 +0000 -Subject: remain_after_exit initscript heuristic and add new LSB headers - -Add remain_after_exit heuristic for initscripts and add LSB headers -PIDFile: and X-Systemd-RemainAfterExit to control it. - -(bnc#721426) (bnc#727771) ---- - src/core/service.c | 34 ++++++++++++++++++++++++++++++++-- - src/core/service.h | 1 + - 2 files changed, 33 insertions(+), 2 deletions(-) - -Index: systemd-208/src/core/service.c -=================================================================== ---- systemd-208.orig/src/core/service.c -+++ systemd-208/src/core/service.c -@@ -135,6 +135,7 @@ static void service_init(Unit *u) { - #ifdef HAVE_SYSV_COMPAT - s->sysv_start_priority = -1; - s->sysv_start_priority_from_rcnd = -1; -+ s->sysv_remain_after_exit_heuristic = true; - #endif - s->socket_fd = -1; - s->guess_main_pid = true; -@@ -883,6 +884,34 @@ static int service_load_sysv_path(Servic - free(short_description); - short_description = d; - -+ } else if (startswith_no_case(t, "PIDFile:")) { -+ char *fn; -+ -+ state = LSB; -+ -+ fn = strstrip(t+8); -+ if (!path_is_absolute(fn)) { -+ log_warning("[%s:%u] PID file not absolute. Ignoring.", path, line); -+ continue; -+ } -+ -+ if (!(fn = strdup(fn))) { -+ r = -ENOMEM; -+ goto finish; -+ } -+ -+ free(s->pid_file); -+ s->pid_file = fn; -+ s->sysv_remain_after_exit_heuristic = false; -+ s->remain_after_exit = false; -+ } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) { -+ char *j; -+ -+ state = LSB; -+ if ((j = strstrip(t+26)) && *j) { -+ s->remain_after_exit = parse_boolean(j); -+ s->sysv_remain_after_exit_heuristic = false; -+ } - } else if (state == LSB_DESCRIPTION) { - - if (startswith(l, "#\t") || startswith(l, "# ")) { -@@ -933,7 +962,8 @@ static int service_load_sysv_path(Servic - - /* Special setting for all SysV services */ - s->type = SERVICE_FORKING; -- s->remain_after_exit = !s->pid_file; -+ if (s->sysv_remain_after_exit_heuristic) -+ s->remain_after_exit = !s->pid_file; - s->guess_main_pid = false; - s->restart = SERVICE_RESTART_NO; - s->exec_context.ignore_sigpipe = false; -@@ -2080,7 +2110,7 @@ static void service_enter_running(Servic - if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && - (s->bus_name_good || s->type != SERVICE_DBUS)) { - #ifdef HAVE_SYSV_COMPAT -- if (s->sysv_enabled && !s->pid_file) -+ if (s->sysv_enabled && !s->pid_file && s->sysv_remain_after_exit_heuristic) - s->remain_after_exit = false; - #endif - service_set_state(s, SERVICE_RUNNING); -Index: systemd-208/src/core/service.h -=================================================================== ---- systemd-208.orig/src/core/service.h -+++ systemd-208/src/core/service.h -@@ -178,6 +178,7 @@ struct Service { - bool is_sysv:1; - bool sysv_has_lsb:1; - bool sysv_enabled:1; -+ bool sysv_remain_after_exit_heuristic:1; - int sysv_start_priority_from_rcnd; - int sysv_start_priority; - diff --git a/respect-nfs-bg-option.patch b/respect-nfs-bg-option.patch index ccf7cea4..91822e07 100644 --- a/respect-nfs-bg-option.patch +++ b/respect-nfs-bg-option.patch @@ -1,19 +1,22 @@ ---- systemd-210/src/fstab-generator/fstab-generator.c 2014-02-17 15:49:21.070855641 +0100 -+++ systemd-210/src/fstab-generator/fstab-generator.c 2014-04-25 16:25:13.256106126 +0200 -@@ -255,10 +255,12 @@ - "SourcePath=%s\n", - source); +--- + src/fstab-generator/fstab-generator.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +Index: systemd-218/src/fstab-generator/fstab-generator.c +=================================================================== +--- systemd-218.orig/src/fstab-generator/fstab-generator.c ++++ systemd-218/src/fstab-generator/fstab-generator.c +@@ -238,8 +238,11 @@ static int add_mount( + "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", + source); - if (post && !noauto && !nofail && !automount) -- fprintf(f, -- "Before=%s\n", -- post); +- fprintf(f, "Before=%s\n", post); + if (post && !noauto && !nofail && !automount) { -+ if (!streq(type, "nfs") || (streq(type, "nfs") && !strstr(opts, "bg"))) -+ fprintf(f, -+ "Before=%s\n", -+ post); ++ bool is_nfs = fstype != NULL && streq(fstype, "nfs"); ++ if (!is_nfs || strstr(opts, "bg") == NULL) ++ fprintf(f, "Before=%s\n", post); + } - r = add_fsck(f, what, where, type, passno); - if (r < 0) + if (passno != 0) { + r = generator_write_fsck_deps(f, arg_dest, what, where, fstype); diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index 422f23ca..132b73e1 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -3,18 +3,20 @@ Date: Mon, 29 Oct 2012 13:01:20 +0000 Subject: restore /var/run and /var/lock bind mount if they aren't symlink --- - Makefile.am | 9 +++++++++ - units/var-lock.mount | 19 +++++++++++++++++++ - units/var-run.mount | 19 +++++++++++++++++++ + Makefile.am | 9 +++++++++ + units/var-lock.mount | 19 +++++++++++++++++++ + units/var-run.mount | 19 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 units/var-lock.mount create mode 100644 units/var-run.mount ---- systemd-206_git201308300826.orig/Makefile.am -+++ systemd-206_git201308300826/Makefile.am -@@ -419,6 +419,12 @@ dist_systemunit_DATA = \ - units/system-update.target \ - units/initrd-switch-root.target +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -516,6 +516,12 @@ endif + dist_systemunit_DATA_busnames += \ + units/busnames.target +if HAVE_SYSV_COMPAT +dist_systemunit_DATA += \ @@ -25,7 +27,7 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -4379,6 +4385,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -6086,6 +6092,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service @@ -33,10 +35,12 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink + var-run.mount \ + var-lock.mount endif + SYSINIT_TARGET_WANTS += \ - systemd-update-utmp.service +Index: systemd-218/units/var-lock.mount +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/units/var-lock.mount ++++ systemd-218/units/var-lock.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# @@ -57,8 +61,10 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink +Where=/var/lock +Type=bind +Options=bind +Index: systemd-218/units/var-run.mount +=================================================================== --- /dev/null -+++ systemd-206_git201308300826/units/var-run.mount ++++ systemd-218/units/var-run.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch deleted file mode 100644 index d0e907bb..00000000 --- a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Frederic Crozat -Date: Fri, 30 Sep 2011 12:58:17 +0200 -Subject: service: flags sysv service with detected pid as - RemainAfterExit=false - -LSB header doesn't give pidfile, so all LSB initscripts have -RemainAfterExit=false, causing daemon termination to not be reported as -such by systemd. Checking at startup if daemon is still running for -sysv initscript to disable RemainAfterExit helps a lot. -Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 ---- - src/core/service.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - ---- systemd-206_git201308300826.orig/src/core/service.c -+++ systemd-206_git201308300826/src/core/service.c -@@ -2100,8 +2100,13 @@ static void service_enter_running(Servic - cgroup_ok = cgroup_good(s); - - if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && -- (s->bus_name_good || s->type != SERVICE_DBUS)) -+ (s->bus_name_good || s->type != SERVICE_DBUS)) { -+#ifdef HAVE_SYSV_COMPAT -+ if (s->sysv_enabled && !s->pid_file) -+ s->remain_after_exit = false; -+#endif - service_set_state(s, SERVICE_RUNNING); -+ } - else if (s->remain_after_exit) - service_set_state(s, SERVICE_EXITED); - else diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index e13cb6dd..23bd0163 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -6,10 +6,8 @@ Use and set default logging console for both journald and kernel messages src/journal/journald-server.c | 5 ++ 3 files changed, 105 insertions(+) -Index: src/journal/journald-console.c -=================================================================== ---- src/journal/journald-console.c.orig -+++ src/journal/journald-console.c +--- systemd-219.orig/src/journal/journald-console.c ++++ systemd-219/src/journal/journald-console.c @@ -23,6 +23,14 @@ #include #include @@ -25,13 +23,13 @@ Index: src/journal/journald-console.c #include "fileio.h" #include "journald-server.h" -@@ -43,6 +51,74 @@ static bool prefix_timestamp(void) { +@@ -43,6 +51,76 @@ static bool prefix_timestamp(void) { return cached_printk_time; } -+#ifdef HAVE_SYSV_COMPAT +void defaul_tty_path(Server *s) +{ ++#ifdef HAVE_SYSV_COMPAT + static const char list[] = "/dev/tty10\0" "/dev/console\0"; + const char *vc; + @@ -51,10 +49,12 @@ Index: src/journal/journald-console.c + s->tty_path = strdup(vc); + break; + } ++#endif +} + +void klogconsole(Server *s) +{ ++#ifdef HAVE_SYSV_COMPAT + _cleanup_free_ char *klogconsole_params = NULL; + _cleanup_close_ int fd = -1; + const char *vc = s->tty_path; @@ -94,27 +94,29 @@ Index: src/journal/journald-console.c + num = klogconsole_params + strcspn(klogconsole_params, "0123456789"); + if (safe_atoi(num, &r) == 0) + klogctl(8, 0, r); -+} +#endif ++} + void server_forward_console( Server *s, int priority, -@@ -64,6 +140,10 @@ void server_forward_console( +@@ -64,6 +142,12 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; ++#ifdef HAVE_SYSV_COMPAT + /* Do not write security/authorization (private) messages to console */ + if ((priority & LOG_FACMASK) == LOG_AUTHPRIV) + return; ++#endif + /* First: timestamp */ if (prefix_timestamp()) { assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -101,7 +181,23 @@ void server_forward_console( +@@ -100,7 +184,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { - log_debug("Failed to open %s for logging: %m", tty); + log_debug_errno(errno, "Failed to open %s for logging: %m", tty); +#ifdef HAVE_SYSV_COMPAT + if (fd != -ENOENT && fd != -ENODEV) + return; @@ -135,23 +137,18 @@ Index: src/journal/journald-console.c } if (writev(fd, iovec, n) < 0) -Index: src/journal/journald-console.h -=================================================================== ---- src/journal/journald-console.h.orig -+++ src/journal/journald-console.h -@@ -24,3 +24,7 @@ +--- systemd-219.orig/src/journal/journald-console.h ++++ systemd-219/src/journal/journald-console.h +@@ -24,3 +24,6 @@ #include "journald-server.h" - void server_forward_console(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred); -+#ifdef HAVE_SYSV_COMPAT + void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred); ++ +void klogconsole(Server *s); +void defaul_tty_path(Server *s); -+#endif -Index: src/journal/journald-server.c -=================================================================== ---- src/journal/journald-server.c.orig -+++ src/journal/journald-server.c -@@ -1509,6 +1509,11 @@ int server_init(Server *s) { +--- systemd-219.orig/src/journal/journald-server.c ++++ systemd-219/src/journal/journald-server.c +@@ -1520,6 +1520,11 @@ int server_init(Server *s) { server_parse_config_file(s); server_parse_proc_cmdline(s); @@ -161,5 +158,5 @@ Index: src/journal/journald-server.c + klogconsole(s); + if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { - log_debug("Setting both rate limit interval and burst from %llu,%u to 0,0", - (long long unsigned) s->rate_limit_interval, + log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0", + s->rate_limit_interval, s->rate_limit_burst); diff --git a/shut-up-annoying-assertion-monotonic-clock-message.patch b/shut-up-annoying-assertion-monotonic-clock-message.patch deleted file mode 100644 index ecdf4bc0..00000000 --- a/shut-up-annoying-assertion-monotonic-clock-message.patch +++ /dev/null @@ -1,38 +0,0 @@ -Stop flooding the kernel's message ring buffer with useless -messages on dual_timestamp_is_set is failed. This is a backport -from upstream code. - ---- - src/libsystemd/sd-event/sd-event.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- systemd-210/src/libsystemd/sd-event/sd-event.c -+++ systemd-210/src/libsystemd/sd-event/sd-event.c 2014-05-02 10:01:23.366235185 +0000 -@@ -2191,9 +2191,12 @@ _public_ int sd_event_exit(sd_event *e, - _public_ int sd_event_get_now_realtime(sd_event *e, uint64_t *usec) { - assert_return(e, -EINVAL); - assert_return(usec, -EINVAL); -- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); - assert_return(!event_pid_changed(e), -ECHILD); - -+ /* If we haven't run yet, just get the actual time */ -+ if (!dual_timestamp_is_set(&e->timestamp)) -+ return -ENODATA; -+ - *usec = e->timestamp.realtime; - return 0; - } -@@ -2201,9 +2204,12 @@ _public_ int sd_event_get_now_realtime(s - _public_ int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec) { - assert_return(e, -EINVAL); - assert_return(usec, -EINVAL); -- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); - assert_return(!event_pid_changed(e), -ECHILD); - -+ /* If we haven't run yet, just get the actual time */ -+ if (!dual_timestamp_is_set(&e->timestamp)) -+ return -ENODATA; -+ - *usec = e->timestamp.monotonic; - return 0; - } diff --git a/shut-up-rpmlint-on-var-log-journal.patch b/shut-up-rpmlint-on-var-log-journal.patch index 3230a8f1..2304a184 100644 --- a/shut-up-rpmlint-on-var-log-journal.patch +++ b/shut-up-rpmlint-on-var-log-journal.patch @@ -1,6 +1,12 @@ ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am 2014-07-28 09:05:41.002735451 +0000 -@@ -3242,11 +3242,11 @@ noinst_LTLIBRARIES += \ +--- + Makefile.am | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +Index: systemd-218/Makefile.am +=================================================================== +--- systemd-218.orig/Makefile.am ++++ systemd-218/Makefile.am +@@ -4209,11 +4209,11 @@ noinst_LTLIBRARIES += \ libsystemd-journal-core.la journal-install-hook: @@ -16,4 +22,4 @@ + -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/ journal-uninstall-hook: - -rmdir $(DESTDIR)/var/log/journal/ + -rmdir $(DESTDIR)/var/log/journal/remote diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff new file mode 100644 index 00000000..b11ea682 --- /dev/null +++ b/suse-sysv-bootd-support.diff @@ -0,0 +1,86 @@ +From: Frederic Crozat +Date: Fri, 12 Apr 2013 16:56:26 +0200 +Subject: Revert "service: drop support for SysV scripts for the early boot" + +This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. + +[Implementation note: currently, the unit is generated, but not +activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] +--- + src/sysv-generator/sysv-generator.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +--- systemd-219.orig/src/sysv-generator/sysv-generator.c ++++ systemd-219/src/sysv-generator/sysv-generator.c +@@ -42,7 +42,8 @@ + + typedef enum RunlevelType { + RUNLEVEL_UP, +- RUNLEVEL_DOWN ++ RUNLEVEL_DOWN, ++ RUNLEVEL_SYSINIT, + } RunlevelType; + + static const struct { +@@ -50,6 +51,9 @@ static const struct { + const char *target; + const RunlevelType type; + } rcnd_table[] = { ++ /* SUSE style boot.d */ ++ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++ + /* Standard SysV runlevels for start-up */ + { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, + { "rc2.d", SPECIAL_RUNLEVEL2_TARGET, RUNLEVEL_UP }, +@@ -65,7 +69,7 @@ static const struct { + directories in this order, and we want to make sure that + sysv_start_priority is known when we first load the + unit. And that value we only know from S links. Hence +- UP must be read before DOWN */ ++ UP/SYSINIT must be read before DOWN */ + }; + + typedef struct SysvStub { +@@ -83,7 +87,7 @@ typedef struct SysvStub { + bool reload; + } SysvStub; + +-const char *arg_dest = "/tmp"; ++static const char *arg_dest = "/tmp"; + + static int add_symlink(const char *service, const char *where) { + _cleanup_free_ char *from = NULL, *to = NULL; +@@ -235,6 +239,10 @@ static bool usage_contains_reload(const + static char *sysv_translate_name(const char *name) { + char *r; + ++ if (startswith(name, "boot.")) ++ /* Drop SuSE-style boot. prefix */ ++ name += 5; ++ + r = new(char, strlen(name) + strlen(".service") + 1); + if (!r) + return NULL; +@@ -864,10 +872,10 @@ static int set_dependencies_from_rcnd(Lo + + if (de->d_name[0] == 'S') { + +- if (rcnd_table[i].type == RUNLEVEL_UP) { ++ if (rcnd_table[i].type == RUNLEVEL_UP || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT) + service->sysv_start_priority = + MAX(a*10 + b, service->sysv_start_priority); +- } + + r = set_ensure_allocated(&runlevel_services[i], NULL); + if (r < 0) +@@ -878,7 +886,8 @@ static int set_dependencies_from_rcnd(Lo + goto finish; + + } else if (de->d_name[0] == 'K' && +- (rcnd_table[i].type == RUNLEVEL_DOWN)) { ++ (rcnd_table[i].type == RUNLEVEL_DOWN || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { + + r = set_ensure_allocated(&shutdown_services, NULL); + if (r < 0) diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch index 9b3defb9..08247c82 100644 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ b/sysctl-handle-boot-sysctl.conf-kernel_release.patch @@ -6,14 +6,14 @@ Subject: [PATCH] sysctl: handle /boot/sysctl.conf- Add support for kernel release sysctl.conf files (for per-flavor configuration), needed by openSUSE (bnc#809420). --- - src/sysctl/sysctl.c | 8 ++++++++ - units/systemd-sysctl.service.in | 1 + - 2 files changed, 9 insertions(+) + src/sysctl/sysctl.c | 8 ++++++++ + units/systemd-sysctl.service.in | 2 ++ + 2 files changed, 10 insertions(+) -Index: systemd-207/src/sysctl/sysctl.c +Index: systemd-218/src/sysctl/sysctl.c =================================================================== ---- systemd-207.orig/src/sysctl/sysctl.c -+++ systemd-207/src/sysctl/sysctl.c +--- systemd-218.orig/src/sysctl/sysctl.c ++++ systemd-218/src/sysctl/sysctl.c @@ -26,6 +26,7 @@ #include #include @@ -22,7 +22,7 @@ Index: systemd-207/src/sysctl/sysctl.c #include "log.h" #include "strv.h" -@@ -299,6 +300,13 @@ int main(int argc, char *argv[]) { +@@ -310,6 +311,13 @@ int main(int argc, char *argv[]) { } else { _cleanup_strv_free_ char **files = NULL; char **f; @@ -36,14 +36,14 @@ Index: systemd-207/src/sysctl/sysctl.c r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); if (r < 0) { -Index: systemd-207/units/systemd-sysctl.service.in +Index: systemd-218/units/systemd-sysctl.service.in =================================================================== ---- systemd-207.orig/units/systemd-sysctl.service.in -+++ systemd-207/units/systemd-sysctl.service.in -@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/usr/lib/sys - ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d - ConditionDirectoryNotEmpty=|/etc/sysctl.d - ConditionDirectoryNotEmpty=|/run/sysctl.d +--- systemd-218.orig/units/systemd-sysctl.service.in ++++ systemd-218/units/systemd-sysctl.service.in +@@ -13,6 +13,8 @@ Conflicts=shutdown.target + After=systemd-modules-load.service + Before=sysinit.target shutdown.target + ConditionPathIsReadWrite=/proc/sys/ +ConditionPathExistsGlob=|/boot/sysctl.conf-%v +RequiresMountsFor=/boot diff --git a/systemctl-set-default-target.patch b/systemctl-set-default-target.patch index 4dd058d9..86aec7e9 100644 --- a/systemctl-set-default-target.patch +++ b/systemctl-set-default-target.patch @@ -3,12 +3,14 @@ Mention that --force is required to override an already existing default.target This solves the bug bnc#868439 --- - systemctl.xml | 4 +++- + man/systemctl.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) ---- systemd-210/man/systemctl.xml -+++ systemd-210/man/systemctl.xml 2014-03-19 12:19:53.182235657 +0000 -@@ -371,7 +371,7 @@ along with systemd; If not, see @@ -17,12 +19,12 @@ This solves the bug bnc#868439 any existing conflicting symlinks. When used with halt, -@@ -1036,6 +1036,8 @@ kobject-uevent 1 systemd-udevd-kernel.so - - Set the default target to boot into. Command links - default.target to the given unit. +@@ -1215,6 +1215,8 @@ kobject-uevent 1 systemd-udevd-kernel.so + Return the default target to boot into. This returns + the target unit name default.target + is aliased (symlinked) to. + If combined with , override + an already existing symlink for the default target. - + diff --git a/systemd-210.tar.xz b/systemd-210.tar.xz deleted file mode 100644 index dd2041d8..00000000 --- a/systemd-210.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2b3ddf9bf82f05cc3079650e86ae05b558381fd034cf1b03a592bcadd1610c4 -size 2620924 diff --git a/systemd-219.tar.xz b/systemd-219.tar.xz new file mode 100644 index 00000000..d90808ee --- /dev/null +++ b/systemd-219.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c57113454e37c040d0cb481bd960ae7cf3a3fe0a231ff4945259bc74503f2d9 +size 3938228 diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch index c1c06ba5..8eb7f440 100644 --- a/systemd-add-user-keep.patch +++ b/systemd-add-user-keep.patch @@ -1,25 +1,27 @@ -diff -Naur systemd-210/man/tmpfiles.d.xml systemd-210.mod/man/tmpfiles.d.xml ---- systemd-210/man/tmpfiles.d.xml 2014-12-18 09:40:29.403629407 +0100 -+++ systemd-210.mod/man/tmpfiles.d.xml 2014-12-18 10:34:06.274130934 +0100 -@@ -435,8 +435,12 @@ - f, F, - and w may be used to - specify a short string that is written to the -- file, suffixed by a newline. Ignored for all -- other lines. -+ file, suffixed by a newline. -+ For x, X -+ a comma separated list of usernames. If given, -+ only paths belonging to these users will be -+ excluded during directory cleanup. -+ Ignored for all other lines. - - - -diff -Naur systemd-210/src/tmpfiles/tmpfiles.c systemd-210.mod/src/tmpfiles/tmpfiles.c ---- systemd-210/src/tmpfiles/tmpfiles.c 2014-12-18 09:40:29.342629177 +0100 -+++ systemd-210.mod/src/tmpfiles/tmpfiles.c 2014-12-18 11:58:16.686576974 +0100 -@@ -263,6 +263,7 @@ +--- + man/tmpfiles.d.xml | 3 +++ + src/tmpfiles/tmpfiles.c | 48 ++++++++++++++++++++++++++++++++++++++++-------- + 2 files changed, 43 insertions(+), 8 deletions(-) + +Index: systemd/man/tmpfiles.d.xml +=================================================================== +--- systemd.orig/man/tmpfiles.d.xml ++++ systemd/man/tmpfiles.d.xml +@@ -489,6 +489,9 @@ + f, F, and + w may be used to specify a short string that + is written to the file, suffixed by a newline. For ++ x, X, a comma separated list of ++ usernames. If given, only paths belonging to these users will be excluded ++ during directory cleanup. Ignored for all other lines. For + C, specifies the source file or + directory. For t determines extended + attributes to be set. For a determines +Index: systemd/src/tmpfiles/tmpfiles.c +=================================================================== +--- systemd.orig/src/tmpfiles/tmpfiles.c ++++ systemd/src/tmpfiles/tmpfiles.c +@@ -345,6 +345,7 @@ static int dir_cleanup( struct timespec times[2]; bool deleted = false; int r = 0; @@ -27,52 +29,57 @@ diff -Naur systemd-210/src/tmpfiles/tmpfiles.c systemd-210.mod/src/tmpfiles/tmpf while ((dent = readdir(d))) { struct stat s; -@@ -306,11 +307,43 @@ +@@ -395,14 +396,45 @@ static int dir_cleanup( } /* Is there an item configured for this path? */ -- if (hashmap_get(items, sub_path)) +- if (hashmap_get(items, sub_path)) { +- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); - continue; +- } - -- if (find_glob(globs, sub_path)) +- if (find_glob(globs, sub_path)) { +- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); - continue; ++ bool found_glob = false; + found = hashmap_get(items, sub_path); -+ -+ if (!found) -+ found = find_glob(globs, sub_path); -+ -+ if (found) { -+ /* evaluate username arguments in ignore statements */ -+ if (found->type == IGNORE_PATH || found->type == IGNORE_DIRECTORY_PATH) { -+ if (!found->argument) -+ continue; -+ else { -+ struct passwd *pw; -+ char *userfound = NULL, *args = strdup(found->argument); -+ bool match = false; -+ int uid = -1; -+ -+ while ((userfound = strsep(&args, ","))) { -+ pw = getpwnam(userfound); -+ -+ if (!pw) -+ log_error("Unknown user '%s' in ignore statement.", userfound); -+ else { -+ uid = pw->pw_uid; -+ if (s.st_uid == uid) { -+ match = true; -+ break; -+ } -+ } -+ } -+ if (match) { -+ found = NULL; -+ continue; -+ } -+ } -+ } else -+ continue; ++ if (!found) { ++ found_glob = true; ++ found = find_glob(globs, sub_path); + } ++ if (found) { ++ struct passwd *pw; ++ char *userfound = NULL, *args; ++ bool match = false; ++ uid_t uid = -1; ++ ++ /* evaluate username arguments in ignore statements */ ++ if ((found->type != IGNORE_PATH && found->type != IGNORE_DIRECTORY_PATH) || ++ !found->argument) { ++ if (found_glob) ++ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); ++ else ++ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); ++ continue; ++ } ++ args = strdup(found->argument); ++ assert_se(args != NULL); ++ while ((userfound = strsep(&args, ",")) != NULL) { ++ pw = getpwnam(userfound); ++ if (pw == NULL) { ++ log_error("Unknown user '%s' in ignore statement.", userfound); ++ continue; ++ } ++ uid = pw->pw_uid; ++ if (s.st_uid == uid) { ++ match = true; ++ break; ++ } ++ } ++ if (match) { ++ found = NULL; ++ continue; ++ } + } if (S_ISDIR(s.st_mode)) { - diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch index cede24c9..89c83e42 100644 --- a/systemd-dbus-system-bus-address.patch +++ b/systemd-dbus-system-bus-address.patch @@ -1,18 +1,14 @@ ---- systemd-210/src/shared/def.h -+++ systemd-210/src/shared/def.h 2014-03-12 13:11:06.502235254 +0000 -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS ---- systemd-210/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-210/src/libsystemd/sd-bus/sd-bus.c 2014-03-12 14:31:09.966736492 +0000 -@@ -794,8 +794,8 @@ static int parse_container_unix_address( - machine = NULL; +--- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/shared/def.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +Index: systemd/src/libsystemd/sd-bus/sd-bus.c +=================================================================== +--- systemd.orig/src/libsystemd/sd-bus/sd-bus.c ++++ systemd/src/libsystemd/sd-bus/sd-bus.c +@@ -809,8 +809,8 @@ static int parse_container_unix_address( + b->nspid = 0; b->sockaddr.un.sun_family = AF_UNIX; - strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); @@ -22,3 +18,16 @@ return 0; } +Index: systemd/src/shared/def.h +=================================================================== +--- systemd.orig/src/shared/def.h ++++ systemd/src/shared/def.h +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS diff --git a/systemd-journald.init b/systemd-journald.init deleted file mode 100644 index 0b8d5081..00000000 --- a/systemd-journald.init +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# -# Copyright (c) 2001-2002 SuSE Linux AG, Nuernberg, Germany. -# All rights reserved. -# -# /etc/init.d/systemd-journald -# -### BEGIN INIT INFO -# Provides: syslog -# Required-Start: $null -# Required-Stop: $null -# Default-Start: 2 3 5 -# Default-Stop: -# Short-Description: compat wrapper for journald -# Description: compat wrapper for journald -### END INIT INFO - -. /etc/rc.status - -rc_reset - -case "$1" in - start|stop|restart) - rc_failed 3 - rc_status -v - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac - -rc_exit diff --git a/systemd-mini-rpmlintrc b/systemd-mini-rpmlintrc index def95a7d..a9e12af8 100644 --- a/systemd-mini-rpmlintrc +++ b/systemd-mini-rpmlintrc @@ -1,3 +1,4 @@ +addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot\.8.*") @@ -16,6 +17,7 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") +addFilter("nss-mymachines.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") diff --git a/systemd-mini.changes b/systemd-mini.changes index 78b33870..7a555d36 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,9 +1,575 @@ +------------------------------------------------------------------- +Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de + +- Add 0001-core-rework-device-state-logic.patch to fix spurious + automated umount after mount. + +------------------------------------------------------------------- +Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com + +- mark more subpackages as !bootstrap for systemd-mini usage. + +------------------------------------------------------------------- +Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org + +- spec : remove --with-firmware-path, firmware loader was removed in v217 +- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) +- spec: Do not enable systemd-readahead-collect.service and +systemd-readahead-replay.service as these do not exist anymore. +- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch + Yast was fixed to write all timezone changes exactly how timedated expects + things to be done. +- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg + package handles the migration from /etc/HOSTNAME to /etc/hostname + and owns both files. +-spec: remove boot.udev and systemd-journald.init as they currently + serve no purpose. +- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we + are in sysvcompat-only codepath, also remove the code targetting other + distributions, never compiled as the TARGET_$DISTRO macros are never defined. +- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT +- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards +- insserv-generator.patch: Only build when sysvcompat is enabled +- vhangup-on-all-consoles.patch add a comment indicating this is a workaround + for a kernel bug. +- spec: Add option to allow disabling sysvinit compat at build time. +- spec: Add option to enable resolved at build time. +- spec: Remove all %ifs for !factory products, current systemd releases can + neither be built nor installed in older products without upgrading + several components of the base system. + (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) +- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when + those init scripts still existed. (dummy localfs.service source: gone) +- systemd-sleep-grub: moved to the grub2 package where it belongs as a + suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) +- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds + config.h everywhere in the preprocessor cmdline. + +------------------------------------------------------------------- +Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 219 +* systemd units can now be "unsupported" (like, for example, + .device in a containers), similar to the "skipped" state in + SUSE's prior sysvinit scripts. +* tmpfiles gained the 'v' type for creating btrfs subvolumes. +* tmpfiles gained the 'a' type for setting ACLs. +* systemd-nspawn gained new switches: --ephemeral, --template +* The /var/lib/containers location is deprecated and replaced by + /var/lib/machines. +* machinectl gained the copy-from and copy-to commands. +* machinectl now knows a "bind" command (for use with nspawn) +* new "systemd-importd" daemon to download container images and run + them as nspawn containers. +* networkd collects LLDP network announcements, if available, and + so shown in networkctl. +* The fallback terminal type was changed from "vt102" to "vt220", + allowing PgUp/PgDn keys to work. +* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, + useful should the regular shutdown hang. +* Removing storage will cause systemd to unmount the associated + mountpoints so that they don't linger around. + +------------------------------------------------------------------- +Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de + +- Add suse-sysv-bootd-support.diff (reinstate old + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) + +------------------------------------------------------------------- +Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de + +- Update to systemd v218-1050-g38ab096 +- Remove patches + use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) +- Reinstate and improve (remove huge indents from) + tty-ask-password-agent-on-console.patch, + 0014-journald-with-journaling-FS.patch, rootsymlink_generator. + +------------------------------------------------------------------- +Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com + +- disable systemd-resolved for now as it interacts not well with + our methods and security has concerns regarding spoofing. bsc#917781 + ------------------------------------------------------------------- Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - Add patch kbd-model-map.patch to add missed keyboard layouts which are offered by YaST2 (bsc#910643 and boo#897803) +------------------------------------------------------------------- +Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 218 +* New utilities: systemd-timesyncd (SNTP client), + systemd-resolved, systemd-networkd, networkctl, + systemd-sysusers +* machinectl gained a "poweroff" command for clean container shutdown +* The udev hwdb now contains DPI information for mice. +* Userspace firmware loading support has been removed and + the minimum supported kernel version is thus bumped to 3.7. +- Remove patches: + G=gone locally, is upstream; + D=dropped: no longer needed; + N=no longer applies to source nor is it deemed needed; + K=killed: no longer applicable and too complex to resolve: + ---- + G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch + K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch + K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch + K handle-SYSTEMCTL_OPTIONS-environment-variable.patch + K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch + K log-target-null-instead-kmsg.patch + K tty-ask-password-agent-on-console.patch + K 513-nspawn-veth.patch + K 1087-infinit-timeout-for-kmod-loaded-modules.patch + D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + D avoid-leaking-socket-descriptors.patch + D 0001-make-fortify-happy-with-ppoll.patch + N fix-owner-of-var-log-btmp.patch + N disable-nss-myhostname-warning-bnc-783841.patch + N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch + N 0001-make-209-working-on-older-dist.patch + N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch + N tmpfiles-do-not-clean-for-mandb-index-files.patch + G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc + G optionally-warn-if-nss-myhostname-is-called.patch + G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch + G 0004-getty-generator-properly-escape-instance-names.patch + G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch + G 0008-Reset-signal-mask-on-re-exec-to-init.patch + G 0001-login-fix-pos-array-allocation.patch + G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch + G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + G 0005-Replace-var-run-with-run-in-remaining-places.patch + G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch + G 0007-README-document-that-var-run-must-be-a-symlink-run.patch + G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch + G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch + G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + G 0001-Fix-systemd-stdio-bridge-symlink.patch + G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + G 0004-man-document-missing-options-of-systemd-run.patch + G 0005-systemd-run-add-some-extra-safety-checks.patch + G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + G 0007-journal-forget-file-after-encountering-an-error.patch + G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + G 0010-man-update-link-to-LSB.patch + G 0011-man-systemd-bootchart-fix-spacing-in-command.patch + G 0012-man-add-missing-comma.patch + G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch + G 0002-manager-flush-memory-stream-before-using-the-buffer.patch + G 0003-busname-don-t-drop-service-from-the-result-string.patch + G 0004-fix-off-by-one-error-in-array-index-assertion.patch + G 0005-logind-fix-policykit-checks.patch + G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch + G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch + G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch + G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch + G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch + G 0007-networkd-fix-typo.patch + G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch + G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch + G 0012-journald-remove-stray-reset-of-error-return-value.patch + G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch + G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch + G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch + G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch + G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch + G 0005-sd-daemon-fix-incorrect-variable-access.patch + G 0006-sd-event-initialization-perturbation-value-right-bef.patch + G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch + G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch + G 0001-journal-fix-export-of-messages-containing-newlines.patch + G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + G 0003-tty-ask-password-agent-return-negative-errno.patch + G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + G 0005-systemd-python-fix-failing-assert.patch + G 0007-dbus-suppress-duplicate-and-misleading-messages.patch + G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch + G 0001-bash-completion-fix-__get_startable_units.patch + G 0002-sysctl-replaces-some-slashes-with-dots.patch + G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch + G 0004-implement-a-union-to-pad-out-file_handle.patch + G shut-up-annoying-assertion-monotonic-clock-message.patch + G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch + G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch + G 0003-analyze-fix-plot-with-bad-y-size.patch + G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch + G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch + G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch + G 0002-backlight-do-nothing-if-max_brightness-is-0.patch + G 0003-backlight-unify-error-messages.patch + G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch + G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch + G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch + G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch + G 0001-core-close-socket-fds-asynchronously.patch + G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch + G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch + G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch + G 0002-logind-fix-printf-format.patch + G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch + G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch + G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch + G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch + G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch + G 0008-man-update-journald-rate-limit-defaults.patch + G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch + G 0010-logind-allow-suspending-if-there-are-no-displays.patch + G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch + G 0002-man-note-that-entire-sections-can-now-be-ignored.patch + G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch + G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch + G 0006-login-add-mir-to-the-list-of-session-types.patch + G 0007-logind-fix-Display-property-of-user-objects.patch + G 0001-hwdb-update.patch + G 0002-hwdb-update.patch + G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch + G 0004-hwdb-update.patch + G 0005-hwdb-update.patch + G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch + G 0002-journal-properly-detect-language-specified-in-line.patch + G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch + G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch + G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch + G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch + G 0002-nspawn-restore-journal-directory-is-empty-check.patch + G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + G 0004-socket-properly-handle-if-our-service-vanished-durin.patch + G 0001-Do-not-unescape-unit-names-in-Install-section.patch + G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch + G 0001-virt-rework-container-detection-logic.patch + G 0002-fsck-include-device-name-in-the-message-about-missin.patch + G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch + G 0004-util-ignore_file-should-not-allow-files-ending-with.patch + G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch + G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch + G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch + G 0001-hwdb-fix-case-sensitive-match.patch + G 0001-sd-event-restore-correct-timeout-behaviour.patch + G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch + G 0001-umount-modernizations.patch + G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch + G 0003-core-allow-transient-mount-units.patch + G 0004-systemd-detect-virt-only-discover-Xen-domU.patch + G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch + G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch + G 0001-core-fix-invalid-free-in-killall.patch + G 0003-install-fix-invalid-free-in-unit_file_mask.patch + G 0001-systemd-detect-virt-detect-s390-virtualization.patch + G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch + G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch + G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch + G 0005-po-add-Greek-translation.patch + G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0007-po-add-German-translation.patch + G 0009-core-clean-up-signal-reset-logic-when-reexec.patch + G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch + G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch + G 0012-core-transaction-avoid-misleading-error-message-when.patch + G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch + G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch + G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch + G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch + G 0005-man-fix-path-in-crypttab-5.patch + G 0001-units-order-network-online.target-after-network.targ.patch + G 0001-core-use-correct-format-string-for-UIDs.patch + G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch + G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch + G 0002-journald-make-MaxFileSec-really-default-to-1month.patch + G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch + G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch + G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch + G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch + G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch + G 0001-parse_uid-return-ENXIO-for-1-uids.patch + G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch + G 0003-localed-consider-an-unset-model-as-a-wildcard.patch + G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch + G 0005-bus-close-a-bus-that-failed-to-connect.patch + G 0006-hwdb-update.patch + G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-architecture-Add-tilegx.patch + G 0002-architecture-Add-cris.patch + G 0003-arch-add-crisv32-to-uname-check.patch + G 0004-architecture-remove-cris-from-uname-list.patch + G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch + G 0002-namespace-fix-uninitialized-memory-access.patch + G 0001-machine-don-t-return-uninitialized-variable.patch + G 0002-vconsole-setup-run-setfont-before-loadkeys.patch + G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch + G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch + G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch + G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch + G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch + G 0007-service-flush-status-text-and-errno-values-each-time.patch + G 0001-journal-compress-return-early-in-uncompress_startswi.patch + G 0002-journal-compress-improve-xz-compression-performance.patch + G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch + G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch + G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch + G 0001-event-pull-in-sd-event.h-from-event-util.h.patch + G 0002-util-fix-has-cc-check-and-add-test.patch + G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch + G 0004-fileio-quote-more-shell-characters-in-envfiles.patch + G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch + G 0002-units-serial-getty-.service-use-the-default-RestartS.patch + G 0001-po-add-Ukrainian-translation.patch + G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch + G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch + G 0001-detect-virt-Fix-Xen-domU-discovery.patch + G 0002-Be-more-verbose-when-bind-or-listen-fails.patch + G 0003-Add-quotes-to-warning-message.patch + G 0004-systemd-return-the-first-error-from-manager_startup.patch + G 0001-bash-completion-p-option-for-journalctl.patch + G 0002-journalctl-man-allow-only-between-terms.patch + G 0003-systemd-use-pager-for-test-and-help.patch + G 0001-bus-proxyd-fix-incorrect-comparison.patch + G 0002-shell-completion-prevent-mangling-unit-names.patch + G 0003-Always-check-asprintf-return-code.patch + G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch + G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch + G 0006-parse_boolean-require-exact-matches.patch + G 0007-drop_duplicates-copy-full-BindMount-struct.patch + G 0008-shell-completion-prevent-mangling-unit-names-bash.patch + G 0009-journald-always-add-syslog-facility-for-messages-com.patch + G 0001-sysv-order-initscripts-which-provide-network-before-.patch + G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch + G 0003-keymap-Annotate-all-micmute-workarounds.patch + G 0007-hwdb-update.patch + G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch + G 0002-switch-root-umount-the-old-root-correctly.patch + G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch + G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch + G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch + G 0006-login-share-VT-signal-handler-between-sessions.patch + G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch + G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch + G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch + G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch + G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch + G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch + G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch + G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch + G 0003-keymap-Fix-HP-Pavillon-DV7.patch + G 0004-hwdb-update-format-description-and-document-reloadin.patch + G 0008-hwdb-update.patch + G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch + G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch + G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch + G 0001-login-fix-memory-leak-on-DropController.patch + G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch + G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch + G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch + G 0001-nspawn-fix-network-interface.patch + G 0001-completion-filter-templates-from-restartable-units.patch + G 0002-systemd-fix-error-message.patch + G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch + G 0004-config-parser-fix-mem-leak.patch + G 0005-login-fix-mem-leak.patch + G 0001-login-simplify-controller-handling.patch + G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch + G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0009-hwdb-update.patch + G 0001-systemctl-allow-to-change-the-default-target-without.patch + G 0001-activate-fix-fd-leak-in-do_accept.patch + G 0002-analyze-avoid-a-null-dereference.patch + G 0003-analyze-fix-mem-leak.patch + G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch + G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch + G 0006-bus-unref-buscreds-on-failure.patch + G 0007-core-fix-a-potential-mem-leak.patch + G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch + G 0009-journal-do-not-leak-mmaps-on-OOM.patch + G 0010-manager-use-correct-cleanup-function.patch + G 0001-core-fix-resource-leak-in-manager_environment_add.patch + G 0002-util-remove-a-unnecessary-check.patch + G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch + G 0004-shared-conf-parser.patch + G 0005-logind-fix-typo.patch + G 0006-systemctl-fix-resource-leak-CID-1237747.patch + G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch + G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch + G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch + G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch + G 0003-mount-order-options-before-other-arguments-to-mount.patch + G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch + G 0005-shared-label.h-add-missing-stdio.h-include.patch + G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch + G 0001-login-pause-devices-before-acknowledging-VT-switches.patch + G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch + G 0001-socket-introduce-SELinuxContextFromNet-option.patch + G 0002-util-avoid-non-portable-__WORDSIZE.patch + G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch + G 0002-bus-remove-unused-check.patch + G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch + G 0001-logind-add-support-for-Triton2-Power-Button.patch + G 0002-logind-add-support-for-TPS65217-Power-Button.patch + G 0001-shutdownd-clean-up-initialization-of-struct.patch + G 0003-bootchart-parse-userinput-with-safe_atoi.patch + G 0004-bootchart-check-return-of-strftime.patch + G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch + G 0001-journalctl-do-not-output-reboot-markers-when-running.patch + G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch + G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch + G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch + G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch + G 0003-fileio-label-return-error-when-writing-fails.patch + G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch + G 0004-sd-event-check-the-value-of-received-signal.patch + G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch + G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch + G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch + G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch + G 0003-sd-bus-check-return-value-of-vasprintf.patch + G 0004-core-map-the-rescue-argument-to-rescue.target.patch + G 0005-util-avoid-double-close-of-fd.patch + G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch + G 0001-tmpfiles-compare-return-against-correct-errno.patch + G 0001-shell-completion-fix-completion-of-inactive-units.patch + G 0002-shell-completion-propose-templates-for-disable-re-en.patch + G 0003-man-we-don-t-have-Wanted-dependency.patch + G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch + G 0001-systemd-continue-switch-root-even-if-umount-fails.patch + G 0002-systemd-try-harder-to-bind-to-notify-socket.patch + G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch + G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch + G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch + G 0004-journal-do-server_vacuum-for-sigusr1.patch + G 0005-cryptsetup-fix-an-OOM-check.patch + G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch + G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch + G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch + G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch + G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch + G 0005-journalctl-correct-help-text-for-until.patch + G 0006-calendarspec-fix-typo-in-annually.patch + G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch + G 0008-util-introduce-sethostname_idempotent.patch + G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch + G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch + G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch + G 0012-manager-do-not-print-anything-while-passwords-are-be.patch + G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch + G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch + G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch + G 0002-snapshot-return-error-when-snapshot-exists.patch + G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch + G 0004-Raise-level-of-Found-dependency.-lines.patch + G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch + G 0006-journald-fix-minor-memory-leak.patch + G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch + G 0008-journald-fix-memory-leak-on-error-path.patch + G 0009-units-make-systemd-journald.service-Type-notify.patch + G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch + G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch + G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch + G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch + G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch + G 0001-systemctl-let-list-units-unit-files-honour-type.patch + G 0002-systemctl-obey-state-in-list-unit-files.patch + G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch + G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch + G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch + G 0001-selinux-access-fix-broken-ternary-operator.patch + G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch + G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch + G 0004-core-fix-transaction-destructiveness-check-once-more.patch + G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch + G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch + G 1009-cdrom_id-use-the-old-MMC-fallback.patch + G 1010-udev-increase-result-size-for-programs.patch + G 1014-udev-update-net_id-comments.patch + G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch + G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch + G 1017-udev-serialize-synchronize-block-device-event-handli.patch + G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch + G 1019-udev-avoid-use-of-uninitialized-err.patch + G 1020-udev-keyboard-also-hook-into-change-events.patch + G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch + G 1024-udev-always-close-lock-file-descriptor.patch + G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch + G 1026-udevd-inotify-modernizations.patch + G 1027-udev-synthesize-change-events-for-partitions-when-to.patch + G 1028-udev-link-config-fix-mem-leak.patch + G 1029-udev-try-first-re-reading-the-partition-table.patch + G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch + G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch + G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch + G 1033-udev-really-exclude-device-mapper-from-block-device.patch + G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch + G 1038-udev-fix-invalid-free-in-enable_name_policy.patch + G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch + G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch + G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch + G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch + G 1044-rules-update-qemu-hid-rules.patch + G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch + G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch + G 1048-udev-net_setup_link-add-a-bit-more-logging.patch + G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch + G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch + G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch + G 1056-udevd-add-event-timeout-commandline-option.patch + G 1057-udev-unify-event-timeout-handling.patch + G 1058-udev-unify-event-timeout-handling.patch + G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch + G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch + G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch + G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch + G 1065-udev-bump-event-timeout-to-60-seconds.patch + G 1067-udev-always-resolve-correctly-database-names-on-chan.patch + G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch + G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch + G 1070-rules-net-setup-link-remove-stray-linebreak.patch + G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch + G 1072-udev-netif_rename-don-t-log-to-kmsg.patch + G 1073-udev-drop-print_kmsg.patch + G 1074-udev-fix-copy-paste-error-in-log-message.patch + G 1075-udev-timeout-increase-timeout.patch + G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1078-udev-remove-userspace-firmware-loading-support.patch + G 1079-udev-remove-userspace-firmware-loading-support.patch + G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch + G 1081-udevd-check-return-of-various-functions.patch + G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch + G 1083-udev-node-warn-if-chmod-chown-fails.patch + G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch + G 1085-udev-fix-typos.patch + G 1086-udevd-don-t-fail-if-run-udev-exists.patch + G 1089-fix-cgroup-device-controller.patch + G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + G 1091-udev-path_id-update-comments.patch + G 1092-libudev-do-not-accept-invalid-log-levels.patch + G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch + G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch + G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd-mini.spec b/systemd-mini.spec index 015e1e0c..3399d28d 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,8 +23,9 @@ %define udevpkgname udev-mini %define udev_major 1 %bcond_without bash_completion -%bcond_without compat_libs %bcond_with networkd +%bcond_without sysvcompat +%bcond_with resolved %bcond_with python %bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 @@ -45,7 +46,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 210 +Version: 219 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -56,112 +57,69 @@ Provides: %{real} = %{version}-%{release} BuildRequires: acl BuildRequires: audit-devel -%if %{with compat_libs} -# See gold_archs in binutils.spec -%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc -BuildRequires: binutils-gold -%endif -%endif -BuildRequires: config(suse-module-tools) -%if ! 0%{?bootstrap} -BuildRequires: docbook-xsl-stylesheets -%endif +BuildRequires: autoconf +BuildRequires: automake BuildRequires: fdupes -%if ! 0%{?bootstrap} -BuildRequires: gobject-introspection-devel -%endif BuildRequires: gperf -%if ! 0%{?bootstrap} BuildRequires: gtk-doc -%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel -BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool -%if ! 0%{?bootstrap} -BuildRequires: libusb-devel -BuildRequires: libxslt-tools -%endif BuildRequires: pam-devel -%if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros -%endif -%if 0%{?suse_version} <= 1315 -BuildRequires: tcpd-devel -%endif BuildRequires: xz -BuildRequires: pkgconfig(blkid) >= 2.20 -%if ! 0%{?bootstrap} -BuildRequires: libgcrypt-devel -%if %{with python} -BuildRequires: python -%endif -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -%endif -%if 0%{?suse_version} <= 1310 -BuildRequires: pkgconfig(libkmod) >= 14 -%else +BuildRequires: config(suse-module-tools) +BuildRequires: pkgconfig(blkid) >= 2.24 BuildRequires: pkgconfig(libkmod) >= 15 -%endif BuildRequires: pkgconfig(liblzma) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libmicrohttpd) -%endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 -%endif -%if 0%{?suse_version} >= 1315 +BuildRequires: pkgconfig(mount) >= 2.20 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif -%else -%if 0%{?suse_version} >= 1310 -%ifarch %ix86 x86_64 x32 %arm -BuildRequires: pkgconfig(libseccomp) -%endif -%endif -%endif -%if ! 0%{?bootstrap} -BuildRequires: libapparmor-devel -%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -%if 0%{?suse_version} > 1310 Conflicts: sysvinit -%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else +BuildRequires: docbook-xsl-stylesheets +BuildRequires: gobject-introspection-devel +BuildRequires: gtk-doc +BuildRequires: libgcrypt-devel +BuildRequires: libusb-devel +BuildRequires: libxslt-tools +%if %{with python} +BuildRequires: python +%endif +BuildRequires: libapparmor-devel +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 +BuildRequires: pkgconfig(libmicrohttpd) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd -%if 0%{?suse_version} <= 1310 -Requires: kmod >= 14 -%else Requires: kmod >= 15 -%endif Requires: netcfg Requires: pam-config >= 0.79-5 +BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.21 +Requires: util-linux >= 2.25 Requires(post): coreutils Requires(post): findutils -%endif -%if ! 0%{?bootstrap} Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent @@ -173,47 +131,31 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} -Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz + +#Git-Clone: git://anongit.freedesktop.org/systemd/systemd +Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif -Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 -Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source1060: boot.udev Source1063: udev-generate-persistent-rule.sh -Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs -# -# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r -Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch -# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called -Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch -Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch -Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch -Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch -Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch -Patch18: fix-owner-of-var-log-btmp.patch -# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file -Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -221,14 +163,11 @@ Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch -# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable -Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts -Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file @@ -241,18 +180,10 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) -Patch23: disable-nss-myhostname-warning-bnc-783841.patch -# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) -Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin -Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian -Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -261,126 +192,8 @@ Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) -Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch -# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com -Patch117: 0001-make-209-working-on-older-dist.patch -# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com -Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch121: 0001-login-fix-pos-array-allocation.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch137: 0004-man-document-missing-options-of-systemd-run.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch140: 0007-journal-forget-file-after-encountering-an-error.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch143: 0010-man-update-link-to-LSB.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch145: 0012-man-add-missing-comma.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch151: 0005-logind-fix-policykit-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch158: 0007-networkd-fix-typo.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -389,8 +202,6 @@ Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch -Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com @@ -399,8 +210,6 @@ Patch183: 0001-add-network-device-after-NFS-mount-units.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch -# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) -Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager @@ -413,657 +222,38 @@ Patch191: systemd-dbus-system-bus-address.patch Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/14 -Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -# PATCH-FIX-SUSE Do not clean the data base files of the manual pages -Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch199: 0001-bash-completion-fix-__get_startable_units.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch -# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. -Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch -# PATCH-FIX-UPSTREAM Fix uninitialized memory -Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch -# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) -Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch216: 0003-backlight-unify-error-messages.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch -# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) -Patch219: log-target-null-instead-kmsg.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch222: 0001-core-close-socket-fds-asynchronously.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch226: 0002-logind-fix-printf-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch232: 0008-man-update-journald-rate-limit-defaults.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch245: 0007-logind-fix-Display-property-of-user-objects.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch246: 0001-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch247: 0002-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch249: 0004-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch250: 0005-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch252: 0002-journal-properly-detect-language-specified-in-line.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch262: 0001-virt-rework-container-detection-logic.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch -# PATCH-FIX-UPSTREAM added at 2014/06/05 -Patch269: 0001-hwdb-fix-case-sensitive-match.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch272: 0001-umount-modernizations.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch274: 0003-core-allow-transient-mount-units.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU -Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch278: 0001-core-fix-invalid-free-in-killall.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch -# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) -Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch -# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available -Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch284: 0005-po-add-Greek-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch286: 0007-po-add-German-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch295: 0005-man-fix-path-in-crypttab-5.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch296: 0001-units-order-network-online.target-after-network.targ.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch297: 0001-core-use-correct-format-string-for-UIDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch312: 0006-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch314: 0001-architecture-Add-tilegx.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch315: 0002-architecture-Add-cris.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch316: 0003-arch-add-crisv32-to-uname-check.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch317: 0004-architecture-remove-cris-from-uname-list.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch319: 0002-namespace-fix-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch320: 0001-machine-don-t-return-uninitialized-variable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch330: 0002-journal-compress-improve-xz-compression-performance.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/10 -Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch335: 0002-util-fix-has-cc-check-and-add-test.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch341: 0001-po-add-Ukrainian-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch347: 0003-Add-quotes-to-warning-message.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch349: 0001-bash-completion-p-option-for-journalctl.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch350: 0002-journalctl-man-allow-only-between-terms.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch355: 0003-Always-check-asprintf-return-code.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch358: 0006-parse_boolean-require-exact-matches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch -# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console Patch362: tty-ask-password-agent-on-console.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch -# PATCH-FIX-UPSTREAM added at 2014/08/01 -Patch367: 0007-hwdb-update.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch370: 0002-switch-root-umount-the-old-root-correctly.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch385: 0008-hwdb-update.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch390: 0001-login-fix-memory-leak-on-DropController.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch -# PATCH-FIX-UPSTREAM added at 2014/08/29 -Patch394: 0001-nspawn-fix-network-interface.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch395: 0001-completion-filter-templates-from-restartable-units.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch396: 0002-systemd-fix-error-message.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch398: 0004-config-parser-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch399: 0005-login-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/02 -Patch400: 0001-login-simplify-controller-handling.patch -# PATCH-FIX-UPSTREAM added at 2014/09/05 -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 -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch416: 0002-util-remove-a-unnecessary-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch418: 0004-shared-conf-parser.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch419: 0005-logind-fix-typo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch -# PATCH-FIX-UPSTREAM added at 2014/09/16 -Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary -Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved -Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) -Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch436: 0002-bus-remove-unused-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/26 -Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch442: 0004-bootchart-check-return-of-strftime.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch450: 0003-fileio-label-return-error-when-writing-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch452: 0004-sd-event-check-the-value-of-received-signal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch459: 0005-util-avoid-double-close-of-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/10/13 -Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/14 -Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch -# PATCH-FIX-SUSE added at 2014/10/15 -Patch468: avoid-leaking-socket-descriptors.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch473: 0005-cryptsetup-fix-an-OOM-check.patch -# PATCH-FIX-UPSTREAM added at 2014/10/24 -Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch -# PATCH-FIX-SUSE added at 2014/10/24 +# PATCH-FIX-SUSE added on 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch480: 0005-journalctl-correct-help-text-for-until.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch481: 0006-calendarspec-fix-typo-in-annually.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch483: 0008-util-introduce-sethostname_idempotent.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch -# PATCH-FIX-SUSE added at 2014/11/05 +# PATCH-FIX-SUSE added on 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch496: 0006-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch498: 0008-journald-fix-memory-leak-on-error-path.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch -# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) -Patch513: 513-nspawn-veth.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -# +Patch522: 0001-core-rework-device-state-logic.patch # UDEV PATCHES # ============ @@ -1085,188 +275,46 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 -Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch -# PATCH-FIX-SUSE increase result size for programs (bnc#867840) -Patch1010: 1010-udev-increase-result-size-for-programs.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch -Patch1014: 1014-udev-update-net_id-comments.patch -# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch # PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch Patch1021: 1021-udev-re-add-persistent-net-rules.patch -# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1024: 1024-udev-always-close-lock-file-descriptor.patch -# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch -Patch1026: 1026-udevd-inotify-modernizations.patch -# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch -Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch -# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch -Patch1028: 1028-udev-link-config-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch -Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch -# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch -Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch -# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch -Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch -Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch -# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch -Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch -Patch1044: 1044-rules-update-qemu-hid-rules.patch -# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch -Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch # PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch -# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch -Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch -# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch -Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch # PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch -Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch -# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch -Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch -# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch -Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch -# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch -Patch1057: 1057-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch -Patch1058: 1058-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch -Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch -Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch -# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 -# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch -Patch1081: 1081-udevd-check-return-of-various-functions.patch -# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch -Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch -# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch -Patch1085: 1085-udev-fix-typos.patch -# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch -Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch -# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch -Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch # PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch -# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch -Patch1089: 1089-fix-cgroup-device-controller.patch -# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch -Patch1091: 1091-udev-path_id-update-comments.patch -# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch -Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch -# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch -Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch -# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch -Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1474,6 +522,24 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. +%package -n nss-mymachines +Summary: Plugin for local virtual host name resolution +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-mymachines +nss-myhostname is a plugin for the GNU Name Service Switch (NSS) +functionality of the GNU C Library (glibc) providing host name +resolution for the locally configured containers and virtual machines +systemd-machined knows about. + +%package -n nss-resolve +Summary: Plugin for local hostname resolution via systemd-resolved +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-resolve + %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ @@ -1485,13 +551,12 @@ Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. - %endif %prep -%setup -q -n systemd-%{version} +%setup -q -n systemd-%version echo "Checking whether upstream rpm macros changed..." -[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 +diff -au "%{S:10}" src/core/macros.systemd.in # only needed for bootstrap %if 0%{?bootstrap} @@ -1499,29 +564,15 @@ cp %{SOURCE7} m4/ %endif # systemd patches -%patch0 -p1 -%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 -%if 0%{?suse_version} <= 1310 -%patch8 -p1 -%endif -%patch9 -p1 %patch12 -p1 -%patch13 -p0 -%patch15 -p1 %patch16 -p1 %patch17 -p1 -%patch18 -p1 -%patch19 -p0 %patch20 -p1 %patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html @@ -1532,418 +583,45 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch42 -p1 -%patch46 -p1 -%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 -%patch93 -p1 -%patch114 -p0 -%if 0%{?suse_version} <= 1310 -%patch117 -p1 -%endif -%patch119 -p1 %patch120 -p1 -%patch121 -p0 -%patch122 -p0 -%patch123 -p0 -%patch124 -p0 -%patch125 -p0 -%patch126 -p0 -%patch127 -p0 -%patch128 -p0 -%patch129 -p0 -%patch130 -p0 -%patch131 -p0 -%patch132 -p0 -%patch133 -p0 -%patch134 -p0 -%patch135 -p0 -%patch136 -p0 -%patch137 -p0 -%patch138 -p0 -%patch139 -p0 -%patch140 -p0 -%patch141 -p0 -%patch142 -p0 -%patch143 -p0 -%patch144 -p0 -%patch145 -p0 -%patch146 -p0 -%patch147 -p0 -%patch148 -p0 -%patch149 -p0 -%patch150 -p0 -%patch151 -p0 -%patch152 -p0 -%patch153 -p0 -%patch154 -p0 -%patch155 -p0 -%patch157 -p0 -%patch158 -p0 -%patch159 -p0 -%patch160 -p0 -%patch161 -p0 -%patch162 -p0 -%patch163 -p0 -%patch164 -p0 -%patch165 -p0 -%patch166 -p0 -%patch167 -p0 -%patch168 -p0 -%patch169 -p0 -%patch170 -p0 -%patch171 -p0 -%patch172 -p0 -%patch173 -p0 -%patch174 -p0 -%patch175 -p0 -%patch176 -p0 %patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 -%patch181 -p1 %patch182 -p1 %patch183 -p1 %patch185 -p1 %patch186 -p1 -%patch187 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 -%patch194 -p0 -%patch196 -p1 -%patch195 -p0 %patch197 -p1 %patch198 -p1 -%patch199 -p0 -%patch200 -p0 -%patch201 -p0 -%patch202 -p0 %patch203 -p1 -%patch204 -p1 -%patch206 -p0 -%patch207 -p0 %patch208 -p1 -%patch209 -p0 -%patch211 -p0 -%patch212 -p0 -%patch213 -p0 -%patch214 -p0 -%patch215 -p0 -%patch216 -p0 -%patch217 -p0 -%patch218 -p0 -%patch219 -p1 -%patch220 -p0 -%patch221 -p0 -%patch222 -p0 -%patch223 -p0 -%patch224 -p0 -%patch225 -p0 -%patch226 -p0 -%patch227 -p0 -%patch228 -p0 -%patch229 -p0 -%patch230 -p0 -%patch231 -p0 -%patch232 -p0 -%patch233 -p0 -%patch234 -p0 -%patch235 -p0 -%patch236 -p0 -%patch237 -p0 -%patch238 -p0 -%patch239 -p0 -%patch240 -p0 -%patch241 -p0 -%patch242 -p0 -%patch243 -p0 -%patch244 -p0 -%patch245 -p0 -%patch246 -p0 -%patch247 -p0 -%patch248 -p0 -%patch249 -p0 -%patch250 -p0 -%patch251 -p0 -%patch252 -p0 -%patch253 -p0 -%patch254 -p0 -%patch255 -p0 -%patch256 -p0 -%patch257 -p0 -%patch258 -p0 -%patch259 -p0 -%patch260 -p0 -%patch261 -p0 -%patch262 -p0 -%patch263 -p0 -%patch264 -p0 -%patch265 -p0 -%patch266 -p0 -%patch267 -p0 -%patch268 -p0 -%patch269 -p0 -%patch270 -p0 -%patch271 -p0 -%patch272 -p0 -%patch273 -p0 -%patch274 -p0 -%patch275 -p0 -%patch276 -p0 -%patch277 -p0 -%patch278 -p0 -%patch279 -p0 -%patch280 -p0 -%patch281 -p1 -%patch282 -p0 -%patch283 -p0 -%patch284 -p0 -%patch285 -p0 -%patch286 -p0 -%patch287 -p0 -%patch288 -p0 -%patch289 -p0 -%patch290 -p0 -%patch291 -p0 -%patch292 -p0 -%patch293 -p0 -%patch294 -p0 -%patch295 -p0 -%patch296 -p0 -%patch297 -p0 -%patch298 -p0 -%patch299 -p0 -%patch300 -p0 -%patch301 -p0 -%patch302 -p0 -%patch303 -p0 -%patch304 -p0 -%patch305 -p0 -%patch306 -p0 -%patch307 -p0 -%patch308 -p0 -%patch309 -p0 -%patch310 -p0 -%patch311 -p0 -%patch312 -p0 -%patch313 -p0 -%patch314 -p0 -%patch315 -p0 -%patch316 -p0 -%patch317 -p0 -%patch318 -p0 -%patch319 -p0 -%patch320 -p0 -%patch321 -p0 -%patch322 -p0 -%patch323 -p0 -%patch324 -p0 -%patch325 -p0 -%patch326 -p0 -%patch327 -p0 -%patch328 -p0 -%patch329 -p0 -%patch330 -p0 -%patch331 -p0 -%patch332 -p0 -%patch333 -p0 -%patch334 -p0 -%patch335 -p0 -%patch336 -p0 -%patch337 -p0 -%patch338 -p0 -%patch339 -p0 -%patch340 -p0 -%patch341 -p0 -%patch342 -p0 -%patch343 -p0 -%patch344 -p0 +%patch338 -p1 %patch345 -p1 -%patch346 -p0 -%patch347 -p0 -%patch348 -p0 -%patch349 -p0 -%patch350 -p0 -%patch351 -p0 -%patch352 -p0 -%patch353 -p0 -%patch354 -p0 -%patch355 -p0 -%patch356 -p0 -%patch357 -p0 -%patch358 -p0 -%patch359 -p0 -%patch360 -p0 -%patch361 -p0 +%patch352 -p1 %patch362 -p1 -%patch363 -p0 -%patch364 -p0 -%patch365 -p0 %patch366 -p1 -%patch367 -p0 %patch368 -p1 -%patch369 -p0 -%patch370 -p0 -%patch371 -p0 -%patch372 -p0 -%patch373 -p0 -%patch374 -p0 -%patch375 -p0 -%patch376 -p0 -%patch377 -p0 -%patch378 -p0 -%patch379 -p0 -%patch380 -p0 -%patch381 -p0 -%patch382 -p0 -%patch383 -p0 -%patch384 -p0 -%patch385 -p0 %patch386 -p1 -%patch387 -p0 -%patch388 -p0 -%patch389 -p0 -%patch390 -p0 -%patch391 -p0 -%patch392 -p0 -%patch393 -p0 -%patch394 -p0 -%patch395 -p0 -%patch396 -p0 -%patch397 -p0 -%patch398 -p0 -%patch399 -p0 -%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 -%patch415 -p0 -%patch416 -p0 -%patch417 -p0 -%patch418 -p0 -%patch419 -p0 -%patch420 -p0 -%patch421 -p0 -%patch422 -p0 -%patch423 -p0 -%patch424 -p0 -%patch425 -p0 -%patch426 -p0 -%patch427 -p0 -%patch428 -p0 -%patch429 -p0 %patch430 -p1 -%patch431 -p0 -%patch432 -p0 -%patch433 -p0 -%patch434 -p0 -%patch435 -p0 -%patch436 -p0 -%patch437 -p0 -%patch438 -p0 -%patch439 -p0 +%patch475 -p1 %ifarch %arm %patch38 -p1 %endif -%patch440 -p0 -%patch441 -p0 -%patch442 -p0 -%patch443 -p0 -%patch444 -p0 -%patch445 -p0 -%patch446 -p0 -%patch447 -p0 -%patch448 -p0 -%patch449 -p0 -%patch450 -p0 -%patch451 -p0 -%patch452 -p0 -%patch453 -p0 -%patch454 -p0 -%patch455 -p0 -%patch456 -p0 -%patch457 -p0 -%patch458 -p0 -%patch459 -p0 -%patch460 -p0 -%patch461 -p0 -%patch462 -p0 -%patch463 -p0 -%patch464 -p0 -%patch465 -p0 -%patch466 -p0 -%patch467 -p0 -%patch468 -p0 -%patch469 -p0 -%patch470 -p0 -%patch471 -p0 -%patch472 -p0 -%patch473 -p0 -%patch474 -p0 -%patch475 -p0 -%patch476 -p0 -%patch477 -p0 -%patch478 -p0 -%patch479 -p0 -%patch480 -p0 -%patch481 -p0 -%patch482 -p0 -%patch483 -p0 -%patch484 -p0 -%patch485 -p0 -%patch486 -p0 -%patch487 -p0 -%patch488 -p0 -%patch489 -p0 -%patch490 -p0 -%patch491 -p0 -%patch492 -p0 -%patch493 -p0 -%patch494 -p0 -%patch495 -p0 -%patch496 -p0 -%patch497 -p0 -%patch498 -p0 -%patch499 -p0 -%patch500 -p0 -%patch501 -p0 -%patch502 -p0 -%patch503 -p0 -%patch504 -p0 -%patch505 -p0 -%patch506 -p0 -%patch507 -p0 -%patch509 -p0 -%patch510 -p0 -%patch511 -p0 -%patch512 -p0 -%patch513 -p1 -%patch514 -p0 -%patch515 -p0 -%patch516 -p0 -%patch517 -p0 -%patch518 -p1 -%patch519 -p1 +%patch490 -p1 %patch520 -p1 -%patch521 -p0 +%patch521 -p1 +%patch522 -p1 # udev patches %patch1001 -p1 @@ -1952,131 +630,31 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 -%if 0%{?suse_version} <= 1310 -%patch1008 -p1 -%endif -%patch1009 -p1 -%patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p0 -%patch1017 -p0 -%patch1018 -p0 -%patch1019 -p0 -%patch1020 -p0 %patch1021 -p1 -%if %{with udevsettle} -%patch1022 -p1 -%endif -%patch1023 -p0 -%patch1024 -p0 -%if %{with blkrrpart} -%patch1025 -p1 -%endif -%patch1026 -p1 -%if %{with blkrrpart} -%patch1027 -p1 -%endif -%patch1028 -p1 -%if %{with blkrrpart} -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%endif %patch1035 -p1 %patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1038 -p0 -%if %{with udevsettle} -%patch1039 -p0 -%endif %patch1040 -p1 -%if %{with udevsettle} -%patch1041 -p0 -%patch1042 -p0 -%patch1043 -p0 -%endif -%patch1044 -p0 -%patch1045 -p0 %patch1046 -p1 -%patch1047 -p0 -%patch1048 -p0 -%patch1049 -p0 %patch1050 -p1 %patch1051 -p1 -%patch1052 -p0 %patch1053 -p1 %if %{with blkrrpart} -%patch1054 -p0 %else %patch1055 -p1 %endif -%patch1056 -p0 -%if %{with udevsettle} -%patch1057 -p0 -%else -%patch1058 -p0 -%endif -%patch1059 -p0 %patch1060 -p1 -%patch1061 -p0 %patch1062 -p1 -%if %{with parentpathid} -%patch1063 -p0 -%endif -%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 -%patch1080 -p0 -%patch1081 -p0 -%patch1082 -p0 -%patch1083 -p0 -%patch1084 -p0 -%patch1085 -p0 -%patch1086 -p0 -%patch1087 -p0 %patch1088 -p1 -%patch1089 -p1 -%if %{with parentpathid} -%patch1090 -p0 -%patch1091 -p0 -%endif -%patch1092 -p0 -%patch1093 -p0 -%patch1094 -p0 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 -%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -2096,17 +674,6 @@ else sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c fi -%if 0%{?suse_version} <= 1310 -# -# Older versions like oS 13.1 do not distinguish between -# network.target and network-online.target -# -for f in src/core/service.c src/insserv-generator/insserv-generator.c -do - sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f -done -%endif - # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 @@ -2147,11 +714,11 @@ cflags () esac set +o noclobber } -autoreconf -fiv +autoreconf -fi # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=e -export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" +export CFLAGS="%{optflags}" export LDFLAGS %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" @@ -2177,6 +744,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS --disable-gudev \ --disable-myhostname \ --disable-manpages \ + --disable-machined \ %else --enable-manpages \ %if %{with python} @@ -2184,16 +752,10 @@ cflags -Wl,--hash-size=8599 LDFLAGS %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ -%endif -%if %{with compat_libs} - --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ -%if 0%{?suse_version} <= 1310 - --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ -%endif %if ! 0%{?has_efi} --disable-efi \ %endif @@ -2202,11 +764,15 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ -%if 0%{?suse_version} > 1310 - --disable-multi-seat-x \ -%endif %if %{without networkd} --disable-networkd \ +%endif +%if %{without sysvcompat} + --with-sysvinit-path= \ + --with-sysvrcnd-path= \ +%endif +%if %{without resolved} + --disable-resolved \ %endif --disable-kdbus make %{?_smp_mflags} @@ -2215,19 +781,9 @@ make %{?_smp_mflags} update-man-list man %endif %install -# Use refreshed manual pages -for man in man/*.[0-9] -do - section=${man##*.} - test -d man/man${section} || continue - new=man/man${section}/${man##*/} - if test -s $new -a $new -nt $man - then - cp -p $new $man - else - sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man - fi -done +%if !0%{?bootstrap} +cp man/man[0-9]/*.[0-9] man/ +%endif make install DESTDIR="%buildroot" # move to %{_lib} @@ -2240,24 +796,17 @@ ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd + %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -%if 0%{?suse_version} <= 1310 -ln -sf /lib/firmware %{buildroot}/usr/lib/firmware -%endif + %if ! 0%{?bootstrap} -install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif -sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} -sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} -sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule -install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -2275,28 +824,7 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# aliases for /etc/init.d/* -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service -ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service -install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service -ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service -ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service + # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -2369,15 +897,6 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ -%if ! 0%{?bootstrap} -%if %{without python} -for man in systemd.directives.7 systemd.index.7 -do - install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ -done -%endif -%endif - mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed @@ -2394,10 +913,8 @@ done > files.completion > files.completion %endif -%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd -%endif %if %{without compat_libs} lib=%{_libdir}/libsystemd.so @@ -2409,30 +926,6 @@ do done %endif -%if 0%{suse_version} <= 1310 -cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' - [Unit] - Description=Fix against deadlock at shutdown - Wants=remote-fs.target remote-fs-pre.target - Before=remote-fs.target systemd-logind.service - After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target - ConditionPathExists=|/etc/init.d/autofs - ConditionPathExists=|/etc/init.d/nfs - - [Service] - Type=oneshot - RemainAfterExit=true - ExecStart=/bin/true - ExecStop=-/etc/init.d/autofs stop - ExecStop=-/etc/init.d/nfs stop - - [Install] - WantedBy=remote-fs.target - EOF - mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants - ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants -%endif - # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ @@ -2480,6 +973,7 @@ fi getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif +systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -2527,8 +1021,6 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ - systemd-readahead-collect.service \ - systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -2558,7 +1050,6 @@ fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : -%{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : @@ -2657,6 +1148,9 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig +%post -n nss-mymachines -p /sbin/ldconfig +%postun -n nss-mymachines -p /sbin/ldconfig + %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : @@ -2679,17 +1173,26 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl -%{_bindir}/systemd-sleep-grub +%if %{with networkd} +%{_bindir}/networkctl +%endif %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl +%if ! 0%{?bootstrap} %{_bindir}/machinectl +%endif %{_bindir}/systemctl %{_bindir}/systemd-analyze -%{_bindir}/systemd-coredumpctl +%{_bindir}/coredumpctl %{_bindir}/systemd-delta +%{_bindir}/systemd-escape +%{_bindir}/systemd-firstboot +%{_bindir}/systemd-path +%{_bindir}/systemd-sysusers %{_bindir}/systemd-notify +%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -2732,7 +1235,6 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount -%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -2771,12 +1273,19 @@ exit 0 %{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif -%{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-debug-generator +%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator +%if %{with sysvcompat} +%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%endif +%{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator +%{_prefix}/lib/systemd/system-preset/ +%{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user @@ -2805,13 +1314,23 @@ exit 0 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf +%config(noreplace) %{_sysconfdir}/systemd/coredump.conf +%if !0%{?bootstrap} +%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf +%endif +%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf +%endif +%if %{with networkd} +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf +%endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -2828,15 +1347,24 @@ exit 0 %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target +%{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service +%if %{with networkd} +%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%if !0%{?bootstrap} %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions +%if !0%{?bootstrap} +%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy +%endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy @@ -2886,8 +1414,11 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed -%if 0%{?suse_version} > 1310 -%{_datadir}/pkgconfig/systemd.pc +%if %{with resolved} +%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf +%{_sysconfdir}/systemd/resolved.conf +%{_libdir}/libnss_resolve.so.2 +%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service %endif %if ! 0%{?bootstrap} @@ -2912,9 +1443,7 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/systemd.pc -%endif +%{_libdir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -2976,7 +1505,6 @@ exit 0 %{_prefix}/lib/udev/rules.d/*.rules %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* -%{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin @@ -3007,9 +1535,6 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/udev.pc -%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc @@ -3043,8 +1568,9 @@ exit 0 %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ +%if %{with sysvcompat} %{_localstatedir}/log/README -/etc/init.d/systemd-journald +%endif %files -n nss-myhostname %defattr(-, root, root) @@ -3057,6 +1583,10 @@ exit 0 %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd + +%files -n nss-mymachines +%defattr(-,root,root) +%_libdir/libnss_mymachines.so* %endif %changelog diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch index 85027c50..898a6548 100644 --- a/systemd-pam_config.patch +++ b/systemd-pam_config.patch @@ -1,14 +1,16 @@ -diff --git a/src/login/systemd-user b/src/login/systemd-user -index 7b57dbf..c0fc793 100644 ---- a/src/login/systemd-user -+++ b/src/login/systemd-user -@@ -2,7 +2,7 @@ +--- + src/login/systemd-user | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-218/src/login/systemd-user +=================================================================== +--- systemd-218.orig/src/login/systemd-user ++++ systemd-218/src/login/systemd-user +@@ -2,5 +2,5 @@ + # + # Used by systemd --user instances. - # Used by systemd when launching systemd user instances. - --account include system-auth --session include system-auth -+account include common-account -+session include common-session - auth required pam_deny.so - password required pam_deny.so +-account include system-auth +-session include system-auth ++account include common-account ++session include common-session diff --git a/systemd-powerd-initctl-support.patch b/systemd-powerd-initctl-support.patch index bc0e3ca4..675124ba 100644 --- a/systemd-powerd-initctl-support.patch +++ b/systemd-powerd-initctl-support.patch @@ -12,10 +12,8 @@ Signed-off-by: Hannes Reinecke src/initctl/initctl.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) -diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c -index 468df35..d4794a6 100644 ---- a/src/initctl/initctl.c -+++ b/src/initctl/initctl.c +--- systemd-219.orig/src/initctl/initctl.c ++++ systemd-219/src/initctl/initctl.c @@ -32,8 +32,11 @@ #include #include @@ -36,11 +34,12 @@ index 468df35..d4794a6 100644 #define SERVER_FD_MAX 16 #define TIMEOUT_MSEC ((int) (DEFAULT_EXIT_USEC/USEC_PER_MSEC)) -@@ -141,7 +145,53 @@ static void change_runlevel(Server *s, int runlevel) { +@@ -141,7 +145,54 @@ static void change_runlevel(Server *s, i } } +static int send_shutdownd(unsigned delay, char mode, const char *message) { ++#ifdef HAVE_SYSV_COMPAT + usec_t t = now(CLOCK_REALTIME) + delay * USEC_PER_MINUTE; + struct sd_shutdown_command c = { + .usec = t, @@ -81,7 +80,7 @@ index 468df35..d4794a6 100644 + + if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) + return -errno; -+ ++#endif + return 0; +} + @@ -90,7 +89,7 @@ index 468df35..d4794a6 100644 assert(s); assert(req); -@@ -184,9 +234,28 @@ static void request_process(Server *s, const struct init_request *req) { +@@ -184,9 +235,28 @@ static void request_process(Server *s, c return; case INIT_CMD_POWERFAIL: @@ -120,6 +119,3 @@ index 468df35..d4794a6 100644 return; case INIT_CMD_CHANGECONS: --- -1.8.1.4 - diff --git a/systemd-rpmlintrc b/systemd-rpmlintrc index def95a7d..a9e12af8 100644 --- a/systemd-rpmlintrc +++ b/systemd-rpmlintrc @@ -1,3 +1,4 @@ +addFilter("invalid-pkgconfig-file") addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*") addFilter(".*dangling-symlink .* /dev/null.*") addFilter(".*files-duplicate .*/reboot\.8.*") @@ -16,6 +17,7 @@ addFilter(".*libgudev-.*shlib-fixed-dependency.*") addFilter(".*suse-filelist-forbidden-systemd-userdirs.*") addFilter("libudev-mini.*shlib-policy-name-error.*") addFilter("nss-myhostname.*shlib-policy-name-error.*") +addFilter("nss-mymachines.*shlib-policy-name-error.*") addFilter("systemd-logger.*useless-provides sysvinit(syslog).*") addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*") addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*") diff --git a/systemd-sleep-grub b/systemd-sleep-grub deleted file mode 100644 index 5cd8bef3..00000000 --- a/systemd-sleep-grub +++ /dev/null @@ -1,204 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. - -set -x - -prepare-parameters() -{ - eval `grep LOADER_TYPE= /etc/sysconfig/bootloader` - - if [ x"$LOADER_TYPE" = "xgrub2" -o x"$LOADER_TYPE" = "xgrub2-efi" ]; then - GRUBONCE="/usr/sbin/grub2-once" - GRUBDEFAULT="/boot/grub2/grubenv" - GRUB2EDITENV="/usr/bin/grub2-editenv" - GRUB2CONF="/boot/grub2/grub.cfg" - BLKID="/usr/sbin/blkid" - getkernels="getkernels-grub2" - fi -} - -##################################################################### -# gets a list of available kernels from /boot/grub2/grub.cfg -# kernels are in the array $KERNELS, output to stdout to be eval-ed. -getkernels-grub2() -{ - local I DUMMY MNT ROOTDEV - declare -i I=0 J=-1 - - # we need the root partition later to decide if this is the kernel to select - while read ROOTDEV MNT DUMMY; do - [ "$ROOTDEV" = "rootfs" ] && continue # not what we are searching for - if [ "$MNT" = "/" ]; then - break - fi - done < /proc/mounts - - while read LINE; do - case $LINE in - menuentry\ *) - let J++ - ;; - set\ default*) - local DEFAULT=${LINE#*default=} - - if echo $DEFAULT | grep -q saved_entry ; then - local SAVED=`$GRUB2EDITENV $GRUBDEFAULT list | sed -n s/^saved_entry=//p` - if [ -n "$SAVED" ]; then - DEFAULT_BOOT=$($GRUBONCE --show-mapped "$SAVED") - fi - fi - - ;; - linux*noresume*|module*xen*noresume*) - echo " Skipping grub entry #${J}, because it has the noresume option" >&2 - ;; - linux*root=*|module*xen*root=*) - local ROOT - ROOT=${LINE#*root=} - DUMMY=($ROOT) - ROOT=${DUMMY[0]} - - if [ x"${ROOT:0:5}" = "xUUID=" ]; then - UUID=${ROOT#UUID=} - if [ -n "$UUID" ]; then - ROOT=$($BLKID -U $UUID) - fi - fi - - if [ "$(stat -Lc '%t:%T' $ROOT)" != "$(stat -Lc '%t:%T' $ROOTDEV)" ]; then - echo " Skipping grub entry #${J}, because its root= parameter ($ROOT)" >&2 - echo " does not match the current root device ($ROOTDEV)." >&2 - continue - fi - DUMMY=($LINE) # kernel (hd0,1)/boot/vmlinuz-ABC root=/dev/hda2 - echo "KERNELS[$I]='${DUMMY[1]##*/}'" # vmlinuz-ABC - echo "MENU_ENTRIES[$I]=$J" - # DEBUG "Found kernel entry #${I}: '${DUMMY[1]##*/}'" INFO - let I++ - ;; - linux*|module*xen*) - # a kernel without "root="? We better skip that one... - echo " Skipping grub entry #${J}, because it has no root= option" >&2 - ;; - *) ;; - esac - done < "$GRUB2CONF" -} - -############################################################# -# runs grubonce from the grub package to select which kernel -# to boot on next startup -grub-once() -{ - if [ -x "$GRUBONCE" ]; then - echo " running '$GRUBONCE $1'" - $GRUBONCE $1 - else - echo "WARNING: $GRUBONCE not found, not preparing bootloader" - fi -} - -############################################################# -# restore grub default after (eventually failed) resume -grub-once-restore() -{ - echo "INFO: running grub-once-restore" - prepare-parameters - $GRUB2EDITENV $GRUBDEFAULT unset next_entry -} - -############################################################################# -# try to find a kernel image that matches the actually running kernel. -# We need this, if more than one kernel is installed. This works reasonably -# well with grub, if all kernels are named "vmlinuz-`uname -r`" and are -# located in /boot. If they are not, good luck ;-) -find-kernel-entry() -{ - NEXT_BOOT=-1 - ARCH=`uname -m` - declare -i I=0 - # DEBUG "running kernel: $RUNNING" DIAG - while [ -n "${KERNELS[$I]}" ]; do - BOOTING="${KERNELS[$I]}" - if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then - # DEBUG "Found kernel symlink $BOOTING => $IMAGE" INFO - BOOTING=$IMAGE - fi - case $ARCH in - ppc*) BOOTING="${BOOTING#*vmlinux-}" ;; - *) BOOTING="${BOOTING#*vmlinuz-}" ;; - esac - if [ "$RUNNING" == "$BOOTING" ]; then - NEXT_BOOT=${MENU_ENTRIES[$I]} - echo " running kernel is grub menu entry $NEXT_BOOT (${KERNELS[$I]})" - break - fi - let I++ - done - # if we have not found a kernel, issue a warning. - # if we have found a kernel, we'll do "grub-once" later, after - # prepare_suspend finished. - if [ $NEXT_BOOT -eq -1 ]; then - echo "WARNING: no kernelfile matching the running kernel found" - fi -} - -############################################################################# -# if we did not find a kernel (or BOOT_LOADER is not GRUB) check, -# if the running kernel is still the one that will (probably) be booted for -# resume (default entry in menu.lst or, if there is none, the kernel file -# /boot/vmlinuz points to.) -# This will only work, if you use "original" SUSE kernels. -# you can always override with the config variable set to "yes" -prepare-grub() -{ - echo "INFO: running prepare-grub" - prepare-parameters - eval `$getkernels` - RUNNING=`uname -r` - find-kernel-entry - - RET=0 - - if [ $NEXT_BOOT -eq -1 ]; then - # which kernel is booted with the default entry? - BOOTING="${KERNELS[$DEFAULT_BOOT]}" - # if there is no default entry (no menu.lst?) we fall back to - # the default of /boot/vmlinuz. - [ -z "$BOOTING" ] && BOOTING="vmlinuz" - if IMAGE=`readlink /boot/$BOOTING` && [ -e "/boot/${IMAGE##*/}" ]; then - BOOTING=$IMAGE - fi - BOOTING="${BOOTING#*vmlinuz-}" - echo "running kernel: '$RUNNING', probably booting kernel: '$BOOTING'" - if [ "$BOOTING" != "$RUNNING" ]; then - echo "ERROR: kernel version mismatch, cannot suspend to disk" - echo "running: $RUNNING booting: $BOOTING" >> $INHIBIT - RET=1 - fi - else - # set the bootloader to the running kernel - echo " preparing boot-loader: selecting entry $NEXT_BOOT, kernel /boot/$BOOTING" - T1=`date +"%s%N"` - sync; sync; sync # this is needed to speed up grub-once on reiserfs - T2=`date +"%s%N"` - echo " grub-once: `grub-once $NEXT_BOOT`" - T3=`date +"%s%N"` - S=$(((T2-T1)/100000000)); S="$((S/10)).${S:0-1}" - G=$(((T3-T2)/100000000)); G="$((G/10)).${G:0-1}" - echo " time needed for sync: $S seconds, time needed for grub: $G seconds." - fi - - return $RET -} - - -###### main() - -if [ "$1" = pre ] ; then - prepare-grub -fi -if [ "$1" = post ] ; then - grub-once-restore -fi diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 61d05349..dd7c0d80 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -5,20 +5,22 @@ Subject: systemd tmp safe defaults Fix regression in the default for tmp auto-deletion (FATE#314974). SUSE policy is to not clean /tmp by default. --- - tmpfiles.d/tmp.conf | 5 +++-- + tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---- systemd-206.orig/tmpfiles.d/tmp.conf -+++ systemd-206/tmpfiles.d/tmp.conf +Index: systemd/tmpfiles.d/tmp.conf +=================================================================== +--- systemd.orig/tmpfiles.d/tmp.conf ++++ systemd/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override --d /tmp 1777 root root 10d --d /var/tmp 1777 root root 30d +-v /tmp 1777 root root 10d +-v /var/tmp 1777 root root 30d +# SUSE policy: we don't clean those directories -+d /tmp 1777 root root - -+d /var/tmp 1777 root root - ++v /tmp 1777 root root - ++v /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index 78b33870..7a555d36 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,9 +1,575 @@ +------------------------------------------------------------------- +Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de + +- Add 0001-core-rework-device-state-logic.patch to fix spurious + automated umount after mount. + +------------------------------------------------------------------- +Wed Feb 18 12:13:52 UTC 2015 - meissner@suse.com + +- mark more subpackages as !bootstrap for systemd-mini usage. + +------------------------------------------------------------------- +Wed Feb 18 05:01:38 UTC 2015 - crrodriguez@opensuse.org + +- spec : remove --with-firmware-path, firmware loader was removed in v217 +- spec: remove --disable-multi-seat-x, gone.(fixed in xorg) +- spec: Do not enable systemd-readahead-collect.service and +systemd-readahead-replay.service as these do not exist anymore. +- spec: drop timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch + Yast was fixed to write all timezone changes exactly how timedated expects + things to be done. +- spec: remove handle-etc-HOSTNAME.patch, since late 2014 the netcfg + package handles the migration from /etc/HOSTNAME to /etc/hostname + and owns both files. +-spec: remove boot.udev and systemd-journald.init as they currently + serve no purpose. +- suse-sysv-bootd-support.diff: Remove HAVE_SYSVINIT conditions, we + are in sysvcompat-only codepath, also remove the code targetting other + distributions, never compiled as the TARGET_$DISTRO macros are never defined. +- systemd-powerd-initctl-support.patch guard with HAVE_SYSV_COMPAT +- set-and-use-default-logconsole.patch: fix HAVE_SYSV_COMPAT guards +- insserv-generator.patch: Only build when sysvcompat is enabled +- vhangup-on-all-consoles.patch add a comment indicating this is a workaround + for a kernel bug. +- spec: Add option to allow disabling sysvinit compat at build time. +- spec: Add option to enable resolved at build time. +- spec: Remove all %ifs for !factory products, current systemd releases can + neither be built nor installed in older products without upgrading + several components of the base system. + (removed: 1008-add-msft-compability-rules.patch was only for =< 13.1) +- spec: remove all dummy "aliases" to /etc/init.d, that made sense only when + those init scripts still existed. (dummy localfs.service source: gone) +- systemd-sleep-grub: moved to the grub2 package where it belongs as a + suspend/resume hook (SR#286533) (drops prepare-suspend-to-disk.patch) +- remove LFS_CFLAGS from CFLAGS, never needed in systemd as it force feds + config.h everywhere in the preprocessor cmdline. + +------------------------------------------------------------------- +Mon Feb 16 23:46:11 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 219 +* systemd units can now be "unsupported" (like, for example, + .device in a containers), similar to the "skipped" state in + SUSE's prior sysvinit scripts. +* tmpfiles gained the 'v' type for creating btrfs subvolumes. +* tmpfiles gained the 'a' type for setting ACLs. +* systemd-nspawn gained new switches: --ephemeral, --template +* The /var/lib/containers location is deprecated and replaced by + /var/lib/machines. +* machinectl gained the copy-from and copy-to commands. +* machinectl now knows a "bind" command (for use with nspawn) +* new "systemd-importd" daemon to download container images and run + them as nspawn containers. +* networkd collects LLDP network announcements, if available, and + so shown in networkctl. +* The fallback terminal type was changed from "vt102" to "vt220", + allowing PgUp/PgDn keys to work. +* Pressing Ctrl-Alt-Del 7x in 2 seconds forces a umount+reboot now, + useful should the regular shutdown hang. +* Removing storage will cause systemd to unmount the associated + mountpoints so that they don't linger around. + +------------------------------------------------------------------- +Mon Feb 16 11:47:04 UTC 2015 - jengelh@inai.de + +- Add suse-sysv-bootd-support.diff (reinstate old + Revert-service-drop-support-for-SysV-scripts-for-the-early.patch) + +------------------------------------------------------------------- +Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de + +- Update to systemd v218-1050-g38ab096 +- Remove patches + use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it) +- Reinstate and improve (remove huge indents from) + tty-ask-password-agent-on-console.patch, + 0014-journald-with-journaling-FS.patch, rootsymlink_generator. + +------------------------------------------------------------------- +Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com + +- disable systemd-resolved for now as it interacts not well with + our methods and security has concerns regarding spoofing. bsc#917781 + ------------------------------------------------------------------- Tue Jan 20 11:33:59 UTC 2015 - werner@suse.de - Add patch kbd-model-map.patch to add missed keyboard layouts which are offered by YaST2 (bsc#910643 and boo#897803) +------------------------------------------------------------------- +Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 218 +* New utilities: systemd-timesyncd (SNTP client), + systemd-resolved, systemd-networkd, networkctl, + systemd-sysusers +* machinectl gained a "poweroff" command for clean container shutdown +* The udev hwdb now contains DPI information for mice. +* Userspace firmware loading support has been removed and + the minimum supported kernel version is thus bumped to 3.7. +- Remove patches: + G=gone locally, is upstream; + D=dropped: no longer needed; + N=no longer applies to source nor is it deemed needed; + K=killed: no longer applicable and too complex to resolve: + ---- + G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch + K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch + K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch + K handle-SYSTEMCTL_OPTIONS-environment-variable.patch + K 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch + K log-target-null-instead-kmsg.patch + K tty-ask-password-agent-on-console.patch + K 513-nspawn-veth.patch + K 1087-infinit-timeout-for-kmod-loaded-modules.patch + D module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch + D avoid-leaking-socket-descriptors.patch + D 0001-make-fortify-happy-with-ppoll.patch + N fix-owner-of-var-log-btmp.patch + N disable-nss-myhostname-warning-bnc-783841.patch + N Revert-service-drop-support-for-SysV-scripts-for-the-early.patch + N 0001-make-209-working-on-older-dist.patch + N 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch + N tmpfiles-do-not-clean-for-mandb-index-files.patch + G 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch + G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patc + G optionally-warn-if-nss-myhostname-is-called.patch + G 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch + G 0004-getty-generator-properly-escape-instance-names.patch + G rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch + G 0008-Reset-signal-mask-on-re-exec-to-init.patch + G 0001-login-fix-pos-array-allocation.patch + G 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch + G 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + G 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + G 0005-Replace-var-run-with-run-in-remaining-places.patch + G 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch + G 0007-README-document-that-var-run-must-be-a-symlink-run.patch + G 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + G 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + G 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + G 0011-logs-show-fix-corrupt-output-with-empty-messages.patch + G 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch + G 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + G 0001-Fix-systemd-stdio-bridge-symlink.patch + G 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + G 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + G 0004-man-document-missing-options-of-systemd-run.patch + G 0005-systemd-run-add-some-extra-safety-checks.patch + G 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + G 0007-journal-forget-file-after-encountering-an-error.patch + G 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + G 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + G 0010-man-update-link-to-LSB.patch + G 0011-man-systemd-bootchart-fix-spacing-in-command.patch + G 0012-man-add-missing-comma.patch + G 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + G 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch + G 0002-manager-flush-memory-stream-before-using-the-buffer.patch + G 0003-busname-don-t-drop-service-from-the-result-string.patch + G 0004-fix-off-by-one-error-in-array-index-assertion.patch + G 0005-logind-fix-policykit-checks.patch + G 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch + G 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch + G 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch + G 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch + G 0006-Do-not-return-1-EINVAL-on-allocation-error.patch + G 0007-networkd-fix-typo.patch + G 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch + G 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch + G 0012-journald-remove-stray-reset-of-error-return-value.patch + G 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch + G 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch + G 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch + G 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch + G 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch + G 0005-sd-daemon-fix-incorrect-variable-access.patch + G 0006-sd-event-initialization-perturbation-value-right-bef.patch + G 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch + G 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch + G 0009-ask-password-when-the-user-types-a-overly-long-passw.patch + G 0001-journal-fix-export-of-messages-containing-newlines.patch + G 0002-systemctl-update-NAME-to-PATTERN-in-help.patch + G 0003-tty-ask-password-agent-return-negative-errno.patch + G 0004-systemd-python-use-.hex-instead-of-.get_hex.patch + G 0005-systemd-python-fix-failing-assert.patch + G 0007-dbus-suppress-duplicate-and-misleading-messages.patch + G 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch + G 0001-bash-completion-fix-__get_startable_units.patch + G 0002-sysctl-replaces-some-slashes-with-dots.patch + G 0003-delta-do-not-use-unicode-chars-in-C-locale.patch + G 0004-implement-a-union-to-pad-out-file_handle.patch + G shut-up-annoying-assertion-monotonic-clock-message.patch + G 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch + G 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + G 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch + G 0003-analyze-fix-plot-with-bad-y-size.patch + G 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch + G 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch + G 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch + G 0002-backlight-do-nothing-if-max_brightness-is-0.patch + G 0003-backlight-unify-error-messages.patch + G 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch + G 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch + G 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch + G 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch + G 0001-core-close-socket-fds-asynchronously.patch + G 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch + G 0003-core-make-sure-to-serialize-jobs-for-all-units.patch + G 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch + G 0002-logind-fix-printf-format.patch + G 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch + G 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch + G 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch + G 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch + G 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch + G 0008-man-update-journald-rate-limit-defaults.patch + G 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch + G 0010-logind-allow-suspending-if-there-are-no-displays.patch + G 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-conf-parser-silently-ignore-sections-starting-with-X.patch + G 0002-man-note-that-entire-sections-can-now-be-ignored.patch + G 0004-machined-make-sure-GetMachineAddresses-is-available-.patch + G 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch + G 0006-login-add-mir-to-the-list-of-session-types.patch + G 0007-logind-fix-Display-property-of-user-objects.patch + G 0001-hwdb-update.patch + G 0002-hwdb-update.patch + G 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch + G 0004-hwdb-update.patch + G 0005-hwdb-update.patch + G 0001-journal-cleanup-up-error-handling-in-update_catalog.patch + G 0002-journal-properly-detect-language-specified-in-line.patch + G 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch + G 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch + G 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch + G 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch + G 0002-nspawn-restore-journal-directory-is-empty-check.patch + G 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch + G 0004-socket-properly-handle-if-our-service-vanished-durin.patch + G 0001-Do-not-unescape-unit-names-in-Install-section.patch + G 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch + G 0001-virt-rework-container-detection-logic.patch + G 0002-fsck-include-device-name-in-the-message-about-missin.patch + G 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch + G 0004-util-ignore_file-should-not-allow-files-ending-with.patch + G 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch + G 0007-keyboard-add-Plantronics-.Audio-mute-button.patch + G 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch + G 0001-hwdb-fix-case-sensitive-match.patch + G 0001-sd-event-restore-correct-timeout-behaviour.patch + G 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch + G 0001-umount-modernizations.patch + G 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch + G 0003-core-allow-transient-mount-units.patch + G 0004-systemd-detect-virt-only-discover-Xen-domU.patch + G 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch + G 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch + G 0001-core-fix-invalid-free-in-killall.patch + G 0003-install-fix-invalid-free-in-unit_file_mask.patch + G 0001-systemd-detect-virt-detect-s390-virtualization.patch + G 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch + G 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch + G 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch + G 0005-po-add-Greek-translation.patch + G 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0007-po-add-German-translation.patch + G 0009-core-clean-up-signal-reset-logic-when-reexec.patch + G 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch + G 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch + G 0012-core-transaction-avoid-misleading-error-message-when.patch + G 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch + G 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch + G 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch + G 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch + G 0005-man-fix-path-in-crypttab-5.patch + G 0001-units-order-network-online.target-after-network.targ.patch + G 0001-core-use-correct-format-string-for-UIDs.patch + G 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch + G 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch + G 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch + G 0002-journald-make-MaxFileSec-really-default-to-1month.patch + G 0003-units-remove-RefuseManualStart-from-units-which-are-.patch + G 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch + G 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch + G 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch + G 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch + G 0001-parse_uid-return-ENXIO-for-1-uids.patch + G 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch + G 0003-localed-consider-an-unset-model-as-a-wildcard.patch + G 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch + G 0005-bus-close-a-bus-that-failed-to-connect.patch + G 0006-hwdb-update.patch + G 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-architecture-Add-tilegx.patch + G 0002-architecture-Add-cris.patch + G 0003-arch-add-crisv32-to-uname-check.patch + G 0004-architecture-remove-cris-from-uname-list.patch + G 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch + G 0002-namespace-fix-uninitialized-memory-access.patch + G 0001-machine-don-t-return-uninitialized-variable.patch + G 0002-vconsole-setup-run-setfont-before-loadkeys.patch + G 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch + G 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch + G 0003-architecture-add-string-table-entries-for-mips-le-ar.patch + G 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch + G 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch + G 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch + G 0007-service-flush-status-text-and-errno-values-each-time.patch + G 0001-journal-compress-return-early-in-uncompress_startswi.patch + G 0002-journal-compress-improve-xz-compression-performance.patch + G 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch + G 0002-hostnamed-add-a-new-chassis-type-for-watches.patch + G 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch + G 0001-event-pull-in-sd-event.h-from-event-util.h.patch + G 0002-util-fix-has-cc-check-and-add-test.patch + G 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch + G 0004-fileio-quote-more-shell-characters-in-envfiles.patch + G 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch + G 0002-units-serial-getty-.service-use-the-default-RestartS.patch + G 0001-po-add-Ukrainian-translation.patch + G 0002-man-document-yearly-and-annually-in-systemd.time-7.patch + G 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch + G 0001-detect-virt-Fix-Xen-domU-discovery.patch + G 0002-Be-more-verbose-when-bind-or-listen-fails.patch + G 0003-Add-quotes-to-warning-message.patch + G 0004-systemd-return-the-first-error-from-manager_startup.patch + G 0001-bash-completion-p-option-for-journalctl.patch + G 0002-journalctl-man-allow-only-between-terms.patch + G 0003-systemd-use-pager-for-test-and-help.patch + G 0001-bus-proxyd-fix-incorrect-comparison.patch + G 0002-shell-completion-prevent-mangling-unit-names.patch + G 0003-Always-check-asprintf-return-code.patch + G 0004-bash-completion-use-list-unit-files-to-get-all-units.patch + G 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch + G 0006-parse_boolean-require-exact-matches.patch + G 0007-drop_duplicates-copy-full-BindMount-struct.patch + G 0008-shell-completion-prevent-mangling-unit-names-bash.patch + G 0009-journald-always-add-syslog-facility-for-messages-com.patch + G 0001-sysv-order-initscripts-which-provide-network-before-.patch + G 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch + G 0003-keymap-Annotate-all-micmute-workarounds.patch + G 0007-hwdb-update.patch + G 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch + G 0002-switch-root-umount-the-old-root-correctly.patch + G 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch + G 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch + G 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch + G 0006-login-share-VT-signal-handler-between-sessions.patch + G 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch + G 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch + G 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch + G 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch + G 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch + G 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch + G 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch + G 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch + G 0003-keymap-Fix-HP-Pavillon-DV7.patch + G 0004-hwdb-update-format-description-and-document-reloadin.patch + G 0008-hwdb-update.patch + G 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch + G 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch + G 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch + G 0001-login-fix-memory-leak-on-DropController.patch + G 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch + G 0003-sd-journal-properly-convert-object-size-on-big-endia.patch + G 0004-sd-journal-verify-that-object-start-with-the-field-n.patch + G 0001-nspawn-fix-network-interface.patch + G 0001-completion-filter-templates-from-restartable-units.patch + G 0002-systemd-fix-error-message.patch + G 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch + G 0004-config-parser-fix-mem-leak.patch + G 0005-login-fix-mem-leak.patch + G 0001-login-simplify-controller-handling.patch + G 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch + G 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0009-hwdb-update.patch + G 0001-systemctl-allow-to-change-the-default-target-without.patch + G 0001-activate-fix-fd-leak-in-do_accept.patch + G 0002-analyze-avoid-a-null-dereference.patch + G 0003-analyze-fix-mem-leak.patch + G 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch + G 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch + G 0006-bus-unref-buscreds-on-failure.patch + G 0007-core-fix-a-potential-mem-leak.patch + G 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch + G 0009-journal-do-not-leak-mmaps-on-OOM.patch + G 0010-manager-use-correct-cleanup-function.patch + G 0001-core-fix-resource-leak-in-manager_environment_add.patch + G 0002-util-remove-a-unnecessary-check.patch + G 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch + G 0004-shared-conf-parser.patch + G 0005-logind-fix-typo.patch + G 0006-systemctl-fix-resource-leak-CID-1237747.patch + G 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch + G 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch + G 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch + G 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch + G 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch + G 0003-mount-order-options-before-other-arguments-to-mount.patch + G 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch + G 0005-shared-label.h-add-missing-stdio.h-include.patch + G 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch + G 0001-login-pause-devices-before-acknowledging-VT-switches.patch + G 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch + G 0001-socket-introduce-SELinuxContextFromNet-option.patch + G 0002-util-avoid-non-portable-__WORDSIZE.patch + G 0001-Fix-warning-about-unused-variable-with-SELINUX.patch + G 0002-bus-remove-unused-check.patch + G 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch + G 0001-logind-add-support-for-Triton2-Power-Button.patch + G 0002-logind-add-support-for-TPS65217-Power-Button.patch + G 0001-shutdownd-clean-up-initialization-of-struct.patch + G 0003-bootchart-parse-userinput-with-safe_atoi.patch + G 0004-bootchart-check-return-of-strftime.patch + G 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch + G 0001-journalctl-do-not-output-reboot-markers-when-running.patch + G 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch + G 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch + G 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch + G 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch + G 0003-fileio-label-return-error-when-writing-fails.patch + G 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch + G 0004-sd-event-check-the-value-of-received-signal.patch + G 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch + G 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch + G 0001-units-introduce-network-pre.target-as-place-to-hook-.patch + G 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch + G 0003-sd-bus-check-return-value-of-vasprintf.patch + G 0004-core-map-the-rescue-argument-to-rescue.target.patch + G 0005-util-avoid-double-close-of-fd.patch + G 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch + G 0001-tmpfiles-compare-return-against-correct-errno.patch + G 0001-shell-completion-fix-completion-of-inactive-units.patch + G 0002-shell-completion-propose-templates-for-disable-re-en.patch + G 0003-man-we-don-t-have-Wanted-dependency.patch + G 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch + G 0001-systemd-continue-switch-root-even-if-umount-fails.patch + G 0002-systemd-try-harder-to-bind-to-notify-socket.patch + G 0001-strv-add-an-additional-overflow-check-when-enlarging.patch + G 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch + G 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch + G 0004-journal-do-server_vacuum-for-sigusr1.patch + G 0005-cryptsetup-fix-an-OOM-check.patch + G 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch + G 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch + G 0002-time-also-support-infinity-syntax-in-parse_nsec.patch + G 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch + G 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch + G 0005-journalctl-correct-help-text-for-until.patch + G 0006-calendarspec-fix-typo-in-annually.patch + G 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch + G 0008-util-introduce-sethostname_idempotent.patch + G 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch + G 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch + G 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch + G 0012-manager-do-not-print-anything-while-passwords-are-be.patch + G 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch + G 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch + G 0001-core-don-t-allow-enabling-if-unit-is-masked.patch + G 0002-snapshot-return-error-when-snapshot-exists.patch + G 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch + G 0004-Raise-level-of-Found-dependency.-lines.patch + G 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch + G 0006-journald-fix-minor-memory-leak.patch + G 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch + G 0008-journald-fix-memory-leak-on-error-path.patch + G 0009-units-make-systemd-journald.service-Type-notify.patch + G 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch + G 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch + G 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch + G 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch + G 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch + G 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch + G 0001-systemctl-let-list-units-unit-files-honour-type.patch + G 0002-systemctl-obey-state-in-list-unit-files.patch + G 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch + G 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch + G 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch + G 0001-selinux-access-fix-broken-ternary-operator.patch + G 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch + G 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch + G 0004-core-fix-transaction-destructiveness-check-once-more.patch + G 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch + G 0002-man-tmpfiles.d-recommend-using-b-and-c.patch + G 1009-cdrom_id-use-the-old-MMC-fallback.patch + G 1010-udev-increase-result-size-for-programs.patch + G 1014-udev-update-net_id-comments.patch + G 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch + G 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch + G 1017-udev-serialize-synchronize-block-device-event-handli.patch + G 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch + G 1019-udev-avoid-use-of-uninitialized-err.patch + G 1020-udev-keyboard-also-hook-into-change-events.patch + G 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch + G 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch + G 1024-udev-always-close-lock-file-descriptor.patch + G 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch + G 1026-udevd-inotify-modernizations.patch + G 1027-udev-synthesize-change-events-for-partitions-when-to.patch + G 1028-udev-link-config-fix-mem-leak.patch + G 1029-udev-try-first-re-reading-the-partition-table.patch + G 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch + G 1031-udev-make-sure-we-always-get-change-for-the-disk.patch + G 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch + G 1033-udev-really-exclude-device-mapper-from-block-device.patch + G 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch + G 1038-udev-fix-invalid-free-in-enable_name_policy.patch + G 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch + G 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch + G 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch + G 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch + G 1044-rules-update-qemu-hid-rules.patch + G 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch + G 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch + G 1048-udev-net_setup_link-add-a-bit-more-logging.patch + G 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch + G 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch + G 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch + G 1056-udevd-add-event-timeout-commandline-option.patch + G 1057-udev-unify-event-timeout-handling.patch + G 1058-udev-unify-event-timeout-handling.patch + G 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch + G 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch + G 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch + G 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch + G 1065-udev-bump-event-timeout-to-60-seconds.patch + G 1067-udev-always-resolve-correctly-database-names-on-chan.patch + G 1068-udev-net_setup_link-export-the-.link-filename-applie.patch + G 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch + G 1070-rules-net-setup-link-remove-stray-linebreak.patch + G 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch + G 1072-udev-netif_rename-don-t-log-to-kmsg.patch + G 1073-udev-drop-print_kmsg.patch + G 1074-udev-fix-copy-paste-error-in-log-message.patch + G 1075-udev-timeout-increase-timeout.patch + G 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch + G 1078-udev-remove-userspace-firmware-loading-support.patch + G 1079-udev-remove-userspace-firmware-loading-support.patch + G 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch + G 1081-udevd-check-return-of-various-functions.patch + G 1082-udevadm-hwdb-check-return-value-of-fseeko.patch + G 1083-udev-node-warn-if-chmod-chown-fails.patch + G 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch + G 1085-udev-fix-typos.patch + G 1086-udevd-don-t-fail-if-run-udev-exists.patch + G 1089-fix-cgroup-device-controller.patch + G 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch + G 1091-udev-path_id-update-comments.patch + G 1092-libudev-do-not-accept-invalid-log-levels.patch + G 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch + G 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch + G 1098-udev-link_setup-respect-kernel-name-assign-policy.patch + ------------------------------------------------------------------- Wed Jan 7 11:44:27 UTC 2015 - arvidjaar@gmail.com diff --git a/systemd.spec b/systemd.spec index 307e3cab..7b5b6805 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,8 +21,9 @@ %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion -%bcond_without compat_libs %bcond_with networkd +%bcond_without sysvcompat +%bcond_with resolved %bcond_with python %bcond_with parentpathid %ifarch %{ix86} x86_64 aarch64 @@ -43,7 +44,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 210 +Version: 219 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -51,112 +52,69 @@ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: acl BuildRequires: audit-devel -%if %{with compat_libs} -# See gold_archs in binutils.spec -%ifarch %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc -BuildRequires: binutils-gold -%endif -%endif -BuildRequires: config(suse-module-tools) -%if ! 0%{?bootstrap} -BuildRequires: docbook-xsl-stylesheets -%endif +BuildRequires: autoconf +BuildRequires: automake BuildRequires: fdupes -%if ! 0%{?bootstrap} -BuildRequires: gobject-introspection-devel -%endif BuildRequires: gperf -%if ! 0%{?bootstrap} BuildRequires: gtk-doc -%endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libcap-devel -BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool -%if ! 0%{?bootstrap} -BuildRequires: libusb-devel -BuildRequires: libxslt-tools -%endif BuildRequires: pam-devel -%if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros -%endif -%if 0%{?suse_version} <= 1315 -BuildRequires: tcpd-devel -%endif BuildRequires: xz -BuildRequires: pkgconfig(blkid) >= 2.20 -%if ! 0%{?bootstrap} -BuildRequires: libgcrypt-devel -%if %{with python} -BuildRequires: python -%endif -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 -BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 -%endif -%if 0%{?suse_version} <= 1310 -BuildRequires: pkgconfig(libkmod) >= 14 -%else +BuildRequires: config(suse-module-tools) +BuildRequires: pkgconfig(blkid) >= 2.24 BuildRequires: pkgconfig(libkmod) >= 15 -%endif BuildRequires: pkgconfig(liblzma) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libmicrohttpd) -%endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) -%if ! 0%{?bootstrap} -BuildRequires: pkgconfig(libqrencode) -BuildRequires: pkgconfig(usbutils) >= 0.82 -%endif -%if 0%{?suse_version} >= 1315 +BuildRequires: pkgconfig(mount) >= 2.20 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif -%else -%if 0%{?suse_version} >= 1310 -%ifarch %ix86 x86_64 x32 %arm -BuildRequires: pkgconfig(libseccomp) -%endif -%endif -%endif -%if ! 0%{?bootstrap} -BuildRequires: libapparmor-devel -%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) -%if 0%{?suse_version} > 1310 Conflicts: sysvinit -%endif %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else +BuildRequires: docbook-xsl-stylesheets +BuildRequires: gobject-introspection-devel +BuildRequires: gtk-doc +BuildRequires: libgcrypt-devel +BuildRequires: libusb-devel +BuildRequires: libxslt-tools +%if %{with python} +BuildRequires: python +%endif +BuildRequires: libapparmor-devel +BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 +BuildRequires: pkgconfig(libmicrohttpd) +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd -%if 0%{?suse_version} <= 1310 -Requires: kmod >= 14 -%else Requires: kmod >= 15 -%endif Requires: netcfg Requires: pam-config >= 0.79-5 +BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.21 +Requires: util-linux >= 2.25 Requires(post): coreutils Requires(post): findutils -%endif -%if ! 0%{?bootstrap} Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent @@ -168,47 +126,31 @@ Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} -Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz + +#Git-Clone: git://anongit.freedesktop.org/systemd/systemd +Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif -Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 -Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source1060: boot.udev Source1063: udev-generate-persistent-rule.sh -Source1064: systemd-sleep-grub Source1065: systemd-remount-tmpfs -# -# PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r -Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch -# PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called -Patch1: optionally-warn-if-nss-myhostname-is-called.patch # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch -Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch -Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch -Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch13: 0001-units-systemd-sysctl.service.in-run-after-load-modul.patch -Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch -Patch18: fix-owner-of-var-log-btmp.patch -# PATCH-FIX-UPSTREAM Avoid error message about not existing getty@3270 file -Patch19: 0004-getty-generator-properly-escape-instance-names.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -216,14 +158,11 @@ Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch -# PATCH-FIX-OPENSUSE handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable -Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch -# PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts -Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file @@ -236,18 +175,10 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) -Patch23: disable-nss-myhostname-warning-bnc-783841.patch -# PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) -Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch -# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin -Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE Make systemd talk with dbus-daemon even on big endian -Patch47: 0001-sd-bus-don-t-look-for-a-64bit-value-when-we-only-hav.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -256,126 +187,8 @@ Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) -Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch114: 0008-Reset-signal-mask-on-re-exec-to-init.patch -# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com -Patch117: 0001-make-209-working-on-older-dist.patch -# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com -Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch121: 0001-login-fix-pos-array-allocation.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch137: 0004-man-document-missing-options-of-systemd-run.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch140: 0007-journal-forget-file-after-encountering-an-error.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch143: 0010-man-update-link-to-LSB.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch145: 0012-man-add-missing-comma.patch -# PATCH-FIX-USTREAM added at 2014/03/07 -Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch147: 0001-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch148: 0002-manager-flush-memory-stream-before-using-the-buffer.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch149: 0003-busname-don-t-drop-service-from-the-result-string.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch150: 0004-fix-off-by-one-error-in-array-index-assertion.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch151: 0005-logind-fix-policykit-checks.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch152: 0006-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch153: 0008-man-multiple-sleep-modes-are-to-be-separated-by-whit.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch154: 0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch155: 0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch157: 0006-Do-not-return-1-EINVAL-on-allocation-error.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch158: 0007-networkd-fix-typo.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch159: 0008-sd-bus-don-t-access-invalid-memory-if-a-signal-match.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch160: 0009-sd-bus-don-t-choke-if-somebody-sends-us-a-message-wi.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch161: 0012-journald-remove-stray-reset-of-error-return-value.patch -# PATCH-FIX-USTREAM added at 2014/03/18 -Patch162: 0013-core-libsystemd-systemd-timedate-udev-spelling-fixes.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch163: 0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch164: 0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch165: 0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch166: 0004-core-don-t-try-to-relabel-mounts-before-we-loaded-th.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch167: 0005-sd-daemon-fix-incorrect-variable-access.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch168: 0006-sd-event-initialization-perturbation-value-right-bef.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch169: 0007-sd-event-don-t-accidentally-turn-of-watchdog-timer-e.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch170: 0008-systemctl-kill-mode-is-long-long-gone-don-t-mention-.patch -# PATCH-FIX-USTREAM added at 2014/03/28 -Patch171: 0009-ask-password-when-the-user-types-a-overly-long-passw.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch172: 0001-journal-fix-export-of-messages-containing-newlines.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch173: 0002-systemctl-update-NAME-to-PATTERN-in-help.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch174: 0003-tty-ask-password-agent-return-negative-errno.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch175: 0004-systemd-python-use-.hex-instead-of-.get_hex.patch -# PATCH-FIX-USTREAM added at 2014/04/08 -Patch176: 0005-systemd-python-fix-failing-assert.patch # PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -384,8 +197,6 @@ Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch -# PATCH-FIX-SUSE 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch -Patch181: 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com @@ -394,8 +205,6 @@ Patch183: 0001-add-network-device-after-NFS-mount-units.patch Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch -# PATCH-FIX-SUSE prepare-suspend-to-disk.patch (fate #316824) -Patch187: prepare-suspend-to-disk.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager @@ -408,657 +217,38 @@ Patch191: systemd-dbus-system-bus-address.patch Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch -# PATCH-FIX-USTREAM added at 2014/03/11 -Patch194: 0007-dbus-suppress-duplicate-and-misleading-messages.patch -# PATCH-FIX-USTREAM added at 2014/03/14 -Patch195: 0001-reduce-the-amount-of-messages-logged-to-dev-kmsg-whe.patch -# PATCH-FIX-SUSE Do not clean the data base files of the manual pages -Patch196: tmpfiles-do-not-clean-for-mandb-index-files.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch199: 0001-bash-completion-fix-__get_startable_units.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch -# PATCH-FIX-USTREAM added at 2014/04/28 -Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch -# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed. -Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch -# PATCH-FIX-UPSTREAM Fix uninitialized memory -Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch -# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) -Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch213: 0005-job-always-add-waiting-jobs-to-run-queue-during-cold.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch214: 0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch215: 0002-backlight-do-nothing-if-max_brightness-is-0.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch216: 0003-backlight-unify-error-messages.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch217: 0004-backlight-warn-if-kernel-exposes-backlight-device-wi.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch218: 0005-backlight-handle-saved-brightness-exceeding-max-brig.patch -# PATCH-FIX-SUSE Do not poison kmsg ring buffer with systemd/udev messages (bnc#877021) -Patch219: log-target-null-instead-kmsg.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch220: 0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch -# PATCH-FIX-UPSTREAM added at 2014/05/14 -Patch221: 0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch222: 0001-core-close-socket-fds-asynchronously.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/16 -Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch226: 0002-logind-fix-printf-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch232: 0008-man-update-journald-rate-limit-defaults.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch -# PATCH-FIX-UPSTREAM added at 2014/05/19 -Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch245: 0007-logind-fix-Display-property-of-user-objects.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch246: 0001-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch247: 0002-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch249: 0004-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch250: 0005-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch252: 0002-journal-properly-detect-language-specified-in-line.patch -# PATCH-FIX-UPSTREAM added at 2014/05/21 -Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch254: 0001-keymap-Add-Lenovo-Enhanced-USB-Keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch255: 0002-keymap-Asus-EeePC-touchpad-toggle-key.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch256: 0001-nspawn-allow-to-bind-mount-journal-on-top-of-a-non-e.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch257: 0002-nspawn-restore-journal-directory-is-empty-check.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch258: 0003-core-never-consider-failure-when-reading-drop-ins-fa.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch259: 0004-socket-properly-handle-if-our-service-vanished-durin.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch260: 0001-Do-not-unescape-unit-names-in-Install-section.patch -# PATCH-FIX-UPSTREAM added at 2014/05/27 -Patch261: 0002-analyze-run-use-bus_open_transport_systemd-instead-o.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch262: 0001-virt-rework-container-detection-logic.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch263: 0002-fsck-include-device-name-in-the-message-about-missin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch264: 0003-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch265: 0004-util-ignore_file-should-not-allow-files-ending-with.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch266: 0006-tty-ask-password-agent-Do-tell-what-directory-we-fai.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch267: 0007-keyboard-add-Plantronics-.Audio-mute-button.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch268: 0001-build-sys-use-glibc-s-xattr-support-instead-of-requi.patch -# PATCH-FIX-UPSTREAM added at 2014/06/05 -Patch269: 0001-hwdb-fix-case-sensitive-match.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch270: 0001-sd-event-restore-correct-timeout-behaviour.patch -# PATCH-FIX-UPSTREAM added at 2014/06/06 -Patch271: 0002-bus-make-use-of-sd_bus_try_close-in-exit-on-idle-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch272: 0001-umount-modernizations.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch273: 0002-namespace-when-setting-up-an-inaccessible-mount-poin.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch274: 0003-core-allow-transient-mount-units.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 - Detect XEN dom0 as well as domU -Patch275: 0004-systemd-detect-virt-only-discover-Xen-domU.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch276: 0005-backlight-Do-not-clamp-brightness-for-LEDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/11 -Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch278: 0001-core-fix-invalid-free-in-killall.patch -# PATCH-FIX-UPSTREAM added at 2014/06/17 -Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch -# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438) -Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch -# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available -Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch282: 0002-units-add-missing-caps-so-that-GetAddresses-can-work.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch283: 0003-units-order-systemd-tmpfiles-clean.service-after-tim.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch284: 0005-po-add-Greek-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch285: 0006-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch286: 0007-po-add-German-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch287: 0009-core-clean-up-signal-reset-logic-when-reexec.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch288: 0010-util-treat-fuse.sshfs-as-a-network-filesystem.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch289: 0011-build-sys-add-pthread-flag-for-libsystemd-shared.patch -# PATCH-FIX-UPSTREAM added at 2014/06/24 -Patch290: 0012-core-transaction-avoid-misleading-error-message-when.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch291: 0001-vconsole-also-copy-character-maps-not-just-fonts-fro.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch292: 0002-core-make-sure-Environment-fields-passed-in-for-tran.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch293: 0003-core-You-can-not-put-the-cached-result-of-use_smack-.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch294: 0004-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch -# PATCH-FIX-UPSTREAM added at 2014/06/25 -Patch295: 0005-man-fix-path-in-crypttab-5.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch296: 0001-units-order-network-online.target-after-network.targ.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch297: 0001-core-use-correct-format-string-for-UIDs.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch298: 0002-core-transaction-fix-cycle-break-attempts-outside-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/06/26 -Patch299: 0003-fsck-consider-a-fsck-implementation-linked-to-bin-tr.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch300: 0001-main-uid_to_name-might-fail-due-to-OOM-protect-again.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch301: 0002-journald-make-MaxFileSec-really-default-to-1month.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch302: 0003-units-remove-RefuseManualStart-from-units-which-are-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch303: 0004-util-refuse-considering-UID-0xFFFF-and-0xFFFFFFFF-va.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch304: 0005-nspawn-block-open_by_handle_at-and-others-via-seccom.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch305: 0006-tmpfiles-don-t-do-automatic-cleanup-in-XDG_RUNTIME_D.patch -# PATCH-FIX-UPSTREAM added at 2014/07/01 -Patch306: 0007-units-skip-mounting-tmp-if-it-is-a-symlink.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch307: 0001-parse_uid-return-ENXIO-for-1-uids.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch308: 0002-util-when-unescaping-strings-don-t-allow-smuggling-i.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch309: 0003-localed-consider-an-unset-model-as-a-wildcard.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch310: 0004-sd-bus-when-an-event-loop-terminates-explicitly-clos.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch311: 0005-bus-close-a-bus-that-failed-to-connect.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch312: 0006-hwdb-update.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch313: 0007-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch314: 0001-architecture-Add-tilegx.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch315: 0002-architecture-Add-cris.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch316: 0003-arch-add-crisv32-to-uname-check.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch317: 0004-architecture-remove-cris-from-uname-list.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch318: 0003-namespace-make-sure-tmp-var-tmp-and-dev-are-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/04 -Patch319: 0002-namespace-fix-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch320: 0001-machine-don-t-return-uninitialized-variable.patch -# PATCH-FIX-UPSTREAM added at 2014/07/07 -Patch321: 0002-vconsole-setup-run-setfont-before-loadkeys.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch322: 0001-util-consider-0x7F-a-control-chracter-which-it-is-DE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch323: 0002-util-don-t-consider-tabs-special-in-string_has_cc-an.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch324: 0003-architecture-add-string-table-entries-for-mips-le-ar.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch325: 0004-core-Added-support-for-ERRNO-NOTIFY_SOCKET-message-p.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch326: 0005-service-don-t-accept-negative-ERRNO-notification-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch327: 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch -# PATCH-FIX-UPSTREAM added at 2014/07/08 -Patch328: 0007-service-flush-status-text-and-errno-values-each-time.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch329: 0001-journal-compress-return-early-in-uncompress_startswi.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch330: 0002-journal-compress-improve-xz-compression-performance.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch331: 0001-logind-allow-switching-to-unused-VTs-via-SwitchTo.patch -# PATCH-FIX-UPSTREAM added at 2014/07/09 -Patch332: 0002-hostnamed-add-a-new-chassis-type-for-watches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/10 -Patch333: 0001-units-make-ExecStopPost-action-part-of-ExecStart.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch334: 0001-event-pull-in-sd-event.h-from-event-util.h.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch335: 0002-util-fix-has-cc-check-and-add-test.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch336: 0003-sd-event-always-call-epoll_ctl-on-mask-updates-if-ed.patch -# PATCH-FIX-UPSTREAM added at 2014/07/14 -Patch337: 0004-fileio-quote-more-shell-characters-in-envfiles.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch339: 0001-Clear-up-confusion-wrt.-ENTRY_SIZE_MAX-and-DATA_SIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/07/16 -Patch340: 0002-units-serial-getty-.service-use-the-default-RestartS.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch341: 0001-po-add-Ukrainian-translation.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch -# PATCH-FIX-UPSTREAM added at 2014/07/17 -Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch -# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch -Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch347: 0003-Add-quotes-to-warning-message.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch349: 0001-bash-completion-p-option-for-journalctl.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch350: 0002-journalctl-man-allow-only-between-terms.patch -# PATCH-FIX-UPSTREAM added at 2014/07/21 -Patch351: 0003-systemd-use-pager-for-test-and-help.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch355: 0003-Always-check-asprintf-return-code.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch358: 0006-parse_boolean-require-exact-matches.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch -# PATCH-FIX-UPSTREAM added at 2014/07/28 -Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch -# PATCH-FIX-SUSE For system console do ask passphrases on all devices of the console Patch362: tty-ask-password-agent-on-console.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch363: 0001-sysv-order-initscripts-which-provide-network-before-.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch364: 0002-keymap-Add-microphone-mute-keymap-for-Dell-Latitude.patch -# PATCH-FIX-UPSTREAM added at 2014/07/30 -Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch -# PATCH-FIX-UPSTREAM added at 2014/08/01 -Patch367: 0007-hwdb-update.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch370: 0002-switch-root-umount-the-old-root-correctly.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch -# PATCH-FIX-UPSTREAM added at 2014/08/22 -Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch -# PATCH-FIX-UPSTREAM added at 2014/08/25 -Patch385: 0008-hwdb-update.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch387: 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch388: 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch -# PATCH-FIX-UPSTREAM added at 2014/08/27 -Patch389: 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch390: 0001-login-fix-memory-leak-on-DropController.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch391: 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch392: 0003-sd-journal-properly-convert-object-size-on-big-endia.patch -# PATCH-FIX-UPSTREAM added at 2014/08/28 -Patch393: 0004-sd-journal-verify-that-object-start-with-the-field-n.patch -# PATCH-FIX-UPSTREAM added at 2014/08/29 -Patch394: 0001-nspawn-fix-network-interface.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch395: 0001-completion-filter-templates-from-restartable-units.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch396: 0002-systemd-fix-error-message.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch397: 0003-Quote-unit-names-in-suggested-systemctl-commandlines.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch398: 0004-config-parser-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/01 -Patch399: 0005-login-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/09/02 -Patch400: 0001-login-simplify-controller-handling.patch -# PATCH-FIX-UPSTREAM added at 2014/09/05 -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 -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch415: 0001-core-fix-resource-leak-in-manager_environment_add.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch416: 0002-util-remove-a-unnecessary-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch417: 0003-udev-event-explicitly-don-t-read-from-invalid-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch418: 0004-shared-conf-parser.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch419: 0005-logind-fix-typo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch420: 0006-systemctl-fix-resource-leak-CID-1237747.patch -# PATCH-FIX-UPSTREAM added at 2014/09/16 -Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch -# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary -Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch -# PATCH-FIX-UPSTREAM added at 2014/09/19 -Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -- May help that history of the shell is saved -Patch431: 0001-login-pause-devices-before-acknowledging-VT-switches.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch432: 0001-nspawn-don-t-try-to-create-veth-link-with-too-long-i.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 (bsc#897801) -Patch433: 0001-socket-introduce-SELinuxContextFromNet-option.patch -# PATCH-FIX-UPSTREAM added at 2014/09/24 -Patch434: 0002-util-avoid-non-portable-__WORDSIZE.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch435: 0001-Fix-warning-about-unused-variable-with-SELINUX.patch -# PATCH-FIX-UPSTREAM added at 2014/09/25 -Patch436: 0002-bus-remove-unused-check.patch -# PATCH-FIX-UPSTREAM added at 2014/09/26 -Patch437: 0001-systemd-tmpfiles-Fix-IGNORE_DIRECTORY_PATH-age-handl.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch438: 0001-logind-add-support-for-Triton2-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch439: 0002-logind-add-support-for-TPS65217-Power-Button.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch440: 0001-shutdownd-clean-up-initialization-of-struct.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch441: 0003-bootchart-parse-userinput-with-safe_atoi.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch442: 0004-bootchart-check-return-of-strftime.patch -# PATCH-FIX-UPSTREAM added at 2014/09/29 -Patch443: 0005-bootchart-Do-not-try-to-access-data-for-non-existing.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch444: 0001-journalctl-do-not-output-reboot-markers-when-running.patch -# PATCH-FIX-UPSTREAM added at 2014/09/30 -Patch445: 0002-udev-hwdb-New-Entry-for-Dell-XPS12-9Q33-keyboard.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch446: 0001-core-swap-only-make-configured-units-part-of-swap.ta.patch -# PATCH-FIX-UPSTREAM added at 2014/10/02 -Patch447: 0009-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch448: 0001-virt-detect-that-we-are-running-inside-the-docker-co.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch449: 0002-bootchart-use-n-a-if-PRETTY_NAME-is-not-found.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch450: 0003-fileio-label-return-error-when-writing-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch451: 0001-sd-event-don-t-require-a-signal-event-source-to-be-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch452: 0004-sd-event-check-the-value-of-received-signal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/07 -Patch453: 0005-sd-id128-do-stricter-checking-of-random-boot-id.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch454: 0001-keymap-Fix-touchpad-toggle-on-Toshiba-Satellite-P75-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch455: 0001-units-introduce-network-pre.target-as-place-to-hook-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch456: 0002-keymap-Fix-touchpad-toggle-key-on-Asus-laptops.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch457: 0003-sd-bus-check-return-value-of-vasprintf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch458: 0004-core-map-the-rescue-argument-to-rescue.target.patch -# PATCH-FIX-UPSTREAM added at 2014/10/10 -Patch459: 0005-util-avoid-double-close-of-fd.patch -# PATCH-FIX-UPSTREAM added at 2014/10/13 -Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch -# PATCH-FIX-UPSTREAM added at 2014/10/14 -Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch -# PATCH-FIX-UPSTREAM added at 2014/10/15 -Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch466: 0001-systemd-continue-switch-root-even-if-umount-fails.patch -# PATCH-FIX-UPSTREAM added at 2014/10/20 -Patch467: 0002-systemd-try-harder-to-bind-to-notify-socket.patch -# PATCH-FIX-SUSE added at 2014/10/15 -Patch468: avoid-leaking-socket-descriptors.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch469: 0001-strv-add-an-additional-overflow-check-when-enlarging.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch470: 0002-hwdb-Add-mapping-for-special-keys-on-compaq-ku-0133-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch471: 0003-journald-add-CAP_MAC_OVERRIDE-in-journald-for-SMACK-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch472: 0004-journal-do-server_vacuum-for-sigusr1.patch -# PATCH-FIX-UPSTREAM added at 2014/10/23 -Patch473: 0005-cryptsetup-fix-an-OOM-check.patch -# PATCH-FIX-UPSTREAM added at 2014/10/24 -Patch474: 0002-shutdown-pass-own-argv-to-run-initramfs-shutdown.patch -# PATCH-FIX-SUSE added at 2014/10/24 +# PATCH-FIX-SUSE added on 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch476: 0001-manager-Linux-on-hppa-has-fewer-rtsigs-hence-avoid-u.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch477: 0002-time-also-support-infinity-syntax-in-parse_nsec.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch478: 0003-time-earlier-exit-from-format_timestamp_relative-on-.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch479: 0004-sd-bus-if-we-don-t-manage-to-properly-allocate-the-e.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch480: 0005-journalctl-correct-help-text-for-until.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch481: 0006-calendarspec-fix-typo-in-annually.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch482: 0007-systemctl-do-not-ignore-errors-in-symlink-removal.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch483: 0008-util-introduce-sethostname_idempotent.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch484: 0009-util-fix-copy-paste-error-and-actually-set-the-new-h.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch485: 0010-shutdown-do-final-unmounting-only-if-not-running-ins.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch486: 0011-selinux-make-sure-we-do-not-try-to-print-missing-fie.patch -# PATCH-FIX-UPSTREAM added at 2014/10/28 -Patch487: 0012-manager-do-not-print-anything-while-passwords-are-be.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch488: 0001-sd-bus-properly-handle-removals-of-non-existing-matc.patch -# PATCH-FIX-UPSTREAM added at 2014/10/31 -Patch489: 0002-keymap-Ignore-brightness-keys-on-Dell-Inspiron-1520-.patch -# PATCH-FIX-SUSE added at 2014/11/05 +# PATCH-FIX-SUSE added on 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch491: 0001-core-don-t-allow-enabling-if-unit-is-masked.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch492: 0002-snapshot-return-error-when-snapshot-exists.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch493: 0003-shared-install-avoid-prematurely-rejecting-missing-u.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch494: 0004-Raise-level-of-Found-dependency.-lines.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch495: 0005-units-order-sd-journal-flush-after-sd-remount-fs.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch496: 0006-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch497: 0007-journald-also-check-journal-file-size-to-deduce-if-i.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch498: 0008-journald-fix-memory-leak-on-error-path.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch499: 0009-units-make-systemd-journald.service-Type-notify.patch -# PATCH-FIX-UPSTREAM added at 2014/11/07 -Patch500: 0010-hwdb-Update-database-of-Bluetooth-company-identifier.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch501: 0001-login-rerun-vconsole-setup-when-switching-from-vgaco.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch502: 0002-shutdown-fix-arguments-to-run-initramfs-shutdown.patch -# PATCH-FIX-UPSTREAM added at 2014/11/10 -Patch503: 0003-utf8-when-looking-at-the-next-unichar-honour-the-siz.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch504: 0001-keymap-Add-support-for-IBM-ThinkPad-X41-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch505: 0002-keymap-Fix-special-keys-on-ThinkPad-X60-X61-Tablet.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch506: 0001-systemctl-let-list-units-unit-files-honour-type.patch -# PATCH-FIX-UPSTREAM added at 2014/11/18 -Patch507: 0002-systemctl-obey-state-in-list-unit-files.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch509: 0002-core-watchdog-bus-properties-cannot-be-both-writable.patch -# PATCH-FIX-UPSTREAM added at 2014/11/20 -Patch510: 0003-sd-bus-refuse-properties-that-claim-to-be-both-writa.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch511: 0001-units-make-sure-rfkill-service-is-bount-to-the-actua.patch -# PATCH-FIX-UPSTREAM added at 2014/12/05 -Patch512: 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch -# PATCH-FIX-SUSE 513-nspawn-veth.patch (bnc#906709) -Patch513: 513-nspawn-veth.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch514: 0001-selinux-access-fix-broken-ternary-operator.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch515: 0002-systemctl-show-BindsTo-BoundBy-in-list-dependencies.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch516: 0003-cryptsetup-default-to-no-hash-when-keyfile-is-specif.patch -# PATCH-FIX-UPSTREAM added at 2014/12/15 -Patch517: 0004-core-fix-transaction-destructiveness-check-once-more.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch518: 0001-units-tmpfiles-setup-dev-allow-unsafe-file-creation-.patch -# PATCH-FIX-UPSTREAM added at 2014/12/16 -Patch519: 0002-man-tmpfiles.d-recommend-using-b-and-c.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -# +Patch522: 0001-core-rework-device-state-logic.patch # UDEV PATCHES # ============ @@ -1080,188 +270,46 @@ Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch -# PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch -- for code base <= 1310 -Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-USTREAM added at 2014/03/03 -Patch1009: 1009-cdrom_id-use-the-old-MMC-fallback.patch -# PATCH-FIX-SUSE increase result size for programs (bnc#867840) -Patch1010: 1010-udev-increase-result-size-for-programs.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-USTREAM 1014-udev-update-net_id-comments.patch -Patch1014: 1014-udev-update-net_id-comments.patch -# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/12 -Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch -# PATCH-FIX-UPSTREAM added at 2014/05/20 -Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch -# PATCH-FIX-UPSTREAM added at 2014/05/26 -Patch1020: 1020-udev-keyboard-also-hook-into-change-events.patch # PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch Patch1021: 1021-udev-re-add-persistent-net-rules.patch -# PATCH-FIX-UPSTREAM 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -Patch1022: 1022-udev-remove-seqnum-API-and-all-assumptions-about-seq.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1023: 1023-udev-builtin-keyboard-do-tell-on-which-device-EVIOCS.patch -# PATCH-FIX-UPSTREAM added at 2014/06/03 -Patch1024: 1024-udev-always-close-lock-file-descriptor.patch -# PATCH-FIX-UPSTREAM 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -Patch1025: 1025-udev-exclude-device-mapper-from-block-device-ownersh.patch -# PATCH-FIX-UPSTREAM 1026-udevd-inotify-modernizations.patch -Patch1026: 1026-udevd-inotify-modernizations.patch -# PATCH-FIX-UPSTREAM 1027-udev-synthesize-change-events-for-partitions-when-to.patch -Patch1027: 1027-udev-synthesize-change-events-for-partitions-when-to.patch -# PATCH-FIX-UPSTREAM 1028-udev-link-config-fix-mem-leak.patch -Patch1028: 1028-udev-link-config-fix-mem-leak.patch -# PATCH-FIX-UPSTREAM 1029-udev-try-first-re-reading-the-partition-table.patch -Patch1029: 1029-udev-try-first-re-reading-the-partition-table.patch -# PATCH-FIX-UPSTREAM 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -Patch1030: 1030-udev-guard-REREADP-logic-with-open-O_ECXL.patch -# PATCH-FIX-UPSTREAM 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -Patch1031: 1031-udev-make-sure-we-always-get-change-for-the-disk.patch -# PATCH-FIX-UPSTREAM 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -Patch1032: 1032-udev-guard-REREADPT-by-exclusive-lock-instead-of-O_E.patch -# PATCH-FIX-UPSTREAM 1033-udev-really-exclude-device-mapper-from-block-device.patch -Patch1033: 1033-udev-really-exclude-device-mapper-from-block-device.patch -# PATCH-FIX-UPSTREAM 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch -Patch1034: 1034-udev-check-the-return-value-from-udev_enumerate_scan.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-UPSTREAM 1038-udev-fix-invalid-free-in-enable_name_policy.patch -Patch1038: 1038-udev-fix-invalid-free-in-enable_name_policy.patch -# PATCH-FIX-UPSTREAM 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch -Patch1039: 1039-udevadm-settle-fixed-return-code-for-empty-queue.patch # PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-UPSTREAM 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -Patch1041: 1041-libudev-fix-udev_queue_get_queue_is_empty-logic.patch -# PATCH-FIX-UPSTREAM 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -Patch1042: 1042-libudev-queue-provide-file-descriptor-to-watch-busy-.patch -# PATCH-FIX-UPSTREAM 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -Patch1043: 1043-libudev-queue-watch-entire-directory-to-allow-the-re.patch -# PATCH-FIX-UPSTREAM 1044-rules-update-qemu-hid-rules.patch -Patch1044: 1044-rules-update-qemu-hid-rules.patch -# PATCH-FIX-UPSTREAM 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch -Patch1045: 1045-rules-don-t-enable-usb-pm-for-Avocent-devices.patch # PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-UPSTREAM added at 2014/07/03 -Patch1047: 1047-udev-net_setup_link-builtin-should-print-the-reason-.patch -# PATCH-FIX-UPSTREAM 1048-udev-net_setup_link-add-a-bit-more-logging.patch -Patch1048: 1048-udev-net_setup_link-add-a-bit-more-logging.patch -# PATCH-FIX-UPSTREAM 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch -Patch1049: 1049-udev-link_config-ignore-errors-due-to-missing-MAC-ad.patch # PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch # PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch -Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch # PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) Patch1053: 1053-better-checks-in-write_net_rules.patch -# PATCH-FIX-SUSE 0001-udev-exclude-MD-from-block-device-ownership-event-lo.patch -Patch1054: 1054-udev-exclude-MD-from-block-device-ownership-event-lo.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch -# PATCH-FIX-UPSTREAM 1056-udevd-add-event-timeout-commandline-option.patch -Patch1056: 1056-udevd-add-event-timeout-commandline-option.patch -# PATCH-FIX-UPSTREAM 1057-udev-unify-event-timeout-handling.patch -Patch1057: 1057-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1058-udev-unify-event-timeout-handling.patch -Patch1058: 1058-udev-unify-event-timeout-handling.patch -# PATCH-FIX-UPSTREAM 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch -Patch1059: 1059-udev-fixup-commit-dd5eddd28a74a49607a8fffcaf960040db.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch -# PATCH-FIX-UPSTREAM 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch -Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch -# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch -# PATCH-FIX-UPSTREAM 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch -# PATCH-FIX-UPSTREAM 1065-udev-bump-event-timeout-to-60-seconds.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 -# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch -# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch -Patch1081: 1081-udevd-check-return-of-various-functions.patch -# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch -# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch -Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch -# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch -# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch -Patch1085: 1085-udev-fix-typos.patch -# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch -Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch -# PATCH-FIX-SUSE 1087-infinit-timeout-for-kmod-loaded-modules.patch -Patch1087: 1087-infinit-timeout-for-kmod-loaded-modules.patch # PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch -# PATCH-FIX-UPSTREAM 1089-fix-cgroup-device-controller.patch -Patch1089: 1089-fix-cgroup-device-controller.patch -# PATCH-FIX-UPSTREAM 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -Patch1090: 1090-udev-path_id-set-supported_parent-for-well-known-SCS.patch -# PATCH-FIX-UPSTREAM 1091-udev-path_id-update-comments.patch -Patch1091: 1091-udev-path_id-update-comments.patch -# PATCH-FIX-UPSTREAM 1092-libudev-do-not-accept-invalid-log-levels.patch -Patch1092: 1092-libudev-do-not-accept-invalid-log-levels.patch -# PATCH-FIX-UPSTREAM 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -Patch1093: 1093-udev-Fix-parsing-of-udev.event-timeout-kernel-parame.patch -# PATCH-FIX-UPSTREAM 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch -Patch1094: 1094-udev-avoid-magic-constants-in-kernel-cmdline-parsers.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch -# PATCH-FIX-UPSTREAM 1098-udev-link_setup-respect-kernel-name-assign-policy.patch -Patch1098: 1098-udev-link_setup-respect-kernel-name-assign-policy.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1469,6 +517,24 @@ is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. +%package -n nss-mymachines +Summary: Plugin for local virtual host name resolution +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-mymachines +nss-myhostname is a plugin for the GNU Name Service Switch (NSS) +functionality of the GNU C Library (glibc) providing host name +resolution for the locally configured containers and virtual machines +systemd-machined knows about. + +%package -n nss-resolve +Summary: Plugin for local hostname resolution via systemd-resolved +License: LGPL-2.1+ +Group: System/Libraries + +%description -n nss-resolve + %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ @@ -1480,13 +546,12 @@ Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. - %endif %prep -%setup -q -n systemd-%{version} +%setup -q -n systemd-%version echo "Checking whether upstream rpm macros changed..." -[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 +diff -au "%{S:10}" src/core/macros.systemd.in # only needed for bootstrap %if 0%{?bootstrap} @@ -1494,29 +559,15 @@ cp %{SOURCE7} m4/ %endif # systemd patches -%patch0 -p1 -%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 -%if 0%{?suse_version} <= 1310 -%patch8 -p1 -%endif -%patch9 -p1 %patch12 -p1 -%patch13 -p0 -%patch15 -p1 %patch16 -p1 %patch17 -p1 -%patch18 -p1 -%patch19 -p0 %patch20 -p1 %patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html @@ -1527,418 +578,45 @@ cp %{SOURCE7} m4/ %patch40 -p1 %patch41 -p1 %patch42 -p1 -%patch46 -p1 -%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 -%patch93 -p1 -%patch114 -p0 -%if 0%{?suse_version} <= 1310 -%patch117 -p1 -%endif -%patch119 -p1 %patch120 -p1 -%patch121 -p0 -%patch122 -p0 -%patch123 -p0 -%patch124 -p0 -%patch125 -p0 -%patch126 -p0 -%patch127 -p0 -%patch128 -p0 -%patch129 -p0 -%patch130 -p0 -%patch131 -p0 -%patch132 -p0 -%patch133 -p0 -%patch134 -p0 -%patch135 -p0 -%patch136 -p0 -%patch137 -p0 -%patch138 -p0 -%patch139 -p0 -%patch140 -p0 -%patch141 -p0 -%patch142 -p0 -%patch143 -p0 -%patch144 -p0 -%patch145 -p0 -%patch146 -p0 -%patch147 -p0 -%patch148 -p0 -%patch149 -p0 -%patch150 -p0 -%patch151 -p0 -%patch152 -p0 -%patch153 -p0 -%patch154 -p0 -%patch155 -p0 -%patch157 -p0 -%patch158 -p0 -%patch159 -p0 -%patch160 -p0 -%patch161 -p0 -%patch162 -p0 -%patch163 -p0 -%patch164 -p0 -%patch165 -p0 -%patch166 -p0 -%patch167 -p0 -%patch168 -p0 -%patch169 -p0 -%patch170 -p0 -%patch171 -p0 -%patch172 -p0 -%patch173 -p0 -%patch174 -p0 -%patch175 -p0 -%patch176 -p0 %patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 -%patch181 -p1 %patch182 -p1 %patch183 -p1 %patch185 -p1 %patch186 -p1 -%patch187 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 -%patch194 -p0 -%patch196 -p1 -%patch195 -p0 %patch197 -p1 %patch198 -p1 -%patch199 -p0 -%patch200 -p0 -%patch201 -p0 -%patch202 -p0 %patch203 -p1 -%patch204 -p1 -%patch206 -p0 -%patch207 -p0 %patch208 -p1 -%patch209 -p0 -%patch211 -p0 -%patch212 -p0 -%patch213 -p0 -%patch214 -p0 -%patch215 -p0 -%patch216 -p0 -%patch217 -p0 -%patch218 -p0 -%patch219 -p1 -%patch220 -p0 -%patch221 -p0 -%patch222 -p0 -%patch223 -p0 -%patch224 -p0 -%patch225 -p0 -%patch226 -p0 -%patch227 -p0 -%patch228 -p0 -%patch229 -p0 -%patch230 -p0 -%patch231 -p0 -%patch232 -p0 -%patch233 -p0 -%patch234 -p0 -%patch235 -p0 -%patch236 -p0 -%patch237 -p0 -%patch238 -p0 -%patch239 -p0 -%patch240 -p0 -%patch241 -p0 -%patch242 -p0 -%patch243 -p0 -%patch244 -p0 -%patch245 -p0 -%patch246 -p0 -%patch247 -p0 -%patch248 -p0 -%patch249 -p0 -%patch250 -p0 -%patch251 -p0 -%patch252 -p0 -%patch253 -p0 -%patch254 -p0 -%patch255 -p0 -%patch256 -p0 -%patch257 -p0 -%patch258 -p0 -%patch259 -p0 -%patch260 -p0 -%patch261 -p0 -%patch262 -p0 -%patch263 -p0 -%patch264 -p0 -%patch265 -p0 -%patch266 -p0 -%patch267 -p0 -%patch268 -p0 -%patch269 -p0 -%patch270 -p0 -%patch271 -p0 -%patch272 -p0 -%patch273 -p0 -%patch274 -p0 -%patch275 -p0 -%patch276 -p0 -%patch277 -p0 -%patch278 -p0 -%patch279 -p0 -%patch280 -p0 -%patch281 -p1 -%patch282 -p0 -%patch283 -p0 -%patch284 -p0 -%patch285 -p0 -%patch286 -p0 -%patch287 -p0 -%patch288 -p0 -%patch289 -p0 -%patch290 -p0 -%patch291 -p0 -%patch292 -p0 -%patch293 -p0 -%patch294 -p0 -%patch295 -p0 -%patch296 -p0 -%patch297 -p0 -%patch298 -p0 -%patch299 -p0 -%patch300 -p0 -%patch301 -p0 -%patch302 -p0 -%patch303 -p0 -%patch304 -p0 -%patch305 -p0 -%patch306 -p0 -%patch307 -p0 -%patch308 -p0 -%patch309 -p0 -%patch310 -p0 -%patch311 -p0 -%patch312 -p0 -%patch313 -p0 -%patch314 -p0 -%patch315 -p0 -%patch316 -p0 -%patch317 -p0 -%patch318 -p0 -%patch319 -p0 -%patch320 -p0 -%patch321 -p0 -%patch322 -p0 -%patch323 -p0 -%patch324 -p0 -%patch325 -p0 -%patch326 -p0 -%patch327 -p0 -%patch328 -p0 -%patch329 -p0 -%patch330 -p0 -%patch331 -p0 -%patch332 -p0 -%patch333 -p0 -%patch334 -p0 -%patch335 -p0 -%patch336 -p0 -%patch337 -p0 -%patch338 -p0 -%patch339 -p0 -%patch340 -p0 -%patch341 -p0 -%patch342 -p0 -%patch343 -p0 -%patch344 -p0 +%patch338 -p1 %patch345 -p1 -%patch346 -p0 -%patch347 -p0 -%patch348 -p0 -%patch349 -p0 -%patch350 -p0 -%patch351 -p0 -%patch352 -p0 -%patch353 -p0 -%patch354 -p0 -%patch355 -p0 -%patch356 -p0 -%patch357 -p0 -%patch358 -p0 -%patch359 -p0 -%patch360 -p0 -%patch361 -p0 +%patch352 -p1 %patch362 -p1 -%patch363 -p0 -%patch364 -p0 -%patch365 -p0 %patch366 -p1 -%patch367 -p0 %patch368 -p1 -%patch369 -p0 -%patch370 -p0 -%patch371 -p0 -%patch372 -p0 -%patch373 -p0 -%patch374 -p0 -%patch375 -p0 -%patch376 -p0 -%patch377 -p0 -%patch378 -p0 -%patch379 -p0 -%patch380 -p0 -%patch381 -p0 -%patch382 -p0 -%patch383 -p0 -%patch384 -p0 -%patch385 -p0 %patch386 -p1 -%patch387 -p0 -%patch388 -p0 -%patch389 -p0 -%patch390 -p0 -%patch391 -p0 -%patch392 -p0 -%patch393 -p0 -%patch394 -p0 -%patch395 -p0 -%patch396 -p0 -%patch397 -p0 -%patch398 -p0 -%patch399 -p0 -%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 -%patch415 -p0 -%patch416 -p0 -%patch417 -p0 -%patch418 -p0 -%patch419 -p0 -%patch420 -p0 -%patch421 -p0 -%patch422 -p0 -%patch423 -p0 -%patch424 -p0 -%patch425 -p0 -%patch426 -p0 -%patch427 -p0 -%patch428 -p0 -%patch429 -p0 %patch430 -p1 -%patch431 -p0 -%patch432 -p0 -%patch433 -p0 -%patch434 -p0 -%patch435 -p0 -%patch436 -p0 -%patch437 -p0 -%patch438 -p0 -%patch439 -p0 +%patch475 -p1 %ifarch %arm %patch38 -p1 %endif -%patch440 -p0 -%patch441 -p0 -%patch442 -p0 -%patch443 -p0 -%patch444 -p0 -%patch445 -p0 -%patch446 -p0 -%patch447 -p0 -%patch448 -p0 -%patch449 -p0 -%patch450 -p0 -%patch451 -p0 -%patch452 -p0 -%patch453 -p0 -%patch454 -p0 -%patch455 -p0 -%patch456 -p0 -%patch457 -p0 -%patch458 -p0 -%patch459 -p0 -%patch460 -p0 -%patch461 -p0 -%patch462 -p0 -%patch463 -p0 -%patch464 -p0 -%patch465 -p0 -%patch466 -p0 -%patch467 -p0 -%patch468 -p0 -%patch469 -p0 -%patch470 -p0 -%patch471 -p0 -%patch472 -p0 -%patch473 -p0 -%patch474 -p0 -%patch475 -p0 -%patch476 -p0 -%patch477 -p0 -%patch478 -p0 -%patch479 -p0 -%patch480 -p0 -%patch481 -p0 -%patch482 -p0 -%patch483 -p0 -%patch484 -p0 -%patch485 -p0 -%patch486 -p0 -%patch487 -p0 -%patch488 -p0 -%patch489 -p0 -%patch490 -p0 -%patch491 -p0 -%patch492 -p0 -%patch493 -p0 -%patch494 -p0 -%patch495 -p0 -%patch496 -p0 -%patch497 -p0 -%patch498 -p0 -%patch499 -p0 -%patch500 -p0 -%patch501 -p0 -%patch502 -p0 -%patch503 -p0 -%patch504 -p0 -%patch505 -p0 -%patch506 -p0 -%patch507 -p0 -%patch509 -p0 -%patch510 -p0 -%patch511 -p0 -%patch512 -p0 -%patch513 -p1 -%patch514 -p0 -%patch515 -p0 -%patch516 -p0 -%patch517 -p0 -%patch518 -p1 -%patch519 -p1 +%patch490 -p1 %patch520 -p1 -%patch521 -p0 +%patch521 -p1 +%patch522 -p1 # udev patches %patch1001 -p1 @@ -1947,131 +625,31 @@ cp %{SOURCE7} m4/ %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 -%if 0%{?suse_version} <= 1310 -%patch1008 -p1 -%endif -%patch1009 -p1 -%patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1014 -p1 -%patch1015 -p1 -%patch1016 -p0 -%patch1017 -p0 -%patch1018 -p0 -%patch1019 -p0 -%patch1020 -p0 %patch1021 -p1 -%if %{with udevsettle} -%patch1022 -p1 -%endif -%patch1023 -p0 -%patch1024 -p0 -%if %{with blkrrpart} -%patch1025 -p1 -%endif -%patch1026 -p1 -%if %{with blkrrpart} -%patch1027 -p1 -%endif -%patch1028 -p1 -%if %{with blkrrpart} -%patch1029 -p1 -%patch1030 -p1 -%patch1031 -p1 -%patch1032 -p1 -%patch1033 -p1 -%patch1034 -p1 -%endif %patch1035 -p1 %patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1038 -p0 -%if %{with udevsettle} -%patch1039 -p0 -%endif %patch1040 -p1 -%if %{with udevsettle} -%patch1041 -p0 -%patch1042 -p0 -%patch1043 -p0 -%endif -%patch1044 -p0 -%patch1045 -p0 %patch1046 -p1 -%patch1047 -p0 -%patch1048 -p0 -%patch1049 -p0 %patch1050 -p1 %patch1051 -p1 -%patch1052 -p0 %patch1053 -p1 %if %{with blkrrpart} -%patch1054 -p0 %else %patch1055 -p1 %endif -%patch1056 -p0 -%if %{with udevsettle} -%patch1057 -p0 -%else -%patch1058 -p0 -%endif -%patch1059 -p0 %patch1060 -p1 -%patch1061 -p0 %patch1062 -p1 -%if %{with parentpathid} -%patch1063 -p0 -%endif -%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 -%patch1080 -p0 -%patch1081 -p0 -%patch1082 -p0 -%patch1083 -p0 -%patch1084 -p0 -%patch1085 -p0 -%patch1086 -p0 -%patch1087 -p0 %patch1088 -p1 -%patch1089 -p1 -%if %{with parentpathid} -%patch1090 -p0 -%patch1091 -p0 -%endif -%patch1092 -p0 -%patch1093 -p0 -%patch1094 -p0 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 -%patch1098 -p0 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -2091,17 +669,6 @@ else sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c fi -%if 0%{?suse_version} <= 1310 -# -# Older versions like oS 13.1 do not distinguish between -# network.target and network-online.target -# -for f in src/core/service.c src/insserv-generator/insserv-generator.c -do - sed -ri '/"network",.*SPECIAL_NETWORK_ONLINE_TARGET,/{ s/SPECIAL_NETWORK_ONLINE_TARGET/SPECIAL_NETWORK_TARGET/}' $f -done -%endif - # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 @@ -2142,11 +709,11 @@ cflags () esac set +o noclobber } -autoreconf -fiv +autoreconf -fi # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=e -export CFLAGS="%{optflags} $(getconf LFS_CFLAGS)" +export CFLAGS="%{optflags}" export LDFLAGS %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" @@ -2172,6 +739,7 @@ cflags -Wl,--hash-size=8599 LDFLAGS --disable-gudev \ --disable-myhostname \ --disable-manpages \ + --disable-machined \ %else --enable-manpages \ %if %{with python} @@ -2179,16 +747,10 @@ cflags -Wl,--hash-size=8599 LDFLAGS %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ -%endif -%if %{with compat_libs} - --enable-compat-libs \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ -%if 0%{?suse_version} <= 1310 - --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ -%endif %if ! 0%{?has_efi} --disable-efi \ %endif @@ -2197,11 +759,15 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ -%if 0%{?suse_version} > 1310 - --disable-multi-seat-x \ -%endif %if %{without networkd} --disable-networkd \ +%endif +%if %{without sysvcompat} + --with-sysvinit-path= \ + --with-sysvrcnd-path= \ +%endif +%if %{without resolved} + --disable-resolved \ %endif --disable-kdbus make %{?_smp_mflags} @@ -2210,19 +776,9 @@ make %{?_smp_mflags} update-man-list man %endif %install -# Use refreshed manual pages -for man in man/*.[0-9] -do - section=${man##*.} - test -d man/man${section} || continue - new=man/man${section}/${man##*/} - if test -s $new -a $new -nt $man - then - cp -p $new $man - else - sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man - fi -done +%if !0%{?bootstrap} +cp man/man[0-9]/*.[0-9] man/ +%endif make install DESTDIR="%buildroot" # move to %{_lib} @@ -2235,24 +791,17 @@ ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd + %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -%if 0%{?suse_version} <= 1310 -ln -sf /lib/firmware %{buildroot}/usr/lib/firmware -%endif + %if ! 0%{?bootstrap} -install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif -sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} -sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} -sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule -install -m755 -D %{S:1064} %{buildroot}/%{_bindir}/systemd-sleep-grub install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -2270,28 +819,7 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# aliases for /etc/init.d/* -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service -ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service -install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service -ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service -ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service -ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service -ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service + # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount @@ -2364,15 +892,6 @@ EOF install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ -%if ! 0%{?bootstrap} -%if %{without python} -for man in systemd.directives.7 systemd.index.7 -do - install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ -done -%endif -%endif - mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed @@ -2389,10 +908,8 @@ done > files.completion > files.completion %endif -%if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd -%endif %if %{without compat_libs} lib=%{_libdir}/libsystemd.so @@ -2404,30 +921,6 @@ do done %endif -%if 0%{suse_version} <= 1310 -cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF' - [Unit] - Description=Fix against deadlock at shutdown - Wants=remote-fs.target remote-fs-pre.target - Before=remote-fs.target systemd-logind.service - After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target - ConditionPathExists=|/etc/init.d/autofs - ConditionPathExists=|/etc/init.d/nfs - - [Service] - Type=oneshot - RemainAfterExit=true - ExecStart=/bin/true - ExecStop=-/etc/init.d/autofs stop - ExecStop=-/etc/init.d/nfs stop - - [Install] - WantedBy=remote-fs.target - EOF - mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants - ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants -%endif - # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ @@ -2475,6 +968,7 @@ fi getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif +systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -2522,8 +1016,6 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ - systemd-readahead-collect.service \ - systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi @@ -2553,7 +1045,6 @@ fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : -%{fillup_and_insserv -Y boot.udev} # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : @@ -2652,6 +1143,9 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig +%post -n nss-mymachines -p /sbin/ldconfig +%postun -n nss-mymachines -p /sbin/ldconfig + %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : @@ -2674,17 +1168,26 @@ exit 0 /bin/systemd /bin/systemd-ask-password /bin/systemctl -%{_bindir}/systemd-sleep-grub +%if %{with networkd} +%{_bindir}/networkctl +%endif %{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl +%if ! 0%{?bootstrap} %{_bindir}/machinectl +%endif %{_bindir}/systemctl %{_bindir}/systemd-analyze -%{_bindir}/systemd-coredumpctl +%{_bindir}/coredumpctl %{_bindir}/systemd-delta +%{_bindir}/systemd-escape +%{_bindir}/systemd-firstboot +%{_bindir}/systemd-path +%{_bindir}/systemd-sysusers %{_bindir}/systemd-notify +%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -2727,7 +1230,6 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount -%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -2766,12 +1268,19 @@ exit 0 %{_bindir}/bootctl %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif -%{_prefix}/lib/systemd/system-generators/systemd-getty-generator +%{_prefix}/lib/systemd/system-generators/systemd-debug-generator +%{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator +%if %{with sysvcompat} +%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator +%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator +%endif +%{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator -%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator +%{_prefix}/lib/systemd/system-preset/ +%{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user @@ -2800,13 +1309,23 @@ exit 0 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf +%config(noreplace) %{_sysconfdir}/systemd/coredump.conf +%if !0%{?bootstrap} +%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf +%endif +%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf +%if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf +%endif +%if %{with networkd} +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf +%endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf @@ -2823,15 +1342,24 @@ exit 0 %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target +%{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service +%if %{with networkd} +%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service +%if !0%{?bootstrap} %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service +%endif %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions +%if !0%{?bootstrap} +%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy +%endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy @@ -2881,8 +1409,11 @@ exit 0 %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed -%if 0%{?suse_version} > 1310 -%{_datadir}/pkgconfig/systemd.pc +%if %{with resolved} +%{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf +%{_sysconfdir}/systemd/resolved.conf +%{_libdir}/libnss_resolve.so.2 +%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service %endif %if ! 0%{?bootstrap} @@ -2907,9 +1438,7 @@ exit 0 %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/_sd-common.h -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/systemd.pc -%endif +%{_libdir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc @@ -2971,7 +1500,6 @@ exit 0 %{_prefix}/lib/udev/rules.d/*.rules %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* -%{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin @@ -3002,9 +1530,6 @@ exit 0 %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so -%if 0%{?suse_version} <= 1310 -%{_datadir}/pkgconfig/udev.pc -%endif %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc @@ -3038,8 +1563,9 @@ exit 0 %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ +%if %{with sysvcompat} %{_localstatedir}/log/README -/etc/init.d/systemd-journald +%endif %files -n nss-myhostname %defattr(-, root, root) @@ -3052,6 +1578,10 @@ exit 0 %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd + +%files -n nss-mymachines +%defattr(-,root,root) +%_libdir/libnss_mymachines.so* %endif %changelog diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch deleted file mode 100644 index fb97a2f1..00000000 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Frederic Crozat -Date: Tue, 14 Aug 2012 14:26:16 +0200 -Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock - ---- - src/timedate/timedated.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- systemd-206_git201308300826.orig/src/timedate/timedated.c -+++ systemd-206_git201308300826/src/timedate/timedated.c -@@ -182,6 +182,13 @@ static int read_data(void) { - goto have_timezone; - } - } -+#ifdef HAVE_SYSV_COMPAT -+ r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+ "TIMEZONE", &c->zone, -+ NULL); -+ if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); -+#endif - - have_timezone: - if (isempty(c->zone)) { diff --git a/tmpfiles-do-not-clean-for-mandb-index-files.patch b/tmpfiles-do-not-clean-for-mandb-index-files.patch deleted file mode 100644 index 3bfd928f..00000000 --- a/tmpfiles-do-not-clean-for-mandb-index-files.patch +++ /dev/null @@ -1,22 +0,0 @@ -There is no need to clean out all 30 days the index data base -files nor the cachedir tags of mandb. Those files are used -for whatis(1) as well as for apropos(1). - ---- - systemd-210/tmpfiles.d/systemd.conf | 5 +++++ - 1 file changed, 5 insertions(+) - ---- systemd-210/tmpfiles.d/systemd.conf -+++ systemd-210/tmpfiles.d/systemd.conf 2014-06-11 13:47:59.470236564 +0000 -@@ -14,6 +14,11 @@ f /var/log/wtmp 0664 root utmp - - f /var/log/btmp 0600 root root - - - d /var/cache/man - - - 30d -+# mandb uses data base file which should not be cleared -+x /var/cache/man/index.* -+x /var/cache/man/CACHEDIR.TAG -+x /var/cache/man/*/index.* -+x /var/cache/man/*/CACHEDIR.TAG - - d /run/systemd/ask-password 0755 root root - - d /run/systemd/seats 0755 root root - diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index 1091a730..ee7e73d8 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -1,110 +1,99 @@ --- - src/tty-ask-password-agent/tty-ask-password-agent.c | 190 +++++++++++++++++++- - 1 file changed, 185 insertions(+), 5 deletions(-) + src/tty-ask-password-agent/tty-ask-password-agent.c | 171 +++++++++++++++++++- + 1 file changed, 166 insertions(+), 5 deletions(-) ---- systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd-210/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-30 10:48:43.602052750 +0000 -@@ -28,8 +28,12 @@ - #include - #include - #include -+#include +Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c +=================================================================== +--- systemd.orig/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd/src/tty-ask-password-agent/tty-ask-password-agent.c +@@ -31,6 +31,10 @@ #include + #include + #include ++#include +#include +#include - #include +#include - #include #include "util.h" -@@ -41,6 +45,9 @@ - #include "ask-password-api.h" + #include "mkdir.h" +@@ -42,6 +46,9 @@ #include "strv.h" #include "build.h" + #include "def.h" +#include "fileio.h" +#include "macro.h" +#include "list.h" static enum { ACTION_LIST, -@@ -49,6 +56,21 @@ static enum { +@@ -50,6 +57,22 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; +struct console { + LIST_FIELDS(struct console, handle); -+ char *tty; ++ const char *tty; + pid_t pid; + int id; ++ char dev[]; +}; + -+static volatile uint32_t *usemask; ++static volatile unsigned long *usemask; +static volatile sig_atomic_t sigchild; +static void chld_handler(int sig) +{ + (void)sig; -+ sigchild++; ++ ++sigchild; +} + static bool arg_plymouth = false; static bool arg_console = false; -@@ -246,12 +268,77 @@ finish: - return r; +@@ -208,6 +231,58 @@ static int ask_password_plymouth( + return 0; } +static const char *current_dev = "/dev/console"; +static LIST_HEAD(struct console, consoles); +static int collect_consoles(void) { + _cleanup_free_ char *active = NULL; -+ char *w, *state; -+ struct console *c; -+ size_t l; -+ int id; -+ int r; ++ const char *word, *state; ++ struct console *con; ++ size_t len; ++ int ret, id = 0; + -+ r = read_one_line_file("/sys/class/tty/console/active", &active); -+ if (r < 0) -+ return r; -+ -+ id = 0; -+ FOREACH_WORD(w, l, active, state) { ++ ret = read_one_line_file("/sys/class/tty/console/active", &active); ++ if (ret < 0) ++ return ret; ++ FOREACH_WORD(word, len, active, state) { + _cleanup_free_ char *tty = NULL; + -+ if (strneq(w, "tty0", l)) { -+ if (read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { -+ w = tty; -+ l = strlen(tty); -+ } ++ if (strneq(word, "tty0", len) && ++ read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { ++ word = tty; ++ len = strlen(tty); + } -+ -+ c = malloc0(sizeof(struct console)+5+l+1); -+ if (!c) { ++ con = malloc0(sizeof(*con) + strlen("/dev/") + len + 1); ++ if (con == NULL) { + log_oom(); + continue; + } -+ -+ c->tty = ((char*)c)+sizeof(struct console); -+ stpncpy(stpcpy(c->tty, "/dev/"),w,l); -+ c->id = id++; -+ -+ LIST_PREPEND(handle, consoles, c); ++ sprintf(con->dev, "/dev/%.*s", (int)len, word); ++ con->tty = con->dev; ++ con->id = id++; ++ LIST_PREPEND(handle, consoles, con); + } -+ -+ if (!consoles) { -+ -+ c = malloc0(sizeof(struct console)); -+ if (!c) { ++ if (consoles == NULL) { ++ con = malloc0(sizeof(*con)); ++ if (con == NULL) { + log_oom(); + return -ENOMEM; + } -+ -+ c->tty = (char *)current_dev; -+ c->id = id++; -+ -+ LIST_PREPEND(handle, consoles, c); ++ con->tty = current_dev; ++ con->id = id++; ++ LIST_PREPEND(handle, consoles, con); + } -+ + return 0; +} + @@ -118,168 +107,133 @@ +} + static int parse_password(const char *filename, char **wall) { - char *socket_name = NULL, *message = NULL, *packet = NULL; + _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; uint64_t not_after = 0; - unsigned pid = 0; - int socket_fd = -1; - bool accept_cached = false; -+ size_t packet_length = 0; +@@ -308,7 +383,7 @@ static int parse_password(const char *fi + _cleanup_free_ char *password = NULL; - const ConfigTableItem items[] = { - { "Ask", "Socket", config_parse_string, 0, &socket_name }, -@@ -323,7 +410,6 @@ static int parse_password(const char *fi - struct sockaddr sa; - struct sockaddr_un un; - } sa = {}; -- size_t packet_length = 0; - - assert(arg_action == ACTION_QUERY || - arg_action == ACTION_WATCH); -@@ -365,7 +451,7 @@ static int parse_password(const char *fi - char *password = NULL; - - if (arg_console) -- if ((tty_fd = acquire_terminal("/dev/console", false, false, false, (usec_t) -1)) < 0) { -+ if ((tty_fd = acquire_terminal(current_dev, false, false, true, (usec_t) -1)) < 0) { - r = tty_fd; - goto finish; - } -@@ -386,6 +472,7 @@ static int parse_password(const char *fi - strcpy(packet+1, password); - } - -+ memset(password, 0, strlen(password)); - free(password); + if (arg_console) { +- tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY); ++ tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY); + if (tty_fd < 0) + return tty_fd; } - } -@@ -423,6 +510,7 @@ finish: - if (socket_fd >= 0) - close_nointr_nofail(socket_fd); - -+ memset(packet, 0, packet_length); - free(packet); - free(socket_name); - free(message); -@@ -726,8 +814,10 @@ static int parse_argv(int argc, char *ar +@@ -612,9 +687,85 @@ static int parse_argv(int argc, char *ar + return 1; } ++static int zzz(void) ++{ ++ struct console *con; ++ struct sigaction sig = { ++ .sa_handler = chld_handler, ++ .sa_flags = SA_NOCLDSTOP | SA_RESTART, ++ }; ++ struct sigaction oldsig; ++ sigset_t set, oldset; ++ int status = 0, ret; ++ pid_t job; ++ ++ collect_consoles(); ++ if (!consoles->handle_next) { ++ consoles->pid = 0; ++ con = consoles; ++ goto nofork; ++ } ++ ++ assert_se(sigemptyset(&set) == 0); ++ assert_se(sigaddset(&set, SIGHUP) == 0); ++ assert_se(sigaddset(&set, SIGCHLD) == 0); ++ assert_se(sigemptyset(&sig.sa_mask) == 0); ++ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); ++ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); ++ sig.sa_handler = SIG_DFL; ++ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); ++ ++ LIST_FOREACH(handle, con, consoles) { ++ switch ((con->pid = fork())) { ++ case 0: ++ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) ++ _exit(EXIT_FAILURE); ++ zero(sig); ++ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); ++ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); ++ nofork: ++ setsid(); ++ release_terminal(); ++ *usemask |= 1 << con->id; ++ current_dev = con->tty; ++ return con->id; /* child */ ++ case -1: ++ log_error("Failed to query password: %s", strerror(errno)); ++ exit(EXIT_FAILURE); ++ default: ++ break; ++ } ++ } ++ ++ ret = 0; ++ while ((job = wait(&status)) != 0) { ++ if (job < 0) { ++ if (errno != EINTR) ++ break; ++ continue; ++ } ++ LIST_FOREACH(handle, con, consoles) { ++ if (con->pid == job || kill(con->pid, 0) < 0) { ++ *usemask &= ~(1 << con->id); ++ continue; ++ } ++ if (*usemask & (1 << con->id)) ++ continue; ++ kill(con->pid, SIGHUP); ++ usleep(50000); ++ kill(con->pid, SIGKILL); ++ } ++ if (WIFEXITED(status) && ret == 0) ++ ret = WEXITSTATUS(status); ++ } ++ free_consoles(); ++ exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */ ++} ++ int main(int argc, char *argv[]) { -+ int id = 0; - int r; +- int r; ++ int r, id = 0; + LIST_HEAD_INIT(consoles); log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); -@@ -737,11 +827,99 @@ int main(int argc, char *argv[]) { - if ((r = parse_argv(argc, argv)) <= 0) +@@ -625,11 +776,19 @@ int main(int argc, char *argv[]) { + if (r <= 0) goto finish; -+ usemask = (uint32_t*) mmap(NULL, sizeof(uint32_t), PROT_READ|PROT_WRITE, -+ MAP_ANONYMOUS|MAP_SHARED, -1, 0); ++ usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE, ++ MAP_ANONYMOUS | MAP_SHARED, -1, 0); ++ assert_se(usemask != NULL); + if (arg_console) { - setsid(); - release_terminal(); -- } + if (!arg_plymouth && arg_action != ACTION_WALL && + arg_action != ACTION_LIST) { -+ struct console *c; -+ struct sigaction sig = { -+ .sa_handler = chld_handler, -+ .sa_flags = SA_NOCLDSTOP|SA_RESTART, -+ }; -+ struct sigaction oldsig; -+ sigset_t set, oldset; -+ int status = 0; -+ pid_t job; -+ -+ collect_consoles(); -+ -+ if (!consoles->handle_next) { -+ consoles->pid = 0; -+ c = consoles; -+ goto nofork; -+ } - -+ assert_se(sigemptyset(&set) == 0); -+ assert_se(sigaddset(&set, SIGHUP) == 0); -+ assert_se(sigaddset(&set, SIGCHLD) == 0); -+ assert_se(sigemptyset(&sig.sa_mask) == 0); -+ -+ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); -+ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); -+ sig.sa_handler = SIG_DFL; -+ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); -+ LIST_FOREACH(handle, c, consoles) { -+ -+ switch ((c->pid = fork())) { -+ case 0: -+ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) -+ _exit(EXIT_FAILURE); -+ zero(sig); -+ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); -+ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); -+ /* fall through */ -+ nofork: -+ setsid(); -+ release_terminal(); -+ id = c->id; -+ *usemask |= (1<tty; -+ goto forked; /* child */ -+ case -1: -+ log_error("Failed to query password: %s", strerror(errno)); -+ return EXIT_FAILURE; -+ default: -+ break; -+ } -+ } -+ -+ r = 0; -+ while ((job = wait(&status))) { -+ if (job < 0) { -+ if (errno != EINTR) -+ break; -+ continue; -+ } -+ LIST_FOREACH(handle, c, consoles) { -+ if (c->pid == job) { -+ *usemask &= ~(1<id); -+ continue; -+ } -+ if (kill(c->pid, 0) < 0) { -+ *usemask &= ~(1<id); -+ continue; -+ } -+ if (*usemask & (1<id)) -+ continue; -+ kill(c->pid, SIGHUP); -+ usleep(50000); -+ kill(c->pid, SIGKILL); -+ } -+ -+ if (WIFEXITED(status) && !r) -+ r = WEXITSTATUS(status); -+ } -+ free_consoles(); -+ return r != 0 ? EXIT_FAILURE : EXIT_SUCCESS; /* parent */ -+ ++ id = zzz(); + } else { + setsid(); + release_terminal(); + } -+ } -+forked: - if (arg_action == ACTION_WATCH || - arg_action == ACTION_WALL) + } +- + if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) r = watch_passwords(); -@@ -751,6 +929,8 @@ int main(int argc, char *argv[]) { + else +@@ -638,6 +797,8 @@ int main(int argc, char *argv[]) { if (r < 0) - log_error("Error: %s", strerror(-r)); + log_error_errno(r, "Error: %m"); + free_consoles(); -+ *usemask &= ~(1< #include @@ -37,7 +39,7 @@ Related to bnc#892096 + entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); + if (entropy_fd < 0) { -+ entropy_count = 0; ++ entropy_count = 0; + if (errno != ENOENT) { + log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); + r = -errno; @@ -55,13 +57,13 @@ Related to bnc#892096 seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -113,16 +133,37 @@ int main(int argc, char *argv[]) { +@@ -113,12 +133,34 @@ int main(int argc, char *argv[]) { } else { lseek(seed_fd, 0, SEEK_SET); -- k = loop_write(random_fd, buf, (size_t) k, false); -- if (k <= 0) { -- log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); +- r = loop_write(random_fd, buf, (size_t) k, false); +- if (r < 0) +- log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); + if (entropy_count && (size_t) k == buf_size) { + struct rand_pool_info entropy = { + .entropy_count = entropy_count, @@ -77,15 +79,12 @@ Related to bnc#892096 + k = loop_write(random_fd, buf, (size_t) k, false); + if (k <= 0) { + log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); - -- r = k == 0 ? -EIO : (int) k; + r = k == 0 ? -EIO : (int) k; + } - } ++ } } } else if (streq(argv[1], "save")) { - + /* Read available entropy count, if possible */ + f = fopen("/proc/sys/kernel/random/entropy_avail", "re"); + if (f) { @@ -93,11 +92,10 @@ Related to bnc#892096 + entropy_count = 0; + fclose(f); + } -+ + seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { - log_error("Failed to open " RANDOM_SEED ": %m"); -@@ -137,6 +178,21 @@ int main(int argc, char *argv[]) { +@@ -134,6 +176,21 @@ int main(int argc, char *argv[]) { goto finish; } diff --git a/use-usr-sbin-sulogin-for-emergency-service.patch b/use-usr-sbin-sulogin-for-emergency-service.patch deleted file mode 100644 index e29f4b28..00000000 --- a/use-usr-sbin-sulogin-for-emergency-service.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Andrey Borzenkov -Subject: use /usr/sbin/sulogin in emergency service - -In current Factory sulogin is in /usr/sbin which makes it impossible -to enter emergency service. -Index: systemd-207/units/emergency.service.in -=================================================================== ---- systemd-207.orig/units/emergency.service.in -+++ systemd-207/units/emergency.service.in -@@ -17,7 +17,7 @@ Environment=HOME=/root - WorkingDirectory=/root - ExecStartPre=-/bin/plymouth quit - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=@SYSTEMCTL@ --fail --no-block default - Type=idle - StandardInput=tty-force -Index: systemd-207/units/console-shell.service.m4.in -=================================================================== ---- systemd-207.orig/units/console-shell.service.m4.in -+++ systemd-207/units/console-shell.service.m4.in -@@ -17,7 +17,7 @@ Before=getty.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=-@SYSTEMCTL@ poweroff - Type=idle - StandardInput=tty-force -Index: systemd-207/units/rescue.service.m4.in -=================================================================== ---- systemd-207.orig/units/rescue.service.m4.in -+++ systemd-207/units/rescue.service.m4.in -@@ -18,7 +18,7 @@ Environment=HOME=/root - WorkingDirectory=/root - ExecStartPre=-/bin/plymouth quit - ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' --ExecStart=-/sbin/sulogin -+ExecStart=-/usr/sbin/sulogin - ExecStopPost=-@SYSTEMCTL@ --fail --no-block default - Type=idle - StandardInput=tty-force diff --git a/vhangup-on-all-consoles.patch b/vhangup-on-all-consoles.patch index b318b124..3273aba6 100644 --- a/vhangup-on-all-consoles.patch +++ b/vhangup-on-all-consoles.patch @@ -2,12 +2,22 @@ Related to bnc#886599 and others. That is use the vhangup(8) tool to explicit do a virtually hangup on the specified on the terminal line to give e.g. the bash a few seconds to e.g. safe its history. +[crrodriguez@opensuse.org: Feb 2015 +This a known kernel bug, no notification from the cgroup subsystem +arrives and the processes in the "scope" units have +to be SIGKILL'ed without delay in order not to hang shutdown +Status: fix not available as of Feb 16 2015 +track progress: https://bugzilla.redhat.com/show_bug.cgi?id=1141137 +] + --- units/getty@.service.m4 | 1 + units/serial-getty@.service.m4 | 1 + 2 files changed, 2 insertions(+) ---- units/getty@.service.m4 -+++ units/getty@.service.m4 2014-07-15 07:30:28.006235859 +0000 +Index: systemd-218/units/getty@.service.m4 +=================================================================== +--- systemd-218.orig/units/getty@.service.m4 ++++ systemd-218/units/getty@.service.m4 @@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0 [Service] # the VT is cleared by TTYVTDisallocate @@ -16,13 +26,15 @@ line to give e.g. the bash a few seconds to e.g. safe its history. Type=idle Restart=always RestartSec=0 ---- units/serial-getty@.service.m4 -+++ units/serial-getty@.service.m4 2014-07-15 07:30:01.366235017 +0000 +Index: systemd-218/units/serial-getty@.service.m4 +=================================================================== +--- systemd-218.orig/units/serial-getty@.service.m4 ++++ systemd-218/units/serial-getty@.service.m4 @@ -24,6 +24,7 @@ IgnoreOnIsolate=yes [Service] - ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600 $TERM + ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM +ExecStopPost=-/sbin/vhangup /dev/%I Type=idle Restart=always - RestartSec=0 + UtmpIdentifier=%I diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch index 41a2b6dc..8aec94ac 100644 --- a/watch_resolv.conf_for_become_changed.patch +++ b/watch_resolv.conf_for_become_changed.patch @@ -1,10 +1,12 @@ --- - src/core/manager.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/manager.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/core/manager.h | 5 ++ - 2 files changed, 108 insertions(+) + 2 files changed, 98 insertions(+) ---- src/core/manager.c -+++ src/core/manager.c 2014-11-07 11:12:58.334193988 +0000 +Index: systemd-218/src/core/manager.c +=================================================================== +--- systemd-218.orig/src/core/manager.c ++++ systemd-218/src/core/manager.c @@ -37,6 +37,7 @@ #include #include @@ -13,7 +15,7 @@ #ifdef HAVE_AUDIT #include -@@ -304,6 +305,101 @@ static int manager_check_ask_password(Ma +@@ -302,6 +303,91 @@ static int manager_check_ask_password(Ma return m->have_ask_password; } @@ -35,13 +37,8 @@ + flush_fd(fd); + + m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ -+ if (m->resolv_conf_inotify_fd >= 0) -+ close_nointr_nofail(m->resolv_conf_inotify_fd); -+ m->resolv_conf_inotify_fd = -1; -+ ++ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); + manager_setup_resolv_conf_change(m); -+ + return m->resolv_conf_noent ? 0 : res_init(); +} + @@ -96,10 +93,7 @@ + + return 0; +fail: -+ if (m->resolv_conf_inotify_fd >= 0) -+ close_nointr_nofail(m->resolv_conf_inotify_fd); -+ m->resolv_conf_inotify_fd = -1; -+ ++ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); + return 0; /* Ignore error here */ +} + @@ -107,23 +101,21 @@ + assert(m); + + m->resolv_conf_event_source = sd_event_source_unref(m->resolv_conf_event_source); -+ if (m->resolv_conf_inotify_fd >= 0) -+ close_nointr_nofail(m->resolv_conf_inotify_fd); -+ m->resolv_conf_inotify_fd = -1; ++ m->resolv_conf_inotify_fd = safe_close(m->resolv_conf_inotify_fd); +} + static int manager_watch_idle_pipe(Manager *m) { int r; -@@ -562,6 +658,7 @@ int manager_new(SystemdRunningAs running - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; +@@ -557,6 +643,7 @@ int manager_new(SystemdRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + m->resolv_conf_inotify_fd = -1; m->ask_password_inotify_fd = -1; m->have_ask_password = -EINVAL; /* we don't know */ -@@ -613,6 +710,10 @@ int manager_new(SystemdRunningAs running +@@ -618,6 +705,10 @@ int manager_new(SystemdRunningAs running if (r < 0) goto fail; @@ -134,20 +126,22 @@ m->udev = udev_new(); if (!m->udev) { r = -ENOMEM; -@@ -906,6 +1007,8 @@ void manager_free(Manager *m) { - - assert(m); +@@ -896,6 +987,8 @@ Manager* manager_free(Manager *m) { + if (!m) + return NULL; + manager_shutdown_resolv_conf_change(m); + manager_clear_jobs_and_units(m); for (c = 0; c < _UNIT_TYPE_MAX; c++) ---- src/core/manager.h -+++ src/core/manager.h 2014-11-07 11:06:41.466019636 +0000 -@@ -157,6 +157,11 @@ struct Manager { - FILE *proc_self_mountinfo; - sd_event_source *mount_event_source; +Index: systemd-218/src/core/manager.h +=================================================================== +--- systemd-218.orig/src/core/manager.h ++++ systemd-218/src/core/manager.h +@@ -185,6 +185,11 @@ struct Manager { + int utab_inotify_fd; + sd_event_source *mount_utab_event_source; + /* Watch out any change of /etc/resolv.conf */ + int resolv_conf_inotify_fd; From f08e5a2d6d90a6217b21dd7381f04e2b3776fdb9ce113a03d93347791b13fb08 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 15 Apr 2015 14:21:25 +0000 Subject: [PATCH 213/221] Accepting request 295286 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/295286 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=219 --- systemd-mini.changes | 5 +++++ systemd-mini.spec | 2 +- systemd.changes | 5 +++++ systemd.spec | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index 7a555d36..0ffd755b 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Mar 5 11:36:11 UTC 2015 - jengelh@inai.de + +- Reenable networkd which was silently disabled on Feb 18 + ------------------------------------------------------------------- Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 3399d28d..07b29708 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -23,7 +23,7 @@ %define udevpkgname udev-mini %define udev_major 1 %bcond_without bash_completion -%bcond_with networkd +%bcond_without networkd %bcond_without sysvcompat %bcond_with resolved %bcond_with python diff --git a/systemd.changes b/systemd.changes index 7a555d36..0ffd755b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Mar 5 11:36:11 UTC 2015 - jengelh@inai.de + +- Reenable networkd which was silently disabled on Feb 18 + ------------------------------------------------------------------- Tue Mar 3 16:03:07 UTC 2015 - jengelh@inai.de diff --git a/systemd.spec b/systemd.spec index 7b5b6805..d0ca0a64 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,7 +21,7 @@ %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion -%bcond_with networkd +%bcond_without networkd %bcond_without sysvcompat %bcond_with resolved %bcond_with python From ac1904b70a54f2323f3059f665035f36627332b673281709ee897cd9bc35ca7a Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 30 Apr 2015 09:50:12 +0000 Subject: [PATCH 214/221] Accepting request 304330 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/304330 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=220 --- systemd-mini.changes | 7 ++ systemd-mini.spec | 2 +- systemd.changes | 7 ++ systemd.spec | 2 +- ...addentropy-ioctl-to-load-random-seed.patch | 98 ++++++++++++------- 5 files changed, 81 insertions(+), 35 deletions(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index 0ffd755b..3c1a26a7 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 16 15:35:31 UTC 2015 - werner@suse.de + +- Add upstream patch + 0001-core-don-t-change-removed-devices-to-state-tentative.patch + to fix the fix of the last backport (bsc#921898) + ------------------------------------------------------------------- Thu Mar 5 11:36:11 UTC 2015 - jengelh@inai.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 07b29708..95168d8f 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/systemd.changes b/systemd.changes index 0ffd755b..3c1a26a7 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 16 15:35:31 UTC 2015 - werner@suse.de + +- Add upstream patch + 0001-core-don-t-change-removed-devices-to-state-tentative.patch + to fix the fix of the last backport (bsc#921898) + ------------------------------------------------------------------- Thu Mar 5 11:36:11 UTC 2015 - jengelh@inai.de diff --git a/systemd.spec b/systemd.spec index d0ca0a64..76876ece 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/use-rndaddentropy-ioctl-to-load-random-seed.patch b/use-rndaddentropy-ioctl-to-load-random-seed.patch index 20cfbcbe..a91b3701 100644 --- a/use-rndaddentropy-ioctl-to-load-random-seed.patch +++ b/use-rndaddentropy-ioctl-to-load-random-seed.patch @@ -5,13 +5,11 @@ write back the bytes and increase the entropy bit counter. Related to bnc#892096 --- - src/random-seed/random-seed.c | 65 +++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 61 insertions(+), 4 deletions(-) + systemd-219/src/random-seed/random-seed.c | 71 +++++++++++++++++++++++++----- + 1 file changed, 61 insertions(+), 10 deletions(-) -Index: systemd-218/src/random-seed/random-seed.c -=================================================================== ---- systemd-218.orig/src/random-seed/random-seed.c -+++ systemd-218/src/random-seed/random-seed.c +--- systemd-219/src/random-seed/random-seed.c ++++ systemd-219/src/random-seed/random-seed.c 2015-04-21 09:39:03.057518051 +0000 @@ -22,7 +22,9 @@ #include #include @@ -22,31 +20,46 @@ Index: systemd-218/src/random-seed/random-seed.c #include #include "log.h" -@@ -32,8 +34,9 @@ +@@ -32,8 +34,8 @@ #define POOL_SIZE_MIN 512 int main(int argc, char *argv[]) { - _cleanup_close_ int seed_fd = -1, random_fd = -1; +- _cleanup_free_ void* buf = NULL; + _cleanup_close_ int seed_fd = -1, random_fd = -1, entropy_fd = -1; - _cleanup_free_ void* buf = NULL; -+ size_t entropy_count = 0; ++ _cleanup_free_ struct rand_pool_info *entropy = NULL; size_t buf_size = 0; ssize_t k; int r; -@@ -82,6 +85,23 @@ int main(int argc, char *argv[]) { +@@ -65,11 +67,12 @@ int main(int argc, char *argv[]) { + if (buf_size <= POOL_SIZE_MIN) + buf_size = POOL_SIZE_MIN; + +- buf = malloc(buf_size); +- if (!buf) { ++ entropy = (struct rand_pool_info*) malloc(sizeof(struct rand_pool_info) + buf_size); ++ if (!entropy) { + r = log_oom(); + goto finish; + } ++ entropy->buf_size = buf_size; + + r = mkdir_parents_label(RANDOM_SEED, 0755); + if (r < 0) { +@@ -83,6 +86,23 @@ int main(int argc, char *argv[]) { if (streq(argv[1], "load")) { + entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); + if (entropy_fd < 0) { -+ entropy_count = 0; ++ entropy->entropy_count = 0; + if (errno != ENOENT) { + log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); + r = -errno; + goto finish; + } + } else { -+ r = read(entropy_fd, &entropy_count, sizeof(entropy_count)); ++ r = read(entropy_fd, &entropy->entropy_count, sizeof(entropy->entropy_count)); + if (r < 0) { + log_error("Failed to read entropy count file: %m"); + r = -errno; @@ -57,56 +70,60 @@ Index: systemd-218/src/random-seed/random-seed.c seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -113,12 +133,34 @@ int main(int argc, char *argv[]) { +@@ -104,7 +124,7 @@ int main(int argc, char *argv[]) { + } + } + +- k = loop_read(seed_fd, buf, buf_size, false); ++ k = loop_read(seed_fd, entropy->buf, entropy->buf_size, false); + if (k <= 0) { + + if (r != 0) +@@ -115,13 +135,29 @@ int main(int argc, char *argv[]) { } else { lseek(seed_fd, 0, SEEK_SET); - r = loop_write(random_fd, buf, (size_t) k, false); - if (r < 0) - log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); -+ if (entropy_count && (size_t) k == buf_size) { -+ struct rand_pool_info entropy = { -+ .entropy_count = entropy_count, -+ .buf_size = buf_size, -+ }; -+ entropy.buf[0] = ((__u32*)buf)[0]; -+ r = ioctl(random_fd, RNDADDENTROPY, &entropy); ++ if (entropy->entropy_count && ((size_t)k) == entropy->buf_size) { ++ r = ioctl(random_fd, RNDADDENTROPY, entropy); + if (r < 0) { -+ log_error("Failed to write seed to /dev/urandom: %m"); ++ log_error_errno(errno, "Failed to write seed to /dev/urandom: %m"); + r = -errno; + } + } else { -+ k = loop_write(random_fd, buf, (size_t) k, false); -+ if (k <= 0) { -+ log_error("Failed to write seed to /dev/urandom: %s", r < 0 ? strerror(-r) : "short write"); -+ r = k == 0 ? -EIO : (int) k; -+ } -+ } ++ r = loop_write(random_fd, entropy->buf, (size_t) k, false); ++ if (r < 0) ++ log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); ++ } } } else if (streq(argv[1], "save")) { + + /* Read available entropy count, if possible */ + f = fopen("/proc/sys/kernel/random/entropy_avail", "re"); + if (f) { -+ if (fscanf(f, "%zu", &entropy_count) < 0) -+ entropy_count = 0; ++ if (fscanf(f, "%d", &entropy->entropy_count) < 0) ++ entropy->entropy_count = 0; + fclose(f); + } - ++ seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { -@@ -134,6 +176,21 @@ int main(int argc, char *argv[]) { + log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m"); +@@ -136,6 +172,21 @@ int main(int argc, char *argv[]) { goto finish; } -+ if (entropy_count) { ++ if (entropy->entropy_count) { + entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); + if (seed_fd < 0) { + log_error("Failed to open " RANDOM_SEED_DIR "entropy_count: %m"); + r = -errno; + goto finish; + } -+ r = write(entropy_fd, &entropy_count, sizeof(entropy_count)); ++ r = write(entropy_fd, &entropy->entropy_count, sizeof(entropy->entropy_count)); + if (r < 0) { + log_error("Failed to write entropy count file: %m"); + r = -errno; @@ -117,3 +134,18 @@ Index: systemd-218/src/random-seed/random-seed.c } else { log_error("Unknown verb %s.", argv[1]); r = -EINVAL; +@@ -149,12 +200,12 @@ int main(int argc, char *argv[]) { + fchmod(seed_fd, 0600); + fchown(seed_fd, 0, 0); + +- k = loop_read(random_fd, buf, buf_size, false); ++ k = loop_read(random_fd, entropy->buf, entropy->buf_size, false); + if (k <= 0) { + log_error("Failed to read new seed from /dev/urandom: %s", r < 0 ? strerror(-r) : "EOF"); + r = k == 0 ? -EIO : (int) k; + } else { +- r = loop_write(seed_fd, buf, (size_t) k, false); ++ r = loop_write(seed_fd, entropy->buf, (size_t) k, false); + if (r < 0) + log_error_errno(r, "Failed to write new random seed file: %m"); + } From acb10341e627c2e707bb09508af338ff8f8b83bdef36d83615dad7360c861f49 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 12 Jun 2015 18:24:37 +0000 Subject: [PATCH 215/221] Accepting request 311646 from Base:System - Remove libudev0 from baselibs.conf - Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch as now upstream code - Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix bsc#933365 and boo#934077 - Add 1098-systemd-networkd-alias-network-service.patch to alias network.service the same way NetworkManager and wicked does. This is needed by yast2 and other parts of the system. boo#933092 - Modify patch 1021-udev-re-add-persistent-net-rules.patch to use the new return values of proc_cmdline() in enable_name_policy() this should fix boo#931165 - Drop 1021-udev-re-add-persistent-net-rules.patch, 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, 1046-fix-duplicated-rules-with-layer3-interfaces.patch, 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, 1051-check-if-NAME-has-a-value.patch, 1053-better-checks-in-write_net_rules.patch, 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. 1021 originally broke parsing of net.ifnames=0 [bnc#931165], and given that neither the kernel command line needs to be touched nor the source be patched to reach the unpredictable naming setup for SLE, all these parts are moved to a separate package. OBS-URL: https://build.opensuse.org/request/show/311646 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=221 --- ...some-boolean-survive-a-daemon-reload.patch | 69 +++ 1021-udev-re-add-persistent-net-rules.patch | 547 ------------------ ...-usage-of-dev_id-in-persistent-rules.patch | 14 - ...id-conditionally-in-persistent-rules.patch | 16 - ...licated-rules-with-layer3-interfaces.patch | 16 - ...VF-devices-when-name-starts-with-eth.patch | 12 - 1051-check-if-NAME-has-a-value.patch | 12 - 1053-better-checks-in-write_net_rules.patch | 29 - ...aa13539ed2cd4b31972cd30f678543-apply.patch | 26 - ...aming-of-virtual-interfaces-in-guest.patch | 11 - ...stemd-networkd-alias-network-service.patch | 10 + baselibs.conf | 1 - systemd-mini.changes | 51 +- systemd-mini.spec | 43 +- systemd.changes | 51 +- systemd.spec | 43 +- 16 files changed, 187 insertions(+), 764 deletions(-) create mode 100644 0001-Let-some-boolean-survive-a-daemon-reload.patch delete mode 100644 1021-udev-re-add-persistent-net-rules.patch delete mode 100644 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch delete mode 100644 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch delete mode 100644 1046-fix-duplicated-rules-with-layer3-interfaces.patch delete mode 100644 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch delete mode 100644 1051-check-if-NAME-has-a-value.patch delete mode 100644 1053-better-checks-in-write_net_rules.patch delete mode 100644 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch delete mode 100644 1088-drop-renaming-of-virtual-interfaces-in-guest.patch create mode 100644 1098-systemd-networkd-alias-network-service.patch diff --git a/0001-Let-some-boolean-survive-a-daemon-reload.patch b/0001-Let-some-boolean-survive-a-daemon-reload.patch new file mode 100644 index 00000000..6e7b7fb9 --- /dev/null +++ b/0001-Let-some-boolean-survive-a-daemon-reload.patch @@ -0,0 +1,69 @@ +Based on deff2d3e18e831d63bf98dd4114e4e35e41966e8 Mon Sep 17 00:00:00 2001 +From: Werner Fink +Date: Wed, 10 Jun 2015 10:47:13 +0200 +Subject: [PATCH] Let some boolean survive a daemon-reload + +Without the boolean bus_name_good services as well as cgroup_realized +for units a unit of Type=dbus and ExecReload sending SIGHUP to $MAINPID +will be terminated if systemd will be daemon reloaded. + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746151 +https://bugs.freedesktop.org/show_bug.cgi?id=78311 +https://bugzilla.opensuse.org/show_bug.cgi?id=934077 +--- + src/core/service.c | 9 +++++++++ + src/core/unit.c | 11 +++++++++++ + 2 files changed, 20 insertions(+) + +--- systemd-219/src/core/service.c ++++ systemd-219/src/core/service.c 2015-06-11 12:24:36.769519910 +0000 +@@ -1920,6 +1920,7 @@ static int service_serialize(Unit *u, FI + unit_serialize_item_format(u, f, "main-pid", PID_FMT, s->main_pid); + + unit_serialize_item(u, f, "main-pid-known", yes_no(s->main_pid_known)); ++ unit_serialize_item(u, f, "bus-name-good", yes_no(s->bus_name_good)); + + if (s->status_text) + unit_serialize_item(u, f, "status-text", s->status_text); +@@ -2044,6 +2045,14 @@ static int service_deserialize_item(Unit + log_unit_debug(u->id, "Failed to parse main-pid-known value %s", value); + else + s->main_pid_known = b; ++ } else if (streq(key, "bus-name-good")) { ++ int b; ++ ++ b = parse_boolean(value); ++ if (b < 0) ++ log_unit_debug(u->id, "Failed to parse bus-name-good value %s", value); ++ else ++ s->bus_name_good = b; + } else if (streq(key, "status-text")) { + char *t; + +--- systemd-219/src/core/unit.c ++++ systemd-219/src/core/unit.c 2015-06-11 12:30:56.805519155 +0000 +@@ -2612,6 +2612,7 @@ int unit_serialize(Unit *u, FILE *f, FDS + + if (u->cgroup_path) + unit_serialize_item(u, f, "cgroup", u->cgroup_path); ++ unit_serialize_item(u, f, "cgroup-realized", yes_no(u->cgroup_realized)); + + if (serialize_jobs) { + if (u->job) { +@@ -2803,6 +2804,16 @@ int unit_deserialize(Unit *u, FILE *f, F + assert(hashmap_put(u->manager->cgroup_unit, s, u) == 1); + + continue; ++ } else if (streq(l, "cgroup-realized")) { ++ int b; ++ ++ b = parse_boolean(v); ++ if (b < 0) ++ log_debug("Failed to parse cgroup-realized bool %s", v); ++ else ++ u->cgroup_realized = b; ++ ++ continue; + } + + if (unit_can_serialize(u)) { diff --git a/1021-udev-re-add-persistent-net-rules.patch b/1021-udev-re-add-persistent-net-rules.patch deleted file mode 100644 index 5d21f1fe..00000000 --- a/1021-udev-re-add-persistent-net-rules.patch +++ /dev/null @@ -1,547 +0,0 @@ ---- - Makefile.am | 9 - src/udev/net/link-config.c | 17 + - src/udev/rule_generator/75-persistent-net-generator.rules | 105 ++++++++++ - src/udev/rule_generator/76-net-sriov-names.rules | 18 + - src/udev/rule_generator/net-set-sriov-names | 79 +++++++ - src/udev/rule_generator/rule_generator.functions | 113 +++++++++++ - src/udev/rule_generator/write_net_rules | 141 ++++++++++++++ - 7 files changed, 479 insertions(+), 3 deletions(-) - -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -3416,7 +3416,14 @@ dist_udevrules_DATA += \ - rules/75-tty-description.rules \ - rules/78-sound-card.rules \ - rules/80-net-setup-link.rules \ -- rules/95-udev-late.rules -+ rules/95-udev-late.rules \ -+ src/udev/rule_generator/75-persistent-net-generator.rules \ -+ src/udev/rule_generator/76-net-sriov-names.rules -+ -+udevlibexec_PROGRAMS += \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules \ -+ src/udev/rule_generator/net-set-sriov-names - - nodist_udevrules_DATA += \ - rules/99-systemd.rules -Index: systemd-218/src/udev/net/link-config.c -=================================================================== ---- systemd-218.orig/src/udev/net/link-config.c -+++ systemd-218/src/udev/net/link-config.c -@@ -176,16 +176,29 @@ static bool enable_name_policy(void) { - size_t l; - - r = proc_cmdline(&line); -- if (r < 0) { -+ if (r < 0) - log_warning_errno(r, "Failed to read /proc/cmdline, ignoring: %m"); -+#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) -+# warning Using persistent rules as a default -+ if (r <= 0) -+ return false; -+ -+ FOREACH_WORD_QUOTED(w, l, line, state) -+ if (strneq(w, "net.ifnames=1", l)) -+ return true; -+ -+ return false; -+#else -+# warning Using predictable rules as a default -+ if (r <= 0) - return true; -- } - - FOREACH_WORD_QUOTED(word, l, line, state) - if (strneq(word, "net.ifnames=0", l)) - return false; - - return true; -+#endif - } - - int link_config_load(link_config_ctx *ctx) { -Index: systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -0,0 +1,105 @@ -+# do not edit this file, it will be overwritten on update -+ -+# these rules generate rules for persistent network device naming -+# -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+ACTION!="add", GOTO="persistent_net_generator_end" -+SUBSYSTEM!="net", GOTO="persistent_net_generator_end" -+ -+# ignore the interface if a name has already been set -+NAME=="?*", GOTO="persistent_net_generator_end" -+ -+# device name whitelist -+KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="persistent_net_generator_end" -+ -+# ignore Xen virtual interfaces -+SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" -+ -+# read MAC address -+ENV{MATCHADDR}="$attr{address}" -+ -+# match interface type -+ENV{MATCHIFTYPE}="$attr{type}" -+ -+# ignore KVM virtual interfaces -+ENV{MATCHADDR}=="52:54:00:*", GOTO="persistent_net_generator_end" -+# ignore VMWare virtual interfaces -+ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", GOTO="persistent_net_generator_end" -+# ignore Hyper-V virtual interfaces -+ENV{MATCHADDR}=="00:15:5d:*", GOTO="persistent_net_generator_end" -+ -+# These vendors are known to violate the local MAC address assignment scheme -+# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom -+ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" -+# 3Com -+ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" -+# 3Com IBM PC; Imagen; Valid; Cisco; Apple -+ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" -+# Intel -+ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" -+# Olivetti -+ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" -+# CMC Masscomp; Silicon Graphics; Prime EXL -+ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" -+# Prominet Corporation Gigabit Ethernet Switch -+ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" -+# BTI (Bus-Tech, Inc.) IBM Mainframes -+ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" -+# Realtek -+ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist" -+# Novell 2000 -+ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" -+# Realtec -+ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" -+# Kingston Technologies -+ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" -+# Xensource -+ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" -+ -+# match interface dev_id -+ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+ -+# do not use "locally administered" MAC address -+ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" -+ -+# do not use empty address -+ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" -+ -+LABEL="globally_administered_whitelist" -+ -+# build comment line for generated rule: -+SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" -+SUBSYSTEMS=="usb", ATTRS{idVendor}=="?*", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" -+SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" -+SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" -+ -+# ibmveth likes to use "locally administered" MAC addresses -+DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" -+ -+# S/390 uses id matches only, do not use MAC address match -+SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" -+ -+# see if we got enough data to create a rule -+ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" -+ -+# default comment -+ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" -+ -+# write rule -+DRIVERS=="?*", IMPORT{program}="write_net_rules" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ -+LABEL="persistent_net_generator_end" -Index: systemd-218/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/76-net-sriov-names.rules -@@ -0,0 +1,18 @@ -+# do not edit this file, it will be overwritten on update -+# -+# rename SRIOV virtual function interfaces -+ -+ACTION=="remove", GOTO="net-sriov-names_end" -+SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" -+ -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" -+ -+LABEL="net-sriov-names_end" -Index: systemd-218/src/udev/rule_generator/net-set-sriov-names -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/net-set-sriov-names -@@ -0,0 +1,79 @@ -+#!/bin/bash -e -+# -+# This script is run to rename virtual interfaces -+# -+ -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+# according to dev_new_index(), ifindex is within [1, INT_MAX] -+int_max=$(/usr/bin/getconf INT_MAX) -+ifindex_before() { -+ a=$1 -+ b=$2 -+ -+ ((0 < (b - a) && (b - a) < int_max / 2 || -+ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) -+} -+ -+rename_interface() { -+ local src_net=$1 -+ local dest_net=$2 -+ local err=0 -+ -+ /sbin/ip link set dev $src_net down -+ /sbin/ip link set dev $src_net name $dest_net -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then -+ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") -+ if [ $(echo "$pf" | wc -l) -ne 1 ]; then -+ echo "too many pf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$INTERFACE/ifindex" -+ read pfindex < "/sys/class/net/$pf/ifindex" -+ if ifindex_before $pfindex $vfindex; then -+ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) -+ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do -+ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ echo "INTERFACE_NEW=$pf.vf$vfnum" -+ exit 0 -+ fi -+ done -+ fi -+fi -+ -+read pfindex < "/sys/class/net/$INTERFACE/ifindex" -+shopt -s nullglob -+for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do -+ vf=$(ls -1 "$virtfn/net") -+ if [ $(echo "$vf" | wc -l) -ne 1 ]; then -+ echo "too many vf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$vf/ifindex" -+ if ifindex_before $vfindex $pfindex; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ if [ "$INTERFACE_NEW" ]; then -+ new_name=$INTERFACE_NEW -+ else -+ new_name=$INTERFACE -+ fi -+ new_name="$new_name.vf$vfnum" -+ if [ "$vf" != "$new_name" ]; then -+ rename_interface "$vf" "$new_name" -+ fi -+ fi -+done -Index: systemd-218/src/udev/rule_generator/rule_generator.functions -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/rule_generator.functions -@@ -0,0 +1,113 @@ -+# functions used by the udev rule generator -+ -+# Copyright (C) 2006 Marco d'Itri -+ -+# 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. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+PATH='/usr/bin:/bin:/usr/sbin:/sbin' -+ -+# Read a single line from file $1 in the $DEVPATH directory. -+# The function must not return an error even if the file does not exist. -+sysread() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ local value -+ read value < "/sys$DEVPATH/$file" || return 0 -+ echo "$value" -+} -+ -+sysreadlink() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ readlink -f /sys$DEVPATH/$file 2> /dev/null || true -+} -+ -+# Return true if a directory is writeable. -+writeable() { -+ if ln -s test-link $1/.is-writeable 2> /dev/null; then -+ rm -f $1/.is-writeable -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+# Create a lock file for the current rules file. -+lock_rules_file() { -+ RUNDIR="/run/udev" -+ [ -e "$RUNDIR" ] || return 0 -+ -+ RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" -+ -+ retry=30 -+ while ! mkdir $RULES_LOCK 2> /dev/null; do -+ if [ $retry -eq 0 ]; then -+ echo "Cannot lock $RULES_FILE!" >&2 -+ exit 2 -+ fi -+ sleep 1 -+ retry=$(($retry - 1)) -+ done -+} -+ -+unlock_rules_file() { -+ [ "$RULES_LOCK" ] || return 0 -+ rmdir $RULES_LOCK || true -+} -+ -+# Choose the real rules file if it is writeable or a temporary file if not. -+# Both files should be checked later when looking for existing rules. -+choose_rules_file() { -+ RUNDIR="/run/udev" -+ local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" -+ [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 -+ -+ if writeable ${RULES_FILE%/*}; then -+ RO_RULES_FILE='/dev/null' -+ else -+ RO_RULES_FILE=$RULES_FILE -+ RULES_FILE=$tmp_rules_file -+ fi -+} -+ -+# Return the name of the first free device. -+raw_find_next_available() { -+ local links="$1" -+ -+ local basename=${links%%[ 0-9]*} -+ local max=-1 -+ for name in $links; do -+ local num=${name#$basename} -+ [ "$num" ] || num=0 -+ [ $num -gt $max ] && max=$num -+ done -+ -+ local max=$(($max + 1)) -+ # "name0" actually is just "name" -+ [ $max -eq 0 ] && return -+ echo "$max" -+} -+ -+# Find all rules matching a key (with action) and a pattern. -+find_all_rules() { -+ local key="$1" -+ local linkre="$2" -+ local match="$3" -+ -+ local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' -+ echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ -+ $RO_RULES_FILE \ -+ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ -+ 2>/dev/null) -+} -Index: systemd-218/src/udev/rule_generator/write_net_rules -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/write_net_rules -@@ -0,0 +1,141 @@ -+#!/bin/sh -e -+ -+# This script is run to create persistent network device naming rules -+# based on properties of the device. -+# If the interface needs to be renamed, INTERFACE_NEW= will be printed -+# on stdout to allow udev to IMPORT it. -+ -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDEVID dev_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+# Copyright (C) 2006 Marco d'Itri -+# Copyright (C) 2007 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. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+# debug, if UDEV_LOG= -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' -+ -+. /usr/lib/udev/rule_generator.functions -+ -+interface_name_taken() { -+ local value="$(find_all_rules 'NAME=' $INTERFACE)" -+ if [ "$value" ]; then -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+find_next_available() { -+ raw_find_next_available "$(find_all_rules 'NAME=' "$1")" -+} -+ -+write_rule() { -+ local match="$1" -+ local name="$2" -+ local comment="$3" -+ -+ { -+ if [ "$PRINT_HEADER" ]; then -+ PRINT_HEADER= -+ echo "# This file was automatically generated by the $0" -+ echo "# program, run by the persistent-net-generator.rules rules file." -+ echo "#" -+ echo "# You can modify it, as long as you keep each rule on a single" -+ echo "# line, and change only the value of the NAME= key." -+ fi -+ -+ echo "" -+ [ "$comment" ] && echo "# $comment" -+ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" -+ } >> $RULES_FILE -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+# Prevent concurrent processes from modifying the file at the same time. -+lock_rules_file -+ -+# Check if the rules file is writeable. -+choose_rules_file -+ -+# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces -+if [ "$MATCHADDR" ]; then -+ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" -+fi -+ -+if [ "$MATCHDRV" ]; then -+ match="$match, DRIVERS==\"$MATCHDRV\"" -+fi -+ -+if [ "$MATCHDEVID" ]; then -+ match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" -+fi -+ -+if [ "$MATCHID" ]; then -+ match="$match, KERNELS==\"$MATCHID\"" -+fi -+ -+if [ "$MATCHIFTYPE" ]; then -+ match="$match, ATTR{type}==\"$MATCHIFTYPE\"" -+fi -+ -+if [ -z "$match" ]; then -+ echo "missing valid match" >&2 -+ unlock_rules_file -+ exit 1 -+fi -+ -+basename=${INTERFACE%%[0-9]*} -+match="$match, KERNEL==\"$basename*\"" -+ -+if [ "$INTERFACE_NAME" ]; then -+ # external tools may request a custom name -+ COMMENT="$COMMENT (custom name provided by external tool)" -+ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then -+ INTERFACE=$INTERFACE_NAME; -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+else -+ # if a rule using the current name already exists, find a new name -+ if interface_name_taken; then -+ INTERFACE="$basename$(find_next_available "$basename[0-9]*")" -+ # prevent INTERFACE from being "eth" instead of "eth0" -+ [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+fi -+ -+write_rule "$match" "$INTERFACE" "$COMMENT" -+ -+unlock_rules_file -+ -+exit 0 diff --git a/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch b/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch deleted file mode 100644 index d26c49c0..00000000 --- a/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/75-persistent-net-generator.rules -+++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -68,7 +68,8 @@ ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="glob - ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" - - # match interface dev_id --ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+# disable due to bnc#882714 -+# ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" - - # do not use "locally administered" MAC address - ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" diff --git a/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch b/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch deleted file mode 100644 index e203d8d3..00000000 --- a/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/75-persistent-net-generator.rules -+++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -68,8 +68,9 @@ ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="glob - ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" - - # match interface dev_id --# disable due to bnc#882714 --# ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+# HACK: for s390x, if layer2 == 0, dont use dev_id -+ENV{LAYER2}="1", TEST=="device/layer2", ENV{LAYER2}="$attr{device/layer2}" -+ENV{LAYER2}!="0", ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" - - # do not use "locally administered" MAC address - ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" diff --git a/1046-fix-duplicated-rules-with-layer3-interfaces.patch b/1046-fix-duplicated-rules-with-layer3-interfaces.patch deleted file mode 100644 index 47445a83..00000000 --- a/1046-fix-duplicated-rules-with-layer3-interfaces.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/write_net_rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/write_net_rules -+++ systemd-210/src/udev/rule_generator/write_net_rules -@@ -101,6 +101,11 @@ if [ "$MATCHDEVID" ]; then - fi - - if [ "$MATCHID" ]; then -+ ID="$(find_all_rules 'KERNELS==' "$MATCHID")" -+ if [ "$ID" == "$MATCHID" ]; then -+ unlock_rules_file -+ exit 0 -+ fi - match="$match, KERNELS==\"$MATCHID\"" - fi - diff --git a/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch b/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch deleted file mode 100644 index 5a89f11c..00000000 --- a/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -4,6 +4,7 @@ - - ACTION=="remove", GOTO="net-sriov-names_end" - SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+KERNEL!="eth*", GOTO="net-sriov-names_end" - - IMPORT{cmdline}="net.ifnames" - ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" diff --git a/1051-check-if-NAME-has-a-value.patch b/1051-check-if-NAME-has-a-value.patch deleted file mode 100644 index 3ea5f800..00000000 --- a/1051-check-if-NAME-has-a-value.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -5,6 +5,7 @@ - ACTION=="remove", GOTO="net-sriov-names_end" - SUBSYSTEM!="net", GOTO="net-sriov-names_end" - KERNEL!="eth*", GOTO="net-sriov-names_end" -+NAME=="?*", GOTO="net-sriov-names_end" - - IMPORT{cmdline}="net.ifnames" - ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" diff --git a/1053-better-checks-in-write_net_rules.patch b/1053-better-checks-in-write_net_rules.patch deleted file mode 100644 index 5fa8076d..00000000 --- a/1053-better-checks-in-write_net_rules.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/write_net_rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/write_net_rules -+++ systemd-210/src/udev/rule_generator/write_net_rules -@@ -89,6 +89,12 @@ choose_rules_file - - # the DRIVERS key is needed to not match bridges and VLAN sub-interfaces - if [ "$MATCHADDR" ]; then -+ # Check if MACADDR doesn't exist already in the generated rules -+ MAC="$(/usr/bin/grep -w -o -C1 -m1 "$MATCHADDR" "$RULES_FILE" 2>/dev/null || true)" -+ if [ "$MAC" = "$MATCHADDR" ]; then -+ unlock_rules_file -+ exit 0 -+ fi - match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" - fi - -@@ -101,8 +107,9 @@ if [ "$MATCHDEVID" ]; then - fi - - if [ "$MATCHID" ]; then -- ID="$(find_all_rules 'KERNELS==' "$MATCHID")" -- if [ "$ID" == "$MATCHID" ]; then -+ # Check if KERNEL doesn't exist already in the generated rules -+ KERNEL="$(find_all_rules 'KERNELS==' "$MATCHID")" -+ if [ "$KERNEL" = "$MATCHID" ]; then - unlock_rules_file - exit 0 - fi diff --git a/1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch b/1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch deleted file mode 100644 index 8a108af0..00000000 --- a/1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch +++ /dev/null @@ -1,26 +0,0 @@ -Exist only to be able to apply the patch -1056-udevd-add-event-timeout-commandline-option.patch -without the BLKRRPART ioctl patches. - ---- systemd-210/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c 2014-07-30 11:52:34.318235685 +0000 -@@ -1311,16 +1311,16 @@ int main(int argc, char *argv[]) - if (worker->state != WORKER_RUNNING) - continue; - -- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) { -+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) { - log_error("worker [%u] %s timeout; kill it", worker->pid, - worker->event ? worker->event->devpath : ""); - kill(worker->pid, SIGKILL); - worker->state = WORKER_KILLED; -+ - /* drop reference taken for state 'running' */ - worker_unref(worker); - if (worker->event) { -- log_error("seq %llu '%s' killed", -- udev_device_get_seqnum(worker->event->dev), worker->event->devpath); -+ 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; diff --git a/1088-drop-renaming-of-virtual-interfaces-in-guest.patch b/1088-drop-renaming-of-virtual-interfaces-in-guest.patch deleted file mode 100644 index a25861cd..00000000 --- a/1088-drop-renaming-of-virtual-interfaces-in-guest.patch +++ /dev/null @@ -1,11 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -15,6 +15,5 @@ SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACT - - # rename interface if needed - ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" --ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" - - LABEL="net-sriov-names_end" diff --git a/1098-systemd-networkd-alias-network-service.patch b/1098-systemd-networkd-alias-network-service.patch new file mode 100644 index 00000000..92afb327 --- /dev/null +++ b/1098-systemd-networkd-alias-network-service.patch @@ -0,0 +1,10 @@ +Index: systemd-219/units/systemd-networkd.service.in +=================================================================== +--- systemd-219.orig/units/systemd-networkd.service.in ++++ systemd-219/units/systemd-networkd.service.in +@@ -29,4 +29,5 @@ WatchdogSec=1min + + [Install] + WantedBy=multi-user.target ++Alias=network.service + Also=systemd-networkd.socket diff --git a/baselibs.conf b/baselibs.conf index 2738ae81..7ed6abac 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -5,7 +5,6 @@ systemd # postun "if [ "$1" == "0" ]; then" # postun "%{_sbindir}/pam-config -d --systemd || :" # postun "fi" -libudev0 libgudev-1_0-0 libudev1 nss-myhostname diff --git a/systemd-mini.changes b/systemd-mini.changes index 3c1a26a7..a469ea14 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de + +- Remove libudev0 from baselibs.conf + +------------------------------------------------------------------- +Thu Jun 11 12:12:58 UTC 2015 - werner@suse.de + +- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch + as now upstream code +- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix + bsc#933365 and boo#934077 + +------------------------------------------------------------------- +Tue Jun 2 13:33:24 UTC 2015 - pwieczorkiewicz@suse.com + +- Add 1098-systemd-networkd-alias-network-service.patch to alias + network.service the same way NetworkManager and wicked does. + This is needed by yast2 and other parts of the system. boo#933092 + +------------------------------------------------------------------- +Mon May 18 14:39:47 UTC 2015 - werner@suse.de + +- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use + the new return values of proc_cmdline() in enable_name_policy() + this should fix boo#931165 + +------------------------------------------------------------------- +Mon May 18 12:25:54 UTC 2015 - jengelh@inai.de + +- Drop 1021-udev-re-add-persistent-net-rules.patch, + 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, + 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, + 1046-fix-duplicated-rules-with-layer3-interfaces.patch, + 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, + 1051-check-if-NAME-has-a-value.patch, + 1053-better-checks-in-write_net_rules.patch, + 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. + 1021 originally broke parsing of net.ifnames=0 [bnc#931165], + and given that neither the kernel command line needs to be + touched nor the source be patched to reach the unpredictable + naming setup for SLE, all these parts are moved to a separate + package. + ------------------------------------------------------------------- Mon Mar 16 15:35:31 UTC 2015 - werner@suse.de @@ -1524,7 +1568,7 @@ Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch 0007-service-flush-status-text-and-errno-values-each-time.patch ------------------------------------------------------------------- +------------------------------------------------------------------- Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de - Add upstream patch @@ -2366,7 +2410,7 @@ Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de make sure that systemd can talk with dbus-daemon even on big endian systems (bnc#866732) ------------------------------------------------------------------ +------------------------------------------------------------------- Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com - Due to previous reason, resurrect systemd-dbus-system-bus-address.patch @@ -2374,7 +2418,7 @@ Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com needed for quering default DBus directories, which we nowpass to configure. This also unbreaks libdbus <-> systemd-miniBuild Cycle ------------------------------------------------------------------ +------------------------------------------------------------------- Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de - Add or port upstream bugfix patches: @@ -2858,6 +2902,7 @@ Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de unmounted before the interface is down (bnc#861489) +------------------------------------------------------------------- +------------------------------------------------------------------- Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de - enable compat-libs, BuildRequires binutils-gold diff --git a/systemd-mini.spec b/systemd-mini.spec index 95168d8f..88c4728f 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -254,6 +254,8 @@ Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch Patch522: 0001-core-rework-device-state-logic.patch +# PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM +Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch # UDEV PATCHES # ============ @@ -281,40 +283,24 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch -Patch1021: 1021-udev-re-add-persistent-net-rules.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch -Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) -Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) -Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) -Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch -# PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) -Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) -Patch1053: 1053-better-checks-in-write_net_rules.patch -# PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch -Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.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-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) -Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch +# PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch +Patch1098: 1098-systemd-networkd-alias-network-service.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -622,6 +608,7 @@ cp %{SOURCE7} m4/ %patch520 -p1 %patch521 -p1 %patch522 -p1 +%patch523 -p1 # udev patches %patch1001 -p1 @@ -633,28 +620,17 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1021 -p1 %patch1035 -p1 -%patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1040 -p1 -%patch1046 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1053 -p1 -%if %{with blkrrpart} -%else -%patch1055 -p1 -%endif %patch1060 -p1 %patch1062 -p1 %patch1066 -p1 -%patch1088 -p1 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 +%patch1098 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -724,10 +700,6 @@ export LDFLAGS CFLAGS="$CFLAGS -DNET_IFNAMES=1" %else CFLAGS="$CFLAGS -DNET_IFNAMES=0" - for rules in 75-persistent-net-generator 76-net-sriov-names - do - sed -ri '/^ENV\{net.ifnames\}=="1", GOTO="[^"]*"$/{ s/=="1"/!="0"/ }' src/udev/rule_generator/${rules}.rules - done %endif cflags -pipe CFLAGS cflags -Wl,-O2 LDFLAGS @@ -1491,10 +1463,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/udev-generate-persistent-rule -%{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs -%{_prefix}/lib/udev/rule_generator.functions -%{_prefix}/lib/udev/write_net_rules %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules diff --git a/systemd.changes b/systemd.changes index 3c1a26a7..a469ea14 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de + +- Remove libudev0 from baselibs.conf + +------------------------------------------------------------------- +Thu Jun 11 12:12:58 UTC 2015 - werner@suse.de + +- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch + as now upstream code +- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix + bsc#933365 and boo#934077 + +------------------------------------------------------------------- +Tue Jun 2 13:33:24 UTC 2015 - pwieczorkiewicz@suse.com + +- Add 1098-systemd-networkd-alias-network-service.patch to alias + network.service the same way NetworkManager and wicked does. + This is needed by yast2 and other parts of the system. boo#933092 + +------------------------------------------------------------------- +Mon May 18 14:39:47 UTC 2015 - werner@suse.de + +- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use + the new return values of proc_cmdline() in enable_name_policy() + this should fix boo#931165 + +------------------------------------------------------------------- +Mon May 18 12:25:54 UTC 2015 - jengelh@inai.de + +- Drop 1021-udev-re-add-persistent-net-rules.patch, + 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, + 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, + 1046-fix-duplicated-rules-with-layer3-interfaces.patch, + 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, + 1051-check-if-NAME-has-a-value.patch, + 1053-better-checks-in-write_net_rules.patch, + 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. + 1021 originally broke parsing of net.ifnames=0 [bnc#931165], + and given that neither the kernel command line needs to be + touched nor the source be patched to reach the unpredictable + naming setup for SLE, all these parts are moved to a separate + package. + ------------------------------------------------------------------- Mon Mar 16 15:35:31 UTC 2015 - werner@suse.de @@ -1524,7 +1568,7 @@ Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de 0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch 0007-service-flush-status-text-and-errno-values-each-time.patch ------------------------------------------------------------------- +------------------------------------------------------------------- Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de - Add upstream patch @@ -2366,7 +2410,7 @@ Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de make sure that systemd can talk with dbus-daemon even on big endian systems (bnc#866732) ------------------------------------------------------------------ +------------------------------------------------------------------- Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com - Due to previous reason, resurrect systemd-dbus-system-bus-address.patch @@ -2374,7 +2418,7 @@ Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com needed for quering default DBus directories, which we nowpass to configure. This also unbreaks libdbus <-> systemd-miniBuild Cycle ------------------------------------------------------------------ +------------------------------------------------------------------- Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de - Add or port upstream bugfix patches: @@ -2858,6 +2902,7 @@ Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de unmounted before the interface is down (bnc#861489) +------------------------------------------------------------------- +------------------------------------------------------------------- Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de - enable compat-libs, BuildRequires binutils-gold diff --git a/systemd.spec b/systemd.spec index 76876ece..8fbaa905 100644 --- a/systemd.spec +++ b/systemd.spec @@ -249,6 +249,8 @@ Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch Patch522: 0001-core-rework-device-state-logic.patch +# PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM +Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch # UDEV PATCHES # ============ @@ -276,40 +278,24 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch -Patch1021: 1021-udev-re-add-persistent-net-rules.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch -Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) -Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) -Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) -Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch -# PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) -Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) -Patch1053: 1053-better-checks-in-write_net_rules.patch -# PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch -Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.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-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) -Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch +# PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch +Patch1098: 1098-systemd-networkd-alias-network-service.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -617,6 +603,7 @@ cp %{SOURCE7} m4/ %patch520 -p1 %patch521 -p1 %patch522 -p1 +%patch523 -p1 # udev patches %patch1001 -p1 @@ -628,28 +615,17 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1021 -p1 %patch1035 -p1 -%patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1040 -p1 -%patch1046 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1053 -p1 -%if %{with blkrrpart} -%else -%patch1055 -p1 -%endif %patch1060 -p1 %patch1062 -p1 %patch1066 -p1 -%patch1088 -p1 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 +%patch1098 -p1 # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ @@ -719,10 +695,6 @@ export LDFLAGS CFLAGS="$CFLAGS -DNET_IFNAMES=1" %else CFLAGS="$CFLAGS -DNET_IFNAMES=0" - for rules in 75-persistent-net-generator 76-net-sriov-names - do - sed -ri '/^ENV\{net.ifnames\}=="1", GOTO="[^"]*"$/{ s/=="1"/!="0"/ }' src/udev/rule_generator/${rules}.rules - done %endif cflags -pipe CFLAGS cflags -Wl,-O2 LDFLAGS @@ -1486,10 +1458,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/udev-generate-persistent-rule -%{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs -%{_prefix}/lib/udev/rule_generator.functions -%{_prefix}/lib/udev/write_net_rules %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules From 6f28c05795e910b0395cdcc015728c0efa5cf93bfab69d0fff579f6beae89843 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 25 Sep 2015 06:51:59 +0000 Subject: [PATCH 216/221] osc copypac from project:openSUSE:Factory:Staging:J package:systemd revision:2, using expand OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=222 --- systemd-bfo88401.patch | 135 +++++++++++++++++++++++++++++++++++++++++ systemd-mini.changes | 5 ++ systemd-mini.spec | 4 +- systemd.changes | 5 ++ systemd.spec | 4 +- 5 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 systemd-bfo88401.patch diff --git a/systemd-bfo88401.patch b/systemd-bfo88401.patch new file mode 100644 index 00000000..c2733d67 --- /dev/null +++ b/systemd-bfo88401.patch @@ -0,0 +1,135 @@ +From f78f265f405a61387c6c12a879ac0d6b6dc958db Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 24 Apr 2015 16:04:50 +0200 +Subject: core: always coldplug units that are triggered by other units before + those + +Let's make sure that we don't enqueue triggering jobs for units before +those units are actually fully loaded. + +http://lists.freedesktop.org/archives/systemd-devel/2015-April/031176.html +https://bugs.freedesktop.org/show_bug.cgi?id=88401 + +diff --git a/src/core/unit.c b/src/core/unit.c +index 70a2b57..2b356e2 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -2876,13 +2876,32 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { + } + + int unit_coldplug(Unit *u) { ++ Unit *other; ++ Iterator i; + int r; + + assert(u); + +- if (UNIT_VTABLE(u)->coldplug) +- if ((r = UNIT_VTABLE(u)->coldplug(u)) < 0) ++ /* Make sure we don't enter a loop, when coldplugging ++ * recursively. */ ++ if (u->coldplugged) ++ return 0; ++ ++ u->coldplugged = true; ++ ++ /* Make sure everything that we might pull in through ++ * triggering is coldplugged before us */ ++ SET_FOREACH(other, u->dependencies[UNIT_TRIGGERS], i) { ++ r = unit_coldplug(other); ++ if (r < 0) + return r; ++ } ++ ++ if (UNIT_VTABLE(u)->coldplug) { ++ r = UNIT_VTABLE(u)->coldplug(u); ++ if (r < 0) ++ return r; ++ } + + if (u->job) { + r = job_coldplug(u->job); +diff --git a/src/core/unit.h b/src/core/unit.h +index be306a0..1a44271 100644 +--- a/src/core/unit.h ++++ b/src/core/unit.h +@@ -104,6 +104,7 @@ struct Unit { + char *fragment_path; /* if loaded from a config file this is the primary path to it */ + char *source_path; /* if converted, the source file */ + char **dropin_paths; ++ + usec_t fragment_mtime; + usec_t source_mtime; + usec_t dropin_mtime; +@@ -233,6 +234,9 @@ struct Unit { + bool cgroup_realized:1; + bool cgroup_members_mask_valid:1; + bool cgroup_subtree_mask_valid:1; ++ ++ /* Did we already invoke unit_coldplug() for this unit? */ ++ bool coldplugged; + }; + + struct UnitStatusMessageFormats { +-- +cgit v0.10.2 + + +From 4370633083dd9453da183c468cf89cc17254ac39 Mon Sep 17 00:00:00 2001 +From: Ivan Shapovalov +Date: Mon, 27 Apr 2015 21:19:02 +0300 +Subject: core: coldplug all units which participate in jobs during + coldplugging + +This is yet another attempt to fix coldplugging order (more especially, +the problem which happens when one creates a job during coldplugging and +it references a not-yet-coldplugged unit). + +Now we forcibly coldplug all units which participate in jobs. This +is a superset of previously implemented handling of the UNIT_TRIGGERS +dependencies, so that handling is removed. + +http://lists.freedesktop.org/archives/systemd-devel/2015-April/031212.html +https://bugs.freedesktop.org/show_bug.cgi?id=88401 (once again) + +diff --git a/src/core/transaction.c b/src/core/transaction.c +index 5974b1e..7b19e2f 100644 +--- a/src/core/transaction.c ++++ b/src/core/transaction.c +@@ -848,6 +848,13 @@ int transaction_add_job_and_dependencies( + assert(type < _JOB_TYPE_MAX_IN_TRANSACTION); + assert(unit); + ++ /* Before adding jobs for this unit, let's ensure that its state has been loaded ++ * This matters when jobs are spawned as part of coldplugging itself (see e. g. path_coldplug()). ++ * This way, we "recursively" coldplug units, ensuring that we do not look at state of ++ * not-yet-coldplugged units. */ ++ if (unit->manager->n_reloading > 0) ++ unit_coldplug(unit); ++ + /* log_debug("Pulling in %s/%s from %s/%s", */ + /* unit->id, job_type_to_string(type), */ + /* by ? by->unit->id : "NA", */ +diff --git a/src/core/unit.c b/src/core/unit.c +index 496db6c..b7ab084 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -2893,14 +2893,6 @@ int unit_coldplug(Unit *u) { + + u->coldplugged = true; + +- /* Make sure everything that we might pull in through +- * triggering is coldplugged before us */ +- SET_FOREACH(other, u->dependencies[UNIT_TRIGGERS], i) { +- r = unit_coldplug(other); +- if (r < 0) +- return r; +- } +- + if (UNIT_VTABLE(u)->coldplug) { + r = UNIT_VTABLE(u)->coldplug(u); + if (r < 0) +-- +cgit v0.10.2 + + diff --git a/systemd-mini.changes b/systemd-mini.changes index a469ea14..21c45c47 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 24 12:47:29 UTC 2015 - dimstar@opensuse.org + +- Add systemd-bfo88401.patch: do not restart services on coldplug. + ------------------------------------------------------------------- Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 88c4728f..4bf79010 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -256,6 +256,7 @@ Patch521: kbd-model-map.patch Patch522: 0001-core-rework-device-state-logic.patch # PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch +Patch524: systemd-bfo88401.patch # UDEV PATCHES # ============ @@ -609,6 +610,7 @@ cp %{SOURCE7} m4/ %patch521 -p1 %patch522 -p1 %patch523 -p1 +%patch524 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index a469ea14..21c45c47 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 24 12:47:29 UTC 2015 - dimstar@opensuse.org + +- Add systemd-bfo88401.patch: do not restart services on coldplug. + ------------------------------------------------------------------- Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 8fbaa905..1827beb2 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -251,6 +251,7 @@ Patch521: kbd-model-map.patch Patch522: 0001-core-rework-device-state-logic.patch # PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch +Patch524: systemd-bfo88401.patch # UDEV PATCHES # ============ @@ -604,6 +605,7 @@ cp %{SOURCE7} m4/ %patch521 -p1 %patch522 -p1 %patch523 -p1 +%patch524 -p1 # udev patches %patch1001 -p1 From a4023d0c3743bfbc6c53b0759bf0b183ebe045bc9b2a5e73f69fd7eaa60fa88a Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 27 Sep 2015 12:32:31 +0000 Subject: [PATCH 217/221] Accepting request 333777 from Base:System - Fix patch tty-ask-password-agent-on-console.patch not to crash away but enable it to ask on all devices of /dev/console - Avoid "file not found /etc/udev/rules.d/70-persistent-net.rules" waring occurring in %post - Add patch let-vconsole-setup-get-properties-only-once-to-copy-them.patch to avoid broken virtual console mapping due stressed ioctl API for the virtual consoles (boo#904214) - Fix last change that is use the new name for udev packages in %pretrans. - restore usage of LUA in %pretrans. - Try to generate the systemd users and groups always in same order to avoid republish other packages (boo#944660) - cleanup specfile by removing commands that were dealing with systemd pre-generated files: we're now using systemd tarball generated directly from the git repo which doesn't contain any of these files. - there's no point in using LUA in %pretrans - Drop 0009-make-xsltproc-use-correct-ROFF-links.patch This patch was initialy added to workaround bsc#842844. But it appears that man(1) was fixed (included since 13.2 at least) to handle manual pages that consist only of a .so directive such as '.so '. - Change use-rndaddentropy-ioctl-to-load-random-seed.patch to make it work on big endian OBS-URL: https://build.opensuse.org/request/show/333777 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=223 --- ...some-boolean-survive-a-daemon-reload.patch | 69 -- ...s390_con3270_disable_ANSI_colour_esc.patch | 332 ++++--- ...sh-for-reboot-or-hddown-for-poweroff.patch | 24 +- ...network-device-after-NFS-mount-units.patch | 68 +- ...id-abort-due-timeout-at-user-service.patch | 12 +- 0001-bnc888612-logind-polkit-acpi.patch | 80 +- 0001-core-rework-device-state-logic.patch | 917 ------------------ ...systemctl-completion-ignore-at-names.patch | 10 +- ...XDG_RUNTIME_DIR_of_the_original_user.patch | 10 +- ...make-xsltproc-use-correct-ROFF-links.patch | 10 - ...t-install-sulogin-unit-with-poweroff.patch | 12 +- 0014-journald-with-journaling-FS.patch | 10 +- ...pletion-smart-to-be-able-to-redirect.patch | 70 +- ...enable-by_path-links-for-ata-devices.patch | 10 +- ...ate-by-id-scsi-links-for-ATA-devices.patch | 12 +- 1003-udev-netlink-null-rules.patch | 24 +- ...fault-links-for-primary-cd_dvd-drive.patch | 6 +- 1006-udev-always-rename-network.patch | 10 +- 1007-physical-hotplug-cpu-and-memory.patch | 39 +- ...kip-btrfs-check-if-devices-are-not-r.patch | 13 +- ...device-link-creation-on-multipath-de.patch | 19 +- 1013-no-runtime-PM-for-IBM-consoles.patch | 11 - ...-Ignore-devices-with-SYSTEMD_READY-0.patch | 23 +- ...dev-exclude-cd-dvd-from-block-device.patch | 12 +- ...r-target-name-for-btrfs-device-ready.patch | 6 +- ...fault-permissions-for-GenWQE-devices.patch | 14 +- ...lity-links-for-truncated-by-id-links.patch | 42 +- ...t-ssd-disk-to-use-deadline-scheduler.patch | 14 +- 1096-new-udev-root-symlink-generator.patch | 22 +- ...-increase-maximum-number-of-children.patch | 22 +- ...stemd-networkd-alias-network-service.patch | 12 +- Correct_assert_on_unexpected_error_code.patch | 19 + ...es-permissions-to-follow-openSUSE-po.patch | 8 +- ...-suspend-hibernate-calls-to-pm-utils.patch | 97 -- after-local.service | 1 - allow-multiple-sulogin-to-be-started.patch | 24 +- apply-ACL-for-nvidia-device-nodes.patch | 10 +- apply-ACL-for-nvidia-uvm-device-node.patch | 13 +- avoid-divide-by-zero-sigtrap.patch | 37 +- ...andom-hangs-on-timeouts-due-lost-cwd.patch | 10 +- baselibs.conf | 6 +- boot-local-start.patch | 11 +- ...assword-wall-starts-after-getty-tty1.patch | 6 +- ...rtname-is-set-as-hostname-bnc-820213.patch | 40 +- ...-boot-prefixed-initscript-bnc-746506.patch | 20 +- ...plock-and-compose_table-and-kbd_rate.patch | 186 ++-- ...lock-value-in-etc-sysconfig-keyboard.patch | 113 +-- ...lang-value-in-etc-sysconfig-language.patch | 10 +- hostname-NULL.patch | 13 + insserv-generator.patch | 44 +- journald-advice-about-use-of-memory.patch | 34 +- kbd-model-map.patch | 6 +- ...linker-find-libudev-for-libdevmapper.patch | 32 +- ...et-properties-only-once-to-copy-them.patch | 84 ++ ....service-conflict-with-syslog.socket.patch | 6 +- parse-crypttab-for-noauto-option.patch | 10 +- ...-quit-and-wait-for-emergency-service.patch | 33 +- portmap-wants-rpcbind-socket.patch | 10 +- pre_checkin.sh | 4 +- rescue-emergency-target-conflicts.patch | 17 +- respect-nfs-bg-option.patch | 12 +- ...r-lock-bind-mount-if-they-aren-t-sym.patch | 20 +- set-and-use-default-logconsole.patch | 52 +- shut-up-rpmlint-on-var-log-journal.patch | 10 +- suse-sysv-bootd-support.diff | 41 +- ...ndle-boot-sysctl.conf-kernel_release.patch | 51 - systemctl-set-default-target.patch | 10 +- systemd-219.tar.xz | 3 - systemd-add-user-keep.patch | 49 +- systemd-bfo88401.patch | 135 --- systemd-dbus-system-bus-address.patch | 36 +- systemd-install-compat_pkgconfig-always.patch | 16 +- systemd-mini.changes | 267 ++++- systemd-mini.spec | 463 +++++---- systemd-pam_config.patch | 6 +- systemd-powerd-initctl-support.patch | 121 --- systemd-tmp-safe-defaults.patch | 6 +- systemd.changes | 267 ++++- systemd.spec | 461 +++++---- tomcat6-var-lock-subsys-legacy.patch | 8 +- tty-ask-password-agent-on-console.patch | 203 ++-- udev-generate-persistent-rule.sh | 498 ---------- ...addentropy-ioctl-to-load-random-seed.patch | 63 +- v224.tar.gz | 3 + vhangup-on-all-consoles.patch | 12 +- watch_resolv.conf_for_become_changed.patch | 26 +- 86 files changed, 2263 insertions(+), 3415 deletions(-) delete mode 100644 0001-Let-some-boolean-survive-a-daemon-reload.patch delete mode 100644 0001-core-rework-device-state-logic.patch delete mode 100644 0009-make-xsltproc-use-correct-ROFF-links.patch delete mode 100644 1013-no-runtime-PM-for-IBM-consoles.patch create mode 100644 Correct_assert_on_unexpected_error_code.patch delete mode 100644 Forward-suspend-hibernate-calls-to-pm-utils.patch create mode 100644 hostname-NULL.patch create mode 100644 let-vconsole-setup-get-properties-only-once-to-copy-them.patch delete mode 100644 sysctl-handle-boot-sysctl.conf-kernel_release.patch delete mode 100644 systemd-219.tar.xz delete mode 100644 systemd-bfo88401.patch delete mode 100644 systemd-powerd-initctl-support.patch delete mode 100644 udev-generate-persistent-rule.sh create mode 100644 v224.tar.gz diff --git a/0001-Let-some-boolean-survive-a-daemon-reload.patch b/0001-Let-some-boolean-survive-a-daemon-reload.patch deleted file mode 100644 index 6e7b7fb9..00000000 --- a/0001-Let-some-boolean-survive-a-daemon-reload.patch +++ /dev/null @@ -1,69 +0,0 @@ -Based on deff2d3e18e831d63bf98dd4114e4e35e41966e8 Mon Sep 17 00:00:00 2001 -From: Werner Fink -Date: Wed, 10 Jun 2015 10:47:13 +0200 -Subject: [PATCH] Let some boolean survive a daemon-reload - -Without the boolean bus_name_good services as well as cgroup_realized -for units a unit of Type=dbus and ExecReload sending SIGHUP to $MAINPID -will be terminated if systemd will be daemon reloaded. - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746151 -https://bugs.freedesktop.org/show_bug.cgi?id=78311 -https://bugzilla.opensuse.org/show_bug.cgi?id=934077 ---- - src/core/service.c | 9 +++++++++ - src/core/unit.c | 11 +++++++++++ - 2 files changed, 20 insertions(+) - ---- systemd-219/src/core/service.c -+++ systemd-219/src/core/service.c 2015-06-11 12:24:36.769519910 +0000 -@@ -1920,6 +1920,7 @@ static int service_serialize(Unit *u, FI - unit_serialize_item_format(u, f, "main-pid", PID_FMT, s->main_pid); - - unit_serialize_item(u, f, "main-pid-known", yes_no(s->main_pid_known)); -+ unit_serialize_item(u, f, "bus-name-good", yes_no(s->bus_name_good)); - - if (s->status_text) - unit_serialize_item(u, f, "status-text", s->status_text); -@@ -2044,6 +2045,14 @@ static int service_deserialize_item(Unit - log_unit_debug(u->id, "Failed to parse main-pid-known value %s", value); - else - s->main_pid_known = b; -+ } else if (streq(key, "bus-name-good")) { -+ int b; -+ -+ b = parse_boolean(value); -+ if (b < 0) -+ log_unit_debug(u->id, "Failed to parse bus-name-good value %s", value); -+ else -+ s->bus_name_good = b; - } else if (streq(key, "status-text")) { - char *t; - ---- systemd-219/src/core/unit.c -+++ systemd-219/src/core/unit.c 2015-06-11 12:30:56.805519155 +0000 -@@ -2612,6 +2612,7 @@ int unit_serialize(Unit *u, FILE *f, FDS - - if (u->cgroup_path) - unit_serialize_item(u, f, "cgroup", u->cgroup_path); -+ unit_serialize_item(u, f, "cgroup-realized", yes_no(u->cgroup_realized)); - - if (serialize_jobs) { - if (u->job) { -@@ -2803,6 +2804,16 @@ int unit_deserialize(Unit *u, FILE *f, F - assert(hashmap_put(u->manager->cgroup_unit, s, u) == 1); - - continue; -+ } else if (streq(l, "cgroup-realized")) { -+ int b; -+ -+ b = parse_boolean(v); -+ if (b < 0) -+ log_debug("Failed to parse cgroup-realized bool %s", v); -+ else -+ u->cgroup_realized = b; -+ -+ continue; - } - - if (unit_can_serialize(u)) { diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index ef656b99..9756786c 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,29 +1,183 @@ --- rules/99-systemd.rules.in | 2 + src/basic/terminal-util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- + src/basic/terminal-util.h | 1 src/core/manager.c | 24 ++++++++--- - src/shared/util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- - src/shared/util.h | 1 4 files changed, 116 insertions(+), 10 deletions(-) -Index: systemd/rules/99-systemd.rules.in +Index: systemd-221/rules/99-systemd.rules.in =================================================================== ---- systemd.orig/rules/99-systemd.rules.in -+++ systemd/rules/99-systemd.rules.in +--- systemd-221.orig/rules/99-systemd.rules.in ++++ systemd-221/rules/99-systemd.rules.in @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="systemd_end" -SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd" +SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" - KERNEL=="vport*", TAG+="systemd" -Index: systemd/src/core/manager.c + SUBSYSTEM=="block", TAG+="systemd" +Index: systemd-221/src/basic/terminal-util.c =================================================================== ---- systemd.orig/src/core/manager.c -+++ systemd/src/core/manager.c -@@ -113,7 +113,7 @@ static int manager_watch_jobs_in_progres +--- systemd-221.orig/src/basic/terminal-util.c ++++ systemd-221/src/basic/terminal-util.c +@@ -647,6 +647,7 @@ int status_vprintf(const char *status, b + struct iovec iovec[6] = {}; + int n = 0; + static bool prev_ephemeral; ++ static int is_ansi_console = -1; + + assert(format); + +@@ -660,6 +661,41 @@ int status_vprintf(const char *status, b + if (fd < 0) + return fd; + ++ if (_unlikely_(is_ansi_console < 0)) ++ is_ansi_console = ansi_console(fd); ++ ++ if (status && !is_ansi_console) { ++ const char *esc, *ptr; ++ esc = strchr(status, 0x1B); ++ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) { ++ switch(*ptr) { ++ case 'S': ++ status = " SKIP "; ++ break; ++ case 'O': ++ status = " OK "; ++ break; ++ case 'F': ++ status = "FAILED"; ++ break; ++ case 'D': ++ status = "DEPEND"; ++ break; ++ case 'T': ++ status = " TIME "; ++ break; ++ case 'I': ++ status = " INFO "; ++ break; ++ case '*': ++ status = " BUSY "; ++ break; ++ default: ++ break; ++ } ++ } ++ } ++ + if (ellipse) { + char *e; + size_t emax, sl; +@@ -682,8 +718,12 @@ int status_vprintf(const char *status, b + } + } + +- if (prev_ephemeral) +- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); ++ if (prev_ephemeral) { ++ if (is_ansi_console) ++ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); ++ else ++ IOVEC_SET_STRING(iovec[n++], "\r"); ++ } + prev_ephemeral = ephemeral; + + if (status) { +@@ -807,10 +847,47 @@ bool tty_is_vc_resolve(const char *tty) + return tty_is_vc(tty); + } + ++bool ansi_console(int fd) { ++ static int cached_ansi_console = -1; ++ ++ if (_likely_(cached_ansi_console >= 0)) ++ return cached_ansi_console; ++ ++ cached_ansi_console = isatty(fd) > 0; ++#if defined(__s390__) || defined(__s390x__) ++ if (cached_ansi_console) { ++ const char *e = getenv("TERM"); ++ if (e != NULL && (streq(e, "dumb") || strneq(e, "ibm3", 4))) { ++ _cleanup_free_ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, ++ "conmode", &mode, NULL); ++ if (r < 0 || mode == NULL || !streq(mode, "3270")) ++ cached_ansi_console = 0; ++ } ++ } ++#endif ++ return cached_ansi_console; ++} ++ + const char *default_term_for_tty(const char *tty) { + assert(tty); + +- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220"; ++ if (tty_is_vc_resolve(tty)) ++ return "TERM=linux"; ++ if (startswith(tty, "/dev/")) ++ tty += 5; ++#if defined (__s390__) || defined (__s390x__) ++ if (streq(tty, "ttyS0")) { ++ _cleanup_free_ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", ++ &mode, NULL); ++ if (r < 0 || mode == NULL || !streq(mode, "3270")) ++ return "TERM=dumb"; ++ if (streq(mode, "3270")) ++ return "TERM=ibm327x"; ++ } ++#endif ++ return "TERM=vt220"; + } + + int fd_columns(int fd) { +@@ -890,8 +967,22 @@ void columns_lines_cache_reset(int signu + bool on_tty(void) { + static int cached_on_tty = -1; + +- if (_unlikely_(cached_on_tty < 0)) ++ if (_unlikely_(cached_on_tty < 0)) { + cached_on_tty = isatty(STDOUT_FILENO) > 0; ++#if defined (__s390__) || defined (__s390x__) ++ if (cached_on_tty) { ++ const char *e = getenv("TERM"); ++ if (!e) ++ return cached_on_tty; ++ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) { ++ char *mode = NULL; ++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); ++ if (r < 0 || !mode || !streq(mode, "3270")) ++ cached_on_tty = 0; ++ } ++ } ++#endif ++ } + + return cached_on_tty; + } +Index: systemd-221/src/basic/terminal-util.h +=================================================================== +--- systemd-221.orig/src/basic/terminal-util.h ++++ systemd-221/src/basic/terminal-util.h +@@ -77,6 +77,7 @@ unsigned lines(void); + void columns_lines_cache_reset(int _unused_ signum); + + bool on_tty(void); ++bool ansi_console(int fd); + + static inline const char *ansi_highlight(void) { + return on_tty() ? ANSI_HIGHLIGHT_ON : ""; +Index: systemd-221/src/core/manager.c +=================================================================== +--- systemd-221.orig/src/core/manager.c ++++ systemd-221/src/core/manager.c +@@ -113,7 +113,7 @@ static void manager_watch_jobs_in_progre #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) @@ -89,161 +243,3 @@ Index: systemd/src/core/manager.c m->jobs_in_progress_iteration++; -Index: systemd/src/shared/util.c -=================================================================== ---- systemd.orig/src/shared/util.c -+++ systemd/src/shared/util.c -@@ -3212,6 +3212,7 @@ int status_vprintf(const char *status, b - struct iovec iovec[6] = {}; - int n = 0; - static bool prev_ephemeral; -+ static int is_ansi_console = -1; - - assert(format); - -@@ -3225,6 +3226,41 @@ int status_vprintf(const char *status, b - if (fd < 0) - return fd; - -+ if (_unlikely_(is_ansi_console < 0)) -+ is_ansi_console = ansi_console(fd); -+ -+ if (status && !is_ansi_console) { -+ const char *esc, *ptr; -+ esc = strchr(status, 0x1B); -+ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) { -+ switch(*ptr) { -+ case 'S': -+ status = " SKIP "; -+ break; -+ case 'O': -+ status = " OK "; -+ break; -+ case 'F': -+ status = "FAILED"; -+ break; -+ case 'D': -+ status = "DEPEND"; -+ break; -+ case 'T': -+ status = " TIME "; -+ break; -+ case 'I': -+ status = " INFO "; -+ break; -+ case '*': -+ status = " BUSY "; -+ break; -+ default: -+ break; -+ } -+ } -+ } -+ - if (ellipse) { - char *e; - size_t emax, sl; -@@ -3247,8 +3283,12 @@ int status_vprintf(const char *status, b - } - } - -- if (prev_ephemeral) -- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); -+ if (prev_ephemeral) { -+ if (is_ansi_console) -+ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); -+ else -+ IOVEC_SET_STRING(iovec[n++], "\r"); -+ } - prev_ephemeral = ephemeral; - - if (status) { -@@ -3504,8 +3544,22 @@ void columns_lines_cache_reset(int signu - bool on_tty(void) { - static int cached_on_tty = -1; - -- if (_unlikely_(cached_on_tty < 0)) -+ if (_unlikely_(cached_on_tty < 0)) { - cached_on_tty = isatty(STDOUT_FILENO) > 0; -+#if defined (__s390__) || defined (__s390x__) -+ if (cached_on_tty) { -+ const char *e = getenv("TERM"); -+ if (!e) -+ return cached_on_tty; -+ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) { -+ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); -+ if (r < 0 || !mode || !streq(mode, "3270")) -+ cached_on_tty = 0; -+ } -+ } -+#endif -+ } - - return cached_on_tty; - } -@@ -3523,6 +3577,27 @@ int files_same(const char *filea, const - a.st_ino == b.st_ino; - } - -+bool ansi_console(int fd) { -+ static int cached_ansi_console = -1; -+ -+ if (_unlikely_(cached_ansi_console < 0)) { -+ cached_ansi_console = isatty(fd) > 0; -+#if defined (__s390__) || defined (__s390x__) -+ if (cached_ansi_console) { -+ const char *e = getenv("TERM"); -+ if (e && (streq(e, "dumb") || strneq(e, "ibm3", 4))) { -+ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); -+ if (r < 0 || !mode || !streq(mode, "3270")) -+ cached_ansi_console = 0; -+ } -+ } -+#endif -+ } -+ -+ return cached_ansi_console; -+} -+ - int running_in_chroot(void) { - int ret; - -@@ -4006,7 +4081,23 @@ bool tty_is_vc_resolve(const char *tty) - const char *default_term_for_tty(const char *tty) { - assert(tty); - -- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220"; -+ if (tty_is_vc_resolve(tty)) -+ return "TERM=linux"; -+ -+ if (startswith(tty, "/dev/")) -+ tty += 5; -+ -+#if defined (__s390__) || defined (__s390x__) -+ if (streq(tty, "ttyS0")) { -+ char *mode = NULL; -+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL); -+ if (r < 0 || !mode || !streq(mode, "3270")) -+ return "TERM=dumb"; -+ if (streq(mode, "3270")) -+ return "TERM=ibm327x"; -+ } -+#endif -+ return "TERM=vt220"; - } - - bool dirent_is_file(const struct dirent *de) { -Index: systemd/src/shared/util.h -=================================================================== ---- systemd.orig/src/shared/util.h -+++ systemd/src/shared/util.h -@@ -475,6 +475,7 @@ unsigned lines(void); - void columns_lines_cache_reset(int _unused_ signum); - - bool on_tty(void); -+bool ansi_console(int fd); - - static inline const char *ansi_highlight(void) { - return on_tty() ? ANSI_HIGHLIGHT_ON : ""; diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index d6b6fa3a..ea7eeafa 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -3,11 +3,11 @@ src/systemctl/systemctl.c | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) -Index: systemd-218/src/core/shutdown.c +Index: systemd-221/src/core/shutdown.c =================================================================== ---- systemd-218.orig/src/core/shutdown.c -+++ systemd-218/src/core/shutdown.c -@@ -400,6 +400,10 @@ int main(int argc, char *argv[]) { +--- systemd-221.orig/src/core/shutdown.c ++++ systemd-221/src/core/shutdown.c +@@ -396,6 +396,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); @@ -18,11 +18,11 @@ Index: systemd-218/src/core/shutdown.c if (errno == EPERM && in_container) { /* If we are in a container, and we lacked * CAP_SYS_BOOT just exit, this will kill our -Index: systemd-218/src/systemctl/systemctl.c +Index: systemd-221/src/systemctl/systemctl.c =================================================================== ---- systemd-218.orig/src/systemctl/systemctl.c -+++ systemd-218/src/systemctl/systemctl.c -@@ -94,6 +94,7 @@ static bool arg_no_pager = false; +--- systemd-221.orig/src/systemctl/systemctl.c ++++ systemd-221/src/systemctl/systemctl.c +@@ -93,6 +93,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -30,7 +30,7 @@ Index: systemd-218/src/systemctl/systemctl.c static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -6813,6 +6814,7 @@ static int halt_parse_argv(int argc, cha +@@ -6636,6 +6637,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -38,7 +38,7 @@ Index: systemd-218/src/systemctl/systemctl.c { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -6865,10 +6867,13 @@ static int halt_parse_argv(int argc, cha +@@ -6688,10 +6690,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -53,7 +53,7 @@ Index: systemd-218/src/systemctl/systemctl.c case '?': return -EINVAL; -@@ -7511,7 +7516,8 @@ static int halt_now(enum action a) { +@@ -7291,7 +7296,8 @@ static int halt_now(enum action a) { /* The kernel will automaticall flush ATA disks and suchlike * on reboot(), but the file systems need to be synce'd * explicitly in advance. */ @@ -63,7 +63,7 @@ Index: systemd-218/src/systemctl/systemctl.c /* Make sure C-A-D is handled by the kernel from this point * on... */ -@@ -7519,14 +7525,14 @@ static int halt_now(enum action a) { +@@ -7299,14 +7305,14 @@ static int halt_now(enum action a) { switch (a) { diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index eb070d64..955314ff 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -5,17 +5,17 @@ NFS share is added as "After=" dependency to the .mount. --- Makefile.am | 2 + src/basic/util.c | 1 src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ src/core/mount-iface.h | 25 +++++++ src/core/mount.c | 35 +++++++++ - src/shared/util.c | 1 5 files changed, 234 insertions(+), 2 deletions(-) -Index: systemd-218/Makefile.am +Index: systemd-221/Makefile.am =================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -1134,6 +1134,8 @@ libsystemd_core_la_SOURCES = \ +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -1164,6 +1164,8 @@ libcore_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ @@ -24,10 +24,22 @@ Index: systemd-218/Makefile.am src/core/kmod-setup.c \ src/core/kmod-setup.h \ src/core/loopback-setup.h \ -Index: systemd-218/src/core/mount-iface.c +Index: systemd-221/src/basic/util.c +=================================================================== +--- systemd-221.orig/src/basic/util.c ++++ systemd-221/src/basic/util.c +@@ -1478,6 +1478,7 @@ bool fstype_is_network(const char *fstyp + "ncp\0" + "nfs\0" + "nfs4\0" ++ "afs\0" + "gfs\0" + "gfs2\0" + "glusterfs\0"; +Index: systemd-221/src/core/mount-iface.c =================================================================== --- /dev/null -+++ systemd-218/src/core/mount-iface.c ++++ systemd-221/src/core/mount-iface.c @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -202,10 +214,10 @@ Index: systemd-218/src/core/mount-iface.c + freeifaddrs(ifa_list); + ifa_list = NULL; +} -Index: systemd-218/src/core/mount-iface.h +Index: systemd-221/src/core/mount-iface.h =================================================================== --- /dev/null -+++ systemd-218/src/core/mount-iface.h ++++ systemd-221/src/core/mount-iface.h @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -232,11 +244,11 @@ Index: systemd-218/src/core/mount-iface.h + +char *host2iface(const char *ip); +void freeroutes(void); -Index: systemd-218/src/core/mount.c +Index: systemd-221/src/core/mount.c =================================================================== ---- systemd-218.orig/src/core/mount.c -+++ systemd-218/src/core/mount.c -@@ -38,6 +38,7 @@ +--- systemd-221.orig/src/core/mount.c ++++ systemd-221/src/core/mount.c +@@ -35,6 +35,7 @@ #include "mkdir.h" #include "path-util.h" #include "mount-setup.h" @@ -244,7 +256,7 @@ Index: systemd-218/src/core/mount.c #include "unit-name.h" #include "dbus-mount.h" #include "special.h" -@@ -1365,8 +1366,9 @@ static int mount_add_one( +@@ -1332,8 +1333,9 @@ static int mount_setup_unit( _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; @@ -255,17 +267,17 @@ Index: systemd-218/src/core/mount.c int r; assert(m); -@@ -1391,6 +1393,8 @@ static int mount_add_one( - if (!e) - return -ENOMEM; +@@ -1358,6 +1360,8 @@ static int mount_setup_unit( + if (r < 0) + return r; + isnetwork = fstype_is_network(fstype); + u = manager_get_unit(m, e); if (!u) { delete = true; -@@ -1419,7 +1423,7 @@ static int mount_add_one( - if (m->running_as == SYSTEMD_SYSTEM) { +@@ -1385,7 +1389,7 @@ static int mount_setup_unit( + if (m->running_as == MANAGER_SYSTEM) { const char* target; - target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; @@ -273,7 +285,7 @@ Index: systemd-218/src/core/mount.c r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) goto fail; -@@ -1505,6 +1509,32 @@ static int mount_add_one( +@@ -1471,6 +1475,32 @@ static int mount_setup_unit( goto fail; } @@ -296,7 +308,7 @@ Index: systemd-218/src/core/mount.c + else { + r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); + if (r < 0) -+ log_unit_error(u->id, "Failed to add dependency on %s, ignoring: %s", ++ log_unit_error(u, "Failed to add dependency on %s, ignoring: %s", + target, strerror(-r)); + } + } @@ -306,7 +318,7 @@ Index: systemd-218/src/core/mount.c if (changed) unit_add_to_dbus_queue(u); -@@ -1560,6 +1590,7 @@ static int mount_load_proc_self_mountinf +@@ -1537,6 +1567,7 @@ static int mount_load_proc_self_mountinf if (r == 0 && k < 0) r = k; } @@ -314,15 +326,3 @@ Index: systemd-218/src/core/mount.c return r; } -Index: systemd-218/src/shared/util.c -=================================================================== ---- systemd-218.orig/src/shared/util.c -+++ systemd-218/src/shared/util.c -@@ -1667,6 +1667,7 @@ bool fstype_is_network(const char *fstyp - "ncp\0" - "nfs\0" - "nfs4\0" -+ "afs\0" - "gfs\0" - "gfs2\0" - "glusterfs\0"; diff --git a/0001-avoid-abort-due-timeout-at-user-service.patch b/0001-avoid-abort-due-timeout-at-user-service.patch index e441beb2..af7fed5d 100644 --- a/0001-avoid-abort-due-timeout-at-user-service.patch +++ b/0001-avoid-abort-due-timeout-at-user-service.patch @@ -1,6 +1,12 @@ ---- systemd-209/src/login/logind-session.c -+++ systemd-209/src/login/logind-session.c 2014-02-28 12:12:14.762736079 +0000 -@@ -525,6 +525,12 @@ int session_start(Session *s) { +--- + src/login/logind-session.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +Index: systemd-221/src/login/logind-session.c +=================================================================== +--- systemd-221.orig/src/login/logind-session.c ++++ systemd-221/src/login/logind-session.c +@@ -548,6 +548,12 @@ int session_start(Session *s) { if (r < 0) return r; diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index 104339e0..505e1791 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -1,13 +1,13 @@ --- src/login/logind-action.c | 5 +++++ - src/login/logind-dbus.c | 20 ++++++++++++++++---- - 2 files changed, 21 insertions(+), 4 deletions(-) + src/login/logind-dbus.c | 31 +++++++++++++++++++++++-------- + 2 files changed, 28 insertions(+), 8 deletions(-) -Index: systemd-218/src/login/logind-action.c +Index: systemd-221/src/login/logind-action.c =================================================================== ---- systemd-218.orig/src/login/logind-action.c -+++ systemd-218/src/login/logind-action.c -@@ -83,6 +83,11 @@ int manager_handle_action( +--- systemd-221.orig/src/login/logind-action.c ++++ systemd-221/src/login/logind-action.c +@@ -85,6 +85,11 @@ int manager_handle_action( /* If the key handling is inhibited, don't do anything */ if (inhibit_key > 0) { @@ -19,57 +19,83 @@ Index: systemd-218/src/login/logind-action.c if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); return 0; -Index: systemd-218/src/login/logind-dbus.c +Index: systemd-221/src/login/logind-dbus.c =================================================================== ---- systemd-218.orig/src/login/logind-dbus.c -+++ systemd-218/src/login/logind-dbus.c -@@ -1487,9 +1487,11 @@ static int method_do_shutdown_or_sleep( - sd_bus_error *error) { +--- systemd-221.orig/src/login/logind-dbus.c ++++ systemd-221/src/login/logind-dbus.c +@@ -1625,12 +1625,13 @@ static int verify_shutdown_creds( + const char *action, + const char *action_multiple_sessions, + const char *action_ignore_inhibit, +- sd_bus_error *error) { ++ sd_bus_error *error, const char *sleep_verb) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; - bool multiple_sessions, blocked; + bool multiple_sessions, blocked, shutdown_through_acpi; - int interactive, r; uid_t uid; -+ int fd; +- int r; ++ int r, fd; + struct stat buf; assert(m); assert(message); -@@ -1533,7 +1535,17 @@ static int method_do_shutdown_or_sleep( +@@ -1652,7 +1653,19 @@ static int verify_shutdown_creds( multiple_sessions = r > 0; blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); -- if (multiple_sessions) { +- if (multiple_sessions && action_multiple_sessions) { + fd = open ("/run/systemd/acpi-shutdown", O_NOFOLLOW|O_PATH|O_CLOEXEC); + if (fd >= 0) { -+ shutdown_through_acpi = ((fstat(fd,&buf) == 0) && (time(NULL) - buf.st_mtime <= 65) && !sleep_verb); ++ shutdown_through_acpi = fstat(fd, &buf) == 0 && ++ time(NULL) - buf.st_mtime <= 65 && ++ sleep_verb == NULL; + close(fd); + unlink ("/run/systemd/acpi-shutdown"); + } + else + shutdown_through_acpi = false; + -+ -+ if (multiple_sessions && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, &m->polkit_registry, error); ++ if (multiple_sessions && action_multiple_sessions && ++ !shutdown_through_acpi) { + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1541,7 +1553,7 @@ static int method_do_shutdown_or_sleep( +@@ -1660,7 +1673,7 @@ static int verify_shutdown_creds( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } -- if (blocked) { -+ if (blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, &m->polkit_registry, error); +- if (blocked && action_ignore_inhibit) { ++ if (blocked && action_ignore_inhibit && !shutdown_through_acpi) { + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1549,7 +1561,7 @@ static int method_do_shutdown_or_sleep( +@@ -1668,7 +1681,8 @@ static int verify_shutdown_creds( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } -- if (!multiple_sessions && !blocked) { -+ if (!multiple_sessions && !blocked && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, &m->polkit_registry, error); +- if (!multiple_sessions && !blocked && action) { ++ if (!multiple_sessions && !blocked && action && ++ !shutdown_through_acpi) { + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; +@@ -1716,7 +1730,7 @@ static int method_do_shutdown_or_sleep( + } + + r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions, +- action_ignore_inhibit, error); ++ action_ignore_inhibit, error, sleep_verb); + if (r != 0) + return r; + +@@ -1896,7 +1910,8 @@ static int method_schedule_shutdown(sd_b + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type"); + + r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false, +- action, action_multiple_sessions, action_ignore_inhibit, error); ++ action, action_multiple_sessions, ++ action_ignore_inhibit, error, "UNUSED"); + if (r != 0) + return r; + diff --git a/0001-core-rework-device-state-logic.patch b/0001-core-rework-device-state-logic.patch deleted file mode 100644 index 0234602c..00000000 --- a/0001-core-rework-device-state-logic.patch +++ /dev/null @@ -1,917 +0,0 @@ -From 628c89cc68ab96fce2de7ebba5933725d147aecc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 27 Feb 2015 21:55:08 +0100 -Subject: [PATCH] core: rework device state logic -References: https://bugzilla.redhat.com/show_bug.cgi?id=1196452 - -This change introduces a new state "tentative" for device units. Device -units are considered "plugged" when udev announced them, "dead" when -they are not available in the kernel, and "tentative" when they are -referenced in /proc/self/mountinfo or /proc/swaps but not (yet) -announced via udev. - -This should fix a race when device nodes (like loop devices) are created -and immediately mounted. Previously, systemd might end up seeing the -mount unit before the device, and would thus pull down the mount because -its BindTo dependency on the device would not be fulfilled. -=== -[The bug can be triggered by - cp -a /dev/sda1 (pick any source) /dev/xxx; mount /dev/xxx /mnt; - since "xxx" is a device udev does not know about even if it runs - and is race-free in the moment you are trying. - -jengelh] ---- - src/core/device.c | 368 +++++++++++++++++++++++++++++++++--------------------- - src/core/device.h | 14 ++- - src/core/mount.c | 46 ++++--- - src/core/swap.c | 32 +++-- - src/core/swap.h | 4 +- - src/core/unit.c | 1 - - 6 files changed, 285 insertions(+), 180 deletions(-) - -diff --git a/src/core/device.c b/src/core/device.c -index 2d983cc..e41ed41 100644 ---- a/src/core/device.c -+++ b/src/core/device.c -@@ -34,7 +34,8 @@ - - static const UnitActiveState state_translation_table[_DEVICE_STATE_MAX] = { - [DEVICE_DEAD] = UNIT_INACTIVE, -- [DEVICE_PLUGGED] = UNIT_ACTIVE -+ [DEVICE_TENTATIVE] = UNIT_ACTIVATING, -+ [DEVICE_PLUGGED] = UNIT_ACTIVE, - }; - - static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata); -@@ -63,6 +64,41 @@ static void device_unset_sysfs(Device *d) { - d->sysfs = NULL; - } - -+static int device_set_sysfs(Device *d, const char *sysfs) { -+ Device *first; -+ char *copy; -+ int r; -+ -+ assert(d); -+ -+ if (streq_ptr(d->sysfs, sysfs)) -+ return 0; -+ -+ r = hashmap_ensure_allocated(&UNIT(d)->manager->devices_by_sysfs, &string_hash_ops); -+ if (r < 0) -+ return r; -+ -+ copy = strdup(sysfs); -+ if (!copy) -+ return -ENOMEM; -+ -+ device_unset_sysfs(d); -+ -+ first = hashmap_get(UNIT(d)->manager->devices_by_sysfs, sysfs); -+ LIST_PREPEND(same_sysfs, first, d); -+ -+ r = hashmap_replace(UNIT(d)->manager->devices_by_sysfs, copy, first); -+ if (r < 0) { -+ LIST_REMOVE(same_sysfs, first, d); -+ free(copy); -+ return r; -+ } -+ -+ d->sysfs = copy; -+ -+ return 0; -+} -+ - static void device_init(Unit *u) { - Device *d = DEVICE(u); - -@@ -110,8 +146,13 @@ static int device_coldplug(Unit *u) { - assert(d); - assert(d->state == DEVICE_DEAD); - -- if (d->sysfs) -+ if (d->found & DEVICE_FOUND_UDEV) -+ /* If udev says the device is around, it's around */ - device_set_state(d, DEVICE_PLUGGED); -+ else if (d->found != DEVICE_NOT_FOUND) -+ /* If a device is found in /proc/self/mountinfo or -+ * /proc/swaps, it's "tentatively" around. */ -+ device_set_state(d, DEVICE_TENTATIVE); - - return 0; - } -@@ -140,49 +181,9 @@ _pure_ static const char *device_sub_state_to_string(Unit *u) { - return device_state_to_string(DEVICE(u)->state); - } - --static int device_add_escaped_name(Unit *u, const char *dn) { -- _cleanup_free_ char *e = NULL; -- int r; -- -- assert(u); -- assert(dn); -- assert(dn[0] == '/'); -- -- e = unit_name_from_path(dn, ".device"); -- if (!e) -- return -ENOMEM; -- -- r = unit_add_name(u, e); -- if (r < 0 && r != -EEXIST) -- return r; -- -- return 0; --} -- --static int device_find_escape_name(Manager *m, const char *dn, Unit **_u) { -- _cleanup_free_ char *e = NULL; -- Unit *u; -- -- assert(m); -- assert(dn); -- assert(dn[0] == '/'); -- assert(_u); -- -- e = unit_name_from_path(dn, ".device"); -- if (!e) -- return -ENOMEM; -- -- u = manager_get_unit(m, e); -- if (u) { -- *_u = u; -- return 1; -- } -- -- return 0; --} -- --static int device_make_description(Unit *u, struct udev_device *dev, const char *path) { -+static int device_update_description(Unit *u, struct udev_device *dev, const char *path) { - const char *model; -+ int r; - - assert(u); - assert(dev); -@@ -207,13 +208,16 @@ static int device_make_description(Unit *u, struct udev_device *dev, const char - - j = strjoin(model, " ", label, NULL); - if (j) -- return unit_set_description(u, j); -- } -+ r = unit_set_description(u, j); -+ } else -+ r = unit_set_description(u, model); -+ } else -+ r = unit_set_description(u, path); - -- return unit_set_description(u, model); -- } -+ if (r < 0) -+ log_unit_error_errno(u->id, r, "Failed to set device description: %m"); - -- return unit_set_description(u, path); -+ return r; - } - - static int device_add_udev_wants(Unit *u, struct udev_device *dev) { -@@ -240,20 +244,20 @@ static int device_add_udev_wants(Unit *u, struct udev_device *dev) { - - n = unit_name_mangle(e, MANGLE_NOGLOB); - if (!n) -- return -ENOMEM; -+ return log_oom(); - - r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true); - if (r < 0) -- return r; -+ return log_unit_error_errno(u->id, r, "Failed to add wants dependency: %m"); - } - if (!isempty(state)) -- log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", -- property, strna(udev_device_get_syspath(dev))); -+ log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", property, strna(udev_device_get_syspath(dev))); - - return 0; - } - --static int device_update_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { -+static int device_setup_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { -+ _cleanup_free_ char *e = NULL; - const char *sysfs; - Unit *u = NULL; - bool delete; -@@ -267,12 +271,18 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - if (!sysfs) - return 0; - -- r = device_find_escape_name(m, path, &u); -- if (r < 0) -- return r; -+ e = unit_name_from_path(path, ".device"); -+ if (!e) -+ return log_oom(); -+ -+ u = manager_get_unit(m, e); - -- if (u && DEVICE(u)->sysfs && !path_equal(DEVICE(u)->sysfs, sysfs)) -+ if (u && -+ DEVICE(u)->sysfs && -+ !path_equal(DEVICE(u)->sysfs, sysfs)) { -+ log_unit_error(u->id, "Device %s appeared twice with different sysfs paths %s and %s", e, DEVICE(u)->sysfs, sysfs); - return -EEXIST; -+ } - - if (!u) { - delete = true; -@@ -281,7 +291,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - if (!u) - return log_oom(); - -- r = device_add_escaped_name(u, path); -+ r = unit_add_name(u, e); - if (r < 0) - goto fail; - -@@ -293,37 +303,16 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - * actually been seen yet ->sysfs will not be - * initialized. Hence initialize it if necessary. */ - -- if (!DEVICE(u)->sysfs) { -- Device *first; -- -- DEVICE(u)->sysfs = strdup(sysfs); -- if (!DEVICE(u)->sysfs) { -- r = -ENOMEM; -- goto fail; -- } -- -- r = hashmap_ensure_allocated(&m->devices_by_sysfs, &string_hash_ops); -- if (r < 0) -- goto fail; -- -- first = hashmap_get(m->devices_by_sysfs, sysfs); -- LIST_PREPEND(same_sysfs, first, DEVICE(u)); -- -- r = hashmap_replace(m->devices_by_sysfs, DEVICE(u)->sysfs, first); -- if (r < 0) -- goto fail; -- } -- -- device_make_description(u, dev, path); -+ r = device_set_sysfs(DEVICE(u), sysfs); -+ if (r < 0) -+ goto fail; - -- if (main) { -- /* The additional systemd udev properties we only -- * interpret for the main object */ -+ (void) device_update_description(u, dev, path); - -- r = device_add_udev_wants(u, dev); -- if (r < 0) -- goto fail; -- } -+ /* The additional systemd udev properties we only interpret -+ * for the main object */ -+ if (main) -+ (void) device_add_udev_wants(u, dev); - - /* Note that this won't dispatch the load queue, the caller - * has to do that if needed and appropriate */ -@@ -332,7 +321,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - return 0; - - fail: -- log_warning_errno(r, "Failed to load device unit: %m"); -+ log_unit_warning_errno(u->id, r, "Failed to set up device unit: %m"); - - if (delete && u) - unit_free(u); -@@ -340,7 +329,7 @@ fail: - return r; - } - --static int device_process_new_device(Manager *m, struct udev_device *dev) { -+static int device_process_new(Manager *m, struct udev_device *dev) { - const char *sysfs, *dn, *alias; - struct udev_list_entry *item = NULL, *first = NULL; - int r; -@@ -352,14 +341,14 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - return 0; - - /* Add the main unit named after the sysfs path */ -- r = device_update_unit(m, dev, sysfs, true); -+ r = device_setup_unit(m, dev, sysfs, true); - if (r < 0) - return r; - - /* Add an additional unit for the device node */ - dn = udev_device_get_devnode(dev); - if (dn) -- device_update_unit(m, dev, dn, false); -+ (void) device_setup_unit(m, dev, dn, false); - - /* Add additional units for all symlinks */ - first = udev_device_get_devlinks_list_entry(dev); -@@ -386,7 +375,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - st.st_rdev != udev_device_get_devnum(dev)) - continue; - -- device_update_unit(m, dev, p, false); -+ (void) device_setup_unit(m, dev, p, false); - } - - /* Add additional units for all explicitly configured -@@ -403,7 +392,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - e[l] = 0; - - if (path_is_absolute(e)) -- device_update_unit(m, dev, e, false); -+ (void) device_setup_unit(m, dev, e, false); - else - log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e); - } -@@ -414,39 +403,62 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - return 0; - } - --static void device_set_path_plugged(Manager *m, struct udev_device *dev) { -- const char *sysfs; -+static void device_update_found_one(Device *d, bool add, DeviceFound found, bool now) { -+ DeviceFound n; -+ -+ assert(d); -+ -+ n = add ? (d->found | found) : (d->found & ~found); -+ if (n == d->found) -+ return; -+ -+ d->found = n; -+ -+ if (now) { -+ if (d->found & DEVICE_FOUND_UDEV) -+ device_set_state(d, DEVICE_PLUGGED); -+ else if (d->found != DEVICE_NOT_FOUND) -+ device_set_state(d, DEVICE_TENTATIVE); -+ else -+ device_set_state(d, DEVICE_DEAD); -+ } -+} -+ -+static int device_update_found_by_sysfs(Manager *m, const char *sysfs, bool add, DeviceFound found, bool now) { - Device *d, *l; - - assert(m); -- assert(dev); -+ assert(sysfs); - -- sysfs = udev_device_get_syspath(dev); -- if (!sysfs) -- return; -+ if (found == DEVICE_NOT_FOUND) -+ return 0; - - l = hashmap_get(m->devices_by_sysfs, sysfs); - LIST_FOREACH(same_sysfs, d, l) -- device_set_state(d, DEVICE_PLUGGED); -+ device_update_found_one(d, add, found, now); -+ -+ return 0; - } - --static int device_process_removed_device(Manager *m, struct udev_device *dev) { -- const char *sysfs; -- Device *d; -+static int device_update_found_by_name(Manager *m, const char *path, bool add, DeviceFound found, bool now) { -+ _cleanup_free_ char *e = NULL; -+ Unit *u; - - assert(m); -- assert(dev); -+ assert(path); - -- sysfs = udev_device_get_syspath(dev); -- if (!sysfs) -- return -ENOMEM; -+ if (found == DEVICE_NOT_FOUND) -+ return 0; - -- /* Remove all units of this sysfs path */ -- while ((d = hashmap_get(m->devices_by_sysfs, sysfs))) { -- device_unset_sysfs(d); -- device_set_state(d, DEVICE_DEAD); -- } -+ e = unit_name_from_path(path, ".device"); -+ if (!e) -+ return log_oom(); - -+ u = manager_get_unit(m, e); -+ if (!u) -+ return 0; -+ -+ device_update_found_one(DEVICE(u), add, found, now); - return 0; - } - -@@ -462,22 +474,6 @@ static bool device_is_ready(struct udev_device *dev) { - return parse_boolean(ready) != 0; - } - --static int device_process_new_path(Manager *m, const char *path) { -- _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -- -- assert(m); -- assert(path); -- -- dev = udev_device_new_from_syspath(m->udev, path); -- if (!dev) -- return log_oom(); -- -- if (!device_is_ready(dev)) -- return 0; -- -- return device_process_new_device(m, dev); --} -- - static Unit *device_following(Unit *u) { - Device *d = DEVICE(u); - Device *other, *first = NULL; -@@ -604,12 +600,31 @@ static int device_enumerate(Manager *m) { - goto fail; - - first = udev_enumerate_get_list_entry(e); -- udev_list_entry_foreach(item, first) -- device_process_new_path(m, udev_list_entry_get_name(item)); -+ udev_list_entry_foreach(item, first) { -+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -+ const char *sysfs; -+ -+ sysfs = udev_list_entry_get_name(item); -+ -+ dev = udev_device_new_from_syspath(m->udev, sysfs); -+ if (!dev) { -+ log_oom(); -+ continue; -+ } -+ -+ if (!device_is_ready(dev)) -+ continue; -+ -+ (void) device_process_new(m, dev); -+ -+ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, false); -+ } - - return 0; - - fail: -+ log_error_errno(r, "Failed to enumerate devices: %m"); -+ - device_shutdown(m); - return r; - } -@@ -617,7 +632,7 @@ fail: - static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata) { - _cleanup_udev_device_unref_ struct udev_device *dev = NULL; - Manager *m = userdata; -- const char *action; -+ const char *action, *sysfs; - int r; - - assert(m); -@@ -639,33 +654,47 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - if (!dev) - return 0; - -+ sysfs = udev_device_get_syspath(dev); -+ if (!sysfs) { -+ log_error("Failed to get udev sys path."); -+ return 0; -+ } -+ - action = udev_device_get_action(dev); - if (!action) { - log_error("Failed to get udev action string."); - return 0; - } - -- if (streq(action, "remove") || !device_is_ready(dev)) { -- r = device_process_removed_device(m, dev); -- if (r < 0) -- log_error_errno(r, "Failed to process device remove event: %m"); -- -- r = swap_process_removed_device(m, dev); -+ if (streq(action, "remove")) { -+ r = swap_process_device_remove(m, dev); - if (r < 0) - log_error_errno(r, "Failed to process swap device remove event: %m"); - -- } else { -- r = device_process_new_device(m, dev); -- if (r < 0) -- log_error_errno(r, "Failed to process device new event: %m"); -+ /* If we get notified that a device was removed by -+ * udev, then it's completely gone, hence unset all -+ * found bits */ -+ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV|DEVICE_FOUND_MOUNT|DEVICE_FOUND_SWAP, true); - -- r = swap_process_new_device(m, dev); -+ } else if (device_is_ready(dev)) { -+ -+ (void) device_process_new(m, dev); -+ -+ r = swap_process_device_new(m, dev); - if (r < 0) - log_error_errno(r, "Failed to process swap device new event: %m"); - - manager_dispatch_load_queue(m); - -- device_set_path_plugged(m, dev); -+ /* The device is found now, set the udev found bit */ -+ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, true); -+ -+ } else { -+ /* The device is nominally around, but not ready for -+ * us. Hence unset the udev bit, but leave the rest -+ * around. */ -+ -+ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV, true); - } - - return 0; -@@ -684,9 +713,58 @@ static bool device_supported(Manager *m) { - return read_only <= 0; - } - -+int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now) { -+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -+ struct stat st; -+ -+ assert(m); -+ assert(node); -+ -+ /* This is called whenever we find a device referenced in -+ * /proc/swaps or /proc/self/mounts. Such a device might be -+ * mounted/enabled at a time where udev has not finished -+ * probing it yet, and we thus haven't learned about it -+ * yet. In this case we will set the device unit to -+ * "tentative" state. */ -+ -+ if (add) { -+ if (!path_startswith(node, "/dev")) -+ return 0; -+ -+ if (stat(node, &st) < 0) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return log_error_errno(errno, "Failed to stat device node file %s: %m", node); -+ } -+ -+ if (!S_ISBLK(st.st_mode) && !S_ISCHR(st.st_mode)) -+ return 0; -+ -+ dev = udev_device_new_from_devnum(m->udev, S_ISBLK(st.st_mode) ? 'b' : 'c', st.st_rdev); -+ if (!dev) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return log_oom(); -+ } -+ -+ /* If the device is known in the kernel and newly -+ * appeared, then we'll create a device unit for it, -+ * under the name referenced in /proc/swaps or -+ * /proc/self/mountinfo. */ -+ -+ (void) device_setup_unit(m, dev, node, false); -+ } -+ -+ /* Update the device unit's state, should it exist */ -+ return device_update_found_by_name(m, node, add, found, now); -+} -+ - static const char* const device_state_table[_DEVICE_STATE_MAX] = { - [DEVICE_DEAD] = "dead", -- [DEVICE_PLUGGED] = "plugged" -+ [DEVICE_TENTATIVE] = "tentative", -+ [DEVICE_PLUGGED] = "plugged", - }; - - DEFINE_STRING_TABLE_LOOKUP(device_state, DeviceState); -diff --git a/src/core/device.h b/src/core/device.h -index 9065085..9f46e08 100644 ---- a/src/core/device.h -+++ b/src/core/device.h -@@ -28,20 +28,28 @@ typedef struct Device Device; - * simplifies the state engine greatly */ - typedef enum DeviceState { - DEVICE_DEAD, -- DEVICE_PLUGGED, -+ DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ -+ DEVICE_PLUGGED, /* announced by udev */ - _DEVICE_STATE_MAX, - _DEVICE_STATE_INVALID = -1 - } DeviceState; - -+typedef enum DeviceFound { -+ DEVICE_NOT_FOUND = 0, -+ DEVICE_FOUND_UDEV = 1, -+ DEVICE_FOUND_MOUNT = 2, -+ DEVICE_FOUND_SWAP = 4, -+} DeviceFound; -+ - struct Device { - Unit meta; - - char *sysfs; -+ DeviceFound found; - - /* In order to be able to distinguish dependencies on - different device nodes we might end up creating multiple - devices for the same sysfs path. We chain them up here. */ -- - LIST_FIELDS(struct Device, same_sysfs); - - DeviceState state; -@@ -51,3 +59,5 @@ extern const UnitVTable device_vtable; - - const char* device_state_to_string(DeviceState i) _const_; - DeviceState device_state_from_string(const char *s) _pure_; -+ -+int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now); -diff --git a/src/core/mount.c b/src/core/mount.c -index 40037e7..8e4a376 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1386,7 +1386,7 @@ static int mount_dispatch_timer(sd_event_source *source, usec_t usec, void *user - return 0; - } - --static int mount_add_one( -+static int mount_setup_unit( - Manager *m, - const char *what, - const char *where, -@@ -1429,7 +1429,7 @@ static int mount_add_one( - - u = unit_new(m, sizeof(Mount)); - if (!u) -- return -ENOMEM; -+ return log_oom(); - - r = unit_add_name(u, e); - if (r < 0) -@@ -1542,6 +1542,8 @@ static int mount_add_one( - return 0; - - fail: -+ log_warning_errno(r, "Failed to set up mount unit: %m"); -+ - if (delete && u) - unit_free(u); - -@@ -1549,33 +1551,36 @@ fail: - } - - static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { -- _cleanup_(mnt_free_tablep) struct libmnt_table *tb = NULL; -- _cleanup_(mnt_free_iterp) struct libmnt_iter *itr = NULL; -- struct libmnt_fs *fs; -+ _cleanup_(mnt_free_tablep) struct libmnt_table *t = NULL; -+ _cleanup_(mnt_free_iterp) struct libmnt_iter *i = NULL; - int r = 0; - - assert(m); - -- tb = mnt_new_table(); -- itr = mnt_new_iter(MNT_ITER_FORWARD); -- if (!tb || !itr) -+ t = mnt_new_table(); -+ if (!t) - return log_oom(); - -- r = mnt_table_parse_mtab(tb, NULL); -+ i = mnt_new_iter(MNT_ITER_FORWARD); -+ if (!i) -+ return log_oom(); -+ -+ r = mnt_table_parse_mtab(t, NULL); - if (r < 0) -- return r; -+ return log_error_errno(r, "Failed to parse /proc/self/mountinfo: %m"); - - r = 0; - for (;;) { - const char *device, *path, *options, *fstype; - _cleanup_free_ const char *d = NULL, *p = NULL; -+ struct libmnt_fs *fs; - int k; - -- k = mnt_table_next_fs(tb, itr, &fs); -+ k = mnt_table_next_fs(t, i, &fs); - if (k == 1) - break; -- else if (k < 0) -- return log_error_errno(k, "Failed to get next entry from /etc/fstab: %m"); -+ if (k < 0) -+ return log_error_errno(k, "Failed to get next entry from /proc/self/mountinfo: %m"); - - device = mnt_fs_get_source(fs); - path = mnt_fs_get_target(fs); -@@ -1583,11 +1588,16 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { - fstype = mnt_fs_get_fstype(fs); - - d = cunescape(device); -+ if (!d) -+ return log_oom(); -+ - p = cunescape(path); -- if (!d || !p) -+ if (!p) - return log_oom(); - -- k = mount_add_one(m, d, p, options, fstype, set_flags); -+ (void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags); -+ -+ k = mount_setup_unit(m, d, p, options, fstype, set_flags); - if (r == 0 && k < 0) - r = k; - } -@@ -1731,8 +1741,6 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - r = mount_load_proc_self_mountinfo(m, true); - if (r < 0) { -- log_error_errno(r, "Failed to reread /proc/self/mountinfo: %m"); -- - /* Reset flags, just in case, for later calls */ - LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_MOUNT]) { - Mount *mount = MOUNT(u); -@@ -1765,6 +1773,10 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - break; - } - -+ if (mount->parameters_proc_self_mountinfo.what) -+ (void) device_found_node(m, mount->parameters_proc_self_mountinfo.what, false, DEVICE_FOUND_MOUNT, true); -+ -+ - } else if (mount->just_mounted || mount->just_changed) { - - /* New or changed mount entry */ -diff --git a/src/core/swap.c b/src/core/swap.c -index f73a8e6..de3a5d8 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -331,7 +331,7 @@ static int swap_load(Unit *u) { - return swap_verify(s); - } - --static int swap_add_one( -+static int swap_setup_unit( - Manager *m, - const char *what, - const char *what_proc_swaps, -@@ -356,8 +356,10 @@ static int swap_add_one( - - if (u && - SWAP(u)->from_proc_swaps && -- !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) -+ !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) { -+ log_error("Swap %s appeared twice with different device paths %s and %s", e, SWAP(u)->parameters_proc_swaps.what, what_proc_swaps); - return -EEXIST; -+ } - - if (!u) { - delete = true; -@@ -372,7 +374,7 @@ static int swap_add_one( - - SWAP(u)->what = strdup(what); - if (!SWAP(u)->what) { -- r = log_oom(); -+ r = -ENOMEM; - goto fail; - } - -@@ -400,7 +402,6 @@ static int swap_add_one( - p->priority = priority; - - unit_add_to_dbus_queue(u); -- - return 0; - - fail: -@@ -412,7 +413,7 @@ fail: - return r; - } - --static int swap_process_new_swap(Manager *m, const char *device, int prio, bool set_flags) { -+static int swap_process_new(Manager *m, const char *device, int prio, bool set_flags) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; - struct udev_list_entry *item = NULL, *first = NULL; - const char *dn; -@@ -421,7 +422,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - - assert(m); - -- r = swap_add_one(m, device, device, prio, set_flags); -+ r = swap_setup_unit(m, device, device, prio, set_flags); - if (r < 0) - return r; - -@@ -437,7 +438,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - /* Add the main device node */ - dn = udev_device_get_devnode(d); - if (dn && !streq(dn, device)) -- swap_add_one(m, dn, device, prio, set_flags); -+ swap_setup_unit(m, dn, device, prio, set_flags); - - /* Add additional units for all symlinks */ - first = udev_device_get_devlinks_list_entry(d); -@@ -458,7 +459,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - st.st_rdev != udev_device_get_devnum(d)) - continue; - -- swap_add_one(m, p, device, prio, set_flags); -+ swap_setup_unit(m, p, device, prio, set_flags); - } - - return r; -@@ -1084,15 +1085,17 @@ static int swap_load_proc_swaps(Manager *m, bool set_flags) { - if (k == EOF) - break; - -- log_warning("Failed to parse /proc/swaps:%u", i); -+ log_warning("Failed to parse /proc/swaps:%u.", i); - continue; - } - - d = cunescape(dev); - if (!d) -- return -ENOMEM; -+ return log_oom(); -+ -+ device_found_node(m, d, true, DEVICE_FOUND_SWAP, set_flags); - -- k = swap_process_new_swap(m, d, prio, set_flags); -+ k = swap_process_new(m, d, prio, set_flags); - if (k < 0) - r = k; - } -@@ -1144,6 +1147,9 @@ static int swap_dispatch_io(sd_event_source *source, int fd, uint32_t revents, v - break; - } - -+ if (swap->what) -+ device_found_node(m, swap->what, false, DEVICE_FOUND_SWAP, true); -+ - } else if (swap->just_activated) { - - /* New swap entry */ -@@ -1291,7 +1297,7 @@ fail: - return r; - } - --int swap_process_new_device(Manager *m, struct udev_device *dev) { -+int swap_process_device_new(Manager *m, struct udev_device *dev) { - struct udev_list_entry *item = NULL, *first = NULL; - _cleanup_free_ char *e = NULL; - const char *dn; -@@ -1334,7 +1340,7 @@ int swap_process_new_device(Manager *m, struct udev_device *dev) { - return r; - } - --int swap_process_removed_device(Manager *m, struct udev_device *dev) { -+int swap_process_device_remove(Manager *m, struct udev_device *dev) { - const char *dn; - int r = 0; - Swap *s; -diff --git a/src/core/swap.h b/src/core/swap.h -index c36c6f2..5de8c20 100644 ---- a/src/core/swap.h -+++ b/src/core/swap.h -@@ -115,8 +115,8 @@ struct Swap { - - extern const UnitVTable swap_vtable; - --int swap_process_new_device(Manager *m, struct udev_device *dev); --int swap_process_removed_device(Manager *m, struct udev_device *dev); -+int swap_process_device_new(Manager *m, struct udev_device *dev); -+int swap_process_device_remove(Manager *m, struct udev_device *dev); - - const char* swap_state_to_string(SwapState i) _const_; - SwapState swap_state_from_string(const char *s) _pure_; -diff --git a/src/core/unit.c b/src/core/unit.c -index 63ccd67..7cd7043 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2834,7 +2834,6 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - return -ENOMEM; - - r = manager_load_unit(u->manager, e, NULL, NULL, &device); -- - if (r < 0) - return r; - --- -2.1.4 - diff --git a/0001-let-systemctl-completion-ignore-at-names.patch b/0001-let-systemctl-completion-ignore-at-names.patch index 4763dcaf..4159038e 100644 --- a/0001-let-systemctl-completion-ignore-at-names.patch +++ b/0001-let-systemctl-completion-ignore-at-names.patch @@ -1,5 +1,11 @@ ---- systemd-210/shell-completion/bash/systemctl.in -+++ systemd-210/shell-completion/bash/systemctl.in 2014-08-20 15:01:04.502736981 +0000 +--- + shell-completion/bash/systemctl.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-221/shell-completion/bash/systemctl.in +=================================================================== +--- systemd-221.orig/shell-completion/bash/systemctl.in ++++ systemd-221/shell-completion/bash/systemctl.in @@ -43,7 +43,7 @@ __filter_units_by_property () { local units=("$@") local props diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch index 291de476..0375d595 100644 --- a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -8,12 +8,14 @@ is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. This belongs to BNC#852015 and also to BNC#855160 --- - pam_systemd.c | 19 +++++++++++++++++++ + src/login/pam_systemd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---- systemd-209/src/login/pam_systemd.c -+++ systemd-209/src/login/pam_systemd.c 2014-02-26 14:31:30.158235525 +0000 -@@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess +Index: systemd-221/src/login/pam_systemd.c +=================================================================== +--- systemd-221.orig/src/login/pam_systemd.c ++++ systemd-221/src/login/pam_systemd.c +@@ -445,6 +445,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); if (r != PAM_SUCCESS) return r; diff --git a/0009-make-xsltproc-use-correct-ROFF-links.patch b/0009-make-xsltproc-use-correct-ROFF-links.patch deleted file mode 100644 index c2f879d5..00000000 --- a/0009-make-xsltproc-use-correct-ROFF-links.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- systemd-208/man/custom-man.xsl -+++ systemd-208/man/custom-man.xsl 2013-10-21 09:23:31.030735259 +0000 -@@ -61,4 +61,7 @@ - " - - -+ -+ -+ - diff --git a/0010-do-not-install-sulogin-unit-with-poweroff.patch b/0010-do-not-install-sulogin-unit-with-poweroff.patch index c854754f..af9d7f53 100644 --- a/0010-do-not-install-sulogin-unit-with-poweroff.patch +++ b/0010-do-not-install-sulogin-unit-with-poweroff.patch @@ -2,9 +2,15 @@ | Belongs to bnc#849071 that is do not install console-shell.service | in any system target as this will cause automatic poweroff at boot. | ---- systemd-208/units/console-shell.service.m4.in -+++ systemd-208/units/console-shell.service.m4.in 2013-11-06 09:35:37.958693570 +0000 -@@ -26,6 +26,3 @@ StandardError=inherit +--- + units/console-shell.service.m4.in | 3 --- + 1 file changed, 3 deletions(-) + +Index: systemd-221/units/console-shell.service.m4.in +=================================================================== +--- systemd-221.orig/units/console-shell.service.m4.in ++++ systemd-221/units/console-shell.service.m4.in +@@ -28,6 +28,3 @@ StandardError=inherit KillMode=process IgnoreSIGPIPE=no SendSIGHUP=yes diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch index c3ae1a23..a8255ab5 100644 --- a/0014-journald-with-journaling-FS.patch +++ b/0014-journald-with-journaling-FS.patch @@ -13,10 +13,10 @@ No word on compression… src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) -Index: systemd/src/journal/journald-server.c +Index: systemd-221/src/journal/journald-server.c =================================================================== ---- systemd.orig/src/journal/journald-server.c -+++ systemd/src/journal/journald-server.c +--- systemd-221.orig/src/journal/journald-server.c ++++ systemd-221/src/journal/journald-server.c @@ -21,6 +21,7 @@ #include @@ -25,7 +25,7 @@ Index: systemd/src/journal/journald-server.c #include #include #include -@@ -917,6 +918,38 @@ finish: +@@ -918,6 +919,38 @@ finish: dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid); } @@ -64,7 +64,7 @@ Index: systemd/src/journal/journald-server.c static int system_journal_open(Server *s, bool flush_requested) { int r; -@@ -946,6 +979,7 @@ static int system_journal_open(Server *s +@@ -947,6 +980,7 @@ static int system_journal_open(Server *s fn = strjoina("/var/log/journal/", ids); (void) mkdir(fn, 0755); diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch index a545cf08..ca3a4b0c 100644 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ b/0019-make-completion-smart-to-be-able-to-redirect.patch @@ -12,10 +12,10 @@ shell-completion/bash/udevadm | 6 +++++- 11 files changed, 70 insertions(+), 11 deletions(-) -Index: systemd/shell-completion/bash/coredumpctl +Index: systemd-221/shell-completion/bash/coredumpctl =================================================================== ---- systemd.orig/shell-completion/bash/coredumpctl -+++ systemd/shell-completion/bash/coredumpctl +--- systemd-221.orig/shell-completion/bash/coredumpctl ++++ systemd-221/shell-completion/bash/coredumpctl @@ -44,6 +44,10 @@ _coredumpctl() { [DUMP]='dump gdb' ) @@ -33,10 +33,10 @@ Index: systemd/shell-completion/bash/coredumpctl -complete -F _coredumpctl coredumpctl +complete -o default -o bashdefault -F _coredumpctl coredumpctl -Index: systemd/shell-completion/bash/hostnamectl +Index: systemd-221/shell-completion/bash/hostnamectl =================================================================== ---- systemd.orig/shell-completion/bash/hostnamectl -+++ systemd/shell-completion/bash/hostnamectl +--- systemd-221.orig/shell-completion/bash/hostnamectl ++++ systemd-221/shell-completion/bash/hostnamectl @@ -30,6 +30,10 @@ _hostnamectl() { local OPTS='-h --help --version --transient --static --pretty --no-ask-password -H --host --machine' @@ -54,10 +54,10 @@ Index: systemd/shell-completion/bash/hostnamectl -complete -F _hostnamectl hostnamectl +complete -o default -o bashdefault -F _hostnamectl hostnamectl -Index: systemd/shell-completion/bash/journalctl +Index: systemd-221/shell-completion/bash/journalctl =================================================================== ---- systemd.orig/shell-completion/bash/journalctl -+++ systemd/shell-completion/bash/journalctl +--- systemd-221.orig/shell-completion/bash/journalctl ++++ systemd-221/shell-completion/bash/journalctl @@ -55,6 +55,10 @@ _journalctl() { --root --machine' ) @@ -75,10 +75,10 @@ Index: systemd/shell-completion/bash/journalctl -complete -F _journalctl journalctl +complete -o default -o bashdefault -F _journalctl journalctl -Index: systemd/shell-completion/bash/kernel-install +Index: systemd-221/shell-completion/bash/kernel-install =================================================================== ---- systemd.orig/shell-completion/bash/kernel-install -+++ systemd/shell-completion/bash/kernel-install +--- systemd-221.orig/shell-completion/bash/kernel-install ++++ systemd-221/shell-completion/bash/kernel-install @@ -18,11 +18,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -108,10 +108,10 @@ Index: systemd/shell-completion/bash/kernel-install -complete -F _kernel_install kernel-install +complete -o default -o bashdefault -F _kernel_install kernel-install -Index: systemd/shell-completion/bash/localectl +Index: systemd-221/shell-completion/bash/localectl =================================================================== ---- systemd.orig/shell-completion/bash/localectl -+++ systemd/shell-completion/bash/localectl +--- systemd-221.orig/shell-completion/bash/localectl ++++ systemd-221/shell-completion/bash/localectl @@ -36,6 +36,10 @@ _localectl() { local OPTS='-h --help --version --no-convert --no-pager --no-ask-password -H --host --machine' @@ -129,10 +129,10 @@ Index: systemd/shell-completion/bash/localectl -complete -F _localectl localectl +complete -o default -o bashdefault -F _localectl localectl -Index: systemd/shell-completion/bash/loginctl +Index: systemd-221/shell-completion/bash/loginctl =================================================================== ---- systemd.orig/shell-completion/bash/loginctl -+++ systemd/shell-completion/bash/loginctl +--- systemd-221.orig/shell-completion/bash/loginctl ++++ systemd-221/shell-completion/bash/loginctl @@ -38,6 +38,10 @@ _loginctl () { [ARG]='--host -H --kill-who --property -p --signal -s --machine' ) @@ -150,12 +150,12 @@ Index: systemd/shell-completion/bash/loginctl -complete -F _loginctl loginctl +complete -o default -o bashdefault -F _loginctl loginctl -Index: systemd/shell-completion/bash/systemctl.in +Index: systemd-221/shell-completion/bash/systemctl.in =================================================================== ---- systemd.orig/shell-completion/bash/systemctl.in -+++ systemd/shell-completion/bash/systemctl.in +--- systemd-221.orig/shell-completion/bash/systemctl.in ++++ systemd-221/shell-completion/bash/systemctl.in @@ -96,6 +96,10 @@ _systemctl () { - [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root' + [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --job-mode --root' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -165,16 +165,16 @@ Index: systemd/shell-completion/bash/systemctl.in if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user else -@@ -264,4 +268,4 @@ _systemctl () { +@@ -268,4 +272,4 @@ _systemctl () { return 0 } -complete -F _systemctl systemctl +complete -o default -o bashdefault -F _systemctl systemctl -Index: systemd/shell-completion/bash/systemd-analyze +Index: systemd-221/shell-completion/bash/systemd-analyze =================================================================== ---- systemd.orig/shell-completion/bash/systemd-analyze -+++ systemd/shell-completion/bash/systemd-analyze +--- systemd-221.orig/shell-completion/bash/systemd-analyze ++++ systemd-221/shell-completion/bash/systemd-analyze @@ -47,6 +47,10 @@ _systemd_analyze() { [VERIFY]='verify' ) @@ -192,10 +192,10 @@ Index: systemd/shell-completion/bash/systemd-analyze -complete -F _systemd_analyze systemd-analyze +complete -o default -o bashdefault -F _systemd_analyze systemd-analyze -Index: systemd/shell-completion/bash/systemd-run +Index: systemd-221/shell-completion/bash/systemd-run =================================================================== ---- systemd.orig/shell-completion/bash/systemd-run -+++ systemd/shell-completion/bash/systemd-run +--- systemd-221.orig/shell-completion/bash/systemd-run ++++ systemd-221/shell-completion/bash/systemd-run @@ -17,6 +17,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -228,10 +228,10 @@ Index: systemd/shell-completion/bash/systemd-run -complete -F _systemd_run systemd-run +complete -o default -o bashdefault -F _systemd_run systemd-run -Index: systemd/shell-completion/bash/timedatectl +Index: systemd-221/shell-completion/bash/timedatectl =================================================================== ---- systemd.orig/shell-completion/bash/timedatectl -+++ systemd/shell-completion/bash/timedatectl +--- systemd-221.orig/shell-completion/bash/timedatectl ++++ systemd-221/shell-completion/bash/timedatectl @@ -30,6 +30,10 @@ _timedatectl() { local OPTS='-h --help --version --adjust-system-clock --no-pager --no-ask-password -H --host --machine' @@ -249,10 +249,10 @@ Index: systemd/shell-completion/bash/timedatectl -complete -F _timedatectl timedatectl +complete -o default -o bashdefault -F _timedatectl timedatectl -Index: systemd/shell-completion/bash/udevadm +Index: systemd-221/shell-completion/bash/udevadm =================================================================== ---- systemd.orig/shell-completion/bash/udevadm -+++ systemd/shell-completion/bash/udevadm +--- systemd-221.orig/shell-completion/bash/udevadm ++++ systemd-221/shell-completion/bash/udevadm @@ -36,6 +36,10 @@ _udevadm() { local verbs=(info trigger settle control monitor hwdb test-builtin test) diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch index b4bc2d07..5520c601 100644 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -25,11 +25,11 @@ Signed-off-by: Hannes Reinecke src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 12 deletions(-) -Index: systemd-218/src/udev/udev-builtin-path_id.c +Index: systemd-221/src/udev/udev-builtin-path_id.c =================================================================== ---- systemd-218.orig/src/udev/udev-builtin-path_id.c -+++ systemd-218/src/udev/udev-builtin-path_id.c -@@ -426,6 +426,46 @@ static struct udev_device *handle_scsi_h +--- systemd-221.orig/src/udev/udev-builtin-path_id.c ++++ systemd-221/src/udev/udev-builtin-path_id.c +@@ -447,6 +447,46 @@ static struct udev_device *handle_scsi_h return parent; } @@ -76,7 +76,7 @@ Index: systemd-218/src/udev/udev-builtin-path_id.c static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) { const char *devtype; const char *name; -@@ -465,19 +505,8 @@ static struct udev_device *handle_scsi(s +@@ -486,19 +526,8 @@ static struct udev_device *handle_scsi(s goto out; } diff --git a/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch b/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch index bd7904c6..cea9163a 100644 --- a/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch +++ b/1002-rules-create-by-id-scsi-links-for-ATA-devices.patch @@ -4,12 +4,14 @@ Subject: rules create by id scsi links for ATA devices Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) --- - rules/60-persistent-storage.rules | 4 ++++ + rules/60-persistent-storage.rules | 4 ++++ 1 file changed, 4 insertions(+) ---- systemd-206.orig/rules/60-persistent-storage.rules -+++ systemd-206/rules/60-persistent-storage.rules -@@ -42,6 +42,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", +Index: systemd-221/rules/60-persistent-storage.rules +=================================================================== +--- systemd-221.orig/rules/60-persistent-storage.rules ++++ systemd-221/rules/60-persistent-storage.rules +@@ -36,6 +36,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" @@ -17,6 +19,6 @@ Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) +KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" +KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" + - # firewire + # FireWire KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" diff --git a/1003-udev-netlink-null-rules.patch b/1003-udev-netlink-null-rules.patch index eee1415f..92bfef99 100644 --- a/1003-udev-netlink-null-rules.patch +++ b/1003-udev-netlink-null-rules.patch @@ -7,16 +7,16 @@ udevd race for netlink events (bnc#774646) src/udev/udevd.c | 2 ++ 1 file changed, 2 insertions(+) -Index: systemd-218/src/udev/udevd.c +Index: systemd-221/src/udev/udevd.c =================================================================== ---- systemd-218.orig/src/udev/udevd.c -+++ systemd-218/src/udev/udevd.c -@@ -1468,6 +1468,8 @@ int main(int argc, char *argv[]) { - dev = udev_monitor_receive_device(monitor); - if (dev != NULL) { - udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); -+ if (rules == NULL) -+ rules = udev_rules_new(udev, arg_resolve_names); - if (event_queue_insert(dev) < 0) - udev_device_unref(dev); - } +--- systemd-221.orig/src/udev/udevd.c ++++ systemd-221/src/udev/udevd.c +@@ -917,6 +917,8 @@ static int on_uevent(sd_event_source *s, + dev = udev_monitor_receive_device(manager->monitor); + if (dev) { + udev_device_ensure_usec_initialized(dev, NULL); ++ if (manager->rules == NULL) ++ manager->rules = udev_rules_new(manager->udev, arg_resolve_names); + r = event_queue_insert(manager, dev); + if (r < 0) + udev_device_unref(dev); diff --git a/1005-create-default-links-for-primary-cd_dvd-drive.patch b/1005-create-default-links-for-primary-cd_dvd-drive.patch index 85abb1f7..868247ed 100644 --- a/1005-create-default-links-for-primary-cd_dvd-drive.patch +++ b/1005-create-default-links-for-primary-cd_dvd-drive.patch @@ -7,10 +7,10 @@ cdrom_id: created links for the default cd/dvd drive (bnc#783054). rules/60-cdrom_id.rules | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -Index: systemd/rules/60-cdrom_id.rules +Index: systemd-221/rules/60-cdrom_id.rules =================================================================== ---- systemd.orig/rules/60-cdrom_id.rules -+++ systemd/rules/60-cdrom_id.rules +--- systemd-221.orig/rules/60-cdrom_id.rules ++++ systemd-221/rules/60-cdrom_id.rules @@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $ # stale mounts after ejecting ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0" diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch index f838b9ac..36bb93ba 100644 --- a/1006-udev-always-rename-network.patch +++ b/1006-udev-always-rename-network.patch @@ -13,11 +13,11 @@ Port the patch of Robert to systemd v210 and test it out. 1 file changed, 37 insertions(+), 4 deletions(-) -Index: systemd-218/src/udev/udev-event.c +Index: systemd-221/src/udev/udev-event.c =================================================================== ---- systemd-218.orig/src/udev/udev-event.c -+++ systemd-218/src/udev/udev-event.c -@@ -767,20 +767,53 @@ out: +--- systemd-221.orig/src/udev/udev-event.c ++++ systemd-221/src/udev/udev-event.c +@@ -796,20 +796,53 @@ out: static int rename_netif(struct udev_event *event) { struct udev_device *dev = event->dev; char name[IFNAMSIZ]; @@ -50,7 +50,7 @@ Index: systemd-218/src/udev/udev-event.c + oldname, interim, strerror(-r)); + return r; + } -+ ++ + /* log temporary name */ + log_info("renamed network interface %s to %s\n", oldname, interim); + diff --git a/1007-physical-hotplug-cpu-and-memory.patch b/1007-physical-hotplug-cpu-and-memory.patch index 98500575..5365f17c 100644 --- a/1007-physical-hotplug-cpu-and-memory.patch +++ b/1007-physical-hotplug-cpu-and-memory.patch @@ -1,5 +1,27 @@ ---- systemd-210/rules/80-hotplug-cpu-mem.rules -+++ systemd-210/rules/80-hotplug-cpu-mem.rules 2014-05-21 15:47:01.885605543 +0000 +--- + Makefile.am | 4 ++++ + rules/80-hotplug-cpu-mem.rules | 12 ++++++++++++ + 2 files changed, 16 insertions(+) + +Index: systemd-221/Makefile.am +=================================================================== +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -3841,6 +3841,10 @@ dist_udevrules_DATA += \ + rules/73-seat-numlock.rules + + # ------------------------------------------------------------------------------ ++dist_udevrules_DATA += \ ++ rules/80-hotplug-cpu-mem.rules ++ ++# ------------------------------------------------------------------------------ + mtd_probe_SOURCES = \ + src/udev/mtd_probe/mtd_probe.c \ + src/udev/mtd_probe/mtd_probe.h \ +Index: systemd-221/rules/80-hotplug-cpu-mem.rules +=================================================================== +--- /dev/null ++++ systemd-221/rules/80-hotplug-cpu-mem.rules @@ -0,0 +1,12 @@ +# do not edit this file, it will be overwritten on update + @@ -13,16 +35,3 @@ + +# +TAG=="tmpfs", RUN+="/usr/lib/udev/remount-tmpfs" ---- systemd-210/Makefile.am -+++ systemd-210/Makefile.am -@@ -2480,6 +2480,10 @@ dist_udevrules_DATA += \ - rules/73-seat-numlock.rules - - # ------------------------------------------------------------------------------ -+dist_udevrules_DATA += \ -+ rules/80-hotplug-cpu-mem.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ diff --git a/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch b/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch index 391592ee..9d5a39f0 100644 --- a/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch +++ b/1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch @@ -7,13 +7,13 @@ If any devices are marked with 'SYSTEMD_READY=0' then we shouldn't run any btrfs check on them. --- - rules/64-btrfs.rules | 1 + + rules/64-btrfs.rules | 1 + 1 file changed, 1 insertion(+) -diff --git a/rules/64-btrfs.rules b/rules/64-btrfs.rules -index fe01001..57631bc 100644 ---- a/rules/64-btrfs.rules -+++ b/rules/64-btrfs.rules +Index: systemd-221/rules/64-btrfs.rules +=================================================================== +--- systemd-221.orig/rules/64-btrfs.rules ++++ systemd-221/rules/64-btrfs.rules @@ -3,6 +3,7 @@ SUBSYSTEM!="block", GOTO="btrfs_end" ACTION=="remove", GOTO="btrfs_end" @@ -22,6 +22,3 @@ index fe01001..57631bc 100644 # let the kernel know about this btrfs filesystem, and check if it is complete IMPORT{builtin}="btrfs ready $devnode" --- -1.8.1.4 - diff --git a/1012-Skip-persistent-device-link-creation-on-multipath-de.patch b/1012-Skip-persistent-device-link-creation-on-multipath-de.patch index 087dc3a0..c5bd4a13 100644 --- a/1012-Skip-persistent-device-link-creation-on-multipath-de.patch +++ b/1012-Skip-persistent-device-link-creation-on-multipath-de.patch @@ -10,15 +10,15 @@ persistent symlinks to that device. Otherwise systemd will get confused about which device to use. --- - rules/60-persistent-storage.rules | 7 +++++-- + rules/60-persistent-storage.rules | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules -index 1208bd3..fd5bedd 100644 ---- a/rules/60-persistent-storage.rules -+++ b/rules/60-persistent-storage.rules -@@ -39,8 +39,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin - # scsi devices +Index: systemd-221/rules/60-persistent-storage.rules +=================================================================== +--- systemd-221.orig/rules/60-persistent-storage.rules ++++ systemd-221/rules/60-persistent-storage.rules +@@ -33,8 +33,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}! + # SCSI devices KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi" KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss" -KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" @@ -28,7 +28,7 @@ index 1208bd3..fd5bedd 100644 # scsi compat links for ATA devices KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" -@@ -70,6 +70,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DAT +@@ -66,6 +66,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!= KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \ IMPORT{builtin}="blkid --noraid" @@ -38,6 +38,3 @@ index 1208bd3..fd5bedd 100644 # probe filesystem metadata of disks KERNEL!="sr*", IMPORT{builtin}="blkid" --- -1.8.1.4 - diff --git a/1013-no-runtime-PM-for-IBM-consoles.patch b/1013-no-runtime-PM-for-IBM-consoles.patch deleted file mode 100644 index 164ca499..00000000 --- a/1013-no-runtime-PM-for-IBM-consoles.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- systemd-210/rules/42-usb-hid-pm.rules.old 2014-04-23 10:54:31.694485615 +0200 -+++ systemd-210/rules/42-usb-hid-pm.rules 2014-04-23 10:55:21.969423056 +0200 -@@ -22,8 +22,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{id - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="0000", TEST=="power/control", ATTR{power/control}="auto" - - # IBM remote access --ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b3", ATTR{idProduct}=="4001", TEST=="power/control", ATTR{power/control}="auto" --ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b3", ATTR{idProduct}=="4002", TEST=="power/control", ATTR{power/control}="auto" - ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto" - - # Raritan Computer, Inc KVM. diff --git a/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch b/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch index 09c5202c..400cd94d 100644 --- a/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch +++ b/1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch @@ -12,21 +12,18 @@ References: bnc#881942 Signed-off-by: Hannes Reinecke --- - rules/99-systemd.rules.in | 1 + + rules/99-systemd.rules.in | 1 + 1 file changed, 1 insertion(+) -diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in -index db72373..11ee262 100644 ---- a/rules/99-systemd.rules.in -+++ b/rules/99-systemd.rules.in -@@ -11,6 +11,7 @@ SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270 - +Index: systemd-221/rules/99-systemd.rules.in +=================================================================== +--- systemd-221.orig/rules/99-systemd.rules.in ++++ systemd-221/rules/99-systemd.rules.in +@@ -10,6 +10,7 @@ ACTION=="remove", GOTO="systemd_end" + SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" KERNEL=="vport*", TAG+="systemd" -+SUBSYSTEM=="block", KERNEL!="ram*", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end" - SUBSYSTEM=="block", KERNEL!="ram*", TAG+="systemd" - SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" ++SUBSYSTEM=="block", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end" + SUBSYSTEM=="block", TAG+="systemd" + SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" --- -1.8.4.5 - diff --git a/1037-udev-exclude-cd-dvd-from-block-device.patch b/1037-udev-exclude-cd-dvd-from-block-device.patch index 0b8d68ff..2b001518 100644 --- a/1037-udev-exclude-cd-dvd-from-block-device.patch +++ b/1037-udev-exclude-cd-dvd-from-block-device.patch @@ -1,8 +1,14 @@ Exclude cd/dvd as well (bnc#882714) ---- systemd-210/src/udev/udevd.c -+++ systemd-210/src/udev/udevd.c 2014-06-18 12:53:34.454235577 +0000 -@@ -744,7 +744,8 @@ static int synthesize_change(struct udev +--- + src/udev/udevd.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: systemd-221/src/udev/udevd.c +=================================================================== +--- systemd-221.orig/src/udev/udevd.c ++++ systemd-221/src/udev/udevd.c +@@ -1022,7 +1022,8 @@ static int synthesize_change(struct udev if (streq_ptr("block", udev_device_get_subsystem(dev)) && streq_ptr("disk", udev_device_get_devtype(dev)) && diff --git a/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch b/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch index 862afa48..02ead8c8 100644 --- a/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch +++ b/1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch @@ -29,8 +29,10 @@ Signed-off-by: Jeff Mahoney rules/64-btrfs.rules | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/rules/64-btrfs.rules -+++ b/rules/64-btrfs.rules +Index: systemd-221/rules/64-btrfs.rules +=================================================================== +--- systemd-221.orig/rules/64-btrfs.rules ++++ systemd-221/rules/64-btrfs.rules @@ -6,7 +6,8 @@ ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_en ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end" diff --git a/1062-rules-set-default-permissions-for-GenWQE-devices.patch b/1062-rules-set-default-permissions-for-GenWQE-devices.patch index 8db264df..80c434dc 100644 --- a/1062-rules-set-default-permissions-for-GenWQE-devices.patch +++ b/1062-rules-set-default-permissions-for-GenWQE-devices.patch @@ -1,11 +1,15 @@ -Index: systemd-210/rules/50-udev-default.rules +--- + rules/50-udev-default.rules | 2 ++ + 1 file changed, 2 insertions(+) + +Index: systemd-221/rules/50-udev-default.rules =================================================================== ---- systemd-210.orig/rules/50-udev-default.rules -+++ systemd-210/rules/50-udev-default.rules -@@ -66,4 +66,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st +--- systemd-221.orig/rules/50-udev-default.rules ++++ systemd-221/rules/50-udev-default.rules +@@ -74,4 +74,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse" +KERNEL=="genwqe*", MODE="0666" + - LABEL="default_permissions_end" + LABEL="default_end" diff --git a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch index e08ad9f8..637c2be8 100644 --- a/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +++ b/1066-udev-add-compatibility-links-for-truncated-by-id-links.patch @@ -18,11 +18,11 @@ Signed-off-by: Jeff Mahoney src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------ 4 files changed, 32 insertions(+), 7 deletions(-) -Index: systemd/rules/60-persistent-storage.rules +Index: systemd-221/rules/60-persistent-storage.rules =================================================================== ---- systemd.orig/rules/60-persistent-storage.rules -+++ systemd/rules/60-persistent-storage.rules -@@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par +--- systemd-221.orig/rules/60-persistent-storage.rules ++++ systemd-221/rules/60-persistent-storage.rules +@@ -40,6 +40,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" @@ -30,13 +30,13 @@ Index: systemd/rules/60-persistent-storage.rules +KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --truncated-serial --whitelisted --replace-whitespace -p0x80 -d$tempnode", RESULT=="?*", ENV{ID_SCSI_COMPAT_TRUNCATED}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}" +KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT_TRUNCATED}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}-part%n" + - # firewire + # FireWire KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" -Index: systemd/src/udev/scsi_id/scsi_id.c +Index: systemd-221/src/udev/scsi_id/scsi_id.c =================================================================== ---- systemd.orig/src/udev/scsi_id/scsi_id.c -+++ systemd/src/udev/scsi_id/scsi_id.c +--- systemd-221.orig/src/udev/scsi_id/scsi_id.c ++++ systemd-221/src/udev/scsi_id/scsi_id.c @@ -43,6 +43,7 @@ static const struct option options[] = { { "replace-whitespace", no_argument, NULL, 'u' }, { "sg-version", required_argument, NULL, 's' }, @@ -94,11 +94,11 @@ Index: systemd/src/udev/scsi_id/scsi_id.c util_replace_chars(serial_str, NULL); printf("%s\n", serial_str); goto out; -Index: systemd/src/udev/scsi_id/scsi_id.h +Index: systemd-221/src/udev/scsi_id/scsi_id.h =================================================================== ---- systemd.orig/src/udev/scsi_id/scsi_id.h -+++ systemd/src/udev/scsi_id/scsi_id.h -@@ -43,6 +43,7 @@ struct scsi_id_device { +--- systemd-221.orig/src/udev/scsi_id/scsi_id.h ++++ systemd-221/src/udev/scsi_id/scsi_id.h +@@ -45,6 +45,7 @@ struct scsi_id_device { char kernel[64]; char serial[MAX_SERIAL_LEN]; char serial_short[MAX_SERIAL_LEN]; @@ -106,11 +106,11 @@ Index: systemd/src/udev/scsi_id/scsi_id.h int use_sg; /* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */ -Index: systemd/src/udev/scsi_id/scsi_serial.c +Index: systemd-221/src/udev/scsi_id/scsi_serial.c =================================================================== ---- systemd.orig/src/udev/scsi_id/scsi_serial.c -+++ systemd/src/udev/scsi_id/scsi_serial.c -@@ -96,7 +96,8 @@ static const char hex_str[]="0123456789a +--- systemd-221.orig/src/udev/scsi_id/scsi_serial.c ++++ systemd-221/src/udev/scsi_id/scsi_serial.c +@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -120,7 +120,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c static int sg_err_category_new(struct udev *udev, int scsi_status, int msg_status, int -@@ -619,7 +620,7 @@ static int do_scsi_page83_inquiry(struct +@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct unsigned char page_83[SCSI_INQ_BUFF_LEN]; /* also pick up the page 80 serial number */ @@ -129,7 +129,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c memzero(page_83, SCSI_INQ_BUFF_LEN); retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83, -@@ -764,7 +765,8 @@ static int do_scsi_page83_prespc3_inquir +@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir /* Get unit serial number VPD page */ static int do_scsi_page80_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, int fd, @@ -139,7 +139,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c { int retval; int ser_ind; -@@ -798,9 +800,14 @@ static int do_scsi_page80_inquiry(struct +@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]); if (ser_ind < 0) return 1; @@ -155,7 +155,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c } if (serial_short != NULL) { memcpy(serial_short, &buf[4], len); -@@ -876,7 +883,7 @@ int scsi_get_serial(struct udev *udev, +@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev, return 1; if (page_code == PAGE_80) { @@ -164,7 +164,7 @@ Index: systemd/src/udev/scsi_id/scsi_serial.c retval = 1; goto completed; } else { -@@ -950,7 +957,7 @@ int scsi_get_serial(struct udev *udev, +@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev, for (ind = 4; ind <= page0[3] + 3; ind++) if (page0[ind] == PAGE_80) if (!do_scsi_page80_inquiry(udev, dev_scsi, fd, diff --git a/1095-set-ssd-disk-to-use-deadline-scheduler.patch b/1095-set-ssd-disk-to-use-deadline-scheduler.patch index d9d128f2..932ea747 100644 --- a/1095-set-ssd-disk-to-use-deadline-scheduler.patch +++ b/1095-set-ssd-disk-to-use-deadline-scheduler.patch @@ -3,22 +3,22 @@ rules/60-ssd-scheduler.rules | 11 +++++++++++ 2 files changed, 12 insertions(+) -Index: systemd/Makefile.am +Index: systemd-221/Makefile.am =================================================================== ---- systemd.orig/Makefile.am -+++ systemd/Makefile.am -@@ -3576,6 +3576,7 @@ dist_udevrules_DATA += \ +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -3501,6 +3501,7 @@ dist_udevrules_DATA += \ rules/60-persistent-input.rules \ rules/60-persistent-alsa.rules \ rules/60-persistent-storage.rules \ + rules/60-ssd-scheduler.rules \ + rules/60-serial.rules \ rules/64-btrfs.rules \ rules/70-mouse.rules \ - rules/70-touchpad.rules \ -Index: systemd/rules/60-ssd-scheduler.rules +Index: systemd-221/rules/60-ssd-scheduler.rules =================================================================== --- /dev/null -+++ systemd/rules/60-ssd-scheduler.rules ++++ systemd-221/rules/60-ssd-scheduler.rules @@ -0,0 +1,11 @@ +# do not edit this file, it will be overwritten on update + diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch index 7f09f46e..23036bff 100644 --- a/1096-new-udev-root-symlink-generator.patch +++ b/1096-new-udev-root-symlink-generator.patch @@ -5,12 +5,10 @@ units/systemd-udev-root-symlink.service.in | 10 ++ 4 files changed, 96 insertions(+) -Index: systemd/Makefile.am -=================================================================== ---- systemd.orig/Makefile.am -+++ systemd/Makefile.am -@@ -3862,6 +3862,25 @@ EXTRA_DIST += \ - +--- systemd-222.orig/Makefile.am ++++ systemd-222/Makefile.am +@@ -3759,6 +3759,25 @@ EXTRA_DIST += \ + test/mocks/fsck # ------------------------------------------------------------------------------ +rootsymlink_generator_SOURCES = \ @@ -35,10 +33,8 @@ Index: systemd/Makefile.am ata_id_SOURCES = \ src/udev/ata_id/ata_id.c -Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c -=================================================================== --- /dev/null -+++ systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c ++++ systemd-222/src/udev/rootsymlink_generator/rootsymlink_generator.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014-2015 Robert Milasan @@ -97,10 +93,8 @@ Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c + return errno; + return 0; +} -Index: systemd/units/systemd-udev-root-symlink.service -=================================================================== --- /dev/null -+++ systemd/units/systemd-udev-root-symlink.service ++++ systemd-222/units/systemd-udev-root-symlink.service @@ -0,0 +1,10 @@ +[Unit] +Description=Rule generator for /dev/root symlink @@ -112,10 +106,8 @@ Index: systemd/units/systemd-udev-root-symlink.service +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/udev/rootsymlink-generator -Index: systemd/units/systemd-udev-root-symlink.service.in -=================================================================== --- /dev/null -+++ systemd/units/systemd-udev-root-symlink.service.in ++++ systemd-222/units/systemd-udev-root-symlink.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=Rule generator for /dev/root symlink diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch index 486be9b2..6693d757 100644 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -2,25 +2,25 @@ src/udev/udevd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: systemd-218/src/udev/udevd.c +Index: systemd-221/src/udev/udevd.c =================================================================== ---- systemd-218.orig/src/udev/udevd.c -+++ systemd-218/src/udev/udevd.c -@@ -446,7 +446,7 @@ static void event_run(struct event *even +--- systemd-221.orig/src/udev/udevd.c ++++ systemd-221/src/udev/udevd.c +@@ -569,7 +569,7 @@ static void event_run(Manager *manager, - if (children >= arg_children_max) { + if (hashmap_size(manager->workers) >= arg_children_max) { if (arg_children_max > 1) -- log_debug("maximum number (%i) of children reached", children); -+ log_error("maximum number (%i) of children reached", children); +- log_debug("maximum number (%i) of children reached", hashmap_size(manager->workers)); ++ log_error("maximum number (%i) of children reached", hashmap_size(manager->workers)); return; } -@@ -1265,7 +1265,7 @@ int main(int argc, char *argv[]) { +@@ -1641,7 +1641,7 @@ int main(int argc, char *argv[]) { arg_children_max = 8; if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { -- arg_children_max += CPU_COUNT(&cpu_set) * 2; +- arg_children_max += CPU_COUNT(&cpu_set) * 2; + arg_children_max += CPU_COUNT(&cpu_set) * 64; } - } - log_debug("set children_max to %u", arg_children_max); + + log_debug("set children_max to %u", arg_children_max); diff --git a/1098-systemd-networkd-alias-network-service.patch b/1098-systemd-networkd-alias-network-service.patch index 92afb327..a3c666f4 100644 --- a/1098-systemd-networkd-alias-network-service.patch +++ b/1098-systemd-networkd-alias-network-service.patch @@ -1,8 +1,12 @@ -Index: systemd-219/units/systemd-networkd.service.in +--- + units/systemd-networkd.service.m4.in | 1 + + 1 file changed, 1 insertion(+) + +Index: systemd-221/units/systemd-networkd.service.m4.in =================================================================== ---- systemd-219.orig/units/systemd-networkd.service.in -+++ systemd-219/units/systemd-networkd.service.in -@@ -29,4 +29,5 @@ WatchdogSec=1min +--- systemd-221.orig/units/systemd-networkd.service.m4.in ++++ systemd-221/units/systemd-networkd.service.m4.in +@@ -34,4 +34,5 @@ WatchdogSec=1min [Install] WantedBy=multi-user.target diff --git a/Correct_assert_on_unexpected_error_code.patch b/Correct_assert_on_unexpected_error_code.patch new file mode 100644 index 00000000..535170b4 --- /dev/null +++ b/Correct_assert_on_unexpected_error_code.patch @@ -0,0 +1,19 @@ +--- + src/login/pam_systemd.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- src/login/pam_systemd.c ++++ src/login/pam_systemd.c 2015-07-29 08:52:20.762018565 +0000 +@@ -507,7 +507,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess + r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL); + if (r != PAM_SUCCESS) { + pam_syslog(handle, LOG_ERR, "Failed to install session fd."); +- safe_close(session_fd); ++ if (session_fd >= 0) { ++ PROTECT_ERRNO; ++ if (_unlikely_(!(close_nointr(session_fd) != -EBADF))) ++ pam_syslog(handle, LOG_ERR, "Unexpected error code on closing session fd: %m"); ++ } + return r; + } + } diff --git a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch index 95c19107..d780d327 100644 --- a/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch +++ b/Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch @@ -8,10 +8,10 @@ disable /var/lock/{subsys,lockdev} and change default permissions on tmpfiles.d/legacy.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) -Index: systemd-218/tmpfiles.d/legacy.conf +Index: systemd-221/tmpfiles.d/legacy.conf =================================================================== ---- systemd-218.orig/tmpfiles.d/legacy.conf -+++ systemd-218/tmpfiles.d/legacy.conf +--- systemd-221.orig/tmpfiles.d/legacy.conf ++++ systemd-221/tmpfiles.d/legacy.conf @@ -10,13 +10,14 @@ # These files are considered legacy and are unnecessary on legacy-free # systems. @@ -36,5 +36,5 @@ Index: systemd-218/tmpfiles.d/legacy.conf -d /run/lock/lockdev 0775 root lock - +#d /run/lock/lockdev 0775 root lock - - # /forcefsck, /fastboot and /forcequotecheck are deprecated in favor of the + # /forcefsck, /fastboot and /forcequotacheck are deprecated in favor of the # kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch deleted file mode 100644 index 96de1ed2..00000000 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ /dev/null @@ -1,97 +0,0 @@ -From: Frederic Crozat -Date: Tue, 19 Feb 2013 11:20:31 +0100 -Subject: Forward suspend / hibernate calls to pm-utils - -forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) ---- - src/sleep/sleep.c | 27 ++++++++++++++++++++++----- - 1 file changed, 22 insertions(+), 5 deletions(-) - -Index: systemd/src/sleep/sleep.c -=================================================================== ---- systemd.orig/src/sleep/sleep.c -+++ systemd/src/sleep/sleep.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #include "sd-id128.h" - #include "sd-messages.h" -@@ -36,6 +37,8 @@ - #include "def.h" - - static char* arg_verb = NULL; -+static bool delegate_to_pmutils = false; -+static const char *pmtools; - - static int write_mode(char **modes) { - int r = 0; -@@ -53,10 +56,6 @@ static int write_mode(char **modes) { - if (r == 0) - r = k; - } -- -- if (r < 0) -- log_error_errno(r, "Failed to write mode to /sys/power/disk: %m"); -- - return r; - } - -@@ -97,6 +96,8 @@ static int execute(char **modes, char ** - int r; - _cleanup_fclose_ FILE *f = NULL; - -+ if (!delegate_to_pmutils) { -+ - /* This file is opened first, so that if we hit an error, - * we can abort before modifying any state. */ - f = fopen("/sys/power/state", "we"); -@@ -107,6 +108,7 @@ static int execute(char **modes, char ** - r = write_mode(modes); - if (r < 0) - return r; -+ } - - execute_directories(dirs, DEFAULT_TIMEOUT_USEC, arguments); - -@@ -115,8 +117,10 @@ static int execute(char **modes, char ** - LOG_MESSAGE("Suspending system..."), - "SLEEP=%s", arg_verb, - NULL); -- -+ if (!delegate_to_pmutils) - r = write_state(&f, states); -+ else -+ r = -system(pmtools); - if (r < 0) - return r; - -@@ -156,6 +160,7 @@ static int parse_argv(int argc, char *ar - }; - - int c; -+ struct stat buf; - - assert(argc >= 0); - assert(argv); -@@ -193,6 +198,18 @@ static int parse_argv(int argc, char *ar - return -EINVAL; - } - -+ if (streq(arg_verb, "suspend")) { -+ pmtools = "/usr/sbin/pm-suspend"; -+ } -+ else if (streq(arg_verb, "hibernate") || streq(arg_verb, "hybrid-sleep")) { -+ if (streq(arg_verb, "hibernate")) -+ pmtools = "/usr/sbin/pm-hibernate"; -+ else -+ pmtools = "/usr/sbin/pm-suspend-hybrid"; -+ } -+ -+ delegate_to_pmutils = (stat(pmtools, &buf) >= 0 && S_ISREG(buf.st_mode) && (buf.st_mode & 0111)); -+ - return 1 /* work to do */; - } - diff --git a/after-local.service b/after-local.service index a9fb26a7..500c2370 100644 --- a/after-local.service +++ b/after-local.service @@ -15,4 +15,3 @@ Type=idle ExecStart=/etc/init.d/after.local TimeoutSec=0 RemainAfterExit=yes -SysVStartPriority=99 diff --git a/allow-multiple-sulogin-to-be-started.patch b/allow-multiple-sulogin-to-be-started.patch index 507d8fc2..8bc6e24f 100644 --- a/allow-multiple-sulogin-to-be-started.patch +++ b/allow-multiple-sulogin-to-be-started.patch @@ -4,13 +4,15 @@ Subject: allow multiple sulogin to be started allows multiple sulogin instance (bnc#793182). --- - units/getty@.service.m4 | 1 + - units/rescue.target | 1 + - units/serial-getty@.service.m4 | 1 + + units/getty@.service.m4 | 1 + + units/rescue.target | 1 + + units/serial-getty@.service.m4 | 1 + 3 files changed, 3 insertions(+) ---- systemd-206.orig/units/getty@.service.m4 -+++ systemd-206/units/getty@.service.m4 +Index: systemd-221/units/getty@.service.m4 +=================================================================== +--- systemd-221.orig/units/getty@.service.m4 ++++ systemd-221/units/getty@.service.m4 @@ -9,6 +9,7 @@ Description=Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) @@ -19,8 +21,10 @@ allows multiple sulogin instance (bnc#793182). After=systemd-user-sessions.service plymouth-quit-wait.service m4_ifdef(`HAVE_SYSV_COMPAT', After=rc-local.service ---- systemd-206.orig/units/rescue.target -+++ systemd-206/units/rescue.target +Index: systemd-221/units/rescue.target +=================================================================== +--- systemd-221.orig/units/rescue.target ++++ systemd-221/units/rescue.target @@ -10,6 +10,7 @@ Description=Rescue Mode Documentation=man:systemd.special(7) Requires=sysinit.target rescue.service @@ -29,8 +33,10 @@ allows multiple sulogin instance (bnc#793182). AllowIsolate=yes [Install] ---- systemd-206.orig/units/serial-getty@.service.m4 -+++ systemd-206/units/serial-getty@.service.m4 +Index: systemd-221/units/serial-getty@.service.m4 +=================================================================== +--- systemd-221.orig/units/serial-getty@.service.m4 ++++ systemd-221/units/serial-getty@.service.m4 @@ -10,6 +10,7 @@ Description=Serial Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) Documentation=http://0pointer.de/blog/projects/serial-console.html diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index d151032e..257c329b 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -4,14 +4,14 @@ Subject: apply ACL for nvidia device nodes set ACL on nvidia devices (bnc#808319). --- - logind-acl.c | 12 ++++++++++++ + src/login/logind-acl.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) -Index: systemd-210/src/login/logind-acl.c +Index: systemd-221/src/login/logind-acl.c =================================================================== ---- systemd-210.orig/src/login/logind-acl.c -+++ systemd-210/src/login/logind-acl.c -@@ -283,5 +283,17 @@ int devnode_acl_all(struct udev *udev, +--- systemd-221.orig/src/login/logind-acl.c ++++ systemd-221/src/login/logind-acl.c +@@ -285,5 +285,17 @@ int devnode_acl_all(struct udev *udev, r = k; } diff --git a/apply-ACL-for-nvidia-uvm-device-node.patch b/apply-ACL-for-nvidia-uvm-device-node.patch index 6471d229..00a7c608 100644 --- a/apply-ACL-for-nvidia-uvm-device-node.patch +++ b/apply-ACL-for-nvidia-uvm-device-node.patch @@ -5,13 +5,13 @@ Subject: [PATCH] apply ACL for nvidia-uvm device node set ACL on nvidia-uvm device (bnc#879767). --- - src/login/logind-acl.c | 2 ++ + src/login/logind-acl.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c -index 54bc16b..a40af21 100644 ---- a/src/login/logind-acl.c -+++ b/src/login/logind-acl.c +Index: systemd-221/src/login/logind-acl.c +=================================================================== +--- systemd-221.orig/src/login/logind-acl.c ++++ systemd-221/src/login/logind-acl.c @@ -295,6 +295,8 @@ int devnode_acl_all(struct udev *udev, if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) break; @@ -21,6 +21,3 @@ index 54bc16b..a40af21 100644 } return r; --- -1.8.4.5 - diff --git a/avoid-divide-by-zero-sigtrap.patch b/avoid-divide-by-zero-sigtrap.patch index 4f676e87..8a8c3caa 100644 --- a/avoid-divide-by-zero-sigtrap.patch +++ b/avoid-divide-by-zero-sigtrap.patch @@ -1,8 +1,28 @@ Nasty bug reported on bnc#867663 ---- systemd-210/src/core/manager.c -+++ systemd-210/src/core/manager.c 2014-04-17 13:29:07.366236714 +0000 -@@ -1780,7 +1780,8 @@ static int manager_dispatch_jobs_in_prog +--- + src/basic/def.h | 2 +- + src/core/manager.c | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +Index: systemd-221/src/basic/def.h +=================================================================== +--- systemd-221.orig/src/basic/def.h ++++ systemd-221/src/basic/def.h +@@ -37,7 +37,7 @@ + + #define SYSTEMD_CGROUP_CONTROLLER "systemd" + +-#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT ++#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS + #define SIGNALS_IGNORE SIGPIPE + + #define DIGITS "0123456789" +Index: systemd-221/src/core/manager.c +=================================================================== +--- systemd-221.orig/src/core/manager.c ++++ systemd-221/src/core/manager.c +@@ -1991,7 +1991,8 @@ static int manager_dispatch_jobs_in_prog assert(m); assert(source); @@ -12,14 +32,3 @@ Nasty bug reported on bnc#867663 next = now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_PERIOD_USEC; r = sd_event_source_set_time(source, next); ---- systemd-210/src/shared/def.h -+++ systemd-210/src/shared/def.h 2014-04-17 13:47:10.946234983 +0000 -@@ -37,7 +37,7 @@ - - #define SYSTEMD_CGROUP_CONTROLLER "name=systemd" - --#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT -+#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS - #define SIGNALS_IGNORE SIGPIPE - - #define DIGITS "0123456789" diff --git a/avoid-random-hangs-on-timeouts-due-lost-cwd.patch b/avoid-random-hangs-on-timeouts-due-lost-cwd.patch index 3e11c296..45208124 100644 --- a/avoid-random-hangs-on-timeouts-due-lost-cwd.patch +++ b/avoid-random-hangs-on-timeouts-due-lost-cwd.patch @@ -7,8 +7,14 @@ later by a shutdown may fail with (journalctl -b -1): which then caused the subsequent fault that umounting the users home directories done by automount are busy. ---- systemd-210/units/user/systemd-exit.service.in -+++ systemd-210/units/user/systemd-exit.service.in 2014-03-25 16:59:20.406235916 +0000 +--- + units/user/systemd-exit.service.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +Index: systemd-221/units/user/systemd-exit.service.in +=================================================================== +--- systemd-221.orig/units/user/systemd-exit.service.in ++++ systemd-221/units/user/systemd-exit.service.in @@ -10,8 +10,9 @@ Description=Exit the Session Documentation=man:systemd.special(7) DefaultDependencies=no diff --git a/baselibs.conf b/baselibs.conf index 7ed6abac..5df8c49f 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -2,9 +2,7 @@ systemd supplements "packageand(systemd:pam-)" -/lib/systemd/system/ post "%{_sbindir}/pam-config -a --systemd || :" -# postun "if [ "$1" == "0" ]; then" -# postun "%{_sbindir}/pam-config -d --systemd || :" -# postun "fi" -libgudev-1_0-0 +libsystemd0 libudev1 nss-myhostname +nss-mymachines diff --git a/boot-local-start.patch b/boot-local-start.patch index 2f9e9d55..67576b9f 100644 --- a/boot-local-start.patch +++ b/boot-local-start.patch @@ -1,6 +1,11 @@ -diff -Naur systemd-210/units/rc-local.service.in systemd-210-mod/units/rc-local.service.in ---- systemd-210/units/rc-local.service.in 2013-08-13 22:02:52.788756123 +0200 -+++ systemd-210-mod/units/rc-local.service.in 2014-03-25 08:34:40.317587764 +0100 +--- + units/rc-local.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: systemd-221/units/rc-local.service.in +=================================================================== +--- systemd-221.orig/units/rc-local.service.in ++++ systemd-221/units/rc-local.service.in @@ -10,7 +10,7 @@ [Unit] Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility diff --git a/ensure-ask-password-wall-starts-after-getty-tty1.patch b/ensure-ask-password-wall-starts-after-getty-tty1.patch index ac8dbcfd..eb2fa9a4 100644 --- a/ensure-ask-password-wall-starts-after-getty-tty1.patch +++ b/ensure-ask-password-wall-starts-after-getty-tty1.patch @@ -9,8 +9,10 @@ ensure passphrase is handled before starting getty on tty1. units/systemd-ask-password-wall.service.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- systemd-206_git201308300826.orig/units/systemd-ask-password-wall.service.in -+++ systemd-206_git201308300826/units/systemd-ask-password-wall.service.in +Index: systemd-221/units/systemd-ask-password-wall.service.in +=================================================================== +--- systemd-221.orig/units/systemd-ask-password-wall.service.in ++++ systemd-221/units/systemd-ask-password-wall.service.in @@ -8,7 +8,8 @@ [Unit] Description=Forward Password Requests to Wall diff --git a/ensure-shortname-is-set-as-hostname-bnc-820213.patch b/ensure-shortname-is-set-as-hostname-bnc-820213.patch index 77bed82d..7771f1c9 100644 --- a/ensure-shortname-is-set-as-hostname-bnc-820213.patch +++ b/ensure-shortname-is-set-as-hostname-bnc-820213.patch @@ -4,30 +4,28 @@ Subject: ensure shortname is set as hostname (bnc#820213) strip hostname so the domain part isn't set as part of the hostname --- - src/core/hostname-setup.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) + src/core/hostname-setup.c | 4 ++++ + 1 file changed, 4 insertions(+) -Index: systemd-218/src/core/hostname-setup.c +Index: systemd-221/src/core/hostname-setup.c =================================================================== ---- systemd-218.orig/src/core/hostname-setup.c -+++ systemd-218/src/core/hostname-setup.c -@@ -32,7 +32,7 @@ - #include "fileio.h" - - static int read_and_strip_hostname(const char *path, char **hn) { -- char *s; -+ char *s, *domain; +--- systemd-221.orig/src/core/hostname-setup.c ++++ systemd-221/src/core/hostname-setup.c +@@ -34,6 +34,7 @@ int hostname_setup(void) { int r; + _cleanup_free_ char *b = NULL; + const char *hn; ++ char *domain; + bool enoent = false; - assert(path); -@@ -49,6 +49,10 @@ static int read_and_strip_hostname(const - return -ENOENT; - } - + r = read_hostname_config("/etc/hostname", &b); +@@ -46,6 +47,9 @@ int hostname_setup(void) { + hn = NULL; + } else + hn = b; + /* strip any leftover of a domain name */ -+ if ((domain = strchr(s, '.')) != NULL) ++ if ((domain = strchr(hn, '.')) != NULL) + *domain = '\0'; -+ - *hn = s; - return 0; - } + + if (isempty(hn)) { + /* Don't override the hostname if it is already set diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index c4875197..ded80983 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -3,14 +3,14 @@ Date: Thu, 23 Aug 2012 11:08:25 +0200 Subject: fix support for boot prefixed initscript (bnc#746506) --- - src/systemctl/systemctl.c | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) + src/systemctl/systemctl.c | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) -Index: systemd-218/src/systemctl/systemctl.c +Index: systemd-221/src/systemctl/systemctl.c =================================================================== ---- systemd-218.orig/src/systemctl/systemctl.c -+++ systemd-218/src/systemctl/systemctl.c -@@ -5202,8 +5202,26 @@ static int enable_sysv_units(const char +--- systemd-221.orig/src/systemctl/systemctl.c ++++ systemd-221/src/systemctl/systemctl.c +@@ -5165,8 +5165,24 @@ static int enable_sysv_units(const char p[strlen(p) - strlen(".service")] = 0; found_sysv = access(p, F_OK) >= 0; @@ -27,14 +27,12 @@ Index: systemd-218/src/systemctl/systemctl.c + return -ENOMEM; + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; -+ -+ if (!found_sysv) { ++ if (!found_sysv) + continue; -+ } +#else continue; +#endif + } - log_info("%s is not a native service, redirecting to /sbin/chkconfig.", name); - + if (found_native) + log_info("Synchronizing state of %s with SysV init with %s...", name, argv[0]); diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index 52af3ee9..865322fb 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -1,36 +1,41 @@ -From: Frederic Crozat -Date: Fri, 19 Aug 2011 15:29:49 +0000 +Original-From: Frederic Crozat +Original-Date: Fri, 19 Aug 2011 15:29:49 +0000 Subject: handle disable_caplock and compose_table and kbd_rate +References: https://bugzilla.opensuse.org/746595 +Last-Editor: Jan Engelhardt +Date: Fri Jun 19 21:36:27 CEST 2015 -(bnc#746595) --- - src/vconsole/vconsole-setup.c | 151 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 148 insertions(+), 3 deletions(-) + src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 147 insertions(+), 4 deletions(-) -Index: systemd-218/src/vconsole/vconsole-setup.c +Index: systemd-221/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-218.orig/src/vconsole/vconsole-setup.c -+++ systemd-218/src/vconsole/vconsole-setup.c -@@ -40,6 +40,7 @@ - #include "macro.h" +--- systemd-221.orig/src/vconsole/vconsole-setup.c ++++ systemd-221/src/vconsole/vconsole-setup.c +@@ -35,6 +35,8 @@ + #include "log.h" #include "virt.h" #include "fileio.h" ++#include "macro.h" +#include "strv.h" - - static bool is_vconsole(int fd) { - unsigned char data[1]; -@@ -101,8 +102,8 @@ static int enable_utf8(int fd) { + #include "process-util.h" + #include "terminal-util.h" + #include "signal-util.h" +@@ -99,8 +101,10 @@ static int enable_utf8(int fd) { return r; } --static int keymap_load(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) { +-static int keyboard_load_and_wait(const char *vc, const char *map, const char *map_toggle, bool utf8) { - const char *args[8]; -+static int keymap_load(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, pid_t *_pid) { ++static int keyboard_load_and_wait(const char *vc, const char *map, ++ const char *map_toggle, bool utf8, bool disable_capslock) ++{ + const char *args[9]; - int i = 0; + int i = 0, r; pid_t pid; -@@ -121,6 +122,8 @@ static int keymap_load(const char *vc, c +@@ -117,6 +121,8 @@ static int keyboard_load_and_wait(const args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -39,23 +44,23 @@ Index: systemd-218/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -236,11 +239,113 @@ static void font_copy_to_all_vcs(int fd) +@@ -246,11 +252,117 @@ static void font_copy_to_all_vcs(int fd) } } +#ifdef HAVE_SYSV_COMPAT -+static int load_compose_table(const char *vc, const char *compose_table, pid_t *_pid) { ++static int compose_load_and_wait(const char *vc, const char *compose_table) ++{ + const char *args[1024]; -+ int i = 0, j = 0; ++ unsigned int i = 0, j = 0; ++ int ret; + pid_t pid; + char **strv_compose_table = NULL; + char *to_free[1024]; + -+ if (isempty(compose_table)) { -+ /* An empty map means no compose table*/ -+ *_pid = 0; -+ return 0; -+ } ++ if (isempty(compose_table)) ++ /* An empty map means no compose table */ ++ return 1; + + args[i++] = KBD_LOADKEYS; + args[i++] = "-q"; @@ -69,50 +74,51 @@ Index: systemd-218/src/vconsole/vconsole-setup.c + char **name; + char *arg; + -+ STRV_FOREACH (name, strv_compose_table) { -+ if (streq(*name,"-c") || streq(*name,"clear")) { ++ STRV_FOREACH(name, strv_compose_table) { ++ if (streq(*name, "-c") || streq(*name, "clear")) { + compose_clear = true; + continue; + } -+ if (!compose_loaded) { -+ if (compose_clear) -+ args[i++] = "-c"; -+ } -+ asprintf(&arg, "compose.%s",*name); ++ if (!compose_loaded && compose_clear) ++ args[i++] = "-c"; ++ asprintf(&arg, "compose.%s", *name); + compose_loaded = true; + args[i++] = to_free[j++] = arg; -+ ++ if (i >= ELEMENTSOF(args) - 1) ++ break; + } + strv_free(strv_compose_table); + } + args[i++] = NULL; + -+ if ((pid = fork()) < 0) { -+ log_error("Failed to fork: %m"); -+ return -errno; -+ } else if (pid == 0) { ++ pid = fork(); ++ if (pid < 0) ++ return log_error_errno(errno, "Failed to fork: %m"); ++ if (pid == 0) { ++ reset_all_signal_handlers(); ++ reset_signal_mask(); + execv(args[0], (char **) args); + _exit(EXIT_FAILURE); + } + -+ *_pid = pid; -+ -+ for (i=0 ; i < j ; i++) -+ free (to_free[i]); -+ -+ return 0; ++ ret = wait_for_terminate_and_warn(args[0], pid, true); ++ for (i = 0; i < j; ++i) ++ free(to_free[i]); ++ if (ret < 0) ++ return ret; ++ return ret == 0; +} +#endif + -+static int set_kbd_rate(const char *vc, const char *kbd_rate, const char *kbd_delay, pid_t *_pid) { ++static int kbdrate_set_and_wait(const char *vc, const char *kbd_rate, ++ const char *kbd_delay) ++{ + const char *args[7]; -+ int i = 0; ++ int i = 0, ret; + pid_t pid; + -+ if (isempty(kbd_rate) && isempty(kbd_delay)) { -+ *_pid = 0; -+ return 0; -+ } ++ if (isempty(kbd_rate) && isempty(kbd_delay)) ++ return 1; + + args[i++] = "/bin/kbdrate"; + if (!isempty(kbd_rate)) { @@ -126,16 +132,19 @@ Index: systemd-218/src/vconsole/vconsole-setup.c + args[i++] = "-s"; + args[i++] = NULL; + -+ if ((pid = fork()) < 0) { -+ log_error("Failed to fork: %m"); -+ return -errno; -+ } else if (pid == 0) { ++ pid = fork(); ++ if (pid < 0) ++ return log_error_errno(errno, "Failed to fork: %m"); ++ if (pid == 0) { ++ reset_all_signal_handlers(); ++ reset_signal_mask(); + execv(args[0], (char **) args); + _exit(EXIT_FAILURE); + } -+ -+ *_pid = pid; -+ return 0; ++ ret = wait_for_terminate_and_warn(args[0], pid, true); ++ if (ret < 0) ++ return ret; ++ return ret == 0; +} + int main(int argc, char **argv) { @@ -147,13 +156,13 @@ Index: systemd-218/src/vconsole/vconsole-setup.c + _cleanup_free_ char + *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, + *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; -+ pid_t kbd_rate_pid = 0, compose_table_pid = 0; +#endif + bool disable_capslock = false; ++ bool comp_ok, rate_ok; _cleanup_close_ int fd = -1; - bool utf8; - pid_t font_pid = 0, keymap_pid = 0; -@@ -273,6 +378,28 @@ int main(int argc, char **argv) { + bool utf8, font_copy = false, font_ok, keyboard_ok; + int r = EXIT_FAILURE; +@@ -281,6 +393,31 @@ int main(int argc, char **argv) { utf8 = is_locale_utf8(); @@ -166,7 +175,8 @@ Index: systemd-218/src/vconsole/vconsole-setup.c + "COMPOSETABLE", &vc_compose_table, + NULL); + if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r)); ++ log_warning("Failed to read /etc/sysconfig/keyboard: %s", ++ strerror(-r)); + + r = parse_env_file("/etc/sysconfig/console", NEWLINE, + "CONSOLE_FONT", &vc_font, @@ -174,45 +184,33 @@ Index: systemd-218/src/vconsole/vconsole-setup.c + "CONSOLE_UNICODEMAP", &vc_font_unimap, + NULL); + if (r < 0 && r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); ++ log_warning("Failed to read /etc/sysconfig/console: %s", ++ strerror(-r)); + -+ disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; -+#endif ++ disable_capslock = vc_kbd_disable_caps_lock && ++ strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++#endif /* HAVE_SYSV_COMPAT */ + r = parse_env_file("/etc/vconsole.conf", NEWLINE, "KEYMAP", &vc_keymap, "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -312,14 +439,32 @@ int main(int argc, char **argv) { - if (font_pid > 0) - wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true); +@@ -312,11 +449,17 @@ int main(int argc, char **argv) { + (void) disable_utf8(fd); -- r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid); -+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid); - if (r < 0) { - log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); - return EXIT_FAILURE; - } + font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; +- keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8) > 0; ++ keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, ++ utf8, disable_capslock) > 0; +#ifdef HAVE_SYSV_COMPAT -+ r = load_compose_table(vc, vc_compose_table, &compose_table_pid); -+ if (r < 0) { -+ log_error_errno(r, "Failed to start " KBD_LOADKEYS " loading the compose table: %m"); -+ return EXIT_FAILURE; -+ } -+ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid); -+ if (r < 0) { -+ log_error_errno(r, "Failed to start kbdrate: %m"); -+ return EXIT_FAILURE; -+ } ++ comp_ok = compose_load_and_wait(vc, vc_compose_table); ++ rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay); +#endif - if (keymap_pid > 0) - wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true); -+#ifdef HAVE_SYSV_COMPAT -+ if (compose_table_pid > 0) -+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid, true); -+ if (kbd_rate_pid > 0) -+ wait_for_terminate_and_warn("/usr/bin/kbdrate", kbd_rate_pid, true); -+#endif + /* Only copy the font when we executed setfont successfully */ + if (font_copy && font_ok) + (void) font_copy_to_all_vcs(fd); - /* Only copy the font when we started setfont successfully */ - if (font_copy && font_pid > 0) +- return font_ok && keyboard_ok ? EXIT_SUCCESS : EXIT_FAILURE; ++ return font_ok && keyboard_ok && comp_ok && rate_ok ? ++ EXIT_SUCCESS : EXIT_FAILURE; + } diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index a9f6924a..db480a34 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -14,12 +14,10 @@ Cristian Rodríguez units/systemd-vconsole-setup.service.in | 2 - 5 files changed, 94 insertions(+), 3 deletions(-) -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -3715,6 +3715,19 @@ dist_udevrules_DATA += \ - rules/61-accelerometer.rules +--- systemd-222.orig/Makefile.am ++++ systemd-222/Makefile.am +@@ -3805,6 +3805,19 @@ dist_udevrules_DATA += \ + rules/60-persistent-v4l.rules # ------------------------------------------------------------------------------ +numlock_on_SOURCES = \ @@ -35,13 +33,11 @@ Index: systemd-218/Makefile.am + rules/73-seat-numlock.rules + +# ------------------------------------------------------------------------------ - if ENABLE_GUDEV - if ENABLE_GTK_DOC - SUBDIRS += \ -Index: systemd-218/rules/73-seat-numlock.rules -=================================================================== + mtd_probe_SOURCES = \ + src/udev/mtd_probe/mtd_probe.c \ + src/udev/mtd_probe/mtd_probe.h \ --- /dev/null -+++ systemd-218/rules/73-seat-numlock.rules ++++ systemd-222/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -51,10 +47,8 @@ Index: systemd-218/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-218/src/login/numlock-on.c -=================================================================== --- /dev/null -+++ systemd-218/src/login/numlock-on.c ++++ systemd-222/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -90,13 +84,11 @@ Index: systemd-218/src/login/numlock-on.c + + exit(0); +} -Index: systemd-218/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-218.orig/src/vconsole/vconsole-setup.c -+++ systemd-218/src/vconsole/vconsole-setup.c -@@ -42,6 +42,10 @@ - #include "fileio.h" - #include "strv.h" +--- systemd-222.orig/src/vconsole/vconsole-setup.c ++++ systemd-222/src/vconsole/vconsole-setup.c +@@ -41,6 +41,10 @@ + #include "terminal-util.h" + #include "signal-util.h" +#define BIOS_DATA_AREA 0x400 +#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 @@ -105,21 +97,20 @@ Index: systemd-218/src/vconsole/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -342,10 +346,11 @@ int main(int argc, char **argv) { +@@ -359,9 +363,10 @@ int main(int argc, char **argv) { #ifdef HAVE_SYSV_COMPAT _cleanup_free_ char *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, - *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL; + *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL, + *vc_kbd_numlock = NULL; - pid_t kbd_rate_pid = 0, compose_table_pid = 0; #endif - bool disable_capslock = false; + bool disable_capslock = false, numlock = false; + bool comp_ok, rate_ok; _cleanup_close_ int fd = -1; - bool utf8; - pid_t font_pid = 0, keymap_pid = 0; -@@ -384,6 +389,7 @@ int main(int argc, char **argv) { + bool utf8, font_copy = false, font_ok, keyboard_ok; +@@ -399,6 +404,7 @@ int main(int argc, char **argv) { "KBD_DELAY", &vc_kbd_delay, "KBD_RATE", &vc_kbd_rate, "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, @@ -127,54 +118,52 @@ Index: systemd-218/src/vconsole/vconsole-setup.c "COMPOSETABLE", &vc_compose_table, NULL); if (r < 0 && r != -ENOENT) -@@ -398,6 +404,32 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); +@@ -416,6 +422,32 @@ int main(int argc, char **argv) { - disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; + disable_capslock = vc_kbd_disable_caps_lock && + strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; ++ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); +#if defined(__i386__) || defined(__x86_64__) -+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { -+ int _cleanup_close_ fdmem; -+ char c; ++ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) { ++ int _cleanup_close_ fdmem; ++ char c; + -+ fdmem = open ("/dev/mem", O_RDONLY); -+ if (fdmem < 0) { -+ log_error("Failed to open /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } ++ fdmem = open ("/dev/mem", O_RDONLY); ++ if (fdmem < 0) { ++ log_error("Failed to open /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } + -+ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { -+ log_error("Failed to seek /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } ++ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { ++ log_error("Failed to seek /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } + -+ if (read (fdmem, &c, sizeof(char)) == -1) { -+ log_error("Failed to read /dev/mem: %m"); -+ return EXIT_FAILURE; -+ } ++ if (read(fdmem, &c, sizeof(char)) == -1) { ++ log_error("Failed to read /dev/mem: %m"); ++ return EXIT_FAILURE; ++ } + -+ if (c & BDA_KSF4_NUMLOCK_MASK) -+ numlock = true; -+ } else -+#endif -+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes"); - #endif ++ if (c & BDA_KSF4_NUMLOCK_MASK) ++ numlock = true; ++ } ++#endif /* x86 */ + #endif /* HAVE_SYSV_COMPAT */ r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -444,6 +476,10 @@ int main(int argc, char **argv) { - log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m"); - return EXIT_FAILURE; - } +@@ -451,6 +483,10 @@ int main(int argc, char **argv) { + font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; + keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, + utf8, disable_capslock) > 0; + if (numlock) + touch("/run/numlock-on"); + else + unlink("/run/numlock-on"); #ifdef HAVE_SYSV_COMPAT - r = load_compose_table(vc, vc_compose_table, &compose_table_pid); - if (r < 0) { -Index: systemd-218/units/systemd-vconsole-setup.service.in -=================================================================== ---- systemd-218.orig/units/systemd-vconsole-setup.service.in -+++ systemd-218/units/systemd-vconsole-setup.service.in + comp_ok = compose_load_and_wait(vc, vc_compose_table); + rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay); +--- systemd-222.orig/units/systemd-vconsole-setup.service.in ++++ systemd-222/units/systemd-vconsole-setup.service.in @@ -10,7 +10,7 @@ Description=Setup Virtual Console Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) DefaultDependencies=no diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index a441dd59..16e2272a 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -7,11 +7,11 @@ handle ROOT_USES_LANG=ctype (bnc#792182). src/core/locale-setup.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) -Index: systemd-218/src/core/locale-setup.c +Index: systemd-221/src/core/locale-setup.c =================================================================== ---- systemd-218.orig/src/core/locale-setup.c -+++ systemd-218/src/core/locale-setup.c -@@ -36,6 +36,11 @@ int locale_setup(char ***environment) { +--- systemd-221.orig/src/core/locale-setup.c ++++ systemd-221/src/core/locale-setup.c +@@ -34,6 +34,11 @@ int locale_setup(char ***environment) { char **add; char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; @@ -23,7 +23,7 @@ Index: systemd-218/src/core/locale-setup.c if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -82,6 +87,27 @@ int locale_setup(char ***environment) { +@@ -80,6 +85,27 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } diff --git a/hostname-NULL.patch b/hostname-NULL.patch new file mode 100644 index 00000000..ccd9133c --- /dev/null +++ b/hostname-NULL.patch @@ -0,0 +1,13 @@ +Index: systemd-222/src/core/hostname-setup.c +=================================================================== +--- systemd-222.orig/src/core/hostname-setup.c ++++ systemd-222/src/core/hostname-setup.c +@@ -44,7 +44,7 @@ int hostname_setup(void) { + else + log_warning_errno(r, "Failed to read configured hostname: %m"); + +- hn = NULL; ++ hn = strdup("nohostname.set.site"); + } else + hn = b; + /* strip any leftover of a domain name */ diff --git a/insserv-generator.patch b/insserv-generator.patch index 1e1cdf4e..9e5afdbc 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -8,14 +8,16 @@ systemd unit drop-in files to add dependencies --- Makefile.am | 9 src/insserv-generator/Makefile | 28 ++ - src/insserv-generator/insserv-generator.c | 312 ++++++++++++++++++++++++++++++ - 3 files changed, 349 insertions(+) + src/insserv-generator/insserv-generator.c | 316 ++++++++++++++++++++++++++++++ + 3 files changed, 352 insertions(+), 1 deletion(-) create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c ---- systemd-219.orig/Makefile.am -+++ systemd-219/Makefile.am -@@ -621,7 +621,8 @@ nodist_systemunit_DATA += \ +Index: systemd-224/Makefile.am +=================================================================== +--- systemd-224.orig/Makefile.am ++++ systemd-224/Makefile.am +@@ -617,7 +617,8 @@ nodist_systemunit_DATA += \ systemgenerator_PROGRAMS += \ systemd-sysv-generator \ @@ -25,23 +27,23 @@ systemd unit drop-in files to add dependencies endif EXTRA_DIST += \ -@@ -2565,6 +2566,14 @@ systemd_rc_local_generator_LDADD = \ - libsystemd-label.la \ - libsystemd-shared.la +@@ -2556,6 +2557,12 @@ $(systemd_boot): $(systemd_boot_solib) + endif + endif +#------------------------------------------------------------------------------- +systemd_insserv_generator_SOURCES = \ + src/insserv-generator/insserv-generator.c + -+systemd_insserv_generator_LDADD = \ -+ libsystemd-label.la \ -+ libsystemd-shared.la ++systemd_insserv_generator_LDADD = libbasic.la + # ------------------------------------------------------------------------------ - systemd_remount_fs_SOURCES = \ - src/remount-fs/remount-fs.c \ + stub_headers = \ + src/boot/efi/util.h \ +Index: systemd-224/src/insserv-generator/Makefile +=================================================================== --- /dev/null -+++ systemd-219/src/insserv-generator/Makefile ++++ systemd-224/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -71,9 +73,11 @@ systemd unit drop-in files to add dependencies + $(MAKE) -C .. clean + +.PHONY: all clean +Index: systemd-224/src/insserv-generator/insserv-generator.c +=================================================================== --- /dev/null -+++ systemd-219/src/insserv-generator/insserv-generator.c -@@ -0,0 +1,312 @@ ++++ systemd-224/src/insserv-generator/insserv-generator.c +@@ -0,0 +1,316 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** @@ -153,6 +157,7 @@ systemd unit drop-in files to add dependencies + unsigned i; + char *r; + const char *n; ++ int ret; + + assert(name); + assert(_r); @@ -182,7 +187,9 @@ systemd unit drop-in files to add dependencies + return -EINVAL; + + /* Facilities starting with $ are most likely targets */ -+ r = unit_name_build(n, NULL, ".target"); ++ ret = unit_name_build(n, NULL, ".target", &r); ++ if (ret < 0) ++ return ret; + } else if (filename && streq(name, filename)) + /* Names equaling the file name of the services are redundant */ + return 0; @@ -246,7 +253,8 @@ systemd unit drop-in files to add dependencies + r = write_string_file(unit, + "# Automatically generated by systemd-insserv-generator\n\n" + "[Unit]\n" -+ "Wants=remote-fs-pre.target\n"); ++ "Wants=remote-fs-pre.target\n", ++ WRITE_STRING_FILE_CREATE); + if (r) + return r; + free (facility); diff --git a/journald-advice-about-use-of-memory.patch b/journald-advice-about-use-of-memory.patch index 4caf994f..46a3e446 100644 --- a/journald-advice-about-use-of-memory.patch +++ b/journald-advice-about-use-of-memory.patch @@ -16,11 +16,11 @@ What is the rationale for MAP_STACK? src/journal/mmap-cache.c | 16 +++++++++++++++- 4 files changed, 33 insertions(+), 5 deletions(-) -Index: systemd/src/journal/catalog.c +Index: systemd-221/src/journal/catalog.c =================================================================== ---- systemd.orig/src/journal/catalog.c -+++ systemd/src/journal/catalog.c -@@ -470,6 +470,10 @@ finish: +--- systemd-221.orig/src/journal/catalog.c ++++ systemd-221/src/journal/catalog.c +@@ -469,6 +469,10 @@ finish: static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) { const CatalogHeader *h; @@ -31,7 +31,7 @@ Index: systemd/src/journal/catalog.c int fd; void *p; struct stat st; -@@ -492,12 +496,18 @@ static int open_mmap(const char *databas +@@ -491,12 +495,18 @@ static int open_mmap(const char *databas return -EINVAL; } @@ -51,10 +51,10 @@ Index: systemd/src/journal/catalog.c h = p; if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 || le64toh(h->header_size) < sizeof(CatalogHeader) || -Index: systemd/src/journal/journal-authenticate.c +Index: systemd-221/src/journal/journal-authenticate.c =================================================================== ---- systemd.orig/src/journal/journal-authenticate.c -+++ systemd/src/journal/journal-authenticate.c +--- systemd-221.orig/src/journal/journal-authenticate.c ++++ systemd-221/src/journal/journal-authenticate.c @@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f goto finish; } @@ -76,10 +76,10 @@ Index: systemd/src/journal/journal-authenticate.c if (f->fss_file == MAP_FAILED) { f->fss_file = NULL; r = -errno; -Index: systemd/src/journal/journald-kmsg.c +Index: systemd-221/src/journal/journald-kmsg.c =================================================================== ---- systemd.orig/src/journal/journald-kmsg.c -+++ systemd/src/journal/journald-kmsg.c +--- systemd-221.orig/src/journal/journald-kmsg.c ++++ systemd-221/src/journal/journald-kmsg.c @@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s) return 0; } @@ -90,11 +90,11 @@ Index: systemd/src/journal/journald-kmsg.c if (p == MAP_FAILED) { log_error_errno(errno, "Failed to map sequential number file, ignoring: %m"); return 0; -Index: systemd/src/journal/mmap-cache.c +Index: systemd-221/src/journal/mmap-cache.c =================================================================== ---- systemd.orig/src/journal/mmap-cache.c -+++ systemd/src/journal/mmap-cache.c -@@ -467,11 +467,14 @@ static int add_mmap( +--- systemd-221.orig/src/journal/mmap-cache.c ++++ systemd-221/src/journal/mmap-cache.c +@@ -466,11 +466,14 @@ static int add_mmap( struct stat *st, void **ret) { @@ -109,7 +109,7 @@ Index: systemd/src/journal/mmap-cache.c int r; assert(m); -@@ -510,7 +513,8 @@ static int add_mmap( +@@ -509,7 +512,8 @@ static int add_mmap( } for (;;) { @@ -119,7 +119,7 @@ Index: systemd/src/journal/mmap-cache.c if (d != MAP_FAILED) break; if (errno != ENOMEM) -@@ -523,6 +527,16 @@ static int add_mmap( +@@ -522,6 +526,16 @@ static int add_mmap( return -ENOMEM; } diff --git a/kbd-model-map.patch b/kbd-model-map.patch index b7327892..f45b0874 100644 --- a/kbd-model-map.patch +++ b/kbd-model-map.patch @@ -5,10 +5,10 @@ Date: Tue Jan 20 11:33:59 UTC 2015 src/locale/kbd-model-map | 13 +++++++++++++ 1 file changed, 13 insertions(+) -Index: systemd/src/locale/kbd-model-map +Index: systemd-221/src/locale/kbd-model-map =================================================================== ---- systemd.orig/src/locale/kbd-model-map -+++ systemd/src/locale/kbd-model-map +--- systemd-221.orig/src/locale/kbd-model-map ++++ systemd-221/src/locale/kbd-model-map @@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a lt.l4 lt pc105 - terminate:ctrl_alt_bksp lt lt pc105 - terminate:ctrl_alt_bksp diff --git a/let-linker-find-libudev-for-libdevmapper.patch b/let-linker-find-libudev-for-libdevmapper.patch index 4879c708..274d103c 100644 --- a/let-linker-find-libudev-for-libdevmapper.patch +++ b/let-linker-find-libudev-for-libdevmapper.patch @@ -1,35 +1,19 @@ --- - Makefile.am | 4 ++++ configure.ac | 4 ---- - 2 files changed, 4 insertions(+), 4 deletions(-) + 1 file changed, 4 deletions(-) -Index: systemd/Makefile.am +Index: systemd-224/configure.ac =================================================================== ---- systemd.orig/Makefile.am -+++ systemd/Makefile.am -@@ -4789,6 +4789,10 @@ systemd_cryptsetup_CFLAGS = \ - $(AM_CFLAGS) \ - $(LIBCRYPTSETUP_CFLAGS) - -+systemd_cryptsetup_LDFLAGS = \ -+ $(AM_LDFLAGS) \ -+ -Wl,-rpath-link=$(top_srcdir)/.libs -+ - systemd_cryptsetup_LDADD = \ - libsystemd-label.la \ - libudev-internal.la \ -Index: systemd/configure.ac -=================================================================== ---- systemd.orig/configure.ac -+++ systemd/configure.ac -@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*], +--- systemd-224.orig/configure.ac ++++ systemd-224/configure.ac +@@ -199,10 +199,6 @@ AS_CASE([$CC], [*clang*], -Wno-gnu-variable-sized-type-not-at-end \ ])]) --AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], +-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -- -flto -ffat-lto-objects])], +- -flto])], - [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") - AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], + AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], diff --git a/let-vconsole-setup-get-properties-only-once-to-copy-them.patch b/let-vconsole-setup-get-properties-only-once-to-copy-them.patch new file mode 100644 index 00000000..b106fc22 --- /dev/null +++ b/let-vconsole-setup-get-properties-only-once-to-copy-them.patch @@ -0,0 +1,84 @@ +From: Werner Fink +Date: Wed Sep 23 12:37:23 UTC 2015 +Subject: Do not bother vistual console to much with GIO/PIO + +This avoids broken virtual console mapping due stressed ioctl API +for the virtual consoles (boo#904214) + +--- + src/vconsole/vconsole-setup.c | 39 +++++++++++++++++++++++++-------------- + 1 file changed, 25 insertions(+), 14 deletions(-) + +--- src/vconsole/vconsole-setup.c ++++ src/vconsole/vconsole-setup.c 2015-09-23 12:34:33.854018750 +0000 +@@ -202,8 +202,13 @@ static void font_copy_to_all_vcs(int fd) + unsigned short map16[E_TABSZ]; + struct unimapdesc unimapd; + struct unipair unipairs[USHRT_MAX]; ++ struct console_font_op cfo = {}; + int i, r; + ++ bool hasmap8; ++ bool hasmap16; ++ bool hasunimap; ++ + /* get active, and 16 bit mask of used VT numbers */ + r = ioctl(fd, VT_GETSTATE, &vcs); + if (r < 0) { +@@ -211,10 +216,22 @@ static void font_copy_to_all_vcs(int fd) + return; + } + ++ /* copy font from active VT, where the font was uploaded to */ ++ cfo.op = KD_FONT_OP_COPY; ++ cfo.height = vcs.v_active-1; /* tty1 == index 0 */ ++ ++ hasmap8 = (ioctl(fd, GIO_SCRNMAP, map8) >= 0); ++ hasmap16 = (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0); ++ ++ /* unimapd is a ushort count and a pointer to an ++ * array of struct unipair { ushort, ushort } */ ++ unimapd.entries = unipairs; ++ unimapd.entry_ct = USHRT_MAX; ++ hasunimap = (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0); ++ + for (i = 1; i <= 15; i++) { + char vcname[strlen("/dev/vcs") + DECIMAL_STR_MAX(int)]; + _cleanup_close_ int vcfd = -1; +- struct console_font_op cfo = {}; + + if (i == vcs.v_active) + continue; +@@ -229,25 +246,19 @@ static void font_copy_to_all_vcs(int fd) + if (vcfd < 0) + continue; + +- /* copy font from active VT, where the font was uploaded to */ +- cfo.op = KD_FONT_OP_COPY; +- cfo.height = vcs.v_active-1; /* tty1 == index 0 */ ++ /* copy font from active VT to vcs */ + (void) ioctl(vcfd, KDFONTOP, &cfo); + +- /* copy map of 8bit chars */ +- if (ioctl(fd, GIO_SCRNMAP, map8) >= 0) ++ /* copy map of 8bit chars to vcs */ ++ if (hasmap8) + (void) ioctl(vcfd, PIO_SCRNMAP, map8); + +- /* copy map of 8bit chars -> 16bit Unicode values */ +- if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0) ++ /* copy map of 8bit chars -> 16bit Unicode values to vcs */ ++ if (hasmap16) + (void) ioctl(vcfd, PIO_UNISCRNMAP, map16); + +- /* copy unicode translation table */ +- /* unimapd is a ushort count and a pointer to an +- array of struct unipair { ushort, ushort } */ +- unimapd.entries = unipairs; +- unimapd.entry_ct = USHRT_MAX; +- if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) { ++ /* copy unicode translation table to vcs */ ++ if (hasunimap) { + struct unimapinit adv = { 0, 0, 0 }; + + (void) ioctl(vcfd, PIO_UNIMAPCLR, &adv); diff --git a/make-emergency.service-conflict-with-syslog.socket.patch b/make-emergency.service-conflict-with-syslog.socket.patch index d5814921..808fc9a2 100644 --- a/make-emergency.service-conflict-with-syslog.socket.patch +++ b/make-emergency.service-conflict-with-syslog.socket.patch @@ -11,10 +11,10 @@ Reference: bnc#852232 units/emergency.service.in | 1 + 1 file changed, 1 insertion(+) -Index: systemd-218/units/emergency.service.in +Index: systemd-221/units/emergency.service.in =================================================================== ---- systemd-218.orig/units/emergency.service.in -+++ systemd-218/units/emergency.service.in +--- systemd-221.orig/units/emergency.service.in ++++ systemd-221/units/emergency.service.in @@ -11,6 +11,7 @@ Documentation=man:sulogin(8) DefaultDependencies=no Conflicts=shutdown.target diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch index 4226b51c..cd65edec 100644 --- a/parse-crypttab-for-noauto-option.patch +++ b/parse-crypttab-for-noauto-option.patch @@ -2,11 +2,11 @@ src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) -Index: systemd/src/fstab-generator/fstab-generator.c +Index: systemd-221/src/fstab-generator/fstab-generator.c =================================================================== ---- systemd.orig/src/fstab-generator/fstab-generator.c -+++ systemd/src/fstab-generator/fstab-generator.c -@@ -48,6 +48,49 @@ static char *arg_usr_what = NULL; +--- systemd-221.orig/src/fstab-generator/fstab-generator.c ++++ systemd-221/src/fstab-generator/fstab-generator.c +@@ -47,6 +47,49 @@ static char *arg_usr_what = NULL; static char *arg_usr_fstype = NULL; static char *arg_usr_options = NULL; @@ -56,7 +56,7 @@ Index: systemd/src/fstab-generator/fstab-generator.c static int add_swap( const char *what, struct mntent *me, -@@ -118,7 +161,7 @@ static int add_swap( +@@ -108,7 +151,7 @@ static int add_swap( if (r < 0) return r; diff --git a/plymouth-quit-and-wait-for-emergency-service.patch b/plymouth-quit-and-wait-for-emergency-service.patch index 242a05d1..331034ec 100644 --- a/plymouth-quit-and-wait-for-emergency-service.patch +++ b/plymouth-quit-and-wait-for-emergency-service.patch @@ -1,13 +1,13 @@ --- units/console-shell.service.m4.in | 2 ++ - units/emergency.service.in | 3 ++- + units/emergency.service.in | 2 +- units/rescue.service.in | 3 ++- - 3 files changed, 6 insertions(+), 2 deletions(-) + 3 files changed, 5 insertions(+), 2 deletions(-) -Index: systemd/units/console-shell.service.m4.in +Index: systemd-224/units/console-shell.service.m4.in =================================================================== ---- systemd.orig/units/console-shell.service.m4.in -+++ systemd/units/console-shell.service.m4.in +--- systemd-224.orig/units/console-shell.service.m4.in ++++ systemd-224/units/console-shell.service.m4.in @@ -17,6 +17,8 @@ Before=getty.target [Service] Environment=HOME=/root @@ -17,24 +17,23 @@ Index: systemd/units/console-shell.service.m4.in ExecStart=-@SULOGIN@ ExecStopPost=-@SYSTEMCTL@ poweroff Type=idle -Index: systemd/units/emergency.service.in +Index: systemd-224/units/emergency.service.in =================================================================== ---- systemd.orig/units/emergency.service.in -+++ systemd/units/emergency.service.in -@@ -17,7 +17,8 @@ Before=shutdown.target +--- systemd-224.orig/units/emergency.service.in ++++ systemd-224/units/emergency.service.in +@@ -17,7 +17,7 @@ Before=shutdown.target [Service] Environment=HOME=/root WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth quit -+ExecStartPre=-/usr/bin/plymouth --wait +-ExecStartPre=-/bin/plymouth --wait quit ++ExecStartPre=-/usr/bin/plymouth --wait quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" Type=idle -Index: systemd/units/rescue.service.in +Index: systemd-224/units/rescue.service.in =================================================================== ---- systemd.orig/units/rescue.service.in -+++ systemd/units/rescue.service.in +--- systemd-224.orig/units/rescue.service.in ++++ systemd-224/units/rescue.service.in @@ -16,7 +16,8 @@ Before=shutdown.target [Service] Environment=HOME=/root @@ -43,5 +42,5 @@ Index: systemd/units/rescue.service.in +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/plymouth --wait ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" Type=idle diff --git a/portmap-wants-rpcbind-socket.patch b/portmap-wants-rpcbind-socket.patch index 58b9cfbc..77fb2871 100644 --- a/portmap-wants-rpcbind-socket.patch +++ b/portmap-wants-rpcbind-socket.patch @@ -1,5 +1,11 @@ ---- systemd-210/units/rpcbind.target -+++ systemd-210/units/rpcbind.target 2014-04-08 07:21:55.438235838 +0000 +--- + units/rpcbind.target | 1 + + 1 file changed, 1 insertion(+) + +Index: systemd-221/units/rpcbind.target +=================================================================== +--- systemd-221.orig/units/rpcbind.target ++++ systemd-221/units/rpcbind.target @@ -12,3 +12,4 @@ Description=RPC Port Mapper Documentation=man:systemd.special(7) diff --git a/pre_checkin.sh b/pre_checkin.sh index 18706301..80ae3ad6 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -5,8 +5,8 @@ ORIG_SPEC=systemd EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n" -sed "s/^%define bootstrap.*$/${EDIT_WARNING}%define bootstrap 1/; - s/^%define udevpkgname.*$/${EDIT_WARNING}%define udevpkgname udev-mini/; +sed "s/^%define bootstrap .*$/${EDIT_WARNING}%define bootstrap 1/; + s/^%define mini .*$/${EDIT_WARNING}%define mini -mini/; s/^\(Name:.*\)$/\1-mini/; s/^BuildRoot.*/&\n\nProvides: %{real} = %{version}-%{release}\n/ " < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec diff --git a/rescue-emergency-target-conflicts.patch b/rescue-emergency-target-conflicts.patch index f4f15988..a02e7ed3 100644 --- a/rescue-emergency-target-conflicts.patch +++ b/rescue-emergency-target-conflicts.patch @@ -1,13 +1,22 @@ ---- systemd-210/units/emergency.target -+++ systemd-210/units/emergency.target 2014-04-15 11:11:18.618235831 +0000 +--- + units/emergency.target | 1 + + units/rescue.target | 3 ++- + 2 files changed, 3 insertions(+), 1 deletion(-) + +Index: systemd-221/units/emergency.target +=================================================================== +--- systemd-221.orig/units/emergency.target ++++ systemd-221/units/emergency.target @@ -10,4 +10,5 @@ Description=Emergency Mode Documentation=man:systemd.special(7) Requires=emergency.service After=emergency.service +Conflicts=getty.target rescue.target AllowIsolate=yes ---- systemd-210/units/rescue.target -+++ systemd-210/units/rescue.target 2014-04-15 11:14:40.606808928 +0000 +Index: systemd-221/units/rescue.target +=================================================================== +--- systemd-221.orig/units/rescue.target ++++ systemd-221/units/rescue.target @@ -10,7 +10,8 @@ Description=Rescue Mode Documentation=man:systemd.special(7) Requires=sysinit.target rescue.service diff --git a/respect-nfs-bg-option.patch b/respect-nfs-bg-option.patch index 91822e07..a4a4ba65 100644 --- a/respect-nfs-bg-option.patch +++ b/respect-nfs-bg-option.patch @@ -2,11 +2,11 @@ src/fstab-generator/fstab-generator.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -Index: systemd-218/src/fstab-generator/fstab-generator.c +Index: systemd-221/src/fstab-generator/fstab-generator.c =================================================================== ---- systemd-218.orig/src/fstab-generator/fstab-generator.c -+++ systemd-218/src/fstab-generator/fstab-generator.c -@@ -238,8 +238,11 @@ static int add_mount( +--- systemd-221.orig/src/fstab-generator/fstab-generator.c ++++ systemd-221/src/fstab-generator/fstab-generator.c +@@ -289,8 +289,11 @@ static int add_mount( "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", source); @@ -18,5 +18,5 @@ Index: systemd-218/src/fstab-generator/fstab-generator.c + fprintf(f, "Before=%s\n", post); + } - if (passno != 0) { - r = generator_write_fsck_deps(f, arg_dest, what, where, fstype); + if (!automount && opts) { + r = write_requires_after(f, opts); diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index 132b73e1..37147945 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -10,11 +10,11 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink create mode 100644 units/var-lock.mount create mode 100644 units/var-run.mount -Index: systemd-218/Makefile.am +Index: systemd-221/Makefile.am =================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -516,6 +516,12 @@ endif +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -526,6 +526,12 @@ dist_systemunit_DATA += \ dist_systemunit_DATA_busnames += \ units/busnames.target @@ -27,9 +27,9 @@ Index: systemd-218/Makefile.am nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -6086,6 +6092,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -6123,6 +6129,9 @@ GRAPHICAL_TARGET_WANTS += \ systemd-update-utmp-runlevel.service - RUNLEVEL5_TARGET_WANTS += \ + RESCUE_TARGET_WANTS += \ systemd-update-utmp-runlevel.service +LOCAL_FS_TARGET_WANTS += \ + var-run.mount \ @@ -37,10 +37,10 @@ Index: systemd-218/Makefile.am endif SYSINIT_TARGET_WANTS += \ -Index: systemd-218/units/var-lock.mount +Index: systemd-221/units/var-lock.mount =================================================================== --- /dev/null -+++ systemd-218/units/var-lock.mount ++++ systemd-221/units/var-lock.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# @@ -61,10 +61,10 @@ Index: systemd-218/units/var-lock.mount +Where=/var/lock +Type=bind +Options=bind -Index: systemd-218/units/var-run.mount +Index: systemd-221/units/var-run.mount =================================================================== --- /dev/null -+++ systemd-218/units/var-run.mount ++++ systemd-221/units/var-run.mount @@ -0,0 +1,19 @@ +# This file is part of systemd. +# diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index 23bd0163..c00f8623 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -1,16 +1,18 @@ Use and set default logging console for both journald and kernel messages --- - src/journal/journald-console.c | 96 +++++++++++++++++++++++++++++++++++++++++ - src/journal/journald-console.h | 4 + - src/journal/journald-server.c | 5 ++ - 3 files changed, 105 insertions(+) + src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++ + src/journal/journald-console.h | 3 + + src/journal/journald-server.c | 6 ++ + 3 files changed, 109 insertions(+) ---- systemd-219.orig/src/journal/journald-console.c -+++ systemd-219/src/journal/journald-console.c -@@ -23,6 +23,14 @@ +Index: systemd-221/src/journal/journald-console.c +=================================================================== +--- systemd-221.orig/src/journal/journald-console.c ++++ systemd-221/src/journal/journald-console.c +@@ -22,6 +22,14 @@ + #include #include - #include #include +#ifdef HAVE_SYSV_COMPAT +# include @@ -23,11 +25,11 @@ Use and set default logging console for both journald and kernel messages #include "fileio.h" #include "journald-server.h" -@@ -43,6 +51,76 @@ static bool prefix_timestamp(void) { +@@ -45,6 +53,76 @@ static bool prefix_timestamp(void) { return cached_printk_time; } -+void defaul_tty_path(Server *s) ++void default_tty_path(Server *s) +{ +#ifdef HAVE_SYSV_COMPAT + static const char list[] = "/dev/tty10\0" "/dev/console\0"; @@ -100,7 +102,7 @@ Use and set default logging console for both journald and kernel messages void server_forward_console( Server *s, int priority, -@@ -64,6 +142,12 @@ void server_forward_console( +@@ -66,6 +144,12 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; @@ -113,7 +115,7 @@ Use and set default logging console for both journald and kernel messages /* First: timestamp */ if (prefix_timestamp()) { assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -100,7 +184,23 @@ void server_forward_console( +@@ -102,7 +186,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { log_debug_errno(errno, "Failed to open %s for logging: %m", tty); @@ -137,22 +139,34 @@ Use and set default logging console for both journald and kernel messages } if (writev(fd, iovec, n) < 0) ---- systemd-219.orig/src/journal/journald-console.h -+++ systemd-219/src/journal/journald-console.h +Index: systemd-221/src/journal/journald-console.h +=================================================================== +--- systemd-221.orig/src/journal/journald-console.h ++++ systemd-221/src/journal/journald-console.h @@ -24,3 +24,6 @@ #include "journald-server.h" void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred); + +void klogconsole(Server *s); -+void defaul_tty_path(Server *s); ---- systemd-219.orig/src/journal/journald-server.c -+++ systemd-219/src/journal/journald-server.c -@@ -1520,6 +1520,11 @@ int server_init(Server *s) { ++void default_tty_path(Server *s); +Index: systemd-221/src/journal/journald-server.c +=================================================================== +--- systemd-221.orig/src/journal/journald-server.c ++++ systemd-221/src/journal/journald-server.c +@@ -52,6 +52,7 @@ + #include "journal-internal.h" + #include "journal-vacuum.h" + #include "journal-authenticate.h" ++#include "journald-console.h" + #include "journald-rate-limit.h" + #include "journald-kmsg.h" + #include "journald-syslog.h" +@@ -1514,6 +1515,11 @@ int server_init(Server *s) { server_parse_config_file(s); server_parse_proc_cmdline(s); -+ defaul_tty_path(s); ++ default_tty_path(s); + + if (s->tty_path) + klogconsole(s); diff --git a/shut-up-rpmlint-on-var-log-journal.patch b/shut-up-rpmlint-on-var-log-journal.patch index 2304a184..d7ffac19 100644 --- a/shut-up-rpmlint-on-var-log-journal.patch +++ b/shut-up-rpmlint-on-var-log-journal.patch @@ -2,12 +2,12 @@ Makefile.am | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) -Index: systemd-218/Makefile.am +Index: systemd-221/Makefile.am =================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -4209,11 +4209,11 @@ noinst_LTLIBRARIES += \ - libsystemd-journal-core.la +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -4129,11 +4129,11 @@ noinst_LTLIBRARIES += \ + libjournal-core.la journal-install-hook: - -$(MKDIR_P) $(DESTDIR)/var/log/journal diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff index b11ea682..45253b12 100644 --- a/suse-sysv-bootd-support.diff +++ b/suse-sysv-bootd-support.diff @@ -7,12 +7,12 @@ This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. [Implementation note: currently, the unit is generated, but not activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] --- - src/sysv-generator/sysv-generator.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) + src/sysv-generator/sysv-generator.c | 21 +++++++++++++++------ + 1 file changed, 15 insertions(+), 6 deletions(-) ---- systemd-219.orig/src/sysv-generator/sysv-generator.c -+++ systemd-219/src/sysv-generator/sysv-generator.c -@@ -42,7 +42,8 @@ +--- systemd-222.orig/src/sysv-generator/sysv-generator.c ++++ systemd-222/src/sysv-generator/sysv-generator.c +@@ -39,7 +39,8 @@ typedef enum RunlevelType { RUNLEVEL_UP, @@ -22,7 +22,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] } RunlevelType; static const struct { -@@ -50,6 +51,9 @@ static const struct { +@@ -47,6 +48,9 @@ static const struct { const char *target; const RunlevelType type; } rcnd_table[] = { @@ -30,9 +30,9 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] + { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, + /* Standard SysV runlevels for start-up */ - { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, - { "rc2.d", SPECIAL_RUNLEVEL2_TARGET, RUNLEVEL_UP }, -@@ -65,7 +69,7 @@ static const struct { + { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, + { "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP }, +@@ -62,10 +66,10 @@ static const struct { directories in this order, and we want to make sure that sysv_start_priority is known when we first load the unit. And that value we only know from S links. Hence @@ -40,28 +40,23 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] + UP/SYSINIT must be read before DOWN */ }; - typedef struct SysvStub { -@@ -83,7 +87,7 @@ typedef struct SysvStub { - bool reload; - } SysvStub; - -const char *arg_dest = "/tmp"; +static const char *arg_dest = "/tmp"; - static int add_symlink(const char *service, const char *where) { - _cleanup_free_ char *from = NULL, *to = NULL; -@@ -235,6 +239,10 @@ static bool usage_contains_reload(const - static char *sysv_translate_name(const char *name) { - char *r; + typedef struct SysvStub { + char *name; +@@ -243,6 +247,10 @@ static char *sysv_translate_name(const c + _cleanup_free_ char *c = NULL; + char *res; + if (startswith(name, "boot.")) + /* Drop SuSE-style boot. prefix */ + name += 5; + - r = new(char, strlen(name) + strlen(".service") + 1); - if (!r) + c = strdup(name); + if (!c) return NULL; -@@ -864,10 +872,10 @@ static int set_dependencies_from_rcnd(Lo +@@ -859,10 +867,10 @@ static int set_dependencies_from_rcnd(co if (de->d_name[0] == 'S') { @@ -74,7 +69,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] r = set_ensure_allocated(&runlevel_services[i], NULL); if (r < 0) -@@ -878,7 +886,8 @@ static int set_dependencies_from_rcnd(Lo +@@ -873,7 +881,8 @@ static int set_dependencies_from_rcnd(co goto finish; } else if (de->d_name[0] == 'K' && diff --git a/sysctl-handle-boot-sysctl.conf-kernel_release.patch b/sysctl-handle-boot-sysctl.conf-kernel_release.patch deleted file mode 100644 index 08247c82..00000000 --- a/sysctl-handle-boot-sysctl.conf-kernel_release.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 752a4370ecb5643a432ad73b1e22c80cd304948f Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Fri, 17 May 2013 13:31:46 +0200 -Subject: [PATCH] sysctl: handle /boot/sysctl.conf- - -Add support for kernel release sysctl.conf files (for per-flavor -configuration), needed by openSUSE (bnc#809420). ---- - src/sysctl/sysctl.c | 8 ++++++++ - units/systemd-sysctl.service.in | 2 ++ - 2 files changed, 10 insertions(+) - -Index: systemd-218/src/sysctl/sysctl.c -=================================================================== ---- systemd-218.orig/src/sysctl/sysctl.c -+++ systemd-218/src/sysctl/sysctl.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #include "log.h" - #include "strv.h" -@@ -310,6 +311,13 @@ int main(int argc, char *argv[]) { - } else { - _cleanup_strv_free_ char **files = NULL; - char **f; -+ char kernel_sysctl[PATH_MAX]; -+ struct utsname uts; -+ -+ assert_se(uname(&uts) >= 0); -+ -+ snprintf(kernel_sysctl, sizeof(kernel_sysctl), "/boot/sysctl.conf-%s", uts.release); -+ r = parse_file(sysctl_options, kernel_sysctl, true); - - r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); - if (r < 0) { -Index: systemd-218/units/systemd-sysctl.service.in -=================================================================== ---- systemd-218.orig/units/systemd-sysctl.service.in -+++ systemd-218/units/systemd-sysctl.service.in -@@ -13,6 +13,8 @@ Conflicts=shutdown.target - After=systemd-modules-load.service - Before=sysinit.target shutdown.target - ConditionPathIsReadWrite=/proc/sys/ -+ConditionPathExistsGlob=|/boot/sysctl.conf-%v -+RequiresMountsFor=/boot - - [Service] - Type=oneshot diff --git a/systemctl-set-default-target.patch b/systemctl-set-default-target.patch index 86aec7e9..de694a4b 100644 --- a/systemctl-set-default-target.patch +++ b/systemctl-set-default-target.patch @@ -6,11 +6,11 @@ This solves the bug bnc#868439 man/systemctl.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -Index: systemd/man/systemctl.xml +Index: systemd-221/man/systemctl.xml =================================================================== ---- systemd.orig/man/systemctl.xml -+++ systemd/man/systemctl.xml -@@ -445,7 +445,7 @@ along with systemd; If not, see @@ -19,7 +19,7 @@ Index: systemd/man/systemctl.xml any existing conflicting symlinks. When used with halt, -@@ -1215,6 +1215,8 @@ kobject-uevent 1 systemd-udevd-kernel.so +@@ -1237,6 +1237,8 @@ kobject-uevent 1 systemd-udevd-kernel.so Return the default target to boot into. This returns the target unit name default.target is aliased (symlinked) to. diff --git a/systemd-219.tar.xz b/systemd-219.tar.xz deleted file mode 100644 index d90808ee..00000000 --- a/systemd-219.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c57113454e37c040d0cb481bd960ae7cf3a3fe0a231ff4945259bc74503f2d9 -size 3938228 diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch index 8eb7f440..a67fa47f 100644 --- a/systemd-add-user-keep.patch +++ b/systemd-add-user-keep.patch @@ -1,13 +1,13 @@ --- man/tmpfiles.d.xml | 3 +++ - src/tmpfiles/tmpfiles.c | 48 ++++++++++++++++++++++++++++++++++++++++-------- - 2 files changed, 43 insertions(+), 8 deletions(-) + src/tmpfiles/tmpfiles.c | 47 ++++++++++++++++++++++++++++++++++++++++------- + 2 files changed, 43 insertions(+), 7 deletions(-) -Index: systemd/man/tmpfiles.d.xml +Index: systemd-221/man/tmpfiles.d.xml =================================================================== ---- systemd.orig/man/tmpfiles.d.xml -+++ systemd/man/tmpfiles.d.xml -@@ -489,6 +489,9 @@ +--- systemd-221.orig/man/tmpfiles.d.xml ++++ systemd-221/man/tmpfiles.d.xml +@@ -528,6 +528,9 @@ f, F, and w may be used to specify a short string that is written to the file, suffixed by a newline. For @@ -15,13 +15,21 @@ Index: systemd/man/tmpfiles.d.xml + usernames. If given, only paths belonging to these users will be excluded + during directory cleanup. Ignored for all other lines. For C, specifies the source file or - directory. For t determines extended - attributes to be set. For a determines -Index: systemd/src/tmpfiles/tmpfiles.c + directory. For t, T + determines extended attributes to be set. For +Index: systemd-221/src/tmpfiles/tmpfiles.c =================================================================== ---- systemd.orig/src/tmpfiles/tmpfiles.c -+++ systemd/src/tmpfiles/tmpfiles.c -@@ -345,6 +345,7 @@ static int dir_cleanup( +--- systemd-221.orig/src/tmpfiles/tmpfiles.c ++++ systemd-221/src/tmpfiles/tmpfiles.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + #include "log.h" + #include "util.h" +@@ -358,6 +359,7 @@ static int dir_cleanup( struct timespec times[2]; bool deleted = false; int r = 0; @@ -29,24 +37,23 @@ Index: systemd/src/tmpfiles/tmpfiles.c while ((dent = readdir(d))) { struct stat s; -@@ -395,14 +396,45 @@ static int dir_cleanup( +@@ -408,14 +410,45 @@ static int dir_cleanup( } /* Is there an item configured for this path? */ -- if (hashmap_get(items, sub_path)) { +- if (ordered_hashmap_get(items, sub_path)) { - log_debug("Ignoring \"%s\": a separate entry exists.", sub_path); - continue; -- } ++ bool found_glob = false; ++ found = ordered_hashmap_get(items, sub_path); ++ if (!found) { ++ found_glob = true; ++ found = find_glob(globs, sub_path); + } - - if (find_glob(globs, sub_path)) { - log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); - continue; -+ bool found_glob = false; -+ found = hashmap_get(items, sub_path); -+ if (!found) { -+ found_glob = true; -+ found = find_glob(globs, sub_path); -+ } + if (found) { + struct passwd *pw; + char *userfound = NULL, *args; diff --git a/systemd-bfo88401.patch b/systemd-bfo88401.patch deleted file mode 100644 index c2733d67..00000000 --- a/systemd-bfo88401.patch +++ /dev/null @@ -1,135 +0,0 @@ -From f78f265f405a61387c6c12a879ac0d6b6dc958db Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Apr 2015 16:04:50 +0200 -Subject: core: always coldplug units that are triggered by other units before - those - -Let's make sure that we don't enqueue triggering jobs for units before -those units are actually fully loaded. - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/031176.html -https://bugs.freedesktop.org/show_bug.cgi?id=88401 - -diff --git a/src/core/unit.c b/src/core/unit.c -index 70a2b57..2b356e2 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2876,13 +2876,32 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - } - - int unit_coldplug(Unit *u) { -+ Unit *other; -+ Iterator i; - int r; - - assert(u); - -- if (UNIT_VTABLE(u)->coldplug) -- if ((r = UNIT_VTABLE(u)->coldplug(u)) < 0) -+ /* Make sure we don't enter a loop, when coldplugging -+ * recursively. */ -+ if (u->coldplugged) -+ return 0; -+ -+ u->coldplugged = true; -+ -+ /* Make sure everything that we might pull in through -+ * triggering is coldplugged before us */ -+ SET_FOREACH(other, u->dependencies[UNIT_TRIGGERS], i) { -+ r = unit_coldplug(other); -+ if (r < 0) - return r; -+ } -+ -+ if (UNIT_VTABLE(u)->coldplug) { -+ r = UNIT_VTABLE(u)->coldplug(u); -+ if (r < 0) -+ return r; -+ } - - if (u->job) { - r = job_coldplug(u->job); -diff --git a/src/core/unit.h b/src/core/unit.h -index be306a0..1a44271 100644 ---- a/src/core/unit.h -+++ b/src/core/unit.h -@@ -104,6 +104,7 @@ struct Unit { - char *fragment_path; /* if loaded from a config file this is the primary path to it */ - char *source_path; /* if converted, the source file */ - char **dropin_paths; -+ - usec_t fragment_mtime; - usec_t source_mtime; - usec_t dropin_mtime; -@@ -233,6 +234,9 @@ struct Unit { - bool cgroup_realized:1; - bool cgroup_members_mask_valid:1; - bool cgroup_subtree_mask_valid:1; -+ -+ /* Did we already invoke unit_coldplug() for this unit? */ -+ bool coldplugged; - }; - - struct UnitStatusMessageFormats { --- -cgit v0.10.2 - - -From 4370633083dd9453da183c468cf89cc17254ac39 Mon Sep 17 00:00:00 2001 -From: Ivan Shapovalov -Date: Mon, 27 Apr 2015 21:19:02 +0300 -Subject: core: coldplug all units which participate in jobs during - coldplugging - -This is yet another attempt to fix coldplugging order (more especially, -the problem which happens when one creates a job during coldplugging and -it references a not-yet-coldplugged unit). - -Now we forcibly coldplug all units which participate in jobs. This -is a superset of previously implemented handling of the UNIT_TRIGGERS -dependencies, so that handling is removed. - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/031212.html -https://bugs.freedesktop.org/show_bug.cgi?id=88401 (once again) - -diff --git a/src/core/transaction.c b/src/core/transaction.c -index 5974b1e..7b19e2f 100644 ---- a/src/core/transaction.c -+++ b/src/core/transaction.c -@@ -848,6 +848,13 @@ int transaction_add_job_and_dependencies( - assert(type < _JOB_TYPE_MAX_IN_TRANSACTION); - assert(unit); - -+ /* Before adding jobs for this unit, let's ensure that its state has been loaded -+ * This matters when jobs are spawned as part of coldplugging itself (see e. g. path_coldplug()). -+ * This way, we "recursively" coldplug units, ensuring that we do not look at state of -+ * not-yet-coldplugged units. */ -+ if (unit->manager->n_reloading > 0) -+ unit_coldplug(unit); -+ - /* log_debug("Pulling in %s/%s from %s/%s", */ - /* unit->id, job_type_to_string(type), */ - /* by ? by->unit->id : "NA", */ -diff --git a/src/core/unit.c b/src/core/unit.c -index 496db6c..b7ab084 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2893,14 +2893,6 @@ int unit_coldplug(Unit *u) { - - u->coldplugged = true; - -- /* Make sure everything that we might pull in through -- * triggering is coldplugged before us */ -- SET_FOREACH(other, u->dependencies[UNIT_TRIGGERS], i) { -- r = unit_coldplug(other); -- if (r < 0) -- return r; -- } -- - if (UNIT_VTABLE(u)->coldplug) { - r = UNIT_VTABLE(u)->coldplug(u); - if (r < 0) --- -cgit v0.10.2 - - diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch index 89c83e42..60b98265 100644 --- a/systemd-dbus-system-bus-address.patch +++ b/systemd-dbus-system-bus-address.patch @@ -1,13 +1,26 @@ --- + src/basic/def.h | 2 +- src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/shared/def.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) -Index: systemd/src/libsystemd/sd-bus/sd-bus.c +Index: systemd-221/src/basic/def.h =================================================================== ---- systemd.orig/src/libsystemd/sd-bus/sd-bus.c -+++ systemd/src/libsystemd/sd-bus/sd-bus.c -@@ -809,8 +809,8 @@ static int parse_container_unix_address( +--- systemd-221.orig/src/basic/def.h ++++ systemd-221/src/basic/def.h +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus" + #define DEFAULT_SYSTEM_BUS_ADDRESS KERNEL_SYSTEM_BUS_ADDRESS ";" UNIX_SYSTEM_BUS_ADDRESS + #define UNIX_USER_BUS_ADDRESS_FMT "unix:path=%s/bus" +Index: systemd-221/src/libsystemd/sd-bus/sd-bus.c +=================================================================== +--- systemd-221.orig/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-221/src/libsystemd/sd-bus/sd-bus.c +@@ -837,8 +837,8 @@ static int parse_container_unix_address( b->nspid = 0; b->sockaddr.un.sun_family = AF_UNIX; @@ -18,16 +31,3 @@ Index: systemd/src/libsystemd/sd-bus/sd-bus.c return 0; } -Index: systemd/src/shared/def.h -=================================================================== ---- systemd.orig/src/shared/def.h -+++ systemd/src/shared/def.h -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS diff --git a/systemd-install-compat_pkgconfig-always.patch b/systemd-install-compat_pkgconfig-always.patch index c378af51..57fb6129 100644 --- a/systemd-install-compat_pkgconfig-always.patch +++ b/systemd-install-compat_pkgconfig-always.patch @@ -1,6 +1,12 @@ ---- a/Makefile.am -+++ b/Makefile.am -@@ -4560,12 +4560,6 @@ lib_LTLIBRARIES += \ +--- + Makefile.am | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +Index: systemd-221/Makefile.am +=================================================================== +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -5876,12 +5876,6 @@ lib_LTLIBRARIES += \ libsystemd-id128.la \ libsystemd-daemon.la @@ -13,7 +19,7 @@ # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed compat-lib-install-hook: libname=libsystemd-login.so && $(move-to-rootlibdir) -@@ -4583,6 +4577,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install +@@ -5899,6 +5893,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook endif @@ -24,5 +30,5 @@ + src/compat-libs/libsystemd-daemon.pc + EXTRA_DIST += \ + src/compat-libs/linkwarning.h \ src/compat-libs/libsystemd-journal.pc.in \ - src/compat-libs/libsystemd-login.pc.in \ diff --git a/systemd-mini.changes b/systemd-mini.changes index 21c45c47..fcf4a2ad 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,7 +1,270 @@ ------------------------------------------------------------------- -Thu Sep 24 12:47:29 UTC 2015 - dimstar@opensuse.org +Fri Sep 25 14:20:41 UTC 2015 - werner@suse.de -- Add systemd-bfo88401.patch: do not restart services on coldplug. +- Fix patch tty-ask-password-agent-on-console.patch not to crash + away but enable it to ask on all devices of /dev/console + +------------------------------------------------------------------- +Wed Sep 23 14:19:32 UTC 2015 - jengelh@inai.de + +- Avoid "file not found /etc/udev/rules.d/70-persistent-net.rules" + waring occurring in %post + +------------------------------------------------------------------- +Wed Sep 23 12:41:19 UTC 2015 - werner@suse.de + +- Add patch let-vconsole-setup-get-properties-only-once-to-copy-them.patch + to avoid broken virtual console mapping due stressed ioctl API + for the virtual consoles (boo#904214) + +------------------------------------------------------------------- +Mon Sep 7 12:21:06 UTC 2015 - werner@suse.de + +- Fix last change that is use the new name for udev packages in %pretrans. + +------------------------------------------------------------------- +Mon Sep 7 11:50:21 UTC 2015 - fbui@suse.com + +- restore usage of LUA in %pretrans. + +------------------------------------------------------------------- +Mon Sep 7 08:09:05 UTC 2015 - werner@suse.de + +- Try to generate the systemd users and groups always in same order + to avoid republish other packages (boo#944660) + +------------------------------------------------------------------- +Fri Aug 21 07:49:33 UTC 2015 - fbui@suse.com + +- cleanup specfile by removing commands that were dealing with systemd + pre-generated files: we're now using systemd tarball generated directly + from the git repo which doesn't contain any of these files. +- there's no point in using LUA in %pretrans + +------------------------------------------------------------------- +Wed Aug 19 09:34:41 UTC 2015 - fbui@suse.com + +- Drop 0009-make-xsltproc-use-correct-ROFF-links.patch + +This patch was initialy added to workaround bsc#842844. But it +appears that man(1) was fixed (included since 13.2 at least) to +handle manual pages that consist only of a .so directive such as +'.so '. + +------------------------------------------------------------------- +Thu Aug 13 11:46:12 UTC 2015 - werner@suse.de + +- Change use-rndaddentropy-ioctl-to-load-random-seed.patch to + make it work on big endian + +------------------------------------------------------------------- +Tue Aug 11 09:48:26 UTC 2015 - jengelh@inai.de + +- Use Obsolete/Provides strategy from + windows:mingw:mingw64/mingw64-cross-gcc to do the bootstrap + cycle and kick out -mini afterwards. + +------------------------------------------------------------------- +Tue Aug 11 05:15:09 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 224 +* systemd-networkd gained a number of new configuration options + for DHCP, tunnels and bridges +* systemd-efi-boot-generator functionality was merged into + systemd-gpt-auto-generator. + +------------------------------------------------------------------- +Mon Aug 10 13:16:54 UTC 2015 - sndirsch@suse.com + +- /usr/share/systemd/kbd-model-map: added entries for + xkeyboard-config converted keymaps; mappings, which already + exist in original systemd mapping table are being ignored + though, i.e. not overwritten; needs kbd in buildrequires + (FATE#318426) + +------------------------------------------------------------------- +Wed Jul 29 18:10:53 UTC 2015 - meissner@suse.com + +- hostname-NULL.patch: Work around a crash on XEN hosts + in OBS. /etc/hostname is not present and systemd then does + strchr(hostname,soemthing) with hostname NULL. + +------------------------------------------------------------------- +Wed Jul 29 09:02:21 UTC 2015 - werner@suse.de + +- Add Correct_assert_on_unexpected_error_code.patch to work around + a problem of an assert on ENODEV for closing fd on an input + event device (boo#939571) + +------------------------------------------------------------------- +Mon Jul 13 15:31:46 UTC 2015 - jengelh@inai.de + +- Remove udev-generate-rules.sh, apparently not used by anything in + the systemd nor udev-persistent-ifnames package. + +------------------------------------------------------------------- +Wed Jul 8 20:44:57 UTC 2015 - crrodriguez@opensuse.org + +- Systemd v222, bugfix release. +- Drop upstream patches +0006-pam_systemd-Properly-check-kdbus-availability.patch +0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch +0031-install-fix-bad-memory-access.patch +1032-ata_id-unbotch-format-specifier.patch +- Drop SUSE patch 1013-no-runtime-PM-for-IBM-consoles.patch + udev does no longer enable USB HID power management at all. +- The udev accelerometer helper was removed, obsoleted by + iio-sensor-proxy package. +- networkd gained a new configuration option IPv6PrivacyExtensions. +- udev does not longer support the WAIT_FOR_SYSFS= key in udev + rules. There are no known issues with current sysfs, + and udev does not need or should be used to work around such bugs. + +------------------------------------------------------------------- +Tue Jul 7 08:54:38 UTC 2015 - jengelh@inai.de + +- Avoid restarting logind [bnc#934901] +- Do not suppress errors in any case, even if they are ignored + +------------------------------------------------------------------- +Sun Jul 5 15:52:33 UTC 2015 - hrvoje.senjan@gmail.com + +- Fix devel package requires (both mini and real required real libsystemd0) + +------------------------------------------------------------------- +Fri Jul 3 11:17:01 UTC 2015 - werner@suse.de + +- Rework patch tty-ask-password-agent-on-console.patch to fit the + requisition of https://bugs.freedesktop.org/show_bug.cgi?id=82004 + +------------------------------------------------------------------- +Wed Jul 1 09:42:44 UTC 2015 - jengelh@inai.de + +- Rework "-mini" package logic to not conflict with itself and + then add libsystemd0 to mini. + +------------------------------------------------------------------- +Wed Jul 1 03:43:51 UTC 2015 - crrodriguez@opensuse.org + +- remove SysVStartPriority= from after-local.service, + unsupported since v218. + Note that this option was only parsed and that's it. the logic + to give "start priority" was never implemented. + +------------------------------------------------------------------- +Wed Jul 1 03:20:20 UTC 2015 - crrodriguez@opensuse.org + +- change the default fallback ntp servers to the opensuse + pool.ntp.org vendor zone. +- We still need to run systemd-sysctl.service after local-fs.target + otherwise it works only when /boot is in the root filesystem but + not when it is a separate partition. + +------------------------------------------------------------------- +Fri Jun 26 17:14:46 CEST 2015 - sbrabec@suse.com + +- Obsolete pm-utils and suspend (boo#925873). +- Remove pm-utils support + (remove Forward-suspend-hibernate-calls-to-pm-utils.patch). + +------------------------------------------------------------------- +Thu Jun 25 17:27:06 UTC 2015 - crrodriguez@opensuse.org + +- remove patch sysctl-handle-boot-sysctl.conf-kernel_release.patch + from the filelist. + +------------------------------------------------------------------- +Thu Jun 25 05:56:55 UTC 2015 - crrodriguez@opensuse.org + +- libpcre, glib2 and libusb are not used by systemd, remove + from buildrequires. + +------------------------------------------------------------------- +Thu Jun 25 05:19:54 UTC 2015 - crrodriguez@opensuse.org + +- 1032-ata_id-unbotch-format-specifier.patch: fix udev ata_id + output. +- 0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch + fix StopWhenUnneeded=true in combination with a Requisite= + dependency. +- 0031-install-fix-bad-memory-access.patch: Fix Bad memory access +- 0006-pam_systemd-Properly-check-kdbus-availability.patch: if + kdbus is enabled (i.e boot with kdbus=1) DBUS_SESSION_BUS_ADDRESS + must not be exported. +- spec: add a min_kernel_version macro to ensure the package + conflicts with kernel versions in which systemd cannot run. + +------------------------------------------------------------------- +Wed Jun 24 20:06:27 UTC 2015 - crrodriguez@opensuse.org + +- sysctl-handle-boot-sysctl.conf-kernel_release.patch dropped, + replaced by a tmpfiles.d snippet "current-kernel-sysctl.conf" + (feature implemented in v220 just for our usecase) + +------------------------------------------------------------------- +Wed Jun 24 19:45:17 UTC 2015 - crrodriguez@opensuse.org + +- fix build when resolved is enabled +- remove fsck -l test in spec file, systemd requires util-linux + 2.26 or later where this feature is already available. + +------------------------------------------------------------------- +Wed Jun 24 17:43:22 UTC 2015 - hrvoje.senjan@gmail.com + +- Fix bootstrap build by guarding filelists (man pages don't get + built in bootstrap mode) +- Drop commented sections from baselibs.conf, allows format_spec_file + to have a successful run + +------------------------------------------------------------------- +Wed Jun 24 14:17:04 UTC 2015 - mpluskal@suse.com + +- Install 50-coredump.conf as coredumpctl is now installed by + default and does not use journal anymore as default storage + +------------------------------------------------------------------- +Fri Jun 19 20:51:14 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 221 +* From 220: +* libgudev was moved into a package of its own +* Runlevels 2, 3 and 4 are no longer distinct, they all map to + multi-user.target. +* The EFI System Partition mounted to /boot will be unmounted + 2 minutes after boot. +* systemd does not support direct live-upgrades (via `systemctl + daemon-reexec`) from versions older than v44 anymore. +* systemd-nspawn may now be called as part of a shell pipeline. +* systemd-shutdownd has been removed. This service was + previously responsible for implementing scheduled shutdowns + as exposed in /usr/bin/shutdown's time parameter. This + functionality has now been moved into systemd-logind and is + accessible via a bus interface. +* udev will no longer call blkid and create symlinks for all + block devices, but merely those from a whitelist + (cf. 60-persistent-storage.rules). +* /usr/lib/os-release gained a new optional field VARIANT= +* Details at + http://lists.freedesktop.org/archives/systemd-devel/2015-May/032147.html +* From 221: +* New sd-bus and sd-event APIs in libsystemd +* If there is both a systemd unit and a SysV init script for the + same service name, and `systemctl enable` or other operation is + run, both will now be enabled (or execute the related operation + on both), not just the unit. +- Split libsystemd0 to support systemd-less nspawn containers +- Redo manpage file lists without %exclude, tends to hide + unpackaged files. +- hwdb belongs to udev +- Resolve memory leak and add missing _cleanup_free_ to + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch +- Remove systemd-powerd-initctl-support.patch + (no longer builds because shutdownd is gone) +- Remove quilt-patches/0001-core-rework-device-state-logic.patch, + 0001-Let-some-boolean-survive-a-daemon-reload.patch + (merged upstream), + 0001-Let-some-boolean-survive-a-daemon-reload.patch + (obsolete) ------------------------------------------------------------------- Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 4bf79010..10026de9 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -18,10 +18,11 @@ ##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### %define bootstrap 1 -%define real systemd ##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### -%define udevpkgname udev-mini -%define udev_major 1 +%define mini -mini +%define real systemd +%define min_kernel_version 3.7 + %bcond_without bash_completion %bcond_without networkd %bcond_without sysvcompat @@ -46,7 +47,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 219 +Version: 224 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -61,8 +62,8 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes BuildRequires: gperf -BuildRequires: gtk-doc BuildRequires: intltool +BuildRequires: kbd BuildRequires: libacl-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel @@ -71,12 +72,11 @@ BuildRequires: pam-devel BuildRequires: systemd-rpm-macros BuildRequires: xz BuildRequires: config(suse-module-tools) -BuildRequires: pkgconfig(blkid) >= 2.24 +BuildRequires: pkgconfig(blkid) >= 2.26 BuildRequires: pkgconfig(libkmod) >= 15 BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpci) >= 3 -BuildRequires: pkgconfig(libpcre) -BuildRequires: pkgconfig(mount) >= 2.20 +BuildRequires: pkgconfig(mount) >= 2.26 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif @@ -85,28 +85,23 @@ BuildRequires: pkgconfig(libsepol) Conflicts: sysvinit %if 0%{?bootstrap} #!BuildIgnore: dbus-1 -Requires: this-is-only-for-build-envs -Conflicts: systemd -Conflicts: kiwi +Provides: systemd = %version-%release +Conflicts: otherproviders(systemd) %else BuildRequires: docbook-xsl-stylesheets -BuildRequires: gobject-introspection-devel -BuildRequires: gtk-doc BuildRequires: libgcrypt-devel -BuildRequires: libusb-devel BuildRequires: libxslt-tools %if %{with python} BuildRequires: python %endif BuildRequires: libapparmor-devel -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 BuildRequires: pkgconfig(libmicrohttpd) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev -Requires: %{udevpkgname} >= 172 +Requires: udev >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd @@ -117,7 +112,7 @@ BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.25 +Requires: util-linux >= 2.26 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 @@ -129,11 +124,14 @@ Requires(post): /usr/bin/getent Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 +Conflicts: kernel < %{min_kernel_version} Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} +Obsoletes: pm-utils <= 1.4.1 +Obsoletes: suspend <= 1.0 -#Git-Clone: git://anongit.freedesktop.org/systemd/systemd -Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz +#Git-Clone: git://github.com/systemd/systemd +Source: https://github.com/systemd/systemd/archive/v%version.tar.gz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else @@ -146,7 +144,6 @@ Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source1063: udev-generate-persistent-rule.sh Source1065: systemd-remount-tmpfs # handle SUSE specific kbd settings @@ -170,8 +167,6 @@ Patch28: apply-ACL-for-nvidia-uvm-device-node.patch Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch -# PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file -Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch Patch42: systemd-pam_config.patch @@ -180,8 +175,6 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed -Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) @@ -194,8 +187,6 @@ Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) -Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -206,8 +197,6 @@ Patch180: 0014-journald-with-journaling-FS.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch183: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE systemd-powerd-initctl-support.patch -Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) @@ -253,10 +242,10 @@ Patch490: watch_resolv.conf_for_become_changed.patch Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -Patch522: 0001-core-rework-device-state-logic.patch -# PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM -Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch -Patch524: systemd-bfo88401.patch +# PATCH-WORKAROUND-SUSE (boo#939571) +Patch522: Correct_assert_on_unexpected_error_code.patch +# PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) +Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch # UDEV PATCHES # ============ @@ -282,8 +271,6 @@ Patch1007: 1007-physical-hotplug-cpu-and-memory.patch Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch -# PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) -Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 @@ -302,6 +289,8 @@ Patch1096: 1096-new-udev-root-symlink-generator.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch # PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch Patch1098: 1098-systemd-networkd-alias-network-service.patch +# PATCH-FIX-OPENSUSE hostname-NULL.patch - fix crash on xen build hosts in OBS Marcus Meissner +Patch1099: hostname-NULL.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -331,10 +320,14 @@ Some systemd commands offer bash completion, but it's an optional dependency. Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ -Requires: %{name} = %{version} +Requires: libsystemd0%{?mini} = %version Requires: systemd-rpm-macros %if 0%{?bootstrap} -Conflicts: systemd-devel +Provides: systemd-devel = %version-%release +Conflicts: otherproviders(systemd-devel) +%else +Obsoletes: systemd-mini-devel +Provides: systemd-mini-devel %endif %description devel @@ -352,7 +345,39 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. -%package -n %{udevpkgname} +%package -n libsystemd0%{?mini} +Summary: Component library for systemd +License: LGPL-2.1+ +Group: System/Libraries +%if 0%{?bootstrap} +Conflicts: libsystemd0 +%else +Obsoletes: libsystemd0-mini +Provides: libsystemd0-mini +%endif + +%description -n libsystemd0%{?mini} +This library provides several of the systemd C APIs: + +* sd-bus implements an alternative D-Bus client library that is + relatively easy to use, very efficient and supports both classic + D-Bus as well as kdbus as transport backend. + +* sd-daemon(3): for system services (daemons) to report their status + to systemd and to make easy use of socket-based activation logic + +* sd-event is a generic event loop abstraction that is built around + Linux epoll, but adds features such as event prioritization or + efficient timer handling. + +* sd-id128(3): generation and processing of 128-bit IDs + +* sd-journal(3): API to submit and query journal log entries + +* sd-login(3): APIs to introspect and monitor seat, login session and + user status information on the local system. + +%package -n udev%{?mini} Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel @@ -364,7 +389,7 @@ PreReq: /usr/bin/sg_inq Requires(pre): /usr/bin/stat Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/bin/getent -Requires(post): lib%{udevpkgname}%{udev_major} +Requires(post): libudev%{?mini}1 Requires(post): sed Requires(post): /usr/bin/systemctl %if %{defined regenerate_initrd_post} @@ -385,14 +410,14 @@ Conflicts: util-linux < 2.16 Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} -Provides: udev = %{version} -Conflicts: libudev%{udev_major} -Conflicts: udev -# avoid kiwi picking it for bootstrap -Requires: this-is-only-for-build-envs +Provides: udev = %version-%release +Conflicts: otherproviders(udev) +%else +Obsoletes: udev-mini +Provides: udev-mini %endif -%description -n %{udevpkgname} +%description -n udev%{?mini} Udev creates and removes device nodes in /dev for devices discovered or removed from the system. It receives events via kernel netlink messages and dispatches them according to rules in /lib/udev/rules.d/. Matching @@ -401,70 +426,40 @@ call tools to initialize a device, or load needed kernel modules. -%package -n lib%{udevpkgname}%{udev_major} +%package -n libudev%{?mini}1 +# This really should have been libudev1%{?mini}, but requires changes to prjconf :-/ Summary: Dynamic library to access udev device information License: LGPL-2.1+ Group: System/Libraries -Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} -Conflicts: libudev%{udev_major} -Conflicts: kiwi -# avoid kiwi picking it for bootstrap -Requires: this-is-only-for-build-envs +Conflicts: libudev1 +%else +Obsoletes: libudev1-mini +Provides: libudev1-mini %endif -%description -n lib%{udevpkgname}%{udev_major} +%description -n libudev%{?mini}1 This package contains the dynamic library libudev, which provides access to udev device information -%package -n lib%{udevpkgname}-devel +%package -n libudev%{?mini}-devel Summary: Development files for libudev License: LGPL-2.1+ -Group: Development/Libraries/Other -Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} +Group: Development/Libraries/C and C++ +Requires: libudev%{?mini}1 = %version-%release %if 0%{?bootstrap} -Provides: libudev-devel = %{version} -Conflicts: libudev%{udev_major} = %{version} -Conflicts: libudev-devel +Provides: libudev-devel = %version-%release +Conflicts: otherproviders(libudev-devel) +%else +Obsoletes: libudev-mini-devel +Provides: libudev-mini-devel %endif -%description -n lib%{udevpkgname}-devel +%description -n libudev%{?mini}-devel This package contains the development files for the library libudev, a dynamic library, which provides access to udev device information. %if ! 0%{?bootstrap} -%package -n libgudev-1_0-0 -Summary: GObject library, to access udev device information -License: LGPL-2.1+ -Group: System/Libraries -Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} - -%description -n libgudev-1_0-0 -This package contains the GObject library libgudev, which provides -access to udev device information. - -%package -n typelib-1_0-GUdev-1_0 -Summary: GObject library, to access udev device information -- Introspection bindings -License: LGPL-2.1+ -Group: System/Libraries - -%description -n typelib-1_0-GUdev-1_0 -This package provides the GObject Introspection bindings for libgudev, which -provides access to udev device information. - -%package -n libgudev-1_0-devel -Summary: Devel package for libgudev -License: LGPL-2.1+ -Group: Development/Libraries/Other -Requires: glib2-devel -Requires: libgudev-1_0-0 = %{version}-%{release} -Requires: libudev-devel = %{version}-%{release} -Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} - -%description -n libgudev-1_0-devel -This is the devel package for the GObject library libgudev, which -provides GObject access to udev device information. - %package logger Summary: Journal only logging License: LGPL-2.1+ @@ -560,14 +555,12 @@ cp %{SOURCE7} m4/ %patch17 -p1 %patch20 -p1 %patch21 -p1 -%patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch28 -p1 %patch37 -p1 %patch39 -p1 -%patch40 -p1 %patch41 -p1 %patch42 -p1 %patch84 -p1 @@ -575,13 +568,11 @@ cp %{SOURCE7} m4/ %patch90 -p1 %patch91 -p1 %patch120 -p1 -%patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 %patch182 -p1 %patch183 -p1 -%patch185 -p1 %patch186 -p1 %patch188 -p1 %patch189 -p1 @@ -608,9 +599,8 @@ cp %{SOURCE7} m4/ %patch490 -p1 %patch520 -p1 %patch521 -p1 -%patch522 -p1 -%patch523 -p1 -%patch524 -p1 +%patch522 -p0 +%patch523 -p0 # udev patches %patch1001 -p1 @@ -621,7 +611,6 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1011 -p1 %patch1012 -p1 -%patch1013 -p1 %patch1035 -p1 %if %{with blkrrpart} %patch1037 -p1 @@ -633,24 +622,7 @@ cp %{SOURCE7} m4/ %patch1096 -p1 %patch1097 -p1 %patch1098 -p1 - -# remove patch backups -find -name '*.orig' -exec rm -f '{}' \+ - -# ensure generate files are removed -rm -f units/emergency.service - -# disable "-l" option for fsck if it does not support new locking scheme -# compare with commit c343be283b7152554bac0c02493a4e1759c163f7 -PATH=${PATH}:/sbin:/usr/sbin -PATH_FSCK=$(type -p fsck) -if grep -q /run/fsck/%%s\\.lock $PATH_FSCK -then - echo Found new $PATH_FSCK that is allow private locking -else - echo Found old $PATH_FSCK that is disable flock for this one - sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c -fi +%patch1099 -p1 # # In combination with Patch352 set-and-use-default-logconsole.patch @@ -692,9 +664,8 @@ cflags () esac set +o noclobber } -autoreconf -fi -# prevent pre-generated and distributed files from re-building -find . -name "*.[1-8]" -exec touch '{}' '+'; +sh autogen.sh + export V=e export CFLAGS="%{optflags}" export LDFLAGS @@ -708,6 +679,7 @@ cflags -Wl,-O2 LDFLAGS cflags -Wl,--hash-size=8599 LDFLAGS # keep split-usr until all packages have moved their systemd rules to /usr %configure \ + --with-ntp-servers="0.opensuse.pool.ntp.org 1.opensuse.pool.ntp.org 2.opensuse.pool.ntp.org 3.opensuse.pool.ntp.org" \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ @@ -715,7 +687,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ %if 0%{?bootstrap} - --disable-gudev \ --disable-myhostname \ --disable-manpages \ --disable-machined \ @@ -724,7 +695,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS %if %{with python} --with-python \ %endif - --enable-gtk-doc \ --with-nss-my-hostname-warning \ %endif --enable-selinux \ @@ -755,9 +725,6 @@ make %{?_smp_mflags} update-man-list man %endif %install -%if !0%{?bootstrap} -cp man/man[0-9]/*.[0-9] man/ -%endif make install DESTDIR="%buildroot" # move to %{_lib} @@ -780,7 +747,6 @@ install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service -install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -812,12 +778,6 @@ cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf sg EOF -# To avoid making life hard for Factory developers, don't package the -# kernel.core_pattern setting until systemd-coredump is a part of an actual -# systemd release and it's made clear how to get the core dumps out of the -# journal. -rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf - # do not ship sysctl defaults in systemd package, will be part of # aaa_base (in procps for now) rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf @@ -867,6 +827,20 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl TTYVTDisallocate=no EOF +#ensure we get the running kernel sysctl settings. + +cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/current-kernel-sysctl.conf +d! /run/sysctl.d +L! /run/sysctl.d/00-kernel-%v.conf - - - - /boot/sysctl.conf-%v +EOF + +mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d + +cat << EOF > %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf +[Unit] +After=local-fs.target +EOF + # ensure after.local wrapper is called install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ @@ -920,10 +894,31 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done +# add entries for xkeyboard-config converted keymaps; mappings, +# which already exist in original systemd mapping table are being +# ignored though, i.e. not overwritten +cat /usr/share/systemd/kbd-model-map.xkb-generated \ + >> %{buildroot}//usr/share/systemd/kbd-model-map + %find_lang systemd %pre -getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : +for name in journal timesync network resolve bus-proxy +do + getent group systemd-$name >/dev/null && continue + groupadd -r systemd-$name || : +done +for name in timesync network resolve bus-proxy +do + getent passwd systemd-$name >/dev/null && continue + case "$name" in + timesync) descr="Systemd Time Synchronization" ;; + network) descr="Systemd Network Management" ;; + resolve) descr="Systemd Resolver" ;; + bus-proxy) descr="Systemd Bus Proxy" ;; + esac + useradd -r -l -g systemd-$name systemd-$name -s /usr/sbin/nologin -d / -c "$descr" || : +done exit 0 %post @@ -932,16 +927,16 @@ exit 0 %endif /sbin/ldconfig [ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : -/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : -/usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : -/usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : -/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : +/usr/bin/systemd-machine-id-setup || : +/usr/lib/systemd/systemd-random-seed save || : +/usr/bin/systemctl daemon-reexec || : +/usr/bin/journalctl --update-catalog || : # Make sure new journal files -chgrp systemd-journal %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -chmod g+s %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ || : +chmod g+s %{_localstatedir}/log/journal/ || : if read ID < /etc/machine-id > /dev/null 2>&1 ; then - chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : - chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : + chgrp systemd-journal "%{_localstatedir}/log/journal/$ID" || : + chmod g+s "%{_localstatedir}/log/journal/$ID" || : fi %if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : @@ -964,7 +959,7 @@ if [ "$1" -eq 1 ]; then getty@tty1.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ - remote-fs.target >/dev/null 2>&1 || : + remote-fs.target || : fi # since v207 /etc/sysctl.conf is no longer parsed, however @@ -982,8 +977,9 @@ done %postun /sbin/ldconfig if [ $1 -ge 1 ]; then - /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : - /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : + /usr/bin/systemctl daemon-reload || : + #Avoid restarting logind [bnc#934901] until fixed upstream + #/usr/bin/systemctl try-restart systemd-logind.service || : fi %if ! 0%{?bootstrap} if [ $1 -eq 0 ]; then @@ -995,16 +991,17 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ - remote-fs.target >/dev/null 2>&1 || : + remote-fs.target || : rm -f /etc/systemd/system/default.target 2>&1 || : fi -%pretrans -n %{udevpkgname} -p +# pretrans section must always use lua +%pretrans -n udev%{?mini} -p if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then posix.symlink("/lib/udev", "/usr/lib/udev") end -%pre -n %{udevpkgname} +%pre -n udev%{?mini} if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then rm /usr/lib/udev mv /lib/udev /usr/lib @@ -1013,31 +1010,33 @@ elif [ ! -e /lib/udev ]; then ln -s /usr/lib/udev /lib/udev fi # Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules -getent group tape >/dev/null || groupadd -r tape 2> /dev/null || : +getent group tape >/dev/null || groupadd -r tape || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket >/dev/null 2>&1 || : - udevadm control --exit 2>&1 || : + systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket || : + udevadm control --exit || : fi fi -%post -n %{udevpkgname} -/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : -# add KERNEL name match to existing persistent net rules -sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ - /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : +%post -n udev%{?mini} +/usr/bin/udevadm hwdb --update || : +if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then + # add KERNEL name match to existing persistent net rules + sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ + /etc/udev/rules.d/70-persistent-net.rules || : +fi # cleanup old stuff rm -f /etc/sysconfig/udev rm -f /etc/udev/rules.d/20-cdrom.rules rm -f /etc/udev/rules.d/55-cdrom.rules rm -f /etc/udev/rules.d/65-cdrom.rules -systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload || : # start daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - if ! systemctl start systemd-udevd.service >/dev/null 2>&1; then - /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + if ! systemctl start systemd-udevd.service; then + /usr/lib/systemd/systemd-udevd --daemon || : fi fi fi @@ -1057,9 +1056,9 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then fi fi -%postun -n %{udevpkgname} +%postun -n udev%{?mini} %insserv_cleanup -systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then @@ -1077,20 +1076,17 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then fi %if %{defined regenerate_initrd_post} -%posttrans -n %{udevpkgname} +%posttrans -n udev%{?mini} %regenerate_initrd_posttrans %endif -%post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig - -%postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig +%post -n libsystemd0%{?mini} -p /sbin/ldconfig +%postun -n libsystemd0%{?mini} -p /sbin/ldconfig +%post -n libudev%{?mini}1 -p /sbin/ldconfig +%postun -n libudev%{?mini}1 -p /sbin/ldconfig %if ! 0%{?bootstrap} -%post -n libgudev-1_0-0 -p /sbin/ldconfig - -%postun -n libgudev-1_0-0 -p /sbin/ldconfig - %if %{with permission} %verifyscript logger %verify_permissions -e %{_localstatedir}/log/journal/ @@ -1110,7 +1106,7 @@ getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log %endif if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before - systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : + systemctl --no-block restart systemd-journal-flush.service || : fi %preun -n nss-myhostname @@ -1126,7 +1122,7 @@ fi %postun -n nss-mymachines -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Systemd Journal Gateway" systemd-journal-gateway || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -1166,7 +1162,6 @@ exit 0 %{_bindir}/systemd-path %{_bindir}/systemd-sysusers %{_bindir}/systemd-notify -%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -1182,13 +1177,6 @@ exit 0 %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert -%{_libdir}/libsystemd.so.* -%if %{with compat_libs} -%{_libdir}/libsystemd-daemon.so.* -%{_libdir}/libsystemd-login.so.* -%{_libdir}/libsystemd-id128.so.* -%{_libdir}/libsystemd-journal.so.* -%endif %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat @@ -1219,6 +1207,7 @@ exit 0 %{_prefix}/lib/systemd/system/*.path %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service +%{_prefix}/lib/systemd/user/*.socket %exclude %{_prefix}/lib/systemd/systemd-udevd %if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd @@ -1233,6 +1222,7 @@ exit 0 %dir %{_prefix}/lib/systemd/user-preset %dir %{_prefix}/lib/systemd/system-generators %dir %{_prefix}/lib/systemd/user-generators +%{_prefix}/lib/systemd/user-generators/systemd-dbus1-generator %dir %{_prefix}/lib/systemd/ntp-units.d/ %dir %{_prefix}/lib/systemd/system-shutdown/ %dir %{_prefix}/lib/systemd/system-sleep/ @@ -1240,12 +1230,14 @@ exit 0 %dir %{_prefix}/lib/systemd/system/dbus.target.wants %dir %{_prefix}/lib/systemd/system/getty@tty1.service.d %{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf +%dir %{_prefix}/lib/systemd/system/systemd-sysctl.service.d +%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif +%{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator %if 0%{has_efi} %{_bindir}/bootctl -%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-debug-generator %{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator @@ -1276,6 +1268,7 @@ exit 0 %dir %{_libexecdir}/sysctl.d %dir %{_sysconfdir}/sysctl.d +%{_prefix}/lib/sysctl.d/50-coredump.conf %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system @@ -1309,6 +1302,7 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf +%{_sysconfdir}/X11/xinit/ # Some files which may created by us %dir %{_sysconfdir}/X11/xorg.conf.d %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf @@ -1324,15 +1318,23 @@ exit 0 %{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %if %{with networkd} +%{_prefix}/lib/systemd/system/org.freedesktop.network1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.network1.service %endif +%{_prefix}/lib/systemd/system/org.freedesktop.systemd1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_prefix}/lib/systemd/system/org.freedesktop.locale1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service +%{_prefix}/lib/systemd/system/org.freedesktop.login1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service +%{_prefix}/lib/systemd/system/org.freedesktop.hostname1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service %if !0%{?bootstrap} +%{_prefix}/lib/systemd/system/org.freedesktop.machine1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service %endif +%{_prefix}/lib/systemd/system/org.freedesktop.timedate1.busname + %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions @@ -1350,20 +1352,20 @@ exit 0 %{_datadir}/systemd %if ! 0%{?bootstrap} -# Packaged in sysvinit subpackage -%exclude %{_mandir}/man1/init.1* -%exclude %{_mandir}/man8/halt.8* -%exclude %{_mandir}/man8/reboot.8* -%exclude %{_mandir}/man8/shutdown.8* -%exclude %{_mandir}/man8/poweroff.8* -%exclude %{_mandir}/man8/telinit.8* -%exclude %{_mandir}/man8/runlevel.8* -%exclude %{_mandir}/man*/*udev*.[0-9]* -%exclude %{_mandir}/man8/systemd-journal-gatewayd.* -%{_mandir}/man1/*.1* -%{_mandir}/man5/*.5* -%{_mandir}/man7/*.7* -%{_mandir}/man8/*.8* +%_mandir/man1/[a-rt-z]*ctl.1* +%_mandir/man1/systemc*.1* +%_mandir/man1/systemd*.1* +%_mandir/man5/[a-tv-z]* +%_mandir/man5/user* +%_mandir/man7/[bdfks]* +%_mandir/man8/kern* +%_mandir/man8/pam_* +%_mandir/man8/systemd-[a-gik-tv]* +%_mandir/man8/systemd-h[aioy]* +%_mandir/man8/systemd-journal-remote.* +%_mandir/man8/systemd-journal-upload.* +%_mandir/man8/systemd-journald* +%_mandir/man8/systemd-u[ps]* %endif %{_docdir}/systemd %{_prefix}/lib/udev/rules.d/70-uaccess.rules @@ -1393,6 +1395,7 @@ exit 0 %{_sysconfdir}/systemd/resolved.conf %{_libdir}/libnss_resolve.so.2 %{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service +%{_prefix}/lib/systemd/system/org.freedesktop.resolve1.busname %endif %if ! 0%{?bootstrap} @@ -1410,21 +1413,16 @@ exit 0 %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so -%dir %{_includedir}/systemd -%{_includedir}/systemd/sd-login.h -%{_includedir}/systemd/sd-daemon.h -%{_includedir}/systemd/sd-id128.h -%{_includedir}/systemd/sd-journal.h -%{_includedir}/systemd/sd-messages.h -%{_includedir}/systemd/_sd-common.h -%{_libdir}/pkgconfig/systemd.pc +%{_includedir}/systemd/ +%{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc %if ! 0%{?bootstrap} -%{_mandir}/man3/*.3* +%_mandir/man3/SD*.3* +%_mandir/man3/sd*.3* %endif %files sysvinit @@ -1446,7 +1444,7 @@ exit 0 %{_mandir}/man8/runlevel.8* %endif -%files -n %{udevpkgname} +%files -n udev%{?mini} %defattr(-,root,root) /sbin/udevd /sbin/udevadm @@ -1456,15 +1454,14 @@ exit 0 %if 0%{?suse_version} <= 1310 %{_prefix}/lib/firmware %endif +%{_bindir}/systemd-hwdb %dir %{_prefix}/lib/udev/ -%{_prefix}/lib/udev/accelerometer %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id %{_prefix}/lib/udev/collect %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id -%{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ @@ -1474,14 +1471,18 @@ exit 0 %exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules %{_prefix}/lib/udev/rules.d/*.rules -%dir %{_prefix}/lib/udev/hwdb.d -%{_prefix}/lib/udev/hwdb.d/* +%{_prefix}/lib/udev/hwdb.d/ %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %{_sysconfdir}/udev/udev.conf %if ! 0%{?bootstrap} -%{_mandir}/man?/*udev*.[0-9]* +%_mandir/man5/udev* +%_mandir/man7/hwdb* +%_mandir/man7/udev* +%_mandir/man8/systemd-hwdb* +%_mandir/man8/systemd-udev* +%_mandir/man8/udev* %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd @@ -1498,44 +1499,30 @@ exit 0 %{_datadir}/pkgconfig/udev.pc %endif -%files -n lib%{udevpkgname}%{udev_major} +%files -n libsystemd0%{?mini} +%defattr(-,root,root) +%_libdir/libsystemd.so.* +%if %{with compat_libs} +%_libdir/libsystemd-daemon.so.* +%_libdir/libsystemd-login.so.* +%_libdir/libsystemd-id128.so.* +%_libdir/libsystemd-journal.so.* +%endif + +%files -n libudev%{?mini}1 %defattr(-,root,root) %{_libdir}/libudev.so.* -%files -n lib%{udevpkgname}-devel +%files -n libudev%{?mini}-devel %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%dir %{_datadir}/gtk-doc/html/libudev -%{_datadir}/gtk-doc/html/libudev/* +%{_mandir}/man3/*udev*.3* %endif %if ! 0%{?bootstrap} -%files -n libgudev-1_0-0 -%defattr(-,root,root) -%{_libdir}/libgudev-1.0.so.* - -%files -n typelib-1_0-GUdev-1_0 -%defattr(-,root,root) -%{_libdir}/girepository-1.0/GUdev-1.0.typelib - -%files -n libgudev-1_0-devel -%defattr(-,root,root) -%dir %{_includedir}/gudev-1.0 -%dir %{_includedir}/gudev-1.0/gudev -%{_includedir}/gudev-1.0/gudev/*.h -%{_libdir}/libgudev-1.0.so -%{_libdir}/pkgconfig/gudev-1.0.pc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%dir %{_datadir}/gtk-doc/html/gudev -%{_datadir}/gtk-doc/html/gudev/* -%{_datadir}/gir-1.0/GUdev-1.0.gir - %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ @@ -1546,6 +1533,10 @@ exit 0 %files -n nss-myhostname %defattr(-, root, root) %{_sbindir}/nss-myhostname-config +%if !0%{?bootstrap} +%{_mandir}/man8/libnss_myhostname.* +%{_mandir}/man8/nss-myhostname.* +%endif /%{_lib}/*nss_myhostname* %files journal-gateway @@ -1558,6 +1549,10 @@ exit 0 %files -n nss-mymachines %defattr(-,root,root) %_libdir/libnss_mymachines.so* +%if !0%{?bootstrap} +%_mandir/man8/libnss_mymachines.* +%_mandir/man8/nss-mymachines.* +%endif %endif %changelog diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch index 898a6548..469004d3 100644 --- a/systemd-pam_config.patch +++ b/systemd-pam_config.patch @@ -2,10 +2,10 @@ src/login/systemd-user | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: systemd-218/src/login/systemd-user +Index: systemd-221/src/login/systemd-user =================================================================== ---- systemd-218.orig/src/login/systemd-user -+++ systemd-218/src/login/systemd-user +--- systemd-221.orig/src/login/systemd-user ++++ systemd-221/src/login/systemd-user @@ -2,5 +2,5 @@ # # Used by systemd --user instances. diff --git a/systemd-powerd-initctl-support.patch b/systemd-powerd-initctl-support.patch deleted file mode 100644 index 675124ba..00000000 --- a/systemd-powerd-initctl-support.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 7b8b1ca177a532a6673e5795af867b3631622391 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 7 Mar 2014 14:04:58 +0100 -Subject: [PATCH] systemd: powerd initctl support - -Old versions of powerd will be using the initctl fifo to signal -state changes. To maintain backward compability systemd should -be interpreting these messages, too. - -Signed-off-by: Hannes Reinecke ---- - src/initctl/initctl.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 70 insertions(+), 1 deletion(-) - ---- systemd-219.orig/src/initctl/initctl.c -+++ systemd-219/src/initctl/initctl.c -@@ -32,8 +32,11 @@ - #include - #include - #include -+#include -+#include - - #include "sd-daemon.h" -+#include "sd-shutdown.h" - #include "sd-bus.h" - - #include "util.h" -@@ -44,6 +47,7 @@ - #include "bus-util.h" - #include "bus-error.h" - #include "def.h" -+#include "socket-util.h" - - #define SERVER_FD_MAX 16 - #define TIMEOUT_MSEC ((int) (DEFAULT_EXIT_USEC/USEC_PER_MSEC)) -@@ -141,7 +145,54 @@ static void change_runlevel(Server *s, i - } - } - -+static int send_shutdownd(unsigned delay, char mode, const char *message) { -+#ifdef HAVE_SYSV_COMPAT -+ usec_t t = now(CLOCK_REALTIME) + delay * USEC_PER_MINUTE; -+ struct sd_shutdown_command c = { -+ .usec = t, -+ .mode = mode, -+ .dry_run = false, -+ .warn_wall = true, -+ }; -+ -+ union sockaddr_union sockaddr = { -+ .un.sun_family = AF_UNIX, -+ .un.sun_path = "/run/systemd/shutdownd", -+ }; -+ -+ struct iovec iovec[2] = {{ -+ .iov_base = (char*) &c, -+ .iov_len = offsetof(struct sd_shutdown_command, wall_message), -+ }}; -+ -+ struct msghdr msghdr = { -+ .msg_name = &sockaddr, -+ .msg_namelen = offsetof(struct sockaddr_un, sun_path) -+ + sizeof("/run/systemd/shutdownd") - 1, -+ .msg_iov = iovec, -+ .msg_iovlen = 1, -+ }; -+ -+ _cleanup_close_ int fd; -+ -+ fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0); -+ if (fd < 0) -+ return -errno; -+ -+ if (!isempty(message)) { -+ iovec[1].iov_base = (char*) message; -+ iovec[1].iov_len = strlen(message); -+ msghdr.msg_iovlen++; -+ } -+ -+ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) -+ return -errno; -+#endif -+ return 0; -+} -+ - static void request_process(Server *s, const struct init_request *req) { -+ int r; - assert(s); - assert(req); - -@@ -184,9 +235,28 @@ static void request_process(Server *s, c - return; - - case INIT_CMD_POWERFAIL: -+ r = send_shutdownd(2, SD_SHUTDOWN_POWEROFF, -+ "THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!"); -+ if (r < 0) { -+ log_warning("Failed to talk to shutdownd, shutdown cancelled: %s", strerror(-r)); -+ } -+ return; - case INIT_CMD_POWERFAILNOW: -+ r = send_shutdownd(0, SD_SHUTDOWN_POWEROFF, -+ "THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!"); -+ if (r < 0) { -+ log_warning("Failed to talk to shutdownd, proceeding with immediate shutdown: %s", strerror(-r)); -+ reboot(RB_ENABLE_CAD); -+ reboot(RB_POWER_OFF); -+ } -+ return; -+ - case INIT_CMD_POWEROK: -- log_warning("Received UPS/power initctl request. This is not implemented in systemd. Upgrade your UPS daemon!"); -+ r = send_shutdownd(0, SD_SHUTDOWN_NONE, -+ "THE POWER IS BACK"); -+ if (r < 0) { -+ log_warning("Failed to talk to shutdownd, proceeding with shutdown: %s", strerror(-r)); -+ } - return; - - case INIT_CMD_CHANGECONS: diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index dd7c0d80..e114231e 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -8,10 +8,10 @@ SUSE policy is to not clean /tmp by default. tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -Index: systemd/tmpfiles.d/tmp.conf +Index: systemd-221/tmpfiles.d/tmp.conf =================================================================== ---- systemd.orig/tmpfiles.d/tmp.conf -+++ systemd/tmpfiles.d/tmp.conf +--- systemd-221.orig/tmpfiles.d/tmp.conf ++++ systemd-221/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details diff --git a/systemd.changes b/systemd.changes index 21c45c47..fcf4a2ad 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,7 +1,270 @@ ------------------------------------------------------------------- -Thu Sep 24 12:47:29 UTC 2015 - dimstar@opensuse.org +Fri Sep 25 14:20:41 UTC 2015 - werner@suse.de -- Add systemd-bfo88401.patch: do not restart services on coldplug. +- Fix patch tty-ask-password-agent-on-console.patch not to crash + away but enable it to ask on all devices of /dev/console + +------------------------------------------------------------------- +Wed Sep 23 14:19:32 UTC 2015 - jengelh@inai.de + +- Avoid "file not found /etc/udev/rules.d/70-persistent-net.rules" + waring occurring in %post + +------------------------------------------------------------------- +Wed Sep 23 12:41:19 UTC 2015 - werner@suse.de + +- Add patch let-vconsole-setup-get-properties-only-once-to-copy-them.patch + to avoid broken virtual console mapping due stressed ioctl API + for the virtual consoles (boo#904214) + +------------------------------------------------------------------- +Mon Sep 7 12:21:06 UTC 2015 - werner@suse.de + +- Fix last change that is use the new name for udev packages in %pretrans. + +------------------------------------------------------------------- +Mon Sep 7 11:50:21 UTC 2015 - fbui@suse.com + +- restore usage of LUA in %pretrans. + +------------------------------------------------------------------- +Mon Sep 7 08:09:05 UTC 2015 - werner@suse.de + +- Try to generate the systemd users and groups always in same order + to avoid republish other packages (boo#944660) + +------------------------------------------------------------------- +Fri Aug 21 07:49:33 UTC 2015 - fbui@suse.com + +- cleanup specfile by removing commands that were dealing with systemd + pre-generated files: we're now using systemd tarball generated directly + from the git repo which doesn't contain any of these files. +- there's no point in using LUA in %pretrans + +------------------------------------------------------------------- +Wed Aug 19 09:34:41 UTC 2015 - fbui@suse.com + +- Drop 0009-make-xsltproc-use-correct-ROFF-links.patch + +This patch was initialy added to workaround bsc#842844. But it +appears that man(1) was fixed (included since 13.2 at least) to +handle manual pages that consist only of a .so directive such as +'.so '. + +------------------------------------------------------------------- +Thu Aug 13 11:46:12 UTC 2015 - werner@suse.de + +- Change use-rndaddentropy-ioctl-to-load-random-seed.patch to + make it work on big endian + +------------------------------------------------------------------- +Tue Aug 11 09:48:26 UTC 2015 - jengelh@inai.de + +- Use Obsolete/Provides strategy from + windows:mingw:mingw64/mingw64-cross-gcc to do the bootstrap + cycle and kick out -mini afterwards. + +------------------------------------------------------------------- +Tue Aug 11 05:15:09 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 224 +* systemd-networkd gained a number of new configuration options + for DHCP, tunnels and bridges +* systemd-efi-boot-generator functionality was merged into + systemd-gpt-auto-generator. + +------------------------------------------------------------------- +Mon Aug 10 13:16:54 UTC 2015 - sndirsch@suse.com + +- /usr/share/systemd/kbd-model-map: added entries for + xkeyboard-config converted keymaps; mappings, which already + exist in original systemd mapping table are being ignored + though, i.e. not overwritten; needs kbd in buildrequires + (FATE#318426) + +------------------------------------------------------------------- +Wed Jul 29 18:10:53 UTC 2015 - meissner@suse.com + +- hostname-NULL.patch: Work around a crash on XEN hosts + in OBS. /etc/hostname is not present and systemd then does + strchr(hostname,soemthing) with hostname NULL. + +------------------------------------------------------------------- +Wed Jul 29 09:02:21 UTC 2015 - werner@suse.de + +- Add Correct_assert_on_unexpected_error_code.patch to work around + a problem of an assert on ENODEV for closing fd on an input + event device (boo#939571) + +------------------------------------------------------------------- +Mon Jul 13 15:31:46 UTC 2015 - jengelh@inai.de + +- Remove udev-generate-rules.sh, apparently not used by anything in + the systemd nor udev-persistent-ifnames package. + +------------------------------------------------------------------- +Wed Jul 8 20:44:57 UTC 2015 - crrodriguez@opensuse.org + +- Systemd v222, bugfix release. +- Drop upstream patches +0006-pam_systemd-Properly-check-kdbus-availability.patch +0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch +0031-install-fix-bad-memory-access.patch +1032-ata_id-unbotch-format-specifier.patch +- Drop SUSE patch 1013-no-runtime-PM-for-IBM-consoles.patch + udev does no longer enable USB HID power management at all. +- The udev accelerometer helper was removed, obsoleted by + iio-sensor-proxy package. +- networkd gained a new configuration option IPv6PrivacyExtensions. +- udev does not longer support the WAIT_FOR_SYSFS= key in udev + rules. There are no known issues with current sysfs, + and udev does not need or should be used to work around such bugs. + +------------------------------------------------------------------- +Tue Jul 7 08:54:38 UTC 2015 - jengelh@inai.de + +- Avoid restarting logind [bnc#934901] +- Do not suppress errors in any case, even if they are ignored + +------------------------------------------------------------------- +Sun Jul 5 15:52:33 UTC 2015 - hrvoje.senjan@gmail.com + +- Fix devel package requires (both mini and real required real libsystemd0) + +------------------------------------------------------------------- +Fri Jul 3 11:17:01 UTC 2015 - werner@suse.de + +- Rework patch tty-ask-password-agent-on-console.patch to fit the + requisition of https://bugs.freedesktop.org/show_bug.cgi?id=82004 + +------------------------------------------------------------------- +Wed Jul 1 09:42:44 UTC 2015 - jengelh@inai.de + +- Rework "-mini" package logic to not conflict with itself and + then add libsystemd0 to mini. + +------------------------------------------------------------------- +Wed Jul 1 03:43:51 UTC 2015 - crrodriguez@opensuse.org + +- remove SysVStartPriority= from after-local.service, + unsupported since v218. + Note that this option was only parsed and that's it. the logic + to give "start priority" was never implemented. + +------------------------------------------------------------------- +Wed Jul 1 03:20:20 UTC 2015 - crrodriguez@opensuse.org + +- change the default fallback ntp servers to the opensuse + pool.ntp.org vendor zone. +- We still need to run systemd-sysctl.service after local-fs.target + otherwise it works only when /boot is in the root filesystem but + not when it is a separate partition. + +------------------------------------------------------------------- +Fri Jun 26 17:14:46 CEST 2015 - sbrabec@suse.com + +- Obsolete pm-utils and suspend (boo#925873). +- Remove pm-utils support + (remove Forward-suspend-hibernate-calls-to-pm-utils.patch). + +------------------------------------------------------------------- +Thu Jun 25 17:27:06 UTC 2015 - crrodriguez@opensuse.org + +- remove patch sysctl-handle-boot-sysctl.conf-kernel_release.patch + from the filelist. + +------------------------------------------------------------------- +Thu Jun 25 05:56:55 UTC 2015 - crrodriguez@opensuse.org + +- libpcre, glib2 and libusb are not used by systemd, remove + from buildrequires. + +------------------------------------------------------------------- +Thu Jun 25 05:19:54 UTC 2015 - crrodriguez@opensuse.org + +- 1032-ata_id-unbotch-format-specifier.patch: fix udev ata_id + output. +- 0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch + fix StopWhenUnneeded=true in combination with a Requisite= + dependency. +- 0031-install-fix-bad-memory-access.patch: Fix Bad memory access +- 0006-pam_systemd-Properly-check-kdbus-availability.patch: if + kdbus is enabled (i.e boot with kdbus=1) DBUS_SESSION_BUS_ADDRESS + must not be exported. +- spec: add a min_kernel_version macro to ensure the package + conflicts with kernel versions in which systemd cannot run. + +------------------------------------------------------------------- +Wed Jun 24 20:06:27 UTC 2015 - crrodriguez@opensuse.org + +- sysctl-handle-boot-sysctl.conf-kernel_release.patch dropped, + replaced by a tmpfiles.d snippet "current-kernel-sysctl.conf" + (feature implemented in v220 just for our usecase) + +------------------------------------------------------------------- +Wed Jun 24 19:45:17 UTC 2015 - crrodriguez@opensuse.org + +- fix build when resolved is enabled +- remove fsck -l test in spec file, systemd requires util-linux + 2.26 or later where this feature is already available. + +------------------------------------------------------------------- +Wed Jun 24 17:43:22 UTC 2015 - hrvoje.senjan@gmail.com + +- Fix bootstrap build by guarding filelists (man pages don't get + built in bootstrap mode) +- Drop commented sections from baselibs.conf, allows format_spec_file + to have a successful run + +------------------------------------------------------------------- +Wed Jun 24 14:17:04 UTC 2015 - mpluskal@suse.com + +- Install 50-coredump.conf as coredumpctl is now installed by + default and does not use journal anymore as default storage + +------------------------------------------------------------------- +Fri Jun 19 20:51:14 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 221 +* From 220: +* libgudev was moved into a package of its own +* Runlevels 2, 3 and 4 are no longer distinct, they all map to + multi-user.target. +* The EFI System Partition mounted to /boot will be unmounted + 2 minutes after boot. +* systemd does not support direct live-upgrades (via `systemctl + daemon-reexec`) from versions older than v44 anymore. +* systemd-nspawn may now be called as part of a shell pipeline. +* systemd-shutdownd has been removed. This service was + previously responsible for implementing scheduled shutdowns + as exposed in /usr/bin/shutdown's time parameter. This + functionality has now been moved into systemd-logind and is + accessible via a bus interface. +* udev will no longer call blkid and create symlinks for all + block devices, but merely those from a whitelist + (cf. 60-persistent-storage.rules). +* /usr/lib/os-release gained a new optional field VARIANT= +* Details at + http://lists.freedesktop.org/archives/systemd-devel/2015-May/032147.html +* From 221: +* New sd-bus and sd-event APIs in libsystemd +* If there is both a systemd unit and a SysV init script for the + same service name, and `systemctl enable` or other operation is + run, both will now be enabled (or execute the related operation + on both), not just the unit. +- Split libsystemd0 to support systemd-less nspawn containers +- Redo manpage file lists without %exclude, tends to hide + unpackaged files. +- hwdb belongs to udev +- Resolve memory leak and add missing _cleanup_free_ to + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch +- Remove systemd-powerd-initctl-support.patch + (no longer builds because shutdownd is gone) +- Remove quilt-patches/0001-core-rework-device-state-logic.patch, + 0001-Let-some-boolean-survive-a-daemon-reload.patch + (merged upstream), + 0001-Let-some-boolean-survive-a-daemon-reload.patch + (obsolete) ------------------------------------------------------------------- Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 1827beb2..609bab8f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -17,9 +17,10 @@ %define bootstrap 0 +%define mini %nil %define real systemd -%define udevpkgname udev -%define udev_major 1 +%define min_kernel_version 3.7 + %bcond_without bash_completion %bcond_without networkd %bcond_without sysvcompat @@ -44,7 +45,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 219 +Version: 224 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -56,8 +57,8 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes BuildRequires: gperf -BuildRequires: gtk-doc BuildRequires: intltool +BuildRequires: kbd BuildRequires: libacl-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel @@ -66,12 +67,11 @@ BuildRequires: pam-devel BuildRequires: systemd-rpm-macros BuildRequires: xz BuildRequires: config(suse-module-tools) -BuildRequires: pkgconfig(blkid) >= 2.24 +BuildRequires: pkgconfig(blkid) >= 2.26 BuildRequires: pkgconfig(libkmod) >= 15 BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpci) >= 3 -BuildRequires: pkgconfig(libpcre) -BuildRequires: pkgconfig(mount) >= 2.20 +BuildRequires: pkgconfig(mount) >= 2.26 %ifarch %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif @@ -80,28 +80,23 @@ BuildRequires: pkgconfig(libsepol) Conflicts: sysvinit %if 0%{?bootstrap} #!BuildIgnore: dbus-1 -Requires: this-is-only-for-build-envs -Conflicts: systemd -Conflicts: kiwi +Provides: systemd = %version-%release +Conflicts: otherproviders(systemd) %else BuildRequires: docbook-xsl-stylesheets -BuildRequires: gobject-introspection-devel -BuildRequires: gtk-doc BuildRequires: libgcrypt-devel -BuildRequires: libusb-devel BuildRequires: libxslt-tools %if %{with python} BuildRequires: python %endif BuildRequires: libapparmor-devel -BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 BuildRequires: pkgconfig(libmicrohttpd) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev -Requires: %{udevpkgname} >= 172 +Requires: udev >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd @@ -112,7 +107,7 @@ BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.25 +Requires: util-linux >= 2.26 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 @@ -124,11 +119,14 @@ Requires(post): /usr/bin/getent Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 +Conflicts: kernel < %{min_kernel_version} Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} +Obsoletes: pm-utils <= 1.4.1 +Obsoletes: suspend <= 1.0 -#Git-Clone: git://anongit.freedesktop.org/systemd/systemd -Source: http://freedesktop.org/software/systemd/systemd-%version.tar.xz +#Git-Clone: git://github.com/systemd/systemd +Source: https://github.com/systemd/systemd/archive/v%version.tar.gz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else @@ -141,7 +139,6 @@ Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service -Source1063: udev-generate-persistent-rule.sh Source1065: systemd-remount-tmpfs # handle SUSE specific kbd settings @@ -165,8 +162,6 @@ Patch28: apply-ACL-for-nvidia-uvm-device-node.patch Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch -# PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file -Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch Patch42: systemd-pam_config.patch @@ -175,8 +170,6 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-OPENSUSE forward to pm-utils -- until boo#904828 is addressed -Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) @@ -189,8 +182,6 @@ Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-OPENSUSE 0009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) -Patch177: 0009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -201,8 +192,6 @@ Patch180: 0014-journald-with-journaling-FS.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch183: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE systemd-powerd-initctl-support.patch -Patch185: systemd-powerd-initctl-support.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) @@ -248,10 +237,10 @@ Patch490: watch_resolv.conf_for_become_changed.patch Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch -Patch522: 0001-core-rework-device-state-logic.patch -# PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM -Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch -Patch524: systemd-bfo88401.patch +# PATCH-WORKAROUND-SUSE (boo#939571) +Patch522: Correct_assert_on_unexpected_error_code.patch +# PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) +Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch # UDEV PATCHES # ============ @@ -277,8 +266,6 @@ Patch1007: 1007-physical-hotplug-cpu-and-memory.patch Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch -# PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) -Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 @@ -297,6 +284,8 @@ Patch1096: 1096-new-udev-root-symlink-generator.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch # PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch Patch1098: 1098-systemd-networkd-alias-network-service.patch +# PATCH-FIX-OPENSUSE hostname-NULL.patch - fix crash on xen build hosts in OBS Marcus Meissner +Patch1099: hostname-NULL.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -326,10 +315,14 @@ Some systemd commands offer bash completion, but it's an optional dependency. Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ -Requires: %{name} = %{version} +Requires: libsystemd0%{?mini} = %version Requires: systemd-rpm-macros %if 0%{?bootstrap} -Conflicts: systemd-devel +Provides: systemd-devel = %version-%release +Conflicts: otherproviders(systemd-devel) +%else +Obsoletes: systemd-mini-devel +Provides: systemd-mini-devel %endif %description devel @@ -347,7 +340,39 @@ Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. -%package -n %{udevpkgname} +%package -n libsystemd0%{?mini} +Summary: Component library for systemd +License: LGPL-2.1+ +Group: System/Libraries +%if 0%{?bootstrap} +Conflicts: libsystemd0 +%else +Obsoletes: libsystemd0-mini +Provides: libsystemd0-mini +%endif + +%description -n libsystemd0%{?mini} +This library provides several of the systemd C APIs: + +* sd-bus implements an alternative D-Bus client library that is + relatively easy to use, very efficient and supports both classic + D-Bus as well as kdbus as transport backend. + +* sd-daemon(3): for system services (daemons) to report their status + to systemd and to make easy use of socket-based activation logic + +* sd-event is a generic event loop abstraction that is built around + Linux epoll, but adds features such as event prioritization or + efficient timer handling. + +* sd-id128(3): generation and processing of 128-bit IDs + +* sd-journal(3): API to submit and query journal log entries + +* sd-login(3): APIs to introspect and monitor seat, login session and + user status information on the local system. + +%package -n udev%{?mini} Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel @@ -359,7 +384,7 @@ PreReq: /usr/bin/sg_inq Requires(pre): /usr/bin/stat Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/bin/getent -Requires(post): lib%{udevpkgname}%{udev_major} +Requires(post): libudev%{?mini}1 Requires(post): sed Requires(post): /usr/bin/systemctl %if %{defined regenerate_initrd_post} @@ -380,14 +405,14 @@ Conflicts: util-linux < 2.16 Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} -Provides: udev = %{version} -Conflicts: libudev%{udev_major} -Conflicts: udev -# avoid kiwi picking it for bootstrap -Requires: this-is-only-for-build-envs +Provides: udev = %version-%release +Conflicts: otherproviders(udev) +%else +Obsoletes: udev-mini +Provides: udev-mini %endif -%description -n %{udevpkgname} +%description -n udev%{?mini} Udev creates and removes device nodes in /dev for devices discovered or removed from the system. It receives events via kernel netlink messages and dispatches them according to rules in /lib/udev/rules.d/. Matching @@ -396,70 +421,40 @@ call tools to initialize a device, or load needed kernel modules. -%package -n lib%{udevpkgname}%{udev_major} +%package -n libudev%{?mini}1 +# This really should have been libudev1%{?mini}, but requires changes to prjconf :-/ Summary: Dynamic library to access udev device information License: LGPL-2.1+ Group: System/Libraries -Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} -Conflicts: libudev%{udev_major} -Conflicts: kiwi -# avoid kiwi picking it for bootstrap -Requires: this-is-only-for-build-envs +Conflicts: libudev1 +%else +Obsoletes: libudev1-mini +Provides: libudev1-mini %endif -%description -n lib%{udevpkgname}%{udev_major} +%description -n libudev%{?mini}1 This package contains the dynamic library libudev, which provides access to udev device information -%package -n lib%{udevpkgname}-devel +%package -n libudev%{?mini}-devel Summary: Development files for libudev License: LGPL-2.1+ -Group: Development/Libraries/Other -Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} +Group: Development/Libraries/C and C++ +Requires: libudev%{?mini}1 = %version-%release %if 0%{?bootstrap} -Provides: libudev-devel = %{version} -Conflicts: libudev%{udev_major} = %{version} -Conflicts: libudev-devel +Provides: libudev-devel = %version-%release +Conflicts: otherproviders(libudev-devel) +%else +Obsoletes: libudev-mini-devel +Provides: libudev-mini-devel %endif -%description -n lib%{udevpkgname}-devel +%description -n libudev%{?mini}-devel This package contains the development files for the library libudev, a dynamic library, which provides access to udev device information. %if ! 0%{?bootstrap} -%package -n libgudev-1_0-0 -Summary: GObject library, to access udev device information -License: LGPL-2.1+ -Group: System/Libraries -Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} - -%description -n libgudev-1_0-0 -This package contains the GObject library libgudev, which provides -access to udev device information. - -%package -n typelib-1_0-GUdev-1_0 -Summary: GObject library, to access udev device information -- Introspection bindings -License: LGPL-2.1+ -Group: System/Libraries - -%description -n typelib-1_0-GUdev-1_0 -This package provides the GObject Introspection bindings for libgudev, which -provides access to udev device information. - -%package -n libgudev-1_0-devel -Summary: Devel package for libgudev -License: LGPL-2.1+ -Group: Development/Libraries/Other -Requires: glib2-devel -Requires: libgudev-1_0-0 = %{version}-%{release} -Requires: libudev-devel = %{version}-%{release} -Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} - -%description -n libgudev-1_0-devel -This is the devel package for the GObject library libgudev, which -provides GObject access to udev device information. - %package logger Summary: Journal only logging License: LGPL-2.1+ @@ -555,14 +550,12 @@ cp %{SOURCE7} m4/ %patch17 -p1 %patch20 -p1 %patch21 -p1 -%patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch28 -p1 %patch37 -p1 %patch39 -p1 -%patch40 -p1 %patch41 -p1 %patch42 -p1 %patch84 -p1 @@ -570,13 +563,11 @@ cp %{SOURCE7} m4/ %patch90 -p1 %patch91 -p1 %patch120 -p1 -%patch177 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 %patch182 -p1 %patch183 -p1 -%patch185 -p1 %patch186 -p1 %patch188 -p1 %patch189 -p1 @@ -603,9 +594,8 @@ cp %{SOURCE7} m4/ %patch490 -p1 %patch520 -p1 %patch521 -p1 -%patch522 -p1 -%patch523 -p1 -%patch524 -p1 +%patch522 -p0 +%patch523 -p0 # udev patches %patch1001 -p1 @@ -616,7 +606,6 @@ cp %{SOURCE7} m4/ %patch1007 -p1 %patch1011 -p1 %patch1012 -p1 -%patch1013 -p1 %patch1035 -p1 %if %{with blkrrpart} %patch1037 -p1 @@ -628,24 +617,7 @@ cp %{SOURCE7} m4/ %patch1096 -p1 %patch1097 -p1 %patch1098 -p1 - -# remove patch backups -find -name '*.orig' -exec rm -f '{}' \+ - -# ensure generate files are removed -rm -f units/emergency.service - -# disable "-l" option for fsck if it does not support new locking scheme -# compare with commit c343be283b7152554bac0c02493a4e1759c163f7 -PATH=${PATH}:/sbin:/usr/sbin -PATH_FSCK=$(type -p fsck) -if grep -q /run/fsck/%%s\\.lock $PATH_FSCK -then - echo Found new $PATH_FSCK that is allow private locking -else - echo Found old $PATH_FSCK that is disable flock for this one - sed -ri 's@^([[:blank:]]+)(cmdline\[i\+\+\][[:blank:]]+=[[:blank:]]+"-l")(;)@\1/* \2 */\3@' src/fsck/fsck.c -fi +%patch1099 -p1 # # In combination with Patch352 set-and-use-default-logconsole.patch @@ -687,9 +659,8 @@ cflags () esac set +o noclobber } -autoreconf -fi -# prevent pre-generated and distributed files from re-building -find . -name "*.[1-8]" -exec touch '{}' '+'; +sh autogen.sh + export V=e export CFLAGS="%{optflags}" export LDFLAGS @@ -703,6 +674,7 @@ cflags -Wl,-O2 LDFLAGS cflags -Wl,--hash-size=8599 LDFLAGS # keep split-usr until all packages have moved their systemd rules to /usr %configure \ + --with-ntp-servers="0.opensuse.pool.ntp.org 1.opensuse.pool.ntp.org 2.opensuse.pool.ntp.org 3.opensuse.pool.ntp.org" \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ @@ -710,7 +682,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ %if 0%{?bootstrap} - --disable-gudev \ --disable-myhostname \ --disable-manpages \ --disable-machined \ @@ -719,7 +690,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS %if %{with python} --with-python \ %endif - --enable-gtk-doc \ --with-nss-my-hostname-warning \ %endif --enable-selinux \ @@ -750,9 +720,6 @@ make %{?_smp_mflags} update-man-list man %endif %install -%if !0%{?bootstrap} -cp man/man[0-9]/*.[0-9] man/ -%endif make install DESTDIR="%buildroot" # move to %{_lib} @@ -775,7 +742,6 @@ install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service -install -m755 -D %{S:1063} %{buildroot}/%{_prefix}/lib/udev/udev-generate-persistent-rule install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm @@ -807,12 +773,6 @@ cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf sg EOF -# To avoid making life hard for Factory developers, don't package the -# kernel.core_pattern setting until systemd-coredump is a part of an actual -# systemd release and it's made clear how to get the core dumps out of the -# journal. -rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf - # do not ship sysctl defaults in systemd package, will be part of # aaa_base (in procps for now) rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf @@ -862,6 +822,20 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl TTYVTDisallocate=no EOF +#ensure we get the running kernel sysctl settings. + +cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/current-kernel-sysctl.conf +d! /run/sysctl.d +L! /run/sysctl.d/00-kernel-%v.conf - - - - /boot/sysctl.conf-%v +EOF + +mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d + +cat << EOF > %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf +[Unit] +After=local-fs.target +EOF + # ensure after.local wrapper is called install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ @@ -915,10 +889,31 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done +# add entries for xkeyboard-config converted keymaps; mappings, +# which already exist in original systemd mapping table are being +# ignored though, i.e. not overwritten +cat /usr/share/systemd/kbd-model-map.xkb-generated \ + >> %{buildroot}//usr/share/systemd/kbd-model-map + %find_lang systemd %pre -getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : +for name in journal timesync network resolve bus-proxy +do + getent group systemd-$name >/dev/null && continue + groupadd -r systemd-$name || : +done +for name in timesync network resolve bus-proxy +do + getent passwd systemd-$name >/dev/null && continue + case "$name" in + timesync) descr="Systemd Time Synchronization" ;; + network) descr="Systemd Network Management" ;; + resolve) descr="Systemd Resolver" ;; + bus-proxy) descr="Systemd Bus Proxy" ;; + esac + useradd -r -l -g systemd-$name systemd-$name -s /usr/sbin/nologin -d / -c "$descr" || : +done exit 0 %post @@ -927,16 +922,16 @@ exit 0 %endif /sbin/ldconfig [ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : -/usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : -/usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : -/usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : -/usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : +/usr/bin/systemd-machine-id-setup || : +/usr/lib/systemd/systemd-random-seed save || : +/usr/bin/systemctl daemon-reexec || : +/usr/bin/journalctl --update-catalog || : # Make sure new journal files -chgrp systemd-journal %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : -chmod g+s %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ || : +chmod g+s %{_localstatedir}/log/journal/ || : if read ID < /etc/machine-id > /dev/null 2>&1 ; then - chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : - chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || : + chgrp systemd-journal "%{_localstatedir}/log/journal/$ID" || : + chmod g+s "%{_localstatedir}/log/journal/$ID" || : fi %if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : @@ -959,7 +954,7 @@ if [ "$1" -eq 1 ]; then getty@tty1.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ - remote-fs.target >/dev/null 2>&1 || : + remote-fs.target || : fi # since v207 /etc/sysctl.conf is no longer parsed, however @@ -977,8 +972,9 @@ done %postun /sbin/ldconfig if [ $1 -ge 1 ]; then - /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : - /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : + /usr/bin/systemctl daemon-reload || : + #Avoid restarting logind [bnc#934901] until fixed upstream + #/usr/bin/systemctl try-restart systemd-logind.service || : fi %if ! 0%{?bootstrap} if [ $1 -eq 0 ]; then @@ -990,16 +986,17 @@ fi if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ - remote-fs.target >/dev/null 2>&1 || : + remote-fs.target || : rm -f /etc/systemd/system/default.target 2>&1 || : fi -%pretrans -n %{udevpkgname} -p +# pretrans section must always use lua +%pretrans -n udev%{?mini} -p if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then posix.symlink("/lib/udev", "/usr/lib/udev") end -%pre -n %{udevpkgname} +%pre -n udev%{?mini} if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then rm /usr/lib/udev mv /lib/udev /usr/lib @@ -1008,31 +1005,33 @@ elif [ ! -e /lib/udev ]; then ln -s /usr/lib/udev /lib/udev fi # Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules -getent group tape >/dev/null || groupadd -r tape 2> /dev/null || : +getent group tape >/dev/null || groupadd -r tape || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket >/dev/null 2>&1 || : - udevadm control --exit 2>&1 || : + systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket || : + udevadm control --exit || : fi fi -%post -n %{udevpkgname} -/usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : -# add KERNEL name match to existing persistent net rules -sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ - /etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || : +%post -n udev%{?mini} +/usr/bin/udevadm hwdb --update || : +if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then + # add KERNEL name match to existing persistent net rules + sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ + /etc/udev/rules.d/70-persistent-net.rules || : +fi # cleanup old stuff rm -f /etc/sysconfig/udev rm -f /etc/udev/rules.d/20-cdrom.rules rm -f /etc/udev/rules.d/55-cdrom.rules rm -f /etc/udev/rules.d/65-cdrom.rules -systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload || : # start daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then - if ! systemctl start systemd-udevd.service >/dev/null 2>&1; then - /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : + if ! systemctl start systemd-udevd.service; then + /usr/lib/systemd/systemd-udevd --daemon || : fi fi fi @@ -1052,9 +1051,9 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then fi fi -%postun -n %{udevpkgname} +%postun -n udev%{?mini} %insserv_cleanup -systemctl daemon-reload >/dev/null 2>&1 || : +systemctl daemon-reload || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then @@ -1072,20 +1071,17 @@ if [ "${YAST_IS_RUNNING}" != "instsys" ]; then fi %if %{defined regenerate_initrd_post} -%posttrans -n %{udevpkgname} +%posttrans -n udev%{?mini} %regenerate_initrd_posttrans %endif -%post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig - -%postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig +%post -n libsystemd0%{?mini} -p /sbin/ldconfig +%postun -n libsystemd0%{?mini} -p /sbin/ldconfig +%post -n libudev%{?mini}1 -p /sbin/ldconfig +%postun -n libudev%{?mini}1 -p /sbin/ldconfig %if ! 0%{?bootstrap} -%post -n libgudev-1_0-0 -p /sbin/ldconfig - -%postun -n libgudev-1_0-0 -p /sbin/ldconfig - %if %{with permission} %verifyscript logger %verify_permissions -e %{_localstatedir}/log/journal/ @@ -1105,7 +1101,7 @@ getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log %endif if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before - systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || : + systemctl --no-block restart systemd-journal-flush.service || : fi %preun -n nss-myhostname @@ -1121,7 +1117,7 @@ fi %postun -n nss-mymachines -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Systemd Journal Gateway" systemd-journal-gateway || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -1161,7 +1157,6 @@ exit 0 %{_bindir}/systemd-path %{_bindir}/systemd-sysusers %{_bindir}/systemd-notify -%{_bindir}/systemd-hwdb %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl @@ -1177,13 +1172,6 @@ exit 0 %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert -%{_libdir}/libsystemd.so.* -%if %{with compat_libs} -%{_libdir}/libsystemd-daemon.so.* -%{_libdir}/libsystemd-login.so.* -%{_libdir}/libsystemd-id128.so.* -%{_libdir}/libsystemd-journal.so.* -%endif %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat @@ -1214,6 +1202,7 @@ exit 0 %{_prefix}/lib/systemd/system/*.path %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service +%{_prefix}/lib/systemd/user/*.socket %exclude %{_prefix}/lib/systemd/systemd-udevd %if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd @@ -1228,6 +1217,7 @@ exit 0 %dir %{_prefix}/lib/systemd/user-preset %dir %{_prefix}/lib/systemd/system-generators %dir %{_prefix}/lib/systemd/user-generators +%{_prefix}/lib/systemd/user-generators/systemd-dbus1-generator %dir %{_prefix}/lib/systemd/ntp-units.d/ %dir %{_prefix}/lib/systemd/system-shutdown/ %dir %{_prefix}/lib/systemd/system-sleep/ @@ -1235,12 +1225,14 @@ exit 0 %dir %{_prefix}/lib/systemd/system/dbus.target.wants %dir %{_prefix}/lib/systemd/system/getty@tty1.service.d %{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf +%dir %{_prefix}/lib/systemd/system/systemd-sysctl.service.d +%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif +%{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator %if 0%{has_efi} %{_bindir}/bootctl -%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-debug-generator %{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator @@ -1271,6 +1263,7 @@ exit 0 %dir %{_libexecdir}/sysctl.d %dir %{_sysconfdir}/sysctl.d +%{_prefix}/lib/sysctl.d/50-coredump.conf %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system @@ -1304,6 +1297,7 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf +%{_sysconfdir}/X11/xinit/ # Some files which may created by us %dir %{_sysconfdir}/X11/xorg.conf.d %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf @@ -1319,15 +1313,23 @@ exit 0 %{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %if %{with networkd} +%{_prefix}/lib/systemd/system/org.freedesktop.network1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.network1.service %endif +%{_prefix}/lib/systemd/system/org.freedesktop.systemd1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service +%{_prefix}/lib/systemd/system/org.freedesktop.locale1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service +%{_prefix}/lib/systemd/system/org.freedesktop.login1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service +%{_prefix}/lib/systemd/system/org.freedesktop.hostname1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service %if !0%{?bootstrap} +%{_prefix}/lib/systemd/system/org.freedesktop.machine1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service %endif +%{_prefix}/lib/systemd/system/org.freedesktop.timedate1.busname + %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions @@ -1345,20 +1347,20 @@ exit 0 %{_datadir}/systemd %if ! 0%{?bootstrap} -# Packaged in sysvinit subpackage -%exclude %{_mandir}/man1/init.1* -%exclude %{_mandir}/man8/halt.8* -%exclude %{_mandir}/man8/reboot.8* -%exclude %{_mandir}/man8/shutdown.8* -%exclude %{_mandir}/man8/poweroff.8* -%exclude %{_mandir}/man8/telinit.8* -%exclude %{_mandir}/man8/runlevel.8* -%exclude %{_mandir}/man*/*udev*.[0-9]* -%exclude %{_mandir}/man8/systemd-journal-gatewayd.* -%{_mandir}/man1/*.1* -%{_mandir}/man5/*.5* -%{_mandir}/man7/*.7* -%{_mandir}/man8/*.8* +%_mandir/man1/[a-rt-z]*ctl.1* +%_mandir/man1/systemc*.1* +%_mandir/man1/systemd*.1* +%_mandir/man5/[a-tv-z]* +%_mandir/man5/user* +%_mandir/man7/[bdfks]* +%_mandir/man8/kern* +%_mandir/man8/pam_* +%_mandir/man8/systemd-[a-gik-tv]* +%_mandir/man8/systemd-h[aioy]* +%_mandir/man8/systemd-journal-remote.* +%_mandir/man8/systemd-journal-upload.* +%_mandir/man8/systemd-journald* +%_mandir/man8/systemd-u[ps]* %endif %{_docdir}/systemd %{_prefix}/lib/udev/rules.d/70-uaccess.rules @@ -1388,6 +1390,7 @@ exit 0 %{_sysconfdir}/systemd/resolved.conf %{_libdir}/libnss_resolve.so.2 %{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service +%{_prefix}/lib/systemd/system/org.freedesktop.resolve1.busname %endif %if ! 0%{?bootstrap} @@ -1405,21 +1408,16 @@ exit 0 %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so -%dir %{_includedir}/systemd -%{_includedir}/systemd/sd-login.h -%{_includedir}/systemd/sd-daemon.h -%{_includedir}/systemd/sd-id128.h -%{_includedir}/systemd/sd-journal.h -%{_includedir}/systemd/sd-messages.h -%{_includedir}/systemd/_sd-common.h -%{_libdir}/pkgconfig/systemd.pc +%{_includedir}/systemd/ +%{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc %if ! 0%{?bootstrap} -%{_mandir}/man3/*.3* +%_mandir/man3/SD*.3* +%_mandir/man3/sd*.3* %endif %files sysvinit @@ -1441,7 +1439,7 @@ exit 0 %{_mandir}/man8/runlevel.8* %endif -%files -n %{udevpkgname} +%files -n udev%{?mini} %defattr(-,root,root) /sbin/udevd /sbin/udevadm @@ -1451,15 +1449,14 @@ exit 0 %if 0%{?suse_version} <= 1310 %{_prefix}/lib/firmware %endif +%{_bindir}/systemd-hwdb %dir %{_prefix}/lib/udev/ -%{_prefix}/lib/udev/accelerometer %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id %{_prefix}/lib/udev/collect %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id -%{_prefix}/lib/udev/udev-generate-persistent-rule %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ @@ -1469,14 +1466,18 @@ exit 0 %exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules %{_prefix}/lib/udev/rules.d/*.rules -%dir %{_prefix}/lib/udev/hwdb.d -%{_prefix}/lib/udev/hwdb.d/* +%{_prefix}/lib/udev/hwdb.d/ %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %{_sysconfdir}/udev/udev.conf %if ! 0%{?bootstrap} -%{_mandir}/man?/*udev*.[0-9]* +%_mandir/man5/udev* +%_mandir/man7/hwdb* +%_mandir/man7/udev* +%_mandir/man8/systemd-hwdb* +%_mandir/man8/systemd-udev* +%_mandir/man8/udev* %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd @@ -1493,44 +1494,30 @@ exit 0 %{_datadir}/pkgconfig/udev.pc %endif -%files -n lib%{udevpkgname}%{udev_major} +%files -n libsystemd0%{?mini} +%defattr(-,root,root) +%_libdir/libsystemd.so.* +%if %{with compat_libs} +%_libdir/libsystemd-daemon.so.* +%_libdir/libsystemd-login.so.* +%_libdir/libsystemd-id128.so.* +%_libdir/libsystemd-journal.so.* +%endif + +%files -n libudev%{?mini}1 %defattr(-,root,root) %{_libdir}/libudev.so.* -%files -n lib%{udevpkgname}-devel +%files -n libudev%{?mini}-devel %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%dir %{_datadir}/gtk-doc/html/libudev -%{_datadir}/gtk-doc/html/libudev/* +%{_mandir}/man3/*udev*.3* %endif %if ! 0%{?bootstrap} -%files -n libgudev-1_0-0 -%defattr(-,root,root) -%{_libdir}/libgudev-1.0.so.* - -%files -n typelib-1_0-GUdev-1_0 -%defattr(-,root,root) -%{_libdir}/girepository-1.0/GUdev-1.0.typelib - -%files -n libgudev-1_0-devel -%defattr(-,root,root) -%dir %{_includedir}/gudev-1.0 -%dir %{_includedir}/gudev-1.0/gudev -%{_includedir}/gudev-1.0/gudev/*.h -%{_libdir}/libgudev-1.0.so -%{_libdir}/pkgconfig/gudev-1.0.pc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%dir %{_datadir}/gtk-doc/html/gudev -%{_datadir}/gtk-doc/html/gudev/* -%{_datadir}/gir-1.0/GUdev-1.0.gir - %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ @@ -1541,6 +1528,10 @@ exit 0 %files -n nss-myhostname %defattr(-, root, root) %{_sbindir}/nss-myhostname-config +%if !0%{?bootstrap} +%{_mandir}/man8/libnss_myhostname.* +%{_mandir}/man8/nss-myhostname.* +%endif /%{_lib}/*nss_myhostname* %files journal-gateway @@ -1553,6 +1544,10 @@ exit 0 %files -n nss-mymachines %defattr(-,root,root) %_libdir/libnss_mymachines.so* +%if !0%{?bootstrap} +%_mandir/man8/libnss_mymachines.* +%_mandir/man8/nss-mymachines.* +%endif %endif %changelog diff --git a/tomcat6-var-lock-subsys-legacy.patch b/tomcat6-var-lock-subsys-legacy.patch index 71452e81..cf9207ba 100644 --- a/tomcat6-var-lock-subsys-legacy.patch +++ b/tomcat6-var-lock-subsys-legacy.patch @@ -5,9 +5,11 @@ Provide /run/lock/subsys directory to be able to provide the tmpfiles.d/legacy.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- systemd-210/tmpfiles.d/legacy.conf -+++ systemd-210/tmpfiles.d/legacy.conf 2014-07-30 12:36:36.862735670 +0000 -@@ -16,7 +16,7 @@ d /run/lock 0775 root lock - +Index: systemd-221/tmpfiles.d/legacy.conf +=================================================================== +--- systemd-221.orig/tmpfiles.d/legacy.conf ++++ systemd-221/tmpfiles.d/legacy.conf +@@ -17,7 +17,7 @@ L /var/lock - - - - ../run/lock # /run/lock/subsys is used for serializing SysV service execution, and # hence without use on SysV-less systems. diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index ee7e73d8..ae962403 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -1,11 +1,22 @@ ---- - src/tty-ask-password-agent/tty-ask-password-agent.c | 171 +++++++++++++++++++- - 1 file changed, 166 insertions(+), 5 deletions(-) +From 633a5904c1c4e363a7147f47e2d9fdb1925f7b9f Mon Sep 17 00:00:00 2001 +From: Werner Fink +Date: Fri, 25 Sep 2015 14:28:58 +0200 +Subject: [PATCH] Ask for passphrases not only on the first console of + /dev/console -Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c -=================================================================== ---- systemd.orig/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd/src/tty-ask-password-agent/tty-ask-password-agent.c +but also on all other consoles. This does help on e.g. mainframes +where often a serial console together with other consoles are +used. Even rack based servers attachted to both a serial console +as well as having a virtual console do sometimes miss a connected +monitor. +--- + src/tty-ask-password-agent/tty-ask-password-agent.c | 191 ++++++++++++++++++++- + 1 file changed, 186 insertions(+), 5 deletions(-) + +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 82cbf95..928a5e8 100644 +--- a/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ b/src/tty-ask-password-agent/tty-ask-password-agent.c @@ -31,6 +31,10 @@ #include #include @@ -17,26 +28,22 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c #include "util.h" #include "mkdir.h" -@@ -42,6 +46,9 @@ - #include "strv.h" - #include "build.h" - #include "def.h" +@@ -45,6 +49,8 @@ + #include "process-util.h" + #include "terminal-util.h" + #include "signal-util.h" +#include "fileio.h" +#include "macro.h" -+#include "list.h" static enum { ACTION_LIST, -@@ -50,6 +57,22 @@ static enum { +@@ -53,6 +59,19 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; +struct console { -+ LIST_FIELDS(struct console, handle); -+ const char *tty; + pid_t pid; -+ int id; -+ char dev[]; ++ char *tty; +}; + +static volatile unsigned long *usemask; @@ -50,22 +57,33 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c static bool arg_plymouth = false; static bool arg_console = false; -@@ -208,6 +231,58 @@ static int ask_password_plymouth( +@@ -210,6 +229,69 @@ static int ask_password_plymouth( return 0; } ++static void free_consoles(struct console *con, const unsigned int num) { ++ unsigned int n; ++ if (!con || !num) ++ return; ++ for (n = 0; n < num; n++) ++ free(con[n].tty); ++ free(con); ++} ++ +static const char *current_dev = "/dev/console"; -+static LIST_HEAD(struct console, consoles); -+static int collect_consoles(void) { ++static struct console* collect_consoles(unsigned int * num) { + _cleanup_free_ char *active = NULL; + const char *word, *state; -+ struct console *con; -+ size_t len; -+ int ret, id = 0; ++ struct console *con = NULL; ++ size_t con_len = 0, len; ++ int ret; ++ ++ assert(num); ++ assert(*num == 0); + + ret = read_one_line_file("/sys/class/tty/console/active", &active); + if (ret < 0) -+ return ret; ++ return con; + FOREACH_WORD(word, len, active, state) { + _cleanup_free_ char *tty = NULL; + @@ -74,42 +92,42 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c + word = tty; + len = strlen(tty); + } -+ con = malloc0(sizeof(*con) + strlen("/dev/") + len + 1); ++ con = greedy_realloc((void**)&con, &con_len, 1+(*num), sizeof(struct console)); + if (con == NULL) { + log_oom(); -+ continue; ++ return NULL; + } -+ sprintf(con->dev, "/dev/%.*s", (int)len, word); -+ con->tty = con->dev; -+ con->id = id++; -+ LIST_PREPEND(handle, consoles, con); ++ if (asprintf(&con[*num].tty, "/dev/%.*s", (int)len, word) < 0) { ++ free_consoles(con, *num); ++ log_oom(); ++ *num = 0; ++ return NULL; ++ } ++ con[*num].pid = 0; ++ (*num)++; + } -+ if (consoles == NULL) { -+ con = malloc0(sizeof(*con)); ++ if (con == NULL) { ++ con = greedy_realloc((void**)&con, &con_len, 1, sizeof(struct console)); + if (con == NULL) { + log_oom(); -+ return -ENOMEM; ++ return NULL; + } -+ con->tty = current_dev; -+ con->id = id++; -+ LIST_PREPEND(handle, consoles, con); ++ con[0].tty = strdup(current_dev); ++ if (con[0].tty == NULL) { ++ free_consoles(con, 1); ++ log_oom(); ++ return NULL; ++ } ++ con[0].pid = 0; ++ (*num)++; + } -+ return 0; -+} -+ -+static void free_consoles(void) { -+ struct console *c; -+ LIST_FOREACH(handle, c, consoles) { -+ LIST_REMOVE(handle, consoles, c); -+ free(c); -+ } -+ LIST_HEAD_INIT(consoles); ++ return con; +} + static int parse_password(const char *filename, char **wall) { _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; uint64_t not_after = 0; -@@ -308,7 +383,7 @@ static int parse_password(const char *fi +@@ -310,7 +392,7 @@ static int parse_password(const char *filename, char **wall) { _cleanup_free_ char *password = NULL; if (arg_console) { @@ -118,28 +136,39 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c if (tty_fd < 0) return tty_fd; } -@@ -612,9 +687,85 @@ static int parse_argv(int argc, char *ar +@@ -614,8 +696,90 @@ static int parse_argv(int argc, char *argv[]) { return 1; } -+static int zzz(void) ++static unsigned int wfa_child(const struct console * con, const unsigned int id) +{ -+ struct console *con; ++ setsid(); ++ release_terminal(); ++ *usemask |= 1 << id; /* shared memory area */ ++ current_dev = con[id].tty; ++ return id; ++} ++ ++static unsigned int wait_for_answer(void) ++{ ++ struct console *consoles; + struct sigaction sig = { + .sa_handler = chld_handler, + .sa_flags = SA_NOCLDSTOP | SA_RESTART, + }; + struct sigaction oldsig; + sigset_t set, oldset; ++ unsigned int num = 0, id; + int status = 0, ret; + pid_t job; + -+ collect_consoles(); -+ if (!consoles->handle_next) { -+ consoles->pid = 0; -+ con = consoles; -+ goto nofork; ++ consoles = collect_consoles(&num); ++ if (!consoles) { ++ log_error("Failed to query password: %m"); ++ exit(EXIT_FAILURE); + } ++ if (num < 2) ++ return wfa_child(consoles, 0); + + assert_se(sigemptyset(&set) == 0); + assert_se(sigaddset(&set, SIGHUP) == 0); @@ -150,25 +179,21 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c + sig.sa_handler = SIG_DFL; + assert_se(sigaction(SIGHUP, &sig, NULL) == 0); + -+ LIST_FOREACH(handle, con, consoles) { -+ switch ((con->pid = fork())) { -+ case 0: ++ for (id = 0; id < num; id++) { ++ consoles[id].pid = fork(); ++ ++ if (consoles[id].pid < 0) { ++ log_error("Failed to query password: %m"); ++ exit(EXIT_FAILURE); ++ } ++ ++ if (consoles[id].pid == 0) { + if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) + _exit(EXIT_FAILURE); + zero(sig); + assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); + assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); -+ nofork: -+ setsid(); -+ release_terminal(); -+ *usemask |= 1 << con->id; -+ current_dev = con->tty; -+ return con->id; /* child */ -+ case -1: -+ log_error("Failed to query password: %s", strerror(errno)); -+ exit(EXIT_FAILURE); -+ default: -+ break; ++ return wfa_child(consoles, id); + } + } + @@ -179,21 +204,21 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c + break; + continue; + } -+ LIST_FOREACH(handle, con, consoles) { -+ if (con->pid == job || kill(con->pid, 0) < 0) { -+ *usemask &= ~(1 << con->id); ++ for (id = 0; id < num; id++) { ++ if (consoles[id].pid == job || kill(consoles[id].pid, 0) < 0) { ++ *usemask &= ~(1 << id); /* shared memory area */ + continue; + } -+ if (*usemask & (1 << con->id)) ++ if (*usemask & (1 << id)) /* shared memory area */ + continue; -+ kill(con->pid, SIGHUP); ++ kill(consoles[id].pid, SIGHUP); + usleep(50000); -+ kill(con->pid, SIGKILL); ++ kill(consoles[id].pid, SIGKILL); + } + if (WIFEXITED(status) && ret == 0) + ret = WEXITSTATUS(status); + } -+ free_consoles(); ++ free_consoles(consoles, num); + exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */ +} + @@ -201,14 +226,20 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c - int r; + int r, id = 0; -+ LIST_HEAD_INIT(consoles); log_set_target(LOG_TARGET_AUTO); log_parse_environment(); - log_open(); -@@ -625,11 +776,19 @@ int main(int argc, char *argv[]) { +@@ -627,11 +791,27 @@ int main(int argc, char *argv[]) { if (r <= 0) goto finish; ++ /* ++ * Use this shared memory area to be able to synchronize the ++ * workers asking for password with the main process. ++ * This allows to continue if one of the consoles had been ++ * used as afterwards the remaining asking processes will ++ * be terminated. The wait_for_terminate() does not help ++ * for this use case. ++ */ + usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_SHARED, -1, 0); + assert_se(usemask != NULL); @@ -216,9 +247,9 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c if (arg_console) { - setsid(); - release_terminal(); -+ if (!arg_plymouth && arg_action != ACTION_WALL && -+ arg_action != ACTION_LIST) { -+ id = zzz(); ++ if (!arg_plymouth && ++ !IN_SET(arg_action, ACTION_WALL, ACTION_LIST)) { ++ id = wait_for_answer(); + } else { + setsid(); + release_terminal(); @@ -228,12 +259,14 @@ Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) r = watch_passwords(); else -@@ -638,6 +797,8 @@ int main(int argc, char *argv[]) { +@@ -640,6 +820,7 @@ int main(int argc, char *argv[]) { if (r < 0) log_error_errno(r, "Error: %m"); -+ free_consoles(); -+ *usemask &= ~(1 << id); ++ *usemask &= ~(1 << id); /* shared memory area */ finish: return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } +-- +2.2.0 + diff --git a/udev-generate-persistent-rule.sh b/udev-generate-persistent-rule.sh deleted file mode 100644 index 8ffdd567..00000000 --- a/udev-generate-persistent-rule.sh +++ /dev/null @@ -1,498 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2014 Robert Milasan -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# This script run manually by user, will generate a persistent rule for -# a given network interface to rename it to new interface name. -# - -_prj="$(basename $0 2>/dev/null)" -prj="${_prj%.*}" -ver="0.2" - -log_info() -{ - local msg="$1" - echo "$prj: $msg" -} - -log_error() -{ - local msg="$1" - echo "$prj: $msg" >&2 -} - -usage() -{ - cat << EOF -$prj: udev persistent rule generator script - -Usage: $prj [OPTION] ... - - -h Show this help - -l List available interfaces - -m Generate the persistent rule based on interface MAC address - default option, if nothing is specified - -p Generate the persistent rule based on interface PCI slot - -v Be more verbose - -V Output the version number - -c [INTERFACE] Current interface name (ex: ip link) - only needed for retrieving information - -n [INTERFACE] New interface name (ex: net0) - -o [FILE] Where to write the new generate rule (default: /dev/stdout) - prefered location is /etc/udev/rules.d/70-persistent-net.rules - -Example: - $prj -v -c enp0s4 -n lan0 - or - $prj -m -c enp0s4 -n net0 -o /etc/udev/rules.d/70-persistent-net.rules - or - $prj -p -c wlp3s0 -n wlan0 -o /etc/udev/rules.d/50-mynet.rules - -EOF -} - -display_note() -{ - cat << EOF - -NOTE: Using the generate persistent rule might mean you will need to do extra work to ensure -that it will work accordingly. This mean, regenerating the initramfs/initrd image and/or using -'net.ifnames=0' option at boot time. -In openSUSE/SUSE, the user will need to regenerate the initramfs/initrd image, but usually there -is no need for 'net.ifnames=0' option if the persistent rule is available in initramfs/initrd image. -EOF -} - -get_pci() -{ - local path="$1" - local pci="" - - if [ -L "$path/device" ]; then - local pci_link="$(readlink -f $path/device 2>/dev/null)" - pci="$(basename $pci_link 2>/dev/null)" - fi - echo $pci -} - -get_pci_id() -{ - local path="$1" - local pci_id="" - - if [ -r "$path/device/uevent" ]; then - local _pci_id="$(cat $path/device/uevent|grep ^PCI_ID 2>/dev/null)" - pci_id="${_pci_id#*=}" - fi - echo $pci_id -} - -get_macaddr() -{ - local path="$1" - local macaddr="" - - if [ -r "$path/address" ]; then - macaddr="$(cat $path/address 2>/dev/null)" - fi - echo $macaddr -} - -get_type() -{ - local path="$1" - local dev_type="" - - if [ -r "$path/type" ]; then - dev_type="$(cat $path/type 2>/dev/null)" - fi - echo $dev_type -} - -get_dev_id() -{ - local path="$1" - local dev_id="" - - if [ -r "$path/dev_id" ]; then - dev_id="$(cat $path/dev_id 2>/dev/null)" - fi - echo $dev_id -} - -get_devtype() -{ - local path="$1" - local devtype="" - if [ -r "$path/uevent" ]; then - local _devtype="$(cat $path/uevent|grep ^DEVTYPE 2>/dev/null)" - devtype="${_devtype#*=}" - fi - echo $devtype -} - -get_subsystem() -{ - local path="$1" - local subsystem="" - - if [ -L "$path/subsystem" ]; then - local subsystem_link="$(readlink -f $path/subsystem 2>/dev/null)" - subsystem="$(basename $subsystem_link 2>/dev/null)" - fi - echo $subsystem -} - -get_parent_subsystem() -{ - local path="$1" - local subsystem="" - - if [ -L "$path/device/subsystem" ]; then - local subsystem_link="$(readlink -f $path/device/subsystem 2>/dev/null)" - subsystem="$(basename $subsystem_link 2>/dev/null)" - fi - echo $subsystem -} - -get_driver() -{ - local path="$1" - local driver="" - - if [ -L "$path/device/driver" ]; then - local driver_link="$(readlink -f $path/device/driver 2>/dev/null)" - driver="$(basename $driver_link 2>/dev/null)" - fi - echo $driver -} - -valid_mac() -{ - local macaddr="$1" - local valid_macaddr="" - - if [ -n "$macaddr" ]; then - valid_macaddr="$(echo $macaddr | sed -n '/^\([0-9a-z][0-9a-z]:\)\{5\}[0-9a-z][0-9a-z]$/p')" - fi - echo $valid_macaddr -} - -valid_dev_type() -{ - local dev_type="$1" - - case "$dev_type" in - [0-32]) - echo "$dev_type" ;; - *) - echo "invalid" ;; - esac -} - -generate_comment() -{ - local pci_id="$1" - local driver="$2" - local output="$3" - local device_type="$4" - local _type="" - - if [ -z "$pci_id" ]; then - log_error "\$pci_id empty." - exit 1 - elif [ -z "$driver" ]; then - log_error "\$driver empty." - exit 1 - elif [ -z "$output" ]; then - log_error "\$output empty." - exit 1 - else - if [ "$device_type" == "pci" ]; then - _type="PCI" - elif [ "$device_type" == "usb" ]; then - _type="USB" - else - _type="Unknown" - fi - echo "# $_type device $pci_id ($driver)" >> $output - fi -} - -generate_rule() -{ - local _subsystem="$1" - local _mac="$2" - local _pci="$3" - local _dev_id="$4" - local _dev_type="$5" - local _kernel="$6" - local _interface="$7" - local output="$8" - - if [ -z "$_subsystem" ]; then - log_error "\$_subsystem empty." - exit 1 - elif [ -z "$_dev_id" ]; then - log_error "\$_dev_id empty." - exit 1 - elif [ -z "$_dev_type" ]; then - log_error "\$_dev_type empty." - exit 1 - elif [ -z "$_kernel" ]; then - log_error "\$_kernel empty." - exit 1 - elif [ -z "$_interface" ]; then - log_error "\$_interface empty." - exit 1 - elif [ -z "$output" ]; then - output="/dev/stdout" - fi - - if [ "$_mac" != "none" ]; then - echo "SUBSYSTEM==\"$_subsystem\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$_mac\", \ -ATTR{dev_id}==\"$_dev_id\", ATTR{type}==\"$_dev_type\", KERNEL==\"$_kernel\", NAME=\"$_interface\"" >> ${output} - elif [ "$_pci" != "none" ]; then - echo "SUBSYSTEM==\"$_subsystem\", ACTION==\"add\", DRIVERS==\"?*\", KERNELS==\"$_pci\", \ -ATTR{dev_id}==\"$_dev_id\", ATTR{type}==\"$_dev_type\", KERNEL==\"$_kernel\", NAME=\"$_interface\"" >> ${output} - else - log_error "MAC address or PCI slot information missing." - exit 1 - fi -} - -list_adapters() -{ - declare -a netdev - local count=0 - local _netdev="" - local _dev="" - - for _dev in $SYSPATH/*; do - if [ -L "$_dev/device" ]; then - local _dev_type="$(cat $_dev/type 2>/dev/null)" - if [ "$(valid_dev_type $_dev_type)" == "invalid" ]; then - continue; - fi - _dev="$(basename $_dev 2>/dev/null)" - netdev[$count]="$_dev" - count=$((count + 1)) - fi - done - - echo "Found $count network interfaces:" - for _netdev in "${netdev[@]}"; do - _macaddr="$(get_macaddr $SYSPATH/$_netdev)" - _pcislot="$(get_pci $SYSPATH/$_netdev)" - echo "I: INTERFACE: $_netdev" - echo "I: MACADDR: $_macaddr" - echo "I: PCI: $_pcislot" - done -} - -if [ $# -eq 0 ]; then - usage - log_error "missing option(s)." - exit 1 -fi - -SYSPATH="/sys/class/net" - -use_mac=0 -use_pci=0 -use_verbose=0 - -while getopts "hlmpvVc:n:o:" opt; do - case "$opt" in - h) - usage; exit 0;; - l) - list_adapters; exit 0;; - m) - use_mac=1 ;; - p) - use_pci=1 ;; - v) - use_verbose=1 ;; - V) - echo "$prj $ver"; exit 0;; - c) - ifcur="$OPTARG" ;; - n) - ifnew="$OPTARG" ;; - o) - output="$OPTARG" ;; - \?) - exit 1 ;; - esac -done - -if [[ "$use_mac" -eq 0 ]] && [[ "$use_pci" -eq 0 ]]; then - use_mac=1 -fi - -if [[ "$use_mac" -eq 1 ]] && [[ "$use_pci" -eq 1 ]]; then - log_error "generating a persistent rule can be done only using one of the option, -m or -p, not both." - exit 1 -fi - -outfile="$output" -if [ -z "$output" ]; then - outfile="/dev/stdout" -else - dir="$(dirname $outfile 2>/dev/null)" - tmpfile="$dir/.tmp_file" - if [ -d "$dir" ]; then - touch "$tmpfile" >/dev/null 2>&1 - if [ $? -ne 0 ]; then - log_error "no write access for $outfile. make sure you have write permissions to $dir." - exit 1 - fi - rm -f "$tmpfile" >/dev/null 2>&1 - else - log_error "$dir not a directory." - exit 1 - fi -fi - -interface="$ifcur" -if [ -z "$interface" ]; then - log_error "current interface must be specified." - exit 1 -elif [ "$interface" == "lo" ]; then - log_error "loopback interface is not a valid interface." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: INTERFACE=$interface" - -new_interface="$ifnew" -if [ -z "$new_interface" ]; then - log_error "new interface must be specified." - exit 1 -elif [ "$new_interface" == "lo" ]; then - log_error "new interface cant be named loopback interface." - exit -fi -[ "$use_verbose" -eq 1 ] && echo "I: INTERFACE_NEW=$new_interface" - -path="$SYSPATH/$interface" -if [ ! -d "$path" ]; then - log_error "devpath $path not a directory." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: DEVPATH=$path" - -devtype="$(get_devtype $path)" -if [ -n "$devtype" ]; then - [ "$use_verbose" -eq 1 ] && echo "I: DEVTYPE=$devtype" -fi - -parent_subsystem="$(get_parent_subsystem $path)" -if [ -z "$parent_subsystem" ]; then - log_error "unable to retrieve parent subsystem for interface $interface." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: PARENT_SUBSYSTEM=$parent_subsystem" - -subsystem="$(get_subsystem $path)" -if [ -z "$subsystem" ]; then - log_error "unable to retrieve subsystem for interface $interface." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: SUBSYSTEM=$subsystem" - -pci_id="$(get_pci_id $path)" -if [ -z "$pci_id" ]; then - pci_id="0x:0x" -fi -[ "$use_verbose" -eq 1 ] && echo "I: PCI_ID=$pci_id" - -driver="$(get_driver $path)" -if [ -z "$driver" ]; then - log_error "unable to retrieve driver for interface $interface." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: DRIVER=$driver" - -if [ "$use_mac" -eq 1 ]; then - macaddr="$(get_macaddr $path)" - if [ -z "$macaddr" ]; then - log_error "unable to retrieve MAC address for interface $interface." - exit 1 - fi - if [ "$(valid_mac $macaddr)" != "$macaddr" ]; then - log_error "$macaddr invalid MAC address." - exit 1 - fi - [ "$use_verbose" -eq 1 ] && echo "I: MACADDR=$macaddr" -fi - -if [ "$use_pci" -eq 1 ]; then - pci="$(get_pci $path)" - if [ -z "$pci" ]; then - log_error "unable to retrieve PCI slot for interface $interface." - exit 1 - fi - [ "$use_verbose" -eq 1 ] && echo "I: KERNELS=$pci" -fi - -dev_id="$(get_dev_id $path)" -if [ -z "$dev_id" ]; then - log_error "unable to retrieve dev_id for interface $interface." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: DEV_ID=$dev_id" - -dev_type="$(get_type $path)" -if [ -z "$dev_type" ]; then - log_error "unable to retrieve dev_type for interface $interface." - exit 1 -elif [ "$(valid_dev_type $dev_type)" == "invalid" ]; then - log_info "$interface not a supported device." - exit 1 -fi -[ "$use_verbose" -eq 1 ] && echo "I: TYPE=$dev_type" - -kernel="eth*" -if [ -n "$devtype" ]; then - if [ "$devtype" == "wlan" ]; then - kernel="wlan*" - fi -fi - -if [ -n "$output" ]; then - echo "Persistent rule written to "$outfile"" - generate_comment "$pci_id" "$driver" "$outfile" "$parent_subsystem" -fi - -if [ "$use_mac" -eq 1 ]; then - generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" - if [ -n "$output" ]; then - generate_rule "$subsystem" "$macaddr" "none" "$dev_id" "$dev_type" "$kernel" "$new_interface" "$outfile" - fi -elif [ "$use_pci" -eq 1 ]; then - generate_rule "$subsystem" "none" "$pci" "$dev_id" "$dev_type" "$kernel" "$new_interface" - if [ -n "$output" ]; then - generate_rule "$subsystem" "none" "$pci" "$dev_id" "$dev_type" "$kernel" "$new_interface" "$outfile" - fi -fi - -if [ -n "$output" ]; then - display_note -fi - -exit 0 diff --git a/use-rndaddentropy-ioctl-to-load-random-seed.patch b/use-rndaddentropy-ioctl-to-load-random-seed.patch index a91b3701..8df39ad4 100644 --- a/use-rndaddentropy-ioctl-to-load-random-seed.patch +++ b/use-rndaddentropy-ioctl-to-load-random-seed.patch @@ -5,11 +5,13 @@ write back the bytes and increase the entropy bit counter. Related to bnc#892096 --- - systemd-219/src/random-seed/random-seed.c | 71 +++++++++++++++++++++++++----- + src/random-seed/random-seed.c | 71 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 10 deletions(-) ---- systemd-219/src/random-seed/random-seed.c -+++ systemd-219/src/random-seed/random-seed.c 2015-04-21 09:39:03.057518051 +0000 +Index: systemd-221/src/random-seed/random-seed.c +=================================================================== +--- systemd-221.orig/src/random-seed/random-seed.c ++++ systemd-221/src/random-seed/random-seed.c @@ -22,7 +22,9 @@ #include #include @@ -42,7 +44,7 @@ Related to bnc#892096 r = log_oom(); goto finish; } -+ entropy->buf_size = buf_size; ++ entropy->buf_size = (typeof(entropy->buf_size)) buf_size; r = mkdir_parents_label(RANDOM_SEED, 0755); if (r < 0) { @@ -52,7 +54,7 @@ Related to bnc#892096 + entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600); + if (entropy_fd < 0) { -+ entropy->entropy_count = 0; ++ entropy->entropy_count = 0; + if (errno != ENOENT) { + log_error("Failed to open " RANDOM_SEED "/entropy_count: %m"); + r = -errno; @@ -70,23 +72,23 @@ Related to bnc#892096 seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -104,7 +124,7 @@ int main(int argc, char *argv[]) { +@@ -103,7 +123,7 @@ int main(int argc, char *argv[]) { } } - k = loop_read(seed_fd, buf, buf_size, false); -+ k = loop_read(seed_fd, entropy->buf, entropy->buf_size, false); - if (k <= 0) { - - if (r != 0) -@@ -115,13 +135,29 @@ int main(int argc, char *argv[]) { - } else { - lseek(seed_fd, 0, SEEK_SET); ++ k = loop_read(seed_fd, entropy->buf, (size_t) entropy->buf_size, false); + if (k < 0) + r = log_error_errno(k, "Failed to read seed from " RANDOM_SEED ": %m"); + else if (k == 0) +@@ -111,13 +131,29 @@ int main(int argc, char *argv[]) { + else { + (void) lseek(seed_fd, 0, SEEK_SET); - r = loop_write(random_fd, buf, (size_t) k, false); - if (r < 0) - log_error_errno(r, "Failed to write seed to /dev/urandom: %m"); -+ if (entropy->entropy_count && ((size_t)k) == entropy->buf_size) { ++ if (entropy->entropy_count && (size_t)k == (size_t)entropy->buf_size) { + r = ioctl(random_fd, RNDADDENTROPY, entropy); + if (r < 0) { + log_error_errno(errno, "Failed to write seed to /dev/urandom: %m"); @@ -111,8 +113,8 @@ Related to bnc#892096 + seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { - log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m"); -@@ -136,6 +172,21 @@ int main(int argc, char *argv[]) { + r = log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m"); +@@ -130,6 +166,21 @@ int main(int argc, char *argv[]) { goto finish; } @@ -132,20 +134,23 @@ Related to bnc#892096 + } + } else { - log_error("Unknown verb %s.", argv[1]); + log_error("Unknown verb '%s'.", argv[1]); r = -EINVAL; -@@ -149,12 +200,12 @@ int main(int argc, char *argv[]) { - fchmod(seed_fd, 0600); - fchown(seed_fd, 0, 0); +@@ -144,7 +195,7 @@ int main(int argc, char *argv[]) { + (void) fchmod(seed_fd, 0600); + (void) fchown(seed_fd, 0, 0); - k = loop_read(random_fd, buf, buf_size, false); -+ k = loop_read(random_fd, entropy->buf, entropy->buf_size, false); - if (k <= 0) { - log_error("Failed to read new seed from /dev/urandom: %s", r < 0 ? strerror(-r) : "EOF"); - r = k == 0 ? -EIO : (int) k; - } else { -- r = loop_write(seed_fd, buf, (size_t) k, false); -+ r = loop_write(seed_fd, entropy->buf, (size_t) k, false); - if (r < 0) - log_error_errno(r, "Failed to write new random seed file: %m"); ++ k = loop_read(random_fd, entropy->buf, (size_t) entropy->buf_size, false); + if (k < 0) { + r = log_error_errno(k, "Failed to read new seed from /dev/urandom: %m"); + goto finish; +@@ -155,7 +206,7 @@ int main(int argc, char *argv[]) { + goto finish; } + +- r = loop_write(seed_fd, buf, (size_t) k, false); ++ r = loop_write(seed_fd, entropy->buf, (size_t) k, false); + if (r < 0) + log_error_errno(r, "Failed to write new random seed file: %m"); + } diff --git a/v224.tar.gz b/v224.tar.gz new file mode 100644 index 00000000..d4d491a2 --- /dev/null +++ b/v224.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d7ac1532a57639fbc828f8a5051a090883c6ad2908618a7a13ab386db831bfc +size 3868075 diff --git a/vhangup-on-all-consoles.patch b/vhangup-on-all-consoles.patch index 3273aba6..c0f4d74f 100644 --- a/vhangup-on-all-consoles.patch +++ b/vhangup-on-all-consoles.patch @@ -14,10 +14,10 @@ track progress: https://bugzilla.redhat.com/show_bug.cgi?id=1141137 units/getty@.service.m4 | 1 + units/serial-getty@.service.m4 | 1 + 2 files changed, 2 insertions(+) -Index: systemd-218/units/getty@.service.m4 +Index: systemd-221/units/getty@.service.m4 =================================================================== ---- systemd-218.orig/units/getty@.service.m4 -+++ systemd-218/units/getty@.service.m4 +--- systemd-221.orig/units/getty@.service.m4 ++++ systemd-221/units/getty@.service.m4 @@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0 [Service] # the VT is cleared by TTYVTDisallocate @@ -26,10 +26,10 @@ Index: systemd-218/units/getty@.service.m4 Type=idle Restart=always RestartSec=0 -Index: systemd-218/units/serial-getty@.service.m4 +Index: systemd-221/units/serial-getty@.service.m4 =================================================================== ---- systemd-218.orig/units/serial-getty@.service.m4 -+++ systemd-218/units/serial-getty@.service.m4 +--- systemd-221.orig/units/serial-getty@.service.m4 ++++ systemd-221/units/serial-getty@.service.m4 @@ -24,6 +24,7 @@ IgnoreOnIsolate=yes [Service] diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch index 8aec94ac..fcc01432 100644 --- a/watch_resolv.conf_for_become_changed.patch +++ b/watch_resolv.conf_for_become_changed.patch @@ -3,19 +3,19 @@ src/core/manager.h | 5 ++ 2 files changed, 98 insertions(+) -Index: systemd-218/src/core/manager.c +Index: systemd-221/src/core/manager.c =================================================================== ---- systemd-218.orig/src/core/manager.c -+++ systemd-218/src/core/manager.c -@@ -37,6 +37,7 @@ - #include +--- systemd-221.orig/src/core/manager.c ++++ systemd-221/src/core/manager.c +@@ -32,6 +32,7 @@ + #include #include #include +#include #ifdef HAVE_AUDIT #include -@@ -302,6 +303,91 @@ static int manager_check_ask_password(Ma +@@ -308,6 +309,91 @@ static int manager_check_ask_password(Ma return m->have_ask_password; } @@ -107,7 +107,7 @@ Index: systemd-218/src/core/manager.c static int manager_watch_idle_pipe(Manager *m) { int r; -@@ -557,6 +643,7 @@ int manager_new(SystemdRunningAs running +@@ -585,6 +671,7 @@ int manager_new(ManagerRunningAs running m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ @@ -115,7 +115,7 @@ Index: systemd-218/src/core/manager.c m->ask_password_inotify_fd = -1; m->have_ask_password = -EINVAL; /* we don't know */ -@@ -618,6 +705,10 @@ int manager_new(SystemdRunningAs running +@@ -651,6 +738,10 @@ int manager_new(ManagerRunningAs running if (r < 0) goto fail; @@ -126,7 +126,7 @@ Index: systemd-218/src/core/manager.c m->udev = udev_new(); if (!m->udev) { r = -ENOMEM; -@@ -896,6 +987,8 @@ Manager* manager_free(Manager *m) { +@@ -929,6 +1020,8 @@ Manager* manager_free(Manager *m) { if (!m) return NULL; @@ -135,11 +135,11 @@ Index: systemd-218/src/core/manager.c manager_clear_jobs_and_units(m); for (c = 0; c < _UNIT_TYPE_MAX; c++) -Index: systemd-218/src/core/manager.h +Index: systemd-221/src/core/manager.h =================================================================== ---- systemd-218.orig/src/core/manager.h -+++ systemd-218/src/core/manager.h -@@ -185,6 +185,11 @@ struct Manager { +--- systemd-221.orig/src/core/manager.h ++++ systemd-221/src/core/manager.h +@@ -181,6 +181,11 @@ struct Manager { int utab_inotify_fd; sd_event_source *mount_utab_event_source; From 7474d62c55eb4d9a48832f8c3c9701f9e02c3958dc80dafe83ec244f58815554 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 2 Nov 2015 11:54:15 +0000 Subject: [PATCH 218/221] Accepting request 341375 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/341375 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=224 --- ...unt-units-pulled-by-RequiresMountsFo.patch | 49 +++ ...ting-for-unit-termination-in-certain.patch | 140 +++++++ systemd-mini.changes | 57 +++ systemd-mini.spec | 62 +-- systemd-sysv-install | 26 ++ systemd.changes | 57 +++ systemd.spec | 62 +-- tty-ask-password-agent-on-console.patch | 363 ++++++++++++------ 8 files changed, 626 insertions(+), 190 deletions(-) create mode 100644 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch create mode 100644 0002-units-enable-waiting-for-unit-termination-in-certain.patch create mode 100644 systemd-sysv-install diff --git a/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch b/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch new file mode 100644 index 00000000..5161b8ca --- /dev/null +++ b/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch @@ -0,0 +1,49 @@ +From 6a102f90a2ee50e43998d64819e8bd4ee241c22b Mon Sep 17 00:00:00 2001 +From: Franck Bui +Date: Thu, 8 Oct 2015 19:06:06 +0200 +Subject: [PATCH 1/2] Make sure the mount units pulled by 'RequiresMountsFor=' + are loaded (if they exist) + +We should make sure that mount units involved by 'RequiresMountsFor=' +directives are really loaded if not required by any others units so +that Requires= dependencies on the mount units are applied and thus +the mount unit dependencies are started. + +(cherry picked from commit 9b3757e9c8c8d6e161481193c4ef60e425a9ae41) +--- + src/core/unit.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/core/unit.c b/src/core/unit.c +index dd5e801..dc7bc5a 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -1141,13 +1141,23 @@ static int unit_add_mount_dependencies(Unit *u) { + char prefix[strlen(*i) + 1]; + + PATH_FOREACH_PREFIX_MORE(prefix, *i) { ++ _cleanup_free_ char *p = NULL; + Unit *m; + +- r = manager_get_unit_by_path(u->manager, prefix, ".mount", &m); ++ r = unit_name_from_path(prefix, ".mount", &p); + if (r < 0) + return r; +- if (r == 0) ++ ++ m = manager_get_unit(u->manager, p); ++ if (!m) { ++ /* Make sure to load the mount unit if ++ * it exists. If so the dependencies ++ * on this unit will be added later ++ * during the loading of the mount ++ * unit. */ ++ (void) manager_load_unit_prepare(u->manager, p, NULL, NULL, &m); + continue; ++ } + if (m == u) + continue; + +-- +2.6.0 + diff --git a/0002-units-enable-waiting-for-unit-termination-in-certain.patch b/0002-units-enable-waiting-for-unit-termination-in-certain.patch new file mode 100644 index 00000000..4cad2861 --- /dev/null +++ b/0002-units-enable-waiting-for-unit-termination-in-certain.patch @@ -0,0 +1,140 @@ +From d7f920bfcb0296fed214d4d3a21d64de09a68521 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 1 Sep 2015 17:25:59 +0200 +Subject: [PATCH 2/2] units: enable waiting for unit termination in certain + cases + +The legacy cgroup hierarchy does not support reliable empty +notifications in containers and if there are left-over subgroups in a +cgroup. This makes it hard to correctly wait for them running empty, and +thus we previously disabled this logic entirely. + +With this change we explicitly check for the container case, and whether +the unit is a "delegation" unit (i.e. one where programs may create +their own subgroups). If we are neither in a container, nor operating on +a delegation unit cgroup empty notifications become reliable and thus we +start waiting for the empty notifications again. + +This doesn't really fix the general problem around cgroup notifications +but reduces the effect around it. + +(This also reorders #include lines by their focus, as suggsted in +CODING_STYLE. We have to add "virt.h", so let's do that at the right +place.) + +Also see #317. + +(cherry picked from commit e9db43d5910717a1084924c512bf85e2b8265375) +--- + src/core/cgroup.c | 12 ++++++++++++ + src/core/cgroup.h | 2 ++ + src/core/unit.c | 40 +++++++++++++++++++++++----------------- + 3 files changed, 37 insertions(+), 17 deletions(-) + +diff --git a/src/core/cgroup.c b/src/core/cgroup.c +index 6474e08..65af351 100644 +--- a/src/core/cgroup.c ++++ b/src/core/cgroup.c +@@ -1127,6 +1127,18 @@ int unit_reset_cpu_usage(Unit *u) { + return 0; + } + ++bool unit_cgroup_delegate(Unit *u) { ++ CGroupContext *c; ++ ++ assert(u); ++ ++ c = unit_get_cgroup_context(u); ++ if (!c) ++ return false; ++ ++ return c->delegate; ++} ++ + static const char* const cgroup_device_policy_table[_CGROUP_DEVICE_POLICY_MAX] = { + [CGROUP_AUTO] = "auto", + [CGROUP_CLOSED] = "closed", +diff --git a/src/core/cgroup.h b/src/core/cgroup.h +index 869ddae..7b38d21 100644 +--- a/src/core/cgroup.h ++++ b/src/core/cgroup.h +@@ -130,5 +130,7 @@ int unit_get_memory_current(Unit *u, uint64_t *ret); + int unit_get_cpu_usage(Unit *u, nsec_t *ret); + int unit_reset_cpu_usage(Unit *u); + ++bool unit_cgroup_delegate(Unit *u); ++ + const char* cgroup_device_policy_to_string(CGroupDevicePolicy i) _const_; + CGroupDevicePolicy cgroup_device_policy_from_string(const char *s) _pure_; +diff --git a/src/core/unit.c b/src/core/unit.c +index dc7bc5a..275f567 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -28,26 +28,28 @@ + #include "sd-id128.h" + #include "sd-messages.h" + #include "set.h" +-#include "unit.h" + #include "macro.h" + #include "strv.h" + #include "path-util.h" +-#include "load-fragment.h" +-#include "load-dropin.h" + #include "log.h" +-#include "unit-name.h" +-#include "dbus-unit.h" +-#include "special.h" + #include "cgroup-util.h" + #include "missing.h" + #include "mkdir.h" + #include "fileio-label.h" ++#include "formats-util.h" ++#include "process-util.h" ++#include "virt.h" + #include "bus-common-errors.h" ++#include "bus-util.h" ++#include "dropin.h" ++#include "unit-name.h" ++#include "special.h" ++#include "unit.h" ++#include "load-fragment.h" ++#include "load-dropin.h" + #include "dbus.h" ++#include "dbus-unit.h" + #include "execute.h" +-#include "dropin.h" +-#include "formats-util.h" +-#include "process-util.h" + + const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = { + [UNIT_SERVICE] = &service_vtable, +@@ -3535,14 +3537,18 @@ int unit_kill_context( + } else if (r > 0) { + + /* FIXME: For now, we will not wait for the +- * cgroup members to die, simply because +- * cgroup notification is unreliable. It +- * doesn't work at all in containers, and +- * outside of containers it can be confused +- * easily by leaving directories in the +- * cgroup. */ +- +- /* wait_for_exit = true; */ ++ * cgroup members to die if we are running in ++ * a container or if this is a delegation ++ * unit, simply because cgroup notification is ++ * unreliable in these cases. It doesn't work ++ * at all in containers, and outside of ++ * containers it can be confused easily by ++ * left-over directories in the cgroup -- ++ * which however should not exist in ++ * non-delegated units. */ ++ ++ if (detect_container(NULL) == 0 && !unit_cgroup_delegate(u)) ++ wait_for_exit = true; + + if (c->send_sighup && k != KILL_KILL) { + set_free(pid_set); +-- +2.6.0 + diff --git a/systemd-mini.changes b/systemd-mini.changes index fcf4a2ad..ce46d87e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,60 @@ +------------------------------------------------------------------- +Wed Oct 21 20:18:58 UTC 2015 - dmueller@suse.com + +- enable seccomp for aarch64 (fate#318444) + +------------------------------------------------------------------- +Thu Oct 15 14:12:44 UTC 2015 - fbui@suse.com + +- Fix again UEFI for mini package + +------------------------------------------------------------------- +Thu Oct 15 09:07:51 UTC 2015 - jengelh@inai.de + +- Drop one more undesirable Obsoletes/Provides. This should have + been a Conflicts. (There was already a Conflicts, and since + Conflicts go both ways, we won't need a second one.) + +------------------------------------------------------------------- +Thu Oct 15 08:19:00 UTC 2015 - werner@suse.de + +- No UEFI for systemd-mini + +------------------------------------------------------------------- +Mon Oct 12 11:34:13 UTC 2015 - fbui@suse.com + +- Add 2 upstream patches to fix boo#949574 and bsc#932284 + 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch + 0002-units-enable-waiting-for-unit-termination-in-certain.patch + +------------------------------------------------------------------- +Fri Oct 9 18:03:02 UTC 2015 - fbui@suse.com + +- Disable systemd-boot on aarch64 since it fails to build. + Error while compiling src/boot/efi/util.o is: + usr/include/efi/aarch64/efibind.h:2:20: fatal error: stdint.h: No such file or directory + +------------------------------------------------------------------- +Fri Oct 9 07:16:45 UTC 2015 - fbui@suse.com + +- Fix UEFI detection logic: basically we let configure.ac figure out + if UEFI is supported by the current build environment. No need to + clutter the spec file with a new conditionnal %has_efi. + +- Provide systemd-bootx64.efi (aka gummiboot) + +------------------------------------------------------------------- +Tue Oct 6 15:13:04 UTC 2015 - werner@suse.de + +- Modify patch tty-ask-password-agent-on-console.patch to reflect + the changes done for pull request 1432 + +------------------------------------------------------------------- +Thu Oct 1 15:58:32 UTC 2015 - jengelh@inai.de + +- Undo Obsoletes/Provides (from Aug 11), creates too big a cycle. +- Provide systemd-sysv-install program/link [bnc#948353] + ------------------------------------------------------------------- Fri Sep 25 14:20:41 UTC 2015 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 10026de9..e4c8d278 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -29,11 +29,6 @@ %bcond_with resolved %bcond_with python %bcond_with parentpathid -%ifarch %{ix86} x86_64 aarch64 -%define has_efi 1 -%else -%define has_efi 0 -%endif %if 0%{?suse_version} > 1315 %bcond_without permission %bcond_without blkrrpart @@ -77,16 +72,21 @@ BuildRequires: pkgconfig(libkmod) >= 15 BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(mount) >= 2.26 -%ifarch %ix86 x86_64 x32 %arm ppc64le s390x +%ifarch aarch64 %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif +%ifarch %{ix86} x86_64 +BuildRequires: gnu-efi +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) Conflicts: sysvinit +Conflicts: otherproviders(systemd) %if 0%{?bootstrap} #!BuildIgnore: dbus-1 +Requires: this-is-only-for-build-envs Provides: systemd = %version-%release -Conflicts: otherproviders(systemd) +Conflicts: kiwi %else BuildRequires: docbook-xsl-stylesheets BuildRequires: libgcrypt-devel @@ -143,6 +143,7 @@ Source7: libgcrypt.m4 Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service +Source12: systemd-sysv-install Source1065: systemd-remount-tmpfs @@ -181,6 +182,10 @@ Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +# PATCH-FIX-UPSTREAM (boo#949574) +Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch +# PATCH-FIX-UPSTREAM (bsc#932284) +Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty @@ -324,11 +329,8 @@ Requires: libsystemd0%{?mini} = %version Requires: systemd-rpm-macros %if 0%{?bootstrap} Provides: systemd-devel = %version-%release -Conflicts: otherproviders(systemd-devel) -%else -Obsoletes: systemd-mini-devel -Provides: systemd-mini-devel %endif +Conflicts: otherproviders(systemd-devel) %description devel Development headers and auxiliary files for developing applications for systemd. @@ -351,9 +353,7 @@ License: LGPL-2.1+ Group: System/Libraries %if 0%{?bootstrap} Conflicts: libsystemd0 -%else -Obsoletes: libsystemd0-mini -Provides: libsystemd0-mini +Requires: this-is-only-for-build-envs %endif %description -n libsystemd0%{?mini} @@ -411,11 +411,9 @@ Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %version-%release -Conflicts: otherproviders(udev) -%else -Obsoletes: udev-mini -Provides: udev-mini +Conflicts: kiwi %endif +Conflicts: otherproviders(udev) %description -n udev%{?mini} Udev creates and removes device nodes in /dev for devices discovered or @@ -433,9 +431,6 @@ License: LGPL-2.1+ Group: System/Libraries %if 0%{?bootstrap} Conflicts: libudev1 -%else -Obsoletes: libudev1-mini -Provides: libudev1-mini %endif %description -n libudev%{?mini}1 @@ -449,11 +444,8 @@ Group: Development/Libraries/C and C++ Requires: libudev%{?mini}1 = %version-%release %if 0%{?bootstrap} Provides: libudev-devel = %version-%release -Conflicts: otherproviders(libudev-devel) -%else -Obsoletes: libudev-mini-devel -Provides: libudev-mini-devel %endif +Conflicts: otherproviders(libudev-devel) %description -n libudev%{?mini}-devel This package contains the development files for the library libudev, a @@ -565,6 +557,8 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch84 -p1 %patch86 -p1 +%patch87 -p1 +%patch88 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 @@ -700,9 +694,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS --enable-selinux \ --enable-split-usr \ --disable-static \ -%if ! 0%{?has_efi} - --disable-efi \ -%endif --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ @@ -726,6 +717,7 @@ make %{?_smp_mflags} update-man-list man %install make install DESTDIR="%buildroot" +install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} %if ! 0%{?bootstrap} @@ -1147,6 +1139,7 @@ exit 0 %{_bindir}/networkctl %endif %{_bindir}/busctl +%{_bindir}/bootctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl @@ -1187,6 +1180,7 @@ exit 0 %dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system +%exclude %{_prefix}/lib/systemd/systemd-sysv* %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service %exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service @@ -1236,9 +1230,6 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator -%if 0%{has_efi} -%{_bindir}/bootctl -%endif %{_prefix}/lib/systemd/system-generators/systemd-debug-generator %{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator %if %{with sysvcompat} @@ -1255,6 +1246,13 @@ exit 0 /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user +%ifarch %{ix86} x86_64 +%dir %{_prefix}/lib/systemd/boot +%dir %{_prefix}/lib/systemd/boot/efi +%{_prefix}/lib/systemd/boot/efi/*.efi +%{_prefix}/lib/systemd/boot/efi/*.stub +%endif + %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf @@ -1443,6 +1441,8 @@ exit 0 %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* %endif +%dir %_prefix/lib/systemd +%_prefix/lib/systemd/systemd-sysv-install %files -n udev%{?mini} %defattr(-,root,root) diff --git a/systemd-sysv-install b/systemd-sysv-install new file mode 100644 index 00000000..d116728e --- /dev/null +++ b/systemd-sysv-install @@ -0,0 +1,26 @@ +#!/bin/sh +set -e + +usage() { + echo "Usage: $0 [--root=path] enable|disable|is-enabled " >&2 + exit 1 +} +eval set -- "$(getopt -o r: --long root: -- "$@")" +while true; do + case "$1" in + -r|--root) + ROOT="$2" + shift 2 ;; + --) shift ; break ;; + *) usage ;; + esac +done +NAME="$2" +ROOT="${ROOT:+--root=$ROOT}" +[ -n "$NAME" ] || usage +case "$1" in + enable) chkconfig $ROOT -a "$NAME" ;; + disable) chkconfig $ROOT -r "$NAME" ;; + is-enabled) chkconfig $ROOT -t "$NAME" ;; + *) usage ;; +esac diff --git a/systemd.changes b/systemd.changes index fcf4a2ad..ce46d87e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,60 @@ +------------------------------------------------------------------- +Wed Oct 21 20:18:58 UTC 2015 - dmueller@suse.com + +- enable seccomp for aarch64 (fate#318444) + +------------------------------------------------------------------- +Thu Oct 15 14:12:44 UTC 2015 - fbui@suse.com + +- Fix again UEFI for mini package + +------------------------------------------------------------------- +Thu Oct 15 09:07:51 UTC 2015 - jengelh@inai.de + +- Drop one more undesirable Obsoletes/Provides. This should have + been a Conflicts. (There was already a Conflicts, and since + Conflicts go both ways, we won't need a second one.) + +------------------------------------------------------------------- +Thu Oct 15 08:19:00 UTC 2015 - werner@suse.de + +- No UEFI for systemd-mini + +------------------------------------------------------------------- +Mon Oct 12 11:34:13 UTC 2015 - fbui@suse.com + +- Add 2 upstream patches to fix boo#949574 and bsc#932284 + 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch + 0002-units-enable-waiting-for-unit-termination-in-certain.patch + +------------------------------------------------------------------- +Fri Oct 9 18:03:02 UTC 2015 - fbui@suse.com + +- Disable systemd-boot on aarch64 since it fails to build. + Error while compiling src/boot/efi/util.o is: + usr/include/efi/aarch64/efibind.h:2:20: fatal error: stdint.h: No such file or directory + +------------------------------------------------------------------- +Fri Oct 9 07:16:45 UTC 2015 - fbui@suse.com + +- Fix UEFI detection logic: basically we let configure.ac figure out + if UEFI is supported by the current build environment. No need to + clutter the spec file with a new conditionnal %has_efi. + +- Provide systemd-bootx64.efi (aka gummiboot) + +------------------------------------------------------------------- +Tue Oct 6 15:13:04 UTC 2015 - werner@suse.de + +- Modify patch tty-ask-password-agent-on-console.patch to reflect + the changes done for pull request 1432 + +------------------------------------------------------------------- +Thu Oct 1 15:58:32 UTC 2015 - jengelh@inai.de + +- Undo Obsoletes/Provides (from Aug 11), creates too big a cycle. +- Provide systemd-sysv-install program/link [bnc#948353] + ------------------------------------------------------------------- Fri Sep 25 14:20:41 UTC 2015 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 609bab8f..6c43ffee 100644 --- a/systemd.spec +++ b/systemd.spec @@ -27,11 +27,6 @@ %bcond_with resolved %bcond_with python %bcond_with parentpathid -%ifarch %{ix86} x86_64 aarch64 -%define has_efi 1 -%else -%define has_efi 0 -%endif %if 0%{?suse_version} > 1315 %bcond_without permission %bcond_without blkrrpart @@ -72,16 +67,21 @@ BuildRequires: pkgconfig(libkmod) >= 15 BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(mount) >= 2.26 -%ifarch %ix86 x86_64 x32 %arm ppc64le s390x +%ifarch aarch64 %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif +%ifarch %{ix86} x86_64 +BuildRequires: gnu-efi +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) Conflicts: sysvinit +Conflicts: otherproviders(systemd) %if 0%{?bootstrap} #!BuildIgnore: dbus-1 +Requires: this-is-only-for-build-envs Provides: systemd = %version-%release -Conflicts: otherproviders(systemd) +Conflicts: kiwi %else BuildRequires: docbook-xsl-stylesheets BuildRequires: libgcrypt-devel @@ -138,6 +138,7 @@ Source7: libgcrypt.m4 Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service +Source12: systemd-sysv-install Source1065: systemd-remount-tmpfs @@ -176,6 +177,10 @@ Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +# PATCH-FIX-UPSTREAM (boo#949574) +Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch +# PATCH-FIX-UPSTREAM (bsc#932284) +Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty @@ -319,11 +324,8 @@ Requires: libsystemd0%{?mini} = %version Requires: systemd-rpm-macros %if 0%{?bootstrap} Provides: systemd-devel = %version-%release -Conflicts: otherproviders(systemd-devel) -%else -Obsoletes: systemd-mini-devel -Provides: systemd-mini-devel %endif +Conflicts: otherproviders(systemd-devel) %description devel Development headers and auxiliary files for developing applications for systemd. @@ -346,9 +348,7 @@ License: LGPL-2.1+ Group: System/Libraries %if 0%{?bootstrap} Conflicts: libsystemd0 -%else -Obsoletes: libsystemd0-mini -Provides: libsystemd0-mini +Requires: this-is-only-for-build-envs %endif %description -n libsystemd0%{?mini} @@ -406,11 +406,9 @@ Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %version-%release -Conflicts: otherproviders(udev) -%else -Obsoletes: udev-mini -Provides: udev-mini +Conflicts: kiwi %endif +Conflicts: otherproviders(udev) %description -n udev%{?mini} Udev creates and removes device nodes in /dev for devices discovered or @@ -428,9 +426,6 @@ License: LGPL-2.1+ Group: System/Libraries %if 0%{?bootstrap} Conflicts: libudev1 -%else -Obsoletes: libudev1-mini -Provides: libudev1-mini %endif %description -n libudev%{?mini}1 @@ -444,11 +439,8 @@ Group: Development/Libraries/C and C++ Requires: libudev%{?mini}1 = %version-%release %if 0%{?bootstrap} Provides: libudev-devel = %version-%release -Conflicts: otherproviders(libudev-devel) -%else -Obsoletes: libudev-mini-devel -Provides: libudev-mini-devel %endif +Conflicts: otherproviders(libudev-devel) %description -n libudev%{?mini}-devel This package contains the development files for the library libudev, a @@ -560,6 +552,8 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch84 -p1 %patch86 -p1 +%patch87 -p1 +%patch88 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 @@ -695,9 +689,6 @@ cflags -Wl,--hash-size=8599 LDFLAGS --enable-selinux \ --enable-split-usr \ --disable-static \ -%if ! 0%{?has_efi} - --disable-efi \ -%endif --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ @@ -721,6 +712,7 @@ make %{?_smp_mflags} update-man-list man %install make install DESTDIR="%buildroot" +install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} %if ! 0%{?bootstrap} @@ -1142,6 +1134,7 @@ exit 0 %{_bindir}/networkctl %endif %{_bindir}/busctl +%{_bindir}/bootctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl @@ -1182,6 +1175,7 @@ exit 0 %dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system +%exclude %{_prefix}/lib/systemd/systemd-sysv* %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service %exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service @@ -1231,9 +1225,6 @@ exit 0 %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator -%if 0%{has_efi} -%{_bindir}/bootctl -%endif %{_prefix}/lib/systemd/system-generators/systemd-debug-generator %{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator %if %{with sysvcompat} @@ -1250,6 +1241,13 @@ exit 0 /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user +%ifarch %{ix86} x86_64 +%dir %{_prefix}/lib/systemd/boot +%dir %{_prefix}/lib/systemd/boot/efi +%{_prefix}/lib/systemd/boot/efi/*.efi +%{_prefix}/lib/systemd/boot/efi/*.stub +%endif + %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf @@ -1438,6 +1436,8 @@ exit 0 %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* %endif +%dir %_prefix/lib/systemd +%_prefix/lib/systemd/systemd-sysv-install %files -n udev%{?mini} %defattr(-,root,root) diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index ae962403..9490adc2 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -1,6 +1,6 @@ -From 633a5904c1c4e363a7147f47e2d9fdb1925f7b9f Mon Sep 17 00:00:00 2001 +From 907bc2aa36f58c6050cd4b7b290e0992a4373e49 Mon Sep 17 00:00:00 2001 From: Werner Fink -Date: Fri, 25 Sep 2015 14:28:58 +0200 +Date: Wed, 30 Sep 2015 15:00:41 +0200 Subject: [PATCH] Ask for passphrases not only on the first console of /dev/console @@ -9,22 +9,45 @@ where often a serial console together with other consoles are used. Even rack based servers attachted to both a serial console as well as having a virtual console do sometimes miss a connected monitor. + +To be able to ask on all terminal devices of /dev/console the devices +are collected. If more than one device are found, then on each of the +terminals a inquiring task for passphrase is forked and do not return +to the caller. + +Every task has its own session and its own controlling terminal. +If one of the tasks does handle a password, the remaining tasks +will be terminated. + +Also let contradictory options on the command of +systemd-tty-ask-password-agent fail. + +Spwan for each device of the system console /dev/console a own process. + +Replace the system call wait() with with system call waitid(). --- - src/tty-ask-password-agent/tty-ask-password-agent.c | 191 ++++++++++++++++++++- - 1 file changed, 186 insertions(+), 5 deletions(-) + src/tty-ask-password-agent.c | 264 ++++++++++++++++++++- + 1 file changed, 255 insertions(+), 9 deletions(-) diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c -index 82cbf95..928a5e8 100644 +index 4630eb9..df4bada 100644 --- a/src/tty-ask-password-agent/tty-ask-password-agent.c +++ b/src/tty-ask-password-agent/tty-ask-password-agent.c -@@ -31,6 +31,10 @@ +@@ -4,6 +4,7 @@ + This file is part of systemd. + + Copyright 2010 Lennart Poettering ++ Copyright 2015 Werner Fink + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by +@@ -31,6 +32,9 @@ #include #include #include +#include +#include +#include -+#include #include "util.h" #include "mkdir.h" @@ -37,7 +60,7 @@ index 82cbf95..928a5e8 100644 static enum { ACTION_LIST, -@@ -53,6 +59,19 @@ static enum { +@@ -53,8 +59,21 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; @@ -46,88 +69,101 @@ index 82cbf95..928a5e8 100644 + char *tty; +}; + -+static volatile unsigned long *usemask; +static volatile sig_atomic_t sigchild; -+static void chld_handler(int sig) -+{ -+ (void)sig; ++ ++static void chld_handler(int sig) { + ++sigchild; +} + static bool arg_plymouth = false; static bool arg_console = false; ++static bool arg_device = false; ++static const char *current_dev = "/dev/console"; -@@ -210,6 +229,69 @@ static int ask_password_plymouth( + static int ask_password_plymouth( + const char *message, +@@ -211,6 +230,80 @@ static int ask_password_plymouth( return 0; } -+static void free_consoles(struct console *con, const unsigned int num) { ++static void free_consoles(struct console *con, unsigned int num) { + unsigned int n; -+ if (!con || !num) ++ ++ if (!con || num == 0) + return; ++ + for (n = 0; n < num; n++) + free(con[n].tty); ++ + free(con); +} + -+static const char *current_dev = "/dev/console"; -+static struct console* collect_consoles(unsigned int * num) { ++static int collect_consoles(struct console **consoles, unsigned int *num) { + _cleanup_free_ char *active = NULL; + const char *word, *state; + struct console *con = NULL; + size_t con_len = 0, len; ++ unsigned int count = 0; + int ret; + + assert(num); -+ assert(*num == 0); ++ assert(consoles); + + ret = read_one_line_file("/sys/class/tty/console/active", &active); + if (ret < 0) -+ return con; ++ return log_error_errno(ret, "Failed to read /sys/class/tty/console/active: %m"); ++ + FOREACH_WORD(word, len, active, state) { + _cleanup_free_ char *tty = NULL; + -+ if (strneq(word, "tty0", len) && -+ read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) { ++ if (len == 4 && strneq(word, "tty0", 4)) { ++ ++ ret = read_one_line_file("/sys/class/tty/tty0/active", &tty); ++ if (ret < 0) ++ return log_error_errno(ret, "Failed to read /sys/class/tty/tty0/active: %m"); ++ + word = tty; + len = strlen(tty); + } -+ con = greedy_realloc((void**)&con, &con_len, 1+(*num), sizeof(struct console)); -+ if (con == NULL) { -+ log_oom(); -+ return NULL; ++ ++ con = GREEDY_REALLOC(con, con_len, 1+count); ++ if (!con) ++ return log_oom(); ++ ++ if (asprintf(&con[count].tty, "/dev/%.*s", (int)len, word) < 0) { ++ free_consoles(con, count); ++ return log_oom(); + } -+ if (asprintf(&con[*num].tty, "/dev/%.*s", (int)len, word) < 0) { -+ free_consoles(con, *num); -+ log_oom(); -+ *num = 0; -+ return NULL; -+ } -+ con[*num].pid = 0; -+ (*num)++; ++ ++ con[count].pid = 0; ++ count++; + } -+ if (con == NULL) { -+ con = greedy_realloc((void**)&con, &con_len, 1, sizeof(struct console)); -+ if (con == NULL) { -+ log_oom(); -+ return NULL; -+ } ++ ++ if (!con) { ++ con = GREEDY_REALLOC(con, con_len, 1); ++ if (!con) ++ return log_oom(); ++ + con[0].tty = strdup(current_dev); -+ if (con[0].tty == NULL) { ++ if (!con[0].tty) { + free_consoles(con, 1); -+ log_oom(); -+ return NULL; ++ return log_oom(); + } ++ + con[0].pid = 0; -+ (*num)++; ++ count++; + } -+ return con; ++ ++ *num = count; ++ *consoles = con; ++ ++ return 0; +} + static int parse_password(const char *filename, char **wall) { _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; uint64_t not_after = 0; -@@ -310,7 +392,7 @@ static int parse_password(const char *filename, char **wall) { +@@ -311,7 +404,7 @@ static int parse_password(const char *fi _cleanup_free_ char *password = NULL; if (arg_console) { @@ -136,137 +172,208 @@ index 82cbf95..928a5e8 100644 if (tty_fd < 0) return tty_fd; } -@@ -614,8 +696,90 @@ static int parse_argv(int argc, char *argv[]) { +@@ -554,7 +647,7 @@ static int parse_argv(int argc, char *ar + { "watch", no_argument, NULL, ARG_WATCH }, + { "wall", no_argument, NULL, ARG_WALL }, + { "plymouth", no_argument, NULL, ARG_PLYMOUTH }, +- { "console", no_argument, NULL, ARG_CONSOLE }, ++ { "console", optional_argument, NULL, ARG_CONSOLE }, + {} + }; + +@@ -598,6 +691,10 @@ static int parse_argv(int argc, char *ar + + case ARG_CONSOLE: + arg_console = true; ++ if (optarg && *optarg) { ++ current_dev = optarg; ++ arg_device = true; ++ } + break; + + case '?': +@@ -612,9 +709,143 @@ static int parse_argv(int argc, char *ar + return -EINVAL; + } + ++ if (arg_plymouth || arg_console) { ++ ++ if (!IN_SET(arg_action, ACTION_QUERY, ACTION_WATCH)) { ++ log_error("%s conflicting options --query and --watch.", program_invocation_short_name); ++ return -EINVAL; ++ } ++ ++ if (arg_plymouth && arg_console) { ++ log_error("%s conflicting options --plymouth and --console.", program_invocation_short_name); ++ return -EINVAL; ++ } ++ } ++ return 1; } -+static unsigned int wfa_child(const struct console * con, const unsigned int id) -+{ -+ setsid(); -+ release_terminal(); -+ *usemask |= 1 << id; /* shared memory area */ -+ current_dev = con[id].tty; -+ return id; -+} -+ -+static unsigned int wait_for_answer(void) -+{ -+ struct console *consoles; ++/* ++ * To be able to ask on all terminal devices of /dev/console ++ * the devices are collected. If more than one device are found, ++ * then on each of the terminals a inquiring task is forked. ++ * Every task has its own session and its own controlling terminal. ++ * If one of the tasks does handle a password, the remaining tasks ++ * will be terminated. ++ */ ++static int ask_on_consoles(int argc, char *argv[]) { ++ struct console *consoles = NULL; + struct sigaction sig = { + .sa_handler = chld_handler, + .sa_flags = SA_NOCLDSTOP | SA_RESTART, + }; + struct sigaction oldsig; -+ sigset_t set, oldset; ++ sigset_t oldset; + unsigned int num = 0, id; -+ int status = 0, ret; -+ pid_t job; ++ siginfo_t status = {}; ++ int ret; + -+ consoles = collect_consoles(&num); -+ if (!consoles) { -+ log_error("Failed to query password: %m"); -+ exit(EXIT_FAILURE); -+ } -+ if (num < 2) -+ return wfa_child(consoles, 0); ++ ret = collect_consoles(&consoles, &num); ++ if (ret < 0) ++ return log_error_errno(ret, "Failed to query password: %m"); ++ ++ assert_se(sigprocmask_many(SIG_UNBLOCK, &oldset, SIGHUP, SIGCHLD, -1) >= 0); ++ ++ assert_se(sigemptyset(&sig.sa_mask) >= 0); ++ assert_se(sigaction(SIGCHLD, &sig, &oldsig) >= 0); + -+ assert_se(sigemptyset(&set) == 0); -+ assert_se(sigaddset(&set, SIGHUP) == 0); -+ assert_se(sigaddset(&set, SIGCHLD) == 0); -+ assert_se(sigemptyset(&sig.sa_mask) == 0); -+ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0); -+ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0); + sig.sa_handler = SIG_DFL; -+ assert_se(sigaction(SIGHUP, &sig, NULL) == 0); ++ assert_se(sigaction(SIGHUP, &sig, NULL) >= 0); + + for (id = 0; id < num; id++) { + consoles[id].pid = fork(); + -+ if (consoles[id].pid < 0) { -+ log_error("Failed to query password: %m"); -+ exit(EXIT_FAILURE); -+ } ++ if (consoles[id].pid < 0) ++ return log_error_errno(errno, "Failed to query password: %m"); + + if (consoles[id].pid == 0) { -+ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0) -+ _exit(EXIT_FAILURE); ++ char *conarg; ++ int ac; ++ ++ conarg = strjoina("--console=", consoles[id].tty); ++ if (!conarg) ++ return log_oom(); ++ ++ free_consoles(consoles, num); /* not used anymore */ ++ ++ assert_se(prctl(PR_SET_PDEATHSIG, SIGHUP) >= 0); ++ + zero(sig); -+ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0); -+ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0); -+ return wfa_child(consoles, id); ++ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) >= 0); ++ assert_se(sigaction(SIGCHLD, &oldsig, NULL) >= 0); ++ ++ for (ac = 0; ac < argc; ac++) { ++ if (streq(argv[ac], "--console")) { ++ argv[ac] = conarg; ++ break; ++ } ++ } ++ ++ execv(SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH, argv); ++ ++ return log_error_errno(errno, "Failed to execute %s: %m", program_invocation_name); + } + } + + ret = 0; -+ while ((job = wait(&status)) != 0) { -+ if (job < 0) { -+ if (errno != EINTR) ++ while (true) { ++ ++ if ((ret = waitid(P_ALL, 0, &status, WEXITED)) < 0) { ++ ++ if (errno != EINTR) { ++ ret = -errno; ++ if (errno == ECHILD) ++ ret = EXIT_SUCCESS; + break; ++ } + continue; + } ++ + for (id = 0; id < num; id++) { -+ if (consoles[id].pid == job || kill(consoles[id].pid, 0) < 0) { -+ *usemask &= ~(1 << id); /* shared memory area */ -+ continue; -+ } -+ if (*usemask & (1 << id)) /* shared memory area */ ++ struct timespec timeout; ++ sigset_t set; ++ int signum; ++ ++ if (consoles[id].pid == status.si_pid || kill(consoles[id].pid, 0) < 0) ++ consoles[id].pid = -1; ++ ++ if (consoles[id].pid < 0) + continue; ++ + kill(consoles[id].pid, SIGHUP); -+ usleep(50000); ++ ++ assert_se(sigemptyset(&set) >= 0); ++ assert_se(sigaddset(&set, SIGCHLD) >= 0); ++ ++ timespec_store(&timeout, 50 * USEC_PER_MSEC); ++ signum = sigtimedwait(&set, NULL, &timeout); ++ ++ if (signum != SIGCHLD) { ++ ++ if (signum < 0 && errno != EAGAIN) ++ return log_error_errno(errno, "sigtimedwait() failed: %m"); ++ ++ if (signum >= 0) ++ log_warning("sigtimedwait() returned unexpected signal."); ++ } ++ + kill(consoles[id].pid, SIGKILL); + } -+ if (WIFEXITED(status) && ret == 0) -+ ret = WEXITSTATUS(status); ++ ++ if (WIFEXITED(status.si_status) && ret == 0) ++ ret = WEXITSTATUS(status.si_status); + } ++ + free_consoles(consoles, num); -+ exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */ ++ ++ return ret; +} + int main(int argc, char *argv[]) { -- int r; -+ int r, id = 0; + int r; - log_set_target(LOG_TARGET_AUTO); - log_parse_environment(); -@@ -627,11 +791,27 @@ int main(int argc, char *argv[]) { +@@ -628,15 +859,28 @@ int main(int argc, char *argv[]) { if (r <= 0) goto finish; -+ /* -+ * Use this shared memory area to be able to synchronize the -+ * workers asking for password with the main process. -+ * This allows to continue if one of the consoles had been -+ * used as afterwards the remaining asking processes will -+ * be terminated. The wait_for_terminate() does not help -+ * for this use case. -+ */ -+ usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE, -+ MAP_ANONYMOUS | MAP_SHARED, -1, 0); -+ assert_se(usemask != NULL); -+ - if (arg_console) { +- if (arg_console) { - setsid(); - release_terminal(); -+ if (!arg_plymouth && -+ !IN_SET(arg_action, ACTION_WALL, ACTION_LIST)) { -+ id = wait_for_answer(); -+ } else { -+ setsid(); -+ release_terminal(); ++ if (arg_console && !arg_device) ++ /* ++ * Spwan for each console device a own process ++ */ ++ r = ask_on_consoles(argc, argv); ++ else { ++ ++ if (arg_device) { ++ /* ++ * Later on a controlling terminal will be will be acquired, ++ * therefore the current process has to become a session ++ * leader and should not have a controlling terminal already. ++ */ ++ (void) setsid(); ++ (void) release_terminal(); + } ++ ++ if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) ++ r = watch_passwords(); ++ else ++ r = show_passwords(); } - - if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) - r = watch_passwords(); - else -@@ -640,6 +820,7 @@ int main(int argc, char *argv[]) { +- if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) +- r = watch_passwords(); +- else +- r = show_passwords(); + if (r < 0) log_error_errno(r, "Error: %m"); -+ *usemask &= ~(1 << id); /* shared memory area */ - finish: - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; - } -- 2.2.0 From 53c08d1b2a4a54d6bf8da9986b811bfbeeadf98413f81ecdb82a957e4557e4ea Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Tue, 24 Nov 2015 21:33:21 +0000 Subject: [PATCH 219/221] Accepting request 345198 from Base:System Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/345198 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=225 --- 1096-new-udev-root-symlink-generator.patch | 15 +---- ...lang-value-in-etc-sysconfig-language.patch | 55 ++++++++++++------- systemd-mini.changes | 13 +++++ systemd-mini.spec | 10 ++++ systemd.changes | 13 +++++ systemd.spec | 10 ++++ 6 files changed, 81 insertions(+), 35 deletions(-) diff --git a/1096-new-udev-root-symlink-generator.patch b/1096-new-udev-root-symlink-generator.patch index 23036bff..e6a0c0de 100644 --- a/1096-new-udev-root-symlink-generator.patch +++ b/1096-new-udev-root-symlink-generator.patch @@ -94,19 +94,6 @@ + return 0; +} --- /dev/null -+++ systemd-222/units/systemd-udev-root-symlink.service -@@ -0,0 +1,10 @@ -+[Unit] -+Description=Rule generator for /dev/root symlink -+Before=systemd-udevd.service -+DefaultDependencies=no -+ConditionPathIsReadWrite=/run/udev -+ -+[Service] -+Type=oneshot -+RemainAfterExit=yes -+ExecStart=/usr/lib/udev/rootsymlink-generator ---- /dev/null +++ systemd-222/units/systemd-udev-root-symlink.service.in @@ -0,0 +1,10 @@ +[Unit] @@ -118,4 +105,4 @@ +[Service] +Type=oneshot +RemainAfterExit=yes -+ExecStart=@udevlibexec@/rootsymlink-generator ++ExecStart=@udevlibexecdir@/rootsymlink-generator diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index 16e2272a..520c7bbe 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -11,42 +11,55 @@ Index: systemd-221/src/core/locale-setup.c =================================================================== --- systemd-221.orig/src/core/locale-setup.c +++ systemd-221/src/core/locale-setup.c -@@ -34,6 +34,11 @@ int locale_setup(char ***environment) { +@@ -34,6 +34,10 @@ int locale_setup(char ***environment) { char **add; char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT -+ char _cleanup_free_ *root_uses_lang; -+ -+ zero(root_uses_lang); ++ char _cleanup_free_ *rc_lang = NULL, *rc_lc_ctype = NULL; ++ char _cleanup_free_ *root_uses_lang = NULL; +#endif if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -80,6 +85,27 @@ int locale_setup(char ***environment) { +@@ -80,6 +85,41 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } +#ifdef HAVE_SYSV_COMPAT -+ if (r <= 0 && -+ (r = parse_env_file("/etc/sysconfig/language", NEWLINE, -+ "ROOT_USES_LANG", &root_uses_lang, -+ "RC_LANG", &variables[VARIABLE_LANG], -+ NULL)) < 0) { -+ if (r != -ENOENT) -+ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); ++ r = parse_env_file("/etc/sysconfig/language", NEWLINE, ++ "RC_LANG", &rc_lang, ++ "RC_LC_CTYPE", &rc_lc_ctype, ++ "ROOT_USES_LANG", &root_uses_lang, ++ NULL); + -+ } else { -+ if (!root_uses_lang || (root_uses_lang && !strcaseeq(root_uses_lang,"yes"))) { -+ if (root_uses_lang && strcaseeq(root_uses_lang,"ctype")) -+ variables[VARIABLE_LC_CTYPE]=variables[VARIABLE_LANG]; -+ else -+ free(variables[VARIABLE_LANG]); ++ if (r < 0 && r != -ENOENT) ++ log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r)); + -+ variables[VARIABLE_LANG]=strdup("POSIX"); ++ /* ++ * Use the values of the interactive locale configuration in /etc/sysconfig/language ++ * as fallback if /etc/locale.conf does not exist and no locale was specified on the ++ * kernel's command line. The special case ROOT_USES_LANG=ctype allows to set LC_CTYPE ++ * even if LANG for root is set to e.g. POSIX. But do this only if no LC_CTYPE has been ++ * set in /etc/locale.conf and on the kernel's command line. ++ */ ++ if (root_uses_lang) { ++ if (strcaseeq(root_uses_lang, "yes") && !variables[VARIABLE_LANG]) { ++ variables[VARIABLE_LANG] = rc_lang; ++ rc_lang = NULL; ++ } ++ if (strcaseeq(root_uses_lang, "ctype") && !variables[VARIABLE_LC_CTYPE]) { ++ if (variables[VARIABLE_LANG]) ++ variables[VARIABLE_LC_CTYPE] = strdup(variables[VARIABLE_LANG]); ++ else if (rc_lc_ctype && *rc_lc_ctype) { ++ variables[VARIABLE_LC_CTYPE] = rc_lc_ctype; ++ rc_lc_ctype = NULL; ++ } else if (rc_lang && *rc_lang) { ++ variables[VARIABLE_LC_CTYPE] = rc_lang; ++ rc_lang = NULL; ++ } ++ } + } -+ } -+ +#endif add = NULL; diff --git a/systemd-mini.changes b/systemd-mini.changes index ce46d87e..4724b61e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de + +- Modify patch handle-root_uses_lang-value-in-etc-sysconfig-language.patch + to handle locale at boot time well (boo#927250) +- Be able to use build service environments several times + +------------------------------------------------------------------- +Tue Nov 10 18:06:43 UTC 2015 - schwab@suse.de + +- 1096-new-udev-root-symlink-generator.patch: fix substitution in + ExecStart value + ------------------------------------------------------------------- Wed Oct 21 20:18:58 UTC 2015 - dmueller@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index e4c8d278..84245e76 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -658,6 +658,16 @@ cflags () esac set +o noclobber } + +# +# Be sure that fresh build libudev is linked as otherwise no errors are found +# +sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ +systemd_cryptsetup_LDFLAGS = \\\ + $(AM_LDFLAGS) \\\ + -Wl,-rpath-link=$(top_srcdir)/.libs\ + +}' Makefile.am sh autogen.sh export V=e diff --git a/systemd.changes b/systemd.changes index ce46d87e..4724b61e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de + +- Modify patch handle-root_uses_lang-value-in-etc-sysconfig-language.patch + to handle locale at boot time well (boo#927250) +- Be able to use build service environments several times + +------------------------------------------------------------------- +Tue Nov 10 18:06:43 UTC 2015 - schwab@suse.de + +- 1096-new-udev-root-symlink-generator.patch: fix substitution in + ExecStart value + ------------------------------------------------------------------- Wed Oct 21 20:18:58 UTC 2015 - dmueller@suse.com diff --git a/systemd.spec b/systemd.spec index 6c43ffee..674e6fc6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -653,6 +653,16 @@ cflags () esac set +o noclobber } + +# +# Be sure that fresh build libudev is linked as otherwise no errors are found +# +sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ +systemd_cryptsetup_LDFLAGS = \\\ + $(AM_LDFLAGS) \\\ + -Wl,-rpath-link=$(top_srcdir)/.libs\ + +}' Makefile.am sh autogen.sh export V=e From 3073e39c4113a1f8fb29ab568beca14aeabd92390692f67c33fb3554cf54d94d Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 23 Dec 2015 11:01:38 +0000 Subject: [PATCH 220/221] Accepting request 350349 from Base:System 1 OBS-URL: https://build.opensuse.org/request/show/350349 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=226 --- ...unt-units-pulled-by-RequiresMountsFo.patch | 49 ------ ...s390_con3270_disable_ANSI_colour_esc.patch | 131 +++++----------- ...sh-for-reboot-or-hddown-for-poweroff.patch | 38 ++--- ...network-device-after-NFS-mount-units.patch | 57 +++---- 0001-bnc888612-logind-polkit-acpi.patch | 30 ++-- ...-do-not-allow-overlong-machine-names.patch | 37 +++++ ...ting-for-unit-termination-in-certain.patch | 140 ------------------ 0014-journald-with-journaling-FS.patch | 33 +++-- ...pletion-smart-to-be-able-to-redirect.patch | 90 +++++------ ...enable-by_path-links-for-ata-devices.patch | 99 ------------- ...-increase-maximum-number-of-children.patch | 14 +- Correct_assert_on_unexpected_error_code.patch | 10 +- avoid-divide-by-zero-sigtrap.patch | 22 +-- ...plock-and-compose_table-and-kbd_rate.patch | 28 ++-- ...lock-value-in-etc-sysconfig-keyboard.patch | 56 ++++--- ...lang-value-in-etc-sysconfig-language.patch | 24 +-- insserv-generator.patch | 27 ++-- macros.systemd.upstream | 12 +- ...f-ARM-based-Chromebook-as-a-power-sw.patch | 18 --- set-and-use-default-logconsole.patch | 65 ++++---- suse-sysv-bootd-support.diff | 33 ++--- systemd-add-user-keep.patch | 36 ++--- systemd-mini.changes | 56 +++++++ systemd-mini.spec | 59 ++++---- systemd-pam_config.patch | 34 +++-- systemd-tmp-safe-defaults.patch | 16 +- systemd.changes | 56 +++++++ systemd.spec | 59 ++++---- tty-ask-password-agent-on-console.patch | 73 +++++---- ...addentropy-ioctl-to-load-random-seed.patch | 35 +++-- v224.tar.gz | 3 - v228.tar.gz | 3 + watch_resolv.conf_for_become_changed.patch | 34 ++--- 33 files changed, 644 insertions(+), 833 deletions(-) delete mode 100644 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch create mode 100644 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch delete mode 100644 0002-units-enable-waiting-for-unit-termination-in-certain.patch delete mode 100644 1001-re-enable-by_path-links-for-ata-devices.patch delete mode 100644 rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch delete mode 100644 v224.tar.gz create mode 100644 v228.tar.gz diff --git a/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch b/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch deleted file mode 100644 index 5161b8ca..00000000 --- a/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 6a102f90a2ee50e43998d64819e8bd4ee241c22b Mon Sep 17 00:00:00 2001 -From: Franck Bui -Date: Thu, 8 Oct 2015 19:06:06 +0200 -Subject: [PATCH 1/2] Make sure the mount units pulled by 'RequiresMountsFor=' - are loaded (if they exist) - -We should make sure that mount units involved by 'RequiresMountsFor=' -directives are really loaded if not required by any others units so -that Requires= dependencies on the mount units are applied and thus -the mount unit dependencies are started. - -(cherry picked from commit 9b3757e9c8c8d6e161481193c4ef60e425a9ae41) ---- - src/core/unit.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/src/core/unit.c b/src/core/unit.c -index dd5e801..dc7bc5a 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -1141,13 +1141,23 @@ static int unit_add_mount_dependencies(Unit *u) { - char prefix[strlen(*i) + 1]; - - PATH_FOREACH_PREFIX_MORE(prefix, *i) { -+ _cleanup_free_ char *p = NULL; - Unit *m; - -- r = manager_get_unit_by_path(u->manager, prefix, ".mount", &m); -+ r = unit_name_from_path(prefix, ".mount", &p); - if (r < 0) - return r; -- if (r == 0) -+ -+ m = manager_get_unit(u->manager, p); -+ if (!m) { -+ /* Make sure to load the mount unit if -+ * it exists. If so the dependencies -+ * on this unit will be added later -+ * during the loading of the mount -+ * unit. */ -+ (void) manager_load_unit_prepare(u->manager, p, NULL, NULL, &m); - continue; -+ } - if (m == u) - continue; - --- -2.6.0 - diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index 9756786c..3dd400a3 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,15 +1,15 @@ --- - rules/99-systemd.rules.in | 2 - src/basic/terminal-util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- + rules/99-systemd.rules.in | 2 - + src/basic/terminal-util.c | 55 ++++++++++++++++++++++++++++++++++++++++++++-- src/basic/terminal-util.h | 1 - src/core/manager.c | 24 ++++++++--- - 4 files changed, 116 insertions(+), 10 deletions(-) + src/core/manager.c | 24 +++++++++++++++----- + 4 files changed, 74 insertions(+), 8 deletions(-) -Index: systemd-221/rules/99-systemd.rules.in +Index: systemd-228/rules/99-systemd.rules.in =================================================================== ---- systemd-221.orig/rules/99-systemd.rules.in -+++ systemd-221/rules/99-systemd.rules.in +--- systemd-228.orig/rules/99-systemd.rules.in ++++ systemd-228/rules/99-systemd.rules.in @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="systemd_end" @@ -19,76 +19,11 @@ Index: systemd-221/rules/99-systemd.rules.in KERNEL=="vport*", TAG+="systemd" SUBSYSTEM=="block", TAG+="systemd" -Index: systemd-221/src/basic/terminal-util.c +Index: systemd-228/src/basic/terminal-util.c =================================================================== ---- systemd-221.orig/src/basic/terminal-util.c -+++ systemd-221/src/basic/terminal-util.c -@@ -647,6 +647,7 @@ int status_vprintf(const char *status, b - struct iovec iovec[6] = {}; - int n = 0; - static bool prev_ephemeral; -+ static int is_ansi_console = -1; - - assert(format); - -@@ -660,6 +661,41 @@ int status_vprintf(const char *status, b - if (fd < 0) - return fd; - -+ if (_unlikely_(is_ansi_console < 0)) -+ is_ansi_console = ansi_console(fd); -+ -+ if (status && !is_ansi_console) { -+ const char *esc, *ptr; -+ esc = strchr(status, 0x1B); -+ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) { -+ switch(*ptr) { -+ case 'S': -+ status = " SKIP "; -+ break; -+ case 'O': -+ status = " OK "; -+ break; -+ case 'F': -+ status = "FAILED"; -+ break; -+ case 'D': -+ status = "DEPEND"; -+ break; -+ case 'T': -+ status = " TIME "; -+ break; -+ case 'I': -+ status = " INFO "; -+ break; -+ case '*': -+ status = " BUSY "; -+ break; -+ default: -+ break; -+ } -+ } -+ } -+ - if (ellipse) { - char *e; - size_t emax, sl; -@@ -682,8 +718,12 @@ int status_vprintf(const char *status, b - } - } - -- if (prev_ephemeral) -- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); -+ if (prev_ephemeral) { -+ if (is_ansi_console) -+ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); -+ else -+ IOVEC_SET_STRING(iovec[n++], "\r"); -+ } - prev_ephemeral = ephemeral; - - if (status) { -@@ -807,10 +847,47 @@ bool tty_is_vc_resolve(const char *tty) +--- systemd-228.orig/src/basic/terminal-util.c ++++ systemd-228/src/basic/terminal-util.c +@@ -717,10 +717,47 @@ bool tty_is_vc_resolve(const char *tty) return tty_is_vc(tty); } @@ -137,7 +72,7 @@ Index: systemd-221/src/basic/terminal-util.c } int fd_columns(int fd) { -@@ -890,8 +967,22 @@ void columns_lines_cache_reset(int signu +@@ -800,8 +837,22 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; @@ -161,59 +96,59 @@ Index: systemd-221/src/basic/terminal-util.c return cached_on_tty; } -Index: systemd-221/src/basic/terminal-util.h +Index: systemd-228/src/basic/terminal-util.h =================================================================== ---- systemd-221.orig/src/basic/terminal-util.h -+++ systemd-221/src/basic/terminal-util.h -@@ -77,6 +77,7 @@ unsigned lines(void); +--- systemd-228.orig/src/basic/terminal-util.h ++++ systemd-228/src/basic/terminal-util.h +@@ -78,6 +78,7 @@ unsigned lines(void); void columns_lines_cache_reset(int _unused_ signum); bool on_tty(void); +bool ansi_console(int fd); - static inline const char *ansi_highlight(void) { - return on_tty() ? ANSI_HIGHLIGHT_ON : ""; -Index: systemd-221/src/core/manager.c + static inline const char *ansi_underline(void) { + return on_tty() ? ANSI_UNDERLINE : ""; +Index: systemd-228/src/core/manager.c =================================================================== ---- systemd-221.orig/src/core/manager.c -+++ systemd-221/src/core/manager.c -@@ -113,7 +113,7 @@ static void manager_watch_jobs_in_progre +--- systemd-228.orig/src/core/manager.c ++++ systemd-228/src/core/manager.c +@@ -126,7 +126,7 @@ static void manager_watch_jobs_in_progre - #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) + #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED)-1) + sizeof(ANSI_HIGHLIGHT_RED)-1 + 2*(sizeof(ANSI_NORMAL)-1)) -static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) { +static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) { char *p = buffer; assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); -@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si +@@ -135,12 +135,14 @@ static void draw_cylon(char buffer[], si if (pos > 1) { if (pos > 2) p = mempset(p, ' ', pos-2); -- p = stpcpy(p, ANSI_RED_ON); +- p = stpcpy(p, ANSI_RED); + if (ansi_console) -+ p = stpcpy(p, ANSI_RED_ON); ++ p = stpcpy(p, ANSI_RED); *p++ = '*'; } if (pos > 0 && pos <= width) { -- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON); +- p = stpcpy(p, ANSI_HIGHLIGHT_RED); + if (ansi_console) -+ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON); ++ p = stpcpy(p, ANSI_HIGHLIGHT_RED); *p++ = '*'; } -@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si +@@ -151,7 +153,8 @@ static void draw_cylon(char buffer[], si *p++ = '*'; if (pos < width-1) p = mempset(p, ' ', width-1-pos); -- strcpy(p, ANSI_HIGHLIGHT_OFF); +- strcpy(p, ANSI_NORMAL); + if (ansi_console) -+ strcpy(p, ANSI_HIGHLIGHT_OFF); ++ strcpy(p, ANSI_NORMAL); } } -@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m +@@ -168,6 +171,7 @@ void manager_flip_auto_status(Manager *m } static void manager_print_jobs_in_progress(Manager *m) { @@ -221,7 +156,7 @@ Index: systemd-221/src/core/manager.c _cleanup_free_ char *job_of_n = NULL; Iterator i; Job *j; -@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre +@@ -193,10 +197,20 @@ static void manager_print_jobs_in_progre assert(counter == print_nr + 1); assert(j); diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index ea7eeafa..f370239f 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -3,11 +3,11 @@ src/systemctl/systemctl.c | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) -Index: systemd-221/src/core/shutdown.c +Index: systemd-227/src/core/shutdown.c =================================================================== ---- systemd-221.orig/src/core/shutdown.c -+++ systemd-221/src/core/shutdown.c -@@ -396,6 +396,10 @@ int main(int argc, char *argv[]) { +--- systemd-227.orig/src/core/shutdown.c ++++ systemd-227/src/core/shutdown.c +@@ -418,6 +418,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); @@ -18,11 +18,11 @@ Index: systemd-221/src/core/shutdown.c if (errno == EPERM && in_container) { /* If we are in a container, and we lacked * CAP_SYS_BOOT just exit, this will kill our -Index: systemd-221/src/systemctl/systemctl.c +Index: systemd-227/src/systemctl/systemctl.c =================================================================== ---- systemd-221.orig/src/systemctl/systemctl.c -+++ systemd-221/src/systemctl/systemctl.c -@@ -93,6 +93,7 @@ static bool arg_no_pager = false; +--- systemd-227.orig/src/systemctl/systemctl.c ++++ systemd-227/src/systemctl/systemctl.c +@@ -94,6 +94,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -30,7 +30,7 @@ Index: systemd-221/src/systemctl/systemctl.c static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -6636,6 +6637,7 @@ static int halt_parse_argv(int argc, cha +@@ -6938,6 +6939,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -38,7 +38,7 @@ Index: systemd-221/src/systemctl/systemctl.c { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -6688,10 +6690,13 @@ static int halt_parse_argv(int argc, cha +@@ -6990,10 +6992,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -53,32 +53,32 @@ Index: systemd-221/src/systemctl/systemctl.c case '?': return -EINVAL; -@@ -7291,7 +7296,8 @@ static int halt_now(enum action a) { +@@ -7506,7 +7511,8 @@ static int halt_now(enum action a) { /* The kernel will automaticall flush ATA disks and suchlike * on reboot(), but the file systems need to be synce'd * explicitly in advance. */ -- sync(); +- (void) sync(); + if (!arg_no_sync) -+ sync(); ++ (void) sync(); /* Make sure C-A-D is handled by the kernel from this point * on... */ -@@ -7299,14 +7305,14 @@ static int halt_now(enum action a) { +@@ -7514,14 +7520,13 @@ static int halt_now(enum action a) { switch (a) { - case ACTION_HALT: - log_info("Halting."); -- reboot(RB_HALT_SYSTEM); +- (void) reboot(RB_HALT_SYSTEM); - return -errno; - +- case ACTION_POWEROFF: log_info("Powering off."); - reboot(RB_POWER_OFF); + (void) reboot(RB_POWER_OFF); + /* fall-through */ + case ACTION_HALT: + log_info("Halting."); -+ reboot(RB_HALT_SYSTEM); ++ (void) reboot(RB_HALT_SYSTEM); return -errno; - case ACTION_REBOOT: { + case ACTION_KEXEC: diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index 955314ff..dc30e64f 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -5,17 +5,16 @@ NFS share is added as "After=" dependency to the .mount. --- Makefile.am | 2 - src/basic/util.c | 1 src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ src/core/mount-iface.h | 25 +++++++ src/core/mount.c | 35 +++++++++ - 5 files changed, 234 insertions(+), 2 deletions(-) + 4 files changed, 233 insertions(+), 2 deletions(-) -Index: systemd-221/Makefile.am +Index: systemd-228/Makefile.am =================================================================== ---- systemd-221.orig/Makefile.am -+++ systemd-221/Makefile.am -@@ -1164,6 +1164,8 @@ libcore_la_SOURCES = \ +--- systemd-228.orig/Makefile.am ++++ systemd-228/Makefile.am +@@ -1223,6 +1223,8 @@ libcore_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ @@ -24,22 +23,10 @@ Index: systemd-221/Makefile.am src/core/kmod-setup.c \ src/core/kmod-setup.h \ src/core/loopback-setup.h \ -Index: systemd-221/src/basic/util.c -=================================================================== ---- systemd-221.orig/src/basic/util.c -+++ systemd-221/src/basic/util.c -@@ -1478,6 +1478,7 @@ bool fstype_is_network(const char *fstyp - "ncp\0" - "nfs\0" - "nfs4\0" -+ "afs\0" - "gfs\0" - "gfs2\0" - "glusterfs\0"; -Index: systemd-221/src/core/mount-iface.c +Index: systemd-228/src/core/mount-iface.c =================================================================== --- /dev/null -+++ systemd-221/src/core/mount-iface.c ++++ systemd-228/src/core/mount-iface.c @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -214,10 +201,10 @@ Index: systemd-221/src/core/mount-iface.c + freeifaddrs(ifa_list); + ifa_list = NULL; +} -Index: systemd-221/src/core/mount-iface.h +Index: systemd-228/src/core/mount-iface.h =================================================================== --- /dev/null -+++ systemd-221/src/core/mount-iface.h ++++ systemd-228/src/core/mount-iface.h @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -244,19 +231,19 @@ Index: systemd-221/src/core/mount-iface.h + +char *host2iface(const char *ip); +void freeroutes(void); -Index: systemd-221/src/core/mount.c +Index: systemd-228/src/core/mount.c =================================================================== ---- systemd-221.orig/src/core/mount.c -+++ systemd-221/src/core/mount.c -@@ -35,6 +35,7 @@ +--- systemd-228.orig/src/core/mount.c ++++ systemd-228/src/core/mount.c +@@ -36,6 +36,7 @@ + #include "manager.h" #include "mkdir.h" - #include "path-util.h" #include "mount-setup.h" +#include "mount-iface.h" - #include "unit-name.h" - #include "dbus-mount.h" - #include "special.h" -@@ -1332,8 +1333,9 @@ static int mount_setup_unit( + #include "mount-util.h" + #include "mount.h" + #include "parse-util.h" +@@ -1344,8 +1345,9 @@ static int mount_setup_unit( _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; @@ -267,7 +254,7 @@ Index: systemd-221/src/core/mount.c int r; assert(m); -@@ -1358,6 +1360,8 @@ static int mount_setup_unit( +@@ -1370,6 +1372,8 @@ static int mount_setup_unit( if (r < 0) return r; @@ -276,7 +263,7 @@ Index: systemd-221/src/core/mount.c u = manager_get_unit(m, e); if (!u) { delete = true; -@@ -1385,7 +1389,7 @@ static int mount_setup_unit( +@@ -1397,7 +1401,7 @@ static int mount_setup_unit( if (m->running_as == MANAGER_SYSTEM) { const char* target; @@ -285,7 +272,7 @@ Index: systemd-221/src/core/mount.c r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) goto fail; -@@ -1471,6 +1475,32 @@ static int mount_setup_unit( +@@ -1483,6 +1487,32 @@ static int mount_setup_unit( goto fail; } @@ -318,7 +305,7 @@ Index: systemd-221/src/core/mount.c if (changed) unit_add_to_dbus_queue(u); -@@ -1537,6 +1567,7 @@ static int mount_load_proc_self_mountinf +@@ -1549,6 +1579,7 @@ static int mount_load_proc_self_mountinf if (r == 0 && k < 0) r = k; } diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index 505e1791..8729f452 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -3,10 +3,10 @@ src/login/logind-dbus.c | 31 +++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 8 deletions(-) -Index: systemd-221/src/login/logind-action.c +Index: systemd-227/src/login/logind-action.c =================================================================== ---- systemd-221.orig/src/login/logind-action.c -+++ systemd-221/src/login/logind-action.c +--- systemd-227.orig/src/login/logind-action.c ++++ systemd-227/src/login/logind-action.c @@ -85,6 +85,11 @@ int manager_handle_action( /* If the key handling is inhibited, don't do anything */ @@ -19,11 +19,11 @@ Index: systemd-221/src/login/logind-action.c if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); return 0; -Index: systemd-221/src/login/logind-dbus.c +Index: systemd-227/src/login/logind-dbus.c =================================================================== ---- systemd-221.orig/src/login/logind-dbus.c -+++ systemd-221/src/login/logind-dbus.c -@@ -1625,12 +1625,13 @@ static int verify_shutdown_creds( +--- systemd-227.orig/src/login/logind-dbus.c ++++ systemd-227/src/login/logind-dbus.c +@@ -1646,12 +1646,13 @@ static int verify_shutdown_creds( const char *action, const char *action_multiple_sessions, const char *action_ignore_inhibit, @@ -40,7 +40,7 @@ Index: systemd-221/src/login/logind-dbus.c assert(m); assert(message); -@@ -1652,7 +1653,19 @@ static int verify_shutdown_creds( +@@ -1673,7 +1674,19 @@ static int verify_shutdown_creds( multiple_sessions = r > 0; blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); @@ -58,29 +58,29 @@ Index: systemd-221/src/login/logind-dbus.c + + if (multiple_sessions && action_multiple_sessions && + !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, UID_INVALID, &m->polkit_registry, error); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, NULL, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1660,7 +1673,7 @@ static int verify_shutdown_creds( +@@ -1681,7 +1694,7 @@ static int verify_shutdown_creds( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (blocked && action_ignore_inhibit) { + if (blocked && action_ignore_inhibit && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, UID_INVALID, &m->polkit_registry, error); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, NULL, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1668,7 +1681,8 @@ static int verify_shutdown_creds( +@@ -1689,7 +1702,8 @@ static int verify_shutdown_creds( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (!multiple_sessions && !blocked && action) { + if (!multiple_sessions && !blocked && action && + !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, UID_INVALID, &m->polkit_registry, error); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, NULL, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1716,7 +1730,7 @@ static int method_do_shutdown_or_sleep( +@@ -1737,7 +1751,7 @@ static int method_do_shutdown_or_sleep( } r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions, @@ -89,7 +89,7 @@ Index: systemd-221/src/login/logind-dbus.c if (r != 0) return r; -@@ -1896,7 +1910,8 @@ static int method_schedule_shutdown(sd_b +@@ -1931,7 +1945,8 @@ static int method_schedule_shutdown(sd_b return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type"); r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false, diff --git a/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch b/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch new file mode 100644 index 00000000..f6af8080 --- /dev/null +++ b/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch @@ -0,0 +1,37 @@ +From cb31827d62066a04b02111df3052949fda4b6888 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 23 Nov 2015 13:59:43 -0500 +Subject: [PATCH] nss-mymachines: do not allow overlong machine names + +https://github.com/systemd/systemd/issues/2002 +--- + src/nss-mymachines/nss-mymachines.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c +index 969fa96..c98a959 100644 +--- a/src/nss-mymachines/nss-mymachines.c ++++ b/src/nss-mymachines/nss-mymachines.c +@@ -416,6 +416,9 @@ enum nss_status _nss_mymachines_getpwnam_r( + if (!e || e == p) + goto not_found; + ++ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */ ++ goto not_found; ++ + r = parse_uid(e + 1, &uid); + if (r < 0) + goto not_found; +@@ -573,6 +576,9 @@ enum nss_status _nss_mymachines_getgrnam_r( + if (!e || e == p) + goto not_found; + ++ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */ ++ goto not_found; ++ + r = parse_gid(e + 1, &gid); + if (r < 0) + goto not_found; +-- +2.1.4 + diff --git a/0002-units-enable-waiting-for-unit-termination-in-certain.patch b/0002-units-enable-waiting-for-unit-termination-in-certain.patch deleted file mode 100644 index 4cad2861..00000000 --- a/0002-units-enable-waiting-for-unit-termination-in-certain.patch +++ /dev/null @@ -1,140 +0,0 @@ -From d7f920bfcb0296fed214d4d3a21d64de09a68521 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 1 Sep 2015 17:25:59 +0200 -Subject: [PATCH 2/2] units: enable waiting for unit termination in certain - cases - -The legacy cgroup hierarchy does not support reliable empty -notifications in containers and if there are left-over subgroups in a -cgroup. This makes it hard to correctly wait for them running empty, and -thus we previously disabled this logic entirely. - -With this change we explicitly check for the container case, and whether -the unit is a "delegation" unit (i.e. one where programs may create -their own subgroups). If we are neither in a container, nor operating on -a delegation unit cgroup empty notifications become reliable and thus we -start waiting for the empty notifications again. - -This doesn't really fix the general problem around cgroup notifications -but reduces the effect around it. - -(This also reorders #include lines by their focus, as suggsted in -CODING_STYLE. We have to add "virt.h", so let's do that at the right -place.) - -Also see #317. - -(cherry picked from commit e9db43d5910717a1084924c512bf85e2b8265375) ---- - src/core/cgroup.c | 12 ++++++++++++ - src/core/cgroup.h | 2 ++ - src/core/unit.c | 40 +++++++++++++++++++++++----------------- - 3 files changed, 37 insertions(+), 17 deletions(-) - -diff --git a/src/core/cgroup.c b/src/core/cgroup.c -index 6474e08..65af351 100644 ---- a/src/core/cgroup.c -+++ b/src/core/cgroup.c -@@ -1127,6 +1127,18 @@ int unit_reset_cpu_usage(Unit *u) { - return 0; - } - -+bool unit_cgroup_delegate(Unit *u) { -+ CGroupContext *c; -+ -+ assert(u); -+ -+ c = unit_get_cgroup_context(u); -+ if (!c) -+ return false; -+ -+ return c->delegate; -+} -+ - static const char* const cgroup_device_policy_table[_CGROUP_DEVICE_POLICY_MAX] = { - [CGROUP_AUTO] = "auto", - [CGROUP_CLOSED] = "closed", -diff --git a/src/core/cgroup.h b/src/core/cgroup.h -index 869ddae..7b38d21 100644 ---- a/src/core/cgroup.h -+++ b/src/core/cgroup.h -@@ -130,5 +130,7 @@ int unit_get_memory_current(Unit *u, uint64_t *ret); - int unit_get_cpu_usage(Unit *u, nsec_t *ret); - int unit_reset_cpu_usage(Unit *u); - -+bool unit_cgroup_delegate(Unit *u); -+ - const char* cgroup_device_policy_to_string(CGroupDevicePolicy i) _const_; - CGroupDevicePolicy cgroup_device_policy_from_string(const char *s) _pure_; -diff --git a/src/core/unit.c b/src/core/unit.c -index dc7bc5a..275f567 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -28,26 +28,28 @@ - #include "sd-id128.h" - #include "sd-messages.h" - #include "set.h" --#include "unit.h" - #include "macro.h" - #include "strv.h" - #include "path-util.h" --#include "load-fragment.h" --#include "load-dropin.h" - #include "log.h" --#include "unit-name.h" --#include "dbus-unit.h" --#include "special.h" - #include "cgroup-util.h" - #include "missing.h" - #include "mkdir.h" - #include "fileio-label.h" -+#include "formats-util.h" -+#include "process-util.h" -+#include "virt.h" - #include "bus-common-errors.h" -+#include "bus-util.h" -+#include "dropin.h" -+#include "unit-name.h" -+#include "special.h" -+#include "unit.h" -+#include "load-fragment.h" -+#include "load-dropin.h" - #include "dbus.h" -+#include "dbus-unit.h" - #include "execute.h" --#include "dropin.h" --#include "formats-util.h" --#include "process-util.h" - - const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = { - [UNIT_SERVICE] = &service_vtable, -@@ -3535,14 +3537,18 @@ int unit_kill_context( - } else if (r > 0) { - - /* FIXME: For now, we will not wait for the -- * cgroup members to die, simply because -- * cgroup notification is unreliable. It -- * doesn't work at all in containers, and -- * outside of containers it can be confused -- * easily by leaving directories in the -- * cgroup. */ -- -- /* wait_for_exit = true; */ -+ * cgroup members to die if we are running in -+ * a container or if this is a delegation -+ * unit, simply because cgroup notification is -+ * unreliable in these cases. It doesn't work -+ * at all in containers, and outside of -+ * containers it can be confused easily by -+ * left-over directories in the cgroup -- -+ * which however should not exist in -+ * non-delegated units. */ -+ -+ if (detect_container(NULL) == 0 && !unit_cgroup_delegate(u)) -+ wait_for_exit = true; - - if (c->send_sighup && k != KILL_KILL) { - set_free(pid_set); --- -2.6.0 - diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch index a8255ab5..00577b3d 100644 --- a/0014-journald-with-journaling-FS.patch +++ b/0014-journald-with-journaling-FS.patch @@ -13,27 +13,27 @@ No word on compression… src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) -Index: systemd-221/src/journal/journald-server.c +Index: systemd-227/src/journal/journald-server.c =================================================================== ---- systemd-221.orig/src/journal/journald-server.c -+++ systemd-221/src/journal/journald-server.c -@@ -21,6 +21,7 @@ - - #include +--- systemd-227.orig/src/journal/journald-server.c ++++ systemd-227/src/journal/journald-server.c +@@ -24,6 +24,7 @@ + #include + #endif #include +#include - #include - #include #include -@@ -918,6 +919,38 @@ finish: - dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid); + #include + #include +@@ -861,6 +862,39 @@ void server_driver_message(Server *s, sd + dispatch_message_real(s, iovec, n, ELEMENTSOF(iovec), &ucred, NULL, NULL, 0, NULL, LOG_INFO, 0); } +/* + * On journaling and/or compressing file systems, avoid doubling the efforts + * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every + * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on -+ * a single unkown flag (like BtrFS does). ++ * a single unkown flag (like Btrfs does). + * + * …but src/journal/journal-file.c already sets NOCOW too…⸘ + */ @@ -61,12 +61,13 @@ Index: systemd-221/src/journal/journald-server.c + } + close(fd); +} ++ + void server_dispatch_message( + Server *s, + struct iovec *iovec, unsigned n, unsigned m, +@@ -948,6 +982,7 @@ static int system_journal_open(Server *s - static int system_journal_open(Server *s, bool flush_requested) { - int r; -@@ -947,6 +980,7 @@ static int system_journal_open(Server *s - - fn = strjoina("/var/log/journal/", ids); + fn = strjoina("/var/log/journal/", SERVER_MACHINE_ID(s)); (void) mkdir(fn, 0755); + disable_cow(fn, s); diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch index ca3a4b0c..c8ab5fa7 100644 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ b/0019-make-completion-smart-to-be-able-to-redirect.patch @@ -12,10 +12,10 @@ shell-completion/bash/udevadm | 6 +++++- 11 files changed, 70 insertions(+), 11 deletions(-) -Index: systemd-221/shell-completion/bash/coredumpctl +Index: systemd-228/shell-completion/bash/coredumpctl =================================================================== ---- systemd-221.orig/shell-completion/bash/coredumpctl -+++ systemd-221/shell-completion/bash/coredumpctl +--- systemd-228.orig/shell-completion/bash/coredumpctl ++++ systemd-228/shell-completion/bash/coredumpctl @@ -44,6 +44,10 @@ _coredumpctl() { [DUMP]='dump gdb' ) @@ -33,10 +33,10 @@ Index: systemd-221/shell-completion/bash/coredumpctl -complete -F _coredumpctl coredumpctl +complete -o default -o bashdefault -F _coredumpctl coredumpctl -Index: systemd-221/shell-completion/bash/hostnamectl +Index: systemd-228/shell-completion/bash/hostnamectl =================================================================== ---- systemd-221.orig/shell-completion/bash/hostnamectl -+++ systemd-221/shell-completion/bash/hostnamectl +--- systemd-228.orig/shell-completion/bash/hostnamectl ++++ systemd-228/shell-completion/bash/hostnamectl @@ -30,6 +30,10 @@ _hostnamectl() { local OPTS='-h --help --version --transient --static --pretty --no-ask-password -H --host --machine' @@ -54,12 +54,12 @@ Index: systemd-221/shell-completion/bash/hostnamectl -complete -F _hostnamectl hostnamectl +complete -o default -o bashdefault -F _hostnamectl hostnamectl -Index: systemd-221/shell-completion/bash/journalctl +Index: systemd-228/shell-completion/bash/journalctl =================================================================== ---- systemd-221.orig/shell-completion/bash/journalctl -+++ systemd-221/shell-completion/bash/journalctl -@@ -55,6 +55,10 @@ _journalctl() { - --root --machine' +--- systemd-228.orig/shell-completion/bash/journalctl ++++ systemd-228/shell-completion/bash/journalctl +@@ -56,6 +56,10 @@ _journalctl() { + --root -M --machine' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -69,16 +69,16 @@ Index: systemd-221/shell-completion/bash/journalctl if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then case $prev in --boot|--this-boot|-b) -@@ -120,4 +124,4 @@ _journalctl() { +@@ -121,4 +125,4 @@ _journalctl() { fi } -complete -F _journalctl journalctl +complete -o default -o bashdefault -F _journalctl journalctl -Index: systemd-221/shell-completion/bash/kernel-install +Index: systemd-228/shell-completion/bash/kernel-install =================================================================== ---- systemd-221.orig/shell-completion/bash/kernel-install -+++ systemd-221/shell-completion/bash/kernel-install +--- systemd-228.orig/shell-completion/bash/kernel-install ++++ systemd-228/shell-completion/bash/kernel-install @@ -18,11 +18,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -108,10 +108,10 @@ Index: systemd-221/shell-completion/bash/kernel-install -complete -F _kernel_install kernel-install +complete -o default -o bashdefault -F _kernel_install kernel-install -Index: systemd-221/shell-completion/bash/localectl +Index: systemd-228/shell-completion/bash/localectl =================================================================== ---- systemd-221.orig/shell-completion/bash/localectl -+++ systemd-221/shell-completion/bash/localectl +--- systemd-228.orig/shell-completion/bash/localectl ++++ systemd-228/shell-completion/bash/localectl @@ -36,6 +36,10 @@ _localectl() { local OPTS='-h --help --version --no-convert --no-pager --no-ask-password -H --host --machine' @@ -129,10 +129,10 @@ Index: systemd-221/shell-completion/bash/localectl -complete -F _localectl localectl +complete -o default -o bashdefault -F _localectl localectl -Index: systemd-221/shell-completion/bash/loginctl +Index: systemd-228/shell-completion/bash/loginctl =================================================================== ---- systemd-221.orig/shell-completion/bash/loginctl -+++ systemd-221/shell-completion/bash/loginctl +--- systemd-228.orig/shell-completion/bash/loginctl ++++ systemd-228/shell-completion/bash/loginctl @@ -38,6 +38,10 @@ _loginctl () { [ARG]='--host -H --kill-who --property -p --signal -s --machine' ) @@ -150,12 +150,12 @@ Index: systemd-221/shell-completion/bash/loginctl -complete -F _loginctl loginctl +complete -o default -o bashdefault -F _loginctl loginctl -Index: systemd-221/shell-completion/bash/systemctl.in +Index: systemd-228/shell-completion/bash/systemctl.in =================================================================== ---- systemd-221.orig/shell-completion/bash/systemctl.in -+++ systemd-221/shell-completion/bash/systemctl.in -@@ -96,6 +96,10 @@ _systemctl () { - [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --job-mode --root' +--- systemd-228.orig/shell-completion/bash/systemctl.in ++++ systemd-228/shell-completion/bash/systemctl.in +@@ -104,6 +104,10 @@ _systemctl () { + --preset-mode -n --lines -o --output -M --machine' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -164,17 +164,17 @@ Index: systemd-221/shell-completion/bash/systemctl.in + if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user - else -@@ -268,4 +272,4 @@ _systemctl () { + elif __contains_word "--global" ${COMP_WORDS[*]}; then +@@ -280,4 +284,4 @@ _systemctl () { return 0 } -complete -F _systemctl systemctl +complete -o default -o bashdefault -F _systemctl systemctl -Index: systemd-221/shell-completion/bash/systemd-analyze +Index: systemd-228/shell-completion/bash/systemd-analyze =================================================================== ---- systemd-221.orig/shell-completion/bash/systemd-analyze -+++ systemd-221/shell-completion/bash/systemd-analyze +--- systemd-228.orig/shell-completion/bash/systemd-analyze ++++ systemd-228/shell-completion/bash/systemd-analyze @@ -47,6 +47,10 @@ _systemd_analyze() { [VERIFY]='verify' ) @@ -192,10 +192,10 @@ Index: systemd-221/shell-completion/bash/systemd-analyze -complete -F _systemd_analyze systemd-analyze +complete -o default -o bashdefault -F _systemd_analyze systemd-analyze -Index: systemd-221/shell-completion/bash/systemd-run +Index: systemd-228/shell-completion/bash/systemd-run =================================================================== ---- systemd-221.orig/shell-completion/bash/systemd-run -+++ systemd-221/shell-completion/bash/systemd-run +--- systemd-228.orig/shell-completion/bash/systemd-run ++++ systemd-228/shell-completion/bash/systemd-run @@ -17,6 +17,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -210,7 +210,7 @@ Index: systemd-221/shell-completion/bash/systemd-run __systemctl() { local mode=$1; shift 1 systemctl $mode --full --no-legend "$@" -@@ -38,6 +45,11 @@ _systemd_run() { +@@ -40,6 +47,11 @@ _systemd_run() { local mode=--system local i @@ -219,19 +219,19 @@ Index: systemd-221/shell-completion/bash/systemd-run + return 0 + fi + - for (( i=1; i <= COMP_CWORD; i++ )); do - if [[ ${COMP_WORDS[i]} != -* ]]; then - local root_command=${COMP_WORDS[i]} -@@ -98,4 +110,4 @@ _systemd_run() { + local opts_with_values=( + --unit --description --slice --service-type -H --host -M --machine -p --property --on-active + --on-boot --on-startup --on-unit-active --on-unit-inactive --on-calendar --timer-property +@@ -114,4 +126,4 @@ _systemd_run() { return 0 } -complete -F _systemd_run systemd-run +complete -o default -o bashdefault -F _systemd_run systemd-run -Index: systemd-221/shell-completion/bash/timedatectl +Index: systemd-228/shell-completion/bash/timedatectl =================================================================== ---- systemd-221.orig/shell-completion/bash/timedatectl -+++ systemd-221/shell-completion/bash/timedatectl +--- systemd-228.orig/shell-completion/bash/timedatectl ++++ systemd-228/shell-completion/bash/timedatectl @@ -30,6 +30,10 @@ _timedatectl() { local OPTS='-h --help --version --adjust-system-clock --no-pager --no-ask-password -H --host --machine' @@ -249,10 +249,10 @@ Index: systemd-221/shell-completion/bash/timedatectl -complete -F _timedatectl timedatectl +complete -o default -o bashdefault -F _timedatectl timedatectl -Index: systemd-221/shell-completion/bash/udevadm +Index: systemd-228/shell-completion/bash/udevadm =================================================================== ---- systemd-221.orig/shell-completion/bash/udevadm -+++ systemd-221/shell-completion/bash/udevadm +--- systemd-228.orig/shell-completion/bash/udevadm ++++ systemd-228/shell-completion/bash/udevadm @@ -36,6 +36,10 @@ _udevadm() { local verbs=(info trigger settle control monitor hwdb test-builtin test) diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch deleted file mode 100644 index 5520c601..00000000 --- a/1001-re-enable-by_path-links-for-ata-devices.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 5cf46aa4339670afac386b1b0e630b739f3621c7 Mon Sep 17 00:00:00 2001 -From: Robert Milasan -Date: Thu, 12 Jul 2012 15:56:34 +0000 -Subject: [PATCH] Persistent by_path links for ata devices - -With newer kernel we have the 'port_no' attribute, -which allows us to construct a valid ata by-path link. - -With this patch ATA links of the form - -ata-.[01] - -(for master/slave devices) or - -ata-..0 - -(for devices behind port multipliers) -are generated. - -References: bnc#770910,FATE#317063 - -Signed-off-by: Robert Milasan -Signed-off-by: Hannes Reinecke ---- - src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++---------- - 1 file changed, 41 insertions(+), 12 deletions(-) - -Index: systemd-221/src/udev/udev-builtin-path_id.c -=================================================================== ---- systemd-221.orig/src/udev/udev-builtin-path_id.c -+++ systemd-221/src/udev/udev-builtin-path_id.c -@@ -447,6 +447,46 @@ static struct udev_device *handle_scsi_h - return parent; - } - -+static struct udev_device *handle_ata(struct udev_device *parent, char **path) -+{ -+ struct udev *udev = udev_device_get_udev(parent); -+ struct udev_device *hostdev, *portdev; -+ int host, bus, target, lun, port_no; -+ const char *name, *atahost, *port; -+ -+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); -+ if (hostdev == NULL) -+ return NULL; -+ -+ name = udev_device_get_sysname(parent); -+ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) -+ return NULL; -+ -+ /* The ata port is the parent of the SCSI host */ -+ hostdev = udev_device_get_parent(hostdev); -+ atahost = udev_device_get_sysname(hostdev); -+ if (strncmp(atahost, "ata", 3)) -+ return NULL; -+ -+ /* ATA port number is found in 'port_no' attribute */ -+ portdev = udev_device_new_from_subsystem_sysname(udev, "ata_port", -+ atahost); -+ port = udev_device_get_sysattr_value(portdev, "port_no"); -+ if (!port || sscanf(port, "%d", &port_no) != 1) { -+ hostdev = NULL; -+ goto out; -+ } -+ if (bus != 0) -+ /* Devices behind port multiplier have a bus != 0*/ -+ path_prepend(path, "ata-%u.%u.0", port_no, bus); -+ else -+ /* Master/slave are distinguished by target id */ -+ path_prepend(path, "ata-%u.%u", port_no, target); -+out: -+ udev_device_unref(portdev); -+ return hostdev; -+} -+ - static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) { - const char *devtype; - const char *name; -@@ -486,19 +526,8 @@ static struct udev_device *handle_scsi(s - goto out; - } - -- /* -- * We do not support the ATA transport class, it uses global counters -- * to name the ata devices which numbers spread across multiple -- * controllers. -- * -- * The real link numbers are not exported. Also, possible chains of ports -- * behind port multipliers cannot be composed that way. -- * -- * Until all that is solved at the kernel level, there are no by-path/ -- * links for ATA devices. -- */ - if (strstr(name, "/ata") != NULL) { -- parent = NULL; -+ parent = handle_ata(parent, path); - goto out; - } - diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch index 6693d757..f71c96a4 100644 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -2,11 +2,11 @@ src/udev/udevd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: systemd-221/src/udev/udevd.c +Index: systemd-227/src/udev/udevd.c =================================================================== ---- systemd-221.orig/src/udev/udevd.c -+++ systemd-221/src/udev/udevd.c -@@ -569,7 +569,7 @@ static void event_run(Manager *manager, +--- systemd-227.orig/src/udev/udevd.c ++++ systemd-227/src/udev/udevd.c +@@ -568,7 +568,7 @@ static void event_run(Manager *manager, if (hashmap_size(manager->workers) >= arg_children_max) { if (arg_children_max > 1) @@ -15,12 +15,12 @@ Index: systemd-221/src/udev/udevd.c return; } -@@ -1641,7 +1641,7 @@ int main(int argc, char *argv[]) { +@@ -1672,7 +1672,7 @@ int main(int argc, char *argv[]) { arg_children_max = 8; - if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { + if (sched_getaffinity(0, sizeof(cpu_set), &cpu_set) == 0) - arg_children_max += CPU_COUNT(&cpu_set) * 2; + arg_children_max += CPU_COUNT(&cpu_set) * 64; - } log_debug("set children_max to %u", arg_children_max); + } diff --git a/Correct_assert_on_unexpected_error_code.patch b/Correct_assert_on_unexpected_error_code.patch index 535170b4..43e686ca 100644 --- a/Correct_assert_on_unexpected_error_code.patch +++ b/Correct_assert_on_unexpected_error_code.patch @@ -2,10 +2,12 @@ src/login/pam_systemd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) ---- src/login/pam_systemd.c -+++ src/login/pam_systemd.c 2015-07-29 08:52:20.762018565 +0000 -@@ -507,7 +507,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess - r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL); +Index: systemd-228/src/login/pam_systemd.c +=================================================================== +--- systemd-228.orig/src/login/pam_systemd.c ++++ systemd-228/src/login/pam_systemd.c +@@ -515,7 +515,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess + r = pam_set_data(handle, "systemd.session-fd", FD_TO_PTR(session_fd), NULL); if (r != PAM_SUCCESS) { pam_syslog(handle, LOG_ERR, "Failed to install session fd."); - safe_close(session_fd); diff --git a/avoid-divide-by-zero-sigtrap.patch b/avoid-divide-by-zero-sigtrap.patch index 8a8c3caa..60e42c9e 100644 --- a/avoid-divide-by-zero-sigtrap.patch +++ b/avoid-divide-by-zero-sigtrap.patch @@ -1,28 +1,28 @@ -Nasty bug reported on bnc#867663 +Nasty bug reported on boo#867663 --- src/basic/def.h | 2 +- src/core/manager.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) -Index: systemd-221/src/basic/def.h +Index: systemd-228/src/basic/def.h =================================================================== ---- systemd-221.orig/src/basic/def.h -+++ systemd-221/src/basic/def.h -@@ -37,7 +37,7 @@ +--- systemd-228.orig/src/basic/def.h ++++ systemd-228/src/basic/def.h +@@ -40,7 +40,7 @@ - #define SYSTEMD_CGROUP_CONTROLLER "systemd" + #define SYSTEMD_CGROUP_CONTROLLER "name=systemd" -#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT +#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS #define SIGNALS_IGNORE SIGPIPE - #define DIGITS "0123456789" -Index: systemd-221/src/core/manager.c + #define REBOOT_PARAM_FILE "/run/systemd/reboot-param" +Index: systemd-228/src/core/manager.c =================================================================== ---- systemd-221.orig/src/core/manager.c -+++ systemd-221/src/core/manager.c -@@ -1991,7 +1991,8 @@ static int manager_dispatch_jobs_in_prog +--- systemd-228.orig/src/core/manager.c ++++ systemd-228/src/core/manager.c +@@ -2003,7 +2003,8 @@ static int manager_dispatch_jobs_in_prog assert(m); assert(source); diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index 865322fb..d7c4477f 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -9,20 +9,20 @@ Date: Fri Jun 19 21:36:27 CEST 2015 src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 147 insertions(+), 4 deletions(-) -Index: systemd-221/src/vconsole/vconsole-setup.c +Index: systemd-228/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-221.orig/src/vconsole/vconsole-setup.c -+++ systemd-221/src/vconsole/vconsole-setup.c -@@ -35,6 +35,8 @@ - #include "log.h" - #include "virt.h" +--- systemd-228.orig/src/vconsole/vconsole-setup.c ++++ systemd-228/src/vconsole/vconsole-setup.c +@@ -34,6 +34,8 @@ + #include "alloc-util.h" + #include "fd-util.h" #include "fileio.h" +#include "macro.h" +#include "strv.h" - #include "process-util.h" - #include "terminal-util.h" - #include "signal-util.h" -@@ -99,8 +101,10 @@ static int enable_utf8(int fd) { + #include "io-util.h" + #include "locale-util.h" + #include "log.h" +@@ -104,8 +106,10 @@ static int enable_utf8(int fd) { return r; } @@ -35,7 +35,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c int i = 0, r; pid_t pid; -@@ -117,6 +121,8 @@ static int keyboard_load_and_wait(const +@@ -122,6 +126,8 @@ static int keyboard_load_and_wait(const args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -44,7 +44,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -246,11 +252,117 @@ static void font_copy_to_all_vcs(int fd) +@@ -251,11 +257,117 @@ static void font_copy_to_all_vcs(int fd) } } @@ -162,7 +162,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c _cleanup_close_ int fd = -1; bool utf8, font_copy = false, font_ok, keyboard_ok; int r = EXIT_FAILURE; -@@ -281,6 +393,31 @@ int main(int argc, char **argv) { +@@ -286,6 +398,31 @@ int main(int argc, char **argv) { utf8 = is_locale_utf8(); @@ -194,7 +194,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c r = parse_env_file("/etc/vconsole.conf", NEWLINE, "KEYMAP", &vc_keymap, "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -312,11 +449,17 @@ int main(int argc, char **argv) { +@@ -317,11 +454,17 @@ int main(int argc, char **argv) { (void) disable_utf8(fd); font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index db480a34..18fd4f61 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -9,14 +9,16 @@ Cristian Rodríguez --- Makefile.am | 13 ++++++++++ rules/73-seat-numlock.rules | 8 ++++++ - src/login/numlock-on.c | 34 +++++++++++++++++++++++++++ - src/vconsole/vconsole-setup.c | 40 ++++++++++++++++++++++++++++++-- + src/login/numlock-on.c | 34 ++++++++++++++++++++++++++ + src/vconsole/vconsole-setup.c | 41 ++++++++++++++++++++++++++++++-- units/systemd-vconsole-setup.service.in | 2 - - 5 files changed, 94 insertions(+), 3 deletions(-) + 5 files changed, 95 insertions(+), 3 deletions(-) ---- systemd-222.orig/Makefile.am -+++ systemd-222/Makefile.am -@@ -3805,6 +3805,19 @@ dist_udevrules_DATA += \ +Index: systemd-228/Makefile.am +=================================================================== +--- systemd-228.orig/Makefile.am ++++ systemd-228/Makefile.am +@@ -3825,6 +3825,19 @@ dist_udevrules_DATA += \ rules/60-persistent-v4l.rules # ------------------------------------------------------------------------------ @@ -36,8 +38,10 @@ Cristian Rodríguez mtd_probe_SOURCES = \ src/udev/mtd_probe/mtd_probe.c \ src/udev/mtd_probe/mtd_probe.h \ +Index: systemd-228/rules/73-seat-numlock.rules +=================================================================== --- /dev/null -+++ systemd-222/rules/73-seat-numlock.rules ++++ systemd-228/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -47,8 +51,10 @@ Cristian Rodríguez +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" +Index: systemd-228/src/login/numlock-on.c +=================================================================== --- /dev/null -+++ systemd-222/src/login/numlock-on.c ++++ systemd-228/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -84,11 +90,21 @@ Cristian Rodríguez + + exit(0); +} ---- systemd-222.orig/src/vconsole/vconsole-setup.c -+++ systemd-222/src/vconsole/vconsole-setup.c -@@ -41,6 +41,10 @@ - #include "terminal-util.h" - #include "signal-util.h" +Index: systemd-228/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-228.orig/src/vconsole/vconsole-setup.c ++++ systemd-228/src/vconsole/vconsole-setup.c +@@ -36,6 +36,7 @@ + #include "fileio.h" + #include "macro.h" + #include "strv.h" ++#include "fs-util.h" + #include "io-util.h" + #include "locale-util.h" + #include "log.h" +@@ -46,6 +47,10 @@ + #include "util.h" + #include "virt.h" +#define BIOS_DATA_AREA 0x400 +#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 @@ -97,7 +113,7 @@ Cristian Rodríguez static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -359,9 +363,10 @@ int main(int argc, char **argv) { +@@ -364,9 +369,10 @@ int main(int argc, char **argv) { #ifdef HAVE_SYSV_COMPAT _cleanup_free_ char *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, @@ -110,7 +126,7 @@ Cristian Rodríguez bool comp_ok, rate_ok; _cleanup_close_ int fd = -1; bool utf8, font_copy = false, font_ok, keyboard_ok; -@@ -399,6 +404,7 @@ int main(int argc, char **argv) { +@@ -404,6 +410,7 @@ int main(int argc, char **argv) { "KBD_DELAY", &vc_kbd_delay, "KBD_RATE", &vc_kbd_rate, "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, @@ -118,7 +134,7 @@ Cristian Rodríguez "COMPOSETABLE", &vc_compose_table, NULL); if (r < 0 && r != -ENOENT) -@@ -416,6 +422,32 @@ int main(int argc, char **argv) { +@@ -421,6 +428,32 @@ int main(int argc, char **argv) { disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; @@ -151,7 +167,7 @@ Cristian Rodríguez #endif /* HAVE_SYSV_COMPAT */ r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -451,6 +483,10 @@ int main(int argc, char **argv) { +@@ -456,6 +489,10 @@ int main(int argc, char **argv) { font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock) > 0; @@ -162,8 +178,10 @@ Cristian Rodríguez #ifdef HAVE_SYSV_COMPAT comp_ok = compose_load_and_wait(vc, vc_compose_table); rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay); ---- systemd-222.orig/units/systemd-vconsole-setup.service.in -+++ systemd-222/units/systemd-vconsole-setup.service.in +Index: systemd-228/units/systemd-vconsole-setup.service.in +=================================================================== +--- systemd-228.orig/units/systemd-vconsole-setup.service.in ++++ systemd-228/units/systemd-vconsole-setup.service.in @@ -10,7 +10,7 @@ Description=Setup Virtual Console Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) DefaultDependencies=no diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index 520c7bbe..118f333d 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -2,16 +2,22 @@ From: Frederic Crozat Date: Tue, 4 Dec 2012 16:51:32 +0000 Subject: handle root_uses_lang value in /etc/sysconfig/language -handle ROOT_USES_LANG=ctype (bnc#792182). +handle ROOT_USES_LANG=ctype (boo#792182). --- - src/core/locale-setup.c | 26 ++++++++++++++++++++++++++ - 1 file changed, 26 insertions(+) + src/core/locale-setup.c | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) -Index: systemd-221/src/core/locale-setup.c +Index: systemd-228/src/core/locale-setup.c =================================================================== ---- systemd-221.orig/src/core/locale-setup.c -+++ systemd-221/src/core/locale-setup.c -@@ -34,6 +34,10 @@ int locale_setup(char ***environment) { +--- systemd-228.orig/src/core/locale-setup.c ++++ systemd-228/src/core/locale-setup.c +@@ -30,11 +30,16 @@ + #include "strv.h" + #include "util.h" + #include "virt.h" ++#include "alloc-util.h" + + int locale_setup(char ***environment) { char **add; char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; @@ -20,9 +26,9 @@ Index: systemd-221/src/core/locale-setup.c + char _cleanup_free_ *root_uses_lang = NULL; +#endif - if (detect_container(NULL) <= 0) { + if (detect_container() <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -80,6 +85,41 @@ int locale_setup(char ***environment) { +@@ -81,6 +86,41 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } diff --git a/insserv-generator.patch b/insserv-generator.patch index 9e5afdbc..833d0d66 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -8,16 +8,16 @@ systemd unit drop-in files to add dependencies --- Makefile.am | 9 src/insserv-generator/Makefile | 28 ++ - src/insserv-generator/insserv-generator.c | 316 ++++++++++++++++++++++++++++++ - 3 files changed, 352 insertions(+), 1 deletion(-) + src/insserv-generator/insserv-generator.c | 319 ++++++++++++++++++++++++++++++ + 3 files changed, 355 insertions(+), 1 deletion(-) create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c -Index: systemd-224/Makefile.am +Index: systemd-228/Makefile.am =================================================================== ---- systemd-224.orig/Makefile.am -+++ systemd-224/Makefile.am -@@ -617,7 +617,8 @@ nodist_systemunit_DATA += \ +--- systemd-228.orig/Makefile.am ++++ systemd-228/Makefile.am +@@ -626,7 +626,8 @@ nodist_systemunit_DATA += \ systemgenerator_PROGRAMS += \ systemd-sysv-generator \ @@ -27,7 +27,7 @@ Index: systemd-224/Makefile.am endif EXTRA_DIST += \ -@@ -2556,6 +2557,12 @@ $(systemd_boot): $(systemd_boot_solib) +@@ -2682,6 +2683,12 @@ $(systemd_boot): $(systemd_boot_solib) endif endif @@ -40,10 +40,10 @@ Index: systemd-224/Makefile.am # ------------------------------------------------------------------------------ stub_headers = \ src/boot/efi/util.h \ -Index: systemd-224/src/insserv-generator/Makefile +Index: systemd-228/src/insserv-generator/Makefile =================================================================== --- /dev/null -+++ systemd-224/src/insserv-generator/Makefile ++++ systemd-228/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -73,11 +73,11 @@ Index: systemd-224/src/insserv-generator/Makefile + $(MAKE) -C .. clean + +.PHONY: all clean -Index: systemd-224/src/insserv-generator/insserv-generator.c +Index: systemd-228/src/insserv-generator/insserv-generator.c =================================================================== --- /dev/null -+++ systemd-224/src/insserv-generator/insserv-generator.c -@@ -0,0 +1,316 @@ ++++ systemd-228/src/insserv-generator/insserv-generator.c +@@ -0,0 +1,319 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** @@ -112,6 +112,9 @@ Index: systemd-224/src/insserv-generator/insserv-generator.c +#include "path-util.h" +#include "util.h" +#include "strv.h" ++#include "alloc-util.h" ++#include "string-util.h" ++#include "fd-util.h" + +static const char *arg_dest = "/tmp"; + diff --git a/macros.systemd.upstream b/macros.systemd.upstream index 8c2e84f6..2ba0ff05 100644 --- a/macros.systemd.upstream +++ b/macros.systemd.upstream @@ -1,4 +1,4 @@ -# -*- Mode: makefile; indent-tabs-mode: t -*- */ +# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */ # # This file is part of systemd. # @@ -39,7 +39,7 @@ Requires(postun): systemd \ %systemd_post() \ if [ $1 -eq 1 ] ; then \ # Initial installation \ - systemctl preset %{?*} >/dev/null 2>&1 || : \ + systemctl --no-reload preset %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} @@ -48,8 +48,7 @@ fi \ %systemd_preun() \ if [ $1 -eq 0 ] ; then \ # Package removal, not upgrade \ - systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ - systemctl stop %{?*} > /dev/null 2>&1 || : \ + systemctl --no-reload disable --now %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} @@ -60,14 +59,11 @@ if [ $1 -eq 0 ] ; then \ fi \ %{nil} -%systemd_postun() \ -systemctl daemon-reload >/dev/null 2>&1 || : \ -%{nil} +%systemd_postun() %{nil} %systemd_user_postun() %{nil} %systemd_postun_with_restart() \ -systemctl daemon-reload >/dev/null 2>&1 || : \ if [ $1 -ge 1 ] ; then \ # Package upgrade, not uninstall \ systemctl try-restart %{?*} >/dev/null 2>&1 || : \ diff --git a/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch deleted file mode 100644 index b6859af1..00000000 --- a/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Robert Schweikert -Date: Fri, 12 Apr 2013 12:08:16 -0400 -Subject: rules: add lid switch of ARM based Chromebook as a power switch to - logind - ---- - src/login/70-power-switch.rules | 1 + - 1 file changed, 1 insertion(+) - ---- a/src/login/70-power-switch.rules -+++ b/src/login/70-power-switch.rules -@@ -11,5 +11,6 @@ SUBSYSTEM=="input", KERNEL=="event*", SU - SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" - SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" -+SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="gpio-keys.8", TAG+="power-switch" - - LABEL="power_switch_end" diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index c00f8623..e6474d8d 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -3,29 +3,29 @@ Use and set default logging console for both journald and kernel messages --- src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++ src/journal/journald-console.h | 3 + - src/journal/journald-server.c | 6 ++ - 3 files changed, 109 insertions(+) + src/journal/journald-server.c | 5 ++ + 3 files changed, 108 insertions(+) -Index: systemd-221/src/journal/journald-console.c +Index: systemd-228/src/journal/journald-console.c =================================================================== ---- systemd-221.orig/src/journal/journald-console.c -+++ systemd-221/src/journal/journald-console.c +--- systemd-228.orig/src/journal/journald-console.c ++++ systemd-228/src/journal/journald-console.c @@ -22,6 +22,14 @@ - #include #include #include + #include +#ifdef HAVE_SYSV_COMPAT -+# include -+# include -+# include -+# include -+# include -+# include "util.h" ++# include ++# include ++# include ++# include ++# include ++# include "string-util.h" +#endif - #include "fileio.h" - #include "journald-server.h" -@@ -45,6 +53,76 @@ static bool prefix_timestamp(void) { + #include "alloc-util.h" + #include "fd-util.h" +@@ -50,6 +58,76 @@ static bool prefix_timestamp(void) { return cached_printk_time; } @@ -102,7 +102,7 @@ Index: systemd-221/src/journal/journald-console.c void server_forward_console( Server *s, int priority, -@@ -66,6 +144,12 @@ void server_forward_console( +@@ -71,6 +149,12 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; @@ -115,10 +115,10 @@ Index: systemd-221/src/journal/journald-console.c /* First: timestamp */ if (prefix_timestamp()) { assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -102,7 +186,23 @@ void server_forward_console( +@@ -107,7 +191,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { - log_debug_errno(errno, "Failed to open %s for logging: %m", tty); + log_debug_errno(fd, "Failed to open %s for logging: %m", tty); +#ifdef HAVE_SYSV_COMPAT + if (fd != -ENOENT && fd != -ENODEV) + return; @@ -139,10 +139,10 @@ Index: systemd-221/src/journal/journald-console.c } if (writev(fd, iovec, n) < 0) -Index: systemd-221/src/journal/journald-console.h +Index: systemd-228/src/journal/journald-console.h =================================================================== ---- systemd-221.orig/src/journal/journald-console.h -+++ systemd-221/src/journal/journald-console.h +--- systemd-228.orig/src/journal/journald-console.h ++++ systemd-228/src/journal/journald-console.h @@ -24,3 +24,6 @@ #include "journald-server.h" @@ -150,19 +150,19 @@ Index: systemd-221/src/journal/journald-console.h + +void klogconsole(Server *s); +void default_tty_path(Server *s); -Index: systemd-221/src/journal/journald-server.c +Index: systemd-228/src/journal/journald-server.c =================================================================== ---- systemd-221.orig/src/journal/journald-server.c -+++ systemd-221/src/journal/journald-server.c -@@ -52,6 +52,7 @@ - #include "journal-internal.h" - #include "journal-vacuum.h" - #include "journal-authenticate.h" +--- systemd-228.orig/src/journal/journald-server.c ++++ systemd-228/src/journal/journald-server.c +@@ -55,6 +55,7 @@ + #include "journald-audit.h" + #include "journald-kmsg.h" + #include "journald-native.h" +#include "journald-console.h" #include "journald-rate-limit.h" - #include "journald-kmsg.h" - #include "journald-syslog.h" -@@ -1514,6 +1515,11 @@ int server_init(Server *s) { + #include "journald-server.h" + #include "journald-stream.h" +@@ -1751,6 +1752,10 @@ int server_init(Server *s) { server_parse_config_file(s); server_parse_proc_cmdline(s); @@ -170,7 +170,6 @@ Index: systemd-221/src/journal/journald-server.c + + if (s->tty_path) + klogconsole(s); -+ + if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0", - s->rate_limit_interval, s->rate_limit_burst); diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff index 45253b12..ce772aac 100644 --- a/suse-sysv-bootd-support.diff +++ b/suse-sysv-bootd-support.diff @@ -7,12 +7,14 @@ This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. [Implementation note: currently, the unit is generated, but not activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] --- - src/sysv-generator/sysv-generator.c | 21 +++++++++++++++------ - 1 file changed, 15 insertions(+), 6 deletions(-) + src/sysv-generator/sysv-generator.c | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) ---- systemd-222.orig/src/sysv-generator/sysv-generator.c -+++ systemd-222/src/sysv-generator/sysv-generator.c -@@ -39,7 +39,8 @@ +Index: systemd-228/src/sysv-generator/sysv-generator.c +=================================================================== +--- systemd-228.orig/src/sysv-generator/sysv-generator.c ++++ systemd-228/src/sysv-generator/sysv-generator.c +@@ -46,7 +46,8 @@ typedef enum RunlevelType { RUNLEVEL_UP, @@ -22,7 +24,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] } RunlevelType; static const struct { -@@ -47,6 +48,9 @@ static const struct { +@@ -54,6 +55,9 @@ static const struct { const char *target; const RunlevelType type; } rcnd_table[] = { @@ -32,7 +34,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] /* Standard SysV runlevels for start-up */ { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, { "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP }, -@@ -62,10 +66,10 @@ static const struct { +@@ -69,10 +73,10 @@ static const struct { directories in this order, and we want to make sure that sysv_start_priority is known when we first load the unit. And that value we only know from S links. Hence @@ -45,7 +47,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] typedef struct SysvStub { char *name; -@@ -243,6 +247,10 @@ static char *sysv_translate_name(const c +@@ -261,6 +265,10 @@ static char *sysv_translate_name(const c _cleanup_free_ char *c = NULL; char *res; @@ -56,21 +58,18 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] c = strdup(name); if (!c) return NULL; -@@ -859,10 +867,10 @@ static int set_dependencies_from_rcnd(co +@@ -882,7 +890,8 @@ static int set_dependencies_from_rcnd(co if (de->d_name[0] == 'S') { -- if (rcnd_table[i].type == RUNLEVEL_UP) { +- if (rcnd_table[i].type == RUNLEVEL_UP) + if (rcnd_table[i].type == RUNLEVEL_UP || + rcnd_table[i].type == RUNLEVEL_SYSINIT) - service->sysv_start_priority = - MAX(a*10 + b, service->sysv_start_priority); -- } + service->sysv_start_priority = MAX(a*10 + b, service->sysv_start_priority); r = set_ensure_allocated(&runlevel_services[i], NULL); - if (r < 0) -@@ -873,7 +881,8 @@ static int set_dependencies_from_rcnd(co - goto finish; +@@ -898,7 +907,8 @@ static int set_dependencies_from_rcnd(co + } } else if (de->d_name[0] == 'K' && - (rcnd_table[i].type == RUNLEVEL_DOWN)) { @@ -78,4 +77,4 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] + rcnd_table[i].type == RUNLEVEL_SYSINIT)) { r = set_ensure_allocated(&shutdown_services, NULL); - if (r < 0) + if (r < 0) { diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch index a67fa47f..bc7985dc 100644 --- a/systemd-add-user-keep.patch +++ b/systemd-add-user-keep.patch @@ -1,35 +1,35 @@ --- man/tmpfiles.d.xml | 3 +++ - src/tmpfiles/tmpfiles.c | 47 ++++++++++++++++++++++++++++++++++++++++------- - 2 files changed, 43 insertions(+), 7 deletions(-) + src/tmpfiles/tmpfiles.c | 46 ++++++++++++++++++++++++++++++++++++++++------ + 2 files changed, 43 insertions(+), 6 deletions(-) -Index: systemd-221/man/tmpfiles.d.xml +Index: systemd-228/man/tmpfiles.d.xml =================================================================== ---- systemd-221.orig/man/tmpfiles.d.xml -+++ systemd-221/man/tmpfiles.d.xml -@@ -528,6 +528,9 @@ +--- systemd-228.orig/man/tmpfiles.d.xml ++++ systemd-228/man/tmpfiles.d.xml +@@ -599,6 +599,9 @@ f, F, and - w may be used to specify a short string that + w, the argument may be used to specify a short string that is written to the file, suffixed by a newline. For + x, X, a comma separated list of + usernames. If given, only paths belonging to these users will be excluded + during directory cleanup. Ignored for all other lines. For C, specifies the source file or - directory. For t, T + directory. For t and T, determines extended attributes to be set. For -Index: systemd-221/src/tmpfiles/tmpfiles.c +Index: systemd-228/src/tmpfiles/tmpfiles.c =================================================================== ---- systemd-221.orig/src/tmpfiles/tmpfiles.c -+++ systemd-221/src/tmpfiles/tmpfiles.c +--- systemd-228.orig/src/tmpfiles/tmpfiles.c ++++ systemd-228/src/tmpfiles/tmpfiles.c @@ -37,6 +37,7 @@ - #include #include - #include + #include + #include +#include - #include "log.h" - #include "util.h" -@@ -358,6 +359,7 @@ static int dir_cleanup( + #include "acl-util.h" + #include "alloc-util.h" +@@ -378,6 +379,7 @@ static int dir_cleanup( struct timespec times[2]; bool deleted = false; int r = 0; @@ -37,7 +37,7 @@ Index: systemd-221/src/tmpfiles/tmpfiles.c while ((dent = readdir(d))) { struct stat s; -@@ -408,14 +410,45 @@ static int dir_cleanup( +@@ -428,14 +430,46 @@ static int dir_cleanup( } /* Is there an item configured for this path? */ @@ -50,7 +50,7 @@ Index: systemd-221/src/tmpfiles/tmpfiles.c + found_glob = true; + found = find_glob(globs, sub_path); } -- + - if (find_glob(globs, sub_path)) { - log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); - continue; diff --git a/systemd-mini.changes b/systemd-mini.changes index 4724b61e..a7adef16 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,59 @@ +------------------------------------------------------------------- +Mon Dec 21 16:25:44 UTC 2015 - fbui@suse.com + +- Make sure we don't use tmpfs on /tmp by default (bsc#940522) + +------------------------------------------------------------------- +Mon Dec 21 10:07:38 UTC 2015 - jengelh@inai.de + +- Avoid enabling readahead services; they have been removed. +- In %install, only process kbd-model-map.xkb-generated if it + exists. Resolves a build failure in 13.2/42.1. + +------------------------------------------------------------------- +Mon Nov 30 13:59:52 UTC 2015 - thomas.blume@suse.com + +- fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) + Add 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch + +------------------------------------------------------------------- +Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 228 +* The various memory-related resource limit settings (such as + LimitAS=) now understand the usual K, M, G, ... suffixes to + the base of 1024 (IEC). Similar, the time-related settings + understand the usual min, h, day, ... suffixes now. +* CPUAffinity= now takes CPU index ranges in addition to just + individual indexes. +* A number of properties previously only settable in unit + files are now also available as properties to set when + creating transient units programmatically via the bus. +- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch + (merged upstream) + +------------------------------------------------------------------- +Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru + +- Update to 227. +- Rebase systemd-pam_config.patch, + handle-root_uses_lang-value-in-etc-sysconfig-language.patch, + 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch, + 0014-journald-with-journaling-FS.patch, + 0019-make-completion-smart-to-be-able-to-redirect.patch, + avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch, + set-and-use-default-logconsole.patch, + tty-ask-password-agent-on-console.patch, + 0001-bnc888612-logind-polkit-acpi.patch, + watch_resolv.conf_for_become_changed.patch, + 1097-udevd-increase-maximum-number-of-children.patch. +- Remove + 0002-units-enable-waiting-for-unit-termination-in-certain.patch, + 1001-re-enable-by_path-links-for-ata-devices.patch, + rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch: + fixed upstream. + ------------------------------------------------------------------- Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 84245e76..28262652 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -42,7 +42,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 224 +Version: 228 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -112,7 +112,7 @@ BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.26 +Requires: util-linux >= 2.27 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 @@ -176,16 +176,10 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind -Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -# PATCH-FIX-UPSTREAM (boo#949574) -Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch -# PATCH-FIX-UPSTREAM (bsc#932284) -Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty @@ -251,6 +245,8 @@ Patch521: kbd-model-map.patch Patch522: Correct_assert_on_unexpected_error_code.patch # PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch +# PATCH-FIX-UPSTREAM (bsc#956712) +Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # UDEV PATCHES # ============ @@ -260,8 +256,6 @@ Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch # as it's not changing the code of udev and libudev, then is not a udev # patch. Further patches which add and/or changes udev rules. -# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch -Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch @@ -557,8 +551,6 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch84 -p1 %patch86 -p1 -%patch87 -p1 -%patch88 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 @@ -587,17 +579,14 @@ cp %{SOURCE7} m4/ %patch386 -p1 %patch430 -p1 %patch475 -p1 -%ifarch %arm -%patch38 -p1 -%endif %patch490 -p1 %patch520 -p1 %patch521 -p1 -%patch522 -p0 +%patch522 -p1 %patch523 -p0 +%patch524 -p1 # udev patches -%patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 @@ -726,7 +715,7 @@ make %{?_smp_mflags} update-man-list man %endif %install -make install DESTDIR="%buildroot" +%make_install install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} @@ -767,8 +756,11 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# don't mount /tmp as tmpfs for now +# We keep a copy of tmp.mount because it may be removed if not used +# (see %post): we want to be sure tmpfs won't be used for /tmp by +# default on Suse distros. rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount +cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path @@ -899,8 +891,10 @@ done # add entries for xkeyboard-config converted keymaps; mappings, # which already exist in original systemd mapping table are being # ignored though, i.e. not overwritten -cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >> %{buildroot}//usr/share/systemd/kbd-model-map +if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then + cat /usr/share/systemd/kbd-model-map.xkb-generated \ + >>"%buildroot/usr/share/systemd/kbd-model-map" +fi %find_lang systemd @@ -956,12 +950,13 @@ fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then - # Enable these services by default. - /usr/bin/systemctl enable \ - getty@tty1.service \ - systemd-readahead-collect.service \ - systemd-readahead-replay.service \ - remote-fs.target || : + # Enable these services by default. + # Specifying multiple units can cause the entire operation to not + # execute if one of them is missing, so run systemctl with one unit + # at a time only. + for i in getty@tty1.service remote-fs.target; do + /usr/bin/systemctl enable "$i" || : + done fi # since v207 /etc/sysctl.conf is no longer parsed, however @@ -976,6 +971,16 @@ for f in $(find /etc/systemd/system -type l -xtype l); do [ -f "$new_target" ] && ln -s -f $new_target $f || : done +# Keep tmp.mount if it's been enabled explicitly by the user otherwise +# make sure it wont be activated since it's the default for Suse +# distros. This unit can be pulled (implicitely) in various ways +# (private /tmp, etc..) and it's required by the basic.target +# explicitly since v220. +case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in +enabled) ;; +*) rm -f %{_prefix}/lib/systemd/system/tmp.mount +esac + %postun /sbin/ldconfig if [ $1 -ge 1 ]; then diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch index 469004d3..7850822e 100644 --- a/systemd-pam_config.patch +++ b/systemd-pam_config.patch @@ -1,16 +1,32 @@ ---- - src/login/systemd-user | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: systemd-221/src/login/systemd-user +Index: systemd-227/factory/etc/pam.d/other =================================================================== ---- systemd-221.orig/src/login/systemd-user -+++ systemd-221/src/login/systemd-user -@@ -2,5 +2,5 @@ +--- systemd-227.orig/factory/etc/pam.d/other ++++ systemd-227/factory/etc/pam.d/other +@@ -1,6 +1,6 @@ + # This file is part of systemd. + +-auth include system-auth +-account include system-auth +-password include system-auth +-session include system-auth ++auth include common-auth ++account include common-account ++password include common-password ++session include common-session +Index: systemd-227/src/login/systemd-user.m4 +=================================================================== +--- systemd-227.orig/src/login/systemd-user.m4 ++++ systemd-227/src/login/systemd-user.m4 +@@ -2,10 +2,10 @@ # # Used by systemd --user instances. -account include system-auth --session include system-auth +account include common-account + + m4_ifdef(`HAVE_SELINUX', + session required pam_selinux.so close + session required pam_selinux.so nottys open + )m4_dnl +-session include system-auth +session include common-session diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index e114231e..1233b3b2 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -8,19 +8,19 @@ SUSE policy is to not clean /tmp by default. tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -Index: systemd-221/tmpfiles.d/tmp.conf +Index: systemd-228/tmpfiles.d/tmp.conf =================================================================== ---- systemd-221.orig/tmpfiles.d/tmp.conf -+++ systemd-221/tmpfiles.d/tmp.conf +--- systemd-228.orig/tmpfiles.d/tmp.conf ++++ systemd-228/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override --v /tmp 1777 root root 10d --v /var/tmp 1777 root root 30d -+# SUSE policy: we don't clean those directories -+v /tmp 1777 root root - -+v /var/tmp 1777 root root - +-q /tmp 1777 root root 10d +-q /var/tmp 1777 root root 30d ++# SUSE policy: we do not clean these directories ++q /tmp 1777 root root - ++q /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index 4724b61e..a7adef16 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,59 @@ +------------------------------------------------------------------- +Mon Dec 21 16:25:44 UTC 2015 - fbui@suse.com + +- Make sure we don't use tmpfs on /tmp by default (bsc#940522) + +------------------------------------------------------------------- +Mon Dec 21 10:07:38 UTC 2015 - jengelh@inai.de + +- Avoid enabling readahead services; they have been removed. +- In %install, only process kbd-model-map.xkb-generated if it + exists. Resolves a build failure in 13.2/42.1. + +------------------------------------------------------------------- +Mon Nov 30 13:59:52 UTC 2015 - thomas.blume@suse.com + +- fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) + Add 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch + +------------------------------------------------------------------- +Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 228 +* The various memory-related resource limit settings (such as + LimitAS=) now understand the usual K, M, G, ... suffixes to + the base of 1024 (IEC). Similar, the time-related settings + understand the usual min, h, day, ... suffixes now. +* CPUAffinity= now takes CPU index ranges in addition to just + individual indexes. +* A number of properties previously only settable in unit + files are now also available as properties to set when + creating transient units programmatically via the bus. +- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch + (merged upstream) + +------------------------------------------------------------------- +Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru + +- Update to 227. +- Rebase systemd-pam_config.patch, + handle-root_uses_lang-value-in-etc-sysconfig-language.patch, + 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch, + 0014-journald-with-journaling-FS.patch, + 0019-make-completion-smart-to-be-able-to-redirect.patch, + avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch, + set-and-use-default-logconsole.patch, + tty-ask-password-agent-on-console.patch, + 0001-bnc888612-logind-polkit-acpi.patch, + watch_resolv.conf_for_become_changed.patch, + 1097-udevd-increase-maximum-number-of-children.patch. +- Remove + 0002-units-enable-waiting-for-unit-termination-in-certain.patch, + 1001-re-enable-by_path-links-for-ata-devices.patch, + rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch: + fixed upstream. + ------------------------------------------------------------------- Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 674e6fc6..e3224592 100644 --- a/systemd.spec +++ b/systemd.spec @@ -40,7 +40,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 224 +Version: 228 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -107,7 +107,7 @@ BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.26 +Requires: util-linux >= 2.27 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 @@ -171,16 +171,10 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. -# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind -Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch -# PATCH-FIX-UPSTREAM (boo#949574) -Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch -# PATCH-FIX-UPSTREAM (bsc#932284) -Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty @@ -246,6 +240,8 @@ Patch521: kbd-model-map.patch Patch522: Correct_assert_on_unexpected_error_code.patch # PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch +# PATCH-FIX-UPSTREAM (bsc#956712) +Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # UDEV PATCHES # ============ @@ -255,8 +251,6 @@ Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch # as it's not changing the code of udev and libudev, then is not a udev # patch. Further patches which add and/or changes udev rules. -# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch -Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch @@ -552,8 +546,6 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch84 -p1 %patch86 -p1 -%patch87 -p1 -%patch88 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 @@ -582,17 +574,14 @@ cp %{SOURCE7} m4/ %patch386 -p1 %patch430 -p1 %patch475 -p1 -%ifarch %arm -%patch38 -p1 -%endif %patch490 -p1 %patch520 -p1 %patch521 -p1 -%patch522 -p0 +%patch522 -p1 %patch523 -p0 +%patch524 -p1 # udev patches -%patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 @@ -721,7 +710,7 @@ make %{?_smp_mflags} update-man-list man %endif %install -make install DESTDIR="%buildroot" +%make_install install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} @@ -762,8 +751,11 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# don't mount /tmp as tmpfs for now +# We keep a copy of tmp.mount because it may be removed if not used +# (see %post): we want to be sure tmpfs won't be used for /tmp by +# default on Suse distros. rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount +cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path @@ -894,8 +886,10 @@ done # add entries for xkeyboard-config converted keymaps; mappings, # which already exist in original systemd mapping table are being # ignored though, i.e. not overwritten -cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >> %{buildroot}//usr/share/systemd/kbd-model-map +if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then + cat /usr/share/systemd/kbd-model-map.xkb-generated \ + >>"%buildroot/usr/share/systemd/kbd-model-map" +fi %find_lang systemd @@ -951,12 +945,13 @@ fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then - # Enable these services by default. - /usr/bin/systemctl enable \ - getty@tty1.service \ - systemd-readahead-collect.service \ - systemd-readahead-replay.service \ - remote-fs.target || : + # Enable these services by default. + # Specifying multiple units can cause the entire operation to not + # execute if one of them is missing, so run systemctl with one unit + # at a time only. + for i in getty@tty1.service remote-fs.target; do + /usr/bin/systemctl enable "$i" || : + done fi # since v207 /etc/sysctl.conf is no longer parsed, however @@ -971,6 +966,16 @@ for f in $(find /etc/systemd/system -type l -xtype l); do [ -f "$new_target" ] && ln -s -f $new_target $f || : done +# Keep tmp.mount if it's been enabled explicitly by the user otherwise +# make sure it wont be activated since it's the default for Suse +# distros. This unit can be pulled (implicitely) in various ways +# (private /tmp, etc..) and it's required by the basic.target +# explicitly since v220. +case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in +enabled) ;; +*) rm -f %{_prefix}/lib/systemd/system/tmp.mount +esac + %postun /sbin/ldconfig if [ $1 -ge 1 ]; then diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index 9490adc2..f96fc24b 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -26,13 +26,13 @@ Spwan for each device of the system console /dev/console a own process. Replace the system call wait() with with system call waitid(). --- - src/tty-ask-password-agent.c | 264 ++++++++++++++++++++- - 1 file changed, 255 insertions(+), 9 deletions(-) + src/tty-ask-password-agent/tty-ask-password-agent.c | 264 +++++++++++++++++++- + 1 file changed, 254 insertions(+), 10 deletions(-) -diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c -index 4630eb9..df4bada 100644 ---- a/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ b/src/tty-ask-password-agent/tty-ask-password-agent.c +Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c +=================================================================== +--- systemd-228.orig/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c @@ -4,6 +4,7 @@ This file is part of systemd. @@ -41,26 +41,26 @@ index 4630eb9..df4bada 100644 systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by -@@ -31,6 +32,9 @@ - #include - #include +@@ -21,6 +22,9 @@ + + #include #include +#include +#include +#include - - #include "util.h" - #include "mkdir.h" -@@ -45,6 +49,8 @@ - #include "process-util.h" + #include + #include + #include +@@ -49,6 +53,8 @@ #include "terminal-util.h" - #include "signal-util.h" + #include "util.h" + #include "utmp-wtmp.h" +#include "fileio.h" +#include "macro.h" static enum { ACTION_LIST, -@@ -53,8 +59,21 @@ static enum { +@@ -57,8 +63,21 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; @@ -82,8 +82,8 @@ index 4630eb9..df4bada 100644 static int ask_password_plymouth( const char *message, -@@ -211,6 +230,80 @@ static int ask_password_plymouth( - return 0; +@@ -240,6 +259,80 @@ finish: + return r; } +static void free_consoles(struct console *con, unsigned int num) { @@ -162,17 +162,17 @@ index 4630eb9..df4bada 100644 + static int parse_password(const char *filename, char **wall) { _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; - uint64_t not_after = 0; -@@ -311,7 +404,7 @@ static int parse_password(const char *fi - _cleanup_free_ char *password = NULL; + bool accept_cached = false, echo = false; +@@ -340,7 +433,7 @@ static int parse_password(const char *fi + int tty_fd = -1; if (arg_console) { - tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY); + tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY); if (tty_fd < 0) - return tty_fd; - } -@@ -554,7 +647,7 @@ static int parse_argv(int argc, char *ar + return log_error_errno(tty_fd, "Failed to acquire /dev/console: %m"); + +@@ -601,7 +694,7 @@ static int parse_argv(int argc, char *ar { "watch", no_argument, NULL, ARG_WATCH }, { "wall", no_argument, NULL, ARG_WALL }, { "plymouth", no_argument, NULL, ARG_PLYMOUTH }, @@ -181,7 +181,7 @@ index 4630eb9..df4bada 100644 {} }; -@@ -598,6 +691,10 @@ static int parse_argv(int argc, char *ar +@@ -643,6 +736,10 @@ static int parse_argv(int argc, char *ar case ARG_CONSOLE: arg_console = true; @@ -192,7 +192,7 @@ index 4630eb9..df4bada 100644 break; case '?': -@@ -612,9 +709,143 @@ static int parse_argv(int argc, char *ar +@@ -657,9 +754,143 @@ static int parse_argv(int argc, char *ar return -EINVAL; } @@ -336,16 +336,16 @@ index 4630eb9..df4bada 100644 int main(int argc, char *argv[]) { int r; -@@ -628,15 +859,28 @@ int main(int argc, char *argv[]) { +@@ -673,16 +904,29 @@ int main(int argc, char *argv[]) { if (r <= 0) goto finish; - if (arg_console) { -- setsid(); -- release_terminal(); +- (void) setsid(); +- (void) release_terminal(); + if (arg_console && !arg_device) + /* -+ * Spwan for each console device a own process ++ * Spawn for each console device a own process + */ + r = ask_on_consoles(argc, argv); + else { @@ -365,15 +365,12 @@ index 4630eb9..df4bada 100644 + else + r = show_passwords(); } -- + - if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) - r = watch_passwords(); - else - r = show_passwords(); - - if (r < 0) - log_error_errno(r, "Error: %m"); - --- -2.2.0 - +- + finish: + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + } diff --git a/use-rndaddentropy-ioctl-to-load-random-seed.patch b/use-rndaddentropy-ioctl-to-load-random-seed.patch index 8df39ad4..2e655400 100644 --- a/use-rndaddentropy-ioctl-to-load-random-seed.patch +++ b/use-rndaddentropy-ioctl-to-load-random-seed.patch @@ -8,21 +8,20 @@ Related to bnc#892096 src/random-seed/random-seed.c | 71 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 10 deletions(-) -Index: systemd-221/src/random-seed/random-seed.c +Index: systemd-228/src/random-seed/random-seed.c =================================================================== ---- systemd-221.orig/src/random-seed/random-seed.c -+++ systemd-221/src/random-seed/random-seed.c -@@ -22,7 +22,9 @@ - #include - #include - #include -+#include +--- systemd-228.orig/src/random-seed/random-seed.c ++++ systemd-228/src/random-seed/random-seed.c +@@ -24,6 +24,8 @@ #include -+#include #include + #include ++#include ++#include - #include "log.h" -@@ -32,8 +34,8 @@ + #include "alloc-util.h" + #include "fd-util.h" +@@ -36,8 +38,8 @@ #define POOL_SIZE_MIN 512 int main(int argc, char *argv[]) { @@ -33,7 +32,7 @@ Index: systemd-221/src/random-seed/random-seed.c size_t buf_size = 0; ssize_t k; int r; -@@ -65,11 +67,12 @@ int main(int argc, char *argv[]) { +@@ -68,11 +70,12 @@ int main(int argc, char *argv[]) { if (buf_size <= POOL_SIZE_MIN) buf_size = POOL_SIZE_MIN; @@ -48,7 +47,7 @@ Index: systemd-221/src/random-seed/random-seed.c r = mkdir_parents_label(RANDOM_SEED, 0755); if (r < 0) { -@@ -83,6 +86,23 @@ int main(int argc, char *argv[]) { +@@ -86,6 +89,23 @@ int main(int argc, char *argv[]) { if (streq(argv[1], "load")) { @@ -72,7 +71,7 @@ Index: systemd-221/src/random-seed/random-seed.c seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -103,7 +123,7 @@ int main(int argc, char *argv[]) { +@@ -106,7 +126,7 @@ int main(int argc, char *argv[]) { } } @@ -81,7 +80,7 @@ Index: systemd-221/src/random-seed/random-seed.c if (k < 0) r = log_error_errno(k, "Failed to read seed from " RANDOM_SEED ": %m"); else if (k == 0) -@@ -111,13 +131,29 @@ int main(int argc, char *argv[]) { +@@ -114,13 +134,29 @@ int main(int argc, char *argv[]) { else { (void) lseek(seed_fd, 0, SEEK_SET); @@ -114,7 +113,7 @@ Index: systemd-221/src/random-seed/random-seed.c seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { r = log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m"); -@@ -130,6 +166,21 @@ int main(int argc, char *argv[]) { +@@ -133,6 +169,21 @@ int main(int argc, char *argv[]) { goto finish; } @@ -136,7 +135,7 @@ Index: systemd-221/src/random-seed/random-seed.c } else { log_error("Unknown verb '%s'.", argv[1]); r = -EINVAL; -@@ -144,7 +195,7 @@ int main(int argc, char *argv[]) { +@@ -147,7 +198,7 @@ int main(int argc, char *argv[]) { (void) fchmod(seed_fd, 0600); (void) fchown(seed_fd, 0, 0); @@ -145,7 +144,7 @@ Index: systemd-221/src/random-seed/random-seed.c if (k < 0) { r = log_error_errno(k, "Failed to read new seed from /dev/urandom: %m"); goto finish; -@@ -155,7 +206,7 @@ int main(int argc, char *argv[]) { +@@ -158,7 +209,7 @@ int main(int argc, char *argv[]) { goto finish; } diff --git a/v224.tar.gz b/v224.tar.gz deleted file mode 100644 index d4d491a2..00000000 --- a/v224.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d7ac1532a57639fbc828f8a5051a090883c6ad2908618a7a13ab386db831bfc -size 3868075 diff --git a/v228.tar.gz b/v228.tar.gz new file mode 100644 index 00000000..84f9e59d --- /dev/null +++ b/v228.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd124ff561a07e6439ed2b3713f38ca914df7747f110ce86deea17b56d245ae6 +size 4034401 diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch index fcc01432..e6df8c6e 100644 --- a/watch_resolv.conf_for_become_changed.patch +++ b/watch_resolv.conf_for_become_changed.patch @@ -3,19 +3,19 @@ src/core/manager.h | 5 ++ 2 files changed, 98 insertions(+) -Index: systemd-221/src/core/manager.c +Index: systemd-227/src/core/manager.c =================================================================== ---- systemd-221.orig/src/core/manager.c -+++ systemd-221/src/core/manager.c +--- systemd-227.orig/src/core/manager.c ++++ systemd-227/src/core/manager.c @@ -32,6 +32,7 @@ - #include - #include #include + #include + #include +#include #ifdef HAVE_AUDIT #include -@@ -308,6 +309,91 @@ static int manager_check_ask_password(Ma +@@ -294,6 +295,91 @@ static int manager_check_ask_password(Ma return m->have_ask_password; } @@ -107,15 +107,15 @@ Index: systemd-221/src/core/manager.c static int manager_watch_idle_pipe(Manager *m) { int r; -@@ -585,6 +671,7 @@ int manager_new(ManagerRunningAs running - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; +@@ -576,6 +662,7 @@ int manager_new(ManagerRunningAs running + m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + m->resolv_conf_inotify_fd = -1; m->ask_password_inotify_fd = -1; m->have_ask_password = -EINVAL; /* we don't know */ - -@@ -651,6 +738,10 @@ int manager_new(ManagerRunningAs running + m->first_boot = -1; +@@ -637,6 +724,10 @@ int manager_new(ManagerRunningAs running if (r < 0) goto fail; @@ -126,7 +126,7 @@ Index: systemd-221/src/core/manager.c m->udev = udev_new(); if (!m->udev) { r = -ENOMEM; -@@ -929,6 +1020,8 @@ Manager* manager_free(Manager *m) { +@@ -914,6 +1005,8 @@ Manager* manager_free(Manager *m) { if (!m) return NULL; @@ -135,13 +135,13 @@ Index: systemd-221/src/core/manager.c manager_clear_jobs_and_units(m); for (c = 0; c < _UNIT_TYPE_MAX; c++) -Index: systemd-221/src/core/manager.h +Index: systemd-227/src/core/manager.h =================================================================== ---- systemd-221.orig/src/core/manager.h -+++ systemd-221/src/core/manager.h -@@ -181,6 +181,11 @@ struct Manager { - int utab_inotify_fd; - sd_event_source *mount_utab_event_source; +--- systemd-227.orig/src/core/manager.h ++++ systemd-227/src/core/manager.h +@@ -180,6 +180,11 @@ struct Manager { + struct libmnt_monitor *mount_monitor; + sd_event_source *mount_event_source; + /* Watch out any change of /etc/resolv.conf */ + int resolv_conf_inotify_fd; From 41f309c81844b5ad1331f1f919e001245e334397446c6f5e47ae32832b430b25 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 27 Dec 2015 00:53:14 +0000 Subject: [PATCH 221/221] Accepting request 350935 from openSUSE:Factory Revert to version 224 - 228 exhibits issues on updating from 13.2 to TW OBS-URL: https://build.opensuse.org/request/show/350935 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=227 --- ...unt-units-pulled-by-RequiresMountsFo.patch | 49 ++++++ ...s390_con3270_disable_ANSI_colour_esc.patch | 131 +++++++++++----- ...sh-for-reboot-or-hddown-for-poweroff.patch | 38 ++--- ...network-device-after-NFS-mount-units.patch | 57 ++++--- 0001-bnc888612-logind-polkit-acpi.patch | 30 ++-- ...-do-not-allow-overlong-machine-names.patch | 37 ----- ...ting-for-unit-termination-in-certain.patch | 140 ++++++++++++++++++ 0014-journald-with-journaling-FS.patch | 33 ++--- ...pletion-smart-to-be-able-to-redirect.patch | 90 +++++------ ...enable-by_path-links-for-ata-devices.patch | 99 +++++++++++++ ...-increase-maximum-number-of-children.patch | 14 +- Correct_assert_on_unexpected_error_code.patch | 10 +- avoid-divide-by-zero-sigtrap.patch | 22 +-- ...plock-and-compose_table-and-kbd_rate.patch | 28 ++-- ...lock-value-in-etc-sysconfig-keyboard.patch | 56 +++---- ...lang-value-in-etc-sysconfig-language.patch | 24 ++- insserv-generator.patch | 27 ++-- macros.systemd.upstream | 12 +- ...f-ARM-based-Chromebook-as-a-power-sw.patch | 18 +++ set-and-use-default-logconsole.patch | 65 ++++---- suse-sysv-bootd-support.diff | 33 +++-- systemd-add-user-keep.patch | 36 ++--- systemd-mini.changes | 56 ------- systemd-mini.spec | 59 ++++---- systemd-pam_config.patch | 34 ++--- systemd-tmp-safe-defaults.patch | 16 +- systemd.changes | 56 ------- systemd.spec | 59 ++++---- tty-ask-password-agent-on-console.patch | 73 ++++----- ...addentropy-ioctl-to-load-random-seed.patch | 33 +++-- v224.tar.gz | 3 + v228.tar.gz | 3 - watch_resolv.conf_for_become_changed.patch | 34 ++--- 33 files changed, 832 insertions(+), 643 deletions(-) create mode 100644 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch delete mode 100644 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch create mode 100644 0002-units-enable-waiting-for-unit-termination-in-certain.patch create mode 100644 1001-re-enable-by_path-links-for-ata-devices.patch create mode 100644 rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch create mode 100644 v224.tar.gz delete mode 100644 v228.tar.gz diff --git a/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch b/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch new file mode 100644 index 00000000..5161b8ca --- /dev/null +++ b/0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch @@ -0,0 +1,49 @@ +From 6a102f90a2ee50e43998d64819e8bd4ee241c22b Mon Sep 17 00:00:00 2001 +From: Franck Bui +Date: Thu, 8 Oct 2015 19:06:06 +0200 +Subject: [PATCH 1/2] Make sure the mount units pulled by 'RequiresMountsFor=' + are loaded (if they exist) + +We should make sure that mount units involved by 'RequiresMountsFor=' +directives are really loaded if not required by any others units so +that Requires= dependencies on the mount units are applied and thus +the mount unit dependencies are started. + +(cherry picked from commit 9b3757e9c8c8d6e161481193c4ef60e425a9ae41) +--- + src/core/unit.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/core/unit.c b/src/core/unit.c +index dd5e801..dc7bc5a 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -1141,13 +1141,23 @@ static int unit_add_mount_dependencies(Unit *u) { + char prefix[strlen(*i) + 1]; + + PATH_FOREACH_PREFIX_MORE(prefix, *i) { ++ _cleanup_free_ char *p = NULL; + Unit *m; + +- r = manager_get_unit_by_path(u->manager, prefix, ".mount", &m); ++ r = unit_name_from_path(prefix, ".mount", &p); + if (r < 0) + return r; +- if (r == 0) ++ ++ m = manager_get_unit(u->manager, p); ++ if (!m) { ++ /* Make sure to load the mount unit if ++ * it exists. If so the dependencies ++ * on this unit will be added later ++ * during the loading of the mount ++ * unit. */ ++ (void) manager_load_unit_prepare(u->manager, p, NULL, NULL, &m); + continue; ++ } + if (m == u) + continue; + +-- +2.6.0 + diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index 3dd400a3..9756786c 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,15 +1,15 @@ --- - rules/99-systemd.rules.in | 2 - - src/basic/terminal-util.c | 55 ++++++++++++++++++++++++++++++++++++++++++++-- + rules/99-systemd.rules.in | 2 + src/basic/terminal-util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++-- src/basic/terminal-util.h | 1 - src/core/manager.c | 24 +++++++++++++++----- - 4 files changed, 74 insertions(+), 8 deletions(-) + src/core/manager.c | 24 ++++++++--- + 4 files changed, 116 insertions(+), 10 deletions(-) -Index: systemd-228/rules/99-systemd.rules.in +Index: systemd-221/rules/99-systemd.rules.in =================================================================== ---- systemd-228.orig/rules/99-systemd.rules.in -+++ systemd-228/rules/99-systemd.rules.in +--- systemd-221.orig/rules/99-systemd.rules.in ++++ systemd-221/rules/99-systemd.rules.in @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="systemd_end" @@ -19,11 +19,76 @@ Index: systemd-228/rules/99-systemd.rules.in KERNEL=="vport*", TAG+="systemd" SUBSYSTEM=="block", TAG+="systemd" -Index: systemd-228/src/basic/terminal-util.c +Index: systemd-221/src/basic/terminal-util.c =================================================================== ---- systemd-228.orig/src/basic/terminal-util.c -+++ systemd-228/src/basic/terminal-util.c -@@ -717,10 +717,47 @@ bool tty_is_vc_resolve(const char *tty) +--- systemd-221.orig/src/basic/terminal-util.c ++++ systemd-221/src/basic/terminal-util.c +@@ -647,6 +647,7 @@ int status_vprintf(const char *status, b + struct iovec iovec[6] = {}; + int n = 0; + static bool prev_ephemeral; ++ static int is_ansi_console = -1; + + assert(format); + +@@ -660,6 +661,41 @@ int status_vprintf(const char *status, b + if (fd < 0) + return fd; + ++ if (_unlikely_(is_ansi_console < 0)) ++ is_ansi_console = ansi_console(fd); ++ ++ if (status && !is_ansi_console) { ++ const char *esc, *ptr; ++ esc = strchr(status, 0x1B); ++ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) { ++ switch(*ptr) { ++ case 'S': ++ status = " SKIP "; ++ break; ++ case 'O': ++ status = " OK "; ++ break; ++ case 'F': ++ status = "FAILED"; ++ break; ++ case 'D': ++ status = "DEPEND"; ++ break; ++ case 'T': ++ status = " TIME "; ++ break; ++ case 'I': ++ status = " INFO "; ++ break; ++ case '*': ++ status = " BUSY "; ++ break; ++ default: ++ break; ++ } ++ } ++ } ++ + if (ellipse) { + char *e; + size_t emax, sl; +@@ -682,8 +718,12 @@ int status_vprintf(const char *status, b + } + } + +- if (prev_ephemeral) +- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); ++ if (prev_ephemeral) { ++ if (is_ansi_console) ++ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE); ++ else ++ IOVEC_SET_STRING(iovec[n++], "\r"); ++ } + prev_ephemeral = ephemeral; + + if (status) { +@@ -807,10 +847,47 @@ bool tty_is_vc_resolve(const char *tty) return tty_is_vc(tty); } @@ -72,7 +137,7 @@ Index: systemd-228/src/basic/terminal-util.c } int fd_columns(int fd) { -@@ -800,8 +837,22 @@ void columns_lines_cache_reset(int signu +@@ -890,8 +967,22 @@ void columns_lines_cache_reset(int signu bool on_tty(void) { static int cached_on_tty = -1; @@ -96,59 +161,59 @@ Index: systemd-228/src/basic/terminal-util.c return cached_on_tty; } -Index: systemd-228/src/basic/terminal-util.h +Index: systemd-221/src/basic/terminal-util.h =================================================================== ---- systemd-228.orig/src/basic/terminal-util.h -+++ systemd-228/src/basic/terminal-util.h -@@ -78,6 +78,7 @@ unsigned lines(void); +--- systemd-221.orig/src/basic/terminal-util.h ++++ systemd-221/src/basic/terminal-util.h +@@ -77,6 +77,7 @@ unsigned lines(void); void columns_lines_cache_reset(int _unused_ signum); bool on_tty(void); +bool ansi_console(int fd); - static inline const char *ansi_underline(void) { - return on_tty() ? ANSI_UNDERLINE : ""; -Index: systemd-228/src/core/manager.c + static inline const char *ansi_highlight(void) { + return on_tty() ? ANSI_HIGHLIGHT_ON : ""; +Index: systemd-221/src/core/manager.c =================================================================== ---- systemd-228.orig/src/core/manager.c -+++ systemd-228/src/core/manager.c -@@ -126,7 +126,7 @@ static void manager_watch_jobs_in_progre +--- systemd-221.orig/src/core/manager.c ++++ systemd-221/src/core/manager.c +@@ -113,7 +113,7 @@ static void manager_watch_jobs_in_progre - #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED)-1) + sizeof(ANSI_HIGHLIGHT_RED)-1 + 2*(sizeof(ANSI_NORMAL)-1)) + #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1)) -static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) { +static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) { char *p = buffer; assert(buflen >= CYLON_BUFFER_EXTRA + width + 1); -@@ -135,12 +135,14 @@ static void draw_cylon(char buffer[], si +@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si if (pos > 1) { if (pos > 2) p = mempset(p, ' ', pos-2); -- p = stpcpy(p, ANSI_RED); +- p = stpcpy(p, ANSI_RED_ON); + if (ansi_console) -+ p = stpcpy(p, ANSI_RED); ++ p = stpcpy(p, ANSI_RED_ON); *p++ = '*'; } if (pos > 0 && pos <= width) { -- p = stpcpy(p, ANSI_HIGHLIGHT_RED); +- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON); + if (ansi_console) -+ p = stpcpy(p, ANSI_HIGHLIGHT_RED); ++ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON); *p++ = '*'; } -@@ -151,7 +153,8 @@ static void draw_cylon(char buffer[], si +@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si *p++ = '*'; if (pos < width-1) p = mempset(p, ' ', width-1-pos); -- strcpy(p, ANSI_NORMAL); +- strcpy(p, ANSI_HIGHLIGHT_OFF); + if (ansi_console) -+ strcpy(p, ANSI_NORMAL); ++ strcpy(p, ANSI_HIGHLIGHT_OFF); } } -@@ -168,6 +171,7 @@ void manager_flip_auto_status(Manager *m +@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m } static void manager_print_jobs_in_progress(Manager *m) { @@ -156,7 +221,7 @@ Index: systemd-228/src/core/manager.c _cleanup_free_ char *job_of_n = NULL; Iterator i; Job *j; -@@ -193,10 +197,20 @@ static void manager_print_jobs_in_progre +@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre assert(counter == print_nr + 1); assert(j); diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index f370239f..ea7eeafa 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -3,11 +3,11 @@ src/systemctl/systemctl.c | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) -Index: systemd-227/src/core/shutdown.c +Index: systemd-221/src/core/shutdown.c =================================================================== ---- systemd-227.orig/src/core/shutdown.c -+++ systemd-227/src/core/shutdown.c -@@ -418,6 +418,10 @@ int main(int argc, char *argv[]) { +--- systemd-221.orig/src/core/shutdown.c ++++ systemd-221/src/core/shutdown.c +@@ -396,6 +396,10 @@ int main(int argc, char *argv[]) { } reboot(cmd); @@ -18,11 +18,11 @@ Index: systemd-227/src/core/shutdown.c if (errno == EPERM && in_container) { /* If we are in a container, and we lacked * CAP_SYS_BOOT just exit, this will kill our -Index: systemd-227/src/systemctl/systemctl.c +Index: systemd-221/src/systemctl/systemctl.c =================================================================== ---- systemd-227.orig/src/systemctl/systemctl.c -+++ systemd-227/src/systemctl/systemctl.c -@@ -94,6 +94,7 @@ static bool arg_no_pager = false; +--- systemd-221.orig/src/systemctl/systemctl.c ++++ systemd-221/src/systemctl/systemctl.c +@@ -93,6 +93,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; static bool arg_no_reload = false; @@ -30,7 +30,7 @@ Index: systemd-227/src/systemctl/systemctl.c static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -6938,6 +6939,7 @@ static int halt_parse_argv(int argc, cha +@@ -6636,6 +6637,7 @@ static int halt_parse_argv(int argc, cha { "reboot", no_argument, NULL, ARG_REBOOT }, { "force", no_argument, NULL, 'f' }, { "wtmp-only", no_argument, NULL, 'w' }, @@ -38,7 +38,7 @@ Index: systemd-227/src/systemctl/systemctl.c { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, {} -@@ -6990,10 +6992,13 @@ static int halt_parse_argv(int argc, cha +@@ -6688,10 +6690,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -53,32 +53,32 @@ Index: systemd-227/src/systemctl/systemctl.c case '?': return -EINVAL; -@@ -7506,7 +7511,8 @@ static int halt_now(enum action a) { +@@ -7291,7 +7296,8 @@ static int halt_now(enum action a) { /* The kernel will automaticall flush ATA disks and suchlike * on reboot(), but the file systems need to be synce'd * explicitly in advance. */ -- (void) sync(); +- sync(); + if (!arg_no_sync) -+ (void) sync(); ++ sync(); /* Make sure C-A-D is handled by the kernel from this point * on... */ -@@ -7514,14 +7520,13 @@ static int halt_now(enum action a) { +@@ -7299,14 +7305,14 @@ static int halt_now(enum action a) { switch (a) { - case ACTION_HALT: - log_info("Halting."); -- (void) reboot(RB_HALT_SYSTEM); +- reboot(RB_HALT_SYSTEM); - return -errno; -- + case ACTION_POWEROFF: log_info("Powering off."); - (void) reboot(RB_POWER_OFF); + reboot(RB_POWER_OFF); + /* fall-through */ + case ACTION_HALT: + log_info("Halting."); -+ (void) reboot(RB_HALT_SYSTEM); ++ reboot(RB_HALT_SYSTEM); return -errno; - case ACTION_KEXEC: + case ACTION_REBOOT: { diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index dc30e64f..955314ff 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -5,16 +5,17 @@ NFS share is added as "After=" dependency to the .mount. --- Makefile.am | 2 + src/basic/util.c | 1 src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ src/core/mount-iface.h | 25 +++++++ src/core/mount.c | 35 +++++++++ - 4 files changed, 233 insertions(+), 2 deletions(-) + 5 files changed, 234 insertions(+), 2 deletions(-) -Index: systemd-228/Makefile.am +Index: systemd-221/Makefile.am =================================================================== ---- systemd-228.orig/Makefile.am -+++ systemd-228/Makefile.am -@@ -1223,6 +1223,8 @@ libcore_la_SOURCES = \ +--- systemd-221.orig/Makefile.am ++++ systemd-221/Makefile.am +@@ -1164,6 +1164,8 @@ libcore_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ @@ -23,10 +24,22 @@ Index: systemd-228/Makefile.am src/core/kmod-setup.c \ src/core/kmod-setup.h \ src/core/loopback-setup.h \ -Index: systemd-228/src/core/mount-iface.c +Index: systemd-221/src/basic/util.c +=================================================================== +--- systemd-221.orig/src/basic/util.c ++++ systemd-221/src/basic/util.c +@@ -1478,6 +1478,7 @@ bool fstype_is_network(const char *fstyp + "ncp\0" + "nfs\0" + "nfs4\0" ++ "afs\0" + "gfs\0" + "gfs2\0" + "glusterfs\0"; +Index: systemd-221/src/core/mount-iface.c =================================================================== --- /dev/null -+++ systemd-228/src/core/mount-iface.c ++++ systemd-221/src/core/mount-iface.c @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -201,10 +214,10 @@ Index: systemd-228/src/core/mount-iface.c + freeifaddrs(ifa_list); + ifa_list = NULL; +} -Index: systemd-228/src/core/mount-iface.h +Index: systemd-221/src/core/mount-iface.h =================================================================== --- /dev/null -+++ systemd-228/src/core/mount-iface.h ++++ systemd-221/src/core/mount-iface.h @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -231,19 +244,19 @@ Index: systemd-228/src/core/mount-iface.h + +char *host2iface(const char *ip); +void freeroutes(void); -Index: systemd-228/src/core/mount.c +Index: systemd-221/src/core/mount.c =================================================================== ---- systemd-228.orig/src/core/mount.c -+++ systemd-228/src/core/mount.c -@@ -36,6 +36,7 @@ - #include "manager.h" +--- systemd-221.orig/src/core/mount.c ++++ systemd-221/src/core/mount.c +@@ -35,6 +35,7 @@ #include "mkdir.h" + #include "path-util.h" #include "mount-setup.h" +#include "mount-iface.h" - #include "mount-util.h" - #include "mount.h" - #include "parse-util.h" -@@ -1344,8 +1345,9 @@ static int mount_setup_unit( + #include "unit-name.h" + #include "dbus-mount.h" + #include "special.h" +@@ -1332,8 +1333,9 @@ static int mount_setup_unit( _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; @@ -254,7 +267,7 @@ Index: systemd-228/src/core/mount.c int r; assert(m); -@@ -1370,6 +1372,8 @@ static int mount_setup_unit( +@@ -1358,6 +1360,8 @@ static int mount_setup_unit( if (r < 0) return r; @@ -263,7 +276,7 @@ Index: systemd-228/src/core/mount.c u = manager_get_unit(m, e); if (!u) { delete = true; -@@ -1397,7 +1401,7 @@ static int mount_setup_unit( +@@ -1385,7 +1389,7 @@ static int mount_setup_unit( if (m->running_as == MANAGER_SYSTEM) { const char* target; @@ -272,7 +285,7 @@ Index: systemd-228/src/core/mount.c r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) goto fail; -@@ -1483,6 +1487,32 @@ static int mount_setup_unit( +@@ -1471,6 +1475,32 @@ static int mount_setup_unit( goto fail; } @@ -305,7 +318,7 @@ Index: systemd-228/src/core/mount.c if (changed) unit_add_to_dbus_queue(u); -@@ -1549,6 +1579,7 @@ static int mount_load_proc_self_mountinf +@@ -1537,6 +1567,7 @@ static int mount_load_proc_self_mountinf if (r == 0 && k < 0) r = k; } diff --git a/0001-bnc888612-logind-polkit-acpi.patch b/0001-bnc888612-logind-polkit-acpi.patch index 8729f452..505e1791 100644 --- a/0001-bnc888612-logind-polkit-acpi.patch +++ b/0001-bnc888612-logind-polkit-acpi.patch @@ -3,10 +3,10 @@ src/login/logind-dbus.c | 31 +++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 8 deletions(-) -Index: systemd-227/src/login/logind-action.c +Index: systemd-221/src/login/logind-action.c =================================================================== ---- systemd-227.orig/src/login/logind-action.c -+++ systemd-227/src/login/logind-action.c +--- systemd-221.orig/src/login/logind-action.c ++++ systemd-221/src/login/logind-action.c @@ -85,6 +85,11 @@ int manager_handle_action( /* If the key handling is inhibited, don't do anything */ @@ -19,11 +19,11 @@ Index: systemd-227/src/login/logind-action.c if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) { log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key)); return 0; -Index: systemd-227/src/login/logind-dbus.c +Index: systemd-221/src/login/logind-dbus.c =================================================================== ---- systemd-227.orig/src/login/logind-dbus.c -+++ systemd-227/src/login/logind-dbus.c -@@ -1646,12 +1646,13 @@ static int verify_shutdown_creds( +--- systemd-221.orig/src/login/logind-dbus.c ++++ systemd-221/src/login/logind-dbus.c +@@ -1625,12 +1625,13 @@ static int verify_shutdown_creds( const char *action, const char *action_multiple_sessions, const char *action_ignore_inhibit, @@ -40,7 +40,7 @@ Index: systemd-227/src/login/logind-dbus.c assert(m); assert(message); -@@ -1673,7 +1674,19 @@ static int verify_shutdown_creds( +@@ -1652,7 +1653,19 @@ static int verify_shutdown_creds( multiple_sessions = r > 0; blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL); @@ -58,29 +58,29 @@ Index: systemd-227/src/login/logind-dbus.c + + if (multiple_sessions && action_multiple_sessions && + !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, NULL, interactive, UID_INVALID, &m->polkit_registry, error); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1681,7 +1694,7 @@ static int verify_shutdown_creds( +@@ -1660,7 +1673,7 @@ static int verify_shutdown_creds( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (blocked && action_ignore_inhibit) { + if (blocked && action_ignore_inhibit && !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, NULL, interactive, UID_INVALID, &m->polkit_registry, error); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1689,7 +1702,8 @@ static int verify_shutdown_creds( +@@ -1668,7 +1681,8 @@ static int verify_shutdown_creds( return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ } - if (!multiple_sessions && !blocked && action) { + if (!multiple_sessions && !blocked && action && + !shutdown_through_acpi) { - r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, NULL, interactive, UID_INVALID, &m->polkit_registry, error); + r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, UID_INVALID, &m->polkit_registry, error); if (r < 0) return r; -@@ -1737,7 +1751,7 @@ static int method_do_shutdown_or_sleep( +@@ -1716,7 +1730,7 @@ static int method_do_shutdown_or_sleep( } r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions, @@ -89,7 +89,7 @@ Index: systemd-227/src/login/logind-dbus.c if (r != 0) return r; -@@ -1931,7 +1945,8 @@ static int method_schedule_shutdown(sd_b +@@ -1896,7 +1910,8 @@ static int method_schedule_shutdown(sd_b return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type"); r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false, diff --git a/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch b/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch deleted file mode 100644 index f6af8080..00000000 --- a/0001-nss-mymachines-do-not-allow-overlong-machine-names.patch +++ /dev/null @@ -1,37 +0,0 @@ -From cb31827d62066a04b02111df3052949fda4b6888 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 23 Nov 2015 13:59:43 -0500 -Subject: [PATCH] nss-mymachines: do not allow overlong machine names - -https://github.com/systemd/systemd/issues/2002 ---- - src/nss-mymachines/nss-mymachines.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c -index 969fa96..c98a959 100644 ---- a/src/nss-mymachines/nss-mymachines.c -+++ b/src/nss-mymachines/nss-mymachines.c -@@ -416,6 +416,9 @@ enum nss_status _nss_mymachines_getpwnam_r( - if (!e || e == p) - goto not_found; - -+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */ -+ goto not_found; -+ - r = parse_uid(e + 1, &uid); - if (r < 0) - goto not_found; -@@ -573,6 +576,9 @@ enum nss_status _nss_mymachines_getgrnam_r( - if (!e || e == p) - goto not_found; - -+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */ -+ goto not_found; -+ - r = parse_gid(e + 1, &gid); - if (r < 0) - goto not_found; --- -2.1.4 - diff --git a/0002-units-enable-waiting-for-unit-termination-in-certain.patch b/0002-units-enable-waiting-for-unit-termination-in-certain.patch new file mode 100644 index 00000000..4cad2861 --- /dev/null +++ b/0002-units-enable-waiting-for-unit-termination-in-certain.patch @@ -0,0 +1,140 @@ +From d7f920bfcb0296fed214d4d3a21d64de09a68521 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Tue, 1 Sep 2015 17:25:59 +0200 +Subject: [PATCH 2/2] units: enable waiting for unit termination in certain + cases + +The legacy cgroup hierarchy does not support reliable empty +notifications in containers and if there are left-over subgroups in a +cgroup. This makes it hard to correctly wait for them running empty, and +thus we previously disabled this logic entirely. + +With this change we explicitly check for the container case, and whether +the unit is a "delegation" unit (i.e. one where programs may create +their own subgroups). If we are neither in a container, nor operating on +a delegation unit cgroup empty notifications become reliable and thus we +start waiting for the empty notifications again. + +This doesn't really fix the general problem around cgroup notifications +but reduces the effect around it. + +(This also reorders #include lines by their focus, as suggsted in +CODING_STYLE. We have to add "virt.h", so let's do that at the right +place.) + +Also see #317. + +(cherry picked from commit e9db43d5910717a1084924c512bf85e2b8265375) +--- + src/core/cgroup.c | 12 ++++++++++++ + src/core/cgroup.h | 2 ++ + src/core/unit.c | 40 +++++++++++++++++++++++----------------- + 3 files changed, 37 insertions(+), 17 deletions(-) + +diff --git a/src/core/cgroup.c b/src/core/cgroup.c +index 6474e08..65af351 100644 +--- a/src/core/cgroup.c ++++ b/src/core/cgroup.c +@@ -1127,6 +1127,18 @@ int unit_reset_cpu_usage(Unit *u) { + return 0; + } + ++bool unit_cgroup_delegate(Unit *u) { ++ CGroupContext *c; ++ ++ assert(u); ++ ++ c = unit_get_cgroup_context(u); ++ if (!c) ++ return false; ++ ++ return c->delegate; ++} ++ + static const char* const cgroup_device_policy_table[_CGROUP_DEVICE_POLICY_MAX] = { + [CGROUP_AUTO] = "auto", + [CGROUP_CLOSED] = "closed", +diff --git a/src/core/cgroup.h b/src/core/cgroup.h +index 869ddae..7b38d21 100644 +--- a/src/core/cgroup.h ++++ b/src/core/cgroup.h +@@ -130,5 +130,7 @@ int unit_get_memory_current(Unit *u, uint64_t *ret); + int unit_get_cpu_usage(Unit *u, nsec_t *ret); + int unit_reset_cpu_usage(Unit *u); + ++bool unit_cgroup_delegate(Unit *u); ++ + const char* cgroup_device_policy_to_string(CGroupDevicePolicy i) _const_; + CGroupDevicePolicy cgroup_device_policy_from_string(const char *s) _pure_; +diff --git a/src/core/unit.c b/src/core/unit.c +index dc7bc5a..275f567 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -28,26 +28,28 @@ + #include "sd-id128.h" + #include "sd-messages.h" + #include "set.h" +-#include "unit.h" + #include "macro.h" + #include "strv.h" + #include "path-util.h" +-#include "load-fragment.h" +-#include "load-dropin.h" + #include "log.h" +-#include "unit-name.h" +-#include "dbus-unit.h" +-#include "special.h" + #include "cgroup-util.h" + #include "missing.h" + #include "mkdir.h" + #include "fileio-label.h" ++#include "formats-util.h" ++#include "process-util.h" ++#include "virt.h" + #include "bus-common-errors.h" ++#include "bus-util.h" ++#include "dropin.h" ++#include "unit-name.h" ++#include "special.h" ++#include "unit.h" ++#include "load-fragment.h" ++#include "load-dropin.h" + #include "dbus.h" ++#include "dbus-unit.h" + #include "execute.h" +-#include "dropin.h" +-#include "formats-util.h" +-#include "process-util.h" + + const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = { + [UNIT_SERVICE] = &service_vtable, +@@ -3535,14 +3537,18 @@ int unit_kill_context( + } else if (r > 0) { + + /* FIXME: For now, we will not wait for the +- * cgroup members to die, simply because +- * cgroup notification is unreliable. It +- * doesn't work at all in containers, and +- * outside of containers it can be confused +- * easily by leaving directories in the +- * cgroup. */ +- +- /* wait_for_exit = true; */ ++ * cgroup members to die if we are running in ++ * a container or if this is a delegation ++ * unit, simply because cgroup notification is ++ * unreliable in these cases. It doesn't work ++ * at all in containers, and outside of ++ * containers it can be confused easily by ++ * left-over directories in the cgroup -- ++ * which however should not exist in ++ * non-delegated units. */ ++ ++ if (detect_container(NULL) == 0 && !unit_cgroup_delegate(u)) ++ wait_for_exit = true; + + if (c->send_sighup && k != KILL_KILL) { + set_free(pid_set); +-- +2.6.0 + diff --git a/0014-journald-with-journaling-FS.patch b/0014-journald-with-journaling-FS.patch index 00577b3d..a8255ab5 100644 --- a/0014-journald-with-journaling-FS.patch +++ b/0014-journald-with-journaling-FS.patch @@ -13,27 +13,27 @@ No word on compression… src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) -Index: systemd-227/src/journal/journald-server.c +Index: systemd-221/src/journal/journald-server.c =================================================================== ---- systemd-227.orig/src/journal/journald-server.c -+++ systemd-227/src/journal/journald-server.c -@@ -24,6 +24,7 @@ - #include - #endif +--- systemd-221.orig/src/journal/journald-server.c ++++ systemd-221/src/journal/journald-server.c +@@ -21,6 +21,7 @@ + + #include #include +#include - #include - #include + #include #include -@@ -861,6 +862,39 @@ void server_driver_message(Server *s, sd - dispatch_message_real(s, iovec, n, ELEMENTSOF(iovec), &ucred, NULL, NULL, 0, NULL, LOG_INFO, 0); + #include +@@ -918,6 +919,38 @@ finish: + dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid); } +/* + * On journaling and/or compressing file systems, avoid doubling the efforts + * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every + * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on -+ * a single unkown flag (like Btrfs does). ++ * a single unkown flag (like BtrFS does). + * + * …but src/journal/journal-file.c already sets NOCOW too…⸘ + */ @@ -61,13 +61,12 @@ Index: systemd-227/src/journal/journald-server.c + } + close(fd); +} -+ - void server_dispatch_message( - Server *s, - struct iovec *iovec, unsigned n, unsigned m, -@@ -948,6 +982,7 @@ static int system_journal_open(Server *s - fn = strjoina("/var/log/journal/", SERVER_MACHINE_ID(s)); + static int system_journal_open(Server *s, bool flush_requested) { + int r; +@@ -947,6 +980,7 @@ static int system_journal_open(Server *s + + fn = strjoina("/var/log/journal/", ids); (void) mkdir(fn, 0755); + disable_cow(fn, s); diff --git a/0019-make-completion-smart-to-be-able-to-redirect.patch b/0019-make-completion-smart-to-be-able-to-redirect.patch index c8ab5fa7..ca3a4b0c 100644 --- a/0019-make-completion-smart-to-be-able-to-redirect.patch +++ b/0019-make-completion-smart-to-be-able-to-redirect.patch @@ -12,10 +12,10 @@ shell-completion/bash/udevadm | 6 +++++- 11 files changed, 70 insertions(+), 11 deletions(-) -Index: systemd-228/shell-completion/bash/coredumpctl +Index: systemd-221/shell-completion/bash/coredumpctl =================================================================== ---- systemd-228.orig/shell-completion/bash/coredumpctl -+++ systemd-228/shell-completion/bash/coredumpctl +--- systemd-221.orig/shell-completion/bash/coredumpctl ++++ systemd-221/shell-completion/bash/coredumpctl @@ -44,6 +44,10 @@ _coredumpctl() { [DUMP]='dump gdb' ) @@ -33,10 +33,10 @@ Index: systemd-228/shell-completion/bash/coredumpctl -complete -F _coredumpctl coredumpctl +complete -o default -o bashdefault -F _coredumpctl coredumpctl -Index: systemd-228/shell-completion/bash/hostnamectl +Index: systemd-221/shell-completion/bash/hostnamectl =================================================================== ---- systemd-228.orig/shell-completion/bash/hostnamectl -+++ systemd-228/shell-completion/bash/hostnamectl +--- systemd-221.orig/shell-completion/bash/hostnamectl ++++ systemd-221/shell-completion/bash/hostnamectl @@ -30,6 +30,10 @@ _hostnamectl() { local OPTS='-h --help --version --transient --static --pretty --no-ask-password -H --host --machine' @@ -54,12 +54,12 @@ Index: systemd-228/shell-completion/bash/hostnamectl -complete -F _hostnamectl hostnamectl +complete -o default -o bashdefault -F _hostnamectl hostnamectl -Index: systemd-228/shell-completion/bash/journalctl +Index: systemd-221/shell-completion/bash/journalctl =================================================================== ---- systemd-228.orig/shell-completion/bash/journalctl -+++ systemd-228/shell-completion/bash/journalctl -@@ -56,6 +56,10 @@ _journalctl() { - --root -M --machine' +--- systemd-221.orig/shell-completion/bash/journalctl ++++ systemd-221/shell-completion/bash/journalctl +@@ -55,6 +55,10 @@ _journalctl() { + --root --machine' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -69,16 +69,16 @@ Index: systemd-228/shell-completion/bash/journalctl if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then case $prev in --boot|--this-boot|-b) -@@ -121,4 +125,4 @@ _journalctl() { +@@ -120,4 +124,4 @@ _journalctl() { fi } -complete -F _journalctl journalctl +complete -o default -o bashdefault -F _journalctl journalctl -Index: systemd-228/shell-completion/bash/kernel-install +Index: systemd-221/shell-completion/bash/kernel-install =================================================================== ---- systemd-228.orig/shell-completion/bash/kernel-install -+++ systemd-228/shell-completion/bash/kernel-install +--- systemd-221.orig/shell-completion/bash/kernel-install ++++ systemd-221/shell-completion/bash/kernel-install @@ -18,11 +18,22 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -108,10 +108,10 @@ Index: systemd-228/shell-completion/bash/kernel-install -complete -F _kernel_install kernel-install +complete -o default -o bashdefault -F _kernel_install kernel-install -Index: systemd-228/shell-completion/bash/localectl +Index: systemd-221/shell-completion/bash/localectl =================================================================== ---- systemd-228.orig/shell-completion/bash/localectl -+++ systemd-228/shell-completion/bash/localectl +--- systemd-221.orig/shell-completion/bash/localectl ++++ systemd-221/shell-completion/bash/localectl @@ -36,6 +36,10 @@ _localectl() { local OPTS='-h --help --version --no-convert --no-pager --no-ask-password -H --host --machine' @@ -129,10 +129,10 @@ Index: systemd-228/shell-completion/bash/localectl -complete -F _localectl localectl +complete -o default -o bashdefault -F _localectl localectl -Index: systemd-228/shell-completion/bash/loginctl +Index: systemd-221/shell-completion/bash/loginctl =================================================================== ---- systemd-228.orig/shell-completion/bash/loginctl -+++ systemd-228/shell-completion/bash/loginctl +--- systemd-221.orig/shell-completion/bash/loginctl ++++ systemd-221/shell-completion/bash/loginctl @@ -38,6 +38,10 @@ _loginctl () { [ARG]='--host -H --kill-who --property -p --signal -s --machine' ) @@ -150,12 +150,12 @@ Index: systemd-228/shell-completion/bash/loginctl -complete -F _loginctl loginctl +complete -o default -o bashdefault -F _loginctl loginctl -Index: systemd-228/shell-completion/bash/systemctl.in +Index: systemd-221/shell-completion/bash/systemctl.in =================================================================== ---- systemd-228.orig/shell-completion/bash/systemctl.in -+++ systemd-228/shell-completion/bash/systemctl.in -@@ -104,6 +104,10 @@ _systemctl () { - --preset-mode -n --lines -o --output -M --machine' +--- systemd-221.orig/shell-completion/bash/systemctl.in ++++ systemd-221/shell-completion/bash/systemctl.in +@@ -96,6 +96,10 @@ _systemctl () { + [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --job-mode --root' ) + if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then @@ -164,17 +164,17 @@ Index: systemd-228/shell-completion/bash/systemctl.in + if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user - elif __contains_word "--global" ${COMP_WORDS[*]}; then -@@ -280,4 +284,4 @@ _systemctl () { + else +@@ -268,4 +272,4 @@ _systemctl () { return 0 } -complete -F _systemctl systemctl +complete -o default -o bashdefault -F _systemctl systemctl -Index: systemd-228/shell-completion/bash/systemd-analyze +Index: systemd-221/shell-completion/bash/systemd-analyze =================================================================== ---- systemd-228.orig/shell-completion/bash/systemd-analyze -+++ systemd-228/shell-completion/bash/systemd-analyze +--- systemd-221.orig/shell-completion/bash/systemd-analyze ++++ systemd-221/shell-completion/bash/systemd-analyze @@ -47,6 +47,10 @@ _systemd_analyze() { [VERIFY]='verify' ) @@ -192,10 +192,10 @@ Index: systemd-228/shell-completion/bash/systemd-analyze -complete -F _systemd_analyze systemd-analyze +complete -o default -o bashdefault -F _systemd_analyze systemd-analyze -Index: systemd-228/shell-completion/bash/systemd-run +Index: systemd-221/shell-completion/bash/systemd-run =================================================================== ---- systemd-228.orig/shell-completion/bash/systemd-run -+++ systemd-228/shell-completion/bash/systemd-run +--- systemd-221.orig/shell-completion/bash/systemd-run ++++ systemd-221/shell-completion/bash/systemd-run @@ -17,6 +17,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . @@ -210,7 +210,7 @@ Index: systemd-228/shell-completion/bash/systemd-run __systemctl() { local mode=$1; shift 1 systemctl $mode --full --no-legend "$@" -@@ -40,6 +47,11 @@ _systemd_run() { +@@ -38,6 +45,11 @@ _systemd_run() { local mode=--system local i @@ -219,19 +219,19 @@ Index: systemd-228/shell-completion/bash/systemd-run + return 0 + fi + - local opts_with_values=( - --unit --description --slice --service-type -H --host -M --machine -p --property --on-active - --on-boot --on-startup --on-unit-active --on-unit-inactive --on-calendar --timer-property -@@ -114,4 +126,4 @@ _systemd_run() { + for (( i=1; i <= COMP_CWORD; i++ )); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + local root_command=${COMP_WORDS[i]} +@@ -98,4 +110,4 @@ _systemd_run() { return 0 } -complete -F _systemd_run systemd-run +complete -o default -o bashdefault -F _systemd_run systemd-run -Index: systemd-228/shell-completion/bash/timedatectl +Index: systemd-221/shell-completion/bash/timedatectl =================================================================== ---- systemd-228.orig/shell-completion/bash/timedatectl -+++ systemd-228/shell-completion/bash/timedatectl +--- systemd-221.orig/shell-completion/bash/timedatectl ++++ systemd-221/shell-completion/bash/timedatectl @@ -30,6 +30,10 @@ _timedatectl() { local OPTS='-h --help --version --adjust-system-clock --no-pager --no-ask-password -H --host --machine' @@ -249,10 +249,10 @@ Index: systemd-228/shell-completion/bash/timedatectl -complete -F _timedatectl timedatectl +complete -o default -o bashdefault -F _timedatectl timedatectl -Index: systemd-228/shell-completion/bash/udevadm +Index: systemd-221/shell-completion/bash/udevadm =================================================================== ---- systemd-228.orig/shell-completion/bash/udevadm -+++ systemd-228/shell-completion/bash/udevadm +--- systemd-221.orig/shell-completion/bash/udevadm ++++ systemd-221/shell-completion/bash/udevadm @@ -36,6 +36,10 @@ _udevadm() { local verbs=(info trigger settle control monitor hwdb test-builtin test) diff --git a/1001-re-enable-by_path-links-for-ata-devices.patch b/1001-re-enable-by_path-links-for-ata-devices.patch new file mode 100644 index 00000000..5520c601 --- /dev/null +++ b/1001-re-enable-by_path-links-for-ata-devices.patch @@ -0,0 +1,99 @@ +From 5cf46aa4339670afac386b1b0e630b739f3621c7 Mon Sep 17 00:00:00 2001 +From: Robert Milasan +Date: Thu, 12 Jul 2012 15:56:34 +0000 +Subject: [PATCH] Persistent by_path links for ata devices + +With newer kernel we have the 'port_no' attribute, +which allows us to construct a valid ata by-path link. + +With this patch ATA links of the form + +ata-.[01] + +(for master/slave devices) or + +ata-..0 + +(for devices behind port multipliers) +are generated. + +References: bnc#770910,FATE#317063 + +Signed-off-by: Robert Milasan +Signed-off-by: Hannes Reinecke +--- + src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++---------- + 1 file changed, 41 insertions(+), 12 deletions(-) + +Index: systemd-221/src/udev/udev-builtin-path_id.c +=================================================================== +--- systemd-221.orig/src/udev/udev-builtin-path_id.c ++++ systemd-221/src/udev/udev-builtin-path_id.c +@@ -447,6 +447,46 @@ static struct udev_device *handle_scsi_h + return parent; + } + ++static struct udev_device *handle_ata(struct udev_device *parent, char **path) ++{ ++ struct udev *udev = udev_device_get_udev(parent); ++ struct udev_device *hostdev, *portdev; ++ int host, bus, target, lun, port_no; ++ const char *name, *atahost, *port; ++ ++ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); ++ if (hostdev == NULL) ++ return NULL; ++ ++ name = udev_device_get_sysname(parent); ++ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) ++ return NULL; ++ ++ /* The ata port is the parent of the SCSI host */ ++ hostdev = udev_device_get_parent(hostdev); ++ atahost = udev_device_get_sysname(hostdev); ++ if (strncmp(atahost, "ata", 3)) ++ return NULL; ++ ++ /* ATA port number is found in 'port_no' attribute */ ++ portdev = udev_device_new_from_subsystem_sysname(udev, "ata_port", ++ atahost); ++ port = udev_device_get_sysattr_value(portdev, "port_no"); ++ if (!port || sscanf(port, "%d", &port_no) != 1) { ++ hostdev = NULL; ++ goto out; ++ } ++ if (bus != 0) ++ /* Devices behind port multiplier have a bus != 0*/ ++ path_prepend(path, "ata-%u.%u.0", port_no, bus); ++ else ++ /* Master/slave are distinguished by target id */ ++ path_prepend(path, "ata-%u.%u", port_no, target); ++out: ++ udev_device_unref(portdev); ++ return hostdev; ++} ++ + static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) { + const char *devtype; + const char *name; +@@ -486,19 +526,8 @@ static struct udev_device *handle_scsi(s + goto out; + } + +- /* +- * We do not support the ATA transport class, it uses global counters +- * to name the ata devices which numbers spread across multiple +- * controllers. +- * +- * The real link numbers are not exported. Also, possible chains of ports +- * behind port multipliers cannot be composed that way. +- * +- * Until all that is solved at the kernel level, there are no by-path/ +- * links for ATA devices. +- */ + if (strstr(name, "/ata") != NULL) { +- parent = NULL; ++ parent = handle_ata(parent, path); + goto out; + } + diff --git a/1097-udevd-increase-maximum-number-of-children.patch b/1097-udevd-increase-maximum-number-of-children.patch index f71c96a4..6693d757 100644 --- a/1097-udevd-increase-maximum-number-of-children.patch +++ b/1097-udevd-increase-maximum-number-of-children.patch @@ -2,11 +2,11 @@ src/udev/udevd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: systemd-227/src/udev/udevd.c +Index: systemd-221/src/udev/udevd.c =================================================================== ---- systemd-227.orig/src/udev/udevd.c -+++ systemd-227/src/udev/udevd.c -@@ -568,7 +568,7 @@ static void event_run(Manager *manager, +--- systemd-221.orig/src/udev/udevd.c ++++ systemd-221/src/udev/udevd.c +@@ -569,7 +569,7 @@ static void event_run(Manager *manager, if (hashmap_size(manager->workers) >= arg_children_max) { if (arg_children_max > 1) @@ -15,12 +15,12 @@ Index: systemd-227/src/udev/udevd.c return; } -@@ -1672,7 +1672,7 @@ int main(int argc, char *argv[]) { +@@ -1641,7 +1641,7 @@ int main(int argc, char *argv[]) { arg_children_max = 8; - if (sched_getaffinity(0, sizeof(cpu_set), &cpu_set) == 0) + if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) { - arg_children_max += CPU_COUNT(&cpu_set) * 2; + arg_children_max += CPU_COUNT(&cpu_set) * 64; + } log_debug("set children_max to %u", arg_children_max); - } diff --git a/Correct_assert_on_unexpected_error_code.patch b/Correct_assert_on_unexpected_error_code.patch index 43e686ca..535170b4 100644 --- a/Correct_assert_on_unexpected_error_code.patch +++ b/Correct_assert_on_unexpected_error_code.patch @@ -2,12 +2,10 @@ src/login/pam_systemd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -Index: systemd-228/src/login/pam_systemd.c -=================================================================== ---- systemd-228.orig/src/login/pam_systemd.c -+++ systemd-228/src/login/pam_systemd.c -@@ -515,7 +515,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess - r = pam_set_data(handle, "systemd.session-fd", FD_TO_PTR(session_fd), NULL); +--- src/login/pam_systemd.c ++++ src/login/pam_systemd.c 2015-07-29 08:52:20.762018565 +0000 +@@ -507,7 +507,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess + r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL); if (r != PAM_SUCCESS) { pam_syslog(handle, LOG_ERR, "Failed to install session fd."); - safe_close(session_fd); diff --git a/avoid-divide-by-zero-sigtrap.patch b/avoid-divide-by-zero-sigtrap.patch index 60e42c9e..8a8c3caa 100644 --- a/avoid-divide-by-zero-sigtrap.patch +++ b/avoid-divide-by-zero-sigtrap.patch @@ -1,28 +1,28 @@ -Nasty bug reported on boo#867663 +Nasty bug reported on bnc#867663 --- src/basic/def.h | 2 +- src/core/manager.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) -Index: systemd-228/src/basic/def.h +Index: systemd-221/src/basic/def.h =================================================================== ---- systemd-228.orig/src/basic/def.h -+++ systemd-228/src/basic/def.h -@@ -40,7 +40,7 @@ +--- systemd-221.orig/src/basic/def.h ++++ systemd-221/src/basic/def.h +@@ -37,7 +37,7 @@ - #define SYSTEMD_CGROUP_CONTROLLER "name=systemd" + #define SYSTEMD_CGROUP_CONTROLLER "systemd" -#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT +#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS #define SIGNALS_IGNORE SIGPIPE - #define REBOOT_PARAM_FILE "/run/systemd/reboot-param" -Index: systemd-228/src/core/manager.c + #define DIGITS "0123456789" +Index: systemd-221/src/core/manager.c =================================================================== ---- systemd-228.orig/src/core/manager.c -+++ systemd-228/src/core/manager.c -@@ -2003,7 +2003,8 @@ static int manager_dispatch_jobs_in_prog +--- systemd-221.orig/src/core/manager.c ++++ systemd-221/src/core/manager.c +@@ -1991,7 +1991,8 @@ static int manager_dispatch_jobs_in_prog assert(m); assert(source); diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index d7c4477f..865322fb 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -9,20 +9,20 @@ Date: Fri Jun 19 21:36:27 CEST 2015 src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 147 insertions(+), 4 deletions(-) -Index: systemd-228/src/vconsole/vconsole-setup.c +Index: systemd-221/src/vconsole/vconsole-setup.c =================================================================== ---- systemd-228.orig/src/vconsole/vconsole-setup.c -+++ systemd-228/src/vconsole/vconsole-setup.c -@@ -34,6 +34,8 @@ - #include "alloc-util.h" - #include "fd-util.h" +--- systemd-221.orig/src/vconsole/vconsole-setup.c ++++ systemd-221/src/vconsole/vconsole-setup.c +@@ -35,6 +35,8 @@ + #include "log.h" + #include "virt.h" #include "fileio.h" +#include "macro.h" +#include "strv.h" - #include "io-util.h" - #include "locale-util.h" - #include "log.h" -@@ -104,8 +106,10 @@ static int enable_utf8(int fd) { + #include "process-util.h" + #include "terminal-util.h" + #include "signal-util.h" +@@ -99,8 +101,10 @@ static int enable_utf8(int fd) { return r; } @@ -35,7 +35,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c int i = 0, r; pid_t pid; -@@ -122,6 +126,8 @@ static int keyboard_load_and_wait(const +@@ -117,6 +121,8 @@ static int keyboard_load_and_wait(const args[i++] = map; if (map_toggle) args[i++] = map_toggle; @@ -44,7 +44,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c args[i++] = NULL; pid = fork(); -@@ -251,11 +257,117 @@ static void font_copy_to_all_vcs(int fd) +@@ -246,11 +252,117 @@ static void font_copy_to_all_vcs(int fd) } } @@ -162,7 +162,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c _cleanup_close_ int fd = -1; bool utf8, font_copy = false, font_ok, keyboard_ok; int r = EXIT_FAILURE; -@@ -286,6 +398,31 @@ int main(int argc, char **argv) { +@@ -281,6 +393,31 @@ int main(int argc, char **argv) { utf8 = is_locale_utf8(); @@ -194,7 +194,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c r = parse_env_file("/etc/vconsole.conf", NEWLINE, "KEYMAP", &vc_keymap, "KEYMAP_TOGGLE", &vc_keymap_toggle, -@@ -317,11 +454,17 @@ int main(int argc, char **argv) { +@@ -312,11 +449,17 @@ int main(int argc, char **argv) { (void) disable_utf8(fd); font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index 18fd4f61..db480a34 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -9,16 +9,14 @@ Cristian Rodríguez --- Makefile.am | 13 ++++++++++ rules/73-seat-numlock.rules | 8 ++++++ - src/login/numlock-on.c | 34 ++++++++++++++++++++++++++ - src/vconsole/vconsole-setup.c | 41 ++++++++++++++++++++++++++++++-- + src/login/numlock-on.c | 34 +++++++++++++++++++++++++++ + src/vconsole/vconsole-setup.c | 40 ++++++++++++++++++++++++++++++-- units/systemd-vconsole-setup.service.in | 2 - - 5 files changed, 95 insertions(+), 3 deletions(-) + 5 files changed, 94 insertions(+), 3 deletions(-) -Index: systemd-228/Makefile.am -=================================================================== ---- systemd-228.orig/Makefile.am -+++ systemd-228/Makefile.am -@@ -3825,6 +3825,19 @@ dist_udevrules_DATA += \ +--- systemd-222.orig/Makefile.am ++++ systemd-222/Makefile.am +@@ -3805,6 +3805,19 @@ dist_udevrules_DATA += \ rules/60-persistent-v4l.rules # ------------------------------------------------------------------------------ @@ -38,10 +36,8 @@ Index: systemd-228/Makefile.am mtd_probe_SOURCES = \ src/udev/mtd_probe/mtd_probe.c \ src/udev/mtd_probe/mtd_probe.h \ -Index: systemd-228/rules/73-seat-numlock.rules -=================================================================== --- /dev/null -+++ systemd-228/rules/73-seat-numlock.rules ++++ systemd-222/rules/73-seat-numlock.rules @@ -0,0 +1,8 @@ +# This file is part of SUSE customization of systemd. +# @@ -51,10 +47,8 @@ Index: systemd-228/rules/73-seat-numlock.rules +# (at your option) any later version. + +SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}" -Index: systemd-228/src/login/numlock-on.c -=================================================================== --- /dev/null -+++ systemd-228/src/login/numlock-on.c ++++ systemd-222/src/login/numlock-on.c @@ -0,0 +1,34 @@ +/* + * numlock-on.c: Turn numlock-on @@ -90,21 +84,11 @@ Index: systemd-228/src/login/numlock-on.c + + exit(0); +} -Index: systemd-228/src/vconsole/vconsole-setup.c -=================================================================== ---- systemd-228.orig/src/vconsole/vconsole-setup.c -+++ systemd-228/src/vconsole/vconsole-setup.c -@@ -36,6 +36,7 @@ - #include "fileio.h" - #include "macro.h" - #include "strv.h" -+#include "fs-util.h" - #include "io-util.h" - #include "locale-util.h" - #include "log.h" -@@ -46,6 +47,10 @@ - #include "util.h" - #include "virt.h" +--- systemd-222.orig/src/vconsole/vconsole-setup.c ++++ systemd-222/src/vconsole/vconsole-setup.c +@@ -41,6 +41,10 @@ + #include "terminal-util.h" + #include "signal-util.h" +#define BIOS_DATA_AREA 0x400 +#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97 @@ -113,7 +97,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c static bool is_vconsole(int fd) { unsigned char data[1]; -@@ -364,9 +369,10 @@ int main(int argc, char **argv) { +@@ -359,9 +363,10 @@ int main(int argc, char **argv) { #ifdef HAVE_SYSV_COMPAT _cleanup_free_ char *vc_kbd_delay = NULL, *vc_kbd_rate = NULL, @@ -126,7 +110,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c bool comp_ok, rate_ok; _cleanup_close_ int fd = -1; bool utf8, font_copy = false, font_ok, keyboard_ok; -@@ -404,6 +410,7 @@ int main(int argc, char **argv) { +@@ -399,6 +404,7 @@ int main(int argc, char **argv) { "KBD_DELAY", &vc_kbd_delay, "KBD_RATE", &vc_kbd_rate, "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, @@ -134,7 +118,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c "COMPOSETABLE", &vc_compose_table, NULL); if (r < 0 && r != -ENOENT) -@@ -421,6 +428,32 @@ int main(int argc, char **argv) { +@@ -416,6 +422,32 @@ int main(int argc, char **argv) { disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; @@ -167,7 +151,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c #endif /* HAVE_SYSV_COMPAT */ r = parse_env_file("/etc/vconsole.conf", NEWLINE, -@@ -456,6 +489,10 @@ int main(int argc, char **argv) { +@@ -451,6 +483,10 @@ int main(int argc, char **argv) { font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock) > 0; @@ -178,10 +162,8 @@ Index: systemd-228/src/vconsole/vconsole-setup.c #ifdef HAVE_SYSV_COMPAT comp_ok = compose_load_and_wait(vc, vc_compose_table); rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay); -Index: systemd-228/units/systemd-vconsole-setup.service.in -=================================================================== ---- systemd-228.orig/units/systemd-vconsole-setup.service.in -+++ systemd-228/units/systemd-vconsole-setup.service.in +--- systemd-222.orig/units/systemd-vconsole-setup.service.in ++++ systemd-222/units/systemd-vconsole-setup.service.in @@ -10,7 +10,7 @@ Description=Setup Virtual Console Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5) DefaultDependencies=no diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index 118f333d..520c7bbe 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -2,22 +2,16 @@ From: Frederic Crozat Date: Tue, 4 Dec 2012 16:51:32 +0000 Subject: handle root_uses_lang value in /etc/sysconfig/language -handle ROOT_USES_LANG=ctype (boo#792182). +handle ROOT_USES_LANG=ctype (bnc#792182). --- - src/core/locale-setup.c | 40 ++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 40 insertions(+) + src/core/locale-setup.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) -Index: systemd-228/src/core/locale-setup.c +Index: systemd-221/src/core/locale-setup.c =================================================================== ---- systemd-228.orig/src/core/locale-setup.c -+++ systemd-228/src/core/locale-setup.c -@@ -30,11 +30,16 @@ - #include "strv.h" - #include "util.h" - #include "virt.h" -+#include "alloc-util.h" - - int locale_setup(char ***environment) { +--- systemd-221.orig/src/core/locale-setup.c ++++ systemd-221/src/core/locale-setup.c +@@ -34,6 +34,10 @@ int locale_setup(char ***environment) { char **add; char *variables[_VARIABLE_LC_MAX] = {}; int r = 0, i; @@ -26,9 +20,9 @@ Index: systemd-228/src/core/locale-setup.c + char _cleanup_free_ *root_uses_lang = NULL; +#endif - if (detect_container() <= 0) { + if (detect_container(NULL) <= 0) { r = parse_env_file("/proc/cmdline", WHITESPACE, -@@ -81,6 +86,41 @@ int locale_setup(char ***environment) { +@@ -80,6 +85,41 @@ int locale_setup(char ***environment) { if (r < 0 && r != -ENOENT) log_warning_errno(r, "Failed to read /etc/locale.conf: %m"); } diff --git a/insserv-generator.patch b/insserv-generator.patch index 833d0d66..9e5afdbc 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -8,16 +8,16 @@ systemd unit drop-in files to add dependencies --- Makefile.am | 9 src/insserv-generator/Makefile | 28 ++ - src/insserv-generator/insserv-generator.c | 319 ++++++++++++++++++++++++++++++ - 3 files changed, 355 insertions(+), 1 deletion(-) + src/insserv-generator/insserv-generator.c | 316 ++++++++++++++++++++++++++++++ + 3 files changed, 352 insertions(+), 1 deletion(-) create mode 100644 src/insserv-generator/Makefile create mode 100644 src/insserv-generator/insserv-generator.c -Index: systemd-228/Makefile.am +Index: systemd-224/Makefile.am =================================================================== ---- systemd-228.orig/Makefile.am -+++ systemd-228/Makefile.am -@@ -626,7 +626,8 @@ nodist_systemunit_DATA += \ +--- systemd-224.orig/Makefile.am ++++ systemd-224/Makefile.am +@@ -617,7 +617,8 @@ nodist_systemunit_DATA += \ systemgenerator_PROGRAMS += \ systemd-sysv-generator \ @@ -27,7 +27,7 @@ Index: systemd-228/Makefile.am endif EXTRA_DIST += \ -@@ -2682,6 +2683,12 @@ $(systemd_boot): $(systemd_boot_solib) +@@ -2556,6 +2557,12 @@ $(systemd_boot): $(systemd_boot_solib) endif endif @@ -40,10 +40,10 @@ Index: systemd-228/Makefile.am # ------------------------------------------------------------------------------ stub_headers = \ src/boot/efi/util.h \ -Index: systemd-228/src/insserv-generator/Makefile +Index: systemd-224/src/insserv-generator/Makefile =================================================================== --- /dev/null -+++ systemd-228/src/insserv-generator/Makefile ++++ systemd-224/src/insserv-generator/Makefile @@ -0,0 +1,28 @@ +# This file is part of systemd. +# @@ -73,11 +73,11 @@ Index: systemd-228/src/insserv-generator/Makefile + $(MAKE) -C .. clean + +.PHONY: all clean -Index: systemd-228/src/insserv-generator/insserv-generator.c +Index: systemd-224/src/insserv-generator/insserv-generator.c =================================================================== --- /dev/null -+++ systemd-228/src/insserv-generator/insserv-generator.c -@@ -0,0 +1,319 @@ ++++ systemd-224/src/insserv-generator/insserv-generator.c +@@ -0,0 +1,316 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** @@ -112,9 +112,6 @@ Index: systemd-228/src/insserv-generator/insserv-generator.c +#include "path-util.h" +#include "util.h" +#include "strv.h" -+#include "alloc-util.h" -+#include "string-util.h" -+#include "fd-util.h" + +static const char *arg_dest = "/tmp"; + diff --git a/macros.systemd.upstream b/macros.systemd.upstream index 2ba0ff05..8c2e84f6 100644 --- a/macros.systemd.upstream +++ b/macros.systemd.upstream @@ -1,4 +1,4 @@ -# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */ +# -*- Mode: makefile; indent-tabs-mode: t -*- */ # # This file is part of systemd. # @@ -39,7 +39,7 @@ Requires(postun): systemd \ %systemd_post() \ if [ $1 -eq 1 ] ; then \ # Initial installation \ - systemctl --no-reload preset %{?*} >/dev/null 2>&1 || : \ + systemctl preset %{?*} >/dev/null 2>&1 || : \ fi \ %{nil} @@ -48,7 +48,8 @@ fi \ %systemd_preun() \ if [ $1 -eq 0 ] ; then \ # Package removal, not upgrade \ - systemctl --no-reload disable --now %{?*} > /dev/null 2>&1 || : \ + systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + systemctl stop %{?*} > /dev/null 2>&1 || : \ fi \ %{nil} @@ -59,11 +60,14 @@ if [ $1 -eq 0 ] ; then \ fi \ %{nil} -%systemd_postun() %{nil} +%systemd_postun() \ +systemctl daemon-reload >/dev/null 2>&1 || : \ +%{nil} %systemd_user_postun() %{nil} %systemd_postun_with_restart() \ +systemctl daemon-reload >/dev/null 2>&1 || : \ if [ $1 -ge 1 ] ; then \ # Package upgrade, not uninstall \ systemctl try-restart %{?*} >/dev/null 2>&1 || : \ diff --git a/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch new file mode 100644 index 00000000..b6859af1 --- /dev/null +++ b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -0,0 +1,18 @@ +From: Robert Schweikert +Date: Fri, 12 Apr 2013 12:08:16 -0400 +Subject: rules: add lid switch of ARM based Chromebook as a power switch to + logind + +--- + src/login/70-power-switch.rules | 1 + + 1 file changed, 1 insertion(+) + +--- a/src/login/70-power-switch.rules ++++ b/src/login/70-power-switch.rules +@@ -11,5 +11,6 @@ SUBSYSTEM=="input", KERNEL=="event*", SU + SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch" + SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch" ++SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="gpio-keys.8", TAG+="power-switch" + + LABEL="power_switch_end" diff --git a/set-and-use-default-logconsole.patch b/set-and-use-default-logconsole.patch index e6474d8d..c00f8623 100644 --- a/set-and-use-default-logconsole.patch +++ b/set-and-use-default-logconsole.patch @@ -3,29 +3,29 @@ Use and set default logging console for both journald and kernel messages --- src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++ src/journal/journald-console.h | 3 + - src/journal/journald-server.c | 5 ++ - 3 files changed, 108 insertions(+) + src/journal/journald-server.c | 6 ++ + 3 files changed, 109 insertions(+) -Index: systemd-228/src/journal/journald-console.c +Index: systemd-221/src/journal/journald-console.c =================================================================== ---- systemd-228.orig/src/journal/journald-console.c -+++ systemd-228/src/journal/journald-console.c +--- systemd-221.orig/src/journal/journald-console.c ++++ systemd-221/src/journal/journald-console.c @@ -22,6 +22,14 @@ + #include #include #include - #include +#ifdef HAVE_SYSV_COMPAT -+# include -+# include -+# include -+# include -+# include -+# include "string-util.h" ++# include ++# include ++# include ++# include ++# include ++# include "util.h" +#endif - #include "alloc-util.h" - #include "fd-util.h" -@@ -50,6 +58,76 @@ static bool prefix_timestamp(void) { + #include "fileio.h" + #include "journald-server.h" +@@ -45,6 +53,76 @@ static bool prefix_timestamp(void) { return cached_printk_time; } @@ -102,7 +102,7 @@ Index: systemd-228/src/journal/journald-console.c void server_forward_console( Server *s, int priority, -@@ -71,6 +149,12 @@ void server_forward_console( +@@ -66,6 +144,12 @@ void server_forward_console( if (LOG_PRI(priority) > s->max_level_console) return; @@ -115,10 +115,10 @@ Index: systemd-228/src/journal/journald-console.c /* First: timestamp */ if (prefix_timestamp()) { assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0); -@@ -107,7 +191,23 @@ void server_forward_console( +@@ -102,7 +186,23 @@ void server_forward_console( fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { - log_debug_errno(fd, "Failed to open %s for logging: %m", tty); + log_debug_errno(errno, "Failed to open %s for logging: %m", tty); +#ifdef HAVE_SYSV_COMPAT + if (fd != -ENOENT && fd != -ENODEV) + return; @@ -139,10 +139,10 @@ Index: systemd-228/src/journal/journald-console.c } if (writev(fd, iovec, n) < 0) -Index: systemd-228/src/journal/journald-console.h +Index: systemd-221/src/journal/journald-console.h =================================================================== ---- systemd-228.orig/src/journal/journald-console.h -+++ systemd-228/src/journal/journald-console.h +--- systemd-221.orig/src/journal/journald-console.h ++++ systemd-221/src/journal/journald-console.h @@ -24,3 +24,6 @@ #include "journald-server.h" @@ -150,19 +150,19 @@ Index: systemd-228/src/journal/journald-console.h + +void klogconsole(Server *s); +void default_tty_path(Server *s); -Index: systemd-228/src/journal/journald-server.c +Index: systemd-221/src/journal/journald-server.c =================================================================== ---- systemd-228.orig/src/journal/journald-server.c -+++ systemd-228/src/journal/journald-server.c -@@ -55,6 +55,7 @@ - #include "journald-audit.h" - #include "journald-kmsg.h" - #include "journald-native.h" +--- systemd-221.orig/src/journal/journald-server.c ++++ systemd-221/src/journal/journald-server.c +@@ -52,6 +52,7 @@ + #include "journal-internal.h" + #include "journal-vacuum.h" + #include "journal-authenticate.h" +#include "journald-console.h" #include "journald-rate-limit.h" - #include "journald-server.h" - #include "journald-stream.h" -@@ -1751,6 +1752,10 @@ int server_init(Server *s) { + #include "journald-kmsg.h" + #include "journald-syslog.h" +@@ -1514,6 +1515,11 @@ int server_init(Server *s) { server_parse_config_file(s); server_parse_proc_cmdline(s); @@ -170,6 +170,7 @@ Index: systemd-228/src/journal/journald-server.c + + if (s->tty_path) + klogconsole(s); - ++ if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) { log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0", + s->rate_limit_interval, s->rate_limit_burst); diff --git a/suse-sysv-bootd-support.diff b/suse-sysv-bootd-support.diff index ce772aac..45253b12 100644 --- a/suse-sysv-bootd-support.diff +++ b/suse-sysv-bootd-support.diff @@ -7,14 +7,12 @@ This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe. [Implementation note: currently, the unit is generated, but not activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de] --- - src/sysv-generator/sysv-generator.c | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) + src/sysv-generator/sysv-generator.c | 21 +++++++++++++++------ + 1 file changed, 15 insertions(+), 6 deletions(-) -Index: systemd-228/src/sysv-generator/sysv-generator.c -=================================================================== ---- systemd-228.orig/src/sysv-generator/sysv-generator.c -+++ systemd-228/src/sysv-generator/sysv-generator.c -@@ -46,7 +46,8 @@ +--- systemd-222.orig/src/sysv-generator/sysv-generator.c ++++ systemd-222/src/sysv-generator/sysv-generator.c +@@ -39,7 +39,8 @@ typedef enum RunlevelType { RUNLEVEL_UP, @@ -24,7 +22,7 @@ Index: systemd-228/src/sysv-generator/sysv-generator.c } RunlevelType; static const struct { -@@ -54,6 +55,9 @@ static const struct { +@@ -47,6 +48,9 @@ static const struct { const char *target; const RunlevelType type; } rcnd_table[] = { @@ -34,7 +32,7 @@ Index: systemd-228/src/sysv-generator/sysv-generator.c /* Standard SysV runlevels for start-up */ { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP }, { "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP }, -@@ -69,10 +73,10 @@ static const struct { +@@ -62,10 +66,10 @@ static const struct { directories in this order, and we want to make sure that sysv_start_priority is known when we first load the unit. And that value we only know from S links. Hence @@ -47,7 +45,7 @@ Index: systemd-228/src/sysv-generator/sysv-generator.c typedef struct SysvStub { char *name; -@@ -261,6 +265,10 @@ static char *sysv_translate_name(const c +@@ -243,6 +247,10 @@ static char *sysv_translate_name(const c _cleanup_free_ char *c = NULL; char *res; @@ -58,18 +56,21 @@ Index: systemd-228/src/sysv-generator/sysv-generator.c c = strdup(name); if (!c) return NULL; -@@ -882,7 +890,8 @@ static int set_dependencies_from_rcnd(co +@@ -859,10 +867,10 @@ static int set_dependencies_from_rcnd(co if (de->d_name[0] == 'S') { -- if (rcnd_table[i].type == RUNLEVEL_UP) +- if (rcnd_table[i].type == RUNLEVEL_UP) { + if (rcnd_table[i].type == RUNLEVEL_UP || + rcnd_table[i].type == RUNLEVEL_SYSINIT) - service->sysv_start_priority = MAX(a*10 + b, service->sysv_start_priority); + service->sysv_start_priority = + MAX(a*10 + b, service->sysv_start_priority); +- } r = set_ensure_allocated(&runlevel_services[i], NULL); -@@ -898,7 +907,8 @@ static int set_dependencies_from_rcnd(co - } + if (r < 0) +@@ -873,7 +881,8 @@ static int set_dependencies_from_rcnd(co + goto finish; } else if (de->d_name[0] == 'K' && - (rcnd_table[i].type == RUNLEVEL_DOWN)) { @@ -77,4 +78,4 @@ Index: systemd-228/src/sysv-generator/sysv-generator.c + rcnd_table[i].type == RUNLEVEL_SYSINIT)) { r = set_ensure_allocated(&shutdown_services, NULL); - if (r < 0) { + if (r < 0) diff --git a/systemd-add-user-keep.patch b/systemd-add-user-keep.patch index bc7985dc..a67fa47f 100644 --- a/systemd-add-user-keep.patch +++ b/systemd-add-user-keep.patch @@ -1,35 +1,35 @@ --- man/tmpfiles.d.xml | 3 +++ - src/tmpfiles/tmpfiles.c | 46 ++++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 43 insertions(+), 6 deletions(-) + src/tmpfiles/tmpfiles.c | 47 ++++++++++++++++++++++++++++++++++++++++------- + 2 files changed, 43 insertions(+), 7 deletions(-) -Index: systemd-228/man/tmpfiles.d.xml +Index: systemd-221/man/tmpfiles.d.xml =================================================================== ---- systemd-228.orig/man/tmpfiles.d.xml -+++ systemd-228/man/tmpfiles.d.xml -@@ -599,6 +599,9 @@ +--- systemd-221.orig/man/tmpfiles.d.xml ++++ systemd-221/man/tmpfiles.d.xml +@@ -528,6 +528,9 @@ f, F, and - w, the argument may be used to specify a short string that + w may be used to specify a short string that is written to the file, suffixed by a newline. For + x, X, a comma separated list of + usernames. If given, only paths belonging to these users will be excluded + during directory cleanup. Ignored for all other lines. For C, specifies the source file or - directory. For t and T, + directory. For t, T determines extended attributes to be set. For -Index: systemd-228/src/tmpfiles/tmpfiles.c +Index: systemd-221/src/tmpfiles/tmpfiles.c =================================================================== ---- systemd-228.orig/src/tmpfiles/tmpfiles.c -+++ systemd-228/src/tmpfiles/tmpfiles.c +--- systemd-221.orig/src/tmpfiles/tmpfiles.c ++++ systemd-221/src/tmpfiles/tmpfiles.c @@ -37,6 +37,7 @@ + #include #include - #include - #include + #include +#include - #include "acl-util.h" - #include "alloc-util.h" -@@ -378,6 +379,7 @@ static int dir_cleanup( + #include "log.h" + #include "util.h" +@@ -358,6 +359,7 @@ static int dir_cleanup( struct timespec times[2]; bool deleted = false; int r = 0; @@ -37,7 +37,7 @@ Index: systemd-228/src/tmpfiles/tmpfiles.c while ((dent = readdir(d))) { struct stat s; -@@ -428,14 +430,46 @@ static int dir_cleanup( +@@ -408,14 +410,45 @@ static int dir_cleanup( } /* Is there an item configured for this path? */ @@ -50,7 +50,7 @@ Index: systemd-228/src/tmpfiles/tmpfiles.c + found_glob = true; + found = find_glob(globs, sub_path); } - +- - if (find_glob(globs, sub_path)) { - log_debug("Ignoring \"%s\": a separate glob exists.", sub_path); - continue; diff --git a/systemd-mini.changes b/systemd-mini.changes index a7adef16..4724b61e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,59 +1,3 @@ -------------------------------------------------------------------- -Mon Dec 21 16:25:44 UTC 2015 - fbui@suse.com - -- Make sure we don't use tmpfs on /tmp by default (bsc#940522) - -------------------------------------------------------------------- -Mon Dec 21 10:07:38 UTC 2015 - jengelh@inai.de - -- Avoid enabling readahead services; they have been removed. -- In %install, only process kbd-model-map.xkb-generated if it - exists. Resolves a build failure in 13.2/42.1. - -------------------------------------------------------------------- -Mon Nov 30 13:59:52 UTC 2015 - thomas.blume@suse.com - -- fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) - Add 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch - -------------------------------------------------------------------- -Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 228 -* The various memory-related resource limit settings (such as - LimitAS=) now understand the usual K, M, G, ... suffixes to - the base of 1024 (IEC). Similar, the time-related settings - understand the usual min, h, day, ... suffixes now. -* CPUAffinity= now takes CPU index ranges in addition to just - individual indexes. -* A number of properties previously only settable in unit - files are now also available as properties to set when - creating transient units programmatically via the bus. -- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch - (merged upstream) - -------------------------------------------------------------------- -Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru - -- Update to 227. -- Rebase systemd-pam_config.patch, - handle-root_uses_lang-value-in-etc-sysconfig-language.patch, - 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch, - 0014-journald-with-journaling-FS.patch, - 0019-make-completion-smart-to-be-able-to-redirect.patch, - avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch, - set-and-use-default-logconsole.patch, - tty-ask-password-agent-on-console.patch, - 0001-bnc888612-logind-polkit-acpi.patch, - watch_resolv.conf_for_become_changed.patch, - 1097-udevd-increase-maximum-number-of-children.patch. -- Remove - 0002-units-enable-waiting-for-unit-termination-in-certain.patch, - 1001-re-enable-by_path-links-for-ata-devices.patch, - rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch: - fixed upstream. - ------------------------------------------------------------------- Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 28262652..84245e76 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -42,7 +42,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 228 +Version: 224 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -112,7 +112,7 @@ BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.27 +Requires: util-linux >= 2.26 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 @@ -176,10 +176,16 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind +Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +# PATCH-FIX-UPSTREAM (boo#949574) +Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch +# PATCH-FIX-UPSTREAM (bsc#932284) +Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty @@ -245,8 +251,6 @@ Patch521: kbd-model-map.patch Patch522: Correct_assert_on_unexpected_error_code.patch # PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch -# PATCH-FIX-UPSTREAM (bsc#956712) -Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # UDEV PATCHES # ============ @@ -256,6 +260,8 @@ Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # as it's not changing the code of udev and libudev, then is not a udev # patch. Further patches which add and/or changes udev rules. +# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch +Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch @@ -551,6 +557,8 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch84 -p1 %patch86 -p1 +%patch87 -p1 +%patch88 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 @@ -579,14 +587,17 @@ cp %{SOURCE7} m4/ %patch386 -p1 %patch430 -p1 %patch475 -p1 +%ifarch %arm +%patch38 -p1 +%endif %patch490 -p1 %patch520 -p1 %patch521 -p1 -%patch522 -p1 +%patch522 -p0 %patch523 -p0 -%patch524 -p1 # udev patches +%patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 @@ -715,7 +726,7 @@ make %{?_smp_mflags} update-man-list man %endif %install -%make_install +make install DESTDIR="%buildroot" install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} @@ -756,11 +767,8 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# We keep a copy of tmp.mount because it may be removed if not used -# (see %post): we want to be sure tmpfs won't be used for /tmp by -# default on Suse distros. +# don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount -cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path @@ -891,10 +899,8 @@ done # add entries for xkeyboard-config converted keymaps; mappings, # which already exist in original systemd mapping table are being # ignored though, i.e. not overwritten -if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then - cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >>"%buildroot/usr/share/systemd/kbd-model-map" -fi +cat /usr/share/systemd/kbd-model-map.xkb-generated \ + >> %{buildroot}//usr/share/systemd/kbd-model-map %find_lang systemd @@ -950,13 +956,12 @@ fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then - # Enable these services by default. - # Specifying multiple units can cause the entire operation to not - # execute if one of them is missing, so run systemctl with one unit - # at a time only. - for i in getty@tty1.service remote-fs.target; do - /usr/bin/systemctl enable "$i" || : - done + # Enable these services by default. + /usr/bin/systemctl enable \ + getty@tty1.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ + remote-fs.target || : fi # since v207 /etc/sysctl.conf is no longer parsed, however @@ -971,16 +976,6 @@ for f in $(find /etc/systemd/system -type l -xtype l); do [ -f "$new_target" ] && ln -s -f $new_target $f || : done -# Keep tmp.mount if it's been enabled explicitly by the user otherwise -# make sure it wont be activated since it's the default for Suse -# distros. This unit can be pulled (implicitely) in various ways -# (private /tmp, etc..) and it's required by the basic.target -# explicitly since v220. -case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in -enabled) ;; -*) rm -f %{_prefix}/lib/systemd/system/tmp.mount -esac - %postun /sbin/ldconfig if [ $1 -ge 1 ]; then diff --git a/systemd-pam_config.patch b/systemd-pam_config.patch index 7850822e..469004d3 100644 --- a/systemd-pam_config.patch +++ b/systemd-pam_config.patch @@ -1,32 +1,16 @@ -Index: systemd-227/factory/etc/pam.d/other +--- + src/login/systemd-user | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: systemd-221/src/login/systemd-user =================================================================== ---- systemd-227.orig/factory/etc/pam.d/other -+++ systemd-227/factory/etc/pam.d/other -@@ -1,6 +1,6 @@ - # This file is part of systemd. - --auth include system-auth --account include system-auth --password include system-auth --session include system-auth -+auth include common-auth -+account include common-account -+password include common-password -+session include common-session -Index: systemd-227/src/login/systemd-user.m4 -=================================================================== ---- systemd-227.orig/src/login/systemd-user.m4 -+++ systemd-227/src/login/systemd-user.m4 -@@ -2,10 +2,10 @@ +--- systemd-221.orig/src/login/systemd-user ++++ systemd-221/src/login/systemd-user +@@ -2,5 +2,5 @@ # # Used by systemd --user instances. -account include system-auth -+account include common-account - - m4_ifdef(`HAVE_SELINUX', - session required pam_selinux.so close - session required pam_selinux.so nottys open - )m4_dnl -session include system-auth ++account include common-account +session include common-session diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 1233b3b2..e114231e 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -8,19 +8,19 @@ SUSE policy is to not clean /tmp by default. tmpfiles.d/tmp.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -Index: systemd-228/tmpfiles.d/tmp.conf +Index: systemd-221/tmpfiles.d/tmp.conf =================================================================== ---- systemd-228.orig/tmpfiles.d/tmp.conf -+++ systemd-228/tmpfiles.d/tmp.conf +--- systemd-221.orig/tmpfiles.d/tmp.conf ++++ systemd-221/tmpfiles.d/tmp.conf @@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override --q /tmp 1777 root root 10d --q /var/tmp 1777 root root 30d -+# SUSE policy: we do not clean these directories -+q /tmp 1777 root root - -+q /var/tmp 1777 root root - +-v /tmp 1777 root root 10d +-v /var/tmp 1777 root root 30d ++# SUSE policy: we don't clean those directories ++v /tmp 1777 root root - ++v /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index a7adef16..4724b61e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,59 +1,3 @@ -------------------------------------------------------------------- -Mon Dec 21 16:25:44 UTC 2015 - fbui@suse.com - -- Make sure we don't use tmpfs on /tmp by default (bsc#940522) - -------------------------------------------------------------------- -Mon Dec 21 10:07:38 UTC 2015 - jengelh@inai.de - -- Avoid enabling readahead services; they have been removed. -- In %install, only process kbd-model-map.xkb-generated if it - exists. Resolves a build failure in 13.2/42.1. - -------------------------------------------------------------------- -Mon Nov 30 13:59:52 UTC 2015 - thomas.blume@suse.com - -- fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) - Add 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch - -------------------------------------------------------------------- -Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 228 -* The various memory-related resource limit settings (such as - LimitAS=) now understand the usual K, M, G, ... suffixes to - the base of 1024 (IEC). Similar, the time-related settings - understand the usual min, h, day, ... suffixes now. -* CPUAffinity= now takes CPU index ranges in addition to just - individual indexes. -* A number of properties previously only settable in unit - files are now also available as properties to set when - creating transient units programmatically via the bus. -- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch - (merged upstream) - -------------------------------------------------------------------- -Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru - -- Update to 227. -- Rebase systemd-pam_config.patch, - handle-root_uses_lang-value-in-etc-sysconfig-language.patch, - 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, - 0001-On_s390_con3270_disable_ANSI_colour_esc.patch, - 0014-journald-with-journaling-FS.patch, - 0019-make-completion-smart-to-be-able-to-redirect.patch, - avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch, - set-and-use-default-logconsole.patch, - tty-ask-password-agent-on-console.patch, - 0001-bnc888612-logind-polkit-acpi.patch, - watch_resolv.conf_for_become_changed.patch, - 1097-udevd-increase-maximum-number-of-children.patch. -- Remove - 0002-units-enable-waiting-for-unit-termination-in-certain.patch, - 1001-re-enable-by_path-links-for-ata-devices.patch, - rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch: - fixed upstream. - ------------------------------------------------------------------- Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index e3224592..674e6fc6 100644 --- a/systemd.spec +++ b/systemd.spec @@ -40,7 +40,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 228 +Version: 224 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -107,7 +107,7 @@ BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: sysvinit-tools -Requires: util-linux >= 2.27 +Requires: util-linux >= 2.26 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 @@ -171,10 +171,16 @@ Patch42: systemd-pam_config.patch # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind +Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +# PATCH-FIX-UPSTREAM (boo#949574) +Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch +# PATCH-FIX-UPSTREAM (bsc#932284) +Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty @@ -240,8 +246,6 @@ Patch521: kbd-model-map.patch Patch522: Correct_assert_on_unexpected_error_code.patch # PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch -# PATCH-FIX-UPSTREAM (bsc#956712) -Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # UDEV PATCHES # ============ @@ -251,6 +255,8 @@ Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # as it's not changing the code of udev and libudev, then is not a udev # patch. Further patches which add and/or changes udev rules. +# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch +Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch @@ -546,6 +552,8 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch84 -p1 %patch86 -p1 +%patch87 -p1 +%patch88 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 @@ -574,14 +582,17 @@ cp %{SOURCE7} m4/ %patch386 -p1 %patch430 -p1 %patch475 -p1 +%ifarch %arm +%patch38 -p1 +%endif %patch490 -p1 %patch520 -p1 %patch521 -p1 -%patch522 -p1 +%patch522 -p0 %patch523 -p0 -%patch524 -p1 # udev patches +%patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 @@ -710,7 +721,7 @@ make %{?_smp_mflags} update-man-list man %endif %install -%make_install +make install DESTDIR="%buildroot" install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} @@ -751,11 +762,8 @@ ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target -# We keep a copy of tmp.mount because it may be removed if not used -# (see %post): we want to be sure tmpfs won't be used for /tmp by -# default on Suse distros. +# don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount -cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path @@ -886,10 +894,8 @@ done # add entries for xkeyboard-config converted keymaps; mappings, # which already exist in original systemd mapping table are being # ignored though, i.e. not overwritten -if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then - cat /usr/share/systemd/kbd-model-map.xkb-generated \ - >>"%buildroot/usr/share/systemd/kbd-model-map" -fi +cat /usr/share/systemd/kbd-model-map.xkb-generated \ + >> %{buildroot}//usr/share/systemd/kbd-model-map %find_lang systemd @@ -945,13 +951,12 @@ fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then - # Enable these services by default. - # Specifying multiple units can cause the entire operation to not - # execute if one of them is missing, so run systemctl with one unit - # at a time only. - for i in getty@tty1.service remote-fs.target; do - /usr/bin/systemctl enable "$i" || : - done + # Enable these services by default. + /usr/bin/systemctl enable \ + getty@tty1.service \ + systemd-readahead-collect.service \ + systemd-readahead-replay.service \ + remote-fs.target || : fi # since v207 /etc/sysctl.conf is no longer parsed, however @@ -966,16 +971,6 @@ for f in $(find /etc/systemd/system -type l -xtype l); do [ -f "$new_target" ] && ln -s -f $new_target $f || : done -# Keep tmp.mount if it's been enabled explicitly by the user otherwise -# make sure it wont be activated since it's the default for Suse -# distros. This unit can be pulled (implicitely) in various ways -# (private /tmp, etc..) and it's required by the basic.target -# explicitly since v220. -case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in -enabled) ;; -*) rm -f %{_prefix}/lib/systemd/system/tmp.mount -esac - %postun /sbin/ldconfig if [ $1 -ge 1 ]; then diff --git a/tty-ask-password-agent-on-console.patch b/tty-ask-password-agent-on-console.patch index f96fc24b..9490adc2 100644 --- a/tty-ask-password-agent-on-console.patch +++ b/tty-ask-password-agent-on-console.patch @@ -26,13 +26,13 @@ Spwan for each device of the system console /dev/console a own process. Replace the system call wait() with with system call waitid(). --- - src/tty-ask-password-agent/tty-ask-password-agent.c | 264 +++++++++++++++++++- - 1 file changed, 254 insertions(+), 10 deletions(-) + src/tty-ask-password-agent.c | 264 ++++++++++++++++++++- + 1 file changed, 255 insertions(+), 9 deletions(-) -Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c -=================================================================== ---- systemd-228.orig/src/tty-ask-password-agent/tty-ask-password-agent.c -+++ systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c +diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c +index 4630eb9..df4bada 100644 +--- a/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ b/src/tty-ask-password-agent/tty-ask-password-agent.c @@ -4,6 +4,7 @@ This file is part of systemd. @@ -41,26 +41,26 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by -@@ -21,6 +22,9 @@ - - #include +@@ -31,6 +32,9 @@ + #include + #include #include +#include +#include +#include - #include - #include - #include -@@ -49,6 +53,8 @@ - #include "terminal-util.h" + #include "util.h" - #include "utmp-wtmp.h" + #include "mkdir.h" +@@ -45,6 +49,8 @@ + #include "process-util.h" + #include "terminal-util.h" + #include "signal-util.h" +#include "fileio.h" +#include "macro.h" static enum { ACTION_LIST, -@@ -57,8 +63,21 @@ static enum { +@@ -53,8 +59,21 @@ static enum { ACTION_WALL } arg_action = ACTION_QUERY; @@ -82,8 +82,8 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c static int ask_password_plymouth( const char *message, -@@ -240,6 +259,80 @@ finish: - return r; +@@ -211,6 +230,80 @@ static int ask_password_plymouth( + return 0; } +static void free_consoles(struct console *con, unsigned int num) { @@ -162,17 +162,17 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c + static int parse_password(const char *filename, char **wall) { _cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL; - bool accept_cached = false, echo = false; -@@ -340,7 +433,7 @@ static int parse_password(const char *fi - int tty_fd = -1; + uint64_t not_after = 0; +@@ -311,7 +404,7 @@ static int parse_password(const char *fi + _cleanup_free_ char *password = NULL; if (arg_console) { - tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY); + tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY); if (tty_fd < 0) - return log_error_errno(tty_fd, "Failed to acquire /dev/console: %m"); - -@@ -601,7 +694,7 @@ static int parse_argv(int argc, char *ar + return tty_fd; + } +@@ -554,7 +647,7 @@ static int parse_argv(int argc, char *ar { "watch", no_argument, NULL, ARG_WATCH }, { "wall", no_argument, NULL, ARG_WALL }, { "plymouth", no_argument, NULL, ARG_PLYMOUTH }, @@ -181,7 +181,7 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c {} }; -@@ -643,6 +736,10 @@ static int parse_argv(int argc, char *ar +@@ -598,6 +691,10 @@ static int parse_argv(int argc, char *ar case ARG_CONSOLE: arg_console = true; @@ -192,7 +192,7 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c break; case '?': -@@ -657,9 +754,143 @@ static int parse_argv(int argc, char *ar +@@ -612,9 +709,143 @@ static int parse_argv(int argc, char *ar return -EINVAL; } @@ -336,16 +336,16 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c int main(int argc, char *argv[]) { int r; -@@ -673,16 +904,29 @@ int main(int argc, char *argv[]) { +@@ -628,15 +859,28 @@ int main(int argc, char *argv[]) { if (r <= 0) goto finish; - if (arg_console) { -- (void) setsid(); -- (void) release_terminal(); +- setsid(); +- release_terminal(); + if (arg_console && !arg_device) + /* -+ * Spawn for each console device a own process ++ * Spwan for each console device a own process + */ + r = ask_on_consoles(argc, argv); + else { @@ -365,12 +365,15 @@ Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c + else + r = show_passwords(); } - +- - if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL)) - r = watch_passwords(); - else - r = show_passwords(); -- - finish: - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; - } + + if (r < 0) + log_error_errno(r, "Error: %m"); + +-- +2.2.0 + diff --git a/use-rndaddentropy-ioctl-to-load-random-seed.patch b/use-rndaddentropy-ioctl-to-load-random-seed.patch index 2e655400..8df39ad4 100644 --- a/use-rndaddentropy-ioctl-to-load-random-seed.patch +++ b/use-rndaddentropy-ioctl-to-load-random-seed.patch @@ -8,20 +8,21 @@ Related to bnc#892096 src/random-seed/random-seed.c | 71 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 10 deletions(-) -Index: systemd-228/src/random-seed/random-seed.c +Index: systemd-221/src/random-seed/random-seed.c =================================================================== ---- systemd-228.orig/src/random-seed/random-seed.c -+++ systemd-228/src/random-seed/random-seed.c -@@ -24,6 +24,8 @@ - #include - #include +--- systemd-221.orig/src/random-seed/random-seed.c ++++ systemd-221/src/random-seed/random-seed.c +@@ -22,7 +22,9 @@ #include + #include + #include +#include + #include +#include + #include - #include "alloc-util.h" - #include "fd-util.h" -@@ -36,8 +38,8 @@ + #include "log.h" +@@ -32,8 +34,8 @@ #define POOL_SIZE_MIN 512 int main(int argc, char *argv[]) { @@ -32,7 +33,7 @@ Index: systemd-228/src/random-seed/random-seed.c size_t buf_size = 0; ssize_t k; int r; -@@ -68,11 +70,12 @@ int main(int argc, char *argv[]) { +@@ -65,11 +67,12 @@ int main(int argc, char *argv[]) { if (buf_size <= POOL_SIZE_MIN) buf_size = POOL_SIZE_MIN; @@ -47,7 +48,7 @@ Index: systemd-228/src/random-seed/random-seed.c r = mkdir_parents_label(RANDOM_SEED, 0755); if (r < 0) { -@@ -86,6 +89,23 @@ int main(int argc, char *argv[]) { +@@ -83,6 +86,23 @@ int main(int argc, char *argv[]) { if (streq(argv[1], "load")) { @@ -71,7 +72,7 @@ Index: systemd-228/src/random-seed/random-seed.c seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY); -@@ -106,7 +126,7 @@ int main(int argc, char *argv[]) { +@@ -103,7 +123,7 @@ int main(int argc, char *argv[]) { } } @@ -80,7 +81,7 @@ Index: systemd-228/src/random-seed/random-seed.c if (k < 0) r = log_error_errno(k, "Failed to read seed from " RANDOM_SEED ": %m"); else if (k == 0) -@@ -114,13 +134,29 @@ int main(int argc, char *argv[]) { +@@ -111,13 +131,29 @@ int main(int argc, char *argv[]) { else { (void) lseek(seed_fd, 0, SEEK_SET); @@ -113,7 +114,7 @@ Index: systemd-228/src/random-seed/random-seed.c seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600); if (seed_fd < 0) { r = log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m"); -@@ -133,6 +169,21 @@ int main(int argc, char *argv[]) { +@@ -130,6 +166,21 @@ int main(int argc, char *argv[]) { goto finish; } @@ -135,7 +136,7 @@ Index: systemd-228/src/random-seed/random-seed.c } else { log_error("Unknown verb '%s'.", argv[1]); r = -EINVAL; -@@ -147,7 +198,7 @@ int main(int argc, char *argv[]) { +@@ -144,7 +195,7 @@ int main(int argc, char *argv[]) { (void) fchmod(seed_fd, 0600); (void) fchown(seed_fd, 0, 0); @@ -144,7 +145,7 @@ Index: systemd-228/src/random-seed/random-seed.c if (k < 0) { r = log_error_errno(k, "Failed to read new seed from /dev/urandom: %m"); goto finish; -@@ -158,7 +209,7 @@ int main(int argc, char *argv[]) { +@@ -155,7 +206,7 @@ int main(int argc, char *argv[]) { goto finish; } diff --git a/v224.tar.gz b/v224.tar.gz new file mode 100644 index 00000000..d4d491a2 --- /dev/null +++ b/v224.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d7ac1532a57639fbc828f8a5051a090883c6ad2908618a7a13ab386db831bfc +size 3868075 diff --git a/v228.tar.gz b/v228.tar.gz deleted file mode 100644 index 84f9e59d..00000000 --- a/v228.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd124ff561a07e6439ed2b3713f38ca914df7747f110ce86deea17b56d245ae6 -size 4034401 diff --git a/watch_resolv.conf_for_become_changed.patch b/watch_resolv.conf_for_become_changed.patch index e6df8c6e..fcc01432 100644 --- a/watch_resolv.conf_for_become_changed.patch +++ b/watch_resolv.conf_for_become_changed.patch @@ -3,19 +3,19 @@ src/core/manager.h | 5 ++ 2 files changed, 98 insertions(+) -Index: systemd-227/src/core/manager.c +Index: systemd-221/src/core/manager.c =================================================================== ---- systemd-227.orig/src/core/manager.c -+++ systemd-227/src/core/manager.c +--- systemd-221.orig/src/core/manager.c ++++ systemd-221/src/core/manager.c @@ -32,6 +32,7 @@ + #include + #include #include - #include - #include +#include #ifdef HAVE_AUDIT #include -@@ -294,6 +295,91 @@ static int manager_check_ask_password(Ma +@@ -308,6 +309,91 @@ static int manager_check_ask_password(Ma return m->have_ask_password; } @@ -107,15 +107,15 @@ Index: systemd-227/src/core/manager.c static int manager_watch_idle_pipe(Manager *m) { int r; -@@ -576,6 +662,7 @@ int manager_new(ManagerRunningAs running - +@@ -585,6 +671,7 @@ int manager_new(ManagerRunningAs running + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ + m->resolv_conf_inotify_fd = -1; m->ask_password_inotify_fd = -1; m->have_ask_password = -EINVAL; /* we don't know */ - m->first_boot = -1; -@@ -637,6 +724,10 @@ int manager_new(ManagerRunningAs running + +@@ -651,6 +738,10 @@ int manager_new(ManagerRunningAs running if (r < 0) goto fail; @@ -126,7 +126,7 @@ Index: systemd-227/src/core/manager.c m->udev = udev_new(); if (!m->udev) { r = -ENOMEM; -@@ -914,6 +1005,8 @@ Manager* manager_free(Manager *m) { +@@ -929,6 +1020,8 @@ Manager* manager_free(Manager *m) { if (!m) return NULL; @@ -135,13 +135,13 @@ Index: systemd-227/src/core/manager.c manager_clear_jobs_and_units(m); for (c = 0; c < _UNIT_TYPE_MAX; c++) -Index: systemd-227/src/core/manager.h +Index: systemd-221/src/core/manager.h =================================================================== ---- systemd-227.orig/src/core/manager.h -+++ systemd-227/src/core/manager.h -@@ -180,6 +180,11 @@ struct Manager { - struct libmnt_monitor *mount_monitor; - sd_event_source *mount_event_source; +--- systemd-221.orig/src/core/manager.h ++++ systemd-221/src/core/manager.h +@@ -181,6 +181,11 @@ struct Manager { + int utab_inotify_fd; + sd_event_source *mount_utab_event_source; + /* Watch out any change of /etc/resolv.conf */ + int resolv_conf_inotify_fd;